24 lines
895 KiB
JavaScript
24 lines
895 KiB
JavaScript
/*
|
||
* ATTENTION: An "eval-source-map" devtool has been used.
|
||
* This devtool is neither made for production nor for readable output files.
|
||
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
||
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
||
* or disable the default devtool with "devtool: false".
|
||
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
||
*/
|
||
exports.id = "vendor-chunks/jspdf";
|
||
exports.ids = ["vendor-chunks/jspdf"];
|
||
exports.modules = {
|
||
|
||
/***/ "(ssr)/./node_modules/jspdf/dist/jspdf.node.min.js":
|
||
/*!***************************************************!*\
|
||
!*** ./node_modules/jspdf/dist/jspdf.node.min.js ***!
|
||
\***************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
eval("/** @license\n *\n * jsPDF - PDF Document creation from JavaScript\n * Version 4.2.1 Built on 2026-03-17T11:11:27.057Z\n * CommitID 00000000\n *\n * Copyright (c) 2010-2025 James Hall <james@parall.ax>, https://github.com/MrRio/jsPDF\n * 2015-2025 yWorks GmbH, http://www.yworks.com\n * 2015-2025 Lukas Holländer <lukas.hollaender@yworks.com>, https://github.com/HackbrettXXX\n * 2016-2018 Aras Abbasi <aras.abbasi@gmail.com>\n * 2010 Aaron Spike, https://github.com/acspike\n * 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2012 Pablo Hess, https://github.com/pablohess\n * 2012 Florian Jenett, https://github.com/fjenett\n * 2013 Warren Weckesser, https://github.com/warrenweckesser\n * 2013 Youssef Beddad, https://github.com/lifof\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2013 Stefan Slonevskiy, https://github.com/stefslon\n * 2013 Jeremy Morel, https://github.com/jmorel\n * 2013 Christoph Hartmann, https://github.com/chris-rock\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Makes, https://github.com/dollaruw\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 Steven Spungin, https://github.com/Flamenco\n * 2014 Kenneth Glassey, https://github.com/Gavvers\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n * Contributor(s):\n * siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,\n * kim3er, mfo, alnorth, Flamenco\n */\n\nObject.defineProperty(exports, \"__esModule\", ({value:!0}));var t=__webpack_require__(/*! fflate */ \"(ssr)/./node_modules/fflate/lib/node.cjs\"),e=__webpack_require__(/*! fast-png */ \"(ssr)/./node_modules/fast-png/lib-esm/index.js\"),r=function(){return\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this}();\n/**\n * A class to parse color values\n * @author Stoyan Stefanov <sstoo@gmail.com>\n * {@link http://www.phpied.com/rgb-color-parser-in-javascript/}\n * @license Use it if you like it\n */\nfunction n(t){var e;t=t||\"\",this.ok=!1,\"#\"==t.charAt(0)&&(t=t.substr(1,6)),t={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"00ffff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000000\",blanchedalmond:\"ffebcd\",blue:\"0000ff\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"00ffff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dodgerblue:\"1e90ff\",feldspar:\"d19275\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"ff00ff\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgrey:\"d3d3d3\",lightgreen:\"90ee90\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslateblue:\"8470ff\",lightslategray:\"778899\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"00ff00\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"ff00ff\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370d8\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"d87093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",red:\"ff0000\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",violetred:\"d02090\",wheat:\"f5deb3\",white:\"ffffff\",whitesmoke:\"f5f5f5\",yellow:\"ffff00\",yellowgreen:\"9acd32\"}[t=(t=t.replace(/ /g,\"\")).toLowerCase()]||t;for(var r=[{re:/^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,example:[\"rgb(123, 234, 45)\",\"rgb(255,234,245)\"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]}},{re:/^(\\w{2})(\\w{2})(\\w{2})$/,example:[\"#00ff00\",\"336699\"],process:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/^(\\w{1})(\\w{1})(\\w{1})$/,example:[\"#fb0\",\"f0f\"],process:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}}],n=0;n<r.length;n++){var i=r[n].re,a=r[n].process,o=i.exec(t);o&&(e=a(o),this.r=e[0],this.g=e[1],this.b=e[2],this.ok=!0)}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.toRGB=function(){return\"rgb(\"+this.r+\", \"+this.g+\", \"+this.b+\")\"},this.toHex=function(){var t=this.r.toString(16),e=this.g.toString(16),r=this.b.toString(16);return 1==t.length&&(t=\"0\"+t),1==e.length&&(e=\"0\"+e),1==r.length&&(r=\"0\"+r),\"#\"+t+e+r}}const i=r.atob.bind(r),a=r.btoa.bind(r);function o(){r.console&&\"function\"==typeof r.console.log&&r.console.log.apply(r.console,arguments)}var s={log:o,warn:function(t){r.console&&(\"function\"==typeof r.console.warn?r.console.warn.apply(r.console,arguments):o.call(null,arguments))},error:function(t){r.console&&(\"function\"==typeof r.console.error?r.console.error.apply(r.console,arguments):o(t))}};\n/**\n * @license\n * Joseph Myers does not specify a particular license for his work.\n *\n * Author: Joseph Myers\n * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js\n *\n * Modified by: Owen Leong\n */function c(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];r=l(r,n,i,a,e[0],7,-680876936),a=l(a,r,n,i,e[1],12,-389564586),i=l(i,a,r,n,e[2],17,606105819),n=l(n,i,a,r,e[3],22,-1044525330),r=l(r,n,i,a,e[4],7,-176418897),a=l(a,r,n,i,e[5],12,1200080426),i=l(i,a,r,n,e[6],17,-1473231341),n=l(n,i,a,r,e[7],22,-45705983),r=l(r,n,i,a,e[8],7,1770035416),a=l(a,r,n,i,e[9],12,-1958414417),i=l(i,a,r,n,e[10],17,-42063),n=l(n,i,a,r,e[11],22,-1990404162),r=l(r,n,i,a,e[12],7,1804603682),a=l(a,r,n,i,e[13],12,-40341101),i=l(i,a,r,n,e[14],17,-1502002290),r=h(r,n=l(n,i,a,r,e[15],22,1236535329),i,a,e[1],5,-165796510),a=h(a,r,n,i,e[6],9,-1069501632),i=h(i,a,r,n,e[11],14,643717713),n=h(n,i,a,r,e[0],20,-373897302),r=h(r,n,i,a,e[5],5,-701558691),a=h(a,r,n,i,e[10],9,38016083),i=h(i,a,r,n,e[15],14,-660478335),n=h(n,i,a,r,e[4],20,-405537848),r=h(r,n,i,a,e[9],5,568446438),a=h(a,r,n,i,e[14],9,-1019803690),i=h(i,a,r,n,e[3],14,-187363961),n=h(n,i,a,r,e[8],20,1163531501),r=h(r,n,i,a,e[13],5,-1444681467),a=h(a,r,n,i,e[2],9,-51403784),i=h(i,a,r,n,e[7],14,1735328473),r=f(r,n=h(n,i,a,r,e[12],20,-1926607734),i,a,e[5],4,-378558),a=f(a,r,n,i,e[8],11,-2022574463),i=f(i,a,r,n,e[11],16,1839030562),n=f(n,i,a,r,e[14],23,-35309556),r=f(r,n,i,a,e[1],4,-1530992060),a=f(a,r,n,i,e[4],11,1272893353),i=f(i,a,r,n,e[7],16,-155497632),n=f(n,i,a,r,e[10],23,-1094730640),r=f(r,n,i,a,e[13],4,681279174),a=f(a,r,n,i,e[0],11,-358537222),i=f(i,a,r,n,e[3],16,-722521979),n=f(n,i,a,r,e[6],23,76029189),r=f(r,n,i,a,e[9],4,-640364487),a=f(a,r,n,i,e[12],11,-421815835),i=f(i,a,r,n,e[15],16,530742520),r=d(r,n=f(n,i,a,r,e[2],23,-995338651),i,a,e[0],6,-198630844),a=d(a,r,n,i,e[7],10,1126891415),i=d(i,a,r,n,e[14],15,-1416354905),n=d(n,i,a,r,e[5],21,-57434055),r=d(r,n,i,a,e[12],6,1700485571),a=d(a,r,n,i,e[3],10,-1894986606),i=d(i,a,r,n,e[10],15,-1051523),n=d(n,i,a,r,e[1],21,-2054922799),r=d(r,n,i,a,e[8],6,1873313359),a=d(a,r,n,i,e[15],10,-30611744),i=d(i,a,r,n,e[6],15,-1560198380),n=d(n,i,a,r,e[13],21,1309151649),r=d(r,n,i,a,e[4],6,-145523070),a=d(a,r,n,i,e[11],10,-1120210379),i=d(i,a,r,n,e[2],15,718787259),n=d(n,i,a,r,e[9],21,-343485551),t[0]=N(r,t[0]),t[1]=N(n,t[1]),t[2]=N(i,t[2]),t[3]=N(a,t[3])}function u(t,e,r,n,i,a){return e=N(N(e,t),N(n,a)),N(e<<i|e>>>32-i,r)}function l(t,e,r,n,i,a,o){return u(e&r|~e&n,t,e,i,a,o)}function h(t,e,r,n,i,a,o){return u(e&n|r&~n,t,e,i,a,o)}function f(t,e,r,n,i,a,o){return u(e^r^n,t,e,i,a,o)}function d(t,e,r,n,i,a,o){return u(r^(e|~n),t,e,i,a,o)}function p(t){var e,r=t.length,n=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=t.length;e+=64)c(n,g(t.substring(e-64,e)));t=t.substring(e-64);var i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<t.length;e++)i[e>>2]|=t.charCodeAt(e)<<(e%4<<3);if(i[e>>2]|=128<<(e%4<<3),e>55)for(c(n,i),e=0;e<16;e++)i[e]=0;return i[14]=8*r,c(n,i),n}function g(t){var e,r=[];for(e=0;e<64;e+=4)r[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return r}var m=\"0123456789abcdef\".split(\"\");function v(t){for(var e=\"\",r=0;r<4;r++)e+=m[t>>8*r+4&15]+m[t>>8*r&15];return e}function b(t){return String.fromCharCode(255&t,(65280&t)>>8,(16711680&t)>>16,(4278190080&t)>>24)}function y(t){return p(t).map(b).join(\"\")}var w=\"5d41402abc4b2a76b9719d911017c592\"!=function(t){for(var e=0;e<t.length;e++)t[e]=v(t[e]);return t.join(\"\")}(p(\"hello\"));function N(t,e){if(w){var r=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(r>>16)<<16|65535&r}return t+e&4294967295}\n/**\n * @license\n * FPDF is released under a permissive license: there is no usage restriction.\n * You may embed it freely in your application (commercial or not), with or\n * without modifications.\n *\n * Reference: http://www.fpdf.org/en/script/script37.php\n */function L(t,e){var r,n,i,a;if(t!==r){for(var o=(i=t,a=1+(256/t.length|0),new Array(a+1).join(i)),s=[],c=0;c<256;c++)s[c]=c;var u=0;for(c=0;c<256;c++){var l=s[c];u=(u+l+o.charCodeAt(c))%256,s[c]=s[u],s[u]=l}r=t,n=s}else s=n;var h=e.length,f=0,d=0,p=\"\";for(c=0;c<h;c++)d=(d+(l=s[f=(f+1)%256]))%256,s[f]=s[d],s[d]=l,o=s[(s[f]+s[d])%256],p+=String.fromCharCode(e.charCodeAt(c)^o);return p}\n/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n * Author: Owen Leong (@owenl131)\n * Date: 15 Oct 2020\n * References:\n * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt\n * https://github.com/foliojs/pdfkit/blob/master/lib/security.js\n * http://www.fpdf.org/en/script/script37.php\n */var x={print:4,modify:8,copy:16,\"annot-forms\":32};function A(t,e,r,n){this.v=1,this.r=2;let i=192;t.forEach(function(t){if(void 0!==x.perm)throw new Error(\"Invalid permission: \"+t);i+=x[t]}),this.padding=\"(¿N^NuAd\\0NVÿú\u0001\\b..\\0¶Ðh>/\\f©þdSiz\";let a=(e+this.padding).substr(0,32),o=(r+this.padding).substr(0,32);this.O=this.processOwnerPassword(a,o),this.P=-(1+(255^i)),this.encryptionKey=y(a+this.O+this.lsbFirstWord(this.P)+this.hexToBytes(n)).substr(0,5),this.U=L(this.encryptionKey,this.padding)}function S(t){if(/[^\\u0000-\\u00ff]/.test(t))throw new Error(\"Invalid PDF Name Object: \"+t+\", Only accept ASCII characters.\");for(var e=\"\",r=t.length,n=0;n<r;n++){var i=t.charCodeAt(n);e+=i<33||35===i||37===i||40===i||41===i||47===i||60===i||62===i||91===i||93===i||123===i||125===i||i>126?\"#\"+(\"0\"+i.toString(16)).slice(-2):t[n]}return e}function _(t){if(\"object\"!=typeof t)throw new Error(\"Invalid Context passed to initialize PubSub (jsPDF-module)\");var e={};this.subscribe=function(t,r,n){if(n=n||!1,\"string\"!=typeof t||\"function\"!=typeof r||\"boolean\"!=typeof n)throw new Error(\"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\");e.hasOwnProperty(t)||(e[t]={});var i=Math.random().toString(35);return e[t][i]=[r,!!n],i},this.unsubscribe=function(t){for(var r in e)if(e[r][t])return delete e[r][t],0===Object.keys(e[r]).length&&delete e[r],!0;return!1},this.publish=function(n){if(e.hasOwnProperty(n)){var i=Array.prototype.slice.call(arguments,1),a=[];for(var o in e[n]){var c=e[n][o];try{c[0].apply(t,i)}catch(u){r.console&&s.error(\"jsPDF PubSub Error\",u.message,u)}c[1]&&a.push(o)}a.length&&a.forEach(this.unsubscribe)}},this.getTopics=function(){return e}}function P(t){if(!(this instanceof P))return new P(t);var e=\"opacity,stroke-opacity\".split(\",\");for(var r in t)t.hasOwnProperty(r)&&e.indexOf(r)>=0&&(this[r]=t[r]);this.id=\"\",this.objectNumber=-1}function k(t,e){this.gState=t,this.matrix=e,this.id=\"\",this.objectNumber=-1}function F(t,e,r,n,i){if(!(this instanceof F))return new F(t,e,r,n,i);this.type=\"axial\"===t?2:3,this.coords=e,this.colors=r,k.call(this,n,i)}function I(t,e,r,n,i){if(!(this instanceof I))return new I(t,e,r,n,i);this.boundingBox=t,this.xStep=e,this.yStep=r,this.stream=\"\",this.cloneIndex=0,k.call(this,n,i)}function C(t){var e,i=\"string\"==typeof arguments[0]?arguments[0]:\"p\",o=arguments[1],c=arguments[2],u=arguments[3],l=[],h=1,f=16,d=\"S\",p=null;\"object\"==typeof(t=t||{})&&(i=t.orientation,o=t.unit||o,c=t.format||c,u=t.compress||t.compressPdf||u,null!==(p=t.encryption||null)&&(p.userPassword=p.userPassword||\"\",p.ownerPassword=p.ownerPassword||\"\",p.userPermissions=p.userPermissions||[]),h=\"number\"==typeof t.userUnit?Math.abs(t.userUnit):1,void 0!==t.precision&&(e=t.precision),void 0!==t.floatPrecision&&(f=t.floatPrecision),d=t.defaultPathOperation||\"S\"),l=t.filters||(!0===u?[\"FlateEncode\"]:l),o=o||\"mm\",i=(\"\"+(i||\"P\")).toLowerCase();var g=t.putOnlyUsedFonts||!1,m={},v={internal:{},__private__:{}};v.__private__.PubSub=_;var b=\"1.3\",y=v.__private__.getPdfVersion=function(){return b};v.__private__.setPdfVersion=function(t){b=t};var w={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],\"government-letter\":[576,756],legal:[612,1008],\"junior-legal\":[576,360],ledger:[1224,792],tabloid:[792,1224],\"credit-card\":[153,243]};v.__private__.getPageFormats=function(){return w};var N=v.__private__.getPageFormat=function(t){return w[t]};c=c||\"a4\";var L=\"compat\",x=\"advanced\",k=L;function j(){this.saveGraphicsState(),ct(new Ut(xt,0,0,-xt,0,Sr()*xt).toString()+\" cm\"),this.setFontSize(this.getFontSize()/xt),d=\"n\",k=x}function O(){this.restoreGraphicsState(),d=\"S\",k=L}var B=v.__private__.combineFontStyleAndFontWeight=function(t,e){if(\"bold\"==t&&\"normal\"==e||\"bold\"==t&&400==e||\"normal\"==t&&\"italic\"==e||\"bold\"==t&&\"italic\"==e)throw new Error(\"Invalid Combination of fontweight and fontstyle\");return e&&(t=400==e||\"normal\"===e?\"italic\"===t?\"italic\":\"normal\":700!=e&&\"bold\"!==e||\"normal\"!==t?(700==e?\"bold\":e)+\"\"+t:\"bold\"),t};v.advancedAPI=function(t){var e=k===L;return e&&j.call(this),\"function\"!=typeof t||(t(this),e&&O.call(this)),this},v.compatAPI=function(t){var e=k===x;return e&&O.call(this),\"function\"!=typeof t||(t(this),e&&j.call(this)),this},v.isAdvancedAPI=function(){return k===x};var q,M=function(t){if(k!==x)throw new Error(t+\" is only available in 'advanced' API mode. You need to call advancedAPI() first.\")},E=v.roundToPrecision=v.__private__.roundToPrecision=function(t,r){var n=e||r;if(isNaN(t)||isNaN(n))throw new Error(\"Invalid argument passed to jsPDF.roundToPrecision\");return t.toFixed(n).replace(/0+$/,\"\")};q=v.hpf=v.__private__.hpf=\"number\"==typeof f?function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return E(t,f)}:\"smart\"===f?function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return E(t,t>-1&&t<1?16:5)}:function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return E(t,16)};var R=v.f2=v.__private__.f2=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f2\");return E(t,2)},D=v.__private__.f3=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f3\");return E(t,3)},T=v.scale=v.__private__.scale=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.scale\");return k===L?t*xt:k===x?t:void 0},z=function(t){return T(function(t){return k===L?Sr()-t:k===x?t:void 0}(t))};v.__private__.setPrecision=v.setPrecision=function(t){\"number\"==typeof parseInt(t,10)&&(e=parseInt(t,10))};var U,H=\"00000000000000000000000000000000\",W=v.__private__.getFileId=function(){return H},V=v.__private__.setFileId=function(t){return H=void 0!==t&&/^[a-fA-F0-9]{32}$/.test(t)?t.toUpperCase():H.split(\"\").map(function(){return\"ABCDEF0123456789\".charAt(Math.floor(16*Math.random()))}).join(\"\"),null!==p&&(Ce=new A(p.userPermissions,p.userPassword,p.ownerPassword,H)),H};v.setFileId=function(t){return V(t),this},v.getFileId=function(){return W()};var G=v.__private__.convertDateToPDFDate=function(t){var e=t.getTimezoneOffset(),r=e<0?\"+\":\"-\",n=Math.floor(Math.abs(e/60)),i=Math.abs(e%60),a=[r,$(n),\"'\",$(i),\"'\"].join(\"\");return[\"D:\",t.getFullYear(),$(t.getMonth()+1),$(t.getDate()),$(t.getHours()),$(t.getMinutes()),$(t.getSeconds()),a].join(\"\")},Y=v.__private__.convertPDFDateToDate=function(t){var e=parseInt(t.substr(2,4),10),r=parseInt(t.substr(6,2),10)-1,n=parseInt(t.substr(8,2),10),i=parseInt(t.substr(10,2),10),a=parseInt(t.substr(12,2),10),o=parseInt(t.substr(14,2),10);return new Date(e,r,n,i,a,o,0)},J=v.__private__.setCreationDate=function(t){var e;if(void 0===t&&(t=new Date),t instanceof Date)e=G(t);else{if(!/^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/.test(t))throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");e=t}return U=e},X=v.__private__.getCreationDate=function(t){var e=U;return\"jsDate\"===t&&(e=Y(U)),e};v.setCreationDate=function(t){return J(t),this},v.getCreationDate=function(t){return X(t)};var K,$=v.__private__.padd2=function(t){return(\"0\"+parseInt(t)).slice(-2)},Z=v.__private__.padd2Hex=function(t){return(\"00\"+(t=t.toString())).substr(t.length)},Q=0,tt=[],et=[],rt=0,nt=[],it=[],at=!1,ot=et;v.__private__.setCustomOutputDestination=function(t){at=!0,ot=t};var st=function(t){at||(ot=t)};v.__private__.resetCustomOutputDestination=function(){at=!1,ot=et};var ct=v.__private__.out=function(t){return t=t.toString(),rt+=t.length+1,ot.push(t),ot},ut=v.__private__.write=function(t){return ct(1===arguments.length?t.toString():Array.prototype.join.call(arguments,\" \"))},lt=v.__private__.getArrayBuffer=function(t){for(var e=t.length,r=new ArrayBuffer(e),n=new Uint8Array(r);e--;)n[e]=t.charCodeAt(e);return r},ht=[[\"Helvetica\",\"helvetica\",\"normal\",\"WinAnsiEncoding\"],[\"Helvetica-Bold\",\"helvetica\",\"bold\",\"WinAnsiEncoding\"],[\"Helvetica-Oblique\",\"helvetica\",\"italic\",\"WinAnsiEncoding\"],[\"Helvetica-BoldOblique\",\"helvetica\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Courier\",\"courier\",\"normal\",\"WinAnsiEncoding\"],[\"Courier-Bold\",\"courier\",\"bold\",\"WinAnsiEncoding\"],[\"Courier-Oblique\",\"courier\",\"italic\",\"WinAnsiEncoding\"],[\"Courier-BoldOblique\",\"courier\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Times-Roman\",\"times\",\"normal\",\"WinAnsiEncoding\"],[\"Times-Bold\",\"times\",\"bold\",\"WinAnsiEncoding\"],[\"Times-Italic\",\"times\",\"italic\",\"WinAnsiEncoding\"],[\"Times-BoldItalic\",\"times\",\"bolditalic\",\"WinAnsiEncoding\"],[\"ZapfDingbats\",\"zapfdingbats\",\"normal\",null],[\"Symbol\",\"symbol\",\"normal\",null]];v.__private__.getStandardFonts=function(){return ht};var ft=t.fontSize||16;v.__private__.setFontSize=v.setFontSize=function(t){return ft=k===x?t/xt:t,this};var dt,pt=v.__private__.getFontSize=v.getFontSize=function(){return k===L?ft:ft*xt},gt=t.R2L||!1;v.__private__.setR2L=v.setR2L=function(t){return gt=t,this},v.__private__.getR2L=v.getR2L=function(){return gt};var mt,vt=v.__private__.setZoomMode=function(t){if(/^(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+)%$/.test(t))dt=t;else if(isNaN(t)){if(-1===[void 0,null,\"fullwidth\",\"fullheight\",\"fullpage\",\"original\"].indexOf(t))throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"'+t+'\" is not recognized.');dt=t}else dt=parseInt(t,10)};v.__private__.getZoomMode=function(){return dt};var bt,yt=v.__private__.setPageMode=function(t){if(-1==[void 0,null,\"UseNone\",\"UseOutlines\",\"UseThumbs\",\"FullScreen\"].indexOf(t))throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"'+t+'\" is not recognized.');mt=t};v.__private__.getPageMode=function(){return mt};var wt=v.__private__.setLayoutMode=function(t){if(-1==[void 0,null,\"continuous\",\"single\",\"twoleft\",\"tworight\",\"two\"].indexOf(t))throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. \"'+t+'\" is not recognized.');bt=t};v.__private__.getLayoutMode=function(){return bt},v.__private__.setDisplayMode=v.setDisplayMode=function(t,e,r){return vt(t),wt(e),yt(r),this};var Nt={title:\"\",subject:\"\",author:\"\",keywords:\"\",creator:\"\"};v.__private__.getDocumentProperty=function(t){if(-1===Object.keys(Nt).indexOf(t))throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");return Nt[t]},v.__private__.getDocumentProperties=function(){return Nt},v.__private__.setDocumentProperties=v.setProperties=v.setDocumentProperties=function(t){for(var e in Nt)Nt.hasOwnProperty(e)&&t[e]&&(Nt[e]=t[e]);return this},v.__private__.setDocumentProperty=function(t,e){if(-1===Object.keys(Nt).indexOf(t))throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");return Nt[t]=e};var Lt,xt,At,St,_t,Pt={},kt={},Ft=[],It={},Ct={},jt={},Ot={},Bt=null,qt=0,Mt=[],Et=new _(v),Rt=t.hotfixes||[],Dt={},Tt={},zt=[],Ut=function(t,e,r,n,i,a){if(!(this instanceof Ut))return new Ut(t,e,r,n,i,a);isNaN(t)&&(t=1),isNaN(e)&&(e=0),isNaN(r)&&(r=0),isNaN(n)&&(n=1),isNaN(i)&&(i=0),isNaN(a)&&(a=0),this._matrix=[t,e,r,n,i,a]};Object.defineProperty(Ut.prototype,\"sx\",{get:function(){return this._matrix[0]},set:function(t){this._matrix[0]=t}}),Object.defineProperty(Ut.prototype,\"shy\",{get:function(){return this._matrix[1]},set:function(t){this._matrix[1]=t}}),Object.defineProperty(Ut.prototype,\"shx\",{get:function(){return this._matrix[2]},set:function(t){this._matrix[2]=t}}),Object.defineProperty(Ut.prototype,\"sy\",{get:function(){return this._matrix[3]},set:function(t){this._matrix[3]=t}}),Object.defineProperty(Ut.prototype,\"tx\",{get:function(){return this._matrix[4]},set:function(t){this._matrix[4]=t}}),Object.defineProperty(Ut.prototype,\"ty\",{get:function(){return this._matrix[5]},set:function(t){this._matrix[5]=t}}),Object.defineProperty(Ut.prototype,\"a\",{get:function(){return this._matrix[0]},set:function(t){this._matrix[0]=t}}),Object.defineProperty(Ut.prototype,\"b\",{get:function(){return this._matrix[1]},set:function(t){this._matrix[1]=t}}),Object.defineProperty(Ut.prototype,\"c\",{get:function(){return this._matrix[2]},set:function(t){this._matrix[2]=t}}),Object.defineProperty(Ut.prototype,\"d\",{get:function(){return this._matrix[3]},set:function(t){this._matrix[3]=t}}),Object.defineProperty(Ut.prototype,\"e\",{get:function(){return this._matrix[4]},set:function(t){this._matrix[4]=t}}),Object.defineProperty(Ut.prototype,\"f\",{get:function(){return this._matrix[5]},set:function(t){this._matrix[5]=t}}),Object.defineProperty(Ut.prototype,\"rotation\",{get:function(){return Math.atan2(this.shx,this.sx)}}),Object.defineProperty(Ut.prototype,\"scaleX\",{get:function(){return this.decompose().scale.sx}}),Object.defineProperty(Ut.prototype,\"scaleY\",{get:function(){return this.decompose().scale.sy}}),Object.defineProperty(Ut.prototype,\"isIdentity\",{get:function(){return 1===this.sx&&0===this.shy&&0===this.shx&&1===this.sy&&0===this.tx&&0===this.ty}}),Ut.prototype.join=function(t){return[this.sx,this.shy,this.shx,this.sy,this.tx,this.ty].map(q).join(t)},Ut.prototype.multiply=function(t){var e=t.sx*this.sx+t.shy*this.shx,r=t.sx*this.shy+t.shy*this.sy,n=t.shx*this.sx+t.sy*this.shx,i=t.shx*this.shy+t.sy*this.sy,a=t.tx*this.sx+t.ty*this.shx+this.tx,o=t.tx*this.shy+t.ty*this.sy+this.ty;return new Ut(e,r,n,i,a,o)},Ut.prototype.decompose=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty,o=Math.sqrt(t*t+e*e),s=(t/=o)*r+(e/=o)*n;r-=t*s,n-=e*s;var c=Math.sqrt(r*r+n*n);return s/=c,t*(n/=c)<e*(r/=c)&&(t=-t,e=-e,s=-s,o=-o),{scale:new Ut(o,0,0,c,0,0),translate:new Ut(1,0,0,1,i,a),rotate:new Ut(t,e,-e,t,0,0),skew:new Ut(1,0,s,1,0,0)}},Ut.prototype.toString=function(t){return this.join(\" \")},Ut.prototype.inversed=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty,o=1/(t*n-e*r),s=n*o,c=-e*o,u=-r*o,l=t*o;return new Ut(s,c,u,l,-s*i-u*a,-c*i-l*a)},Ut.prototype.applyToPoint=function(t){var e=t.x*this.sx+t.y*this.shx+this.tx,r=t.x*this.shy+t.y*this.sy+this.ty;return new pr(e,r)},Ut.prototype.applyToRectangle=function(t){var e=this.applyToPoint(t),r=this.applyToPoint(new pr(t.x+t.w,t.y+t.h));return new gr(e.x,e.y,r.x-e.x,r.y-e.y)},Ut.prototype.clone=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty;return new Ut(t,e,r,n,i,a)},v.Matrix=Ut;var Ht=v.matrixMult=function(t,e){return e.multiply(t)},Wt=new Ut(1,0,0,1,0,0);v.unitMatrix=v.identityMatrix=Wt;var Vt=function(t,e){if(!Ct[t]){var r=(e instanceof F?\"Sh\":\"P\")+(Object.keys(It).length+1).toString(10);e.id=r,Ct[t]=r,It[r]=e,Et.publish(\"addPattern\",e)}};v.ShadingPattern=F,v.TilingPattern=I,v.addShadingPattern=function(t,e){return M(\"addShadingPattern()\"),Vt(t,e),this},v.beginTilingPattern=function(t){M(\"beginTilingPattern()\"),vr(t.boundingBox[0],t.boundingBox[1],t.boundingBox[2]-t.boundingBox[0],t.boundingBox[3]-t.boundingBox[1],t.matrix)},v.endTilingPattern=function(t,e){M(\"endTilingPattern()\"),e.stream=it[K].join(\"\\n\"),Vt(t,e),Et.publish(\"endTilingPattern\",e),zt.pop().restore()};var Gt,Yt=v.__private__.newObject=function(){var t=Jt();return Xt(t,!0),t},Jt=v.__private__.newObjectDeferred=function(){return Q++,tt[Q]=function(){return rt},Q},Xt=function(t,e){return e=\"boolean\"==typeof e&&e,tt[t]=rt,e&&ct(t+\" 0 obj\"),t},Kt=v.__private__.newAdditionalObject=function(){var t={objId:Jt(),content:\"\"};return nt.push(t),t},$t=Jt(),Zt=Jt(),Qt=v.__private__.decodeColorString=function(t){var e=t.split(\" \");if(2!==e.length||\"g\"!==e[1]&&\"G\"!==e[1])5!==e.length||\"k\"!==e[4]&&\"K\"!==e[4]||(e=[(1-e[0])*(1-e[3]),(1-e[1])*(1-e[3]),(1-e[2])*(1-e[3]),\"r\"]);else{var r=parseFloat(e[0]);e=[r,r,r,\"r\"]}for(var n=\"#\",i=0;i<3;i++)n+=(\"0\"+Math.floor(255*parseFloat(e[i])).toString(16)).slice(-2);return n},te=v.__private__.encodeColorString=function(t){var e;\"string\"==typeof t&&(t={ch1:t});var r=t.ch1,i=t.ch2,a=t.ch3,o=t.ch4,s=\"draw\"===t.pdfColorType?[\"G\",\"RG\",\"K\"]:[\"g\",\"rg\",\"k\"];if(\"string\"==typeof r&&\"#\"!==r.charAt(0)){var c=new n(r);if(c.ok)r=c.toHex();else if(!/^\\d*\\.?\\d*$/.test(r))throw new Error('Invalid color \"'+r+'\" passed to jsPDF.encodeColorString.')}if(\"string\"==typeof r&&/^#[0-9A-Fa-f]{3}$/.test(r)&&(r=\"#\"+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]),\"string\"==typeof r&&/^#[0-9A-Fa-f]{6}$/.test(r)){var u=parseInt(r.substr(1),16);r=u>>16&255,i=u>>8&255,a=255&u}if(void 0===i||void 0===o&&r===i&&i===a)e=\"string\"==typeof r?r+\" \"+s[0]:2===t.precision?R(r/255)+\" \"+s[0]:D(r/255)+\" \"+s[0];else if(void 0===o||\"object\"==typeof o){if(o&&!isNaN(o.a)&&0===o.a)return[\"1.\",\"1.\",\"1.\",s[1]].join(\" \");e=\"string\"==typeof r?[r,i,a,s[1]].join(\" \"):2===t.precision?[R(r/255),R(i/255),R(a/255),s[1]].join(\" \"):[D(r/255),D(i/255),D(a/255),s[1]].join(\" \")}else e=\"string\"==typeof r?[r,i,a,o,s[2]].join(\" \"):2===t.precision?[R(r),R(i),R(a),R(o),s[2]].join(\" \"):[D(r),D(i),D(a),D(o),s[2]].join(\" \");return e},ee=v.__private__.getFilters=function(){return l},re=v.__private__.putStream=function(t){var e=(t=t||{}).data||\"\",r=t.filters||ee(),n=t.alreadyAppliedFilters||[],i=t.addLength1||!1,a=e.length,o=t.objectId,s=function(t){return t};if(null!==p&&void 0===o)throw new Error(\"ObjectId must be passed to putStream for file encryption\");null!==p&&(s=Ce.encryptor(o,0));var c={};!0===r&&(r=[\"FlateEncode\"]);var u=t.additionalKeyValues||[],l=(c=void 0!==C.API.processDataByFilters?C.API.processDataByFilters(e,r):{data:e,reverseChain:[]}).reverseChain+(Array.isArray(n)?n.join(\" \"):n.toString());if(0!==c.data.length&&(u.push({key:\"Length\",value:c.data.length}),!0===i&&u.push({key:\"Length1\",value:a})),0!=l.length)if(l.split(\"/\").length-1==1)u.push({key:\"Filter\",value:l});else{u.push({key:\"Filter\",value:\"[\"+l+\"]\"});for(var h=0;h<u.length;h+=1)if(\"DecodeParms\"===u[h].key){for(var f=[],d=0;d<c.reverseChain.split(\"/\").length-1;d+=1)f.push(\"null\");f.push(u[h].value),u[h].value=\"[\"+f.join(\" \")+\"]\"}}ct(\"<<\");for(var g=0;g<u.length;g++)ct(\"/\"+u[g].key+\" \"+u[g].value);ct(\">>\"),0!==c.data.length&&(ct(\"stream\"),ct(s(c.data)),ct(\"endstream\"))},ne=v.__private__.putPage=function(t){var e=t.number,r=t.data,n=t.objId,i=t.contentsObjId;Xt(n,!0),ct(\"<</Type /Page\"),ct(\"/Parent \"+t.rootDictionaryObjId+\" 0 R\"),ct(\"/Resources \"+t.resourceDictionaryObjId+\" 0 R\"),ct(\"/MediaBox [\"+parseFloat(q(t.mediaBox.bottomLeftX))+\" \"+parseFloat(q(t.mediaBox.bottomLeftY))+\" \"+q(t.mediaBox.topRightX)+\" \"+q(t.mediaBox.topRightY)+\"]\"),null!==t.cropBox&&ct(\"/CropBox [\"+q(t.cropBox.bottomLeftX)+\" \"+q(t.cropBox.bottomLeftY)+\" \"+q(t.cropBox.topRightX)+\" \"+q(t.cropBox.topRightY)+\"]\"),null!==t.bleedBox&&ct(\"/BleedBox [\"+q(t.bleedBox.bottomLeftX)+\" \"+q(t.bleedBox.bottomLeftY)+\" \"+q(t.bleedBox.topRightX)+\" \"+q(t.bleedBox.topRightY)+\"]\"),null!==t.trimBox&&ct(\"/TrimBox [\"+q(t.trimBox.bottomLeftX)+\" \"+q(t.trimBox.bottomLeftY)+\" \"+q(t.trimBox.topRightX)+\" \"+q(t.trimBox.topRightY)+\"]\"),null!==t.artBox&&ct(\"/ArtBox [\"+q(t.artBox.bottomLeftX)+\" \"+q(t.artBox.bottomLeftY)+\" \"+q(t.artBox.topRightX)+\" \"+q(t.artBox.topRightY)+\"]\"),\"number\"==typeof t.userUnit&&1!==t.userUnit&&ct(\"/UserUnit \"+t.userUnit),Et.publish(\"putPage\",{objId:n,pageContext:Mt[e],pageNumber:e,page:r}),ct(\"/Contents \"+i+\" 0 R\"),ct(\">>\"),ct(\"endobj\");var a=r.join(\"\\n\");return k===x&&(a+=\"\\nQ\"),Xt(i,!0),re({data:a,filters:ee(),objectId:i}),ct(\"endobj\"),n},ie=v.__private__.putPages=function(){var t,e,r=[];for(t=1;t<=qt;t++)Mt[t].objId=Jt(),Mt[t].contentsObjId=Jt();for(t=1;t<=qt;t++)r.push(ne({number:t,data:it[t],objId:Mt[t].objId,contentsObjId:Mt[t].contentsObjId,mediaBox:Mt[t].mediaBox,cropBox:Mt[t].cropBox,bleedBox:Mt[t].bleedBox,trimBox:Mt[t].trimBox,artBox:Mt[t].artBox,userUnit:Mt[t].userUnit,rootDictionaryObjId:$t,resourceDictionaryObjId:Zt}));Xt($t,!0),ct(\"<</Type /Pages\");var n=\"/Kids [\";for(e=0;e<qt;e++)n+=r[e]+\" 0 R \";ct(n+\"]\"),ct(\"/Count \"+qt),ct(\">>\"),ct(\"endobj\"),Et.publish(\"postPutPages\")},ae=function(t){Et.publish(\"putFont\",{font:t,out:ct,newObject:Yt,putStream:re}),!0!==t.isAlreadyPutted&&(t.objectNumber=Yt(),ct(\"<<\"),ct(\"/Type /Font\"),ct(\"/BaseFont /\"+S(t.postScriptName)),ct(\"/Subtype /Type1\"),\"string\"==typeof t.encoding&&ct(\"/Encoding /\"+t.encoding),ct(\"/FirstChar 32\"),ct(\"/LastChar 255\"),ct(\">>\"),ct(\"endobj\"))},oe=function(t){t.objectNumber=Yt();var e=[];e.push({key:\"Type\",value:\"/XObject\"}),e.push({key:\"Subtype\",value:\"/Form\"}),e.push({key:\"BBox\",value:\"[\"+[q(t.x),q(t.y),q(t.x+t.width),q(t.y+t.height)].join(\" \")+\"]\"}),e.push({key:\"Matrix\",value:\"[\"+t.matrix.toString()+\"]\"});var r=t.pages[1].join(\"\\n\");re({data:r,additionalKeyValues:e,objectId:t.objectNumber}),ct(\"endobj\")},se=function(t,e){e||(e=21);var r=Yt(),n=function(t,e){var r,n=[],i=1/(e-1);for(r=0;r<1;r+=i)n.push(r);if(n.push(1),0!=t[0].offset){var a={offset:0,color:t[0].color};t.unshift(a)}if(1!=t[t.length-1].offset){var o={offset:1,color:t[t.length-1].color};t.push(o)}for(var s=\"\",c=0,u=0;u<n.length;u++){for(r=n[u];r>t[c+1].offset;)c++;var l=t[c].offset,h=(r-l)/(t[c+1].offset-l),f=t[c].color,d=t[c+1].color;s+=Z(Math.round((1-h)*f[0]+h*d[0]).toString(16))+Z(Math.round((1-h)*f[1]+h*d[1]).toString(16))+Z(Math.round((1-h)*f[2]+h*d[2]).toString(16))}return s.trim()}(t.colors,e),i=[];i.push({key:\"FunctionType\",value:\"0\"}),i.push({key:\"Domain\",value:\"[0.0 1.0]\"}),i.push({key:\"Size\",value:\"[\"+e+\"]\"}),i.push({key:\"BitsPerSample\",value:\"8\"}),i.push({key:\"Range\",value:\"[0.0 1.0 0.0 1.0 0.0 1.0]\"}),i.push({key:\"Decode\",value:\"[0.0 1.0 0.0 1.0 0.0 1.0]\"}),re({data:n,additionalKeyValues:i,alreadyAppliedFilters:[\"/ASCIIHexDecode\"],objectId:r}),ct(\"endobj\"),t.objectNumber=Yt(),ct(\"<< /ShadingType \"+t.type),ct(\"/ColorSpace /DeviceRGB\");var a=\"/Coords [\"+q(parseFloat(t.coords[0]))+\" \"+q(parseFloat(t.coords[1]))+\" \";2===t.type?a+=q(parseFloat(t.coords[2]))+\" \"+q(parseFloat(t.coords[3])):a+=q(parseFloat(t.coords[2]))+\" \"+q(parseFloat(t.coords[3]))+\" \"+q(parseFloat(t.coords[4]))+\" \"+q(parseFloat(t.coords[5])),ct(a+=\"]\"),t.matrix&&ct(\"/Matrix [\"+t.matrix.toString()+\"]\"),ct(\"/Function \"+r+\" 0 R\"),ct(\"/Extend [true true]\"),ct(\">>\"),ct(\"endobj\")},ce=function(t,e){var r=Jt(),n=Yt();e.push({resourcesOid:r,objectOid:n}),t.objectNumber=n;var i=[];i.push({key:\"Type\",value:\"/Pattern\"}),i.push({key:\"PatternType\",value:\"1\"}),i.push({key:\"PaintType\",value:\"1\"}),i.push({key:\"TilingType\",value:\"1\"}),i.push({key:\"BBox\",value:\"[\"+t.boundingBox.map(q).join(\" \")+\"]\"}),i.push({key:\"XStep\",value:q(t.xStep)}),i.push({key:\"YStep\",value:q(t.yStep)}),i.push({key:\"Resources\",value:r+\" 0 R\"}),t.matrix&&i.push({key:\"Matrix\",value:\"[\"+t.matrix.toString()+\"]\"}),re({data:t.stream,additionalKeyValues:i,objectId:t.objectNumber}),ct(\"endobj\")},ue=function(t){for(var e in t.objectNumber=Yt(),ct(\"<<\"),t)switch(e){case\"opacity\":ct(\"/ca \"+R(t[e]));break;case\"stroke-opacity\":ct(\"/CA \"+R(t[e]))}ct(\">>\"),ct(\"endobj\")},le=function(t){Xt(t.resourcesOid,!0),ct(\"<<\"),ct(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\"),function(){for(var t in ct(\"/Font <<\"),Pt)Pt.hasOwnProperty(t)&&(!1===g||!0===g&&m.hasOwnProperty(t))&&ct(\"/\"+t+\" \"+Pt[t].objectNumber+\" 0 R\");ct(\">>\")}(),function(){if(Object.keys(It).length>0){for(var t in ct(\"/Shading <<\"),It)It.hasOwnProperty(t)&&It[t]instanceof F&&It[t].objectNumber>=0&&ct(\"/\"+t+\" \"+It[t].objectNumber+\" 0 R\");Et.publish(\"putShadingPatternDict\"),ct(\">>\")}}(),function(t){if(Object.keys(It).length>0){for(var e in ct(\"/Pattern <<\"),It)It.hasOwnProperty(e)&&It[e]instanceof v.TilingPattern&&It[e].objectNumber>=0&&It[e].objectNumber<t&&ct(\"/\"+e+\" \"+It[e].objectNumber+\" 0 R\");Et.publish(\"putTilingPatternDict\"),ct(\">>\")}}(t.objectOid),function(){if(Object.keys(jt).length>0){var t;for(t in ct(\"/ExtGState <<\"),jt)jt.hasOwnProperty(t)&&jt[t].objectNumber>=0&&ct(\"/\"+t+\" \"+jt[t].objectNumber+\" 0 R\");Et.publish(\"putGStateDict\"),ct(\">>\")}}(),function(){for(var t in ct(\"/XObject <<\"),Dt)Dt.hasOwnProperty(t)&&Dt[t].objectNumber>=0&&ct(\"/\"+t+\" \"+Dt[t].objectNumber+\" 0 R\");Et.publish(\"putXobjectDict\"),ct(\">>\")}(),ct(\">>\"),ct(\"endobj\")},he=function(t){kt[t.fontName]=kt[t.fontName]||{},kt[t.fontName][t.fontStyle]=t.id},fe=function(t,e,r,n,i){var a={id:\"F\"+(Object.keys(Pt).length+1).toString(10),postScriptName:t,fontName:e,fontStyle:r,encoding:n,isStandardFont:i||!1,metadata:{}};return Et.publish(\"addFont\",{font:a,instance:this}),Pt[a.id]=a,he(a),a.id},de=v.__private__.pdfEscape=v.pdfEscape=function(t,e){return function(t,e){var r,n,i,a,o,s,c,u,l;if(i=(e=e||{}).sourceEncoding||\"Unicode\",o=e.outputEncoding,(e.autoencode||o)&&Pt[Lt].metadata&&Pt[Lt].metadata[i]&&Pt[Lt].metadata[i].encoding&&(a=Pt[Lt].metadata[i].encoding,!o&&Pt[Lt].encoding&&(o=Pt[Lt].encoding),!o&&a.codePages&&(o=a.codePages[0]),\"string\"==typeof o&&(o=a[o]),o)){for(c=!1,s=[],r=0,n=t.length;r<n;r++)(u=o[t.charCodeAt(r)])?s.push(String.fromCharCode(u)):s.push(t[r]),s[r].charCodeAt(0)>>8&&(c=!0);t=s.join(\"\")}for(r=t.length;void 0===c&&0!==r;)t.charCodeAt(r-1)>>8&&(c=!0),r--;if(!c)return t;for(s=e.noBOM?[]:[254,255],r=0,n=t.length;r<n;r++){if((l=(u=t.charCodeAt(r))>>8)>>8)throw new Error(\"Character at position \"+r+\" of string '\"+t+\"' exceeds 16bits. Cannot be encoded into UCS-2 BE\");s.push(l),s.push(u-(l<<8))}return String.fromCharCode.apply(void 0,s)}(t,e).replace(/\\\\/g,\"\\\\\\\\\").replace(/\\(/g,\"\\\\(\").replace(/\\)/g,\"\\\\)\")},pe=v.__private__.beginPage=function(t){it[++qt]=[],Mt[qt]={objId:0,contentsObjId:0,userUnit:Number(h),artBox:null,bleedBox:null,cropBox:null,trimBox:null,mediaBox:{bottomLeftX:0,bottomLeftY:0,topRightX:Number(t[0]),topRightY:Number(t[1])}},ve(qt),st(it[K])},ge=function(t,e){var r,n,a;switch(i=e||i,\"string\"==typeof t&&(r=N(t.toLowerCase()),Array.isArray(r)&&(n=r[0],a=r[1])),Array.isArray(t)&&(n=t[0]*xt,a=t[1]*xt),isNaN(n)&&(n=c[0],a=c[1]),(n>14400||a>14400)&&(s.warn(\"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"),n=Math.min(14400,n),a=Math.min(14400,a)),c=[n,a],i.substr(0,1)){case\"l\":a>n&&(c=[a,n]);break;case\"p\":n>a&&(c=[a,n])}pe(c),$e(Xe),ct(ar),0!==hr&&ct(hr+\" J\"),0!==fr&&ct(fr+\" j\"),Et.publish(\"addPage\",{pageNumber:qt})},me=function(t){t>0&&t<=qt&&(it.splice(t,1),Mt.splice(t,1),qt--,K>qt&&(K=qt),this.setPage(K))},ve=function(t){t>0&&t<=qt&&(K=t)},be=v.__private__.getNumberOfPages=v.getNumberOfPages=function(){return it.length-1},ye=function(t,e,r){var n,i=void 0;return r=r||{},t=void 0!==t?t:Pt[Lt].fontName,e=void 0!==e?e:Pt[Lt].fontStyle,n=t.toLowerCase(),void 0!==kt[n]&&void 0!==kt[n][e]?i=kt[n][e]:void 0!==kt[t]&&void 0!==kt[t][e]?i=kt[t][e]:!1===r.disableWarning&&s.warn(\"Unable to look up font label for font '\"+t+\"', '\"+e+\"'. Refer to getFontList() for available fonts.\"),i||r.noFallback||null==(i=kt.times[e])&&(i=kt.times.normal),i},we=v.__private__.putInfo=function(){var t=Yt(),e=function(t){return t};for(var r in null!==p&&(e=Ce.encryptor(t,0)),ct(\"<<\"),ct(\"/Producer (\"+de(e(\"jsPDF \"+C.version))+\")\"),Nt)Nt.hasOwnProperty(r)&&Nt[r]&&ct(\"/\"+r.substr(0,1).toUpperCase()+r.substr(1)+\" (\"+de(e(Nt[r]))+\")\");ct(\"/CreationDate (\"+de(e(U))+\")\"),ct(\">>\"),ct(\"endobj\")},Ne=v.__private__.putCatalog=function(t){var e=(t=t||{}).rootDictionaryObjId||$t;switch(Yt(),ct(\"<<\"),ct(\"/Type /Catalog\"),ct(\"/Pages \"+e+\" 0 R\"),dt||(dt=\"fullwidth\"),dt){case\"fullwidth\":ct(\"/OpenAction [3 0 R /FitH null]\");break;case\"fullheight\":ct(\"/OpenAction [3 0 R /FitV null]\");break;case\"fullpage\":ct(\"/OpenAction [3 0 R /Fit]\");break;case\"original\":ct(\"/OpenAction [3 0 R /XYZ null null 1]\");break;default:var r=\"\"+dt;\"%\"===r.substr(r.length-1)&&(dt=parseInt(dt)/100),\"number\"==typeof dt&&ct(\"/OpenAction [3 0 R /XYZ null null \"+R(dt)+\"]\")}switch(bt||(bt=\"continuous\"),bt){case\"continuous\":ct(\"/PageLayout /OneColumn\");break;case\"single\":ct(\"/PageLayout /SinglePage\");break;case\"two\":case\"twoleft\":ct(\"/PageLayout /TwoColumnLeft\");break;case\"tworight\":ct(\"/PageLayout /TwoColumnRight\")}mt&&ct(\"/PageMode /\"+mt),Et.publish(\"putCatalog\"),ct(\">>\"),ct(\"endobj\")},Le=v.__private__.putTrailer=function(){ct(\"trailer\"),ct(\"<<\"),ct(\"/Size \"+(Q+1)),ct(\"/Root \"+Q+\" 0 R\"),ct(\"/Info \"+(Q-1)+\" 0 R\"),null!==p&&ct(\"/Encrypt \"+Ce.oid+\" 0 R\"),ct(\"/ID [ <\"+H+\"> <\"+H+\"> ]\"),ct(\">>\")},xe=v.__private__.putHeader=function(){ct(\"%PDF-\"+b),ct(\"%ºß¬à\")},Ae=v.__private__.putXRef=function(){var t=\"0000000000\";ct(\"xref\"),ct(\"0 \"+(Q+1)),ct(\"0000000000 65535 f \");for(var e=1;e<=Q;e++)\"function\"==typeof tt[e]?ct((t+tt[e]()).slice(-10)+\" 00000 n \"):void 0!==tt[e]?ct((t+tt[e]).slice(-10)+\" 00000 n \"):ct(\"0000000000 00000 n \")},Se=v.__private__.buildDocument=function(){var t;Q=0,rt=0,et=[],tt=[],nt=[],$t=Jt(),Zt=Jt(),st(et),Et.publish(\"buildDocument\"),xe(),ie(),function(){Et.publish(\"putAdditionalObjects\");for(var t=0;t<nt.length;t++){var e=nt[t];Xt(e.objId,!0),ct(e.content),ct(\"endobj\")}Et.publish(\"postPutAdditionalObjects\")}(),t=[],function(){for(var t in Pt)Pt.hasOwnProperty(t)&&(!1===g||!0===g&&m.hasOwnProperty(t))&&ae(Pt[t])}(),function(){var t;for(t in jt)jt.hasOwnProperty(t)&&ue(jt[t])}(),function(){for(var t in Dt)Dt.hasOwnProperty(t)&&oe(Dt[t])}(),function(t){var e;for(e in It)It.hasOwnProperty(e)&&(It[e]instanceof F?se(It[e]):It[e]instanceof I&&ce(It[e],t))}(t),Et.publish(\"putResources\"),t.forEach(le),le({resourcesOid:Zt,objectOid:Number.MAX_SAFE_INTEGER}),Et.publish(\"postPutResources\"),null!==p&&(Ce.oid=Yt(),ct(\"<<\"),ct(\"/Filter /Standard\"),ct(\"/V \"+Ce.v),ct(\"/R \"+Ce.r),ct(\"/U <\"+Ce.toHexString(Ce.U)+\">\"),ct(\"/O <\"+Ce.toHexString(Ce.O)+\">\"),ct(\"/P \"+Ce.P),ct(\">>\"),ct(\"endobj\")),we(),Ne();var e=rt;return Ae(),Le(),ct(\"startxref\"),ct(\"\"+e),ct(\"%%EOF\"),st(it[K]),et.join(\"\\n\")},_e=v.__private__.getBlob=function(t){return new Blob([lt(t)],{type:\"application/pdf\"})},Pe=function(t){for(;t.firstChild;)t.removeChild(t.firstChild)},ke=function(t){var e,r=t.document,n=r.documentElement,i=r.head,a=r.body;return i||(i=r.createElement(\"head\"),n.appendChild(i)),a||(a=r.createElement(\"body\"),n.appendChild(a)),Pe(i),Pe(a),(e=r.createElement(\"style\")).appendChild(r.createTextNode(\"html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}\")),i.appendChild(e),{document:r,body:a}},Fe=v.output=v.__private__.output=(Gt=function(t,e){switch(\"string\"==typeof(e=e||{})?e={filename:e}:e.filename=e.filename||\"generated.pdf\",t){case void 0:return Se();case\"save\":v.save(e.filename);break;case\"arraybuffer\":return lt(Se());case\"blob\":return _e(Se());case\"bloburi\":case\"bloburl\":if(void 0!==r.URL&&\"function\"==typeof r.URL.createObjectURL)return r.URL&&r.URL.createObjectURL(_e(Se()))||void 0;s.warn(\"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\");break;case\"datauristring\":case\"dataurlstring\":var n=\"\",i=Se();try{n=a(i)}catch(L){n=a(unescape(encodeURIComponent(i)))}return\"data:application/pdf;filename=\"+encodeURIComponent(e.filename)+\";base64,\"+n;case\"pdfobjectnewwindow\":if(\"[object Window]\"===Object.prototype.toString.call(r)){var o=\"https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\",c=!e.pdfObjectUrl;c||(o=e.pdfObjectUrl);var u=r.open();if(null!==u){var l=ke(u),h=l.document.createElement(\"script\"),f=this;h.src=o,c&&(h.integrity=\"sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==\",h.crossOrigin=\"anonymous\"),h.onload=function(){u.PDFObject.embed(f.output(\"dataurlstring\"),e)},l.body.appendChild(h)}return u}throw new Error(\"The option pdfobjectnewwindow just works in a browser-environment.\");case\"pdfjsnewwindow\":if(\"[object Window]\"===Object.prototype.toString.call(r)){var d=e.pdfJsUrl||\"examples/PDF.js/web/viewer.html\",p=r.open();if(null!==p){var g=ke(p),m=g.document.createElement(\"iframe\"),b=-1===d.indexOf(\"?\")?\"?\":\"&\";f=this,m.id=\"pdfViewer\",m.width=\"500px\",m.height=\"400px\",m.src=d+b+\"file=&downloadName=\"+encodeURIComponent(e.filename),m.onload=function(){p.document.title=e.filename,m.contentWindow.PDFViewerApplication.open(f.output(\"bloburl\"))},g.body.appendChild(m)}return p}throw new Error(\"The option pdfjsnewwindow just works in a browser-environment.\");case\"dataurlnewwindow\":if(\"[object Window]\"!==Object.prototype.toString.call(r))throw new Error(\"The option dataurlnewwindow just works in a browser-environment.\");var y=r.open();if(null!==y){var w=ke(y),N=w.document.createElement(\"iframe\");N.src=this.output(\"datauristring\",e),w.body.appendChild(N),y.document.title=e.filename}if(y||\"undefined\"==typeof safari)return y;break;case\"datauri\":case\"dataurl\":return r.document.location.href=this.output(\"datauristring\",e);default:return null}},Gt.foo=function(){try{return Gt.apply(this,arguments)}catch(n){var t=n.stack||\"\";~t.indexOf(\" at \")&&(t=t.split(\" at \")[1]);var e=\"Error in function \"+t.split(\"\\n\")[0].split(\"<\")[0]+\": \"+n.message;if(!r.console)throw new Error(e);r.console.error(e,n),r.alert&&alert(e)}},Gt.foo.bar=Gt,Gt.foo),Ie=function(t){return!0===Array.isArray(Rt)&&Rt.indexOf(t)>-1};switch(o){case\"pt\":xt=1;break;case\"mm\":xt=72/25.4;break;case\"cm\":xt=72/2.54;break;case\"in\":xt=72;break;case\"px\":xt=1==Ie(\"px_scaling\")?.75:96/72;break;case\"pc\":case\"em\":xt=12;break;case\"ex\":xt=6;break;default:if(\"number\"!=typeof o)throw new Error(\"Invalid unit: \"+o);xt=o}var Ce=null;J(),V();var je=v.__private__.getPageInfo=v.getPageInfo=function(t){if(isNaN(t)||t%1!=0)throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");return{objId:Mt[t].objId,pageNumber:t,pageContext:Mt[t]}},Oe=v.__private__.getPageInfoByObjId=function(t){if(isNaN(t)||t%1!=0)throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");for(var e in Mt)if(Mt[e].objId===t)break;return je(e)},Be=v.__private__.getCurrentPageInfo=v.getCurrentPageInfo=function(){return{objId:Mt[K].objId,pageNumber:K,pageContext:Mt[K]}};v.addPage=function(){return ge.apply(this,arguments),this},v.setPage=function(){return ve.apply(this,arguments),st.call(this,it[K]),this},v.insertPage=function(t){return this.addPage(),this.movePage(K,t),this},v.movePage=function(t,e){var r,n;if(t>e){r=it[t],n=Mt[t];for(var i=t;i>e;i--)it[i]=it[i-1],Mt[i]=Mt[i-1];it[e]=r,Mt[e]=n,this.setPage(e)}else if(t<e){r=it[t],n=Mt[t];for(var a=t;a<e;a++)it[a]=it[a+1],Mt[a]=Mt[a+1];it[e]=r,Mt[e]=n,this.setPage(e)}return this},v.deletePage=function(){return me.apply(this,arguments),this},v.__private__.text=v.text=function(t,e,r,n,i){var a,o,s,c,u,l,h,f,d,p=(n=n||{}).scope||this;if(\"number\"==typeof t&&\"number\"==typeof e&&(\"string\"==typeof r||Array.isArray(r))){var g=r;r=e,e=t,t=g}if(arguments[3]instanceof Ut==0?(s=arguments[4],c=arguments[5],\"object\"==typeof(h=arguments[3])&&null!==h||(\"string\"==typeof s&&(c=s,s=null),\"string\"==typeof h&&(c=h,h=null),\"number\"==typeof h&&(s=h,h=null),n={flags:h,angle:s,align:c})):(M(\"The transform parameter of text() with a Matrix value\"),d=i),isNaN(e)||isNaN(r)||null==t)throw new Error(\"Invalid arguments passed to jsPDF.text\");if(0===t.length)return p;var v,b=\"\",y=\"number\"==typeof n.lineHeightFactor?n.lineHeightFactor:Je,w=p.internal.scaleFactor;function N(t){return t=t.split(\"\\t\").join(Array(n.TabLen||9).join(\" \")),de(t,h)}function L(t){for(var e,r=t.concat(),n=[],i=r.length;i--;)\"string\"==typeof(e=r.shift())?n.push(e):Array.isArray(t)&&(1===e.length||void 0===e[1]&&void 0===e[2])?n.push(e[0]):n.push([e[0],e[1],e[2]]);return n}function A(t,e){var r;if(\"string\"==typeof t)r=e(t)[0];else if(Array.isArray(t)){for(var n,i,a=t.concat(),o=[],s=a.length;s--;)\"string\"==typeof(n=a.shift())?o.push(e(n)[0]):Array.isArray(n)&&\"string\"==typeof n[0]&&(i=e(n[0],n[1],n[2]),o.push([i[0],i[1],i[2]]));r=o}return r}var S=!1,_=!0;if(\"string\"==typeof t)S=!0;else if(Array.isArray(t)){var P=t.concat();o=[];for(var F,I=P.length;I--;)(\"string\"!=typeof(F=P.shift())||Array.isArray(F)&&\"string\"!=typeof F[0])&&(_=!1);S=_}if(!1===S)throw new Error('Type of text must be string or Array. \"'+t+'\" is not recognized.');\"string\"==typeof t&&(t=t.match(/[\\r?\\n]/)?t.split(/\\r\\n|\\r|\\n/g):[t]);var C=ft/p.internal.scaleFactor,j=C*(y-1);switch(n.baseline){case\"bottom\":r-=j;break;case\"top\":r+=C-j;break;case\"hanging\":r+=C-2*j;break;case\"middle\":r+=C/2-j}if((l=n.maxWidth||0)>0&&(\"string\"==typeof t?t=p.splitTextToSize(t,l):\"[object Array]\"===Object.prototype.toString.call(t)&&(t=t.reduce(function(t,e){return t.concat(p.splitTextToSize(e,l))},[]))),a={text:t,x:e,y:r,options:n,mutex:{pdfEscape:de,activeFontKey:Lt,fonts:Pt,activeFontSize:ft}},Et.publish(\"preProcessText\",a),t=a.text,s=(n=a.options).angle,d instanceof Ut==0&&s&&\"number\"==typeof s){s*=Math.PI/180,0===n.rotationDirection&&(s=-s),k===x&&(s=-s);var O=Math.cos(s),B=Math.sin(s);d=new Ut(O,B,-B,O,0,0)}else s&&s instanceof Ut&&(d=s);k!==x||d||(d=Wt),void 0!==(u=n.charSpace||ur)&&(b+=q(T(u))+\" Tc\\n\",this.setCharSpace(this.getCharSpace()||0)),void 0!==(f=n.horizontalScale)&&(b+=q(100*f)+\" Tz\\n\"),n.lang;var E=-1,R=void 0!==n.renderingMode?n.renderingMode:n.stroke,D=p.internal.getCurrentPageInfo().pageContext;switch(R){case 0:case!1:case\"fill\":E=0;break;case 1:case!0:case\"stroke\":E=1;break;case 2:case\"fillThenStroke\":E=2;break;case 3:case\"invisible\":E=3;break;case 4:case\"fillAndAddForClipping\":E=4;break;case 5:case\"strokeAndAddPathForClipping\":E=5;break;case 6:case\"fillThenStrokeAndAddToPathForClipping\":E=6;break;case 7:case\"addToPathForClipping\":E=7}var z=void 0!==D.usedRenderingMode?D.usedRenderingMode:-1;-1!==E?b+=E+\" Tr\\n\":-1!==z&&(b+=\"0 Tr\\n\"),-1!==E&&(D.usedRenderingMode=E),c=n.align||\"left\";var U,H=ft*y,W=p.internal.pageSize.getWidth(),V=Pt[Lt];u=n.charSpace||ur,l=n.maxWidth||0,h=Object.assign({autoencode:!0,noBOM:!0},n.flags);var G=[],Y=function(t){return p.getStringUnitWidth(t,{font:V,charSpace:u,fontSize:ft,doKerning:!1})*ft/w};if(\"[object Array]\"===Object.prototype.toString.call(t)){var J;o=L(t),\"left\"!==c&&(U=o.map(Y));var X,K=0;if(\"right\"===c){e-=U[0],t=[],I=o.length;for(var $=0;$<I;$++)0===$?(X=er(e),J=rr(r)):(X=T(K-U[$]),J=-H),t.push([o[$],X,J]),K=U[$]}else if(\"center\"===c){e-=U[0]/2,t=[],I=o.length;for(var Z=0;Z<I;Z++)0===Z?(X=er(e),J=rr(r)):(X=T((K-U[Z])/2),J=-H),t.push([o[Z],X,J]),K=U[Z]}else if(\"left\"===c){t=[],I=o.length;for(var Q=0;Q<I;Q++)t.push(o[Q])}else if(\"justify\"===c&&\"Identity-H\"===V.encoding){t=[],I=o.length,l=0!==l?l:W;let n=0;for(var tt=0;tt<I;tt++)if(J=0===tt?rr(r):-H,X=0===tt?er(e):n,tt<I-1){let e=T((l-U[tt])/(o[tt].split(\" \").length-1)),r=o[tt].split(\" \");t.push([r[0]+\" \",X,J]),n=0;for(let i=1;i<r.length;i++){let a=(Y(r[i-1]+\" \"+r[i])-Y(r[i]))*w+e;i==r.length-1?t.push([r[i],a,0]):t.push([r[i]+\" \",a,0]),n-=a}}else t.push([o[tt],X,J]);t.push([\"\",n,0])}else{if(\"justify\"!==c)throw new Error('Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".');for(t=[],I=o.length,l=0!==l?l:W,tt=0;tt<I;tt++){J=0===tt?rr(r):-H,X=0===tt?er(e):0;const n=o[tt].split(\" \").length-1,i=n>0?(l-U[tt])/n:0;tt<I-1?G.push(q(T(i))):G.push(0),t.push([o[tt],X,J])}}}!0===(\"boolean\"==typeof n.R2L?n.R2L:gt)&&(t=A(t,function(t,e,r){return[t.split(\"\").reverse().join(\"\"),e,r]})),a={text:t,x:e,y:r,options:n,mutex:{pdfEscape:de,activeFontKey:Lt,fonts:Pt,activeFontSize:ft}},Et.publish(\"postProcessText\",a),t=a.text,v=a.mutex.isHex||!1;var et=Pt[Lt].encoding;\"WinAnsiEncoding\"!==et&&\"StandardEncoding\"!==et||(t=A(t,function(t,e,r){return[N(t),e,r]})),o=L(t),t=[];for(var rt,nt,it,at=Array.isArray(o[0])?1:0,ot=\"\",st=function(t,e,r){var i=\"\";return r instanceof Ut?(r=\"number\"==typeof n.angle?Ht(r,new Ut(1,0,0,1,t,e)):Ht(new Ut(1,0,0,1,t,e),r),k===x&&(r=Ht(new Ut(1,0,0,-1,0,0),r)),i=r.join(\" \")+\" Tm\\n\"):i=q(t)+\" \"+q(e)+\" Td\\n\",i},ut=0;ut<o.length;ut++){switch(ot=\"\",at){case 1:it=(v?\"<\":\"(\")+o[ut][0]+(v?\">\":\")\"),rt=parseFloat(o[ut][1]),nt=parseFloat(o[ut][2]);break;case 0:it=(v?\"<\":\"(\")+o[ut]+(v?\">\":\")\"),rt=er(e),nt=rr(r)}void 0!==G&&void 0!==G[ut]&&(ot=G[ut]+\" Tw\\n\"),0===ut?t.push(ot+st(rt,nt,d)+it):0===at?t.push(ot+it):1===at&&t.push(ot+st(rt,nt,d)+it)}t=0===at?t.join(\" Tj\\nT* \"):t.join(\" Tj\\n\"),t+=\" Tj\\n\";var lt=\"BT\\n/\";return lt+=Lt+\" \"+ft+\" Tf\\n\",lt+=q(ft*y)+\" TL\\n\",lt+=sr+\"\\n\",lt+=b,lt+=t,ct(lt+=\"ET\"),m[Lt]=!0,p};var qe=v.__private__.clip=v.clip=function(t){return ct(\"evenodd\"===t?\"W*\":\"W\"),this};v.clipEvenOdd=function(){return qe(\"evenodd\")},v.__private__.discardPath=v.discardPath=function(){return ct(\"n\"),this};var Me=v.__private__.isValidStyle=function(t){var e=!1;return-1!==[void 0,null,\"S\",\"D\",\"F\",\"DF\",\"FD\",\"f\",\"f*\",\"B\",\"B*\",\"n\"].indexOf(t)&&(e=!0),e};v.__private__.setDefaultPathOperation=v.setDefaultPathOperation=function(t){return Me(t)&&(d=t),this};var Ee=v.__private__.getStyle=v.getStyle=function(t){var e=d;switch(t){case\"D\":case\"S\":e=\"S\";break;case\"F\":e=\"f\";break;case\"FD\":case\"DF\":e=\"B\";break;case\"f\":case\"f*\":case\"B\":case\"B*\":e=t}return e},Re=v.close=function(){return ct(\"h\"),this};v.stroke=function(){return ct(\"S\"),this},v.fill=function(t){return De(\"f\",t),this},v.fillEvenOdd=function(t){return De(\"f*\",t),this},v.fillStroke=function(t){return De(\"B\",t),this},v.fillStrokeEvenOdd=function(t){return De(\"B*\",t),this};var De=function(t,e){\"object\"==typeof e?Ue(e,t):ct(t)},Te=function(t){null===t||k===x&&void 0===t||(t=Ee(t),ct(t))};function ze(t,e,r,n,i){var a=new I(e||this.boundingBox,r||this.xStep,n||this.yStep,this.gState,i||this.matrix);a.stream=this.stream;var o=t+\"$$\"+this.cloneIndex+++\"$$\";return Vt(o,a),a}var Ue=function(t,e){var r=Ct[t.key],n=It[r];if(n instanceof F)ct(\"q\"),ct(He(e)),n.gState&&v.setGState(n.gState),ct(t.matrix.toString()+\" cm\"),ct(\"/\"+r+\" sh\"),ct(\"Q\");else if(n instanceof I){var i=new Ut(1,0,0,-1,0,Sr());t.matrix&&(i=i.multiply(t.matrix||Wt),r=ze.call(n,t.key,t.boundingBox,t.xStep,t.yStep,i).id),ct(\"q\"),ct(\"/Pattern cs\"),ct(\"/\"+r+\" scn\"),n.gState&&v.setGState(n.gState),ct(e),ct(\"Q\")}},He=function(t){switch(t){case\"f\":case\"F\":case\"n\":return\"W n\";case\"f*\":return\"W* n\";case\"B\":case\"S\":return\"W S\";case\"B*\":return\"W* S\"}},We=v.moveTo=function(t,e){return ct(q(T(t))+\" \"+q(z(e))+\" m\"),this},Ve=v.lineTo=function(t,e){return ct(q(T(t))+\" \"+q(z(e))+\" l\"),this},Ge=v.curveTo=function(t,e,r,n,i,a){return ct([q(T(t)),q(z(e)),q(T(r)),q(z(n)),q(T(i)),q(z(a)),\"c\"].join(\" \")),this};v.__private__.line=v.line=function(t,e,r,n,i){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||!Me(i))throw new Error(\"Invalid arguments passed to jsPDF.line\");return k===L?this.lines([[r-t,n-e]],t,e,[1,1],i||\"S\"):this.lines([[r-t,n-e]],t,e,[1,1]).stroke()},v.__private__.lines=v.lines=function(t,e,r,n,i,a){var o,s,c,u,l,h,f,d,p,g,m,v;if(\"number\"==typeof t&&(v=r,r=e,e=t,t=v),n=n||[1,1],a=a||!1,isNaN(e)||isNaN(r)||!Array.isArray(t)||!Array.isArray(n)||!Me(i)||\"boolean\"!=typeof a)throw new Error(\"Invalid arguments passed to jsPDF.lines\");for(We(e,r),o=n[0],s=n[1],u=t.length,g=e,m=r,c=0;c<u;c++)2===(l=t[c]).length?(g=l[0]*o+g,m=l[1]*s+m,Ve(g,m)):(h=l[0]*o+g,f=l[1]*s+m,d=l[2]*o+g,p=l[3]*s+m,g=l[4]*o+g,m=l[5]*s+m,Ge(h,f,d,p,g,m));return a&&Re(),Te(i),this},v.path=function(t){for(var e=0;e<t.length;e++){var r=t[e],n=r.c;switch(r.op){case\"m\":We(n[0],n[1]);break;case\"l\":Ve(n[0],n[1]);break;case\"c\":Ge.apply(this,n);break;case\"h\":Re()}}return this},v.__private__.rect=v.rect=function(t,e,r,n,i){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||!Me(i))throw new Error(\"Invalid arguments passed to jsPDF.rect\");return k===L&&(n=-n),ct([q(T(t)),q(z(e)),q(T(r)),q(T(n)),\"re\"].join(\" \")),Te(i),this},v.__private__.triangle=v.triangle=function(t,e,r,n,i,a,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i)||isNaN(a)||!Me(o))throw new Error(\"Invalid arguments passed to jsPDF.triangle\");return this.lines([[r-t,n-e],[i-r,a-n],[t-i,e-a]],t,e,[1,1],o,!0),this},v.__private__.roundedRect=v.roundedRect=function(t,e,r,n,i,a,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i)||isNaN(a)||!Me(o))throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");var s=4/3*(Math.SQRT2-1);return i=Math.min(i,.5*r),a=Math.min(a,.5*n),this.lines([[r-2*i,0],[i*s,0,i,a-a*s,i,a],[0,n-2*a],[0,a*s,-i*s,a,-i,a],[2*i-r,0],[-i*s,0,-i,-a*s,-i,-a],[0,2*a-n],[0,-a*s,i*s,-a,i,-a]],t+i,e,[1,1],o,!0),this},v.__private__.ellipse=v.ellipse=function(t,e,r,n,i){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||!Me(i))throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");var a=4/3*(Math.SQRT2-1)*r,o=4/3*(Math.SQRT2-1)*n;return We(t+r,e),Ge(t+r,e-o,t+a,e-n,t,e-n),Ge(t-a,e-n,t-r,e-o,t-r,e),Ge(t-r,e+o,t-a,e+n,t,e+n),Ge(t+a,e+n,t+r,e+o,t+r,e),Te(i),this},v.__private__.circle=v.circle=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||!Me(n))throw new Error(\"Invalid arguments passed to jsPDF.circle\");return this.ellipse(t,e,r,r,n)},v.setFont=function(t,e,r){return r&&(e=B(e,r)),Lt=ye(t,e,{disableWarning:!1}),this};var Ye=v.__private__.getFont=v.getFont=function(){return Pt[ye.apply(v,arguments)]};v.__private__.getFontList=v.getFontList=function(){var t,e,r={};for(t in kt)if(kt.hasOwnProperty(t))for(e in r[t]=[],kt[t])kt[t].hasOwnProperty(e)&&r[t].push(e);return r},v.addFont=function(t,e,r,n,i){var a=[\"StandardEncoding\",\"MacRomanEncoding\",\"Identity-H\",\"WinAnsiEncoding\"];return arguments[3]&&-1!==a.indexOf(arguments[3])?i=arguments[3]:arguments[3]&&-1==a.indexOf(arguments[3])&&(r=B(r,n)),fe.call(this,t,e,r,i=i||\"Identity-H\")};var Je,Xe=t.lineWidth||.200025,Ke=v.__private__.getLineWidth=v.getLineWidth=function(){return Xe},$e=v.__private__.setLineWidth=v.setLineWidth=function(t){return Xe=t,ct(q(T(t))+\" w\"),this};v.__private__.setLineDash=C.API.setLineDash=C.API.setLineDashPattern=function(t,e){if(t=t||[],e=e||0,isNaN(e)||!Array.isArray(t))throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");return t=t.map(function(t){return q(T(t))}).join(\" \"),e=q(T(e)),ct(\"[\"+t+\"] \"+e+\" d\"),this};var Ze=v.__private__.getLineHeight=v.getLineHeight=function(){return ft*Je};v.__private__.getLineHeight=v.getLineHeight=function(){return ft*Je};var Qe=v.__private__.setLineHeightFactor=v.setLineHeightFactor=function(t){return\"number\"==typeof(t=t||1.15)&&(Je=t),this},tr=v.__private__.getLineHeightFactor=v.getLineHeightFactor=function(){return Je};Qe(t.lineHeight);var er=v.__private__.getHorizontalCoordinate=function(t){return T(t)},rr=v.__private__.getVerticalCoordinate=function(t){return k===x?t:Mt[K].mediaBox.topRightY-Mt[K].mediaBox.bottomLeftY-T(t)},nr=v.__private__.getHorizontalCoordinateString=v.getHorizontalCoordinateString=function(t){return q(er(t))},ir=v.__private__.getVerticalCoordinateString=v.getVerticalCoordinateString=function(t){return q(rr(t))},ar=t.strokeColor||\"0 G\";v.__private__.getStrokeColor=v.getDrawColor=function(){return Qt(ar)},v.__private__.setStrokeColor=v.setDrawColor=function(t,e,r,n){return ar=te({ch1:t,ch2:e,ch3:r,ch4:n,pdfColorType:\"draw\",precision:2}),ct(ar),this};var or=t.fillColor||\"0 g\";v.__private__.getFillColor=v.getFillColor=function(){return Qt(or)},v.__private__.setFillColor=v.setFillColor=function(t,e,r,n){return or=te({ch1:t,ch2:e,ch3:r,ch4:n,pdfColorType:\"fill\",precision:2}),ct(or),this};var sr=t.textColor||\"0 g\",cr=v.__private__.getTextColor=v.getTextColor=function(){return Qt(sr)};v.__private__.setTextColor=v.setTextColor=function(t,e,r,n){return sr=te({ch1:t,ch2:e,ch3:r,ch4:n,pdfColorType:\"text\",precision:3}),this};var ur=t.charSpace,lr=v.__private__.getCharSpace=v.getCharSpace=function(){return parseFloat(ur||0)};v.__private__.setCharSpace=v.setCharSpace=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");return ur=t,this};var hr=0;v.CapJoinStyles={0:0,butt:0,but:0,miter:0,1:1,round:1,rounded:1,circle:1,2:2,projecting:2,project:2,square:2,bevel:2},v.__private__.setLineCap=v.setLineCap=function(t){var e=v.CapJoinStyles[t];if(void 0===e)throw new Error(\"Line cap style of '\"+t+\"' is not recognized. See or extend .CapJoinStyles property for valid styles\");return hr=e,ct(e+\" J\"),this};var fr=0;v.__private__.setLineJoin=v.setLineJoin=function(t){var e=v.CapJoinStyles[t];if(void 0===e)throw new Error(\"Line join style of '\"+t+\"' is not recognized. See or extend .CapJoinStyles property for valid styles\");return fr=e,ct(e+\" j\"),this},v.__private__.setLineMiterLimit=v.__private__.setMiterLimit=v.setLineMiterLimit=v.setMiterLimit=function(t){if(t=t||0,isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.setLineMiterLimit\");return ct(q(T(t))+\" M\"),this},v.GState=P,v.setGState=function(t){(t=\"string\"==typeof t?jt[Ot[t]]:dr(null,t)).equals(Bt)||(ct(\"/\"+t.id+\" gs\"),Bt=t)};var dr=function(t,e){if(!t||!Ot[t]){var r=!1;for(var n in jt)if(jt.hasOwnProperty(n)&&jt[n].equals(e)){r=!0;break}if(r)e=jt[n];else{var i=\"GS\"+(Object.keys(jt).length+1).toString(10);jt[i]=e,e.id=i}return t&&(Ot[t]=e.id),Et.publish(\"addGState\",e),e}};v.addGState=function(t,e){return dr(t,e),this},v.saveGraphicsState=function(){return ct(\"q\"),Ft.push({key:Lt,size:ft,color:sr}),this},v.restoreGraphicsState=function(){ct(\"Q\");var t=Ft.pop();return Lt=t.key,ft=t.size,sr=t.color,Bt=null,this},v.setCurrentTransformationMatrix=function(t){return ct(t.toString()+\" cm\"),this},v.comment=function(t){return ct(\"#\"+t),this};var pr=function(t,e){var r=t||0;Object.defineProperty(this,\"x\",{enumerable:!0,get:function(){return r},set:function(t){isNaN(t)||(r=parseFloat(t))}});var n=e||0;Object.defineProperty(this,\"y\",{enumerable:!0,get:function(){return n},set:function(t){isNaN(t)||(n=parseFloat(t))}});var i=\"pt\";return Object.defineProperty(this,\"type\",{enumerable:!0,get:function(){return i},set:function(t){i=t.toString()}}),this},gr=function(t,e,r,n){pr.call(this,t,e),this.type=\"rect\";var i=r||0;Object.defineProperty(this,\"w\",{enumerable:!0,get:function(){return i},set:function(t){isNaN(t)||(i=parseFloat(t))}});var a=n||0;return Object.defineProperty(this,\"h\",{enumerable:!0,get:function(){return a},set:function(t){isNaN(t)||(a=parseFloat(t))}}),this},mr=function(){this.page=qt,this.currentPage=K,this.pages=it.slice(0),this.pagesContext=Mt.slice(0),this.x=At,this.y=St,this.matrix=_t,this.width=yr(K),this.height=Nr(K),this.outputDestination=ot,this.id=\"\",this.objectNumber=-1};mr.prototype.restore=function(){qt=this.page,K=this.currentPage,Mt=this.pagesContext,it=this.pages,At=this.x,St=this.y,_t=this.matrix,wr(K,this.width),Lr(K,this.height),ot=this.outputDestination};var vr=function(t,e,r,n,i){zt.push(new mr),qt=K=0,it=[],At=t,St=e,_t=i,pe([r,n])};for(var br in v.beginFormObject=function(t,e,r,n,i){return vr(t,e,r,n,i),this},v.endFormObject=function(t){return function(t){if(Tt[t])zt.pop().restore();else{var e=new mr,r=\"Xo\"+(Object.keys(Dt).length+1).toString(10);e.id=r,Tt[t]=r,Dt[r]=e,Et.publish(\"addFormObject\",e),zt.pop().restore()}}(t),this},v.doFormObject=function(t,e){var r=Dt[Tt[t]];return ct(\"q\"),ct(e.toString()+\" cm\"),ct(\"/\"+r.id+\" Do\"),ct(\"Q\"),this},v.getFormObject=function(t){var e=Dt[Tt[t]];return{x:e.x,y:e.y,width:e.width,height:e.height,matrix:e.matrix}},v.save=function(t,e){t=t||\"generated.pdf\",(e=e||{}).returnPromise=e.returnPromise||!1;var r=__webpack_require__(/*! fs */ \"fs\"),n=Buffer.from(lt(Se()));if(!1!==e.returnPromise)return new Promise(function(e,i){r.writeFile(t,n,function(t){t?i(t):e()})});r.writeFileSync(t,n)},C.API)C.API.hasOwnProperty(br)&&(\"events\"===br&&C.API.events.length?function(t,e){var r,n,i;for(i=e.length-1;-1!==i;i--)r=e[i][0],n=e[i][1],t.subscribe.apply(t,[r].concat(\"function\"==typeof n?[n]:n))}(Et,C.API.events):v[br]=C.API[br]);function yr(t){return Mt[t].mediaBox.topRightX-Mt[t].mediaBox.bottomLeftX}function wr(t,e){Mt[t].mediaBox.topRightX=e+Mt[t].mediaBox.bottomLeftX}function Nr(t){return Mt[t].mediaBox.topRightY-Mt[t].mediaBox.bottomLeftY}function Lr(t,e){Mt[t].mediaBox.topRightY=e+Mt[t].mediaBox.bottomLeftY}var xr=v.getPageWidth=function(t){return yr(t=t||K)/xt},Ar=v.setPageWidth=function(t,e){wr(t,e*xt)},Sr=v.getPageHeight=function(t){return Nr(t=t||K)/xt},_r=v.setPageHeight=function(t,e){Lr(t,e*xt)};return v.internal={pdfEscape:de,getStyle:Ee,getFont:Ye,getFontSize:pt,getCharSpace:lr,getTextColor:cr,getLineHeight:Ze,getLineHeightFactor:tr,getLineWidth:Ke,write:ut,getHorizontalCoordinate:er,getVerticalCoordinate:rr,getCoordinateString:nr,getVerticalCoordinateString:ir,collections:{},newObject:Yt,newAdditionalObject:Kt,newObjectDeferred:Jt,newObjectDeferredBegin:Xt,getFilters:ee,putStream:re,events:Et,scaleFactor:xt,pageSize:{getWidth:function(){return xr(K)},setWidth:function(t){Ar(K,t)},getHeight:function(){return Sr(K)},setHeight:function(t){_r(K,t)}},encryptionOptions:p,encryption:Ce,getEncryptor:function(t){return null!==p?Ce.encryptor(t,0):function(t){return t}},output:Fe,getNumberOfPages:be,get pages(){return it},out:ct,f2:R,f3:D,getPageInfo:je,getPageInfoByObjId:Oe,getCurrentPageInfo:Be,getPDFVersion:y,Point:pr,Rectangle:gr,Matrix:Ut,hasHotfix:Ie},Object.defineProperty(v.internal.pageSize,\"width\",{get:function(){return xr(K)},set:function(t){Ar(K,t)},enumerable:!0,configurable:!0}),Object.defineProperty(v.internal.pageSize,\"height\",{get:function(){return Sr(K)},set:function(t){_r(K,t)},enumerable:!0,configurable:!0}),function(t){for(var e=0,r=ht.length;e<r;e++){var n=fe.call(this,t[e][0],t[e][1],t[e][2],ht[e][3],!0);!1===g&&(m[n]=!0);var i=t[e][0].split(\"-\");he({id:n,fontName:i[0],fontStyle:i[1]||\"\"})}Et.publish(\"addFonts\",{fonts:Pt,dictionary:kt})}.call(v,ht),Lt=\"F1\",ge(c,i),Et.publish(\"initialized\"),v}A.prototype.lsbFirstWord=function(t){return String.fromCharCode(255&t,t>>8&255,t>>16&255,t>>24&255)},A.prototype.toHexString=function(t){return t.split(\"\").map(function(t){return(\"0\"+(255&t.charCodeAt(0)).toString(16)).slice(-2)}).join(\"\")},A.prototype.hexToBytes=function(t){for(var e=[],r=0;r<t.length;r+=2)e.push(String.fromCharCode(parseInt(t.substr(r,2),16)));return e.join(\"\")},A.prototype.processOwnerPassword=function(t,e){return L(y(e).substr(0,5),t)},A.prototype.encryptor=function(t,e){let r=y(this.encryptionKey+String.fromCharCode(255&t,t>>8&255,t>>16&255,255&e,e>>8&255)).substr(0,10);return function(t){return L(r,t)}},P.prototype.equals=function(t){var e,r=\"id,objectNumber,equals\";if(!t||typeof t!=typeof this)return!1;var n=0;for(e in this)if(!(r.indexOf(e)>=0)){if(this.hasOwnProperty(e)&&!t.hasOwnProperty(e))return!1;if(this[e]!==t[e])return!1;n++}for(e in t)t.hasOwnProperty(e)&&r.indexOf(e)<0&&n--;return 0===n},C.API={events:[]},C.version=\"4.2.1\";var j=C.API,O=1,B=function(t){return t.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\(/g,\"\\\\(\").replace(/\\)/g,\"\\\\)\")},q=function(t){return t.replace(/\\\\\\\\/g,\"\\\\\").replace(/\\\\\\(/g,\"(\").replace(/\\\\\\)/g,\")\")},M=function(t){return t.toString().replace(/#/g,\"#23\").replace(/[\\s\\n\\r()<>[\\]{}\\/%]/g,t=>{const e=t.charCodeAt(0).toString(16).toUpperCase();return\"#\"+(1===e.length?\"0\"+e:e)})},E=function(t){return t.toFixed(2)},R=function(t){return t.toFixed(5)};j.__acroform__={};var D=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t},T=function(t){return t*O},z=function(t){var e=new nt,r=vt.internal.getHeight(t)||0,n=vt.internal.getWidth(t)||0;return e.BBox=[0,0,Number(E(n)),Number(E(r))],e},U=j.__acroform__.setBit=function(t,e){if(t=t||0,e=e||0,isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.setBit\");return t|1<<e},H=j.__acroform__.clearBit=function(t,e){if(t=t||0,e=e||0,isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\");return t&~(1<<e)},W=j.__acroform__.getBit=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.getBit\");return t&1<<e?1:0},V=j.__acroform__.getBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\");return W(t,e-1)},G=j.__acroform__.setBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\");return U(t,e-1)},Y=j.__acroform__.clearBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\");return H(t,e-1)},J=j.__acroform__.calculateCoordinates=function(t,e){var r=e.internal.getHorizontalCoordinate,n=e.internal.getVerticalCoordinate,i=t[0],a=t[1],o=t[2],s=t[3],c={};return c.lowerLeft_X=r(i)||0,c.lowerLeft_Y=n(a+s)||0,c.upperRight_X=r(i+o)||0,c.upperRight_Y=n(a)||0,[Number(E(c.lowerLeft_X)),Number(E(c.lowerLeft_Y)),Number(E(c.upperRight_X)),Number(E(c.upperRight_Y))]},X=function(t){if(t.appearanceStreamContent)return t.appearanceStreamContent;if(t.V||t.DV){var e=[],r=t._V||t.DV,n=K(t,r),i=t.scope.internal.getFont(t.fontName,t.fontStyle).id;e.push(\"/Tx BMC\"),e.push(\"q\"),e.push(\"BT\"),e.push(t.scope.__private__.encodeColorString(t.color)),e.push(\"/\"+i+\" \"+E(n.fontSize)+\" Tf\"),e.push(\"1 0 0 1 0 0 Tm\"),e.push(n.text),e.push(\"ET\"),e.push(\"Q\"),e.push(\"EMC\");var a=z(t);return a.scope=t.scope,a.stream=e.join(\"\\n\"),a}},K=function(t,e){var r=0===t.fontSize?t.maxFontSize:t.fontSize,n={text:\"\",fontSize:\"\"},i=(e=\")\"==(e=\"(\"==e.substr(0,1)?e.substr(1):e).substr(e.length-1)?e.substr(0,e.length-1):e).split(\" \");i=t.multiline?i.map(t=>t.split(\"\\n\")):i.map(t=>[t]);var a=r,o=vt.internal.getHeight(t)||0;o=o<0?-o:o;var s=vt.internal.getWidth(t)||0;s=s<0?-s:s;var c=function(e,r,n){if(e+1<i.length){var a=r+\" \"+i[e+1][0];return $(a,t,n).width<=s-4}return!1};a++;t:for(;a>0;){e=\"\",a--;var u,l,h=$(\"3\",t,a).height,f=t.multiline?o-a:(o-h)/2,d=f+=2,p=0,g=0,m=0;if(a<=0){e=\"(...) Tj\\n\",e+=\"% Width of Text: \"+$(e,t,a=12).width+\", FieldWidth:\"+s+\"\\n\";break}var v=\"\",b=0;e:for(var y=0;y<i.length;y++)if(i.hasOwnProperty(y)){let r=!1;if(1!==i[y].length&&m!==i[y].length-1){if((h+2)*(b+2)+2>o)continue t;v+=i[y][m],r=!0,g=y,y--}else{v=\" \"==(v+=i[y][m]+\" \").substr(v.length-1)?v.substr(0,v.length-1):v;var w=parseInt(y),N=c(w,v,a),L=y>=i.length-1;if(N&&!L){v+=\" \",m=0;continue}if(N||L){if(L)g=w;else if(t.multiline&&(h+2)*(b+2)+2>o)continue t}else{if(!t.multiline)continue t;if((h+2)*(b+2)+2>o)continue t;g=w}}for(var x=\"\",A=p;A<=g;A++){var S=i[A];if(t.multiline){if(A===g){x+=S[m]+\" \",m=(m+1)%S.length;continue}if(A===p){x+=S[S.length-1]+\" \";continue}}x+=S[0]+\" \"}switch(x=\" \"==x.substr(x.length-1)?x.substr(0,x.length-1):x,l=$(x,t,a).width,t.textAlign){case\"right\":u=s-l-2;break;case\"center\":u=(s-l)/2;break;default:u=2}e+=E(u)+\" \"+E(d)+\" Td\\n\",e+=\"(\"+B(x)+\") Tj\\n\",e+=-E(u)+\" 0 Td\\n\",d=-(a+2),l=0,p=r?g:g+1,b++,v=\"\";continue e}break}return n.text=e,n.fontSize=a,n},$=function(t,e,r){var n=e.scope.internal.getFont(e.fontName,e.fontStyle),i=e.scope.getStringUnitWidth(t,{font:n,fontSize:parseFloat(r),charSpace:0})*parseFloat(r);return{height:e.scope.getStringUnitWidth(\"3\",{font:n,fontSize:parseFloat(r),charSpace:0})*parseFloat(r)*1.5,width:i}},Z={fields:[],xForms:[],acroFormDictionaryRoot:null,printedOut:!1,internal:null,isInitialized:!1},Q=function(t,e){var r={type:\"reference\",object:t};void 0===e.internal.getPageInfo(t.page).pageContext.annotations.find(function(t){return t.type===r.type&&t.object===r.object})&&e.internal.getPageInfo(t.page).pageContext.annotations.push(r)},tt=j.__acroform__.arrayToPdfArray=function(t,e,r){var n=function(t){return t};if(Array.isArray(t)){for(var i=\"[\",a=0;a<t.length;a++)switch(0!==a&&(i+=\" \"),typeof t[a]){case\"boolean\":case\"number\":case\"object\":i+=t[a].toString();break;case\"string\":\"/\"===t[a].substr(0,1)?i+=\"/\"+M(t[a].substr(1)):(void 0!==e&&r&&(n=r.internal.getEncryptor(e)),i+=\"(\"+B(n(t[a].toString()))+\")\")}return i+\"]\"}throw new Error(\"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\")},et=function(t,e,r){var n=function(t){return t};return void 0!==e&&r&&(n=r.internal.getEncryptor(e)),(t=t||\"\").toString(),\"(\"+B(n(t))+\")\"},rt=function(){this._objId=void 0,this._scope=void 0,Object.defineProperty(this,\"objId\",{get:function(){if(void 0===this._objId){if(void 0===this.scope)return;this._objId=this.scope.internal.newObjectDeferred()}return this._objId},set:function(t){this._objId=t}}),Object.defineProperty(this,\"scope\",{value:this._scope,writable:!0})};rt.prototype.toString=function(){return this.objId+\" 0 R\"},rt.prototype.putStream=function(){var t=this.getKeyValueListForStream();this.scope.internal.putStream({data:this.stream,additionalKeyValues:t,objectId:this.objId}),this.scope.internal.out(\"endobj\")},rt.prototype.getKeyValueListForStream=function(){var t=[],e=Object.getOwnPropertyNames(this).filter(function(t){return\"content\"!=t&&\"appearanceStreamContent\"!=t&&\"scope\"!=t&&\"objId\"!=t&&\"_\"!=t.substring(0,1)});for(var r in e)if(!1===Object.getOwnPropertyDescriptor(this,e[r]).configurable){var n=e[r],i=this[n];i&&(Array.isArray(i)?t.push({key:n,value:tt(i,this.objId,this.scope)}):i instanceof rt?(i.scope=this.scope,t.push({key:n,value:i.objId+\" 0 R\"})):\"function\"!=typeof i&&t.push({key:n,value:i}))}return t};var nt=function(){rt.call(this),Object.defineProperty(this,\"Type\",{value:\"/XObject\",configurable:!1,writable:!0}),Object.defineProperty(this,\"Subtype\",{value:\"/Form\",configurable:!1,writable:!0}),Object.defineProperty(this,\"FormType\",{value:1,configurable:!1,writable:!0});var t,e=[];Object.defineProperty(this,\"BBox\",{configurable:!1,get:function(){return e},set:function(t){e=t}}),Object.defineProperty(this,\"Resources\",{value:\"2 0 R\",configurable:!1,writable:!0}),Object.defineProperty(this,\"stream\",{enumerable:!1,configurable:!0,set:function(e){t=e.trim()},get:function(){return t||null}})};D(nt,rt);var it=function(){rt.call(this);var t,e=[];Object.defineProperty(this,\"Kids\",{enumerable:!1,configurable:!0,get:function(){return e.length>0?e:void 0}}),Object.defineProperty(this,\"Fields\",{enumerable:!1,configurable:!1,get:function(){return e}}),Object.defineProperty(this,\"DA\",{enumerable:!1,configurable:!1,get:function(){if(t){var e=function(t){return t};return this.scope&&(e=this.scope.internal.getEncryptor(this.objId)),\"(\"+B(e(t))+\")\"}},set:function(e){t=e}})};D(it,rt);var at=function(){rt.call(this);var t=4;Object.defineProperty(this,\"F\",{enumerable:!1,configurable:!1,get:function(){return t},set:function(e){if(isNaN(e))throw new Error('Invalid value \"'+e+'\" for attribute F supplied.');t=e}}),Object.defineProperty(this,\"showWhenPrinted\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(t,3))},set:function(e){!0===Boolean(e)?this.F=G(t,3):this.F=Y(t,3)}});var e=0;Object.defineProperty(this,\"Ff\",{enumerable:!1,configurable:!1,get:function(){return e},set:function(t){if(isNaN(t))throw new Error('Invalid value \"'+t+'\" for attribute Ff supplied.');e=t}});var r=[];Object.defineProperty(this,\"Rect\",{enumerable:!1,configurable:!1,get:function(){if(0!==r.length)return r},set:function(t){r=void 0!==t?t:[]}}),Object.defineProperty(this,\"x\",{enumerable:!0,configurable:!0,get:function(){return!r||isNaN(r[0])?0:r[0]},set:function(t){r[0]=t}}),Object.defineProperty(this,\"y\",{enumerable:!0,configurable:!0,get:function(){return!r||isNaN(r[1])?0:r[1]},set:function(t){r[1]=t}}),Object.defineProperty(this,\"width\",{enumerable:!0,configurable:!0,get:function(){return!r||isNaN(r[2])?0:r[2]},set:function(t){r[2]=t}}),Object.defineProperty(this,\"height\",{enumerable:!0,configurable:!0,get:function(){return!r||isNaN(r[3])?0:r[3]},set:function(t){r[3]=t}});var n=\"\";Object.defineProperty(this,\"FT\",{enumerable:!0,configurable:!1,get:function(){return n},set:function(t){switch(t){case\"/Btn\":case\"/Tx\":case\"/Ch\":case\"/Sig\":n=t;break;default:throw new Error('Invalid value \"'+t+'\" for attribute FT supplied.')}}});var i=null;Object.defineProperty(this,\"T\",{enumerable:!0,configurable:!1,get:function(){if(!i||i.length<1){if(this instanceof dt)return;i=\"FieldObject\"+at.FieldNum++}var t=function(t){return t};return this.scope&&(t=this.scope.internal.getEncryptor(this.objId)),\"(\"+B(t(i))+\")\"},set:function(t){i=t.toString()}}),Object.defineProperty(this,\"fieldName\",{configurable:!0,enumerable:!0,get:function(){return i},set:function(t){i=t}});var a=\"helvetica\";Object.defineProperty(this,\"fontName\",{enumerable:!0,configurable:!0,get:function(){return a},set:function(t){a=t}});var o=\"normal\";Object.defineProperty(this,\"fontStyle\",{enumerable:!0,configurable:!0,get:function(){return o},set:function(t){o=t}});var s=0;Object.defineProperty(this,\"fontSize\",{enumerable:!0,configurable:!0,get:function(){return s},set:function(t){s=t}});var c=void 0;Object.defineProperty(this,\"maxFontSize\",{enumerable:!0,configurable:!0,get:function(){return void 0===c?50/O:c},set:function(t){c=t}});var u=\"black\";Object.defineProperty(this,\"color\",{enumerable:!0,configurable:!0,get:function(){return u},set:function(t){u=t}});var l=\"/F1 0 Tf 0 g\";Object.defineProperty(this,\"DA\",{enumerable:!0,configurable:!1,get:function(){if(!(!l||this instanceof dt||this instanceof gt))return et(l,this.objId,this.scope)},set:function(t){t=t.toString(),l=t}});var h=null;Object.defineProperty(this,\"DV\",{enumerable:!1,configurable:!1,get:function(){if(h)return this instanceof lt==0?et(h,this.objId,this.scope):h},set:function(t){t=t.toString(),h=this instanceof lt==0?\"(\"===t.substr(0,1)?q(t.substr(1,t.length-2)):q(t):t}}),Object.defineProperty(this,\"defaultValue\",{enumerable:!0,configurable:!0,get:function(){return this instanceof lt==1?q(h.substr(1,h.length-1)):h},set:function(t){t=t.toString(),h=this instanceof lt==1?\"/\"+M(t):t}});var f=null;Object.defineProperty(this,\"_V\",{enumerable:!1,configurable:!1,get:function(){if(f)return f},set:function(t){this.V=t}}),Object.defineProperty(this,\"V\",{enumerable:!1,configurable:!1,get:function(){if(f)return this instanceof lt==0?et(f,this.objId,this.scope):f},set:function(t){t=t.toString(),f=this instanceof lt==0?\"(\"===t.substr(0,1)?q(t.substr(1,t.length-2)):q(t):t}}),Object.defineProperty(this,\"value\",{enumerable:!0,configurable:!0,get:function(){return this instanceof lt==1?q(f.substr(1,f.length-1)):f},set:function(t){t=t.toString(),f=this instanceof lt==1?\"/\"+M(t):t}}),Object.defineProperty(this,\"hasAnnotation\",{enumerable:!0,configurable:!0,get:function(){return this.Rect}}),Object.defineProperty(this,\"Type\",{enumerable:!0,configurable:!1,get:function(){return this.hasAnnotation?\"/Annot\":null}}),Object.defineProperty(this,\"Subtype\",{enumerable:!0,configurable:!1,get:function(){return this.hasAnnotation?\"/Widget\":null}});var d,p=!1;Object.defineProperty(this,\"hasAppearanceStream\",{enumerable:!0,configurable:!0,get:function(){return p},set:function(t){t=Boolean(t),p=t}}),Object.defineProperty(this,\"page\",{enumerable:!0,configurable:!0,get:function(){if(d)return d},set:function(t){d=t}}),Object.defineProperty(this,\"readOnly\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,1))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,1):this.Ff=Y(this.Ff,1)}}),Object.defineProperty(this,\"required\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,2))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,2):this.Ff=Y(this.Ff,2)}}),Object.defineProperty(this,\"noExport\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,3))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,3):this.Ff=Y(this.Ff,3)}});var g=null;Object.defineProperty(this,\"Q\",{enumerable:!0,configurable:!1,get:function(){if(null!==g)return g},set:function(t){if(-1===[0,1,2].indexOf(t))throw new Error('Invalid value \"'+t+'\" for attribute Q supplied.');g=t}}),Object.defineProperty(this,\"textAlign\",{get:function(){var t;switch(g){case 0:default:t=\"left\";break;case 1:t=\"center\";break;case 2:t=\"right\"}return t},configurable:!0,enumerable:!0,set:function(t){switch(t){case\"right\":case 2:g=2;break;case\"center\":case 1:g=1;break;default:g=0}}})};D(at,rt);var ot=function(){at.call(this),this.FT=\"/Ch\",this.V=\"()\",this.fontName=\"zapfdingbats\";var t=0;Object.defineProperty(this,\"TI\",{enumerable:!0,configurable:!1,get:function(){return t},set:function(e){t=e}}),Object.defineProperty(this,\"topIndex\",{enumerable:!0,configurable:!0,get:function(){return t},set:function(e){t=e}});var e=[];Object.defineProperty(this,\"Opt\",{enumerable:!0,configurable:!1,get:function(){return tt(e,this.objId,this.scope)},set:function(t){var r,n;n=[],\"string\"==typeof(r=t)&&(n=function(t,e,r){r||(r=1);for(var n,i=[];n=e.exec(t);)i.push(n[r]);return i}(r,/\\((.*?)\\)/g)),e=n}}),this.getOptions=function(){return e},this.setOptions=function(t){e=t,this.sort&&e.sort()},this.addOption=function(t){t=(t=t||\"\").toString(),e.push(t),this.sort&&e.sort()},this.removeOption=function(t,r){for(r=r||!1,t=(t=t||\"\").toString();-1!==e.indexOf(t)&&(e.splice(e.indexOf(t),1),!1!==r););},Object.defineProperty(this,\"combo\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,18))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,18):this.Ff=Y(this.Ff,18)}}),Object.defineProperty(this,\"edit\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,19))},set:function(t){!0===this.combo&&(!0===Boolean(t)?this.Ff=G(this.Ff,19):this.Ff=Y(this.Ff,19))}}),Object.defineProperty(this,\"sort\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,20))},set:function(t){!0===Boolean(t)?(this.Ff=G(this.Ff,20),e.sort()):this.Ff=Y(this.Ff,20)}}),Object.defineProperty(this,\"multiSelect\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,22))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,22):this.Ff=Y(this.Ff,22)}}),Object.defineProperty(this,\"doNotSpellCheck\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,23))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,23):this.Ff=Y(this.Ff,23)}}),Object.defineProperty(this,\"commitOnSelChange\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,27))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,27):this.Ff=Y(this.Ff,27)}}),this.hasAppearanceStream=!1};D(ot,at);var st=function(){ot.call(this),this.fontName=\"helvetica\",this.combo=!1};D(st,ot);var ct=function(){st.call(this),this.combo=!0};D(ct,st);var ut=function(){ct.call(this),this.edit=!0};D(ut,ct);var lt=function(){at.call(this),this.FT=\"/Btn\",Object.defineProperty(this,\"noToggleToOff\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,15))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,15):this.Ff=Y(this.Ff,15)}}),Object.defineProperty(this,\"radio\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,16))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,16):this.Ff=Y(this.Ff,16)}}),Object.defineProperty(this,\"pushButton\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,17))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,17):this.Ff=Y(this.Ff,17)}}),Object.defineProperty(this,\"radioIsUnison\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,26))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,26):this.Ff=Y(this.Ff,26)}});var t,e={};Object.defineProperty(this,\"MK\",{enumerable:!1,configurable:!1,get:function(){var t=function(t){return t};if(this.scope&&(t=this.scope.internal.getEncryptor(this.objId)),0!==Object.keys(e).length){var r,n=[];for(r in n.push(\"<<\"),e)n.push(\"/\"+r+\" (\"+B(t(e[r]))+\")\");return n.push(\">>\"),n.join(\"\\n\")}},set:function(t){\"object\"==typeof t&&(e=t)}}),Object.defineProperty(this,\"caption\",{enumerable:!0,configurable:!0,get:function(){return e.CA||\"\"},set:function(t){\"string\"==typeof t&&(e.CA=t)}}),Object.defineProperty(this,\"AS\",{enumerable:!1,configurable:!1,get:function(){return t},set:function(e){var r=null==e?\"\":e.toString();\"/\"===r.substr(0,1)&&(r=r.substr(1)),t=\"/\"+M(r)}}),Object.defineProperty(this,\"appearanceState\",{enumerable:!0,configurable:!0,get:function(){return t.substr(1,t.length-1)},set:function(e){t=\"/\"+M(e)}})};D(lt,at);var ht=function(){lt.call(this),this.pushButton=!0};D(ht,lt);var ft=function(){lt.call(this),this.radio=!0,this.pushButton=!1;var t=[];Object.defineProperty(this,\"Kids\",{enumerable:!0,configurable:!1,get:function(){return t},set:function(e){t=void 0!==e?e:[]}})};D(ft,lt);var dt=function(){var t,e;at.call(this),Object.defineProperty(this,\"Parent\",{enumerable:!1,configurable:!1,get:function(){return t},set:function(e){t=e}}),Object.defineProperty(this,\"optionName\",{enumerable:!1,configurable:!0,get:function(){return e},set:function(t){e=t}});var r,n={};Object.defineProperty(this,\"MK\",{enumerable:!1,configurable:!1,get:function(){var t=function(t){return t};this.scope&&(t=this.scope.internal.getEncryptor(this.objId));var e,r=[];for(e in r.push(\"<<\"),n)r.push(\"/\"+e+\" (\"+B(t(n[e]))+\")\");return r.push(\">>\"),r.join(\"\\n\")},set:function(t){\"object\"==typeof t&&(n=t)}}),Object.defineProperty(this,\"caption\",{enumerable:!0,configurable:!0,get:function(){return n.CA||\"\"},set:function(t){\"string\"==typeof t&&(n.CA=t)}}),Object.defineProperty(this,\"AS\",{enumerable:!1,configurable:!1,get:function(){return r},set:function(t){var e=null==t?\"\":t.toString();\"/\"===e.substr(0,1)&&(e=e.substr(1)),r=\"/\"+M(e)}}),Object.defineProperty(this,\"appearanceState\",{enumerable:!0,configurable:!0,get:function(){return r.substr(1,r.length-1)},set:function(t){var e=null==t?\"\":t.toString();\"/\"===e.substr(0,1)&&(e=e.substr(1)),r=\"/\"+M(e)}}),this.caption=\"l\",this.appearanceState=\"Off\",this._AppearanceType=vt.RadioButton.Circle,this.appearanceStreamContent=this._AppearanceType.createAppearanceStream(this.optionName)};D(dt,at),ft.prototype.setAppearance=function(t){if(!(\"createAppearanceStream\"in t)||!(\"getCA\"in t))throw new Error(\"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\");for(var e in this.Kids)if(this.Kids.hasOwnProperty(e)){var r=this.Kids[e];r.appearanceStreamContent=t.createAppearanceStream(r.optionName),r.caption=t.getCA()}},ft.prototype.createOption=function(t){var e=new dt;return e.Parent=this,e.optionName=t,this.Kids.push(e),bt.call(this.scope,e),e};var pt=function(){lt.call(this),this.fontName=\"zapfdingbats\",this.caption=\"3\",this.appearanceState=\"On\",this.value=\"On\",this.textAlign=\"center\",this.appearanceStreamContent=vt.CheckBox.createAppearanceStream()};D(pt,lt);var gt=function(){at.call(this),this.FT=\"/Tx\",Object.defineProperty(this,\"multiline\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,13))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,13):this.Ff=Y(this.Ff,13)}}),Object.defineProperty(this,\"fileSelect\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,21))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,21):this.Ff=Y(this.Ff,21)}}),Object.defineProperty(this,\"doNotSpellCheck\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,23))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,23):this.Ff=Y(this.Ff,23)}}),Object.defineProperty(this,\"doNotScroll\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,24))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,24):this.Ff=Y(this.Ff,24)}}),Object.defineProperty(this,\"comb\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,25))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,25):this.Ff=Y(this.Ff,25)}}),Object.defineProperty(this,\"richText\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,26))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,26):this.Ff=Y(this.Ff,26)}});var t=null;Object.defineProperty(this,\"MaxLen\",{enumerable:!0,configurable:!1,get:function(){return t},set:function(e){t=e}}),Object.defineProperty(this,\"maxLength\",{enumerable:!0,configurable:!0,get:function(){return t},set:function(e){Number.isInteger(e)&&(t=e)}}),Object.defineProperty(this,\"hasAppearanceStream\",{enumerable:!0,configurable:!0,get:function(){return this.V||this.DV}})};D(gt,at);var mt=function(){gt.call(this),Object.defineProperty(this,\"password\",{enumerable:!0,configurable:!0,get:function(){return Boolean(V(this.Ff,14))},set:function(t){!0===Boolean(t)?this.Ff=G(this.Ff,14):this.Ff=Y(this.Ff,14)}}),this.password=!0};D(mt,gt);var vt={CheckBox:{createAppearanceStream:function(){return{N:{On:vt.CheckBox.YesNormal},D:{On:vt.CheckBox.YesPushDown,Off:vt.CheckBox.OffPushDown}}},YesPushDown:function(t){var e=z(t);e.scope=t.scope;var r=[],n=t.scope.internal.getFont(t.fontName,t.fontStyle).id,i=t.scope.__private__.encodeColorString(t.color),a=K(t,t.caption);return r.push(\"0.749023 g\"),r.push(\"0 0 \"+E(vt.internal.getWidth(t))+\" \"+E(vt.internal.getHeight(t))+\" re\"),r.push(\"f\"),r.push(\"BMC\"),r.push(\"q\"),r.push(\"0 0 1 rg\"),r.push(\"/\"+n+\" \"+E(a.fontSize)+\" Tf \"+i),r.push(\"BT\"),r.push(a.text),r.push(\"ET\"),r.push(\"Q\"),r.push(\"EMC\"),e.stream=r.join(\"\\n\"),e},YesNormal:function(t){var e=z(t);e.scope=t.scope;var r=t.scope.internal.getFont(t.fontName,t.fontStyle).id,n=t.scope.__private__.encodeColorString(t.color),i=[],a=vt.internal.getHeight(t),o=vt.internal.getWidth(t),s=K(t,t.caption);return i.push(\"1 g\"),i.push(\"0 0 \"+E(o)+\" \"+E(a)+\" re\"),i.push(\"f\"),i.push(\"q\"),i.push(\"0 0 1 rg\"),i.push(\"0 0 \"+E(o-1)+\" \"+E(a-1)+\" re\"),i.push(\"W\"),i.push(\"n\"),i.push(\"0 g\"),i.push(\"BT\"),i.push(\"/\"+r+\" \"+E(s.fontSize)+\" Tf \"+n),i.push(s.text),i.push(\"ET\"),i.push(\"Q\"),e.stream=i.join(\"\\n\"),e},OffPushDown:function(t){var e=z(t);e.scope=t.scope;var r=[];return r.push(\"0.749023 g\"),r.push(\"0 0 \"+E(vt.internal.getWidth(t))+\" \"+E(vt.internal.getHeight(t))+\" re\"),r.push(\"f\"),e.stream=r.join(\"\\n\"),e}},RadioButton:{Circle:{createAppearanceStream:function(t){var e={D:{Off:vt.RadioButton.Circle.OffPushDown},N:{}};return e.N[t]=vt.RadioButton.Circle.YesNormal,e.D[t]=vt.RadioButton.Circle.YesPushDown,e},getCA:function(){return\"l\"},YesNormal:function(t){var e=z(t);e.scope=t.scope;var r=[],n=vt.internal.getWidth(t)<=vt.internal.getHeight(t)?vt.internal.getWidth(t)/4:vt.internal.getHeight(t)/4;n=Number((.9*n).toFixed(5));var i=vt.internal.Bezier_C,a=Number((n*i).toFixed(5));return r.push(\"q\"),r.push(\"1 0 0 1 \"+R(vt.internal.getWidth(t)/2)+\" \"+R(vt.internal.getHeight(t)/2)+\" cm\"),r.push(n+\" 0 m\"),r.push(n+\" \"+a+\" \"+a+\" \"+n+\" 0 \"+n+\" c\"),r.push(\"-\"+a+\" \"+n+\" -\"+n+\" \"+a+\" -\"+n+\" 0 c\"),r.push(\"-\"+n+\" -\"+a+\" -\"+a+\" -\"+n+\" 0 -\"+n+\" c\"),r.push(a+\" -\"+n+\" \"+n+\" -\"+a+\" \"+n+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e},YesPushDown:function(t){var e=z(t);e.scope=t.scope;var r=[],n=vt.internal.getWidth(t)<=vt.internal.getHeight(t)?vt.internal.getWidth(t)/4:vt.internal.getHeight(t)/4;n=Number((.9*n).toFixed(5));var i=Number((2*n).toFixed(5)),a=Number((i*vt.internal.Bezier_C).toFixed(5)),o=Number((n*vt.internal.Bezier_C).toFixed(5));return r.push(\"0.749023 g\"),r.push(\"q\"),r.push(\"1 0 0 1 \"+R(vt.internal.getWidth(t)/2)+\" \"+R(vt.internal.getHeight(t)/2)+\" cm\"),r.push(i+\" 0 m\"),r.push(i+\" \"+a+\" \"+a+\" \"+i+\" 0 \"+i+\" c\"),r.push(\"-\"+a+\" \"+i+\" -\"+i+\" \"+a+\" -\"+i+\" 0 c\"),r.push(\"-\"+i+\" -\"+a+\" -\"+a+\" -\"+i+\" 0 -\"+i+\" c\"),r.push(a+\" -\"+i+\" \"+i+\" -\"+a+\" \"+i+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),r.push(\"0 g\"),r.push(\"q\"),r.push(\"1 0 0 1 \"+R(vt.internal.getWidth(t)/2)+\" \"+R(vt.internal.getHeight(t)/2)+\" cm\"),r.push(n+\" 0 m\"),r.push(n+\" \"+o+\" \"+o+\" \"+n+\" 0 \"+n+\" c\"),r.push(\"-\"+o+\" \"+n+\" -\"+n+\" \"+o+\" -\"+n+\" 0 c\"),r.push(\"-\"+n+\" -\"+o+\" -\"+o+\" -\"+n+\" 0 -\"+n+\" c\"),r.push(o+\" -\"+n+\" \"+n+\" -\"+o+\" \"+n+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e},OffPushDown:function(t){var e=z(t);e.scope=t.scope;var r=[],n=vt.internal.getWidth(t)<=vt.internal.getHeight(t)?vt.internal.getWidth(t)/4:vt.internal.getHeight(t)/4;n=Number((.9*n).toFixed(5));var i=Number((2*n).toFixed(5)),a=Number((i*vt.internal.Bezier_C).toFixed(5));return r.push(\"0.749023 g\"),r.push(\"q\"),r.push(\"1 0 0 1 \"+R(vt.internal.getWidth(t)/2)+\" \"+R(vt.internal.getHeight(t)/2)+\" cm\"),r.push(i+\" 0 m\"),r.push(i+\" \"+a+\" \"+a+\" \"+i+\" 0 \"+i+\" c\"),r.push(\"-\"+a+\" \"+i+\" -\"+i+\" \"+a+\" -\"+i+\" 0 c\"),r.push(\"-\"+i+\" -\"+a+\" -\"+a+\" -\"+i+\" 0 -\"+i+\" c\"),r.push(a+\" -\"+i+\" \"+i+\" -\"+a+\" \"+i+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e}},Cross:{createAppearanceStream:function(t){var e={D:{Off:vt.RadioButton.Cross.OffPushDown},N:{}};return e.N[t]=vt.RadioButton.Cross.YesNormal,e.D[t]=vt.RadioButton.Cross.YesPushDown,e},getCA:function(){return\"8\"},YesNormal:function(t){var e=z(t);e.scope=t.scope;var r=[],n=vt.internal.calculateCross(t);return r.push(\"q\"),r.push(\"1 1 \"+E(vt.internal.getWidth(t)-2)+\" \"+E(vt.internal.getHeight(t)-2)+\" re\"),r.push(\"W\"),r.push(\"n\"),r.push(E(n.x1.x)+\" \"+E(n.x1.y)+\" m\"),r.push(E(n.x2.x)+\" \"+E(n.x2.y)+\" l\"),r.push(E(n.x4.x)+\" \"+E(n.x4.y)+\" m\"),r.push(E(n.x3.x)+\" \"+E(n.x3.y)+\" l\"),r.push(\"s\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e},YesPushDown:function(t){var e=z(t);e.scope=t.scope;var r=vt.internal.calculateCross(t),n=[];return n.push(\"0.749023 g\"),n.push(\"0 0 \"+E(vt.internal.getWidth(t))+\" \"+E(vt.internal.getHeight(t))+\" re\"),n.push(\"f\"),n.push(\"q\"),n.push(\"1 1 \"+E(vt.internal.getWidth(t)-2)+\" \"+E(vt.internal.getHeight(t)-2)+\" re\"),n.push(\"W\"),n.push(\"n\"),n.push(E(r.x1.x)+\" \"+E(r.x1.y)+\" m\"),n.push(E(r.x2.x)+\" \"+E(r.x2.y)+\" l\"),n.push(E(r.x4.x)+\" \"+E(r.x4.y)+\" m\"),n.push(E(r.x3.x)+\" \"+E(r.x3.y)+\" l\"),n.push(\"s\"),n.push(\"Q\"),e.stream=n.join(\"\\n\"),e},OffPushDown:function(t){var e=z(t);e.scope=t.scope;var r=[];return r.push(\"0.749023 g\"),r.push(\"0 0 \"+E(vt.internal.getWidth(t))+\" \"+E(vt.internal.getHeight(t))+\" re\"),r.push(\"f\"),e.stream=r.join(\"\\n\"),e}}},createDefaultAppearanceStream:function(t){var e=t.scope.internal.getFont(t.fontName,t.fontStyle).id,r=t.scope.__private__.encodeColorString(t.color);return\"/\"+e+\" \"+t.fontSize+\" Tf \"+r}};vt.internal={Bezier_C:.551915024494,calculateCross:function(t){var e=vt.internal.getWidth(t),r=vt.internal.getHeight(t),n=Math.min(e,r);return{x1:{x:(e-n)/2,y:(r-n)/2+n},x2:{x:(e-n)/2+n,y:(r-n)/2},x3:{x:(e-n)/2,y:(r-n)/2},x4:{x:(e-n)/2+n,y:(r-n)/2+n}}}},vt.internal.getWidth=function(t){var e=0;return\"object\"==typeof t&&(e=T(t.Rect[2])),e},vt.internal.getHeight=function(t){var e=0;return\"object\"==typeof t&&(e=T(t.Rect[3])),e};var bt=j.addField=function(t){if(function(t,e){if(e.scope=t,void 0!==t.internal&&(void 0===t.internal.acroformPlugin||!1===t.internal.acroformPlugin.isInitialized)){if(at.FieldNum=0,t.internal.acroformPlugin=JSON.parse(JSON.stringify(Z)),t.internal.acroformPlugin.acroFormDictionaryRoot)throw new Error(\"Exception while creating AcroformDictionary\");O=t.internal.scaleFactor,t.internal.acroformPlugin.acroFormDictionaryRoot=new it,t.internal.acroformPlugin.acroFormDictionaryRoot.scope=t,t.internal.acroformPlugin.acroFormDictionaryRoot._eventID=t.internal.events.subscribe(\"postPutResources\",function(){!function(t){t.internal.events.unsubscribe(t.internal.acroformPlugin.acroFormDictionaryRoot._eventID),delete t.internal.acroformPlugin.acroFormDictionaryRoot._eventID,t.internal.acroformPlugin.printedOut=!0}(t)}),t.internal.events.subscribe(\"buildDocument\",function(){!function(t){t.internal.acroformPlugin.acroFormDictionaryRoot.objId=void 0;var e=t.internal.acroformPlugin.acroFormDictionaryRoot.Fields;for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];n.objId=void 0,n.hasAnnotation&&Q(n,t)}}(t)}),t.internal.events.subscribe(\"putCatalog\",function(){!function(t){if(void 0===t.internal.acroformPlugin.acroFormDictionaryRoot)throw new Error(\"putCatalogCallback: Root missing.\");t.internal.write(\"/AcroForm \"+t.internal.acroformPlugin.acroFormDictionaryRoot.objId+\" 0 R\")}(t)}),t.internal.events.subscribe(\"postPutPages\",function(e){!function(t,e){var r=!t;for(var n in t||(e.internal.newObjectDeferredBegin(e.internal.acroformPlugin.acroFormDictionaryRoot.objId,!0),e.internal.acroformPlugin.acroFormDictionaryRoot.putStream()),t=t||e.internal.acroformPlugin.acroFormDictionaryRoot.Kids)if(t.hasOwnProperty(n)){var i=t[n],a=[],o=i.Rect;if(i.Rect&&(i.Rect=J(i.Rect,e)),e.internal.newObjectDeferredBegin(i.objId,!0),i.DA=vt.createDefaultAppearanceStream(i),\"object\"==typeof i&&\"function\"==typeof i.getKeyValueListForStream&&(a=i.getKeyValueListForStream()),i.Rect=o,i.hasAppearanceStream&&!i.appearanceStreamContent){var s=X(i);a.push({key:\"AP\",value:\"<</N \"+s+\">>\"}),e.internal.acroformPlugin.xForms.push(s)}if(i.appearanceStreamContent){var c=\"\";for(var u in i.appearanceStreamContent)if(i.appearanceStreamContent.hasOwnProperty(u)){var l=i.appearanceStreamContent[u];if(c+=\"/\"+u+\" \",c+=\"<<\",Object.keys(l).length>=1||Array.isArray(l)){for(var n in l)if(l.hasOwnProperty(n)){var h=l[n];\"function\"==typeof h&&(h=h.call(e,i)),c+=\"/\"+n+\" \"+h+\" \",e.internal.acroformPlugin.xForms.indexOf(h)>=0||e.internal.acroformPlugin.xForms.push(h)}}else\"function\"==typeof(h=l)&&(h=h.call(e,i)),c+=\"/\"+n+\" \"+h,e.internal.acroformPlugin.xForms.indexOf(h)>=0||e.internal.acroformPlugin.xForms.push(h);c+=\">>\"}a.push({key:\"AP\",value:\"<<\\n\"+c+\">>\"})}e.internal.putStream({additionalKeyValues:a,objectId:i.objId}),e.internal.out(\"endobj\")}r&&function(t,e){for(var r in t)if(t.hasOwnProperty(r)){var n=r,i=t[r];e.internal.newObjectDeferredBegin(i.objId,!0),\"object\"==typeof i&&\"function\"==typeof i.putStream&&i.putStream(),delete t[n]}}(e.internal.acroformPlugin.xForms,e)}(e,t)}),t.internal.acroformPlugin.isInitialized=!0}}(this,t),!(t instanceof at))throw new Error(\"Invalid argument passed to jsPDF.addField.\");var e;return(e=t).scope.internal.acroformPlugin.printedOut&&(e.scope.internal.acroformPlugin.printedOut=!1,e.scope.internal.acroformPlugin.acroFormDictionaryRoot=null),e.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(e),t.page=t.scope.internal.getCurrentPageInfo().pageNumber,this};j.AcroFormChoiceField=ot,j.AcroFormListBox=st,j.AcroFormComboBox=ct,j.AcroFormEditBox=ut,j.AcroFormButton=lt,j.AcroFormPushButton=ht,j.AcroFormRadioButton=ft,j.AcroFormCheckBox=pt,j.AcroFormTextField=gt,j.AcroFormPasswordField=mt,j.AcroFormAppearance=vt,j.AcroForm={ChoiceField:ot,ListBox:st,ComboBox:ct,EditBox:ut,Button:lt,PushButton:ht,RadioButton:ft,CheckBox:pt,TextField:gt,PasswordField:mt,Appearance:vt},C.AcroForm={ChoiceField:ot,ListBox:st,ComboBox:ct,EditBox:ut,Button:lt,PushButton:ht,RadioButton:ft,CheckBox:pt,TextField:gt,PasswordField:mt,Appearance:vt};var yt=C.AcroForm;\n/** @license\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n * 2013 Chris Dowling, https://github.com/gingerchris\n * 2013 Trinh Ho, https://github.com/ineedfat\n * 2013 Edwin Alejandro Perez, https://github.com/eaparango\n * 2013 Norah Smith, https://github.com/burnburnrocket\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */function wt(t){return t.reduce(function(t,e,r){return t[e]=r,t},{})}!function(t){var e=\"addImage_\";t.__addimage__={};var r=\"UNKNOWN\",n={PNG:[[137,80,78,71]],TIFF:[[77,77,0,42],[73,73,42,0]],JPEG:[[255,216,255,224,void 0,void 0,74,70,73,70,0],[255,216,255,225,void 0,void 0,69,120,105,102,0,0],[255,216,255,219],[255,216,255,238]],JPEG2000:[[0,0,0,12,106,80,32,32]],GIF87a:[[71,73,70,56,55,97]],GIF89a:[[71,73,70,56,57,97]],WEBP:[[82,73,70,70,void 0,void 0,void 0,void 0,87,69,66,80]],BMP:[[66,77],[66,65],[67,73],[67,80],[73,67],[80,84]]},a=t.__addimage__.getImageFileTypeByImageData=function(t,e){var i,a,o,s,c,u=r;if(\"RGBA\"===(e=e||r)||void 0!==t.data&&t.data instanceof Uint8ClampedArray&&\"height\"in t&&\"width\"in t)return\"RGBA\";if(x(t))for(c in n)for(o=n[c],i=0;i<o.length;i+=1){for(s=!0,a=0;a<o[i].length;a+=1)if(void 0!==o[i][a]&&o[i][a]!==t[a]){s=!1;break}if(!0===s){u=c;break}}else for(c in n)for(o=n[c],i=0;i<o.length;i+=1){for(s=!0,a=0;a<o[i].length;a+=1)if(void 0!==o[i][a]&&o[i][a]!==t.charCodeAt(a)){s=!1;break}if(!0===s){u=c;break}}return u===r&&e!==r&&(u=e),u},o=function(t){for(var e=this.internal.write,r=this.internal.putStream,n=(0,this.internal.getFilters)();-1!==n.indexOf(\"FlateEncode\");)n.splice(n.indexOf(\"FlateEncode\"),1);t.objectId=this.internal.newObject();var i=[];if(i.push({key:\"Type\",value:\"/XObject\"}),i.push({key:\"Subtype\",value:\"/Image\"}),i.push({key:\"Width\",value:t.width}),i.push({key:\"Height\",value:t.height}),t.colorSpace===b.INDEXED?i.push({key:\"ColorSpace\",value:\"[/Indexed /DeviceRGB \"+(t.palette.length/3-1)+\" \"+(\"sMask\"in t&&void 0!==t.sMask?t.objectId+2:t.objectId+1)+\" 0 R]\"}):(i.push({key:\"ColorSpace\",value:\"/\"+t.colorSpace}),t.colorSpace===b.DEVICE_CMYK&&i.push({key:\"Decode\",value:\"[1 0 1 0 1 0 1 0]\"})),i.push({key:\"BitsPerComponent\",value:t.bitsPerComponent}),\"decodeParameters\"in t&&void 0!==t.decodeParameters&&i.push({key:\"DecodeParms\",value:\"<<\"+t.decodeParameters+\">>\"}),\"transparency\"in t&&Array.isArray(t.transparency)&&t.transparency.length>0){for(var a=\"\",s=0,c=t.transparency.length;s<c;s++)a+=t.transparency[s]+\" \"+t.transparency[s]+\" \";i.push({key:\"Mask\",value:\"[\"+a+\"]\"})}void 0!==t.sMask&&i.push({key:\"SMask\",value:t.objectId+1+\" 0 R\"});var u=void 0!==t.filter?[\"/\"+t.filter]:void 0;if(r({data:t.data,additionalKeyValues:i,alreadyAppliedFilters:u,objectId:t.objectId}),e(\"endobj\"),\"sMask\"in t&&void 0!==t.sMask){const e=t.sMaskBitsPerComponent??t.bitsPerComponent,r={width:t.width,height:t.height,colorSpace:\"DeviceGray\",bitsPerComponent:e,data:t.sMask};\"filter\"in t&&(r.decodeParameters=`/Predictor ${t.predictor} /Colors 1 /BitsPerComponent ${e} /Columns ${t.width}`,r.filter=t.filter),o.call(this,r)}if(t.colorSpace===b.INDEXED){var l=this.internal.newObject();r({data:S(new Uint8Array(t.palette)),objectId:l}),e(\"endobj\")}},s=function(){var t=this.internal.collections[e+\"images\"];for(var r in t)o.call(this,t[r])},c=function(){var t,r=this.internal.collections[e+\"images\"],n=this.internal.write;for(var i in r)n(\"/I\"+(t=r[i]).index,t.objectId,\"0\",\"R\")},u=function(){this.internal.collections[e+\"images\"]||(this.internal.collections[e+\"images\"]={},this.internal.events.subscribe(\"putResources\",s),this.internal.events.subscribe(\"putXobjectDict\",c))},l=function(){var t=this.internal.collections[e+\"images\"];return u.call(this),t},h=function(){return Object.keys(this.internal.collections[e+\"images\"]).length},f=function(e){return\"function\"==typeof t[\"process\"+e.toUpperCase()]},d=function(t){return\"object\"==typeof t&&1===t.nodeType},p=function(e,r){if(\"IMG\"===e.nodeName&&e.hasAttribute(\"src\")){var n=\"\"+e.getAttribute(\"src\");if(0===n.indexOf(\"data:image/\"))return i(unescape(n).split(\"base64,\").pop());var a=t.loadFile(n,!0);if(void 0!==a)return a}if(\"CANVAS\"===e.nodeName){if(0===e.width||0===e.height)throw new Error(\"Given canvas must have data. Canvas width: \"+e.width+\", height: \"+e.height);var o;switch(r){case\"PNG\":o=\"image/png\";break;case\"WEBP\":o=\"image/webp\";break;default:o=\"image/jpeg\"}return i(e.toDataURL(o,1).split(\"base64,\").pop())}},g=function(t){var r=this.internal.collections[e+\"images\"];if(r)for(var n in r)if(t===r[n].alias)return r[n]},m=function(t,e,r){return t||e||(t=-96,e=-96),t<0&&(t=-1*r.width*72/t/this.internal.scaleFactor),e<0&&(e=-1*r.height*72/e/this.internal.scaleFactor),0===t&&(t=e*r.width/r.height),0===e&&(e=t*r.height/r.width),[t,e]},v=function(t,e,r,n,i,a){var o=m.call(this,r,n,i),s=this.internal.getCoordinateString,c=this.internal.getVerticalCoordinateString,u=l.call(this);if(r=o[0],n=o[1],u[i.index]=i,a){a*=Math.PI/180;var h=Math.cos(a),f=Math.sin(a),d=function(t){return t.toFixed(4)},p=[d(h),d(f),d(-1*f),d(h),0,0,\"cm\"]}this.internal.write(\"q\"),a?(this.internal.write([1,\"0\",\"0\",1,s(t),c(e+n),\"cm\"].join(\" \")),this.internal.write(p.join(\" \")),this.internal.write([s(r),\"0\",\"0\",s(n),\"0\",\"0\",\"cm\"].join(\" \"))):this.internal.write([s(r),\"0\",\"0\",s(n),s(t),c(e+n),\"cm\"].join(\" \")),this.isAdvancedAPI()&&this.internal.write([1,0,0,-1,0,0,\"cm\"].join(\" \")),this.internal.write(\"/I\"+i.index+\" Do\"),this.internal.write(\"Q\")},b=t.color_spaces={DEVICE_RGB:\"DeviceRGB\",DEVICE_GRAY:\"DeviceGray\",DEVICE_CMYK:\"DeviceCMYK\",CAL_GREY:\"CalGray\",CAL_RGB:\"CalRGB\",LAB:\"Lab\",ICC_BASED:\"ICCBased\",INDEXED:\"Indexed\",PATTERN:\"Pattern\",SEPARATION:\"Separation\",DEVICE_N:\"DeviceN\"};t.decode={DCT_DECODE:\"DCTDecode\",FLATE_DECODE:\"FlateDecode\",LZW_DECODE:\"LZWDecode\",JPX_DECODE:\"JPXDecode\",JBIG2_DECODE:\"JBIG2Decode\",ASCII85_DECODE:\"ASCII85Decode\",ASCII_HEX_DECODE:\"ASCIIHexDecode\",RUN_LENGTH_DECODE:\"RunLengthDecode\",CCITT_FAX_DECODE:\"CCITTFaxDecode\"};var y=t.image_compression={NONE:\"NONE\",FAST:\"FAST\",MEDIUM:\"MEDIUM\",SLOW:\"SLOW\"},w=t.__addimage__.sHashCode=function(t){var e,r,n=0;if(\"string\"==typeof t)for(r=t.length,e=0;e<r;e++)n=(n<<5)-n+t.charCodeAt(e),n|=0;else if(x(t))for(r=t.byteLength/2,e=0;e<r;e++)n=(n<<5)-n+t[e],n|=0;return n},N=t.__addimage__.validateStringAsBase64=function(t){(t=t||\"\").toString().trim();var e=!0;return 0===t.length&&(e=!1),t.length%4!=0&&(e=!1),!1===/^[A-Za-z0-9+/]+$/.test(t.substr(0,t.length-2))&&(e=!1),!1===/^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(t.substr(-2))&&(e=!1),e},L=t.__addimage__.extractImageFromDataUrl=function(t){if(null==t)return null;if(!(t=t.trim()).startsWith(\"data:\"))return null;const e=t.indexOf(\",\");return e<0?null:t.substring(0,e).trim().endsWith(\"base64\")?t.substring(e+1):null};t.__addimage__.isArrayBuffer=function(t){return t instanceof ArrayBuffer};var x=t.__addimage__.isArrayBufferView=function(t){return t instanceof Int8Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array},A=t.__addimage__.binaryStringToUint8Array=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;n<e;n++)r[n]=t.charCodeAt(n);return r},S=t.__addimage__.arrayBufferToBinaryString=function(t){for(var e=\"\",r=x(t)?t:new Uint8Array(t),n=0;n<r.length;n+=8192)e+=String.fromCharCode.apply(null,r.subarray(n,n+8192));return e};t.addImage=function(){var t,e,n,i,a,o,s,c,l;if(\"number\"==typeof arguments[1]?(e=r,n=arguments[1],i=arguments[2],a=arguments[3],o=arguments[4],s=arguments[5],c=arguments[6],l=arguments[7]):(e=arguments[1],n=arguments[2],i=arguments[3],a=arguments[4],o=arguments[5],s=arguments[6],c=arguments[7],l=arguments[8]),\"object\"==typeof(t=arguments[0])&&!d(t)&&\"imageData\"in t){var h=t;t=h.imageData,e=h.format||e||r,n=h.x||n||0,i=h.y||i||0,a=h.w||h.width||a,o=h.h||h.height||o,s=h.alias||s,c=h.compression||c,l=h.rotation||h.angle||l}var f=this.internal.getFilters();if(void 0===c&&-1!==f.indexOf(\"FlateEncode\")&&(c=\"SLOW\"),isNaN(n)||isNaN(i))throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");u.call(this);var p=_.call(this,t,e,s,c);return v.call(this,n,i,a,o,p,l),this};var _=function(e,n,i,o){var s,c,u;if(\"string\"==typeof e&&a(e)===r){e=unescape(e);var l=P(e,!1);(\"\"!==l||void 0!==(l=t.loadFile(e,!0)))&&(e=l)}if(d(e)&&(e=p(e,n)),n=a(e,n),!f(n))throw new Error(\"addImage does not support files of type '\"+n+\"', please ensure that a plugin for '\"+n+\"' support is added.\");if((null==(u=i)||0===u.length)&&(i=function(t){return\"string\"==typeof t||x(t)?w(t):x(t.data)?w(t.data):null}(e)),(s=g.call(this,i))||(e instanceof Uint8Array||\"RGBA\"===n||(c=e,e=A(e)),s=this[\"process\"+n.toUpperCase()](e,h.call(this),i,function(e){return e&&\"string\"==typeof e&&(e=e.toUpperCase()),e in t.image_compression?e:y.NONE}(o),c)),!s)throw new Error(\"An unknown error occurred whilst processing the image.\");return s},P=t.__addimage__.convertBase64ToBinaryString=function(t,e){e=\"boolean\"!=typeof e||e;var r,n=\"\";if(\"string\"==typeof t){r=L(t)??t;try{n=i(r)}catch(a){if(e)throw N(r)?new Error(\"atob-Error in jsPDF.convertBase64ToBinaryString \"+a.message):new Error(\"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \")}}return n};t.getImageProperties=function(e){var n,i,o=\"\";if(d(e)&&(e=p(e)),\"string\"==typeof e&&a(e)===r&&(\"\"===(o=P(e,!1))&&(o=t.loadFile(e)||\"\"),e=o),i=a(e),!f(i))throw new Error(\"addImage does not support files of type '\"+i+\"', please ensure that a plugin for '\"+i+\"' support is added.\");if(e instanceof Uint8Array||(e=A(e)),!(n=this[\"process\"+i.toUpperCase()](e)))throw new Error(\"An unknown error occurred whilst processing the image\");return n.fileType=i,n}}(C.API),\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(t){if(void 0!==t&&\"\"!=t)return!0};C.API.events.push([\"addPage\",function(t){this.internal.getPageInfo(t.pageNumber).pageContext.annotations=[]}]),t.events.push([\"putPage\",function(t){for(var r,n,i,a=this.internal.getCoordinateString,o=this.internal.getVerticalCoordinateString,s=this.internal.getPageInfoByObjId(t.objId),c=t.pageContext.annotations,u=!1,l=0;l<c.length&&!u;l++)switch((r=c[l]).type){case\"link\":(e(r.options.url)||e(r.options.pageNumber))&&(u=!0);break;case\"reference\":case\"text\":case\"freetext\":u=!0}if(0!=u){this.internal.write(\"/Annots [\");for(var h=0;h<c.length;h++){r=c[h];var f=this.internal.pdfEscape,d=this.internal.getEncryptor(t.objId);switch(r.type){case\"reference\":this.internal.write(\" \"+r.object.objId+\" 0 R \");break;case\"text\":var p=this.internal.newAdditionalObject(),g=this.internal.newAdditionalObject(),m=this.internal.getEncryptor(p.objId),v=r.title||\"Note\";i=\"<</Type /Annot /Subtype /Text \"+(n=\"/Rect [\"+a(r.bounds.x)+\" \"+o(r.bounds.y+r.bounds.h)+\" \"+a(r.bounds.x+r.bounds.w)+\" \"+o(r.bounds.y)+\"] \")+\"/Contents (\"+f(m(r.contents))+\")\",i+=\" /Popup \"+g.objId+\" 0 R\",i+=\" /P \"+s.objId+\" 0 R\",i+=\" /T (\"+f(m(v))+\") >>\",p.content=i;var b=p.objId+\" 0 R\";i=\"<</Type /Annot /Subtype /Popup \"+(n=\"/Rect [\"+a(r.bounds.x+30)+\" \"+o(r.bounds.y+r.bounds.h)+\" \"+a(r.bounds.x+r.bounds.w+30)+\" \"+o(r.bounds.y)+\"] \")+\" /Parent \"+b,r.open&&(i+=\" /Open true\"),i+=\" >>\",g.content=i,this.internal.write(p.objId,\"0 R\",g.objId,\"0 R\");break;case\"freetext\":n=\"/Rect [\"+a(r.bounds.x)+\" \"+o(r.bounds.y)+\" \"+a(r.bounds.x+r.bounds.w)+\" \"+o(r.bounds.y+r.bounds.h)+\"] \";var y=\"font: Helvetica,sans-serif 12.0pt; text-align:left; color:#\"+(r.color||\"#000000\");i=\"<</Type /Annot /Subtype /FreeText \"+n+\"/Contents (\"+f(d(r.contents))+\")\",i+=\" /DS(\"+f(d(y))+\")\",i+=\" /Border [0 0 0]\",i+=\" >>\",this.internal.write(i);break;case\"link\":if(r.options.name){var w=this.annotations._nameMap[r.options.name];r.options.pageNumber=w.page,r.options.top=w.y}else r.options.top||(r.options.top=0);if(n=\"/Rect [\"+r.finalBounds.x+\" \"+r.finalBounds.y+\" \"+r.finalBounds.w+\" \"+r.finalBounds.h+\"] \",i=\"\",r.options.url)i=\"<</Type /Annot /Subtype /Link \"+n+\"/Border [0 0 0] /A <</S /URI /URI (\"+f(d(r.options.url))+\") >>\";else if(r.options.pageNumber)switch(i=\"<</Type /Annot /Subtype /Link \"+n+\"/Border [0 0 0] /Dest [\"+this.internal.getPageInfo(r.options.pageNumber).objId+\" 0 R\",r.options.magFactor=r.options.magFactor||\"XYZ\",r.options.magFactor){case\"Fit\":i+=\" /Fit]\";break;case\"FitH\":i+=\" /FitH \"+r.options.top+\"]\";break;case\"FitV\":r.options.left=r.options.left||0,i+=\" /FitV \"+r.options.left+\"]\";break;default:var N=o(r.options.top);r.options.left=r.options.left||0,void 0===r.options.zoom&&(r.options.zoom=0),i+=\" /XYZ \"+r.options.left+\" \"+N+\" \"+r.options.zoom+\"]\"}\"\"!=i&&(i+=\" >>\",this.internal.write(i))}}this.internal.write(\"]\")}}]),t.createAnnotation=function(t){var e=this.internal.getCurrentPageInfo();switch(t.type){case\"link\":this.link(t.bounds.x,t.bounds.y,t.bounds.w,t.bounds.h,t);break;case\"text\":case\"freetext\":e.pageContext.annotations.push(t)}},t.link=function(t,e,r,n,i){var a=this.internal.getCurrentPageInfo(),o=this.internal.getCoordinateString,s=this.internal.getVerticalCoordinateString;a.pageContext.annotations.push({finalBounds:{x:o(t),y:s(e),w:o(t+r),h:s(e+n)},options:i,type:\"link\"})},t.textWithLink=function(t,e,r,n){var i,a,o=this.getTextWidth(t),s=this.internal.getLineHeight()/this.internal.scaleFactor;if(void 0!==n.maxWidth){var{maxWidth:c}=n;a=c;var u=this.splitTextToSize(t,a).length;i=Math.ceil(s*u)}else a=o,i=s;return this.text(t,e,r,n),r+=.2*s,\"center\"===n.align&&(e-=o/2),\"right\"===n.align&&(e-=o),this.link(e,r-s,a,i,n),o},t.getTextWidth=function(t){var e=this.internal.getFontSize();return this.getStringUnitWidth(t)*e/this.internal.scaleFactor}}(C.API),\n/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e={1569:[65152],1570:[65153,65154],1571:[65155,65156],1572:[65157,65158],1573:[65159,65160],1574:[65161,65162,65163,65164],1575:[65165,65166],1576:[65167,65168,65169,65170],1577:[65171,65172],1578:[65173,65174,65175,65176],1579:[65177,65178,65179,65180],1580:[65181,65182,65183,65184],1581:[65185,65186,65187,65188],1582:[65189,65190,65191,65192],1583:[65193,65194],1584:[65195,65196],1585:[65197,65198],1586:[65199,65200],1587:[65201,65202,65203,65204],1588:[65205,65206,65207,65208],1589:[65209,65210,65211,65212],1590:[65213,65214,65215,65216],1591:[65217,65218,65219,65220],1592:[65221,65222,65223,65224],1593:[65225,65226,65227,65228],1594:[65229,65230,65231,65232],1601:[65233,65234,65235,65236],1602:[65237,65238,65239,65240],1603:[65241,65242,65243,65244],1604:[65245,65246,65247,65248],1605:[65249,65250,65251,65252],1606:[65253,65254,65255,65256],1607:[65257,65258,65259,65260],1608:[65261,65262],1609:[65263,65264,64488,64489],1610:[65265,65266,65267,65268],1649:[64336,64337],1655:[64477],1657:[64358,64359,64360,64361],1658:[64350,64351,64352,64353],1659:[64338,64339,64340,64341],1662:[64342,64343,64344,64345],1663:[64354,64355,64356,64357],1664:[64346,64347,64348,64349],1667:[64374,64375,64376,64377],1668:[64370,64371,64372,64373],1670:[64378,64379,64380,64381],1671:[64382,64383,64384,64385],1672:[64392,64393],1676:[64388,64389],1677:[64386,64387],1678:[64390,64391],1681:[64396,64397],1688:[64394,64395],1700:[64362,64363,64364,64365],1702:[64366,64367,64368,64369],1705:[64398,64399,64400,64401],1709:[64467,64468,64469,64470],1711:[64402,64403,64404,64405],1713:[64410,64411,64412,64413],1715:[64406,64407,64408,64409],1722:[64414,64415],1723:[64416,64417,64418,64419],1726:[64426,64427,64428,64429],1728:[64420,64421],1729:[64422,64423,64424,64425],1733:[64480,64481],1734:[64473,64474],1735:[64471,64472],1736:[64475,64476],1737:[64482,64483],1739:[64478,64479],1740:[64508,64509,64510,64511],1744:[64484,64485,64486,64487],1746:[64430,64431],1747:[64432,64433]},r={65247:{65154:65269,65156:65271,65160:65273,65166:65275},65248:{65154:65270,65156:65272,65160:65274,65166:65276},65165:{65247:{65248:{65258:65010}}},1617:{1612:64606,1613:64607,1614:64608,1615:64609,1616:64610}},n={1612:64606,1613:64607,1614:64608,1615:64609,1616:64610},i=[1570,1571,1573,1575];t.__arabicParser__={};var a=t.__arabicParser__.isInArabicSubstitutionA=function(t){return void 0!==e[t.charCodeAt(0)]},o=t.__arabicParser__.isArabicLetter=function(t){return\"string\"==typeof t&&/^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(t)},s=t.__arabicParser__.isArabicEndLetter=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length<=2},c=t.__arabicParser__.isArabicAlfLetter=function(t){return o(t)&&i.indexOf(t.charCodeAt(0))>=0};t.__arabicParser__.arabicLetterHasIsolatedForm=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length>=1};var u=t.__arabicParser__.arabicLetterHasFinalForm=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length>=2};t.__arabicParser__.arabicLetterHasInitialForm=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length>=3};var l=t.__arabicParser__.arabicLetterHasMedialForm=function(t){return o(t)&&a(t)&&4==e[t.charCodeAt(0)].length},h=t.__arabicParser__.resolveLigatures=function(t){var e=0,n=r,i=\"\",a=0;for(e=0;e<t.length;e+=1)void 0!==n[t.charCodeAt(e)]?(a++,\"number\"==typeof(n=n[t.charCodeAt(e)])&&(i+=String.fromCharCode(n),n=r,a=0),e===t.length-1&&(n=r,i+=t.charAt(e-(a-1)),e-=a-1,a=0)):(n=r,i+=t.charAt(e-a),e-=a,a=0);return i};t.__arabicParser__.isArabicDiacritic=function(t){return void 0!==t&&void 0!==n[t.charCodeAt(0)]};var f=t.__arabicParser__.getCorrectForm=function(t,e,r){return o(t)?!1===a(t)?-1:!u(t)||!o(e)&&!o(r)||!o(r)&&s(e)||s(t)&&!o(e)||s(t)&&c(e)||s(t)&&s(e)?0:l(t)&&o(e)&&!s(e)&&o(r)&&u(r)?3:s(t)||!o(r)?1:2:-1},d=function(t){var r=0,n=0,i=0,a=\"\",s=\"\",c=\"\",u=(t=t||\"\").split(\"\\\\s+\"),l=[];for(r=0;r<u.length;r+=1){for(l.push(\"\"),n=0;n<u[r].length;n+=1)a=u[r][n],s=u[r][n-1],c=u[r][n+1],o(a)?(i=f(a,s,c),l[r]+=-1!==i?String.fromCharCode(e[a.charCodeAt(0)][i]):a):l[r]+=a;l[r]=h(l[r])}return l.join(\" \")},p=t.__arabicParser__.processArabic=t.processArabic=function(){var t,e=\"string\"==typeof arguments[0]?arguments[0]:arguments[0].text,r=[];if(Array.isArray(e)){var n=0;for(r=[],n=0;n<e.length;n+=1)Array.isArray(e[n])?r.push([d(e[n][0]),e[n][1],e[n][2]]):r.push([d(e[n])]);t=r}else t=d(e);return\"string\"==typeof arguments[0]?t:(arguments[0].text=t,arguments[0])};t.events.push([\"preProcessText\",p])}(C.API),C.API.autoPrint=function(t){var e;return(t=t||{}).variant=t.variant||\"non-conform\",\"javascript\"===t.variant?this.addJS(\"print({});\"):(this.internal.events.subscribe(\"postPutResources\",function(){e=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/S /Named\"),this.internal.out(\"/Type /Action\"),this.internal.out(\"/N /Print\"),this.internal.out(\">>\"),this.internal.out(\"endobj\")}),this.internal.events.subscribe(\"putCatalog\",function(){this.internal.out(\"/OpenAction \"+e+\" 0 R\")})),this},\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(){var t=void 0;Object.defineProperty(this,\"pdf\",{get:function(){return t},set:function(e){t=e}});var e=150;Object.defineProperty(this,\"width\",{get:function(){return e},set:function(t){e=isNaN(t)||!1===Number.isInteger(t)||t<0?150:t,this.getContext(\"2d\").pageWrapXEnabled&&(this.getContext(\"2d\").pageWrapX=e+1)}});var r=300;Object.defineProperty(this,\"height\",{get:function(){return r},set:function(t){r=isNaN(t)||!1===Number.isInteger(t)||t<0?300:t,this.getContext(\"2d\").pageWrapYEnabled&&(this.getContext(\"2d\").pageWrapY=r+1)}});var n=[];Object.defineProperty(this,\"childNodes\",{get:function(){return n},set:function(t){n=t}});var i={};Object.defineProperty(this,\"style\",{get:function(){return i},set:function(t){i=t}}),Object.defineProperty(this,\"parentNode\",{})};e.prototype.getContext=function(t,e){var r;if(\"2d\"!==(t=t||\"2d\"))return null;for(r in e)this.pdf.context2d.hasOwnProperty(r)&&(this.pdf.context2d[r]=e[r]);return this.pdf.context2d._canvas=this,this.pdf.context2d},e.prototype.toDataURL=function(){throw new Error(\"toDataURL is not implemented.\")},t.events.push([\"initialized\",function(){this.canvas=new e,this.canvas.pdf=this}])}(C.API),\n/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Hall, james@parall.ax\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nfunction(t){var e={left:0,top:0,bottom:0,right:0},r=!1,n=function(){void 0===this.internal.__cell__&&(this.internal.__cell__={},this.internal.__cell__.padding=3,this.internal.__cell__.headerFunction=void 0,this.internal.__cell__.margins=Object.assign({},e),this.internal.__cell__.margins.width=this.getPageWidth(),i.call(this))},i=function(){this.internal.__cell__.lastCell=new a,this.internal.__cell__.pages=1},a=function(){var t=arguments[0];Object.defineProperty(this,\"x\",{enumerable:!0,get:function(){return t},set:function(e){t=e}});var e=arguments[1];Object.defineProperty(this,\"y\",{enumerable:!0,get:function(){return e},set:function(t){e=t}});var r=arguments[2];Object.defineProperty(this,\"width\",{enumerable:!0,get:function(){return r},set:function(t){r=t}});var n=arguments[3];Object.defineProperty(this,\"height\",{enumerable:!0,get:function(){return n},set:function(t){n=t}});var i=arguments[4];Object.defineProperty(this,\"text\",{enumerable:!0,get:function(){return i},set:function(t){i=t}});var a=arguments[5];Object.defineProperty(this,\"lineNumber\",{enumerable:!0,get:function(){return a},set:function(t){a=t}});var o=arguments[6];return Object.defineProperty(this,\"align\",{enumerable:!0,get:function(){return o},set:function(t){o=t}}),this};a.prototype.clone=function(){return new a(this.x,this.y,this.width,this.height,this.text,this.lineNumber,this.align)},a.prototype.toArray=function(){return[this.x,this.y,this.width,this.height,this.text,this.lineNumber,this.align]},t.setHeaderFunction=function(t){return n.call(this),this.internal.__cell__.headerFunction=\"function\"==typeof t?t:void 0,this},t.getTextDimensions=function(t,e){n.call(this);var r=(e=e||{}).fontSize||this.getFontSize(),i=e.font||this.getFont(),a=e.scaleFactor||this.internal.scaleFactor,o=0,s=0,c=0,u=this;if(!Array.isArray(t)&&\"string\"!=typeof t){if(\"number\"!=typeof t)throw new Error(\"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\");t=String(t)}const l=e.maxWidth;l>0?\"string\"==typeof t?t=this.splitTextToSize(t,l):\"[object Array]\"===Object.prototype.toString.call(t)&&(t=t.reduce(function(t,e){return t.concat(u.splitTextToSize(e,l))},[])):t=Array.isArray(t)?t:[t];for(var h=0;h<t.length;h++)o<(c=this.getStringUnitWidth(t[h],{font:i})*r)&&(o=c);return 0!==o&&(s=t.length),{w:o/=a,h:Math.max((s*r*this.getLineHeightFactor()-r*(this.getLineHeightFactor()-1))/a,0)}},t.cellAddPage=function(){n.call(this),this.addPage();var t=this.internal.__cell__.margins||e;return this.internal.__cell__.lastCell=new a(t.left,t.top,void 0,void 0),this.internal.__cell__.pages+=1,this};var o=t.cell=function(){var t;t=arguments[0]instanceof a?arguments[0]:new a(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6]),n.call(this);var i=this.internal.__cell__.lastCell,o=this.internal.__cell__.padding,s=this.internal.__cell__.margins||e,c=this.internal.__cell__.tableHeaderRow,u=this.internal.__cell__.printHeaders;return void 0!==i.lineNumber&&(i.lineNumber===t.lineNumber?(t.x=(i.x||0)+(i.width||0),t.y=i.y||0):i.y+i.height+t.height+s.bottom>this.getPageHeight()?(this.cellAddPage(),t.y=s.top,u&&c&&(this.printHeaderRow(t.lineNumber,!0),t.y+=c[0].height)):t.y=i.y+i.height||t.y),void 0!==t.text[0]&&(this.rect(t.x,t.y,t.width,t.height,!0===r?\"FD\":void 0),\"right\"===t.align?this.text(t.text,t.x+t.width-o,t.y+o,{align:\"right\",baseline:\"top\"}):\"center\"===t.align?this.text(t.text,t.x+t.width/2,t.y+o,{align:\"center\",baseline:\"top\",maxWidth:t.width-o-o}):this.text(t.text,t.x+o,t.y+o,{align:\"left\",baseline:\"top\",maxWidth:t.width-o-o})),this.internal.__cell__.lastCell=t,this};t.table=function(t,r,c,u,l){if(n.call(this),!c)throw new Error(\"No data for PDF table.\");var h,f,d,p,g=[],m=[],v=[],b={},y={},w=[],N=[],L=(l=l||{}).autoSize||!1,x=!1!==l.printHeaders,A=l.css&&void 0!==l.css[\"font-size\"]?16*l.css[\"font-size\"]:l.fontSize||12,S=l.margins||Object.assign({width:this.getPageWidth()},e),_=\"number\"==typeof l.padding?l.padding:3,P=l.headerBackgroundColor||\"#c8c8c8\",k=l.headerTextColor||\"#000\";if(i.call(this),this.internal.__cell__.printHeaders=x,this.internal.__cell__.margins=S,this.internal.__cell__.table_font_size=A,this.internal.__cell__.padding=_,this.internal.__cell__.headerBackgroundColor=P,this.internal.__cell__.headerTextColor=k,this.setFontSize(A),null==u)m=g=Object.keys(c[0]),v=g.map(function(){return\"left\"});else if(Array.isArray(u)&&\"object\"==typeof u[0])for(g=u.map(function(t){return t.name}),m=u.map(function(t){return t.prompt||t.name||\"\"}),v=u.map(function(t){return t.align||\"left\"}),h=0;h<u.length;h+=1)y[u[h].name]=.7499990551181103*u[h].width;else Array.isArray(u)&&\"string\"==typeof u[0]&&(m=g=u,v=g.map(function(){return\"left\"}));if(L||Array.isArray(u)&&\"string\"==typeof u[0])for(h=0;h<g.length;h+=1){for(b[p=g[h]]=c.map(function(t){return t[p]}),this.setFont(void 0,\"bold\"),w.push(this.getTextDimensions(m[h],{fontSize:this.internal.__cell__.table_font_size,scaleFactor:this.internal.scaleFactor}).w),f=b[p],this.setFont(void 0,\"normal\"),d=0;d<f.length;d+=1)w.push(this.getTextDimensions(f[d],{fontSize:this.internal.__cell__.table_font_size,scaleFactor:this.internal.scaleFactor}).w);y[p]=Math.max.apply(null,w)+_+_,w=[]}if(x){var F={};for(h=0;h<g.length;h+=1)F[g[h]]={},F[g[h]].text=m[h],F[g[h]].align=v[h];var I=s.call(this,F,y);N=g.map(function(e){return new a(t,r,y[e],I,F[e].text,void 0,F[e].align)}),this.setTableHeaderRow(N),this.printHeaderRow(1,!1)}var C=u.reduce(function(t,e){return t[e.name]=e.align,t},{});for(h=0;h<c.length;h+=1){\"rowStart\"in l&&l.rowStart instanceof Function&&l.rowStart({row:h,data:c[h]},this);var j=s.call(this,c[h],y);for(d=0;d<g.length;d+=1){var O=c[h][g[d]];\"cellStart\"in l&&l.cellStart instanceof Function&&l.cellStart({row:h,col:d,data:O},this),o.call(this,new a(t,r,y[g[d]],j,O,h+2,C[g[d]]))}}return this.internal.__cell__.table_x=t,this.internal.__cell__.table_y=r,this};var s=function(t,e){var r=this.internal.__cell__.padding,n=this.internal.__cell__.table_font_size,i=this.internal.scaleFactor;return Object.keys(t).map(function(n){var i=t[n];return this.splitTextToSize(i.hasOwnProperty(\"text\")?i.text:i,e[n]-r-r)},this).map(function(t){return this.getLineHeightFactor()*t.length*n/i+r+r},this).reduce(function(t,e){return Math.max(t,e)},0)};t.setTableHeaderRow=function(t){n.call(this),this.internal.__cell__.tableHeaderRow=t},t.printHeaderRow=function(t,e){if(n.call(this),!this.internal.__cell__.tableHeaderRow)throw new Error(\"Property tableHeaderRow does not exist.\");var i;if(r=!0,\"function\"==typeof this.internal.__cell__.headerFunction){var s=this.internal.__cell__.headerFunction(this,this.internal.__cell__.pages);this.internal.__cell__.lastCell=new a(s[0],s[1],s[2],s[3],void 0,-1)}this.setFont(void 0,\"bold\");for(var c=[],u=0;u<this.internal.__cell__.tableHeaderRow.length;u+=1){i=this.internal.__cell__.tableHeaderRow[u].clone(),e&&(i.y=this.internal.__cell__.margins.top||0,c.push(i)),i.lineNumber=t;var l=this.getTextColor();this.setTextColor(this.internal.__cell__.headerTextColor),this.setFillColor(this.internal.__cell__.headerBackgroundColor),o.call(this,i),this.setTextColor(l)}c.length>0&&this.setTableHeaderRow(c),this.setFont(void 0,\"normal\"),r=!1}}(C.API);var Nt={italic:[\"italic\",\"oblique\",\"normal\"],oblique:[\"oblique\",\"italic\",\"normal\"],normal:[\"normal\",\"oblique\",\"italic\"]},Lt=[\"ultra-condensed\",\"extra-condensed\",\"condensed\",\"semi-condensed\",\"normal\",\"semi-expanded\",\"expanded\",\"extra-expanded\",\"ultra-expanded\"],xt=wt(Lt),At=[100,200,300,400,500,600,700,800,900],St=wt(At);function _t(t){var e=t.family.replace(/\"|'/g,\"\").toLowerCase(),r=function(t){return Nt[t=t||\"normal\"]?t:\"normal\"}(t.style),n=function(t){return t?\"number\"==typeof t?t>=100&&t<=900&&t%100==0?t:400:/^\\d00$/.test(t)?parseInt(t):\"bold\"===t?700:400:400}(t.weight),i=function(t){return\"number\"==typeof xt[t=t||\"normal\"]?t:\"normal\"}(t.stretch);return{family:e,style:r,weight:n,stretch:i,src:t.src||[],ref:t.ref||{name:e,style:[i,r,n].join(\" \")}}}function Pt(t,e,r,n){var i;for(i=r;i>=0&&i<e.length;i+=n)if(t[e[i]])return t[e[i]];for(i=r;i>=0&&i<e.length;i-=n)if(t[e[i]])return t[e[i]]}var kt={\"sans-serif\":\"helvetica\",fixed:\"courier\",monospace:\"courier\",terminal:\"courier\",cursive:\"times\",fantasy:\"times\",serif:\"times\"},Ft={caption:\"times\",icon:\"times\",menu:\"times\",\"message-box\":\"times\",\"small-caption\":\"times\",\"status-bar\":\"times\"};function It(t){return[t.stretch,t.style,t.weight,t.family].join(\" \")}function Ct(t){return t.trimLeft()}function jt(t,e){for(var r=0;r<t.length;){if(t.charAt(r)===e)return[t.substring(0,r),t.substring(r+1)];r+=1}return null}function Ot(t){var e=t.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);return null===e?null:[e[0],t.substring(e[0].length)]}var Bt,qt,Mt,Et,Rt,Dt=[\"times\"];function Tt(e,r,n,i,a){let o=4,s=Ht;switch(a){case C.API.image_compression.FAST:o=1,s=Ut;break;case C.API.image_compression.MEDIUM:o=6,s=Wt;break;case C.API.image_compression.SLOW:o=9,s=Vt}e=function(t,e,r,n){const i=t.length/e,a=new Uint8Array(t.length+i),o=[zt,Ut,Ht,Wt,Vt];let s;for(let c=0;c<i;c+=1){const i=c*e,u=t.subarray(i,i+e);if(n)a.set(n(u,r,s),i+c);else{const t=o.length,e=[];for(let i=0;i<t;i+=1)e[i]=o[i](u,r,s);const n=Yt(e.concat());a.set(e[n],i+c)}s=u}return a}(e,r,Math.ceil(n*i/8),s);const c=t.zlibSync(e,{level:o});return C.API.__addimage__.arrayBufferToBinaryString(c)}function zt(t){const e=Array.apply([],t);return e.unshift(0),e}function Ut(t,e){const r=t.length,n=[];n[0]=1;for(let i=0;i<r;i+=1){const r=t[i-e]||0;n[i+1]=t[i]-r+256&255}return n}function Ht(t,e,r){const n=t.length,i=[];i[0]=2;for(let a=0;a<n;a+=1){const e=r&&r[a]||0;i[a+1]=t[a]-e+256&255}return i}function Wt(t,e,r){const n=t.length,i=[];i[0]=3;for(let a=0;a<n;a+=1){const n=t[a-e]||0,o=r&&r[a]||0;i[a+1]=t[a]+256-(n+o>>>1)&255}return i}function Vt(t,e,r){const n=t.length,i=[];i[0]=4;for(let a=0;a<n;a+=1){const n=Gt(t[a-e]||0,r&&r[a]||0,r&&r[a-e]||0);i[a+1]=t[a]-n+256&255}return i}function Gt(t,e,r){if(t===e&&e===r)return t;const n=Math.abs(e-r),i=Math.abs(t-r),a=Math.abs(t+e-r-r);return n<=i&&n<=a?t:i<=a?e:r}function Yt(t){const e=t.map(function(t){return t.reduce(function(t,e){return t+Math.abs(e)},0)});return e.indexOf(Math.min.apply(null,e))}function Jt(t,e,r){const n=e*r,i=Math.floor(n/8),a=16-(n-8*i+r),o=(1<<r)-1;return Kt(t,i)>>a&o}function Xt(t,e,r,n){const i=r*n,a=Math.floor(i/8),o=16-(i-8*a+n),s=(1<<n)-1,c=(e&s)<<o;!function(t,e,r){if(e+1<t.byteLength)return void t.setUint16(e,r,!1);const n=r>>8&255;t.setUint8(e,n)}\n/**\n * @license\n * (c) Dean McNamee <dean@gmail.com>, 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression. It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */(t,a,Kt(t,a)&~(s<<o)&65535|c)}function Kt(t,e){return e+1<t.byteLength?t.getUint16(e,!1):t.getUint8(e)<<8}function $t(t){var e=0;if(71!==t[e++]||73!==t[e++]||70!==t[e++]||56!==t[e++]||56!=(t[e++]+1&253)||97!==t[e++])throw new Error(\"Invalid GIF 87a/89a header.\");var r=t[e++]|t[e++]<<8,n=t[e++]|t[e++]<<8,i=t[e++],a=i>>7,o=1<<1+(7&i);t[e++],t[e++];var s=null,c=null;a&&(s=e,c=o,e+=3*o);var u=!0,l=[],h=0,f=null,d=0,p=null;for(this.width=r,this.height=n;u&&e<t.length;)switch(t[e++]){case 33:switch(t[e++]){case 255:if(11!==t[e]||78==t[e+1]&&69==t[e+2]&&84==t[e+3]&&83==t[e+4]&&67==t[e+5]&&65==t[e+6]&&80==t[e+7]&&69==t[e+8]&&50==t[e+9]&&46==t[e+10]&&48==t[e+11]&&3==t[e+12]&&1==t[e+13]&&0==t[e+16])e+=14,p=t[e++]|t[e++]<<8,e++;else for(e+=12;;){if(!((P=t[e++])>=0))throw Error(\"Invalid block size\");if(0===P)break;e+=P}break;case 249:if(4!==t[e++]||0!==t[e+4])throw new Error(\"Invalid graphics extension block.\");var g=t[e++];h=t[e++]|t[e++]<<8,f=t[e++],1&g||(f=null),d=g>>2&7,e++;break;case 254:for(;;){if(!((P=t[e++])>=0))throw Error(\"Invalid block size\");if(0===P)break;e+=P}break;default:throw new Error(\"Unknown graphic control label: 0x\"+t[e-1].toString(16))}break;case 44:var m=t[e++]|t[e++]<<8,v=t[e++]|t[e++]<<8,b=t[e++]|t[e++]<<8,y=t[e++]|t[e++]<<8,w=t[e++],N=w>>6&1,L=1<<1+(7&w),x=s,A=c,S=!1;w>>7&&(S=!0,x=e,A=L,e+=3*L);var _=e;for(e++;;){var P;if(!((P=t[e++])>=0))throw Error(\"Invalid block size\");if(0===P)break;e+=P}l.push({x:m,y:v,width:b,height:y,has_local_palette:S,palette_offset:x,palette_size:A,data_offset:_,data_length:e-_,transparent_index:f,interlaced:!!N,delay:h,disposal:d});break;case 59:u=!1;break;default:throw new Error(\"Unknown gif block: 0x\"+t[e-1].toString(16))}this.numFrames=function(){return l.length},this.loopCount=function(){return p},this.frameInfo=function(t){if(t<0||t>=l.length)throw new Error(\"Frame index out of range.\");return l[t]},this.decodeAndBlitFrameBGRA=function(e,n){var i=this.frameInfo(e),a=i.width*i.height;if(a>536870912)throw new Error(\"Image dimensions exceed 512MB, which is too large.\");var o=new Uint8Array(a);Zt(t,i.data_offset,o,a);var s=i.palette_offset,c=i.transparent_index;null===c&&(c=256);var u=i.width,l=r-u,h=u,f=4*(i.y*r+i.x),d=4*((i.y+i.height)*r+i.x),p=f,g=4*l;!0===i.interlaced&&(g+=4*r*7);for(var m=8,v=0,b=o.length;v<b;++v){var y=o[v];if(0===h&&(h=u,(p+=g)>=d&&(g=4*l+4*r*(m-1),p=f+(u+l)*(m<<1),m>>=1)),y===c)p+=4;else{var w=t[s+3*y],N=t[s+3*y+1],L=t[s+3*y+2];n[p++]=L,n[p++]=N,n[p++]=w,n[p++]=255}--h}},this.decodeAndBlitFrameRGBA=function(e,n){var i=this.frameInfo(e),a=i.width*i.height;if(a>536870912)throw new Error(\"Image dimensions exceed 512MB, which is too large.\");var o=new Uint8Array(a);Zt(t,i.data_offset,o,a);var s=i.palette_offset,c=i.transparent_index;null===c&&(c=256);var u=i.width,l=r-u,h=u,f=4*(i.y*r+i.x),d=4*((i.y+i.height)*r+i.x),p=f,g=4*l;!0===i.interlaced&&(g+=4*r*7);for(var m=8,v=0,b=o.length;v<b;++v){var y=o[v];if(0===h&&(h=u,(p+=g)>=d&&(g=4*l+4*r*(m-1),p=f+(u+l)*(m<<1),m>>=1)),y===c)p+=4;else{var w=t[s+3*y],N=t[s+3*y+1],L=t[s+3*y+2];n[p++]=w,n[p++]=N,n[p++]=L,n[p++]=255}--h}}}function Zt(t,e,r,n){for(var i=t[e++],a=1<<i,o=a+1,c=o+1,u=i+1,l=(1<<u)-1,h=0,f=0,d=0,p=t[e++],g=new Int32Array(4096),m=null;;){for(;h<16&&0!==p;)f|=t[e++]<<h,h+=8,1===p?p=t[e++]:--p;if(h<u)break;var v=f&l;if(f>>=u,h-=u,v!==a){if(v===o)break;for(var b=v<c?v:m,y=0,w=b;w>a;)w=g[w]>>8,++y;var N=w;if(d+y+(b!==v?1:0)>n)return void s.log(\"Warning, gif stream longer than expected.\");r[d++]=N;var L=d+=y;for(b!==v&&(r[d++]=N),w=b;y--;)w=g[w],r[--L]=255&w,w>>=8;null!==m&&c<4096&&(g[c++]=m<<8|N,c>=l+1&&u<12&&(++u,l=l<<1|1)),m=v}else c=o+1,l=(1<<(u=i+1))-1,m=null}return d!==n&&s.log(\"Warning, gif stream shorter than expected.\"),r}\n/**\n * @license\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/function Qt(t){var e,r,n,i,a,o=Math.floor,s=new Array(64),c=new Array(64),u=new Array(64),l=new Array(64),h=new Array(65535),f=new Array(65535),d=new Array(64),p=new Array(64),g=[],m=0,v=7,b=new Array(64),y=new Array(64),w=new Array(64),N=new Array(256),L=new Array(2048),x=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63],A=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],S=[0,1,2,3,4,5,6,7,8,9,10,11],_=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],P=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],k=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],F=[0,1,2,3,4,5,6,7,8,9,10,11],I=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],C=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250];function j(t,e){for(var r=0,n=0,i=new Array,a=1;a<=16;a++){for(var o=1;o<=t[a];o++)i[e[n]]=[],i[e[n]][0]=r,i[e[n]][1]=a,n++,r++;r*=2}return i}function O(t){for(var e=t[0],r=t[1]-1;r>=0;)e&1<<r&&(m|=1<<v),r--,--v<0&&(255==m?(B(255),B(0)):B(m),v=7,m=0)}function B(t){g.push(t)}function q(t){B(t>>8&255),B(255&t)}function M(t,e,r,n,i){for(var a,o=i[0],s=i[240],c=function(t,e){var r,n,i,a,o,s,c,u,l,h,f=0;for(l=0;l<8;++l){r=t[f],n=t[f+1],i=t[f+2],a=t[f+3],o=t[f+4],s=t[f+5],c=t[f+6];var p=r+(u=t[f+7]),g=r-u,m=n+c,v=n-c,b=i+s,y=i-s,w=a+o,N=a-o,L=p+w,x=p-w,A=m+b,S=m-b;t[f]=L+A,t[f+4]=L-A;var _=.707106781*(S+x);t[f+2]=x+_,t[f+6]=x-_;var P=.382683433*((L=N+y)-(S=v+g)),k=.5411961*L+P,F=1.306562965*S+P,I=.707106781*(A=y+v),C=g+I,j=g-I;t[f+5]=j+k,t[f+3]=j-k,t[f+1]=C+F,t[f+7]=C-F,f+=8}for(f=0,l=0;l<8;++l){r=t[f],n=t[f+8],i=t[f+16],a=t[f+24],o=t[f+32],s=t[f+40],c=t[f+48];var O=r+(u=t[f+56]),B=r-u,q=n+c,M=n-c,E=i+s,R=i-s,D=a+o,T=a-o,z=O+D,U=O-D,H=q+E,W=q-E;t[f]=z+H,t[f+32]=z-H;var V=.707106781*(W+U);t[f+16]=U+V,t[f+48]=U-V;var G=.382683433*((z=T+R)-(W=M+B)),Y=.5411961*z+G,J=1.306562965*W+G,X=.707106781*(H=R+M),K=B+X,$=B-X;t[f+40]=$+Y,t[f+24]=$-Y,t[f+8]=K+J,t[f+56]=K-J,f++}for(l=0;l<64;++l)h=t[l]*e[l],d[l]=h>0?h+.5|0:h-.5|0;return d}(t,e),u=0;u<64;++u)p[x[u]]=c[u];var l=p[0]-r;r=p[0],0==l?O(n[0]):(O(n[f[a=32767+l]]),O(h[a]));for(var g=63;g>0&&0==p[g];)g--;if(0==g)return O(o),r;for(var m,v=1;v<=g;){for(var b=v;0==p[v]&&v<=g;)++v;var y=v-b;if(y>=16){m=y>>4;for(var w=1;w<=m;++w)O(s);y&=15}a=32767+p[v],O(i[(y<<4)+f[a]]),O(h[a]),v++}return 63!=g&&O(o),r}function E(t){t=Math.min(Math.max(t,1),100),a!=t&&(function(t){for(var e=[16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99],r=0;r<64;r++){var n=o((e[r]*t+50)/100);n=Math.min(Math.max(n,1),255),s[x[r]]=n}for(var i=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],a=0;a<64;a++){var h=o((i[a]*t+50)/100);h=Math.min(Math.max(h,1),255),c[x[a]]=h}for(var f=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],d=0,p=0;p<8;p++)for(var g=0;g<8;g++)u[d]=1/(s[x[d]]*f[p]*f[g]*8),l[d]=1/(c[x[d]]*f[p]*f[g]*8),d++}(t<50?Math.floor(5e3/t):Math.floor(200-2*t)),a=t)}this.encode=function(t,a){a&&E(a),g=new Array,m=0,v=7,q(65496),q(65504),q(16),B(74),B(70),B(73),B(70),B(0),B(1),B(1),B(0),q(1),q(1),B(0),B(0),function(){q(65499),q(132),B(0);for(var t=0;t<64;t++)B(s[t]);B(1);for(var e=0;e<64;e++)B(c[e])}(),function(t,e){q(65472),q(17),B(8),q(e),q(t),B(3),B(1),B(17),B(0),B(2),B(17),B(1),B(3),B(17),B(1)}(t.width,t.height),function(){q(65476),q(418),B(0);for(var t=0;t<16;t++)B(A[t+1]);for(var e=0;e<=11;e++)B(S[e]);B(16);for(var r=0;r<16;r++)B(_[r+1]);for(var n=0;n<=161;n++)B(P[n]);B(1);for(var i=0;i<16;i++)B(k[i+1]);for(var a=0;a<=11;a++)B(F[a]);B(17);for(var o=0;o<16;o++)B(I[o+1]);for(var s=0;s<=161;s++)B(C[s])}(),q(65498),q(12),B(3),B(1),B(0),B(2),B(17),B(3),B(17),B(0),B(63),B(0);var o=0,h=0,f=0;m=0,v=7,this.encode.displayName=\"_encode_\";for(var d,p,N,x,j,R,D,T,z,U=t.data,H=t.width,W=t.height,V=4*H,G=0;G<W;){for(d=0;d<V;){for(j=V*G+d,D=-1,T=0,z=0;z<64;z++)R=j+(T=z>>3)*V+(D=4*(7&z)),G+T>=W&&(R-=V*(G+1+T-W)),d+D>=V&&(R-=d+D-V+4),p=U[R++],N=U[R++],x=U[R++],b[z]=(L[p]+L[N+256|0]+L[x+512|0]>>16)-128,y[z]=(L[p+768|0]+L[N+1024|0]+L[x+1280|0]>>16)-128,w[z]=(L[p+1280|0]+L[N+1536|0]+L[x+1792|0]>>16)-128;o=M(b,u,o,e,n),h=M(y,l,h,r,i),f=M(w,l,f,r,i),d+=32}G+=8}if(v>=0){var Y=[];Y[1]=v+1,Y[0]=(1<<v+1)-1,O(Y)}return q(65497),new Uint8Array(g)},t=t||50,function(){for(var t=String.fromCharCode,e=0;e<256;e++)N[e]=t(e)}(),e=j(A,S),r=j(k,F),n=j(_,P),i=j(I,C),function(){for(var t=1,e=2,r=1;r<=15;r++){for(var n=t;n<e;n++)f[32767+n]=r,h[32767+n]=[],h[32767+n][1]=r,h[32767+n][0]=n;for(var i=-(e-1);i<=-t;i++)f[32767+i]=r,h[32767+i]=[],h[32767+i][1]=r,h[32767+i][0]=e-1+i;t<<=1,e<<=1}}(),function(){for(var t=0;t<256;t++)L[t]=19595*t,L[t+256|0]=38470*t,L[t+512|0]=7471*t+32768,L[t+768|0]=-11059*t,L[t+1024|0]=-21709*t,L[t+1280|0]=32768*t+8421375,L[t+1536|0]=-27439*t,L[t+1792|0]=-5329*t}(),E(t)}\n/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */function te(t,e){if(this.pos=0,this.buffer=t,this.datav=new DataView(t.buffer),this.is_with_alpha=!!e,this.bottom_up=!0,this.flag=String.fromCharCode(this.buffer[0])+String.fromCharCode(this.buffer[1]),this.pos+=2,-1===[\"BM\",\"BA\",\"CI\",\"CP\",\"IC\",\"PT\"].indexOf(this.flag))throw new Error(\"Invalid BMP File\");this.parseHeader(),this.parseBGR()}function ee(t){function e(t){if(!t)throw Error(\"assert :P\")}function r(t,e,r){for(var n=0;4>n;n++)if(t[e+n]!=r.charCodeAt(n))return!0;return!1}function n(t,e,r,n,i){for(var a=0;a<i;a++)t[e+a]=r[n+a]}function i(t,e,r,n){for(var i=0;i<n;i++)t[e+i]=r}function a(t){return new Int32Array(t)}function o(t,e){for(var r=[],n=0;n<t;n++)r.push(new e);return r}function s(t,e){var r=[];return function t(r,n,i){for(var a=i[n],o=0;o<a&&(r.push(i.length>n+1?[]:new e),!(i.length<n+1));o++)t(r[o],n+1,i)}(r,0,t),r}var c=function(){var t=this;function c(t,e){for(var r=1<<e-1>>>0;t&r;)r>>>=1;return r?(t&r-1)+r:t}function u(t,r,n,i,a){e(!(i%n));do{t[r+(i-=n)]=a}while(0<i)}function l(t,r,n,i,o){if(e(2328>=o),512>=o)var s=a(512);else if(null==(s=a(o)))return 0;return function(t,r,n,i,o,s){var l,f,d=r,p=1<<n,g=a(16),m=a(16);for(e(0!=o),e(null!=i),e(null!=t),e(0<n),f=0;f<o;++f){if(15<i[f])return 0;++g[i[f]]}if(g[0]==o)return 0;for(m[1]=0,l=1;15>l;++l){if(g[l]>1<<l)return 0;m[l+1]=m[l]+g[l]}for(f=0;f<o;++f)l=i[f],0<i[f]&&(s[m[l]++]=f);if(1==m[15])return(i=new h).g=0,i.value=s[0],u(t,d,1,p,i),p;var v,b=-1,y=p-1,w=0,N=1,L=1,x=1<<n;for(f=0,l=1,o=2;l<=n;++l,o<<=1){if(N+=L<<=1,0>(L-=g[l]))return 0;for(;0<g[l];--g[l])(i=new h).g=l,i.value=s[f++],u(t,d+w,o,x,i),w=c(w,l)}for(l=n+1,o=2;15>=l;++l,o<<=1){if(N+=L<<=1,0>(L-=g[l]))return 0;for(;0<g[l];--g[l]){if(i=new h,(w&y)!=b){for(d+=x,v=1<<(b=l)-n;15>b&&!(0>=(v-=g[b]));)++b,v<<=1;p+=x=1<<(v=b-n),t[r+(b=w&y)].g=v+n,t[r+b].value=d-r-b}i.g=l-n,i.value=s[f++],u(t,d+(w>>n),o,x,i),w=c(w,l)}}return N!=2*m[15]-1?0:p}(t,r,n,i,o,s)}function h(){this.value=this.g=0}function f(){this.value=this.g=0}function d(){this.G=o(5,h),this.H=a(5),this.jc=this.Qb=this.qb=this.nd=0,this.pd=o(Er,f)}function p(t,r,n,i){e(null!=t),e(null!=r),e(2147483648>i),t.Ca=254,t.I=0,t.b=-8,t.Ka=0,t.oa=r,t.pa=n,t.Jd=r,t.Yc=n+i,t.Zc=4<=i?n+i-4+1:n,_(t)}function g(t,e){for(var r=0;0<e--;)r|=k(t,128)<<e;return r}function m(t,e){var r=g(t,e);return P(t)?-r:r}function v(t,r,n,i){var a,o=0;for(e(null!=t),e(null!=r),e(4294967288>i),t.Sb=i,t.Ra=0,t.u=0,t.h=0,4<i&&(i=4),a=0;a<i;++a)o+=r[n+a]<<8*a;t.Ra=o,t.bb=i,t.oa=r,t.pa=n}function b(t){for(;8<=t.u&&t.bb<t.Sb;)t.Ra>>>=8,t.Ra+=t.oa[t.pa+t.bb]<<Tr-8>>>0,++t.bb,t.u-=8;x(t)&&(t.h=1,t.u=0)}function y(t,r){if(e(0<=r),!t.h&&r<=Dr){var n=L(t)&Rr[r];return t.u+=r,b(t),n}return t.h=1,t.u=0}function w(){this.b=this.Ca=this.I=0,this.oa=[],this.pa=0,this.Jd=[],this.Yc=0,this.Zc=[],this.Ka=0}function N(){this.Ra=0,this.oa=[],this.h=this.u=this.bb=this.Sb=this.pa=0}function L(t){return t.Ra>>>(t.u&Tr-1)>>>0}function x(t){return e(t.bb<=t.Sb),t.h||t.bb==t.Sb&&t.u>Tr}function A(t,e){t.u=e,t.h=x(t)}function S(t){t.u>=zr&&(e(t.u>=zr),b(t))}function _(t){e(null!=t&&null!=t.oa),t.pa<t.Zc?(t.I=(t.oa[t.pa++]|t.I<<8)>>>0,t.b+=8):(e(null!=t&&null!=t.oa),t.pa<t.Yc?(t.b+=8,t.I=t.oa[t.pa++]|t.I<<8):t.Ka?t.b=0:(t.I<<=8,t.b+=8,t.Ka=1))}function P(t){return g(t,1)}function k(t,e){var r=t.Ca;0>t.b&&_(t);var n=t.b,i=r*e>>>8,a=(t.I>>>n>i)+0;for(a?(r-=i,t.I-=i+1<<n>>>0):r=i+1,n=r,i=0;256<=n;)i+=8,n>>=8;return n=7^i+Ur[n],t.b-=n,t.Ca=(r<<n)-1,a}function F(t,e,r){t[e+0]=r>>24&255,t[e+1]=r>>16&255,t[e+2]=r>>8&255,t[e+3]=255&r}function I(t,e){return t[e+0]|t[e+1]<<8}function C(t,e){return I(t,e)|t[e+2]<<16}function j(t,e){return I(t,e)|I(t,e+2)<<16}function O(t,r){var n=1<<r;return e(null!=t),e(0<r),t.X=a(n),null==t.X?0:(t.Mb=32-r,t.Xa=r,1)}function B(t,r){e(null!=t),e(null!=r),e(t.Xa==r.Xa),n(r.X,0,t.X,0,1<<r.Xa)}function q(){this.X=[],this.Xa=this.Mb=0}function M(t,r,n,i){e(null!=n),e(null!=i);var a=n[0],o=i[0];return 0==a&&(a=(t*o+r/2)/r),0==o&&(o=(r*a+t/2)/t),0>=a||0>=o?0:(n[0]=a,i[0]=o,1)}function E(t,e){return t+(1<<e)-1>>>e}function R(t,e){return((4278255360&t)+(4278255360&e)>>>0&4278255360)+((16711935&t)+(16711935&e)>>>0&16711935)>>>0}function D(e,r){t[r]=function(r,n,i,a,o,s,c){var u;for(u=0;u<o;++u){var l=t[e](s[c+u-1],i,a+u);s[c+u]=R(r[n+u],l)}}}function T(){this.ud=this.hd=this.jd=0}function z(t,e){return((4278124286&(t^e))>>>1)+(t&e)>>>0}function U(t){return 0<=t&&256>t?t:0>t?0:255<t?255:void 0}function H(t,e){return U(t+(t-e+.5>>1))}function W(t,e,r){return Math.abs(e-r)-Math.abs(t-r)}function V(t,e,r,n,i,a,o){for(n=a[o-1],r=0;r<i;++r)a[o+r]=n=R(t[e+r],n)}function G(t,e,r,n,i){var a;for(a=0;a<r;++a){var o=t[e+a],s=o>>8&255,c=16711935&(c=(c=16711935&o)+((s<<16)+s));n[i+a]=(4278255360&o)+c>>>0}}function Y(t,e){e.jd=255&t,e.hd=t>>8&255,e.ud=t>>16&255}function J(t,e,r,n,i,a){var o;for(o=0;o<n;++o){var s=e[r+o],c=s>>>8,u=s,l=255&(l=(l=s>>>16)+((t.jd<<24>>24)*(c<<24>>24)>>>5));u=255&(u=(u+=(t.hd<<24>>24)*(c<<24>>24)>>>5)+((t.ud<<24>>24)*(l<<24>>24)>>>5)),i[a+o]=(4278255360&s)+(l<<16)+u}}function X(e,r,n,i,a){t[r]=function(t,e,r,n,o,s,c,u,l){for(n=c;n<u;++n)for(c=0;c<l;++c)o[s++]=a(r[i(t[e++])])},t[e]=function(e,r,o,s,c,u,l){var h=8>>e.b,f=e.Ea,d=e.K[0],p=e.w;if(8>h)for(e=(1<<e.b)-1,p=(1<<h)-1;r<o;++r){var g,m=0;for(g=0;g<f;++g)g&e||(m=i(s[c++])),u[l++]=a(d[m&p]),m>>=h}else t[\"VP8LMapColor\"+n](s,c,d,p,u,l,r,o,f)}}function K(t,e,r,n,i){for(r=e+r;e<r;){var a=t[e++];n[i++]=a>>16&255,n[i++]=a>>8&255,n[i++]=255&a}}function $(t,e,r,n,i){for(r=e+r;e<r;){var a=t[e++];n[i++]=a>>16&255,n[i++]=a>>8&255,n[i++]=255&a,n[i++]=a>>24&255}}function Z(t,e,r,n,i){for(r=e+r;e<r;){var a=(o=t[e++])>>16&240|o>>12&15,o=240&o|o>>28&15;n[i++]=a,n[i++]=o}}function Q(t,e,r,n,i){for(r=e+r;e<r;){var a=(o=t[e++])>>16&248|o>>13&7,o=o>>5&224|o>>3&31;n[i++]=a,n[i++]=o}}function tt(t,e,r,n,i){for(r=e+r;e<r;){var a=t[e++];n[i++]=255&a,n[i++]=a>>8&255,n[i++]=a>>16&255}}function et(t,e,r,i,a,o){if(0==o)for(r=e+r;e<r;)F(i,((o=t[e++])[0]>>24|o[1]>>8&65280|o[2]<<8&16711680|o[3]<<24)>>>0),a+=32;else n(i,a,t,e,r)}function rt(e,r){t[r][0]=t[e+\"0\"],t[r][1]=t[e+\"1\"],t[r][2]=t[e+\"2\"],t[r][3]=t[e+\"3\"],t[r][4]=t[e+\"4\"],t[r][5]=t[e+\"5\"],t[r][6]=t[e+\"6\"],t[r][7]=t[e+\"7\"],t[r][8]=t[e+\"8\"],t[r][9]=t[e+\"9\"],t[r][10]=t[e+\"10\"],t[r][11]=t[e+\"11\"],t[r][12]=t[e+\"12\"],t[r][13]=t[e+\"13\"],t[r][14]=t[e+\"0\"],t[r][15]=t[e+\"0\"]}function nt(t){return t==Un||t==Hn||t==Wn||t==Vn}function it(){this.eb=[],this.size=this.A=this.fb=0}function at(){this.y=[],this.f=[],this.ea=[],this.F=[],this.Tc=this.Ed=this.Cd=this.Fd=this.lb=this.Db=this.Ab=this.fa=this.J=this.W=this.N=this.O=0}function ot(){this.Rd=this.height=this.width=this.S=0,this.f={},this.f.RGBA=new it,this.f.kb=new at,this.sd=null}function st(){this.width=[0],this.height=[0],this.Pd=[0],this.Qd=[0],this.format=[0]}function ct(){this.Id=this.fd=this.Md=this.hb=this.ib=this.da=this.bd=this.cd=this.j=this.v=this.Da=this.Sd=this.ob=0}function ut(t){return alert(\"todo:WebPSamplerProcessPlane\"),t.T}function lt(t,e){var r=t.T,i=e.ba.f.RGBA,a=i.eb,o=i.fb+t.ka*i.A,s=mi[e.ba.S],c=t.y,u=t.O,l=t.f,h=t.N,f=t.ea,d=t.W,p=e.cc,g=e.dc,m=e.Mc,v=e.Nc,b=t.ka,y=t.ka+t.T,w=t.U,N=w+1>>1;for(0==b?s(c,u,null,null,l,h,f,d,l,h,f,d,a,o,null,null,w):(s(e.ec,e.fc,c,u,p,g,m,v,l,h,f,d,a,o-i.A,a,o,w),++r);b+2<y;b+=2)p=l,g=h,m=f,v=d,h+=t.Rc,d+=t.Rc,o+=2*i.A,s(c,(u+=2*t.fa)-t.fa,c,u,p,g,m,v,l,h,f,d,a,o-i.A,a,o,w);return u+=t.fa,t.j+y<t.o?(n(e.ec,e.fc,c,u,w),n(e.cc,e.dc,l,h,N),n(e.Mc,e.Nc,f,d,N),r--):1&y||s(c,u,null,null,l,h,f,d,l,h,f,d,a,o+i.A,null,null,w),r}function ht(t,r,n){var i=t.F,a=[t.J];if(null!=i){var o=t.U,s=r.ba.S,c=s==Dn||s==Wn;r=r.ba.f.RGBA;var u=[0],l=t.ka;u[0]=t.T,t.Kb&&(0==l?--u[0]:(--l,a[0]-=t.width),t.j+t.ka+t.T==t.o&&(u[0]=t.o-t.j-l));var h=r.eb;l=r.fb+l*r.A,t=An(i,a[0],t.width,o,u,h,l+(c?0:3),r.A),e(n==u),t&&nt(s)&&Ln(h,l,c,o,u,r.A)}return 0}function ft(t){var e=t.ma,r=e.ba.S,n=11>r,i=r==Mn||r==Rn||r==Dn||r==Tn||12==r||nt(r);if(e.memory=null,e.Ib=null,e.Jb=null,e.Nd=null,!Br(e.Oa,t,i?11:12))return 0;if(i&&nt(r)&&vr(),t.da)alert(\"todo:use_scaling\");else{if(n){if(e.Ib=ut,t.Kb){if(r=t.U+1>>1,e.memory=a(t.U+2*r),null==e.memory)return 0;e.ec=e.memory,e.fc=0,e.cc=e.ec,e.dc=e.fc+t.U,e.Mc=e.cc,e.Nc=e.dc+r,e.Ib=lt,vr()}}else alert(\"todo:EmitYUV\");i&&(e.Jb=ht,n&&gr())}if(n&&!Ii){for(t=0;256>t;++t)Ci[t]=89858*(t-128)+Si>>Ai,Bi[t]=-22014*(t-128)+Si,Oi[t]=-45773*(t-128),ji[t]=113618*(t-128)+Si>>Ai;for(t=_i;t<Pi;++t)e=76283*(t-16)+Si>>Ai,qi[t-_i]=Vt(e,255),Mi[t-_i]=Vt(e+8>>4,15);Ii=1}return 1}function dt(t){var r=t.ma,n=t.U,i=t.T;return e(!(1&t.ka)),0>=n||0>=i?0:(n=r.Ib(t,r),null!=r.Jb&&r.Jb(t,r,n),r.Dc+=n,1)}function pt(t){t.ma.memory=null}function gt(t,e,r,n){return 47!=y(t,8)?0:(e[0]=y(t,14)+1,r[0]=y(t,14)+1,n[0]=y(t,1),0!=y(t,3)?0:!t.h)}function mt(t,e){if(4>t)return t+1;var r=t-2>>1;return(2+(1&t)<<r)+y(e,r)+1}function vt(t,e){return 120<e?e-120:1<=(r=((r=$n[e-1])>>4)*t+(8-(15&r)))?r:1;var r}function bt(t,e,r){var n=L(r),i=t[e+=255&n].g-8;return 0<i&&(A(r,r.u+8),n=L(r),e+=t[e].value,e+=n&(1<<i)-1),A(r,r.u+t[e].g),t[e].value}function yt(t,r,n){return n.g+=t.g,n.value+=t.value<<r>>>0,e(8>=n.g),t.g}function wt(t,r,n){var i=t.xc;return e((r=0==i?0:t.vc[t.md*(n>>i)+(r>>i)])<t.Wb),t.Ya[r]}function Nt(t,r,i,a){var o=t.ab,s=t.c*r,c=t.C;r=c+r;var u=i,l=a;for(a=t.Ta,i=t.Ua;0<o--;){var h=t.gc[o],f=c,d=r,p=u,g=l,m=(l=a,u=i,h.Ea);switch(e(f<d),e(d<=h.nc),h.hc){case 2:Vr(p,g,(d-f)*m,l,u);break;case 0:var v=f,b=d,y=l,w=u,N=(_=h).Ea;0==v&&(Hr(p,g,null,null,1,y,w),V(p,g+1,0,0,N-1,y,w+1),g+=N,w+=N,++v);for(var L=1<<_.b,x=L-1,A=E(N,_.b),S=_.K,_=_.w+(v>>_.b)*A;v<b;){var P=S,k=_,F=1;for(Wr(p,g,y,w-N,1,y,w);F<N;){var I=(F&~x)+L;I>N&&(I=N),(0,Kr[P[k++]>>8&15])(p,g+ +F,y,w+F-N,I-F,y,w+F),F=I}g+=N,w+=N,++v&x||(_+=A)}d!=h.nc&&n(l,u-m,l,u+(d-f-1)*m,m);break;case 1:for(m=p,b=g,N=(p=h.Ea)-(w=p&~(y=(g=1<<h.b)-1)),v=E(p,h.b),L=h.K,h=h.w+(f>>h.b)*v;f<d;){for(x=L,A=h,S=new T,_=b+w,P=b+p;b<_;)Y(x[A++],S),$r(S,m,b,g,l,u),b+=g,u+=g;b<P&&(Y(x[A++],S),$r(S,m,b,N,l,u),b+=N,u+=N),++f&y||(h+=v)}break;case 3:if(p==l&&g==u&&0<h.b){for(b=l,p=m=u+(d-f)*m-(w=(d-f)*E(h.Ea,h.b)),g=l,y=u,v=[],w=(N=w)-1;0<=w;--w)v[w]=g[y+w];for(w=N-1;0<=w;--w)b[p+w]=v[w];Gr(h,f,d,l,m,l,u)}else Gr(h,f,d,p,g,l,u)}u=a,l=i}l!=i&&n(a,i,u,l,s)}function Lt(t,r){var n=t.V,i=t.Ba+t.c*t.C,a=r-t.C;if(e(r<=t.l.o),e(16>=a),0<a){var o=t.l,s=t.Ta,c=t.Ua,u=o.width;if(Nt(t,a,n,i),a=c=[c],e((n=t.C)<(i=r)),e(o.v<o.va),i>o.o&&(i=o.o),n<o.j){var l=o.j-n;n=o.j,a[0]+=l*u}if(n>=i?n=0:(a[0]+=4*o.v,o.ka=n-o.j,o.U=o.va-o.v,o.T=i-n,n=1),n){if(c=c[0],11>(n=t.ca).S){var h=n.f.RGBA,f=(i=n.S,a=o.U,o=o.T,l=h.eb,h.A),d=o;for(h=h.fb+t.Ma*h.A;0<d--;){var p=s,g=c,m=a,v=l,b=h;switch(i){case qn:Zr(p,g,m,v,b);break;case Mn:Qr(p,g,m,v,b);break;case Un:Qr(p,g,m,v,b),Ln(v,b,0,m,1,0);break;case En:rn(p,g,m,v,b);break;case Rn:et(p,g,m,v,b,1);break;case Hn:et(p,g,m,v,b,1),Ln(v,b,0,m,1,0);break;case Dn:et(p,g,m,v,b,0);break;case Wn:et(p,g,m,v,b,0),Ln(v,b,1,m,1,0);break;case Tn:tn(p,g,m,v,b);break;case Vn:tn(p,g,m,v,b),xn(v,b,m,1,0);break;case zn:en(p,g,m,v,b);break;default:e(0)}c+=u,h+=f}t.Ma+=o}else alert(\"todo:EmitRescaledRowsYUVA\");e(t.Ma<=n.height)}}t.C=r,e(t.C<=t.i)}function xt(t){var e;if(0<t.ua)return 0;for(e=0;e<t.Wb;++e){var r=t.Ya[e].G,n=t.Ya[e].H;if(0<r[1][n[1]+0].g||0<r[2][n[2]+0].g||0<r[3][n[3]+0].g)return 0}return 1}function At(t,r,n,i,a,o){if(0!=t.Z){var s=t.qd,c=t.rd;for(e(null!=gi[t.Z]);r<n;++r)gi[t.Z](s,c,i,a,i,a,o),s=i,c=a,a+=o;t.qd=s,t.rd=c}}function St(t,r){var n=t.l.ma,i=0==n.Z||1==n.Z?t.l.j:t.C;if(i=t.C<i?i:t.C,e(r<=t.l.o),r>i){var a=t.l.width,o=n.ca,s=n.tb+a*i,c=t.V,u=t.Ba+t.c*i,l=t.gc;e(1==t.ab),e(3==l[0].hc),Jr(l[0],i,r,c,u,o,s),At(n,i,r,o,s,a)}t.C=t.Ma=r}function _t(t,r,n,i,a,o,s){var c=t.$/i,u=t.$%i,l=t.m,h=t.s,f=n+t.$,d=f;a=n+i*a;var p=n+i*o,g=280+h.ua,m=t.Pb?c:16777216,v=0<h.ua?h.Wa:null,b=h.wc,y=f<p?wt(h,u,c):null;e(t.C<o),e(p<=a);var w=!1;t:for(;;){for(;w||f<p;){var N=0;if(c>=m){var _=f-n;e((m=t).Pb),m.wd=m.m,m.xd=_,0<m.s.ua&&B(m.s.Wa,m.s.vb),m=c+Qn}if(u&b||(y=wt(h,u,c)),e(null!=y),y.Qb&&(r[f]=y.qb,w=!0),!w)if(S(l),y.jc){N=l,_=r;var P=f,k=y.pd[L(N)&Er-1];e(y.jc),256>k.g?(A(N,N.u+k.g),_[P]=k.value,N=0):(A(N,N.u+k.g-256),e(256<=k.value),N=k.value),0==N&&(w=!0)}else N=bt(y.G[0],y.H[0],l);if(l.h)break;if(w||256>N){if(!w)if(y.nd)r[f]=(y.qb|N<<8)>>>0;else{if(S(l),w=bt(y.G[1],y.H[1],l),S(l),_=bt(y.G[2],y.H[2],l),P=bt(y.G[3],y.H[3],l),l.h)break;r[f]=(P<<24|w<<16|N<<8|_)>>>0}if(w=!1,++f,++u>=i&&(u=0,++c,null!=s&&c<=o&&!(c%16)&&s(t,c),null!=v))for(;d<f;)N=r[d++],v.X[(506832829*N&4294967295)>>>v.Mb]=N}else if(280>N){if(N=mt(N-256,l),_=bt(y.G[4],y.H[4],l),S(l),_=vt(i,_=mt(_,l)),l.h)break;if(f-n<_||a-f<N)break t;for(P=0;P<N;++P)r[f+P]=r[f+P-_];for(f+=N,u+=N;u>=i;)u-=i,++c,null!=s&&c<=o&&!(c%16)&&s(t,c);if(e(f<=a),u&b&&(y=wt(h,u,c)),null!=v)for(;d<f;)N=r[d++],v.X[(506832829*N&4294967295)>>>v.Mb]=N}else{if(!(N<g))break t;for(w=N-280,e(null!=v);d<f;)N=r[d++],v.X[(506832829*N&4294967295)>>>v.Mb]=N;N=f,e(!(w>>>(_=v).Xa)),r[N]=_.X[w],w=!0}w||e(l.h==x(l))}if(t.Pb&&l.h&&f<a)e(t.m.h),t.a=5,t.m=t.wd,t.$=t.xd,0<t.s.ua&&B(t.s.vb,t.s.Wa);else{if(l.h)break t;null!=s&&s(t,c>o?o:c),t.a=0,t.$=f-n}return 1}return t.a=3,0}function Pt(t){e(null!=t),t.vc=null,t.yc=null,t.Ya=null;var r=t.Wa;null!=r&&(r.X=null),t.vb=null,e(null!=t)}function kt(){var e=new ar;return null==e?null:(e.a=0,e.xb=pi,rt(\"Predictor\",\"VP8LPredictors\"),rt(\"Predictor\",\"VP8LPredictors_C\"),rt(\"PredictorAdd\",\"VP8LPredictorsAdd\"),rt(\"PredictorAdd\",\"VP8LPredictorsAdd_C\"),Vr=G,$r=J,Zr=K,Qr=$,tn=Z,en=Q,rn=tt,t.VP8LMapColor32b=Yr,t.VP8LMapColor8b=Xr,e)}function Ft(t,r,n,s,c){var u=1,f=[t],p=[r],g=s.m,m=s.s,v=null,b=0;t:for(;;){if(n)for(;u&&y(g,1);){var w=f,N=p,x=s,_=1,P=x.m,k=x.gc[x.ab],F=y(P,2);if(x.Oc&1<<F)u=0;else{switch(x.Oc|=1<<F,k.hc=F,k.Ea=w[0],k.nc=N[0],k.K=[null],++x.ab,e(4>=x.ab),F){case 0:case 1:k.b=y(P,3)+2,_=Ft(E(k.Ea,k.b),E(k.nc,k.b),0,x,k.K),k.K=k.K[0];break;case 3:var I,C=y(P,8)+1,j=16<C?0:4<C?1:2<C?2:3;if(w[0]=E(k.Ea,j),k.b=j,I=_=Ft(C,1,0,x,k.K)){var B,q=C,M=k,D=1<<(8>>M.b),T=a(D);if(null==T)I=0;else{var z=M.K[0],U=M.w;for(T[0]=M.K[0][0],B=1;B<1*q;++B)T[B]=R(z[U+B],T[B-1]);for(;B<4*D;++B)T[B]=0;M.K[0]=null,M.K[0]=T,I=1}}_=I;break;case 2:break;default:e(0)}u=_}}if(f=f[0],p=p[0],u&&y(g,1)&&!(u=1<=(b=y(g,4))&&11>=b)){s.a=3;break t}var H;if(H=u)e:{var W,V,G,Y=s,J=f,X=p,K=b,$=n,Z=Y.m,Q=Y.s,tt=[null],et=1,rt=0,nt=Zn[K];r:for(;;){if($&&y(Z,1)){var it=y(Z,3)+2,at=E(J,it),ot=E(X,it),st=at*ot;if(!Ft(at,ot,0,Y,tt))break r;for(tt=tt[0],Q.xc=it,W=0;W<st;++W){var ct=tt[W]>>8&65535;tt[W]=ct,ct>=et&&(et=ct+1)}}if(Z.h)break r;for(V=0;5>V;++V){var ut=Jn[V];!V&&0<K&&(ut+=1<<K),rt<ut&&(rt=ut)}var lt=o(et*nt,h),ht=et,ft=o(ht,d);if(null==ft)var dt=null;else e(65536>=ht),dt=ft;var pt=a(rt);if(null==dt||null==pt||null==lt){Y.a=1;break r}var gt=lt;for(W=G=0;W<et;++W){var mt=dt[W],vt=mt.G,bt=mt.H,wt=0,Nt=1,Lt=0;for(V=0;5>V;++V){ut=Jn[V],vt[V]=gt,bt[V]=G,!V&&0<K&&(ut+=1<<K);n:{var xt,At=ut,St=Y,kt=pt,It=gt,Ct=G,jt=0,Ot=St.m,Bt=y(Ot,1);if(i(kt,0,0,At),Bt){var qt=y(Ot,1)+1,Mt=y(Ot,1),Et=y(Ot,0==Mt?1:8);kt[Et]=1,2==qt&&(kt[Et=y(Ot,8)]=1);var Rt=1}else{var Dt=a(19),Tt=y(Ot,4)+4;if(19<Tt){St.a=3;var zt=0;break n}for(xt=0;xt<Tt;++xt)Dt[Kn[xt]]=y(Ot,3);var Ut=void 0,Ht=void 0,Wt=St,Vt=Dt,Gt=At,Yt=kt,Jt=0,Xt=Wt.m,Kt=8,$t=o(128,h);i:for(;l($t,0,7,Vt,19);){if(y(Xt,1)){var Zt=2+2*y(Xt,3);if((Ut=2+y(Xt,Zt))>Gt)break i}else Ut=Gt;for(Ht=0;Ht<Gt&&Ut--;){S(Xt);var Qt=$t[0+(127&L(Xt))];A(Xt,Xt.u+Qt.g);var te=Qt.value;if(16>te)Yt[Ht++]=te,0!=te&&(Kt=te);else{var ee=16==te,re=te-16,ne=Yn[re],ie=y(Xt,Gn[re])+ne;if(Ht+ie>Gt)break i;for(var ae=ee?Kt:0;0<ie--;)Yt[Ht++]=ae}}Jt=1;break i}Jt||(Wt.a=3),Rt=Jt}(Rt=Rt&&!Ot.h)&&(jt=l(It,Ct,8,kt,At)),Rt&&0!=jt?zt=jt:(St.a=3,zt=0)}if(0==zt)break r;if(Nt&&1==Xn[V]&&(Nt=0==gt[G].g),wt+=gt[G].g,G+=zt,3>=V){var oe,se=pt[0];for(oe=1;oe<ut;++oe)pt[oe]>se&&(se=pt[oe]);Lt+=se}}if(mt.nd=Nt,mt.Qb=0,Nt&&(mt.qb=(vt[3][bt[3]+0].value<<24|vt[1][bt[1]+0].value<<16|vt[2][bt[2]+0].value)>>>0,0==wt&&256>vt[0][bt[0]+0].value&&(mt.Qb=1,mt.qb+=vt[0][bt[0]+0].value<<8)),mt.jc=!mt.Qb&&6>Lt,mt.jc){var ce,ue=mt;for(ce=0;ce<Er;++ce){var le=ce,he=ue.pd[le],fe=ue.G[0][ue.H[0]+le];256<=fe.value?(he.g=fe.g+256,he.value=fe.value):(he.g=0,he.value=0,le>>=yt(fe,8,he),le>>=yt(ue.G[1][ue.H[1]+le],16,he),le>>=yt(ue.G[2][ue.H[2]+le],0,he),yt(ue.G[3][ue.H[3]+le],24,he))}}}Q.vc=tt,Q.Wb=et,Q.Ya=dt,Q.yc=lt,H=1;break e}H=0}if(!(u=H)){s.a=3;break t}if(0<b){if(m.ua=1<<b,!O(m.Wa,b)){s.a=1,u=0;break t}}else m.ua=0;var de=s,pe=f,ge=p,me=de.s,ve=me.xc;if(de.c=pe,de.i=ge,me.md=E(pe,ve),me.wc=0==ve?-1:(1<<ve)-1,n){s.xb=di;break t}if(null==(v=a(f*p))){s.a=1,u=0;break t}u=(u=_t(s,v,0,f,p,p,null))&&!g.h;break t}return u?(null!=c?c[0]=v:(e(null==v),e(n)),s.$=0,n||Pt(m)):Pt(m),u}function It(t,r){var n=t.c*t.i,i=n+r+16*r;return e(t.c<=r),t.V=a(i),null==t.V?(t.Ta=null,t.Ua=0,t.a=1,0):(t.Ta=t.V,t.Ua=t.Ba+n+r,1)}function Ct(t,r){var n=t.C,i=r-n,a=t.V,o=t.Ba+t.c*n;for(e(r<=t.l.o);0<i;){var s=16<i?16:i,c=t.l.ma,u=t.l.width,l=u*s,h=c.ca,f=c.tb+u*n,d=t.Ta,p=t.Ua;Nt(t,s,a,o),Sn(d,p,h,f,l),At(c,n,n+s,h,f,u),i-=s,a+=s*t.c,n+=s}e(n==r),t.C=t.Ma=r}function jt(){this.ub=this.yd=this.td=this.Rb=0}function Ot(){this.Kd=this.Ld=this.Ud=this.Td=this.i=this.c=0}function Bt(){this.Fb=this.Bb=this.Cb=0,this.Zb=a(4),this.Lb=a(4)}function qt(){this.Yb=function(){var t=[];return function t(e,r,n){for(var i=n[r],a=0;a<i&&(e.push(n.length>r+1?[]:0),!(n.length<r+1));a++)t(e[a],r+1,n)}(t,0,[3,11]),t}()}function Mt(){this.jb=a(3),this.Wc=s([4,8],qt),this.Xc=s([4,17],qt)}function Et(){this.Pc=this.wb=this.Tb=this.zd=0,this.vd=new a(4),this.od=new a(4)}function Rt(){this.ld=this.La=this.dd=this.tc=0}function Dt(){this.Na=this.la=0}function Tt(){this.Sc=[0,0],this.Eb=[0,0],this.Qc=[0,0],this.ia=this.lc=0}function zt(){this.ad=a(384),this.Za=0,this.Ob=a(16),this.$b=this.Ad=this.ia=this.Gc=this.Hc=this.Dd=0}function Ut(){this.uc=this.M=this.Nb=0,this.wa=Array(new Rt),this.Y=0,this.ya=Array(new zt),this.aa=0,this.l=new Gt}function Ht(){this.y=a(16),this.f=a(8),this.ea=a(8)}function Wt(){this.cb=this.a=0,this.sc=\"\",this.m=new w,this.Od=new jt,this.Kc=new Ot,this.ed=new Et,this.Qa=new Bt,this.Ic=this.$c=this.Aa=0,this.D=new Ut,this.Xb=this.Va=this.Hb=this.zb=this.yb=this.Ub=this.za=0,this.Jc=o(8,w),this.ia=0,this.pb=o(4,Tt),this.Pa=new Mt,this.Bd=this.kc=0,this.Ac=[],this.Bc=0,this.zc=[0,0,0,0],this.Gd=Array(new Ht),this.Hd=0,this.rb=Array(new Dt),this.sb=0,this.wa=Array(new Rt),this.Y=0,this.oc=[],this.pc=0,this.sa=[],this.ta=0,this.qa=[],this.ra=0,this.Ha=[],this.B=this.R=this.Ia=0,this.Ec=[],this.M=this.ja=this.Vb=this.Fc=0,this.ya=Array(new zt),this.L=this.aa=0,this.gd=s([4,2],Rt),this.ga=null,this.Fa=[],this.Cc=this.qc=this.P=0,this.Gb=[],this.Uc=0,this.mb=[],this.nb=0,this.rc=[],this.Ga=this.Vc=0}function Vt(t,e){return 0>t?0:t>e?e:t}function Gt(){this.T=this.U=this.ka=this.height=this.width=0,this.y=[],this.f=[],this.ea=[],this.Rc=this.fa=this.W=this.N=this.O=0,this.ma=\"void\",this.put=\"VP8IoPutHook\",this.ac=\"VP8IoSetupHook\",this.bc=\"VP8IoTeardownHook\",this.ha=this.Kb=0,this.data=[],this.hb=this.ib=this.da=this.o=this.j=this.va=this.v=this.Da=this.ob=this.w=0,this.F=[],this.J=0}function Yt(){var t=new Wt;return null!=t&&(t.a=0,t.sc=\"OK\",t.cb=0,t.Xb=0,ri||(ri=$t)),t}function Jt(t,e,r){return 0==t.a&&(t.a=e,t.sc=r,t.cb=0),0}function Xt(t,e,r){return 3<=r&&157==t[e+0]&&1==t[e+1]&&42==t[e+2]}function Kt(t,r){if(null==t)return 0;if(t.a=0,t.sc=\"OK\",null==r)return Jt(t,2,\"null VP8Io passed to VP8GetHeaders()\");var n=r.data,a=r.w,o=r.ha;if(4>o)return Jt(t,7,\"Truncated header.\");var s=n[a+0]|n[a+1]<<8|n[a+2]<<16,c=t.Od;if(c.Rb=!(1&s),c.td=s>>1&7,c.yd=s>>4&1,c.ub=s>>5,3<c.td)return Jt(t,3,\"Incorrect keyframe parameters.\");if(!c.yd)return Jt(t,4,\"Frame not displayable.\");a+=3,o-=3;var u=t.Kc;if(c.Rb){if(7>o)return Jt(t,7,\"cannot parse picture header\");if(!Xt(n,a,o))return Jt(t,3,\"Bad code word\");u.c=16383&(n[a+4]<<8|n[a+3]),u.Td=n[a+4]>>6,u.i=16383&(n[a+6]<<8|n[a+5]),u.Ud=n[a+6]>>6,a+=7,o-=7,t.za=u.c+15>>4,t.Ub=u.i+15>>4,r.width=u.c,r.height=u.i,r.Da=0,r.j=0,r.v=0,r.va=r.width,r.o=r.height,r.da=0,r.ib=r.width,r.hb=r.height,r.U=r.width,r.T=r.height,i((s=t.Pa).jb,0,255,s.jb.length),e(null!=(s=t.Qa)),s.Cb=0,s.Bb=0,s.Fb=1,i(s.Zb,0,0,s.Zb.length),i(s.Lb,0,0,s.Lb)}if(c.ub>o)return Jt(t,7,\"bad partition length\");p(s=t.m,n,a,c.ub),a+=c.ub,o-=c.ub,c.Rb&&(u.Ld=P(s),u.Kd=P(s)),u=t.Qa;var l,h=t.Pa;if(e(null!=s),e(null!=u),u.Cb=P(s),u.Cb){if(u.Bb=P(s),P(s)){for(u.Fb=P(s),l=0;4>l;++l)u.Zb[l]=P(s)?m(s,7):0;for(l=0;4>l;++l)u.Lb[l]=P(s)?m(s,6):0}if(u.Bb)for(l=0;3>l;++l)h.jb[l]=P(s)?g(s,8):255}else u.Bb=0;if(s.Ka)return Jt(t,3,\"cannot parse segment header\");if((u=t.ed).zd=P(s),u.Tb=g(s,6),u.wb=g(s,3),u.Pc=P(s),u.Pc&&P(s)){for(h=0;4>h;++h)P(s)&&(u.vd[h]=m(s,6));for(h=0;4>h;++h)P(s)&&(u.od[h]=m(s,6))}if(t.L=0==u.Tb?0:u.zd?1:2,s.Ka)return Jt(t,3,\"cannot parse filter header\");var f=o;if(o=l=a,a=l+f,u=f,t.Xb=(1<<g(t.m,2))-1,f<3*(h=t.Xb))n=7;else{for(l+=3*h,u-=3*h,f=0;f<h;++f){var d=n[o+0]|n[o+1]<<8|n[o+2]<<16;d>u&&(d=u),p(t.Jc[+f],n,l,d),l+=d,u-=d,o+=3}p(t.Jc[+h],n,l,u),n=l<a?0:5}if(0!=n)return Jt(t,n,\"cannot parse partitions\");for(n=g(l=t.m,7),o=P(l)?m(l,4):0,a=P(l)?m(l,4):0,u=P(l)?m(l,4):0,h=P(l)?m(l,4):0,l=P(l)?m(l,4):0,f=t.Qa,d=0;4>d;++d){if(f.Cb){var v=f.Zb[d];f.Fb||(v+=n)}else{if(0<d){t.pb[d]=t.pb[0];continue}v=n}var b=t.pb[d];b.Sc[0]=ti[Vt(v+o,127)],b.Sc[1]=ei[Vt(v+0,127)],b.Eb[0]=2*ti[Vt(v+a,127)],b.Eb[1]=101581*ei[Vt(v+u,127)]>>16,8>b.Eb[1]&&(b.Eb[1]=8),b.Qc[0]=ti[Vt(v+h,117)],b.Qc[1]=ei[Vt(v+l,127)],b.lc=v+l}if(!c.Rb)return Jt(t,4,\"Not a key frame.\");for(P(s),c=t.Pa,n=0;4>n;++n){for(o=0;8>o;++o)for(a=0;3>a;++a)for(u=0;11>u;++u)h=k(s,ci[n][o][a][u])?g(s,8):oi[n][o][a][u],c.Wc[n][o].Yb[a][u]=h;for(o=0;17>o;++o)c.Xc[n][o]=c.Wc[n][ui[o]]}return t.kc=P(s),t.kc&&(t.Bd=g(s,8)),t.cb=1}function $t(t,e,r,n,i,a,o){var s=e[i].Yb[r];for(r=0;16>i;++i){if(!k(t,s[r+0]))return i;for(;!k(t,s[r+1]);)if(s=e[++i].Yb[0],r=0,16==i)return 16;var c=e[i+1].Yb;if(k(t,s[r+2])){var u=t,l=0;if(k(u,(f=s)[(h=r)+3]))if(k(u,f[h+6])){for(s=0,h=2*(l=k(u,f[h+8]))+(f=k(u,f[h+9+l])),l=0,f=ni[h];f[s];++s)l+=l+k(u,f[s]);l+=3+(8<<h)}else k(u,f[h+7])?(l=7+2*k(u,165),l+=k(u,145)):l=5+k(u,159);else l=k(u,f[h+4])?3+k(u,f[h+5]):2;s=c[2]}else l=1,s=c[1];c=o+ii[i],0>(u=t).b&&_(u);var h,f=u.b,d=(h=u.Ca>>1)-(u.I>>f)>>31;--u.b,u.Ca+=d,u.Ca|=1,u.I-=(h+1&d)<<f,a[c]=((l^d)-d)*n[(0<i)+0]}return 16}function Zt(t){var e=t.rb[t.sb-1];e.la=0,e.Na=0,i(t.zc,0,0,t.zc.length),t.ja=0}function Qt(t,e,r,n,i){i=t[e+r+32*n]+(i>>3),t[e+r+32*n]=-256&i?0>i?0:255:i}function te(t,e,r,n,i,a){Qt(t,e,0,r,n+i),Qt(t,e,1,r,n+a),Qt(t,e,2,r,n-a),Qt(t,e,3,r,n-i)}function ee(t){return(20091*t>>16)+t}function re(t,e,r,n){var i,o=0,s=a(16);for(i=0;4>i;++i){var c=t[e+0]+t[e+8],u=t[e+0]-t[e+8],l=(35468*t[e+4]>>16)-ee(t[e+12]),h=ee(t[e+4])+(35468*t[e+12]>>16);s[o+0]=c+h,s[o+1]=u+l,s[o+2]=u-l,s[o+3]=c-h,o+=4,e++}for(i=o=0;4>i;++i)c=(t=s[o+0]+4)+s[o+8],u=t-s[o+8],l=(35468*s[o+4]>>16)-ee(s[o+12]),Qt(r,n,0,0,c+(h=ee(s[o+4])+(35468*s[o+12]>>16))),Qt(r,n,1,0,u+l),Qt(r,n,2,0,u-l),Qt(r,n,3,0,c-h),o++,n+=32}function ne(t,e,r,n){var i=t[e+0]+4,a=35468*t[e+4]>>16,o=ee(t[e+4]),s=35468*t[e+1]>>16;te(r,n,0,i+o,t=ee(t[e+1]),s),te(r,n,1,i+a,t,s),te(r,n,2,i-a,t,s),te(r,n,3,i-o,t,s)}function ie(t,e,r,n,i){re(t,e,r,n),i&&re(t,e+16,r,n+4)}function ae(t,e,r,n){an(t,e+0,r,n,1),an(t,e+32,r,n+128,1)}function oe(t,e,r,n){var i;for(t=t[e+0]+4,i=0;4>i;++i)for(e=0;4>e;++e)Qt(r,n,e,i,t)}function se(t,e,r,n){t[e+0]&&cn(t,e+0,r,n),t[e+16]&&cn(t,e+16,r,n+4),t[e+32]&&cn(t,e+32,r,n+128),t[e+48]&&cn(t,e+48,r,n+128+4)}function ce(t,e,r,n){var i,o=a(16);for(i=0;4>i;++i){var s=t[e+0+i]+t[e+12+i],c=t[e+4+i]+t[e+8+i],u=t[e+4+i]-t[e+8+i],l=t[e+0+i]-t[e+12+i];o[0+i]=s+c,o[8+i]=s-c,o[4+i]=l+u,o[12+i]=l-u}for(i=0;4>i;++i)s=(t=o[0+4*i]+3)+o[3+4*i],c=o[1+4*i]+o[2+4*i],u=o[1+4*i]-o[2+4*i],l=t-o[3+4*i],r[n+0]=s+c>>3,r[n+16]=l+u>>3,r[n+32]=s-c>>3,r[n+48]=l-u>>3,n+=64}function ue(t,e,r){var n,i=e-32,a=On,o=255-t[i-1];for(n=0;n<r;++n){var s,c=a,u=o+t[e-1];for(s=0;s<r;++s)t[e+s]=c[u+t[i+s]];e+=32}}function le(t,e){ue(t,e,4)}function he(t,e){ue(t,e,8)}function fe(t,e){ue(t,e,16)}function de(t,e){var r;for(r=0;16>r;++r)n(t,e+32*r,t,e-32,16)}function pe(t,e){var r;for(r=16;0<r;--r)i(t,e,t[e-1],16),e+=32}function ge(t,e,r){var n;for(n=0;16>n;++n)i(e,r+32*n,t,16)}function me(t,e){var r,n=16;for(r=0;16>r;++r)n+=t[e-1+32*r]+t[e+r-32];ge(n>>5,t,e)}function ve(t,e){var r,n=8;for(r=0;16>r;++r)n+=t[e-1+32*r];ge(n>>4,t,e)}function be(t,e){var r,n=8;for(r=0;16>r;++r)n+=t[e+r-32];ge(n>>4,t,e)}function ye(t,e){ge(128,t,e)}function we(t,e,r){return t+2*e+r+2>>2}function Ne(t,e){var r,i=e-32;for(i=new Uint8Array([we(t[i-1],t[i+0],t[i+1]),we(t[i+0],t[i+1],t[i+2]),we(t[i+1],t[i+2],t[i+3]),we(t[i+2],t[i+3],t[i+4])]),r=0;4>r;++r)n(t,e+32*r,i,0,i.length)}function Le(t,e){var r=t[e-1],n=t[e-1+32],i=t[e-1+64],a=t[e-1+96];F(t,e+0,16843009*we(t[e-1-32],r,n)),F(t,e+32,16843009*we(r,n,i)),F(t,e+64,16843009*we(n,i,a)),F(t,e+96,16843009*we(i,a,a))}function xe(t,e){var r,n=4;for(r=0;4>r;++r)n+=t[e+r-32]+t[e-1+32*r];for(n>>=3,r=0;4>r;++r)i(t,e+32*r,n,4)}function Ae(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1-32],o=t[e+0-32],s=t[e+1-32],c=t[e+2-32],u=t[e+3-32];t[e+0+96]=we(n,i,t[e-1+96]),t[e+1+96]=t[e+0+64]=we(r,n,i),t[e+2+96]=t[e+1+64]=t[e+0+32]=we(a,r,n),t[e+3+96]=t[e+2+64]=t[e+1+32]=t[e+0+0]=we(o,a,r),t[e+3+64]=t[e+2+32]=t[e+1+0]=we(s,o,a),t[e+3+32]=t[e+2+0]=we(c,s,o),t[e+3+0]=we(u,c,s)}function Se(t,e){var r=t[e+1-32],n=t[e+2-32],i=t[e+3-32],a=t[e+4-32],o=t[e+5-32],s=t[e+6-32],c=t[e+7-32];t[e+0+0]=we(t[e+0-32],r,n),t[e+1+0]=t[e+0+32]=we(r,n,i),t[e+2+0]=t[e+1+32]=t[e+0+64]=we(n,i,a),t[e+3+0]=t[e+2+32]=t[e+1+64]=t[e+0+96]=we(i,a,o),t[e+3+32]=t[e+2+64]=t[e+1+96]=we(a,o,s),t[e+3+64]=t[e+2+96]=we(o,s,c),t[e+3+96]=we(s,c,c)}function _e(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1-32],o=t[e+0-32],s=t[e+1-32],c=t[e+2-32],u=t[e+3-32];t[e+0+0]=t[e+1+64]=a+o+1>>1,t[e+1+0]=t[e+2+64]=o+s+1>>1,t[e+2+0]=t[e+3+64]=s+c+1>>1,t[e+3+0]=c+u+1>>1,t[e+0+96]=we(i,n,r),t[e+0+64]=we(n,r,a),t[e+0+32]=t[e+1+96]=we(r,a,o),t[e+1+32]=t[e+2+96]=we(a,o,s),t[e+2+32]=t[e+3+96]=we(o,s,c),t[e+3+32]=we(s,c,u)}function Pe(t,e){var r=t[e+0-32],n=t[e+1-32],i=t[e+2-32],a=t[e+3-32],o=t[e+4-32],s=t[e+5-32],c=t[e+6-32],u=t[e+7-32];t[e+0+0]=r+n+1>>1,t[e+1+0]=t[e+0+64]=n+i+1>>1,t[e+2+0]=t[e+1+64]=i+a+1>>1,t[e+3+0]=t[e+2+64]=a+o+1>>1,t[e+0+32]=we(r,n,i),t[e+1+32]=t[e+0+96]=we(n,i,a),t[e+2+32]=t[e+1+96]=we(i,a,o),t[e+3+32]=t[e+2+96]=we(a,o,s),t[e+3+64]=we(o,s,c),t[e+3+96]=we(s,c,u)}function ke(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1+96];t[e+0+0]=r+n+1>>1,t[e+2+0]=t[e+0+32]=n+i+1>>1,t[e+2+32]=t[e+0+64]=i+a+1>>1,t[e+1+0]=we(r,n,i),t[e+3+0]=t[e+1+32]=we(n,i,a),t[e+3+32]=t[e+1+64]=we(i,a,a),t[e+3+64]=t[e+2+64]=t[e+0+96]=t[e+1+96]=t[e+2+96]=t[e+3+96]=a}function Fe(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1+96],o=t[e-1-32],s=t[e+0-32],c=t[e+1-32],u=t[e+2-32];t[e+0+0]=t[e+2+32]=r+o+1>>1,t[e+0+32]=t[e+2+64]=n+r+1>>1,t[e+0+64]=t[e+2+96]=i+n+1>>1,t[e+0+96]=a+i+1>>1,t[e+3+0]=we(s,c,u),t[e+2+0]=we(o,s,c),t[e+1+0]=t[e+3+32]=we(r,o,s),t[e+1+32]=t[e+3+64]=we(n,r,o),t[e+1+64]=t[e+3+96]=we(i,n,r),t[e+1+96]=we(a,i,n)}function Ie(t,e){var r;for(r=0;8>r;++r)n(t,e+32*r,t,e-32,8)}function Ce(t,e){var r;for(r=0;8>r;++r)i(t,e,t[e-1],8),e+=32}function je(t,e,r){var n;for(n=0;8>n;++n)i(e,r+32*n,t,8)}function Oe(t,e){var r,n=8;for(r=0;8>r;++r)n+=t[e+r-32]+t[e-1+32*r];je(n>>4,t,e)}function Be(t,e){var r,n=4;for(r=0;8>r;++r)n+=t[e+r-32];je(n>>3,t,e)}function qe(t,e){var r,n=4;for(r=0;8>r;++r)n+=t[e-1+32*r];je(n>>3,t,e)}function Me(t,e){je(128,t,e)}function Ee(t,e,r){var n=t[e-r],i=t[e+0],a=3*(i-n)+Cn[1020+t[e-2*r]-t[e+r]],o=jn[112+(a+4>>3)];t[e-r]=On[255+n+jn[112+(a+3>>3)]],t[e+0]=On[255+i-o]}function Re(t,e,r,n){var i=t[e+0],a=t[e+r];return Bn[255+t[e-2*r]-t[e-r]]>n||Bn[255+a-i]>n}function De(t,e,r,n){return 4*Bn[255+t[e-r]-t[e+0]]+Bn[255+t[e-2*r]-t[e+r]]<=n}function Te(t,e,r,n,i){var a=t[e-3*r],o=t[e-2*r],s=t[e-r],c=t[e+0],u=t[e+r],l=t[e+2*r],h=t[e+3*r];return 4*Bn[255+s-c]+Bn[255+o-u]>n?0:Bn[255+t[e-4*r]-a]<=i&&Bn[255+a-o]<=i&&Bn[255+o-s]<=i&&Bn[255+h-l]<=i&&Bn[255+l-u]<=i&&Bn[255+u-c]<=i}function ze(t,e,r,n){var i=2*n+1;for(n=0;16>n;++n)De(t,e+n,r,i)&&Ee(t,e+n,r)}function Ue(t,e,r,n){var i=2*n+1;for(n=0;16>n;++n)De(t,e+n*r,1,i)&&Ee(t,e+n*r,1)}function He(t,e,r,n){var i;for(i=3;0<i;--i)ze(t,e+=4*r,r,n)}function We(t,e,r,n){var i;for(i=3;0<i;--i)Ue(t,e+=4,r,n)}function Ve(t,e,r,n,i,a,o,s){for(a=2*a+1;0<i--;){if(Te(t,e,r,a,o))if(Re(t,e,r,s))Ee(t,e,r);else{var c=t,u=e,l=r,h=c[u-2*l],f=c[u-l],d=c[u+0],p=c[u+l],g=c[u+2*l],m=27*(b=Cn[1020+3*(d-f)+Cn[1020+h-p]])+63>>7,v=18*b+63>>7,b=9*b+63>>7;c[u-3*l]=On[255+c[u-3*l]+b],c[u-2*l]=On[255+h+v],c[u-l]=On[255+f+m],c[u+0]=On[255+d-m],c[u+l]=On[255+p-v],c[u+2*l]=On[255+g-b]}e+=n}}function Ge(t,e,r,n,i,a,o,s){for(a=2*a+1;0<i--;){if(Te(t,e,r,a,o))if(Re(t,e,r,s))Ee(t,e,r);else{var c=t,u=e,l=r,h=c[u-l],f=c[u+0],d=c[u+l],p=jn[112+(4+(g=3*(f-h))>>3)],g=jn[112+(g+3>>3)],m=p+1>>1;c[u-2*l]=On[255+c[u-2*l]+m],c[u-l]=On[255+h+g],c[u+0]=On[255+f-p],c[u+l]=On[255+d-m]}e+=n}}function Ye(t,e,r,n,i,a){Ve(t,e,r,1,16,n,i,a)}function Je(t,e,r,n,i,a){Ve(t,e,1,r,16,n,i,a)}function Xe(t,e,r,n,i,a){var o;for(o=3;0<o;--o)Ge(t,e+=4*r,r,1,16,n,i,a)}function Ke(t,e,r,n,i,a){var o;for(o=3;0<o;--o)Ge(t,e+=4,1,r,16,n,i,a)}function $e(t,e,r,n,i,a,o,s){Ve(t,e,i,1,8,a,o,s),Ve(r,n,i,1,8,a,o,s)}function Ze(t,e,r,n,i,a,o,s){Ve(t,e,1,i,8,a,o,s),Ve(r,n,1,i,8,a,o,s)}function Qe(t,e,r,n,i,a,o,s){Ge(t,e+4*i,i,1,8,a,o,s),Ge(r,n+4*i,i,1,8,a,o,s)}function tr(t,e,r,n,i,a,o,s){Ge(t,e+4,1,i,8,a,o,s),Ge(r,n+4,1,i,8,a,o,s)}function er(){this.ba=new ot,this.ec=[],this.cc=[],this.Mc=[],this.Dc=this.Nc=this.dc=this.fc=0,this.Oa=new ct,this.memory=0,this.Ib=\"OutputFunc\",this.Jb=\"OutputAlphaFunc\",this.Nd=\"OutputRowFunc\"}function rr(){this.data=[],this.offset=this.kd=this.ha=this.w=0,this.na=[],this.xa=this.gb=this.Ja=this.Sa=this.P=0}function nr(){this.nc=this.Ea=this.b=this.hc=0,this.K=[],this.w=0}function ir(){this.ua=0,this.Wa=new q,this.vb=new q,this.md=this.xc=this.wc=0,this.vc=[],this.Wb=0,this.Ya=new d,this.yc=new h}function ar(){this.xb=this.a=0,this.l=new Gt,this.ca=new ot,this.V=[],this.Ba=0,this.Ta=[],this.Ua=0,this.m=new N,this.Pb=0,this.wd=new N,this.Ma=this.$=this.C=this.i=this.c=this.xd=0,this.s=new ir,this.ab=0,this.gc=o(4,nr),this.Oc=0}function or(){this.Lc=this.Z=this.$a=this.i=this.c=0,this.l=new Gt,this.ic=0,this.ca=[],this.tb=0,this.qd=null,this.rd=0}function sr(t,e,r,n,i,a,o){for(t=null==t?0:t[e+0],e=0;e<o;++e)i[a+e]=t+r[n+e]&255,t=i[a+e]}function cr(t,e,r,n,i,a,o){var s;if(null==t)sr(null,null,r,n,i,a,o);else for(s=0;s<o;++s)i[a+s]=t[e+s]+r[n+s]&255}function ur(t,e,r,n,i,a,o){if(null==t)sr(null,null,r,n,i,a,o);else{var s,c=t[e+0],u=c,l=c;for(s=0;s<o;++s)u=l+(c=t[e+s])-u,l=r[n+s]+(-256&u?0>u?0:255:u)&255,u=c,i[a+s]=l}}function lr(t,r,i,o){var s=r.width,c=r.o;if(e(null!=t&&null!=r),0>i||0>=o||i+o>c)return null;if(!t.Cc){if(null==t.ga){var u;if(t.ga=new or,(u=null==t.ga)||(u=r.width*r.o,e(0==t.Gb.length),t.Gb=a(u),t.Uc=0,null==t.Gb?u=0:(t.mb=t.Gb,t.nb=t.Uc,t.rc=null,u=1),u=!u),!u){u=t.ga;var l=t.Fa,h=t.P,f=t.qc,d=t.mb,p=t.nb,g=h+1,m=f-1,b=u.l;if(e(null!=l&&null!=d&&null!=r),gi[0]=null,gi[1]=sr,gi[2]=cr,gi[3]=ur,u.ca=d,u.tb=p,u.c=r.width,u.i=r.height,e(0<u.c&&0<u.i),1>=f)r=0;else if(u.$a=3&l[h+0],u.Z=l[h+0]>>2&3,u.Lc=l[h+0]>>4&3,h=l[h+0]>>6&3,0>u.$a||1<u.$a||4<=u.Z||1<u.Lc||h)r=0;else if(b.put=dt,b.ac=ft,b.bc=pt,b.ma=u,b.width=r.width,b.height=r.height,b.Da=r.Da,b.v=r.v,b.va=r.va,b.j=r.j,b.o=r.o,u.$a)t:{e(1==u.$a),r=kt();e:for(;;){if(null==r){r=0;break t}if(e(null!=u),u.mc=r,r.c=u.c,r.i=u.i,r.l=u.l,r.l.ma=u,r.l.width=u.c,r.l.height=u.i,r.a=0,v(r.m,l,g,m),!Ft(u.c,u.i,1,r,null))break e;if(1==r.ab&&3==r.gc[0].hc&&xt(r.s)?(u.ic=1,l=r.c*r.i,r.Ta=null,r.Ua=0,r.V=a(l),r.Ba=0,null==r.V?(r.a=1,r=0):r=1):(u.ic=0,r=It(r,u.c)),!r)break e;r=1;break t}u.mc=null,r=0}else r=m>=u.c*u.i;u=!r}if(u)return null;1!=t.ga.Lc?t.Ga=0:o=c-i}e(null!=t.ga),e(i+o<=c);t:{if(r=(l=t.ga).c,c=l.l.o,0==l.$a){if(g=t.rc,m=t.Vc,b=t.Fa,h=t.P+1+i*r,f=t.mb,d=t.nb+i*r,e(h<=t.P+t.qc),0!=l.Z)for(e(null!=gi[l.Z]),u=0;u<o;++u)gi[l.Z](g,m,b,h,f,d,r),g=f,m=d,d+=r,h+=r;else for(u=0;u<o;++u)n(f,d,b,h,r),g=f,m=d,d+=r,h+=r;t.rc=g,t.Vc=m}else{if(e(null!=l.mc),r=i+o,e(null!=(u=l.mc)),e(r<=u.i),u.C>=r)r=1;else if(l.ic||gr(),l.ic){l=u.V,g=u.Ba,m=u.c;var y=u.i,w=(b=1,h=u.$/m,f=u.$%m,d=u.m,p=u.s,u.$),N=m*y,L=m*r,A=p.wc,_=w<L?wt(p,f,h):null;e(w<=N),e(r<=y),e(xt(p));e:for(;;){for(;!d.h&&w<L;){if(f&A||(_=wt(p,f,h)),e(null!=_),S(d),256>(y=bt(_.G[0],_.H[0],d)))l[g+w]=y,++w,++f>=m&&(f=0,++h<=r&&!(h%16)&&St(u,h));else{if(!(280>y)){b=0;break e}y=mt(y-256,d);var P,k=bt(_.G[4],_.H[4],d);if(S(d),!(w>=(k=vt(m,k=mt(k,d)))&&N-w>=y)){b=0;break e}for(P=0;P<y;++P)l[g+w+P]=l[g+w+P-k];for(w+=y,f+=y;f>=m;)f-=m,++h<=r&&!(h%16)&&St(u,h);w<L&&f&A&&(_=wt(p,f,h))}e(d.h==x(d))}St(u,h>r?r:h);break e}!b||d.h&&w<N?(b=0,u.a=d.h?5:3):u.$=w,r=b}else r=_t(u,u.V,u.Ba,u.c,u.i,r,Ct);if(!r){o=0;break t}}i+o>=c&&(t.Cc=1),o=1}if(!o)return null;if(t.Cc&&(null!=(o=t.ga)&&(o.mc=null),t.ga=null,0<t.Ga))return alert(\"todo:WebPDequantizeLevels\"),null}return t.nb+i*s}function hr(t,e,r,n,i,a){for(;0<i--;){var o,s=t,c=e+(r?1:0),u=t,l=e+(r?0:3);for(o=0;o<n;++o){var h=u[l+4*o];255!=h&&(h*=32897,s[c+4*o+0]=s[c+4*o+0]*h>>23,s[c+4*o+1]=s[c+4*o+1]*h>>23,s[c+4*o+2]=s[c+4*o+2]*h>>23)}e+=a}}function fr(t,e,r,n,i){for(;0<n--;){var a;for(a=0;a<r;++a){var o=t[e+2*a+0],s=15&(u=t[e+2*a+1]),c=4369*s,u=(240&u|u>>4)*c>>16;t[e+2*a+0]=(240&o|o>>4)*c>>16&240|(15&o|o<<4)*c>>16>>4&15,t[e+2*a+1]=240&u|s}e+=i}}function dr(t,e,r,n,i,a,o,s){var c,u,l=255;for(u=0;u<i;++u){for(c=0;c<n;++c){var h=t[e+c];a[o+4*c]=h,l&=h}e+=r,o+=s}return 255!=l}function pr(t,e,r,n,i){var a;for(a=0;a<i;++a)r[n+a]=t[e+a]>>8}function gr(){Ln=hr,xn=fr,An=dr,Sn=pr}function mr(r,n,i){t[r]=function(t,r,a,o,s,c,u,l,h,f,d,p,g,m,v,b,y){var w,N=y-1>>1,L=s[c+0]|u[l+0]<<16,x=h[f+0]|d[p+0]<<16;e(null!=t);var A=3*L+x+131074>>2;for(n(t[r+0],255&A,A>>16,g,m),null!=a&&(A=3*x+L+131074>>2,n(a[o+0],255&A,A>>16,v,b)),w=1;w<=N;++w){var S=s[c+w]|u[l+w]<<16,_=h[f+w]|d[p+w]<<16,P=L+S+x+_+524296,k=P+2*(S+x)>>3;A=k+L>>1,L=(P=P+2*(L+_)>>3)+S>>1,n(t[r+2*w-1],255&A,A>>16,g,m+(2*w-1)*i),n(t[r+2*w-0],255&L,L>>16,g,m+(2*w-0)*i),null!=a&&(A=P+x>>1,L=k+_>>1,n(a[o+2*w-1],255&A,A>>16,v,b+(2*w-1)*i),n(a[o+2*w+0],255&L,L>>16,v,b+(2*w+0)*i)),L=S,x=_}1&y||(A=3*L+x+131074>>2,n(t[r+y-1],255&A,A>>16,g,m+(y-1)*i),null!=a&&(A=3*x+L+131074>>2,n(a[o+y-1],255&A,A>>16,v,b+(y-1)*i)))}}function vr(){mi[qn]=vi,mi[Mn]=yi,mi[En]=bi,mi[Rn]=wi,mi[Dn]=Ni,mi[Tn]=Li,mi[zn]=xi,mi[Un]=yi,mi[Hn]=wi,mi[Wn]=Ni,mi[Vn]=Li}function br(t){return t&~Fi?0>t?0:255:t>>ki}function yr(t,e){return br((19077*t>>8)+(26149*e>>8)-14234)}function wr(t,e,r){return br((19077*t>>8)-(6419*e>>8)-(13320*r>>8)+8708)}function Nr(t,e){return br((19077*t>>8)+(33050*e>>8)-17685)}function Lr(t,e,r,n,i){n[i+0]=yr(t,r),n[i+1]=wr(t,e,r),n[i+2]=Nr(t,e)}function xr(t,e,r,n,i){n[i+0]=Nr(t,e),n[i+1]=wr(t,e,r),n[i+2]=yr(t,r)}function Ar(t,e,r,n,i){var a=wr(t,e,r);e=a<<3&224|Nr(t,e)>>3,n[i+0]=248&yr(t,r)|a>>5,n[i+1]=e}function Sr(t,e,r,n,i){var a=240&Nr(t,e)|15;n[i+0]=240&yr(t,r)|wr(t,e,r)>>4,n[i+1]=a}function _r(t,e,r,n,i){n[i+0]=255,Lr(t,e,r,n,i+1)}function Pr(t,e,r,n,i){xr(t,e,r,n,i),n[i+3]=255}function kr(t,e,r,n,i){Lr(t,e,r,n,i),n[i+3]=255}function Fr(e,r,n){t[e]=function(t,e,i,a,o,s,c,u,l){for(var h=u+(-2&l)*n;u!=h;)r(t[e+0],i[a+0],o[s+0],c,u),r(t[e+1],i[a+0],o[s+0],c,u+n),e+=2,++a,++s,u+=2*n;1&l&&r(t[e+0],i[a+0],o[s+0],c,u)}}function Ir(t,e,r){return 0==r?0==t?0==e?6:5:0==e?4:0:r}function Cr(t,e,r,n,i){switch(t>>>30){case 3:an(e,r,n,i,0);break;case 2:on(e,r,n,i);break;case 1:cn(e,r,n,i)}}function jr(t,e){var r,a,o=e.M,s=e.Nb,c=t.oc,u=t.pc+40,l=t.oc,h=t.pc+584,f=t.oc,d=t.pc+600;for(r=0;16>r;++r)c[u+32*r-1]=129;for(r=0;8>r;++r)l[h+32*r-1]=129,f[d+32*r-1]=129;for(0<o?c[u-1-32]=l[h-1-32]=f[d-1-32]=129:(i(c,u-32-1,127,21),i(l,h-32-1,127,9),i(f,d-32-1,127,9)),a=0;a<t.za;++a){var p=e.ya[e.aa+a];if(0<a){for(r=-1;16>r;++r)n(c,u+32*r-4,c,u+32*r+12,4);for(r=-1;8>r;++r)n(l,h+32*r-4,l,h+32*r+4,4),n(f,d+32*r-4,f,d+32*r+4,4)}var g=t.Gd,m=t.Hd+a,v=p.ad,b=p.Hc;if(0<o&&(n(c,u-32,g[m].y,0,16),n(l,h-32,g[m].f,0,8),n(f,d-32,g[m].ea,0,8)),p.Za){var y=c,w=u-32+16;for(0<o&&(a>=t.za-1?i(y,w,g[m].y[15],4):n(y,w,g[m+1].y,0,4)),r=0;4>r;r++)y[w+128+r]=y[w+256+r]=y[w+384+r]=y[w+0+r];for(r=0;16>r;++r,b<<=2)y=c,w=u+Ei[r],hi[p.Ob[r]](y,w),Cr(b,v,16*+r,y,w)}else if(y=Ir(a,o,p.Ob[0]),li[y](c,u),0!=b)for(r=0;16>r;++r,b<<=2)Cr(b,v,16*+r,c,u+Ei[r]);for(r=p.Gc,y=Ir(a,o,p.Dd),fi[y](l,h),fi[y](f,d),b=v,y=l,w=h,255&(p=0|r)&&(170&p?sn(b,256,y,w):un(b,256,y,w)),p=f,b=d,255&(r>>=8)&&(170&r?sn(v,320,p,b):un(v,320,p,b)),o<t.Ub-1&&(n(g[m].y,0,c,u+480,16),n(g[m].f,0,l,h+224,8),n(g[m].ea,0,f,d+224,8)),r=8*s*t.B,g=t.sa,m=t.ta+16*a+16*s*t.R,v=t.qa,p=t.ra+8*a+r,b=t.Ha,y=t.Ia+8*a+r,r=0;16>r;++r)n(g,m+r*t.R,c,u+32*r,16);for(r=0;8>r;++r)n(v,p+r*t.B,l,h+32*r,8),n(b,y+r*t.B,f,d+32*r,8)}}function Or(t,n,i,a,o,s,c,u,l){var h=[0],f=[0],d=0,p=null!=l?l.kd:0,g=null!=l?l:new rr;if(null==t||12>i)return 7;g.data=t,g.w=n,g.ha=i,n=[n],i=[i],g.gb=[g.gb];t:{var m=n,b=i,y=g.gb;if(e(null!=t),e(null!=b),e(null!=y),y[0]=0,12<=b[0]&&!r(t,m[0],\"RIFF\")){if(r(t,m[0]+8,\"WEBP\")){y=3;break t}var w=j(t,m[0]+4);if(12>w||4294967286<w){y=3;break t}if(p&&w>b[0]-8){y=7;break t}y[0]=w,m[0]+=12,b[0]-=12}y=0}if(0!=y)return y;for(w=0<g.gb[0],i=i[0];;){t:{var L=t;b=n,y=i;var x=h,A=f,S=m=[0];if((k=d=[d])[0]=0,8>y[0])y=7;else{if(!r(L,b[0],\"VP8X\")){if(10!=j(L,b[0]+4)){y=3;break t}if(18>y[0]){y=7;break t}var _=j(L,b[0]+8),P=1+C(L,b[0]+12);if(2147483648<=P*(L=1+C(L,b[0]+15))){y=3;break t}null!=S&&(S[0]=_),null!=x&&(x[0]=P),null!=A&&(A[0]=L),b[0]+=18,y[0]-=18,k[0]=1}y=0}}if(d=d[0],m=m[0],0!=y)return y;if(b=!!(2&m),!w&&d)return 3;if(null!=s&&(s[0]=!!(16&m)),null!=c&&(c[0]=b),null!=u&&(u[0]=0),c=h[0],m=f[0],d&&b&&null==l){y=0;break}if(4>i){y=7;break}if(w&&d||!w&&!d&&!r(t,n[0],\"ALPH\")){i=[i],g.na=[g.na],g.P=[g.P],g.Sa=[g.Sa];t:{_=t,y=n,w=i;var k=g.gb;x=g.na,A=g.P,S=g.Sa,P=22,e(null!=_),e(null!=w),L=y[0];var F=w[0];for(e(null!=x),e(null!=S),x[0]=null,A[0]=null,S[0]=0;;){if(y[0]=L,w[0]=F,8>F){y=7;break t}var I=j(_,L+4);if(4294967286<I){y=3;break t}var O=8+I+1&-2;if(P+=O,0<k&&P>k){y=3;break t}if(!r(_,L,\"VP8 \")||!r(_,L,\"VP8L\")){y=0;break t}if(F[0]<O){y=7;break t}r(_,L,\"ALPH\")||(x[0]=_,A[0]=L+8,S[0]=I),L+=O,F-=O}}if(i=i[0],g.na=g.na[0],g.P=g.P[0],g.Sa=g.Sa[0],0!=y)break}i=[i],g.Ja=[g.Ja],g.xa=[g.xa];t:if(k=t,y=n,w=i,x=g.gb[0],A=g.Ja,S=g.xa,_=y[0],L=!r(k,_,\"VP8 \"),P=!r(k,_,\"VP8L\"),e(null!=k),e(null!=w),e(null!=A),e(null!=S),8>w[0])y=7;else{if(L||P){if(k=j(k,_+4),12<=x&&k>x-12){y=3;break t}if(p&&k>w[0]-8){y=7;break t}A[0]=k,y[0]+=8,w[0]-=8,S[0]=P}else S[0]=5<=w[0]&&47==k[_+0]&&!(k[_+4]>>5),A[0]=w[0];y=0}if(i=i[0],g.Ja=g.Ja[0],g.xa=g.xa[0],n=n[0],0!=y)break;if(4294967286<g.Ja)return 3;if(null==u||b||(u[0]=g.xa?2:1),c=[c],m=[m],g.xa){if(5>i){y=7;break}u=c,p=m,b=s,null==t||5>i?t=0:5<=i&&47==t[n+0]&&!(t[n+4]>>5)?(w=[0],k=[0],x=[0],v(A=new N,t,n,i),gt(A,w,k,x)?(null!=u&&(u[0]=w[0]),null!=p&&(p[0]=k[0]),null!=b&&(b[0]=x[0]),t=1):t=0):t=0}else{if(10>i){y=7;break}u=m,null==t||10>i||!Xt(t,n+3,i-3)?t=0:(p=t[n+0]|t[n+1]<<8|t[n+2]<<16,b=16383&(t[n+7]<<8|t[n+6]),t=16383&(t[n+9]<<8|t[n+8]),1&p||3<(p>>1&7)||!(p>>4&1)||p>>5>=g.Ja||!b||!t?t=0:(c&&(c[0]=b),u&&(u[0]=t),t=1))}if(!t)return 3;if(c=c[0],m=m[0],d&&(h[0]!=c||f[0]!=m))return 3;null!=l&&(l[0]=g,l.offset=n-l.w,e(4294967286>n-l.w),e(l.offset==l.ha-i));break}return 0==y||7==y&&d&&null==l?(null!=s&&(s[0]|=null!=g.na&&0<g.na.length),null!=a&&(a[0]=c),null!=o&&(o[0]=m),0):y}function Br(t,e,r){var n=e.width,i=e.height,a=0,o=0,s=n,c=i;if(e.Da=null!=t&&0<t.Da,e.Da&&(s=t.cd,c=t.bd,a=t.v,o=t.j,11>r||(a&=-2,o&=-2),0>a||0>o||0>=s||0>=c||a+s>n||o+c>i))return 0;if(e.v=a,e.j=o,e.va=a+s,e.o=o+c,e.U=s,e.T=c,e.da=null!=t&&0<t.da,e.da){if(!M(s,c,r=[t.ib],a=[t.hb]))return 0;e.ib=r[0],e.hb=a[0]}return e.ob=null!=t&&t.ob,e.Kb=null==t||!t.Sd,e.da&&(e.ob=e.ib<3*n/4&&e.hb<3*i/4,e.Kb=0),1}function qr(t){if(null==t)return 2;if(11>t.S){var e=t.f.RGBA;e.fb+=(t.height-1)*e.A,e.A=-e.A}else e=t.f.kb,t=t.height,e.O+=(t-1)*e.fa,e.fa=-e.fa,e.N+=(t-1>>1)*e.Ab,e.Ab=-e.Ab,e.W+=(t-1>>1)*e.Db,e.Db=-e.Db,null!=e.F&&(e.J+=(t-1)*e.lb,e.lb=-e.lb);return 0}function Mr(t,e,r,n){if(null==n||0>=t||0>=e)return 2;if(null!=r){if(r.Da){var i=r.cd,o=r.bd,s=-2&r.v,c=-2&r.j;if(0>s||0>c||0>=i||0>=o||s+i>t||c+o>e)return 2;t=i,e=o}if(r.da){if(!M(t,e,i=[r.ib],o=[r.hb]))return 2;t=i[0],e=o[0]}}n.width=t,n.height=e;t:{var u=n.width,l=n.height;if(t=n.S,0>=u||0>=l||!(t>=qn&&13>t))t=2;else{if(0>=n.Rd&&null==n.sd){s=o=i=e=0;var h=(c=u*zi[t])*l;if(11>t||(o=(l+1)/2*(e=(u+1)/2),12==t&&(s=(i=u)*l)),null==(l=a(h+2*o+s))){t=1;break t}n.sd=l,11>t?((u=n.f.RGBA).eb=l,u.fb=0,u.A=c,u.size=h):((u=n.f.kb).y=l,u.O=0,u.fa=c,u.Fd=h,u.f=l,u.N=0+h,u.Ab=e,u.Cd=o,u.ea=l,u.W=0+h+o,u.Db=e,u.Ed=o,12==t&&(u.F=l,u.J=0+h+2*o),u.Tc=s,u.lb=i)}if(e=1,i=n.S,o=n.width,s=n.height,i>=qn&&13>i)if(11>i)t=n.f.RGBA,e&=(c=Math.abs(t.A))*(s-1)+o<=t.size,e&=c>=o*zi[i],e&=null!=t.eb;else{t=n.f.kb,c=(o+1)/2,h=(s+1)/2,u=Math.abs(t.fa),l=Math.abs(t.Ab);var f=Math.abs(t.Db),d=Math.abs(t.lb),p=d*(s-1)+o;e&=u*(s-1)+o<=t.Fd,e&=l*(h-1)+c<=t.Cd,e=(e&=f*(h-1)+c<=t.Ed)&u>=o&l>=c&f>=c,e&=null!=t.y,e&=null!=t.f,e&=null!=t.ea,12==i&&(e&=d>=o,e&=p<=t.Tc,e&=null!=t.F)}else e=0;t=e?0:2}}return 0!=t||null!=r&&r.fd&&(t=qr(n)),t}var Er=64,Rr=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215],Dr=24,Tr=32,zr=8,Ur=[0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7];D(\"Predictor0\",\"PredictorAdd0\"),t.Predictor0=function(){return 4278190080},t.Predictor1=function(t){return t},t.Predictor2=function(t,e,r){return e[r+0]},t.Predictor3=function(t,e,r){return e[r+1]},t.Predictor4=function(t,e,r){return e[r-1]},t.Predictor5=function(t,e,r){return z(z(t,e[r+1]),e[r+0])},t.Predictor6=function(t,e,r){return z(t,e[r-1])},t.Predictor7=function(t,e,r){return z(t,e[r+0])},t.Predictor8=function(t,e,r){return z(e[r-1],e[r+0])},t.Predictor9=function(t,e,r){return z(e[r+0],e[r+1])},t.Predictor10=function(t,e,r){return z(z(t,e[r-1]),z(e[r+0],e[r+1]))},t.Predictor11=function(t,e,r){var n=e[r+0];return 0>=W(n>>24&255,t>>24&255,(e=e[r-1])>>24&255)+W(n>>16&255,t>>16&255,e>>16&255)+W(n>>8&255,t>>8&255,e>>8&255)+W(255&n,255&t,255&e)?n:t},t.Predictor12=function(t,e,r){var n=e[r+0];return(U((t>>24&255)+(n>>24&255)-((e=e[r-1])>>24&255))<<24|U((t>>16&255)+(n>>16&255)-(e>>16&255))<<16|U((t>>8&255)+(n>>8&255)-(e>>8&255))<<8|U((255&t)+(255&n)-(255&e)))>>>0},t.Predictor13=function(t,e,r){var n=e[r-1];return(H((t=z(t,e[r+0]))>>24&255,n>>24&255)<<24|H(t>>16&255,n>>16&255)<<16|H(t>>8&255,n>>8&255)<<8|H(255&t,255&n))>>>0};var Hr=t.PredictorAdd0;t.PredictorAdd1=V,D(\"Predictor2\",\"PredictorAdd2\"),D(\"Predictor3\",\"PredictorAdd3\"),D(\"Predictor4\",\"PredictorAdd4\"),D(\"Predictor5\",\"PredictorAdd5\"),D(\"Predictor6\",\"PredictorAdd6\"),D(\"Predictor7\",\"PredictorAdd7\"),D(\"Predictor8\",\"PredictorAdd8\"),D(\"Predictor9\",\"PredictorAdd9\"),D(\"Predictor10\",\"PredictorAdd10\"),D(\"Predictor11\",\"PredictorAdd11\"),D(\"Predictor12\",\"PredictorAdd12\"),D(\"Predictor13\",\"PredictorAdd13\");var Wr=t.PredictorAdd2;X(\"ColorIndexInverseTransform\",\"MapARGB\",\"32b\",function(t){return t>>8&255},function(t){return t}),X(\"VP8LColorIndexInverseTransformAlpha\",\"MapAlpha\",\"8b\",function(t){return t},function(t){return t>>8&255});var Vr,Gr=t.ColorIndexInverseTransform,Yr=t.MapARGB,Jr=t.VP8LColorIndexInverseTransformAlpha,Xr=t.MapAlpha,Kr=t.VP8LPredictorsAdd=[];Kr.length=16,(t.VP8LPredictors=[]).length=16,(t.VP8LPredictorsAdd_C=[]).length=16,(t.VP8LPredictors_C=[]).length=16;var $r,Zr,Qr,tn,en,rn,nn,an,on,sn,cn,un,ln,hn,fn,dn,pn,gn,mn,vn,bn,yn,wn,Nn,Ln,xn,An,Sn,_n=a(511),Pn=a(2041),kn=a(225),Fn=a(767),In=0,Cn=Pn,jn=kn,On=Fn,Bn=_n,qn=0,Mn=1,En=2,Rn=3,Dn=4,Tn=5,zn=6,Un=7,Hn=8,Wn=9,Vn=10,Gn=[2,3,7],Yn=[3,3,11],Jn=[280,256,256,256,40],Xn=[0,1,1,1,0],Kn=[17,18,0,1,2,3,4,5,16,6,7,8,9,10,11,12,13,14,15],$n=[24,7,23,25,40,6,39,41,22,26,38,42,56,5,55,57,21,27,54,58,37,43,72,4,71,73,20,28,53,59,70,74,36,44,88,69,75,52,60,3,87,89,19,29,86,90,35,45,68,76,85,91,51,61,104,2,103,105,18,30,102,106,34,46,84,92,67,77,101,107,50,62,120,1,119,121,83,93,17,31,100,108,66,78,118,122,33,47,117,123,49,63,99,109,82,94,0,116,124,65,79,16,32,98,110,48,115,125,81,95,64,114,126,97,111,80,113,127,96,112],Zn=[2954,2956,2958,2962,2970,2986,3018,3082,3212,3468,3980,5004],Qn=8,ti=[4,5,6,7,8,9,10,10,11,12,13,14,15,16,17,17,18,19,20,20,21,21,22,22,23,23,24,25,25,26,27,28,29,30,31,32,33,34,35,36,37,37,38,39,40,41,42,43,44,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,93,95,96,98,100,101,102,104,106,108,110,112,114,116,118,122,124,126,128,130,132,134,136,138,140,143,145,148,151,154,157],ei=[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167,170,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,234,239,245,249,254,259,264,269,274,279,284],ri=null,ni=[[173,148,140,0],[176,155,140,135,0],[180,157,141,134,130,0],[254,254,243,230,196,177,153,140,133,130,129,0]],ii=[0,1,4,8,5,2,3,6,9,12,13,10,7,11,14,15],ai=[-0,1,-1,2,-2,3,4,6,-3,5,-4,-5,-6,7,-7,8,-8,-9],oi=[[[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]],[[253,136,254,255,228,219,128,128,128,128,128],[189,129,242,255,227,213,255,219,128,128,128],[106,126,227,252,214,209,255,255,128,128,128]],[[1,98,248,255,236,226,255,255,128,128,128],[181,133,238,254,221,234,255,154,128,128,128],[78,134,202,247,198,180,255,219,128,128,128]],[[1,185,249,255,243,255,128,128,128,128,128],[184,150,247,255,236,224,128,128,128,128,128],[77,110,216,255,236,230,128,128,128,128,128]],[[1,101,251,255,241,255,128,128,128,128,128],[170,139,241,252,236,209,255,255,128,128,128],[37,116,196,243,228,255,255,255,128,128,128]],[[1,204,254,255,245,255,128,128,128,128,128],[207,160,250,255,238,128,128,128,128,128,128],[102,103,231,255,211,171,128,128,128,128,128]],[[1,152,252,255,240,255,128,128,128,128,128],[177,135,243,255,234,225,128,128,128,128,128],[80,129,211,255,194,224,128,128,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[246,1,255,128,128,128,128,128,128,128,128],[255,128,128,128,128,128,128,128,128,128,128]]],[[[198,35,237,223,193,187,162,160,145,155,62],[131,45,198,221,172,176,220,157,252,221,1],[68,47,146,208,149,167,221,162,255,223,128]],[[1,149,241,255,221,224,255,255,128,128,128],[184,141,234,253,222,220,255,199,128,128,128],[81,99,181,242,176,190,249,202,255,255,128]],[[1,129,232,253,214,197,242,196,255,255,128],[99,121,210,250,201,198,255,202,128,128,128],[23,91,163,242,170,187,247,210,255,255,128]],[[1,200,246,255,234,255,128,128,128,128,128],[109,178,241,255,231,245,255,255,128,128,128],[44,130,201,253,205,192,255,255,128,128,128]],[[1,132,239,251,219,209,255,165,128,128,128],[94,136,225,251,218,190,255,255,128,128,128],[22,100,174,245,186,161,255,199,128,128,128]],[[1,182,249,255,232,235,128,128,128,128,128],[124,143,241,255,227,234,128,128,128,128,128],[35,77,181,251,193,211,255,205,128,128,128]],[[1,157,247,255,236,231,255,255,128,128,128],[121,141,235,255,225,227,255,255,128,128,128],[45,99,188,251,195,217,255,224,128,128,128]],[[1,1,251,255,213,255,128,128,128,128,128],[203,1,248,255,255,128,128,128,128,128,128],[137,1,177,255,224,255,128,128,128,128,128]]],[[[253,9,248,251,207,208,255,192,128,128,128],[175,13,224,243,193,185,249,198,255,255,128],[73,17,171,221,161,179,236,167,255,234,128]],[[1,95,247,253,212,183,255,255,128,128,128],[239,90,244,250,211,209,255,255,128,128,128],[155,77,195,248,188,195,255,255,128,128,128]],[[1,24,239,251,218,219,255,205,128,128,128],[201,51,219,255,196,186,128,128,128,128,128],[69,46,190,239,201,218,255,228,128,128,128]],[[1,191,251,255,255,128,128,128,128,128,128],[223,165,249,255,213,255,128,128,128,128,128],[141,124,248,255,255,128,128,128,128,128,128]],[[1,16,248,255,255,128,128,128,128,128,128],[190,36,230,255,236,255,128,128,128,128,128],[149,1,255,128,128,128,128,128,128,128,128]],[[1,226,255,128,128,128,128,128,128,128,128],[247,192,255,128,128,128,128,128,128,128,128],[240,128,255,128,128,128,128,128,128,128,128]],[[1,134,252,255,255,128,128,128,128,128,128],[213,62,250,255,255,128,128,128,128,128,128],[55,93,255,128,128,128,128,128,128,128,128]],[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]]],[[[202,24,213,235,186,191,220,160,240,175,255],[126,38,182,232,169,184,228,174,255,187,128],[61,46,138,219,151,178,240,170,255,216,128]],[[1,112,230,250,199,191,247,159,255,255,128],[166,109,228,252,211,215,255,174,128,128,128],[39,77,162,232,172,180,245,178,255,255,128]],[[1,52,220,246,198,199,249,220,255,255,128],[124,74,191,243,183,193,250,221,255,255,128],[24,71,130,219,154,170,243,182,255,255,128]],[[1,182,225,249,219,240,255,224,128,128,128],[149,150,226,252,216,205,255,171,128,128,128],[28,108,170,242,183,194,254,223,255,255,128]],[[1,81,230,252,204,203,255,192,128,128,128],[123,102,209,247,188,196,255,233,128,128,128],[20,95,153,243,164,173,255,203,128,128,128]],[[1,222,248,255,216,213,128,128,128,128,128],[168,175,246,252,235,205,255,255,128,128,128],[47,116,215,255,211,212,255,255,128,128,128]],[[1,121,236,253,212,214,255,255,128,128,128],[141,84,213,252,201,202,255,219,128,128,128],[42,80,160,240,162,185,255,205,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[244,1,255,128,128,128,128,128,128,128,128],[238,1,255,128,128,128,128,128,128,128,128]]]],si=[[[231,120,48,89,115,113,120,152,112],[152,179,64,126,170,118,46,70,95],[175,69,143,80,85,82,72,155,103],[56,58,10,171,218,189,17,13,152],[114,26,17,163,44,195,21,10,173],[121,24,80,195,26,62,44,64,85],[144,71,10,38,171,213,144,34,26],[170,46,55,19,136,160,33,206,71],[63,20,8,114,114,208,12,9,226],[81,40,11,96,182,84,29,16,36]],[[134,183,89,137,98,101,106,165,148],[72,187,100,130,157,111,32,75,80],[66,102,167,99,74,62,40,234,128],[41,53,9,178,241,141,26,8,107],[74,43,26,146,73,166,49,23,157],[65,38,105,160,51,52,31,115,128],[104,79,12,27,217,255,87,17,7],[87,68,71,44,114,51,15,186,23],[47,41,14,110,182,183,21,17,194],[66,45,25,102,197,189,23,18,22]],[[88,88,147,150,42,46,45,196,205],[43,97,183,117,85,38,35,179,61],[39,53,200,87,26,21,43,232,171],[56,34,51,104,114,102,29,93,77],[39,28,85,171,58,165,90,98,64],[34,22,116,206,23,34,43,166,73],[107,54,32,26,51,1,81,43,31],[68,25,106,22,64,171,36,225,114],[34,19,21,102,132,188,16,76,124],[62,18,78,95,85,57,50,48,51]],[[193,101,35,159,215,111,89,46,111],[60,148,31,172,219,228,21,18,111],[112,113,77,85,179,255,38,120,114],[40,42,1,196,245,209,10,25,109],[88,43,29,140,166,213,37,43,154],[61,63,30,155,67,45,68,1,209],[100,80,8,43,154,1,51,26,71],[142,78,78,16,255,128,34,197,171],[41,40,5,102,211,183,4,1,221],[51,50,17,168,209,192,23,25,82]],[[138,31,36,171,27,166,38,44,229],[67,87,58,169,82,115,26,59,179],[63,59,90,180,59,166,93,73,154],[40,40,21,116,143,209,34,39,175],[47,15,16,183,34,223,49,45,183],[46,17,33,183,6,98,15,32,183],[57,46,22,24,128,1,54,17,37],[65,32,73,115,28,128,23,128,205],[40,3,9,115,51,192,18,6,223],[87,37,9,115,59,77,64,21,47]],[[104,55,44,218,9,54,53,130,226],[64,90,70,205,40,41,23,26,57],[54,57,112,184,5,41,38,166,213],[30,34,26,133,152,116,10,32,134],[39,19,53,221,26,114,32,73,255],[31,9,65,234,2,15,1,118,73],[75,32,12,51,192,255,160,43,51],[88,31,35,67,102,85,55,186,85],[56,21,23,111,59,205,45,37,192],[55,38,70,124,73,102,1,34,98]],[[125,98,42,88,104,85,117,175,82],[95,84,53,89,128,100,113,101,45],[75,79,123,47,51,128,81,171,1],[57,17,5,71,102,57,53,41,49],[38,33,13,121,57,73,26,1,85],[41,10,67,138,77,110,90,47,114],[115,21,2,10,102,255,166,23,6],[101,29,16,10,85,128,101,196,26],[57,18,10,102,102,213,34,20,43],[117,20,15,36,163,128,68,1,26]],[[102,61,71,37,34,53,31,243,192],[69,60,71,38,73,119,28,222,37],[68,45,128,34,1,47,11,245,171],[62,17,19,70,146,85,55,62,70],[37,43,37,154,100,163,85,160,1],[63,9,92,136,28,64,32,201,85],[75,15,9,9,64,255,184,119,16],[86,6,28,5,64,255,25,248,1],[56,8,17,132,137,255,55,116,128],[58,15,20,82,135,57,26,121,40]],[[164,50,31,137,154,133,25,35,218],[51,103,44,131,131,123,31,6,158],[86,40,64,135,148,224,45,183,128],[22,26,17,131,240,154,14,1,209],[45,16,21,91,64,222,7,1,197],[56,21,39,155,60,138,23,102,213],[83,12,13,54,192,255,68,47,28],[85,26,85,85,128,128,32,146,171],[18,11,7,63,144,171,4,4,246],[35,27,10,146,174,171,12,26,128]],[[190,80,35,99,180,80,126,54,45],[85,126,47,87,176,51,41,20,32],[101,75,128,139,118,146,116,128,85],[56,41,15,176,236,85,37,9,62],[71,30,17,119,118,255,17,18,138],[101,38,60,138,55,70,43,26,142],[146,36,19,30,171,255,97,27,20],[138,45,61,62,219,1,81,188,64],[32,41,20,117,151,142,20,21,163],[112,19,12,61,195,128,48,4,24]]],ci=[[[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[176,246,255,255,255,255,255,255,255,255,255],[223,241,252,255,255,255,255,255,255,255,255],[249,253,253,255,255,255,255,255,255,255,255]],[[255,244,252,255,255,255,255,255,255,255,255],[234,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255]],[[255,246,254,255,255,255,255,255,255,255,255],[239,253,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[251,255,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[251,254,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,254,253,255,254,255,255,255,255,255,255],[250,255,254,255,254,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[217,255,255,255,255,255,255,255,255,255,255],[225,252,241,253,255,255,254,255,255,255,255],[234,250,241,250,253,255,253,254,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[223,254,254,255,255,255,255,255,255,255,255],[238,253,254,254,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[249,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,255,255,255,255,255,255,255,255,255],[247,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[252,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[186,251,250,255,255,255,255,255,255,255,255],[234,251,244,254,255,255,255,255,255,255,255],[251,251,243,253,254,255,254,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[236,253,254,255,255,255,255,255,255,255,255],[251,253,253,254,254,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[254,254,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[254,254,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[248,255,255,255,255,255,255,255,255,255,255],[250,254,252,254,255,255,255,255,255,255,255],[248,254,249,253,255,255,255,255,255,255,255]],[[255,253,253,255,255,255,255,255,255,255,255],[246,253,253,255,255,255,255,255,255,255,255],[252,254,251,254,254,255,255,255,255,255,255]],[[255,254,252,255,255,255,255,255,255,255,255],[248,254,253,255,255,255,255,255,255,255,255],[253,255,254,254,255,255,255,255,255,255,255]],[[255,251,254,255,255,255,255,255,255,255,255],[245,251,254,255,255,255,255,255,255,255,255],[253,253,254,255,255,255,255,255,255,255,255]],[[255,251,253,255,255,255,255,255,255,255,255],[252,253,254,255,255,255,255,255,255,255,255],[255,254,255,255,255,255,255,255,255,255,255]],[[255,252,255,255,255,255,255,255,255,255,255],[249,255,254,255,255,255,255,255,255,255,255],[255,255,254,255,255,255,255,255,255,255,255]],[[255,255,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]]],ui=[0,1,2,3,6,4,5,6,6,6,6,6,6,6,6,7,0],li=[],hi=[],fi=[],di=1,pi=2,gi=[],mi=[];mr(\"UpsampleRgbLinePair\",Lr,3),mr(\"UpsampleBgrLinePair\",xr,3),mr(\"UpsampleRgbaLinePair\",kr,4),mr(\"UpsampleBgraLinePair\",Pr,4),mr(\"UpsampleArgbLinePair\",_r,4),mr(\"UpsampleRgba4444LinePair\",Sr,2),mr(\"UpsampleRgb565LinePair\",Ar,2);var vi=t.UpsampleRgbLinePair,bi=t.UpsampleBgrLinePair,yi=t.UpsampleRgbaLinePair,wi=t.UpsampleBgraLinePair,Ni=t.UpsampleArgbLinePair,Li=t.UpsampleRgba4444LinePair,xi=t.UpsampleRgb565LinePair,Ai=16,Si=1<<Ai-1,_i=-227,Pi=482,ki=6,Fi=(256<<ki)-1,Ii=0,Ci=a(256),ji=a(256),Oi=a(256),Bi=a(256),qi=a(Pi-_i),Mi=a(Pi-_i);Fr(\"YuvToRgbRow\",Lr,3),Fr(\"YuvToBgrRow\",xr,3),Fr(\"YuvToRgbaRow\",kr,4),Fr(\"YuvToBgraRow\",Pr,4),Fr(\"YuvToArgbRow\",_r,4),Fr(\"YuvToRgba4444Row\",Sr,2),Fr(\"YuvToRgb565Row\",Ar,2);var Ei=[0,4,8,12,128,132,136,140,256,260,264,268,384,388,392,396],Ri=[0,2,8],Di=[8,7,6,4,4,2,2,2,1,1,1,1],Ti=1;this.WebPDecodeRGBA=function(t,r,s,c,u){var l=Mn,h=new er,f=new ot;h.ba=f,f.S=l,f.width=[f.width],f.height=[f.height];var d=f.width,p=f.height,g=new st;if(null==g||null==t)var m=2;else e(null!=g),m=Or(t,r,s,g.width,g.height,g.Pd,g.Qd,g.format,null);if(0!=m?d=0:(null!=d&&(d[0]=g.width[0]),null!=p&&(p[0]=g.height[0]),d=1),d){f.width=f.width[0],f.height=f.height[0],null!=c&&(c[0]=f.width),null!=u&&(u[0]=f.height);t:{if(c=new Gt,(u=new rr).data=t,u.w=r,u.ha=s,u.kd=1,r=[0],e(null!=u),(0==(t=Or(u.data,u.w,u.ha,null,null,null,r,null,u))||7==t)&&r[0]&&(t=4),0==(r=t)){if(e(null!=h),c.data=u.data,c.w=u.w+u.offset,c.ha=u.ha-u.offset,c.put=dt,c.ac=ft,c.bc=pt,c.ma=h,u.xa){if(null==(t=kt())){h=1;break t}if(function(t,r){var n=[0],i=[0],a=[0];e:for(;;){if(null==t)return 0;if(null==r)return t.a=2,0;if(t.l=r,t.a=0,v(t.m,r.data,r.w,r.ha),!gt(t.m,n,i,a)){t.a=3;break e}if(t.xb=pi,r.width=n[0],r.height=i[0],!Ft(n[0],i[0],1,t,null))break e;return 1}return e(0!=t.a),0}(t,c)){if(c=0==(r=Mr(c.width,c.height,h.Oa,h.ba))){e:{c=t;r:for(;;){if(null==c){c=0;break e}if(e(null!=c.s.yc),e(null!=c.s.Ya),e(0<c.s.Wb),e(null!=(s=c.l)),e(null!=(u=s.ma)),0!=c.xb){if(c.ca=u.ba,c.tb=u.tb,e(null!=c.ca),!Br(u.Oa,s,Rn)){c.a=2;break r}if(!It(c,s.width))break r;if(s.da)break r;if((s.da||nt(c.ca.S))&&gr(),11>c.ca.S||(alert(\"todo:WebPInitConvertARGBToYUV\"),null!=c.ca.f.kb.F&&gr()),c.Pb&&0<c.s.ua&&null==c.s.vb.X&&!O(c.s.vb,c.s.Wa.Xa)){c.a=1;break r}c.xb=0}if(!_t(c,c.V,c.Ba,c.c,c.i,s.o,Lt))break r;u.Dc=c.Ma,c=1;break e}e(0!=c.a),c=0}c=!c}c&&(r=t.a)}else r=t.a}else{if(null==(t=new Yt)){h=1;break t}if(t.Fa=u.na,t.P=u.P,t.qc=u.Sa,Kt(t,c)){if(0==(r=Mr(c.width,c.height,h.Oa,h.ba))){if(t.Aa=0,s=h.Oa,e(null!=(u=t)),null!=s){if(0<(d=0>(d=s.Md)?0:100<d?255:255*d/100)){for(p=g=0;4>p;++p)12>(m=u.pb[p]).lc&&(m.ia=d*Di[0>m.lc?0:m.lc]>>3),g|=m.ia;g&&(alert(\"todo:VP8InitRandom\"),u.ia=1)}u.Ga=s.Id,100<u.Ga?u.Ga=100:0>u.Ga&&(u.Ga=0)}(function(t,r){if(null==t)return 0;if(null==r)return Jt(t,2,\"NULL VP8Io parameter in VP8Decode().\");if(!t.cb&&!Kt(t,r))return 0;if(e(t.cb),null==r.ac||r.ac(r)){r.ob&&(t.L=0);var s=Ri[t.L];if(2==t.L?(t.yb=0,t.zb=0):(t.yb=r.v-s>>4,t.zb=r.j-s>>4,0>t.yb&&(t.yb=0),0>t.zb&&(t.zb=0)),t.Va=r.o+15+s>>4,t.Hb=r.va+15+s>>4,t.Hb>t.za&&(t.Hb=t.za),t.Va>t.Ub&&(t.Va=t.Ub),0<t.L){var c=t.ed;for(s=0;4>s;++s){var u;if(t.Qa.Cb){var l=t.Qa.Lb[s];t.Qa.Fb||(l+=c.Tb)}else l=c.Tb;for(u=0;1>=u;++u){var h=t.gd[s][u],f=l;if(c.Pc&&(f+=c.vd[0],u&&(f+=c.od[0])),0<(f=0>f?0:63<f?63:f)){var d=f;0<c.wb&&(d=4<c.wb?d>>2:d>>1)>9-c.wb&&(d=9-c.wb),1>d&&(d=1),h.dd=d,h.tc=2*f+d,h.ld=40<=f?2:15<=f?1:0}else h.tc=0;h.La=u}}}s=0}else Jt(t,6,\"Frame setup failed\"),s=t.a;if(s=0==s){if(s){t.$c=0,0<t.Aa||(t.Ic=Ti);e:{s=t.Ic,c=4*(d=t.za);var p=32*d,g=d+1,m=0<t.L?d*(0<t.Aa?2:1):0,v=(2==t.Aa?2:1)*d;if((h=c+832+(u=3*(16*s+Ri[t.L])/2*p)+(l=null!=t.Fa&&0<t.Fa.length?t.Kc.c*t.Kc.i:0))!=h)s=0;else{if(h>t.Vb){if(t.Vb=0,t.Ec=a(h),t.Fc=0,null==t.Ec){s=Jt(t,1,\"no memory during frame initialization.\");break e}t.Vb=h}h=t.Ec,f=t.Fc,t.Ac=h,t.Bc=f,f+=c,t.Gd=o(p,Ht),t.Hd=0,t.rb=o(g+1,Dt),t.sb=1,t.wa=m?o(m,Rt):null,t.Y=0,t.D.Nb=0,t.D.wa=t.wa,t.D.Y=t.Y,0<t.Aa&&(t.D.Y+=d),e(!0),t.oc=h,t.pc=f,f+=832,t.ya=o(v,zt),t.aa=0,t.D.ya=t.ya,t.D.aa=t.aa,2==t.Aa&&(t.D.aa+=d),t.R=16*d,t.B=8*d,d=(p=Ri[t.L])*t.R,p=p/2*t.B,t.sa=h,t.ta=f+d,t.qa=t.sa,t.ra=t.ta+16*s*t.R+p,t.Ha=t.qa,t.Ia=t.ra+8*s*t.B+p,t.$c=0,f+=u,t.mb=l?h:null,t.nb=l?f:null,e(f+l<=t.Fc+t.Vb),Zt(t),i(t.Ac,t.Bc,0,c),s=1}}if(s){if(r.ka=0,r.y=t.sa,r.O=t.ta,r.f=t.qa,r.N=t.ra,r.ea=t.Ha,r.Vd=t.Ia,r.fa=t.R,r.Rc=t.B,r.F=null,r.J=0,!In){for(s=-255;255>=s;++s)_n[255+s]=0>s?-s:s;for(s=-1020;1020>=s;++s)Pn[1020+s]=-128>s?-128:127<s?127:s;for(s=-112;112>=s;++s)kn[112+s]=-16>s?-16:15<s?15:s;for(s=-255;510>=s;++s)Fn[255+s]=0>s?0:255<s?255:s;In=1}nn=ce,an=ie,sn=ae,cn=oe,un=se,on=ne,ln=Ye,hn=Je,fn=$e,dn=Ze,pn=Xe,gn=Ke,mn=Qe,vn=tr,bn=ze,yn=Ue,wn=He,Nn=We,hi[0]=xe,hi[1]=le,hi[2]=Ne,hi[3]=Le,hi[4]=Ae,hi[5]=_e,hi[6]=Se,hi[7]=Pe,hi[8]=Fe,hi[9]=ke,li[0]=me,li[1]=fe,li[2]=de,li[3]=pe,li[4]=ve,li[5]=be,li[6]=ye,fi[0]=Oe,fi[1]=he,fi[2]=Ie,fi[3]=Ce,fi[4]=qe,fi[5]=Be,fi[6]=Me,s=1}else s=0}s&&(s=function(t,r){for(t.M=0;t.M<t.Va;++t.M){var o,s=t.Jc[t.M&t.Xb],c=t.m,u=t;for(o=0;o<u.za;++o){var l=c,h=u,f=h.Ac,d=h.Bc+4*o,p=h.zc,g=h.ya[h.aa+o];if(h.Qa.Bb?g.$b=k(l,h.Pa.jb[0])?2+k(l,h.Pa.jb[2]):k(l,h.Pa.jb[1]):g.$b=0,h.kc&&(g.Ad=k(l,h.Bd)),g.Za=!k(l,145)+0,g.Za){var m=g.Ob,v=0;for(h=0;4>h;++h){var b,y=p[0+h];for(b=0;4>b;++b){y=si[f[d+b]][y];for(var w=ai[k(l,y[0])];0<w;)w=ai[2*w+k(l,y[w])];y=-w,f[d+b]=y}n(m,v,f,d,4),v+=4,p[0+h]=y}}else y=k(l,156)?k(l,128)?1:3:k(l,163)?2:0,g.Ob[0]=y,i(f,d,y,4),i(p,0,y,4);g.Dd=k(l,142)?k(l,114)?k(l,183)?1:3:2:0}if(u.m.Ka)return Jt(t,7,\"Premature end-of-partition0 encountered.\");for(;t.ja<t.za;++t.ja){if(u=s,l=(c=t).rb[c.sb-1],f=c.rb[c.sb+c.ja],o=c.ya[c.aa+c.ja],d=c.kc?o.Ad:0)l.la=f.la=0,o.Za||(l.Na=f.Na=0),o.Hc=0,o.Gc=0,o.ia=0;else{var N,L;if(l=f,f=u,d=c.Pa.Xc,p=c.ya[c.aa+c.ja],g=c.pb[p.$b],h=p.ad,m=0,v=c.rb[c.sb-1],y=b=0,i(h,m,0,384),p.Za)var x=0,A=d[3];else{w=a(16);var S=l.Na+v.Na;if(S=ri(f,d[1],S,g.Eb,0,w,0),l.Na=v.Na=(0<S)+0,1<S)nn(w,0,h,m);else{var _=w[0]+3>>3;for(w=0;256>w;w+=16)h[m+w]=_}x=1,A=d[0]}var P=15&l.la,F=15&v.la;for(w=0;4>w;++w){var I=1&F;for(_=L=0;4>_;++_)P=P>>1|(I=(S=ri(f,A,S=I+(1&P),g.Sc,x,h,m))>x)<<7,L=L<<2|(3<S?3:1<S?2:0!=h[m+0]),m+=16;P>>=4,F=F>>1|I<<7,b=(b<<8|L)>>>0}for(A=P,x=F>>4,N=0;4>N;N+=2){for(L=0,P=l.la>>4+N,F=v.la>>4+N,w=0;2>w;++w){for(I=1&F,_=0;2>_;++_)S=I+(1&P),P=P>>1|(I=0<(S=ri(f,d[2],S,g.Qc,0,h,m)))<<3,L=L<<2|(3<S?3:1<S?2:0!=h[m+0]),m+=16;P>>=2,F=F>>1|I<<5}y|=L<<4*N,A|=P<<4<<N,x|=(240&F)<<N}l.la=A,v.la=x,p.Hc=b,p.Gc=y,p.ia=43690&y?0:g.ia,d=!(b|y)}if(0<c.L&&(c.wa[c.Y+c.ja]=c.gd[o.$b][o.Za],c.wa[c.Y+c.ja].La|=!d),u.Ka)return Jt(t,7,\"Premature end-of-file encountered.\")}if(Zt(t),c=r,u=1,o=(s=t).D,l=0<s.L&&s.M>=s.zb&&s.M<=s.Va,0==s.Aa)e:{if(o.M=s.M,o.uc=l,jr(s,o),u=1,o=(L=s.D).Nb,l=(y=Ri[s.L])*s.R,f=y/2*s.B,w=16*o*s.R,_=8*o*s.B,d=s.sa,p=s.ta-l+w,g=s.qa,h=s.ra-f+_,m=s.Ha,v=s.Ia-f+_,F=0==(P=L.M),b=P>=s.Va-1,2==s.Aa&&jr(s,L),L.uc)for(I=(S=s).D.M,e(S.D.uc),L=S.yb;L<S.Hb;++L){x=L,A=I;var C=(j=(z=S).D).Nb;N=z.R;var j=j.wa[j.Y+x],O=z.sa,B=z.ta+16*C*N+16*x,q=j.dd,M=j.tc;if(0!=M)if(e(3<=M),1==z.L)0<x&&yn(O,B,N,M+4),j.La&&Nn(O,B,N,M),0<A&&bn(O,B,N,M+4),j.La&&wn(O,B,N,M);else{var E=z.B,R=z.qa,D=z.ra+8*C*E+8*x,T=z.Ha,z=z.Ia+8*C*E+8*x;C=j.ld,0<x&&(hn(O,B,N,M+4,q,C),dn(R,D,T,z,E,M+4,q,C)),j.La&&(gn(O,B,N,M,q,C),vn(R,D,T,z,E,M,q,C)),0<A&&(ln(O,B,N,M+4,q,C),fn(R,D,T,z,E,M+4,q,C)),j.La&&(pn(O,B,N,M,q,C),mn(R,D,T,z,E,M,q,C))}}if(s.ia&&alert(\"todo:DitherRow\"),null!=c.put){if(L=16*P,P=16*(P+1),F?(c.y=s.sa,c.O=s.ta+w,c.f=s.qa,c.N=s.ra+_,c.ea=s.Ha,c.W=s.Ia+_):(L-=y,c.y=d,c.O=p,c.f=g,c.N=h,c.ea=m,c.W=v),b||(P-=y),P>c.o&&(P=c.o),c.F=null,c.J=null,null!=s.Fa&&0<s.Fa.length&&L<P&&(c.J=lr(s,c,L,P-L),c.F=s.mb,null==c.F&&0==c.F.length)){u=Jt(s,3,\"Could not decode alpha data.\");break e}L<c.j&&(y=c.j-L,L=c.j,e(!(1&y)),c.O+=s.R*y,c.N+=s.B*(y>>1),c.W+=s.B*(y>>1),null!=c.F&&(c.J+=c.width*y)),L<P&&(c.O+=c.v,c.N+=c.v>>1,c.W+=c.v>>1,null!=c.F&&(c.J+=c.v),c.ka=L-c.j,c.U=c.va-c.v,c.T=P-L,u=c.put(c))}o+1!=s.Ic||b||(n(s.sa,s.ta-l,d,p+16*s.R,l),n(s.qa,s.ra-f,g,h+8*s.B,f),n(s.Ha,s.Ia-f,m,v+8*s.B,f))}if(!u)return Jt(t,6,\"Output aborted.\")}return 1}(t,r)),null!=r.bc&&r.bc(r),s&=1}return s?(t.cb=0,s):0})(t,c)||(r=t.a)}}else r=t.a}0==r&&null!=h.Oa&&h.Oa.fd&&(r=qr(h.ba))}h=r}l=0!=h?null:11>l?f.f.RGBA.eb:f.f.kb.y}else l=null;return l};var zi=[3,4,3,4,4,2,2,4,4,4,2,1,1]};function u(t,e){for(var r=\"\",n=0;n<4;n++)r+=String.fromCharCode(t[e++]);return r}function l(t,e){return t[e+0]|t[e+1]<<8}function h(t,e){return(t[e+0]|t[e+1]<<8|t[e+2]<<16)>>>0}function f(t,e){return(t[e+0]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}new c;var d=[0],p=[0],g=[],m=new c,v=t,b=function(t,e){var r={},n=0,i=!1,a=0,o=0;if(r.frames=[],!\n/** @license\n * Copyright (c) 2017 Dominik Homberger\n\nPermission 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:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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.\n\nhttps://webpjs.appspot.com\nWebPRiffParser dominikhlbg@gmail.com\n*/\nfunction(t,e){for(var r=0;r<4;r++)if(t[e+r]!=\"RIFF\".charCodeAt(r))return!0;return!1}(t,e)){for(f(t,e+=4),e+=8;e<t.length;){var s=u(t,e),c=f(t,e+=4);e+=4;var d=c+(1&c);switch(s){case\"VP8 \":case\"VP8L\":void 0===r.frames[n]&&(r.frames[n]={}),(m=r.frames[n]).src_off=i?o:e-8,m.src_size=a+c+8,n++,i&&(i=!1,a=0,o=0);break;case\"VP8X\":(m=r.header={}).feature_flags=t[e];var p=e+4;m.canvas_width=1+h(t,p),p+=3,m.canvas_height=1+h(t,p),p+=3;break;case\"ALPH\":i=!0,a=d+8,o=e-8;break;case\"ANIM\":(m=r.header).bgcolor=f(t,e),p=e+4,m.loop_count=l(t,p),p+=2;break;case\"ANMF\":var g,m;(m=r.frames[n]={}).offset_x=2*h(t,e),e+=3,m.offset_y=2*h(t,e),e+=3,m.width=1+h(t,e),e+=3,m.height=1+h(t,e),e+=3,m.duration=h(t,e),e+=3,g=t[e++],m.dispose=1&g,m.blend=g>>1&1}\"ANMF\"!=s&&(e+=d)}return r}}(v,0);b.response=v,b.rgbaoutput=!0,b.dataurl=!1;var y=b.header?b.header:null,w=b.frames?b.frames:null;if(y){y.loop_counter=y.loop_count,d=[y.canvas_height],p=[y.canvas_width];for(var N=0;N<w.length&&0!=w[N].blend;N++);}var L=w[0],x=m.WebPDecodeRGBA(v,L.src_off,L.src_size,p,d);L.rgba=x,L.imgwidth=p[0],L.imgheight=d[0];for(var A=0;A<p[0]*d[0]*4;A++)g[A]=x[A];return this.width=p,this.height=d,this.data=g,this}\n/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nfunction re(){const t=this.internal.__metadata__.metadata,e=unescape(encodeURIComponent(t));let r;if(this.internal.__metadata__.rawXml)r=e;else{const t=\"</jspdf:metadata></rdf:Description></rdf:RDF>\",n=\"</x:xmpmeta>\";r='<x:xmpmeta xmlns:x=\"adobe:ns:meta/\"><rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><rdf:Description rdf:about=\"\" xmlns:jspdf=\"'+this.internal.__metadata__.namespaceUri+'\"><jspdf:metadata>'+e.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\").replace(/\"/g,\""\").replace(/'/g,\"'\")+t+n}this.internal.__metadata__.metadataObjectNumber=this.internal.newObject(),this.internal.write(\"<< /Type /Metadata /Subtype /XML /Length \"+r.length+\" >>\"),this.internal.write(\"stream\"),this.internal.write(r),this.internal.write(\"endstream\"),this.internal.write(\"endobj\")}function ne(){this.internal.__metadata__.metadataObjectNumber&&this.internal.write(\"/Metadata \"+this.internal.__metadata__.metadataObjectNumber+\" 0 R\")}!function(t){var e,r,i,a,o,c,u,l,h,f=function(t){return t=t||{},this.isStrokeTransparent=t.isStrokeTransparent||!1,this.strokeOpacity=t.strokeOpacity||1,this.strokeStyle=t.strokeStyle||\"#000000\",this.fillStyle=t.fillStyle||\"#000000\",this.isFillTransparent=t.isFillTransparent||!1,this.fillOpacity=t.fillOpacity||1,this.font=t.font||\"10px sans-serif\",this.textBaseline=t.textBaseline||\"alphabetic\",this.textAlign=t.textAlign||\"left\",this.lineWidth=t.lineWidth||1,this.lineJoin=t.lineJoin||\"miter\",this.lineCap=t.lineCap||\"butt\",this.path=t.path||[],this.transform=void 0!==t.transform?t.transform.clone():new l,this.globalCompositeOperation=t.globalCompositeOperation||\"normal\",this.globalAlpha=t.globalAlpha||1,this.clip_path=t.clip_path||[],this.currentPoint=t.currentPoint||new c,this.miterLimit=t.miterLimit||10,this.lastPoint=t.lastPoint||new c,this.lineDashOffset=t.lineDashOffset||0,this.lineDash=t.lineDash||[],this.margin=t.margin||[0,0,0,0],this.prevPageLastElemOffset=t.prevPageLastElemOffset||0,this.ignoreClearRect=\"boolean\"!=typeof t.ignoreClearRect||t.ignoreClearRect,this};t.events.push([\"initialized\",function(){this.context2d=new d(this),e=this.internal.f2,r=this.internal.getCoordinateString,i=this.internal.getVerticalCoordinateString,a=this.internal.getHorizontalCoordinate,o=this.internal.getVerticalCoordinate,c=this.internal.Point,u=this.internal.Rectangle,l=this.internal.Matrix,h=new f}]);var d=function(t){Object.defineProperty(this,\"canvas\",{get:function(){return{parentNode:!1,style:!1}}});var e=t;Object.defineProperty(this,\"pdf\",{get:function(){return e}});var r=!1;Object.defineProperty(this,\"pageWrapXEnabled\",{get:function(){return r},set:function(t){r=Boolean(t)}});var n=!1;Object.defineProperty(this,\"pageWrapYEnabled\",{get:function(){return n},set:function(t){n=Boolean(t)}});var i=0;Object.defineProperty(this,\"posX\",{get:function(){return i},set:function(t){isNaN(t)||(i=t)}});var a=0;Object.defineProperty(this,\"posY\",{get:function(){return a},set:function(t){isNaN(t)||(a=t)}}),Object.defineProperty(this,\"margin\",{get:function(){return h.margin},set:function(t){var e;\"number\"==typeof t?e=[t,t,t,t]:((e=new Array(4))[0]=t[0],e[1]=t.length>=2?t[1]:e[0],e[2]=t.length>=3?t[2]:e[0],e[3]=t.length>=4?t[3]:e[1]),h.margin=e}});var o=!1;Object.defineProperty(this,\"autoPaging\",{get:function(){return o},set:function(t){o=t}});var s=0;Object.defineProperty(this,\"lastBreak\",{get:function(){return s},set:function(t){s=t}});var c=[];Object.defineProperty(this,\"pageBreaks\",{get:function(){return c},set:function(t){c=t}}),Object.defineProperty(this,\"ctx\",{get:function(){return h},set:function(t){t instanceof f&&(h=t)}}),Object.defineProperty(this,\"path\",{get:function(){return h.path},set:function(t){h.path=t}});var u=[];Object.defineProperty(this,\"ctxStack\",{get:function(){return u},set:function(t){u=t}}),Object.defineProperty(this,\"fillStyle\",{get:function(){return this.ctx.fillStyle},set:function(t){var e;e=p(t),this.ctx.fillStyle=e.style,this.ctx.isFillTransparent=0===e.a,this.ctx.fillOpacity=e.a,this.pdf.setFillColor(e.r,e.g,e.b,{a:e.a}),this.pdf.setTextColor(e.r,e.g,e.b,{a:e.a})}}),Object.defineProperty(this,\"strokeStyle\",{get:function(){return this.ctx.strokeStyle},set:function(t){var e=p(t);this.ctx.strokeStyle=e.style,this.ctx.isStrokeTransparent=0===e.a,this.ctx.strokeOpacity=e.a,0===e.a?this.pdf.setDrawColor(255,255,255):(e.a,this.pdf.setDrawColor(e.r,e.g,e.b))}}),Object.defineProperty(this,\"lineCap\",{get:function(){return this.ctx.lineCap},set:function(t){-1!==[\"butt\",\"round\",\"square\"].indexOf(t)&&(this.ctx.lineCap=t,this.pdf.setLineCap(t))}}),Object.defineProperty(this,\"lineWidth\",{get:function(){return this.ctx.lineWidth},set:function(t){isNaN(t)||(this.ctx.lineWidth=t,this.pdf.setLineWidth(t))}}),Object.defineProperty(this,\"lineJoin\",{get:function(){return this.ctx.lineJoin},set:function(t){-1!==[\"bevel\",\"round\",\"miter\"].indexOf(t)&&(this.ctx.lineJoin=t,this.pdf.setLineJoin(t))}}),Object.defineProperty(this,\"miterLimit\",{get:function(){return this.ctx.miterLimit},set:function(t){isNaN(t)||(this.ctx.miterLimit=t,this.pdf.setMiterLimit(t))}}),Object.defineProperty(this,\"textBaseline\",{get:function(){return this.ctx.textBaseline},set:function(t){this.ctx.textBaseline=t}}),Object.defineProperty(this,\"textAlign\",{get:function(){return this.ctx.textAlign},set:function(t){-1!==[\"right\",\"end\",\"center\",\"left\",\"start\"].indexOf(t)&&(this.ctx.textAlign=t)}});var l=null,d=null;var g=null;Object.defineProperty(this,\"fontFaces\",{get:function(){return g},set:function(t){l=null,d=null,g=t}}),Object.defineProperty(this,\"font\",{get:function(){return this.ctx.font},set:function(t){var e;if(this.ctx.font=t,null!==(e=/^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z0-9]+?)\\s*$/i.exec(t))){var r=e[1];e[2];var n=e[3],i=e[4];e[5];var a=e[6],o=/^([.\\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i.exec(i)[2];i=\"px\"===o?Math.floor(parseFloat(i)*this.pdf.internal.scaleFactor):\"em\"===o?Math.floor(parseFloat(i)*this.pdf.getFontSize()):Math.floor(parseFloat(i)*this.pdf.internal.scaleFactor),this.pdf.setFontSize(i);var s=function(t){var e,r,n=[],i=t.trim();if(\"\"===i)return Dt;if(i in Ft)return[Ft[i]];for(;\"\"!==i;){switch(r=null,e=(i=Ct(i)).charAt(0)){case'\"':case\"'\":r=jt(i.substring(1),e);break;default:r=Ot(i)}if(null===r)return Dt;if(n.push(r[0]),\"\"!==(i=Ct(r[1]))&&\",\"!==i.charAt(0))return Dt;i=i.replace(/^,/,\"\")}return n}(a);if(this.fontFaces){var c=function(t,e){var r=t.getFontList(),n=JSON.stringify(r);if(null===l||d!==n){var i=function(t){var e=[];return Object.keys(t).forEach(function(r){t[r].forEach(function(t){var n=null;switch(t){case\"bold\":n={family:r,weight:\"bold\"};break;case\"italic\":n={family:r,style:\"italic\"};break;case\"bolditalic\":n={family:r,weight:\"bold\",style:\"italic\"};break;case\"\":case\"normal\":n={family:r}}null!==n&&(n.ref={name:r,style:t},e.push(n))})}),e}(r);l=function(t){for(var e={},r=0;r<t.length;++r){var n=_t(t[r]),i=n.family,a=n.stretch,o=n.style,s=n.weight;e[i]=e[i]||{},e[i][a]=e[i][a]||{},e[i][a][o]=e[i][a][o]||{},e[i][a][o][s]=n}return e}(i.concat(e)),d=n}return l}(this.pdf,this.fontFaces),u=s.map(function(t){return{family:t,stretch:\"normal\",weight:n,style:r}}),h=function(t,e,r){for(var n=(r=r||{}).defaultFontFamily||\"times\",i=Object.assign({},kt,r.genericFontFamilies||{}),a=null,o=null,s=0;s<e.length;++s)if(i[(a=_t(e[s])).family]&&(a.family=i[a.family]),t.hasOwnProperty(a.family)){o=t[a.family];break}if(!(o=o||t[n]))throw new Error(\"Could not find a font-family for the rule '\"+It(a)+\"' and default family '\"+n+\"'.\");if(o=function(t,e){if(e[t])return e[t];var r=xt[t],n=r<=xt.normal?-1:1,i=Pt(e,Lt,r,n);if(!i)throw new Error(\"Could not find a matching font-stretch value for \"+t);return i}(a.stretch,o),o=function(t,e){if(e[t])return e[t];for(var r=Nt[t],n=0;n<r.length;++n)if(e[r[n]])return e[r[n]];throw new Error(\"Could not find a matching font-style for \"+t)}(a.style,o),!(o=function(t,e){if(e[t])return e[t];if(400===t&&e[500])return e[500];if(500===t&&e[400])return e[400];var r=St[t],n=Pt(e,At,r,t<400?-1:1);if(!n)throw new Error(\"Could not find a matching font-weight for value \"+t);return n}(a.weight,o)))throw new Error(\"Failed to resolve a font for the rule '\"+It(a)+\"'.\");return o}(c,u);this.pdf.setFont(h.ref.name,h.ref.style)}else{var f=\"\";(\"bold\"===n||parseInt(n,10)>=700||\"bold\"===r)&&(f=\"bold\"),\"italic\"===r&&(f+=\"italic\"),0===f.length&&(f=\"normal\");for(var p=\"\",g={arial:\"Helvetica\",Arial:\"Helvetica\",verdana:\"Helvetica\",Verdana:\"Helvetica\",helvetica:\"Helvetica\",Helvetica:\"Helvetica\",\"sans-serif\":\"Helvetica\",fixed:\"Courier\",monospace:\"Courier\",terminal:\"Courier\",cursive:\"Times\",fantasy:\"Times\",serif:\"Times\"},m=0;m<s.length;m++){if(void 0!==this.pdf.internal.getFont(s[m],f,{noFallback:!0,disableWarning:!0})){p=s[m];break}if(\"bolditalic\"===f&&void 0!==this.pdf.internal.getFont(s[m],\"bold\",{noFallback:!0,disableWarning:!0}))p=s[m],f=\"bold\";else if(void 0!==this.pdf.internal.getFont(s[m],\"normal\",{noFallback:!0,disableWarning:!0})){p=s[m],f=\"normal\";break}}if(\"\"===p)for(var v=0;v<s.length;v++)if(g[s[v]]){p=g[s[v]];break}p=\"\"===p?\"Times\":p,this.pdf.setFont(p,f)}}}}),Object.defineProperty(this,\"globalCompositeOperation\",{get:function(){return this.ctx.globalCompositeOperation},set:function(t){this.ctx.globalCompositeOperation=t}}),Object.defineProperty(this,\"globalAlpha\",{get:function(){return this.ctx.globalAlpha},set:function(t){this.ctx.globalAlpha=t}}),Object.defineProperty(this,\"lineDashOffset\",{get:function(){return this.ctx.lineDashOffset},set:function(t){this.ctx.lineDashOffset=t,D.call(this)}}),Object.defineProperty(this,\"lineDash\",{get:function(){return this.ctx.lineDash},set:function(t){this.ctx.lineDash=t,D.call(this)}}),Object.defineProperty(this,\"ignoreClearRect\",{get:function(){return this.ctx.ignoreClearRect},set:function(t){this.ctx.ignoreClearRect=Boolean(t)}})};d.prototype.setLineDash=function(t){this.lineDash=t},d.prototype.getLineDash=function(){return this.lineDash.length%2?this.lineDash.concat(this.lineDash):this.lineDash.slice()},d.prototype.fill=function(){L.call(this,\"fill\",!1)},d.prototype.stroke=function(){L.call(this,\"stroke\",!1)},d.prototype.beginPath=function(){this.path=[{type:\"begin\"}]},d.prototype.moveTo=function(t,e){if(isNaN(t)||isNaN(e))throw s.error(\"jsPDF.context2d.moveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");var r=this.ctx.transform.applyToPoint(new c(t,e));this.path.push({type:\"mt\",x:r.x,y:r.y}),this.ctx.lastPoint=new c(t,e)},d.prototype.closePath=function(){var t=new c(0,0),e=0;for(e=this.path.length-1;-1!==e;e--)if(\"begin\"===this.path[e].type&&\"object\"==typeof this.path[e+1]&&\"number\"==typeof this.path[e+1].x){t=new c(this.path[e+1].x,this.path[e+1].y);break}this.path.push({type:\"close\"}),this.ctx.lastPoint=new c(t.x,t.y)},d.prototype.lineTo=function(t,e){if(isNaN(t)||isNaN(e))throw s.error(\"jsPDF.context2d.lineTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");var r=this.ctx.transform.applyToPoint(new c(t,e));this.path.push({type:\"lt\",x:r.x,y:r.y}),this.ctx.lastPoint=new c(r.x,r.y)},d.prototype.clip=function(){this.ctx.clip_path=JSON.parse(JSON.stringify(this.path)),L.call(this,null,!0)},d.prototype.quadraticCurveTo=function(t,e,r,n){if(isNaN(r)||isNaN(n)||isNaN(t)||isNaN(e))throw s.error(\"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\");var i=this.ctx.transform.applyToPoint(new c(r,n)),a=this.ctx.transform.applyToPoint(new c(t,e));this.path.push({type:\"qct\",x1:a.x,y1:a.y,x:i.x,y:i.y}),this.ctx.lastPoint=new c(i.x,i.y)},d.prototype.bezierCurveTo=function(t,e,r,n,i,a){if(isNaN(i)||isNaN(a)||isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw s.error(\"jsPDF.context2d.bezierCurveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\");var o=this.ctx.transform.applyToPoint(new c(i,a)),u=this.ctx.transform.applyToPoint(new c(t,e)),l=this.ctx.transform.applyToPoint(new c(r,n));this.path.push({type:\"bct\",x1:u.x,y1:u.y,x2:l.x,y2:l.y,x:o.x,y:o.y}),this.ctx.lastPoint=new c(o.x,o.y)},d.prototype.arc=function(t,e,r,n,i,a){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i))throw s.error(\"jsPDF.context2d.arc: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");if(a=Boolean(a),!this.ctx.transform.isIdentity){var o=this.ctx.transform.applyToPoint(new c(t,e));t=o.x,e=o.y;var u=this.ctx.transform.applyToPoint(new c(0,r)),l=this.ctx.transform.applyToPoint(new c(0,0));r=Math.sqrt(Math.pow(u.x-l.x,2)+Math.pow(u.y-l.y,2))}Math.abs(i-n)>=2*Math.PI&&(n=0,i=2*Math.PI),this.path.push({type:\"arc\",x:t,y:e,radius:r,startAngle:n,endAngle:i,counterclockwise:a})},d.prototype.arcTo=function(t,e,r,n,i){throw new Error(\"arcTo not implemented.\")},d.prototype.rect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw s.error(\"jsPDF.context2d.rect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");this.moveTo(t,e),this.lineTo(t+r,e),this.lineTo(t+r,e+n),this.lineTo(t,e+n),this.lineTo(t,e),this.lineTo(t+r,e),this.lineTo(t,e)},d.prototype.fillRect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw s.error(\"jsPDF.context2d.fillRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");if(!g.call(this)){var i={};\"butt\"!==this.lineCap&&(i.lineCap=this.lineCap,this.lineCap=\"butt\"),\"miter\"!==this.lineJoin&&(i.lineJoin=this.lineJoin,this.lineJoin=\"miter\"),this.beginPath(),this.rect(t,e,r,n),this.fill(),i.hasOwnProperty(\"lineCap\")&&(this.lineCap=i.lineCap),i.hasOwnProperty(\"lineJoin\")&&(this.lineJoin=i.lineJoin)}},d.prototype.strokeRect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw s.error(\"jsPDF.context2d.strokeRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");m.call(this)||(this.beginPath(),this.rect(t,e,r,n),this.stroke())},d.prototype.clearRect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw s.error(\"jsPDF.context2d.clearRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");this.ignoreClearRect||(this.fillStyle=\"#ffffff\",this.fillRect(t,e,r,n))},d.prototype.save=function(t){t=\"boolean\"!=typeof t||t;for(var e=this.pdf.internal.getCurrentPageInfo().pageNumber,r=0;r<this.pdf.internal.getNumberOfPages();r++)this.pdf.setPage(r+1),this.pdf.internal.out(\"q\");if(this.pdf.setPage(e),t){this.ctx.fontSize=this.pdf.internal.getFontSize();var n=new f(this.ctx);this.ctxStack.push(this.ctx),this.ctx=n}},d.prototype.restore=function(t){t=\"boolean\"!=typeof t||t;for(var e=this.pdf.internal.getCurrentPageInfo().pageNumber,r=0;r<this.pdf.internal.getNumberOfPages();r++)this.pdf.setPage(r+1),this.pdf.internal.out(\"Q\");this.pdf.setPage(e),t&&0!==this.ctxStack.length&&(this.ctx=this.ctxStack.pop(),this.fillStyle=this.ctx.fillStyle,this.strokeStyle=this.ctx.strokeStyle,this.font=this.ctx.font,this.lineCap=this.ctx.lineCap,this.lineWidth=this.ctx.lineWidth,this.lineJoin=this.ctx.lineJoin,this.lineDash=this.ctx.lineDash,this.lineDashOffset=this.ctx.lineDashOffset)},d.prototype.toDataURL=function(){throw new Error(\"toDataUrl not implemented.\")};var p=function(t){var e,r,i,a;if(!0===t.isCanvasGradient&&(t=t.getColor()),!t)return{r:0,g:0,b:0,a:0,style:t};if(/transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/.test(t))e=0,r=0,i=0,a=0;else{var o=/rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/.exec(t);if(null!==o)e=parseInt(o[1]),r=parseInt(o[2]),i=parseInt(o[3]),a=1;else if(null!==(o=/rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/.exec(t)))e=parseInt(o[1]),r=parseInt(o[2]),i=parseInt(o[3]),a=parseFloat(o[4]);else{if(a=1,\"string\"==typeof t&&\"#\"!==t.charAt(0)){var s=new n(t);t=s.ok?s.toHex():\"#000000\"}4===t.length?(e=t.substring(1,2),e+=e,r=t.substring(2,3),r+=r,i=t.substring(3,4),i+=i):(e=t.substring(1,3),r=t.substring(3,5),i=t.substring(5,7)),e=parseInt(e,16),r=parseInt(r,16),i=parseInt(i,16)}}return{r:e,g:r,b:i,a,style:t}},g=function(){return this.ctx.isFillTransparent||0==this.globalAlpha},m=function(){return Boolean(this.ctx.isStrokeTransparent||0==this.globalAlpha)};d.prototype.fillText=function(t,e,r,n){if(isNaN(e)||isNaN(r)||\"string\"!=typeof t)throw s.error(\"jsPDF.context2d.fillText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");if(n=isNaN(n)?void 0:n,!g.call(this)){var i=M(this.ctx.transform.rotation),a=this.ctx.transform.scaleX;I.call(this,{text:t,x:e,y:r,scale:a,angle:i,align:this.textAlign,maxWidth:n})}},d.prototype.strokeText=function(t,e,r,n){if(isNaN(e)||isNaN(r)||\"string\"!=typeof t)throw s.error(\"jsPDF.context2d.strokeText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");if(!m.call(this)){n=isNaN(n)?void 0:n;var i=M(this.ctx.transform.rotation),a=this.ctx.transform.scaleX;I.call(this,{text:t,x:e,y:r,scale:a,renderingMode:\"stroke\",angle:i,align:this.textAlign,maxWidth:n})}},d.prototype.measureText=function(t){if(\"string\"!=typeof t)throw s.error(\"jsPDF.context2d.measureText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.measureText\");var e=this.pdf,r=this.pdf.internal.scaleFactor,n=e.internal.getFontSize(),i=e.getStringUnitWidth(t)*n/e.internal.scaleFactor;return new function(t){var e=(t=t||{}).width||0;return Object.defineProperty(this,\"width\",{get:function(){return e}}),this}({width:i*=Math.round(96*r/72*1e4)/1e4})},d.prototype.scale=function(t,e){if(isNaN(t)||isNaN(e))throw s.error(\"jsPDF.context2d.scale: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");var r=new l(t,0,0,e,0,0);this.ctx.transform=this.ctx.transform.multiply(r)},d.prototype.rotate=function(t){if(isNaN(t))throw s.error(\"jsPDF.context2d.rotate: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");var e=new l(Math.cos(t),Math.sin(t),-Math.sin(t),Math.cos(t),0,0);this.ctx.transform=this.ctx.transform.multiply(e)},d.prototype.translate=function(t,e){if(isNaN(t)||isNaN(e))throw s.error(\"jsPDF.context2d.translate: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");var r=new l(1,0,0,1,t,e);this.ctx.transform=this.ctx.transform.multiply(r)},d.prototype.transform=function(t,e,r,n,i,a){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i)||isNaN(a))throw s.error(\"jsPDF.context2d.transform: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");var o=new l(t,e,r,n,i,a);this.ctx.transform=this.ctx.transform.multiply(o)},d.prototype.setTransform=function(t,e,r,n,i,a){t=isNaN(t)?1:t,e=isNaN(e)?0:e,r=isNaN(r)?0:r,n=isNaN(n)?1:n,i=isNaN(i)?0:i,a=isNaN(a)?0:a,this.ctx.transform=new l(t,e,r,n,i,a)};var v=function(){return this.margin[0]>0||this.margin[1]>0||this.margin[2]>0||this.margin[3]>0};d.prototype.drawImage=function(t,e,r,n,i,a,o,s,c){var h=this.pdf.getImageProperties(t),f=1,d=1,p=1,g=1;void 0!==n&&void 0!==s&&(p=s/n,g=c/i,f=h.width/n*s/n,d=h.height/i*c/i),void 0===a&&(a=e,o=r,e=0,r=0),void 0!==n&&void 0===s&&(s=n,c=i),void 0===n&&void 0===s&&(s=h.width,c=h.height);var m=this.ctx.transform.decompose(),y=M(m.rotate.shx),L=new l,A=(L=(L=(L=L.multiply(m.translate)).multiply(m.skew)).multiply(m.scale)).applyToRectangle(new u(a-e*p,o-r*g,n*f,i*d));if(this.autoPaging){for(var S,_=b.call(this,A),P=[],k=0;k<_.length;k+=1)-1===P.indexOf(_[k])&&P.push(_[k]);N(P);for(var F=P[0],I=P[P.length-1],C=F;C<I+1;C++){this.pdf.setPage(C);var j=this.pdf.internal.pageSize.width-this.margin[3]-this.margin[1],O=1===C?this.posY+this.margin[0]:this.margin[0],B=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],q=this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2],E=1===C?0:B+(C-2)*q;if(0!==this.ctx.clip_path.length){var R=this.path;S=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=w(S,this.posX+this.margin[3],-E+O+this.ctx.prevPageLastElemOffset),x.call(this,\"fill\",!0),this.path=R}var D=JSON.parse(JSON.stringify(A));D=w([D],this.posX+this.margin[3],-E+O+this.ctx.prevPageLastElemOffset)[0];const e=(C>F||C<I)&&v.call(this);e&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],j,q,null).clip().discardPath()),this.pdf.addImage(t,\"JPEG\",D.x,D.y,D.w,D.h,null,null,y),e&&this.pdf.restoreGraphicsState()}}else this.pdf.addImage(t,\"JPEG\",A.x,A.y,A.w,A.h,null,null,y)};var b=function(t,e,r){var n=[];e=e||this.pdf.internal.pageSize.width,r=r||this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2];var i=this.posY+this.ctx.prevPageLastElemOffset;switch(t.type){default:case\"mt\":case\"lt\":n.push(Math.floor((t.y+i)/r)+1);break;case\"arc\":n.push(Math.floor((t.y+i-t.radius)/r)+1),n.push(Math.floor((t.y+i+t.radius)/r)+1);break;case\"qct\":var a=E(this.ctx.lastPoint.x,this.ctx.lastPoint.y,t.x1,t.y1,t.x,t.y);n.push(Math.floor((a.y+i)/r)+1),n.push(Math.floor((a.y+a.h+i)/r)+1);break;case\"bct\":var o=R(this.ctx.lastPoint.x,this.ctx.lastPoint.y,t.x1,t.y1,t.x2,t.y2,t.x,t.y);n.push(Math.floor((o.y+i)/r)+1),n.push(Math.floor((o.y+o.h+i)/r)+1);break;case\"rect\":n.push(Math.floor((t.y+i)/r)+1),n.push(Math.floor((t.y+t.h+i)/r)+1)}for(var s=0;s<n.length;s+=1)for(;this.pdf.internal.getNumberOfPages()<n[s];)y.call(this);return n},y=function(){var t=this.fillStyle,e=this.strokeStyle,r=this.font,n=this.lineCap,i=this.lineWidth,a=this.lineJoin;this.pdf.addPage(),this.fillStyle=t,this.strokeStyle=e,this.font=r,this.lineCap=n,this.lineWidth=i,this.lineJoin=a},w=function(t,e,r){for(var n=0;n<t.length;n++)switch(t[n].type){case\"bct\":t[n].x2+=e,t[n].y2+=r;case\"qct\":t[n].x1+=e,t[n].y1+=r;default:t[n].x+=e,t[n].y+=r}return t},N=function(t){return t.sort(function(t,e){return t-e})},L=function(t,e){var r=this.fillStyle,n=this.strokeStyle,i=this.lineCap,a=this.lineWidth,o=Math.abs(a*this.ctx.transform.scaleX),s=this.lineJoin;if(this.autoPaging){for(var c,u,l=JSON.parse(JSON.stringify(this.path)),h=JSON.parse(JSON.stringify(this.path)),f=[],d=0;d<h.length;d++)if(void 0!==h[d].x)for(var p=b.call(this,h[d]),g=0;g<p.length;g+=1)-1===f.indexOf(p[g])&&f.push(p[g]);for(var m=0;m<f.length;m++)for(;this.pdf.internal.getNumberOfPages()<f[m];)y.call(this);N(f);for(var L=f[0],A=f[f.length-1],S=L;S<A+1;S++){this.pdf.setPage(S),this.fillStyle=r,this.strokeStyle=n,this.lineCap=i,this.lineWidth=o,this.lineJoin=s;var _=this.pdf.internal.pageSize.width-this.margin[3]-this.margin[1],P=1===S?this.posY+this.margin[0]:this.margin[0],k=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],F=this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2],I=1===S?0:k+(S-2)*F;if(0!==this.ctx.clip_path.length){var C=this.path;c=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=w(c,this.posX+this.margin[3],-I+P+this.ctx.prevPageLastElemOffset),x.call(this,t,!0),this.path=C}if(u=JSON.parse(JSON.stringify(l)),this.path=w(u,this.posX+this.margin[3],-I+P+this.ctx.prevPageLastElemOffset),!1===e||0===S){const r=(S>L||S<A)&&v.call(this);r&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],_,F,null).clip().discardPath()),x.call(this,t,e),r&&this.pdf.restoreGraphicsState()}this.lineWidth=a}this.path=l}else this.lineWidth=o,x.call(this,t,e),this.lineWidth=a},x=function(t,e){if((\"stroke\"!==t||e||!m.call(this))&&(\"stroke\"===t||e||!g.call(this))){for(var r,n,i=[],a=this.path,o=0;o<a.length;o++){var s=a[o];switch(s.type){case\"begin\":i.push({begin:!0});break;case\"close\":i.push({close:!0});break;case\"mt\":i.push({start:s,deltas:[],abs:[]});break;case\"lt\":var c=i.length;if(a[o-1]&&!isNaN(a[o-1].x)&&(r=[s.x-a[o-1].x,s.y-a[o-1].y],c>0))for(;c>=0;c--)if(!0!==i[c-1].close&&!0!==i[c-1].begin){i[c-1].deltas.push(r),i[c-1].abs.push(s);break}break;case\"bct\":r=[s.x1-a[o-1].x,s.y1-a[o-1].y,s.x2-a[o-1].x,s.y2-a[o-1].y,s.x-a[o-1].x,s.y-a[o-1].y],i[i.length-1].deltas.push(r);break;case\"qct\":var u=a[o-1].x+2/3*(s.x1-a[o-1].x),l=a[o-1].y+2/3*(s.y1-a[o-1].y),h=s.x+2/3*(s.x1-s.x),f=s.y+2/3*(s.y1-s.y),d=s.x,p=s.y;r=[u-a[o-1].x,l-a[o-1].y,h-a[o-1].x,f-a[o-1].y,d-a[o-1].x,p-a[o-1].y],i[i.length-1].deltas.push(r);break;case\"arc\":i.push({deltas:[],abs:[],arc:!0}),Array.isArray(i[i.length-1].abs)&&i[i.length-1].abs.push(s)}}n=e?null:\"stroke\"===t?\"stroke\":\"fill\";for(var v=!1,b=0;b<i.length;b++)if(i[b].arc)for(var y=i[b].abs,w=0;w<y.length;w++){var N=y[w];\"arc\"===N.type?_.call(this,N.x,N.y,N.radius,N.startAngle,N.endAngle,N.counterclockwise,void 0,e,!v):C.call(this,N.x,N.y),v=!0}else if(!0===i[b].close)this.pdf.internal.out(\"h\"),v=!1;else if(!0!==i[b].begin){var L=i[b].start.x,x=i[b].start.y;j.call(this,i[b].deltas,L,x),v=!0}n&&P.call(this,n),e&&k.call(this)}},A=function(t){var e=this.pdf.internal.getFontSize()/this.pdf.internal.scaleFactor,r=e*(this.pdf.internal.getLineHeightFactor()-1);switch(this.ctx.textBaseline){case\"bottom\":return t-r;case\"top\":return t+e-r;case\"hanging\":return t+e-2*r;case\"middle\":return t+e/2-r;default:return t}},S=function(t){return t+this.pdf.internal.getFontSize()/this.pdf.internal.scaleFactor*(this.pdf.internal.getLineHeightFactor()-1)};d.prototype.createLinearGradient=function(){var t=function(){};return t.colorStops=[],t.addColorStop=function(t,e){this.colorStops.push([t,e])},t.getColor=function(){return 0===this.colorStops.length?\"#000000\":this.colorStops[0][1]},t.isCanvasGradient=!0,t},d.prototype.createPattern=function(){return this.createLinearGradient()},d.prototype.createRadialGradient=function(){return this.createLinearGradient()};var _=function(t,e,r,n,i,a,o,s,c){for(var u=B.call(this,r,n,i,a),l=0;l<u.length;l++){var h=u[l];0===l&&(c?F.call(this,h.x1+t,h.y1+e):C.call(this,h.x1+t,h.y1+e)),O.call(this,t,e,h.x2,h.y2,h.x3,h.y3,h.x4,h.y4)}s?k.call(this):P.call(this,o)},P=function(t){switch(t){case\"stroke\":this.pdf.internal.out(\"S\");break;case\"fill\":this.pdf.internal.out(\"f\")}},k=function(){this.pdf.clip(),this.pdf.discardPath()},F=function(t,e){this.pdf.internal.out(r(t)+\" \"+i(e)+\" m\")},I=function(t){var e;switch(t.align){case\"right\":case\"end\":e=\"right\";break;case\"center\":e=\"center\";break;default:e=\"left\"}var r,n,i,a=this.pdf.getTextDimensions(t.text),o=A.call(this,t.y),s=S.call(this,o)-a.h,h=this.ctx.transform.applyToPoint(new c(t.x,o));if(this.autoPaging){var f=this.ctx.transform.decompose(),d=new l;d=(d=(d=d.multiply(f.translate)).multiply(f.skew)).multiply(f.scale);for(var p=this.ctx.transform.applyToRectangle(new u(t.x,o,a.w,a.h)),g=d.applyToRectangle(new u(t.x,s,a.w,a.h)),m=b.call(this,g),y=[],L=0;L<m.length;L+=1)-1===y.indexOf(m[L])&&y.push(m[L]);N(y);for(var _=y[0],P=y[y.length-1],k=_;k<P+1;k++){this.pdf.setPage(k);var F=1===k?this.posY+this.margin[0]:this.margin[0],I=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],C=this.pdf.internal.pageSize.height-this.margin[2],j=C-this.margin[0],O=this.pdf.internal.pageSize.width-this.margin[1],B=O-this.margin[3],q=1===k?0:I+(k-2)*j;if(0!==this.ctx.clip_path.length){var M=this.path;r=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=w(r,this.posX+this.margin[3],-1*q+F),x.call(this,\"fill\",!0),this.path=M}var E=w([JSON.parse(JSON.stringify(g))],this.posX+this.margin[3],-q+F+this.ctx.prevPageLastElemOffset)[0];t.scale>=.01&&(n=this.pdf.internal.getFontSize(),this.pdf.setFontSize(n*t.scale),i=this.lineWidth,this.lineWidth=i*t.scale);var R=\"text\"!==this.autoPaging;if(R||E.y+E.h<=C){if(R||E.y>=F&&E.x<=O){var D=R?t.text:this.pdf.splitTextToSize(t.text,t.maxWidth||O-E.x)[0],T=w([JSON.parse(JSON.stringify(p))],this.posX+this.margin[3],-q+F+this.ctx.prevPageLastElemOffset)[0];const r=R&&(k>_||k<P)&&v.call(this);r&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],B,j,null).clip().discardPath()),this.pdf.text(D,T.x,T.y,{angle:t.angle,align:e,renderingMode:t.renderingMode}),r&&this.pdf.restoreGraphicsState()}}else E.y<C&&(this.ctx.prevPageLastElemOffset+=C-E.y);t.scale>=.01&&(this.pdf.setFontSize(n),this.lineWidth=i)}}else t.scale>=.01&&(n=this.pdf.internal.getFontSize(),this.pdf.setFontSize(n*t.scale),i=this.lineWidth,this.lineWidth=i*t.scale),this.pdf.text(t.text,h.x+this.posX,h.y+this.posY,{angle:t.angle,align:e,renderingMode:t.renderingMode,maxWidth:t.maxWidth}),t.scale>=.01&&(this.pdf.setFontSize(n),this.lineWidth=i)},C=function(t,e,n,a){n=n||0,a=a||0,this.pdf.internal.out(r(t+n)+\" \"+i(e+a)+\" l\")},j=function(t,e,r){return this.pdf.lines(t,e,r,null,null)},O=function(t,r,n,i,s,c,u,l){this.pdf.internal.out([e(a(n+t)),e(o(i+r)),e(a(s+t)),e(o(c+r)),e(a(u+t)),e(o(l+r)),\"c\"].join(\" \"))},B=function(t,e,r,n){for(var i=2*Math.PI,a=Math.PI/2;e>r;)e-=i;var o=Math.abs(r-e);o<i&&n&&(o=i-o);for(var s=[],c=n?-1:1,u=e;o>1e-5;){var l=u+c*Math.min(o,a);s.push(q.call(this,t,u,l)),o-=Math.abs(l-u),u=l}return s},q=function(t,e,r){var n=(r-e)/2,i=t*Math.cos(n),a=t*Math.sin(n),o=i,s=-a,c=o*o+s*s,u=c+o*i+s*a,l=4/3*(Math.sqrt(2*c*u)-u)/(o*a-s*i),h=o-l*s,f=s+l*o,d=h,p=-f,g=n+e,m=Math.cos(g),v=Math.sin(g);return{x1:t*Math.cos(e),y1:t*Math.sin(e),x2:h*m-f*v,y2:h*v+f*m,x3:d*m-p*v,y3:d*v+p*m,x4:t*Math.cos(r),y4:t*Math.sin(r)}},M=function(t){return 180*t/Math.PI},E=function(t,e,r,n,i,a){var o=t+.5*(r-t),s=e+.5*(n-e),c=i+.5*(r-i),l=a+.5*(n-a),h=Math.min(t,i,o,c),f=Math.max(t,i,o,c),d=Math.min(e,a,s,l),p=Math.max(e,a,s,l);return new u(h,d,f-h,p-d)},R=function(t,e,r,n,i,a,o,s){var c,l,h,f,d,p,g,m,v,b,y,w,N,L,x=r-t,A=n-e,S=i-r,_=a-n,P=o-i,k=s-a;for(l=0;l<41;l++)v=(g=(h=t+(c=l/40)*x)+c*((d=r+c*S)-h))+c*(d+c*(i+c*P-d)-g),b=(m=(f=e+c*A)+c*((p=n+c*_)-f))+c*(p+c*(a+c*k-p)-m),0==l?(y=v,w=b,N=v,L=b):(y=Math.min(y,v),w=Math.min(w,b),N=Math.max(N,v),L=Math.max(L,b));return new u(Math.round(y),Math.round(w),Math.round(N-y),Math.round(L-w))},D=function(){if(!this.prevLineDash&&!this.ctx.lineDash.length&&!this.ctx.lineDashOffset)return;const t=(e=this.ctx.lineDash,r=this.ctx.lineDashOffset,JSON.stringify({lineDash:e,lineDashOffset:r}));var e,r;this.prevLineDash!==t&&(this.pdf.setLineDash(this.ctx.lineDash,this.ctx.lineDashOffset),this.prevLineDash=t)}}(C.API),\n/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(e){var r=function(t){var e,r,n,i,a,o,s,c,u,l;for(/[^\\x00-\\xFF]/.test(t),r=[],n=0,i=(t+=e=\"\\0\\0\\0\\0\".slice(t.length%4||4)).length;i>n;n+=4)0!==(a=(t.charCodeAt(n)<<24)+(t.charCodeAt(n+1)<<16)+(t.charCodeAt(n+2)<<8)+t.charCodeAt(n+3))?(o=(a=((a=((a=((a=(a-(l=a%85))/85)-(u=a%85))/85)-(c=a%85))/85)-(s=a%85))/85)%85,r.push(o+33,s+33,c+33,u+33,l+33)):r.push(122);return function(t,e){for(var r=e;r>0;r--)t.pop()}(r,e.length),String.fromCharCode.apply(String,r)+\"~>\"},n=function(t){var e,r,n,i,a,o=String,s=\"length\",c=255,u=\"charCodeAt\",l=\"slice\",h=\"replace\";for(t[l](-2),t=t[l](0,-2)[h](/\\s/g,\"\")[h](\"z\",\"!!!!!\"),n=[],i=0,a=(t+=e=\"uuuuu\"[l](t[s]%5||5))[s];a>i;i+=5)r=52200625*(t[u](i)-33)+614125*(t[u](i+1)-33)+7225*(t[u](i+2)-33)+85*(t[u](i+3)-33)+(t[u](i+4)-33),n.push(c&r>>24,c&r>>16,c&r>>8,c&r);return function(t,e){for(var r=e;r>0;r--)t.pop()}(n,e[s]),o.fromCharCode.apply(o,n)},i=function(t){return t.split(\"\").map(function(t){return(\"0\"+t.charCodeAt().toString(16)).slice(-2)}).join(\"\")+\">\"},a=function(t){var e=new RegExp(/^([0-9A-Fa-f]{2})+$/);if(-1!==(t=t.replace(/\\s/g,\"\")).indexOf(\">\")&&(t=t.substr(0,t.indexOf(\">\"))),t.length%2&&(t+=\"0\"),!1===e.test(t))return\"\";for(var r=\"\",n=0;n<t.length;n+=2)r+=String.fromCharCode(\"0x\"+(t[n]+t[n+1]));return r},o=function(e){for(var r=new Uint8Array(e.length),n=e.length;n--;)r[n]=e.charCodeAt(n);return(r=t.zlibSync(r)).reduce(function(t,e){return t+String.fromCharCode(e)},\"\")};e.processDataByFilters=function(t,e){var s=0,c=t||\"\",u=[];for(\"string\"==typeof(e=e||[])&&(e=[e]),s=0;s<e.length;s+=1)switch(e[s]){case\"ASCII85Decode\":case\"/ASCII85Decode\":c=n(c),u.push(\"/ASCII85Encode\");break;case\"ASCII85Encode\":case\"/ASCII85Encode\":c=r(c),u.push(\"/ASCII85Decode\");break;case\"ASCIIHexDecode\":case\"/ASCIIHexDecode\":c=a(c),u.push(\"/ASCIIHexEncode\");break;case\"ASCIIHexEncode\":case\"/ASCIIHexEncode\":c=i(c),u.push(\"/ASCIIHexDecode\");break;case\"FlateEncode\":case\"/FlateEncode\":c=o(c),u.push(\"/FlateDecode\");break;default:throw new Error('The filter: \"'+e[s]+'\" is not implemented')}return{data:c,reverseChain:u.reverse().join(\" \")}}}(C.API),\n/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){function e(t,e,r){e=!1!==e;var n=void 0,i=__webpack_require__(/*! fs */ \"fs\"),a=__webpack_require__(/*! path */ \"path\");if(!process.permission&&!this.allowFsRead)throw new Error(\"Trying to read a file from local file system. To enable this feature either run node with the --permission and --allow-fs-read flags or set the jsPDF.allowFsRead property.\");try{t=i.realpathSync(a.resolve(t))}catch(o){return e?void 0:void r(void 0)}if(process.permission&&!process.permission.has(\"fs.read\",t))throw new Error(`Cannot read file '${t}'. Permission denied.`);if(this.allowFsRead&&!this.allowFsRead.some(e=>{const r=e.indexOf(\"*\");if(r>=0){const n=e.substring(0,r);let i=a.resolve(n);return n.endsWith(a.sep)&&!i.endsWith(a.sep)&&(i+=a.sep),t.startsWith(i)}return t===a.resolve(e)}))throw new Error(`Cannot read file '${t}'. Permission denied.`);if(e)try{n=i.readFileSync(t,{encoding:\"latin1\"})}catch(o){return}else i.readFile(t,{encoding:\"latin1\"},function(t,e){r&&(t&&r(void 0),r(e))});return n}t.loadFile=function(t,r,n){return e.call(this,t,r,n)},t.allowFsRead=void 0,t.loadImageFile=t.loadFile}(C.API),\n/**\n * @license\n * Copyright (c) 2018 Erik Koopmans\n * Released under the MIT License.\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){function e(){return(r.html2canvas?Promise.resolve(r.html2canvas): true?new Promise(function(t,e){try{t(__webpack_require__(/*! html2canvas */ \"(ssr)/./node_modules/html2canvas/dist/html2canvas.esm.js\"))}catch(r){e(r)}}):0).catch(function(t){return Promise.reject(new Error(\"Could not load html2canvas: \"+t))}).then(function(t){return t.default?t.default:t})}function n(){return(r.DOMPurify?Promise.resolve(r.DOMPurify): true?new Promise(function(t,e){try{t(__webpack_require__(/*! dompurify */ \"(ssr)/./node_modules/dompurify/dist/purify.cjs.js\"))}catch(r){e(r)}}):0).catch(function(t){return Promise.reject(new Error(\"Could not load dompurify: \"+t))}).then(function(t){return t.default?t.default:t})}var i=function(t){var e=typeof t;return\"undefined\"===e?\"undefined\":\"string\"===e||t instanceof String?\"string\":\"number\"===e||t instanceof Number?\"number\":\"function\"===e||t instanceof Function?\"function\":t&&t.constructor===Array?\"array\":t&&1===t.nodeType?\"element\":\"object\"===e?\"object\":\"unknown\"},a=function(t,e){var r=document.createElement(t);for(var n in e.className&&(r.className=e.className),e.innerHTML&&e.dompurify&&(r.innerHTML=e.dompurify.sanitize(e.innerHTML)),e.style)r.style[n]=e.style[n];return r},o=function(t,e){for(var r=3===t.nodeType?document.createTextNode(t.nodeValue):t.cloneNode(!1),n=t.firstChild;n;n=n.nextSibling)!0!==e&&1===n.nodeType&&\"SCRIPT\"===n.nodeName||r.appendChild(o(n,e));return 1===t.nodeType&&(\"CANVAS\"===t.nodeName?(r.width=t.width,r.height=t.height,r.getContext(\"2d\").drawImage(t,0,0)):\"TEXTAREA\"!==t.nodeName&&\"SELECT\"!==t.nodeName||(r.value=t.value),r.addEventListener(\"load\",function(){r.scrollTop=t.scrollTop,r.scrollLeft=t.scrollLeft},!0)),r},s=function t(e){var r=Object.assign(t.convert(Promise.resolve()),JSON.parse(JSON.stringify(t.template))),n=t.convert(Promise.resolve(),r);return(n=n.setProgress(1,t,1,[t])).set(e)};(s.prototype=Object.create(Promise.prototype)).constructor=s,s.convert=function(t,e){return t.__proto__=e||s.prototype,t},s.template={prop:{src:null,container:null,overlay:null,canvas:null,img:null,pdf:null,pageSize:null,callback:function(){}},progress:{val:0,state:null,n:0,stack:[]},opt:{filename:\"file.pdf\",margin:[0,0,0,0],enableLinks:!0,x:0,y:0,html2canvas:{},jsPDF:{},backgroundColor:\"transparent\"}},s.prototype.from=function(t,e){return this.then(function(){switch(e=e||function(t){switch(i(t)){case\"string\":return\"string\";case\"element\":return\"canvas\"===t.nodeName.toLowerCase()?\"canvas\":\"element\";default:return\"unknown\"}}(t),e){case\"string\":return this.then(n).then(function(e){return this.set({src:a(\"div\",{innerHTML:t,dompurify:e})})});case\"element\":return this.set({src:t});case\"canvas\":return this.set({canvas:t});case\"img\":return this.set({img:t});default:return this.error(\"Unknown source type.\")}})},s.prototype.to=function(t){switch(t){case\"container\":return this.toContainer();case\"canvas\":return this.toCanvas();case\"img\":return this.toImg();case\"pdf\":return this.toPdf();default:return this.error(\"Invalid target.\")}},s.prototype.toContainer=function(){return this.thenList([function(){return this.prop.src||this.error(\"Cannot duplicate - no source HTML.\")},function(){return this.prop.pageSize||this.setPageSize()}]).then(function(){var t={position:\"relative\",display:\"inline-block\",width:(\"number\"!=typeof this.opt.width||isNaN(this.opt.width)||\"number\"!=typeof this.opt.windowWidth||isNaN(this.opt.windowWidth)?Math.max(this.prop.src.clientWidth,this.prop.src.scrollWidth,this.prop.src.offsetWidth):this.opt.windowWidth)+\"px\",left:0,right:0,top:0,margin:\"auto\",backgroundColor:this.opt.backgroundColor},e=o(this.prop.src,this.opt.html2canvas.javascriptEnabled);\"BODY\"===e.tagName&&(t.height=Math.max(document.body.scrollHeight,document.body.offsetHeight,document.documentElement.clientHeight,document.documentElement.scrollHeight,document.documentElement.offsetHeight)+\"px\"),this.prop.overlay=a(\"div\",{className:\"html2pdf__overlay\",style:{position:\"fixed\",overflow:\"hidden\",zIndex:1e3,left:\"-100000px\",right:0,bottom:0,top:0}}),this.prop.container=a(\"div\",{className:\"html2pdf__container\",style:t}),this.prop.container.appendChild(e),this.prop.container.firstChild.appendChild(a(\"div\",{style:{clear:\"both\",border:\"0 none transparent\",margin:0,padding:0,height:0}})),this.prop.container.style.float=\"none\",this.prop.overlay.appendChild(this.prop.container),document.body.appendChild(this.prop.overlay),this.prop.container.firstChild.style.position=\"relative\",this.prop.container.height=Math.max(this.prop.container.firstChild.clientHeight,this.prop.container.firstChild.scrollHeight,this.prop.container.firstChild.offsetHeight)+\"px\"})},s.prototype.toCanvas=function(){var t=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(t).then(e).then(function(t){var e=Object.assign({},this.opt.html2canvas);return delete e.onrendered,t(this.prop.container,e)}).then(function(t){(this.opt.html2canvas.onrendered||function(){})(t),this.prop.canvas=t,document.body.removeChild(this.prop.overlay)})},s.prototype.toContext2d=function(){var t=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(t).then(e).then(function(t){var e=this.opt.jsPDF,r=this.opt.fontFaces,n=\"number\"!=typeof this.opt.width||isNaN(this.opt.width)||\"number\"!=typeof this.opt.windowWidth||isNaN(this.opt.windowWidth)?1:this.opt.width/this.opt.windowWidth,i=Object.assign({async:!0,allowTaint:!0,scale:n,scrollX:this.opt.scrollX||0,scrollY:this.opt.scrollY||0,backgroundColor:\"#ffffff\",imageTimeout:15e3,logging:!0,proxy:null,removeContainer:!0,foreignObjectRendering:!1,useCORS:!1},this.opt.html2canvas);if(delete i.onrendered,e.context2d.autoPaging=void 0===this.opt.autoPaging||this.opt.autoPaging,e.context2d.posX=this.opt.x,e.context2d.posY=this.opt.y,e.context2d.margin=this.opt.margin,e.context2d.fontFaces=r,r)for(var a=0;a<r.length;++a){var o=r[a],s=o.src.find(function(t){return\"truetype\"===t.format});s&&e.addFont(s.url,o.ref.name,o.ref.style)}return i.windowHeight=i.windowHeight||0,i.windowHeight=0==i.windowHeight?Math.max(this.prop.container.clientHeight,this.prop.container.scrollHeight,this.prop.container.offsetHeight):i.windowHeight,e.context2d.save(!0),t(this.prop.container,i)}).then(function(t){this.opt.jsPDF.context2d.restore(!0),(this.opt.html2canvas.onrendered||function(){})(t),this.prop.canvas=t,document.body.removeChild(this.prop.overlay)})},s.prototype.toImg=function(){return this.thenList([function(){return this.prop.canvas||this.toCanvas()}]).then(function(){var t=this.prop.canvas.toDataURL(\"image/\"+this.opt.image.type,this.opt.image.quality);this.prop.img=document.createElement(\"img\"),this.prop.img.src=t})},s.prototype.toPdf=function(){return this.thenList([function(){return this.toContext2d()}]).then(function(){this.prop.pdf=this.prop.pdf||this.opt.jsPDF})},s.prototype.output=function(t,e,r){return\"img\"===(r=r||\"pdf\").toLowerCase()||\"image\"===r.toLowerCase()?this.outputImg(t,e):this.outputPdf(t,e)},s.prototype.outputPdf=function(t,e){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).then(function(){return this.prop.pdf.output(t,e)})},s.prototype.outputImg=function(t){return this.thenList([function(){return this.prop.img||this.toImg()}]).then(function(){switch(t){case void 0:case\"img\":return this.prop.img;case\"datauristring\":case\"dataurlstring\":return this.prop.img.src;case\"datauri\":case\"dataurl\":return document.location.href=this.prop.img.src;default:throw'Image output type \"'+t+'\" is not supported.'}})},s.prototype.save=function(t){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).set(t?{filename:t}:null).then(function(){this.prop.pdf.save(this.opt.filename)})},s.prototype.doCallback=function(){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).then(function(){this.prop.callback(this.prop.pdf)})},s.prototype.set=function(t){if(\"object\"!==i(t))return this;var e=Object.keys(t||{}).map(function(e){if(e in s.template.prop)return function(){this.prop[e]=t[e]};switch(e){case\"margin\":return this.setMargin.bind(this,t.margin);case\"jsPDF\":return function(){return this.opt.jsPDF=t.jsPDF,this.setPageSize()};case\"pageSize\":return this.setPageSize.bind(this,t.pageSize);default:return function(){this.opt[e]=t[e]}}},this);return this.then(function(){return this.thenList(e)})},s.prototype.get=function(t,e){return this.then(function(){var r=t in s.template.prop?this.prop[t]:this.opt[t];return e?e(r):r})},s.prototype.setMargin=function(t){return this.then(function(){switch(i(t)){case\"number\":t=[t,t,t,t];case\"array\":if(2===t.length&&(t=[t[0],t[1],t[0],t[1]]),4===t.length)break;default:return this.error(\"Invalid margin array.\")}this.opt.margin=t}).then(this.setPageSize)},s.prototype.setPageSize=function(t){function e(t,e){return Math.floor(t*e/72*96)}return this.then(function(){(t=t||C.getPageSize(this.opt.jsPDF)).hasOwnProperty(\"inner\")||(t.inner={width:t.width-this.opt.margin[1]-this.opt.margin[3],height:t.height-this.opt.margin[0]-this.opt.margin[2]},t.inner.px={width:e(t.inner.width,t.k),height:e(t.inner.height,t.k)},t.inner.ratio=t.inner.height/t.inner.width),this.prop.pageSize=t})},s.prototype.setProgress=function(t,e,r,n){return null!=t&&(this.progress.val=t),null!=e&&(this.progress.state=e),null!=r&&(this.progress.n=r),null!=n&&(this.progress.stack=n),this.progress.ratio=this.progress.val/this.progress.state,this},s.prototype.updateProgress=function(t,e,r,n){return this.setProgress(t?this.progress.val+t:null,e||null,r?this.progress.n+r:null,n?this.progress.stack.concat(n):null)},s.prototype.then=function(t,e){var r=this;return this.thenCore(t,e,function(t,e){return r.updateProgress(null,null,1,[t]),Promise.prototype.then.call(this,function(e){return r.updateProgress(null,t),e}).then(t,e).then(function(t){return r.updateProgress(1),t})})},s.prototype.thenCore=function(t,e,r){r=r||Promise.prototype.then;var n=this;t&&(t=t.bind(n)),e&&(e=e.bind(n));var i=-1!==Promise.toString().indexOf(\"[native code]\")&&\"Promise\"===Promise.name?n:s.convert(Object.assign({},n),Promise.prototype),a=r.call(i,t,e);return s.convert(a,n.__proto__)},s.prototype.thenExternal=function(t,e){return Promise.prototype.then.call(this,t,e)},s.prototype.thenList=function(t){var e=this;return t.forEach(function(t){e=e.thenCore(t)}),e},s.prototype.catch=function(t){t&&(t=t.bind(this));var e=Promise.prototype.catch.call(this,t);return s.convert(e,this)},s.prototype.catchExternal=function(t){return Promise.prototype.catch.call(this,t)},s.prototype.error=function(t){return this.then(function(){throw new Error(t)})},s.prototype.using=s.prototype.set,s.prototype.saveAs=s.prototype.save,s.prototype.export=s.prototype.output,s.prototype.run=s.prototype.then,C.getPageSize=function(t,e,r){if(\"object\"==typeof t){var n=t;t=n.orientation,e=n.unit||e,r=n.format||r}e=e||\"mm\",r=r||\"a4\",t=(\"\"+(t||\"P\")).toLowerCase();var i,a=(\"\"+r).toLowerCase(),o={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],\"government-letter\":[576,756],legal:[612,1008],\"junior-legal\":[576,360],ledger:[1224,792],tabloid:[792,1224],\"credit-card\":[153,243]};switch(e){case\"pt\":i=1;break;case\"mm\":i=72/25.4;break;case\"cm\":i=72/2.54;break;case\"in\":i=72;break;case\"px\":i=.75;break;case\"pc\":case\"em\":i=12;break;case\"ex\":i=6;break;default:throw\"Invalid unit: \"+e}var s,c=0,u=0;if(o.hasOwnProperty(a))c=o[a][1]/i,u=o[a][0]/i;else try{c=r[1],u=r[0]}catch(l){throw new Error(\"Invalid format: \"+r)}if(\"p\"===t||\"portrait\"===t)t=\"p\",u>c&&(s=u,u=c,c=s);else{if(\"l\"!==t&&\"landscape\"!==t)throw\"Invalid orientation: \"+t;t=\"l\",c>u&&(s=u,u=c,c=s)}return{width:u,height:c,unit:e,k:i,orientation:t}},t.html=function(t,e){(e=e||{}).callback=e.callback||function(){},e.html2canvas=e.html2canvas||{},e.html2canvas.canvas=e.html2canvas.canvas||this.canvas,e.jsPDF=e.jsPDF||this,e.fontFaces=e.fontFaces?e.fontFaces.map(_t):null;var r=new s(e);return e.worker?r:r.from(t).doCallback()}}(C.API),C.API.addJS=function(t){var e,r;const n=function(t){let e=\"\";for(let r=0;r<t.length;r++){const n=t[r];if(\"(\"===n||\")\"===n){let i=0;for(let e=r-1;e>=0&&\"\\\\\"===t[e];e--)i++;e+=i%2==0?\"\\\\\"+n:n}else e+=n}return e}(t);return this.internal.events.subscribe(\"postPutResources\",function(){e=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/Names [(EmbeddedJS) \"+(e+1)+\" 0 R]\"),this.internal.out(\">>\"),this.internal.out(\"endobj\"),r=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/S /JavaScript\"),this.internal.out(\"/JS (\"+n+\")\"),this.internal.out(\">>\"),this.internal.out(\"endobj\")}),this.internal.events.subscribe(\"putCatalog\",function(){void 0!==e&&void 0!==r&&this.internal.out(\"/Names <</JavaScript \"+e+\" 0 R>>\")}),this},\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e;t.events.push([\"postPutResources\",function(){var t=this,r=/^(\\d+) 0 obj$/;if(this.outline.root.children.length>0)for(var n=t.outline.render().split(/\\r\\n/),i=0;i<n.length;i++){var a=n[i],o=r.exec(a);if(null!=o){var s=o[1];t.internal.newObjectDeferredBegin(s,!1)}t.internal.write(a)}if(this.outline.createNamedDestinations){var c=this.internal.pages.length,u=[];for(i=0;i<c;i++){var l=t.internal.newObject();u.push(l);var h=t.internal.getPageInfo(i+1);t.internal.write(\"<< /D[\"+h.objId+\" 0 R /XYZ null null null]>> endobj\")}var f=t.internal.newObject();for(t.internal.write(\"<< /Names [ \"),i=0;i<u.length;i++)t.internal.write(\"(page_\"+(i+1)+\")\"+u[i]+\" 0 R\");t.internal.write(\" ] >>\",\"endobj\"),e=t.internal.newObject(),t.internal.write(\"<< /Dests \"+f+\" 0 R\"),t.internal.write(\">>\",\"endobj\")}}]),t.events.push([\"putCatalog\",function(){var t=this;t.outline.root.children.length>0&&(t.internal.write(\"/Outlines\",this.outline.makeRef(this.outline.root)),this.outline.createNamedDestinations&&t.internal.write(\"/Names \"+e+\" 0 R\"))}]),t.events.push([\"initialized\",function(){var t=this;t.outline={createNamedDestinations:!1,root:{children:[]}},t.outline.add=function(t,e,r){var n={title:e,options:r,children:[]};return null==t&&(t=this.root),t.children.push(n),n},t.outline.render=function(){return this.ctx={},this.ctx.val=\"\",this.ctx.pdf=t,this.genIds_r(this.root),this.renderRoot(this.root),this.renderItems(this.root),this.ctx.val},t.outline.genIds_r=function(e){e.id=t.internal.newObjectDeferred();for(var r=0;r<e.children.length;r++)this.genIds_r(e.children[r])},t.outline.renderRoot=function(t){this.objStart(t),this.line(\"/Type /Outlines\"),t.children.length>0&&(this.line(\"/First \"+this.makeRef(t.children[0])),this.line(\"/Last \"+this.makeRef(t.children[t.children.length-1]))),this.line(\"/Count \"+this.count_r({count:0},t)),this.objEnd()},t.outline.renderItems=function(e){for(var r=this.ctx.pdf.internal.getVerticalCoordinateString,n=0;n<e.children.length;n++){var i=e.children[n];this.objStart(i),this.line(\"/Title \"+this.makeString(i.title)),this.line(\"/Parent \"+this.makeRef(e)),n>0&&this.line(\"/Prev \"+this.makeRef(e.children[n-1])),n<e.children.length-1&&this.line(\"/Next \"+this.makeRef(e.children[n+1])),i.children.length>0&&(this.line(\"/First \"+this.makeRef(i.children[0])),this.line(\"/Last \"+this.makeRef(i.children[i.children.length-1])));var a=this.count=this.count_r({count:0},i);if(a>0&&this.line(\"/Count \"+a),i.options&&i.options.pageNumber){var o=t.internal.getPageInfo(i.options.pageNumber);this.line(\"/Dest [\"+o.objId+\" 0 R /XYZ 0 \"+r(0)+\" 0]\")}this.objEnd()}for(var s=0;s<e.children.length;s++)this.renderItems(e.children[s])},t.outline.line=function(t){this.ctx.val+=t+\"\\r\\n\"},t.outline.makeRef=function(t){return t.id+\" 0 R\"},t.outline.makeString=function(e){return\"(\"+t.internal.pdfEscape(e)+\")\"},t.outline.objStart=function(t){this.ctx.val+=\"\\r\\n\"+t.id+\" 0 obj\\r\\n<<\\r\\n\"},t.outline.objEnd=function(){this.ctx.val+=\">> \\r\\nendobj\\r\\n\"},t.outline.count_r=function(t,e){for(var r=0;r<e.children.length;r++)t.count++,this.count_r(t,e.children[r]);return t.count}}])}(C.API),\n/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=[192,193,194,195,196,197,198,199];t.processJPEG=function(t,r,n,i,a,o){var s,c=this.decode.DCT_DECODE,u=null;if(\"string\"==typeof t||this.__addimage__.isArrayBuffer(t)||this.__addimage__.isArrayBufferView(t)){switch(t=a||t,t=this.__addimage__.isArrayBuffer(t)?new Uint8Array(t):t,s=function(t){for(var r,n=256*t.charCodeAt(4)+t.charCodeAt(5),i=t.length,a={width:0,height:0,numcomponents:1},o=4;o<i;o+=2){if(o+=n,-1!==e.indexOf(t.charCodeAt(o+1))){r=256*t.charCodeAt(o+5)+t.charCodeAt(o+6),a={width:256*t.charCodeAt(o+7)+t.charCodeAt(o+8),height:r,numcomponents:t.charCodeAt(o+9)};break}n=256*t.charCodeAt(o+2)+t.charCodeAt(o+3)}return a}(t=this.__addimage__.isArrayBufferView(t)?this.__addimage__.arrayBufferToBinaryString(t):t),s.numcomponents){case 1:o=this.color_spaces.DEVICE_GRAY;break;case 4:o=this.color_spaces.DEVICE_CMYK;break;case 3:o=this.color_spaces.DEVICE_RGB}u={data:t,width:s.width,height:s.height,colorSpace:o,bitsPerComponent:8,filter:c,index:r,alias:n}}return u}}(C.API),\n/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nC.API.processPNG=function(r,n,i,a){if(this.__addimage__.isArrayBuffer(r)&&(r=new Uint8Array(r)),!this.__addimage__.isArrayBufferView(r))return;const o=e.decode(r,{checkCrc:!0}),{width:s,height:c,channels:u,palette:l,depth:h}=o;let f;f=l&&1===u?function(t){const{width:e,height:r,data:n,palette:i,depth:a}=t;let o,s=!1,c=[],u=[],l=!1;let h=0;for(let f=0;f<i.length;f++){const[t,e,r,n]=i[f];c.push(t,e,r),null!=n&&(0===n?(h++,u.length<1&&u.push(f)):n<255&&(l=!0))}if(l||h>1){s=!0,u=void 0;const t=e*r;o=new Uint8Array(t);const c=new DataView(n.buffer);for(let e=0;e<t;e++){const t=Jt(c,e,a),[,,,r]=i[t];o[e]=r}}else 0===h&&(u=void 0);return{colorSpace:\"Indexed\",colorsPerPixel:1,sMaskBitsPerComponent:s?8:void 0,colorBytes:n,alphaBytes:o,needSMask:s,palette:c,mask:u}}(o):2===u||4===u?function(t){const{data:e,width:r,height:n,channels:i,depth:a}=t,o=2===i?\"DeviceGray\":\"DeviceRGB\",s=i-1,c=r*n,u=s,l=c*u,h=1*c,f=Math.ceil(l*a/8),d=Math.ceil(h*a/8),p=new Uint8Array(f),g=new Uint8Array(d),m=new DataView(e.buffer),v=new DataView(p.buffer),b=new DataView(g.buffer);let y=!1;for(let w=0;w<c;w++){const t=w*i;for(let r=0;r<u;r++)Xt(v,Jt(m,t+r,a),w*u+r,a);const e=Jt(m,t+u,a);e<(1<<a)-1&&(y=!0),Xt(b,e,1*w,a)}return{colorSpace:o,colorsPerPixel:s,sMaskBitsPerComponent:y?a:void 0,colorBytes:p,alphaBytes:g,needSMask:y}}(o):function(t){const{data:e,channels:r}=t,n=1===r?\"DeviceGray\":\"DeviceRGB\",i=\"DeviceGray\"===n?1:3;let a;return a=e instanceof Uint16Array?function(t){const e=t.length,r=new Uint8Array(2*e),n=new DataView(r.buffer,r.byteOffset,r.byteLength);for(let i=0;i<e;i++)n.setUint16(2*i,t[i],!1);return r}(e):e,{colorSpace:n,colorsPerPixel:i,colorBytes:a,needSMask:!1}}(o);const{colorSpace:d,colorsPerPixel:p,sMaskBitsPerComponent:g,colorBytes:m,alphaBytes:v,needSMask:b,palette:y,mask:w}=f;let N,L,x,A=null;return a!==C.API.image_compression.NONE&&\"function\"==typeof t.zlibSync?(A=function(t){let e;switch(t){case C.API.image_compression.FAST:e=11;break;case C.API.image_compression.MEDIUM:e=13;break;case C.API.image_compression.SLOW:e=14;break;default:e=12}return e}(a),N=this.decode.FLATE_DECODE,L=`/Predictor ${A} /Colors ${p} /BitsPerComponent ${h} /Columns ${s}`,r=Tt(m,Math.ceil(s*p*h/8),p,h,a),b&&(x=Tt(v,Math.ceil(s*g/8),1,g,a))):(N=void 0,L=void 0,r=m,b&&(x=v)),(this.__addimage__.isArrayBuffer(r)||this.__addimage__.isArrayBufferView(r))&&(r=this.__addimage__.arrayBufferToBinaryString(r)),(x&&this.__addimage__.isArrayBuffer(x)||this.__addimage__.isArrayBufferView(x))&&(x=this.__addimage__.arrayBufferToBinaryString(x)),{alias:i,data:r,index:n,filter:N,decodeParameters:L,transparency:w,palette:y,sMask:x,predictor:A,width:s,height:c,bitsPerComponent:h,sMaskBitsPerComponent:g,colorSpace:d}},function(t){t.processGIF89A=function(e,r,n,i){var a=new $t(e),o=a.width,s=a.height,c=[];a.decodeAndBlitFrameRGBA(0,c);var u={data:c,width:o,height:s},l=new Qt(100).encode(u,100);return t.processJPEG.call(this,l,r,n,i)},t.processGIF87A=t.processGIF89A}(C.API),te.prototype.parseHeader=function(){if(this.fileSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.reserved=this.datav.getUint32(this.pos,!0),this.pos+=4,this.offset=this.datav.getUint32(this.pos,!0),this.pos+=4,this.headerSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.width=this.datav.getUint32(this.pos,!0),this.pos+=4,this.height=this.datav.getInt32(this.pos,!0),this.pos+=4,this.planes=this.datav.getUint16(this.pos,!0),this.pos+=2,this.bitPP=this.datav.getUint16(this.pos,!0),this.pos+=2,this.compress=this.datav.getUint32(this.pos,!0),this.pos+=4,this.rawSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.hr=this.datav.getUint32(this.pos,!0),this.pos+=4,this.vr=this.datav.getUint32(this.pos,!0),this.pos+=4,this.colors=this.datav.getUint32(this.pos,!0),this.pos+=4,this.importantColors=this.datav.getUint32(this.pos,!0),this.pos+=4,16===this.bitPP&&this.is_with_alpha&&(this.bitPP=15),this.bitPP<15){var t=0===this.colors?1<<this.bitPP:this.colors;this.palette=new Array(t);for(var e=0;e<t;e++){var r=this.datav.getUint8(this.pos++,!0),n=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0);this.palette[e]={red:i,green:n,blue:r,quad:a}}}this.height<0&&(this.height*=-1,this.bottom_up=!1)},te.prototype.parseBGR=function(){this.pos=this.offset;var t=\"bit\"+this.bitPP,e=this.width*this.height*4;if(e>536870912)throw new Error(\"Image dimensions exceed 512MB, which is too large.\");this.data=new Uint8Array(e);try{this[t]()}catch(r){s.log(\"bit decode error:\"+r)}},te.prototype.bit1=function(){var t,e=Math.ceil(this.width/8),r=e%4;for(t=this.height-1;t>=0;t--){for(var n=this.bottom_up?t:this.height-1-t,i=0;i<e;i++)for(var a=this.datav.getUint8(this.pos++,!0),o=n*this.width*4+8*i*4,s=0;s<8&&8*i+s<this.width;s++){var c=this.palette[a>>7-s&1];this.data[o+4*s]=c.blue,this.data[o+4*s+1]=c.green,this.data[o+4*s+2]=c.red,this.data[o+4*s+3]=255}0!==r&&(this.pos+=4-r)}},te.prototype.bit4=function(){for(var t=Math.ceil(this.width/2),e=t%4,r=this.height-1;r>=0;r--){for(var n=this.bottom_up?r:this.height-1-r,i=0;i<t;i++){var a=this.datav.getUint8(this.pos++,!0),o=n*this.width*4+2*i*4,s=a>>4,c=15&a,u=this.palette[s];if(this.data[o]=u.blue,this.data[o+1]=u.green,this.data[o+2]=u.red,this.data[o+3]=255,2*i+1>=this.width)break;u=this.palette[c],this.data[o+4]=u.blue,this.data[o+4+1]=u.green,this.data[o+4+2]=u.red,this.data[o+4+3]=255}0!==e&&(this.pos+=4-e)}},te.prototype.bit8=function(){for(var t=this.width%4,e=this.height-1;e>=0;e--){for(var r=this.bottom_up?e:this.height-1-e,n=0;n<this.width;n++){var i=this.datav.getUint8(this.pos++,!0),a=r*this.width*4+4*n;if(i<this.palette.length){var o=this.palette[i];this.data[a]=o.red,this.data[a+1]=o.green,this.data[a+2]=o.blue,this.data[a+3]=255}else this.data[a]=255,this.data[a+1]=255,this.data[a+2]=255,this.data[a+3]=255}0!==t&&(this.pos+=4-t)}},te.prototype.bit15=function(){for(var t=this.width%3,e=parseInt(\"11111\",2),r=this.height-1;r>=0;r--){for(var n=this.bottom_up?r:this.height-1-r,i=0;i<this.width;i++){var a=this.datav.getUint16(this.pos,!0);this.pos+=2;var o=(a&e)/e*255|0,s=(a>>5&e)/e*255|0,c=(a>>10&e)/e*255|0,u=a>>15?255:0,l=n*this.width*4+4*i;this.data[l]=c,this.data[l+1]=s,this.data[l+2]=o,this.data[l+3]=u}this.pos+=t}},te.prototype.bit16=function(){for(var t=this.width%3,e=parseInt(\"11111\",2),r=parseInt(\"111111\",2),n=this.height-1;n>=0;n--){for(var i=this.bottom_up?n:this.height-1-n,a=0;a<this.width;a++){var o=this.datav.getUint16(this.pos,!0);this.pos+=2;var s=(o&e)/e*255|0,c=(o>>5&r)/r*255|0,u=(o>>11)/e*255|0,l=i*this.width*4+4*a;this.data[l]=u,this.data[l+1]=c,this.data[l+2]=s,this.data[l+3]=255}this.pos+=t}},te.prototype.bit24=function(){for(var t=this.height-1;t>=0;t--){for(var e=this.bottom_up?t:this.height-1-t,r=0;r<this.width;r++){var n=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0),o=e*this.width*4+4*r;this.data[o]=a,this.data[o+1]=i,this.data[o+2]=n,this.data[o+3]=255}this.pos+=this.width%4}},te.prototype.bit32=function(){for(var t=this.height-1;t>=0;t--)for(var e=this.bottom_up?t:this.height-1-t,r=0;r<this.width;r++){var n=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0),o=this.datav.getUint8(this.pos++,!0),s=e*this.width*4+4*r;this.data[s]=a,this.data[s+1]=i,this.data[s+2]=n,this.data[s+3]=o}},te.prototype.getData=function(){return this.data},\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){t.processBMP=function(e,r,n,i){var a=new te(e,!1),o=a.width,s=a.height,c={data:a.getData(),width:o,height:s},u=new Qt(100).encode(c,100);return t.processJPEG.call(this,u,r,n,i)}}(C.API),ee.prototype.getData=function(){return this.data},\n/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){t.processWEBP=function(e,r,n,i){var a=new ee(e),o=a.width,s=a.height,c={data:a.getData(),width:o,height:s},u=new Qt(100).encode(c,100);return t.processJPEG.call(this,u,r,n,i)}}(C.API),C.API.processRGBA=function(t,e,r){for(var n=t.data,i=n.length,a=new Uint8Array(i/4*3),o=new Uint8Array(i/4),s=0,c=0,u=0;u<i;u+=4){var l=n[u],h=n[u+1],f=n[u+2],d=n[u+3];a[s++]=l,a[s++]=h,a[s++]=f,o[c++]=d}var p=this.__addimage__.arrayBufferToBinaryString(a);return{alpha:this.__addimage__.arrayBufferToBinaryString(o),data:p,index:e,alias:r,colorSpace:\"DeviceRGB\",bitsPerComponent:8,width:t.width,height:t.height}},C.API.setLanguage=function(t){return void 0===this.internal.languageSettings&&(this.internal.languageSettings={},this.internal.languageSettings.isSubscribed=!1),void 0!=={af:\"Afrikaans\",sq:\"Albanian\",ar:\"Arabic (Standard)\",\"ar-DZ\":\"Arabic (Algeria)\",\"ar-BH\":\"Arabic (Bahrain)\",\"ar-EG\":\"Arabic (Egypt)\",\"ar-IQ\":\"Arabic (Iraq)\",\"ar-JO\":\"Arabic (Jordan)\",\"ar-KW\":\"Arabic (Kuwait)\",\"ar-LB\":\"Arabic (Lebanon)\",\"ar-LY\":\"Arabic (Libya)\",\"ar-MA\":\"Arabic (Morocco)\",\"ar-OM\":\"Arabic (Oman)\",\"ar-QA\":\"Arabic (Qatar)\",\"ar-SA\":\"Arabic (Saudi Arabia)\",\"ar-SY\":\"Arabic (Syria)\",\"ar-TN\":\"Arabic (Tunisia)\",\"ar-AE\":\"Arabic (U.A.E.)\",\"ar-YE\":\"Arabic (Yemen)\",an:\"Aragonese\",hy:\"Armenian\",as:\"Assamese\",ast:\"Asturian\",az:\"Azerbaijani\",eu:\"Basque\",be:\"Belarusian\",bn:\"Bengali\",bs:\"Bosnian\",br:\"Breton\",bg:\"Bulgarian\",my:\"Burmese\",ca:\"Catalan\",ch:\"Chamorro\",ce:\"Chechen\",zh:\"Chinese\",\"zh-HK\":\"Chinese (Hong Kong)\",\"zh-CN\":\"Chinese (PRC)\",\"zh-SG\":\"Chinese (Singapore)\",\"zh-TW\":\"Chinese (Taiwan)\",cv:\"Chuvash\",co:\"Corsican\",cr:\"Cree\",hr:\"Croatian\",cs:\"Czech\",da:\"Danish\",nl:\"Dutch (Standard)\",\"nl-BE\":\"Dutch (Belgian)\",en:\"English\",\"en-AU\":\"English (Australia)\",\"en-BZ\":\"English (Belize)\",\"en-CA\":\"English (Canada)\",\"en-IE\":\"English (Ireland)\",\"en-JM\":\"English (Jamaica)\",\"en-NZ\":\"English (New Zealand)\",\"en-PH\":\"English (Philippines)\",\"en-ZA\":\"English (South Africa)\",\"en-TT\":\"English (Trinidad & Tobago)\",\"en-GB\":\"English (United Kingdom)\",\"en-US\":\"English (United States)\",\"en-ZW\":\"English (Zimbabwe)\",eo:\"Esperanto\",et:\"Estonian\",fo:\"Faeroese\",fj:\"Fijian\",fi:\"Finnish\",fr:\"French (Standard)\",\"fr-BE\":\"French (Belgium)\",\"fr-CA\":\"French (Canada)\",\"fr-FR\":\"French (France)\",\"fr-LU\":\"French (Luxembourg)\",\"fr-MC\":\"French (Monaco)\",\"fr-CH\":\"French (Switzerland)\",fy:\"Frisian\",fur:\"Friulian\",gd:\"Gaelic (Scots)\",\"gd-IE\":\"Gaelic (Irish)\",gl:\"Galacian\",ka:\"Georgian\",de:\"German (Standard)\",\"de-AT\":\"German (Austria)\",\"de-DE\":\"German (Germany)\",\"de-LI\":\"German (Liechtenstein)\",\"de-LU\":\"German (Luxembourg)\",\"de-CH\":\"German (Switzerland)\",el:\"Greek\",gu:\"Gujurati\",ht:\"Haitian\",he:\"Hebrew\",hi:\"Hindi\",hu:\"Hungarian\",is:\"Icelandic\",id:\"Indonesian\",iu:\"Inuktitut\",ga:\"Irish\",it:\"Italian (Standard)\",\"it-CH\":\"Italian (Switzerland)\",ja:\"Japanese\",kn:\"Kannada\",ks:\"Kashmiri\",kk:\"Kazakh\",km:\"Khmer\",ky:\"Kirghiz\",tlh:\"Klingon\",ko:\"Korean\",\"ko-KP\":\"Korean (North Korea)\",\"ko-KR\":\"Korean (South Korea)\",la:\"Latin\",lv:\"Latvian\",lt:\"Lithuanian\",lb:\"Luxembourgish\",mk:\"North Macedonia\",ms:\"Malay\",ml:\"Malayalam\",mt:\"Maltese\",mi:\"Maori\",mr:\"Marathi\",mo:\"Moldavian\",nv:\"Navajo\",ng:\"Ndonga\",ne:\"Nepali\",no:\"Norwegian\",nb:\"Norwegian (Bokmal)\",nn:\"Norwegian (Nynorsk)\",oc:\"Occitan\",or:\"Oriya\",om:\"Oromo\",fa:\"Persian\",\"fa-IR\":\"Persian/Iran\",pl:\"Polish\",pt:\"Portuguese\",\"pt-BR\":\"Portuguese (Brazil)\",pa:\"Punjabi\",\"pa-IN\":\"Punjabi (India)\",\"pa-PK\":\"Punjabi (Pakistan)\",qu:\"Quechua\",rm:\"Rhaeto-Romanic\",ro:\"Romanian\",\"ro-MO\":\"Romanian (Moldavia)\",ru:\"Russian\",\"ru-MO\":\"Russian (Moldavia)\",sz:\"Sami (Lappish)\",sg:\"Sango\",sa:\"Sanskrit\",sc:\"Sardinian\",sd:\"Sindhi\",si:\"Singhalese\",sr:\"Serbian\",sk:\"Slovak\",sl:\"Slovenian\",so:\"Somani\",sb:\"Sorbian\",es:\"Spanish\",\"es-AR\":\"Spanish (Argentina)\",\"es-BO\":\"Spanish (Bolivia)\",\"es-CL\":\"Spanish (Chile)\",\"es-CO\":\"Spanish (Colombia)\",\"es-CR\":\"Spanish (Costa Rica)\",\"es-DO\":\"Spanish (Dominican Republic)\",\"es-EC\":\"Spanish (Ecuador)\",\"es-SV\":\"Spanish (El Salvador)\",\"es-GT\":\"Spanish (Guatemala)\",\"es-HN\":\"Spanish (Honduras)\",\"es-MX\":\"Spanish (Mexico)\",\"es-NI\":\"Spanish (Nicaragua)\",\"es-PA\":\"Spanish (Panama)\",\"es-PY\":\"Spanish (Paraguay)\",\"es-PE\":\"Spanish (Peru)\",\"es-PR\":\"Spanish (Puerto Rico)\",\"es-ES\":\"Spanish (Spain)\",\"es-UY\":\"Spanish (Uruguay)\",\"es-VE\":\"Spanish (Venezuela)\",sx:\"Sutu\",sw:\"Swahili\",sv:\"Swedish\",\"sv-FI\":\"Swedish (Finland)\",\"sv-SV\":\"Swedish (Sweden)\",ta:\"Tamil\",tt:\"Tatar\",te:\"Teluga\",th:\"Thai\",tig:\"Tigre\",ts:\"Tsonga\",tn:\"Tswana\",tr:\"Turkish\",tk:\"Turkmen\",uk:\"Ukrainian\",hsb:\"Upper Sorbian\",ur:\"Urdu\",ve:\"Venda\",vi:\"Vietnamese\",vo:\"Volapuk\",wa:\"Walloon\",cy:\"Welsh\",xh:\"Xhosa\",ji:\"Yiddish\",zu:\"Zulu\"}[t]&&(this.internal.languageSettings.languageCode=t,!1===this.internal.languageSettings.isSubscribed&&(this.internal.events.subscribe(\"putCatalog\",function(){this.internal.write(\"/Lang (\"+this.internal.languageSettings.languageCode+\")\")}),this.internal.languageSettings.isSubscribed=!0)),this},\n/** @license\n * MIT license.\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nBt=C.API,qt=Bt.getCharWidthsArray=function(t,e){var r,n,i=(e=e||{}).font||this.internal.getFont(),a=e.fontSize||this.internal.getFontSize(),o=e.charSpace||this.internal.getCharSpace(),s=e.widths?e.widths:i.metadata.Unicode.widths,c=s.fof?s.fof:1,u=e.kerning?e.kerning:i.metadata.Unicode.kerning,l=u.fof?u.fof:1,h=!1!==e.doKerning,f=0,d=t.length,p=0,g=s[0]||c,m=[];for(r=0;r<d;r++)n=t.charCodeAt(r),\"function\"==typeof i.metadata.widthOfString?m.push((i.metadata.widthOfGlyph(i.metadata.characterToGlyph(n))+o*(1e3/a)||0)/1e3):(f=h&&\"object\"==typeof u[n]&&!isNaN(parseInt(u[n][p],10))?u[n][p]/l:0,m.push((s[n]||g)/c+f)),p=n;return m},Mt=Bt.getStringUnitWidth=function(t,e){var r=(e=e||{}).fontSize||this.internal.getFontSize(),n=e.font||this.internal.getFont(),i=e.charSpace||this.internal.getCharSpace();return Bt.processArabic&&(t=Bt.processArabic(t)),\"function\"==typeof n.metadata.widthOfString?n.metadata.widthOfString(t,r,i)/r:qt.apply(this,arguments).reduce(function(t,e){return t+e},0)},Et=function(t,e,r,n){for(var i=[],a=0,o=t.length,s=0;a!==o&&s+e[a]<r;)s+=e[a],a++;i.push(t.slice(0,a));var c=a;for(s=0;a!==o;)s+e[a]>n&&(i.push(t.slice(c,a)),s=0,c=a),s+=e[a],a++;return c!==a&&i.push(t.slice(c,a)),i},Rt=function(t,e,r){r||(r={});var n,i,a,o,s,c,u,l=[],h=[l],f=r.textIndent||0,d=0,p=0,g=t.split(\" \"),m=qt.apply(this,[\" \",r])[0];if(c=-1===r.lineIndent?g[0].length+2:r.lineIndent||0){var v=Array(c).join(\" \"),b=[];g.map(function(t){(t=t.split(/\\s*\\n/)).length>1?b=b.concat(t.map(function(t,e){return(e&&t.length?\"\\n\":\"\")+t})):b.push(t[0])}),g=b,c=Mt.apply(this,[v,r])}for(a=0,o=g.length;a<o;a++){var y=0;if(n=g[a],c&&\"\\n\"==n[0]&&(n=n.substr(1),y=1),f+d+(p=(i=qt.apply(this,[n,r])).reduce(function(t,e){return t+e},0))>e||y){if(p>e){for(s=Et.apply(this,[n,i,e-(f+d),e]),l.push(s.shift()),l=[s.pop()];s.length;)h.push([s.shift()]);p=i.slice(n.length-(l[0]?l[0].length:0)).reduce(function(t,e){return t+e},0)}else l=[n];h.push(l),f=p+c,d=m}else l.push(n),f+=d+p,d=m}return u=c?function(t,e){return(e?v:\"\")+t.join(\" \")}:function(t){return t.join(\" \")},h.map(u)},Bt.splitTextToSize=function(t,e,r){var n,i=(r=r||{}).fontSize||this.internal.getFontSize(),a=function(t){if(t.widths&&t.kerning)return{widths:t.widths,kerning:t.kerning};var e=this.internal.getFont(t.fontName,t.fontStyle),r=\"Unicode\";return e.metadata[r]?{widths:e.metadata[r].widths||{0:1},kerning:e.metadata[r].kerning||{}}:{font:e.metadata,fontSize:this.internal.getFontSize(),charSpace:this.internal.getCharSpace()}}.call(this,r);n=Array.isArray(t)?t:String(t).split(/\\r?\\n/);var o=1*this.internal.scaleFactor*e/i;a.textIndent=r.textIndent?1*r.textIndent*this.internal.scaleFactor/i:0,a.lineIndent=r.lineIndent;var s,c,u=[];for(s=0,c=n.length;s<c;s++)u=u.concat(Rt.apply(this,[n[s],o,a]));return u},\n/** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * MIT license.\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nfunction(t){t.__fontmetrics__=t.__fontmetrics__||{};for(var e=\"0123456789abcdef\",r=\"klmnopqrstuvwxyz\",n={},i={},a=0;a<16;a++)n[r[a]]=e[a],i[e[a]]=r[a];var o=function(t){return\"0x\"+parseInt(t,10).toString(16)},s=t.__fontmetrics__.compress=function(t){var e,r,n,a,c=[\"{\"];for(var u in t){if(e=t[u],isNaN(parseInt(u,10))?r=\"'\"+u+\"'\":(u=parseInt(u,10),r=(r=o(u).slice(2)).slice(0,-1)+i[r.slice(-1)]),\"number\"==typeof e)e<0?(n=o(e).slice(3),a=\"-\"):(n=o(e).slice(2),a=\"\"),n=a+n.slice(0,-1)+i[n.slice(-1)];else{if(\"object\"!=typeof e)throw new Error(\"Don't know what to do with value type \"+typeof e+\".\");n=s(e)}c.push(r+n)}return c.push(\"}\"),c.join(\"\")},c=t.__fontmetrics__.uncompress=function(t){if(\"string\"!=typeof t)throw new Error(\"Invalid argument passed to uncompress.\");for(var e,r,i,a,o={},s=1,c=o,u=[],l=\"\",h=\"\",f=t.length-1,d=1;d<f;d+=1)\"'\"==(a=t[d])?e?(i=e.join(\"\"),e=void 0):e=[]:e?e.push(a):\"{\"==a?(u.push([c,i]),c={},i=void 0):\"}\"==a?((r=u.pop())[0][r[1]]=c,i=void 0,c=r[0]):\"-\"==a?s=-1:void 0===i?n.hasOwnProperty(a)?(l+=n[a],i=parseInt(l,16)*s,s=1,l=\"\"):l+=a:n.hasOwnProperty(a)?(h+=n[a],c[i]=parseInt(h,16)*s,s=1,i=void 0,h=\"\"):h+=a;return o},u={codePages:[\"WinAnsiEncoding\"],WinAnsiEncoding:c(\"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\")},l={Unicode:{Courier:u,\"Courier-Bold\":u,\"Courier-BoldOblique\":u,\"Courier-Oblique\":u,Helvetica:u,\"Helvetica-Bold\":u,\"Helvetica-BoldOblique\":u,\"Helvetica-Oblique\":u,\"Times-Roman\":u,\"Times-Bold\":u,\"Times-BoldItalic\":u,\"Times-Italic\":u}},h={Unicode:{\"Courier-Oblique\":c(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-BoldItalic\":c(\"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"),\"Helvetica-Bold\":c(\"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"),Courier:c(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Courier-BoldOblique\":c(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-Bold\":c(\"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"),Symbol:c(\"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"),Helvetica:c(\"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"),\"Helvetica-BoldOblique\":c(\"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"),ZapfDingbats:c(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\"Courier-Bold\":c(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-Italic\":c(\"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"),\"Times-Roman\":c(\"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"),\"Helvetica-Oblique\":c(\"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\")}};t.events.push([\"addFont\",function(t){var e=t.font,r=h.Unicode[e.postScriptName];r&&(e.metadata.Unicode={},e.metadata.Unicode.widths=r.widths,e.metadata.Unicode.kerning=r.kerning);var n=l.Unicode[e.postScriptName];n&&(e.metadata.Unicode.encoding=n,e.encoding=n.codePages[0])}])}(C.API),\n/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;n<e;n++)r[n]=t.charCodeAt(n);return r};t.API.events.push([\"addFont\",function(r){var n=void 0,a=r.font,o=r.instance;if(!a.isStandardFont){if(void 0===o)throw new Error(\"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\"+a.postScriptName+\"').\");if(\"string\"!=typeof(n=!1===o.existsFileInVFS(a.postScriptName)?o.loadFile(a.postScriptName):o.getFileFromVFS(a.postScriptName)))throw new Error(\"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\"+a.postScriptName+\"').\");!function(r,n){n=/^\\x00\\x01\\x00\\x00/.test(n)?e(n):e(i(n)),r.metadata=t.API.TTFFont.open(n),r.metadata.Unicode=r.metadata.Unicode||{encoding:{},kerning:{},widths:[]},r.metadata.glyIdsUsed=[0]}(a,n)}}])}(C),C.API.addSvgAsImage=function(t,e,n,i,a,o,c,u){if(isNaN(e)||isNaN(n))throw s.error(\"jsPDF.addSvgAsImage: Invalid coordinates\",arguments),new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");if(isNaN(i)||isNaN(a))throw s.error(\"jsPDF.addSvgAsImage: Invalid measurements\",arguments),new Error(\"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\");var l=document.createElement(\"canvas\");l.width=i,l.height=a;var h=l.getContext(\"2d\");h.fillStyle=\"#fff\",h.fillRect(0,0,l.width,l.height);var f={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0},d=this;return(r.canvg?Promise.resolve(r.canvg): true?new Promise(function(t,e){try{t(__webpack_require__(/*! canvg */ \"(ssr)/./node_modules/canvg/lib/index.cjs\"))}catch(r){e(r)}}):0).catch(function(t){return Promise.reject(new Error(\"Could not load canvg: \"+t))}).then(function(t){return t.default?t.default:t}).then(function(e){return e.fromString(h,t,f)},function(){return Promise.reject(new Error(\"Could not load canvg.\"))}).then(function(t){return t.render(f)}).then(function(){d.addImage(l.toDataURL(\"image/jpeg\",1),e,n,i,a,c,u)})},C.API.putTotalPages=function(t){var e,r=0;parseInt(this.internal.getFont().id.substr(1),10)<15?(e=new RegExp(t,\"g\"),r=this.internal.getNumberOfPages()):(e=new RegExp(this.pdfEscape16(t,this.internal.getFont()),\"g\"),r=this.pdfEscape16(this.internal.getNumberOfPages()+\"\",this.internal.getFont()));for(var n=1;n<=this.internal.getNumberOfPages();n++)for(var i=0;i<this.internal.pages[n].length;i++)this.internal.pages[n][i]=this.internal.pages[n][i].replace(e,r);return this},C.API.viewerPreferences=function(t,e){var r;t=t||{},e=e||!1;var n,i,a,o={HideToolbar:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:\"UseNone\",value:\"UseNone\",type:\"name\",explicitSet:!1,valueSet:[\"UseNone\",\"UseOutlines\",\"UseThumbs\",\"UseOC\"],pdfVersion:1.3},Direction:{defaultValue:\"L2R\",value:\"L2R\",type:\"name\",explicitSet:!1,valueSet:[\"L2R\",\"R2L\"],pdfVersion:1.3},ViewArea:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},ViewClip:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintArea:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintClip:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintScaling:{defaultValue:\"AppDefault\",value:\"AppDefault\",type:\"name\",explicitSet:!1,valueSet:[\"AppDefault\",\"None\"],pdfVersion:1.6},Duplex:{defaultValue:\"\",value:\"none\",type:\"name\",explicitSet:!1,valueSet:[\"Simplex\",\"DuplexFlipShortEdge\",\"DuplexFlipLongEdge\",\"none\"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:\"\",value:\"\",type:\"array\",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:\"integer\",explicitSet:!1,valueSet:null,pdfVersion:1.7}},s=Object.keys(o),c=[],u=0,l=0,h=0;function f(t,e){var r,n=!1;for(r=0;r<t.length;r+=1)t[r]===e&&(n=!0);return n}if(void 0===this.internal.viewerpreferences&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(o)),this.internal.viewerpreferences.isSubscribed=!1),r=this.internal.viewerpreferences.configuration,\"reset\"===t||!0===e){var d=s.length;for(h=0;h<d;h+=1)r[s[h]].value=r[s[h]].defaultValue,r[s[h]].explicitSet=!1}if(\"object\"==typeof t)for(i in t)if(a=t[i],f(s,i)&&void 0!==a){if(\"boolean\"===r[i].type&&\"boolean\"==typeof a)r[i].value=a;else if(\"name\"===r[i].type&&f(r[i].valueSet,a))r[i].value=a;else if(\"integer\"===r[i].type&&Number.isInteger(a))r[i].value=a;else if(\"array\"===r[i].type){for(u=0;u<a.length;u+=1)if(n=!0,1===a[u].length&&\"number\"==typeof a[u][0])c.push(String(a[u]-1));else if(a[u].length>1){for(l=0;l<a[u].length;l+=1)\"number\"!=typeof a[u][l]&&(n=!1);!0===n&&c.push([a[u][0]-1,a[u][1]-1].join(\" \"))}r[i].value=\"[\"+c.join(\" \")+\"]\"}else r[i].value=r[i].defaultValue;r[i].explicitSet=!0}return!1===this.internal.viewerpreferences.isSubscribed&&(this.internal.events.subscribe(\"putCatalog\",function(){var t,e=[];for(t in r)!0===r[t].explicitSet&&(\"name\"===r[t].type?e.push(\"/\"+t+\" /\"+r[t].value):e.push(\"/\"+t+\" \"+r[t].value));0!==e.length&&this.internal.write(\"/ViewerPreferences\\n<<\\n\"+e.join(\"\\n\")+\"\\n>>\")}),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=r,this},C.API.addMetadata=function(t,e){return void 0===this.internal.__metadata__&&(this.internal.__metadata__={metadata:t,namespaceUri:e??\"http://jspdf.default.namespaceuri/\",rawXml:\"boolean\"==typeof e&&e},this.internal.events.subscribe(\"putCatalog\",ne),this.internal.events.subscribe(\"postPutResources\",re)),this},function(t){var e=t.API,r=e.pdfEscape16=function(t,e){for(var r,n=e.metadata.Unicode.widths,i=[\"\",\"0\",\"00\",\"000\",\"0000\"],a=[\"\"],o=0,s=t.length;o<s;++o){if(r=e.metadata.characterToGlyph(t.charCodeAt(o)),e.metadata.glyIdsUsed.push(r),e.metadata.toUnicode[r]=t.charCodeAt(o),-1==n.indexOf(r)&&(n.push(r),n.push([parseInt(e.metadata.widthOfGlyph(r),10)])),\"0\"==r)return a.join(\"\");r=r.toString(16),a.push(i[4-r.length],r)}return a.join(\"\")},n=function(t){var e,r,n,i,a,o,s;for(a=\"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000><ffff>\\nendcodespacerange\",n=[],o=0,s=(r=Object.keys(t).sort(function(t,e){return t-e})).length;o<s;o++)e=r[o],n.length>=100&&(a+=\"\\n\"+n.length+\" beginbfchar\\n\"+n.join(\"\\n\")+\"\\nendbfchar\",n=[]),void 0!==t[e]&&null!==t[e]&&\"function\"==typeof t[e].toString&&(i=(\"0000\"+t[e].toString(16)).slice(-4),e=(\"0000\"+(+e).toString(16)).slice(-4),n.push(\"<\"+e+\"><\"+i+\">\"));return n.length&&(a+=\"\\n\"+n.length+\" beginbfchar\\n\"+n.join(\"\\n\")+\"\\nendbfchar\\n\"),a+\"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\"};e.events.push([\"putFont\",function(e){!function(e){var r=e.font,i=e.out,a=e.newObject,o=e.putStream;if(r.metadata instanceof t.API.TTFFont&&\"Identity-H\"===r.encoding){for(var s=r.metadata.Unicode.widths,c=r.metadata.subset.encode(r.metadata.glyIdsUsed,1),u=\"\",l=0;l<c.length;l++)u+=String.fromCharCode(c[l]);var h=a();o({data:u,addLength1:!0,objectId:h}),i(\"endobj\");var f=a();o({data:n(r.metadata.toUnicode),addLength1:!0,objectId:f}),i(\"endobj\");var d=a();i(\"<<\"),i(\"/Type /FontDescriptor\"),i(\"/FontName /\"+S(r.fontName)),i(\"/FontFile2 \"+h+\" 0 R\"),i(\"/FontBBox \"+t.API.PDFObject.convert(r.metadata.bbox)),i(\"/Flags \"+r.metadata.flags),i(\"/StemV \"+r.metadata.stemV),i(\"/ItalicAngle \"+r.metadata.italicAngle),i(\"/Ascent \"+r.metadata.ascender),i(\"/Descent \"+r.metadata.decender),i(\"/CapHeight \"+r.metadata.capHeight),i(\">>\"),i(\"endobj\");var p=a();i(\"<<\"),i(\"/Type /Font\"),i(\"/BaseFont /\"+S(r.fontName)),i(\"/FontDescriptor \"+d+\" 0 R\"),i(\"/W \"+t.API.PDFObject.convert(s)),i(\"/CIDToGIDMap /Identity\"),i(\"/DW 1000\"),i(\"/Subtype /CIDFontType2\"),i(\"/CIDSystemInfo\"),i(\"<<\"),i(\"/Supplement 0\"),i(\"/Registry (Adobe)\"),i(\"/Ordering (\"+r.encoding+\")\"),i(\">>\"),i(\">>\"),i(\"endobj\"),r.objectNumber=a(),i(\"<<\"),i(\"/Type /Font\"),i(\"/Subtype /Type0\"),i(\"/ToUnicode \"+f+\" 0 R\"),i(\"/BaseFont /\"+S(r.fontName)),i(\"/Encoding /\"+r.encoding),i(\"/DescendantFonts [\"+p+\" 0 R]\"),i(\">>\"),i(\"endobj\"),r.isAlreadyPutted=!0}}(e)}]),e.events.push([\"putFont\",function(e){!function(e){var r=e.font,i=e.out,a=e.newObject,o=e.putStream;if(r.metadata instanceof t.API.TTFFont&&\"WinAnsiEncoding\"===r.encoding){for(var s=r.metadata.rawData,c=\"\",u=0;u<s.length;u++)c+=String.fromCharCode(s[u]);var l=a();o({data:c,addLength1:!0,objectId:l}),i(\"endobj\");var h=a();o({data:n(r.metadata.toUnicode),addLength1:!0,objectId:h}),i(\"endobj\");var f=a();i(\"<<\"),i(\"/Descent \"+r.metadata.decender),i(\"/CapHeight \"+r.metadata.capHeight),i(\"/StemV \"+r.metadata.stemV),i(\"/Type /FontDescriptor\"),i(\"/FontFile2 \"+l+\" 0 R\"),i(\"/Flags 96\"),i(\"/FontBBox \"+t.API.PDFObject.convert(r.metadata.bbox)),i(\"/FontName /\"+S(r.fontName)),i(\"/ItalicAngle \"+r.metadata.italicAngle),i(\"/Ascent \"+r.metadata.ascender),i(\">>\"),i(\"endobj\"),r.objectNumber=a();for(var d=0;d<r.metadata.hmtx.widths.length;d++)r.metadata.hmtx.widths[d]=parseInt(r.metadata.hmtx.widths[d]*(1e3/r.metadata.head.unitsPerEm));i(\"<</Subtype/TrueType/Type/Font/ToUnicode \"+h+\" 0 R/BaseFont/\"+S(r.fontName)+\"/FontDescriptor \"+f+\" 0 R/Encoding/\"+r.encoding+\" /FirstChar 29 /LastChar 255 /Widths \"+t.API.PDFObject.convert(r.metadata.hmtx.widths)+\">>\"),i(\"endobj\"),r.isAlreadyPutted=!0}}(e)}]);var i=function(t){var e,n=t.text||\"\",i=t.x,a=t.y,o=t.options||{},s=t.mutex||{},c=s.pdfEscape,u=s.activeFontKey,l=s.fonts,h=u,f=\"\",d=0,p=\"\",g=l[h].encoding;if(\"Identity-H\"!==l[h].encoding)return{text:n,x:i,y:a,options:o,mutex:s};for(p=n,h=u,Array.isArray(n)&&(p=n[0]),d=0;d<p.length;d+=1)l[h].metadata.hasOwnProperty(\"cmap\")&&(e=l[h].metadata.cmap.unicode.codeMap[p[d].charCodeAt(0)]),e||p[d].charCodeAt(0)<256&&l[h].metadata.hasOwnProperty(\"Unicode\")?f+=p[d]:f+=\"\";var m=\"\";return parseInt(h.slice(1))<14||\"WinAnsiEncoding\"===g?m=c(f,h).split(\"\").map(function(t){return t.charCodeAt(0).toString(16)}).join(\"\"):\"Identity-H\"===g&&(m=r(f,l[h])),s.isHex=!0,{text:m,x:i,y:a,options:o,mutex:s}};e.events.push([\"postProcessText\",function(t){var e=t.text||\"\",r=[],n={text:e,x:t.x,y:t.y,options:t.options,mutex:t.mutex};if(Array.isArray(e)){var a=0;for(a=0;a<e.length;a+=1)Array.isArray(e[a])&&3===e[a].length?r.push([i(Object.assign({},n,{text:e[a][0]})).text,e[a][1],e[a][2]]):r.push(i(Object.assign({},n,{text:e[a]})).text);t.text=r}else t.text=i(Object.assign({},n,{text:e})).text}])}(C),\n/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(){return void 0===this.internal.vFS&&(this.internal.vFS={}),!0};t.existsFileInVFS=function(t){return e.call(this),void 0!==this.internal.vFS[t]},t.addFileToVFS=function(t,r){return e.call(this),this.internal.vFS[t]=r,this},t.getFileFromVFS=function(t){return e.call(this),void 0!==this.internal.vFS[t]?this.internal.vFS[t]:null}}(C.API),\n/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\nfunction(t){t.__bidiEngine__=t.prototype.__bidiEngine__=function(t){var r,n,i,a,o,s,c,u=e,l=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],h=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],f={L:0,R:1,EN:2,AN:3,N:4,B:5,S:6},d={0:0,5:1,6:2,7:3,32:4,251:5,254:6,255:7},p=[\"(\",\")\",\"(\",\"<\",\">\",\"<\",\"[\",\"]\",\"[\",\"{\",\"}\",\"{\",\"«\",\"»\",\"«\",\"‹\",\"›\",\"‹\",\"⁅\",\"⁆\",\"⁅\",\"⁽\",\"⁾\",\"⁽\",\"₍\",\"₎\",\"₍\",\"≤\",\"≥\",\"≤\",\"〈\",\"〉\",\"〈\",\"﹙\",\"﹚\",\"﹙\",\"﹛\",\"﹜\",\"﹛\",\"﹝\",\"﹞\",\"﹝\",\"﹤\",\"﹥\",\"﹤\"],g=new RegExp(/^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/),m=!1,v=0;this.__bidiEngine__={};var b=function(t){var e=t.charCodeAt(),r=e>>8,n=d[r];return void 0!==n?u[256*n+(255&e)]:252===r||253===r?\"AL\":g.test(r)?\"L\":8===r?\"R\":\"N\"},y=function(t){for(var e,r=0;r<t.length;r++){if(\"L\"===(e=b(t.charAt(r))))return!1;if(\"R\"===e)return!0}return!1},w=function(t,e,o,s){var c,u,l,h,f=e[s];switch(f){case\"L\":case\"R\":case\"LRE\":case\"RLE\":case\"LRO\":case\"RLO\":case\"PDF\":m=!1;break;case\"N\":case\"AN\":break;case\"EN\":m&&(f=\"AN\");break;case\"AL\":m=!0,f=\"R\";break;case\"WS\":case\"BN\":f=\"N\";break;case\"CS\":s<1||s+1>=e.length||\"EN\"!==(c=o[s-1])&&\"AN\"!==c||\"EN\"!==(u=e[s+1])&&\"AN\"!==u?f=\"N\":m&&(u=\"AN\"),f=u===c?u:\"N\";break;case\"ES\":f=\"EN\"===(c=s>0?o[s-1]:\"B\")&&s+1<e.length&&\"EN\"===e[s+1]?\"EN\":\"N\";break;case\"ET\":if(s>0&&\"EN\"===o[s-1]){f=\"EN\";break}if(m){f=\"N\";break}for(l=s+1,h=e.length;l<h&&\"ET\"===e[l];)l++;f=l<h&&\"EN\"===e[l]?\"EN\":\"N\";break;case\"NSM\":if(i&&!a){for(h=e.length,l=s+1;l<h&&\"NSM\"===e[l];)l++;if(l<h){var d=t[s],p=d>=1425&&d<=2303||64286===d;if(c=e[l],p&&(\"R\"===c||\"AL\"===c)){f=\"R\";break}}}f=s<1||\"B\"===(c=e[s-1])?\"N\":o[s-1];break;case\"B\":m=!1,r=!0,f=v;break;case\"S\":n=!0,f=\"N\"}return f},N=function(t,e,r){var n=t.split(\"\");return r&&L(n,r,{hiLevel:v}),n.reverse(),e&&e.reverse(),n.join(\"\")},L=function(t,e,i){var a,o,s,c,u,d=-1,p=t.length,g=0,y=[],N=v?h:l,L=[];for(m=!1,r=!1,n=!1,o=0;o<p;o++)L[o]=b(t[o]);for(s=0;s<p;s++){if(u=g,y[s]=w(t,L,y,s),a=240&(g=N[u][f[y[s]]]),g&=15,e[s]=c=N[g][5],a>0)if(16===a){for(o=d;o<s;o++)e[o]=1;d=-1}else d=-1;if(N[g][6])-1===d&&(d=s);else if(d>-1){for(o=d;o<s;o++)e[o]=c;d=-1}\"B\"===L[s]&&(e[s]=0),i.hiLevel|=c}n&&function(t,e,r){for(var n=0;n<r;n++)if(\"S\"===t[n]){e[n]=v;for(var i=n-1;i>=0&&\"WS\"===t[i];i--)e[i]=v}}(L,e,p)},x=function(t,e,n,i,a){if(!(a.hiLevel<t)){if(1===t&&1===v&&!r)return e.reverse(),void(n&&n.reverse());for(var o,s,c,u,l=e.length,h=0;h<l;){if(i[h]>=t){for(c=h+1;c<l&&i[c]>=t;)c++;for(u=h,s=c-1;u<s;u++,s--)o=e[u],e[u]=e[s],e[s]=o,n&&(o=n[u],n[u]=n[s],n[s]=o);h=c}h++}}},A=function(t,e,r){var n=t.split(\"\"),i={hiLevel:v};return r||(r=[]),L(n,r,i),function(t,e,r){if(0!==r.hiLevel&&c)for(var n,i=0;i<t.length;i++)1===e[i]&&(n=p.indexOf(t[i]))>=0&&(t[i]=p[n+1])}(n,r,i),x(2,n,e,r,i),x(1,n,e,r,i),n.join(\"\")};return this.__bidiEngine__.doBidiReorder=function(t,e,r){if(function(t,e){if(e)for(var r=0;r<t.length;r++)e[r]=r;void 0===a&&(a=y(t)),void 0===s&&(s=y(t))}(t,e),i||!o||s)if(i&&o&&a^s)v=a?1:0,t=N(t,e,r);else if(!i&&o&&s)v=a?1:0,t=A(t,e,r),t=N(t,e);else if(!i||a||o||s){if(i&&!o&&a^s)t=N(t,e),a?(v=0,t=A(t,e,r)):(v=1,t=A(t,e,r),t=N(t,e));else if(i&&a&&!o&&s)v=1,t=A(t,e,r),t=N(t,e);else if(!i&&!o&&a^s){var n=c;a?(v=1,t=A(t,e,r),v=0,c=!1,t=A(t,e,r),c=n):(v=0,t=A(t,e,r),t=N(t,e),v=1,c=!1,t=A(t,e,r),c=n,t=N(t,e))}}else v=0,t=A(t,e,r);else v=a?1:0,t=A(t,e,r);return t},this.__bidiEngine__.setOptions=function(t){t&&(i=t.isInputVisual,o=t.isOutputVisual,a=t.isInputRtl,s=t.isOutputRtl,c=t.isSymmetricSwapping)},this.__bidiEngine__.setOptions(t),this.__bidiEngine__};var e=[\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"S\",\"B\",\"S\",\"WS\",\"B\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"B\",\"B\",\"B\",\"S\",\"WS\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ES\",\"CS\",\"ES\",\"CS\",\"CS\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"B\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"CS\",\"N\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"L\",\"N\",\"N\",\"BN\",\"N\",\"N\",\"ET\",\"ET\",\"EN\",\"EN\",\"N\",\"L\",\"N\",\"N\",\"N\",\"EN\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"R\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"N\",\"N\",\"AL\",\"ET\",\"ET\",\"AL\",\"CS\",\"AL\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"ET\",\"AN\",\"AN\",\"AL\",\"AL\",\"AL\",\"NSM\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AN\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"NSM\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"BN\",\"BN\",\"BN\",\"L\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"B\",\"LRE\",\"RLE\",\"PDF\",\"LRO\",\"RLO\",\"CS\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"N\",\"LRI\",\"RLI\",\"FSI\",\"PDI\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"EN\",\"L\",\"N\",\"N\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"L\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"NSM\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"ES\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"R\",\"N\",\"R\",\"R\",\"N\",\"R\",\"R\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"CS\",\"N\",\"CS\",\"N\",\"N\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"N\",\"N\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"N\",\"BN\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ES\",\"CS\",\"ES\",\"CS\",\"CS\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\"],r=new t.__bidiEngine__({isInputVisual:!0});t.API.events.push([\"postProcessText\",function(t){var e=t.text;t.x,t.y;var n=t.options||{};t.mutex,n.lang;var i=[];if(n.isInputVisual=\"boolean\"!=typeof n.isInputVisual||n.isInputVisual,r.setOptions(n),\"[object Array]\"===Object.prototype.toString.call(e)){var a=0;for(i=[],a=0;a<e.length;a+=1)\"[object Array]\"===Object.prototype.toString.call(e[a])?i.push([r.doBidiReorder(e[a][0]),e[a][1],e[a][2]]):i.push([r.doBidiReorder(e[a])]);t.text=i}else t.text=r.doBidiReorder(e);r.setOptions({isInputVisual:!0})}])}(C),C.API.TTFFont=function(){function t(t){var e;if(this.rawData=t,e=this.contents=new ae(t),this.contents.pos=4,\"ttcf\"===e.readString(4))throw new Error(\"TTCF not supported.\");e.pos=0,this.parse(),this.subset=new Ae(this),this.registerTTF()}return t.open=function(e){return new t(e)},t.prototype.parse=function(){return this.directory=new oe(this.contents),this.head=new ue(this),this.name=new me(this),this.cmap=new he(this),this.toUnicode={},this.hhea=new fe(this),this.maxp=new ve(this),this.hmtx=new be(this),this.post=new pe(this),this.os2=new de(this),this.loca=new xe(this),this.glyf=new we(this),this.ascender=this.os2.exists&&this.os2.ascender||this.hhea.ascender,this.decender=this.os2.exists&&this.os2.decender||this.hhea.decender,this.lineGap=this.os2.exists&&this.os2.lineGap||this.hhea.lineGap,this.bbox=[this.head.xMin,this.head.yMin,this.head.xMax,this.head.yMax]},t.prototype.registerTTF=function(){var t,e,r,n,i;if(this.scaleFactor=1e3/this.head.unitsPerEm,this.bbox=function(){var e,r,n,i;for(i=[],e=0,r=(n=this.bbox).length;e<r;e++)t=n[e],i.push(Math.round(t*this.scaleFactor));return i}.call(this),this.stemV=0,this.post.exists?(r=255&(n=this.post.italic_angle),32768&(e=n>>16)&&(e=-(1+(65535^e))),this.italicAngle=+(e+\".\"+r)):this.italicAngle=0,this.ascender=Math.round(this.ascender*this.scaleFactor),this.decender=Math.round(this.decender*this.scaleFactor),this.lineGap=Math.round(this.lineGap*this.scaleFactor),this.capHeight=this.os2.exists&&this.os2.capHeight||this.ascender,this.xHeight=this.os2.exists&&this.os2.xHeight||0,this.familyClass=(this.os2.exists&&this.os2.familyClass||0)>>8,this.isSerif=1===(i=this.familyClass)||2===i||3===i||4===i||5===i||7===i,this.isScript=10===this.familyClass,this.flags=0,this.post.isFixedPitch&&(this.flags|=1),this.isSerif&&(this.flags|=2),this.isScript&&(this.flags|=8),0!==this.italicAngle&&(this.flags|=64),this.flags|=32,!this.cmap.unicode)throw new Error(\"No unicode cmap for font\")},t.prototype.characterToGlyph=function(t){var e;return(null!=(e=this.cmap.unicode)?e.codeMap[t]:void 0)||0},t.prototype.widthOfGlyph=function(t){var e;return e=1e3/this.head.unitsPerEm,this.hmtx.forGlyph(t).advance*e},t.prototype.widthOfString=function(t,e,r){var n,i,a,o;for(a=0,i=0,o=(t=\"\"+t).length;0<=o?i<o:i>o;i=0<=o?++i:--i)n=t.charCodeAt(i),a+=this.widthOfGlyph(this.characterToGlyph(n))+r*(1e3/e)||0;return a*(e/1e3)},t.prototype.lineHeight=function(t,e){var r;return null==e&&(e=!1),r=e?this.lineGap:0,(this.ascender+r-this.decender)/1e3*t},t}();var ie,ae=function(){function t(t){this.data=null!=t?t:[],this.pos=0,this.length=this.data.length}return t.prototype.readByte=function(){return this.data[this.pos++]},t.prototype.writeByte=function(t){return this.data[this.pos++]=t},t.prototype.readUInt32=function(){return 16777216*this.readByte()+(this.readByte()<<16)+(this.readByte()<<8)+this.readByte()},t.prototype.writeUInt32=function(t){return this.writeByte(t>>>24&255),this.writeByte(t>>16&255),this.writeByte(t>>8&255),this.writeByte(255&t)},t.prototype.readInt32=function(){var t;return(t=this.readUInt32())>=2147483648?t-4294967296:t},t.prototype.writeInt32=function(t){return t<0&&(t+=4294967296),this.writeUInt32(t)},t.prototype.readUInt16=function(){return this.readByte()<<8|this.readByte()},t.prototype.writeUInt16=function(t){return this.writeByte(t>>8&255),this.writeByte(255&t)},t.prototype.readInt16=function(){var t;return(t=this.readUInt16())>=32768?t-65536:t},t.prototype.writeInt16=function(t){return t<0&&(t+=65536),this.writeUInt16(t)},t.prototype.readString=function(t){var e,r;for(r=[],e=0;0<=t?e<t:e>t;e=0<=t?++e:--e)r[e]=String.fromCharCode(this.readByte());return r.join(\"\")},t.prototype.writeString=function(t){var e,r,n;for(n=[],e=0,r=t.length;0<=r?e<r:e>r;e=0<=r?++e:--e)n.push(this.writeByte(t.charCodeAt(e)));return n},t.prototype.readShort=function(){return this.readInt16()},t.prototype.writeShort=function(t){return this.writeInt16(t)},t.prototype.readLongLong=function(){var t,e,r,n,i,a,o,s;return t=this.readByte(),e=this.readByte(),r=this.readByte(),n=this.readByte(),i=this.readByte(),a=this.readByte(),o=this.readByte(),s=this.readByte(),128&t?-1*(72057594037927940*(255^t)+281474976710656*(255^e)+1099511627776*(255^r)+4294967296*(255^n)+16777216*(255^i)+65536*(255^a)+256*(255^o)+(255^s)+1):72057594037927940*t+281474976710656*e+1099511627776*r+4294967296*n+16777216*i+65536*a+256*o+s},t.prototype.writeLongLong=function(t){var e,r;return e=Math.floor(t/4294967296),r=4294967295&t,this.writeByte(e>>24&255),this.writeByte(e>>16&255),this.writeByte(e>>8&255),this.writeByte(255&e),this.writeByte(r>>24&255),this.writeByte(r>>16&255),this.writeByte(r>>8&255),this.writeByte(255&r)},t.prototype.readInt=function(){return this.readInt32()},t.prototype.writeInt=function(t){return this.writeInt32(t)},t.prototype.read=function(t){var e,r;for(e=[],r=0;0<=t?r<t:r>t;r=0<=t?++r:--r)e.push(this.readByte());return e},t.prototype.write=function(t){var e,r,n,i;for(i=[],r=0,n=t.length;r<n;r++)e=t[r],i.push(this.writeByte(e));return i},t}(),oe=function(){var t;function e(t){var e,r,n;for(this.scalarType=t.readInt(),this.tableCount=t.readShort(),this.searchRange=t.readShort(),this.entrySelector=t.readShort(),this.rangeShift=t.readShort(),this.tables={},r=0,n=this.tableCount;0<=n?r<n:r>n;r=0<=n?++r:--r)e={tag:t.readString(4),checksum:t.readInt(),offset:t.readInt(),length:t.readInt()},this.tables[e.tag]=e}return e.prototype.encode=function(e){var r,n,i,a,o,s,c,u,l,h,f,d,p;for(p in f=Object.keys(e).length,s=Math.log(2),l=16*Math.floor(Math.log(f)/s),a=Math.floor(l/s),u=16*f-l,(n=new ae).writeInt(this.scalarType),n.writeShort(f),n.writeShort(l),n.writeShort(a),n.writeShort(u),i=16*f,c=n.pos+i,o=null,d=[],e)for(h=e[p],n.writeString(p),n.writeInt(t(h)),n.writeInt(c),n.writeInt(h.length),d=d.concat(h),\"head\"===p&&(o=c),c+=h.length;c%4;)d.push(0),c++;return n.write(d),r=2981146554-t(n.data),n.pos=o+8,n.writeUInt32(r),n.data},t=function(t){var e,r,n,i;for(t=ye.call(t);t.length%4;)t.push(0);for(n=new ae(t),r=0,e=0,i=t.length;e<i;e=e+=4)r+=n.readUInt32();return 4294967295&r},e}(),se={}.hasOwnProperty,ce=function(t,e){for(var r in e)se.call(e,r)&&(t[r]=e[r]);function n(){this.constructor=t}return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};ie=function(){function t(t){var e;this.file=t,e=this.file.directory.tables[this.tag],this.exists=!!e,e&&(this.offset=e.offset,this.length=e.length,this.parse(this.file.contents))}return t.prototype.parse=function(){},t.prototype.encode=function(){},t.prototype.raw=function(){return this.exists?(this.file.contents.pos=this.offset,this.file.contents.read(this.length)):null},t}();var ue=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ce(t,ie),t.prototype.tag=\"head\",t.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.revision=t.readInt(),this.checkSumAdjustment=t.readInt(),this.magicNumber=t.readInt(),this.flags=t.readShort(),this.unitsPerEm=t.readShort(),this.created=t.readLongLong(),this.modified=t.readLongLong(),this.xMin=t.readShort(),this.yMin=t.readShort(),this.xMax=t.readShort(),this.yMax=t.readShort(),this.macStyle=t.readShort(),this.lowestRecPPEM=t.readShort(),this.fontDirectionHint=t.readShort(),this.indexToLocFormat=t.readShort(),this.glyphDataFormat=t.readShort()},t.prototype.encode=function(t){var e;return(e=new ae).writeInt(this.version),e.writeInt(this.revision),e.writeInt(this.checkSumAdjustment),e.writeInt(this.magicNumber),e.writeShort(this.flags),e.writeShort(this.unitsPerEm),e.writeLongLong(this.created),e.writeLongLong(this.modified),e.writeShort(this.xMin),e.writeShort(this.yMin),e.writeShort(this.xMax),e.writeShort(this.yMax),e.writeShort(this.macStyle),e.writeShort(this.lowestRecPPEM),e.writeShort(this.fontDirectionHint),e.writeShort(t),e.writeShort(this.glyphDataFormat),e.data},t}(),le=function(){function t(t,e){var r,n,i,a,o,s,c,u,l,h,f,d,p,g,m,v,b;switch(this.platformID=t.readUInt16(),this.encodingID=t.readShort(),this.offset=e+t.readInt(),l=t.pos,t.pos=this.offset,this.format=t.readUInt16(),this.length=t.readUInt16(),this.language=t.readUInt16(),this.isUnicode=3===this.platformID&&1===this.encodingID&&4===this.format||0===this.platformID&&4===this.format,this.codeMap={},this.format){case 0:for(s=0;s<256;++s)this.codeMap[s]=t.readByte();break;case 4:for(f=t.readUInt16(),h=f/2,t.pos+=6,i=function(){var e,r;for(r=[],s=e=0;0<=h?e<h:e>h;s=0<=h?++e:--e)r.push(t.readUInt16());return r}(),t.pos+=2,p=function(){var e,r;for(r=[],s=e=0;0<=h?e<h:e>h;s=0<=h?++e:--e)r.push(t.readUInt16());return r}(),c=function(){var e,r;for(r=[],s=e=0;0<=h?e<h:e>h;s=0<=h?++e:--e)r.push(t.readUInt16());return r}(),u=function(){var e,r;for(r=[],s=e=0;0<=h?e<h:e>h;s=0<=h?++e:--e)r.push(t.readUInt16());return r}(),n=(this.length-t.pos+this.offset)/2,o=function(){var e,r;for(r=[],s=e=0;0<=n?e<n:e>n;s=0<=n?++e:--e)r.push(t.readUInt16());return r}(),s=m=0,b=i.length;m<b;s=++m)for(g=i[s],r=v=d=p[s];d<=g?v<=g:v>=g;r=d<=g?++v:--v)0===u[s]?a=r+c[s]:0!==(a=o[u[s]/2+(r-d)-(h-s)]||0)&&(a+=c[s]),this.codeMap[r]=65535&a}t.pos=l}return t.encode=function(t,e){var r,n,i,a,o,s,c,u,l,h,f,d,p,g,m,v,b,y,w,N,L,x,A,S,_,P,k,F,I,C,j,O,B,q,M,E,R,D,T,z,U,H,W,V,G,Y;switch(F=new ae,a=Object.keys(t).sort(function(t,e){return t-e}),e){case\"macroman\":for(p=0,g=function(){var t=[];for(d=0;d<256;++d)t.push(0);return t}(),v={0:0},i={},I=0,B=a.length;I<B;I++)null==v[W=t[n=a[I]]]&&(v[W]=++p),i[n]={old:t[n],new:v[t[n]]},g[n]=v[t[n]];return F.writeUInt16(1),F.writeUInt16(0),F.writeUInt32(12),F.writeUInt16(0),F.writeUInt16(262),F.writeUInt16(0),F.write(g),{charMap:i,subtable:F.data,maxGlyphID:p+1};case\"unicode\":for(P=[],l=[],b=0,v={},r={},m=c=null,C=0,q=a.length;C<q;C++)null==v[w=t[n=a[C]]]&&(v[w]=++b),r[n]={old:w,new:v[w]},o=v[w]-n,null!=m&&o===c||(m&&l.push(m),P.push(n),c=o),m=n;for(m&&l.push(m),l.push(65535),P.push(65535),S=2*(A=P.length),x=2*Math.pow(Math.log(A)/Math.LN2,2),h=Math.log(x/2)/Math.LN2,L=2*A-x,s=[],N=[],f=[],d=j=0,M=P.length;j<M;d=++j){if(_=P[d],u=l[d],65535===_){s.push(0),N.push(0);break}if(_-(k=r[_].new)>=32768)for(s.push(0),N.push(2*(f.length+A-d)),n=O=_;_<=u?O<=u:O>=u;n=_<=u?++O:--O)f.push(r[n].new);else s.push(k-_),N.push(0)}for(F.writeUInt16(3),F.writeUInt16(1),F.writeUInt32(12),F.writeUInt16(4),F.writeUInt16(16+8*A+2*f.length),F.writeUInt16(0),F.writeUInt16(S),F.writeUInt16(x),F.writeUInt16(h),F.writeUInt16(L),U=0,E=l.length;U<E;U++)n=l[U],F.writeUInt16(n);for(F.writeUInt16(0),H=0,R=P.length;H<R;H++)n=P[H],F.writeUInt16(n);for(V=0,D=s.length;V<D;V++)o=s[V],F.writeUInt16(o);for(G=0,T=N.length;G<T;G++)y=N[G],F.writeUInt16(y);for(Y=0,z=f.length;Y<z;Y++)p=f[Y],F.writeUInt16(p);return{charMap:r,subtable:F.data,maxGlyphID:b+1}}},t}(),he=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ce(t,ie),t.prototype.tag=\"cmap\",t.prototype.parse=function(t){var e,r,n;for(t.pos=this.offset,this.version=t.readUInt16(),n=t.readUInt16(),this.tables=[],this.unicode=null,r=0;0<=n?r<n:r>n;r=0<=n?++r:--r)e=new le(t,this.offset),this.tables.push(e),e.isUnicode&&null==this.unicode&&(this.unicode=e);return!0},t.encode=function(t,e){var r,n;return null==e&&(e=\"macroman\"),r=le.encode(t,e),(n=new ae).writeUInt16(0),n.writeUInt16(1),r.table=n.data.concat(r.subtable),r},t}(),fe=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ce(t,ie),t.prototype.tag=\"hhea\",t.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.ascender=t.readShort(),this.decender=t.readShort(),this.lineGap=t.readShort(),this.advanceWidthMax=t.readShort(),this.minLeftSideBearing=t.readShort(),this.minRightSideBearing=t.readShort(),this.xMaxExtent=t.readShort(),this.caretSlopeRise=t.readShort(),this.caretSlopeRun=t.readShort(),this.caretOffset=t.readShort(),t.pos+=8,this.metricDataFormat=t.readShort(),this.numberOfMetrics=t.readUInt16()},t}(),de=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ce(t,ie),t.prototype.tag=\"OS/2\",t.prototype.parse=function(t){if(t.pos=this.offset,this.version=t.readUInt16(),this.averageCharWidth=t.readShort(),this.weightClass=t.readUInt16(),this.widthClass=t.readUInt16(),this.type=t.readShort(),this.ySubscriptXSize=t.readShort(),this.ySubscriptYSize=t.readShort(),this.ySubscriptXOffset=t.readShort(),this.ySubscriptYOffset=t.readShort(),this.ySuperscriptXSize=t.readShort(),this.ySuperscriptYSize=t.readShort(),this.ySuperscriptXOffset=t.readShort(),this.ySuperscriptYOffset=t.readShort(),this.yStrikeoutSize=t.readShort(),this.yStrikeoutPosition=t.readShort(),this.familyClass=t.readShort(),this.panose=function(){var e,r;for(r=[],e=0;e<10;++e)r.push(t.readByte());return r}(),this.charRange=function(){var e,r;for(r=[],e=0;e<4;++e)r.push(t.readInt());return r}(),this.vendorID=t.readString(4),this.selection=t.readShort(),this.firstCharIndex=t.readShort(),this.lastCharIndex=t.readShort(),this.version>0&&(this.ascent=t.readShort(),this.descent=t.readShort(),this.lineGap=t.readShort(),this.winAscent=t.readShort(),this.winDescent=t.readShort(),this.codePageRange=function(){var e,r;for(r=[],e=0;e<2;e=++e)r.push(t.readInt());return r}(),this.version>1))return this.xHeight=t.readShort(),this.capHeight=t.readShort(),this.defaultChar=t.readShort(),this.breakChar=t.readShort(),this.maxContext=t.readShort()},t}(),pe=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ce(t,ie),t.prototype.tag=\"post\",t.prototype.parse=function(t){var e,r,n;switch(t.pos=this.offset,this.format=t.readInt(),this.italicAngle=t.readInt(),this.underlinePosition=t.readShort(),this.underlineThickness=t.readShort(),this.isFixedPitch=t.readInt(),this.minMemType42=t.readInt(),this.maxMemType42=t.readInt(),this.minMemType1=t.readInt(),this.maxMemType1=t.readInt(),this.format){case 65536:case 196608:break;case 131072:var i;for(r=t.readUInt16(),this.glyphNameIndex=[],i=0;0<=r?i<r:i>r;i=0<=r?++i:--i)this.glyphNameIndex.push(t.readUInt16());for(this.names=[],n=[];t.pos<this.offset+this.length;)e=t.readByte(),n.push(this.names.push(t.readString(e)));return n;case 151552:return r=t.readUInt16(),this.offsets=t.read(r);case 262144:return this.map=function(){var e,r,n;for(n=[],i=e=0,r=this.file.maxp.numGlyphs;0<=r?e<r:e>r;i=0<=r?++e:--e)n.push(t.readUInt32());return n}.call(this)}},t}(),ge=function(t,e){this.raw=t,this.length=t.length,this.platformID=e.platformID,this.encodingID=e.encodingID,this.languageID=e.languageID},me=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ce(t,ie),t.prototype.tag=\"name\",t.prototype.parse=function(t){var e,r,n,i,a,o,s,c,u,l,h;for(t.pos=this.offset,t.readShort(),e=t.readShort(),o=t.readShort(),r=[],i=0;0<=e?i<e:i>e;i=0<=e?++i:--i)r.push({platformID:t.readShort(),encodingID:t.readShort(),languageID:t.readShort(),nameID:t.readShort(),length:t.readShort(),offset:this.offset+o+t.readShort()});for(s={},i=u=0,l=r.length;u<l;i=++u)n=r[i],t.pos=n.offset,c=t.readString(n.length),a=new ge(c,n),null==s[h=n.nameID]&&(s[h]=[]),s[n.nameID].push(a);this.strings=s,this.copyright=s[0],this.fontFamily=s[1],this.fontSubfamily=s[2],this.uniqueSubfamily=s[3],this.fontName=s[4],this.version=s[5];try{this.postscriptName=s[6][0].raw.replace(/[\\x00-\\x19\\x80-\\xff]/g,\"\")}catch(f){this.postscriptName=s[4][0].raw.replace(/[\\x00-\\x19\\x80-\\xff]/g,\"\")}return this.trademark=s[7],this.manufacturer=s[8],this.designer=s[9],this.description=s[10],this.vendorUrl=s[11],this.designerUrl=s[12],this.license=s[13],this.licenseUrl=s[14],this.preferredFamily=s[15],this.preferredSubfamily=s[17],this.compatibleFull=s[18],this.sampleText=s[19]},t}(),ve=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ce(t,ie),t.prototype.tag=\"maxp\",t.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.numGlyphs=t.readUInt16(),this.maxPoints=t.readUInt16(),this.maxContours=t.readUInt16(),this.maxCompositePoints=t.readUInt16(),this.maxComponentContours=t.readUInt16(),this.maxZones=t.readUInt16(),this.maxTwilightPoints=t.readUInt16(),this.maxStorage=t.readUInt16(),this.maxFunctionDefs=t.readUInt16(),this.maxInstructionDefs=t.readUInt16(),this.maxStackElements=t.readUInt16(),this.maxSizeOfInstructions=t.readUInt16(),this.maxComponentElements=t.readUInt16(),this.maxComponentDepth=t.readUInt16()},t}(),be=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ce(t,ie),t.prototype.tag=\"hmtx\",t.prototype.parse=function(t){var e,r,n,i,a,o,s;for(t.pos=this.offset,this.metrics=[],e=0,o=this.file.hhea.numberOfMetrics;0<=o?e<o:e>o;e=0<=o?++e:--e)this.metrics.push({advance:t.readUInt16(),lsb:t.readInt16()});for(n=this.file.maxp.numGlyphs-this.file.hhea.numberOfMetrics,this.leftSideBearings=function(){var r,i;for(i=[],e=r=0;0<=n?r<n:r>n;e=0<=n?++r:--r)i.push(t.readInt16());return i}(),this.widths=function(){var t,e,r,n;for(n=[],t=0,e=(r=this.metrics).length;t<e;t++)i=r[t],n.push(i.advance);return n}.call(this),r=this.widths[this.widths.length-1],s=[],e=a=0;0<=n?a<n:a>n;e=0<=n?++a:--a)s.push(this.widths.push(r));return s},t.prototype.forGlyph=function(t){return t in this.metrics?this.metrics[t]:{advance:this.metrics[this.metrics.length-1].advance,lsb:this.leftSideBearings[t-this.metrics.length]}},t}(),ye=[].slice,we=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ce(t,ie),t.prototype.tag=\"glyf\",t.prototype.parse=function(){return this.cache={}},t.prototype.glyphFor=function(t){var e,r,n,i,a,o,s,c,u,l;return t in this.cache?this.cache[t]:(i=this.file.loca,e=this.file.contents,r=i.indexOf(t),0===(n=i.lengthOf(t))?this.cache[t]=null:(e.pos=this.offset+r,a=(o=new ae(e.read(n))).readShort(),c=o.readShort(),l=o.readShort(),s=o.readShort(),u=o.readShort(),this.cache[t]=-1===a?new Le(o,c,l,s,u):new Ne(o,a,c,l,s,u),this.cache[t]))},t.prototype.encode=function(t,e,r){var n,i,a,o,s;for(a=[],i=[],o=0,s=e.length;o<s;o++)n=t[e[o]],i.push(a.length),n&&(a=a.concat(n.encode(r)));return i.push(a.length),{table:a,offsets:i}},t}(),Ne=function(){function t(t,e,r,n,i,a){this.raw=t,this.numberOfContours=e,this.xMin=r,this.yMin=n,this.xMax=i,this.yMax=a,this.compound=!1}return t.prototype.encode=function(){return this.raw.data},t}(),Le=function(){function t(t,e,r,n,i){var a,o;for(this.raw=t,this.xMin=e,this.yMin=r,this.xMax=n,this.yMax=i,this.compound=!0,this.glyphIDs=[],this.glyphOffsets=[],a=this.raw;o=a.readShort(),this.glyphOffsets.push(a.pos),this.glyphIDs.push(a.readUInt16()),32&o;)a.pos+=1&o?4:2,128&o?a.pos+=8:64&o?a.pos+=4:8&o&&(a.pos+=2)}return t.prototype.encode=function(){var t,e,r;for(e=new ae(ye.call(this.raw.data)),t=0,r=this.glyphIDs.length;t<r;++t)e.pos=this.glyphOffsets[t];return e.data},t}(),xe=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ce(t,ie),t.prototype.tag=\"loca\",t.prototype.parse=function(t){var e,r;return t.pos=this.offset,e=this.file.head.indexToLocFormat,this.offsets=0===e?function(){var e,n;for(n=[],r=0,e=this.length;r<e;r+=2)n.push(2*t.readUInt16());return n}.call(this):function(){var e,n;for(n=[],r=0,e=this.length;r<e;r+=4)n.push(t.readUInt32());return n}.call(this)},t.prototype.indexOf=function(t){return this.offsets[t]},t.prototype.lengthOf=function(t){return this.offsets[t+1]-this.offsets[t]},t.prototype.encode=function(t,e){for(var r=new Uint32Array(this.offsets.length),n=0,i=0,a=0;a<r.length;++a)if(r[a]=n,i<e.length&&e[i]==a){++i,r[a]=n;var o=this.offsets[a],s=this.offsets[a+1]-o;s>0&&(n+=s)}for(var c=new Array(4*r.length),u=0;u<r.length;++u)c[4*u+3]=255&r[u],c[4*u+2]=(65280&r[u])>>8,c[4*u+1]=(16711680&r[u])>>16,c[4*u]=(4278190080&r[u])>>24;return c},t}(),Ae=function(){function t(t){this.font=t,this.subset={},this.unicodes={},this.next=33}return t.prototype.generateCmap=function(){var t,e,r,n,i;for(e in n=this.font.cmap.tables[0].codeMap,t={},i=this.subset)r=i[e],t[e]=n[r];return t},t.prototype.glyphsFor=function(t){var e,r,n,i,a,o,s;for(n={},a=0,o=t.length;a<o;a++)n[i=t[a]]=this.font.glyf.glyphFor(i);for(i in e=[],n)(null!=(r=n[i])?r.compound:void 0)&&e.push.apply(e,r.glyphIDs);if(e.length>0)for(i in s=this.glyphsFor(e))r=s[i],n[i]=r;return n},t.prototype.encode=function(t,e){var r,n,i,a,o,s,c,u,l,h,f,d,p,g,m;for(n in r=he.encode(this.generateCmap(),\"unicode\"),a=this.glyphsFor(t),f={0:0},m=r.charMap)f[(s=m[n]).old]=s.new;for(d in h=r.maxGlyphID,a)d in f||(f[d]=h++);return u=function(t){var e,r;for(e in r={},t)r[t[e]]=e;return r}(f),l=Object.keys(u).sort(function(t,e){return t-e}),p=function(){var t,e,r;for(r=[],t=0,e=l.length;t<e;t++)o=l[t],r.push(u[o]);return r}(),i=this.font.glyf.encode(a,p,f),c=this.font.loca.encode(i.offsets,p),g={cmap:this.font.cmap.raw(),glyf:i.table,loca:c,hmtx:this.font.hmtx.raw(),hhea:this.font.hhea.raw(),maxp:this.font.maxp.raw(),post:this.font.post.raw(),name:this.font.name.raw(),head:this.font.head.encode(e)},this.font.os2.exists&&(g[\"OS/2\"]=this.font.os2.raw()),this.font.directory.encode(g)},t}();C.API.PDFObject=function(){var t;function e(){}return t=function(t,e){return(Array(e+1).join(\"0\")+t).slice(-e)},e.convert=function(r){var n,i,a,o;if(Array.isArray(r))return\"[\"+function(){var t,i,a;for(a=[],t=0,i=r.length;t<i;t++)n=r[t],a.push(e.convert(n));return a}().join(\" \")+\"]\";if(\"string\"==typeof r)return\"/\"+r;if(null!=r?r.isString:void 0)return\"(\"+r+\")\";if(r instanceof Date)return\"(D:\"+t(r.getUTCFullYear(),4)+t(r.getUTCMonth(),2)+t(r.getUTCDate(),2)+t(r.getUTCHours(),2)+t(r.getUTCMinutes(),2)+t(r.getUTCSeconds(),2)+\"Z)\";if(\"[object Object]\"==={}.toString.call(r)){for(i in a=[\"<<\"],r)o=r[i],a.push(\"/\"+i+\" \"+e.convert(o));return a.push(\">>\"),a.join(\"\\n\")}return\"\"+r},e}(),exports.AcroForm=yt,exports.AcroFormAppearance=vt,exports.AcroFormButton=lt,exports.AcroFormCheckBox=pt,exports.AcroFormChoiceField=ot,exports.AcroFormComboBox=ct,exports.AcroFormEditBox=ut,exports.AcroFormListBox=st,exports.AcroFormPasswordField=mt,exports.AcroFormPushButton=ht,exports.AcroFormRadioButton=ft,exports.AcroFormTextField=gt,exports.GState=P,exports.ShadingPattern=F,exports.TilingPattern=I,exports[\"default\"]=C,exports.jsPDF=C;\n//# sourceMappingURL=jspdf.node.min.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvanNwZGYvZGlzdC9qc3BkZi5ub2RlLm1pbi5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw4Q0FBMkMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxNQUFNLG1CQUFPLENBQUMsd0RBQVEsSUFBSSxtQkFBTyxDQUFDLGdFQUFVLGVBQWUsNkdBQTZHO0FBQy9OO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsY0FBYyxNQUFNLDBEQUEwRCxrcEZBQWtwRiw0Q0FBNEMsWUFBWSxjQUFjLElBQUksU0FBUyxJQUFJLFNBQVMsSUFBSSwyRUFBMkUsc0RBQXNELEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUscURBQXFELCtEQUErRCxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLCtDQUErQyw4RUFBOEUsTUFBTSxXQUFXLEtBQUsseUNBQXlDLDJEQUEyRCwyTEFBMkwsZ0RBQWdELHVCQUF1QixzRUFBc0UsdUZBQXVGLHdDQUF3QyxhQUFhLHNGQUFzRixPQUFPLHVCQUF1QixnSEFBZ0gsbUJBQW1CO0FBQ2pqSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLGdDQUFnQyxrakVBQWtqRSx3QkFBd0IsNkNBQTZDLDBCQUEwQiw2QkFBNkIsMEJBQTBCLDZCQUE2QiwwQkFBMEIsMEJBQTBCLDBCQUEwQiw2QkFBNkIsY0FBYyxpRUFBaUUs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bUMsa0JBQWtCLFFBQVEsZ0JBQWdCLElBQUkseUNBQXlDLCtFQUErRSx5REFBeUQsU0FBUyxrQ0FBa0Msa0NBQWtDLDJFQUEyRSxJQUFJLG1DQUFtQyw2Q0FBNkMscUJBQXFCLFFBQVEsYUFBYSxhQUFhLFNBQVMsd0NBQXdDLFdBQVcsZUFBZSxVQUFVLHdCQUF3QixJQUFJLHdCQUF3QixTQUFTLDBFQUEwRSw4TUFBOE0scUZBQXFGLEdBQUcsR0FBRywyQkFBMkIsTUFBTSxjQUFjLHVCQUF1Qix5Q0FBeUMsdUJBQXVCLFlBQVkseUNBQXlDLFVBQVUsd0JBQXdCLElBQUksZ0NBQWdDLFNBQVMsaUJBQWlCLGtDQUFrQyw2Q0FBNkMsMEtBQTBLLHlCQUF5QixtQkFBbUIsMERBQTBELGlDQUFpQyxXQUFXLEdBQUcsR0FBRyxnQkFBZ0IsSUFBSSwwQkFBMEIsSUFBSSxzQkFBc0IsSUFBSSx3QkFBd0IsSUFBSSwyQkFBMkIsSUFBSSx3QkFBd0IsSUFBSSx1QkFBdUIsSUFBSSx1QkFBdUIsSUFBSSw2QkFBNkIsSUFBSSwwQkFBMEIsSUFBSSwyQkFBMkIsSUFBSSx5QkFBeUIsSUFBSSxjQUFjLEdBQUcsc0JBQXNCLEdBQUcscUJBQXFCLEdBQUcsa0JBQWUsR0FBRyxhQUFhO0FBQ2g0bEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92ZXJpZnlwYWNrLWZyb250ZW5kLy4vbm9kZV9tb2R1bGVzL2pzcGRmL2Rpc3QvanNwZGYubm9kZS5taW4uanM/OTY3MyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGxpY2Vuc2VcbiAqXG4gKiBqc1BERiAtIFBERiBEb2N1bWVudCBjcmVhdGlvbiBmcm9tIEphdmFTY3JpcHRcbiAqIFZlcnNpb24gNC4yLjEgQnVpbHQgb24gMjAyNi0wMy0xN1QxMToxMToyNy4wNTdaXG4gKiAgICAgICAgICAgICAgICAgICAgICBDb21taXRJRCAwMDAwMDAwMFxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMC0yMDI1IEphbWVzIEhhbGwgPGphbWVzQHBhcmFsbC5heD4sIGh0dHBzOi8vZ2l0aHViLmNvbS9NclJpby9qc1BERlxuICogICAgICAgICAgICAgICAyMDE1LTIwMjUgeVdvcmtzIEdtYkgsIGh0dHA6Ly93d3cueXdvcmtzLmNvbVxuICogICAgICAgICAgICAgICAyMDE1LTIwMjUgTHVrYXMgSG9sbMOkbmRlciA8bHVrYXMuaG9sbGFlbmRlckB5d29ya3MuY29tPiwgaHR0cHM6Ly9naXRodWIuY29tL0hhY2ticmV0dFhYWFxuICogICAgICAgICAgICAgICAyMDE2LTIwMTggQXJhcyBBYmJhc2kgPGFyYXMuYWJiYXNpQGdtYWlsLmNvbT5cbiAqICAgICAgICAgICAgICAgMjAxMCBBYXJvbiBTcGlrZSwgaHR0cHM6Ly9naXRodWIuY29tL2Fjc3Bpa2VcbiAqICAgICAgICAgICAgICAgMjAxMiBXaWxsb3cgU3lzdGVtcyBDb3Jwb3JhdGlvbiwgaHR0cHM6Ly9naXRodWIuY29tL3dpbGxvd3N5c3RlbXNcbiAqICAgICAgICAgICAgICAgMjAxMiBQYWJsbyBIZXNzLCBodHRwczovL2dpdGh1Yi5jb20vcGFibG9oZXNzXG4gKiAgICAgICAgICAgICAgIDIwMTIgRmxvcmlhbiBKZW5ldHQsIGh0dHBzOi8vZ2l0aHViLmNvbS9mamVuZXR0XG4gKiAgICAgICAgICAgICAgIDIwMTMgV2FycmVuIFdlY2tlc3NlciwgaHR0cHM6Ly9naXRodWIuY29tL3dhcnJlbndlY2tlc3NlclxuICogICAgICAgICAgICAgICAyMDEzIFlvdXNzZWYgQmVkZGFkLCBodHRwczovL2dpdGh1Yi5jb20vbGlmb2ZcbiAqICAgICAgICAgICAgICAgMjAxMyBMZWUgRHJpc2NvbGwsIGh0dHBzOi8vZ2l0aHViLmNvbS9sc2RyaXNjb2xsXG4gKiAgICAgICAgICAgICAgIDIwMTMgU3RlZmFuIFNsb25ldnNraXksIGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVmc2xvblxuICogICAgICAgICAgICAgICAyMDEzIEplcmVteSBNb3JlbCwgaHR0cHM6Ly9naXRodWIuY29tL2ptb3JlbFxuICogICAgICAgICAgICAgICAyMDEzIENocmlzdG9waCBIYXJ0bWFubiwgaHR0cHM6Ly9naXRodWIuY29tL2NocmlzLXJvY2tcbiAqICAgICAgICAgICAgICAgMjAxNCBKdWFuIFBhYmxvIEdhdmlyaWEsIGh0dHBzOi8vZ2l0aHViLmNvbS9qdWFucGdhdmlyaWFcbiAqICAgICAgICAgICAgICAgMjAxNCBKYW1lcyBNYWtlcywgaHR0cHM6Ly9naXRodWIuY29tL2RvbGxhcnV3XG4gKiAgICAgICAgICAgICAgIDIwMTQgRGllZ28gQ2Fzb3JyYW4sIGh0dHBzOi8vZ2l0aHViLmNvbS9kaWVnb2NyXG4gKiAgICAgICAgICAgICAgIDIwMTQgU3RldmVuIFNwdW5naW4sIGh0dHBzOi8vZ2l0aHViLmNvbS9GbGFtZW5jb1xuICogICAgICAgICAgICAgICAyMDE0IEtlbm5ldGggR2xhc3NleSwgaHR0cHM6Ly9naXRodWIuY29tL0dhdnZlcnNcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmdcbiAqIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuICogXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4gKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4gKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG9cbiAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0b1xuICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlXG4gKiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELFxuICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORFxuICogTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRVxuICogTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTlxuICogT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OXG4gKiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiAqXG4gKiBDb250cmlidXRvcihzKTpcbiAqICAgIHNpZWZrZW5qLCBhaHdvbGYsIHJpY2t5Z3UsIE1pZG5pdGgsIHNhaW50Y2xhaXIsIGVhcGFyYW5nbyxcbiAqICAgIGtpbTNlciwgbWZvLCBhbG5vcnRoLCBGbGFtZW5jb1xuICovXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciB0PXJlcXVpcmUoXCJmZmxhdGVcIiksZT1yZXF1aXJlKFwiZmFzdC1wbmdcIikscj1mdW5jdGlvbigpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OlwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZWxmP3NlbGY6dGhpc30oKTtcbi8qKlxuICogQSBjbGFzcyB0byBwYXJzZSBjb2xvciB2YWx1ZXNcbiAqIEBhdXRob3IgU3RveWFuIFN0ZWZhbm92IDxzc3Rvb0BnbWFpbC5jb20+XG4gKiB7QGxpbmsgICBodHRwOi8vd3d3LnBocGllZC5jb20vcmdiLWNvbG9yLXBhcnNlci1pbi1qYXZhc2NyaXB0L31cbiAqIEBsaWNlbnNlIFVzZSBpdCBpZiB5b3UgbGlrZSBpdFxuICovXG5mdW5jdGlvbiBuKHQpe3ZhciBlO3Q9dHx8XCJcIix0aGlzLm9rPSExLFwiI1wiPT10LmNoYXJBdCgwKSYmKHQ9dC5zdWJzdHIoMSw2KSksdD17YWxpY2VibHVlOlwiZjBmOGZmXCIsYW50aXF1ZXdoaXRlOlwiZmFlYmQ3XCIsYXF1YTpcIjAwZmZmZlwiLGFxdWFtYXJpbmU6XCI3ZmZmZDRcIixhenVyZTpcImYwZmZmZlwiLGJlaWdlOlwiZjVmNWRjXCIsYmlzcXVlOlwiZmZlNGM0XCIsYmxhY2s6XCIwMDAwMDBcIixibGFuY2hlZGFsbW9uZDpcImZmZWJjZFwiLGJsdWU6XCIwMDAwZmZcIixibHVldmlvbGV0OlwiOGEyYmUyXCIsYnJvd246XCJhNTJhMmFcIixidXJseXdvb2Q6XCJkZWI4ODdcIixjYWRldGJsdWU6XCI1ZjllYTBcIixjaGFydHJldXNlOlwiN2ZmZjAwXCIsY2hvY29sYXRlOlwiZDI2OTFlXCIsY29yYWw6XCJmZjdmNTBcIixjb3JuZmxvd2VyYmx1ZTpcIjY0OTVlZFwiLGNvcm5zaWxrOlwiZmZmOGRjXCIsY3JpbXNvbjpcImRjMTQzY1wiLGN5YW46XCIwMGZmZmZcIixkYXJrYmx1ZTpcIjAwMDA4YlwiLGRhcmtjeWFuOlwiMDA4YjhiXCIsZGFya2dvbGRlbnJvZDpcImI4ODYwYlwiLGRhcmtncmF5OlwiYTlhOWE5XCIsZGFya2dyZWVuOlwiMDA2NDAwXCIsZGFya2toYWtpOlwiYmRiNzZiXCIsZGFya21hZ2VudGE6XCI4YjAwOGJcIixkYXJrb2xpdmVncmVlbjpcIjU1NmIyZlwiLGRhcmtvcmFuZ2U6XCJmZjhjMDBcIixkYXJrb3JjaGlkOlwiOTkzMmNjXCIsZGFya3JlZDpcIjhiMDAwMFwiLGRhcmtzYWxtb246XCJlOTk2N2FcIixkYXJrc2VhZ3JlZW46XCI4ZmJjOGZcIixkYXJrc2xhdGVibHVlOlwiNDgzZDhiXCIsZGFya3NsYXRlZ3JheTpcIjJmNGY0ZlwiLGRhcmt0dXJxdW9pc2U6XCIwMGNlZDFcIixkYXJrdmlvbGV0OlwiOTQwMGQzXCIsZGVlcHBpbms6XCJmZjE0OTNcIixkZWVwc2t5Ymx1ZTpcIjAwYmZmZlwiLGRpbWdyYXk6XCI2OTY5NjlcIixkb2RnZXJibHVlOlwiMWU5MGZmXCIsZmVsZHNwYXI6XCJkMTkyNzVcIixmaXJlYnJpY2s6XCJiMjIyMjJcIixmbG9yYWx3aGl0ZTpcImZmZmFmMFwiLGZvcmVzdGdyZWVuOlwiMjI4YjIyXCIsZnVjaHNpYTpcImZmMDBmZlwiLGdhaW5zYm9ybzpcImRjZGNkY1wiLGdob3N0d2hpdGU6XCJmOGY4ZmZcIixnb2xkOlwiZmZkNzAwXCIsZ29sZGVucm9kOlwiZGFhNTIwXCIsZ3JheTpcIjgwODA4MFwiLGdyZWVuOlwiMDA4MDAwXCIsZ3JlZW55ZWxsb3c6XCJhZGZmMmZcIixob25leWRldzpcImYwZmZmMFwiLGhvdHBpbms6XCJmZjY5YjRcIixpbmRpYW5yZWQ6XCJjZDVjNWNcIixpbmRpZ286XCI0YjAwODJcIixpdm9yeTpcImZmZmZmMFwiLGtoYWtpOlwiZjBlNjhjXCIsbGF2ZW5kZXI6XCJlNmU2ZmFcIixsYXZlbmRlcmJsdXNoOlwiZmZmMGY1XCIsbGF3bmdyZWVuOlwiN2NmYzAwXCIsbGVtb25jaGlmZm9uOlwiZmZmYWNkXCIsbGlnaHRibHVlOlwiYWRkOGU2XCIsbGlnaHRjb3JhbDpcImYwODA4MFwiLGxpZ2h0Y3lhbjpcImUwZmZmZlwiLGxpZ2h0Z29sZGVucm9keWVsbG93OlwiZmFmYWQyXCIsbGlnaHRncmV5OlwiZDNkM2QzXCIsbGlnaHRncmVlbjpcIjkwZWU5MFwiLGxpZ2h0cGluazpcImZmYjZjMVwiLGxpZ2h0c2FsbW9uOlwiZmZhMDdhXCIsbGlnaHRzZWFncmVlbjpcIjIwYjJhYVwiLGxpZ2h0c2t5Ymx1ZTpcIjg3Y2VmYVwiLGxpZ2h0c2xhdGVibHVlOlwiODQ3MGZmXCIsbGlnaHRzbGF0ZWdyYXk6XCI3Nzg4OTlcIixsaWdodHN0ZWVsYmx1ZTpcImIwYzRkZVwiLGxpZ2h0eWVsbG93OlwiZmZmZmUwXCIsbGltZTpcIjAwZmYwMFwiLGxpbWVncmVlbjpcIjMyY2QzMlwiLGxpbmVuOlwiZmFmMGU2XCIsbWFnZW50YTpcImZmMDBmZlwiLG1hcm9vbjpcIjgwMDAwMFwiLG1lZGl1bWFxdWFtYXJpbmU6XCI2NmNkYWFcIixtZWRpdW1ibHVlOlwiMDAwMGNkXCIsbWVkaXVtb3JjaGlkOlwiYmE1NWQzXCIsbWVkaXVtcHVycGxlOlwiOTM3MGQ4XCIsbWVkaXVtc2VhZ3JlZW46XCIzY2IzNzFcIixtZWRpdW1zbGF0ZWJsdWU6XCI3YjY4ZWVcIixtZWRpdW1zcHJpbmdncmVlbjpcIjAwZmE5YVwiLG1lZGl1bXR1cnF1b2lzZTpcIjQ4ZDFjY1wiLG1lZGl1bXZpb2xldHJlZDpcImM3MTU4NVwiLG1pZG5pZ2h0Ymx1ZTpcIjE5MTk3MFwiLG1pbnRjcmVhbTpcImY1ZmZmYVwiLG1pc3R5cm9zZTpcImZmZTRlMVwiLG1vY2Nhc2luOlwiZmZlNGI1XCIsbmF2YWpvd2hpdGU6XCJmZmRlYWRcIixuYXZ5OlwiMDAwMDgwXCIsb2xkbGFjZTpcImZkZjVlNlwiLG9saXZlOlwiODA4MDAwXCIsb2xpdmVkcmFiOlwiNmI4ZTIzXCIsb3JhbmdlOlwiZmZhNTAwXCIsb3JhbmdlcmVkOlwiZmY0NTAwXCIsb3JjaGlkOlwiZGE3MGQ2XCIscGFsZWdvbGRlbnJvZDpcImVlZThhYVwiLHBhbGVncmVlbjpcIjk4ZmI5OFwiLHBhbGV0dXJxdW9pc2U6XCJhZmVlZWVcIixwYWxldmlvbGV0cmVkOlwiZDg3MDkzXCIscGFwYXlhd2hpcDpcImZmZWZkNVwiLHBlYWNocHVmZjpcImZmZGFiOVwiLHBlcnU6XCJjZDg1M2ZcIixwaW5rOlwiZmZjMGNiXCIscGx1bTpcImRkYTBkZFwiLHBvd2RlcmJsdWU6XCJiMGUwZTZcIixwdXJwbGU6XCI4MDAwODBcIixyZWQ6XCJmZjAwMDBcIixyb3N5YnJvd246XCJiYzhmOGZcIixyb3lhbGJsdWU6XCI0MTY5ZTFcIixzYWRkbGVicm93bjpcIjhiNDUxM1wiLHNhbG1vbjpcImZhODA3MlwiLHNhbmR5YnJvd246XCJmNGE0NjBcIixzZWFncmVlbjpcIjJlOGI1N1wiLHNlYXNoZWxsOlwiZmZmNWVlXCIsc2llbm5hOlwiYTA1MjJkXCIsc2lsdmVyOlwiYzBjMGMwXCIsc2t5Ymx1ZTpcIjg3Y2VlYlwiLHNsYXRlYmx1ZTpcIjZhNWFjZFwiLHNsYXRlZ3JheTpcIjcwODA5MFwiLHNub3c6XCJmZmZhZmFcIixzcHJpbmdncmVlbjpcIjAwZmY3ZlwiLHN0ZWVsYmx1ZTpcIjQ2ODJiNFwiLHRhbjpcImQyYjQ4Y1wiLHRlYWw6XCIwMDgwODBcIix0aGlzdGxlOlwiZDhiZmQ4XCIsdG9tYXRvOlwiZmY2MzQ3XCIsdHVycXVvaXNlOlwiNDBlMGQwXCIsdmlvbGV0OlwiZWU4MmVlXCIsdmlvbGV0cmVkOlwiZDAyMDkwXCIsd2hlYXQ6XCJmNWRlYjNcIix3aGl0ZTpcImZmZmZmZlwiLHdoaXRlc21va2U6XCJmNWY1ZjVcIix5ZWxsb3c6XCJmZmZmMDBcIix5ZWxsb3dncmVlbjpcIjlhY2QzMlwifVt0PSh0PXQucmVwbGFjZSgvIC9nLFwiXCIpKS50b0xvd2VyQ2FzZSgpXXx8dDtmb3IodmFyIHI9W3tyZTovXnJnYlxcKChcXGR7MSwzfSksXFxzKihcXGR7MSwzfSksXFxzKihcXGR7MSwzfSlcXCkkLyxleGFtcGxlOltcInJnYigxMjMsIDIzNCwgNDUpXCIsXCJyZ2IoMjU1LDIzNCwyNDUpXCJdLHByb2Nlc3M6ZnVuY3Rpb24odCl7cmV0dXJuW3BhcnNlSW50KHRbMV0pLHBhcnNlSW50KHRbMl0pLHBhcnNlSW50KHRbM10pXX19LHtyZTovXihcXHd7Mn0pKFxcd3syfSkoXFx3ezJ9KSQvLGV4YW1wbGU6W1wiIzAwZmYwMFwiLFwiMzM2Njk5XCJdLHByb2Nlc3M6ZnVuY3Rpb24odCl7cmV0dXJuW3BhcnNlSW50KHRbMV0sMTYpLHBhcnNlSW50KHRbMl0sMTYpLHBhcnNlSW50KHRbM10sMTYpXX19LHtyZTovXihcXHd7MX0pKFxcd3sxfSkoXFx3ezF9KSQvLGV4YW1wbGU6W1wiI2ZiMFwiLFwiZjBmXCJdLHByb2Nlc3M6ZnVuY3Rpb24odCl7cmV0dXJuW3BhcnNlSW50KHRbMV0rdFsxXSwxNikscGFyc2VJbnQodFsyXSt0WzJdLDE2KSxwYXJzZUludCh0WzNdK3RbM10sMTYpXX19XSxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl0ucmUsYT1yW25dLnByb2Nlc3Msbz1pLmV4ZWModCk7byYmKGU9YShvKSx0aGlzLnI9ZVswXSx0aGlzLmc9ZVsxXSx0aGlzLmI9ZVsyXSx0aGlzLm9rPSEwKX10aGlzLnI9dGhpcy5yPDB8fGlzTmFOKHRoaXMucik/MDp0aGlzLnI+MjU1PzI1NTp0aGlzLnIsdGhpcy5nPXRoaXMuZzwwfHxpc05hTih0aGlzLmcpPzA6dGhpcy5nPjI1NT8yNTU6dGhpcy5nLHRoaXMuYj10aGlzLmI8MHx8aXNOYU4odGhpcy5iKT8wOnRoaXMuYj4yNTU/MjU1OnRoaXMuYix0aGlzLnRvUkdCPWZ1bmN0aW9uKCl7cmV0dXJuXCJyZ2IoXCIrdGhpcy5yK1wiLCBcIit0aGlzLmcrXCIsIFwiK3RoaXMuYitcIilcIn0sdGhpcy50b0hleD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuci50b1N0cmluZygxNiksZT10aGlzLmcudG9TdHJpbmcoMTYpLHI9dGhpcy5iLnRvU3RyaW5nKDE2KTtyZXR1cm4gMT09dC5sZW5ndGgmJih0PVwiMFwiK3QpLDE9PWUubGVuZ3RoJiYoZT1cIjBcIitlKSwxPT1yLmxlbmd0aCYmKHI9XCIwXCIrciksXCIjXCIrdCtlK3J9fWNvbnN0IGk9ci5hdG9iLmJpbmQociksYT1yLmJ0b2EuYmluZChyKTtmdW5jdGlvbiBvKCl7ci5jb25zb2xlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiByLmNvbnNvbGUubG9nJiZyLmNvbnNvbGUubG9nLmFwcGx5KHIuY29uc29sZSxhcmd1bWVudHMpfXZhciBzPXtsb2c6byx3YXJuOmZ1bmN0aW9uKHQpe3IuY29uc29sZSYmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHIuY29uc29sZS53YXJuP3IuY29uc29sZS53YXJuLmFwcGx5KHIuY29uc29sZSxhcmd1bWVudHMpOm8uY2FsbChudWxsLGFyZ3VtZW50cykpfSxlcnJvcjpmdW5jdGlvbih0KXtyLmNvbnNvbGUmJihcImZ1bmN0aW9uXCI9PXR5cGVvZiByLmNvbnNvbGUuZXJyb3I/ci5jb25zb2xlLmVycm9yLmFwcGx5KHIuY29uc29sZSxhcmd1bWVudHMpOm8odCkpfX07XG4vKipcbiAqIEBsaWNlbnNlXG4gKiBKb3NlcGggTXllcnMgZG9lcyBub3Qgc3BlY2lmeSBhIHBhcnRpY3VsYXIgbGljZW5zZSBmb3IgaGlzIHdvcmsuXG4gKlxuICogQXV0aG9yOiBKb3NlcGggTXllcnNcbiAqIEFjY2Vzc2VkIGZyb206IGh0dHA6Ly93d3cubXllcnNkYWlseS5vcmcvam9zZXBoL2phdmFzY3JpcHQvbWQ1LmpzXG4gKlxuICogTW9kaWZpZWQgYnk6IE93ZW4gTGVvbmdcbiAqL2Z1bmN0aW9uIGModCxlKXt2YXIgcj10WzBdLG49dFsxXSxpPXRbMl0sYT10WzNdO3I9bChyLG4saSxhLGVbMF0sNywtNjgwODc2OTM2KSxhPWwoYSxyLG4saSxlWzFdLDEyLC0zODk1NjQ1ODYpLGk9bChpLGEscixuLGVbMl0sMTcsNjA2MTA1ODE5KSxuPWwobixpLGEscixlWzNdLDIyLC0xMDQ0NTI1MzMwKSxyPWwocixuLGksYSxlWzRdLDcsLTE3NjQxODg5NyksYT1sKGEscixuLGksZVs1XSwxMiwxMjAwMDgwNDI2KSxpPWwoaSxhLHIsbixlWzZdLDE3LC0xNDczMjMxMzQxKSxuPWwobixpLGEscixlWzddLDIyLC00NTcwNTk4Mykscj1sKHIsbixpLGEsZVs4XSw3LDE3NzAwMzU0MTYpLGE9bChhLHIsbixpLGVbOV0sMTIsLTE5NTg0MTQ0MTcpLGk9bChpLGEscixuLGVbMTBdLDE3LC00MjA2Myksbj1sKG4saSxhLHIsZVsxMV0sMjIsLTE5OTA0MDQxNjIpLHI9bChyLG4saSxhLGVbMTJdLDcsMTgwNDYwMzY4MiksYT1sKGEscixuLGksZVsxM10sMTIsLTQwMzQxMTAxKSxpPWwoaSxhLHIsbixlWzE0XSwxNywtMTUwMjAwMjI5MCkscj1oKHIsbj1sKG4saSxhLHIsZVsxNV0sMjIsMTIzNjUzNTMyOSksaSxhLGVbMV0sNSwtMTY1Nzk2NTEwKSxhPWgoYSxyLG4saSxlWzZdLDksLTEwNjk1MDE2MzIpLGk9aChpLGEscixuLGVbMTFdLDE0LDY0MzcxNzcxMyksbj1oKG4saSxhLHIsZVswXSwyMCwtMzczODk3MzAyKSxyPWgocixuLGksYSxlWzVdLDUsLTcwMTU1ODY5MSksYT1oKGEscixuLGksZVsxMF0sOSwzODAxNjA4MyksaT1oKGksYSxyLG4sZVsxNV0sMTQsLTY2MDQ3ODMzNSksbj1oKG4saSxhLHIsZVs0XSwyMCwtNDA1NTM3ODQ4KSxyPWgocixuLGksYSxlWzldLDUsNTY4NDQ2NDM4KSxhPWgoYSxyLG4saSxlWzE0XSw5LC0xMDE5ODAzNjkwKSxpPWgoaSxhLHIsbixlWzNdLDE0LC0xODczNjM5NjEpLG49aChuLGksYSxyLGVbOF0sMjAsMTE2MzUzMTUwMSkscj1oKHIsbixpLGEsZVsxM10sNSwtMTQ0NDY4MTQ2NyksYT1oKGEscixuLGksZVsyXSw5LC01MTQwMzc4NCksaT1oKGksYSxyLG4sZVs3XSwxNCwxNzM1MzI4NDczKSxyPWYocixuPWgobixpLGEscixlWzEyXSwyMCwtMTkyNjYwNzczNCksaSxhLGVbNV0sNCwtMzc4NTU4KSxhPWYoYSxyLG4saSxlWzhdLDExLC0yMDIyNTc0NDYzKSxpPWYoaSxhLHIsbixlWzExXSwxNiwxODM5MDMwNTYyKSxuPWYobixpLGEscixlWzE0XSwyMywtMzUzMDk1NTYpLHI9ZihyLG4saSxhLGVbMV0sNCwtMTUzMDk5MjA2MCksYT1mKGEscixuLGksZVs0XSwxMSwxMjcyODkzMzUzKSxpPWYoaSxhLHIsbixlWzddLDE2LC0xNTU0OTc2MzIpLG49ZihuLGksYSxyLGVbMTBdLDIzLC0xMDk0NzMwNjQwKSxyPWYocixuLGksYSxlWzEzXSw0LDY4MTI3OTE3NCksYT1mKGEscixuLGksZVswXSwxMSwtMzU4NTM3MjIyKSxpPWYoaSxhLHIsbixlWzNdLDE2LC03MjI1MjE5NzkpLG49ZihuLGksYSxyLGVbNl0sMjMsNzYwMjkxODkpLHI9ZihyLG4saSxhLGVbOV0sNCwtNjQwMzY0NDg3KSxhPWYoYSxyLG4saSxlWzEyXSwxMSwtNDIxODE1ODM1KSxpPWYoaSxhLHIsbixlWzE1XSwxNiw1MzA3NDI1MjApLHI9ZChyLG49ZihuLGksYSxyLGVbMl0sMjMsLTk5NTMzODY1MSksaSxhLGVbMF0sNiwtMTk4NjMwODQ0KSxhPWQoYSxyLG4saSxlWzddLDEwLDExMjY4OTE0MTUpLGk9ZChpLGEscixuLGVbMTRdLDE1LC0xNDE2MzU0OTA1KSxuPWQobixpLGEscixlWzVdLDIxLC01NzQzNDA1NSkscj1kKHIsbixpLGEsZVsxMl0sNiwxNzAwNDg1NTcxKSxhPWQoYSxyLG4saSxlWzNdLDEwLC0xODk0OTg2NjA2KSxpPWQoaSxhLHIsbixlWzEwXSwxNSwtMTA1MTUyMyksbj1kKG4saSxhLHIsZVsxXSwyMSwtMjA1NDkyMjc5OSkscj1kKHIsbixpLGEsZVs4XSw2LDE4NzMzMTMzNTkpLGE9ZChhLHIsbixpLGVbMTVdLDEwLC0zMDYxMTc0NCksaT1kKGksYSxyLG4sZVs2XSwxNSwtMTU2MDE5ODM4MCksbj1kKG4saSxhLHIsZVsxM10sMjEsMTMwOTE1MTY0OSkscj1kKHIsbixpLGEsZVs0XSw2LC0xNDU1MjMwNzApLGE9ZChhLHIsbixpLGVbMTFdLDEwLC0xMTIwMjEwMzc5KSxpPWQoaSxhLHIsbixlWzJdLDE1LDcxODc4NzI1OSksbj1kKG4saSxhLHIsZVs5XSwyMSwtMzQzNDg1NTUxKSx0WzBdPU4ocix0WzBdKSx0WzFdPU4obix0WzFdKSx0WzJdPU4oaSx0WzJdKSx0WzNdPU4oYSx0WzNdKX1mdW5jdGlvbiB1KHQsZSxyLG4saSxhKXtyZXR1cm4gZT1OKE4oZSx0KSxOKG4sYSkpLE4oZTw8aXxlPj4+MzItaSxyKX1mdW5jdGlvbiBsKHQsZSxyLG4saSxhLG8pe3JldHVybiB1KGUmcnx+ZSZuLHQsZSxpLGEsbyl9ZnVuY3Rpb24gaCh0LGUscixuLGksYSxvKXtyZXR1cm4gdShlJm58ciZ+bix0LGUsaSxhLG8pfWZ1bmN0aW9uIGYodCxlLHIsbixpLGEsbyl7cmV0dXJuIHUoZV5yXm4sdCxlLGksYSxvKX1mdW5jdGlvbiBkKHQsZSxyLG4saSxhLG8pe3JldHVybiB1KHJeKGV8fm4pLHQsZSxpLGEsbyl9ZnVuY3Rpb24gcCh0KXt2YXIgZSxyPXQubGVuZ3RoLG49WzE3MzI1ODQxOTMsLTI3MTczMzg3OSwtMTczMjU4NDE5NCwyNzE3MzM4NzhdO2ZvcihlPTY0O2U8PXQubGVuZ3RoO2UrPTY0KWMobixnKHQuc3Vic3RyaW5nKGUtNjQsZSkpKTt0PXQuc3Vic3RyaW5nKGUtNjQpO3ZhciBpPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXTtmb3IoZT0wO2U8dC5sZW5ndGg7ZSsrKWlbZT4+Ml18PXQuY2hhckNvZGVBdChlKTw8KGUlNDw8Myk7aWYoaVtlPj4yXXw9MTI4PDwoZSU0PDwzKSxlPjU1KWZvcihjKG4saSksZT0wO2U8MTY7ZSsrKWlbZV09MDtyZXR1cm4gaVsxNF09OCpyLGMobixpKSxufWZ1bmN0aW9uIGcodCl7dmFyIGUscj1bXTtmb3IoZT0wO2U8NjQ7ZSs9NClyW2U+PjJdPXQuY2hhckNvZGVBdChlKSsodC5jaGFyQ29kZUF0KGUrMSk8PDgpKyh0LmNoYXJDb2RlQXQoZSsyKTw8MTYpKyh0LmNoYXJDb2RlQXQoZSszKTw8MjQpO3JldHVybiByfXZhciBtPVwiMDEyMzQ1Njc4OWFiY2RlZlwiLnNwbGl0KFwiXCIpO2Z1bmN0aW9uIHYodCl7Zm9yKHZhciBlPVwiXCIscj0wO3I8NDtyKyspZSs9bVt0Pj44KnIrNCYxNV0rbVt0Pj44KnImMTVdO3JldHVybiBlfWZ1bmN0aW9uIGIodCl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JnQsKDY1MjgwJnQpPj44LCgxNjcxMTY4MCZ0KT4+MTYsKDQyNzgxOTAwODAmdCk+PjI0KX1mdW5jdGlvbiB5KHQpe3JldHVybiBwKHQpLm1hcChiKS5qb2luKFwiXCIpfXZhciB3PVwiNWQ0MTQwMmFiYzRiMmE3NmI5NzE5ZDkxMTAxN2M1OTJcIiE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXT12KHRbZV0pO3JldHVybiB0LmpvaW4oXCJcIil9KHAoXCJoZWxsb1wiKSk7ZnVuY3Rpb24gTih0LGUpe2lmKHcpe3ZhciByPSg2NTUzNSZ0KSsoNjU1MzUmZSk7cmV0dXJuKHQ+PjE2KSsoZT4+MTYpKyhyPj4xNik8PDE2fDY1NTM1JnJ9cmV0dXJuIHQrZSY0Mjk0OTY3Mjk1fVxuLyoqXG4gKiBAbGljZW5zZVxuICogRlBERiBpcyByZWxlYXNlZCB1bmRlciBhIHBlcm1pc3NpdmUgbGljZW5zZTogdGhlcmUgaXMgbm8gdXNhZ2UgcmVzdHJpY3Rpb24uXG4gKiBZb3UgbWF5IGVtYmVkIGl0IGZyZWVseSBpbiB5b3VyIGFwcGxpY2F0aW9uIChjb21tZXJjaWFsIG9yIG5vdCksIHdpdGggb3JcbiAqIHdpdGhvdXQgbW9kaWZpY2F0aW9ucy5cbiAqXG4gKiBSZWZlcmVuY2U6IGh0dHA6Ly93d3cuZnBkZi5vcmcvZW4vc2NyaXB0L3NjcmlwdDM3LnBocFxuICovZnVuY3Rpb24gTCh0LGUpe3ZhciByLG4saSxhO2lmKHQhPT1yKXtmb3IodmFyIG89KGk9dCxhPTErKDI1Ni90Lmxlbmd0aHwwKSxuZXcgQXJyYXkoYSsxKS5qb2luKGkpKSxzPVtdLGM9MDtjPDI1NjtjKyspc1tjXT1jO3ZhciB1PTA7Zm9yKGM9MDtjPDI1NjtjKyspe3ZhciBsPXNbY107dT0odStsK28uY2hhckNvZGVBdChjKSklMjU2LHNbY109c1t1XSxzW3VdPWx9cj10LG49c31lbHNlIHM9bjt2YXIgaD1lLmxlbmd0aCxmPTAsZD0wLHA9XCJcIjtmb3IoYz0wO2M8aDtjKyspZD0oZCsobD1zW2Y9KGYrMSklMjU2XSkpJTI1NixzW2ZdPXNbZF0sc1tkXT1sLG89c1soc1tmXStzW2RdKSUyNTZdLHArPVN0cmluZy5mcm9tQ2hhckNvZGUoZS5jaGFyQ29kZUF0KGMpXm8pO3JldHVybiBwfVxuLyoqXG4gKiBAbGljZW5zZVxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlXG4gKiBBdXRob3I6IE93ZW4gTGVvbmcgKEBvd2VubDEzMSlcbiAqIERhdGU6IDE1IE9jdCAyMDIwXG4gKiBSZWZlcmVuY2VzOlxuICogaHR0cHM6Ly93d3cuY3MuY211LmVkdS9+ZHN0L0Fkb2JlL0dhbGxlcnkvYW5vbjIxanVsMDEtcGRmLWVuY3J5cHRpb24udHh0XG4gKiBodHRwczovL2dpdGh1Yi5jb20vZm9saW9qcy9wZGZraXQvYmxvYi9tYXN0ZXIvbGliL3NlY3VyaXR5LmpzXG4gKiBodHRwOi8vd3d3LmZwZGYub3JnL2VuL3NjcmlwdC9zY3JpcHQzNy5waHBcbiAqL3ZhciB4PXtwcmludDo0LG1vZGlmeTo4LGNvcHk6MTYsXCJhbm5vdC1mb3Jtc1wiOjMyfTtmdW5jdGlvbiBBKHQsZSxyLG4pe3RoaXMudj0xLHRoaXMucj0yO2xldCBpPTE5Mjt0LmZvckVhY2goZnVuY3Rpb24odCl7aWYodm9pZCAwIT09eC5wZXJtKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcGVybWlzc2lvbjogXCIrdCk7aSs9eFt0XX0pLHRoaXMucGFkZGluZz1cIijCv05eTnXCikFkXFwwTlbDv8O6XHUwMDAxXFxiLi5cXDDCtsOQaD7CgC9cXGbCqcO+ZFNpelwiO2xldCBhPShlK3RoaXMucGFkZGluZykuc3Vic3RyKDAsMzIpLG89KHIrdGhpcy5wYWRkaW5nKS5zdWJzdHIoMCwzMik7dGhpcy5PPXRoaXMucHJvY2Vzc093bmVyUGFzc3dvcmQoYSxvKSx0aGlzLlA9LSgxKygyNTVeaSkpLHRoaXMuZW5jcnlwdGlvbktleT15KGErdGhpcy5PK3RoaXMubHNiRmlyc3RXb3JkKHRoaXMuUCkrdGhpcy5oZXhUb0J5dGVzKG4pKS5zdWJzdHIoMCw1KSx0aGlzLlU9TCh0aGlzLmVuY3J5cHRpb25LZXksdGhpcy5wYWRkaW5nKX1mdW5jdGlvbiBTKHQpe2lmKC9bXlxcdTAwMDAtXFx1MDBmZl0vLnRlc3QodCkpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBQREYgTmFtZSBPYmplY3Q6IFwiK3QrXCIsIE9ubHkgYWNjZXB0IEFTQ0lJIGNoYXJhY3RlcnMuXCIpO2Zvcih2YXIgZT1cIlwiLHI9dC5sZW5ndGgsbj0wO248cjtuKyspe3ZhciBpPXQuY2hhckNvZGVBdChuKTtlKz1pPDMzfHwzNT09PWl8fDM3PT09aXx8NDA9PT1pfHw0MT09PWl8fDQ3PT09aXx8NjA9PT1pfHw2Mj09PWl8fDkxPT09aXx8OTM9PT1pfHwxMjM9PT1pfHwxMjU9PT1pfHxpPjEyNj9cIiNcIisoXCIwXCIraS50b1N0cmluZygxNikpLnNsaWNlKC0yKTp0W25dfXJldHVybiBlfWZ1bmN0aW9uIF8odCl7aWYoXCJvYmplY3RcIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBDb250ZXh0IHBhc3NlZCB0byBpbml0aWFsaXplIFB1YlN1YiAoanNQREYtbW9kdWxlKVwiKTt2YXIgZT17fTt0aGlzLnN1YnNjcmliZT1mdW5jdGlvbih0LHIsbil7aWYobj1ufHwhMSxcInN0cmluZ1wiIT10eXBlb2YgdHx8XCJmdW5jdGlvblwiIT10eXBlb2Ygcnx8XCJib29sZWFuXCIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBQdWJTdWIuc3Vic2NyaWJlIChqc1BERi1tb2R1bGUpXCIpO2UuaGFzT3duUHJvcGVydHkodCl8fChlW3RdPXt9KTt2YXIgaT1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM1KTtyZXR1cm4gZVt0XVtpXT1bciwhIW5dLGl9LHRoaXMudW5zdWJzY3JpYmU9ZnVuY3Rpb24odCl7Zm9yKHZhciByIGluIGUpaWYoZVtyXVt0XSlyZXR1cm4gZGVsZXRlIGVbcl1bdF0sMD09PU9iamVjdC5rZXlzKGVbcl0pLmxlbmd0aCYmZGVsZXRlIGVbcl0sITA7cmV0dXJuITF9LHRoaXMucHVibGlzaD1mdW5jdGlvbihuKXtpZihlLmhhc093blByb3BlcnR5KG4pKXt2YXIgaT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSksYT1bXTtmb3IodmFyIG8gaW4gZVtuXSl7dmFyIGM9ZVtuXVtvXTt0cnl7Y1swXS5hcHBseSh0LGkpfWNhdGNoKHUpe3IuY29uc29sZSYmcy5lcnJvcihcImpzUERGIFB1YlN1YiBFcnJvclwiLHUubWVzc2FnZSx1KX1jWzFdJiZhLnB1c2gobyl9YS5sZW5ndGgmJmEuZm9yRWFjaCh0aGlzLnVuc3Vic2NyaWJlKX19LHRoaXMuZ2V0VG9waWNzPWZ1bmN0aW9uKCl7cmV0dXJuIGV9fWZ1bmN0aW9uIFAodCl7aWYoISh0aGlzIGluc3RhbmNlb2YgUCkpcmV0dXJuIG5ldyBQKHQpO3ZhciBlPVwib3BhY2l0eSxzdHJva2Utb3BhY2l0eVwiLnNwbGl0KFwiLFwiKTtmb3IodmFyIHIgaW4gdCl0Lmhhc093blByb3BlcnR5KHIpJiZlLmluZGV4T2Yocik+PTAmJih0aGlzW3JdPXRbcl0pO3RoaXMuaWQ9XCJcIix0aGlzLm9iamVjdE51bWJlcj0tMX1mdW5jdGlvbiBrKHQsZSl7dGhpcy5nU3RhdGU9dCx0aGlzLm1hdHJpeD1lLHRoaXMuaWQ9XCJcIix0aGlzLm9iamVjdE51bWJlcj0tMX1mdW5jdGlvbiBGKHQsZSxyLG4saSl7aWYoISh0aGlzIGluc3RhbmNlb2YgRikpcmV0dXJuIG5ldyBGKHQsZSxyLG4saSk7dGhpcy50eXBlPVwiYXhpYWxcIj09PXQ/MjozLHRoaXMuY29vcmRzPWUsdGhpcy5jb2xvcnM9cixrLmNhbGwodGhpcyxuLGkpfWZ1bmN0aW9uIEkodCxlLHIsbixpKXtpZighKHRoaXMgaW5zdGFuY2VvZiBJKSlyZXR1cm4gbmV3IEkodCxlLHIsbixpKTt0aGlzLmJvdW5kaW5nQm94PXQsdGhpcy54U3RlcD1lLHRoaXMueVN0ZXA9cix0aGlzLnN0cmVhbT1cIlwiLHRoaXMuY2xvbmVJbmRleD0wLGsuY2FsbCh0aGlzLG4saSl9ZnVuY3Rpb24gQyh0KXt2YXIgZSxpPVwic3RyaW5nXCI9PXR5cGVvZiBhcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOlwicFwiLG89YXJndW1lbnRzWzFdLGM9YXJndW1lbnRzWzJdLHU9YXJndW1lbnRzWzNdLGw9W10saD0xLGY9MTYsZD1cIlNcIixwPW51bGw7XCJvYmplY3RcIj09dHlwZW9mKHQ9dHx8e30pJiYoaT10Lm9yaWVudGF0aW9uLG89dC51bml0fHxvLGM9dC5mb3JtYXR8fGMsdT10LmNvbXByZXNzfHx0LmNvbXByZXNzUGRmfHx1LG51bGwhPT0ocD10LmVuY3J5cHRpb258fG51bGwpJiYocC51c2VyUGFzc3dvcmQ9cC51c2VyUGFzc3dvcmR8fFwiXCIscC5vd25lclBhc3N3b3JkPXAub3duZXJQYXNzd29yZHx8XCJcIixwLnVzZXJQZXJtaXNzaW9ucz1wLnVzZXJQZXJtaXNzaW9uc3x8W10pLGg9XCJudW1iZXJcIj09dHlwZW9mIHQudXNlclVuaXQ/TWF0aC5hYnModC51c2VyVW5pdCk6MSx2b2lkIDAhPT10LnByZWNpc2lvbiYmKGU9dC5wcmVjaXNpb24pLHZvaWQgMCE9PXQuZmxvYXRQcmVjaXNpb24mJihmPXQuZmxvYXRQcmVjaXNpb24pLGQ9dC5kZWZhdWx0UGF0aE9wZXJhdGlvbnx8XCJTXCIpLGw9dC5maWx0ZXJzfHwoITA9PT11P1tcIkZsYXRlRW5jb2RlXCJdOmwpLG89b3x8XCJtbVwiLGk9KFwiXCIrKGl8fFwiUFwiKSkudG9Mb3dlckNhc2UoKTt2YXIgZz10LnB1dE9ubHlVc2VkRm9udHN8fCExLG09e30sdj17aW50ZXJuYWw6e30sX19wcml2YXRlX186e319O3YuX19wcml2YXRlX18uUHViU3ViPV87dmFyIGI9XCIxLjNcIix5PXYuX19wcml2YXRlX18uZ2V0UGRmVmVyc2lvbj1mdW5jdGlvbigpe3JldHVybiBifTt2Ll9fcHJpdmF0ZV9fLnNldFBkZlZlcnNpb249ZnVuY3Rpb24odCl7Yj10fTt2YXIgdz17YTA6WzIzODMuOTQsMzM3MC4zOV0sYTE6WzE2ODMuNzgsMjM4My45NF0sYTI6WzExOTAuNTUsMTY4My43OF0sYTM6Wzg0MS44OSwxMTkwLjU1XSxhNDpbNTk1LjI4LDg0MS44OV0sYTU6WzQxOS41Myw1OTUuMjhdLGE2OlsyOTcuNjQsNDE5LjUzXSxhNzpbMjA5Ljc2LDI5Ny42NF0sYTg6WzE0Ny40LDIwOS43Nl0sYTk6WzEwNC44OCwxNDcuNF0sYTEwOls3My43LDEwNC44OF0sYjA6WzI4MzQuNjUsNDAwOC4xOV0sYjE6WzIwMDQuMDksMjgzNC42NV0sYjI6WzE0MTcuMzIsMjAwNC4wOV0sYjM6WzEwMDAuNjMsMTQxNy4zMl0sYjQ6WzcwOC42NiwxMDAwLjYzXSxiNTpbNDk4LjksNzA4LjY2XSxiNjpbMzU0LjMzLDQ5OC45XSxiNzpbMjQ5LjQ1LDM1NC4zM10sYjg6WzE3NS43NSwyNDkuNDVdLGI5OlsxMjQuNzIsMTc1Ljc1XSxiMTA6Wzg3Ljg3LDEyNC43Ml0sYzA6WzI1OTkuMzcsMzY3Ni41NF0sYzE6WzE4MzYuODUsMjU5OS4zN10sYzI6WzEyOTguMjcsMTgzNi44NV0sYzM6WzkxOC40MywxMjk4LjI3XSxjNDpbNjQ5LjEzLDkxOC40M10sYzU6WzQ1OS4yMSw2NDkuMTNdLGM2OlszMjMuMTUsNDU5LjIxXSxjNzpbMjI5LjYxLDMyMy4xNV0sYzg6WzE2MS41NywyMjkuNjFdLGM5OlsxMTMuMzksMTYxLjU3XSxjMTA6Wzc5LjM3LDExMy4zOV0sZGw6WzMxMS44MSw2MjMuNjJdLGxldHRlcjpbNjEyLDc5Ml0sXCJnb3Zlcm5tZW50LWxldHRlclwiOls1NzYsNzU2XSxsZWdhbDpbNjEyLDEwMDhdLFwianVuaW9yLWxlZ2FsXCI6WzU3NiwzNjBdLGxlZGdlcjpbMTIyNCw3OTJdLHRhYmxvaWQ6Wzc5MiwxMjI0XSxcImNyZWRpdC1jYXJkXCI6WzE1MywyNDNdfTt2Ll9fcHJpdmF0ZV9fLmdldFBhZ2VGb3JtYXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHd9O3ZhciBOPXYuX19wcml2YXRlX18uZ2V0UGFnZUZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gd1t0XX07Yz1jfHxcImE0XCI7dmFyIEw9XCJjb21wYXRcIix4PVwiYWR2YW5jZWRcIixrPUw7ZnVuY3Rpb24gaigpe3RoaXMuc2F2ZUdyYXBoaWNzU3RhdGUoKSxjdChuZXcgVXQoeHQsMCwwLC14dCwwLFNyKCkqeHQpLnRvU3RyaW5nKCkrXCIgY21cIiksdGhpcy5zZXRGb250U2l6ZSh0aGlzLmdldEZvbnRTaXplKCkveHQpLGQ9XCJuXCIsaz14fWZ1bmN0aW9uIE8oKXt0aGlzLnJlc3RvcmVHcmFwaGljc1N0YXRlKCksZD1cIlNcIixrPUx9dmFyIEI9di5fX3ByaXZhdGVfXy5jb21iaW5lRm9udFN0eWxlQW5kRm9udFdlaWdodD1mdW5jdGlvbih0LGUpe2lmKFwiYm9sZFwiPT10JiZcIm5vcm1hbFwiPT1lfHxcImJvbGRcIj09dCYmNDAwPT1lfHxcIm5vcm1hbFwiPT10JiZcIml0YWxpY1wiPT1lfHxcImJvbGRcIj09dCYmXCJpdGFsaWNcIj09ZSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIENvbWJpbmF0aW9uIG9mIGZvbnR3ZWlnaHQgYW5kIGZvbnRzdHlsZVwiKTtyZXR1cm4gZSYmKHQ9NDAwPT1lfHxcIm5vcm1hbFwiPT09ZT9cIml0YWxpY1wiPT09dD9cIml0YWxpY1wiOlwibm9ybWFsXCI6NzAwIT1lJiZcImJvbGRcIiE9PWV8fFwibm9ybWFsXCIhPT10Pyg3MDA9PWU/XCJib2xkXCI6ZSkrXCJcIit0OlwiYm9sZFwiKSx0fTt2LmFkdmFuY2VkQVBJPWZ1bmN0aW9uKHQpe3ZhciBlPWs9PT1MO3JldHVybiBlJiZqLmNhbGwodGhpcyksXCJmdW5jdGlvblwiIT10eXBlb2YgdHx8KHQodGhpcyksZSYmTy5jYWxsKHRoaXMpKSx0aGlzfSx2LmNvbXBhdEFQST1mdW5jdGlvbih0KXt2YXIgZT1rPT09eDtyZXR1cm4gZSYmTy5jYWxsKHRoaXMpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIHR8fCh0KHRoaXMpLGUmJmouY2FsbCh0aGlzKSksdGhpc30sdi5pc0FkdmFuY2VkQVBJPWZ1bmN0aW9uKCl7cmV0dXJuIGs9PT14fTt2YXIgcSxNPWZ1bmN0aW9uKHQpe2lmKGshPT14KXRocm93IG5ldyBFcnJvcih0K1wiIGlzIG9ubHkgYXZhaWxhYmxlIGluICdhZHZhbmNlZCcgQVBJIG1vZGUuIFlvdSBuZWVkIHRvIGNhbGwgYWR2YW5jZWRBUEkoKSBmaXJzdC5cIil9LEU9di5yb3VuZFRvUHJlY2lzaW9uPXYuX19wcml2YXRlX18ucm91bmRUb1ByZWNpc2lvbj1mdW5jdGlvbih0LHIpe3ZhciBuPWV8fHI7aWYoaXNOYU4odCl8fGlzTmFOKG4pKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnQgcGFzc2VkIHRvIGpzUERGLnJvdW5kVG9QcmVjaXNpb25cIik7cmV0dXJuIHQudG9GaXhlZChuKS5yZXBsYWNlKC8wKyQvLFwiXCIpfTtxPXYuaHBmPXYuX19wcml2YXRlX18uaHBmPVwibnVtYmVyXCI9PXR5cGVvZiBmP2Z1bmN0aW9uKHQpe2lmKGlzTmFOKHQpKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnQgcGFzc2VkIHRvIGpzUERGLmhwZlwiKTtyZXR1cm4gRSh0LGYpfTpcInNtYXJ0XCI9PT1mP2Z1bmN0aW9uKHQpe2lmKGlzTmFOKHQpKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnQgcGFzc2VkIHRvIGpzUERGLmhwZlwiKTtyZXR1cm4gRSh0LHQ+LTEmJnQ8MT8xNjo1KX06ZnVuY3Rpb24odCl7aWYoaXNOYU4odCkpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgdG8ganNQREYuaHBmXCIpO3JldHVybiBFKHQsMTYpfTt2YXIgUj12LmYyPXYuX19wcml2YXRlX18uZjI9ZnVuY3Rpb24odCl7aWYoaXNOYU4odCkpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgdG8ganNQREYuZjJcIik7cmV0dXJuIEUodCwyKX0sRD12Ll9fcHJpdmF0ZV9fLmYzPWZ1bmN0aW9uKHQpe2lmKGlzTmFOKHQpKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnQgcGFzc2VkIHRvIGpzUERGLmYzXCIpO3JldHVybiBFKHQsMyl9LFQ9di5zY2FsZT12Ll9fcHJpdmF0ZV9fLnNjYWxlPWZ1bmN0aW9uKHQpe2lmKGlzTmFOKHQpKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnQgcGFzc2VkIHRvIGpzUERGLnNjYWxlXCIpO3JldHVybiBrPT09TD90Knh0Oms9PT14P3Q6dm9pZCAwfSx6PWZ1bmN0aW9uKHQpe3JldHVybiBUKGZ1bmN0aW9uKHQpe3JldHVybiBrPT09TD9TcigpLXQ6az09PXg/dDp2b2lkIDB9KHQpKX07di5fX3ByaXZhdGVfXy5zZXRQcmVjaXNpb249di5zZXRQcmVjaXNpb249ZnVuY3Rpb24odCl7XCJudW1iZXJcIj09dHlwZW9mIHBhcnNlSW50KHQsMTApJiYoZT1wYXJzZUludCh0LDEwKSl9O3ZhciBVLEg9XCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiLFc9di5fX3ByaXZhdGVfXy5nZXRGaWxlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gSH0sVj12Ll9fcHJpdmF0ZV9fLnNldEZpbGVJZD1mdW5jdGlvbih0KXtyZXR1cm4gSD12b2lkIDAhPT10JiYvXlthLWZBLUYwLTldezMyfSQvLnRlc3QodCk/dC50b1VwcGVyQ2FzZSgpOkguc3BsaXQoXCJcIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuXCJBQkNERUYwMTIzNDU2Nzg5XCIuY2hhckF0KE1hdGguZmxvb3IoMTYqTWF0aC5yYW5kb20oKSkpfSkuam9pbihcIlwiKSxudWxsIT09cCYmKENlPW5ldyBBKHAudXNlclBlcm1pc3Npb25zLHAudXNlclBhc3N3b3JkLHAub3duZXJQYXNzd29yZCxIKSksSH07di5zZXRGaWxlSWQ9ZnVuY3Rpb24odCl7cmV0dXJuIFYodCksdGhpc30sdi5nZXRGaWxlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gVygpfTt2YXIgRz12Ll9fcHJpdmF0ZV9fLmNvbnZlcnREYXRlVG9QREZEYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2V0VGltZXpvbmVPZmZzZXQoKSxyPWU8MD9cIitcIjpcIi1cIixuPU1hdGguZmxvb3IoTWF0aC5hYnMoZS82MCkpLGk9TWF0aC5hYnMoZSU2MCksYT1bciwkKG4pLFwiJ1wiLCQoaSksXCInXCJdLmpvaW4oXCJcIik7cmV0dXJuW1wiRDpcIix0LmdldEZ1bGxZZWFyKCksJCh0LmdldE1vbnRoKCkrMSksJCh0LmdldERhdGUoKSksJCh0LmdldEhvdXJzKCkpLCQodC5nZXRNaW51dGVzKCkpLCQodC5nZXRTZWNvbmRzKCkpLGFdLmpvaW4oXCJcIil9LFk9di5fX3ByaXZhdGVfXy5jb252ZXJ0UERGRGF0ZVRvRGF0ZT1mdW5jdGlvbih0KXt2YXIgZT1wYXJzZUludCh0LnN1YnN0cigyLDQpLDEwKSxyPXBhcnNlSW50KHQuc3Vic3RyKDYsMiksMTApLTEsbj1wYXJzZUludCh0LnN1YnN0cig4LDIpLDEwKSxpPXBhcnNlSW50KHQuc3Vic3RyKDEwLDIpLDEwKSxhPXBhcnNlSW50KHQuc3Vic3RyKDEyLDIpLDEwKSxvPXBhcnNlSW50KHQuc3Vic3RyKDE0LDIpLDEwKTtyZXR1cm4gbmV3IERhdGUoZSxyLG4saSxhLG8sMCl9LEo9di5fX3ByaXZhdGVfXy5zZXRDcmVhdGlvbkRhdGU9ZnVuY3Rpb24odCl7dmFyIGU7aWYodm9pZCAwPT09dCYmKHQ9bmV3IERhdGUpLHQgaW5zdGFuY2VvZiBEYXRlKWU9Ryh0KTtlbHNle2lmKCEvXkQ6KDIwWzAtMl1bMC05XXwyMDNbMC03XXwxOVs3LTldWzAtOV0pKDBbMC05XXwxWzAtMl0pKFswLTJdWzAtOV18M1swLTFdKSgwWzAtOV18MVswLTldfDJbMC0zXSkoMFswLTldfFsxLTVdWzAtOV0pKDBbMC05XXxbMS01XVswLTldKShcXCswWzAtOV18XFwrMVswLTRdfC0wWzAtOV18LTFbMC0xXSknKDBbMC05XXxbMS01XVswLTldKSc/JC8udGVzdCh0KSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCB0byBqc1BERi5zZXRDcmVhdGlvbkRhdGVcIik7ZT10fXJldHVybiBVPWV9LFg9di5fX3ByaXZhdGVfXy5nZXRDcmVhdGlvbkRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9VTtyZXR1cm5cImpzRGF0ZVwiPT09dCYmKGU9WShVKSksZX07di5zZXRDcmVhdGlvbkRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIEoodCksdGhpc30sdi5nZXRDcmVhdGlvbkRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIFgodCl9O3ZhciBLLCQ9di5fX3ByaXZhdGVfXy5wYWRkMj1mdW5jdGlvbih0KXtyZXR1cm4oXCIwXCIrcGFyc2VJbnQodCkpLnNsaWNlKC0yKX0sWj12Ll9fcHJpdmF0ZV9fLnBhZGQySGV4PWZ1bmN0aW9uKHQpe3JldHVybihcIjAwXCIrKHQ9dC50b1N0cmluZygpKSkuc3Vic3RyKHQubGVuZ3RoKX0sUT0wLHR0PVtdLGV0PVtdLHJ0PTAsbnQ9W10saXQ9W10sYXQ9ITEsb3Q9ZXQ7di5fX3ByaXZhdGVfXy5zZXRDdXN0b21PdXRwdXREZXN0aW5hdGlvbj1mdW5jdGlvbih0KXthdD0hMCxvdD10fTt2YXIgc3Q9ZnVuY3Rpb24odCl7YXR8fChvdD10KX07di5fX3ByaXZhdGVfXy5yZXNldEN1c3RvbU91dHB1dERlc3RpbmF0aW9uPWZ1bmN0aW9uKCl7YXQ9ITEsb3Q9ZXR9O3ZhciBjdD12Ll9fcHJpdmF0ZV9fLm91dD1mdW5jdGlvbih0KXtyZXR1cm4gdD10LnRvU3RyaW5nKCkscnQrPXQubGVuZ3RoKzEsb3QucHVzaCh0KSxvdH0sdXQ9di5fX3ByaXZhdGVfXy53cml0ZT1mdW5jdGlvbih0KXtyZXR1cm4gY3QoMT09PWFyZ3VtZW50cy5sZW5ndGg/dC50b1N0cmluZygpOkFycmF5LnByb3RvdHlwZS5qb2luLmNhbGwoYXJndW1lbnRzLFwiIFwiKSl9LGx0PXYuX19wcml2YXRlX18uZ2V0QXJyYXlCdWZmZXI9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9bmV3IEFycmF5QnVmZmVyKGUpLG49bmV3IFVpbnQ4QXJyYXkocik7ZS0tOyluW2VdPXQuY2hhckNvZGVBdChlKTtyZXR1cm4gcn0saHQ9W1tcIkhlbHZldGljYVwiLFwiaGVsdmV0aWNhXCIsXCJub3JtYWxcIixcIldpbkFuc2lFbmNvZGluZ1wiXSxbXCJIZWx2ZXRpY2EtQm9sZFwiLFwiaGVsdmV0aWNhXCIsXCJib2xkXCIsXCJXaW5BbnNpRW5jb2RpbmdcIl0sW1wiSGVsdmV0aWNhLU9ibGlxdWVcIixcImhlbHZldGljYVwiLFwiaXRhbGljXCIsXCJXaW5BbnNpRW5jb2RpbmdcIl0sW1wiSGVsdmV0aWNhLUJvbGRPYmxpcXVlXCIsXCJoZWx2ZXRpY2FcIixcImJvbGRpdGFsaWNcIixcIldpbkFuc2lFbmNvZGluZ1wiXSxbXCJDb3VyaWVyXCIsXCJjb3VyaWVyXCIsXCJub3JtYWxcIixcIldpbkFuc2lFbmNvZGluZ1wiXSxbXCJDb3VyaWVyLUJvbGRcIixcImNvdXJpZXJcIixcImJvbGRcIixcIldpbkFuc2lFbmNvZGluZ1wiXSxbXCJDb3VyaWVyLU9ibGlxdWVcIixcImNvdXJpZXJcIixcIml0YWxpY1wiLFwiV2luQW5zaUVuY29kaW5nXCJdLFtcIkNvdXJpZXItQm9sZE9ibGlxdWVcIixcImNvdXJpZXJcIixcImJvbGRpdGFsaWNcIixcIldpbkFuc2lFbmNvZGluZ1wiXSxbXCJUaW1lcy1Sb21hblwiLFwidGltZXNcIixcIm5vcm1hbFwiLFwiV2luQW5zaUVuY29kaW5nXCJdLFtcIlRpbWVzLUJvbGRcIixcInRpbWVzXCIsXCJib2xkXCIsXCJXaW5BbnNpRW5jb2RpbmdcIl0sW1wiVGltZXMtSXRhbGljXCIsXCJ0aW1lc1wiLFwiaXRhbGljXCIsXCJXaW5BbnNpRW5jb2RpbmdcIl0sW1wiVGltZXMtQm9sZEl0YWxpY1wiLFwidGltZXNcIixcImJvbGRpdGFsaWNcIixcIldpbkFuc2lFbmNvZGluZ1wiXSxbXCJaYXBmRGluZ2JhdHNcIixcInphcGZkaW5nYmF0c1wiLFwibm9ybWFsXCIsbnVsbF0sW1wiU3ltYm9sXCIsXCJzeW1ib2xcIixcIm5vcm1hbFwiLG51bGxdXTt2Ll9fcHJpdmF0ZV9fLmdldFN0YW5kYXJkRm9udHM9ZnVuY3Rpb24oKXtyZXR1cm4gaHR9O3ZhciBmdD10LmZvbnRTaXplfHwxNjt2Ll9fcHJpdmF0ZV9fLnNldEZvbnRTaXplPXYuc2V0Rm9udFNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGZ0PWs9PT14P3QveHQ6dCx0aGlzfTt2YXIgZHQscHQ9di5fX3ByaXZhdGVfXy5nZXRGb250U2l6ZT12LmdldEZvbnRTaXplPWZ1bmN0aW9uKCl7cmV0dXJuIGs9PT1MP2Z0OmZ0Knh0fSxndD10LlIyTHx8ITE7di5fX3ByaXZhdGVfXy5zZXRSMkw9di5zZXRSMkw9ZnVuY3Rpb24odCl7cmV0dXJuIGd0PXQsdGhpc30sdi5fX3ByaXZhdGVfXy5nZXRSMkw9di5nZXRSMkw9ZnVuY3Rpb24oKXtyZXR1cm4gZ3R9O3ZhciBtdCx2dD12Ll9fcHJpdmF0ZV9fLnNldFpvb21Nb2RlPWZ1bmN0aW9uKHQpe2lmKC9eKD86XFxkK1xcLlxcZCp8XFxkKlxcLlxcZCt8XFxkKyklJC8udGVzdCh0KSlkdD10O2Vsc2UgaWYoaXNOYU4odCkpe2lmKC0xPT09W3ZvaWQgMCxudWxsLFwiZnVsbHdpZHRoXCIsXCJmdWxsaGVpZ2h0XCIsXCJmdWxscGFnZVwiLFwib3JpZ2luYWxcIl0uaW5kZXhPZih0KSl0aHJvdyBuZXcgRXJyb3IoJ3pvb20gbXVzdCBiZSBJbnRlZ2VyIChlLmcuIDIpLCBhIHBlcmNlbnRhZ2UgVmFsdWUgKGUuZy4gMzAwJSkgb3IgZnVsbHdpZHRoLCBmdWxsaGVpZ2h0LCBmdWxscGFnZSwgb3JpZ2luYWwuIFwiJyt0KydcIiBpcyBub3QgcmVjb2duaXplZC4nKTtkdD10fWVsc2UgZHQ9cGFyc2VJbnQodCwxMCl9O3YuX19wcml2YXRlX18uZ2V0Wm9vbU1vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gZHR9O3ZhciBidCx5dD12Ll9fcHJpdmF0ZV9fLnNldFBhZ2VNb2RlPWZ1bmN0aW9uKHQpe2lmKC0xPT1bdm9pZCAwLG51bGwsXCJVc2VOb25lXCIsXCJVc2VPdXRsaW5lc1wiLFwiVXNlVGh1bWJzXCIsXCJGdWxsU2NyZWVuXCJdLmluZGV4T2YodCkpdGhyb3cgbmV3IEVycm9yKCdQYWdlIG1vZGUgbXVzdCBiZSBvbmUgb2YgVXNlTm9uZSwgVXNlT3V0bGluZXMsIFVzZVRodW1icywgb3IgRnVsbFNjcmVlbi4gXCInK3QrJ1wiIGlzIG5vdCByZWNvZ25pemVkLicpO210PXR9O3YuX19wcml2YXRlX18uZ2V0UGFnZU1vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gbXR9O3ZhciB3dD12Ll9fcHJpdmF0ZV9fLnNldExheW91dE1vZGU9ZnVuY3Rpb24odCl7aWYoLTE9PVt2b2lkIDAsbnVsbCxcImNvbnRpbnVvdXNcIixcInNpbmdsZVwiLFwidHdvbGVmdFwiLFwidHdvcmlnaHRcIixcInR3b1wiXS5pbmRleE9mKHQpKXRocm93IG5ldyBFcnJvcignTGF5b3V0IG1vZGUgbXVzdCBiZSBvbmUgb2YgY29udGludW91cywgc2luZ2xlLCB0d29sZWZ0LCB0d29yaWdodC4gXCInK3QrJ1wiIGlzIG5vdCByZWNvZ25pemVkLicpO2J0PXR9O3YuX19wcml2YXRlX18uZ2V0TGF5b3V0TW9kZT1mdW5jdGlvbigpe3JldHVybiBidH0sdi5fX3ByaXZhdGVfXy5zZXREaXNwbGF5TW9kZT12LnNldERpc3BsYXlNb2RlPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdnQodCksd3QoZSkseXQociksdGhpc307dmFyIE50PXt0aXRsZTpcIlwiLHN1YmplY3Q6XCJcIixhdXRob3I6XCJcIixrZXl3b3JkczpcIlwiLGNyZWF0b3I6XCJcIn07di5fX3ByaXZhdGVfXy5nZXREb2N1bWVudFByb3BlcnR5PWZ1bmN0aW9uKHQpe2lmKC0xPT09T2JqZWN0LmtleXMoTnQpLmluZGV4T2YodCkpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgdG8ganNQREYuZ2V0RG9jdW1lbnRQcm9wZXJ0eVwiKTtyZXR1cm4gTnRbdF19LHYuX19wcml2YXRlX18uZ2V0RG9jdW1lbnRQcm9wZXJ0aWVzPWZ1bmN0aW9uKCl7cmV0dXJuIE50fSx2Ll9fcHJpdmF0ZV9fLnNldERvY3VtZW50UHJvcGVydGllcz12LnNldFByb3BlcnRpZXM9di5zZXREb2N1bWVudFByb3BlcnRpZXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIE50KU50Lmhhc093blByb3BlcnR5KGUpJiZ0W2VdJiYoTnRbZV09dFtlXSk7cmV0dXJuIHRoaXN9LHYuX19wcml2YXRlX18uc2V0RG9jdW1lbnRQcm9wZXJ0eT1mdW5jdGlvbih0LGUpe2lmKC0xPT09T2JqZWN0LmtleXMoTnQpLmluZGV4T2YodCkpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudHMgcGFzc2VkIHRvIGpzUERGLnNldERvY3VtZW50UHJvcGVydHlcIik7cmV0dXJuIE50W3RdPWV9O3ZhciBMdCx4dCxBdCxTdCxfdCxQdD17fSxrdD17fSxGdD1bXSxJdD17fSxDdD17fSxqdD17fSxPdD17fSxCdD1udWxsLHF0PTAsTXQ9W10sRXQ9bmV3IF8odiksUnQ9dC5ob3RmaXhlc3x8W10sRHQ9e30sVHQ9e30senQ9W10sVXQ9ZnVuY3Rpb24odCxlLHIsbixpLGEpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFV0KSlyZXR1cm4gbmV3IFV0KHQsZSxyLG4saSxhKTtpc05hTih0KSYmKHQ9MSksaXNOYU4oZSkmJihlPTApLGlzTmFOKHIpJiYocj0wKSxpc05hTihuKSYmKG49MSksaXNOYU4oaSkmJihpPTApLGlzTmFOKGEpJiYoYT0wKSx0aGlzLl9tYXRyaXg9W3QsZSxyLG4saSxhXX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFV0LnByb3RvdHlwZSxcInN4XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXRyaXhbMF19LHNldDpmdW5jdGlvbih0KXt0aGlzLl9tYXRyaXhbMF09dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVXQucHJvdG90eXBlLFwic2h5XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXRyaXhbMV19LHNldDpmdW5jdGlvbih0KXt0aGlzLl9tYXRyaXhbMV09dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVXQucHJvdG90eXBlLFwic2h4XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXRyaXhbMl19LHNldDpmdW5jdGlvbih0KXt0aGlzLl9tYXRyaXhbMl09dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVXQucHJvdG90eXBlLFwic3lcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21hdHJpeFszXX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX21hdHJpeFszXT10fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShVdC5wcm90b3R5cGUsXCJ0eFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWF0cml4WzRdfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fbWF0cml4WzRdPXR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFV0LnByb3RvdHlwZSxcInR5XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXRyaXhbNV19LHNldDpmdW5jdGlvbih0KXt0aGlzLl9tYXRyaXhbNV09dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVXQucHJvdG90eXBlLFwiYVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWF0cml4WzBdfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fbWF0cml4WzBdPXR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFV0LnByb3RvdHlwZSxcImJcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21hdHJpeFsxXX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX21hdHJpeFsxXT10fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShVdC5wcm90b3R5cGUsXCJjXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXRyaXhbMl19LHNldDpmdW5jdGlvbih0KXt0aGlzLl9tYXRyaXhbMl09dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVXQucHJvdG90eXBlLFwiZFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWF0cml4WzNdfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fbWF0cml4WzNdPXR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFV0LnByb3RvdHlwZSxcImVcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21hdHJpeFs0XX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX21hdHJpeFs0XT10fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShVdC5wcm90b3R5cGUsXCJmXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXRyaXhbNV19LHNldDpmdW5jdGlvbih0KXt0aGlzLl9tYXRyaXhbNV09dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVXQucHJvdG90eXBlLFwicm90YXRpb25cIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguYXRhbjIodGhpcy5zaHgsdGhpcy5zeCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFV0LnByb3RvdHlwZSxcInNjYWxlWFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWNvbXBvc2UoKS5zY2FsZS5zeH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVXQucHJvdG90eXBlLFwic2NhbGVZXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRlY29tcG9zZSgpLnNjYWxlLnN5fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShVdC5wcm90b3R5cGUsXCJpc0lkZW50aXR5XCIse2dldDpmdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5zeCYmMD09PXRoaXMuc2h5JiYwPT09dGhpcy5zaHgmJjE9PT10aGlzLnN5JiYwPT09dGhpcy50eCYmMD09PXRoaXMudHl9fSksVXQucHJvdG90eXBlLmpvaW49ZnVuY3Rpb24odCl7cmV0dXJuW3RoaXMuc3gsdGhpcy5zaHksdGhpcy5zaHgsdGhpcy5zeSx0aGlzLnR4LHRoaXMudHldLm1hcChxKS5qb2luKHQpfSxVdC5wcm90b3R5cGUubXVsdGlwbHk9ZnVuY3Rpb24odCl7dmFyIGU9dC5zeCp0aGlzLnN4K3Quc2h5KnRoaXMuc2h4LHI9dC5zeCp0aGlzLnNoeSt0LnNoeSp0aGlzLnN5LG49dC5zaHgqdGhpcy5zeCt0LnN5KnRoaXMuc2h4LGk9dC5zaHgqdGhpcy5zaHkrdC5zeSp0aGlzLnN5LGE9dC50eCp0aGlzLnN4K3QudHkqdGhpcy5zaHgrdGhpcy50eCxvPXQudHgqdGhpcy5zaHkrdC50eSp0aGlzLnN5K3RoaXMudHk7cmV0dXJuIG5ldyBVdChlLHIsbixpLGEsbyl9LFV0LnByb3RvdHlwZS5kZWNvbXBvc2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN4LGU9dGhpcy5zaHkscj10aGlzLnNoeCxuPXRoaXMuc3ksaT10aGlzLnR4LGE9dGhpcy50eSxvPU1hdGguc3FydCh0KnQrZSplKSxzPSh0Lz1vKSpyKyhlLz1vKSpuO3ItPXQqcyxuLT1lKnM7dmFyIGM9TWF0aC5zcXJ0KHIqcituKm4pO3JldHVybiBzLz1jLHQqKG4vPWMpPGUqKHIvPWMpJiYodD0tdCxlPS1lLHM9LXMsbz0tbykse3NjYWxlOm5ldyBVdChvLDAsMCxjLDAsMCksdHJhbnNsYXRlOm5ldyBVdCgxLDAsMCwxLGksYSkscm90YXRlOm5ldyBVdCh0LGUsLWUsdCwwLDApLHNrZXc6bmV3IFV0KDEsMCxzLDEsMCwwKX19LFV0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5qb2luKFwiIFwiKX0sVXQucHJvdG90eXBlLmludmVyc2VkPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zeCxlPXRoaXMuc2h5LHI9dGhpcy5zaHgsbj10aGlzLnN5LGk9dGhpcy50eCxhPXRoaXMudHksbz0xLyh0Km4tZSpyKSxzPW4qbyxjPS1lKm8sdT0tcipvLGw9dCpvO3JldHVybiBuZXcgVXQocyxjLHUsbCwtcyppLXUqYSwtYyppLWwqYSl9LFV0LnByb3RvdHlwZS5hcHBseVRvUG9pbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dC54KnRoaXMuc3grdC55KnRoaXMuc2h4K3RoaXMudHgscj10LngqdGhpcy5zaHkrdC55KnRoaXMuc3krdGhpcy50eTtyZXR1cm4gbmV3IHByKGUscil9LFV0LnByb3RvdHlwZS5hcHBseVRvUmVjdGFuZ2xlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuYXBwbHlUb1BvaW50KHQpLHI9dGhpcy5hcHBseVRvUG9pbnQobmV3IHByKHQueCt0LncsdC55K3QuaCkpO3JldHVybiBuZXcgZ3IoZS54LGUueSxyLngtZS54LHIueS1lLnkpfSxVdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN4LGU9dGhpcy5zaHkscj10aGlzLnNoeCxuPXRoaXMuc3ksaT10aGlzLnR4LGE9dGhpcy50eTtyZXR1cm4gbmV3IFV0KHQsZSxyLG4saSxhKX0sdi5NYXRyaXg9VXQ7dmFyIEh0PXYubWF0cml4TXVsdD1mdW5jdGlvbih0LGUpe3JldHVybiBlLm11bHRpcGx5KHQpfSxXdD1uZXcgVXQoMSwwLDAsMSwwLDApO3YudW5pdE1hdHJpeD12LmlkZW50aXR5TWF0cml4PVd0O3ZhciBWdD1mdW5jdGlvbih0LGUpe2lmKCFDdFt0XSl7dmFyIHI9KGUgaW5zdGFuY2VvZiBGP1wiU2hcIjpcIlBcIikrKE9iamVjdC5rZXlzKEl0KS5sZW5ndGgrMSkudG9TdHJpbmcoMTApO2UuaWQ9cixDdFt0XT1yLEl0W3JdPWUsRXQucHVibGlzaChcImFkZFBhdHRlcm5cIixlKX19O3YuU2hhZGluZ1BhdHRlcm49Rix2LlRpbGluZ1BhdHRlcm49SSx2LmFkZFNoYWRpbmdQYXR0ZXJuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE0oXCJhZGRTaGFkaW5nUGF0dGVybigpXCIpLFZ0KHQsZSksdGhpc30sdi5iZWdpblRpbGluZ1BhdHRlcm49ZnVuY3Rpb24odCl7TShcImJlZ2luVGlsaW5nUGF0dGVybigpXCIpLHZyKHQuYm91bmRpbmdCb3hbMF0sdC5ib3VuZGluZ0JveFsxXSx0LmJvdW5kaW5nQm94WzJdLXQuYm91bmRpbmdCb3hbMF0sdC5ib3VuZGluZ0JveFszXS10LmJvdW5kaW5nQm94WzFdLHQubWF0cml4KX0sdi5lbmRUaWxpbmdQYXR0ZXJuPWZ1bmN0aW9uKHQsZSl7TShcImVuZFRpbGluZ1BhdHRlcm4oKVwiKSxlLnN0cmVhbT1pdFtLXS5qb2luKFwiXFxuXCIpLFZ0KHQsZSksRXQucHVibGlzaChcImVuZFRpbGluZ1BhdHRlcm5cIixlKSx6dC5wb3AoKS5yZXN0b3JlKCl9O3ZhciBHdCxZdD12Ll9fcHJpdmF0ZV9fLm5ld09iamVjdD1mdW5jdGlvbigpe3ZhciB0PUp0KCk7cmV0dXJuIFh0KHQsITApLHR9LEp0PXYuX19wcml2YXRlX18ubmV3T2JqZWN0RGVmZXJyZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gUSsrLHR0W1FdPWZ1bmN0aW9uKCl7cmV0dXJuIHJ0fSxRfSxYdD1mdW5jdGlvbih0LGUpe3JldHVybiBlPVwiYm9vbGVhblwiPT10eXBlb2YgZSYmZSx0dFt0XT1ydCxlJiZjdCh0K1wiIDAgb2JqXCIpLHR9LEt0PXYuX19wcml2YXRlX18ubmV3QWRkaXRpb25hbE9iamVjdD1mdW5jdGlvbigpe3ZhciB0PXtvYmpJZDpKdCgpLGNvbnRlbnQ6XCJcIn07cmV0dXJuIG50LnB1c2godCksdH0sJHQ9SnQoKSxadD1KdCgpLFF0PXYuX19wcml2YXRlX18uZGVjb2RlQ29sb3JTdHJpbmc9ZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdChcIiBcIik7aWYoMiE9PWUubGVuZ3RofHxcImdcIiE9PWVbMV0mJlwiR1wiIT09ZVsxXSk1IT09ZS5sZW5ndGh8fFwia1wiIT09ZVs0XSYmXCJLXCIhPT1lWzRdfHwoZT1bKDEtZVswXSkqKDEtZVszXSksKDEtZVsxXSkqKDEtZVszXSksKDEtZVsyXSkqKDEtZVszXSksXCJyXCJdKTtlbHNle3ZhciByPXBhcnNlRmxvYXQoZVswXSk7ZT1bcixyLHIsXCJyXCJdfWZvcih2YXIgbj1cIiNcIixpPTA7aTwzO2krKyluKz0oXCIwXCIrTWF0aC5mbG9vcigyNTUqcGFyc2VGbG9hdChlW2ldKSkudG9TdHJpbmcoMTYpKS5zbGljZSgtMik7cmV0dXJuIG59LHRlPXYuX19wcml2YXRlX18uZW5jb2RlQ29sb3JTdHJpbmc9ZnVuY3Rpb24odCl7dmFyIGU7XCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PXtjaDE6dH0pO3ZhciByPXQuY2gxLGk9dC5jaDIsYT10LmNoMyxvPXQuY2g0LHM9XCJkcmF3XCI9PT10LnBkZkNvbG9yVHlwZT9bXCJHXCIsXCJSR1wiLFwiS1wiXTpbXCJnXCIsXCJyZ1wiLFwia1wiXTtpZihcInN0cmluZ1wiPT10eXBlb2YgciYmXCIjXCIhPT1yLmNoYXJBdCgwKSl7dmFyIGM9bmV3IG4ocik7aWYoYy5vaylyPWMudG9IZXgoKTtlbHNlIGlmKCEvXlxcZCpcXC4/XFxkKiQvLnRlc3QocikpdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbG9yIFwiJytyKydcIiBwYXNzZWQgdG8ganNQREYuZW5jb2RlQ29sb3JTdHJpbmcuJyl9aWYoXCJzdHJpbmdcIj09dHlwZW9mIHImJi9eI1swLTlBLUZhLWZdezN9JC8udGVzdChyKSYmKHI9XCIjXCIrclsxXStyWzFdK3JbMl0rclsyXStyWzNdK3JbM10pLFwic3RyaW5nXCI9PXR5cGVvZiByJiYvXiNbMC05QS1GYS1mXXs2fSQvLnRlc3Qocikpe3ZhciB1PXBhcnNlSW50KHIuc3Vic3RyKDEpLDE2KTtyPXU+PjE2JjI1NSxpPXU+PjgmMjU1LGE9MjU1JnV9aWYodm9pZCAwPT09aXx8dm9pZCAwPT09byYmcj09PWkmJmk9PT1hKWU9XCJzdHJpbmdcIj09dHlwZW9mIHI/citcIiBcIitzWzBdOjI9PT10LnByZWNpc2lvbj9SKHIvMjU1KStcIiBcIitzWzBdOkQoci8yNTUpK1wiIFwiK3NbMF07ZWxzZSBpZih2b2lkIDA9PT1vfHxcIm9iamVjdFwiPT10eXBlb2Ygbyl7aWYobyYmIWlzTmFOKG8uYSkmJjA9PT1vLmEpcmV0dXJuW1wiMS5cIixcIjEuXCIsXCIxLlwiLHNbMV1dLmpvaW4oXCIgXCIpO2U9XCJzdHJpbmdcIj09dHlwZW9mIHI/W3IsaSxhLHNbMV1dLmpvaW4oXCIgXCIpOjI9PT10LnByZWNpc2lvbj9bUihyLzI1NSksUihpLzI1NSksUihhLzI1NSksc1sxXV0uam9pbihcIiBcIik6W0Qoci8yNTUpLEQoaS8yNTUpLEQoYS8yNTUpLHNbMV1dLmpvaW4oXCIgXCIpfWVsc2UgZT1cInN0cmluZ1wiPT10eXBlb2Ygcj9bcixpLGEsbyxzWzJdXS5qb2luKFwiIFwiKToyPT09dC5wcmVjaXNpb24/W1IociksUihpKSxSKGEpLFIobyksc1syXV0uam9pbihcIiBcIik6W0QociksRChpKSxEKGEpLEQobyksc1syXV0uam9pbihcIiBcIik7cmV0dXJuIGV9LGVlPXYuX19wcml2YXRlX18uZ2V0RmlsdGVycz1mdW5jdGlvbigpe3JldHVybiBsfSxyZT12Ll9fcHJpdmF0ZV9fLnB1dFN0cmVhbT1mdW5jdGlvbih0KXt2YXIgZT0odD10fHx7fSkuZGF0YXx8XCJcIixyPXQuZmlsdGVyc3x8ZWUoKSxuPXQuYWxyZWFkeUFwcGxpZWRGaWx0ZXJzfHxbXSxpPXQuYWRkTGVuZ3RoMXx8ITEsYT1lLmxlbmd0aCxvPXQub2JqZWN0SWQscz1mdW5jdGlvbih0KXtyZXR1cm4gdH07aWYobnVsbCE9PXAmJnZvaWQgMD09PW8pdGhyb3cgbmV3IEVycm9yKFwiT2JqZWN0SWQgbXVzdCBiZSBwYXNzZWQgdG8gcHV0U3RyZWFtIGZvciBmaWxlIGVuY3J5cHRpb25cIik7bnVsbCE9PXAmJihzPUNlLmVuY3J5cHRvcihvLDApKTt2YXIgYz17fTshMD09PXImJihyPVtcIkZsYXRlRW5jb2RlXCJdKTt2YXIgdT10LmFkZGl0aW9uYWxLZXlWYWx1ZXN8fFtdLGw9KGM9dm9pZCAwIT09Qy5BUEkucHJvY2Vzc0RhdGFCeUZpbHRlcnM/Qy5BUEkucHJvY2Vzc0RhdGFCeUZpbHRlcnMoZSxyKTp7ZGF0YTplLHJldmVyc2VDaGFpbjpbXX0pLnJldmVyc2VDaGFpbisoQXJyYXkuaXNBcnJheShuKT9uLmpvaW4oXCIgXCIpOm4udG9TdHJpbmcoKSk7aWYoMCE9PWMuZGF0YS5sZW5ndGgmJih1LnB1c2goe2tleTpcIkxlbmd0aFwiLHZhbHVlOmMuZGF0YS5sZW5ndGh9KSwhMD09PWkmJnUucHVzaCh7a2V5OlwiTGVuZ3RoMVwiLHZhbHVlOmF9KSksMCE9bC5sZW5ndGgpaWYobC5zcGxpdChcIi9cIikubGVuZ3RoLTE9PTEpdS5wdXNoKHtrZXk6XCJGaWx0ZXJcIix2YWx1ZTpsfSk7ZWxzZXt1LnB1c2goe2tleTpcIkZpbHRlclwiLHZhbHVlOlwiW1wiK2wrXCJdXCJ9KTtmb3IodmFyIGg9MDtoPHUubGVuZ3RoO2grPTEpaWYoXCJEZWNvZGVQYXJtc1wiPT09dVtoXS5rZXkpe2Zvcih2YXIgZj1bXSxkPTA7ZDxjLnJldmVyc2VDaGFpbi5zcGxpdChcIi9cIikubGVuZ3RoLTE7ZCs9MSlmLnB1c2goXCJudWxsXCIpO2YucHVzaCh1W2hdLnZhbHVlKSx1W2hdLnZhbHVlPVwiW1wiK2Yuam9pbihcIiBcIikrXCJdXCJ9fWN0KFwiPDxcIik7Zm9yKHZhciBnPTA7Zzx1Lmxlbmd0aDtnKyspY3QoXCIvXCIrdVtnXS5rZXkrXCIgXCIrdVtnXS52YWx1ZSk7Y3QoXCI+PlwiKSwwIT09Yy5kYXRhLmxlbmd0aCYmKGN0KFwic3RyZWFtXCIpLGN0KHMoYy5kYXRhKSksY3QoXCJlbmRzdHJlYW1cIikpfSxuZT12Ll9fcHJpdmF0ZV9fLnB1dFBhZ2U9ZnVuY3Rpb24odCl7dmFyIGU9dC5udW1iZXIscj10LmRhdGEsbj10Lm9iaklkLGk9dC5jb250ZW50c09iaklkO1h0KG4sITApLGN0KFwiPDwvVHlwZSAvUGFnZVwiKSxjdChcIi9QYXJlbnQgXCIrdC5yb290RGljdGlvbmFyeU9iaklkK1wiIDAgUlwiKSxjdChcIi9SZXNvdXJjZXMgXCIrdC5yZXNvdXJjZURpY3Rpb25hcnlPYmpJZCtcIiAwIFJcIiksY3QoXCIvTWVkaWFCb3ggW1wiK3BhcnNlRmxvYXQocSh0Lm1lZGlhQm94LmJvdHRvbUxlZnRYKSkrXCIgXCIrcGFyc2VGbG9hdChxKHQubWVkaWFCb3guYm90dG9tTGVmdFkpKStcIiBcIitxKHQubWVkaWFCb3gudG9wUmlnaHRYKStcIiBcIitxKHQubWVkaWFCb3gudG9wUmlnaHRZKStcIl1cIiksbnVsbCE9PXQuY3JvcEJveCYmY3QoXCIvQ3JvcEJveCBbXCIrcSh0LmNyb3BCb3guYm90dG9tTGVmdFgpK1wiIFwiK3EodC5jcm9wQm94LmJvdHRvbUxlZnRZKStcIiBcIitxKHQuY3JvcEJveC50b3BSaWdodFgpK1wiIFwiK3EodC5jcm9wQm94LnRvcFJpZ2h0WSkrXCJdXCIpLG51bGwhPT10LmJsZWVkQm94JiZjdChcIi9CbGVlZEJveCBbXCIrcSh0LmJsZWVkQm94LmJvdHRvbUxlZnRYKStcIiBcIitxKHQuYmxlZWRCb3guYm90dG9tTGVmdFkpK1wiIFwiK3EodC5ibGVlZEJveC50b3BSaWdodFgpK1wiIFwiK3EodC5ibGVlZEJveC50b3BSaWdodFkpK1wiXVwiKSxudWxsIT09dC50cmltQm94JiZjdChcIi9UcmltQm94IFtcIitxKHQudHJpbUJveC5ib3R0b21MZWZ0WCkrXCIgXCIrcSh0LnRyaW1Cb3guYm90dG9tTGVmdFkpK1wiIFwiK3EodC50cmltQm94LnRvcFJpZ2h0WCkrXCIgXCIrcSh0LnRyaW1Cb3gudG9wUmlnaHRZKStcIl1cIiksbnVsbCE9PXQuYXJ0Qm94JiZjdChcIi9BcnRCb3ggW1wiK3EodC5hcnRCb3guYm90dG9tTGVmdFgpK1wiIFwiK3EodC5hcnRCb3guYm90dG9tTGVmdFkpK1wiIFwiK3EodC5hcnRCb3gudG9wUmlnaHRYKStcIiBcIitxKHQuYXJ0Qm94LnRvcFJpZ2h0WSkrXCJdXCIpLFwibnVtYmVyXCI9PXR5cGVvZiB0LnVzZXJVbml0JiYxIT09dC51c2VyVW5pdCYmY3QoXCIvVXNlclVuaXQgXCIrdC51c2VyVW5pdCksRXQucHVibGlzaChcInB1dFBhZ2VcIix7b2JqSWQ6bixwYWdlQ29udGV4dDpNdFtlXSxwYWdlTnVtYmVyOmUscGFnZTpyfSksY3QoXCIvQ29udGVudHMgXCIraStcIiAwIFJcIiksY3QoXCI+PlwiKSxjdChcImVuZG9ialwiKTt2YXIgYT1yLmpvaW4oXCJcXG5cIik7cmV0dXJuIGs9PT14JiYoYSs9XCJcXG5RXCIpLFh0KGksITApLHJlKHtkYXRhOmEsZmlsdGVyczplZSgpLG9iamVjdElkOml9KSxjdChcImVuZG9ialwiKSxufSxpZT12Ll9fcHJpdmF0ZV9fLnB1dFBhZ2VzPWZ1bmN0aW9uKCl7dmFyIHQsZSxyPVtdO2Zvcih0PTE7dDw9cXQ7dCsrKU10W3RdLm9iaklkPUp0KCksTXRbdF0uY29udGVudHNPYmpJZD1KdCgpO2Zvcih0PTE7dDw9cXQ7dCsrKXIucHVzaChuZSh7bnVtYmVyOnQsZGF0YTppdFt0XSxvYmpJZDpNdFt0XS5vYmpJZCxjb250ZW50c09iaklkOk10W3RdLmNvbnRlbnRzT2JqSWQsbWVkaWFCb3g6TXRbdF0ubWVkaWFCb3gsY3JvcEJveDpNdFt0XS5jcm9wQm94LGJsZWVkQm94Ok10W3RdLmJsZWVkQm94LHRyaW1Cb3g6TXRbdF0udHJpbUJveCxhcnRCb3g6TXRbdF0uYXJ0Qm94LHVzZXJVbml0Ok10W3RdLnVzZXJVbml0LHJvb3REaWN0aW9uYXJ5T2JqSWQ6JHQscmVzb3VyY2VEaWN0aW9uYXJ5T2JqSWQ6WnR9KSk7WHQoJHQsITApLGN0KFwiPDwvVHlwZSAvUGFnZXNcIik7dmFyIG49XCIvS2lkcyBbXCI7Zm9yKGU9MDtlPHF0O2UrKyluKz1yW2VdK1wiIDAgUiBcIjtjdChuK1wiXVwiKSxjdChcIi9Db3VudCBcIitxdCksY3QoXCI+PlwiKSxjdChcImVuZG9ialwiKSxFdC5wdWJsaXNoKFwicG9zdFB1dFBhZ2VzXCIpfSxhZT1mdW5jdGlvbih0KXtFdC5wdWJsaXNoKFwicHV0Rm9udFwiLHtmb250OnQsb3V0OmN0LG5ld09iamVjdDpZdCxwdXRTdHJlYW06cmV9KSwhMCE9PXQuaXNBbHJlYWR5UHV0dGVkJiYodC5vYmplY3ROdW1iZXI9WXQoKSxjdChcIjw8XCIpLGN0KFwiL1R5cGUgL0ZvbnRcIiksY3QoXCIvQmFzZUZvbnQgL1wiK1ModC5wb3N0U2NyaXB0TmFtZSkpLGN0KFwiL1N1YnR5cGUgL1R5cGUxXCIpLFwic3RyaW5nXCI9PXR5cGVvZiB0LmVuY29kaW5nJiZjdChcIi9FbmNvZGluZyAvXCIrdC5lbmNvZGluZyksY3QoXCIvRmlyc3RDaGFyIDMyXCIpLGN0KFwiL0xhc3RDaGFyIDI1NVwiKSxjdChcIj4+XCIpLGN0KFwiZW5kb2JqXCIpKX0sb2U9ZnVuY3Rpb24odCl7dC5vYmplY3ROdW1iZXI9WXQoKTt2YXIgZT1bXTtlLnB1c2goe2tleTpcIlR5cGVcIix2YWx1ZTpcIi9YT2JqZWN0XCJ9KSxlLnB1c2goe2tleTpcIlN1YnR5cGVcIix2YWx1ZTpcIi9Gb3JtXCJ9KSxlLnB1c2goe2tleTpcIkJCb3hcIix2YWx1ZTpcIltcIitbcSh0LngpLHEodC55KSxxKHQueCt0LndpZHRoKSxxKHQueSt0LmhlaWdodCldLmpvaW4oXCIgXCIpK1wiXVwifSksZS5wdXNoKHtrZXk6XCJNYXRyaXhcIix2YWx1ZTpcIltcIit0Lm1hdHJpeC50b1N0cmluZygpK1wiXVwifSk7dmFyIHI9dC5wYWdlc1sxXS5qb2luKFwiXFxuXCIpO3JlKHtkYXRhOnIsYWRkaXRpb25hbEtleVZhbHVlczplLG9iamVjdElkOnQub2JqZWN0TnVtYmVyfSksY3QoXCJlbmRvYmpcIil9LHNlPWZ1bmN0aW9uKHQsZSl7ZXx8KGU9MjEpO3ZhciByPVl0KCksbj1mdW5jdGlvbih0LGUpe3ZhciByLG49W10saT0xLyhlLTEpO2ZvcihyPTA7cjwxO3IrPWkpbi5wdXNoKHIpO2lmKG4ucHVzaCgxKSwwIT10WzBdLm9mZnNldCl7dmFyIGE9e29mZnNldDowLGNvbG9yOnRbMF0uY29sb3J9O3QudW5zaGlmdChhKX1pZigxIT10W3QubGVuZ3RoLTFdLm9mZnNldCl7dmFyIG89e29mZnNldDoxLGNvbG9yOnRbdC5sZW5ndGgtMV0uY29sb3J9O3QucHVzaChvKX1mb3IodmFyIHM9XCJcIixjPTAsdT0wO3U8bi5sZW5ndGg7dSsrKXtmb3Iocj1uW3VdO3I+dFtjKzFdLm9mZnNldDspYysrO3ZhciBsPXRbY10ub2Zmc2V0LGg9KHItbCkvKHRbYysxXS5vZmZzZXQtbCksZj10W2NdLmNvbG9yLGQ9dFtjKzFdLmNvbG9yO3MrPVooTWF0aC5yb3VuZCgoMS1oKSpmWzBdK2gqZFswXSkudG9TdHJpbmcoMTYpKStaKE1hdGgucm91bmQoKDEtaCkqZlsxXStoKmRbMV0pLnRvU3RyaW5nKDE2KSkrWihNYXRoLnJvdW5kKCgxLWgpKmZbMl0raCpkWzJdKS50b1N0cmluZygxNikpfXJldHVybiBzLnRyaW0oKX0odC5jb2xvcnMsZSksaT1bXTtpLnB1c2goe2tleTpcIkZ1bmN0aW9uVHlwZVwiLHZhbHVlOlwiMFwifSksaS5wdXNoKHtrZXk6XCJEb21haW5cIix2YWx1ZTpcIlswLjAgMS4wXVwifSksaS5wdXNoKHtrZXk6XCJTaXplXCIsdmFsdWU6XCJbXCIrZStcIl1cIn0pLGkucHVzaCh7a2V5OlwiQml0c1BlclNhbXBsZVwiLHZhbHVlOlwiOFwifSksaS5wdXNoKHtrZXk6XCJSYW5nZVwiLHZhbHVlOlwiWzAuMCAxLjAgMC4wIDEuMCAwLjAgMS4wXVwifSksaS5wdXNoKHtrZXk6XCJEZWNvZGVcIix2YWx1ZTpcIlswLjAgMS4wIDAuMCAxLjAgMC4wIDEuMF1cIn0pLHJlKHtkYXRhOm4sYWRkaXRpb25hbEtleVZhbHVlczppLGFscmVhZHlBcHBsaWVkRmlsdGVyczpbXCIvQVNDSUlIZXhEZWNvZGVcIl0sb2JqZWN0SWQ6cn0pLGN0KFwiZW5kb2JqXCIpLHQub2JqZWN0TnVtYmVyPVl0KCksY3QoXCI8PCAvU2hhZGluZ1R5cGUgXCIrdC50eXBlKSxjdChcIi9Db2xvclNwYWNlIC9EZXZpY2VSR0JcIik7dmFyIGE9XCIvQ29vcmRzIFtcIitxKHBhcnNlRmxvYXQodC5jb29yZHNbMF0pKStcIiBcIitxKHBhcnNlRmxvYXQodC5jb29yZHNbMV0pKStcIiBcIjsyPT09dC50eXBlP2ErPXEocGFyc2VGbG9hdCh0LmNvb3Jkc1syXSkpK1wiIFwiK3EocGFyc2VGbG9hdCh0LmNvb3Jkc1szXSkpOmErPXEocGFyc2VGbG9hdCh0LmNvb3Jkc1syXSkpK1wiIFwiK3EocGFyc2VGbG9hdCh0LmNvb3Jkc1szXSkpK1wiIFwiK3EocGFyc2VGbG9hdCh0LmNvb3Jkc1s0XSkpK1wiIFwiK3EocGFyc2VGbG9hdCh0LmNvb3Jkc1s1XSkpLGN0KGErPVwiXVwiKSx0Lm1hdHJpeCYmY3QoXCIvTWF0cml4IFtcIit0Lm1hdHJpeC50b1N0cmluZygpK1wiXVwiKSxjdChcIi9GdW5jdGlvbiBcIityK1wiIDAgUlwiKSxjdChcIi9FeHRlbmQgW3RydWUgdHJ1ZV1cIiksY3QoXCI+PlwiKSxjdChcImVuZG9ialwiKX0sY2U9ZnVuY3Rpb24odCxlKXt2YXIgcj1KdCgpLG49WXQoKTtlLnB1c2goe3Jlc291cmNlc09pZDpyLG9iamVjdE9pZDpufSksdC5vYmplY3ROdW1iZXI9bjt2YXIgaT1bXTtpLnB1c2goe2tleTpcIlR5cGVcIix2YWx1ZTpcIi9QYXR0ZXJuXCJ9KSxpLnB1c2goe2tleTpcIlBhdHRlcm5UeXBlXCIsdmFsdWU6XCIxXCJ9KSxpLnB1c2goe2tleTpcIlBhaW50VHlwZVwiLHZhbHVlOlwiMVwifSksaS5wdXNoKHtrZXk6XCJUaWxpbmdUeXBlXCIsdmFsdWU6XCIxXCJ9KSxpLnB1c2goe2tleTpcIkJCb3hcIix2YWx1ZTpcIltcIit0LmJvdW5kaW5nQm94Lm1hcChxKS5qb2luKFwiIFwiKStcIl1cIn0pLGkucHVzaCh7a2V5OlwiWFN0ZXBcIix2YWx1ZTpxKHQueFN0ZXApfSksaS5wdXNoKHtrZXk6XCJZU3RlcFwiLHZhbHVlOnEodC55U3RlcCl9KSxpLnB1c2goe2tleTpcIlJlc291cmNlc1wiLHZhbHVlOnIrXCIgMCBSXCJ9KSx0Lm1hdHJpeCYmaS5wdXNoKHtrZXk6XCJNYXRyaXhcIix2YWx1ZTpcIltcIit0Lm1hdHJpeC50b1N0cmluZygpK1wiXVwifSkscmUoe2RhdGE6dC5zdHJlYW0sYWRkaXRpb25hbEtleVZhbHVlczppLG9iamVjdElkOnQub2JqZWN0TnVtYmVyfSksY3QoXCJlbmRvYmpcIil9LHVlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0Lm9iamVjdE51bWJlcj1ZdCgpLGN0KFwiPDxcIiksdClzd2l0Y2goZSl7Y2FzZVwib3BhY2l0eVwiOmN0KFwiL2NhIFwiK1IodFtlXSkpO2JyZWFrO2Nhc2VcInN0cm9rZS1vcGFjaXR5XCI6Y3QoXCIvQ0EgXCIrUih0W2VdKSl9Y3QoXCI+PlwiKSxjdChcImVuZG9ialwiKX0sbGU9ZnVuY3Rpb24odCl7WHQodC5yZXNvdXJjZXNPaWQsITApLGN0KFwiPDxcIiksY3QoXCIvUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSV1cIiksZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gY3QoXCIvRm9udCA8PFwiKSxQdClQdC5oYXNPd25Qcm9wZXJ0eSh0KSYmKCExPT09Z3x8ITA9PT1nJiZtLmhhc093blByb3BlcnR5KHQpKSYmY3QoXCIvXCIrdCtcIiBcIitQdFt0XS5vYmplY3ROdW1iZXIrXCIgMCBSXCIpO2N0KFwiPj5cIil9KCksZnVuY3Rpb24oKXtpZihPYmplY3Qua2V5cyhJdCkubGVuZ3RoPjApe2Zvcih2YXIgdCBpbiBjdChcIi9TaGFkaW5nIDw8XCIpLEl0KUl0Lmhhc093blByb3BlcnR5KHQpJiZJdFt0XWluc3RhbmNlb2YgRiYmSXRbdF0ub2JqZWN0TnVtYmVyPj0wJiZjdChcIi9cIit0K1wiIFwiK0l0W3RdLm9iamVjdE51bWJlcitcIiAwIFJcIik7RXQucHVibGlzaChcInB1dFNoYWRpbmdQYXR0ZXJuRGljdFwiKSxjdChcIj4+XCIpfX0oKSxmdW5jdGlvbih0KXtpZihPYmplY3Qua2V5cyhJdCkubGVuZ3RoPjApe2Zvcih2YXIgZSBpbiBjdChcIi9QYXR0ZXJuIDw8XCIpLEl0KUl0Lmhhc093blByb3BlcnR5KGUpJiZJdFtlXWluc3RhbmNlb2Ygdi5UaWxpbmdQYXR0ZXJuJiZJdFtlXS5vYmplY3ROdW1iZXI+PTAmJkl0W2VdLm9iamVjdE51bWJlcjx0JiZjdChcIi9cIitlK1wiIFwiK0l0W2VdLm9iamVjdE51bWJlcitcIiAwIFJcIik7RXQucHVibGlzaChcInB1dFRpbGluZ1BhdHRlcm5EaWN0XCIpLGN0KFwiPj5cIil9fSh0Lm9iamVjdE9pZCksZnVuY3Rpb24oKXtpZihPYmplY3Qua2V5cyhqdCkubGVuZ3RoPjApe3ZhciB0O2Zvcih0IGluIGN0KFwiL0V4dEdTdGF0ZSA8PFwiKSxqdClqdC5oYXNPd25Qcm9wZXJ0eSh0KSYmanRbdF0ub2JqZWN0TnVtYmVyPj0wJiZjdChcIi9cIit0K1wiIFwiK2p0W3RdLm9iamVjdE51bWJlcitcIiAwIFJcIik7RXQucHVibGlzaChcInB1dEdTdGF0ZURpY3RcIiksY3QoXCI+PlwiKX19KCksZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gY3QoXCIvWE9iamVjdCA8PFwiKSxEdClEdC5oYXNPd25Qcm9wZXJ0eSh0KSYmRHRbdF0ub2JqZWN0TnVtYmVyPj0wJiZjdChcIi9cIit0K1wiIFwiK0R0W3RdLm9iamVjdE51bWJlcitcIiAwIFJcIik7RXQucHVibGlzaChcInB1dFhvYmplY3REaWN0XCIpLGN0KFwiPj5cIil9KCksY3QoXCI+PlwiKSxjdChcImVuZG9ialwiKX0saGU9ZnVuY3Rpb24odCl7a3RbdC5mb250TmFtZV09a3RbdC5mb250TmFtZV18fHt9LGt0W3QuZm9udE5hbWVdW3QuZm9udFN0eWxlXT10LmlkfSxmZT1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPXtpZDpcIkZcIisoT2JqZWN0LmtleXMoUHQpLmxlbmd0aCsxKS50b1N0cmluZygxMCkscG9zdFNjcmlwdE5hbWU6dCxmb250TmFtZTplLGZvbnRTdHlsZTpyLGVuY29kaW5nOm4saXNTdGFuZGFyZEZvbnQ6aXx8ITEsbWV0YWRhdGE6e319O3JldHVybiBFdC5wdWJsaXNoKFwiYWRkRm9udFwiLHtmb250OmEsaW5zdGFuY2U6dGhpc30pLFB0W2EuaWRdPWEsaGUoYSksYS5pZH0sZGU9di5fX3ByaXZhdGVfXy5wZGZFc2NhcGU9di5wZGZFc2NhcGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYSxvLHMsYyx1LGw7aWYoaT0oZT1lfHx7fSkuc291cmNlRW5jb2Rpbmd8fFwiVW5pY29kZVwiLG89ZS5vdXRwdXRFbmNvZGluZywoZS5hdXRvZW5jb2RlfHxvKSYmUHRbTHRdLm1ldGFkYXRhJiZQdFtMdF0ubWV0YWRhdGFbaV0mJlB0W0x0XS5tZXRhZGF0YVtpXS5lbmNvZGluZyYmKGE9UHRbTHRdLm1ldGFkYXRhW2ldLmVuY29kaW5nLCFvJiZQdFtMdF0uZW5jb2RpbmcmJihvPVB0W0x0XS5lbmNvZGluZyksIW8mJmEuY29kZVBhZ2VzJiYobz1hLmNvZGVQYWdlc1swXSksXCJzdHJpbmdcIj09dHlwZW9mIG8mJihvPWFbb10pLG8pKXtmb3IoYz0hMSxzPVtdLHI9MCxuPXQubGVuZ3RoO3I8bjtyKyspKHU9b1t0LmNoYXJDb2RlQXQocildKT9zLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSh1KSk6cy5wdXNoKHRbcl0pLHNbcl0uY2hhckNvZGVBdCgwKT4+OCYmKGM9ITApO3Q9cy5qb2luKFwiXCIpfWZvcihyPXQubGVuZ3RoO3ZvaWQgMD09PWMmJjAhPT1yOyl0LmNoYXJDb2RlQXQoci0xKT4+OCYmKGM9ITApLHItLTtpZighYylyZXR1cm4gdDtmb3Iocz1lLm5vQk9NP1tdOlsyNTQsMjU1XSxyPTAsbj10Lmxlbmd0aDtyPG47cisrKXtpZigobD0odT10LmNoYXJDb2RlQXQocikpPj44KT4+OCl0aHJvdyBuZXcgRXJyb3IoXCJDaGFyYWN0ZXIgYXQgcG9zaXRpb24gXCIrcitcIiBvZiBzdHJpbmcgJ1wiK3QrXCInIGV4Y2VlZHMgMTZiaXRzLiBDYW5ub3QgYmUgZW5jb2RlZCBpbnRvIFVDUy0yIEJFXCIpO3MucHVzaChsKSxzLnB1c2godS0obDw8OCkpfXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KHZvaWQgMCxzKX0odCxlKS5yZXBsYWNlKC9cXFxcL2csXCJcXFxcXFxcXFwiKS5yZXBsYWNlKC9cXCgvZyxcIlxcXFwoXCIpLnJlcGxhY2UoL1xcKS9nLFwiXFxcXClcIil9LHBlPXYuX19wcml2YXRlX18uYmVnaW5QYWdlPWZ1bmN0aW9uKHQpe2l0WysrcXRdPVtdLE10W3F0XT17b2JqSWQ6MCxjb250ZW50c09iaklkOjAsdXNlclVuaXQ6TnVtYmVyKGgpLGFydEJveDpudWxsLGJsZWVkQm94Om51bGwsY3JvcEJveDpudWxsLHRyaW1Cb3g6bnVsbCxtZWRpYUJveDp7Ym90dG9tTGVmdFg6MCxib3R0b21MZWZ0WTowLHRvcFJpZ2h0WDpOdW1iZXIodFswXSksdG9wUmlnaHRZOk51bWJlcih0WzFdKX19LHZlKHF0KSxzdChpdFtLXSl9LGdlPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixhO3N3aXRjaChpPWV8fGksXCJzdHJpbmdcIj09dHlwZW9mIHQmJihyPU4odC50b0xvd2VyQ2FzZSgpKSxBcnJheS5pc0FycmF5KHIpJiYobj1yWzBdLGE9clsxXSkpLEFycmF5LmlzQXJyYXkodCkmJihuPXRbMF0qeHQsYT10WzFdKnh0KSxpc05hTihuKSYmKG49Y1swXSxhPWNbMV0pLChuPjE0NDAwfHxhPjE0NDAwKSYmKHMud2FybihcIkEgcGFnZSBpbiBhIFBERiBjYW4gbm90IGJlIHdpZGVyIG9yIHRhbGxlciB0aGFuIDE0NDAwIHVzZXJVbml0LiBqc1BERiBsaW1pdHMgdGhlIHdpZHRoL2hlaWdodCB0byAxNDQwMFwiKSxuPU1hdGgubWluKDE0NDAwLG4pLGE9TWF0aC5taW4oMTQ0MDAsYSkpLGM9W24sYV0saS5zdWJzdHIoMCwxKSl7Y2FzZVwibFwiOmE+biYmKGM9W2Esbl0pO2JyZWFrO2Nhc2VcInBcIjpuPmEmJihjPVthLG5dKX1wZShjKSwkZShYZSksY3QoYXIpLDAhPT1ociYmY3QoaHIrXCIgSlwiKSwwIT09ZnImJmN0KGZyK1wiIGpcIiksRXQucHVibGlzaChcImFkZFBhZ2VcIix7cGFnZU51bWJlcjpxdH0pfSxtZT1mdW5jdGlvbih0KXt0PjAmJnQ8PXF0JiYoaXQuc3BsaWNlKHQsMSksTXQuc3BsaWNlKHQsMSkscXQtLSxLPnF0JiYoSz1xdCksdGhpcy5zZXRQYWdlKEspKX0sdmU9ZnVuY3Rpb24odCl7dD4wJiZ0PD1xdCYmKEs9dCl9LGJlPXYuX19wcml2YXRlX18uZ2V0TnVtYmVyT2ZQYWdlcz12LmdldE51bWJlck9mUGFnZXM9ZnVuY3Rpb24oKXtyZXR1cm4gaXQubGVuZ3RoLTF9LHllPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpPXZvaWQgMDtyZXR1cm4gcj1yfHx7fSx0PXZvaWQgMCE9PXQ/dDpQdFtMdF0uZm9udE5hbWUsZT12b2lkIDAhPT1lP2U6UHRbTHRdLmZvbnRTdHlsZSxuPXQudG9Mb3dlckNhc2UoKSx2b2lkIDAhPT1rdFtuXSYmdm9pZCAwIT09a3Rbbl1bZV0/aT1rdFtuXVtlXTp2b2lkIDAhPT1rdFt0XSYmdm9pZCAwIT09a3RbdF1bZV0/aT1rdFt0XVtlXTohMT09PXIuZGlzYWJsZVdhcm5pbmcmJnMud2FybihcIlVuYWJsZSB0byBsb29rIHVwIGZvbnQgbGFiZWwgZm9yIGZvbnQgJ1wiK3QrXCInLCAnXCIrZStcIicuIFJlZmVyIHRvIGdldEZvbnRMaXN0KCkgZm9yIGF2YWlsYWJsZSBmb250cy5cIiksaXx8ci5ub0ZhbGxiYWNrfHxudWxsPT0oaT1rdC50aW1lc1tlXSkmJihpPWt0LnRpbWVzLm5vcm1hbCksaX0sd2U9di5fX3ByaXZhdGVfXy5wdXRJbmZvPWZ1bmN0aW9uKCl7dmFyIHQ9WXQoKSxlPWZ1bmN0aW9uKHQpe3JldHVybiB0fTtmb3IodmFyIHIgaW4gbnVsbCE9PXAmJihlPUNlLmVuY3J5cHRvcih0LDApKSxjdChcIjw8XCIpLGN0KFwiL1Byb2R1Y2VyIChcIitkZShlKFwianNQREYgXCIrQy52ZXJzaW9uKSkrXCIpXCIpLE50KU50Lmhhc093blByb3BlcnR5KHIpJiZOdFtyXSYmY3QoXCIvXCIrci5zdWJzdHIoMCwxKS50b1VwcGVyQ2FzZSgpK3Iuc3Vic3RyKDEpK1wiIChcIitkZShlKE50W3JdKSkrXCIpXCIpO2N0KFwiL0NyZWF0aW9uRGF0ZSAoXCIrZGUoZShVKSkrXCIpXCIpLGN0KFwiPj5cIiksY3QoXCJlbmRvYmpcIil9LE5lPXYuX19wcml2YXRlX18ucHV0Q2F0YWxvZz1mdW5jdGlvbih0KXt2YXIgZT0odD10fHx7fSkucm9vdERpY3Rpb25hcnlPYmpJZHx8JHQ7c3dpdGNoKFl0KCksY3QoXCI8PFwiKSxjdChcIi9UeXBlIC9DYXRhbG9nXCIpLGN0KFwiL1BhZ2VzIFwiK2UrXCIgMCBSXCIpLGR0fHwoZHQ9XCJmdWxsd2lkdGhcIiksZHQpe2Nhc2VcImZ1bGx3aWR0aFwiOmN0KFwiL09wZW5BY3Rpb24gWzMgMCBSIC9GaXRIIG51bGxdXCIpO2JyZWFrO2Nhc2VcImZ1bGxoZWlnaHRcIjpjdChcIi9PcGVuQWN0aW9uIFszIDAgUiAvRml0ViBudWxsXVwiKTticmVhaztjYXNlXCJmdWxscGFnZVwiOmN0KFwiL09wZW5BY3Rpb24gWzMgMCBSIC9GaXRdXCIpO2JyZWFrO2Nhc2VcIm9yaWdpbmFsXCI6Y3QoXCIvT3BlbkFjdGlvbiBbMyAwIFIgL1hZWiBudWxsIG51bGwgMV1cIik7YnJlYWs7ZGVmYXVsdDp2YXIgcj1cIlwiK2R0O1wiJVwiPT09ci5zdWJzdHIoci5sZW5ndGgtMSkmJihkdD1wYXJzZUludChkdCkvMTAwKSxcIm51bWJlclwiPT10eXBlb2YgZHQmJmN0KFwiL09wZW5BY3Rpb24gWzMgMCBSIC9YWVogbnVsbCBudWxsIFwiK1IoZHQpK1wiXVwiKX1zd2l0Y2goYnR8fChidD1cImNvbnRpbnVvdXNcIiksYnQpe2Nhc2VcImNvbnRpbnVvdXNcIjpjdChcIi9QYWdlTGF5b3V0IC9PbmVDb2x1bW5cIik7YnJlYWs7Y2FzZVwic2luZ2xlXCI6Y3QoXCIvUGFnZUxheW91dCAvU2luZ2xlUGFnZVwiKTticmVhaztjYXNlXCJ0d29cIjpjYXNlXCJ0d29sZWZ0XCI6Y3QoXCIvUGFnZUxheW91dCAvVHdvQ29sdW1uTGVmdFwiKTticmVhaztjYXNlXCJ0d29yaWdodFwiOmN0KFwiL1BhZ2VMYXlvdXQgL1R3b0NvbHVtblJpZ2h0XCIpfW10JiZjdChcIi9QYWdlTW9kZSAvXCIrbXQpLEV0LnB1Ymxpc2goXCJwdXRDYXRhbG9nXCIpLGN0KFwiPj5cIiksY3QoXCJlbmRvYmpcIil9LExlPXYuX19wcml2YXRlX18ucHV0VHJhaWxlcj1mdW5jdGlvbigpe2N0KFwidHJhaWxlclwiKSxjdChcIjw8XCIpLGN0KFwiL1NpemUgXCIrKFErMSkpLGN0KFwiL1Jvb3QgXCIrUStcIiAwIFJcIiksY3QoXCIvSW5mbyBcIisoUS0xKStcIiAwIFJcIiksbnVsbCE9PXAmJmN0KFwiL0VuY3J5cHQgXCIrQ2Uub2lkK1wiIDAgUlwiKSxjdChcIi9JRCBbIDxcIitIK1wiPiA8XCIrSCtcIj4gXVwiKSxjdChcIj4+XCIpfSx4ZT12Ll9fcHJpdmF0ZV9fLnB1dEhlYWRlcj1mdW5jdGlvbigpe2N0KFwiJVBERi1cIitiKSxjdChcIiXCusOfwqzDoFwiKX0sQWU9di5fX3ByaXZhdGVfXy5wdXRYUmVmPWZ1bmN0aW9uKCl7dmFyIHQ9XCIwMDAwMDAwMDAwXCI7Y3QoXCJ4cmVmXCIpLGN0KFwiMCBcIisoUSsxKSksY3QoXCIwMDAwMDAwMDAwIDY1NTM1IGYgXCIpO2Zvcih2YXIgZT0xO2U8PVE7ZSsrKVwiZnVuY3Rpb25cIj09dHlwZW9mIHR0W2VdP2N0KCh0K3R0W2VdKCkpLnNsaWNlKC0xMCkrXCIgMDAwMDAgbiBcIik6dm9pZCAwIT09dHRbZV0/Y3QoKHQrdHRbZV0pLnNsaWNlKC0xMCkrXCIgMDAwMDAgbiBcIik6Y3QoXCIwMDAwMDAwMDAwIDAwMDAwIG4gXCIpfSxTZT12Ll9fcHJpdmF0ZV9fLmJ1aWxkRG9jdW1lbnQ9ZnVuY3Rpb24oKXt2YXIgdDtRPTAscnQ9MCxldD1bXSx0dD1bXSxudD1bXSwkdD1KdCgpLFp0PUp0KCksc3QoZXQpLEV0LnB1Ymxpc2goXCJidWlsZERvY3VtZW50XCIpLHhlKCksaWUoKSxmdW5jdGlvbigpe0V0LnB1Ymxpc2goXCJwdXRBZGRpdGlvbmFsT2JqZWN0c1wiKTtmb3IodmFyIHQ9MDt0PG50Lmxlbmd0aDt0Kyspe3ZhciBlPW50W3RdO1h0KGUub2JqSWQsITApLGN0KGUuY29udGVudCksY3QoXCJlbmRvYmpcIil9RXQucHVibGlzaChcInBvc3RQdXRBZGRpdGlvbmFsT2JqZWN0c1wiKX0oKSx0PVtdLGZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIFB0KVB0Lmhhc093blByb3BlcnR5KHQpJiYoITE9PT1nfHwhMD09PWcmJm0uaGFzT3duUHJvcGVydHkodCkpJiZhZShQdFt0XSl9KCksZnVuY3Rpb24oKXt2YXIgdDtmb3IodCBpbiBqdClqdC5oYXNPd25Qcm9wZXJ0eSh0KSYmdWUoanRbdF0pfSgpLGZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIER0KUR0Lmhhc093blByb3BlcnR5KHQpJiZvZShEdFt0XSl9KCksZnVuY3Rpb24odCl7dmFyIGU7Zm9yKGUgaW4gSXQpSXQuaGFzT3duUHJvcGVydHkoZSkmJihJdFtlXWluc3RhbmNlb2YgRj9zZShJdFtlXSk6SXRbZV1pbnN0YW5jZW9mIEkmJmNlKEl0W2VdLHQpKX0odCksRXQucHVibGlzaChcInB1dFJlc291cmNlc1wiKSx0LmZvckVhY2gobGUpLGxlKHtyZXNvdXJjZXNPaWQ6WnQsb2JqZWN0T2lkOk51bWJlci5NQVhfU0FGRV9JTlRFR0VSfSksRXQucHVibGlzaChcInBvc3RQdXRSZXNvdXJjZXNcIiksbnVsbCE9PXAmJihDZS5vaWQ9WXQoKSxjdChcIjw8XCIpLGN0KFwiL0ZpbHRlciAvU3RhbmRhcmRcIiksY3QoXCIvViBcIitDZS52KSxjdChcIi9SIFwiK0NlLnIpLGN0KFwiL1UgPFwiK0NlLnRvSGV4U3RyaW5nKENlLlUpK1wiPlwiKSxjdChcIi9PIDxcIitDZS50b0hleFN0cmluZyhDZS5PKStcIj5cIiksY3QoXCIvUCBcIitDZS5QKSxjdChcIj4+XCIpLGN0KFwiZW5kb2JqXCIpKSx3ZSgpLE5lKCk7dmFyIGU9cnQ7cmV0dXJuIEFlKCksTGUoKSxjdChcInN0YXJ0eHJlZlwiKSxjdChcIlwiK2UpLGN0KFwiJSVFT0ZcIiksc3QoaXRbS10pLGV0LmpvaW4oXCJcXG5cIil9LF9lPXYuX19wcml2YXRlX18uZ2V0QmxvYj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEJsb2IoW2x0KHQpXSx7dHlwZTpcImFwcGxpY2F0aW9uL3BkZlwifSl9LFBlPWZ1bmN0aW9uKHQpe2Zvcig7dC5maXJzdENoaWxkOyl0LnJlbW92ZUNoaWxkKHQuZmlyc3RDaGlsZCl9LGtlPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dC5kb2N1bWVudCxuPXIuZG9jdW1lbnRFbGVtZW50LGk9ci5oZWFkLGE9ci5ib2R5O3JldHVybiBpfHwoaT1yLmNyZWF0ZUVsZW1lbnQoXCJoZWFkXCIpLG4uYXBwZW5kQ2hpbGQoaSkpLGF8fChhPXIuY3JlYXRlRWxlbWVudChcImJvZHlcIiksbi5hcHBlbmRDaGlsZChhKSksUGUoaSksUGUoYSksKGU9ci5jcmVhdGVFbGVtZW50KFwic3R5bGVcIikpLmFwcGVuZENoaWxkKHIuY3JlYXRlVGV4dE5vZGUoXCJodG1sLCBib2R5IHsgcGFkZGluZzogMDsgbWFyZ2luOiAwOyB9IGlmcmFtZSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJvcmRlcjogMDt9XCIpKSxpLmFwcGVuZENoaWxkKGUpLHtkb2N1bWVudDpyLGJvZHk6YX19LEZlPXYub3V0cHV0PXYuX19wcml2YXRlX18ub3V0cHV0PShHdD1mdW5jdGlvbih0LGUpe3N3aXRjaChcInN0cmluZ1wiPT10eXBlb2YoZT1lfHx7fSk/ZT17ZmlsZW5hbWU6ZX06ZS5maWxlbmFtZT1lLmZpbGVuYW1lfHxcImdlbmVyYXRlZC5wZGZcIix0KXtjYXNlIHZvaWQgMDpyZXR1cm4gU2UoKTtjYXNlXCJzYXZlXCI6di5zYXZlKGUuZmlsZW5hbWUpO2JyZWFrO2Nhc2VcImFycmF5YnVmZmVyXCI6cmV0dXJuIGx0KFNlKCkpO2Nhc2VcImJsb2JcIjpyZXR1cm4gX2UoU2UoKSk7Y2FzZVwiYmxvYnVyaVwiOmNhc2VcImJsb2J1cmxcIjppZih2b2lkIDAhPT1yLlVSTCYmXCJmdW5jdGlvblwiPT10eXBlb2Ygci5VUkwuY3JlYXRlT2JqZWN0VVJMKXJldHVybiByLlVSTCYmci5VUkwuY3JlYXRlT2JqZWN0VVJMKF9lKFNlKCkpKXx8dm9pZCAwO3Mud2FybihcImJsb2J1cmwgaXMgbm90IHN1cHBvcnRlZCBieSB5b3VyIHN5c3RlbSwgYmVjYXVzZSBVUkwuY3JlYXRlT2JqZWN0VVJMIGlzIG5vdCBzdXBwb3J0ZWQgYnkgeW91ciBicm93c2VyLlwiKTticmVhaztjYXNlXCJkYXRhdXJpc3RyaW5nXCI6Y2FzZVwiZGF0YXVybHN0cmluZ1wiOnZhciBuPVwiXCIsaT1TZSgpO3RyeXtuPWEoaSl9Y2F0Y2goTCl7bj1hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChpKSkpfXJldHVyblwiZGF0YTphcHBsaWNhdGlvbi9wZGY7ZmlsZW5hbWU9XCIrZW5jb2RlVVJJQ29tcG9uZW50KGUuZmlsZW5hbWUpK1wiO2Jhc2U2NCxcIituO2Nhc2VcInBkZm9iamVjdG5ld3dpbmRvd1wiOmlmKFwiW29iamVjdCBXaW5kb3ddXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocikpe3ZhciBvPVwiaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvcGRmb2JqZWN0LzIuMS4xL3BkZm9iamVjdC5taW4uanNcIixjPSFlLnBkZk9iamVjdFVybDtjfHwobz1lLnBkZk9iamVjdFVybCk7dmFyIHU9ci5vcGVuKCk7aWYobnVsbCE9PXUpe3ZhciBsPWtlKHUpLGg9bC5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpLGY9dGhpcztoLnNyYz1vLGMmJihoLmludGVncml0eT1cInNoYTUxMi00emUvYTkvNGpxdSt0WDlkZk9xSllTdnlZZDVNNnF1bS8zSHBDTHIrL0pxZjB3aGMzN1ZVYmtwTkdIUjcvOHBTbkNGdzQ3VDFmbUlwd0JWN1V5U2gzZz09XCIsaC5jcm9zc09yaWdpbj1cImFub255bW91c1wiKSxoLm9ubG9hZD1mdW5jdGlvbigpe3UuUERGT2JqZWN0LmVtYmVkKGYub3V0cHV0KFwiZGF0YXVybHN0cmluZ1wiKSxlKX0sbC5ib2R5LmFwcGVuZENoaWxkKGgpfXJldHVybiB1fXRocm93IG5ldyBFcnJvcihcIlRoZSBvcHRpb24gcGRmb2JqZWN0bmV3d2luZG93IGp1c3Qgd29ya3MgaW4gYSBicm93c2VyLWVudmlyb25tZW50LlwiKTtjYXNlXCJwZGZqc25ld3dpbmRvd1wiOmlmKFwiW29iamVjdCBXaW5kb3ddXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocikpe3ZhciBkPWUucGRmSnNVcmx8fFwiZXhhbXBsZXMvUERGLmpzL3dlYi92aWV3ZXIuaHRtbFwiLHA9ci5vcGVuKCk7aWYobnVsbCE9PXApe3ZhciBnPWtlKHApLG09Zy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaWZyYW1lXCIpLGI9LTE9PT1kLmluZGV4T2YoXCI/XCIpP1wiP1wiOlwiJlwiO2Y9dGhpcyxtLmlkPVwicGRmVmlld2VyXCIsbS53aWR0aD1cIjUwMHB4XCIsbS5oZWlnaHQ9XCI0MDBweFwiLG0uc3JjPWQrYitcImZpbGU9JmRvd25sb2FkTmFtZT1cIitlbmNvZGVVUklDb21wb25lbnQoZS5maWxlbmFtZSksbS5vbmxvYWQ9ZnVuY3Rpb24oKXtwLmRvY3VtZW50LnRpdGxlPWUuZmlsZW5hbWUsbS5jb250ZW50V2luZG93LlBERlZpZXdlckFwcGxpY2F0aW9uLm9wZW4oZi5vdXRwdXQoXCJibG9idXJsXCIpKX0sZy5ib2R5LmFwcGVuZENoaWxkKG0pfXJldHVybiBwfXRocm93IG5ldyBFcnJvcihcIlRoZSBvcHRpb24gcGRmanNuZXd3aW5kb3cganVzdCB3b3JrcyBpbiBhIGJyb3dzZXItZW52aXJvbm1lbnQuXCIpO2Nhc2VcImRhdGF1cmxuZXd3aW5kb3dcIjppZihcIltvYmplY3QgV2luZG93XVwiIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHIpKXRocm93IG5ldyBFcnJvcihcIlRoZSBvcHRpb24gZGF0YXVybG5ld3dpbmRvdyBqdXN0IHdvcmtzIGluIGEgYnJvd3Nlci1lbnZpcm9ubWVudC5cIik7dmFyIHk9ci5vcGVuKCk7aWYobnVsbCE9PXkpe3ZhciB3PWtlKHkpLE49dy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaWZyYW1lXCIpO04uc3JjPXRoaXMub3V0cHV0KFwiZGF0YXVyaXN0cmluZ1wiLGUpLHcuYm9keS5hcHBlbmRDaGlsZChOKSx5LmRvY3VtZW50LnRpdGxlPWUuZmlsZW5hbWV9aWYoeXx8XCJ1bmRlZmluZWRcIj09dHlwZW9mIHNhZmFyaSlyZXR1cm4geTticmVhaztjYXNlXCJkYXRhdXJpXCI6Y2FzZVwiZGF0YXVybFwiOnJldHVybiByLmRvY3VtZW50LmxvY2F0aW9uLmhyZWY9dGhpcy5vdXRwdXQoXCJkYXRhdXJpc3RyaW5nXCIsZSk7ZGVmYXVsdDpyZXR1cm4gbnVsbH19LEd0LmZvbz1mdW5jdGlvbigpe3RyeXtyZXR1cm4gR3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfWNhdGNoKG4pe3ZhciB0PW4uc3RhY2t8fFwiXCI7fnQuaW5kZXhPZihcIiBhdCBcIikmJih0PXQuc3BsaXQoXCIgYXQgXCIpWzFdKTt2YXIgZT1cIkVycm9yIGluIGZ1bmN0aW9uIFwiK3Quc3BsaXQoXCJcXG5cIilbMF0uc3BsaXQoXCI8XCIpWzBdK1wiOiBcIituLm1lc3NhZ2U7aWYoIXIuY29uc29sZSl0aHJvdyBuZXcgRXJyb3IoZSk7ci5jb25zb2xlLmVycm9yKGUsbiksci5hbGVydCYmYWxlcnQoZSl9fSxHdC5mb28uYmFyPUd0LEd0LmZvbyksSWU9ZnVuY3Rpb24odCl7cmV0dXJuITA9PT1BcnJheS5pc0FycmF5KFJ0KSYmUnQuaW5kZXhPZih0KT4tMX07c3dpdGNoKG8pe2Nhc2VcInB0XCI6eHQ9MTticmVhaztjYXNlXCJtbVwiOnh0PTcyLzI1LjQ7YnJlYWs7Y2FzZVwiY21cIjp4dD03Mi8yLjU0O2JyZWFrO2Nhc2VcImluXCI6eHQ9NzI7YnJlYWs7Y2FzZVwicHhcIjp4dD0xPT1JZShcInB4X3NjYWxpbmdcIik/Ljc1Ojk2LzcyO2JyZWFrO2Nhc2VcInBjXCI6Y2FzZVwiZW1cIjp4dD0xMjticmVhaztjYXNlXCJleFwiOnh0PTY7YnJlYWs7ZGVmYXVsdDppZihcIm51bWJlclwiIT10eXBlb2Ygbyl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHVuaXQ6IFwiK28pO3h0PW99dmFyIENlPW51bGw7SigpLFYoKTt2YXIgamU9di5fX3ByaXZhdGVfXy5nZXRQYWdlSW5mbz12LmdldFBhZ2VJbmZvPWZ1bmN0aW9uKHQpe2lmKGlzTmFOKHQpfHx0JTEhPTApdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgdG8ganNQREYuZ2V0UGFnZUluZm9cIik7cmV0dXJue29iaklkOk10W3RdLm9iaklkLHBhZ2VOdW1iZXI6dCxwYWdlQ29udGV4dDpNdFt0XX19LE9lPXYuX19wcml2YXRlX18uZ2V0UGFnZUluZm9CeU9iaklkPWZ1bmN0aW9uKHQpe2lmKGlzTmFOKHQpfHx0JTEhPTApdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgdG8ganNQREYuZ2V0UGFnZUluZm9CeU9iaklkXCIpO2Zvcih2YXIgZSBpbiBNdClpZihNdFtlXS5vYmpJZD09PXQpYnJlYWs7cmV0dXJuIGplKGUpfSxCZT12Ll9fcHJpdmF0ZV9fLmdldEN1cnJlbnRQYWdlSW5mbz12LmdldEN1cnJlbnRQYWdlSW5mbz1mdW5jdGlvbigpe3JldHVybntvYmpJZDpNdFtLXS5vYmpJZCxwYWdlTnVtYmVyOksscGFnZUNvbnRleHQ6TXRbS119fTt2LmFkZFBhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gZ2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXN9LHYuc2V0UGFnZT1mdW5jdGlvbigpe3JldHVybiB2ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksc3QuY2FsbCh0aGlzLGl0W0tdKSx0aGlzfSx2Lmluc2VydFBhZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYWRkUGFnZSgpLHRoaXMubW92ZVBhZ2UoSyx0KSx0aGlzfSx2Lm1vdmVQYWdlPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbjtpZih0PmUpe3I9aXRbdF0sbj1NdFt0XTtmb3IodmFyIGk9dDtpPmU7aS0tKWl0W2ldPWl0W2ktMV0sTXRbaV09TXRbaS0xXTtpdFtlXT1yLE10W2VdPW4sdGhpcy5zZXRQYWdlKGUpfWVsc2UgaWYodDxlKXtyPWl0W3RdLG49TXRbdF07Zm9yKHZhciBhPXQ7YTxlO2ErKylpdFthXT1pdFthKzFdLE10W2FdPU10W2ErMV07aXRbZV09cixNdFtlXT1uLHRoaXMuc2V0UGFnZShlKX1yZXR1cm4gdGhpc30sdi5kZWxldGVQYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIG1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzfSx2Ll9fcHJpdmF0ZV9fLnRleHQ9di50ZXh0PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGEsbyxzLGMsdSxsLGgsZixkLHA9KG49bnx8e30pLnNjb3BlfHx0aGlzO2lmKFwibnVtYmVyXCI9PXR5cGVvZiB0JiZcIm51bWJlclwiPT10eXBlb2YgZSYmKFwic3RyaW5nXCI9PXR5cGVvZiByfHxBcnJheS5pc0FycmF5KHIpKSl7dmFyIGc9cjtyPWUsZT10LHQ9Z31pZihhcmd1bWVudHNbM11pbnN0YW5jZW9mIFV0PT0wPyhzPWFyZ3VtZW50c1s0XSxjPWFyZ3VtZW50c1s1XSxcIm9iamVjdFwiPT10eXBlb2YoaD1hcmd1bWVudHNbM10pJiZudWxsIT09aHx8KFwic3RyaW5nXCI9PXR5cGVvZiBzJiYoYz1zLHM9bnVsbCksXCJzdHJpbmdcIj09dHlwZW9mIGgmJihjPWgsaD1udWxsKSxcIm51bWJlclwiPT10eXBlb2YgaCYmKHM9aCxoPW51bGwpLG49e2ZsYWdzOmgsYW5nbGU6cyxhbGlnbjpjfSkpOihNKFwiVGhlIHRyYW5zZm9ybSBwYXJhbWV0ZXIgb2YgdGV4dCgpIHdpdGggYSBNYXRyaXggdmFsdWVcIiksZD1pKSxpc05hTihlKXx8aXNOYU4ocil8fG51bGw9PXQpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudHMgcGFzc2VkIHRvIGpzUERGLnRleHRcIik7aWYoMD09PXQubGVuZ3RoKXJldHVybiBwO3ZhciB2LGI9XCJcIix5PVwibnVtYmVyXCI9PXR5cGVvZiBuLmxpbmVIZWlnaHRGYWN0b3I/bi5saW5lSGVpZ2h0RmFjdG9yOkplLHc9cC5pbnRlcm5hbC5zY2FsZUZhY3RvcjtmdW5jdGlvbiBOKHQpe3JldHVybiB0PXQuc3BsaXQoXCJcXHRcIikuam9pbihBcnJheShuLlRhYkxlbnx8OSkuam9pbihcIiBcIikpLGRlKHQsaCl9ZnVuY3Rpb24gTCh0KXtmb3IodmFyIGUscj10LmNvbmNhdCgpLG49W10saT1yLmxlbmd0aDtpLS07KVwic3RyaW5nXCI9PXR5cGVvZihlPXIuc2hpZnQoKSk/bi5wdXNoKGUpOkFycmF5LmlzQXJyYXkodCkmJigxPT09ZS5sZW5ndGh8fHZvaWQgMD09PWVbMV0mJnZvaWQgMD09PWVbMl0pP24ucHVzaChlWzBdKTpuLnB1c2goW2VbMF0sZVsxXSxlWzJdXSk7cmV0dXJuIG59ZnVuY3Rpb24gQSh0LGUpe3ZhciByO2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXI9ZSh0KVswXTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpe2Zvcih2YXIgbixpLGE9dC5jb25jYXQoKSxvPVtdLHM9YS5sZW5ndGg7cy0tOylcInN0cmluZ1wiPT10eXBlb2Yobj1hLnNoaWZ0KCkpP28ucHVzaChlKG4pWzBdKTpBcnJheS5pc0FycmF5KG4pJiZcInN0cmluZ1wiPT10eXBlb2YgblswXSYmKGk9ZShuWzBdLG5bMV0sblsyXSksby5wdXNoKFtpWzBdLGlbMV0saVsyXV0pKTtyPW99cmV0dXJuIHJ9dmFyIFM9ITEsXz0hMDtpZihcInN0cmluZ1wiPT10eXBlb2YgdClTPSEwO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIFA9dC5jb25jYXQoKTtvPVtdO2Zvcih2YXIgRixJPVAubGVuZ3RoO0ktLTspKFwic3RyaW5nXCIhPXR5cGVvZihGPVAuc2hpZnQoKSl8fEFycmF5LmlzQXJyYXkoRikmJlwic3RyaW5nXCIhPXR5cGVvZiBGWzBdKSYmKF89ITEpO1M9X31pZighMT09PVMpdGhyb3cgbmV3IEVycm9yKCdUeXBlIG9mIHRleHQgbXVzdCBiZSBzdHJpbmcgb3IgQXJyYXkuIFwiJyt0KydcIiBpcyBub3QgcmVjb2duaXplZC4nKTtcInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9dC5tYXRjaCgvW1xccj9cXG5dLyk/dC5zcGxpdCgvXFxyXFxufFxccnxcXG4vZyk6W3RdKTt2YXIgQz1mdC9wLmludGVybmFsLnNjYWxlRmFjdG9yLGo9QyooeS0xKTtzd2l0Y2gobi5iYXNlbGluZSl7Y2FzZVwiYm90dG9tXCI6ci09ajticmVhaztjYXNlXCJ0b3BcIjpyKz1DLWo7YnJlYWs7Y2FzZVwiaGFuZ2luZ1wiOnIrPUMtMipqO2JyZWFrO2Nhc2VcIm1pZGRsZVwiOnIrPUMvMi1qfWlmKChsPW4ubWF4V2lkdGh8fDApPjAmJihcInN0cmluZ1wiPT10eXBlb2YgdD90PXAuc3BsaXRUZXh0VG9TaXplKHQsbCk6XCJbb2JqZWN0IEFycmF5XVwiPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpJiYodD10LnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiB0LmNvbmNhdChwLnNwbGl0VGV4dFRvU2l6ZShlLGwpKX0sW10pKSksYT17dGV4dDp0LHg6ZSx5OnIsb3B0aW9uczpuLG11dGV4OntwZGZFc2NhcGU6ZGUsYWN0aXZlRm9udEtleTpMdCxmb250czpQdCxhY3RpdmVGb250U2l6ZTpmdH19LEV0LnB1Ymxpc2goXCJwcmVQcm9jZXNzVGV4dFwiLGEpLHQ9YS50ZXh0LHM9KG49YS5vcHRpb25zKS5hbmdsZSxkIGluc3RhbmNlb2YgVXQ9PTAmJnMmJlwibnVtYmVyXCI9PXR5cGVvZiBzKXtzKj1NYXRoLlBJLzE4MCwwPT09bi5yb3RhdGlvbkRpcmVjdGlvbiYmKHM9LXMpLGs9PT14JiYocz0tcyk7dmFyIE89TWF0aC5jb3MocyksQj1NYXRoLnNpbihzKTtkPW5ldyBVdChPLEIsLUIsTywwLDApfWVsc2UgcyYmcyBpbnN0YW5jZW9mIFV0JiYoZD1zKTtrIT09eHx8ZHx8KGQ9V3QpLHZvaWQgMCE9PSh1PW4uY2hhclNwYWNlfHx1cikmJihiKz1xKFQodSkpK1wiIFRjXFxuXCIsdGhpcy5zZXRDaGFyU3BhY2UodGhpcy5nZXRDaGFyU3BhY2UoKXx8MCkpLHZvaWQgMCE9PShmPW4uaG9yaXpvbnRhbFNjYWxlKSYmKGIrPXEoMTAwKmYpK1wiIFR6XFxuXCIpLG4ubGFuZzt2YXIgRT0tMSxSPXZvaWQgMCE9PW4ucmVuZGVyaW5nTW9kZT9uLnJlbmRlcmluZ01vZGU6bi5zdHJva2UsRD1wLmludGVybmFsLmdldEN1cnJlbnRQYWdlSW5mbygpLnBhZ2VDb250ZXh0O3N3aXRjaChSKXtjYXNlIDA6Y2FzZSExOmNhc2VcImZpbGxcIjpFPTA7YnJlYWs7Y2FzZSAxOmNhc2UhMDpjYXNlXCJzdHJva2VcIjpFPTE7YnJlYWs7Y2FzZSAyOmNhc2VcImZpbGxUaGVuU3Ryb2tlXCI6RT0yO2JyZWFrO2Nhc2UgMzpjYXNlXCJpbnZpc2libGVcIjpFPTM7YnJlYWs7Y2FzZSA0OmNhc2VcImZpbGxBbmRBZGRGb3JDbGlwcGluZ1wiOkU9NDticmVhaztjYXNlIDU6Y2FzZVwic3Ryb2tlQW5kQWRkUGF0aEZvckNsaXBwaW5nXCI6RT01O2JyZWFrO2Nhc2UgNjpjYXNlXCJmaWxsVGhlblN0cm9rZUFuZEFkZFRvUGF0aEZvckNsaXBwaW5nXCI6RT02O2JyZWFrO2Nhc2UgNzpjYXNlXCJhZGRUb1BhdGhGb3JDbGlwcGluZ1wiOkU9N312YXIgej12b2lkIDAhPT1ELnVzZWRSZW5kZXJpbmdNb2RlP0QudXNlZFJlbmRlcmluZ01vZGU6LTE7LTEhPT1FP2IrPUUrXCIgVHJcXG5cIjotMSE9PXomJihiKz1cIjAgVHJcXG5cIiksLTEhPT1FJiYoRC51c2VkUmVuZGVyaW5nTW9kZT1FKSxjPW4uYWxpZ258fFwibGVmdFwiO3ZhciBVLEg9ZnQqeSxXPXAuaW50ZXJuYWwucGFnZVNpemUuZ2V0V2lkdGgoKSxWPVB0W0x0XTt1PW4uY2hhclNwYWNlfHx1cixsPW4ubWF4V2lkdGh8fDAsaD1PYmplY3QuYXNzaWduKHthdXRvZW5jb2RlOiEwLG5vQk9NOiEwfSxuLmZsYWdzKTt2YXIgRz1bXSxZPWZ1bmN0aW9uKHQpe3JldHVybiBwLmdldFN0cmluZ1VuaXRXaWR0aCh0LHtmb250OlYsY2hhclNwYWNlOnUsZm9udFNpemU6ZnQsZG9LZXJuaW5nOiExfSkqZnQvd307aWYoXCJbb2JqZWN0IEFycmF5XVwiPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKXt2YXIgSjtvPUwodCksXCJsZWZ0XCIhPT1jJiYoVT1vLm1hcChZKSk7dmFyIFgsSz0wO2lmKFwicmlnaHRcIj09PWMpe2UtPVVbMF0sdD1bXSxJPW8ubGVuZ3RoO2Zvcih2YXIgJD0wOyQ8STskKyspMD09PSQ/KFg9ZXIoZSksSj1ycihyKSk6KFg9VChLLVVbJF0pLEo9LUgpLHQucHVzaChbb1skXSxYLEpdKSxLPVVbJF19ZWxzZSBpZihcImNlbnRlclwiPT09Yyl7ZS09VVswXS8yLHQ9W10sST1vLmxlbmd0aDtmb3IodmFyIFo9MDtaPEk7WisrKTA9PT1aPyhYPWVyKGUpLEo9cnIocikpOihYPVQoKEstVVtaXSkvMiksSj0tSCksdC5wdXNoKFtvW1pdLFgsSl0pLEs9VVtaXX1lbHNlIGlmKFwibGVmdFwiPT09Yyl7dD1bXSxJPW8ubGVuZ3RoO2Zvcih2YXIgUT0wO1E8STtRKyspdC5wdXNoKG9bUV0pfWVsc2UgaWYoXCJqdXN0aWZ5XCI9PT1jJiZcIklkZW50aXR5LUhcIj09PVYuZW5jb2Rpbmcpe3Q9W10sST1vLmxlbmd0aCxsPTAhPT1sP2w6VztsZXQgbj0wO2Zvcih2YXIgdHQ9MDt0dDxJO3R0KyspaWYoSj0wPT09dHQ/cnIocik6LUgsWD0wPT09dHQ/ZXIoZSk6bix0dDxJLTEpe2xldCBlPVQoKGwtVVt0dF0pLyhvW3R0XS5zcGxpdChcIiBcIikubGVuZ3RoLTEpKSxyPW9bdHRdLnNwbGl0KFwiIFwiKTt0LnB1c2goW3JbMF0rXCIgXCIsWCxKXSksbj0wO2ZvcihsZXQgaT0xO2k8ci5sZW5ndGg7aSsrKXtsZXQgYT0oWShyW2ktMV0rXCIgXCIrcltpXSktWShyW2ldKSkqdytlO2k9PXIubGVuZ3RoLTE/dC5wdXNoKFtyW2ldLGEsMF0pOnQucHVzaChbcltpXStcIiBcIixhLDBdKSxuLT1hfX1lbHNlIHQucHVzaChbb1t0dF0sWCxKXSk7dC5wdXNoKFtcIlwiLG4sMF0pfWVsc2V7aWYoXCJqdXN0aWZ5XCIhPT1jKXRocm93IG5ldyBFcnJvcignVW5yZWNvZ25pemVkIGFsaWdubWVudCBvcHRpb24sIHVzZSBcImxlZnRcIiwgXCJjZW50ZXJcIiwgXCJyaWdodFwiIG9yIFwianVzdGlmeVwiLicpO2Zvcih0PVtdLEk9by5sZW5ndGgsbD0wIT09bD9sOlcsdHQ9MDt0dDxJO3R0Kyspe0o9MD09PXR0P3JyKHIpOi1ILFg9MD09PXR0P2VyKGUpOjA7Y29uc3Qgbj1vW3R0XS5zcGxpdChcIiBcIikubGVuZ3RoLTEsaT1uPjA/KGwtVVt0dF0pL246MDt0dDxJLTE/Ry5wdXNoKHEoVChpKSkpOkcucHVzaCgwKSx0LnB1c2goW29bdHRdLFgsSl0pfX19ITA9PT0oXCJib29sZWFuXCI9PXR5cGVvZiBuLlIyTD9uLlIyTDpndCkmJih0PUEodCxmdW5jdGlvbih0LGUscil7cmV0dXJuW3Quc3BsaXQoXCJcIikucmV2ZXJzZSgpLmpvaW4oXCJcIiksZSxyXX0pKSxhPXt0ZXh0OnQseDplLHk6cixvcHRpb25zOm4sbXV0ZXg6e3BkZkVzY2FwZTpkZSxhY3RpdmVGb250S2V5Okx0LGZvbnRzOlB0LGFjdGl2ZUZvbnRTaXplOmZ0fX0sRXQucHVibGlzaChcInBvc3RQcm9jZXNzVGV4dFwiLGEpLHQ9YS50ZXh0LHY9YS5tdXRleC5pc0hleHx8ITE7dmFyIGV0PVB0W0x0XS5lbmNvZGluZztcIldpbkFuc2lFbmNvZGluZ1wiIT09ZXQmJlwiU3RhbmRhcmRFbmNvZGluZ1wiIT09ZXR8fCh0PUEodCxmdW5jdGlvbih0LGUscil7cmV0dXJuW04odCksZSxyXX0pKSxvPUwodCksdD1bXTtmb3IodmFyIHJ0LG50LGl0LGF0PUFycmF5LmlzQXJyYXkob1swXSk/MTowLG90PVwiXCIsc3Q9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPVwiXCI7cmV0dXJuIHIgaW5zdGFuY2VvZiBVdD8ocj1cIm51bWJlclwiPT10eXBlb2Ygbi5hbmdsZT9IdChyLG5ldyBVdCgxLDAsMCwxLHQsZSkpOkh0KG5ldyBVdCgxLDAsMCwxLHQsZSksciksaz09PXgmJihyPUh0KG5ldyBVdCgxLDAsMCwtMSwwLDApLHIpKSxpPXIuam9pbihcIiBcIikrXCIgVG1cXG5cIik6aT1xKHQpK1wiIFwiK3EoZSkrXCIgVGRcXG5cIixpfSx1dD0wO3V0PG8ubGVuZ3RoO3V0Kyspe3N3aXRjaChvdD1cIlwiLGF0KXtjYXNlIDE6aXQ9KHY/XCI8XCI6XCIoXCIpK29bdXRdWzBdKyh2P1wiPlwiOlwiKVwiKSxydD1wYXJzZUZsb2F0KG9bdXRdWzFdKSxudD1wYXJzZUZsb2F0KG9bdXRdWzJdKTticmVhaztjYXNlIDA6aXQ9KHY/XCI8XCI6XCIoXCIpK29bdXRdKyh2P1wiPlwiOlwiKVwiKSxydD1lcihlKSxudD1ycihyKX12b2lkIDAhPT1HJiZ2b2lkIDAhPT1HW3V0XSYmKG90PUdbdXRdK1wiIFR3XFxuXCIpLDA9PT11dD90LnB1c2gob3Qrc3QocnQsbnQsZCkraXQpOjA9PT1hdD90LnB1c2gob3QraXQpOjE9PT1hdCYmdC5wdXNoKG90K3N0KHJ0LG50LGQpK2l0KX10PTA9PT1hdD90LmpvaW4oXCIgVGpcXG5UKiBcIik6dC5qb2luKFwiIFRqXFxuXCIpLHQrPVwiIFRqXFxuXCI7dmFyIGx0PVwiQlRcXG4vXCI7cmV0dXJuIGx0Kz1MdCtcIiBcIitmdCtcIiBUZlxcblwiLGx0Kz1xKGZ0KnkpK1wiIFRMXFxuXCIsbHQrPXNyK1wiXFxuXCIsbHQrPWIsbHQrPXQsY3QobHQrPVwiRVRcIiksbVtMdF09ITAscH07dmFyIHFlPXYuX19wcml2YXRlX18uY2xpcD12LmNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGN0KFwiZXZlbm9kZFwiPT09dD9cIlcqXCI6XCJXXCIpLHRoaXN9O3YuY2xpcEV2ZW5PZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gcWUoXCJldmVub2RkXCIpfSx2Ll9fcHJpdmF0ZV9fLmRpc2NhcmRQYXRoPXYuZGlzY2FyZFBhdGg9ZnVuY3Rpb24oKXtyZXR1cm4gY3QoXCJuXCIpLHRoaXN9O3ZhciBNZT12Ll9fcHJpdmF0ZV9fLmlzVmFsaWRTdHlsZT1mdW5jdGlvbih0KXt2YXIgZT0hMTtyZXR1cm4tMSE9PVt2b2lkIDAsbnVsbCxcIlNcIixcIkRcIixcIkZcIixcIkRGXCIsXCJGRFwiLFwiZlwiLFwiZipcIixcIkJcIixcIkIqXCIsXCJuXCJdLmluZGV4T2YodCkmJihlPSEwKSxlfTt2Ll9fcHJpdmF0ZV9fLnNldERlZmF1bHRQYXRoT3BlcmF0aW9uPXYuc2V0RGVmYXVsdFBhdGhPcGVyYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIE1lKHQpJiYoZD10KSx0aGlzfTt2YXIgRWU9di5fX3ByaXZhdGVfXy5nZXRTdHlsZT12LmdldFN0eWxlPWZ1bmN0aW9uKHQpe3ZhciBlPWQ7c3dpdGNoKHQpe2Nhc2VcIkRcIjpjYXNlXCJTXCI6ZT1cIlNcIjticmVhaztjYXNlXCJGXCI6ZT1cImZcIjticmVhaztjYXNlXCJGRFwiOmNhc2VcIkRGXCI6ZT1cIkJcIjticmVhaztjYXNlXCJmXCI6Y2FzZVwiZipcIjpjYXNlXCJCXCI6Y2FzZVwiQipcIjplPXR9cmV0dXJuIGV9LFJlPXYuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4gY3QoXCJoXCIpLHRoaXN9O3Yuc3Ryb2tlPWZ1bmN0aW9uKCl7cmV0dXJuIGN0KFwiU1wiKSx0aGlzfSx2LmZpbGw9ZnVuY3Rpb24odCl7cmV0dXJuIERlKFwiZlwiLHQpLHRoaXN9LHYuZmlsbEV2ZW5PZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIERlKFwiZipcIix0KSx0aGlzfSx2LmZpbGxTdHJva2U9ZnVuY3Rpb24odCl7cmV0dXJuIERlKFwiQlwiLHQpLHRoaXN9LHYuZmlsbFN0cm9rZUV2ZW5PZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIERlKFwiQipcIix0KSx0aGlzfTt2YXIgRGU9ZnVuY3Rpb24odCxlKXtcIm9iamVjdFwiPT10eXBlb2YgZT9VZShlLHQpOmN0KHQpfSxUZT1mdW5jdGlvbih0KXtudWxsPT09dHx8az09PXgmJnZvaWQgMD09PXR8fCh0PUVlKHQpLGN0KHQpKX07ZnVuY3Rpb24gemUodCxlLHIsbixpKXt2YXIgYT1uZXcgSShlfHx0aGlzLmJvdW5kaW5nQm94LHJ8fHRoaXMueFN0ZXAsbnx8dGhpcy55U3RlcCx0aGlzLmdTdGF0ZSxpfHx0aGlzLm1hdHJpeCk7YS5zdHJlYW09dGhpcy5zdHJlYW07dmFyIG89dCtcIiQkXCIrdGhpcy5jbG9uZUluZGV4KysrXCIkJFwiO3JldHVybiBWdChvLGEpLGF9dmFyIFVlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9Q3RbdC5rZXldLG49SXRbcl07aWYobiBpbnN0YW5jZW9mIEYpY3QoXCJxXCIpLGN0KEhlKGUpKSxuLmdTdGF0ZSYmdi5zZXRHU3RhdGUobi5nU3RhdGUpLGN0KHQubWF0cml4LnRvU3RyaW5nKCkrXCIgY21cIiksY3QoXCIvXCIrcitcIiBzaFwiKSxjdChcIlFcIik7ZWxzZSBpZihuIGluc3RhbmNlb2YgSSl7dmFyIGk9bmV3IFV0KDEsMCwwLC0xLDAsU3IoKSk7dC5tYXRyaXgmJihpPWkubXVsdGlwbHkodC5tYXRyaXh8fFd0KSxyPXplLmNhbGwobix0LmtleSx0LmJvdW5kaW5nQm94LHQueFN0ZXAsdC55U3RlcCxpKS5pZCksY3QoXCJxXCIpLGN0KFwiL1BhdHRlcm4gY3NcIiksY3QoXCIvXCIrcitcIiBzY25cIiksbi5nU3RhdGUmJnYuc2V0R1N0YXRlKG4uZ1N0YXRlKSxjdChlKSxjdChcIlFcIil9fSxIZT1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZVwiZlwiOmNhc2VcIkZcIjpjYXNlXCJuXCI6cmV0dXJuXCJXIG5cIjtjYXNlXCJmKlwiOnJldHVyblwiVyogblwiO2Nhc2VcIkJcIjpjYXNlXCJTXCI6cmV0dXJuXCJXIFNcIjtjYXNlXCJCKlwiOnJldHVyblwiVyogU1wifX0sV2U9di5tb3ZlVG89ZnVuY3Rpb24odCxlKXtyZXR1cm4gY3QocShUKHQpKStcIiBcIitxKHooZSkpK1wiIG1cIiksdGhpc30sVmU9di5saW5lVG89ZnVuY3Rpb24odCxlKXtyZXR1cm4gY3QocShUKHQpKStcIiBcIitxKHooZSkpK1wiIGxcIiksdGhpc30sR2U9di5jdXJ2ZVRvPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtyZXR1cm4gY3QoW3EoVCh0KSkscSh6KGUpKSxxKFQocikpLHEoeihuKSkscShUKGkpKSxxKHooYSkpLFwiY1wiXS5qb2luKFwiIFwiKSksdGhpc307di5fX3ByaXZhdGVfXy5saW5lPXYubGluZT1mdW5jdGlvbih0LGUscixuLGkpe2lmKGlzTmFOKHQpfHxpc05hTihlKXx8aXNOYU4ocil8fGlzTmFOKG4pfHwhTWUoaSkpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudHMgcGFzc2VkIHRvIGpzUERGLmxpbmVcIik7cmV0dXJuIGs9PT1MP3RoaXMubGluZXMoW1tyLXQsbi1lXV0sdCxlLFsxLDFdLGl8fFwiU1wiKTp0aGlzLmxpbmVzKFtbci10LG4tZV1dLHQsZSxbMSwxXSkuc3Ryb2tlKCl9LHYuX19wcml2YXRlX18ubGluZXM9di5saW5lcz1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG8scyxjLHUsbCxoLGYsZCxwLGcsbSx2O2lmKFwibnVtYmVyXCI9PXR5cGVvZiB0JiYodj1yLHI9ZSxlPXQsdD12KSxuPW58fFsxLDFdLGE9YXx8ITEsaXNOYU4oZSl8fGlzTmFOKHIpfHwhQXJyYXkuaXNBcnJheSh0KXx8IUFycmF5LmlzQXJyYXkobil8fCFNZShpKXx8XCJib29sZWFuXCIhPXR5cGVvZiBhKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBqc1BERi5saW5lc1wiKTtmb3IoV2UoZSxyKSxvPW5bMF0scz1uWzFdLHU9dC5sZW5ndGgsZz1lLG09cixjPTA7Yzx1O2MrKykyPT09KGw9dFtjXSkubGVuZ3RoPyhnPWxbMF0qbytnLG09bFsxXSpzK20sVmUoZyxtKSk6KGg9bFswXSpvK2csZj1sWzFdKnMrbSxkPWxbMl0qbytnLHA9bFszXSpzK20sZz1sWzRdKm8rZyxtPWxbNV0qcyttLEdlKGgsZixkLHAsZyxtKSk7cmV0dXJuIGEmJlJlKCksVGUoaSksdGhpc30sdi5wYXRoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgcj10W2VdLG49ci5jO3N3aXRjaChyLm9wKXtjYXNlXCJtXCI6V2UoblswXSxuWzFdKTticmVhaztjYXNlXCJsXCI6VmUoblswXSxuWzFdKTticmVhaztjYXNlXCJjXCI6R2UuYXBwbHkodGhpcyxuKTticmVhaztjYXNlXCJoXCI6UmUoKX19cmV0dXJuIHRoaXN9LHYuX19wcml2YXRlX18ucmVjdD12LnJlY3Q9ZnVuY3Rpb24odCxlLHIsbixpKXtpZihpc05hTih0KXx8aXNOYU4oZSl8fGlzTmFOKHIpfHxpc05hTihuKXx8IU1lKGkpKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBqc1BERi5yZWN0XCIpO3JldHVybiBrPT09TCYmKG49LW4pLGN0KFtxKFQodCkpLHEoeihlKSkscShUKHIpKSxxKFQobikpLFwicmVcIl0uam9pbihcIiBcIikpLFRlKGkpLHRoaXN9LHYuX19wcml2YXRlX18udHJpYW5nbGU9di50cmlhbmdsZT1mdW5jdGlvbih0LGUscixuLGksYSxvKXtpZihpc05hTih0KXx8aXNOYU4oZSl8fGlzTmFOKHIpfHxpc05hTihuKXx8aXNOYU4oaSl8fGlzTmFOKGEpfHwhTWUobykpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudHMgcGFzc2VkIHRvIGpzUERGLnRyaWFuZ2xlXCIpO3JldHVybiB0aGlzLmxpbmVzKFtbci10LG4tZV0sW2ktcixhLW5dLFt0LWksZS1hXV0sdCxlLFsxLDFdLG8sITApLHRoaXN9LHYuX19wcml2YXRlX18ucm91bmRlZFJlY3Q9di5yb3VuZGVkUmVjdD1mdW5jdGlvbih0LGUscixuLGksYSxvKXtpZihpc05hTih0KXx8aXNOYU4oZSl8fGlzTmFOKHIpfHxpc05hTihuKXx8aXNOYU4oaSl8fGlzTmFOKGEpfHwhTWUobykpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudHMgcGFzc2VkIHRvIGpzUERGLnJvdW5kZWRSZWN0XCIpO3ZhciBzPTQvMyooTWF0aC5TUVJUMi0xKTtyZXR1cm4gaT1NYXRoLm1pbihpLC41KnIpLGE9TWF0aC5taW4oYSwuNSpuKSx0aGlzLmxpbmVzKFtbci0yKmksMF0sW2kqcywwLGksYS1hKnMsaSxhXSxbMCxuLTIqYV0sWzAsYSpzLC1pKnMsYSwtaSxhXSxbMippLXIsMF0sWy1pKnMsMCwtaSwtYSpzLC1pLC1hXSxbMCwyKmEtbl0sWzAsLWEqcyxpKnMsLWEsaSwtYV1dLHQraSxlLFsxLDFdLG8sITApLHRoaXN9LHYuX19wcml2YXRlX18uZWxsaXBzZT12LmVsbGlwc2U9ZnVuY3Rpb24odCxlLHIsbixpKXtpZihpc05hTih0KXx8aXNOYU4oZSl8fGlzTmFOKHIpfHxpc05hTihuKXx8IU1lKGkpKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBqc1BERi5lbGxpcHNlXCIpO3ZhciBhPTQvMyooTWF0aC5TUVJUMi0xKSpyLG89NC8zKihNYXRoLlNRUlQyLTEpKm47cmV0dXJuIFdlKHQrcixlKSxHZSh0K3IsZS1vLHQrYSxlLW4sdCxlLW4pLEdlKHQtYSxlLW4sdC1yLGUtbyx0LXIsZSksR2UodC1yLGUrbyx0LWEsZStuLHQsZStuKSxHZSh0K2EsZStuLHQrcixlK28sdCtyLGUpLFRlKGkpLHRoaXN9LHYuX19wcml2YXRlX18uY2lyY2xlPXYuY2lyY2xlPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKGlzTmFOKHQpfHxpc05hTihlKXx8aXNOYU4ocil8fCFNZShuKSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50cyBwYXNzZWQgdG8ganNQREYuY2lyY2xlXCIpO3JldHVybiB0aGlzLmVsbGlwc2UodCxlLHIscixuKX0sdi5zZXRGb250PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gciYmKGU9QihlLHIpKSxMdD15ZSh0LGUse2Rpc2FibGVXYXJuaW5nOiExfSksdGhpc307dmFyIFllPXYuX19wcml2YXRlX18uZ2V0Rm9udD12LmdldEZvbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gUHRbeWUuYXBwbHkodixhcmd1bWVudHMpXX07di5fX3ByaXZhdGVfXy5nZXRGb250TGlzdD12LmdldEZvbnRMaXN0PWZ1bmN0aW9uKCl7dmFyIHQsZSxyPXt9O2Zvcih0IGluIGt0KWlmKGt0Lmhhc093blByb3BlcnR5KHQpKWZvcihlIGluIHJbdF09W10sa3RbdF0pa3RbdF0uaGFzT3duUHJvcGVydHkoZSkmJnJbdF0ucHVzaChlKTtyZXR1cm4gcn0sdi5hZGRGb250PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9W1wiU3RhbmRhcmRFbmNvZGluZ1wiLFwiTWFjUm9tYW5FbmNvZGluZ1wiLFwiSWRlbnRpdHktSFwiLFwiV2luQW5zaUVuY29kaW5nXCJdO3JldHVybiBhcmd1bWVudHNbM10mJi0xIT09YS5pbmRleE9mKGFyZ3VtZW50c1szXSk/aT1hcmd1bWVudHNbM106YXJndW1lbnRzWzNdJiYtMT09YS5pbmRleE9mKGFyZ3VtZW50c1szXSkmJihyPUIocixuKSksZmUuY2FsbCh0aGlzLHQsZSxyLGk9aXx8XCJJZGVudGl0eS1IXCIpfTt2YXIgSmUsWGU9dC5saW5lV2lkdGh8fC4yMDAwMjUsS2U9di5fX3ByaXZhdGVfXy5nZXRMaW5lV2lkdGg9di5nZXRMaW5lV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gWGV9LCRlPXYuX19wcml2YXRlX18uc2V0TGluZVdpZHRoPXYuc2V0TGluZVdpZHRoPWZ1bmN0aW9uKHQpe3JldHVybiBYZT10LGN0KHEoVCh0KSkrXCIgd1wiKSx0aGlzfTt2Ll9fcHJpdmF0ZV9fLnNldExpbmVEYXNoPUMuQVBJLnNldExpbmVEYXNoPUMuQVBJLnNldExpbmVEYXNoUGF0dGVybj1mdW5jdGlvbih0LGUpe2lmKHQ9dHx8W10sZT1lfHwwLGlzTmFOKGUpfHwhQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50cyBwYXNzZWQgdG8ganNQREYuc2V0TGluZURhc2hcIik7cmV0dXJuIHQ9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHEoVCh0KSl9KS5qb2luKFwiIFwiKSxlPXEoVChlKSksY3QoXCJbXCIrdCtcIl0gXCIrZStcIiBkXCIpLHRoaXN9O3ZhciBaZT12Ll9fcHJpdmF0ZV9fLmdldExpbmVIZWlnaHQ9di5nZXRMaW5lSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIGZ0KkplfTt2Ll9fcHJpdmF0ZV9fLmdldExpbmVIZWlnaHQ9di5nZXRMaW5lSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIGZ0KkplfTt2YXIgUWU9di5fX3ByaXZhdGVfXy5zZXRMaW5lSGVpZ2h0RmFjdG9yPXYuc2V0TGluZUhlaWdodEZhY3Rvcj1mdW5jdGlvbih0KXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YodD10fHwxLjE1KSYmKEplPXQpLHRoaXN9LHRyPXYuX19wcml2YXRlX18uZ2V0TGluZUhlaWdodEZhY3Rvcj12LmdldExpbmVIZWlnaHRGYWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gSmV9O1FlKHQubGluZUhlaWdodCk7dmFyIGVyPXYuX19wcml2YXRlX18uZ2V0SG9yaXpvbnRhbENvb3JkaW5hdGU9ZnVuY3Rpb24odCl7cmV0dXJuIFQodCl9LHJyPXYuX19wcml2YXRlX18uZ2V0VmVydGljYWxDb29yZGluYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBrPT09eD90Ok10W0tdLm1lZGlhQm94LnRvcFJpZ2h0WS1NdFtLXS5tZWRpYUJveC5ib3R0b21MZWZ0WS1UKHQpfSxucj12Ll9fcHJpdmF0ZV9fLmdldEhvcml6b250YWxDb29yZGluYXRlU3RyaW5nPXYuZ2V0SG9yaXpvbnRhbENvb3JkaW5hdGVTdHJpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIHEoZXIodCkpfSxpcj12Ll9fcHJpdmF0ZV9fLmdldFZlcnRpY2FsQ29vcmRpbmF0ZVN0cmluZz12LmdldFZlcnRpY2FsQ29vcmRpbmF0ZVN0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4gcShycih0KSl9LGFyPXQuc3Ryb2tlQ29sb3J8fFwiMCBHXCI7di5fX3ByaXZhdGVfXy5nZXRTdHJva2VDb2xvcj12LmdldERyYXdDb2xvcj1mdW5jdGlvbigpe3JldHVybiBRdChhcil9LHYuX19wcml2YXRlX18uc2V0U3Ryb2tlQ29sb3I9di5zZXREcmF3Q29sb3I9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIGFyPXRlKHtjaDE6dCxjaDI6ZSxjaDM6cixjaDQ6bixwZGZDb2xvclR5cGU6XCJkcmF3XCIscHJlY2lzaW9uOjJ9KSxjdChhciksdGhpc307dmFyIG9yPXQuZmlsbENvbG9yfHxcIjAgZ1wiO3YuX19wcml2YXRlX18uZ2V0RmlsbENvbG9yPXYuZ2V0RmlsbENvbG9yPWZ1bmN0aW9uKCl7cmV0dXJuIFF0KG9yKX0sdi5fX3ByaXZhdGVfXy5zZXRGaWxsQ29sb3I9di5zZXRGaWxsQ29sb3I9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIG9yPXRlKHtjaDE6dCxjaDI6ZSxjaDM6cixjaDQ6bixwZGZDb2xvclR5cGU6XCJmaWxsXCIscHJlY2lzaW9uOjJ9KSxjdChvciksdGhpc307dmFyIHNyPXQudGV4dENvbG9yfHxcIjAgZ1wiLGNyPXYuX19wcml2YXRlX18uZ2V0VGV4dENvbG9yPXYuZ2V0VGV4dENvbG9yPWZ1bmN0aW9uKCl7cmV0dXJuIFF0KHNyKX07di5fX3ByaXZhdGVfXy5zZXRUZXh0Q29sb3I9di5zZXRUZXh0Q29sb3I9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHNyPXRlKHtjaDE6dCxjaDI6ZSxjaDM6cixjaDQ6bixwZGZDb2xvclR5cGU6XCJ0ZXh0XCIscHJlY2lzaW9uOjN9KSx0aGlzfTt2YXIgdXI9dC5jaGFyU3BhY2UsbHI9di5fX3ByaXZhdGVfXy5nZXRDaGFyU3BhY2U9di5nZXRDaGFyU3BhY2U9ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2VGbG9hdCh1cnx8MCl9O3YuX19wcml2YXRlX18uc2V0Q2hhclNwYWNlPXYuc2V0Q2hhclNwYWNlPWZ1bmN0aW9uKHQpe2lmKGlzTmFOKHQpKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnQgcGFzc2VkIHRvIGpzUERGLnNldENoYXJTcGFjZVwiKTtyZXR1cm4gdXI9dCx0aGlzfTt2YXIgaHI9MDt2LkNhcEpvaW5TdHlsZXM9ezA6MCxidXR0OjAsYnV0OjAsbWl0ZXI6MCwxOjEscm91bmQ6MSxyb3VuZGVkOjEsY2lyY2xlOjEsMjoyLHByb2plY3Rpbmc6Mixwcm9qZWN0OjIsc3F1YXJlOjIsYmV2ZWw6Mn0sdi5fX3ByaXZhdGVfXy5zZXRMaW5lQ2FwPXYuc2V0TGluZUNhcD1mdW5jdGlvbih0KXt2YXIgZT12LkNhcEpvaW5TdHlsZXNbdF07aWYodm9pZCAwPT09ZSl0aHJvdyBuZXcgRXJyb3IoXCJMaW5lIGNhcCBzdHlsZSBvZiAnXCIrdCtcIicgaXMgbm90IHJlY29nbml6ZWQuIFNlZSBvciBleHRlbmQgLkNhcEpvaW5TdHlsZXMgcHJvcGVydHkgZm9yIHZhbGlkIHN0eWxlc1wiKTtyZXR1cm4gaHI9ZSxjdChlK1wiIEpcIiksdGhpc307dmFyIGZyPTA7di5fX3ByaXZhdGVfXy5zZXRMaW5lSm9pbj12LnNldExpbmVKb2luPWZ1bmN0aW9uKHQpe3ZhciBlPXYuQ2FwSm9pblN0eWxlc1t0XTtpZih2b2lkIDA9PT1lKXRocm93IG5ldyBFcnJvcihcIkxpbmUgam9pbiBzdHlsZSBvZiAnXCIrdCtcIicgaXMgbm90IHJlY29nbml6ZWQuIFNlZSBvciBleHRlbmQgLkNhcEpvaW5TdHlsZXMgcHJvcGVydHkgZm9yIHZhbGlkIHN0eWxlc1wiKTtyZXR1cm4gZnI9ZSxjdChlK1wiIGpcIiksdGhpc30sdi5fX3ByaXZhdGVfXy5zZXRMaW5lTWl0ZXJMaW1pdD12Ll9fcHJpdmF0ZV9fLnNldE1pdGVyTGltaXQ9di5zZXRMaW5lTWl0ZXJMaW1pdD12LnNldE1pdGVyTGltaXQ9ZnVuY3Rpb24odCl7aWYodD10fHwwLGlzTmFOKHQpKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnQgcGFzc2VkIHRvIGpzUERGLnNldExpbmVNaXRlckxpbWl0XCIpO3JldHVybiBjdChxKFQodCkpK1wiIE1cIiksdGhpc30sdi5HU3RhdGU9UCx2LnNldEdTdGF0ZT1mdW5jdGlvbih0KXsodD1cInN0cmluZ1wiPT10eXBlb2YgdD9qdFtPdFt0XV06ZHIobnVsbCx0KSkuZXF1YWxzKEJ0KXx8KGN0KFwiL1wiK3QuaWQrXCIgZ3NcIiksQnQ9dCl9O3ZhciBkcj1mdW5jdGlvbih0LGUpe2lmKCF0fHwhT3RbdF0pe3ZhciByPSExO2Zvcih2YXIgbiBpbiBqdClpZihqdC5oYXNPd25Qcm9wZXJ0eShuKSYmanRbbl0uZXF1YWxzKGUpKXtyPSEwO2JyZWFrfWlmKHIpZT1qdFtuXTtlbHNle3ZhciBpPVwiR1NcIisoT2JqZWN0LmtleXMoanQpLmxlbmd0aCsxKS50b1N0cmluZygxMCk7anRbaV09ZSxlLmlkPWl9cmV0dXJuIHQmJihPdFt0XT1lLmlkKSxFdC5wdWJsaXNoKFwiYWRkR1N0YXRlXCIsZSksZX19O3YuYWRkR1N0YXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGRyKHQsZSksdGhpc30sdi5zYXZlR3JhcGhpY3NTdGF0ZT1mdW5jdGlvbigpe3JldHVybiBjdChcInFcIiksRnQucHVzaCh7a2V5Okx0LHNpemU6ZnQsY29sb3I6c3J9KSx0aGlzfSx2LnJlc3RvcmVHcmFwaGljc1N0YXRlPWZ1bmN0aW9uKCl7Y3QoXCJRXCIpO3ZhciB0PUZ0LnBvcCgpO3JldHVybiBMdD10LmtleSxmdD10LnNpemUsc3I9dC5jb2xvcixCdD1udWxsLHRoaXN9LHYuc2V0Q3VycmVudFRyYW5zZm9ybWF0aW9uTWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjdCh0LnRvU3RyaW5nKCkrXCIgY21cIiksdGhpc30sdi5jb21tZW50PWZ1bmN0aW9uKHQpe3JldHVybiBjdChcIiNcIit0KSx0aGlzfTt2YXIgcHI9ZnVuY3Rpb24odCxlKXt2YXIgcj10fHwwO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwieFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByfSxzZXQ6ZnVuY3Rpb24odCl7aXNOYU4odCl8fChyPXBhcnNlRmxvYXQodCkpfX0pO3ZhciBuPWV8fDA7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJ5XCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59LHNldDpmdW5jdGlvbih0KXtpc05hTih0KXx8KG49cGFyc2VGbG9hdCh0KSl9fSk7dmFyIGk9XCJwdFwiO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInR5cGVcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sc2V0OmZ1bmN0aW9uKHQpe2k9dC50b1N0cmluZygpfX0pLHRoaXN9LGdyPWZ1bmN0aW9uKHQsZSxyLG4pe3ByLmNhbGwodGhpcyx0LGUpLHRoaXMudHlwZT1cInJlY3RcIjt2YXIgaT1yfHwwO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwid1wiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpfSxzZXQ6ZnVuY3Rpb24odCl7aXNOYU4odCl8fChpPXBhcnNlRmxvYXQodCkpfX0pO3ZhciBhPW58fDA7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiaFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfSxzZXQ6ZnVuY3Rpb24odCl7aXNOYU4odCl8fChhPXBhcnNlRmxvYXQodCkpfX0pLHRoaXN9LG1yPWZ1bmN0aW9uKCl7dGhpcy5wYWdlPXF0LHRoaXMuY3VycmVudFBhZ2U9Syx0aGlzLnBhZ2VzPWl0LnNsaWNlKDApLHRoaXMucGFnZXNDb250ZXh0PU10LnNsaWNlKDApLHRoaXMueD1BdCx0aGlzLnk9U3QsdGhpcy5tYXRyaXg9X3QsdGhpcy53aWR0aD15cihLKSx0aGlzLmhlaWdodD1OcihLKSx0aGlzLm91dHB1dERlc3RpbmF0aW9uPW90LHRoaXMuaWQ9XCJcIix0aGlzLm9iamVjdE51bWJlcj0tMX07bXIucHJvdG90eXBlLnJlc3RvcmU9ZnVuY3Rpb24oKXtxdD10aGlzLnBhZ2UsSz10aGlzLmN1cnJlbnRQYWdlLE10PXRoaXMucGFnZXNDb250ZXh0LGl0PXRoaXMucGFnZXMsQXQ9dGhpcy54LFN0PXRoaXMueSxfdD10aGlzLm1hdHJpeCx3cihLLHRoaXMud2lkdGgpLExyKEssdGhpcy5oZWlnaHQpLG90PXRoaXMub3V0cHV0RGVzdGluYXRpb259O3ZhciB2cj1mdW5jdGlvbih0LGUscixuLGkpe3p0LnB1c2gobmV3IG1yKSxxdD1LPTAsaXQ9W10sQXQ9dCxTdD1lLF90PWkscGUoW3Isbl0pfTtmb3IodmFyIGJyIGluIHYuYmVnaW5Gb3JtT2JqZWN0PWZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIHZyKHQsZSxyLG4saSksdGhpc30sdi5lbmRGb3JtT2JqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihUdFt0XSl6dC5wb3AoKS5yZXN0b3JlKCk7ZWxzZXt2YXIgZT1uZXcgbXIscj1cIlhvXCIrKE9iamVjdC5rZXlzKER0KS5sZW5ndGgrMSkudG9TdHJpbmcoMTApO2UuaWQ9cixUdFt0XT1yLER0W3JdPWUsRXQucHVibGlzaChcImFkZEZvcm1PYmplY3RcIixlKSx6dC5wb3AoKS5yZXN0b3JlKCl9fSh0KSx0aGlzfSx2LmRvRm9ybU9iamVjdD1mdW5jdGlvbih0LGUpe3ZhciByPUR0W1R0W3RdXTtyZXR1cm4gY3QoXCJxXCIpLGN0KGUudG9TdHJpbmcoKStcIiBjbVwiKSxjdChcIi9cIityLmlkK1wiIERvXCIpLGN0KFwiUVwiKSx0aGlzfSx2LmdldEZvcm1PYmplY3Q9ZnVuY3Rpb24odCl7dmFyIGU9RHRbVHRbdF1dO3JldHVybnt4OmUueCx5OmUueSx3aWR0aDplLndpZHRoLGhlaWdodDplLmhlaWdodCxtYXRyaXg6ZS5tYXRyaXh9fSx2LnNhdmU9ZnVuY3Rpb24odCxlKXt0PXR8fFwiZ2VuZXJhdGVkLnBkZlwiLChlPWV8fHt9KS5yZXR1cm5Qcm9taXNlPWUucmV0dXJuUHJvbWlzZXx8ITE7dmFyIHI9cmVxdWlyZShcImZzXCIpLG49QnVmZmVyLmZyb20obHQoU2UoKSkpO2lmKCExIT09ZS5yZXR1cm5Qcm9taXNlKXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLGkpe3Iud3JpdGVGaWxlKHQsbixmdW5jdGlvbih0KXt0P2kodCk6ZSgpfSl9KTtyLndyaXRlRmlsZVN5bmModCxuKX0sQy5BUEkpQy5BUEkuaGFzT3duUHJvcGVydHkoYnIpJiYoXCJldmVudHNcIj09PWJyJiZDLkFQSS5ldmVudHMubGVuZ3RoP2Z1bmN0aW9uKHQsZSl7dmFyIHIsbixpO2ZvcihpPWUubGVuZ3RoLTE7LTEhPT1pO2ktLSlyPWVbaV1bMF0sbj1lW2ldWzFdLHQuc3Vic2NyaWJlLmFwcGx5KHQsW3JdLmNvbmNhdChcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP1tuXTpuKSl9KEV0LEMuQVBJLmV2ZW50cyk6dlticl09Qy5BUElbYnJdKTtmdW5jdGlvbiB5cih0KXtyZXR1cm4gTXRbdF0ubWVkaWFCb3gudG9wUmlnaHRYLU10W3RdLm1lZGlhQm94LmJvdHRvbUxlZnRYfWZ1bmN0aW9uIHdyKHQsZSl7TXRbdF0ubWVkaWFCb3gudG9wUmlnaHRYPWUrTXRbdF0ubWVkaWFCb3guYm90dG9tTGVmdFh9ZnVuY3Rpb24gTnIodCl7cmV0dXJuIE10W3RdLm1lZGlhQm94LnRvcFJpZ2h0WS1NdFt0XS5tZWRpYUJveC5ib3R0b21MZWZ0WX1mdW5jdGlvbiBMcih0LGUpe010W3RdLm1lZGlhQm94LnRvcFJpZ2h0WT1lK010W3RdLm1lZGlhQm94LmJvdHRvbUxlZnRZfXZhciB4cj12LmdldFBhZ2VXaWR0aD1mdW5jdGlvbih0KXtyZXR1cm4geXIodD10fHxLKS94dH0sQXI9di5zZXRQYWdlV2lkdGg9ZnVuY3Rpb24odCxlKXt3cih0LGUqeHQpfSxTcj12LmdldFBhZ2VIZWlnaHQ9ZnVuY3Rpb24odCl7cmV0dXJuIE5yKHQ9dHx8SykveHR9LF9yPXYuc2V0UGFnZUhlaWdodD1mdW5jdGlvbih0LGUpe0xyKHQsZSp4dCl9O3JldHVybiB2LmludGVybmFsPXtwZGZFc2NhcGU6ZGUsZ2V0U3R5bGU6RWUsZ2V0Rm9udDpZZSxnZXRGb250U2l6ZTpwdCxnZXRDaGFyU3BhY2U6bHIsZ2V0VGV4dENvbG9yOmNyLGdldExpbmVIZWlnaHQ6WmUsZ2V0TGluZUhlaWdodEZhY3Rvcjp0cixnZXRMaW5lV2lkdGg6S2Usd3JpdGU6dXQsZ2V0SG9yaXpvbnRhbENvb3JkaW5hdGU6ZXIsZ2V0VmVydGljYWxDb29yZGluYXRlOnJyLGdldENvb3JkaW5hdGVTdHJpbmc6bnIsZ2V0VmVydGljYWxDb29yZGluYXRlU3RyaW5nOmlyLGNvbGxlY3Rpb25zOnt9LG5ld09iamVjdDpZdCxuZXdBZGRpdGlvbmFsT2JqZWN0Okt0LG5ld09iamVjdERlZmVycmVkOkp0LG5ld09iamVjdERlZmVycmVkQmVnaW46WHQsZ2V0RmlsdGVyczplZSxwdXRTdHJlYW06cmUsZXZlbnRzOkV0LHNjYWxlRmFjdG9yOnh0LHBhZ2VTaXplOntnZXRXaWR0aDpmdW5jdGlvbigpe3JldHVybiB4cihLKX0sc2V0V2lkdGg6ZnVuY3Rpb24odCl7QXIoSyx0KX0sZ2V0SGVpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIFNyKEspfSxzZXRIZWlnaHQ6ZnVuY3Rpb24odCl7X3IoSyx0KX19LGVuY3J5cHRpb25PcHRpb25zOnAsZW5jcnlwdGlvbjpDZSxnZXRFbmNyeXB0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPT1wP0NlLmVuY3J5cHRvcih0LDApOmZ1bmN0aW9uKHQpe3JldHVybiB0fX0sb3V0cHV0OkZlLGdldE51bWJlck9mUGFnZXM6YmUsZ2V0IHBhZ2VzKCl7cmV0dXJuIGl0fSxvdXQ6Y3QsZjI6UixmMzpELGdldFBhZ2VJbmZvOmplLGdldFBhZ2VJbmZvQnlPYmpJZDpPZSxnZXRDdXJyZW50UGFnZUluZm86QmUsZ2V0UERGVmVyc2lvbjp5LFBvaW50OnByLFJlY3RhbmdsZTpncixNYXRyaXg6VXQsaGFzSG90Zml4OkllfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodi5pbnRlcm5hbC5wYWdlU2l6ZSxcIndpZHRoXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB4cihLKX0sc2V0OmZ1bmN0aW9uKHQpe0FyKEssdCl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHYuaW50ZXJuYWwucGFnZVNpemUsXCJoZWlnaHRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFNyKEspfSxzZXQ6ZnVuY3Rpb24odCl7X3IoSyx0KX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPWh0Lmxlbmd0aDtlPHI7ZSsrKXt2YXIgbj1mZS5jYWxsKHRoaXMsdFtlXVswXSx0W2VdWzFdLHRbZV1bMl0saHRbZV1bM10sITApOyExPT09ZyYmKG1bbl09ITApO3ZhciBpPXRbZV1bMF0uc3BsaXQoXCItXCIpO2hlKHtpZDpuLGZvbnROYW1lOmlbMF0sZm9udFN0eWxlOmlbMV18fFwiXCJ9KX1FdC5wdWJsaXNoKFwiYWRkRm9udHNcIix7Zm9udHM6UHQsZGljdGlvbmFyeTprdH0pfS5jYWxsKHYsaHQpLEx0PVwiRjFcIixnZShjLGkpLEV0LnB1Ymxpc2goXCJpbml0aWFsaXplZFwiKSx2fUEucHJvdG90eXBlLmxzYkZpcnN0V29yZD1mdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmdCx0Pj44JjI1NSx0Pj4xNiYyNTUsdD4+MjQmMjU1KX0sQS5wcm90b3R5cGUudG9IZXhTdHJpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc3BsaXQoXCJcIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybihcIjBcIisoMjU1JnQuY2hhckNvZGVBdCgwKSkudG9TdHJpbmcoMTYpKS5zbGljZSgtMil9KS5qb2luKFwiXCIpfSxBLnByb3RvdHlwZS5oZXhUb0J5dGVzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPTA7cjx0Lmxlbmd0aDtyKz0yKWUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KHQuc3Vic3RyKHIsMiksMTYpKSk7cmV0dXJuIGUuam9pbihcIlwiKX0sQS5wcm90b3R5cGUucHJvY2Vzc093bmVyUGFzc3dvcmQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gTCh5KGUpLnN1YnN0cigwLDUpLHQpfSxBLnByb3RvdHlwZS5lbmNyeXB0b3I9ZnVuY3Rpb24odCxlKXtsZXQgcj15KHRoaXMuZW5jcnlwdGlvbktleStTdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSZ0LHQ+PjgmMjU1LHQ+PjE2JjI1NSwyNTUmZSxlPj44JjI1NSkpLnN1YnN0cigwLDEwKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEwocix0KX19LFAucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXt2YXIgZSxyPVwiaWQsb2JqZWN0TnVtYmVyLGVxdWFsc1wiO2lmKCF0fHx0eXBlb2YgdCE9dHlwZW9mIHRoaXMpcmV0dXJuITE7dmFyIG49MDtmb3IoZSBpbiB0aGlzKWlmKCEoci5pbmRleE9mKGUpPj0wKSl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShlKSYmIXQuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuITE7aWYodGhpc1tlXSE9PXRbZV0pcmV0dXJuITE7bisrfWZvcihlIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShlKSYmci5pbmRleE9mKGUpPDAmJm4tLTtyZXR1cm4gMD09PW59LEMuQVBJPXtldmVudHM6W119LEMudmVyc2lvbj1cIjQuMi4xXCI7dmFyIGo9Qy5BUEksTz0xLEI9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSgvXFxcXC9nLFwiXFxcXFxcXFxcIikucmVwbGFjZSgvXFwoL2csXCJcXFxcKFwiKS5yZXBsYWNlKC9cXCkvZyxcIlxcXFwpXCIpfSxxPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoL1xcXFxcXFxcL2csXCJcXFxcXCIpLnJlcGxhY2UoL1xcXFxcXCgvZyxcIihcIikucmVwbGFjZSgvXFxcXFxcKS9nLFwiKVwiKX0sTT1mdW5jdGlvbih0KXtyZXR1cm4gdC50b1N0cmluZygpLnJlcGxhY2UoLyMvZyxcIiMyM1wiKS5yZXBsYWNlKC9bXFxzXFxuXFxyKCk8PltcXF17fVxcLyVdL2csdD0+e2NvbnN0IGU9dC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVyblwiI1wiKygxPT09ZS5sZW5ndGg/XCIwXCIrZTplKX0pfSxFPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRvRml4ZWQoMil9LFI9ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9GaXhlZCg1KX07ai5fX2Fjcm9mb3JtX189e307dmFyIEQ9ZnVuY3Rpb24odCxlKXt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSx0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10fSxUPWZ1bmN0aW9uKHQpe3JldHVybiB0Kk99LHo9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IG50LHI9dnQuaW50ZXJuYWwuZ2V0SGVpZ2h0KHQpfHwwLG49dnQuaW50ZXJuYWwuZ2V0V2lkdGgodCl8fDA7cmV0dXJuIGUuQkJveD1bMCwwLE51bWJlcihFKG4pKSxOdW1iZXIoRShyKSldLGV9LFU9ai5fX2Fjcm9mb3JtX18uc2V0Qml0PWZ1bmN0aW9uKHQsZSl7aWYodD10fHwwLGU9ZXx8MCxpc05hTih0KXx8aXNOYU4oZSkpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudHMgcGFzc2VkIHRvIGpzUERGLkFQSS5fX2Fjcm9mb3JtX18uc2V0Qml0XCIpO3JldHVybiB0fDE8PGV9LEg9ai5fX2Fjcm9mb3JtX18uY2xlYXJCaXQ9ZnVuY3Rpb24odCxlKXtpZih0PXR8fDAsZT1lfHwwLGlzTmFOKHQpfHxpc05hTihlKSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50cyBwYXNzZWQgdG8ganNQREYuQVBJLl9fYWNyb2Zvcm1fXy5jbGVhckJpdFwiKTtyZXR1cm4gdCZ+KDE8PGUpfSxXPWouX19hY3JvZm9ybV9fLmdldEJpdD1mdW5jdGlvbih0LGUpe2lmKGlzTmFOKHQpfHxpc05hTihlKSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50cyBwYXNzZWQgdG8ganNQREYuQVBJLl9fYWNyb2Zvcm1fXy5nZXRCaXRcIik7cmV0dXJuIHQmMTw8ZT8xOjB9LFY9ai5fX2Fjcm9mb3JtX18uZ2V0Qml0Rm9yUGRmPWZ1bmN0aW9uKHQsZSl7aWYoaXNOYU4odCl8fGlzTmFOKGUpKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBqc1BERi5BUEkuX19hY3JvZm9ybV9fLmdldEJpdEZvclBkZlwiKTtyZXR1cm4gVyh0LGUtMSl9LEc9ai5fX2Fjcm9mb3JtX18uc2V0Qml0Rm9yUGRmPWZ1bmN0aW9uKHQsZSl7aWYoaXNOYU4odCl8fGlzTmFOKGUpKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBqc1BERi5BUEkuX19hY3JvZm9ybV9fLnNldEJpdEZvclBkZlwiKTtyZXR1cm4gVSh0LGUtMSl9LFk9ai5fX2Fjcm9mb3JtX18uY2xlYXJCaXRGb3JQZGY9ZnVuY3Rpb24odCxlKXtpZihpc05hTih0KXx8aXNOYU4oZSkpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudHMgcGFzc2VkIHRvIGpzUERGLkFQSS5fX2Fjcm9mb3JtX18uY2xlYXJCaXRGb3JQZGZcIik7cmV0dXJuIEgodCxlLTEpfSxKPWouX19hY3JvZm9ybV9fLmNhbGN1bGF0ZUNvb3JkaW5hdGVzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5pbnRlcm5hbC5nZXRIb3Jpem9udGFsQ29vcmRpbmF0ZSxuPWUuaW50ZXJuYWwuZ2V0VmVydGljYWxDb29yZGluYXRlLGk9dFswXSxhPXRbMV0sbz10WzJdLHM9dFszXSxjPXt9O3JldHVybiBjLmxvd2VyTGVmdF9YPXIoaSl8fDAsYy5sb3dlckxlZnRfWT1uKGErcyl8fDAsYy51cHBlclJpZ2h0X1g9cihpK28pfHwwLGMudXBwZXJSaWdodF9ZPW4oYSl8fDAsW051bWJlcihFKGMubG93ZXJMZWZ0X1gpKSxOdW1iZXIoRShjLmxvd2VyTGVmdF9ZKSksTnVtYmVyKEUoYy51cHBlclJpZ2h0X1gpKSxOdW1iZXIoRShjLnVwcGVyUmlnaHRfWSkpXX0sWD1mdW5jdGlvbih0KXtpZih0LmFwcGVhcmFuY2VTdHJlYW1Db250ZW50KXJldHVybiB0LmFwcGVhcmFuY2VTdHJlYW1Db250ZW50O2lmKHQuVnx8dC5EVil7dmFyIGU9W10scj10Ll9WfHx0LkRWLG49Syh0LHIpLGk9dC5zY29wZS5pbnRlcm5hbC5nZXRGb250KHQuZm9udE5hbWUsdC5mb250U3R5bGUpLmlkO2UucHVzaChcIi9UeCBCTUNcIiksZS5wdXNoKFwicVwiKSxlLnB1c2goXCJCVFwiKSxlLnB1c2godC5zY29wZS5fX3ByaXZhdGVfXy5lbmNvZGVDb2xvclN0cmluZyh0LmNvbG9yKSksZS5wdXNoKFwiL1wiK2krXCIgXCIrRShuLmZvbnRTaXplKStcIiBUZlwiKSxlLnB1c2goXCIxIDAgMCAxIDAgMCBUbVwiKSxlLnB1c2gobi50ZXh0KSxlLnB1c2goXCJFVFwiKSxlLnB1c2goXCJRXCIpLGUucHVzaChcIkVNQ1wiKTt2YXIgYT16KHQpO3JldHVybiBhLnNjb3BlPXQuc2NvcGUsYS5zdHJlYW09ZS5qb2luKFwiXFxuXCIpLGF9fSxLPWZ1bmN0aW9uKHQsZSl7dmFyIHI9MD09PXQuZm9udFNpemU/dC5tYXhGb250U2l6ZTp0LmZvbnRTaXplLG49e3RleHQ6XCJcIixmb250U2l6ZTpcIlwifSxpPShlPVwiKVwiPT0oZT1cIihcIj09ZS5zdWJzdHIoMCwxKT9lLnN1YnN0cigxKTplKS5zdWJzdHIoZS5sZW5ndGgtMSk/ZS5zdWJzdHIoMCxlLmxlbmd0aC0xKTplKS5zcGxpdChcIiBcIik7aT10Lm11bHRpbGluZT9pLm1hcCh0PT50LnNwbGl0KFwiXFxuXCIpKTppLm1hcCh0PT5bdF0pO3ZhciBhPXIsbz12dC5pbnRlcm5hbC5nZXRIZWlnaHQodCl8fDA7bz1vPDA/LW86bzt2YXIgcz12dC5pbnRlcm5hbC5nZXRXaWR0aCh0KXx8MDtzPXM8MD8tczpzO3ZhciBjPWZ1bmN0aW9uKGUscixuKXtpZihlKzE8aS5sZW5ndGgpe3ZhciBhPXIrXCIgXCIraVtlKzFdWzBdO3JldHVybiAkKGEsdCxuKS53aWR0aDw9cy00fXJldHVybiExfTthKys7dDpmb3IoO2E+MDspe2U9XCJcIixhLS07dmFyIHUsbCxoPSQoXCIzXCIsdCxhKS5oZWlnaHQsZj10Lm11bHRpbGluZT9vLWE6KG8taCkvMixkPWYrPTIscD0wLGc9MCxtPTA7aWYoYTw9MCl7ZT1cIiguLi4pIFRqXFxuXCIsZSs9XCIlIFdpZHRoIG9mIFRleHQ6IFwiKyQoZSx0LGE9MTIpLndpZHRoK1wiLCBGaWVsZFdpZHRoOlwiK3MrXCJcXG5cIjticmVha312YXIgdj1cIlwiLGI9MDtlOmZvcih2YXIgeT0wO3k8aS5sZW5ndGg7eSsrKWlmKGkuaGFzT3duUHJvcGVydHkoeSkpe2xldCByPSExO2lmKDEhPT1pW3ldLmxlbmd0aCYmbSE9PWlbeV0ubGVuZ3RoLTEpe2lmKChoKzIpKihiKzIpKzI+byljb250aW51ZSB0O3YrPWlbeV1bbV0scj0hMCxnPXkseS0tfWVsc2V7dj1cIiBcIj09KHYrPWlbeV1bbV0rXCIgXCIpLnN1YnN0cih2Lmxlbmd0aC0xKT92LnN1YnN0cigwLHYubGVuZ3RoLTEpOnY7dmFyIHc9cGFyc2VJbnQoeSksTj1jKHcsdixhKSxMPXk+PWkubGVuZ3RoLTE7aWYoTiYmIUwpe3YrPVwiIFwiLG09MDtjb250aW51ZX1pZihOfHxMKXtpZihMKWc9dztlbHNlIGlmKHQubXVsdGlsaW5lJiYoaCsyKSooYisyKSsyPm8pY29udGludWUgdH1lbHNle2lmKCF0Lm11bHRpbGluZSljb250aW51ZSB0O2lmKChoKzIpKihiKzIpKzI+byljb250aW51ZSB0O2c9d319Zm9yKHZhciB4PVwiXCIsQT1wO0E8PWc7QSsrKXt2YXIgUz1pW0FdO2lmKHQubXVsdGlsaW5lKXtpZihBPT09Zyl7eCs9U1ttXStcIiBcIixtPShtKzEpJVMubGVuZ3RoO2NvbnRpbnVlfWlmKEE9PT1wKXt4Kz1TW1MubGVuZ3RoLTFdK1wiIFwiO2NvbnRpbnVlfX14Kz1TWzBdK1wiIFwifXN3aXRjaCh4PVwiIFwiPT14LnN1YnN0cih4Lmxlbmd0aC0xKT94LnN1YnN0cigwLHgubGVuZ3RoLTEpOngsbD0kKHgsdCxhKS53aWR0aCx0LnRleHRBbGlnbil7Y2FzZVwicmlnaHRcIjp1PXMtbC0yO2JyZWFrO2Nhc2VcImNlbnRlclwiOnU9KHMtbCkvMjticmVhaztkZWZhdWx0OnU9Mn1lKz1FKHUpK1wiIFwiK0UoZCkrXCIgVGRcXG5cIixlKz1cIihcIitCKHgpK1wiKSBUalxcblwiLGUrPS1FKHUpK1wiIDAgVGRcXG5cIixkPS0oYSsyKSxsPTAscD1yP2c6ZysxLGIrKyx2PVwiXCI7Y29udGludWUgZX1icmVha31yZXR1cm4gbi50ZXh0PWUsbi5mb250U2l6ZT1hLG59LCQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUuc2NvcGUuaW50ZXJuYWwuZ2V0Rm9udChlLmZvbnROYW1lLGUuZm9udFN0eWxlKSxpPWUuc2NvcGUuZ2V0U3RyaW5nVW5pdFdpZHRoKHQse2ZvbnQ6bixmb250U2l6ZTpwYXJzZUZsb2F0KHIpLGNoYXJTcGFjZTowfSkqcGFyc2VGbG9hdChyKTtyZXR1cm57aGVpZ2h0OmUuc2NvcGUuZ2V0U3RyaW5nVW5pdFdpZHRoKFwiM1wiLHtmb250Om4sZm9udFNpemU6cGFyc2VGbG9hdChyKSxjaGFyU3BhY2U6MH0pKnBhcnNlRmxvYXQocikqMS41LHdpZHRoOml9fSxaPXtmaWVsZHM6W10seEZvcm1zOltdLGFjcm9Gb3JtRGljdGlvbmFyeVJvb3Q6bnVsbCxwcmludGVkT3V0OiExLGludGVybmFsOm51bGwsaXNJbml0aWFsaXplZDohMX0sUT1mdW5jdGlvbih0LGUpe3ZhciByPXt0eXBlOlwicmVmZXJlbmNlXCIsb2JqZWN0OnR9O3ZvaWQgMD09PWUuaW50ZXJuYWwuZ2V0UGFnZUluZm8odC5wYWdlKS5wYWdlQ29udGV4dC5hbm5vdGF0aW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGU9PT1yLnR5cGUmJnQub2JqZWN0PT09ci5vYmplY3R9KSYmZS5pbnRlcm5hbC5nZXRQYWdlSW5mbyh0LnBhZ2UpLnBhZ2VDb250ZXh0LmFubm90YXRpb25zLnB1c2gocil9LHR0PWouX19hY3JvZm9ybV9fLmFycmF5VG9QZGZBcnJheT1mdW5jdGlvbih0LGUscil7dmFyIG49ZnVuY3Rpb24odCl7cmV0dXJuIHR9O2lmKEFycmF5LmlzQXJyYXkodCkpe2Zvcih2YXIgaT1cIltcIixhPTA7YTx0Lmxlbmd0aDthKyspc3dpdGNoKDAhPT1hJiYoaSs9XCIgXCIpLHR5cGVvZiB0W2FdKXtjYXNlXCJib29sZWFuXCI6Y2FzZVwibnVtYmVyXCI6Y2FzZVwib2JqZWN0XCI6aSs9dFthXS50b1N0cmluZygpO2JyZWFrO2Nhc2VcInN0cmluZ1wiOlwiL1wiPT09dFthXS5zdWJzdHIoMCwxKT9pKz1cIi9cIitNKHRbYV0uc3Vic3RyKDEpKToodm9pZCAwIT09ZSYmciYmKG49ci5pbnRlcm5hbC5nZXRFbmNyeXB0b3IoZSkpLGkrPVwiKFwiK0Iobih0W2FdLnRvU3RyaW5nKCkpKStcIilcIil9cmV0dXJuIGkrXCJdXCJ9dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgdG8ganNQREYuX19hY3JvZm9ybV9fLmFycmF5VG9QZGZBcnJheVwiKX0sZXQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWZ1bmN0aW9uKHQpe3JldHVybiB0fTtyZXR1cm4gdm9pZCAwIT09ZSYmciYmKG49ci5pbnRlcm5hbC5nZXRFbmNyeXB0b3IoZSkpLCh0PXR8fFwiXCIpLnRvU3RyaW5nKCksXCIoXCIrQihuKHQpKStcIilcIn0scnQ9ZnVuY3Rpb24oKXt0aGlzLl9vYmpJZD12b2lkIDAsdGhpcy5fc2NvcGU9dm9pZCAwLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwib2JqSWRcIix7Z2V0OmZ1bmN0aW9uKCl7aWYodm9pZCAwPT09dGhpcy5fb2JqSWQpe2lmKHZvaWQgMD09PXRoaXMuc2NvcGUpcmV0dXJuO3RoaXMuX29iaklkPXRoaXMuc2NvcGUuaW50ZXJuYWwubmV3T2JqZWN0RGVmZXJyZWQoKX1yZXR1cm4gdGhpcy5fb2JqSWR9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9vYmpJZD10fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwic2NvcGVcIix7dmFsdWU6dGhpcy5fc2NvcGUsd3JpdGFibGU6ITB9KX07cnQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2JqSWQrXCIgMCBSXCJ9LHJ0LnByb3RvdHlwZS5wdXRTdHJlYW09ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldEtleVZhbHVlTGlzdEZvclN0cmVhbSgpO3RoaXMuc2NvcGUuaW50ZXJuYWwucHV0U3RyZWFtKHtkYXRhOnRoaXMuc3RyZWFtLGFkZGl0aW9uYWxLZXlWYWx1ZXM6dCxvYmplY3RJZDp0aGlzLm9iaklkfSksdGhpcy5zY29wZS5pbnRlcm5hbC5vdXQoXCJlbmRvYmpcIil9LHJ0LnByb3RvdHlwZS5nZXRLZXlWYWx1ZUxpc3RGb3JTdHJlYW09ZnVuY3Rpb24oKXt2YXIgdD1bXSxlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm5cImNvbnRlbnRcIiE9dCYmXCJhcHBlYXJhbmNlU3RyZWFtQ29udGVudFwiIT10JiZcInNjb3BlXCIhPXQmJlwib2JqSWRcIiE9dCYmXCJfXCIhPXQuc3Vic3RyaW5nKDAsMSl9KTtmb3IodmFyIHIgaW4gZSlpZighMT09PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcyxlW3JdKS5jb25maWd1cmFibGUpe3ZhciBuPWVbcl0saT10aGlzW25dO2kmJihBcnJheS5pc0FycmF5KGkpP3QucHVzaCh7a2V5Om4sdmFsdWU6dHQoaSx0aGlzLm9iaklkLHRoaXMuc2NvcGUpfSk6aSBpbnN0YW5jZW9mIHJ0PyhpLnNjb3BlPXRoaXMuc2NvcGUsdC5wdXNoKHtrZXk6bix2YWx1ZTppLm9iaklkK1wiIDAgUlwifSkpOlwiZnVuY3Rpb25cIiE9dHlwZW9mIGkmJnQucHVzaCh7a2V5Om4sdmFsdWU6aX0pKX1yZXR1cm4gdH07dmFyIG50PWZ1bmN0aW9uKCl7cnQuY2FsbCh0aGlzKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIlR5cGVcIix7dmFsdWU6XCIvWE9iamVjdFwiLGNvbmZpZ3VyYWJsZTohMSx3cml0YWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiU3VidHlwZVwiLHt2YWx1ZTpcIi9Gb3JtXCIsY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJGb3JtVHlwZVwiLHt2YWx1ZToxLGNvbmZpZ3VyYWJsZTohMSx3cml0YWJsZTohMH0pO3ZhciB0LGU9W107T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJCQm94XCIse2NvbmZpZ3VyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX0sc2V0OmZ1bmN0aW9uKHQpe2U9dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIlJlc291cmNlc1wiLHt2YWx1ZTpcIjIgMCBSXCIsY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJzdHJlYW1cIix7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsc2V0OmZ1bmN0aW9uKGUpe3Q9ZS50cmltKCl9LGdldDpmdW5jdGlvbigpe3JldHVybiB0fHxudWxsfX0pfTtEKG50LHJ0KTt2YXIgaXQ9ZnVuY3Rpb24oKXtydC5jYWxsKHRoaXMpO3ZhciB0LGU9W107T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJLaWRzXCIse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlLmxlbmd0aD4wP2U6dm9pZCAwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiRmllbGRzXCIse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiBlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiREFcIix7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7aWYodCl7dmFyIGU9ZnVuY3Rpb24odCl7cmV0dXJuIHR9O3JldHVybiB0aGlzLnNjb3BlJiYoZT10aGlzLnNjb3BlLmludGVybmFsLmdldEVuY3J5cHRvcih0aGlzLm9iaklkKSksXCIoXCIrQihlKHQpKStcIilcIn19LHNldDpmdW5jdGlvbihlKXt0PWV9fSl9O0QoaXQscnQpO3ZhciBhdD1mdW5jdGlvbigpe3J0LmNhbGwodGhpcyk7dmFyIHQ9NDtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIkZcIix7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHR9LHNldDpmdW5jdGlvbihlKXtpZihpc05hTihlKSl0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgXCInK2UrJ1wiIGZvciBhdHRyaWJ1dGUgRiBzdXBwbGllZC4nKTt0PWV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJzaG93V2hlblByaW50ZWRcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4oVih0LDMpKX0sc2V0OmZ1bmN0aW9uKGUpeyEwPT09Qm9vbGVhbihlKT90aGlzLkY9Ryh0LDMpOnRoaXMuRj1ZKHQsMyl9fSk7dmFyIGU9MDtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIkZmXCIse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiBlfSxzZXQ6ZnVuY3Rpb24odCl7aWYoaXNOYU4odCkpdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhbHVlIFwiJyt0KydcIiBmb3IgYXR0cmlidXRlIEZmIHN1cHBsaWVkLicpO2U9dH19KTt2YXIgcj1bXTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIlJlY3RcIix7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7aWYoMCE9PXIubGVuZ3RoKXJldHVybiByfSxzZXQ6ZnVuY3Rpb24odCl7cj12b2lkIDAhPT10P3Q6W119fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJ4XCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiFyfHxpc05hTihyWzBdKT8wOnJbMF19LHNldDpmdW5jdGlvbih0KXtyWzBdPXR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJ5XCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiFyfHxpc05hTihyWzFdKT8wOnJbMV19LHNldDpmdW5jdGlvbih0KXtyWzFdPXR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJ3aWR0aFwiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hcnx8aXNOYU4oclsyXSk/MDpyWzJdfSxzZXQ6ZnVuY3Rpb24odCl7clsyXT10fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiaGVpZ2h0XCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiFyfHxpc05hTihyWzNdKT8wOnJbM119LHNldDpmdW5jdGlvbih0KXtyWzNdPXR9fSk7dmFyIG49XCJcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIkZUXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiBufSxzZXQ6ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2VcIi9CdG5cIjpjYXNlXCIvVHhcIjpjYXNlXCIvQ2hcIjpjYXNlXCIvU2lnXCI6bj10O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhbHVlIFwiJyt0KydcIiBmb3IgYXR0cmlidXRlIEZUIHN1cHBsaWVkLicpfX19KTt2YXIgaT1udWxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiVFwiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtpZighaXx8aS5sZW5ndGg8MSl7aWYodGhpcyBpbnN0YW5jZW9mIGR0KXJldHVybjtpPVwiRmllbGRPYmplY3RcIithdC5GaWVsZE51bSsrfXZhciB0PWZ1bmN0aW9uKHQpe3JldHVybiB0fTtyZXR1cm4gdGhpcy5zY29wZSYmKHQ9dGhpcy5zY29wZS5pbnRlcm5hbC5nZXRFbmNyeXB0b3IodGhpcy5vYmpJZCkpLFwiKFwiK0IodChpKSkrXCIpXCJ9LHNldDpmdW5jdGlvbih0KXtpPXQudG9TdHJpbmcoKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImZpZWxkTmFtZVwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sc2V0OmZ1bmN0aW9uKHQpe2k9dH19KTt2YXIgYT1cImhlbHZldGljYVwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiZm9udE5hbWVcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHNldDpmdW5jdGlvbih0KXthPXR9fSk7dmFyIG89XCJub3JtYWxcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImZvbnRTdHlsZVwiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb30sc2V0OmZ1bmN0aW9uKHQpe289dH19KTt2YXIgcz0wO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiZm9udFNpemVcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHN9LHNldDpmdW5jdGlvbih0KXtzPXR9fSk7dmFyIGM9dm9pZCAwO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwibWF4Rm9udFNpemVcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PWM/NTAvTzpjfSxzZXQ6ZnVuY3Rpb24odCl7Yz10fX0pO3ZhciB1PVwiYmxhY2tcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImNvbG9yXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB1fSxzZXQ6ZnVuY3Rpb24odCl7dT10fX0pO3ZhciBsPVwiL0YxIDAgVGYgMCBnXCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJEQVwiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtpZighKCFsfHx0aGlzIGluc3RhbmNlb2YgZHR8fHRoaXMgaW5zdGFuY2VvZiBndCkpcmV0dXJuIGV0KGwsdGhpcy5vYmpJZCx0aGlzLnNjb3BlKX0sc2V0OmZ1bmN0aW9uKHQpe3Q9dC50b1N0cmluZygpLGw9dH19KTt2YXIgaD1udWxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiRFZcIix7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7aWYoaClyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGx0PT0wP2V0KGgsdGhpcy5vYmpJZCx0aGlzLnNjb3BlKTpofSxzZXQ6ZnVuY3Rpb24odCl7dD10LnRvU3RyaW5nKCksaD10aGlzIGluc3RhbmNlb2YgbHQ9PTA/XCIoXCI9PT10LnN1YnN0cigwLDEpP3EodC5zdWJzdHIoMSx0Lmxlbmd0aC0yKSk6cSh0KTp0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiZGVmYXVsdFZhbHVlXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgbHQ9PTE/cShoLnN1YnN0cigxLGgubGVuZ3RoLTEpKTpofSxzZXQ6ZnVuY3Rpb24odCl7dD10LnRvU3RyaW5nKCksaD10aGlzIGluc3RhbmNlb2YgbHQ9PTE/XCIvXCIrTSh0KTp0fX0pO3ZhciBmPW51bGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJfVlwiLHtlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtpZihmKXJldHVybiBmfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5WPXR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJWXCIse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLGdldDpmdW5jdGlvbigpe2lmKGYpcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBsdD09MD9ldChmLHRoaXMub2JqSWQsdGhpcy5zY29wZSk6Zn0sc2V0OmZ1bmN0aW9uKHQpe3Q9dC50b1N0cmluZygpLGY9dGhpcyBpbnN0YW5jZW9mIGx0PT0wP1wiKFwiPT09dC5zdWJzdHIoMCwxKT9xKHQuc3Vic3RyKDEsdC5sZW5ndGgtMikpOnEodCk6dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInZhbHVlXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgbHQ9PTE/cShmLnN1YnN0cigxLGYubGVuZ3RoLTEpKTpmfSxzZXQ6ZnVuY3Rpb24odCl7dD10LnRvU3RyaW5nKCksZj10aGlzIGluc3RhbmNlb2YgbHQ9PTE/XCIvXCIrTSh0KTp0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiaGFzQW5ub3RhdGlvblwiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZWN0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiVHlwZVwiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNBbm5vdGF0aW9uP1wiL0Fubm90XCI6bnVsbH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIlN1YnR5cGVcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzQW5ub3RhdGlvbj9cIi9XaWRnZXRcIjpudWxsfX0pO3ZhciBkLHA9ITE7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJoYXNBcHBlYXJhbmNlU3RyZWFtXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwfSxzZXQ6ZnVuY3Rpb24odCl7dD1Cb29sZWFuKHQpLHA9dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInBhZ2VcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoZClyZXR1cm4gZH0sc2V0OmZ1bmN0aW9uKHQpe2Q9dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInJlYWRPbmx5XCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKFYodGhpcy5GZiwxKSl9LHNldDpmdW5jdGlvbih0KXshMD09PUJvb2xlYW4odCk/dGhpcy5GZj1HKHRoaXMuRmYsMSk6dGhpcy5GZj1ZKHRoaXMuRmYsMSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJyZXF1aXJlZFwiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbihWKHRoaXMuRmYsMikpfSxzZXQ6ZnVuY3Rpb24odCl7ITA9PT1Cb29sZWFuKHQpP3RoaXMuRmY9Ryh0aGlzLkZmLDIpOnRoaXMuRmY9WSh0aGlzLkZmLDIpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwibm9FeHBvcnRcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4oVih0aGlzLkZmLDMpKX0sc2V0OmZ1bmN0aW9uKHQpeyEwPT09Qm9vbGVhbih0KT90aGlzLkZmPUcodGhpcy5GZiwzKTp0aGlzLkZmPVkodGhpcy5GZiwzKX19KTt2YXIgZz1udWxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiUVwiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtpZihudWxsIT09ZylyZXR1cm4gZ30sc2V0OmZ1bmN0aW9uKHQpe2lmKC0xPT09WzAsMSwyXS5pbmRleE9mKHQpKXRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWx1ZSBcIicrdCsnXCIgZm9yIGF0dHJpYnV0ZSBRIHN1cHBsaWVkLicpO2c9dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInRleHRBbGlnblwiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdDtzd2l0Y2goZyl7Y2FzZSAwOmRlZmF1bHQ6dD1cImxlZnRcIjticmVhaztjYXNlIDE6dD1cImNlbnRlclwiO2JyZWFrO2Nhc2UgMjp0PVwicmlnaHRcIn1yZXR1cm4gdH0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsc2V0OmZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlXCJyaWdodFwiOmNhc2UgMjpnPTI7YnJlYWs7Y2FzZVwiY2VudGVyXCI6Y2FzZSAxOmc9MTticmVhaztkZWZhdWx0Omc9MH19fSl9O0QoYXQscnQpO3ZhciBvdD1mdW5jdGlvbigpe2F0LmNhbGwodGhpcyksdGhpcy5GVD1cIi9DaFwiLHRoaXMuVj1cIigpXCIsdGhpcy5mb250TmFtZT1cInphcGZkaW5nYmF0c1wiO3ZhciB0PTA7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJUSVwiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sc2V0OmZ1bmN0aW9uKGUpe3Q9ZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInRvcEluZGV4XCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0fSxzZXQ6ZnVuY3Rpb24oZSl7dD1lfX0pO3ZhciBlPVtdO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiT3B0XCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0dChlLHRoaXMub2JqSWQsdGhpcy5zY29wZSl9LHNldDpmdW5jdGlvbih0KXt2YXIgcixuO249W10sXCJzdHJpbmdcIj09dHlwZW9mKHI9dCkmJihuPWZ1bmN0aW9uKHQsZSxyKXtyfHwocj0xKTtmb3IodmFyIG4saT1bXTtuPWUuZXhlYyh0KTspaS5wdXNoKG5bcl0pO3JldHVybiBpfShyLC9cXCgoLio/KVxcKS9nKSksZT1ufX0pLHRoaXMuZ2V0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBlfSx0aGlzLnNldE9wdGlvbnM9ZnVuY3Rpb24odCl7ZT10LHRoaXMuc29ydCYmZS5zb3J0KCl9LHRoaXMuYWRkT3B0aW9uPWZ1bmN0aW9uKHQpe3Q9KHQ9dHx8XCJcIikudG9TdHJpbmcoKSxlLnB1c2godCksdGhpcy5zb3J0JiZlLnNvcnQoKX0sdGhpcy5yZW1vdmVPcHRpb249ZnVuY3Rpb24odCxyKXtmb3Iocj1yfHwhMSx0PSh0PXR8fFwiXCIpLnRvU3RyaW5nKCk7LTEhPT1lLmluZGV4T2YodCkmJihlLnNwbGljZShlLmluZGV4T2YodCksMSksITEhPT1yKTspO30sT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJjb21ib1wiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbihWKHRoaXMuRmYsMTgpKX0sc2V0OmZ1bmN0aW9uKHQpeyEwPT09Qm9vbGVhbih0KT90aGlzLkZmPUcodGhpcy5GZiwxOCk6dGhpcy5GZj1ZKHRoaXMuRmYsMTgpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiZWRpdFwiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbihWKHRoaXMuRmYsMTkpKX0sc2V0OmZ1bmN0aW9uKHQpeyEwPT09dGhpcy5jb21ibyYmKCEwPT09Qm9vbGVhbih0KT90aGlzLkZmPUcodGhpcy5GZiwxOSk6dGhpcy5GZj1ZKHRoaXMuRmYsMTkpKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInNvcnRcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4oVih0aGlzLkZmLDIwKSl9LHNldDpmdW5jdGlvbih0KXshMD09PUJvb2xlYW4odCk/KHRoaXMuRmY9Ryh0aGlzLkZmLDIwKSxlLnNvcnQoKSk6dGhpcy5GZj1ZKHRoaXMuRmYsMjApfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwibXVsdGlTZWxlY3RcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4oVih0aGlzLkZmLDIyKSl9LHNldDpmdW5jdGlvbih0KXshMD09PUJvb2xlYW4odCk/dGhpcy5GZj1HKHRoaXMuRmYsMjIpOnRoaXMuRmY9WSh0aGlzLkZmLDIyKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImRvTm90U3BlbGxDaGVja1wiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbihWKHRoaXMuRmYsMjMpKX0sc2V0OmZ1bmN0aW9uKHQpeyEwPT09Qm9vbGVhbih0KT90aGlzLkZmPUcodGhpcy5GZiwyMyk6dGhpcy5GZj1ZKHRoaXMuRmYsMjMpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiY29tbWl0T25TZWxDaGFuZ2VcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4oVih0aGlzLkZmLDI3KSl9LHNldDpmdW5jdGlvbih0KXshMD09PUJvb2xlYW4odCk/dGhpcy5GZj1HKHRoaXMuRmYsMjcpOnRoaXMuRmY9WSh0aGlzLkZmLDI3KX19KSx0aGlzLmhhc0FwcGVhcmFuY2VTdHJlYW09ITF9O0Qob3QsYXQpO3ZhciBzdD1mdW5jdGlvbigpe290LmNhbGwodGhpcyksdGhpcy5mb250TmFtZT1cImhlbHZldGljYVwiLHRoaXMuY29tYm89ITF9O0Qoc3Qsb3QpO3ZhciBjdD1mdW5jdGlvbigpe3N0LmNhbGwodGhpcyksdGhpcy5jb21ibz0hMH07RChjdCxzdCk7dmFyIHV0PWZ1bmN0aW9uKCl7Y3QuY2FsbCh0aGlzKSx0aGlzLmVkaXQ9ITB9O0QodXQsY3QpO3ZhciBsdD1mdW5jdGlvbigpe2F0LmNhbGwodGhpcyksdGhpcy5GVD1cIi9CdG5cIixPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIm5vVG9nZ2xlVG9PZmZcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4oVih0aGlzLkZmLDE1KSl9LHNldDpmdW5jdGlvbih0KXshMD09PUJvb2xlYW4odCk/dGhpcy5GZj1HKHRoaXMuRmYsMTUpOnRoaXMuRmY9WSh0aGlzLkZmLDE1KX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInJhZGlvXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKFYodGhpcy5GZiwxNikpfSxzZXQ6ZnVuY3Rpb24odCl7ITA9PT1Cb29sZWFuKHQpP3RoaXMuRmY9Ryh0aGlzLkZmLDE2KTp0aGlzLkZmPVkodGhpcy5GZiwxNil9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJwdXNoQnV0dG9uXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKFYodGhpcy5GZiwxNykpfSxzZXQ6ZnVuY3Rpb24odCl7ITA9PT1Cb29sZWFuKHQpP3RoaXMuRmY9Ryh0aGlzLkZmLDE3KTp0aGlzLkZmPVkodGhpcy5GZiwxNyl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJyYWRpb0lzVW5pc29uXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKFYodGhpcy5GZiwyNikpfSxzZXQ6ZnVuY3Rpb24odCl7ITA9PT1Cb29sZWFuKHQpP3RoaXMuRmY9Ryh0aGlzLkZmLDI2KTp0aGlzLkZmPVkodGhpcy5GZiwyNil9fSk7dmFyIHQsZT17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIk1LXCIse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKHQpe3JldHVybiB0fTtpZih0aGlzLnNjb3BlJiYodD10aGlzLnNjb3BlLmludGVybmFsLmdldEVuY3J5cHRvcih0aGlzLm9iaklkKSksMCE9PU9iamVjdC5rZXlzKGUpLmxlbmd0aCl7dmFyIHIsbj1bXTtmb3IociBpbiBuLnB1c2goXCI8PFwiKSxlKW4ucHVzaChcIi9cIityK1wiIChcIitCKHQoZVtyXSkpK1wiKVwiKTtyZXR1cm4gbi5wdXNoKFwiPj5cIiksbi5qb2luKFwiXFxuXCIpfX0sc2V0OmZ1bmN0aW9uKHQpe1wib2JqZWN0XCI9PXR5cGVvZiB0JiYoZT10KX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImNhcHRpb25cIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUuQ0F8fFwiXCJ9LHNldDpmdW5jdGlvbih0KXtcInN0cmluZ1wiPT10eXBlb2YgdCYmKGUuQ0E9dCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJBU1wiLHtlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sc2V0OmZ1bmN0aW9uKGUpe3ZhciByPW51bGw9PWU/XCJcIjplLnRvU3RyaW5nKCk7XCIvXCI9PT1yLnN1YnN0cigwLDEpJiYocj1yLnN1YnN0cigxKSksdD1cIi9cIitNKHIpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiYXBwZWFyYW5jZVN0YXRlXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0LnN1YnN0cigxLHQubGVuZ3RoLTEpfSxzZXQ6ZnVuY3Rpb24oZSl7dD1cIi9cIitNKGUpfX0pfTtEKGx0LGF0KTt2YXIgaHQ9ZnVuY3Rpb24oKXtsdC5jYWxsKHRoaXMpLHRoaXMucHVzaEJ1dHRvbj0hMH07RChodCxsdCk7dmFyIGZ0PWZ1bmN0aW9uKCl7bHQuY2FsbCh0aGlzKSx0aGlzLnJhZGlvPSEwLHRoaXMucHVzaEJ1dHRvbj0hMTt2YXIgdD1bXTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIktpZHNcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHR9LHNldDpmdW5jdGlvbihlKXt0PXZvaWQgMCE9PWU/ZTpbXX19KX07RChmdCxsdCk7dmFyIGR0PWZ1bmN0aW9uKCl7dmFyIHQsZTthdC5jYWxsKHRoaXMpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiUGFyZW50XCIse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0fSxzZXQ6ZnVuY3Rpb24oZSl7dD1lfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwib3B0aW9uTmFtZVwiLHtlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX0sc2V0OmZ1bmN0aW9uKHQpe2U9dH19KTt2YXIgcixuPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiTUtcIix7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHR9O3RoaXMuc2NvcGUmJih0PXRoaXMuc2NvcGUuaW50ZXJuYWwuZ2V0RW5jcnlwdG9yKHRoaXMub2JqSWQpKTt2YXIgZSxyPVtdO2ZvcihlIGluIHIucHVzaChcIjw8XCIpLG4pci5wdXNoKFwiL1wiK2UrXCIgKFwiK0IodChuW2VdKSkrXCIpXCIpO3JldHVybiByLnB1c2goXCI+PlwiKSxyLmpvaW4oXCJcXG5cIil9LHNldDpmdW5jdGlvbih0KXtcIm9iamVjdFwiPT10eXBlb2YgdCYmKG49dCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJjYXB0aW9uXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLkNBfHxcIlwifSxzZXQ6ZnVuY3Rpb24odCl7XCJzdHJpbmdcIj09dHlwZW9mIHQmJihuLkNBPXQpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiQVNcIix7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHNldDpmdW5jdGlvbih0KXt2YXIgZT1udWxsPT10P1wiXCI6dC50b1N0cmluZygpO1wiL1wiPT09ZS5zdWJzdHIoMCwxKSYmKGU9ZS5zdWJzdHIoMSkpLHI9XCIvXCIrTShlKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImFwcGVhcmFuY2VTdGF0ZVwiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5zdWJzdHIoMSxyLmxlbmd0aC0xKX0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPW51bGw9PXQ/XCJcIjp0LnRvU3RyaW5nKCk7XCIvXCI9PT1lLnN1YnN0cigwLDEpJiYoZT1lLnN1YnN0cigxKSkscj1cIi9cIitNKGUpfX0pLHRoaXMuY2FwdGlvbj1cImxcIix0aGlzLmFwcGVhcmFuY2VTdGF0ZT1cIk9mZlwiLHRoaXMuX0FwcGVhcmFuY2VUeXBlPXZ0LlJhZGlvQnV0dG9uLkNpcmNsZSx0aGlzLmFwcGVhcmFuY2VTdHJlYW1Db250ZW50PXRoaXMuX0FwcGVhcmFuY2VUeXBlLmNyZWF0ZUFwcGVhcmFuY2VTdHJlYW0odGhpcy5vcHRpb25OYW1lKX07RChkdCxhdCksZnQucHJvdG90eXBlLnNldEFwcGVhcmFuY2U9ZnVuY3Rpb24odCl7aWYoIShcImNyZWF0ZUFwcGVhcmFuY2VTdHJlYW1cImluIHQpfHwhKFwiZ2V0Q0FcImluIHQpKXRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGFzc2lnbiBBcHBlYXJhbmNlIHRvIFJhZGlvQnV0dG9uLiBBcHBlYXJhbmNlIHdhcyBJbnZhbGlkIVwiKTtmb3IodmFyIGUgaW4gdGhpcy5LaWRzKWlmKHRoaXMuS2lkcy5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIHI9dGhpcy5LaWRzW2VdO3IuYXBwZWFyYW5jZVN0cmVhbUNvbnRlbnQ9dC5jcmVhdGVBcHBlYXJhbmNlU3RyZWFtKHIub3B0aW9uTmFtZSksci5jYXB0aW9uPXQuZ2V0Q0EoKX19LGZ0LnByb3RvdHlwZS5jcmVhdGVPcHRpb249ZnVuY3Rpb24odCl7dmFyIGU9bmV3IGR0O3JldHVybiBlLlBhcmVudD10aGlzLGUub3B0aW9uTmFtZT10LHRoaXMuS2lkcy5wdXNoKGUpLGJ0LmNhbGwodGhpcy5zY29wZSxlKSxlfTt2YXIgcHQ9ZnVuY3Rpb24oKXtsdC5jYWxsKHRoaXMpLHRoaXMuZm9udE5hbWU9XCJ6YXBmZGluZ2JhdHNcIix0aGlzLmNhcHRpb249XCIzXCIsdGhpcy5hcHBlYXJhbmNlU3RhdGU9XCJPblwiLHRoaXMudmFsdWU9XCJPblwiLHRoaXMudGV4dEFsaWduPVwiY2VudGVyXCIsdGhpcy5hcHBlYXJhbmNlU3RyZWFtQ29udGVudD12dC5DaGVja0JveC5jcmVhdGVBcHBlYXJhbmNlU3RyZWFtKCl9O0QocHQsbHQpO3ZhciBndD1mdW5jdGlvbigpe2F0LmNhbGwodGhpcyksdGhpcy5GVD1cIi9UeFwiLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwibXVsdGlsaW5lXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKFYodGhpcy5GZiwxMykpfSxzZXQ6ZnVuY3Rpb24odCl7ITA9PT1Cb29sZWFuKHQpP3RoaXMuRmY9Ryh0aGlzLkZmLDEzKTp0aGlzLkZmPVkodGhpcy5GZiwxMyl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJmaWxlU2VsZWN0XCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKFYodGhpcy5GZiwyMSkpfSxzZXQ6ZnVuY3Rpb24odCl7ITA9PT1Cb29sZWFuKHQpP3RoaXMuRmY9Ryh0aGlzLkZmLDIxKTp0aGlzLkZmPVkodGhpcy5GZiwyMSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJkb05vdFNwZWxsQ2hlY2tcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4oVih0aGlzLkZmLDIzKSl9LHNldDpmdW5jdGlvbih0KXshMD09PUJvb2xlYW4odCk/dGhpcy5GZj1HKHRoaXMuRmYsMjMpOnRoaXMuRmY9WSh0aGlzLkZmLDIzKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImRvTm90U2Nyb2xsXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKFYodGhpcy5GZiwyNCkpfSxzZXQ6ZnVuY3Rpb24odCl7ITA9PT1Cb29sZWFuKHQpP3RoaXMuRmY9Ryh0aGlzLkZmLDI0KTp0aGlzLkZmPVkodGhpcy5GZiwyNCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJjb21iXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKFYodGhpcy5GZiwyNSkpfSxzZXQ6ZnVuY3Rpb24odCl7ITA9PT1Cb29sZWFuKHQpP3RoaXMuRmY9Ryh0aGlzLkZmLDI1KTp0aGlzLkZmPVkodGhpcy5GZiwyNSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJyaWNoVGV4dFwiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbihWKHRoaXMuRmYsMjYpKX0sc2V0OmZ1bmN0aW9uKHQpeyEwPT09Qm9vbGVhbih0KT90aGlzLkZmPUcodGhpcy5GZiwyNik6dGhpcy5GZj1ZKHRoaXMuRmYsMjYpfX0pO3ZhciB0PW51bGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJNYXhMZW5cIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHR9LHNldDpmdW5jdGlvbihlKXt0PWV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJtYXhMZW5ndGhcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHR9LHNldDpmdW5jdGlvbihlKXtOdW1iZXIuaXNJbnRlZ2VyKGUpJiYodD1lKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImhhc0FwcGVhcmFuY2VTdHJlYW1cIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVnx8dGhpcy5EVn19KX07RChndCxhdCk7dmFyIG10PWZ1bmN0aW9uKCl7Z3QuY2FsbCh0aGlzKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInBhc3N3b3JkXCIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKFYodGhpcy5GZiwxNCkpfSxzZXQ6ZnVuY3Rpb24odCl7ITA9PT1Cb29sZWFuKHQpP3RoaXMuRmY9Ryh0aGlzLkZmLDE0KTp0aGlzLkZmPVkodGhpcy5GZiwxNCl9fSksdGhpcy5wYXNzd29yZD0hMH07RChtdCxndCk7dmFyIHZ0PXtDaGVja0JveDp7Y3JlYXRlQXBwZWFyYW5jZVN0cmVhbTpmdW5jdGlvbigpe3JldHVybntOOntPbjp2dC5DaGVja0JveC5ZZXNOb3JtYWx9LEQ6e09uOnZ0LkNoZWNrQm94Llllc1B1c2hEb3duLE9mZjp2dC5DaGVja0JveC5PZmZQdXNoRG93bn19fSxZZXNQdXNoRG93bjpmdW5jdGlvbih0KXt2YXIgZT16KHQpO2Uuc2NvcGU9dC5zY29wZTt2YXIgcj1bXSxuPXQuc2NvcGUuaW50ZXJuYWwuZ2V0Rm9udCh0LmZvbnROYW1lLHQuZm9udFN0eWxlKS5pZCxpPXQuc2NvcGUuX19wcml2YXRlX18uZW5jb2RlQ29sb3JTdHJpbmcodC5jb2xvciksYT1LKHQsdC5jYXB0aW9uKTtyZXR1cm4gci5wdXNoKFwiMC43NDkwMjMgZ1wiKSxyLnB1c2goXCIwIDAgXCIrRSh2dC5pbnRlcm5hbC5nZXRXaWR0aCh0KSkrXCIgXCIrRSh2dC5pbnRlcm5hbC5nZXRIZWlnaHQodCkpK1wiIHJlXCIpLHIucHVzaChcImZcIiksci5wdXNoKFwiQk1DXCIpLHIucHVzaChcInFcIiksci5wdXNoKFwiMCAwIDEgcmdcIiksci5wdXNoKFwiL1wiK24rXCIgXCIrRShhLmZvbnRTaXplKStcIiBUZiBcIitpKSxyLnB1c2goXCJCVFwiKSxyLnB1c2goYS50ZXh0KSxyLnB1c2goXCJFVFwiKSxyLnB1c2goXCJRXCIpLHIucHVzaChcIkVNQ1wiKSxlLnN0cmVhbT1yLmpvaW4oXCJcXG5cIiksZX0sWWVzTm9ybWFsOmZ1bmN0aW9uKHQpe3ZhciBlPXoodCk7ZS5zY29wZT10LnNjb3BlO3ZhciByPXQuc2NvcGUuaW50ZXJuYWwuZ2V0Rm9udCh0LmZvbnROYW1lLHQuZm9udFN0eWxlKS5pZCxuPXQuc2NvcGUuX19wcml2YXRlX18uZW5jb2RlQ29sb3JTdHJpbmcodC5jb2xvciksaT1bXSxhPXZ0LmludGVybmFsLmdldEhlaWdodCh0KSxvPXZ0LmludGVybmFsLmdldFdpZHRoKHQpLHM9Syh0LHQuY2FwdGlvbik7cmV0dXJuIGkucHVzaChcIjEgZ1wiKSxpLnB1c2goXCIwIDAgXCIrRShvKStcIiBcIitFKGEpK1wiIHJlXCIpLGkucHVzaChcImZcIiksaS5wdXNoKFwicVwiKSxpLnB1c2goXCIwIDAgMSByZ1wiKSxpLnB1c2goXCIwIDAgXCIrRShvLTEpK1wiIFwiK0UoYS0xKStcIiByZVwiKSxpLnB1c2goXCJXXCIpLGkucHVzaChcIm5cIiksaS5wdXNoKFwiMCBnXCIpLGkucHVzaChcIkJUXCIpLGkucHVzaChcIi9cIityK1wiIFwiK0Uocy5mb250U2l6ZSkrXCIgVGYgXCIrbiksaS5wdXNoKHMudGV4dCksaS5wdXNoKFwiRVRcIiksaS5wdXNoKFwiUVwiKSxlLnN0cmVhbT1pLmpvaW4oXCJcXG5cIiksZX0sT2ZmUHVzaERvd246ZnVuY3Rpb24odCl7dmFyIGU9eih0KTtlLnNjb3BlPXQuc2NvcGU7dmFyIHI9W107cmV0dXJuIHIucHVzaChcIjAuNzQ5MDIzIGdcIiksci5wdXNoKFwiMCAwIFwiK0UodnQuaW50ZXJuYWwuZ2V0V2lkdGgodCkpK1wiIFwiK0UodnQuaW50ZXJuYWwuZ2V0SGVpZ2h0KHQpKStcIiByZVwiKSxyLnB1c2goXCJmXCIpLGUuc3RyZWFtPXIuam9pbihcIlxcblwiKSxlfX0sUmFkaW9CdXR0b246e0NpcmNsZTp7Y3JlYXRlQXBwZWFyYW5jZVN0cmVhbTpmdW5jdGlvbih0KXt2YXIgZT17RDp7T2ZmOnZ0LlJhZGlvQnV0dG9uLkNpcmNsZS5PZmZQdXNoRG93bn0sTjp7fX07cmV0dXJuIGUuTlt0XT12dC5SYWRpb0J1dHRvbi5DaXJjbGUuWWVzTm9ybWFsLGUuRFt0XT12dC5SYWRpb0J1dHRvbi5DaXJjbGUuWWVzUHVzaERvd24sZX0sZ2V0Q0E6ZnVuY3Rpb24oKXtyZXR1cm5cImxcIn0sWWVzTm9ybWFsOmZ1bmN0aW9uKHQpe3ZhciBlPXoodCk7ZS5zY29wZT10LnNjb3BlO3ZhciByPVtdLG49dnQuaW50ZXJuYWwuZ2V0V2lkdGgodCk8PXZ0LmludGVybmFsLmdldEhlaWdodCh0KT92dC5pbnRlcm5hbC5nZXRXaWR0aCh0KS80OnZ0LmludGVybmFsLmdldEhlaWdodCh0KS80O249TnVtYmVyKCguOSpuKS50b0ZpeGVkKDUpKTt2YXIgaT12dC5pbnRlcm5hbC5CZXppZXJfQyxhPU51bWJlcigobippKS50b0ZpeGVkKDUpKTtyZXR1cm4gci5wdXNoKFwicVwiKSxyLnB1c2goXCIxIDAgMCAxIFwiK1IodnQuaW50ZXJuYWwuZ2V0V2lkdGgodCkvMikrXCIgXCIrUih2dC5pbnRlcm5hbC5nZXRIZWlnaHQodCkvMikrXCIgY21cIiksci5wdXNoKG4rXCIgMCBtXCIpLHIucHVzaChuK1wiIFwiK2ErXCIgXCIrYStcIiBcIituK1wiIDAgXCIrbitcIiBjXCIpLHIucHVzaChcIi1cIithK1wiIFwiK24rXCIgLVwiK24rXCIgXCIrYStcIiAtXCIrbitcIiAwIGNcIiksci5wdXNoKFwiLVwiK24rXCIgLVwiK2ErXCIgLVwiK2ErXCIgLVwiK24rXCIgMCAtXCIrbitcIiBjXCIpLHIucHVzaChhK1wiIC1cIituK1wiIFwiK24rXCIgLVwiK2ErXCIgXCIrbitcIiAwIGNcIiksci5wdXNoKFwiZlwiKSxyLnB1c2goXCJRXCIpLGUuc3RyZWFtPXIuam9pbihcIlxcblwiKSxlfSxZZXNQdXNoRG93bjpmdW5jdGlvbih0KXt2YXIgZT16KHQpO2Uuc2NvcGU9dC5zY29wZTt2YXIgcj1bXSxuPXZ0LmludGVybmFsLmdldFdpZHRoKHQpPD12dC5pbnRlcm5hbC5nZXRIZWlnaHQodCk/dnQuaW50ZXJuYWwuZ2V0V2lkdGgodCkvNDp2dC5pbnRlcm5hbC5nZXRIZWlnaHQodCkvNDtuPU51bWJlcigoLjkqbikudG9GaXhlZCg1KSk7dmFyIGk9TnVtYmVyKCgyKm4pLnRvRml4ZWQoNSkpLGE9TnVtYmVyKChpKnZ0LmludGVybmFsLkJlemllcl9DKS50b0ZpeGVkKDUpKSxvPU51bWJlcigobip2dC5pbnRlcm5hbC5CZXppZXJfQykudG9GaXhlZCg1KSk7cmV0dXJuIHIucHVzaChcIjAuNzQ5MDIzIGdcIiksci5wdXNoKFwicVwiKSxyLnB1c2goXCIxIDAgMCAxIFwiK1IodnQuaW50ZXJuYWwuZ2V0V2lkdGgodCkvMikrXCIgXCIrUih2dC5pbnRlcm5hbC5nZXRIZWlnaHQodCkvMikrXCIgY21cIiksci5wdXNoKGkrXCIgMCBtXCIpLHIucHVzaChpK1wiIFwiK2ErXCIgXCIrYStcIiBcIitpK1wiIDAgXCIraStcIiBjXCIpLHIucHVzaChcIi1cIithK1wiIFwiK2krXCIgLVwiK2krXCIgXCIrYStcIiAtXCIraStcIiAwIGNcIiksci5wdXNoKFwiLVwiK2krXCIgLVwiK2ErXCIgLVwiK2ErXCIgLVwiK2krXCIgMCAtXCIraStcIiBjXCIpLHIucHVzaChhK1wiIC1cIitpK1wiIFwiK2krXCIgLVwiK2ErXCIgXCIraStcIiAwIGNcIiksci5wdXNoKFwiZlwiKSxyLnB1c2goXCJRXCIpLHIucHVzaChcIjAgZ1wiKSxyLnB1c2goXCJxXCIpLHIucHVzaChcIjEgMCAwIDEgXCIrUih2dC5pbnRlcm5hbC5nZXRXaWR0aCh0KS8yKStcIiBcIitSKHZ0LmludGVybmFsLmdldEhlaWdodCh0KS8yKStcIiBjbVwiKSxyLnB1c2gobitcIiAwIG1cIiksci5wdXNoKG4rXCIgXCIrbytcIiBcIitvK1wiIFwiK24rXCIgMCBcIituK1wiIGNcIiksci5wdXNoKFwiLVwiK28rXCIgXCIrbitcIiAtXCIrbitcIiBcIitvK1wiIC1cIituK1wiIDAgY1wiKSxyLnB1c2goXCItXCIrbitcIiAtXCIrbytcIiAtXCIrbytcIiAtXCIrbitcIiAwIC1cIituK1wiIGNcIiksci5wdXNoKG8rXCIgLVwiK24rXCIgXCIrbitcIiAtXCIrbytcIiBcIituK1wiIDAgY1wiKSxyLnB1c2goXCJmXCIpLHIucHVzaChcIlFcIiksZS5zdHJlYW09ci5qb2luKFwiXFxuXCIpLGV9LE9mZlB1c2hEb3duOmZ1bmN0aW9uKHQpe3ZhciBlPXoodCk7ZS5zY29wZT10LnNjb3BlO3ZhciByPVtdLG49dnQuaW50ZXJuYWwuZ2V0V2lkdGgodCk8PXZ0LmludGVybmFsLmdldEhlaWdodCh0KT92dC5pbnRlcm5hbC5nZXRXaWR0aCh0KS80OnZ0LmludGVybmFsLmdldEhlaWdodCh0KS80O249TnVtYmVyKCguOSpuKS50b0ZpeGVkKDUpKTt2YXIgaT1OdW1iZXIoKDIqbikudG9GaXhlZCg1KSksYT1OdW1iZXIoKGkqdnQuaW50ZXJuYWwuQmV6aWVyX0MpLnRvRml4ZWQoNSkpO3JldHVybiByLnB1c2goXCIwLjc0OTAyMyBnXCIpLHIucHVzaChcInFcIiksci5wdXNoKFwiMSAwIDAgMSBcIitSKHZ0LmludGVybmFsLmdldFdpZHRoKHQpLzIpK1wiIFwiK1IodnQuaW50ZXJuYWwuZ2V0SGVpZ2h0KHQpLzIpK1wiIGNtXCIpLHIucHVzaChpK1wiIDAgbVwiKSxyLnB1c2goaStcIiBcIithK1wiIFwiK2ErXCIgXCIraStcIiAwIFwiK2krXCIgY1wiKSxyLnB1c2goXCItXCIrYStcIiBcIitpK1wiIC1cIitpK1wiIFwiK2ErXCIgLVwiK2krXCIgMCBjXCIpLHIucHVzaChcIi1cIitpK1wiIC1cIithK1wiIC1cIithK1wiIC1cIitpK1wiIDAgLVwiK2krXCIgY1wiKSxyLnB1c2goYStcIiAtXCIraStcIiBcIitpK1wiIC1cIithK1wiIFwiK2krXCIgMCBjXCIpLHIucHVzaChcImZcIiksci5wdXNoKFwiUVwiKSxlLnN0cmVhbT1yLmpvaW4oXCJcXG5cIiksZX19LENyb3NzOntjcmVhdGVBcHBlYXJhbmNlU3RyZWFtOmZ1bmN0aW9uKHQpe3ZhciBlPXtEOntPZmY6dnQuUmFkaW9CdXR0b24uQ3Jvc3MuT2ZmUHVzaERvd259LE46e319O3JldHVybiBlLk5bdF09dnQuUmFkaW9CdXR0b24uQ3Jvc3MuWWVzTm9ybWFsLGUuRFt0XT12dC5SYWRpb0J1dHRvbi5Dcm9zcy5ZZXNQdXNoRG93bixlfSxnZXRDQTpmdW5jdGlvbigpe3JldHVyblwiOFwifSxZZXNOb3JtYWw6ZnVuY3Rpb24odCl7dmFyIGU9eih0KTtlLnNjb3BlPXQuc2NvcGU7dmFyIHI9W10sbj12dC5pbnRlcm5hbC5jYWxjdWxhdGVDcm9zcyh0KTtyZXR1cm4gci5wdXNoKFwicVwiKSxyLnB1c2goXCIxIDEgXCIrRSh2dC5pbnRlcm5hbC5nZXRXaWR0aCh0KS0yKStcIiBcIitFKHZ0LmludGVybmFsLmdldEhlaWdodCh0KS0yKStcIiByZVwiKSxyLnB1c2goXCJXXCIpLHIucHVzaChcIm5cIiksci5wdXNoKEUobi54MS54KStcIiBcIitFKG4ueDEueSkrXCIgbVwiKSxyLnB1c2goRShuLngyLngpK1wiIFwiK0Uobi54Mi55KStcIiBsXCIpLHIucHVzaChFKG4ueDQueCkrXCIgXCIrRShuLng0LnkpK1wiIG1cIiksci5wdXNoKEUobi54My54KStcIiBcIitFKG4ueDMueSkrXCIgbFwiKSxyLnB1c2goXCJzXCIpLHIucHVzaChcIlFcIiksZS5zdHJlYW09ci5qb2luKFwiXFxuXCIpLGV9LFllc1B1c2hEb3duOmZ1bmN0aW9uKHQpe3ZhciBlPXoodCk7ZS5zY29wZT10LnNjb3BlO3ZhciByPXZ0LmludGVybmFsLmNhbGN1bGF0ZUNyb3NzKHQpLG49W107cmV0dXJuIG4ucHVzaChcIjAuNzQ5MDIzIGdcIiksbi5wdXNoKFwiMCAwIFwiK0UodnQuaW50ZXJuYWwuZ2V0V2lkdGgodCkpK1wiIFwiK0UodnQuaW50ZXJuYWwuZ2V0SGVpZ2h0KHQpKStcIiByZVwiKSxuLnB1c2goXCJmXCIpLG4ucHVzaChcInFcIiksbi5wdXNoKFwiMSAxIFwiK0UodnQuaW50ZXJuYWwuZ2V0V2lkdGgodCktMikrXCIgXCIrRSh2dC5pbnRlcm5hbC5nZXRIZWlnaHQodCktMikrXCIgcmVcIiksbi5wdXNoKFwiV1wiKSxuLnB1c2goXCJuXCIpLG4ucHVzaChFKHIueDEueCkrXCIgXCIrRShyLngxLnkpK1wiIG1cIiksbi5wdXNoKEUoci54Mi54KStcIiBcIitFKHIueDIueSkrXCIgbFwiKSxuLnB1c2goRShyLng0LngpK1wiIFwiK0Uoci54NC55KStcIiBtXCIpLG4ucHVzaChFKHIueDMueCkrXCIgXCIrRShyLngzLnkpK1wiIGxcIiksbi5wdXNoKFwic1wiKSxuLnB1c2goXCJRXCIpLGUuc3RyZWFtPW4uam9pbihcIlxcblwiKSxlfSxPZmZQdXNoRG93bjpmdW5jdGlvbih0KXt2YXIgZT16KHQpO2Uuc2NvcGU9dC5zY29wZTt2YXIgcj1bXTtyZXR1cm4gci5wdXNoKFwiMC43NDkwMjMgZ1wiKSxyLnB1c2goXCIwIDAgXCIrRSh2dC5pbnRlcm5hbC5nZXRXaWR0aCh0KSkrXCIgXCIrRSh2dC5pbnRlcm5hbC5nZXRIZWlnaHQodCkpK1wiIHJlXCIpLHIucHVzaChcImZcIiksZS5zdHJlYW09ci5qb2luKFwiXFxuXCIpLGV9fX0sY3JlYXRlRGVmYXVsdEFwcGVhcmFuY2VTdHJlYW06ZnVuY3Rpb24odCl7dmFyIGU9dC5zY29wZS5pbnRlcm5hbC5nZXRGb250KHQuZm9udE5hbWUsdC5mb250U3R5bGUpLmlkLHI9dC5zY29wZS5fX3ByaXZhdGVfXy5lbmNvZGVDb2xvclN0cmluZyh0LmNvbG9yKTtyZXR1cm5cIi9cIitlK1wiIFwiK3QuZm9udFNpemUrXCIgVGYgXCIrcn19O3Z0LmludGVybmFsPXtCZXppZXJfQzouNTUxOTE1MDI0NDk0LGNhbGN1bGF0ZUNyb3NzOmZ1bmN0aW9uKHQpe3ZhciBlPXZ0LmludGVybmFsLmdldFdpZHRoKHQpLHI9dnQuaW50ZXJuYWwuZ2V0SGVpZ2h0KHQpLG49TWF0aC5taW4oZSxyKTtyZXR1cm57eDE6e3g6KGUtbikvMix5OihyLW4pLzIrbn0seDI6e3g6KGUtbikvMituLHk6KHItbikvMn0seDM6e3g6KGUtbikvMix5OihyLW4pLzJ9LHg0Ont4OihlLW4pLzIrbix5OihyLW4pLzIrbn19fX0sdnQuaW50ZXJuYWwuZ2V0V2lkdGg9ZnVuY3Rpb24odCl7dmFyIGU9MDtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YgdCYmKGU9VCh0LlJlY3RbMl0pKSxlfSx2dC5pbnRlcm5hbC5nZXRIZWlnaHQ9ZnVuY3Rpb24odCl7dmFyIGU9MDtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YgdCYmKGU9VCh0LlJlY3RbM10pKSxlfTt2YXIgYnQ9ai5hZGRGaWVsZD1mdW5jdGlvbih0KXtpZihmdW5jdGlvbih0LGUpe2lmKGUuc2NvcGU9dCx2b2lkIDAhPT10LmludGVybmFsJiYodm9pZCAwPT09dC5pbnRlcm5hbC5hY3JvZm9ybVBsdWdpbnx8ITE9PT10LmludGVybmFsLmFjcm9mb3JtUGx1Z2luLmlzSW5pdGlhbGl6ZWQpKXtpZihhdC5GaWVsZE51bT0wLHQuaW50ZXJuYWwuYWNyb2Zvcm1QbHVnaW49SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShaKSksdC5pbnRlcm5hbC5hY3JvZm9ybVBsdWdpbi5hY3JvRm9ybURpY3Rpb25hcnlSb290KXRocm93IG5ldyBFcnJvcihcIkV4Y2VwdGlvbiB3aGlsZSBjcmVhdGluZyBBY3JvZm9ybURpY3Rpb25hcnlcIik7Tz10LmludGVybmFsLnNjYWxlRmFjdG9yLHQuaW50ZXJuYWwuYWNyb2Zvcm1QbHVnaW4uYWNyb0Zvcm1EaWN0aW9uYXJ5Um9vdD1uZXcgaXQsdC5pbnRlcm5hbC5hY3JvZm9ybVBsdWdpbi5hY3JvRm9ybURpY3Rpb25hcnlSb290LnNjb3BlPXQsdC5pbnRlcm5hbC5hY3JvZm9ybVBsdWdpbi5hY3JvRm9ybURpY3Rpb25hcnlSb290Ll9ldmVudElEPXQuaW50ZXJuYWwuZXZlbnRzLnN1YnNjcmliZShcInBvc3RQdXRSZXNvdXJjZXNcIixmdW5jdGlvbigpeyFmdW5jdGlvbih0KXt0LmludGVybmFsLmV2ZW50cy51bnN1YnNjcmliZSh0LmludGVybmFsLmFjcm9mb3JtUGx1Z2luLmFjcm9Gb3JtRGljdGlvbmFyeVJvb3QuX2V2ZW50SUQpLGRlbGV0ZSB0LmludGVybmFsLmFjcm9mb3JtUGx1Z2luLmFjcm9Gb3JtRGljdGlvbmFyeVJvb3QuX2V2ZW50SUQsdC5pbnRlcm5hbC5hY3JvZm9ybVBsdWdpbi5wcmludGVkT3V0PSEwfSh0KX0pLHQuaW50ZXJuYWwuZXZlbnRzLnN1YnNjcmliZShcImJ1aWxkRG9jdW1lbnRcIixmdW5jdGlvbigpeyFmdW5jdGlvbih0KXt0LmludGVybmFsLmFjcm9mb3JtUGx1Z2luLmFjcm9Gb3JtRGljdGlvbmFyeVJvb3Qub2JqSWQ9dm9pZCAwO3ZhciBlPXQuaW50ZXJuYWwuYWNyb2Zvcm1QbHVnaW4uYWNyb0Zvcm1EaWN0aW9uYXJ5Um9vdC5GaWVsZHM7Zm9yKHZhciByIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShyKSl7dmFyIG49ZVtyXTtuLm9iaklkPXZvaWQgMCxuLmhhc0Fubm90YXRpb24mJlEobix0KX19KHQpfSksdC5pbnRlcm5hbC5ldmVudHMuc3Vic2NyaWJlKFwicHV0Q2F0YWxvZ1wiLGZ1bmN0aW9uKCl7IWZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQuaW50ZXJuYWwuYWNyb2Zvcm1QbHVnaW4uYWNyb0Zvcm1EaWN0aW9uYXJ5Um9vdCl0aHJvdyBuZXcgRXJyb3IoXCJwdXRDYXRhbG9nQ2FsbGJhY2s6IFJvb3QgbWlzc2luZy5cIik7dC5pbnRlcm5hbC53cml0ZShcIi9BY3JvRm9ybSBcIit0LmludGVybmFsLmFjcm9mb3JtUGx1Z2luLmFjcm9Gb3JtRGljdGlvbmFyeVJvb3Qub2JqSWQrXCIgMCBSXCIpfSh0KX0pLHQuaW50ZXJuYWwuZXZlbnRzLnN1YnNjcmliZShcInBvc3RQdXRQYWdlc1wiLGZ1bmN0aW9uKGUpeyFmdW5jdGlvbih0LGUpe3ZhciByPSF0O2Zvcih2YXIgbiBpbiB0fHwoZS5pbnRlcm5hbC5uZXdPYmplY3REZWZlcnJlZEJlZ2luKGUuaW50ZXJuYWwuYWNyb2Zvcm1QbHVnaW4uYWNyb0Zvcm1EaWN0aW9uYXJ5Um9vdC5vYmpJZCwhMCksZS5pbnRlcm5hbC5hY3JvZm9ybVBsdWdpbi5hY3JvRm9ybURpY3Rpb25hcnlSb290LnB1dFN0cmVhbSgpKSx0PXR8fGUuaW50ZXJuYWwuYWNyb2Zvcm1QbHVnaW4uYWNyb0Zvcm1EaWN0aW9uYXJ5Um9vdC5LaWRzKWlmKHQuaGFzT3duUHJvcGVydHkobikpe3ZhciBpPXRbbl0sYT1bXSxvPWkuUmVjdDtpZihpLlJlY3QmJihpLlJlY3Q9SihpLlJlY3QsZSkpLGUuaW50ZXJuYWwubmV3T2JqZWN0RGVmZXJyZWRCZWdpbihpLm9iaklkLCEwKSxpLkRBPXZ0LmNyZWF0ZURlZmF1bHRBcHBlYXJhbmNlU3RyZWFtKGkpLFwib2JqZWN0XCI9PXR5cGVvZiBpJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBpLmdldEtleVZhbHVlTGlzdEZvclN0cmVhbSYmKGE9aS5nZXRLZXlWYWx1ZUxpc3RGb3JTdHJlYW0oKSksaS5SZWN0PW8saS5oYXNBcHBlYXJhbmNlU3RyZWFtJiYhaS5hcHBlYXJhbmNlU3RyZWFtQ29udGVudCl7dmFyIHM9WChpKTthLnB1c2goe2tleTpcIkFQXCIsdmFsdWU6XCI8PC9OIFwiK3MrXCI+PlwifSksZS5pbnRlcm5hbC5hY3JvZm9ybVBsdWdpbi54Rm9ybXMucHVzaChzKX1pZihpLmFwcGVhcmFuY2VTdHJlYW1Db250ZW50KXt2YXIgYz1cIlwiO2Zvcih2YXIgdSBpbiBpLmFwcGVhcmFuY2VTdHJlYW1Db250ZW50KWlmKGkuYXBwZWFyYW5jZVN0cmVhbUNvbnRlbnQuaGFzT3duUHJvcGVydHkodSkpe3ZhciBsPWkuYXBwZWFyYW5jZVN0cmVhbUNvbnRlbnRbdV07aWYoYys9XCIvXCIrdStcIiBcIixjKz1cIjw8XCIsT2JqZWN0LmtleXMobCkubGVuZ3RoPj0xfHxBcnJheS5pc0FycmF5KGwpKXtmb3IodmFyIG4gaW4gbClpZihsLmhhc093blByb3BlcnR5KG4pKXt2YXIgaD1sW25dO1wiZnVuY3Rpb25cIj09dHlwZW9mIGgmJihoPWguY2FsbChlLGkpKSxjKz1cIi9cIituK1wiIFwiK2grXCIgXCIsZS5pbnRlcm5hbC5hY3JvZm9ybVBsdWdpbi54Rm9ybXMuaW5kZXhPZihoKT49MHx8ZS5pbnRlcm5hbC5hY3JvZm9ybVBsdWdpbi54Rm9ybXMucHVzaChoKX19ZWxzZVwiZnVuY3Rpb25cIj09dHlwZW9mKGg9bCkmJihoPWguY2FsbChlLGkpKSxjKz1cIi9cIituK1wiIFwiK2gsZS5pbnRlcm5hbC5hY3JvZm9ybVBsdWdpbi54Rm9ybXMuaW5kZXhPZihoKT49MHx8ZS5pbnRlcm5hbC5hY3JvZm9ybVBsdWdpbi54Rm9ybXMucHVzaChoKTtjKz1cIj4+XCJ9YS5wdXNoKHtrZXk6XCJBUFwiLHZhbHVlOlwiPDxcXG5cIitjK1wiPj5cIn0pfWUuaW50ZXJuYWwucHV0U3RyZWFtKHthZGRpdGlvbmFsS2V5VmFsdWVzOmEsb2JqZWN0SWQ6aS5vYmpJZH0pLGUuaW50ZXJuYWwub3V0KFwiZW5kb2JqXCIpfXImJmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShyKSl7dmFyIG49cixpPXRbcl07ZS5pbnRlcm5hbC5uZXdPYmplY3REZWZlcnJlZEJlZ2luKGkub2JqSWQsITApLFwib2JqZWN0XCI9PXR5cGVvZiBpJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBpLnB1dFN0cmVhbSYmaS5wdXRTdHJlYW0oKSxkZWxldGUgdFtuXX19KGUuaW50ZXJuYWwuYWNyb2Zvcm1QbHVnaW4ueEZvcm1zLGUpfShlLHQpfSksdC5pbnRlcm5hbC5hY3JvZm9ybVBsdWdpbi5pc0luaXRpYWxpemVkPSEwfX0odGhpcyx0KSwhKHQgaW5zdGFuY2VvZiBhdCkpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgdG8ganNQREYuYWRkRmllbGQuXCIpO3ZhciBlO3JldHVybihlPXQpLnNjb3BlLmludGVybmFsLmFjcm9mb3JtUGx1Z2luLnByaW50ZWRPdXQmJihlLnNjb3BlLmludGVybmFsLmFjcm9mb3JtUGx1Z2luLnByaW50ZWRPdXQ9ITEsZS5zY29wZS5pbnRlcm5hbC5hY3JvZm9ybVBsdWdpbi5hY3JvRm9ybURpY3Rpb25hcnlSb290PW51bGwpLGUuc2NvcGUuaW50ZXJuYWwuYWNyb2Zvcm1QbHVnaW4uYWNyb0Zvcm1EaWN0aW9uYXJ5Um9vdC5GaWVsZHMucHVzaChlKSx0LnBhZ2U9dC5zY29wZS5pbnRlcm5hbC5nZXRDdXJyZW50UGFnZUluZm8oKS5wYWdlTnVtYmVyLHRoaXN9O2ouQWNyb0Zvcm1DaG9pY2VGaWVsZD1vdCxqLkFjcm9Gb3JtTGlzdEJveD1zdCxqLkFjcm9Gb3JtQ29tYm9Cb3g9Y3Qsai5BY3JvRm9ybUVkaXRCb3g9dXQsai5BY3JvRm9ybUJ1dHRvbj1sdCxqLkFjcm9Gb3JtUHVzaEJ1dHRvbj1odCxqLkFjcm9Gb3JtUmFkaW9CdXR0b249ZnQsai5BY3JvRm9ybUNoZWNrQm94PXB0LGouQWNyb0Zvcm1UZXh0RmllbGQ9Z3Qsai5BY3JvRm9ybVBhc3N3b3JkRmllbGQ9bXQsai5BY3JvRm9ybUFwcGVhcmFuY2U9dnQsai5BY3JvRm9ybT17Q2hvaWNlRmllbGQ6b3QsTGlzdEJveDpzdCxDb21ib0JveDpjdCxFZGl0Qm94OnV0LEJ1dHRvbjpsdCxQdXNoQnV0dG9uOmh0LFJhZGlvQnV0dG9uOmZ0LENoZWNrQm94OnB0LFRleHRGaWVsZDpndCxQYXNzd29yZEZpZWxkOm10LEFwcGVhcmFuY2U6dnR9LEMuQWNyb0Zvcm09e0Nob2ljZUZpZWxkOm90LExpc3RCb3g6c3QsQ29tYm9Cb3g6Y3QsRWRpdEJveDp1dCxCdXR0b246bHQsUHVzaEJ1dHRvbjpodCxSYWRpb0J1dHRvbjpmdCxDaGVja0JveDpwdCxUZXh0RmllbGQ6Z3QsUGFzc3dvcmRGaWVsZDptdCxBcHBlYXJhbmNlOnZ0fTt2YXIgeXQ9Qy5BY3JvRm9ybTtcbi8qKiBAbGljZW5zZVxuICoganNQREYgYWRkSW1hZ2UgcGx1Z2luXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgSmFzb24gU2llZmtlbiwgaHR0cHM6Ly9naXRodWIuY29tL3NpZWZrZW5qL1xuICogICAgICAgICAgICAgICAyMDEzIENocmlzIERvd2xpbmcsIGh0dHBzOi8vZ2l0aHViLmNvbS9naW5nZXJjaHJpc1xuICogICAgICAgICAgICAgICAyMDEzIFRyaW5oIEhvLCBodHRwczovL2dpdGh1Yi5jb20vaW5lZWRmYXRcbiAqICAgICAgICAgICAgICAgMjAxMyBFZHdpbiBBbGVqYW5kcm8gUGVyZXosIGh0dHBzOi8vZ2l0aHViLmNvbS9lYXBhcmFuZ29cbiAqICAgICAgICAgICAgICAgMjAxMyBOb3JhaCBTbWl0aCwgaHR0cHM6Ly9naXRodWIuY29tL2J1cm5idXJucm9ja2V0XG4gKiAgICAgICAgICAgICAgIDIwMTQgRGllZ28gQ2Fzb3JyYW4sIGh0dHBzOi8vZ2l0aHViLmNvbS9kaWVnb2NyXG4gKiAgICAgICAgICAgICAgIDIwMTQgSmFtZXMgUm9iYiwgaHR0cHM6Ly9naXRodWIuY29tL2phbWVzYnJvYmJcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmdcbiAqIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuICogXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4gKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4gKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG9cbiAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0b1xuICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlXG4gKiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELFxuICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORFxuICogTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRVxuICogTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTlxuICogT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OXG4gKiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiAqL2Z1bmN0aW9uIHd0KHQpe3JldHVybiB0LnJlZHVjZShmdW5jdGlvbih0LGUscil7cmV0dXJuIHRbZV09cix0fSx7fSl9IWZ1bmN0aW9uKHQpe3ZhciBlPVwiYWRkSW1hZ2VfXCI7dC5fX2FkZGltYWdlX189e307dmFyIHI9XCJVTktOT1dOXCIsbj17UE5HOltbMTM3LDgwLDc4LDcxXV0sVElGRjpbWzc3LDc3LDAsNDJdLFs3Myw3Myw0MiwwXV0sSlBFRzpbWzI1NSwyMTYsMjU1LDIyNCx2b2lkIDAsdm9pZCAwLDc0LDcwLDczLDcwLDBdLFsyNTUsMjE2LDI1NSwyMjUsdm9pZCAwLHZvaWQgMCw2OSwxMjAsMTA1LDEwMiwwLDBdLFsyNTUsMjE2LDI1NSwyMTldLFsyNTUsMjE2LDI1NSwyMzhdXSxKUEVHMjAwMDpbWzAsMCwwLDEyLDEwNiw4MCwzMiwzMl1dLEdJRjg3YTpbWzcxLDczLDcwLDU2LDU1LDk3XV0sR0lGODlhOltbNzEsNzMsNzAsNTYsNTcsOTddXSxXRUJQOltbODIsNzMsNzAsNzAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLDg3LDY5LDY2LDgwXV0sQk1QOltbNjYsNzddLFs2Niw2NV0sWzY3LDczXSxbNjcsODBdLFs3Myw2N10sWzgwLDg0XV19LGE9dC5fX2FkZGltYWdlX18uZ2V0SW1hZ2VGaWxlVHlwZUJ5SW1hZ2VEYXRhPWZ1bmN0aW9uKHQsZSl7dmFyIGksYSxvLHMsYyx1PXI7aWYoXCJSR0JBXCI9PT0oZT1lfHxyKXx8dm9pZCAwIT09dC5kYXRhJiZ0LmRhdGEgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheSYmXCJoZWlnaHRcImluIHQmJlwid2lkdGhcImluIHQpcmV0dXJuXCJSR0JBXCI7aWYoeCh0KSlmb3IoYyBpbiBuKWZvcihvPW5bY10saT0wO2k8by5sZW5ndGg7aSs9MSl7Zm9yKHM9ITAsYT0wO2E8b1tpXS5sZW5ndGg7YSs9MSlpZih2b2lkIDAhPT1vW2ldW2FdJiZvW2ldW2FdIT09dFthXSl7cz0hMTticmVha31pZighMD09PXMpe3U9YzticmVha319ZWxzZSBmb3IoYyBpbiBuKWZvcihvPW5bY10saT0wO2k8by5sZW5ndGg7aSs9MSl7Zm9yKHM9ITAsYT0wO2E8b1tpXS5sZW5ndGg7YSs9MSlpZih2b2lkIDAhPT1vW2ldW2FdJiZvW2ldW2FdIT09dC5jaGFyQ29kZUF0KGEpKXtzPSExO2JyZWFrfWlmKCEwPT09cyl7dT1jO2JyZWFrfX1yZXR1cm4gdT09PXImJmUhPT1yJiYodT1lKSx1fSxvPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmludGVybmFsLndyaXRlLHI9dGhpcy5pbnRlcm5hbC5wdXRTdHJlYW0sbj0oMCx0aGlzLmludGVybmFsLmdldEZpbHRlcnMpKCk7LTEhPT1uLmluZGV4T2YoXCJGbGF0ZUVuY29kZVwiKTspbi5zcGxpY2Uobi5pbmRleE9mKFwiRmxhdGVFbmNvZGVcIiksMSk7dC5vYmplY3RJZD10aGlzLmludGVybmFsLm5ld09iamVjdCgpO3ZhciBpPVtdO2lmKGkucHVzaCh7a2V5OlwiVHlwZVwiLHZhbHVlOlwiL1hPYmplY3RcIn0pLGkucHVzaCh7a2V5OlwiU3VidHlwZVwiLHZhbHVlOlwiL0ltYWdlXCJ9KSxpLnB1c2goe2tleTpcIldpZHRoXCIsdmFsdWU6dC53aWR0aH0pLGkucHVzaCh7a2V5OlwiSGVpZ2h0XCIsdmFsdWU6dC5oZWlnaHR9KSx0LmNvbG9yU3BhY2U9PT1iLklOREVYRUQ/aS5wdXNoKHtrZXk6XCJDb2xvclNwYWNlXCIsdmFsdWU6XCJbL0luZGV4ZWQgL0RldmljZVJHQiBcIisodC5wYWxldHRlLmxlbmd0aC8zLTEpK1wiIFwiKyhcInNNYXNrXCJpbiB0JiZ2b2lkIDAhPT10LnNNYXNrP3Qub2JqZWN0SWQrMjp0Lm9iamVjdElkKzEpK1wiIDAgUl1cIn0pOihpLnB1c2goe2tleTpcIkNvbG9yU3BhY2VcIix2YWx1ZTpcIi9cIit0LmNvbG9yU3BhY2V9KSx0LmNvbG9yU3BhY2U9PT1iLkRFVklDRV9DTVlLJiZpLnB1c2goe2tleTpcIkRlY29kZVwiLHZhbHVlOlwiWzEgMCAxIDAgMSAwIDEgMF1cIn0pKSxpLnB1c2goe2tleTpcIkJpdHNQZXJDb21wb25lbnRcIix2YWx1ZTp0LmJpdHNQZXJDb21wb25lbnR9KSxcImRlY29kZVBhcmFtZXRlcnNcImluIHQmJnZvaWQgMCE9PXQuZGVjb2RlUGFyYW1ldGVycyYmaS5wdXNoKHtrZXk6XCJEZWNvZGVQYXJtc1wiLHZhbHVlOlwiPDxcIit0LmRlY29kZVBhcmFtZXRlcnMrXCI+PlwifSksXCJ0cmFuc3BhcmVuY3lcImluIHQmJkFycmF5LmlzQXJyYXkodC50cmFuc3BhcmVuY3kpJiZ0LnRyYW5zcGFyZW5jeS5sZW5ndGg+MCl7Zm9yKHZhciBhPVwiXCIscz0wLGM9dC50cmFuc3BhcmVuY3kubGVuZ3RoO3M8YztzKyspYSs9dC50cmFuc3BhcmVuY3lbc10rXCIgXCIrdC50cmFuc3BhcmVuY3lbc10rXCIgXCI7aS5wdXNoKHtrZXk6XCJNYXNrXCIsdmFsdWU6XCJbXCIrYStcIl1cIn0pfXZvaWQgMCE9PXQuc01hc2smJmkucHVzaCh7a2V5OlwiU01hc2tcIix2YWx1ZTp0Lm9iamVjdElkKzErXCIgMCBSXCJ9KTt2YXIgdT12b2lkIDAhPT10LmZpbHRlcj9bXCIvXCIrdC5maWx0ZXJdOnZvaWQgMDtpZihyKHtkYXRhOnQuZGF0YSxhZGRpdGlvbmFsS2V5VmFsdWVzOmksYWxyZWFkeUFwcGxpZWRGaWx0ZXJzOnUsb2JqZWN0SWQ6dC5vYmplY3RJZH0pLGUoXCJlbmRvYmpcIiksXCJzTWFza1wiaW4gdCYmdm9pZCAwIT09dC5zTWFzayl7Y29uc3QgZT10LnNNYXNrQml0c1BlckNvbXBvbmVudD8/dC5iaXRzUGVyQ29tcG9uZW50LHI9e3dpZHRoOnQud2lkdGgsaGVpZ2h0OnQuaGVpZ2h0LGNvbG9yU3BhY2U6XCJEZXZpY2VHcmF5XCIsYml0c1BlckNvbXBvbmVudDplLGRhdGE6dC5zTWFza307XCJmaWx0ZXJcImluIHQmJihyLmRlY29kZVBhcmFtZXRlcnM9YC9QcmVkaWN0b3IgJHt0LnByZWRpY3Rvcn0gL0NvbG9ycyAxIC9CaXRzUGVyQ29tcG9uZW50ICR7ZX0gL0NvbHVtbnMgJHt0LndpZHRofWAsci5maWx0ZXI9dC5maWx0ZXIpLG8uY2FsbCh0aGlzLHIpfWlmKHQuY29sb3JTcGFjZT09PWIuSU5ERVhFRCl7dmFyIGw9dGhpcy5pbnRlcm5hbC5uZXdPYmplY3QoKTtyKHtkYXRhOlMobmV3IFVpbnQ4QXJyYXkodC5wYWxldHRlKSksb2JqZWN0SWQ6bH0pLGUoXCJlbmRvYmpcIil9fSxzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pbnRlcm5hbC5jb2xsZWN0aW9uc1tlK1wiaW1hZ2VzXCJdO2Zvcih2YXIgciBpbiB0KW8uY2FsbCh0aGlzLHRbcl0pfSxjPWZ1bmN0aW9uKCl7dmFyIHQscj10aGlzLmludGVybmFsLmNvbGxlY3Rpb25zW2UrXCJpbWFnZXNcIl0sbj10aGlzLmludGVybmFsLndyaXRlO2Zvcih2YXIgaSBpbiByKW4oXCIvSVwiKyh0PXJbaV0pLmluZGV4LHQub2JqZWN0SWQsXCIwXCIsXCJSXCIpfSx1PWZ1bmN0aW9uKCl7dGhpcy5pbnRlcm5hbC5jb2xsZWN0aW9uc1tlK1wiaW1hZ2VzXCJdfHwodGhpcy5pbnRlcm5hbC5jb2xsZWN0aW9uc1tlK1wiaW1hZ2VzXCJdPXt9LHRoaXMuaW50ZXJuYWwuZXZlbnRzLnN1YnNjcmliZShcInB1dFJlc291cmNlc1wiLHMpLHRoaXMuaW50ZXJuYWwuZXZlbnRzLnN1YnNjcmliZShcInB1dFhvYmplY3REaWN0XCIsYykpfSxsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pbnRlcm5hbC5jb2xsZWN0aW9uc1tlK1wiaW1hZ2VzXCJdO3JldHVybiB1LmNhbGwodGhpcyksdH0saD1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLmludGVybmFsLmNvbGxlY3Rpb25zW2UrXCJpbWFnZXNcIl0pLmxlbmd0aH0sZj1mdW5jdGlvbihlKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0W1wicHJvY2Vzc1wiK2UudG9VcHBlckNhc2UoKV19LGQ9ZnVuY3Rpb24odCl7cmV0dXJuXCJvYmplY3RcIj09dHlwZW9mIHQmJjE9PT10Lm5vZGVUeXBlfSxwPWZ1bmN0aW9uKGUscil7aWYoXCJJTUdcIj09PWUubm9kZU5hbWUmJmUuaGFzQXR0cmlidXRlKFwic3JjXCIpKXt2YXIgbj1cIlwiK2UuZ2V0QXR0cmlidXRlKFwic3JjXCIpO2lmKDA9PT1uLmluZGV4T2YoXCJkYXRhOmltYWdlL1wiKSlyZXR1cm4gaSh1bmVzY2FwZShuKS5zcGxpdChcImJhc2U2NCxcIikucG9wKCkpO3ZhciBhPXQubG9hZEZpbGUobiwhMCk7aWYodm9pZCAwIT09YSlyZXR1cm4gYX1pZihcIkNBTlZBU1wiPT09ZS5ub2RlTmFtZSl7aWYoMD09PWUud2lkdGh8fDA9PT1lLmhlaWdodCl0aHJvdyBuZXcgRXJyb3IoXCJHaXZlbiBjYW52YXMgbXVzdCBoYXZlIGRhdGEuIENhbnZhcyB3aWR0aDogXCIrZS53aWR0aCtcIiwgaGVpZ2h0OiBcIitlLmhlaWdodCk7dmFyIG87c3dpdGNoKHIpe2Nhc2VcIlBOR1wiOm89XCJpbWFnZS9wbmdcIjticmVhaztjYXNlXCJXRUJQXCI6bz1cImltYWdlL3dlYnBcIjticmVhaztkZWZhdWx0Om89XCJpbWFnZS9qcGVnXCJ9cmV0dXJuIGkoZS50b0RhdGFVUkwobywxKS5zcGxpdChcImJhc2U2NCxcIikucG9wKCkpfX0sZz1mdW5jdGlvbih0KXt2YXIgcj10aGlzLmludGVybmFsLmNvbGxlY3Rpb25zW2UrXCJpbWFnZXNcIl07aWYocilmb3IodmFyIG4gaW4gcilpZih0PT09cltuXS5hbGlhcylyZXR1cm4gcltuXX0sbT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHR8fGV8fCh0PS05NixlPS05NiksdDwwJiYodD0tMSpyLndpZHRoKjcyL3QvdGhpcy5pbnRlcm5hbC5zY2FsZUZhY3RvciksZTwwJiYoZT0tMSpyLmhlaWdodCo3Mi9lL3RoaXMuaW50ZXJuYWwuc2NhbGVGYWN0b3IpLDA9PT10JiYodD1lKnIud2lkdGgvci5oZWlnaHQpLDA9PT1lJiYoZT10KnIuaGVpZ2h0L3Iud2lkdGgpLFt0LGVdfSx2PWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt2YXIgbz1tLmNhbGwodGhpcyxyLG4saSkscz10aGlzLmludGVybmFsLmdldENvb3JkaW5hdGVTdHJpbmcsYz10aGlzLmludGVybmFsLmdldFZlcnRpY2FsQ29vcmRpbmF0ZVN0cmluZyx1PWwuY2FsbCh0aGlzKTtpZihyPW9bMF0sbj1vWzFdLHVbaS5pbmRleF09aSxhKXthKj1NYXRoLlBJLzE4MDt2YXIgaD1NYXRoLmNvcyhhKSxmPU1hdGguc2luKGEpLGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9GaXhlZCg0KX0scD1bZChoKSxkKGYpLGQoLTEqZiksZChoKSwwLDAsXCJjbVwiXX10aGlzLmludGVybmFsLndyaXRlKFwicVwiKSxhPyh0aGlzLmludGVybmFsLndyaXRlKFsxLFwiMFwiLFwiMFwiLDEscyh0KSxjKGUrbiksXCJjbVwiXS5qb2luKFwiIFwiKSksdGhpcy5pbnRlcm5hbC53cml0ZShwLmpvaW4oXCIgXCIpKSx0aGlzLmludGVybmFsLndyaXRlKFtzKHIpLFwiMFwiLFwiMFwiLHMobiksXCIwXCIsXCIwXCIsXCJjbVwiXS5qb2luKFwiIFwiKSkpOnRoaXMuaW50ZXJuYWwud3JpdGUoW3MociksXCIwXCIsXCIwXCIscyhuKSxzKHQpLGMoZStuKSxcImNtXCJdLmpvaW4oXCIgXCIpKSx0aGlzLmlzQWR2YW5jZWRBUEkoKSYmdGhpcy5pbnRlcm5hbC53cml0ZShbMSwwLDAsLTEsMCwwLFwiY21cIl0uam9pbihcIiBcIikpLHRoaXMuaW50ZXJuYWwud3JpdGUoXCIvSVwiK2kuaW5kZXgrXCIgRG9cIiksdGhpcy5pbnRlcm5hbC53cml0ZShcIlFcIil9LGI9dC5jb2xvcl9zcGFjZXM9e0RFVklDRV9SR0I6XCJEZXZpY2VSR0JcIixERVZJQ0VfR1JBWTpcIkRldmljZUdyYXlcIixERVZJQ0VfQ01ZSzpcIkRldmljZUNNWUtcIixDQUxfR1JFWTpcIkNhbEdyYXlcIixDQUxfUkdCOlwiQ2FsUkdCXCIsTEFCOlwiTGFiXCIsSUNDX0JBU0VEOlwiSUNDQmFzZWRcIixJTkRFWEVEOlwiSW5kZXhlZFwiLFBBVFRFUk46XCJQYXR0ZXJuXCIsU0VQQVJBVElPTjpcIlNlcGFyYXRpb25cIixERVZJQ0VfTjpcIkRldmljZU5cIn07dC5kZWNvZGU9e0RDVF9ERUNPREU6XCJEQ1REZWNvZGVcIixGTEFURV9ERUNPREU6XCJGbGF0ZURlY29kZVwiLExaV19ERUNPREU6XCJMWldEZWNvZGVcIixKUFhfREVDT0RFOlwiSlBYRGVjb2RlXCIsSkJJRzJfREVDT0RFOlwiSkJJRzJEZWNvZGVcIixBU0NJSTg1X0RFQ09ERTpcIkFTQ0lJODVEZWNvZGVcIixBU0NJSV9IRVhfREVDT0RFOlwiQVNDSUlIZXhEZWNvZGVcIixSVU5fTEVOR1RIX0RFQ09ERTpcIlJ1bkxlbmd0aERlY29kZVwiLENDSVRUX0ZBWF9ERUNPREU6XCJDQ0lUVEZheERlY29kZVwifTt2YXIgeT10LmltYWdlX2NvbXByZXNzaW9uPXtOT05FOlwiTk9ORVwiLEZBU1Q6XCJGQVNUXCIsTUVESVVNOlwiTUVESVVNXCIsU0xPVzpcIlNMT1dcIn0sdz10Ll9fYWRkaW1hZ2VfXy5zSGFzaENvZGU9ZnVuY3Rpb24odCl7dmFyIGUscixuPTA7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQpZm9yKHI9dC5sZW5ndGgsZT0wO2U8cjtlKyspbj0objw8NSktbit0LmNoYXJDb2RlQXQoZSksbnw9MDtlbHNlIGlmKHgodCkpZm9yKHI9dC5ieXRlTGVuZ3RoLzIsZT0wO2U8cjtlKyspbj0objw8NSktbit0W2VdLG58PTA7cmV0dXJuIG59LE49dC5fX2FkZGltYWdlX18udmFsaWRhdGVTdHJpbmdBc0Jhc2U2ND1mdW5jdGlvbih0KXsodD10fHxcIlwiKS50b1N0cmluZygpLnRyaW0oKTt2YXIgZT0hMDtyZXR1cm4gMD09PXQubGVuZ3RoJiYoZT0hMSksdC5sZW5ndGglNCE9MCYmKGU9ITEpLCExPT09L15bQS1aYS16MC05Ky9dKyQvLnRlc3QodC5zdWJzdHIoMCx0Lmxlbmd0aC0yKSkmJihlPSExKSwhMT09PS9eW0EtWmEtejAtOS9dW0EtWmEtejAtOSsvXXxbQS1aYS16MC05Ky9dPXw9PSQvLnRlc3QodC5zdWJzdHIoLTIpKSYmKGU9ITEpLGV9LEw9dC5fX2FkZGltYWdlX18uZXh0cmFjdEltYWdlRnJvbURhdGFVcmw9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gbnVsbDtpZighKHQ9dC50cmltKCkpLnN0YXJ0c1dpdGgoXCJkYXRhOlwiKSlyZXR1cm4gbnVsbDtjb25zdCBlPXQuaW5kZXhPZihcIixcIik7cmV0dXJuIGU8MD9udWxsOnQuc3Vic3RyaW5nKDAsZSkudHJpbSgpLmVuZHNXaXRoKFwiYmFzZTY0XCIpP3Quc3Vic3RyaW5nKGUrMSk6bnVsbH07dC5fX2FkZGltYWdlX18uaXNBcnJheUJ1ZmZlcj1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfTt2YXIgeD10Ll9fYWRkaW1hZ2VfXy5pc0FycmF5QnVmZmVyVmlldz1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEludDhBcnJheXx8dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8dCBpbnN0YW5jZW9mIEludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8dCBpbnN0YW5jZW9mIEludDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheX0sQT10Ll9fYWRkaW1hZ2VfXy5iaW5hcnlTdHJpbmdUb1VpbnQ4QXJyYXk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9bmV3IFVpbnQ4QXJyYXkoZSksbj0wO248ZTtuKyspcltuXT10LmNoYXJDb2RlQXQobik7cmV0dXJuIHJ9LFM9dC5fX2FkZGltYWdlX18uYXJyYXlCdWZmZXJUb0JpbmFyeVN0cmluZz1mdW5jdGlvbih0KXtmb3IodmFyIGU9XCJcIixyPXgodCk/dDpuZXcgVWludDhBcnJheSh0KSxuPTA7bjxyLmxlbmd0aDtuKz04MTkyKWUrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxyLnN1YmFycmF5KG4sbis4MTkyKSk7cmV0dXJuIGV9O3QuYWRkSW1hZ2U9ZnVuY3Rpb24oKXt2YXIgdCxlLG4saSxhLG8scyxjLGw7aWYoXCJudW1iZXJcIj09dHlwZW9mIGFyZ3VtZW50c1sxXT8oZT1yLG49YXJndW1lbnRzWzFdLGk9YXJndW1lbnRzWzJdLGE9YXJndW1lbnRzWzNdLG89YXJndW1lbnRzWzRdLHM9YXJndW1lbnRzWzVdLGM9YXJndW1lbnRzWzZdLGw9YXJndW1lbnRzWzddKTooZT1hcmd1bWVudHNbMV0sbj1hcmd1bWVudHNbMl0saT1hcmd1bWVudHNbM10sYT1hcmd1bWVudHNbNF0sbz1hcmd1bWVudHNbNV0scz1hcmd1bWVudHNbNl0sYz1hcmd1bWVudHNbN10sbD1hcmd1bWVudHNbOF0pLFwib2JqZWN0XCI9PXR5cGVvZih0PWFyZ3VtZW50c1swXSkmJiFkKHQpJiZcImltYWdlRGF0YVwiaW4gdCl7dmFyIGg9dDt0PWguaW1hZ2VEYXRhLGU9aC5mb3JtYXR8fGV8fHIsbj1oLnh8fG58fDAsaT1oLnl8fGl8fDAsYT1oLnd8fGgud2lkdGh8fGEsbz1oLmh8fGguaGVpZ2h0fHxvLHM9aC5hbGlhc3x8cyxjPWguY29tcHJlc3Npb258fGMsbD1oLnJvdGF0aW9ufHxoLmFuZ2xlfHxsfXZhciBmPXRoaXMuaW50ZXJuYWwuZ2V0RmlsdGVycygpO2lmKHZvaWQgMD09PWMmJi0xIT09Zi5pbmRleE9mKFwiRmxhdGVFbmNvZGVcIikmJihjPVwiU0xPV1wiKSxpc05hTihuKXx8aXNOYU4oaSkpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBjb29yZGluYXRlcyBwYXNzZWQgdG8ganNQREYuYWRkSW1hZ2VcIik7dS5jYWxsKHRoaXMpO3ZhciBwPV8uY2FsbCh0aGlzLHQsZSxzLGMpO3JldHVybiB2LmNhbGwodGhpcyxuLGksYSxvLHAsbCksdGhpc307dmFyIF89ZnVuY3Rpb24oZSxuLGksbyl7dmFyIHMsYyx1O2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiZhKGUpPT09cil7ZT11bmVzY2FwZShlKTt2YXIgbD1QKGUsITEpOyhcIlwiIT09bHx8dm9pZCAwIT09KGw9dC5sb2FkRmlsZShlLCEwKSkpJiYoZT1sKX1pZihkKGUpJiYoZT1wKGUsbikpLG49YShlLG4pLCFmKG4pKXRocm93IG5ldyBFcnJvcihcImFkZEltYWdlIGRvZXMgbm90IHN1cHBvcnQgZmlsZXMgb2YgdHlwZSAnXCIrbitcIicsIHBsZWFzZSBlbnN1cmUgdGhhdCBhIHBsdWdpbiBmb3IgJ1wiK24rXCInIHN1cHBvcnQgaXMgYWRkZWQuXCIpO2lmKChudWxsPT0odT1pKXx8MD09PXUubGVuZ3RoKSYmKGk9ZnVuY3Rpb24odCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHR8fHgodCk/dyh0KTp4KHQuZGF0YSk/dyh0LmRhdGEpOm51bGx9KGUpKSwocz1nLmNhbGwodGhpcyxpKSl8fChlIGluc3RhbmNlb2YgVWludDhBcnJheXx8XCJSR0JBXCI9PT1ufHwoYz1lLGU9QShlKSkscz10aGlzW1wicHJvY2Vzc1wiK24udG9VcHBlckNhc2UoKV0oZSxoLmNhbGwodGhpcyksaSxmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJzdHJpbmdcIj09dHlwZW9mIGUmJihlPWUudG9VcHBlckNhc2UoKSksZSBpbiB0LmltYWdlX2NvbXByZXNzaW9uP2U6eS5OT05FfShvKSxjKSksIXMpdGhyb3cgbmV3IEVycm9yKFwiQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCB3aGlsc3QgcHJvY2Vzc2luZyB0aGUgaW1hZ2UuXCIpO3JldHVybiBzfSxQPXQuX19hZGRpbWFnZV9fLmNvbnZlcnRCYXNlNjRUb0JpbmFyeVN0cmluZz1mdW5jdGlvbih0LGUpe2U9XCJib29sZWFuXCIhPXR5cGVvZiBlfHxlO3ZhciByLG49XCJcIjtpZihcInN0cmluZ1wiPT10eXBlb2YgdCl7cj1MKHQpPz90O3RyeXtuPWkocil9Y2F0Y2goYSl7aWYoZSl0aHJvdyBOKHIpP25ldyBFcnJvcihcImF0b2ItRXJyb3IgaW4ganNQREYuY29udmVydEJhc2U2NFRvQmluYXJ5U3RyaW5nIFwiK2EubWVzc2FnZSk6bmV3IEVycm9yKFwiU3VwcGxpZWQgRGF0YSBpcyBub3QgYSB2YWxpZCBiYXNlNjQtU3RyaW5nIGpzUERGLmNvbnZlcnRCYXNlNjRUb0JpbmFyeVN0cmluZyBcIil9fXJldHVybiBufTt0LmdldEltYWdlUHJvcGVydGllcz1mdW5jdGlvbihlKXt2YXIgbixpLG89XCJcIjtpZihkKGUpJiYoZT1wKGUpKSxcInN0cmluZ1wiPT10eXBlb2YgZSYmYShlKT09PXImJihcIlwiPT09KG89UChlLCExKSkmJihvPXQubG9hZEZpbGUoZSl8fFwiXCIpLGU9byksaT1hKGUpLCFmKGkpKXRocm93IG5ldyBFcnJvcihcImFkZEltYWdlIGRvZXMgbm90IHN1cHBvcnQgZmlsZXMgb2YgdHlwZSAnXCIraStcIicsIHBsZWFzZSBlbnN1cmUgdGhhdCBhIHBsdWdpbiBmb3IgJ1wiK2krXCInIHN1cHBvcnQgaXMgYWRkZWQuXCIpO2lmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fHwoZT1BKGUpKSwhKG49dGhpc1tcInByb2Nlc3NcIitpLnRvVXBwZXJDYXNlKCldKGUpKSl0aHJvdyBuZXcgRXJyb3IoXCJBbiB1bmtub3duIGVycm9yIG9jY3VycmVkIHdoaWxzdCBwcm9jZXNzaW5nIHRoZSBpbWFnZVwiKTtyZXR1cm4gbi5maWxlVHlwZT1pLG59fShDLkFQSSksXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQgU3RldmVuIFNwdW5naW4gKFR3ZWx2ZVRvbmUgTExDKSAgc3RldmVuQHR3ZWx2ZXRvbmUudHZcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2VcbiAqL1xuZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24odCl7aWYodm9pZCAwIT09dCYmXCJcIiE9dClyZXR1cm4hMH07Qy5BUEkuZXZlbnRzLnB1c2goW1wiYWRkUGFnZVwiLGZ1bmN0aW9uKHQpe3RoaXMuaW50ZXJuYWwuZ2V0UGFnZUluZm8odC5wYWdlTnVtYmVyKS5wYWdlQ29udGV4dC5hbm5vdGF0aW9ucz1bXX1dKSx0LmV2ZW50cy5wdXNoKFtcInB1dFBhZ2VcIixmdW5jdGlvbih0KXtmb3IodmFyIHIsbixpLGE9dGhpcy5pbnRlcm5hbC5nZXRDb29yZGluYXRlU3RyaW5nLG89dGhpcy5pbnRlcm5hbC5nZXRWZXJ0aWNhbENvb3JkaW5hdGVTdHJpbmcscz10aGlzLmludGVybmFsLmdldFBhZ2VJbmZvQnlPYmpJZCh0Lm9iaklkKSxjPXQucGFnZUNvbnRleHQuYW5ub3RhdGlvbnMsdT0hMSxsPTA7bDxjLmxlbmd0aCYmIXU7bCsrKXN3aXRjaCgocj1jW2xdKS50eXBlKXtjYXNlXCJsaW5rXCI6KGUoci5vcHRpb25zLnVybCl8fGUoci5vcHRpb25zLnBhZ2VOdW1iZXIpKSYmKHU9ITApO2JyZWFrO2Nhc2VcInJlZmVyZW5jZVwiOmNhc2VcInRleHRcIjpjYXNlXCJmcmVldGV4dFwiOnU9ITB9aWYoMCE9dSl7dGhpcy5pbnRlcm5hbC53cml0ZShcIi9Bbm5vdHMgW1wiKTtmb3IodmFyIGg9MDtoPGMubGVuZ3RoO2grKyl7cj1jW2hdO3ZhciBmPXRoaXMuaW50ZXJuYWwucGRmRXNjYXBlLGQ9dGhpcy5pbnRlcm5hbC5nZXRFbmNyeXB0b3IodC5vYmpJZCk7c3dpdGNoKHIudHlwZSl7Y2FzZVwicmVmZXJlbmNlXCI6dGhpcy5pbnRlcm5hbC53cml0ZShcIiBcIityLm9iamVjdC5vYmpJZCtcIiAwIFIgXCIpO2JyZWFrO2Nhc2VcInRleHRcIjp2YXIgcD10aGlzLmludGVybmFsLm5ld0FkZGl0aW9uYWxPYmplY3QoKSxnPXRoaXMuaW50ZXJuYWwubmV3QWRkaXRpb25hbE9iamVjdCgpLG09dGhpcy5pbnRlcm5hbC5nZXRFbmNyeXB0b3IocC5vYmpJZCksdj1yLnRpdGxlfHxcIk5vdGVcIjtpPVwiPDwvVHlwZSAvQW5ub3QgL1N1YnR5cGUgL1RleHQgXCIrKG49XCIvUmVjdCBbXCIrYShyLmJvdW5kcy54KStcIiBcIitvKHIuYm91bmRzLnkrci5ib3VuZHMuaCkrXCIgXCIrYShyLmJvdW5kcy54K3IuYm91bmRzLncpK1wiIFwiK28oci5ib3VuZHMueSkrXCJdIFwiKStcIi9Db250ZW50cyAoXCIrZihtKHIuY29udGVudHMpKStcIilcIixpKz1cIiAvUG9wdXAgXCIrZy5vYmpJZCtcIiAwIFJcIixpKz1cIiAvUCBcIitzLm9iaklkK1wiIDAgUlwiLGkrPVwiIC9UIChcIitmKG0odikpK1wiKSA+PlwiLHAuY29udGVudD1pO3ZhciBiPXAub2JqSWQrXCIgMCBSXCI7aT1cIjw8L1R5cGUgL0Fubm90IC9TdWJ0eXBlIC9Qb3B1cCBcIisobj1cIi9SZWN0IFtcIithKHIuYm91bmRzLngrMzApK1wiIFwiK28oci5ib3VuZHMueStyLmJvdW5kcy5oKStcIiBcIithKHIuYm91bmRzLngrci5ib3VuZHMudyszMCkrXCIgXCIrbyhyLmJvdW5kcy55KStcIl0gXCIpK1wiIC9QYXJlbnQgXCIrYixyLm9wZW4mJihpKz1cIiAvT3BlbiB0cnVlXCIpLGkrPVwiID4+XCIsZy5jb250ZW50PWksdGhpcy5pbnRlcm5hbC53cml0ZShwLm9iaklkLFwiMCBSXCIsZy5vYmpJZCxcIjAgUlwiKTticmVhaztjYXNlXCJmcmVldGV4dFwiOm49XCIvUmVjdCBbXCIrYShyLmJvdW5kcy54KStcIiBcIitvKHIuYm91bmRzLnkpK1wiIFwiK2Eoci5ib3VuZHMueCtyLmJvdW5kcy53KStcIiBcIitvKHIuYm91bmRzLnkrci5ib3VuZHMuaCkrXCJdIFwiO3ZhciB5PVwiZm9udDogSGVsdmV0aWNhLHNhbnMtc2VyaWYgMTIuMHB0OyB0ZXh0LWFsaWduOmxlZnQ7IGNvbG9yOiNcIisoci5jb2xvcnx8XCIjMDAwMDAwXCIpO2k9XCI8PC9UeXBlIC9Bbm5vdCAvU3VidHlwZSAvRnJlZVRleHQgXCIrbitcIi9Db250ZW50cyAoXCIrZihkKHIuY29udGVudHMpKStcIilcIixpKz1cIiAvRFMoXCIrZihkKHkpKStcIilcIixpKz1cIiAvQm9yZGVyIFswIDAgMF1cIixpKz1cIiA+PlwiLHRoaXMuaW50ZXJuYWwud3JpdGUoaSk7YnJlYWs7Y2FzZVwibGlua1wiOmlmKHIub3B0aW9ucy5uYW1lKXt2YXIgdz10aGlzLmFubm90YXRpb25zLl9uYW1lTWFwW3Iub3B0aW9ucy5uYW1lXTtyLm9wdGlvbnMucGFnZU51bWJlcj13LnBhZ2Usci5vcHRpb25zLnRvcD13Lnl9ZWxzZSByLm9wdGlvbnMudG9wfHwoci5vcHRpb25zLnRvcD0wKTtpZihuPVwiL1JlY3QgW1wiK3IuZmluYWxCb3VuZHMueCtcIiBcIityLmZpbmFsQm91bmRzLnkrXCIgXCIrci5maW5hbEJvdW5kcy53K1wiIFwiK3IuZmluYWxCb3VuZHMuaCtcIl0gXCIsaT1cIlwiLHIub3B0aW9ucy51cmwpaT1cIjw8L1R5cGUgL0Fubm90IC9TdWJ0eXBlIC9MaW5rIFwiK24rXCIvQm9yZGVyIFswIDAgMF0gL0EgPDwvUyAvVVJJIC9VUkkgKFwiK2YoZChyLm9wdGlvbnMudXJsKSkrXCIpID4+XCI7ZWxzZSBpZihyLm9wdGlvbnMucGFnZU51bWJlcilzd2l0Y2goaT1cIjw8L1R5cGUgL0Fubm90IC9TdWJ0eXBlIC9MaW5rIFwiK24rXCIvQm9yZGVyIFswIDAgMF0gL0Rlc3QgW1wiK3RoaXMuaW50ZXJuYWwuZ2V0UGFnZUluZm8oci5vcHRpb25zLnBhZ2VOdW1iZXIpLm9iaklkK1wiIDAgUlwiLHIub3B0aW9ucy5tYWdGYWN0b3I9ci5vcHRpb25zLm1hZ0ZhY3Rvcnx8XCJYWVpcIixyLm9wdGlvbnMubWFnRmFjdG9yKXtjYXNlXCJGaXRcIjppKz1cIiAvRml0XVwiO2JyZWFrO2Nhc2VcIkZpdEhcIjppKz1cIiAvRml0SCBcIityLm9wdGlvbnMudG9wK1wiXVwiO2JyZWFrO2Nhc2VcIkZpdFZcIjpyLm9wdGlvbnMubGVmdD1yLm9wdGlvbnMubGVmdHx8MCxpKz1cIiAvRml0ViBcIityLm9wdGlvbnMubGVmdCtcIl1cIjticmVhaztkZWZhdWx0OnZhciBOPW8oci5vcHRpb25zLnRvcCk7ci5vcHRpb25zLmxlZnQ9ci5vcHRpb25zLmxlZnR8fDAsdm9pZCAwPT09ci5vcHRpb25zLnpvb20mJihyLm9wdGlvbnMuem9vbT0wKSxpKz1cIiAvWFlaIFwiK3Iub3B0aW9ucy5sZWZ0K1wiIFwiK04rXCIgXCIrci5vcHRpb25zLnpvb20rXCJdXCJ9XCJcIiE9aSYmKGkrPVwiID4+XCIsdGhpcy5pbnRlcm5hbC53cml0ZShpKSl9fXRoaXMuaW50ZXJuYWwud3JpdGUoXCJdXCIpfX1dKSx0LmNyZWF0ZUFubm90YXRpb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pbnRlcm5hbC5nZXRDdXJyZW50UGFnZUluZm8oKTtzd2l0Y2godC50eXBlKXtjYXNlXCJsaW5rXCI6dGhpcy5saW5rKHQuYm91bmRzLngsdC5ib3VuZHMueSx0LmJvdW5kcy53LHQuYm91bmRzLmgsdCk7YnJlYWs7Y2FzZVwidGV4dFwiOmNhc2VcImZyZWV0ZXh0XCI6ZS5wYWdlQ29udGV4dC5hbm5vdGF0aW9ucy5wdXNoKHQpfX0sdC5saW5rPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dGhpcy5pbnRlcm5hbC5nZXRDdXJyZW50UGFnZUluZm8oKSxvPXRoaXMuaW50ZXJuYWwuZ2V0Q29vcmRpbmF0ZVN0cmluZyxzPXRoaXMuaW50ZXJuYWwuZ2V0VmVydGljYWxDb29yZGluYXRlU3RyaW5nO2EucGFnZUNvbnRleHQuYW5ub3RhdGlvbnMucHVzaCh7ZmluYWxCb3VuZHM6e3g6byh0KSx5OnMoZSksdzpvKHQrciksaDpzKGUrbil9LG9wdGlvbnM6aSx0eXBlOlwibGlua1wifSl9LHQudGV4dFdpdGhMaW5rPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEsbz10aGlzLmdldFRleHRXaWR0aCh0KSxzPXRoaXMuaW50ZXJuYWwuZ2V0TGluZUhlaWdodCgpL3RoaXMuaW50ZXJuYWwuc2NhbGVGYWN0b3I7aWYodm9pZCAwIT09bi5tYXhXaWR0aCl7dmFye21heFdpZHRoOmN9PW47YT1jO3ZhciB1PXRoaXMuc3BsaXRUZXh0VG9TaXplKHQsYSkubGVuZ3RoO2k9TWF0aC5jZWlsKHMqdSl9ZWxzZSBhPW8saT1zO3JldHVybiB0aGlzLnRleHQodCxlLHIsbikscis9LjIqcyxcImNlbnRlclwiPT09bi5hbGlnbiYmKGUtPW8vMiksXCJyaWdodFwiPT09bi5hbGlnbiYmKGUtPW8pLHRoaXMubGluayhlLHItcyxhLGksbiksb30sdC5nZXRUZXh0V2lkdGg9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pbnRlcm5hbC5nZXRGb250U2l6ZSgpO3JldHVybiB0aGlzLmdldFN0cmluZ1VuaXRXaWR0aCh0KSplL3RoaXMuaW50ZXJuYWwuc2NhbGVGYWN0b3J9fShDLkFQSSksXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTcgQXJhcyBBYmJhc2lcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2VcbiAqL1xuZnVuY3Rpb24odCl7dmFyIGU9ezE1Njk6WzY1MTUyXSwxNTcwOls2NTE1Myw2NTE1NF0sMTU3MTpbNjUxNTUsNjUxNTZdLDE1NzI6WzY1MTU3LDY1MTU4XSwxNTczOls2NTE1OSw2NTE2MF0sMTU3NDpbNjUxNjEsNjUxNjIsNjUxNjMsNjUxNjRdLDE1NzU6WzY1MTY1LDY1MTY2XSwxNTc2Ols2NTE2Nyw2NTE2OCw2NTE2OSw2NTE3MF0sMTU3NzpbNjUxNzEsNjUxNzJdLDE1Nzg6WzY1MTczLDY1MTc0LDY1MTc1LDY1MTc2XSwxNTc5Ols2NTE3Nyw2NTE3OCw2NTE3OSw2NTE4MF0sMTU4MDpbNjUxODEsNjUxODIsNjUxODMsNjUxODRdLDE1ODE6WzY1MTg1LDY1MTg2LDY1MTg3LDY1MTg4XSwxNTgyOls2NTE4OSw2NTE5MCw2NTE5MSw2NTE5Ml0sMTU4MzpbNjUxOTMsNjUxOTRdLDE1ODQ6WzY1MTk1LDY1MTk2XSwxNTg1Ols2NTE5Nyw2NTE5OF0sMTU4NjpbNjUxOTksNjUyMDBdLDE1ODc6WzY1MjAxLDY1MjAyLDY1MjAzLDY1MjA0XSwxNTg4Ols2NTIwNSw2NTIwNiw2NTIwNyw2NTIwOF0sMTU4OTpbNjUyMDksNjUyMTAsNjUyMTEsNjUyMTJdLDE1OTA6WzY1MjEzLDY1MjE0LDY1MjE1LDY1MjE2XSwxNTkxOls2NTIxNyw2NTIxOCw2NTIxOSw2NTIyMF0sMTU5MjpbNjUyMjEsNjUyMjIsNjUyMjMsNjUyMjRdLDE1OTM6WzY1MjI1LDY1MjI2LDY1MjI3LDY1MjI4XSwxNTk0Ols2NTIyOSw2NTIzMCw2NTIzMSw2NTIzMl0sMTYwMTpbNjUyMzMsNjUyMzQsNjUyMzUsNjUyMzZdLDE2MDI6WzY1MjM3LDY1MjM4LDY1MjM5LDY1MjQwXSwxNjAzOls2NTI0MSw2NTI0Miw2NTI0Myw2NTI0NF0sMTYwNDpbNjUyNDUsNjUyNDYsNjUyNDcsNjUyNDhdLDE2MDU6WzY1MjQ5LDY1MjUwLDY1MjUxLDY1MjUyXSwxNjA2Ols2NTI1Myw2NTI1NCw2NTI1NSw2NTI1Nl0sMTYwNzpbNjUyNTcsNjUyNTgsNjUyNTksNjUyNjBdLDE2MDg6WzY1MjYxLDY1MjYyXSwxNjA5Ols2NTI2Myw2NTI2NCw2NDQ4OCw2NDQ4OV0sMTYxMDpbNjUyNjUsNjUyNjYsNjUyNjcsNjUyNjhdLDE2NDk6WzY0MzM2LDY0MzM3XSwxNjU1Ols2NDQ3N10sMTY1NzpbNjQzNTgsNjQzNTksNjQzNjAsNjQzNjFdLDE2NTg6WzY0MzUwLDY0MzUxLDY0MzUyLDY0MzUzXSwxNjU5Ols2NDMzOCw2NDMzOSw2NDM0MCw2NDM0MV0sMTY2MjpbNjQzNDIsNjQzNDMsNjQzNDQsNjQzNDVdLDE2NjM6WzY0MzU0LDY0MzU1LDY0MzU2LDY0MzU3XSwxNjY0Ols2NDM0Niw2NDM0Nyw2NDM0OCw2NDM0OV0sMTY2NzpbNjQzNzQsNjQzNzUsNjQzNzYsNjQzNzddLDE2Njg6WzY0MzcwLDY0MzcxLDY0MzcyLDY0MzczXSwxNjcwOls2NDM3OCw2NDM3OSw2NDM4MCw2NDM4MV0sMTY3MTpbNjQzODIsNjQzODMsNjQzODQsNjQzODVdLDE2NzI6WzY0MzkyLDY0MzkzXSwxNjc2Ols2NDM4OCw2NDM4OV0sMTY3NzpbNjQzODYsNjQzODddLDE2Nzg6WzY0MzkwLDY0MzkxXSwxNjgxOls2NDM5Niw2NDM5N10sMTY4ODpbNjQzOTQsNjQzOTVdLDE3MDA6WzY0MzYyLDY0MzYzLDY0MzY0LDY0MzY1XSwxNzAyOls2NDM2Niw2NDM2Nyw2NDM2OCw2NDM2OV0sMTcwNTpbNjQzOTgsNjQzOTksNjQ0MDAsNjQ0MDFdLDE3MDk6WzY0NDY3LDY0NDY4LDY0NDY5LDY0NDcwXSwxNzExOls2NDQwMiw2NDQwMyw2NDQwNCw2NDQwNV0sMTcxMzpbNjQ0MTAsNjQ0MTEsNjQ0MTIsNjQ0MTNdLDE3MTU6WzY0NDA2LDY0NDA3LDY0NDA4LDY0NDA5XSwxNzIyOls2NDQxNCw2NDQxNV0sMTcyMzpbNjQ0MTYsNjQ0MTcsNjQ0MTgsNjQ0MTldLDE3MjY6WzY0NDI2LDY0NDI3LDY0NDI4LDY0NDI5XSwxNzI4Ols2NDQyMCw2NDQyMV0sMTcyOTpbNjQ0MjIsNjQ0MjMsNjQ0MjQsNjQ0MjVdLDE3MzM6WzY0NDgwLDY0NDgxXSwxNzM0Ols2NDQ3Myw2NDQ3NF0sMTczNTpbNjQ0NzEsNjQ0NzJdLDE3MzY6WzY0NDc1LDY0NDc2XSwxNzM3Ols2NDQ4Miw2NDQ4M10sMTczOTpbNjQ0NzgsNjQ0NzldLDE3NDA6WzY0NTA4LDY0NTA5LDY0NTEwLDY0NTExXSwxNzQ0Ols2NDQ4NCw2NDQ4NSw2NDQ4Niw2NDQ4N10sMTc0NjpbNjQ0MzAsNjQ0MzFdLDE3NDc6WzY0NDMyLDY0NDMzXX0scj17NjUyNDc6ezY1MTU0OjY1MjY5LDY1MTU2OjY1MjcxLDY1MTYwOjY1MjczLDY1MTY2OjY1Mjc1fSw2NTI0ODp7NjUxNTQ6NjUyNzAsNjUxNTY6NjUyNzIsNjUxNjA6NjUyNzQsNjUxNjY6NjUyNzZ9LDY1MTY1Ons2NTI0Nzp7NjUyNDg6ezY1MjU4OjY1MDEwfX19LDE2MTc6ezE2MTI6NjQ2MDYsMTYxMzo2NDYwNywxNjE0OjY0NjA4LDE2MTU6NjQ2MDksMTYxNjo2NDYxMH19LG49ezE2MTI6NjQ2MDYsMTYxMzo2NDYwNywxNjE0OjY0NjA4LDE2MTU6NjQ2MDksMTYxNjo2NDYxMH0saT1bMTU3MCwxNTcxLDE1NzMsMTU3NV07dC5fX2FyYWJpY1BhcnNlcl9fPXt9O3ZhciBhPXQuX19hcmFiaWNQYXJzZXJfXy5pc0luQXJhYmljU3Vic3RpdHV0aW9uQT1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09ZVt0LmNoYXJDb2RlQXQoMCldfSxvPXQuX19hcmFiaWNQYXJzZXJfXy5pc0FyYWJpY0xldHRlcj1mdW5jdGlvbih0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdCYmL15bXFx1MDYwMC1cXHUwNkZGXFx1MDc1MC1cXHUwNzdGXFx1MDhBMC1cXHUwOEZGXFx1RkI1MC1cXHVGREZGXFx1RkU3MC1cXHVGRUZGXSskLy50ZXN0KHQpfSxzPXQuX19hcmFiaWNQYXJzZXJfXy5pc0FyYWJpY0VuZExldHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbyh0KSYmYSh0KSYmZVt0LmNoYXJDb2RlQXQoMCldLmxlbmd0aDw9Mn0sYz10Ll9fYXJhYmljUGFyc2VyX18uaXNBcmFiaWNBbGZMZXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG8odCkmJmkuaW5kZXhPZih0LmNoYXJDb2RlQXQoMCkpPj0wfTt0Ll9fYXJhYmljUGFyc2VyX18uYXJhYmljTGV0dGVySGFzSXNvbGF0ZWRGb3JtPWZ1bmN0aW9uKHQpe3JldHVybiBvKHQpJiZhKHQpJiZlW3QuY2hhckNvZGVBdCgwKV0ubGVuZ3RoPj0xfTt2YXIgdT10Ll9fYXJhYmljUGFyc2VyX18uYXJhYmljTGV0dGVySGFzRmluYWxGb3JtPWZ1bmN0aW9uKHQpe3JldHVybiBvKHQpJiZhKHQpJiZlW3QuY2hhckNvZGVBdCgwKV0ubGVuZ3RoPj0yfTt0Ll9fYXJhYmljUGFyc2VyX18uYXJhYmljTGV0dGVySGFzSW5pdGlhbEZvcm09ZnVuY3Rpb24odCl7cmV0dXJuIG8odCkmJmEodCkmJmVbdC5jaGFyQ29kZUF0KDApXS5sZW5ndGg+PTN9O3ZhciBsPXQuX19hcmFiaWNQYXJzZXJfXy5hcmFiaWNMZXR0ZXJIYXNNZWRpYWxGb3JtPWZ1bmN0aW9uKHQpe3JldHVybiBvKHQpJiZhKHQpJiY0PT1lW3QuY2hhckNvZGVBdCgwKV0ubGVuZ3RofSxoPXQuX19hcmFiaWNQYXJzZXJfXy5yZXNvbHZlTGlnYXR1cmVzPWZ1bmN0aW9uKHQpe3ZhciBlPTAsbj1yLGk9XCJcIixhPTA7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrPTEpdm9pZCAwIT09blt0LmNoYXJDb2RlQXQoZSldPyhhKyssXCJudW1iZXJcIj09dHlwZW9mKG49blt0LmNoYXJDb2RlQXQoZSldKSYmKGkrPVN0cmluZy5mcm9tQ2hhckNvZGUobiksbj1yLGE9MCksZT09PXQubGVuZ3RoLTEmJihuPXIsaSs9dC5jaGFyQXQoZS0oYS0xKSksZS09YS0xLGE9MCkpOihuPXIsaSs9dC5jaGFyQXQoZS1hKSxlLT1hLGE9MCk7cmV0dXJuIGl9O3QuX19hcmFiaWNQYXJzZXJfXy5pc0FyYWJpY0RpYWNyaXRpYz1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dCYmdm9pZCAwIT09blt0LmNoYXJDb2RlQXQoMCldfTt2YXIgZj10Ll9fYXJhYmljUGFyc2VyX18uZ2V0Q29ycmVjdEZvcm09ZnVuY3Rpb24odCxlLHIpe3JldHVybiBvKHQpPyExPT09YSh0KT8tMTohdSh0KXx8IW8oZSkmJiFvKHIpfHwhbyhyKSYmcyhlKXx8cyh0KSYmIW8oZSl8fHModCkmJmMoZSl8fHModCkmJnMoZSk/MDpsKHQpJiZvKGUpJiYhcyhlKSYmbyhyKSYmdShyKT8zOnModCl8fCFvKHIpPzE6MjotMX0sZD1mdW5jdGlvbih0KXt2YXIgcj0wLG49MCxpPTAsYT1cIlwiLHM9XCJcIixjPVwiXCIsdT0odD10fHxcIlwiKS5zcGxpdChcIlxcXFxzK1wiKSxsPVtdO2ZvcihyPTA7cjx1Lmxlbmd0aDtyKz0xKXtmb3IobC5wdXNoKFwiXCIpLG49MDtuPHVbcl0ubGVuZ3RoO24rPTEpYT11W3JdW25dLHM9dVtyXVtuLTFdLGM9dVtyXVtuKzFdLG8oYSk/KGk9ZihhLHMsYyksbFtyXSs9LTEhPT1pP1N0cmluZy5mcm9tQ2hhckNvZGUoZVthLmNoYXJDb2RlQXQoMCldW2ldKTphKTpsW3JdKz1hO2xbcl09aChsW3JdKX1yZXR1cm4gbC5qb2luKFwiIFwiKX0scD10Ll9fYXJhYmljUGFyc2VyX18ucHJvY2Vzc0FyYWJpYz10LnByb2Nlc3NBcmFiaWM9ZnVuY3Rpb24oKXt2YXIgdCxlPVwic3RyaW5nXCI9PXR5cGVvZiBhcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmFyZ3VtZW50c1swXS50ZXh0LHI9W107aWYoQXJyYXkuaXNBcnJheShlKSl7dmFyIG49MDtmb3Iocj1bXSxuPTA7bjxlLmxlbmd0aDtuKz0xKUFycmF5LmlzQXJyYXkoZVtuXSk/ci5wdXNoKFtkKGVbbl1bMF0pLGVbbl1bMV0sZVtuXVsyXV0pOnIucHVzaChbZChlW25dKV0pO3Q9cn1lbHNlIHQ9ZChlKTtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgYXJndW1lbnRzWzBdP3Q6KGFyZ3VtZW50c1swXS50ZXh0PXQsYXJndW1lbnRzWzBdKX07dC5ldmVudHMucHVzaChbXCJwcmVQcm9jZXNzVGV4dFwiLHBdKX0oQy5BUEkpLEMuQVBJLmF1dG9QcmludD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4odD10fHx7fSkudmFyaWFudD10LnZhcmlhbnR8fFwibm9uLWNvbmZvcm1cIixcImphdmFzY3JpcHRcIj09PXQudmFyaWFudD90aGlzLmFkZEpTKFwicHJpbnQoe30pO1wiKToodGhpcy5pbnRlcm5hbC5ldmVudHMuc3Vic2NyaWJlKFwicG9zdFB1dFJlc291cmNlc1wiLGZ1bmN0aW9uKCl7ZT10aGlzLmludGVybmFsLm5ld09iamVjdCgpLHRoaXMuaW50ZXJuYWwub3V0KFwiPDxcIiksdGhpcy5pbnRlcm5hbC5vdXQoXCIvUyAvTmFtZWRcIiksdGhpcy5pbnRlcm5hbC5vdXQoXCIvVHlwZSAvQWN0aW9uXCIpLHRoaXMuaW50ZXJuYWwub3V0KFwiL04gL1ByaW50XCIpLHRoaXMuaW50ZXJuYWwub3V0KFwiPj5cIiksdGhpcy5pbnRlcm5hbC5vdXQoXCJlbmRvYmpcIil9KSx0aGlzLmludGVybmFsLmV2ZW50cy5zdWJzY3JpYmUoXCJwdXRDYXRhbG9nXCIsZnVuY3Rpb24oKXt0aGlzLmludGVybmFsLm91dChcIi9PcGVuQWN0aW9uIFwiK2UrXCIgMCBSXCIpfSkpLHRoaXN9LFxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IChjKSAyMDE0IFN0ZXZlbiBTcHVuZ2luIChUd2VsdmVUb25lIExMQykgIHN0ZXZlbkB0d2VsdmV0b25lLnR2XG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlXG4gKi9cbmZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKCl7dmFyIHQ9dm9pZCAwO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwicGRmXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0fSxzZXQ6ZnVuY3Rpb24oZSl7dD1lfX0pO3ZhciBlPTE1MDtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIndpZHRoXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBlfSxzZXQ6ZnVuY3Rpb24odCl7ZT1pc05hTih0KXx8ITE9PT1OdW1iZXIuaXNJbnRlZ2VyKHQpfHx0PDA/MTUwOnQsdGhpcy5nZXRDb250ZXh0KFwiMmRcIikucGFnZVdyYXBYRW5hYmxlZCYmKHRoaXMuZ2V0Q29udGV4dChcIjJkXCIpLnBhZ2VXcmFwWD1lKzEpfX0pO3ZhciByPTMwMDtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImhlaWdodFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcn0sc2V0OmZ1bmN0aW9uKHQpe3I9aXNOYU4odCl8fCExPT09TnVtYmVyLmlzSW50ZWdlcih0KXx8dDwwPzMwMDp0LHRoaXMuZ2V0Q29udGV4dChcIjJkXCIpLnBhZ2VXcmFwWUVuYWJsZWQmJih0aGlzLmdldENvbnRleHQoXCIyZFwiKS5wYWdlV3JhcFk9cisxKX19KTt2YXIgbj1bXTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImNoaWxkTm9kZXNcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59LHNldDpmdW5jdGlvbih0KXtuPXR9fSk7dmFyIGk9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJzdHlsZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sc2V0OmZ1bmN0aW9uKHQpe2k9dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInBhcmVudE5vZGVcIix7fSl9O2UucHJvdG90eXBlLmdldENvbnRleHQ9ZnVuY3Rpb24odCxlKXt2YXIgcjtpZihcIjJkXCIhPT0odD10fHxcIjJkXCIpKXJldHVybiBudWxsO2ZvcihyIGluIGUpdGhpcy5wZGYuY29udGV4dDJkLmhhc093blByb3BlcnR5KHIpJiYodGhpcy5wZGYuY29udGV4dDJkW3JdPWVbcl0pO3JldHVybiB0aGlzLnBkZi5jb250ZXh0MmQuX2NhbnZhcz10aGlzLHRoaXMucGRmLmNvbnRleHQyZH0sZS5wcm90b3R5cGUudG9EYXRhVVJMPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKFwidG9EYXRhVVJMIGlzIG5vdCBpbXBsZW1lbnRlZC5cIil9LHQuZXZlbnRzLnB1c2goW1wiaW5pdGlhbGl6ZWRcIixmdW5jdGlvbigpe3RoaXMuY2FudmFzPW5ldyBlLHRoaXMuY2FudmFzLnBkZj10aGlzfV0pfShDLkFQSSksXG4vKipcbiAqIEBsaWNlbnNlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQ29weXJpZ2h0IChjKSAyMDEzIFlvdXNzZWYgQmVkZGFkLCB5b3Vzc2VmLmJlZGRhZEBnbWFpbC5jb21cbiAqICAgICAgICAgICAgICAgMjAxMyBFZHVhcmRvIE1lbmV6ZXMgZGUgTW9yYWlzLCBlZHVhcmRvLm1vcmFpc0B1c3AuYnJcbiAqICAgICAgICAgICAgICAgMjAxMyBMZWUgRHJpc2NvbGwsIGh0dHBzOi8vZ2l0aHViLmNvbS9sc2RyaXNjb2xsXG4gKiAgICAgICAgICAgICAgIDIwMTQgSnVhbiBQYWJsbyBHYXZpcmlhLCBodHRwczovL2dpdGh1Yi5jb20vanVhbnBnYXZpcmlhXG4gKiAgICAgICAgICAgICAgIDIwMTQgSmFtZXMgSGFsbCwgamFtZXNAcGFyYWxsLmF4XG4gKiAgICAgICAgICAgICAgIDIwMTQgRGllZ28gQ2Fzb3JyYW4sIGh0dHBzOi8vZ2l0aHViLmNvbS9kaWVnb2NyXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nXG4gKiBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbiAqIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuICogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvXG4gKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG9cbiAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZVxuICogaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCxcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkRcbiAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkVcbiAqIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT05cbiAqIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTlxuICogV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG5mdW5jdGlvbih0KXt2YXIgZT17bGVmdDowLHRvcDowLGJvdHRvbTowLHJpZ2h0OjB9LHI9ITEsbj1mdW5jdGlvbigpe3ZvaWQgMD09PXRoaXMuaW50ZXJuYWwuX19jZWxsX18mJih0aGlzLmludGVybmFsLl9fY2VsbF9fPXt9LHRoaXMuaW50ZXJuYWwuX19jZWxsX18ucGFkZGluZz0zLHRoaXMuaW50ZXJuYWwuX19jZWxsX18uaGVhZGVyRnVuY3Rpb249dm9pZCAwLHRoaXMuaW50ZXJuYWwuX19jZWxsX18ubWFyZ2lucz1PYmplY3QuYXNzaWduKHt9LGUpLHRoaXMuaW50ZXJuYWwuX19jZWxsX18ubWFyZ2lucy53aWR0aD10aGlzLmdldFBhZ2VXaWR0aCgpLGkuY2FsbCh0aGlzKSl9LGk9ZnVuY3Rpb24oKXt0aGlzLmludGVybmFsLl9fY2VsbF9fLmxhc3RDZWxsPW5ldyBhLHRoaXMuaW50ZXJuYWwuX19jZWxsX18ucGFnZXM9MX0sYT1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50c1swXTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInhcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sc2V0OmZ1bmN0aW9uKGUpe3Q9ZX19KTt2YXIgZT1hcmd1bWVudHNbMV07T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJ5XCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGV9LHNldDpmdW5jdGlvbih0KXtlPXR9fSk7dmFyIHI9YXJndW1lbnRzWzJdO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwid2lkdGhcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcn0sc2V0OmZ1bmN0aW9uKHQpe3I9dH19KTt2YXIgbj1hcmd1bWVudHNbM107T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJoZWlnaHRcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn0sc2V0OmZ1bmN0aW9uKHQpe249dH19KTt2YXIgaT1hcmd1bWVudHNbNF07T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJ0ZXh0XCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHNldDpmdW5jdGlvbih0KXtpPXR9fSk7dmFyIGE9YXJndW1lbnRzWzVdO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwibGluZU51bWJlclwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfSxzZXQ6ZnVuY3Rpb24odCl7YT10fX0pO3ZhciBvPWFyZ3VtZW50c1s2XTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJhbGlnblwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvfSxzZXQ6ZnVuY3Rpb24odCl7bz10fX0pLHRoaXN9O2EucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBhKHRoaXMueCx0aGlzLnksdGhpcy53aWR0aCx0aGlzLmhlaWdodCx0aGlzLnRleHQsdGhpcy5saW5lTnVtYmVyLHRoaXMuYWxpZ24pfSxhLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMueCx0aGlzLnksdGhpcy53aWR0aCx0aGlzLmhlaWdodCx0aGlzLnRleHQsdGhpcy5saW5lTnVtYmVyLHRoaXMuYWxpZ25dfSx0LnNldEhlYWRlckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBuLmNhbGwodGhpcyksdGhpcy5pbnRlcm5hbC5fX2NlbGxfXy5oZWFkZXJGdW5jdGlvbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6dm9pZCAwLHRoaXN9LHQuZ2V0VGV4dERpbWVuc2lvbnM9ZnVuY3Rpb24odCxlKXtuLmNhbGwodGhpcyk7dmFyIHI9KGU9ZXx8e30pLmZvbnRTaXplfHx0aGlzLmdldEZvbnRTaXplKCksaT1lLmZvbnR8fHRoaXMuZ2V0Rm9udCgpLGE9ZS5zY2FsZUZhY3Rvcnx8dGhpcy5pbnRlcm5hbC5zY2FsZUZhY3RvcixvPTAscz0wLGM9MCx1PXRoaXM7aWYoIUFycmF5LmlzQXJyYXkodCkmJlwic3RyaW5nXCIhPXR5cGVvZiB0KXtpZihcIm51bWJlclwiIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoXCJnZXRUZXh0RGltZW5zaW9ucyBleHBlY3RzIHRleHQtcGFyYW1ldGVyIHRvIGJlIG9mIHR5cGUgU3RyaW5nIG9yIHR5cGUgTnVtYmVyIG9yIGFuIEFycmF5IG9mIFN0cmluZ3MuXCIpO3Q9U3RyaW5nKHQpfWNvbnN0IGw9ZS5tYXhXaWR0aDtsPjA/XCJzdHJpbmdcIj09dHlwZW9mIHQ/dD10aGlzLnNwbGl0VGV4dFRvU2l6ZSh0LGwpOlwiW29iamVjdCBBcnJheV1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSYmKHQ9dC5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jb25jYXQodS5zcGxpdFRleHRUb1NpemUoZSxsKSl9LFtdKSk6dD1BcnJheS5pc0FycmF5KHQpP3Q6W3RdO2Zvcih2YXIgaD0wO2g8dC5sZW5ndGg7aCsrKW88KGM9dGhpcy5nZXRTdHJpbmdVbml0V2lkdGgodFtoXSx7Zm9udDppfSkqcikmJihvPWMpO3JldHVybiAwIT09byYmKHM9dC5sZW5ndGgpLHt3Om8vPWEsaDpNYXRoLm1heCgocypyKnRoaXMuZ2V0TGluZUhlaWdodEZhY3RvcigpLXIqKHRoaXMuZ2V0TGluZUhlaWdodEZhY3RvcigpLTEpKS9hLDApfX0sdC5jZWxsQWRkUGFnZT1mdW5jdGlvbigpe24uY2FsbCh0aGlzKSx0aGlzLmFkZFBhZ2UoKTt2YXIgdD10aGlzLmludGVybmFsLl9fY2VsbF9fLm1hcmdpbnN8fGU7cmV0dXJuIHRoaXMuaW50ZXJuYWwuX19jZWxsX18ubGFzdENlbGw9bmV3IGEodC5sZWZ0LHQudG9wLHZvaWQgMCx2b2lkIDApLHRoaXMuaW50ZXJuYWwuX19jZWxsX18ucGFnZXMrPTEsdGhpc307dmFyIG89dC5jZWxsPWZ1bmN0aW9uKCl7dmFyIHQ7dD1hcmd1bWVudHNbMF1pbnN0YW5jZW9mIGE/YXJndW1lbnRzWzBdOm5ldyBhKGFyZ3VtZW50c1swXSxhcmd1bWVudHNbMV0sYXJndW1lbnRzWzJdLGFyZ3VtZW50c1szXSxhcmd1bWVudHNbNF0sYXJndW1lbnRzWzVdLGFyZ3VtZW50c1s2XSksbi5jYWxsKHRoaXMpO3ZhciBpPXRoaXMuaW50ZXJuYWwuX19jZWxsX18ubGFzdENlbGwsbz10aGlzLmludGVybmFsLl9fY2VsbF9fLnBhZGRpbmcscz10aGlzLmludGVybmFsLl9fY2VsbF9fLm1hcmdpbnN8fGUsYz10aGlzLmludGVybmFsLl9fY2VsbF9fLnRhYmxlSGVhZGVyUm93LHU9dGhpcy5pbnRlcm5hbC5fX2NlbGxfXy5wcmludEhlYWRlcnM7cmV0dXJuIHZvaWQgMCE9PWkubGluZU51bWJlciYmKGkubGluZU51bWJlcj09PXQubGluZU51bWJlcj8odC54PShpLnh8fDApKyhpLndpZHRofHwwKSx0Lnk9aS55fHwwKTppLnkraS5oZWlnaHQrdC5oZWlnaHQrcy5ib3R0b20+dGhpcy5nZXRQYWdlSGVpZ2h0KCk/KHRoaXMuY2VsbEFkZFBhZ2UoKSx0Lnk9cy50b3AsdSYmYyYmKHRoaXMucHJpbnRIZWFkZXJSb3codC5saW5lTnVtYmVyLCEwKSx0LnkrPWNbMF0uaGVpZ2h0KSk6dC55PWkueStpLmhlaWdodHx8dC55KSx2b2lkIDAhPT10LnRleHRbMF0mJih0aGlzLnJlY3QodC54LHQueSx0LndpZHRoLHQuaGVpZ2h0LCEwPT09cj9cIkZEXCI6dm9pZCAwKSxcInJpZ2h0XCI9PT10LmFsaWduP3RoaXMudGV4dCh0LnRleHQsdC54K3Qud2lkdGgtbyx0Lnkrbyx7YWxpZ246XCJyaWdodFwiLGJhc2VsaW5lOlwidG9wXCJ9KTpcImNlbnRlclwiPT09dC5hbGlnbj90aGlzLnRleHQodC50ZXh0LHQueCt0LndpZHRoLzIsdC55K28se2FsaWduOlwiY2VudGVyXCIsYmFzZWxpbmU6XCJ0b3BcIixtYXhXaWR0aDp0LndpZHRoLW8tb30pOnRoaXMudGV4dCh0LnRleHQsdC54K28sdC55K28se2FsaWduOlwibGVmdFwiLGJhc2VsaW5lOlwidG9wXCIsbWF4V2lkdGg6dC53aWR0aC1vLW99KSksdGhpcy5pbnRlcm5hbC5fX2NlbGxfXy5sYXN0Q2VsbD10LHRoaXN9O3QudGFibGU9ZnVuY3Rpb24odCxyLGMsdSxsKXtpZihuLmNhbGwodGhpcyksIWMpdGhyb3cgbmV3IEVycm9yKFwiTm8gZGF0YSBmb3IgUERGIHRhYmxlLlwiKTt2YXIgaCxmLGQscCxnPVtdLG09W10sdj1bXSxiPXt9LHk9e30sdz1bXSxOPVtdLEw9KGw9bHx8e30pLmF1dG9TaXplfHwhMSx4PSExIT09bC5wcmludEhlYWRlcnMsQT1sLmNzcyYmdm9pZCAwIT09bC5jc3NbXCJmb250LXNpemVcIl0/MTYqbC5jc3NbXCJmb250LXNpemVcIl06bC5mb250U2l6ZXx8MTIsUz1sLm1hcmdpbnN8fE9iamVjdC5hc3NpZ24oe3dpZHRoOnRoaXMuZ2V0UGFnZVdpZHRoKCl9LGUpLF89XCJudW1iZXJcIj09dHlwZW9mIGwucGFkZGluZz9sLnBhZGRpbmc6MyxQPWwuaGVhZGVyQmFja2dyb3VuZENvbG9yfHxcIiNjOGM4YzhcIixrPWwuaGVhZGVyVGV4dENvbG9yfHxcIiMwMDBcIjtpZihpLmNhbGwodGhpcyksdGhpcy5pbnRlcm5hbC5fX2NlbGxfXy5wcmludEhlYWRlcnM9eCx0aGlzLmludGVybmFsLl9fY2VsbF9fLm1hcmdpbnM9Uyx0aGlzLmludGVybmFsLl9fY2VsbF9fLnRhYmxlX2ZvbnRfc2l6ZT1BLHRoaXMuaW50ZXJuYWwuX19jZWxsX18ucGFkZGluZz1fLHRoaXMuaW50ZXJuYWwuX19jZWxsX18uaGVhZGVyQmFja2dyb3VuZENvbG9yPVAsdGhpcy5pbnRlcm5hbC5fX2NlbGxfXy5oZWFkZXJUZXh0Q29sb3I9ayx0aGlzLnNldEZvbnRTaXplKEEpLG51bGw9PXUpbT1nPU9iamVjdC5rZXlzKGNbMF0pLHY9Zy5tYXAoZnVuY3Rpb24oKXtyZXR1cm5cImxlZnRcIn0pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh1KSYmXCJvYmplY3RcIj09dHlwZW9mIHVbMF0pZm9yKGc9dS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZX0pLG09dS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQucHJvbXB0fHx0Lm5hbWV8fFwiXCJ9KSx2PXUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFsaWdufHxcImxlZnRcIn0pLGg9MDtoPHUubGVuZ3RoO2grPTEpeVt1W2hdLm5hbWVdPS43NDk5OTkwNTUxMTgxMTAzKnVbaF0ud2lkdGg7ZWxzZSBBcnJheS5pc0FycmF5KHUpJiZcInN0cmluZ1wiPT10eXBlb2YgdVswXSYmKG09Zz11LHY9Zy5tYXAoZnVuY3Rpb24oKXtyZXR1cm5cImxlZnRcIn0pKTtpZihMfHxBcnJheS5pc0FycmF5KHUpJiZcInN0cmluZ1wiPT10eXBlb2YgdVswXSlmb3IoaD0wO2g8Zy5sZW5ndGg7aCs9MSl7Zm9yKGJbcD1nW2hdXT1jLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdFtwXX0pLHRoaXMuc2V0Rm9udCh2b2lkIDAsXCJib2xkXCIpLHcucHVzaCh0aGlzLmdldFRleHREaW1lbnNpb25zKG1baF0se2ZvbnRTaXplOnRoaXMuaW50ZXJuYWwuX19jZWxsX18udGFibGVfZm9udF9zaXplLHNjYWxlRmFjdG9yOnRoaXMuaW50ZXJuYWwuc2NhbGVGYWN0b3J9KS53KSxmPWJbcF0sdGhpcy5zZXRGb250KHZvaWQgMCxcIm5vcm1hbFwiKSxkPTA7ZDxmLmxlbmd0aDtkKz0xKXcucHVzaCh0aGlzLmdldFRleHREaW1lbnNpb25zKGZbZF0se2ZvbnRTaXplOnRoaXMuaW50ZXJuYWwuX19jZWxsX18udGFibGVfZm9udF9zaXplLHNjYWxlRmFjdG9yOnRoaXMuaW50ZXJuYWwuc2NhbGVGYWN0b3J9KS53KTt5W3BdPU1hdGgubWF4LmFwcGx5KG51bGwsdykrXytfLHc9W119aWYoeCl7dmFyIEY9e307Zm9yKGg9MDtoPGcubGVuZ3RoO2grPTEpRltnW2hdXT17fSxGW2dbaF1dLnRleHQ9bVtoXSxGW2dbaF1dLmFsaWduPXZbaF07dmFyIEk9cy5jYWxsKHRoaXMsRix5KTtOPWcubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgYSh0LHIseVtlXSxJLEZbZV0udGV4dCx2b2lkIDAsRltlXS5hbGlnbil9KSx0aGlzLnNldFRhYmxlSGVhZGVyUm93KE4pLHRoaXMucHJpbnRIZWFkZXJSb3coMSwhMSl9dmFyIEM9dS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtlLm5hbWVdPWUuYWxpZ24sdH0se30pO2ZvcihoPTA7aDxjLmxlbmd0aDtoKz0xKXtcInJvd1N0YXJ0XCJpbiBsJiZsLnJvd1N0YXJ0IGluc3RhbmNlb2YgRnVuY3Rpb24mJmwucm93U3RhcnQoe3JvdzpoLGRhdGE6Y1toXX0sdGhpcyk7dmFyIGo9cy5jYWxsKHRoaXMsY1toXSx5KTtmb3IoZD0wO2Q8Zy5sZW5ndGg7ZCs9MSl7dmFyIE89Y1toXVtnW2RdXTtcImNlbGxTdGFydFwiaW4gbCYmbC5jZWxsU3RhcnQgaW5zdGFuY2VvZiBGdW5jdGlvbiYmbC5jZWxsU3RhcnQoe3JvdzpoLGNvbDpkLGRhdGE6T30sdGhpcyksby5jYWxsKHRoaXMsbmV3IGEodCxyLHlbZ1tkXV0saixPLGgrMixDW2dbZF1dKSl9fXJldHVybiB0aGlzLmludGVybmFsLl9fY2VsbF9fLnRhYmxlX3g9dCx0aGlzLmludGVybmFsLl9fY2VsbF9fLnRhYmxlX3k9cix0aGlzfTt2YXIgcz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuaW50ZXJuYWwuX19jZWxsX18ucGFkZGluZyxuPXRoaXMuaW50ZXJuYWwuX19jZWxsX18udGFibGVfZm9udF9zaXplLGk9dGhpcy5pbnRlcm5hbC5zY2FsZUZhY3RvcjtyZXR1cm4gT2JqZWN0LmtleXModCkubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPXRbbl07cmV0dXJuIHRoaXMuc3BsaXRUZXh0VG9TaXplKGkuaGFzT3duUHJvcGVydHkoXCJ0ZXh0XCIpP2kudGV4dDppLGVbbl0tci1yKX0sdGhpcykubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmdldExpbmVIZWlnaHRGYWN0b3IoKSp0Lmxlbmd0aCpuL2krcityfSx0aGlzKS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5tYXgodCxlKX0sMCl9O3Quc2V0VGFibGVIZWFkZXJSb3c9ZnVuY3Rpb24odCl7bi5jYWxsKHRoaXMpLHRoaXMuaW50ZXJuYWwuX19jZWxsX18udGFibGVIZWFkZXJSb3c9dH0sdC5wcmludEhlYWRlclJvdz1mdW5jdGlvbih0LGUpe2lmKG4uY2FsbCh0aGlzKSwhdGhpcy5pbnRlcm5hbC5fX2NlbGxfXy50YWJsZUhlYWRlclJvdyl0aHJvdyBuZXcgRXJyb3IoXCJQcm9wZXJ0eSB0YWJsZUhlYWRlclJvdyBkb2VzIG5vdCBleGlzdC5cIik7dmFyIGk7aWYocj0hMCxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLmludGVybmFsLl9fY2VsbF9fLmhlYWRlckZ1bmN0aW9uKXt2YXIgcz10aGlzLmludGVybmFsLl9fY2VsbF9fLmhlYWRlckZ1bmN0aW9uKHRoaXMsdGhpcy5pbnRlcm5hbC5fX2NlbGxfXy5wYWdlcyk7dGhpcy5pbnRlcm5hbC5fX2NlbGxfXy5sYXN0Q2VsbD1uZXcgYShzWzBdLHNbMV0sc1syXSxzWzNdLHZvaWQgMCwtMSl9dGhpcy5zZXRGb250KHZvaWQgMCxcImJvbGRcIik7Zm9yKHZhciBjPVtdLHU9MDt1PHRoaXMuaW50ZXJuYWwuX19jZWxsX18udGFibGVIZWFkZXJSb3cubGVuZ3RoO3UrPTEpe2k9dGhpcy5pbnRlcm5hbC5fX2NlbGxfXy50YWJsZUhlYWRlclJvd1t1XS5jbG9uZSgpLGUmJihpLnk9dGhpcy5pbnRlcm5hbC5fX2NlbGxfXy5tYXJnaW5zLnRvcHx8MCxjLnB1c2goaSkpLGkubGluZU51bWJlcj10O3ZhciBsPXRoaXMuZ2V0VGV4dENvbG9yKCk7dGhpcy5zZXRUZXh0Q29sb3IodGhpcy5pbnRlcm5hbC5fX2NlbGxfXy5oZWFkZXJUZXh0Q29sb3IpLHRoaXMuc2V0RmlsbENvbG9yKHRoaXMuaW50ZXJuYWwuX19jZWxsX18uaGVhZGVyQmFja2dyb3VuZENvbG9yKSxvLmNhbGwodGhpcyxpKSx0aGlzLnNldFRleHRDb2xvcihsKX1jLmxlbmd0aD4wJiZ0aGlzLnNldFRhYmxlSGVhZGVyUm93KGMpLHRoaXMuc2V0Rm9udCh2b2lkIDAsXCJub3JtYWxcIikscj0hMX19KEMuQVBJKTt2YXIgTnQ9e2l0YWxpYzpbXCJpdGFsaWNcIixcIm9ibGlxdWVcIixcIm5vcm1hbFwiXSxvYmxpcXVlOltcIm9ibGlxdWVcIixcIml0YWxpY1wiLFwibm9ybWFsXCJdLG5vcm1hbDpbXCJub3JtYWxcIixcIm9ibGlxdWVcIixcIml0YWxpY1wiXX0sTHQ9W1widWx0cmEtY29uZGVuc2VkXCIsXCJleHRyYS1jb25kZW5zZWRcIixcImNvbmRlbnNlZFwiLFwic2VtaS1jb25kZW5zZWRcIixcIm5vcm1hbFwiLFwic2VtaS1leHBhbmRlZFwiLFwiZXhwYW5kZWRcIixcImV4dHJhLWV4cGFuZGVkXCIsXCJ1bHRyYS1leHBhbmRlZFwiXSx4dD13dChMdCksQXQ9WzEwMCwyMDAsMzAwLDQwMCw1MDAsNjAwLDcwMCw4MDAsOTAwXSxTdD13dChBdCk7ZnVuY3Rpb24gX3QodCl7dmFyIGU9dC5mYW1pbHkucmVwbGFjZSgvXCJ8Jy9nLFwiXCIpLnRvTG93ZXJDYXNlKCkscj1mdW5jdGlvbih0KXtyZXR1cm4gTnRbdD10fHxcIm5vcm1hbFwiXT90Olwibm9ybWFsXCJ9KHQuc3R5bGUpLG49ZnVuY3Rpb24odCl7cmV0dXJuIHQ/XCJudW1iZXJcIj09dHlwZW9mIHQ/dD49MTAwJiZ0PD05MDAmJnQlMTAwPT0wP3Q6NDAwOi9eXFxkMDAkLy50ZXN0KHQpP3BhcnNlSW50KHQpOlwiYm9sZFwiPT09dD83MDA6NDAwOjQwMH0odC53ZWlnaHQpLGk9ZnVuY3Rpb24odCl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIHh0W3Q9dHx8XCJub3JtYWxcIl0/dDpcIm5vcm1hbFwifSh0LnN0cmV0Y2gpO3JldHVybntmYW1pbHk6ZSxzdHlsZTpyLHdlaWdodDpuLHN0cmV0Y2g6aSxzcmM6dC5zcmN8fFtdLHJlZjp0LnJlZnx8e25hbWU6ZSxzdHlsZTpbaSxyLG5dLmpvaW4oXCIgXCIpfX19ZnVuY3Rpb24gUHQodCxlLHIsbil7dmFyIGk7Zm9yKGk9cjtpPj0wJiZpPGUubGVuZ3RoO2krPW4paWYodFtlW2ldXSlyZXR1cm4gdFtlW2ldXTtmb3IoaT1yO2k+PTAmJmk8ZS5sZW5ndGg7aS09bilpZih0W2VbaV1dKXJldHVybiB0W2VbaV1dfXZhciBrdD17XCJzYW5zLXNlcmlmXCI6XCJoZWx2ZXRpY2FcIixmaXhlZDpcImNvdXJpZXJcIixtb25vc3BhY2U6XCJjb3VyaWVyXCIsdGVybWluYWw6XCJjb3VyaWVyXCIsY3Vyc2l2ZTpcInRpbWVzXCIsZmFudGFzeTpcInRpbWVzXCIsc2VyaWY6XCJ0aW1lc1wifSxGdD17Y2FwdGlvbjpcInRpbWVzXCIsaWNvbjpcInRpbWVzXCIsbWVudTpcInRpbWVzXCIsXCJtZXNzYWdlLWJveFwiOlwidGltZXNcIixcInNtYWxsLWNhcHRpb25cIjpcInRpbWVzXCIsXCJzdGF0dXMtYmFyXCI6XCJ0aW1lc1wifTtmdW5jdGlvbiBJdCh0KXtyZXR1cm5bdC5zdHJldGNoLHQuc3R5bGUsdC53ZWlnaHQsdC5mYW1pbHldLmpvaW4oXCIgXCIpfWZ1bmN0aW9uIEN0KHQpe3JldHVybiB0LnRyaW1MZWZ0KCl9ZnVuY3Rpb24ganQodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoOyl7aWYodC5jaGFyQXQocik9PT1lKXJldHVyblt0LnN1YnN0cmluZygwLHIpLHQuc3Vic3RyaW5nKHIrMSldO3IrPTF9cmV0dXJuIG51bGx9ZnVuY3Rpb24gT3QodCl7dmFyIGU9dC5tYXRjaCgvXigtW2Etel9dfFthLXpfXSlbYS16MC05Xy1dKi9pKTtyZXR1cm4gbnVsbD09PWU/bnVsbDpbZVswXSx0LnN1YnN0cmluZyhlWzBdLmxlbmd0aCldfXZhciBCdCxxdCxNdCxFdCxSdCxEdD1bXCJ0aW1lc1wiXTtmdW5jdGlvbiBUdChlLHIsbixpLGEpe2xldCBvPTQscz1IdDtzd2l0Y2goYSl7Y2FzZSBDLkFQSS5pbWFnZV9jb21wcmVzc2lvbi5GQVNUOm89MSxzPVV0O2JyZWFrO2Nhc2UgQy5BUEkuaW1hZ2VfY29tcHJlc3Npb24uTUVESVVNOm89NixzPVd0O2JyZWFrO2Nhc2UgQy5BUEkuaW1hZ2VfY29tcHJlc3Npb24uU0xPVzpvPTkscz1WdH1lPWZ1bmN0aW9uKHQsZSxyLG4pe2NvbnN0IGk9dC5sZW5ndGgvZSxhPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoK2kpLG89W3p0LFV0LEh0LFd0LFZ0XTtsZXQgcztmb3IobGV0IGM9MDtjPGk7Yys9MSl7Y29uc3QgaT1jKmUsdT10LnN1YmFycmF5KGksaStlKTtpZihuKWEuc2V0KG4odSxyLHMpLGkrYyk7ZWxzZXtjb25zdCB0PW8ubGVuZ3RoLGU9W107Zm9yKGxldCBpPTA7aTx0O2krPTEpZVtpXT1vW2ldKHUscixzKTtjb25zdCBuPVl0KGUuY29uY2F0KCkpO2Euc2V0KGVbbl0saStjKX1zPXV9cmV0dXJuIGF9KGUscixNYXRoLmNlaWwobippLzgpLHMpO2NvbnN0IGM9dC56bGliU3luYyhlLHtsZXZlbDpvfSk7cmV0dXJuIEMuQVBJLl9fYWRkaW1hZ2VfXy5hcnJheUJ1ZmZlclRvQmluYXJ5U3RyaW5nKGMpfWZ1bmN0aW9uIHp0KHQpe2NvbnN0IGU9QXJyYXkuYXBwbHkoW10sdCk7cmV0dXJuIGUudW5zaGlmdCgwKSxlfWZ1bmN0aW9uIFV0KHQsZSl7Y29uc3Qgcj10Lmxlbmd0aCxuPVtdO25bMF09MTtmb3IobGV0IGk9MDtpPHI7aSs9MSl7Y29uc3Qgcj10W2ktZV18fDA7bltpKzFdPXRbaV0tcisyNTYmMjU1fXJldHVybiBufWZ1bmN0aW9uIEh0KHQsZSxyKXtjb25zdCBuPXQubGVuZ3RoLGk9W107aVswXT0yO2ZvcihsZXQgYT0wO2E8bjthKz0xKXtjb25zdCBlPXImJnJbYV18fDA7aVthKzFdPXRbYV0tZSsyNTYmMjU1fXJldHVybiBpfWZ1bmN0aW9uIFd0KHQsZSxyKXtjb25zdCBuPXQubGVuZ3RoLGk9W107aVswXT0zO2ZvcihsZXQgYT0wO2E8bjthKz0xKXtjb25zdCBuPXRbYS1lXXx8MCxvPXImJnJbYV18fDA7aVthKzFdPXRbYV0rMjU2LShuK28+Pj4xKSYyNTV9cmV0dXJuIGl9ZnVuY3Rpb24gVnQodCxlLHIpe2NvbnN0IG49dC5sZW5ndGgsaT1bXTtpWzBdPTQ7Zm9yKGxldCBhPTA7YTxuO2ErPTEpe2NvbnN0IG49R3QodFthLWVdfHwwLHImJnJbYV18fDAsciYmclthLWVdfHwwKTtpW2ErMV09dFthXS1uKzI1NiYyNTV9cmV0dXJuIGl9ZnVuY3Rpb24gR3QodCxlLHIpe2lmKHQ9PT1lJiZlPT09cilyZXR1cm4gdDtjb25zdCBuPU1hdGguYWJzKGUtciksaT1NYXRoLmFicyh0LXIpLGE9TWF0aC5hYnModCtlLXItcik7cmV0dXJuIG48PWkmJm48PWE/dDppPD1hP2U6cn1mdW5jdGlvbiBZdCh0KXtjb25zdCBlPXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiB0K01hdGguYWJzKGUpfSwwKX0pO3JldHVybiBlLmluZGV4T2YoTWF0aC5taW4uYXBwbHkobnVsbCxlKSl9ZnVuY3Rpb24gSnQodCxlLHIpe2NvbnN0IG49ZSpyLGk9TWF0aC5mbG9vcihuLzgpLGE9MTYtKG4tOCppK3IpLG89KDE8PHIpLTE7cmV0dXJuIEt0KHQsaSk+PmEmb31mdW5jdGlvbiBYdCh0LGUscixuKXtjb25zdCBpPXIqbixhPU1hdGguZmxvb3IoaS84KSxvPTE2LShpLTgqYStuKSxzPSgxPDxuKS0xLGM9KGUmcyk8PG87IWZ1bmN0aW9uKHQsZSxyKXtpZihlKzE8dC5ieXRlTGVuZ3RoKXJldHVybiB2b2lkIHQuc2V0VWludDE2KGUsciwhMSk7Y29uc3Qgbj1yPj44JjI1NTt0LnNldFVpbnQ4KGUsbil9XG4vKipcbiAqIEBsaWNlbnNlXG4gKiAoYykgRGVhbiBNY05hbWVlIDxkZWFuQGdtYWlsLmNvbT4sIDIwMTMuXG4gKlxuICogaHR0cHM6Ly9naXRodWIuY29tL2RlYW5tL29tZ2dpZlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvXG4gKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZVxuICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yXG4gKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HXG4gKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTXG4gKiBJTiBUSEUgU09GVFdBUkUuXG4gKlxuICogb21nZ2lmIGlzIGEgSmF2YVNjcmlwdCBpbXBsZW1lbnRhdGlvbiBvZiBhIEdJRiA4OWEgZW5jb2RlciBhbmQgZGVjb2RlcixcbiAqIGluY2x1ZGluZyBhbmltYXRpb24gYW5kIGNvbXByZXNzaW9uLiAgSXQgZG9lcyBub3QgcmVseSBvbiBhbnkgc3BlY2lmaWNcbiAqIHVuZGVybHlpbmcgc3lzdGVtLCBzbyBzaG91bGQgcnVuIGluIHRoZSBicm93c2VyLCBOb2RlLCBvciBQbGFzay5cbiAqLyh0LGEsS3QodCxhKSZ+KHM8PG8pJjY1NTM1fGMpfWZ1bmN0aW9uIEt0KHQsZSl7cmV0dXJuIGUrMTx0LmJ5dGVMZW5ndGg/dC5nZXRVaW50MTYoZSwhMSk6dC5nZXRVaW50OChlKTw8OH1mdW5jdGlvbiAkdCh0KXt2YXIgZT0wO2lmKDcxIT09dFtlKytdfHw3MyE9PXRbZSsrXXx8NzAhPT10W2UrK118fDU2IT09dFtlKytdfHw1NiE9KHRbZSsrXSsxJjI1Myl8fDk3IT09dFtlKytdKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgR0lGIDg3YS84OWEgaGVhZGVyLlwiKTt2YXIgcj10W2UrK118dFtlKytdPDw4LG49dFtlKytdfHRbZSsrXTw8OCxpPXRbZSsrXSxhPWk+Pjcsbz0xPDwxKyg3JmkpO3RbZSsrXSx0W2UrK107dmFyIHM9bnVsbCxjPW51bGw7YSYmKHM9ZSxjPW8sZSs9MypvKTt2YXIgdT0hMCxsPVtdLGg9MCxmPW51bGwsZD0wLHA9bnVsbDtmb3IodGhpcy53aWR0aD1yLHRoaXMuaGVpZ2h0PW47dSYmZTx0Lmxlbmd0aDspc3dpdGNoKHRbZSsrXSl7Y2FzZSAzMzpzd2l0Y2godFtlKytdKXtjYXNlIDI1NTppZigxMSE9PXRbZV18fDc4PT10W2UrMV0mJjY5PT10W2UrMl0mJjg0PT10W2UrM10mJjgzPT10W2UrNF0mJjY3PT10W2UrNV0mJjY1PT10W2UrNl0mJjgwPT10W2UrN10mJjY5PT10W2UrOF0mJjUwPT10W2UrOV0mJjQ2PT10W2UrMTBdJiY0OD09dFtlKzExXSYmMz09dFtlKzEyXSYmMT09dFtlKzEzXSYmMD09dFtlKzE2XSllKz0xNCxwPXRbZSsrXXx0W2UrK108PDgsZSsrO2Vsc2UgZm9yKGUrPTEyOzspe2lmKCEoKFA9dFtlKytdKT49MCkpdGhyb3cgRXJyb3IoXCJJbnZhbGlkIGJsb2NrIHNpemVcIik7aWYoMD09PVApYnJlYWs7ZSs9UH1icmVhaztjYXNlIDI0OTppZig0IT09dFtlKytdfHwwIT09dFtlKzRdKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgZ3JhcGhpY3MgZXh0ZW5zaW9uIGJsb2NrLlwiKTt2YXIgZz10W2UrK107aD10W2UrK118dFtlKytdPDw4LGY9dFtlKytdLDEmZ3x8KGY9bnVsbCksZD1nPj4yJjcsZSsrO2JyZWFrO2Nhc2UgMjU0OmZvcig7Oyl7aWYoISgoUD10W2UrK10pPj0wKSl0aHJvdyBFcnJvcihcIkludmFsaWQgYmxvY2sgc2l6ZVwiKTtpZigwPT09UClicmVhaztlKz1QfWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBncmFwaGljIGNvbnRyb2wgbGFiZWw6IDB4XCIrdFtlLTFdLnRvU3RyaW5nKDE2KSl9YnJlYWs7Y2FzZSA0NDp2YXIgbT10W2UrK118dFtlKytdPDw4LHY9dFtlKytdfHRbZSsrXTw8OCxiPXRbZSsrXXx0W2UrK108PDgseT10W2UrK118dFtlKytdPDw4LHc9dFtlKytdLE49dz4+NiYxLEw9MTw8MSsoNyZ3KSx4PXMsQT1jLFM9ITE7dz4+NyYmKFM9ITAseD1lLEE9TCxlKz0zKkwpO3ZhciBfPWU7Zm9yKGUrKzs7KXt2YXIgUDtpZighKChQPXRbZSsrXSk+PTApKXRocm93IEVycm9yKFwiSW52YWxpZCBibG9jayBzaXplXCIpO2lmKDA9PT1QKWJyZWFrO2UrPVB9bC5wdXNoKHt4Om0seTp2LHdpZHRoOmIsaGVpZ2h0OnksaGFzX2xvY2FsX3BhbGV0dGU6UyxwYWxldHRlX29mZnNldDp4LHBhbGV0dGVfc2l6ZTpBLGRhdGFfb2Zmc2V0Ol8sZGF0YV9sZW5ndGg6ZS1fLHRyYW5zcGFyZW50X2luZGV4OmYsaW50ZXJsYWNlZDohIU4sZGVsYXk6aCxkaXNwb3NhbDpkfSk7YnJlYWs7Y2FzZSA1OTp1PSExO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBnaWYgYmxvY2s6IDB4XCIrdFtlLTFdLnRvU3RyaW5nKDE2KSl9dGhpcy5udW1GcmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbC5sZW5ndGh9LHRoaXMubG9vcENvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIHB9LHRoaXMuZnJhbWVJbmZvPWZ1bmN0aW9uKHQpe2lmKHQ8MHx8dD49bC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKFwiRnJhbWUgaW5kZXggb3V0IG9mIHJhbmdlLlwiKTtyZXR1cm4gbFt0XX0sdGhpcy5kZWNvZGVBbmRCbGl0RnJhbWVCR1JBPWZ1bmN0aW9uKGUsbil7dmFyIGk9dGhpcy5mcmFtZUluZm8oZSksYT1pLndpZHRoKmkuaGVpZ2h0O2lmKGE+NTM2ODcwOTEyKXRocm93IG5ldyBFcnJvcihcIkltYWdlIGRpbWVuc2lvbnMgZXhjZWVkIDUxMk1CLCB3aGljaCBpcyB0b28gbGFyZ2UuXCIpO3ZhciBvPW5ldyBVaW50OEFycmF5KGEpO1p0KHQsaS5kYXRhX29mZnNldCxvLGEpO3ZhciBzPWkucGFsZXR0ZV9vZmZzZXQsYz1pLnRyYW5zcGFyZW50X2luZGV4O251bGw9PT1jJiYoYz0yNTYpO3ZhciB1PWkud2lkdGgsbD1yLXUsaD11LGY9NCooaS55KnIraS54KSxkPTQqKChpLnkraS5oZWlnaHQpKnIraS54KSxwPWYsZz00Kmw7ITA9PT1pLmludGVybGFjZWQmJihnKz00KnIqNyk7Zm9yKHZhciBtPTgsdj0wLGI9by5sZW5ndGg7djxiOysrdil7dmFyIHk9b1t2XTtpZigwPT09aCYmKGg9dSwocCs9Zyk+PWQmJihnPTQqbCs0KnIqKG0tMSkscD1mKyh1K2wpKihtPDwxKSxtPj49MSkpLHk9PT1jKXArPTQ7ZWxzZXt2YXIgdz10W3MrMyp5XSxOPXRbcyszKnkrMV0sTD10W3MrMyp5KzJdO25bcCsrXT1MLG5bcCsrXT1OLG5bcCsrXT13LG5bcCsrXT0yNTV9LS1ofX0sdGhpcy5kZWNvZGVBbmRCbGl0RnJhbWVSR0JBPWZ1bmN0aW9uKGUsbil7dmFyIGk9dGhpcy5mcmFtZUluZm8oZSksYT1pLndpZHRoKmkuaGVpZ2h0O2lmKGE+NTM2ODcwOTEyKXRocm93IG5ldyBFcnJvcihcIkltYWdlIGRpbWVuc2lvbnMgZXhjZWVkIDUxMk1CLCB3aGljaCBpcyB0b28gbGFyZ2UuXCIpO3ZhciBvPW5ldyBVaW50OEFycmF5KGEpO1p0KHQsaS5kYXRhX29mZnNldCxvLGEpO3ZhciBzPWkucGFsZXR0ZV9vZmZzZXQsYz1pLnRyYW5zcGFyZW50X2luZGV4O251bGw9PT1jJiYoYz0yNTYpO3ZhciB1PWkud2lkdGgsbD1yLXUsaD11LGY9NCooaS55KnIraS54KSxkPTQqKChpLnkraS5oZWlnaHQpKnIraS54KSxwPWYsZz00Kmw7ITA9PT1pLmludGVybGFjZWQmJihnKz00KnIqNyk7Zm9yKHZhciBtPTgsdj0wLGI9by5sZW5ndGg7djxiOysrdil7dmFyIHk9b1t2XTtpZigwPT09aCYmKGg9dSwocCs9Zyk+PWQmJihnPTQqbCs0KnIqKG0tMSkscD1mKyh1K2wpKihtPDwxKSxtPj49MSkpLHk9PT1jKXArPTQ7ZWxzZXt2YXIgdz10W3MrMyp5XSxOPXRbcyszKnkrMV0sTD10W3MrMyp5KzJdO25bcCsrXT13LG5bcCsrXT1OLG5bcCsrXT1MLG5bcCsrXT0yNTV9LS1ofX19ZnVuY3Rpb24gWnQodCxlLHIsbil7Zm9yKHZhciBpPXRbZSsrXSxhPTE8PGksbz1hKzEsYz1vKzEsdT1pKzEsbD0oMTw8dSktMSxoPTAsZj0wLGQ9MCxwPXRbZSsrXSxnPW5ldyBJbnQzMkFycmF5KDQwOTYpLG09bnVsbDs7KXtmb3IoO2g8MTYmJjAhPT1wOylmfD10W2UrK108PGgsaCs9OCwxPT09cD9wPXRbZSsrXTotLXA7aWYoaDx1KWJyZWFrO3ZhciB2PWYmbDtpZihmPj49dSxoLT11LHYhPT1hKXtpZih2PT09bylicmVhaztmb3IodmFyIGI9djxjP3Y6bSx5PTAsdz1iO3c+YTspdz1nW3ddPj44LCsreTt2YXIgTj13O2lmKGQreSsoYiE9PXY/MTowKT5uKXJldHVybiB2b2lkIHMubG9nKFwiV2FybmluZywgZ2lmIHN0cmVhbSBsb25nZXIgdGhhbiBleHBlY3RlZC5cIik7cltkKytdPU47dmFyIEw9ZCs9eTtmb3IoYiE9PXYmJihyW2QrK109Tiksdz1iO3ktLTspdz1nW3ddLHJbLS1MXT0yNTUmdyx3Pj49ODtudWxsIT09bSYmYzw0MDk2JiYoZ1tjKytdPW08PDh8TixjPj1sKzEmJnU8MTImJigrK3UsbD1sPDwxfDEpKSxtPXZ9ZWxzZSBjPW8rMSxsPSgxPDwodT1pKzEpKS0xLG09bnVsbH1yZXR1cm4gZCE9PW4mJnMubG9nKFwiV2FybmluZywgZ2lmIHN0cmVhbSBzaG9ydGVyIHRoYW4gZXhwZWN0ZWQuXCIpLHJ9XG4vKipcbiAqIEBsaWNlbnNlXG4gIENvcHlyaWdodCAoYykgMjAwOCwgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWRcbiAgQWxsIHJpZ2h0cyByZXNlcnZlZC5cblxuICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgXG4gIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmVcbiAgbWV0OlxuXG4gICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCBcbiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuICBcbiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodFxuICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgXG4gICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi5cbiAgXG4gICogTmVpdGhlciB0aGUgbmFtZSBvZiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZCBub3IgdGhlIG5hbWVzIG9mIGl0cyBcbiAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSBcbiAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLlxuXG4gIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgXCJBU1xuICBJU1wiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLFxuICBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSXG4gIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgXG4gIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLFxuICBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sXG4gIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUlxuICBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GXG4gIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HXG4gIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJU1xuICBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiovZnVuY3Rpb24gUXQodCl7dmFyIGUscixuLGksYSxvPU1hdGguZmxvb3Iscz1uZXcgQXJyYXkoNjQpLGM9bmV3IEFycmF5KDY0KSx1PW5ldyBBcnJheSg2NCksbD1uZXcgQXJyYXkoNjQpLGg9bmV3IEFycmF5KDY1NTM1KSxmPW5ldyBBcnJheSg2NTUzNSksZD1uZXcgQXJyYXkoNjQpLHA9bmV3IEFycmF5KDY0KSxnPVtdLG09MCx2PTcsYj1uZXcgQXJyYXkoNjQpLHk9bmV3IEFycmF5KDY0KSx3PW5ldyBBcnJheSg2NCksTj1uZXcgQXJyYXkoMjU2KSxMPW5ldyBBcnJheSgyMDQ4KSx4PVswLDEsNSw2LDE0LDE1LDI3LDI4LDIsNCw3LDEzLDE2LDI2LDI5LDQyLDMsOCwxMiwxNywyNSwzMCw0MSw0Myw5LDExLDE4LDI0LDMxLDQwLDQ0LDUzLDEwLDE5LDIzLDMyLDM5LDQ1LDUyLDU0LDIwLDIyLDMzLDM4LDQ2LDUxLDU1LDYwLDIxLDM0LDM3LDQ3LDUwLDU2LDU5LDYxLDM1LDM2LDQ4LDQ5LDU3LDU4LDYyLDYzXSxBPVswLDAsMSw1LDEsMSwxLDEsMSwxLDAsMCwwLDAsMCwwLDBdLFM9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTFdLF89WzAsMCwyLDEsMywzLDIsNCwzLDUsNSw0LDQsMCwwLDEsMTI1XSxQPVsxLDIsMywwLDQsMTcsNSwxOCwzMyw0OSw2NSw2LDE5LDgxLDk3LDcsMzQsMTEzLDIwLDUwLDEyOSwxNDUsMTYxLDgsMzUsNjYsMTc3LDE5MywyMSw4MiwyMDksMjQwLDM2LDUxLDk4LDExNCwxMzAsOSwxMCwyMiwyMywyNCwyNSwyNiwzNywzOCwzOSw0MCw0MSw0Miw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNSwxMDYsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTBdLGs9WzAsMCwzLDEsMSwxLDEsMSwxLDEsMSwxLDAsMCwwLDAsMF0sRj1bMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMV0sST1bMCwwLDIsMSwyLDQsNCwzLDQsNyw1LDQsNCwwLDEsMiwxMTldLEM9WzAsMSwyLDMsMTcsNCw1LDMzLDQ5LDYsMTgsNjUsODEsNyw5NywxMTMsMTksMzQsNTAsMTI5LDgsMjAsNjYsMTQ1LDE2MSwxNzcsMTkzLDksMzUsNTEsODIsMjQwLDIxLDk4LDExNCwyMDksMTAsMjIsMzYsNTIsMjI1LDM3LDI0MSwyMywyNCwyNSwyNiwzOCwzOSw0MCw0MSw0Miw1Myw1NCw1NSw1Niw1Nyw1OCw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNSwxMDYsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxOTQsMTk1LDE5NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywyNDgsMjQ5LDI1MF07ZnVuY3Rpb24gaih0LGUpe2Zvcih2YXIgcj0wLG49MCxpPW5ldyBBcnJheSxhPTE7YTw9MTY7YSsrKXtmb3IodmFyIG89MTtvPD10W2FdO28rKylpW2Vbbl1dPVtdLGlbZVtuXV1bMF09cixpW2Vbbl1dWzFdPWEsbisrLHIrKztyKj0yfXJldHVybiBpfWZ1bmN0aW9uIE8odCl7Zm9yKHZhciBlPXRbMF0scj10WzFdLTE7cj49MDspZSYxPDxyJiYobXw9MTw8diksci0tLC0tdjwwJiYoMjU1PT1tPyhCKDI1NSksQigwKSk6QihtKSx2PTcsbT0wKX1mdW5jdGlvbiBCKHQpe2cucHVzaCh0KX1mdW5jdGlvbiBxKHQpe0IodD4+OCYyNTUpLEIoMjU1JnQpfWZ1bmN0aW9uIE0odCxlLHIsbixpKXtmb3IodmFyIGEsbz1pWzBdLHM9aVsyNDBdLGM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYSxvLHMsYyx1LGwsaCxmPTA7Zm9yKGw9MDtsPDg7KytsKXtyPXRbZl0sbj10W2YrMV0saT10W2YrMl0sYT10W2YrM10sbz10W2YrNF0scz10W2YrNV0sYz10W2YrNl07dmFyIHA9cisodT10W2YrN10pLGc9ci11LG09bitjLHY9bi1jLGI9aStzLHk9aS1zLHc9YStvLE49YS1vLEw9cCt3LHg9cC13LEE9bStiLFM9bS1iO3RbZl09TCtBLHRbZis0XT1MLUE7dmFyIF89LjcwNzEwNjc4MSooUyt4KTt0W2YrMl09eCtfLHRbZis2XT14LV87dmFyIFA9LjM4MjY4MzQzMyooKEw9Tit5KS0oUz12K2cpKSxrPS41NDExOTYxKkwrUCxGPTEuMzA2NTYyOTY1KlMrUCxJPS43MDcxMDY3ODEqKEE9eSt2KSxDPWcrSSxqPWctSTt0W2YrNV09aitrLHRbZiszXT1qLWssdFtmKzFdPUMrRix0W2YrN109Qy1GLGYrPTh9Zm9yKGY9MCxsPTA7bDw4OysrbCl7cj10W2ZdLG49dFtmKzhdLGk9dFtmKzE2XSxhPXRbZisyNF0sbz10W2YrMzJdLHM9dFtmKzQwXSxjPXRbZis0OF07dmFyIE89cisodT10W2YrNTZdKSxCPXItdSxxPW4rYyxNPW4tYyxFPWkrcyxSPWktcyxEPWErbyxUPWEtbyx6PU8rRCxVPU8tRCxIPXErRSxXPXEtRTt0W2ZdPXorSCx0W2YrMzJdPXotSDt2YXIgVj0uNzA3MTA2NzgxKihXK1UpO3RbZisxNl09VStWLHRbZis0OF09VS1WO3ZhciBHPS4zODI2ODM0MzMqKCh6PVQrUiktKFc9TStCKSksWT0uNTQxMTk2MSp6K0csSj0xLjMwNjU2Mjk2NSpXK0csWD0uNzA3MTA2NzgxKihIPVIrTSksSz1CK1gsJD1CLVg7dFtmKzQwXT0kK1ksdFtmKzI0XT0kLVksdFtmKzhdPUsrSix0W2YrNTZdPUstSixmKyt9Zm9yKGw9MDtsPDY0OysrbCloPXRbbF0qZVtsXSxkW2xdPWg+MD9oKy41fDA6aC0uNXwwO3JldHVybiBkfSh0LGUpLHU9MDt1PDY0OysrdSlwW3hbdV1dPWNbdV07dmFyIGw9cFswXS1yO3I9cFswXSwwPT1sP08oblswXSk6KE8obltmW2E9MzI3NjcrbF1dKSxPKGhbYV0pKTtmb3IodmFyIGc9NjM7Zz4wJiYwPT1wW2ddOylnLS07aWYoMD09ZylyZXR1cm4gTyhvKSxyO2Zvcih2YXIgbSx2PTE7djw9Zzspe2Zvcih2YXIgYj12OzA9PXBbdl0mJnY8PWc7KSsrdjt2YXIgeT12LWI7aWYoeT49MTYpe209eT4+NDtmb3IodmFyIHc9MTt3PD1tOysrdylPKHMpO3kmPTE1fWE9MzI3NjcrcFt2XSxPKGlbKHk8PDQpK2ZbYV1dKSxPKGhbYV0pLHYrK31yZXR1cm4gNjMhPWcmJk8obykscn1mdW5jdGlvbiBFKHQpe3Q9TWF0aC5taW4oTWF0aC5tYXgodCwxKSwxMDApLGEhPXQmJihmdW5jdGlvbih0KXtmb3IodmFyIGU9WzE2LDExLDEwLDE2LDI0LDQwLDUxLDYxLDEyLDEyLDE0LDE5LDI2LDU4LDYwLDU1LDE0LDEzLDE2LDI0LDQwLDU3LDY5LDU2LDE0LDE3LDIyLDI5LDUxLDg3LDgwLDYyLDE4LDIyLDM3LDU2LDY4LDEwOSwxMDMsNzcsMjQsMzUsNTUsNjQsODEsMTA0LDExMyw5Miw0OSw2NCw3OCw4NywxMDMsMTIxLDEyMCwxMDEsNzIsOTIsOTUsOTgsMTEyLDEwMCwxMDMsOTldLHI9MDtyPDY0O3IrKyl7dmFyIG49bygoZVtyXSp0KzUwKS8xMDApO249TWF0aC5taW4oTWF0aC5tYXgobiwxKSwyNTUpLHNbeFtyXV09bn1mb3IodmFyIGk9WzE3LDE4LDI0LDQ3LDk5LDk5LDk5LDk5LDE4LDIxLDI2LDY2LDk5LDk5LDk5LDk5LDI0LDI2LDU2LDk5LDk5LDk5LDk5LDk5LDQ3LDY2LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5LDk5XSxhPTA7YTw2NDthKyspe3ZhciBoPW8oKGlbYV0qdCs1MCkvMTAwKTtoPU1hdGgubWluKE1hdGgubWF4KGgsMSksMjU1KSxjW3hbYV1dPWh9Zm9yKHZhciBmPVsxLDEuMzg3MDM5ODQ1LDEuMzA2NTYyOTY1LDEuMTc1ODc1NjAyLDEsLjc4NTY5NDk1OCwuNTQxMTk2MSwuMjc1ODk5Mzc5XSxkPTAscD0wO3A8ODtwKyspZm9yKHZhciBnPTA7Zzw4O2crKyl1W2RdPTEvKHNbeFtkXV0qZltwXSpmW2ddKjgpLGxbZF09MS8oY1t4W2RdXSpmW3BdKmZbZ10qOCksZCsrfSh0PDUwP01hdGguZmxvb3IoNWUzL3QpOk1hdGguZmxvb3IoMjAwLTIqdCkpLGE9dCl9dGhpcy5lbmNvZGU9ZnVuY3Rpb24odCxhKXthJiZFKGEpLGc9bmV3IEFycmF5LG09MCx2PTcscSg2NTQ5NikscSg2NTUwNCkscSgxNiksQig3NCksQig3MCksQig3MyksQig3MCksQigwKSxCKDEpLEIoMSksQigwKSxxKDEpLHEoMSksQigwKSxCKDApLGZ1bmN0aW9uKCl7cSg2NTQ5OSkscSgxMzIpLEIoMCk7Zm9yKHZhciB0PTA7dDw2NDt0KyspQihzW3RdKTtCKDEpO2Zvcih2YXIgZT0wO2U8NjQ7ZSsrKUIoY1tlXSl9KCksZnVuY3Rpb24odCxlKXtxKDY1NDcyKSxxKDE3KSxCKDgpLHEoZSkscSh0KSxCKDMpLEIoMSksQigxNyksQigwKSxCKDIpLEIoMTcpLEIoMSksQigzKSxCKDE3KSxCKDEpfSh0LndpZHRoLHQuaGVpZ2h0KSxmdW5jdGlvbigpe3EoNjU0NzYpLHEoNDE4KSxCKDApO2Zvcih2YXIgdD0wO3Q8MTY7dCsrKUIoQVt0KzFdKTtmb3IodmFyIGU9MDtlPD0xMTtlKyspQihTW2VdKTtCKDE2KTtmb3IodmFyIHI9MDtyPDE2O3IrKylCKF9bcisxXSk7Zm9yKHZhciBuPTA7bjw9MTYxO24rKylCKFBbbl0pO0IoMSk7Zm9yKHZhciBpPTA7aTwxNjtpKyspQihrW2krMV0pO2Zvcih2YXIgYT0wO2E8PTExO2ErKylCKEZbYV0pO0IoMTcpO2Zvcih2YXIgbz0wO288MTY7bysrKUIoSVtvKzFdKTtmb3IodmFyIHM9MDtzPD0xNjE7cysrKUIoQ1tzXSl9KCkscSg2NTQ5OCkscSgxMiksQigzKSxCKDEpLEIoMCksQigyKSxCKDE3KSxCKDMpLEIoMTcpLEIoMCksQig2MyksQigwKTt2YXIgbz0wLGg9MCxmPTA7bT0wLHY9Nyx0aGlzLmVuY29kZS5kaXNwbGF5TmFtZT1cIl9lbmNvZGVfXCI7Zm9yKHZhciBkLHAsTix4LGosUixELFQseixVPXQuZGF0YSxIPXQud2lkdGgsVz10LmhlaWdodCxWPTQqSCxHPTA7RzxXOyl7Zm9yKGQ9MDtkPFY7KXtmb3Ioaj1WKkcrZCxEPS0xLFQ9MCx6PTA7ejw2NDt6KyspUj1qKyhUPXo+PjMpKlYrKEQ9NCooNyZ6KSksRytUPj1XJiYoUi09ViooRysxK1QtVykpLGQrRD49ViYmKFItPWQrRC1WKzQpLHA9VVtSKytdLE49VVtSKytdLHg9VVtSKytdLGJbel09KExbcF0rTFtOKzI1NnwwXStMW3grNTEyfDBdPj4xNiktMTI4LHlbel09KExbcCs3Njh8MF0rTFtOKzEwMjR8MF0rTFt4KzEyODB8MF0+PjE2KS0xMjgsd1t6XT0oTFtwKzEyODB8MF0rTFtOKzE1MzZ8MF0rTFt4KzE3OTJ8MF0+PjE2KS0xMjg7bz1NKGIsdSxvLGUsbiksaD1NKHksbCxoLHIsaSksZj1NKHcsbCxmLHIsaSksZCs9MzJ9Rys9OH1pZih2Pj0wKXt2YXIgWT1bXTtZWzFdPXYrMSxZWzBdPSgxPDx2KzEpLTEsTyhZKX1yZXR1cm4gcSg2NTQ5NyksbmV3IFVpbnQ4QXJyYXkoZyl9LHQ9dHx8NTAsZnVuY3Rpb24oKXtmb3IodmFyIHQ9U3RyaW5nLmZyb21DaGFyQ29kZSxlPTA7ZTwyNTY7ZSsrKU5bZV09dChlKX0oKSxlPWooQSxTKSxyPWooayxGKSxuPWooXyxQKSxpPWooSSxDKSxmdW5jdGlvbigpe2Zvcih2YXIgdD0xLGU9MixyPTE7cjw9MTU7cisrKXtmb3IodmFyIG49dDtuPGU7bisrKWZbMzI3Njcrbl09cixoWzMyNzY3K25dPVtdLGhbMzI3Njcrbl1bMV09cixoWzMyNzY3K25dWzBdPW47Zm9yKHZhciBpPS0oZS0xKTtpPD0tdDtpKyspZlszMjc2NytpXT1yLGhbMzI3NjcraV09W10saFszMjc2NytpXVsxXT1yLGhbMzI3NjcraV1bMF09ZS0xK2k7dDw8PTEsZTw8PTF9fSgpLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDwyNTY7dCsrKUxbdF09MTk1OTUqdCxMW3QrMjU2fDBdPTM4NDcwKnQsTFt0KzUxMnwwXT03NDcxKnQrMzI3NjgsTFt0Kzc2OHwwXT0tMTEwNTkqdCxMW3QrMTAyNHwwXT0tMjE3MDkqdCxMW3QrMTI4MHwwXT0zMjc2OCp0Kzg0MjEzNzUsTFt0KzE1MzZ8MF09LTI3NDM5KnQsTFt0KzE3OTJ8MF09LTUzMjkqdH0oKSxFKHQpfVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IChjKSAyMDE3IEFyYXMgQWJiYXNpXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlXG4gKi9mdW5jdGlvbiB0ZSh0LGUpe2lmKHRoaXMucG9zPTAsdGhpcy5idWZmZXI9dCx0aGlzLmRhdGF2PW5ldyBEYXRhVmlldyh0LmJ1ZmZlciksdGhpcy5pc193aXRoX2FscGhhPSEhZSx0aGlzLmJvdHRvbV91cD0hMCx0aGlzLmZsYWc9U3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLmJ1ZmZlclswXSkrU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLmJ1ZmZlclsxXSksdGhpcy5wb3MrPTIsLTE9PT1bXCJCTVwiLFwiQkFcIixcIkNJXCIsXCJDUFwiLFwiSUNcIixcIlBUXCJdLmluZGV4T2YodGhpcy5mbGFnKSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIEJNUCBGaWxlXCIpO3RoaXMucGFyc2VIZWFkZXIoKSx0aGlzLnBhcnNlQkdSKCl9ZnVuY3Rpb24gZWUodCl7ZnVuY3Rpb24gZSh0KXtpZighdCl0aHJvdyBFcnJvcihcImFzc2VydCA6UFwiKX1mdW5jdGlvbiByKHQsZSxyKXtmb3IodmFyIG49MDs0Pm47bisrKWlmKHRbZStuXSE9ci5jaGFyQ29kZUF0KG4pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIG4odCxlLHIsbixpKXtmb3IodmFyIGE9MDthPGk7YSsrKXRbZSthXT1yW24rYV19ZnVuY3Rpb24gaSh0LGUscixuKXtmb3IodmFyIGk9MDtpPG47aSsrKXRbZStpXT1yfWZ1bmN0aW9uIGEodCl7cmV0dXJuIG5ldyBJbnQzMkFycmF5KHQpfWZ1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9W10sbj0wO248dDtuKyspci5wdXNoKG5ldyBlKTtyZXR1cm4gcn1mdW5jdGlvbiBzKHQsZSl7dmFyIHI9W107cmV0dXJuIGZ1bmN0aW9uIHQocixuLGkpe2Zvcih2YXIgYT1pW25dLG89MDtvPGEmJihyLnB1c2goaS5sZW5ndGg+bisxP1tdOm5ldyBlKSwhKGkubGVuZ3RoPG4rMSkpO28rKyl0KHJbb10sbisxLGkpfShyLDAsdCkscn12YXIgYz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7ZnVuY3Rpb24gYyh0LGUpe2Zvcih2YXIgcj0xPDxlLTE+Pj4wO3Qmcjspcj4+Pj0xO3JldHVybiByPyh0JnItMSkrcjp0fWZ1bmN0aW9uIHUodCxyLG4saSxhKXtlKCEoaSVuKSk7ZG97dFtyKyhpLT1uKV09YX13aGlsZSgwPGkpfWZ1bmN0aW9uIGwodCxyLG4saSxvKXtpZihlKDIzMjg+PW8pLDUxMj49byl2YXIgcz1hKDUxMik7ZWxzZSBpZihudWxsPT0ocz1hKG8pKSlyZXR1cm4gMDtyZXR1cm4gZnVuY3Rpb24odCxyLG4saSxvLHMpe3ZhciBsLGYsZD1yLHA9MTw8bixnPWEoMTYpLG09YSgxNik7Zm9yKGUoMCE9byksZShudWxsIT1pKSxlKG51bGwhPXQpLGUoMDxuKSxmPTA7ZjxvOysrZil7aWYoMTU8aVtmXSlyZXR1cm4gMDsrK2dbaVtmXV19aWYoZ1swXT09bylyZXR1cm4gMDtmb3IobVsxXT0wLGw9MTsxNT5sOysrbCl7aWYoZ1tsXT4xPDxsKXJldHVybiAwO21bbCsxXT1tW2xdK2dbbF19Zm9yKGY9MDtmPG87KytmKWw9aVtmXSwwPGlbZl0mJihzW21bbF0rK109Zik7aWYoMT09bVsxNV0pcmV0dXJuKGk9bmV3IGgpLmc9MCxpLnZhbHVlPXNbMF0sdSh0LGQsMSxwLGkpLHA7dmFyIHYsYj0tMSx5PXAtMSx3PTAsTj0xLEw9MSx4PTE8PG47Zm9yKGY9MCxsPTEsbz0yO2w8PW47KytsLG88PD0xKXtpZihOKz1MPDw9MSwwPihMLT1nW2xdKSlyZXR1cm4gMDtmb3IoOzA8Z1tsXTstLWdbbF0pKGk9bmV3IGgpLmc9bCxpLnZhbHVlPXNbZisrXSx1KHQsZCt3LG8seCxpKSx3PWModyxsKX1mb3IobD1uKzEsbz0yOzE1Pj1sOysrbCxvPDw9MSl7aWYoTis9TDw8PTEsMD4oTC09Z1tsXSkpcmV0dXJuIDA7Zm9yKDswPGdbbF07LS1nW2xdKXtpZihpPW5ldyBoLCh3JnkpIT1iKXtmb3IoZCs9eCx2PTE8PChiPWwpLW47MTU+YiYmISgwPj0odi09Z1tiXSkpOykrK2Isdjw8PTE7cCs9eD0xPDwodj1iLW4pLHRbcisoYj13JnkpXS5nPXYrbix0W3IrYl0udmFsdWU9ZC1yLWJ9aS5nPWwtbixpLnZhbHVlPXNbZisrXSx1KHQsZCsodz4+biksbyx4LGkpLHc9Yyh3LGwpfX1yZXR1cm4gTiE9MiptWzE1XS0xPzA6cH0odCxyLG4saSxvLHMpfWZ1bmN0aW9uIGgoKXt0aGlzLnZhbHVlPXRoaXMuZz0wfWZ1bmN0aW9uIGYoKXt0aGlzLnZhbHVlPXRoaXMuZz0wfWZ1bmN0aW9uIGQoKXt0aGlzLkc9byg1LGgpLHRoaXMuSD1hKDUpLHRoaXMuamM9dGhpcy5RYj10aGlzLnFiPXRoaXMubmQ9MCx0aGlzLnBkPW8oRXIsZil9ZnVuY3Rpb24gcCh0LHIsbixpKXtlKG51bGwhPXQpLGUobnVsbCE9ciksZSgyMTQ3NDgzNjQ4PmkpLHQuQ2E9MjU0LHQuST0wLHQuYj0tOCx0LkthPTAsdC5vYT1yLHQucGE9bix0LkpkPXIsdC5ZYz1uK2ksdC5aYz00PD1pP24raS00KzE6bixfKHQpfWZ1bmN0aW9uIGcodCxlKXtmb3IodmFyIHI9MDswPGUtLTspcnw9ayh0LDEyOCk8PGU7cmV0dXJuIHJ9ZnVuY3Rpb24gbSh0LGUpe3ZhciByPWcodCxlKTtyZXR1cm4gUCh0KT8tcjpyfWZ1bmN0aW9uIHYodCxyLG4saSl7dmFyIGEsbz0wO2ZvcihlKG51bGwhPXQpLGUobnVsbCE9ciksZSg0Mjk0OTY3Mjg4PmkpLHQuU2I9aSx0LlJhPTAsdC51PTAsdC5oPTAsNDxpJiYoaT00KSxhPTA7YTxpOysrYSlvKz1yW24rYV08PDgqYTt0LlJhPW8sdC5iYj1pLHQub2E9cix0LnBhPW59ZnVuY3Rpb24gYih0KXtmb3IoOzg8PXQudSYmdC5iYjx0LlNiOyl0LlJhPj4+PTgsdC5SYSs9dC5vYVt0LnBhK3QuYmJdPDxUci04Pj4+MCwrK3QuYmIsdC51LT04O3godCkmJih0Lmg9MSx0LnU9MCl9ZnVuY3Rpb24geSh0LHIpe2lmKGUoMDw9ciksIXQuaCYmcjw9RHIpe3ZhciBuPUwodCkmUnJbcl07cmV0dXJuIHQudSs9cixiKHQpLG59cmV0dXJuIHQuaD0xLHQudT0wfWZ1bmN0aW9uIHcoKXt0aGlzLmI9dGhpcy5DYT10aGlzLkk9MCx0aGlzLm9hPVtdLHRoaXMucGE9MCx0aGlzLkpkPVtdLHRoaXMuWWM9MCx0aGlzLlpjPVtdLHRoaXMuS2E9MH1mdW5jdGlvbiBOKCl7dGhpcy5SYT0wLHRoaXMub2E9W10sdGhpcy5oPXRoaXMudT10aGlzLmJiPXRoaXMuU2I9dGhpcy5wYT0wfWZ1bmN0aW9uIEwodCl7cmV0dXJuIHQuUmE+Pj4odC51JlRyLTEpPj4+MH1mdW5jdGlvbiB4KHQpe3JldHVybiBlKHQuYmI8PXQuU2IpLHQuaHx8dC5iYj09dC5TYiYmdC51PlRyfWZ1bmN0aW9uIEEodCxlKXt0LnU9ZSx0Lmg9eCh0KX1mdW5jdGlvbiBTKHQpe3QudT49enImJihlKHQudT49enIpLGIodCkpfWZ1bmN0aW9uIF8odCl7ZShudWxsIT10JiZudWxsIT10Lm9hKSx0LnBhPHQuWmM/KHQuST0odC5vYVt0LnBhKytdfHQuSTw8OCk+Pj4wLHQuYis9OCk6KGUobnVsbCE9dCYmbnVsbCE9dC5vYSksdC5wYTx0LlljPyh0LmIrPTgsdC5JPXQub2FbdC5wYSsrXXx0Lkk8PDgpOnQuS2E/dC5iPTA6KHQuSTw8PTgsdC5iKz04LHQuS2E9MSkpfWZ1bmN0aW9uIFAodCl7cmV0dXJuIGcodCwxKX1mdW5jdGlvbiBrKHQsZSl7dmFyIHI9dC5DYTswPnQuYiYmXyh0KTt2YXIgbj10LmIsaT1yKmU+Pj44LGE9KHQuST4+Pm4+aSkrMDtmb3IoYT8oci09aSx0LkktPWkrMTw8bj4+PjApOnI9aSsxLG49cixpPTA7MjU2PD1uOylpKz04LG4+Pj04O3JldHVybiBuPTdeaStVcltuXSx0LmItPW4sdC5DYT0ocjw8biktMSxhfWZ1bmN0aW9uIEYodCxlLHIpe3RbZSswXT1yPj4yNCYyNTUsdFtlKzFdPXI+PjE2JjI1NSx0W2UrMl09cj4+OCYyNTUsdFtlKzNdPTI1NSZyfWZ1bmN0aW9uIEkodCxlKXtyZXR1cm4gdFtlKzBdfHRbZSsxXTw8OH1mdW5jdGlvbiBDKHQsZSl7cmV0dXJuIEkodCxlKXx0W2UrMl08PDE2fWZ1bmN0aW9uIGoodCxlKXtyZXR1cm4gSSh0LGUpfEkodCxlKzIpPDwxNn1mdW5jdGlvbiBPKHQscil7dmFyIG49MTw8cjtyZXR1cm4gZShudWxsIT10KSxlKDA8ciksdC5YPWEobiksbnVsbD09dC5YPzA6KHQuTWI9MzItcix0LlhhPXIsMSl9ZnVuY3Rpb24gQih0LHIpe2UobnVsbCE9dCksZShudWxsIT1yKSxlKHQuWGE9PXIuWGEpLG4oci5YLDAsdC5YLDAsMTw8ci5YYSl9ZnVuY3Rpb24gcSgpe3RoaXMuWD1bXSx0aGlzLlhhPXRoaXMuTWI9MH1mdW5jdGlvbiBNKHQscixuLGkpe2UobnVsbCE9biksZShudWxsIT1pKTt2YXIgYT1uWzBdLG89aVswXTtyZXR1cm4gMD09YSYmKGE9KHQqbytyLzIpL3IpLDA9PW8mJihvPShyKmErdC8yKS90KSwwPj1hfHwwPj1vPzA6KG5bMF09YSxpWzBdPW8sMSl9ZnVuY3Rpb24gRSh0LGUpe3JldHVybiB0KygxPDxlKS0xPj4+ZX1mdW5jdGlvbiBSKHQsZSl7cmV0dXJuKCg0Mjc4MjU1MzYwJnQpKyg0Mjc4MjU1MzYwJmUpPj4+MCY0Mjc4MjU1MzYwKSsoKDE2NzExOTM1JnQpKygxNjcxMTkzNSZlKT4+PjAmMTY3MTE5MzUpPj4+MH1mdW5jdGlvbiBEKGUscil7dFtyXT1mdW5jdGlvbihyLG4saSxhLG8scyxjKXt2YXIgdTtmb3IodT0wO3U8bzsrK3Upe3ZhciBsPXRbZV0oc1tjK3UtMV0saSxhK3UpO3NbYyt1XT1SKHJbbit1XSxsKX19fWZ1bmN0aW9uIFQoKXt0aGlzLnVkPXRoaXMuaGQ9dGhpcy5qZD0wfWZ1bmN0aW9uIHoodCxlKXtyZXR1cm4oKDQyNzgxMjQyODYmKHReZSkpPj4+MSkrKHQmZSk+Pj4wfWZ1bmN0aW9uIFUodCl7cmV0dXJuIDA8PXQmJjI1Nj50P3Q6MD50PzA6MjU1PHQ/MjU1OnZvaWQgMH1mdW5jdGlvbiBIKHQsZSl7cmV0dXJuIFUodCsodC1lKy41Pj4xKSl9ZnVuY3Rpb24gVyh0LGUscil7cmV0dXJuIE1hdGguYWJzKGUtciktTWF0aC5hYnModC1yKX1mdW5jdGlvbiBWKHQsZSxyLG4saSxhLG8pe2ZvcihuPWFbby0xXSxyPTA7cjxpOysrcilhW28rcl09bj1SKHRbZStyXSxuKX1mdW5jdGlvbiBHKHQsZSxyLG4saSl7dmFyIGE7Zm9yKGE9MDthPHI7KythKXt2YXIgbz10W2UrYV0scz1vPj44JjI1NSxjPTE2NzExOTM1JihjPShjPTE2NzExOTM1Jm8pKygoczw8MTYpK3MpKTtuW2krYV09KDQyNzgyNTUzNjAmbykrYz4+PjB9fWZ1bmN0aW9uIFkodCxlKXtlLmpkPTI1NSZ0LGUuaGQ9dD4+OCYyNTUsZS51ZD10Pj4xNiYyNTV9ZnVuY3Rpb24gSih0LGUscixuLGksYSl7dmFyIG87Zm9yKG89MDtvPG47KytvKXt2YXIgcz1lW3Irb10sYz1zPj4+OCx1PXMsbD0yNTUmKGw9KGw9cz4+PjE2KSsoKHQuamQ8PDI0Pj4yNCkqKGM8PDI0Pj4yNCk+Pj41KSk7dT0yNTUmKHU9KHUrPSh0LmhkPDwyND4+MjQpKihjPDwyND4+MjQpPj4+NSkrKCh0LnVkPDwyND4+MjQpKihsPDwyND4+MjQpPj4+NSkpLGlbYStvXT0oNDI3ODI1NTM2MCZzKSsobDw8MTYpK3V9fWZ1bmN0aW9uIFgoZSxyLG4saSxhKXt0W3JdPWZ1bmN0aW9uKHQsZSxyLG4sbyxzLGMsdSxsKXtmb3Iobj1jO248dTsrK24pZm9yKGM9MDtjPGw7KytjKW9bcysrXT1hKHJbaSh0W2UrK10pXSl9LHRbZV09ZnVuY3Rpb24oZSxyLG8scyxjLHUsbCl7dmFyIGg9OD4+ZS5iLGY9ZS5FYSxkPWUuS1swXSxwPWUudztpZig4PmgpZm9yKGU9KDE8PGUuYiktMSxwPSgxPDxoKS0xO3I8bzsrK3Ipe3ZhciBnLG09MDtmb3IoZz0wO2c8ZjsrK2cpZyZlfHwobT1pKHNbYysrXSkpLHVbbCsrXT1hKGRbbSZwXSksbT4+PWh9ZWxzZSB0W1wiVlA4TE1hcENvbG9yXCIrbl0ocyxjLGQscCx1LGwscixvLGYpfX1mdW5jdGlvbiBLKHQsZSxyLG4saSl7Zm9yKHI9ZStyO2U8cjspe3ZhciBhPXRbZSsrXTtuW2krK109YT4+MTYmMjU1LG5baSsrXT1hPj44JjI1NSxuW2krK109MjU1JmF9fWZ1bmN0aW9uICQodCxlLHIsbixpKXtmb3Iocj1lK3I7ZTxyOyl7dmFyIGE9dFtlKytdO25baSsrXT1hPj4xNiYyNTUsbltpKytdPWE+PjgmMjU1LG5baSsrXT0yNTUmYSxuW2krK109YT4+MjQmMjU1fX1mdW5jdGlvbiBaKHQsZSxyLG4saSl7Zm9yKHI9ZStyO2U8cjspe3ZhciBhPShvPXRbZSsrXSk+PjE2JjI0MHxvPj4xMiYxNSxvPTI0MCZvfG8+PjI4JjE1O25baSsrXT1hLG5baSsrXT1vfX1mdW5jdGlvbiBRKHQsZSxyLG4saSl7Zm9yKHI9ZStyO2U8cjspe3ZhciBhPShvPXRbZSsrXSk+PjE2JjI0OHxvPj4xMyY3LG89bz4+NSYyMjR8bz4+MyYzMTtuW2krK109YSxuW2krK109b319ZnVuY3Rpb24gdHQodCxlLHIsbixpKXtmb3Iocj1lK3I7ZTxyOyl7dmFyIGE9dFtlKytdO25baSsrXT0yNTUmYSxuW2krK109YT4+OCYyNTUsbltpKytdPWE+PjE2JjI1NX19ZnVuY3Rpb24gZXQodCxlLHIsaSxhLG8pe2lmKDA9PW8pZm9yKHI9ZStyO2U8cjspRihpLCgobz10W2UrK10pWzBdPj4yNHxvWzFdPj44JjY1MjgwfG9bMl08PDgmMTY3MTE2ODB8b1szXTw8MjQpPj4+MCksYSs9MzI7ZWxzZSBuKGksYSx0LGUscil9ZnVuY3Rpb24gcnQoZSxyKXt0W3JdWzBdPXRbZStcIjBcIl0sdFtyXVsxXT10W2UrXCIxXCJdLHRbcl1bMl09dFtlK1wiMlwiXSx0W3JdWzNdPXRbZStcIjNcIl0sdFtyXVs0XT10W2UrXCI0XCJdLHRbcl1bNV09dFtlK1wiNVwiXSx0W3JdWzZdPXRbZStcIjZcIl0sdFtyXVs3XT10W2UrXCI3XCJdLHRbcl1bOF09dFtlK1wiOFwiXSx0W3JdWzldPXRbZStcIjlcIl0sdFtyXVsxMF09dFtlK1wiMTBcIl0sdFtyXVsxMV09dFtlK1wiMTFcIl0sdFtyXVsxMl09dFtlK1wiMTJcIl0sdFtyXVsxM109dFtlK1wiMTNcIl0sdFtyXVsxNF09dFtlK1wiMFwiXSx0W3JdWzE1XT10W2UrXCIwXCJdfWZ1bmN0aW9uIG50KHQpe3JldHVybiB0PT1Vbnx8dD09SG58fHQ9PVdufHx0PT1Wbn1mdW5jdGlvbiBpdCgpe3RoaXMuZWI9W10sdGhpcy5zaXplPXRoaXMuQT10aGlzLmZiPTB9ZnVuY3Rpb24gYXQoKXt0aGlzLnk9W10sdGhpcy5mPVtdLHRoaXMuZWE9W10sdGhpcy5GPVtdLHRoaXMuVGM9dGhpcy5FZD10aGlzLkNkPXRoaXMuRmQ9dGhpcy5sYj10aGlzLkRiPXRoaXMuQWI9dGhpcy5mYT10aGlzLko9dGhpcy5XPXRoaXMuTj10aGlzLk89MH1mdW5jdGlvbiBvdCgpe3RoaXMuUmQ9dGhpcy5oZWlnaHQ9dGhpcy53aWR0aD10aGlzLlM9MCx0aGlzLmY9e30sdGhpcy5mLlJHQkE9bmV3IGl0LHRoaXMuZi5rYj1uZXcgYXQsdGhpcy5zZD1udWxsfWZ1bmN0aW9uIHN0KCl7dGhpcy53aWR0aD1bMF0sdGhpcy5oZWlnaHQ9WzBdLHRoaXMuUGQ9WzBdLHRoaXMuUWQ9WzBdLHRoaXMuZm9ybWF0PVswXX1mdW5jdGlvbiBjdCgpe3RoaXMuSWQ9dGhpcy5mZD10aGlzLk1kPXRoaXMuaGI9dGhpcy5pYj10aGlzLmRhPXRoaXMuYmQ9dGhpcy5jZD10aGlzLmo9dGhpcy52PXRoaXMuRGE9dGhpcy5TZD10aGlzLm9iPTB9ZnVuY3Rpb24gdXQodCl7cmV0dXJuIGFsZXJ0KFwidG9kbzpXZWJQU2FtcGxlclByb2Nlc3NQbGFuZVwiKSx0LlR9ZnVuY3Rpb24gbHQodCxlKXt2YXIgcj10LlQsaT1lLmJhLmYuUkdCQSxhPWkuZWIsbz1pLmZiK3Qua2EqaS5BLHM9bWlbZS5iYS5TXSxjPXQueSx1PXQuTyxsPXQuZixoPXQuTixmPXQuZWEsZD10LlcscD1lLmNjLGc9ZS5kYyxtPWUuTWMsdj1lLk5jLGI9dC5rYSx5PXQua2ErdC5ULHc9dC5VLE49dysxPj4xO2ZvcigwPT1iP3MoYyx1LG51bGwsbnVsbCxsLGgsZixkLGwsaCxmLGQsYSxvLG51bGwsbnVsbCx3KToocyhlLmVjLGUuZmMsYyx1LHAsZyxtLHYsbCxoLGYsZCxhLG8taS5BLGEsbyx3KSwrK3IpO2IrMjx5O2IrPTIpcD1sLGc9aCxtPWYsdj1kLGgrPXQuUmMsZCs9dC5SYyxvKz0yKmkuQSxzKGMsKHUrPTIqdC5mYSktdC5mYSxjLHUscCxnLG0sdixsLGgsZixkLGEsby1pLkEsYSxvLHcpO3JldHVybiB1Kz10LmZhLHQuait5PHQubz8obihlLmVjLGUuZmMsYyx1LHcpLG4oZS5jYyxlLmRjLGwsaCxOKSxuKGUuTWMsZS5OYyxmLGQsTiksci0tKToxJnl8fHMoYyx1LG51bGwsbnVsbCxsLGgsZixkLGwsaCxmLGQsYSxvK2kuQSxudWxsLG51bGwsdykscn1mdW5jdGlvbiBodCh0LHIsbil7dmFyIGk9dC5GLGE9W3QuSl07aWYobnVsbCE9aSl7dmFyIG89dC5VLHM9ci5iYS5TLGM9cz09RG58fHM9PVduO3I9ci5iYS5mLlJHQkE7dmFyIHU9WzBdLGw9dC5rYTt1WzBdPXQuVCx0LktiJiYoMD09bD8tLXVbMF06KC0tbCxhWzBdLT10LndpZHRoKSx0LmordC5rYSt0LlQ9PXQubyYmKHVbMF09dC5vLXQuai1sKSk7dmFyIGg9ci5lYjtsPXIuZmIrbCpyLkEsdD1BbihpLGFbMF0sdC53aWR0aCxvLHUsaCxsKyhjPzA6Myksci5BKSxlKG49PXUpLHQmJm50KHMpJiZMbihoLGwsYyxvLHUsci5BKX1yZXR1cm4gMH1mdW5jdGlvbiBmdCh0KXt2YXIgZT10Lm1hLHI9ZS5iYS5TLG49MTE+cixpPXI9PU1ufHxyPT1Sbnx8cj09RG58fHI9PVRufHwxMj09cnx8bnQocik7aWYoZS5tZW1vcnk9bnVsbCxlLkliPW51bGwsZS5KYj1udWxsLGUuTmQ9bnVsbCwhQnIoZS5PYSx0LGk/MTE6MTIpKXJldHVybiAwO2lmKGkmJm50KHIpJiZ2cigpLHQuZGEpYWxlcnQoXCJ0b2RvOnVzZV9zY2FsaW5nXCIpO2Vsc2V7aWYobil7aWYoZS5JYj11dCx0LktiKXtpZihyPXQuVSsxPj4xLGUubWVtb3J5PWEodC5VKzIqciksbnVsbD09ZS5tZW1vcnkpcmV0dXJuIDA7ZS5lYz1lLm1lbW9yeSxlLmZjPTAsZS5jYz1lLmVjLGUuZGM9ZS5mYyt0LlUsZS5NYz1lLmNjLGUuTmM9ZS5kYytyLGUuSWI9bHQsdnIoKX19ZWxzZSBhbGVydChcInRvZG86RW1pdFlVVlwiKTtpJiYoZS5KYj1odCxuJiZncigpKX1pZihuJiYhSWkpe2Zvcih0PTA7MjU2PnQ7Kyt0KUNpW3RdPTg5ODU4Kih0LTEyOCkrU2k+PkFpLEJpW3RdPS0yMjAxNCoodC0xMjgpK1NpLE9pW3RdPS00NTc3MyoodC0xMjgpLGppW3RdPTExMzYxOCoodC0xMjgpK1NpPj5BaTtmb3IodD1faTt0PFBpOysrdCllPTc2MjgzKih0LTE2KStTaT4+QWkscWlbdC1faV09VnQoZSwyNTUpLE1pW3QtX2ldPVZ0KGUrOD4+NCwxNSk7SWk9MX1yZXR1cm4gMX1mdW5jdGlvbiBkdCh0KXt2YXIgcj10Lm1hLG49dC5VLGk9dC5UO3JldHVybiBlKCEoMSZ0LmthKSksMD49bnx8MD49aT8wOihuPXIuSWIodCxyKSxudWxsIT1yLkpiJiZyLkpiKHQscixuKSxyLkRjKz1uLDEpfWZ1bmN0aW9uIHB0KHQpe3QubWEubWVtb3J5PW51bGx9ZnVuY3Rpb24gZ3QodCxlLHIsbil7cmV0dXJuIDQ3IT15KHQsOCk/MDooZVswXT15KHQsMTQpKzEsclswXT15KHQsMTQpKzEsblswXT15KHQsMSksMCE9eSh0LDMpPzA6IXQuaCl9ZnVuY3Rpb24gbXQodCxlKXtpZig0PnQpcmV0dXJuIHQrMTt2YXIgcj10LTI+PjE7cmV0dXJuKDIrKDEmdCk8PHIpK3koZSxyKSsxfWZ1bmN0aW9uIHZ0KHQsZSl7cmV0dXJuIDEyMDxlP2UtMTIwOjE8PShyPSgocj0kbltlLTFdKT4+NCkqdCsoOC0oMTUmcikpKT9yOjE7dmFyIHJ9ZnVuY3Rpb24gYnQodCxlLHIpe3ZhciBuPUwociksaT10W2UrPTI1NSZuXS5nLTg7cmV0dXJuIDA8aSYmKEEocixyLnUrOCksbj1MKHIpLGUrPXRbZV0udmFsdWUsZSs9biYoMTw8aSktMSksQShyLHIudSt0W2VdLmcpLHRbZV0udmFsdWV9ZnVuY3Rpb24geXQodCxyLG4pe3JldHVybiBuLmcrPXQuZyxuLnZhbHVlKz10LnZhbHVlPDxyPj4+MCxlKDg+PW4uZyksdC5nfWZ1bmN0aW9uIHd0KHQscixuKXt2YXIgaT10LnhjO3JldHVybiBlKChyPTA9PWk/MDp0LnZjW3QubWQqKG4+PmkpKyhyPj5pKV0pPHQuV2IpLHQuWWFbcl19ZnVuY3Rpb24gTnQodCxyLGksYSl7dmFyIG89dC5hYixzPXQuYypyLGM9dC5DO3I9YytyO3ZhciB1PWksbD1hO2ZvcihhPXQuVGEsaT10LlVhOzA8by0tOyl7dmFyIGg9dC5nY1tvXSxmPWMsZD1yLHA9dSxnPWwsbT0obD1hLHU9aSxoLkVhKTtzd2l0Y2goZShmPGQpLGUoZDw9aC5uYyksaC5oYyl7Y2FzZSAyOlZyKHAsZywoZC1mKSptLGwsdSk7YnJlYWs7Y2FzZSAwOnZhciB2PWYsYj1kLHk9bCx3PXUsTj0oXz1oKS5FYTswPT12JiYoSHIocCxnLG51bGwsbnVsbCwxLHksdyksVihwLGcrMSwwLDAsTi0xLHksdysxKSxnKz1OLHcrPU4sKyt2KTtmb3IodmFyIEw9MTw8Xy5iLHg9TC0xLEE9RShOLF8uYiksUz1fLkssXz1fLncrKHY+Pl8uYikqQTt2PGI7KXt2YXIgUD1TLGs9XyxGPTE7Zm9yKFdyKHAsZyx5LHctTiwxLHksdyk7RjxOOyl7dmFyIEk9KEYmfngpK0w7ST5OJiYoST1OKSwoMCxLcltQW2srK10+PjgmMTVdKShwLGcrICtGLHksdytGLU4sSS1GLHksdytGKSxGPUl9Zys9Tix3Kz1OLCsrdiZ4fHwoXys9QSl9ZCE9aC5uYyYmbihsLHUtbSxsLHUrKGQtZi0xKSptLG0pO2JyZWFrO2Nhc2UgMTpmb3IobT1wLGI9ZyxOPShwPWguRWEpLSh3PXAmfih5PShnPTE8PGguYiktMSkpLHY9RShwLGguYiksTD1oLkssaD1oLncrKGY+PmguYikqdjtmPGQ7KXtmb3IoeD1MLEE9aCxTPW5ldyBULF89Yit3LFA9YitwO2I8XzspWSh4W0ErK10sUyksJHIoUyxtLGIsZyxsLHUpLGIrPWcsdSs9ZztiPFAmJihZKHhbQSsrXSxTKSwkcihTLG0sYixOLGwsdSksYis9Tix1Kz1OKSwrK2YmeXx8KGgrPXYpfWJyZWFrO2Nhc2UgMzppZihwPT1sJiZnPT11JiYwPGguYil7Zm9yKGI9bCxwPW09dSsoZC1mKSptLSh3PShkLWYpKkUoaC5FYSxoLmIpKSxnPWwseT11LHY9W10sdz0oTj13KS0xOzA8PXc7LS13KXZbd109Z1t5K3ddO2Zvcih3PU4tMTswPD13Oy0tdyliW3Ard109dlt3XTtHcihoLGYsZCxsLG0sbCx1KX1lbHNlIEdyKGgsZixkLHAsZyxsLHUpfXU9YSxsPWl9bCE9aSYmbihhLGksdSxsLHMpfWZ1bmN0aW9uIEx0KHQscil7dmFyIG49dC5WLGk9dC5CYSt0LmMqdC5DLGE9ci10LkM7aWYoZShyPD10LmwubyksZSgxNj49YSksMDxhKXt2YXIgbz10Lmwscz10LlRhLGM9dC5VYSx1PW8ud2lkdGg7aWYoTnQodCxhLG4saSksYT1jPVtjXSxlKChuPXQuQyk8KGk9cikpLGUoby52PG8udmEpLGk+by5vJiYoaT1vLm8pLG48by5qKXt2YXIgbD1vLmotbjtuPW8uaixhWzBdKz1sKnV9aWYobj49aT9uPTA6KGFbMF0rPTQqby52LG8ua2E9bi1vLmosby5VPW8udmEtby52LG8uVD1pLW4sbj0xKSxuKXtpZihjPWNbMF0sMTE+KG49dC5jYSkuUyl7dmFyIGg9bi5mLlJHQkEsZj0oaT1uLlMsYT1vLlUsbz1vLlQsbD1oLmViLGguQSksZD1vO2ZvcihoPWguZmIrdC5NYSpoLkE7MDxkLS07KXt2YXIgcD1zLGc9YyxtPWEsdj1sLGI9aDtzd2l0Y2goaSl7Y2FzZSBxbjpacihwLGcsbSx2LGIpO2JyZWFrO2Nhc2UgTW46UXIocCxnLG0sdixiKTticmVhaztjYXNlIFVuOlFyKHAsZyxtLHYsYiksTG4odixiLDAsbSwxLDApO2JyZWFrO2Nhc2UgRW46cm4ocCxnLG0sdixiKTticmVhaztjYXNlIFJuOmV0KHAsZyxtLHYsYiwxKTticmVhaztjYXNlIEhuOmV0KHAsZyxtLHYsYiwxKSxMbih2LGIsMCxtLDEsMCk7YnJlYWs7Y2FzZSBEbjpldChwLGcsbSx2LGIsMCk7YnJlYWs7Y2FzZSBXbjpldChwLGcsbSx2LGIsMCksTG4odixiLDEsbSwxLDApO2JyZWFrO2Nhc2UgVG46dG4ocCxnLG0sdixiKTticmVhaztjYXNlIFZuOnRuKHAsZyxtLHYsYikseG4odixiLG0sMSwwKTticmVhaztjYXNlIHpuOmVuKHAsZyxtLHYsYik7YnJlYWs7ZGVmYXVsdDplKDApfWMrPXUsaCs9Zn10Lk1hKz1vfWVsc2UgYWxlcnQoXCJ0b2RvOkVtaXRSZXNjYWxlZFJvd3NZVVZBXCIpO2UodC5NYTw9bi5oZWlnaHQpfX10LkM9cixlKHQuQzw9dC5pKX1mdW5jdGlvbiB4dCh0KXt2YXIgZTtpZigwPHQudWEpcmV0dXJuIDA7Zm9yKGU9MDtlPHQuV2I7KytlKXt2YXIgcj10LllhW2VdLkcsbj10LllhW2VdLkg7aWYoMDxyWzFdW25bMV0rMF0uZ3x8MDxyWzJdW25bMl0rMF0uZ3x8MDxyWzNdW25bM10rMF0uZylyZXR1cm4gMH1yZXR1cm4gMX1mdW5jdGlvbiBBdCh0LHIsbixpLGEsbyl7aWYoMCE9dC5aKXt2YXIgcz10LnFkLGM9dC5yZDtmb3IoZShudWxsIT1naVt0LlpdKTtyPG47KytyKWdpW3QuWl0ocyxjLGksYSxpLGEsbykscz1pLGM9YSxhKz1vO3QucWQ9cyx0LnJkPWN9fWZ1bmN0aW9uIFN0KHQscil7dmFyIG49dC5sLm1hLGk9MD09bi5afHwxPT1uLlo/dC5sLmo6dC5DO2lmKGk9dC5DPGk/aTp0LkMsZShyPD10Lmwubykscj5pKXt2YXIgYT10Lmwud2lkdGgsbz1uLmNhLHM9bi50YithKmksYz10LlYsdT10LkJhK3QuYyppLGw9dC5nYztlKDE9PXQuYWIpLGUoMz09bFswXS5oYyksSnIobFswXSxpLHIsYyx1LG8scyksQXQobixpLHIsbyxzLGEpfXQuQz10Lk1hPXJ9ZnVuY3Rpb24gX3QodCxyLG4saSxhLG8scyl7dmFyIGM9dC4kL2ksdT10LiQlaSxsPXQubSxoPXQucyxmPW4rdC4kLGQ9ZjthPW4raSphO3ZhciBwPW4raSpvLGc9MjgwK2gudWEsbT10LlBiP2M6MTY3NzcyMTYsdj0wPGgudWE/aC5XYTpudWxsLGI9aC53Yyx5PWY8cD93dChoLHUsYyk6bnVsbDtlKHQuQzxvKSxlKHA8PWEpO3ZhciB3PSExO3Q6Zm9yKDs7KXtmb3IoO3d8fGY8cDspe3ZhciBOPTA7aWYoYz49bSl7dmFyIF89Zi1uO2UoKG09dCkuUGIpLG0ud2Q9bS5tLG0ueGQ9XywwPG0ucy51YSYmQihtLnMuV2EsbS5zLnZiKSxtPWMrUW59aWYodSZifHwoeT13dChoLHUsYykpLGUobnVsbCE9eSkseS5RYiYmKHJbZl09eS5xYix3PSEwKSwhdylpZihTKGwpLHkuamMpe049bCxfPXI7dmFyIFA9ZixrPXkucGRbTChOKSZFci0xXTtlKHkuamMpLDI1Nj5rLmc/KEEoTixOLnUray5nKSxfW1BdPWsudmFsdWUsTj0wKTooQShOLE4udStrLmctMjU2KSxlKDI1Njw9ay52YWx1ZSksTj1rLnZhbHVlKSwwPT1OJiYodz0hMCl9ZWxzZSBOPWJ0KHkuR1swXSx5LkhbMF0sbCk7aWYobC5oKWJyZWFrO2lmKHd8fDI1Nj5OKXtpZighdylpZih5Lm5kKXJbZl09KHkucWJ8Tjw8OCk+Pj4wO2Vsc2V7aWYoUyhsKSx3PWJ0KHkuR1sxXSx5LkhbMV0sbCksUyhsKSxfPWJ0KHkuR1syXSx5LkhbMl0sbCksUD1idCh5LkdbM10seS5IWzNdLGwpLGwuaClicmVhaztyW2ZdPShQPDwyNHx3PDwxNnxOPDw4fF8pPj4+MH1pZih3PSExLCsrZiwrK3U+PWkmJih1PTAsKytjLG51bGwhPXMmJmM8PW8mJiEoYyUxNikmJnModCxjKSxudWxsIT12KSlmb3IoO2Q8ZjspTj1yW2QrK10sdi5YWyg1MDY4MzI4MjkqTiY0Mjk0OTY3Mjk1KT4+PnYuTWJdPU59ZWxzZSBpZigyODA+Til7aWYoTj1tdChOLTI1NixsKSxfPWJ0KHkuR1s0XSx5LkhbNF0sbCksUyhsKSxfPXZ0KGksXz1tdChfLGwpKSxsLmgpYnJlYWs7aWYoZi1uPF98fGEtZjxOKWJyZWFrIHQ7Zm9yKFA9MDtQPE47KytQKXJbZitQXT1yW2YrUC1fXTtmb3IoZis9Tix1Kz1OO3U+PWk7KXUtPWksKytjLG51bGwhPXMmJmM8PW8mJiEoYyUxNikmJnModCxjKTtpZihlKGY8PWEpLHUmYiYmKHk9d3QoaCx1LGMpKSxudWxsIT12KWZvcig7ZDxmOylOPXJbZCsrXSx2LlhbKDUwNjgzMjgyOSpOJjQyOTQ5NjcyOTUpPj4+di5NYl09Tn1lbHNle2lmKCEoTjxnKSlicmVhayB0O2Zvcih3PU4tMjgwLGUobnVsbCE9dik7ZDxmOylOPXJbZCsrXSx2LlhbKDUwNjgzMjgyOSpOJjQyOTQ5NjcyOTUpPj4+di5NYl09TjtOPWYsZSghKHc+Pj4oXz12KS5YYSkpLHJbTl09Xy5YW3ddLHc9ITB9d3x8ZShsLmg9PXgobCkpfWlmKHQuUGImJmwuaCYmZjxhKWUodC5tLmgpLHQuYT01LHQubT10LndkLHQuJD10LnhkLDA8dC5zLnVhJiZCKHQucy52Yix0LnMuV2EpO2Vsc2V7aWYobC5oKWJyZWFrIHQ7bnVsbCE9cyYmcyh0LGM+bz9vOmMpLHQuYT0wLHQuJD1mLW59cmV0dXJuIDF9cmV0dXJuIHQuYT0zLDB9ZnVuY3Rpb24gUHQodCl7ZShudWxsIT10KSx0LnZjPW51bGwsdC55Yz1udWxsLHQuWWE9bnVsbDt2YXIgcj10LldhO251bGwhPXImJihyLlg9bnVsbCksdC52Yj1udWxsLGUobnVsbCE9dCl9ZnVuY3Rpb24ga3QoKXt2YXIgZT1uZXcgYXI7cmV0dXJuIG51bGw9PWU/bnVsbDooZS5hPTAsZS54Yj1waSxydChcIlByZWRpY3RvclwiLFwiVlA4TFByZWRpY3RvcnNcIikscnQoXCJQcmVkaWN0b3JcIixcIlZQOExQcmVkaWN0b3JzX0NcIikscnQoXCJQcmVkaWN0b3JBZGRcIixcIlZQOExQcmVkaWN0b3JzQWRkXCIpLHJ0KFwiUHJlZGljdG9yQWRkXCIsXCJWUDhMUHJlZGljdG9yc0FkZF9DXCIpLFZyPUcsJHI9Sixacj1LLFFyPSQsdG49Wixlbj1RLHJuPXR0LHQuVlA4TE1hcENvbG9yMzJiPVlyLHQuVlA4TE1hcENvbG9yOGI9WHIsZSl9ZnVuY3Rpb24gRnQodCxyLG4scyxjKXt2YXIgdT0xLGY9W3RdLHA9W3JdLGc9cy5tLG09cy5zLHY9bnVsbCxiPTA7dDpmb3IoOzspe2lmKG4pZm9yKDt1JiZ5KGcsMSk7KXt2YXIgdz1mLE49cCx4PXMsXz0xLFA9eC5tLGs9eC5nY1t4LmFiXSxGPXkoUCwyKTtpZih4Lk9jJjE8PEYpdT0wO2Vsc2V7c3dpdGNoKHguT2N8PTE8PEYsay5oYz1GLGsuRWE9d1swXSxrLm5jPU5bMF0say5LPVtudWxsXSwrK3guYWIsZSg0Pj14LmFiKSxGKXtjYXNlIDA6Y2FzZSAxOmsuYj15KFAsMykrMixfPUZ0KEUoay5FYSxrLmIpLEUoay5uYyxrLmIpLDAseCxrLkspLGsuSz1rLktbMF07YnJlYWs7Y2FzZSAzOnZhciBJLEM9eShQLDgpKzEsaj0xNjxDPzA6NDxDPzE6MjxDPzI6MztpZih3WzBdPUUoay5FYSxqKSxrLmI9aixJPV89RnQoQywxLDAseCxrLkspKXt2YXIgQixxPUMsTT1rLEQ9MTw8KDg+Pk0uYiksVD1hKEQpO2lmKG51bGw9PVQpST0wO2Vsc2V7dmFyIHo9TS5LWzBdLFU9TS53O2ZvcihUWzBdPU0uS1swXVswXSxCPTE7QjwxKnE7KytCKVRbQl09Uih6W1UrQl0sVFtCLTFdKTtmb3IoO0I8NCpEOysrQilUW0JdPTA7TS5LWzBdPW51bGwsTS5LWzBdPVQsST0xfX1fPUk7YnJlYWs7Y2FzZSAyOmJyZWFrO2RlZmF1bHQ6ZSgwKX11PV99fWlmKGY9ZlswXSxwPXBbMF0sdSYmeShnLDEpJiYhKHU9MTw9KGI9eShnLDQpKSYmMTE+PWIpKXtzLmE9MzticmVhayB0fXZhciBIO2lmKEg9dSllOnt2YXIgVyxWLEcsWT1zLEo9ZixYPXAsSz1iLCQ9bixaPVkubSxRPVkucyx0dD1bbnVsbF0sZXQ9MSxydD0wLG50PVpuW0tdO3I6Zm9yKDs7KXtpZigkJiZ5KFosMSkpe3ZhciBpdD15KFosMykrMixhdD1FKEosaXQpLG90PUUoWCxpdCksc3Q9YXQqb3Q7aWYoIUZ0KGF0LG90LDAsWSx0dCkpYnJlYWsgcjtmb3IodHQ9dHRbMF0sUS54Yz1pdCxXPTA7VzxzdDsrK1cpe3ZhciBjdD10dFtXXT4+OCY2NTUzNTt0dFtXXT1jdCxjdD49ZXQmJihldD1jdCsxKX19aWYoWi5oKWJyZWFrIHI7Zm9yKFY9MDs1PlY7KytWKXt2YXIgdXQ9Sm5bVl07IVYmJjA8SyYmKHV0Kz0xPDxLKSxydDx1dCYmKHJ0PXV0KX12YXIgbHQ9byhldCpudCxoKSxodD1ldCxmdD1vKGh0LGQpO2lmKG51bGw9PWZ0KXZhciBkdD1udWxsO2Vsc2UgZSg2NTUzNj49aHQpLGR0PWZ0O3ZhciBwdD1hKHJ0KTtpZihudWxsPT1kdHx8bnVsbD09cHR8fG51bGw9PWx0KXtZLmE9MTticmVhayByfXZhciBndD1sdDtmb3IoVz1HPTA7VzxldDsrK1cpe3ZhciBtdD1kdFtXXSx2dD1tdC5HLGJ0PW10Lkgsd3Q9MCxOdD0xLEx0PTA7Zm9yKFY9MDs1PlY7KytWKXt1dD1KbltWXSx2dFtWXT1ndCxidFtWXT1HLCFWJiYwPEsmJih1dCs9MTw8Syk7bjp7dmFyIHh0LEF0PXV0LFN0PVksa3Q9cHQsSXQ9Z3QsQ3Q9RyxqdD0wLE90PVN0Lm0sQnQ9eShPdCwxKTtpZihpKGt0LDAsMCxBdCksQnQpe3ZhciBxdD15KE90LDEpKzEsTXQ9eShPdCwxKSxFdD15KE90LDA9PU10PzE6OCk7a3RbRXRdPTEsMj09cXQmJihrdFtFdD15KE90LDgpXT0xKTt2YXIgUnQ9MX1lbHNle3ZhciBEdD1hKDE5KSxUdD15KE90LDQpKzQ7aWYoMTk8VHQpe1N0LmE9Mzt2YXIgenQ9MDticmVhayBufWZvcih4dD0wO3h0PFR0OysreHQpRHRbS25beHRdXT15KE90LDMpO3ZhciBVdD12b2lkIDAsSHQ9dm9pZCAwLFd0PVN0LFZ0PUR0LEd0PUF0LFl0PWt0LEp0PTAsWHQ9V3QubSxLdD04LCR0PW8oMTI4LGgpO2k6Zm9yKDtsKCR0LDAsNyxWdCwxOSk7KXtpZih5KFh0LDEpKXt2YXIgWnQ9MisyKnkoWHQsMyk7aWYoKFV0PTIreShYdCxadCkpPkd0KWJyZWFrIGl9ZWxzZSBVdD1HdDtmb3IoSHQ9MDtIdDxHdCYmVXQtLTspe1MoWHQpO3ZhciBRdD0kdFswKygxMjcmTChYdCkpXTtBKFh0LFh0LnUrUXQuZyk7dmFyIHRlPVF0LnZhbHVlO2lmKDE2PnRlKVl0W0h0KytdPXRlLDAhPXRlJiYoS3Q9dGUpO2Vsc2V7dmFyIGVlPTE2PT10ZSxyZT10ZS0xNixuZT1ZbltyZV0saWU9eShYdCxHbltyZV0pK25lO2lmKEh0K2llPkd0KWJyZWFrIGk7Zm9yKHZhciBhZT1lZT9LdDowOzA8aWUtLTspWXRbSHQrK109YWV9fUp0PTE7YnJlYWsgaX1KdHx8KFd0LmE9MyksUnQ9SnR9KFJ0PVJ0JiYhT3QuaCkmJihqdD1sKEl0LEN0LDgsa3QsQXQpKSxSdCYmMCE9anQ/enQ9anQ6KFN0LmE9Myx6dD0wKX1pZigwPT16dClicmVhayByO2lmKE50JiYxPT1YbltWXSYmKE50PTA9PWd0W0ddLmcpLHd0Kz1ndFtHXS5nLEcrPXp0LDM+PVYpe3ZhciBvZSxzZT1wdFswXTtmb3Iob2U9MTtvZTx1dDsrK29lKXB0W29lXT5zZSYmKHNlPXB0W29lXSk7THQrPXNlfX1pZihtdC5uZD1OdCxtdC5RYj0wLE50JiYobXQucWI9KHZ0WzNdW2J0WzNdKzBdLnZhbHVlPDwyNHx2dFsxXVtidFsxXSswXS52YWx1ZTw8MTZ8dnRbMl1bYnRbMl0rMF0udmFsdWUpPj4+MCwwPT13dCYmMjU2PnZ0WzBdW2J0WzBdKzBdLnZhbHVlJiYobXQuUWI9MSxtdC5xYis9dnRbMF1bYnRbMF0rMF0udmFsdWU8PDgpKSxtdC5qYz0hbXQuUWImJjY+THQsbXQuamMpe3ZhciBjZSx1ZT1tdDtmb3IoY2U9MDtjZTxFcjsrK2NlKXt2YXIgbGU9Y2UsaGU9dWUucGRbbGVdLGZlPXVlLkdbMF1bdWUuSFswXStsZV07MjU2PD1mZS52YWx1ZT8oaGUuZz1mZS5nKzI1NixoZS52YWx1ZT1mZS52YWx1ZSk6KGhlLmc9MCxoZS52YWx1ZT0wLGxlPj49eXQoZmUsOCxoZSksbGU+Pj15dCh1ZS5HWzFdW3VlLkhbMV0rbGVdLDE2LGhlKSxsZT4+PXl0KHVlLkdbMl1bdWUuSFsyXStsZV0sMCxoZSkseXQodWUuR1szXVt1ZS5IWzNdK2xlXSwyNCxoZSkpfX19US52Yz10dCxRLldiPWV0LFEuWWE9ZHQsUS55Yz1sdCxIPTE7YnJlYWsgZX1IPTB9aWYoISh1PUgpKXtzLmE9MzticmVhayB0fWlmKDA8Yil7aWYobS51YT0xPDxiLCFPKG0uV2EsYikpe3MuYT0xLHU9MDticmVhayB0fX1lbHNlIG0udWE9MDt2YXIgZGU9cyxwZT1mLGdlPXAsbWU9ZGUucyx2ZT1tZS54YztpZihkZS5jPXBlLGRlLmk9Z2UsbWUubWQ9RShwZSx2ZSksbWUud2M9MD09dmU/LTE6KDE8PHZlKS0xLG4pe3MueGI9ZGk7YnJlYWsgdH1pZihudWxsPT0odj1hKGYqcCkpKXtzLmE9MSx1PTA7YnJlYWsgdH11PSh1PV90KHMsdiwwLGYscCxwLG51bGwpKSYmIWcuaDticmVhayB0fXJldHVybiB1PyhudWxsIT1jP2NbMF09djooZShudWxsPT12KSxlKG4pKSxzLiQ9MCxufHxQdChtKSk6UHQobSksdX1mdW5jdGlvbiBJdCh0LHIpe3ZhciBuPXQuYyp0LmksaT1uK3IrMTYqcjtyZXR1cm4gZSh0LmM8PXIpLHQuVj1hKGkpLG51bGw9PXQuVj8odC5UYT1udWxsLHQuVWE9MCx0LmE9MSwwKToodC5UYT10LlYsdC5VYT10LkJhK24rciwxKX1mdW5jdGlvbiBDdCh0LHIpe3ZhciBuPXQuQyxpPXItbixhPXQuVixvPXQuQmErdC5jKm47Zm9yKGUocjw9dC5sLm8pOzA8aTspe3ZhciBzPTE2PGk/MTY6aSxjPXQubC5tYSx1PXQubC53aWR0aCxsPXUqcyxoPWMuY2EsZj1jLnRiK3UqbixkPXQuVGEscD10LlVhO050KHQscyxhLG8pLFNuKGQscCxoLGYsbCksQXQoYyxuLG4rcyxoLGYsdSksaS09cyxhKz1zKnQuYyxuKz1zfWUobj09ciksdC5DPXQuTWE9cn1mdW5jdGlvbiBqdCgpe3RoaXMudWI9dGhpcy55ZD10aGlzLnRkPXRoaXMuUmI9MH1mdW5jdGlvbiBPdCgpe3RoaXMuS2Q9dGhpcy5MZD10aGlzLlVkPXRoaXMuVGQ9dGhpcy5pPXRoaXMuYz0wfWZ1bmN0aW9uIEJ0KCl7dGhpcy5GYj10aGlzLkJiPXRoaXMuQ2I9MCx0aGlzLlpiPWEoNCksdGhpcy5MYj1hKDQpfWZ1bmN0aW9uIHF0KCl7dGhpcy5ZYj1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiBmdW5jdGlvbiB0KGUscixuKXtmb3IodmFyIGk9bltyXSxhPTA7YTxpJiYoZS5wdXNoKG4ubGVuZ3RoPnIrMT9bXTowKSwhKG4ubGVuZ3RoPHIrMSkpO2ErKyl0KGVbYV0scisxLG4pfSh0LDAsWzMsMTFdKSx0fSgpfWZ1bmN0aW9uIE10KCl7dGhpcy5qYj1hKDMpLHRoaXMuV2M9cyhbNCw4XSxxdCksdGhpcy5YYz1zKFs0LDE3XSxxdCl9ZnVuY3Rpb24gRXQoKXt0aGlzLlBjPXRoaXMud2I9dGhpcy5UYj10aGlzLnpkPTAsdGhpcy52ZD1uZXcgYSg0KSx0aGlzLm9kPW5ldyBhKDQpfWZ1bmN0aW9uIFJ0KCl7dGhpcy5sZD10aGlzLkxhPXRoaXMuZGQ9dGhpcy50Yz0wfWZ1bmN0aW9uIER0KCl7dGhpcy5OYT10aGlzLmxhPTB9ZnVuY3Rpb24gVHQoKXt0aGlzLlNjPVswLDBdLHRoaXMuRWI9WzAsMF0sdGhpcy5RYz1bMCwwXSx0aGlzLmlhPXRoaXMubGM9MH1mdW5jdGlvbiB6dCgpe3RoaXMuYWQ9YSgzODQpLHRoaXMuWmE9MCx0aGlzLk9iPWEoMTYpLHRoaXMuJGI9dGhpcy5BZD10aGlzLmlhPXRoaXMuR2M9dGhpcy5IYz10aGlzLkRkPTB9ZnVuY3Rpb24gVXQoKXt0aGlzLnVjPXRoaXMuTT10aGlzLk5iPTAsdGhpcy53YT1BcnJheShuZXcgUnQpLHRoaXMuWT0wLHRoaXMueWE9QXJyYXkobmV3IHp0KSx0aGlzLmFhPTAsdGhpcy5sPW5ldyBHdH1mdW5jdGlvbiBIdCgpe3RoaXMueT1hKDE2KSx0aGlzLmY9YSg4KSx0aGlzLmVhPWEoOCl9ZnVuY3Rpb24gV3QoKXt0aGlzLmNiPXRoaXMuYT0wLHRoaXMuc2M9XCJcIix0aGlzLm09bmV3IHcsdGhpcy5PZD1uZXcganQsdGhpcy5LYz1uZXcgT3QsdGhpcy5lZD1uZXcgRXQsdGhpcy5RYT1uZXcgQnQsdGhpcy5JYz10aGlzLiRjPXRoaXMuQWE9MCx0aGlzLkQ9bmV3IFV0LHRoaXMuWGI9dGhpcy5WYT10aGlzLkhiPXRoaXMuemI9dGhpcy55Yj10aGlzLlViPXRoaXMuemE9MCx0aGlzLkpjPW8oOCx3KSx0aGlzLmlhPTAsdGhpcy5wYj1vKDQsVHQpLHRoaXMuUGE9bmV3IE10LHRoaXMuQmQ9dGhpcy5rYz0wLHRoaXMuQWM9W10sdGhpcy5CYz0wLHRoaXMuemM9WzAsMCwwLDBdLHRoaXMuR2Q9QXJyYXkobmV3IEh0KSx0aGlzLkhkPTAsdGhpcy5yYj1BcnJheShuZXcgRHQpLHRoaXMuc2I9MCx0aGlzLndhPUFycmF5KG5ldyBSdCksdGhpcy5ZPTAsdGhpcy5vYz1bXSx0aGlzLnBjPTAsdGhpcy5zYT1bXSx0aGlzLnRhPTAsdGhpcy5xYT1bXSx0aGlzLnJhPTAsdGhpcy5IYT1bXSx0aGlzLkI9dGhpcy5SPXRoaXMuSWE9MCx0aGlzLkVjPVtdLHRoaXMuTT10aGlzLmphPXRoaXMuVmI9dGhpcy5GYz0wLHRoaXMueWE9QXJyYXkobmV3IHp0KSx0aGlzLkw9dGhpcy5hYT0wLHRoaXMuZ2Q9cyhbNCwyXSxSdCksdGhpcy5nYT1udWxsLHRoaXMuRmE9W10sdGhpcy5DYz10aGlzLnFjPXRoaXMuUD0wLHRoaXMuR2I9W10sdGhpcy5VYz0wLHRoaXMubWI9W10sdGhpcy5uYj0wLHRoaXMucmM9W10sdGhpcy5HYT10aGlzLlZjPTB9ZnVuY3Rpb24gVnQodCxlKXtyZXR1cm4gMD50PzA6dD5lP2U6dH1mdW5jdGlvbiBHdCgpe3RoaXMuVD10aGlzLlU9dGhpcy5rYT10aGlzLmhlaWdodD10aGlzLndpZHRoPTAsdGhpcy55PVtdLHRoaXMuZj1bXSx0aGlzLmVhPVtdLHRoaXMuUmM9dGhpcy5mYT10aGlzLlc9dGhpcy5OPXRoaXMuTz0wLHRoaXMubWE9XCJ2b2lkXCIsdGhpcy5wdXQ9XCJWUDhJb1B1dEhvb2tcIix0aGlzLmFjPVwiVlA4SW9TZXR1cEhvb2tcIix0aGlzLmJjPVwiVlA4SW9UZWFyZG93bkhvb2tcIix0aGlzLmhhPXRoaXMuS2I9MCx0aGlzLmRhdGE9W10sdGhpcy5oYj10aGlzLmliPXRoaXMuZGE9dGhpcy5vPXRoaXMuaj10aGlzLnZhPXRoaXMudj10aGlzLkRhPXRoaXMub2I9dGhpcy53PTAsdGhpcy5GPVtdLHRoaXMuSj0wfWZ1bmN0aW9uIFl0KCl7dmFyIHQ9bmV3IFd0O3JldHVybiBudWxsIT10JiYodC5hPTAsdC5zYz1cIk9LXCIsdC5jYj0wLHQuWGI9MCxyaXx8KHJpPSR0KSksdH1mdW5jdGlvbiBKdCh0LGUscil7cmV0dXJuIDA9PXQuYSYmKHQuYT1lLHQuc2M9cix0LmNiPTApLDB9ZnVuY3Rpb24gWHQodCxlLHIpe3JldHVybiAzPD1yJiYxNTc9PXRbZSswXSYmMT09dFtlKzFdJiY0Mj09dFtlKzJdfWZ1bmN0aW9uIEt0KHQscil7aWYobnVsbD09dClyZXR1cm4gMDtpZih0LmE9MCx0LnNjPVwiT0tcIixudWxsPT1yKXJldHVybiBKdCh0LDIsXCJudWxsIFZQOElvIHBhc3NlZCB0byBWUDhHZXRIZWFkZXJzKClcIik7dmFyIG49ci5kYXRhLGE9ci53LG89ci5oYTtpZig0Pm8pcmV0dXJuIEp0KHQsNyxcIlRydW5jYXRlZCBoZWFkZXIuXCIpO3ZhciBzPW5bYSswXXxuW2ErMV08PDh8blthKzJdPDwxNixjPXQuT2Q7aWYoYy5SYj0hKDEmcyksYy50ZD1zPj4xJjcsYy55ZD1zPj40JjEsYy51Yj1zPj41LDM8Yy50ZClyZXR1cm4gSnQodCwzLFwiSW5jb3JyZWN0IGtleWZyYW1lIHBhcmFtZXRlcnMuXCIpO2lmKCFjLnlkKXJldHVybiBKdCh0LDQsXCJGcmFtZSBub3QgZGlzcGxheWFibGUuXCIpO2ErPTMsby09Mzt2YXIgdT10LktjO2lmKGMuUmIpe2lmKDc+bylyZXR1cm4gSnQodCw3LFwiY2Fubm90IHBhcnNlIHBpY3R1cmUgaGVhZGVyXCIpO2lmKCFYdChuLGEsbykpcmV0dXJuIEp0KHQsMyxcIkJhZCBjb2RlIHdvcmRcIik7dS5jPTE2MzgzJihuW2ErNF08PDh8blthKzNdKSx1LlRkPW5bYSs0XT4+Nix1Lmk9MTYzODMmKG5bYSs2XTw8OHxuW2ErNV0pLHUuVWQ9blthKzZdPj42LGErPTcsby09Nyx0LnphPXUuYysxNT4+NCx0LlViPXUuaSsxNT4+NCxyLndpZHRoPXUuYyxyLmhlaWdodD11Lmksci5EYT0wLHIuaj0wLHIudj0wLHIudmE9ci53aWR0aCxyLm89ci5oZWlnaHQsci5kYT0wLHIuaWI9ci53aWR0aCxyLmhiPXIuaGVpZ2h0LHIuVT1yLndpZHRoLHIuVD1yLmhlaWdodCxpKChzPXQuUGEpLmpiLDAsMjU1LHMuamIubGVuZ3RoKSxlKG51bGwhPShzPXQuUWEpKSxzLkNiPTAscy5CYj0wLHMuRmI9MSxpKHMuWmIsMCwwLHMuWmIubGVuZ3RoKSxpKHMuTGIsMCwwLHMuTGIpfWlmKGMudWI+bylyZXR1cm4gSnQodCw3LFwiYmFkIHBhcnRpdGlvbiBsZW5ndGhcIik7cChzPXQubSxuLGEsYy51YiksYSs9Yy51YixvLT1jLnViLGMuUmImJih1LkxkPVAocyksdS5LZD1QKHMpKSx1PXQuUWE7dmFyIGwsaD10LlBhO2lmKGUobnVsbCE9cyksZShudWxsIT11KSx1LkNiPVAocyksdS5DYil7aWYodS5CYj1QKHMpLFAocykpe2Zvcih1LkZiPVAocyksbD0wOzQ+bDsrK2wpdS5aYltsXT1QKHMpP20ocyw3KTowO2ZvcihsPTA7ND5sOysrbCl1LkxiW2xdPVAocyk/bShzLDYpOjB9aWYodS5CYilmb3IobD0wOzM+bDsrK2wpaC5qYltsXT1QKHMpP2cocyw4KToyNTV9ZWxzZSB1LkJiPTA7aWYocy5LYSlyZXR1cm4gSnQodCwzLFwiY2Fubm90IHBhcnNlIHNlZ21lbnQgaGVhZGVyXCIpO2lmKCh1PXQuZWQpLnpkPVAocyksdS5UYj1nKHMsNiksdS53Yj1nKHMsMyksdS5QYz1QKHMpLHUuUGMmJlAocykpe2ZvcihoPTA7ND5oOysraClQKHMpJiYodS52ZFtoXT1tKHMsNikpO2ZvcihoPTA7ND5oOysraClQKHMpJiYodS5vZFtoXT1tKHMsNikpfWlmKHQuTD0wPT11LlRiPzA6dS56ZD8xOjIscy5LYSlyZXR1cm4gSnQodCwzLFwiY2Fubm90IHBhcnNlIGZpbHRlciBoZWFkZXJcIik7dmFyIGY9bztpZihvPWw9YSxhPWwrZix1PWYsdC5YYj0oMTw8Zyh0Lm0sMikpLTEsZjwzKihoPXQuWGIpKW49NztlbHNle2ZvcihsKz0zKmgsdS09MypoLGY9MDtmPGg7KytmKXt2YXIgZD1uW28rMF18bltvKzFdPDw4fG5bbysyXTw8MTY7ZD51JiYoZD11KSxwKHQuSmNbK2ZdLG4sbCxkKSxsKz1kLHUtPWQsbys9M31wKHQuSmNbK2hdLG4sbCx1KSxuPWw8YT8wOjV9aWYoMCE9bilyZXR1cm4gSnQodCxuLFwiY2Fubm90IHBhcnNlIHBhcnRpdGlvbnNcIik7Zm9yKG49ZyhsPXQubSw3KSxvPVAobCk/bShsLDQpOjAsYT1QKGwpP20obCw0KTowLHU9UChsKT9tKGwsNCk6MCxoPVAobCk/bShsLDQpOjAsbD1QKGwpP20obCw0KTowLGY9dC5RYSxkPTA7ND5kOysrZCl7aWYoZi5DYil7dmFyIHY9Zi5aYltkXTtmLkZifHwodis9bil9ZWxzZXtpZigwPGQpe3QucGJbZF09dC5wYlswXTtjb250aW51ZX12PW59dmFyIGI9dC5wYltkXTtiLlNjWzBdPXRpW1Z0KHYrbywxMjcpXSxiLlNjWzFdPWVpW1Z0KHYrMCwxMjcpXSxiLkViWzBdPTIqdGlbVnQodithLDEyNyldLGIuRWJbMV09MTAxNTgxKmVpW1Z0KHYrdSwxMjcpXT4+MTYsOD5iLkViWzFdJiYoYi5FYlsxXT04KSxiLlFjWzBdPXRpW1Z0KHYraCwxMTcpXSxiLlFjWzFdPWVpW1Z0KHYrbCwxMjcpXSxiLmxjPXYrbH1pZighYy5SYilyZXR1cm4gSnQodCw0LFwiTm90IGEga2V5IGZyYW1lLlwiKTtmb3IoUChzKSxjPXQuUGEsbj0wOzQ+bjsrK24pe2ZvcihvPTA7OD5vOysrbylmb3IoYT0wOzM+YTsrK2EpZm9yKHU9MDsxMT51OysrdSloPWsocyxjaVtuXVtvXVthXVt1XSk/ZyhzLDgpOm9pW25dW29dW2FdW3VdLGMuV2Nbbl1bb10uWWJbYV1bdV09aDtmb3Iobz0wOzE3Pm87KytvKWMuWGNbbl1bb109Yy5XY1tuXVt1aVtvXV19cmV0dXJuIHQua2M9UChzKSx0LmtjJiYodC5CZD1nKHMsOCkpLHQuY2I9MX1mdW5jdGlvbiAkdCh0LGUscixuLGksYSxvKXt2YXIgcz1lW2ldLlliW3JdO2ZvcihyPTA7MTY+aTsrK2kpe2lmKCFrKHQsc1tyKzBdKSlyZXR1cm4gaTtmb3IoOyFrKHQsc1tyKzFdKTspaWYocz1lWysraV0uWWJbMF0scj0wLDE2PT1pKXJldHVybiAxNjt2YXIgYz1lW2krMV0uWWI7aWYoayh0LHNbcisyXSkpe3ZhciB1PXQsbD0wO2lmKGsodSwoZj1zKVsoaD1yKSszXSkpaWYoayh1LGZbaCs2XSkpe2ZvcihzPTAsaD0yKihsPWsodSxmW2grOF0pKSsoZj1rKHUsZltoKzkrbF0pKSxsPTAsZj1uaVtoXTtmW3NdOysrcylsKz1sK2sodSxmW3NdKTtsKz0zKyg4PDxoKX1lbHNlIGsodSxmW2grN10pPyhsPTcrMiprKHUsMTY1KSxsKz1rKHUsMTQ1KSk6bD01K2sodSwxNTkpO2Vsc2UgbD1rKHUsZltoKzRdKT8zK2sodSxmW2grNV0pOjI7cz1jWzJdfWVsc2UgbD0xLHM9Y1sxXTtjPW8raWlbaV0sMD4odT10KS5iJiZfKHUpO3ZhciBoLGY9dS5iLGQ9KGg9dS5DYT4+MSktKHUuST4+Zik+PjMxOy0tdS5iLHUuQ2ErPWQsdS5DYXw9MSx1LkktPShoKzEmZCk8PGYsYVtjXT0oKGxeZCktZCkqblsoMDxpKSswXX1yZXR1cm4gMTZ9ZnVuY3Rpb24gWnQodCl7dmFyIGU9dC5yYlt0LnNiLTFdO2UubGE9MCxlLk5hPTAsaSh0LnpjLDAsMCx0LnpjLmxlbmd0aCksdC5qYT0wfWZ1bmN0aW9uIFF0KHQsZSxyLG4saSl7aT10W2UrciszMipuXSsoaT4+MyksdFtlK3IrMzIqbl09LTI1NiZpPzA+aT8wOjI1NTppfWZ1bmN0aW9uIHRlKHQsZSxyLG4saSxhKXtRdCh0LGUsMCxyLG4raSksUXQodCxlLDEscixuK2EpLFF0KHQsZSwyLHIsbi1hKSxRdCh0LGUsMyxyLG4taSl9ZnVuY3Rpb24gZWUodCl7cmV0dXJuKDIwMDkxKnQ+PjE2KSt0fWZ1bmN0aW9uIHJlKHQsZSxyLG4pe3ZhciBpLG89MCxzPWEoMTYpO2ZvcihpPTA7ND5pOysraSl7dmFyIGM9dFtlKzBdK3RbZSs4XSx1PXRbZSswXS10W2UrOF0sbD0oMzU0NjgqdFtlKzRdPj4xNiktZWUodFtlKzEyXSksaD1lZSh0W2UrNF0pKygzNTQ2OCp0W2UrMTJdPj4xNik7c1tvKzBdPWMraCxzW28rMV09dStsLHNbbysyXT11LWwsc1tvKzNdPWMtaCxvKz00LGUrK31mb3IoaT1vPTA7ND5pOysraSljPSh0PXNbbyswXSs0KStzW28rOF0sdT10LXNbbys4XSxsPSgzNTQ2OCpzW28rNF0+PjE2KS1lZShzW28rMTJdKSxRdChyLG4sMCwwLGMrKGg9ZWUoc1tvKzRdKSsoMzU0Njgqc1tvKzEyXT4+MTYpKSksUXQocixuLDEsMCx1K2wpLFF0KHIsbiwyLDAsdS1sKSxRdChyLG4sMywwLGMtaCksbysrLG4rPTMyfWZ1bmN0aW9uIG5lKHQsZSxyLG4pe3ZhciBpPXRbZSswXSs0LGE9MzU0NjgqdFtlKzRdPj4xNixvPWVlKHRbZSs0XSkscz0zNTQ2OCp0W2UrMV0+PjE2O3RlKHIsbiwwLGkrbyx0PWVlKHRbZSsxXSkscyksdGUocixuLDEsaSthLHQscyksdGUocixuLDIsaS1hLHQscyksdGUocixuLDMsaS1vLHQscyl9ZnVuY3Rpb24gaWUodCxlLHIsbixpKXtyZSh0LGUscixuKSxpJiZyZSh0LGUrMTYscixuKzQpfWZ1bmN0aW9uIGFlKHQsZSxyLG4pe2FuKHQsZSswLHIsbiwxKSxhbih0LGUrMzIscixuKzEyOCwxKX1mdW5jdGlvbiBvZSh0LGUscixuKXt2YXIgaTtmb3IodD10W2UrMF0rNCxpPTA7ND5pOysraSlmb3IoZT0wOzQ+ZTsrK2UpUXQocixuLGUsaSx0KX1mdW5jdGlvbiBzZSh0LGUscixuKXt0W2UrMF0mJmNuKHQsZSswLHIsbiksdFtlKzE2XSYmY24odCxlKzE2LHIsbis0KSx0W2UrMzJdJiZjbih0LGUrMzIscixuKzEyOCksdFtlKzQ4XSYmY24odCxlKzQ4LHIsbisxMjgrNCl9ZnVuY3Rpb24gY2UodCxlLHIsbil7dmFyIGksbz1hKDE2KTtmb3IoaT0wOzQ+aTsrK2kpe3ZhciBzPXRbZSswK2ldK3RbZSsxMitpXSxjPXRbZSs0K2ldK3RbZSs4K2ldLHU9dFtlKzQraV0tdFtlKzgraV0sbD10W2UrMCtpXS10W2UrMTIraV07b1swK2ldPXMrYyxvWzgraV09cy1jLG9bNCtpXT1sK3Usb1sxMitpXT1sLXV9Zm9yKGk9MDs0Pmk7KytpKXM9KHQ9b1swKzQqaV0rMykrb1szKzQqaV0sYz1vWzErNCppXStvWzIrNCppXSx1PW9bMSs0KmldLW9bMis0KmldLGw9dC1vWzMrNCppXSxyW24rMF09cytjPj4zLHJbbisxNl09bCt1Pj4zLHJbbiszMl09cy1jPj4zLHJbbis0OF09bC11Pj4zLG4rPTY0fWZ1bmN0aW9uIHVlKHQsZSxyKXt2YXIgbixpPWUtMzIsYT1PbixvPTI1NS10W2ktMV07Zm9yKG49MDtuPHI7KytuKXt2YXIgcyxjPWEsdT1vK3RbZS0xXTtmb3Iocz0wO3M8cjsrK3MpdFtlK3NdPWNbdSt0W2krc11dO2UrPTMyfX1mdW5jdGlvbiBsZSh0LGUpe3VlKHQsZSw0KX1mdW5jdGlvbiBoZSh0LGUpe3VlKHQsZSw4KX1mdW5jdGlvbiBmZSh0LGUpe3VlKHQsZSwxNil9ZnVuY3Rpb24gZGUodCxlKXt2YXIgcjtmb3Iocj0wOzE2PnI7KytyKW4odCxlKzMyKnIsdCxlLTMyLDE2KX1mdW5jdGlvbiBwZSh0LGUpe3ZhciByO2ZvcihyPTE2OzA8cjstLXIpaSh0LGUsdFtlLTFdLDE2KSxlKz0zMn1mdW5jdGlvbiBnZSh0LGUscil7dmFyIG47Zm9yKG49MDsxNj5uOysrbilpKGUsciszMipuLHQsMTYpfWZ1bmN0aW9uIG1lKHQsZSl7dmFyIHIsbj0xNjtmb3Iocj0wOzE2PnI7KytyKW4rPXRbZS0xKzMyKnJdK3RbZStyLTMyXTtnZShuPj41LHQsZSl9ZnVuY3Rpb24gdmUodCxlKXt2YXIgcixuPTg7Zm9yKHI9MDsxNj5yOysrciluKz10W2UtMSszMipyXTtnZShuPj40LHQsZSl9ZnVuY3Rpb24gYmUodCxlKXt2YXIgcixuPTg7Zm9yKHI9MDsxNj5yOysrciluKz10W2Urci0zMl07Z2Uobj4+NCx0LGUpfWZ1bmN0aW9uIHllKHQsZSl7Z2UoMTI4LHQsZSl9ZnVuY3Rpb24gd2UodCxlLHIpe3JldHVybiB0KzIqZStyKzI+PjJ9ZnVuY3Rpb24gTmUodCxlKXt2YXIgcixpPWUtMzI7Zm9yKGk9bmV3IFVpbnQ4QXJyYXkoW3dlKHRbaS0xXSx0W2krMF0sdFtpKzFdKSx3ZSh0W2krMF0sdFtpKzFdLHRbaSsyXSksd2UodFtpKzFdLHRbaSsyXSx0W2krM10pLHdlKHRbaSsyXSx0W2krM10sdFtpKzRdKV0pLHI9MDs0PnI7KytyKW4odCxlKzMyKnIsaSwwLGkubGVuZ3RoKX1mdW5jdGlvbiBMZSh0LGUpe3ZhciByPXRbZS0xXSxuPXRbZS0xKzMyXSxpPXRbZS0xKzY0XSxhPXRbZS0xKzk2XTtGKHQsZSswLDE2ODQzMDA5KndlKHRbZS0xLTMyXSxyLG4pKSxGKHQsZSszMiwxNjg0MzAwOSp3ZShyLG4saSkpLEYodCxlKzY0LDE2ODQzMDA5KndlKG4saSxhKSksRih0LGUrOTYsMTY4NDMwMDkqd2UoaSxhLGEpKX1mdW5jdGlvbiB4ZSh0LGUpe3ZhciByLG49NDtmb3Iocj0wOzQ+cjsrK3Ipbis9dFtlK3ItMzJdK3RbZS0xKzMyKnJdO2ZvcihuPj49MyxyPTA7ND5yOysrcilpKHQsZSszMipyLG4sNCl9ZnVuY3Rpb24gQWUodCxlKXt2YXIgcj10W2UtMSswXSxuPXRbZS0xKzMyXSxpPXRbZS0xKzY0XSxhPXRbZS0xLTMyXSxvPXRbZSswLTMyXSxzPXRbZSsxLTMyXSxjPXRbZSsyLTMyXSx1PXRbZSszLTMyXTt0W2UrMCs5Nl09d2UobixpLHRbZS0xKzk2XSksdFtlKzErOTZdPXRbZSswKzY0XT13ZShyLG4saSksdFtlKzIrOTZdPXRbZSsxKzY0XT10W2UrMCszMl09d2UoYSxyLG4pLHRbZSszKzk2XT10W2UrMis2NF09dFtlKzErMzJdPXRbZSswKzBdPXdlKG8sYSxyKSx0W2UrMys2NF09dFtlKzIrMzJdPXRbZSsxKzBdPXdlKHMsbyxhKSx0W2UrMyszMl09dFtlKzIrMF09d2UoYyxzLG8pLHRbZSszKzBdPXdlKHUsYyxzKX1mdW5jdGlvbiBTZSh0LGUpe3ZhciByPXRbZSsxLTMyXSxuPXRbZSsyLTMyXSxpPXRbZSszLTMyXSxhPXRbZSs0LTMyXSxvPXRbZSs1LTMyXSxzPXRbZSs2LTMyXSxjPXRbZSs3LTMyXTt0W2UrMCswXT13ZSh0W2UrMC0zMl0scixuKSx0W2UrMSswXT10W2UrMCszMl09d2UocixuLGkpLHRbZSsyKzBdPXRbZSsxKzMyXT10W2UrMCs2NF09d2UobixpLGEpLHRbZSszKzBdPXRbZSsyKzMyXT10W2UrMSs2NF09dFtlKzArOTZdPXdlKGksYSxvKSx0W2UrMyszMl09dFtlKzIrNjRdPXRbZSsxKzk2XT13ZShhLG8scyksdFtlKzMrNjRdPXRbZSsyKzk2XT13ZShvLHMsYyksdFtlKzMrOTZdPXdlKHMsYyxjKX1mdW5jdGlvbiBfZSh0LGUpe3ZhciByPXRbZS0xKzBdLG49dFtlLTErMzJdLGk9dFtlLTErNjRdLGE9dFtlLTEtMzJdLG89dFtlKzAtMzJdLHM9dFtlKzEtMzJdLGM9dFtlKzItMzJdLHU9dFtlKzMtMzJdO3RbZSswKzBdPXRbZSsxKzY0XT1hK28rMT4+MSx0W2UrMSswXT10W2UrMis2NF09bytzKzE+PjEsdFtlKzIrMF09dFtlKzMrNjRdPXMrYysxPj4xLHRbZSszKzBdPWMrdSsxPj4xLHRbZSswKzk2XT13ZShpLG4sciksdFtlKzArNjRdPXdlKG4scixhKSx0W2UrMCszMl09dFtlKzErOTZdPXdlKHIsYSxvKSx0W2UrMSszMl09dFtlKzIrOTZdPXdlKGEsbyxzKSx0W2UrMiszMl09dFtlKzMrOTZdPXdlKG8scyxjKSx0W2UrMyszMl09d2UocyxjLHUpfWZ1bmN0aW9uIFBlKHQsZSl7dmFyIHI9dFtlKzAtMzJdLG49dFtlKzEtMzJdLGk9dFtlKzItMzJdLGE9dFtlKzMtMzJdLG89dFtlKzQtMzJdLHM9dFtlKzUtMzJdLGM9dFtlKzYtMzJdLHU9dFtlKzctMzJdO3RbZSswKzBdPXIrbisxPj4xLHRbZSsxKzBdPXRbZSswKzY0XT1uK2krMT4+MSx0W2UrMiswXT10W2UrMSs2NF09aSthKzE+PjEsdFtlKzMrMF09dFtlKzIrNjRdPWErbysxPj4xLHRbZSswKzMyXT13ZShyLG4saSksdFtlKzErMzJdPXRbZSswKzk2XT13ZShuLGksYSksdFtlKzIrMzJdPXRbZSsxKzk2XT13ZShpLGEsbyksdFtlKzMrMzJdPXRbZSsyKzk2XT13ZShhLG8scyksdFtlKzMrNjRdPXdlKG8scyxjKSx0W2UrMys5Nl09d2UocyxjLHUpfWZ1bmN0aW9uIGtlKHQsZSl7dmFyIHI9dFtlLTErMF0sbj10W2UtMSszMl0saT10W2UtMSs2NF0sYT10W2UtMSs5Nl07dFtlKzArMF09cituKzE+PjEsdFtlKzIrMF09dFtlKzArMzJdPW4raSsxPj4xLHRbZSsyKzMyXT10W2UrMCs2NF09aSthKzE+PjEsdFtlKzErMF09d2UocixuLGkpLHRbZSszKzBdPXRbZSsxKzMyXT13ZShuLGksYSksdFtlKzMrMzJdPXRbZSsxKzY0XT13ZShpLGEsYSksdFtlKzMrNjRdPXRbZSsyKzY0XT10W2UrMCs5Nl09dFtlKzErOTZdPXRbZSsyKzk2XT10W2UrMys5Nl09YX1mdW5jdGlvbiBGZSh0LGUpe3ZhciByPXRbZS0xKzBdLG49dFtlLTErMzJdLGk9dFtlLTErNjRdLGE9dFtlLTErOTZdLG89dFtlLTEtMzJdLHM9dFtlKzAtMzJdLGM9dFtlKzEtMzJdLHU9dFtlKzItMzJdO3RbZSswKzBdPXRbZSsyKzMyXT1yK28rMT4+MSx0W2UrMCszMl09dFtlKzIrNjRdPW4rcisxPj4xLHRbZSswKzY0XT10W2UrMis5Nl09aStuKzE+PjEsdFtlKzArOTZdPWEraSsxPj4xLHRbZSszKzBdPXdlKHMsYyx1KSx0W2UrMiswXT13ZShvLHMsYyksdFtlKzErMF09dFtlKzMrMzJdPXdlKHIsbyxzKSx0W2UrMSszMl09dFtlKzMrNjRdPXdlKG4scixvKSx0W2UrMSs2NF09dFtlKzMrOTZdPXdlKGksbixyKSx0W2UrMSs5Nl09d2UoYSxpLG4pfWZ1bmN0aW9uIEllKHQsZSl7dmFyIHI7Zm9yKHI9MDs4PnI7KytyKW4odCxlKzMyKnIsdCxlLTMyLDgpfWZ1bmN0aW9uIENlKHQsZSl7dmFyIHI7Zm9yKHI9MDs4PnI7KytyKWkodCxlLHRbZS0xXSw4KSxlKz0zMn1mdW5jdGlvbiBqZSh0LGUscil7dmFyIG47Zm9yKG49MDs4Pm47KytuKWkoZSxyKzMyKm4sdCw4KX1mdW5jdGlvbiBPZSh0LGUpe3ZhciByLG49ODtmb3Iocj0wOzg+cjsrK3Ipbis9dFtlK3ItMzJdK3RbZS0xKzMyKnJdO2plKG4+PjQsdCxlKX1mdW5jdGlvbiBCZSh0LGUpe3ZhciByLG49NDtmb3Iocj0wOzg+cjsrK3Ipbis9dFtlK3ItMzJdO2plKG4+PjMsdCxlKX1mdW5jdGlvbiBxZSh0LGUpe3ZhciByLG49NDtmb3Iocj0wOzg+cjsrK3Ipbis9dFtlLTErMzIqcl07amUobj4+Myx0LGUpfWZ1bmN0aW9uIE1lKHQsZSl7amUoMTI4LHQsZSl9ZnVuY3Rpb24gRWUodCxlLHIpe3ZhciBuPXRbZS1yXSxpPXRbZSswXSxhPTMqKGktbikrQ25bMTAyMCt0W2UtMipyXS10W2Urcl1dLG89am5bMTEyKyhhKzQ+PjMpXTt0W2Utcl09T25bMjU1K24ram5bMTEyKyhhKzM+PjMpXV0sdFtlKzBdPU9uWzI1NStpLW9dfWZ1bmN0aW9uIFJlKHQsZSxyLG4pe3ZhciBpPXRbZSswXSxhPXRbZStyXTtyZXR1cm4gQm5bMjU1K3RbZS0yKnJdLXRbZS1yXV0+bnx8Qm5bMjU1K2EtaV0+bn1mdW5jdGlvbiBEZSh0LGUscixuKXtyZXR1cm4gNCpCblsyNTUrdFtlLXJdLXRbZSswXV0rQm5bMjU1K3RbZS0yKnJdLXRbZStyXV08PW59ZnVuY3Rpb24gVGUodCxlLHIsbixpKXt2YXIgYT10W2UtMypyXSxvPXRbZS0yKnJdLHM9dFtlLXJdLGM9dFtlKzBdLHU9dFtlK3JdLGw9dFtlKzIqcl0saD10W2UrMypyXTtyZXR1cm4gNCpCblsyNTUrcy1jXStCblsyNTUrby11XT5uPzA6Qm5bMjU1K3RbZS00KnJdLWFdPD1pJiZCblsyNTUrYS1vXTw9aSYmQm5bMjU1K28tc108PWkmJkJuWzI1NStoLWxdPD1pJiZCblsyNTUrbC11XTw9aSYmQm5bMjU1K3UtY108PWl9ZnVuY3Rpb24gemUodCxlLHIsbil7dmFyIGk9MipuKzE7Zm9yKG49MDsxNj5uOysrbilEZSh0LGUrbixyLGkpJiZFZSh0LGUrbixyKX1mdW5jdGlvbiBVZSh0LGUscixuKXt2YXIgaT0yKm4rMTtmb3Iobj0wOzE2Pm47KytuKURlKHQsZStuKnIsMSxpKSYmRWUodCxlK24qciwxKX1mdW5jdGlvbiBIZSh0LGUscixuKXt2YXIgaTtmb3IoaT0zOzA8aTstLWkpemUodCxlKz00KnIscixuKX1mdW5jdGlvbiBXZSh0LGUscixuKXt2YXIgaTtmb3IoaT0zOzA8aTstLWkpVWUodCxlKz00LHIsbil9ZnVuY3Rpb24gVmUodCxlLHIsbixpLGEsbyxzKXtmb3IoYT0yKmErMTswPGktLTspe2lmKFRlKHQsZSxyLGEsbykpaWYoUmUodCxlLHIscykpRWUodCxlLHIpO2Vsc2V7dmFyIGM9dCx1PWUsbD1yLGg9Y1t1LTIqbF0sZj1jW3UtbF0sZD1jW3UrMF0scD1jW3UrbF0sZz1jW3UrMipsXSxtPTI3KihiPUNuWzEwMjArMyooZC1mKStDblsxMDIwK2gtcF1dKSs2Mz4+Nyx2PTE4KmIrNjM+PjcsYj05KmIrNjM+Pjc7Y1t1LTMqbF09T25bMjU1K2NbdS0zKmxdK2JdLGNbdS0yKmxdPU9uWzI1NStoK3ZdLGNbdS1sXT1PblsyNTUrZittXSxjW3UrMF09T25bMjU1K2QtbV0sY1t1K2xdPU9uWzI1NStwLXZdLGNbdSsyKmxdPU9uWzI1NStnLWJdfWUrPW59fWZ1bmN0aW9uIEdlKHQsZSxyLG4saSxhLG8scyl7Zm9yKGE9MiphKzE7MDxpLS07KXtpZihUZSh0LGUscixhLG8pKWlmKFJlKHQsZSxyLHMpKUVlKHQsZSxyKTtlbHNle3ZhciBjPXQsdT1lLGw9cixoPWNbdS1sXSxmPWNbdSswXSxkPWNbdStsXSxwPWpuWzExMisoNCsoZz0zKihmLWgpKT4+MyldLGc9am5bMTEyKyhnKzM+PjMpXSxtPXArMT4+MTtjW3UtMipsXT1PblsyNTUrY1t1LTIqbF0rbV0sY1t1LWxdPU9uWzI1NStoK2ddLGNbdSswXT1PblsyNTUrZi1wXSxjW3UrbF09T25bMjU1K2QtbV19ZSs9bn19ZnVuY3Rpb24gWWUodCxlLHIsbixpLGEpe1ZlKHQsZSxyLDEsMTYsbixpLGEpfWZ1bmN0aW9uIEplKHQsZSxyLG4saSxhKXtWZSh0LGUsMSxyLDE2LG4saSxhKX1mdW5jdGlvbiBYZSh0LGUscixuLGksYSl7dmFyIG87Zm9yKG89MzswPG87LS1vKUdlKHQsZSs9NCpyLHIsMSwxNixuLGksYSl9ZnVuY3Rpb24gS2UodCxlLHIsbixpLGEpe3ZhciBvO2ZvcihvPTM7MDxvOy0tbylHZSh0LGUrPTQsMSxyLDE2LG4saSxhKX1mdW5jdGlvbiAkZSh0LGUscixuLGksYSxvLHMpe1ZlKHQsZSxpLDEsOCxhLG8scyksVmUocixuLGksMSw4LGEsbyxzKX1mdW5jdGlvbiBaZSh0LGUscixuLGksYSxvLHMpe1ZlKHQsZSwxLGksOCxhLG8scyksVmUocixuLDEsaSw4LGEsbyxzKX1mdW5jdGlvbiBRZSh0LGUscixuLGksYSxvLHMpe0dlKHQsZSs0KmksaSwxLDgsYSxvLHMpLEdlKHIsbis0KmksaSwxLDgsYSxvLHMpfWZ1bmN0aW9uIHRyKHQsZSxyLG4saSxhLG8scyl7R2UodCxlKzQsMSxpLDgsYSxvLHMpLEdlKHIsbis0LDEsaSw4LGEsbyxzKX1mdW5jdGlvbiBlcigpe3RoaXMuYmE9bmV3IG90LHRoaXMuZWM9W10sdGhpcy5jYz1bXSx0aGlzLk1jPVtdLHRoaXMuRGM9dGhpcy5OYz10aGlzLmRjPXRoaXMuZmM9MCx0aGlzLk9hPW5ldyBjdCx0aGlzLm1lbW9yeT0wLHRoaXMuSWI9XCJPdXRwdXRGdW5jXCIsdGhpcy5KYj1cIk91dHB1dEFscGhhRnVuY1wiLHRoaXMuTmQ9XCJPdXRwdXRSb3dGdW5jXCJ9ZnVuY3Rpb24gcnIoKXt0aGlzLmRhdGE9W10sdGhpcy5vZmZzZXQ9dGhpcy5rZD10aGlzLmhhPXRoaXMudz0wLHRoaXMubmE9W10sdGhpcy54YT10aGlzLmdiPXRoaXMuSmE9dGhpcy5TYT10aGlzLlA9MH1mdW5jdGlvbiBucigpe3RoaXMubmM9dGhpcy5FYT10aGlzLmI9dGhpcy5oYz0wLHRoaXMuSz1bXSx0aGlzLnc9MH1mdW5jdGlvbiBpcigpe3RoaXMudWE9MCx0aGlzLldhPW5ldyBxLHRoaXMudmI9bmV3IHEsdGhpcy5tZD10aGlzLnhjPXRoaXMud2M9MCx0aGlzLnZjPVtdLHRoaXMuV2I9MCx0aGlzLllhPW5ldyBkLHRoaXMueWM9bmV3IGh9ZnVuY3Rpb24gYXIoKXt0aGlzLnhiPXRoaXMuYT0wLHRoaXMubD1uZXcgR3QsdGhpcy5jYT1uZXcgb3QsdGhpcy5WPVtdLHRoaXMuQmE9MCx0aGlzLlRhPVtdLHRoaXMuVWE9MCx0aGlzLm09bmV3IE4sdGhpcy5QYj0wLHRoaXMud2Q9bmV3IE4sdGhpcy5NYT10aGlzLiQ9dGhpcy5DPXRoaXMuaT10aGlzLmM9dGhpcy54ZD0wLHRoaXMucz1uZXcgaXIsdGhpcy5hYj0wLHRoaXMuZ2M9byg0LG5yKSx0aGlzLk9jPTB9ZnVuY3Rpb24gb3IoKXt0aGlzLkxjPXRoaXMuWj10aGlzLiRhPXRoaXMuaT10aGlzLmM9MCx0aGlzLmw9bmV3IEd0LHRoaXMuaWM9MCx0aGlzLmNhPVtdLHRoaXMudGI9MCx0aGlzLnFkPW51bGwsdGhpcy5yZD0wfWZ1bmN0aW9uIHNyKHQsZSxyLG4saSxhLG8pe2Zvcih0PW51bGw9PXQ/MDp0W2UrMF0sZT0wO2U8bzsrK2UpaVthK2VdPXQrcltuK2VdJjI1NSx0PWlbYStlXX1mdW5jdGlvbiBjcih0LGUscixuLGksYSxvKXt2YXIgcztpZihudWxsPT10KXNyKG51bGwsbnVsbCxyLG4saSxhLG8pO2Vsc2UgZm9yKHM9MDtzPG87KytzKWlbYStzXT10W2Urc10rcltuK3NdJjI1NX1mdW5jdGlvbiB1cih0LGUscixuLGksYSxvKXtpZihudWxsPT10KXNyKG51bGwsbnVsbCxyLG4saSxhLG8pO2Vsc2V7dmFyIHMsYz10W2UrMF0sdT1jLGw9Yztmb3Iocz0wO3M8bzsrK3MpdT1sKyhjPXRbZStzXSktdSxsPXJbbitzXSsoLTI1NiZ1PzA+dT8wOjI1NTp1KSYyNTUsdT1jLGlbYStzXT1sfX1mdW5jdGlvbiBscih0LHIsaSxvKXt2YXIgcz1yLndpZHRoLGM9ci5vO2lmKGUobnVsbCE9dCYmbnVsbCE9ciksMD5pfHwwPj1vfHxpK28+YylyZXR1cm4gbnVsbDtpZighdC5DYyl7aWYobnVsbD09dC5nYSl7dmFyIHU7aWYodC5nYT1uZXcgb3IsKHU9bnVsbD09dC5nYSl8fCh1PXIud2lkdGgqci5vLGUoMD09dC5HYi5sZW5ndGgpLHQuR2I9YSh1KSx0LlVjPTAsbnVsbD09dC5HYj91PTA6KHQubWI9dC5HYix0Lm5iPXQuVWMsdC5yYz1udWxsLHU9MSksdT0hdSksIXUpe3U9dC5nYTt2YXIgbD10LkZhLGg9dC5QLGY9dC5xYyxkPXQubWIscD10Lm5iLGc9aCsxLG09Zi0xLGI9dS5sO2lmKGUobnVsbCE9bCYmbnVsbCE9ZCYmbnVsbCE9ciksZ2lbMF09bnVsbCxnaVsxXT1zcixnaVsyXT1jcixnaVszXT11cix1LmNhPWQsdS50Yj1wLHUuYz1yLndpZHRoLHUuaT1yLmhlaWdodCxlKDA8dS5jJiYwPHUuaSksMT49ZilyPTA7ZWxzZSBpZih1LiRhPTMmbFtoKzBdLHUuWj1sW2grMF0+PjImMyx1LkxjPWxbaCswXT4+NCYzLGg9bFtoKzBdPj42JjMsMD51LiRhfHwxPHUuJGF8fDQ8PXUuWnx8MTx1LkxjfHxoKXI9MDtlbHNlIGlmKGIucHV0PWR0LGIuYWM9ZnQsYi5iYz1wdCxiLm1hPXUsYi53aWR0aD1yLndpZHRoLGIuaGVpZ2h0PXIuaGVpZ2h0LGIuRGE9ci5EYSxiLnY9ci52LGIudmE9ci52YSxiLmo9ci5qLGIubz1yLm8sdS4kYSl0OntlKDE9PXUuJGEpLHI9a3QoKTtlOmZvcig7Oyl7aWYobnVsbD09cil7cj0wO2JyZWFrIHR9aWYoZShudWxsIT11KSx1Lm1jPXIsci5jPXUuYyxyLmk9dS5pLHIubD11Lmwsci5sLm1hPXUsci5sLndpZHRoPXUuYyxyLmwuaGVpZ2h0PXUuaSxyLmE9MCx2KHIubSxsLGcsbSksIUZ0KHUuYyx1LmksMSxyLG51bGwpKWJyZWFrIGU7aWYoMT09ci5hYiYmMz09ci5nY1swXS5oYyYmeHQoci5zKT8odS5pYz0xLGw9ci5jKnIuaSxyLlRhPW51bGwsci5VYT0wLHIuVj1hKGwpLHIuQmE9MCxudWxsPT1yLlY/KHIuYT0xLHI9MCk6cj0xKToodS5pYz0wLHI9SXQocix1LmMpKSwhcilicmVhayBlO3I9MTticmVhayB0fXUubWM9bnVsbCxyPTB9ZWxzZSByPW0+PXUuYyp1Lmk7dT0hcn1pZih1KXJldHVybiBudWxsOzEhPXQuZ2EuTGM/dC5HYT0wOm89Yy1pfWUobnVsbCE9dC5nYSksZShpK288PWMpO3Q6e2lmKHI9KGw9dC5nYSkuYyxjPWwubC5vLDA9PWwuJGEpe2lmKGc9dC5yYyxtPXQuVmMsYj10LkZhLGg9dC5QKzEraSpyLGY9dC5tYixkPXQubmIraSpyLGUoaDw9dC5QK3QucWMpLDAhPWwuWilmb3IoZShudWxsIT1naVtsLlpdKSx1PTA7dTxvOysrdSlnaVtsLlpdKGcsbSxiLGgsZixkLHIpLGc9ZixtPWQsZCs9cixoKz1yO2Vsc2UgZm9yKHU9MDt1PG87Kyt1KW4oZixkLGIsaCxyKSxnPWYsbT1kLGQrPXIsaCs9cjt0LnJjPWcsdC5WYz1tfWVsc2V7aWYoZShudWxsIT1sLm1jKSxyPWkrbyxlKG51bGwhPSh1PWwubWMpKSxlKHI8PXUuaSksdS5DPj1yKXI9MTtlbHNlIGlmKGwuaWN8fGdyKCksbC5pYyl7bD11LlYsZz11LkJhLG09dS5jO3ZhciB5PXUuaSx3PShiPTEsaD11LiQvbSxmPXUuJCVtLGQ9dS5tLHA9dS5zLHUuJCksTj1tKnksTD1tKnIsQT1wLndjLF89dzxMP3d0KHAsZixoKTpudWxsO2Uodzw9TiksZShyPD15KSxlKHh0KHApKTtlOmZvcig7Oyl7Zm9yKDshZC5oJiZ3PEw7KXtpZihmJkF8fChfPXd0KHAsZixoKSksZShudWxsIT1fKSxTKGQpLDI1Nj4oeT1idChfLkdbMF0sXy5IWzBdLGQpKSlsW2crd109eSwrK3csKytmPj1tJiYoZj0wLCsraDw9ciYmIShoJTE2KSYmU3QodSxoKSk7ZWxzZXtpZighKDI4MD55KSl7Yj0wO2JyZWFrIGV9eT1tdCh5LTI1NixkKTt2YXIgUCxrPWJ0KF8uR1s0XSxfLkhbNF0sZCk7aWYoUyhkKSwhKHc+PShrPXZ0KG0saz1tdChrLGQpKSkmJk4tdz49eSkpe2I9MDticmVhayBlfWZvcihQPTA7UDx5OysrUClsW2crdytQXT1sW2crdytQLWtdO2Zvcih3Kz15LGYrPXk7Zj49bTspZi09bSwrK2g8PXImJiEoaCUxNikmJlN0KHUsaCk7dzxMJiZmJkEmJihfPXd0KHAsZixoKSl9ZShkLmg9PXgoZCkpfVN0KHUsaD5yP3I6aCk7YnJlYWsgZX0hYnx8ZC5oJiZ3PE4/KGI9MCx1LmE9ZC5oPzU6Myk6dS4kPXcscj1ifWVsc2Ugcj1fdCh1LHUuVix1LkJhLHUuYyx1LmkscixDdCk7aWYoIXIpe289MDticmVhayB0fX1pK28+PWMmJih0LkNjPTEpLG89MX1pZighbylyZXR1cm4gbnVsbDtpZih0LkNjJiYobnVsbCE9KG89dC5nYSkmJihvLm1jPW51bGwpLHQuZ2E9bnVsbCwwPHQuR2EpKXJldHVybiBhbGVydChcInRvZG86V2ViUERlcXVhbnRpemVMZXZlbHNcIiksbnVsbH1yZXR1cm4gdC5uYitpKnN9ZnVuY3Rpb24gaHIodCxlLHIsbixpLGEpe2Zvcig7MDxpLS07KXt2YXIgbyxzPXQsYz1lKyhyPzE6MCksdT10LGw9ZSsocj8wOjMpO2ZvcihvPTA7bzxuOysrbyl7dmFyIGg9dVtsKzQqb107MjU1IT1oJiYoaCo9MzI4OTcsc1tjKzQqbyswXT1zW2MrNCpvKzBdKmg+PjIzLHNbYys0Km8rMV09c1tjKzQqbysxXSpoPj4yMyxzW2MrNCpvKzJdPXNbYys0Km8rMl0qaD4+MjMpfWUrPWF9fWZ1bmN0aW9uIGZyKHQsZSxyLG4saSl7Zm9yKDswPG4tLTspe3ZhciBhO2ZvcihhPTA7YTxyOysrYSl7dmFyIG89dFtlKzIqYSswXSxzPTE1Jih1PXRbZSsyKmErMV0pLGM9NDM2OSpzLHU9KDI0MCZ1fHU+PjQpKmM+PjE2O3RbZSsyKmErMF09KDI0MCZvfG8+PjQpKmM+PjE2JjI0MHwoMTUmb3xvPDw0KSpjPj4xNj4+NCYxNSx0W2UrMiphKzFdPTI0MCZ1fHN9ZSs9aX19ZnVuY3Rpb24gZHIodCxlLHIsbixpLGEsbyxzKXt2YXIgYyx1LGw9MjU1O2Zvcih1PTA7dTxpOysrdSl7Zm9yKGM9MDtjPG47KytjKXt2YXIgaD10W2UrY107YVtvKzQqY109aCxsJj1ofWUrPXIsbys9c31yZXR1cm4gMjU1IT1sfWZ1bmN0aW9uIHByKHQsZSxyLG4saSl7dmFyIGE7Zm9yKGE9MDthPGk7KythKXJbbithXT10W2UrYV0+Pjh9ZnVuY3Rpb24gZ3IoKXtMbj1ocix4bj1mcixBbj1kcixTbj1wcn1mdW5jdGlvbiBtcihyLG4saSl7dFtyXT1mdW5jdGlvbih0LHIsYSxvLHMsYyx1LGwsaCxmLGQscCxnLG0sdixiLHkpe3ZhciB3LE49eS0xPj4xLEw9c1tjKzBdfHVbbCswXTw8MTYseD1oW2YrMF18ZFtwKzBdPDwxNjtlKG51bGwhPXQpO3ZhciBBPTMqTCt4KzEzMTA3ND4+Mjtmb3Iobih0W3IrMF0sMjU1JkEsQT4+MTYsZyxtKSxudWxsIT1hJiYoQT0zKngrTCsxMzEwNzQ+PjIsbihhW28rMF0sMjU1JkEsQT4+MTYsdixiKSksdz0xO3c8PU47Kyt3KXt2YXIgUz1zW2Mrd118dVtsK3ddPDwxNixfPWhbZit3XXxkW3Ard108PDE2LFA9TCtTK3grXys1MjQyOTYsaz1QKzIqKFMreCk+PjM7QT1rK0w+PjEsTD0oUD1QKzIqKEwrXyk+PjMpK1M+PjEsbih0W3IrMip3LTFdLDI1NSZBLEE+PjE2LGcsbSsoMip3LTEpKmkpLG4odFtyKzIqdy0wXSwyNTUmTCxMPj4xNixnLG0rKDIqdy0wKSppKSxudWxsIT1hJiYoQT1QK3g+PjEsTD1rK18+PjEsbihhW28rMip3LTFdLDI1NSZBLEE+PjE2LHYsYisoMip3LTEpKmkpLG4oYVtvKzIqdyswXSwyNTUmTCxMPj4xNix2LGIrKDIqdyswKSppKSksTD1TLHg9X30xJnl8fChBPTMqTCt4KzEzMTA3ND4+MixuKHRbcit5LTFdLDI1NSZBLEE+PjE2LGcsbSsoeS0xKSppKSxudWxsIT1hJiYoQT0zKngrTCsxMzEwNzQ+PjIsbihhW28reS0xXSwyNTUmQSxBPj4xNix2LGIrKHktMSkqaSkpKX19ZnVuY3Rpb24gdnIoKXttaVtxbl09dmksbWlbTW5dPXlpLG1pW0VuXT1iaSxtaVtSbl09d2ksbWlbRG5dPU5pLG1pW1RuXT1MaSxtaVt6bl09eGksbWlbVW5dPXlpLG1pW0huXT13aSxtaVtXbl09TmksbWlbVm5dPUxpfWZ1bmN0aW9uIGJyKHQpe3JldHVybiB0Jn5GaT8wPnQ/MDoyNTU6dD4+a2l9ZnVuY3Rpb24geXIodCxlKXtyZXR1cm4gYnIoKDE5MDc3KnQ+PjgpKygyNjE0OSplPj44KS0xNDIzNCl9ZnVuY3Rpb24gd3IodCxlLHIpe3JldHVybiBicigoMTkwNzcqdD4+OCktKDY0MTkqZT4+OCktKDEzMzIwKnI+PjgpKzg3MDgpfWZ1bmN0aW9uIE5yKHQsZSl7cmV0dXJuIGJyKCgxOTA3Nyp0Pj44KSsoMzMwNTAqZT4+OCktMTc2ODUpfWZ1bmN0aW9uIExyKHQsZSxyLG4saSl7bltpKzBdPXlyKHQsciksbltpKzFdPXdyKHQsZSxyKSxuW2krMl09TnIodCxlKX1mdW5jdGlvbiB4cih0LGUscixuLGkpe25baSswXT1Ocih0LGUpLG5baSsxXT13cih0LGUsciksbltpKzJdPXlyKHQscil9ZnVuY3Rpb24gQXIodCxlLHIsbixpKXt2YXIgYT13cih0LGUscik7ZT1hPDwzJjIyNHxOcih0LGUpPj4zLG5baSswXT0yNDgmeXIodCxyKXxhPj41LG5baSsxXT1lfWZ1bmN0aW9uIFNyKHQsZSxyLG4saSl7dmFyIGE9MjQwJk5yKHQsZSl8MTU7bltpKzBdPTI0MCZ5cih0LHIpfHdyKHQsZSxyKT4+NCxuW2krMV09YX1mdW5jdGlvbiBfcih0LGUscixuLGkpe25baSswXT0yNTUsTHIodCxlLHIsbixpKzEpfWZ1bmN0aW9uIFByKHQsZSxyLG4saSl7eHIodCxlLHIsbixpKSxuW2krM109MjU1fWZ1bmN0aW9uIGtyKHQsZSxyLG4saSl7THIodCxlLHIsbixpKSxuW2krM109MjU1fWZ1bmN0aW9uIEZyKGUscixuKXt0W2VdPWZ1bmN0aW9uKHQsZSxpLGEsbyxzLGMsdSxsKXtmb3IodmFyIGg9dSsoLTImbCkqbjt1IT1oOylyKHRbZSswXSxpW2ErMF0sb1tzKzBdLGMsdSkscih0W2UrMV0saVthKzBdLG9bcyswXSxjLHUrbiksZSs9MiwrK2EsKytzLHUrPTIqbjsxJmwmJnIodFtlKzBdLGlbYSswXSxvW3MrMF0sYyx1KX19ZnVuY3Rpb24gSXIodCxlLHIpe3JldHVybiAwPT1yPzA9PXQ/MD09ZT82OjU6MD09ZT80OjA6cn1mdW5jdGlvbiBDcih0LGUscixuLGkpe3N3aXRjaCh0Pj4+MzApe2Nhc2UgMzphbihlLHIsbixpLDApO2JyZWFrO2Nhc2UgMjpvbihlLHIsbixpKTticmVhaztjYXNlIDE6Y24oZSxyLG4saSl9fWZ1bmN0aW9uIGpyKHQsZSl7dmFyIHIsYSxvPWUuTSxzPWUuTmIsYz10Lm9jLHU9dC5wYys0MCxsPXQub2MsaD10LnBjKzU4NCxmPXQub2MsZD10LnBjKzYwMDtmb3Iocj0wOzE2PnI7KytyKWNbdSszMipyLTFdPTEyOTtmb3Iocj0wOzg+cjsrK3IpbFtoKzMyKnItMV09MTI5LGZbZCszMipyLTFdPTEyOTtmb3IoMDxvP2NbdS0xLTMyXT1sW2gtMS0zMl09ZltkLTEtMzJdPTEyOTooaShjLHUtMzItMSwxMjcsMjEpLGkobCxoLTMyLTEsMTI3LDkpLGkoZixkLTMyLTEsMTI3LDkpKSxhPTA7YTx0LnphOysrYSl7dmFyIHA9ZS55YVtlLmFhK2FdO2lmKDA8YSl7Zm9yKHI9LTE7MTY+cjsrK3IpbihjLHUrMzIqci00LGMsdSszMipyKzEyLDQpO2ZvcihyPS0xOzg+cjsrK3IpbihsLGgrMzIqci00LGwsaCszMipyKzQsNCksbihmLGQrMzIqci00LGYsZCszMipyKzQsNCl9dmFyIGc9dC5HZCxtPXQuSGQrYSx2PXAuYWQsYj1wLkhjO2lmKDA8byYmKG4oYyx1LTMyLGdbbV0ueSwwLDE2KSxuKGwsaC0zMixnW21dLmYsMCw4KSxuKGYsZC0zMixnW21dLmVhLDAsOCkpLHAuWmEpe3ZhciB5PWMsdz11LTMyKzE2O2ZvcigwPG8mJihhPj10LnphLTE/aSh5LHcsZ1ttXS55WzE1XSw0KTpuKHksdyxnW20rMV0ueSwwLDQpKSxyPTA7ND5yO3IrKyl5W3crMTI4K3JdPXlbdysyNTYrcl09eVt3KzM4NCtyXT15W3crMCtyXTtmb3Iocj0wOzE2PnI7KytyLGI8PD0yKXk9Yyx3PXUrRWlbcl0saGlbcC5PYltyXV0oeSx3KSxDcihiLHYsMTYqK3IseSx3KX1lbHNlIGlmKHk9SXIoYSxvLHAuT2JbMF0pLGxpW3ldKGMsdSksMCE9Yilmb3Iocj0wOzE2PnI7KytyLGI8PD0yKUNyKGIsdiwxNiorcixjLHUrRWlbcl0pO2ZvcihyPXAuR2MseT1JcihhLG8scC5EZCksZmlbeV0obCxoKSxmaVt5XShmLGQpLGI9dix5PWwsdz1oLDI1NSYocD0wfHIpJiYoMTcwJnA/c24oYiwyNTYseSx3KTp1bihiLDI1Nix5LHcpKSxwPWYsYj1kLDI1NSYocj4+PTgpJiYoMTcwJnI/c24odiwzMjAscCxiKTp1bih2LDMyMCxwLGIpKSxvPHQuVWItMSYmKG4oZ1ttXS55LDAsYyx1KzQ4MCwxNiksbihnW21dLmYsMCxsLGgrMjI0LDgpLG4oZ1ttXS5lYSwwLGYsZCsyMjQsOCkpLHI9OCpzKnQuQixnPXQuc2EsbT10LnRhKzE2KmErMTYqcyp0LlIsdj10LnFhLHA9dC5yYSs4KmErcixiPXQuSGEseT10LklhKzgqYStyLHI9MDsxNj5yOysrciluKGcsbStyKnQuUixjLHUrMzIqciwxNik7Zm9yKHI9MDs4PnI7KytyKW4odixwK3IqdC5CLGwsaCszMipyLDgpLG4oYix5K3IqdC5CLGYsZCszMipyLDgpfX1mdW5jdGlvbiBPcih0LG4saSxhLG8scyxjLHUsbCl7dmFyIGg9WzBdLGY9WzBdLGQ9MCxwPW51bGwhPWw/bC5rZDowLGc9bnVsbCE9bD9sOm5ldyBycjtpZihudWxsPT10fHwxMj5pKXJldHVybiA3O2cuZGF0YT10LGcudz1uLGcuaGE9aSxuPVtuXSxpPVtpXSxnLmdiPVtnLmdiXTt0Ont2YXIgbT1uLGI9aSx5PWcuZ2I7aWYoZShudWxsIT10KSxlKG51bGwhPWIpLGUobnVsbCE9eSkseVswXT0wLDEyPD1iWzBdJiYhcih0LG1bMF0sXCJSSUZGXCIpKXtpZihyKHQsbVswXSs4LFwiV0VCUFwiKSl7eT0zO2JyZWFrIHR9dmFyIHc9aih0LG1bMF0rNCk7aWYoMTI+d3x8NDI5NDk2NzI4Njx3KXt5PTM7YnJlYWsgdH1pZihwJiZ3PmJbMF0tOCl7eT03O2JyZWFrIHR9eVswXT13LG1bMF0rPTEyLGJbMF0tPTEyfXk9MH1pZigwIT15KXJldHVybiB5O2Zvcih3PTA8Zy5nYlswXSxpPWlbMF07Oyl7dDp7dmFyIEw9dDtiPW4seT1pO3ZhciB4PWgsQT1mLFM9bT1bMF07aWYoKGs9ZD1bZF0pWzBdPTAsOD55WzBdKXk9NztlbHNle2lmKCFyKEwsYlswXSxcIlZQOFhcIikpe2lmKDEwIT1qKEwsYlswXSs0KSl7eT0zO2JyZWFrIHR9aWYoMTg+eVswXSl7eT03O2JyZWFrIHR9dmFyIF89aihMLGJbMF0rOCksUD0xK0MoTCxiWzBdKzEyKTtpZigyMTQ3NDgzNjQ4PD1QKihMPTErQyhMLGJbMF0rMTUpKSl7eT0zO2JyZWFrIHR9bnVsbCE9UyYmKFNbMF09XyksbnVsbCE9eCYmKHhbMF09UCksbnVsbCE9QSYmKEFbMF09TCksYlswXSs9MTgseVswXS09MTgsa1swXT0xfXk9MH19aWYoZD1kWzBdLG09bVswXSwwIT15KXJldHVybiB5O2lmKGI9ISEoMiZtKSwhdyYmZClyZXR1cm4gMztpZihudWxsIT1zJiYoc1swXT0hISgxNiZtKSksbnVsbCE9YyYmKGNbMF09YiksbnVsbCE9dSYmKHVbMF09MCksYz1oWzBdLG09ZlswXSxkJiZiJiZudWxsPT1sKXt5PTA7YnJlYWt9aWYoND5pKXt5PTc7YnJlYWt9aWYodyYmZHx8IXcmJiFkJiYhcih0LG5bMF0sXCJBTFBIXCIpKXtpPVtpXSxnLm5hPVtnLm5hXSxnLlA9W2cuUF0sZy5TYT1bZy5TYV07dDp7Xz10LHk9bix3PWk7dmFyIGs9Zy5nYjt4PWcubmEsQT1nLlAsUz1nLlNhLFA9MjIsZShudWxsIT1fKSxlKG51bGwhPXcpLEw9eVswXTt2YXIgRj13WzBdO2ZvcihlKG51bGwhPXgpLGUobnVsbCE9UykseFswXT1udWxsLEFbMF09bnVsbCxTWzBdPTA7Oyl7aWYoeVswXT1MLHdbMF09Riw4PkYpe3k9NzticmVhayB0fXZhciBJPWooXyxMKzQpO2lmKDQyOTQ5NjcyODY8SSl7eT0zO2JyZWFrIHR9dmFyIE89OCtJKzEmLTI7aWYoUCs9TywwPGsmJlA+ayl7eT0zO2JyZWFrIHR9aWYoIXIoXyxMLFwiVlA4IFwiKXx8IXIoXyxMLFwiVlA4TFwiKSl7eT0wO2JyZWFrIHR9aWYoRlswXTxPKXt5PTc7YnJlYWsgdH1yKF8sTCxcIkFMUEhcIil8fCh4WzBdPV8sQVswXT1MKzgsU1swXT1JKSxMKz1PLEYtPU99fWlmKGk9aVswXSxnLm5hPWcubmFbMF0sZy5QPWcuUFswXSxnLlNhPWcuU2FbMF0sMCE9eSlicmVha31pPVtpXSxnLkphPVtnLkphXSxnLnhhPVtnLnhhXTt0OmlmKGs9dCx5PW4sdz1pLHg9Zy5nYlswXSxBPWcuSmEsUz1nLnhhLF89eVswXSxMPSFyKGssXyxcIlZQOCBcIiksUD0hcihrLF8sXCJWUDhMXCIpLGUobnVsbCE9ayksZShudWxsIT13KSxlKG51bGwhPUEpLGUobnVsbCE9UyksOD53WzBdKXk9NztlbHNle2lmKEx8fFApe2lmKGs9aihrLF8rNCksMTI8PXgmJms+eC0xMil7eT0zO2JyZWFrIHR9aWYocCYmaz53WzBdLTgpe3k9NzticmVhayB0fUFbMF09ayx5WzBdKz04LHdbMF0tPTgsU1swXT1QfWVsc2UgU1swXT01PD13WzBdJiY0Nz09a1tfKzBdJiYhKGtbXys0XT4+NSksQVswXT13WzBdO3k9MH1pZihpPWlbMF0sZy5KYT1nLkphWzBdLGcueGE9Zy54YVswXSxuPW5bMF0sMCE9eSlicmVhaztpZig0Mjk0OTY3Mjg2PGcuSmEpcmV0dXJuIDM7aWYobnVsbD09dXx8Ynx8KHVbMF09Zy54YT8yOjEpLGM9W2NdLG09W21dLGcueGEpe2lmKDU+aSl7eT03O2JyZWFrfXU9YyxwPW0sYj1zLG51bGw9PXR8fDU+aT90PTA6NTw9aSYmNDc9PXRbbiswXSYmISh0W24rNF0+PjUpPyh3PVswXSxrPVswXSx4PVswXSx2KEE9bmV3IE4sdCxuLGkpLGd0KEEsdyxrLHgpPyhudWxsIT11JiYodVswXT13WzBdKSxudWxsIT1wJiYocFswXT1rWzBdKSxudWxsIT1iJiYoYlswXT14WzBdKSx0PTEpOnQ9MCk6dD0wfWVsc2V7aWYoMTA+aSl7eT03O2JyZWFrfXU9bSxudWxsPT10fHwxMD5pfHwhWHQodCxuKzMsaS0zKT90PTA6KHA9dFtuKzBdfHRbbisxXTw8OHx0W24rMl08PDE2LGI9MTYzODMmKHRbbis3XTw8OHx0W24rNl0pLHQ9MTYzODMmKHRbbis5XTw8OHx0W24rOF0pLDEmcHx8MzwocD4+MSY3KXx8IShwPj40JjEpfHxwPj41Pj1nLkphfHwhYnx8IXQ/dD0wOihjJiYoY1swXT1iKSx1JiYodVswXT10KSx0PTEpKX1pZighdClyZXR1cm4gMztpZihjPWNbMF0sbT1tWzBdLGQmJihoWzBdIT1jfHxmWzBdIT1tKSlyZXR1cm4gMztudWxsIT1sJiYobFswXT1nLGwub2Zmc2V0PW4tbC53LGUoNDI5NDk2NzI4Nj5uLWwudyksZShsLm9mZnNldD09bC5oYS1pKSk7YnJlYWt9cmV0dXJuIDA9PXl8fDc9PXkmJmQmJm51bGw9PWw/KG51bGwhPXMmJihzWzBdfD1udWxsIT1nLm5hJiYwPGcubmEubGVuZ3RoKSxudWxsIT1hJiYoYVswXT1jKSxudWxsIT1vJiYob1swXT1tKSwwKTp5fWZ1bmN0aW9uIEJyKHQsZSxyKXt2YXIgbj1lLndpZHRoLGk9ZS5oZWlnaHQsYT0wLG89MCxzPW4sYz1pO2lmKGUuRGE9bnVsbCE9dCYmMDx0LkRhLGUuRGEmJihzPXQuY2QsYz10LmJkLGE9dC52LG89dC5qLDExPnJ8fChhJj0tMixvJj0tMiksMD5hfHwwPm98fDA+PXN8fDA+PWN8fGErcz5ufHxvK2M+aSkpcmV0dXJuIDA7aWYoZS52PWEsZS5qPW8sZS52YT1hK3MsZS5vPW8rYyxlLlU9cyxlLlQ9YyxlLmRhPW51bGwhPXQmJjA8dC5kYSxlLmRhKXtpZighTShzLGMscj1bdC5pYl0sYT1bdC5oYl0pKXJldHVybiAwO2UuaWI9clswXSxlLmhiPWFbMF19cmV0dXJuIGUub2I9bnVsbCE9dCYmdC5vYixlLktiPW51bGw9PXR8fCF0LlNkLGUuZGEmJihlLm9iPWUuaWI8MypuLzQmJmUuaGI8MyppLzQsZS5LYj0wKSwxfWZ1bmN0aW9uIHFyKHQpe2lmKG51bGw9PXQpcmV0dXJuIDI7aWYoMTE+dC5TKXt2YXIgZT10LmYuUkdCQTtlLmZiKz0odC5oZWlnaHQtMSkqZS5BLGUuQT0tZS5BfWVsc2UgZT10LmYua2IsdD10LmhlaWdodCxlLk8rPSh0LTEpKmUuZmEsZS5mYT0tZS5mYSxlLk4rPSh0LTE+PjEpKmUuQWIsZS5BYj0tZS5BYixlLlcrPSh0LTE+PjEpKmUuRGIsZS5EYj0tZS5EYixudWxsIT1lLkYmJihlLkorPSh0LTEpKmUubGIsZS5sYj0tZS5sYik7cmV0dXJuIDB9ZnVuY3Rpb24gTXIodCxlLHIsbil7aWYobnVsbD09bnx8MD49dHx8MD49ZSlyZXR1cm4gMjtpZihudWxsIT1yKXtpZihyLkRhKXt2YXIgaT1yLmNkLG89ci5iZCxzPS0yJnIudixjPS0yJnIuajtpZigwPnN8fDA+Y3x8MD49aXx8MD49b3x8cytpPnR8fGMrbz5lKXJldHVybiAyO3Q9aSxlPW99aWYoci5kYSl7aWYoIU0odCxlLGk9W3IuaWJdLG89W3IuaGJdKSlyZXR1cm4gMjt0PWlbMF0sZT1vWzBdfX1uLndpZHRoPXQsbi5oZWlnaHQ9ZTt0Ont2YXIgdT1uLndpZHRoLGw9bi5oZWlnaHQ7aWYodD1uLlMsMD49dXx8MD49bHx8ISh0Pj1xbiYmMTM+dCkpdD0yO2Vsc2V7aWYoMD49bi5SZCYmbnVsbD09bi5zZCl7cz1vPWk9ZT0wO3ZhciBoPShjPXUqemlbdF0pKmw7aWYoMTE+dHx8KG89KGwrMSkvMiooZT0odSsxKS8yKSwxMj09dCYmKHM9KGk9dSkqbCkpLG51bGw9PShsPWEoaCsyKm8rcykpKXt0PTE7YnJlYWsgdH1uLnNkPWwsMTE+dD8oKHU9bi5mLlJHQkEpLmViPWwsdS5mYj0wLHUuQT1jLHUuc2l6ZT1oKTooKHU9bi5mLmtiKS55PWwsdS5PPTAsdS5mYT1jLHUuRmQ9aCx1LmY9bCx1Lk49MCtoLHUuQWI9ZSx1LkNkPW8sdS5lYT1sLHUuVz0wK2grbyx1LkRiPWUsdS5FZD1vLDEyPT10JiYodS5GPWwsdS5KPTAraCsyKm8pLHUuVGM9cyx1LmxiPWkpfWlmKGU9MSxpPW4uUyxvPW4ud2lkdGgscz1uLmhlaWdodCxpPj1xbiYmMTM+aSlpZigxMT5pKXQ9bi5mLlJHQkEsZSY9KGM9TWF0aC5hYnModC5BKSkqKHMtMSkrbzw9dC5zaXplLGUmPWM+PW8qemlbaV0sZSY9bnVsbCE9dC5lYjtlbHNle3Q9bi5mLmtiLGM9KG8rMSkvMixoPShzKzEpLzIsdT1NYXRoLmFicyh0LmZhKSxsPU1hdGguYWJzKHQuQWIpO3ZhciBmPU1hdGguYWJzKHQuRGIpLGQ9TWF0aC5hYnModC5sYikscD1kKihzLTEpK287ZSY9dSoocy0xKStvPD10LkZkLGUmPWwqKGgtMSkrYzw9dC5DZCxlPShlJj1mKihoLTEpK2M8PXQuRWQpJnU+PW8mbD49YyZmPj1jLGUmPW51bGwhPXQueSxlJj1udWxsIT10LmYsZSY9bnVsbCE9dC5lYSwxMj09aSYmKGUmPWQ+PW8sZSY9cDw9dC5UYyxlJj1udWxsIT10LkYpfWVsc2UgZT0wO3Q9ZT8wOjJ9fXJldHVybiAwIT10fHxudWxsIT1yJiZyLmZkJiYodD1xcihuKSksdH12YXIgRXI9NjQsUnI9WzAsMSwzLDcsMTUsMzEsNjMsMTI3LDI1NSw1MTEsMTAyMywyMDQ3LDQwOTUsODE5MSwxNjM4MywzMjc2Nyw2NTUzNSwxMzEwNzEsMjYyMTQzLDUyNDI4NywxMDQ4NTc1LDIwOTcxNTEsNDE5NDMwMyw4Mzg4NjA3LDE2Nzc3MjE1XSxEcj0yNCxUcj0zMix6cj04LFVyPVswLDAsMSwxLDIsMiwyLDIsMywzLDMsMywzLDMsMywzLDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3XTtEKFwiUHJlZGljdG9yMFwiLFwiUHJlZGljdG9yQWRkMFwiKSx0LlByZWRpY3RvcjA9ZnVuY3Rpb24oKXtyZXR1cm4gNDI3ODE5MDA4MH0sdC5QcmVkaWN0b3IxPWZ1bmN0aW9uKHQpe3JldHVybiB0fSx0LlByZWRpY3RvcjI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBlW3IrMF19LHQuUHJlZGljdG9yMz1mdW5jdGlvbih0LGUscil7cmV0dXJuIGVbcisxXX0sdC5QcmVkaWN0b3I0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZVtyLTFdfSx0LlByZWRpY3RvcjU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB6KHoodCxlW3IrMV0pLGVbciswXSl9LHQuUHJlZGljdG9yNj1mdW5jdGlvbih0LGUscil7cmV0dXJuIHoodCxlW3ItMV0pfSx0LlByZWRpY3Rvcjc9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB6KHQsZVtyKzBdKX0sdC5QcmVkaWN0b3I4PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4geihlW3ItMV0sZVtyKzBdKX0sdC5QcmVkaWN0b3I5PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4geihlW3IrMF0sZVtyKzFdKX0sdC5QcmVkaWN0b3IxMD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHooeih0LGVbci0xXSkseihlW3IrMF0sZVtyKzFdKSl9LHQuUHJlZGljdG9yMTE9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbciswXTtyZXR1cm4gMD49VyhuPj4yNCYyNTUsdD4+MjQmMjU1LChlPWVbci0xXSk+PjI0JjI1NSkrVyhuPj4xNiYyNTUsdD4+MTYmMjU1LGU+PjE2JjI1NSkrVyhuPj44JjI1NSx0Pj44JjI1NSxlPj44JjI1NSkrVygyNTUmbiwyNTUmdCwyNTUmZSk/bjp0fSx0LlByZWRpY3RvcjEyPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lW3IrMF07cmV0dXJuKFUoKHQ+PjI0JjI1NSkrKG4+PjI0JjI1NSktKChlPWVbci0xXSk+PjI0JjI1NSkpPDwyNHxVKCh0Pj4xNiYyNTUpKyhuPj4xNiYyNTUpLShlPj4xNiYyNTUpKTw8MTZ8VSgodD4+OCYyNTUpKyhuPj44JjI1NSktKGU+PjgmMjU1KSk8PDh8VSgoMjU1JnQpKygyNTUmbiktKDI1NSZlKSkpPj4+MH0sdC5QcmVkaWN0b3IxMz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVtyLTFdO3JldHVybihIKCh0PXoodCxlW3IrMF0pKT4+MjQmMjU1LG4+PjI0JjI1NSk8PDI0fEgodD4+MTYmMjU1LG4+PjE2JjI1NSk8PDE2fEgodD4+OCYyNTUsbj4+OCYyNTUpPDw4fEgoMjU1JnQsMjU1Jm4pKT4+PjB9O3ZhciBIcj10LlByZWRpY3RvckFkZDA7dC5QcmVkaWN0b3JBZGQxPVYsRChcIlByZWRpY3RvcjJcIixcIlByZWRpY3RvckFkZDJcIiksRChcIlByZWRpY3RvcjNcIixcIlByZWRpY3RvckFkZDNcIiksRChcIlByZWRpY3RvcjRcIixcIlByZWRpY3RvckFkZDRcIiksRChcIlByZWRpY3RvcjVcIixcIlByZWRpY3RvckFkZDVcIiksRChcIlByZWRpY3RvcjZcIixcIlByZWRpY3RvckFkZDZcIiksRChcIlByZWRpY3RvcjdcIixcIlByZWRpY3RvckFkZDdcIiksRChcIlByZWRpY3RvcjhcIixcIlByZWRpY3RvckFkZDhcIiksRChcIlByZWRpY3RvcjlcIixcIlByZWRpY3RvckFkZDlcIiksRChcIlByZWRpY3RvcjEwXCIsXCJQcmVkaWN0b3JBZGQxMFwiKSxEKFwiUHJlZGljdG9yMTFcIixcIlByZWRpY3RvckFkZDExXCIpLEQoXCJQcmVkaWN0b3IxMlwiLFwiUHJlZGljdG9yQWRkMTJcIiksRChcIlByZWRpY3RvcjEzXCIsXCJQcmVkaWN0b3JBZGQxM1wiKTt2YXIgV3I9dC5QcmVkaWN0b3JBZGQyO1goXCJDb2xvckluZGV4SW52ZXJzZVRyYW5zZm9ybVwiLFwiTWFwQVJHQlwiLFwiMzJiXCIsZnVuY3Rpb24odCl7cmV0dXJuIHQ+PjgmMjU1fSxmdW5jdGlvbih0KXtyZXR1cm4gdH0pLFgoXCJWUDhMQ29sb3JJbmRleEludmVyc2VUcmFuc2Zvcm1BbHBoYVwiLFwiTWFwQWxwaGFcIixcIjhiXCIsZnVuY3Rpb24odCl7cmV0dXJuIHR9LGZ1bmN0aW9uKHQpe3JldHVybiB0Pj44JjI1NX0pO3ZhciBWcixHcj10LkNvbG9ySW5kZXhJbnZlcnNlVHJhbnNmb3JtLFlyPXQuTWFwQVJHQixKcj10LlZQOExDb2xvckluZGV4SW52ZXJzZVRyYW5zZm9ybUFscGhhLFhyPXQuTWFwQWxwaGEsS3I9dC5WUDhMUHJlZGljdG9yc0FkZD1bXTtLci5sZW5ndGg9MTYsKHQuVlA4TFByZWRpY3RvcnM9W10pLmxlbmd0aD0xNiwodC5WUDhMUHJlZGljdG9yc0FkZF9DPVtdKS5sZW5ndGg9MTYsKHQuVlA4TFByZWRpY3RvcnNfQz1bXSkubGVuZ3RoPTE2O3ZhciAkcixacixRcix0bixlbixybixubixhbixvbixzbixjbix1bixsbixobixmbixkbixwbixnbixtbix2bixibix5bix3bixObixMbix4bixBbixTbixfbj1hKDUxMSksUG49YSgyMDQxKSxrbj1hKDIyNSksRm49YSg3NjcpLEluPTAsQ249UG4sam49a24sT249Rm4sQm49X24scW49MCxNbj0xLEVuPTIsUm49MyxEbj00LFRuPTUsem49NixVbj03LEhuPTgsV249OSxWbj0xMCxHbj1bMiwzLDddLFluPVszLDMsMTFdLEpuPVsyODAsMjU2LDI1NiwyNTYsNDBdLFhuPVswLDEsMSwxLDBdLEtuPVsxNywxOCwwLDEsMiwzLDQsNSwxNiw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1XSwkbj1bMjQsNywyMywyNSw0MCw2LDM5LDQxLDIyLDI2LDM4LDQyLDU2LDUsNTUsNTcsMjEsMjcsNTQsNTgsMzcsNDMsNzIsNCw3MSw3MywyMCwyOCw1Myw1OSw3MCw3NCwzNiw0NCw4OCw2OSw3NSw1Miw2MCwzLDg3LDg5LDE5LDI5LDg2LDkwLDM1LDQ1LDY4LDc2LDg1LDkxLDUxLDYxLDEwNCwyLDEwMywxMDUsMTgsMzAsMTAyLDEwNiwzNCw0Niw4NCw5Miw2Nyw3NywxMDEsMTA3LDUwLDYyLDEyMCwxLDExOSwxMjEsODMsOTMsMTcsMzEsMTAwLDEwOCw2Niw3OCwxMTgsMTIyLDMzLDQ3LDExNywxMjMsNDksNjMsOTksMTA5LDgyLDk0LDAsMTE2LDEyNCw2NSw3OSwxNiwzMiw5OCwxMTAsNDgsMTE1LDEyNSw4MSw5NSw2NCwxMTQsMTI2LDk3LDExMSw4MCwxMTMsMTI3LDk2LDExMl0sWm49WzI5NTQsMjk1NiwyOTU4LDI5NjIsMjk3MCwyOTg2LDMwMTgsMzA4MiwzMjEyLDM0NjgsMzk4MCw1MDA0XSxRbj04LHRpPVs0LDUsNiw3LDgsOSwxMCwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxNywxOCwxOSwyMCwyMCwyMSwyMSwyMiwyMiwyMywyMywyNCwyNSwyNSwyNiwyNywyOCwyOSwzMCwzMSwzMiwzMywzNCwzNSwzNiwzNywzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MSw5Myw5NSw5Niw5OCwxMDAsMTAxLDEwMiwxMDQsMTA2LDEwOCwxMTAsMTEyLDExNCwxMTYsMTE4LDEyMiwxMjQsMTI2LDEyOCwxMzAsMTMyLDEzNCwxMzYsMTM4LDE0MCwxNDMsMTQ1LDE0OCwxNTEsMTU0LDE1N10sZWk9WzQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDYwLDYyLDY0LDY2LDY4LDcwLDcyLDc0LDc2LDc4LDgwLDgyLDg0LDg2LDg4LDkwLDkyLDk0LDk2LDk4LDEwMCwxMDIsMTA0LDEwNiwxMDgsMTEwLDExMiwxMTQsMTE2LDExOSwxMjIsMTI1LDEyOCwxMzEsMTM0LDEzNywxNDAsMTQzLDE0NiwxNDksMTUyLDE1NSwxNTgsMTYxLDE2NCwxNjcsMTcwLDE3MywxNzcsMTgxLDE4NSwxODksMTkzLDE5NywyMDEsMjA1LDIwOSwyMTMsMjE3LDIyMSwyMjUsMjI5LDIzNCwyMzksMjQ1LDI0OSwyNTQsMjU5LDI2NCwyNjksMjc0LDI3OSwyODRdLHJpPW51bGwsbmk9W1sxNzMsMTQ4LDE0MCwwXSxbMTc2LDE1NSwxNDAsMTM1LDBdLFsxODAsMTU3LDE0MSwxMzQsMTMwLDBdLFsyNTQsMjU0LDI0MywyMzAsMTk2LDE3NywxNTMsMTQwLDEzMywxMzAsMTI5LDBdXSxpaT1bMCwxLDQsOCw1LDIsMyw2LDksMTIsMTMsMTAsNywxMSwxNCwxNV0sYWk9Wy0wLDEsLTEsMiwtMiwzLDQsNiwtMyw1LC00LC01LC02LDcsLTcsOCwtOCwtOV0sb2k9W1tbWzEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjhdLFsxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4XSxbMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOF1dLFtbMjUzLDEzNiwyNTQsMjU1LDIyOCwyMTksMTI4LDEyOCwxMjgsMTI4LDEyOF0sWzE4OSwxMjksMjQyLDI1NSwyMjcsMjEzLDI1NSwyMTksMTI4LDEyOCwxMjhdLFsxMDYsMTI2LDIyNywyNTIsMjE0LDIwOSwyNTUsMjU1LDEyOCwxMjgsMTI4XV0sW1sxLDk4LDI0OCwyNTUsMjM2LDIyNiwyNTUsMjU1LDEyOCwxMjgsMTI4XSxbMTgxLDEzMywyMzgsMjU0LDIyMSwyMzQsMjU1LDE1NCwxMjgsMTI4LDEyOF0sWzc4LDEzNCwyMDIsMjQ3LDE5OCwxODAsMjU1LDIxOSwxMjgsMTI4LDEyOF1dLFtbMSwxODUsMjQ5LDI1NSwyNDMsMjU1LDEyOCwxMjgsMTI4LDEyOCwxMjhdLFsxODQsMTUwLDI0NywyNTUsMjM2LDIyNCwxMjgsMTI4LDEyOCwxMjgsMTI4XSxbNzcsMTEwLDIxNiwyNTUsMjM2LDIzMCwxMjgsMTI4LDEyOCwxMjgsMTI4XV0sW1sxLDEwMSwyNTEsMjU1LDI0MSwyNTUsMTI4LDEyOCwxMjgsMTI4LDEyOF0sWzE3MCwxMzksMjQxLDI1MiwyMzYsMjA5LDI1NSwyNTUsMTI4LDEyOCwxMjhdLFszNywxMTYsMTk2LDI0MywyMjgsMjU1LDI1NSwyNTUsMTI4LDEyOCwxMjhdXSxbWzEsMjA0LDI1NCwyNTUsMjQ1LDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4XSxbMjA3LDE2MCwyNTAsMjU1LDIzOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOF0sWzEwMiwxMDMsMjMxLDI1NSwyMTEsMTcxLDEyOCwxMjgsMTI4LDEyOCwxMjhdXSxbWzEsMTUyLDI1MiwyNTUsMjQwLDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4XSxbMTc3LDEzNSwyNDMsMjU1LDIzNCwyMjUsMTI4LDEyOCwxMjgsMTI4LDEyOF0sWzgwLDEyOSwyMTEsMjU1LDE5NCwyMjQsMTI4LDEyOCwxMjgsMTI4LDEyOF1dLFtbMSwxLDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4XSxbMjQ2LDEsMjU1LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjhdLFsyNTUsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4XV1dLFtbWzE5OCwzNSwyMzcsMjIzLDE5MywxODcsMTYyLDE2MCwxNDUsMTU1LDYyXSxbMTMxLDQ1LDE5OCwyMjEsMTcyLDE3NiwyMjAsMTU3LDI1MiwyMjEsMV0sWzY4LDQ3LDE0NiwyMDgsMTQ5LDE2NywyMjEsMTYyLDI1NSwyMjMsMTI4XV0sW1sxLDE0OSwyNDEsMjU1LDIyMSwyMjQsMjU1LDI1NSwxMjgsMTI4LDEyOF0sWzE4NCwxNDEsMjM0LDI1MywyMjIsMjIwLDI1NSwxOTksMTI4LDEyOCwxMjhdLFs4MSw5OSwxODEsMjQyLDE3NiwxOTAsMjQ5LDIwMiwyNTUsMjU1LDEyOF1dLFtbMSwxMjksMjMyLDI1MywyMTQsMTk3LDI0MiwxOTYsMjU1LDI1NSwxMjhdLFs5OSwxMjEsMjEwLDI1MCwyMDEsMTk4LDI1NSwyMDIsMTI4LDEyOCwxMjhdLFsyMyw5MSwxNjMsMjQyLDE3MCwxODcsMjQ3LDIxMCwyNTUsMjU1LDEyOF1dLFtbMSwyMDAsMjQ2LDI1NSwyMzQsMjU1LDEyOCwxMjgsMTI4LDEyOCwxMjhdLFsxMDksMTc4LDI0MSwyNTUsMjMxLDI0NSwyNTUsMjU1LDEyOCwxMjgsMTI4XSxbNDQsMTMwLDIwMSwyNTMsMjA1LDE5MiwyNTUsMjU1LDEyOCwxMjgsMTI4XV0sW1sxLDEzMiwyMzksMjUxLDIxOSwyMDksMjU1LDE2NSwxMjgsMTI4LDEyOF0sWzk0LDEzNiwyMjUsMjUxLDIxOCwxOTAsMjU1LDI1NSwxMjgsMTI4LDEyOF0sWzIyLDEwMCwxNzQsMjQ1LDE4NiwxNjEsMjU1LDE5OSwxMjgsMTI4LDEyOF1dLFtbMSwxODIsMjQ5LDI1NSwyMzIsMjM1LDEyOCwxMjgsMTI4LDEyOCwxMjhdLFsxMjQsMTQzLDI0MSwyNTUsMjI3LDIzNCwxMjgsMTI4LDEyOCwxMjgsMTI4XSxbMzUsNzcsMTgxLDI1MSwxOTMsMjExLDI1NSwyMDUsMTI4LDEyOCwxMjhdXSxbWzEsMTU3LDI0NywyNTUsMjM2LDIzMSwyNTUsMjU1LDEyOCwxMjgsMTI4XSxbMTIxLDE0MSwyMzUsMjU1LDIyNSwyMjcsMjU1LDI1NSwxMjgsMTI4LDEyOF0sWzQ1LDk5LDE4OCwyNTEsMTk1LDIxNywyNTUsMjI0LDEyOCwxMjgsMTI4XV0sW1sxLDEsMjUxLDI1NSwyMTMsMjU1LDEyOCwxMjgsMTI4LDEyOCwxMjhdLFsyMDMsMSwyNDgsMjU1LDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOF0sWzEzNywxLDE3NywyNTUsMjI0LDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4XV1dLFtbWzI1Myw5LDI0OCwyNTEsMjA3LDIwOCwyNTUsMTkyLDEyOCwxMjgsMTI4XSxbMTc1LDEzLDIyNCwyNDMsMTkzLDE4NSwyNDksMTk4LDI1NSwyNTUsMTI4XSxbNzMsMTcsMTcxLDIyMSwxNjEsMTc5LDIzNiwxNjcsMjU1LDIzNCwxMjhdXSxbWzEsOTUsMjQ3LDI1MywyMTIsMTgzLDI1NSwyNTUsMTI4LDEyOCwxMjhdLFsyMzksOTAsMjQ0LDI1MCwyMTEsMjA5LDI1NSwyNTUsMTI4LDEyOCwxMjhdLFsxNTUsNzcsMTk1LDI0OCwxODgsMTk1LDI1NSwyNTUsMTI4LDEyOCwxMjhdXSxbWzEsMjQsMjM5LDI1MSwyMTgsMjE5LDI1NSwyMDUsMTI4LDEyOCwxMjhdLFsyMDEsNTEsMjE5LDI1NSwxOTYsMTg2LDEyOCwxMjgsMTI4LDEyOCwxMjhdLFs2OSw0NiwxOTAsMjM5LDIwMSwyMTgsMjU1LDIyOCwxMjgsMTI4LDEyOF1dLFtbMSwxOTEsMjUxLDI1NSwyNTUsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjhdLFsyMjMsMTY1LDI0OSwyNTUsMjEzLDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4XSxbMTQxLDEyNCwyNDgsMjU1LDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOF1dLFtbMSwxNiwyNDgsMjU1LDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOF0sWzE5MCwzNiwyMzAsMjU1LDIzNiwyNTUsMTI4LDEyOCwxMjgsMTI4LDEyOF0sWzE0OSwxLDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4XV0sW1sxLDIyNiwyNTUsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOF0sWzI0NywxOTIsMjU1LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjhdLFsyNDAsMTI4LDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4XV0sW1sxLDEzNCwyNTIsMjU1LDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOF0sWzIxMyw2MiwyNTAsMjU1LDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOF0sWzU1LDkzLDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4XV0sW1sxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4XSxbMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOF0sWzEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjhdXV0sW1tbMjAyLDI0LDIxMywyMzUsMTg2LDE5MSwyMjAsMTYwLDI0MCwxNzUsMjU1XSxbMTI2LDM4LDE4MiwyMzIsMTY5LDE4NCwyMjgsMTc0LDI1NSwxODcsMTI4XSxbNjEsNDYsMTM4LDIxOSwxNTEsMTc4LDI0MCwxNzAsMjU1LDIxNiwxMjhdXSxbWzEsMTEyLDIzMCwyNTAsMTk5LDE5MSwyNDcsMTU5LDI1NSwyNTUsMTI4XSxbMTY2LDEwOSwyMjgsMjUyLDIxMSwyMTUsMjU1LDE3NCwxMjgsMTI4LDEyOF0sWzM5LDc3LDE2MiwyMzIsMTcyLDE4MCwyNDUsMTc4LDI1NSwyNTUsMTI4XV0sW1sxLDUyLDIyMCwyNDYsMTk4LDE5OSwyNDksMjIwLDI1NSwyNTUsMTI4XSxbMTI0LDc0LDE5MSwyNDMsMTgzLDE5MywyNTAsMjIxLDI1NSwyNTUsMTI4XSxbMjQsNzEsMTMwLDIxOSwxNTQsMTcwLDI0MywxODIsMjU1LDI1NSwxMjhdXSxbWzEsMTgyLDIyNSwyNDksMjE5LDI0MCwyNTUsMjI0LDEyOCwxMjgsMTI4XSxbMTQ5LDE1MCwyMjYsMjUyLDIxNiwyMDUsMjU1LDE3MSwxMjgsMTI4LDEyOF0sWzI4LDEwOCwxNzAsMjQyLDE4MywxOTQsMjU0LDIyMywyNTUsMjU1LDEyOF1dLFtbMSw4MSwyMzAsMjUyLDIwNCwyMDMsMjU1LDE5MiwxMjgsMTI4LDEyOF0sWzEyMywxMDIsMjA5LDI0NywxODgsMTk2LDI1NSwyMzMsMTI4LDEyOCwxMjhdLFsyMCw5NSwxNTMsMjQzLDE2NCwxNzMsMjU1LDIwMywxMjgsMTI4LDEyOF1dLFtbMSwyMjIsMjQ4LDI1NSwyMTYsMjEzLDEyOCwxMjgsMTI4LDEyOCwxMjhdLFsxNjgsMTc1LDI0NiwyNTIsMjM1LDIwNSwyNTUsMjU1LDEyOCwxMjgsMTI4XSxbNDcsMTE2LDIxNSwyNTUsMjExLDIxMiwyNTUsMjU1LDEyOCwxMjgsMTI4XV0sW1sxLDEyMSwyMzYsMjUzLDIxMiwyMTQsMjU1LDI1NSwxMjgsMTI4LDEyOF0sWzE0MSw4NCwyMTMsMjUyLDIwMSwyMDIsMjU1LDIxOSwxMjgsMTI4LDEyOF0sWzQyLDgwLDE2MCwyNDAsMTYyLDE4NSwyNTUsMjA1LDEyOCwxMjgsMTI4XV0sW1sxLDEsMjU1LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjhdLFsyNDQsMSwyNTUsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOF0sWzIzOCwxLDI1NSwxMjgsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4XV1dXSxzaT1bW1syMzEsMTIwLDQ4LDg5LDExNSwxMTMsMTIwLDE1MiwxMTJdLFsxNTIsMTc5LDY0LDEyNiwxNzAsMTE4LDQ2LDcwLDk1XSxbMTc1LDY5LDE0Myw4MCw4NSw4Miw3MiwxNTUsMTAzXSxbNTYsNTgsMTAsMTcxLDIxOCwxODksMTcsMTMsMTUyXSxbMTE0LDI2LDE3LDE2Myw0NCwxOTUsMjEsMTAsMTczXSxbMTIxLDI0LDgwLDE5NSwyNiw2Miw0NCw2NCw4NV0sWzE0NCw3MSwxMCwzOCwxNzEsMjEzLDE0NCwzNCwyNl0sWzE3MCw0Niw1NSwxOSwxMzYsMTYwLDMzLDIwNiw3MV0sWzYzLDIwLDgsMTE0LDExNCwyMDgsMTIsOSwyMjZdLFs4MSw0MCwxMSw5NiwxODIsODQsMjksMTYsMzZdXSxbWzEzNCwxODMsODksMTM3LDk4LDEwMSwxMDYsMTY1LDE0OF0sWzcyLDE4NywxMDAsMTMwLDE1NywxMTEsMzIsNzUsODBdLFs2NiwxMDIsMTY3LDk5LDc0LDYyLDQwLDIzNCwxMjhdLFs0MSw1Myw5LDE3OCwyNDEsMTQxLDI2LDgsMTA3XSxbNzQsNDMsMjYsMTQ2LDczLDE2Niw0OSwyMywxNTddLFs2NSwzOCwxMDUsMTYwLDUxLDUyLDMxLDExNSwxMjhdLFsxMDQsNzksMTIsMjcsMjE3LDI1NSw4NywxNyw3XSxbODcsNjgsNzEsNDQsMTE0LDUxLDE1LDE4NiwyM10sWzQ3LDQxLDE0LDExMCwxODIsMTgzLDIxLDE3LDE5NF0sWzY2LDQ1LDI1LDEwMiwxOTcsMTg5LDIzLDE4LDIyXV0sW1s4OCw4OCwxNDcsMTUwLDQyLDQ2LDQ1LDE5NiwyMDVdLFs0Myw5NywxODMsMTE3LDg1LDM4LDM1LDE3OSw2MV0sWzM5LDUzLDIwMCw4NywyNiwyMSw0MywyMzIsMTcxXSxbNTYsMzQsNTEsMTA0LDExNCwxMDIsMjksOTMsNzddLFszOSwyOCw4NSwxNzEsNTgsMTY1LDkwLDk4LDY0XSxbMzQsMjIsMTE2LDIwNiwyMywzNCw0MywxNjYsNzNdLFsxMDcsNTQsMzIsMjYsNTEsMSw4MSw0MywzMV0sWzY4LDI1LDEwNiwyMiw2NCwxNzEsMzYsMjI1LDExNF0sWzM0LDE5LDIxLDEwMiwxMzIsMTg4LDE2LDc2LDEyNF0sWzYyLDE4LDc4LDk1LDg1LDU3LDUwLDQ4LDUxXV0sW1sxOTMsMTAxLDM1LDE1OSwyMTUsMTExLDg5LDQ2LDExMV0sWzYwLDE0OCwzMSwxNzIsMjE5LDIyOCwyMSwxOCwxMTFdLFsxMTIsMTEzLDc3LDg1LDE3OSwyNTUsMzgsMTIwLDExNF0sWzQwLDQyLDEsMTk2LDI0NSwyMDksMTAsMjUsMTA5XSxbODgsNDMsMjksMTQwLDE2NiwyMTMsMzcsNDMsMTU0XSxbNjEsNjMsMzAsMTU1LDY3LDQ1LDY4LDEsMjA5XSxbMTAwLDgwLDgsNDMsMTU0LDEsNTEsMjYsNzFdLFsxNDIsNzgsNzgsMTYsMjU1LDEyOCwzNCwxOTcsMTcxXSxbNDEsNDAsNSwxMDIsMjExLDE4Myw0LDEsMjIxXSxbNTEsNTAsMTcsMTY4LDIwOSwxOTIsMjMsMjUsODJdXSxbWzEzOCwzMSwzNiwxNzEsMjcsMTY2LDM4LDQ0LDIyOV0sWzY3LDg3LDU4LDE2OSw4MiwxMTUsMjYsNTksMTc5XSxbNjMsNTksOTAsMTgwLDU5LDE2Niw5Myw3MywxNTRdLFs0MCw0MCwyMSwxMTYsMTQzLDIwOSwzNCwzOSwxNzVdLFs0NywxNSwxNiwxODMsMzQsMjIzLDQ5LDQ1LDE4M10sWzQ2LDE3LDMzLDE4Myw2LDk4LDE1LDMyLDE4M10sWzU3LDQ2LDIyLDI0LDEyOCwxLDU0LDE3LDM3XSxbNjUsMzIsNzMsMTE1LDI4LDEyOCwyMywxMjgsMjA1XSxbNDAsMyw5LDExNSw1MSwxOTIsMTgsNiwyMjNdLFs4NywzNyw5LDExNSw1OSw3Nyw2NCwyMSw0N11dLFtbMTA0LDU1LDQ0LDIxOCw5LDU0LDUzLDEzMCwyMjZdLFs2NCw5MCw3MCwyMDUsNDAsNDEsMjMsMjYsNTddLFs1NCw1NywxMTIsMTg0LDUsNDEsMzgsMTY2LDIxM10sWzMwLDM0LDI2LDEzMywxNTIsMTE2LDEwLDMyLDEzNF0sWzM5LDE5LDUzLDIyMSwyNiwxMTQsMzIsNzMsMjU1XSxbMzEsOSw2NSwyMzQsMiwxNSwxLDExOCw3M10sWzc1LDMyLDEyLDUxLDE5MiwyNTUsMTYwLDQzLDUxXSxbODgsMzEsMzUsNjcsMTAyLDg1LDU1LDE4Niw4NV0sWzU2LDIxLDIzLDExMSw1OSwyMDUsNDUsMzcsMTkyXSxbNTUsMzgsNzAsMTI0LDczLDEwMiwxLDM0LDk4XV0sW1sxMjUsOTgsNDIsODgsMTA0LDg1LDExNywxNzUsODJdLFs5NSw4NCw1Myw4OSwxMjgsMTAwLDExMywxMDEsNDVdLFs3NSw3OSwxMjMsNDcsNTEsMTI4LDgxLDE3MSwxXSxbNTcsMTcsNSw3MSwxMDIsNTcsNTMsNDEsNDldLFszOCwzMywxMywxMjEsNTcsNzMsMjYsMSw4NV0sWzQxLDEwLDY3LDEzOCw3NywxMTAsOTAsNDcsMTE0XSxbMTE1LDIxLDIsMTAsMTAyLDI1NSwxNjYsMjMsNl0sWzEwMSwyOSwxNiwxMCw4NSwxMjgsMTAxLDE5NiwyNl0sWzU3LDE4LDEwLDEwMiwxMDIsMjEzLDM0LDIwLDQzXSxbMTE3LDIwLDE1LDM2LDE2MywxMjgsNjgsMSwyNl1dLFtbMTAyLDYxLDcxLDM3LDM0LDUzLDMxLDI0MywxOTJdLFs2OSw2MCw3MSwzOCw3MywxMTksMjgsMjIyLDM3XSxbNjgsNDUsMTI4LDM0LDEsNDcsMTEsMjQ1LDE3MV0sWzYyLDE3LDE5LDcwLDE0Niw4NSw1NSw2Miw3MF0sWzM3LDQzLDM3LDE1NCwxMDAsMTYzLDg1LDE2MCwxXSxbNjMsOSw5MiwxMzYsMjgsNjQsMzIsMjAxLDg1XSxbNzUsMTUsOSw5LDY0LDI1NSwxODQsMTE5LDE2XSxbODYsNiwyOCw1LDY0LDI1NSwyNSwyNDgsMV0sWzU2LDgsMTcsMTMyLDEzNywyNTUsNTUsMTE2LDEyOF0sWzU4LDE1LDIwLDgyLDEzNSw1NywyNiwxMjEsNDBdXSxbWzE2NCw1MCwzMSwxMzcsMTU0LDEzMywyNSwzNSwyMThdLFs1MSwxMDMsNDQsMTMxLDEzMSwxMjMsMzEsNiwxNThdLFs4Niw0MCw2NCwxMzUsMTQ4LDIyNCw0NSwxODMsMTI4XSxbMjIsMjYsMTcsMTMxLDI0MCwxNTQsMTQsMSwyMDldLFs0NSwxNiwyMSw5MSw2NCwyMjIsNywxLDE5N10sWzU2LDIxLDM5LDE1NSw2MCwxMzgsMjMsMTAyLDIxM10sWzgzLDEyLDEzLDU0LDE5MiwyNTUsNjgsNDcsMjhdLFs4NSwyNiw4NSw4NSwxMjgsMTI4LDMyLDE0NiwxNzFdLFsxOCwxMSw3LDYzLDE0NCwxNzEsNCw0LDI0Nl0sWzM1LDI3LDEwLDE0NiwxNzQsMTcxLDEyLDI2LDEyOF1dLFtbMTkwLDgwLDM1LDk5LDE4MCw4MCwxMjYsNTQsNDVdLFs4NSwxMjYsNDcsODcsMTc2LDUxLDQxLDIwLDMyXSxbMTAxLDc1LDEyOCwxMzksMTE4LDE0NiwxMTYsMTI4LDg1XSxbNTYsNDEsMTUsMTc2LDIzNiw4NSwzNyw5LDYyXSxbNzEsMzAsMTcsMTE5LDExOCwyNTUsMTcsMTgsMTM4XSxbMTAxLDM4LDYwLDEzOCw1NSw3MCw0MywyNiwxNDJdLFsxNDYsMzYsMTksMzAsMTcxLDI1NSw5NywyNywyMF0sWzEzOCw0NSw2MSw2MiwyMTksMSw4MSwxODgsNjRdLFszMiw0MSwyMCwxMTcsMTUxLDE0MiwyMCwyMSwxNjNdLFsxMTIsMTksMTIsNjEsMTk1LDEyOCw0OCw0LDI0XV1dLGNpPVtbW1syNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdXSxbWzE3NiwyNDYsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyMjMsMjQxLDI1MiwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjQ5LDI1MywyNTMsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV1dLFtbMjU1LDI0NCwyNTIsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzIzNCwyNTQsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTMsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XV0sW1syNTUsMjQ2LDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjM5LDI1MywyNTQsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1NCwyNTUsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdXSxbWzI1NSwyNDgsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTEsMjU1LDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV1dLFtbMjU1LDI1MywyNTQsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1MSwyNTQsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTQsMjU1LDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XV0sW1syNTUsMjU0LDI1MywyNTUsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjUwLDI1NSwyNTQsMjU1LDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdXSxbWzI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV1dXSxbW1syMTcsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjI1LDI1MiwyNDEsMjUzLDI1NSwyNTUsMjU0LDI1NSwyNTUsMjU1LDI1NV0sWzIzNCwyNTAsMjQxLDI1MCwyNTMsMjU1LDI1MywyNTQsMjU1LDI1NSwyNTVdXSxbWzI1NSwyNTQsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyMjMsMjU0LDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjM4LDI1MywyNTQsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV1dLFtbMjU1LDI0OCwyNTQsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI0OSwyNTQsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XV0sW1syNTUsMjUzLDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjQ3LDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdXSxbWzI1NSwyNTMsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTIsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV1dLFtbMjU1LDI1NCwyNTQsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1MywyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XV0sW1syNTUsMjU0LDI1MywyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjUwLDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdXSxbWzI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV1dXSxbW1sxODYsMjUxLDI1MCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjM0LDI1MSwyNDQsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1MSwyNTEsMjQzLDI1MywyNTQsMjU1LDI1NCwyNTUsMjU1LDI1NSwyNTVdXSxbWzI1NSwyNTMsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyMzYsMjUzLDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjUxLDI1MywyNTMsMjU0LDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV1dLFtbMjU1LDI1NCwyNTQsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1NCwyNTQsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XV0sW1syNTUsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjU0LDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdXSxbWzI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTQsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV1dLFtbMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XV0sW1syNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdXSxbWzI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV1dXSxbW1syNDgsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjUwLDI1NCwyNTIsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI0OCwyNTQsMjQ5LDI1MywyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdXSxbWzI1NSwyNTMsMjUzLDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNDYsMjUzLDI1MywyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjUyLDI1NCwyNTEsMjU0LDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV1dLFtbMjU1LDI1NCwyNTIsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI0OCwyNTQsMjUzLDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTMsMjU1LDI1NCwyNTQsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XV0sW1syNTUsMjUxLDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjQ1LDI1MSwyNTQsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1MywyNTMsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdXSxbWzI1NSwyNTEsMjUzLDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTIsMjUzLDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjU1LDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV1dLFtbMjU1LDI1MiwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI0OSwyNTUsMjU0LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTUsMjU1LDI1NCwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XV0sW1syNTUsMjU1LDI1MywyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjUwLDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0sWzI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdXSxbWzI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdLFsyNTQsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSxbMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV1dXV0sdWk9WzAsMSwyLDMsNiw0LDUsNiw2LDYsNiw2LDYsNiw2LDcsMF0sbGk9W10saGk9W10sZmk9W10sZGk9MSxwaT0yLGdpPVtdLG1pPVtdO21yKFwiVXBzYW1wbGVSZ2JMaW5lUGFpclwiLExyLDMpLG1yKFwiVXBzYW1wbGVCZ3JMaW5lUGFpclwiLHhyLDMpLG1yKFwiVXBzYW1wbGVSZ2JhTGluZVBhaXJcIixrciw0KSxtcihcIlVwc2FtcGxlQmdyYUxpbmVQYWlyXCIsUHIsNCksbXIoXCJVcHNhbXBsZUFyZ2JMaW5lUGFpclwiLF9yLDQpLG1yKFwiVXBzYW1wbGVSZ2JhNDQ0NExpbmVQYWlyXCIsU3IsMiksbXIoXCJVcHNhbXBsZVJnYjU2NUxpbmVQYWlyXCIsQXIsMik7dmFyIHZpPXQuVXBzYW1wbGVSZ2JMaW5lUGFpcixiaT10LlVwc2FtcGxlQmdyTGluZVBhaXIseWk9dC5VcHNhbXBsZVJnYmFMaW5lUGFpcix3aT10LlVwc2FtcGxlQmdyYUxpbmVQYWlyLE5pPXQuVXBzYW1wbGVBcmdiTGluZVBhaXIsTGk9dC5VcHNhbXBsZVJnYmE0NDQ0TGluZVBhaXIseGk9dC5VcHNhbXBsZVJnYjU2NUxpbmVQYWlyLEFpPTE2LFNpPTE8PEFpLTEsX2k9LTIyNyxQaT00ODIsa2k9NixGaT0oMjU2PDxraSktMSxJaT0wLENpPWEoMjU2KSxqaT1hKDI1NiksT2k9YSgyNTYpLEJpPWEoMjU2KSxxaT1hKFBpLV9pKSxNaT1hKFBpLV9pKTtGcihcIll1dlRvUmdiUm93XCIsTHIsMyksRnIoXCJZdXZUb0JnclJvd1wiLHhyLDMpLEZyKFwiWXV2VG9SZ2JhUm93XCIsa3IsNCksRnIoXCJZdXZUb0JncmFSb3dcIixQciw0KSxGcihcIll1dlRvQXJnYlJvd1wiLF9yLDQpLEZyKFwiWXV2VG9SZ2JhNDQ0NFJvd1wiLFNyLDIpLEZyKFwiWXV2VG9SZ2I1NjVSb3dcIixBciwyKTt2YXIgRWk9WzAsNCw4LDEyLDEyOCwxMzIsMTM2LDE0MCwyNTYsMjYwLDI2NCwyNjgsMzg0LDM4OCwzOTIsMzk2XSxSaT1bMCwyLDhdLERpPVs4LDcsNiw0LDQsMiwyLDIsMSwxLDEsMV0sVGk9MTt0aGlzLldlYlBEZWNvZGVSR0JBPWZ1bmN0aW9uKHQscixzLGMsdSl7dmFyIGw9TW4saD1uZXcgZXIsZj1uZXcgb3Q7aC5iYT1mLGYuUz1sLGYud2lkdGg9W2Yud2lkdGhdLGYuaGVpZ2h0PVtmLmhlaWdodF07dmFyIGQ9Zi53aWR0aCxwPWYuaGVpZ2h0LGc9bmV3IHN0O2lmKG51bGw9PWd8fG51bGw9PXQpdmFyIG09MjtlbHNlIGUobnVsbCE9ZyksbT1Pcih0LHIscyxnLndpZHRoLGcuaGVpZ2h0LGcuUGQsZy5RZCxnLmZvcm1hdCxudWxsKTtpZigwIT1tP2Q9MDoobnVsbCE9ZCYmKGRbMF09Zy53aWR0aFswXSksbnVsbCE9cCYmKHBbMF09Zy5oZWlnaHRbMF0pLGQ9MSksZCl7Zi53aWR0aD1mLndpZHRoWzBdLGYuaGVpZ2h0PWYuaGVpZ2h0WzBdLG51bGwhPWMmJihjWzBdPWYud2lkdGgpLG51bGwhPXUmJih1WzBdPWYuaGVpZ2h0KTt0OntpZihjPW5ldyBHdCwodT1uZXcgcnIpLmRhdGE9dCx1Lnc9cix1LmhhPXMsdS5rZD0xLHI9WzBdLGUobnVsbCE9dSksKDA9PSh0PU9yKHUuZGF0YSx1LncsdS5oYSxudWxsLG51bGwsbnVsbCxyLG51bGwsdSkpfHw3PT10KSYmclswXSYmKHQ9NCksMD09KHI9dCkpe2lmKGUobnVsbCE9aCksYy5kYXRhPXUuZGF0YSxjLnc9dS53K3Uub2Zmc2V0LGMuaGE9dS5oYS11Lm9mZnNldCxjLnB1dD1kdCxjLmFjPWZ0LGMuYmM9cHQsYy5tYT1oLHUueGEpe2lmKG51bGw9PSh0PWt0KCkpKXtoPTE7YnJlYWsgdH1pZihmdW5jdGlvbih0LHIpe3ZhciBuPVswXSxpPVswXSxhPVswXTtlOmZvcig7Oyl7aWYobnVsbD09dClyZXR1cm4gMDtpZihudWxsPT1yKXJldHVybiB0LmE9MiwwO2lmKHQubD1yLHQuYT0wLHYodC5tLHIuZGF0YSxyLncsci5oYSksIWd0KHQubSxuLGksYSkpe3QuYT0zO2JyZWFrIGV9aWYodC54Yj1waSxyLndpZHRoPW5bMF0sci5oZWlnaHQ9aVswXSwhRnQoblswXSxpWzBdLDEsdCxudWxsKSlicmVhayBlO3JldHVybiAxfXJldHVybiBlKDAhPXQuYSksMH0odCxjKSl7aWYoYz0wPT0ocj1NcihjLndpZHRoLGMuaGVpZ2h0LGguT2EsaC5iYSkpKXtlOntjPXQ7cjpmb3IoOzspe2lmKG51bGw9PWMpe2M9MDticmVhayBlfWlmKGUobnVsbCE9Yy5zLnljKSxlKG51bGwhPWMucy5ZYSksZSgwPGMucy5XYiksZShudWxsIT0ocz1jLmwpKSxlKG51bGwhPSh1PXMubWEpKSwwIT1jLnhiKXtpZihjLmNhPXUuYmEsYy50Yj11LnRiLGUobnVsbCE9Yy5jYSksIUJyKHUuT2EscyxSbikpe2MuYT0yO2JyZWFrIHJ9aWYoIUl0KGMscy53aWR0aCkpYnJlYWsgcjtpZihzLmRhKWJyZWFrIHI7aWYoKHMuZGF8fG50KGMuY2EuUykpJiZncigpLDExPmMuY2EuU3x8KGFsZXJ0KFwidG9kbzpXZWJQSW5pdENvbnZlcnRBUkdCVG9ZVVZcIiksbnVsbCE9Yy5jYS5mLmtiLkYmJmdyKCkpLGMuUGImJjA8Yy5zLnVhJiZudWxsPT1jLnMudmIuWCYmIU8oYy5zLnZiLGMucy5XYS5YYSkpe2MuYT0xO2JyZWFrIHJ9Yy54Yj0wfWlmKCFfdChjLGMuVixjLkJhLGMuYyxjLmkscy5vLEx0KSlicmVhayByO3UuRGM9Yy5NYSxjPTE7YnJlYWsgZX1lKDAhPWMuYSksYz0wfWM9IWN9YyYmKHI9dC5hKX1lbHNlIHI9dC5hfWVsc2V7aWYobnVsbD09KHQ9bmV3IFl0KSl7aD0xO2JyZWFrIHR9aWYodC5GYT11Lm5hLHQuUD11LlAsdC5xYz11LlNhLEt0KHQsYykpe2lmKDA9PShyPU1yKGMud2lkdGgsYy5oZWlnaHQsaC5PYSxoLmJhKSkpe2lmKHQuQWE9MCxzPWguT2EsZShudWxsIT0odT10KSksbnVsbCE9cyl7aWYoMDwoZD0wPihkPXMuTWQpPzA6MTAwPGQ/MjU1OjI1NSpkLzEwMCkpe2ZvcihwPWc9MDs0PnA7KytwKTEyPihtPXUucGJbcF0pLmxjJiYobS5pYT1kKkRpWzA+bS5sYz8wOm0ubGNdPj4zKSxnfD1tLmlhO2cmJihhbGVydChcInRvZG86VlA4SW5pdFJhbmRvbVwiKSx1LmlhPTEpfXUuR2E9cy5JZCwxMDA8dS5HYT91LkdhPTEwMDowPnUuR2EmJih1LkdhPTApfShmdW5jdGlvbih0LHIpe2lmKG51bGw9PXQpcmV0dXJuIDA7aWYobnVsbD09cilyZXR1cm4gSnQodCwyLFwiTlVMTCBWUDhJbyBwYXJhbWV0ZXIgaW4gVlA4RGVjb2RlKCkuXCIpO2lmKCF0LmNiJiYhS3QodCxyKSlyZXR1cm4gMDtpZihlKHQuY2IpLG51bGw9PXIuYWN8fHIuYWMocikpe3Iub2ImJih0Lkw9MCk7dmFyIHM9UmlbdC5MXTtpZigyPT10Lkw/KHQueWI9MCx0LnpiPTApOih0LnliPXIudi1zPj40LHQuemI9ci5qLXM+PjQsMD50LnliJiYodC55Yj0wKSwwPnQuemImJih0LnpiPTApKSx0LlZhPXIubysxNStzPj40LHQuSGI9ci52YSsxNStzPj40LHQuSGI+dC56YSYmKHQuSGI9dC56YSksdC5WYT50LlViJiYodC5WYT10LlViKSwwPHQuTCl7dmFyIGM9dC5lZDtmb3Iocz0wOzQ+czsrK3Mpe3ZhciB1O2lmKHQuUWEuQ2Ipe3ZhciBsPXQuUWEuTGJbc107dC5RYS5GYnx8KGwrPWMuVGIpfWVsc2UgbD1jLlRiO2Zvcih1PTA7MT49dTsrK3Upe3ZhciBoPXQuZ2Rbc11bdV0sZj1sO2lmKGMuUGMmJihmKz1jLnZkWzBdLHUmJihmKz1jLm9kWzBdKSksMDwoZj0wPmY/MDo2MzxmPzYzOmYpKXt2YXIgZD1mOzA8Yy53YiYmKGQ9NDxjLndiP2Q+PjI6ZD4+MSk+OS1jLndiJiYoZD05LWMud2IpLDE+ZCYmKGQ9MSksaC5kZD1kLGgudGM9MipmK2QsaC5sZD00MDw9Zj8yOjE1PD1mPzE6MH1lbHNlIGgudGM9MDtoLkxhPXV9fX1zPTB9ZWxzZSBKdCh0LDYsXCJGcmFtZSBzZXR1cCBmYWlsZWRcIikscz10LmE7aWYocz0wPT1zKXtpZihzKXt0LiRjPTAsMDx0LkFhfHwodC5JYz1UaSk7ZTp7cz10LkljLGM9NCooZD10LnphKTt2YXIgcD0zMipkLGc9ZCsxLG09MDx0Lkw/ZCooMDx0LkFhPzI6MSk6MCx2PSgyPT10LkFhPzI6MSkqZDtpZigoaD1jKzgzMisodT0zKigxNipzK1JpW3QuTF0pLzIqcCkrKGw9bnVsbCE9dC5GYSYmMDx0LkZhLmxlbmd0aD90LktjLmMqdC5LYy5pOjApKSE9aClzPTA7ZWxzZXtpZihoPnQuVmIpe2lmKHQuVmI9MCx0LkVjPWEoaCksdC5GYz0wLG51bGw9PXQuRWMpe3M9SnQodCwxLFwibm8gbWVtb3J5IGR1cmluZyBmcmFtZSBpbml0aWFsaXphdGlvbi5cIik7YnJlYWsgZX10LlZiPWh9aD10LkVjLGY9dC5GYyx0LkFjPWgsdC5CYz1mLGYrPWMsdC5HZD1vKHAsSHQpLHQuSGQ9MCx0LnJiPW8oZysxLER0KSx0LnNiPTEsdC53YT1tP28obSxSdCk6bnVsbCx0Llk9MCx0LkQuTmI9MCx0LkQud2E9dC53YSx0LkQuWT10LlksMDx0LkFhJiYodC5ELlkrPWQpLGUoITApLHQub2M9aCx0LnBjPWYsZis9ODMyLHQueWE9byh2LHp0KSx0LmFhPTAsdC5ELnlhPXQueWEsdC5ELmFhPXQuYWEsMj09dC5BYSYmKHQuRC5hYSs9ZCksdC5SPTE2KmQsdC5CPTgqZCxkPShwPVJpW3QuTF0pKnQuUixwPXAvMip0LkIsdC5zYT1oLHQudGE9ZitkLHQucWE9dC5zYSx0LnJhPXQudGErMTYqcyp0LlIrcCx0LkhhPXQucWEsdC5JYT10LnJhKzgqcyp0LkIrcCx0LiRjPTAsZis9dSx0Lm1iPWw/aDpudWxsLHQubmI9bD9mOm51bGwsZShmK2w8PXQuRmMrdC5WYiksWnQodCksaSh0LkFjLHQuQmMsMCxjKSxzPTF9fWlmKHMpe2lmKHIua2E9MCxyLnk9dC5zYSxyLk89dC50YSxyLmY9dC5xYSxyLk49dC5yYSxyLmVhPXQuSGEsci5WZD10LklhLHIuZmE9dC5SLHIuUmM9dC5CLHIuRj1udWxsLHIuSj0wLCFJbil7Zm9yKHM9LTI1NTsyNTU+PXM7KytzKV9uWzI1NStzXT0wPnM/LXM6cztmb3Iocz0tMTAyMDsxMDIwPj1zOysrcylQblsxMDIwK3NdPS0xMjg+cz8tMTI4OjEyNzxzPzEyNzpzO2ZvcihzPS0xMTI7MTEyPj1zOysrcylrblsxMTIrc109LTE2PnM/LTE2OjE1PHM/MTU6cztmb3Iocz0tMjU1OzUxMD49czsrK3MpRm5bMjU1K3NdPTA+cz8wOjI1NTxzPzI1NTpzO0luPTF9bm49Y2UsYW49aWUsc249YWUsY249b2UsdW49c2Usb249bmUsbG49WWUsaG49SmUsZm49JGUsZG49WmUscG49WGUsZ249S2UsbW49UWUsdm49dHIsYm49emUseW49VWUsd249SGUsTm49V2UsaGlbMF09eGUsaGlbMV09bGUsaGlbMl09TmUsaGlbM109TGUsaGlbNF09QWUsaGlbNV09X2UsaGlbNl09U2UsaGlbN109UGUsaGlbOF09RmUsaGlbOV09a2UsbGlbMF09bWUsbGlbMV09ZmUsbGlbMl09ZGUsbGlbM109cGUsbGlbNF09dmUsbGlbNV09YmUsbGlbNl09eWUsZmlbMF09T2UsZmlbMV09aGUsZmlbMl09SWUsZmlbM109Q2UsZmlbNF09cWUsZmlbNV09QmUsZmlbNl09TWUscz0xfWVsc2Ugcz0wfXMmJihzPWZ1bmN0aW9uKHQscil7Zm9yKHQuTT0wO3QuTTx0LlZhOysrdC5NKXt2YXIgbyxzPXQuSmNbdC5NJnQuWGJdLGM9dC5tLHU9dDtmb3Iobz0wO288dS56YTsrK28pe3ZhciBsPWMsaD11LGY9aC5BYyxkPWguQmMrNCpvLHA9aC56YyxnPWgueWFbaC5hYStvXTtpZihoLlFhLkJiP2cuJGI9ayhsLGguUGEuamJbMF0pPzIrayhsLGguUGEuamJbMl0pOmsobCxoLlBhLmpiWzFdKTpnLiRiPTAsaC5rYyYmKGcuQWQ9ayhsLGguQmQpKSxnLlphPSFrKGwsMTQ1KSswLGcuWmEpe3ZhciBtPWcuT2Isdj0wO2ZvcihoPTA7ND5oOysraCl7dmFyIGIseT1wWzAraF07Zm9yKGI9MDs0PmI7KytiKXt5PXNpW2ZbZCtiXV1beV07Zm9yKHZhciB3PWFpW2sobCx5WzBdKV07MDx3Oyl3PWFpWzIqdytrKGwseVt3XSldO3k9LXcsZltkK2JdPXl9bihtLHYsZixkLDQpLHYrPTQscFswK2hdPXl9fWVsc2UgeT1rKGwsMTU2KT9rKGwsMTI4KT8xOjM6ayhsLDE2Myk/MjowLGcuT2JbMF09eSxpKGYsZCx5LDQpLGkocCwwLHksNCk7Zy5EZD1rKGwsMTQyKT9rKGwsMTE0KT9rKGwsMTgzKT8xOjM6MjowfWlmKHUubS5LYSlyZXR1cm4gSnQodCw3LFwiUHJlbWF0dXJlIGVuZC1vZi1wYXJ0aXRpb24wIGVuY291bnRlcmVkLlwiKTtmb3IoO3QuamE8dC56YTsrK3QuamEpe2lmKHU9cyxsPShjPXQpLnJiW2Muc2ItMV0sZj1jLnJiW2Muc2IrYy5qYV0sbz1jLnlhW2MuYWErYy5qYV0sZD1jLmtjP28uQWQ6MClsLmxhPWYubGE9MCxvLlphfHwobC5OYT1mLk5hPTApLG8uSGM9MCxvLkdjPTAsby5pYT0wO2Vsc2V7dmFyIE4sTDtpZihsPWYsZj11LGQ9Yy5QYS5YYyxwPWMueWFbYy5hYStjLmphXSxnPWMucGJbcC4kYl0saD1wLmFkLG09MCx2PWMucmJbYy5zYi0xXSx5PWI9MCxpKGgsbSwwLDM4NCkscC5aYSl2YXIgeD0wLEE9ZFszXTtlbHNle3c9YSgxNik7dmFyIFM9bC5OYSt2Lk5hO2lmKFM9cmkoZixkWzFdLFMsZy5FYiwwLHcsMCksbC5OYT12Lk5hPSgwPFMpKzAsMTxTKW5uKHcsMCxoLG0pO2Vsc2V7dmFyIF89d1swXSszPj4zO2Zvcih3PTA7MjU2Pnc7dys9MTYpaFttK3ddPV99eD0xLEE9ZFswXX12YXIgUD0xNSZsLmxhLEY9MTUmdi5sYTtmb3Iodz0wOzQ+dzsrK3cpe3ZhciBJPTEmRjtmb3IoXz1MPTA7ND5fOysrXylQPVA+PjF8KEk9KFM9cmkoZixBLFM9SSsoMSZQKSxnLlNjLHgsaCxtKSk+eCk8PDcsTD1MPDwyfCgzPFM/MzoxPFM/MjowIT1oW20rMF0pLG0rPTE2O1A+Pj00LEY9Rj4+MXxJPDw3LGI9KGI8PDh8TCk+Pj4wfWZvcihBPVAseD1GPj40LE49MDs0Pk47Tis9Mil7Zm9yKEw9MCxQPWwubGE+PjQrTixGPXYubGE+PjQrTix3PTA7Mj53Oysrdyl7Zm9yKEk9MSZGLF89MDsyPl87KytfKVM9SSsoMSZQKSxQPVA+PjF8KEk9MDwoUz1yaShmLGRbMl0sUyxnLlFjLDAsaCxtKSkpPDwzLEw9TDw8MnwoMzxTPzM6MTxTPzI6MCE9aFttKzBdKSxtKz0xNjtQPj49MixGPUY+PjF8STw8NX15fD1MPDw0Kk4sQXw9UDw8NDw8Tix4fD0oMjQwJkYpPDxOfWwubGE9QSx2LmxhPXgscC5IYz1iLHAuR2M9eSxwLmlhPTQzNjkwJnk/MDpnLmlhLGQ9IShifHkpfWlmKDA8Yy5MJiYoYy53YVtjLlkrYy5qYV09Yy5nZFtvLiRiXVtvLlphXSxjLndhW2MuWStjLmphXS5MYXw9IWQpLHUuS2EpcmV0dXJuIEp0KHQsNyxcIlByZW1hdHVyZSBlbmQtb2YtZmlsZSBlbmNvdW50ZXJlZC5cIil9aWYoWnQodCksYz1yLHU9MSxvPShzPXQpLkQsbD0wPHMuTCYmcy5NPj1zLnpiJiZzLk08PXMuVmEsMD09cy5BYSllOntpZihvLk09cy5NLG8udWM9bCxqcihzLG8pLHU9MSxvPShMPXMuRCkuTmIsbD0oeT1SaVtzLkxdKSpzLlIsZj15LzIqcy5CLHc9MTYqbypzLlIsXz04Km8qcy5CLGQ9cy5zYSxwPXMudGEtbCt3LGc9cy5xYSxoPXMucmEtZitfLG09cy5IYSx2PXMuSWEtZitfLEY9MD09KFA9TC5NKSxiPVA+PXMuVmEtMSwyPT1zLkFhJiZqcihzLEwpLEwudWMpZm9yKEk9KFM9cykuRC5NLGUoUy5ELnVjKSxMPVMueWI7TDxTLkhiOysrTCl7eD1MLEE9STt2YXIgQz0oaj0oej1TKS5EKS5OYjtOPXouUjt2YXIgaj1qLndhW2ouWSt4XSxPPXouc2EsQj16LnRhKzE2KkMqTisxNip4LHE9ai5kZCxNPWoudGM7aWYoMCE9TSlpZihlKDM8PU0pLDE9PXouTCkwPHgmJnluKE8sQixOLE0rNCksai5MYSYmTm4oTyxCLE4sTSksMDxBJiZibihPLEIsTixNKzQpLGouTGEmJnduKE8sQixOLE0pO2Vsc2V7dmFyIEU9ei5CLFI9ei5xYSxEPXoucmErOCpDKkUrOCp4LFQ9ei5IYSx6PXouSWErOCpDKkUrOCp4O0M9ai5sZCwwPHgmJihobihPLEIsTixNKzQscSxDKSxkbihSLEQsVCx6LEUsTSs0LHEsQykpLGouTGEmJihnbihPLEIsTixNLHEsQyksdm4oUixELFQseixFLE0scSxDKSksMDxBJiYobG4oTyxCLE4sTSs0LHEsQyksZm4oUixELFQseixFLE0rNCxxLEMpKSxqLkxhJiYocG4oTyxCLE4sTSxxLEMpLG1uKFIsRCxULHosRSxNLHEsQykpfX1pZihzLmlhJiZhbGVydChcInRvZG86RGl0aGVyUm93XCIpLG51bGwhPWMucHV0KXtpZihMPTE2KlAsUD0xNiooUCsxKSxGPyhjLnk9cy5zYSxjLk89cy50YSt3LGMuZj1zLnFhLGMuTj1zLnJhK18sYy5lYT1zLkhhLGMuVz1zLklhK18pOihMLT15LGMueT1kLGMuTz1wLGMuZj1nLGMuTj1oLGMuZWE9bSxjLlc9diksYnx8KFAtPXkpLFA+Yy5vJiYoUD1jLm8pLGMuRj1udWxsLGMuSj1udWxsLG51bGwhPXMuRmEmJjA8cy5GYS5sZW5ndGgmJkw8UCYmKGMuSj1scihzLGMsTCxQLUwpLGMuRj1zLm1iLG51bGw9PWMuRiYmMD09Yy5GLmxlbmd0aCkpe3U9SnQocywzLFwiQ291bGQgbm90IGRlY29kZSBhbHBoYSBkYXRhLlwiKTticmVhayBlfUw8Yy5qJiYoeT1jLmotTCxMPWMuaixlKCEoMSZ5KSksYy5PKz1zLlIqeSxjLk4rPXMuQiooeT4+MSksYy5XKz1zLkIqKHk+PjEpLG51bGwhPWMuRiYmKGMuSis9Yy53aWR0aCp5KSksTDxQJiYoYy5PKz1jLnYsYy5OKz1jLnY+PjEsYy5XKz1jLnY+PjEsbnVsbCE9Yy5GJiYoYy5KKz1jLnYpLGMua2E9TC1jLmosYy5VPWMudmEtYy52LGMuVD1QLUwsdT1jLnB1dChjKSl9bysxIT1zLkljfHxifHwobihzLnNhLHMudGEtbCxkLHArMTYqcy5SLGwpLG4ocy5xYSxzLnJhLWYsZyxoKzgqcy5CLGYpLG4ocy5IYSxzLklhLWYsbSx2Kzgqcy5CLGYpKX1pZighdSlyZXR1cm4gSnQodCw2LFwiT3V0cHV0IGFib3J0ZWQuXCIpfXJldHVybiAxfSh0LHIpKSxudWxsIT1yLmJjJiZyLmJjKHIpLHMmPTF9cmV0dXJuIHM/KHQuY2I9MCxzKTowfSkodCxjKXx8KHI9dC5hKX19ZWxzZSByPXQuYX0wPT1yJiZudWxsIT1oLk9hJiZoLk9hLmZkJiYocj1xcihoLmJhKSl9aD1yfWw9MCE9aD9udWxsOjExPmw/Zi5mLlJHQkEuZWI6Zi5mLmtiLnl9ZWxzZSBsPW51bGw7cmV0dXJuIGx9O3ZhciB6aT1bMyw0LDMsNCw0LDIsMiw0LDQsNCwyLDEsMV19O2Z1bmN0aW9uIHUodCxlKXtmb3IodmFyIHI9XCJcIixuPTA7bjw0O24rKylyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbZSsrXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gbCh0LGUpe3JldHVybiB0W2UrMF18dFtlKzFdPDw4fWZ1bmN0aW9uIGgodCxlKXtyZXR1cm4odFtlKzBdfHRbZSsxXTw8OHx0W2UrMl08PDE2KT4+PjB9ZnVuY3Rpb24gZih0LGUpe3JldHVybih0W2UrMF18dFtlKzFdPDw4fHRbZSsyXTw8MTZ8dFtlKzNdPDwyNCk+Pj4wfW5ldyBjO3ZhciBkPVswXSxwPVswXSxnPVtdLG09bmV3IGMsdj10LGI9ZnVuY3Rpb24odCxlKXt2YXIgcj17fSxuPTAsaT0hMSxhPTAsbz0wO2lmKHIuZnJhbWVzPVtdLCFcbi8qKiBAbGljZW5zZVxuICAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgRG9taW5payBIb21iZXJnZXJcblxuUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5odHRwczovL3dlYnBqcy5hcHBzcG90LmNvbVxuV2ViUFJpZmZQYXJzZXIgZG9taW5pa2hsYmdAZ21haWwuY29tXG4qL1xuZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MDtyPDQ7cisrKWlmKHRbZStyXSE9XCJSSUZGXCIuY2hhckNvZGVBdChyKSlyZXR1cm4hMDtyZXR1cm4hMX0odCxlKSl7Zm9yKGYodCxlKz00KSxlKz04O2U8dC5sZW5ndGg7KXt2YXIgcz11KHQsZSksYz1mKHQsZSs9NCk7ZSs9NDt2YXIgZD1jKygxJmMpO3N3aXRjaChzKXtjYXNlXCJWUDggXCI6Y2FzZVwiVlA4TFwiOnZvaWQgMD09PXIuZnJhbWVzW25dJiYoci5mcmFtZXNbbl09e30pLChtPXIuZnJhbWVzW25dKS5zcmNfb2ZmPWk/bzplLTgsbS5zcmNfc2l6ZT1hK2MrOCxuKyssaSYmKGk9ITEsYT0wLG89MCk7YnJlYWs7Y2FzZVwiVlA4WFwiOihtPXIuaGVhZGVyPXt9KS5mZWF0dXJlX2ZsYWdzPXRbZV07dmFyIHA9ZSs0O20uY2FudmFzX3dpZHRoPTEraCh0LHApLHArPTMsbS5jYW52YXNfaGVpZ2h0PTEraCh0LHApLHArPTM7YnJlYWs7Y2FzZVwiQUxQSFwiOmk9ITAsYT1kKzgsbz1lLTg7YnJlYWs7Y2FzZVwiQU5JTVwiOihtPXIuaGVhZGVyKS5iZ2NvbG9yPWYodCxlKSxwPWUrNCxtLmxvb3BfY291bnQ9bCh0LHApLHArPTI7YnJlYWs7Y2FzZVwiQU5NRlwiOnZhciBnLG07KG09ci5mcmFtZXNbbl09e30pLm9mZnNldF94PTIqaCh0LGUpLGUrPTMsbS5vZmZzZXRfeT0yKmgodCxlKSxlKz0zLG0ud2lkdGg9MStoKHQsZSksZSs9MyxtLmhlaWdodD0xK2godCxlKSxlKz0zLG0uZHVyYXRpb249aCh0LGUpLGUrPTMsZz10W2UrK10sbS5kaXNwb3NlPTEmZyxtLmJsZW5kPWc+PjEmMX1cIkFOTUZcIiE9cyYmKGUrPWQpfXJldHVybiByfX0odiwwKTtiLnJlc3BvbnNlPXYsYi5yZ2Jhb3V0cHV0PSEwLGIuZGF0YXVybD0hMTt2YXIgeT1iLmhlYWRlcj9iLmhlYWRlcjpudWxsLHc9Yi5mcmFtZXM/Yi5mcmFtZXM6bnVsbDtpZih5KXt5Lmxvb3BfY291bnRlcj15Lmxvb3BfY291bnQsZD1beS5jYW52YXNfaGVpZ2h0XSxwPVt5LmNhbnZhc193aWR0aF07Zm9yKHZhciBOPTA7Tjx3Lmxlbmd0aCYmMCE9d1tOXS5ibGVuZDtOKyspO312YXIgTD13WzBdLHg9bS5XZWJQRGVjb2RlUkdCQSh2LEwuc3JjX29mZixMLnNyY19zaXplLHAsZCk7TC5yZ2JhPXgsTC5pbWd3aWR0aD1wWzBdLEwuaW1naGVpZ2h0PWRbMF07Zm9yKHZhciBBPTA7QTxwWzBdKmRbMF0qNDtBKyspZ1tBXT14W0FdO3JldHVybiB0aGlzLndpZHRoPXAsdGhpcy5oZWlnaHQ9ZCx0aGlzLmRhdGE9Zyx0aGlzfVxuLyoqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBAbGljZW5zZVxuICoganNQREYgWE1QIG1ldGFkYXRhIHBsdWdpblxuICogQ29weXJpZ2h0IChjKSAyMDE2IEp1c3NpIFV0dW5lbiwgdS1qdXNzaUBzdW9taTI0LmZpXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nXG4gKiBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbiAqIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuICogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvXG4gKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG9cbiAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZVxuICogaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCxcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkRcbiAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkVcbiAqIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT05cbiAqIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTlxuICogV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG5mdW5jdGlvbiByZSgpe2NvbnN0IHQ9dGhpcy5pbnRlcm5hbC5fX21ldGFkYXRhX18ubWV0YWRhdGEsZT11bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodCkpO2xldCByO2lmKHRoaXMuaW50ZXJuYWwuX19tZXRhZGF0YV9fLnJhd1htbClyPWU7ZWxzZXtjb25zdCB0PVwiPC9qc3BkZjptZXRhZGF0YT48L3JkZjpEZXNjcmlwdGlvbj48L3JkZjpSREY+XCIsbj1cIjwveDp4bXBtZXRhPlwiO3I9Jzx4OnhtcG1ldGEgeG1sbnM6eD1cImFkb2JlOm5zOm1ldGEvXCI+PHJkZjpSREYgeG1sbnM6cmRmPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zI1wiPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PVwiXCIgeG1sbnM6anNwZGY9XCInK3RoaXMuaW50ZXJuYWwuX19tZXRhZGF0YV9fLm5hbWVzcGFjZVVyaSsnXCI+PGpzcGRmOm1ldGFkYXRhPicrZS5yZXBsYWNlKC8mL2csXCImYW1wO1wiKS5yZXBsYWNlKC88L2csXCImbHQ7XCIpLnJlcGxhY2UoLz4vZyxcIiZndDtcIikucmVwbGFjZSgvXCIvZyxcIiZxdW90O1wiKS5yZXBsYWNlKC8nL2csXCImYXBvcztcIikrdCtufXRoaXMuaW50ZXJuYWwuX19tZXRhZGF0YV9fLm1ldGFkYXRhT2JqZWN0TnVtYmVyPXRoaXMuaW50ZXJuYWwubmV3T2JqZWN0KCksdGhpcy5pbnRlcm5hbC53cml0ZShcIjw8IC9UeXBlIC9NZXRhZGF0YSAvU3VidHlwZSAvWE1MIC9MZW5ndGggXCIrci5sZW5ndGgrXCIgPj5cIiksdGhpcy5pbnRlcm5hbC53cml0ZShcInN0cmVhbVwiKSx0aGlzLmludGVybmFsLndyaXRlKHIpLHRoaXMuaW50ZXJuYWwud3JpdGUoXCJlbmRzdHJlYW1cIiksdGhpcy5pbnRlcm5hbC53cml0ZShcImVuZG9ialwiKX1mdW5jdGlvbiBuZSgpe3RoaXMuaW50ZXJuYWwuX19tZXRhZGF0YV9fLm1ldGFkYXRhT2JqZWN0TnVtYmVyJiZ0aGlzLmludGVybmFsLndyaXRlKFwiL01ldGFkYXRhIFwiK3RoaXMuaW50ZXJuYWwuX19tZXRhZGF0YV9fLm1ldGFkYXRhT2JqZWN0TnVtYmVyK1wiIDAgUlwiKX0hZnVuY3Rpb24odCl7dmFyIGUscixpLGEsbyxjLHUsbCxoLGY9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dHx8e30sdGhpcy5pc1N0cm9rZVRyYW5zcGFyZW50PXQuaXNTdHJva2VUcmFuc3BhcmVudHx8ITEsdGhpcy5zdHJva2VPcGFjaXR5PXQuc3Ryb2tlT3BhY2l0eXx8MSx0aGlzLnN0cm9rZVN0eWxlPXQuc3Ryb2tlU3R5bGV8fFwiIzAwMDAwMFwiLHRoaXMuZmlsbFN0eWxlPXQuZmlsbFN0eWxlfHxcIiMwMDAwMDBcIix0aGlzLmlzRmlsbFRyYW5zcGFyZW50PXQuaXNGaWxsVHJhbnNwYXJlbnR8fCExLHRoaXMuZmlsbE9wYWNpdHk9dC5maWxsT3BhY2l0eXx8MSx0aGlzLmZvbnQ9dC5mb250fHxcIjEwcHggc2Fucy1zZXJpZlwiLHRoaXMudGV4dEJhc2VsaW5lPXQudGV4dEJhc2VsaW5lfHxcImFscGhhYmV0aWNcIix0aGlzLnRleHRBbGlnbj10LnRleHRBbGlnbnx8XCJsZWZ0XCIsdGhpcy5saW5lV2lkdGg9dC5saW5lV2lkdGh8fDEsdGhpcy5saW5lSm9pbj10LmxpbmVKb2lufHxcIm1pdGVyXCIsdGhpcy5saW5lQ2FwPXQubGluZUNhcHx8XCJidXR0XCIsdGhpcy5wYXRoPXQucGF0aHx8W10sdGhpcy50cmFuc2Zvcm09dm9pZCAwIT09dC50cmFuc2Zvcm0/dC50cmFuc2Zvcm0uY2xvbmUoKTpuZXcgbCx0aGlzLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj10Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbnx8XCJub3JtYWxcIix0aGlzLmdsb2JhbEFscGhhPXQuZ2xvYmFsQWxwaGF8fDEsdGhpcy5jbGlwX3BhdGg9dC5jbGlwX3BhdGh8fFtdLHRoaXMuY3VycmVudFBvaW50PXQuY3VycmVudFBvaW50fHxuZXcgYyx0aGlzLm1pdGVyTGltaXQ9dC5taXRlckxpbWl0fHwxMCx0aGlzLmxhc3RQb2ludD10Lmxhc3RQb2ludHx8bmV3IGMsdGhpcy5saW5lRGFzaE9mZnNldD10LmxpbmVEYXNoT2Zmc2V0fHwwLHRoaXMubGluZURhc2g9dC5saW5lRGFzaHx8W10sdGhpcy5tYXJnaW49dC5tYXJnaW58fFswLDAsMCwwXSx0aGlzLnByZXZQYWdlTGFzdEVsZW1PZmZzZXQ9dC5wcmV2UGFnZUxhc3RFbGVtT2Zmc2V0fHwwLHRoaXMuaWdub3JlQ2xlYXJSZWN0PVwiYm9vbGVhblwiIT10eXBlb2YgdC5pZ25vcmVDbGVhclJlY3R8fHQuaWdub3JlQ2xlYXJSZWN0LHRoaXN9O3QuZXZlbnRzLnB1c2goW1wiaW5pdGlhbGl6ZWRcIixmdW5jdGlvbigpe3RoaXMuY29udGV4dDJkPW5ldyBkKHRoaXMpLGU9dGhpcy5pbnRlcm5hbC5mMixyPXRoaXMuaW50ZXJuYWwuZ2V0Q29vcmRpbmF0ZVN0cmluZyxpPXRoaXMuaW50ZXJuYWwuZ2V0VmVydGljYWxDb29yZGluYXRlU3RyaW5nLGE9dGhpcy5pbnRlcm5hbC5nZXRIb3Jpem9udGFsQ29vcmRpbmF0ZSxvPXRoaXMuaW50ZXJuYWwuZ2V0VmVydGljYWxDb29yZGluYXRlLGM9dGhpcy5pbnRlcm5hbC5Qb2ludCx1PXRoaXMuaW50ZXJuYWwuUmVjdGFuZ2xlLGw9dGhpcy5pbnRlcm5hbC5NYXRyaXgsaD1uZXcgZn1dKTt2YXIgZD1mdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImNhbnZhc1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57cGFyZW50Tm9kZTohMSxzdHlsZTohMX19fSk7dmFyIGU9dDtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInBkZlwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX19KTt2YXIgcj0hMTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInBhZ2VXcmFwWEVuYWJsZWRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHNldDpmdW5jdGlvbih0KXtyPUJvb2xlYW4odCl9fSk7dmFyIG49ITE7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJwYWdlV3JhcFlFbmFibGVkXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBufSxzZXQ6ZnVuY3Rpb24odCl7bj1Cb29sZWFuKHQpfX0pO3ZhciBpPTA7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJwb3NYXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBpfSxzZXQ6ZnVuY3Rpb24odCl7aXNOYU4odCl8fChpPXQpfX0pO3ZhciBhPTA7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJwb3NZXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBhfSxzZXQ6ZnVuY3Rpb24odCl7aXNOYU4odCl8fChhPXQpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwibWFyZ2luXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBoLm1hcmdpbn0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlO1wibnVtYmVyXCI9PXR5cGVvZiB0P2U9W3QsdCx0LHRdOigoZT1uZXcgQXJyYXkoNCkpWzBdPXRbMF0sZVsxXT10Lmxlbmd0aD49Mj90WzFdOmVbMF0sZVsyXT10Lmxlbmd0aD49Mz90WzJdOmVbMF0sZVszXT10Lmxlbmd0aD49ND90WzNdOmVbMV0pLGgubWFyZ2luPWV9fSk7dmFyIG89ITE7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJhdXRvUGFnaW5nXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBvfSxzZXQ6ZnVuY3Rpb24odCl7bz10fX0pO3ZhciBzPTA7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJsYXN0QnJlYWtcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHN9LHNldDpmdW5jdGlvbih0KXtzPXR9fSk7dmFyIGM9W107T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJwYWdlQnJlYWtzXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBjfSxzZXQ6ZnVuY3Rpb24odCl7Yz10fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiY3R4XCIse2dldDpmdW5jdGlvbigpe3JldHVybiBofSxzZXQ6ZnVuY3Rpb24odCl7dCBpbnN0YW5jZW9mIGYmJihoPXQpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwicGF0aFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaC5wYXRofSxzZXQ6ZnVuY3Rpb24odCl7aC5wYXRoPXR9fSk7dmFyIHU9W107T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJjdHhTdGFja1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sc2V0OmZ1bmN0aW9uKHQpe3U9dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImZpbGxTdHlsZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdHguZmlsbFN0eWxlfSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU7ZT1wKHQpLHRoaXMuY3R4LmZpbGxTdHlsZT1lLnN0eWxlLHRoaXMuY3R4LmlzRmlsbFRyYW5zcGFyZW50PTA9PT1lLmEsdGhpcy5jdHguZmlsbE9wYWNpdHk9ZS5hLHRoaXMucGRmLnNldEZpbGxDb2xvcihlLnIsZS5nLGUuYix7YTplLmF9KSx0aGlzLnBkZi5zZXRUZXh0Q29sb3IoZS5yLGUuZyxlLmIse2E6ZS5hfSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJzdHJva2VTdHlsZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdHguc3Ryb2tlU3R5bGV9LHNldDpmdW5jdGlvbih0KXt2YXIgZT1wKHQpO3RoaXMuY3R4LnN0cm9rZVN0eWxlPWUuc3R5bGUsdGhpcy5jdHguaXNTdHJva2VUcmFuc3BhcmVudD0wPT09ZS5hLHRoaXMuY3R4LnN0cm9rZU9wYWNpdHk9ZS5hLDA9PT1lLmE/dGhpcy5wZGYuc2V0RHJhd0NvbG9yKDI1NSwyNTUsMjU1KTooZS5hLHRoaXMucGRmLnNldERyYXdDb2xvcihlLnIsZS5nLGUuYikpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwibGluZUNhcFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdHgubGluZUNhcH0sc2V0OmZ1bmN0aW9uKHQpey0xIT09W1wiYnV0dFwiLFwicm91bmRcIixcInNxdWFyZVwiXS5pbmRleE9mKHQpJiYodGhpcy5jdHgubGluZUNhcD10LHRoaXMucGRmLnNldExpbmVDYXAodCkpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwibGluZVdpZHRoXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN0eC5saW5lV2lkdGh9LHNldDpmdW5jdGlvbih0KXtpc05hTih0KXx8KHRoaXMuY3R4LmxpbmVXaWR0aD10LHRoaXMucGRmLnNldExpbmVXaWR0aCh0KSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJsaW5lSm9pblwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdHgubGluZUpvaW59LHNldDpmdW5jdGlvbih0KXstMSE9PVtcImJldmVsXCIsXCJyb3VuZFwiLFwibWl0ZXJcIl0uaW5kZXhPZih0KSYmKHRoaXMuY3R4LmxpbmVKb2luPXQsdGhpcy5wZGYuc2V0TGluZUpvaW4odCkpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwibWl0ZXJMaW1pdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdHgubWl0ZXJMaW1pdH0sc2V0OmZ1bmN0aW9uKHQpe2lzTmFOKHQpfHwodGhpcy5jdHgubWl0ZXJMaW1pdD10LHRoaXMucGRmLnNldE1pdGVyTGltaXQodCkpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwidGV4dEJhc2VsaW5lXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN0eC50ZXh0QmFzZWxpbmV9LHNldDpmdW5jdGlvbih0KXt0aGlzLmN0eC50ZXh0QmFzZWxpbmU9dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInRleHRBbGlnblwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdHgudGV4dEFsaWdufSxzZXQ6ZnVuY3Rpb24odCl7LTEhPT1bXCJyaWdodFwiLFwiZW5kXCIsXCJjZW50ZXJcIixcImxlZnRcIixcInN0YXJ0XCJdLmluZGV4T2YodCkmJih0aGlzLmN0eC50ZXh0QWxpZ249dCl9fSk7dmFyIGw9bnVsbCxkPW51bGw7dmFyIGc9bnVsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImZvbnRGYWNlc1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sc2V0OmZ1bmN0aW9uKHQpe2w9bnVsbCxkPW51bGwsZz10fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiZm9udFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdHguZm9udH0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlO2lmKHRoaXMuY3R4LmZvbnQ9dCxudWxsIT09KGU9L15cXHMqKD89KD86KD86Wy1hLXpdK1xccyopezAsMn0oaXRhbGljfG9ibGlxdWUpKT8pKD89KD86KD86Wy1hLXpdK1xccyopezAsMn0oc21hbGwtY2FwcykpPykoPz0oPzooPzpbLWEtel0rXFxzKil7MCwyfShib2xkKD86ZXIpP3xsaWdodGVyfFsxLTldMDApKT8pKD86KD86bm9ybWFsfFxcMXxcXDJ8XFwzKVxccyopezAsM30oKD86eHg/LSk/KD86c21hbGx8bGFyZ2UpfG1lZGl1bXxzbWFsbGVyfGxhcmdlcnxbLlxcZF0rKD86XFwlfGlufFtjZW1dbXxleHxwW2N0eF0pKSg/OlxccypcXC9cXHMqKG5vcm1hbHxbLlxcZF0rKD86XFwlfGlufFtjZW1dbXxleHxwW2N0eF0pKSk/XFxzKihbLV8sXFxcIlxcJ1xcc2EtejAtOV0rPylcXHMqJC9pLmV4ZWModCkpKXt2YXIgcj1lWzFdO2VbMl07dmFyIG49ZVszXSxpPWVbNF07ZVs1XTt2YXIgYT1lWzZdLG89L14oWy5cXGRdKykoKD86JXxpbnxbY2VtXW18ZXh8cFtjdHhdKSkkL2kuZXhlYyhpKVsyXTtpPVwicHhcIj09PW8/TWF0aC5mbG9vcihwYXJzZUZsb2F0KGkpKnRoaXMucGRmLmludGVybmFsLnNjYWxlRmFjdG9yKTpcImVtXCI9PT1vP01hdGguZmxvb3IocGFyc2VGbG9hdChpKSp0aGlzLnBkZi5nZXRGb250U2l6ZSgpKTpNYXRoLmZsb29yKHBhcnNlRmxvYXQoaSkqdGhpcy5wZGYuaW50ZXJuYWwuc2NhbGVGYWN0b3IpLHRoaXMucGRmLnNldEZvbnRTaXplKGkpO3ZhciBzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbj1bXSxpPXQudHJpbSgpO2lmKFwiXCI9PT1pKXJldHVybiBEdDtpZihpIGluIEZ0KXJldHVybltGdFtpXV07Zm9yKDtcIlwiIT09aTspe3N3aXRjaChyPW51bGwsZT0oaT1DdChpKSkuY2hhckF0KDApKXtjYXNlJ1wiJzpjYXNlXCInXCI6cj1qdChpLnN1YnN0cmluZygxKSxlKTticmVhaztkZWZhdWx0OnI9T3QoaSl9aWYobnVsbD09PXIpcmV0dXJuIER0O2lmKG4ucHVzaChyWzBdKSxcIlwiIT09KGk9Q3QoclsxXSkpJiZcIixcIiE9PWkuY2hhckF0KDApKXJldHVybiBEdDtpPWkucmVwbGFjZSgvXiwvLFwiXCIpfXJldHVybiBufShhKTtpZih0aGlzLmZvbnRGYWNlcyl7dmFyIGM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmdldEZvbnRMaXN0KCksbj1KU09OLnN0cmluZ2lmeShyKTtpZihudWxsPT09bHx8ZCE9PW4pe3ZhciBpPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3Rbcl0uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj1udWxsO3N3aXRjaCh0KXtjYXNlXCJib2xkXCI6bj17ZmFtaWx5OnIsd2VpZ2h0OlwiYm9sZFwifTticmVhaztjYXNlXCJpdGFsaWNcIjpuPXtmYW1pbHk6cixzdHlsZTpcIml0YWxpY1wifTticmVhaztjYXNlXCJib2xkaXRhbGljXCI6bj17ZmFtaWx5OnIsd2VpZ2h0OlwiYm9sZFwiLHN0eWxlOlwiaXRhbGljXCJ9O2JyZWFrO2Nhc2VcIlwiOmNhc2VcIm5vcm1hbFwiOm49e2ZhbWlseTpyfX1udWxsIT09biYmKG4ucmVmPXtuYW1lOnIsc3R5bGU6dH0sZS5wdXNoKG4pKX0pfSksZX0ocik7bD1mdW5jdGlvbih0KXtmb3IodmFyIGU9e30scj0wO3I8dC5sZW5ndGg7KytyKXt2YXIgbj1fdCh0W3JdKSxpPW4uZmFtaWx5LGE9bi5zdHJldGNoLG89bi5zdHlsZSxzPW4ud2VpZ2h0O2VbaV09ZVtpXXx8e30sZVtpXVthXT1lW2ldW2FdfHx7fSxlW2ldW2FdW29dPWVbaV1bYV1bb118fHt9LGVbaV1bYV1bb11bc109bn1yZXR1cm4gZX0oaS5jb25jYXQoZSkpLGQ9bn1yZXR1cm4gbH0odGhpcy5wZGYsdGhpcy5mb250RmFjZXMpLHU9cy5tYXAoZnVuY3Rpb24odCl7cmV0dXJue2ZhbWlseTp0LHN0cmV0Y2g6XCJub3JtYWxcIix3ZWlnaHQ6bixzdHlsZTpyfX0pLGg9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0ocj1yfHx7fSkuZGVmYXVsdEZvbnRGYW1pbHl8fFwidGltZXNcIixpPU9iamVjdC5hc3NpZ24oe30sa3Qsci5nZW5lcmljRm9udEZhbWlsaWVzfHx7fSksYT1udWxsLG89bnVsbCxzPTA7czxlLmxlbmd0aDsrK3MpaWYoaVsoYT1fdChlW3NdKSkuZmFtaWx5XSYmKGEuZmFtaWx5PWlbYS5mYW1pbHldKSx0Lmhhc093blByb3BlcnR5KGEuZmFtaWx5KSl7bz10W2EuZmFtaWx5XTticmVha31pZighKG89b3x8dFtuXSkpdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGZpbmQgYSBmb250LWZhbWlseSBmb3IgdGhlIHJ1bGUgJ1wiK0l0KGEpK1wiJyBhbmQgZGVmYXVsdCBmYW1pbHkgJ1wiK24rXCInLlwiKTtpZihvPWZ1bmN0aW9uKHQsZSl7aWYoZVt0XSlyZXR1cm4gZVt0XTt2YXIgcj14dFt0XSxuPXI8PXh0Lm5vcm1hbD8tMToxLGk9UHQoZSxMdCxyLG4pO2lmKCFpKXRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBmaW5kIGEgbWF0Y2hpbmcgZm9udC1zdHJldGNoIHZhbHVlIGZvciBcIit0KTtyZXR1cm4gaX0oYS5zdHJldGNoLG8pLG89ZnVuY3Rpb24odCxlKXtpZihlW3RdKXJldHVybiBlW3RdO2Zvcih2YXIgcj1OdFt0XSxuPTA7bjxyLmxlbmd0aDsrK24paWYoZVtyW25dXSlyZXR1cm4gZVtyW25dXTt0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgZmluZCBhIG1hdGNoaW5nIGZvbnQtc3R5bGUgZm9yIFwiK3QpfShhLnN0eWxlLG8pLCEobz1mdW5jdGlvbih0LGUpe2lmKGVbdF0pcmV0dXJuIGVbdF07aWYoNDAwPT09dCYmZVs1MDBdKXJldHVybiBlWzUwMF07aWYoNTAwPT09dCYmZVs0MDBdKXJldHVybiBlWzQwMF07dmFyIHI9U3RbdF0sbj1QdChlLEF0LHIsdDw0MDA/LTE6MSk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGZpbmQgYSBtYXRjaGluZyBmb250LXdlaWdodCBmb3IgdmFsdWUgXCIrdCk7cmV0dXJuIG59KGEud2VpZ2h0LG8pKSl0aHJvdyBuZXcgRXJyb3IoXCJGYWlsZWQgdG8gcmVzb2x2ZSBhIGZvbnQgZm9yIHRoZSBydWxlICdcIitJdChhKStcIicuXCIpO3JldHVybiBvfShjLHUpO3RoaXMucGRmLnNldEZvbnQoaC5yZWYubmFtZSxoLnJlZi5zdHlsZSl9ZWxzZXt2YXIgZj1cIlwiOyhcImJvbGRcIj09PW58fHBhcnNlSW50KG4sMTApPj03MDB8fFwiYm9sZFwiPT09cikmJihmPVwiYm9sZFwiKSxcIml0YWxpY1wiPT09ciYmKGYrPVwiaXRhbGljXCIpLDA9PT1mLmxlbmd0aCYmKGY9XCJub3JtYWxcIik7Zm9yKHZhciBwPVwiXCIsZz17YXJpYWw6XCJIZWx2ZXRpY2FcIixBcmlhbDpcIkhlbHZldGljYVwiLHZlcmRhbmE6XCJIZWx2ZXRpY2FcIixWZXJkYW5hOlwiSGVsdmV0aWNhXCIsaGVsdmV0aWNhOlwiSGVsdmV0aWNhXCIsSGVsdmV0aWNhOlwiSGVsdmV0aWNhXCIsXCJzYW5zLXNlcmlmXCI6XCJIZWx2ZXRpY2FcIixmaXhlZDpcIkNvdXJpZXJcIixtb25vc3BhY2U6XCJDb3VyaWVyXCIsdGVybWluYWw6XCJDb3VyaWVyXCIsY3Vyc2l2ZTpcIlRpbWVzXCIsZmFudGFzeTpcIlRpbWVzXCIsc2VyaWY6XCJUaW1lc1wifSxtPTA7bTxzLmxlbmd0aDttKyspe2lmKHZvaWQgMCE9PXRoaXMucGRmLmludGVybmFsLmdldEZvbnQoc1ttXSxmLHtub0ZhbGxiYWNrOiEwLGRpc2FibGVXYXJuaW5nOiEwfSkpe3A9c1ttXTticmVha31pZihcImJvbGRpdGFsaWNcIj09PWYmJnZvaWQgMCE9PXRoaXMucGRmLmludGVybmFsLmdldEZvbnQoc1ttXSxcImJvbGRcIix7bm9GYWxsYmFjazohMCxkaXNhYmxlV2FybmluZzohMH0pKXA9c1ttXSxmPVwiYm9sZFwiO2Vsc2UgaWYodm9pZCAwIT09dGhpcy5wZGYuaW50ZXJuYWwuZ2V0Rm9udChzW21dLFwibm9ybWFsXCIse25vRmFsbGJhY2s6ITAsZGlzYWJsZVdhcm5pbmc6ITB9KSl7cD1zW21dLGY9XCJub3JtYWxcIjticmVha319aWYoXCJcIj09PXApZm9yKHZhciB2PTA7djxzLmxlbmd0aDt2KyspaWYoZ1tzW3ZdXSl7cD1nW3Nbdl1dO2JyZWFrfXA9XCJcIj09PXA/XCJUaW1lc1wiOnAsdGhpcy5wZGYuc2V0Rm9udChwLGYpfX19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJnbG9iYWxDb21wb3NpdGVPcGVyYXRpb25cIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbn0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj10fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiZ2xvYmFsQWxwaGFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3R4Lmdsb2JhbEFscGhhfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5jdHguZ2xvYmFsQWxwaGE9dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImxpbmVEYXNoT2Zmc2V0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN0eC5saW5lRGFzaE9mZnNldH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuY3R4LmxpbmVEYXNoT2Zmc2V0PXQsRC5jYWxsKHRoaXMpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwibGluZURhc2hcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3R4LmxpbmVEYXNofSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5jdHgubGluZURhc2g9dCxELmNhbGwodGhpcyl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJpZ25vcmVDbGVhclJlY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3R4Lmlnbm9yZUNsZWFyUmVjdH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuY3R4Lmlnbm9yZUNsZWFyUmVjdD1Cb29sZWFuKHQpfX0pfTtkLnByb3RvdHlwZS5zZXRMaW5lRGFzaD1mdW5jdGlvbih0KXt0aGlzLmxpbmVEYXNoPXR9LGQucHJvdG90eXBlLmdldExpbmVEYXNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGluZURhc2gubGVuZ3RoJTI/dGhpcy5saW5lRGFzaC5jb25jYXQodGhpcy5saW5lRGFzaCk6dGhpcy5saW5lRGFzaC5zbGljZSgpfSxkLnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uKCl7TC5jYWxsKHRoaXMsXCJmaWxsXCIsITEpfSxkLnByb3RvdHlwZS5zdHJva2U9ZnVuY3Rpb24oKXtMLmNhbGwodGhpcyxcInN0cm9rZVwiLCExKX0sZC5wcm90b3R5cGUuYmVnaW5QYXRoPWZ1bmN0aW9uKCl7dGhpcy5wYXRoPVt7dHlwZTpcImJlZ2luXCJ9XX0sZC5wcm90b3R5cGUubW92ZVRvPWZ1bmN0aW9uKHQsZSl7aWYoaXNOYU4odCl8fGlzTmFOKGUpKXRocm93IHMuZXJyb3IoXCJqc1BERi5jb250ZXh0MmQubW92ZVRvOiBJbnZhbGlkIGFyZ3VtZW50c1wiLGFyZ3VtZW50cyksbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudHMgcGFzc2VkIHRvIGpzUERGLmNvbnRleHQyZC5tb3ZlVG9cIik7dmFyIHI9dGhpcy5jdHgudHJhbnNmb3JtLmFwcGx5VG9Qb2ludChuZXcgYyh0LGUpKTt0aGlzLnBhdGgucHVzaCh7dHlwZTpcIm10XCIseDpyLngseTpyLnl9KSx0aGlzLmN0eC5sYXN0UG9pbnQ9bmV3IGModCxlKX0sZC5wcm90b3R5cGUuY2xvc2VQYXRoPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGMoMCwwKSxlPTA7Zm9yKGU9dGhpcy5wYXRoLmxlbmd0aC0xOy0xIT09ZTtlLS0paWYoXCJiZWdpblwiPT09dGhpcy5wYXRoW2VdLnR5cGUmJlwib2JqZWN0XCI9PXR5cGVvZiB0aGlzLnBhdGhbZSsxXSYmXCJudW1iZXJcIj09dHlwZW9mIHRoaXMucGF0aFtlKzFdLngpe3Q9bmV3IGModGhpcy5wYXRoW2UrMV0ueCx0aGlzLnBhdGhbZSsxXS55KTticmVha310aGlzLnBhdGgucHVzaCh7dHlwZTpcImNsb3NlXCJ9KSx0aGlzLmN0eC5sYXN0UG9pbnQ9bmV3IGModC54LHQueSl9LGQucHJvdG90eXBlLmxpbmVUbz1mdW5jdGlvbih0LGUpe2lmKGlzTmFOKHQpfHxpc05hTihlKSl0aHJvdyBzLmVycm9yKFwianNQREYuY29udGV4dDJkLmxpbmVUbzogSW52YWxpZCBhcmd1bWVudHNcIixhcmd1bWVudHMpLG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBqc1BERi5jb250ZXh0MmQubGluZVRvXCIpO3ZhciByPXRoaXMuY3R4LnRyYW5zZm9ybS5hcHBseVRvUG9pbnQobmV3IGModCxlKSk7dGhpcy5wYXRoLnB1c2goe3R5cGU6XCJsdFwiLHg6ci54LHk6ci55fSksdGhpcy5jdHgubGFzdFBvaW50PW5ldyBjKHIueCxyLnkpfSxkLnByb3RvdHlwZS5jbGlwPWZ1bmN0aW9uKCl7dGhpcy5jdHguY2xpcF9wYXRoPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5wYXRoKSksTC5jYWxsKHRoaXMsbnVsbCwhMCl9LGQucHJvdG90eXBlLnF1YWRyYXRpY0N1cnZlVG89ZnVuY3Rpb24odCxlLHIsbil7aWYoaXNOYU4ocil8fGlzTmFOKG4pfHxpc05hTih0KXx8aXNOYU4oZSkpdGhyb3cgcy5lcnJvcihcImpzUERGLmNvbnRleHQyZC5xdWFkcmF0aWNDdXJ2ZVRvOiBJbnZhbGlkIGFyZ3VtZW50c1wiLGFyZ3VtZW50cyksbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudHMgcGFzc2VkIHRvIGpzUERGLmNvbnRleHQyZC5xdWFkcmF0aWNDdXJ2ZVRvXCIpO3ZhciBpPXRoaXMuY3R4LnRyYW5zZm9ybS5hcHBseVRvUG9pbnQobmV3IGMocixuKSksYT10aGlzLmN0eC50cmFuc2Zvcm0uYXBwbHlUb1BvaW50KG5ldyBjKHQsZSkpO3RoaXMucGF0aC5wdXNoKHt0eXBlOlwicWN0XCIseDE6YS54LHkxOmEueSx4OmkueCx5OmkueX0pLHRoaXMuY3R4Lmxhc3RQb2ludD1uZXcgYyhpLngsaS55KX0sZC5wcm90b3R5cGUuYmV6aWVyQ3VydmVUbz1mdW5jdGlvbih0LGUscixuLGksYSl7aWYoaXNOYU4oaSl8fGlzTmFOKGEpfHxpc05hTih0KXx8aXNOYU4oZSl8fGlzTmFOKHIpfHxpc05hTihuKSl0aHJvdyBzLmVycm9yKFwianNQREYuY29udGV4dDJkLmJlemllckN1cnZlVG86IEludmFsaWQgYXJndW1lbnRzXCIsYXJndW1lbnRzKSxuZXcgRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50cyBwYXNzZWQgdG8ganNQREYuY29udGV4dDJkLmJlemllckN1cnZlVG9cIik7dmFyIG89dGhpcy5jdHgudHJhbnNmb3JtLmFwcGx5VG9Qb2ludChuZXcgYyhpLGEpKSx1PXRoaXMuY3R4LnRyYW5zZm9ybS5hcHBseVRvUG9pbnQobmV3IGModCxlKSksbD10aGlzLmN0eC50cmFuc2Zvcm0uYXBwbHlUb1BvaW50KG5ldyBjKHIsbikpO3RoaXMucGF0aC5wdXNoKHt0eXBlOlwiYmN0XCIseDE6dS54LHkxOnUueSx4MjpsLngseTI6bC55LHg6by54LHk6by55fSksdGhpcy5jdHgubGFzdFBvaW50PW5ldyBjKG8ueCxvLnkpfSxkLnByb3RvdHlwZS5hcmM9ZnVuY3Rpb24odCxlLHIsbixpLGEpe2lmKGlzTmFOKHQpfHxpc05hTihlKXx8aXNOYU4ocil8fGlzTmFOKG4pfHxpc05hTihpKSl0aHJvdyBzLmVycm9yKFwianNQREYuY29udGV4dDJkLmFyYzogSW52YWxpZCBhcmd1bWVudHNcIixhcmd1bWVudHMpLG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBqc1BERi5jb250ZXh0MmQuYXJjXCIpO2lmKGE9Qm9vbGVhbihhKSwhdGhpcy5jdHgudHJhbnNmb3JtLmlzSWRlbnRpdHkpe3ZhciBvPXRoaXMuY3R4LnRyYW5zZm9ybS5hcHBseVRvUG9pbnQobmV3IGModCxlKSk7dD1vLngsZT1vLnk7dmFyIHU9dGhpcy5jdHgudHJhbnNmb3JtLmFwcGx5VG9Qb2ludChuZXcgYygwLHIpKSxsPXRoaXMuY3R4LnRyYW5zZm9ybS5hcHBseVRvUG9pbnQobmV3IGMoMCwwKSk7cj1NYXRoLnNxcnQoTWF0aC5wb3codS54LWwueCwyKStNYXRoLnBvdyh1LnktbC55LDIpKX1NYXRoLmFicyhpLW4pPj0yKk1hdGguUEkmJihuPTAsaT0yKk1hdGguUEkpLHRoaXMucGF0aC5wdXNoKHt0eXBlOlwiYXJjXCIseDp0LHk6ZSxyYWRpdXM6cixzdGFydEFuZ2xlOm4sZW5kQW5nbGU6aSxjb3VudGVyY2xvY2t3aXNlOmF9KX0sZC5wcm90b3R5cGUuYXJjVG89ZnVuY3Rpb24odCxlLHIsbixpKXt0aHJvdyBuZXcgRXJyb3IoXCJhcmNUbyBub3QgaW1wbGVtZW50ZWQuXCIpfSxkLnByb3RvdHlwZS5yZWN0PWZ1bmN0aW9uKHQsZSxyLG4pe2lmKGlzTmFOKHQpfHxpc05hTihlKXx8aXNOYU4ocil8fGlzTmFOKG4pKXRocm93IHMuZXJyb3IoXCJqc1BERi5jb250ZXh0MmQucmVjdDogSW52YWxpZCBhcmd1bWVudHNcIixhcmd1bWVudHMpLG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBqc1BERi5jb250ZXh0MmQucmVjdFwiKTt0aGlzLm1vdmVUbyh0LGUpLHRoaXMubGluZVRvKHQrcixlKSx0aGlzLmxpbmVUbyh0K3IsZStuKSx0aGlzLmxpbmVUbyh0LGUrbiksdGhpcy5saW5lVG8odCxlKSx0aGlzLmxpbmVUbyh0K3IsZSksdGhpcy5saW5lVG8odCxlKX0sZC5wcm90b3R5cGUuZmlsbFJlY3Q9ZnVuY3Rpb24odCxlLHIsbil7aWYoaXNOYU4odCl8fGlzTmFOKGUpfHxpc05hTihyKXx8aXNOYU4obikpdGhyb3cgcy5lcnJvcihcImpzUERGLmNvbnRleHQyZC5maWxsUmVjdDogSW52YWxpZCBhcmd1bWVudHNcIixhcmd1bWVudHMpLG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBqc1BERi5jb250ZXh0MmQuZmlsbFJlY3RcIik7aWYoIWcuY2FsbCh0aGlzKSl7dmFyIGk9e307XCJidXR0XCIhPT10aGlzLmxpbmVDYXAmJihpLmxpbmVDYXA9dGhpcy5saW5lQ2FwLHRoaXMubGluZUNhcD1cImJ1dHRcIiksXCJtaXRlclwiIT09dGhpcy5saW5lSm9pbiYmKGkubGluZUpvaW49dGhpcy5saW5lSm9pbix0aGlzLmxpbmVKb2luPVwibWl0ZXJcIiksdGhpcy5iZWdpblBhdGgoKSx0aGlzLnJlY3QodCxlLHIsbiksdGhpcy5maWxsKCksaS5oYXNPd25Qcm9wZXJ0eShcImxpbmVDYXBcIikmJih0aGlzLmxpbmVDYXA9aS5saW5lQ2FwKSxpLmhhc093blByb3BlcnR5KFwibGluZUpvaW5cIikmJih0aGlzLmxpbmVKb2luPWkubGluZUpvaW4pfX0sZC5wcm90b3R5cGUuc3Ryb2tlUmVjdD1mdW5jdGlvbih0LGUscixuKXtpZihpc05hTih0KXx8aXNOYU4oZSl8fGlzTmFOKHIpfHxpc05hTihuKSl0aHJvdyBzLmVycm9yKFwianNQREYuY29udGV4dDJkLnN0cm9rZVJlY3Q6IEludmFsaWQgYXJndW1lbnRzXCIsYXJndW1lbnRzKSxuZXcgRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50cyBwYXNzZWQgdG8ganNQREYuY29udGV4dDJkLnN0cm9rZVJlY3RcIik7bS5jYWxsKHRoaXMpfHwodGhpcy5iZWdpblBhdGgoKSx0aGlzLnJlY3QodCxlLHIsbiksdGhpcy5zdHJva2UoKSl9LGQucHJvdG90eXBlLmNsZWFyUmVjdD1mdW5jdGlvbih0LGUscixuKXtpZihpc05hTih0KXx8aXNOYU4oZSl8fGlzTmFOKHIpfHxpc05hTihuKSl0aHJvdyBzLmVycm9yKFwianNQREYuY29udGV4dDJkLmNsZWFyUmVjdDogSW52YWxpZCBhcmd1bWVudHNcIixhcmd1bWVudHMpLG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBqc1BERi5jb250ZXh0MmQuY2xlYXJSZWN0XCIpO3RoaXMuaWdub3JlQ2xlYXJSZWN0fHwodGhpcy5maWxsU3R5bGU9XCIjZmZmZmZmXCIsdGhpcy5maWxsUmVjdCh0LGUscixuKSl9LGQucHJvdG90eXBlLnNhdmU9ZnVuY3Rpb24odCl7dD1cImJvb2xlYW5cIiE9dHlwZW9mIHR8fHQ7Zm9yKHZhciBlPXRoaXMucGRmLmludGVybmFsLmdldEN1cnJlbnRQYWdlSW5mbygpLnBhZ2VOdW1iZXIscj0wO3I8dGhpcy5wZGYuaW50ZXJuYWwuZ2V0TnVtYmVyT2ZQYWdlcygpO3IrKyl0aGlzLnBkZi5zZXRQYWdlKHIrMSksdGhpcy5wZGYuaW50ZXJuYWwub3V0KFwicVwiKTtpZih0aGlzLnBkZi5zZXRQYWdlKGUpLHQpe3RoaXMuY3R4LmZvbnRTaXplPXRoaXMucGRmLmludGVybmFsLmdldEZvbnRTaXplKCk7dmFyIG49bmV3IGYodGhpcy5jdHgpO3RoaXMuY3R4U3RhY2sucHVzaCh0aGlzLmN0eCksdGhpcy5jdHg9bn19LGQucHJvdG90eXBlLnJlc3RvcmU9ZnVuY3Rpb24odCl7dD1cImJvb2xlYW5cIiE9dHlwZW9mIHR8fHQ7Zm9yKHZhciBlPXRoaXMucGRmLmludGVybmFsLmdldEN1cnJlbnRQYWdlSW5mbygpLnBhZ2VOdW1iZXIscj0wO3I8dGhpcy5wZGYuaW50ZXJuYWwuZ2V0TnVtYmVyT2ZQYWdlcygpO3IrKyl0aGlzLnBkZi5zZXRQYWdlKHIrMSksdGhpcy5wZGYuaW50ZXJuYWwub3V0KFwiUVwiKTt0aGlzLnBkZi5zZXRQYWdlKGUpLHQmJjAhPT10aGlzLmN0eFN0YWNrLmxlbmd0aCYmKHRoaXMuY3R4PXRoaXMuY3R4U3RhY2sucG9wKCksdGhpcy5maWxsU3R5bGU9dGhpcy5jdHguZmlsbFN0eWxlLHRoaXMuc3Ryb2tlU3R5bGU9dGhpcy5jdHguc3Ryb2tlU3R5bGUsdGhpcy5mb250PXRoaXMuY3R4LmZvbnQsdGhpcy5saW5lQ2FwPXRoaXMuY3R4LmxpbmVDYXAsdGhpcy5saW5lV2lkdGg9dGhpcy5jdHgubGluZVdpZHRoLHRoaXMubGluZUpvaW49dGhpcy5jdHgubGluZUpvaW4sdGhpcy5saW5lRGFzaD10aGlzLmN0eC5saW5lRGFzaCx0aGlzLmxpbmVEYXNoT2Zmc2V0PXRoaXMuY3R4LmxpbmVEYXNoT2Zmc2V0KX0sZC5wcm90b3R5cGUudG9EYXRhVVJMPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKFwidG9EYXRhVXJsIG5vdCBpbXBsZW1lbnRlZC5cIil9O3ZhciBwPWZ1bmN0aW9uKHQpe3ZhciBlLHIsaSxhO2lmKCEwPT09dC5pc0NhbnZhc0dyYWRpZW50JiYodD10LmdldENvbG9yKCkpLCF0KXJldHVybntyOjAsZzowLGI6MCxhOjAsc3R5bGU6dH07aWYoL3RyYW5zcGFyZW50fHJnYmFcXHMqXFwoXFxzKihcXGQrKVxccyosXFxzKihcXGQrKVxccyosXFxzKihcXGQrKVxccyosXFxzKjArXFxzKlxcKS8udGVzdCh0KSllPTAscj0wLGk9MCxhPTA7ZWxzZXt2YXIgbz0vcmdiXFxzKlxcKFxccyooXFxkKylcXHMqLFxccyooXFxkKylcXHMqLFxccyooXFxkKylcXHMqXFwpLy5leGVjKHQpO2lmKG51bGwhPT1vKWU9cGFyc2VJbnQob1sxXSkscj1wYXJzZUludChvWzJdKSxpPXBhcnNlSW50KG9bM10pLGE9MTtlbHNlIGlmKG51bGwhPT0obz0vcmdiYVxccypcXChcXHMqKFxcZCspXFxzKixcXHMqKFxcZCspXFxzKixcXHMqKFxcZCspXFxzKixcXHMqKFtcXGQuXSspXFxzKlxcKS8uZXhlYyh0KSkpZT1wYXJzZUludChvWzFdKSxyPXBhcnNlSW50KG9bMl0pLGk9cGFyc2VJbnQob1szXSksYT1wYXJzZUZsb2F0KG9bNF0pO2Vsc2V7aWYoYT0xLFwic3RyaW5nXCI9PXR5cGVvZiB0JiZcIiNcIiE9PXQuY2hhckF0KDApKXt2YXIgcz1uZXcgbih0KTt0PXMub2s/cy50b0hleCgpOlwiIzAwMDAwMFwifTQ9PT10Lmxlbmd0aD8oZT10LnN1YnN0cmluZygxLDIpLGUrPWUscj10LnN1YnN0cmluZygyLDMpLHIrPXIsaT10LnN1YnN0cmluZygzLDQpLGkrPWkpOihlPXQuc3Vic3RyaW5nKDEsMykscj10LnN1YnN0cmluZygzLDUpLGk9dC5zdWJzdHJpbmcoNSw3KSksZT1wYXJzZUludChlLDE2KSxyPXBhcnNlSW50KHIsMTYpLGk9cGFyc2VJbnQoaSwxNil9fXJldHVybntyOmUsZzpyLGI6aSxhLHN0eWxlOnR9fSxnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3R4LmlzRmlsbFRyYW5zcGFyZW50fHwwPT10aGlzLmdsb2JhbEFscGhhfSxtPWZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5jdHguaXNTdHJva2VUcmFuc3BhcmVudHx8MD09dGhpcy5nbG9iYWxBbHBoYSl9O2QucHJvdG90eXBlLmZpbGxUZXh0PWZ1bmN0aW9uKHQsZSxyLG4pe2lmKGlzTmFOKGUpfHxpc05hTihyKXx8XCJzdHJpbmdcIiE9dHlwZW9mIHQpdGhyb3cgcy5lcnJvcihcImpzUERGLmNvbnRleHQyZC5maWxsVGV4dDogSW52YWxpZCBhcmd1bWVudHNcIixhcmd1bWVudHMpLG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBqc1BERi5jb250ZXh0MmQuZmlsbFRleHRcIik7aWYobj1pc05hTihuKT92b2lkIDA6biwhZy5jYWxsKHRoaXMpKXt2YXIgaT1NKHRoaXMuY3R4LnRyYW5zZm9ybS5yb3RhdGlvbiksYT10aGlzLmN0eC50cmFuc2Zvcm0uc2NhbGVYO0kuY2FsbCh0aGlzLHt0ZXh0OnQseDplLHk6cixzY2FsZTphLGFuZ2xlOmksYWxpZ246dGhpcy50ZXh0QWxpZ24sbWF4V2lkdGg6bn0pfX0sZC5wcm90b3R5cGUuc3Ryb2tlVGV4dD1mdW5jdGlvbih0LGUscixuKXtpZihpc05hTihlKXx8aXNOYU4ocil8fFwic3RyaW5nXCIhPXR5cGVvZiB0KXRocm93IHMuZXJyb3IoXCJqc1BERi5jb250ZXh0MmQuc3Ryb2tlVGV4dDogSW52YWxpZCBhcmd1bWVudHNcIixhcmd1bWVudHMpLG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBqc1BERi5jb250ZXh0MmQuc3Ryb2tlVGV4dFwiKTtpZighbS5jYWxsKHRoaXMpKXtuPWlzTmFOKG4pP3ZvaWQgMDpuO3ZhciBpPU0odGhpcy5jdHgudHJhbnNmb3JtLnJvdGF0aW9uKSxhPXRoaXMuY3R4LnRyYW5zZm9ybS5zY2FsZVg7SS5jYWxsKHRoaXMse3RleHQ6dCx4OmUseTpyLHNjYWxlOmEscmVuZGVyaW5nTW9kZTpcInN0cm9rZVwiLGFuZ2xlOmksYWxpZ246dGhpcy50ZXh0QWxpZ24sbWF4V2lkdGg6bn0pfX0sZC5wcm90b3R5cGUubWVhc3VyZVRleHQ9ZnVuY3Rpb24odCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIHQpdGhyb3cgcy5lcnJvcihcImpzUERGLmNvbnRleHQyZC5tZWFzdXJlVGV4dDogSW52YWxpZCBhcmd1bWVudHNcIixhcmd1bWVudHMpLG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCB0byBqc1BERi5jb250ZXh0MmQubWVhc3VyZVRleHRcIik7dmFyIGU9dGhpcy5wZGYscj10aGlzLnBkZi5pbnRlcm5hbC5zY2FsZUZhY3RvcixuPWUuaW50ZXJuYWwuZ2V0Rm9udFNpemUoKSxpPWUuZ2V0U3RyaW5nVW5pdFdpZHRoKHQpKm4vZS5pbnRlcm5hbC5zY2FsZUZhY3RvcjtyZXR1cm4gbmV3IGZ1bmN0aW9uKHQpe3ZhciBlPSh0PXR8fHt9KS53aWR0aHx8MDtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJ3aWR0aFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX19KSx0aGlzfSh7d2lkdGg6aSo9TWF0aC5yb3VuZCg5NipyLzcyKjFlNCkvMWU0fSl9LGQucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKHQsZSl7aWYoaXNOYU4odCl8fGlzTmFOKGUpKXRocm93IHMuZXJyb3IoXCJqc1BERi5jb250ZXh0MmQuc2NhbGU6IEludmFsaWQgYXJndW1lbnRzXCIsYXJndW1lbnRzKSxuZXcgRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50cyBwYXNzZWQgdG8ganNQREYuY29udGV4dDJkLnNjYWxlXCIpO3ZhciByPW5ldyBsKHQsMCwwLGUsMCwwKTt0aGlzLmN0eC50cmFuc2Zvcm09dGhpcy5jdHgudHJhbnNmb3JtLm11bHRpcGx5KHIpfSxkLnByb3RvdHlwZS5yb3RhdGU9ZnVuY3Rpb24odCl7aWYoaXNOYU4odCkpdGhyb3cgcy5lcnJvcihcImpzUERGLmNvbnRleHQyZC5yb3RhdGU6IEludmFsaWQgYXJndW1lbnRzXCIsYXJndW1lbnRzKSxuZXcgRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50cyBwYXNzZWQgdG8ganNQREYuY29udGV4dDJkLnJvdGF0ZVwiKTt2YXIgZT1uZXcgbChNYXRoLmNvcyh0KSxNYXRoLnNpbih0KSwtTWF0aC5zaW4odCksTWF0aC5jb3ModCksMCwwKTt0aGlzLmN0eC50cmFuc2Zvcm09dGhpcy5jdHgudHJhbnNmb3JtLm11bHRpcGx5KGUpfSxkLnByb3RvdHlwZS50cmFuc2xhdGU9ZnVuY3Rpb24odCxlKXtpZihpc05hTih0KXx8aXNOYU4oZSkpdGhyb3cgcy5lcnJvcihcImpzUERGLmNvbnRleHQyZC50cmFuc2xhdGU6IEludmFsaWQgYXJndW1lbnRzXCIsYXJndW1lbnRzKSxuZXcgRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50cyBwYXNzZWQgdG8ganNQREYuY29udGV4dDJkLnRyYW5zbGF0ZVwiKTt2YXIgcj1uZXcgbCgxLDAsMCwxLHQsZSk7dGhpcy5jdHgudHJhbnNmb3JtPXRoaXMuY3R4LnRyYW5zZm9ybS5tdWx0aXBseShyKX0sZC5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtpZihpc05hTih0KXx8aXNOYU4oZSl8fGlzTmFOKHIpfHxpc05hTihuKXx8aXNOYU4oaSl8fGlzTmFOKGEpKXRocm93IHMuZXJyb3IoXCJqc1BERi5jb250ZXh0MmQudHJhbnNmb3JtOiBJbnZhbGlkIGFyZ3VtZW50c1wiLGFyZ3VtZW50cyksbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudHMgcGFzc2VkIHRvIGpzUERGLmNvbnRleHQyZC50cmFuc2Zvcm1cIik7dmFyIG89bmV3IGwodCxlLHIsbixpLGEpO3RoaXMuY3R4LnRyYW5zZm9ybT10aGlzLmN0eC50cmFuc2Zvcm0ubXVsdGlwbHkobyl9LGQucHJvdG90eXBlLnNldFRyYW5zZm9ybT1mdW5jdGlvbih0LGUscixuLGksYSl7dD1pc05hTih0KT8xOnQsZT1pc05hTihlKT8wOmUscj1pc05hTihyKT8wOnIsbj1pc05hTihuKT8xOm4saT1pc05hTihpKT8wOmksYT1pc05hTihhKT8wOmEsdGhpcy5jdHgudHJhbnNmb3JtPW5ldyBsKHQsZSxyLG4saSxhKX07dmFyIHY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXJnaW5bMF0+MHx8dGhpcy5tYXJnaW5bMV0+MHx8dGhpcy5tYXJnaW5bMl0+MHx8dGhpcy5tYXJnaW5bM10+MH07ZC5wcm90b3R5cGUuZHJhd0ltYWdlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxjKXt2YXIgaD10aGlzLnBkZi5nZXRJbWFnZVByb3BlcnRpZXModCksZj0xLGQ9MSxwPTEsZz0xO3ZvaWQgMCE9PW4mJnZvaWQgMCE9PXMmJihwPXMvbixnPWMvaSxmPWgud2lkdGgvbipzL24sZD1oLmhlaWdodC9pKmMvaSksdm9pZCAwPT09YSYmKGE9ZSxvPXIsZT0wLHI9MCksdm9pZCAwIT09biYmdm9pZCAwPT09cyYmKHM9bixjPWkpLHZvaWQgMD09PW4mJnZvaWQgMD09PXMmJihzPWgud2lkdGgsYz1oLmhlaWdodCk7dmFyIG09dGhpcy5jdHgudHJhbnNmb3JtLmRlY29tcG9zZSgpLHk9TShtLnJvdGF0ZS5zaHgpLEw9bmV3IGwsQT0oTD0oTD0oTD1MLm11bHRpcGx5KG0udHJhbnNsYXRlKSkubXVsdGlwbHkobS5za2V3KSkubXVsdGlwbHkobS5zY2FsZSkpLmFwcGx5VG9SZWN0YW5nbGUobmV3IHUoYS1lKnAsby1yKmcsbipmLGkqZCkpO2lmKHRoaXMuYXV0b1BhZ2luZyl7Zm9yKHZhciBTLF89Yi5jYWxsKHRoaXMsQSksUD1bXSxrPTA7azxfLmxlbmd0aDtrKz0xKS0xPT09UC5pbmRleE9mKF9ba10pJiZQLnB1c2goX1trXSk7TihQKTtmb3IodmFyIEY9UFswXSxJPVBbUC5sZW5ndGgtMV0sQz1GO0M8SSsxO0MrKyl7dGhpcy5wZGYuc2V0UGFnZShDKTt2YXIgaj10aGlzLnBkZi5pbnRlcm5hbC5wYWdlU2l6ZS53aWR0aC10aGlzLm1hcmdpblszXS10aGlzLm1hcmdpblsxXSxPPTE9PT1DP3RoaXMucG9zWSt0aGlzLm1hcmdpblswXTp0aGlzLm1hcmdpblswXSxCPXRoaXMucGRmLmludGVybmFsLnBhZ2VTaXplLmhlaWdodC10aGlzLnBvc1ktdGhpcy5tYXJnaW5bMF0tdGhpcy5tYXJnaW5bMl0scT10aGlzLnBkZi5pbnRlcm5hbC5wYWdlU2l6ZS5oZWlnaHQtdGhpcy5tYXJnaW5bMF0tdGhpcy5tYXJnaW5bMl0sRT0xPT09Qz8wOkIrKEMtMikqcTtpZigwIT09dGhpcy5jdHguY2xpcF9wYXRoLmxlbmd0aCl7dmFyIFI9dGhpcy5wYXRoO1M9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmN0eC5jbGlwX3BhdGgpKSx0aGlzLnBhdGg9dyhTLHRoaXMucG9zWCt0aGlzLm1hcmdpblszXSwtRStPK3RoaXMuY3R4LnByZXZQYWdlTGFzdEVsZW1PZmZzZXQpLHguY2FsbCh0aGlzLFwiZmlsbFwiLCEwKSx0aGlzLnBhdGg9Un12YXIgRD1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KEEpKTtEPXcoW0RdLHRoaXMucG9zWCt0aGlzLm1hcmdpblszXSwtRStPK3RoaXMuY3R4LnByZXZQYWdlTGFzdEVsZW1PZmZzZXQpWzBdO2NvbnN0IGU9KEM+Rnx8QzxJKSYmdi5jYWxsKHRoaXMpO2UmJih0aGlzLnBkZi5zYXZlR3JhcGhpY3NTdGF0ZSgpLHRoaXMucGRmLnJlY3QodGhpcy5tYXJnaW5bM10sdGhpcy5tYXJnaW5bMF0saixxLG51bGwpLmNsaXAoKS5kaXNjYXJkUGF0aCgpKSx0aGlzLnBkZi5hZGRJbWFnZSh0LFwiSlBFR1wiLEQueCxELnksRC53LEQuaCxudWxsLG51bGwseSksZSYmdGhpcy5wZGYucmVzdG9yZUdyYXBoaWNzU3RhdGUoKX19ZWxzZSB0aGlzLnBkZi5hZGRJbWFnZSh0LFwiSlBFR1wiLEEueCxBLnksQS53LEEuaCxudWxsLG51bGwseSl9O3ZhciBiPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1bXTtlPWV8fHRoaXMucGRmLmludGVybmFsLnBhZ2VTaXplLndpZHRoLHI9cnx8dGhpcy5wZGYuaW50ZXJuYWwucGFnZVNpemUuaGVpZ2h0LXRoaXMubWFyZ2luWzBdLXRoaXMubWFyZ2luWzJdO3ZhciBpPXRoaXMucG9zWSt0aGlzLmN0eC5wcmV2UGFnZUxhc3RFbGVtT2Zmc2V0O3N3aXRjaCh0LnR5cGUpe2RlZmF1bHQ6Y2FzZVwibXRcIjpjYXNlXCJsdFwiOm4ucHVzaChNYXRoLmZsb29yKCh0LnkraSkvcikrMSk7YnJlYWs7Y2FzZVwiYXJjXCI6bi5wdXNoKE1hdGguZmxvb3IoKHQueStpLXQucmFkaXVzKS9yKSsxKSxuLnB1c2goTWF0aC5mbG9vcigodC55K2krdC5yYWRpdXMpL3IpKzEpO2JyZWFrO2Nhc2VcInFjdFwiOnZhciBhPUUodGhpcy5jdHgubGFzdFBvaW50LngsdGhpcy5jdHgubGFzdFBvaW50LnksdC54MSx0LnkxLHQueCx0LnkpO24ucHVzaChNYXRoLmZsb29yKChhLnkraSkvcikrMSksbi5wdXNoKE1hdGguZmxvb3IoKGEueSthLmgraSkvcikrMSk7YnJlYWs7Y2FzZVwiYmN0XCI6dmFyIG89Uih0aGlzLmN0eC5sYXN0UG9pbnQueCx0aGlzLmN0eC5sYXN0UG9pbnQueSx0LngxLHQueTEsdC54Mix0LnkyLHQueCx0LnkpO24ucHVzaChNYXRoLmZsb29yKChvLnkraSkvcikrMSksbi5wdXNoKE1hdGguZmxvb3IoKG8ueStvLmgraSkvcikrMSk7YnJlYWs7Y2FzZVwicmVjdFwiOm4ucHVzaChNYXRoLmZsb29yKCh0LnkraSkvcikrMSksbi5wdXNoKE1hdGguZmxvb3IoKHQueSt0LmgraSkvcikrMSl9Zm9yKHZhciBzPTA7czxuLmxlbmd0aDtzKz0xKWZvcig7dGhpcy5wZGYuaW50ZXJuYWwuZ2V0TnVtYmVyT2ZQYWdlcygpPG5bc107KXkuY2FsbCh0aGlzKTtyZXR1cm4gbn0seT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZmlsbFN0eWxlLGU9dGhpcy5zdHJva2VTdHlsZSxyPXRoaXMuZm9udCxuPXRoaXMubGluZUNhcCxpPXRoaXMubGluZVdpZHRoLGE9dGhpcy5saW5lSm9pbjt0aGlzLnBkZi5hZGRQYWdlKCksdGhpcy5maWxsU3R5bGU9dCx0aGlzLnN0cm9rZVN0eWxlPWUsdGhpcy5mb250PXIsdGhpcy5saW5lQ2FwPW4sdGhpcy5saW5lV2lkdGg9aSx0aGlzLmxpbmVKb2luPWF9LHc9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXN3aXRjaCh0W25dLnR5cGUpe2Nhc2VcImJjdFwiOnRbbl0ueDIrPWUsdFtuXS55Mis9cjtjYXNlXCJxY3RcIjp0W25dLngxKz1lLHRbbl0ueTErPXI7ZGVmYXVsdDp0W25dLngrPWUsdFtuXS55Kz1yfXJldHVybiB0fSxOPWZ1bmN0aW9uKHQpe3JldHVybiB0LnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSl9LEw9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmZpbGxTdHlsZSxuPXRoaXMuc3Ryb2tlU3R5bGUsaT10aGlzLmxpbmVDYXAsYT10aGlzLmxpbmVXaWR0aCxvPU1hdGguYWJzKGEqdGhpcy5jdHgudHJhbnNmb3JtLnNjYWxlWCkscz10aGlzLmxpbmVKb2luO2lmKHRoaXMuYXV0b1BhZ2luZyl7Zm9yKHZhciBjLHUsbD1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMucGF0aCkpLGg9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnBhdGgpKSxmPVtdLGQ9MDtkPGgubGVuZ3RoO2QrKylpZih2b2lkIDAhPT1oW2RdLngpZm9yKHZhciBwPWIuY2FsbCh0aGlzLGhbZF0pLGc9MDtnPHAubGVuZ3RoO2crPTEpLTE9PT1mLmluZGV4T2YocFtnXSkmJmYucHVzaChwW2ddKTtmb3IodmFyIG09MDttPGYubGVuZ3RoO20rKylmb3IoO3RoaXMucGRmLmludGVybmFsLmdldE51bWJlck9mUGFnZXMoKTxmW21dOyl5LmNhbGwodGhpcyk7TihmKTtmb3IodmFyIEw9ZlswXSxBPWZbZi5sZW5ndGgtMV0sUz1MO1M8QSsxO1MrKyl7dGhpcy5wZGYuc2V0UGFnZShTKSx0aGlzLmZpbGxTdHlsZT1yLHRoaXMuc3Ryb2tlU3R5bGU9bix0aGlzLmxpbmVDYXA9aSx0aGlzLmxpbmVXaWR0aD1vLHRoaXMubGluZUpvaW49czt2YXIgXz10aGlzLnBkZi5pbnRlcm5hbC5wYWdlU2l6ZS53aWR0aC10aGlzLm1hcmdpblszXS10aGlzLm1hcmdpblsxXSxQPTE9PT1TP3RoaXMucG9zWSt0aGlzLm1hcmdpblswXTp0aGlzLm1hcmdpblswXSxrPXRoaXMucGRmLmludGVybmFsLnBhZ2VTaXplLmhlaWdodC10aGlzLnBvc1ktdGhpcy5tYXJnaW5bMF0tdGhpcy5tYXJnaW5bMl0sRj10aGlzLnBkZi5pbnRlcm5hbC5wYWdlU2l6ZS5oZWlnaHQtdGhpcy5tYXJnaW5bMF0tdGhpcy5tYXJnaW5bMl0sST0xPT09Uz8wOmsrKFMtMikqRjtpZigwIT09dGhpcy5jdHguY2xpcF9wYXRoLmxlbmd0aCl7dmFyIEM9dGhpcy5wYXRoO2M9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmN0eC5jbGlwX3BhdGgpKSx0aGlzLnBhdGg9dyhjLHRoaXMucG9zWCt0aGlzLm1hcmdpblszXSwtSStQK3RoaXMuY3R4LnByZXZQYWdlTGFzdEVsZW1PZmZzZXQpLHguY2FsbCh0aGlzLHQsITApLHRoaXMucGF0aD1DfWlmKHU9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShsKSksdGhpcy5wYXRoPXcodSx0aGlzLnBvc1grdGhpcy5tYXJnaW5bM10sLUkrUCt0aGlzLmN0eC5wcmV2UGFnZUxhc3RFbGVtT2Zmc2V0KSwhMT09PWV8fDA9PT1TKXtjb25zdCByPShTPkx8fFM8QSkmJnYuY2FsbCh0aGlzKTtyJiYodGhpcy5wZGYuc2F2ZUdyYXBoaWNzU3RhdGUoKSx0aGlzLnBkZi5yZWN0KHRoaXMubWFyZ2luWzNdLHRoaXMubWFyZ2luWzBdLF8sRixudWxsKS5jbGlwKCkuZGlzY2FyZFBhdGgoKSkseC5jYWxsKHRoaXMsdCxlKSxyJiZ0aGlzLnBkZi5yZXN0b3JlR3JhcGhpY3NTdGF0ZSgpfXRoaXMubGluZVdpZHRoPWF9dGhpcy5wYXRoPWx9ZWxzZSB0aGlzLmxpbmVXaWR0aD1vLHguY2FsbCh0aGlzLHQsZSksdGhpcy5saW5lV2lkdGg9YX0seD1mdW5jdGlvbih0LGUpe2lmKChcInN0cm9rZVwiIT09dHx8ZXx8IW0uY2FsbCh0aGlzKSkmJihcInN0cm9rZVwiPT09dHx8ZXx8IWcuY2FsbCh0aGlzKSkpe2Zvcih2YXIgcixuLGk9W10sYT10aGlzLnBhdGgsbz0wO288YS5sZW5ndGg7bysrKXt2YXIgcz1hW29dO3N3aXRjaChzLnR5cGUpe2Nhc2VcImJlZ2luXCI6aS5wdXNoKHtiZWdpbjohMH0pO2JyZWFrO2Nhc2VcImNsb3NlXCI6aS5wdXNoKHtjbG9zZTohMH0pO2JyZWFrO2Nhc2VcIm10XCI6aS5wdXNoKHtzdGFydDpzLGRlbHRhczpbXSxhYnM6W119KTticmVhaztjYXNlXCJsdFwiOnZhciBjPWkubGVuZ3RoO2lmKGFbby0xXSYmIWlzTmFOKGFbby0xXS54KSYmKHI9W3MueC1hW28tMV0ueCxzLnktYVtvLTFdLnldLGM+MCkpZm9yKDtjPj0wO2MtLSlpZighMCE9PWlbYy0xXS5jbG9zZSYmITAhPT1pW2MtMV0uYmVnaW4pe2lbYy0xXS5kZWx0YXMucHVzaChyKSxpW2MtMV0uYWJzLnB1c2gocyk7YnJlYWt9YnJlYWs7Y2FzZVwiYmN0XCI6cj1bcy54MS1hW28tMV0ueCxzLnkxLWFbby0xXS55LHMueDItYVtvLTFdLngscy55Mi1hW28tMV0ueSxzLngtYVtvLTFdLngscy55LWFbby0xXS55XSxpW2kubGVuZ3RoLTFdLmRlbHRhcy5wdXNoKHIpO2JyZWFrO2Nhc2VcInFjdFwiOnZhciB1PWFbby0xXS54KzIvMyoocy54MS1hW28tMV0ueCksbD1hW28tMV0ueSsyLzMqKHMueTEtYVtvLTFdLnkpLGg9cy54KzIvMyoocy54MS1zLngpLGY9cy55KzIvMyoocy55MS1zLnkpLGQ9cy54LHA9cy55O3I9W3UtYVtvLTFdLngsbC1hW28tMV0ueSxoLWFbby0xXS54LGYtYVtvLTFdLnksZC1hW28tMV0ueCxwLWFbby0xXS55XSxpW2kubGVuZ3RoLTFdLmRlbHRhcy5wdXNoKHIpO2JyZWFrO2Nhc2VcImFyY1wiOmkucHVzaCh7ZGVsdGFzOltdLGFiczpbXSxhcmM6ITB9KSxBcnJheS5pc0FycmF5KGlbaS5sZW5ndGgtMV0uYWJzKSYmaVtpLmxlbmd0aC0xXS5hYnMucHVzaChzKX19bj1lP251bGw6XCJzdHJva2VcIj09PXQ/XCJzdHJva2VcIjpcImZpbGxcIjtmb3IodmFyIHY9ITEsYj0wO2I8aS5sZW5ndGg7YisrKWlmKGlbYl0uYXJjKWZvcih2YXIgeT1pW2JdLmFicyx3PTA7dzx5Lmxlbmd0aDt3Kyspe3ZhciBOPXlbd107XCJhcmNcIj09PU4udHlwZT9fLmNhbGwodGhpcyxOLngsTi55LE4ucmFkaXVzLE4uc3RhcnRBbmdsZSxOLmVuZEFuZ2xlLE4uY291bnRlcmNsb2Nrd2lzZSx2b2lkIDAsZSwhdik6Qy5jYWxsKHRoaXMsTi54LE4ueSksdj0hMH1lbHNlIGlmKCEwPT09aVtiXS5jbG9zZSl0aGlzLnBkZi5pbnRlcm5hbC5vdXQoXCJoXCIpLHY9ITE7ZWxzZSBpZighMCE9PWlbYl0uYmVnaW4pe3ZhciBMPWlbYl0uc3RhcnQueCx4PWlbYl0uc3RhcnQueTtqLmNhbGwodGhpcyxpW2JdLmRlbHRhcyxMLHgpLHY9ITB9biYmUC5jYWxsKHRoaXMsbiksZSYmay5jYWxsKHRoaXMpfX0sQT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnBkZi5pbnRlcm5hbC5nZXRGb250U2l6ZSgpL3RoaXMucGRmLmludGVybmFsLnNjYWxlRmFjdG9yLHI9ZSoodGhpcy5wZGYuaW50ZXJuYWwuZ2V0TGluZUhlaWdodEZhY3RvcigpLTEpO3N3aXRjaCh0aGlzLmN0eC50ZXh0QmFzZWxpbmUpe2Nhc2VcImJvdHRvbVwiOnJldHVybiB0LXI7Y2FzZVwidG9wXCI6cmV0dXJuIHQrZS1yO2Nhc2VcImhhbmdpbmdcIjpyZXR1cm4gdCtlLTIqcjtjYXNlXCJtaWRkbGVcIjpyZXR1cm4gdCtlLzItcjtkZWZhdWx0OnJldHVybiB0fX0sUz1mdW5jdGlvbih0KXtyZXR1cm4gdCt0aGlzLnBkZi5pbnRlcm5hbC5nZXRGb250U2l6ZSgpL3RoaXMucGRmLmludGVybmFsLnNjYWxlRmFjdG9yKih0aGlzLnBkZi5pbnRlcm5hbC5nZXRMaW5lSGVpZ2h0RmFjdG9yKCktMSl9O2QucHJvdG90eXBlLmNyZWF0ZUxpbmVhckdyYWRpZW50PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt9O3JldHVybiB0LmNvbG9yU3RvcHM9W10sdC5hZGRDb2xvclN0b3A9ZnVuY3Rpb24odCxlKXt0aGlzLmNvbG9yU3RvcHMucHVzaChbdCxlXSl9LHQuZ2V0Q29sb3I9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuY29sb3JTdG9wcy5sZW5ndGg/XCIjMDAwMDAwXCI6dGhpcy5jb2xvclN0b3BzWzBdWzFdfSx0LmlzQ2FudmFzR3JhZGllbnQ9ITAsdH0sZC5wcm90b3R5cGUuY3JlYXRlUGF0dGVybj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNyZWF0ZUxpbmVhckdyYWRpZW50KCl9LGQucHJvdG90eXBlLmNyZWF0ZVJhZGlhbEdyYWRpZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3JlYXRlTGluZWFyR3JhZGllbnQoKX07dmFyIF89ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGMpe2Zvcih2YXIgdT1CLmNhbGwodGhpcyxyLG4saSxhKSxsPTA7bDx1Lmxlbmd0aDtsKyspe3ZhciBoPXVbbF07MD09PWwmJihjP0YuY2FsbCh0aGlzLGgueDErdCxoLnkxK2UpOkMuY2FsbCh0aGlzLGgueDErdCxoLnkxK2UpKSxPLmNhbGwodGhpcyx0LGUsaC54MixoLnkyLGgueDMsaC55MyxoLng0LGgueTQpfXM/ay5jYWxsKHRoaXMpOlAuY2FsbCh0aGlzLG8pfSxQPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlXCJzdHJva2VcIjp0aGlzLnBkZi5pbnRlcm5hbC5vdXQoXCJTXCIpO2JyZWFrO2Nhc2VcImZpbGxcIjp0aGlzLnBkZi5pbnRlcm5hbC5vdXQoXCJmXCIpfX0saz1mdW5jdGlvbigpe3RoaXMucGRmLmNsaXAoKSx0aGlzLnBkZi5kaXNjYXJkUGF0aCgpfSxGPWZ1bmN0aW9uKHQsZSl7dGhpcy5wZGYuaW50ZXJuYWwub3V0KHIodCkrXCIgXCIraShlKStcIiBtXCIpfSxJPWZ1bmN0aW9uKHQpe3ZhciBlO3N3aXRjaCh0LmFsaWduKXtjYXNlXCJyaWdodFwiOmNhc2VcImVuZFwiOmU9XCJyaWdodFwiO2JyZWFrO2Nhc2VcImNlbnRlclwiOmU9XCJjZW50ZXJcIjticmVhaztkZWZhdWx0OmU9XCJsZWZ0XCJ9dmFyIHIsbixpLGE9dGhpcy5wZGYuZ2V0VGV4dERpbWVuc2lvbnModC50ZXh0KSxvPUEuY2FsbCh0aGlzLHQueSkscz1TLmNhbGwodGhpcyxvKS1hLmgsaD10aGlzLmN0eC50cmFuc2Zvcm0uYXBwbHlUb1BvaW50KG5ldyBjKHQueCxvKSk7aWYodGhpcy5hdXRvUGFnaW5nKXt2YXIgZj10aGlzLmN0eC50cmFuc2Zvcm0uZGVjb21wb3NlKCksZD1uZXcgbDtkPShkPShkPWQubXVsdGlwbHkoZi50cmFuc2xhdGUpKS5tdWx0aXBseShmLnNrZXcpKS5tdWx0aXBseShmLnNjYWxlKTtmb3IodmFyIHA9dGhpcy5jdHgudHJhbnNmb3JtLmFwcGx5VG9SZWN0YW5nbGUobmV3IHUodC54LG8sYS53LGEuaCkpLGc9ZC5hcHBseVRvUmVjdGFuZ2xlKG5ldyB1KHQueCxzLGEudyxhLmgpKSxtPWIuY2FsbCh0aGlzLGcpLHk9W10sTD0wO0w8bS5sZW5ndGg7TCs9MSktMT09PXkuaW5kZXhPZihtW0xdKSYmeS5wdXNoKG1bTF0pO04oeSk7Zm9yKHZhciBfPXlbMF0sUD15W3kubGVuZ3RoLTFdLGs9XztrPFArMTtrKyspe3RoaXMucGRmLnNldFBhZ2Uoayk7dmFyIEY9MT09PWs/dGhpcy5wb3NZK3RoaXMubWFyZ2luWzBdOnRoaXMubWFyZ2luWzBdLEk9dGhpcy5wZGYuaW50ZXJuYWwucGFnZVNpemUuaGVpZ2h0LXRoaXMucG9zWS10aGlzLm1hcmdpblswXS10aGlzLm1hcmdpblsyXSxDPXRoaXMucGRmLmludGVybmFsLnBhZ2VTaXplLmhlaWdodC10aGlzLm1hcmdpblsyXSxqPUMtdGhpcy5tYXJnaW5bMF0sTz10aGlzLnBkZi5pbnRlcm5hbC5wYWdlU2l6ZS53aWR0aC10aGlzLm1hcmdpblsxXSxCPU8tdGhpcy5tYXJnaW5bM10scT0xPT09az8wOkkrKGstMikqajtpZigwIT09dGhpcy5jdHguY2xpcF9wYXRoLmxlbmd0aCl7dmFyIE09dGhpcy5wYXRoO3I9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmN0eC5jbGlwX3BhdGgpKSx0aGlzLnBhdGg9dyhyLHRoaXMucG9zWCt0aGlzLm1hcmdpblszXSwtMSpxK0YpLHguY2FsbCh0aGlzLFwiZmlsbFwiLCEwKSx0aGlzLnBhdGg9TX12YXIgRT13KFtKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGcpKV0sdGhpcy5wb3NYK3RoaXMubWFyZ2luWzNdLC1xK0YrdGhpcy5jdHgucHJldlBhZ2VMYXN0RWxlbU9mZnNldClbMF07dC5zY2FsZT49LjAxJiYobj10aGlzLnBkZi5pbnRlcm5hbC5nZXRGb250U2l6ZSgpLHRoaXMucGRmLnNldEZvbnRTaXplKG4qdC5zY2FsZSksaT10aGlzLmxpbmVXaWR0aCx0aGlzLmxpbmVXaWR0aD1pKnQuc2NhbGUpO3ZhciBSPVwidGV4dFwiIT09dGhpcy5hdXRvUGFnaW5nO2lmKFJ8fEUueStFLmg8PUMpe2lmKFJ8fEUueT49RiYmRS54PD1PKXt2YXIgRD1SP3QudGV4dDp0aGlzLnBkZi5zcGxpdFRleHRUb1NpemUodC50ZXh0LHQubWF4V2lkdGh8fE8tRS54KVswXSxUPXcoW0pTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocCkpXSx0aGlzLnBvc1grdGhpcy5tYXJnaW5bM10sLXErRit0aGlzLmN0eC5wcmV2UGFnZUxhc3RFbGVtT2Zmc2V0KVswXTtjb25zdCByPVImJihrPl98fGs8UCkmJnYuY2FsbCh0aGlzKTtyJiYodGhpcy5wZGYuc2F2ZUdyYXBoaWNzU3RhdGUoKSx0aGlzLnBkZi5yZWN0KHRoaXMubWFyZ2luWzNdLHRoaXMubWFyZ2luWzBdLEIsaixudWxsKS5jbGlwKCkuZGlzY2FyZFBhdGgoKSksdGhpcy5wZGYudGV4dChELFQueCxULnkse2FuZ2xlOnQuYW5nbGUsYWxpZ246ZSxyZW5kZXJpbmdNb2RlOnQucmVuZGVyaW5nTW9kZX0pLHImJnRoaXMucGRmLnJlc3RvcmVHcmFwaGljc1N0YXRlKCl9fWVsc2UgRS55PEMmJih0aGlzLmN0eC5wcmV2UGFnZUxhc3RFbGVtT2Zmc2V0Kz1DLUUueSk7dC5zY2FsZT49LjAxJiYodGhpcy5wZGYuc2V0Rm9udFNpemUobiksdGhpcy5saW5lV2lkdGg9aSl9fWVsc2UgdC5zY2FsZT49LjAxJiYobj10aGlzLnBkZi5pbnRlcm5hbC5nZXRGb250U2l6ZSgpLHRoaXMucGRmLnNldEZvbnRTaXplKG4qdC5zY2FsZSksaT10aGlzLmxpbmVXaWR0aCx0aGlzLmxpbmVXaWR0aD1pKnQuc2NhbGUpLHRoaXMucGRmLnRleHQodC50ZXh0LGgueCt0aGlzLnBvc1gsaC55K3RoaXMucG9zWSx7YW5nbGU6dC5hbmdsZSxhbGlnbjplLHJlbmRlcmluZ01vZGU6dC5yZW5kZXJpbmdNb2RlLG1heFdpZHRoOnQubWF4V2lkdGh9KSx0LnNjYWxlPj0uMDEmJih0aGlzLnBkZi5zZXRGb250U2l6ZShuKSx0aGlzLmxpbmVXaWR0aD1pKX0sQz1mdW5jdGlvbih0LGUsbixhKXtuPW58fDAsYT1hfHwwLHRoaXMucGRmLmludGVybmFsLm91dChyKHQrbikrXCIgXCIraShlK2EpK1wiIGxcIil9LGo9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLnBkZi5saW5lcyh0LGUscixudWxsLG51bGwpfSxPPWZ1bmN0aW9uKHQscixuLGkscyxjLHUsbCl7dGhpcy5wZGYuaW50ZXJuYWwub3V0KFtlKGEobit0KSksZShvKGkrcikpLGUoYShzK3QpKSxlKG8oYytyKSksZShhKHUrdCkpLGUobyhsK3IpKSxcImNcIl0uam9pbihcIiBcIikpfSxCPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT0yKk1hdGguUEksYT1NYXRoLlBJLzI7ZT5yOyllLT1pO3ZhciBvPU1hdGguYWJzKHItZSk7bzxpJiZuJiYobz1pLW8pO2Zvcih2YXIgcz1bXSxjPW4/LTE6MSx1PWU7bz4xZS01Oyl7dmFyIGw9dStjKk1hdGgubWluKG8sYSk7cy5wdXNoKHEuY2FsbCh0aGlzLHQsdSxsKSksby09TWF0aC5hYnMobC11KSx1PWx9cmV0dXJuIHN9LHE9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPShyLWUpLzIsaT10Kk1hdGguY29zKG4pLGE9dCpNYXRoLnNpbihuKSxvPWkscz0tYSxjPW8qbytzKnMsdT1jK28qaStzKmEsbD00LzMqKE1hdGguc3FydCgyKmMqdSktdSkvKG8qYS1zKmkpLGg9by1sKnMsZj1zK2wqbyxkPWgscD0tZixnPW4rZSxtPU1hdGguY29zKGcpLHY9TWF0aC5zaW4oZyk7cmV0dXJue3gxOnQqTWF0aC5jb3MoZSkseTE6dCpNYXRoLnNpbihlKSx4MjpoKm0tZip2LHkyOmgqditmKm0seDM6ZCptLXAqdix5MzpkKnYrcCptLHg0OnQqTWF0aC5jb3MocikseTQ6dCpNYXRoLnNpbihyKX19LE09ZnVuY3Rpb24odCl7cmV0dXJuIDE4MCp0L01hdGguUEl9LEU9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvPXQrLjUqKHItdCkscz1lKy41KihuLWUpLGM9aSsuNSooci1pKSxsPWErLjUqKG4tYSksaD1NYXRoLm1pbih0LGksbyxjKSxmPU1hdGgubWF4KHQsaSxvLGMpLGQ9TWF0aC5taW4oZSxhLHMsbCkscD1NYXRoLm1heChlLGEscyxsKTtyZXR1cm4gbmV3IHUoaCxkLGYtaCxwLWQpfSxSPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyl7dmFyIGMsbCxoLGYsZCxwLGcsbSx2LGIseSx3LE4sTCx4PXItdCxBPW4tZSxTPWktcixfPWEtbixQPW8taSxrPXMtYTtmb3IobD0wO2w8NDE7bCsrKXY9KGc9KGg9dCsoYz1sLzQwKSp4KStjKigoZD1yK2MqUyktaCkpK2MqKGQrYyooaStjKlAtZCktZyksYj0obT0oZj1lK2MqQSkrYyooKHA9bitjKl8pLWYpKStjKihwK2MqKGErYyprLXApLW0pLDA9PWw/KHk9dix3PWIsTj12LEw9Yik6KHk9TWF0aC5taW4oeSx2KSx3PU1hdGgubWluKHcsYiksTj1NYXRoLm1heChOLHYpLEw9TWF0aC5tYXgoTCxiKSk7cmV0dXJuIG5ldyB1KE1hdGgucm91bmQoeSksTWF0aC5yb3VuZCh3KSxNYXRoLnJvdW5kKE4teSksTWF0aC5yb3VuZChMLXcpKX0sRD1mdW5jdGlvbigpe2lmKCF0aGlzLnByZXZMaW5lRGFzaCYmIXRoaXMuY3R4LmxpbmVEYXNoLmxlbmd0aCYmIXRoaXMuY3R4LmxpbmVEYXNoT2Zmc2V0KXJldHVybjtjb25zdCB0PShlPXRoaXMuY3R4LmxpbmVEYXNoLHI9dGhpcy5jdHgubGluZURhc2hPZmZzZXQsSlNPTi5zdHJpbmdpZnkoe2xpbmVEYXNoOmUsbGluZURhc2hPZmZzZXQ6cn0pKTt2YXIgZSxyO3RoaXMucHJldkxpbmVEYXNoIT09dCYmKHRoaXMucGRmLnNldExpbmVEYXNoKHRoaXMuY3R4LmxpbmVEYXNoLHRoaXMuY3R4LmxpbmVEYXNoT2Zmc2V0KSx0aGlzLnByZXZMaW5lRGFzaD10KX19KEMuQVBJKSxcbi8qKlxuICogQGxpY2Vuc2VcbiAqIGpzUERGIGZpbHRlcnMgUGx1Z0luXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQgQXJhcyBBYmJhc2lcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2VcbiAqL1xuZnVuY3Rpb24oZSl7dmFyIHI9ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYSxvLHMsYyx1LGw7Zm9yKC9bXlxceDAwLVxceEZGXS8udGVzdCh0KSxyPVtdLG49MCxpPSh0Kz1lPVwiXFwwXFwwXFwwXFwwXCIuc2xpY2UodC5sZW5ndGglNHx8NCkpLmxlbmd0aDtpPm47bis9NCkwIT09KGE9KHQuY2hhckNvZGVBdChuKTw8MjQpKyh0LmNoYXJDb2RlQXQobisxKTw8MTYpKyh0LmNoYXJDb2RlQXQobisyKTw8OCkrdC5jaGFyQ29kZUF0KG4rMykpPyhvPShhPSgoYT0oKGE9KChhPShhLShsPWElODUpKS84NSktKHU9YSU4NSkpLzg1KS0oYz1hJTg1KSkvODUpLShzPWElODUpKS84NSklODUsci5wdXNoKG8rMzMscyszMyxjKzMzLHUrMzMsbCszMykpOnIucHVzaCgxMjIpO3JldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lO3I+MDtyLS0pdC5wb3AoKX0ocixlLmxlbmd0aCksU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcscikrXCJ+PlwifSxuPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLGEsbz1TdHJpbmcscz1cImxlbmd0aFwiLGM9MjU1LHU9XCJjaGFyQ29kZUF0XCIsbD1cInNsaWNlXCIsaD1cInJlcGxhY2VcIjtmb3IodFtsXSgtMiksdD10W2xdKDAsLTIpW2hdKC9cXHMvZyxcIlwiKVtoXShcInpcIixcIiEhISEhXCIpLG49W10saT0wLGE9KHQrPWU9XCJ1dXV1dVwiW2xdKHRbc10lNXx8NSkpW3NdO2E+aTtpKz01KXI9NTIyMDA2MjUqKHRbdV0oaSktMzMpKzYxNDEyNSoodFt1XShpKzEpLTMzKSs3MjI1Kih0W3VdKGkrMiktMzMpKzg1Kih0W3VdKGkrMyktMzMpKyh0W3VdKGkrNCktMzMpLG4ucHVzaChjJnI+PjI0LGMmcj4+MTYsYyZyPj44LGMmcik7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWU7cj4wO3ItLSl0LnBvcCgpfShuLGVbc10pLG8uZnJvbUNoYXJDb2RlLmFwcGx5KG8sbil9LGk9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc3BsaXQoXCJcIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybihcIjBcIit0LmNoYXJDb2RlQXQoKS50b1N0cmluZygxNikpLnNsaWNlKC0yKX0pLmpvaW4oXCJcIikrXCI+XCJ9LGE9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFJlZ0V4cCgvXihbMC05QS1GYS1mXXsyfSkrJC8pO2lmKC0xIT09KHQ9dC5yZXBsYWNlKC9cXHMvZyxcIlwiKSkuaW5kZXhPZihcIj5cIikmJih0PXQuc3Vic3RyKDAsdC5pbmRleE9mKFwiPlwiKSkpLHQubGVuZ3RoJTImJih0Kz1cIjBcIiksITE9PT1lLnRlc3QodCkpcmV0dXJuXCJcIjtmb3IodmFyIHI9XCJcIixuPTA7bjx0Lmxlbmd0aDtuKz0yKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoXCIweFwiKyh0W25dK3RbbisxXSkpO3JldHVybiByfSxvPWZ1bmN0aW9uKGUpe2Zvcih2YXIgcj1uZXcgVWludDhBcnJheShlLmxlbmd0aCksbj1lLmxlbmd0aDtuLS07KXJbbl09ZS5jaGFyQ29kZUF0KG4pO3JldHVybihyPXQuemxpYlN5bmMocikpLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiB0K1N0cmluZy5mcm9tQ2hhckNvZGUoZSl9LFwiXCIpfTtlLnByb2Nlc3NEYXRhQnlGaWx0ZXJzPWZ1bmN0aW9uKHQsZSl7dmFyIHM9MCxjPXR8fFwiXCIsdT1bXTtmb3IoXCJzdHJpbmdcIj09dHlwZW9mKGU9ZXx8W10pJiYoZT1bZV0pLHM9MDtzPGUubGVuZ3RoO3MrPTEpc3dpdGNoKGVbc10pe2Nhc2VcIkFTQ0lJODVEZWNvZGVcIjpjYXNlXCIvQVNDSUk4NURlY29kZVwiOmM9bihjKSx1LnB1c2goXCIvQVNDSUk4NUVuY29kZVwiKTticmVhaztjYXNlXCJBU0NJSTg1RW5jb2RlXCI6Y2FzZVwiL0FTQ0lJODVFbmNvZGVcIjpjPXIoYyksdS5wdXNoKFwiL0FTQ0lJODVEZWNvZGVcIik7YnJlYWs7Y2FzZVwiQVNDSUlIZXhEZWNvZGVcIjpjYXNlXCIvQVNDSUlIZXhEZWNvZGVcIjpjPWEoYyksdS5wdXNoKFwiL0FTQ0lJSGV4RW5jb2RlXCIpO2JyZWFrO2Nhc2VcIkFTQ0lJSGV4RW5jb2RlXCI6Y2FzZVwiL0FTQ0lJSGV4RW5jb2RlXCI6Yz1pKGMpLHUucHVzaChcIi9BU0NJSUhleERlY29kZVwiKTticmVhaztjYXNlXCJGbGF0ZUVuY29kZVwiOmNhc2VcIi9GbGF0ZUVuY29kZVwiOmM9byhjKSx1LnB1c2goXCIvRmxhdGVEZWNvZGVcIik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoJ1RoZSBmaWx0ZXI6IFwiJytlW3NdKydcIiBpcyBub3QgaW1wbGVtZW50ZWQnKX1yZXR1cm57ZGF0YTpjLHJldmVyc2VDaGFpbjp1LnJldmVyc2UoKS5qb2luKFwiIFwiKX19fShDLkFQSSksXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBqc1BERiBmaWxlbG9hZGluZyBQbHVnSW5cbiAqIENvcHlyaWdodCAoYykgMjAxOCBBcmFzIEFiYmFzaSAoYXJhcy5hYmJhc2lAZ21haWwuY29tKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZVxuICovXG5mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSxyKXtlPSExIT09ZTt2YXIgbj12b2lkIDAsaT1yZXF1aXJlKFwiZnNcIiksYT1yZXF1aXJlKFwicGF0aFwiKTtpZighcHJvY2Vzcy5wZXJtaXNzaW9uJiYhdGhpcy5hbGxvd0ZzUmVhZCl0aHJvdyBuZXcgRXJyb3IoXCJUcnlpbmcgdG8gcmVhZCBhIGZpbGUgZnJvbSBsb2NhbCBmaWxlIHN5c3RlbS4gVG8gZW5hYmxlIHRoaXMgZmVhdHVyZSBlaXRoZXIgcnVuIG5vZGUgd2l0aCB0aGUgLS1wZXJtaXNzaW9uIGFuZCAtLWFsbG93LWZzLXJlYWQgZmxhZ3Mgb3Igc2V0IHRoZSBqc1BERi5hbGxvd0ZzUmVhZCBwcm9wZXJ0eS5cIik7dHJ5e3Q9aS5yZWFscGF0aFN5bmMoYS5yZXNvbHZlKHQpKX1jYXRjaChvKXtyZXR1cm4gZT92b2lkIDA6dm9pZCByKHZvaWQgMCl9aWYocHJvY2Vzcy5wZXJtaXNzaW9uJiYhcHJvY2Vzcy5wZXJtaXNzaW9uLmhhcyhcImZzLnJlYWRcIix0KSl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZWFkIGZpbGUgJyR7dH0nLiBQZXJtaXNzaW9uIGRlbmllZC5gKTtpZih0aGlzLmFsbG93RnNSZWFkJiYhdGhpcy5hbGxvd0ZzUmVhZC5zb21lKGU9Pntjb25zdCByPWUuaW5kZXhPZihcIipcIik7aWYocj49MCl7Y29uc3Qgbj1lLnN1YnN0cmluZygwLHIpO2xldCBpPWEucmVzb2x2ZShuKTtyZXR1cm4gbi5lbmRzV2l0aChhLnNlcCkmJiFpLmVuZHNXaXRoKGEuc2VwKSYmKGkrPWEuc2VwKSx0LnN0YXJ0c1dpdGgoaSl9cmV0dXJuIHQ9PT1hLnJlc29sdmUoZSl9KSl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZWFkIGZpbGUgJyR7dH0nLiBQZXJtaXNzaW9uIGRlbmllZC5gKTtpZihlKXRyeXtuPWkucmVhZEZpbGVTeW5jKHQse2VuY29kaW5nOlwibGF0aW4xXCJ9KX1jYXRjaChvKXtyZXR1cm59ZWxzZSBpLnJlYWRGaWxlKHQse2VuY29kaW5nOlwibGF0aW4xXCJ9LGZ1bmN0aW9uKHQsZSl7ciYmKHQmJnIodm9pZCAwKSxyKGUpKX0pO3JldHVybiBufXQubG9hZEZpbGU9ZnVuY3Rpb24odCxyLG4pe3JldHVybiBlLmNhbGwodGhpcyx0LHIsbil9LHQuYWxsb3dGc1JlYWQ9dm9pZCAwLHQubG9hZEltYWdlRmlsZT10LmxvYWRGaWxlfShDLkFQSSksXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggRXJpayBLb29wbWFuc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZVxuICovXG5mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuKHIuaHRtbDJjYW52YXM/UHJvbWlzZS5yZXNvbHZlKHIuaHRtbDJjYW52YXMpOlwib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP25ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7dHJ5e3QocmVxdWlyZShcImh0bWwyY2FudmFzXCIpKX1jYXRjaChyKXtlKHIpfX0pOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9uZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe3RyeXtyZXF1aXJlKFtcImh0bWwyY2FudmFzXCJdLHQpfWNhdGNoKHIpe2Uocil9fSk6UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKFwiQ291bGQgbm90IGxvYWQgaHRtbDJjYW52YXNcIikpKS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKFwiQ291bGQgbm90IGxvYWQgaHRtbDJjYW52YXM6IFwiK3QpKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVmYXVsdD90LmRlZmF1bHQ6dH0pfWZ1bmN0aW9uIG4oKXtyZXR1cm4oci5ET01QdXJpZnk/UHJvbWlzZS5yZXNvbHZlKHIuRE9NUHVyaWZ5KTpcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9uZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe3RyeXt0KHJlcXVpcmUoXCJkb21wdXJpZnlcIikpfWNhdGNoKHIpe2Uocil9fSk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP25ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7dHJ5e3JlcXVpcmUoW1wiZG9tcHVyaWZ5XCJdLHQpfWNhdGNoKHIpe2Uocil9fSk6UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKFwiQ291bGQgbm90IGxvYWQgZG9tcHVyaWZ5XCIpKSkuY2F0Y2goZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcihcIkNvdWxkIG5vdCBsb2FkIGRvbXB1cmlmeTogXCIrdCkpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5kZWZhdWx0P3QuZGVmYXVsdDp0fSl9dmFyIGk9ZnVuY3Rpb24odCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuXCJ1bmRlZmluZWRcIj09PWU/XCJ1bmRlZmluZWRcIjpcInN0cmluZ1wiPT09ZXx8dCBpbnN0YW5jZW9mIFN0cmluZz9cInN0cmluZ1wiOlwibnVtYmVyXCI9PT1lfHx0IGluc3RhbmNlb2YgTnVtYmVyP1wibnVtYmVyXCI6XCJmdW5jdGlvblwiPT09ZXx8dCBpbnN0YW5jZW9mIEZ1bmN0aW9uP1wiZnVuY3Rpb25cIjp0JiZ0LmNvbnN0cnVjdG9yPT09QXJyYXk/XCJhcnJheVwiOnQmJjE9PT10Lm5vZGVUeXBlP1wiZWxlbWVudFwiOlwib2JqZWN0XCI9PT1lP1wib2JqZWN0XCI6XCJ1bmtub3duXCJ9LGE9ZnVuY3Rpb24odCxlKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpO2Zvcih2YXIgbiBpbiBlLmNsYXNzTmFtZSYmKHIuY2xhc3NOYW1lPWUuY2xhc3NOYW1lKSxlLmlubmVySFRNTCYmZS5kb21wdXJpZnkmJihyLmlubmVySFRNTD1lLmRvbXB1cmlmeS5zYW5pdGl6ZShlLmlubmVySFRNTCkpLGUuc3R5bGUpci5zdHlsZVtuXT1lLnN0eWxlW25dO3JldHVybiByfSxvPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTM9PT10Lm5vZGVUeXBlP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQubm9kZVZhbHVlKTp0LmNsb25lTm9kZSghMSksbj10LmZpcnN0Q2hpbGQ7bjtuPW4ubmV4dFNpYmxpbmcpITAhPT1lJiYxPT09bi5ub2RlVHlwZSYmXCJTQ1JJUFRcIj09PW4ubm9kZU5hbWV8fHIuYXBwZW5kQ2hpbGQobyhuLGUpKTtyZXR1cm4gMT09PXQubm9kZVR5cGUmJihcIkNBTlZBU1wiPT09dC5ub2RlTmFtZT8oci53aWR0aD10LndpZHRoLHIuaGVpZ2h0PXQuaGVpZ2h0LHIuZ2V0Q29udGV4dChcIjJkXCIpLmRyYXdJbWFnZSh0LDAsMCkpOlwiVEVYVEFSRUFcIiE9PXQubm9kZU5hbWUmJlwiU0VMRUNUXCIhPT10Lm5vZGVOYW1lfHwoci52YWx1ZT10LnZhbHVlKSxyLmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsZnVuY3Rpb24oKXtyLnNjcm9sbFRvcD10LnNjcm9sbFRvcCxyLnNjcm9sbExlZnQ9dC5zY3JvbGxMZWZ0fSwhMCkpLHJ9LHM9ZnVuY3Rpb24gdChlKXt2YXIgcj1PYmplY3QuYXNzaWduKHQuY29udmVydChQcm9taXNlLnJlc29sdmUoKSksSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0LnRlbXBsYXRlKSkpLG49dC5jb252ZXJ0KFByb21pc2UucmVzb2x2ZSgpLHIpO3JldHVybihuPW4uc2V0UHJvZ3Jlc3MoMSx0LDEsW3RdKSkuc2V0KGUpfTsocy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShQcm9taXNlLnByb3RvdHlwZSkpLmNvbnN0cnVjdG9yPXMscy5jb252ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWV8fHMucHJvdG90eXBlLHR9LHMudGVtcGxhdGU9e3Byb3A6e3NyYzpudWxsLGNvbnRhaW5lcjpudWxsLG92ZXJsYXk6bnVsbCxjYW52YXM6bnVsbCxpbWc6bnVsbCxwZGY6bnVsbCxwYWdlU2l6ZTpudWxsLGNhbGxiYWNrOmZ1bmN0aW9uKCl7fX0scHJvZ3Jlc3M6e3ZhbDowLHN0YXRlOm51bGwsbjowLHN0YWNrOltdfSxvcHQ6e2ZpbGVuYW1lOlwiZmlsZS5wZGZcIixtYXJnaW46WzAsMCwwLDBdLGVuYWJsZUxpbmtzOiEwLHg6MCx5OjAsaHRtbDJjYW52YXM6e30sanNQREY6e30sYmFja2dyb3VuZENvbG9yOlwidHJhbnNwYXJlbnRcIn19LHMucHJvdG90eXBlLmZyb209ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy50aGVuKGZ1bmN0aW9uKCl7c3dpdGNoKGU9ZXx8ZnVuY3Rpb24odCl7c3dpdGNoKGkodCkpe2Nhc2VcInN0cmluZ1wiOnJldHVyblwic3RyaW5nXCI7Y2FzZVwiZWxlbWVudFwiOnJldHVyblwiY2FudmFzXCI9PT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/XCJjYW52YXNcIjpcImVsZW1lbnRcIjtkZWZhdWx0OnJldHVyblwidW5rbm93blwifX0odCksZSl7Y2FzZVwic3RyaW5nXCI6cmV0dXJuIHRoaXMudGhlbihuKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNldCh7c3JjOmEoXCJkaXZcIix7aW5uZXJIVE1MOnQsZG9tcHVyaWZ5OmV9KX0pfSk7Y2FzZVwiZWxlbWVudFwiOnJldHVybiB0aGlzLnNldCh7c3JjOnR9KTtjYXNlXCJjYW52YXNcIjpyZXR1cm4gdGhpcy5zZXQoe2NhbnZhczp0fSk7Y2FzZVwiaW1nXCI6cmV0dXJuIHRoaXMuc2V0KHtpbWc6dH0pO2RlZmF1bHQ6cmV0dXJuIHRoaXMuZXJyb3IoXCJVbmtub3duIHNvdXJjZSB0eXBlLlwiKX19KX0scy5wcm90b3R5cGUudG89ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2VcImNvbnRhaW5lclwiOnJldHVybiB0aGlzLnRvQ29udGFpbmVyKCk7Y2FzZVwiY2FudmFzXCI6cmV0dXJuIHRoaXMudG9DYW52YXMoKTtjYXNlXCJpbWdcIjpyZXR1cm4gdGhpcy50b0ltZygpO2Nhc2VcInBkZlwiOnJldHVybiB0aGlzLnRvUGRmKCk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5lcnJvcihcIkludmFsaWQgdGFyZ2V0LlwiKX19LHMucHJvdG90eXBlLnRvQ29udGFpbmVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGhlbkxpc3QoW2Z1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJvcC5zcmN8fHRoaXMuZXJyb3IoXCJDYW5ub3QgZHVwbGljYXRlIC0gbm8gc291cmNlIEhUTUwuXCIpfSxmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb3AucGFnZVNpemV8fHRoaXMuc2V0UGFnZVNpemUoKX1dKS50aGVuKGZ1bmN0aW9uKCl7dmFyIHQ9e3Bvc2l0aW9uOlwicmVsYXRpdmVcIixkaXNwbGF5OlwiaW5saW5lLWJsb2NrXCIsd2lkdGg6KFwibnVtYmVyXCIhPXR5cGVvZiB0aGlzLm9wdC53aWR0aHx8aXNOYU4odGhpcy5vcHQud2lkdGgpfHxcIm51bWJlclwiIT10eXBlb2YgdGhpcy5vcHQud2luZG93V2lkdGh8fGlzTmFOKHRoaXMub3B0LndpbmRvd1dpZHRoKT9NYXRoLm1heCh0aGlzLnByb3Auc3JjLmNsaWVudFdpZHRoLHRoaXMucHJvcC5zcmMuc2Nyb2xsV2lkdGgsdGhpcy5wcm9wLnNyYy5vZmZzZXRXaWR0aCk6dGhpcy5vcHQud2luZG93V2lkdGgpK1wicHhcIixsZWZ0OjAscmlnaHQ6MCx0b3A6MCxtYXJnaW46XCJhdXRvXCIsYmFja2dyb3VuZENvbG9yOnRoaXMub3B0LmJhY2tncm91bmRDb2xvcn0sZT1vKHRoaXMucHJvcC5zcmMsdGhpcy5vcHQuaHRtbDJjYW52YXMuamF2YXNjcmlwdEVuYWJsZWQpO1wiQk9EWVwiPT09ZS50YWdOYW1lJiYodC5oZWlnaHQ9TWF0aC5tYXgoZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQsZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQpK1wicHhcIiksdGhpcy5wcm9wLm92ZXJsYXk9YShcImRpdlwiLHtjbGFzc05hbWU6XCJodG1sMnBkZl9fb3ZlcmxheVwiLHN0eWxlOntwb3NpdGlvbjpcImZpeGVkXCIsb3ZlcmZsb3c6XCJoaWRkZW5cIix6SW5kZXg6MWUzLGxlZnQ6XCItMTAwMDAwcHhcIixyaWdodDowLGJvdHRvbTowLHRvcDowfX0pLHRoaXMucHJvcC5jb250YWluZXI9YShcImRpdlwiLHtjbGFzc05hbWU6XCJodG1sMnBkZl9fY29udGFpbmVyXCIsc3R5bGU6dH0pLHRoaXMucHJvcC5jb250YWluZXIuYXBwZW5kQ2hpbGQoZSksdGhpcy5wcm9wLmNvbnRhaW5lci5maXJzdENoaWxkLmFwcGVuZENoaWxkKGEoXCJkaXZcIix7c3R5bGU6e2NsZWFyOlwiYm90aFwiLGJvcmRlcjpcIjAgbm9uZSB0cmFuc3BhcmVudFwiLG1hcmdpbjowLHBhZGRpbmc6MCxoZWlnaHQ6MH19KSksdGhpcy5wcm9wLmNvbnRhaW5lci5zdHlsZS5mbG9hdD1cIm5vbmVcIix0aGlzLnByb3Aub3ZlcmxheS5hcHBlbmRDaGlsZCh0aGlzLnByb3AuY29udGFpbmVyKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMucHJvcC5vdmVybGF5KSx0aGlzLnByb3AuY29udGFpbmVyLmZpcnN0Q2hpbGQuc3R5bGUucG9zaXRpb249XCJyZWxhdGl2ZVwiLHRoaXMucHJvcC5jb250YWluZXIuaGVpZ2h0PU1hdGgubWF4KHRoaXMucHJvcC5jb250YWluZXIuZmlyc3RDaGlsZC5jbGllbnRIZWlnaHQsdGhpcy5wcm9wLmNvbnRhaW5lci5maXJzdENoaWxkLnNjcm9sbEhlaWdodCx0aGlzLnByb3AuY29udGFpbmVyLmZpcnN0Q2hpbGQub2Zmc2V0SGVpZ2h0KStcInB4XCJ9KX0scy5wcm90b3R5cGUudG9DYW52YXM9ZnVuY3Rpb24oKXt2YXIgdD1bZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQuYm9keS5jb250YWlucyh0aGlzLnByb3AuY29udGFpbmVyKXx8dGhpcy50b0NvbnRhaW5lcigpfV07cmV0dXJuIHRoaXMudGhlbkxpc3QodCkudGhlbihlKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdC5hc3NpZ24oe30sdGhpcy5vcHQuaHRtbDJjYW52YXMpO3JldHVybiBkZWxldGUgZS5vbnJlbmRlcmVkLHQodGhpcy5wcm9wLmNvbnRhaW5lcixlKX0pLnRoZW4oZnVuY3Rpb24odCl7KHRoaXMub3B0Lmh0bWwyY2FudmFzLm9ucmVuZGVyZWR8fGZ1bmN0aW9uKCl7fSkodCksdGhpcy5wcm9wLmNhbnZhcz10LGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5wcm9wLm92ZXJsYXkpfSl9LHMucHJvdG90eXBlLnRvQ29udGV4dDJkPWZ1bmN0aW9uKCl7dmFyIHQ9W2Z1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmJvZHkuY29udGFpbnModGhpcy5wcm9wLmNvbnRhaW5lcil8fHRoaXMudG9Db250YWluZXIoKX1dO3JldHVybiB0aGlzLnRoZW5MaXN0KHQpLnRoZW4oZSkudGhlbihmdW5jdGlvbih0KXt2YXIgZT10aGlzLm9wdC5qc1BERixyPXRoaXMub3B0LmZvbnRGYWNlcyxuPVwibnVtYmVyXCIhPXR5cGVvZiB0aGlzLm9wdC53aWR0aHx8aXNOYU4odGhpcy5vcHQud2lkdGgpfHxcIm51bWJlclwiIT10eXBlb2YgdGhpcy5vcHQud2luZG93V2lkdGh8fGlzTmFOKHRoaXMub3B0LndpbmRvd1dpZHRoKT8xOnRoaXMub3B0LndpZHRoL3RoaXMub3B0LndpbmRvd1dpZHRoLGk9T2JqZWN0LmFzc2lnbih7YXN5bmM6ITAsYWxsb3dUYWludDohMCxzY2FsZTpuLHNjcm9sbFg6dGhpcy5vcHQuc2Nyb2xsWHx8MCxzY3JvbGxZOnRoaXMub3B0LnNjcm9sbFl8fDAsYmFja2dyb3VuZENvbG9yOlwiI2ZmZmZmZlwiLGltYWdlVGltZW91dDoxNWUzLGxvZ2dpbmc6ITAscHJveHk6bnVsbCxyZW1vdmVDb250YWluZXI6ITAsZm9yZWlnbk9iamVjdFJlbmRlcmluZzohMSx1c2VDT1JTOiExfSx0aGlzLm9wdC5odG1sMmNhbnZhcyk7aWYoZGVsZXRlIGkub25yZW5kZXJlZCxlLmNvbnRleHQyZC5hdXRvUGFnaW5nPXZvaWQgMD09PXRoaXMub3B0LmF1dG9QYWdpbmd8fHRoaXMub3B0LmF1dG9QYWdpbmcsZS5jb250ZXh0MmQucG9zWD10aGlzLm9wdC54LGUuY29udGV4dDJkLnBvc1k9dGhpcy5vcHQueSxlLmNvbnRleHQyZC5tYXJnaW49dGhpcy5vcHQubWFyZ2luLGUuY29udGV4dDJkLmZvbnRGYWNlcz1yLHIpZm9yKHZhciBhPTA7YTxyLmxlbmd0aDsrK2Epe3ZhciBvPXJbYV0scz1vLnNyYy5maW5kKGZ1bmN0aW9uKHQpe3JldHVyblwidHJ1ZXR5cGVcIj09PXQuZm9ybWF0fSk7cyYmZS5hZGRGb250KHMudXJsLG8ucmVmLm5hbWUsby5yZWYuc3R5bGUpfXJldHVybiBpLndpbmRvd0hlaWdodD1pLndpbmRvd0hlaWdodHx8MCxpLndpbmRvd0hlaWdodD0wPT1pLndpbmRvd0hlaWdodD9NYXRoLm1heCh0aGlzLnByb3AuY29udGFpbmVyLmNsaWVudEhlaWdodCx0aGlzLnByb3AuY29udGFpbmVyLnNjcm9sbEhlaWdodCx0aGlzLnByb3AuY29udGFpbmVyLm9mZnNldEhlaWdodCk6aS53aW5kb3dIZWlnaHQsZS5jb250ZXh0MmQuc2F2ZSghMCksdCh0aGlzLnByb3AuY29udGFpbmVyLGkpfSkudGhlbihmdW5jdGlvbih0KXt0aGlzLm9wdC5qc1BERi5jb250ZXh0MmQucmVzdG9yZSghMCksKHRoaXMub3B0Lmh0bWwyY2FudmFzLm9ucmVuZGVyZWR8fGZ1bmN0aW9uKCl7fSkodCksdGhpcy5wcm9wLmNhbnZhcz10LGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5wcm9wLm92ZXJsYXkpfSl9LHMucHJvdG90eXBlLnRvSW1nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGhlbkxpc3QoW2Z1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJvcC5jYW52YXN8fHRoaXMudG9DYW52YXMoKX1dKS50aGVuKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wcm9wLmNhbnZhcy50b0RhdGFVUkwoXCJpbWFnZS9cIit0aGlzLm9wdC5pbWFnZS50eXBlLHRoaXMub3B0LmltYWdlLnF1YWxpdHkpO3RoaXMucHJvcC5pbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImltZ1wiKSx0aGlzLnByb3AuaW1nLnNyYz10fSl9LHMucHJvdG90eXBlLnRvUGRmPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGhlbkxpc3QoW2Z1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9Db250ZXh0MmQoKX1dKS50aGVuKGZ1bmN0aW9uKCl7dGhpcy5wcm9wLnBkZj10aGlzLnByb3AucGRmfHx0aGlzLm9wdC5qc1BERn0pfSxzLnByb3RvdHlwZS5vdXRwdXQ9ZnVuY3Rpb24odCxlLHIpe3JldHVyblwiaW1nXCI9PT0ocj1yfHxcInBkZlwiKS50b0xvd2VyQ2FzZSgpfHxcImltYWdlXCI9PT1yLnRvTG93ZXJDYXNlKCk/dGhpcy5vdXRwdXRJbWcodCxlKTp0aGlzLm91dHB1dFBkZih0LGUpfSxzLnByb3RvdHlwZS5vdXRwdXRQZGY9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy50aGVuTGlzdChbZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9wLnBkZnx8dGhpcy50b1BkZigpfV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9wLnBkZi5vdXRwdXQodCxlKX0pfSxzLnByb3RvdHlwZS5vdXRwdXRJbWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbkxpc3QoW2Z1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJvcC5pbWd8fHRoaXMudG9JbWcoKX1dKS50aGVuKGZ1bmN0aW9uKCl7c3dpdGNoKHQpe2Nhc2Ugdm9pZCAwOmNhc2VcImltZ1wiOnJldHVybiB0aGlzLnByb3AuaW1nO2Nhc2VcImRhdGF1cmlzdHJpbmdcIjpjYXNlXCJkYXRhdXJsc3RyaW5nXCI6cmV0dXJuIHRoaXMucHJvcC5pbWcuc3JjO2Nhc2VcImRhdGF1cmlcIjpjYXNlXCJkYXRhdXJsXCI6cmV0dXJuIGRvY3VtZW50LmxvY2F0aW9uLmhyZWY9dGhpcy5wcm9wLmltZy5zcmM7ZGVmYXVsdDp0aHJvdydJbWFnZSBvdXRwdXQgdHlwZSBcIicrdCsnXCIgaXMgbm90IHN1cHBvcnRlZC4nfX0pfSxzLnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRoZW5MaXN0KFtmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb3AucGRmfHx0aGlzLnRvUGRmKCl9XSkuc2V0KHQ/e2ZpbGVuYW1lOnR9Om51bGwpLnRoZW4oZnVuY3Rpb24oKXt0aGlzLnByb3AucGRmLnNhdmUodGhpcy5vcHQuZmlsZW5hbWUpfSl9LHMucHJvdG90eXBlLmRvQ2FsbGJhY2s9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aGVuTGlzdChbZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9wLnBkZnx8dGhpcy50b1BkZigpfV0pLnRoZW4oZnVuY3Rpb24oKXt0aGlzLnByb3AuY2FsbGJhY2sodGhpcy5wcm9wLnBkZil9KX0scy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe2lmKFwib2JqZWN0XCIhPT1pKHQpKXJldHVybiB0aGlzO3ZhciBlPU9iamVjdC5rZXlzKHR8fHt9KS5tYXAoZnVuY3Rpb24oZSl7aWYoZSBpbiBzLnRlbXBsYXRlLnByb3ApcmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5wcm9wW2VdPXRbZV19O3N3aXRjaChlKXtjYXNlXCJtYXJnaW5cIjpyZXR1cm4gdGhpcy5zZXRNYXJnaW4uYmluZCh0aGlzLHQubWFyZ2luKTtjYXNlXCJqc1BERlwiOnJldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdC5qc1BERj10LmpzUERGLHRoaXMuc2V0UGFnZVNpemUoKX07Y2FzZVwicGFnZVNpemVcIjpyZXR1cm4gdGhpcy5zZXRQYWdlU2l6ZS5iaW5kKHRoaXMsdC5wYWdlU2l6ZSk7ZGVmYXVsdDpyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLm9wdFtlXT10W2VdfX19LHRoaXMpO3JldHVybiB0aGlzLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aGVuTGlzdChlKX0pfSxzLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy50aGVuKGZ1bmN0aW9uKCl7dmFyIHI9dCBpbiBzLnRlbXBsYXRlLnByb3A/dGhpcy5wcm9wW3RdOnRoaXMub3B0W3RdO3JldHVybiBlP2Uocik6cn0pfSxzLnByb3RvdHlwZS5zZXRNYXJnaW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbigpe3N3aXRjaChpKHQpKXtjYXNlXCJudW1iZXJcIjp0PVt0LHQsdCx0XTtjYXNlXCJhcnJheVwiOmlmKDI9PT10Lmxlbmd0aCYmKHQ9W3RbMF0sdFsxXSx0WzBdLHRbMV1dKSw0PT09dC5sZW5ndGgpYnJlYWs7ZGVmYXVsdDpyZXR1cm4gdGhpcy5lcnJvcihcIkludmFsaWQgbWFyZ2luIGFycmF5LlwiKX10aGlzLm9wdC5tYXJnaW49dH0pLnRoZW4odGhpcy5zZXRQYWdlU2l6ZSl9LHMucHJvdG90eXBlLnNldFBhZ2VTaXplPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCxlKXtyZXR1cm4gTWF0aC5mbG9vcih0KmUvNzIqOTYpfXJldHVybiB0aGlzLnRoZW4oZnVuY3Rpb24oKXsodD10fHxDLmdldFBhZ2VTaXplKHRoaXMub3B0LmpzUERGKSkuaGFzT3duUHJvcGVydHkoXCJpbm5lclwiKXx8KHQuaW5uZXI9e3dpZHRoOnQud2lkdGgtdGhpcy5vcHQubWFyZ2luWzFdLXRoaXMub3B0Lm1hcmdpblszXSxoZWlnaHQ6dC5oZWlnaHQtdGhpcy5vcHQubWFyZ2luWzBdLXRoaXMub3B0Lm1hcmdpblsyXX0sdC5pbm5lci5weD17d2lkdGg6ZSh0LmlubmVyLndpZHRoLHQuayksaGVpZ2h0OmUodC5pbm5lci5oZWlnaHQsdC5rKX0sdC5pbm5lci5yYXRpbz10LmlubmVyLmhlaWdodC90LmlubmVyLndpZHRoKSx0aGlzLnByb3AucGFnZVNpemU9dH0pfSxzLnByb3RvdHlwZS5zZXRQcm9ncmVzcz1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gbnVsbCE9dCYmKHRoaXMucHJvZ3Jlc3MudmFsPXQpLG51bGwhPWUmJih0aGlzLnByb2dyZXNzLnN0YXRlPWUpLG51bGwhPXImJih0aGlzLnByb2dyZXNzLm49ciksbnVsbCE9biYmKHRoaXMucHJvZ3Jlc3Muc3RhY2s9biksdGhpcy5wcm9ncmVzcy5yYXRpbz10aGlzLnByb2dyZXNzLnZhbC90aGlzLnByb2dyZXNzLnN0YXRlLHRoaXN9LHMucHJvdG90eXBlLnVwZGF0ZVByb2dyZXNzPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLnNldFByb2dyZXNzKHQ/dGhpcy5wcm9ncmVzcy52YWwrdDpudWxsLGV8fG51bGwscj90aGlzLnByb2dyZXNzLm4rcjpudWxsLG4/dGhpcy5wcm9ncmVzcy5zdGFjay5jb25jYXQobik6bnVsbCl9LHMucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzO3JldHVybiB0aGlzLnRoZW5Db3JlKHQsZSxmdW5jdGlvbih0LGUpe3JldHVybiByLnVwZGF0ZVByb2dyZXNzKG51bGwsbnVsbCwxLFt0XSksUHJvbWlzZS5wcm90b3R5cGUudGhlbi5jYWxsKHRoaXMsZnVuY3Rpb24oZSl7cmV0dXJuIHIudXBkYXRlUHJvZ3Jlc3MobnVsbCx0KSxlfSkudGhlbih0LGUpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHIudXBkYXRlUHJvZ3Jlc3MoMSksdH0pfSl9LHMucHJvdG90eXBlLnRoZW5Db3JlPWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fFByb21pc2UucHJvdG90eXBlLnRoZW47dmFyIG49dGhpczt0JiYodD10LmJpbmQobikpLGUmJihlPWUuYmluZChuKSk7dmFyIGk9LTEhPT1Qcm9taXNlLnRvU3RyaW5nKCkuaW5kZXhPZihcIltuYXRpdmUgY29kZV1cIikmJlwiUHJvbWlzZVwiPT09UHJvbWlzZS5uYW1lP246cy5jb252ZXJ0KE9iamVjdC5hc3NpZ24oe30sbiksUHJvbWlzZS5wcm90b3R5cGUpLGE9ci5jYWxsKGksdCxlKTtyZXR1cm4gcy5jb252ZXJ0KGEsbi5fX3Byb3RvX18pfSxzLnByb3RvdHlwZS50aGVuRXh0ZXJuYWw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gUHJvbWlzZS5wcm90b3R5cGUudGhlbi5jYWxsKHRoaXMsdCxlKX0scy5wcm90b3R5cGUudGhlbkxpc3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2U9ZS50aGVuQ29yZSh0KX0pLGV9LHMucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKHQpe3QmJih0PXQuYmluZCh0aGlzKSk7dmFyIGU9UHJvbWlzZS5wcm90b3R5cGUuY2F0Y2guY2FsbCh0aGlzLHQpO3JldHVybiBzLmNvbnZlcnQoZSx0aGlzKX0scy5wcm90b3R5cGUuY2F0Y2hFeHRlcm5hbD1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5wcm90b3R5cGUuY2F0Y2guY2FsbCh0aGlzLHQpfSxzLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKHQpfSl9LHMucHJvdG90eXBlLnVzaW5nPXMucHJvdG90eXBlLnNldCxzLnByb3RvdHlwZS5zYXZlQXM9cy5wcm90b3R5cGUuc2F2ZSxzLnByb3RvdHlwZS5leHBvcnQ9cy5wcm90b3R5cGUub3V0cHV0LHMucHJvdG90eXBlLnJ1bj1zLnByb3RvdHlwZS50aGVuLEMuZ2V0UGFnZVNpemU9ZnVuY3Rpb24odCxlLHIpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiB0KXt2YXIgbj10O3Q9bi5vcmllbnRhdGlvbixlPW4udW5pdHx8ZSxyPW4uZm9ybWF0fHxyfWU9ZXx8XCJtbVwiLHI9cnx8XCJhNFwiLHQ9KFwiXCIrKHR8fFwiUFwiKSkudG9Mb3dlckNhc2UoKTt2YXIgaSxhPShcIlwiK3IpLnRvTG93ZXJDYXNlKCksbz17YTA6WzIzODMuOTQsMzM3MC4zOV0sYTE6WzE2ODMuNzgsMjM4My45NF0sYTI6WzExOTAuNTUsMTY4My43OF0sYTM6Wzg0MS44OSwxMTkwLjU1XSxhNDpbNTk1LjI4LDg0MS44OV0sYTU6WzQxOS41Myw1OTUuMjhdLGE2OlsyOTcuNjQsNDE5LjUzXSxhNzpbMjA5Ljc2LDI5Ny42NF0sYTg6WzE0Ny40LDIwOS43Nl0sYTk6WzEwNC44OCwxNDcuNF0sYTEwOls3My43LDEwNC44OF0sYjA6WzI4MzQuNjUsNDAwOC4xOV0sYjE6WzIwMDQuMDksMjgzNC42NV0sYjI6WzE0MTcuMzIsMjAwNC4wOV0sYjM6WzEwMDAuNjMsMTQxNy4zMl0sYjQ6WzcwOC42NiwxMDAwLjYzXSxiNTpbNDk4LjksNzA4LjY2XSxiNjpbMzU0LjMzLDQ5OC45XSxiNzpbMjQ5LjQ1LDM1NC4zM10sYjg6WzE3NS43NSwyNDkuNDVdLGI5OlsxMjQuNzIsMTc1Ljc1XSxiMTA6Wzg3Ljg3LDEyNC43Ml0sYzA6WzI1OTkuMzcsMzY3Ni41NF0sYzE6WzE4MzYuODUsMjU5OS4zN10sYzI6WzEyOTguMjcsMTgzNi44NV0sYzM6WzkxOC40MywxMjk4LjI3XSxjNDpbNjQ5LjEzLDkxOC40M10sYzU6WzQ1OS4yMSw2NDkuMTNdLGM2OlszMjMuMTUsNDU5LjIxXSxjNzpbMjI5LjYxLDMyMy4xNV0sYzg6WzE2MS41NywyMjkuNjFdLGM5OlsxMTMuMzksMTYxLjU3XSxjMTA6Wzc5LjM3LDExMy4zOV0sZGw6WzMxMS44MSw2MjMuNjJdLGxldHRlcjpbNjEyLDc5Ml0sXCJnb3Zlcm5tZW50LWxldHRlclwiOls1NzYsNzU2XSxsZWdhbDpbNjEyLDEwMDhdLFwianVuaW9yLWxlZ2FsXCI6WzU3NiwzNjBdLGxlZGdlcjpbMTIyNCw3OTJdLHRhYmxvaWQ6Wzc5MiwxMjI0XSxcImNyZWRpdC1jYXJkXCI6WzE1MywyNDNdfTtzd2l0Y2goZSl7Y2FzZVwicHRcIjppPTE7YnJlYWs7Y2FzZVwibW1cIjppPTcyLzI1LjQ7YnJlYWs7Y2FzZVwiY21cIjppPTcyLzIuNTQ7YnJlYWs7Y2FzZVwiaW5cIjppPTcyO2JyZWFrO2Nhc2VcInB4XCI6aT0uNzU7YnJlYWs7Y2FzZVwicGNcIjpjYXNlXCJlbVwiOmk9MTI7YnJlYWs7Y2FzZVwiZXhcIjppPTY7YnJlYWs7ZGVmYXVsdDp0aHJvd1wiSW52YWxpZCB1bml0OiBcIitlfXZhciBzLGM9MCx1PTA7aWYoby5oYXNPd25Qcm9wZXJ0eShhKSljPW9bYV1bMV0vaSx1PW9bYV1bMF0vaTtlbHNlIHRyeXtjPXJbMV0sdT1yWzBdfWNhdGNoKGwpe3Rocm93IG5ldyBFcnJvcihcIkludmFsaWQgZm9ybWF0OiBcIityKX1pZihcInBcIj09PXR8fFwicG9ydHJhaXRcIj09PXQpdD1cInBcIix1PmMmJihzPXUsdT1jLGM9cyk7ZWxzZXtpZihcImxcIiE9PXQmJlwibGFuZHNjYXBlXCIhPT10KXRocm93XCJJbnZhbGlkIG9yaWVudGF0aW9uOiBcIit0O3Q9XCJsXCIsYz51JiYocz11LHU9YyxjPXMpfXJldHVybnt3aWR0aDp1LGhlaWdodDpjLHVuaXQ6ZSxrOmksb3JpZW50YXRpb246dH19LHQuaHRtbD1mdW5jdGlvbih0LGUpeyhlPWV8fHt9KS5jYWxsYmFjaz1lLmNhbGxiYWNrfHxmdW5jdGlvbigpe30sZS5odG1sMmNhbnZhcz1lLmh0bWwyY2FudmFzfHx7fSxlLmh0bWwyY2FudmFzLmNhbnZhcz1lLmh0bWwyY2FudmFzLmNhbnZhc3x8dGhpcy5jYW52YXMsZS5qc1BERj1lLmpzUERGfHx0aGlzLGUuZm9udEZhY2VzPWUuZm9udEZhY2VzP2UuZm9udEZhY2VzLm1hcChfdCk6bnVsbDt2YXIgcj1uZXcgcyhlKTtyZXR1cm4gZS53b3JrZXI/cjpyLmZyb20odCkuZG9DYWxsYmFjaygpfX0oQy5BUEkpLEMuQVBJLmFkZEpTPWZ1bmN0aW9uKHQpe3ZhciBlLHI7Y29uc3Qgbj1mdW5jdGlvbih0KXtsZXQgZT1cIlwiO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtjb25zdCBuPXRbcl07aWYoXCIoXCI9PT1ufHxcIilcIj09PW4pe2xldCBpPTA7Zm9yKGxldCBlPXItMTtlPj0wJiZcIlxcXFxcIj09PXRbZV07ZS0tKWkrKztlKz1pJTI9PTA/XCJcXFxcXCIrbjpufWVsc2UgZSs9bn1yZXR1cm4gZX0odCk7cmV0dXJuIHRoaXMuaW50ZXJuYWwuZXZlbnRzLnN1YnNjcmliZShcInBvc3RQdXRSZXNvdXJjZXNcIixmdW5jdGlvbigpe2U9dGhpcy5pbnRlcm5hbC5uZXdPYmplY3QoKSx0aGlzLmludGVybmFsLm91dChcIjw8XCIpLHRoaXMuaW50ZXJuYWwub3V0KFwiL05hbWVzIFsoRW1iZWRkZWRKUykgXCIrKGUrMSkrXCIgMCBSXVwiKSx0aGlzLmludGVybmFsLm91dChcIj4+XCIpLHRoaXMuaW50ZXJuYWwub3V0KFwiZW5kb2JqXCIpLHI9dGhpcy5pbnRlcm5hbC5uZXdPYmplY3QoKSx0aGlzLmludGVybmFsLm91dChcIjw8XCIpLHRoaXMuaW50ZXJuYWwub3V0KFwiL1MgL0phdmFTY3JpcHRcIiksdGhpcy5pbnRlcm5hbC5vdXQoXCIvSlMgKFwiK24rXCIpXCIpLHRoaXMuaW50ZXJuYWwub3V0KFwiPj5cIiksdGhpcy5pbnRlcm5hbC5vdXQoXCJlbmRvYmpcIil9KSx0aGlzLmludGVybmFsLmV2ZW50cy5zdWJzY3JpYmUoXCJwdXRDYXRhbG9nXCIsZnVuY3Rpb24oKXt2b2lkIDAhPT1lJiZ2b2lkIDAhPT1yJiZ0aGlzLmludGVybmFsLm91dChcIi9OYW1lcyA8PC9KYXZhU2NyaXB0IFwiK2UrXCIgMCBSPj5cIil9KSx0aGlzfSxcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAoYykgMjAxNCBTdGV2ZW4gU3B1bmdpbiAoVHdlbHZlVG9uZSBMTEMpICBzdGV2ZW5AdHdlbHZldG9uZS50dlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZVxuICovXG5mdW5jdGlvbih0KXt2YXIgZTt0LmV2ZW50cy5wdXNoKFtcInBvc3RQdXRSZXNvdXJjZXNcIixmdW5jdGlvbigpe3ZhciB0PXRoaXMscj0vXihcXGQrKSAwIG9iaiQvO2lmKHRoaXMub3V0bGluZS5yb290LmNoaWxkcmVuLmxlbmd0aD4wKWZvcih2YXIgbj10Lm91dGxpbmUucmVuZGVyKCkuc3BsaXQoL1xcclxcbi8pLGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIGE9bltpXSxvPXIuZXhlYyhhKTtpZihudWxsIT1vKXt2YXIgcz1vWzFdO3QuaW50ZXJuYWwubmV3T2JqZWN0RGVmZXJyZWRCZWdpbihzLCExKX10LmludGVybmFsLndyaXRlKGEpfWlmKHRoaXMub3V0bGluZS5jcmVhdGVOYW1lZERlc3RpbmF0aW9ucyl7dmFyIGM9dGhpcy5pbnRlcm5hbC5wYWdlcy5sZW5ndGgsdT1bXTtmb3IoaT0wO2k8YztpKyspe3ZhciBsPXQuaW50ZXJuYWwubmV3T2JqZWN0KCk7dS5wdXNoKGwpO3ZhciBoPXQuaW50ZXJuYWwuZ2V0UGFnZUluZm8oaSsxKTt0LmludGVybmFsLndyaXRlKFwiPDwgL0RbXCIraC5vYmpJZCtcIiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbF0+PiBlbmRvYmpcIil9dmFyIGY9dC5pbnRlcm5hbC5uZXdPYmplY3QoKTtmb3IodC5pbnRlcm5hbC53cml0ZShcIjw8IC9OYW1lcyBbIFwiKSxpPTA7aTx1Lmxlbmd0aDtpKyspdC5pbnRlcm5hbC53cml0ZShcIihwYWdlX1wiKyhpKzEpK1wiKVwiK3VbaV0rXCIgMCBSXCIpO3QuaW50ZXJuYWwud3JpdGUoXCIgXSA+PlwiLFwiZW5kb2JqXCIpLGU9dC5pbnRlcm5hbC5uZXdPYmplY3QoKSx0LmludGVybmFsLndyaXRlKFwiPDwgL0Rlc3RzIFwiK2YrXCIgMCBSXCIpLHQuaW50ZXJuYWwud3JpdGUoXCI+PlwiLFwiZW5kb2JqXCIpfX1dKSx0LmV2ZW50cy5wdXNoKFtcInB1dENhdGFsb2dcIixmdW5jdGlvbigpe3ZhciB0PXRoaXM7dC5vdXRsaW5lLnJvb3QuY2hpbGRyZW4ubGVuZ3RoPjAmJih0LmludGVybmFsLndyaXRlKFwiL091dGxpbmVzXCIsdGhpcy5vdXRsaW5lLm1ha2VSZWYodGhpcy5vdXRsaW5lLnJvb3QpKSx0aGlzLm91dGxpbmUuY3JlYXRlTmFtZWREZXN0aW5hdGlvbnMmJnQuaW50ZXJuYWwud3JpdGUoXCIvTmFtZXMgXCIrZStcIiAwIFJcIikpfV0pLHQuZXZlbnRzLnB1c2goW1wiaW5pdGlhbGl6ZWRcIixmdW5jdGlvbigpe3ZhciB0PXRoaXM7dC5vdXRsaW5lPXtjcmVhdGVOYW1lZERlc3RpbmF0aW9uczohMSxyb290OntjaGlsZHJlbjpbXX19LHQub3V0bGluZS5hZGQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXt0aXRsZTplLG9wdGlvbnM6cixjaGlsZHJlbjpbXX07cmV0dXJuIG51bGw9PXQmJih0PXRoaXMucm9vdCksdC5jaGlsZHJlbi5wdXNoKG4pLG59LHQub3V0bGluZS5yZW5kZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdHg9e30sdGhpcy5jdHgudmFsPVwiXCIsdGhpcy5jdHgucGRmPXQsdGhpcy5nZW5JZHNfcih0aGlzLnJvb3QpLHRoaXMucmVuZGVyUm9vdCh0aGlzLnJvb3QpLHRoaXMucmVuZGVySXRlbXModGhpcy5yb290KSx0aGlzLmN0eC52YWx9LHQub3V0bGluZS5nZW5JZHNfcj1mdW5jdGlvbihlKXtlLmlkPXQuaW50ZXJuYWwubmV3T2JqZWN0RGVmZXJyZWQoKTtmb3IodmFyIHI9MDtyPGUuY2hpbGRyZW4ubGVuZ3RoO3IrKyl0aGlzLmdlbklkc19yKGUuY2hpbGRyZW5bcl0pfSx0Lm91dGxpbmUucmVuZGVyUm9vdD1mdW5jdGlvbih0KXt0aGlzLm9ialN0YXJ0KHQpLHRoaXMubGluZShcIi9UeXBlIC9PdXRsaW5lc1wiKSx0LmNoaWxkcmVuLmxlbmd0aD4wJiYodGhpcy5saW5lKFwiL0ZpcnN0IFwiK3RoaXMubWFrZVJlZih0LmNoaWxkcmVuWzBdKSksdGhpcy5saW5lKFwiL0xhc3QgXCIrdGhpcy5tYWtlUmVmKHQuY2hpbGRyZW5bdC5jaGlsZHJlbi5sZW5ndGgtMV0pKSksdGhpcy5saW5lKFwiL0NvdW50IFwiK3RoaXMuY291bnRfcih7Y291bnQ6MH0sdCkpLHRoaXMub2JqRW5kKCl9LHQub3V0bGluZS5yZW5kZXJJdGVtcz1mdW5jdGlvbihlKXtmb3IodmFyIHI9dGhpcy5jdHgucGRmLmludGVybmFsLmdldFZlcnRpY2FsQ29vcmRpbmF0ZVN0cmluZyxuPTA7bjxlLmNoaWxkcmVuLmxlbmd0aDtuKyspe3ZhciBpPWUuY2hpbGRyZW5bbl07dGhpcy5vYmpTdGFydChpKSx0aGlzLmxpbmUoXCIvVGl0bGUgXCIrdGhpcy5tYWtlU3RyaW5nKGkudGl0bGUpKSx0aGlzLmxpbmUoXCIvUGFyZW50IFwiK3RoaXMubWFrZVJlZihlKSksbj4wJiZ0aGlzLmxpbmUoXCIvUHJldiBcIit0aGlzLm1ha2VSZWYoZS5jaGlsZHJlbltuLTFdKSksbjxlLmNoaWxkcmVuLmxlbmd0aC0xJiZ0aGlzLmxpbmUoXCIvTmV4dCBcIit0aGlzLm1ha2VSZWYoZS5jaGlsZHJlbltuKzFdKSksaS5jaGlsZHJlbi5sZW5ndGg+MCYmKHRoaXMubGluZShcIi9GaXJzdCBcIit0aGlzLm1ha2VSZWYoaS5jaGlsZHJlblswXSkpLHRoaXMubGluZShcIi9MYXN0IFwiK3RoaXMubWFrZVJlZihpLmNoaWxkcmVuW2kuY2hpbGRyZW4ubGVuZ3RoLTFdKSkpO3ZhciBhPXRoaXMuY291bnQ9dGhpcy5jb3VudF9yKHtjb3VudDowfSxpKTtpZihhPjAmJnRoaXMubGluZShcIi9Db3VudCBcIithKSxpLm9wdGlvbnMmJmkub3B0aW9ucy5wYWdlTnVtYmVyKXt2YXIgbz10LmludGVybmFsLmdldFBhZ2VJbmZvKGkub3B0aW9ucy5wYWdlTnVtYmVyKTt0aGlzLmxpbmUoXCIvRGVzdCBbXCIrby5vYmpJZCtcIiAwIFIgL1hZWiAwIFwiK3IoMCkrXCIgMF1cIil9dGhpcy5vYmpFbmQoKX1mb3IodmFyIHM9MDtzPGUuY2hpbGRyZW4ubGVuZ3RoO3MrKyl0aGlzLnJlbmRlckl0ZW1zKGUuY2hpbGRyZW5bc10pfSx0Lm91dGxpbmUubGluZT1mdW5jdGlvbih0KXt0aGlzLmN0eC52YWwrPXQrXCJcXHJcXG5cIn0sdC5vdXRsaW5lLm1ha2VSZWY9ZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQrXCIgMCBSXCJ9LHQub3V0bGluZS5tYWtlU3RyaW5nPWZ1bmN0aW9uKGUpe3JldHVyblwiKFwiK3QuaW50ZXJuYWwucGRmRXNjYXBlKGUpK1wiKVwifSx0Lm91dGxpbmUub2JqU3RhcnQ9ZnVuY3Rpb24odCl7dGhpcy5jdHgudmFsKz1cIlxcclxcblwiK3QuaWQrXCIgMCBvYmpcXHJcXG48PFxcclxcblwifSx0Lm91dGxpbmUub2JqRW5kPWZ1bmN0aW9uKCl7dGhpcy5jdHgudmFsKz1cIj4+IFxcclxcbmVuZG9ialxcclxcblwifSx0Lm91dGxpbmUuY291bnRfcj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5jaGlsZHJlbi5sZW5ndGg7cisrKXQuY291bnQrKyx0aGlzLmNvdW50X3IodCxlLmNoaWxkcmVuW3JdKTtyZXR1cm4gdC5jb3VudH19XSl9KEMuQVBJKSxcbi8qKlxuICogQGxpY2Vuc2VcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2VcbiAqL1xuZnVuY3Rpb24odCl7dmFyIGU9WzE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTldO3QucHJvY2Vzc0pQRUc9ZnVuY3Rpb24odCxyLG4saSxhLG8pe3ZhciBzLGM9dGhpcy5kZWNvZGUuRENUX0RFQ09ERSx1PW51bGw7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHR8fHRoaXMuX19hZGRpbWFnZV9fLmlzQXJyYXlCdWZmZXIodCl8fHRoaXMuX19hZGRpbWFnZV9fLmlzQXJyYXlCdWZmZXJWaWV3KHQpKXtzd2l0Y2godD1hfHx0LHQ9dGhpcy5fX2FkZGltYWdlX18uaXNBcnJheUJ1ZmZlcih0KT9uZXcgVWludDhBcnJheSh0KTp0LHM9ZnVuY3Rpb24odCl7Zm9yKHZhciByLG49MjU2KnQuY2hhckNvZGVBdCg0KSt0LmNoYXJDb2RlQXQoNSksaT10Lmxlbmd0aCxhPXt3aWR0aDowLGhlaWdodDowLG51bWNvbXBvbmVudHM6MX0sbz00O288aTtvKz0yKXtpZihvKz1uLC0xIT09ZS5pbmRleE9mKHQuY2hhckNvZGVBdChvKzEpKSl7cj0yNTYqdC5jaGFyQ29kZUF0KG8rNSkrdC5jaGFyQ29kZUF0KG8rNiksYT17d2lkdGg6MjU2KnQuY2hhckNvZGVBdChvKzcpK3QuY2hhckNvZGVBdChvKzgpLGhlaWdodDpyLG51bWNvbXBvbmVudHM6dC5jaGFyQ29kZUF0KG8rOSl9O2JyZWFrfW49MjU2KnQuY2hhckNvZGVBdChvKzIpK3QuY2hhckNvZGVBdChvKzMpfXJldHVybiBhfSh0PXRoaXMuX19hZGRpbWFnZV9fLmlzQXJyYXlCdWZmZXJWaWV3KHQpP3RoaXMuX19hZGRpbWFnZV9fLmFycmF5QnVmZmVyVG9CaW5hcnlTdHJpbmcodCk6dCkscy5udW1jb21wb25lbnRzKXtjYXNlIDE6bz10aGlzLmNvbG9yX3NwYWNlcy5ERVZJQ0VfR1JBWTticmVhaztjYXNlIDQ6bz10aGlzLmNvbG9yX3NwYWNlcy5ERVZJQ0VfQ01ZSzticmVhaztjYXNlIDM6bz10aGlzLmNvbG9yX3NwYWNlcy5ERVZJQ0VfUkdCfXU9e2RhdGE6dCx3aWR0aDpzLndpZHRoLGhlaWdodDpzLmhlaWdodCxjb2xvclNwYWNlOm8sYml0c1BlckNvbXBvbmVudDo4LGZpbHRlcjpjLGluZGV4OnIsYWxpYXM6bn19cmV0dXJuIHV9fShDLkFQSSksXG4vKipcbiAqIEBsaWNlbnNlXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE0IEphbWVzIFJvYmIsIGh0dHBzOi8vZ2l0aHViLmNvbS9qYW1lc2Jyb2JiXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nXG4gKiBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbiAqIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuICogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvXG4gKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG9cbiAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZVxuICogaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCxcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkRcbiAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkVcbiAqIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT05cbiAqIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTlxuICogV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG5DLkFQSS5wcm9jZXNzUE5HPWZ1bmN0aW9uKHIsbixpLGEpe2lmKHRoaXMuX19hZGRpbWFnZV9fLmlzQXJyYXlCdWZmZXIocikmJihyPW5ldyBVaW50OEFycmF5KHIpKSwhdGhpcy5fX2FkZGltYWdlX18uaXNBcnJheUJ1ZmZlclZpZXcocikpcmV0dXJuO2NvbnN0IG89ZS5kZWNvZGUocix7Y2hlY2tDcmM6ITB9KSx7d2lkdGg6cyxoZWlnaHQ6YyxjaGFubmVsczp1LHBhbGV0dGU6bCxkZXB0aDpofT1vO2xldCBmO2Y9bCYmMT09PXU/ZnVuY3Rpb24odCl7Y29uc3R7d2lkdGg6ZSxoZWlnaHQ6cixkYXRhOm4scGFsZXR0ZTppLGRlcHRoOmF9PXQ7bGV0IG8scz0hMSxjPVtdLHU9W10sbD0hMTtsZXQgaD0wO2ZvcihsZXQgZj0wO2Y8aS5sZW5ndGg7ZisrKXtjb25zdFt0LGUscixuXT1pW2ZdO2MucHVzaCh0LGUsciksbnVsbCE9biYmKDA9PT1uPyhoKyssdS5sZW5ndGg8MSYmdS5wdXNoKGYpKTpuPDI1NSYmKGw9ITApKX1pZihsfHxoPjEpe3M9ITAsdT12b2lkIDA7Y29uc3QgdD1lKnI7bz1uZXcgVWludDhBcnJheSh0KTtjb25zdCBjPW5ldyBEYXRhVmlldyhuLmJ1ZmZlcik7Zm9yKGxldCBlPTA7ZTx0O2UrKyl7Y29uc3QgdD1KdChjLGUsYSksWywsLHJdPWlbdF07b1tlXT1yfX1lbHNlIDA9PT1oJiYodT12b2lkIDApO3JldHVybntjb2xvclNwYWNlOlwiSW5kZXhlZFwiLGNvbG9yc1BlclBpeGVsOjEsc01hc2tCaXRzUGVyQ29tcG9uZW50OnM/ODp2b2lkIDAsY29sb3JCeXRlczpuLGFscGhhQnl0ZXM6byxuZWVkU01hc2s6cyxwYWxldHRlOmMsbWFzazp1fX0obyk6Mj09PXV8fDQ9PT11P2Z1bmN0aW9uKHQpe2NvbnN0e2RhdGE6ZSx3aWR0aDpyLGhlaWdodDpuLGNoYW5uZWxzOmksZGVwdGg6YX09dCxvPTI9PT1pP1wiRGV2aWNlR3JheVwiOlwiRGV2aWNlUkdCXCIscz1pLTEsYz1yKm4sdT1zLGw9Yyp1LGg9MSpjLGY9TWF0aC5jZWlsKGwqYS84KSxkPU1hdGguY2VpbChoKmEvOCkscD1uZXcgVWludDhBcnJheShmKSxnPW5ldyBVaW50OEFycmF5KGQpLG09bmV3IERhdGFWaWV3KGUuYnVmZmVyKSx2PW5ldyBEYXRhVmlldyhwLmJ1ZmZlciksYj1uZXcgRGF0YVZpZXcoZy5idWZmZXIpO2xldCB5PSExO2ZvcihsZXQgdz0wO3c8Yzt3Kyspe2NvbnN0IHQ9dyppO2ZvcihsZXQgcj0wO3I8dTtyKyspWHQodixKdChtLHQrcixhKSx3KnUrcixhKTtjb25zdCBlPUp0KG0sdCt1LGEpO2U8KDE8PGEpLTEmJih5PSEwKSxYdChiLGUsMSp3LGEpfXJldHVybntjb2xvclNwYWNlOm8sY29sb3JzUGVyUGl4ZWw6cyxzTWFza0JpdHNQZXJDb21wb25lbnQ6eT9hOnZvaWQgMCxjb2xvckJ5dGVzOnAsYWxwaGFCeXRlczpnLG5lZWRTTWFzazp5fX0obyk6ZnVuY3Rpb24odCl7Y29uc3R7ZGF0YTplLGNoYW5uZWxzOnJ9PXQsbj0xPT09cj9cIkRldmljZUdyYXlcIjpcIkRldmljZVJHQlwiLGk9XCJEZXZpY2VHcmF5XCI9PT1uPzE6MztsZXQgYTtyZXR1cm4gYT1lIGluc3RhbmNlb2YgVWludDE2QXJyYXk/ZnVuY3Rpb24odCl7Y29uc3QgZT10Lmxlbmd0aCxyPW5ldyBVaW50OEFycmF5KDIqZSksbj1uZXcgRGF0YVZpZXcoci5idWZmZXIsci5ieXRlT2Zmc2V0LHIuYnl0ZUxlbmd0aCk7Zm9yKGxldCBpPTA7aTxlO2krKyluLnNldFVpbnQxNigyKmksdFtpXSwhMSk7cmV0dXJuIHJ9KGUpOmUse2NvbG9yU3BhY2U6bixjb2xvcnNQZXJQaXhlbDppLGNvbG9yQnl0ZXM6YSxuZWVkU01hc2s6ITF9fShvKTtjb25zdHtjb2xvclNwYWNlOmQsY29sb3JzUGVyUGl4ZWw6cCxzTWFza0JpdHNQZXJDb21wb25lbnQ6Zyxjb2xvckJ5dGVzOm0sYWxwaGFCeXRlczp2LG5lZWRTTWFzazpiLHBhbGV0dGU6eSxtYXNrOnd9PWY7bGV0IE4sTCx4LEE9bnVsbDtyZXR1cm4gYSE9PUMuQVBJLmltYWdlX2NvbXByZXNzaW9uLk5PTkUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHQuemxpYlN5bmM/KEE9ZnVuY3Rpb24odCl7bGV0IGU7c3dpdGNoKHQpe2Nhc2UgQy5BUEkuaW1hZ2VfY29tcHJlc3Npb24uRkFTVDplPTExO2JyZWFrO2Nhc2UgQy5BUEkuaW1hZ2VfY29tcHJlc3Npb24uTUVESVVNOmU9MTM7YnJlYWs7Y2FzZSBDLkFQSS5pbWFnZV9jb21wcmVzc2lvbi5TTE9XOmU9MTQ7YnJlYWs7ZGVmYXVsdDplPTEyfXJldHVybiBlfShhKSxOPXRoaXMuZGVjb2RlLkZMQVRFX0RFQ09ERSxMPWAvUHJlZGljdG9yICR7QX0gL0NvbG9ycyAke3B9IC9CaXRzUGVyQ29tcG9uZW50ICR7aH0gL0NvbHVtbnMgJHtzfWAscj1UdChtLE1hdGguY2VpbChzKnAqaC84KSxwLGgsYSksYiYmKHg9VHQodixNYXRoLmNlaWwocypnLzgpLDEsZyxhKSkpOihOPXZvaWQgMCxMPXZvaWQgMCxyPW0sYiYmKHg9dikpLCh0aGlzLl9fYWRkaW1hZ2VfXy5pc0FycmF5QnVmZmVyKHIpfHx0aGlzLl9fYWRkaW1hZ2VfXy5pc0FycmF5QnVmZmVyVmlldyhyKSkmJihyPXRoaXMuX19hZGRpbWFnZV9fLmFycmF5QnVmZmVyVG9CaW5hcnlTdHJpbmcocikpLCh4JiZ0aGlzLl9fYWRkaW1hZ2VfXy5pc0FycmF5QnVmZmVyKHgpfHx0aGlzLl9fYWRkaW1hZ2VfXy5pc0FycmF5QnVmZmVyVmlldyh4KSkmJih4PXRoaXMuX19hZGRpbWFnZV9fLmFycmF5QnVmZmVyVG9CaW5hcnlTdHJpbmcoeCkpLHthbGlhczppLGRhdGE6cixpbmRleDpuLGZpbHRlcjpOLGRlY29kZVBhcmFtZXRlcnM6TCx0cmFuc3BhcmVuY3k6dyxwYWxldHRlOnksc01hc2s6eCxwcmVkaWN0b3I6QSx3aWR0aDpzLGhlaWdodDpjLGJpdHNQZXJDb21wb25lbnQ6aCxzTWFza0JpdHNQZXJDb21wb25lbnQ6Zyxjb2xvclNwYWNlOmR9fSxmdW5jdGlvbih0KXt0LnByb2Nlc3NHSUY4OUE9ZnVuY3Rpb24oZSxyLG4saSl7dmFyIGE9bmV3ICR0KGUpLG89YS53aWR0aCxzPWEuaGVpZ2h0LGM9W107YS5kZWNvZGVBbmRCbGl0RnJhbWVSR0JBKDAsYyk7dmFyIHU9e2RhdGE6Yyx3aWR0aDpvLGhlaWdodDpzfSxsPW5ldyBRdCgxMDApLmVuY29kZSh1LDEwMCk7cmV0dXJuIHQucHJvY2Vzc0pQRUcuY2FsbCh0aGlzLGwscixuLGkpfSx0LnByb2Nlc3NHSUY4N0E9dC5wcm9jZXNzR0lGODlBfShDLkFQSSksdGUucHJvdG90eXBlLnBhcnNlSGVhZGVyPWZ1bmN0aW9uKCl7aWYodGhpcy5maWxlU2l6ZT10aGlzLmRhdGF2LmdldFVpbnQzMih0aGlzLnBvcywhMCksdGhpcy5wb3MrPTQsdGhpcy5yZXNlcnZlZD10aGlzLmRhdGF2LmdldFVpbnQzMih0aGlzLnBvcywhMCksdGhpcy5wb3MrPTQsdGhpcy5vZmZzZXQ9dGhpcy5kYXRhdi5nZXRVaW50MzIodGhpcy5wb3MsITApLHRoaXMucG9zKz00LHRoaXMuaGVhZGVyU2l6ZT10aGlzLmRhdGF2LmdldFVpbnQzMih0aGlzLnBvcywhMCksdGhpcy5wb3MrPTQsdGhpcy53aWR0aD10aGlzLmRhdGF2LmdldFVpbnQzMih0aGlzLnBvcywhMCksdGhpcy5wb3MrPTQsdGhpcy5oZWlnaHQ9dGhpcy5kYXRhdi5nZXRJbnQzMih0aGlzLnBvcywhMCksdGhpcy5wb3MrPTQsdGhpcy5wbGFuZXM9dGhpcy5kYXRhdi5nZXRVaW50MTYodGhpcy5wb3MsITApLHRoaXMucG9zKz0yLHRoaXMuYml0UFA9dGhpcy5kYXRhdi5nZXRVaW50MTYodGhpcy5wb3MsITApLHRoaXMucG9zKz0yLHRoaXMuY29tcHJlc3M9dGhpcy5kYXRhdi5nZXRVaW50MzIodGhpcy5wb3MsITApLHRoaXMucG9zKz00LHRoaXMucmF3U2l6ZT10aGlzLmRhdGF2LmdldFVpbnQzMih0aGlzLnBvcywhMCksdGhpcy5wb3MrPTQsdGhpcy5ocj10aGlzLmRhdGF2LmdldFVpbnQzMih0aGlzLnBvcywhMCksdGhpcy5wb3MrPTQsdGhpcy52cj10aGlzLmRhdGF2LmdldFVpbnQzMih0aGlzLnBvcywhMCksdGhpcy5wb3MrPTQsdGhpcy5jb2xvcnM9dGhpcy5kYXRhdi5nZXRVaW50MzIodGhpcy5wb3MsITApLHRoaXMucG9zKz00LHRoaXMuaW1wb3J0YW50Q29sb3JzPXRoaXMuZGF0YXYuZ2V0VWludDMyKHRoaXMucG9zLCEwKSx0aGlzLnBvcys9NCwxNj09PXRoaXMuYml0UFAmJnRoaXMuaXNfd2l0aF9hbHBoYSYmKHRoaXMuYml0UFA9MTUpLHRoaXMuYml0UFA8MTUpe3ZhciB0PTA9PT10aGlzLmNvbG9ycz8xPDx0aGlzLmJpdFBQOnRoaXMuY29sb3JzO3RoaXMucGFsZXR0ZT1uZXcgQXJyYXkodCk7Zm9yKHZhciBlPTA7ZTx0O2UrKyl7dmFyIHI9dGhpcy5kYXRhdi5nZXRVaW50OCh0aGlzLnBvcysrLCEwKSxuPXRoaXMuZGF0YXYuZ2V0VWludDgodGhpcy5wb3MrKywhMCksaT10aGlzLmRhdGF2LmdldFVpbnQ4KHRoaXMucG9zKyssITApLGE9dGhpcy5kYXRhdi5nZXRVaW50OCh0aGlzLnBvcysrLCEwKTt0aGlzLnBhbGV0dGVbZV09e3JlZDppLGdyZWVuOm4sYmx1ZTpyLHF1YWQ6YX19fXRoaXMuaGVpZ2h0PDAmJih0aGlzLmhlaWdodCo9LTEsdGhpcy5ib3R0b21fdXA9ITEpfSx0ZS5wcm90b3R5cGUucGFyc2VCR1I9ZnVuY3Rpb24oKXt0aGlzLnBvcz10aGlzLm9mZnNldDt2YXIgdD1cImJpdFwiK3RoaXMuYml0UFAsZT10aGlzLndpZHRoKnRoaXMuaGVpZ2h0KjQ7aWYoZT41MzY4NzA5MTIpdGhyb3cgbmV3IEVycm9yKFwiSW1hZ2UgZGltZW5zaW9ucyBleGNlZWQgNTEyTUIsIHdoaWNoIGlzIHRvbyBsYXJnZS5cIik7dGhpcy5kYXRhPW5ldyBVaW50OEFycmF5KGUpO3RyeXt0aGlzW3RdKCl9Y2F0Y2gocil7cy5sb2coXCJiaXQgZGVjb2RlIGVycm9yOlwiK3IpfX0sdGUucHJvdG90eXBlLmJpdDE9ZnVuY3Rpb24oKXt2YXIgdCxlPU1hdGguY2VpbCh0aGlzLndpZHRoLzgpLHI9ZSU0O2Zvcih0PXRoaXMuaGVpZ2h0LTE7dD49MDt0LS0pe2Zvcih2YXIgbj10aGlzLmJvdHRvbV91cD90OnRoaXMuaGVpZ2h0LTEtdCxpPTA7aTxlO2krKylmb3IodmFyIGE9dGhpcy5kYXRhdi5nZXRVaW50OCh0aGlzLnBvcysrLCEwKSxvPW4qdGhpcy53aWR0aCo0KzgqaSo0LHM9MDtzPDgmJjgqaStzPHRoaXMud2lkdGg7cysrKXt2YXIgYz10aGlzLnBhbGV0dGVbYT4+Ny1zJjFdO3RoaXMuZGF0YVtvKzQqc109Yy5ibHVlLHRoaXMuZGF0YVtvKzQqcysxXT1jLmdyZWVuLHRoaXMuZGF0YVtvKzQqcysyXT1jLnJlZCx0aGlzLmRhdGFbbys0KnMrM109MjU1fTAhPT1yJiYodGhpcy5wb3MrPTQtcil9fSx0ZS5wcm90b3R5cGUuYml0ND1mdW5jdGlvbigpe2Zvcih2YXIgdD1NYXRoLmNlaWwodGhpcy53aWR0aC8yKSxlPXQlNCxyPXRoaXMuaGVpZ2h0LTE7cj49MDtyLS0pe2Zvcih2YXIgbj10aGlzLmJvdHRvbV91cD9yOnRoaXMuaGVpZ2h0LTEtcixpPTA7aTx0O2krKyl7dmFyIGE9dGhpcy5kYXRhdi5nZXRVaW50OCh0aGlzLnBvcysrLCEwKSxvPW4qdGhpcy53aWR0aCo0KzIqaSo0LHM9YT4+NCxjPTE1JmEsdT10aGlzLnBhbGV0dGVbc107aWYodGhpcy5kYXRhW29dPXUuYmx1ZSx0aGlzLmRhdGFbbysxXT11LmdyZWVuLHRoaXMuZGF0YVtvKzJdPXUucmVkLHRoaXMuZGF0YVtvKzNdPTI1NSwyKmkrMT49dGhpcy53aWR0aClicmVhazt1PXRoaXMucGFsZXR0ZVtjXSx0aGlzLmRhdGFbbys0XT11LmJsdWUsdGhpcy5kYXRhW28rNCsxXT11LmdyZWVuLHRoaXMuZGF0YVtvKzQrMl09dS5yZWQsdGhpcy5kYXRhW28rNCszXT0yNTV9MCE9PWUmJih0aGlzLnBvcys9NC1lKX19LHRlLnByb3RvdHlwZS5iaXQ4PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMud2lkdGglNCxlPXRoaXMuaGVpZ2h0LTE7ZT49MDtlLS0pe2Zvcih2YXIgcj10aGlzLmJvdHRvbV91cD9lOnRoaXMuaGVpZ2h0LTEtZSxuPTA7bjx0aGlzLndpZHRoO24rKyl7dmFyIGk9dGhpcy5kYXRhdi5nZXRVaW50OCh0aGlzLnBvcysrLCEwKSxhPXIqdGhpcy53aWR0aCo0KzQqbjtpZihpPHRoaXMucGFsZXR0ZS5sZW5ndGgpe3ZhciBvPXRoaXMucGFsZXR0ZVtpXTt0aGlzLmRhdGFbYV09by5yZWQsdGhpcy5kYXRhW2ErMV09by5ncmVlbix0aGlzLmRhdGFbYSsyXT1vLmJsdWUsdGhpcy5kYXRhW2ErM109MjU1fWVsc2UgdGhpcy5kYXRhW2FdPTI1NSx0aGlzLmRhdGFbYSsxXT0yNTUsdGhpcy5kYXRhW2ErMl09MjU1LHRoaXMuZGF0YVthKzNdPTI1NX0wIT09dCYmKHRoaXMucG9zKz00LXQpfX0sdGUucHJvdG90eXBlLmJpdDE1PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMud2lkdGglMyxlPXBhcnNlSW50KFwiMTExMTFcIiwyKSxyPXRoaXMuaGVpZ2h0LTE7cj49MDtyLS0pe2Zvcih2YXIgbj10aGlzLmJvdHRvbV91cD9yOnRoaXMuaGVpZ2h0LTEtcixpPTA7aTx0aGlzLndpZHRoO2krKyl7dmFyIGE9dGhpcy5kYXRhdi5nZXRVaW50MTYodGhpcy5wb3MsITApO3RoaXMucG9zKz0yO3ZhciBvPShhJmUpL2UqMjU1fDAscz0oYT4+NSZlKS9lKjI1NXwwLGM9KGE+PjEwJmUpL2UqMjU1fDAsdT1hPj4xNT8yNTU6MCxsPW4qdGhpcy53aWR0aCo0KzQqaTt0aGlzLmRhdGFbbF09Yyx0aGlzLmRhdGFbbCsxXT1zLHRoaXMuZGF0YVtsKzJdPW8sdGhpcy5kYXRhW2wrM109dX10aGlzLnBvcys9dH19LHRlLnByb3RvdHlwZS5iaXQxNj1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLndpZHRoJTMsZT1wYXJzZUludChcIjExMTExXCIsMikscj1wYXJzZUludChcIjExMTExMVwiLDIpLG49dGhpcy5oZWlnaHQtMTtuPj0wO24tLSl7Zm9yKHZhciBpPXRoaXMuYm90dG9tX3VwP246dGhpcy5oZWlnaHQtMS1uLGE9MDthPHRoaXMud2lkdGg7YSsrKXt2YXIgbz10aGlzLmRhdGF2LmdldFVpbnQxNih0aGlzLnBvcywhMCk7dGhpcy5wb3MrPTI7dmFyIHM9KG8mZSkvZSoyNTV8MCxjPShvPj41JnIpL3IqMjU1fDAsdT0obz4+MTEpL2UqMjU1fDAsbD1pKnRoaXMud2lkdGgqNCs0KmE7dGhpcy5kYXRhW2xdPXUsdGhpcy5kYXRhW2wrMV09Yyx0aGlzLmRhdGFbbCsyXT1zLHRoaXMuZGF0YVtsKzNdPTI1NX10aGlzLnBvcys9dH19LHRlLnByb3RvdHlwZS5iaXQyND1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmhlaWdodC0xO3Q+PTA7dC0tKXtmb3IodmFyIGU9dGhpcy5ib3R0b21fdXA/dDp0aGlzLmhlaWdodC0xLXQscj0wO3I8dGhpcy53aWR0aDtyKyspe3ZhciBuPXRoaXMuZGF0YXYuZ2V0VWludDgodGhpcy5wb3MrKywhMCksaT10aGlzLmRhdGF2LmdldFVpbnQ4KHRoaXMucG9zKyssITApLGE9dGhpcy5kYXRhdi5nZXRVaW50OCh0aGlzLnBvcysrLCEwKSxvPWUqdGhpcy53aWR0aCo0KzQqcjt0aGlzLmRhdGFbb109YSx0aGlzLmRhdGFbbysxXT1pLHRoaXMuZGF0YVtvKzJdPW4sdGhpcy5kYXRhW28rM109MjU1fXRoaXMucG9zKz10aGlzLndpZHRoJTR9fSx0ZS5wcm90b3R5cGUuYml0MzI9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5oZWlnaHQtMTt0Pj0wO3QtLSlmb3IodmFyIGU9dGhpcy5ib3R0b21fdXA/dDp0aGlzLmhlaWdodC0xLXQscj0wO3I8dGhpcy53aWR0aDtyKyspe3ZhciBuPXRoaXMuZGF0YXYuZ2V0VWludDgodGhpcy5wb3MrKywhMCksaT10aGlzLmRhdGF2LmdldFVpbnQ4KHRoaXMucG9zKyssITApLGE9dGhpcy5kYXRhdi5nZXRVaW50OCh0aGlzLnBvcysrLCEwKSxvPXRoaXMuZGF0YXYuZ2V0VWludDgodGhpcy5wb3MrKywhMCkscz1lKnRoaXMud2lkdGgqNCs0KnI7dGhpcy5kYXRhW3NdPWEsdGhpcy5kYXRhW3MrMV09aSx0aGlzLmRhdGFbcysyXT1uLHRoaXMuZGF0YVtzKzNdPW99fSx0ZS5wcm90b3R5cGUuZ2V0RGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGF9LFxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IChjKSAyMDE4IEFyYXMgQWJiYXNpXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlXG4gKi9cbmZ1bmN0aW9uKHQpe3QucHJvY2Vzc0JNUD1mdW5jdGlvbihlLHIsbixpKXt2YXIgYT1uZXcgdGUoZSwhMSksbz1hLndpZHRoLHM9YS5oZWlnaHQsYz17ZGF0YTphLmdldERhdGEoKSx3aWR0aDpvLGhlaWdodDpzfSx1PW5ldyBRdCgxMDApLmVuY29kZShjLDEwMCk7cmV0dXJuIHQucHJvY2Vzc0pQRUcuY2FsbCh0aGlzLHUscixuLGkpfX0oQy5BUEkpLGVlLnByb3RvdHlwZS5nZXREYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YX0sXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTkgQXJhcyBBYmJhc2lcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2VcbiAqL1xuZnVuY3Rpb24odCl7dC5wcm9jZXNzV0VCUD1mdW5jdGlvbihlLHIsbixpKXt2YXIgYT1uZXcgZWUoZSksbz1hLndpZHRoLHM9YS5oZWlnaHQsYz17ZGF0YTphLmdldERhdGEoKSx3aWR0aDpvLGhlaWdodDpzfSx1PW5ldyBRdCgxMDApLmVuY29kZShjLDEwMCk7cmV0dXJuIHQucHJvY2Vzc0pQRUcuY2FsbCh0aGlzLHUscixuLGkpfX0oQy5BUEkpLEMuQVBJLnByb2Nlc3NSR0JBPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49dC5kYXRhLGk9bi5sZW5ndGgsYT1uZXcgVWludDhBcnJheShpLzQqMyksbz1uZXcgVWludDhBcnJheShpLzQpLHM9MCxjPTAsdT0wO3U8aTt1Kz00KXt2YXIgbD1uW3VdLGg9blt1KzFdLGY9blt1KzJdLGQ9blt1KzNdO2FbcysrXT1sLGFbcysrXT1oLGFbcysrXT1mLG9bYysrXT1kfXZhciBwPXRoaXMuX19hZGRpbWFnZV9fLmFycmF5QnVmZmVyVG9CaW5hcnlTdHJpbmcoYSk7cmV0dXJue2FscGhhOnRoaXMuX19hZGRpbWFnZV9fLmFycmF5QnVmZmVyVG9CaW5hcnlTdHJpbmcobyksZGF0YTpwLGluZGV4OmUsYWxpYXM6cixjb2xvclNwYWNlOlwiRGV2aWNlUkdCXCIsYml0c1BlckNvbXBvbmVudDo4LHdpZHRoOnQud2lkdGgsaGVpZ2h0OnQuaGVpZ2h0fX0sQy5BUEkuc2V0TGFuZ3VhZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuaW50ZXJuYWwubGFuZ3VhZ2VTZXR0aW5ncyYmKHRoaXMuaW50ZXJuYWwubGFuZ3VhZ2VTZXR0aW5ncz17fSx0aGlzLmludGVybmFsLmxhbmd1YWdlU2V0dGluZ3MuaXNTdWJzY3JpYmVkPSExKSx2b2lkIDAhPT17YWY6XCJBZnJpa2FhbnNcIixzcTpcIkFsYmFuaWFuXCIsYXI6XCJBcmFiaWMgKFN0YW5kYXJkKVwiLFwiYXItRFpcIjpcIkFyYWJpYyAoQWxnZXJpYSlcIixcImFyLUJIXCI6XCJBcmFiaWMgKEJhaHJhaW4pXCIsXCJhci1FR1wiOlwiQXJhYmljIChFZ3lwdClcIixcImFyLUlRXCI6XCJBcmFiaWMgKElyYXEpXCIsXCJhci1KT1wiOlwiQXJhYmljIChKb3JkYW4pXCIsXCJhci1LV1wiOlwiQXJhYmljIChLdXdhaXQpXCIsXCJhci1MQlwiOlwiQXJhYmljIChMZWJhbm9uKVwiLFwiYXItTFlcIjpcIkFyYWJpYyAoTGlieWEpXCIsXCJhci1NQVwiOlwiQXJhYmljIChNb3JvY2NvKVwiLFwiYXItT01cIjpcIkFyYWJpYyAoT21hbilcIixcImFyLVFBXCI6XCJBcmFiaWMgKFFhdGFyKVwiLFwiYXItU0FcIjpcIkFyYWJpYyAoU2F1ZGkgQXJhYmlhKVwiLFwiYXItU1lcIjpcIkFyYWJpYyAoU3lyaWEpXCIsXCJhci1UTlwiOlwiQXJhYmljIChUdW5pc2lhKVwiLFwiYXItQUVcIjpcIkFyYWJpYyAoVS5BLkUuKVwiLFwiYXItWUVcIjpcIkFyYWJpYyAoWWVtZW4pXCIsYW46XCJBcmFnb25lc2VcIixoeTpcIkFybWVuaWFuXCIsYXM6XCJBc3NhbWVzZVwiLGFzdDpcIkFzdHVyaWFuXCIsYXo6XCJBemVyYmFpamFuaVwiLGV1OlwiQmFzcXVlXCIsYmU6XCJCZWxhcnVzaWFuXCIsYm46XCJCZW5nYWxpXCIsYnM6XCJCb3NuaWFuXCIsYnI6XCJCcmV0b25cIixiZzpcIkJ1bGdhcmlhblwiLG15OlwiQnVybWVzZVwiLGNhOlwiQ2F0YWxhblwiLGNoOlwiQ2hhbW9ycm9cIixjZTpcIkNoZWNoZW5cIix6aDpcIkNoaW5lc2VcIixcInpoLUhLXCI6XCJDaGluZXNlIChIb25nIEtvbmcpXCIsXCJ6aC1DTlwiOlwiQ2hpbmVzZSAoUFJDKVwiLFwiemgtU0dcIjpcIkNoaW5lc2UgKFNpbmdhcG9yZSlcIixcInpoLVRXXCI6XCJDaGluZXNlIChUYWl3YW4pXCIsY3Y6XCJDaHV2YXNoXCIsY286XCJDb3JzaWNhblwiLGNyOlwiQ3JlZVwiLGhyOlwiQ3JvYXRpYW5cIixjczpcIkN6ZWNoXCIsZGE6XCJEYW5pc2hcIixubDpcIkR1dGNoIChTdGFuZGFyZClcIixcIm5sLUJFXCI6XCJEdXRjaCAoQmVsZ2lhbilcIixlbjpcIkVuZ2xpc2hcIixcImVuLUFVXCI6XCJFbmdsaXNoIChBdXN0cmFsaWEpXCIsXCJlbi1CWlwiOlwiRW5nbGlzaCAoQmVsaXplKVwiLFwiZW4tQ0FcIjpcIkVuZ2xpc2ggKENhbmFkYSlcIixcImVuLUlFXCI6XCJFbmdsaXNoIChJcmVsYW5kKVwiLFwiZW4tSk1cIjpcIkVuZ2xpc2ggKEphbWFpY2EpXCIsXCJlbi1OWlwiOlwiRW5nbGlzaCAoTmV3IFplYWxhbmQpXCIsXCJlbi1QSFwiOlwiRW5nbGlzaCAoUGhpbGlwcGluZXMpXCIsXCJlbi1aQVwiOlwiRW5nbGlzaCAoU291dGggQWZyaWNhKVwiLFwiZW4tVFRcIjpcIkVuZ2xpc2ggKFRyaW5pZGFkICYgVG9iYWdvKVwiLFwiZW4tR0JcIjpcIkVuZ2xpc2ggKFVuaXRlZCBLaW5nZG9tKVwiLFwiZW4tVVNcIjpcIkVuZ2xpc2ggKFVuaXRlZCBTdGF0ZXMpXCIsXCJlbi1aV1wiOlwiRW5nbGlzaCAoWmltYmFid2UpXCIsZW86XCJFc3BlcmFudG9cIixldDpcIkVzdG9uaWFuXCIsZm86XCJGYWVyb2VzZVwiLGZqOlwiRmlqaWFuXCIsZmk6XCJGaW5uaXNoXCIsZnI6XCJGcmVuY2ggKFN0YW5kYXJkKVwiLFwiZnItQkVcIjpcIkZyZW5jaCAoQmVsZ2l1bSlcIixcImZyLUNBXCI6XCJGcmVuY2ggKENhbmFkYSlcIixcImZyLUZSXCI6XCJGcmVuY2ggKEZyYW5jZSlcIixcImZyLUxVXCI6XCJGcmVuY2ggKEx1eGVtYm91cmcpXCIsXCJmci1NQ1wiOlwiRnJlbmNoIChNb25hY28pXCIsXCJmci1DSFwiOlwiRnJlbmNoIChTd2l0emVybGFuZClcIixmeTpcIkZyaXNpYW5cIixmdXI6XCJGcml1bGlhblwiLGdkOlwiR2FlbGljIChTY290cylcIixcImdkLUlFXCI6XCJHYWVsaWMgKElyaXNoKVwiLGdsOlwiR2FsYWNpYW5cIixrYTpcIkdlb3JnaWFuXCIsZGU6XCJHZXJtYW4gKFN0YW5kYXJkKVwiLFwiZGUtQVRcIjpcIkdlcm1hbiAoQXVzdHJpYSlcIixcImRlLURFXCI6XCJHZXJtYW4gKEdlcm1hbnkpXCIsXCJkZS1MSVwiOlwiR2VybWFuIChMaWVjaHRlbnN0ZWluKVwiLFwiZGUtTFVcIjpcIkdlcm1hbiAoTHV4ZW1ib3VyZylcIixcImRlLUNIXCI6XCJHZXJtYW4gKFN3aXR6ZXJsYW5kKVwiLGVsOlwiR3JlZWtcIixndTpcIkd1anVyYXRpXCIsaHQ6XCJIYWl0aWFuXCIsaGU6XCJIZWJyZXdcIixoaTpcIkhpbmRpXCIsaHU6XCJIdW5nYXJpYW5cIixpczpcIkljZWxhbmRpY1wiLGlkOlwiSW5kb25lc2lhblwiLGl1OlwiSW51a3RpdHV0XCIsZ2E6XCJJcmlzaFwiLGl0OlwiSXRhbGlhbiAoU3RhbmRhcmQpXCIsXCJpdC1DSFwiOlwiSXRhbGlhbiAoU3dpdHplcmxhbmQpXCIsamE6XCJKYXBhbmVzZVwiLGtuOlwiS2FubmFkYVwiLGtzOlwiS2FzaG1pcmlcIixrazpcIkthemFraFwiLGttOlwiS2htZXJcIixreTpcIktpcmdoaXpcIix0bGg6XCJLbGluZ29uXCIsa286XCJLb3JlYW5cIixcImtvLUtQXCI6XCJLb3JlYW4gKE5vcnRoIEtvcmVhKVwiLFwia28tS1JcIjpcIktvcmVhbiAoU291dGggS29yZWEpXCIsbGE6XCJMYXRpblwiLGx2OlwiTGF0dmlhblwiLGx0OlwiTGl0aHVhbmlhblwiLGxiOlwiTHV4ZW1ib3VyZ2lzaFwiLG1rOlwiTm9ydGggTWFjZWRvbmlhXCIsbXM6XCJNYWxheVwiLG1sOlwiTWFsYXlhbGFtXCIsbXQ6XCJNYWx0ZXNlXCIsbWk6XCJNYW9yaVwiLG1yOlwiTWFyYXRoaVwiLG1vOlwiTW9sZGF2aWFuXCIsbnY6XCJOYXZham9cIixuZzpcIk5kb25nYVwiLG5lOlwiTmVwYWxpXCIsbm86XCJOb3J3ZWdpYW5cIixuYjpcIk5vcndlZ2lhbiAoQm9rbWFsKVwiLG5uOlwiTm9yd2VnaWFuIChOeW5vcnNrKVwiLG9jOlwiT2NjaXRhblwiLG9yOlwiT3JpeWFcIixvbTpcIk9yb21vXCIsZmE6XCJQZXJzaWFuXCIsXCJmYS1JUlwiOlwiUGVyc2lhbi9JcmFuXCIscGw6XCJQb2xpc2hcIixwdDpcIlBvcnR1Z3Vlc2VcIixcInB0LUJSXCI6XCJQb3J0dWd1ZXNlIChCcmF6aWwpXCIscGE6XCJQdW5qYWJpXCIsXCJwYS1JTlwiOlwiUHVuamFiaSAoSW5kaWEpXCIsXCJwYS1QS1wiOlwiUHVuamFiaSAoUGFraXN0YW4pXCIscXU6XCJRdWVjaHVhXCIscm06XCJSaGFldG8tUm9tYW5pY1wiLHJvOlwiUm9tYW5pYW5cIixcInJvLU1PXCI6XCJSb21hbmlhbiAoTW9sZGF2aWEpXCIscnU6XCJSdXNzaWFuXCIsXCJydS1NT1wiOlwiUnVzc2lhbiAoTW9sZGF2aWEpXCIsc3o6XCJTYW1pIChMYXBwaXNoKVwiLHNnOlwiU2FuZ29cIixzYTpcIlNhbnNrcml0XCIsc2M6XCJTYXJkaW5pYW5cIixzZDpcIlNpbmRoaVwiLHNpOlwiU2luZ2hhbGVzZVwiLHNyOlwiU2VyYmlhblwiLHNrOlwiU2xvdmFrXCIsc2w6XCJTbG92ZW5pYW5cIixzbzpcIlNvbWFuaVwiLHNiOlwiU29yYmlhblwiLGVzOlwiU3BhbmlzaFwiLFwiZXMtQVJcIjpcIlNwYW5pc2ggKEFyZ2VudGluYSlcIixcImVzLUJPXCI6XCJTcGFuaXNoIChCb2xpdmlhKVwiLFwiZXMtQ0xcIjpcIlNwYW5pc2ggKENoaWxlKVwiLFwiZXMtQ09cIjpcIlNwYW5pc2ggKENvbG9tYmlhKVwiLFwiZXMtQ1JcIjpcIlNwYW5pc2ggKENvc3RhIFJpY2EpXCIsXCJlcy1ET1wiOlwiU3BhbmlzaCAoRG9taW5pY2FuIFJlcHVibGljKVwiLFwiZXMtRUNcIjpcIlNwYW5pc2ggKEVjdWFkb3IpXCIsXCJlcy1TVlwiOlwiU3BhbmlzaCAoRWwgU2FsdmFkb3IpXCIsXCJlcy1HVFwiOlwiU3BhbmlzaCAoR3VhdGVtYWxhKVwiLFwiZXMtSE5cIjpcIlNwYW5pc2ggKEhvbmR1cmFzKVwiLFwiZXMtTVhcIjpcIlNwYW5pc2ggKE1leGljbylcIixcImVzLU5JXCI6XCJTcGFuaXNoIChOaWNhcmFndWEpXCIsXCJlcy1QQVwiOlwiU3BhbmlzaCAoUGFuYW1hKVwiLFwiZXMtUFlcIjpcIlNwYW5pc2ggKFBhcmFndWF5KVwiLFwiZXMtUEVcIjpcIlNwYW5pc2ggKFBlcnUpXCIsXCJlcy1QUlwiOlwiU3BhbmlzaCAoUHVlcnRvIFJpY28pXCIsXCJlcy1FU1wiOlwiU3BhbmlzaCAoU3BhaW4pXCIsXCJlcy1VWVwiOlwiU3BhbmlzaCAoVXJ1Z3VheSlcIixcImVzLVZFXCI6XCJTcGFuaXNoIChWZW5lenVlbGEpXCIsc3g6XCJTdXR1XCIsc3c6XCJTd2FoaWxpXCIsc3Y6XCJTd2VkaXNoXCIsXCJzdi1GSVwiOlwiU3dlZGlzaCAoRmlubGFuZClcIixcInN2LVNWXCI6XCJTd2VkaXNoIChTd2VkZW4pXCIsdGE6XCJUYW1pbFwiLHR0OlwiVGF0YXJcIix0ZTpcIlRlbHVnYVwiLHRoOlwiVGhhaVwiLHRpZzpcIlRpZ3JlXCIsdHM6XCJUc29uZ2FcIix0bjpcIlRzd2FuYVwiLHRyOlwiVHVya2lzaFwiLHRrOlwiVHVya21lblwiLHVrOlwiVWtyYWluaWFuXCIsaHNiOlwiVXBwZXIgU29yYmlhblwiLHVyOlwiVXJkdVwiLHZlOlwiVmVuZGFcIix2aTpcIlZpZXRuYW1lc2VcIix2bzpcIlZvbGFwdWtcIix3YTpcIldhbGxvb25cIixjeTpcIldlbHNoXCIseGg6XCJYaG9zYVwiLGppOlwiWWlkZGlzaFwiLHp1OlwiWnVsdVwifVt0XSYmKHRoaXMuaW50ZXJuYWwubGFuZ3VhZ2VTZXR0aW5ncy5sYW5ndWFnZUNvZGU9dCwhMT09PXRoaXMuaW50ZXJuYWwubGFuZ3VhZ2VTZXR0aW5ncy5pc1N1YnNjcmliZWQmJih0aGlzLmludGVybmFsLmV2ZW50cy5zdWJzY3JpYmUoXCJwdXRDYXRhbG9nXCIsZnVuY3Rpb24oKXt0aGlzLmludGVybmFsLndyaXRlKFwiL0xhbmcgKFwiK3RoaXMuaW50ZXJuYWwubGFuZ3VhZ2VTZXR0aW5ncy5sYW5ndWFnZUNvZGUrXCIpXCIpfSksdGhpcy5pbnRlcm5hbC5sYW5ndWFnZVNldHRpbmdzLmlzU3Vic2NyaWJlZD0hMCkpLHRoaXN9LFxuLyoqIEBsaWNlbnNlXG4gKiBNSVQgbGljZW5zZS5cbiAqIENvcHlyaWdodCAoYykgMjAxMiBXaWxsb3cgU3lzdGVtcyBDb3Jwb3JhdGlvbiwgaHR0cHM6Ly9naXRodWIuY29tL3dpbGxvd3N5c3RlbXNcbiAqICAgICAgICAgICAgICAgMjAxNCBEaWVnbyBDYXNvcnJhbiwgaHR0cHM6Ly9naXRodWIuY29tL2RpZWdvY3JcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmdcbiAqIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuICogXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4gKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4gKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG9cbiAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0b1xuICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlXG4gKiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELFxuICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORFxuICogTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRVxuICogTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTlxuICogT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OXG4gKiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cbkJ0PUMuQVBJLHF0PUJ0LmdldENoYXJXaWR0aHNBcnJheT1mdW5jdGlvbih0LGUpe3ZhciByLG4saT0oZT1lfHx7fSkuZm9udHx8dGhpcy5pbnRlcm5hbC5nZXRGb250KCksYT1lLmZvbnRTaXplfHx0aGlzLmludGVybmFsLmdldEZvbnRTaXplKCksbz1lLmNoYXJTcGFjZXx8dGhpcy5pbnRlcm5hbC5nZXRDaGFyU3BhY2UoKSxzPWUud2lkdGhzP2Uud2lkdGhzOmkubWV0YWRhdGEuVW5pY29kZS53aWR0aHMsYz1zLmZvZj9zLmZvZjoxLHU9ZS5rZXJuaW5nP2Uua2VybmluZzppLm1ldGFkYXRhLlVuaWNvZGUua2VybmluZyxsPXUuZm9mP3UuZm9mOjEsaD0hMSE9PWUuZG9LZXJuaW5nLGY9MCxkPXQubGVuZ3RoLHA9MCxnPXNbMF18fGMsbT1bXTtmb3Iocj0wO3I8ZDtyKyspbj10LmNoYXJDb2RlQXQociksXCJmdW5jdGlvblwiPT10eXBlb2YgaS5tZXRhZGF0YS53aWR0aE9mU3RyaW5nP20ucHVzaCgoaS5tZXRhZGF0YS53aWR0aE9mR2x5cGgoaS5tZXRhZGF0YS5jaGFyYWN0ZXJUb0dseXBoKG4pKStvKigxZTMvYSl8fDApLzFlMyk6KGY9aCYmXCJvYmplY3RcIj09dHlwZW9mIHVbbl0mJiFpc05hTihwYXJzZUludCh1W25dW3BdLDEwKSk/dVtuXVtwXS9sOjAsbS5wdXNoKChzW25dfHxnKS9jK2YpKSxwPW47cmV0dXJuIG19LE10PUJ0LmdldFN0cmluZ1VuaXRXaWR0aD1mdW5jdGlvbih0LGUpe3ZhciByPShlPWV8fHt9KS5mb250U2l6ZXx8dGhpcy5pbnRlcm5hbC5nZXRGb250U2l6ZSgpLG49ZS5mb250fHx0aGlzLmludGVybmFsLmdldEZvbnQoKSxpPWUuY2hhclNwYWNlfHx0aGlzLmludGVybmFsLmdldENoYXJTcGFjZSgpO3JldHVybiBCdC5wcm9jZXNzQXJhYmljJiYodD1CdC5wcm9jZXNzQXJhYmljKHQpKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuLm1ldGFkYXRhLndpZHRoT2ZTdHJpbmc/bi5tZXRhZGF0YS53aWR0aE9mU3RyaW5nKHQscixpKS9yOnF0LmFwcGx5KHRoaXMsYXJndW1lbnRzKS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSwwKX0sRXQ9ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBpPVtdLGE9MCxvPXQubGVuZ3RoLHM9MDthIT09byYmcytlW2FdPHI7KXMrPWVbYV0sYSsrO2kucHVzaCh0LnNsaWNlKDAsYSkpO3ZhciBjPWE7Zm9yKHM9MDthIT09bzspcytlW2FdPm4mJihpLnB1c2godC5zbGljZShjLGEpKSxzPTAsYz1hKSxzKz1lW2FdLGErKztyZXR1cm4gYyE9PWEmJmkucHVzaCh0LnNsaWNlKGMsYSkpLGl9LFJ0PWZ1bmN0aW9uKHQsZSxyKXtyfHwocj17fSk7dmFyIG4saSxhLG8scyxjLHUsbD1bXSxoPVtsXSxmPXIudGV4dEluZGVudHx8MCxkPTAscD0wLGc9dC5zcGxpdChcIiBcIiksbT1xdC5hcHBseSh0aGlzLFtcIiBcIixyXSlbMF07aWYoYz0tMT09PXIubGluZUluZGVudD9nWzBdLmxlbmd0aCsyOnIubGluZUluZGVudHx8MCl7dmFyIHY9QXJyYXkoYykuam9pbihcIiBcIiksYj1bXTtnLm1hcChmdW5jdGlvbih0KXsodD10LnNwbGl0KC9cXHMqXFxuLykpLmxlbmd0aD4xP2I9Yi5jb25jYXQodC5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4oZSYmdC5sZW5ndGg/XCJcXG5cIjpcIlwiKSt0fSkpOmIucHVzaCh0WzBdKX0pLGc9YixjPU10LmFwcGx5KHRoaXMsW3Yscl0pfWZvcihhPTAsbz1nLmxlbmd0aDthPG87YSsrKXt2YXIgeT0wO2lmKG49Z1thXSxjJiZcIlxcblwiPT1uWzBdJiYobj1uLnN1YnN0cigxKSx5PTEpLGYrZCsocD0oaT1xdC5hcHBseSh0aGlzLFtuLHJdKSkucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0sMCkpPmV8fHkpe2lmKHA+ZSl7Zm9yKHM9RXQuYXBwbHkodGhpcyxbbixpLGUtKGYrZCksZV0pLGwucHVzaChzLnNoaWZ0KCkpLGw9W3MucG9wKCldO3MubGVuZ3RoOyloLnB1c2goW3Muc2hpZnQoKV0pO3A9aS5zbGljZShuLmxlbmd0aC0obFswXT9sWzBdLmxlbmd0aDowKSkucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0sMCl9ZWxzZSBsPVtuXTtoLnB1c2gobCksZj1wK2MsZD1tfWVsc2UgbC5wdXNoKG4pLGYrPWQrcCxkPW19cmV0dXJuIHU9Yz9mdW5jdGlvbih0LGUpe3JldHVybihlP3Y6XCJcIikrdC5qb2luKFwiIFwiKX06ZnVuY3Rpb24odCl7cmV0dXJuIHQuam9pbihcIiBcIil9LGgubWFwKHUpfSxCdC5zcGxpdFRleHRUb1NpemU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGk9KHI9cnx8e30pLmZvbnRTaXplfHx0aGlzLmludGVybmFsLmdldEZvbnRTaXplKCksYT1mdW5jdGlvbih0KXtpZih0LndpZHRocyYmdC5rZXJuaW5nKXJldHVybnt3aWR0aHM6dC53aWR0aHMsa2VybmluZzp0Lmtlcm5pbmd9O3ZhciBlPXRoaXMuaW50ZXJuYWwuZ2V0Rm9udCh0LmZvbnROYW1lLHQuZm9udFN0eWxlKSxyPVwiVW5pY29kZVwiO3JldHVybiBlLm1ldGFkYXRhW3JdP3t3aWR0aHM6ZS5tZXRhZGF0YVtyXS53aWR0aHN8fHswOjF9LGtlcm5pbmc6ZS5tZXRhZGF0YVtyXS5rZXJuaW5nfHx7fX06e2ZvbnQ6ZS5tZXRhZGF0YSxmb250U2l6ZTp0aGlzLmludGVybmFsLmdldEZvbnRTaXplKCksY2hhclNwYWNlOnRoaXMuaW50ZXJuYWwuZ2V0Q2hhclNwYWNlKCl9fS5jYWxsKHRoaXMscik7bj1BcnJheS5pc0FycmF5KHQpP3Q6U3RyaW5nKHQpLnNwbGl0KC9cXHI/XFxuLyk7dmFyIG89MSp0aGlzLmludGVybmFsLnNjYWxlRmFjdG9yKmUvaTthLnRleHRJbmRlbnQ9ci50ZXh0SW5kZW50PzEqci50ZXh0SW5kZW50KnRoaXMuaW50ZXJuYWwuc2NhbGVGYWN0b3IvaTowLGEubGluZUluZGVudD1yLmxpbmVJbmRlbnQ7dmFyIHMsYyx1PVtdO2ZvcihzPTAsYz1uLmxlbmd0aDtzPGM7cysrKXU9dS5jb25jYXQoUnQuYXBwbHkodGhpcyxbbltzXSxvLGFdKSk7cmV0dXJuIHV9LFxuLyoqIEBsaWNlbnNlXG4ganNQREYgc3RhbmRhcmRfZm9udHNfbWV0cmljcyBwbHVnaW5cbiAqIENvcHlyaWdodCAoYykgMjAxMiBXaWxsb3cgU3lzdGVtcyBDb3Jwb3JhdGlvbiwgaHR0cHM6Ly9naXRodWIuY29tL3dpbGxvd3N5c3RlbXNcbiAqIE1JVCBsaWNlbnNlLlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nXG4gKiBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbiAqIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuICogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvXG4gKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG9cbiAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqIFxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmVcbiAqIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICogXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELFxuICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORFxuICogTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRVxuICogTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTlxuICogT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OXG4gKiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cbmZ1bmN0aW9uKHQpe3QuX19mb250bWV0cmljc19fPXQuX19mb250bWV0cmljc19ffHx7fTtmb3IodmFyIGU9XCIwMTIzNDU2Nzg5YWJjZGVmXCIscj1cImtsbW5vcHFyc3R1dnd4eXpcIixuPXt9LGk9e30sYT0wO2E8MTY7YSsrKW5bclthXV09ZVthXSxpW2VbYV1dPXJbYV07dmFyIG89ZnVuY3Rpb24odCl7cmV0dXJuXCIweFwiK3BhcnNlSW50KHQsMTApLnRvU3RyaW5nKDE2KX0scz10Ll9fZm9udG1ldHJpY3NfXy5jb21wcmVzcz1mdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxjPVtcIntcIl07Zm9yKHZhciB1IGluIHQpe2lmKGU9dFt1XSxpc05hTihwYXJzZUludCh1LDEwKSk/cj1cIidcIit1K1wiJ1wiOih1PXBhcnNlSW50KHUsMTApLHI9KHI9byh1KS5zbGljZSgyKSkuc2xpY2UoMCwtMSkraVtyLnNsaWNlKC0xKV0pLFwibnVtYmVyXCI9PXR5cGVvZiBlKWU8MD8obj1vKGUpLnNsaWNlKDMpLGE9XCItXCIpOihuPW8oZSkuc2xpY2UoMiksYT1cIlwiKSxuPWErbi5zbGljZSgwLC0xKStpW24uc2xpY2UoLTEpXTtlbHNle2lmKFwib2JqZWN0XCIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcihcIkRvbid0IGtub3cgd2hhdCB0byBkbyB3aXRoIHZhbHVlIHR5cGUgXCIrdHlwZW9mIGUrXCIuXCIpO249cyhlKX1jLnB1c2gocituKX1yZXR1cm4gYy5wdXNoKFwifVwiKSxjLmpvaW4oXCJcIil9LGM9dC5fX2ZvbnRtZXRyaWNzX18udW5jb21wcmVzcz1mdW5jdGlvbih0KXtpZihcInN0cmluZ1wiIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCB0byB1bmNvbXByZXNzLlwiKTtmb3IodmFyIGUscixpLGEsbz17fSxzPTEsYz1vLHU9W10sbD1cIlwiLGg9XCJcIixmPXQubGVuZ3RoLTEsZD0xO2Q8ZjtkKz0xKVwiJ1wiPT0oYT10W2RdKT9lPyhpPWUuam9pbihcIlwiKSxlPXZvaWQgMCk6ZT1bXTplP2UucHVzaChhKTpcIntcIj09YT8odS5wdXNoKFtjLGldKSxjPXt9LGk9dm9pZCAwKTpcIn1cIj09YT8oKHI9dS5wb3AoKSlbMF1bclsxXV09YyxpPXZvaWQgMCxjPXJbMF0pOlwiLVwiPT1hP3M9LTE6dm9pZCAwPT09aT9uLmhhc093blByb3BlcnR5KGEpPyhsKz1uW2FdLGk9cGFyc2VJbnQobCwxNikqcyxzPTEsbD1cIlwiKTpsKz1hOm4uaGFzT3duUHJvcGVydHkoYSk/KGgrPW5bYV0sY1tpXT1wYXJzZUludChoLDE2KSpzLHM9MSxpPXZvaWQgMCxoPVwiXCIpOmgrPWE7cmV0dXJuIG99LHU9e2NvZGVQYWdlczpbXCJXaW5BbnNpRW5jb2RpbmdcIl0sV2luQW5zaUVuY29kaW5nOmMoXCJ7MTltOG4yMDFuOXEyMDFvOXIyMDFzOWwyMDF0OW0yMDF1OG0yMDF3OW4yMDF4OW8yMDF5OG8yMDJrOHEyMDJsOHIyMDJtOXAyMDJxOHAyMGF3OGsyMDNrOHQyMDN0OHYyMDN1OXYyY3E4czIxMm05dDE1bTh3MTVuOXcyZHc5czE2azh1MTZsOXUxN3M5ejE3eDh5MTd5OXl9XCIpfSxsPXtVbmljb2RlOntDb3VyaWVyOnUsXCJDb3VyaWVyLUJvbGRcIjp1LFwiQ291cmllci1Cb2xkT2JsaXF1ZVwiOnUsXCJDb3VyaWVyLU9ibGlxdWVcIjp1LEhlbHZldGljYTp1LFwiSGVsdmV0aWNhLUJvbGRcIjp1LFwiSGVsdmV0aWNhLUJvbGRPYmxpcXVlXCI6dSxcIkhlbHZldGljYS1PYmxpcXVlXCI6dSxcIlRpbWVzLVJvbWFuXCI6dSxcIlRpbWVzLUJvbGRcIjp1LFwiVGltZXMtQm9sZEl0YWxpY1wiOnUsXCJUaW1lcy1JdGFsaWNcIjp1fX0saD17VW5pY29kZTp7XCJDb3VyaWVyLU9ibGlxdWVcIjpjKFwieyd3aWR0aHMne2szdydmb2YnNm99J2tlcm5pbmcneydmb2YnLTZvfX1cIiksXCJUaW1lcy1Cb2xkSXRhbGljXCI6YyhcInsnd2lkdGhzJ3trM28ycTR5Y3gycjIwMW4zbTIwMW82bzIwMXMybDIwMXQybDIwMXUybDIwMXczbTIwMXgzbTIwMXkzbTJrMXQybDJyMjAybTJuMm4zbTJvM20ycDVuMjAycTZvMnIxdzJzMmwydDJsMnUzbTJ2M3QydzF0MngybDJ5MXQyejF3M2szbTNsM20zbTNtM24zbTNvM20zcDNtM3EzbTNyM20zczNtMjAzdDJsMjAzdTJsM3YybDN3M3QzeDN0M3kzdDN6M200azVuNGw0bTRtNG00bjRtNG80czRwNG00cTRtNHI0czRzNHk0dDJyNHUzbTR2NG00dzN4NHg1dDR5NHM0ejRzNWszeDVsNHM1bTRtNW4zcjVvM3g1cDRzNXE0bTVyNXQ1czRtNXQzeDV1M3g1djJsNXcxdzV4Mmw1eTN0NXozbTZrMmw2bDNtNm0zbTZuMnc2bzNtNnAydzZxMmw2cjNtNnMzcjZ0MXc2dTF3NnYzbTZ3MXc2eDR5NnkzcjZ6M203azNtN2wzbTdtMnI3bjJyN28xdzdwM3I3cTJ3N3I0bTdzM203dDJ3N3Uycjd2Mm43dzFxN3gybjd5M3QyMDJsM21jbDRtYWwycmFtM21hbjNtYW8zbWFwM21hcjNtYXMybGF0NHVhdTF1YXYzbWF3M3dheTR1YXoybGJrMnNibDN0J2ZvZic2b2JvMmxicDN0YnEzbWJyMXRiczJsYnUxeWJ2M21iejNtY2s0bTIwMmszbWNtNG1jbjRtY280bWNwNG1jcTV5Y3I0bWNzNG1jdDRtY3U0bWN2NG1jdzJyMm0zcmN5MnJjejJyZGw0c2RtNHNkbjRzZG80c2RwNHNkcTRzZHM0c2R0NHNkdTRzZHY0c2R3NHNkejNtZWszbWVsM21lbTNtZW4zbWVvM21lcDNtZXE0c2VyMndlczJ3ZXQyd2V1MndldjJ3ZXcxd2V4MXdleTF3ZXoxd2ZsM3JmbTNtZm4zbWZvM21mcDNtZnEzbWZyM3RmczNtZnQzcmZ1M3JmdjNyZnczcmZ6MncyMDNrNm8yMTJtNm8yZHcybDJjcTJsM3QzbTN1MmwxN3MzeDE5bTNtfSdrZXJuaW5nJ3tjbHs0cXU1a3Q1cXQ1cnMxN3NzNXRzfTIwMXN7MjAxc3N9MjAxdHtja3M0bHNjbXNjbnNjb3NjcHNjbHMyd3UyeXUyMDF0c30yMDF4ezJ3dTJ5dX0ya3syMDF0c30yd3s0cXg1a3g1b3U1cXg1cnMxN3N1NXR1fTJ4ezE3c3U1dHU1b3V9Mnl7NHF4NWt4NW91NXF4NXJzMTdzczV0c30nZm9mJy02b2ZuezE3c3c1dHc1b3U1cXc1cnN9N3R7Y2tzY2xzY21zY25zY29zY3BzNGxzfTN1ezE3c3U1dHU1b3M1cXN9M3Z7MTdzdTV0dTVvczVxc303cHsxN3N1NXR1fWNrezRxdTVrdDVxdDVyczE3c3M1dHN9NGx7NHF1NWt0NXF0NXJzMTdzczV0c31jbXs0cXU1a3Q1cXQ1cnMxN3NzNXRzfWNuezRxdTVrdDVxdDVyczE3c3M1dHN9Y297NHF1NWt0NXF0NXJzMTdzczV0c31jcHs0cXU1a3Q1cXQ1cnMxN3NzNXRzfTZsezRxdTVvdTVxdzVydDE3c3U1dHV9NXF7Y2t1Y2x1Y211Y251Y291Y3B1NGx1fTVye2NrdWNsdWNtdWNudWNvdWNwdTRsdX03cXtja3NjbHNjbXNjbnNjb3NjcHM0bHN9NnB7NHF1NW91NXF3NXJ0MTdzdzV0d31la3s0cXU1b3U1cXc1cnQxN3N1NXR1fWVsezRxdTVvdTVxdzVydDE3c3U1dHV9ZW17NHF1NW91NXF3NXJ0MTdzdTV0dX1lbns0cXU1b3U1cXc1cnQxN3N1NXR1fWVvezRxdTVvdTVxdzVydDE3c3U1dHV9ZXB7NHF1NW91NXF3NXJ0MTdzdTV0dX1lc3sxN3NzNXRzNXFzNHF1fWV0ezRxdTVvdTVxdzVydDE3c3c1dHd9ZXV7NHF1NW91NXF3NXJ0MTdzczV0c31ldnsxN3NzNXRzNXFzNHF1fTZ6ezE3c3c1dHc1b3U1cXc1cnN9Zm17MTdzdzV0dzVvdTVxdzVyc303bnsyMDF0c31mb3sxN3N3NXR3NW91NXF3NXJzfWZwezE3c3c1dHc1b3U1cXc1cnN9ZnF7MTdzdzV0dzVvdTVxdzVyc303cntja3NjbHNjbXNjbnNjb3NjcHM0bHN9ZnN7MTdzdzV0dzVvdTVxdzVyc31mdHsxN3N1NXR1fWZ1ezE3c3U1dHV9ZnZ7MTdzdTV0dX1md3sxN3N1NXR1fWZ6e2Nrc2Nsc2Ntc2Nuc2Nvc2NwczRsc319fVwiKSxcIkhlbHZldGljYS1Cb2xkXCI6YyhcInsnd2lkdGhzJ3trM3MycTRzY3gxdzIwMW4zcjIwMW82bzIwMXMxdzIwMXQxdzIwMXUxdzIwMXczbTIwMXgzbTIwMXkzbTJrMXcybDJsMjAybTJuMm4zcjJvM3IycDV0MjAycTZvMnIxczJzMmwydDJsMnUycjJ2M3UydzF3MngybDJ5MXcyejF3M2szcjNsM3IzbTNyM24zcjNvM3IzcDNyM3EzcjNyM3IzczNyMjAzdDJsMjAzdTJsM3YybDN3M3UzeDN1M3kzdTN6M3g0azZsNGw0czRtNHM0bjRzNG80czRwNG00cTN4NHI0eTRzNHM0dDF3NHUzcjR2NHM0dzN4NHg1bjR5NHM0ejR5NWs0bTVsNHk1bTRzNW40bTVvM3g1cDRzNXE0bTVyNXk1czRtNXQ0bTV1M3g1djJsNXcxdzV4Mmw1eTN1NXozcjZrMmw2bDNyNm0zeDZuM3I2bzN4NnAzcjZxMmw2cjN4NnMzeDZ0MXc2dTF3NnYzcjZ3MXc2eDV0NnkzeDZ6M3g3azN4N2wzeDdtMnI3bjNyN28ybDdwM3g3cTNyN3I0eTdzM3I3dDNyN3UzbTd2MnI3dzF3N3gycjd5M3UyMDJsM3JjbDRzYWwybGFtM3JhbjNyYW8zcmFwM3JhcjNyYXMybGF0NHRhdTJwYXYzcmF3M3VheTR0YXoybGJrMnNibDN1J2ZvZic2b2JvMmxicDN4YnEzcmJyMXdiczJsYnUyb2J2M3JiejN4Y2s0czIwMmszcmNtNHNjbjRzY280c2NwNHNjcTZvY3I0c2NzNG1jdDRtY3U0bWN2NG1jdzF3Mm0yemN5MXdjejF3ZGw0c2RtNHlkbjR5ZG80eWRwNHlkcTR5ZHM0eWR0NHNkdTRzZHY0c2R3NHNkejN4ZWszcmVsM3JlbTNyZW4zcmVvM3JlcDNyZXE1dGVyM3JlczNyZXQzcmV1M3JldjNyZXcxd2V4MXdleTF3ZXoxd2ZsM3hmbTN4Zm4zeGZvM3hmcDN4ZnEzeGZyM3VmczN4ZnQzeGZ1M3hmdjN4ZnczeGZ6M3IyMDNrNm8yMTJtNm8yZHcybDJjcTJsM3QzcjN1MmwxN3M0bTE5bTNyfSdrZXJuaW5nJ3tjbHs0cXM1a3U1b3Q1cXMxN3N2NXR2fTIwMXR7Mnd3NHd5Mnl3fTIwMXd7MmtzfTIwMXh7Mnd3NHd5Mnl3fTJrezIwMXRzMjAxeHN9Mnd7N3FzNHF1NWt3NW9zNXF3NXJzMTdzdTV0dTd0c2Z6c30yeHs1b3c1cXN9Mnl7N3FzNHF1NWt3NW9zNXF3NXJzMTdzdTV0dTd0c2Z6c30nZm9mJy02bzdwezE3c3U1dHU1b3R9Y2t7NHFzNWt1NW90NXFzMTdzdjV0dn00bHs0cXM1a3U1b3Q1cXMxN3N2NXR2fWNtezRxczVrdTVvdDVxczE3c3Y1dHZ9Y257NHFzNWt1NW90NXFzMTdzdjV0dn1jb3s0cXM1a3U1b3Q1cXMxN3N2NXR2fWNwezRxczVrdTVvdDVxczE3c3Y1dHZ9Nmx7MTdzdDV0dDVvc30xN3N7Mmt3Y2x2Y212Y252Y292Y3B2NGx2NHd3Y2t2fTVvezJrdWNsdGNtdGNudGNvdGNwdDRsdDR3dGNrdH01cXsya3NjbHNjbXNjbnNjb3NjcHM0bHM0d3Zja3N9NXJ7MmtzNHdzfTV0ezJrd2NsdmNtdmNudmNvdmNwdjRsdjR3d2Nrdn1lb3sxN3N0NXR0NW9zfWZ1ezE3c3U1dHU1b3R9NnB7MTdzczV0c31la3sxN3N0NXR0NW9zfWVsezE3c3Q1dHQ1b3N9ZW17MTdzdDV0dDVvc31lbnsxN3N0NXR0NW9zfTZvezIwMXRzfWVwezE3c3Q1dHQ1b3N9ZXN7MTdzczV0c31ldHsxN3NzNXRzfWV1ezE3c3M1dHN9ZXZ7MTdzczV0c302ensxN3N1NXR1NW9zNXF0fWZtezE3c3U1dHU1b3M1cXR9Zm57MTdzdTV0dTVvczVxdH1mb3sxN3N1NXR1NW9zNXF0fWZwezE3c3U1dHU1b3M1cXR9ZnF7MTdzdTV0dTVvczVxdH1mc3sxN3N1NXR1NW9zNXF0fWZ0ezE3c3U1dHU1b3R9N217NW9zfWZ2ezE3c3U1dHU1b3R9Znd7MTdzdTV0dTVvdH19fVwiKSxDb3VyaWVyOmMoXCJ7J3dpZHRocyd7azN3J2ZvZic2b30na2VybmluZyd7J2ZvZictNm99fVwiKSxcIkNvdXJpZXItQm9sZE9ibGlxdWVcIjpjKFwieyd3aWR0aHMne2szdydmb2YnNm99J2tlcm5pbmcneydmb2YnLTZvfX1cIiksXCJUaW1lcy1Cb2xkXCI6YyhcInsnd2lkdGhzJ3trM3EycTVuY3gycjIwMW4zbTIwMW82bzIwMXMybDIwMXQybDIwMXUybDIwMXczbTIwMXgzbTIwMXkzbTJrMXQybDJsMjAybTJuMm4zbTJvM20ycDZvMjAycTZvMnIxdzJzMmwydDJsMnUzbTJ2M3QydzF0MngybDJ5MXQyejF3M2szbTNsM20zbTNtM24zbTNvM20zcDNtM3EzbTNyM20zczNtMjAzdDJsMjAzdTJsM3YybDN3M3QzeDN0M3kzdDN6M200azV4NGw0czRtNG00bjRzNG80czRwNG00cTN4NHI0eTRzNHk0dDJyNHUzbTR2NHk0dzRtNHg1eTR5NHM0ejR5NWszeDVsNHk1bTRzNW4zcjVvNG01cDRzNXE0czVyNm81czRzNXQ0czV1NG01djJsNXcxdzV4Mmw1eTN1NXozbTZrMmw2bDNtNm0zcjZuMnc2bzNyNnAydzZxMmw2cjNtNnMzcjZ0MXc2dTJsNnYzcjZ3MXc2eDVuNnkzcjZ6M203azNyN2wzcjdtMnc3bjJyN28ybDdwM3I3cTNtN3I0czdzM203dDNtN3Uydzd2MnI3dzFxN3gycjd5M28yMDJsM21jbDRzYWwybGFtM21hbjNtYW8zbWFwM21hcjNtYXMybGF0NHVhdTF5YXYzbWF3M3RheTR1YXoybGJrMnNibDN0J2ZvZic2b2JvMmxicDNyYnIxdGJzMmxidTJsYnYzbWJ6M21jazRzMjAyazNtY200c2NuNHNjbzRzY3A0c2NxNm9jcjRzY3M0bWN0NG1jdTRtY3Y0bWN3MnIybTNyY3kycmN6MnJkbDRzZG00eWRuNHlkbzR5ZHA0eWRxNHlkczR5ZHQ0c2R1NHNkdjRzZHc0c2R6M3JlazNtZWwzbWVtM21lbjNtZW8zbWVwM21lcTRzZXIyd2VzMndldDJ3ZXUyd2V2MndldzF3ZXgxd2V5MXdlejF3ZmwzcmZtM21mbjNtZm8zbWZwM21mcTNtZnIzdGZzM21mdDNyZnUzcmZ2M3JmdzNyZnozbTIwM2s2bzIxMm02bzJkdzJsMmNxMmwzdDNtM3UybDE3czRzMTltM219J2tlcm5pbmcne2NsezRxdDVrczVvdDVxeTVydzE3c3Y1dHZ9MjAxdHtja3M0bHNjbXNjbnNjb3NjcHNjbHM0d3Z9Mmt7MjAxdHN9Mnd7NHF1NWt1N211NW9zNXF4NXJ1MTdzdTV0dX0yeHsxN3N1NXR1NW91NXFzfTJ5ezRxdjVrdjdtdTVvdDVxejVydTE3c3U1dHV9J2ZvZictNm83dHtja3NjbHNjbXNjbnNjb3NjcHM0bHN9M3V7MTdzdTV0dTVvczVxdX0zdnsxN3N1NXR1NW9zNXF1fWZ1ezE3c3U1dHU1b3U1cXV9N3B7MTdzdTV0dTVvdTVxdX1ja3s0cXQ1a3M1b3Q1cXk1cncxN3N2NXR2fTRsezRxdDVrczVvdDVxeTVydzE3c3Y1dHZ9Y217NHF0NWtzNW90NXF5NXJ3MTdzdjV0dn1jbns0cXQ1a3M1b3Q1cXk1cncxN3N2NXR2fWNvezRxdDVrczVvdDVxeTVydzE3c3Y1dHZ9Y3B7NHF0NWtzNW90NXF5NXJ3MTdzdjV0dn02bHsxN3N0NXR0NW91NXF1fTE3c3tja3VjbHVjbXVjbnVjb3VjcHU0bHU0d3V9NW97Y2t1Y2x1Y211Y251Y291Y3B1NGx1NHd1fTVxe2NremNsemNtemNuemNvemNwejRsejR3dX01cntja3hjbHhjbXhjbnhjb3hjcHg0bHg0d3V9NXR7Y2t1Y2x1Y211Y251Y291Y3B1NGx1NHd1fTdxe2NrdWNsdWNtdWNudWNvdWNwdTRsdX02cHsxN3N3NXR3NW91NXF1fWVrezE3c3Q1dHQ1cXV9ZWx7MTdzdDV0dDVvdTVxdX1lbXsxN3N0NXR0NXF1fWVuezE3c3Q1dHQ1cXV9ZW97MTdzdDV0dDVxdX1lcHsxN3N0NXR0NW91NXF1fWVzezE3c3M1dHM1cXV9ZXR7MTdzdzV0dzVvdTVxdX1ldXsxN3N3NXR3NW91NXF1fWV2ezE3c3M1dHM1cXV9Nnp7MTdzdzV0dzVvdTVxdTVyc31mbXsxN3N3NXR3NW91NXF1NXJzfWZuezE3c3c1dHc1b3U1cXU1cnN9Zm97MTdzdzV0dzVvdTVxdTVyc31mcHsxN3N3NXR3NW91NXF1NXJzfWZxezE3c3c1dHc1b3U1cXU1cnN9N3J7Y2t0Y2x0Y210Y250Y290Y3B0NGx0NW9zfWZzezE3c3c1dHc1b3U1cXU1cnN9ZnR7MTdzdTV0dTVvdTVxdX03bXs1b3N9ZnZ7MTdzdTV0dTVvdTVxdX1md3sxN3N1NXR1NW91NXF1fWZ6e2Nrc2Nsc2Ntc2Nuc2Nvc2NwczRsc319fVwiKSxTeW1ib2w6YyhcInsnd2lkdGhzJ3trM3VhdzRyMTltM20yazF0MmwybDIwMm0yeTJuM20ycDVuMjAycTZvM2szbTJzMmwydDJsMnYzcjJ3MXQzbTNtMnkxdDJ6MXdiazJzYmwzcidmb2YnNm8zbjNtM28zbTNwM20zcTNtM3IzbTNzM20zdDNtM3UxdzN2MXczdzNyM3gzcjN5M3IzejJ3YnAzdDNsM201djJsNXgybDV6M20ycTR5ZnIzcjd2M2s3dzFvN3gza30na2VybmluZyd7J2ZvZictNm99fVwiKSxIZWx2ZXRpY2E6YyhcInsnd2lkdGhzJ3trM3AycTRtY3gxdzIwMW4zcjIwMW82bzIwMXMxcTIwMXQxcTIwMXUxcTIwMXcybDIwMXgybDIwMXkybDJrMXcybDF3MjAybTJuMm4zcjJvM3IycDV0MjAycTZvMnIxbjJzMmwydDJsMnUycjJ2M3UydzF3MngybDJ5MXcyejF3M2szcjNsM3IzbTNyM24zcjNvM3IzcDNyM3EzcjNyM3IzczNyMjAzdDJsMjAzdTJsM3YxdzN3M3UzeDN1M3kzdTN6M3I0azZwNGw0bTRtNG00bjRzNG80czRwNG00cTN4NHI0eTRzNHM0dDF3NHUzbTR2NG00dzNyNHg1bjR5NHM0ejR5NWs0bTVsNHk1bTRzNW40bTVvM3g1cDRzNXE0bTVyNXk1czRtNXQ0bTV1M3g1djF3NXcxdzV4MXc1eTJ6NXozcjZrMmw2bDNyNm0zcjZuM202bzNyNnAzcjZxMXc2cjNyNnMzcjZ0MXE2dTFxNnYzbTZ3MXE2eDVuNnkzcjZ6M3I3azNyN2wzcjdtMmw3bjNtN28xdzdwM3I3cTNtN3I0czdzM203dDNtN3UzbTd2Mmw3dzF1N3gybDd5M3UyMDJsM3JjbDRtYWwybGFtM3JhbjNyYW8zcmFwM3JhcjNyYXMybGF0NHRhdTJwYXYzcmF3M3VheTR0YXoybGJrMnNibDN1J2ZvZic2b2JvMmxicDNyYnIxd2JzMmxidTJvYnYzcmJ6M3hjazRtMjAyazNyY200bWNuNG1jbzRtY3A0bWNxNm9jcjRzY3M0bWN0NG1jdTRtY3Y0bWN3MXcybTJuY3kxd2N6MXdkbDRzZG00eWRuNHlkbzR5ZHA0eWRxNHlkczR5ZHQ0c2R1NHNkdjRzZHc0c2R6M3hlazNyZWwzcmVtM3JlbjNyZW8zcmVwM3JlcTV0ZXIzbWVzM3JldDNyZXUzcmV2M3JldzF3ZXgxd2V5MXdlejF3ZmwzcmZtM3JmbjNyZm8zcmZwM3JmcTNyZnIzdWZzM3hmdDNyZnUzcmZ2M3JmdzNyZnozbTIwM2s2bzIxMm02bzJkdzJsMmNxMmwzdDNyM3UxdzE3czRtMTltM3J9J2tlcm5pbmcnezVxezR3dn1jbHs0cXM1a3c1b3c1cXMxN3N2NXR2fTIwMXR7Mnd1NHcxazJ5dX0yMDF4ezJ3dTR3eTJ5dX0xN3N7Mmt0Y2x1Y211Y251NG90Y3B1NGx1NHd5Y291Y2t1fTJ3ezdxczRxejVrMW0xN3N5NW93NXF4NXJzZnN1NXR5N3R1Znp1fTJ4ezE3c3k1dHk1b3k1cXN9Mnl7N3FzNHF6NWsxbTE3c3k1b3c1cXg1cnNmc3U1dHk3dHVmenV9J2ZvZictNm83cHsxN3N2NXR2NW93fWNrezRxczVrdzVvdzVxczE3c3Y1dHZ9NGx7NHFzNWt3NW93NXFzMTdzdjV0dn1jbXs0cXM1a3c1b3c1cXMxN3N2NXR2fWNuezRxczVrdzVvdzVxczE3c3Y1dHZ9Y297NHFzNWt3NW93NXFzMTdzdjV0dn1jcHs0cXM1a3c1b3c1cXMxN3N2NXR2fTZsezE3c3k1dHk1b3d9ZG97MTdzdDV0dH00ensxN3N0NXR0fTdze2ZzdH1kbXsxN3N0NXR0fWRuezE3c3Q1dHR9NW97Y2t3Y2x3Y213Y253Y293Y3B3NGx3NHd2fWRwezE3c3Q1dHR9ZHF7MTdzdDV0dH03dHs1b3d9ZHN7MTdzdDV0dH01dHsya3RjbHVjbXVjbnU0b3RjcHU0bHU0d3ljb3Vja3V9ZnV7MTdzdjV0djVvd302cHsxN3N5NXR5NW93NXFzfWVrezE3c3k1dHk1b3d9ZWx7MTdzeTV0eTVvd31lbXsxN3N5NXR5NW93fWVuezV0eX1lb3sxN3N5NXR5NW93fWVwezE3c3k1dHk1b3d9ZXN7MTdzeTV0eTVxc31ldHsxN3N5NXR5NW93NXFzfWV1ezE3c3k1dHk1b3c1cXN9ZXZ7MTdzeTV0eTVvdzVxc302ensxN3N5NXR5NW93NXFzfWZtezE3c3k1dHk1b3c1cXN9Zm57MTdzeTV0eTVvdzVxc31mb3sxN3N5NXR5NW93NXFzfWZwezE3c3k1dHk1cXN9ZnF7MTdzeTV0eTVvdzVxc303cns1b3d9ZnN7MTdzeTV0eTVvdzVxc31mdHsxN3N2NXR2NW93fTdtezVvd31mdnsxN3N2NXR2NW93fWZ3ezE3c3Y1dHY1b3d9fX1cIiksXCJIZWx2ZXRpY2EtQm9sZE9ibGlxdWVcIjpjKFwieyd3aWR0aHMne2szczJxNHNjeDF3MjAxbjNyMjAxbzZvMjAxczF3MjAxdDF3MjAxdTF3MjAxdzNtMjAxeDNtMjAxeTNtMmsxdzJsMmwyMDJtMm4ybjNyMm8zcjJwNXQyMDJxNm8ycjFzMnMybDJ0MmwydTJyMnYzdTJ3MXcyeDJsMnkxdzJ6MXczazNyM2wzcjNtM3IzbjNyM28zcjNwM3IzcTNyM3IzcjNzM3IyMDN0MmwyMDN1MmwzdjJsM3czdTN4M3UzeTN1M3ozeDRrNmw0bDRzNG00czRuNHM0bzRzNHA0bTRxM3g0cjR5NHM0czR0MXc0dTNyNHY0czR3M3g0eDVuNHk0czR6NHk1azRtNWw0eTVtNHM1bjRtNW8zeDVwNHM1cTRtNXI1eTVzNG01dDRtNXUzeDV2Mmw1dzF3NXgybDV5M3U1ejNyNmsybDZsM3I2bTN4Nm4zcjZvM3g2cDNyNnEybDZyM3g2czN4NnQxdzZ1MXc2djNyNncxdzZ4NXQ2eTN4NnozeDdrM3g3bDN4N20ycjduM3I3bzJsN3AzeDdxM3I3cjR5N3Mzcjd0M3I3dTNtN3Yycjd3MXc3eDJyN3kzdTIwMmwzcmNsNHNhbDJsYW0zcmFuM3JhbzNyYXAzcmFyM3JhczJsYXQ0dGF1MnBhdjNyYXczdWF5NHRhejJsYmsyc2JsM3UnZm9mJzZvYm8ybGJwM3hicTNyYnIxd2JzMmxidTJvYnYzcmJ6M3hjazRzMjAyazNyY200c2NuNHNjbzRzY3A0c2NxNm9jcjRzY3M0bWN0NG1jdTRtY3Y0bWN3MXcybTJ6Y3kxd2N6MXdkbDRzZG00eWRuNHlkbzR5ZHA0eWRxNHlkczR5ZHQ0c2R1NHNkdjRzZHc0c2R6M3hlazNyZWwzcmVtM3JlbjNyZW8zcmVwM3JlcTV0ZXIzcmVzM3JldDNyZXUzcmV2M3JldzF3ZXgxd2V5MXdlejF3ZmwzeGZtM3hmbjN4Zm8zeGZwM3hmcTN4ZnIzdWZzM3hmdDN4ZnUzeGZ2M3hmdzN4ZnozcjIwM2s2bzIxMm02bzJkdzJsMmNxMmwzdDNyM3UybDE3czRtMTltM3J9J2tlcm5pbmcne2NsezRxczVrdTVvdDVxczE3c3Y1dHZ9MjAxdHsyd3c0d3kyeXd9MjAxd3sya3N9MjAxeHsyd3c0d3kyeXd9Mmt7MjAxdHMyMDF4c30yd3s3cXM0cXU1a3c1b3M1cXc1cnMxN3N1NXR1N3RzZnpzfTJ4ezVvdzVxc30yeXs3cXM0cXU1a3c1b3M1cXc1cnMxN3N1NXR1N3RzZnpzfSdmb2YnLTZvN3B7MTdzdTV0dTVvdH1ja3s0cXM1a3U1b3Q1cXMxN3N2NXR2fTRsezRxczVrdTVvdDVxczE3c3Y1dHZ9Y217NHFzNWt1NW90NXFzMTdzdjV0dn1jbns0cXM1a3U1b3Q1cXMxN3N2NXR2fWNvezRxczVrdTVvdDVxczE3c3Y1dHZ9Y3B7NHFzNWt1NW90NXFzMTdzdjV0dn02bHsxN3N0NXR0NW9zfTE3c3sya3djbHZjbXZjbnZjb3ZjcHY0bHY0d3dja3Z9NW97Mmt1Y2x0Y210Y250Y290Y3B0NGx0NHd0Y2t0fTVxezJrc2Nsc2Ntc2Nuc2Nvc2NwczRsczR3dmNrc301cnsya3M0d3N9NXR7Mmt3Y2x2Y212Y252Y292Y3B2NGx2NHd3Y2t2fWVvezE3c3Q1dHQ1b3N9ZnV7MTdzdTV0dTVvdH02cHsxN3NzNXRzfWVrezE3c3Q1dHQ1b3N9ZWx7MTdzdDV0dDVvc31lbXsxN3N0NXR0NW9zfWVuezE3c3Q1dHQ1b3N9Nm97MjAxdHN9ZXB7MTdzdDV0dDVvc31lc3sxN3NzNXRzfWV0ezE3c3M1dHN9ZXV7MTdzczV0c31ldnsxN3NzNXRzfTZ6ezE3c3U1dHU1b3M1cXR9Zm17MTdzdTV0dTVvczVxdH1mbnsxN3N1NXR1NW9zNXF0fWZvezE3c3U1dHU1b3M1cXR9ZnB7MTdzdTV0dTVvczVxdH1mcXsxN3N1NXR1NW9zNXF0fWZzezE3c3U1dHU1b3M1cXR9ZnR7MTdzdTV0dTVvdH03bXs1b3N9ZnZ7MTdzdTV0dTVvdH1md3sxN3N1NXR1NW90fX19XCIpLFphcGZEaW5nYmF0czpjKFwieyd3aWR0aHMne2s0dTJrMXcnZm9mJzZvfSdrZXJuaW5nJ3snZm9mJy02b319XCIpLFwiQ291cmllci1Cb2xkXCI6YyhcInsnd2lkdGhzJ3trM3cnZm9mJzZvfSdrZXJuaW5nJ3snZm9mJy02b319XCIpLFwiVGltZXMtSXRhbGljXCI6YyhcInsnd2lkdGhzJ3trM24ycTR5Y3gybDIwMW4zbTIwMW81dDIwMXMybDIwMXQybDIwMXUybDIwMXczcjIwMXgzcjIwMXkzcjJrMXQybDJsMjAybTJuMm4zbTJvM20ycDVuMjAycTV0MnIxcDJzMmwydDJsMnUzbTJ2NG4ydzF0MngybDJ5MXQyejF3M2szbTNsM20zbTNtM24zbTNvM20zcDNtM3EzbTNyM20zczNtMjAzdDJsMjAzdTJsM3YybDN3NG4zeDRuM3k0bjN6M200azV3NGwzeDRtM3g0bjRtNG80czRwM3g0cTN4NHI0czRzNHM0dDJsNHUydzR2NG00dzNyNHg1bjR5NG00ejRzNWszeDVsNHM1bTN4NW4zbTVvM3I1cDRzNXEzeDVyNW41czN4NXQzcjV1M3I1djJyNXcxdzV4MnI1eTJ1NXozbTZrMmw2bDNtNm0zbTZuMnc2bzNtNnAydzZxMXc2cjNtNnMzbTZ0MXc2dTF3NnYydzZ3MXc2eDRzNnkzbTZ6M203azNtN2wzbTdtMnI3bjJyN28xdzdwM203cTJ3N3I0bTdzMnc3dDJ3N3Uycjd2MnM3dzF2N3gyczd5M3EyMDJsM21jbDN4YWwycmFtM21hbjNtYW8zbWFwM21hcjNtYXMybGF0NHdhdTF2YXYzbWF3NG5heTR3YXoybGJrMnNibDRuJ2ZvZic2b2JvMmxicDNtYnEzb2JyMXRiczJsYnUxemJ2M21iejNtY2szeDIwMmszbWNtM3hjbjN4Y28zeGNwM3hjcTV0Y3I0bWNzM3hjdDN4Y3UzeGN2M3hjdzJsMm0ydWN5MmxjejJsZGw0bWRtNHNkbjRzZG80c2RwNHNkcTRzZHM0c2R0NHNkdTRzZHY0c2R3NHNkejNtZWszbWVsM21lbTNtZW4zbWVvM21lcDNtZXE0bWVyMndlczJ3ZXQyd2V1MndldjJ3ZXcxd2V4MXdleTF3ZXoxd2ZsM21mbTNtZm4zbWZvM21mcDNtZnEzbWZyNG5mczNtZnQzbWZ1M21mdjNtZnczbWZ6MncyMDNrNm8yMTJtNm0yZHcybDJjcTJsM3QzbTN1MmwxN3MzcjE5bTNtfSdrZXJuaW5nJ3tjbHs1a3Q0cXd9MjAxc3syMDFzd30yMDF0ezIwMXR3Mnd5Mnl5NnEtdH0yMDF4ezJ3eTJ5eX0ya3syMDF0d30yd3s3cXM0cXk3cnM1a3k3bXc1b3M1cXg1cnUxN3N1NXR1fTJ4ezE3c3M1dHM1b3N9Mnl7N3FzNHF5N3JzNWt5N213NW9zNXF4NXJ1MTdzdTV0dX0nZm9mJy02bzZ0ezE3c3M1dHM1cXN9N3R7NW9zfTN2ezVxc303cHsxN3N1NXR1NXFzfWNrezVrdDRxd300bHs1a3Q0cXd9Y217NWt0NHF3fWNuezVrdDRxd31jb3s1a3Q0cXd9Y3B7NWt0NHF3fTZsezRxczVrczVvdTVxdzVydTE3c3U1dHV9MTdzezJrc301cXtja3ZjbHZjbXZjbnZjb3ZjcHY0bHZ9NXJ7Y2t1Y2x1Y211Y251Y291Y3B1NGx1fTV0ezJrc302cHs0cXM1a3M1b3U1cXc1cnUxN3N1NXR1fWVrezRxczVrczVvdTVxdzVydTE3c3U1dHV9ZWx7NHFzNWtzNW91NXF3NXJ1MTdzdTV0dX1lbXs0cXM1a3M1b3U1cXc1cnUxN3N1NXR1fWVuezRxczVrczVvdTVxdzVydTE3c3U1dHV9ZW97NHFzNWtzNW91NXF3NXJ1MTdzdTV0dX1lcHs0cXM1a3M1b3U1cXc1cnUxN3N1NXR1fWVzezVrczVxczRxc31ldHs0cXM1a3M1b3U1cXc1cnUxN3N1NXR1fWV1ezRxczVrczVxdzVydTE3c3U1dHV9ZXZ7NWtzNXFzNHFzfWV4ezE3c3M1dHM1cXN9Nnp7NHF2NWtzNW91NXF3NXJ1MTdzdTV0dX1mbXs0cXY1a3M1b3U1cXc1cnUxN3N1NXR1fWZuezRxdjVrczVvdTVxdzVydTE3c3U1dHV9Zm97NHF2NWtzNW91NXF3NXJ1MTdzdTV0dX1mcHs0cXY1a3M1b3U1cXc1cnUxN3N1NXR1fWZxezRxdjVrczVvdTVxdzVydTE3c3U1dHV9N3J7NW9zfWZzezRxdjVrczVvdTVxdzVydTE3c3U1dHV9ZnR7MTdzdTV0dTVxc31mdXsxN3N1NXR1NXFzfWZ2ezE3c3U1dHU1cXN9Znd7MTdzdTV0dTVxc319fVwiKSxcIlRpbWVzLVJvbWFuXCI6YyhcInsnd2lkdGhzJ3trM24ycTR5Y3gybDIwMW4zbTIwMW82bzIwMXMybDIwMXQybDIwMXUybDIwMXcydzIwMXgydzIwMXkydzJrMXQybDJsMjAybTJuMm4zbTJvM20ycDVuMjAycTZvMnIxbTJzMmwydDJsMnUzbTJ2M3MydzF0MngybDJ5MXQyejF3M2szbTNsM20zbTNtM24zbTNvM20zcDNtM3EzbTNyM20zczNtMjAzdDJsMjAzdTJsM3YxdzN3M3MzeDNzM3kzczN6Mnc0azV3NGw0czRtNG00bjRtNG80czRwM3g0cTNyNHI0czRzNHM0dDJsNHUycjR2NHM0dzN4NHg1dDR5NHM0ejRzNWszcjVsNHM1bTRtNW4zcjVvM3g1cDRzNXE0czVyNXk1czRzNXQ0czV1M3g1djJsNXcxdzV4Mmw1eTJ6NXozbTZrMmw2bDJ3Nm0zbTZuMnc2bzNtNnAydzZxMmw2cjNtNnMzbTZ0MXc2dTF3NnYzbTZ3MXc2eDR5NnkzbTZ6M203azNtN2wzbTdtMmw3bjJyN28xdzdwM203cTNtN3I0czdzM203dDNtN3Uydzd2M2s3dzFvN3gzazd5M3EyMDJsM21jbDRzYWwybGFtM21hbjNtYW8zbWFwM21hcjNtYXMybGF0NHdhdTF2YXYzbWF3M3NheTR3YXoybGJrMnNibDNzJ2ZvZic2b2JvMmxicDNtYnEyeGJyMXRiczJsYnUxemJ2M21iejJ3Y2s0czIwMmszbWNtNHNjbjRzY280c2NwNHNjcTV0Y3I0bWNzM3hjdDN4Y3UzeGN2M3hjdzJsMm0ydGN5MmxjejJsZGw0c2RtNHNkbjRzZG80c2RwNHNkcTRzZHM0c2R0NHNkdTRzZHY0c2R3NHNkejNtZWsyd2VsMndlbTJ3ZW4yd2VvMndlcDJ3ZXE0bWVyMndlczJ3ZXQyd2V1MndldjJ3ZXcxd2V4MXdleTF3ZXoxd2ZsM21mbTNtZm4zbWZvM21mcDNtZnEzbWZyM3NmczNtZnQzbWZ1M21mdjNtZnczbWZ6M20yMDNrNm8yMTJtNm0yZHcybDJjcTJsM3QzbTN1MXcxN3M0czE5bTNtfSdrZXJuaW5nJ3tjbHs0cXM1a3UxN3N3NW91NXF5NXJ3MjAxc3M1dHcyMDF3c30yMDFzezIwMXNzfTIwMXR7Y2t3NGx3Y213Y253Y293Y3B3Y2x3NHd1MjAxdHN9Mmt7MjAxdHN9Mnd7NHFzNWt3NW9zNXF4NXJ1MTdzeDV0eH0yeHsxN3N3NXR3NW91NXF1fTJ5ezRxczVrdzVvczVxeDVydTE3c3g1dHh9J2ZvZictNm83dHtja3VjbHVjbXVjbnVjb3VjcHU0bHU1b3M1cnN9M3V7MTdzdTV0dTVxc30zdnsxN3N1NXR1NXFzfTdwezE3c3c1dHc1cXN9Y2t7NHFzNWt1MTdzdzVvdTVxeTVydzIwMXNzNXR3MjAxd3N9NGx7NHFzNWt1MTdzdzVvdTVxeTVydzIwMXNzNXR3MjAxd3N9Y217NHFzNWt1MTdzdzVvdTVxeTVydzIwMXNzNXR3MjAxd3N9Y257NHFzNWt1MTdzdzVvdTVxeTVydzIwMXNzNXR3MjAxd3N9Y297NHFzNWt1MTdzdzVvdTVxeTVydzIwMXNzNXR3MjAxd3N9Y3B7NHFzNWt1MTdzdzVvdTVxeTVydzIwMXNzNXR3MjAxd3N9Nmx7MTdzdTV0dTVvczVxdzVyc30xN3N7Mmt0Y2x2Y212Y252Y292Y3B2NGx2NHd1Y2t2fTVve2Nrd2Nsd2Ntd2Nud2Nvd2NwdzRsdzR3dX01cXtja3ljbHljbXljbnljb3ljcHk0bHk0d3U1bXN9NXJ7Y2t0Y2x0Y210Y250Y290Y3B0NGx0NHdzfTV0ezJrdGNsdmNtdmNudmNvdmNwdjRsdjR3dWNrdn03cXtja3NjbHNjbXNjbnNjb3NjcHM0bHN9NnB7MTdzdTV0dTVxdzVyc31la3s1cXM1cnN9ZWx7MTdzdTV0dTVvczVxdzVyc31lbXsxN3N1NXR1NW9zNXFzNXJzfWVuezE3c3U1cXM1cnN9ZW97NXFzNXJzfWVwezE3c3U1dHU1b3M1cXc1cnN9ZXN7NXFzfWV0ezE3c3U1dHU1cXc1cnN9ZXV7MTdzdTV0dTVxczVyc31ldns1cXN9Nnp7MTdzdjV0djVvczVxeDVyc31mbXs1b3M1cXQ1cnN9Zm57MTdzdjV0djVvczVxeDVyc31mb3sxN3N2NXR2NW9zNXF4NXJzfWZwezVvczVxdDVyc31mcXs1b3M1cXQ1cnN9N3J7Y2t1Y2x1Y211Y251Y291Y3B1NGx1NW9zfWZzezE3c3Y1dHY1b3M1cXg1cnN9ZnR7MTdzczV0czVxc31mdXsxN3N3NXR3NXFzfWZ2ezE3c3c1dHc1cXN9Znd7MTdzczV0czVxc31mentja3VjbHVjbXVjbnVjb3VjcHU0bHU1b3M1cnN9fX1cIiksXCJIZWx2ZXRpY2EtT2JsaXF1ZVwiOmMoXCJ7J3dpZHRocyd7azNwMnE0bWN4MXcyMDFuM3IyMDFvNm8yMDFzMXEyMDF0MXEyMDF1MXEyMDF3MmwyMDF4MmwyMDF5MmwyazF3MmwxdzIwMm0ybjJuM3IybzNyMnA1dDIwMnE2bzJyMW4yczJsMnQybDJ1MnIydjN1MncxdzJ4MmwyeTF3MnoxdzNrM3IzbDNyM20zcjNuM3IzbzNyM3AzcjNxM3IzcjNyM3MzcjIwM3QybDIwM3UybDN2MXczdzN1M3gzdTN5M3UzejNyNGs2cDRsNG00bTRtNG40czRvNHM0cDRtNHEzeDRyNHk0czRzNHQxdzR1M200djRtNHczcjR4NW40eTRzNHo0eTVrNG01bDR5NW00czVuNG01bzN4NXA0czVxNG01cjV5NXM0bTV0NG01dTN4NXYxdzV3MXc1eDF3NXkyejV6M3I2azJsNmwzcjZtM3I2bjNtNm8zcjZwM3I2cTF3NnIzcjZzM3I2dDFxNnUxcTZ2M202dzFxNng1bjZ5M3I2ejNyN2szcjdsM3I3bTJsN24zbTdvMXc3cDNyN3EzbTdyNHM3czNtN3QzbTd1M203djJsN3cxdTd4Mmw3eTN1MjAybDNyY2w0bWFsMmxhbTNyYW4zcmFvM3JhcDNyYXIzcmFzMmxhdDR0YXUycGF2M3JhdzN1YXk0dGF6MmxiazJzYmwzdSdmb2YnNm9ibzJsYnAzcmJyMXdiczJsYnUyb2J2M3JiejN4Y2s0bTIwMmszcmNtNG1jbjRtY280bWNwNG1jcTZvY3I0c2NzNG1jdDRtY3U0bWN2NG1jdzF3Mm0ybmN5MXdjejF3ZGw0c2RtNHlkbjR5ZG80eWRwNHlkcTR5ZHM0eWR0NHNkdTRzZHY0c2R3NHNkejN4ZWszcmVsM3JlbTNyZW4zcmVvM3JlcDNyZXE1dGVyM21lczNyZXQzcmV1M3JldjNyZXcxd2V4MXdleTF3ZXoxd2ZsM3JmbTNyZm4zcmZvM3JmcDNyZnEzcmZyM3VmczN4ZnQzcmZ1M3JmdjNyZnczcmZ6M20yMDNrNm8yMTJtNm8yZHcybDJjcTJsM3QzcjN1MXcxN3M0bTE5bTNyfSdrZXJuaW5nJ3s1cXs0d3Z9Y2x7NHFzNWt3NW93NXFzMTdzdjV0dn0yMDF0ezJ3dTR3MWsyeXV9MjAxeHsyd3U0d3kyeXV9MTdzezJrdGNsdWNtdWNudTRvdGNwdTRsdTR3eWNvdWNrdX0yd3s3cXM0cXo1azFtMTdzeTVvdzVxeDVyc2ZzdTV0eTd0dWZ6dX0yeHsxN3N5NXR5NW95NXFzfTJ5ezdxczRxejVrMW0xN3N5NW93NXF4NXJzZnN1NXR5N3R1Znp1fSdmb2YnLTZvN3B7MTdzdjV0djVvd31ja3s0cXM1a3c1b3c1cXMxN3N2NXR2fTRsezRxczVrdzVvdzVxczE3c3Y1dHZ9Y217NHFzNWt3NW93NXFzMTdzdjV0dn1jbns0cXM1a3c1b3c1cXMxN3N2NXR2fWNvezRxczVrdzVvdzVxczE3c3Y1dHZ9Y3B7NHFzNWt3NW93NXFzMTdzdjV0dn02bHsxN3N5NXR5NW93fWRvezE3c3Q1dHR9NHp7MTdzdDV0dH03c3tmc3R9ZG17MTdzdDV0dH1kbnsxN3N0NXR0fTVve2Nrd2Nsd2Ntd2Nud2Nvd2NwdzRsdzR3dn1kcHsxN3N0NXR0fWRxezE3c3Q1dHR9N3R7NW93fWRzezE3c3Q1dHR9NXR7Mmt0Y2x1Y211Y251NG90Y3B1NGx1NHd5Y291Y2t1fWZ1ezE3c3Y1dHY1b3d9NnB7MTdzeTV0eTVvdzVxc31la3sxN3N5NXR5NW93fWVsezE3c3k1dHk1b3d9ZW17MTdzeTV0eTVvd31lbns1dHl9ZW97MTdzeTV0eTVvd31lcHsxN3N5NXR5NW93fWVzezE3c3k1dHk1cXN9ZXR7MTdzeTV0eTVvdzVxc31ldXsxN3N5NXR5NW93NXFzfWV2ezE3c3k1dHk1b3c1cXN9Nnp7MTdzeTV0eTVvdzVxc31mbXsxN3N5NXR5NW93NXFzfWZuezE3c3k1dHk1b3c1cXN9Zm97MTdzeTV0eTVvdzVxc31mcHsxN3N5NXR5NXFzfWZxezE3c3k1dHk1b3c1cXN9N3J7NW93fWZzezE3c3k1dHk1b3c1cXN9ZnR7MTdzdjV0djVvd303bXs1b3d9ZnZ7MTdzdjV0djVvd31md3sxN3N2NXR2NW93fX19XCIpfX07dC5ldmVudHMucHVzaChbXCJhZGRGb250XCIsZnVuY3Rpb24odCl7dmFyIGU9dC5mb250LHI9aC5Vbmljb2RlW2UucG9zdFNjcmlwdE5hbWVdO3ImJihlLm1ldGFkYXRhLlVuaWNvZGU9e30sZS5tZXRhZGF0YS5Vbmljb2RlLndpZHRocz1yLndpZHRocyxlLm1ldGFkYXRhLlVuaWNvZGUua2VybmluZz1yLmtlcm5pbmcpO3ZhciBuPWwuVW5pY29kZVtlLnBvc3RTY3JpcHROYW1lXTtuJiYoZS5tZXRhZGF0YS5Vbmljb2RlLmVuY29kaW5nPW4sZS5lbmNvZGluZz1uLmNvZGVQYWdlc1swXSl9XSl9KEMuQVBJKSxcbi8qKlxuICogQGxpY2Vuc2VcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZVxuICovXG5mdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1uZXcgVWludDhBcnJheShlKSxuPTA7bjxlO24rKylyW25dPXQuY2hhckNvZGVBdChuKTtyZXR1cm4gcn07dC5BUEkuZXZlbnRzLnB1c2goW1wiYWRkRm9udFwiLGZ1bmN0aW9uKHIpe3ZhciBuPXZvaWQgMCxhPXIuZm9udCxvPXIuaW5zdGFuY2U7aWYoIWEuaXNTdGFuZGFyZEZvbnQpe2lmKHZvaWQgMD09PW8pdGhyb3cgbmV3IEVycm9yKFwiRm9udCBkb2VzIG5vdCBleGlzdCBpbiB2RlMsIGltcG9ydCBmb250cyBvciByZW1vdmUgZGVjbGFyYXRpb24gZG9jLmFkZEZvbnQoJ1wiK2EucG9zdFNjcmlwdE5hbWUrXCInKS5cIik7aWYoXCJzdHJpbmdcIiE9dHlwZW9mKG49ITE9PT1vLmV4aXN0c0ZpbGVJblZGUyhhLnBvc3RTY3JpcHROYW1lKT9vLmxvYWRGaWxlKGEucG9zdFNjcmlwdE5hbWUpOm8uZ2V0RmlsZUZyb21WRlMoYS5wb3N0U2NyaXB0TmFtZSkpKXRocm93IG5ldyBFcnJvcihcIkZvbnQgaXMgbm90IHN0b3JlZCBhcyBzdHJpbmctZGF0YSBpbiB2RlMsIGltcG9ydCBmb250cyBvciByZW1vdmUgZGVjbGFyYXRpb24gZG9jLmFkZEZvbnQoJ1wiK2EucG9zdFNjcmlwdE5hbWUrXCInKS5cIik7IWZ1bmN0aW9uKHIsbil7bj0vXlxceDAwXFx4MDFcXHgwMFxceDAwLy50ZXN0KG4pP2Uobik6ZShpKG4pKSxyLm1ldGFkYXRhPXQuQVBJLlRURkZvbnQub3BlbihuKSxyLm1ldGFkYXRhLlVuaWNvZGU9ci5tZXRhZGF0YS5Vbmljb2RlfHx7ZW5jb2Rpbmc6e30sa2VybmluZzp7fSx3aWR0aHM6W119LHIubWV0YWRhdGEuZ2x5SWRzVXNlZD1bMF19KGEsbil9fV0pfShDKSxDLkFQSS5hZGRTdmdBc0ltYWdlPWZ1bmN0aW9uKHQsZSxuLGksYSxvLGMsdSl7aWYoaXNOYU4oZSl8fGlzTmFOKG4pKXRocm93IHMuZXJyb3IoXCJqc1BERi5hZGRTdmdBc0ltYWdlOiBJbnZhbGlkIGNvb3JkaW5hdGVzXCIsYXJndW1lbnRzKSxuZXcgRXJyb3IoXCJJbnZhbGlkIGNvb3JkaW5hdGVzIHBhc3NlZCB0byBqc1BERi5hZGRTdmdBc0ltYWdlXCIpO2lmKGlzTmFOKGkpfHxpc05hTihhKSl0aHJvdyBzLmVycm9yKFwianNQREYuYWRkU3ZnQXNJbWFnZTogSW52YWxpZCBtZWFzdXJlbWVudHNcIixhcmd1bWVudHMpLG5ldyBFcnJvcihcIkludmFsaWQgbWVhc3VyZW1lbnRzICh3aWR0aCBhbmQvb3IgaGVpZ2h0KSBwYXNzZWQgdG8ganNQREYuYWRkU3ZnQXNJbWFnZVwiKTt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO2wud2lkdGg9aSxsLmhlaWdodD1hO3ZhciBoPWwuZ2V0Q29udGV4dChcIjJkXCIpO2guZmlsbFN0eWxlPVwiI2ZmZlwiLGguZmlsbFJlY3QoMCwwLGwud2lkdGgsbC5oZWlnaHQpO3ZhciBmPXtpZ25vcmVNb3VzZTohMCxpZ25vcmVBbmltYXRpb246ITAsaWdub3JlRGltZW5zaW9uczohMH0sZD10aGlzO3JldHVybihyLmNhbnZnP1Byb21pc2UucmVzb2x2ZShyLmNhbnZnKTpcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9uZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe3RyeXt0KHJlcXVpcmUoXCJjYW52Z1wiKSl9Y2F0Y2gocil7ZShyKX19KTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/bmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXt0cnl7cmVxdWlyZShbXCJjYW52Z1wiXSx0KX1jYXRjaChyKXtlKHIpfX0pOlByb21pc2UucmVqZWN0KG5ldyBFcnJvcihcIkNvdWxkIG5vdCBsb2FkIGNhbnZnXCIpKSkuY2F0Y2goZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcihcIkNvdWxkIG5vdCBsb2FkIGNhbnZnOiBcIit0KSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRlZmF1bHQ/dC5kZWZhdWx0OnR9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmZyb21TdHJpbmcoaCx0LGYpfSxmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoXCJDb3VsZCBub3QgbG9hZCBjYW52Zy5cIikpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5yZW5kZXIoZil9KS50aGVuKGZ1bmN0aW9uKCl7ZC5hZGRJbWFnZShsLnRvRGF0YVVSTChcImltYWdlL2pwZWdcIiwxKSxlLG4saSxhLGMsdSl9KX0sQy5BUEkucHV0VG90YWxQYWdlcz1mdW5jdGlvbih0KXt2YXIgZSxyPTA7cGFyc2VJbnQodGhpcy5pbnRlcm5hbC5nZXRGb250KCkuaWQuc3Vic3RyKDEpLDEwKTwxNT8oZT1uZXcgUmVnRXhwKHQsXCJnXCIpLHI9dGhpcy5pbnRlcm5hbC5nZXROdW1iZXJPZlBhZ2VzKCkpOihlPW5ldyBSZWdFeHAodGhpcy5wZGZFc2NhcGUxNih0LHRoaXMuaW50ZXJuYWwuZ2V0Rm9udCgpKSxcImdcIikscj10aGlzLnBkZkVzY2FwZTE2KHRoaXMuaW50ZXJuYWwuZ2V0TnVtYmVyT2ZQYWdlcygpK1wiXCIsdGhpcy5pbnRlcm5hbC5nZXRGb250KCkpKTtmb3IodmFyIG49MTtuPD10aGlzLmludGVybmFsLmdldE51bWJlck9mUGFnZXMoKTtuKyspZm9yKHZhciBpPTA7aTx0aGlzLmludGVybmFsLnBhZ2VzW25dLmxlbmd0aDtpKyspdGhpcy5pbnRlcm5hbC5wYWdlc1tuXVtpXT10aGlzLmludGVybmFsLnBhZ2VzW25dW2ldLnJlcGxhY2UoZSxyKTtyZXR1cm4gdGhpc30sQy5BUEkudmlld2VyUHJlZmVyZW5jZXM9ZnVuY3Rpb24odCxlKXt2YXIgcjt0PXR8fHt9LGU9ZXx8ITE7dmFyIG4saSxhLG89e0hpZGVUb29sYmFyOntkZWZhdWx0VmFsdWU6ITEsdmFsdWU6ITEsdHlwZTpcImJvb2xlYW5cIixleHBsaWNpdFNldDohMSx2YWx1ZVNldDpbITAsITFdLHBkZlZlcnNpb246MS4zfSxIaWRlTWVudWJhcjp7ZGVmYXVsdFZhbHVlOiExLHZhbHVlOiExLHR5cGU6XCJib29sZWFuXCIsZXhwbGljaXRTZXQ6ITEsdmFsdWVTZXQ6WyEwLCExXSxwZGZWZXJzaW9uOjEuM30sSGlkZVdpbmRvd1VJOntkZWZhdWx0VmFsdWU6ITEsdmFsdWU6ITEsdHlwZTpcImJvb2xlYW5cIixleHBsaWNpdFNldDohMSx2YWx1ZVNldDpbITAsITFdLHBkZlZlcnNpb246MS4zfSxGaXRXaW5kb3c6e2RlZmF1bHRWYWx1ZTohMSx2YWx1ZTohMSx0eXBlOlwiYm9vbGVhblwiLGV4cGxpY2l0U2V0OiExLHZhbHVlU2V0OlshMCwhMV0scGRmVmVyc2lvbjoxLjN9LENlbnRlcldpbmRvdzp7ZGVmYXVsdFZhbHVlOiExLHZhbHVlOiExLHR5cGU6XCJib29sZWFuXCIsZXhwbGljaXRTZXQ6ITEsdmFsdWVTZXQ6WyEwLCExXSxwZGZWZXJzaW9uOjEuM30sRGlzcGxheURvY1RpdGxlOntkZWZhdWx0VmFsdWU6ITEsdmFsdWU6ITEsdHlwZTpcImJvb2xlYW5cIixleHBsaWNpdFNldDohMSx2YWx1ZVNldDpbITAsITFdLHBkZlZlcnNpb246MS40fSxOb25GdWxsU2NyZWVuUGFnZU1vZGU6e2RlZmF1bHRWYWx1ZTpcIlVzZU5vbmVcIix2YWx1ZTpcIlVzZU5vbmVcIix0eXBlOlwibmFtZVwiLGV4cGxpY2l0U2V0OiExLHZhbHVlU2V0OltcIlVzZU5vbmVcIixcIlVzZU91dGxpbmVzXCIsXCJVc2VUaHVtYnNcIixcIlVzZU9DXCJdLHBkZlZlcnNpb246MS4zfSxEaXJlY3Rpb246e2RlZmF1bHRWYWx1ZTpcIkwyUlwiLHZhbHVlOlwiTDJSXCIsdHlwZTpcIm5hbWVcIixleHBsaWNpdFNldDohMSx2YWx1ZVNldDpbXCJMMlJcIixcIlIyTFwiXSxwZGZWZXJzaW9uOjEuM30sVmlld0FyZWE6e2RlZmF1bHRWYWx1ZTpcIkNyb3BCb3hcIix2YWx1ZTpcIkNyb3BCb3hcIix0eXBlOlwibmFtZVwiLGV4cGxpY2l0U2V0OiExLHZhbHVlU2V0OltcIk1lZGlhQm94XCIsXCJDcm9wQm94XCIsXCJUcmltQm94XCIsXCJCbGVlZEJveFwiLFwiQXJ0Qm94XCJdLHBkZlZlcnNpb246MS40fSxWaWV3Q2xpcDp7ZGVmYXVsdFZhbHVlOlwiQ3JvcEJveFwiLHZhbHVlOlwiQ3JvcEJveFwiLHR5cGU6XCJuYW1lXCIsZXhwbGljaXRTZXQ6ITEsdmFsdWVTZXQ6W1wiTWVkaWFCb3hcIixcIkNyb3BCb3hcIixcIlRyaW1Cb3hcIixcIkJsZWVkQm94XCIsXCJBcnRCb3hcIl0scGRmVmVyc2lvbjoxLjR9LFByaW50QXJlYTp7ZGVmYXVsdFZhbHVlOlwiQ3JvcEJveFwiLHZhbHVlOlwiQ3JvcEJveFwiLHR5cGU6XCJuYW1lXCIsZXhwbGljaXRTZXQ6ITEsdmFsdWVTZXQ6W1wiTWVkaWFCb3hcIixcIkNyb3BCb3hcIixcIlRyaW1Cb3hcIixcIkJsZWVkQm94XCIsXCJBcnRCb3hcIl0scGRmVmVyc2lvbjoxLjR9LFByaW50Q2xpcDp7ZGVmYXVsdFZhbHVlOlwiQ3JvcEJveFwiLHZhbHVlOlwiQ3JvcEJveFwiLHR5cGU6XCJuYW1lXCIsZXhwbGljaXRTZXQ6ITEsdmFsdWVTZXQ6W1wiTWVkaWFCb3hcIixcIkNyb3BCb3hcIixcIlRyaW1Cb3hcIixcIkJsZWVkQm94XCIsXCJBcnRCb3hcIl0scGRmVmVyc2lvbjoxLjR9LFByaW50U2NhbGluZzp7ZGVmYXVsdFZhbHVlOlwiQXBwRGVmYXVsdFwiLHZhbHVlOlwiQXBwRGVmYXVsdFwiLHR5cGU6XCJuYW1lXCIsZXhwbGljaXRTZXQ6ITEsdmFsdWVTZXQ6W1wiQXBwRGVmYXVsdFwiLFwiTm9uZVwiXSxwZGZWZXJzaW9uOjEuNn0sRHVwbGV4OntkZWZhdWx0VmFsdWU6XCJcIix2YWx1ZTpcIm5vbmVcIix0eXBlOlwibmFtZVwiLGV4cGxpY2l0U2V0OiExLHZhbHVlU2V0OltcIlNpbXBsZXhcIixcIkR1cGxleEZsaXBTaG9ydEVkZ2VcIixcIkR1cGxleEZsaXBMb25nRWRnZVwiLFwibm9uZVwiXSxwZGZWZXJzaW9uOjEuN30sUGlja1RyYXlCeVBERlNpemU6e2RlZmF1bHRWYWx1ZTohMSx2YWx1ZTohMSx0eXBlOlwiYm9vbGVhblwiLGV4cGxpY2l0U2V0OiExLHZhbHVlU2V0OlshMCwhMV0scGRmVmVyc2lvbjoxLjd9LFByaW50UGFnZVJhbmdlOntkZWZhdWx0VmFsdWU6XCJcIix2YWx1ZTpcIlwiLHR5cGU6XCJhcnJheVwiLGV4cGxpY2l0U2V0OiExLHZhbHVlU2V0Om51bGwscGRmVmVyc2lvbjoxLjd9LE51bUNvcGllczp7ZGVmYXVsdFZhbHVlOjEsdmFsdWU6MSx0eXBlOlwiaW50ZWdlclwiLGV4cGxpY2l0U2V0OiExLHZhbHVlU2V0Om51bGwscGRmVmVyc2lvbjoxLjd9fSxzPU9iamVjdC5rZXlzKG8pLGM9W10sdT0wLGw9MCxoPTA7ZnVuY3Rpb24gZih0LGUpe3ZhciByLG49ITE7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrPTEpdFtyXT09PWUmJihuPSEwKTtyZXR1cm4gbn1pZih2b2lkIDA9PT10aGlzLmludGVybmFsLnZpZXdlcnByZWZlcmVuY2VzJiYodGhpcy5pbnRlcm5hbC52aWV3ZXJwcmVmZXJlbmNlcz17fSx0aGlzLmludGVybmFsLnZpZXdlcnByZWZlcmVuY2VzLmNvbmZpZ3VyYXRpb249SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvKSksdGhpcy5pbnRlcm5hbC52aWV3ZXJwcmVmZXJlbmNlcy5pc1N1YnNjcmliZWQ9ITEpLHI9dGhpcy5pbnRlcm5hbC52aWV3ZXJwcmVmZXJlbmNlcy5jb25maWd1cmF0aW9uLFwicmVzZXRcIj09PXR8fCEwPT09ZSl7dmFyIGQ9cy5sZW5ndGg7Zm9yKGg9MDtoPGQ7aCs9MSlyW3NbaF1dLnZhbHVlPXJbc1toXV0uZGVmYXVsdFZhbHVlLHJbc1toXV0uZXhwbGljaXRTZXQ9ITF9aWYoXCJvYmplY3RcIj09dHlwZW9mIHQpZm9yKGkgaW4gdClpZihhPXRbaV0sZihzLGkpJiZ2b2lkIDAhPT1hKXtpZihcImJvb2xlYW5cIj09PXJbaV0udHlwZSYmXCJib29sZWFuXCI9PXR5cGVvZiBhKXJbaV0udmFsdWU9YTtlbHNlIGlmKFwibmFtZVwiPT09cltpXS50eXBlJiZmKHJbaV0udmFsdWVTZXQsYSkpcltpXS52YWx1ZT1hO2Vsc2UgaWYoXCJpbnRlZ2VyXCI9PT1yW2ldLnR5cGUmJk51bWJlci5pc0ludGVnZXIoYSkpcltpXS52YWx1ZT1hO2Vsc2UgaWYoXCJhcnJheVwiPT09cltpXS50eXBlKXtmb3IodT0wO3U8YS5sZW5ndGg7dSs9MSlpZihuPSEwLDE9PT1hW3VdLmxlbmd0aCYmXCJudW1iZXJcIj09dHlwZW9mIGFbdV1bMF0pYy5wdXNoKFN0cmluZyhhW3VdLTEpKTtlbHNlIGlmKGFbdV0ubGVuZ3RoPjEpe2ZvcihsPTA7bDxhW3VdLmxlbmd0aDtsKz0xKVwibnVtYmVyXCIhPXR5cGVvZiBhW3VdW2xdJiYobj0hMSk7ITA9PT1uJiZjLnB1c2goW2FbdV1bMF0tMSxhW3VdWzFdLTFdLmpvaW4oXCIgXCIpKX1yW2ldLnZhbHVlPVwiW1wiK2Muam9pbihcIiBcIikrXCJdXCJ9ZWxzZSByW2ldLnZhbHVlPXJbaV0uZGVmYXVsdFZhbHVlO3JbaV0uZXhwbGljaXRTZXQ9ITB9cmV0dXJuITE9PT10aGlzLmludGVybmFsLnZpZXdlcnByZWZlcmVuY2VzLmlzU3Vic2NyaWJlZCYmKHRoaXMuaW50ZXJuYWwuZXZlbnRzLnN1YnNjcmliZShcInB1dENhdGFsb2dcIixmdW5jdGlvbigpe3ZhciB0LGU9W107Zm9yKHQgaW4gcikhMD09PXJbdF0uZXhwbGljaXRTZXQmJihcIm5hbWVcIj09PXJbdF0udHlwZT9lLnB1c2goXCIvXCIrdCtcIiAvXCIrclt0XS52YWx1ZSk6ZS5wdXNoKFwiL1wiK3QrXCIgXCIrclt0XS52YWx1ZSkpOzAhPT1lLmxlbmd0aCYmdGhpcy5pbnRlcm5hbC53cml0ZShcIi9WaWV3ZXJQcmVmZXJlbmNlc1xcbjw8XFxuXCIrZS5qb2luKFwiXFxuXCIpK1wiXFxuPj5cIil9KSx0aGlzLmludGVybmFsLnZpZXdlcnByZWZlcmVuY2VzLmlzU3Vic2NyaWJlZD0hMCksdGhpcy5pbnRlcm5hbC52aWV3ZXJwcmVmZXJlbmNlcy5jb25maWd1cmF0aW9uPXIsdGhpc30sQy5BUEkuYWRkTWV0YWRhdGE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5pbnRlcm5hbC5fX21ldGFkYXRhX18mJih0aGlzLmludGVybmFsLl9fbWV0YWRhdGFfXz17bWV0YWRhdGE6dCxuYW1lc3BhY2VVcmk6ZT8/XCJodHRwOi8vanNwZGYuZGVmYXVsdC5uYW1lc3BhY2V1cmkvXCIscmF3WG1sOlwiYm9vbGVhblwiPT10eXBlb2YgZSYmZX0sdGhpcy5pbnRlcm5hbC5ldmVudHMuc3Vic2NyaWJlKFwicHV0Q2F0YWxvZ1wiLG5lKSx0aGlzLmludGVybmFsLmV2ZW50cy5zdWJzY3JpYmUoXCJwb3N0UHV0UmVzb3VyY2VzXCIscmUpKSx0aGlzfSxmdW5jdGlvbih0KXt2YXIgZT10LkFQSSxyPWUucGRmRXNjYXBlMTY9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbj1lLm1ldGFkYXRhLlVuaWNvZGUud2lkdGhzLGk9W1wiXCIsXCIwXCIsXCIwMFwiLFwiMDAwXCIsXCIwMDAwXCJdLGE9W1wiXCJdLG89MCxzPXQubGVuZ3RoO288czsrK28pe2lmKHI9ZS5tZXRhZGF0YS5jaGFyYWN0ZXJUb0dseXBoKHQuY2hhckNvZGVBdChvKSksZS5tZXRhZGF0YS5nbHlJZHNVc2VkLnB1c2gociksZS5tZXRhZGF0YS50b1VuaWNvZGVbcl09dC5jaGFyQ29kZUF0KG8pLC0xPT1uLmluZGV4T2YocikmJihuLnB1c2gociksbi5wdXNoKFtwYXJzZUludChlLm1ldGFkYXRhLndpZHRoT2ZHbHlwaChyKSwxMCldKSksXCIwXCI9PXIpcmV0dXJuIGEuam9pbihcIlwiKTtyPXIudG9TdHJpbmcoMTYpLGEucHVzaChpWzQtci5sZW5ndGhdLHIpfXJldHVybiBhLmpvaW4oXCJcIil9LG49ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYSxvLHM7Zm9yKGE9XCIvQ0lESW5pdCAvUHJvY1NldCBmaW5kcmVzb3VyY2UgYmVnaW5cXG4xMiBkaWN0IGJlZ2luXFxuYmVnaW5jbWFwXFxuL0NJRFN5c3RlbUluZm8gPDxcXG4gIC9SZWdpc3RyeSAoQWRvYmUpXFxuICAvT3JkZXJpbmcgKFVDUylcXG4gIC9TdXBwbGVtZW50IDBcXG4+PiBkZWZcXG4vQ01hcE5hbWUgL0Fkb2JlLUlkZW50aXR5LVVDUyBkZWZcXG4vQ01hcFR5cGUgMiBkZWZcXG4xIGJlZ2luY29kZXNwYWNlcmFuZ2VcXG48MDAwMD48ZmZmZj5cXG5lbmRjb2Rlc3BhY2VyYW5nZVwiLG49W10sbz0wLHM9KHI9T2JqZWN0LmtleXModCkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSkubGVuZ3RoO288cztvKyspZT1yW29dLG4ubGVuZ3RoPj0xMDAmJihhKz1cIlxcblwiK24ubGVuZ3RoK1wiIGJlZ2luYmZjaGFyXFxuXCIrbi5qb2luKFwiXFxuXCIpK1wiXFxuZW5kYmZjaGFyXCIsbj1bXSksdm9pZCAwIT09dFtlXSYmbnVsbCE9PXRbZV0mJlwiZnVuY3Rpb25cIj09dHlwZW9mIHRbZV0udG9TdHJpbmcmJihpPShcIjAwMDBcIit0W2VdLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTQpLGU9KFwiMDAwMFwiKygrZSkudG9TdHJpbmcoMTYpKS5zbGljZSgtNCksbi5wdXNoKFwiPFwiK2UrXCI+PFwiK2krXCI+XCIpKTtyZXR1cm4gbi5sZW5ndGgmJihhKz1cIlxcblwiK24ubGVuZ3RoK1wiIGJlZ2luYmZjaGFyXFxuXCIrbi5qb2luKFwiXFxuXCIpK1wiXFxuZW5kYmZjaGFyXFxuXCIpLGErXCJlbmRjbWFwXFxuQ01hcE5hbWUgY3VycmVudGRpY3QgL0NNYXAgZGVmaW5lcmVzb3VyY2UgcG9wXFxuZW5kXFxuZW5kXCJ9O2UuZXZlbnRzLnB1c2goW1wicHV0Rm9udFwiLGZ1bmN0aW9uKGUpeyFmdW5jdGlvbihlKXt2YXIgcj1lLmZvbnQsaT1lLm91dCxhPWUubmV3T2JqZWN0LG89ZS5wdXRTdHJlYW07aWYoci5tZXRhZGF0YSBpbnN0YW5jZW9mIHQuQVBJLlRURkZvbnQmJlwiSWRlbnRpdHktSFwiPT09ci5lbmNvZGluZyl7Zm9yKHZhciBzPXIubWV0YWRhdGEuVW5pY29kZS53aWR0aHMsYz1yLm1ldGFkYXRhLnN1YnNldC5lbmNvZGUoci5tZXRhZGF0YS5nbHlJZHNVc2VkLDEpLHU9XCJcIixsPTA7bDxjLmxlbmd0aDtsKyspdSs9U3RyaW5nLmZyb21DaGFyQ29kZShjW2xdKTt2YXIgaD1hKCk7byh7ZGF0YTp1LGFkZExlbmd0aDE6ITAsb2JqZWN0SWQ6aH0pLGkoXCJlbmRvYmpcIik7dmFyIGY9YSgpO28oe2RhdGE6bihyLm1ldGFkYXRhLnRvVW5pY29kZSksYWRkTGVuZ3RoMTohMCxvYmplY3RJZDpmfSksaShcImVuZG9ialwiKTt2YXIgZD1hKCk7aShcIjw8XCIpLGkoXCIvVHlwZSAvRm9udERlc2NyaXB0b3JcIiksaShcIi9Gb250TmFtZSAvXCIrUyhyLmZvbnROYW1lKSksaShcIi9Gb250RmlsZTIgXCIraCtcIiAwIFJcIiksaShcIi9Gb250QkJveCBcIit0LkFQSS5QREZPYmplY3QuY29udmVydChyLm1ldGFkYXRhLmJib3gpKSxpKFwiL0ZsYWdzIFwiK3IubWV0YWRhdGEuZmxhZ3MpLGkoXCIvU3RlbVYgXCIrci5tZXRhZGF0YS5zdGVtViksaShcIi9JdGFsaWNBbmdsZSBcIityLm1ldGFkYXRhLml0YWxpY0FuZ2xlKSxpKFwiL0FzY2VudCBcIityLm1ldGFkYXRhLmFzY2VuZGVyKSxpKFwiL0Rlc2NlbnQgXCIrci5tZXRhZGF0YS5kZWNlbmRlciksaShcIi9DYXBIZWlnaHQgXCIrci5tZXRhZGF0YS5jYXBIZWlnaHQpLGkoXCI+PlwiKSxpKFwiZW5kb2JqXCIpO3ZhciBwPWEoKTtpKFwiPDxcIiksaShcIi9UeXBlIC9Gb250XCIpLGkoXCIvQmFzZUZvbnQgL1wiK1Moci5mb250TmFtZSkpLGkoXCIvRm9udERlc2NyaXB0b3IgXCIrZCtcIiAwIFJcIiksaShcIi9XIFwiK3QuQVBJLlBERk9iamVjdC5jb252ZXJ0KHMpKSxpKFwiL0NJRFRvR0lETWFwIC9JZGVudGl0eVwiKSxpKFwiL0RXIDEwMDBcIiksaShcIi9TdWJ0eXBlIC9DSURGb250VHlwZTJcIiksaShcIi9DSURTeXN0ZW1JbmZvXCIpLGkoXCI8PFwiKSxpKFwiL1N1cHBsZW1lbnQgMFwiKSxpKFwiL1JlZ2lzdHJ5IChBZG9iZSlcIiksaShcIi9PcmRlcmluZyAoXCIrci5lbmNvZGluZytcIilcIiksaShcIj4+XCIpLGkoXCI+PlwiKSxpKFwiZW5kb2JqXCIpLHIub2JqZWN0TnVtYmVyPWEoKSxpKFwiPDxcIiksaShcIi9UeXBlIC9Gb250XCIpLGkoXCIvU3VidHlwZSAvVHlwZTBcIiksaShcIi9Ub1VuaWNvZGUgXCIrZitcIiAwIFJcIiksaShcIi9CYXNlRm9udCAvXCIrUyhyLmZvbnROYW1lKSksaShcIi9FbmNvZGluZyAvXCIrci5lbmNvZGluZyksaShcIi9EZXNjZW5kYW50Rm9udHMgW1wiK3ArXCIgMCBSXVwiKSxpKFwiPj5cIiksaShcImVuZG9ialwiKSxyLmlzQWxyZWFkeVB1dHRlZD0hMH19KGUpfV0pLGUuZXZlbnRzLnB1c2goW1wicHV0Rm9udFwiLGZ1bmN0aW9uKGUpeyFmdW5jdGlvbihlKXt2YXIgcj1lLmZvbnQsaT1lLm91dCxhPWUubmV3T2JqZWN0LG89ZS5wdXRTdHJlYW07aWYoci5tZXRhZGF0YSBpbnN0YW5jZW9mIHQuQVBJLlRURkZvbnQmJlwiV2luQW5zaUVuY29kaW5nXCI9PT1yLmVuY29kaW5nKXtmb3IodmFyIHM9ci5tZXRhZGF0YS5yYXdEYXRhLGM9XCJcIix1PTA7dTxzLmxlbmd0aDt1KyspYys9U3RyaW5nLmZyb21DaGFyQ29kZShzW3VdKTt2YXIgbD1hKCk7byh7ZGF0YTpjLGFkZExlbmd0aDE6ITAsb2JqZWN0SWQ6bH0pLGkoXCJlbmRvYmpcIik7dmFyIGg9YSgpO28oe2RhdGE6bihyLm1ldGFkYXRhLnRvVW5pY29kZSksYWRkTGVuZ3RoMTohMCxvYmplY3RJZDpofSksaShcImVuZG9ialwiKTt2YXIgZj1hKCk7aShcIjw8XCIpLGkoXCIvRGVzY2VudCBcIityLm1ldGFkYXRhLmRlY2VuZGVyKSxpKFwiL0NhcEhlaWdodCBcIityLm1ldGFkYXRhLmNhcEhlaWdodCksaShcIi9TdGVtViBcIityLm1ldGFkYXRhLnN0ZW1WKSxpKFwiL1R5cGUgL0ZvbnREZXNjcmlwdG9yXCIpLGkoXCIvRm9udEZpbGUyIFwiK2wrXCIgMCBSXCIpLGkoXCIvRmxhZ3MgOTZcIiksaShcIi9Gb250QkJveCBcIit0LkFQSS5QREZPYmplY3QuY29udmVydChyLm1ldGFkYXRhLmJib3gpKSxpKFwiL0ZvbnROYW1lIC9cIitTKHIuZm9udE5hbWUpKSxpKFwiL0l0YWxpY0FuZ2xlIFwiK3IubWV0YWRhdGEuaXRhbGljQW5nbGUpLGkoXCIvQXNjZW50IFwiK3IubWV0YWRhdGEuYXNjZW5kZXIpLGkoXCI+PlwiKSxpKFwiZW5kb2JqXCIpLHIub2JqZWN0TnVtYmVyPWEoKTtmb3IodmFyIGQ9MDtkPHIubWV0YWRhdGEuaG10eC53aWR0aHMubGVuZ3RoO2QrKylyLm1ldGFkYXRhLmhtdHgud2lkdGhzW2RdPXBhcnNlSW50KHIubWV0YWRhdGEuaG10eC53aWR0aHNbZF0qKDFlMy9yLm1ldGFkYXRhLmhlYWQudW5pdHNQZXJFbSkpO2koXCI8PC9TdWJ0eXBlL1RydWVUeXBlL1R5cGUvRm9udC9Ub1VuaWNvZGUgXCIraCtcIiAwIFIvQmFzZUZvbnQvXCIrUyhyLmZvbnROYW1lKStcIi9Gb250RGVzY3JpcHRvciBcIitmK1wiIDAgUi9FbmNvZGluZy9cIityLmVuY29kaW5nK1wiIC9GaXJzdENoYXIgMjkgL0xhc3RDaGFyIDI1NSAvV2lkdGhzIFwiK3QuQVBJLlBERk9iamVjdC5jb252ZXJ0KHIubWV0YWRhdGEuaG10eC53aWR0aHMpK1wiPj5cIiksaShcImVuZG9ialwiKSxyLmlzQWxyZWFkeVB1dHRlZD0hMH19KGUpfV0pO3ZhciBpPWZ1bmN0aW9uKHQpe3ZhciBlLG49dC50ZXh0fHxcIlwiLGk9dC54LGE9dC55LG89dC5vcHRpb25zfHx7fSxzPXQubXV0ZXh8fHt9LGM9cy5wZGZFc2NhcGUsdT1zLmFjdGl2ZUZvbnRLZXksbD1zLmZvbnRzLGg9dSxmPVwiXCIsZD0wLHA9XCJcIixnPWxbaF0uZW5jb2Rpbmc7aWYoXCJJZGVudGl0eS1IXCIhPT1sW2hdLmVuY29kaW5nKXJldHVybnt0ZXh0Om4seDppLHk6YSxvcHRpb25zOm8sbXV0ZXg6c307Zm9yKHA9bixoPXUsQXJyYXkuaXNBcnJheShuKSYmKHA9blswXSksZD0wO2Q8cC5sZW5ndGg7ZCs9MSlsW2hdLm1ldGFkYXRhLmhhc093blByb3BlcnR5KFwiY21hcFwiKSYmKGU9bFtoXS5tZXRhZGF0YS5jbWFwLnVuaWNvZGUuY29kZU1hcFtwW2RdLmNoYXJDb2RlQXQoMCldKSxlfHxwW2RdLmNoYXJDb2RlQXQoMCk8MjU2JiZsW2hdLm1ldGFkYXRhLmhhc093blByb3BlcnR5KFwiVW5pY29kZVwiKT9mKz1wW2RdOmYrPVwiXCI7dmFyIG09XCJcIjtyZXR1cm4gcGFyc2VJbnQoaC5zbGljZSgxKSk8MTR8fFwiV2luQW5zaUVuY29kaW5nXCI9PT1nP209YyhmLGgpLnNwbGl0KFwiXCIpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KX0pLmpvaW4oXCJcIik6XCJJZGVudGl0eS1IXCI9PT1nJiYobT1yKGYsbFtoXSkpLHMuaXNIZXg9ITAse3RleHQ6bSx4OmkseTphLG9wdGlvbnM6byxtdXRleDpzfX07ZS5ldmVudHMucHVzaChbXCJwb3N0UHJvY2Vzc1RleHRcIixmdW5jdGlvbih0KXt2YXIgZT10LnRleHR8fFwiXCIscj1bXSxuPXt0ZXh0OmUseDp0LngseTp0Lnksb3B0aW9uczp0Lm9wdGlvbnMsbXV0ZXg6dC5tdXRleH07aWYoQXJyYXkuaXNBcnJheShlKSl7dmFyIGE9MDtmb3IoYT0wO2E8ZS5sZW5ndGg7YSs9MSlBcnJheS5pc0FycmF5KGVbYV0pJiYzPT09ZVthXS5sZW5ndGg/ci5wdXNoKFtpKE9iamVjdC5hc3NpZ24oe30sbix7dGV4dDplW2FdWzBdfSkpLnRleHQsZVthXVsxXSxlW2FdWzJdXSk6ci5wdXNoKGkoT2JqZWN0LmFzc2lnbih7fSxuLHt0ZXh0OmVbYV19KSkudGV4dCk7dC50ZXh0PXJ9ZWxzZSB0LnRleHQ9aShPYmplY3QuYXNzaWduKHt9LG4se3RleHQ6ZX0pKS50ZXh0fV0pfShDKSxcbi8qKlxuICogQGxpY2Vuc2VcbiAqIGpzUERGIHZpcnR1YWwgRmlsZVN5c3RlbSBmdW5jdGlvbmFsaXR5XG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlXG4gKi9cbmZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuaW50ZXJuYWwudkZTJiYodGhpcy5pbnRlcm5hbC52RlM9e30pLCEwfTt0LmV4aXN0c0ZpbGVJblZGUz1mdW5jdGlvbih0KXtyZXR1cm4gZS5jYWxsKHRoaXMpLHZvaWQgMCE9PXRoaXMuaW50ZXJuYWwudkZTW3RdfSx0LmFkZEZpbGVUb1ZGUz1mdW5jdGlvbih0LHIpe3JldHVybiBlLmNhbGwodGhpcyksdGhpcy5pbnRlcm5hbC52RlNbdF09cix0aGlzfSx0LmdldEZpbGVGcm9tVkZTPWZ1bmN0aW9uKHQpe3JldHVybiBlLmNhbGwodGhpcyksdm9pZCAwIT09dGhpcy5pbnRlcm5hbC52RlNbdF0/dGhpcy5pbnRlcm5hbC52RlNbdF06bnVsbH19KEMuQVBJKSxcbi8qKlxuICogQGxpY2Vuc2VcbiAqIFVuaWNvZGUgQmlkaSBFbmdpbmUgYmFzZWQgb24gdGhlIHdvcmsgb2YgQWxleCBTaGVuc2lzIChAYXN0aGVuc2lzKVxuICogTUlUIExpY2Vuc2VcbiAqL1xuZnVuY3Rpb24odCl7dC5fX2JpZGlFbmdpbmVfXz10LnByb3RvdHlwZS5fX2JpZGlFbmdpbmVfXz1mdW5jdGlvbih0KXt2YXIgcixuLGksYSxvLHMsYyx1PWUsbD1bWzAsMywwLDEsMCwwLDBdLFswLDMsMCwxLDIsMiwwXSxbMCwzLDAsMTcsMiwwLDFdLFswLDMsNSw1LDQsMSwwXSxbMCwzLDIxLDIxLDQsMCwxXSxbMCwzLDUsNSw0LDIsMF1dLGg9W1syLDAsMSwxLDAsMSwwXSxbMiwwLDEsMSwwLDIsMF0sWzIsMCwyLDEsMywyLDBdLFsyLDAsMiwzMywzLDEsMV1dLGY9e0w6MCxSOjEsRU46MixBTjozLE46NCxCOjUsUzo2fSxkPXswOjAsNToxLDY6Miw3OjMsMzI6NCwyNTE6NSwyNTQ6NiwyNTU6N30scD1bXCIoXCIsXCIpXCIsXCIoXCIsXCI8XCIsXCI+XCIsXCI8XCIsXCJbXCIsXCJdXCIsXCJbXCIsXCJ7XCIsXCJ9XCIsXCJ7XCIsXCLCq1wiLFwiwrtcIixcIsKrXCIsXCLigLlcIixcIuKAulwiLFwi4oC5XCIsXCLigYVcIixcIuKBhlwiLFwi4oGFXCIsXCLigb1cIixcIuKBvlwiLFwi4oG9XCIsXCLigo1cIixcIuKCjlwiLFwi4oKNXCIsXCLiiaRcIixcIuKJpVwiLFwi4omkXCIsXCLijKlcIixcIuKMqlwiLFwi4oypXCIsXCLvuZlcIixcIu+5mlwiLFwi77mZXCIsXCLvuZtcIixcIu+5nFwiLFwi77mbXCIsXCLvuZ1cIixcIu+5nlwiLFwi77mdXCIsXCLvuaRcIixcIu+5pVwiLFwi77mkXCJdLGc9bmV3IFJlZ0V4cCgvXihbMS00fDldfDFbMC05XXwyWzAtOV18M1swMTY4XXw0WzA0NTg5XXw1WzAxMl18N1s3OF18MTU5fDE2WzAtOV18MTdbMC0yXXwyMVs1NjldfDIyWzAzNDg5XXwyNTApJC8pLG09ITEsdj0wO3RoaXMuX19iaWRpRW5naW5lX189e307dmFyIGI9ZnVuY3Rpb24odCl7dmFyIGU9dC5jaGFyQ29kZUF0KCkscj1lPj44LG49ZFtyXTtyZXR1cm4gdm9pZCAwIT09bj91WzI1NipuKygyNTUmZSldOjI1Mj09PXJ8fDI1Mz09PXI/XCJBTFwiOmcudGVzdChyKT9cIkxcIjo4PT09cj9cIlJcIjpcIk5cIn0seT1mdW5jdGlvbih0KXtmb3IodmFyIGUscj0wO3I8dC5sZW5ndGg7cisrKXtpZihcIkxcIj09PShlPWIodC5jaGFyQXQocikpKSlyZXR1cm4hMTtpZihcIlJcIj09PWUpcmV0dXJuITB9cmV0dXJuITF9LHc9ZnVuY3Rpb24odCxlLG8scyl7dmFyIGMsdSxsLGgsZj1lW3NdO3N3aXRjaChmKXtjYXNlXCJMXCI6Y2FzZVwiUlwiOmNhc2VcIkxSRVwiOmNhc2VcIlJMRVwiOmNhc2VcIkxST1wiOmNhc2VcIlJMT1wiOmNhc2VcIlBERlwiOm09ITE7YnJlYWs7Y2FzZVwiTlwiOmNhc2VcIkFOXCI6YnJlYWs7Y2FzZVwiRU5cIjptJiYoZj1cIkFOXCIpO2JyZWFrO2Nhc2VcIkFMXCI6bT0hMCxmPVwiUlwiO2JyZWFrO2Nhc2VcIldTXCI6Y2FzZVwiQk5cIjpmPVwiTlwiO2JyZWFrO2Nhc2VcIkNTXCI6czwxfHxzKzE+PWUubGVuZ3RofHxcIkVOXCIhPT0oYz1vW3MtMV0pJiZcIkFOXCIhPT1jfHxcIkVOXCIhPT0odT1lW3MrMV0pJiZcIkFOXCIhPT11P2Y9XCJOXCI6bSYmKHU9XCJBTlwiKSxmPXU9PT1jP3U6XCJOXCI7YnJlYWs7Y2FzZVwiRVNcIjpmPVwiRU5cIj09PShjPXM+MD9vW3MtMV06XCJCXCIpJiZzKzE8ZS5sZW5ndGgmJlwiRU5cIj09PWVbcysxXT9cIkVOXCI6XCJOXCI7YnJlYWs7Y2FzZVwiRVRcIjppZihzPjAmJlwiRU5cIj09PW9bcy0xXSl7Zj1cIkVOXCI7YnJlYWt9aWYobSl7Zj1cIk5cIjticmVha31mb3IobD1zKzEsaD1lLmxlbmd0aDtsPGgmJlwiRVRcIj09PWVbbF07KWwrKztmPWw8aCYmXCJFTlwiPT09ZVtsXT9cIkVOXCI6XCJOXCI7YnJlYWs7Y2FzZVwiTlNNXCI6aWYoaSYmIWEpe2ZvcihoPWUubGVuZ3RoLGw9cysxO2w8aCYmXCJOU01cIj09PWVbbF07KWwrKztpZihsPGgpe3ZhciBkPXRbc10scD1kPj0xNDI1JiZkPD0yMzAzfHw2NDI4Nj09PWQ7aWYoYz1lW2xdLHAmJihcIlJcIj09PWN8fFwiQUxcIj09PWMpKXtmPVwiUlwiO2JyZWFrfX19Zj1zPDF8fFwiQlwiPT09KGM9ZVtzLTFdKT9cIk5cIjpvW3MtMV07YnJlYWs7Y2FzZVwiQlwiOm09ITEscj0hMCxmPXY7YnJlYWs7Y2FzZVwiU1wiOm49ITAsZj1cIk5cIn1yZXR1cm4gZn0sTj1mdW5jdGlvbih0LGUscil7dmFyIG49dC5zcGxpdChcIlwiKTtyZXR1cm4gciYmTChuLHIse2hpTGV2ZWw6dn0pLG4ucmV2ZXJzZSgpLGUmJmUucmV2ZXJzZSgpLG4uam9pbihcIlwiKX0sTD1mdW5jdGlvbih0LGUsaSl7dmFyIGEsbyxzLGMsdSxkPS0xLHA9dC5sZW5ndGgsZz0wLHk9W10sTj12P2g6bCxMPVtdO2ZvcihtPSExLHI9ITEsbj0hMSxvPTA7bzxwO28rKylMW29dPWIodFtvXSk7Zm9yKHM9MDtzPHA7cysrKXtpZih1PWcseVtzXT13KHQsTCx5LHMpLGE9MjQwJihnPU5bdV1bZlt5W3NdXV0pLGcmPTE1LGVbc109Yz1OW2ddWzVdLGE+MClpZigxNj09PWEpe2ZvcihvPWQ7bzxzO28rKyllW29dPTE7ZD0tMX1lbHNlIGQ9LTE7aWYoTltnXVs2XSktMT09PWQmJihkPXMpO2Vsc2UgaWYoZD4tMSl7Zm9yKG89ZDtvPHM7bysrKWVbb109YztkPS0xfVwiQlwiPT09TFtzXSYmKGVbc109MCksaS5oaUxldmVsfD1jfW4mJmZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49MDtuPHI7bisrKWlmKFwiU1wiPT09dFtuXSl7ZVtuXT12O2Zvcih2YXIgaT1uLTE7aT49MCYmXCJXU1wiPT09dFtpXTtpLS0pZVtpXT12fX0oTCxlLHApfSx4PWZ1bmN0aW9uKHQsZSxuLGksYSl7aWYoIShhLmhpTGV2ZWw8dCkpe2lmKDE9PT10JiYxPT09diYmIXIpcmV0dXJuIGUucmV2ZXJzZSgpLHZvaWQobiYmbi5yZXZlcnNlKCkpO2Zvcih2YXIgbyxzLGMsdSxsPWUubGVuZ3RoLGg9MDtoPGw7KXtpZihpW2hdPj10KXtmb3IoYz1oKzE7YzxsJiZpW2NdPj10OyljKys7Zm9yKHU9aCxzPWMtMTt1PHM7dSsrLHMtLSlvPWVbdV0sZVt1XT1lW3NdLGVbc109byxuJiYobz1uW3VdLG5bdV09bltzXSxuW3NdPW8pO2g9Y31oKyt9fX0sQT1mdW5jdGlvbih0LGUscil7dmFyIG49dC5zcGxpdChcIlwiKSxpPXtoaUxldmVsOnZ9O3JldHVybiByfHwocj1bXSksTChuLHIsaSksZnVuY3Rpb24odCxlLHIpe2lmKDAhPT1yLmhpTGV2ZWwmJmMpZm9yKHZhciBuLGk9MDtpPHQubGVuZ3RoO2krKykxPT09ZVtpXSYmKG49cC5pbmRleE9mKHRbaV0pKT49MCYmKHRbaV09cFtuKzFdKX0obixyLGkpLHgoMixuLGUscixpKSx4KDEsbixlLHIsaSksbi5qb2luKFwiXCIpfTtyZXR1cm4gdGhpcy5fX2JpZGlFbmdpbmVfXy5kb0JpZGlSZW9yZGVyPWZ1bmN0aW9uKHQsZSxyKXtpZihmdW5jdGlvbih0LGUpe2lmKGUpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZVtyXT1yO3ZvaWQgMD09PWEmJihhPXkodCkpLHZvaWQgMD09PXMmJihzPXkodCkpfSh0LGUpLGl8fCFvfHxzKWlmKGkmJm8mJmFecyl2PWE/MTowLHQ9Tih0LGUscik7ZWxzZSBpZighaSYmbyYmcyl2PWE/MTowLHQ9QSh0LGUsciksdD1OKHQsZSk7ZWxzZSBpZighaXx8YXx8b3x8cyl7aWYoaSYmIW8mJmFecyl0PU4odCxlKSxhPyh2PTAsdD1BKHQsZSxyKSk6KHY9MSx0PUEodCxlLHIpLHQ9Tih0LGUpKTtlbHNlIGlmKGkmJmEmJiFvJiZzKXY9MSx0PUEodCxlLHIpLHQ9Tih0LGUpO2Vsc2UgaWYoIWkmJiFvJiZhXnMpe3ZhciBuPWM7YT8odj0xLHQ9QSh0LGUsciksdj0wLGM9ITEsdD1BKHQsZSxyKSxjPW4pOih2PTAsdD1BKHQsZSxyKSx0PU4odCxlKSx2PTEsYz0hMSx0PUEodCxlLHIpLGM9bix0PU4odCxlKSl9fWVsc2Ugdj0wLHQ9QSh0LGUscik7ZWxzZSB2PWE/MTowLHQ9QSh0LGUscik7cmV0dXJuIHR9LHRoaXMuX19iaWRpRW5naW5lX18uc2V0T3B0aW9ucz1mdW5jdGlvbih0KXt0JiYoaT10LmlzSW5wdXRWaXN1YWwsbz10LmlzT3V0cHV0VmlzdWFsLGE9dC5pc0lucHV0UnRsLHM9dC5pc091dHB1dFJ0bCxjPXQuaXNTeW1tZXRyaWNTd2FwcGluZyl9LHRoaXMuX19iaWRpRW5naW5lX18uc2V0T3B0aW9ucyh0KSx0aGlzLl9fYmlkaUVuZ2luZV9ffTt2YXIgZT1bXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJTXCIsXCJCXCIsXCJTXCIsXCJXU1wiLFwiQlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCXCIsXCJCXCIsXCJCXCIsXCJTXCIsXCJXU1wiLFwiTlwiLFwiTlwiLFwiRVRcIixcIkVUXCIsXCJFVFwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiRVNcIixcIkNTXCIsXCJFU1wiLFwiQ1NcIixcIkNTXCIsXCJFTlwiLFwiRU5cIixcIkVOXCIsXCJFTlwiLFwiRU5cIixcIkVOXCIsXCJFTlwiLFwiRU5cIixcIkVOXCIsXCJFTlwiLFwiQ1NcIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJcIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQ1NcIixcIk5cIixcIkVUXCIsXCJFVFwiLFwiRVRcIixcIkVUXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJMXCIsXCJOXCIsXCJOXCIsXCJCTlwiLFwiTlwiLFwiTlwiLFwiRVRcIixcIkVUXCIsXCJFTlwiLFwiRU5cIixcIk5cIixcIkxcIixcIk5cIixcIk5cIixcIk5cIixcIkVOXCIsXCJMXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJOXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJOXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJOXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJOXCIsXCJOXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJOXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJOXCIsXCJMXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJFVFwiLFwiTlwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiUlwiLFwiTlNNXCIsXCJSXCIsXCJOU01cIixcIk5TTVwiLFwiUlwiLFwiTlNNXCIsXCJOU01cIixcIlJcIixcIk5TTVwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiQU5cIixcIkFOXCIsXCJBTlwiLFwiQU5cIixcIkFOXCIsXCJBTlwiLFwiTlwiLFwiTlwiLFwiQUxcIixcIkVUXCIsXCJFVFwiLFwiQUxcIixcIkNTXCIsXCJBTFwiLFwiTlwiLFwiTlwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIkFMXCIsXCJBTFwiLFwiTlwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiQU5cIixcIkFOXCIsXCJBTlwiLFwiQU5cIixcIkFOXCIsXCJBTlwiLFwiQU5cIixcIkFOXCIsXCJBTlwiLFwiQU5cIixcIkVUXCIsXCJBTlwiLFwiQU5cIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIk5TTVwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIkFOXCIsXCJOXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJBTFwiLFwiQUxcIixcIk5TTVwiLFwiTlNNXCIsXCJOXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIkFMXCIsXCJBTFwiLFwiRU5cIixcIkVOXCIsXCJFTlwiLFwiRU5cIixcIkVOXCIsXCJFTlwiLFwiRU5cIixcIkVOXCIsXCJFTlwiLFwiRU5cIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiTlwiLFwiQUxcIixcIkFMXCIsXCJOU01cIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5cIixcIk5cIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIkFMXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJSXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJSXCIsXCJSXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJSXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJXU1wiLFwiV1NcIixcIldTXCIsXCJXU1wiLFwiV1NcIixcIldTXCIsXCJXU1wiLFwiV1NcIixcIldTXCIsXCJXU1wiLFwiV1NcIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkxcIixcIlJcIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIldTXCIsXCJCXCIsXCJMUkVcIixcIlJMRVwiLFwiUERGXCIsXCJMUk9cIixcIlJMT1wiLFwiQ1NcIixcIkVUXCIsXCJFVFwiLFwiRVRcIixcIkVUXCIsXCJFVFwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiQ1NcIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIldTXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIk5cIixcIkxSSVwiLFwiUkxJXCIsXCJGU0lcIixcIlBESVwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiQk5cIixcIkJOXCIsXCJCTlwiLFwiRU5cIixcIkxcIixcIk5cIixcIk5cIixcIkVOXCIsXCJFTlwiLFwiRU5cIixcIkVOXCIsXCJFTlwiLFwiRU5cIixcIkVTXCIsXCJFU1wiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTFwiLFwiRU5cIixcIkVOXCIsXCJFTlwiLFwiRU5cIixcIkVOXCIsXCJFTlwiLFwiRU5cIixcIkVOXCIsXCJFTlwiLFwiRU5cIixcIkVTXCIsXCJFU1wiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTFwiLFwiTFwiLFwiTFwiLFwiTFwiLFwiTFwiLFwiTFwiLFwiTFwiLFwiTFwiLFwiTFwiLFwiTFwiLFwiTFwiLFwiTFwiLFwiTFwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiRVRcIixcIkVUXCIsXCJFVFwiLFwiRVRcIixcIkVUXCIsXCJFVFwiLFwiRVRcIixcIkVUXCIsXCJFVFwiLFwiRVRcIixcIkVUXCIsXCJFVFwiLFwiRVRcIixcIkVUXCIsXCJFVFwiLFwiRVRcIixcIkVUXCIsXCJFVFwiLFwiRVRcIixcIkVUXCIsXCJFVFwiLFwiRVRcIixcIkVUXCIsXCJFVFwiLFwiRVRcIixcIkVUXCIsXCJFVFwiLFwiRVRcIixcIkVUXCIsXCJFVFwiLFwiRVRcIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIkxcIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIlJcIixcIk5TTVwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiUlwiLFwiRVNcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIk5cIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIk5cIixcIlJcIixcIk5cIixcIlJcIixcIlJcIixcIk5cIixcIlJcIixcIlJcIixcIk5cIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIlJcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOU01cIixcIk5TTVwiLFwiTlNNXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJDU1wiLFwiTlwiLFwiQ1NcIixcIk5cIixcIk5cIixcIkNTXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJFVFwiLFwiTlwiLFwiTlwiLFwiRVNcIixcIkVTXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJFVFwiLFwiRVRcIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiTlwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiQUxcIixcIkFMXCIsXCJBTFwiLFwiTlwiLFwiTlwiLFwiQk5cIixcIk5cIixcIk5cIixcIk5cIixcIkVUXCIsXCJFVFwiLFwiRVRcIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIk5cIixcIkVTXCIsXCJDU1wiLFwiRVNcIixcIkNTXCIsXCJDU1wiLFwiRU5cIixcIkVOXCIsXCJFTlwiLFwiRU5cIixcIkVOXCIsXCJFTlwiLFwiRU5cIixcIkVOXCIsXCJFTlwiLFwiRU5cIixcIkNTXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJOXCIsXCJOXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJOXCIsXCJOXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJOXCIsXCJOXCIsXCJMXCIsXCJMXCIsXCJMXCIsXCJOXCIsXCJOXCIsXCJOXCIsXCJFVFwiLFwiRVRcIixcIk5cIixcIk5cIixcIk5cIixcIkVUXCIsXCJFVFwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiLFwiTlwiXSxyPW5ldyB0Ll9fYmlkaUVuZ2luZV9fKHtpc0lucHV0VmlzdWFsOiEwfSk7dC5BUEkuZXZlbnRzLnB1c2goW1wicG9zdFByb2Nlc3NUZXh0XCIsZnVuY3Rpb24odCl7dmFyIGU9dC50ZXh0O3QueCx0Lnk7dmFyIG49dC5vcHRpb25zfHx7fTt0Lm11dGV4LG4ubGFuZzt2YXIgaT1bXTtpZihuLmlzSW5wdXRWaXN1YWw9XCJib29sZWFuXCIhPXR5cGVvZiBuLmlzSW5wdXRWaXN1YWx8fG4uaXNJbnB1dFZpc3VhbCxyLnNldE9wdGlvbnMobiksXCJbb2JqZWN0IEFycmF5XVwiPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpKXt2YXIgYT0wO2ZvcihpPVtdLGE9MDthPGUubGVuZ3RoO2ErPTEpXCJbb2JqZWN0IEFycmF5XVwiPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGVbYV0pP2kucHVzaChbci5kb0JpZGlSZW9yZGVyKGVbYV1bMF0pLGVbYV1bMV0sZVthXVsyXV0pOmkucHVzaChbci5kb0JpZGlSZW9yZGVyKGVbYV0pXSk7dC50ZXh0PWl9ZWxzZSB0LnRleHQ9ci5kb0JpZGlSZW9yZGVyKGUpO3Iuc2V0T3B0aW9ucyh7aXNJbnB1dFZpc3VhbDohMH0pfV0pfShDKSxDLkFQSS5UVEZGb250PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZTtpZih0aGlzLnJhd0RhdGE9dCxlPXRoaXMuY29udGVudHM9bmV3IGFlKHQpLHRoaXMuY29udGVudHMucG9zPTQsXCJ0dGNmXCI9PT1lLnJlYWRTdHJpbmcoNCkpdGhyb3cgbmV3IEVycm9yKFwiVFRDRiBub3Qgc3VwcG9ydGVkLlwiKTtlLnBvcz0wLHRoaXMucGFyc2UoKSx0aGlzLnN1YnNldD1uZXcgQWUodGhpcyksdGhpcy5yZWdpc3RlclRURigpfXJldHVybiB0Lm9wZW49ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KGUpfSx0LnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRpcmVjdG9yeT1uZXcgb2UodGhpcy5jb250ZW50cyksdGhpcy5oZWFkPW5ldyB1ZSh0aGlzKSx0aGlzLm5hbWU9bmV3IG1lKHRoaXMpLHRoaXMuY21hcD1uZXcgaGUodGhpcyksdGhpcy50b1VuaWNvZGU9e30sdGhpcy5oaGVhPW5ldyBmZSh0aGlzKSx0aGlzLm1heHA9bmV3IHZlKHRoaXMpLHRoaXMuaG10eD1uZXcgYmUodGhpcyksdGhpcy5wb3N0PW5ldyBwZSh0aGlzKSx0aGlzLm9zMj1uZXcgZGUodGhpcyksdGhpcy5sb2NhPW5ldyB4ZSh0aGlzKSx0aGlzLmdseWY9bmV3IHdlKHRoaXMpLHRoaXMuYXNjZW5kZXI9dGhpcy5vczIuZXhpc3RzJiZ0aGlzLm9zMi5hc2NlbmRlcnx8dGhpcy5oaGVhLmFzY2VuZGVyLHRoaXMuZGVjZW5kZXI9dGhpcy5vczIuZXhpc3RzJiZ0aGlzLm9zMi5kZWNlbmRlcnx8dGhpcy5oaGVhLmRlY2VuZGVyLHRoaXMubGluZUdhcD10aGlzLm9zMi5leGlzdHMmJnRoaXMub3MyLmxpbmVHYXB8fHRoaXMuaGhlYS5saW5lR2FwLHRoaXMuYmJveD1bdGhpcy5oZWFkLnhNaW4sdGhpcy5oZWFkLnlNaW4sdGhpcy5oZWFkLnhNYXgsdGhpcy5oZWFkLnlNYXhdfSx0LnByb3RvdHlwZS5yZWdpc3RlclRURj1mdW5jdGlvbigpe3ZhciB0LGUscixuLGk7aWYodGhpcy5zY2FsZUZhY3Rvcj0xZTMvdGhpcy5oZWFkLnVuaXRzUGVyRW0sdGhpcy5iYm94PWZ1bmN0aW9uKCl7dmFyIGUscixuLGk7Zm9yKGk9W10sZT0wLHI9KG49dGhpcy5iYm94KS5sZW5ndGg7ZTxyO2UrKyl0PW5bZV0saS5wdXNoKE1hdGgucm91bmQodCp0aGlzLnNjYWxlRmFjdG9yKSk7cmV0dXJuIGl9LmNhbGwodGhpcyksdGhpcy5zdGVtVj0wLHRoaXMucG9zdC5leGlzdHM/KHI9MjU1JihuPXRoaXMucG9zdC5pdGFsaWNfYW5nbGUpLDMyNzY4JihlPW4+PjE2KSYmKGU9LSgxKyg2NTUzNV5lKSkpLHRoaXMuaXRhbGljQW5nbGU9KyhlK1wiLlwiK3IpKTp0aGlzLml0YWxpY0FuZ2xlPTAsdGhpcy5hc2NlbmRlcj1NYXRoLnJvdW5kKHRoaXMuYXNjZW5kZXIqdGhpcy5zY2FsZUZhY3RvciksdGhpcy5kZWNlbmRlcj1NYXRoLnJvdW5kKHRoaXMuZGVjZW5kZXIqdGhpcy5zY2FsZUZhY3RvciksdGhpcy5saW5lR2FwPU1hdGgucm91bmQodGhpcy5saW5lR2FwKnRoaXMuc2NhbGVGYWN0b3IpLHRoaXMuY2FwSGVpZ2h0PXRoaXMub3MyLmV4aXN0cyYmdGhpcy5vczIuY2FwSGVpZ2h0fHx0aGlzLmFzY2VuZGVyLHRoaXMueEhlaWdodD10aGlzLm9zMi5leGlzdHMmJnRoaXMub3MyLnhIZWlnaHR8fDAsdGhpcy5mYW1pbHlDbGFzcz0odGhpcy5vczIuZXhpc3RzJiZ0aGlzLm9zMi5mYW1pbHlDbGFzc3x8MCk+PjgsdGhpcy5pc1NlcmlmPTE9PT0oaT10aGlzLmZhbWlseUNsYXNzKXx8Mj09PWl8fDM9PT1pfHw0PT09aXx8NT09PWl8fDc9PT1pLHRoaXMuaXNTY3JpcHQ9MTA9PT10aGlzLmZhbWlseUNsYXNzLHRoaXMuZmxhZ3M9MCx0aGlzLnBvc3QuaXNGaXhlZFBpdGNoJiYodGhpcy5mbGFnc3w9MSksdGhpcy5pc1NlcmlmJiYodGhpcy5mbGFnc3w9MiksdGhpcy5pc1NjcmlwdCYmKHRoaXMuZmxhZ3N8PTgpLDAhPT10aGlzLml0YWxpY0FuZ2xlJiYodGhpcy5mbGFnc3w9NjQpLHRoaXMuZmxhZ3N8PTMyLCF0aGlzLmNtYXAudW5pY29kZSl0aHJvdyBuZXcgRXJyb3IoXCJObyB1bmljb2RlIGNtYXAgZm9yIGZvbnRcIil9LHQucHJvdG90eXBlLmNoYXJhY3RlclRvR2x5cGg9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuKG51bGwhPShlPXRoaXMuY21hcC51bmljb2RlKT9lLmNvZGVNYXBbdF06dm9pZCAwKXx8MH0sdC5wcm90b3R5cGUud2lkdGhPZkdseXBoPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBlPTFlMy90aGlzLmhlYWQudW5pdHNQZXJFbSx0aGlzLmhtdHguZm9yR2x5cGgodCkuYWR2YW5jZSplfSx0LnByb3RvdHlwZS53aWR0aE9mU3RyaW5nPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGEsbztmb3IoYT0wLGk9MCxvPSh0PVwiXCIrdCkubGVuZ3RoOzA8PW8/aTxvOmk+bztpPTA8PW8/KytpOi0taSluPXQuY2hhckNvZGVBdChpKSxhKz10aGlzLndpZHRoT2ZHbHlwaCh0aGlzLmNoYXJhY3RlclRvR2x5cGgobikpK3IqKDFlMy9lKXx8MDtyZXR1cm4gYSooZS8xZTMpfSx0LnByb3RvdHlwZS5saW5lSGVpZ2h0PWZ1bmN0aW9uKHQsZSl7dmFyIHI7cmV0dXJuIG51bGw9PWUmJihlPSExKSxyPWU/dGhpcy5saW5lR2FwOjAsKHRoaXMuYXNjZW5kZXIrci10aGlzLmRlY2VuZGVyKS8xZTMqdH0sdH0oKTt2YXIgaWUsYWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuZGF0YT1udWxsIT10P3Q6W10sdGhpcy5wb3M9MCx0aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RofXJldHVybiB0LnByb3RvdHlwZS5yZWFkQnl0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGFbdGhpcy5wb3MrK119LHQucHJvdG90eXBlLndyaXRlQnl0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kYXRhW3RoaXMucG9zKytdPXR9LHQucHJvdG90eXBlLnJlYWRVSW50MzI9ZnVuY3Rpb24oKXtyZXR1cm4gMTY3NzcyMTYqdGhpcy5yZWFkQnl0ZSgpKyh0aGlzLnJlYWRCeXRlKCk8PDE2KSsodGhpcy5yZWFkQnl0ZSgpPDw4KSt0aGlzLnJlYWRCeXRlKCl9LHQucHJvdG90eXBlLndyaXRlVUludDMyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLndyaXRlQnl0ZSh0Pj4+MjQmMjU1KSx0aGlzLndyaXRlQnl0ZSh0Pj4xNiYyNTUpLHRoaXMud3JpdGVCeXRlKHQ+PjgmMjU1KSx0aGlzLndyaXRlQnl0ZSgyNTUmdCl9LHQucHJvdG90eXBlLnJlYWRJbnQzMj1mdW5jdGlvbigpe3ZhciB0O3JldHVybih0PXRoaXMucmVhZFVJbnQzMigpKT49MjE0NzQ4MzY0OD90LTQyOTQ5NjcyOTY6dH0sdC5wcm90b3R5cGUud3JpdGVJbnQzMj1mdW5jdGlvbih0KXtyZXR1cm4gdDwwJiYodCs9NDI5NDk2NzI5NiksdGhpcy53cml0ZVVJbnQzMih0KX0sdC5wcm90b3R5cGUucmVhZFVJbnQxNj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRCeXRlKCk8PDh8dGhpcy5yZWFkQnl0ZSgpfSx0LnByb3RvdHlwZS53cml0ZVVJbnQxNj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53cml0ZUJ5dGUodD4+OCYyNTUpLHRoaXMud3JpdGVCeXRlKDI1NSZ0KX0sdC5wcm90b3R5cGUucmVhZEludDE2PWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9dGhpcy5yZWFkVUludDE2KCkpPj0zMjc2OD90LTY1NTM2OnR9LHQucHJvdG90eXBlLndyaXRlSW50MTY9ZnVuY3Rpb24odCl7cmV0dXJuIHQ8MCYmKHQrPTY1NTM2KSx0aGlzLndyaXRlVUludDE2KHQpfSx0LnByb3RvdHlwZS5yZWFkU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciBlLHI7Zm9yKHI9W10sZT0wOzA8PXQ/ZTx0OmU+dDtlPTA8PXQ/KytlOi0tZSlyW2VdPVN0cmluZy5mcm9tQ2hhckNvZGUodGhpcy5yZWFkQnl0ZSgpKTtyZXR1cm4gci5qb2luKFwiXCIpfSx0LnByb3RvdHlwZS53cml0ZVN0cmluZz1mdW5jdGlvbih0KXt2YXIgZSxyLG47Zm9yKG49W10sZT0wLHI9dC5sZW5ndGg7MDw9cj9lPHI6ZT5yO2U9MDw9cj8rK2U6LS1lKW4ucHVzaCh0aGlzLndyaXRlQnl0ZSh0LmNoYXJDb2RlQXQoZSkpKTtyZXR1cm4gbn0sdC5wcm90b3R5cGUucmVhZFNob3J0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZEludDE2KCl9LHQucHJvdG90eXBlLndyaXRlU2hvcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMud3JpdGVJbnQxNih0KX0sdC5wcm90b3R5cGUucmVhZExvbmdMb25nPWZ1bmN0aW9uKCl7dmFyIHQsZSxyLG4saSxhLG8scztyZXR1cm4gdD10aGlzLnJlYWRCeXRlKCksZT10aGlzLnJlYWRCeXRlKCkscj10aGlzLnJlYWRCeXRlKCksbj10aGlzLnJlYWRCeXRlKCksaT10aGlzLnJlYWRCeXRlKCksYT10aGlzLnJlYWRCeXRlKCksbz10aGlzLnJlYWRCeXRlKCkscz10aGlzLnJlYWRCeXRlKCksMTI4JnQ/LTEqKDcyMDU3NTk0MDM3OTI3OTQwKigyNTVedCkrMjgxNDc0OTc2NzEwNjU2KigyNTVeZSkrMTA5OTUxMTYyNzc3NiooMjU1XnIpKzQyOTQ5NjcyOTYqKDI1NV5uKSsxNjc3NzIxNiooMjU1XmkpKzY1NTM2KigyNTVeYSkrMjU2KigyNTVebykrKDI1NV5zKSsxKTo3MjA1NzU5NDAzNzkyNzk0MCp0KzI4MTQ3NDk3NjcxMDY1NiplKzEwOTk1MTE2Mjc3NzYqcis0Mjk0OTY3Mjk2Km4rMTY3NzcyMTYqaSs2NTUzNiphKzI1NipvK3N9LHQucHJvdG90eXBlLndyaXRlTG9uZ0xvbmc9ZnVuY3Rpb24odCl7dmFyIGUscjtyZXR1cm4gZT1NYXRoLmZsb29yKHQvNDI5NDk2NzI5Nikscj00Mjk0OTY3Mjk1JnQsdGhpcy53cml0ZUJ5dGUoZT4+MjQmMjU1KSx0aGlzLndyaXRlQnl0ZShlPj4xNiYyNTUpLHRoaXMud3JpdGVCeXRlKGU+PjgmMjU1KSx0aGlzLndyaXRlQnl0ZSgyNTUmZSksdGhpcy53cml0ZUJ5dGUocj4+MjQmMjU1KSx0aGlzLndyaXRlQnl0ZShyPj4xNiYyNTUpLHRoaXMud3JpdGVCeXRlKHI+PjgmMjU1KSx0aGlzLndyaXRlQnl0ZSgyNTUmcil9LHQucHJvdG90eXBlLnJlYWRJbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkSW50MzIoKX0sdC5wcm90b3R5cGUud3JpdGVJbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMud3JpdGVJbnQzMih0KX0sdC5wcm90b3R5cGUucmVhZD1mdW5jdGlvbih0KXt2YXIgZSxyO2ZvcihlPVtdLHI9MDswPD10P3I8dDpyPnQ7cj0wPD10PysrcjotLXIpZS5wdXNoKHRoaXMucmVhZEJ5dGUoKSk7cmV0dXJuIGV9LHQucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpO2ZvcihpPVtdLHI9MCxuPXQubGVuZ3RoO3I8bjtyKyspZT10W3JdLGkucHVzaCh0aGlzLndyaXRlQnl0ZShlKSk7cmV0dXJuIGl9LHR9KCksb2U9ZnVuY3Rpb24oKXt2YXIgdDtmdW5jdGlvbiBlKHQpe3ZhciBlLHIsbjtmb3IodGhpcy5zY2FsYXJUeXBlPXQucmVhZEludCgpLHRoaXMudGFibGVDb3VudD10LnJlYWRTaG9ydCgpLHRoaXMuc2VhcmNoUmFuZ2U9dC5yZWFkU2hvcnQoKSx0aGlzLmVudHJ5U2VsZWN0b3I9dC5yZWFkU2hvcnQoKSx0aGlzLnJhbmdlU2hpZnQ9dC5yZWFkU2hvcnQoKSx0aGlzLnRhYmxlcz17fSxyPTAsbj10aGlzLnRhYmxlQ291bnQ7MDw9bj9yPG46cj5uO3I9MDw9bj8rK3I6LS1yKWU9e3RhZzp0LnJlYWRTdHJpbmcoNCksY2hlY2tzdW06dC5yZWFkSW50KCksb2Zmc2V0OnQucmVhZEludCgpLGxlbmd0aDp0LnJlYWRJbnQoKX0sdGhpcy50YWJsZXNbZS50YWddPWV9cmV0dXJuIGUucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihlKXt2YXIgcixuLGksYSxvLHMsYyx1LGwsaCxmLGQscDtmb3IocCBpbiBmPU9iamVjdC5rZXlzKGUpLmxlbmd0aCxzPU1hdGgubG9nKDIpLGw9MTYqTWF0aC5mbG9vcihNYXRoLmxvZyhmKS9zKSxhPU1hdGguZmxvb3IobC9zKSx1PTE2KmYtbCwobj1uZXcgYWUpLndyaXRlSW50KHRoaXMuc2NhbGFyVHlwZSksbi53cml0ZVNob3J0KGYpLG4ud3JpdGVTaG9ydChsKSxuLndyaXRlU2hvcnQoYSksbi53cml0ZVNob3J0KHUpLGk9MTYqZixjPW4ucG9zK2ksbz1udWxsLGQ9W10sZSlmb3IoaD1lW3BdLG4ud3JpdGVTdHJpbmcocCksbi53cml0ZUludCh0KGgpKSxuLndyaXRlSW50KGMpLG4ud3JpdGVJbnQoaC5sZW5ndGgpLGQ9ZC5jb25jYXQoaCksXCJoZWFkXCI9PT1wJiYobz1jKSxjKz1oLmxlbmd0aDtjJTQ7KWQucHVzaCgwKSxjKys7cmV0dXJuIG4ud3JpdGUoZCkscj0yOTgxMTQ2NTU0LXQobi5kYXRhKSxuLnBvcz1vKzgsbi53cml0ZVVJbnQzMihyKSxuLmRhdGF9LHQ9ZnVuY3Rpb24odCl7dmFyIGUscixuLGk7Zm9yKHQ9eWUuY2FsbCh0KTt0Lmxlbmd0aCU0Oyl0LnB1c2goMCk7Zm9yKG49bmV3IGFlKHQpLHI9MCxlPTAsaT10Lmxlbmd0aDtlPGk7ZT1lKz00KXIrPW4ucmVhZFVJbnQzMigpO3JldHVybiA0Mjk0OTY3Mjk1JnJ9LGV9KCksc2U9e30uaGFzT3duUHJvcGVydHksY2U9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gZSlzZS5jYWxsKGUscikmJih0W3JdPWVbcl0pO2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9cmV0dXJuIG4ucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyBuLHQuX19zdXBlcl9fPWUucHJvdG90eXBlLHR9O2llPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZTt0aGlzLmZpbGU9dCxlPXRoaXMuZmlsZS5kaXJlY3RvcnkudGFibGVzW3RoaXMudGFnXSx0aGlzLmV4aXN0cz0hIWUsZSYmKHRoaXMub2Zmc2V0PWUub2Zmc2V0LHRoaXMubGVuZ3RoPWUubGVuZ3RoLHRoaXMucGFyc2UodGhpcy5maWxlLmNvbnRlbnRzKSl9cmV0dXJuIHQucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKCl7fSx0LnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24oKXt9LHQucHJvdG90eXBlLnJhdz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmV4aXN0cz8odGhpcy5maWxlLmNvbnRlbnRzLnBvcz10aGlzLm9mZnNldCx0aGlzLmZpbGUuY29udGVudHMucmVhZCh0aGlzLmxlbmd0aCkpOm51bGx9LHR9KCk7dmFyIHVlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3JldHVybiB0Ll9fc3VwZXJfXy5jb25zdHJ1Y3Rvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGNlKHQsaWUpLHQucHJvdG90eXBlLnRhZz1cImhlYWRcIix0LnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5wb3M9dGhpcy5vZmZzZXQsdGhpcy52ZXJzaW9uPXQucmVhZEludCgpLHRoaXMucmV2aXNpb249dC5yZWFkSW50KCksdGhpcy5jaGVja1N1bUFkanVzdG1lbnQ9dC5yZWFkSW50KCksdGhpcy5tYWdpY051bWJlcj10LnJlYWRJbnQoKSx0aGlzLmZsYWdzPXQucmVhZFNob3J0KCksdGhpcy51bml0c1BlckVtPXQucmVhZFNob3J0KCksdGhpcy5jcmVhdGVkPXQucmVhZExvbmdMb25nKCksdGhpcy5tb2RpZmllZD10LnJlYWRMb25nTG9uZygpLHRoaXMueE1pbj10LnJlYWRTaG9ydCgpLHRoaXMueU1pbj10LnJlYWRTaG9ydCgpLHRoaXMueE1heD10LnJlYWRTaG9ydCgpLHRoaXMueU1heD10LnJlYWRTaG9ydCgpLHRoaXMubWFjU3R5bGU9dC5yZWFkU2hvcnQoKSx0aGlzLmxvd2VzdFJlY1BQRU09dC5yZWFkU2hvcnQoKSx0aGlzLmZvbnREaXJlY3Rpb25IaW50PXQucmVhZFNob3J0KCksdGhpcy5pbmRleFRvTG9jRm9ybWF0PXQucmVhZFNob3J0KCksdGhpcy5nbHlwaERhdGFGb3JtYXQ9dC5yZWFkU2hvcnQoKX0sdC5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybihlPW5ldyBhZSkud3JpdGVJbnQodGhpcy52ZXJzaW9uKSxlLndyaXRlSW50KHRoaXMucmV2aXNpb24pLGUud3JpdGVJbnQodGhpcy5jaGVja1N1bUFkanVzdG1lbnQpLGUud3JpdGVJbnQodGhpcy5tYWdpY051bWJlciksZS53cml0ZVNob3J0KHRoaXMuZmxhZ3MpLGUud3JpdGVTaG9ydCh0aGlzLnVuaXRzUGVyRW0pLGUud3JpdGVMb25nTG9uZyh0aGlzLmNyZWF0ZWQpLGUud3JpdGVMb25nTG9uZyh0aGlzLm1vZGlmaWVkKSxlLndyaXRlU2hvcnQodGhpcy54TWluKSxlLndyaXRlU2hvcnQodGhpcy55TWluKSxlLndyaXRlU2hvcnQodGhpcy54TWF4KSxlLndyaXRlU2hvcnQodGhpcy55TWF4KSxlLndyaXRlU2hvcnQodGhpcy5tYWNTdHlsZSksZS53cml0ZVNob3J0KHRoaXMubG93ZXN0UmVjUFBFTSksZS53cml0ZVNob3J0KHRoaXMuZm9udERpcmVjdGlvbkhpbnQpLGUud3JpdGVTaG9ydCh0KSxlLndyaXRlU2hvcnQodGhpcy5nbHlwaERhdGFGb3JtYXQpLGUuZGF0YX0sdH0oKSxsZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXt2YXIgcixuLGksYSxvLHMsYyx1LGwsaCxmLGQscCxnLG0sdixiO3N3aXRjaCh0aGlzLnBsYXRmb3JtSUQ9dC5yZWFkVUludDE2KCksdGhpcy5lbmNvZGluZ0lEPXQucmVhZFNob3J0KCksdGhpcy5vZmZzZXQ9ZSt0LnJlYWRJbnQoKSxsPXQucG9zLHQucG9zPXRoaXMub2Zmc2V0LHRoaXMuZm9ybWF0PXQucmVhZFVJbnQxNigpLHRoaXMubGVuZ3RoPXQucmVhZFVJbnQxNigpLHRoaXMubGFuZ3VhZ2U9dC5yZWFkVUludDE2KCksdGhpcy5pc1VuaWNvZGU9Mz09PXRoaXMucGxhdGZvcm1JRCYmMT09PXRoaXMuZW5jb2RpbmdJRCYmND09PXRoaXMuZm9ybWF0fHwwPT09dGhpcy5wbGF0Zm9ybUlEJiY0PT09dGhpcy5mb3JtYXQsdGhpcy5jb2RlTWFwPXt9LHRoaXMuZm9ybWF0KXtjYXNlIDA6Zm9yKHM9MDtzPDI1NjsrK3MpdGhpcy5jb2RlTWFwW3NdPXQucmVhZEJ5dGUoKTticmVhaztjYXNlIDQ6Zm9yKGY9dC5yZWFkVUludDE2KCksaD1mLzIsdC5wb3MrPTYsaT1mdW5jdGlvbigpe3ZhciBlLHI7Zm9yKHI9W10scz1lPTA7MDw9aD9lPGg6ZT5oO3M9MDw9aD8rK2U6LS1lKXIucHVzaCh0LnJlYWRVSW50MTYoKSk7cmV0dXJuIHJ9KCksdC5wb3MrPTIscD1mdW5jdGlvbigpe3ZhciBlLHI7Zm9yKHI9W10scz1lPTA7MDw9aD9lPGg6ZT5oO3M9MDw9aD8rK2U6LS1lKXIucHVzaCh0LnJlYWRVSW50MTYoKSk7cmV0dXJuIHJ9KCksYz1mdW5jdGlvbigpe3ZhciBlLHI7Zm9yKHI9W10scz1lPTA7MDw9aD9lPGg6ZT5oO3M9MDw9aD8rK2U6LS1lKXIucHVzaCh0LnJlYWRVSW50MTYoKSk7cmV0dXJuIHJ9KCksdT1mdW5jdGlvbigpe3ZhciBlLHI7Zm9yKHI9W10scz1lPTA7MDw9aD9lPGg6ZT5oO3M9MDw9aD8rK2U6LS1lKXIucHVzaCh0LnJlYWRVSW50MTYoKSk7cmV0dXJuIHJ9KCksbj0odGhpcy5sZW5ndGgtdC5wb3MrdGhpcy5vZmZzZXQpLzIsbz1mdW5jdGlvbigpe3ZhciBlLHI7Zm9yKHI9W10scz1lPTA7MDw9bj9lPG46ZT5uO3M9MDw9bj8rK2U6LS1lKXIucHVzaCh0LnJlYWRVSW50MTYoKSk7cmV0dXJuIHJ9KCkscz1tPTAsYj1pLmxlbmd0aDttPGI7cz0rK20pZm9yKGc9aVtzXSxyPXY9ZD1wW3NdO2Q8PWc/djw9Zzp2Pj1nO3I9ZDw9Zz8rK3Y6LS12KTA9PT11W3NdP2E9citjW3NdOjAhPT0oYT1vW3Vbc10vMisoci1kKS0oaC1zKV18fDApJiYoYSs9Y1tzXSksdGhpcy5jb2RlTWFwW3JdPTY1NTM1JmF9dC5wb3M9bH1yZXR1cm4gdC5lbmNvZGU9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYSxvLHMsYyx1LGwsaCxmLGQscCxnLG0sdixiLHksdyxOLEwseCxBLFMsXyxQLGssRixJLEMsaixPLEIscSxNLEUsUixELFQseixVLEgsVyxWLEcsWTtzd2l0Y2goRj1uZXcgYWUsYT1PYmplY3Qua2V5cyh0KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pLGUpe2Nhc2VcIm1hY3JvbWFuXCI6Zm9yKHA9MCxnPWZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKGQ9MDtkPDI1NjsrK2QpdC5wdXNoKDApO3JldHVybiB0fSgpLHY9ezA6MH0saT17fSxJPTAsQj1hLmxlbmd0aDtJPEI7SSsrKW51bGw9PXZbVz10W249YVtJXV1dJiYodltXXT0rK3ApLGlbbl09e29sZDp0W25dLG5ldzp2W3Rbbl1dfSxnW25dPXZbdFtuXV07cmV0dXJuIEYud3JpdGVVSW50MTYoMSksRi53cml0ZVVJbnQxNigwKSxGLndyaXRlVUludDMyKDEyKSxGLndyaXRlVUludDE2KDApLEYud3JpdGVVSW50MTYoMjYyKSxGLndyaXRlVUludDE2KDApLEYud3JpdGUoZykse2NoYXJNYXA6aSxzdWJ0YWJsZTpGLmRhdGEsbWF4R2x5cGhJRDpwKzF9O2Nhc2VcInVuaWNvZGVcIjpmb3IoUD1bXSxsPVtdLGI9MCx2PXt9LHI9e30sbT1jPW51bGwsQz0wLHE9YS5sZW5ndGg7QzxxO0MrKyludWxsPT12W3c9dFtuPWFbQ11dXSYmKHZbd109KytiKSxyW25dPXtvbGQ6dyxuZXc6dlt3XX0sbz12W3ddLW4sbnVsbCE9bSYmbz09PWN8fChtJiZsLnB1c2gobSksUC5wdXNoKG4pLGM9byksbT1uO2ZvcihtJiZsLnB1c2gobSksbC5wdXNoKDY1NTM1KSxQLnB1c2goNjU1MzUpLFM9MiooQT1QLmxlbmd0aCkseD0yKk1hdGgucG93KE1hdGgubG9nKEEpL01hdGguTE4yLDIpLGg9TWF0aC5sb2coeC8yKS9NYXRoLkxOMixMPTIqQS14LHM9W10sTj1bXSxmPVtdLGQ9aj0wLE09UC5sZW5ndGg7ajxNO2Q9KytqKXtpZihfPVBbZF0sdT1sW2RdLDY1NTM1PT09Xyl7cy5wdXNoKDApLE4ucHVzaCgwKTticmVha31pZihfLShrPXJbX10ubmV3KT49MzI3NjgpZm9yKHMucHVzaCgwKSxOLnB1c2goMiooZi5sZW5ndGgrQS1kKSksbj1PPV87Xzw9dT9PPD11Ok8+PXU7bj1fPD11PysrTzotLU8pZi5wdXNoKHJbbl0ubmV3KTtlbHNlIHMucHVzaChrLV8pLE4ucHVzaCgwKX1mb3IoRi53cml0ZVVJbnQxNigzKSxGLndyaXRlVUludDE2KDEpLEYud3JpdGVVSW50MzIoMTIpLEYud3JpdGVVSW50MTYoNCksRi53cml0ZVVJbnQxNigxNis4KkErMipmLmxlbmd0aCksRi53cml0ZVVJbnQxNigwKSxGLndyaXRlVUludDE2KFMpLEYud3JpdGVVSW50MTYoeCksRi53cml0ZVVJbnQxNihoKSxGLndyaXRlVUludDE2KEwpLFU9MCxFPWwubGVuZ3RoO1U8RTtVKyspbj1sW1VdLEYud3JpdGVVSW50MTYobik7Zm9yKEYud3JpdGVVSW50MTYoMCksSD0wLFI9UC5sZW5ndGg7SDxSO0grKyluPVBbSF0sRi53cml0ZVVJbnQxNihuKTtmb3IoVj0wLEQ9cy5sZW5ndGg7VjxEO1YrKylvPXNbVl0sRi53cml0ZVVJbnQxNihvKTtmb3IoRz0wLFQ9Ti5sZW5ndGg7RzxUO0crKyl5PU5bR10sRi53cml0ZVVJbnQxNih5KTtmb3IoWT0wLHo9Zi5sZW5ndGg7WTx6O1krKylwPWZbWV0sRi53cml0ZVVJbnQxNihwKTtyZXR1cm57Y2hhck1hcDpyLHN1YnRhYmxlOkYuZGF0YSxtYXhHbHlwaElEOmIrMX19fSx0fSgpLGhlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3JldHVybiB0Ll9fc3VwZXJfXy5jb25zdHJ1Y3Rvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGNlKHQsaWUpLHQucHJvdG90eXBlLnRhZz1cImNtYXBcIix0LnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbih0KXt2YXIgZSxyLG47Zm9yKHQucG9zPXRoaXMub2Zmc2V0LHRoaXMudmVyc2lvbj10LnJlYWRVSW50MTYoKSxuPXQucmVhZFVJbnQxNigpLHRoaXMudGFibGVzPVtdLHRoaXMudW5pY29kZT1udWxsLHI9MDswPD1uP3I8bjpyPm47cj0wPD1uPysrcjotLXIpZT1uZXcgbGUodCx0aGlzLm9mZnNldCksdGhpcy50YWJsZXMucHVzaChlKSxlLmlzVW5pY29kZSYmbnVsbD09dGhpcy51bmljb2RlJiYodGhpcy51bmljb2RlPWUpO3JldHVybiEwfSx0LmVuY29kZT1mdW5jdGlvbih0LGUpe3ZhciByLG47cmV0dXJuIG51bGw9PWUmJihlPVwibWFjcm9tYW5cIikscj1sZS5lbmNvZGUodCxlKSwobj1uZXcgYWUpLndyaXRlVUludDE2KDApLG4ud3JpdGVVSW50MTYoMSksci50YWJsZT1uLmRhdGEuY29uY2F0KHIuc3VidGFibGUpLHJ9LHR9KCksZmU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7cmV0dXJuIHQuX19zdXBlcl9fLmNvbnN0cnVjdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gY2UodCxpZSksdC5wcm90b3R5cGUudGFnPVwiaGhlYVwiLHQucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKHQpe3JldHVybiB0LnBvcz10aGlzLm9mZnNldCx0aGlzLnZlcnNpb249dC5yZWFkSW50KCksdGhpcy5hc2NlbmRlcj10LnJlYWRTaG9ydCgpLHRoaXMuZGVjZW5kZXI9dC5yZWFkU2hvcnQoKSx0aGlzLmxpbmVHYXA9dC5yZWFkU2hvcnQoKSx0aGlzLmFkdmFuY2VXaWR0aE1heD10LnJlYWRTaG9ydCgpLHRoaXMubWluTGVmdFNpZGVCZWFyaW5nPXQucmVhZFNob3J0KCksdGhpcy5taW5SaWdodFNpZGVCZWFyaW5nPXQucmVhZFNob3J0KCksdGhpcy54TWF4RXh0ZW50PXQucmVhZFNob3J0KCksdGhpcy5jYXJldFNsb3BlUmlzZT10LnJlYWRTaG9ydCgpLHRoaXMuY2FyZXRTbG9wZVJ1bj10LnJlYWRTaG9ydCgpLHRoaXMuY2FyZXRPZmZzZXQ9dC5yZWFkU2hvcnQoKSx0LnBvcys9OCx0aGlzLm1ldHJpY0RhdGFGb3JtYXQ9dC5yZWFkU2hvcnQoKSx0aGlzLm51bWJlck9mTWV0cmljcz10LnJlYWRVSW50MTYoKX0sdH0oKSxkZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXtyZXR1cm4gdC5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBjZSh0LGllKSx0LnByb3RvdHlwZS50YWc9XCJPUy8yXCIsdC5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24odCl7aWYodC5wb3M9dGhpcy5vZmZzZXQsdGhpcy52ZXJzaW9uPXQucmVhZFVJbnQxNigpLHRoaXMuYXZlcmFnZUNoYXJXaWR0aD10LnJlYWRTaG9ydCgpLHRoaXMud2VpZ2h0Q2xhc3M9dC5yZWFkVUludDE2KCksdGhpcy53aWR0aENsYXNzPXQucmVhZFVJbnQxNigpLHRoaXMudHlwZT10LnJlYWRTaG9ydCgpLHRoaXMueVN1YnNjcmlwdFhTaXplPXQucmVhZFNob3J0KCksdGhpcy55U3Vic2NyaXB0WVNpemU9dC5yZWFkU2hvcnQoKSx0aGlzLnlTdWJzY3JpcHRYT2Zmc2V0PXQucmVhZFNob3J0KCksdGhpcy55U3Vic2NyaXB0WU9mZnNldD10LnJlYWRTaG9ydCgpLHRoaXMueVN1cGVyc2NyaXB0WFNpemU9dC5yZWFkU2hvcnQoKSx0aGlzLnlTdXBlcnNjcmlwdFlTaXplPXQucmVhZFNob3J0KCksdGhpcy55U3VwZXJzY3JpcHRYT2Zmc2V0PXQucmVhZFNob3J0KCksdGhpcy55U3VwZXJzY3JpcHRZT2Zmc2V0PXQucmVhZFNob3J0KCksdGhpcy55U3RyaWtlb3V0U2l6ZT10LnJlYWRTaG9ydCgpLHRoaXMueVN0cmlrZW91dFBvc2l0aW9uPXQucmVhZFNob3J0KCksdGhpcy5mYW1pbHlDbGFzcz10LnJlYWRTaG9ydCgpLHRoaXMucGFub3NlPWZ1bmN0aW9uKCl7dmFyIGUscjtmb3Iocj1bXSxlPTA7ZTwxMDsrK2Upci5wdXNoKHQucmVhZEJ5dGUoKSk7cmV0dXJuIHJ9KCksdGhpcy5jaGFyUmFuZ2U9ZnVuY3Rpb24oKXt2YXIgZSxyO2ZvcihyPVtdLGU9MDtlPDQ7KytlKXIucHVzaCh0LnJlYWRJbnQoKSk7cmV0dXJuIHJ9KCksdGhpcy52ZW5kb3JJRD10LnJlYWRTdHJpbmcoNCksdGhpcy5zZWxlY3Rpb249dC5yZWFkU2hvcnQoKSx0aGlzLmZpcnN0Q2hhckluZGV4PXQucmVhZFNob3J0KCksdGhpcy5sYXN0Q2hhckluZGV4PXQucmVhZFNob3J0KCksdGhpcy52ZXJzaW9uPjAmJih0aGlzLmFzY2VudD10LnJlYWRTaG9ydCgpLHRoaXMuZGVzY2VudD10LnJlYWRTaG9ydCgpLHRoaXMubGluZUdhcD10LnJlYWRTaG9ydCgpLHRoaXMud2luQXNjZW50PXQucmVhZFNob3J0KCksdGhpcy53aW5EZXNjZW50PXQucmVhZFNob3J0KCksdGhpcy5jb2RlUGFnZVJhbmdlPWZ1bmN0aW9uKCl7dmFyIGUscjtmb3Iocj1bXSxlPTA7ZTwyO2U9KytlKXIucHVzaCh0LnJlYWRJbnQoKSk7cmV0dXJuIHJ9KCksdGhpcy52ZXJzaW9uPjEpKXJldHVybiB0aGlzLnhIZWlnaHQ9dC5yZWFkU2hvcnQoKSx0aGlzLmNhcEhlaWdodD10LnJlYWRTaG9ydCgpLHRoaXMuZGVmYXVsdENoYXI9dC5yZWFkU2hvcnQoKSx0aGlzLmJyZWFrQ2hhcj10LnJlYWRTaG9ydCgpLHRoaXMubWF4Q29udGV4dD10LnJlYWRTaG9ydCgpfSx0fSgpLHBlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3JldHVybiB0Ll9fc3VwZXJfXy5jb25zdHJ1Y3Rvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGNlKHQsaWUpLHQucHJvdG90eXBlLnRhZz1cInBvc3RcIix0LnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbih0KXt2YXIgZSxyLG47c3dpdGNoKHQucG9zPXRoaXMub2Zmc2V0LHRoaXMuZm9ybWF0PXQucmVhZEludCgpLHRoaXMuaXRhbGljQW5nbGU9dC5yZWFkSW50KCksdGhpcy51bmRlcmxpbmVQb3NpdGlvbj10LnJlYWRTaG9ydCgpLHRoaXMudW5kZXJsaW5lVGhpY2tuZXNzPXQucmVhZFNob3J0KCksdGhpcy5pc0ZpeGVkUGl0Y2g9dC5yZWFkSW50KCksdGhpcy5taW5NZW1UeXBlNDI9dC5yZWFkSW50KCksdGhpcy5tYXhNZW1UeXBlNDI9dC5yZWFkSW50KCksdGhpcy5taW5NZW1UeXBlMT10LnJlYWRJbnQoKSx0aGlzLm1heE1lbVR5cGUxPXQucmVhZEludCgpLHRoaXMuZm9ybWF0KXtjYXNlIDY1NTM2OmNhc2UgMTk2NjA4OmJyZWFrO2Nhc2UgMTMxMDcyOnZhciBpO2ZvcihyPXQucmVhZFVJbnQxNigpLHRoaXMuZ2x5cGhOYW1lSW5kZXg9W10saT0wOzA8PXI/aTxyOmk+cjtpPTA8PXI/KytpOi0taSl0aGlzLmdseXBoTmFtZUluZGV4LnB1c2godC5yZWFkVUludDE2KCkpO2Zvcih0aGlzLm5hbWVzPVtdLG49W107dC5wb3M8dGhpcy5vZmZzZXQrdGhpcy5sZW5ndGg7KWU9dC5yZWFkQnl0ZSgpLG4ucHVzaCh0aGlzLm5hbWVzLnB1c2godC5yZWFkU3RyaW5nKGUpKSk7cmV0dXJuIG47Y2FzZSAxNTE1NTI6cmV0dXJuIHI9dC5yZWFkVUludDE2KCksdGhpcy5vZmZzZXRzPXQucmVhZChyKTtjYXNlIDI2MjE0NDpyZXR1cm4gdGhpcy5tYXA9ZnVuY3Rpb24oKXt2YXIgZSxyLG47Zm9yKG49W10saT1lPTAscj10aGlzLmZpbGUubWF4cC5udW1HbHlwaHM7MDw9cj9lPHI6ZT5yO2k9MDw9cj8rK2U6LS1lKW4ucHVzaCh0LnJlYWRVSW50MzIoKSk7cmV0dXJuIG59LmNhbGwodGhpcyl9fSx0fSgpLGdlPWZ1bmN0aW9uKHQsZSl7dGhpcy5yYXc9dCx0aGlzLmxlbmd0aD10Lmxlbmd0aCx0aGlzLnBsYXRmb3JtSUQ9ZS5wbGF0Zm9ybUlELHRoaXMuZW5jb2RpbmdJRD1lLmVuY29kaW5nSUQsdGhpcy5sYW5ndWFnZUlEPWUubGFuZ3VhZ2VJRH0sbWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7cmV0dXJuIHQuX19zdXBlcl9fLmNvbnN0cnVjdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gY2UodCxpZSksdC5wcm90b3R5cGUudGFnPVwibmFtZVwiLHQucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLGEsbyxzLGMsdSxsLGg7Zm9yKHQucG9zPXRoaXMub2Zmc2V0LHQucmVhZFNob3J0KCksZT10LnJlYWRTaG9ydCgpLG89dC5yZWFkU2hvcnQoKSxyPVtdLGk9MDswPD1lP2k8ZTppPmU7aT0wPD1lPysraTotLWkpci5wdXNoKHtwbGF0Zm9ybUlEOnQucmVhZFNob3J0KCksZW5jb2RpbmdJRDp0LnJlYWRTaG9ydCgpLGxhbmd1YWdlSUQ6dC5yZWFkU2hvcnQoKSxuYW1lSUQ6dC5yZWFkU2hvcnQoKSxsZW5ndGg6dC5yZWFkU2hvcnQoKSxvZmZzZXQ6dGhpcy5vZmZzZXQrbyt0LnJlYWRTaG9ydCgpfSk7Zm9yKHM9e30saT11PTAsbD1yLmxlbmd0aDt1PGw7aT0rK3Upbj1yW2ldLHQucG9zPW4ub2Zmc2V0LGM9dC5yZWFkU3RyaW5nKG4ubGVuZ3RoKSxhPW5ldyBnZShjLG4pLG51bGw9PXNbaD1uLm5hbWVJRF0mJihzW2hdPVtdKSxzW24ubmFtZUlEXS5wdXNoKGEpO3RoaXMuc3RyaW5ncz1zLHRoaXMuY29weXJpZ2h0PXNbMF0sdGhpcy5mb250RmFtaWx5PXNbMV0sdGhpcy5mb250U3ViZmFtaWx5PXNbMl0sdGhpcy51bmlxdWVTdWJmYW1pbHk9c1szXSx0aGlzLmZvbnROYW1lPXNbNF0sdGhpcy52ZXJzaW9uPXNbNV07dHJ5e3RoaXMucG9zdHNjcmlwdE5hbWU9c1s2XVswXS5yYXcucmVwbGFjZSgvW1xceDAwLVxceDE5XFx4ODAtXFx4ZmZdL2csXCJcIil9Y2F0Y2goZil7dGhpcy5wb3N0c2NyaXB0TmFtZT1zWzRdWzBdLnJhdy5yZXBsYWNlKC9bXFx4MDAtXFx4MTlcXHg4MC1cXHhmZl0vZyxcIlwiKX1yZXR1cm4gdGhpcy50cmFkZW1hcms9c1s3XSx0aGlzLm1hbnVmYWN0dXJlcj1zWzhdLHRoaXMuZGVzaWduZXI9c1s5XSx0aGlzLmRlc2NyaXB0aW9uPXNbMTBdLHRoaXMudmVuZG9yVXJsPXNbMTFdLHRoaXMuZGVzaWduZXJVcmw9c1sxMl0sdGhpcy5saWNlbnNlPXNbMTNdLHRoaXMubGljZW5zZVVybD1zWzE0XSx0aGlzLnByZWZlcnJlZEZhbWlseT1zWzE1XSx0aGlzLnByZWZlcnJlZFN1YmZhbWlseT1zWzE3XSx0aGlzLmNvbXBhdGlibGVGdWxsPXNbMThdLHRoaXMuc2FtcGxlVGV4dD1zWzE5XX0sdH0oKSx2ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXtyZXR1cm4gdC5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBjZSh0LGllKSx0LnByb3RvdHlwZS50YWc9XCJtYXhwXCIsdC5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIHQucG9zPXRoaXMub2Zmc2V0LHRoaXMudmVyc2lvbj10LnJlYWRJbnQoKSx0aGlzLm51bUdseXBocz10LnJlYWRVSW50MTYoKSx0aGlzLm1heFBvaW50cz10LnJlYWRVSW50MTYoKSx0aGlzLm1heENvbnRvdXJzPXQucmVhZFVJbnQxNigpLHRoaXMubWF4Q29tcG9zaXRlUG9pbnRzPXQucmVhZFVJbnQxNigpLHRoaXMubWF4Q29tcG9uZW50Q29udG91cnM9dC5yZWFkVUludDE2KCksdGhpcy5tYXhab25lcz10LnJlYWRVSW50MTYoKSx0aGlzLm1heFR3aWxpZ2h0UG9pbnRzPXQucmVhZFVJbnQxNigpLHRoaXMubWF4U3RvcmFnZT10LnJlYWRVSW50MTYoKSx0aGlzLm1heEZ1bmN0aW9uRGVmcz10LnJlYWRVSW50MTYoKSx0aGlzLm1heEluc3RydWN0aW9uRGVmcz10LnJlYWRVSW50MTYoKSx0aGlzLm1heFN0YWNrRWxlbWVudHM9dC5yZWFkVUludDE2KCksdGhpcy5tYXhTaXplT2ZJbnN0cnVjdGlvbnM9dC5yZWFkVUludDE2KCksdGhpcy5tYXhDb21wb25lbnRFbGVtZW50cz10LnJlYWRVSW50MTYoKSx0aGlzLm1heENvbXBvbmVudERlcHRoPXQucmVhZFVJbnQxNigpfSx0fSgpLGJlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3JldHVybiB0Ll9fc3VwZXJfXy5jb25zdHJ1Y3Rvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGNlKHQsaWUpLHQucHJvdG90eXBlLnRhZz1cImhtdHhcIix0LnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhLG8scztmb3IodC5wb3M9dGhpcy5vZmZzZXQsdGhpcy5tZXRyaWNzPVtdLGU9MCxvPXRoaXMuZmlsZS5oaGVhLm51bWJlck9mTWV0cmljczswPD1vP2U8bzplPm87ZT0wPD1vPysrZTotLWUpdGhpcy5tZXRyaWNzLnB1c2goe2FkdmFuY2U6dC5yZWFkVUludDE2KCksbHNiOnQucmVhZEludDE2KCl9KTtmb3Iobj10aGlzLmZpbGUubWF4cC5udW1HbHlwaHMtdGhpcy5maWxlLmhoZWEubnVtYmVyT2ZNZXRyaWNzLHRoaXMubGVmdFNpZGVCZWFyaW5ncz1mdW5jdGlvbigpe3ZhciByLGk7Zm9yKGk9W10sZT1yPTA7MDw9bj9yPG46cj5uO2U9MDw9bj8rK3I6LS1yKWkucHVzaCh0LnJlYWRJbnQxNigpKTtyZXR1cm4gaX0oKSx0aGlzLndpZHRocz1mdW5jdGlvbigpe3ZhciB0LGUscixuO2ZvcihuPVtdLHQ9MCxlPShyPXRoaXMubWV0cmljcykubGVuZ3RoO3Q8ZTt0KyspaT1yW3RdLG4ucHVzaChpLmFkdmFuY2UpO3JldHVybiBufS5jYWxsKHRoaXMpLHI9dGhpcy53aWR0aHNbdGhpcy53aWR0aHMubGVuZ3RoLTFdLHM9W10sZT1hPTA7MDw9bj9hPG46YT5uO2U9MDw9bj8rK2E6LS1hKXMucHVzaCh0aGlzLndpZHRocy5wdXNoKHIpKTtyZXR1cm4gc30sdC5wcm90b3R5cGUuZm9yR2x5cGg9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW4gdGhpcy5tZXRyaWNzP3RoaXMubWV0cmljc1t0XTp7YWR2YW5jZTp0aGlzLm1ldHJpY3NbdGhpcy5tZXRyaWNzLmxlbmd0aC0xXS5hZHZhbmNlLGxzYjp0aGlzLmxlZnRTaWRlQmVhcmluZ3NbdC10aGlzLm1ldHJpY3MubGVuZ3RoXX19LHR9KCkseWU9W10uc2xpY2Usd2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7cmV0dXJuIHQuX19zdXBlcl9fLmNvbnN0cnVjdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gY2UodCxpZSksdC5wcm90b3R5cGUudGFnPVwiZ2x5ZlwiLHQucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FjaGU9e319LHQucHJvdG90eXBlLmdseXBoRm9yPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLGEsbyxzLGMsdSxsO3JldHVybiB0IGluIHRoaXMuY2FjaGU/dGhpcy5jYWNoZVt0XTooaT10aGlzLmZpbGUubG9jYSxlPXRoaXMuZmlsZS5jb250ZW50cyxyPWkuaW5kZXhPZih0KSwwPT09KG49aS5sZW5ndGhPZih0KSk/dGhpcy5jYWNoZVt0XT1udWxsOihlLnBvcz10aGlzLm9mZnNldCtyLGE9KG89bmV3IGFlKGUucmVhZChuKSkpLnJlYWRTaG9ydCgpLGM9by5yZWFkU2hvcnQoKSxsPW8ucmVhZFNob3J0KCkscz1vLnJlYWRTaG9ydCgpLHU9by5yZWFkU2hvcnQoKSx0aGlzLmNhY2hlW3RdPS0xPT09YT9uZXcgTGUobyxjLGwscyx1KTpuZXcgTmUobyxhLGMsbCxzLHUpLHRoaXMuY2FjaGVbdF0pKX0sdC5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGEsbyxzO2ZvcihhPVtdLGk9W10sbz0wLHM9ZS5sZW5ndGg7bzxzO28rKyluPXRbZVtvXV0saS5wdXNoKGEubGVuZ3RoKSxuJiYoYT1hLmNvbmNhdChuLmVuY29kZShyKSkpO3JldHVybiBpLnB1c2goYS5sZW5ndGgpLHt0YWJsZTphLG9mZnNldHM6aX19LHR9KCksTmU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxyLG4saSxhKXt0aGlzLnJhdz10LHRoaXMubnVtYmVyT2ZDb250b3Vycz1lLHRoaXMueE1pbj1yLHRoaXMueU1pbj1uLHRoaXMueE1heD1pLHRoaXMueU1heD1hLHRoaXMuY29tcG91bmQ9ITF9cmV0dXJuIHQucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJhdy5kYXRhfSx0fSgpLExlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUscixuLGkpe3ZhciBhLG87Zm9yKHRoaXMucmF3PXQsdGhpcy54TWluPWUsdGhpcy55TWluPXIsdGhpcy54TWF4PW4sdGhpcy55TWF4PWksdGhpcy5jb21wb3VuZD0hMCx0aGlzLmdseXBoSURzPVtdLHRoaXMuZ2x5cGhPZmZzZXRzPVtdLGE9dGhpcy5yYXc7bz1hLnJlYWRTaG9ydCgpLHRoaXMuZ2x5cGhPZmZzZXRzLnB1c2goYS5wb3MpLHRoaXMuZ2x5cGhJRHMucHVzaChhLnJlYWRVSW50MTYoKSksMzImbzspYS5wb3MrPTEmbz80OjIsMTI4Jm8/YS5wb3MrPTg6NjQmbz9hLnBvcys9NDo4Jm8mJihhLnBvcys9Mil9cmV0dXJuIHQucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbigpe3ZhciB0LGUscjtmb3IoZT1uZXcgYWUoeWUuY2FsbCh0aGlzLnJhdy5kYXRhKSksdD0wLHI9dGhpcy5nbHlwaElEcy5sZW5ndGg7dDxyOysrdCllLnBvcz10aGlzLmdseXBoT2Zmc2V0c1t0XTtyZXR1cm4gZS5kYXRhfSx0fSgpLHhlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3JldHVybiB0Ll9fc3VwZXJfXy5jb25zdHJ1Y3Rvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGNlKHQsaWUpLHQucHJvdG90eXBlLnRhZz1cImxvY2FcIix0LnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbih0KXt2YXIgZSxyO3JldHVybiB0LnBvcz10aGlzLm9mZnNldCxlPXRoaXMuZmlsZS5oZWFkLmluZGV4VG9Mb2NGb3JtYXQsdGhpcy5vZmZzZXRzPTA9PT1lP2Z1bmN0aW9uKCl7dmFyIGUsbjtmb3Iobj1bXSxyPTAsZT10aGlzLmxlbmd0aDtyPGU7cis9MiluLnB1c2goMip0LnJlYWRVSW50MTYoKSk7cmV0dXJuIG59LmNhbGwodGhpcyk6ZnVuY3Rpb24oKXt2YXIgZSxuO2ZvcihuPVtdLHI9MCxlPXRoaXMubGVuZ3RoO3I8ZTtyKz00KW4ucHVzaCh0LnJlYWRVSW50MzIoKSk7cmV0dXJuIG59LmNhbGwodGhpcyl9LHQucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub2Zmc2V0c1t0XX0sdC5wcm90b3R5cGUubGVuZ3RoT2Y9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub2Zmc2V0c1t0KzFdLXRoaXMub2Zmc2V0c1t0XX0sdC5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPW5ldyBVaW50MzJBcnJheSh0aGlzLm9mZnNldHMubGVuZ3RoKSxuPTAsaT0wLGE9MDthPHIubGVuZ3RoOysrYSlpZihyW2FdPW4saTxlLmxlbmd0aCYmZVtpXT09YSl7KytpLHJbYV09bjt2YXIgbz10aGlzLm9mZnNldHNbYV0scz10aGlzLm9mZnNldHNbYSsxXS1vO3M+MCYmKG4rPXMpfWZvcih2YXIgYz1uZXcgQXJyYXkoNCpyLmxlbmd0aCksdT0wO3U8ci5sZW5ndGg7Kyt1KWNbNCp1KzNdPTI1NSZyW3VdLGNbNCp1KzJdPSg2NTI4MCZyW3VdKT4+OCxjWzQqdSsxXT0oMTY3MTE2ODAmclt1XSk+PjE2LGNbNCp1XT0oNDI3ODE5MDA4MCZyW3VdKT4+MjQ7cmV0dXJuIGN9LHR9KCksQWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuZm9udD10LHRoaXMuc3Vic2V0PXt9LHRoaXMudW5pY29kZXM9e30sdGhpcy5uZXh0PTMzfXJldHVybiB0LnByb3RvdHlwZS5nZW5lcmF0ZUNtYXA9ZnVuY3Rpb24oKXt2YXIgdCxlLHIsbixpO2ZvcihlIGluIG49dGhpcy5mb250LmNtYXAudGFibGVzWzBdLmNvZGVNYXAsdD17fSxpPXRoaXMuc3Vic2V0KXI9aVtlXSx0W2VdPW5bcl07cmV0dXJuIHR9LHQucHJvdG90eXBlLmdseXBoc0Zvcj1mdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhLG8scztmb3Iobj17fSxhPTAsbz10Lmxlbmd0aDthPG87YSsrKW5baT10W2FdXT10aGlzLmZvbnQuZ2x5Zi5nbHlwaEZvcihpKTtmb3IoaSBpbiBlPVtdLG4pKG51bGwhPShyPW5baV0pP3IuY29tcG91bmQ6dm9pZCAwKSYmZS5wdXNoLmFwcGx5KGUsci5nbHlwaElEcyk7aWYoZS5sZW5ndGg+MClmb3IoaSBpbiBzPXRoaXMuZ2x5cGhzRm9yKGUpKXI9c1tpXSxuW2ldPXI7cmV0dXJuIG59LHQucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbih0LGUpe3ZhciByLG4saSxhLG8scyxjLHUsbCxoLGYsZCxwLGcsbTtmb3IobiBpbiByPWhlLmVuY29kZSh0aGlzLmdlbmVyYXRlQ21hcCgpLFwidW5pY29kZVwiKSxhPXRoaXMuZ2x5cGhzRm9yKHQpLGY9ezA6MH0sbT1yLmNoYXJNYXApZlsocz1tW25dKS5vbGRdPXMubmV3O2ZvcihkIGluIGg9ci5tYXhHbHlwaElELGEpZCBpbiBmfHwoZltkXT1oKyspO3JldHVybiB1PWZ1bmN0aW9uKHQpe3ZhciBlLHI7Zm9yKGUgaW4gcj17fSx0KXJbdFtlXV09ZTtyZXR1cm4gcn0oZiksbD1PYmplY3Qua2V5cyh1KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pLHA9ZnVuY3Rpb24oKXt2YXIgdCxlLHI7Zm9yKHI9W10sdD0wLGU9bC5sZW5ndGg7dDxlO3QrKylvPWxbdF0sci5wdXNoKHVbb10pO3JldHVybiByfSgpLGk9dGhpcy5mb250LmdseWYuZW5jb2RlKGEscCxmKSxjPXRoaXMuZm9udC5sb2NhLmVuY29kZShpLm9mZnNldHMscCksZz17Y21hcDp0aGlzLmZvbnQuY21hcC5yYXcoKSxnbHlmOmkudGFibGUsbG9jYTpjLGhtdHg6dGhpcy5mb250LmhtdHgucmF3KCksaGhlYTp0aGlzLmZvbnQuaGhlYS5yYXcoKSxtYXhwOnRoaXMuZm9udC5tYXhwLnJhdygpLHBvc3Q6dGhpcy5mb250LnBvc3QucmF3KCksbmFtZTp0aGlzLmZvbnQubmFtZS5yYXcoKSxoZWFkOnRoaXMuZm9udC5oZWFkLmVuY29kZShlKX0sdGhpcy5mb250Lm9zMi5leGlzdHMmJihnW1wiT1MvMlwiXT10aGlzLmZvbnQub3MyLnJhdygpKSx0aGlzLmZvbnQuZGlyZWN0b3J5LmVuY29kZShnKX0sdH0oKTtDLkFQSS5QREZPYmplY3Q9ZnVuY3Rpb24oKXt2YXIgdDtmdW5jdGlvbiBlKCl7fXJldHVybiB0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuKEFycmF5KGUrMSkuam9pbihcIjBcIikrdCkuc2xpY2UoLWUpfSxlLmNvbnZlcnQ9ZnVuY3Rpb24ocil7dmFyIG4saSxhLG87aWYoQXJyYXkuaXNBcnJheShyKSlyZXR1cm5cIltcIitmdW5jdGlvbigpe3ZhciB0LGksYTtmb3IoYT1bXSx0PTAsaT1yLmxlbmd0aDt0PGk7dCsrKW49clt0XSxhLnB1c2goZS5jb252ZXJ0KG4pKTtyZXR1cm4gYX0oKS5qb2luKFwiIFwiKStcIl1cIjtpZihcInN0cmluZ1wiPT10eXBlb2YgcilyZXR1cm5cIi9cIityO2lmKG51bGwhPXI/ci5pc1N0cmluZzp2b2lkIDApcmV0dXJuXCIoXCIrcitcIilcIjtpZihyIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm5cIihEOlwiK3Qoci5nZXRVVENGdWxsWWVhcigpLDQpK3Qoci5nZXRVVENNb250aCgpLDIpK3Qoci5nZXRVVENEYXRlKCksMikrdChyLmdldFVUQ0hvdXJzKCksMikrdChyLmdldFVUQ01pbnV0ZXMoKSwyKSt0KHIuZ2V0VVRDU2Vjb25kcygpLDIpK1wiWilcIjtpZihcIltvYmplY3QgT2JqZWN0XVwiPT09e30udG9TdHJpbmcuY2FsbChyKSl7Zm9yKGkgaW4gYT1bXCI8PFwiXSxyKW89cltpXSxhLnB1c2goXCIvXCIraStcIiBcIitlLmNvbnZlcnQobykpO3JldHVybiBhLnB1c2goXCI+PlwiKSxhLmpvaW4oXCJcXG5cIil9cmV0dXJuXCJcIityfSxlfSgpLGV4cG9ydHMuQWNyb0Zvcm09eXQsZXhwb3J0cy5BY3JvRm9ybUFwcGVhcmFuY2U9dnQsZXhwb3J0cy5BY3JvRm9ybUJ1dHRvbj1sdCxleHBvcnRzLkFjcm9Gb3JtQ2hlY2tCb3g9cHQsZXhwb3J0cy5BY3JvRm9ybUNob2ljZUZpZWxkPW90LGV4cG9ydHMuQWNyb0Zvcm1Db21ib0JveD1jdCxleHBvcnRzLkFjcm9Gb3JtRWRpdEJveD11dCxleHBvcnRzLkFjcm9Gb3JtTGlzdEJveD1zdCxleHBvcnRzLkFjcm9Gb3JtUGFzc3dvcmRGaWVsZD1tdCxleHBvcnRzLkFjcm9Gb3JtUHVzaEJ1dHRvbj1odCxleHBvcnRzLkFjcm9Gb3JtUmFkaW9CdXR0b249ZnQsZXhwb3J0cy5BY3JvRm9ybVRleHRGaWVsZD1ndCxleHBvcnRzLkdTdGF0ZT1QLGV4cG9ydHMuU2hhZGluZ1BhdHRlcm49RixleHBvcnRzLlRpbGluZ1BhdHRlcm49SSxleHBvcnRzLmRlZmF1bHQ9QyxleHBvcnRzLmpzUERGPUM7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1qc3BkZi5ub2RlLm1pbi5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/jspdf/dist/jspdf.node.min.js\n");
|
||
|
||
/***/ })
|
||
|
||
};
|
||
; |