From 9d0b0540e6a35e7e4cad7bde0ff9f2ef47e5ec1b Mon Sep 17 00:00:00 2001 From: baalajimaestro Date: Fri, 28 Jul 2023 15:51:08 +0530 Subject: [PATCH] vault backup: 2023-07-28 15:51:08 --- .../obsidian-excalidraw-plugin/main.js | 6 +- .../obsidian-excalidraw-plugin/manifest.json | 2 +- .../obsidian-excalidraw-plugin/styles.css | 18 +- .obsidian/plugins/obsidian-git/main.js | 8 +- .obsidian/plugins/obsidian-git/manifest.json | 2 +- .../obsidian-view-mode-by-frontmatter/main.js | 133 +- .../manifest.json | 2 +- .../styles.css | 13 + .obsidian/plugins/omnisearch/data.json | 3 + .obsidian/plugins/omnisearch/main.js | 70 +- .obsidian/plugins/omnisearch/manifest.json | 4 +- .../plugins/settings-search/manifest.json | 2 +- .../plugins/table-editor-obsidian/main.js | 5039 ++++++++++++++++- .../table-editor-obsidian/manifest.json | 7 +- .obsidian/workspace.json | 4 +- 15 files changed, 5212 insertions(+), 101 deletions(-) create mode 100644 .obsidian/plugins/obsidian-view-mode-by-frontmatter/styles.css diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/main.js b/.obsidian/plugins/obsidian-excalidraw-plugin/main.js index 1c3ffaa..b829359 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/main.js +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/main.js @@ -1,5 +1,5 @@ "use strict";var obsidian_module=require("obsidian");var LZString=function(){function o(o,r){if(!t[o]){t[o]={};for(var n=0;ne;e++){var s=r.charCodeAt(e);n[2*e]=s>>>8,n[2*e+1]=s%256}return n},decompressFromUint8Array:function(o){if(null===o||void 0===o)return i.decompress(o);for(var n=new Array(o.length/2),e=0,t=n.length;t>e;e++)n[e]=256*o[2*e]+o[2*e+1];var s=[];return n.forEach(function(o){s.push(r(o))}),i.decompress(s.join(""))},compressToEncodedURIComponent:function(o){return null==o?"":i._compress(o,6,function(o){return e.charAt(o)})},decompressFromEncodedURIComponent:function(r){return null==r?"":""==r?null:(r=r.replace(/ /g,"+"),i._decompress(r.length,32,function(n){return o(e,r.charAt(n))}))},compress:function(o){return i._compress(o,16,function(o){return r(o)})},_compress:function(o,r,n){if(null==o)return"";var e,t,i,s={},p={},u="",c="",a="",l=2,f=3,h=2,d=[],m=0,v=0;for(i=0;ie;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++),s[c]=f++,a=String(u)}if(""!==a){if(Object.prototype.hasOwnProperty.call(p,a)){if(a.charCodeAt(0)<256){for(e=0;h>e;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++)}for(t=2,e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;for(;;){if(m<<=1,v==r-1){d.push(n(m));break}v++}return d.join("")},decompress:function(o){return null==o?"":""==o?null:i._decompress(o.length,32768,function(r){return o.charCodeAt(r)})},_decompress:function(o,n,e){var t,i,s,p,u,c,a,l,f=[],h=4,d=4,m=3,v="",w=[],A={val:e(0),position:n,index:1};for(i=0;3>i;i+=1)f[i]=i;for(p=0,c=Math.pow(2,2),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(t=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 2:return""}for(f[3]=l,s=l,w.push(l);;){if(A.index>o)return"";for(p=0,c=Math.pow(2,m),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(l=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 2:return w.join("")}if(0==h&&(h=Math.pow(2,m),m++),f[l])v=f[l];else{if(l!==d)return null;v=s+s.charAt(0)}w.push(v),f[d++]=s+v.charAt(0),h--,s=v,0==h&&(h=Math.pow(2,m),m++)}}};return i}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module&&(module.exports=LZString); -const EXCALIDRAW_PACKAGES = "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UmboydNhp7tnzb5umnnWvefE9NUy717zFt51so+RzqQN3+PnlzdXZRukAFFzt853c67dp9sQpgXnYxzoGfOM3nXDdJz5p5nTp6fshzcf6EWdut5+XnQ82edgBOq6a+dPCuph85i8b993jPmrPT4L5uUXaBzqDZ0Tp6HPT/zZwTnRFrpNF1m3muRd6j51z0z0+zmfNSK74oWPT5xm8zM+ewfMHp6V09Diu5m8/MLvo53YvmPmduL54wXWrefxfMYtnyOdLz536FqC+be91jiGu2dAMLNkXXM+ftvOJenMbdRLO2nXXLecFvO63nNZd8ULXGXfvefMaO3JHK+deYun5XXy+bbF2CvmN7z7LZg1VA+md851ePnF7zNt5/l81K+YFbNyJ6aVdaT5v583LeYlfMCvnoWdpoupW80m8fcfPhQs+bzbN5/qXUizqRl0KtmRxdOT5lVs/ULuZ50/K7BbzXmupW84cKZHRKWvm7XzXIu3280/eaAfNnCmX/9Lr54u86U+cm9OQ87bXzxd5mp88ubruFOSVGKnzTnOok3djrtlvM187BbzMd5ugXXALosfMKVGyYs83OiN89LefJZ3Rvni7zcb5olnSczoDvNggGA2zBAugGFgZzs1fMxvnM7z93OwFnegLtzfNhtmS59Bb5ot893eZLfMl3n43z5L52Ns5CKfeAD/3nYoWwrOtkXdm+YDvOPemY4jdIANt8x2+cbfMB3nafdRpuwx80GzpZfMwfGbmdoHOy187red5vOL3mgfTFfDZl852+cpfOm3nbbzPT5rkXSs+dvvNr3m37z0VRi+PYu+al10w86V3zTzOtd8z0LqPvOQABt7zu95oV86caYziN++7btdAMLAGFuSzsEN3Y+m8qjzsAbV81K+Y453uC6A7zXguye88q+d1fPRSGyfTMC+sh8/RzqXfOiPmuRdTsu4wXfT6f/fPCPmvoWikull80neZbvNS66QPzx0ux7ncubq59NEZZfOduT5ut82+buBZ1TvmN7zpUhkuXb4Lqw/M4fnYvjeOaFUU2/zoI/P/W6qTdet54rnU/eaZvN+26fOd/t5lB86errN9PAs773zT95w0XXvebyfMFgGbmdAMLVvnWizv9vOPc6JNdp5xSKFhx+cQ7MLSGepDLH55nnbB+eE/NPM68nzMwu1rnfMLr6V0/K6JPzbH5uZ8876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adOv+rXo9rBa15bax92Y8OuVbXpOLiG1uw64L+ZHRJBrXqYWYO1hE62OtZ72uyr7aYWk+16I6wJKYmOvXbXFDrPUh5o68XtZM4vkwsz1r1O1xQM+TC362tMbXfNrZO14lq5jboLOtFnXIAABh1haA3wkedgBRrW81rvm10c666ta7OtN1WIDr5a16g6yptbi2ui5WK+G7B1tda86teX2vKJH419S51l9a82tfEBN356lzr7a1lnayPVZol3ynXP1ru51sXa+wocmOvU7XuFDm21hja1ttegjNxrW59r2slsCXU3tfLWuRrWjjrF/ugDa9TC2zWvt7XkgzoW1idaxX+e9ctjr6fdrZm119a2OtcgAC0wsctr6W137a74dfhOvWAAe1rr61ps6yutdTcuVBm7arDYuio69ntbfWt+nWA1rAZ16ta5ltYA2uf1WS3LjvZ94qSFodQutVHXnNrmF1umFjHtemOsFrWANreKADU6xftdfWu7bWgLrTG1j9azA1Z7cvOwAz1rYa1/tayUdejWuJbWA1rIa1wk67JtZwutjHXCN9fVLd4E5kXsc2ua7Wujrzq12/a72tcEuukNXEALqXugE65ttdphaybWXtrEa1kNa47tclOs1rXqYWHq1xhq+hwcUut0wtZNrzq1qfa59tenWvaXWTTrXDVkWI2mtdJhakbXV1rK518Naymte1OsWHX5NrE21iHa7JddBDPcAWV+zK515/a0GtZwOtNnXPzrkO1yvawNtfzWv2XXHLrGm1tvawqdbb2umAA01rlMLSNaxztd9Wt5rWYTr0l1py6363i4OvjrXeNrzu1m464mtcAADPoLxdfG2sFrWzNrD21/1a5LtbVOvdrXNDrqZ1/k65Y1asAvWNWb4D7F19ba6+tYA2vO7XqYWY21uPa1Gtc22ugXWI9rqJ10q6/mtfKut9rXHNr6O1/1a4XtesADOrWg1rH212mFpTC3Cusv7Witr1MLQva+bxZiAtNb69WjpMLSLa2hdakuvkXXq1r0e157a5/tbj2serXNDrLu1vta+dtfR2v6nXHtrka13ja72tfJhaurWU1r511/k6/mtZGuulXW4LrMu17Na+HxZuutjXWJrrh11sU67tdedWsabXjrr1MLUwACGdbzWtinWz1rQa1htaw1dbdWsXXXatrnO1hja+mtY88vnJGFZTmNu/S68pdeROvlrXOrrFZ1gNa1vtan2vheWumrnfFuG6ypdbMOvNrXbjrNMLM9a0xtbMOuT7WvzrfbRzG3e2tdfWtNXXEbr1a16fi5FpBHOvOrXlAAtm1jQAOPteJusWHXBrr111j7a7Bdch2v3XWvBzzyRmSE2/Lv7WshbX6rrGp1rU66+tYBOufrW61rL+1pjay5ddDWu+HXy1rkW17U60NdZuuvCnWkrrkR1p/a5SdelutmHX5brcF16da/mtcp2vNrXnVr83lnIc5HIYBOtfbXANrpG1zC69mtaTOtdXXNbroV1q068LdcjWvanWmQLdQ58S6yVdd42uurWIdrct10K67YdYwusPrXnzrtB1tda7hdeQOsobWy1rXR10za0btdxOuMbWH1rBZ1826+Ldb42tS3X3bryV1mWJOTC32Otf7WsWrpGIZUC9xi0AuuS3WQLrYF14g611daLWv5rXzDrAG1tm65zdfgusPXWuBLKPl52ADhtYTWtMtWKzrygADNaxoABJOvE3X2Wr2EZpeUxAdfdOv5rWvtrDl119a3HtfrWufbWmrrp112Ta5npWj2sZrWhrrWF1/Na3HtaY2ukbWz1rlMLf1a9z5eMEtdV6Czrsm1uPa5rtbzWvtrXeNrKl16O6zPdf7WtnrWD/DK111Q6w9teLuu5XWnNrtO1yNayr5YUjPsoGlIzz51gfa30ddV2vdrX1trjG1zi65+tcGuvBCWdwLMW1kNa0pdcMuvGXWOTrVN16265qdYduvUnXmDrH918ta/VdejWtMbWztrsh1ge65TC39atkH7b7rPF1hi6ydtY/WtDXWfDrzl1nHa6JtY+utZ7X81rD91zg/ZH5f8jNKjmk2rSR+rG61g9dFuvtbXOrrDh1/+65xdfzWsC/RphLhd1mza5ttY+2vkwto9rrR17i61Q9ZjQOkwtTNrfV1/u69XtYfWuBbW+rrwwltKM5aOf7rg8PXI1r8e16tq0mgbmEvIi6Tbr4a1wDa5jtc+2vh7XkNrJW15a61hdZguv9rWQ1rlMLay6/Ydc0OuurXq1rDt1kB6yhtejWsjtX4xzzsAIh60ZddFuvsXWAdrYp1gc66P5dnavGPX1Tr0j17Na7I9Zf2vyPXH9r5a1m4686tc4usO3WHtrw11jDa/Hte7WsfbW71rYa119a8edbC2sFrXnVrpgANk6wWdfxOuvXXNDrVp1z66yddcROuibXl1r521x9awCdZY2tnXXrbrFMLc7a/VdYGutPtW6Uj1Il19q7Y9eCusyPXEnrh11/1awvtbcesePX6Hr111nx66YAAFus+XXg7r8J11m60mteO2tMXXfHrET10Taxjteiet7XW77rcT1umFgk9YDWv/bXXVrKT1vi64DdZuOtinXMnreW11m6xqJeIwNkBWk1dhHVtj+MR1cGTykdXCYziKp3vI02tcw2vmiX2trwJ1ih69PteEGNV3XUdry21iQY1PteXWs97WBMDQa1l7ayKdfy2sCc6ktrSgxto63zGci2tbnXqVTUR1gWC1Y9YkctSXXWNr1t1ota+g9cHWuyHWfdrcd1xNax9teDWuyHXEbrL514K601dcU2txV6lzrpMLAm65DUj02uuXWZtrpMLVc61UHq2evOrXgAApMLV1a/lddk2t1HWErrVx10DayhtZ+esbPWppz2G13DawEFfD91wn6JtrKgAL56/mtc7WvOrWfOr85uvzq4aqfiCsdB6s7r1e1jS61KdanEtpBXyOdLL13ta8/teCuvjrXuHrBL1/o6/kFY6Ov8vX6YWG4lr6c6l1bpABsnXEnrzq12Da9AdZievm7XTAAzq1y26wmte8Ov+rXLjr+a10mFs+teg2sgbWeLreJ1hw6xptbiusxXW91rgG1yNazxdaYev9PXk1r+t1iO67rdc1Oum7WqXrRl1i7a5jOd7YOAbWeLrTj1iPa5SdcX2vTHXctrtm10wAMmtbG2tFXXGNrH51iba8cFeMetJbXAdr/r1ymFqYAHWOuUws81rVF1xG61+tf92vFB7rNrKa1vFAMrdeg2ukPXq1riR13l6xNtcSestXXX1rBa1sHa5LdfJhYF3XPrrH210mFh9tYdevrPWwNr38Z+iPa69YDWv5vW11rRb1nA632tY52u8vWMtrM91gNa0UdYLWuaHXnnrECFl7q+8AGleso3XOHr4z1mmFqE9Ybes8XXeXrhr15SSzgADxOu8vXr8DxogW/A1DtezWsPrW1tr3a1lPaxoAGOuserWOdrAQEGXA7yFbwYs5nWirrMt1/NazltayevVPWYrrjl1vE67YdZ3euvGG8Tr4f4cfa01dZ72s0Jnua9n91z7a4mtY2utinWx1rIj16vazm9aROvKvX21red1hq69O9edWuQ1Iser8Ul196y/tffetx3Wm9rNW18da6NtZ5etVbXc3rDb1iNa6+td5evOmGLXrQ71lQ6yI9ccOv+rWyzD/71hNa7jrqN2sbXWStrpG13tayg9bW2vZrWETrZT1una5GFc552c3XkjrUx1kj69XtbFOvkfWQNrKa1sLaz+9cQ+t/vWVXrlJ17d6y4mcjl34fWurr0713HXUO9dR2vtnWsProm1lB69+tcgOv07XiwrUeuiD6x4dY2utfvWB7rx71pD64BtZQ+vHvX0PrLR1/p64jdc12u47WZwr2l+w4PYJ9evwPuYHj8D0a19s6+p9fCuuFvXGLreJ1+t6yZ9bEAC34GgZLWQAf1a929Zkus+vX/dr1SZuRIFcHvrevp16ynrW11tz61k9eAAC+vX/erYuu0z6459aGwCYXXrPruH1oO65G9c+2s0vWrwr2aRwnvQyddPeuTPXRPr9Z1lQAIJ9edMOo7W49raF1gta9+tZ8xNXvWVXrHMlyNa7YdaPes/3XgTrKX16va52daP2siyW2trHq1sr6+49YcevdXWRbrNr10r6wmta4OsxXWM3ru215a6yg9YA2tBvXXVrSl1h869vLqfOsfbXiTrxd1ifqybJbjWt8fXw/won1rZ672tb7euUv6V+riG1or6/Z9ePwPZfX9broa15Ha3ndbM2t6bXqYWOt1q164S9bUitEZZBPrURBl/a5bdbQuu1rX61rD21hfa8ddaqet+fXtLrYG1yyK5kQYEsMMfW/drkAAcm69MdbphaUPWX9rPu1yW67+9Y6esP3X0HrJO1yPa1VtYgGvhQAoBr4UVmAa90QbKes67WolzOlh+XE/09aY+u9rWxTrwP1yHa+ddcuutzKEa0jpgAT1az1tdJhbE7XIAAgAAF9AHUz/ACAn6xPJeBxClRXlcT5A1/Hc0Q9Zf2shbXq9rnB1y/a49tY/WvfrWGBrdX183azLdcY+tGXXq9rCD11p69wNcGXNsXXCzreKAfta3o9Zf2tyvXrbrl31tHa/mtcphYgbXUDrDD1qB60xtehetvrWYrrDa1+X6949f+OsPrXNtri0VqcNN/JZQb0EFWzorc6Rm667VddCuudnXcrrwm1s667TC1qet6PWx0LTg1976xTdf9euAvWztrZ11wy6xM9dfWssKWp0jNOp8RS3Okc1XPXN6err4p1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dQOtM7XaAbgBlpt/VfhajBvGXWy1rzkNwBa5mDbPeswGXstDhd1lm60fdf0hsTg2m1rCt10C69oDZc+uXA39AbFENs9azLtYROuUHWDjrL519Ba8ehfJPOkGXezrFa1/s66aDeoMsELX+fdZh1v665odYshuCg3c1r1317yG62tYoWvykWFWT/OVmha6O/o/LOs5G1WTxPu1f3eLlbeSP23p2I9epFmXKxwtYEMtGsnAzz6Z58M8/ayd1ytC97hFriuV21k/aRYEWtqGXN+9+uVmRayWecwrNknXZdr/V12c69dtYcuvXfW0trEV1gt6xX9bb+uY7X+rr3yhtAG3T9eQOu0wtAXrvu12gG+kcaLOsE3XyYWJQNgfazADZCutBPX1obRV12H69EDYjysuLWK+Gyn1kw60/3ol+veLW6QAEv14UG02RcC2svrWr0jzsAAkG50cYJevdkXedrlH1uja8xpf0OuJQ25dr1m1hja8ODZPBuePXvgbpRl4M686tYJ+sFrXJyLya1kB61UZbr731vWX9r261vEG7PbqaMtrkWPDrVAN++645dfXut1XWwLzzsAGK69mtZjWsVLXcuDYEu0jax1teZuvRg36lr0m1h269XtbLWvbrXI1r+zlxDa+DtcXWu7rXs1rKxl4i8//bp5tOAnWCYbJp1tda7PsHAd2YcnaLzky1k4ywxebpABWnWxwbtO1m4y/BRfY/3OwBVYblp1lh62stdS91svWBLzzINjW01Scdyj1SXWXQb0QNiS8wRRci0izfX3VrZl1wt6/jdfG2tx7XXVrZZhq969RtYDWsWvWMQbiR11yG5mtfgKt6cmH1rDG1vg6/cEcnyPEmXdqzQlFhHg3/3t+Wv52n/lrwA+vAq0CtakouEFXQVrBBV2AfWQVd5t20hHSeDzXJ4/I3ledtMtdV6C7rH111QG4BtemOuU7X59rDG1+J62dddBusVXX6rzhK1kP66+tZiusTXXeTryP1yw62mpah2sQ3WqVrxLu7wG0q9fRetg7WLfrKG1ruG+dybdkPY1nNTL7cNzV6+ddd9euA7W/jrZhVtaPQWdcWhvWAARjrMf16wAOx9cjWtUg2HCry0ehk61S9Z/JolfXw9rEf1h565TC38KvKw3AQbD21n8mjiDcw2thFWyeTiYRxqi5TybkD3NUX0HTZq1n84zwPstW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";const {react, reactDOM, excalidrawLib} = window.eval.call(window, `(function() {${LZString.decompressFromBase64(EXCALIDRAW_PACKAGES)};return {react:React, reactDOM:ReactDOM, excalidrawLib: ExcalidrawLib};})();`);const PLUGIN_VERSION="1.9.8";function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(A){if("default"!==A){var i=Object.getOwnPropertyDescriptor(e,A);Object.defineProperty(t,A,i.get?i:{enumerable:!0,get:function(){return e[A]}})}})),t.default=e,Object.freeze(t)}var obsidian_module__namespace=_interopNamespace(obsidian_module),React__namespace=_interopNamespace(React);let random$1=e=>crypto.getRandomValues(new Uint8Array(e)),customRandom=(e,t,A)=>{let i=(2<{let r="";for(;;){let t=A(n),s=n;for(;s--;)if(r+=e[t[s]&i]||"",r.length===a)return r}}},customAlphabet=(e,t=21)=>customRandom(e,t,random$1),nanoid$1=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce(((e,t)=>e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_")),"");const{sceneCoordsToViewportCoords:sceneCoordsToViewportCoords,viewportCoordsToSceneCoords:viewportCoordsToSceneCoords,determineFocusDistance:determineFocusDistance,intersectElementWithLine:intersectElementWithLine,getCommonBoundingBox:getCommonBoundingBox,getMaximumGroups:getMaximumGroups,measureText:measureText,getDefaultLineHeight:getDefaultLineHeight,wrapText:wrapText,getFontString:getFontString,getBoundTextMaxWidth:getBoundTextMaxWidth,exportToSvg:exportToSvg,exportToBlob:exportToBlob,mutateElement:mutateElement}=excalidrawLib;function JSON_parse(e){return JSON.parse(e.replaceAll("[","["))}/Mac|iPod|iPhone|iPad/.test(window.navigator.platform);const DEVICE={isDesktop:!document.body.hasClass("is-tablet")&&!document.body.hasClass("is-mobile"),isPhone:document.body.hasClass("is-phone"),isTablet:document.body.hasClass("is-tablet"),isMobile:document.body.hasClass("is-mobile"),isLinux:document.body.hasClass("mod-linux")&&!document.body.hasClass("is-android"),isMacOS:document.body.hasClass("mod-macos")&&!document.body.hasClass("is-ios"),isWindows:document.body.hasClass("mod-windows"),isIOS:document.body.hasClass("is-ios"),isAndroid:document.body.hasClass("is-android")},ROOTELEMENTSIZE=(()=>{const e=document.createElement("div");e.style.fontSize="1rem",e.style.display="none",document.body.appendChild(e);const t=getComputedStyle(e),A=parseFloat(t.fontSize);return document.body.removeChild(e),A})(),nanoid=customAlphabet("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",8),KEYCODE={ESC:27},ROUNDNESS={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},GITHUB_RELEASES="https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/",URLFETCHTIMEOUT=1e3,PLUGIN_ID="obsidian-excalidraw-plugin",SCRIPT_INSTALL_CODEBLOCK="excalidraw-script-install",SCRIPT_INSTALL_FOLDER="Downloaded",fileid=customAlphabet("1234567890abcdef",40),REG_LINKINDEX_INVALIDCHARS=/[<>:"\\|?*#]/g,REG_BLOCK_REF_CLEAN=/[!"#$%&()*+,.:;<=>?@^`{|}~\/\[\]\\]/g,IMAGE_TYPES=["jpeg","jpg","png","gif","svg","webp","bmp","ico"],EXPORT_TYPES=["svg","dark.svg","light.svg","png","dark.png","light.png"],MAX_IMAGE_SIZE=500,FRONTMATTER_KEY="excalidraw-plugin",FRONTMATTER_KEY_EXPORT_TRANSPARENT="excalidraw-export-transparent",FRONTMATTER_KEY_EXPORT_DARK="excalidraw-export-dark",FRONTMATTER_KEY_EXPORT_SVGPADDING="excalidraw-export-svgpadding",FRONTMATTER_KEY_EXPORT_PADDING="excalidraw-export-padding",FRONTMATTER_KEY_EXPORT_PNGSCALE="excalidraw-export-pngscale",FRONTMATTER_KEY_CUSTOM_PREFIX="excalidraw-link-prefix",FRONTMATTER_KEY_CUSTOM_URL_PREFIX="excalidraw-url-prefix",FRONTMATTER_KEY_CUSTOM_LINK_BRACKETS="excalidraw-link-brackets",FRONTMATTER_KEY_ONLOAD_SCRIPT="excalidraw-onload-script",FRONTMATTER_KEY_LINKBUTTON_OPACITY="excalidraw-linkbutton-opacity",FRONTMATTER_KEY_DEFAULT_MODE="excalidraw-default-mode",FRONTMATTER_KEY_FONT="excalidraw-font",FRONTMATTER_KEY_FONTCOLOR="excalidraw-font-color",FRONTMATTER_KEY_BORDERCOLOR="excalidraw-border-color",FRONTMATTER_KEY_MD_STYLE="excalidraw-css",FRONTMATTER_KEY_AUTOEXPORT="excalidraw-autoexport",FRONTMATTER_KEY_IFRAME_THEME="excalidraw-iframe-theme",IFRAME_THEME_FRONTMATTER_VALUES=["light","dark","auto","dafault"],VIEW_TYPE_EXCALIDRAW="excalidraw",ICON_NAME="excalidraw-icon",RERENDER_EVENT="excalidraw-embed-rerender",BLANK_DRAWING=`{"type":"excalidraw","version":2,"source":"${GITHUB_RELEASES+PLUGIN_VERSION}","elements":[],"appState":{"gridSize":null,"viewBackgroundColor":"#ffffff"}}`,DARK_BLANK_DRAWING=`{"type":"excalidraw","version":2,"source":"${GITHUB_RELEASES+PLUGIN_VERSION}","elements":[],"appState":{"theme":"dark","gridSize":null,"viewBackgroundColor":"#ffffff"}}`,FRONTMATTER=["---","","excalidraw-plugin: parsed","tags: [excalidraw]","","---","==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==","",""].join("\n"),EMPTY_MESSAGE="Hit enter to create a new drawing",TEXT_DISPLAY_PARSED_ICON_NAME="quote-glyph",TEXT_DISPLAY_RAW_ICON_NAME="presentation",FULLSCREEN_ICON_NAME="fullscreen",SCRIPTENGINE_ICON_NAME="ScriptEngine",KEYBOARD_EVENT_TYPES=["keydown","keyup","keypress"],EXTENDED_EVENT_TYPES=["copy","cut","paste"],TWITTER_REG=/^(?:http(?:s)?:\/\/)?(?:(?:w){3}.)?twitter.com/,COLOR_NAMES=new Map;COLOR_NAMES.set("aliceblue","#f0f8ff"),COLOR_NAMES.set("antiquewhite","#faebd7"),COLOR_NAMES.set("aqua","#00ffff"),COLOR_NAMES.set("aquamarine","#7fffd4"),COLOR_NAMES.set("azure","#f0ffff"),COLOR_NAMES.set("beige","#f5f5dc"),COLOR_NAMES.set("bisque","#ffe4c4"),COLOR_NAMES.set("black","#000000"),COLOR_NAMES.set("blanchedalmond","#ffebcd"),COLOR_NAMES.set("blue","#0000ff"),COLOR_NAMES.set("blueviolet","#8a2be2"),COLOR_NAMES.set("brown","#a52a2a"),COLOR_NAMES.set("burlywood","#deb887"),COLOR_NAMES.set("cadetblue","#5f9ea0"),COLOR_NAMES.set("chartreuse","#7fff00"),COLOR_NAMES.set("chocolate","#d2691e"),COLOR_NAMES.set("coral","#ff7f50"),COLOR_NAMES.set("cornflowerblue","#6495ed"),COLOR_NAMES.set("cornsilk","#fff8dc"),COLOR_NAMES.set("crimson","#dc143c"),COLOR_NAMES.set("cyan","#00ffff"),COLOR_NAMES.set("darkblue","#00008b"),COLOR_NAMES.set("darkcyan","#008b8b"),COLOR_NAMES.set("darkgoldenrod","#b8860b"),COLOR_NAMES.set("darkgray","#a9a9a9"),COLOR_NAMES.set("darkgreen","#006400"),COLOR_NAMES.set("darkkhaki","#bdb76b"),COLOR_NAMES.set("darkmagenta","#8b008b"),COLOR_NAMES.set("darkolivegreen","#556b2f"),COLOR_NAMES.set("darkorange","#ff8c00"),COLOR_NAMES.set("darkorchid","#9932cc"),COLOR_NAMES.set("darkred","#8b0000"),COLOR_NAMES.set("darksalmon","#e9967a"),COLOR_NAMES.set("darkseagreen","#8fbc8f"),COLOR_NAMES.set("darkslateblue","#483d8b"),COLOR_NAMES.set("darkslategray","#2f4f4f"),COLOR_NAMES.set("darkturquoise","#00ced1"),COLOR_NAMES.set("darkviolet","#9400d3"),COLOR_NAMES.set("deeppink","#ff1493"),COLOR_NAMES.set("deepskyblue","#00bfff"),COLOR_NAMES.set("dimgray","#696969"),COLOR_NAMES.set("dodgerblue","#1e90ff"),COLOR_NAMES.set("firebrick","#b22222"),COLOR_NAMES.set("floralwhite","#fffaf0"),COLOR_NAMES.set("forestgreen","#228b22"),COLOR_NAMES.set("fuchsia","#ff00ff"),COLOR_NAMES.set("gainsboro","#dcdcdc"),COLOR_NAMES.set("ghostwhite","#f8f8ff"),COLOR_NAMES.set("gold","#ffd700"),COLOR_NAMES.set("goldenrod","#daa520"),COLOR_NAMES.set("gray","#808080"),COLOR_NAMES.set("green","#008000"),COLOR_NAMES.set("greenyellow","#adff2f"),COLOR_NAMES.set("honeydew","#f0fff0"),COLOR_NAMES.set("hotpink","#ff69b4"),COLOR_NAMES.set("indianred","#cd5c5c"),COLOR_NAMES.set("indigo","#4b0082"),COLOR_NAMES.set("ivory","#fffff0"),COLOR_NAMES.set("khaki","#f0e68c"),COLOR_NAMES.set("lavender","#e6e6fa"),COLOR_NAMES.set("lavenderblush","#fff0f5"),COLOR_NAMES.set("lawngreen","#7cfc00"),COLOR_NAMES.set("lemonchiffon","#fffacd"),COLOR_NAMES.set("lightblue","#add8e6"),COLOR_NAMES.set("lightcoral","#f08080"),COLOR_NAMES.set("lightcyan","#e0ffff"),COLOR_NAMES.set("lightgoldenrodyellow","#fafad2"),COLOR_NAMES.set("lightgrey","#d3d3d3"),COLOR_NAMES.set("lightgreen","#90ee90"),COLOR_NAMES.set("lightpink","#ffb6c1"),COLOR_NAMES.set("lightsalmon","#ffa07a"),COLOR_NAMES.set("lightseagreen","#20b2aa"),COLOR_NAMES.set("lightskyblue","#87cefa"),COLOR_NAMES.set("lightslategray","#778899"),COLOR_NAMES.set("lightsteelblue","#b0c4de"),COLOR_NAMES.set("lightyellow","#ffffe0"),COLOR_NAMES.set("lime","#00ff00"),COLOR_NAMES.set("limegreen","#32cd32"),COLOR_NAMES.set("linen","#faf0e6"),COLOR_NAMES.set("magenta","#ff00ff"),COLOR_NAMES.set("maroon","#800000"),COLOR_NAMES.set("mediumaquamarine","#66cdaa"),COLOR_NAMES.set("mediumblue","#0000cd"),COLOR_NAMES.set("mediumorchid","#ba55d3"),COLOR_NAMES.set("mediumpurple","#9370d8"),COLOR_NAMES.set("mediumseagreen","#3cb371"),COLOR_NAMES.set("mediumslateblue","#7b68ee"),COLOR_NAMES.set("mediumspringgreen","#00fa9a"),COLOR_NAMES.set("mediumturquoise","#48d1cc"),COLOR_NAMES.set("mediumvioletred","#c71585"),COLOR_NAMES.set("midnightblue","#191970"),COLOR_NAMES.set("mintcream","#f5fffa"),COLOR_NAMES.set("mistyrose","#ffe4e1"),COLOR_NAMES.set("moccasin","#ffe4b5"),COLOR_NAMES.set("navajowhite","#ffdead"),COLOR_NAMES.set("navy","#000080"),COLOR_NAMES.set("oldlace","#fdf5e6"),COLOR_NAMES.set("olive","#808000"),COLOR_NAMES.set("olivedrab","#6b8e23"),COLOR_NAMES.set("orange","#ffa500"),COLOR_NAMES.set("orangered","#ff4500"),COLOR_NAMES.set("orchid","#da70d6"),COLOR_NAMES.set("palegoldenrod","#eee8aa"),COLOR_NAMES.set("palegreen","#98fb98"),COLOR_NAMES.set("paleturquoise","#afeeee"),COLOR_NAMES.set("palevioletred","#d87093"),COLOR_NAMES.set("papayawhip","#ffefd5"),COLOR_NAMES.set("peachpuff","#ffdab9"),COLOR_NAMES.set("peru","#cd853f"),COLOR_NAMES.set("pink","#ffc0cb"),COLOR_NAMES.set("plum","#dda0dd"),COLOR_NAMES.set("powderblue","#b0e0e6"),COLOR_NAMES.set("purple","#800080"),COLOR_NAMES.set("rebeccapurple","#663399"),COLOR_NAMES.set("red","#ff0000"),COLOR_NAMES.set("rosybrown","#bc8f8f"),COLOR_NAMES.set("royalblue","#4169e1"),COLOR_NAMES.set("saddlebrown","#8b4513"),COLOR_NAMES.set("salmon","#fa8072"),COLOR_NAMES.set("sandybrown","#f4a460"),COLOR_NAMES.set("seagreen","#2e8b57"),COLOR_NAMES.set("seashell","#fff5ee"),COLOR_NAMES.set("sienna","#a0522d"),COLOR_NAMES.set("silver","#c0c0c0"),COLOR_NAMES.set("skyblue","#87ceeb"),COLOR_NAMES.set("slateblue","#6a5acd"),COLOR_NAMES.set("slategray","#708090"),COLOR_NAMES.set("snow","#fffafa"),COLOR_NAMES.set("springgreen","#00ff7f"),COLOR_NAMES.set("steelblue","#4682b4"),COLOR_NAMES.set("tan","#d2b48c"),COLOR_NAMES.set("teal","#008080"),COLOR_NAMES.set("thistle","#d8bfd8"),COLOR_NAMES.set("tomato","#ff6347"),COLOR_NAMES.set("turquoise","#40e0d0"),COLOR_NAMES.set("violet","#ee82ee"),COLOR_NAMES.set("wheat","#f5deb3"),COLOR_NAMES.set("white","#ffffff"),COLOR_NAMES.set("whitesmoke","#f5f5f5"),COLOR_NAMES.set("yellow","#ffff00"),COLOR_NAMES.set("yellowgreen","#9acd32");const DEFAULT_MD_EMBED_CSS='.snw-reference{display: none;}.excalidraw-md-host{padding:0px 10px}.excalidraw-md-footer{height:5px}foreignObject{background-color:transparent}p{display:block;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0px;margin-inline-end:0px;color:inherit}table,tr,th,td{color:inherit;border:1px solid;border-collapse:collapse;padding:3px}th{font-weight:bold;border-bottom:double;background-color:silver}.copy-code-button{display:none}code[class*=language-],pre[class*=language-]{color:#393a34;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-size:.9em;line-height:1.2em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre>code[class*=language-]{font-size:1em}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{background:#C1DEF1}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{background:#C1DEF1}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;background-color:#0000001a}:not(pre)>code[class*=language-]{padding:.2em;padding-top:1px;padding-bottom:1px;background:#f8f8f8;border:1px solid #dddddd}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:green;font-style:italic}.token.namespace{opacity:.7}.token.string{color:#a31515}.token.punctuation,.token.operator{color:#393a34}.token.url,.token.symbol,.token.number,.token.boolean,.token.variable,.token.constant,.token.inserted{color:#36acaa}.token.atrule,.token.keyword,.token.attr-value,.language-autohotkey .token.selector,.language-json .token.boolean,.language-json .token.number,code[class*=language-css]{color:#00f}.token.function{color:#393a34}.token.deleted,.language-autohotkey .token.tag{color:#9a050f}.token.selector,.language-autohotkey .token.keyword{color:#00009f}.token.important{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.class-name,.language-json .token.property{color:#2b91af}.token.tag,.token.selector{color:maroon}.token.attr-name,.token.property,.token.regex,.token.entity{color:red}.token.directive.tag .tag{background:#ffff00;color:#393a34}.line-numbers.line-numbers .line-numbers-rows{border-right-color:#a5a5a5}.line-numbers .line-numbers-rows>span:before{color:#2b91af}.line-highlight.line-highlight{background:rgba(193,222,241,.2);background:-webkit-linear-gradient(left,rgba(193,222,241,.2) 70%,rgba(221,222,241,0));background:linear-gradient(to right,rgba(193,222,241,.2) 70%,rgba(221,222,241,0))}blockquote{ font-style:italic;background-color:rgb(46,43,42,0.1);margin:0;margin-left:1em;border-radius:0 4px 4px 0;border:1px solid hsl(0,80%,32%);border-left-width:8px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;padding:10px 20px;margin-inline-start:30px;margin-inline-end:30px;}',SCRIPTENGINE_ICON='',DISK_ICON_NAME="save",EXPORT_IMG_ICON=' ',EXPORT_IMG_ICON_NAME="export-img",EXCALIDRAW_ICON='',VIRGIL_DATAURL="data:application/font-woff;charset=utf-8;base64,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",VIRGIL_FONT=` @font-face {font-family: "Virgil";src: url("${VIRGIL_DATAURL}") format("woff2");}`,CASCADIA_FONT=' @font-face {font-family: "Cascadia";src: url("data:application/font-woff;charset=utf-8;base64,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XVtdpV2uXdBeAV4OXmBecl6GXpteyl74X1Vfsl/PX+xgDWAtYDVgPWBQYGNga2B9YIZgj2CcYKlgtmDLYOFg7GElYVthfmGgYa1hwmHdYgNiN2JVYoli0GL6Yzpjc2PbZINkrGUYZUBlTWVeZaNl8GX9Zi9mPGZNZrdm/mdPZ59nq2e4Z8hoAWhDaE9oW2hoaMto12jnaPNo/2mBaipqmGqlarFrRWtSa79sG2wnbFRskGzBbM5s32z7bQ5tF20fbR9tH20fbX9tzm4ebp9u+W9jb75wGnBgcKRw1HEucZRx1nIxcoly1HMHc1Nzm3P+dEJ0rXTvdR11YXWIdcl2LHZrdnN2e3aidqp2zHbwdwd3LHc/d213qHfGd/14JHhLeHt4rnjWeON5EnkpeUd5nHnBefJ5+noCeiV6T3pyenp6hXqcewR7kXu5e+R8Dnw3fHF8qnztfPp9B30UfSF9Ln07fUh9VX1ifW99fH2JfZZ9o32wfb19yn3YfeZ9834Bfg5+Hn4yfkJ+U35hfnd+h37Vf2iAj4CrgNeBDYEzgVmBgIGmgbmBzYH4gh2CUoKHgr2C84M1g/iEM4SIhK6Ey4T9hR6FQIVbhXaFiYWcha+FwoXSheuGAoYZhjCGR4Zoho+GnYazhsGGzobjhviHBYcah0yHaIgsiE6IcIi1iNuJA4lciWqJgImViaqJvYnRie6KDIosikyKbIqBio+KpIqyir+KzIrZiueK+4sPiySLOYtdi3GLhIuRi5+Ls4vIi9aL44vxi/+MFIwojD2MUoxfjGyMeYyFjJiMq4y/jNKM840NjSeNO41bjXSNjo2ijc6N7o4PjieOPY5TjmaOd46Njp6OtI7NjuGO8o8JjxqPMY9Lj2WPe4+Rj6aPvI/Kj96P75AAkA6QHJAukE6QdJCCkJ6QvJDKkN6Q75ECkRORIZE7kU+RY5F+kZSRqZHCkdiR7pIIkiSSQJJckniSlJK3ksiS2JLrkwCTDpMhkzKTQ5NQk12TcJOMk6+TvJPVk/GT/5QSlCSUNJRElFKUa5R+lJGUrJTClNiU8ZUHlR2VN5VTlWqVf5WUla2VwJXWleaV/JYNlieWOpZQlmCWdpaHlqCWtJbJluyXBZcflziXTJdgl3qXjpeil8WX3Zf1mGqYsZkFmTmZg5mvmcaZ5Zpamr6bHZtFm7icHZyAnN6dG52E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") format("woff2");}';class Random{constructor(e){this.seed=e}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}}var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},lzStringExports={},lzString={get exports(){return lzStringExports},set exports(e){lzStringExports=e}};function splitFolderAndFilename(e){const t=e.lastIndexOf("/"),A=-1==t?e:e.substring(t+1);return{folderpath:obsidian_module.normalizePath(e.substring(0,t)),filename:A,basename:A.replace(/\.[^/.]+$/,"")}}!function(e){var t=function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function n(e,t){if(!i[e]){i[e]={};for(var A=0;A>>8,A[2*i+1]=r%256}return A},decompressFromUint8Array:function(t){if(null==t)return a.decompress(t);for(var A=new Array(t.length/2),i=0,n=A.length;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,u),u++),delete s[c]}else for(n=r[c],i=0;i>=1;0==--d&&(d=Math.pow(2,u),u++),r[l]=h++,c=String(o)}if(""!==c){if(Object.prototype.hasOwnProperty.call(s,c)){if(c.charCodeAt(0)<256){for(i=0;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,u),u++),delete s[c]}else for(n=r[c],i=0;i>=1;0==--d&&(d=Math.pow(2,u),u++)}for(n=2,i=0;i>=1;for(;;){if(p<<=1,m==t-1){g.push(A(p));break}m++}return g.join("")},decompress:function(e){return null==e?"":""==e?null:a._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(t,A,i){var n,a,r,s,o,l,c,d=[],h=4,u=4,g=3,p="",m=[],w={val:i(0),position:A,index:1};for(n=0;n<3;n+=1)d[n]=n;for(r=0,o=Math.pow(2,2),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;switch(r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 2:return""}for(d[3]=c,a=c,m.push(c);;){if(w.index>t)return"";for(r=0,o=Math.pow(2,g),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;switch(c=r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;d[u++]=e(r),c=u-1,h--;break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;d[u++]=e(r),c=u-1,h--;break;case 2:return m.join("")}if(0==h&&(h=Math.pow(2,g),g++),d[c])p=d[c];else{if(c!==u)return null;p=a+a.charAt(0)}m.push(p),d[u++]=a+p.charAt(0),a=p,0==--h&&(h=Math.pow(2,g),g++)}}};return a}();null!=e&&(e.exports=t)}(lzString);const download=(e,t,A)=>{const i=document.createElement("a");i.setAttribute("href",(e?`${e},`:"")+t),i.setAttribute("download",A),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)};function getIMGFilename(e,t){return`${e.substring(0,e.lastIndexOf("."))}.${t}`}function getNewUniqueFilepath(e,t,A){let i=obsidian_module.normalizePath(`${A}/${t}`),n=e.getAbstractFileByPath(i),a=0;const r=t.endsWith(".excalidraw.md")?".excalidraw.md":t.slice(t.lastIndexOf("."));for(;n;)i=obsidian_module.normalizePath(`${A}/${t.slice(0,t.lastIndexOf(r))}_${a}${r}`),a++,n=e.getAbstractFileByPath(i);return i}function getDrawingFilename(e){return e.drawingFilenamePrefix+(""!==e.drawingFilenameDateTime?window.moment().format(e.drawingFilenameDateTime):"")+(e.compatibilityMode?".excalidraw":e.useExcalidrawExtension?".excalidraw.md":".md")}function getEmbedFilename(e,t){return(t.drawingEmbedPrefixWithFilename?e:"")+t.drawingFilnameEmbedPostfix+(""!==t.drawingFilenameDateTime?window.moment().format(t.drawingFilenameDateTime):"")+(t.compatibilityMode?".excalidraw":t.useExcalidrawExtension?".excalidraw.md":".md")}async function checkAndCreateFolder(e){const t=app.vault;e=obsidian_module.normalizePath(e);const A=t.getAbstractFileByPathInsensitive(e);A&&A instanceof obsidian_module.TFolder||(A&&A instanceof obsidian_module.TFile&&new obsidian_module.Notice(`The folder cannot be created because it already exists as a file: ${e}.`),await t.createFolder(e))}const getURLImageExtension=e=>{const t=e.split("?")[0];return t.substring(t.lastIndexOf(".")+1)},getMimeType=e=>{switch(e){case"png":return"image/png";case"jpeg":case"jpg":return"image/jpeg";case"gif":return"image/gif";case"webp":return"image/webp";case"bmp":return"image/bmp";case"ico":return"image/x-icon";case"svg":case"md":return"image/svg+xml";default:return"application/octet-stream"}},getFileFromURL=async(e,t,A=1e3)=>{try{return await Promise.race([(async()=>new Promise((e=>setTimeout((()=>e(null)),A))))(),obsidian_module.requestUrl({url:e,method:"get",contentType:t,throw:!1})])}catch(t){return void errorlog({where:getFileFromURL,message:`URL did not load within timeout period of ${A}ms`,url:e})}},getDataURLFromURL=async(e,t,A=1e3)=>{const i=await getFileFromURL(e,t,A);return i&&200===i.status?await getDataURL(i.arrayBuffer,t):e},blobToBase64=async e=>{const t=await e.arrayBuffer(),A=new Uint8Array(t);for(var i="",n=A.byteLength,a=0;a(void 0===window.pdfjsLib&&await obsidian_module.loadPdfJs(),await window.pdfjsLib.getDocument(app.vault.getResourcePath(e)).promise);let versionUpdateChecked=!1;const checkExcalidrawVersion=async e=>{if(!versionUpdateChecked){versionUpdateChecked=!0;try{const e=async()=>JSON.parse(await obsidian_module.request({url:"https://api.github.com/repos/zsviczian/obsidian-excalidraw-plugin/releases?per_page=5&page=1"})),t=(await e()).map((e=>({version:e.tag_name,published:new Date(e.published_at)}))).filter((e=>e.version.match(/^\d+\.\d+\.\d+$/))).sort(((e,t)=>t.published-e.published))[0].version;isVersionNewerThanOther(t,PLUGIN_VERSION)&&new obsidian_module.Notice(`A newer version of Excalidraw is available in Community Plugins.\n\nYou are using ${PLUGIN_VERSION}.\nThe latest is ${t}`)}catch(e){errorlog({where:"Utils/checkExcalidrawVersion",error:e})}setTimeout((()=>versionUpdateChecked=!1),288e5)}};function wrapTextAtCharLength(e,t,A=!1,i=0){if(!t)return e;let n="";if(A){for(const A of e.split("\n")){const e=A.match(new RegExp(`(.){1,${t}}`,"g"));n+=e?`${e.join("\n")}\n`:"\n"}return n.replace(/\n$/,"")}const a=new RegExp(`(.{1,${t}})(\\s+|$\\n?)|([^\\s]{1,${t+i}})(\\s+|$\\n?)?`,"gm"),r=e.matchAll(a);let s;for(;!(s=r.next()).done;){n+=s.value[1]?s.value[1].trimEnd():s.value[3].trimEnd();const e=(s.value[2]?s.value[2].split("\n").length-1:0)+(s.value[4]?s.value[4].split("\n").length-1:0);n+="\n".repeat(e),0===e&&(n+="\n")}return n.replace(/\n$/,"")}new Random(Date.now());const rotate$1=(e,t,A,i,n)=>[(e-A)*Math.cos(n)-(t-i)*Math.sin(n)+A,(e-A)*Math.sin(n)+(t-i)*Math.cos(n)+i],rotatedDimensions=e=>{if(0===e.angle)return[e.x,e.y,e.width,e.height];const t=e.x+e.width/2,A=e.y+e.height/2,[i,n]=rotate$1(e.x,e.y,t,A,e.angle),[a,r]=rotate$1(e.x+e.width,e.y+e.height,t,A,e.angle);return[inew Promise(((A,i)=>{const n=new FileReader;n.onload=()=>{const e=n.result;A(e)},n.onerror=e=>i(e),n.readAsDataURL(new Blob([new Uint8Array(e)],{type:t}))})),getFontDataURL=async(e,t,A,i)=>{let n="",a="",r="";const s=e.metadataCache.getFirstLinkpathDest(t,A);if(s){const t=await e.vault.readBinary(s),A=s.extension.startsWith("woff")?"application/font-woff":"font/truetype";a=null!=i?i:s.basename,r=await getDataURL(t,A),n=` @font-face {font-family: "${a}";src: url("${r}") format("${"ttf"===s.extension?"truetype":s.extension}");}`;const o=n.split(";base64,",2);n=`${o[0]};charset=utf-8;base64,${o[1]}`}return{fontDef:n,fontName:a,dataURL:r}},svgToBase64=e=>`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(e.replaceAll(" "," "))))}`,getBinaryFileFromDataURL=e=>{if(!e)return null;const t=e.matchAll(/base64,(.*)/g).next(),A=window.atob(t.value[1]),i=A.length,n=new Uint8Array(i);for(let e=0;e{var i;try{return await exportToSvg({elements:e.elements,appState:Object.assign({exportBackground:t.withBackground,exportWithDarkMode:!!t.withTheme&&"light"!=(null===(i=e.appState)||void 0===i?void 0:i.theme)},e.appState),files:e.files,exportPadding:A})}catch(e){return null}},getPNG=async(e,t,A,i=1)=>{var n;try{return await exportToBlob({elements:e.elements,appState:Object.assign({exportBackground:t.withBackground,exportWithDarkMode:!!t.withTheme&&"light"!=(null===(n=e.appState)||void 0===n?void 0:n.theme)},e.appState),files:e.files,exportPadding:A,mimeType:"image/png",getDimensions:(e,t)=>({width:e*i,height:t*i,scale:i})})}catch(e){return errorlog({where:"Utils.getPNG",error:e}),null}},getQuickImagePreview=async(e,t,A)=>{if(!e.settings.displayExportedImageIfAvailable)return null;const i=getIMGFilename(t,A),n=e.app.vault.getAbstractFileByPath(i);return n&&n instanceof obsidian_module.TFile?"png"===A?await e.app.vault.readBinary(n):await e.app.vault.read(n):null},embedFontsInSVG=(e,t)=>{const A=null!=e.querySelector("text[font-family^='Virgil']"),i=null!=e.querySelector("text[font-family^='Cascadia']"),n=null!=e.querySelector("text[font-family^='LocalFont']"),a=e.querySelector("defs");return a&&(i||A||n)&&(a.innerHTML=``),e},getImageSize=async e=>new Promise(((t,A)=>{const i=new Image;i.onload=()=>{t({height:i.naturalHeight,width:i.naturalWidth})},i.onerror=A,i.src=e})),scaleLoadedImage=(e,t)=>{let A=!1;if(!t||!e)return{dirty:A,scene:e};for(const i of t){const[t,n]=[i.size.width,i.size.height],a=i.size.width/i.size.height;e.elements.filter((e=>"image"===e.type&&e.fileId===i.id)).forEach((e=>{const[r,s]=[e.width,e.height];if(i.shouldScale){if(a!=r/s){A=!0;const i=Math.sqrt(r*s*n/t),a=Math.sqrt(r*s*t/n);e.height=i,e.width=a,e.y+=(s-i)/2,e.x+=(r-a)/2}}else r===t&&s===n||(A=!0,e.height=n,e.width=t,e.y+=(s-n)/2,e.x+=(r-t)/2)}))}return{dirty:A,scene:e}},setDocLeftHandedMode=(e,t)=>{const A=t.createElement("style");A.id="excalidraw-left-handed",A.textContent=".excalidraw .App-bottom-bar{justify-content:flex-end;}";const i=t.getElementById(A.id);i&&t.head.removeChild(i),e&&t.head.appendChild(A)},setLeftHandedMode=e=>{const t=new Set;app.workspace.iterateAllLeaves((A=>{const i=app.isMobile?document:A.view.containerEl.ownerDocument;i&&(t.has(i)||(t.add(i),setDocLeftHandedMode(e,i)))}))},getLinkParts=(e,t)=>{var A,i,n,a;const r=e.match(/(^[^#\|]*)#?(\^)?([^\|]*)?\|?(\d*)x?(\d*)/);return{original:e,path:t&&""===r[1]?t.path:r[1],isBlockRef:"^"===r[2],ref:(null===(A=r[3])||void 0===A?void 0:A.match(/^page=\d*$/i))?r[3]:null===(i=r[3])||void 0===i?void 0:i.replaceAll(REG_BLOCK_REF_CLEAN,""),width:r[4]?parseInt(r[4]):void 0,height:r[5]?parseInt(r[5]):void 0,page:parseInt(null===(a=null===(n=r[3])||void 0===n?void 0:n.match(/page=(\d*)/))||void 0===a?void 0:a[1])}},compress=e=>lzStringExports.compressToBase64(e).replace(/(.{64})/g,"$1\n\n"),decompress=e=>lzStringExports.decompressFromBase64(e.replaceAll("\n","").replaceAll("\r","")),hasExportTheme=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-dark"])return!0}return!1},getExportTheme=(e,t,A)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-dark"])return A.frontmatter["excalidraw-export-dark"]?"dark":"light"}return e.settings.exportWithTheme?A:"light"},hasExportBackground=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-transparent"])return!0}return!1},getWithBackground=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-transparent"])return!A.frontmatter["excalidraw-export-transparent"]}return e.settings.exportWithBackground},getExportPadding=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if(!(null==A?void 0:A.frontmatter))return e.settings.exportPaddingSVG;if(null!=A.frontmatter["excalidraw-export-padding"]){const e=parseInt(A.frontmatter["excalidraw-export-padding"]);if(!isNaN(e))return e}if(null!=A.frontmatter["excalidraw-export-svgpadding"]){const e=parseInt(A.frontmatter["excalidraw-export-svgpadding"]);if(!isNaN(e))return e}}return e.settings.exportPaddingSVG},getPNGScale=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-pngscale"]){const e=parseFloat(A.frontmatter["excalidraw-export-pngscale"]);if(!isNaN(e)&&e>0)return e}}return e.settings.pngExportScale},isVersionNewerThanOther=(e,t)=>{const A=e.match(/(\d*)\.(\d*)\.(\d*)/),i=t.match(/(\d*)\.(\d*)\.(\d*)/);return Boolean(A&&4===A.length&&i&&4===i.length&&!(isNaN(parseInt(A[1]))||isNaN(parseInt(A[2]))||isNaN(parseInt(A[3])))&&!(isNaN(parseInt(i[1]))||isNaN(parseInt(i[2]))||isNaN(parseInt(i[3])))&&(parseInt(A[1])>parseInt(i[1])||parseInt(A[1])>=parseInt(i[1])&&parseInt(A[2])>parseInt(i[2])||parseInt(A[1])>=parseInt(i[1])&&parseInt(A[2])>=parseInt(i[2])&&parseInt(A[3])>parseInt(i[3])))},getEmbeddedFilenameParts=e=>{const t=null==e?void 0:e.match(/([^#\^]*)((#\^)(group=|area=|frame=|taskbone)?([^\|]*)|(#)(group=|area=|frame=|taskbone)?([^\^\|]*))(.*)/);return t?{filepath:t[1],hasBlockref:Boolean(t[3]),hasGroupref:"group="===t[4]||"group="===t[7],hasTaskbone:"taskbone"===t[4]||"taskbone"===t[7],hasArearef:"area="===t[4]||"area="===t[7],hasFrameref:"frame="===t[4]||"frame="===t[7],blockref:t[5],hasSectionref:Boolean(t[6]),sectionref:t[8],linkpartReference:t[2],linkpartAlias:t[9]}:{filepath:e,hasBlockref:!1,hasGroupref:!1,hasTaskbone:!1,hasArearef:!1,hasFrameref:!1,blockref:"",hasSectionref:!1,sectionref:"",linkpartReference:"",linkpartAlias:""}},fragWithHTML=e=>createFragment((t=>t.createDiv().innerHTML=e)),errorlog=e=>{console.error(Object.assign({plugin:"Excalidraw"},e))},sleep$1=async e=>new Promise((t=>setTimeout(t,e))),log=console.log.bind(window.console),debug=console.log.bind(window.console),getContainerElement=(e,t)=>{var A;return e&&e.containerId&&null!==(A=t.elements.filter((t=>t.id===e.containerId))[0])&&void 0!==A?A:null},updateFrontmatterInString=(e,t)=>{if(!e)return e;for(const A of t){const t=new RegExp(`${A[0]}:\\s.*\\n`,"g");e=e.match(t)?e.replaceAll(t,`${A[0]}: ${A[1]}\n`):e.replace(/^---\n/,`---\n${A[0]}: ${A[1]}\n`)}return e},isHyperlink=e=>e&&!e.includes("\n")&&!e.includes("\r")&&e.match(/^https?:(\d*)?\/\/[^\s]*$/),isContainer=e=>{var t;return"arrow"!==e.type&&(null===(t=e.boundElements)||void 0===t?void 0:t.map((e=>e.type)).includes("text"))},hyperlinkIsImage=e=>{isHyperlink(e);const t=e.split("?")[0];return IMAGE_TYPES.contains(t.substring(t.lastIndexOf(".")+1))},hyperlinkIsYouTubeLink=e=>isHyperlink(e)&&(e.startsWith("https://youtu.be")||e.startsWith("https://www.youtube.com")||e.startsWith("https://youtube.com")||e.startsWith("https//www.youtu.be"))&&null!==e.match(/(youtu.be\/|v=)([^?\/\&]*)/),getYouTubeThumbnailLink=async e=>{const t=e.match(/(youtu.be\/|v=)([^?\/\&]*)/);if(!t||!t[2])return null;const A=t[2];let i=`https://i.ytimg.com/vi/${A}/maxresdefault.jpg`,n=await obsidian_module.requestUrl({url:i,method:"get",contentType:"image/jpeg",throw:!1});return n&&200===n.status?i:(i=`https://i.ytimg.com/vi/${A}/hq720.jpg`,n=await obsidian_module.requestUrl({url:i,method:"get",contentType:"image/jpeg",throw:!1}),n&&200===n.status?i:(i=`https://i.ytimg.com/vi/${A}/mqdefault.jpg`,n=await obsidian_module.requestUrl({url:i,method:"get",contentType:"image/jpeg",throw:!1}),n&&200===n.status?i:`https://i.ytimg.com/vi/${A}/default.jpg`))},labelCTRL=()=>DEVICE.isIOS||DEVICE.isMacOS?"CMD":"CTRL",labelALT=()=>DEVICE.isIOS||DEVICE.isMacOS?"OPT":"ALT",labelMETA=()=>DEVICE.isIOS||DEVICE.isMacOS?"CTRL":DEVICE.isWindows?"WIN":"META",labelSHIFT=()=>"SHIFT",isCTRL=e=>DEVICE.isIOS||DEVICE.isMacOS?e.metaKey:e.ctrlKey,isALT=e=>e.altKey,isMETA=e=>DEVICE.isIOS||DEVICE.isMacOS?e.ctrlKey:e.metaKey,isSHIFT=e=>e.shiftKey,mdPropModifier=e=>!isSHIFT(e)&&isCTRL(e)&&!isALT(e)&&isMETA(e),scaleToFullsizeModifier=e=>isSHIFT(e)&&!isCTRL(e)&&!isALT(e)&&isMETA(e)||!isSHIFT(e)&&isCTRL(e)&&isALT(e)&&!isMETA(e),linkClickModifierType=e=>isCTRL(e)&&!isALT(e)&&isSHIFT(e)&&!isMETA(e)?"active-pane":!isCTRL(e)||isALT(e)||isSHIFT(e)||isMETA(e)?isCTRL(e)&&isALT(e)&&!isSHIFT(e)&&!isMETA(e)?"new-pane":DEVICE.isDesktop&&isCTRL(e)&&isALT(e)&&isSHIFT(e)&&!isMETA(e)?"popout-window":isCTRL(e)&&isALT(e)&&isSHIFT(e)&&!isMETA(e)?"new-tab":mdPropModifier(e)?"md-properties":"active-pane":"new-tab",externalDragModifierType=e=>DEVICE.isWindows&&isSHIFT(e)&&isCTRL(e)&&!isALT(e)&&!isMETA(e)?"iframe":!DEVICE.isMacOS||isSHIFT(e)||isCTRL(e)||!isALT(e)||isMETA(e)?!DEVICE.isWindows||isSHIFT(e)||!isCTRL(e)||isALT(e)||isMETA(e)?DEVICE.isMacOS&&isSHIFT(e)&&!isCTRL(e)&&isALT(e)&&!isMETA(e)?"insert-link":isSHIFT(e)&&!isCTRL(e)&&!isALT(e)&&!isMETA(e)||DEVICE.isWindows&&!isSHIFT(e)&&!isCTRL(e)&&isALT(e)&&!isMETA(e)?"image-import":"image-url":"insert-link":"iframe",internalDragModifierType=e=>(DEVICE.isIOS||DEVICE.isMacOS||!isSHIFT(e)||!isCTRL(e)||isALT(e)||isMETA(e))&&(!DEVICE.isIOS&&!DEVICE.isMacOS||isSHIFT(e)||isCTRL(e)||isALT(e)||!isMETA(e))?(!isSHIFT(e)||isCTRL(e)||isALT(e)||isMETA(e))&&(isSHIFT(e)||!isCTRL(e)||isALT(e)||isMETA(e))?scaleToFullsizeModifier(e)?"image-fullsize":"link":"image":"iframe",emulateCTRLClickForLinks=e=>({shiftKey:e.shiftKey,ctrlKey:e.ctrlKey||!(DEVICE.isIOS||DEVICE.isMacOS),metaKey:e.metaKey||DEVICE.isIOS||DEVICE.isMacOS,altKey:e.altKey}),getParentOfClass=(e,t)=>{var A;let i=e.parentElement;for(;i&&!(i instanceof window.HTMLBodyElement)&&!i.classList.contains(t);)i=i.parentElement;return(null===(A=null==i?void 0:i.classList)||void 0===A?void 0:A.contains(t))?i:null},getLeaf=(e,t,A)=>{switch(linkClickModifierType(A)){case"active-pane":return t;case"new-tab":default:return(()=>{if(!e.settings.openInMainWorkspace)return app.workspace.getLeaf("tab");const[A,i]=getLeafLoc(t);return"main"===A?app.workspace.getLeaf("tab"):getNewOrAdjacentLeaf(e,t)})();case"new-pane":return getNewOrAdjacentLeaf(e,t);case"popout-window":return app.workspace.openPopoutLeaf()}},getLeafLoc=e=>{const t=e.id,A=app.workspace.getLayout(),i=e=>e.children.filter((e=>"leaf"!==e.type)).map((e=>i(e))).flat().concat(e.children.filter((e=>"leaf"===e.type)).map((e=>e.id))),n=i(A.main);return[A.main&&n.contains(t)?"main":A.floating&&i(A.floating).contains(t)?"popout":A.left&&i(A.left).contains(t)?"left":A.right&&i(A.right).contains(t)?"right":"hover",n]},getNewOrAdjacentLeaf=(e,t)=>{const[A,i]=getLeafLoc(t),n=e=>{var A;let n=app.workspace.getMostRecentLeaf();return n&&n!==t&&(null===(A=n.view)||void 0===A?void 0:A.containerEl.ownerDocument)===document||(n=null,i.forEach((A=>{var i;const a=app.workspace.getLeafById(A);n||!(null===(i=a.view)||void 0===i?void 0:i.navigation)||t===a||e&&(null==a?void 0:a.parent)===(null==t?void 0:t.parent)||(n=a)}))),n};if(e.settings.openInMainWorkspace||["main","left","right"].contains(A)){if(!e.settings.openInAdjacentPane){if("main"===A)return app.workspace.createLeafBySplit(t);const e=n();return e?"empty"===e.view.getViewType()?e:app.workspace.createLeafBySplit(e):app.workspace.getLeaf(!0)}const i=n(!0);return null!=i?i:app.workspace.createLeafBySplit(t)}if(!e.settings.openInAdjacentPane)return app.workspace.createLeafBySplit(t);if("hover"===A){const A=new Set;return app.workspace.iterateAllLeaves((e=>{e!==t&&t.containerEl.parentElement===e.containerEl.parentElement&&A.add(e)})),0===A.size?e.app.workspace.createLeafBySplit(t):Array.from(A)[0]}if("popout"===A){const e=new Set;return app.workspace.iterateAllLeaves((A=>{A!==t&&A.view.navigation&&A.view.containerEl.ownerDocument===t.view.containerEl.ownerDocument&&e.add(A)})),0===e.size?app.workspace.createLeafBySplit(t):Array.from(e)[0]}return e.app.workspace.createLeafBySplit(t)},getAttachmentsFolderAndFilePath=async(e,t,A)=>{let i=e.vault.getConfig("attachmentFolderPath");if(i&&i.startsWith("./")){const e=`${splitFolderAndFilename(t).folderpath}/`;i=obsidian_module.normalizePath(e+i.substring(2))}return i&&"/"!==i||(i=""),await checkAndCreateFolder(i),{folder:i,filepath:obsidian_module.normalizePath(""===i?A:`${i}/${A}`)}},isObsidianThemeDark=()=>document.body.classList.contains("theme-dark"),getContainerForDocument=e=>{if(e!==document&&app.workspace.floatingSplit)for(const t of app.workspace.floatingSplit.children)if(t.doc===e)return t;return app.workspace.rootSplit};var ar={},cz={},da={},de={},en={INSTALL_SCRIPT:"Install the script",UPDATE_SCRIPT:"Update available - Click to install",CHECKING_SCRIPT:"Checking for newer version - Click to reinstall",UNABLETOCHECK_SCRIPT:"Update check failed - Click to reinstall",UPTODATE_SCRIPT:"Script is up to date - Click to reinstall",OPEN_AS_EXCALIDRAW:"Open as Excalidraw Drawing",TOGGLE_MODE:"Toggle between Excalidraw and Markdown mode",CONVERT_NOTE_TO_EXCALIDRAW:"Convert empty note to Excalidraw Drawing",CONVERT_EXCALIDRAW:"Convert *.excalidraw to *.md files",CREATE_NEW:"Create new drawing",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (Logseq compatibility)",DOWNLOAD_LIBRARY:"Export stencil library as an *.excalidrawlib file",OPEN_EXISTING_NEW_PANE:"Open existing drawing - IN A NEW PANE",OPEN_EXISTING_ACTIVE_PANE:"Open existing drawing - IN THE CURRENT ACTIVE PANE",TRANSCLUDE:"Embed a drawing",TRANSCLUDE_MOST_RECENT:"Embed the most recently edited drawing",TOGGLE_LEFTHANDED_MODE:"Toggle left-handed mode",NEW_IN_NEW_PANE:"Create new drawing - IN AN ADJACENT WINDOW",NEW_IN_NEW_TAB:"Create new drawing - IN A NEW TAB",NEW_IN_ACTIVE_PANE:"Create new drawing - IN THE CURRENT ACTIVE WINDOW",NEW_IN_POPOUT_WINDOW:"Create new drawing - IN A POPOUT WINDOW",NEW_IN_NEW_PANE_EMBED:"Create new drawing - IN AN ADJACENT WINDOW - and embed into active document",NEW_IN_NEW_TAB_EMBED:"Create new drawing - IN A NEW TAB - and embed into active document",NEW_IN_ACTIVE_PANE_EMBED:"Create new drawing - IN THE CURRENT ACTIVE WINDOW - and embed into active document",NEW_IN_POPOUT_WINDOW_EMBED:"Create new drawing - IN A POPOUT WINDOW - and embed into active document",TOGGLE_LOCK:"Toggle Text Element between edit RAW and PREVIEW",DELETE_FILE:"Delete selected image or Markdown file from Obsidian Vault",INSERT_LINK_TO_ELEMENT:`Copy markdown link for selected element to clipboard. ${labelCTRL()}+CLICK to copy 'group=' link. SHIFT+CLICK to copy an 'area=' link. ${labelALT()}+CLICK to watch a help video.`,INSERT_LINK_TO_ELEMENT_GROUP:"Copy 'group=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_AREA:"Copy 'area=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_FRAME:"Copy 'frame=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_NORMAL:"Copy markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_ERROR:"Select a single element in the scene",INSERT_LINK_TO_ELEMENT_READY:"Link is READY and available on the clipboard",INSERT_LINK:"Insert link to file",INSERT_IMAGE:"Insert image or Excalidraw drawing from your vault",IMPORT_SVG:"Import an SVG file as Excalidraw strokes (limited SVG support, TEXT currently not supported)",INSERT_MD:"Insert markdown file from vault",INSERT_PDF:"Insert PDF file from vault",UNIVERSAL_ADD_FILE:"Insert ANY file from your Vault to the active drawing",INSERT_LATEX:`Insert LaTeX formula (e.g. \\binom{n}{k} = \\frac{n!}{k!(n-k)!}). ${labelALT()}+CLICK to watch a help video.`,ENTER_LATEX:"Enter a valid LaTeX expression",READ_RELEASE_NOTES:"Read latest release notes",RUN_OCR:"OCR: Grab text from freedraw scribble and pictures to clipboard",TRAY_MODE:"Toggle property-panel tray-mode",SEARCH:"Search for text in drawing",RESET_IMG_TO_100:"Set selected image element size to 100% of original",TEMPORARY_DISABLE_AUTOSAVE:"Disable autosave until next time Obsidian starts (only set this if you know what you are doing)",TEMPORARY_ENABLE_AUTOSAVE:"Enable autosave",INSTALL_SCRIPT_BUTTON:"Install or update Excalidraw Scripts",OPEN_AS_MD:"Open as Markdown",EXPORT_IMAGE:"Export Image",OPEN_LINK:"Open selected text as link\n(SHIFT+CLICK to open in a new pane)",EXPORT_EXCALIDRAW:"Export to an .Excalidraw file",LINK_BUTTON_CLICK_NO_TEXT:"Select a ImageElement, or select a TextElement that contains an internal or external link.\n",FILENAME_INVALID_CHARS:'File name cannot contain any of the following characters: * " \\ < > : | ? #',FORCE_SAVE:"Save (will also update transclusions)",RAW:"Change to PREVIEW mode (only affects text-elements with links or transclusions)",PARSED:"Change to RAW mode (only affects text-elements with links or transclusions)",NOFILE:"Excalidraw (no file)",COMPATIBILITY_MODE:"*.excalidraw file opened in compatibility mode. Convert to new format for full plugin functionality.",CONVERT_FILE:"Convert to new format",BACKUP_AVAILABLE:"We encountered an error while loading your drawing. This might have occurred if Obsidian unexpectedly closed during a save operation. For example, if you accidentally closed Obsidian on your mobile device while saving.

GOOD NEWS: Fortunately, a local backup is available. However, please note that if you last modified this drawing on a different device (e.g., tablet) and you are now on your desktop, that other device likely has a more recent backup.

I recommend trying to open the drawing on your other device first and restore the backup from its local storage.

Would you like to load the backup?",BACKUP_RESTORED:"Backup restored",CACHE_NOT_READY:"I apologize for the inconvenience, but an error occurred while loading your file.

Having a little patience can save you a lot of time...

The plugin has a backup cache, but it appears that you have just started Obsidian. Initializing the Backup Cache may take some time, usually up to a minute or more depending on your device's performance. You will receive a notification in the top right corner when the cache initialization is complete.

Please press OK to attempt loading the file again and check if the cache has finished initializing. If you see a completely empty file behind this message, I recommend waiting until the backup cache is ready before proceeding. Alternatively, you can choose Cancel to manually correct your file.
",OBSIDIAN_TOOLS_PANEL:"Obsidian Tools Panel",RELEASE_NOTES_NAME:"Display Release Notes after update",RELEASE_NOTES_DESC:"Toggle ON: Display release notes each time you update Excalidraw to a newer version.
Toggle OFF: Silent mode. You can still read release notes on GitHub.",NEWVERSION_NOTIFICATION_NAME:"Plugin update notification",NEWVERSION_NOTIFICATION_DESC:"Toggle ON: Show a notification when a new version of the plugin is available.
Toggle OFF: Silent mode. You need to check for plugin updates in Community Plugins.",FOLDER_NAME:"Excalidraw folder",FOLDER_DESC:"Default location for new drawings. If empty, drawings will be created in the Vault root.",FOLDER_EMBED_NAME:"Use Excalidraw folder when embedding a drawing into the active document",FOLDER_EMBED_DESC:"Define which folder to place the newly inserted drawing into when using the command palette action: 'Create a new drawing and embed into active document'.
Toggle ON: Use Excalidraw folder
Toggle OFF: Use the attachments folder defined in Obsidian settings.",TEMPLATE_NAME:"Excalidraw template file",TEMPLATE_DESC:"Full filepath to the Excalidraw template. E.g.: If your template is in the default Excalidraw folder and its name is Template.md, the setting would be: Excalidraw/Template.md (or just Excalidraw/Template - you may omit the .md file extension). If you are using Excalidraw in compatibility mode, then your template must be a legacy Excalidraw file as well such as Excalidraw/Template.excalidraw.",SCRIPT_FOLDER_NAME:"Excalidraw Automate script folder (CASE SeNSitiVE!)",SCRIPT_FOLDER_DESC:"The files you place in this folder will be treated as Excalidraw Automate scripts. You can access your scripts from Excalidraw via the Obsidian Command Palette. Assign hotkeys to your favorite scripts just like to any other Obsidian command. The folder may not be the root folder of your Vault. ",SAVING_HEAD:"Saving",COMPRESS_NAME:"Compress Excalidraw JSON in Markdown",COMPRESS_DESC:"By enabling this feature Excalidraw will store the drawing JSON in a Base64 compressed format using the LZ-String algorithm. This will reduce the chance of Excalidraw JSON cluttering your search results in Obsidian. As a side effect, this will also reduce the filesize of Excalidraw drawings. When you switch an Excalidraw drawing to Markdown view, using the options menu in Excalidraw, the file will be saved without compression, so that you can read and edit the JSON string. The drawing will be compressed again once you switch back to Excalidraw view. The setting only has effect 'point forward', meaning, existing drawings will not be affected by the setting until you open them and save them.
Toggle ON: Compress drawing JSON
Toggle OFF: Leave drawing JSON uncompressed",AUTOSAVE_INTERVAL_DESKTOP_NAME:"Interval for autosave on Desktop",AUTOSAVE_INTERVAL_DESKTOP_DESC:"The time interval between saves. Autosave will skip if there are no changes in the drawing. Excalidraw will also save the file when closing a workspace tab or navigating within Obsidian, but away from the active Excalidraw tab (i.e. clicking on the Obsidian ribbon or checking backlinks, etc.). Excalidraw will not be able to save your work when terminating Obsidian directly either by killing the Obsidian process, or clicking to close Obsidian altogether.",AUTOSAVE_INTERVAL_MOBILE_NAME:"Interval for autosave on Mobile",AUTOSAVE_INTERVAL_MOBILE_DESC:"I recommend a more frequent interval for Mobiles. Excalidraw will also save the file when closing a workspace tab or navigating within Obsidian, but away from the active Excalidraw tab (i.e. tapping on the Obsidian ribbon or checking backlinks, etc.). Excalidraw will not be able to save your work when terminating Obsidian directly (i.e. swiping it away). Also note, that when you switch apps on a Mobile device, sometimes Android and iOS closes Obsidian in the background to save system resources. In such a case Excalidraw will not be able to save the latest changes.",FILENAME_HEAD:"Filename",FILENAME_DESC:"

Click this link for the date and time format reference.

",FILENAME_SAMPLE:"Filename for a new drawing is: ",FILENAME_EMBED_SAMPLE:"Filename for a new embedded drawing is: ",FILENAME_PREFIX_NAME:"Filename prefix",FILENAME_PREFIX_DESC:"The first part of the filename",FILENAME_PREFIX_EMBED_NAME:"Filename prefix when embedding a new drawing into a markdown note",FILENAME_PREFIX_EMBED_DESC:"Should the filename of the newly inserted drawing start with the name of the active markdown note when using the command palette action: Create a new drawing and embed into active document?
Toggle ON: Yes, the filename of a new drawing should start with filename of the active document
Toggle OFF: No, filename of a new drawing should not include the filename of the active document",FILENAME_POSTFIX_NAME:"Custom text after markdown Note's name when embedding",FILENAME_POSTFIX_DESC:"Affects filename only when embedding into a markdown document. This text will be inserted after the note's name, but before the date.",FILENAME_DATE_NAME:"Filename Date",FILENAME_DATE_DESC:"The last part of the filename. Leave empty if you do not want a date.",FILENAME_EXCALIDRAW_EXTENSION_NAME:".excalidraw.md or .md",FILENAME_EXCALIDRAW_EXTENSION_DESC:"This setting does not apply if you use Excalidraw in compatibility mode, i.e. you are not using Excalidraw markdown files.
Toggle ON: filename ends with .excalidraw.md
Toggle OFF: filename ends with .md",DISPLAY_HEAD:"Display",DYNAMICSTYLE_NAME:"Dynamic styling",DYNAMICSTYLE_DESC:"Change Excalidraw UI colors to match the canvas color",LEFTHANDED_MODE_NAME:"Left-handed mode",LEFTHANDED_MODE_DESC:"Currently only has effect in tray-mode. If turned on, the tray will be on the right side.
Toggle ON: Left-handed mode.
Toggle OFF: Right-handed moded",IFRAME_MATCH_THEME_NAME:"IFrames (markdown embeds) to match Excalidraw theme",IFRAME_MATCH_THEME_DESC:"Set this to true if you are for example using Obsidian in dark mode but use excalidraw with a light background. With this setting the embedded Obsidian markdown document will match the Excalidraw theme (i.e. light colors if Excalidraw is in light mode). ",MATCH_THEME_NAME:"New drawing to match Obsidian theme",MATCH_THEME_DESC:"If theme is dark, new drawing will be created in dark mode. This does not apply when you use a template for new drawings. Also this will not affect when you open an existing drawing. Those will follow the theme of the template/drawing respectively.
Toggle ON: Follow Obsidian Theme
Toggle OFF: Follow theme defined in your template",MATCH_THEME_ALWAYS_NAME:"Existing drawings to match Obsidian theme",MATCH_THEME_ALWAYS_DESC:"If theme is dark, drawings will be opened in dark mode. If your theme is light, they will be opened in light mode.
Toggle ON: Match Obsidian theme
Toggle OFF: Open with the same theme as last saved",MATCH_THEME_TRIGGER_NAME:"Excalidraw to follow when Obsidian Theme changes",MATCH_THEME_TRIGGER_DESC:"If this option is enabled open Excalidraw pane will switch to light/dark mode when Obsidian theme changes.
Toggle ON: Follow theme changes
Toggle OFF: Drawings are not affected by Obsidian theme changes",DEFAULT_OPEN_MODE_NAME:"Default mode when opening Excalidraw",DEFAULT_OPEN_MODE_DESC:"Specifies the mode how Excalidraw opens: Normal, Zen, or View mode. You may also set this behavior on a file level by adding the excalidraw-default-mode frontmatter key with a value of: normal, view, or zen to your document.",DEFAULT_PEN_MODE_NAME:"Pen mode",DEFAULT_PEN_MODE_DESC:"Should pen mode be automatically enabled when opening Excalidraw?",DEFAULT_PINCHZOOM_NAME:"Allow pinch zoom in pen mode",DEFAULT_PINCHZOOM_DESC:"Pinch zoom in pen mode when using the freedraw tool is disabled by default to prevent unwanted accidental zooming with your palm.
Toggle on: Enable pinch zoom in pen mode
Toggle off: Disable pinch zoom in pen mode",DEFAULT_WHEELZOOM_NAME:"Mouse wheel to zoom by default",DEFAULT_WHEELZOOM_DESC:`Toggle on: Mouse wheel to zoom; ${labelCTRL()} + mouse wheel to scroll
Toggle off: ${labelCTRL()} + mouse wheel to zoom; Mouse wheel to scroll`,ZOOM_TO_FIT_NAME:"Zoom to fit on view resize",ZOOM_TO_FIT_DESC:"Zoom to fit drawing when the pane is resized
Toggle ON: Zoom to fit
Toggle OFF: Auto zoom disabled",ZOOM_TO_FIT_ONOPEN_NAME:"Zoom to fit on file open",ZOOM_TO_FIT_ONOPEN_DESC:"Zoom to fit drawing when the drawing is first opened
Toggle ON: Zoom to fit
Toggle OFF: Auto zoom disabled",ZOOM_TO_FIT_MAX_LEVEL_NAME:"Zoom to fit max ZOOM level",ZOOM_TO_FIT_MAX_LEVEL_DESC:"Set the maximum level to which zoom to fit will enlarge the drawing. Minimum is 0.5 (50%) and maximum is 10 (1000%).",LINKS_HEAD:"Links and transclusion",LINKS_DESC:`${labelCTRL()}+CLICK on [[Text Elements]] to open them as links. If the selected text has more than one [[valid Obsidian links]], only the first will be opened. If the text starts as a valid web link (i.e. https:// or http://), then the plugin will open it in a browser. When Obsidian files change, the matching [[link]] in your drawings will also change. If you don't want text accidentally changing in your drawings use [[links|with aliases]].`,ADJACENT_PANE_NAME:"Reuse adjacent pane",ADJACENT_PANE_DESC:`When ${labelCTRL()}+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane. Turning this setting on, Excalidraw will first look for an existing pane, and try to open the link there. Excalidraw will look for the other workspace pane based on your focus/navigation history, i.e. the workpane that was active before you activated Excalidraw.`,MAINWORKSPACE_PANE_NAME:"Open in main workspace",MAINWORKSPACE_PANE_DESC:`When ${labelCTRL()}+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane in the current active window. Turning this setting on, Excalidraw will open the link in an existing or new pane in the main workspace. `,LINK_BRACKETS_NAME:"Show [[brackets]] around links",LINK_BRACKETS_DESC:"In PREVIEW mode, when parsing Text Elements, place brackets around links. You can override this setting for a specific drawing by adding excalidraw-link-brackets: true/false to the file's frontmatter.",LINK_PREFIX_NAME:"Link prefix",LINK_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-link-prefix: "📍 " to the file\'s frontmatter.',URL_PREFIX_NAME:"URL prefix",URL_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a URL link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-url-prefix: "🌐 " to the file\'s frontmatter.',PARSE_TODO_NAME:"Parse todo",PARSE_TODO_DESC:"Convert '- [ ] ' and '- [x] ' to checkpox and tick in the box.",TODO_NAME:"Open TODO icon",TODO_DESC:"Icon to use for open TODO items",DONE_NAME:"Completed TODO icon",DONE_DESC:"Icon to use for completed TODO items",HOVERPREVIEW_NAME:`Hover preview without pressing the ${labelCTRL()} key`,HOVERPREVIEW_DESC:`Toggle On: In Exalidraw view mode the hover preview for [[wiki links]] will be shown immediately, without the need to hold the ${labelCTRL()} key. In Excalidraw normal mode, the preview will be shown immediately only when hovering the blue link icon in the top right of the element.
Toggle Off: Hover preview is shown only when you hold the ${labelCTRL()} key while hovering the link.`,LINKOPACITY_NAME:"Opacity of link icon",LINKOPACITY_DESC:"Opacity of the link indicator icon in the top right corner of an element. 1 is opaque, 0 is transparent.",LINK_CTRL_CLICK_NAME:`${labelCTRL()}+CLICK on text with [[links]] or [](links) to open them`,LINK_CTRL_CLICK_DESC:"You can turn this feature off if it interferes with default Excalidraw features you want to use. If this is turned off, only the link button in the title bar of the drawing pane will open links.",TRANSCLUSION_WRAP_NAME:"Overflow wrap behavior of transcluded text",TRANSCLUSION_WRAP_DESC:"Number specifies the character count where the text should be wrapped. Set the text wrapping behavior of transcluded text. Turn this ON to force-wrap text (i.e. no overflow), or OFF to soft-wrap text (at the nearest whitespace).",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion word wrap default",TRANSCLUSION_DEFAULT_WRAP_DESC:"You can manually set/override word wrapping length using the `![[page#^block]]{NUMBER}` format. Normally you will not want to set a default, because if you transclude text inside a sticky note, then Excalidraw will automatically take care of word wrapping. Set this value to `0` if you do not want to set a default. ",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Page transclusion max char count",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"The maximum number of characters to display from the page when transcluding an entire page with the ![[markdown page]] format.",QUOTE_TRANSCLUSION_REMOVE_NAME:"Quote translusion: remove leading '> ' from each line",QUOTE_TRANSCLUSION_REMOVE_DESC:"Remove the leading '> ' from each line of the transclusion. This will improve readability of quotes in text only transclusions
Toggle ON: Remove leading '> '
Toggle OFF: Do not remove leading '> ' (note it will still be removed from the first row due to Obsidian API functionality)",GET_URL_TITLE_NAME:"Use iframely to resolve page title",GET_URL_TITLE_DESC:"Use the http://iframely.server.crestify.com/iframely?url= to get title of page when dropping a link into Excalidraw",MD_HEAD:"Markdown-embed settings",MD_HEAD_DESC:"You can transclude formatted markdown documents into drawings as images SHIFT drop from the file explorer or using the command palette action.",MD_TRANSCLUDE_WIDTH_NAME:"Default width of a transcluded markdown document",MD_TRANSCLUDE_WIDTH_DESC:"The width of the markdown page. This affects the word wrapping when transcluding longer paragraphs, and the width of the image element. You can override the default width of an embedded file using the [[filename#heading|WIDTHxMAXHEIGHT]] syntax in markdown view mode under embedded files.",MD_TRANSCLUDE_HEIGHT_NAME:"Default maximum height of a transcluded markdown document",MD_TRANSCLUDE_HEIGHT_DESC:"The embedded image will be as high as the markdown text requires, but not higher than this value. You can override this value by editing the embedded image link in markdown view mode with the following syntax [[filename#^blockref|WIDTHxMAXHEIGHT]].",MD_DEFAULT_FONT_NAME:"The default font typeface to use for embedded markdown files.",MD_DEFAULT_FONT_DESC:'Set this value to "Virgil" or "Cascadia" or the filename of a valid .ttf, .woff, or .woff2 font e.g. MyFont.woff2 You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font: font_or_filename',MD_DEFAULT_COLOR_NAME:"The default font color to use for embedded markdown files.",MD_DEFAULT_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font-color: steelblue',MD_DEFAULT_BORDER_COLOR_NAME:"The default border color to use for embedded markdown files.",MD_DEFAULT_BORDER_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-border-color: gray. Leave empty if you don\'t want a border. ',MD_CSS_NAME:"CSS file",MD_CSS_DESC:`The filename of the CSS to apply to markdown embeds. Provide the filename with extension (e.g. 'md-embed.css'). The css file may also be a plain markdown file (e.g. 'md-embed-css.md'), just make sure the content is written using valid css syntax. If you need to look at the HTML code you are applying the CSS to, then open Obsidian Developer Console (${DEVICE.isIOS||DEVICE.isMacOS?"CMD+OPT+i":"CTRL+SHIFT+i"}) and type in the following command: "ExcalidrawAutomate.mostRecentMarkdownSVG". This will display the most recent SVG generated by Excalidraw. Setting the font-family in the css is has limitations. By default only your operating system's standard fonts are available (see README for details). You can add one custom font beyond that using the setting above. You can override this css setting by adding the following frontmatter-key to the embedded markdown file: "excalidraw-css: css_file_in_vault|css-snippet".`,EMBED_HEAD:"Embed & Export",EMBED_IMAGE_CACHE_NAME:"Cache images for embedding in markdown",EMBED_IMAGE_CACHE_DESC:"Cache images for embedding in markdown. This will speed up the embedding process, but in case you compose images of several sub-component drawings, the embedded image in Markdown won't update until you open the drawing and save it to trigger an update of the cache.",EMBED_IMAGE_CACHE_CLEAR:"Purge Cache",BACKUP_CACHE_CLEAR:"Purge Backups",BACKUP_CACHE_CLEAR_CONFIRMATION:"This action will delete all Excalidraw drawing backups. Backups are used as a safety measure in case your drawing file gets damaged. Each time you open Obsidian the plugin automatically deletes backups for files that no longer exist in your Vault. Are you sure you want to clear all backups?",EMBED_REUSE_EXPORTED_IMAGE_NAME:"If found, use the already exported image for preview",EMBED_REUSE_EXPORTED_IMAGE_DESC:"This setting works in conjunction with the Auto-export SVG/PNG setting. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See demonstration here.",EMBED_PREVIEW_SVG_NAME:"Display SVG in markdown preview",EMBED_PREVIEW_SVG_DESC:"Toggle ON: Embed drawing as an SVG image into the markdown preview.
Toggle OFF: Embed drawing as a PNG image. Note, that some of the image block referencing features do not work with PNG embeds.",PREVIEW_MATCH_OBSIDIAN_NAME:"Excalidraw preview to match Obsidian theme",PREVIEW_MATCH_OBSIDIAN_DESC:"Image preview in documents should match the Obsidian theme. If enabled, when Obsidian is in dark mode, Excalidraw images will render in dark mode. When Obsidian is in light mode, Excalidraw will render light mode as well. You may want to switch 'Export image with background' off for a more Obsidian-integrated look and feel.",EMBED_WIDTH_NAME:"Default width of embedded (transcluded) image",EMBED_WIDTH_DESC:"The default width of an embedded drawing. This applies to live preview edit and reading mode, as well as to hover previews. You can specify a custom width when embedding an image using the ![[drawing.excalidraw|100]] or [[drawing.excalidraw|100x100]] format.",EMBED_TYPE_NAME:"Type of file to insert into the document",EMBED_TYPE_DESC:"When you embed an image into a document using the command palette this setting will specify if Excalidraw should embed the original Excalidraw file or a PNG or an SVG copy. You need to enable auto-export PNG / SVG (see below under Export Settings) for those image types to be available in the dropdown. For drawings that do not have a a corresponding PNG or SVG readily available the command palette action will insert a broken link. You need to open the original drawing and initiate export manually. This option will not autogenerate PNG/SVG files, but will simply reference the already existing files.",EMBED_WIKILINK_NAME:"Embed SVG or PNG as Wiki link",EMBED_WIKILINK_DESC:"Toggle ON: Excalidraw will embed a [[wiki link]]. Toggle OFF: Excalidraw will embed a [markdown](link).",EXPORT_PNG_SCALE_NAME:"PNG export image scale",EXPORT_PNG_SCALE_DESC:"The size-scale of the exported PNG image",EXPORT_BACKGROUND_NAME:"Export image with background",EXPORT_BACKGROUND_DESC:"If turned off, the exported image will be transparent.",EXPORT_PADDING_NAME:"Image Padding",EXPORT_PADDING_DESC:"The padding (in pixels) around the exported SVG or PNG image. If you have curved lines close to the edge of the image they might get cropped during image export. You can increase this value to avoid cropping. You can also override this setting at a file level by adding the excalidraw-export-padding: 5 frontmatter key.",EXPORT_THEME_NAME:"Export image with theme",EXPORT_THEME_DESC:"Export the image matching the dark/light theme of your drawing. If turned off, drawings created in dark mode will appear as they would in light mode.",EXPORT_HEAD:"Auto-export Settings",EXPORT_SYNC_NAME:"Keep the .SVG and/or .PNG filenames in sync with the drawing file",EXPORT_SYNC_DESC:"When turned on, the plugin will automatically update the filename of the .SVG and/or .PNG files when the drawing in the same folder (and same name) is renamed. The plugin will also automatically delete the .SVG and/or .PNG files when the drawing in the same folder (and same name) is deleted. ",EXPORT_SVG_NAME:"Auto-export SVG",EXPORT_SVG_DESC:"Automatically create an SVG export of your drawing matching the title of your file. The plugin will save the *.SVG file in the same folder as the drawing. Embed the .svg file into your documents instead of Excalidraw making you embeds platform independent. While the auto-export switch is on, this file will get updated every time you edit the Excalidraw drawing with the matching name. You can override this setting on a file level by adding the excalidraw-autoexport frontmatter key. Valid values for this key are none,both,svg, and png",EXPORT_PNG_NAME:"Auto-export PNG",EXPORT_PNG_DESC:"Same as the auto-export SVG, but for *.PNG",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"Export both dark- and light-themed image",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"When enabled, Excalidraw will export two files instead of one: filename.dark.png, filename.light.png and/or filename.dark.svg and filename.light.svg
Double files will be exported both if auto-export SVG or PNG (or both) are enabled, as well as when clicking export on a single image.",COMPATIBILITY_HEAD:"Compatibility features",EXPORT_EXCALIDRAW_NAME:"Auto-export Excalidraw",EXPORT_EXCALIDRAW_DESC:"Same as the auto-export SVG, but for *.Excalidraw",SYNC_EXCALIDRAW_NAME:"Sync *.excalidraw with *.md version of the same drawing",SYNC_EXCALIDRAW_DESC:"If the modified date of the *.excalidraw file is more recent than the modified date of the *.md file then update the drawing in the .md file based on the .excalidraw file",COMPATIBILITY_MODE_NAME:"New drawings as legacy files",COMPATIBILITY_MODE_DESC:"By enabling this feature drawings you create with the ribbon icon, the command palette actions, and the file explorer are going to be all legacy *.excalidraw files. This setting will also turn off the reminder message when you open a legacy file for editing.",MATHJAX_NAME:"MathJax (LaTeX) javascript library host",MATHJAX_DESC:"If you are using LaTeX equiations in Excalidraw then the plugin needs to load a javascript library for that. Some users are unable to access certain host servers. If you are experiencing issues try changing the host here. You may need to restart Obsidian after closing settings, for this change to take effect.",LATEX_DEFAULT_NAME:"Default LaTeX formual for new equations",LATEX_DEFAULT_DESC:"Leave empty if you don't want a default formula. You can add default formatting here such as \\color{white}.",NONSTANDARD_HEAD:"Non-Excalidraw.com supported features",NONSTANDARD_DESC:"These features are not available on excalidraw.com. When exporting the drawing to Excalidraw.com these features will appear different.",CUSTOM_PEN_NAME:"Number of custom pens",CUSTOM_PEN_DESC:"You will see these pens next to the Obsidian Menu on the canvas. You can customize the pens on the canvas by long-pressing the pen button.",EXPERIMENTAL_HEAD:"Experimental features",EXPERIMENTAL_DESC:"Some of these setting will not take effect immediately, only when the File Explorer is refreshed, or Obsidian restarted.",FIELD_SUGGESTER_NAME:"Enable Field Suggester",FIELD_SUGGESTER_DESC:"Field Suggester borrowed from Breadcrumbs and Templater plugins. The Field Suggester will show an autocomplete menu when you type excalidraw- or ea. with function description as hints on the individual items in the list.",FILETYPE_NAME:"Display type (✏️) for excalidraw.md files in File Explorer",FILETYPE_DESC:"Excalidraw files will receive an indicator using the emoji or text defined in the next setting.",FILETAG_NAME:"Set the type indicator for excalidraw.md files",FILETAG_DESC:"The text or emoji to display as type indicator.",INSERT_EMOJI:"Insert an emoji",LIVEPREVIEW_NAME:"Immersive image embedding in live preview editing mode",LIVEPREVIEW_DESC:"Turn this on to support image embedding styles such as ![[drawing|width|style]] in live preview editing mode. The setting will not affect the currently open documents. You need close the open documents and re-open them for the change to take effect.",ENABLE_FOURTH_FONT_NAME:"Enable fourth font option",ENABLE_FOURTH_FONT_DESC:"By turning this on, you will see a fourth font button on the properties panel for text elements. Files that use this fourth font will (partly) lose their platform independence. Depending on the custom font set in settings, they will look differently when loaded in another vault, or at a later time. Also the 4th font will display as system default font on excalidraw.com, or other Excalidraw versions.",FOURTH_FONT_NAME:"Fourth font file",FOURTH_FONT_DESC:"Select a .ttf, .woff or .woff2 font file from your vault to use as the fourth font. If no file is selected, Excalidraw will use the Virgil font by default.",SCRIPT_SETTINGS_HEAD:"Settings for installed Scripts",TASKBONE_HEAD:"Taskbone Optical Character Recogntion",TASKBONE_DESC:"This is an experimental integration of optical character recognition into Excalidraw. Please note, that taskbone is an independent external service not provided by Excalidraw, nor the Excalidraw-Obsidian plugin project. The OCR service will grab legible text from freedraw lines and embedded pictures on your canvas and place the recognized text in the frontmatter of your drawing as well as onto clipboard. Having the text in the frontmatter will enable you to search in Obsidian for the text contents of these. Note, that the process of extracting the text from the image is not done locally, but via an online API. The taskbone service stores the image on its servers only as long as necessary for the text extraction. However, if this is a dealbreaker, then please don't use this feature.",TASKBONE_ENABLE_NAME:"Enable Taskbone",TASKBONE_ENABLE_DESC:"By enabling this service your agree to the Taskbone Terms and Conditions and the Privacy Policy.",TASKBONE_APIKEY_NAME:"Taskbone API Key",TASKBONE_APIKEY_DESC:"Taskbone offers a free service with a reasonable number of scans per month. If you want to use this feature more frequently, or you want to supoprt the developer of Taskbone (as you can imagine, there is no such thing as 'free', providing this awesome OCR service costs some money to the developer of Taskbone), you can purchase a paid API key from taskbone.com. In case you have purchased a key, simply overwrite this auto generated free-tier API-key with your paid key.",SELECT_FILE:"Select a file then press enter.",SELECT_FILE_WITH_OPTION_TO_SCALE:`Select a file then press ENTER, or SHIFT+${labelMETA()}+ENTER to insert at 100% scale.`,NO_MATCH:"No file matches your query.",SELECT_FILE_TO_LINK:"Select the file you want to insert the link for.",SELECT_DRAWING:"Select the image or drawing you want to insert",TYPE_FILENAME:"Type name of drawing to select.",SELECT_FILE_OR_TYPE_NEW:"Select existing drawing or type name of a new drawing then press Enter.",SELECT_TO_EMBED:"Select the drawing to insert into active document.",SELECT_MD:"Select the markdown document you want to insert",SELECT_PDF:"Select the PDF document you want to insert",PDF_PAGES_HEADER:"Pages to load?",PDF_PAGES_DESC:"Format: 1, 3-5, 7, 9-11",INFINITE_LOOP_WARNING:"EXCALIDRAW WARNING\nAborted loading embedded images due to infinite loop in file:\n",SCRIPT_EXECUTION_ERROR:"Script execution error. Please find error message on the developer console.",LOAD_FROM_BACKUP:"Excalidraw file was corrupted. Loading from backup file.",GOTO_FULLSCREEN:"Goto fullscreen mode",EXIT_FULLSCREEN:"Exit fullscreen mode",TOGGLE_FULLSCREEN:"Toggle fullscreen mode",TOGGLE_DISABLEBINDING:"Toggle to invert default binding behavior",OPEN_LINK_CLICK:"Navigate to selected element link",OPEN_LINK_PROPS:"Open markdown-embed properties or open link in new window",NARROW_TO_HEADING:"Narrow to heading...",NARROW_TO_BLOCK:"Narrow to block...",SHOW_ENTIRE_FILE:"Show entire file",ZOOM_TO_FIT:"Zoom to fit",RELOAD:"Reload original link",OPEN_IN_BROWSER:"Open current link in browser"},enGB={},es={},fr={},hi={},id={},it={},ja={},ko={},nl={},no={},pl={},pt={},ptBR={},ro={},ru={},tr={},zhCN={INSTALL_SCRIPT:"安装此脚本",UPDATE_SCRIPT:"有可用更新 - 点击安装",CHECKING_SCRIPT:"检查更新中 - 点击重新安装",UNABLETOCHECK_SCRIPT:"检查更新失败 - 点击重新安装",UPTODATE_SCRIPT:"脚本已是最新 - 点击重新安装",OPEN_AS_EXCALIDRAW:"打开为 Excalidraw 绘图",TOGGLE_MODE:"在 Excalidraw 和 Markdown 模式之间切换",CONVERT_NOTE_TO_EXCALIDRAW:"转换空白笔记为 Excalidraw 绘图",CONVERT_EXCALIDRAW:"转换 *.excalidraw 为 *.md 文件",CREATE_NEW:"新建 Excalidraw 绘图",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (兼容 Logseq)",DOWNLOAD_LIBRARY:"导出 stencil 库为 *.excalidrawlib 文件",OPEN_EXISTING_NEW_PANE:"打开已有的绘图 - 于新面板",OPEN_EXISTING_ACTIVE_PANE:"打开已有的绘图 - 于当前面板",TRANSCLUDE:"嵌入绘图(形如 ![[drawing]])到当前文档",TRANSCLUDE_MOST_RECENT:"嵌入最近编辑过的绘图(形如 ![[drawing]])到当前文档",TOGGLE_LEFTHANDED_MODE:"切换为左手模式",NEW_IN_NEW_PANE:"新建绘图 - 于新面板",NEW_IN_NEW_TAB:"新建绘图 - 于新页签",NEW_IN_ACTIVE_PANE:"新建绘图 - 于当前面板",NEW_IN_POPOUT_WINDOW:"新建绘图 - 于新窗口",NEW_IN_NEW_PANE_EMBED:"新建绘图 - 于新面板 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_NEW_TAB_EMBED:"新建绘图 - 于新页签 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_ACTIVE_PANE_EMBED:"新建绘图 - 于当前面板 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_POPOUT_WINDOW_EMBED:"新建绘图 - 于新窗口 - 并将其嵌入(形如 ![[drawing]])到当前文档",EXPORT_SVG:"导出 SVG 文件到当前目录",EXPORT_PNG:"导出 PNG 文件到当前目录",EXPORT_SVG_WITH_SCENE:"导出 SVG 文件(包含 Scene)到当前目录",EXPORT_PNG_WITH_SCENE:"导出 PNG 文件(包含 Scene)到当前目录",TOGGLE_LOCK:"文本元素:原文模式(RAW)⟺ 预览模式(PREVIEW)",DELETE_FILE:"从库中删除所选图像(或 MD-Embed)的源文件",INSERT_LINK_TO_ELEMENT:`复制所选元素的内部链接(形如 [[file#^elementID]])。\n按住 ${labelCTRL()} 可复制元素所在分组的内部链接(形如 [[file#^group=elementID]])。\n按住 SHIFT 可复制所选元素周围区域的内部链接(形如 [[file#^area=elementID]])。\n按住 ${labelALT()} 可观看视频演示。`,INSERT_LINK_TO_ELEMENT_GROUP:"复制所选元素所在分组的内部链接(形如 [[file#^group=elementID]])",INSERT_LINK_TO_ELEMENT_AREA:"复制所选元素周围区域的内部链接(形如 [[file#^area=elementID]])",INSERT_LINK_TO_ELEMENT_NORMAL:"复制所选元素的内部链接(形如 [[file#^elementID]])",INSERT_LINK_TO_ELEMENT_ERROR:"未选择画布里的单个元素",INSERT_LINK_TO_ELEMENT_READY:"链接已生成并复制到剪贴板",INSERT_LINK:"插入文件的内部链接(形如 [[drawing]])到当前绘图",INSERT_IMAGE:"插入图像(以图像形式嵌入)到当前绘图",IMPORT_SVG:"插入 SVG 矢量图形到当前绘图(支持有限,尚不支持文本)",INSERT_MD:"插入 Markdown 文档(以图像形式嵌入)到当前绘图",INSERT_LATEX:`插入 LaTeX 公式到当前绘图。按住 ${labelALT()} 可观看视频演示。`,ENTER_LATEX:"输入 LaTeX 表达式",READ_RELEASE_NOTES:"阅读本插件的更新说明",RUN_OCR:"OCR 识别涂鸦和图片里的文本并复制到剪贴板",TRAY_MODE:"绘图工具属性页:面板模式 ⟺ 托盘模式",SEARCH:"搜索文本",RESET_IMG_TO_100:"重设图像元素的尺寸为 100%",TEMPORARY_DISABLE_AUTOSAVE:"临时禁用自动保存功能,直到 Obsidian 退出(勿点,除非你清楚自己在干什么)",TEMPORARY_ENABLE_AUTOSAVE:"恢复启用自动保存功能",INSTALL_SCRIPT_BUTTON:"安装或更新 Excalidraw 脚本",OPEN_AS_MD:"打开为 Markdown 文件",SAVE_AS_PNG:`导出 PNG 到当前目录(按住 ${labelCTRL()} 设定导出路径;按住 SHIFT 在导出时包含 Scene)`,SAVE_AS_SVG:`导出 SVG 到当前目录(按住 ${labelCTRL()} 设定导出路径;按住 SHIFT 在导出时包含 Scene)`,OPEN_LINK:"打开所选元素里的链接 \n(按住 SHIFT 在新面板打开)",EXPORT_EXCALIDRAW:"导出为 .Excalidraw 文件",LINK_BUTTON_CLICK_NO_TEXT:"请选择一个含有链接的图形或文本元素。",FILENAME_INVALID_CHARS:'文件名不能含有以下符号: * " \\ < > : | ? #',FORCE_SAVE:"保存绘图(并更新嵌入了该绘图的面板)",RAW:"文本元素正以原文(RAW)模式显示链接。\n点击切换到预览(PREVIEW)模式",PARSED:"文本元素正以预览(PREVIEW)模式显示链接。\n点击切换到原文(RAW)模式",NOFILE:"Excalidraw(没有文件)",COMPATIBILITY_MODE:"*.excalidraw 文件正以兼容模式打开。需要转换为新格式才能使用插件的全部功能。",CONVERT_FILE:"转换为新格式",RELEASE_NOTES_NAME:"显示更新说明",RELEASE_NOTES_DESC:"开启:每次更新本插件后,显示最新发行版本的说明。
关闭:您仍可以在 GitHub 上阅读更新说明。",NEWVERSION_NOTIFICATION_NAME:"通知插件更新",NEWVERSION_NOTIFICATION_DESC:"开启:当本插件存在可用更新时,显示通知。
关闭:您需要手动检查本插件的更新(设置 - 第三方插件 - 检查更新)。",FOLDER_NAME:"Excalidraw 文件夹",FOLDER_DESC:"新绘图的默认存储路径。若为空,将在库的根目录中创建新绘图。",FOLDER_EMBED_NAME:"将 Excalidraw 文件夹用于“新建绘图”命令创建的绘图",FOLDER_EMBED_DESC:"在命令面板中执行“新建绘图”系列命令时,新绘图的存储路径。
开启:使用 Excalidraw 文件夹。
关闭:使用 Obsidian 设置的新附件默认位置。",TEMPLATE_NAME:"Excalidraw 模板文件",TEMPLATE_DESC:"Excalidraw 模板文件的完整路径。
如果您的模板在默认的 Excalidraw 文件夹中且文件名是 Template.md,则此项应设为 Excalidraw/Template.md(也可省略 .md 扩展名,即 Excalidraw/Template)。
如果您在兼容模式下使用 Excalidraw,那么您的模板文件也必须是旧的 *.excalidraw 格式,例如 Excalidraw/Template.excalidraw。",SCRIPT_FOLDER_NAME:"Excalidraw 自动化脚本的文件夹(大小写敏感!)",SCRIPT_FOLDER_DESC:"此文件夹用于存放 Excalidraw 自动化脚本。您可以在 Obsidian 命令面板中执行这些脚本,还可以为喜欢的脚本分配快捷键,就像为其他 Obsidian 命令分配快捷键一样。
该项不能设为库的根目录。",SAVING_HEAD:"保存",COMPRESS_NAME:"压缩 Excalidraw JSON",COMPRESS_DESC:"Excalidraw 绘图文件默认将元素记录为 JSON 格式。开启此项,可将元素的 JSON 数据以 BASE64 编码(使用 LZ-String 算法)。这样做的好处是:一方面可以避免原来的明文 JSON 数据干扰 Obsidian 的文本搜索结果,另一方面减小了绘图文件的体积。
当您通过功能区按钮或命令将绘图切换成 Markdown 模式时,数据将被解码回 JSON 格式以便阅读和编辑;而当您切换回 Excalidraw 模式时,数据就会被再次编码。
开启此项后,对于之前已存在的未压缩的绘图文件,需要重新打开并保存它们才能生效。",AUTOSAVE_INTERVAL_DESKTOP_NAME:"桌面端定期保存时间间隔",AUTOSAVE_INTERVAL_DESKTOP_DESC:"每隔多长时间触发一次自动保存。但如果当前绘图没有发生改变,将不会触发自动保存。当 Obsidian 应用内的焦点离开活动文档(如关闭工作空间、点击菜单栏、切换到其他页签或面板等)的时候,会触发自动保存。直接退出 Obsidian 应用(不管是终结进程还是点关闭按钮)不会触发自动保存。",AUTOSAVE_INTERVAL_MOBILE_NAME:"移动端定期保存时间间隔",AUTOSAVE_INTERVAL_MOBILE_DESC:"建议在移动端设置更短的自动保存时间间隔。当 Obsidian 应用内的焦点离开活动文档(如关闭工作空间、点击菜单栏、切换到其他页签或面板等)的时候,会触发自动保存。直接退出 Obsidian 应用(在应用切换器中划掉)不会触发自动保存。此外,当您切换到其他应用时,有时候系统会自动清理 Obsidian 后台以释放资源。这种情况下,Excalidraw 无法保存最新的变动。",FILENAME_HEAD:"文件名",FILENAME_DESC:"

点击阅读日期和时间格式参考

",FILENAME_SAMPLE:"“新建绘图”系列命令创建的文件名形如:",FILENAME_EMBED_SAMPLE:"“新建绘图并嵌入到当前文档”系列命令创建的文件名形如:",FILENAME_PREFIX_NAME:"“新建绘图”系列命令创建的文件名前缀",FILENAME_PREFIX_DESC:"执行“新建绘图”系列命令时,创建的绘图文件名的第一部分",FILENAME_PREFIX_EMBED_NAME:"“新建绘图并嵌入到当前文档”系列命令创建的文件名前缀",FILENAME_PREFIX_EMBED_DESC:"执行“新建绘图并嵌入到当前文档”系列命令时,创建的绘图文件名是否以当前文档名作为前缀?
开启:
关闭:否",FILENAME_POSTFIX_NAME:"“新建绘图并嵌入到当前文档”系列命令创建的文件名的中间部分",FILENAME_POSTFIX_DESC:"介于文件名前缀和日期时间之间的文本。仅对“新建绘图并嵌入到当前文档”系列命令创建的绘图生效。",FILENAME_DATE_NAME:"文件名里的日期时间",FILENAME_DATE_DESC:"文件名的最后一部分。允许留空。",FILENAME_EXCALIDRAW_EXTENSION_NAME:"文件扩展名(.excalidraw.md 或 .md)",FILENAME_EXCALIDRAW_EXTENSION_DESC:"该选项在兼容模式(即非 Excalidraw 专用 Markdown 文件)下不会生效。
开启:使用 .excalidraw.md 作为扩展名。
关闭:使用 .md 作为扩展名。",DISPLAY_HEAD:"显示",LEFTHANDED_MODE_NAME:"左手模式",LEFTHANDED_MODE_DESC:"目前只在托盘模式下生效。若开启此项,则托盘(绘图工具属性页)将位于右侧。
开启:左手模式。
关闭:右手模式。",MATCH_THEME_NAME:"使新建的绘图匹配 Obsidian 主题",MATCH_THEME_DESC:"如果 Obsidian 使用黑暗主题,新建的绘图文件也将使用黑暗主题。
但是若设置了模板,新建的绘图文件将跟随模板主题;另外,此功能不会作用于已有的绘图。
开启:跟随 Obsidian 主题风格。
关闭:跟随模板主题风格。",MATCH_THEME_ALWAYS_NAME:"使已有的绘图匹配 Obsidian 主题",MATCH_THEME_ALWAYS_DESC:"如果 Obsidian 使用黑暗主题,则绘图文件也将以黑暗主题打开;反之亦然。
开启:匹配 Obsidian 主题风格。
关闭:采用上次保存时的主题风格。",MATCH_THEME_TRIGGER_NAME:"Excalidraw 主题跟随 Obsidian 主题变化",MATCH_THEME_TRIGGER_DESC:"开启此项,则切换 Obsidian 的黑暗/明亮主题时,已打开的 Excalidraw 面板的主题会随之改变。
开启:跟随主题变化。
关闭:不跟随主题变化。",DEFAULT_OPEN_MODE_NAME:"Excalidraw 的默认运行模式",DEFAULT_OPEN_MODE_DESC:"设置 Excalidraw 的运行模式:普通模式(Normal)/禅模式(Zen)/阅读模式(View)。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-default-mode: normal/zen/view 的键值对。",DEFAULT_PEN_MODE_NAME:"触控笔模式(Pen mode)",DEFAULT_PEN_MODE_DESC:"打开绘图时,是否自动开启触控笔模式?",DEFAULT_PINCHZOOM_NAME:"允许在触控笔模式下进行双指缩放",DEFAULT_PINCHZOOM_DESC:"在触控笔模式下使用自由画笔工具时,双指缩放可能造成干扰。
开启: 允许在触控笔模式下进行双指缩放
关闭: 禁止在触控笔模式下进行双指缩放",DEFAULT_WHEELZOOM_NAME:"鼠标滚轮缩放页面",DEFAULT_WHEELZOOM_DESC:`开启:鼠标滚轮为缩放页面,${labelCTRL()}+鼠标滚轮为滚动页面
关闭:鼠标滚轮为滚动页面,${labelCTRL()}+鼠标滚轮为缩放页面`,ZOOM_TO_FIT_NAME:"调节面板尺寸后自动缩放页面",ZOOM_TO_FIT_DESC:"调节面板尺寸后,自适应地缩放页面
开启:自动缩放。
关闭:禁用自动缩放。",ZOOM_TO_FIT_ONOPEN_NAME:"打开绘图时自动缩放页面",ZOOM_TO_FIT_ONOPEN_DESC:"打开绘图文件时,自适应地缩放页面
开启:自动缩放。
关闭:禁用自动缩放。",ZOOM_TO_FIT_MAX_LEVEL_NAME:"自动缩放的最高级别",ZOOM_TO_FIT_MAX_LEVEL_DESC:"自动缩放画布时,允许放大的最高级别。该值不能低于 0.5(50%)且不能超过 10(1000%)。",LINKS_HEAD:"链接(Links) & 以文本形式嵌入到绘图中的文档(Transclusion)",LINKS_DESC:`按住 ${labelCTRL()} 并点击包含 [[链接]] 的文本元素可以打开其中的链接。如果所选文本元素包含多个 [[有效的内部链接]] ,只会打开第一个链接;如果所选文本元素包含有效的 URL 链接 (如 https://http://),插件会在浏览器中打开链接。
链接的源文件被重命名时,绘图中相应的 [[内部链接]] 也会同步更新。若您不愿绘图中的链接外观因此而变化,可使用 [[内部链接|别名]]。`,ADJACENT_PANE_NAME:"在相邻面板中打开",ADJACENT_PANE_DESC:`按住 ${labelCTRL()}+SHIFT 并点击绘图里的内部链接时,插件默认会在新面板中打开该链接。
若开启此项,Excalidraw 会先尝试寻找已有的相邻面板(按照右侧、左侧、上方、下方的顺序),并在其中打开该链接。如果找不到,再在新面板中打开。`,MAINWORKSPACE_PANE_NAME:"在主工作区中打开",MAINWORKSPACE_PANE_DESC:`按住 ${labelCTRL()}+SHIFT 并点击绘图里的内部链接时,插件默认会在当前窗口的新面板中打开该链接。
若开启此项,Excalidraw 会在主工作区的面板中打开该链接。`,LINK_BRACKETS_NAME:"在链接的两侧显示 [[中括号]]",LINK_BRACKETS_DESC:"文本元素处于预览(PREVIEW)模式时,在内部链接的两侧显示中括号。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-link-brackets: true/false 的键值对。",LINK_PREFIX_NAME:"内部链接的前缀",LINK_PREFIX_DESC:'文本元素处于预览(PREVIEW)模式时,如果其中包含链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-link-prefix: "📍 " 的键值对。',URL_PREFIX_NAME:"外部链接的前缀",URL_PREFIX_DESC:'文本元素处于预览(PREVIEW)模式时,如果其中包含外部链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-url-prefix: "🌐 " 的键值对。',PARSE_TODO_NAME:"待办任务(Todo)",PARSE_TODO_DESC:"将文本元素中的 - [ ]- [x] 前缀显示为方框。",TODO_NAME:"未完成项目",TODO_DESC:"未完成的待办项目的符号",DONE_NAME:"已完成项目",DONE_DESC:"已完成的待办项目的符号",HOVERPREVIEW_NAME:"鼠标悬停预览内部链接",HOVERPREVIEW_DESC:`开启:在 Excalidraw 阅读模式(View)下,鼠标悬停在 [[内部链接]] 上即可预览;而在普通模式(Normal)下, 鼠标悬停在内部链接右上角的蓝色标识上即可预览。
关闭:鼠标悬停在 [[内部链接]] 上,并且按住 ${labelCTRL()} 才能预览。`,LINKOPACITY_NAME:"链接标识的透明度",LINKOPACITY_DESC:"含有链接的元素,其右上角的链接标识的透明度。介于 0(全透明)到 1(不透明)之间。",LINK_CTRL_CLICK_NAME:`按住 ${labelCTRL()} 并点击含有 [[链接]] 或 [别名](链接) 的文本来打开链接`,LINK_CTRL_CLICK_DESC:"如果此功能影响到您使用某些原版 Excalidraw 功能,可将其关闭。关闭后,您只能通过绘图面板标题栏中的链接按钮来打开链接。",TRANSCLUSION_WRAP_NAME:"Transclusion 的折行方式",TRANSCLUSION_WRAP_DESC:"中的 number 表示嵌入的文本溢出时,在第几个字符处进行折行。
此开关控制具体的折行方式。若开启,则严格在 number 处折行,禁止溢出;若关闭,则允许在 number 位置后最近的空格处折行。",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion 的默认折行位置",TRANSCLUSION_DEFAULT_WRAP_DESC:"除了通过 ![[doc#^block]]{number} 中的 number 来控制折行位置,您也可以在此设置 number 的默认值。
一般设为 0 即可,表示不设置固定的默认值,这样当您需要嵌入文档到便签中时,Excalidraw 能更好地帮您自动处理。",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Transclusion 的最大显示字符数",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"以 ![[内部链接]]![](内部链接) 的形式将文档以文本形式嵌入到绘图中时,该文档在绘图中可显示的最大字符数量。",QUOTE_TRANSCLUSION_REMOVE_NAME:"隐藏 Transclusion 行首的引用符号",QUOTE_TRANSCLUSION_REMOVE_DESC:"不显示 Transclusion 中每一行行首的 > 符号,以提高纯文本 Transclusion 的可读性。
开启:隐藏 > 符号
关闭:不隐藏 > 符号(注意,由于 Obsidian API 的原因,首行行首的 > 符号不会被隐藏)",GET_URL_TITLE_NAME:"使用 iframly 获取页面标题",GET_URL_TITLE_DESC:"拖放链接到 Excalidraw 时,使用 http://iframely.server.crestify.com/iframely?url= 来获取页面的标题。",MD_HEAD:"以图像形式嵌入到绘图中的 Markdown 文档(MD-Embed)",MD_HEAD_DESC:`您还可以将 Markdown 文档以图像形式(而非文本形式)嵌入到绘图中。方法是按住 ${labelCTRL()} 并从文件管理器中把文档拖入绘图,或者执行“以图像形式嵌入”系列命令。`,MD_TRANSCLUDE_WIDTH_NAME:"MD-Embed 的默认宽度",MD_TRANSCLUDE_WIDTH_DESC:"MD-Embed 的宽度。该选项会影响到折行,以及图像元素的宽度。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#标题|宽度x最大高度]]。",MD_TRANSCLUDE_HEIGHT_NAME:"MD-Embed 的默认最大高度",MD_TRANSCLUDE_HEIGHT_DESC:"MD-Embed 的高度取决于 Markdown 文档内容的多少,但最大不会超过该值。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#^块引ID|宽度x最大高度]]。",MD_DEFAULT_FONT_NAME:"MD-Embed 的默认字体",MD_DEFAULT_FONT_DESC:"可以设为 VirgilCasadia 或其他有效的 .ttf/.woff/.woff2 字体文件(如 我的字体.woff2)。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-font: 字体名或文件名 的键值对。",MD_DEFAULT_COLOR_NAME:"MD-Embed 的默认文本颜色",MD_DEFAULT_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-font-color: steelblue 的键值对。",MD_DEFAULT_BORDER_COLOR_NAME:"MD-Embed 的默认边框颜色",MD_DEFAULT_BORDER_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-border-color: gray 的键值对。
如果您不想要边框,请留空。",MD_CSS_NAME:"MD-Embed 的默认 CSS 样式表",MD_CSS_DESC:"MD-Embed 图像所采用的 CSS 样式表文件名。需包含扩展名,例如 md-embed.css。允许使用 Markdown 文件(如 md-embed-css.md),但其内容应符合 CSS 语法。
如果您要查询 CSS 所作用的 HTML 节点,请在 Obsidian 开发者控制台(CTRL+SHIFT+i)中键入命令:ExcalidrawAutomate.mostRecentMarkdownSVG —— 这将显示 Excalidraw 最近生成的 SVG。
此外,在 CSS 中不能任意地设置字体,您一般只能使用系统默认的标准字体(详见 README),但可以通过上面的设置来额外添加一个自定义字体。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-css: 库中的CSS文件或CSS片段 的键值对。",EMBED_HEAD:"嵌入到文档中的绘图(Embed) & 导出",EMBED_REUSE_EXPORTED_IMAGE_NAME:"将之前已导出的图像作为 Embed 的预览图(如果存在的话)",EMBED_REUSE_EXPORTED_IMAGE_DESC:"该选项与“自动导出 SVG/PNG 副本”选项配合使用。如果存在文件名相匹配的 SVG/PNG 副本,则将其作为 Embed 的预览图,而不再重新生成预览图。
该选项能够提高性能,尤其是当 Embed 中含有大量图像或 MD-Embed 时。但是,该选项也可能导致预览图无法立即响应你最新的修改,或者你对 Obsidian 主题风格的改变。
该选项仅作用于嵌入到文档中的绘图。由于种种原因,该技术无法用于加快绘图文件的打开速度。详见此说明。",EMBED_PREVIEW_SVG_NAME:"生成 SVG 格式的 Embed 预览图",EMBED_PREVIEW_SVG_DESC:"开启:在 Markdown 预览模式下,为 Embed 生成 SVG 格式的预览图。
关闭:为 Embed 生成 PNG 格式的预览图。注意:PNG 格式预览图不支持某些 绘图元素的块引用特性。",PREVIEW_MATCH_OBSIDIAN_NAME:"Embed 预览图匹配 Obsidian 主题",PREVIEW_MATCH_OBSIDIAN_DESC:"开启此项,则当 Obsidian 处于黑暗模式时,Embed 的预览图也会以黑暗模式渲染;当 Obsidian 处于明亮模式时,预览图也会以明亮模式渲染。
您可能还需要关闭“导出的图像包含背景”开关,来获得与 Obsidian 更加协调的观感。",EMBED_WIDTH_NAME:"Embed 预览图的默认宽度",EMBED_WIDTH_DESC:"该选项同时作用于 Obsidian 实时预览模式下的编辑视图和阅读视图,以及鼠标悬停时浮现的预览图。
您可为某个要嵌入到文档中的绘图(Embed)单独设置此项,方法是修改相应的链接格式为形如 ![[drawing.excalidraw|100]][[drawing.excalidraw|100x100]] 的格式。",EMBED_TYPE_NAME:"“嵌入绘图到当前文档”系列命令的源文件类型",EMBED_TYPE_DESC:"在命令面板中执行“嵌入绘图到当前文档”系列命令时,要嵌入绘图文件本身,还是嵌入其 PNG 或 SVG 副本。
如果您想选择 PNG 或 SVG 副本,需要先开启下方的“自动导出 PNG 副本”或“自动导出 SVG 副本”开关。
如果您选择了 PNG 或 SVG 副本,当副本不存在时,该命令将会插入一条损坏的链接,您需要打开绘图文件并手动导出副本才能修复 —— 也就是说,该选项不会自动帮您生成 PNG/SVG 副本,而只会引用已有的 PNG/SVG 副本。",EMBED_WIKILINK_NAME:"“嵌入绘图到当前文档”命令产生的内部链接类型",EMBED_WIKILINK_DESC:"开启:将产生 ![[Wiki 链接]]关闭:将产生 ![](Markdown 链接)。",EXPORT_PNG_SCALE_NAME:"导出的 PNG 图像的比例",EXPORT_PNG_SCALE_DESC:"导出的 PNG 图像的大小比例",EXPORT_BACKGROUND_NAME:"导出的图像包含背景",EXPORT_BACKGROUND_DESC:"如果关闭,将导出透明背景的图像。",EXPORT_PADDING_NAME:"导出的图像的空白边距",EXPORT_PADDING_DESC:"导出的 SVG/PNG 图像四周的空白边距(单位:像素)。
增加该值,可以避免在导出图像时,靠近图像边缘的图形被裁掉。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-export-padding: 5 的键值对。",EXPORT_THEME_NAME:"导出的图像包含主题",EXPORT_THEME_DESC:"导出与绘图的黑暗/明亮主题匹配的图像。如果关闭,在黑暗主题下导出的图像将和明亮主题一样。",EXPORT_HEAD:"导出设置",EXPORT_SYNC_NAME:"保持 SVG/PNG 文件名与绘图文件同步",EXPORT_SYNC_DESC:"打开后,当绘图文件被重命名时,插件将同步更新同文件夹下的同名 .SVG 和 .PNG 文件。当绘图文件被删除时,插件将自动删除同文件夹下的同名 .SVG 和 .PNG 文件。",EXPORT_SVG_NAME:"自动导出 SVG 副本",EXPORT_SVG_DESC:"自动导出和绘图文件同名的 SVG 副本。插件会将副本保存到绘图文件所在的文件夹中。在文档中嵌入这个 SVG 文件,相比直接嵌入绘图文件,具有更强的跨平台能力。
此开关开启时,每次您编辑 Excalidraw 绘图,其 SVG 文件副本都会同步更新。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-autoexport: none/both/svg/png的键值对",EXPORT_PNG_NAME:"自动导出 PNG 副本",EXPORT_PNG_DESC:"和“自动导出 SVG 副本”类似,但是导出格式为 *.PNG。",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"同时导出黑暗和明亮风格的图像",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"若开启,Excalidraw 将导出两个文件:filename.dark.png(或 filename.dark.svg)和 filename.light.png(或 filename.light.svg)。
该选项可作用于“自动导出 SVG 副本”、“自动导出 PNG 副本”,以及其他的手动的导出命令。",COMPATIBILITY_HEAD:"兼容性设置",EXPORT_EXCALIDRAW_NAME:"自动导出 Excalidraw 旧格式副本",EXPORT_EXCALIDRAW_DESC:"和“自动导出 SVG 副本”类似,但是导出格式为 *.excalidraw。",SYNC_EXCALIDRAW_NAME:"新旧格式绘图文件的内容保持同步",SYNC_EXCALIDRAW_DESC:"如果旧格式(*.excalidraw)绘图文件的修改日期比新格式(*.md)更新,则根据旧格式文件的内容来更新新格式文件。",COMPATIBILITY_MODE_NAME:"以旧格式创建新绘图",COMPATIBILITY_MODE_DESC:"开启此功能后,您通过功能区按钮、命令面板、文件浏览器等创建的绘图都将是旧格式(*.excalidraw)。此外,您打开旧格式绘图文件时将不再收到提醒消息。",MATHJAX_NAME:"MathJax (LaTeX) 的 javascript 库服务器",MATHJAX_DESC:"如果您在绘图中使用 LaTeX,插件需要从服务器获取并加载一个 javascript 库。如果您的网络无法访问某些库服务器,可以尝试通过此选项更换库服务器。更改此选项后,您可能需要重启 Obsidian 来使其生效。",NONSTANDARD_HEAD:"非 Excalidraw.com 官方支持的特性",NONSTANDARD_DESC:"这些特性不受 Excalidraw.com 官方支持。当导出绘图到 Excalidraw.com 时,这些特性将会发生变化。",CUSTOM_PEN_NAME:"自定义画笔的数量",CUSTOM_PEN_DESC:"在画布上的 Obsidian 菜单旁边切换自定义画笔。长按画笔按钮可以修改其样式。",EXPERIMENTAL_HEAD:"实验性功能",EXPERIMENTAL_DESC:"以下部分设置不会立即生效,需要刷新文件资源管理器或者重启 Obsidian 才会生效。",FIELD_SUGGESTER_NAME:"开启字段建议",FIELD_SUGGESTER_DESC:"开启后,当您在编辑器中输入 excalidraw- 或者 ea. 时,会弹出一个带有函数说明的自动补全提示菜单。
该功能借鉴了 Breadcrumbs 和 Templater 插件。",FILETYPE_NAME:"在文件浏览器中为 excalidraw.md 文件添加类型标识符(如 ✏️)",FILETYPE_DESC:"可通过下一项设置来自定义类型标识符。",FILETAG_NAME:"excalidraw.md 文件的类型标识符",FILETAG_DESC:"要显示为类型标识符的 emoji 或文本。",INSERT_EMOJI:"插入 emoji",LIVEPREVIEW_NAME:"嵌入绘图到文档时,模拟嵌入图像的语法",LIVEPREVIEW_DESC:"开启此项,则可在 Obsidian 实时预览模式的编辑视图下,用形如 ![[绘图|宽度|样式]] 的语法来嵌入绘图。
该选项不会在已打开的文档中立刻生效 —— 你需要重新打开此文档来使其生效。",ENABLE_FOURTH_FONT_NAME:"为文本元素启用本地字体",ENABLE_FOURTH_FONT_DESC:"开启此项后,文本元素的属性面板里会多出一个本地字体按钮。
使用了本地字体的绘图文件,将会失去一部分跨平台能力 —— 若将绘图文件移动到其他库中打开,显示效果可能会截然不同;若在 excalidraw.com 或者其他版本的 Excalidraw 中打开,使用本地字体的文本会变回系统默认字体。",FOURTH_FONT_NAME:"本地字体文件",FOURTH_FONT_DESC:"选择库文件夹中的一个 .ttf, .woff 或 .woff2 字体文件作为本地字体文件。若未选择文件,则使用默认的 Virgil 字体。",SCRIPT_SETTINGS_HEAD:"已安装脚本的设置",TASKBONE_HEAD:"Taskbone OCR(光学符号识别)",TASKBONE_DESC:"这是一个将 OCR 融入 Excalidraw 的实验性功能。请注意,Taskbone 是一项独立的外部服务,而不是由 Excalidraw 或 Obsidian-excalidraw-plugin 项目提供的。OCR 能够对画布上用自由画笔工具写下的涂鸦或者嵌入的图像进行文本识别,并将识别出来的文本写入绘图文件的 frontmatter,同时复制到剪贴板。之所以要写入 frontmatter 是为了便于您在 Obsidian 中能够搜索到这些文本。注意,识别的过程不是在本地进行的,而是通过在线 API,图像会被上传到 taskbone 的服务器(仅用于识别目的)。如果您对此敏感,请不要使用这个功能。",TASKBONE_ENABLE_NAME:"启用 Taskbone",TASKBONE_ENABLE_DESC:"启用这个功能意味着你同意 Taskbone 条款及细则 以及 隐私政策.",TASKBONE_APIKEY_NAME:"Taskbone API Key",TASKBONE_APIKEY_DESC:"Taskbone 的免费 API key 提供了一定数量的每月识别次数。如果您非常频繁地使用此功能,或者想要支持 Taskbone 的开发者(您懂的,没有人能用爱发电,Taskbone 开发者也需要投入资金才能持续运行这项 OCR 服务)您可以到 taskbone.com 购买一个商用 API key。购买后请将它填写到旁边这个文本框里,替换掉原本自动生成的免费 API key。",SELECT_FILE:"选择一个文件后按回车。",SELECT_FILE_WITH_OPTION_TO_SCALE:`选择一个文件后按回车,或者 SHIFT+${labelMETA()}+ENTER 以 100% 尺寸插入。`,NO_MATCH:"查询不到匹配的文件。",SELECT_FILE_TO_LINK:"选择要插入(链接)到当前绘图中的文件。",SELECT_DRAWING:"选择要插入(以图像形式嵌入)到当前绘图中的图像。",TYPE_FILENAME:"键入要选择的绘图名称。",SELECT_FILE_OR_TYPE_NEW:"选择已有绘图,或者新绘图的类型,然后按回车。",SELECT_TO_EMBED:"选择要插入(嵌入)到当前文档中的绘图。",SELECT_MD:"选择要插入(以图像形式嵌入)到当前绘图中的 Markdown 文档。",INFINITE_LOOP_WARNING:"EXCALIDRAW 警告\n停止加载嵌入的图像,因为此文件中存在死循环:\n",SCRIPT_EXECUTION_ERROR:"脚本运行错误。请在开发者控制台中查看错误信息。",LOAD_FROM_BACKUP:"Excalidraw 文件已损坏。尝试从备份文件中加载。",GOTO_FULLSCREEN:"进入全屏模式",EXIT_FULLSCREEN:"退出全屏模式",TOGGLE_FULLSCREEN:"切换全屏模式",OPEN_LINK_CLICK:"打开所选的图形或文本元素里的链接",OPEN_LINK_PROPS:"编辑所选 MD-Embed 的内部链接,或者打开所选的图形或文本元素里的链接"},zhTW={};const localeMap={ar:ar,cs:cz,da:da,de:de,en:en,"en-gb":enGB,es:es,fr:fr,hi:hi,id:id,it:it,ja:ja,ko:ko,nl:nl,nn:no,pl:pl,pt:pt,"pt-br":ptBR,ro:ro,ru:ru,tr:tr,"zh-cn":zhCN,"zh-tw":zhTW},locale=localeMap[obsidian_module.moment.locale()];function t$d(e){return locale||errorlog({where:"helpers.t",message:"Error: Excalidraw locale not found",locale:obsidian_module.moment.locale()}),locale&&locale[e]||en[e]}var html2canvasExports={},html2canvas$1={get exports(){return html2canvasExports},set exports(e){html2canvasExports=e}};html2canvas$1.exports=function(){ +const EXCALIDRAW_PACKAGES = "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2Rw+lp59dl1um43V7Sxut3rm6Bzd1uui3XVQMGN10ZG7WddVmuqI3YbglcN0Z66uLdP1u0i3QHS30t3fOB/zdBRug7XZrrpi2wQo5tbdemuq63eprvt12w66Nbd2l5CE3cFrp1t0ha76bd7Jumk3a1uAt4Dga4W/A0yOYLXXRbuuN29a6faWEWu+A3V5rot13Ha5ndMdIAQ23ZFrtU12oG6ojdxotY3XRZrpC13jW6rNd7Wu4w3d5k1RED06AaddBduou3TlbuL10JKU/4czsAKu3bZrtc13na60DdNqWEz3Dubsa11XG6GLdntLRu3Uprodt2y264mt5XrTu3YUbt+YpV1BVjd59LdzXaFbtwGDBa7n9dntLC3XW2ORWt0Oa77Ld2LQfFcqDrvPpZoG7S26/5u07Xaprov11sW68bywmus63ballT11u67IAAnpunnXYmboy13Z26TDdd1u9zXcDbrat0Za60ddA1u5u3aprt012AAB8MEWAjsl0BOIFvAQLQhTbsIt1227YddMWuoLXXHboYt1MW7wjdVmugc3T7S1BN1zW6IfafA49soD/br9XhuNq4/asegf+3YA7uAd20276bdGRuv2lo9ruMN0QO7QTdeKAKk3cKbu812AW7k7dhZux83acBE/t2TSRVva0PtRRQig7qbt3km6HbdXVuqk3S9rsgAB7m7xNd62u2w9vSwl1tBRUBUjIpNcYy3dbrvIt2TG7XNd3+uvTXcNbtp116a7rNd0DutAuh3jm6Prk5pkrdkAAfg3RprpuN0vW64Dd9hu2+3ZAAFPpY+0t+td0DuhUuvwkCVLrQ26SLdADu/c3bDbtqt0ba7Otdc1urdDHn+B4d0J6BaHdUFum43bbrrgN2e0t7NdD5u1zXXNbvJEzbJ4cXieetf83TZrubt3Om66Hdgpuv2lq5rvsd1vW71NdAJu4OlpLbpCd1u0tg6WXVuqzXRdrvkd3DG7bDdaOuyAABVrvEd02a69q6/uus7XRjroKN0Y26e9dntLTvXZFrtz13yO7+ddETuyAAJJroKN2F66wHd0tuizXU1rrmt0na01DwWDEAwgEmBGt1AHG7BTd5muww3YLrrPpYHa7bDdnpu9zXRlrpd13kW6XddMtuxo3aJbt9N2xa79Ndqmu6wAKnroy12827etdlZu+3XY0btc11026Njd79u04CM1SjgKDd7JsGIJpQJp3cFroDpYZG7sndR2u8+lpFrs9N3x679Ndktu+E3XTbsi13H0sLNdKmuyzXfzrts13sG70jdYDuirXc/rvU12Ra6I9dz2ugOlm7Swmd0P26rDdJBu5+3W/bqldToAAAXdygAILXSfbo0115W7pndszu2w3Z7SzdpbS27T6W7Wu0/XblroF11Um6nndmJut53VjbrdpZdW6/aWftLdg3dsbtO12s26VNdPhuy7XVdbr9pZYW7KzdVJuuXXaybtP126a7c9dhZu8S3bDrrMt0/8BwLiYJABu/O9rsrArquZXDdXtLQx3c1bvCN1VW6/tdcJu8O3ZAjjBICE3kGaCD15L9zBy7q5d2z27zddtmu3l3aI7sGt1M279Dk1bdMV3e8AGPt1567PTdOVu6E3V1JQ/gD1t0iYA+eu3zXeabsGt0AW6vndYZun53bLru3t1v26OHdpucJlOByXQN6A8m73gAAdLP2lrprp6t2JO7j7drVuz2lgDbqBt2xa6UrdlTu2w3WqbrDN22G6nHdmRukg3YQ7qNd3+G68rdATu/nXbdbtc10ha7fHdBDukU3WGbs710Pm7u7d8Wu5R3T7S2Wd3yJxzXaDSbCDkCzTnFd28W73DdOtu2N3d5rsnN0kG7mHdbruwG3RbrsWWhrJ5W6gObuszXe4buEd3ea6C3d4lu4Y3f7rsxN0dRx5ndFmu4+lj7S2sACm6689daOugE3UG7os12p66g6WXVu07XT1boKd0ea6ADdPruybXQG7ryt17V1A04kAANh3RhbuBt3+27/267Lu5V3SfbvPpbtu7CndE9ukg3XebvGd3327jXdT9us13Wm7uMvLDGIFLyK1uuHXRq7qAMANsAdXdMru5QAMMboyt0+0sNAARbusO3YibrTd2LLQ7OC1Cux4AKXGys13qW6YXdTduoJ3fI7oO12Vm7EndAdLVTXQ0bqLd0PbopLdp9LQs3dYACZ13vG71zdTRuhq3YMbq9pYY66PaW2ju5qlA40DDQQ9YRYrdgrum5osJrv9trU+wimi2i4VLXRLbqYd3Qm69zdVmu3TXV7Swkd0Wu6XqAQ3Rb/UNW7qC12vW63aWYlu0t3UDbusACYW7endHru07XcJbpa125673NdGRumD3VT1hMybd1ofWirxu5h3cQ7oQN1Fm7YPdGFu+t3WdrqK12wm6rNdhhurLXafrtat1xa7gLdbVunq3V1JT9aLFeAOFEsckO5ooN0Rk6IMe7aHdTHul23fO7rLd3za7nBQ8juh13U67sxN2826BDdz+uyz3Sw7rgN3ia6qDd7muua3RW7sf2GhLAlHwJhdZz3TFroXd3ue6gjdH1AYDHlWFqepQyf1I9AtDu6F3XLrs9pan67kndXhupu3fB7pk91i27rjdF1ur23WSbpad0Sa7WTdkWu9J3S7rvqN1Su6rNd3Hu3j3R57oZPJiTI6r01bugU3Q7bqxN0Cu6UbiwckVj3FY7plfDM67DHd62u8G3XM7oyN2kW7wjd07urt3SfbsEd0Fe68rdBDut2lr5rq6t3UG6Qtd3zusk3eDbvRt0C66+ndHzutTXaubpSt0Rm7KrdJhu8Z3U8buZIB1e7eWdjBUWV2jUywa92cu63rdKNu+F3a17rdpbte7bNd07uob3TZ7uNd22a7trdamusA3SdrquN1RO75Hdx9LELXYAAEUwDLXbt7saN3MO6pvdeeune3Z67puN3ze7tNdi3uua3b1nlzWaUAAos8TmoIi3eIuF8PZBoAHM8fGpSy9iVDAh928gAlnw/bkZq+sfDmE13bUMfrdhxuy/XX5W1+N3Me6xLd7rupE3agGx3N1Ke7XNdGOuh23VGbri4aq66RvdbtuzQFoMYwj11R6629dn09CvXenroIt07m7QLd40BZQ3RnrqxoZla7itd3V9QO3XK7s0t23a7mvdbtLeF3b67tO10R67wjdtxu7zXXRbu2N1+0tSLdCRujPXa8zm4N2F27zvdxhuthJJdrvU13jW7jDd59LAi3RAMGC117W6g6WwAAW43Z3rpy11027xddcWu63XXq7qpN1rW6mXdM6+Z3Xbl7tTt0az0g0A1XOfwNFL1GERw4e7TGcokgA+3atrUkFzz678jdhRuwN3Uprvut2mHFnLApQeOiHF77rKd2++6PaWpvu/p3Rb7t7N0XB4Ujdp2u033Z7SzYt1PU53fdPsRaTVr5iTE10ea7o9dSLuuq3QEbsYd0ha7etd3puybXV7SyO13hG7j6W92uyLXSO7t8t0LO7TLdSnuxfXfG7sTd13O73NdftLYd3T1bsEd2eG6bNdwvuh03efrvR92WXtz38vuutLXX9rodd0MW60tdROu353aRbtD12MO6J7dl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nOlgs3t8L07m6M+9Kne7PvUj3ufnDGl7A7dnjehnvS83qzpaI97QWWK9us0vRIPp5b06t7nE9G+ZQdvXj3shH3fN7F+91tkK0vUCHrqH22pZoO9uo+wNvY83sQH2pj6Fm9po+80fcy3phb2tD71m91gACNvTnSyTpYnd6E29cbehJvX43sab00IByHdbpe2B3VMJk9L3Ol6tfd/7ejUfcX3vJb2PN7Wm9m3ex5vZC3tqb3gj65W9Go+75vT53qxb3aO77S939ulcfWNnlir1s96yR9u4+yAAJC3oGb1gj7NR9KdLHzvQU3qOH0nD6zh9Fw+5pvZH3rxQAZ0sJ+9WLe/xvU03vMZYsj6vm9jzelzvdZ3sd706O6/S9imQAMvWz3vRb0vN7Tx9kAAG7vXd3q3H13j69m9e4+gNvU+PqMZa4t7Dm9QZehvANw7u/L3vAB+e9cg+qgfcMPpt71597am9QzejpvZ83rQn1UT6xe9kAAAFlos3sab34d6Rx9QXup1gOgXUjL2Q976296E+zCfXr3qab0zt7SJ9FbeyAADy3oMZbAt7hx93je88fYuPoFnz9D6HaMwxexMvURPqqb33N6E29AI+slvTuPqhH0mt6A29j4+vcfSxPro72AD7Vm9rjulMvTUEDTL2/979u93be/3vTb3seb1GMtA29C3evjvd03rFb2LN6eR97/erpvQyy1170bd77J9t3e0wAGU3thH2596xJ93bevYfaYADS71gj606WoE+jNvar3pxzgJN6P29Ore7VvUC3oSb1qT7Bu9qzeh8fQG3rS73+N6um9GdLcEfZCPuhH2wj6andmZetEANmXqLL1fiBbUsI/ezvvRi3pt71+t6WR9LLLVifQG3oR735t6A29XY+kSfbM3qMZYLD6A+9fje7xvWM3sDb2Dj6Cm9M4+jKfWnSyhH0Jt7Gm91gAQAAGggzTelOluL3seb24D7IW9OLeodvYnSwOb2yt75x9NXulb3SwYHyn3YGArZACI+y0fas3rf71lT6sJ98zew3vXVPseb2st6mp9OdLBifdgPqOn2AT6U6WpgABVvfwPuBb1NT7DGWk/e0wADVPq5Zajj7xx9k4+hJvbgPtnH2Ebx7+0BigZQANN3rKb2QAA0x9YHevifVNPohH0J0tZp9creuNvd43qun3J974e9aY+vNvVyy1MABTT7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uT79rF6zWaHYeSXvrb3U2tpRW0OzcB5txvu/Zb3t7hTV527apfcYXvlX3cQttcW0irfljvWi3lAAZEtyO98Q+9uVvxW2NAA+Qt1l9+OLYLdsp63DX35Qtyp95D27tqfmdH7294Gt5h2/C7dnZuRnuVzbrt73J96+bbf5uru3fBbkr7k4W4kLaktsrPvsFb2Qt9e94s+44VtmvvyzbxT7oE98RzddPd8y3uFbAT731NxHHe+t3eS3wHbcmtxdm5OzdRvfLvuNTbRrLfFW1s+/QfePXvWe3Qw952AIkLYuPcRPv15b37No1lhvLYC5sHvuj33b5tgY99m+4Tff8829X3y8tsdW/+zYE5u6q3Lxb3t74194WbZ3Zv0S3Hn3SKt+p98GrehfeEXuzr3UHN7rm2BzdXdtnPvLpb9j7/aW44++cffJG3z2b7j7zx9zULdW5s+PujX3gr7zd9wpY8XjupvvpL3sNF6N9yoAErffW83q33PqtjQAJm+7XZtW9vCNb7z79q9x5zfVVuaq3ut0ep7ojm61e98FvDPuDebz9tyWWyB++sAAFm3r2bg1tzU995rfOPcLHu6BbIOr+zZ2n7vdVvw63vVbontv1W4p7dFdtnPuAXd0r7iNW6TbY3vcSfvg5brj77298RzYz7e4j2CLL6atyh21mrZzVsky2jWWnX9gkq+3e6Mlvnc2KObNotmoW9MrZuFu4vvv33vPNkjm++e9cdszC3JTbxDLLaW2e7egzcodHs1bnXN0p9zA+78ffKS3br36r72Tm8ZLZffdGst0Obij7l9m+Pi8qfd7o38M3B5eizmzFACs5sxQAbObu772z97aLZqFuoc3P33077lL92l+9U5sxQBwzbVmtjC22IbdGvc+C3In3gn71jN2uAZh5tVfuCv35DLdL97s+9ICdXBPJ6ntHN7+97OzYE5toW23nboltvtmwBzcsVvds3nP3IX72tWy+beYFsUc3mn3prLfl9+47aQFtSm2PD3bVt3/t+nq8vL2UPue33PittO98B+5afcJPvmL3c9T9Zg0OzfdvfWa2TJbU6t4I99+zfn5s7K2aNb3XN/t93O+4Affgnux1b3t7hA2way041tYq3kebmHN01lgQy0lfeuvvG33nj7k225a+7O5uwS3QebxktoZ9/0ra2fcgvuX2b+H78oW3Jzbzvcmm3zWWX37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++ZfeUvvGX37L7/l971+tFfecvvZX3zr74AAEEoQAAMRQ7X3lC/XEK7VX2AAAEKEAABMULMy0AAB0UIAAAkoBr75l98AAAUUIAACEoUZlpAAE6+95ffJvvtX3wAAPxQgAARyhOvvkAAer74AAB0oGb712U7pABZfe1vvW33mr76l98gACAABOKBO++LffJmWgAAZChmszWX3s77+l95m++Mc2svvkzLYZlrMy0G+9A/eBvPzsALL74t9/O+/DMtpmWeX3nL74AAEIoZdeEcAEAAAkUGV9+67h1ffGvv2X30H7+D97a++lHuYfvcP3hH78j99R+8Y/enPd2P3pr7yD97B+8Q/fGSPRP3s77/D98R+8o/eyfY5P3ir79V98p++4/eafvBP33MFwwicAACgUGd98AADoUGV99h++AAAwKF++9MRu209qX3wAALRQkAANH7zj9+GZbnffAAA2FBlfepfvyX3+r748K+l++y/ecfv/P3oX75AAFF+/i/ffG77R+hX72d9+V++QABVfv6v3lcp3SABW+8nff0vvP3397Mxl98mZaAABwKEW++c/f8fvQ33k492q3od+/O/fmvvA337n7/ce9G++AAA0KEmZZvHvpmWa33rL7wL95y++TMtAAAkFANfekfvbZhqX7zl962+/B/ezI3wUlQP75My0gADFffwfvnX3wAADJQ133yZloAAAgoMcw2n94z+/p/evfvi335HR5V97y++pffnynSP3tb74AADYoWr75My2W+80DPpmWJ330Zlpn95F+9NfeavvTf3+ZlsmR9rb3TMtkvvaP3nL72j99mZZzMtPynvP3ir7zl9+K+85fe6/vaP35P78KafeACw/eA/vaP3yAAI796y+8jfe5/vHOZrL7yd96T++jfepJjaP3877wH9+S++CA2BfveX38v7zRC5H+85feM/vZX31L7yd973++DledzdWX3vL7/n98gABbfe3vvszLBr77YM8v+9i82kfvozLJH77394gk/vABW/v7f3gAH/hU9Uj0H/en/vk33ny+4AAGoobP75t98gAC8/eQfvOX3lXz7AD/gB/DMscvvJ337v78gD418/K+2XyPTuiJP7y79+mZaTfenfvIv3kiQzd95m+9hA3PhKb33s774AAFIoJf72j96T5si/eVvvIaJp/73H95DPfletFfveX32370BuZW+9nffAAA5FDMA/GJPNX3s770j9/n+/xnvpmWb338b7yv9+EB+iA/G+blf36v73PN53N0H/ecvviv32Zlp398gAAR/fzvvX33z/73RR/eAA1fe2/vAv3mKAGj9+u+8GA/Sz3zsAKZls394Aq90gBhmWaP3ywH+cM6t+9cA+AAf5pBgP72d94H++SYX9AfnX3pAHzJhdS+9nffxmWx/3+GNxID6kB+QAAVvvjgP90h1L95q+9bffX/vd/3lb75My0m+9IA/QAfj83mH75Myy8B8m1uzxXSAP9L7zt962+8nfeMvvpfn1SPdAD4L+8u/fivv6f3pP7zoD+Wm90gAcvvozLAX7wd96O+8pA/XJP0P3p77y997J+9lfeavvw/3k77yL9+gW8PfeGgfr33ooH5AAFD+/h/fI/vMf3tgHygt9Iv1I/fI/vjv3yoH9l966B/hYX0Afc/30oH0U0aQB/d/f8/vnf3i0Z1L98mZZ1/f5/vMVHk9q58JS+++O/eavvkAAVL7x998AAD0UHl94F+9ZSfnYASP38b78My2W+9ZffkvvmX3ogH3b97yk8yvgB/vMUAW/74n98mZbd/fSgfpp+koHxuQ7R+/jfe3vvkzLUQH6/98mZalA/iqPUNhvaugQD96B/EA/Hfv7QPrKp3SAEO+/HfeegfEf38b7wz98hB8PA+JJXzsAeEHyX940B85ffkQfwzLLX77d97nrcHA+TvvxwPgX7wAD7qxPM2GLAf4P34r7yd96D+8G/expPePLHYH9My0AACyUKN95y+/g/f9AfF33q773l94JB/H1uVrdjIPlkH8l97ZB+o/fDvvTX3t777b94N+9pxv6Ej/IP1kH+D98W+95feUfvWX32ZliP96u+/p/ecvv7/39772t95kDvSg/BQfagPpr79MywGB+AABtKFp++BSuOy9xX3lkHyd94b+9yg+FQfSoP9P71My0gAAYA//gfGoP6HC2v95G++GB2o/vDP3q/7y6D56+/Gg/q43v81t778l98q+/Ag/V/v6/370H379/sDsuA+B/vwYPkb7z6D87jfvAAfAffgPqMH6GD/d+9JLfbUri3324HzV9+S+9d/eTvvngPpMH0D9+yq+mT6A/v133pkH2994zB9Zg+cwfV/3v372IF+dgCFg/iwfpYPxMH1f95q+9//eZvvAtHxf7+mD8zB/1g/avvTYP4SZ03YbpABpg/0vvdYPir76l97K+9XA/Afv4tHukADWD5LB/tg/Bwfw4Pxb76OD+ioeR57SvvAf34779396++/BA/5QfvWlor7w198AAC4UOn979+/9XvygfyX3oP71iD4qB9VA/4QfSAPjP7zSD7RB8/Sudr9fQPiP79H99j+/Hg+JgfZ4P70H9SD9pB/LVe6QANAP1b770D+K+9yg/vAvWQP3wH7KD6d+/Mg+ZQfw1D+b7+v95h++zMtRgfkzLXn73r96Ah8Cg+2QfH8b4Bw6gD8y+89A/EAf3oPwAABhQ4oPy6r0hD7gB8oQ/0/vaEPhsH3wD7RB/L6PnYAbP31/73t99q+9nfeA/vPoPlFo2RD92+/7fesvvozLdL78l962+9X/eIQf0zLUZllt9+LB9A/eCm3Xy37++3RD4oh+MQ/mIfrEP0775yD7X+9nffAwfPoP5aZ1l9+u+/g/fUvveX3vgHzxD/xaMyQ/wfv9wPiUHwTcRUh+Qreji9YzLLL78qD/kh+KQ/78LOkPvSHwpD6y+9k/ecfv0zLSZlm997Yh8nfeYfvBX3iOT2bR6+++mQ+/fvWjh3n71t98ch9SQ/aSzmv39yH85D+to/letNfvrkP7yH0N98ObfDMsWQfIP32f7xqD+pW90gAivv+f3pH7xZD7Yh8UQ+A/vyIPxb78WD9VB9UQ+ZvvrK32xF+yt66hvo1eTgvmNXnlb0fK/eAD/A+0wfsv3s7705D+f+8HffZmW4zLLkH7JD9f+/v/emvvAv3/P73PJ9HL2O/faAfZX3kX7/n9/S+8rffqofkQPxb7y/96j++pff6IfkwP5776998AAAYBOT94m+/TffTAAUzLUUHwGD6DB/w/fYfvpkPjAHxV94NB+zMt0vvQoPkaHyKD9gh+O/fgIfOoP/YHzQD9B+8r/e2vvI/+lhN/ssalL0tQ+aAfbUPjqH11D5u+89Q++ofA0PwSH10D8gABjQ+xvvU33vL71E7dZRxHIv3gAj334aH/aD9mZapfe1vvAP3n0H7wq/yB/5/eXfvHIPy771kD5y++HA/JmWh0P5MH/wm7R++pfeavvszLayH1DD5hh8Q/fOQvjv3177+DD/2B/Ag+pfveX3nkL/T98Z++k/eWfvZX36n7279/Sh+El6Vvv2f38Zljt956B8gw+wYf533y775uD7xh9BS3MYftX3+r7019+Zh8zfeEv9Af3s/79xD7lC9/27NwfW4Pt375ED5XB+yg+2/vpkPxb7zV96B+8jEWOIfxX3n0H/om6xL2rA/1gfB3316H9Wt8WKOpffeAfEf38H7yTD8b+/DMtXvvqX3tr7y7979+8HlmDQfO33rqHzV96Ih8G/fMGDZsPrqH5hD7RB8jS3bYfv0P/6H4DD79+8zf6VvvLEPnb74tLbe+95feNAfbQP18s/pD5m+/5tHefvcQPm0Hz6D8O/0rffxvv133mKAH798ZwPag+hQfbIPl2H619+TB9e1e1R9z33oMH1l95W++R/fUQfBv3j1a8Myx2+9Cg/DYfbIPrb73uHdEB85ffTIfIQPoYH5zU52B+ZffK4f5yrg0HwDD8iB91w+eanapehuH2d96bh/yg/hQf5kPyyH9ZD9sh+Iv2cvvZ33+WH3796HWNFffoAfgAAHihw4fNbhsUH2iD5BEchQ/y4fawP2GH+lD/Z/3jMsVvvKUPwb79394N+9bknhmW433uv7+l9/Jh8Abe6PHdIAR372995xh/Zw/vofjQP0eH4N9+v+8Zg+BfvkzLJX/YqD9l+/jffUvvH/38r76VD/T+/jA+twfg33pP7wd98sh/jff2/vZX3n2H2ht/XhtCw+RYfjf35b73r94lh+1Q+X4f9wP/YHzcD8rlvS1PElnN7hyZkyAj6/h9gI/xYfozLUyH2/9+gR/EA/YEfyX3vFAGaD4wB8N/fAgf0gPkQH+n97e+9rfeFGPNDurb71My0d+9Gg/6Yfev3zuH1gj6p+9X/fDYf/gPwZZ+P3esd19A/5vv7cPlH73L96a+8i/foYfsMP0WH4zD4QB+pffoAfLv3tUH8l9/TlsIRfllPi1hoP7+Aj/Ph+vffBofkMPwRH1Aj+YR+wI/Svv8CPy9w4cs6+h+w/eGfvJP35n7+j99Jh94/e1Ef2X3sOH3aD8Nh9tA+oLbYvj6x3aID9t++QAB//vuX3k778My22+91Q+r4frCPg//ZJ4bIxemT7+fvVwPzuH68D+S+9GA/GvvLwPu/72V97R++lQ/V/vW33pxH8Myzr++RA+IQfqX38b7wPD4D+8nffefvh0PpUH+D959h8v/fyEfU0P7IHz0D5W++2A/pmWq/3k+H+Qj+y+8nffzPDqX3nL7y0D4QB/k/eR/v4zLcH73wD7v+/X/fegf/8P/YH1rD6FB+DQ/hmWRYPk+H0wj40R9SI/0tv/nbiyH1ZD/B+9QQ/xgfVQPwaH1aD6/h/p/ffgf/wP//78ED+ph+0w/S/vbSPqkH+D9/2h9NffFvva33vX7zfD7vh9mI/H4fz8Ppr71MywTh9UQ+cEf3X3yQHy0j8AR8NbebMXjv38Zll996UR8UQ/8vvWX3nBHwr98V+/gI+5QfMP3nGHw196l+/DI+xgfEwPzP75AAFWR96/eNkfUsP5L77fD6V/3DMs34fq/30Zlp/D9y+/fw+Tkff8P0r7+997y+8bnmEwfvwPvZH5AABF+/DMtJvvsoPvL728j5GR8TA/Bof+oP3L796D6SR/HI/f4fZyP32H7MD6KR+oI/fkf0zLKZloAAHgoXoH2d99e+/oo+cEf6X3tb74Uj7lh9Xw/qQfUf3koA7lF7JTeru744f7IPkRH5rD8F+/tI+3EfN333BH6o19KVuB26BUfokPzaH8Kj+1h+mI/p4fEqP5/xytbuPh+Pw+ZkfgEP7aH/BD8FR+cg/5Y7Iv3rL7+aD5H+/KABO/vGgAQaH+Kj9K+9bI/74f4P3lFHy/D7BR8g/eIUfUKPt4Hz/D9OR/wo/zkfMO3jt97a7rZh8Iw+kYfDYPkRHwQj4tB9Yg+n/vL/3pGHw4j8mZb2I+tvvBoPtiH24j5F+/2g+Tvv/wPq1H7sj5fh8qI+0YfuX3+FH5rD/bB/+o+G/vg0Plb710j5wR+aw+B4fNAPsxH3P9/2B+zMsEmv/qb94AF6j8Rh/Iw/IAA9CPvhHxn9/NB9EI+iofpiPxUH8Wj4sR/b/eYQfNantgJ9SD7O+/Kg+Gofc+Rsn2JtD8zR/kQ/9vvAiPtGHz0j9y++4I+lf9aqP6aH7L96DB8B/fI/vhSP7JHyqD6a+9sw/sYfNCPo0H09RbsR/p/f1gfK33l37z0j/IR8j/7GcDaqP6ZHwCD81R87Q/2kfFEPy+HxOj4tR/Ao/tkfD8Pm1H0197tR/vw/IUfkyP51H3Cj4AR+Io+RmvzsAGVH+DD5x++w0XOvvszLA0H5q7ANB/Ag+NAA1v32371H98xR/qA+3vvW332mL4796iR9LQ/Ykf2X3v+H3Uj8gAD7IX9kLD26fn7/Oj6DB+/I+fYfmKP51H7My1wx9rfelf9OwPvYH0SD5JB/NI/5YfB6P29N6JXqDR8Qo+1ofW33gGH6198Yx9ZfekMf+6Ptb7wC7pPR///f1AfaP36Zlpn9+W+/qA/mYfuoP0xH1My0m++kg/O/v70Pnq88c17i2eE6v6EfvyP7f75rD6xB/5o+aAfcSPtxHy2j9tB/Ag+igf4EBkft8Z7s6+/nfeh/vkAAHdH3uj7FR+l/f20fpgACyH7z9/lh/Yw/ivv433uKH7uD7y+91/eA0fbX3xvt/Qj+IR+QAADQfbQPnoHzID4yR/EY/KIffAPoJHw195igDCA++Af5X3lkH93962+8r/eCIfi2zyLSNRj6nxeFq34Aj3qP6tH0Zj+bR8sI+4EfTnumIH+XD5igC+I/X/v66PvX74L99jR+Og/Ysf5llgTT/AEeoR9O/ejQfRWP2lj61+/ICO6aeDy9MqPiZH+Oj/SR8qg/YEfAAPnHZ/PU7ax+hafLM3WEBlepzZm40Hc1aetB3Tmbs/97oO53qco+7nwf2APjL04lj6v+/JY/Y4f+ZxkX74794YB+oHfACS7/3yP70End5+9//fkgfPX3q9k9/9+//uLffFQf42PtZi93959h/xcm2fvOzFgVH0N0dxR9VA+60fFmPqzH1n96m+8fo/6UfqX39v78Oj/2B85feI/vXUPpJH77D7zY/DMtG4fa4PlH7zecnS++cg+rsf3X3mP7z0D/IR+jdGKh37wAHL79My2u+/xHOuTHnQ71bN90O/0S/wXHFEfGf34THwsD4L+/LA/UTXLC+iaH+D9/1R+Go/lkf6gP9HH0sD9KB/1628cfGAPkf78sD4cS+LDv7DvIZLlqH6ZD7rR8eY+RfvPQP4AH8V952+/qA/eof2X3vRH05D/Lh9lfe6/viSPtnH4vD9MABr/ePvvQoP3bH9Wj45x/oQ/n4fc4P3U1+0Y3p+/c4+bgfkAASXH6tD7y++mAB84f2cPvDH00D8gACK/eRAfF4PqP7/Fya2+9Pw+g/veKAB9H9UD7iB/eg/Hsf8sPyP72pj5O+/k/eQ0fsUPxb7zHD65x+DfeFcfIaPsiH+Kj8Nh+uo+ZvvnOb0iH1V9+ex/6Q/jvvHOP+3H47j/O+/c4/fYfM6P+b75t96v+/FfeLIfBv3jDj1FD4Uh/BA/xvvjEP3dH6gj45x/zffWEfeIP3ZEAFQA0AAzo+ImMMUAaaH4N9FULQR4+1ofQiD5YPdHj7RB+85vOjrkcP5PH8bD8T+96/eX/vIv3+dH6pD7b++s4/NcfcuPiH78uj9X+8Z4/O8fxePqPHzHj6VMcm4/4xD5ePl/70kj+y++kw+jvvQYPwaHyD9+mZY7ff3EfWX3z3H3jVZNx9RY++Mfi33tNHx7D6a+9D4+LIfI+PqiH2Pj4QB8G4+KvvK/3qfHzMy1nx8To+PcfH6P0wAB4D/PB91o/l8fP4PgPHy/9+sD3l4+DfvjFLiUvZbyZNx/oQ/xvvMQPkHH/dj835PD4/7QfO+PhXH5AD8nx+CQ/j8fc+PhfH+x15FzetB73DPcnX8tR/Kl5BEfMo+z0f2qP0LH/PD8cx+Lw/fOPDwet3H9yD9uh+QAB5vvTEPvvH2iD9By/ZdeqGnC1rneJ72d/kDNGr7GGnV8RrcH7tj9MR+vg/TMfpX3pni+sD8d+9Dw/HofbmPxnH15j9IR8ag/pEfDqXwyQwbj9S+9G4/9gfMv3utH6zj5YR80A/9Mf2BP5b7+t982+9AE/9vvNAP7kH2vD/GZZxo/igfyX36778L97aB+74/Fwfb0P087wVB4e+/lQ/hUft/3mNHxOD4yR/P/elf9OUhsZlt/D8jh/Rw+rQfXfZ3L7wrj40J+egGjc3YQZhMHxYT5igATI/oUfu4P0Zll1D+/h+5ffkvvpgAClH2qj5sJ9lfeNCfaF1lHH1ej/y+/Wm3ipD1aXq3s2qj5G+/uE+uofAv37v79fD9vR+A9e1EjqX3nb754D97S9iw/WkfjKPtQn0V96R+83/fsgfnUPzXH2tD7D+9Fo/wfvfaP5+H2mbceg/ZV7efvqKP6HHzf9/eB9EQ/Igfz8P0pHxoD8W+/Kg/sYfXGPwInw2j9Rx8qg+zcfQoP5LH14T7ZB+0o+lf9yKPv4HwCD/T+9Do//wfqGP9jH7Oj5XR+vffdYfuRPsr7/Ej9GZboA/Q8fV338H7zlIemZb5Y/iifuX38InzJvv9B+Bg+mvv3aP5UH6Jj/iB/PY+yYfzuPsr7wL9/O+/pffqAfhSPyOH4PD+aB8iI/+vvycPhXH9Nj/y+/rE/XUDcvX21LEOj9+R/yo+2QfwsHpy7+8ABNx+vI/pCfaKPjFH0sT6b+9zI+aYfPQPodHwsT6OB8nA/U8fL/3nwHz0D/N++9I+EUfJlti2GDBbegB82Q+2Ifu4P/L70Lj+uR+TMsDYfoSPgLHyEj9G+8lQ/TIf8GP6JH0hj5aB9o/fQcfa330wAPJD65B/IY/P4fIaPk3H4dj/fR8Io/IAAUf37pH+d99Qx/qg+1QfLePshH75j/Oh84/fwkfTkPspH4sT5ex9VI+Q0fPSP0TH7Aj7Ex+kw+ykfJuPh+H/cD+hB+cE+XzPcqRq5Hzcj8Mx/84+aIfn5nivozqT+JJ/2g/sUfzYP2uD/Px7JSOkY/9gfCJPqoH8aT9e++SA/jvvnX3s77xIj8UJ+ak+9+PMFntmH7D94wR/PY/eSfJQPoEHy796Fh/4k+w8fcaP/0nxCD5Nx/kY/ESfbhPt9H2Sj6Wu9Hw+iSftyP/b7/cj5wR9cY/dwfWcPyEn3KD6a+9J/fi0fcv36774kT9vh+q4+r/vEZP/aH1Ej9fh98A+r/vusPyYn1CT+Tx+vo+Dkf4P30fH4bD5OB9SI/KUfDSPkX75ED4HR9/4/eYfLRPtVHxZD4fh+gk+syfFEPueH6sD/0B+H4+1Mfo332+H5AAFMACpI+yvvvJP977039+aB+44+ISf+wP0ZlkXD/bJ9GI+bSfxIPqMn3Xj/hR/T4+XfveGPoX7+NbfvkOwZmgnEusPr77/n972B/2k+sQfH33xlH+n96IB92Q+IbvOhbgX720T/mZaP9e6HnctepH79kD9Mh/Yw+uYfDWX34n+n963R81o+CgfsqPqIH6jD8Xh9XffzvvshPpr7ybj8xh/4o/oIfVmPkRH6Oj9hh/ok+fYfy/+tRl87AHoR/fk/cYf3MPyAb6pHpQR/Qo+0EfECPjBH3AN9eB/QA/r/vR/3/PH7ED4Ip/ek+vyfHMPkCn6oj6Oh/oDfF/vkCP7GH8mj9QJ84De4sDzKPron4Qj6aR92I+lifFEP39Iy0D/X+/9ffgKfXMPkf/Zdl4ur2sU+gYfGi75AC9ztbZh/po+mvvAlPkRH5JT/HR+pY/kvvTA3j7L87AFyJ+3k/Fvv2f3qoH50j/5h9/ZeHvvXOPzQT/5x4r30g16q99+gPyoH1Mj+Rh/PpPLKfpIPvX73tj9KQ8g/eBfvIGPhbHwbI6hj1B4+5cf2cppXH9Lj+C6v6Q+svvLSHulpxYJ9kGOpU26MfehPtQn4t97O++fI/nI4K8PlKH8wj43h/V+XcifwmP2+HzFD5wx/g/eKvvi33nBH3798vL3TQ/wbPdIAS/7wyj63B84I/7kfXuP0mvRkD/P+8Sx6/i7ioPgxH4Zj56+/pff/vv6X30Ib8FJX9x/p/fq8fHhP2vH77D+UABkQ//KfELz5777aj4wR8nE/uQfnVP7qnyZD6gesrffivvxX3yBU92j4D++eCeRvvZX3pb76t942++2/eByf+33nEn67D7rx8c4+nYfJsPtzJy4/sxB8Sk/3Mf5sPn0H8Sh/YLdXuuAhPnkZ5LJ6LXuqG8hRmUcfg0Por74AAD0oWn70Hl5Sj0yo+OkfoUPheHz6D+lQ8AY+jQfPQP74H4/I8BsNpg+A/vpkPn6n8CD4ge90gBrifAP3u4n7V9+H++Nffzwfv1PuIT/lGf7B83E+o8f6f3uknzDT56+8xQA4af2IFmVH8DT9KB9i9XsafKNPwUH9395JVM1feAYf0zLIr74798ap/msvPS7BYl1Mn0CD/2R9Bg/UafDX3pAHxjT5Bp+uvOuMfZ6PnL7yyD6pB/FA/WafARb4En2MT9mR/40/avvhNPqZH0GD/q+8MI+QfvK1PrvH1r99GZZzE/fkfjNP1BH6l944h98A/wfv41P+WH9b98DJ83A/0hPnaH/IT1Jj9sP1yg/ZIfDX3ooHySqdyx+tu6E/v95PgoTyekZ9h9X/f+yflEPzMn+qj9PR9bQ/z0f4P3waH3ST7vx+Kk/pafvUP5EI+Mywix+Sw+4IfMoPnon0tD8mZYrQ+1ofszLRU49jD/gJ9O0/ECf7xP7v75Bj/rx9XffV4fjoP3L7wlT+fy/IOfX8v2Wh6kH6l97Hh/FA+7/vpX3rOn+CW5KE+DGNkHbOwP/6Hw199S+8AFeyhPyJb2yS+So5EsegM3qhPi8Z5V75Dd5lR+xU//gf8VPgv7y3674B+cQ/u/v8sP+1R+sT+5R8O0/Baf/tP3aH7dT5W++zMtkkfMaPjnH2iT+OJ/p/frifMaPg9H4mj6a+/9Q+/ifohP5UH8iEfOh/JffFTji4P5Cn5oT6Am+clu+QfQ9PhOH39D6Yx+Tw+sd3gpbxf7wfT51R+bQ+ccf0GP5/7+oD/ah+dQ+gwf08P3774G95Usem6HJsfdFPlNH8mD4v9eIlGLW9TyP7FHzDj8W5dRQ+7/vpFPiaH/dj9Lh89feK4f64PwXD/e3qHR85o+DKfwuH1hHxVT56T3fY+PyflQP47lxJg78KesuevD7WP3pSn3f9/op9ww/pXPvnulin3gz8/p+Q/eoOnK9e7ruFPj70R/DMs8vv+oPlH789D9d++PU/KJvErnzlz3qW4h5fsFeBh9Av3ntH2V991h8XE+CfvOPLwXd87AHZp8OI/vkft8PzmH6ST74R/kk+wkfESP6kn0tD9a+/pI+b6fxOP9771t96Fx+vfeOcfe1dNNH5Uj6v+9+k+wSf8+PhcnzQT8PB9Kk+AXbTPLoJxN+T4kZ/BI+AkflJPyJHwaj8Qx9rk/yfv0zLHSn1UD8ex8VffivvSf3t4T0PocgB9gu2FqfkhPymn/bu/eADeM+lqffRTqP79198L+9zve6QAmaPsnU6Az9Lw8ZffEfvav3uT650j+SB9s4+1kfL/3tbHzJD7YR/rDGsvvSUPzZm49j9XJ8RdO+GfG1Pl/7+3j79+8Xve4wfK5P/Cn1H96uB/TMsQsf7GPp3lzn97z++F/ffJvzTpn9HyIj5u+/+w+NynfDPpUHzf99t+/O/f9ZbALDwmHzVT94Z8mI/1MfvTPh/56B97GTP8LmqGfxP3pn75rj6x++0U+OmfxaPvvd5lN7BwfZTf54LdIAehH0Jj40B/5/eR/9wxXhstzVY8wp8fI/WsfsRuxRH0SzfhB9sifV67HIn+/d5P9+n+9Z0+AAfni5kH73YD5dP1iI+x4fa33yanztFa++9IM+e09Av38b71997H+9XyWdzda2PgX7wXD4AB/YIWpmWK33zFHzW7YSR85feVvvoTPuj73SAC2++zMsvvvcuDnEn/l97qR8zlu94fFVPzVM1ZD/n+8cN6wfviLPj4r49j6H++3M+2PvX0P4EH0OD5PB/B/eSPP2QLyA99x9/yp8C0/S/vPX3/8n2Gj6mR8C0/hfv2KPwgH4aD99R+cg/mYfahPn2HxqT8qx+Sff0z9uMV1in74T5y+91I/W6fpgAZWH+8D+BB+mAB6Tdh1j0Er0Kz5IZ9o/eRWfYrP6Vn9Uj4/R8Ng/VIfkgPw6H+N963B+N97ZpvogP6EHwL95ZB+TMsYgfDX3q1HxTj7NZ/7A/xvv8iP3UH2h7ds++aifQG7zsAdYH7194ap+y/eyvvatPwL7/d05pK90P7NfvdaP4LH1DT/J+8Kk+VwfpMPjL7+9j7QZ/tEeTwfJZ9uv78l99EB+lA/GSvhUPsP76999YB9Bee2YfJ4Pnon3Rj+jZ8o/eKmfi33qpn4qj4oR+Ns3aAg4bIPab2pNYooT6fA7YAxhNEo0IauC7pjsBw3RskdLdCzGGwFHrjiUI+KEzRkDwGCJqEioQfsxl64VdLX/eKkTQsNCmUJXMsMGUfuuM3Sx7Sxa1JX9mnlCGxCMW6GYDiOklPRs89LcfeF14EgRyb0tfRY0Fsd+1plQg/ZhFC0H6WQnADtnw/Po/pars+bq2wDLHdn/icHaoQfswYqC2DLIvS8sDGoZZjUIWcsma8GKgiwy2aMiy01+GWq1CYqmEULXEZY2QB92fZvlliWKMBEd+TXUJN2frpQbRlr/vFdSiulBPqEue8O9nwDQnsZaLs+3RskNCQlluOz89GxBMsz94KuULpONEy33Z+K25+qExVMF9mCGeTJoQ2ta3RsOTLNOQCOz/fgBYrgqmWgAmfuuB9QFpoTls+YqCXTLcdn3IECmAjIc/ABMt+ILRvMrQkfZ/PzgNmW9HPtJQGM4EuZbFuhR649zLbDnz2z5toTfMti3QRQtJ2hKWRwda0PwBgzoELLXjnzMQcooRP0scOf1tgSihMOz89GzR0IcGWMUjFRo4Sy1z3ghYxCnIkHPo9n4nJBzoQXHxPwYSYoIuhEXpbiO3/7w0VAfLLHDn/XQn7Z/9AwDOfhLLNcAGBz9bPvjA1i2fhILxL71CYYII3pSAaQXjnP7MIxaYf3M4s1hAAAQoDTVn3m+NPTlzn52ABZrBloBoXDESlrXIMYkbFlydgBMyx5wAUx85V55wsB7gBw0v7KVgQI1buDM+OjDIINz933hWSE57ZYADHaOtPAsEUlLyHrikrRHNZnRflrVb2it9RGMvPvO1hX9DqK77jw5jAGHMMWmH657afT17R6Vz+rpDlc+/SjlXP39wy6YZq59zefEGjZXP7MIxVz5ulAtc/5AYq3nymbzK+DsgDJc/UAAgAAbUB/OfgAAH0AnOfEv3wMw434/fBNjc/X5DnZ108Y317aG58v5zRuf9Thg7Lrql1Tm/XeeQL7s3Py5gPNz8QACTc/+AAwRD+dQ8do+Cm+orvwMIHv3ln4n5z4u5/3HvlNzTmcFMZPiACsbikff/u9d3P/zn6CAA85/vgmSaDcOjrnIziAA+5+hqXlxP51RZSr/oABG5+AABwQGDcPNUMnufhZX1VvTSaZfz2DOiWtLyOjyKgB9z+hcN5lfMo3of5qxuMjz9fKcMTHSo8EgARHjivdCtm9AwJwyjqzLT8pytz8AABegEgkYSICmiBQefYgzrIHhwQesgCiHg73POgF7ux6VHgnchfhuk0ZnlpsFEz1J0ruz3EPALDld6RcN1bSyO580QuPDwXqlxdc+rfsOZbTlfS9d3Oe/5AFEQA8590IX45vIYR3elsrmex58cZG05vQgeg4QBwQYOWCLhv5yvYxeouw2OgNus9pNu7yPCDR0qPOrz6rss5zWNyvyvtmLn/GBBwaNtu4HIkinSVdgIRJ6PK8r5HyAAX4bsWXPLYfPK/y2H9o30ee9gH6LUa859AbnAAAWoCvXBTK3jEn1udONz6OLbxnvHYceDWBs8yHz8b5uI8+hlDziV7L47oD/BBFghGzAf5rhwBAJQABG59VKQrAf8uDuvz8ElYK70YaBLyDjWncxK9XSRwsCOrgNWAAvP2JK8Xz5G5+fDYy279pBxUQ3hpzL5+mzXH17nVB7U0UTio2weDnvHo9ImRjzn/mgqOLZ61u2nw+WljCoIvnhhqNYVfhCDLWlk9oJjACOLZaOOFYlNjd+uewY44ck842ma80S759pwLTz5Zjc1EAQ+fuqT+pw7QAA859YWH3wTHQPqPPUuafsiM5GAWe7IUnzAvVePgRbM4i60fFyuRy/23tqHOAAIyoddHQSXKuN5nNcXIBfhvOXDvFX2WN1zkb8IAcEGPOfdNhoX0zEAFHesSLHG/HlaIocY8CAAhEB0LeZBbNRukcGbxchUFsfWGQ03LAADzn2bnuZmP7mdBtspUnifCX+4c3XA/hveFvCT+63nwXz7tz11SfSG2zsb7MIwjKnMBIs6WjC9RdhvAX/5z8IF9z1vG1YnZ1jzn+qwA4INRABoXD81HhhIwQAHG582r2P2waAv8ON3S6dNURdc+id3rbYkMK3ot5Prcnc/sPDISb3QK3W3dvrdsnHK0RwIAJ7n4E5/YMBWLfG/HsvARcN7Fz6raMJqHvKvebQcQX/nrXp5/G9GtbDPKVmnn3Tz7L59mXu82g0gAWnn3RLOVMMZe3GoYvoPtUfdoL6MF81APYBfqDbiwX5bz6BWul8/PNLtgvrgX3CkYcF/+aXJpXWB+Svn2e4dRXc/IB+qz2/PwGTxZQ48F9V8/vBf29h7Oa2g0byW+F2GNHwm/P5gX634dC0QLxvSFrRdhqIX8DnETFhMbhuwfeJ+yLMO0wA4INg8+fBfF5R1n2A3YfqW/Bn70hfo2drIX0kL78F9iD6K7dYxnpFg/seBrbeD6OljV5wAL8Ny7F7L5/7g/GBf0Qv0bO0cqJzfNQrhaefwbh+HnzLR9gmPDqSmBffs0dBO+bHZ8z3tOAOlDnfP98H2lz9QAAec/Fw3YXP5AQvnrW8C/Ylu/ZoagvlJw8NQ4WF+7Lerr36A4y5gIIABRqsHoyXmDYsucgg7juYSC/9vCvw3gfkbYX2qk87oA1Ddo7m199lFowkL+mF+kZ3XqvKLRjDQFML7C58r6fXvDhn93Bw58t6+LNa5B+wvlvPlfT6/CzeF8rlHNO7sNBxowFaiMgABPC+ARfVb+nSXB2AFoF/IjUwRf7snzwfYAAEFAW4X8BlZfStad3gRfqK73TI2wL4p0tSS8mAAJPPnqmqkAGrKUMUHO+A8yb/tx8ze8iyM2pHCwgbndr+5eSL7L59XVOFA41Iv8LnxTz4pDszBfgdg9IvvDaIyL61mCHNvc3DCB9zGACa2bzk9c0PAzDnPyQpli7z6BKMTuRrtz/jhpwgMLz4yh/60HL3HHK3umZybe9yh9vv79BfYpZ14X0uaaScOb8/lhf+UP95txIsbpGnWqBMIj5lAplcONz675/3BH3nAtPPpqHwcsaiCRBSqNjTmzh9UX++Cf0KMzMoirzXAvvcACDz+U0P6oG8jh1B51Fd9HG4QjfRVXyJA43P67czMylS0Oo5OZmUGlEBIgEgW+tc+41fBJbrCbvHlhOEoFYifR3l74cMwRtI6aojB5/2i/jIg4UgRhV9XQ8SmUJEBQefjKcBaz1/kfHDEQkBUV3YB57MXwfz/rvfkDfx5Szgv6fn3Ap+4TfZhGGQjnIXs2gSC2rQqM8hf6uf1EY+0w3k6B65+krW6xfG8dhzwPQRPG5/TC/NcUK/4LT80FLY7F/IjVsXDMoXmgX7qlwFh9a+7ahfxAAeoX4Vz5lq8p8/1HDfegJ1t0qL5jF/mmGn+fp1h8lF9vM8WKMWWpMhfyph7vLJQ9IMM8zozF6pUwFmLXBK4bzfjHC/Ak7Ybb7io++Ca2F9oMO23ce+0VFd2IbEQADni/hufzib87KwkPb2IAasAOe7aIvsvn/m0ZDIGzi/khcGV13VLvnrSKF+XS2N9oHovkJN2wL9Th8x27IRf0Iv4UM8vEaMADq8+A6v0WZpHn3YY4a8fKl6vPQBBABIb7ML//0cHreQgLIcZQ4I/sQFiMYNrGKhfPCz2dt/oL4yWC4i/SM7kwASnNyN44fW+EgAKRfE3j/QX5WiKp5/RouTufs3jrkX313AYl9AMfsajBsgdPn4uL7Pbfgg8NufOIvg+Hxwm+kSMAuAmNwrAAP9wzTY6fF9iKgGRf/MQSE4zMygqO85i/NAjUdI0VI51XfwEAVeOeRfIPPoBH9fQ9QIKrhvq6QHnPq2AFML9ODNAS/berojgJ7n7Qeb5yPKmHt7wdQvl2L6IeHLrtXhee6vkzJ3WL7FeHG5/wMGxKAKX4BIgGDz+81AXpGbJf04vl2Ly/nMs/MgcGSPLnUX5zgoaL8oR+r5mJFjBahjzn/cwafF/ii/dXFkgAMHn9Pz+sAAThK1+Ay8R158yFL6Ai8RoiD1wMUvhGVNHtcmU/rMG9Jfi4bgyX0ZL/kF+3SHZ0Z8AabtI5Dz/7F+Q0IuO3Mm3uzI6hrQFYg/IBZZA9Yv2IAPNz+7fBaASCAAzov+MX2r4YcjVdS+ixfqi+WDFxlWail97gAYpfJx0BCN1VBf6rM2EAwef3XP5Xx5fV++YMjS+CAAY0v1YgAhG4SlEJEAyRg00v1OK548Js29bkXDYzURAUEAIwELB59eehFhfhViOFAKDz91QAjKWZxfYTiCRYyvGyhbeZS+lPDCmCTTd7j1czLEbS/6efhUMLN+7ycfDyMl5HZ0ZpgASbn9vYc5qumJuUeDJxRwGX694fWDvkAA7w3zAARTBHeUDoKsIRvvNQeJlrGOK35/fBN55PLpfr/bt6+zMynDyN+S+rpfM/tgl9/JF9j37VqakZfBsgayAF+G+WACBi/jWiI/Pupw6O9f0l8XlMdCjmwv6YX8uG6iIASi+GAAoPP6wAKpL5piPqS+qPZziQ6aXwQ14fVfgg8gJfN5AUTNz4ADacMAdmHI1G6R2eTil4HIkA8JHV+DK90PI40jL4bMMw/mWZfCRAPUX94ADG58HS+6oYDJl0bn2YEbZl/+nmc2AWkvq9gFCL+zCMbHGEhvcsvjKCbeEbvSOJOHDHDrVbtXw4YAE758APgEI3H303iofIL8BBMyNepjH5KbxaX8tL7il86i+wefwV5rsX0IL8lR9s1mXJf0Uv2KXwhG5pseLhuvZf18Fnb877L5VR9e0HwKjzRB+WOycL77QDUC/OhfXmYEQ+elIEUF9HVHTUAKsvpwefPHfdR9+qfbXdwVh8Hnw3kYkWMMy+BWIKqAQ0X3tMopIDD9m2nD5Ph1bnwrL8Y3Bgi/JAAHnPtbn2mUXRHdIy/tK08Ev++wKO9fpc/jyky0f7zp0uBxIsfFsWd8/RsjeaAJKX0BL4yF/TgAbqjNUvloo4/EYibdXvu2AnAcv0aX0HL7V8NK+HNpfbcvnqmpu4dDy6y2nJ0AAvbrXwwhwZ2MNjdTUKZLBB/VAwTL/QL36tW3sj1kATx4VtL/M+NBOIfkAQV1nAAG0GnbTeohnljFkgAEbn1J3ZEPnLhvPRf6cv5WX0tQYOy6XD2BS3tqNwO3fOofQAChy+yYvju32nnxTscUF+zNeTkAYXPl6X98gHsl8eQIktI1svz+OmDz5Wl89U0C/DgCAU0XzP7Hf5+f8+Y1AkV1yAAKvz/fiMIcGEZUYIvnTyLHt6e0Ni8/5WAsIv75Q8iNSgstHOGAXdyAv9jw2OgISG8Ey/ZNLQCv3qX7q3YM89SsfINPP+xy5gN3llgF9h8jpZfNYASeX7Xt9H7duy/F5fhZ69AvWDz4ZCOaBGFj+6Cdh8X8kL6Rl+dnWSef14vxvt81oqFvMIcHiiwatR1gACHz9I0+bOQWDNCYv/czsrxDY9M7C+Fd3k+3iUq1Nefnl9LS+xFfeaAC+AJIr+nl9m7XixhLvP/bo/AEadNTwABHZfkoRirt+gXqYAC5S+MyAGLXnL+x4r5yl9j8+njHVWPtVj+QEZcl/4gA3JfjzB+uX8gr7il+OF7dDkAZx8Ln1QL7psOMbgf+fSJqAYAAbIAAF9gaWjAne0AHDjqtL6YAAjc+DsuIfP5BX7gLQQjemjvWhfusv84gFFwGDMy1Y/jPdRUvkqX7oAGMl+dgB0dSD7bnAADbL55F/fKHo43/eDn/b8aQdEV/jS+2FffBAYoX5L7O1F8r3Rojj8LQPiX3Zp7s8NRS/zgAxUvxAAIuG8ll8iy+apfMsvniL2trKAi8/TmY1AiAAZBXynL+zCNJK+D4vHP9xn2yBuAXl+9K/9pfhC4AZX2zYZN4PoUT6UA0haffn0+wHul/sbXtFfJ9FVfg7SVf26OGy+llfy6cJGX189Y7JAbK/5UkWyvmNQD4r8q0/AHe+sfoB3tk4xG4FcV9rLXOarv0vkDcKvz5n9t+zRF6pIKvwEE4Xs/Y8OdgBiFfrTLRiAM+wZ/l9pruutPuBrlYIwQa/Q9ObBHiDXHd58bT7kQD+l/SenZ5OPIvpNGTNL4ECOd8/+ZfaoRpE4966E6F8yVvk/7mvZ8mXzjCcz/uuSBfgAPL4dQXyhuY5kT6BGiFfSIvpGXwTGn2nMny+747CuySbnxvHYRlQSOH+pfy4Vx0YGOuEusiCxn9Cj8qAHUQA5EhB5/UT3RlfZgRnlX2LLlW5/h9G41DfaANFXxIwYkWMLfBr68Qvp5+XwdlwH37fKHaVfC9CUHS2Pz5cBPReAYpfY3Pk4lyO6fR0/qb6skjmZYwM43ZoYkWPHTjijD8yv5zayv28eJevEvniXCZxxTBAgB8TOPQHfKdPzNnxLn0QABfF8Q2XG1Y2qvguX8fU+yV+/qDNeffidq9xUEncofPehGaTT0fmmXnwXZdkWNuDv2jGolPLiX9SY/IO+PFuhujdIv7QI/gL/+KOqhHdUurPPxTBHmx5Il/V0haBfKqAaQtPtL4ciTXaQuBfgyXGSX9nNZzKMW8/1bYx5xll7AbL4A2NB0BDVfhAvmZlPHL6Wl+fnmoWLGiXuhCzBE7wX24ABjhfA4RxwKLjgErV/ai/FRD6XPyHn64B+EAeANPMoDa1nedX0mjIXe+QCHTEv8Fx1KX8xN7nV8Lq/PLTZUBl9lQnL+uRNU4+WInrYJ5dOPbL8Ni7AK+N+fW/P+2VB99MUFh8y/LefhgAD/n/IDF2m6Ky/3VfSyIfgAHbL67u6dy/7ZfHZIPnn/ZL61SOdOGWAAIfP7MI0er+3V8KoBjhfDPlwuy4rwA7JAjc/Wq3opRjtc0lL4za/Qq+sMEfPPlDXz1L5SCidS/vJfnfANgXw8ncQ1+IABkNfoWX9Ao+kr5mV/wyNswjy6cBsw1pL8ykMsAAsxfkJxxowL/Z4YADHaPK0RF4v+iIwX325Ws9c/CZKDAAEVXyjVcMF+XMBmBfnsv/WT4pEfjAjTC+a8ABpomUgEjL78XH0Rvl4AB2XGPwx9UctoDDFvaoTC6vn6d6Fz9ZPORwXT9PbRxqCI6Fl6oTgnYqIqvbqvo+X3WuDI1/ZhGLTC+hR/EX9f4P6l8zGe48f24xpDX5bL+6X3uq+Y8baoh5qX0QAAEfBEB6LNfPUvsEI2xr8rRFey/pZFf6vkY78g09kkAii+3Sg7GvryX2iEYSIAdgBZlfyYRypX46MD01/4C/v8jw6AFEBxhr9MTc4i+hzjpGvxzX0MIZ8+MLHf4arqx3mqgwJr4O6Nr8Aa8siUvhlAJrz4chQJEANhDkmvwgzzhWcK1/jeHrNw/UvxOs3+r4q19vjwMC3WQv5LDuRIGJl9TABEV9z6vkmX61r+BuPLpw1UnL+csHn4wADOF/7dxovA8AAVnn1BuE8F/0OGPTnhKv9QbnPEdDUsja/jFfqgKJjcA0YD5V+vq+MC3UDgdDs0BL7618bCH2x3PUv29X3/v11l/smbJtfRuRmbX8OYabV9Ygm9ar82vjeO6zYdvgAg8/JmvKsmQPOIYL4vl9PeH6hfO4xvbXxJr6gcC5IhMtfT4vqlcO76apO+AS+Qxfm2v9mJ+fm7ga9dc/pNfRmv2VT0nY9M1+Wy/ehHlmv4EX+Ur/a+PK5Gzx3qoDq9O3Dr9Cy/Pq/ksOHGANBiPoUZDl/oa/Oq3LMvhOe/iJjtF8CBHnhMuPPpVX1h0Uo1/Ya++9AZOvzDX3Nz5B5/QE/BcD0Yvy0X8kZ8KWs3EKt/LvWv0HX4ivuWV8EC+moAWQvykE0fyfdV/c6/KtflvPvMQ+Dr6FsM0eAepfomv+8gO3p8cOmWdetp7OGv5ZX1Z4NG58fK+C5fLovpFg4pEctl8Ua+sNf1Gv/HX9Yr/WV+YRGgxfK2v2DX44r8nPt292OJfWn5/AX53z5DjLvy+IJfaBPlyvYecrM19Ep39CjomvmYz/zI6G58vq+xdf2YR5zLPoUf51/9S+fkAgzor8N/QRJFmO9XglD3SRne9X//z6o1/2S/7J3Xuvr7X9mEeD9yHa/R5fo2d9XX966BlECaa/TKrcah0DcM7z4k3OWuWaGnwkHy7i2WZ+V7dtR3+NfvvwUrXx2ACRV+PMH7ZfzE1w3Xxqr+KOD/rhvjPIojv4z2KI/qcMsL2Qtfi2v4bX5wvd119yC+tpEMhTzS58KXTvyO27HcRfD7oEst/CZ73Os1deFAzdXXq+I2Er/41/wMGEZU+SvzrN0gACSl/qG0QVfZjVvHs9LtaB0in8/cufisv8JX+Xr7B5/5XmINfvyv1Gl6Z+bZOO70s4lrvGvqgrbIr6g182TGBAjOvgQpX8UYYyWBelBS1fhsXf7X4U565TvcmfFp3W3X2pX4gAEMl/1K/5BfEPBirO17mbQuvMABF9fqAAB/X6Pr9LLeXdfoDdKqvtqI3kr4KV8aq/R9fEyv9jw7xu6fwCd8+YpfGsqIA36iu5ykME6+5JfkXPgQIwNL8w/OQXfivzxJNp5gLwAGJl8/C/l5J9sqP6X+JL4JACMZfeBDDuABCN7fAEbl/ZhH1WAXyv69I1MACESc9wAGlfLKgMl8N4yFOmO6uKB3P4KBnV3cquDzQCGS/KHpWfS8/Pejz8aV/TBHKtfliR5JLv0ObHS/jlHWTzIIRjJuG/L5Ol8z5GmZfYPPkS6+F6ePl8bc+lpfeCvo0X7WvfOV+Mpx++f0wvi+X/yr4A7M/8/0CA16RnkX43L5G59bxHSOE/S5s3I5Nz5EKPKpwxufm5MWiBw+tahl9G6+UFfQAv4ow1nlrkN902G7Dfo3P8iI6NPRlECMpxwIAiPHNj05Ib924M16+0Lrshv8tX1ur8UwTKmGOmAUJR6qX/Ur9Z5+mi+u+z2Sv77ABEb7BECUK+bpfQdzX0XxaO9uato2r9Uj8RvyaXxwAEkF+YRHswjyOe9Gd/2iGG5+1G/Glf1qv0oO9uIfX5/47hHCUFl374nwy4cZl9Zi+rlfmH5wEn3bm7+IPHq/RVf1JOhRXzGoC0l+86ntjA/p5mY848b098Ngy+UDfGJh+sXw54Cc3Uf8/tlfc5niRp4jyxFF8HS/yJAR0v9Ao0sL7Ol/dS+QaWfdBtY39gr77jr1OH8FfSsv+OI49L5smMS4ZLI72oKNpX2mu7UdMFoP8ijSXPk3FH9L7DMMnsBAZfzeRxdSCZYdBl+0C/Ox4t0hnw3xvHZQV9wy+CCACMvyAz0jL7m4Moy+L0j/Kv8PI9+G7Z5+yS+2DfQEvpVX1qT92usaPgWezrUchcO4LL7YF8NXfQ1fYWv6BX7ib7/M9153At9C4e0431gr6SV+XG+njliKvggAGRr/ncMIRvRtfWJvr8N53z8ky/11Ho2wV0v1g30HZZ4WPAy+YBCMthsGX0Cb61l8JK/1jfkxv6aX3GT69sOEm+mjfJxv00d71GMkl9P/HCjfhLoYK46UCdODNHBiOVwWqR1UI5uikRN+KYIN47mbh2QAIZL+eV9e7HgQAnMvxrXzGoFLLf3K+ISN43P8FX3Mb6BKOUxHATfJlhs438Eb5sID2G+AjfvEgRE38uG4Hl+MbhKTfopvrqX0pZ886tgi+2Lr7XHGQp16b4uN/wMGrjfdvP22B9Hm7YKc/6+/9fxkv/Sz8/16HF/1OHGjAZNhpG71WL9TivHpmEhvoZhziXzwkdtN/s2xY1rhWv5eX41r44INKK/NhfhN3+8ww8r/jMOcS+ybvfav/2gyjL8+5+0PmZsvAVnv/86iu4tMMCbhdMIIJ57Hwx3L6djGRWf9BftBCdEXz5kzKEtR76Ezf2laBCN484ZTl8zMo9xfcuXHelIeL77F+1wOTF3tebps3/Xz+kp8qCe1wAx64bMI5Jp0ewfQm+59fhqv6gb9Zr/JV9vZflbvcRd3sxxML/EF+W8+nVfchvlIu5wN701+56+szvPi7x6PROEtoF+NK/g9foeviea1bV5Und/V77zf+3cYNwyHr4kWMvm+UeDd4F9QX0Br5j19fc/e83b7e2P8aPL6nbOPwBpefdCFl279xkfAt8tP3O+ANR5pHLwoBZzF9o2q583TI55Y8oXgPV58Qdxtdfbavou6wjXsAt+06/6+fugFgkX4FT8FHNOxitlfKOvkHNywMJJl9LS/cdzwVPyeoORb5XDfnZGFBf2YV0cC2wL6rlPFjD4iAzpvkd01fm8b8d8S+y+fKd3tGTYyL8t5/BbvFl3jkgL7PZeXuOnF5U+vbDAqqtP0Zbz4vgCLhutNfHeR9NX9PccXlObq/1NfTgniBo1hYdsKPUuOd/bn4vz5575vdj/G+a+bs7NxCnAt1Zr7Xi/vN9ycA+NnjbPQoL/vICMbgGjjyI1B5QwSL6UncgrutJzkCp0w8EYAE8E/gC/nxf/uvo1X0vr6N19si/5JfEix9PXwUN5yENJWckAAImvhLn5pr8Cl9r3eU+fjMQFYo5tkfit+orvq77SXP1bn+UN7Ct/7oBMufkBvxpXyYL6/DcR2Aa8AH/P2ll0CQd259rc/srfwXsf1FRug4La6K2eChzGYv5+X0lL5tF/G4Ov7vVWX9g8+BL8VTdsC+AHvZ5IvLe5h+bVXeT8/TArlVKUGn9uMYQF/ksAQ+fFIdxgIegE5lzuOb6whf8NP+AXzY3aP1+jW/zY7KqAFB75fHr/NNDW+Olf5UZq48AkADWt+bPWmb4yl5o/YzyL6Ie8MgX6FfNq4OKX+6r7JgBDW+5rfiPHBa37nl6Gt9sG+8Lligv9a36zkdut+py+Olf+hR1ENRwQcfdS+3zGIACqvmZJZcwDB593W/t1fnfP0oX80W70fCSac1ajaO91bxQswFaZan/bPDQcGvn/nxCIdcl8La/zLfm0vz0X/KwEw1+YABAbfqmhx5w9lL7wawxW+mLHUOB3q38Nb8UFiXW+ox7m5MEmLwP8c0e+rmeWDNiyAHqX7bscUwRg8+3Sg45vzTX6Vr+fV8/C6njfXSR/nqwCL8v+PVm+r1D7Bv4GX4EUAXDu4C0bqGe1v0vn/cZaRYNya/egAbPP7MIwxOcpt/HZ2JKrb6HlZ6wCnzzSDAZlffjI4AMbqbiL+yl9sQBvFf8+RpEgPDGctp9aZmNi3gsZ/tX3bODe1+YAB0E7yphsVXwlL5kYg7lxNyYTG4GNIwqgCZV+X90kHPF9thYXy1L6A7hg8+6JZekJn5AHmYaEl/3G+zdfeVdlgI+kr5DF+W8/kQjCMqfvn6Q56/y8QlvgILqBBBuX99r97TSA8DR3rMMvq037nG6Hl9eG+3hdYORqxuCwUaxjM3Tm+6DNz3kjQ5uTErvTvW+eIvEN4cbnyxr73189U0aNjwJl4S32Dz6kKPpYOn6oBsgY7R/898aBMUrAS7f6y5lWTB0r/gV9Ptmshftuv1hX2db47ABfhv9CjKwsQyX0YUfuSeAVGBOop2v1nn+RIEU6SiG+0Qgqmv2yX9Em6nwfvOB+z2QgvwbDzHbuyV/zq+yBfAuv1VAI/r76PCbC//Cjw7Z05Yy9b4o7hMm+0fFocvil73o+BsICWUAkij9EbxY3z1TQD18mG+zVfV7AZcN99L9x6sWmGOVwzAv4ERNyL91ScR2AOUAgNvnm2uAL8+59rc+KlfjAQ2lI057c759hy+MQgGTcKg352AHyIADxPY2g/rZrEE8TAQt8Mbx2p1A14vumX1W0dhl+ui+9TfbRv98E4q9+J+eQ3eFhf09vpaX11wdAd8P5YW/XdOWJ8XysUYIIBTAAYcPyAvx5zzdUdk0uDy/b1fgNv8ou1QVrZt7Jc+LEnZevjeO+nz8eu5G6+7rfMjEZcKymL6de9yWOBWPd4v/MX9mEZyzdsC+rnPAgvu+3+/r6o9mCC/FU3xIv55z4Wo/gU+oruGQjqE3n+nxh3Zil+/OfbdDsgs+QGDI773DskS+xFQfR4S7wyUfujCvpa/hzfNh9mFz5Cudd0PxXHJhfdZv4DK4wV5VLc7VD0zfQJRlhX/TL6ll8QdxaQsbZjtpXzYb+n5/gwWdR7FiF5ZX7HWYHl/0O/h5f5dvtP0Uur+Al/vW+SFfipRi+AM+L7ndM70oxtfXcv6zXxvL6EV/DCfZnbbO7hM3xaYdYZ8mlusnfLphmVz9kRabF+Nc+QUjPXPtCo5bUcEDcsFfhA3Sb3zmCzwV6D0NFO/nBfhVAZrn8oG/om8J6Gjrfxsv3c8wHm5uN+P49fgAz0v9aX7Ar/fBPvS/OIvc6cGVgDX8Gd5/FGHkKRjSvrfK/2BfcN/cq/xjfRcvxdSH5r81V9b2+UTfFPP7hdDmUfW45/8BS03MQhsw35HuARTuPG/qpfWWD8M3+Dd6rKOnqOOIrCavjPDypN7twO21BkajJYWH7n/nXa0N+aTe0tz8lekLn6lb9KF8hWOyDfT4vpnX5u94mIDNaXdzzRtv0/Q0vz8xE+Ii/zdfmzNvs4wKGOsm8Ja/9CjVRvrSX3m553N1gu/xO3iRlmcX1nu5yRPth2jgxVPPxpn3DsdNUTvlH7rfG5TpsX20r+aAfnRhaRP4jR8pS1Y3AWmuNO+eufu+Hjrn1NL91F8h8vkpvs0v3rn8NmZvw8wffp3PPRXjsX7qL/rnsFTfTT9bLvqwXRaYcmK9pKAGrfRLNlK3+Gr7St9NWO8AXJVhyDX8sV6FSj+6+TVjf1v1rn/KkjfqiVojjDDALu91XzdKB57PKmGUHftMviKe0ZeYJF98JeoK3FzPpLTDxL9FfHn8+wHANmji/jn9qCOLZc4O0Dfoth6x3Rfx10OQ2qAAPPHBB8bn2Pz7JKfu1A0NwyQv0Pn0YC/A89iLIb+fC3T4H26YL/9P26xf6CJRPP+Dz+NCd57POu/RrHPeTk/w+G7880fNTHEs48thjhvYAAG9AD/n8Lz8jP0YaB4874Wv6N34R5/Bl/Krgb+flLPzj79Sz7+K9n6/2RfQyv1wq+474cjVqC+oirf+/JGXz4L9kF+wq++yAmB7yAV3WQcVl9qOHnDfSzvoU3/bL/4AD9G/LEz1S5vjz1WL/jwew7T1OMf6vsz/lN/edPvYCuVRPEi7uggIWEH7d+OSAolDcTvgx7/J5/smMbdwXMzGJhxo37sgHU88/c/lRfxRhitX2zz5R4PjeHsTf9tv/DX1Xg4Lt9UrglV+KiU6cd5dGf1SOfVGqSvQX371n5+nqWxFiy4vw3L8v3e30fr7X59gHmYajgBeqFcPQL9MUuRZhk2zU1v+Nn/Q0Y2oBO2QgvP5Cv2s329r8HaGaR2jbf/KvsA80ky3U9s60I2SvcX3vo0wl9/sUtH4OgCzusV0JvVmU+1itmLm4szji5zrJ/Lt5/pYAABjkya6Z7YtitWZ6MszWWZ4Yd6QQZ8sB2TWJWrDk1jspx58buUNxBQIZzxFBpywAR77pXeXaOgqyCf4FHB/saaeQIBTXGObkM3xMT/FNdCbNuTXwDzx1320OuQAF2ZbVveZszo3n1Gb+NmaE9966OhtD5IdCT37dOZmzPtc/BPfNtB+T32cObE99Ke+z4Hq2Z6o6zz9/aP3A5mozrssh8Yp8VNe0rf3ZmXmD05ZqXEGVXimPc+EHDPf4nZ0ag0YVrfWu+rmByjyx7ns0+VNfDLNcBHnsziJptTWZxV43KfxTWR5zKOZ0Kt0Nntx12oe/v8j/U1oU62fFalm9LNK3j3w+4CHM0HY6fyAviA2ZxR8DlP75TBdpKIsO/CiD/F96Hn1dNeOu8/0tMvfVVb2Nc+LNeNm+e7gfpDNAz72bxbN95LO4nvJgHyWHQj3xD4a6IPMYPqyvd01hhoypfdhW/qX3sPfOz9tatwUeDzQCfTWPHDNHvwQG01t8yOg07WhczVsQZ6txHN7OrcpjAuwj0c32XMxKOc6jcuX2k5vQJB/QE9BJ8QACvMsuPrPl9vXMyp3P1PNYzXc5v/IAZ/w2tUccWuGnuL0QtUMRj3+TNZVBbHOmVPj9vPhub5BfYls0p4A/czbc3v5u5nzbZmvfUgOZr6NbiPMwPgnyvsV1XCr7fd+4q+z77dEaEVX2l1r1QNxWc8ig8UB/RTH1R4i832Wa4XmdQET3LwoWzqpDrxK1DPG5ftKhPCNzgSVsEe1vN8vm/hABxr7e83iBa7ElcQWvTreT5vkogOBa/DG5+98ENmLg8qPvm+b+PmfzABxnWe+fT83xsyy/N+L8++jePSDE/PxR657NdBavezWy2bszZkoQ7ItbxjeN+e1zTGp1+pw1x7+vPeB1ekjrzj9xRg0fz/4jNObXP+D2C3wq+2E48IoDKF7U5r9LZn+lgAAFfWvHsqxwOgM99ZzreLmmqe9rHvsZ63DfaTutm6ODkr75pyYTDAWdZ72dNyECzDc1thbydfY3IfeWAO5rclXo8g33NbNEBCLeLyDNBZ6Ra6x75pvsz7oJ5r5D1p33zpV6Mb1AFnpGz881hRb2wWcx7Nq94f/PMhew73xYIeIoP7vWSqnZ/jqa8tVlYoXOSg/T5rszB7Qs9wL45kQyC/cLAYRZgbQ7fNeqqeTmm+KDKbZoSg0bfbyBNrP29Bf8S3zX3ywYDtvvkBetTdBfv5Be8ohGL99ov6HCzx53sCa0kQd1msxLeWAvbt93xbyqldx99WmXB43JDbtyg9M9+LvufSfHDKMRZrH3yId8IWth32iqv2lpgpb4P7+IWuyBerwbkd91Jb87g/KSv1VeRJnwMcOJw5gtaqL30LX8hf5XrBf35gNe799SNugqyR85jhay1QcI9+9aXnrrai33pb9Nnsj/DAvde77jVBv5wHItfR1K5e/RlvwdkeU1NItbDHN9FnRFrVnvyi+xPo+UWsCve3DHsUz3bS8Adaw0NiMlbMr2i14ILwO9Z/SOr33Igve9B8La2kWcuDMOj3RaDmM1tTQNhD99f0jP3vFrxxZ9b3zAH8amskQ+Gtzqyhtxa3p77eq8PFmvqDPi1zOs7syxPbJQ3vAE3uGexnK1+bFjOsZGQUVfjEAP8AAQH+88/LTOZRzM1poFb9QW8YjeA1fXw93sn8zu9ktf8O9g1fezzGNhuzu/F1ePO+oreHmzxD18ks6zpYa3O1LWx7dltHoQPyyIG3vCU0PKSz7S16QP9nJ7LevMP31gvYB1zew5w/efeiuAnRlrUoviZa7yHeyh9crfTgvWNXgqH034bnURFd2yTAyAhshYINPbNF+GresMEinSW5Y4VF8F9/4TmGPfT5h5ug7GICuWvUHnC7jYT1hzwPc9doF+PPWPSzBQR5h6xne+RC+jNeqPfNgfo6ADPOXsD+hNnHA/orB5wP/0ZbTF+Hw/Eyz+/V8Db8AXsZquZiBzvrfzgC3M5RfbdW/R3XRtr2ZZ/lt8yF7OYPZengBfYrbhBq/Dd/mHOhre+prlnvgR00xNh4MclB+Kg/CQ1pn3y3IdyTO5P3ibv8w56fS3PRkML1mtu+Vj7K1uOOkpmb7V/e/g6izUEitZ+7l/rsi4sHf5av3+ZjWiHZNdXLOIX39QvyYd3ZB/Z7/QOtqaAM6D+5Z5Qx7dQfOW9JtHtsr4Af6Cg0m0ZGlugJugzvXa37Vw6m0fdC+OFXudQEK1mu0w0eeED+il6zVr1gX3sOyHwD3yPWrWXXvNTLIM70ntcTC8Lrewprrq1mCs3Iw6nT2hd3lYHru52HK36td+ftYVnXFPQa1/zep8/fRyuEVnMcrfCzqNa6jleVMM5YP71vqdX8xg9xWforOwrXXFAFOVyP3zEp6B/vfrf81rZ7b/9b+XV+Cys79kAjMkA5ii6xyWdlkOqQOZWDyAAXZlsTnCqsTYiIoiAOkvg8L60ABq9/IbXj24fQR0HOC0sB6bA9B+eFjfRZ/oP14t9kfuEbe4O3hlZ+kP90pcZD/bMBaroLzB25YwJuCsrPGDARYjJkh7YuHTIZVoOCFzfvfGQACKXyuQf5D/FYPUkjQofrlg+lmcZ98L1nWGzgPv9hH7sm9Y2uXcINffGk5oLbxFWd7eB1S/SL9dIfuXa4KH+5uNPrWqA/zUO7v+6z/b2U+5lvlQ/f3BpkP8tWdk98tNnhPfKlB0T357KvE9/5aG5O36XLZ0P1aH4WIM6Zo5z7J71rIwxhu7tPN8I2nlPTEXit0wyH7MAcRAXTvfwof1fQBm/bOms43WX07WLBsLb/O4fue9vTmUpzU11tF0+Z4Yo2vnsBRBr6AAGr3zSwf/k/zB+KBAiwfvps2A14si8Z++2xDf9xvGSIpUelQgppv6U6fG1yAc26dYsIBVh+nFzsy5kf0405y9LMDUUJNrwLHjLb+Elw+fv0wO5NrT1AQj35VobJD9TXhu37/G10lwLDobfm9kLA93AyeAB1s7mYbBrNWbWZ/fPNtadTtOH90iTxYg4079YAGbb7yBGnD+Sn42o7L4n+cP9Z9vF9+Y1nRx7uJANH474IBKWN6aHHLr+23sms7yj4hY/cyHAw/f7cV0P+/44n4N2LX87kofvgLa3qp6qi8ebX3w//1AT8PzCsB/D+PD2nPr8H9ngq7Zla/D9eBQktrcLHiWs9OwYMKtZQPHtrTERqgP3E4epD8ONeljHVRBzWsySldK2uwoAavfFhAarKxqWY/kPzexnOD24f8kP6YIAa2vk4OPKYlVKQ0P9KH/fYOtbWSJzTtZ1j3z3L/drPAR/VQ/zpZyDgwNtYYj8e32KSd2QfsSL6oeGMkY/RennwHEfz8P+rdd4j/6nnVP7aPB3W4cnWeRctBpGWoHCjBlyqyWH8zrN6BHww/zgAOd3bbtb4OsA6mOmvFTjsta64oCJuuSeWBtDs4VncP1BuD3D9gPnCYv+2rwO3btxCJnOfbX7h7TLp+4BJe9aJ0O0xfAdrXYaf2s4CwaOnOGh/npzEO164q1DtYFTggp24hzGvv3xa3n/euutX0HrwH2K9h9TxKx9wuNG++sdrhEf5Qg0V/f/0Ouh/j6zPagdTLUN4BaoMK+/HWANXv02gFlH8jgd31nOFf2sXgiy0ztYeIN1B+F6zKkfh2cJhoCS+vF4vY9rYkfoUP0btcQO8kpWXBzRTX/P+zjWai/Ca3XYGz0396Xa3PtfqD+yh+J8zeEDvm823NaQD8dpGw9r/R1vBsyv2ZVoOmK/ddr1UftqayqH/Ej9X/3iSActscWx1Z7tcgStneNffTDZnWs3HLt8nPpxfdSrvnu4GOM7tf32/vf2oAjNUf5kP17tdheSa+/a3v1N1sGCChdfwkDeXW8fT6of1Ya12OeR4OcpGZYjeID1/b6P26Oj8ILfoWDie1h1ax1j+KrPvR/av7Lq145cLUdGEqvrdm2LrQW33Pa/IO9x/s7lWMmEkogdXFCT/aBQcCR/Kf705Z4W2iQPbSe+kwBSw/dH1t06xxdamXN6seADvXe1v6P7L/YvrfHkAH8zIMfo0P6RtbqusYQP1o/qkhuUP31H/5Qdhe+l/7HjZ6GP2bIHdlRfmx6cEJUfoJs4r/eabO1wXgfES3ZqJs+jH7W7OqbX2Lr2+17GP38r/1/uCteoDX4PulrEkINbK9AsQBpw/LA5pDxw3dd6aOVx2WtPRMcJhQ6ewYzHwa++Xf7ZD1jAsg71f+oAZR/UNjp751MJx+PdKwflFmzYz9i+asPw5m768uxxmaWDj52BpC4SwYsZIFQOFgjAn1x1Q7cEdLvN8R2+S4F4flTuayNcgO8FnGkfjbfx2NN26wAL/sz7oRqDvZ1nFg5ddtY98mR/yQ/1sfvBPLTwduetYFHbb7Iu32zK7Hve+rNZTXvJJoU52zK23/c/4OmCBtvAgzBsOPzV77Kj+QuAqNw6s5zgYNlQC8j+gXXGvrxtAv/s95dbhmDuHW5uDJxLrA5yv/axCM6OO/24p7AS1QxnVb7bvuB/B8vuEgQqGIlu5gj/E6elJ7vqv4o18gl9vKv4EB3ffGXphA7wUH/la/EABlvfJvvr8q2hIZNXO/lW1fjNfBgCqySOczV/cLGz5vEFVxsPyQd4YS+AHWhdP9zZqg7/0tZH4PZHWkfrr5BtbawM1vZkMex+Rg/GC+tCs5HFbkR3SFpxwHQJ1k9gKL1bZGuOB/GmNl8kp1b1tl/DLNKrvL+DL7gNba4xya6mveFmi2P8etvIADV74YOumbeGpDuJgLuP6ur/lJdI4+UZjdUAeX3wMO/APvB6e4E/esf6XY1MO5/j/8feo2vIF4eYdy96epx+1HWFDraghlM8255e6/NR/3qPrv3phra3St8w2vXyBcvftEgYaq43dcTCuV0H6bP90hsBP0Ywf399xteK4rVo18Ms/YdZhRbLmHb6zyYR/xni4ddYPrTlmlV3lX11ec5wH4eTsuqxPBzMz59TjDnXZXytyFnu2zVzZ3DPeZ5GeLgyx/yQ/i89tSP1HH5fj/kB+rTvSR1jQgAL8bJLtQbh1zYaA1zI6/2Wb+y0QHWBpzxbZ3/Pawn7Q49Cr6Z6rsf4Nx3S5Ve9HPVtn1fTEp1yyQ2177yAeFXHzqrDf4Rrs0cA53EMk6/+BHzifvU69ENbCLNGgXR4/leP5Bp7Yn+27h9HW/wj+wD4JQ0ega9iNm+m8hDc7ZrKw0gDsXbP5a/8ar04f62P2u2fpYOnsBp4/xr1r0FgrH5q1+/+eMk/0x1016+u2bOO/wJ/FazchZ+MQ0j8CDndPHfCRD2r5utazgADOOt1J/KQH9H1ma+8/j/ST+Rx+Sk/Z993Ds8k3EZh5o/H2qzix1qGFQ0n+6/PNJ+NarFghwk8wit+BOtnh7MTvnSf26Qzf+FmENhe/ck/eb1/JP3Kdb0D01J+uUjs258An5MA/Ngc4+Y8Z7ooDtx3RBmU+euRjXhOzeyfjk70kn6NAuWSH2M7skT4Ho+eO8G5/vZaKNjhnoMs66vciczjWiH9ATZvZDgm9ZEaLfO6dnoCzvJ1r6Q06dZrE8TOW1TvuWZ7aBz0Ia9G8uJ/LYA4kcbr8/E5bTOvqoA7Jr8nhsC8LOwcDSONJ/wwHTy4TdQ4VNeD98urXn5D1yfxXXz9Vct6sWnXSVDuEfiE30vVY4T/4jnBE/VrZlIP9hXYReto/HMY/UAf5LM5+t5/u+SeWKs7SeAQM6x1M7IadK+nzYHYURjFP9+H6qOs3NnZjPASh7r845nYVOtEgANff/XZsK67W2bQOubvmRbSVZ3kqY8Qn5FsesEH5uz6+epFRJCdeTnOtneNSztbZ9BrZgACsT+VdebTHrZ1h7T+CVthusSaGRqDZg5jMfCm2br8sa++m9fY51tCbBOdZmzOfgOWmzaUfyE69ewCdW/MFm+DrB317wr6ewEAgd/RmsLroEDy38OBA7Kncw2vqp3cNr3oCxaH8Eysuh+hQ/CiDhCa/bYnwOt7++z8zlJn7mO+o/bhyt+dxeo/kv91c70on8xze5XWRwA/JV7oP90Ea+l+nvXVEr4rpzJhKjIajS+sQPfPzj0/MXs9vOf9oMrxfqpzTERmXs2pvrCkNtiHvU/YkD98716Y/V7MEXXPo/oe15Hg2VH917O7WOcaz5F1rEewzNdUgd6med19xoevra7c/UgHPNVHWLrx13+XgKLQaESdtzWK/LTCh3g3/WocEuvYXe9Cr3Sl1w6+XmdFyPNx+evz2G4ci756Z6TAdc72thIfc1+nq2n2drOsSMGavfmfZ2eM/umfqSMVJ/UyDJl1up89Wn9F7OSeXS4H/Ifs8z5X2a0INWXWC0H6/AAXEOEObVu9bp+XLrYfZxqg/C1c8uvXR+0XrKLVzS6yBeBvT/nDmK/fBaDvFq9yUdh2vPAOPQ/c/ZluPz0kZ/S81V7JNAXYf5og0JQaGN/AZeKI/8yf+9uG5d6J9+EIo3OzuK5sq6wmt5NuvnyGDDDKifz2dyGn8GutP9nIvjUchmr3+/2eD3Qph/iWzaYfvhP9+AC0IOZMIXRDWrVy2gOSH4BYNBgWsG4CIQeLEEoUfMuuEvXNs7gSMjOszBH/Oj+SPe0Bzdi1kDq7xn+FD8TXmY+vpdbx1b3hZ61T/rZnDSfcqRqqfGpn6sT+p9fWNrQshmr3/QOfV981e/go/C9ZuWP9kebqoP6EGnCITM5tk3zI+E5D/1FXTwvccDxiAIYn5X4JLUH//fBhh9ogJ3EYUz/tEAsqDcQ50O1GAy7lSN0wOvxA/Z1hjPySLoUz9zh+cmz3chnwc749Z2u855WFM/Mmf7mB+PIZOu9Z+/lCDIHB4WB+X8Dkqy43WYI/ZUfufcExdbmetpTn//fr13+UYNCgEGnvzJ/yAAcUfijP3xHd0T+020Mo/vpvkXc8O/A4a1iTmaAHE4fshYCSLoXrNGZ+sqUGvvqwXXf19fu+goA4zfcN35oPyxwdbQ5sCGkbvyK1+ocyRH8kj9CJ/9CDAkf+TP8Un4pusNqfO9vEu1rW6xIJ/YgfNB+oNwjNx7IP1Wb6Jgech/JQ/cA3i266tmbTgf6oAKtz1cVkVg0ik9kE8S3f5trg1p6Sn++veaD+SR/X5DuK5jT31On+gK7du/Y7rdiHwmRw+vfuHO5WeQ0/6DVkCP0KH8SrMVB/f0j8d1kNIzZn/ey9nW391zNZ5iS67HGc1u9uKHNhM1tjm6PVCOcsT+Jv3YRz88D45M89PdFT/l3XELvAT4fU87fAFruulfXnVgK2VqVP6OY5KmNyI7z4H0OX8uo6SOevgfw5e6RzuSh0ePz+k9vDPu1XnOCYOPLQC2B+aDu+oRneRzjS7owb2+WcQ7PHnfba45L1m8gybNaus8Kb3Kkw8WZkiM5in4Pk/u1WYEHi91592svdde0O3LHEEHEOh7S79eQBQhM2CeeruF0h2zK1nd6ijcNdXpLfp91s4Bx4QFLj8QkB0gLN91sxP4DG/8G/qsHns/L918CdW/dfALfBSU7OCBbZrUQ/HnpAT8D3e1szXd3zRPz8oZR0s5MH27vzuf4e75w9/SG9c332Zz/WR92PXI4+eUDNdnozrOOf/Qw0WObC98rdnQrfQefzwACDdZFT9WJ/jqfJJZypayQ9Z1UBiB+3ffVifj0Sywqe8muNp/NnDWlZjzUDZ7Ar99FW/RxzO5Zzc68jwby7P1++js8Aj16q36IMaRD+FqG/EHP/pgoc5I9e3msAPeGffwzpnq363n/Ae8xCf8oz68/Giczwn4Wmsc9Xhhv3efyp63EQr7z/KmGlrf72gUx680Qd0WsATnBDk9Ef6x61Lk6MSt+2eCxLFvvgp+8pH+Hz/loA+8/1D3uP44ZOdZT+dIPl9Aoqflps5w96uNOEZ/+wzMT1+JX3GobCCMoR/CLvrKf4G301+fJfAB9nlTD4Nv8R7x89elj/xZ+/24lyfwtQ3ctbgOvuR+Hszzyf+CxAnn5Ue+5IPqELG+f+8c6ewE0e/P5/XXrvHWHUZQpOc8z+VDXzuzu5cKeoN09evkS3CAFJzVgu8x77HA/DLNunW/ozJ+f99Qy0Uf3ysiVmSPzbZdjJ67SN5lfC30H8qA3gfznB/YMZDLcdx+fJzCsxT9d1zd+okPQumk3rTlnny6ycgGuesXSGYnvCSE9cgBQX6Se+/+/nlrpKDwWM5Z76+et7yHCs/SHj6VhG7H+nKuLh+Cnvh7Tm6O3hOdXft3wWJ1DkmhzHg/C9cs5jIdnkXr1afry6/I2Z6UsOe/b8vA5FCpP61Odxes/5+zNhEcf9buMlhzu2vUIWAX75L15DP0gNbTOvVXgJnv2p12F+IeZ4LAA3p/MgHXPiPplmCICWe9ox+5drpr17l6y7g8tLh95/tnvQr13ac7qqgUz8uMRu6g311sJ6zNdZOe9Q3WvgAir1wfe/8IDI4O52/stDmYfsrQ7RHdS87lOnsw/vs0F57x9OZP/C3LeWCjGSDhT71EH/nnPrPHTXrFSfxu31a9eaIPT6UPA/3kfhxM8EoY4IONURV8/5z1vsP1lu8lD8AhXZKz1QdjRcO9ociL+ZABz0/6l19XUSvb8jesfp+T4/M8D4zs3G9Yc+OhB+8HjzBf+Rg7/ntTet9bvntDo6D3mc+9ofDTf59Fhi/v850WczV77VT+0LnzFz6qd6Iv2iBx4nPiQXcM/ptvuAv/W9fc98cLHoUAZCwYQ7wi2aVXd4TmZXviURvDw3PGfUz+4O/jxvRIJq2c/I95tnOLFGyC/5eZmHDylH+CnMzvW3i/+E59f224HVJD9dJ+VcH8tQGv36ptb/G/a5PEMHJOHh+MzL87rtMPB/zgHFC5q5z5H786L9nvWzA/oh1/8cy/T8DQObQXfVvXcf9R32w/ti9/MYPw3vYMRiTqxYn/RL8OKeJKzGFZtKwyUfuHPu0R+wizXpb4XD4k+A+gsVH7NdAeEf9ccAEwccd+mO+kFDE2f2BJPjOZyj+wcwnk3mofyBs8gG+/YOhmGX8/l7AEDgzpg9UkOpFWtM7Iu381K4DECSCcwR/Qc5ti1gTa77ueQD9Cl/pKjE0YeRc0Dy8cwfIrWpPfrmDqD6/tn/MXMFO/NEzfU17ruNOWcez9IJWtPf+Wh5Z29qW+oDc5O+F69Jpfgla+6H7rOuWl/CXWXd4bT37cYb4K+48vkkDFvvruQ+L77CACER+9D0oYfkiP/5AnRYPph+7BzM4AGr33m9aC29X++K9DOwAMj6/1DEI9+bzm5VDpcf5vQ0woeYz+HQPUw/4Zf9jP9t3Hkm8jveAAAQw/teUm8PzmfhPBtdyk66Ly6cQ6uzXHcDwgWHdX+qd+sD+/znS8PDUANcP0Z4f6vugLnh0A4C5iY0zTk4NGuYifBj7h73m2IFYn8MisRJ+qXr+n1y3lwPh/72N5x/DM/a+D10P3e99GgBIPmq3PRC5+FKy/H4c8B/h/7mzux7nWb7QuYnEP0LmiXfQU1sUv+vnrdL/gcJMgAnpfyl37S76Hgs4GG9y/sshg8v4p78k9/RTXhwTizP6eC8y7+6K+rM/b5v9Qfkn+302Z2Z/ddP0n7FAfkqb3mnpRKfvX2rXbLHvqxP1VN6kQPHJmoCPVL1txa5bdcYgAiJ/Itrj8F3zswONbudMjLGnc/ibZnYv7cX4x6v2n6uAX+J9/Is54uafyBxnWucHjryW46wzJ5fuMo7iAPPaZRMkpyLg7n5dSpmhDAEuD3IgxGmLAQtBGHAqjbWe5VMwrg5nLfK4O2Vwat5mu05qmdYr+a4PIHH5bpnzR5whb5nsDTetoTV0mPN3zt07I8/LfWTQu5Vl7kv9NOf5L/PyHKf7e31gpc0rH4bd8Gn2pPv04f1yc3NecwL8XfWoNw9VV5VQOEAD488GfeOjDnpfxYQ5MH5B+voTXf6747vu5w3tOYMr/5aG/PvrUfhd38D9cWENg/XxILVn3gqsy1o7QfDLwAcmDX8f43P0O+aXQemHWL4/uy5wzz+o3qfutoclcTr+ahgn66eW8gbvWeeB8Hc7VmagyeYel2OtR+kPHl1b8n65ApslNM1n2WyDEX34PM497/hBd0eQYs2uSZxEF0b7/M+SJR/jU3p6fypq1kod3weq6AEvPuf3IwVxaJ5S8+ia7UPfNIL0L3zNmcTbMiD2yfbLon0L3y6iEsmt78w9fr4wfxj3717/uI9/V6DvfPKf1ya8x75Hj8Z5+chXD0Jl6M1x74K12QKbePf4hB+ss1DN/KD8eh+ry/QsxX0P8p79vL8jZm0xPT59uYPyqgCWr/Wl/Vq/xpfvGb/NmYs9820Gr5zInvnAAIR+U9L9ZTWsA/dXtuz3xpX/V0NUrW54rLnvsz3z+t7mD8JCHzNz6QfmC+317Zur8VB+7q/1Lhh6v+zN/M98h5+BnrWRd7z3ycIS3ivxEG+prAXv1z61E3dC9+Q1+Ivfks3/QE0s0sbMP5kHrPfkOZhL3wtkDmfs1EOtoLaXv2r3y1Qby9/ht6Ny/Zw5m/3wbN42ms6h/tprV/d4r3xV77Nm+NOWnvAUEiraa5XY6X0DHMsk5r1ANxr37voadm8te+oP7bif/BK17We69+6fmWAAf9LQ2a79Nfd/PGX3Dq3PXvg6t7PY+Zz1GB+Jvfi65yXn3HN53I+wzXZ1zU650yYwt76RmtHkeGEcyyf1b33Sn429+wB+3RXvh1qbw54AC1r9Yzn9vfruf473zb77O99yFfXczF3vlC+1d78NWuJivqGjAZpn09xlX9DzNe8/DhDKWkQrM4PN/e99CkOvvfzvnsq+8mn9VfuSkOAffCq16tEyZqGRiBWJ/Iu95y8Vaq0xTxxDsiSfiJaCE5t+64j75lyNhWGsa//ODq4G+j7+XoPgxu/Y2Ih3nH31Xn/x9/Jp+JZAty3gyT9bNcnzP5JWdr7Rfn7V++RecbMv0++PZr+t1k5ljNC+oaCP++RFrepBoBb4fme59/FXX/y/cvxMHM5iwn1PNul/+M/Mc14X3xx9dOr8Xx+JffSErqX31PN9v58VJ+LRnyvvuQ799C74q9q+/Os/JmftrP/DfZAF+I33Yc/TC30PVPXNb1HOXJWbpjpUnlx6/t9fKfBW+/e5rCdps2vytG8Jhf2+/SCzbBB0eP7jYfHmsO+/z6/ViflSV1778qpQup//yH/S3i/8FBIsD98q+2xc/SKVsP33wL64YMvJ+nI/8Bhxyr9lXsB2tx+/P8/CqhpP3zT/aaG9UUG0/f5YN02e0TwYbT+8l+c/fx53vP3z4t/BL++LWi/f8Dbgv374tZm+OV++r+9Bfv4ig7w9bTr/xVfPFvlsALa76377bzOZF6XmjKS35O+41NYomekLXKG/eRZuO++HfZH99lLel/fOd9wFzxP78mldT++qG/s/vyy00tK/X9/oNx6G/3Dfhy02yLb4b8oyfHKDpRZ06V9fH8vBOV33uijo8fwfR2GlaP9/SuP+lvLd9i/30R9fsgdE1+ZtL/3epRv64slzSvP+/w7Iw992ZbwtS5UWuf+/r43FHdjRawG9ZwL8rC+oZzL2f1LWuLJ+15+uUBAsRVR1zWv15mBX0CnFntizcAf6xax3vueOtON/LgzLjfp6g243+uW9IW6XFruAfq6vzVaa8WtaJ/fFrcl9qcE9Q394h9fFnSA/nHv+LMx/ADPYABOXmkHwCb060zEtcsoCjx+ElryZZjJv1Yn9SWs5N/jcHKIvoEX5UdZRW95LXuA/yphp3Pyit/sh+CB/k8/wgf9mg6yWa1j+AEXJA/9k1mOT75D5qWs1N+OSz2WZhQP8Dod6WvKB/B+Die14UsxrQeGWteFGF3vvD9lGr7TM924D0zPu5PiovgwP+ki6p7drLWX0/N7x5cv08m+wW9gvGzi/lgfoIP2It8LuNFd3W6/FiD25J8H76KL/RlntZULlVsKAL0X9f/Adx/ipzDy1lrIDwX/4L9cv3XDp1CXAIP5GL9smshB/tm/4Qf7lP48AAOb/grW1u7tq3uIP7Xn+JIDd1/Gw/GRkSWq5Sn5GQc9UGsG/JYvvMs9OWdl2twKfcS/DUfnu972WfJWt6ngyg/Lpfhz3+8XR4MdDDmOjy1df6lw/vucTW98GP0W/LQfhxV0OWa6ysdB/wMDXQfkZY4dn7Z2+v1+5xfbQhkVa1/Q6myvdV+LBDxlf9WHzMH6qkOa+/Ow/Swfk8X4LMdWD/t2n1g/ZEgNIs1sH8gffZ2mES/K2VvYP6PXcOD+pTG+i/RrhtJvyatbpqeXB/vyzo6386AFcH90j8vvNLLrrKfqCX1NadeD/QVnyVzHq1kzUOVn/p7M11+eH3Kx5ghs/6te0YfXx+8Kz5yr6+P7r3fjq922nKYzsa1hzwLCH9N7vwh+n1vteu35vyiH5eT9oh+q5r3EvgGv8zlcnC/Yh+Fk3n0Phi63OH8JD+alnLy/A9fnuvy4OcB0PmR/MI/TdXyWpyGn4ZD8fh+1Q/TAf0UPwBseMdMSh/tmA3dX8dF85L7+j8sh/s0/Am4FNv2ikdLcifLWZQ/h6f+UPww0bh8c1PuFanoeerNv8A37sWvK3XtQ/Cq1ler+swePWuysJDQ/Pu11Ng34YFND9SbfafHi1h77P2Gn+tD9zDmlV3/zfxcPwigFryzn1eQXDsbfgUP/G3+Oj/It+UUAO1fn0P8eX4uU+U8G/o/ALB0N+2F75p2tqduvEfMTHtua7G/bjD8T9IEw/BhhzMv/1kF2zNhl+NzrD95k3FJmH7EGtavXcw/50f4AP07okLD9vrXMo/sN18sP5nWdQABVh+cZfsmL0Xs+qH9ZD+D1/uNrLYf2cP+2H5qAhdh/UK/1gAbG4AVdchkODh+71XILHh9VyOH9BiBjh/Qs/lS5v6s62H/8st2LWok/37fuRc+JBdwbuFt+qQ/B4fmFN3NIEzD9ZUH2RDyHf3YB4PX6xrPednbw/9m12SO5z8hYd9up/nw/BbBvlH1KXvHb8zR+hQ/pgfuya0MPUYgCrl+QDrD23q7t8Wwb+j9gR/FVvEEfpPa1BH8Dt0jp/YI/cQUeCPz928Qj9S1nZ2DzHv3Fc8ZH7Qj+Yd/9w/k0X1bFzhH4KD/4R+vC/NQEYiPyKOaEoPOcHGW3r7k/es384EpAAxp/sc/XJRpiP6fOYmjCsR+rovPH9gMP9NH97b+uOn+trwSf3kv9Z9uEMDK3XxtrJKVvJr5hwb+j8SR+HO/kyfm1v3PkbogD/T5VqzpKAW1c7Lt5OzOMcHsfDGzhuKP6EVZruMalm5e31jf0AxFpH+129Cd/eqjgbfkR63JtZk79y1m5O/0ofrDv5ZH9HTd/beyCnICvwU8B6AC04O/bWvan2uL1Qa8DteRHOWcGvI/ptpses75H6SbjLGHAdr6K9oKPwvX9Cj98GHzxZEUf1HazJ+/dKOnqHHKAGvv96B0CVfx2vnEAko/5wjzGVqlH8kPA3p+yo/2UfqDt5RXbyj9HNeCdXhUf3xv31QcpWuLTmso/lXB1HQJVH+L7eVt/rO/QYfw7+1ada7j/n3mmo/lqD+Kv30Ocb7cy7Wlu/cu16mP5L/fN2uDR/VdrY7Z3ZuPg2dDT8TR+Nu/okfrbv5O3+ZG+eyp5o/QkfjYJxbtcM79rR+etv1f4TaP74r7UIf/d/sczOcXg/t4dH5e7+/Z/yiDtwf8da4Z398WvnR+shzQdk1F63VOcDYNtbXP2//x38cc8kA55euY8HovWr0fvRQ1W3/bT+qt+/9vxpBv6P7Y2fqcP97X1I/SrV1jY+DH8gkMc8GoY/fvhpmP3U2Yfj/K3XEY/8P57mP7n1cD4N8x+H4/am1rGP6z/a6V+7K/nu/BrARjv6DnFJ7997WHGza7fynv1x0b6ENlG58Pfqnf5rb8W35pj+kHHnpzpPfnW0/F9ZsnMcx+nTryMfyVEKjH7Kj+N7WBY/cTZ5C7wDA/5a+ix+QDv4sfgbH4gl6gO9Dx+z/7iOf+A73NH4nj8rNmhA9z0odWv4tj9aMtzx+X/7HoRo96wc2eXj/Te+ks3Yiftvg5vH4UT/bx+4zru8fjjv/vH8LCdMJ/j4/6CfrHbzKoHPFlnx//S/NfvvNj6a34RCByI6bzk98ftwQ/SWcG9NtlA5F2jTGmTyK7n65WsH5+a4/ygD8Q610nYYrNW3fYcfgBJYBP+7kcR+tMHWQ0jukjVoB4L76gT9wmuYE/7+Zm9P80QcHb/i++kE/Lff5FAGgn+CD9Y7e15jNh3g+65er5qOf+2X8E/xJAQhP7A35D2tdtv8fLngfrQ61KgFF79Ktn/azVCfiww7Qn/LfPGHXGE/Vffiw69KgFyb8rHPhy/NtBrhP8Z2T7z/jBGcZzAif+nwzbQeET+jTnwO468f3oD/lVdJT9SJ/cILZ8Qc9B3FmcCThhtm7ujaafj9s/Z1bBT8BhXXc/ibZn07zon5zysyFHrekzmfnIv9m2fSzOqx/w+/1ffm+v+4n6Ha82J+OE/GGAvRP0iQEGOvmwPwzrrBBrlPxUddcT/uLW7NfXifxTpEgP/qOsztnfE/PR38o6wZNaf7+RLeRgAoSfs8l3in6PYMod/2M7JR1h5P9cl8ST9knWu2zKSflY7xe1/TiMLJ+ThD9OCZZP9sdYOAdqHXX7r/eNnjjysdayT/rHXyk/esfj461YQctz/3tn1QH4U55fv+Mn57ACvHfltQOTB7Af9zVYkH/nbWWk/vSfuUv1Mn+pAcxCP7jrtIgaQf30n9OKumbX/p4tHZujs8SH7EH9fHW5B/96Dm9A5PwYUH9jJ/fjv8IDtpPzMn/VMf8D/Sk/2Sf5wAMsn5hOsGD/RB/EZ1+Jy0oP5oT+4vKo/T2db7ZP0sod2T88peavoZHBv+44cn+XqsjHWhjoinSas5xCn9QkMVl/tTHdyfmQs+zbED4MKD+iV9zyf0zs8yddnYPsZ3tOzShaPGe98n65Ov6++M6rVT5gFP52J5lS8hUvWMHVnZsFP1ykdiH8qAA7o/CFfmFP05Z41O/ReHEU/B/pi+M3DwYQr9anW0U/+Kfyqa5n35loRYp+nDr+gJp07xWIaxL079+e1rlp1olP6r1a6H9zewpE/4ZZ4UALMdfPD/Xd+PTrGMDi3X4XE9pyscJ+d8/AwvllPxQucC6996Jkh/XsRi5P4+dkC0O2LX3Fr/Mjo/c/IP/lT8lOWcTrn7fpE889PeQADo5/URzThEZTDoQg4Vj+bvmZwHMqfpxb3sP7f79qR/vLjpZ1hbs+8HorOugXXNi/xVfo6e/oQZOELq6iTUvt6huCQwyAFFT8HYo9CAvAwZYf0an7a7+nUHliwZqft4XRan+e7NPgORzr0kH18By3r7kg+2p+pzrjH5mc65VNYdT9he+nU/3RRl1P4+H/E+/bdxPU/lhxnPP0q5a2Jv+p/XIPgaf9yD+0Yx7b/bd+I0/Sq7+gAErQajT9OrfMm/cafm6O233/W9/Wx+J1DF3ftBs6mn6R22ZIOlC/WafkZYypldzT+Aj//6WnKcQtPzat/ppeQJOzzvQOgUAe2qOfgV1Vp/0O/vafutP3L2fCkN0j/iDfaJNpp+yigFv29qd/u0/YCqTJB8gk+KABwrXtq/obfgFv0aP9YSfDp+YI/H6AO7axOn+XoNnDnp0/xkDl6tsM1Y2g+4uG+LrC6fm0z/fn+XT+nuXV0/Il1+hre13Ekz+SXXml70l19M23un6fz0Hp+Lu/A3OhuoCcUeKr9lR+L0/WUDxXPxBn5QT+Eug70/2IEXPa0+n5Musvp+oBzfdlkDP8j3/Eu9ROnpLvk0h2OM/+n+wuQ9UGgM/ORvssf732a1UDgZ+jyAkGfu5v68tZQMOPzX4M/kY/zFI2DL5inPYgQ5qz3Rvq3N1Zd8rD+JXXeS/2Gfrfs1id7C4MC8AFe7ohf8Cv/ldZ0ccbD/SM/lnMajP1lH8Lis1XX1OMcHfpjP8GX6zL+sZ+7IgYuAACcHZED/7MjZ59P7qV34g7xTIcVkPCZ+oBzYmfhPe8TJ4mutbp/pM/qt1/qGNMd9HatMkAqrv12+vAc1WOZaz8J9ejYHmW99TPySb8ikc3R2DM/bOZwKP/PX619+I7WLM/H7lnVgK/Ndsz/yN+7pNu1Zvl+4AP/1etuZ/ZcuHmf7dQz9dbGH/5XXxTfQWf7WCKiP5An/wd+KqzJ0f2YxDFn91NADMGys/Su30d+6P36Fj9mLnC2/7rZ9Xv86GZtatffnmODJmfs3undtfyz8iF+rwFuJ14rPzh27HUPriAKs/+V14owwpZ5zH+4kA6s/8jfvqs7GA+az//UBDM/fu1uev61n4gn/dZ/isvg69tgpxpwH6z9lDnKyzve1r9M7EAFGz9zDnxs/9Q5hzv1Nn8xb8LTW9HvCWfvG7wqP+O78rZ/yhz4t1xJv1C34EXcYF+82/u2f6m7zsob1L+rZmk2/7Ifo7P2RH56UvZVxuzfELfm2g1dn52y8npG8W/d2fn264v389H/PZ/lFDZA3sYw19n7+j//Z+baDsXf/biHHdaFhOPZftffWWBw833Z8YXLEPj+YI/KRd1Ow5ndZXr+d5vdOrPlge4f8jn9Mp+5Zmip/4w4Ku65fn7Dz8v3nnh/nNZt160mnbA/P1wWpBvfVgbYuJTn4KQ+u3eKc/ScdJQb1DXtpz8+3fx4Hmshtx3czn8EAus5/lMj7Ofwwb2YJ6Fz9xD/5brp4XsyANU54Fz9H5uJp/so5kTv2p2YeACKjnEd7Uuf2o6DLn8xCVy5/89rfSh6gv4hYkE+sq5/EB7gpf9XP5lwf6XM4IPGurRyH2o6/sIWgoN+DhDO/+mXj0g4vKdvutgJ/q7vZzLwh8Ict5FHOv3XBiz1uf3a82Uhftz8a+/ot7f91i8x7NTffr88p/JGDF/fgcI0hX8Bn/hCeR7vvuf6NPz545Zr1HF7sxzVyfrts65Zcjz+c9mLlwGnx4yRlih5jz/HZmIB/sVvtBK2SkmJUOn8BnNDL7gUeP5nn5oescPWMe/w059b+wfwY7H9F5+aqDlM/svP3qdfAWsej+D+DMriOBay/d6HXs+e/hc/fmep6n4mkZ/u/N5+QLHPef9V38tvdry8nX3lTDnefk2z0oMeFn/UIWQFvqbBhzwAPn+mt+69Xbxzcs/91Py+85aQfb5/o/f129hrcy0sDnz/bzWbHrVM/uXq2OJeqQdiz+tnrB+xY/g469ZpDOz9/h8/qs/7Xq6g9/CQcbD+AnrjD3iI5HPn6Mj/XaHD8/Bah5X+6hP6Iz8lqH/p4agh6B715H/t3O35/MLv8s/6wvyS8dce9+9XxS/6yD3ts19H4DetokguDajnf/Gc4O9eUH+c6GAC/mQnip61XX/AL8Y72mi/zzAR43rLwdgL9Vr3ogA+6hjp64WUm9V/XyINff6UO9Av83Ufyb9FPWmU/VM/nAvy5VZcz9F9GvnrRBfkGM/Lb/BjOfF/+x/lBflnJ1BoaI3EjLHaC/WeZwJ7wwX8RvCpd+pi/bjXvovxwX8Ic+RrgeC/SL3156+6Wc2EzMbuwN3cU/4Qv97P/7DOSPf1s/tPB/8uzxoc2H+Ip/B6/0hfrDdwhtbkL9yX2cWDihfuEfyoX75QeOe+UXr3fZoYv8cy1xQfJF+9C/GUfgwvxmweRHNGaH0e38hf2ngxYX4hkMcF+pejyb1+wvzV9EcL+BXB0o/afRtwv1d2ftlRhDmyo/nL1i4AL4X7WnP+F/3x/DmHhog8K9esuvtdBwi/cvB7ov5AOblesaCGkWDd8/sbxgQUcSL+BoOXlH57ftfK1FhgLSuotm9YCDwh5WQ0AP9Xn94Z+doHRRfm8gyUX7OUBlF/4q74M5qov8FOazQcOvXzw/zKfvNBwCW6jn9Cwnmi/Fwebvq5KH4MMNGFHnOD3r1q177i9bOL9/1+OJzk3flFqyG9ZJnNV0/QCvyGpzQv8j35pnOeKXN37/5d2wP/x3/dn89rXQoAAM3s+343EQWL9vaGc3rqJflOc+sX4LPPFvWZszOxfuV620Cv2L8Kznq3rsBR+bIA9mYkX++LXxXvVxfubgzcX4q28jHXV4z0k/rt61AV6Vs+ioeB3r1s5lv158X7oqNzOfBwrMO1t2fwG9b+L8k6HlB/tgAW0O3/b4eOshMhwS/zQD/tAA695lV+ATfYS/jQnqOcyq36RL9/y/OnbKJf5Yv3sCagOv6T/MS/HOH0gr8o75hb+HZO5S3GjvsN72iUdp3eRveSj9tZf7e04CwFJ0O4Teek9W0F9077J9bFw+e6GdS/P4VvMs1BuAdL/NH6+l/i0fjhnx4feYZ+VO/JXP1E30LB7U78Vw/el/BGfP5h+cP3H3+Cr/qZ+P+zR050Mv+xn8PH+nt+Tx/MEfmMv6RtbjL8kfWEy/YXv24QMmX5zKOpl+ZJ/CGRlIfysv77QAwj+Dx/1VZHG64pP4jN8F/OvXPzsAIsvyt74ud+ll+/GfAn1p3d9su+sPOaFmnnflnZuFP/u2abL8gXh5Nzaz9vfQx2X8U+tdl/6gnPZf3wrz6pYPe/4iesFzg5fzvD5FVe6H/f0HRy/JTPuGXZOX6/TODd/tmAs5f7bgPOX6V7Qz4esrHkFB3ofzCEBXL+QR/P3vOyhpuC0Zd+3L/hTed3T3C5op67O349L9+h+QPvX2DpKb2eX/IMMXl+Z2/A9fw8vytX509/hfW1g3wJTror3PBYrLe912zu/jPfvTa0yJ8it1DDmRGz5i5vl34KP7saBEs3AK/RHv60/WK76hfuBfW2xrC4/8r67csegr9WLmavrbetRvs4VDCKWuJtnUK/hH3txc/vJbZwdtp6cK/nODwyo/hX6XGvuMQKU5Cq/yj7xoRSFweoIXyK/45bnqE7ghZrdtpaznn7/p+hiv9OW9GscshuuK/YQLuRxzCgD1HMcIXgfE2kbrN32ameXLccffRK/vxXyNmxJX8ROsU9/ll/aHf7ed/t9afD+OhmlK/lhHz+uyB353LhtTnup32rZ5RQ3pX8++tWV/mlzxz7Z763llblZ/TTf6lzJa/tv1IZX9xOtzPX+NDpn33NMwiV4QzeOV/plzok/zEr6MYbh+seV+5uD6/f9Fg30H9KbMe32Lx/3n396f3599Cr9el+ygfuonoQV7x7eSr9rzHPjDXnnwT69/gZjKf6HuVujcXny2hLZz8HDfIe+PG9k6gXTMLMV/Q99/luPJzptAfmBwZNdK4jNV/GurOZTzuo3uv+3DdFw47PbtZCCD025NA+ZZ9V/6Pf20AWQAG8yw2NPSLfAAA2EBTW/UufZyEKUB68y1xwBPr+RG76xcUgsy5WdK10JxWwN/NWu+Pb+SscgABdNWy+7bCF/7N9KDvfX++zRpPfoY1xOY3Bv4ahjvXnkQISG/i5cMJW8Or/ob+897CG/qUHaTnGQ3+nr+KZv1pXlX2w0IAxrhwb/hkrShficQ93FZ288MI5yzYOAAODf90IcyfsKzf5ynPhBmcoccodg3+ihmiXjHG/w379oiaY3+YjeaN/wlwFzb06EmCIeAAAMIBB8+BX3Ayvnn1nHrw2+CWcBRN3d1/3/V5Ig0pv8i9/7fmcoYyVb8YcJo46DscDcy29PNRD+oAG8y2/X8yoAatvry4ek7EjmZGz3crizN/9EvuFSyU3anv1ZdAumrBjRvgb5j59kWMsABP1/APPosrx1W6mTTQ+2/ubwfjmcopk/aY7NvMsZAAElvhr32sQboiPNe+JLj4B518w0TOY5zOsl/zHHm1bxJdu5v6MStyTHTZeCofmiF0mAGeZam4glnAzvZt5llh1eIABAb+BfP6Gw/dCUnJEm9+zkG8t/9vAQrf3LX8AMdVb+TJjuFhm6t3wAFq39EWHkZr+6E5QOD5fdK9oR9WHmMOtf7JY6owiPb/Mrh1N/Rc3iK+zIg7oEDvr/Ck3uoAboo+igGWjes6JAAAuAR6Qv180pXBl5lu8y1+bs0NHO5vnvP3ubwlXeQABAb/6JPciyIUh5roFWwclA3FITtL1r1EClkZnMPBUAgN/iwzwAAJhAkQAIDf8sM6LzPQ+/opjV2/8gAO+v+NSCV5n4AAQG/ga+86YG/X+GNGwrDAAAOd8NwXb+vAAQG/80g03AGW99kN/J89w8bk+bwAgCOnNwVfqzTXTV9FcADv4K38F1/L0T+fn3vn+dMep99l1+zpjfrhz+bz+pHL2+IAALt/qNni6+//N8JdA75C+zdJlH3PMy1kC0bjoIAAN/QG/7ypyFoB03/sb+AN/gnwWyj7cQep3901WmlAHsf9YgyeafcJJnTHb+fyAAb9f6BuAtGewrXdAAQO/qfzxQt8pge8b+z2rknVnX3/a3b0f2VzXSd/GsbhQI5CyCs8HkSf7fjY0AKSr2NAFgAhvMtE23R/n3As+Nv5PMOTb+cBf/nxiD0y+4G/X9EC/ELTCPfB332SX9N3+yLf0V7Dz1/8h0ot4B39Z1WZAAb2/t+vxeiC13/C20tBrvwAIDfyAF697PHvXQzPoIX3tgyLv5gC+HOOTR/XTVslJJtv/kLMyB3cAAbzLX9ZJcwAu3/ONfe2DgLp7S98vod43/h7/31/uhZnlKzpQYOGOGB2s9/OPXt3yzZe9z38Y1xU1vBUrwvf4p/anj9VrfCG/olBg4Yy+QcWgDjxAwd/PoBChv/4WaaCvYQ4ad/+YPiGb03v+yW8qrggN/VYPvBa8fIFKBMXt2SlvSMnspb83v6+aNLxuRJn0e/1BfH6A/PBxAb+RG3E+/q1ABB6el6xAb/A0rBVB76Xu/H/Z59gB/h9/0rjh3f8bv7X4J9Xha+AS0DhWALf7+338kdWUyDsJcC+8GzbScIjGuODG/tRZyOe2tV6A38zVOf/fHE5t9Q0Bv50Wu5qG1hfV1XvMCBdv7mEBW7h31/PSf/dCSpQdGcC2b/3G/kb+vIAMFv9QADx7+nHjqDmakC/1v9i38BN+FNdXidHuQ0t1Yuofe/qH1/wNBgoLx/fdllemyeFNdf2/otJCGudIcNOb+i+kQD9wgP4CL7OD8Y1xJcsf1XmEHTbPg/XcX6O9Hwk8bNgP1K38GQfqXG8lrNkAYLfzHv+/6sVN+iRfAgfipa3qwZZ0t1N/OaDFwD0h+3WIaq+gSkAiVv4ih/g/8If86beLBfbqncqhiLuyre4Tasx7+koYgG/iqs0uAHfX+LRR6VvCi0IDf1oH5pmfO0fB5Xb1T04L2eWerftn7+IPT+vR2gANTv5mb8XBfaoYJq32KO+7v6G9hh7+3mW6zf3LM6JtiUP9WH/iWz5IEVnf/GwY/CfbBJX89Nh/3Eyzv/dUeP2lmf9/9OCNNQ7/v+6OOt+HECzC27y/O2Vg71W/hi/b5PVgf3ywIEf5cP+SXeqd/um2d9fx4f/vYNhfhvD/ObZ3w/1834+h9B0eN9oEHp0w/ykf/Bb/3Dn3VD7gAfHf7Jv/4TdjGGXyrkn9zkL/Dd5Y388WXaV/aG/6jf4Rv7jO/Eb+MIAmh/+Tx8Td/qP/dAByj/ry4NyBMFQaaD8o/3PMraa3/jY2rwHSjPEt+2VrugAb9fxB3ATrMG5Wka141nkYizgf/oxSGNHFYfTT90pQDiA8/gCaH/pg/ijemr4NcWfqP9Z9LgR76C4aY/4caeGftwznZN/22V/2AMFv4s0NoMP8j/qvBqZxDq/dfF9mJxFpbkggVYc+sQYaPNDre9j/T2V86AMcodAl977QIPTwR/01F5Qf5PX+i8B31/x9hmff2ut9QfAbreoNvfm2X1a7xv9aq4cyIaTH2SbhDgPcZbIkDSdnQQ/ulx8EP42F4fqD47//d/5zW1iQPa3/vFreJvjNz5bh6Tf/bsc0U81uGM1reCDhlP+dOZSyPs/7hN/iQWAta/ocj7N04h+VbTQGIHwY++v4kAD87+6OvKqACA//f34IP+Q4hVAY1O/lmX/ocg1TfLJvm6vlXLK9gGLgGI3JSBPwmgiKDlba3Mf5XrPpt/1k3zkvvDw1Kf/SoDNMHwDzAdB2Y/6joHmP8mSGC+z9Ph8A88dv8VD+7Xnej/mT9w46Jpk+lP9OcB3AAqe/4Lf7LQYmU9DLOMPDCn9oXb+RICFD/6Ze3XjgNBq7f6lxU7b/TPunnwo5V+VgISQG/YPJH+eb7h7Y+w/0NL9zLeqn+vpzMp/lAwxLv8w38GTWSc47R//0P19eFvYCaZO43zUgT60/1uhjNgv9DnHlPpk+nA/7af8/cAkHWiXH0JW/Xf6kf6fgBJh/nX7hO3596G8y1MABdNWtfY6AAV5llnlvT39RBHWJAe1dfHfxSwe/X/jaGQ8j6KAced9OAGOP+IFm32/tYf94ALmf6Z7Neh+8ZItm/7jawigF4384JAtJDPZ/0CDqfl4q28+OnKAA8e/pLSMhv9q9Cin+hw//nbq48IdwZUoO0DnQNwy27mot8ZbC8Igex/Mn7L4n4Gs6aICEUCZr+Idv/eyYW+6ahgAQAbnmIKAEe/xmHsuf/QQAKH+ITFxfx22jJk/dW2/EbksgArZ/89f6nv/oxTCiBIrrvi2Mc/3Bv8KoDfYAeIAaqnh883/uYmkM8BH1T/pzWzI/8y3bg38An+HB7+qnk+t/8Begv/YfW0z/lED496xKIAD3+JaGad/gnfmmO2gABZKDvr+iAAXJ/19y/Bf+PMsIR+YLz15AN5lvbcbTnOLUGCPWl5/5fZBqm8pY9TRfFIzRF/84AO+v8ANBIrgAwkFH9zAACuf/QADTH/f9/hJACIqxgAHsP8yeRkJDI1BpQAGHv4mAAGd/wDzIzaf9cHBv/JzAodm5Njtm/tiP/hQdLgcwX+lJGcF/mUv4Dv6ZU+0fWZuveO/42oy537owciR+kmvCA5jC/1af4vKaR5WQj/wexo2QIs4D3mPRgB9d/0lZjFouVA7mEAkoAq0dVZ/7oALGA6OP9IrhWFwGu327RP0VYS7+EX/2T/bwusi/xOf8bOu+X/LbBmT9/Xo8Ef+FP8OHINU3Nu3pV3aSf7X0QgK/opsLrCWK/33wbeZa0xeATAfW/0N+24+YgECMgQSL/kCgd9fw9ug/kM3FWxxv99fkNcyqgDg3/PFWhYTN654aiqGf/FY+g6vQ89de54r+4pYlBP+He/0Fwl2QObK1Fwf67/H1mf4HwW/uc08z4euj+K/nKK73gAYvbzJj/m78Y7eej/xtRtrBLdVq9P9fpvp9vtGD3Sgxaf9gv/dAAVWAB+xfi/8CmdQABh7/Mvw76//G71lv7vcE97fTT/OJZg0/ypQeO38TAmoD/ulB6hO6kf96bj8X/EJ/tIgR7vzpj8vL15mwpKD3DZrS/5hf82v+rzGC0za3ZkPS2Rm8HAdhPQto/N2zwxuHvt9VY+iaehGzn1/qy/z+OAm38CX+er/ulBxQw52Vhiv+yT/pQdPNtfAAGHv4HASpH/7cvrZ/va/5jf/0v/H2Hce/Lhx3NQ2tf+0v8bX+7D/zL3/C/10r9av+Sn/Iz/jsV4uB4hf9D8PAx+HazVmx10/6a1ZLdP3n+Sz/uP9/AgExoanUBeX/x5DtAgJ8/3DH+EgtlH+vxjRZB3VX0KH+NfBs7/PD//wXpE1F6CxiACgn/HCUfjLb9f592/QlW3R2717xmnzrH6Tw4lP/gbhab/iH5tuuwzf/yvPZ1n3VDLp/6TL8W6erP8M3HkAAzzLRMuyU2flv9Bn/nfLj/ZjCQ3094agB3PmIBAV7AdPfwVZeFv9GX/cYJYt/lm/9bwZr2txWYeAjFJO5LQ5ZWYVv+wb/lb/ekJ4SC6GcPVv9QJeIDXBv903vyVMZtv8R7+pgTWzsJc/700YB+2ZP27f7LRR2gAGRf+pV8LBHd+Id1/hm40hzp1ftlyHDRAM4AIa/zKr6ROPjae2T/3SqWSOSHkZEv+uNXWCD/J/oTtG7iFzv/XBHyTjS5p/8AGBPe6ON4aecwnP2/5W/+x6YsEBvMsRnT2jcN2/6q+csETCQWdAAxF/ik6DCgDCSPK3+Uz52C/jxsGgAFTv8YIB8d/0qDgO/39loaSN4J4EWStd/6iexzf7Hv/Bx+VKDW9/hj4/LACGv9iZevJzSUhvSgC3f9cAB47/y7/LJnju/7ZcGUP+RRbUwLgMx7GQ3ar/z2tvMsHVfS1B1NLxdIa1bO/7/YHv+qB6RN/KBEuYDNaGv7/fcf0nT5zrcHj/JenrWP7mTnywNbv8v/vbPWqN/1R/ujB5hXodIMIxBPaONLjmwd/4neTV/C6Qmt/5Jjirf4Dv+oS+lC+N4/ttGeXfzBVcNa/Sgmsr/Q3R4R8NMf6YatEKe0fIB/P9PO+sf+YKu0AA/7/JD/vBB4C2aeGNSoBsO3fjLJMswzmhIv9CgQW7/g3ppgADYf6ZMEuL+IPTCdZ9e/9/H8KyAEP+IcfF5xp7f2X38AoOvMt31/Kb4LRrHPlZJbOd9GJKr8OPv1r4jj90O+wJ++d/+6E7fK4Xf8KP+Ab+kE/+j/0DcFLf9tOuWHemH/mh/i7N0rn7sO+1HX17/2T5tZy9Tv9MAA0P+BmtMe/vS/zKQEQACfr+MJDcRCihe4A/7UP/O9mMEA/O/i3FJY/4oyAQH+TagngDhyC6xIDg3+HkA/7/0qAJR/xsnbIwDIb+owHhd/7l+xdf/kUNl6h29PvlgTQe8SZcCP9pH+SDrqLZ2KX/3qie38g5uB9P3rZiblik/8LENuH+Uj/kAAVs/2lVcIABKH/FMkhIAWf+90paqnoafGf9/GR/y2/1UAC/bcpJ/B2vs5BtZe7+3GVv918AfD/6BB1s/0wAHrP/OcEhsgFbZ8p8x/IYWXeCAPon/eL19VAHA/+sT/BiHkn/Uz/1vuwYIcAf+aN2Hr/jFxvvQ4uIccf+9tmb1wpW/uUx/jAbU1m7P+WSgOA/3jrHgP+JYOqPHzk/ZJ1w5/wu2Zjn/6AWwk/hyhqp/7YdZA3C4Ux2N/9wAUJ/wM1vMgDPb/Ln/EeNwB/3s/9GOsFP/CB/LqcJUxxhoGVv/9KBlvfRpZ5QOOxv9LP80P/wDz4zADx/wVv66jumoB/1whSf5sw9C/8A4ywv+zjv7Z/5sNNMf8mf8ov+ANUAL/uCQ/GIaUv/tAhiBr4yf0ejSYYbcf8kv+9L/IL/skB2k/5UH9TtntODfY74E7wwAH7v82D+EOzI6yK1gES/56f8sP/SX/jCDuRHZn6fpf9Cv/GX/gL/5l/+zv5eXfYgP9L/HL/2ZP1C/5HfuPwA8X/ykUW9+87v/U4wCv/OJAEr/tF/yC/4pf+o+WziA1L/ifpEuf+jA/vABAAAWEBIrgGX/ur/wF//gHsAf9qiHxn/v+/ptwBIIYQ3DbP/XOAZL/uRHba/7uf+kE2wojhz/tIQ2iwbySsCnfrK95z/91//D3aeT++v/NQHLsU3ywD8aABd3T8Bj1G36/obQ6wfU9f9/1Wq57Dohw5/43oYENy/P+Gn/nT/oZByy/+5/sYoA2G7IQv+N/8zr8Xe966IEj/EYhxkABY/5sAAZH+/X/ygAcV/6i/5Df/3tnDn/OLQDCQx3naM8BH8nAH/db/4V/0y/4lIMOv/qxDYL/ii//6/59qZ/LnnTvXD4d5/5W/8eYOeGhv1/Oxh7i/7pQcAf/CP/qxD9T/vJ/0of/7f8G5+lh/K39uZtNAf5nf+nth3W/nN/rYf0hf7ZT+mmPg3/Ir//Z/w8/5Zf8jP+sj/a4ht832qvotf8QdwrX/Db/pN/4yd/7f/kwRdNwcFp/M/5/39eZYxZscAArZ//t/6ZrmUQeELhcyggXH1bize/6Oz/1v/j3/PdV/t/wzEWRcslCM5bL/2hrRuIXf95P9cgmIR/omutk/1Pf8D3vqNw/fDEe/o9c0535x/uWbZQ1P95FNF/9jXGnv/gHmOjDfAADzf/+uEKTd/cWhLnMU7u617JB+m3+4b/Ck33hgabf5RIZZf+gX+C3/JH/wS/9zf5YmzAX+LXLixN55B56YHyf/25fCk3DI/uQAEx/6ZH+omeg0/J51558GedcJICHt+Ad/CTptQVdOt/0AsDdeLM9AG/x5g4SQGtP83tZ3nSH51jfX1+dcm8eSypcb/UQAdPfyRf7hnOg73pj/qiVrYSKe5+QhNvLhub/ZWDrpq2iSCuP/UWAtCfLgZ1jayi/+6id1Pnz9/1gAHA//tf7QusPX/KAAGN/rSsd/f5SDMfneQi9e9/vz/5YADzP/gHmAwk1oAKd/21gkA3/m3+iL/hn/nz/++v4Q/8iRHVP/QX/k3N8STerv/b3+wcgaE75zgnq2cO7cM/2MeDc6hMc/6hd8NqXgHnHknAl1nRI6xIFDNsoF6ATjr5AIa/2i/5Av/NL3Mn7Tihwb83GP8Ab9KZnWvL3AAGPfzlv56rOjVvTd/47/sTLzsGd2kPtn+p+D6zV5IAO+v7g3+bXm+nve9/vS621f/+eNeX+9mNT2/kB/2Vg6yf9lG/Rv/cG/rxewHN+ecPPQOPwnBT/0RwDIACCDNAyH42063/0djTZoaiP+bl/HTVrAAD7xHU/8wfs6L36vm3R/+bB+Ef8eScjun4n/WNbYcf3cGdHH+9n/Mn7Cl/ycf5MkaVf8TQPaUHCsDt46XB/5lf8XR/PZDZV1qRdk1f9ftdbG+JT/whgOHfzIAC50E4f3p2Y0B/7J74Ef/yv99X/GTaOkAPm/+cAChDup7+rb/wd96IAACwdHo0Tn+nt/i2/2lI4s4fiYNt+Huv/JM/ps/+v/Y/CfNRHIz/KlB5W4CpQaxramHWalLskcxa/7XO4Lg+RvWrnHr/ZuoNL+P9WINbn/+f/qbbi0n/+Z+X0MtjLdKDHWf1G/xLv7qv89eG4N/8fiPHq3PiDeZaPb+Z7/+fXwed4nfaYasIcGJH/i2iTn5Bft7aH9SVHFz/Mv9lc/1dSlHo3im/Nz/kogVQc7uf52S+nUHwbrBl5xT+9j//Nv8PX/jU30p/hqc5z/4l3/ibWpgz0+Rt8a+bikeSe9MGdr/bj/iPf5Pf84v9hX//9/YmXpRs1vIacL/TPWTejx2ZrTEsz/6tkM9yAEFEJv/+sPDJl4V/9jyGBLPN8h6A/+04Dqz9pNA3mWCsAN5lt7Ih6auHOHJf/wt3vzP90f+eKtY1ses/9sDsr/8BlYqy9DOvn+vdR/r+/4jd8oXfm3XauIwl/gAO7c6e3ytY3fej/8r/go/1y/+sv+j0HDr/6Eq20865Z9Wz9DH+Jd/It/1wzxOve1P99oBdT/e2ftv/7hv9bd3958sgACv/jfgBt17Wy8fZ+O4HEu/8g//IJ6/XfpP3Gn/6e/kDgyBf+Cf9mJxdZvUCvj8J7Ob/Fu/rZeO4HuVnwHP1Df7gv+xFWJd/W9/2K8Erd7er0q3fARzzfw8A/zp6DcXe7f/3F3MOfsKRpPA4FT+6x/m+OZ18AH7/iLgDzwO96/iAAETP+AlwKecgK/+9zlsl/4LgOLkQN/1ZpVW8u/vbd7tAA+D/mi/6zkAanEDTv5yDetkbsTv4i20iO/lTn6y7+UNeis/505+qOXtM/7a3eCNeigAGmNGugFqNP775u40/lktYFH+9wADZob8X++W/m8yyTiA9Z/lM86E0GS3VuOlIiP+A9Vi/f5Ab+VcpvO6Bwn+zzLEmWbB2Gib9hzwbZX+NrplMnCMEGaRvrNMaGb2ajmN1/5G/+LIhmiqBLOAyZ/rleiGNGl5etIm7SW+P2/rw/76eQ76/r3HTyX+FW/u2f4CZOqj/vkWZMiWNV3sJBYdMAkUWtpwZ7P++f/k1T4/T+4AxIEf51tmKlBp7n7PKGQM/hDXrDb+b6/owIYSXG3C4CwADKP+kM/kPd6bve7zij0p7pjmCn/iId5ndWmLzoMGijAO/b/lWQDY1wTyhqbLzRyQ2M/mgla/rIowDl+v5TW+iefng/Y8H+Zr7OIf6vkGKz/uTP5PzGBVqAUf5RP26e/obtLF7+51PkEJ43pYRQAYxd70bg6e/uXv6WUAT93pw1B/PgnM/mwU4pX+1b9sY/4fMsfM/nLXqbjmgTnptv78suje9lZ4LgHm/55rAf6mz+OO/nGMZ6qGQB/l3n7tNGGu/irP4Kfeh4WorP56oeK5BjMAFiTmIC3mGObj5+3TRiQYCW/+DOhtu/4FIOERyFff5pqGOwATu04ZPgjW/mJF5H7GB1vjT1ZjAB1z/oG1ia7+3u3tA949Ke529ssAEHABRshu2Gbaz+TD3vsAF98Gp7YKSZag/+0t/vmoZyI6xaki/nJPn+XTVh5v4rwA3gAZ896H3+cf/hBubA2+lwASsAFzABYY5mjvYxf+9T1oN/7MokH+fsFOamqImAAQ5n6PaehzgOnv4hB2zqwD5Cr1l2gBftCAGyz+sIAfhICXIOCIAWuoaHP+pgSElobR8IFlBsgX75n+WNbFXP74yUUycAfOZ5/+NQAWPwZrOWM1BvE/5Ff22z/tsu4ZAAvyhpyf4y727j3is9YPruMKDk8f6bPWvc/nKf4Wzgo/dkPP5DhO0hWpw4jK3+chfo8/6Mf2pwAJN/41AAMpxgkhJ7oiyN/tsAELbuto3rpoZwb+LP/pqf6/Tmt9/h/IYsgBSeDsD/7MTetV/njJDc3+2f/k7b60xmA71oooYt5mhRboupBov+X/puZ/5Ob+zzLI7eaf/+ET/roX6234Q1/kSACKnGXTVvJro05mTIAVuH443GCoelYu6sQAt45tf2ZjPehz/iNOandmrZ/s+/6c/mIwDkNf7lHGEe/kLCZ2LSLT/rxv4PX+h+7g4EbOiAe6DmovbwL+49Rn0ACygB7wAYnv7VR2X//sLd7ivWDZ/rR9aAv+18hhp/48lmaL/mGqBZ2+/wgD4/4j72Lyjjq/aDyGkAENCxpO/+qi4O8yy23+ttAKnuABJGWH/jr0bVZA5QAKwf6/Pe7Z/uUX67XmcvZrI744X+DOhs9v5K5YDoAQ9f65z+u7/lpobQX+p5yCyUB4/+Ye/gT/4PX+YEgHC96KWIxyTvV/4kyouesCyZ76X+wR/koCbWn+GL3lTA7yL+1W7shqaMJo6P/iwubJb+di5l2waytege/oN/57X+4qZtXGYWQW5OBp9PgEAApu/mrJTc3+0VAOLlbQf+ZJfo8QAACA9UMLB/64b+7gAGc1ox28bL3mTGir8w0hWkPF7O3+9oAU+f6eHAm64Mrf5zAmH8AOmO6tVcZqRt0/6cSA8LZiT/62PmwYAb8/4J++qYARVt6hn+LBTo3T5PbuWV/piAGhAA+F/jVXp93+rb/p+v5WeC6uKDDh4DvWtX/sc1abrgD1/mxLj8TmeIAfEv5z3+9X/gIA4WaGC9/s8wAdkgQjvkq363H+vQAd7v65L+oCxjEQbvr+7d/iBAEiX+L4AXhf5ITeZS/jiX5b/+M7/nCL7tCeaE3rpG46b+2jvpTwapecRGDr8ABFv+BrfsowZwn+dQaHaf5AyWOB/rJf4y/+2laFsf7O6Gpx6Pfv4VH6mD4Kbv7juAXS/jCNZJn+6ZvjjcY19m1p/vJg7dH+k//n0f4il+cE1nM+YTrGashof/50yGCzlon/4bX+ul/mi/769GW9/unt5TUUu5cBE/5/7+0B/v5AFjn+sRVpQG52l+SiZhZX4HzmSM3lK57TCeVR/rhv5Ol+vSZjBv7ddwGG/lu/Zxn+cl/p0AFjL+JE3lU76qJmRUAQVlbV7+ZUAUFLBYb+8Z/vI/4CM+Ob3ulSR3VmrWbl8AFgQB6KAO3oaYwOOHkM+9DBQBeP/hHv4Aqet7APGX4fx2313tVuZ2rWaIAdD/7lFOmHMFVoZ9OeeZRoS6Dt6G4B5hWf7Y/++l/vmX5PL+dJ9iEAAll+4+hqpN4ZFm3x+n9v5vMs8AACZv4LZWnpbmJf7ifWTD/u3Ub+luW/BvWXaGTein1oY/7s7+Nsbjp5Dfr+Zk3up9bwLmARQAL/4m8u4G/qk/7s7+0MhrJv7or+X0AXvA4z3QN73h1f53vexm/uAAEYu+AnBsI/45tm0l/rhf66cG+F/hSv75lePWQO+fb0b+Qr9n+95crmMZ/uVAGIb+JG/pS77wlQqK/vpQAv/O+cltjAHNQBFUAThv6NgBcT/g8QYZTeD5fssz6wfez5fpiwA9/+8mDpy76iGGUODhLv58u+xj/gu941G6Ju/hBubAV+reBqt8Yp3+whgGBX4UgBnggNyoaGGGoohprOZhQAIr5vM/5KyGBB/kBOC8B+5cfpOCywdAA7hlCG5mr+mBHi/u7WMGl5BgPy5pNATdFF2npY6AV2/iRX6z567UJv8gCUhOooAVKzb7xslFfn5ti+n6eCWByfY6wBWrZm1YbKpmE0Jit06iPgQm2N9nQMNGnFfhrg7Br+ZK1mYxoqAQMRhuCxAL7gZsAVGv66bYn/LmKG4Fu+Ca/pjzBG3+sAECdsaGxcet/ufMiabWcG/lx/4FEGWu/lmv4HdO7+ZnWCbdROD1/m/MSKX+R0nmzOJdSGDnbglP7Fr+ZzBlMGZt+opH/qyp5gX+1UdmJ544CuNa/kXAEh4OpcAbd/7mf+WT/nZX4IleXH5m8yz27YHa/v0OYtaOBh/ry/b0P+T7ADjf63kAWNbA9f7E/+nhoKR7aWABOhvpFFqtn+vwAXcMSWeeMRphLFbphu85Ri/1bBiesIAcTv7tOAHeDnbub67+/pVp77475Ccall9Y7a9yHH/rNo6J5AWVfkF55Sf+9V/qnt4dX+z+xvDOa4vKn6/gXf4yv+HF/pgAEk7+rkATtN4i10FVfvv5pVV++03jVX47m6v7enE3qRL67LLDSC6fwBmres63rsssa2+oIPollOPbeiWU75N607eh/PoCleGcJn/AHxN6ZjLIAgFhd6nPeoyyyFlO7nThEpa/t6JZTljPpwIBiO+oAACKIOdo7h9638Adm07mdOTzegE3ollOOA+h03osssYCAchPqMssSdLHAvokEOxrTii3rzN6aK+oAgHwD6CdLJAgH7GmaCAQOvpwIBbWZtKfqy76nCAYmJ4Rt6Fm+oKfqDb6gCAaMPq1N6fzLMk3oKb6dTegmPp1b6B7erVz4oRuBI+gIgEdt6QiAU83qiIB4iAXh3qSIBes+j1vp4b+uGevwgFDD6PCAcIgH596YiARIgG1N6UiAUAgEQIBZ3enV7Z0IBNzTowgEFN6zE+ri3pfaOJo+pS3oJt6+TesD3qqVOx3niaPq2IBbLek4gEiT6KzeqpU7bc+qbesF3pWIBACAf63oCt6lv3u8AC0ssWI+gAgHvZmOiAYC3p6IB2reg/vqXc+zsADAgH4IB8reooPrTZ6BJ+vF3qfN69e+lEibWt6qlTpDmb7t6aG+vXvpoTG0HegnSw2T6frepBU4ht6Y5hqeU4J0sgCAXU3oZIB17euuJ5+I4pvegq3pVT6Bo+mTX6pt6sM+oW3pYt6rSAVTX4yvg0Heml3q8n6rSAZXY5VIBNSAeGvpDt69SAaglb1t6U0+l23o9t6Grej/AHFke72JuwgHz96iC+h5vpmIBobegT7YLt6+o+lJMbrt6oreiWU6iD61OuvwgFa967feiyyzkIBeFTiLX6Hb6oHenB3o/EG6t+vW3pnd6QvNqIAB176lyAehYaG36gAAOQg5Xeo8gGl66UHei0vrvIBB9jgh3pId6VLTi53rsss23ekc3Y7m6rferh3qydORHekb3pqomFHeu03pib6NHehCgGKt6hp7nggFBIBeJBvpU4vj6Kp+mSwb1zelAPnGPpdN6WvevUgF+mmBJ+iAgHkIBZY+g7X6ad6KQNrp3pgIBQG5hG3q4t6TiAUKQ4x0slneuyyz4d6CXej77art6aXeiyyyAIB7zetUgGMoBxKAb0Qart67veoOPrHIBmyAUD750gAnrejAPrwD6E7el0gEaVOzsALu3rjj6RjLEnSzJ8+XjegEgEMssDCARKgGZ8+0HerVPoGj6YVhoNPoXN6KqAWPnon766PesZU7KSe7wANAPo31OIBJC/vp7D6cFXiygEdN6gCAQc3pp0sOqAW3z4zd6c3egt3pxtO46lmt3obd6W3elvPovzeB3emK3pgd6J3eouvq5A+O5uvz3qQL6Ic+lBPos++f7euggEvD673euL3qO96S0LjI/pbN6ZTTtUgEGMsfzLOL3okt6sbeswgGzj6O/PjkgF4D6LCAQ9vp91+g7egq3ptD6g/nue3oKt6hzekU0YUL6Ym+twvqZzWhXeki055d6mwPqlhZxj6LLLCs3qJd6BTekYyxS968g+uWgEDT6S9fnT3pFj6R3eioLaPt6SLTkKPrHIBFKARjfaBoBG5DhMfrdj6Qo+vvX6Rt6OA+pW3pPN6dvvhG3oW96izejEgFKIBxCAaQgFLz6hYzueQat96OA+kEgEroBgzemugGMwun5DmEgFjb6aHeooPoMC+Pjer73qrN6gCAQM3pmMsJY+m/X5IoBmCASIgE/z6RfekeU4+7+ePLOEgGqd6QSAYgPryj6ffekM3qHN6MfvliXr7t6FvesGvpfoBv8+rnSwyB2Mzer43o7j6UU+uygGPoB/feo4t4AYBWvekBgEC76JZTtDhbsIBiremO3q8IBCNHuMfrqtOaGAZ93qAIBcg+sAPpzd6MrTnUvquT6/ZTjZe6oYBR/epggH4YBCbelt3ptN6xGAYyyykYBpzRtV3rkYB6GAXhgEwt6LTevF3qtN6dGASnSwMYBrt9raljMYBuGATQvoNT6a8+pxgEeT6/ZTqlV6mT6xqAYIgEXoBgmAZQPron676ARkt4SYBLXeoAPqxIB+GAdv3pzz6hA+i83pzxuJqVth3rnD65A+kEgGqYBjA+hpgGHN6LYPjpgHYD6Cg+pRgEwt6smAaAPqHN6NItpYgEoz6efegZgFit6BA+igPo2YBq/vtM3oBIB9mAV03r4YBVmAfwPqHN6pr+r+3red6vWlgf3rmYB7LLCS3rSuOZ6AYYyzSYBxCAS93qmj67o+obPqjIBmSASegFzB21OuhFgFGMs96AeGgF4d6kaAUBPr4b6TnTlzJ7jG6liATTvqYIBiTTkeU4P7+t8+gMgHAYB9fesNQ7fz6Co+kn3o5TOoAfs7AC0ssCY+gygFBIBtHesR3rAH+5pprSyxKt6PJ+i1gEQoB6tHgKPofd6aWAYAgFmIBF1DtgfoDYB0mAWYgHdN6qO+p03o496Dzemm06YH+6CLkhbpIH6DCAUEgETYBqp+sgPozYBlnTl9V6YD6U++oW3qxIBgLLOhU43oBFB/qigHfN6mCAftgFXt6R5TrKLQRt6yVTlfPpaQ+tqWJyPqxtOu2ARO3owj6MU+hDPqHN6FOlmggHA76rK+jG06+tOkW+iB3qvYBXB/pHHox0sl0+lJgEYYBWjhq33p576uTenogGAEW+7ehDgEg4BwiAQM3qU0O4OAcDgGKIBUWAQjgGHNuFa+t2gFlN60nepFD7Y96sc+pggHvN6WOAX8yx0j6Ik+hi3rVIBm/egyyx7NOTKARXJ7I1eht7qjV5yi+xwXgzM5RIuv7egYywCYB88+gYyyNN6wzerFgFRoBKvemmgHgd6movkbpYRYB5LeiU3qNN6Q3eqrvoRL6J7epJPq7LW4odqOXpoIBVE+mK3oAj6dTenHSyLd6qaAZZ3qzj6gU+gxU5llONm+rAgGAIBIuATC3oZ0sdI+t83rMr6uA+gCywVd6iremsvrCz6T6AV9gGLN63aATMgFDd6szenIPpk96Eo+tQvrUYBA0+vqt6E1eiSAeggGfL6CuAQePrK4BfrerzgGOL6xTehrgHhL6tm+pggG64B/TegbgFxz6xNXriH4soBi6+kEgG84Bf0+v03qNt6vjekEgFZYBYc+rlgG8Ku+lTrCfphb6wiAW3e7LNOZTTmRPqxIBc8+ljPqLz6MI+pyF6Z4BsU+pggE9b6PIXtEgFw4ByiAYYgFqIBxiAZP3qkrW5eAdngFPN60W+jZPr5N6Ic+kFLYt4BKk+oAgE9b6iJJgKPoU4BGGAaU/YgdGPjeuf3pzL68CARq3ra96gmAWdgHYn6YR5vu3pD4BcyAaMH5Yl6suAUCPqAIBYzetWgFMt+ijerwPq2oBfzLHAgEpoBaTThnSzyD6vU+q2gGcYBnnjp1gEKD6E+AbrDaNYBVqAZMfpL4BI0thG3pJ4BRTepggEqd6GdLJBU7nr6EXjrSPosss/ZTum0YWd6Eveo/3rUMOOzegmPqRIBdNTp63qc96wSAa+PqtHmYBAUnSw2IBASAey3qM4Gj+AR23r8d6FuAbBgHzreao+sdgHSYBOo+kTgGo76CG+qs3pHlOHq1mPgFEoB9TTq5PqqVOOJRm/Pq4EBkC+ok07Xz62Sbm6Pri96KzepQQGZ965yrn6PpS96kAAFU3rs4BNNTpet4fwBJZToVgGAIBXo+lNgEAT6cm+qM3q2L6CbevvPrcL6zJFvGPodN6IBAQOSZrt6vY+owgEU5Wb6AdCvpL4BIIjhjgHx96WOARegFC1OAo+jx3pSEBW5Jgf3p496wXemF3qcIBLJ/gmWaLNOFE+rIQHOt6wA+hyyxZoBfjetYABoIBjE+pQPodN6JZTjSH6JS2PE+ut3qqd6vjepegGdt6J2ASMgFdj6G3en43ra96LLLNgQGz4BfzLEqf48R2kzJvW3oJoBkC+kfgEvj6p2AddgElj66uAXU3pllO34+ooQEkt6o4+glvoNL6R0+mU3ox969KAYLPoGj6Zbfn0p4WL6jzeq4QEKt6lhAbKgEIYBQSAQ83obd61uAQs3rDNOneAWbPqgRe6lJi4QFYj67hAX9PqONOfjTrXgGfoBtTej405eNOTbTpqfrJ5WiEXiz8Sqz6QS+sQQH54Bj2AdJgFVEBEvevk3q84Bo7fgMPqNEBbhAZYQHZ0suiAcugEGIBqiAYIPpSIB/ofrMQHFEBvBAQy3pUdOsSAYifq7IBO0vgMY7wYBfzLFCPptN6uyAUlPqDoBVk+inSw2T6XY+n63rZ0s8XemJPollOfTejsQFPYBbTevEQG+T6WLersPri96bxASx06UD65nhpFPqoz67LLDOPoSj6NremWU7xT6E4+l5gEdt6cy+tJgFH4BO5Tv6PreN6ruAQH47rMeA5/kcQFAYBD0+mzvqIL6bLelggEuT6SM+gmPrjoBjTenSPpdj6TneimgEwkBwXenCQFOd6NhAWWU7wD6vK+g1PpDt62XTgAgHcy+dFFtsgGVt6WG+ttPqAssOdLEs3oBIBh0+mL3rEH6ovescvpp1OnzejFvogssQu+vwPqAoBeuAd43pZ4BLLLFggGDoB+TejVPoQz6FJAXYQEBIB5CAc5HDyUWxPeukQEFN6lJATzvoK4BX8AdugG8kBl0+qp3qAoBFCAbKQFZ0s8M+kgQE296RjLAyywJd6AI+lhvorN6mSAXUvpYz6OM+sF3op0sEF/oHbobEBzRAVrgH4IBiuAcrgEPoBNWAYdgGcd+KF/tKPqFEBTRAZYQFFEBQSAZ6QEFt6X2ASgQE/oBMLHjHSzrd64vesHgGBN6EuAaOs5TsGHM+id3pEIBovenaQEwYBQzesEQGQAA4GAWf3qzT67LLIp34WauhnTjb3pF4BjLLCXgGYt6cresfgGzT65xAeQgFAd6SGAfKQHWkBOG+iyvqFN6cm+ssgHwn6SGAQU3qWYBKLepAvqnNO4lTupf7QG6QJ+nrPrxT6ky+vn3p7NOwiAb43o6z6ireie3ra76YB+l404S96Q3eqWQELz6khAePPqzy+RIBvW3r3EB6k+sC3pS96Qk+rXgEC76dS+vx3rYD6I2+nYvpkIBaO+tvL7rkBJrThQgH4b6MVTqs3pG4BcU+pWQGwkB5hAZQPq1kBtGzjWQEllOJresFf6ru6JhASwPpmEBPJAeG04VYB0W+vKQFSd6ipAY4QFfo+dIAAoQFBIBsNFmGQFmMsygAIq3oaAAHRAZmQG50stMXlIvo4b6snTnpPqy76EC+uEvogz6pI+kfgGtT6AmAZ+gEPboRTeq03rxd6eretYAC8oBOo+vQgHHIB8JAd9gEFt6UmAfCfrMt6Om+ul3qkK+ns+gKPqSd6ZjLGi3pJoBXTer63p5tO1vejFABH4BbLer63qSEBA0+gC7oTH6CTeogPq4kBGFAWS3qiIBApAWlPrikBcJ+iWU6TX+gCdrWjaTIBQ7eg+QHot6pxAeAgGvN6HjTis3rCK+xnuq6QGWEBLZAdrgGsr688+uWQHWAAPjemGvp/Mska+g7gEYT6jfbpagFsoBrjTgygEJd6WlAXXU4Ht6hFAfqQHAt6py+iWvpkIBhpAR8vrvr6gcXoPU7BxeZrpnpQHw4B/8AZggGLkB5ZAWbtagoB4veicPrwBGxCAce3pjN6BhAVuPo+d65aAbK3rVIB6zesCyzA3+olevW3plN6adLLM3oFt6RBAcJp5/sGBo9rxm4FEBjE+kGQGsYBmSAQnSxNkB++AeZvp696rHTtF05H4BATejyvqIb61FAaMQEQL6plAZyQGIIBOM+rzvpyb6HvenUvopr64o+ggPoS76Zzens04lj6hN/rXrpBUBSM+oBgFBIBkZAb6QE/R+1juhNQFH4BEpAdugHKtOiaAa+QHvkBkAAKqQG4D6Ya+hQfpcr6irek7gFsUBYzeozvrHEBwLelJQFxkBi1ARXgGAIBIc+uDPoikB6zevEQGMVOo5AZggFAUBszeoOgGtN6bxAcQgFoT6cg+nm05jN61S+umQHw9656+sy3rBEBOMfuj+5FdGC1AbJQGt4BIiAYYyx1L6exAetQE+N68A+hhPpvEB8eAekQGlr63G+vZQFcoB1gAA0Ppbd6YpAUtQGYIBV1AXqQGpUB3jendQHKdOY5AQqQHPUB5CAa9QGQAAgeAZZgGgkB+0+on3pp0s31AVaQG/UB3O+sd3ru/uvWPpHs4PHGsNAbuPqmAA71AWmPrVb67LLImgH6L69pAezgF4d60HphlvoMUBlFAfk3pnN6ozejj3qT7O03ekpvpskBo7ejC3qw4BKOAZggHMt6DS+lGPovEBFmZj+PZfkBvE+hCQEYkBfY+mk07Vb63G+tifqT7OqTTq1PrEIBQHelBQGKt6pd5rJ3owz6+begiQHaDuOneqCQE0n6bU+ilQGikBkY+pkQE0T6SaAX03r0UBlVARPgH1NOx3ev63p/YBZbTtmQFVN6Vnev7QGnkBARAZjQHqkB1W+r3gFYxmc5AQk3qCz6Gu+vcUbUT2m1AbTvpi0Bz2AXOQGOUBxLeqK3oJd6ZB+mS3o80BI7euYQGDj6xeAYJQHmMs0S+oq3pvkBgg+krgHT76ATenR04vj61a+g3H6YHOvcuJ/f5+t6QG+v3U5NqGLK+li3oLD6Wx+nvPpPN6YD/gmcaBq+Kk9lA/4wHeS4emggGroBz2AXU3orN66Y+hDZZJIBH6AUgPol0Be6AZhXozN61net43rq769KAUCgEFemPzLNxvqUj6pvDoZ04J0sp8+leyb3IBFyAf6Ea3z6be+v0a7tGMryAVQPoYYBr8+tEvo7MW1WAd+gH176qluj3gECYB0WAUC3pEEBmS+jAvpwL6LlTjRQGjt6jxAfUvotN6qC+uhQHcL6GC+swQF9N6tiAQG3o3nIh5AXj3qMssNxAc9gFcss7dTmfQGfMWd6AeyyzAAAdTejqPpBIBQRAQ+Pph0Br9AcpPqOUBKZAbp06McmNXejSfpbz6k6vr2Eb/MsJw+soAAeIB7TerAwGPN6vOAU6QFaHebgHjS2ZN9+cY+uAwFCEBVhAUb3rGHeLC+hWvqOkBbDATgwHi0ByE+vwvrudOyT5nwvqcz60FToP34Gkuafus8gFB4BKS+uOPrSYBvOAaYACxkBJ+AWfvpR96lnevM3owt6wzTkAfosr6Ya+s03qdkB74+m03qQL6HiAf43pAssT2AYdQE9L6olAfGgF80BFlAVZvrQL6Wvel/QHL665DASnSxCWGIZLo63p7N6PG+jCvoU0BQeAR8QGYEB8zemovqcssGi+mV3rGkBIk+gEgH+N6Nk+lMvph0BQ7emlQGt767JAb/w4uMBbjAd2PpBMBqM+gy3q50syjAZOvost6JuAV8vrLL6lA+myPrRMBd3RvpU7uj6oa+kcvp8MB6zen03of0BtjAS13ojD6JCAbugHUL6KS+gvPrN1OgbelggFXt6Kk+iMPpxt6dI+u83p9N6PK+gHgHSMBiq+kVgG30BwyXrboZxd6tTAWWU5dj6jTAWsvoaMB7LLMTgGd0BC8+nEwETteJHAITQEtUBteAcNgEv6eq++q4wFrL63S+i83rvN6SdViyvocnetkRptvqQL6RjLFkwHLkB8zASjgGIMBrz/pIvrSL6PdAf/QGeIB0tARSvrdj6uA+li3orMBXS+uZEYsr64f4JTQH3UB5pATa3pX4BeDlhpXq2EBLO+u/3rgr6uO+o9QEud6pVAaSQHLIBkC+li/5hoBOtAX8wGzL6+mAR23qkT6QhAQowGqUB+o+pvyYA76hw+vowGsr64lAdQvqnL6uHeoq3omGGijAf9vri76jzetYHqvMBZZTmJQGSEBmCAViwEKb6n6AQIQGMssHpzj8wGgr6/TevF3rvN6fKAeiwEdN6AmARSwG6dOCLASCwHot65m+us3qLN6JY+rh14Au6eLAcsgGRr6WdLLywH8sBWY7sSwEssBLGAX9QFnL6EiATD3rP4BzTem7QHUsBKfepbyZ0sBwW+rn3r/MBJTekEgHq763FTpywFKMBSLAfGIYosB3ZAe+PpXEBy5Aaa/7hIBXLAQSwHsxO1m+ui3qd96ZZTkXvqisBay+pMwEPMBjzetWc67MBRzAUAwGUEBATAVKl54r6UzAWsvpEr67rAUUQGHMBFK+gk3rKAAmi+kM3pH8mRQhrSvpbMBKdVu6wECkB8fescwHjN68M+sEwFXEBsa+mHQFUMBjTerAwEGj6ZQ/pOc626GsuAV7gEy76pTelDQFh0BPrTjRQGJsBkC+soABCsByjAciwEZYBcu+j4wH0oBudLEB3rhsBWdLEfyYsr6VbAVawF5iGSw+ucwFhMBkC+u6QEnt6zuARXQFNsB3rAYaY5Yl6dM+iMwHuMBkrARSwELN6oVAfPQFlkBglAbeQH+t6LrAQngGGMBqbAROwFB4BJuAcyQFBIBYeAeywHvj6Ow+gEQH9lOyhAdbgGqEBe2AfF3rE4BR+AbU3pot6ZCAdgQEzUBR5ToF16xMBqzASQHpxsB4uAcGwHRL6obevzI4WsB+rAZGvr4B6MbAfYADusBx7egz3oQz6p5ATugH9sBpjAZKwFQMBhw+ry3qUYBKbAcYwFZT69k7h+wH4sBka+knr6SsBT5AXvgGAIBXjTsZ04llOqTAe03qsoBJyAVgwGQL6QbAYgwE6p+B1LuofomEBAbesk3qwz69vejrQEPUBwiAWLQHokBUrAZIQF0n6HxAYcwHJN6W2+gG3qWp+vxntan43G2freiwvZSMBCRAVKwFBIBLHAZz3oJN6gtAY6QFPN6ijVnIPpXoB3VAbFPrDN6dS+hDa72QeySAJPr7kE+0+vowMazEByaAZAvrF0Bpy+jCwHIb6SBAZBgE31Oyn/uR3ppEBLzesjQFZEBnKAfqPpepennevkwE0L65lASdvrpr6QSAehwHmdOZZTmiQGf6+PXHlt16/t6nbemh3orN6ufeosPq1N6Za+mZQFb76VjAY83o5SGHiAaUQFdUBp2AT1QE50sMnAY6P7ZV6qdAQkwFPt6nVAYhgHhcBwzetTQE0L6O4+lz3pcb61nATOvpqb6fx+tOwFMIBquAWYyyOj+NaXruvpZkBS7epAvpM0BNferGQFdN6e+AcF3rCj6yRPrevqrt63nAScPpPr6nx+q+vrQt6Hben03qhm2qtAS03r4sBanAU83pt0B+TeqBvqJNO9tAUob7kL6YdAVRPpID6KG+t13p9j6vreleQEqd6lHAZZgGi960tAQLvoVkB2m+r7QF6z6ow+t43oNcB2ZATFwGjD6S3AVuPpdN632+mHgFlN6LLLKk3qnj6ozem5QFo76XG+lCPrn96uPelhPpSD6AXAf63qLD6fTejlIb1N6MBAR+3rYn6szejd+Y+N6V3ARZQFxN6JpAbq3qbd6TrAcdwH6b6xOAS7gFlb6CiAbLvqjD6ti+tqQGjD6jTelggFc0BX35mV6Aff+5LVgSPpVkBHm+khgF/f+ZKRmqwH6L6Zvelz3rP4BgCAZVQFJUBbeAcVwGBEBAE+sWwGREBirek1QGOUBTNAZ107G9exaBjxPpUT6ZTTmU3ogL6lhAdIWhGsBaLAQM3r3N67dTn9PoWMB/NAQdQH9N662+mJPpUUBzxAVlPo2EBGdLHDwEeMBVNAf63oI96Y0+pOvo6z6PXAUdwEncBHTemdwGpUBf9AXeQEGIBPnesbvpT4BizesC3rfN6GE+g9wG0YBtVAZQPqA0B+cHixl5id6/k+qdgGNN6nPAYL/7vAAzI+sF3p34BevelbwE8ZelpPoFvoUd6nPAf03oU8ByqAVTwH/UB7zTkjPrW4BNxAbZn7BYB0K+vM3pocBExAf03qxEBjlAUfgGI76bTegk3o7D6NJ+mh3p7z6OdLOKb628BadLIsPo7cBlvAWyyxc0BZZTsQgHAssGvAaAvo4EBEnTozvp64BvzATSQF5kBQSAWVwGnYBSK+tkvqdN6KNAXjQGikB1gANrQFkt6cg+nYvrjN6cZAWevrjr6UNAYcgE50sQHerzQFID6g2+oM3r5N60haDa3ozj6qXAXvgEl8BdJAadgEe8BrG+tgQFM0B+5AX9PpAd6Nu+jCPotb6EM+lXwH+N6dWftgfp8UBYXer3gEH4B39ATq3oK0B/XAZPwEw96/XAfM3pFN67S+gOvYC3WIUZvVwFx96X7eq+T6VZeKJ+mDQGx0BZjTv9PoNZeeeATuQHK0B8CAcpPpnEBHZAaMPohz6zK+mAfplN6wJAUN3qbkBkveq0QEF4BSiAVZQH20Bo//uR3r38By1AV3gF2T+Aa+uZgHB8BYfAQdgFU4BMw5gukYv8BfjTkgIFXt6kU+g2wEwt67rAYHgHLkB3ZvugIHjd6TzekEQGc3eej+j3gG876pPAWmQEMT63O+ml3q/r6IHepzwF3D6Yt3uJT6f9GRAgSZ05Lm+jebhNQG9kBoxAfegEXfWZjTh/wH5N6O4+nAvrqU+YOfu23p/H606+tnvr596CrenKgGGU+7wAPcwHqEB+U/ralhmd65/egTgFUUBwHAYJQHzwOyggQBwHeT66pAePQGjr6e8+kzwHMr6fJAcy3oQcBNDAbFwFGMByTAdCPq5EBUg3js3qDd6ARAfTvoxT6n7eo73q4ABtggSrvp74BSLASYvoGj6Crrl3vor8Bve+twvpkAB7wACkvoJd6kTAQ6wHZymK7AaEwFL4BwXVvdgE/YBpFvhpkbRCBZbAbEgFHcBSXAVEwHAsswAACB3rNN6EM+lM87xCBPAgUNgHRL6jsju6QFBIB7TetegFHlOVcpo63r4d6W1AVvvoUH6fzLM5HCaEBI7euyyzor6TNtk1XoRt6d3AZGvrTb6JTATYwF/MsY8+t6Pr376mmAW4N6sZOyDuhn3obd60DAVcQFjEBYregNgH8sB6QgZdPoUIOWzeh0IFwL6QjAQcoZ0gAFnenTQGpj6Ufeis3pBN6iw+g4AF7t6B7eh8wFl8BO2AbRQHPYBYbAeXQHZ8BLVAX607WW+yDAeS3qKt6gRATnQH8sBhwgTO3r/4BhpATtgGnCBm73kgfr676S+AYwMbgYBGdLLpwGeCe8Y+jSfrv4Bsfem/wFzMBcg+jyvptL6+lAU+Pr2cBcwgdHn5hIBXWAVqwGYIB7k+uoIGUUBTnevjP4w4ByOAXogHAAApy+krQGxIB8IgTCPrpW+BI+jIwH2CBl6AYlwF1L6ATepQPomt6wAAKO3qID69M/lOgFBN6+Igc2vq9UBNiASO3reN6ZIgexgHlN6LQAZDd4x4BOXAewwH1DemceioQHFj6sSATewH8sujrerVvp0UBPuAQW3pwd6BYloGgEuVOA1ATSwFTABkVuhKIE98BPCAT+Pp2vOg+fqafpyiB9KAb3wHKL62DAerP45IOgogS8QH/kBUZAQUg4Vr6aY+h5vozUBhzei7Xq8D6tTerxQHi765wAYDYZjoBLRAZAvosr6UvegYwFqiBCogVZ3rBl2OogR5voCz60tASaIHlRmhogQgwHPYBnogfk3omiBXk+oOPodt6NNASzvotMBnzetZ3o0L60rAbDwHBIBTHAXugHA2+qogQmgEuiBkC+oMqYPN6dTehvgEaiBopATyIjIcBZZTp8IGDd6uA+qWwE5CBeogfywEScBADAbGIHMt6PHennQFs76DHemnSy+kBvdnkmIF80BKYgU83pSTm6YgbU3qZiBrtAes3o5iBQeAcM06nD6OTTtovqo76Q3etr3rcb6pLeqhwENT6SzeuzvqEH6DHAS2IG802LteldgEHYBcu+gcPq6kBJTeu/QG4D6PW+gl3oxQANvemrvpOd6/XAeLvoqAAbYgR2IGKsBXYgSQX5xj67YgWlgFHiBVbemaIGHr6sa+mc3rpMBNRAdXHavj6szemfPrSgBNRurUIGGUBAs+hmQE+kBZPAStwE4b6hzAaMPrIhGS1AS83r1T6R7ATyfrPkBM1AbBu6SsB24gc9gEE8BCTeqlwG4D6PNAc6IFKIBUFASSwFgH6AYgSWIG2L6DLAd43pd8BqC+rDPpZ96VGHmq3r30BIGAQqvogz6freoxU4WYBnzenoQG9T6p4+gcPpa96PbekTgGmUBm3eqp3o/cB/jeiaQEwd61JAciEa5UB3G+jRPp+CBOdLIqcYeIBtE+pWIEjt6TPATYQG90Bcg+li3o2b6zreimgE7D64vel0gG+8BaY+oAgGtx+EvAfdQF1N6sW+qFgH2iBBTeq63pz0BGLAQYwFTb67PerU3rA76raAQs3qF8B4dAWhPoZiB54gfjQGBF+aCATHQFjN66nASy3pCSBJm+uqQHu8BXPeoLPpjT68xAWXQHk0BlNASWIHlcBGvAbn3ogSBaTeuhQG7UBtE+siEYMr6HTemT3rS0BSRfjwUaU0BXNAa5PpmMsE/epOvp+T6nxAWYyxvEBXLLHawGCCBQxAQhIHJiBSiAbGIFjcBGrAbMvqSEB6VAfFXYHd6qUgVXQFekBJYgQzPpYUBDZTlL3ri96l6AfF3qVkBF7AXoQGUUB46AaBwFB4BVGAQbwFACBo5AQq3oCMB1SATnQFCIBo4+ndwEEkBE9ASKIE+8BJogerwGj8BjZAaygEllOAxfoO3rfcBN3AZnwFy4Bay+lSQG576HzTpvwElSB4ZAd6QEP0BnTAXxwFeMBGGAZ+AHDoOuFxtgfrYcBWU+nigAPN6//AeK0558BRTAZXQHgiBLXeoq3opcB8a+g4QFAIBxxAe/3p+SBahARcQGoMBdkgQmQFeUBA0+pAAC2EBeZAeQgE0L6UogaV3rvSB+CAVdIGdN6ZZThL3rVIBv0+hRvpoMBU5AdOIGSd6XY+uxQEEkBXogQhQGiUBb0+t83pBT61PAU8X6PbuoqHoRIH196m/ejx3rTkBLfrkDgGc96Q7eod3p9N6mW+l9u7/oOEx+jX3oIUBNfeuhU6Gz6QMgdOQFA96iiAcF3qjUB30gWWU7F8BnXAerQHQkBqU+gCyzIhGmo+sHwFiQBCBAU/gHoSBnr3mEgERIB6WAeAvq4cByEgRGQHIyBKkAUG96rtwdIAGwIHtEBs7AUuQF7oB39Pmw/o5IBekAb0gE4CBuggbugHrN6og+mQQFtN6skgVQQGgue97en/AEdt6GDAaTwE2H22Tem/gHoz6Mb3ixQHHd6kB+m5AHTO2g5AaRIEVcB7vARKQFrcB/jvr57pXUBnW+nMwGFN6Z7AVQIHtSBp1AcQfoTkBpuAfggGfoBmdAUN3rBoB9fATb3pAUB3WATigE+UBWlAZHgES4egTNmwIFPN6Ay/jrgbpyBow+vVAEguGNeAW/wEsaOIiAfXgGrEBTeARU741QBEy/tU75TL+4wnkHob5yBmIgcsQFGIBUiAc077zCe+I1iJQGvkBlxAdcQH3SBdxAe5wF/0BSwekM74aAAwvAf1PqtN6o4+sF3qUD6ZZTjsfr+SBSdLBhvo00B4+AYlPq+EBjsgZNgEiEBm85vMPrySBUggQlPq596/PAfcQHFMBqFAUR05AMBGEgVtAFD6GtLLC53pgu2ZnTjQgFll+J8gS13p8VO3x+mggFH4BHDAYCfoAT6KCAUKvqr4B9zeqXh4Bd6sU+kBIGiD6KUeqifqx4BJw+u6wEXr6aHegigGYien8AbrgGbM2O+AeSfo/QBePLNwgFCIBsLvokgFkn6zuAQzPp+EB2vAXyfo/163remK3rCn60MAYHbp4IBiZAetIEgYBR5Trse61yBE7enmIHRt6Km+juX74KBM6AUXIErEB6iAWePosr+wfLvUV7JTeCxAUugEzoBmiAd13D3l+mUVo+X7Cr+uUVqE04eyBQLelKQEswB4xuj3gHK96ow+ny7684BRLNliIFytOGODvMV6Et6PPAfdwHb7uSkgVnwHakBKtAStIFQUBJhhs2QFfwB9Qgc0wFwyBDCAQE3pE4BHeAWXQF3CBFdATKQGPCBRbevq74uV64GAdMgFEoBNmjs8gFYIBtqAUOgHXFeD7es03o2KBXaehsgEld6NigXvqZb0BvfATYoHtQmAWAY53qMss7vejYoHYIWfC+qowH3CBxKAb6foUd6unTsSgH+n6Y4+jSgEhu+iwgdsPrvN6xKAWqmbfz6adLHSPruKBwSgVOnq7t6zTelKQE2KBHDeoNPoNMB7zTsSgGRn6YlTvc3oYT62fAQNN4x0sHbeiyywpKBIcASoR7xr+y31kAoEFN6F++m3IFcKB9zemM3p0j6fPAbXwHooBnogTH3qMssDpAR9wEblu8oxgwPrUkBHiATK3qn8BJB7ngpZsCBjO+jSfodt6ZbTgOIEb4B3BAQOIGVwB5lfu8ADjKBgdATnQHTKBCeAduIHwkBC7vnmU6IIBe8+sM06mUBppAT6vrqiej6evmwHy4B3Y+rMIEtd6CeAR8QFNMBgDAUIgGke2+lTilPpWCBzzeoAfrLsB3G+q8IGes+K03nqJ50gAzyAc7QHc8BPfAV7QFnEB8ogX3wHVIBQLLI83pZYBIaAUY3qNd6cWASWfYCj6LrevUgHxs+nresqgGvj6ra+nm04riBFCAWU3rst6iILjcgHgH6jsgc+QHMt6sKgTdIHusBUcgTC3pgqB4yFm7QjGHu7JXqYe6cle78Ac7ACAAAobCAAAvbCAAAA7CAAAjbCAAAU7BMqB2xHh196pZmgAAC2wLKgZ0raAAA3bCAAAw7AsqBgAAHWwgAAPOwfKgYAABdsHr9YCqBgAAEuwEqgXSoEsqBdKgYAAAdsOdo6AAAtbCAAAu7B8qBoqgZAACAAAObCAAAC7BMqBgAAMuwSqgYAADlsJAAA0qBgAAEGwOqgRKoGQAAgAAImwgAAFmwqqgYAAArsJAAD2qBfKgayoHsqBr4bpgXr2qBBqgSyoEMqBAqgTaoGAAABbB0qBTKgTaoFuqBHqgc1mb2qBXKgRGoG61GXKgTKoEmqBXKgaqoEsqBrqge6oFsqBLQroY3B0qBgAAJuwAqgZAABxqBCagUmoEpqBMagTqYbNH68ARlmoE5qBeagYmoHJqB4agWmoH1HuTJHrlNbtH6gAAJGwgAAPWwMqgXyoFyqBZqgTqoGZqBRagaspZcqBAqgU6oG9qBJqgUqoG6qBXagXKoFFqBx3ns2oGtqB7agUOoGdqB3aga577OwAvagf2oECqBHagSOoESqBRagdmYZKqB9qgUWoG7HuUTdmXUZvHubZhjUQ6PlOxNfjMMYo8+L5TruJ4Y6Off3h+U7UA2Ygznjo6bVu/5Tj2V4k6O4tfgXG7C+ezH3nLz7k6OKtfkPoY+X2Kvnoae56QuSfNmzo7O1+fJeqg46c6O3tfn3foNqBqqgdqoEMqBMqgYAACDsKKoF0qBjfNhBoHQaBsGgUKgHvAASqgYAAANsLyoESqBKqgboD7yoBgujvaoGZqBJqgSyoEmqBTqgQ2aaqqBTageNfYMqBmGgbElZKqBeqgaRoEiUetqWE2oH2qBTqgYAADVsHBV6gaB2qgSRoHukODKgaKoFCqBzqgQyoGAAAW7BNqBhqgRKoGiqB46lvaoF0qBoqgW6oFEaBqQPnt3oCqBeqgfaoEyqBdKga2oGAAAa7ASaB/qAc7AA6qBgAADuwTKgS6oFMqBoqgUqoFSqB1fnlyoGiqBZqgRqoF8qB9qgfpoF1A+plHv93o+qBrKgf6oG5qBfagYAABtsDKoEUaBffns7ACBqBMqgUmoH8qB9qga6oG+qB/qgeZoEnmmdKgbxoESqBfKgTro72qBvKgW2oFCaB9qgeKoH2qBFGgZnNaAAA7bCiqBgAAEOwoqgQyoFlFOou/rGW4RVOPgno8D74J6kVukyoEUaBpUnpOgFe6O66AVM0Ye++YX3gwL5v1+1lXiYt7G5ulVTo4t48pWdVTmYL4NVOfsLk1U4/mObgvovG7OUG88buEL7taBg+/r4WapC+HmjiI25b++UtHsNV5nxuGjfo+9Zy0eX/vmRDZf9Gj3EB6/oHVe8LRqrR5XVe6tHhdQ5a0efEPp9V4kH+eb+nmLYG0e9B/sDU59v6JIvn0F5Q1eltHpTQ7kreUtBjjgE2Iu0ovi+066B+zzbvoH784Bo8nk8F6/VOBNXpne5c7ucZZnEH4li+bd7jnM47l+EibiQp6DGOPp+hMf6MjGuX+kuL5b4BShjhy35s16vnjppXom1egrPntXqCl61DDs8RZ+JuSrfoCf5IS+e4dtow5P0eLcPv4Y6E5W/9Hr2F6AMeFMtmKRYiS+2EdjyH4gdG2OgaK/YE9GX4XuW34aquU9Tjsm4Mdud5em3/qyI+fMbr4x5DH680vmZm7Zn+qzRkgrYZbeFyPvJF4vh+4b7pCx4AR+ajXtlY6/be05ejlRaw7e/qnssY467GFPbrpXpmX+ZhjsR+7CseBnBqV37asewfbvpY5SY+c3fjKx5LX+Vn7l3i75gG4o9lNeaA9+/OgZm6Zg9+xOgZqx5uj22rHpy15G1OOrHmj+5hae3WPtAl6qEu/WPkftbjsmSCXsPQEhq+SZjhPPrH1O+JjrvQFddG5euv6Ea0JesDTrc2Zv1OrB3qbgavB62C+vId7FsejR+qWx5pHO/rXrFAYPVOodkPtm5mjGdETvY/6INOhdljA053dGpR3tTXoeJ+l3TqcwEoNOzA/lsY4rVOmg/hEbaW8mpr/j6wGw12ObAZ9JawE+PnHhql5+ce/KflgvqqIGq3Fkh/6kE+ZPFual4UE+Hgnolx6sxuMwpoN15WDG4TVjyZ5qj+mMtrKZ5hBmRJNn6Y4+j+3F1n6P4BmOHpnlw06WXeSoxsr1625uwGXpsb76SO6JvrGW74m+4VTmL/6km+9ubgPO4OaOL/HiVI7ZmO+Dzj7XolZekN3mpP7+YGZCHoY05DZe21tnAIGh76Mgnqzd4K0eNw5i007qxuLAgVvoEN5ucLrt2Y5pT+n1ehoJ6KCBfkdtmd4BceIFviqzZtT+YOgUhb7hVOvU/o8HpLmObTzsYN71fG6NelM874ZOW5jrHI7SW+jgnqbn7OCe55jgbHqXmOoVju4J69AWngnpCIH4z+OIgR+Y48H6vJdsEJ5XU+oQnl0AG522Q7Tn9T7UWOCeXhkJ66PWE7Tq686JCe7RblTT4vb2xD3qkJ580+2tPnjb5ZCeSQnu3P6QoO+Qntfl5JmO6o3ke078WOtjnsAV6IamzaDpe041xmkrHg9u5pcuoqHi364NCewE3sVU6n0+h71nLIGv0+CsgQ4U6vSWnznmYfbEl+spjj0J6jO20b3vQV7m/OzO7kMJ49L+XBXtMJ4jL+/h9tVAHUBuky/pm968FedE3s3IFWluUetiYV624GBegaEmZ9FOWslmTqal4evnTjCv79p6mwxuAoGWGB79ehUmZO8uqZbhKfrbqBjR/jmW6GQmzXTs+X6Sr+yDetnqasieorvmvu52n67eBlwC5ciezU3hR97un6fInsPgb9WOR0Vj/u5cEeLxXrOW5MfeD+gRt07yEeW3TrGv6rluYlftKMYWEeqcAYKz7bluU03gwe6qieI03nNN50TWX+BotN7aieWSFhFX6rTeauji905/WORoniQnomieLJXgTtSbr+z5btyV7ElGcJhgOYY0gujRgYgAADmGOYRtj4YrCwodjsUXhthGx+ZC6J6tGB7RgXOfZBc+u2jp4UZNQA7RgSY4ZMi+z6/o9Hq9ZuBAAO0YFshGJ2eqyYbsmGuMEgRW48TAb2YNO4Yxe2ophmcoA83wGdBs0YG61GPpRuhAC7GBmpXpKYbFmG7RgXaUaoVGLphqhv7HGB3XBqcYEoVGTphvk74HV+EylohUbXGBLYvv6UbwO+bXvhWJ47c+ki3jsYH04IA/tlO4B+FGEVxinJBfaOVb4OkADfGBBz5m97JmVuk6AOgACgmBmHRqwAD/V+wJgVCYHtGBp+RhLt7/GBLZhrCYGhIBv2RqH4aHGBb3nk8YGY8G7RgRM4aYmGGlpiLN4DGBCLbpFYYaWmeJpsgHIcoAbx7siUZTW+kOZp1YZdmGNRDhNuBZ0Gl2vpKqrloAY5hkhYakmBXQvqyYFHqB4dRmuYbPlONdLG5ParmGwThj0gHmPmyaCnuYZWze7JgZoXLlxGX/9rXY4CmmXRbjO0CAAAfID5oKCrAIcYHo+2QdhuoL7+xGP5TicWDyTq7PPulSSc8+2ChoIDY88+5AABnQbJjG+lhgDNZGW+kjhhqr5wJGdFIN3z5XIBMFhqOoZaTGz6gT6EaQJ2svPtVv50gA/JgXvSyK1+9W/mtv5gA+IDBurO4WFw74Rj5fZuog8pgbRYZzGBLFhuuub/VuNkAAA4aGnuMxge0YE8WGzDhrlACUoO0NbligEHUGfBRuSBCH6GNRRstv7W+2wGZPtG4Y1GSlhjpAD6WGsZpszVpGFY+lhlw0ZBmBelhj77ZBmBJlhhngDBmB5lhqdv6xVG6Z7jubqjRu/WQKuYYmVGkXel56Dg5IDa5vdv4M6AXhEFzYYtmBkkntT+beVGK+eh8lyqBG419jhYCKmBC6llxmSK8Ao64FXGY18+tIRn3mYZ+et+hvKYEmWGwNSiOYEk++GmFjUu4U++Tf4uVYZSaBl+eohYoUJGPSnhPz6NWGfpgPWdatWGM0LqaEalQOwuwIPz6c++Mj+gNYaC5Wmzhgx4ap2GfPvpHKQ72GN0vgx4ZC++TFXhq3bLWGT+AOV4bMVG/lTjI/pCe4s5it3z5rhGYioBaM4nWGiUnkk47Q16FKRtdYaZpGd1hsC27v+2S/nrLv5f+2uJgZAL5KV2X1hnAL7WPmr3vtrG43JWYZRnG9aToB7rhlf2aJmBdvvoerBk2G1dIIcYG42Gpbhm0YFDy+WNhiK777oBulXjBYHwpGDNhv7G7M2Gq9hp4aDtGBcxoim4Y1tu9IPv/UZ7gANxgVIEZfxG/aVuLfYn1udJRp3kaUWBwJRvxYHiZGf6AUrYZRFGL5lkjL5C2G4lgdylYZxu/VbnSAqs6G7RgXJYGbNQji3mbYYyWBombiEkaaC+8wtl7YaPmG9PPoYHZqmB7RgadkZ2FmgS3hasaR2GsxgQEb6sLe9gdsZYGMpw45gQ374i16dlgQCYHvZGLWgaQtZ2WBlRqmwhjqBGwKngpgEsQmllgeMYEFZmj5hqqEbTmBGdRow34xFmOvPky27kSAAVgaVbJVY8Rd1uw362pWEVgZFIBRWBiSRinYY9aB4eZr/kD92GlFgR3YaxWBY4Pksoa5xGolgfBYh6jmpr+kWEZEvGD8RmgEq42+g1XscGqoAAipgYcYFNC+LFgVlYFLGBcjZpeYHrdwnJgbf771WB4xgY1YE1fQzVgSEHZhmGO2/kFM5K+mdtcN8YFWJGjXVvzJ6jjmJxluRIDiWBGy3qDoigLGQTiGpYG6rgiEPr6/o/2G6AAOBYbjGB1VgSGYH/2GDFhrNoHAOGfrvAmMbQssK1gXhuDBmBypgRtYE5zWaAfnjYZwOGlFge/Eih+GfKvsg4YXUOlpyJiYGkOGWDhnZEA4OGbBJB8L5Ih2pcFpRYHoEGDngLHkZLO8yxgVtgGaZGK6boiYGUuGeYtvhYEyAAgNgew4Y0H+9eRrdgG+SQWmRu0YEhZuaLhhTpbKUQBWRu0YHJlIHttBIsZw2Bh4Rk53Zm0ea2RhwUA7GBlIvuzEA42BhxgbSL4Wy+3xgRMYGmPmC4tpFmAflCCJgcxABUmGTIvoc27NuGlAAEwF5EZWygfkS9ZmQA7RgfoABGxGeuRoKL5DAAW3nsE4ZI1elCbmM346H+nK3udoE9yefZRlZYE3zGqvhls4apOGBBjvjgbgg8T+APKYEWRGZgRoTm41FG7fhvaYE8xGtThhmQBS4BoLbqOXqXVGyhRhLYFvmBLVgXdb5K2BSMvl9YETWBmzUOsuCm+GKmVtWYa7FGiAAOJYGq+G3XbMfkai0GgcMoBoDBFGptgfBEZWbGMJhiVu4PN+p0Pnjyw62BcORnrYFLhGBtganL5G2Bi6vnxYGbNQ38nmAx72uGgu4HMYG/mBmQflCUYHGB9phlnQZTNutBjmqHa4mBCARkYACche5aRjcYE8he+xgVZYFnGB6phqStaZ2BEs/jaHYgfG9zBonYFouGTKxoXYFuzQ7WVvu4ag2BE4vkQ4ZkuGVlgaukYN5GN1RnIsiKmBpQvrl/pa5AnWVqgAC1WBpa3iA4ZAII7RgRy4bri+KtXrjU6KN6QnuG3YbtGBJ8/qR8YmWBspRnwQDQTGB5ZjrQDquGbRgbrDZyuGDbBIcYEjS2kdgfoQBzGBIsgFt4alC+M3+t7N79hGi0tga4aFlm/DhjDYHPEWlS4AmMZr2BP5ZnzLCY8Gl0thvYGUWBc1gVWQCAn+INgZRYFUriGdBk+2Y6FGypgUhL6BuGAm1o/EahuGKFZhG4aIN8Z9hs0m7aMOyLLH+wj4lG1heiet4vvMxYRpa34Qh+E+RvjYaUWBzSbgi/bfh2FFgViYH0VmGJgVEQCX2B8OQD8UYVhGhxgSCI5UqKDNgVFYFC1OFbIsjDxL2BZ7bsQ4FuHgzRgUYQG2l6gQAJp4aWpGMWkJIACVuG1nhpO4b0eG61hhDwZoFGEBevOQZOEBY5ZlB4b9d2O7hvQ4E12BlFgU3YH1OGW6IJcwBt2BVSvtG34Zt+Q61gkhK8OBUHbmO4YCOBYNge3nrwMGIjgdVYH08+eHRj+4YR5G9AAM/4ZAeG1ZgSB4bGn+y/hjI4HBneEgRn2gAmWBUcVslqBrmGJ5gQpQYNt+xVZv7AAGOBOLBkr4ao2B9IRsW6YXBOMiPg4x6HMGEixl/V5fxGizVhqUbx2BGyRpkKKLhGCmGtMQHBRWnHhuoL552BZphjL47SOBe0gLo2YLt+CgRpu4bO7+sjgaNr5xlGVlgYsH74liBxAaZPpuZGRjANM75dO+oIACgEaLNWH0vvYACJOBTMRgmUYTuGQkXu6f53Pmh76KOuDSy+T0gPVUYwmGsSfn54ZWWB5sRp0YGz2B/Z/oQ17pOBQExtxtapy+s3hnZ4ayeGU1hnF4abCGZqRkl4ZYdE+JYuw4HA6qhqRriYEMkBSnRojYEWmBrcvvNACmZWONvhF4bt6AFuRsDYaxJ+9XhnBYamiccR3mAwb1VGHeElP4Y0VGUJgeekZsOBPvhlOoCYmGG55n3qAJiGNMRqs4aiNmrNgXkEYBhIKvhvN4bHVGt53iyoDB5wWHwq8LrH1GAR5mLcaeAAe4AKHY7Oy+dn1jw4GROBsjgUrYFzGBftgYLYam2BAlgVCx7FsGETgXE4HBne8MRmqYYXWBgLgWJYHqWBUcvlM6a0OBfzgXkeBid+dyNohH6g+Gzu0PlCDKmGTVRtmEYP2Be79uw4FTqAnDgVhH7Q9ukYRvsA4wlGJ2emqYQE+GFvhirYH5oKHGhrFz50JmIidtT4YZZAj2Dl8OZVmGk0hu0YFREAjhRt8YGrJG0IAKHY7W9ITPhv2QFiqGsTgWCtY1hWcpRpRYGrJGpGdvUFadGBtHhruYZalGZdgTPL4bGOvO3j84EQuBMvjtJYFWWBErgcR3DS/cltgqnL6a+G2vhkxm5mOBrA5kSAAKhG+PhrPYHUuByGbiF1hD9WRThs2m5CmGE15o74ZIuBY7hr44Fhm07vhokyyh2BVdyvs4EJiGhzgdl36Q0WK1usJYE4OBICvlH4btzucLgSUAC0xey6bpjwZWFGhgAPKYEZ0G2fhrLIC5+GVlgWgr67mG1gAFBYFhpGZfhr7NCNdeJIRpknZMUBT6nntb6yxGSeAP34ZIy+SMvhFF7RtgD4QlgEbglWYZRvmyJMK+E/hm/YGkVGStBgpQH5BOOsXtI4GUgAgpgev4Z+PWm/hmbF4UBGwrgXw4Eh2GYzhoiYHkuB1F5s7WBbCG/ARoZ4aurWhQQIYACmZWV3dg/nqTMm7QAGXYEaOBtb1r/EY6OBb/hh66af+GvG4I8wY/+G1vhjo4FHWBQARn5QH0aekLXoqx5iBGHbgbI4GwBG7RgfAEY4+G6dgU57p112QUXrSEbxz+JShtWZ6CGga5hhlQE5f2pjgaFKoq0GBVAW9wbVY+7u1uC4EiuB7P5jQEaqWBBfRvgVhGxGnSRk44F8QOqSRrGoZylGnARo9kY8BG9GwAO4FUtEzRRmNQE90G+7gYY4FquBqlgcC4GP2BGt/khAb/OGGqvoldZG0AjVhp55YabupqiHE4F/2mGQ9tUP5y5263cMsABGBGESTlWYbsOB8nhgCkbTuBNqRjJYZkhmxSWm4EbYeQj2DjV4bBKG5fhu945E9+/PfqekbteGIdgePGzYeBhjgR+4H6dmJHgTRUYHWB61gZLYEzuBWjgSJ4FMpG23dhR4E++GVHgRY4HkdmtqRvR4HH2eEvbqz1DMeBSzgX7NBseBLNATAl5y8OophrC/DiVmXQRpbYGg1Gj/ZplnCfx02fhtB6axxm+0vpbYIipG7cRlNEYhB2CHpqbH59BGjpxjakarmGlzAJrQHwJeI7htKgCmZWpnhmZlZGsGL9gVgoYzRG1MJmNkYSLGCHpvJUaZFGznhgXEZ+mApd5pA2Y4uBhPPkA3iZ/2ZGAGO4GJc+T/xpSABRuBUq4EZ1zRxOVX0KLQY2eBQqvnkABeeBbERk06CltYcVAOMYG4OK/dbGwEbLhWYXgR+O5jrgkXgYLGbUT2Jzgel4GAsAmXgVCEYrVG3yhj5erTXKChbjh/4ihGzxxmVYF75GbSRqF4GTZGHYPJsMApJGbARpt4bARGqAJo3QFChGXghnoEaf3+WSRuzO4uq+rZnrTOam+GioRh6r5VeGnkRv8kY+q+ZOnn6r6Y3Yg9AeTp6W6BKCXkuHrnmBOUMBPPrEmBJ7ga/ub5nGyqPIAABcgPxYGab4yrXg6PZlH2Dg7tgd4SHOt5Rsrz50Pm7pgVaQZrMWnUxkHkAqmBAB1uQ/4GmWyHgXGEbNrWveZhy4GruBGYRhJEZ9eASyRo54HwS+rGvlM4H32GiYRsBb51Zu+Sbj0IZKyG2HbpRkbJWBtc8CzWCjpGCbVnkeCzGBw3pjDYEHpGVLhk+4athG2QAP5ABcVWUtfqQwFGNu/YRn3kag+B3yvv5AgFpG6xgQ337lsezDAftYayS+ktgUgn7NK+RPgd7YY9U00kRr9YFgNO+4Ruq5jiMBJJrv7ZZSgOqxga+ob62BdURmSsaSAmn6vpIAArduRrgZu/Y42+QXhscUZ8uBkAAAOYaOeWT+AOqb6dOGltgVz8ZU+Bp4Wrlm7JJeemvqt4H7+GGqvv0fjxYgYXgXLEZ+mAt4RrRYA83wXPxvw4Fbee7jgVhEZB2BTJAELBDj8+V/frc5YAaQKKAMr4H13cEiwN4PZW+BbHdpFEY0WBDSXpjm6lcQ3AAHl4H5xGpJBO0YF2C+LEADJkbGAmDKACA57ymBzJhrPnYR5G2+nK3EYg+Bw4Rlz4EB9+MpjlAlbY5G0HRhH4EovmMvgadSDQxGQURiQHp2Vm3EgLUEa4JWEo7nHoEyN2A+/FukbxJ+ZVxl6UCdOGTR1u5L4ORGSMvijYGx6+bCfhTPZwNeq3gby4GOQOHNgXLEbm2BnThntMaZeGQURkzPa5+B4f4A34G++BpQvi6O6RykivgTKQC1BGeEgHiOJ4NYVQRitsBVaGhURrYABsBG4LARhoCK+B5bgeRuBrWBrURmr4YTeGAPhmcd7M+Bd4Riv4HpRGqY7lK6h4iGR/gW0kbWB6hBAItEbb+BmAABPYEJc+E3hsf4EhWBRY7gIZ6RykB0RsIYBeD+5pxvKYG7OB5bgcz4a3+B/ldmL4GKD+DCvr7+DruBy0Ru1EZTHIaJgQ4P4MAAU/gUMAAz+BWngBpQBeB2IG4BYXCjRGT/gYDr4cpeGV1neEafRGOJ1uA5ZC2GWfgWY27352ufgf34FV+B+YHr9EZzewxfgR2SCAxGBWZlaXacdeYMRn2gDEBBRK+oOoZvjwWmvuTEZh9GekAFQEHUr60/poxH71z2LngVuP65+BCwDByYKu+BmzhpCYENeBxb/tY7ovkC8pgUjEbZOGAihoHkYOOBDMRpgEGMdeegeiEHaJ+BkUABIsZG+BmQACb4ENGAfpgC3sZ8BB8gQT3VY4BBggQez+ZqOAeqvn6YB8lGDRgI11Yjv+7kRpYcYhB2quvjoUYaq+OPhsOYa1+B53hnr4GXsA7vgfGBCP9mc8Rr7+ANOBInga1EazeO+DgUM4ZZWB6ngQ/YEoOGiZ3vcGaV+BzpxoX4GGBB6pgTdYElT+WJ3tdEYhxGYnFoOoadWBzVhljYaWv+ufgawdY42+7xbtCAADmGAgQYCwD0AOntBKtxZBxG9URqWdbdbec2XJCyBFG+KJhjkUaRAAKARib4GMBBgiRkQ/756+bFzrbXZ0OB73bq2oZbTAwZ3vK4a9S+VNgdl4FsBG7HATiP6ccBrevtudbRVkk8Rk/kAeBB1Pbpc/7UhGkDZtx+Z4SANdgWB4H7xGcnAY65aQQOinAfI8YSf+rI/rb4GxXgnjgaNkaPxGL9gShEaKmBpwZm+YFM8WqC4OtYYR5Gn8RtSwazuBKQRmtYFJ5Wyn/kYGY2XGkHgedf6Gxc3xgXRLJQJGhxgDR0D8AAJW7kyYZmmGOvgB7YGV6WJDdjS0TFp+HpjgaQaK8Ar/4NsXAFpGZPXhygCGAAGdBiTO58JGOX5mK4ET2BneRrVL7QG+ps9urcZylGiBvnCEHj+GqIaihEYm4oJZtJB4GQhBhvZrWvolm0jDgRdYFvxGBXAVb2bSJGOqRsvdAcuBEjBuYUY7AQp09qz1CseB0QAEIk54JGCCiEGP4USA2iRjnYZCFOoY/pFpAUEAGmvkZ4axL+ZiRlKEbxZe/MQL7Fa7p+9iRkAghXsATiRtVYEuJGjNAEF4b6FGhOhHAEExeBbJRr+EZmBGNEgPNACnX4RiRjyEGxmGBHga8EY6VI6jgQW4GMgQmejiaUDGeGQ3gV9b7yeGySRiM4GZeGPAQZKEZhlGzOdrl7Yaq+80AOyYaeXWGBRpy4HkAAiMRoFdaS52skvhNYFvBBokRvWwCNJG3XBt8obs/mpuCoFL6P5+QZxgUk56zuvLhoMkb0oADaRhjwFjQOGj4DEoZARekKsGS74R+Bqcvgi4Z0eBC4djpYEYsGMagH5kYxjIvy4EbEYuWe0Ftrivb5x2bgQbP4Fu6yKCuvIACzOBx/BoZ4FBmWeTgbru6+hBPEXnckaYkANNgfIDBZeGxRhm/kZmxGeoQXEkYahBeRpOp4Ym4ooh4Gt4FmeGNQQNU4GFxWdTgQOYamAATYQT14Z7uGbRtMU5Afj+FfRlrkCh2OE9gTM4F1bu1vAZM4Gwssc4QaWEELhBTvAeL/7Y1GIsRut3D0ESOTBk7kbXWG84QVEQC2Z+VVgYqYGARGUrBvl5ZNhGiJ1nrihE/mlMRjnYbhFG54Rsm4HBG+BxgeKb5LhBiBvgeEGYkA0DZiqkYMCGBGepFYGapGM6ZgnG5nBGOvhs/r7slGuqRqZlbIAAALgRl4ZGpGVlgSakY+BG6gRiEkbpPeingRZ96upGfpgJMwABbEiXhj6kYm+B6yRpMb6oRBu5hnJtbqh2vvwNqoBv2BQfgWBEEPhBWEQVZYHKXm7wRmHXb9pG6WXjrQDfuBwZ3hxgBO5GqcvoVQBlhB2aRlX/5sFOjIQavoFlpGKJhtPYGcpw13ge+NqzDmcdgUk4H0uBwyRgmL7yeBLaRjeEHtpGWYhl54GAxGkgACY4H0bAY7gQ2p6alGpZvtRUZNGBCdgaeYHb6B9eRsI4Gt2BhlgU5P76lGqdgS6YZCOBOoyvU4Z1OBODvoxT57pGYfgXZuZA2B7FPjJ8aF2BqyRqyYYxeGotBqJ1ZYRBwzhoqIZMtuzzhm9n4+MudzhshYFS3eZ+ge24F4eBn7gWO4biq+yNgbaXQ3t+r2fqDn7xF2FmepQAB1OBp4QdoFbwZG0OfmoBYoZGU1vjrd4QqGSQQb/Z7k2GN5vuaY4HeBZiRiRYGpBBpvhukEFNG+WQQTkEG0WAROfhKb62Vg1vhlaYHQW+uAAWBb4XsA1vhnDYGIW+gVNvNZ45GAtQRmhb5g22qoYNn4HYb2G1njjkAW+BGXge/A5ZlIDjgbEIECRW5AQTuXCaBBNEgOjYEGZGzpgZd4aC5+WS1k1EHHP+jsjsHYE4AAEzhouQZDLu7gFmSgB2RWSWkOUkbOZG1CAN7NABZKo3gZ5kaNCBxMhh/PjhUAp4QRt5qKmB5iRvBEb0oAgWRlQEGH3WjgQdJb6x/i6DhlvYEr6A6KRuoL7lRBs5RqTXoNWGyWRk4J7DCc6WRiYEG3Ve2WRrOUbfT+eKRmP4HBW+vUQXAr6qRmdndhC87EmBVK4tG4aOVm1TjugQZ42em73mm775d8ToRqi84sWBNFgWf5YL2B82RmH4HLpw+6bg4Ua7+OwmVqTYG4hmkIoEcWzJAB6MQdK4bcRBqfgfjP7Y2BCJgZtkaU2BJNgViUawGBh2Rty4Gn8AJO5kyYLPZGDXnkD1YXU+DMQbCEFr8AMQhg5YHnZGc5gdXn5g+WDDgX74bR2B61hlyIFy16fgQcUXj32ByHgfKu6RCe18RsquCw5GJTht3z4FiWwj4CjkYG5YA1vvrx6nJG58yPKYFp5GuFgcqIE22epORhIUb7gA2sQXjka6xB5qHnTkbHmBeLgeVGZq5Gjf4Mh4EDdMleXoiwKUpGFCRnzkbWiBs8ejsUZMiGZCwLn4GaxBRsQTrEGYWBZsQUeYE0SAMXgZbEEFIO1sQZeka4uBtsQaEUYTAAp7huhEFgp+QfgRO4aNuBP1vt3YHNG+l9QsWYGMBGGvgQQLzPDe2UZobEHeAAxsQbKH78WGmeRlRhTZ5GULvgndaZZwU5vpRYFFZGJZtKjb6kcII4QXwJjApGD9gQIob22BFxAOKwa0f201HMGkalC+vdnidGZZxB1VgT7EEZ5G/eRgXEHe5GULvuKEHB16PmeqnEGkHI6ZgRy4HmFGK2wMEoY4/2LHQKuYYMCGHE1gyAEaRBg6hup4HAy+uzgW3kaoQAb9gU7EF1OGjgQXGEHJQw10xleu6e5GH1AIPkaUGBnRbqPkaHxBJKppPkaFhBms7rs4Ev2ejhKLrb40GB553g3EGWHGLHga64GPJOkDZofkZu4g0QCl9b4l5Gp5yGpYHwRGwoVsunAcrg1xhklr4z5Gufhpt4b6pG2ORuMYEOAAFJAE+YbQss5+eo7b6p0+F9tvsZKTWB4BRisLDT2BqGtCQ/D8AmdHgSqYaIFGv/hkB4HoRGkUQYuQaXxBaXhsiEbYFGrTLNKg6vXARGRh/EGnlGRgTmYUCwpGmEDg7EFWWB+vHlG4F39wt4FubHYl+B7ttCV4Ecq+hrZvH4EwpGb9gfQkHiUIhA1n+EFNOguoQUTnBORGWzgQfEEahBBYAaI3bIw8U0Rn49bkFGngRjQUZ/eBwEQYkkZUJBfGRs097QluHBRjZgoCyG9xRk2EHJBBb1Rux4ZGeGCSRhO4aAJBscQSckYqRBdjQIHKIRGYa1VnP4GMhGk4AapnqKFG1hRsOYbRh2yHgR3nbMTmR5ABPYGJhBi8RjoUa5xBcKAFC76GP29DgfIAC7BBsxgRDwapeBd/gZvka2xB7JRm/YHTBGFhRnEd5q2BNhRlNIFe2GRsRlYEGOhBq7gWwEaKhkfhRgt4YbWUjiQTab5BxB/klnXT4WZ6RcRusUaJFGhshqmbwTAAqRRhuEYZFGWRRhUEGnT2VbgQZ4Yl5GOTgR0YEqJBBDgV6Yb020FJAM0UaUJBzSQUjL7LpwXw5ic47Jpu8dgYZEG1jY+IvjmEZLJG+B1ruUYgbgBnhr04HrOBL8QcxeYW2BYzhp/HSQig7NvjUkadJBVSvhRAHQFebBTkgkHn9+SyQUM4a/+GLfroAABwgHVQKrFG74QUIU7/oOw/hvZnpKJBXIQR0kHbJB1vhps4YKsAiwfjXL7nFGNEgKYkGw+GseRriYC4mBAjvoLIFDKud9gUh4E22BT9UJju57auUE3kXXq+uB0LgUD4GtxG6DVorEEy2GtsQYIYHYl+puhmZEFp2Bj/ttzh7VL+JRBtSYEKX2EhgbboZPgCFSQcBYYmQBuJRkA4EI+BpsgRPkayeGVNgaSUam/OB0EtF+YxvedJRqK8ZoNGzsgba7oYiGQkQWyUa8JB2zge14ZscGmpfgJEHORB3sgdk3DyuBRTgQy4FKOBxW8B2kZ5eBQHcIiYFT2B7ARlO4CmFGALurQkFUtE7iQWr4ZXVGiIRjH4ZsmGFwRqoEH/+BSWkPK4EZQBbLnt44G52Bw2ZhoYGwpB9HZhaV7o8uVSlicYEsaOoTgQ6UbWWObO7pnIGiBu0y/iC4Y52BvFgQ6YZQuGTcgfwV65veYZRp04HiFGoNRpsIaSFeVyRjJqA8BBnKQVAkHhiuQTiICkbUhBorBnHEEEJBxjgWJN5uZmLqQbGUZupBHttBbkZDveIo1ttAF6PgFhcGC7Z2QACRcPrXbxpBrZRrc77tmGHZRppN4/uGZOpqLYGYpB0bnn2HYomGVUFnJ9bsmBge7jlkbrDGgbhsYCYRWO6EquPN6+4GoRXvxEaQxGrGvoqYZjJB0CgbYsZl4OIiQY0vYAuAqqdocAH8n6t5RqSkHoKBNsRlj4FFOGJtgT8kECWBux7uyYEEmBe64KBUa8lG/zNvVz7FmG/aQbcYGlOG1CgeBG7TpBEixqeX5v/OLxgfaUaNJB5pfkrlh0gKp+RsxoC+Ruklzv/860wBA+7vTAEir+KdRtO4GkVGb/hh4YE7m66HgeY4EumGHMAfsEEVTejVgRev5zFeA8lreYG1pBUBHpJUaNJBgfeLJpZIeGTJhidnrbxB76QUJtZU6WfTgVekbN+BrKQf7EbGKBdn3u3ca7BB9ZgZ4ub8mBxngAPy78egbdfl2nrmVGOyQU6v5SeU6VRpFUaoIWW8fCQkbisGjWDlCywmVGYHnq5UYYZB9+phC8LeVGw31r5UYmVGLbtq0xy/GBGVRs7AHb++o2vjFUYYZBMjBtSZooZBE1ju0YyJVG/nhj5o6pVG6GQYJX5G4OblRiJX7JGBNSgUmfqlVGdF3ORuBhlG0sRjpdYMpBJcRrR4FbOB0Xgf8W4wRGylgaZ4EgxWh0JpuW5nhGVU9Mp4FALm9g5uUGooBmggALxYGjKBKhpnuka2i+Qk/s14Gq+BzphmZ/wDxOCygfp95LpGDjgctUa8DAfoQZAACARBBPbsGZjNr+pE1giV57VGMEMqlnB5Og67vn3YESBBQERtdUZq+GSSQb04ZfmBA5hqR7afRB0jwt9EHiSeH7YKynZehBAZgde75es+s8AbUR7xWGwNRl7EEbWUbwQdoUYYo4KtBjfMbvu+bnnrqMpfu+nxhpFmBZ1mygriOezvq+5vnquv5KWBmW1pFNi6jKGzhqJm5v2BIylsW4E0uBFrgcwAAFZBjbNvtQg4BaJh7vF94Dhu9RgYdN4av+wzdtpNaHr+49RqbgqkD2gdnkqYFt92KQTsqv5RN6Zk1t1kHCzWh7fnVeZ6/WeOWIkY7MQA7nto5Nb5bGnAvhsaY0SA2ogEoeAEVuIdRkLYZXxBZ+ZpRW7jhicJhkVz7yTqDFbq/obyTqZiRtRbJjOGOLLGSsZKAAlxgXrUanZBBOnkHQAXZBa8RmrZJaIBgq5rpmCW8+92QSOUZPZB+7qDjeYDTW+nviBfayaW5Y7vqr5Tc+vJHsP9bcVGgCAH8kYE6eO9hgR57Lc+HOWNtkEE6ebEuFuLJwmBl/bgn0LFGGponMEQ5zZBMgAOBYbBTep2QWwhibueoZXv/UYDZB9lbh60b3HuFbImA+ZvHuVOCojkHfc+kcpMdnZ6jmaExjU2bBUAnMDjIUZfxWWhXnGnaeb+qrehmhbU5BPZRieoE10sVIAPmZale+Oe9iyt6V2O+iUnim5vSGxPPg8+a1fAouQfMgGni+bGeOZQDC52zAwvbuYE+2tsqILuBSTGepgYIZYlEGWpgbADyt+2ZyAdLQY4ssAlgQL566T4Y65o6YHLtmuuQe4wZy8+42aPNYGemBfMVuHN6y56qtfqgeZGa+lFhr6/rt/CAARrw5YRC03W/tjnDY5GmzhoQuAql2ZvPqx3qdq+ODRpsyryjAVgutzXakkOxbHiJYZY6ARsRkNYaDyovIvn6aYQoAiAAN0YEy5GHvPi0v5HRu8YEDzfCVHmLvtp2JpGFY2kbqWYE0WGlaQQdv7TTGxwRjnkHR8+y8ADLkbVomTZgTcbKg++GG5u2YG3wAwknp4lb3Z6MgAF/Ea+jmdZpsYZYNmmnUxnRSBazW40xrFYZS1uGeQWHuZGzWIcZNc4YLmBUVnp1QZheGbeQUjv6oVeKO/nhcZEOe1bRkPz6S327fdlo45qUAuTZo3Z4zQuc2QazJ5CA8j5gdeYF3X2BnfjiQDFqe6/Plb4br6+K2aP93oU5Bj/hlb4bvmBTGJotYY57uQeQZr2a6t29/Ppf7Z0Lg/2lj5R43pYvPZlnkGyrG+ZkrJka1oB5rdsRLSCGAq5ho114q2Bi9fhFuYCVeej+iwrQR+B199qz3oMZKcb1h7bTJbmTWTlvX7Y32RlhmGUbgAB6AvrgWYB5Bb1fsHkE2N+J9fq5ICp0Aw27utkEKUGuNhqywCQyc2ORnJuYbZBJWgdTYZxAA4xtIzYa+++/9RnykaxIWMbhmHYaLOOfuQc4kElFGT9ULcdbf1+Srur64E9hBoLZhwUD0FBAlgZJYGCt2UfXgHzzq2GHBQdEADnjOOthmCaa70sWyvh+Ub8FBc7dsnv52ZGPBQfOl6BRovBejP3oo6Adknq5YGYYBkb1ooUFQa+MWkIEsDwNuChQdv5xqFBNeALZfaMYB83vjLkGW8+odhp5pZaFBlgvt+mJn5m7fvjJ4ami8ceQaLkYIKIpMaIHz5taBJqVu/RKVUoQCsuoEb2FBDDbpy/o+UGChQRuFxKhBgVgXZJ6P7WjDblkXreFBQ8QeZQDV0gEeQWlYG4uG/8ABDkF+FBQCsrlYHIByyrjr5QBhFBMuRsPYal5GqmnnCECdLeIfxhK44qNu5BQQQAAYFBxRYB/477dGi0ULDkas5Bt/vseJ65FBF5TPkUH7agfX5kIDz5FGJlduML7xFBD/jslmajWBP5hnoABHFGjHgIOkHuMGeeFssXjiFBdWAd/G6kNsN5AK8EHvZBapRi7kF65eVMrqct76JS+FhkMUF9dwI0Rn1L4ql2p1gW6iDDbuXhJKNkEXUOCxQWPk7y5BQ1hq7QaLaBnwvnFQA0a+P2QccEYLZBrRQa/kGpN+JVhqTGgyJGWHwmfmYY6WnvHFiQBnFBgipA3uYTFBWHwlLYF5G2jsro48ryt2sCQTs/ZiOGKfPnP/YxkAj+QTgABvFBtf/hDV6qW6sf4ioEF42BWejkoL5JyeQJQZpHaF18zIvqCUEHFBB2gXmhYrRBVanMWp444ByqPKlEZrRBB/AEwu5LVAzz1jswrvKW1OAfzYHxRmxRYMrSAHFBJ4AQTp47Jcwmln8kGHBe9OATlD4vpOc9GGrW6F18xJQdMACklBJl4G+YakEWc2QYSUFFFB9zBlfEFS2BQEtvjgYW8+NQAAFkbjaGjPxq7QYOH+zrbokY7OnGKsmPeYEz5GAshj+BblF2rC4Fr7BapG++9iffC9OG7RQeJYEsqAw4vnZJ7XaQv9nqAYbjOGodjlSkaxc+XtgWOm4ElBrwutXQYSlBUBGuUcaMXmkRvoSQBa+w4dgRXV7eze4wQSJEZW+GOQfh0PobEmZNqheUZmJGcUdmZBbJ2BLpQcJBbj2e2vvgGt5JHgPYQTcMDoKesrnm9kFaFGFLhp9kEpZG8njkT8IQ5Bbo3krUratuc6ngOUYaeOUZQYNkHtZWml+HGpYj4BfKxr1m4ORINxQZA2aG3+HX8jNZ5qheMlvtvAG92BrJQQ6oZip2jTdtsf7ze+qNcH8kb4eGofhjoUGF18XvAMeL7df6zZhhngDdGBusNmm77eOcJM7mgw62lBxXhvqkYtlBtxQeKi7CPg3G9ve3robqodjjLkbUOGpMaM8RY4FBpFXnFQCtHm3s3srkGu1eHjhnaUF8FBHRQRcUHxrGLNTlcUHmqGXrhi3oZjPmEJ/uoVYtmGbCGIv0bzJGuLLAY76YS+R5QVLE7ZJuoDgc846pFB5yrsrYaa5AmJ/l4p6SaGZ5QXseY9rGpvdk/kB8RGsLLHwZbQBBfvhhTlYsFBDhQSCI4IlBYybkfaaRyka+Rj+rRkOB+/ZkGpZUOBWelnwJh/hGBIQf2/aJZwCmGjtkF/2mA7lo/2ZJ4Ao5QWuf6OS+68NvcUFExwuZQTKBZplGTmdrGtbQxAa8RpZwBYkAz2DrjoF1KezZQWA+bKsAOFQeM7JI7G+FQUON7QBB6j1qD4Yb8AY9XijnZySGheQQToH5EB8nbuNV6W2eNVZo3Z5WbGdFQeLYoMVBxRhgSYYDD2Qm3upSaSOcGj4HJuaGZeek/Lqr4ESAC84GaH6p5WifgVS4ZJeB/wZn8kaCVB0LLIE4ERTeJ2Qd45yYkAYZQY9kG0VBvagFE4E06BLkJu14GoyyOlQbdIb4h2TyRgpoYLzgfTZnToHxWG0hQZk4GKWICXPrrkGyNAHJQdp4ZQ4AAfPLGoZoZ2/qcGQ4b2kg9nbqhIbXgWZpQVMchXeB5nhqKICRgAf7hls7A/ZaIaRgzYF8CYRjAAcUFe8AZHVgzoH+du5QIkrb6KeG4OTn+4aDyoOwkAqEbliIQz3scEb/FuWXPkKPz4WGJIujo3Zgj2SFQaTUZVT0nkRm20hTcK0OAOM4GbVmnvHLQ4bp4ApLgFpF4oBmfUvhoVb5VBhogK8EEQ7cPybiwZr3MGUZQdvkGZVB4kFmHGjKeBLigDIABoVBG55nXSxlBG8i0Fp4AHRGxn9obL5aQOETBo0uYYmG8qvo+UGRFG+hAMbMb/wA70Fgtb5fOBzTprbUCyVBTlQfRUFrxGOovieG7LlBKpQX7L5DsOu1QfxUH7VB6lQVluZz0YAGqBUUEnVB8LgeLHbgXms5BhSH76AAY4Qa8EZiFBK5QRaUFmBG5A1lEXCRfWVF/n/eBlVBw1QTEsCjVBoh4IWQGONe5rhm0A5mlB9aRo5YaseW9ZQdS4GbuGFIdgTp7G9Gjt5kNUFfDmwAgEpUFmiAoWiIRUHMeBTwyJA2YjNogrgfgmY+cEfyRldUE9Moa8RsiZzC+G91QbD4bTFBPFQe6UEFJibnfi9UFJ4ArSRhqUG9mWCLvgJUFk1BIG4Fd7LjzuwbaDvL4eq+mXhlYLq/VBq5hlK+bX2WcNQY4vaNde3FQRrYYWVBSNQbRs4fkBUpeqSEEwVBzgRilWZSzu7BQSuUFA1B51/qhUFg1BoFAdSUGY5BXKbp+saRfWaxVr/wCx+G/BQfrHYiseCqtsUvZIqcKNhpKkHuVBa/AF/V6WtWOjdoaYb/rg8bgX6YAQ8GxBQV/kG6VBTuRgQr7UtE11QYx4bNX+nXfh5Ob9d+NyQVxOYM+Q/FQYOoYr3ixmDkP4ZhlGbEuKn3ZuBGpvgVN7A21BNHQLW4GPpuP+xg24FYeG5eoLxUEFJiOlAZeXrcMwZynj8UH2VuFVgpdUFgrWvagL5G5XR+ZNhtgX6JiwrhQelpYbWUSCnhO4EodGCQ4HOp6sVBjBQI5YbxMG8YEC2UEpr2EwRjKBb03W0xQYAEaef2dGnsrq47uBU15tnUEcdyudQePZ6DKW/FQYZUHiQWs5HIX4aj1BscZufqAKYOCHkFjxBhTexWPnIcaT8c3FQaXFZ79u4N/rnF6pdGWFQYg8jTmBV3gWaIDH8GHlAolnAe20eFQaTUGEVBmJANpsQA5BG/AGEkZUrithQQSYYvyQ6vXpq4H8VAY3hpIwaweBUhQalUG7FGxtQWPUHMaAeo5nNQHdK+7NQWfUFx1Boh4MdUGcq+VgCscuBhlmiNQQm4GQAAE1QYRIApuGRMcFjt4W1BeFyvbKg1RQQDQQvkH6/mWp9r4kH6nmjpxtG2BZbm7s9iy4GJhB+J1vKMA7K+a+rghpb/1BQlQcg0EHGAZiRiA0EW9uAt5lLUG7mGPCRlDUH6nmR+QZob5sVB0xQWKcaz3er/5kmUESAm6DQfbKhrLWODQeKayw+G+DQTQIZKZ+RvfuoO5s0Bsd5rK3hg6WIjmPqeard+/tAKNIamxWm1Qft0bQema1Vt7UFNeBtDhmO2oOx+1wRq+Pa6ZEFvbjakYeVBj/hktUCS1BjWQVPsgOis+Kvj+PakhBwI9tSaLf+GCqvrCyxbtmEVXt/kHImcwNhowPaT7OSxQectaS1BPNZiY0Hta2AcQR74b0oAmVQTtUA5hOuRABHkEzmojbgaHY54bW+p5rsgDqVBlhxhSEZ2lBAThhDwYFhefCRjRoa6RIaMmm7NCihGNGhvZ259c+zQDuBeCKLuQxmmZUZ4SACunoRUHmVBnkRj2UGDR25rVlpkYzmo5y/HLkEpBObjQQzWaDeB2JQZYcYnEuMdho40EB8803gZFdYWJGsoRusuD772wOcATYbBWB/dAVt4GH/2iAHsGr57eBtMDsUWCWOB31uoPUGz2e0xQbGr6pWGatkubHYs6eKrXnd4Hu9+KavhZPZwOGsLLOmob3t6POQXT75EV6mVYLrIBVxu7Pur4mLLFBtzZt0UEdFB/3gfv5bFa++BQWvwDY+Gnw2H+4YonG4U1qTpbbNBI1gVj/q3lBmohhIoa4AOkCuvhYaLqGwf5h2r6cC+vOfh5QJZlB1IZOcUGSpB62Qec0GNX21AKoxyamJwpKQd7oEnFg9EgPHrZ1CKA4RtNm6V+GZIhpB3andgDDAW6iDZ+G02bouL7QJ+uj/gxnrnlmfM9pKkEcOIMuRpwwEp1u2LQX3QbH8GgLQcxN6/VBJ6vmq3oPruXsnrpVY9T2uFxlrkAItB3zXEw0EpOG5rXkSAAoBGLo3gdEbGJuQrAIbGj1XQBvhrTOYLgO3kRgwUHtNBukRpVSil1QeEgJc0HO9GOvgZKa5F2Wrvgcfwa3VGNV5nhuDZ+GDcADuYa3hGVanFhgiRFGxHcJKwCCBGQjhjiUEy4+LvgZYcYgCAfpgHCn6e+BfhAHm4bqcYtV5pFEYiH+9ERvzIByAAPqXnsUEKtmljQUdUF59m8rdkgeYJFw0xQbxEY3VewkRj1TRwtBUG4CS0GVFBkA/un4EuQmrrQe34F8tBM5qIobqu+B5eoPIDByr6/z1vdGYbRe6xQbO1460AYbQZE0EQWG+4ZkP4H/rgFVxiQHqytBgCABbUHE2G209gzYFcIWQWvnq0GRFGmeQbdGZPhGQrQUngCJtBg/gTX4FmBGUbQUu+aSOGlrQRP4E6Sa2lyJY0HlPgr8wuspZ9PmMrZqiUGDQ6ybQcmc6a4kN7FnxNb5si0mlk20F2bmOUipE0FuzQZpQRy0FdtBbeQT20G1SeUdQQfmo6VBncRsMUGO3mY+cFbYHf/gU7QUnr5Q3WiQhq74GWxGK0Ri1V4jAAOLLIOHav+BTuQdVEZDtBib9r1UaztBfM9oNDpjtBlp5p20EBtGU7Qc9ZikHGN7Qau0HyAw67QWRA6oiGT8QcMUE7tBpMaPu0F61WOkmmdQbNtBI7QZe0HttBfPXjY8o0VBJqho+0ERtBnx1oJSQLjuhyho+0G7iG0n4EG0G4BBIbQeW0FQ6eWAQY2lh4so4f4MfwbfFBBTQdAEFrbmbhnokP7j1GFbQbe0HyAweOvmE0EAzwvxRlV9BPhGTqkHwI6u3GLBRkAUEBOGZbQYa0FqtBKBvgy0E6VBogQZ4eaGlBkTQTh0EJc+QQiES0FGiAhObuB0HdtBknHr60HAvcJIuvhYYnsAO5hj7kZmBGE7QUR0GanWRcdocfaIdBkqQTqL651BDrhvSgBKtB4FuLxnbOBBZpQfoA6xhBPpQfKUHtPmrvgQa0GqtBlK4Kq8ZR/2gTQe3EZc/G2+QZbEbsS+OHorPZ4R+Bn1QadUH56BIAZnsO5C9Gk7QZG0EZtBMpQR3t68FBLjQT1pYxBB2OcCu0EQdB7MTjzfZy8AxTXutkFUrWHslK80Go2GjVQaq0FstBeQQdUIQFBBeR4AJ0FrtBl0AGaUFoBK05QbGEHknG0dBgUUY+cEx/BrdUGsdBXZ3gR+a6p+6h+tIkbK9udkbie0H9QwM5jgLUERNBY3hkZkFqNBpXQZTL5xUA0QAL0EGxTuskHiRIaDBB051tYAATVBGrhlNUFR1BL+cmDpb1dBr7aJ1gAKNBTiQQPr4uHgAshg5EguVB99QYIva2QeCJnosEEomeFegcpwG9AWT+QGCICaDge1QWCtbXVBZTQaH4aARu/I/kFWQej+TLQacEEIeQ1AKuZwGAhBRuKL+3Cl1BySQdhuC4BB8yRsb6Ar3iFLhlVUE+cEGEAWHbLTFBKznjCYa7ReWNhvGBDOcB0aXr5+Y60Aa+Rp7UHObWBZ9vEv5ndBUIQbWvoVK+rhQQswCWhGaJQZsPgIhBOTQbFr6g9BFOXEMxzoBGp19twkaP1Bf0ZqcvZflBVbhvaUGaG+xIQau5bQVBVjQYwAA2NBqpQe7Pao5mdX5h3oEem2t6+luqInD2wW7mD17+kALo3qGbb3j+D0vkSABwmGSoQeYkbbp+YYvu6Z7tL2WJetSZr3MG5i5ufBbvxIYZtGaUGw5GURvmndaaN2u55kdmC5/2h74ByuA2NBy27uBYbOeGaIAThEHVy+YtdlA0GvuWCcbmFA5/JGo71q0UGYhBl7ZtVkChNBoKvtXSA02BCCxtn4bWyGFNQctEYzeBOSRmpvreRG7bblp+aEIAhA7sTYY3DAORvg73jgFcY2iOL0Eo2GlhxgC4CZ5BroQRkuYnUyCJAEB0G++GNSxtpUGYwOM5qANkHR2Gn35g00ErVuvSOB2Z7cMwegAGPwYjNoUYQU1XpTmBNXhrY+Ym/GPG1mGm5ldBXjiPsuCJRGce9ujFax1Bh9QVCywnbGAzhq0vbD6BxaBgbkG3Ve2VAFaFZ90GMjQVvkEqoA1tQeZUHtRGXYQb5UHEL+Z15s1BbFVBZrQZntaY5BQMQNHQav/gCXPjo3YzuGhshgpg4eZGwVQUML5YNBQ43srwaG/m1UdhDeALh2FRQbBF7NLYo+gQFub81Bhzhk/mYsOuFfRvVUGz2e1t1IBP5gpO8scCF26u1Bx9QTFpA/5BntQf+kYMJKtmftY3iDuBfzQfEW4DOGWvsNVHaN/gM+umRnpddBLvQZv0HQ4Az4QUU0GNVBjTnK+5ZWsIHZvoe+Cv6GrBBuAEFa0G8Onm2WZvVBDtZpY0FzVBLpvh1/Ktag+RBhyUHOpuFn3nyu6D9Btumt0W6Jm+qdAI2IZx72D7QZ70bf5GI9ZpoEEItuWhnlYLrBd8r/5rf0G3sAzVhkAUG0gQQOeis0FURBi+gdxYHoFBhzhk1UH1QOn+QVv0FmJGHtQfU4asRBkN3uT0EPlGMN3vo05w3eSZQYmb7v9e6+gc625c1B5zgYL0H/BmNEgHTUF9PmbBQXS16phWKfQUXEZ0TyRGRheUaa2Alk/tKaanNBvAwaD7aHvmXlntvUE/Tu+RBrhUF+We9Chi+k5XeyPmertwZB1BmrfuYuY5dB8dQd2b5elBGgwdmUFTWBPhdpou57/+LAwc6m5ZRBEfgSAMHEZGd6Rub6ZB3Wc5vp/0ZelBuVnrMiSW2CouRlNJ62NBADQY1griDBdYJvub5v/+F+gYCOZP5AopQaqEbJxuv2Xquk4A5e1+gaMQbBdBw5hqF0FWkG/Mjjf3iNDuMQwTdUYQtWlvPl8uB90G4XQYaICRdBAcQay0FBn2xUQcpRC1fAeZQV9OYm5B7d1o3vp016eQwUqwAFDB2rQT6tb6CehyhiMXZ2RAs+bijl4bSAEfgX8kbhDBHUQUZ0GK1uSNeo48rVVBx2dtYBb0ABBOXsMk6a0AlQwYueI4dBxlZibkHJdW80/v0MFX72drQY7I5KdBbxvlXYHuyOnWesEMHMgOsDQSxABX5uyOQa20FoIOcTQcEMFEvGsHgnHkF3mOFm9ncpZs5eT+QBkMFfQOrJ5o/4bLNBAlgb11aXNBSu5lQMbS4oX8RoXSDRAAxV1sm0HEZGpBQWjZ7BSUQJQRL0HI56ebQbwUH5RgDNgaY4FDC+3nQRCcDWW+fuQVuUGyR4in1u7kbfFBfwwYUUF7FBHQFomkahaI0LLJAqZ58+pNcOCy7oxBNtgaeb4xaQDhdiUIyQiBKIwSdG46FBmBQS4F7zFeq2Rlm0Ev5ym2RjCUF4jB9MQVtkHVlBp/AKOebnZG0ckJUN71gO4OQRD0HNzeaIHDqoDg2GrIgToW7r+BfvhjtkFixBE6RjZ0Ge+GypQQwUH8su8+QRN15qruQowWGN4TAA2kbpgYFY5Gm+QeRIAG+GUdZrlGbjtOIw3j+lbl9BMowQ9+Y3TGR2Tj/EH8jBnBQa8AEbW+NsQX3oDyWBJKpsFajIoiH/qASfZL5+xD3m7EEHuepCTtKMFYRucowcGXZCjBTVRg9UFajBjD3jqMGXpGDowTNThmPWgA5qVUJz1euRQRlUEv78FKcuNobb5B5fQXMobA2+UowSK0EqjBcowVeu7yXSm5qoRjBe9Bl+fhgMH+0GebQUqUH8FBf4RuBeQ+Z6QgwdCAAgVBGnoNBEEODejTJIAX4nRmVowbKME2rgRogJS4FcTmcKALs5YumGzRBgYF57fmO1Zkj8bjzuc/9tfIg/tKC4DhxgBJ5G2kbjY9ZTuADxQfU4bx9BSAwUL4a6XIQhgDxtZUjBJzjjlAA5tmjEAMOu4ljBfFoCeIHP0Go4waRY6FBA77QULnagxedB/kPbaTFur1wHfUHVBGdlbirUEqlBZpQZ04Z9SKEvQeFAG7BW/hQZqUFkmAl2Qa6MHOBahtvr+4aMN2g4wQweZxjBwrQeyHDQEAdlbjgMGpASPjQaEAD3N2+EgS8FaajBReTpVSjgvGV3QR1UE70ogTQQVmZsYAUUhiisSjT0KVZsj6b3oOClpJjag/FB8mQRp8b+ZGFo3oSvCi8AYdgfcUb0tBxgJv+b4/tK6mDue0G51B5uZvwkHCDe9PhmH/aY8GZgRoakao72PSRt/0EK7uLgDtUXKCBGgRfhJTQzoIFw5pmJAXtBJnQYUyyujBspRljxAVDBG3mljGZLSAQMfhFIH+3Qme1qGN4Uh28rAIFUGMNB9rQbVealWynrQeX0FC52nWAB7VYAdB6eAHYkFD7wBMdtXQZrjBZtgUFLAHsGrIoCuMFBLG6nGA30GAnmxwQRzUFZbuBeAAFZZO9BKARsIN5eq+mlRm04YbgOrowVeAEgFeN4AXtob0tBcrQa22L4FBZVMJiQBpV2ppZqcsYyTBAlgbtIFPaGrJQmw3ZJFGQR5oSUGktBoYDoSBAKTBscZvUkGaR2z2QRO4ZgIAQ9QcSMEUTBCvQfUsaXjBJCRrMUaylBzVDHt+bEdwpqiBX0GJRG9KdPKkhNhBDkwVy/Y/VBYEwT4v4N0+ayQZDd6HNByCQaFMHvF+imjqEv6LDWFFxscgBk9ejjQXRMER5GiliF5EZVfmWYwZoOBsOB5lQZeMFR1BQudt4AACO+Y/QR8kFDh23ZQVSEZ8jBSYwaLIG/lBZzQcxN5zAmbBQa+MHAZWSjvhCUZelBSWkBM0Ehvec3Lvw+BQ5BKKQbUv4p1G6HbmSMFYpBuDdgkUHHlB0DPkZYZPDIqYQb7EEjamExQaHY4LqWPSeiCDJPZ6VKQR2XosK02WRm1EYo1BWfQX1UGQlBSHbjs4FxlBwH5mykEJlGl+fn34HJ9B63QRTUH2hC91QQHzzH1m8tQTIkah2OBeQV3UHBDuLEAO14aoNBMkAMqkFeH240wWYkYmpBTeZlzUFmJGucgTzBbaVB2YRt13AfZB+lQbaX7A8uBpftMJ6wzBQTgVDgChlB52QefkbE2GNqQT6X4JuWYZRplUGfJG1YQR5UFP/G6ndr7NBfWB/qcI9MGMNBjDdv30Fe7m5nhubHaihBWDQayYaAbkQaQbjHDB1Bwc7jJqB6NBLRRt5UH2kgdfQdv0H7yBQgejpJp7QB/rnlc759YO/TNiQ0AwxunZRhdAE9lG1lehjkG8i+IVjv6UFsN2Ae7h4V7DmGx/BkDkEWuByowRVYKqfWztYFeQZl8+9sljgUFIAAKzQZWkEhFepWupYEHqtB+wxvHUGNpBipBvgMGndmCRQYGwbz9B4+HihYZPwAHJfo+94F7umLvmo4Dw2GqUwd7NbIwBJPnnwvbaVBSaDrgibZEWRtRkC0FIzBuMwRjAGjM+htRoHMHw2GOMwdqUFXZBUH3rQoFDwWX27pO565jW7CgQafp11BVe5oA0EB88UUhhekFGce8dQTw2Y/l+UhhuouZ4tBLnvhzXpLTB+H3kcmab5BlhxjIoFjqGk2QQ+EZeVW1yZjk6QnOOTNQWZO5B9B3eWIVUHZ+GEIwccgD/DBexQaav6WaO2Svn14AJ1+3eBjzkGzWGXODohkHWO6hU0qHY6GwBQHnvlMbn+GVcbtghbRX8QCCEbEbUV+HLBgupY+VGuChk5npMV+vPZjOW6Ru+2ogLNYaapmzGQbNYYcN6UnlBfQacZBa/AF/EbcIWX8lltCaXP+VSgT8V6XjWkbNp/PyvBG+qRlEb71QO2cwTKBbIpuPVQWYkZNVG0KRncIBVu+Wn5inAGbluTt8GlGa9VGOHkCqgBddBamQdiUEKTBemQfYhZelBNmQfaEL9fkmERoueYVwBplfi6faLKBcCwTV0EILByWwC2UFOn2aRgVwe6vNmrsdgDkE+1BV3TiIe7zZB3rQUxAC3VGqvQbc0HztBpHtrcMHtFBLDZjRtb4gA8IwbFkEfKBQgrktiLami2DQVJL6b5BeZQfE4buQI5uZoq9i8e2jsOCqXZfWO+WQXX56FZBpq4G0hatzek6ZqIsE+jqkqQWjHBCA8zHBlPsgdjBYdQeMhYexIuILhSoHtZByXnkSC6ia6vXPMBQYxxOHNRn1kF7dGnF3ljUFVo6BYABAGaXTe42QS8FbBtASqfgnIYYwmev1u1Z5Svm9u5pV57X6WAYniGGby1GxLpsV14Kle/yltyoYD+eIjdjGJ4/TmRXPilfZZHuArnllYbEumZOEmPp4QjGN2QXnUbtWWWEgOEsFlZ2TtRg8YGvZBJcvhRp5BCI2rRr7Ua/UGA3PiFoBVieVNtMywDFMsDG/nyR7hieA6hgbVrkb+hWer9o6FLBxrAP6Za3mGfiAbOQbsGA19EMM+Z5LBwRDmWZ5W/gwU3krIZrieIs3rosGdUGyBVlzp54mm2rXh4uZxleloJomV7w+WAHZoZv4t1GbGAAT5SWb+POnlkQbI6OjJps+U7M1a19EEyaaY8+xZXu18ah1GldjkCMLy9SlrAFWV5tt6pz+LXsZS5qN4noO17M5m6n4A+J7NleTPPi+J5STG74ni3my/TW8pptrkHv1Gb1XPZ+b/ieFe/tLX6UJeFCXk8gFLF2oY3OKmauX24l9huYHS+e6c3tE0h1lGCvnoCYCG0Ap1Xg7kH/VudwnOpnAudBZlXhhJ6sd6LiwdhJ44Se0rqL6CatsI5ZnhGK4h82x5Xv+p7Mu0mZgclMaJ5BKQNrRJ4FjGg83vb55cNGj5XsBoF8NG1SIE1naT1eM83u+V7U1uGXhr+ZBSNGhalrDUADgYny0KsM7N56PEnr+ZB89eaMmgElZBWGM4njJJ5tCG8fntV3qbqWYdtAmQZHzeBjRrYwaVokaEJi5J4N8+rpBmb3QF1+RknsXX4rd6O5gQEoZbDu7xgK1uaqaB+FXpJV7V+emgANhMZlmcyexv82Zr5BqujiY3qLm8n1xgmuCxNGm5pr5J4Wt6bxkKiuDxleGdRrmgHWIQlR1seaYRSeLknkU0YUKeuLgNhMa31Gmc1vFJ7gWBP0Lqtn4ZSe31bs5SidoBevvktICvUG1dbsaQbEgqNmlhJV5DDerdbmAH7lSeKqwYk5CE32CT+vCsEhjuBDRgTC5GF6EXxkrIaeLBRWgWZ+Y8XcKlXuwIYgaIbXXum3Zxmmx8xtcf5kFBnN9pr2ZK1KG6xm/X7QrBKSwYFN5DGefm2C+gHyvmhTLFh4Z2VeCMAc0N4AN+IRevlvw/9Ba0nt0LaEqGCYxqAUBKp+wsniaD77SemNqHjp4jZ4J0nq1BYN++ElBk9J4qoAAIdtF+Y8+25lgTHbpjrBtsZpOsEBLedAXrOsHjaWfKwa9J7DrBhCAAenb8rB5DfggtYiBe9N1qjJ6+WB6C1oKsGYyeamgE+dJaYBEItpoABMnG9t5mVV6gNmZIJi2D7nrBnKIBoVajxuaMnnP749g+Q+8J9cZHrB16wU+sFDVObItrysE2HGe6wfOD7eue1jnpo4AJjGhaxoPo7cPgaHdtvMaJJu5QAOqsHimWWqweUABMnGxNni4ADqrBt/vpBsGIbBpnADBsEQemLgAPBsFsyeCV+KhsHs2e1+/q+sFsqqxjfg/v7uNuGy4Io55jJ2h17mTI4pyoRintNoHmmmmqDLvSzMrgxHXhj55jFBey3vZ7bDmGuSeGh15MbBp1gRBipCIAtawWZkaQBmKLRnrJ4mxWqPlmaGY4medKoDXMYxN+SIdlFTDp1enVpu2WY8XcfqxpRbQoIAeB3scUHfVeXVgCwQbrXGRbjrmJpqbBqoXrjpbqbBG2gSpsEZHWebXmDV6J1e31blNV7HWezJ/vxFYnVOkceunJ5ud26cnrpEaJyen1plHJ6x94g22AuLa2bBgAgCH3gBMGUh/hSt7DheFadvDV75yeWvusRJ5YSAbs5ohsFGeAWuevCYDhKW+t7jTgHJ5mIGiI4sFdW+Qq4Bv5ah4Cjcni7R41rBVv4O5sGlde6VnlF5AJbBWQ+qcF6bqWSKnFBsGmcAxrAGQ0aB5ed7jkbpaP1G9EwambwUaeiNAM0QYNaWorbtdoGVOGmqwUNZaQtuT8nuK4gUQm8GwWJZ7AzGH/diksHR9G0txiXp6GxW+8niTeZkbBORRvWsFbye7B5n2OZz52OySE9IAS+WJ0Ps7pb1bBtOnpNu77aezWwVfgCtbB80du1sH332xLpl1sHYTG1pQbiH4OrBaaxk0pZZJIkKxlSF76lGoq5sS6b81elR/qllYUUG2UALUf7TlmXWetnYFjjGMSwZmJ4EpeZWdmk/ZXbBxLpvy8by/2urbj12ZsEk7KxhMwAHzBX2gf5sH+mW9v/nGIiJAA6mwVS35NwAfqxmq4692BOWwQuHbcVeTrRhWUEdrBXawXdsFUrmd2wSF8aibBk9hogw7wKmUXBi2t5GhWUingK35qj622wUtUC7bBIrfloY6LS2sx/LNMY+yeZmwc8RYUKegmWMc/ZpZ68GwWwSSM4GeOwasZbgTeQU3mgQGgt2mmwQ1sGtOep4WlYp5wVm/WdrjkbYTGXbRqhWZMnGkBnu1sE2gOlYXsGYhA7BhaxjHV5X6QwGwQXpZWt+aWeoH0buNwGqMMLsGIv2ISnoMU5DrG0WIDVpZXHmTSwWlWi51ePp1n6sE60G7P+uVhJCZOiSnh++oJjGG5fJjoHzhe55llY57bwAGd5gtsHWAAN+xvXV6N2WjdXiwx6II+f9uhR0apQ6n6xrvSws72yoXkDsEtn0ZFQUgj6QbG8lAPT2a/2etq9jB0a5IA61xl+4YB0Kz2xthMZwbBfXXno4GodG7uwQ7WaY2oB3RsCuBjKeXOnlY4FBlWGynjQ6aFbBHN5v53CzsA8ywewuY71e0m3qRfoFRen6xpnlac1WtofjuMRhn+bwxoHsEfRA9ZnkjsFxLB3e4NE4Eud2CewfqgCQigrrnmtUaB9udlQX84bceAXEgFt6ZBgWVqlhl4Y/10x7ALJN4Ntw6WwbjcZwAmIYZojcbWAA1S7iul7yhG0ewWJZ4lOBih1i+divXAj/hrJQa17BFvRsDMZ2OBg6nqUyxCGAzTgQ+q4trBW3phcUYOOmv9niNnjDxBM+Tv0Z53CA7ulkcYbJOemYgL3Yg7VmUanjvsHIHGa2wZY/5+iAV+wbVUHTR2i+dpqGaIwOzAJoX0bKoAi+dvjp7jrBCf4Pr0aYbB7NsMUywZ8A3VQRKQYMNePfRpHsF27BDuwYUp7yUWTdaMhZ4e1eM7QDvsFHGGDFnoawaR7BGsqFhMYnUggT/qW0A4kA1BxsY+I0Bm0ykIzsG77BzpAflF417BNaDsBsGrbBWEgHNsEVrBSjnm+kbs6BUqPuQcHJjen6xva+YQgQc2wUNsEqNeCLgaOXpPtGV4FufsEIskVBwUjsGA7eoehNup4hhmC6nlW0awHB+Sno7sH/tGrF/kp343pY1qANHsHsaeL7dh14617BD+wV7bTndGnU8CfsH/UAfjXg4YAM2WNjeFGO5btAnawWGbSnDeWhwQzOYprg+XuBZ36JNe5WEjVPBZ9GLewbNp4grgWExnSqBlqehWwQI17nbBZVwGnsGrkBLJZmKuD32mtewWJZ4OWeCCiJHsEFbBeSxmX6Z5hGQvpq1nYv2eOMXrCZojaeR13hRCblEGXGOhEZ6O9eyOwTvsFa1Wp0XskBYp7Bo6nrL26WXmgfbozga8HBZ+wT7wZ+1e7e3r517RxukhwS9CbSHBXrgfyraFt2vGwSAr4cHBY+wbup4ld++xjsUvb29eCzXsSsEmFGJ6nmOEE20G56ngCsGXqeGlnq417R7B++AGOcZOCAmbgbhcbPqeCQTssUBgMoStSgdF5xgAvqxjewC/qeBigOq54qoAn1xkGN4gzupXZLiCgUk6i+dnqeAzd+OrpgHU4l7eBFlmc15HDmAKluikgfRAmdQQS14sHBmMDsZXaVqeoP1kycbvB2OPttxp6tbmPe3rnk7R7BIBwd7bQFpmI+3hRp55LB+xwUCsG43GYLXgurbbuBU+3lZ+5u7BvQAGccGQ3m3CdhGp5fXmVMJMi16qSGSewlIcZ8aequgfw+CaMI5lxi+4GKz6b7gZ9wb25ofAgD4cG5XW80dioMiFOWxLpj0cE3B4nZWJzF5cSAo1BsZHawD2cWxiAcHXHB2sxq/UHx7BgJwWdQZJ7BntXkT342qeaJwUNeC+HB6xwbv35zKeMWnjPcAYi6iBwaPF4vHM/kALnZ7s4A8GwS9CaQt+2S6HkcZv+oS2wdbf4hhmYlnrdBafrGIBwdfNbiHBeawUK/Z89+xDQaicEAS4cBXmscHOsAz2waTbSWaeR7plv8ZGPIaE2AXF4deOEO7jHsHPHBtlxlbADwbB8G2CWg55GGnmnkacGSnBCy7s8kFU20c3tu+MFynBXfRhIMEix+ojQbAl7g+6qJwROoaOxWWNQdhZ50SAeNxvCr4qcI+BwSNuaIWek+zjga5gnGSgABCcZKyGqiOgWAC1jYkwAA9gCl3mRHQE0pZVmeo2nmYsHjaeuRwXXZ4xeQSshquIZAj2O1Zs3eaWnGGIQAmcFMqel+QedHaZmyoDXub37qMIi67lENZCfm+dRhnuDFtufmnoX4YA6e0HBgocE7+ojhwcdnZXaeJpwTdp7a56fdBmqAGDMGpqAG9wBkOeTxwX4cENnB+hwYeMbUT2iBwf0cEA6eYTXnBZ5RcGJBwVt6a17BeSwb6sYLbefVXqVF579BLMENfUCQAAtyHN9sH9bBrpxr/ebZaG2ExhnwCf3+mOnnVZ446egDXgyp4pLBhOnpjp49NB3dQNt4HH/2u3gY1FbtWeStRg+VaUJAx+9pigDyteTOnm0F7O9+6MJm6Eb26BwSdp+AAWT2EA3nWcaGbBazFiOfwUIWPXxlGEaB26OWbkN0YBbBhRhmlsY26eEbgKNp7E1ww1iKTpYDtGk59oIl7Qo80uwWwkggHBKunrXVapze65xlQcEpLBOPgaydhabBSwxvBsGG6efTXteQCgtBzHkGZwD06Odvusq6pwXBWsCHgvrR5gTQ7nMIC7We9Fwe7p6xPG9FwWur4ZHO/fnpa4gLnBTqwZ6J6RPmJETo7ZYqvmh5AHxcHKHgmCfnNoD8+Bt2bqJXp3rBr5dJl15C+mupwa/eAHHGKOwR5AhNaA0tAFyIaxPG1u1uZ3iKSgvjgMz8bMde1DXmEWZd6ePRkG+sGMNo9FwX5tgPDuFbgPacF/7BvFbg4QahHgx8hhdZ5gKoJ2gEacHcm+OrXoPp5aXGl2vhSQAnaAo+nmP5Z+PGl3RtHsGOieQKdjW17z6e0pWgOBieSeghwSksHoEGu0QKgQbzR2rAACO16duAFoVhbUbdtetUnsV179tekK0oO14BtBlUxmjl5q3GvWhtfp7ErBMzAbhPSDnBBRwbm0Zkb+s7XmMZ5DXgh7XrE8YKcWy7XmKcH2VuMYUEycayv+VRbszl6t+BIBnvFcFgGe2PZi4Z6kje0BnnlcEVXBupxt/p41XBJDXngd6yG2qhnte17ybBQfllgZ6kHmE2hmJZ4o7BBhBs+16bL6X3RsNcEoHBXttGTVaheeUVwfoQbzR201wZvyb6XBYfRoscGOmEHGweH6bJHBl3RtYHo7XBJ8Vp8cHJuI0/4BljoenOqhnjtcGgdeg2wWIZ6rXBclwRtcFSGeO+wcDcaFXBSgANdcGMbBQRwZw5bKGelvJgtcEuogo1wTR15uLW91wVNcGoHBm1wbqvYsdeIIyCqd6xGehletBcGVz20wAJ5cFZXBllwYA14G4AQ14Jjp72Geox1q9cFY2eqmweUZ5Rz2tyfujr7k1+eVwavZ74i6EIEBjcFsHBWHhkJ15PDQSdVjwTaANeonZrSvoY3BaImAWABSdeVlwXJcGDWehSlkCn4eceDMnjNsHlv+kBnmJZ6pGeA4RipcEZGeNVwehsGPEGi/UCYYZd6eKlwU9IA91WcWxtlcHWnBy2weFcEhhmeS9g5cG4p+7lwUzcFiWe4cVm4cEHHGDnXojcFxbGTlwRjcEkHBUXBvflY3XBHnXk30AnrBOuwZSt4lAAMf9qs54DGePawQe/51p6ZVwcF17o3BNVwStsFI7Bl7/rfoE0AWz1wX6+aGxWaohnTcHsru6GwdHQYUkAGNwVhcHG1WE7dsMABWkGexnjDcH5deNVwe8cH47BXttHBN45gmZogNHsHBrggUxk8cFW/gnWgIz55EcBKubpdxa3GeGmWp1W7tgAO7duPQj8VuKZwRq2ZA3Bn+wU0pb63BTXQTR/64j+JEhgCZ6XxmxLpsCZ41XB11wXgcGb7B6LgGtshT+ANOaNCZ6WuWQjxtccHzBBTrlqSQQsuefZ3lPr4DnevQFiXsHPtGOLBlhcEUF4DvBiAEJtde23QW8ZAlgmk2li0Z5mnBCVAKud6G44w3XmN/ZiWeLNwfb/7YSA8IkFWpzAbBvj5kGl5TVBjWlrPrqvuW63XpYvYZXOqo/toT5uPg80dnj/6ACA+3XpccF3CATGlmhdbWmebWwQQcFuxmvdwftp6tOeUXASEXqIHBoifL3sGGFeTnfih/Z7TmZJwffcGy9mTnlrbsFDp+OD4OmcG/7BclwekUEpLBMpwZyuAXFG8pwbVwE/uOOMQOWZ7lBmBYAOOMa09Bmmnu3oAeSezpns6wBq4owoQSEXrbae3uAC0cGinBHjELmEY7Vmj9wTK16frG843mgcGmHB6LVr/F6+l2mGnogcH69GqzLDVPC17B0ewf88ZjaIfqxjvZ41AAE6weNpY7Vma9wV2cHSBBuObilp7Y6eqwZuR2qYPBM9/oi1ZcPBGextQ8FlG+M2WmDcG29W0VwX5FbJLBUtwdYsH63BUvXkDUCjxe7nhn3oE1LBAw1tvsEd2UgGXvLc5Tj+yHXjWN43GGUxsIJZ6dbBGE2GMcqoNeLDwWtsg1XBPRwXz17fUgns7hyiAVAWDHRh9ED+zu8MujKKjLrBKa4CPsE9twY+wYjcYpLBiNxh45559Gc/RrQFbugsyxwfwcEx7BoTnv88bANmyI5knobCTelo9pA8FiWeUkXusFYhPBL0JpHsHR9e5dzq+Z4OEGoMDpG8YJmOV9LjSaYGdAiMDqv0GRk2Un/ppp6yAA2OnkHZYCZe0mnk4ADV9GB/QaL77C+WwMxuEcbHsAGhwZrToK+WgWwTU8F7le4pvoPIAzpm6dXt/sHmbGKxwXJcEmZesFBhCBAMdGQ2wU20YSlAnfXvPp5JPBdldhlbgotmTgAFfsGWHmciOoP16R7BBxxsP14ZZ+M5WMHcHj9G8F9qs4az9ecI4iEfZOXB6hlkUZZoyaftwaYvZ5HB8dRuzIKoNeyTwXM8EyWezpwaoDD0KeGrZiHbSILuUH4NbJ6MF66UnnmsF4IsvEJtpZ5KT+5/AUOvYlFAwaGDB8bjr26k/lisZdtma2wWwMF8RBvYZhsp4BHBI2eJWGbEumHq3uYNaPXGFvRv4cGfXBbD/i5Z5oU+WMxqC8GCAmAFwROvbcPgPlnsDsGoCBs2XlC8EW1GRw5vjp7SG0mNqL2nbrXGPk/mdsEpLBTTwdtl61pO769j12arPBwmweGwZGFeE7kGYobOnBcC4IH27H6Bm//pB1bGDBIG9oZ8Y+RBypweicFqnBXCZqEsFYSAv6RmLsEkj4YUQUeb7X6W8TwezgA1Wel5vvFcGA5ePtwYMXZXv+7fPiq8HMje20nsLCx0qe/twUycbYXBclwSdoDFRBPcALchwMp23Dds+k7GvBDKdooN5EAByFvvVEENDBsVwSHJDZXBSEZqHcFI16O1nvLv5jT+fQwS+8zFXBxNnjFABnWeLhnkHd5IW6rrwaQ4YH8GK2wSksEEH2rVXt665j349rBkE14fWeR2kBTbRWkGhm9uesG5bBdVnr42ZC7gscjq4N4f5uiyhnesH6vB3Ddh90CM+esNnl7p7bXMQBgYVPZhQA8YUHaCZ+nBvnvq8MH+ledVwREN76DeCmTu4AGgGBwM/mWsHy3BMRvligD1vB5NnmzZbd6YqLzokm402eswFhjcGTAAZBllA5YeRoNbTno/qT3eKSwSmsGlDeOD9o5sFDtM8cnm5sHHIApOhgUAE2le2QVgy152bBK2eM9N6X3elaJOUsHLvBy6wSWdhLGwG6wQLEFDr26uwT4sE2zoDefnQfZKpeC0nkYp7SoerKAHPfyRrBMgxjMuDaiIhyQhcQAr9uoawZKMFG/GxlwU6EgzDeSs/hnl792eb7wZ4RAfvB2IFnMN5/vBrwAXMN5eEk+Onoz56ul2thQBw4hDD+Pq7hay4FiWizngRV6ANeP7wW8N67DekpnkUcHC6eQHwbMdgS5BU5weIcEpOeNVwU1oDJ7Gbrdkc8FHZgvydgI8FLVA9CnjVPA/vBjPnsGMFnLkp64N48FvDecI3p8N4eOeNpwWgZ683BFqnr5cFz9G/ewbUsHkuG3RxiQ8FDMGk9wT3Z65jBDoFoh8Gwje1I3qPZ7BPBX0DhccZrXB3wEDG0H1BO0ewWH0bergAHZnPiDwbBq9nrOIHfIO61xpY8Fb2efgXjtWZ4HBkHwYA16tPBMoqP3Wz0fBNI3sfEFdp6woAes9aw+455du6N4oCA6RweyN4LjBe//px8HX7BA2wSRcHWXBYTnvG2gatmoG7go0A2iQ4Dno856IgIhqADGHZQOerWwfLG7SoADWlqGbjMSGmJwX6cEKD2CWZtC8HpVWz4wU2lZ6NebRwY/F5nuGDWlsigAH1WhxnlccGVbe0jwSD8ab7BMT3oq2796ew3gIqcZdWeplxqsyzX0QuIKJlp4ztAE6wQ1sGejeXKRhjcE+jemzUNq2YUkAaYdgscFcOeGofrRHaxNGOWervSyLCGoSxtH0aV3oNKlu2IQunBkdvtJJbbLBknwSfsF1LBx0ABg54NaW6Y3mJZ5f2eaTns58ErBeGrZrmN4kaGhWhrc/AMiAABXjPsFMeWLpnnW56SB2uRtM58HLSGVY3rp9JoGeiHwXWN4nPmtIhkg8YIheLY3q6O4RVBS8nvF8EM5eLKZq454sJBfR4AeZ6SnBVAkI8cGozmg2QHw0CXHBQudmetaXfB03wXJcHUPBci/iZMEVCeMTnvVsFkSASTno58FGsGj8njLcFMeWZBlnIABkNGWsCE5MGWQWQOkEkUbFMsqwTkDp737mZiwbP4GPyeWrANHsGAru4s5iAeY99GoqXjLQZo/BvtgPZ8F83m6vRoXnoXyGE64M6wD2fBjWwTccFERWl3RoAIBIfA23gDfsGogAd+wY58GANef4SP6ZYJFIIznn4v5Ylu4znkLUD2fBUznhvGZ2ZmMOHos56OOeHHwfFcGEiATxwRPcFC2GprxqoZ6YbBwkwZegAigm2Exu1MECseDOwa2cHW3BVznlrsFYeGidwUCdaXfBnBwY255Yl+Wc5jCkHUvBEanviX79LBEMxl0J6C4G9LQHqN7RbBDDRt20aC7BAhwYWsYqluPcAEYcH63BtjwZY75/781jvio3o6S4XEYsu4HGPgSLniUfrWHB6tjpJpYzPB6pwX94hXGGWLnmdsG0iAeLnj+0gPfB/+wRWl5oGeUdwXrcHOHBwRwcfWZvkcgzwWJZ5q2WorwaRmb9tGQKwaDMG9L+1LwSGGaQzBX7VmK8GsSAGMwVpUF6QmuUASksEN7BvD+GoYFZQBFcgXVAHapBnO7iEsH17BD2wYI3rtQBlpbp1AFR9BqzwVkAD+XB7ewZfdaFbBATwZPsFwAmiRwdD3j5XeYRZt98FVbmKIgHJcFWueQaQfRuAhvBxY3k0cF+PBA/wRPsHEumATwe6563i0+hgcjZZKTeby/vtAHizBak3imkFoQmGSwPYV6R7BmaQby+al4eKCngZN7zDG8bnk58GkwAF6wTYIYpuesC5hZN6fQBN+htYYHa1GdSwdV8G3bBNswYdg41AAfRwawcHifA0xwVbSxlueP9eucMZ+/BBK/tW55Er+ctQe0iiDpedBwYCN4tLBWDwU8MZY8GjxTuX8Ely+98TrEsGt/BYBxrSv59ueKAIYlN5gfeB+HiGGbV/B+pXsDg77pBrCgXTAEsu+DMAWhVZ6ng4jntAC6T7uFTRn94ioAh1X/ph97Z6mabuCj7rjvBfMAQ8Hp6rBVQAHu541XBfERnosFfVmhUMP0Z5SD2TcwfWlZvKeajwUxACgD2s3sMz8FCye/4ALzcGuQBNU3pZo6DfBxOehsuAfueUPXgPy6JE8vODgQHYkV+Lq/quNbMNGouDpfqaWwBYPttbAHpWeMHnlR15y4OkbvtJ2ZqpmKHnk5MboeeMjBnQcYlSeLCFjh57nzBP5VkHAGlLWP8lnGv4PzBy31hx1itj2GxwSKcEo8G+vRo3cEEHB6//hAK7KV+J4dum/58CAnHnuK8FfQmsDlrCQaFwBlxVi/eaG0ASZwZNcZgKoStXqJ56oLBY7vpZkG8vBblxrOcGJAhcNwf5PawleKcASFoBMnG1P5vRsYTAmGMJl5kGQ7BDWwfRcHJn2TJxu85ZbTApHtqc/h8PBlsAGZ54dvBFnnuFX6hlOQgrrZ57Y3GOyXMWobhfBnZlko959UG6qwZu0afp6aqwWfECvienxhpdpxrkAk9BvGz6qwmbSFkF56lbBeqdhMCHJiezJgGDsFcrWRpwa4cF5bB5emK2fYBZmz8ATYFocleSxHtosE7m6gAAEnQgAAPnQgAALPQRwIYAACD0DSC6AAAodCAAATdCAAAmdAnAhgAAKnQgAAH3QgAAA3QgAAHXQgAAP3QgAAJXQJwIYAACN0J8CGQAAxwIWcCGXAhnKgSz8SAAArdCfAhgAAM3QjwIU8CGAAAVdAnAhcIIUcCEPAhjwIVCCGAAAE9BAghpwIRcCF6/WgAAHHQNwIScCE3AhzwIe8CEnAhkAAIAAAl0IAADj0K8CEnAhgAABXQJwIaSCGAAAY9DYghUxgbaliAAAkdB/Ah5wIQiCFwghaIIaSCEkghDIIa8CGfAhkIIfiCGQAAgAAFnQlIIScCEkEOjwIZ8CE8ghpIIc8CHfAhGIIdSCGPAhVIIdKCGgghIjduCCGMghIIIW1mYKghNwIYyCEqghwSwe8ABaghjwIdKCGfAhfwIU8CHnAhLGjoAABh0I8CGQAAWoITqCGlHuBoIUaCEmghjwIWaCHwBGloIdaCGPAh2oIUyCFOc2uGevaCF0ghxoIaaCGQAALIIa8CFoghgAAPXQzwIVaCE2ghnoIXV7bvAh5wIb8CHUghgAANPQsIIZKCGQAAjwIYAABT0IAADF0CCCHgghzwIV9o5wghPwIScCHfAh5IIZAABXAh3wIRyCGIghKoIcd57RghvwIQWCHJgh6YIZmCHZghwkbtoia5ghsYIQmCFPAhgIIcWCGlghcIISqCHZmGVwIYAAAt0J8CHvZmBwIcGCGfAh+IIaiCHygh7oIbaCEJIBdIAIOCHDghTwIeiCGYghGoIWfFaPAhgAAAPQfwIfiCFvHuTYIWWCE3AhxIIW2YbUghnwIa8CGcgha4ISl750gAy4IauCEkghVwIe6CHbgh5IrseCErghQoIdOCGHghDSATK+CkghnwIUcCHvAhsoIc+U6PAhcYIUcCHPghZwITQM6dghUIIScCFQghnwIUOCFYghVs3lcCHCghWIIecCHSgh3wIZeCEymBjaFu8AAHAhgEIZ2CEvAhkIIcGCH4ghnYIWIM6BghaIIcKCEkghwoIUuCEfAhaIIZyCEqghBPtpCCGAQhxIIUhCH/ghUkxo8CGAAAQ9BUgh7wIWiCGCA24IIViCEwQhAM1lcCFkQhkEIXSCE3AhaIIaiCHighD/3s7ACAAA8dCkgh5wIV8CH4ghnEIbYM6sQhZYIWLzZIghZwIfRCGW5BzsAH+CEAQh/YIe+oFCB60YIYmCFxghaYITBCF2TGOIIT2CHsQhgkIa8CFmghVwIVCCHgghKoIWqiZaQhOkIecCF6QhyYIecCEXAhZEIcxCFzRu/kxtK6g4ghsIIYAAAd0E8CHkghNwId+CGvAhzwITWCEZghFwIZAADmgh3wIYJCGImegAAAnQ2EISKCFighekLo8CEhghzwIfiCExQA4IIUGCG0ghpIIUnzaAAA4dCoQhEkIZnzZOghAIIcGCFLghnoIdp3rCghxoIUBCFAbm1IIRcCHSghHwIW+CGMSecIIfSCH8ghwYIT77ZfAhjwIQiCGQAAFUIVVCGN82T4IS+CFlQhDZgc7ADvAhnEIYmCHnAhAIIapCGeghkXeh+CFpgh+IIa+CFDQhPEIQysHeSUGUIecCHdQhhoIUZCGC6O7wIfSCEiQhBUIZysFSQhRwITJCG6oBSUIUcCGCQhkmFnRCHBghMEISASTgghNwIVtCHwxu1EIcVCFCghK0IWtCH2oBzsAI8CFYghRwIYmCGcQhgAAHnQVIIeOpbughaIIY9CFjQhL83o8CFuQhnwIdhCF5QhRoIa8CGQAAgAAMnQKEIU9CERkOH4IYRCH1QhFUIcGCEgwhZQPvqCHGghPIIWSCFighkIISzG6Sgh0oIbKCEzghDUIcGCG/AhSIITpCGcghWIIUdCHt1+FreijCF0ghsoISSCEbgh3wIWmCGKQhwwPrEbpEwhMoIb8CGQAAcUIVxCFwwhKoISeaZXAhFwIdNCEUQh9+QcKCH0ghqUIdxCEWjO7wISmCF9ghqvvvqCGUghX4IcmCFUQhEEIZyCEUwhZwPnSABaghYYIaaCEqC2pIIZxCGcghJoIX8CH4whpp+pDCHQwhpUniyCEogh/4IQ1CHcwh0MIaCD4JP6jkIScCEuQhn0Ie5CGnAhnkId5CEgghfkIQFCEqghRhehSCFUghCUIaSCEYghBwIb8CEAghaYIWtCG42GDsITSCF0ghzsIRDCF7ghlMISpK4nQhIIIZLCFAQhPwIdDCHkg+fiONdCFnAhzsIbCCHJghzwIRBCFv1+1IIVRCE3AhhoIb6CFCghooIdDCHVrBMsISnCFpwhT4Ie5CF6QhCUIWaCHUghS4Id1CGVaBYQZsnCGpwh0oIRiCF8QhKsIVNCFMwhMgdpXCGPAhOsIRiCEsghhIIbNCG9rB97ei8CGnAheUIcGCE1whdcIZKCGqwh5wIdDha4Qh+EIYYHbvAhbkIYWCGjwhdEIfA27LghPYIVPCF4QhM8IQVK4bQh+cIThCGLwhF0ISu3amUGB0IavCEigh68IVwF50gAXMISiCE6QhYYIZAAA7QhuMIWZCH7rBx4Ic+CFogh7wIUxCEnwhZ8IYiCHFQhdIIV2CFhWBJqVpKCGrQht8IWcCGvghVoIZCCG7ghwYIQmCGUwhLYPofCGmghqMIT/CGfAhf8IQAiERFBV8IR/CF3whVoIZ2CGvAhicIW1V7s7mwCIU6CGgIhDUIeZCGIIhZQvmqXpwghbwIScCHgghGIIXCCGYwhJwIdGCF/Aha0IYPo5wghkoIRHCGRpWzuFieCFCghu4IX8CGQAAOIIRcCGcghsoIVxCEkgh3cIQuCHDaBFremTCEUwh1oIcaCGMIhzCIYiCGsIhccIRwiGeghE+jqSCFxghKsIdXCF8IhnEIa+CF1wh3gXqSCHfAh3UIVVCHWghucITBCF54WxsIabCFfQhFsIV5CFNwhMEITRsEFC4pkIcqCEWQhBkIfgiEiIhPUIWtCEJBeRiIc/CEmIhhkIRiCFXAhT4IYqCGUwhp1gZhCF9wh/sIR7CHgghkIIT2CFjQhKLRq4iFsIhNYIf+CHughJYId1CHuIha0Ia9YHf32fiISIiEpghgSITcCElghusIcKCHmQhVkIZwiHLTOpIISmCGCIhXIIfDCFPghekIcqCF5i2qSIekiEEQhpMIatCEN7meSIR2CGXAhemwXSAAlIhnIIdyCG8ghe4IRfCF5LWcUIYCCFZIhOkIWHCEFwh5wIUXCH0wh9IIYBCHBgh5IIeyCEA4Bt2unCCHiwhnCIVo4YDIhWIIV4iFjQhV1TniCEEghRIIaTCGDIhnoIQuLaTIhhIIcSCENQhsyIWMiFwlB1jumqCFdIhz4IbjCExwhKoIcXK50gAFCIfCCGPwh0kIX3CGZIhxoIQlCGFgh+CIcdoHaB+MovmdoGZd2pwXjTCFowhrSIe0iH0IhSyId7CEJQhtoIZdoH44GSUIYJCEMwhAYIXpCG4whnwIdxCFhQhrwIYmCG4whgoIQSCFoghwpQe8AAPIh3wIcOCHnAh/4IVCCF/IhHYIV+CF9whkAAElCFHwhoUIZnCFPAhTwIQjCGOwhdIITqCGmAAtwIQSCGCQhyYIUuCHaQhCKIQ1CEpghJKIaiCH3QhJwIb3CFGghTyIc/CGqIhVcIXSCHyghxoIecCFGQh+pQUq7owohcKIRSiGBghyKIUBCEYgh6KIaaCGYohYoIYmCG4ohPsIQyCEXAhm2wSraYwoh9iIYqCHfwh8sIey26qh2YMIWWCHdQhkAALXCH/AhQkIU+CFcwhwYIWNCH8JuSIIdIiGaoh7IIe8CE6oh3MIScCGche3yIejCGighXwITyF4+ghT4IY6CHFwh44ITlCGEl6pIISaCFwghcYIc7CHBghyYIXGCGEQh3UIaKiFfAhQUtklCEAohYUIYGiEOKuDqIXXYH7IhlCIYmCHiwhQEIWSCFpIhHYIQUiF6whvSIVS37vAh4sIbsiG92B/MIX2CEnIhvIIWKCHvIhOUIbDsF0gA/KIViCGAghLIIQiiG3QhTwIcqCHdQhpyIXpCFsQhnnjo1CFSghcsIU6CG6w2eUIQCCEyghZcIeoY5qj6/KIeCCF2IhRYIQqiFNohKoITN/qtohHIISWiGLS20YIV+CFOwhREIXm/pNIhOSIXTU66oh+IIaSCGQghWcIT+WbvAhS4IT5CFCQhdKIeaiGXS2TcIdIiHnghpUIR2iHGKevJep2CFPgh3qIVcCGkIhqKId2iEDohSEvtGCHaQhNaIWtCE4lGioIUJCEEIhRCISQiFrQhnNThsiF7ghkqIRjCG/Ahr6Iecq6AAAOdD0ghdMIYQiE/ohFiIc/R4AYhQGIS+iEWIhqKIYKCHNoh34dq8CHKghuqIe9CH0VmgkIUUiHRouJcIQeiEgiOuYIa8CEJIh/IIULU7Cgh7wIVSCGcghgcIX3DbvAAbIIZBCHfQhW6IZBUG2pY3yIWaCE3ohZoIXKiHBghG6IWSCFWQhbCIU6CHEgh1gACXCE6whJIIWRiEnohzwIVw4EgdGFCIXuCExohKKIfGiH5IhSKIVmCHioh46IUBCHgohnEISEQFEbeKc+oJiEgohTwIbGiHeohlSIYiCGtwhekIRJiE4ohUmIcGCEyYhaIIXigAcIheUIafCGAohnIIZVCGNohVoIWWiEAQh+MIXkQHT1e7wAFzCEiQhzwIaSCE+ohVSIRqiEqwhp8IVZCHSYhM4IaJCH2n+HCPo+CHkghecIcOCG1Ih7SIUlCF/Ah3UIaaiGNIhcYIfiCGQghClQZD3ovAh7kIaGCHfAhyYIVKCHEwhcoIa5iFaoh4WIYhiHeohOmIY5iHnAhmlQTK+D2ohfoIU6CFughHoIVNCHaYhHmIbpiFeYhkKIU3sEVIhrwIfgiGnwhpCIehiFlYhKKIXpiGpOBePLHCCFPgh4IIT0iH/AhSyIUlCG1ohMYIRiCHvAh56IWGCGowhZ0ITliEvAhoKIUciEXAhCKIYJCGmAAOIId8CGdYhjCIc5CGuQh5sIScCGWwhooIfgiHBghjwIdGCFLIhaaIW7CHTIhZIIfuCGIgh4cIUxiGWYhUIIRWiF5whGIIVmCF5QhiYIdliGCQhe+wXRRYfohhEIX8CE/QhyWIVkiETwhKsIUKCG9YhpWIYPCEBgh5aIYmCHSIhG0ISiCHRIhAEIRuiHWAAeSIf9CFLohHYIa+CHv7BWzuqxCFUghdWIfQiFmQhisISSCGVgh+YIVSCF9oh38IQjCGJghcaISyCFLIhv0Ib6CHwYhrKIafCFuQh9IIbeiGg4h1oIUuCFcYhAYIeyCG8YhG55rjiFnghVoIfjiFZIh0iIWYiFPAhnWIeuiHzQhsKIfiCGmAACSIcSCGvghAYIe3CGNIhzwIQdCEDYh6aIVaCEOIhjqIe1iHDghYYIdtUErW6/KIQCiGoohO6IenCE4QhYqITiiEpQhhIIWdUFn+O8uIY/CGCohzKIQFiGMohJKIY1iFWgh6uIfWCFPVBahVt8iHfAh0UISSCHyx2jEIQKCHEghygANxCEaAA9OIXriEMohKuIbWiEWohFOIVTiE8YhQEIXxiHEuBcO3s7ADBohj8Ia7iHxwhPcIY0iG1YhZoIQJCFMYhX2IZyCGCQhHqIUKCF8ghnmISJCGQohaWISaiEnoheYIR6iHUohCcIXSiGlohpwIVLiGKwhQqIZtiGtgh3wIXhCG+4hIOLoLoHQG6geIUiCGqQhRGIQbiH0YhWeIUZiGrohWIITqCETYhSIIe5iEoohOWIQzUF0gA4IIT2CEogh2yIUcCF/Ih8WIYFiGFwhTKIYZiG64hIWIYmCEoQhhIIdYAA0YhZIIeCCF/AhsoIfTCFfgh4IIcHiGnYhM2IUWCEighC0IcSiF0gh4qIZoiHLYhHkIV5CFzu6pIIbViH+IhqYIT5CGVYhstQXjywz4h2sIbOCEkgh1IIecCEsohzsIZkiEsYhYWIR7iGcYhN+IdTiHkYhoYIeUcEHmWo5erDRba4hSIIZ8CEO4h/4IV5gBBQhAYIUsiFK4h+cIUFiFMohvYIYCiFs4hpeIUC6be1OzgTu8ACDYhUUIeKiGQghwoIRiCEPboDSIYxiF6QhiYIbrCGn4hZwIbUiET4h5IIRziGv4hIsIYCCHBwh6SIbwiHjohLeIXjCG5YhNGPmn7pJQhHsId6iFMEhBSIZ2CFoohSeIcfWa44hJKIXIiH/AhVOITaiGwEhdUIY/CHPAhidQVn27OwA5oIUfiGCEhuMIV5CGqoh7BIeCCGRQhxxwXJCGbQhrKIRDCFTQhOkIZPiHPAh1gALmCGhYhtGIWuiEgghO2IecCGoQhRkIexiGfNeKc+rISG0YhJmIYiCFmYhd2IUWCElgh4WIbQSFnAhRYIY4iFSQhwoIUWCGGQhZoIc9f5Qtel5ejiCEuQhkIIX+iGAghhqISoSGkwhahIdKCEaEh1gAD4SF4IhnwIf4SFDghdMIa+CFUghsIIVcCH1Qh9mIVMiGkgh7aIWSCFmYhg8IXdiGwnBdmIZviGEghTmIYicHq6B+LXldCGzIhHYIRTCGiohG2IXnCFWQhdMIawSGSYh5WIS1iENQh/2IUTiGrohUIIV1iEAghp8IXoSHWQhKOIYYSE3AhxhIRaiHVK+l5ehASH9wh/wIW3iGJ4hEKIXnq4bghlYIRiCFH4hRkIdKCFQghweIQISG1EhzWIefiEighghISOCG6whJcIV+CEjYhJwIaYADcEhZoIZ1iFdQhc4IUlCE9ghiYIUSCGtIhMeIa3CE04hFGIXqiHeohuxIc5iHqYhv2IQBCH64hKuIbVCE4oh7OIfoSF9EhqHgf/t7A0B1juhMSH9YhB2ITMSF0ghcxIcriGhohghISMSEVYhSeIaYAAwohKOIZYSENoh7aIZkiEZEhTMIdYAC3Eh+xIVxCGHEhxxIU8CGnEhtSIecSEf4hZqIdcSFgEh1KIb6iH3Ehp2IU8SEgkhaBISQSHvEhWngSboGAq+ZugUiY5DY+AzQY1FYJ4hHcIRl6aBEhfsIcESGoIhz8IcfU5cwh4IIXgiFbYhY0IcWcb4IhHwIfqiG4V6JcIf+CGMQhX8IWNCHc564kIehCHf/2DSIbQl4Mwh8XJphCE7MWeiIeMiGRx6byIXSCHJghmmIbriEMwhCUIQ1CHp4hTGIfgiF/QhKoIRgvo5lG3sIVKiE6Qhi+IQKCEOghICIbyCEJohVSIaKiFUghB/BseiEdghlMIcdjYwEhRGIQo/6+6BmLFto/46HeAbXiz8RQkhG+ITzCEcwhe2bn4B4VIheaIeqSG24h4IIXjiHcwhaxIWNCH162EZIVxiHh6BPObisc5wghNwIegiEIohgKIeiCFP4h8hITiiHCghCaId1CGmAABwISrCGXYh/IIeqiG5ghmxIb6CHaQhv/DrmSFswhrYIbqSHlkhT4IdpCGmAAUmIdKCGCQhSyIZCCEXAhSMIXd0aCQhaYId9iGQQhkIIXigCMkh9GIZqSFWwhvkITiCEoghwuISSiFfYhMUANWSHfYhpaIUGCF9wh9pIdiiHugh0yITHoFFoh85IdUiFkghtSIdKCFoohekIdOSF5kh/oIVcCH5XBoBIb2CF1Ihpz/kVcYzohz8IcviEDYhHmIeKiHdL6h5IV/ZbHkht6IRySHNXB31VtdCFYQhARIfCiEKQhQ4IRnCH7khRWIYeSFSYht5IeZEaHkh4f4CeSGzoh+gjlrXYbL6j5Ic0iFEYh9ZIfRiFqQhLOIe6iE9QhOkIYsiFjQhX3RoNiHnAhpiIc+CFTQhIYIejCGRB6UFIUaCEwUhr2IXsSGAohUoIfhiEIUhZYITTiEcQh0yISYYY7QhDKIVASE8Eh7IIZhSH94hPz+PhSG+ghhFIR6c54UhFOIT5CFPkhT4IcmCFYghdcIW4SHGEhzwIR9iHUUhALurRSHpwh9FIfpCHuEhvBIQwiEsUhXFIWcCE8UhU0IXrVYJIhPYIQPCE4UhQoIZxSGgUhbFIUdiGwUhPqIWmCEtwh9MIYhSGUUhisISuSEBD+megcGIbyQhgEIUASEnAhagAKASFG4hI/pip6CsUhM2IQC7qywh4qIW+O6HkhCoIUqCHqkhZZIa9iGfAhlZIWzcFdz2tuhheSFOYhllIYKiGZIhYZIWaSEqAAKZIXPiH/AhUxIZSCFPXGTlIZ8CGEUhR/JoeSHHohcaIaFSGjghi5IeKiEhPgiVIYRSEIYhOEIb+SFGkhI7/iySGXYhrGIZiiGFUhhKIcmCE3whUGISfCGmIh+kIXRCHiohM5IdjiF1khvlIf5SEKpeo5es7iG5khOpIYMSH+wh2GIeZCGUwhgXXn4iFZUhOKIWjkBOUhXYIWq8G2pY5oId4iFFwh4VIeHiFLIhPlIUaCE8UhnEIZkiFLohS5Ib0SEpnWuVITpSEukh7w/qXoH6r6ZBPssEEsj+HUITGCH5ghn4IeKSEh4hjhIeriF6YhTPFv6SG1QhpmIfyCFpEhX2IXdCHTIh5nAd2SG9khi6IZ8CEDkhNEIQyiGfkhiKIWRiF+oh6IIfVCHUghlUId9iGY4hnlIXSCF0ghLCIVSCEfdBJafvmvq5ghPYISGCFYQhOEIQlCGvYhJeIdYADRghRhIUxiE5SGByIRdiHtEhHOIa0SH1whQ8IR/cH0JGq6IXjSEfYhJIISiSGZYh7ZIWcCFW4hTZIYYSEmghRmITlIZyohT+IatCHY4hhNIWA8HSqAM+ISiSGoohRxIYmCHCYhTGIUIk5JQh3wIeOSEUwh35IaTCF+UhGIIaGbZjkh7+ISlCFHwhpIIUCSE7whpIIS+CGZQhfeIVkSHm5uFF3vsiHi0hotIWASHsIh9eIY0iGPAhIuIQ8SFnYhJxIZ1CFEEhOKIdSCHPAhVOIbVCGMIhP0ISWSFPAhqBITuSFtIhdIIXGCHsYh2tIedSFGYhiiIUlSGTYhq8IZxCHBghgGITOCGmAAG4IeDiF4IhbqIf6CFwgh/IIbhCHuQhE+IUxiFS0hQKIVjSHi0hZIIS+CGfAhN35nPCE/UhZIIfrSGcQhxWITqCHKgh84IaLCFNqG12IU8CE3Ahn5IYbSHnYhvRIahn6LFGo+IcXSE3YhJwITH0HOwA9OIeOiF0whlBIaUSFXEhJwIVliF4EhUxIe6iGeohIYIW7SGCEh+kIfDSEwUhKFIZ7O5xQhjtITKCGkgheEIdsSFFghBGIXgiFmghX2IZMSH1YhIYIRdiEQwhRCIdjCFVohTMIaYACughb+IUCiEMwhy+IWaCE4ghPyIUxiEe0hKtISfCGPUhpoIS7SEx0h8SIeSCEVEhWxIWLCH94hG9IbrCFzYh+YIQGSG+whSaITgiHxEhbOIUBCF5Eh9BISbwHO5ucOIXgiEbkhPyIQeiHj6BnwlD/SEI4h7KIWBSF6Z+MsIeQSExQAjdIaHCET0h8OIWaCEh0hGeIWaCHzohvKIVZiGf0hIebkNd7QohJRIaHCHwIhcaIZDiFsQhSyITiCFD0hdhISSCHfIhdIIbaSHqYhEMIZQiFPAh4pvsAyFsohxlIUKCF10h9iIeeiFD4hw9IfAyHnAhZ+IS/iFr0hluIUKCGj4hjGIUcCF0whQdIe0iFwghFMITgyE3EhfOIdFCHv0hG6IYSiFbYhMuIWiiEkoh2hIafCFt0hEMIY5iGCEhjmIYBiGIghscIewiE9QhnwIU2SF1whSyIVcCFxQhs4IdFCGGMhqIISxiHeohUuITXiEkMhVYIUxiHQMhiIISIyH9UhFWIahCGg4hiC7rviFmwh++IeCiHWgh5BIdfSEhwhdjIW2CGT0hHjIViiG8CekN3nDSH0QhN/AfX/4Tr2YpIV+CEZwh5IIWGiEmWexglqPiGZIhx+IZ7iHv4hZMIejiHj4hJ9IbxSGZYhwmIXGiEHAhFkIbISGFYhEeIXoyG4khTwIUpEHHghhJIbmCHRMhsTIV5Z6KYh2TIapiHkMh0pIQS8FhCWV2IYISExQAn8IZ0SGiYhHYISfCHGoh2qIc3SHdm+amIUhCH+gh3TIRliFbohVkQSeka8MhrcIXTCGuMh2iIatiFeQhwjIWHCHKEhO8IQISHuRBELrvxCFFMhLpIRwIE+RBpDIUfiHsMhweIVMyErYhnkIWdYjqohQzIcUyFZYhdRIefiHSvBUGRjiCGmohexIUrCGIghVEIXViHNMhHMjk1SFKohgAAZNSHTUhz8IbNSF8khE1IXJCHqghKKIT8CFF0hU1IZKiHsQhEqIboyHpYhYtIfWSF+UhyFIX/SGrUhxUQT2iFoghOpIVKSG6ghuAAXCyE6khspIda8FLh65oIeCCHqQhTaIfeCEBCBU5Ic8yGwYhHUQQtSEVkhU6ITjl7BUhLpIb0MFh3exg3hHd6pU2+dIS9CEiIhPkISXiHORw+GIYRiFHYh1flmfSHsIhIYIeSCFswhANIWLSFYwhA8IYfdZXAh0lvoiyG6khHsIfniErUhn6IRQg6PohkIIbzCFAGB6BIWwSGpwhGIIZNCHdQh3eIRmSFjQhNy7sFSGQQhGdIVJiEqAAmEIZuSHZIhvoIRC85pUh3qIdgSGI0hwKISSCHKAAerIeSyFQPWLIIe9SGQKmL9IWNCFn+WxYIdUiGCQh7IIf9SFMYhcIISmCHD4hrZITriH0whAcIVpiGEshyQAYOSHqohS6IQKCFXoh+7rpO8HvAAapIWaSFVIhEMISUSHAAAIyIWcCGrIh+93hUN7rvBx2BmyMGioeTNIbyCEsYh3IwTubo9UhYtIX1SG4YhSHruMbr/4hfzIUBiH6whEpIQWJbmgheUIVVCHo4hGsIWNCEvvBQ05sBiGEYhFbIfA97jG6HZId+CFHAhdbIZjCEtshUMIeMiE5IOTcIXrCF9sh5UZoOyGQghDSIYRCEkqmIuIbMSEwQhpowQyBbO4h9bIeviHNshVhIcOyGuvOzuIRASF5ghQ7IdDCFi9Wa7IbnCFGghdMIWOyH8ghhEIXIyEQYhWMIVniGrQhijISkyH9UhRcIamCEIohMxIeCCEZxBQ05pFCGEUhKgAHgyFHYh3DITZSFr0hJlIXQiGU4h7+IYMSGnwhT4ISwiF6ohkIIY6CEnwhLLIYiCFHYhoRIVUSE1IhBrIaSCE6YhG6IZ2h4dshWIId2yHfAhvbIejiHKAAr7IU2CFW4hPIiBISGEghQoIYhyFnAh/IIUKCGo4hsKIcZSEbohiDIZAAChgh80IQzCGqEhjwId4iHL4h6jIX8CEAgh4IIc7SFjQhLterjiHKIhuDIctSGAkhVpIX+SH0whPSIfSCEoghBTIa+CGJYh/TIWaCHochtSIWRCE/AhWHIeOMFRshF9IQUiFswhTMISSqbJEhh0IdviE4ohgYIfFiGtwh6ZIdiCEviBS4ejuyEP4hZrIWByFEYhldIaaCHL4hjqIVjGaeshhuIbnCHJghUIIbSiH0ohyuIfcUYKMh7wIXgSEmMhgEIXTCFM4he4ITrCHowhwGIY/CE6QhMXwTnCGpwhBhIYrCHowhkUIa+iGhghVoIQcCF+ohTwIcDiFQghYKIeSSGdEh1gAM0yFR0hSyIciEaqshoiIVqyGzghiNIYqcaGchR2IS/iHuYhWMIbliE+ohh2IStCFW4homIYRiFTQh0XIfViFgshp8IcJSF8Eh7+IZliFgEhiYIV6yFmghTaho8CFpgh6qIRSCH4IhXDISVyEOIh9GIWfiEsIhVoIR1yEhghIkIYEX7ZchuYITHiHvshpgAMqSHHshfzIWdCF7ghwoIbbSFCEhreIZqiGDwhY9IbHSEaJBgYIZ8CHvAhxIIQAV44YhINISfCGEMhtaIVKCFJohDMIcGCHMMhbsIQESFL0hT8ISZSGc4hlkIb1CGtghhNIfFXa24hiYIViCG1Mh7aIZDiHiohBwIdySHgghTXIXriFGQh/yITriG5chXVId5SEVshDtIcQSGkEhWhIXmCFD0h4BIbnCF/chAqIUCiGnYh52IefCHEghCSQeaCGCkhuYIR9yEWQhg7IaWyGCohoYIdvSESoh+aId9iG9EhZ9vlz8EFDmU3IaNyFSEhXtIbqCG8uG1IIedyE3jeP27kiSHXMheuITtiEAchQiIUByGFYhoHIZPSFEYhDhIZtCEFchu4IT7SHyghP7IUCiGK0hg2Ie/SHTIhyIRsKiGfQhyvwc+05/she6IYqiGEshVznuuyG14h+PIfiiFXchSKIQCiGjghFOIWXCEG/BPw1sG95qWO00wZw3qopBdS/jQV5RvefQnrIYGHNeIHTgoYGpyBib3i787kTeHBXrLh5KGBGb3ioYFbO2SuHh38G10heOIb5SGvAhVOITPSF/EhKBIWFyFPAhUZIdcSF94hG2IY5iG4chJIIXsyHuMhG7IetiHz0hVOIQYyFFkhQIIf8iGeohHrIbgiEnEhm85uHyE6IhHjId7yGpYhvvIU2iE7YhS4IbTCH0whtzIQMiFoohbMIaEyGeueQ+hoNCHqIhUiBn9SFpQhfjPtXyHkQhY0Id8fosghUMITBCGO4Go+IWTqbRshlyIbpN47m6AhIZyCG8khcn1hPCEyghMrIVCCHfYhC+IaFSEHshCZIZiJ78wh0oITBCH2yWFjITXyGGRWEYId9iEighhVITbMFz8h7BIe/CGsYhV1ISv87OwA54IVuCHighPaQau7qK8hbuIUuSEq0hVPIX7MHwQhotIUCiGL8h3PId8CH/M2BWIWZyHX8hhyIStCGq0hwcwa4YE0KBg7nkPBYxQAdlIe6CEBYhZnId13Dr0hzqITpCGBQhIODksz6HpBZAIcekFXQh5TIUgyExMhFPIc/yFoMhH5fm/h5+QmUDIf6CELEhT/IXQSE7wWUJIUSzaDkhZzPtbm5yAh43TlOCGIQhIRIXSCE/oha0IWR96is2JJTg5o7+Lm7q/i5o5CiezxXqEYaMfegB7u8V4sfe01jsSz53zBVLPikYGAN2aRgeNN6LKBo7vraG54KW+3Ts7AA4ghpEIfbSHUchyIIe/iGXohiYIacYYtaO0rIWFSG5oheKIZFSGHC0DMIaR7bKshJnIX2CFAohhwtLayFIwhLCwTPAEVs2tJXqF96h6BlP1vGz5Bee/1jmDQh1GBB03h43qAAA5HCAAATHCAAA4HA0gu1goTYKGAAAQnCAAAKHCAAARHCAAAInCAAAhHCAAAEnCeChgAAKxwgAAIBwVgoYAADEcIAAAQcIAACMcM4KHBChgAAJxwgAANhwgAAIJwgAAFhwiQoTT04OCh8QoYAAA4cIAACYcIAAAEcNEKGeChgAACxwev1oAAACcIAACkcIAADscIAAC0cAEKGAAA6HDhChgAAJJwNgoYAADUcJ4KHOCh52jiQQ7NZmgAAKhwkQoW1maAAAIHCRChJQoVUKGXn2fQoc4KEDChNgoe4KGxChrgoeEKE2ChPQoSUKH5ChsQoYkKEVChwQoYAAAycM4KFFChsQoYAADicJkKGyIBzR+sMKGjCh4woZMKHTChswofMKGLChKwoWsKGbChL2Qc7AC7ChFQoWMKETChUwoTMKFzChCwocsKGrChGwoZkKGAAAQHB1ChFQoT0KHWChngoR8YEyvgmQoYAADMcK8KGAAAbHB1ChbwoXUKG2ChiQoZkKFfaOrgoeCKEeChsQoe8KG2ChJQod4KG2ChjwrgCKHAihoIoQiKFNChmQoeCKH/V+MIoVYKFwihmIoY0KElChUwocEQ4lChKQoRuU5XChAQoTEKEJChyQoVE3YOCh1IoUkKHkih9x7kUKGAAAVHAYihFQoUyKFRImgAAHhwZQoaCKFEihJIoVTkFFChHQofkKGeChLIoX4KE1EO2Iof8KGNChmQoeEKEBChrIoeyKFMihNkbk+U6ub+iOjossHi5ulXvu8ABfChVgoZ4KGlChFQoYAAAMcEUKHVCh+ooZ+U5aihngodUKFAihiQofEKEsihdgoVLkHOwAEQoc4KHvChnwod8KEc5mrwoRyKH46O9xDoTo68QhDugRLz7ddGr6gbJCHeihPyAUeR4+X2rwoZkKFWChzgoV0KEWChFQobKKGAAAlHDBChKvnoyKERihUYoQEKGxihhp7kUKFcih+Qob4KElCh+IoZKKE4NGLIocEKHgihNgoc4KF1ChFgoa4KFJmB1QziwqZZihrgoZ4KGVChSfNrEKEBChwooSGiaOChPQoXUKGtCh/6gaUKHrChAQoUBuYBChWYoTaKEO+edIAIAADCcI0KGAAAsHDeChPvtoOKEjihngoVYKGdihkpDq9G4B+emlTtHX6C6OiQoSiKGcrB0ooVYKHjX2gAANBwsIoZJhbdihy4oUY0avCh1goXBV6rih6YoUUKGAAAFHDRihdlTuPkEOVOo0Lu8ACAAAUHBlCh3goRUKHuChgAAPhwJQoUsKEzQupQoZUKEBChYoodUKF+Ch3goQEKFSihmQoasKHXChLMbjvz7M7+FdemE4466OQQocEKFUiheoodUKH/ChFoztkKFWCh0YoWuKEv8+sVHi0nrxUeNRunBKEsih/woUUKGhihKgtl4KG+ChfgoXeKEPihK5DsRKEVChG5DmRKGuih0woYAAAccIAADIcAVoGwg+7wAPaKHdih1Eob4KEeC2rgoXKKGzChAQoVBKHMShJQoaxKE/ChhBQbM0ZGVedIAFaKHOChNgofKKGZChHQoSEKG7ihXFgXSABpihGYoZ4KHjCh/YoZkKEzChAooYJYErW6AIoRUKFVChoQoVOKGqShvYoVwUHOwA/4ocSKFOChRIoc4KF6ShghQZ7Mb61O6fvu8ABGShUwoY4KGmShgAAJBwU4oTylb2ihHQof8KHxCh0ood4KG9ihegvvaKE3ih+Qoc4KFFihVgoZkKGQih8Dbr5KH+ShgUoZkKFIihMkofoUF2ihkQoX5KHOChm4ofiKGeaWYUoQ6KEHihblgYSLYBChQIoV5KE7ihNgofEKGZChFgoV0KENChl8ITZKFZShNgoTlKF5ShFgoZkKEVChUIoR1oEmpWMEoTpKGuChFUoVVKE1ShXWgVeDb1Sh+IoRVKGFShvYoTSLZcihXEoU1KHVShuVgb1KH5ChAQoZ1KH1ChvYoaa/r2ShLQoZ4KHUShngoZ4KHASh3cLvEKE3ihywodLR5cIhCpbhPo4sihxIoYkKGAAAGHB+ChAkoSY349UOdIAHpKFUShDkoeEKEtSheeFkdKHXChvRQact4lChDooaGKHhih4QoZGKExihcYoVtYG+v68kob4KEhihYYoYmKFPSh82gdkF5bFB3y3n9YHxChAQoXUKHuChrwobMKFlShb4oRQf55ihBYoWDKE9ChEMoYDV4wyhb4oeUiHvAAgMocDKGvChEkoXfo4WbBEiLs7AAlCh6woYMKELNudIALEKE3ShOMoXjKF0tG62esTKE1ChY0oc0KGtihZ1TrcXqEyhIwobjKEUyhDQoVTKFrIhMr4EUKHpChjUoVyKHBCho4ob5sH8i+9tHhFsF4lBTtHhSUETN+8ovozgEXaBxWwVdoHhi+JBjrdoGBB+92gR4RaPaByqIc7AAsihXkoVpKEBCh+woVMKHPihr4oW3e5KyhNgoSrKFnChmQodSKGIShXIoTnM6JChp0oeaKGqyhtwob2KFIAhMr4JSKFqyhhwoQ8KEnCh1MoYFLbvaBiJJmsKH+ShkaIe8ABQyhiIofkKHTChSwoT+KHeChi0ocsKHuChRYoWEeaxChbsobS37f5mH4oVUKGIShyEoX9oHOwAH4oQ+KGZCh3YoeEKGJCh4woRFKEhShoinuuKF5ChRQoQiKG6w2mcoXNKEkyhI0tsEKF+ChRQoeuKHrChHQoVBKF5yhEXjkUKGeChmQodEKGLS2rIocEKHrChoQoSyKH5ChoIoa+WYoyhIMoc8RalChw0oXBKGtHmcEoZuKHwShC5QXSABFyhJcoWXKF6ShgJ/p7KFNChHwoTYKGDihPgoUhL5Cih6woZ4KHSih4IoaEKHkShWKQZNKHOChOUoT0KFlChLUoZzU4byhOUoRYKGnSh5yrhvKGkS+nBAc7AAqyhOkoQEKEnyhtEvqnV4cSh3codOKHSEB7wAEUKEzChfgoa4KHLSh0aLmSKGzeObMoRzKFcyhQtTuXKElChlsoSRiGuChO8oZMKFQihVGIT6XoII+/7buBgZ+7BstTkroEcVBtmIQRKEsih2ooSEKGAAAaHD2ShN0oRrKG+yhv4oekKH+ShvUoWGKFByhdQofUQHtY+hewV236U6Bphljoj6IKhyCocEKEoKhNsoRbKH3ChxwoU8KEEKh1WIe8ACUKhk4odQqEoKhFQoVEKGNCh4QoSyKGOihngodEKElChTCofRF7wbWUEoVGKFcih6Coc4KEEKhKCodEKFyihCIocEKHcKhLIoYyKEhpB9gAM0KH4ihpooRYKHIihJcofkKHLChT4oUUKGRihywoVRKHmeG8QoSUKF6ihiQodRKE9ChMwoRUKH3ihmQoawqGoKhFQociKFgihFQofwqGCKhwcoYiQEQqeA5/kzoGyYuLOgadt548stiodQqFvShngocEKH4ihUEodnKHgihSkoSpKHGShQioX6QGAR+o5en4qEoKhZIoUEqEcShIQoZkKF+ChHwodpKG6ShkSoa4qFm4hhjXn7iF86BZOgQLoG07eapjsLoFDyhgrHlZH7ZWO7u3mbUF66BUugcB04y6Bmfbk/WYEShwQodcKHBChycoTeKGZCh/koVRKGYKhKSoYQqHy6B3O1nEqEBKhBsoVYKFcihBCoZAACjChFQoYEKE9ChzSoQ0KHKShiEoa4KH8ih3Uobgcb46BAVAQroHKseuc+pgqFOe6OCoc4KF4Kh1MocEr4Q3+teun0qFkShHQoQ+KEBChycoc+aY3FOWioToqF6KhJwocMqGOChsQocEKEjCh1woRIqHLyhQUoakqGzyh/soSYqGjKh4yoZMqG9ih7xji3F566BuugTroEQmOuMfq4U7h7OrNAe6cFm9+3sfs5m6W9+r5jg6x729+GlemKKHeChRQoUSKG/ihVYoekKE7yh6QoTiKGfnBZ9Tu736EmO3/9s7oF3dGjooaaKE7MW48oaAdZ5se4OPsX36uChiIoUyKFk+BJbHl6SH+6BOj/r6SFB6BIw7kJcGh6BZUBtSKFcyhKIoVJcHhAe0DTgEd5SV6Lugas/6C4G9woV+KHXChEyoZTKHBChn4oc4KH5XBkAAGmKH3ihFQoR3KGvChBKoc6KFLMBdIAAEKHOChsQofxKEPkujQoWKqFVChEqoRExjfFw3r/iQHrSqhD4oQ3KFNyhUEoXKqEFtBh0oVxKF+yhoQodRKHOChLIoTaqHVChsIoZqqHiqhEeNk6qEVChox1oaqEVChxqoc3KGtyhu8obIbYC5uqegb90a5B6GegYG/5Cr6KqoWqqG+ChDlIRp6AeqhZIodaqHOChALuiqqFJ1WrqoYyd5U3BHqof3KF1ChUooVqqFZihcooTyKFGqhMwoTKqGZCheIoa4KFsdBhNeiO/6AMegXXkal47Uh+XQQXr4hcec3Qf2d4rBBKujtY8ZwKhJ+vu8TasWODNLufcE5SGtkoTYKFFyhjyodiKFWChUPQXSAAoKh4IoRIqEEShwyoYOKF1ChowoWhdbPyhJQoa/KHLChqKoZkKHoqhVgof2KGJCh7NIWbm5s9Bsdrp0no9G+kCes8GZ9mewxvmHm4wW20/QZ8JRFChwQoQpKElyhLIoTeKFHyhC/QXKkaNChrgoTaqGnqh56oS1KHgMhzVemDvr78emmXtdvqILuQTIToW4cRB7uBh/14b6Bx/5t7gZeWecA3oxT5kCBsZbty8He4GziHr0qE+ChSCoWwqEoKh2soSrKHjChfsoRd9YEKhykoa8KG0SheooV0qF+DB9MjufKEOKhiQoeTKFUShXIoRYKFyihQSoRzI6CqhJlPoXoE6CejGRo7oFk5+pSHg0MHOChycoUUKGJCh+QoSUKEkahwGTlmqEmCeHOfgwAFNKGxOXqlTZ/6BOd+HYJ7822EWRoAYGVU+r0/psIGzYGdQFm4J47m6N4od4KElihiKoeUKFryh2uXs4KF1yh4LLtAYERshJKHrAYGUiBhaoU8qGpyh4IoVsKGJShrgocAAD7iha4oRmyHyZmubIYO06yxBaq7mRKFFChoQoeCKFUShA1vmRKHpCh0QoXUKH9ihN4oXUKFKiBn7wRJqEyqh9moY5qHOahWogZMN7KDGXeXojgYs5OLsQfO072z+tFjpYegpU2C0ZuQYECKOUOBrrT6S0Wth+tQYF7tOCgnggkG0xmUiQZXT7/fBS43g1oFw/B7BgUT87PF+3u+rTgY8GBe9Pk50bSQBug+tryHglGuvIerIF5zmhvIfzh5YTeeKQRuqGlzmZvIUzu6DCe4uHlgz7pveXLnk7yGyyhwEVg7yGtahZqQaTXazL+HUAR/U7uM+bljpMbZ+M+xhgWEz5O4GsNdiFY7mGB4Vjgby4RdONswfYYEH8hPtHk4YGv8hauBpgCHGu2CfLnqfrHpBKH3jXoGMqhsZbmwCG4Chk41nfu4Gu+1IxpN05BGB27TqSU5/M+/InjR94RGBTxXv6v60ZBLIbprg4SieCRgV8V5ZAu+bvhwKH3WOzHnvKMaKiekCegER4qGmAgodfgb5GBf6eoUYFTsmOoniUYGfKBxjevSV4VGB6VfsYKHYgumdCGYKHUqBiGehRnooZ6nhjmh7465SGHvhNyz4Z6VMcIbl4hZ6HGAONnqI6hWOemCCEjX28K5rC56sZ6qGekjqEPTexLLNwAA6Z6xLLMJnrnaOEmege54Hp2dhjn3gipc+wbbic459oASWes1mYRqWtFbo5noCEO1qgN5nqWZ6WOob1npc6hqhDvIdZeZ6uM3m5nr86hEWehepaS2OIrViLqEY6hwWen8PYC6h5K5mt57QUGOWeir3aCrWmtjtF+aFN29WepPQbHeeNA1irqGHUgauoXOoHzUGmZFBlnosiGWuodzN4tZ641nrkV57WODqhhLqEtRWOOuv1fqwqaOsVmb44I6hpOoWfFava89J9qiK6AEkhknsNYZSkGkOZnLepBN2R4IYeF4KwAtvVogABcF6iAACjnp2b+14LsZnoOQW+dRmdnrcmBnnVgR25tIBgWlvt0aSZ6oNKi8pbCmBTJBl5KIw56Vs3vLnoAHGQOdgJHbF56zNfgWfYw56IJdrNW4uRmrIoNagAnmGCuQS2V71vGJBev2hZtqWHR5iUQZR0c/kAP9pIKTGJxYOSwA/0ssJSPbo4C+eINHOLz4v1G3OeicWBi82Auei4ZJa5BdW/ralhl7u2Fht8sFCB6iueh6MZ2TGUB8l4Y4BOWhTLHulyFHmaqJvPqGrtBLYhuT2jb1ukKwfZCEhBeOOcPu3DjZ62UAEhnokSGfsdvxnqCZ6DOoUb57IrBavxrzMhW7gp+oeisGW+eDYxvb7bo1uJxdlpnqJ56LvthyiB4He8eZj3ADEssmeetnnoTzeO5uvnnqTvm5EgEHnqSkOct6mbnrVomG+QCPnqSoB9FHvH7at56LB1h1PiQGhmfPn3nriZGYVhkx4qj56wO/qwt5cZk7+oeSuYgEkb24IvnrwxujfPuvnp/78o+epdCGJcsXqIOOpYwt2XgAHfnqBkOhMbsC8ZlJWSqwRtnpwLgXvjsCY4+zW0WIKdPa/56l5RmTv7M6hhjdkTnY/LuoGXin45IZ6h+oTvz5cGhvnwT7qEIWOYEoS3nrtWIoeqGMcp3KWJ5pstYo3kAdeoUU0bgMEj7AM9MaZzW9BekLCGsF6QmephoAcYAf9LDDnooZ6YZ1sJcAVWOPqwbQfr556KOehDJ4pUeMhepIXorkOPeeqNPQbkO1hoQv45u6O0awUeQ5BOI++oRRnqCGhjEobTqEmWGE81qxnoeC2tOobnk758+QZ5ijnpIZ6aITnlU64uGRu9nXqGRwh7HQcjH5pGOdWeiWdhv1+JxdsC8YbHg96SOfqHWVe8RocSyyJGhYwJlVuZ46hm4zrAF73Z6gBxmkaHvUAmTplnnoqBB7NPLno55GhiRoW3p51Z6eZho4t6jXiEHcD/qHFGhEwANDhbpvy5K5noL5R0cx9RkJnohAAKG5g377HNGdUAChnoL567RoVXqEN++V/ev3UaxnmnRoZ5pa4GhIxoR3N6WFBYYxipkBitB9BAPXv5DnyMRZmGgIF3Co1BqL2SKMGr8IRCLZLGhjaRn0aEVVe4MWEjJ6QwAxs4IEaGfrBWRZktK6bGhNeAPVnqkssuVgfTQD7GhTAAOcaHnvep0rp/gBMnGlOoQncaetu3cLucXKBwAwBoQ9K7KD6mf5jhXCSZ60+6DwsZOF6tUMPWhAxGhZ0nqtKGkJWuYmmJv7x56jRzP8aHsGhNFiimCavjGIJoRPo48YO0RoXRdx/hIqAAIjqE4HWmZVrH+CoZ6QmehIY5NIWY2gUYU6h6hRsTpT+DR6OJeoSLJ63aI+FjjDnqBGhC1gWMXpr6hhuOP+uC4qCSkjAGEjP6hZGxu1gEFC4tJoYvqEMmhrVXI4Shf6hmeemSCanWBTLtH8kY/0sbvthdQ4CmhRshklnppGOyAAEhnreZ6JkACjnoXqWEmwTrR4raBRxetBQCymhsqAFKaFCZ6TAAETnbCbQeYtsqaGTyGmhoScgCI6hp6VgTcQ6mhqpoVDYGC56I+oUCaEamhowyA2lZHF6w+oaDSo14AmpodJwBFbGd+eoPuaY2BDzZt/GC/KA0COCIH7G6WfqRkx4pUZ6gBFruUDa48zQwXUMiemhV1TgGaGrd2LxzMU5DRUADO9ofqHQfGnmwVLQaDpcNGenVY444B+/GpbACmNWjnAGjno2AAzpoRr0ZFQAo+elof5ZQ+ASLsLYHTN+nyId+/oXIcKOegVZ6RQAelAFCiGlmhVh5kVsbAvcyQ9lCU5UBOkJoTw8FlmhQJoQCaHXcUeG4N5noY56fRoS1eYpgmNHQJn0ZlGhBRoUVsa3IcZZoUTqFQlOz9jlyiFTOm0hobWaHviGvShkc8bkssgBdtSVZ6OOgNBtrEbjmhsQfqJL7SGhSWkEhnouAAuheooeYwgAnQ+pk4ZBEAnZoV5KJJZWuQfqBoajT0ROoehnq9GhSyRntihwt+YOeqAYDhZ6BdwsrRhBlB2RFmVmh2Z6CuodIA4tlmv+ehuuCMpwjBoQ+aFEhWQUtkIGqHvg6meo+aGy3GRT9kUQbplB4GBm8aEY56AhoZd2YfLQKpoTOABCZ6geZiMRYUrAjNAEuL70F6Vhet6CZetGMSru8AA95685oeHqEq92DqhjcaFWheTZQV76aAIAiZoRjnqu6htibgVroGOGSq/LjqF3B+PJemqPoMpAhgAORaF0WhJ1+EJnoCZ625odfryvi+TYdum0Z65mxkjLbbpkYADpoSzpZO1ehJQWk0CtHm+EijKFbcmyl0tqkaGJGhrZoVuaE7mhgJ/hJaEUuGU0ViwAAGmhV5xruUFiq8qEvjDlYRuG314kg4Y5zWnNTnAn5IZ6GQ9jnNaS7B5zWs/R6bHm4w4DUADOmhiL9j3npHTmbWeqEY7JJcJj3NN46ZGhH63qsP5Sl6CZoaHepC1ODxocyIBikWjrgjMUbm7BFdXlwaFMqWR5AHxnrE5w2ogJoZ76uSy7BmRIAvPQAQDvxiEZlB+WgNBaEK1uhFnjKaG6mhVYVqpaHcr8YDCj0Y4wKhbDHiK1YzFGSWeklaHQUGKVoaqaFpWhaloRgATKF6SGel+4YpHqOAALl759fm3+oYXqFT1exHbvNQbBUAoUAGXk7q6i3menUaE0dAOUciM0FoeGwm3vYwbwVSg3dg4ADkss15oai2YmQAvRodRnqSF6MWIYtYYjSAKGehV2Y6+2l5oYgY5HmhH2ADBaG5mGeWIcLqFvmhtuoYBoBSmhCCcMwqFg56MmoDFUa8AAM1oZI0Y4F6bvtuTqGaGelZoSr47eI+ePLJeABFGhenAB3qEnPmms0qYXp7Wh0nAAseZkrGUmrKjXDMu0GGensZY812Kj/GJkB/+BIBelpnqWAA60dr0aHf6OwLCD8aHK0gEeoQyUHMKwEptEEQDV5BSOofdiFKdG/jXm34ap6h32ALE8YdWhVAThb3JZGQVYVpr0Z4WhENociAAR6h6JoT1t65hG7N/lHFb8AhjZoVGAjs08HkCCo/zMZktybhlt6uKw025vIu4zsA5VjiBeDOQWOTBjlnr6uS1Udq30iN9W4uoY+aHnLWB1oTgXqSGhx0ADwaFIrg9QijUEAeAAGGljCVbhoiWNodXkFRWhx0ABYFbXcUG55jmcAEjA/NoZ4aD2GhDO9qdfhmXqjZob8aFf+ozUAEhnqSmhpLgN99jTswzQwa4PawWhq3dtwuhkHBq7utWaELR2CRoQUaHmdeUJTizVY9zeoLgUq7qW2hk3ttbaEIhARWxh1m722h/eDlap4rW6ZhQOjFa6aslJoYoXqUX+4nflnSZETMphes/+A4lmK5oQJ8DUXmJNIgdUyuRu2ogODUHYR+JQFrsnY6Z6wLxqzaZIbgUX5hbii/wI/UMOsPbx56vTcBTaGUUgDWdmmHaU6h7NPKQcaoZ6shBseaE0AOGGeslY6Jj2VVoTeE5EgABNoS1aGQIOuywWiaEU0GUZod+EGE1B8+elnaGU5uAWQDuoaMGhAmevTVaHUgDqhh1aGe2hneIZUmbCnBRVoQhaGwD2Ohoahnr6GhtgAEJnrD2henAFyvYHmhRNwU5BZY2hk35gEWaFN2X5oY+uAZ2hT1FpI0bur29EvsTubw2qFNoTPWbFOQYKnpGsaiXmXBelBuAu2h+Roabk7tWIV7APJaHX68MNob4hZfq0stoXHaHU2hkE3t64FKu6sNFsOaEuWY26npfuYBwARloSc+Z/78VGegIaH92h0qAEhnq0xeu1oVm9jPWhjm9ktaGJXm58dm2kZVhWlOCBVY5NQ6e7AEJnqh6hwL3EgAC42hAyEliaFJZ6VsAFXaHMWhh+oUMcHS6BktFrLoHAeeNv5hWaH3pIyFRowaHZAA2meooSGjEGVxwdzcZZ6Oi9oUu0Fb/mD41skn4ZeG6FBmiADjmhphIUD9YKsA3mejVaFWwAdVodReY9568J5pI0ZWmeQE6gKPZL6hTnAJ4SG7uBl5evAEZloAJlhnbaEsOhYJwQ4ABjWh8sANJwBpeGL1APOaGMrgydoegADf6h21oSsqFrgGeJQDo6GgtmBRITDea7KhzsAD3nozWhmDoeHqESAO/VoXl/bHLg8FoctaFbWhJbpvUACAHGa+ghbijeMgOtoeEE49AA9aEAno4fvqTZwfb9zQhO09Tn/265GhrtobUaE3WhI9oZ8SEyvgQp5tnaHo/2CFjkcUY82hPQAJWaG94AZZoSsIa4/2lQ1slDD3Se6nGNPaF6Ghc9oToXrAmWqXnJBXZa2hbVoT46Gc2h76htzaFEhWfowabaFENBvLXormYXrWkjRgk6E0Z6u25rkbTnLWLDofBICsVuvEgII6G6AAwjodYACt56uhoTeQAkmORToajXCDWhc34L+aHz2hbuIJU6Hy6hItoVXk53lAAQDpSSGQGuUezuYnaK8OYrXtvU6lGuaXpr/no3TGE8+g8aHpzgEdoVZkz5nGVxoTcaFUgA76TthXpScANMbpXwaUPmV7JoPqHf/2tpoZRSC0JetpofFybz6hZNlgOaEIhAQ3Rr4aGe+OetocjaHQQKX1Zl8rjl2hhj4LQ/Z5seTHiptnbzHmN5yPvz64bAyJoU7BYvABrKRuwaG55OKGeuHaFjOhSVjvBaGeGOveANrEYXucOmesRkCK2WULFq1nr3Oh3ugfHrYMMBXFwRWx78Rm0hoRCADgOAai4EWUGCXBe6vijMYfOhNQAPC6EB56OYRk/Y6M2hDOetHp5g564dobhlY0tB8enjTj4rHO/HoKJF7eSSrBBhJ25FbWWtoZ4Y5Kr8aRjs85Y5FGqeoQweZNmhV7ANpnormhTWeuIn5GWhD6wdK6F7XG2sRmJ+at2hdjocP8GDZACHBriaENrm7PurZaFsAAFJ5k4XrrgBMagFKaH6tmcexpufZn++nNofzaEwJIwroeAwDy6h5w9oU6FjmhkfQViWbTaW3uPhQwbnR29poVaaF6cAJTocdACSZ61roQq6E62hMXxt5noWmEWbBvY3Cj56dmvoJaGeuhjdoR+MGZMs3rod0sYzAOMkXJcP6KLQ7KdrZEZRgAXBeogY6i9+/doeaqG98GFNBpraErrgjOWne5JxN22QAP66Giuh5GevqebMp21DmqMdapuhKq3tXaGfkuR0RlW6EZuhAhoV4Y6Rz22BEHfnrRGhaMmlDaHr2hptoXjVYSWhtZofoEomq+IDob6F47+mqloU224DmObBekVeYVBOam2F3qH32hCFjo/aEm2hAQDscdbkp2G4XCvE6SvglI1svqF1WOzNoYi6GR+mw7of30bJWOY7oYyaEcUhGy+oRQahuhe7oT0hbpcGgJJENaFV7yMoVvoABruhTNoXO6HXcUAjnlGnBLuhvjob26E3uhQVjhu6FSuhOfptu6EiHmAmeie6GLhOsyfmRgC3GhpLLOxE7xiG9boVntaNuhtD9vLqEtUGMFoSxnrtuhQRAJ26EBAOpr/q0kqh3qLGepaaGI0GXroZu6G9mEHZodsXDSiGoHoce6FNuhUYAFwuC+uhcqAMW6FHaOCboRVa64ehA5jm6+ZQ3B7hnq1noVdmKGetW6F1oOLTLAW6FTuhHtoR2B4k6+eLKLSvr7twuXvqYaGXQANGeuO6a7e+euesq6FEgAnNoTiEbQWhorocWqFo6hkboYenZa2hZ/vgK6E3kGWtoXpAAsPGoV3ttY7CZ6ubobTE56B69bod+6Hgeh+g9iad5i8IB49hKQaaeheHobQ/YB0GVzpppHZyehbi1g2aHSehoogCR6Hl3Gww/tAbqBdQJlhq30j12hOboVZ6F9AANnoaW6GN9By+oU224H1WWNoRUE5xN21+vKM6FSuhNroTraH5AQMrocJ6ExxOdvdgtuae+GJJoUhnqBGhCFjoU6GHmh5FoeJ6GOdBrT5iQHoUehzKlhUE4SlAK3pLK6Gb3GrtwbkQbseh6XoT+6H4ehdroY8qBWF6go9hRnofuOvj1mF6F6cAQJoRQnZ4mAkTjoB/7kuWOAZtu6FgehJ7ofLqEe2hp5yFK6Gh6hMKAONEiMSAoeoRucF0bGhJQSCuBIrg5LLPRIByuhDQQT2d57Uh5egXWqGHUhdIAHFnrhWht1odlnolnYKToTmpyALe23QQovY9OhwjoWvaGn2h5nAXq6FVkANwJoeZRghGMrAARg54ciiBjlF+Z1mhtRoWRaGh3qrFoT46GQsgwTodDSH/BBx5Xn8AH6mhWN5u46ETrGqoAWb0HNQAejjpM6Ge20NXodlvb3eh/aoV76Yv5yz1obpQhCao7Foc84Z5LG+f9tI4YAl2QsDh46EwvGam+t86FVh2iToV4Y6OWh0nABaaE0dA45oezSHmiA/HoapICxehihepbOD42hKSwH13BE6hHFoTuaFP2hz2diT0HriO8r5ghY49IaEpoeg6EiiAb2wmYEZLPwJ7lsIb4d7uzS9puuBMrg+nIphY5ZWhatIfGP4u2mXdoedBIDoOR7xnDHZpV2LTocV3YCZ6otsIF6Fa2hm2eoYABkcGAk4iVmJSdBIS3OVY7R2h6ToZnaEXEAoLZpRSBA56BPoQgaAM5eAxTkJnqD7G73oaYXqgGAsA9sd6GCZ2+vRsznZlQwx3oSX0HCzucPoZogC9GhgRod5npNqGE2ACo/xHFGvmev56Ej92mTpi7qFV2hFQTopYgMHmY5oeFVaFJO9wZrXaG52hMgABHqE10hgueiPnr5OhSPoYHaHlOmDQ0NqkbWlmirbtVaGR+hK9Ztn44OqGUroaNaEe/Bk2euqaHLmhwnoU66FYsACzoQX0F48sAzoTPaErGh714DRnrnD2uPoY6J74+hyrAN86Gwue7ZoXzX73Whvs0ChnpPWhNXodz/ZZtB4s3AMYp18An1oXSdb9WhXeoXxnp9IWR55n/4Eav+Dqhs36HQOhGAAANPYzWhmpGjmpy3sAaYdowXZThBcqRnTaFNtGIh5mm6Efme+TwddvqL+hJ3bg+NbruhJTwZMkZYGh2hoZH6FzcGmGgKFaE+HgpVoahua2Z+ZhQE46G6mh0RobY6EPpyOBesn6G3wAcXoY8Y7sGAzfoSoQCOg6CVob0aHweh13FOKb7F+hUfoUf6Fn6hmmwV3IB4+h8XoUxwZG72d/oYM6Hq+GNgANIAACGh+hemlaF3CAVNociQDV5BIF5vK3YrMQkqABhsYAcaKqAHk6EnX4p1BlD6E1Msn/oT/27miAdtZiFAAgBhIzvnk6GeGOj/oUgeb4WhTgXi/6FdOegQTlsuBpfCYlRmAGEl+hRJAGX6FOEQ0tlpFY4XgAQtoeECaYBhhbodRIDZOhY2cD0AD6uSKhAHVn5766dgWpCBBsF6WhoX/EhMBhpsvEv6FJOhnhjgC8HL6BOhbmLBhELulGDvgh4GxmNKxmWaEa9G/5oS3/4TYGNRoU0FagcARC9mw6Gg+hXZpENaGd+h9T5gJ8AR6h7ZoWf75lOhi1oem6GlMhDBoYeaGtOhIWoNE05QWh+VobBaGX+hJpoTpEGYlmdJAFn0ZXhmhVoQvnqpWh7meiyYZl2hw1oTRnrdm+xpoQhaG+ehlI9sEGGmBhwGoUTd6/wIQJob+kbcBh0fofF6GOBhimessyEPV6ZGANEGHHmhuVnneaEwT+yihiG6GmBhy1oV36EiCB4UQd+CaOuWJwABZwDYbG2gRs4rwcyOwXoYDl6lehAJoV20bfMhdannoeZ4WhrwJq7waln+jQYcTqF3gm1XoVG6F1eh4XoZWMbmU+dPus0AAo56Dqhp5b5k5+IwYQ6oYSuh3G9s/oHzWe5OoVFm6oBhDQwUR6GEhA/roTnNboDGgnoTdaEib2EboWh6H1oQLwwe68FUshEhoaDSpolS3C4FnqHpuh6poUJaFcABT1nkoAAH8GWXocmSAXBh8wwZyfbC+h4DofOnCobmlOXmisbTDmhm9gHZKxj2ytIDC/BGyG8JWtI4a+wBeNBNQ5rSW+7eoUVaFsWhG5wcJtANehvOXh4Bad6hMOZjd8azH8xY0gygD8Z6MQgGJsEoWO/0QXhnpSehQJoaXVDQUG8AbMlGAeuhOwYbVDAQvOSloQBqgYZ65+ocgogV6h+IYZCGGEhhcn1gykDOEASGeouUa9AWuzoU8aGeCegQAOTqEbnBI5oYSUECZ6KOelRnpS+htHpld6HvGhlFockAEeGhnvocxaHXeh+M/h4aF1T2wZofLbBCmhShev4J60/GX3oeU6H9hG1GeiGwD2+hwFocdoBZGhdIwR4rTeOh0Roav6QQtcphoZoGF+mhRmoeEJ5BWhYVoU5aEoGBD4dv7aF4+h5GeqK6H27m0qHpbaFd+haq7lAfIK5A3BjlLP7al2QRoSS8Yr28BhoXraEOhhesQV+8E/pWnoYXPaHehhLoYXwFYxeh3WAMGGGvABFJoUZaGZmhqwYclY4wKO9fVhAuTYNus7ITT1YKF68XoR56FSOW/BoUGGGKF6eFjjF6HkBhR2jj6GF80+feerrIBd6hYgVvwaF8Z6CFjsiQBgMK/docH3Z0hheyQHqaG8hhEZoZaGG5hhmiAM6aGVhhUFjnPl71/GDuRhPaGeGOAmei4rZwxAqj5pf6FIZ6PIiNfaGJGhlRoUVsbaOhy+yPEADS+hKyUnVY5xehMrZkJaHhZi3kxqbaGULg4iQFCN7LqGAYYQhY6ZhhvYYXMNa9um/gYYOGHE+wXjobIkYnKmnAYfrlZ5WhGGelqwDcBh8XoexaEOFww5JLgGGn2h2ogCSqbfxgzfoYZXZTPWi5oQU6Hz2hu3vhn6EUUGFzYGyUH+BhAboY1kZaViO4YbKaGDhhMnIelnpui8X2ei7XomOh35oWf76tu6CVBgtFa2fBrTTrRGbFOmXkyN/9joxmKCWtBMEOYI/ZoRE6ESLglxQIUkYaaGlAYSagCnehWQALX6GPKg5vRkc/ZyIWx+ggnIbiJAfnIfZ7ab3Qw4YQUaFQGekEFjMUa4bAMOetYAD0ehAYSNUGEB0GyIRuBpZiwAg3oQBN66aGOnkDMUbS++PDwalpCD2hYEYUg6HJWOTJlqg4AvWhDwAM36G8RG89/rG6EvBGeNoYSaFTPmUrofrx7SIwzJAEJnpcgmfERmVHYYBhCxgV2aR0qgu55svADIOh2vofGk6F0+BsZk224CRhtrofQiI65GeRoSjnoFGhIkgEb6EhHe5neNaGHkWhJHwGfqGWRhrjoYbFzjfmjm7rq3aLCGLm7pkEbBFGyIYYzoYQl2huXgGEjMWhEvoWAwriRhgfkCSY4lhhYW5qEEhoAAENoad6FlhhT75kQtYPpyRXCBJMGMccVtoTfaHYW+mVAGaU5hmemkfJDVaJWWbBetZE5zsEwfdqiO49AAIycNYAC5BhdEYcxN4Hp2F5oV2k4pBOUdoQkkFvehnjoaNaFgMKCkYZsCgRy+6xZthb6vOhEHcAenY6r2vxoXov60IQVhernk51RhT+xmf77hRhoVoWaBYfuONoYeLNyoZ6kcAGbqFi2hoeode6YsGarujkXk7p4AmNoTVGF0depuoWZaBE6hpGxmUwAqEA7ETpe6FjhhZuoZ16GX2hjnoYVO4j56/doa7o6YyBnBgfJmYyWh9EYdlnq7RhPc3jwU5omhAQTqSyyxPGMOHg9GG32hp95m77Zjhh7BoWpVZSuhXBjig6Gc0Um/oab6E9qGefoR4xDXcUyIRlbuafx0UvIfNua9Rh9v3PfaGcWhaL9kVqHfFGNLoQN6FWHmnvhojGEZGhMZoVCkGG/Bwhgab8HQ12lWodQV7Vah60wbVqFqluEztpyX7dL+VvIRK54aGBbWoZPXppvenWoWwz4Mxhq9ej0MYEzBeeepIaF1+hoLZg36HSy4D1oaP6G56wfXoQTaFhnmchXkcABHaOXkYV9QY4mh+7cEy6GaRhhQIa+EYidOViZv89Y/0sjfoSqgACxhzNIITHDfbA5foaWm7kZ6Ohekro6b/BhD4FQaEZ4e7hmm9GGmT2HsFsbGHwuhwm0EG54ppB11oTasYtDBw2DlVaHifWkmeunqH/zmNAgACuA5zWKUen3npQlOPxobashqowiwxs9Mb7veQiAIuUZP167QANpnpBxhVaQebMFu+h9YYUW6FBlu/eHo5N7jlGocYdhIC2BKcKdBHqHRyQ/J+qc/ih6hRZjguX5PvezTpt9GHcOh5ZoZlQAPYOjRnm76FBWO/zNq+aHhZ6xcYTz6FLahRrtqyv64AhyU3mFnqV/BgQYUy76kAhxoAO+aHlWOJrtsvaEGhhKQTkDeZ5zBYmjjVFadxh5y1i9GGxG6XTodZ44c16jQYTgKGvz29LoW8gCRBh2OoV76HvuhWtoWR6ESSwYm/mf763Bh5WRo8aGXehbGejd6EKRhUBHuuGGcZ64GQbalisuhUOeqNthkChb+7rcV5sjG9xXgKJ60fe4+BtEoH0ChrxXowKF9TezAoffXb3RW/GQTKJ57dOXAoR9qETTe+WxlkGEfYAbnluSywZQSL54JQuA6xW/hHnp94qGmmQYVeaGmBhP8Ya5Bb/xhwO1mw6F8uhyVjgu75dr+GwJvIE5s56bZoS8EbfOh8Thmm6GiuhIWQciGGzyqbi1ocLRBEANYYe8oE6Chb1jmtN7tEeG03pUYGRfe203lxrraiQsOofsCGJIB8igYc3p8leCmurPQHRT6qi+jSQELN64CAb0wFQIBQSlswmHWb6FjLDsoE8b6ev1gFgEYIBUPAaIPqVeeNTeidgEJN6Sa+hcoFwiBcfekC3po76tCAQEgGUVO07ASmvr5oB4A+mwgEXN6pdTry3pcIBZzehYyx0j6g2+oc3p6ghALeromH6Jhw3emk043ZBRiYXomG8t6piYRcKGSL6OiYZYmHRT65CgQ3IH1lOdS+qwmGLMB1EbtoiaWIBSiYWivq2L6/EgfYgGDL67vehYyzOIBPiAY8K7uIBcBAcV05BJhz8gQ2CH+IBKLehYyzKJhEBAey3rZmGAWAeLIEGJhgVbhYmEmJh8reja04izePCYXEgHWMsZdRqc3qdN6J3em8e6Qd6Crem2YbzD6aGAc63qpIBp4Loh3qKt6pSAXVvrID6J3esjU75N2wyAVNgHHd6c2AdmV7kd6fzLMM3pWMsgKAeK3oqihXjeh0gEXN6NAzhsgF8sBig+pXY6rt6mk+ol3qxJhGGAaglamKBHzelMmFL4B6PtgFgF1lOo7epYmHHIBDBAXcIHUtO3djhsgFMssUkxhZ3ogd6NrTtTroLt6OrATa04AzWC+AfWU44cBkRAaK3pWMs9SAQL55rlOp4+rYM4Xt61yYd8gFakYht+qc3oKt6uWAR8sHVJhsHesJC5Id6aTenvgEb0Bdkxm4oGUVOeHeq1gFttOaqJp63q9YBOAPqx3riJhViYXiQaOt6SqAWrQGYb6GKAXpC7/MsCa+vk3oktOQI+knza7t6QTersPqJd6vSYSSgFDt6ZKAe+gHEoBsZpqEoGeIBgSYUKQ68D6xY+vimHxnu9PenrwHQiBudLNygEed6odTl0mGpUBobetWiYioBpreoq3r176kXetKgGAAAiSBGMsfKYfKgGWIBsJ+vM3plIBoqAdymGht6mXemqgGMphDZplqgG2oB+KYeaQa7t61jLOi3qSYWPjej8voAD6z6AZWiRmoBqqYfDG4dj67CYe6Q6zd6JrehYyzTt6Eo+i6gHrd6lq+h6gHT5BZk+t6gF4EBp3evQaHuiBycgTNC6eN6qneiamGRb6vjAXMmEBN6LMbgFgHZUBi6+pcIGAAAKiDVUBQPepZ3rMt6xXTjvz7FJhQ4+iGmFrN6b7AZasFj4BoaYSsPqX+2YBAZKPr35BVTehYyw7Jh3Att/maBL6uqYdPX6v8+kbeos3rdJhsnenU3rMt6i4gf9vqS4Bf+Qbr760H69Peoz3r2JhhzeuYaF2KBYB+hS3peL6GN9oAABgIK03p6UGBo+qVJ62iBuXTu2mGToB8KYU+IEnt6zTAXb76a962veoj3oOJh3nelYywdN6og+rjYZuKBC6AaOmG2L646YQOmFz1upvehYyzot6UogUlgHCSh6reuegHRT68TTsUIG3oBJMgdFPruT6tTehYyyM96FjLEX3qHN62cIT8frJJhpw+vn3rHph1jLGemHlwh/6AXsPqED6s0+sJwG3php6YdFvoyB2n8AXuU5HphJ6YfemGdwhO5usyPr3N6/jeovPpjt6dG+gm3ooYBGiYSsmHioBBo+noL5LJhK6YehgEpr6BGAY507sss3G+lxgE8YBJfvr/NZwZhFGAYhmHUYBbKAahmGiYBqDblhmEIZhgmASqmH4ZhJGAZ5pZEZhqyYaBmH4YBPHemRmH0YB+8IUagFKYBc6YTJgF8D6rqYcVKHGoBzGYY5gHqYBKA+ja0497+Lfep23oXD6VjLBUmGCYBamAc5gFsZhLlDr4WZuKBgmYdCvq2L6rGYfjQFQIhf7ehYyyAL6QtAb5gHRT6omYUwPryZhSCIWyLa/t6SmYZ83oqZh76AQ4mFyZhopAVv76gMBsXAXFQECkBQWAUO3pCZhVi+q0gHUIhmY+qFvppYBSzeq6mEwL6eHAS0mGKdOt/vqlgFWJhKG+tYywuZh7rATlgH6tOJrjjE3qKJhorAXvgE676Z+AfiaFF16dCAUfgE5NOgKATX3pvphlWARRsGx0s8WYYqPpXShLGwbu3oJj6kx+gk3odt6Zy+qOU7goBdHem204JBeu7ekemGcoBwmYdlmHApheWYcR3pHlOp1gTpmEpL6ZPsB2IE676dwgSNgFjCB7aYY5mG6KBfjeksfpHcBsreol3qOkBf0od/fart62/evYIENZh7WYcRgHrYB3WYTfU7LTO0QgROPrQZh9S+rq3rKT6uRARjpZRt6KM+sJmEScBs2YWsmEN7msTeqtmFjt6ppoZPvrfN6U2YVYmHWMsxXTv2U4U6WZyYSyyxzL6WWYVyPp7ZhayYXG3rZ1OOyYVU36qW6QOAcvwH6Jhbndm4oEQ4Bc6YdDgHnr6l0+sxmGFN6U6Ya036YD6nbeq9mEmJh32YSzKEsMBRY+l607oUBkJ+s4sY8T65pAWMIFWJhqggUq3pkj69I+lciHaH+QsoU4ACTN+WWwXlD7iyh+OBpB3qj8BNq+ks3om4BZaYbVsEy4BcfepY04q0BtTemT7D+ph4ZAS0PpRphxXTqYAAdT6tTeuEvoSJhkAAMCyynkB+uAatvr/UBiO+uHIEmph7KAclmFZkB16YSBIEWMstuATC3r24Bnbes63pzJhdI+rTmEyd6OdLHs3ppd6E5oUTmFy4BXOYeQfqEIBVOYaomEWMsEuYfTmEbd6jOYczmFDd6rOYcQoFR4BKtpuyIHeJhNC+qomE9d61NXsfPorNOlXAVpQFt3uxPeubmGnD6xlAWQgFjN6nIXkVmEBIBbzTgk3qqL61eARZvrGJhViYYemH14BdS+pIgHOJhpK1k7mGzN6LuYUsfqfUBMHes1QEhz6yNTo6HaB5hIuASwmE1oBjK1jVmH1b61Y+qLV4HheAo+mK3oqd60U+itmE+IBW2YVS34L4B8uAYoPq92BBJ+kCPqwSBlwgbHKGDt6KHATZmFLH6jVAVMmFHlOB5ZkVmHdJhmWYbrDbpZhHTeg3mGdohMduvwgG+t6oWYWSPrbEBdsgeKi5f4BP+Acznp/4B1++q+WaTZhb2YXTU41ZhlFTipPrnphP5Zj43prphSeYUq34G5hwmYT+mF3ph0W+oCf6LZhg1AXFPqXCB3Terl06AT6+BAbuUEz5h+sgSQQFeIBXo+nuHbkEBU7eowQEAh+IMtgSPoBN6JqYZ5wEmyBkDgaZmFsEBslTmRL4BYBwygdemF6ZhHTejFABej6uCgYTlb8IBDLeqPmGPyhC+YXPmFXHmSSYQZmEMJhdvdjyIFetO/+YRTLaOt6F5Tg0vpaJhZ7bp43pKZhlEgQYQF50s4CoX/3rv96P5AfDgHTyB8aYTYQHMT6o7eh03oWMscVoeBgY8T6ATekGQGXJhS2YRnmHJ4BWeYQ7mHZWhN4+iQWFkFh2rehQWEpr6RTetQWGuZhfuYQEQF/j6CW+kYyziSBNvegymFQT6rG3oToFbJunCgWAfpAiBurelyyw8b6aE+tfmGZIBYwgWFgE+YheofnSACtphQk+oj3pXZhDzeqQWGqd69tAfYx7uqupF+iQWEgss5QgTC3rvz6ShYSYmHjEB2BYeNvpV7B8ZevQWFzEBkRAR7mE1phSx+iogGicB7BYcbwGFVmZEXvlvpqFhxRAaVwGdt6VHTsxmFV969XThdaExMezXekjPoTt6wGYfbmEGIBnUgUYyzzd6NxAS1PoMsspdTiIQHbyBWvetBmHk0BAbehP3rvEB/k+v6mFBt6euASPIEKb6e1dEBPr1lOI5TmhPoWr6ezemOIFTT6UJAQ4mFeJh8NoZtWaAZhz6YcEWG98BxXTqxPooZhQ3egimEnt6oGYUYywT5hOpAfh3r+t647el4gGdZhLXevsoG0kBATei+mEw4hRU+pb3q1T65O+mmmGxcBXJASMPq8kBcg+vxIHhJhwpAedwGnD6cuAR33r5SBXeYZVQHrN6WdLDYQE+Jh6Peg83rFdOG55oV3pZ0soS+lq3rwD6um+mAvrO5h0U+u0oEgssyxYXSPqrFhrEgYjPrQ5hILLPxvp7z68yYeS3p1FhlmAaC3qvj6/LASJwGMsssuIUq7oWFhbhYQzmFWJhUiYZ03q2FhPOYfUgGO2hLpASMPoMFhK2+qAWGK5hX9AWy07AlhKSYd7aFKu6/hYWb3p+96bLegzPp/Fh02YfLHbJN6kzTqmQFwiBovet43pMssN6Yb+mH9966xYbAQH4Fh2xYbkqG2u6AWAeZmEp0sqRYcV06x96tuYQvQGgZhak+lMmFBIBvqYd13oElh9ZTjNwG976aaYSSWFSd6uXTiFmEUD6UlAZcIHTZhAu+hOIGSJh5uYYQWGWHB5aPq7IF1sBvE+gYgEOJhSmYTqPqMyBYB+sM3rPFhWlAXUvoqyBIGYSuQGKuBtanrePquFhvjepAvq5dOhhYVYmF7kB16YeJIGVt6Q3epr4Y6ZhDZTuzmEVEB3jejNwFAMB7W+i5U4bMBzJYRyIEXlOVHegm3pAd6VfethIF51mF+IVAPqHL6iA+oevpolhfx+jcQGgZhS+Ye+mE/oBJJYQE3p4FhWxYZKWGi6BSruiAWEyZhICvgCWHQUBK6YRoACwlhRJYT+gFIUBvtAbEWHKFh1GYWbgFbFh8pYdZvqKt6Bzeus3rE4B7k+gRQFS96xFASumGjj6+aYalQF1L6W++gDQFdT6CdTlsWGHKBkUfi1f5mr6KneqkWH5phFVAb+IFXZh7k+s2mHTYBtqAeL3rBEBwlAaL3p7lOOWYVOPqSUB63emOIHHFh+zegQWGiEhT9ZpMgFIFhaeYcoWHnFhOreiRU4R5h9DoXqWEQlh9CYQyWFzsBayYQxIFSiBCuYbpgF1N6dS+vmmFiT6wlTh2gEdR++YBvu3o8FhlmAQoPqMph8Pep23rlZhEeYexvouUBjdTqlQHnFhZWYblmER5h0WPol+5yOh41AeCWGWFhHOYbAgEJN6nBxpqWH25hDEgTxvpXz6z5YTlmHXoB4FYevUFL1Buc+vW3rulhJXeucWHmOhPGbuqx4/FhBpYeOIH+phRi+hXmHuT6PxAY6QHtUBA6+oEWELz6wS+hKPr1lO/LAea057UBcyYadgHmUBlJwThWEpoB+zAUBmELz6i+YcCWG4KB9JwS4WEMFhc5YTHmEx8BK1AVDQHQj6dZARkWGfFhkAALsWGhL621AdHwF5FhaHeviIGmAAIven03oNL6SmYfMWEnFhCTerjQHC76opAWrmGSFhcm+obmGNlhzNAUDQGG6B6resbmEBFhj5YY03oxcQzFYXswELFhweYXaQGQ0B5xAdhIHEVhYlYQpWHIL6ylYXxWHB5h6lYTdQEE0BaRYfTmGYb6OlYcJmEZ0sp7Ac+WHt8BizoXHf7LOhAWAV1Ppslh/+AX8yyBphjzeh8WHwq+16YXyWEtlhkhAX03o5NOovesd3rxFhMtAXLQGIL6zVAQ9mElj602YVJmHRFhT6YaBmHr8BOdAXSPpueBIrXoxmFylhQG+uioHCZhCHpmYgFm4BfTeimWF7z6pd5kSIEX76QHekWU6XFhXLLO+QGZ/2mTeu0vrVb6IuAWhvpC5hQzelxIFNtOUVYTuPrNlhIWYdFPpJFhKVYZBU55lhDuYd9IH+SBWLeq0IE0n6/hAXuU7IhGFpAbnSywbudOYV1PpaEBk1YfbQE/aeElYZZgFS96orAcEWGqlhp5AShvpIIB4vepFvqYb6GiYeG07dlhDmYW1mH/4B2EgSmWErphHW+lZmGMFh9FYeyyymAAUlAfjwFJMBiy+icS6HT6+3AdVPqdt6ATenVmHcFh1GYZUIHR8BLdAYuIGMoBImAU2oa2lh2LekdPoK5hWLen03p1L6V5wTqEZ9NBQavlCqEc16SSYROmFrZhM9AXuWGQVheNYW+VaZj6dNATuPolj6azesXvrYV6W9Aa03o70BC8fu8fp0VOZ8+hIc6PJhN2Ad//Y1d62dTgaPprMWunejWmHxcmptAWd3o98GjzTpmWGP0BkcevkgFHT6wmYfPPpeIB9ZTlkvpf0B+aYQ0vrmb6/aYfbmF5sepmYeAwFsJITU+nU3qTNOc2YeEvron6F2AT2nowphOresAACrt66DAZQWEsFhGtYe6wFBN64C+viWFhz6MVTm9gFQsWMeAYG3qI96xTeh6SGYD6nQgQG3rKAAktYZ/QHSJh6bAZW3pIIBs1YfT4EB6BvHJplAapphBJYSIWHU5h3G+sHp5CJhQLenuU4XlOQdYchPrYlhHbeteU7CMBsdYagWEcuhjiXqJXqGt6dTerFwFeJhy2YSHWEKMBMA+pxgEisBlnehYyyxb6v0+jxvq5Fh7OYWGvpWMsIk+spWEsb65ggWM3qXZhY7eqYADs5hCxAad3oEsBKaAW7WFlMB1fAX03oOMBGydtKvrFdOmCAVtWEa5hViYYnU4QyBAbepovpykBOZAcEwG11hvdYYAgFbVhyNYap3o2FhETAXUvoHZhuiYTEwEdL6U9YZAAB7lOn1AZPWFc5hXNAUpmHjEBCuYWovp0n63PeinwE/76Cmuj43o+KBIa+uhPpTt62wgXs3p/Fh0U+mYgGmAAKS+gLmF7lOrxYcM3oBEBATekAfr4YB31YTFACqL6+GYUomFdJh69YecoEd1hXU+i93r6tOOmvqm3pDt61+YXimH5N6oLetG07w1h8S+vvWFrCBwlTnUvpea+W1YT6057Zhd9YZwmF2a+PdYQg2GBN6SDYRHjbs5h1ZrioPBaVh+zAXbwGlZhF2YbNWFZuh2DYZggF+t6I2+scgHE4BFK+g5IEv1ha9YTgHrs5h4f4FtWEkNhx9YXPmET+BYVYRzIGN4BL6Yd03p74BOdYauWF0j6TZAbwP59tBPA+sXmHqsBrlYRnmGwsBHzel0mFMssQjYVL3pE4BqY+pvyY9lhFNAQy3qnD6LRYXBWHAphJm+oKwG51h93AdYHrusBk5YcEWE/lh0XTlIWEaphMC+rSwGSNhHK+hPmE2FhpjYTHwH6NhojYa8WHX5hf5AYivrij6q5YSKwGINhf5AdYHrsNhtjYSYmGmNhBTeoqWG+N6wLetSwHPoBqrAdY2He4B7Tevw2Hk1hA4gXvgHCNhKjYfGIZqNh1dYXU3pvIBRNYUDr4NYB+jYV+wFicWkdYdfmHFN6z9YSs3qv1hCuYXA2EEr6CuYQjr5eVh32Aeg2EJN6Zo+ghWHmUhguBlQ2GAIBAbAdgwHed66hYVdmEMNhKgAKPWEtsBDdYRswH/p2tK+nGwFFj6VGYaYwErsB2dLLNWFCYBwzenSPqpFhrCYX73oriBKw+nbE6BUh1jukImEk5hQ2AS0vrfiBaDYSM2HKAA7jYUo2GeNhuDYa42FHRGptYXH3ofN6xGAd0mFlN6Q7AcU3oQz6PIiOzmHONheDYXmIZPsBjY+hrWHoMBJzYZkIEjsB0BulIvq976U9YVpWE/lhcSYYTWH11hzpYTJ3qr1hCuYbRWFmMsW9YX3WHp1hk5YcJmFa5hQuYS+WHk1OptwRAWG5VhJpYQFWF2L6DLegEQGElhy+YVmQGO6+ijevU2H7ju5TYQPWEYNhjWYb50G/t6mTYQCPqOZ2f7AeswGAcBQ3eitvq41hoGYUBPpbVhUxYXAQHLZhE9YXXWEGj6exnvi2EeNhAI+pc2HeNhyXQeU2FN8BJrTp3mEplhKa+glIEEFhrmYZCWGNFhHNYRN6EkE+UA+sTgHkcB+bel0mHE4Bm5AQcPrX5hLZYaFmFc0Bk5AUE3rv1hjHAd23rBFhTxtu6wHTVhaVYRrWHl3B3e3ldS6VNaliATnwFI1hte+nMmH5t6dS+niQbCf+sgAKSQbENhLRYdFPrathIzYR8WEBt6dS+gUKYBp+4n/rN6E7lhNJYUGmE2r6kWAZQWHTFhgSYWZmFWd67LevpwF5oB8aYXKWGiIB0U+iQ2HUphQ8gaud5n1hr4+hfWGnlhoiAZZQFKZhkneoNmH+t6wLLFIWFxr6NRYXuU68thUggVLmFBT6Q7er63pLH6ETAWjvoPehvXHoSPpT0BTogTBWFlr6L++meWHVr6am+sFwFPphwGYX5WFUVh5rYUTSFhBmB1YWMWFNthqsgUyWEMz6QIgZzQH9N6GXAYFwFZcBP5ASomE4FhWPoUiWFOYBQZYZXmG+VhgVYTzvqIPBePLEgfpiFhuS+uvWHPr6dHel606tcBKNAaGbaiIBnUgVIWFKVhmSAeDmG9cB45Yf1wGLr6bTej4WG8+h2Vej1WEhFh1m+o9IGCD6ASAVt3qq5h5TYZhvo6b6ViYZyWEEb6uiYTSQH1KBuRYaKWFE8BdwgSlwFiFhKm+uJWF7Fh83AYLPpgZhspYTu2HokBg2+mxvrq8BP1Yb4vr3T6nbenFQFsoBAI+upPpob6jxYUDPollhwRYa3QF4lhImATlIZvcBCm+qIWGXT6N35jGQGfN6sHYXDPp/Fhka+m+2HXkB0rYULgHS5hji+vQoG6JhojYXuU4GUBdi+i0oEqNhdS+l+l6jZ4ZdIS5Xq/t6XiYWBmGJ8BDl3iNA67qhPx+pCwG+8BSBAcJmEE8B0tAe6wHnD6BaYRbWF6VhxCgbTwF48sPE+tn3q6t6dI+szwGmMB5W+hYyx7MBWfejnSw3EBi4gdnSx1lOYk+iwQGeFh8RYa9WEiYBnogfZPrzN6wrYUjPpGcBACASmgFm96UHYVL3ro0BuDYdQ2G8kBDlYR9QGMz6ftAR+IFzth+lYV/SHXb6PjersPrbph8zesvWGXqhTchrnmF+VhQXYT/gGT6BQE/pG3pBdhkRAXWWGikBBJYXJ2H+t6tE+g0WH25hfTejAProt6/qYQHwFWZhPmYWpIGmj6LBAZnmFzZhfTemy07rd67LLDFAC50sfTelJ2Hxdh6zeol2FFphOreknwFDFhjXAUF2EElhUhYTwQH1KBGW+spWGJ1OuBAROvouVOADAVq3r5Fh2PAezvollhpWYXV2EalhRuYfGmF9N67SgZJPqQAA2KYSa04K5hiPehOPoS5hPy+pIWHLN6AlAbG3o5Fh2EgRJ2FOlhTHYUPwFR8BufesywH5FhhRYYyyxjNhJiYeJIGQAATLLPPwFkn6FjLP6mF0j6a/AWK3r4VhgE+mmPq9sB6RYZzwH7kB1XYbJ2F1dhIygT88GUPOQ69ku2E3YBYTIQnm5y160eYcHmGP8B2dLA1l7W5hIxAXZWF1kBAE+hhIE/8B16YT/WGACBlq+gG3pGlhfjTpxmHRFhV5YXYGHA9hB6YTC3oR5h0TTjU3oIKB1q+lQWFFdhcA3hD2HGlhseYTNmGsFhljLBDIHWb6YdAVCQGHlhjFPqT2Go9hJiYeeWFE9hRNYQOb5xYG0eYXs3onlhVAgS1WEw1hvuYSemFY4B+GYYdPrxNOzAgdJT6VR6jPYb805PZh3kQS4h6ethvxYQYWFM9hViYcg2FXDmFzIZ9XplCBq8gTIIGrpOj3YSV3qhZh3MjsoIH7NhT5YWbWFQthZGoXevokthxtAeS2FWdhow+lE2FZ96f1AQnU4DiBQE+uogFalhNdYQy2HFRBC7essgExT6TyYc+k6u9huo+kvWFeCB1QwbF3rL8BPe+l0mG+9hJS7nSAAXD6kDYZ0WHWMseXeugMaGMBk9YTr2Ef6BO2YTEIEHWeBwYSPmEmJhS9YXSPppCBVyYVgIFZCB5DYSYmETYBB/Bti2F8thHxAb6QFVymu7eotWHlCBKa+tW2HVCBOZAYq3pKZh3G+g0IE/We/vYQS2GICB02+kB3pt1hnQgV0mH5KBteuv9QHSW+ZSYUemHB5hfveqDWEjNhZNTu72FXz6AiYbc87OwAg5YVLWGfH6TgnmZ3rp0sYzenk2FPKBLjYTa043LuyfAZlmEVNhazYXVWFBN6BigQ9gFPCBDbwRDXq61hG+YVv2Hw968VARDPrtNhRwgd+WGGKBUD1jU3r9thqdLJAqZUlhQbYZ4J515hJWYdFPpbVhsC+iyWEOJhIvYby2GQiBjrerZwFjph4C+h/IEc2ekbIciIGPZhvLemiIH/Zhn2YYDmGyJhuY+qdT5xx6liAam2Gd5hrU+nWU7mthBTetv3p/MsZIgQm3oFdOmoYXAOF5t6CA4a22H8sBdi+iumGMiB0ZYQyIH7vBbBToAWFjthbQ+uaGEg5hAvYcxmHhlhT6AQKIGGMsuo+imWFHlOMgxq2mF1ZhkogRKPqht6mBgWwOFHAA5m+ggPp+EB6LersPqHEuVqhunl47m6PA4XwOGnd69tYQG3qQd6kS+ptgHmoejqYXQOGoEBfNPr6IHIthEZYfUgFmiBDbeu3U4yt6QWoeMbpdphrTeuwOHs5huXTuwOERVhUg4W6IGMDhS4gYygEElhig4fqIHKDh5zehlvp4lhVg4XCWFaVhlRAa8oHB5hBPAVGIG7N6nbem/2HRT6TLLC12H+SBzdYUTWHA2+4g4ajvqSDhgg4QcPpO02bYgYq3qg1hgvYTyIhbVhWrenBIHnZhu2YbQOGcVhldYbRPrV1hHiAdfmF1iBhzer3Z7BDhJg4WEOGMT6/PVvuIF6SBUQ4bwOEZr68XerEOHp1hEhYQkOGnD6qdLIzmGZb6qQ4eo2EHkBbXAd43ryNhBQ4QyAEbZhrBYeVPq8kBvjenU3qx4Bu4gTK3o/NhADYYsPr9DhXTejBQGLN6XSYTa3rncBB+XuDGYEn6irei1mGC9hJKpr+3qHr6CuYWhWFIthvZlo+IHzN6F/ejpyGfCUB/erDmGcVhWlYfF3puyBnnAeNIF6z67k+siEb85hguYZGPoO4BouYXWU6576wJYfcUbusBG3YUB3pbdhD9YU02ERVhGtYXUvoXdhxXTt3wHU5heEgTaAEcAmkO+gF2HvFhwJYbtQHUiBbsgRnmFIFhlA+p83qLz6+M+pAADEdhpHYYsvpFFhzrelawHIhG2dAZuwF8SBcBAYE2GfN6VYgemU4iSBxXYeJIG9DhQaYZPQFg5hR/YcL2Gxt6ikgVtWFqL6/1AXEWFWJhDG+ppIGRthLRYQ3WEAMBU1Ye/3rvN6INYaUOGC9hgRfoWPo0DhTZAVzQEpr6TnetCOFRVhRW+qYwGhL61g4ScPqnUBvkgaDmEvSBXK+spWHIhGbNYQBPpk1OkC+mxMHXFhOrehIWENL6su+jxvqmAASRYe5wEpFhaRYVuPrE4BA3YSEOGLr6c6YSmgFf1hG++orQFPt6JcgYvPrsssEkwac3qLz6gg+uTmFrSBqg4Yn3r/1hTfAQJQENlO6eYe0vp+96DkgUkWGfUBdZTrU3o68B6bARtwGdCBdS+tlgHdJhMC+tBmFOdhCCgcV04OjhRwABTmHRT6Yo4cJwEzlh96AWLQEWMsCSQfCOFxt6v1YXyOHy5hlGAagoG3d6CG+nuU6Fth1zTsZ07Ojh/felpWFyD6AXYVPmFzF++7eoj3pPL6ji+j53qqL6E5YcA2GxT6QHes9WGjD6DuAfGIF7lOrCYX0WFPSBUo4ehQEWMswAAOJIGxJhPiAfV07zVh/0gb63oxjhTfARKPrAt64kgcbWHRT6ubYVT2GcssYpYbn3pKlhZCAUx2F68Bt4gQL2Hg5hjg4YLWEJN6KjYRRvr85hXLLK0OGJjht0YZRAHYyBII4ViOH4yBTeATly6dd6JY+v6mE7j6FMgeO9YiSBoHYWKOHlcBxw4bvWEjt6jMge6wHZZh5mYdmQE8Nh9LAXu2Gyt6BRYekmE8yBGdLMiEbHd6ZjLPDGFKu65A4aWOGothCljrknqJlhwmYWbWER1h0JYZ8frXphiY4fjGE68hwhgRL2E6thkbYXbmFpNhVS/hkMYW/BtuhmjU7U9hzY4dAOGGyBCG+hf2H+j6NWoTwPpClhE7elhPrAn6MhgXhN6xvegMlpbyHNahgTNjhOFfZhwiZuDy5cThzPYZ5g5N/Bqb3rOCbYM+aMwRm95l/BzvIb1qGu8hPA+uOWEWdhiKYU0WHadhNxAXuU7Et6URYYZ2FPEBek+rNWF9N60haA5WEJN6Ox+mDmG4D6F3Ye52H1N6AXYTaOE5lG1/YWmPoFDhee+sP2FYdh+nYdEWH4ZhxnYcpPpMdhkaQa0zaqR6xzenvgFgu2Tx+qfIF+M+Hk4dP2GVl+AWATfIEAn6u7BjKWFk6mheYZW3ql4eEbemKgE6dhH8gZnHpfyBCzevXvrrDGn8Ac8WEgKBV3YQaPqGRW9TYVpWH0dh3NYbHGEVJmoCgZp2GJUBWvAblgH8n6KCgf8foOGBSrujCmE68BitAXCWFRIBHuYczmETt6e5ThkmH/M20SAZ7mHY9h9cgdF04OFhlLvo1OE1ThM6AcukGRrwthYfXgHxYBE+YS4mFmJhAq/qnMHd129+HsIWELFhi8+m2WEIChpp+pz2ECKBRcwbiMbZ6mhtAQWgGNRW5vYQrWE+GBEigRI2HvDhka+lAR6m1hX8AWQfrt1OO4+hM06Jd6p5AV23pAYB7OYUE3pbThVpAQ9WHX76ImAUWIFzJh/cwfgKFiCBSA+mK3rhKB3eBs8gEfN6USgbYoGPNOLzesSgFdp6l9AYcOH4phrigbuPpb9hbU3tQKFWt6p6YXxvpm4BqSgffqbVNOL04RyfaRKBFKYdfGGNd6fCYapU7/7uMbvnu3pVMBxKAdkoF7UB+KYZGfpIH66dLPc3ppd6IM4Y9qGx0s5Sgb3wHit6z8Yd/y65GBX6YV+2GR1h9zehOWETThyvelN2EFDhEx+vhmEfFh57YUECHZr+LPxM8gHCcBC8+l62H7T6ASAa/mHuT6MCwbjFY4ThEygSs3ozVh0GYexvpm4BQCYWZX54KWYs4f63oSzhOrYa02E196nPerEvo5FhpbYc5kGiV6qaYfwmGAdhW9AbH3o6t6PRYa1PpeZBBJ+os2EANhU/YYCWEb1hYeYQrmHtVh+iYaR7az9hywgfk2HbNhe5TpHWFnN6rg4W7vrTwB06/nPAHUn6wLLMVmEMoB4VYfwOGRVhtU4UaOECDhve+pyyzP1h9KAfcPrtEebyYShmHJphkZTuY3pTAhQ2SOioFQ6h6ntr4EA0Jh9nPi6MZkYAaphjSC5ZzhEZoYAADDeMz4ZvMsI6gIAADFeLE3AsAAgAAOV4f4xsR76pZmuc4eznoFzhkAAIAACIgIAADLeHr9ZvUAgAALN4fQAIAACleOigDFzh52jsEABGtW0qAIAADbeHWCal0snx1qzpSpc+qLjtW5CSAAec4dLaa+LB+xpqIACAAA9Xj5mGpWum9uCaYOZftomJ6rzhz7ABnHYIaGfAmIAACbeKTADyAAg84dkACAAAhXgmqGgAAA2Aw84TXgDHzhJ1IDdkGbzh80ANvOGjzhVsAPvOEpjAR84cQACnzhNeABfOGLqG184Ti16Mked84RSg7slWj84boADPzhh84SfOHnzhl84UwADfzhz7AIAAD3eL8KHOwAgAAAiAZ84T3ZYOQoF84WyOarKWP+AMfOHcbgLAAIAACLeLCuCfzhjwrgguFILhDc4eXOFfJOEnvv9X7oLhmC4TguFHmm2C4USkYvZmx4ABwQYZ12wDen/OEZx2Dc4YAADTeLlt4QLhXXpvjkETcspiRqwuHsLh384WXUb4l2JLdv93qtAAgAAIN4d8VkHY5rAINRDnAuH7zhTAAKXSx2eGp6dhMsHfxg9c4bGYYHie7OQb0Qb9/AWC4ZHqECX2C5hp/gDHzh0CQRk554+eV6diEAAiLh4RRp3OHGSMGooaCArMQARc4aTAAKLhqCVtIuEu5W7s4NguH7LBCOeqIADWLh80AIAACTeLlt6oQA1i4boAClzhHOZqIADXzh0Exk2R5t4gHc4YIDYHCAGC3gpMZwLhxC4dKgCAAAloCriGpC4V6KEncspYQcSMZC82eQAHEuHZAACS4WL56Z1e71ANBMafJhb1AGYuEDRuyUMJRSDl+GPl9qIACAAAh3jQLhKvngviCmZWXjpvIAAwLhUKYWHfr1AApdLJ3EaXzhSKwSJYZJgAgAAL14CJABJYZtzePcAEsg65beOQAGfOGAAAu3gEmeBFVvh74pA2beIIAADzeFjW6AAA13gjze7ZBoPOE4OOeeQbgADdzhiQAIsuGN82cC4YAADteGyObVomgi4XwIB6Lh9KALIAAHLhUBoaQ2wrDOXZgelyxCZW+y4RSQD3zhjeQbYvaTLhbjdivnrIxwDc4YAAC1eJw0bV0kBwgH99aSYWDQYFAuFCrBXK7vIADFzh6i7gPkEXLhzrAIgAC7MsjhKC8uHR5eOfniIFZqssDkKHEd5XsAZ84eOpZc5A8gABqyxb3QgAAMDAgZDmU+DHzhDR0P0uHQTGWjjoEAASe+2QAM8uEJ6OUjdqGgHtzhB1TKXSx75BUrdiY3pwLhMvfkwADjVW3Hpr6H7t+eR0LtTrqiLhs84cI3YuaBia1sAXqoQAHS4f9faDzhglpmQXpvUAgAAJd4jvjkXOFVNGT/trIAA1LhpMALIAD1LhOaYWhKEs56gAAMd4CejuX4YOQogAAI94za7qqywZRgRhoS4/qBAAx84XwJilzhFuKOPW6s96/fwDUuFHmmOrBg8ABgrhjc4SIuErkO+K4SVJ7QFBfQlASuHIAAgAAOd4+IutfOGToBTS4S0uHr/BaveomsG7zhZ3RvIAAcEGSmZsfOE1KWKq4cCEGhLhqawX0JTl+G50QX6uFKZmwa4c+wChrhtFgZ7767zh3HpsquH6EAmS4REaGQ/GM84bUAAsLhiQAHguEGSuzTpv3OGdxGj84YMuEISAGrLJEsZMFBgdunQuH2Z68gAJMuGriG8gAGfOHFrhEw3vJpaiC+dIAHAuHdd2xAAACuG1AAda4foQAlrhMgdhUcCh6ota4fWuGOLeLa4dx6btrhqEACIuHQ4Wri4eK7DyAAni4bkuFxF6E64Q5CiZLhNl7nOuFMAAOa4Y1oHscsqnQSaYbLt2vGAQvabOeG/y4ePG5fSevhZg0GBnzhqK4WgQa5AAmmDogAAmLhNeAG3OFsjmNDfoSLaHrhx64RNaRnrhF64bgQZawIfGYQviCvMsVsAKZlaAAAgMAPrhPu3rsywvIcGzhgYuGtShk0rm+uEjqAX64T+uEYoAf64TEIaAAAxMBsjmNItvUADPLhsqgIBuEiNu8G4cMABXrhW/vm9QAqssjc4fvOEvACB/vrNGJXsAgAAN140rjuBGAZrhOQAFmuHzQAHc4dKgAUrht/vuBGAlrhma4bGuHkrhGzhmIuHjC+3gXsEACdrhiAALRuHIAATcQfIACvMsw1DqxuH1rhqWYVde4NBgxc4VQH4VLh80ADKuEJBegQAKKuExAAom4XUuE/Sh2Afr1mHLaBy0zu0ACAAAt3hxjmBK4YYAAqsssphhjpY6rhN21upuGabhj6VqCuEvHM+m4UjKFwLh564eEUbTrhNi4W+kYfFBQUWgwABPRGHi4blt4qLhfSIVr7pRn8JlRlo4Z5AAgAAPt4DKAHY0AmVGV1Tv38D0Lh2QAKsuHIAAvc4aIf7ASAnm4QYMD+bhxAAIFuG9zhhzbjSuGNzhUm4W2uHskGzixt8uExNw489gSuEnIAkq4dwADubhSOYfmaFPNudyIRjmFMzORulm9QCILhMQABsHZ71m6AAKPOFQohZK4dKgC7zhh4dkWAEOrhzUOg3OF5zhtQAAPOHoAAOrBjvOGNzhzzLLCF4MAA2y4ZCwb/rgDc4ZsuG+QIbG4bRuHEAAMy4V5uEiVmZ84XE2ZQLhMQACauExAAia4cLoiebhugAASuHLrhw84bLmGru6VW4dwAA1bhhbhnVuFsrhyKAI1uHNbhUwRm1uGPzhDc4Z1uEyohCZZjnaZpu4vCruY1yrLhWVhkSuHixObd7lduGnNat7AKXOH2IAcLfvUAATbh3HBr6UFVxhip+kwuEALhe84QfOGvzhp84Xgp7vbh7W4cQAC3bheIYSEADDbhga4UFLZvbhHShvIAB57eVk9oytYebh7soTpuHFAAem4UoAB7bhgL9gRuFhHmcC4SAWbg7BxKLpMRZVbhUUAJKuFRQAMq4eYm7fD6NNAImuHMQAIi4aTAC7zhbZ5rUuHE0Gc9gcsH7I6Afq4dx6aNlBkbRsEAAbOGVa4Wgw5bLhCLJIGuG1AAZAhizuFawIM3+j3AClzhR5pvIABxrh6bRtFGgGDeeb+m9QAWbhmAAKpuHPEWZT4MVd7+eGbI5od/rurhiQAFDuElKhgJ/ijuFOTAGC3gGsbDzhSEvps0DFXedJBtagA4rhe4dhhuFYbh2QAJouHaMOFu4Q3OH7zhcFdsSMYNrGtu4fvOEwOBjYXsEAC2bh6KAPIABNbhdu4Ug4FiLOLOeiwACAAAkMAw1GiIfs0uFXsAxy4dGi4Vrhs3jnAuHxbhAK4V5aHKbhXtoZOF7HgAyq4SmMDPLhs4Xqkp5xB+pm4U+uFyLhV7AF0uFMAAFG4fIACabhv9pr3ADXzhJW4c+wALzhUDgAYMAmrhRBYT2nrGrh3yZk1uFvzhp7AA3OHDLhsK4IAADVeJOuEgwO+G4XJiG8h+DK5skuGHdGXu4SfOGN7hze4VwvZt7hPu3ggoj4bhPqXvquHcrhuLBvb2brLh8CoY1aFJLhM24TkABNbhsHOqDuHErhLxzL3uGEIAiq4YkAAassRCoeswben+e9XgvuF17hmC4YFuGM2m5AAJQuGrWh8k+qcm7rMGte4X3uFNbhlFIO2uHcAAtK4VNuFIAAGrLLaeZd7Bgxjiys4eKhNNof525kYAMy4bjXAhAABK4ZgABdLhygcI3OEOyG8AAASuG+LhGt4F0uFN7h8q4b21bvbhywAFNuHIAAgAAKd4UDgEAuHILhg84VA4ANzhOrBk6uEurhGIuj3AAl7h9DZmXuEV7hve4RueatAAKrLIDEYl7hFnADguFonBU24ZAeHMQAXS4cgeGoHh+84TgeHSoAOK4Te/buLhMQAJXOGNzhuO4bU6bLAAOK4c5wSSAAWrLF8WHqNeG+4UvuH7bhW24R9uEdrhA64chf4xKhcjXqIeH97h1CXLLt571mBgwNWuFSHhXa4a1F6qFWhjXj/gD8Hh8sdkAeGNzhZ84bAeHiHhIO4f2uHqHhN6xgQeHyAA5e4c+wCCrhCdoSS4Es56/B4c9uGkwA2e4cuuEjLhBRpP2uGV7htS4YKuH4i6qy4YYACAAAz3g14Az+4exuHBsGDh4eVuHiQW+B4TUAANzhMvfroAAIbhVBRg5uFSbhKYwFVtZHmmDh4da+rH7hnu4YguEd2hV5ejqWFsBOIugR/aEVHBSrutFGhJbWX21pm4Z9AAo24UWuHqHhszXn6uH/CGMvfhUeHoIAu64aXuFnx2bYRiquG3sGW+4SruGqrh6q4SqyyuJ2Wa4ahACmZWbC4K/uGEIA9C4cQ6FkxWG+4YQeEabhsqgJouGjHB0TJgYoA52CUwAA3OGAAAq3icsGzq4VbAAl7heh4e4eF9agMB4XAeETOgIXDgVH4hdG0dAHzuGr7h4sTl5uEzbhax4YQgCAAA63gOQo8q4duWE37htQAPXuHyAAA84c9uG3sG+HvoymbKbhGu4Yr+Y1bBNdQfmAaBAAGrLGvuHT7hay4QscbfjG8AAAYeHcemYx4Q3OHAhBCQhv/OGJAAAO3lu4F91Bfxwchp7yHh1x4bceG5bejzJsAn5Oe6hB4ahAD4bhKj5ve4FA9+Kx4ZvuGdVeGrLKD35FEhW3LLCeEMoAhe4egABjHhqEAJfOHxJGTv4PIACOrh2J4chEZWAAG1AA8eHZAA7a4fAAC7HhZa9ghoa1AATx4cyeH9pGPyoXpp6EnhCW4WoeHsbh9BZuCY5fcOh+4bfuHZrhzPho/OHIAAgAAIWAV7AJ5uFMAAAR4a/uHxMG5B4cxACdzh4R4dTuEPAA7R4dkAAoHh3G4MXOExG+DnACXuHoAAaW4fAeGfHhkh4RSeGNzh3u4cJuFWwAxc4XwJgl7hWJ4boABZrh3AAIFuEzbhXa4VYAAGVhXWPiKeFXHhYp4ZIeFSnhMp4f4eHFAAr+4VZlbNQ6KJ4WieHlEAM+4XgeH6nhhp4R0obGnhjB4U/OFmnhjc4RaeG+Lh1p4evuEzbhdp4dKgCOnhS5xuxuEunhrpwR7+46eBNJIeax6Qqhd5wSj7r1AAMa4eRuHzNmIw/rilY1AAz24cfU7aHhuW3mJuEHzhCG4fLrbfxgVAfmfOGSnhBg3rhXrVnhqjpvQIaCWmdPumkuHxLhVHofAuFD7hDKAIRuHn0BEKhjyuET2WPi4X4uG3NmfG4eoeEsJeiAAFNuFMAASB4V46YxLhPR4X0AB87hgD/skeHcrhebHs7uFWwAGdBhSYZdLhN5yFFADWLhUUAHMuHPsA784SmMDlzhnDRon3Y3HhwsuFPEZy7hqm4ajuFGbhnu4d9wb8HhRx4SWeGMcmke4Xi6EsAOIFFLYUZK0G/eQbSqG6JeTDAZi0EfmG8O4VhuFeOmGtpgS0Fnemyq4XDuG5bedu4bUuFPnhfC4SdSARHh9G4VpVaiAAkF4fweEGDA1u4ZyqGimOcC4U1uH/f2QmGhmuFfemlFIIgeGG+mbi4S+5CbbhdjQD1uFOTAbARpxuHL7Bz56F5uGe+GP54aYhY9bh8u4TXgALnhR5pjNuHIHhnB4aHqh0N6bCfs7ACAAAJXjhHhTW4boABLzhjc4dEuEYBiec4YxAANzhiAAOJeH0HhOuRj+eGxnhU+4RtuHo7hA54TkACAAAzXjEjGDydvxeFWwAxFBnpYb2yoOQAMXOF0Xhix4U6ABGrkd3RnkACAAAnXg3yIugAAQeFmrh/e4TkAADzh3i4SXOErnhmQRoFuGCrhHW4YDEaAAAjXheOmEa4ZAAAqnhhMcDUpZcHhugAB5eH/+eVWhvAADFnh4u4fMl4ZXBfF4Y61iJAAXB4eReGO+O8gAD5eE6RGGO4VOuFeLh454eFeHPdGbeIAleHmRGsV4ZXPb+J+9bFntuF2NAyu4VBeH0oA9m4RGEEK7hL5IZ0dYZXhGt4EduFSXhVAftQuFmrgPW4SmMCZXhZVxtleHh/ge24SMeG1AAcR3kqY5hHhpe4WIeElXhzx4XwIDvW+VsAIFeExAAXl4YReE1Hhq/gftE7iNhFj4FZeEenhfV4cQACAAA73jb7hQ14Z5eH1fBs54ZvybJHhfV4dhnbXLhZS4Uil5rXh1gekleEWbhW14cVeEVLhI24Q5CjfjGU8fpEp7FjugaocCvrBqhCQ/njcEDG2szYfEZ5ypepaoabcFoth5DTs0GEFsecXQeS5a7UhWEtAzuGkwAcR4dnuGEHhYh4UceFRHhqrAMNeHUXh9KAP1uHooAQy4QJc7BCmF1Lvq2FxTutQAMBeEsL22F4dawDTHhcx4TEAAw3hfB4ewuHMKwWrLA4uF9agijVvIAAMnhTSgE7+Bg7hZa9t3cGzdBiPZm5B6WXO92eoSeEvAC6B4deuHT3BzUOuVuFO/g1l4U1uHyAAkp4TUpaLLh5nAWZeE3yIRN4Y8eEWwOeF4eK7DKrh6Npo1eG87hKYJlweHHne2O5i2eHVbhnu4TueFlthW3Xngk67NWSp4VieF8nhnJ4foeGwHhFFxsTeHyAATx4Sk8YUbhyS9s2n6RE+JX5pnuEbOG2e4XoeFMAAI+4Q3OEwrhDp4cMADynhFB4eEeEy9+8AAKHuGrqhw3AV5Y6ff+/egf6gaD6BxjwYX6GO5uDIZqbwG+3hxA5k3IY7+hwebtBZ4YMhr6oRHm7cCeUebgoGFcGBAPYaoGG/qhqgwZIMGh76R1ehIh6h76lebuz2HV5uoGoUoJ6rhmMlPpKPYYahfjzhHoaD76EQwWaY7TG2Y5jhRqHMfeMFvgKXqzBhYOgSH2Fv6BgfnroN4Y16X+gUFT6TRBIVPovdY8ahmAxhm8ECah4/YX/vo5AWImodZb7mGBVegQHn5wKmymoRO8GqahKbIdyXZ/+WF1PqQOGQ3eZGAPreE5Vo3LLqIMb8suNq4VtuFqruA1vm2yFvYGVHrqFqHqDGgWoQQYFUWOwWoctb7r3h/moS3eG1/GbRbr3Z4xaheKpuxY4UGB8EYerG50GBbgxse04gqO+OBoEAB/7hAaxnvWa4C0fe4UNuHEsAtR4UDeEErhMgABJ76rHhTW4UDeH97h8AAFeuEsy+yq4UUeH8nhtG4YA/7Hbhe64F0uG2XhQp4IuN44veEKhlpIbwAAeu4fRuFbR2sqgPFeHT/gm24WA+GlHhAp4bGeFCXh6O4cQuFn2+MO4ZAACYmGhMlJtuGYAAWC4RIeGIXhJZ4RreGYHhaphky6ydzhYDBsRQaIXhF2eKsuGQHhwAAIheGyAA8e4WYeGTrhHB4QaeEoCA8e4f1eHUXhEh4RteG3bhKe4YNuH8bhEO4eK7DKF23W4VA4BcPhOR/r4v59tO9QnrvT4o7u8ljjkeEzQWFa4VQ+Ey9+ND4SoeE1rh794ZhOGlahhMYVNMFiGBEZ+iTGGYTevNTrQV4M7u9WofhN5sThTWoazu50xhlcgZoYFhM2tfwXNqaO8h3WoR4fYu8hnvztaW4nO+WnTjhXqGGBduBiNqGPqOphgV3yHiahB5bp7gbTahr/wRsMa2GB2cFnNqFZxhHswbcMaBVur2gStqFuGBEAoetqFmu2IxXjWNZgXh0KobtqGTTeqsAe1Y4awBtmjjyJ4jluH+7hdqHhGBk5btdqHXxhM5bndqFewBD2oc/y5sChL2oYJkGcChnM4ekYEH4G9iFrwKHys+j1jrNN4IJhAOoVj9ZLTewOoW0CHezh603jNo7kJhc2jlF97qe2NdCOSoEIe+QWZkh76axWR+DoAAAZPoAAAssTSC6LPhgAAFxygAAPV+orLNIyw09Oiz4YAAB/auSQ56/WyTDmIw6AAAkAmCkOzIIc7ACAAA37aLEO9DDiyI6AAADEpHPhgAAFzKJBDnQQ6AAAFUohkOgAAMB6zWZoAABWSswQ5tZmgAAO9GgAALixl59oAACwmpYI4rPhLGjjc+GfPhCz4YAAD+5qUe4gvhYL4fAEYQvh0L4YyR4gvhmz4Yi+Ewvhf2QTK+AZkOdBDjlw6AAAQjpfaOpxDoAABxcoAACpeni+Gcb+v2joS+GAAAbhmkvhgm/jK+DiUO2L4dS+HZmGgAAARK75DnJv7vAAAL4YAADsFvfg5RN2iz4Zy+Fl1G9JDoAACd8W8e5lkOVOQYAADWGoAACiijUQ4CvhgAAL3auxDleCHvAA/L4YAABiFry+Hx6h7wAIAAB52oAAD9fs+U6AAAWmGavhhi4dY7qjEOOr4VbN7qvhgAAIbmgAAHMZgAADwWn5TlsQ6yvhC/3ps+GAAAn9qAAACvkc5m/L4TCQ5NkegAAGg6gAAAipggNoAABg6oAABltgpMaAAA917vEOiS4YAAAHprYM6AAAtd6AAALJpi82xr4aGo7K5m3r4cG+Eq8+GletCQ5RvhPl9gcQ6CssKJDitQ4G8+WJDum+GGnulz4ZAAAlJu+ZDuZ4aAAA2EqAAAX3p0f+llDv8Q4O8+BfDoAACZimyQ6ckOmfNnFo6AAAgB68+6OkADVhh0gA0jLIAAAM6rm+H/qBWb4bGaanPhfYocKQ4++2ixDntQ69EGqr4YAADD+jzo4mvhJy4YAADScgcQ6LsOgAABlGur4eNCHBSUgAACVygAAJPK074Znz6AAAY34NmmgAAOk+xpDo6+GSYWgAAKI6A74SASR2kOR74fDG6ikOB74TfN6AAALOYsiO46loAABeQYAAD05oGQ6hkOgAAG3a9BoaKyyAAAb3KvyOF19mwQ4JkOgAABZqLMbu8+EZkOgAACFuO/Pu8+HCvhVMIZD3qAAAG36WCOqDocI3YnmmOz4dS+FtkOnZDhmmFYl6gAALfR3ZDkLCGqvhgAAG+mgAAPLK7ZDtLCHvAAIL4SoLYhvhgAAOAWgAABkZK5DjGQ6GkOWFgTubqAAAFQZgfhgAAMuar8jobCG4FmRb4XtXRlvhTgtoAABo/oAAAjfh4LZvkOAn4XPW5Efhf5DgWsHvAAgAAHxmlJDoAACK/pa+G5rhK1upc+E3PhLIjoAAAK5oAADJeme+Hh++J9boAABzcqp+EafhdBDiy+EGShdIAB6Q5b0OixDoAAC+8Xp+EyB2gAAPK2gAABORen4Y4t4mfh5n4bB+E7Ph0OFpe+HKFBdIABS+FiMObn4TZe5EvhAb4d5+ExShdIAEaQ7+fhW64XSAAXvhTr4elKGmT6HlDqe+HFShNlDtF+G1ShEItjZQ6AAAkt6AAAu7F2UOHz4RJmFXg2HlDil+FpfhCmYTZQ6AAA3/6AAANvG5WBHlDoV+Fb++gAAKfmgAANDugAAIRWXL4d3C52UOgAANVy0rjtJ+ECvhgAADkZCZDkc+GAAAl0bAfhPQvoASTSfhhRDm1+Gdfh3X4XlgE7m6zBDoAABGxoAADccjR+ERZh3xRoAABUcv1Q72fhiWYbvqGF8IC34Zde5XVegAAJT+vJDum+GZvhrJoZ76aAAAfKYokOW34Vm+GnWBbBDk4w6bPhgAAIt+GHDhdQ6AAAYDrnfhGHDjc+G8sOQ34eEiEw3uN34dIyyAAAoMqAAAL2pb0OD34QO+HLTOvH4YAACJ8YAAB/Kc5w55i2QjDqW+FA/hDe5uD+FIyh/34Vu+Fg1egAAAAJcSjia+H/fhTm4c7ACAAAgKmXfh+Moe8ABvkOaP4YARaHPh2P4SFuGHPhL5Dij+HA5hdIAIAABPuoAACLyul+F8i+V7+oAADl8vy+GAAA8BZgSOgAAN5Z2W4ZFbqdfhIZDgq+HCssYH4ZgI6pUO1z4YlsG6H+O5usy+Hs/hnP4dz+G8/h6OYYqL7afhoH4QB+HmH+o8noAABYOoAABU5pc+HICOgAAKrygAAJ4Z3ijt1s6E5hq7uic+GgfhYH4Wr+FKfhgAACbWgAACCagAADD/gAAGhG2n4eJQ5qUOYH4YzQ6DkOen4cKyyAAAP9rJcOOzDlNsFKu62v4W8+Hgfhev4YsQ43PhRv4ZXQ7fN+HCbtBI6nEO7z4SWL72/hcSjis+E/vhbd7iH+E7PhgAAOJOnIXvPQ43PhPIXiC+FovhpK1vPQ6AAAz4FRsOVhDuH+HvaB89Dis+GIkmgAAMpGgAAAD67soYAADtwWwQ6DkO9X4eD+FUt+gAAM6KgAALepS4vp1+HYfhpeYe8ACAAAW3bPPhpQjjc+F8sOnnjvt+G6w2G34Wgw4B/ha34bt+EReOgAADvBgAAKrKi0tuQw7nkO1DDkj+F01OgAACUmgAAACprR5tBI6AAAWgqXS2Af4St+Fqt+wjDqW+GAAAWPKAAAddGAAAJdpIS+yTDoAADyOnuHYEiOCZDjV+HaMOgAAKK2Z/4bV+FeoukeeoAAChnuf+GI6BO5uvD+EP/hN/4cyRYnfh5bhoAACgdiy+FXHmzL4bN44U/hQtTjEo6rvhYpFoAAB2Hpd+FoFh7wAIAACb8Vd+Gb/h3/4YAAAupjN+HvPhKdDox+GAAA9GaAAAZCpMiOgAAOd+gAALd+1e4X/bohvhgAAKs2Zb4WX+EV/hzuwVAqH+7B+YBoQBFlvhnTDiQBHOcOBUju8+GAAA4/F7UONmIfPuGEAR5n4SG+GAAAEqZgfhmf4bqH6k6B7wANp+GAAAcCoBvhjv4ecw6AAApLF/MOJCoT6f7vAAhAESH+FPMOgAAL5uSAEWYWFB6GhAEYn+GQvhUL4clI42I+Mr4IQBEvkOgAAGPaBBDoAAB2xqiw4bt+MxlhmQ6AAABPIk/hgAANURAb4Tc+EBvhixDjoBEz0OgAACVGxv4ZABGoCOgAAM4qgAAALu5nhmB+GAAAsOaAAAhUqAfhgAADEqbLDmpQ6AAAvwmEARgAAN/RbBDnyw4SsOSVQTZi7mfhsrDs5+FXfhbBDnFo6MfhgAAA3OqVDmB+HRARjH4YAADPBlgBHYARgAAOgq27DiSp6Qd+dFFm6w6b/hgAALvRV34YAABhkYAABrbox+GAAAEopWEOXb4XPQ6AAAFQpgfhzn4bRI6MfhYAEYUBHyUWgAAEGagAADnmOQERmw5dvhzn4cb+GAAAV8qAAAAOk1/htn4YB+FHPhKv4YAACGym2w7eKhLsvqu7qEARV34Z7+HKfh6n4QO+Gglho5eoQBG6fhWwEQZ+Fq/hMLHtABH5vh8sdjN+GLsOoajjc+HMfhdv4cgBHdAR27DrIcFFkBdIAPr+E7PhA9DoAAA88oAAByciRw6vfhZ7Dsr+HvPhBgEcgBHoARW9DiH+F4fhgAAPQqeZDmjQ7vPhgAADK6yXDoAAD5St0w5FARyWruXiE7m6ewEc8BED0OP74YAABGBkC+FB/hPO3rqWF7ARMSjoAADZ8mB+Fz5Gjv4YAABc6gUQ4p0OgAAMHapv4T+Q7mvh9+DmRw4gARZv4T+Q5fARZ7DqlQ5cARL5Af8BGXS20AEbABFhEOgAAAbyYH4Xp+Ep0OPIEWABFMiOkAEYAAAScov+GFARWtQcKBH7ARGn4cy+EgK+M34Wr+GSgRWuLg0cHOwAOgEYAAClKa4o6AAA3hnfARzOgDN+EHEOgAAGTeKdDvh+FEfhlgEYAACBnnmQ6E8O+zXnHt7IO6Ib4TJ+GAAAO36AAAe/HOcOKdDgC7rMfhgAAJymzz4Vd+EkcOm/4RYBHz0OwXDvlH47HBIXRiRw6AAA9KbpsO3AEd++G0gROzDlVH4Hl6hAEYAABLxslw4vARKdDoAADv0YAACwXgIBEncOgAAKvRGv4W8eEpz6P74UwBEp0OzXDoAACCioAAAd0WB+GZvhYL4VrtY7MO/dQYWrZxgRyXDk57qJgRgAAKfRTnuhR+GAAADdEfARKAEZwBFgfhUYEdvt5p+6nYEZZ7oSARhVAcicERe6hAEU6BE3PhxoEe2Q5+ARgH4cmBHQSOQjDuZ+GAAArhk2EOgAAG560EjhmBFRgRqOzot+6166bAERZ+HqfheeroQBFx/hQgEQYBFqfhKdDgMBGAAAd6lUfh6bDtgBFz0OW9Dsb+GMfhgAACl6DYEfPQ4/vhNz4V2+HG/h3tDiABEz0OzH4YAACnuu2Q7egRgAAERy5zDpaBEq7OBugW6eF7gRc9Djc+EHgR+gEWp+HG/h7z4R8BH5gRd4EQ+BFz0OT4ES+BFvgRH4EWB+HfgRf4EQBBFAHexvfgCr7x3+7wAIx+EfARJn4UW+HQemMwEYuBFggRaNDgh6aAAA956AAAgeaAAA3GmusOaHDoAACdfoAABj0YAADUSuxmZgfhgAAH3RpxDhKw4Wx+dIAJABE9MOm/4QMQ6AAA8urOfhnP4ZPs6bPh1z4exmY8QR3sfieI6AAAN3KAAAXPqAAAEw6lvh2/4eaBH6/hXEEcgBGdMO3tDoAACQxvRQ7IhGkAEYAADZcoAACm1oAAAlWfcUaAAApuYaQR3+zgMBFqQRXEEYQBGAAAd/JAvhEkESyI5gfh0n4cb+FJgRW9Dp9+YZkOQAETlw4zfhO5wQUxZN0Bo2eJ/f6MgRnkEWjWFxnGTxLrTrYZkOAVDoAAARmfSSEo+6nX4eaEbxgRLwEcfU568O8utoAACPwSbw501h7wAIAAC0lt6+FXsmqb4d//Yw/hazFqkI6AAAZnJ1vhd3RocQ47MWK34apbrwfhAgERmw6YCORz4WhBGeyOdP4aGo6AAAgAZ5segAACjeNX4ZAADYdugAAP4JgAALKKgAAPfRgAAGeROZRis+EnPhYH4RcBGXPhqfDkIw6kARx2NoAACGVoAAB1bmdjbs/hn4EZ7I7x62gAAMlGtJDtsI7WUOdBDmtBHHCODDAd5w6AAAWJprQRhLoYz4HvAA7z4c8+HofhwZIcyqHOwARz4Rhw4XARXfDjz4HvAAFwEYmSHOwATIji8+HvPh7kEdpBGAAA8vKAAABPkUfhTf4YAAB28ab+FPMO5r4YAAB0qcOQ54fhgAAGtGgAAL9GAMEWb+H5kOW0EWtBHSQRhdlqMQ6AAA34plvhR0ETN+GjEOkAANDBHPPhZb4e5Q7LvhDydhjBGLgR+MEcb+Hj/heH4YAAB+5oX+F3dGMSjpSQ4FSOjH4YAAD6clpBH5kOnX4WtBGAAAM8rowRaAjoAACy8qcQ7mQRlz4ZVBF9MB1julzBGm/h2kEaUI6AAAZvHgwR3tDv9+GbPhs7XtpBHiUOEeNqb+F8COOkRuP+FT/hDh3sAZ7fVWGMEU4Q4CARvkEaMQ5iwRisEWg+CCnOVrAOZBHj/hSpjlpBG/QR07QZAADmQRgAAGV+gAAPrm56jjxx6MfhFsET9BGRB65kEdYI6WCO3gjoAADR8pm+HG/hALur9BE/P45kEYAADAMXABHCss474dt+EBqhzsAL9BGRB6WkEakI79/hfsEQYoABwRv6UFpBHafhwrLIAAAvqf3+F61WgAANOmBX4Xh+EuwRVsEbbBEOwRNr4ek2F0gAlsEbuIaLgRosEdpBEkBBJAeuZBH/fhib4TQEGC4GCsEZGqHCGABn4aMQ7G/h+AesrBGuUu3tDiC+HG/h+MEd7Q4vPhEnoe8ACdfhTIjv9+FgfhuMEcoACWwR8Yhp1+HYwRagAAnBHoAAYsET9BE91Wi4ERjBHe0Olz4UIw6JvhJhNhjBG7fhpxDi8BGMgRpMEX3BG0kOzz4VxBEvAREcEe1SGru6FP4Yx+FJCOgAAI+6/IETuBEpehijek3BHh/gq8EYsQ5ywRvnQWXBFicW3tDgSI7bEOnX4cb+GLgRA0EXDBH2TulsEXmIbe0OAVDkc+EWARrYEcy+Fgfhov4ZXEasXOk3oXSABXfht6joAADlfmcQ6AAAaZlzARJSbpR/7nG2t1rgjeG0f+XEESs+ElJujH/lpBFggR+v4XCBEp0OTIjt5w5ugRI3QaauBgfhSCEaghFzAR7kEVYQ6AAAAfolJuVrYdNv4LgRvv4VTeHMj+NN4XSACEAR0n4YAAAhGTZ+FM8W7z4T0w75gRq53vTBEFSOgAALg6GYEVd+FOEOgAADvxUCESyI4vPhNz4QEBGAAAbooUgR1z4d5w4piOOXDgZBEcIRITxo3oHn3BgAAOIJNz4YAABA+mBI7JgRUiETlIYzgR84ETYQ7s9GfzDg4T5Yl6AwEVYhFmfhC4EZwBHuQRFiEWpvrf/h7z4bYhFt6BtqWJABGb/hgAAAQJp5Dun+HfgR/4EUIk4UfhTEEfqBErPhQl1mB+GAAAmKmDQRJP4VvQ5yQRYH4YAADfPoAAD7fsKywWARLYEYAACq+vDO7ZV6ckEeBI6AAAFDGQSOnb4Yb+GEKOcSEf4w6AAA9gY3gRYH4e8+F8sO3oERYBHfARW9DnEhGAAApUaMSOwrLMeBGDARNSEW8+F1IREwEUyI4ZsOOEjjoBHuQRgAAMABgAAIphiSEbJBFEgRYjwZAACAAA+7GAAAVHFpIR7PRt5BH4gRx0EZUhHJgRIL4Ys+G+0OlSETc+GffmRvHu0hEdmetSEbyw7h+h7wADyBFaQRgAAAEJSYESohESSO/VDjc+HeKOVhDjUhE2EOwrLIAABwcjyBFEfhyUjjlvpv2uLEEYAACjRuO+HG/hDYERUBH5kO1gEbYBGDIRIb4YAABd0fB+GAAAA3KigRIQEVd+H9IRgyEYAABYrin+EOgRSSEZOBFMwRhAEZV+E7MOymfkuHr5/hr/DhUBHW8BgAAMt+dsEbihHrhBU+gc7ADjgRFQEYAADb8eDQ57IRHpPhgyENfh+v4UD+GAAAm348gRTIjkR+FgfheZDoAADsRuHeFypGZQEZUBHCssdUjox+GPIRgAAPxGacEWB+FOgRxv4YAABi8ox+GAAAufKAAAbI5aQRW9Dl2+E4AR+ZDkgBFJgRPKjs4BHegRw0joAACzKjc+GXIRHKEcb+ESSOskEYAACzcvKhEGoRYH4YAAASTtIywZkOOAEa8hGILuixDnWBF7V0ZKEeUBEfqhoqHnEhFfqhqkenH+FdvhDWXld+F/AR+gESH+Fh/h374a+BGAAA/fLe0OAgEY7+GJ3h2f4TwBFeWeDX4aQBEp3hfqEWMBHhARQP4dJBF/qhzsACH+FzQR12fnFgbeoRbz4XH+HMfhF31t+BH3PhOzDpneF0gAIf4blZ6AAAQWZ4fhMgEXEo7bIRv6RiUGFHm+tn4UkhGAAAWsqAAARdocyOw/4ejBHcyOX8EQlBG+dBW9DmpQ4Kvh3LDh2hEdfhf8Ef1BEAIRYOXnSACP8O6r4QVBGP6Bo6Ecu+EKuuorLIAADGFg0MFcwR2cpvjBEib2/34UN+H7BhvTLs7ADQ/hxr4ab+FRvhY8EVM86XPhpv4bLBFbPhDwYUABFngR1floAAB0eoAACVSnOhGH3Wpv4dJb7mgRUb4YAAAcKoAAAiaRQg6nQRQBgYAADX+oAADuxuDBGAAA6Er7PhBlvsFJRqwRf34SoACbPhq6ERC85rwR4NDsoABgYRf34YB+FQPWV6EZAqaAAAY5E7Phngnv3+He0OgAAEAJt4ESL+EPvhw7wTUbr9/hdz4Y8+EqahV7+mj+HAAAhP4bAYGbyOLz4QuBGUiBB8jpRhE2EOU94ToW6eIRHz4VQOF0gAFP4St+HSoeav4TGQ6AAAD55qru7ZDi/I7qxBQZxhyhG/yOog4X2u6eKmgmEcGXZcYR5UZvyyyAAA03IkqmMn4YAAAC6joOFMfhYH4XR+Gm/hYmEa6856fhEmEQUg5SYRgAALN+1wEep+HG/hgAAJXR/VDrJBFo0OL5DiohF5kOgAACgJD7ISS8aCYR2wjp0w5HPhxwjsb+EivhNb4QIBE3gRWkEf9+Ek/hQAESpI6AAAhdq3wRan4auGGiYR7KETGQ52YRDmEU5hEuYRxv4VGw5yQRW9DknkYU/hgAABXGgAAP56lSEXh+GBoRnTDjEo6AAAU8qMfhJKpox+FzfhMn4YAACbXmB+Gm/haAjmB+FA/hIWEQdBHGfB1juq4o4ivhJKpoAADJ8clw6+QRrIEWB+F3xBCWoV+u5AARrmEXphFqfhV34Q0hFnsOW9DsiEY2/hen4fFhEkgR9xRt7Q74gRlyEf1Q5b0OokEfmQ47MON94e8ABAARfmERMBH1ARgAAPN+/VDp+BHeYRgAABwWKdDlvQ5AARM74VYQ7uQR9QEYAACgaeEBHIhGaHDoAADqyoqcYp0OAgEdgBGAAA+TbskOAQEXa+FqfhYH4fZBFugRvSEZ9+aAAAZLEIsOEqEZABEkcOKAEVqBFdgRUiQUABGAAAzsrkkOmxDox+Ek/hVyjnp+FXfhgAAK4JgAAFX6dyjuyIDFgRnTDoAACD0fcUbG/h/LLIAAAwAd2Q4zvhxv4cr+H9UOIQEVpBEkcOgAAOvKHsEZ2+H5kOFIEbJBFTYR3Xzj4fp2/hgAAPPWCoEd4o4hARqVDmCo5JCOymEZxhHDYRgAANreRz4SnQ6+0Oav4Z1hHfARRUjti94sGB7wAEmBGdfhKf4YmI6+QRen4d7Q7YoRZ9vjyo4FSOYjDnZQ4TQRav4ST+ELYRFP4ab+FAARyYEYAACjclvQ5p8OJP4alQ6m/hnmEau+F+YReH4dBI5AvhQAEWr+EcIRij4aIMZ6fheuES366AAARDHW4RPIEXTyHzOeyAEX5hGWARQAEWthHJgRGMEciEZG/h9xRtMhHkoR+v4R0o6zYRbUEflqGqPhArHqv+F3wR6j4WfT4ygRwrLMy+Hy4RvijiVqHtamRaEXEo7R/hRMYRa3rQfhGE3u8ABq4RJz4Sf+HX/htE4e8ADfARPqETYfb9/h3sETG97csO/L4cl+HoM+9ajh2Xo+oRnWEXH+Eh/hRIEcgG4/vhQaEZiBEugRBigDABGAAAeRqLEOIf4T++FlgRvJDhwhH2Ph4y/n6hE8ThUH1gPhHiThzsACC+Hgvh3z4TC+FlyB9pfqJOFcueI+EXSACqARSL4e38Ge/OzH4c5+GAAA44l5kOgKEXYBHG/hKiEXyw52vhBL4eZ4aTgRKAESRw6dMOgAAIORv2EWRFZ7V0wrLJX+EEvhm+EToBFgfhTaEQNqEaV6jsEfWUbQIRoSZtAhHfH6t6jja+GO4G2IEY4V6Z4RIT4XSACtARcn1oAABn0du+GpIRgAAIXRlSEap9aAAA3AZgERmzNhahERdOGMEWR+FZTh2cFhahHH4RBZDtvyF0gAMr4SVOGB26Sn4Xb+HvZmnL4ST+EAvhlGjscm4k/hqgEcwQ7qAR86Qc7AAk/hV34cTAHwVG7ZDmC+HddwC+EVC+FNxhYAoU+X6pPh7wAD++Ek/h89Djsw7TThkVunH+HzThqALpgXo/4RKPug1BEq/h48YbalhFvhUBHqs+HD/hM34dc+FzwRpv4Ys+E3Ph6QEdwBHSMsq6EYAAAziQ9OGYEedIANZo4FPhgAAIt5A/LnIBFLjWgAAEV+5BHoAACRPiYRHnahdIAIAADUvhYRHmwBtqWIAAC7IVYRE1u2gAAA4OHJ9vYRFy4OgAAErpM5bvYRGAAA/34shufhEV7AGAAAI3k+aOgAAJpWA03oAAAnyoAAA7KfU+FuAhzT4c7ADMfh3P4QYBEhARLQEVeBEzARXb4TFo7KZB8oxugBFMIRF31tuw54KWIf4Z7Q5oIRKv4Z7Q7YfhGv4VWv7ZGBKaEXEo6FERcwEdmBFxERdIADs+HG/ht5DlKywrPh/LLM1o72s+d0ER1+FrQRi4EdihHOfhvWjjd062pY36EeDBEBARCGEdoKFezhCWQXSABgSOeZDkkI4YcOgAAJJybX4bx7bzERcDdgmQ5BwRmxDiSw6zaOgAAILKgAALaK5KEZYI6AAAPApBee+v4W1+GAAAhTapUOnTDnmQ5gfhqxEYAAAbyveQ6GHu1CYdsCEDBaiHvh1kHmChUJhsfg4ZkOHKgVwmEzGmrxEYAABo6gBhFilezsAMkw4YEO52jkdBHQSOGBDmwQ5PPhDBDoAADWrpT+H7Gmnz4eJQ5tZms5Dpefbe0OLGjrSBEIkRQuoXSABIkR8ARiiRFzkOtagbAuF0gAjCERmQ45cOgAACY6KwjqspZ0EONz4U4Q5EvhhJEY8K5kkRThDhmQ5UkRUSYc7ACMIR4lDkSRErCO2ZhoAABUSiy+G7Hus5DoAADEVjf+EizegAAOqaeZDryRFl1GgAAGLed4joAADyGQmQ5vHu4r4ZKRFtmGhRDsKRGB6hYpEYAAA32l/hH5N2YpEdkQ6AAAuRbI6OgAAGfaExDieoGAAA2mHZEO2wjoAADA8ToBEHQRer4TK+CGkRJpEYAADxruaRFwJWNaFmKRFMkO8n4bBCF48s1r4WIM6HEOgAALA6gAAFL5HOZoAABRCRcQ4KkR/aFoAADNSTCQ7U66gAAMjqMJDgDNbhvhgAACxqcgNvOQ4xkRtgzhyQ4JkRY5XtZQ6AAAtBkakRgAAANOyuZmGRGAAAe3nCQuKb4bGRHAoBzsAAcQ6AAA0eqnwRaqJgcQ4ysshp7nahGAAAMAxcfhQTiDOQ5fERgAALAMlb4XpC60kOgAAFZ+VZERxU7vAAgAAN9pgAAGaBlZESGiaJfhSpEV2RHrb+epDreV7vAAP34fHmZ7UO8Z7oAACDSqO+Eed62pEZO+FIaBSpDicuHyoBG74ea+GAAAK3KC6OgAAD56+74eNfaAAABulGkO3pEZJhanEOwrLCeRG0aBzsAAeRF2kOF5EefN4Fd6s5ETe+FcbmA5pu8AAdkRTpEeOpaAAAu6GAAAyhHvvhb5EbKsHOwA8wEeyQ6/kR14oYAAApVoAAASFjGQ6AAAjF4zQuIEocyuElEGUJEYUQ6ykRZAtrEbpQkR4WFl8RH0kRBC3nSAAMEO10EZnNaAAAPBuAAA8PuQAAsjLDh+GoShWwPvxV4VphLj+jOQ7tkOgAAPZKx6EQrv7OwAcv4YAAC+KjGQ5gfh7ZDoAACDKiuQ4bkOfIEZBRGToB9ZEU7oiNkRTgtqW+GAAA016AAAlk7fvhgAACX+gAACK+Hgtid+GiURklEXPW4k/hgAAMQJ2RDmB+GAAAKsq8YR/5DoAAD2GZSQ5qkOzpEbJKHvAAdqEWxRGAAA1XrWVegAAHn6RlEcKywGfhD6YdAbomfhgAAJDxyXDkZREyB2gAAPAOgAAL2RRlEY4t52URUJEZRQ48pWolEbeRF6C+NlDqcQ7X8O8Dbv5RFEvhqDbh5Q5HkRvlEZvCG2pYYVETeRE+kREX4XjyweUOZ5ETF+HWUOiVEfF+FpB2B8jil+FxC+hItpvI4ZURY+/i+sEHyOAVDoAACS8blYGbyOhVEVv76AAA9KqAAAAdGP/hg1XitKHXg+F8bqNoH7Shyy3hNoEgLGU2gblM4q0ezGwWrR5wH+8Ler/G5PfhW1TspsE7VOENdvgY5PFBqCbmDV7I/hRCbjzXpXVO+2gXDV5U/hXIdnzYH7BeAtgSjmE0umegfvluH0JuONXoiF7e0e+NXnqWaxH+RNXn7+HYR2n/4U8w4oURCsoXQY5g1Oeods4YG8GOw2po6HYi1ema3tfQ5hHmv2gRuL6q1e/2gSRaG6w2RNTuKi6uJuEOgXTU5Q6BJ9HoeiEWGOHwfuzU4P0euEvmzXrc1ODYXkDRF/0ejEvgLU6vXhTvdsAx6TheAVobiH6AAACAyAAAPASAAA8H+QAAgAAGbRjEjpAABI0RkAAPOQ4EARcLDoAAD5ymB+FYURgAAIgMPIEV6Q4YcOTIjvtRGAAARiqAAAUhpQkRgAAHOqRQEcK/Yu7BCQ+mKf5OS+ctTnPuG1PuJc+iToHGMeec+uToGuOBkPevOQ6AAARGpaQRgAAPTKcSjoAABxqoAAB6/xCRGAAAyCoC0R9QEQzRGOh+1OgU4WFGbe1xesYBEXJubioVcm6ENenioV/uFfbGdHfnnXo7AR5XTgRf421OPOgR6j4O1OuankiBHrGOruxsji7ZHhSV/tOXqm1Bu8dq7PqZUo1SoebyG1Kh0rHpKzbRgRFxjgsqFXGOZivjcY5GOhl3TjsqGb1Bn3Bv0SGz1OVN/gCqENlW9ToUboGx3+Ysfss6FmseDtAfmeHJY20D/i4/rNdGsKoYtgbFnGBJjhIc5O6Bw54eGx47MWbugcHw4WPhrwnhDj6O1h+C+n+eHaHeAF4QyqF0gAUJEVhRHB6eQpjpheGxteGsEXjU66tB2dEcLBFc5uko7udVZZuh3HHlNeEGce6pjrdeENwR4ubtnoEQ9GL14WfBE+0e5aob50H2TuP14fWnr7UhFPFlfEbY0RWlEYAAAIGc5RFM8WNNEW8+H1EOKJDoAABmqsb+GLUOOpDoAABOqvUBGr0RCIETp/516BTn/lW5aG5uCtrvQkaOIRQjDnABGEKOgAAIAZNhDiEBGAAAQ/KAAA4u6AAAKKo3Phxv4SchHe0OOUhvtRFQkR7NIdsI7S4RFNEb1Q5YURgAAMDm7lDs5w6AAA+HKAAAIxY8gRgAAKBqbFEcb+GAAAZHKAAAKHLY0ReNEXaREqJGa1zt3oHs9BwZjpuqG1V6ofFjuqFD6BCnYQHeHvJOSZjoAyEqNOQ1eu3c7T6Bg13nysZcoRQd4b9d4mH6DqTivoGx3hbqTg1l6J3h0TToBqEb/+YGoemhEZ3hYvYXIJ7gahud4alP6YahfZjuAMaUuuSPRgQT723ez6TtRqHLWehd4R1EFsah66Ed/oH2uuR94fNU4N9htgnt0nqXT+WuBga05AGBvd4R4AF016/d4ZAYFKahuGEUmY6ZABNuXlQ9bXuulIgfRhEx3hJ7wSFGb8suK94TKIHIN6iwAaFqHUWOJFjkkJ473hUbzou0773hm94Y3bZCPei2BqfeGX3hWxwVu06uFOG7Tnrb5fru/w4cUJ415OpQnowYH7NGzBgTXT7E8hqyQdz8HhCe3BgSo+GnOeaj4Vc54GPh8eESIYEUFeCpbmnhFw6B5MYeCNZI12VMYfIYF2PhxE3uoYGOPhrMYSjME87u3BXtXIEzL+2hgbakHE9GehgWXyGDah/j4R7BaBPhjuBsE+E5pBk2oSm56bM2M2ocgRGz/O4CehlY7zahjtEefyFJPhX24ScfZh6GjInvxo6bahO8FodREdlu4igV2W57xhE3Tm4YbkCh7+7qEYHklOZT4UN9ZDWOLbtlU+EAHuc+BkAe7xGBdT4ZTOFslOuRgX0oGrWOH8YUqJ5yzhP2oXgsF/ahzpTg6z6A6hT6ev0+HBfeegoVLFYGChUZTsuv7GiezJXqXNDwe+TP1posFUqBtCYXSACvERNILt7Q6AAAKL6HEOvzEfjqE/MRGZDj8REHPhgJEWc+F0gAgAAOA6olEXahGgkRgAACPegAALDq4JEZMxEwkRcJEbrUaokRRxge8ADe0OWTcLSBGAAATIpgQRnz4cfg7ovhxagTrgbe0OzmjFiREQvhJLEYyR7e0OhxDliREp/hxLEYAAD8PriRHvAAWL4USRFfaONJEZSRGPCupxDoAAA9pk4Q7X8O6FEdUsF4kRaXDti+HoUR7JEZyRGBVuPJEXyRFcLhJ+DhmQ6BkReJpiKREQkRQr4UUQ6ivhgAAP92NRDsqRGqkRbF9kqxEKsR8KlouRF6kRr5TguYaGkRNAzjmRETEOldjpqRFAURqCVm6RG2ihdIAJ6RGxURTPns7AC+kRgAAMe+Ukxm6+FBkRggNtZQ6AAAi3YKTG4b4amRFxkREb4f6xFjlemZEX6xHK5mOZEaGxFKQhyb4RcQ6ZQRdkxqWRHlkRU0bpWRHQ0ODS4Vr7qLEOGZDuUM6aQuR64MFMaQAAgAAHa2rZEdW+EvkRgAANfaSfNjlw6AAANEEhomcWjoAAA9HnyQ4CkOQpDjORF/6hzsAOKQ6N82S5ETzo5KkOIpEYAAAfkScuGAAAXP/zvh65Eeu+HtsRgujuORH2A+7wAI+RHmkGRpDoAAAuCqeRFnvhlaJHaQ4TsR8Mbs6Q6PkRJBoe8ACAAAfT4+kO4+QV+RGBkOAFEfQaFgUR3FEdX54JkOgAAJb6GBDoAADjJu+hEWaB7wAPmQ68sRaLEU+YE/Fw0H4RyuHvAA7ZEV8RFMrhf5gSz8RoUROujlXREYfh0BukRRFCwh/2ES+w5qURJH4VixF1ph85DoAACYVsuQ4Y32O7EWGsHOwAXFEVBRHwFBOGlkiRF7V0lFEQJRGCURclEWGuF0gAJ34UhxHxrhMj+mpRHifhmkru8ABaUR5r4cMQ56URdqEYAADjMYAACZpsZRG8g+SruiZREkcRhlERZRGGfh9QtiHv47m6VHERVRFsEOXlEYpYHOwALlEVRxGOLe2bDgUQ5McRLHER4t50gAEVEaO3Yr963pEdfw5iMO8Dbt6RFEvhonEQVK7ekR47EZ5pbekRM7EQxmEJURA74TeuGmT6/lEQO+F8ZhNlDjl+EZfhk0rh5Q6acRmRZsVpb5fhRVEVpmFhUOJX4YZxFYIhkeeoAABFVoAABpkdVRGD6OZf4dK45aURmpEeZxFAfht/vlpRGFEOTnEUN+ET6OzBDnqw7jfhIHEY1RHf++A1DhxxGLfhe1dIFxGrfhwDhstQ5CwRHVEVdV77fhEXEcd+FOMOgAAIG+GHDhFxEotGqcjocQ4p/hD34QpuFIW60LEYcQ6vfhvLEd9+E/LezsAKOQ6AAA9PEKURycjnmLZCURJXEQ3uYVcRSMoUVxGakR9+FsnI52wRmpEUVxFjUR7wAIAABpyej+GRyudIAC+Q4tcROP4WIw5tcRlNDgT+HdcRhzbiT+GAAAPm6U/heyIe8ABjsRgAACDWgAALW+6bDszQ6AAA+qos/h4xuqCREKvhgAAG3mgAAOaKXP4Tz+E4YRnUNgWaGRW6JlEWtxHrcRBn4dhhFTN+OQ+iZRGeURoJEbKRHFmhPh+vL+F2oRyv4aJRFQohoJEVCRHgfholEd7Q52oRZv4SZRGW/h1v4czQ7QhezaaJAADCssgAAJHagAALsRIXES7+GB26R7Ec9xFgfhr3EVvQ76/hdqEWuaHYR2Af4Y+xG8KuotESn+FgURbd7qLRFfERUf4TnM6EsRKf4TyF6zkOjLEcfg4ssRPBjoSxG3IRaPEe9oGEsRgAAF0OiJJgtxHuyhT9DmX+EVcRVLfoAAA7qS/Q5Li+R7EZ+xH3URI9gbaliAAATsYMEObf4etxG8sOnf4XtQ6YMGqDDq3mHOwA0Ejv8I6LUOA/4eKi4YEOgAAHWqY/4RP+EHF6TXEXTU540RC/4cv+ElKh4vESFxHr/h7wAEJRFCMOalEYAxGAAADtH7/hv1EZ5uTJMOgAAEXhgAAKp6WeEdVRGc1OgAAF+22eEZA4GAAAEDpcqO1VEWRL4gCOzNDk7xHVUR7/4U4w5f/hP/4TW4YckRs3jqNxFC1OvjDnEo5BMOoTDhABGAAAmAnQsRgDEfABG9UOWSSIKBGk0R9NEdlaHOwA2NEUJRH08RycjoTw4YVByp/ih0Yp8RglEWnxEFSOXHESvRFx7B2NEUxxHnMOXAEWBRFrgRPVoepSZpcOAb4SXxGXMOA4EbzRFaFhsRutjRGAAAHPFxKO8gEUSBHiuIGfESJ27HJu2NEbOQ7UsRRPEcrRHqUm2NEboBEkcRRgEf0Y6mT6GZDoAADNCiT+HskOgAAHIJyioZAABb4Re1dIAABc8t4BGBARwQEdjRGAAAYW5McRKiEfzxExAR8nRu4qGENeTHEbKw5fER3JEdCxHJARtyEWB+F78R6AEUyI6AAAPn6AAAMX4M0REHfhlt5usOSlEdCxFVARgAANMhDQEVYQ68sR0jLLyI6EsRYH4fexGAAATAnbEOxv4egBEhMORTDgjWbbCOvQEX0hGAAAmq640RGQEX/xHACRoAkSAxHM8RLlEYB+F2UOV9Ef9hGdMOKdDnaRFMaurOgXjyzY0RvLEfr+FUcRdqET4o6a4hJ9btjREpCOJAkaRxEGfh5AkdwcGru6kfEYAxHQsRSZAeKm69UOXxEYuw52oRfIEVRxFv0RCfEfcBEm0Rucvh2Xr6/hXxEcBRHCsscv4d8BFccRo/Ea3xFgURL7DugBGpUOEgkQUQ4kcR+9ESsY6FKhWJelQJH6/hYFEaUI5wsOXHEd2BGZHhRIBlQJEEgRRIEa27rC0RyXDjoJE9MOKAEcNxGliOgAAA6uYEjmb+HiCRLIEWyBFPUWo/EZdLbh8R0fEWEQ7MfhPAkeAJEYcO27DrbRGjl6lHEaRxEckRICvp4o73AR9tETJw52ARgAAK7JHijhTxHM6ABxDvQw4p0O37EWpREk/hzrDhaBEMEhyDuoAABJNqcRHnERapDoAAD3sUpRHN4R6AAIAABR0d5w7Y0RhLEf6BGzd+dSobWjYhgRgAAC/GYH4WBRHtEOJZEWuBEvX+teutjRHxgRmPESnQ6AAA01EpgRaXDidw6FcOPWzl7RHOwAYFEbPxEokOKdDp0w7OcO+OEWB+HNcOgAAFw6gAAB/aFPEdFj6QAAVYEdCeGSj2LQkXWBHwBGbQkfr+FOe6YFEalQ7g8Ougkcm6YCae85DmyBHOaM9fEUicEhK+qXRtjRElcRKf4acqFIsGq/EVOBHtCRM4EZfRHdCRhXDjlw4dKOFfEfo2ba6B7wANjRF2URmvEdxWEfCRBAETjxHV8RVHESnQ6AAAp0H6/h4PDumw738Rlgkcb+HtCR0LEWBRGEsRv/EbyI7e0OXpDjPQ4kcRJHDoAxGAAAXgmYQRMToZx4ElCRc9Din+EAiRpHEcb+E9MOYH4bjRGAAAB2oU8RUJETMJFDCRHQkTCJGgURcIkX/xGIiRyIkcRxGoiRGIkRihEiNB2Z4evU50gAFX4YAADusYAABh8ox+ELcRaNDnFWHoCRkyEUicZhnBywRih6ZrBGOKvk+PZ4q+7WtoCI6owRsFeuHxE9MOgSEYx+GeUR4kEbEJEsiOpd5mB+E2CRqMETD7oniOgAAIgKgAAOz6ykEfrxGMfhzPEfr+FyiRzsEd7Q5SoR9FDljGbh8RxkEYAAD6WYqcY8iRQAkeDQ6owR/c+kCJFmiRgIjnAxFy/h9kEXCw6HEO1z4WB+FaUR4PDlCJGlCOv4jryxH6iRXkEZMhHjeB9cfrucFjeMZv4aFBERQRJOngPQEY1hEoRhmQ6MSOgAACxR+okZXQ4FnhavDmCREQ2WrQkVjxEp0RO5unEI5qUOmUEcWcYZQRQSdoAABGVmGRH5QRQbEdzp61cRWdEXexFfER8XJhFxE98GIXEapbqdMOClEffxH5kOoJEU1BF5seIpEd1BE3nIA0EW2xGAAAHiY5lGFPEZgI4YEOk0ERmRHt4RUrqFfHBp8ODPEcX35LQRgAAGcmZ2NmtxEnsReC+rSQ6LsOO0EXtBGeyOeAkStm4TYGx0EadBEYtB5dEUJsSQAAb7ETdBFUuhLPxKCREcCRF4kfXraLsOWZEbXRG4XGQIkR9BGQkRbz4VCJFb0O0MEYAADPZi+w6/QRXrEX9BGAAAf3aAAAVPGgwRcgEeEJGIwReZDluJEnsRIZLjmRGAAAUybe0O7ZETOQ5HQROZEc/w6AAA2P+m/h34kQhJEzkOP/DjyqHtGMcEkXAxHfiRPIkfexHG/hu34czQ7/YR9XEfFybiIRgAAGVynTDj2JFsEOa0EVvQ7K/hnb4WpQ6AAAm2mwSRPIkXahERcRrroe8ABsSR/4kWLBGjHW3tDkVxFcSRrdEaJXraQRgAAM+xgAANSB4QkZ3BG9B6ncEfqqHoNw3tDvVxFK8R9dEe3ExvdGj8EeZEbKwRT8EfVxGISRSpjpPBFHRGnTDh7BFZwRBVEc/hFfdGkvEb+JGLwRknHp0w4ZsOuNEd7BGS8RqEkWf4GJwRi8EXmIadMOKQjmHBE5kRLokZLxEenOekkSVEadMOaAjpLxHG/hQCEckHouSR1pDpLxHscOlvJkZJHmSRVsEQZJGWCORkkc/hElwR7wAO/BEqiGckkfYABwMRbEkQvBFJ1WyUkeh0EkB6PIkUVxGAAA5caWCOeZESGqHBiGTcEUSvqdMOBn4YAAAUyTmRGoSRHcEcmqHVz2nTDrOQ7oSRnTDoRJErCO/dEUKvpHsRTIjkVxFgfhlUkdsI7eSRegep0w5HQRGBDo5hEAu66UkXmIZwMRcEkd7Q7t4RQjDpVJE7MOJhNuNJHbwRmPEWb+H4SRmEkb8I6AAA/VFwARKiETMJEzSRdvdqNxEBcRpHEW9eFRwRhsESQHpvcRyXDocQ7JSOeXoaXBGLwRNUkWqIafwR2xDqCRFwMR/8EV+JGAIRTkkRKQYgIRoJEST+GAcR6UjipI4ckRCiEePREkIR3TDqlQ68iOgDEesQ6z8RLAkXq2FznABrYZAACAiOcwkU8bY8iRC3EfkJEviRRQkVQhGQAAwokeaJEYcOuxEVCJGXCRFN4dKoA30RHCEf3cFKcBg9wSedYz0RlJDvPRFM8WUJET0w5DCRYiEQzBGdMOgAAOhqhXDtCxFOEO0YjgohGMEOKf4caRFmMOYH4XzBFH0RfWds7ACWCRgAAPTJgAACVRxv4bTJGWIRQjDnZRE4yRgPoUCJEzgRdlEYahHD8RUPDsGJFCyRHiEWEQ5x8R7NIfr+FYUR0LEYEhGX8RbFERYBEGfhzWjoUGaa0uzsAPr+H8yRgAAOBBKiEduI4VsRQl1tCxEpCOySEf+o7pSOgAACDJOzDq7eHvAA+okdCxGAAAnNGQSOgAAKphhCjm/REsURrFEfzxGoiRXWEVvQ78yRTEju0hFAiRfIEWxREkcOEwEbChFQiRQyEYAAB2hvmQ76iRYH4VMhHrBmbYjki8bQiR4lDr+hGEcRgAAFBRs5Dq8RGXCRHHYWV6DUoRoYQTVXpsUR/PEUVI6GPB7vHsY8Hv0RpyEe0JGjYROXDlyJFqURGskaxRFvIRWJPrivZKURRb4Vlg52ARgAAKKm85Du4o6AAAKybjvhbFEWB+EA8RyTDmqI7xCROZDigBHxyRNwkUzBHY0RT9DrvxG8sOGKEVk8FypGlKjkpRHW8Br/EcMQ6PqhCQke2Q5KURJn4S6JEFyRod4XysbQsR+v4SVxENfhgAAGa+gAAEzWalEWB+EekRgAAIYxfOEQTvqv8ezsAKvJHQsRwrLIAADtpjyBGGyRevEYbxFgfhJXERKhE8gRxqEfCJFFcR+v4WxREp0OqAjmhw6ryRaXDnyBFFcRfskY0BEjkOF8kf1Q4VfhArDsb+EIMREkjnqJGdMOD/ETApHtkOgAAGfKOXDr1Q4WoRVYEUQMF0gAdqEeZ4bgfhG8kQbxH7/h9DEToW78yRbqETubo48RgAADYegAAPkeDWXtCxFccRotERTxGdMO+IESYJEzvhZPEZnm7OwAOPEVwpFeWeNAEfV+GLiRKd4SwpGVURQikXvoHvAALCkYuJHp3hJ6RgfJFccROPEXyBG5oR7ZDoAAACymQN6t8RuVnrchEt8RcSjpcJFwZm/DEfneHOwAgAAI2pFVEWIw6AAAvCHOkRSGRnBJHtoRt0kXmJHG9hX34YB+HrcRX8EXdJEPSRxUQY/w4RsRk6Ee8AAayO6LIZ8JQ8ARAQgWxJFLoRj0kfH2FFcRa6EZSyEboRdIADVxHAAAfrEflJGFSR9LTgVxGFcRhxDsAADt4RgHEYAAAmPvhk7DcRG9DjYJFFMOoYkeDw7V+WgAAMPK9FDvHJGAAAVVEUKOvGoXSAB3oRfQgcTXoDQR4b4YAAD6YYuJGLymJ7EUyJbhCRgAACduH6EYAAD4CeEJEiah4/4UVxHbCOhxDoEpGoMRcuXnTXp6sO4NDl0pEHEOPSkXJ9aFKRkCplZxGeCe+34Sn+EivharERCRF0YR+jEZ8JSS8RKf4aCREqKRRGEZHHptcRpGES1xEk/hU4kfQJEwDhLCphpQ4ZkOwAAHS+EMEON9EZSIEaUORpDsAAB2kOjBDqcpFGhhKUet/+EoURzGEe8ACjcRIXEdKh4+KOYHETIMa8YRYHEY2yEkvGgAAMx6lSkWveEiYRP6Vn8pHBl2VHEWBxFi9WVHEWMpGbPWapDrlhGKYR8REcphEQURpv4cCpGuvOHgkaRxFgqRrwAQSBEoqRhlEYUpHe0OiGjlchHEKO5mEVZhGeMRmZdvYW5W142wjhgQ4ivhjmESK+EFsRaXDs7BFFcRJP4cHxEqSOgAAJfaZX4WB+EhcR7cQcuoZ/KRZKkRSpFOYR1KkUCJH6iRnkEScqaxYRgAAMd6L7DqlhEZYRWWEQNQ7QqRpv4ZchHQqRX8kcnI5cqRZWEYKAHgxmlWESSqbtCRzfEclw4NYRNnwYExGtNOwfEZipFpcO0LEV1hG8sRvWEczQ5UcRv3EQTGaCxmOKkVchFb0OKiEfexHCssk2EcExEs/EVHEfNhGAAAyb7LYRzKkR0JGGKRyIRoUpE/vh9xRidw7B8RwIkRMBGAAAuXbskOhskY9hEvsOTIjsDJGffmfykc6JHg0OEqEXAxEgSOBokZYI4TARgAAEI25OEdjgaCvWwfEf9hFxaO5JDox+FXKONAkYZRHQsRo3ES+w5FvhyDtoAAARxoAABQ1sb+H3FGdWjjLxE8iR+SkSgBFocO2OESEBHdMOBOER7BFgfh9qkeExF0gAVOEb1Q5UcRPijvThGAAAFs6CUR8KkR3JGdMOgAAJfeGBDinQ6AMR3wEWnJG9qR3ijrfJFpahCD4XSADtCRR7ESLhE5cOnijrOpFS4RqAjjLhF2UOoJEZz+GiURjQESNxFvPhwAAMHxGz8RKdDqW+H68RgAAKMKW9DuQhFCMOG9DnPQ5UcRuuEcHxFQ8R374S+w6AAAskYzgRwfEXaJGiURZuEVlMGxMRKUelRxH0qRIfETly6AAA+IaAAAuNEO4Rg4VgsJGYqRgGkUypFlfhmkEZV+G3IRGZEYAADShsiEYw8RUE4YHboa8Re0kfBOFF16/gkYZRHHcROykbHhGlL+8sgZGoYSKRcSjpjxHJ4RVVDqqxHETh1juhepGgkRolEVbxE3/hKpbtCBFccRNh9pLxFF4R1j4e8ADrcRgAAMmpZeEcdMG7sGeZDryxFaCRXHEWB+GSCRxHEYAxH+yRrfEXXhGJgm8ARmBRHtIRALuoAxHt4RkmkWBRGZvhveEYUxF1/BrfEaeQ6D4R0wnhppECThKb3rOQ4saOBPESyxFT4RdfwUX8HsM+7j4doib48RzLEfjMFzL+xyEd7JEk/hbckVWEFqUO9+DkvxFBOIYH4ZPJHTyRj9DrPJFJoRlGwaAYi34RYH4YAAAfbozxEmKR5r4aKyyAAAB16P4RZ6jja+HIp6r+EXbgbv4RKaQZ/hFayWLGkdi7bbKRpeHoSxG/qOAGjuBo6YieYGjnARG0URhkVnBJFYsRJTPh5pHwERGBEe8AAqkR2BEaOXpEcRWGkay+Ek/h0rETuX6WaRhPEcQRFelGJBhkiRHddwtIESwJHdThOruvVpFMsRLBEUKv4mu2JP4YSxHl8RPcYe8ACU8RAhERMxFjcR/setspG7KROT4RIRF5kOkrvjq7re0Oi/4RTxEy8ROXDqJRGvER8hETnJEb0OGQEd0pGFcRwH4bMxHaERRSkZ4ub6ERQ5bs7ACGERO0VoAACgvmYREXaRlhETzI5OERYM4YAACzobdpGCie7wAK4RFPFed2kZ4REzlud2kYAAAFviyG7faRXsAYAADDeT5o6AAAGlYDTegAAKFJMREQJkHuAhSZ+tz+EkcRm/EQkhHoCRwrLHSJG8iOhzEZ/XaoARaAESgBFMiOOREb+kZ5ERKhpq3xGe0OgAAPIKgAAL6a2WjkRREWZBOOkVURGE6RgIjmlhGXIRC7vj8REp0OlFESnQ6AAAobE1qRbREfMubOwAGBDr1Q5rQRlKjhCRFfERgAAOQqfREVqJ50gALSkeEJGGyRYykaMREg6hQgrk4Q5gSO+ZDmB+FJCOgAAEBRiFEeT9YK6RX1joAAAc9gUJFSkRIz4WjUZVsRW03mq3oZCR+v4ZKRFgfhqukVKRFPLmd3LHBYyDgkoRsHJpC3EkKeWtB8A3ikAjRBtxCMGYFukb+vBwt4bZWLOZiexAylgCVFBk3smIQD//D+palCkEdsA4K4CkONYZSLBaGLqIp6xdxaoxgAmlrdzoKYJDYpAH8QjYAJYpDNmUKoWh5FAEdg4OaEtlrx6RAxOGUliNlw6BQNlnA3MY4jWD5tDALAQ4AIjJBvDQNuka+RB/AgDXELbbSP0gB4YL/eS1paGXsCs5AlQA4NkMtESJ5ah5dAvSAbfaUGIEDloCjgUkkE66Ry/MBvAMP9jYgsGGIKGrRPAAPvBDPxDHwIdXANzZCV9oueEEc5CTIAmn9BLjB3nE7ZjPV6j+mk/L2uaHDegIrjBMvVrlWw9e8Cd4SjHYoxgKHQTTsA8okBNwzt8ANikFyJiAWQt6TPM7hwewyOlGoZC83YSBZNEpCgj0n5Wo52C9joHP6BDgCZWkjkOtfpFJ4ce4HEOlrTGQK4JLuCxyCAFwJOoSBR+wNQsCBTrtUAGt6G3rB72QV+7KUdij20/DpEw5Dh1A3s2PM7hAHkDjWpGYC6NaG+kUZbgL5a/4ILbuA/BayiwEgWQIGRLBmJN6jnkYGLqKJJARZaFekSVRBKxaS1gKZ/jEK4aEEBFJBLVaE8bMhNBz2Qw/dNzAA4K4HsFA+Uh1cAiYcKWnRTBa0YsK3pETgIkekVKRjiqoIIaOUlitGUtfdOLwTSqQ2qQPMZBA0YmmtNKpBN7A+1GBwmyCcANysOBlC6royWGPtRi+DIFIHO30burBp5ZNKpC8y0xwwBBJBDq0WfHDWlDiGRcTEMTeA8O0Gg9D2mhrS0WjxFwZGs30qwAHxrDRfEv6GCgmx1WwyGsHDRgSO095lPWQBVcsZo1vKZRAmYTctNVwC+EEHTtPkQSwfgcNVpEmCi+EWvNAQgBUEEWujF2Thu1wwplG0PC1fsEyepInDCy0qwAJSvitEAgRkaFNjBGRO2AFFVjwyWfhkWmLgQJ0DSzJL/jfJMzJsJEZEdFM8RkUYsSQIsU2jD2mhag4PYWPEZHN8Q+s8OSbCRGRJSaPEZHCFYMegH4ZG6OExRkVf34Tu0lB1JEZFiqU8RkT7F4hQA/DyAGBxCrGmjhK0IzrHsiH9LNcCTpoD7eCFhgB0ENhkZ0ZGWcglPCJngRBgAttQNWQj6zwfhkV6/StVYBL9ie3DRmmbpjB07SrAARMmK1Vh1wE8NTO90ApkI6j+k0ZHmmGKRBG97DIC0D3ij/KyRGRJTtJsZF18A7bmBByC+GRkRkZpKyoU4B/EVKiqHGRJpQMcZFZGRQJmHDXg4QGI3WJEZEiSsCnBCtrjSQUkRkSZKybFYjxABJXg9poY7mKdGgJ0MldRGJ8CIngQRzKsAD8cASsQEC8jFeAW2ePaZQJeEcUaF2fDtuYEJcDS6ZxDk0qkGQjj00AZcJPchCzpod5AI7NDCZsj4eB2ZQRQAcNeMJmxXRoaJkTtxC/0YwmbG03TYmRcSsEOXgLFEvu+J1iSrKEnt+EEcxLggx9aAw+w65SxirJEZGUSsHZWKU3Te2BTD7HelA1GRc6aNvBDX848NTNSpTiIQd4EHmXiImR8OcLMZQOCAImeE4ZHL24hpWE7BRrX4V57BSZGxH4tJkUy6A6ukHRBGaVo3GREUAHM2SIlw7akClYwb7EegHNvsQBj4e+xGLDpewc5c+OQmwVa0aVqnueCxpQidCH/XizSMpPtOcYCNy4JDOGgmyiy4LcuNPwROwAsAAHK6Qd5Yum6JLLjhnkfeWKCsDVLQXq9AmZBIUA4jOrXrBeAAO2WiWpQBmRLMAMyLq4GRQwTMhUwKLsfYwKh+yiNwzCAA8bA6TwVTqLcLBpbAbKUN0NpJmR+MWlH7CSPabIuh+VgflaD5CC/RCw5a+BkRQpDXy0JIxEcwgk4s7akMBWSsN4QKALCbBPy0OWADgrhm9kErSCMOR8nw7MFAaMCcwUctMP/WQgPA7akLzBR1mRx+2J2ZGmMqbvZMLBQdyUpHQKLBQQK0PclJLBQF80tWODLBTjo4tmYIbxSyVkisFJcQAe8QWoxJH2QW8U6CtNPJQHPkkkgM9kzDf0KuWorlplS4yuWirPAhtYauWkCQga5a8jgMsgBa5aL1QDrlqFDw2+0Hp8QG5a1LUA5YD0V0puWhHLqJSsLqjHjFDW5amuWvX6jmSA55kfBKR3nE15kcGZFd4sqAcLmaQtSYnuWrKZCyuYvuWgDkxaCAyE2OGlq+FajhWubqAE5a2VjEEVqXDwIRWomlpXoQtakA62wV4skRWikQDtAsOO4HEVpQWRuaWvRpBungq3GO2qxN6wQhWj8BQCkM9cgOIVocjwKBkavJAyFaluke6LqkIkUqWgoJQ+mwXpZKoVrEWRiT2Ks9ojlafIcDoVqPIIsoAfoVoExwhhWnbt47fIphWt//QWFa7FAFYVquGQthWtCGAVOADhWjmlphtYGtUCJEwqaMmlQNXzrU3YhvEL8wwYdEmdtKP2T5Za5+kVKeAQhab5WtYQDnXaqPeIcFoEvAsMwFa6DtqQSr6N+BB1mRnzZO2pAzQUauAO2pC0NY+OANZZE/8UZvoHWZHqoU7akAGEDzsYnRUD/tjbeoQ/NB2iyai4IAuAZDgOLkypmEIAzP+MA4TA4fTuUs2cFEqzjOyA3AkMVxAPyYFVLOmwTVUsXirNuowkh0zgdNJSy5PoxRBOBnRG6AxmOHP7SgyAE97FRloQHoeCrHhQDhSARZQFRUy1u40Y2OH6irGQiLoHgMQQnorCMJ1SxhXAz6+AJ/DhKQU0+BVuh4YgjYGOWwSHWYdFUMSKCDZQ5ZkayLgtiAmpkawugpZgxlkVgwg1DkLAgHY+znqUYCtKSUDRPsVdbGOAA+9kIJkL3JQB9kIJkFOZGjWRI8lFLZgLmRXDCDCejIwgNK6Lm+gwnopxuBtZFUNkUVYMZZGyYgNqFB7AB2oUQ4lMZLie9kxtEN72SklASSBGOZF/r0OvFCh9ieoU+vFNOZEXWRi4lDL9hLWRkxeCQujBoUub6OGhTpY4H1kbuJR4AAnRUPOcRa4AxlkcnGSAEAnZkbWJAU8IWktAzwibEAFlkWBShY+4LAgDr/jDWRnP2J72Q6/4Z1kaKBBQK045kTZLhdIkd1kbAegLWR1vAM9ZHpnQJC6Ox1D3yYzwYCPmT3yYU0eN/gDGWRlYkMShwPmY6pZHBRiWS0bQ8L4MiqO0+POHE/hlkszEkPVZGrZEAUtOahi/cUf1uNqBh3fYk1uCyCiJKUfQ4MDbiUB4zNuNiMhg24WPCNjbiTgUJMkARvg/y4RaOOShwo0AhEtPWLTcIAGjtDXoB45AOuADR7AwEMQAQC+SDYUA5ZkZxRjPYI1lkTfWTLkAWtkZWJBZEA5ZkXR9gEgY7akO/thcqYa+ZDX+RtSUu+ZGUJRQd2bsOL8xRWHEqmAAbRTXagTc4AVWwBaUIWlGzpQYro0ilKTQzxSs5xzMI2SXHMFuWqhmj4b0txzD7xTj9kII9P2BzxS4FBLHDkzT7oI4HG1lqy6UXxzHRvRL2Yx2mEwSzIjkektLOBzAnM+VrDiPS0WMR2mL7RSpOY3z9G0xRAha3D9KTkybgcxW8DCjjvaUriuJ9pQ+KUrn6JBGT2S0zNkQXBjXFgVl1CzZEKfkQHKBBEizm4ZUlLfKQc2RaosC3ZGQcolduAMpQC0UACgJN2AAs4eUkE3ZGCPkVzEN3ZHo/YB7aHMxSyaUWYgIKhRyO04j4E9LROqU8hQCIxSnzkZktAMxS4qUGVxNGwim2YNulP28QuNkYcFP74bPFArMhJaQAKtoiDaKaWgj2Rl32CzpgfeMjcHM6fSmm4ZH6C3ZEHOkxGzOD+gCS0xg5CPZESvANb2Ff6THaUJFDPphSBOwZhbLPZESO089kboRRxtwy9kQF7i8JQdulBvZG/YgW9kZ9pQ72RdRxD3uwp6Mu8gHtHgtS0CEWBjjCn2RKa6Eomyt6Yl9kWiWQ6E4d9ka87jaIgcMAAgYT17kIR9OUfSsFshYwOzZGN+4OY6A7kjv2RxelJ/ZFlSU9LsAEWz2F4c9kQQYAXS0AfEL0WwgaUpgIPapCLI41TuHI7T02R5POI3JAj2RG4gGzZGokYMOlB0yjqBYKpxLGOgs2R8cCA3ZERc0lHOCPZEru4P9aCPZGV/oPBOPJ+gH1wP8liRYC/gAaMJnXBhiORje6Er+SGy4I9kRX+SyORzN5KiHA9G4K4tJZXhYi0ytkaBQBAORXQoGeJBn2RuFOEI5Ebp6uu4D0yjWVumjCPquQ3soAdKGCjiiOR9dkUITT8/oDYgPtlw2BoKxuphbjWiQ9heEYZILoICxbOcpRncAyDkZ3ZGJigNjkV0yiyjGTjkchyisVIDjkcC3b+MUHsAGFbDnC0zn5BKYDmORlgFN9BhWORvQ+Aayj2AU1jAFfJAaxaB4EHI+A/Fsvs2GnCQwW4YTkdWHiYFAjItI2cSEuQrdzE8AB78AWtuGsLQLh0j5GA2IArCwXxOIo5EEq4MR5OEjjmkAevQIKhT/2RGnQpTZ4inwfPdArtgWC4F7ZFqBilORbotOF2jgH0Z8pO7+izFo/G5FU5Gwy0T9uPQ7h7MAe/AEvzQafsTgtFvIT1C0tTuufBgNiAogtO3WR/nkMwUABeQri0iJbL05EMORgCaEgrb3/I9mHHujgUS0iSeLaLTMwA5TkXidhOgYriOHvfgqI4esUA7kgNiAxReGRTh9QUaWgfw7gri0mJYCc5G3aUWmlOQt7S8036FNwARlYY0MQB/iSguRMAMMg8CV/olleOI+DQsMoLkX05HQPwj3TFHGinORtfaNppRhXksLkai5E7Mc/EgEEAQIuRWLkXoLQ0dAGwIMi5GIuRMhkZslaklkmwbBPGDpORYjFMWRQ02R9DkYqMYOlkljkZ6uh8ORMJZP7tgaORo9kZmoCq0oHRBh0yhxOR3LkfYygxORpHKOkyh+MoxYiEl9jRLoDYgEerAd2RDR9CHti8uRfjKLBTjfI4ynRLoWjKORJ6en3wBqjGsYFB7ACG3kREtFkHg4/k9uQFS5GUlk1NkRw5ESO03weJcxEMuRPDkUy5GclkPBOGy5H9VkbTOKkcxCSAwbKDy5G2uRfLkdK5HJMo39KKXWhsy4WTkdYWSOuRK4hsVbpw/kIjkUIoTtORJuDhx94qOReJOPkYFQZgDYgFxFx+ORHE8OaLSs6RbWIDq5EXKUerkV7+hyO0eVuC8wDGuRmTkaa5H8ORrLkYehQ6E4nLkTa5HOORdrkTm5EOuR9rkUK5Ez0oHBOG65EtK48rkUo5ESO0gbkVqJ4huROaADUQB+ORMIBCk5GFGBtLgL//g0BQKIaPQ+RiWA/ElJ5jiMs4KvFIFWwTWRI4uAOjjQK0rJuLArRofY2C6NOZEcCAWNkSbxRnYAEfZER9hPvY172NH2Qr/kJbwEA3hj5kxRZgDswQwYWjFB45Gsx0GYoG45G/QYEjkcw9R//EI9kVXYDPu4I9kXDgAYe4q7kRVug3u4ejkbMWixPklNuH5AD5ORdugNwgByO07p5AmwAh+E0sICqrQQ04BoAJq5FmlE/BZPaz5+LASiAIm5G/DALRlHWhB5Zgb72M5ZFrrQuNmGbZEmuQpYkD+9jgLoHbkYIcSdyUsC6D25Ea8UvT5CjZFXWRhfNOuzDDuR8i6NOZGEzsiCtLe2BcMIQHrGo9BsvkeHkRQujzuRRHkeKbjRsUBtFOl6xS80xIxhUcT/MU7TbKgxRxMU5uWilKzEK05z5Ix5HXHMrjOGISxNKsHKTJqIxkEskdkYOBw6KUVjOAUxSnJYrWWqQ/RjgcqVrMVKwLaYkZJFUxTjDA6dkRnXSZ2RNFjIVawXK4EnkbVKyxOY64HFc7Ql2R5ZJGdJSeVO1RuuUzgr2RamHNqjhH2R18CN5YAIZ0zgoAWhSMuRevOOUljkVsrDbPWHCdqU9NuN9Qh3fYHlllmcQ43EvnOFMfQFbA5WZHYKRJzkkQeC8Hhb84gx5H65HCS0QLkfrFqiuR3KADhaR0aWI0tMPZEw6UT1KC9ShbS0uvxmJeTBeRrK4E/+gKe0Fc7K4kC3uR42gAeBCkuReMxvxRTa2YnRUFcCguzszbkUYPQV2YmpkRHbgo/gZtkW3yCT3gMBDKb/TKI0pXkUmojeng5ZkUAOSMXgnRUI0WScCknRUJTQirCkdXkauvR10UkXOiL4Ssg6TsACT7iZu45HkUdYCP3gXXkX6vgq2kXO6HR5G0WUDHkSpOg6zMJCtJFaz6zM7HkYRvTeqMuBlHFawEGU3cAFaWCJWs7xzMlawieRRUrKipgLaYhHmH8+QKWRuVrBnZHzgcwJzIx5hs2M+dkUSPTc2MTojLDMCnI4kexOwvjDH4hjxIt+hfF4IKwHCjB4l4aXAD43gUeRWnkU84xfvAoV6F/YQiiUT1wFOjCWD4jfePK3TVWROeQCq3RL7sC+YPkQQglojvDIYLjk24PMmEiwQ+E4GY9HiwQx3aK3+DRYCg4gxExMpBQaQUmPOKNax6cAYY2ly3Dp9Mf4eHvmhx5oLwsLuwAmnIBe4DGLoH949QwI0mAO5ods+NdPQdnA6HzFEvS3lawkZm4vgzGQ8fWoCGw2kg7IUHr6DHUAMYumM3QiM4LYgONJA4xkIvbDaSC7DASwwKJwAxi6eh+L+4QqIgCeTMlCRrH4IZwA6cyLogbibJC5hEtExsWpNThF5MMtaBCuqQL44b0Bz5EnD4pgIJsQDq+RWoRDoUj/asLVFLHHiQL43+ADGLrfX4ow5DGLp2z4uv6MuiB9Ngrn6G3lpoFM+pACnvTYUAJvEHW3gKKYIf+I75FKoA6vsFR0ilXYrvkYqPgKKYyrdFkQBUzYlnIIN5H0v0vpIRzQxmeYrjFAH5FIes4OGLFAZRcUzswGG5gncArdCL6SHLo4edICXADX+gqqaJu7guQAoLELFAYEiwLw7HabgvXoizxL3qSv7gBIsHCKwtNg42AGA1oTMmL16GI2xTgA8fkZn5HtcQ2fkYdrShm4uFTBl4AZ+R/tYTMFDbm606TJRhhN+Rp3prenDbm69hQMFZFqSU505OZZDLL060uNwXBMnMyDhHrMCqH0hVFDv6TTsUoS+PK+QzRE9KtEh8xqa4zNLD/Ph/dk93ZDoGQXK0RklNSpDVM4sxaB7HgoiQEMut/bqomRz1GPs3RDl4aIkBE8AEswXxOJv5EVbo/+0O9iDPr4rx0GbWhPsU/u2Of5G0Fo9l5NW9Dd/oswZJp2j3eRFH4BF7CD2IvSEPk+SaeRABZkNcAQB4mEBIvcBI8AERIA33ioiAaMqCrtidWA/r4Bm9ivmM/68BqXh2Ug3G+Gd7h3DgesgEpBCc10vGEipBRQ/IFd7PTACXNwZwlPYEx4+RGVGP9CBBD4AuAEJISmoAIYkLGWSWqQ6eUK57AkAA0qJDKkAuL4b2YK/eD9b4OdMGWBQRqoKkyHqejq6Q6lBIHCRLVg2gEJL5FaxMXfAOt+Qi+R5DEGaXpP+4hLRH80Tg0obzzE2EAS1ouqkMCLSahELu7LMKDF/E0gUStfgN5MJVFAb5E2qQUMEMyJQ66YNAZHqeijB4xO9F4VjRdQlb7FPgRI4ADHeFR0jCMQmweBKPgc6Y4tAAhKBIoIH+5NCjgGz0EcID5HiiyUfkeHRwTgcATOhCT7jNYc+kGEpKQXPAfVAFGgC30UE4kGJFDv+RBxjCT7gBuQ20eIaSR7R4BW8BRQD+NoT9CGppB28EVeQOsLj5SA0cwCHpD+YcHwOAyqGcjAT9CIe7ieJIOrWJ+pAYg0t5aC6cTfXoVsGAHfSuIUCyjHS2Zkx0M2zN/US1cQO5gHtizrP0yiuM35H3AIccrB7pEHqQvpIVn5EHa0ZfkaGbgMhQ9QUTX5GNBRbHuDA7hnKYbo7AUFF4sWaMdCdxRG50Y1QFrvQK4caXbJUFGd+RO89IO6wrMEmF2jogAhRAIoUGW6h5SQEM5KJejg3AWXmMWeg7EABhFF1azf7Qwq5BVujvW4ofkat3THHo0WiL0hBhLk28QEbWyotkSXgC4xQGY0anYEl5HvaACStFBaZipA6J2OplAL1gQAAA===";const {react, reactDOM, excalidrawLib} = window.eval.call(window, `(function() {${LZString.decompressFromBase64(EXCALIDRAW_PACKAGES)};return {react:React, reactDOM:ReactDOM, excalidrawLib: ExcalidrawLib};})();`);const PLUGIN_VERSION="1.9.12";function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(A){if("default"!==A){var i=Object.getOwnPropertyDescriptor(e,A);Object.defineProperty(t,A,i.get?i:{enumerable:!0,get:function(){return e[A]}})}})),t.default=e,Object.freeze(t)}var obsidian_module__namespace=_interopNamespace(obsidian_module),React__namespace=_interopNamespace(React);let random$1=e=>crypto.getRandomValues(new Uint8Array(e)),customRandom=(e,t,A)=>{let i=(2<{let r="";for(;;){let t=A(n),s=n;for(;s--;)if(r+=e[t[s]&i]||"",r.length===a)return r}}},customAlphabet=(e,t=21)=>customRandom(e,t,random$1),nanoid$1=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce(((e,t)=>e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_")),"");const ERROR_IFRAME_CONVERSION_CANCELED="iframe conversion canceled",{sceneCoordsToViewportCoords:sceneCoordsToViewportCoords,viewportCoordsToSceneCoords:viewportCoordsToSceneCoords,determineFocusDistance:determineFocusDistance,intersectElementWithLine:intersectElementWithLine,getCommonBoundingBox:getCommonBoundingBox,getMaximumGroups:getMaximumGroups,measureText:measureText,getDefaultLineHeight:getDefaultLineHeight,wrapText:wrapText,getFontString:getFontString,getBoundTextMaxWidth:getBoundTextMaxWidth,exportToSvg:exportToSvg,exportToBlob:exportToBlob,mutateElement:mutateElement,restore:restore}=excalidrawLib;function JSON_parse(e){return JSON.parse(e.replaceAll("[","["))}/Mac|iPod|iPhone|iPad/.test(window.navigator.platform);const DEVICE={isDesktop:!document.body.hasClass("is-tablet")&&!document.body.hasClass("is-mobile"),isPhone:document.body.hasClass("is-phone"),isTablet:document.body.hasClass("is-tablet"),isMobile:document.body.hasClass("is-mobile"),isLinux:document.body.hasClass("mod-linux")&&!document.body.hasClass("is-android"),isMacOS:document.body.hasClass("mod-macos")&&!document.body.hasClass("is-ios"),isWindows:document.body.hasClass("mod-windows"),isIOS:document.body.hasClass("is-ios"),isAndroid:document.body.hasClass("is-android")},ROOTELEMENTSIZE=(()=>{const e=document.createElement("div");e.style.fontSize="1rem",e.style.display="none",document.body.appendChild(e);const t=getComputedStyle(e),A=parseFloat(t.fontSize);return document.body.removeChild(e),A})(),nanoid=customAlphabet("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",8),KEYCODE={ESC:27},ROUNDNESS={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},GITHUB_RELEASES="https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/",URLFETCHTIMEOUT=3e3,PLUGIN_ID="obsidian-excalidraw-plugin",SCRIPT_INSTALL_CODEBLOCK="excalidraw-script-install",SCRIPT_INSTALL_FOLDER="Downloaded",fileid=customAlphabet("1234567890abcdef",40),REG_LINKINDEX_INVALIDCHARS=/[<>:"\\|?*#]/g,REG_BLOCK_REF_CLEAN=/[!"#$%&()*+,.:;<=>?@^`{|}~\/\[\]\\]/g,IMAGE_TYPES=["jpeg","jpg","png","gif","svg","webp","bmp","ico"],EXPORT_TYPES=["svg","dark.svg","light.svg","png","dark.png","light.png"],MAX_IMAGE_SIZE=500,FRONTMATTER_KEY="excalidraw-plugin",FRONTMATTER_KEY_EXPORT_TRANSPARENT="excalidraw-export-transparent",FRONTMATTER_KEY_EXPORT_DARK="excalidraw-export-dark",FRONTMATTER_KEY_EXPORT_SVGPADDING="excalidraw-export-svgpadding",FRONTMATTER_KEY_EXPORT_PADDING="excalidraw-export-padding",FRONTMATTER_KEY_EXPORT_PNGSCALE="excalidraw-export-pngscale",FRONTMATTER_KEY_CUSTOM_PREFIX="excalidraw-link-prefix",FRONTMATTER_KEY_CUSTOM_URL_PREFIX="excalidraw-url-prefix",FRONTMATTER_KEY_CUSTOM_LINK_BRACKETS="excalidraw-link-brackets",FRONTMATTER_KEY_ONLOAD_SCRIPT="excalidraw-onload-script",FRONTMATTER_KEY_LINKBUTTON_OPACITY="excalidraw-linkbutton-opacity",FRONTMATTER_KEY_DEFAULT_MODE="excalidraw-default-mode",FRONTMATTER_KEY_FONT="excalidraw-font",FRONTMATTER_KEY_FONTCOLOR="excalidraw-font-color",FRONTMATTER_KEY_BORDERCOLOR="excalidraw-border-color",FRONTMATTER_KEY_MD_STYLE="excalidraw-css",FRONTMATTER_KEY_AUTOEXPORT="excalidraw-autoexport",FRONTMATTER_KEY_EMBEDDABLE_THEME="excalidraw-iframe-theme",EMBEDDABLE_THEME_FRONTMATTER_VALUES=["light","dark","auto","dafault"],VIEW_TYPE_EXCALIDRAW="excalidraw",ICON_NAME="excalidraw-icon",RERENDER_EVENT="excalidraw-embed-rerender",BLANK_DRAWING=`{"type":"excalidraw","version":2,"source":"${GITHUB_RELEASES+PLUGIN_VERSION}","elements":[],"appState":{"gridSize":null,"viewBackgroundColor":"#ffffff"}}`,DARK_BLANK_DRAWING=`{"type":"excalidraw","version":2,"source":"${GITHUB_RELEASES+PLUGIN_VERSION}","elements":[],"appState":{"theme":"dark","gridSize":null,"viewBackgroundColor":"#ffffff"}}`,FRONTMATTER=["---","","excalidraw-plugin: parsed","tags: [excalidraw]","","---","==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==","",""].join("\n"),EMPTY_MESSAGE="Hit enter to create a new drawing",TEXT_DISPLAY_PARSED_ICON_NAME="quote-glyph",TEXT_DISPLAY_RAW_ICON_NAME="presentation",FULLSCREEN_ICON_NAME="fullscreen",SCRIPTENGINE_ICON_NAME="ScriptEngine",KEYBOARD_EVENT_TYPES=["keydown","keyup","keypress"],EXTENDED_EVENT_TYPES=["copy","cut","paste"],COLOR_NAMES=new Map;COLOR_NAMES.set("aliceblue","#f0f8ff"),COLOR_NAMES.set("antiquewhite","#faebd7"),COLOR_NAMES.set("aqua","#00ffff"),COLOR_NAMES.set("aquamarine","#7fffd4"),COLOR_NAMES.set("azure","#f0ffff"),COLOR_NAMES.set("beige","#f5f5dc"),COLOR_NAMES.set("bisque","#ffe4c4"),COLOR_NAMES.set("black","#000000"),COLOR_NAMES.set("blanchedalmond","#ffebcd"),COLOR_NAMES.set("blue","#0000ff"),COLOR_NAMES.set("blueviolet","#8a2be2"),COLOR_NAMES.set("brown","#a52a2a"),COLOR_NAMES.set("burlywood","#deb887"),COLOR_NAMES.set("cadetblue","#5f9ea0"),COLOR_NAMES.set("chartreuse","#7fff00"),COLOR_NAMES.set("chocolate","#d2691e"),COLOR_NAMES.set("coral","#ff7f50"),COLOR_NAMES.set("cornflowerblue","#6495ed"),COLOR_NAMES.set("cornsilk","#fff8dc"),COLOR_NAMES.set("crimson","#dc143c"),COLOR_NAMES.set("cyan","#00ffff"),COLOR_NAMES.set("darkblue","#00008b"),COLOR_NAMES.set("darkcyan","#008b8b"),COLOR_NAMES.set("darkgoldenrod","#b8860b"),COLOR_NAMES.set("darkgray","#a9a9a9"),COLOR_NAMES.set("darkgreen","#006400"),COLOR_NAMES.set("darkkhaki","#bdb76b"),COLOR_NAMES.set("darkmagenta","#8b008b"),COLOR_NAMES.set("darkolivegreen","#556b2f"),COLOR_NAMES.set("darkorange","#ff8c00"),COLOR_NAMES.set("darkorchid","#9932cc"),COLOR_NAMES.set("darkred","#8b0000"),COLOR_NAMES.set("darksalmon","#e9967a"),COLOR_NAMES.set("darkseagreen","#8fbc8f"),COLOR_NAMES.set("darkslateblue","#483d8b"),COLOR_NAMES.set("darkslategray","#2f4f4f"),COLOR_NAMES.set("darkturquoise","#00ced1"),COLOR_NAMES.set("darkviolet","#9400d3"),COLOR_NAMES.set("deeppink","#ff1493"),COLOR_NAMES.set("deepskyblue","#00bfff"),COLOR_NAMES.set("dimgray","#696969"),COLOR_NAMES.set("dodgerblue","#1e90ff"),COLOR_NAMES.set("firebrick","#b22222"),COLOR_NAMES.set("floralwhite","#fffaf0"),COLOR_NAMES.set("forestgreen","#228b22"),COLOR_NAMES.set("fuchsia","#ff00ff"),COLOR_NAMES.set("gainsboro","#dcdcdc"),COLOR_NAMES.set("ghostwhite","#f8f8ff"),COLOR_NAMES.set("gold","#ffd700"),COLOR_NAMES.set("goldenrod","#daa520"),COLOR_NAMES.set("gray","#808080"),COLOR_NAMES.set("green","#008000"),COLOR_NAMES.set("greenyellow","#adff2f"),COLOR_NAMES.set("honeydew","#f0fff0"),COLOR_NAMES.set("hotpink","#ff69b4"),COLOR_NAMES.set("indianred","#cd5c5c"),COLOR_NAMES.set("indigo","#4b0082"),COLOR_NAMES.set("ivory","#fffff0"),COLOR_NAMES.set("khaki","#f0e68c"),COLOR_NAMES.set("lavender","#e6e6fa"),COLOR_NAMES.set("lavenderblush","#fff0f5"),COLOR_NAMES.set("lawngreen","#7cfc00"),COLOR_NAMES.set("lemonchiffon","#fffacd"),COLOR_NAMES.set("lightblue","#add8e6"),COLOR_NAMES.set("lightcoral","#f08080"),COLOR_NAMES.set("lightcyan","#e0ffff"),COLOR_NAMES.set("lightgoldenrodyellow","#fafad2"),COLOR_NAMES.set("lightgrey","#d3d3d3"),COLOR_NAMES.set("lightgreen","#90ee90"),COLOR_NAMES.set("lightpink","#ffb6c1"),COLOR_NAMES.set("lightsalmon","#ffa07a"),COLOR_NAMES.set("lightseagreen","#20b2aa"),COLOR_NAMES.set("lightskyblue","#87cefa"),COLOR_NAMES.set("lightslategray","#778899"),COLOR_NAMES.set("lightsteelblue","#b0c4de"),COLOR_NAMES.set("lightyellow","#ffffe0"),COLOR_NAMES.set("lime","#00ff00"),COLOR_NAMES.set("limegreen","#32cd32"),COLOR_NAMES.set("linen","#faf0e6"),COLOR_NAMES.set("magenta","#ff00ff"),COLOR_NAMES.set("maroon","#800000"),COLOR_NAMES.set("mediumaquamarine","#66cdaa"),COLOR_NAMES.set("mediumblue","#0000cd"),COLOR_NAMES.set("mediumorchid","#ba55d3"),COLOR_NAMES.set("mediumpurple","#9370d8"),COLOR_NAMES.set("mediumseagreen","#3cb371"),COLOR_NAMES.set("mediumslateblue","#7b68ee"),COLOR_NAMES.set("mediumspringgreen","#00fa9a"),COLOR_NAMES.set("mediumturquoise","#48d1cc"),COLOR_NAMES.set("mediumvioletred","#c71585"),COLOR_NAMES.set("midnightblue","#191970"),COLOR_NAMES.set("mintcream","#f5fffa"),COLOR_NAMES.set("mistyrose","#ffe4e1"),COLOR_NAMES.set("moccasin","#ffe4b5"),COLOR_NAMES.set("navajowhite","#ffdead"),COLOR_NAMES.set("navy","#000080"),COLOR_NAMES.set("oldlace","#fdf5e6"),COLOR_NAMES.set("olive","#808000"),COLOR_NAMES.set("olivedrab","#6b8e23"),COLOR_NAMES.set("orange","#ffa500"),COLOR_NAMES.set("orangered","#ff4500"),COLOR_NAMES.set("orchid","#da70d6"),COLOR_NAMES.set("palegoldenrod","#eee8aa"),COLOR_NAMES.set("palegreen","#98fb98"),COLOR_NAMES.set("paleturquoise","#afeeee"),COLOR_NAMES.set("palevioletred","#d87093"),COLOR_NAMES.set("papayawhip","#ffefd5"),COLOR_NAMES.set("peachpuff","#ffdab9"),COLOR_NAMES.set("peru","#cd853f"),COLOR_NAMES.set("pink","#ffc0cb"),COLOR_NAMES.set("plum","#dda0dd"),COLOR_NAMES.set("powderblue","#b0e0e6"),COLOR_NAMES.set("purple","#800080"),COLOR_NAMES.set("rebeccapurple","#663399"),COLOR_NAMES.set("red","#ff0000"),COLOR_NAMES.set("rosybrown","#bc8f8f"),COLOR_NAMES.set("royalblue","#4169e1"),COLOR_NAMES.set("saddlebrown","#8b4513"),COLOR_NAMES.set("salmon","#fa8072"),COLOR_NAMES.set("sandybrown","#f4a460"),COLOR_NAMES.set("seagreen","#2e8b57"),COLOR_NAMES.set("seashell","#fff5ee"),COLOR_NAMES.set("sienna","#a0522d"),COLOR_NAMES.set("silver","#c0c0c0"),COLOR_NAMES.set("skyblue","#87ceeb"),COLOR_NAMES.set("slateblue","#6a5acd"),COLOR_NAMES.set("slategray","#708090"),COLOR_NAMES.set("snow","#fffafa"),COLOR_NAMES.set("springgreen","#00ff7f"),COLOR_NAMES.set("steelblue","#4682b4"),COLOR_NAMES.set("tan","#d2b48c"),COLOR_NAMES.set("teal","#008080"),COLOR_NAMES.set("thistle","#d8bfd8"),COLOR_NAMES.set("tomato","#ff6347"),COLOR_NAMES.set("turquoise","#40e0d0"),COLOR_NAMES.set("violet","#ee82ee"),COLOR_NAMES.set("wheat","#f5deb3"),COLOR_NAMES.set("white","#ffffff"),COLOR_NAMES.set("whitesmoke","#f5f5f5"),COLOR_NAMES.set("yellow","#ffff00"),COLOR_NAMES.set("yellowgreen","#9acd32");const DEFAULT_MD_EMBED_CSS='.snw-reference{display: none;}.excalidraw-md-host{padding:0px 10px}.excalidraw-md-footer{height:5px}foreignObject{background-color:transparent}p{display:block;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0px;margin-inline-end:0px;color:inherit}table,tr,th,td{color:inherit;border:1px solid;border-collapse:collapse;padding:3px}th{font-weight:bold;border-bottom:double;background-color:silver}.copy-code-button{display:none}code[class*=language-],pre[class*=language-]{color:#393a34;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-size:.9em;line-height:1.2em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre>code[class*=language-]{font-size:1em}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{background:#C1DEF1}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{background:#C1DEF1}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;background-color:#0000001a}:not(pre)>code[class*=language-]{padding:.2em;padding-top:1px;padding-bottom:1px;background:#f8f8f8;border:1px solid #dddddd}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:green;font-style:italic}.token.namespace{opacity:.7}.token.string{color:#a31515}.token.punctuation,.token.operator{color:#393a34}.token.url,.token.symbol,.token.number,.token.boolean,.token.variable,.token.constant,.token.inserted{color:#36acaa}.token.atrule,.token.keyword,.token.attr-value,.language-autohotkey .token.selector,.language-json .token.boolean,.language-json .token.number,code[class*=language-css]{color:#00f}.token.function{color:#393a34}.token.deleted,.language-autohotkey .token.tag{color:#9a050f}.token.selector,.language-autohotkey .token.keyword{color:#00009f}.token.important{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.class-name,.language-json .token.property{color:#2b91af}.token.tag,.token.selector{color:maroon}.token.attr-name,.token.property,.token.regex,.token.entity{color:red}.token.directive.tag .tag{background:#ffff00;color:#393a34}.line-numbers.line-numbers .line-numbers-rows{border-right-color:#a5a5a5}.line-numbers .line-numbers-rows>span:before{color:#2b91af}.line-highlight.line-highlight{background:rgba(193,222,241,.2);background:-webkit-linear-gradient(left,rgba(193,222,241,.2) 70%,rgba(221,222,241,0));background:linear-gradient(to right,rgba(193,222,241,.2) 70%,rgba(221,222,241,0))}blockquote{ font-style:italic;background-color:rgb(46,43,42,0.1);margin:0;margin-left:1em;border-radius:0 4px 4px 0;border:1px solid hsl(0,80%,32%);border-left-width:8px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;padding:10px 20px;margin-inline-start:30px;margin-inline-end:30px;}',SCRIPTENGINE_ICON='',DISK_ICON_NAME="save",EXPORT_IMG_ICON=' ',EXPORT_IMG_ICON_NAME="export-img",EXCALIDRAW_ICON='',VIRGIL_DATAURL="data:application/font-woff;charset=utf-8;base64,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",VIRGIL_FONT=` @font-face {font-family: "Virgil";src: url("${VIRGIL_DATAURL}") format("woff2");}`,CASCADIA_FONT=' @font-face {font-family: "Cascadia";src: url("data:application/font-woff;charset=utf-8;base64,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XVtdpV2uXdBeAV4OXmBecl6GXpteyl74X1Vfsl/PX+xgDWAtYDVgPWBQYGNga2B9YIZgj2CcYKlgtmDLYOFg7GElYVthfmGgYa1hwmHdYgNiN2JVYoli0GL6Yzpjc2PbZINkrGUYZUBlTWVeZaNl8GX9Zi9mPGZNZrdm/mdPZ59nq2e4Z8hoAWhDaE9oW2hoaMto12jnaPNo/2mBaipqmGqlarFrRWtSa79sG2wnbFRskGzBbM5s32z7bQ5tF20fbR9tH20fbX9tzm4ebp9u+W9jb75wGnBgcKRw1HEucZRx1nIxcoly1HMHc1Nzm3P+dEJ0rXTvdR11YXWIdcl2LHZrdnN2e3aidqp2zHbwdwd3LHc/d213qHfGd/14JHhLeHt4rnjWeON5EnkpeUd5nHnBefJ5+noCeiV6T3pyenp6hXqcewR7kXu5e+R8Dnw3fHF8qnztfPp9B30UfSF9Ln07fUh9VX1ifW99fH2JfZZ9o32wfb19yn3YfeZ9834Bfg5+Hn4yfkJ+U35hfnd+h37Vf2iAj4CrgNeBDYEzgVmBgIGmgbmBzYH4gh2CUoKHgr2C84M1g/iEM4SIhK6Ey4T9hR6FQIVbhXaFiYWcha+FwoXSheuGAoYZhjCGR4Zoho+GnYazhsGGzobjhviHBYcah0yHaIgsiE6IcIi1iNuJA4lciWqJgImViaqJvYnRie6KDIosikyKbIqBio+KpIqyir+KzIrZiueK+4sPiySLOYtdi3GLhIuRi5+Ls4vIi9aL44vxi/+MFIwojD2MUoxfjGyMeYyFjJiMq4y/jNKM840NjSeNO41bjXSNjo2ijc6N7o4PjieOPY5TjmaOd46Njp6OtI7NjuGO8o8JjxqPMY9Lj2WPe4+Rj6aPvI/Kj96P75AAkA6QHJAukE6QdJCCkJ6QvJDKkN6Q75ECkRORIZE7kU+RY5F+kZSRqZHCkdiR7pIIkiSSQJJckniSlJK3ksiS2JLrkwCTDpMhkzKTQ5NQk12TcJOMk6+TvJPVk/GT/5QSlCSUNJRElFKUa5R+lJGUrJTClNiU8ZUHlR2VN5VTlWqVf5WUla2VwJXWleaV/JYNlieWOpZQlmCWdpaHlqCWtJbJluyXBZcflziXTJdgl3qXjpeil8WX3Zf1mGqYsZkFmTmZg5mvmcaZ5Zpamr6bHZtFm7icHZyAnN6dG52E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") format("woff2");}';class Random{constructor(e){this.seed=e}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}}var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},lzStringExports={},lzString={get exports(){return lzStringExports},set exports(e){lzStringExports=e}};function splitFolderAndFilename(e){const t=e.lastIndexOf("/"),A=-1==t?e:e.substring(t+1);return{folderpath:obsidian_module.normalizePath(e.substring(0,t)),filename:A,basename:A.replace(/\.[^/.]+$/,"")}}!function(e){var t=function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function n(e,t){if(!i[e]){i[e]={};for(var A=0;A>>8,A[2*i+1]=r%256}return A},decompressFromUint8Array:function(t){if(null==t)return a.decompress(t);for(var A=new Array(t.length/2),i=0,n=A.length;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,u),u++),delete s[c]}else for(n=r[c],i=0;i>=1;0==--d&&(d=Math.pow(2,u),u++),r[l]=h++,c=String(o)}if(""!==c){if(Object.prototype.hasOwnProperty.call(s,c)){if(c.charCodeAt(0)<256){for(i=0;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,u),u++),delete s[c]}else for(n=r[c],i=0;i>=1;0==--d&&(d=Math.pow(2,u),u++)}for(n=2,i=0;i>=1;for(;;){if(p<<=1,m==t-1){g.push(A(p));break}m++}return g.join("")},decompress:function(e){return null==e?"":""==e?null:a._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(t,A,i){var n,a,r,s,o,l,c,d=[],h=4,u=4,g=3,p="",m=[],w={val:i(0),position:A,index:1};for(n=0;n<3;n+=1)d[n]=n;for(r=0,o=Math.pow(2,2),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;switch(r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 2:return""}for(d[3]=c,a=c,m.push(c);;){if(w.index>t)return"";for(r=0,o=Math.pow(2,g),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;switch(c=r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;d[u++]=e(r),c=u-1,h--;break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=w.val&w.position,w.position>>=1,0==w.position&&(w.position=A,w.val=i(w.index++)),r|=(s>0?1:0)*l,l<<=1;d[u++]=e(r),c=u-1,h--;break;case 2:return m.join("")}if(0==h&&(h=Math.pow(2,g),g++),d[c])p=d[c];else{if(c!==u)return null;p=a+a.charAt(0)}m.push(p),d[u++]=a+p.charAt(0),a=p,0==--h&&(h=Math.pow(2,g),g++)}}};return a}();null!=e&&(e.exports=t)}(lzString);const download=(e,t,A)=>{const i=document.createElement("a");i.setAttribute("href",(e?`${e},`:"")+t),i.setAttribute("download",A),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)};function getIMGFilename(e,t){return`${e.substring(0,e.lastIndexOf("."))}.${t}`}function getNewUniqueFilepath(e,t,A){let i=obsidian_module.normalizePath(`${A}/${t}`),n=e.getAbstractFileByPath(i),a=0;const r=t.endsWith(".excalidraw.md")?".excalidraw.md":t.slice(t.lastIndexOf("."));for(;n;)i=obsidian_module.normalizePath(`${A}/${t.slice(0,t.lastIndexOf(r))}_${a}${r}`),a++,n=e.getAbstractFileByPath(i);return i}function getDrawingFilename(e){return e.drawingFilenamePrefix+(""!==e.drawingFilenameDateTime?window.moment().format(e.drawingFilenameDateTime):"")+(e.compatibilityMode?".excalidraw":e.useExcalidrawExtension?".excalidraw.md":".md")}function getEmbedFilename(e,t){return((t.drawingEmbedPrefixWithFilename?e:"")+t.drawingFilnameEmbedPostfix+(""!==t.drawingFilenameDateTime?window.moment().format(t.drawingFilenameDateTime):"")+(t.compatibilityMode?".excalidraw":t.useExcalidrawExtension?".excalidraw.md":".md")).trim()}async function checkAndCreateFolder(e){const t=app.vault;e=obsidian_module.normalizePath(e);const A=t.getAbstractFileByPathInsensitive(e);A&&A instanceof obsidian_module.TFolder||(A&&A instanceof obsidian_module.TFile&&new obsidian_module.Notice(`The folder cannot be created because it already exists as a file: ${e}.`),await t.createFolder(e))}const getURLImageExtension=e=>{const t=e.split("?")[0];return t.substring(t.lastIndexOf(".")+1)},getMimeType=e=>{switch(e){case"png":return"image/png";case"jpeg":case"jpg":return"image/jpeg";case"gif":return"image/gif";case"webp":return"image/webp";case"bmp":return"image/bmp";case"ico":return"image/x-icon";case"svg":case"md":return"image/svg+xml";default:return"application/octet-stream"}},getFileFromURL=async(e,t,A=3e3)=>{try{const t=await Promise.race([fetch(e),new Promise((e=>setTimeout((()=>e(null)),A)))]);if(!t)throw new obsidian_module.Notice(`URL did not load within the timeout period of ${A}ms.\n\nTry force-saving again in a few seconds.\n\n${e}`,8e3),new Error(`URL did not load within the timeout period of ${A}ms`);const i=await t.arrayBuffer();return{status:t.status,headers:Object.fromEntries(t.headers.entries()),arrayBuffer:i,json:null,text:null}}catch(t){return void errorlog({where:getFileFromURL,message:t.message,url:e})}},getFileFromURLFallback=async(e,t,A=3e3)=>{try{return await Promise.race([(async()=>new Promise((e=>setTimeout((()=>e(null)),A))))(),obsidian_module.requestUrl({url:e,method:"get",contentType:t,throw:!1})])}catch(t){return void errorlog({where:getFileFromURL,message:`URL did not load within timeout period of ${A}ms`,url:e})}},getDataURLFromURL=async(e,t,A=3e3)=>{let i=await getFileFromURL(e,t,A);return i&&200!==i.status&&(i=await getFileFromURLFallback(e,t,A)),i&&200===i.status?await getDataURL(i.arrayBuffer,t):e},blobToBase64=async e=>{const t=await e.arrayBuffer(),A=new Uint8Array(t);for(var i="",n=A.byteLength,a=0;a(void 0===window.pdfjsLib&&await obsidian_module.loadPdfJs(),await window.pdfjsLib.getDocument(app.vault.getResourcePath(e)).promise),labelCTRL=()=>DEVICE.isIOS||DEVICE.isMacOS?"CMD":"CTRL",labelALT=()=>DEVICE.isIOS||DEVICE.isMacOS?"OPT":"ALT",labelMETA=()=>DEVICE.isIOS||DEVICE.isMacOS?"CTRL":DEVICE.isWindows?"WIN":"META",labelSHIFT=()=>"SHIFT",isCTRL=e=>DEVICE.isIOS||DEVICE.isMacOS?e.metaKey:e.ctrlKey,isALT=e=>e.altKey,isMETA=e=>DEVICE.isIOS||DEVICE.isMacOS?e.ctrlKey:e.metaKey,isSHIFT=e=>e.shiftKey,setCTRL=(e,t)=>(DEVICE.isIOS||DEVICE.isMacOS?e.metaKey=t:e.ctrlKey=t,e),setALT=(e,t)=>(e.altKey=t,e),setMETA=(e,t)=>(DEVICE.isIOS||DEVICE.isMacOS?e.ctrlKey=t:e.metaKey=t,e),setSHIFT=(e,t)=>(e.shiftKey=t,e),mdPropModifier=e=>!isSHIFT(e)&&isCTRL(e)&&!isALT(e)&&isMETA(e),scaleToFullsizeModifier=e=>isSHIFT(e)&&!isCTRL(e)&&!isALT(e)&&isMETA(e)||!isSHIFT(e)&&isCTRL(e)&&isALT(e)&&!isMETA(e),linkClickModifierType=e=>isCTRL(e)&&!isALT(e)&&isSHIFT(e)&&!isMETA(e)?"active-pane":!isCTRL(e)||isALT(e)||isSHIFT(e)||isMETA(e)?isCTRL(e)&&isALT(e)&&!isSHIFT(e)&&!isMETA(e)?"new-pane":DEVICE.isDesktop&&isCTRL(e)&&isALT(e)&&isSHIFT(e)&&!isMETA(e)?"popout-window":isCTRL(e)&&isALT(e)&&isSHIFT(e)&&!isMETA(e)?"new-tab":mdPropModifier(e)?"md-properties":"active-pane":"new-tab",externalDragModifierType=e=>DEVICE.isWindows&&isSHIFT(e)&&isCTRL(e)&&!isALT(e)&&!isMETA(e)?"embeddable":!DEVICE.isMacOS||isSHIFT(e)||isCTRL(e)||!isALT(e)||isMETA(e)?!DEVICE.isWindows||isSHIFT(e)||!isCTRL(e)||isALT(e)||isMETA(e)?DEVICE.isMacOS&&isSHIFT(e)&&!isCTRL(e)&&isALT(e)&&!isMETA(e)?"insert-link":isSHIFT(e)&&!isCTRL(e)&&!isALT(e)&&!isMETA(e)||DEVICE.isWindows&&!isSHIFT(e)&&!isCTRL(e)&&isALT(e)&&!isMETA(e)?"image-import":"image-url":"insert-link":"embeddable",internalDragModifierType=e=>(DEVICE.isIOS||DEVICE.isMacOS||!isSHIFT(e)||!isCTRL(e)||isALT(e)||isMETA(e))&&(!DEVICE.isIOS&&!DEVICE.isMacOS||isSHIFT(e)||isCTRL(e)||isALT(e)||!isMETA(e))?(!isSHIFT(e)||isCTRL(e)||isALT(e)||isMETA(e))&&(isSHIFT(e)||!isCTRL(e)||isALT(e)||isMETA(e))?scaleToFullsizeModifier(e)?"image-fullsize":"link":"image":"embeddable",emulateCTRLClickForLinks=e=>({shiftKey:e.shiftKey,ctrlKey:e.ctrlKey||!(DEVICE.isIOS||DEVICE.isMacOS),metaKey:e.metaKey||DEVICE.isIOS||DEVICE.isMacOS,altKey:e.altKey}),emulateKeysForLinkClick=e=>{const t={shiftKey:!1,ctrlKey:!1,metaKey:!1,altKey:!1};if(!e)return t;switch(e){case"active-pane":setCTRL(t,!0),setSHIFT(t,!0);break;case"new-pane":setCTRL(t,!0),setALT(t,!0);break;case"popout-window":setCTRL(t,!0),setALT(t,!0),setSHIFT(t,!0);break;case"new-tab":setCTRL(t,!0);break;case"md-properties":setCTRL(t,!0),setMETA(t,!0)}return t},anyModifierKeysPressed=e=>e.shiftKey||e.ctrlKey||e.metaKey||e.altKey,getParentOfClass=(e,t)=>{var A;let i=e.parentElement;for(;i&&!(i instanceof window.HTMLBodyElement)&&!i.classList.contains(t);)i=i.parentElement;return(null===(A=null==i?void 0:i.classList)||void 0===A?void 0:A.contains(t))?i:null},getLeaf=(e,t,A)=>{switch(linkClickModifierType(A)){case"active-pane":return t;case"new-tab":default:return(()=>{if(!e.settings.openInMainWorkspace)return app.workspace.getLeaf("tab");const[A,i]=getLeafLoc(t);return"main"===A?app.workspace.getLeaf("tab"):getNewOrAdjacentLeaf(e,t)})();case"new-pane":return getNewOrAdjacentLeaf(e,t);case"popout-window":return app.workspace.openPopoutLeaf()}},getLeafLoc=e=>{const t=e.id,A=app.workspace.getLayout(),i=e=>e.children.filter((e=>"leaf"!==e.type)).map((e=>i(e))).flat().concat(e.children.filter((e=>"leaf"===e.type)).map((e=>e.id))),n=i(A.main);return[A.main&&n.contains(t)?"main":A.floating&&i(A.floating).contains(t)?"popout":A.left&&i(A.left).contains(t)?"left":A.right&&i(A.right).contains(t)?"right":"hover",n]},getNewOrAdjacentLeaf=(e,t)=>{const[A,i]=getLeafLoc(t),n=e=>{var A;let n=app.workspace.getMostRecentLeaf();return n&&n!==t&&(null===(A=n.view)||void 0===A?void 0:A.containerEl.ownerDocument)===document||(n=null,i.forEach((A=>{var i;const a=app.workspace.getLeafById(A);n||!(null===(i=a.view)||void 0===i?void 0:i.navigation)||t===a||e&&(null==a?void 0:a.parent)===(null==t?void 0:t.parent)||(n=a)}))),n};if(e.settings.openInMainWorkspace||["main","left","right"].contains(A)){if(!e.settings.openInAdjacentPane){if("main"===A)return app.workspace.createLeafBySplit(t);const e=n();return e?"empty"===e.view.getViewType()?e:app.workspace.createLeafBySplit(e):app.workspace.getLeaf(!0)}const i=n(!0);return null!=i?i:app.workspace.createLeafBySplit(t)}if(!e.settings.openInAdjacentPane)return app.workspace.createLeafBySplit(t);if("hover"===A){const A=new Set;return app.workspace.iterateAllLeaves((e=>{e!==t&&t.containerEl.parentElement===e.containerEl.parentElement&&A.add(e)})),0===A.size?e.app.workspace.createLeafBySplit(t):Array.from(A)[0]}if("popout"===A){const e=new Set;return app.workspace.iterateAllLeaves((A=>{A!==t&&A.view.navigation&&A.view.containerEl.ownerDocument===t.view.containerEl.ownerDocument&&e.add(A)})),0===e.size?app.workspace.createLeafBySplit(t):Array.from(e)[0]}return e.app.workspace.createLeafBySplit(t)},getAttachmentsFolderAndFilePath=async(e,t,A)=>{let i=e.vault.getConfig("attachmentFolderPath");if(i&&i.startsWith("./")){const e=`${splitFolderAndFilename(t).folderpath}/`;i=obsidian_module.normalizePath(e+i.substring(2))}return i&&"/"!==i||(i=""),await checkAndCreateFolder(i),{folder:i,filepath:obsidian_module.normalizePath(""===i?A:`${i}/${A}`)}},isObsidianThemeDark=()=>document.body.classList.contains("theme-dark"),getContainerForDocument=e=>{if(e!==document&&app.workspace.floatingSplit)for(const t of app.workspace.floatingSplit.children)if(t.doc===e)return t;return app.workspace.rootSplit},useDefaultExcalidrawFrame=e=>!e.link.startsWith("["),patchMobileView=e=>{if(DEVICE.isDesktop)return;console.log("patching mobile view");const t=getParentOfClass(e.containerEl,"mod-top");t&&(t.hasClass("mod-visible")||t.addClass("mod-visible"))},processLinkText=(e,t)=>{let A=null;if(e.search("#")>-1){const i=getLinkParts(e,t.file);A=`#${i.isBlockRef?"^":""}${i.ref}`,e=i.path}return e.match(REG_LINKINDEX_INVALIDCHARS)?{subpath:A,file:null}:{subpath:A,file:app.metadataCache.getFirstLinkpathDest(e,t.file.path)}},generateEmbeddableLink=(e,t)=>e;let versionUpdateChecked=!1;const checkExcalidrawVersion=async e=>{if(!versionUpdateChecked){versionUpdateChecked=!0;try{const e=async()=>JSON.parse(await obsidian_module.request({url:"https://api.github.com/repos/zsviczian/obsidian-excalidraw-plugin/releases?per_page=5&page=1"})),t=(await e()).map((e=>({version:e.tag_name,published:new Date(e.published_at)}))).filter((e=>e.version.match(/^\d+\.\d+\.\d+$/))).sort(((e,t)=>t.published-e.published))[0].version;isVersionNewerThanOther(t,PLUGIN_VERSION)&&new obsidian_module.Notice(`A newer version of Excalidraw is available in Community Plugins.\n\nYou are using ${PLUGIN_VERSION}.\nThe latest is ${t}`)}catch(e){errorlog({where:"Utils/checkExcalidrawVersion",error:e})}setTimeout((()=>versionUpdateChecked=!1),288e5)}};function wrapTextAtCharLength(e,t,A=!1,i=0){if(!t)return e;let n="";if(A){for(const A of e.split("\n")){const e=A.match(new RegExp(`(.){1,${t}}`,"g"));n+=e?`${e.join("\n")}\n`:"\n"}return n.replace(/\n$/,"")}const a=new RegExp(`(.{1,${t}})(\\s+|$\\n?)|([^\\s]{1,${t+i}})(\\s+|$\\n?)?`,"gm"),r=e.matchAll(a);let s;for(;!(s=r.next()).done;){n+=s.value[1]?s.value[1].trimEnd():s.value[3].trimEnd();const e=(s.value[2]?s.value[2].split("\n").length-1:0)+(s.value[4]?s.value[4].split("\n").length-1:0);n+="\n".repeat(e),0===e&&(n+="\n")}return n.replace(/\n$/,"")}new Random(Date.now());const rotate$1=(e,t,A,i,n)=>[(e-A)*Math.cos(n)-(t-i)*Math.sin(n)+A,(e-A)*Math.sin(n)+(t-i)*Math.cos(n)+i],rotatedDimensions=e=>{if(0===e.angle)return[e.x,e.y,e.width,e.height];const t=e.x+e.width/2,A=e.y+e.height/2,[i,n]=rotate$1(e.x,e.y,t,A,e.angle),[a,r]=rotate$1(e.x+e.width,e.y+e.height,t,A,e.angle);return[inew Promise(((A,i)=>{const n=new FileReader;n.onload=()=>{const e=n.result;A(e)},n.onerror=e=>i(e),n.readAsDataURL(new Blob([new Uint8Array(e)],{type:t}))})),getFontDataURL=async(e,t,A,i)=>{let n="",a="",r="";const s=e.metadataCache.getFirstLinkpathDest(t,A);if(s){const t=await e.vault.readBinary(s),A=s.extension.startsWith("woff")?"application/font-woff":"font/truetype";a=null!=i?i:s.basename,r=await getDataURL(t,A),n=` @font-face {font-family: "${a}";src: url("${r}") format("${"ttf"===s.extension?"truetype":s.extension}");}`;const o=n.split(";base64,",2);n=`${o[0]};charset=utf-8;base64,${o[1]}`}return{fontDef:n,fontName:a,dataURL:r}},svgToBase64=e=>`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(e.replaceAll(" "," "))))}`,getBinaryFileFromDataURL=async e=>{if(!e)return null;if(e.match(/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/i)){const t=e,A=getURLImageExtension(t),i=getMimeType(A);e=await getDataURLFromURL(t,i)}const t=e.matchAll(/base64,(.*)/g).next();if(!t.value)return null;const A=window.atob(t.value[1]),i=A.length,n=new Uint8Array(i);for(let e=0;e{var i;let n=e.elements;n.some((e=>"embeddable"===e.type))&&(n=JSON.parse(JSON.stringify(n)),n.filter((e=>"embeddable"===e.type)).forEach((t=>{var A,i;t.link=(i=t.link,null===(A=e.appState)||void 0===A||A.theme,i)})));try{return await exportToSvg({elements:n,appState:Object.assign({exportBackground:t.withBackground,exportWithDarkMode:!!t.withTheme&&"light"!=(null===(i=e.appState)||void 0===i?void 0:i.theme)},e.appState),files:e.files,exportPadding:A})}catch(e){return null}},getPNG=async(e,t,A,i=1)=>{var n;try{return await exportToBlob({elements:e.elements,appState:Object.assign({exportBackground:t.withBackground,exportWithDarkMode:!!t.withTheme&&"light"!=(null===(n=e.appState)||void 0===n?void 0:n.theme)},e.appState),files:e.files,exportPadding:A,mimeType:"image/png",getDimensions:(e,t)=>({width:e*i,height:t*i,scale:i})})}catch(e){return errorlog({where:"Utils.getPNG",error:e}),null}},getQuickImagePreview=async(e,t,A)=>{if(!e.settings.displayExportedImageIfAvailable)return null;const i=getIMGFilename(t,A),n=e.app.vault.getAbstractFileByPath(i);return n&&n instanceof obsidian_module.TFile?"png"===A?await e.app.vault.readBinary(n):await e.app.vault.read(n):null},embedFontsInSVG=(e,t)=>{const A=null!=e.querySelector("text[font-family^='Virgil']"),i=null!=e.querySelector("text[font-family^='Cascadia']"),n=null!=e.querySelector("text[font-family^='LocalFont']"),a=e.querySelector("defs");return a&&(i||A||n)&&(a.innerHTML=``),e},getImageSize=async e=>new Promise(((t,A)=>{const i=new Image;i.onload=()=>{t({height:i.naturalHeight,width:i.naturalWidth})},i.onerror=A,i.src=e})),scaleLoadedImage=(e,t)=>{let A=!1;if(!t||!e)return{dirty:A,scene:e};for(const i of t){const[t,n]=[i.size.width,i.size.height],a=i.size.width/i.size.height;e.elements.filter((e=>"image"===e.type&&e.fileId===i.id)).forEach((e=>{const[r,s]=[e.width,e.height];if(i.shouldScale){if(a!=r/s){A=!0;const i=Math.sqrt(r*s*n/t),a=Math.sqrt(r*s*t/n);e.height=i,e.width=a,e.y+=(s-i)/2,e.x+=(r-a)/2}}else r===t&&s===n||(A=!0,e.height=n,e.width=t,e.y+=(s-n)/2,e.x+=(r-t)/2)}))}return{dirty:A,scene:e}},setDocLeftHandedMode=(e,t)=>{const A=t.createElement("style");A.id="excalidraw-left-handed",A.textContent=".excalidraw .App-bottom-bar{justify-content:flex-end;}";const i=t.getElementById(A.id);i&&t.head.removeChild(i),e&&t.head.appendChild(A)},setLeftHandedMode=e=>{const t=new Set;app.workspace.iterateAllLeaves((A=>{const i=app.isMobile?document:A.view.containerEl.ownerDocument;i&&(t.has(i)||(t.add(i),setDocLeftHandedMode(e,i)))}))},getLinkParts=(e,t)=>{var A,i,n,a;const r=e.match(/(^[^#\|]*)#?(\^)?([^\|]*)?\|?(\d*)x?(\d*)/);return{original:e,path:t&&""===r[1]?t.path:r[1],isBlockRef:"^"===r[2],ref:(null===(A=r[3])||void 0===A?void 0:A.match(/^page=\d*$/i))?r[3]:null===(i=r[3])||void 0===i?void 0:i.replaceAll(REG_BLOCK_REF_CLEAN,""),width:r[4]?parseInt(r[4]):void 0,height:r[5]?parseInt(r[5]):void 0,page:parseInt(null===(a=null===(n=r[3])||void 0===n?void 0:n.match(/page=(\d*)/))||void 0===a?void 0:a[1])}},compress=e=>lzStringExports.compressToBase64(e).replace(/(.{64})/g,"$1\n\n"),decompress=e=>lzStringExports.decompressFromBase64(e.replaceAll("\n","").replaceAll("\r","")),hasExportTheme=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-dark"])return!0}return!1},getExportTheme=(e,t,A)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-dark"])return A.frontmatter["excalidraw-export-dark"]?"dark":"light"}return e.settings.exportWithTheme?A:"light"},hasExportBackground=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-transparent"])return!0}return!1},getWithBackground=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-transparent"])return!A.frontmatter["excalidraw-export-transparent"]}return e.settings.exportWithBackground},getExportPadding=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if(!(null==A?void 0:A.frontmatter))return e.settings.exportPaddingSVG;if(null!=A.frontmatter["excalidraw-export-padding"]){const e=parseInt(A.frontmatter["excalidraw-export-padding"]);if(!isNaN(e))return e}if(null!=A.frontmatter["excalidraw-export-svgpadding"]){const e=parseInt(A.frontmatter["excalidraw-export-svgpadding"]);if(!isNaN(e))return e}}return e.settings.exportPaddingSVG},getPNGScale=(e,t)=>{if(t){const A=e.app.metadataCache.getFileCache(t);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-export-pngscale"]){const e=parseFloat(A.frontmatter["excalidraw-export-pngscale"]);if(!isNaN(e)&&e>0)return e}}return e.settings.pngExportScale},isVersionNewerThanOther=(e,t)=>{const A=e.match(/(\d*)\.(\d*)\.(\d*)/),i=t.match(/(\d*)\.(\d*)\.(\d*)/);return Boolean(A&&4===A.length&&i&&4===i.length&&!(isNaN(parseInt(A[1]))||isNaN(parseInt(A[2]))||isNaN(parseInt(A[3])))&&!(isNaN(parseInt(i[1]))||isNaN(parseInt(i[2]))||isNaN(parseInt(i[3])))&&(parseInt(A[1])>parseInt(i[1])||parseInt(A[1])>=parseInt(i[1])&&parseInt(A[2])>parseInt(i[2])||parseInt(A[1])>=parseInt(i[1])&&parseInt(A[2])>=parseInt(i[2])&&parseInt(A[3])>parseInt(i[3])))},getEmbeddedFilenameParts=e=>{const t=null==e?void 0:e.match(/([^#\^]*)((#\^)(group=|area=|frame=|taskbone)?([^\|]*)|(#)(group=|area=|frame=|taskbone)?([^\^\|]*))(.*)/);return t?{filepath:t[1],hasBlockref:Boolean(t[3]),hasGroupref:"group="===t[4]||"group="===t[7],hasTaskbone:"taskbone"===t[4]||"taskbone"===t[7],hasArearef:"area="===t[4]||"area="===t[7],hasFrameref:"frame="===t[4]||"frame="===t[7],blockref:t[5],hasSectionref:Boolean(t[6]),sectionref:t[8],linkpartReference:t[2],linkpartAlias:t[9]}:{filepath:e,hasBlockref:!1,hasGroupref:!1,hasTaskbone:!1,hasArearef:!1,hasFrameref:!1,blockref:"",hasSectionref:!1,sectionref:"",linkpartReference:"",linkpartAlias:""}},fragWithHTML=e=>createFragment((t=>t.createDiv().innerHTML=e)),errorlog=e=>{console.error(Object.assign({plugin:"Excalidraw"},e))},sleep$1=async e=>new Promise((t=>setTimeout(t,e))),log=console.log.bind(window.console),debug=console.log.bind(window.console),getContainerElement=(e,t)=>{var A;return e&&e.containerId&&null!==(A=t.elements.filter((t=>t.id===e.containerId))[0])&&void 0!==A?A:null},updateFrontmatterInString=(e,t)=>{if(!e)return e;for(const A of t){const t=new RegExp(`${A[0]}:\\s.*\\n`,"g");e=e.match(t)?e.replaceAll(t,`${A[0]}: ${A[1]}\n`):e.replace(/^---\n/,`---\n${A[0]}: ${A[1]}\n`)}return e},isHyperlink=e=>e&&!e.includes("\n")&&!e.includes("\r")&&e.match(/^https?:(\d*)?\/\/[^\s]*$/),isContainer=e=>{var t;return"arrow"!==e.type&&(null===(t=e.boundElements)||void 0===t?void 0:t.map((e=>e.type)).includes("text"))},hyperlinkIsImage=e=>{isHyperlink(e);const t=e.split("?")[0];return IMAGE_TYPES.contains(t.substring(t.lastIndexOf(".")+1))},hyperlinkIsYouTubeLink=e=>isHyperlink(e)&&(e.startsWith("https://youtu.be")||e.startsWith("https://www.youtube.com")||e.startsWith("https://youtube.com")||e.startsWith("https//www.youtu.be"))&&null!==e.match(/(youtu.be\/|v=)([^?\/\&]*)/),getYouTubeThumbnailLink=async e=>{const t=e.match(/(youtu.be\/|v=)([^?\/\&]*)/);if(!t||!t[2])return null;const A=t[2];let i=`https://i.ytimg.com/vi/${A}/maxresdefault.jpg`,n=await obsidian_module.requestUrl({url:i,method:"get",contentType:"image/jpeg",throw:!1});return n&&200===n.status?i:(i=`https://i.ytimg.com/vi/${A}/hq720.jpg`,n=await obsidian_module.requestUrl({url:i,method:"get",contentType:"image/jpeg",throw:!1}),n&&200===n.status?i:(i=`https://i.ytimg.com/vi/${A}/mqdefault.jpg`,n=await obsidian_module.requestUrl({url:i,method:"get",contentType:"image/jpeg",throw:!1}),n&&200===n.status?i:`https://i.ytimg.com/vi/${A}/default.jpg`))};var ar={},cz={},da={},de={},en={INSTALL_SCRIPT:"Install the script",UPDATE_SCRIPT:"Update available - Click to install",CHECKING_SCRIPT:"Checking for newer version - Click to reinstall",UNABLETOCHECK_SCRIPT:"Update check failed - Click to reinstall",UPTODATE_SCRIPT:"Script is up to date - Click to reinstall",OPEN_AS_EXCALIDRAW:"Open as Excalidraw Drawing",TOGGLE_MODE:"Toggle between Excalidraw and Markdown mode",CONVERT_NOTE_TO_EXCALIDRAW:"Convert empty note to Excalidraw Drawing",CONVERT_EXCALIDRAW:"Convert *.excalidraw to *.md files",CREATE_NEW:"Create new drawing",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (Logseq compatibility)",DOWNLOAD_LIBRARY:"Export stencil library as an *.excalidrawlib file",OPEN_EXISTING_NEW_PANE:"Open existing drawing - IN A NEW PANE",OPEN_EXISTING_ACTIVE_PANE:"Open existing drawing - IN THE CURRENT ACTIVE PANE",TRANSCLUDE:"Embed a drawing",TRANSCLUDE_MOST_RECENT:"Embed the most recently edited drawing",TOGGLE_LEFTHANDED_MODE:"Toggle left-handed mode",NEW_IN_NEW_PANE:"Create new drawing - IN AN ADJACENT WINDOW",NEW_IN_NEW_TAB:"Create new drawing - IN A NEW TAB",NEW_IN_ACTIVE_PANE:"Create new drawing - IN THE CURRENT ACTIVE WINDOW",NEW_IN_POPOUT_WINDOW:"Create new drawing - IN A POPOUT WINDOW",NEW_IN_NEW_PANE_EMBED:"Create new drawing - IN AN ADJACENT WINDOW - and embed into active document",NEW_IN_NEW_TAB_EMBED:"Create new drawing - IN A NEW TAB - and embed into active document",NEW_IN_ACTIVE_PANE_EMBED:"Create new drawing - IN THE CURRENT ACTIVE WINDOW - and embed into active document",NEW_IN_POPOUT_WINDOW_EMBED:"Create new drawing - IN A POPOUT WINDOW - and embed into active document",TOGGLE_LOCK:"Toggle Text Element between edit RAW and PREVIEW",DELETE_FILE:"Delete selected image or Markdown file from Obsidian Vault",INSERT_LINK_TO_ELEMENT:`Copy markdown link for selected element to clipboard. ${labelCTRL()}+CLICK to copy 'group=' link. SHIFT+CLICK to copy an 'area=' link. ${labelALT()}+CLICK to watch a help video.`,INSERT_LINK_TO_ELEMENT_GROUP:"Copy 'group=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_AREA:"Copy 'area=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_FRAME:"Copy 'frame=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_NORMAL:"Copy markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_ERROR:"Select a single element in the scene",INSERT_LINK_TO_ELEMENT_READY:"Link is READY and available on the clipboard",INSERT_LINK:"Insert link to file",INSERT_IMAGE:"Insert image or Excalidraw drawing from your vault",IMPORT_SVG:"Import an SVG file as Excalidraw strokes (limited SVG support, TEXT currently not supported)",INSERT_MD:"Insert markdown file from vault",INSERT_PDF:"Insert PDF file from vault",UNIVERSAL_ADD_FILE:"Insert ANY file from your Vault to the active drawing",INSERT_LATEX:`Insert LaTeX formula (e.g. \\binom{n}{k} = \\frac{n!}{k!(n-k)!}). ${labelALT()}+CLICK to watch a help video.`,ENTER_LATEX:"Enter a valid LaTeX expression",READ_RELEASE_NOTES:"Read latest release notes",RUN_OCR:"OCR: Grab text from freedraw scribble and pictures to clipboard",TRAY_MODE:"Toggle property-panel tray-mode",SEARCH:"Search for text in drawing",RESET_IMG_TO_100:"Set selected image element size to 100% of original",TEMPORARY_DISABLE_AUTOSAVE:"Disable autosave until next time Obsidian starts (only set this if you know what you are doing)",TEMPORARY_ENABLE_AUTOSAVE:"Enable autosave",INSTALL_SCRIPT_BUTTON:"Install or update Excalidraw Scripts",OPEN_AS_MD:"Open as Markdown",EXPORT_IMAGE:"Export Image",OPEN_LINK:"Open selected text as link\n(SHIFT+CLICK to open in a new pane)",EXPORT_EXCALIDRAW:"Export to an .Excalidraw file",LINK_BUTTON_CLICK_NO_TEXT:"Select a ImageElement, or select a TextElement that contains an internal or external link.\n",FILENAME_INVALID_CHARS:'File name cannot contain any of the following characters: * " \\ < > : | ? #',FORCE_SAVE:"Save (will also update transclusions)",RAW:"Change to PREVIEW mode (only affects text-elements with links or transclusions)",PARSED:"Change to RAW mode (only affects text-elements with links or transclusions)",NOFILE:"Excalidraw (no file)",COMPATIBILITY_MODE:"*.excalidraw file opened in compatibility mode. Convert to new format for full plugin functionality.",CONVERT_FILE:"Convert to new format",BACKUP_AVAILABLE:"We encountered an error while loading your drawing. This might have occurred if Obsidian unexpectedly closed during a save operation. For example, if you accidentally closed Obsidian on your mobile device while saving.

GOOD NEWS: Fortunately, a local backup is available. However, please note that if you last modified this drawing on a different device (e.g., tablet) and you are now on your desktop, that other device likely has a more recent backup.

I recommend trying to open the drawing on your other device first and restore the backup from its local storage.

Would you like to load the backup?",BACKUP_RESTORED:"Backup restored",CACHE_NOT_READY:"I apologize for the inconvenience, but an error occurred while loading your file.

Having a little patience can save you a lot of time...

The plugin has a backup cache, but it appears that you have just started Obsidian. Initializing the Backup Cache may take some time, usually up to a minute or more depending on your device's performance. You will receive a notification in the top right corner when the cache initialization is complete.

Please press OK to attempt loading the file again and check if the cache has finished initializing. If you see a completely empty file behind this message, I recommend waiting until the backup cache is ready before proceeding. Alternatively, you can choose Cancel to manually correct your file.
",OBSIDIAN_TOOLS_PANEL:"Obsidian Tools Panel",ERROR_SAVING_IMAGE:"Unknown error occured while fetching the image. It could be that for some reason the image is not available or rejected the fetch request from Obsidian",WARNING_PASTING_ELEMENT_AS_TEXT:"PASTING EXCALIDRAW ELEMENTS AS A TEXT ELEMENT IS NOT ALLOWED",USE_INSERT_FILE_MODAL:"Use 'Insert Any File' to embed a markdown note",RELEASE_NOTES_NAME:"Display Release Notes after update",RELEASE_NOTES_DESC:"Toggle ON: Display release notes each time you update Excalidraw to a newer version.
Toggle OFF: Silent mode. You can still read release notes on GitHub.",NEWVERSION_NOTIFICATION_NAME:"Plugin update notification",NEWVERSION_NOTIFICATION_DESC:"Toggle ON: Show a notification when a new version of the plugin is available.
Toggle OFF: Silent mode. You need to check for plugin updates in Community Plugins.",FOLDER_NAME:"Excalidraw folder",FOLDER_DESC:"Default location for new drawings. If empty, drawings will be created in the Vault root.",FOLDER_EMBED_NAME:"Use Excalidraw folder when embedding a drawing into the active document",FOLDER_EMBED_DESC:"Define which folder to place the newly inserted drawing into when using the command palette action: 'Create a new drawing and embed into active document'.
Toggle ON: Use Excalidraw folder
Toggle OFF: Use the attachments folder defined in Obsidian settings.",TEMPLATE_NAME:"Excalidraw template file",TEMPLATE_DESC:"Full filepath to the Excalidraw template. E.g.: If your template is in the default Excalidraw folder and its name is Template.md, the setting would be: Excalidraw/Template.md (or just Excalidraw/Template - you may omit the .md file extension). If you are using Excalidraw in compatibility mode, then your template must be a legacy Excalidraw file as well such as Excalidraw/Template.excalidraw.",SCRIPT_FOLDER_NAME:"Excalidraw Automate script folder (CASE SeNSitiVE!)",SCRIPT_FOLDER_DESC:"The files you place in this folder will be treated as Excalidraw Automate scripts. You can access your scripts from Excalidraw via the Obsidian Command Palette. Assign hotkeys to your favorite scripts just like to any other Obsidian command. The folder may not be the root folder of your Vault. ",SAVING_HEAD:"Saving",COMPRESS_NAME:"Compress Excalidraw JSON in Markdown",COMPRESS_DESC:"By enabling this feature Excalidraw will store the drawing JSON in a Base64 compressed format using the LZ-String algorithm. This will reduce the chance of Excalidraw JSON cluttering your search results in Obsidian. As a side effect, this will also reduce the filesize of Excalidraw drawings. When you switch an Excalidraw drawing to Markdown view, using the options menu in Excalidraw, the file will be saved without compression, so that you can read and edit the JSON string. The drawing will be compressed again once you switch back to Excalidraw view. The setting only has effect 'point forward', meaning, existing drawings will not be affected by the setting until you open them and save them.
Toggle ON: Compress drawing JSON
Toggle OFF: Leave drawing JSON uncompressed",AUTOSAVE_INTERVAL_DESKTOP_NAME:"Interval for autosave on Desktop",AUTOSAVE_INTERVAL_DESKTOP_DESC:"The time interval between saves. Autosave will skip if there are no changes in the drawing. Excalidraw will also save the file when closing a workspace tab or navigating within Obsidian, but away from the active Excalidraw tab (i.e. clicking on the Obsidian ribbon or checking backlinks, etc.). Excalidraw will not be able to save your work when terminating Obsidian directly either by killing the Obsidian process, or clicking to close Obsidian altogether.",AUTOSAVE_INTERVAL_MOBILE_NAME:"Interval for autosave on Mobile",AUTOSAVE_INTERVAL_MOBILE_DESC:"I recommend a more frequent interval for Mobiles. Excalidraw will also save the file when closing a workspace tab or navigating within Obsidian, but away from the active Excalidraw tab (i.e. tapping on the Obsidian ribbon or checking backlinks, etc.). Excalidraw will not be able to save your work when terminating Obsidian directly (i.e. swiping it away). Also note, that when you switch apps on a Mobile device, sometimes Android and iOS closes Obsidian in the background to save system resources. In such a case Excalidraw will not be able to save the latest changes.",FILENAME_HEAD:"Filename",FILENAME_DESC:"

Click this link for the date and time format reference.

",FILENAME_SAMPLE:"Filename for a new drawing is: ",FILENAME_EMBED_SAMPLE:"Filename for a new embedded drawing is: ",FILENAME_PREFIX_NAME:"Filename prefix",FILENAME_PREFIX_DESC:"The first part of the filename",FILENAME_PREFIX_EMBED_NAME:"Filename prefix when embedding a new drawing into a markdown note",FILENAME_PREFIX_EMBED_DESC:"Should the filename of the newly inserted drawing start with the name of the active markdown note when using the command palette action: Create a new drawing and embed into active document?
Toggle ON: Yes, the filename of a new drawing should start with filename of the active document
Toggle OFF: No, filename of a new drawing should not include the filename of the active document",FILENAME_POSTFIX_NAME:"Custom text after markdown Note's name when embedding",FILENAME_POSTFIX_DESC:"Affects filename only when embedding into a markdown document. This text will be inserted after the note's name, but before the date.",FILENAME_DATE_NAME:"Filename Date",FILENAME_DATE_DESC:"The last part of the filename. Leave empty if you do not want a date.",FILENAME_EXCALIDRAW_EXTENSION_NAME:".excalidraw.md or .md",FILENAME_EXCALIDRAW_EXTENSION_DESC:"This setting does not apply if you use Excalidraw in compatibility mode, i.e. you are not using Excalidraw markdown files.
Toggle ON: filename ends with .excalidraw.md
Toggle OFF: filename ends with .md",DISPLAY_HEAD:"Display",DYNAMICSTYLE_NAME:"Dynamic styling",DYNAMICSTYLE_DESC:"Change Excalidraw UI colors to match the canvas color",LEFTHANDED_MODE_NAME:"Left-handed mode",LEFTHANDED_MODE_DESC:"Currently only has effect in tray-mode. If turned on, the tray will be on the right side.
Toggle ON: Left-handed mode.
Toggle OFF: Right-handed moded",IFRAME_MATCH_THEME_NAME:"IFrames (markdown embeds) to match Excalidraw theme",IFRAME_MATCH_THEME_DESC:"Set this to true if you are for example using Obsidian in dark mode but use excalidraw with a light background. With this setting the embedded Obsidian markdown document will match the Excalidraw theme (i.e. light colors if Excalidraw is in light mode). ",MATCH_THEME_NAME:"New drawing to match Obsidian theme",MATCH_THEME_DESC:"If theme is dark, new drawing will be created in dark mode. This does not apply when you use a template for new drawings. Also this will not affect when you open an existing drawing. Those will follow the theme of the template/drawing respectively.
Toggle ON: Follow Obsidian Theme
Toggle OFF: Follow theme defined in your template",MATCH_THEME_ALWAYS_NAME:"Existing drawings to match Obsidian theme",MATCH_THEME_ALWAYS_DESC:"If theme is dark, drawings will be opened in dark mode. If your theme is light, they will be opened in light mode.
Toggle ON: Match Obsidian theme
Toggle OFF: Open with the same theme as last saved",MATCH_THEME_TRIGGER_NAME:"Excalidraw to follow when Obsidian Theme changes",MATCH_THEME_TRIGGER_DESC:"If this option is enabled open Excalidraw pane will switch to light/dark mode when Obsidian theme changes.
Toggle ON: Follow theme changes
Toggle OFF: Drawings are not affected by Obsidian theme changes",DEFAULT_OPEN_MODE_NAME:"Default mode when opening Excalidraw",DEFAULT_OPEN_MODE_DESC:"Specifies the mode how Excalidraw opens: Normal, Zen, or View mode. You may also set this behavior on a file level by adding the excalidraw-default-mode frontmatter key with a value of: normal, view, or zen to your document.",DEFAULT_PEN_MODE_NAME:"Pen mode",DEFAULT_PEN_MODE_DESC:"Should pen mode be automatically enabled when opening Excalidraw?",DEFAULT_PINCHZOOM_NAME:"Allow pinch zoom in pen mode",DEFAULT_PINCHZOOM_DESC:"Pinch zoom in pen mode when using the freedraw tool is disabled by default to prevent unwanted accidental zooming with your palm.
Toggle on: Enable pinch zoom in pen mode
Toggle off: Disable pinch zoom in pen mode",DEFAULT_WHEELZOOM_NAME:"Mouse wheel to zoom by default",DEFAULT_WHEELZOOM_DESC:`Toggle on: Mouse wheel to zoom; ${labelCTRL()} + mouse wheel to scroll
Toggle off: ${labelCTRL()} + mouse wheel to zoom; Mouse wheel to scroll`,ZOOM_TO_FIT_NAME:"Zoom to fit on view resize",ZOOM_TO_FIT_DESC:"Zoom to fit drawing when the pane is resized
Toggle ON: Zoom to fit
Toggle OFF: Auto zoom disabled",ZOOM_TO_FIT_ONOPEN_NAME:"Zoom to fit on file open",ZOOM_TO_FIT_ONOPEN_DESC:"Zoom to fit drawing when the drawing is first opened
Toggle ON: Zoom to fit
Toggle OFF: Auto zoom disabled",ZOOM_TO_FIT_MAX_LEVEL_NAME:"Zoom to fit max ZOOM level",ZOOM_TO_FIT_MAX_LEVEL_DESC:"Set the maximum level to which zoom to fit will enlarge the drawing. Minimum is 0.5 (50%) and maximum is 10 (1000%).",LINKS_HEAD:"Links and transclusion",LINKS_DESC:`${labelCTRL()}+CLICK on [[Text Elements]] to open them as links. If the selected text has more than one [[valid Obsidian links]], only the first will be opened. If the text starts as a valid web link (i.e. https:// or http://), then the plugin will open it in a browser. When Obsidian files change, the matching [[link]] in your drawings will also change. If you don't want text accidentally changing in your drawings use [[links|with aliases]].`,ADJACENT_PANE_NAME:"Reuse adjacent pane",ADJACENT_PANE_DESC:`When ${labelCTRL()}+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane. Turning this setting on, Excalidraw will first look for an existing pane, and try to open the link there. Excalidraw will look for the other workspace pane based on your focus/navigation history, i.e. the workpane that was active before you activated Excalidraw.`,MAINWORKSPACE_PANE_NAME:"Open in main workspace",MAINWORKSPACE_PANE_DESC:`When ${labelCTRL()}+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane in the current active window. Turning this setting on, Excalidraw will open the link in an existing or new pane in the main workspace. `,LINK_BRACKETS_NAME:"Show [[brackets]] around links",LINK_BRACKETS_DESC:"In PREVIEW mode, when parsing Text Elements, place brackets around links. You can override this setting for a specific drawing by adding excalidraw-link-brackets: true/false to the file's frontmatter.",LINK_PREFIX_NAME:"Link prefix",LINK_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-link-prefix: "📍 " to the file\'s frontmatter.',URL_PREFIX_NAME:"URL prefix",URL_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a URL link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-url-prefix: "🌐 " to the file\'s frontmatter.',PARSE_TODO_NAME:"Parse todo",PARSE_TODO_DESC:"Convert '- [ ] ' and '- [x] ' to checkpox and tick in the box.",TODO_NAME:"Open TODO icon",TODO_DESC:"Icon to use for open TODO items",DONE_NAME:"Completed TODO icon",DONE_DESC:"Icon to use for completed TODO items",HOVERPREVIEW_NAME:`Hover preview without pressing the ${labelCTRL()} key`,HOVERPREVIEW_DESC:`Toggle On: In Exalidraw view mode the hover preview for [[wiki links]] will be shown immediately, without the need to hold the ${labelCTRL()} key. In Excalidraw normal mode, the preview will be shown immediately only when hovering the blue link icon in the top right of the element.
Toggle Off: Hover preview is shown only when you hold the ${labelCTRL()} key while hovering the link.`,LINKOPACITY_NAME:"Opacity of link icon",LINKOPACITY_DESC:"Opacity of the link indicator icon in the top right corner of an element. 1 is opaque, 0 is transparent.",LINK_CTRL_CLICK_NAME:`${labelCTRL()}+CLICK on text with [[links]] or [](links) to open them`,LINK_CTRL_CLICK_DESC:"You can turn this feature off if it interferes with default Excalidraw features you want to use. If this is turned off, only the link button in the title bar of the drawing pane will open links.",TRANSCLUSION_WRAP_NAME:"Overflow wrap behavior of transcluded text",TRANSCLUSION_WRAP_DESC:"Number specifies the character count where the text should be wrapped. Set the text wrapping behavior of transcluded text. Turn this ON to force-wrap text (i.e. no overflow), or OFF to soft-wrap text (at the nearest whitespace).",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion word wrap default",TRANSCLUSION_DEFAULT_WRAP_DESC:"You can manually set/override word wrapping length using the `![[page#^block]]{NUMBER}` format. Normally you will not want to set a default, because if you transclude text inside a sticky note, then Excalidraw will automatically take care of word wrapping. Set this value to `0` if you do not want to set a default. ",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Page transclusion max char count",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"The maximum number of characters to display from the page when transcluding an entire page with the ![[markdown page]] format.",QUOTE_TRANSCLUSION_REMOVE_NAME:"Quote translusion: remove leading '> ' from each line",QUOTE_TRANSCLUSION_REMOVE_DESC:"Remove the leading '> ' from each line of the transclusion. This will improve readability of quotes in text only transclusions
Toggle ON: Remove leading '> '
Toggle OFF: Do not remove leading '> ' (note it will still be removed from the first row due to Obsidian API functionality)",GET_URL_TITLE_NAME:"Use iframely to resolve page title",GET_URL_TITLE_DESC:"Use the http://iframely.server.crestify.com/iframely?url= to get title of page when dropping a link into Excalidraw",MD_HEAD:"Markdown-embed settings",MD_HEAD_DESC:"You can transclude formatted markdown documents into drawings as images SHIFT drop from the file explorer or using the command palette action.",MD_TRANSCLUDE_WIDTH_NAME:"Default width of a transcluded markdown document",MD_TRANSCLUDE_WIDTH_DESC:"The width of the markdown page. This affects the word wrapping when transcluding longer paragraphs, and the width of the image element. You can override the default width of an embedded file using the [[filename#heading|WIDTHxMAXHEIGHT]] syntax in markdown view mode under embedded files.",MD_TRANSCLUDE_HEIGHT_NAME:"Default maximum height of a transcluded markdown document",MD_TRANSCLUDE_HEIGHT_DESC:"The embedded image will be as high as the markdown text requires, but not higher than this value. You can override this value by editing the embedded image link in markdown view mode with the following syntax [[filename#^blockref|WIDTHxMAXHEIGHT]].",MD_DEFAULT_FONT_NAME:"The default font typeface to use for embedded markdown files.",MD_DEFAULT_FONT_DESC:'Set this value to "Virgil" or "Cascadia" or the filename of a valid .ttf, .woff, or .woff2 font e.g. MyFont.woff2 You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font: font_or_filename',MD_DEFAULT_COLOR_NAME:"The default font color to use for embedded markdown files.",MD_DEFAULT_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font-color: steelblue',MD_DEFAULT_BORDER_COLOR_NAME:"The default border color to use for embedded markdown files.",MD_DEFAULT_BORDER_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-border-color: gray. Leave empty if you don\'t want a border. ',MD_CSS_NAME:"CSS file",MD_CSS_DESC:`The filename of the CSS to apply to markdown embeds. Provide the filename with extension (e.g. 'md-embed.css'). The css file may also be a plain markdown file (e.g. 'md-embed-css.md'), just make sure the content is written using valid css syntax. If you need to look at the HTML code you are applying the CSS to, then open Obsidian Developer Console (${DEVICE.isIOS||DEVICE.isMacOS?"CMD+OPT+i":"CTRL+SHIFT+i"}) and type in the following command: "ExcalidrawAutomate.mostRecentMarkdownSVG". This will display the most recent SVG generated by Excalidraw. Setting the font-family in the css is has limitations. By default only your operating system's standard fonts are available (see README for details). You can add one custom font beyond that using the setting above. You can override this css setting by adding the following frontmatter-key to the embedded markdown file: "excalidraw-css: css_file_in_vault|css-snippet".`,EMBED_HEAD:"Embed & Export",EMBED_IMAGE_CACHE_NAME:"Cache images for embedding in markdown",EMBED_IMAGE_CACHE_DESC:"Cache images for embedding in markdown. This will speed up the embedding process, but in case you compose images of several sub-component drawings, the embedded image in Markdown won't update until you open the drawing and save it to trigger an update of the cache.",EMBED_IMAGE_CACHE_CLEAR:"Purge Cache",BACKUP_CACHE_CLEAR:"Purge Backups",BACKUP_CACHE_CLEAR_CONFIRMATION:"This action will delete all Excalidraw drawing backups. Backups are used as a safety measure in case your drawing file gets damaged. Each time you open Obsidian the plugin automatically deletes backups for files that no longer exist in your Vault. Are you sure you want to clear all backups?",EMBED_REUSE_EXPORTED_IMAGE_NAME:"If found, use the already exported image for preview",EMBED_REUSE_EXPORTED_IMAGE_DESC:"This setting works in conjunction with the Auto-export SVG/PNG setting. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See demonstration here.",EMBED_PREVIEW_SVG_NAME:"Display SVG in markdown preview",EMBED_PREVIEW_SVG_DESC:"Toggle ON: Embed drawing as an SVG image into the markdown preview.
Toggle OFF: Embed drawing as a PNG image. Note, that some of the image block referencing features do not work with PNG embeds.",PREVIEW_MATCH_OBSIDIAN_NAME:"Excalidraw preview to match Obsidian theme",PREVIEW_MATCH_OBSIDIAN_DESC:"Image preview in documents should match the Obsidian theme. If enabled, when Obsidian is in dark mode, Excalidraw images will render in dark mode. When Obsidian is in light mode, Excalidraw will render light mode as well. You may want to switch 'Export image with background' off for a more Obsidian-integrated look and feel.",EMBED_WIDTH_NAME:"Default width of embedded (transcluded) image",EMBED_WIDTH_DESC:"The default width of an embedded drawing. This applies to live preview edit and reading mode, as well as to hover previews. You can specify a custom width when embedding an image using the ![[drawing.excalidraw|100]] or [[drawing.excalidraw|100x100]] format.",EMBED_TYPE_NAME:"Type of file to insert into the document",EMBED_TYPE_DESC:"When you embed an image into a document using the command palette this setting will specify if Excalidraw should embed the original Excalidraw file or a PNG or an SVG copy. You need to enable auto-export PNG / SVG (see below under Export Settings) for those image types to be available in the dropdown. For drawings that do not have a a corresponding PNG or SVG readily available the command palette action will insert a broken link. You need to open the original drawing and initiate export manually. This option will not autogenerate PNG/SVG files, but will simply reference the already existing files.",EMBED_WIKILINK_NAME:"Embed Drawing using Wiki link",EMBED_WIKILINK_DESC:"Toggle ON: Excalidraw will embed a [[wiki link]]. Toggle OFF: Excalidraw will embed a [markdown](link).",EXPORT_PNG_SCALE_NAME:"PNG export image scale",EXPORT_PNG_SCALE_DESC:"The size-scale of the exported PNG image",EXPORT_BACKGROUND_NAME:"Export image with background",EXPORT_BACKGROUND_DESC:"If turned off, the exported image will be transparent.",EXPORT_PADDING_NAME:"Image Padding",EXPORT_PADDING_DESC:"The padding (in pixels) around the exported SVG or PNG image. If you have curved lines close to the edge of the image they might get cropped during image export. You can increase this value to avoid cropping. You can also override this setting at a file level by adding the excalidraw-export-padding: 5 frontmatter key.",EXPORT_THEME_NAME:"Export image with theme",EXPORT_THEME_DESC:"Export the image matching the dark/light theme of your drawing. If turned off, drawings created in dark mode will appear as they would in light mode.",EXPORT_HEAD:"Auto-export Settings",EXPORT_SYNC_NAME:"Keep the .SVG and/or .PNG filenames in sync with the drawing file",EXPORT_SYNC_DESC:"When turned on, the plugin will automatically update the filename of the .SVG and/or .PNG files when the drawing in the same folder (and same name) is renamed. The plugin will also automatically delete the .SVG and/or .PNG files when the drawing in the same folder (and same name) is deleted. ",EXPORT_SVG_NAME:"Auto-export SVG",EXPORT_SVG_DESC:"Automatically create an SVG export of your drawing matching the title of your file. The plugin will save the *.SVG file in the same folder as the drawing. Embed the .svg file into your documents instead of Excalidraw making you embeds platform independent. While the auto-export switch is on, this file will get updated every time you edit the Excalidraw drawing with the matching name. You can override this setting on a file level by adding the excalidraw-autoexport frontmatter key. Valid values for this key are none,both,svg, and png",EXPORT_PNG_NAME:"Auto-export PNG",EXPORT_PNG_DESC:"Same as the auto-export SVG, but for *.PNG",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"Export both dark- and light-themed image",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"When enabled, Excalidraw will export two files instead of one: filename.dark.png, filename.light.png and/or filename.dark.svg and filename.light.svg
Double files will be exported both if auto-export SVG or PNG (or both) are enabled, as well as when clicking export on a single image.",COMPATIBILITY_HEAD:"Compatibility features",EXPORT_EXCALIDRAW_NAME:"Auto-export Excalidraw",EXPORT_EXCALIDRAW_DESC:"Same as the auto-export SVG, but for *.Excalidraw",SYNC_EXCALIDRAW_NAME:"Sync *.excalidraw with *.md version of the same drawing",SYNC_EXCALIDRAW_DESC:"If the modified date of the *.excalidraw file is more recent than the modified date of the *.md file then update the drawing in the .md file based on the .excalidraw file",COMPATIBILITY_MODE_NAME:"New drawings as legacy files",COMPATIBILITY_MODE_DESC:"By enabling this feature drawings you create with the ribbon icon, the command palette actions, and the file explorer are going to be all legacy *.excalidraw files. This setting will also turn off the reminder message when you open a legacy file for editing.",MATHJAX_NAME:"MathJax (LaTeX) javascript library host",MATHJAX_DESC:"If you are using LaTeX equiations in Excalidraw then the plugin needs to load a javascript library for that. Some users are unable to access certain host servers. If you are experiencing issues try changing the host here. You may need to restart Obsidian after closing settings, for this change to take effect.",LATEX_DEFAULT_NAME:"Default LaTeX formual for new equations",LATEX_DEFAULT_DESC:"Leave empty if you don't want a default formula. You can add default formatting here such as \\color{white}.",NONSTANDARD_HEAD:"Non-Excalidraw.com supported features",NONSTANDARD_DESC:"These features are not available on excalidraw.com. When exporting the drawing to Excalidraw.com these features will appear different.",CUSTOM_PEN_NAME:"Number of custom pens",CUSTOM_PEN_DESC:"You will see these pens next to the Obsidian Menu on the canvas. You can customize the pens on the canvas by long-pressing the pen button.",EXPERIMENTAL_HEAD:"Experimental features",EXPERIMENTAL_DESC:"Some of these setting will not take effect immediately, only when the File Explorer is refreshed, or Obsidian restarted.",FIELD_SUGGESTER_NAME:"Enable Field Suggester",FIELD_SUGGESTER_DESC:"Field Suggester borrowed from Breadcrumbs and Templater plugins. The Field Suggester will show an autocomplete menu when you type excalidraw- or ea. with function description as hints on the individual items in the list.",FILETYPE_NAME:"Display type (✏️) for excalidraw.md files in File Explorer",FILETYPE_DESC:"Excalidraw files will receive an indicator using the emoji or text defined in the next setting.",FILETAG_NAME:"Set the type indicator for excalidraw.md files",FILETAG_DESC:"The text or emoji to display as type indicator.",INSERT_EMOJI:"Insert an emoji",LIVEPREVIEW_NAME:"Immersive image embedding in live preview editing mode",LIVEPREVIEW_DESC:"Turn this on to support image embedding styles such as ![[drawing|width|style]] in live preview editing mode. The setting will not affect the currently open documents. You need close the open documents and re-open them for the change to take effect.",ENABLE_FOURTH_FONT_NAME:"Enable fourth font option",ENABLE_FOURTH_FONT_DESC:"By turning this on, you will see a fourth font button on the properties panel for text elements. Files that use this fourth font will (partly) lose their platform independence. Depending on the custom font set in settings, they will look differently when loaded in another vault, or at a later time. Also the 4th font will display as system default font on excalidraw.com, or other Excalidraw versions.",FOURTH_FONT_NAME:"Fourth font file",FOURTH_FONT_DESC:"Select a .ttf, .woff or .woff2 font file from your vault to use as the fourth font. If no file is selected, Excalidraw will use the Virgil font by default.",SCRIPT_SETTINGS_HEAD:"Settings for installed Scripts",TASKBONE_HEAD:"Taskbone Optical Character Recogntion",TASKBONE_DESC:"This is an experimental integration of optical character recognition into Excalidraw. Please note, that taskbone is an independent external service not provided by Excalidraw, nor the Excalidraw-Obsidian plugin project. The OCR service will grab legible text from freedraw lines and embedded pictures on your canvas and place the recognized text in the frontmatter of your drawing as well as onto clipboard. Having the text in the frontmatter will enable you to search in Obsidian for the text contents of these. Note, that the process of extracting the text from the image is not done locally, but via an online API. The taskbone service stores the image on its servers only as long as necessary for the text extraction. However, if this is a dealbreaker, then please don't use this feature.",TASKBONE_ENABLE_NAME:"Enable Taskbone",TASKBONE_ENABLE_DESC:"By enabling this service your agree to the Taskbone Terms and Conditions and the Privacy Policy.",TASKBONE_APIKEY_NAME:"Taskbone API Key",TASKBONE_APIKEY_DESC:"Taskbone offers a free service with a reasonable number of scans per month. If you want to use this feature more frequently, or you want to supoprt the developer of Taskbone (as you can imagine, there is no such thing as 'free', providing this awesome OCR service costs some money to the developer of Taskbone), you can purchase a paid API key from taskbone.com. In case you have purchased a key, simply overwrite this auto generated free-tier API-key with your paid key.",SELECT_FILE:"Select a file then press enter.",SELECT_FILE_WITH_OPTION_TO_SCALE:`Select a file then press ENTER, or SHIFT+${labelMETA()}+ENTER to insert at 100% scale.`,NO_MATCH:"No file matches your query.",SELECT_FILE_TO_LINK:"Select the file you want to insert the link for.",SELECT_DRAWING:"Select the image or drawing you want to insert",TYPE_FILENAME:"Type name of drawing to select.",SELECT_FILE_OR_TYPE_NEW:"Select existing drawing or type name of a new drawing then press Enter.",SELECT_TO_EMBED:"Select the drawing to insert into active document.",SELECT_MD:"Select the markdown document you want to insert",SELECT_PDF:"Select the PDF document you want to insert",PDF_PAGES_HEADER:"Pages to load?",PDF_PAGES_DESC:"Format: 1, 3-5, 7, 9-11",INFINITE_LOOP_WARNING:"EXCALIDRAW WARNING\nAborted loading embedded images due to infinite loop in file:\n",SCRIPT_EXECUTION_ERROR:"Script execution error. Please find error message on the developer console.",LOAD_FROM_BACKUP:"Excalidraw file was corrupted. Loading from backup file.",GOTO_FULLSCREEN:"Goto fullscreen mode",EXIT_FULLSCREEN:"Exit fullscreen mode",TOGGLE_FULLSCREEN:"Toggle fullscreen mode",TOGGLE_DISABLEBINDING:"Toggle to invert default binding behavior",TOGGLE_FRAME_RENDERING:"Toggle frame rendering",TOGGLE_FRAME_CLIPPING:"Toggle frame clipping",OPEN_LINK_CLICK:"Navigate to selected element link",OPEN_LINK_PROPS:"Open markdown-embed properties or open link in new window",NARROW_TO_HEADING:"Narrow to heading...",NARROW_TO_BLOCK:"Narrow to block...",SHOW_ENTIRE_FILE:"Show entire file",ZOOM_TO_FIT:"Zoom to fit",RELOAD:"Reload original link",OPEN_IN_BROWSER:"Open current link in browser",PROMPT_FILE_DOES_NOT_EXIST:"File does not exist. Do you want to create it?",PROMPT_ERROR_NO_FILENAME:"Error: Filename for new file may not be empty",PROMPT_ERROR_DRAWING_CLOSED:"Unknown error. It seems as if your drawing was closed or the drawing file is missing",PROMPT_TITLE_NEW_FILE:"New File",PROMPT_TITLE_CONFIRMATION:"Confirmation",PROMPT_BUTTON_CREATE_EXCALIDRAW:"Create Excalidraw",PROMPT_BUTTON_CREATE_MARKDOWN:"Create Markdown",PROMPT_BUTTON_NEVERMIND:"Nevermind",PROMPT_BUTTON_OK:"OK",PROMPT_BUTTON_CANCEL:"Cancel",PROMPT_BUTTON_INSERT_LINE:"Insert new line",PROMPT_BUTTON_INSERT_SPACE:"Insert space",PROMPT_BUTTON_INSERT_LINK:"Insert markdown link to file",PROMPT_BUTTON_UPPERCASE:"Uppercase"},enGB={},es={},fr={},hi={},id={},it={},ja={},ko={},nl={},no={},pl={},pt={},ptBR={},ro={},ru={},tr={},zhCN={INSTALL_SCRIPT:"安装此脚本",UPDATE_SCRIPT:"有可用更新 - 点击安装",CHECKING_SCRIPT:"检查更新中 - 点击重新安装",UNABLETOCHECK_SCRIPT:"检查更新失败 - 点击重新安装",UPTODATE_SCRIPT:"脚本已是最新 - 点击重新安装",OPEN_AS_EXCALIDRAW:"打开为 Excalidraw 绘图",TOGGLE_MODE:"在 Excalidraw 和 Markdown 模式之间切换",CONVERT_NOTE_TO_EXCALIDRAW:"转换空白笔记为 Excalidraw 绘图",CONVERT_EXCALIDRAW:"转换 *.excalidraw 为 *.md 文件",CREATE_NEW:"新建 Excalidraw 绘图",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (兼容 Logseq)",DOWNLOAD_LIBRARY:"导出 stencil 库为 *.excalidrawlib 文件",OPEN_EXISTING_NEW_PANE:"打开已有的绘图 - 于新面板",OPEN_EXISTING_ACTIVE_PANE:"打开已有的绘图 - 于当前面板",TRANSCLUDE:"嵌入绘图(形如 ![[drawing]])到当前文档",TRANSCLUDE_MOST_RECENT:"嵌入最近编辑过的绘图(形如 ![[drawing]])到当前文档",TOGGLE_LEFTHANDED_MODE:"切换为左手模式",NEW_IN_NEW_PANE:"新建绘图 - 于新面板",NEW_IN_NEW_TAB:"新建绘图 - 于新页签",NEW_IN_ACTIVE_PANE:"新建绘图 - 于当前面板",NEW_IN_POPOUT_WINDOW:"新建绘图 - 于新窗口",NEW_IN_NEW_PANE_EMBED:"新建绘图 - 于新面板 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_NEW_TAB_EMBED:"新建绘图 - 于新页签 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_ACTIVE_PANE_EMBED:"新建绘图 - 于当前面板 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_POPOUT_WINDOW_EMBED:"新建绘图 - 于新窗口 - 并将其嵌入(形如 ![[drawing]])到当前文档",EXPORT_SVG:"导出 SVG 文件到当前目录",EXPORT_PNG:"导出 PNG 文件到当前目录",EXPORT_SVG_WITH_SCENE:"导出 SVG 文件(包含 Scene)到当前目录",EXPORT_PNG_WITH_SCENE:"导出 PNG 文件(包含 Scene)到当前目录",TOGGLE_LOCK:"文本元素:原文模式(RAW)⟺ 预览模式(PREVIEW)",DELETE_FILE:"从库中删除所选图像(或 MD-Embed)的源文件",INSERT_LINK_TO_ELEMENT:`复制所选元素的内部链接(形如 [[file#^elementID]])。\n按住 ${labelCTRL()} 可复制元素所在分组的内部链接(形如 [[file#^group=elementID]])。\n按住 SHIFT 可复制所选元素周围区域的内部链接(形如 [[file#^area=elementID]])。\n按住 ${labelALT()} 可观看视频演示。`,INSERT_LINK_TO_ELEMENT_GROUP:"复制所选元素所在分组的内部链接(形如 [[file#^group=elementID]])",INSERT_LINK_TO_ELEMENT_AREA:"复制所选元素周围区域的内部链接(形如 [[file#^area=elementID]])",INSERT_LINK_TO_ELEMENT_NORMAL:"复制所选元素的内部链接(形如 [[file#^elementID]])",INSERT_LINK_TO_ELEMENT_ERROR:"未选择画布里的单个元素",INSERT_LINK_TO_ELEMENT_READY:"链接已生成并复制到剪贴板",INSERT_LINK:"插入文件的内部链接(形如 [[drawing]])到当前绘图",INSERT_IMAGE:"插入图像(以图像形式嵌入)到当前绘图",IMPORT_SVG:"插入 SVG 矢量图形到当前绘图(支持有限,尚不支持文本)",INSERT_MD:"插入 Markdown 文档(以图像形式嵌入)到当前绘图",INSERT_LATEX:`插入 LaTeX 公式到当前绘图。按住 ${labelALT()} 可观看视频演示。`,ENTER_LATEX:"输入 LaTeX 表达式",READ_RELEASE_NOTES:"阅读本插件的更新说明",RUN_OCR:"OCR 识别涂鸦和图片里的文本并复制到剪贴板",TRAY_MODE:"绘图工具属性页:面板模式 ⟺ 托盘模式",SEARCH:"搜索文本",RESET_IMG_TO_100:"重设图像元素的尺寸为 100%",TEMPORARY_DISABLE_AUTOSAVE:"临时禁用自动保存功能,直到 Obsidian 退出(勿点,除非你清楚自己在干什么)",TEMPORARY_ENABLE_AUTOSAVE:"恢复启用自动保存功能",INSTALL_SCRIPT_BUTTON:"安装或更新 Excalidraw 脚本",OPEN_AS_MD:"打开为 Markdown 文件",SAVE_AS_PNG:`导出 PNG 到当前目录(按住 ${labelCTRL()} 设定导出路径;按住 SHIFT 在导出时包含 Scene)`,SAVE_AS_SVG:`导出 SVG 到当前目录(按住 ${labelCTRL()} 设定导出路径;按住 SHIFT 在导出时包含 Scene)`,OPEN_LINK:"打开所选元素里的链接 \n(按住 SHIFT 在新面板打开)",EXPORT_EXCALIDRAW:"导出为 .Excalidraw 文件",LINK_BUTTON_CLICK_NO_TEXT:"请选择一个含有链接的图形或文本元素。",FILENAME_INVALID_CHARS:'文件名不能含有以下符号: * " \\ < > : | ? #',FORCE_SAVE:"保存绘图(并更新嵌入了该绘图的面板)",RAW:"文本元素正以原文(RAW)模式显示链接。\n点击切换到预览(PREVIEW)模式",PARSED:"文本元素正以预览(PREVIEW)模式显示链接。\n点击切换到原文(RAW)模式",NOFILE:"Excalidraw(没有文件)",COMPATIBILITY_MODE:"*.excalidraw 文件正以兼容模式打开。需要转换为新格式才能使用插件的全部功能。",CONVERT_FILE:"转换为新格式",RELEASE_NOTES_NAME:"显示更新说明",RELEASE_NOTES_DESC:"开启:每次更新本插件后,显示最新发行版本的说明。
关闭:您仍可以在 GitHub 上阅读更新说明。",NEWVERSION_NOTIFICATION_NAME:"通知插件更新",NEWVERSION_NOTIFICATION_DESC:"开启:当本插件存在可用更新时,显示通知。
关闭:您需要手动检查本插件的更新(设置 - 第三方插件 - 检查更新)。",FOLDER_NAME:"Excalidraw 文件夹",FOLDER_DESC:"新绘图的默认存储路径。若为空,将在库的根目录中创建新绘图。",FOLDER_EMBED_NAME:"将 Excalidraw 文件夹用于“新建绘图”命令创建的绘图",FOLDER_EMBED_DESC:"在命令面板中执行“新建绘图”系列命令时,新绘图的存储路径。
开启:使用 Excalidraw 文件夹。
关闭:使用 Obsidian 设置的新附件默认位置。",TEMPLATE_NAME:"Excalidraw 模板文件",TEMPLATE_DESC:"Excalidraw 模板文件的完整路径。
如果您的模板在默认的 Excalidraw 文件夹中且文件名是 Template.md,则此项应设为 Excalidraw/Template.md(也可省略 .md 扩展名,即 Excalidraw/Template)。
如果您在兼容模式下使用 Excalidraw,那么您的模板文件也必须是旧的 *.excalidraw 格式,例如 Excalidraw/Template.excalidraw。",SCRIPT_FOLDER_NAME:"Excalidraw 自动化脚本的文件夹(大小写敏感!)",SCRIPT_FOLDER_DESC:"此文件夹用于存放 Excalidraw 自动化脚本。您可以在 Obsidian 命令面板中执行这些脚本,还可以为喜欢的脚本分配快捷键,就像为其他 Obsidian 命令分配快捷键一样。
该项不能设为库的根目录。",SAVING_HEAD:"保存",COMPRESS_NAME:"压缩 Excalidraw JSON",COMPRESS_DESC:"Excalidraw 绘图文件默认将元素记录为 JSON 格式。开启此项,可将元素的 JSON 数据以 BASE64 编码(使用 LZ-String 算法)。这样做的好处是:一方面可以避免原来的明文 JSON 数据干扰 Obsidian 的文本搜索结果,另一方面减小了绘图文件的体积。
当您通过功能区按钮或命令将绘图切换成 Markdown 模式时,数据将被解码回 JSON 格式以便阅读和编辑;而当您切换回 Excalidraw 模式时,数据就会被再次编码。
开启此项后,对于之前已存在的未压缩的绘图文件,需要重新打开并保存它们才能生效。",AUTOSAVE_INTERVAL_DESKTOP_NAME:"桌面端定期保存时间间隔",AUTOSAVE_INTERVAL_DESKTOP_DESC:"每隔多长时间触发一次自动保存。但如果当前绘图没有发生改变,将不会触发自动保存。当 Obsidian 应用内的焦点离开活动文档(如关闭工作空间、点击菜单栏、切换到其他页签或面板等)的时候,会触发自动保存。直接退出 Obsidian 应用(不管是终结进程还是点关闭按钮)不会触发自动保存。",AUTOSAVE_INTERVAL_MOBILE_NAME:"移动端定期保存时间间隔",AUTOSAVE_INTERVAL_MOBILE_DESC:"建议在移动端设置更短的自动保存时间间隔。当 Obsidian 应用内的焦点离开活动文档(如关闭工作空间、点击菜单栏、切换到其他页签或面板等)的时候,会触发自动保存。直接退出 Obsidian 应用(在应用切换器中划掉)不会触发自动保存。此外,当您切换到其他应用时,有时候系统会自动清理 Obsidian 后台以释放资源。这种情况下,Excalidraw 无法保存最新的变动。",FILENAME_HEAD:"文件名",FILENAME_DESC:"

点击阅读日期和时间格式参考

",FILENAME_SAMPLE:"“新建绘图”系列命令创建的文件名形如:",FILENAME_EMBED_SAMPLE:"“新建绘图并嵌入到当前文档”系列命令创建的文件名形如:",FILENAME_PREFIX_NAME:"“新建绘图”系列命令创建的文件名前缀",FILENAME_PREFIX_DESC:"执行“新建绘图”系列命令时,创建的绘图文件名的第一部分",FILENAME_PREFIX_EMBED_NAME:"“新建绘图并嵌入到当前文档”系列命令创建的文件名前缀",FILENAME_PREFIX_EMBED_DESC:"执行“新建绘图并嵌入到当前文档”系列命令时,创建的绘图文件名是否以当前文档名作为前缀?
开启:
关闭:否",FILENAME_POSTFIX_NAME:"“新建绘图并嵌入到当前文档”系列命令创建的文件名的中间部分",FILENAME_POSTFIX_DESC:"介于文件名前缀和日期时间之间的文本。仅对“新建绘图并嵌入到当前文档”系列命令创建的绘图生效。",FILENAME_DATE_NAME:"文件名里的日期时间",FILENAME_DATE_DESC:"文件名的最后一部分。允许留空。",FILENAME_EXCALIDRAW_EXTENSION_NAME:"文件扩展名(.excalidraw.md 或 .md)",FILENAME_EXCALIDRAW_EXTENSION_DESC:"该选项在兼容模式(即非 Excalidraw 专用 Markdown 文件)下不会生效。
开启:使用 .excalidraw.md 作为扩展名。
关闭:使用 .md 作为扩展名。",DISPLAY_HEAD:"显示",LEFTHANDED_MODE_NAME:"左手模式",LEFTHANDED_MODE_DESC:"目前只在托盘模式下生效。若开启此项,则托盘(绘图工具属性页)将位于右侧。
开启:左手模式。
关闭:右手模式。",MATCH_THEME_NAME:"使新建的绘图匹配 Obsidian 主题",MATCH_THEME_DESC:"如果 Obsidian 使用黑暗主题,新建的绘图文件也将使用黑暗主题。
但是若设置了模板,新建的绘图文件将跟随模板主题;另外,此功能不会作用于已有的绘图。
开启:跟随 Obsidian 主题风格。
关闭:跟随模板主题风格。",MATCH_THEME_ALWAYS_NAME:"使已有的绘图匹配 Obsidian 主题",MATCH_THEME_ALWAYS_DESC:"如果 Obsidian 使用黑暗主题,则绘图文件也将以黑暗主题打开;反之亦然。
开启:匹配 Obsidian 主题风格。
关闭:采用上次保存时的主题风格。",MATCH_THEME_TRIGGER_NAME:"Excalidraw 主题跟随 Obsidian 主题变化",MATCH_THEME_TRIGGER_DESC:"开启此项,则切换 Obsidian 的黑暗/明亮主题时,已打开的 Excalidraw 面板的主题会随之改变。
开启:跟随主题变化。
关闭:不跟随主题变化。",DEFAULT_OPEN_MODE_NAME:"Excalidraw 的默认运行模式",DEFAULT_OPEN_MODE_DESC:"设置 Excalidraw 的运行模式:普通模式(Normal)/禅模式(Zen)/阅读模式(View)。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-default-mode: normal/zen/view 的键值对。",DEFAULT_PEN_MODE_NAME:"触控笔模式(Pen mode)",DEFAULT_PEN_MODE_DESC:"打开绘图时,是否自动开启触控笔模式?",DEFAULT_PINCHZOOM_NAME:"允许在触控笔模式下进行双指缩放",DEFAULT_PINCHZOOM_DESC:"在触控笔模式下使用自由画笔工具时,双指缩放可能造成干扰。
开启: 允许在触控笔模式下进行双指缩放
关闭: 禁止在触控笔模式下进行双指缩放",DEFAULT_WHEELZOOM_NAME:"鼠标滚轮缩放页面",DEFAULT_WHEELZOOM_DESC:`开启:鼠标滚轮为缩放页面,${labelCTRL()}+鼠标滚轮为滚动页面
关闭:鼠标滚轮为滚动页面,${labelCTRL()}+鼠标滚轮为缩放页面`,ZOOM_TO_FIT_NAME:"调节面板尺寸后自动缩放页面",ZOOM_TO_FIT_DESC:"调节面板尺寸后,自适应地缩放页面
开启:自动缩放。
关闭:禁用自动缩放。",ZOOM_TO_FIT_ONOPEN_NAME:"打开绘图时自动缩放页面",ZOOM_TO_FIT_ONOPEN_DESC:"打开绘图文件时,自适应地缩放页面
开启:自动缩放。
关闭:禁用自动缩放。",ZOOM_TO_FIT_MAX_LEVEL_NAME:"自动缩放的最高级别",ZOOM_TO_FIT_MAX_LEVEL_DESC:"自动缩放画布时,允许放大的最高级别。该值不能低于 0.5(50%)且不能超过 10(1000%)。",LINKS_HEAD:"链接(Links) & 以文本形式嵌入到绘图中的文档(Transclusion)",LINKS_DESC:`按住 ${labelCTRL()} 并点击包含 [[链接]] 的文本元素可以打开其中的链接。如果所选文本元素包含多个 [[有效的内部链接]] ,只会打开第一个链接;如果所选文本元素包含有效的 URL 链接 (如 https://http://),插件会在浏览器中打开链接。
链接的源文件被重命名时,绘图中相应的 [[内部链接]] 也会同步更新。若您不愿绘图中的链接外观因此而变化,可使用 [[内部链接|别名]]。`,ADJACENT_PANE_NAME:"在相邻面板中打开",ADJACENT_PANE_DESC:`按住 ${labelCTRL()}+SHIFT 并点击绘图里的内部链接时,插件默认会在新面板中打开该链接。
若开启此项,Excalidraw 会先尝试寻找已有的相邻面板(按照右侧、左侧、上方、下方的顺序),并在其中打开该链接。如果找不到,再在新面板中打开。`,MAINWORKSPACE_PANE_NAME:"在主工作区中打开",MAINWORKSPACE_PANE_DESC:`按住 ${labelCTRL()}+SHIFT 并点击绘图里的内部链接时,插件默认会在当前窗口的新面板中打开该链接。
若开启此项,Excalidraw 会在主工作区的面板中打开该链接。`,LINK_BRACKETS_NAME:"在链接的两侧显示 [[中括号]]",LINK_BRACKETS_DESC:"文本元素处于预览(PREVIEW)模式时,在内部链接的两侧显示中括号。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-link-brackets: true/false 的键值对。",LINK_PREFIX_NAME:"内部链接的前缀",LINK_PREFIX_DESC:'文本元素处于预览(PREVIEW)模式时,如果其中包含链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-link-prefix: "📍 " 的键值对。',URL_PREFIX_NAME:"外部链接的前缀",URL_PREFIX_DESC:'文本元素处于预览(PREVIEW)模式时,如果其中包含外部链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-url-prefix: "🌐 " 的键值对。',PARSE_TODO_NAME:"待办任务(Todo)",PARSE_TODO_DESC:"将文本元素中的 - [ ]- [x] 前缀显示为方框。",TODO_NAME:"未完成项目",TODO_DESC:"未完成的待办项目的符号",DONE_NAME:"已完成项目",DONE_DESC:"已完成的待办项目的符号",HOVERPREVIEW_NAME:"鼠标悬停预览内部链接",HOVERPREVIEW_DESC:`开启:在 Excalidraw 阅读模式(View)下,鼠标悬停在 [[内部链接]] 上即可预览;而在普通模式(Normal)下, 鼠标悬停在内部链接右上角的蓝色标识上即可预览。
关闭:鼠标悬停在 [[内部链接]] 上,并且按住 ${labelCTRL()} 才能预览。`,LINKOPACITY_NAME:"链接标识的透明度",LINKOPACITY_DESC:"含有链接的元素,其右上角的链接标识的透明度。介于 0(全透明)到 1(不透明)之间。",LINK_CTRL_CLICK_NAME:`按住 ${labelCTRL()} 并点击含有 [[链接]] 或 [别名](链接) 的文本来打开链接`,LINK_CTRL_CLICK_DESC:"如果此功能影响到您使用某些原版 Excalidraw 功能,可将其关闭。关闭后,您只能通过绘图面板标题栏中的链接按钮来打开链接。",TRANSCLUSION_WRAP_NAME:"Transclusion 的折行方式",TRANSCLUSION_WRAP_DESC:"中的 number 表示嵌入的文本溢出时,在第几个字符处进行折行。
此开关控制具体的折行方式。若开启,则严格在 number 处折行,禁止溢出;若关闭,则允许在 number 位置后最近的空格处折行。",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion 的默认折行位置",TRANSCLUSION_DEFAULT_WRAP_DESC:"除了通过 ![[doc#^block]]{number} 中的 number 来控制折行位置,您也可以在此设置 number 的默认值。
一般设为 0 即可,表示不设置固定的默认值,这样当您需要嵌入文档到便签中时,Excalidraw 能更好地帮您自动处理。",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Transclusion 的最大显示字符数",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"以 ![[内部链接]]![](内部链接) 的形式将文档以文本形式嵌入到绘图中时,该文档在绘图中可显示的最大字符数量。",QUOTE_TRANSCLUSION_REMOVE_NAME:"隐藏 Transclusion 行首的引用符号",QUOTE_TRANSCLUSION_REMOVE_DESC:"不显示 Transclusion 中每一行行首的 > 符号,以提高纯文本 Transclusion 的可读性。
开启:隐藏 > 符号
关闭:不隐藏 > 符号(注意,由于 Obsidian API 的原因,首行行首的 > 符号不会被隐藏)",GET_URL_TITLE_NAME:"使用 iframly 获取页面标题",GET_URL_TITLE_DESC:"拖放链接到 Excalidraw 时,使用 http://iframely.server.crestify.com/iframely?url= 来获取页面的标题。",MD_HEAD:"以图像形式嵌入到绘图中的 Markdown 文档(MD-Embed)",MD_HEAD_DESC:`您还可以将 Markdown 文档以图像形式(而非文本形式)嵌入到绘图中。方法是按住 ${labelCTRL()} 并从文件管理器中把文档拖入绘图,或者执行“以图像形式嵌入”系列命令。`,MD_TRANSCLUDE_WIDTH_NAME:"MD-Embed 的默认宽度",MD_TRANSCLUDE_WIDTH_DESC:"MD-Embed 的宽度。该选项会影响到折行,以及图像元素的宽度。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#标题|宽度x最大高度]]。",MD_TRANSCLUDE_HEIGHT_NAME:"MD-Embed 的默认最大高度",MD_TRANSCLUDE_HEIGHT_DESC:"MD-Embed 的高度取决于 Markdown 文档内容的多少,但最大不会超过该值。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#^块引ID|宽度x最大高度]]。",MD_DEFAULT_FONT_NAME:"MD-Embed 的默认字体",MD_DEFAULT_FONT_DESC:"可以设为 VirgilCasadia 或其他有效的 .ttf/.woff/.woff2 字体文件(如 我的字体.woff2)。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-font: 字体名或文件名 的键值对。",MD_DEFAULT_COLOR_NAME:"MD-Embed 的默认文本颜色",MD_DEFAULT_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-font-color: steelblue 的键值对。",MD_DEFAULT_BORDER_COLOR_NAME:"MD-Embed 的默认边框颜色",MD_DEFAULT_BORDER_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-border-color: gray 的键值对。
如果您不想要边框,请留空。",MD_CSS_NAME:"MD-Embed 的默认 CSS 样式表",MD_CSS_DESC:"MD-Embed 图像所采用的 CSS 样式表文件名。需包含扩展名,例如 md-embed.css。允许使用 Markdown 文件(如 md-embed-css.md),但其内容应符合 CSS 语法。
如果您要查询 CSS 所作用的 HTML 节点,请在 Obsidian 开发者控制台(CTRL+SHIFT+i)中键入命令:ExcalidrawAutomate.mostRecentMarkdownSVG —— 这将显示 Excalidraw 最近生成的 SVG。
此外,在 CSS 中不能任意地设置字体,您一般只能使用系统默认的标准字体(详见 README),但可以通过上面的设置来额外添加一个自定义字体。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-css: 库中的CSS文件或CSS片段 的键值对。",EMBED_HEAD:"嵌入到文档中的绘图(Embed) & 导出",EMBED_REUSE_EXPORTED_IMAGE_NAME:"将之前已导出的图像作为 Embed 的预览图(如果存在的话)",EMBED_REUSE_EXPORTED_IMAGE_DESC:"该选项与“自动导出 SVG/PNG 副本”选项配合使用。如果存在文件名相匹配的 SVG/PNG 副本,则将其作为 Embed 的预览图,而不再重新生成预览图。
该选项能够提高性能,尤其是当 Embed 中含有大量图像或 MD-Embed 时。但是,该选项也可能导致预览图无法立即响应你最新的修改,或者你对 Obsidian 主题风格的改变。
该选项仅作用于嵌入到文档中的绘图。由于种种原因,该技术无法用于加快绘图文件的打开速度。详见此说明。",EMBED_PREVIEW_SVG_NAME:"生成 SVG 格式的 Embed 预览图",EMBED_PREVIEW_SVG_DESC:"开启:在 Markdown 预览模式下,为 Embed 生成 SVG 格式的预览图。
关闭:为 Embed 生成 PNG 格式的预览图。注意:PNG 格式预览图不支持某些 绘图元素的块引用特性。",PREVIEW_MATCH_OBSIDIAN_NAME:"Embed 预览图匹配 Obsidian 主题",PREVIEW_MATCH_OBSIDIAN_DESC:"开启此项,则当 Obsidian 处于黑暗模式时,Embed 的预览图也会以黑暗模式渲染;当 Obsidian 处于明亮模式时,预览图也会以明亮模式渲染。
您可能还需要关闭“导出的图像包含背景”开关,来获得与 Obsidian 更加协调的观感。",EMBED_WIDTH_NAME:"Embed 预览图的默认宽度",EMBED_WIDTH_DESC:"该选项同时作用于 Obsidian 实时预览模式下的编辑视图和阅读视图,以及鼠标悬停时浮现的预览图。
您可为某个要嵌入到文档中的绘图(Embed)单独设置此项,方法是修改相应的链接格式为形如 ![[drawing.excalidraw|100]][[drawing.excalidraw|100x100]] 的格式。",EMBED_TYPE_NAME:"“嵌入绘图到当前文档”系列命令的源文件类型",EMBED_TYPE_DESC:"在命令面板中执行“嵌入绘图到当前文档”系列命令时,要嵌入绘图文件本身,还是嵌入其 PNG 或 SVG 副本。
如果您想选择 PNG 或 SVG 副本,需要先开启下方的“自动导出 PNG 副本”或“自动导出 SVG 副本”开关。
如果您选择了 PNG 或 SVG 副本,当副本不存在时,该命令将会插入一条损坏的链接,您需要打开绘图文件并手动导出副本才能修复 —— 也就是说,该选项不会自动帮您生成 PNG/SVG 副本,而只会引用已有的 PNG/SVG 副本。",EMBED_WIKILINK_NAME:"“嵌入绘图到当前文档”命令产生的内部链接类型",EMBED_WIKILINK_DESC:"开启:将产生 ![[Wiki 链接]]关闭:将产生 ![](Markdown 链接)。",EXPORT_PNG_SCALE_NAME:"导出的 PNG 图像的比例",EXPORT_PNG_SCALE_DESC:"导出的 PNG 图像的大小比例",EXPORT_BACKGROUND_NAME:"导出的图像包含背景",EXPORT_BACKGROUND_DESC:"如果关闭,将导出透明背景的图像。",EXPORT_PADDING_NAME:"导出的图像的空白边距",EXPORT_PADDING_DESC:"导出的 SVG/PNG 图像四周的空白边距(单位:像素)。
增加该值,可以避免在导出图像时,靠近图像边缘的图形被裁掉。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-export-padding: 5 的键值对。",EXPORT_THEME_NAME:"导出的图像包含主题",EXPORT_THEME_DESC:"导出与绘图的黑暗/明亮主题匹配的图像。如果关闭,在黑暗主题下导出的图像将和明亮主题一样。",EXPORT_HEAD:"导出设置",EXPORT_SYNC_NAME:"保持 SVG/PNG 文件名与绘图文件同步",EXPORT_SYNC_DESC:"打开后,当绘图文件被重命名时,插件将同步更新同文件夹下的同名 .SVG 和 .PNG 文件。当绘图文件被删除时,插件将自动删除同文件夹下的同名 .SVG 和 .PNG 文件。",EXPORT_SVG_NAME:"自动导出 SVG 副本",EXPORT_SVG_DESC:"自动导出和绘图文件同名的 SVG 副本。插件会将副本保存到绘图文件所在的文件夹中。在文档中嵌入这个 SVG 文件,相比直接嵌入绘图文件,具有更强的跨平台能力。
此开关开启时,每次您编辑 Excalidraw 绘图,其 SVG 文件副本都会同步更新。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-autoexport: none/both/svg/png的键值对",EXPORT_PNG_NAME:"自动导出 PNG 副本",EXPORT_PNG_DESC:"和“自动导出 SVG 副本”类似,但是导出格式为 *.PNG。",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"同时导出黑暗和明亮风格的图像",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"若开启,Excalidraw 将导出两个文件:filename.dark.png(或 filename.dark.svg)和 filename.light.png(或 filename.light.svg)。
该选项可作用于“自动导出 SVG 副本”、“自动导出 PNG 副本”,以及其他的手动的导出命令。",COMPATIBILITY_HEAD:"兼容性设置",EXPORT_EXCALIDRAW_NAME:"自动导出 Excalidraw 旧格式副本",EXPORT_EXCALIDRAW_DESC:"和“自动导出 SVG 副本”类似,但是导出格式为 *.excalidraw。",SYNC_EXCALIDRAW_NAME:"新旧格式绘图文件的内容保持同步",SYNC_EXCALIDRAW_DESC:"如果旧格式(*.excalidraw)绘图文件的修改日期比新格式(*.md)更新,则根据旧格式文件的内容来更新新格式文件。",COMPATIBILITY_MODE_NAME:"以旧格式创建新绘图",COMPATIBILITY_MODE_DESC:"开启此功能后,您通过功能区按钮、命令面板、文件浏览器等创建的绘图都将是旧格式(*.excalidraw)。此外,您打开旧格式绘图文件时将不再收到提醒消息。",MATHJAX_NAME:"MathJax (LaTeX) 的 javascript 库服务器",MATHJAX_DESC:"如果您在绘图中使用 LaTeX,插件需要从服务器获取并加载一个 javascript 库。如果您的网络无法访问某些库服务器,可以尝试通过此选项更换库服务器。更改此选项后,您可能需要重启 Obsidian 来使其生效。",NONSTANDARD_HEAD:"非 Excalidraw.com 官方支持的特性",NONSTANDARD_DESC:"这些特性不受 Excalidraw.com 官方支持。当导出绘图到 Excalidraw.com 时,这些特性将会发生变化。",CUSTOM_PEN_NAME:"自定义画笔的数量",CUSTOM_PEN_DESC:"在画布上的 Obsidian 菜单旁边切换自定义画笔。长按画笔按钮可以修改其样式。",EXPERIMENTAL_HEAD:"实验性功能",EXPERIMENTAL_DESC:"以下部分设置不会立即生效,需要刷新文件资源管理器或者重启 Obsidian 才会生效。",FIELD_SUGGESTER_NAME:"开启字段建议",FIELD_SUGGESTER_DESC:"开启后,当您在编辑器中输入 excalidraw- 或者 ea. 时,会弹出一个带有函数说明的自动补全提示菜单。
该功能借鉴了 Breadcrumbs 和 Templater 插件。",FILETYPE_NAME:"在文件浏览器中为 excalidraw.md 文件添加类型标识符(如 ✏️)",FILETYPE_DESC:"可通过下一项设置来自定义类型标识符。",FILETAG_NAME:"excalidraw.md 文件的类型标识符",FILETAG_DESC:"要显示为类型标识符的 emoji 或文本。",INSERT_EMOJI:"插入 emoji",LIVEPREVIEW_NAME:"嵌入绘图到文档时,模拟嵌入图像的语法",LIVEPREVIEW_DESC:"开启此项,则可在 Obsidian 实时预览模式的编辑视图下,用形如 ![[绘图|宽度|样式]] 的语法来嵌入绘图。
该选项不会在已打开的文档中立刻生效 —— 你需要重新打开此文档来使其生效。",ENABLE_FOURTH_FONT_NAME:"为文本元素启用本地字体",ENABLE_FOURTH_FONT_DESC:"开启此项后,文本元素的属性面板里会多出一个本地字体按钮。
使用了本地字体的绘图文件,将会失去一部分跨平台能力 —— 若将绘图文件移动到其他库中打开,显示效果可能会截然不同;若在 excalidraw.com 或者其他版本的 Excalidraw 中打开,使用本地字体的文本会变回系统默认字体。",FOURTH_FONT_NAME:"本地字体文件",FOURTH_FONT_DESC:"选择库文件夹中的一个 .ttf, .woff 或 .woff2 字体文件作为本地字体文件。若未选择文件,则使用默认的 Virgil 字体。",SCRIPT_SETTINGS_HEAD:"已安装脚本的设置",TASKBONE_HEAD:"Taskbone OCR(光学符号识别)",TASKBONE_DESC:"这是一个将 OCR 融入 Excalidraw 的实验性功能。请注意,Taskbone 是一项独立的外部服务,而不是由 Excalidraw 或 Obsidian-excalidraw-plugin 项目提供的。OCR 能够对画布上用自由画笔工具写下的涂鸦或者嵌入的图像进行文本识别,并将识别出来的文本写入绘图文件的 frontmatter,同时复制到剪贴板。之所以要写入 frontmatter 是为了便于您在 Obsidian 中能够搜索到这些文本。注意,识别的过程不是在本地进行的,而是通过在线 API,图像会被上传到 taskbone 的服务器(仅用于识别目的)。如果您对此敏感,请不要使用这个功能。",TASKBONE_ENABLE_NAME:"启用 Taskbone",TASKBONE_ENABLE_DESC:"启用这个功能意味着你同意 Taskbone 条款及细则 以及 隐私政策.",TASKBONE_APIKEY_NAME:"Taskbone API Key",TASKBONE_APIKEY_DESC:"Taskbone 的免费 API key 提供了一定数量的每月识别次数。如果您非常频繁地使用此功能,或者想要支持 Taskbone 的开发者(您懂的,没有人能用爱发电,Taskbone 开发者也需要投入资金才能持续运行这项 OCR 服务)您可以到 taskbone.com 购买一个商用 API key。购买后请将它填写到旁边这个文本框里,替换掉原本自动生成的免费 API key。",SELECT_FILE:"选择一个文件后按回车。",SELECT_FILE_WITH_OPTION_TO_SCALE:`选择一个文件后按回车,或者 SHIFT+${labelMETA()}+ENTER 以 100% 尺寸插入。`,NO_MATCH:"查询不到匹配的文件。",SELECT_FILE_TO_LINK:"选择要插入(链接)到当前绘图中的文件。",SELECT_DRAWING:"选择要插入(以图像形式嵌入)到当前绘图中的图像。",TYPE_FILENAME:"键入要选择的绘图名称。",SELECT_FILE_OR_TYPE_NEW:"选择已有绘图,或者新绘图的类型,然后按回车。",SELECT_TO_EMBED:"选择要插入(嵌入)到当前文档中的绘图。",SELECT_MD:"选择要插入(以图像形式嵌入)到当前绘图中的 Markdown 文档。",INFINITE_LOOP_WARNING:"EXCALIDRAW 警告\n停止加载嵌入的图像,因为此文件中存在死循环:\n",SCRIPT_EXECUTION_ERROR:"脚本运行错误。请在开发者控制台中查看错误信息。",LOAD_FROM_BACKUP:"Excalidraw 文件已损坏。尝试从备份文件中加载。",GOTO_FULLSCREEN:"进入全屏模式",EXIT_FULLSCREEN:"退出全屏模式",TOGGLE_FULLSCREEN:"切换全屏模式",OPEN_LINK_CLICK:"打开所选的图形或文本元素里的链接",OPEN_LINK_PROPS:"编辑所选 MD-Embed 的内部链接,或者打开所选的图形或文本元素里的链接"},zhTW={};const localeMap={ar:ar,cs:cz,da:da,de:de,en:en,"en-gb":enGB,es:es,fr:fr,hi:hi,id:id,it:it,ja:ja,ko:ko,nl:nl,nn:no,pl:pl,pt:pt,"pt-br":ptBR,ro:ro,ru:ru,tr:tr,"zh-cn":zhCN,"zh-tw":zhTW},locale=localeMap[obsidian_module.moment.locale()];function t$d(e){return locale||errorlog({where:"helpers.t",message:"Error: Excalidraw locale not found",locale:obsidian_module.moment.locale()}),locale&&locale[e]||en[e]}var html2canvasExports={},html2canvas$1={get exports(){return html2canvasExports},set exports(e){html2canvasExports=e}};html2canvas$1.exports=function(){ /*! ***************************************************************************** Copyright (c) Microsoft Corporation. @@ -14,8 +14,8 @@ const EXCALIDRAW_PACKAGES = "PQKhCgAIUgBAbAlgYwKYDsDOrICVUCGyALlDAE6EkB0ADuQPYAm OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ -var e=function(t,A){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var A in t)Object.prototype.hasOwnProperty.call(t,A)&&(e[A]=t[A])},e(t,A)};function t(t,A){if("function"!=typeof A&&null!==A)throw new TypeError("Class extends value "+String(A)+" is not a constructor or null");function i(){this.constructor=t}e(t,A),t.prototype=null===A?Object.create(A):(i.prototype=A.prototype,new i)}var A=function(){return A=Object.assign||function(e){for(var t,A=1,i=arguments.length;A0&&n[n.length-1])||6!==a[0]&&2!==a[0])){r=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]=55296&&n<=56319&&A>10),r%1024+56320)),(n+1===A||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d="undefined"==typeof Uint8Array?[]:new Uint8Array(256),h=0;h=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",E="undefined"==typeof Uint8Array?[]:new Uint8Array(256),B=0;B>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(e),i=Array.isArray(A)?function(e){for(var t=e.length,A=[],i=0;i0;){var r=i[--a];if(Array.isArray(e)?-1!==e.indexOf(r):e===r)for(var s=A;s<=i.length;){var o;if((o=i[++s])===t)return!0;if(o!==b)break}if(r!==b)break}return!1},ie=function(e,t){for(var A=e;A>=0;){var i=t[A];if(i!==b)return i;A--}return 0},ne=function(e,t,A,i,n){if(0===A[i])return X;var a=i-1;if(Array.isArray(n)&&!0===n[a])return X;var r=a-1,s=a+1,o=t[a],l=r>=0?t[r]:0,c=t[s];if(2===o&&3===c)return X;if(-1!==Z.indexOf(o))return"!";if(-1!==Z.indexOf(c))return X;if(-1!==_.indexOf(c))return X;if(8===ie(a,t))return Y;if(11===j.get(e[a]))return X;if((o===D||o===N)&&11===j.get(e[s]))return X;if(7===o||7===c)return X;if(9===o)return X;if(-1===[b,v,C].indexOf(o)&&9===c)return X;if(-1!==[y,F,x,k,M].indexOf(c))return X;if(ie(a,t)===I)return X;if(Ae(23,I,a,t))return X;if(Ae([y,F],T,a,t))return X;if(Ae(12,12,a,t))return X;if(o===b)return Y;if(23===o||23===c)return X;if(16===c||16===o)return Y;if(-1!==[v,C,T].indexOf(c)||14===o)return X;if(36===l&&-1!==te.indexOf(o))return X;if(o===M&&36===c)return X;if(c===S)return X;if(-1!==J.indexOf(c)&&o===U||-1!==J.indexOf(o)&&c===U)return X;if(o===O&&-1!==[P,D,N].indexOf(c)||-1!==[P,D,N].indexOf(o)&&c===Q)return X;if(-1!==J.indexOf(o)&&-1!==q.indexOf(c)||-1!==q.indexOf(o)&&-1!==J.indexOf(c))return X;if(-1!==[O,Q].indexOf(o)&&(c===U||-1!==[I,C].indexOf(c)&&t[s+1]===U)||-1!==[I,C].indexOf(o)&&c===U||o===U&&-1!==[U,M,k].indexOf(c))return X;if(-1!==[U,M,k,y,F].indexOf(c))for(var d=a;d>=0;){if((h=t[d])===U)return X;if(-1===[M,k].indexOf(h))break;d--}if(-1!==[O,Q].indexOf(c))for(d=-1!==[y,F].indexOf(o)?r:a;d>=0;){var h;if((h=t[d])===U)return X;if(-1===[M,k].indexOf(h))break;d--}if(V===o&&-1!==[V,K,H,R].indexOf(c)||-1!==[K,H].indexOf(o)&&-1!==[K,G].indexOf(c)||-1!==[G,R].indexOf(o)&&c===G)return X;if(-1!==ee.indexOf(o)&&-1!==[S,Q].indexOf(c)||-1!==ee.indexOf(c)&&o===O)return X;if(-1!==J.indexOf(o)&&-1!==J.indexOf(c))return X;if(o===k&&-1!==J.indexOf(c))return X;if(-1!==J.concat(U).indexOf(o)&&c===I&&-1===z.indexOf(e[s])||-1!==J.concat(U).indexOf(c)&&o===F)return X;if(41===o&&41===c){for(var u=A[a],g=1;u>0&&41===t[--u];)g++;if(g%2!=0)return X}return o===D&&c===N?X:Y},ae=function(e,t){t||(t={lineBreak:"normal",wordBreak:"normal"});var A=function(e,t){void 0===t&&(t="strict");var A=[],i=[],n=[];return e.forEach((function(e,a){var r=j.get(e);if(r>50?(n.push(!0),r-=50):n.push(!1),-1!==["normal","auto","loose"].indexOf(t)&&-1!==[8208,8211,12316,12448].indexOf(e))return i.push(a),A.push(16);if(4===r||11===r){if(0===a)return i.push(a),A.push(L);var s=A[a-1];return-1===$.indexOf(s)?(i.push(i[a-1]),A.push(s)):(i.push(a),A.push(L))}return i.push(a),31===r?A.push("strict"===t?T:P):r===W||29===r?A.push(L):43===r?e>=131072&&e<=196605||e>=196608&&e<=262141?A.push(P):A.push(L):void A.push(r)})),[i,A,n]}(e,t.lineBreak),i=A[0],n=A[1],a=A[2];"break-all"!==t.wordBreak&&"break-word"!==t.wordBreak||(n=n.map((function(e){return-1!==[U,L,W].indexOf(e)?P:e})));var r="keep-all"===t.wordBreak?a.map((function(t,A){return t&&e[A]>=19968&&e[A]<=40959})):void 0;return[i,n,r]},re=function(){function e(e,t,A,i){this.codePoints=e,this.required="!"===t,this.start=A,this.end=i}return e.prototype.slice=function(){return l.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),se=45,oe=43,le=-1,ce=function(e){return e>=48&&e<=57},de=function(e){return ce(e)||e>=65&&e<=70||e>=97&&e<=102},he=function(e){return 10===e||9===e||32===e},ue=function(e){return function(e){return function(e){return e>=97&&e<=122}(e)||function(e){return e>=65&&e<=90}(e)}(e)||function(e){return e>=128}(e)||95===e},ge=function(e){return ue(e)||ce(e)||e===se},pe=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},me=function(e,t){return 92===e&&10!==t},we=function(e,t,A){return e===se?ue(t)||me(t,A):!!ue(e)||!(92!==e||!me(e,t))},fe=function(e,t,A){return e===oe||e===se?!!ce(t)||46===t&&ce(A):ce(46===e?t:e)},Ee=function(e){var t=0,A=1;e[t]!==oe&&e[t]!==se||(e[t]===se&&(A=-1),t++);for(var i=[];ce(e[t]);)i.push(e[t++]);var n=i.length?parseInt(l.apply(void 0,i),10):0;46===e[t]&&t++;for(var a=[];ce(e[t]);)a.push(e[t++]);var r=a.length,s=r?parseInt(l.apply(void 0,a),10):0;69!==e[t]&&101!==e[t]||t++;var o=1;e[t]!==oe&&e[t]!==se||(e[t]===se&&(o=-1),t++);for(var c=[];ce(e[t]);)c.push(e[t++]);var d=c.length?parseInt(l.apply(void 0,c),10):0;return A*(n+s*Math.pow(10,-r))*Math.pow(10,o*d)},Be={type:2},be={type:3},ve={type:4},Ce={type:13},ye={type:8},Fe={type:21},xe={type:9},Se={type:10},Te={type:11},Ie={type:12},ke={type:14},Ue={type:23},Qe={type:1},Oe={type:25},Me={type:24},Le={type:26},De={type:27},Ne={type:28},He={type:29},Re={type:31},Pe={type:32},Ve=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(o(e))},e.prototype.read=function(){for(var e=[],t=this.consumeToken();t!==Pe;)e.push(t),t=this.consumeToken();return e},e.prototype.consumeToken=function(){var e=this.consumeCodePoint();switch(e){case 34:return this.consumeStringToken(34);case 35:var t=this.peekCodePoint(0),A=this.peekCodePoint(1),i=this.peekCodePoint(2);if(ge(t)||me(A,i)){var n=we(t,A,i)?2:1;return{type:5,value:this.consumeName(),flags:n}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Ce;break;case 39:return this.consumeStringToken(39);case 40:return Be;case 41:return be;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),ke;break;case oe:if(fe(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return ve;case se:var a=e,r=this.peekCodePoint(0),s=this.peekCodePoint(1);if(fe(a,r,s))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(we(a,r,s))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(r===se&&62===s)return this.consumeCodePoint(),this.consumeCodePoint(),Me;break;case 46:if(fe(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var o=this.consumeCodePoint();if(42===o&&47===(o=this.consumeCodePoint()))return this.consumeToken();if(o===le)return this.consumeToken()}break;case 58:return Le;case 59:return De;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===se&&this.peekCodePoint(2)===se)return this.consumeCodePoint(),this.consumeCodePoint(),Oe;break;case 64:var c=this.peekCodePoint(0),d=this.peekCodePoint(1),h=this.peekCodePoint(2);if(we(c,d,h))return{type:7,value:this.consumeName()};break;case 91:return Ne;case 92:if(me(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return He;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),ye;break;case 123:return Te;case 125:return Ie;case 117:case 85:var u=this.peekCodePoint(0),g=this.peekCodePoint(1);return u!==oe||!de(g)&&63!==g||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),xe;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),Fe;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Se;break;case le:return Pe}return he(e)?(this.consumeWhiteSpace(),Re):ce(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):ue(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:l(e)}},e.prototype.consumeCodePoint=function(){var e=this._value.shift();return void 0===e?-1:e},e.prototype.reconsumeCodePoint=function(e){this._value.unshift(e)},e.prototype.peekCodePoint=function(e){return e>=this._value.length?-1:this._value[e]},e.prototype.consumeUnicodeRangeToken=function(){for(var e=[],t=this.consumeCodePoint();de(t)&&e.length<6;)e.push(t),t=this.consumeCodePoint();for(var A=!1;63===t&&e.length<6;)e.push(t),t=this.consumeCodePoint(),A=!0;if(A)return{type:30,start:parseInt(l.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt(l.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var i=parseInt(l.apply(void 0,e),16);if(this.peekCodePoint(0)===se&&de(this.peekCodePoint(1))){this.consumeCodePoint(),t=this.consumeCodePoint();for(var n=[];de(t)&&n.length<6;)n.push(t),t=this.consumeCodePoint();return{type:30,start:i,end:parseInt(l.apply(void 0,n),16)}}return{type:30,start:i,end:i}},e.prototype.consumeIdentLikeToken=function(){var e=this.consumeName();return"url"===e.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:e}):{type:20,value:e}},e.prototype.consumeUrlToken=function(){var e=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===le)return{type:22,value:""};var t=this.peekCodePoint(0);if(39===t||34===t){var A=this.consumeStringToken(this.consumeCodePoint());return 0===A.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===le||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:A.value}):(this.consumeBadUrlRemnants(),Ue)}for(;;){var i=this.consumeCodePoint();if(i===le||41===i)return{type:22,value:l.apply(void 0,e)};if(he(i))return this.consumeWhiteSpace(),this.peekCodePoint(0)===le||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:l.apply(void 0,e)}):(this.consumeBadUrlRemnants(),Ue);if(34===i||39===i||40===i||pe(i))return this.consumeBadUrlRemnants(),Ue;if(92===i){if(!me(i,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),Ue;e.push(this.consumeEscapedCodePoint())}else e.push(i)}},e.prototype.consumeWhiteSpace=function(){for(;he(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||e===le)return;me(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var t="";e>0;){var A=Math.min(5e4,e);t+=l.apply(void 0,this._value.splice(0,A)),e-=A}return this._value.shift(),t},e.prototype.consumeStringToken=function(e){for(var t="",A=0;;){var i=this._value[A];if(i===le||void 0===i||i===e)return{type:0,value:t+=this.consumeStringSlice(A)};if(10===i)return this._value.splice(0,A),Qe;if(92===i){var n=this._value[A+1];n!==le&&void 0!==n&&(10===n?(t+=this.consumeStringSlice(A),A=-1,this._value.shift()):me(i,n)&&(t+=this.consumeStringSlice(A),t+=l(this.consumeEscapedCodePoint()),A=-1))}A++}},e.prototype.consumeNumber=function(){var e=[],t=4,A=this.peekCodePoint(0);for(A!==oe&&A!==se||e.push(this.consumeCodePoint());ce(this.peekCodePoint(0));)e.push(this.consumeCodePoint());A=this.peekCodePoint(0);var i=this.peekCodePoint(1);if(46===A&&ce(i))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;ce(this.peekCodePoint(0));)e.push(this.consumeCodePoint());A=this.peekCodePoint(0),i=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((69===A||101===A)&&((i===oe||i===se)&&ce(n)||ce(i)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;ce(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[Ee(e),t]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),t=e[0],A=e[1],i=this.peekCodePoint(0),n=this.peekCodePoint(1),a=this.peekCodePoint(2);return we(i,n,a)?{type:15,number:t,flags:A,unit:this.consumeName()}:37===i?(this.consumeCodePoint(),{type:16,number:t,flags:A}):{type:17,number:t,flags:A}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(de(e)){for(var t=l(e);de(this.peekCodePoint(0))&&t.length<6;)t+=l(this.consumeCodePoint());he(this.peekCodePoint(0))&&this.consumeCodePoint();var A=parseInt(t,16);return 0===A||function(e){return e>=55296&&e<=57343}(A)||A>1114111?65533:A}return e===le?65533:e},e.prototype.consumeName=function(){for(var e="";;){var t=this.consumeCodePoint();if(ge(t))e+=l(t);else{if(!me(t,this.peekCodePoint(0)))return this.reconsumeCodePoint(t),e;e+=l(this.consumeEscapedCodePoint())}}},e}(),Ke=function(){function e(e){this._tokens=e}return e.create=function(t){var A=new Ve;return A.write(t),new e(A.read())},e.parseValue=function(t){return e.create(t).parseComponentValue()},e.parseValues=function(t){return e.create(t).parseComponentValues()},e.prototype.parseComponentValue=function(){for(var e=this.consumeToken();31===e.type;)e=this.consumeToken();if(32===e.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(e);var t=this.consumeComponentValue();do{e=this.consumeToken()}while(31===e.type);if(32===e.type)return t;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},e.prototype.parseComponentValues=function(){for(var e=[];;){var t=this.consumeComponentValue();if(32===t.type)return e;e.push(t),e.push()}},e.prototype.consumeComponentValue=function(){var e=this.consumeToken();switch(e.type){case 11:case 28:case 2:return this.consumeSimpleBlock(e.type);case 19:return this.consumeFunction(e)}return e},e.prototype.consumeSimpleBlock=function(e){for(var t={type:e,values:[]},A=this.consumeToken();;){if(32===A.type||_e(A,e))return t;this.reconsumeToken(A),t.values.push(this.consumeComponentValue()),A=this.consumeToken()}},e.prototype.consumeFunction=function(e){for(var t={name:e.value,values:[],type:18};;){var A=this.consumeToken();if(32===A.type||3===A.type)return t;this.reconsumeToken(A),t.values.push(this.consumeComponentValue())}},e.prototype.consumeToken=function(){var e=this._tokens.shift();return void 0===e?Pe:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),Ge=function(e){return 15===e.type},We=function(e){return 17===e.type},ze=function(e){return 20===e.type},Xe=function(e){return 0===e.type},Ye=function(e,t){return ze(e)&&e.value===t},je=function(e){return 31!==e.type},Je=function(e){return 31!==e.type&&4!==e.type},Ze=function(e){var t=[],A=[];return e.forEach((function(e){if(4===e.type){if(0===A.length)throw new Error("Error parsing function args, zero tokens for arg");return t.push(A),void(A=[])}31!==e.type&&A.push(e)})),A.length&&t.push(A),t},_e=function(e,t){return 11===t&&12===e.type||28===t&&29===e.type||2===t&&3===e.type},qe=function(e){return 17===e.type||15===e.type},$e=function(e){return 16===e.type||qe(e)},et=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},tt={type:17,number:0,flags:4},At={type:16,number:50,flags:4},it={type:16,number:100,flags:4},nt=function(e,t,A){var i=e[0],n=e[1];return[at(i,t),at(void 0!==n?n:i,A)]},at=function(e,t){if(16===e.type)return e.number/100*t;if(Ge(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},rt="grad",st="turn",ot=function(e,t){if(15===t.type)switch(t.unit){case"deg":return Math.PI*t.number/180;case rt:return Math.PI/200*t.number;case"rad":return t.number;case st:return 2*Math.PI*t.number}throw new Error("Unsupported angle type")},lt=function(e){return 15===e.type&&("deg"===e.unit||e.unit===rt||"rad"===e.unit||e.unit===st)},ct=function(e){switch(e.filter(ze).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[tt,tt];case"to top":case"bottom":return dt(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[tt,it];case"to right":case"left":return dt(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[it,it];case"to bottom":case"top":return dt(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[it,tt];case"to left":case"right":return dt(270)}return 0},dt=function(e){return Math.PI*e/180},ht=function(e,t){if(18===t.type){var A=Bt[t.name];if(void 0===A)throw new Error('Attempting to parse an unsupported color function "'+t.name+'"');return A(e,t.values)}if(5===t.type){if(3===t.value.length){var i=t.value.substring(0,1),n=t.value.substring(1,2),a=t.value.substring(2,3);return pt(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),1)}if(4===t.value.length){i=t.value.substring(0,1),n=t.value.substring(1,2),a=t.value.substring(2,3);var r=t.value.substring(3,4);return pt(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),parseInt(r+r,16)/255)}if(6===t.value.length)return i=t.value.substring(0,2),n=t.value.substring(2,4),a=t.value.substring(4,6),pt(parseInt(i,16),parseInt(n,16),parseInt(a,16),1);if(8===t.value.length)return i=t.value.substring(0,2),n=t.value.substring(2,4),a=t.value.substring(4,6),r=t.value.substring(6,8),pt(parseInt(i,16),parseInt(n,16),parseInt(a,16),parseInt(r,16)/255)}if(20===t.type){var s=vt[t.value.toUpperCase()];if(void 0!==s)return s}return vt.TRANSPARENT},ut=function(e){return 0==(255&e)},gt=function(e){var t=255&e,A=255&e>>8,i=255&e>>16,n=255&e>>24;return t<255?"rgba("+n+","+i+","+A+","+t/255+")":"rgb("+n+","+i+","+A+")"},pt=function(e,t,A,i){return(e<<24|t<<16|A<<8|Math.round(255*i)<<0)>>>0},mt=function(e,t){if(17===e.type)return e.number;if(16===e.type){var A=3===t?1:255;return 3===t?e.number/100*A:Math.round(e.number/100*A)}return 0},wt=function(e,t){var A=t.filter(Je);if(3===A.length){var i=A.map(mt),n=i[0],a=i[1],r=i[2];return pt(n,a,r,1)}if(4===A.length){var s=A.map(mt),o=(n=s[0],a=s[1],r=s[2],s[3]);return pt(n,a,r,o)}return 0};function ft(e,t,A){return A<0&&(A+=1),A>=1&&(A-=1),A<1/6?(t-e)*A*6+e:A<.5?t:A<2/3?6*(t-e)*(2/3-A)+e:e}var Et=function(e,t){var A=t.filter(Je),i=A[0],n=A[1],a=A[2],r=A[3],s=(17===i.type?dt(i.number):ot(e,i))/(2*Math.PI),o=$e(n)?n.number/100:0,l=$e(a)?a.number/100:0,c=void 0!==r&&$e(r)?at(r,1):1;if(0===o)return pt(255*l,255*l,255*l,1);var d=l<=.5?l*(o+1):l+o-l*o,h=2*l-d,u=ft(h,d,s+1/3),g=ft(h,d,s),p=ft(h,d,s-1/3);return pt(255*u,255*g,255*p,c)},Bt={hsl:Et,hsla:Et,rgb:wt,rgba:wt},bt=function(e,t){return ht(e,Ke.create(t).parseComponentValue())},vt={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},Ct={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(ze(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},yt={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Ft=function(e,t){var A=ht(e,t[0]),i=t[1];return i&&$e(i)?{color:A,stop:i}:{color:A,stop:null}},xt=function(e,t){var A=e[0],i=e[e.length-1];null===A.stop&&(A.stop=tt),null===i.stop&&(i.stop=it);for(var n=[],a=0,r=0;ra?n.push(o):n.push(a),a=o}else n.push(null)}var l=null;for(r=0;re.optimumDistance)?{optimumCorner:t,optimumDistance:s}:e}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},kt=function(e,t){var A=dt(180),i=[];return Ze(t).forEach((function(t,n){if(0===n){var a=t[0];if(20===a.type&&-1!==["top","left","right","bottom"].indexOf(a.value))return void(A=ct(t));if(lt(a))return void(A=(ot(e,a)+dt(270))%dt(360))}var r=Ft(e,t);i.push(r)})),{angle:A,stops:i,type:1}},Ut="closest-side",Qt="farthest-side",Ot="closest-corner",Mt="farthest-corner",Lt="circle",Dt="ellipse",Nt="cover",Ht="contain",Rt=function(e,t){var A=0,i=3,n=[],a=[];return Ze(t).forEach((function(t,r){var s=!0;if(0===r?s=t.reduce((function(e,t){if(ze(t))switch(t.value){case"center":return a.push(At),!1;case"top":case"left":return a.push(tt),!1;case"right":case"bottom":return a.push(it),!1}else if($e(t)||qe(t))return a.push(t),!1;return e}),s):1===r&&(s=t.reduce((function(e,t){if(ze(t))switch(t.value){case Lt:return A=0,!1;case Dt:return A=1,!1;case Ht:case Ut:return i=0,!1;case Qt:return i=1,!1;case Ot:return i=2,!1;case Nt:case Mt:return i=3,!1}else if(qe(t)||$e(t))return Array.isArray(i)||(i=[]),i.push(t),!1;return e}),s)),s){var o=Ft(e,t);n.push(o)}})),{size:i,shape:A,stops:n,position:a,type:2}},Pt=function(e,t){if(22===t.type){var A={url:t.value,type:0};return e.cache.addImage(t.value),A}if(18===t.type){var i=Kt[t.name];if(void 0===i)throw new Error('Attempting to parse an unsupported image function "'+t.name+'"');return i(e,t.values)}throw new Error("Unsupported image type "+t.type)};var Vt,Kt={"linear-gradient":function(e,t){var A=dt(180),i=[];return Ze(t).forEach((function(t,n){if(0===n){var a=t[0];if(20===a.type&&"to"===a.value)return void(A=ct(t));if(lt(a))return void(A=ot(e,a))}var r=Ft(e,t);i.push(r)})),{angle:A,stops:i,type:1}},"-moz-linear-gradient":kt,"-ms-linear-gradient":kt,"-o-linear-gradient":kt,"-webkit-linear-gradient":kt,"radial-gradient":function(e,t){var A=0,i=3,n=[],a=[];return Ze(t).forEach((function(t,r){var s=!0;if(0===r){var o=!1;s=t.reduce((function(e,t){if(o)if(ze(t))switch(t.value){case"center":return a.push(At),e;case"top":case"left":return a.push(tt),e;case"right":case"bottom":return a.push(it),e}else($e(t)||qe(t))&&a.push(t);else if(ze(t))switch(t.value){case Lt:return A=0,!1;case Dt:return A=1,!1;case"at":return o=!0,!1;case Ut:return i=0,!1;case Nt:case Qt:return i=1,!1;case Ht:case Ot:return i=2,!1;case Mt:return i=3,!1}else if(qe(t)||$e(t))return Array.isArray(i)||(i=[]),i.push(t),!1;return e}),s)}if(s){var l=Ft(e,t);n.push(l)}})),{size:i,shape:A,stops:n,position:a,type:2}},"-moz-radial-gradient":Rt,"-ms-radial-gradient":Rt,"-o-radial-gradient":Rt,"-webkit-radial-gradient":Rt,"-webkit-gradient":function(e,t){var A=dt(180),i=[],n=1;return Ze(t).forEach((function(t,A){var a=t[0];if(0===A){if(ze(a)&&"linear"===a.value)return void(n=1);if(ze(a)&&"radial"===a.value)return void(n=2)}if(18===a.type)if("from"===a.name){var r=ht(e,a.values[0]);i.push({stop:tt,color:r})}else if("to"===a.name)r=ht(e,a.values[0]),i.push({stop:it,color:r});else if("color-stop"===a.name){var s=a.values.filter(Je);if(2===s.length){r=ht(e,s[1]);var o=s[0];We(o)&&i.push({stop:{type:16,number:100*o.number,flags:o.flags},color:r})}}})),1===n?{angle:(A+dt(180))%dt(360),stops:i,type:n}:{size:3,shape:0,stops:i,position:[],type:n}}},Gt={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(e,t){if(0===t.length)return[];var A=t[0];return 20===A.type&&"none"===A.value?[]:t.filter((function(e){return Je(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!Kt[e.name])}(e)})).map((function(t){return Pt(e,t)}))}},Wt={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(ze(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},zt={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(e,t){return Ze(t).map((function(e){return e.filter($e)})).map(et)}},Xt={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,t){return Ze(t).map((function(e){return e.filter(ze).map((function(e){return e.value})).join(" ")})).map(Yt)}},Yt=function(e){switch(e){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(e){e.AUTO="auto",e.CONTAIN="contain",e.COVER="cover"}(Vt||(Vt={}));var jt,Jt={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,t){return Ze(t).map((function(e){return e.filter(Zt)}))}},Zt=function(e){return ze(e)||$e(e)},_t=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},qt=_t("top"),$t=_t("right"),eA=_t("bottom"),tA=_t("left"),AA=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,t){return et(t.filter($e))}}},iA=AA("top-left"),nA=AA("top-right"),aA=AA("bottom-right"),rA=AA("bottom-left"),sA=function(e){return{name:"border-"+e+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(e,t){switch(t){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},oA=sA("top"),lA=sA("right"),cA=sA("bottom"),dA=sA("left"),hA=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,t){return Ge(t)?t.number:0}}},uA=hA("top"),gA=hA("right"),pA=hA("bottom"),mA=hA("left"),wA={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},fA={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,t){return"rtl"===t?1:0}},EA={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,t){return t.filter(ze).reduce((function(e,t){return e|BA(t.value)}),0)}},BA=function(e){switch(e){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},bA={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},vA={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(e,t){return 20===t.type&&"normal"===t.value?0:17===t.type||15===t.type?t.number:0}};!function(e){e.NORMAL="normal",e.STRICT="strict"}(jt||(jt={}));var CA,yA={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"strict"===t?jt.STRICT:jt.NORMAL}},FA={name:"line-height",initialValue:"normal",prefix:!1,type:4},xA=function(e,t){return ze(e)&&"normal"===e.value?1.2*t:17===e.type?t*e.number:$e(e)?at(e,t):t},SA={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(e,t){return 20===t.type&&"none"===t.value?null:Pt(e,t)}},TA={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,t){return"inside"===t?0:1}},IA={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},kA=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},UA=kA("top"),QA=kA("right"),OA=kA("bottom"),MA=kA("left"),LA={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,t){return t.filter(ze).map((function(e){switch(e.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},DA={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"break-word"===t?"break-word":"normal"}},NA=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},HA=NA("top"),RA=NA("right"),PA=NA("bottom"),VA=NA("left"),KA={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(e,t){switch(t){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},GA={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(e,t){switch(t){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},WA={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,t){return 1===t.length&&Ye(t[0],"none")?[]:Ze(t).map((function(t){for(var A={color:vt.TRANSPARENT,offsetX:tt,offsetY:tt,blur:tt},i=0,n=0;n1?1:0],this.overflowWrap=Ci(e,DA,t.overflowWrap),this.paddingTop=Ci(e,HA,t.paddingTop),this.paddingRight=Ci(e,RA,t.paddingRight),this.paddingBottom=Ci(e,PA,t.paddingBottom),this.paddingLeft=Ci(e,VA,t.paddingLeft),this.paintOrder=Ci(e,wi,t.paintOrder),this.position=Ci(e,GA,t.position),this.textAlign=Ci(e,KA,t.textAlign),this.textDecorationColor=Ci(e,Ai,null!==(A=t.textDecorationColor)&&void 0!==A?A:t.color),this.textDecorationLine=Ci(e,ii,null!==(i=t.textDecorationLine)&&void 0!==i?i:t.textDecoration),this.textShadow=Ci(e,WA,t.textShadow),this.textTransform=Ci(e,zA,t.textTransform),this.transform=Ci(e,XA,t.transform),this.transformOrigin=Ci(e,ZA,t.transformOrigin),this.visibility=Ci(e,_A,t.visibility),this.webkitTextStrokeColor=Ci(e,fi,t.webkitTextStrokeColor),this.webkitTextStrokeWidth=Ci(e,Ei,t.webkitTextStrokeWidth),this.wordBreak=Ci(e,qA,t.wordBreak),this.zIndex=Ci(e,$A,t.zIndex)}return e.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},e.prototype.isTransparent=function(){return ut(this.backgroundColor)},e.prototype.isTransformed=function(){return null!==this.transform},e.prototype.isPositioned=function(){return 0!==this.position},e.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},e.prototype.isFloating=function(){return 0!==this.float},e.prototype.isInlineLevel=function(){return li(this.display,4)||li(this.display,33554432)||li(this.display,268435456)||li(this.display,536870912)||li(this.display,67108864)||li(this.display,134217728)},e}(),bi=function(e,t){this.content=Ci(e,ci,t.content),this.quotes=Ci(e,gi,t.quotes)},vi=function(e,t){this.counterIncrement=Ci(e,di,t.counterIncrement),this.counterReset=Ci(e,hi,t.counterReset)},Ci=function(e,t,A){var i=new Ve,n=null!=A?A.toString():t.initialValue;i.write(n);var a=new Ke(i.read());switch(t.type){case 2:var r=a.parseComponentValue();return t.parse(e,ze(r)?r.value:t.initialValue);case 0:return t.parse(e,a.parseComponentValue());case 1:return t.parse(e,a.parseComponentValues());case 4:return a.parseComponentValue();case 3:switch(t.format){case"angle":return ot(e,a.parseComponentValue());case"color":return ht(e,a.parseComponentValue());case"image":return Pt(e,a.parseComponentValue());case"length":var s=a.parseComponentValue();return qe(s)?s:tt;case"length-percentage":var o=a.parseComponentValue();return $e(o)?o:tt;case"time":return ei.parse(e,a.parseComponentValue())}}},yi=function(e,t){var A=function(e){switch(e.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(e);return 1===A||t===A},Fi=function(e,t){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,yi(t,3),this.styles=new Bi(e,window.getComputedStyle(t,null)),kn(t)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(t.style.animationDuration="0s"),null!==this.styles.transform&&(t.style.transform="none")),this.bounds=s(this.context,t),yi(t,4)&&(this.flags|=16)},xi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Si="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Ti=0;Ti=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),Ui="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Qi="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Oi=0;Oi>10),r%1024+56320)),(n+1===A||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},Pi=function(e,t){var A=function(e){var t,A,i,n,a,r=.75*e.length,s=e.length,o=0;"="===e[e.length-1]&&(r--,"="===e[e.length-2]&&r--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(r):new Array(r),c=Array.isArray(l)?l:new Uint8Array(l);for(t=0;t>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(e),i=Array.isArray(A)?function(e){for(var t=e.length,A=[],i=0;i=55296&&n<=56319&&A=A)return{done:!0,value:null};for(var e=Vi;ir.x||n.y>r.y;return r=n,0===t||s}));return e.body.removeChild(t),s}(document);return Object.defineProperty(ji,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var t=new Image,A=e.createElement("canvas"),i=A.getContext("2d");if(!i)return!1;t.src="data:image/svg+xml,";try{i.drawImage(t,0,0),A.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(ji,"SUPPORT_SVG_DRAWING",{value:e}),e},get SUPPORT_FOREIGNOBJECT_DRAWING(){var e="function"==typeof Array.from&&"function"==typeof window.fetch?function(e){var t=e.createElement("canvas"),A=100;t.width=A,t.height=A;var i=t.getContext("2d");if(!i)return Promise.reject(!1);i.fillStyle="rgb(0, 255, 0)",i.fillRect(0,0,A,A);var n=new Image,a=t.toDataURL();n.src=a;var r=Xi(A,A,0,0,n);return i.fillStyle="red",i.fillRect(0,0,A,A),Yi(r).then((function(t){i.drawImage(t,0,0);var n=i.getImageData(0,0,A,A).data;i.fillStyle="red",i.fillRect(0,0,A,A);var r=e.createElement("div");return r.style.backgroundImage="url("+a+")",r.style.height="100px",zi(n)?Yi(Xi(A,A,0,0,r)):Promise.reject(!1)})).then((function(e){return i.drawImage(e,0,0),zi(i.getImageData(0,0,A,A).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(ji,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(ji,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(ji,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(ji,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(ji,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},Ji=function(e,t){this.text=e,this.bounds=t},Zi=function(e,t){var A=t.ownerDocument;if(A){var i=A.createElement("html2canvaswrapper");i.appendChild(t.cloneNode(!0));var n=t.parentNode;if(n){n.replaceChild(i,t);var a=s(e,i);return i.firstChild&&n.replaceChild(i.firstChild,i),a}}return r.EMPTY},_i=function(e,t,A){var i=e.ownerDocument;if(!i)throw new Error("Node has no owner document");var n=i.createRange();return n.setStart(e,t),n.setEnd(e,t+A),n},qi=function(e){if(ji.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(t.segment(e)).map((function(e){return e.segment}))}return function(e){for(var t,A=Wi(e),i=[];!(t=A.next()).done;)t.value&&i.push(t.value.slice());return i}(e)},$i=function(e,t){return 0!==t.letterSpacing?qi(e):function(e,t){if(ji.SUPPORT_NATIVE_TEXT_SEGMENTATION){var A=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(A.segment(e)).map((function(e){return e.segment}))}return tn(e,t)}(e,t)},en=[32,160,4961,65792,65793,4153,4241],tn=function(e,t){for(var A,i=function(e,t){var A=o(e),i=ae(A,t),n=i[0],a=i[1],r=i[2],s=A.length,l=0,c=0;return{next:function(){if(c>=s)return{done:!0,value:null};for(var e=X;c0)if(ji.SUPPORT_RANGE_BOUNDS){var n=_i(i,s,t.length).getClientRects();if(n.length>1){var o=qi(t),l=0;o.forEach((function(t){a.push(new Ji(t,r.fromDOMRectList(e,_i(i,l+s,t.length).getClientRects()))),l+=t.length}))}else a.push(new Ji(t,r.fromDOMRectList(e,n)))}else{var c=i.splitText(t.length);a.push(new Ji(t,Zi(e,i))),i=c}else ji.SUPPORT_RANGE_BOUNDS||(i=i.splitText(t.length));s+=t.length})),a}(e,this.text,A,t)},nn=function(e,t){switch(t){case 1:return e.toLowerCase();case 3:return e.replace(an,rn);case 2:return e.toUpperCase();default:return e}},an=/(^|\s|:|-|\(|\))([a-z])/g,rn=function(e,t,A){return e.length>0?t+A.toUpperCase():e},sn=function(e){function A(t,A){var i=e.call(this,t,A)||this;return i.src=A.currentSrc||A.src,i.intrinsicWidth=A.naturalWidth,i.intrinsicHeight=A.naturalHeight,i.context.cache.addImage(i.src),i}return t(A,e),A}(Fi),on=function(e){function A(t,A){var i=e.call(this,t,A)||this;return i.canvas=A,i.intrinsicWidth=A.width,i.intrinsicHeight=A.height,i}return t(A,e),A}(Fi),ln=function(e){function A(t,A){var i=e.call(this,t,A)||this,n=new XMLSerializer,a=s(t,A);return A.setAttribute("width",a.width+"px"),A.setAttribute("height",a.height+"px"),i.svg="data:image/svg+xml,"+encodeURIComponent(n.serializeToString(A)),i.intrinsicWidth=A.width.baseVal.value,i.intrinsicHeight=A.height.baseVal.value,i.context.cache.addImage(i.svg),i}return t(A,e),A}(Fi),cn=function(e){function A(t,A){var i=e.call(this,t,A)||this;return i.value=A.value,i}return t(A,e),A}(Fi),dn=function(e){function A(t,A){var i=e.call(this,t,A)||this;return i.start=A.start,i.reversed="boolean"==typeof A.reversed&&!0===A.reversed,i}return t(A,e),A}(Fi),hn=[{type:15,flags:0,unit:"px",number:3}],un=[{type:16,flags:0,number:50}],gn="checkbox",pn="radio",mn="password",wn=707406591,fn=function(e){function A(t,A){var i,n,a,s=e.call(this,t,A)||this;switch(s.type=A.type.toLowerCase(),s.checked=A.checked,s.value=0===(a=(n=A).type===mn?new Array(n.value.length+1).join("•"):n.value).length?n.placeholder||"":a,s.type!==gn&&s.type!==pn||(s.styles.backgroundColor=3739148031,s.styles.borderTopColor=s.styles.borderRightColor=s.styles.borderBottomColor=s.styles.borderLeftColor=2779096575,s.styles.borderTopWidth=s.styles.borderRightWidth=s.styles.borderBottomWidth=s.styles.borderLeftWidth=1,s.styles.borderTopStyle=s.styles.borderRightStyle=s.styles.borderBottomStyle=s.styles.borderLeftStyle=1,s.styles.backgroundClip=[0],s.styles.backgroundOrigin=[0],s.bounds=(i=s.bounds).width>i.height?new r(i.left+(i.width-i.height)/2,i.top,i.height,i.height):i.width0)A.textNodes.push(new An(e,n,A.styles));else if(In(n))if(Wn(n)&&n.assignedNodes)n.assignedNodes().forEach((function(t){return Cn(e,t,A,i)}));else{var r=yn(e,n);r.styles.isVisible()&&(xn(n,r,i)?r.flags|=4:Sn(r.styles)&&(r.flags|=2),-1!==vn.indexOf(n.tagName)&&(r.flags|=8),A.elements.push(r),n.slot,n.shadowRoot?Cn(e,n.shadowRoot,r,i):Kn(n)||Ln(n)||Gn(n)||Cn(e,n,r,i))}},yn=function(e,t){return Rn(t)?new sn(e,t):Nn(t)?new on(e,t):Ln(t)?new ln(e,t):Qn(t)?new cn(e,t):On(t)?new dn(e,t):Mn(t)?new fn(e,t):Gn(t)?new En(e,t):Kn(t)?new Bn(e,t):Pn(t)?new bn(e,t):new Fi(e,t)},Fn=function(e,t){var A=yn(e,t);return A.flags|=4,Cn(e,t,A,A),A},xn=function(e,t,A){return t.styles.isPositionedWithZIndex()||t.styles.opacity<1||t.styles.isTransformed()||Dn(e)&&A.styles.isTransparent()},Sn=function(e){return e.isPositioned()||e.isFloating()},Tn=function(e){return e.nodeType===Node.TEXT_NODE},In=function(e){return e.nodeType===Node.ELEMENT_NODE},kn=function(e){return In(e)&&void 0!==e.style&&!Un(e)},Un=function(e){return"object"==typeof e.className},Qn=function(e){return"LI"===e.tagName},On=function(e){return"OL"===e.tagName},Mn=function(e){return"INPUT"===e.tagName},Ln=function(e){return"svg"===e.tagName},Dn=function(e){return"BODY"===e.tagName},Nn=function(e){return"CANVAS"===e.tagName},Hn=function(e){return"VIDEO"===e.tagName},Rn=function(e){return"IMG"===e.tagName},Pn=function(e){return"IFRAME"===e.tagName},Vn=function(e){return"STYLE"===e.tagName},Kn=function(e){return"TEXTAREA"===e.tagName},Gn=function(e){return"SELECT"===e.tagName},Wn=function(e){return"SLOT"===e.tagName},zn=function(e){return e.tagName.indexOf("-")>0},Xn=function(){function e(){this.counters={}}return e.prototype.getCounterValue=function(e){var t=this.counters[e];return t&&t.length?t[t.length-1]:1},e.prototype.getCounterValues=function(e){return this.counters[e]||[]},e.prototype.pop=function(e){var t=this;e.forEach((function(e){return t.counters[e].pop()}))},e.prototype.parse=function(e){var t=this,A=e.counterIncrement,i=e.counterReset,n=!0;null!==A&&A.forEach((function(e){var A=t.counters[e.counter];A&&0!==e.increment&&(n=!1,A.length||A.push(1),A[Math.max(0,A.length-1)]+=e.increment)}));var a=[];return n&&i.forEach((function(e){var A=t.counters[e.counter];a.push(e.counter),A||(A=t.counters[e.counter]=[]),A.push(e.reset)})),a},e}(),Yn={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},jn={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Jn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Zn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},_n=function(e,t,A,i,n,a){return eA?ra(e,n,a.length>0):i.integers.reduce((function(t,A,n){for(;e>=A;)e-=A,t+=i.values[n];return t}),"")+a},qn=function(e,t,A,i){var n="";do{A||e--,n=i(e)+n,e/=t}while(e*t>=t);return n},$n=function(e,t,A,i,n){var a=A-t+1;return(e<0?"-":"")+(qn(Math.abs(e),a,i,(function(e){return l(Math.floor(e%a)+t)}))+n)},ea=function(e,t,A){void 0===A&&(A=". ");var i=t.length;return qn(Math.abs(e),i,!1,(function(e){return t[Math.floor(e%i)]}))+A},ta=function(e,t,A,i,n,a){if(e<-9999||e>9999)return ra(e,4,n.length>0);var r=Math.abs(e),s=n;if(0===r)return t[0]+s;for(var o=0;r>0&&o<=4;o++){var l=r%10;0===l&&li(a,1)&&""!==s?s=t[l]+s:l>1||1===l&&0===o||1===l&&1===o&&li(a,2)||1===l&&1===o&&li(a,4)&&e>100||1===l&&o>1&&li(a,8)?s=t[l]+(o>0?A[o-1]:"")+s:1===l&&o>0&&(s=A[o-1]+s),r=Math.floor(r/10)}return(e<0?i:"")+s},Aa="十百千萬",ia="拾佰仟萬",na="マイナス",aa="마이너스",ra=function(e,t,A){var i=A?". ":"",n=A?"、":"",a=A?", ":"",r=A?" ":"";switch(t){case 0:return"•"+r;case 1:return"◦"+r;case 2:return"◾"+r;case 5:var s=$n(e,48,57,!0,i);return s.length<4?"0"+s:s;case 4:return ea(e,"〇一二三四五六七八九",n);case 6:return _n(e,1,3999,Yn,3,i).toLowerCase();case 7:return _n(e,1,3999,Yn,3,i);case 8:return $n(e,945,969,!1,i);case 9:return $n(e,97,122,!1,i);case 10:return $n(e,65,90,!1,i);case 11:return $n(e,1632,1641,!0,i);case 12:case 49:return _n(e,1,9999,jn,3,i);case 35:return _n(e,1,9999,jn,3,i).toLowerCase();case 13:return $n(e,2534,2543,!0,i);case 14:case 30:return $n(e,6112,6121,!0,i);case 15:return ea(e,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return ea(e,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return ta(e,"零一二三四五六七八九",Aa,"負",n,14);case 47:return ta(e,"零壹貳參肆伍陸柒捌玖",ia,"負",n,15);case 42:return ta(e,"零一二三四五六七八九",Aa,"负",n,14);case 41:return ta(e,"零壹贰叁肆伍陆柒捌玖",ia,"负",n,15);case 26:return ta(e,"〇一二三四五六七八九","十百千万",na,n,0);case 25:return ta(e,"零壱弐参四伍六七八九","拾百千万",na,n,7);case 31:return ta(e,"영일이삼사오육칠팔구","십백천만",aa,a,7);case 33:return ta(e,"零一二三四五六七八九","十百千萬",aa,a,0);case 32:return ta(e,"零壹貳參四五六七八九","拾百千",aa,a,7);case 18:return $n(e,2406,2415,!0,i);case 20:return _n(e,1,19999,Zn,3,i);case 21:return $n(e,2790,2799,!0,i);case 22:return $n(e,2662,2671,!0,i);case 22:return _n(e,1,10999,Jn,3,i);case 23:return ea(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return ea(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return $n(e,3302,3311,!0,i);case 28:return ea(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return ea(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return $n(e,3792,3801,!0,i);case 37:return $n(e,6160,6169,!0,i);case 38:return $n(e,4160,4169,!0,i);case 39:return $n(e,2918,2927,!0,i);case 40:return $n(e,1776,1785,!0,i);case 43:return $n(e,3046,3055,!0,i);case 44:return $n(e,3174,3183,!0,i);case 45:return $n(e,3664,3673,!0,i);case 46:return $n(e,3872,3881,!0,i);default:return $n(e,48,57,!0,i)}},sa="data-html2canvas-ignore",oa=function(){function e(e,t,A){if(this.context=e,this.options=A,this.scrolledElements=[],this.referenceElement=t,this.counters=new Xn,this.quoteDepth=0,!t.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(t.ownerDocument.documentElement,!1)}return e.prototype.toIFrame=function(e,t){var A=this,a=ca(e,t);if(!a.contentWindow)return Promise.reject("Unable to find iframe window");var r=e.defaultView.pageXOffset,s=e.defaultView.pageYOffset,o=a.contentWindow,l=o.document,c=ua(a).then((function(){return i(A,void 0,void 0,(function(){var e,A;return n(this,(function(i){switch(i.label){case 0:return this.scrolledElements.forEach(fa),o&&(o.scrollTo(t.left,t.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||o.scrollY===t.top&&o.scrollX===t.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(o.scrollX-t.left,o.scrollY-t.top,0,0))),e=this.options.onclone,void 0===(A=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:l.fonts&&l.fonts.ready?[4,l.fonts.ready]:[3,2];case 1:i.sent(),i.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,ha(l)]:[3,4];case 3:i.sent(),i.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(l,A)})).then((function(){return a}))]:[2,a]}}))}))}));return l.open(),l.write(ma(document.doctype)+""),wa(this.referenceElement.ownerDocument,r,s),l.replaceChild(l.adoptNode(this.documentElement),l.documentElement),l.close(),c},e.prototype.createElementClone=function(e){if(yi(e,2),Nn(e))return this.createCanvasClone(e);if(Hn(e))return this.createVideoClone(e);if(Vn(e))return this.createStyleClone(e);var t=e.cloneNode(!1);return Rn(t)&&(Rn(e)&&e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=""),"lazy"===t.loading&&(t.loading="eager")),zn(t)?this.createCustomElementClone(t):t},e.prototype.createCustomElementClone=function(e){var t=document.createElement("html2canvascustomelement");return pa(e.style,t),t},e.prototype.createStyleClone=function(e){try{var t=e.sheet;if(t&&t.cssRules){var A=[].slice.call(t.cssRules,0).reduce((function(e,t){return t&&"string"==typeof t.cssText?e+t.cssText:e}),""),i=e.cloneNode(!1);return i.textContent=A,i}}catch(e){if(this.context.logger.error("Unable to access cssRules property",e),"SecurityError"!==e.name)throw e}return e.cloneNode(!1)},e.prototype.createCanvasClone=function(e){var t;if(this.options.inlineImages&&e.ownerDocument){var A=e.ownerDocument.createElement("img");try{return A.src=e.toDataURL(),A}catch(t){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}var i=e.cloneNode(!1);try{i.width=e.width,i.height=e.height;var n=e.getContext("2d"),a=i.getContext("2d");if(a)if(!this.options.allowTaint&&n)a.putImageData(n.getImageData(0,0,e.width,e.height),0,0);else{var r=null!==(t=e.getContext("webgl2"))&&void 0!==t?t:e.getContext("webgl");if(r){var s=r.getContextAttributes();!1===(null==s?void 0:s.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}a.drawImage(e,0,0)}return i}catch(t){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return i},e.prototype.createVideoClone=function(e){var t=e.ownerDocument.createElement("canvas");t.width=e.offsetWidth,t.height=e.offsetHeight;var A=t.getContext("2d");try{return A&&(A.drawImage(e,0,0,t.width,t.height),this.options.allowTaint||A.getImageData(0,0,t.width,t.height)),t}catch(t){this.context.logger.info("Unable to clone video as it is tainted",e)}var i=e.ownerDocument.createElement("canvas");return i.width=e.offsetWidth,i.height=e.offsetHeight,i},e.prototype.appendChildNode=function(e,t,A){In(t)&&("SCRIPT"===t.tagName||t.hasAttribute(sa)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(t))||this.options.copyStyles&&In(t)&&Vn(t)||e.appendChild(this.cloneNode(t,A))},e.prototype.cloneChildNodes=function(e,t,A){for(var i=this,n=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;n;n=n.nextSibling)if(In(n)&&Wn(n)&&"function"==typeof n.assignedNodes){var a=n.assignedNodes();a.length&&a.forEach((function(e){return i.appendChildNode(t,e,A)}))}else this.appendChildNode(t,n,A)},e.prototype.cloneNode=function(e,t){if(Tn(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var A=e.ownerDocument.defaultView;if(A&&In(e)&&(kn(e)||Un(e))){var i=this.createElementClone(e);i.style.transitionProperty="none";var n=A.getComputedStyle(e),a=A.getComputedStyle(e,":before"),r=A.getComputedStyle(e,":after");this.referenceElement===e&&kn(i)&&(this.clonedReferenceElement=i),Dn(i)&&va(i);var s=this.counters.parse(new vi(this.context,n)),o=this.resolvePseudoContent(e,i,a,Mi.BEFORE);zn(e)&&(t=!0),Hn(e)||this.cloneChildNodes(e,i,t),o&&i.insertBefore(o,i.firstChild);var l=this.resolvePseudoContent(e,i,r,Mi.AFTER);return l&&i.appendChild(l),this.counters.pop(s),(n&&(this.options.copyStyles||Un(e))&&!Pn(e)||t)&&pa(n,i),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([i,e.scrollLeft,e.scrollTop]),(Kn(e)||Gn(e))&&(Kn(i)||Gn(i))&&(i.value=e.value),i}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,t,A,i){var n=this;if(A){var a=A.content,r=t.ownerDocument;if(r&&a&&"none"!==a&&"-moz-alt-content"!==a&&"none"!==A.display){this.counters.parse(new vi(this.context,A));var s=new bi(this.context,A),o=r.createElement("html2canvaspseudoelement");pa(A,o),s.content.forEach((function(t){if(0===t.type)o.appendChild(r.createTextNode(t.value));else if(22===t.type){var A=r.createElement("img");A.src=t.value,A.style.opacity="1",o.appendChild(A)}else if(18===t.type){if("attr"===t.name){var i=t.values.filter(ze);i.length&&o.appendChild(r.createTextNode(e.getAttribute(i[0].value)||""))}else if("counter"===t.name){var a=t.values.filter(Je),l=a[0],c=a[1];if(l&&ze(l)){var d=n.counters.getCounterValue(l.value),h=c&&ze(c)?IA.parse(n.context,c.value):3;o.appendChild(r.createTextNode(ra(d,h,!1)))}}else if("counters"===t.name){var u=t.values.filter(Je),g=(l=u[0],u[1]);if(c=u[2],l&&ze(l)){var p=n.counters.getCounterValues(l.value),m=c&&ze(c)?IA.parse(n.context,c.value):3,w=g&&0===g.type?g.value:"",f=p.map((function(e){return ra(e,m,!1)})).join(w);o.appendChild(r.createTextNode(f))}}}else if(20===t.type)switch(t.value){case"open-quote":o.appendChild(r.createTextNode(pi(s.quotes,n.quoteDepth++,!0)));break;case"close-quote":o.appendChild(r.createTextNode(pi(s.quotes,--n.quoteDepth,!1)));break;default:o.appendChild(r.createTextNode(t.value))}})),o.className=Ea+" "+Ba;var l=i===Mi.BEFORE?" "+Ea:" "+Ba;return Un(t)?t.className.baseValue+=l:t.className+=l,o}}},e.destroy=function(e){return!!e.parentNode&&(e.parentNode.removeChild(e),!0)},e}();!function(e){e[e.BEFORE=0]="BEFORE",e[e.AFTER=1]="AFTER"}(Mi||(Mi={}));var la,ca=function(e,t){var A=e.createElement("iframe");return A.className="html2canvas-container",A.style.visibility="hidden",A.style.position="fixed",A.style.left="-10000px",A.style.top="0px",A.style.border="0",A.width=t.width.toString(),A.height=t.height.toString(),A.scrolling="no",A.setAttribute(sa,"true"),e.body.appendChild(A),A},da=function(e){return new Promise((function(t){e.complete?t():e.src?(e.onload=t,e.onerror=t):t()}))},ha=function(e){return Promise.all([].slice.call(e.images,0).map(da))},ua=function(e){return new Promise((function(t,A){var i=e.contentWindow;if(!i)return A("No window assigned for iframe");var n=i.document;i.onload=e.onload=function(){i.onload=e.onload=null;var A=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(A),t(e))}),50)}}))},ga=["all","d","content"],pa=function(e,t){for(var A=e.length-1;A>=0;A--){var i=e.item(A);-1===ga.indexOf(i)&&t.style.setProperty(i,e.getPropertyValue(i))}return t},ma=function(e){var t="";return e&&(t+=""),t},wa=function(e,t,A){e&&e.defaultView&&(t!==e.defaultView.pageXOffset||A!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(t,A)},fa=function(e){var t=e[0],A=e[1],i=e[2];t.scrollLeft=A,t.scrollTop=i},Ea="___html2canvas___pseudoelement_before",Ba="___html2canvas___pseudoelement_after",ba='{\n content: "" !important;\n display: none !important;\n}',va=function(e){Ca(e,"."+Ea+":before"+ba+"\n ."+Ba+":after"+ba)},Ca=function(e,t){var A=e.ownerDocument;if(A){var i=A.createElement("style");i.textContent=t,e.appendChild(i)}},ya=function(){function e(){}return e.getOrigin=function(t){var A=e._link;return A?(A.href=t,A.href=A.href,A.protocol+A.hostname+A.port):"about:blank"},e.isSameOrigin=function(t){return e.getOrigin(t)===e._origin},e.setContext=function(t){e._link=t.document.createElement("a"),e._origin=e.getOrigin(t.location.href)},e._origin="about:blank",e}(),Fa=function(){function e(e,t){this.context=e,this._options=t,this._cache={}}return e.prototype.addImage=function(e){var t=Promise.resolve();return this.has(e)?t:Qa(e)||Ia(e)?((this._cache[e]=this.loadImage(e)).catch((function(){})),t):t},e.prototype.match=function(e){return this._cache[e]},e.prototype.loadImage=function(e){return i(this,void 0,void 0,(function(){var t,A,i,a,r=this;return n(this,(function(n){switch(n.label){case 0:return t=ya.isSameOrigin(e),A=!ka(e)&&!0===this._options.useCORS&&ji.SUPPORT_CORS_IMAGES&&!t,i=!ka(e)&&!t&&!Qa(e)&&"string"==typeof this._options.proxy&&ji.SUPPORT_CORS_XHR&&!A,t||!1!==this._options.allowTaint||ka(e)||Qa(e)||i||A?(a=e,i?[4,this.proxy(a)]:[3,2]):[2];case 1:a=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,t){var i=new Image;i.onload=function(){return e(i)},i.onerror=t,(Ua(a)||A)&&(i.crossOrigin="anonymous"),i.src=a,!0===i.complete&&setTimeout((function(){return e(i)}),500),r._options.imageTimeout>0&&setTimeout((function(){return t("Timed out ("+r._options.imageTimeout+"ms) loading image")}),r._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},e.prototype.has=function(e){return void 0!==this._cache[e]},e.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},e.prototype.proxy=function(e){var t=this,A=this._options.proxy;if(!A)throw new Error("No proxy defined");var i=e.substring(0,256);return new Promise((function(n,a){var r=ji.SUPPORT_RESPONSE_TYPE?"blob":"text",s=new XMLHttpRequest;s.onload=function(){if(200===s.status)if("text"===r)n(s.response);else{var e=new FileReader;e.addEventListener("load",(function(){return n(e.result)}),!1),e.addEventListener("error",(function(e){return a(e)}),!1),e.readAsDataURL(s.response)}else a("Failed to proxy resource "+i+" with status code "+s.status)},s.onerror=a;var o=A.indexOf("?")>-1?"&":"?";if(s.open("GET",""+A+o+"url="+encodeURIComponent(e)+"&responseType="+r),"text"!==r&&s instanceof XMLHttpRequest&&(s.responseType=r),t._options.imageTimeout){var l=t._options.imageTimeout;s.timeout=l,s.ontimeout=function(){return a("Timed out ("+l+"ms) proxying "+i)}}s.send()}))},e}(),xa=/^data:image\/svg\+xml/i,Sa=/^data:image\/.*;base64,/i,Ta=/^data:image\/.*/i,Ia=function(e){return ji.SUPPORT_SVG_DRAWING||!Oa(e)},ka=function(e){return Ta.test(e)},Ua=function(e){return Sa.test(e)},Qa=function(e){return"blob"===e.substr(0,4)},Oa=function(e){return"svg"===e.substr(-3).toLowerCase()||xa.test(e)},Ma=function(){function e(e,t){this.type=0,this.x=e,this.y=t}return e.prototype.add=function(t,A){return new e(this.x+t,this.y+A)},e}(),La=function(e,t,A){return new Ma(e.x+(t.x-e.x)*A,e.y+(t.y-e.y)*A)},Da=function(){function e(e,t,A,i){this.type=1,this.start=e,this.startControl=t,this.endControl=A,this.end=i}return e.prototype.subdivide=function(t,A){var i=La(this.start,this.startControl,t),n=La(this.startControl,this.endControl,t),a=La(this.endControl,this.end,t),r=La(i,n,t),s=La(n,a,t),o=La(r,s,t);return A?new e(this.start,i,r,o):new e(o,s,a,this.end)},e.prototype.add=function(t,A){return new e(this.start.add(t,A),this.startControl.add(t,A),this.endControl.add(t,A),this.end.add(t,A))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e}(),Na=function(e){return 1===e.type},Ha=function(e){var t=e.styles,A=e.bounds,i=nt(t.borderTopLeftRadius,A.width,A.height),n=i[0],a=i[1],r=nt(t.borderTopRightRadius,A.width,A.height),s=r[0],o=r[1],l=nt(t.borderBottomRightRadius,A.width,A.height),c=l[0],d=l[1],h=nt(t.borderBottomLeftRadius,A.width,A.height),u=h[0],g=h[1],p=[];p.push((n+s)/A.width),p.push((u+c)/A.width),p.push((a+g)/A.height),p.push((o+d)/A.height);var m=Math.max.apply(Math,p);m>1&&(n/=m,a/=m,s/=m,o/=m,c/=m,d/=m,u/=m,g/=m);var w=A.width-s,f=A.height-d,E=A.width-c,B=A.height-g,b=t.borderTopWidth,v=t.borderRightWidth,C=t.borderBottomWidth,y=t.borderLeftWidth,F=at(t.paddingTop,e.bounds.width),x=at(t.paddingRight,e.bounds.width),S=at(t.paddingBottom,e.bounds.width),T=at(t.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||a>0?Ra(A.left+y/3,A.top+b/3,n-y/3,a-b/3,la.TOP_LEFT):new Ma(A.left+y/3,A.top+b/3),this.topRightBorderDoubleOuterBox=n>0||a>0?Ra(A.left+w,A.top+b/3,s-v/3,o-b/3,la.TOP_RIGHT):new Ma(A.left+A.width-v/3,A.top+b/3),this.bottomRightBorderDoubleOuterBox=c>0||d>0?Ra(A.left+E,A.top+f,c-v/3,d-C/3,la.BOTTOM_RIGHT):new Ma(A.left+A.width-v/3,A.top+A.height-C/3),this.bottomLeftBorderDoubleOuterBox=u>0||g>0?Ra(A.left+y/3,A.top+B,u-y/3,g-C/3,la.BOTTOM_LEFT):new Ma(A.left+y/3,A.top+A.height-C/3),this.topLeftBorderDoubleInnerBox=n>0||a>0?Ra(A.left+2*y/3,A.top+2*b/3,n-2*y/3,a-2*b/3,la.TOP_LEFT):new Ma(A.left+2*y/3,A.top+2*b/3),this.topRightBorderDoubleInnerBox=n>0||a>0?Ra(A.left+w,A.top+2*b/3,s-2*v/3,o-2*b/3,la.TOP_RIGHT):new Ma(A.left+A.width-2*v/3,A.top+2*b/3),this.bottomRightBorderDoubleInnerBox=c>0||d>0?Ra(A.left+E,A.top+f,c-2*v/3,d-2*C/3,la.BOTTOM_RIGHT):new Ma(A.left+A.width-2*v/3,A.top+A.height-2*C/3),this.bottomLeftBorderDoubleInnerBox=u>0||g>0?Ra(A.left+2*y/3,A.top+B,u-2*y/3,g-2*C/3,la.BOTTOM_LEFT):new Ma(A.left+2*y/3,A.top+A.height-2*C/3),this.topLeftBorderStroke=n>0||a>0?Ra(A.left+y/2,A.top+b/2,n-y/2,a-b/2,la.TOP_LEFT):new Ma(A.left+y/2,A.top+b/2),this.topRightBorderStroke=n>0||a>0?Ra(A.left+w,A.top+b/2,s-v/2,o-b/2,la.TOP_RIGHT):new Ma(A.left+A.width-v/2,A.top+b/2),this.bottomRightBorderStroke=c>0||d>0?Ra(A.left+E,A.top+f,c-v/2,d-C/2,la.BOTTOM_RIGHT):new Ma(A.left+A.width-v/2,A.top+A.height-C/2),this.bottomLeftBorderStroke=u>0||g>0?Ra(A.left+y/2,A.top+B,u-y/2,g-C/2,la.BOTTOM_LEFT):new Ma(A.left+y/2,A.top+A.height-C/2),this.topLeftBorderBox=n>0||a>0?Ra(A.left,A.top,n,a,la.TOP_LEFT):new Ma(A.left,A.top),this.topRightBorderBox=s>0||o>0?Ra(A.left+w,A.top,s,o,la.TOP_RIGHT):new Ma(A.left+A.width,A.top),this.bottomRightBorderBox=c>0||d>0?Ra(A.left+E,A.top+f,c,d,la.BOTTOM_RIGHT):new Ma(A.left+A.width,A.top+A.height),this.bottomLeftBorderBox=u>0||g>0?Ra(A.left,A.top+B,u,g,la.BOTTOM_LEFT):new Ma(A.left,A.top+A.height),this.topLeftPaddingBox=n>0||a>0?Ra(A.left+y,A.top+b,Math.max(0,n-y),Math.max(0,a-b),la.TOP_LEFT):new Ma(A.left+y,A.top+b),this.topRightPaddingBox=s>0||o>0?Ra(A.left+Math.min(w,A.width-v),A.top+b,w>A.width+v?0:Math.max(0,s-v),Math.max(0,o-b),la.TOP_RIGHT):new Ma(A.left+A.width-v,A.top+b),this.bottomRightPaddingBox=c>0||d>0?Ra(A.left+Math.min(E,A.width-y),A.top+Math.min(f,A.height-C),Math.max(0,c-v),Math.max(0,d-C),la.BOTTOM_RIGHT):new Ma(A.left+A.width-v,A.top+A.height-C),this.bottomLeftPaddingBox=u>0||g>0?Ra(A.left+y,A.top+Math.min(B,A.height-C),Math.max(0,u-y),Math.max(0,g-C),la.BOTTOM_LEFT):new Ma(A.left+y,A.top+A.height-C),this.topLeftContentBox=n>0||a>0?Ra(A.left+y+T,A.top+b+F,Math.max(0,n-(y+T)),Math.max(0,a-(b+F)),la.TOP_LEFT):new Ma(A.left+y+T,A.top+b+F),this.topRightContentBox=s>0||o>0?Ra(A.left+Math.min(w,A.width+y+T),A.top+b+F,w>A.width+y+T?0:s-y+T,o-(b+F),la.TOP_RIGHT):new Ma(A.left+A.width-(v+x),A.top+b+F),this.bottomRightContentBox=c>0||d>0?Ra(A.left+Math.min(E,A.width-(y+T)),A.top+Math.min(f,A.height+b+F),Math.max(0,c-(v+x)),d-(C+S),la.BOTTOM_RIGHT):new Ma(A.left+A.width-(v+x),A.top+A.height-(C+S)),this.bottomLeftContentBox=u>0||g>0?Ra(A.left+y+T,A.top+B,Math.max(0,u-(y+T)),g-(C+S),la.BOTTOM_LEFT):new Ma(A.left+y+T,A.top+A.height-(C+S))};!function(e){e[e.TOP_LEFT=0]="TOP_LEFT",e[e.TOP_RIGHT=1]="TOP_RIGHT",e[e.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",e[e.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(la||(la={}));var Ra=function(e,t,A,i,n){var a=(Math.sqrt(2)-1)/3*4,r=A*a,s=i*a,o=e+A,l=t+i;switch(n){case la.TOP_LEFT:return new Da(new Ma(e,l),new Ma(e,l-s),new Ma(o-r,t),new Ma(o,t));case la.TOP_RIGHT:return new Da(new Ma(e,t),new Ma(e+r,t),new Ma(o,l-s),new Ma(o,l));case la.BOTTOM_RIGHT:return new Da(new Ma(o,t),new Ma(o,t+s),new Ma(e+r,l),new Ma(e,l));case la.BOTTOM_LEFT:default:return new Da(new Ma(o,l),new Ma(o-r,l),new Ma(e,t+s),new Ma(e,t))}},Pa=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},Va=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},Ka=function(e,t,A){this.offsetX=e,this.offsetY=t,this.matrix=A,this.type=0,this.target=6},Ga=function(e,t){this.path=e,this.target=t,this.type=1},Wa=function(e){this.opacity=e,this.type=2,this.target=6},za=function(e){return 1===e.type},Xa=function(e,t){return e.length===t.length&&e.some((function(e,A){return e===t[A]}))},Ya=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},ja=function(){function e(e,t){if(this.container=e,this.parent=t,this.effects=[],this.curves=new Ha(this.container),this.container.styles.opacity<1&&this.effects.push(new Wa(this.container.styles.opacity)),null!==this.container.styles.transform){var A=this.container.bounds.left+this.container.styles.transformOrigin[0].number,i=this.container.bounds.top+this.container.styles.transformOrigin[1].number,n=this.container.styles.transform;this.effects.push(new Ka(A,i,n))}if(0!==this.container.styles.overflowX){var a=Pa(this.curves),r=Va(this.curves);Xa(a,r)?this.effects.push(new Ga(a,6)):(this.effects.push(new Ga(a,2)),this.effects.push(new Ga(r,4)))}}return e.prototype.getEffects=function(e){for(var t=-1===[2,3].indexOf(this.container.styles.position),A=this.parent,i=this.effects.slice(0);A;){var n=A.effects.filter((function(e){return!za(e)}));if(t||0!==A.container.styles.position||!A.parent){if(i.unshift.apply(i,n),t=-1===[2,3].indexOf(A.container.styles.position),0!==A.container.styles.overflowX){var a=Pa(A.curves),r=Va(A.curves);Xa(a,r)||i.unshift(new Ga(r,6))}}else i.unshift.apply(i,n);A=A.parent}return i.filter((function(t){return li(t.target,e)}))},e}(),Ja=function(e,t,A,i){e.container.elements.forEach((function(n){var a=li(n.flags,4),r=li(n.flags,2),s=new ja(n,e);li(n.styles.display,2048)&&i.push(s);var o=li(n.flags,8)?[]:i;if(a||r){var l=a||n.styles.isPositioned()?A:t,c=new Ya(s);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var d=n.styles.zIndex.order;if(d<0){var h=0;l.negativeZIndex.some((function(e,t){return d>e.element.container.styles.zIndex.order?(h=t,!1):h>0})),l.negativeZIndex.splice(h,0,c)}else if(d>0){var u=0;l.positiveZIndex.some((function(e,t){return d>=e.element.container.styles.zIndex.order?(u=t+1,!1):u>0})),l.positiveZIndex.splice(u,0,c)}else l.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?l.nonPositionedFloats.push(c):l.nonPositionedInlineLevel.push(c);Ja(s,c,a?c:A,o)}else n.styles.isInlineLevel()?t.inlineLevel.push(s):t.nonInlineLevel.push(s),Ja(s,t,A,o);li(n.flags,8)&&Za(n,o)}))},Za=function(e,t){for(var A=e instanceof dn?e.start:1,i=e instanceof dn&&e.reversed,n=0;n0&&e.intrinsicHeight>0){var i=tr(e),n=Va(t);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(A,0,0,e.intrinsicWidth,e.intrinsicHeight,i.left,i.top,i.width,i.height),this.ctx.restore()}},A.prototype.renderNodeContent=function(e){return i(this,void 0,void 0,(function(){var t,i,a,s,o,l,c,d,h,u,g,p,m,w,f,E,B,b;return n(this,(function(n){switch(n.label){case 0:this.applyEffects(e.getEffects(4)),t=e.container,i=e.curves,a=t.styles,s=0,o=t.textNodes,n.label=1;case 1:return s0&&y>0&&(f=i.ctx.createPattern(p,"repeat"),i.renderRepeat(B,f,x,S))):function(e){return 2===e.type}(A)&&(E=Ar(e,t,[null,null,null]),B=E[0],b=E[1],v=E[2],C=E[3],y=E[4],F=0===A.position.length?[At]:A.position,x=at(F[0],C),S=at(F[F.length-1],y),T=function(e,t,A,i,n){var a=0,r=0;switch(e.size){case 0:0===e.shape?a=r=Math.min(Math.abs(t),Math.abs(t-i),Math.abs(A),Math.abs(A-n)):1===e.shape&&(a=Math.min(Math.abs(t),Math.abs(t-i)),r=Math.min(Math.abs(A),Math.abs(A-n)));break;case 2:if(0===e.shape)a=r=Math.min(Tt(t,A),Tt(t,A-n),Tt(t-i,A),Tt(t-i,A-n));else if(1===e.shape){var s=Math.min(Math.abs(A),Math.abs(A-n))/Math.min(Math.abs(t),Math.abs(t-i)),o=It(i,n,t,A,!0),l=o[0],c=o[1];r=s*(a=Tt(l-t,(c-A)/s))}break;case 1:0===e.shape?a=r=Math.max(Math.abs(t),Math.abs(t-i),Math.abs(A),Math.abs(A-n)):1===e.shape&&(a=Math.max(Math.abs(t),Math.abs(t-i)),r=Math.max(Math.abs(A),Math.abs(A-n)));break;case 3:if(0===e.shape)a=r=Math.max(Tt(t,A),Tt(t,A-n),Tt(t-i,A),Tt(t-i,A-n));else if(1===e.shape){s=Math.max(Math.abs(A),Math.abs(A-n))/Math.max(Math.abs(t),Math.abs(t-i));var d=It(i,n,t,A,!1);l=d[0],c=d[1],r=s*(a=Tt(l-t,(c-A)/s))}}return Array.isArray(e.size)&&(a=at(e.size[0],i),r=2===e.size.length?at(e.size[1],n):a),[a,r]}(A,x,S,C,y),I=T[0],k=T[1],I>0&&k>0&&(U=i.ctx.createRadialGradient(b+x,v+S,0,b+x,v+S,I),xt(A.stops,2*I).forEach((function(e){return U.addColorStop(e.stop,gt(e.color))})),i.path(B),i.ctx.fillStyle=U,I!==k?(Q=e.bounds.left+.5*e.bounds.width,O=e.bounds.top+.5*e.bounds.height,L=1/(M=k/I),i.ctx.save(),i.ctx.translate(Q,O),i.ctx.transform(1,0,0,M,0,0),i.ctx.translate(-Q,-O),i.ctx.fillRect(b,L*(v-O)+O,C,y*L),i.ctx.restore()):i.ctx.fill())),n.label=6;case 6:return t--,[2]}}))},i=this,a=0,r=e.styles.backgroundImage.slice(0).reverse(),o.label=1;case 1:return a0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,r,e.curves,2)]:[3,11]:[3,13];case 4:return n.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,r,e.curves,3)];case 6:return n.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,r,e.curves)];case 8:return n.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,r,e.curves)];case 10:n.sent(),n.label=11;case 11:r++,n.label=12;case 12:return s++,[3,3];case 13:return[2]}}))}))},A.prototype.renderDashedDottedBorder=function(e,t,A,a,r){return i(this,void 0,void 0,(function(){var i,s,o,l,c,d,h,u,g,p,m,w,f,E,B,b;return n(this,(function(n){return this.ctx.save(),i=function(e,t){switch(t){case 0:return qa(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return qa(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return qa(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return qa(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(a,A),s=_a(a,A),2===r&&(this.path(s),this.ctx.clip()),Na(s[0])?(o=s[0].start.x,l=s[0].start.y):(o=s[0].x,l=s[0].y),Na(s[1])?(c=s[1].end.x,d=s[1].end.y):(c=s[1].x,d=s[1].y),h=0===A||2===A?Math.abs(o-c):Math.abs(l-d),this.ctx.beginPath(),3===r?this.formatPath(i):this.formatPath(s.slice(0,2)),u=t<3?3*t:2*t,g=t<3?2*t:t,3===r&&(u=t,g=t),p=!0,h<=2*u?p=!1:h<=2*u+g?(u*=m=h/(2*u+g),g*=m):(w=Math.floor((h+g)/(u+g)),f=(h-w*u)/(w-1),g=(E=(h-(w+1)*u)/w)<=0||Math.abs(g-f){const a=await tex2dataURL(e,n);if(a){const e=[];e.push({mimeType:a.mimeType,id:t,dataURL:a.dataURL,created:a.created,size:a.size,hasSVGwithBitmap:!1,shouldScale:!0}),i(e,A)}};async function tex2dataURL(e,t){let A=0;for(;!t.mathjax&&!t.mathjaxLoaderFinished&&A<10;)await sleep$1(100),A++;t.mathjaxLoaderFinished||errorlog({where:"text2dataURL",fn:tex2dataURL,message:"mathjaxLoader not ready, using fallback. Try reloading Obsidian or restarting the Excalidraw plugin"});try{return await mathjaxSVG(e,t)}catch(A){await sleep$1(100);try{return await mathjaxSVG(e,t)}catch(A){await sleep$1(100);try{return await mathjaxSVG(e,t)}catch(A){return t.mathjax?new obsidian_module.Notice("Unknown error loading LaTeX. Using fallback solution. Try closing and reopening this drawing."):new obsidian_module.Notice("LaTeX support did not load. Using fallback solution. Try checking your network connection."),await mathjaxImage2html(e)}}}}async function mathjaxSVG(e,t){const A=t.mathjax.tex2svg(e,{display:!0,scale:4}).querySelector("svg");if(A){A.width.baseVal.valueInSpecifiedUnits<2&&(A.width.baseVal.valueAsString=`${(A.width.baseVal.valueInSpecifiedUnits+1).toFixed(3)}ex`);const e=svgToBase64(A.outerHTML);return{mimeType:"image/svg+xml",fileId:fileid(),dataURL:e,created:Date.now(),size:await getImageSize(e)}}return null}async function mathjaxImage2html(e){const t=document.body.createDiv();t.style.display="table";const A=window.MathJax.tex2chtml(e,{display:!0,scale:4});A.style.margin="3px",A.style.color="black";const i=A.querySelector("mjx-assistive-mml");i&&i.parentElement.removeChild(i),t.appendChild(A),window.MathJax.typeset();const n=await html2canvas(t,{backgroundColor:null});return document.body.removeChild(t),{mimeType:"image/png",fileId:fileid(),dataURL:n.toDataURL(),created:Date.now(),size:{height:n.height,width:n.width}}}const THEME_FILTER="invert(100%) hue-rotate(180deg) saturate(1.25)",markdownRendererRecursionWatcthdog=new Set,replaceSVGColors=(e,t)=>{if(!t)return e;if("string"==typeof e){for(const[A,i]of Object.entries(t)){const t=new RegExp(`fill="${A}"`,"g");e=e.replaceAll(t,`fill="${i}"`);const n=new RegExp(`stroke="${A}"`,"g");e=e.replaceAll(n,`stroke="${i}"`)}return e}const A=e=>{if(e instanceof SVGElement){const A=e.getAttribute("fill"),i=e.getAttribute("stroke");A&&t[A]&&e.setAttribute("fill",t[A]),i&&t[i]&&e.setAttribute("stroke",t[i])}for(const t of e.childNodes)A(t)};for(const t of e.childNodes)A(t);return e};class EmbeddedFile{constructor(e,t,A,i){if(this.file=null,this.isSVGwithBitmap=!1,this.img="",this.imgInverted="",this.mtime=0,this.mimeType="application/octet-stream",this.size={height:0,width:0},this.attemptCounter=0,this.isHyperlink=!1,this.colorMap=null,this.plugin=e,this.resetImage(t,A),this.file&&(this.plugin.ea.isExcalidrawFile(this.file)||"svg"===this.file.extension.toLowerCase()))try{this.colorMap=i?JSON.parse(i):null}catch(e){this.colorMap=null}}resetImage(e,t){if(this.imgInverted=this.img="",this.mtime=0,t.startsWith("https://")||t.startsWith("http://"))return this.isHyperlink=!0,void(this.hyperlink=t);this.linkParts=getLinkParts(t),this.hostPath=e,this.linkParts.path?(this.linkParts.width||(this.linkParts.width=this.plugin.settings.mdSVGwidth),this.linkParts.height||(this.linkParts.height=this.plugin.settings.mdSVGmaxHeight),this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,e),this.file||0==this.attemptCounter++&&new obsidian_module.Notice(`Excalidraw Warning: could not find image file: ${t}`,5e3)):new obsidian_module.Notice(`Excalidraw Error\nIncorrect embedded filename: ${t}`)}fileChanged(){return!this.isHyperlink&&(this.file||(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?this.mtime!=this.file.stat.mtime:(this.attemptCounter++,!1))}setImage(e,t,A,i,n){if(this.file||this.isHyperlink){switch(this.fileChanged()&&(this.imgInverted=this.img=""),this.mtime=this.isHyperlink?0:this.file.stat.mtime,this.size=A,this.mimeType=t,i&&n){case!0:this.imgInverted=e;break;case!1:this.img=e}this.isSVGwithBitmap=n}}isLoaded(e){if(!this.isHyperlink){if(!this.file&&(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),!this.file))return this.attemptCounter++,!0;if(this.fileChanged())return!1}return this.isSVGwithBitmap&&e?""!==this.imgInverted:""!==this.img}getImage(e){return this.file||this.isHyperlink?e&&this.isSVGwithBitmap?this.imgInverted:this.img:""}shouldScale(){return this.isHyperlink||!Boolean(this.linkParts&&this.linkParts.original&&this.linkParts.original.endsWith("|100%"))}}class EmbeddedFilesLoader{constructor(e,t){this.pdfDocsMap=new Map,this.terminate=!1,this.plugin=e,this.isDark=t,this.uid=nanoid()}emptyPDFDocsMap(){this.pdfDocsMap.forEach((e=>e.destroy())),this.pdfDocsMap.clear()}async getObsidianImage(e,t){const A=await this._getObsidianImage(e,t);return this.emptyPDFDocsMap(),A}async _getObsidianImage(e,t){var A;if(!this.plugin||!e)return null;const i=e instanceof EmbeddedFile&&e.isHyperlink,n=e instanceof EmbeddedFile?e.hyperlink:"",a=e instanceof EmbeddedFile?e.file:e;if(a&&markdownRendererRecursionWatcthdog.has(a))return new obsidian_module.Notice(`Loading of ${a.path}. Please check if there is an inifinite loop of one file embedded in the other.`),null;const r=i?null:e instanceof EmbeddedFile?e.linkParts:{original:a.path,path:a.path,isBlockRef:!1,ref:null,width:this.plugin.settings.mdSVGwidth,height:this.plugin.settings.mdSVGmaxHeight,page:null};let s=!1;const o=!i&&this.plugin.isExcalidrawFile(a),l=!i&&"pdf"===a.extension.toLowerCase();if(!(i||l||IMAGE_TYPES.contains(a.extension)||o||"md"===a.extension))return null;const c=i||l?null:await app.vault.readBinary(a),d=o?await(async A=>{const i=hasExportTheme(this.plugin,a)?getExportTheme(this.plugin,a,"light"):void 0,n={withBackground:!!hasExportBackground(this.plugin,a)&&getWithBackground(this.plugin,a),withTheme:!!i},r=replaceSVGColors(await createSVG(a.path,!0,n,this,i,null,null,[],this.plugin,t+1,getExportPadding(this.plugin,a)),e instanceof EmbeddedFile?e.colorMap:null),o=r.querySelectorAll("image:not([href^='data:image/svg'])");return o.length>0&&(s=!0),s&&A&&o.forEach((e=>{var t;const A=null===(t=e.parentElement)||void 0===t?void 0:t.id;r.querySelectorAll(`use[href='#${A}']`).forEach((e=>{e.setAttribute("filter",THEME_FILTER)}))})),!s&&r.getAttribute("hasbitmap")&&(s=!0),svgToBase64(r.outerHTML)})(this.isDark):null,[h,u]=l?await this.pdfToDataURL(a,r):[null,null];let g=l?"image/png":"image/svg+xml";const p=i?getURLImageExtension(n):a.extension;o||l||(g=getMimeType(p));let m=i?e instanceof EmbeddedFile?await getDataURLFromURL(e.hyperlink,g):null:null!==(A=null!=d?d:h)&&void 0!==A?A:"svg"===a.extension?await getSVGData(app,a,e instanceof EmbeddedFile?e.colorMap:null):"md"===a.extension?null:await getDataURL(c,g);if(!i&&!m){markdownRendererRecursionWatcthdog.add(a);const e=await this.convertMarkdownToSVG(this.plugin,a,r,t);markdownRendererRecursionWatcthdog.delete(a),m=e.dataURL,s=e.hasSVGwithBitmap}try{const e=l?u:await getImageSize(m);return{mimeType:g,fileId:await generateIdFromFile(i||l?(new TextEncoder).encode(m):c),dataURL:m,created:i?0:a.stat.mtime,hasSVGwithBitmap:s,size:e}}catch(e){return null}}async loadSceneFiles(e,t,A){var i,n;if(A>4)return void new obsidian_module.Notice(t$d("INFINITE_LOOP_WARNING")+A.toString(),6e3);const a=e.getFileEntries();let r;void 0===this.isDark&&(this.isDark="dark"===(null===(n=null===(i=null==e?void 0:e.scene)||void 0===i?void 0:i.appState)||void 0===n?void 0:n.theme));const s=[];for(;!this.terminate&&!(r=a.next()).done;){const e=r.value[1];if(e.isLoaded(this.isDark)){if(e.isSVGwithBitmap){const A={mimeType:e.mimeType,id:r.value[0],dataURL:e.getImage(this.isDark),created:e.mtime,size:e.size,hasSVGwithBitmap:e.isSVGwithBitmap,shouldScale:e.shouldScale()};try{t([A],this.isDark,!1)}catch(e){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:e})}}}else{const i=await this._getObsidianImage(e,A);if(i){const A={mimeType:i.mimeType,id:r.value[0],dataURL:i.dataURL,created:i.created,size:i.size,hasSVGwithBitmap:i.hasSVGwithBitmap,shouldScale:e.shouldScale()};try{t([A],this.isDark,!1)}catch(e){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:e})}}}}let o;const l=e.getEquationEntries();for(;!this.terminate&&!(o=l.next()).done;)if(!e.getEquation(o.value[0]).isLoaded){const e=o.value[1].latex,t=await tex2dataURL(e,this.plugin);if(t){const e={mimeType:t.mimeType,id:o.value[0],dataURL:t.dataURL,created:t.created,size:t.size,hasSVGwithBitmap:!1,shouldScale:!0};s.push(e)}}if(this.emptyPDFDocsMap(),!this.terminate)try{t(s,this.isDark,!0)}catch(e){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:e})}}async pdfToDataURL(e,t){var A,i;try{let n=0,a=0;const r=null!==(A=this.pdfDocsMap.get(e.path))&&void 0!==A?A:await getPDFDoc(e);this.pdfDocsMap.has(e.path)||this.pdfDocsMap.set(e.path,r);const s=isNaN(t.page)?1:null!==(i=t.page)&&void 0!==i?i:1,o=this.plugin.settings.pdfScale,l=async e=>{const t=createEl("canvas"),A=t.getContext("2d"),i=await r.getPage(e),s=i.getViewport({scale:o});a=t.height=s.height,n=t.width=s.width;const l={canvasContext:A,background:"rgba(0,0,0,0)",viewport:s};return await i.render(l).promise,t},c=await l(s);if(c){const e=[`data:image/png;base64,${await new Promise(((e,t)=>{c.toBlob((async t=>{const A=await blobToBase64(t);e(A)}))}))}`,{width:n,height:a}];return c.width=0,c.height=0,e}}catch(e){return console.log(e),[null,null]}}async convertMarkdownToSVG(e,t,A,i){var n,a,r,s;let o=!1;const l=await getTransclusion(A,e.app,t);let c=(null!==(n=l.leadingHashes)&&void 0!==n?n:"")+l.contents;""===c&&(c="# Empty markdown file\nCTRL+Click here to open the file for editing in the current active pane, or CTRL+SHIFT+Click to open it in an adjacent pane.");const d=e.app.metadataCache.getFileCache(t);let h,u=e.settings.mdFont;switch((null==d?void 0:d.frontmatter)&&Boolean(d.frontmatter["excalidraw-font"])&&(u=d.frontmatter["excalidraw-font"]),u){case"Virgil":h=VIRGIL_FONT;break;case"Cascadia":h=CASCADIA_FONT;break;case"":h="";break;default:const A=await getFontDataURL(e.app,u,t.path);h=A.fontDef,u=A.fontName}(null==d?void 0:d.frontmatter)&&null!==d.frontmatter.banner&&(c=c.replace(/banner:\s*.*/,""));const g=(null==d?void 0:d.frontmatter)&&null!==(a=d.frontmatter["excalidraw-font-color"])&&void 0!==a?a:e.settings.mdFontColor;let p=(null==d?void 0:d.frontmatter)&&null!==(r=d.frontmatter["excalidraw-css"])&&void 0!==r?r:"",m=!1;if(p&&""!=p){const A=e.app.metadataCache.getFirstLinkpathDest(p,t.path);A&&(p=await e.app.vault.read(A),m=!0)}if(!m)if(e.settings.mdCSS&&""!==e.settings.mdCSS){const A=e.app.metadataCache.getFirstLinkpathDest(e.settings.mdCSS,t.path);p+=A?`\n${await e.app.vault.read(A)}`:DEFAULT_MD_EMBED_CSS}else p+=DEFAULT_MD_EMBED_CSS;const w=(null==d?void 0:d.frontmatter)&&null!==(s=d.frontmatter["excalidraw-border-color"])&&void 0!==s?s:e.settings.mdBorderColor;w&&""!==w&&!p.match(/svg/i)&&(p+=`svg{border:2px solid;color:${w};transform:scale(.95)}`);let f=` width="${A.width}px" height="100000"`,E=` width="${A.width}px" height="100%"`;const B=(e,t,A)=>`${A?``:""}${e}${t}${""!==h?``:""}`,b=createDiv();b.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),b.setAttribute("class","excalidraw-md-host"),""!==u&&(b.style.fontFamily=u),b.style.overflow="auto",b.style.display="block",b.style.color=g&&""!==g?g:"initial",await obsidian_module.MarkdownRenderer.renderMarkdown(c,b,t.path,e),b.querySelectorAll(":scope > *[class^='frontmatter']").forEach((e=>b.removeChild(e)));const v=Array.from(b.querySelectorAll("span[class='internal-embed']"));for(let A=0;A{const t=e.style,A=window.getComputedStyle(e);let i="";for(const e in t)t.hasOwnProperty(e)&&(i+=`${e}: ${A[e]};`);e.setAttribute("style",i)}));const S=(new XMLSerializer).serializeToString(F),T=(new XMLSerializer).serializeToString(x);document.body.removeChild(C);const I=new DOMParser,k=I.parseFromString(B(S,T),"image/svg+xml").firstElementChild,U=createDiv();U.appendChild(k),document.body.appendChild(U);const Q=k.querySelector(".excalidraw-md-footer").scrollHeight,O=k.querySelector(".excalidraw-md-host").scrollHeight+Q,M=O<=A.height?O:A.height;document.body.removeChild(U),f=` width="${A.width}px" height="${M}px"`,E=` width="${A.width}px" height="${M}px"`,b.style.height=M-Q+"px",b.style.overflow="hidden";const L=b.querySelectorAll("img:not([src^='data:image/svg+xml'])");L.length>0&&(o=!0),o&&this.isDark&&L.forEach((e=>{e instanceof HTMLImageElement&&(e.style.filter=THEME_FILTER)}));const D=B((new XMLSerializer).serializeToString(b),'',p);return e.ea.mostRecentMarkdownSVG=I.parseFromString(D,"image/svg+xml").firstElementChild,{dataURL:svgToBase64(D),hasSVGwithBitmap:o}}}const getSVGData=async(e,t,A)=>{const i=replaceSVGColors(await e.vault.read(t),A);return svgToBase64(i)},generateIdFromFile=async e=>{let t;try{const A=await window.crypto.subtle.digest("SHA-1",e);t=Array.from(new Uint8Array(A)).map((e=>e.toString(16).padStart(2,"0"))).join("")}catch(e){errorlog({where:"EmbeddedFileLoader.generateIdFromFile",error:e}),t=fileid()}return t};var AutoexportPreference;!function(e){e[e.none=0]="none",e[e.both=1]="both",e[e.png=2]="png",e[e.svg=3]="svg",e[e.inherit=4]="inherit"}(AutoexportPreference||(AutoexportPreference={}));const REGEX_LINK={ +var e=function(t,A){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var A in t)Object.prototype.hasOwnProperty.call(t,A)&&(e[A]=t[A])},e(t,A)};function t(t,A){if("function"!=typeof A&&null!==A)throw new TypeError("Class extends value "+String(A)+" is not a constructor or null");function i(){this.constructor=t}e(t,A),t.prototype=null===A?Object.create(A):(i.prototype=A.prototype,new i)}var A=function(){return A=Object.assign||function(e){for(var t,A=1,i=arguments.length;A0&&n[n.length-1])||6!==a[0]&&2!==a[0])){r=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]=55296&&n<=56319&&A>10),r%1024+56320)),(n+1===A||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d="undefined"==typeof Uint8Array?[]:new Uint8Array(256),h=0;h=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",E="undefined"==typeof Uint8Array?[]:new Uint8Array(256),B=0;B>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(e),i=Array.isArray(A)?function(e){for(var t=e.length,A=[],i=0;i0;){var r=i[--a];if(Array.isArray(e)?-1!==e.indexOf(r):e===r)for(var s=A;s<=i.length;){var o;if((o=i[++s])===t)return!0;if(o!==b)break}if(r!==b)break}return!1},ie=function(e,t){for(var A=e;A>=0;){var i=t[A];if(i!==b)return i;A--}return 0},ne=function(e,t,A,i,n){if(0===A[i])return X;var a=i-1;if(Array.isArray(n)&&!0===n[a])return X;var r=a-1,s=a+1,o=t[a],l=r>=0?t[r]:0,c=t[s];if(2===o&&3===c)return X;if(-1!==J.indexOf(o))return"!";if(-1!==J.indexOf(c))return X;if(-1!==Z.indexOf(c))return X;if(8===ie(a,t))return Y;if(11===j.get(e[a]))return X;if((o===N||o===D)&&11===j.get(e[s]))return X;if(7===o||7===c)return X;if(9===o)return X;if(-1===[b,v,C].indexOf(o)&&9===c)return X;if(-1!==[y,F,x,M,O].indexOf(c))return X;if(ie(a,t)===I)return X;if(Ae(23,I,a,t))return X;if(Ae([y,F],S,a,t))return X;if(Ae(12,12,a,t))return X;if(o===b)return Y;if(23===o||23===c)return X;if(16===c||16===o)return Y;if(-1!==[v,C,S].indexOf(c)||14===o)return X;if(36===l&&-1!==te.indexOf(o))return X;if(o===O&&36===c)return X;if(c===T)return X;if(-1!==_.indexOf(c)&&o===k||-1!==_.indexOf(o)&&c===k)return X;if(o===Q&&-1!==[P,N,D].indexOf(c)||-1!==[P,N,D].indexOf(o)&&c===U)return X;if(-1!==_.indexOf(o)&&-1!==q.indexOf(c)||-1!==q.indexOf(o)&&-1!==_.indexOf(c))return X;if(-1!==[Q,U].indexOf(o)&&(c===k||-1!==[I,C].indexOf(c)&&t[s+1]===k)||-1!==[I,C].indexOf(o)&&c===k||o===k&&-1!==[k,O,M].indexOf(c))return X;if(-1!==[k,O,M,y,F].indexOf(c))for(var d=a;d>=0;){if((h=t[d])===k)return X;if(-1===[O,M].indexOf(h))break;d--}if(-1!==[Q,U].indexOf(c))for(d=-1!==[y,F].indexOf(o)?r:a;d>=0;){var h;if((h=t[d])===k)return X;if(-1===[O,M].indexOf(h))break;d--}if(V===o&&-1!==[V,K,R,H].indexOf(c)||-1!==[K,R].indexOf(o)&&-1!==[K,G].indexOf(c)||-1!==[G,H].indexOf(o)&&c===G)return X;if(-1!==ee.indexOf(o)&&-1!==[T,U].indexOf(c)||-1!==ee.indexOf(c)&&o===Q)return X;if(-1!==_.indexOf(o)&&-1!==_.indexOf(c))return X;if(o===M&&-1!==_.indexOf(c))return X;if(-1!==_.concat(k).indexOf(o)&&c===I&&-1===z.indexOf(e[s])||-1!==_.concat(k).indexOf(c)&&o===F)return X;if(41===o&&41===c){for(var u=A[a],g=1;u>0&&41===t[--u];)g++;if(g%2!=0)return X}return o===N&&c===D?X:Y},ae=function(e,t){t||(t={lineBreak:"normal",wordBreak:"normal"});var A=function(e,t){void 0===t&&(t="strict");var A=[],i=[],n=[];return e.forEach((function(e,a){var r=j.get(e);if(r>50?(n.push(!0),r-=50):n.push(!1),-1!==["normal","auto","loose"].indexOf(t)&&-1!==[8208,8211,12316,12448].indexOf(e))return i.push(a),A.push(16);if(4===r||11===r){if(0===a)return i.push(a),A.push(L);var s=A[a-1];return-1===$.indexOf(s)?(i.push(i[a-1]),A.push(s)):(i.push(a),A.push(L))}return i.push(a),31===r?A.push("strict"===t?S:P):r===W||29===r?A.push(L):43===r?e>=131072&&e<=196605||e>=196608&&e<=262141?A.push(P):A.push(L):void A.push(r)})),[i,A,n]}(e,t.lineBreak),i=A[0],n=A[1],a=A[2];"break-all"!==t.wordBreak&&"break-word"!==t.wordBreak||(n=n.map((function(e){return-1!==[k,L,W].indexOf(e)?P:e})));var r="keep-all"===t.wordBreak?a.map((function(t,A){return t&&e[A]>=19968&&e[A]<=40959})):void 0;return[i,n,r]},re=function(){function e(e,t,A,i){this.codePoints=e,this.required="!"===t,this.start=A,this.end=i}return e.prototype.slice=function(){return l.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),se=45,oe=43,le=-1,ce=function(e){return e>=48&&e<=57},de=function(e){return ce(e)||e>=65&&e<=70||e>=97&&e<=102},he=function(e){return 10===e||9===e||32===e},ue=function(e){return function(e){return function(e){return e>=97&&e<=122}(e)||function(e){return e>=65&&e<=90}(e)}(e)||function(e){return e>=128}(e)||95===e},ge=function(e){return ue(e)||ce(e)||e===se},pe=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},me=function(e,t){return 92===e&&10!==t},we=function(e,t,A){return e===se?ue(t)||me(t,A):!!ue(e)||!(92!==e||!me(e,t))},fe=function(e,t,A){return e===oe||e===se?!!ce(t)||46===t&&ce(A):ce(46===e?t:e)},Ee=function(e){var t=0,A=1;e[t]!==oe&&e[t]!==se||(e[t]===se&&(A=-1),t++);for(var i=[];ce(e[t]);)i.push(e[t++]);var n=i.length?parseInt(l.apply(void 0,i),10):0;46===e[t]&&t++;for(var a=[];ce(e[t]);)a.push(e[t++]);var r=a.length,s=r?parseInt(l.apply(void 0,a),10):0;69!==e[t]&&101!==e[t]||t++;var o=1;e[t]!==oe&&e[t]!==se||(e[t]===se&&(o=-1),t++);for(var c=[];ce(e[t]);)c.push(e[t++]);var d=c.length?parseInt(l.apply(void 0,c),10):0;return A*(n+s*Math.pow(10,-r))*Math.pow(10,o*d)},Be={type:2},be={type:3},ve={type:4},Ce={type:13},ye={type:8},Fe={type:21},xe={type:9},Te={type:10},Se={type:11},Ie={type:12},Me={type:14},ke={type:23},Ue={type:1},Qe={type:25},Oe={type:24},Le={type:26},Ne={type:27},De={type:28},Re={type:29},He={type:31},Pe={type:32},Ve=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(o(e))},e.prototype.read=function(){for(var e=[],t=this.consumeToken();t!==Pe;)e.push(t),t=this.consumeToken();return e},e.prototype.consumeToken=function(){var e=this.consumeCodePoint();switch(e){case 34:return this.consumeStringToken(34);case 35:var t=this.peekCodePoint(0),A=this.peekCodePoint(1),i=this.peekCodePoint(2);if(ge(t)||me(A,i)){var n=we(t,A,i)?2:1;return{type:5,value:this.consumeName(),flags:n}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Ce;break;case 39:return this.consumeStringToken(39);case 40:return Be;case 41:return be;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Me;break;case oe:if(fe(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return ve;case se:var a=e,r=this.peekCodePoint(0),s=this.peekCodePoint(1);if(fe(a,r,s))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(we(a,r,s))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(r===se&&62===s)return this.consumeCodePoint(),this.consumeCodePoint(),Oe;break;case 46:if(fe(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var o=this.consumeCodePoint();if(42===o&&47===(o=this.consumeCodePoint()))return this.consumeToken();if(o===le)return this.consumeToken()}break;case 58:return Le;case 59:return Ne;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===se&&this.peekCodePoint(2)===se)return this.consumeCodePoint(),this.consumeCodePoint(),Qe;break;case 64:var c=this.peekCodePoint(0),d=this.peekCodePoint(1),h=this.peekCodePoint(2);if(we(c,d,h))return{type:7,value:this.consumeName()};break;case 91:return De;case 92:if(me(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return Re;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),ye;break;case 123:return Se;case 125:return Ie;case 117:case 85:var u=this.peekCodePoint(0),g=this.peekCodePoint(1);return u!==oe||!de(g)&&63!==g||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),xe;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),Fe;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Te;break;case le:return Pe}return he(e)?(this.consumeWhiteSpace(),He):ce(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):ue(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:l(e)}},e.prototype.consumeCodePoint=function(){var e=this._value.shift();return void 0===e?-1:e},e.prototype.reconsumeCodePoint=function(e){this._value.unshift(e)},e.prototype.peekCodePoint=function(e){return e>=this._value.length?-1:this._value[e]},e.prototype.consumeUnicodeRangeToken=function(){for(var e=[],t=this.consumeCodePoint();de(t)&&e.length<6;)e.push(t),t=this.consumeCodePoint();for(var A=!1;63===t&&e.length<6;)e.push(t),t=this.consumeCodePoint(),A=!0;if(A)return{type:30,start:parseInt(l.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt(l.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var i=parseInt(l.apply(void 0,e),16);if(this.peekCodePoint(0)===se&&de(this.peekCodePoint(1))){this.consumeCodePoint(),t=this.consumeCodePoint();for(var n=[];de(t)&&n.length<6;)n.push(t),t=this.consumeCodePoint();return{type:30,start:i,end:parseInt(l.apply(void 0,n),16)}}return{type:30,start:i,end:i}},e.prototype.consumeIdentLikeToken=function(){var e=this.consumeName();return"url"===e.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:e}):{type:20,value:e}},e.prototype.consumeUrlToken=function(){var e=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===le)return{type:22,value:""};var t=this.peekCodePoint(0);if(39===t||34===t){var A=this.consumeStringToken(this.consumeCodePoint());return 0===A.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===le||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:A.value}):(this.consumeBadUrlRemnants(),ke)}for(;;){var i=this.consumeCodePoint();if(i===le||41===i)return{type:22,value:l.apply(void 0,e)};if(he(i))return this.consumeWhiteSpace(),this.peekCodePoint(0)===le||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:l.apply(void 0,e)}):(this.consumeBadUrlRemnants(),ke);if(34===i||39===i||40===i||pe(i))return this.consumeBadUrlRemnants(),ke;if(92===i){if(!me(i,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),ke;e.push(this.consumeEscapedCodePoint())}else e.push(i)}},e.prototype.consumeWhiteSpace=function(){for(;he(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||e===le)return;me(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var t="";e>0;){var A=Math.min(5e4,e);t+=l.apply(void 0,this._value.splice(0,A)),e-=A}return this._value.shift(),t},e.prototype.consumeStringToken=function(e){for(var t="",A=0;;){var i=this._value[A];if(i===le||void 0===i||i===e)return{type:0,value:t+=this.consumeStringSlice(A)};if(10===i)return this._value.splice(0,A),Ue;if(92===i){var n=this._value[A+1];n!==le&&void 0!==n&&(10===n?(t+=this.consumeStringSlice(A),A=-1,this._value.shift()):me(i,n)&&(t+=this.consumeStringSlice(A),t+=l(this.consumeEscapedCodePoint()),A=-1))}A++}},e.prototype.consumeNumber=function(){var e=[],t=4,A=this.peekCodePoint(0);for(A!==oe&&A!==se||e.push(this.consumeCodePoint());ce(this.peekCodePoint(0));)e.push(this.consumeCodePoint());A=this.peekCodePoint(0);var i=this.peekCodePoint(1);if(46===A&&ce(i))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;ce(this.peekCodePoint(0));)e.push(this.consumeCodePoint());A=this.peekCodePoint(0),i=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((69===A||101===A)&&((i===oe||i===se)&&ce(n)||ce(i)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;ce(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[Ee(e),t]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),t=e[0],A=e[1],i=this.peekCodePoint(0),n=this.peekCodePoint(1),a=this.peekCodePoint(2);return we(i,n,a)?{type:15,number:t,flags:A,unit:this.consumeName()}:37===i?(this.consumeCodePoint(),{type:16,number:t,flags:A}):{type:17,number:t,flags:A}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(de(e)){for(var t=l(e);de(this.peekCodePoint(0))&&t.length<6;)t+=l(this.consumeCodePoint());he(this.peekCodePoint(0))&&this.consumeCodePoint();var A=parseInt(t,16);return 0===A||function(e){return e>=55296&&e<=57343}(A)||A>1114111?65533:A}return e===le?65533:e},e.prototype.consumeName=function(){for(var e="";;){var t=this.consumeCodePoint();if(ge(t))e+=l(t);else{if(!me(t,this.peekCodePoint(0)))return this.reconsumeCodePoint(t),e;e+=l(this.consumeEscapedCodePoint())}}},e}(),Ke=function(){function e(e){this._tokens=e}return e.create=function(t){var A=new Ve;return A.write(t),new e(A.read())},e.parseValue=function(t){return e.create(t).parseComponentValue()},e.parseValues=function(t){return e.create(t).parseComponentValues()},e.prototype.parseComponentValue=function(){for(var e=this.consumeToken();31===e.type;)e=this.consumeToken();if(32===e.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(e);var t=this.consumeComponentValue();do{e=this.consumeToken()}while(31===e.type);if(32===e.type)return t;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},e.prototype.parseComponentValues=function(){for(var e=[];;){var t=this.consumeComponentValue();if(32===t.type)return e;e.push(t),e.push()}},e.prototype.consumeComponentValue=function(){var e=this.consumeToken();switch(e.type){case 11:case 28:case 2:return this.consumeSimpleBlock(e.type);case 19:return this.consumeFunction(e)}return e},e.prototype.consumeSimpleBlock=function(e){for(var t={type:e,values:[]},A=this.consumeToken();;){if(32===A.type||Ze(A,e))return t;this.reconsumeToken(A),t.values.push(this.consumeComponentValue()),A=this.consumeToken()}},e.prototype.consumeFunction=function(e){for(var t={name:e.value,values:[],type:18};;){var A=this.consumeToken();if(32===A.type||3===A.type)return t;this.reconsumeToken(A),t.values.push(this.consumeComponentValue())}},e.prototype.consumeToken=function(){var e=this._tokens.shift();return void 0===e?Pe:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),Ge=function(e){return 15===e.type},We=function(e){return 17===e.type},ze=function(e){return 20===e.type},Xe=function(e){return 0===e.type},Ye=function(e,t){return ze(e)&&e.value===t},je=function(e){return 31!==e.type},_e=function(e){return 31!==e.type&&4!==e.type},Je=function(e){var t=[],A=[];return e.forEach((function(e){if(4===e.type){if(0===A.length)throw new Error("Error parsing function args, zero tokens for arg");return t.push(A),void(A=[])}31!==e.type&&A.push(e)})),A.length&&t.push(A),t},Ze=function(e,t){return 11===t&&12===e.type||28===t&&29===e.type||2===t&&3===e.type},qe=function(e){return 17===e.type||15===e.type},$e=function(e){return 16===e.type||qe(e)},et=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},tt={type:17,number:0,flags:4},At={type:16,number:50,flags:4},it={type:16,number:100,flags:4},nt=function(e,t,A){var i=e[0],n=e[1];return[at(i,t),at(void 0!==n?n:i,A)]},at=function(e,t){if(16===e.type)return e.number/100*t;if(Ge(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},rt="grad",st="turn",ot=function(e,t){if(15===t.type)switch(t.unit){case"deg":return Math.PI*t.number/180;case rt:return Math.PI/200*t.number;case"rad":return t.number;case st:return 2*Math.PI*t.number}throw new Error("Unsupported angle type")},lt=function(e){return 15===e.type&&("deg"===e.unit||e.unit===rt||"rad"===e.unit||e.unit===st)},ct=function(e){switch(e.filter(ze).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[tt,tt];case"to top":case"bottom":return dt(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[tt,it];case"to right":case"left":return dt(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[it,it];case"to bottom":case"top":return dt(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[it,tt];case"to left":case"right":return dt(270)}return 0},dt=function(e){return Math.PI*e/180},ht=function(e,t){if(18===t.type){var A=Bt[t.name];if(void 0===A)throw new Error('Attempting to parse an unsupported color function "'+t.name+'"');return A(e,t.values)}if(5===t.type){if(3===t.value.length){var i=t.value.substring(0,1),n=t.value.substring(1,2),a=t.value.substring(2,3);return pt(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),1)}if(4===t.value.length){i=t.value.substring(0,1),n=t.value.substring(1,2),a=t.value.substring(2,3);var r=t.value.substring(3,4);return pt(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),parseInt(r+r,16)/255)}if(6===t.value.length)return i=t.value.substring(0,2),n=t.value.substring(2,4),a=t.value.substring(4,6),pt(parseInt(i,16),parseInt(n,16),parseInt(a,16),1);if(8===t.value.length)return i=t.value.substring(0,2),n=t.value.substring(2,4),a=t.value.substring(4,6),r=t.value.substring(6,8),pt(parseInt(i,16),parseInt(n,16),parseInt(a,16),parseInt(r,16)/255)}if(20===t.type){var s=vt[t.value.toUpperCase()];if(void 0!==s)return s}return vt.TRANSPARENT},ut=function(e){return 0==(255&e)},gt=function(e){var t=255&e,A=255&e>>8,i=255&e>>16,n=255&e>>24;return t<255?"rgba("+n+","+i+","+A+","+t/255+")":"rgb("+n+","+i+","+A+")"},pt=function(e,t,A,i){return(e<<24|t<<16|A<<8|Math.round(255*i)<<0)>>>0},mt=function(e,t){if(17===e.type)return e.number;if(16===e.type){var A=3===t?1:255;return 3===t?e.number/100*A:Math.round(e.number/100*A)}return 0},wt=function(e,t){var A=t.filter(_e);if(3===A.length){var i=A.map(mt),n=i[0],a=i[1],r=i[2];return pt(n,a,r,1)}if(4===A.length){var s=A.map(mt),o=(n=s[0],a=s[1],r=s[2],s[3]);return pt(n,a,r,o)}return 0};function ft(e,t,A){return A<0&&(A+=1),A>=1&&(A-=1),A<1/6?(t-e)*A*6+e:A<.5?t:A<2/3?6*(t-e)*(2/3-A)+e:e}var Et=function(e,t){var A=t.filter(_e),i=A[0],n=A[1],a=A[2],r=A[3],s=(17===i.type?dt(i.number):ot(e,i))/(2*Math.PI),o=$e(n)?n.number/100:0,l=$e(a)?a.number/100:0,c=void 0!==r&&$e(r)?at(r,1):1;if(0===o)return pt(255*l,255*l,255*l,1);var d=l<=.5?l*(o+1):l+o-l*o,h=2*l-d,u=ft(h,d,s+1/3),g=ft(h,d,s),p=ft(h,d,s-1/3);return pt(255*u,255*g,255*p,c)},Bt={hsl:Et,hsla:Et,rgb:wt,rgba:wt},bt=function(e,t){return ht(e,Ke.create(t).parseComponentValue())},vt={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},Ct={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(ze(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},yt={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Ft=function(e,t){var A=ht(e,t[0]),i=t[1];return i&&$e(i)?{color:A,stop:i}:{color:A,stop:null}},xt=function(e,t){var A=e[0],i=e[e.length-1];null===A.stop&&(A.stop=tt),null===i.stop&&(i.stop=it);for(var n=[],a=0,r=0;ra?n.push(o):n.push(a),a=o}else n.push(null)}var l=null;for(r=0;re.optimumDistance)?{optimumCorner:t,optimumDistance:s}:e}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},Mt=function(e,t){var A=dt(180),i=[];return Je(t).forEach((function(t,n){if(0===n){var a=t[0];if(20===a.type&&-1!==["top","left","right","bottom"].indexOf(a.value))return void(A=ct(t));if(lt(a))return void(A=(ot(e,a)+dt(270))%dt(360))}var r=Ft(e,t);i.push(r)})),{angle:A,stops:i,type:1}},kt="closest-side",Ut="farthest-side",Qt="closest-corner",Ot="farthest-corner",Lt="circle",Nt="ellipse",Dt="cover",Rt="contain",Ht=function(e,t){var A=0,i=3,n=[],a=[];return Je(t).forEach((function(t,r){var s=!0;if(0===r?s=t.reduce((function(e,t){if(ze(t))switch(t.value){case"center":return a.push(At),!1;case"top":case"left":return a.push(tt),!1;case"right":case"bottom":return a.push(it),!1}else if($e(t)||qe(t))return a.push(t),!1;return e}),s):1===r&&(s=t.reduce((function(e,t){if(ze(t))switch(t.value){case Lt:return A=0,!1;case Nt:return A=1,!1;case Rt:case kt:return i=0,!1;case Ut:return i=1,!1;case Qt:return i=2,!1;case Dt:case Ot:return i=3,!1}else if(qe(t)||$e(t))return Array.isArray(i)||(i=[]),i.push(t),!1;return e}),s)),s){var o=Ft(e,t);n.push(o)}})),{size:i,shape:A,stops:n,position:a,type:2}},Pt=function(e,t){if(22===t.type){var A={url:t.value,type:0};return e.cache.addImage(t.value),A}if(18===t.type){var i=Kt[t.name];if(void 0===i)throw new Error('Attempting to parse an unsupported image function "'+t.name+'"');return i(e,t.values)}throw new Error("Unsupported image type "+t.type)};var Vt,Kt={"linear-gradient":function(e,t){var A=dt(180),i=[];return Je(t).forEach((function(t,n){if(0===n){var a=t[0];if(20===a.type&&"to"===a.value)return void(A=ct(t));if(lt(a))return void(A=ot(e,a))}var r=Ft(e,t);i.push(r)})),{angle:A,stops:i,type:1}},"-moz-linear-gradient":Mt,"-ms-linear-gradient":Mt,"-o-linear-gradient":Mt,"-webkit-linear-gradient":Mt,"radial-gradient":function(e,t){var A=0,i=3,n=[],a=[];return Je(t).forEach((function(t,r){var s=!0;if(0===r){var o=!1;s=t.reduce((function(e,t){if(o)if(ze(t))switch(t.value){case"center":return a.push(At),e;case"top":case"left":return a.push(tt),e;case"right":case"bottom":return a.push(it),e}else($e(t)||qe(t))&&a.push(t);else if(ze(t))switch(t.value){case Lt:return A=0,!1;case Nt:return A=1,!1;case"at":return o=!0,!1;case kt:return i=0,!1;case Dt:case Ut:return i=1,!1;case Rt:case Qt:return i=2,!1;case Ot:return i=3,!1}else if(qe(t)||$e(t))return Array.isArray(i)||(i=[]),i.push(t),!1;return e}),s)}if(s){var l=Ft(e,t);n.push(l)}})),{size:i,shape:A,stops:n,position:a,type:2}},"-moz-radial-gradient":Ht,"-ms-radial-gradient":Ht,"-o-radial-gradient":Ht,"-webkit-radial-gradient":Ht,"-webkit-gradient":function(e,t){var A=dt(180),i=[],n=1;return Je(t).forEach((function(t,A){var a=t[0];if(0===A){if(ze(a)&&"linear"===a.value)return void(n=1);if(ze(a)&&"radial"===a.value)return void(n=2)}if(18===a.type)if("from"===a.name){var r=ht(e,a.values[0]);i.push({stop:tt,color:r})}else if("to"===a.name)r=ht(e,a.values[0]),i.push({stop:it,color:r});else if("color-stop"===a.name){var s=a.values.filter(_e);if(2===s.length){r=ht(e,s[1]);var o=s[0];We(o)&&i.push({stop:{type:16,number:100*o.number,flags:o.flags},color:r})}}})),1===n?{angle:(A+dt(180))%dt(360),stops:i,type:n}:{size:3,shape:0,stops:i,position:[],type:n}}},Gt={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(e,t){if(0===t.length)return[];var A=t[0];return 20===A.type&&"none"===A.value?[]:t.filter((function(e){return _e(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!Kt[e.name])}(e)})).map((function(t){return Pt(e,t)}))}},Wt={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(ze(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},zt={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(e,t){return Je(t).map((function(e){return e.filter($e)})).map(et)}},Xt={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,t){return Je(t).map((function(e){return e.filter(ze).map((function(e){return e.value})).join(" ")})).map(Yt)}},Yt=function(e){switch(e){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(e){e.AUTO="auto",e.CONTAIN="contain",e.COVER="cover"}(Vt||(Vt={}));var jt,_t={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,t){return Je(t).map((function(e){return e.filter(Jt)}))}},Jt=function(e){return ze(e)||$e(e)},Zt=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},qt=Zt("top"),$t=Zt("right"),eA=Zt("bottom"),tA=Zt("left"),AA=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,t){return et(t.filter($e))}}},iA=AA("top-left"),nA=AA("top-right"),aA=AA("bottom-right"),rA=AA("bottom-left"),sA=function(e){return{name:"border-"+e+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(e,t){switch(t){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},oA=sA("top"),lA=sA("right"),cA=sA("bottom"),dA=sA("left"),hA=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,t){return Ge(t)?t.number:0}}},uA=hA("top"),gA=hA("right"),pA=hA("bottom"),mA=hA("left"),wA={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},fA={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,t){return"rtl"===t?1:0}},EA={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,t){return t.filter(ze).reduce((function(e,t){return e|BA(t.value)}),0)}},BA=function(e){switch(e){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},bA={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},vA={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(e,t){return 20===t.type&&"normal"===t.value?0:17===t.type||15===t.type?t.number:0}};!function(e){e.NORMAL="normal",e.STRICT="strict"}(jt||(jt={}));var CA,yA={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"strict"===t?jt.STRICT:jt.NORMAL}},FA={name:"line-height",initialValue:"normal",prefix:!1,type:4},xA=function(e,t){return ze(e)&&"normal"===e.value?1.2*t:17===e.type?t*e.number:$e(e)?at(e,t):t},TA={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(e,t){return 20===t.type&&"none"===t.value?null:Pt(e,t)}},SA={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,t){return"inside"===t?0:1}},IA={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},MA=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},kA=MA("top"),UA=MA("right"),QA=MA("bottom"),OA=MA("left"),LA={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,t){return t.filter(ze).map((function(e){switch(e.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},NA={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"break-word"===t?"break-word":"normal"}},DA=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},RA=DA("top"),HA=DA("right"),PA=DA("bottom"),VA=DA("left"),KA={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(e,t){switch(t){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},GA={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(e,t){switch(t){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},WA={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,t){return 1===t.length&&Ye(t[0],"none")?[]:Je(t).map((function(t){for(var A={color:vt.TRANSPARENT,offsetX:tt,offsetY:tt,blur:tt},i=0,n=0;n1?1:0],this.overflowWrap=Ci(e,NA,t.overflowWrap),this.paddingTop=Ci(e,RA,t.paddingTop),this.paddingRight=Ci(e,HA,t.paddingRight),this.paddingBottom=Ci(e,PA,t.paddingBottom),this.paddingLeft=Ci(e,VA,t.paddingLeft),this.paintOrder=Ci(e,wi,t.paintOrder),this.position=Ci(e,GA,t.position),this.textAlign=Ci(e,KA,t.textAlign),this.textDecorationColor=Ci(e,Ai,null!==(A=t.textDecorationColor)&&void 0!==A?A:t.color),this.textDecorationLine=Ci(e,ii,null!==(i=t.textDecorationLine)&&void 0!==i?i:t.textDecoration),this.textShadow=Ci(e,WA,t.textShadow),this.textTransform=Ci(e,zA,t.textTransform),this.transform=Ci(e,XA,t.transform),this.transformOrigin=Ci(e,JA,t.transformOrigin),this.visibility=Ci(e,ZA,t.visibility),this.webkitTextStrokeColor=Ci(e,fi,t.webkitTextStrokeColor),this.webkitTextStrokeWidth=Ci(e,Ei,t.webkitTextStrokeWidth),this.wordBreak=Ci(e,qA,t.wordBreak),this.zIndex=Ci(e,$A,t.zIndex)}return e.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},e.prototype.isTransparent=function(){return ut(this.backgroundColor)},e.prototype.isTransformed=function(){return null!==this.transform},e.prototype.isPositioned=function(){return 0!==this.position},e.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},e.prototype.isFloating=function(){return 0!==this.float},e.prototype.isInlineLevel=function(){return li(this.display,4)||li(this.display,33554432)||li(this.display,268435456)||li(this.display,536870912)||li(this.display,67108864)||li(this.display,134217728)},e}(),bi=function(e,t){this.content=Ci(e,ci,t.content),this.quotes=Ci(e,gi,t.quotes)},vi=function(e,t){this.counterIncrement=Ci(e,di,t.counterIncrement),this.counterReset=Ci(e,hi,t.counterReset)},Ci=function(e,t,A){var i=new Ve,n=null!=A?A.toString():t.initialValue;i.write(n);var a=new Ke(i.read());switch(t.type){case 2:var r=a.parseComponentValue();return t.parse(e,ze(r)?r.value:t.initialValue);case 0:return t.parse(e,a.parseComponentValue());case 1:return t.parse(e,a.parseComponentValues());case 4:return a.parseComponentValue();case 3:switch(t.format){case"angle":return ot(e,a.parseComponentValue());case"color":return ht(e,a.parseComponentValue());case"image":return Pt(e,a.parseComponentValue());case"length":var s=a.parseComponentValue();return qe(s)?s:tt;case"length-percentage":var o=a.parseComponentValue();return $e(o)?o:tt;case"time":return ei.parse(e,a.parseComponentValue())}}},yi=function(e,t){var A=function(e){switch(e.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(e);return 1===A||t===A},Fi=function(e,t){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,yi(t,3),this.styles=new Bi(e,window.getComputedStyle(t,null)),Mn(t)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(t.style.animationDuration="0s"),null!==this.styles.transform&&(t.style.transform="none")),this.bounds=s(this.context,t),yi(t,4)&&(this.flags|=16)},xi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ti="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Si=0;Si=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),ki="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ui="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Qi=0;Qi>10),r%1024+56320)),(n+1===A||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},Pi=function(e,t){var A=function(e){var t,A,i,n,a,r=.75*e.length,s=e.length,o=0;"="===e[e.length-1]&&(r--,"="===e[e.length-2]&&r--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(r):new Array(r),c=Array.isArray(l)?l:new Uint8Array(l);for(t=0;t>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(e),i=Array.isArray(A)?function(e){for(var t=e.length,A=[],i=0;i=55296&&n<=56319&&A=A)return{done:!0,value:null};for(var e=Vi;ir.x||n.y>r.y;return r=n,0===t||s}));return e.body.removeChild(t),s}(document);return Object.defineProperty(ji,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var t=new Image,A=e.createElement("canvas"),i=A.getContext("2d");if(!i)return!1;t.src="data:image/svg+xml,";try{i.drawImage(t,0,0),A.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(ji,"SUPPORT_SVG_DRAWING",{value:e}),e},get SUPPORT_FOREIGNOBJECT_DRAWING(){var e="function"==typeof Array.from&&"function"==typeof window.fetch?function(e){var t=e.createElement("canvas"),A=100;t.width=A,t.height=A;var i=t.getContext("2d");if(!i)return Promise.reject(!1);i.fillStyle="rgb(0, 255, 0)",i.fillRect(0,0,A,A);var n=new Image,a=t.toDataURL();n.src=a;var r=Xi(A,A,0,0,n);return i.fillStyle="red",i.fillRect(0,0,A,A),Yi(r).then((function(t){i.drawImage(t,0,0);var n=i.getImageData(0,0,A,A).data;i.fillStyle="red",i.fillRect(0,0,A,A);var r=e.createElement("div");return r.style.backgroundImage="url("+a+")",r.style.height="100px",zi(n)?Yi(Xi(A,A,0,0,r)):Promise.reject(!1)})).then((function(e){return i.drawImage(e,0,0),zi(i.getImageData(0,0,A,A).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(ji,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(ji,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(ji,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(ji,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(ji,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},_i=function(e,t){this.text=e,this.bounds=t},Ji=function(e,t){var A=t.ownerDocument;if(A){var i=A.createElement("html2canvaswrapper");i.appendChild(t.cloneNode(!0));var n=t.parentNode;if(n){n.replaceChild(i,t);var a=s(e,i);return i.firstChild&&n.replaceChild(i.firstChild,i),a}}return r.EMPTY},Zi=function(e,t,A){var i=e.ownerDocument;if(!i)throw new Error("Node has no owner document");var n=i.createRange();return n.setStart(e,t),n.setEnd(e,t+A),n},qi=function(e){if(ji.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(t.segment(e)).map((function(e){return e.segment}))}return function(e){for(var t,A=Wi(e),i=[];!(t=A.next()).done;)t.value&&i.push(t.value.slice());return i}(e)},$i=function(e,t){return 0!==t.letterSpacing?qi(e):function(e,t){if(ji.SUPPORT_NATIVE_TEXT_SEGMENTATION){var A=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(A.segment(e)).map((function(e){return e.segment}))}return tn(e,t)}(e,t)},en=[32,160,4961,65792,65793,4153,4241],tn=function(e,t){for(var A,i=function(e,t){var A=o(e),i=ae(A,t),n=i[0],a=i[1],r=i[2],s=A.length,l=0,c=0;return{next:function(){if(c>=s)return{done:!0,value:null};for(var e=X;c0)if(ji.SUPPORT_RANGE_BOUNDS){var n=Zi(i,s,t.length).getClientRects();if(n.length>1){var o=qi(t),l=0;o.forEach((function(t){a.push(new _i(t,r.fromDOMRectList(e,Zi(i,l+s,t.length).getClientRects()))),l+=t.length}))}else a.push(new _i(t,r.fromDOMRectList(e,n)))}else{var c=i.splitText(t.length);a.push(new _i(t,Ji(e,i))),i=c}else ji.SUPPORT_RANGE_BOUNDS||(i=i.splitText(t.length));s+=t.length})),a}(e,this.text,A,t)},nn=function(e,t){switch(t){case 1:return e.toLowerCase();case 3:return e.replace(an,rn);case 2:return e.toUpperCase();default:return e}},an=/(^|\s|:|-|\(|\))([a-z])/g,rn=function(e,t,A){return e.length>0?t+A.toUpperCase():e},sn=function(e){function A(t,A){var i=e.call(this,t,A)||this;return i.src=A.currentSrc||A.src,i.intrinsicWidth=A.naturalWidth,i.intrinsicHeight=A.naturalHeight,i.context.cache.addImage(i.src),i}return t(A,e),A}(Fi),on=function(e){function A(t,A){var i=e.call(this,t,A)||this;return i.canvas=A,i.intrinsicWidth=A.width,i.intrinsicHeight=A.height,i}return t(A,e),A}(Fi),ln=function(e){function A(t,A){var i=e.call(this,t,A)||this,n=new XMLSerializer,a=s(t,A);return A.setAttribute("width",a.width+"px"),A.setAttribute("height",a.height+"px"),i.svg="data:image/svg+xml,"+encodeURIComponent(n.serializeToString(A)),i.intrinsicWidth=A.width.baseVal.value,i.intrinsicHeight=A.height.baseVal.value,i.context.cache.addImage(i.svg),i}return t(A,e),A}(Fi),cn=function(e){function A(t,A){var i=e.call(this,t,A)||this;return i.value=A.value,i}return t(A,e),A}(Fi),dn=function(e){function A(t,A){var i=e.call(this,t,A)||this;return i.start=A.start,i.reversed="boolean"==typeof A.reversed&&!0===A.reversed,i}return t(A,e),A}(Fi),hn=[{type:15,flags:0,unit:"px",number:3}],un=[{type:16,flags:0,number:50}],gn="checkbox",pn="radio",mn="password",wn=707406591,fn=function(e){function A(t,A){var i,n,a,s=e.call(this,t,A)||this;switch(s.type=A.type.toLowerCase(),s.checked=A.checked,s.value=0===(a=(n=A).type===mn?new Array(n.value.length+1).join("•"):n.value).length?n.placeholder||"":a,s.type!==gn&&s.type!==pn||(s.styles.backgroundColor=3739148031,s.styles.borderTopColor=s.styles.borderRightColor=s.styles.borderBottomColor=s.styles.borderLeftColor=2779096575,s.styles.borderTopWidth=s.styles.borderRightWidth=s.styles.borderBottomWidth=s.styles.borderLeftWidth=1,s.styles.borderTopStyle=s.styles.borderRightStyle=s.styles.borderBottomStyle=s.styles.borderLeftStyle=1,s.styles.backgroundClip=[0],s.styles.backgroundOrigin=[0],s.bounds=(i=s.bounds).width>i.height?new r(i.left+(i.width-i.height)/2,i.top,i.height,i.height):i.width0)A.textNodes.push(new An(e,n,A.styles));else if(In(n))if(Wn(n)&&n.assignedNodes)n.assignedNodes().forEach((function(t){return Cn(e,t,A,i)}));else{var r=yn(e,n);r.styles.isVisible()&&(xn(n,r,i)?r.flags|=4:Tn(r.styles)&&(r.flags|=2),-1!==vn.indexOf(n.tagName)&&(r.flags|=8),A.elements.push(r),n.slot,n.shadowRoot?Cn(e,n.shadowRoot,r,i):Kn(n)||Ln(n)||Gn(n)||Cn(e,n,r,i))}},yn=function(e,t){return Hn(t)?new sn(e,t):Dn(t)?new on(e,t):Ln(t)?new ln(e,t):Un(t)?new cn(e,t):Qn(t)?new dn(e,t):On(t)?new fn(e,t):Gn(t)?new En(e,t):Kn(t)?new Bn(e,t):Pn(t)?new bn(e,t):new Fi(e,t)},Fn=function(e,t){var A=yn(e,t);return A.flags|=4,Cn(e,t,A,A),A},xn=function(e,t,A){return t.styles.isPositionedWithZIndex()||t.styles.opacity<1||t.styles.isTransformed()||Nn(e)&&A.styles.isTransparent()},Tn=function(e){return e.isPositioned()||e.isFloating()},Sn=function(e){return e.nodeType===Node.TEXT_NODE},In=function(e){return e.nodeType===Node.ELEMENT_NODE},Mn=function(e){return In(e)&&void 0!==e.style&&!kn(e)},kn=function(e){return"object"==typeof e.className},Un=function(e){return"LI"===e.tagName},Qn=function(e){return"OL"===e.tagName},On=function(e){return"INPUT"===e.tagName},Ln=function(e){return"svg"===e.tagName},Nn=function(e){return"BODY"===e.tagName},Dn=function(e){return"CANVAS"===e.tagName},Rn=function(e){return"VIDEO"===e.tagName},Hn=function(e){return"IMG"===e.tagName},Pn=function(e){return"IFRAME"===e.tagName},Vn=function(e){return"STYLE"===e.tagName},Kn=function(e){return"TEXTAREA"===e.tagName},Gn=function(e){return"SELECT"===e.tagName},Wn=function(e){return"SLOT"===e.tagName},zn=function(e){return e.tagName.indexOf("-")>0},Xn=function(){function e(){this.counters={}}return e.prototype.getCounterValue=function(e){var t=this.counters[e];return t&&t.length?t[t.length-1]:1},e.prototype.getCounterValues=function(e){return this.counters[e]||[]},e.prototype.pop=function(e){var t=this;e.forEach((function(e){return t.counters[e].pop()}))},e.prototype.parse=function(e){var t=this,A=e.counterIncrement,i=e.counterReset,n=!0;null!==A&&A.forEach((function(e){var A=t.counters[e.counter];A&&0!==e.increment&&(n=!1,A.length||A.push(1),A[Math.max(0,A.length-1)]+=e.increment)}));var a=[];return n&&i.forEach((function(e){var A=t.counters[e.counter];a.push(e.counter),A||(A=t.counters[e.counter]=[]),A.push(e.reset)})),a},e}(),Yn={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},jn={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},_n={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Jn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},Zn=function(e,t,A,i,n,a){return eA?ra(e,n,a.length>0):i.integers.reduce((function(t,A,n){for(;e>=A;)e-=A,t+=i.values[n];return t}),"")+a},qn=function(e,t,A,i){var n="";do{A||e--,n=i(e)+n,e/=t}while(e*t>=t);return n},$n=function(e,t,A,i,n){var a=A-t+1;return(e<0?"-":"")+(qn(Math.abs(e),a,i,(function(e){return l(Math.floor(e%a)+t)}))+n)},ea=function(e,t,A){void 0===A&&(A=". ");var i=t.length;return qn(Math.abs(e),i,!1,(function(e){return t[Math.floor(e%i)]}))+A},ta=function(e,t,A,i,n,a){if(e<-9999||e>9999)return ra(e,4,n.length>0);var r=Math.abs(e),s=n;if(0===r)return t[0]+s;for(var o=0;r>0&&o<=4;o++){var l=r%10;0===l&&li(a,1)&&""!==s?s=t[l]+s:l>1||1===l&&0===o||1===l&&1===o&&li(a,2)||1===l&&1===o&&li(a,4)&&e>100||1===l&&o>1&&li(a,8)?s=t[l]+(o>0?A[o-1]:"")+s:1===l&&o>0&&(s=A[o-1]+s),r=Math.floor(r/10)}return(e<0?i:"")+s},Aa="十百千萬",ia="拾佰仟萬",na="マイナス",aa="마이너스",ra=function(e,t,A){var i=A?". ":"",n=A?"、":"",a=A?", ":"",r=A?" ":"";switch(t){case 0:return"•"+r;case 1:return"◦"+r;case 2:return"◾"+r;case 5:var s=$n(e,48,57,!0,i);return s.length<4?"0"+s:s;case 4:return ea(e,"〇一二三四五六七八九",n);case 6:return Zn(e,1,3999,Yn,3,i).toLowerCase();case 7:return Zn(e,1,3999,Yn,3,i);case 8:return $n(e,945,969,!1,i);case 9:return $n(e,97,122,!1,i);case 10:return $n(e,65,90,!1,i);case 11:return $n(e,1632,1641,!0,i);case 12:case 49:return Zn(e,1,9999,jn,3,i);case 35:return Zn(e,1,9999,jn,3,i).toLowerCase();case 13:return $n(e,2534,2543,!0,i);case 14:case 30:return $n(e,6112,6121,!0,i);case 15:return ea(e,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return ea(e,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return ta(e,"零一二三四五六七八九",Aa,"負",n,14);case 47:return ta(e,"零壹貳參肆伍陸柒捌玖",ia,"負",n,15);case 42:return ta(e,"零一二三四五六七八九",Aa,"负",n,14);case 41:return ta(e,"零壹贰叁肆伍陆柒捌玖",ia,"负",n,15);case 26:return ta(e,"〇一二三四五六七八九","十百千万",na,n,0);case 25:return ta(e,"零壱弐参四伍六七八九","拾百千万",na,n,7);case 31:return ta(e,"영일이삼사오육칠팔구","십백천만",aa,a,7);case 33:return ta(e,"零一二三四五六七八九","十百千萬",aa,a,0);case 32:return ta(e,"零壹貳參四五六七八九","拾百千",aa,a,7);case 18:return $n(e,2406,2415,!0,i);case 20:return Zn(e,1,19999,Jn,3,i);case 21:return $n(e,2790,2799,!0,i);case 22:return $n(e,2662,2671,!0,i);case 22:return Zn(e,1,10999,_n,3,i);case 23:return ea(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return ea(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return $n(e,3302,3311,!0,i);case 28:return ea(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return ea(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return $n(e,3792,3801,!0,i);case 37:return $n(e,6160,6169,!0,i);case 38:return $n(e,4160,4169,!0,i);case 39:return $n(e,2918,2927,!0,i);case 40:return $n(e,1776,1785,!0,i);case 43:return $n(e,3046,3055,!0,i);case 44:return $n(e,3174,3183,!0,i);case 45:return $n(e,3664,3673,!0,i);case 46:return $n(e,3872,3881,!0,i);default:return $n(e,48,57,!0,i)}},sa="data-html2canvas-ignore",oa=function(){function e(e,t,A){if(this.context=e,this.options=A,this.scrolledElements=[],this.referenceElement=t,this.counters=new Xn,this.quoteDepth=0,!t.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(t.ownerDocument.documentElement,!1)}return e.prototype.toIFrame=function(e,t){var A=this,a=ca(e,t);if(!a.contentWindow)return Promise.reject("Unable to find iframe window");var r=e.defaultView.pageXOffset,s=e.defaultView.pageYOffset,o=a.contentWindow,l=o.document,c=ua(a).then((function(){return i(A,void 0,void 0,(function(){var e,A;return n(this,(function(i){switch(i.label){case 0:return this.scrolledElements.forEach(fa),o&&(o.scrollTo(t.left,t.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||o.scrollY===t.top&&o.scrollX===t.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(o.scrollX-t.left,o.scrollY-t.top,0,0))),e=this.options.onclone,void 0===(A=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:l.fonts&&l.fonts.ready?[4,l.fonts.ready]:[3,2];case 1:i.sent(),i.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,ha(l)]:[3,4];case 3:i.sent(),i.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(l,A)})).then((function(){return a}))]:[2,a]}}))}))}));return l.open(),l.write(ma(document.doctype)+""),wa(this.referenceElement.ownerDocument,r,s),l.replaceChild(l.adoptNode(this.documentElement),l.documentElement),l.close(),c},e.prototype.createElementClone=function(e){if(yi(e,2),Dn(e))return this.createCanvasClone(e);if(Rn(e))return this.createVideoClone(e);if(Vn(e))return this.createStyleClone(e);var t=e.cloneNode(!1);return Hn(t)&&(Hn(e)&&e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=""),"lazy"===t.loading&&(t.loading="eager")),zn(t)?this.createCustomElementClone(t):t},e.prototype.createCustomElementClone=function(e){var t=document.createElement("html2canvascustomelement");return pa(e.style,t),t},e.prototype.createStyleClone=function(e){try{var t=e.sheet;if(t&&t.cssRules){var A=[].slice.call(t.cssRules,0).reduce((function(e,t){return t&&"string"==typeof t.cssText?e+t.cssText:e}),""),i=e.cloneNode(!1);return i.textContent=A,i}}catch(e){if(this.context.logger.error("Unable to access cssRules property",e),"SecurityError"!==e.name)throw e}return e.cloneNode(!1)},e.prototype.createCanvasClone=function(e){var t;if(this.options.inlineImages&&e.ownerDocument){var A=e.ownerDocument.createElement("img");try{return A.src=e.toDataURL(),A}catch(t){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}var i=e.cloneNode(!1);try{i.width=e.width,i.height=e.height;var n=e.getContext("2d"),a=i.getContext("2d");if(a)if(!this.options.allowTaint&&n)a.putImageData(n.getImageData(0,0,e.width,e.height),0,0);else{var r=null!==(t=e.getContext("webgl2"))&&void 0!==t?t:e.getContext("webgl");if(r){var s=r.getContextAttributes();!1===(null==s?void 0:s.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}a.drawImage(e,0,0)}return i}catch(t){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return i},e.prototype.createVideoClone=function(e){var t=e.ownerDocument.createElement("canvas");t.width=e.offsetWidth,t.height=e.offsetHeight;var A=t.getContext("2d");try{return A&&(A.drawImage(e,0,0,t.width,t.height),this.options.allowTaint||A.getImageData(0,0,t.width,t.height)),t}catch(t){this.context.logger.info("Unable to clone video as it is tainted",e)}var i=e.ownerDocument.createElement("canvas");return i.width=e.offsetWidth,i.height=e.offsetHeight,i},e.prototype.appendChildNode=function(e,t,A){In(t)&&("SCRIPT"===t.tagName||t.hasAttribute(sa)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(t))||this.options.copyStyles&&In(t)&&Vn(t)||e.appendChild(this.cloneNode(t,A))},e.prototype.cloneChildNodes=function(e,t,A){for(var i=this,n=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;n;n=n.nextSibling)if(In(n)&&Wn(n)&&"function"==typeof n.assignedNodes){var a=n.assignedNodes();a.length&&a.forEach((function(e){return i.appendChildNode(t,e,A)}))}else this.appendChildNode(t,n,A)},e.prototype.cloneNode=function(e,t){if(Sn(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var A=e.ownerDocument.defaultView;if(A&&In(e)&&(Mn(e)||kn(e))){var i=this.createElementClone(e);i.style.transitionProperty="none";var n=A.getComputedStyle(e),a=A.getComputedStyle(e,":before"),r=A.getComputedStyle(e,":after");this.referenceElement===e&&Mn(i)&&(this.clonedReferenceElement=i),Nn(i)&&va(i);var s=this.counters.parse(new vi(this.context,n)),o=this.resolvePseudoContent(e,i,a,Oi.BEFORE);zn(e)&&(t=!0),Rn(e)||this.cloneChildNodes(e,i,t),o&&i.insertBefore(o,i.firstChild);var l=this.resolvePseudoContent(e,i,r,Oi.AFTER);return l&&i.appendChild(l),this.counters.pop(s),(n&&(this.options.copyStyles||kn(e))&&!Pn(e)||t)&&pa(n,i),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([i,e.scrollLeft,e.scrollTop]),(Kn(e)||Gn(e))&&(Kn(i)||Gn(i))&&(i.value=e.value),i}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,t,A,i){var n=this;if(A){var a=A.content,r=t.ownerDocument;if(r&&a&&"none"!==a&&"-moz-alt-content"!==a&&"none"!==A.display){this.counters.parse(new vi(this.context,A));var s=new bi(this.context,A),o=r.createElement("html2canvaspseudoelement");pa(A,o),s.content.forEach((function(t){if(0===t.type)o.appendChild(r.createTextNode(t.value));else if(22===t.type){var A=r.createElement("img");A.src=t.value,A.style.opacity="1",o.appendChild(A)}else if(18===t.type){if("attr"===t.name){var i=t.values.filter(ze);i.length&&o.appendChild(r.createTextNode(e.getAttribute(i[0].value)||""))}else if("counter"===t.name){var a=t.values.filter(_e),l=a[0],c=a[1];if(l&&ze(l)){var d=n.counters.getCounterValue(l.value),h=c&&ze(c)?IA.parse(n.context,c.value):3;o.appendChild(r.createTextNode(ra(d,h,!1)))}}else if("counters"===t.name){var u=t.values.filter(_e),g=(l=u[0],u[1]);if(c=u[2],l&&ze(l)){var p=n.counters.getCounterValues(l.value),m=c&&ze(c)?IA.parse(n.context,c.value):3,w=g&&0===g.type?g.value:"",f=p.map((function(e){return ra(e,m,!1)})).join(w);o.appendChild(r.createTextNode(f))}}}else if(20===t.type)switch(t.value){case"open-quote":o.appendChild(r.createTextNode(pi(s.quotes,n.quoteDepth++,!0)));break;case"close-quote":o.appendChild(r.createTextNode(pi(s.quotes,--n.quoteDepth,!1)));break;default:o.appendChild(r.createTextNode(t.value))}})),o.className=Ea+" "+Ba;var l=i===Oi.BEFORE?" "+Ea:" "+Ba;return kn(t)?t.className.baseValue+=l:t.className+=l,o}}},e.destroy=function(e){return!!e.parentNode&&(e.parentNode.removeChild(e),!0)},e}();!function(e){e[e.BEFORE=0]="BEFORE",e[e.AFTER=1]="AFTER"}(Oi||(Oi={}));var la,ca=function(e,t){var A=e.createElement("iframe");return A.className="html2canvas-container",A.style.visibility="hidden",A.style.position="fixed",A.style.left="-10000px",A.style.top="0px",A.style.border="0",A.width=t.width.toString(),A.height=t.height.toString(),A.scrolling="no",A.setAttribute(sa,"true"),e.body.appendChild(A),A},da=function(e){return new Promise((function(t){e.complete?t():e.src?(e.onload=t,e.onerror=t):t()}))},ha=function(e){return Promise.all([].slice.call(e.images,0).map(da))},ua=function(e){return new Promise((function(t,A){var i=e.contentWindow;if(!i)return A("No window assigned for iframe");var n=i.document;i.onload=e.onload=function(){i.onload=e.onload=null;var A=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(A),t(e))}),50)}}))},ga=["all","d","content"],pa=function(e,t){for(var A=e.length-1;A>=0;A--){var i=e.item(A);-1===ga.indexOf(i)&&t.style.setProperty(i,e.getPropertyValue(i))}return t},ma=function(e){var t="";return e&&(t+=""),t},wa=function(e,t,A){e&&e.defaultView&&(t!==e.defaultView.pageXOffset||A!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(t,A)},fa=function(e){var t=e[0],A=e[1],i=e[2];t.scrollLeft=A,t.scrollTop=i},Ea="___html2canvas___pseudoelement_before",Ba="___html2canvas___pseudoelement_after",ba='{\n content: "" !important;\n display: none !important;\n}',va=function(e){Ca(e,"."+Ea+":before"+ba+"\n ."+Ba+":after"+ba)},Ca=function(e,t){var A=e.ownerDocument;if(A){var i=A.createElement("style");i.textContent=t,e.appendChild(i)}},ya=function(){function e(){}return e.getOrigin=function(t){var A=e._link;return A?(A.href=t,A.href=A.href,A.protocol+A.hostname+A.port):"about:blank"},e.isSameOrigin=function(t){return e.getOrigin(t)===e._origin},e.setContext=function(t){e._link=t.document.createElement("a"),e._origin=e.getOrigin(t.location.href)},e._origin="about:blank",e}(),Fa=function(){function e(e,t){this.context=e,this._options=t,this._cache={}}return e.prototype.addImage=function(e){var t=Promise.resolve();return this.has(e)?t:Ua(e)||Ia(e)?((this._cache[e]=this.loadImage(e)).catch((function(){})),t):t},e.prototype.match=function(e){return this._cache[e]},e.prototype.loadImage=function(e){return i(this,void 0,void 0,(function(){var t,A,i,a,r=this;return n(this,(function(n){switch(n.label){case 0:return t=ya.isSameOrigin(e),A=!Ma(e)&&!0===this._options.useCORS&&ji.SUPPORT_CORS_IMAGES&&!t,i=!Ma(e)&&!t&&!Ua(e)&&"string"==typeof this._options.proxy&&ji.SUPPORT_CORS_XHR&&!A,t||!1!==this._options.allowTaint||Ma(e)||Ua(e)||i||A?(a=e,i?[4,this.proxy(a)]:[3,2]):[2];case 1:a=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,t){var i=new Image;i.onload=function(){return e(i)},i.onerror=t,(ka(a)||A)&&(i.crossOrigin="anonymous"),i.src=a,!0===i.complete&&setTimeout((function(){return e(i)}),500),r._options.imageTimeout>0&&setTimeout((function(){return t("Timed out ("+r._options.imageTimeout+"ms) loading image")}),r._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},e.prototype.has=function(e){return void 0!==this._cache[e]},e.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},e.prototype.proxy=function(e){var t=this,A=this._options.proxy;if(!A)throw new Error("No proxy defined");var i=e.substring(0,256);return new Promise((function(n,a){var r=ji.SUPPORT_RESPONSE_TYPE?"blob":"text",s=new XMLHttpRequest;s.onload=function(){if(200===s.status)if("text"===r)n(s.response);else{var e=new FileReader;e.addEventListener("load",(function(){return n(e.result)}),!1),e.addEventListener("error",(function(e){return a(e)}),!1),e.readAsDataURL(s.response)}else a("Failed to proxy resource "+i+" with status code "+s.status)},s.onerror=a;var o=A.indexOf("?")>-1?"&":"?";if(s.open("GET",""+A+o+"url="+encodeURIComponent(e)+"&responseType="+r),"text"!==r&&s instanceof XMLHttpRequest&&(s.responseType=r),t._options.imageTimeout){var l=t._options.imageTimeout;s.timeout=l,s.ontimeout=function(){return a("Timed out ("+l+"ms) proxying "+i)}}s.send()}))},e}(),xa=/^data:image\/svg\+xml/i,Ta=/^data:image\/.*;base64,/i,Sa=/^data:image\/.*/i,Ia=function(e){return ji.SUPPORT_SVG_DRAWING||!Qa(e)},Ma=function(e){return Sa.test(e)},ka=function(e){return Ta.test(e)},Ua=function(e){return"blob"===e.substr(0,4)},Qa=function(e){return"svg"===e.substr(-3).toLowerCase()||xa.test(e)},Oa=function(){function e(e,t){this.type=0,this.x=e,this.y=t}return e.prototype.add=function(t,A){return new e(this.x+t,this.y+A)},e}(),La=function(e,t,A){return new Oa(e.x+(t.x-e.x)*A,e.y+(t.y-e.y)*A)},Na=function(){function e(e,t,A,i){this.type=1,this.start=e,this.startControl=t,this.endControl=A,this.end=i}return e.prototype.subdivide=function(t,A){var i=La(this.start,this.startControl,t),n=La(this.startControl,this.endControl,t),a=La(this.endControl,this.end,t),r=La(i,n,t),s=La(n,a,t),o=La(r,s,t);return A?new e(this.start,i,r,o):new e(o,s,a,this.end)},e.prototype.add=function(t,A){return new e(this.start.add(t,A),this.startControl.add(t,A),this.endControl.add(t,A),this.end.add(t,A))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e}(),Da=function(e){return 1===e.type},Ra=function(e){var t=e.styles,A=e.bounds,i=nt(t.borderTopLeftRadius,A.width,A.height),n=i[0],a=i[1],r=nt(t.borderTopRightRadius,A.width,A.height),s=r[0],o=r[1],l=nt(t.borderBottomRightRadius,A.width,A.height),c=l[0],d=l[1],h=nt(t.borderBottomLeftRadius,A.width,A.height),u=h[0],g=h[1],p=[];p.push((n+s)/A.width),p.push((u+c)/A.width),p.push((a+g)/A.height),p.push((o+d)/A.height);var m=Math.max.apply(Math,p);m>1&&(n/=m,a/=m,s/=m,o/=m,c/=m,d/=m,u/=m,g/=m);var w=A.width-s,f=A.height-d,E=A.width-c,B=A.height-g,b=t.borderTopWidth,v=t.borderRightWidth,C=t.borderBottomWidth,y=t.borderLeftWidth,F=at(t.paddingTop,e.bounds.width),x=at(t.paddingRight,e.bounds.width),T=at(t.paddingBottom,e.bounds.width),S=at(t.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||a>0?Ha(A.left+y/3,A.top+b/3,n-y/3,a-b/3,la.TOP_LEFT):new Oa(A.left+y/3,A.top+b/3),this.topRightBorderDoubleOuterBox=n>0||a>0?Ha(A.left+w,A.top+b/3,s-v/3,o-b/3,la.TOP_RIGHT):new Oa(A.left+A.width-v/3,A.top+b/3),this.bottomRightBorderDoubleOuterBox=c>0||d>0?Ha(A.left+E,A.top+f,c-v/3,d-C/3,la.BOTTOM_RIGHT):new Oa(A.left+A.width-v/3,A.top+A.height-C/3),this.bottomLeftBorderDoubleOuterBox=u>0||g>0?Ha(A.left+y/3,A.top+B,u-y/3,g-C/3,la.BOTTOM_LEFT):new Oa(A.left+y/3,A.top+A.height-C/3),this.topLeftBorderDoubleInnerBox=n>0||a>0?Ha(A.left+2*y/3,A.top+2*b/3,n-2*y/3,a-2*b/3,la.TOP_LEFT):new Oa(A.left+2*y/3,A.top+2*b/3),this.topRightBorderDoubleInnerBox=n>0||a>0?Ha(A.left+w,A.top+2*b/3,s-2*v/3,o-2*b/3,la.TOP_RIGHT):new Oa(A.left+A.width-2*v/3,A.top+2*b/3),this.bottomRightBorderDoubleInnerBox=c>0||d>0?Ha(A.left+E,A.top+f,c-2*v/3,d-2*C/3,la.BOTTOM_RIGHT):new Oa(A.left+A.width-2*v/3,A.top+A.height-2*C/3),this.bottomLeftBorderDoubleInnerBox=u>0||g>0?Ha(A.left+2*y/3,A.top+B,u-2*y/3,g-2*C/3,la.BOTTOM_LEFT):new Oa(A.left+2*y/3,A.top+A.height-2*C/3),this.topLeftBorderStroke=n>0||a>0?Ha(A.left+y/2,A.top+b/2,n-y/2,a-b/2,la.TOP_LEFT):new Oa(A.left+y/2,A.top+b/2),this.topRightBorderStroke=n>0||a>0?Ha(A.left+w,A.top+b/2,s-v/2,o-b/2,la.TOP_RIGHT):new Oa(A.left+A.width-v/2,A.top+b/2),this.bottomRightBorderStroke=c>0||d>0?Ha(A.left+E,A.top+f,c-v/2,d-C/2,la.BOTTOM_RIGHT):new Oa(A.left+A.width-v/2,A.top+A.height-C/2),this.bottomLeftBorderStroke=u>0||g>0?Ha(A.left+y/2,A.top+B,u-y/2,g-C/2,la.BOTTOM_LEFT):new Oa(A.left+y/2,A.top+A.height-C/2),this.topLeftBorderBox=n>0||a>0?Ha(A.left,A.top,n,a,la.TOP_LEFT):new Oa(A.left,A.top),this.topRightBorderBox=s>0||o>0?Ha(A.left+w,A.top,s,o,la.TOP_RIGHT):new Oa(A.left+A.width,A.top),this.bottomRightBorderBox=c>0||d>0?Ha(A.left+E,A.top+f,c,d,la.BOTTOM_RIGHT):new Oa(A.left+A.width,A.top+A.height),this.bottomLeftBorderBox=u>0||g>0?Ha(A.left,A.top+B,u,g,la.BOTTOM_LEFT):new Oa(A.left,A.top+A.height),this.topLeftPaddingBox=n>0||a>0?Ha(A.left+y,A.top+b,Math.max(0,n-y),Math.max(0,a-b),la.TOP_LEFT):new Oa(A.left+y,A.top+b),this.topRightPaddingBox=s>0||o>0?Ha(A.left+Math.min(w,A.width-v),A.top+b,w>A.width+v?0:Math.max(0,s-v),Math.max(0,o-b),la.TOP_RIGHT):new Oa(A.left+A.width-v,A.top+b),this.bottomRightPaddingBox=c>0||d>0?Ha(A.left+Math.min(E,A.width-y),A.top+Math.min(f,A.height-C),Math.max(0,c-v),Math.max(0,d-C),la.BOTTOM_RIGHT):new Oa(A.left+A.width-v,A.top+A.height-C),this.bottomLeftPaddingBox=u>0||g>0?Ha(A.left+y,A.top+Math.min(B,A.height-C),Math.max(0,u-y),Math.max(0,g-C),la.BOTTOM_LEFT):new Oa(A.left+y,A.top+A.height-C),this.topLeftContentBox=n>0||a>0?Ha(A.left+y+S,A.top+b+F,Math.max(0,n-(y+S)),Math.max(0,a-(b+F)),la.TOP_LEFT):new Oa(A.left+y+S,A.top+b+F),this.topRightContentBox=s>0||o>0?Ha(A.left+Math.min(w,A.width+y+S),A.top+b+F,w>A.width+y+S?0:s-y+S,o-(b+F),la.TOP_RIGHT):new Oa(A.left+A.width-(v+x),A.top+b+F),this.bottomRightContentBox=c>0||d>0?Ha(A.left+Math.min(E,A.width-(y+S)),A.top+Math.min(f,A.height+b+F),Math.max(0,c-(v+x)),d-(C+T),la.BOTTOM_RIGHT):new Oa(A.left+A.width-(v+x),A.top+A.height-(C+T)),this.bottomLeftContentBox=u>0||g>0?Ha(A.left+y+S,A.top+B,Math.max(0,u-(y+S)),g-(C+T),la.BOTTOM_LEFT):new Oa(A.left+y+S,A.top+A.height-(C+T))};!function(e){e[e.TOP_LEFT=0]="TOP_LEFT",e[e.TOP_RIGHT=1]="TOP_RIGHT",e[e.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",e[e.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(la||(la={}));var Ha=function(e,t,A,i,n){var a=(Math.sqrt(2)-1)/3*4,r=A*a,s=i*a,o=e+A,l=t+i;switch(n){case la.TOP_LEFT:return new Na(new Oa(e,l),new Oa(e,l-s),new Oa(o-r,t),new Oa(o,t));case la.TOP_RIGHT:return new Na(new Oa(e,t),new Oa(e+r,t),new Oa(o,l-s),new Oa(o,l));case la.BOTTOM_RIGHT:return new Na(new Oa(o,t),new Oa(o,t+s),new Oa(e+r,l),new Oa(e,l));case la.BOTTOM_LEFT:default:return new Na(new Oa(o,l),new Oa(o-r,l),new Oa(e,t+s),new Oa(e,t))}},Pa=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},Va=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},Ka=function(e,t,A){this.offsetX=e,this.offsetY=t,this.matrix=A,this.type=0,this.target=6},Ga=function(e,t){this.path=e,this.target=t,this.type=1},Wa=function(e){this.opacity=e,this.type=2,this.target=6},za=function(e){return 1===e.type},Xa=function(e,t){return e.length===t.length&&e.some((function(e,A){return e===t[A]}))},Ya=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},ja=function(){function e(e,t){if(this.container=e,this.parent=t,this.effects=[],this.curves=new Ra(this.container),this.container.styles.opacity<1&&this.effects.push(new Wa(this.container.styles.opacity)),null!==this.container.styles.transform){var A=this.container.bounds.left+this.container.styles.transformOrigin[0].number,i=this.container.bounds.top+this.container.styles.transformOrigin[1].number,n=this.container.styles.transform;this.effects.push(new Ka(A,i,n))}if(0!==this.container.styles.overflowX){var a=Pa(this.curves),r=Va(this.curves);Xa(a,r)?this.effects.push(new Ga(a,6)):(this.effects.push(new Ga(a,2)),this.effects.push(new Ga(r,4)))}}return e.prototype.getEffects=function(e){for(var t=-1===[2,3].indexOf(this.container.styles.position),A=this.parent,i=this.effects.slice(0);A;){var n=A.effects.filter((function(e){return!za(e)}));if(t||0!==A.container.styles.position||!A.parent){if(i.unshift.apply(i,n),t=-1===[2,3].indexOf(A.container.styles.position),0!==A.container.styles.overflowX){var a=Pa(A.curves),r=Va(A.curves);Xa(a,r)||i.unshift(new Ga(r,6))}}else i.unshift.apply(i,n);A=A.parent}return i.filter((function(t){return li(t.target,e)}))},e}(),_a=function(e,t,A,i){e.container.elements.forEach((function(n){var a=li(n.flags,4),r=li(n.flags,2),s=new ja(n,e);li(n.styles.display,2048)&&i.push(s);var o=li(n.flags,8)?[]:i;if(a||r){var l=a||n.styles.isPositioned()?A:t,c=new Ya(s);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var d=n.styles.zIndex.order;if(d<0){var h=0;l.negativeZIndex.some((function(e,t){return d>e.element.container.styles.zIndex.order?(h=t,!1):h>0})),l.negativeZIndex.splice(h,0,c)}else if(d>0){var u=0;l.positiveZIndex.some((function(e,t){return d>=e.element.container.styles.zIndex.order?(u=t+1,!1):u>0})),l.positiveZIndex.splice(u,0,c)}else l.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?l.nonPositionedFloats.push(c):l.nonPositionedInlineLevel.push(c);_a(s,c,a?c:A,o)}else n.styles.isInlineLevel()?t.inlineLevel.push(s):t.nonInlineLevel.push(s),_a(s,t,A,o);li(n.flags,8)&&Ja(n,o)}))},Ja=function(e,t){for(var A=e instanceof dn?e.start:1,i=e instanceof dn&&e.reversed,n=0;n0&&e.intrinsicHeight>0){var i=tr(e),n=Va(t);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(A,0,0,e.intrinsicWidth,e.intrinsicHeight,i.left,i.top,i.width,i.height),this.ctx.restore()}},A.prototype.renderNodeContent=function(e){return i(this,void 0,void 0,(function(){var t,i,a,s,o,l,c,d,h,u,g,p,m,w,f,E,B,b;return n(this,(function(n){switch(n.label){case 0:this.applyEffects(e.getEffects(4)),t=e.container,i=e.curves,a=t.styles,s=0,o=t.textNodes,n.label=1;case 1:return s0&&y>0&&(f=i.ctx.createPattern(p,"repeat"),i.renderRepeat(B,f,x,T))):function(e){return 2===e.type}(A)&&(E=Ar(e,t,[null,null,null]),B=E[0],b=E[1],v=E[2],C=E[3],y=E[4],F=0===A.position.length?[At]:A.position,x=at(F[0],C),T=at(F[F.length-1],y),S=function(e,t,A,i,n){var a=0,r=0;switch(e.size){case 0:0===e.shape?a=r=Math.min(Math.abs(t),Math.abs(t-i),Math.abs(A),Math.abs(A-n)):1===e.shape&&(a=Math.min(Math.abs(t),Math.abs(t-i)),r=Math.min(Math.abs(A),Math.abs(A-n)));break;case 2:if(0===e.shape)a=r=Math.min(St(t,A),St(t,A-n),St(t-i,A),St(t-i,A-n));else if(1===e.shape){var s=Math.min(Math.abs(A),Math.abs(A-n))/Math.min(Math.abs(t),Math.abs(t-i)),o=It(i,n,t,A,!0),l=o[0],c=o[1];r=s*(a=St(l-t,(c-A)/s))}break;case 1:0===e.shape?a=r=Math.max(Math.abs(t),Math.abs(t-i),Math.abs(A),Math.abs(A-n)):1===e.shape&&(a=Math.max(Math.abs(t),Math.abs(t-i)),r=Math.max(Math.abs(A),Math.abs(A-n)));break;case 3:if(0===e.shape)a=r=Math.max(St(t,A),St(t,A-n),St(t-i,A),St(t-i,A-n));else if(1===e.shape){s=Math.max(Math.abs(A),Math.abs(A-n))/Math.max(Math.abs(t),Math.abs(t-i));var d=It(i,n,t,A,!1);l=d[0],c=d[1],r=s*(a=St(l-t,(c-A)/s))}}return Array.isArray(e.size)&&(a=at(e.size[0],i),r=2===e.size.length?at(e.size[1],n):a),[a,r]}(A,x,T,C,y),I=S[0],M=S[1],I>0&&M>0&&(k=i.ctx.createRadialGradient(b+x,v+T,0,b+x,v+T,I),xt(A.stops,2*I).forEach((function(e){return k.addColorStop(e.stop,gt(e.color))})),i.path(B),i.ctx.fillStyle=k,I!==M?(U=e.bounds.left+.5*e.bounds.width,Q=e.bounds.top+.5*e.bounds.height,L=1/(O=M/I),i.ctx.save(),i.ctx.translate(U,Q),i.ctx.transform(1,0,0,O,0,0),i.ctx.translate(-U,-Q),i.ctx.fillRect(b,L*(v-Q)+Q,C,y*L),i.ctx.restore()):i.ctx.fill())),n.label=6;case 6:return t--,[2]}}))},i=this,a=0,r=e.styles.backgroundImage.slice(0).reverse(),o.label=1;case 1:return a0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,r,e.curves,2)]:[3,11]:[3,13];case 4:return n.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,r,e.curves,3)];case 6:return n.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,r,e.curves)];case 8:return n.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,r,e.curves)];case 10:n.sent(),n.label=11;case 11:r++,n.label=12;case 12:return s++,[3,3];case 13:return[2]}}))}))},A.prototype.renderDashedDottedBorder=function(e,t,A,a,r){return i(this,void 0,void 0,(function(){var i,s,o,l,c,d,h,u,g,p,m,w,f,E,B,b;return n(this,(function(n){return this.ctx.save(),i=function(e,t){switch(t){case 0:return qa(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return qa(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return qa(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return qa(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(a,A),s=Za(a,A),2===r&&(this.path(s),this.ctx.clip()),Da(s[0])?(o=s[0].start.x,l=s[0].start.y):(o=s[0].x,l=s[0].y),Da(s[1])?(c=s[1].end.x,d=s[1].end.y):(c=s[1].x,d=s[1].y),h=0===A||2===A?Math.abs(o-c):Math.abs(l-d),this.ctx.beginPath(),3===r?this.formatPath(i):this.formatPath(s.slice(0,2)),u=t<3?3*t:2*t,g=t<3?2*t:t,3===r&&(u=t,g=t),p=!0,h<=2*u?p=!1:h<=2*u+g?(u*=m=h/(2*u+g),g*=m):(w=Math.floor((h+g)/(u+g)),f=(h-w*u)/(w-1),g=(E=(h-(w+1)*u)/w)<=0||Math.abs(g-f){const a=await tex2dataURL(e,n);if(a){const e=[];e.push({mimeType:a.mimeType,id:t,dataURL:a.dataURL,created:a.created,size:a.size,hasSVGwithBitmap:!1,shouldScale:!0}),i(e,A)}};async function tex2dataURL(e,t){let A=0;for(;!t.mathjax&&!t.mathjaxLoaderFinished&&A<10;)await sleep$1(100),A++;t.mathjaxLoaderFinished||errorlog({where:"text2dataURL",fn:tex2dataURL,message:"mathjaxLoader not ready, using fallback. Try reloading Obsidian or restarting the Excalidraw plugin"});try{return await mathjaxSVG(e,t)}catch(A){await sleep$1(100);try{return await mathjaxSVG(e,t)}catch(A){await sleep$1(100);try{return await mathjaxSVG(e,t)}catch(A){return t.mathjax?new obsidian_module.Notice("Unknown error loading LaTeX. Using fallback solution. Try closing and reopening this drawing."):new obsidian_module.Notice("LaTeX support did not load. Using fallback solution. Try checking your network connection."),await mathjaxImage2html(e)}}}}async function mathjaxSVG(e,t){const A=t.mathjax.tex2svg(e,{display:!0,scale:4}).querySelector("svg");if(A){A.width.baseVal.valueInSpecifiedUnits<2&&(A.width.baseVal.valueAsString=`${(A.width.baseVal.valueInSpecifiedUnits+1).toFixed(3)}ex`);const e=svgToBase64(A.outerHTML);return{mimeType:"image/svg+xml",fileId:fileid(),dataURL:e,created:Date.now(),size:await getImageSize(e)}}return null}async function mathjaxImage2html(e){const t=document.body.createDiv();t.style.display="table";const A=window.MathJax.tex2chtml(e,{display:!0,scale:4});A.style.margin="3px",A.style.color="black";const i=A.querySelector("mjx-assistive-mml");i&&i.parentElement.removeChild(i),t.appendChild(A),window.MathJax.typeset();const n=await html2canvas(t,{backgroundColor:null});return document.body.removeChild(t),{mimeType:"image/png",fileId:fileid(),dataURL:n.toDataURL(),created:Date.now(),size:{height:n.height,width:n.width}}}const THEME_FILTER="invert(100%) hue-rotate(180deg) saturate(1.25)",markdownRendererRecursionWatcthdog=new Set,replaceSVGColors=(e,t)=>{if(!t)return e;if("string"==typeof e){for(const[A,i]of Object.entries(t)){const t=new RegExp(`fill="${A}"`,"g");e=e.replaceAll(t,`fill="${i}"`);const n=new RegExp(`stroke="${A}"`,"g");e=e.replaceAll(n,`stroke="${i}"`)}return e}const A=e=>{if(e instanceof SVGElement){const A=e.getAttribute("fill"),i=e.getAttribute("stroke");A&&t[A]&&e.setAttribute("fill",t[A]),i&&t[i]&&e.setAttribute("stroke",t[i])}for(const t of e.childNodes)A(t)};for(const t of e.childNodes)A(t);return e};class EmbeddedFile{constructor(e,t,A,i){if(this.file=null,this.isSVGwithBitmap=!1,this.img="",this.imgInverted="",this.mtime=0,this.mimeType="application/octet-stream",this.size={height:0,width:0},this.attemptCounter=0,this.isHyperlink=!1,this.colorMap=null,this.plugin=e,this.resetImage(t,A),this.file&&(this.plugin.ea.isExcalidrawFile(this.file)||"svg"===this.file.extension.toLowerCase()))try{this.colorMap=i?JSON.parse(i):null}catch(e){this.colorMap=null}}resetImage(e,t){if(this.imgInverted=this.img="",this.mtime=0,t.startsWith("https://")||t.startsWith("http://"))return this.isHyperlink=!0,void(this.hyperlink=t);this.linkParts=getLinkParts(t),this.hostPath=e,this.linkParts.path?(this.linkParts.width||(this.linkParts.width=this.plugin.settings.mdSVGwidth),this.linkParts.height||(this.linkParts.height=this.plugin.settings.mdSVGmaxHeight),this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,e),this.file||0==this.attemptCounter++&&new obsidian_module.Notice(`Excalidraw Warning: could not find image file: ${t}`,5e3)):new obsidian_module.Notice(`Excalidraw Error\nIncorrect embedded filename: ${t}`)}fileChanged(){return!this.isHyperlink&&(this.file||(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?this.mtime!=this.file.stat.mtime:(this.attemptCounter++,!1))}setImage(e,t,A,i,n){if(this.file||this.isHyperlink){switch(this.fileChanged()&&(this.imgInverted=this.img=""),this.mtime=this.isHyperlink?0:this.file.stat.mtime,this.size=A,this.mimeType=t,i&&n){case!0:this.imgInverted=e;break;case!1:this.img=e}this.isSVGwithBitmap=n}}isLoaded(e){if(!this.isHyperlink){if(!this.file&&(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),!this.file))return this.attemptCounter++,!0;if(this.fileChanged())return!1}return this.isSVGwithBitmap&&e?""!==this.imgInverted:""!==this.img}getImage(e){return this.file||this.isHyperlink?e&&this.isSVGwithBitmap?this.imgInverted:this.img:""}shouldScale(){return this.isHyperlink||!Boolean(this.linkParts&&this.linkParts.original&&this.linkParts.original.endsWith("|100%"))}}class EmbeddedFilesLoader{constructor(e,t){this.pdfDocsMap=new Map,this.terminate=!1,this.plugin=e,this.isDark=t,this.uid=nanoid()}emptyPDFDocsMap(){this.pdfDocsMap.forEach((e=>e.destroy())),this.pdfDocsMap.clear()}async getObsidianImage(e,t){const A=await this._getObsidianImage(e,t);return this.emptyPDFDocsMap(),A}async _getObsidianImage(e,t){var A;if(!this.plugin||!e)return null;const i=e instanceof EmbeddedFile&&e.isHyperlink,n=e instanceof EmbeddedFile?e.hyperlink:"",a=e instanceof EmbeddedFile?e.file:e;if(a&&markdownRendererRecursionWatcthdog.has(a))return new obsidian_module.Notice(`Loading of ${a.path}. Please check if there is an inifinite loop of one file embedded in the other.`),null;const r=i?null:e instanceof EmbeddedFile?e.linkParts:{original:a.path,path:a.path,isBlockRef:!1,ref:null,width:this.plugin.settings.mdSVGwidth,height:this.plugin.settings.mdSVGmaxHeight,page:null};let s=!1;const o=!i&&this.plugin.isExcalidrawFile(a),l=!i&&"pdf"===a.extension.toLowerCase();if(!(i||l||IMAGE_TYPES.contains(a.extension)||o||"md"===a.extension))return null;const c=i||l?null:await app.vault.readBinary(a),d=o?await(async A=>{const i=hasExportTheme(this.plugin,a)?getExportTheme(this.plugin,a,"light"):void 0,n={withBackground:!!hasExportBackground(this.plugin,a)&&getWithBackground(this.plugin,a),withTheme:!!i},r=replaceSVGColors(await createSVG(a.path,!0,n,this,i,null,null,[],this.plugin,t+1,getExportPadding(this.plugin,a)),e instanceof EmbeddedFile?e.colorMap:null),o=r.querySelectorAll("image:not([href^='data:image/svg'])");return o.length>0&&(s=!0),s&&A&&o.forEach((e=>{var t;const A=null===(t=e.parentElement)||void 0===t?void 0:t.id;r.querySelectorAll(`use[href='#${A}']`).forEach((e=>{e.setAttribute("filter",THEME_FILTER)}))})),!s&&r.getAttribute("hasbitmap")&&(s=!0),svgToBase64(r.outerHTML)})(this.isDark):null,[h,u]=l?await this.pdfToDataURL(a,r):[null,null];let g=l?"image/png":"image/svg+xml";const p=i?getURLImageExtension(n):a.extension;o||l||(g=getMimeType(p));let m=i?e instanceof EmbeddedFile?await getDataURLFromURL(e.hyperlink,g):null:null!==(A=null!=d?d:h)&&void 0!==A?A:"svg"===a.extension?await getSVGData(app,a,e instanceof EmbeddedFile?e.colorMap:null):"md"===a.extension?null:await getDataURL(c,g);if(!i&&!m){markdownRendererRecursionWatcthdog.add(a);const e=await this.convertMarkdownToSVG(this.plugin,a,r,t);markdownRendererRecursionWatcthdog.delete(a),m=e.dataURL,s=e.hasSVGwithBitmap}try{const e=l?u:await getImageSize(m);return{mimeType:g,fileId:await generateIdFromFile(i||l?(new TextEncoder).encode(m):c),dataURL:m,created:i?0:a.stat.mtime,hasSVGwithBitmap:s,size:e}}catch(e){return null}}async loadSceneFiles(e,t,A){var i,n;if(A>4)return void new obsidian_module.Notice(t$d("INFINITE_LOOP_WARNING")+A.toString(),6e3);const a=e.getFileEntries();let r;void 0===this.isDark&&(this.isDark="dark"===(null===(n=null===(i=null==e?void 0:e.scene)||void 0===i?void 0:i.appState)||void 0===n?void 0:n.theme));const s=[];for(;!this.terminate&&!(r=a.next()).done;){const e=r.value[1];if(e.isLoaded(this.isDark)){if(e.isSVGwithBitmap){const A={mimeType:e.mimeType,id:r.value[0],dataURL:e.getImage(this.isDark),created:e.mtime,size:e.size,hasSVGwithBitmap:e.isSVGwithBitmap,shouldScale:e.shouldScale()};try{t([A],this.isDark,!1)}catch(e){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:e})}}}else{const i=await this._getObsidianImage(e,A);if(i){const A={mimeType:i.mimeType,id:r.value[0],dataURL:i.dataURL,created:i.created,size:i.size,hasSVGwithBitmap:i.hasSVGwithBitmap,shouldScale:e.shouldScale()};try{t([A],this.isDark,!1)}catch(e){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:e})}}}}let o;const l=e.getEquationEntries();for(;!this.terminate&&!(o=l.next()).done;)if(!e.getEquation(o.value[0]).isLoaded){const e=o.value[1].latex,t=await tex2dataURL(e,this.plugin);if(t){const e={mimeType:t.mimeType,id:o.value[0],dataURL:t.dataURL,created:t.created,size:t.size,hasSVGwithBitmap:!1,shouldScale:!0};s.push(e)}}if(this.emptyPDFDocsMap(),!this.terminate)try{t(s,this.isDark,!0)}catch(e){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:e})}}async pdfToDataURL(e,t){var A,i;try{let n=0,a=0;const r=null!==(A=this.pdfDocsMap.get(e.path))&&void 0!==A?A:await getPDFDoc(e);this.pdfDocsMap.has(e.path)||this.pdfDocsMap.set(e.path,r);const s=isNaN(t.page)?1:null!==(i=t.page)&&void 0!==i?i:1,o=this.plugin.settings.pdfScale,l=async e=>{const t=createEl("canvas"),A=t.getContext("2d"),i=await r.getPage(e),s=i.getViewport({scale:o});a=t.height=s.height,n=t.width=s.width;const l={canvasContext:A,background:"rgba(0,0,0,0)",viewport:s};return await i.render(l).promise,t},c=await l(s);if(c){const e=[`data:image/png;base64,${await new Promise(((e,t)=>{c.toBlob((async t=>{const A=await blobToBase64(t);e(A)}))}))}`,{width:n,height:a}];return c.width=0,c.height=0,e}}catch(e){return console.log(e),[null,null]}}async convertMarkdownToSVG(e,t,A,i){var n,a,r,s;let o=!1;const l=await getTransclusion(A,e.app,t);let c=(null!==(n=l.leadingHashes)&&void 0!==n?n:"")+l.contents;""===c&&(c="# Empty markdown file\nCTRL+Click here to open the file for editing in the current active pane, or CTRL+SHIFT+Click to open it in an adjacent pane.");const d=e.app.metadataCache.getFileCache(t);let h,u=e.settings.mdFont;switch((null==d?void 0:d.frontmatter)&&Boolean(d.frontmatter["excalidraw-font"])&&(u=d.frontmatter["excalidraw-font"]),u){case"Virgil":h=VIRGIL_FONT;break;case"Cascadia":h=CASCADIA_FONT;break;case"":h="";break;default:const A=await getFontDataURL(e.app,u,t.path);h=A.fontDef,u=A.fontName}(null==d?void 0:d.frontmatter)&&null!==d.frontmatter.banner&&(c=c.replace(/banner:\s*.*/,""));const g=(null==d?void 0:d.frontmatter)&&null!==(a=d.frontmatter["excalidraw-font-color"])&&void 0!==a?a:e.settings.mdFontColor;let p=(null==d?void 0:d.frontmatter)&&null!==(r=d.frontmatter["excalidraw-css"])&&void 0!==r?r:"",m=!1;if(p&&""!=p){const A=e.app.metadataCache.getFirstLinkpathDest(p,t.path);A&&(p=await e.app.vault.read(A),m=!0)}if(!m)if(e.settings.mdCSS&&""!==e.settings.mdCSS){const A=e.app.metadataCache.getFirstLinkpathDest(e.settings.mdCSS,t.path);p+=A?`\n${await e.app.vault.read(A)}`:DEFAULT_MD_EMBED_CSS}else p+=DEFAULT_MD_EMBED_CSS;const w=(null==d?void 0:d.frontmatter)&&null!==(s=d.frontmatter["excalidraw-border-color"])&&void 0!==s?s:e.settings.mdBorderColor;w&&""!==w&&!p.match(/svg/i)&&(p+=`svg{border:2px solid;color:${w};transform:scale(.95)}`);let f=` width="${A.width}px" height="100000"`,E=` width="${A.width}px" height="100%"`;const B=(e,t,A)=>`${A?``:""}${e}${t}${""!==h?``:""}`,b=createDiv();b.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),b.setAttribute("class","excalidraw-md-host"),""!==u&&(b.style.fontFamily=u),b.style.overflow="auto",b.style.display="block",b.style.color=g&&""!==g?g:"initial",await obsidian_module.MarkdownRenderer.renderMarkdown(c,b,t.path,e),b.querySelectorAll(":scope > *[class^='frontmatter']").forEach((e=>b.removeChild(e)));const v=Array.from(b.querySelectorAll("span[class='internal-embed']"));for(let A=0;A{const t=e.style,A=window.getComputedStyle(e);let i="";for(const e in t)t.hasOwnProperty(e)&&(i+=`${e}: ${A[e]};`);e.setAttribute("style",i)}));const T=(new XMLSerializer).serializeToString(F),S=(new XMLSerializer).serializeToString(x);document.body.removeChild(C);const I=new DOMParser,M=I.parseFromString(B(T,S),"image/svg+xml").firstElementChild,k=createDiv();k.appendChild(M),document.body.appendChild(k);const U=M.querySelector(".excalidraw-md-footer").scrollHeight,Q=M.querySelector(".excalidraw-md-host").scrollHeight+U,O=Q<=A.height?Q:A.height;document.body.removeChild(k),f=` width="${A.width}px" height="${O}px"`,E=` width="${A.width}px" height="${O}px"`,b.style.height=O-U+"px",b.style.overflow="hidden";const L=b.querySelectorAll("img:not([src^='data:image/svg+xml'])");L.length>0&&(o=!0),o&&this.isDark&&L.forEach((e=>{e instanceof HTMLImageElement&&(e.style.filter=THEME_FILTER)}));const N=B((new XMLSerializer).serializeToString(b),'',p);return e.ea.mostRecentMarkdownSVG=I.parseFromString(N,"image/svg+xml").firstElementChild,{dataURL:svgToBase64(N),hasSVGwithBitmap:o}}}const getSVGData=async(e,t,A)=>{const i=replaceSVGColors(await e.vault.read(t),A);return svgToBase64(i)},generateIdFromFile=async e=>{let t;try{const A=await window.crypto.subtle.digest("SHA-1",e);t=Array.from(new Uint8Array(A)).map((e=>e.toString(16).padStart(2,"0"))).join("")}catch(e){errorlog({where:"EmbeddedFileLoader.generateIdFromFile",error:e}),t=fileid()}return t};class Prompt extends obsidian_module.Modal{constructor(e,t,A,i,n){super(e),this.prompt_text=t,this.default_value=A,this.placeholder=i,this.prompt_desc=n}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty()}createForm(){var e;let t=this.contentEl.createDiv();t.addClass("excalidraw-prompt-div"),this.prompt_desc&&(t=t.createDiv(),t.style.width="100%",t.createEl("p").innerHTML=this.prompt_desc);const A=t.createEl("form");A.addClass("excalidraw-prompt-form"),A.type="submit",A.onsubmit=e=>{e.preventDefault(),this.resolve(this.promptEl.value),this.close()},this.promptEl=A.createEl("input"),this.promptEl.type="text",this.promptEl.placeholder=this.placeholder,this.promptEl.value=null!==(e=this.default_value)&&void 0!==e?e:"",this.promptEl.addClass("excalidraw-prompt-input"),this.promptEl.select()}async openAndGetValue(e){this.resolve=e,this.open()}}class GenericInputPrompt extends obsidian_module.Modal{static Prompt(e,t,A,i,n,a,r,s,o,l,c){return new GenericInputPrompt(e,t,A,i,n,a,r,s,o,l,c).waitForClose}constructor(e,t,A,i,n,a,r,s,o,l,c){super(A),this.header=i,this.didSubmit=!1,this.lines=1,this.displayEditorButtons=!1,this.selectionStart=0,this.selectionEnd=0,this.selectionUpdateTimer=0,this.blockPointerInputOutsideModal=!1,this.linkBtnClickCallback=()=>{this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer),this.plugin.insertLinkDialog.start(this.view.file.path,(e=>{const t=this.inputComponent.inputEl.value;this.selectionStart>0&&" "!==t.slice(this.selectionStart-1,this.selectionStart)&&(e=" "+e),this.selectionStart{this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer);const t=this.inputComponent.inputEl.value.slice(0,this.selectionStart)+e+this.inputComponent.inputEl.value.slice(this.selectionStart);this.inputComponent.inputEl.value=t,this.input=this.inputComponent.inputEl.value,this.inputComponent.inputEl.focus(),this.selectionStart=this.selectionStart+1,this.selectionEnd=this.selectionStart,this.inputComponent.inputEl.setSelectionRange(this.selectionStart,this.selectionEnd)},this.delBtnClickCallback=()=>{if(this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer),0===this.input.length)return;const e=this.selectionEnd>this.selectionStart?this.selectionStart:this.selectionStart>0?this.selectionStart-1:0,t=this.selectionEnd,A=this.inputComponent.inputEl.value.slice(0,e)+this.inputComponent.inputEl.value.slice(t);this.inputComponent.inputEl.value=A,this.input=this.inputComponent.inputEl.value,this.inputComponent.inputEl.focus(),this.selectionStart=e,this.selectionEnd=e,this.inputComponent.inputEl.setSelectionRange(e,e)},this.uppercaseBtnClickCallback=()=>{if(this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer),this.selectionEnd===this.selectionStart)return;const e=this.inputComponent.inputEl.value.slice(0,this.selectionStart)+this.inputComponent.inputEl.value.slice(this.selectionStart,this.selectionEnd).toUpperCase()+this.inputComponent.inputEl.value.slice(this.selectionEnd);this.inputComponent.inputEl.value=e,this.input=this.inputComponent.inputEl.value,this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.setSelectionRange(this.selectionStart,this.selectionEnd)},this.submitClickCallback=()=>this.submit(),this.cancelClickCallback=()=>this.cancel(),this.keyDownCallback=e=>{("Enter"===e.key&&1===this.lines||isCTRL(e)&&"Enter"===e.key)&&(e.preventDefault(),this.submit()),this.displayEditorButtons&&"k"===e.key&&isCTRL(e)&&(e.preventDefault(),this.linkBtnClickCallback())},this.view=e,this.plugin=t,this.placeholder=n,this.input=a,this.buttons=r,this.lines=null!=s?s:1,this.displayEditorButtons=this.lines>1&&null!=o&&o,this.customComponents=l,this.blockPointerInputOutsideModal=null!=c&&c,this.waitForClose=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t})),this.display(),this.inputComponent.inputEl.focus(),this.open()}display(){var e;this.contentEl.empty(),this.blockPointerInputOutsideModal&&(this.bgEl.style.pointerEvents=this.blockPointerInputOutsideModal?"none":"auto"),this.titleEl.textContent=this.header;const t=this.contentEl.createDiv();this.inputComponent=this.createInputField(t,this.placeholder,this.input),null===(e=this.customComponents)||void 0===e||e.call(this,t),this.createButtonBar(t)}createInputField(e,t,A){const i=new obsidian_module.TextAreaComponent(e);i.inputEl.style.width="100%",i.inputEl.style.height=2*this.lines+"em",1===this.lines&&(i.inputEl.style.resize="none",i.inputEl.style.overflow="hidden"),i.setPlaceholder(null!=t?t:"").setValue(null!=A?A:"").onChange((e=>this.input=e));const n=()=>{this.selectionUpdateTimer=this.view.ownerWindow.setTimeout((()=>{this.selectionStart=this.inputComponent.inputEl.selectionStart,this.selectionEnd=this.inputComponent.inputEl.selectionEnd}),30)};return i.inputEl.addEventListener("keydown",this.keyDownCallback),i.inputEl.addEventListener("keyup",n),i.inputEl.addEventListener("pointerup",n),i.inputEl.addEventListener("touchend",n),i.inputEl.addEventListener("input",n),i.inputEl.addEventListener("paste",n),i.inputEl.addEventListener("cut",n),i.inputEl.addEventListener("select",n),i.inputEl.addEventListener("selectionchange",n),i}createButton(e,t,A,i="",n="5px"){const a=new obsidian_module.ButtonComponent(e);return a.buttonEl.style.padding="0.5em",a.buttonEl.style.marginLeft=n,a.setTooltip(i),a.setButtonText(t).onClick(A),a}createButtonBar(e){const t=e.createDiv();t.style.display="flex",t.style.justifyContent="space-between",t.style.marginTop="1rem";const A=t.createDiv(),i=t.createDiv();if(this.buttons&&this.buttons.length>0){let e=null;for(const t of this.buttons){const A=new obsidian_module.ButtonComponent(i);A.buttonEl.style.marginLeft="5px",t.tooltip&&A.setTooltip(t.tooltip),A.setButtonText(t.caption).onClick((e=>{const A=t.action(this.input);A&&(this.input=A),this.submit()})),e=null!=e?e:A}e&&(e.setCta(),e.buttonEl.style.marginRight="0")}else this.createButton(i,"✅",this.submitClickCallback).setCta().buttonEl.style.marginRight="0";this.createButton(i,"❌",this.cancelClickCallback,t$d("PROMPT_BUTTON_CANCEL")),this.displayEditorButtons&&(this.createButton(A,"⏎",(()=>this.insertStringBtnClickCallback("\n")),t$d("PROMPT_BUTTON_INSERT_LINE"),"0"),this.createButton(A,"⌫",this.delBtnClickCallback,"Delete"),this.createButton(A,"⎵",(()=>this.insertStringBtnClickCallback(" ")),t$d("PROMPT_BUTTON_INSERT_SPACE")),this.view&&this.createButton(A,"🔗",this.linkBtnClickCallback,t$d("PROMPT_BUTTON_INSERT_LINK")),this.createButton(A,"🔠",this.uppercaseBtnClickCallback,t$d("PROMPT_BUTTON_UPPERCASE")))}submit(){this.didSubmit=!0,this.close()}cancel(){this.close()}resolveInput(){this.didSubmit?this.resolvePromise(this.input):this.rejectPromise("No input given.")}removeInputListener(){var e,t;null===(t=null===(e=this.inputComponent)||void 0===e?void 0:e.inputEl)||void 0===t||t.removeEventListener("keydown",this.keyDownCallback)}onOpen(){super.onOpen(),this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.select()}onClose(){super.onClose(),this.resolveInput(),this.removeInputListener()}}class GenericSuggester extends obsidian_module.FuzzySuggestModal{static Suggest(e,t,A,i,n){return new GenericSuggester(e,t,A,i,n).promise}constructor(e,t,A,i,n){var a;super(e),this.displayItems=t,this.items=A,this.hint=i,this.instructions=n,this.limit=20,this.setPlaceholder(null!==(a=this.hint)&&void 0!==a?a:""),n&&this.setInstructions(this.instructions),this.promise=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t})),this.open()}getItemText(e){return this.displayItems[this.items.indexOf(e)]}getItems(){return this.items}selectSuggestion(e,t){this.resolved=!0,super.selectSuggestion(e,t)}onChooseItem(e){this.resolved=!0,this.resolvePromise(e)}onClose(){super.onClose(),this.resolved||this.rejectPromise(this.inputEl.value)}}class NewFileActions extends obsidian_module.Modal{constructor(e,t,A,i,n=!0,a){super(e.app),this.plugin=e,this.path=t,this.keys=A,this.view=i,this.openNewFile=n,this.parentFile=a,this.newFile=null,a||(this.parentFile=i.file),this.waitForClose=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t}))}onOpen(){this.createForm()}openFile(e){this.newFile=e,e&&this.openNewFile&&getLeaf(this.plugin,this.view.leaf,this.keys).openFile(e,{active:!0})}onClose(){super.onClose(),this.resolvePromise(this.newFile)}createForm(){this.titleEl.setText(t$d("PROMPT_TITLE_NEW_FILE")),this.contentEl.createDiv({cls:"excalidraw-prompt-center",text:t$d("PROMPT_FILE_DOES_NOT_EXIST")}),this.contentEl.createDiv({cls:"excalidraw-prompt-center filepath",text:this.path}),this.contentEl.createDiv({cls:"excalidraw-prompt-center"},(e=>{e.style.textAlign="right";const t=()=>this.path&&""!==this.path?!!this.parentFile||(new obsidian_module.Notice(t$d("PROMPT_ERROR_DRAWING_CLOSED")),!1):(new obsidian_module.Notice(t$d("PROMPT_ERROR_NO_FILENAME")),!1),A=async e=>{if(!this.path.includes("/")){const e=new RegExp(`${this.parentFile.name}$`,"g");this.path=this.parentFile.path.replace(e,this.path)}return this.path.match(/\.md$/)||(this.path=`${this.path}.md`),checkAndCreateFolder(splitFolderAndFilename(this.path).folderpath),await this.app.vault.create(this.path,e)};e.createEl("button",{text:t$d("PROMPT_BUTTON_CREATE_MARKDOWN")}).onclick=async()=>{if(!t)return;const e=await A("");this.openFile(e),this.close()},e.createEl("button",{text:t$d("PROMPT_BUTTON_CREATE_EXCALIDRAW")}).onclick=async()=>{if(!t)return;const e=await A(await this.plugin.getBlankDrawing());await sleep$1(200),this.openFile(e),this.close()},e.createEl("button",{text:t$d("PROMPT_BUTTON_NEVERMIND")}).onclick=()=>{this.close()}}))}}class ConfirmationPrompt extends obsidian_module.Modal{constructor(e,t){super(e.app),this.plugin=e,this.didConfirm=!1,this.cancelClickCallback=()=>{this.didConfirm=!1,this.close()},this.confirmClickCallback=()=>{this.didConfirm=!0,this.close()},this.message=t,this.waitForClose=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t})),this.display(),this.open()}display(){this.contentEl.empty(),this.titleEl.textContent=t$d("PROMPT_TITLE_CONFIRMATION");const e=this.contentEl.createDiv();e.style.marginBottom="1rem",e.innerHTML=this.message;const t=this.contentEl.createDiv();t.style.display="flex",t.style.justifyContent="flex-end";const A=this.createButton(t,t$d("PROMPT_BUTTON_CANCEL"),this.cancelClickCallback);A.buttonEl.style.marginRight="0.5rem",this.createButton(t,t$d("PROMPT_BUTTON_OK"),this.confirmClickCallback).buttonEl.style.marginRight="0",A.buttonEl.focus()}createButton(e,t,A){const i=new obsidian_module.ButtonComponent(e);return i.setButtonText(t).onClick(A),i}onOpen(){var e;super.onOpen(),null===(e=this.contentEl.querySelector("button"))||void 0===e||e.focus()}onClose(){super.onClose(),this.didConfirm?this.resolvePromise(!0):this.resolvePromise(!1)}}var AutoexportPreference;!function(e){e[e.none=0]="none",e[e.both=1]="both",e[e.png=2]="png",e[e.svg=3]="svg",e[e.inherit=4]="inherit"}(AutoexportPreference||(AutoexportPreference={}));const REGEX_LINK={ //![[link|alias]] [alias](link){num} -EXPR:/(!)?(\[\[([^|\]]+)\|?([^\]]+)?]]|\[([^\]]*)]\(([^)]*)\))(\{(\d+)\})?/g,getResList:e=>{const t=e.matchAll(REGEX_LINK.EXPR);let A;const i=[];for(;!(A=t.next()).done;)i.push(A);return i},getRes:e=>e.matchAll(REGEX_LINK.EXPR),isTransclusion:e=>!!e.value[1],getLink:e=>e.value[3]?e.value[3]:e.value[6],isWikiLink:e=>!!e.value[3],getAliasOrLink:e=>REGEX_LINK.isWikiLink(e)?e.value[4]?e.value[4]:e.value[3]:e.value[5]?e.value[5]:e.value[6],getWrapLength:(e,t)=>{const A=parseInt(e.value[8]);return isNaN(A)?t>0?t:null:A}},DRAWING_REG=/\n# Drawing\n[^`]*(```json\n)([\s\S]*?)```\n/gm,DRAWING_REG_FALLBACK=/\n# Drawing\n(```json\n)?(.*)(```)?(%%)?/gm,DRAWING_COMPRESSED_REG=/(\n# Drawing\n[^`]*(?:```compressed\-json\n))([\s\S]*?)(```\n)/gm,DRAWING_COMPRESSED_REG_FALLBACK=/(\n# Drawing\n(?:```compressed\-json\n)?)(.*)((```)?(%%)?)/gm,REG_LINKINDEX_HYPERLINK=/^\w+:\/\//,isCompressedMD=e=>null!==e.match(/```compressed\-json\n/gm),getDecompressedScene=e=>{let t,A=e.matchAll(DRAWING_COMPRESSED_REG);return t=A.next(),t.done&&(A=e.matchAll(DRAWING_COMPRESSED_REG_FALLBACK),t=A.next()),t.value&&t.value.length>1?[decompress(t.value[2]),t]:[null,t]},changeThemeOfExcalidrawMD=e=>{const t=isCompressedMD(e);let A=t?getDecompressedScene(e)[0]:e;return A?(isObsidianThemeDark?1===(A.match(/"theme"\s*:\s*"light"\s*,/g)||[]).length&&(A=A.replace(/"theme"\s*:\s*"light"\s*,/,'"theme": "dark",')):1===(A.match(/"theme"\s*:\s*"dark"\s*,/g)||[]).length&&(A=A.replace(/"theme"\s*:\s*"dark"\s*,/,'"theme": "light",')),t?e.replace(DRAWING_COMPRESSED_REG,`$1${compress(A)}$3`):A):e};function getJSON(e){let t,A;if(isCompressedMD(e)){const[t,A]=getDecompressedScene(e);return t?{scene:t.substring(0,t.lastIndexOf("}")+1),pos:A.value.index}:{scene:e,pos:A.value?A.value.index:0}}if(t=e.matchAll(DRAWING_REG),A=t.next(),A.done&&(t=e.matchAll(DRAWING_REG_FALLBACK),A=t.next()),A.value&&A.value.length>1){const e=A.value[2];return{scene:e.substr(0,e.lastIndexOf("}")+1),pos:A.value.index}}return{scene:e,pos:A.value?A.value.index:0}}function getMarkdownDrawingSection(e,t){return t?`%%\n# Drawing\n\`\`\`compressed-json\n${compress(e)}\n\`\`\`\n%%`:`%%\n# Drawing\n\`\`\`json\n${e}\n\`\`\`\n%%`}const estimateMaxLineLen=(e,t)=>{if(!t||!e)return null;if(e===t)return null;let A=0;const i=e.split("\n");if(1===i.length)return null;for(const e of i){const t=e.trim();t.length>A&&(A=t.length)}return A},wrap=(e,t)=>t?wrapTextAtCharLength(e,t,!1,0):e;class ExcalidrawData{constructor(e){this.plugin=e,this.textElements=null,this.elementLinks=null,this.scene=null,this.deletedElements=[],this.file=null,this.iFrameTheme="auto",this.autoexportPreference=AutoexportPreference.inherit,this.textMode=TextMode.raw,this.loaded=!1,this.files=null,this.equations=null,this.compatibilityMode=!1,this.selectedElementIds={},this.disableCompression=!1,this.app=e.app,this.files=new Map,this.equations=new Map}initializeNonInitializedFields(){var e,t,A;if(!this.scene||!this.scene.elements)return;const i=null!==(e=this.scene.source.split("https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/")[1])&&void 0!==e?e:"1.8.16",n=this.scene.elements;for(const e of n){if(e.boundElements){const t=new Map;e.boundElements.forEach((e=>{t.set(e.id,e.type)}));const A=Array.from(t,(([e,t])=>({id:e,type:t})));A.length!==e.boundElements.length&&(e.boundElements=A)}e.boundElementIds&&(e.boundElements||(e.boundElements=[]),e.boundElements=e.boundElements.concat(e.boundElementIds.map((e=>({type:"arrow",id:e})))),delete e.boundElementIds),"text"!==e.type||e.containerId||(e.containerId=null),null===e.x&&(e.x=0),null===e.y&&(e.y=0),null===(null===(t=e.startBinding)||void 0===t?void 0:t.focus)&&(e.startBinding.focus=0),null===(null===(A=e.endBinding)||void 0===A?void 0:A.focus)&&(e.endBinding.focus=0),null===e.fontSize&&(e.fontSize=20)}try{n.filter((e=>"text"===e.type&&e.containerId&&n.some((t=>t.id===e.containerId&&t.boundElements.length>0&&t.boundElements.some((t=>"text"===t.type&&t.id!==e.id&&t.id.length>8)))))).forEach((e=>{try{const t=n.filter((t=>t.id===e.containerId))[0],A=t.boundElements.filter((e=>!("text"===e.type&&!n.some((t=>t.id===e.id)))));t.boundElements=[{id:e.id,type:"text"}].concat(A)}catch(e){}}));const e=!isVersionNewerThanOther(i,"1.8.16");n.filter((e=>e.boundElements&&e.boundElements.length>0)).forEach((t=>{var A;e&&!(null===(A=t.customData)||void 0===A?void 0:A.legacyTextWrap)&&(t.customData=Object.assign(Object.assign({},t.customData),{legacyTextWrap:!0}));const i=t.boundElements.filter((e=>n.some((t=>t.id===e.id))));i.length!==t.boundElements.length&&(t.boundElements=i)})),n.filter((e=>"text"===e.type&&e.containerId&&!n.some((t=>t.id===e.containerId)))).forEach((e=>{e.containerId=null}))}catch(e){}}async loadData(e,t,A){if(!t)return!1;if(this.loaded=!1,this.selectedElementIds={},this.textElements=new Map,this.elementLinks=new Map,this.file!=t&&(this.files.clear(),this.equations.clear()),this.file=t,this.compatibilityMode=!1,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.setAutoexportPreferences(),this.setIFrameThemePreference(),this.scene=null,this.plugin.settings.syncExcalidraw){const e=`${t.path.substring(0,t.path.lastIndexOf(".md"))}.excalidraw`,A=this.app.vault.getAbstractFileByPath(e);if(A&&A instanceof obsidian_module.TFile&&A.stat.mtime>t.stat.mtime){const e=await this.app.vault.read(A);this.scene=JSON.parse(e)}}let i=null;i=(()=>{const t=getJSON(e);if(-1===t.pos)throw new Error("Excalidraw JSON not found in the file");return this.scene||(this.scene=JSON_parse(t.scene)),t})(),this.deletedElements=this.scene.elements.filter((e=>e.isDeleted)),this.scene.elements=this.scene.elements.filter((e=>!e.isDeleted)),this.scene.files||(this.scene.files={}),hasExportTheme(this.plugin,this.file)?this.scene.appState.theme=getExportTheme(this.plugin,this.file,"light"):this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.initializeNonInitializedFields();let n=(e=e.substring(0,i.pos)).search(/(^%%\n)?# Text Elements\n/m);if(-1===n)return await this.setTextMode(A,!1),this.loaded=!0,!0;n+=e.match(/((^%%\n)?# Text Elements\n)/m)[0].length,e=e.substring(n),n=0;const a=" ^12345678\n\n".length;let r,s=e.matchAll(/\s\^(.{8})[\n]+/g);for(;!(r=s.next()).done;){let t=e.substring(n,r.value.index);const A=r.value[1],i=this.scene.elements.filter((e=>e.id===A))[0];if(i)if("text"!==i.type)i.link!==t&&(i.link=t,i.version++,i.versionNonce++),this.elementLinks.set(A,t);else{const e=estimateMaxLineLen(i.text,i.originalText),n=t.matchAll(/^%%\*\*\*>>>text element-link:(\[\[[^<*\]]*]])<<<\*\*\*%%/gm).next();n.done||(t=t.replace(/^%%\*\*\*>>>text element-link:\[\[[^<*\]]*]]<<<\*\*\*%%/gm,""),i.link=n.value[1]);const a=await this.parse(t);i.rawText=t,this.textElements.set(A,{raw:t,parsed:a.parsed,wrapAt:e}),a.link&&(i.link=a.link),!i||i.rawText&&""!==i.rawText||(i.rawText=t)}n=r.value.index+a}for(s=(e=e.substring(e.indexOf("# Embedded files\n")+"# Embedded files\n".length)).matchAll(/([\w\d]*):\s*\[\[([^\]]*)]]\s?(\{[^}]*})?\n/gm);!(r=s.next()).done;){const e=new EmbeddedFile(this.plugin,this.file.path,r.value[2],r.value[3]);this.setFile(r.value[1],e)}for(s=e.matchAll(/([\w\d]*):\s*(https?:\/\/[^\s]*)\n/gm);!(r=s.next()).done;){const e=new EmbeddedFile(this.plugin,null,r.value[2]);this.setFile(r.value[1],e)}for(s=e.matchAll(/([\w\d]*):\s*\$\$(.*)(\$\$\s*\n)/gm);!(r=s.next()).done;)this.setEquation(r.value[1],{latex:r.value[2],isLoaded:!1});return this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(A,!0),this.loaded=!0,!0}async loadLegacyData(e,t){return!!t&&(this.loaded=!1,this.selectedElementIds={},this.compatibilityMode=!0,this.file=t,this.textElements=new Map,this.elementLinks=new Map,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.setIFrameThemePreference(),this.scene=JSON.parse(e),this.scene.files||(this.scene.files={}),this.initializeNonInitializedFields(),this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.files.clear(),this.equations.clear(),this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(TextMode.raw,!0),this.loaded=!0,!0)}async setTextMode(e,t=!1){this.scene&&(this.textMode=e,await this.updateSceneTextElements(t))}updateTextElement(e,t,A,i=!1,n){var a;if(i||t!=e.text){const i=_measureText(t,e.fontSize,e.fontFamily,null!==(a=e.lineHeight)&&void 0!==a?a:getDefaultLineHeight(e.fontFamily));e.text=t,e.originalText=A,e.containerId&&"arrow"!==n||(e.width=i.w),e.height=i.h,e.baseline=i.baseline}}async updateSceneTextElements(e=!1){var t,A,i,n;const a=null===(t=this.scene.elements)||void 0===t?void 0:t.filter((e=>"text"===e.type));for(const t of a){const a=getContainerElement(t,this.scene),r=null!==(i=null!==(A=await this.getText(t.id))&&void 0!==A?A:t.originalText)&&void 0!==i?i:t.text,s=null===(n=this.textElements.get(t.id))||void 0===n?void 0:n.wrapAt;try{this.updateTextElement(t,s?wrapText(r,getFontString({fontSize:t.fontSize,fontFamily:t.fontFamily}),getBoundTextMaxWidth(a)):r,r,e,null==a?void 0:a.type)}catch(e){debug({where:"ExcalidrawData.updateSceneTextElements",fn:this.updateSceneTextElements,textElement:t})}}}async getText(e){const t=this.textElements.get(e);return t?this.textMode===TextMode.parsed?(t.parsed||this.textElements.set(e,{raw:t.raw,parsed:(await this.parse(t.raw)).parsed,wrapAt:t.wrapAt}),t.parsed):t.raw:null}findNewElementLinksInScene(){var e;let t=!1;const A=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"!==e.type&&e.link&&e.link.startsWith("[[")&&!this.elementLinks.has(e.id)));if(0===A.length)return t;let i,n=JSON.stringify(this.scene);for(const e of A)i=e.id,e.id.length>8&&(t=!0,i=nanoid(),n=n.replaceAll(e.id,i)),this.elementLinks.set(i,e.link);return this.scene=JSON.parse(n),t}findNewTextElementsInScene(e={}){var t;this.selectedElementIds=e;const A=null===(t=this.scene.elements)||void 0===t?void 0:t.filter((e=>"text"===e.type));let i,n=JSON.stringify(this.scene),a=!1;for(const e of A)if(i=e.id,e.id.length>8){if(a=!0,i=nanoid(),this.selectedElementIds[e.id]&&(delete this.selectedElementIds[e.id],this.selectedElementIds[i]=!0),n=n.replaceAll(e.id,i),this.textElements.has(e.id)){const t=this.textElements.get(e.id);this.textElements.set(i,{raw:t.raw,parsed:t.parsed,wrapAt:t.wrapAt}),this.textElements.delete(e.id)}if(!this.textElements.has(i)){const t=e.rawText&&""!==e.rawText?e.rawText:e.text,A=estimateMaxLineLen(e.text,e.originalText);this.textElements.set(i,{raw:t,parsed:null,wrapAt:A}),this.parseasync(i,t,A)}}else if(!this.textElements.has(e.id)){const t=e.rawText&&""!==e.rawText?e.rawText:e.text,A=estimateMaxLineLen(e.text,e.originalText);this.textElements.set(i,{raw:t,parsed:null,wrapAt:A}),this.parseasync(i,t,A)}return a&&(this.scene=JSON.parse(n)),a}updateElementLinksFromScene(){var e;for(const t of this.elementLinks.keys()){const A=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"!==e.type&&e.id===t&&e.link&&e.link.startsWith("[[")));0===A.length?this.elementLinks.delete(t):this.elementLinks.set(t,A[0].link)}}async updateTextElementsFromScene(){var e,t,A;for(const i of this.textElements.keys()){const n=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"===e.type&&e.id===i));if(0===n.length)this.textElements.delete(i);else{const e=await this.getText(i),a=this.scene.prevTextMode===TextMode.parsed?n[0].rawText:null!==(t=n[0].originalText)&&void 0!==t?t:n[0].text;if(e!==(null!==(A=n[0].originalText)&&void 0!==A?A:n[0].text)){const e=estimateMaxLineLen(n[0].text,n[0].originalText);this.textElements.set(i,{raw:a,parsed:(await this.parse(a)).parsed,wrapAt:e})}}}}async parseasync(e,t,A){this.textElements.set(e,{raw:t,parsed:(await this.parse(t)).parsed,wrapAt:A})}parseLinks(e,t,A){return e.substring(t,A.value.index)+(this.showLinkBrackets?"[[":"")+REGEX_LINK.getAliasOrLink(A)+(this.showLinkBrackets?"]]":"")}async getTransclusion(e){const t=getLinkParts(e,this.file),A=this.app.metadataCache.getFirstLinkpathDest(t.path,this.file.path);return await getTransclusion(t,this.app,A,this.plugin.settings.pageTransclusionCharLimit)}async parse(e){e=this.parseCheckbox(e);let t="",A=null,i=0;const n=REGEX_LINK.getRes(e);let a,r=!1,s=!1;for(e.match(REG_LINKINDEX_HYPERLINK)&&(A=e,s=!0);!(a=n.next()).done;){if(!A){const e=REGEX_LINK.getLink(a);A=e.match(REG_LINKINDEX_HYPERLINK)?e:`[[${e}]]`}if(REGEX_LINK.isTransclusion(a)){let A=this.parseCheckbox((await this.getTransclusion(REGEX_LINK.getLink(a))).contents).replaceAll(/%%[^%]*%%/gm,"");this.plugin.settings.removeTransclusionQuoteSigns&&(A=A.replaceAll(/\n\s*>\s?/gm,"\n")),t+=e.substring(i,a.value.index)+wrapTextAtCharLength(A,REGEX_LINK.getWrapLength(a,this.plugin.settings.wordWrappingDefault),this.plugin.settings.forceWrap)}else{const A=this.parseLinks(e,i,a);A&&(t+=A,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0))}i=a.value.index+a.value[0].length}return t+=e.substring(i,e.length),r&&(t=this.linkPrefix+t),s&&(t=this.urlPrefix+t),{parsed:t,link:A}}parseCheckbox(e){return this.plugin.settings.parseTODO?e.replaceAll(/^- \[\s] /g,`${this.plugin.settings.todo} `).replaceAll(/\n- \[\s] /g,`\n${this.plugin.settings.todo} `).replaceAll(/^- \[[^\s]] /g,`${this.plugin.settings.done} `).replaceAll(/\n- \[[^\s]] /g,`\n${this.plugin.settings.done} `):e}quickParse(e){if((e=>{const t=REGEX_LINK.getRes(e);let A;for(;!(A=t.next()).done;)if(REGEX_LINK.isTransclusion(A))return!0;return!1})(e))return[null,null];e=this.parseCheckbox(e);let t="",A=null,i=0;const n=REGEX_LINK.getRes(e);let a,r=!1,s=!1;for(e.match(REG_LINKINDEX_HYPERLINK)&&(A=e,s=!0);!(a=n.next()).done;){if(!A){const e=REGEX_LINK.getLink(a);A=e.match(REG_LINKINDEX_HYPERLINK)?e:`[[${e}]]`}const n=this.parseLinks(e,i,a);n&&(t+=n,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0)),i=a.value.index+a.value[0].length}return t+=e.substring(i,e.length),r&&(t=this.linkPrefix+t),s&&(t=this.urlPrefix+t),[t,A]}generateMD(e=[]){let t="# Text Elements\n";for(const e of this.textElements.keys()){const A=this.scene.elements.filter((t=>t.id===e));let i=this.textElements.get(e).raw;A&&1===A.length&&A[0].link&&A[0].rawText===A[0].originalText&&A[0].link.match(/^\[\[[^\]]*]]$/g)&&(i=`%%***>>>text element-link:${A[0].link}<<<***%%`+i),t+=`${i} ^${e}\n\n`}for(const e of this.elementLinks.keys())t+=`${this.elementLinks.get(e)} ^${e}\n\n`;if(t+=this.equations.size>0||this.files.size>0?"\n# Embedded files\n":"",this.equations.size>0)for(const e of this.equations.keys())t+=`${e}: $$${this.equations.get(e).latex}$$\n`;if(this.files.size>0)for(const e of this.files.keys()){const A=/(^[^#\|]*)/,i=this.files.get(e);i.isHyperlink?t+=`${e}: ${i.hyperlink}\n`:t+=`${e}: [[${i.file?i.linkParts.original.replace(A,app.metadataCache.fileToLinktext(i.file,this.file.path)):i.linkParts.original}]]${i.colorMap?" "+JSON.stringify(i.colorMap):""}\n`}return t+=this.equations.size>0||this.files.size>0?"\n":"",t+getMarkdownDrawingSection(JSON.stringify({type:this.scene.type,version:this.scene.version,source:this.scene.source,elements:this.scene.elements.concat(e),appState:this.scene.appState,files:this.scene.files},null,"\t"),!this.disableCompression&&this.plugin.settings.compress)}async saveDataURLtoVault(e,t,A){var i;const n=this.scene;let a=`Pasted Image ${window.moment().format("YYYYMMDDHHmmss_SSS")}`;switch(t){case"image/png":default:a+=".png";break;case"image/jpeg":a+=".jpg";break;case"image/svg+xml":a+=".svg";break;case"image/gif":a+=".gif"}const r=(await getAttachmentsFolderAndFilePath(this.app,this.file.path,a)).filepath,s=await this.app.vault.createBinary(r,getBinaryFileFromDataURL(e)),o=new EmbeddedFile(this.plugin,this.file.path,r);return o.setImage(e,t,{height:0,width:0},"dark"===(null===(i=n.appState)||void 0===i?void 0:i.theme),"image/svg+xml"===t),this.setFile(A,o),s}async syncFiles(){let e=!1;const t=this.scene,A=t.elements.filter((e=>"image"===e.type)).map((e=>e.fileId));if(this.files.forEach(((t,i)=>{A.contains(i)||(this.files.delete(i),e=!0)})),this.equations.forEach(((t,i)=>{A.contains(i)||(this.equations.delete(i),e=!0)})),!t.files||0===Object.keys(t.files).length)return!1;const i=new Set;A.forEach((A=>{if(i.has(A)){const n=this.getFile(A),a=this.getEquation(A);if(n&&(n.isHyperlink||n.file&&("md"!==n.file.extension||this.plugin.isExcalidrawFile(n.file))))return;const r=fileid();t.elements.filter((e=>e.fileId===A))[0].fileId=r,e=!0,i.add(r),n&&this.setFile(r,new EmbeddedFile(this.plugin,this.file.path,n.linkParts.original)),a&&this.setEquation(r,{latex:a.latex,isLoaded:!1})}i.add(A)}));for(const A of Object.keys(t.files))this.hasFile(A)||this.hasEquation(A)||(e=!0,await this.saveDataURLtoVault(t.files[A].dataURL,t.files[A].mimeType,A));return e}async syncElements(e,t){this.scene=e;let A=!1;return this.compatibilityMode||(A=await this.syncFiles(),this.scene.files={}),this.updateElementLinksFromScene(),A=A||this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene(),await this.updateTextElementsFromScene(),A||this.findNewTextElementsInScene(t)}async updateScene(e){this.scene=JSON_parse(e),this.updateElementLinksFromScene();const t=this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.setIFrameThemePreference()||this.findNewElementLinksInScene();return await this.updateTextElementsFromScene(),!(!t&&!this.findNewTextElementsInScene()||(await this.updateSceneTextElements(),0))}getRawText(e){var t;return null===(t=this.textElements.get(e))||void 0===t?void 0:t.raw}getParsedText(e){const t=this.textElements.get(e);return t?[wrap(t.parsed,t.wrapAt),t.parsed,null]:[null,null,null]}setTextElement(e,t,A,i){const n=estimateMaxLineLen(t,A),[a,r]=this.quickParse(A);return a?(this.textElements.set(e,{raw:A,parsed:a,wrapAt:n}),[wrap(a,n),a,r]):(this.parse(A).then((t=>{const a=t.parsed;this.textElements.set(e,{raw:A,parsed:a,wrapAt:n}),a&&i(wrap(a,n),a)})),[null,null,null])}async addTextElement(e,t,A){let i=estimateMaxLineLen(t,A);this.textElements.has(e)&&(i=this.textElements.get(e).wrapAt);const n=await this.parse(A);return this.textElements.set(e,{raw:A,parsed:n.parsed,wrapAt:i}),[wrap(n.parsed,i),n.parsed,n.link]}deleteTextElement(e){this.textElements.delete(e)}getOpenMode(){const e=this.app.metadataCache.getFileCache(this.file);let t="view-mobile"===this.plugin.settings.defaultMode?DEVICE.isPhone?"view":"normal":this.plugin.settings.defaultMode;switch((null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-default-mode"]&&(t=e.frontmatter["excalidraw-default-mode"]),t){case"zen":return{viewModeEnabled:!1,zenModeEnabled:!0};case"view":return{viewModeEnabled:!0,zenModeEnabled:!1};default:return{viewModeEnabled:!1,zenModeEnabled:!1}}}getLinkOpacity(){const e=this.app.metadataCache.getFileCache(this.file);let t=this.plugin.settings.linkOpacity;return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-linkbutton-opacity"]&&(t=e.frontmatter["excalidraw-linkbutton-opacity"]),t}getOnLoadScript(){const e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-onload-script"]?e.frontmatter["excalidraw-onload-script"]:null}setLinkPrefix(){const e=this.linkPrefix,t=this.app.metadataCache.getFileCache(this.file);return(null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-link-prefix"]?this.linkPrefix=t.frontmatter["excalidraw-link-prefix"]:this.linkPrefix=this.plugin.settings.linkPrefix,e!=this.linkPrefix}setUrlPrefix(){const e=this.urlPrefix,t=this.app.metadataCache.getFileCache(this.file);return(null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-url-prefix"]?this.urlPrefix=t.frontmatter["excalidraw-url-prefix"]:this.urlPrefix=this.plugin.settings.urlPrefix,e!=this.urlPrefix}setAutoexportPreferences(){const e=this.app.metadataCache.getFileCache(this.file);if((null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-autoexport"])switch(e.frontmatter["excalidraw-autoexport"].toLowerCase()){case"none":this.autoexportPreference=AutoexportPreference.none;break;case"both":this.autoexportPreference=AutoexportPreference.both;break;case"png":this.autoexportPreference=AutoexportPreference.png;break;case"svg":this.autoexportPreference=AutoexportPreference.svg;break;default:this.autoexportPreference=AutoexportPreference.inherit}else this.autoexportPreference=AutoexportPreference.inherit}setIFrameThemePreference(){const e=this.iFrameTheme,t=this.app.metadataCache.getFileCache(this.file);return(null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-iframe-theme"]?(this.iFrameTheme=t.frontmatter["excalidraw-iframe-theme"].toLowerCase(),IFRAME_THEME_FRONTMATTER_VALUES.includes(this.iFrameTheme)||(this.iFrameTheme="default")):this.iFrameTheme=this.plugin.settings.iframeMatchExcalidrawTheme?"auto":"default",e!=this.iFrameTheme}setShowLinkBrackets(){const e=this.showLinkBrackets,t=this.app.metadataCache.getFileCache(this.file);return(null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-link-brackets"]?this.showLinkBrackets=0!=t.frontmatter["excalidraw-link-brackets"]:this.showLinkBrackets=this.plugin.settings.showLinkBrackets,e!=this.showLinkBrackets}setFile(e,t){if(!t)return;if(this.files.set(e,t),t.isHyperlink)return void this.plugin.filesMaster.set(e,{isHyperlink:!0,path:t.hyperlink,blockrefData:null,hasSVGwithBitmap:t.isSVGwithBitmap});if(!t.file)return;const A=t.linkParts.original.split("#");this.plugin.filesMaster.set(e,{isHyperlink:!1,path:t.file.path+(t.shouldScale()?"":"|100%"),blockrefData:1===A.length?null:A[1],hasSVGwithBitmap:t.isSVGwithBitmap,colorMapJSON:t.colorMap?JSON.stringify(t.colorMap):null})}getFiles(){return Object.values(this.files)}getFile(e){let t=this.files.get(e);if(t)return t;const A=this.plugin.filesMaster.get(e);return A?(t=new EmbeddedFile(this.plugin,this.file.path,A.blockrefData?A.path+"#"+A.blockrefData:A.path),this.files.set(e,t),t):t}getFileEntries(){return this.files.entries()}deleteFile(e){this.files.delete(e)}hasFile(e){if(this.files.has(e))return!0;if(this.plugin.filesMaster.has(e)){const t=this.plugin.filesMaster.get(e);if(t.isHyperlink)return this.files.set(e,new EmbeddedFile(this.plugin,this.file.path,t.path)),!0;const A=t.path.split("|")[0].split("#")[0];if(!this.app.vault.getAbstractFileByPath(A))return this.plugin.filesMaster.delete(e),!0;const i=t.path.endsWith("100%"),n=new EmbeddedFile(this.plugin,this.file.path,(t.blockrefData?A+"#"+t.blockrefData:A)+(i?"|100%":""),t.colorMapJSON);return this.files.set(e,n),!0}return!1}setEquation(e,t){this.equations.set(e,{latex:t.latex,isLoaded:t.isLoaded}),this.plugin.equationsMaster.set(e,t.latex)}getEquation(e){let t=this.equations.get(e);if(t)return t;const A=this.plugin.equationsMaster.get(e);return A?(this.equations.set(e,{latex:A,isLoaded:!1}),{latex:A,isLoaded:!1}):t}getEquationEntries(){return this.equations.entries()}deleteEquation(e){this.equations.delete(e)}hasEquation(e){return!!this.equations.has(e)||!!this.plugin.equationsMaster.has(e)&&(this.equations.set(e,{latex:this.plugin.equationsMaster.get(e),isLoaded:!1}),!0)}}const getTransclusion=async(e,t,A,i)=>{var n,a,r,s,o,l,c,d,h;if(!e.path)return{contents:e.original.trim(),lineNum:0};if(!(A&&A instanceof obsidian_module.TFile))return{contents:e.original.trim(),lineNum:0};const u=await t.vault.read(A);if(!e.ref)return i?{contents:u.substring(0,i).trim(),lineNum:0}:{contents:u.trim(),lineNum:0};const g=(await t.metadataCache.blockCache.getForFile({isCancelled:()=>!1},A)).blocks.filter((e=>"comment"!=e.node.type));if(!g)return{contents:e.original.trim(),lineNum:0};if(e.isBlockRef){let t=null===(n=g.filter((t=>t.node.id==e.ref))[0])||void 0===n?void 0:n.node;if(!t)return{contents:e.original.trim(),lineNum:0};["blockquote"].includes(t.type)&&(t=t.children[0]);const A=t.position.start.offset,i=t.position.start.line,a=t.position.end.offset;return{contents:u.substring(A,a).replaceAll(/ \^\S*$|^\^\S*$/gm,"").trim(),lineNum:i}}const p=g.filter((e=>0===e.display.search(/^#+\s/)));let m=null,w=0,f=null,E=1;for(let t=0;tE;)e++;return e===p.length&&p[e-1].node.depth>E?{leadingHashes:"#".repeat(E)+" ",contents:u.substring(m).trim(),lineNum:w}:(f=p[e].node.position.start.offset-1,{leadingHashes:"#".repeat(E)+" ",contents:u.substring(m,f).trim(),lineNum:w})}const A=p[t].node.children[0],i=null===(r=null===(a=p[t].node.data)||void 0===a?void 0:a.hProperties)||void 0===r?void 0:r.dataHeading,n=null==A?void 0:A.children;!m&&((null===(s=null==A?void 0:A.value)||void 0===s?void 0:s.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref||(null===(o=null==A?void 0:A.title)||void 0===o?void 0:o.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref||(null==i?void 0:i.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref||n&&(null===(c=null===(l=n[0])||void 0===l?void 0:l.value)||void 0===c?void 0:c.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref)&&(m=null===(d=p[t].node.children[0])||void 0===d?void 0:d.position.start.offset,E=p[t].node.depth,w=null===(h=p[t].node.children[0])||void 0===h?void 0:h.position.start.line)}return m?{leadingHashes:"#".repeat(E)+" ",contents:u.substring(m).trim(),lineNum:w}:{contents:e.original.trim(),lineNum:0}};class Prompt extends obsidian_module.Modal{constructor(e,t,A,i,n){super(e),this.prompt_text=t,this.default_value=A,this.placeholder=i,this.prompt_desc=n}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty()}createForm(){var e;let t=this.contentEl.createDiv();t.addClass("excalidraw-prompt-div"),this.prompt_desc&&(t=t.createDiv(),t.style.width="100%",t.createEl("p").innerHTML=this.prompt_desc);const A=t.createEl("form");A.addClass("excalidraw-prompt-form"),A.type="submit",A.onsubmit=e=>{e.preventDefault(),this.resolve(this.promptEl.value),this.close()},this.promptEl=A.createEl("input"),this.promptEl.type="text",this.promptEl.placeholder=this.placeholder,this.promptEl.value=null!==(e=this.default_value)&&void 0!==e?e:"",this.promptEl.addClass("excalidraw-prompt-input"),this.promptEl.select()}async openAndGetValue(e){this.resolve=e,this.open()}}class GenericInputPrompt extends obsidian_module.Modal{static Prompt(e,t,A,i,n,a,r,s,o,l,c){return new GenericInputPrompt(e,t,A,i,n,a,r,s,o,l,c).waitForClose}constructor(e,t,A,i,n,a,r,s,o,l,c){super(A),this.header=i,this.didSubmit=!1,this.lines=1,this.displayEditorButtons=!1,this.selectionStart=0,this.selectionEnd=0,this.selectionUpdateTimer=0,this.blockPointerInputOutsideModal=!1,this.linkBtnClickCallback=()=>{this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer),this.plugin.insertLinkDialog.start(this.view.file.path,(e=>{const t=this.inputComponent.inputEl.value;this.selectionStart>0&&" "!==t.slice(this.selectionStart-1,this.selectionStart)&&(e=" "+e),this.selectionStart{this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer);const t=this.inputComponent.inputEl.value.slice(0,this.selectionStart)+e+this.inputComponent.inputEl.value.slice(this.selectionStart);this.inputComponent.inputEl.value=t,this.input=this.inputComponent.inputEl.value,this.inputComponent.inputEl.focus(),this.selectionStart=this.selectionStart+1,this.selectionEnd=this.selectionStart,this.inputComponent.inputEl.setSelectionRange(this.selectionStart,this.selectionEnd)},this.delBtnClickCallback=()=>{if(this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer),0===this.input.length)return;const e=this.selectionEnd>this.selectionStart?this.selectionStart:this.selectionStart>0?this.selectionStart-1:0,t=this.selectionEnd,A=this.inputComponent.inputEl.value.slice(0,e)+this.inputComponent.inputEl.value.slice(t);this.inputComponent.inputEl.value=A,this.input=this.inputComponent.inputEl.value,this.inputComponent.inputEl.focus(),this.selectionStart=e,this.selectionEnd=e,this.inputComponent.inputEl.setSelectionRange(e,e)},this.uppercaseBtnClickCallback=()=>{if(this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer),this.selectionEnd===this.selectionStart)return;const e=this.inputComponent.inputEl.value.slice(0,this.selectionStart)+this.inputComponent.inputEl.value.slice(this.selectionStart,this.selectionEnd).toUpperCase()+this.inputComponent.inputEl.value.slice(this.selectionEnd);this.inputComponent.inputEl.value=e,this.input=this.inputComponent.inputEl.value,this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.setSelectionRange(this.selectionStart,this.selectionEnd)},this.submitClickCallback=()=>this.submit(),this.cancelClickCallback=()=>this.cancel(),this.keyDownCallback=e=>{("Enter"===e.key&&1===this.lines||isCTRL(e)&&"Enter"===e.key)&&(e.preventDefault(),this.submit()),this.displayEditorButtons&&"k"===e.key&&isCTRL(e)&&(e.preventDefault(),this.linkBtnClickCallback())},this.view=e,this.plugin=t,this.placeholder=n,this.input=a,this.buttons=r,this.lines=null!=s?s:1,this.displayEditorButtons=this.lines>1&&null!=o&&o,this.customComponents=l,this.blockPointerInputOutsideModal=null!=c&&c,this.waitForClose=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t})),this.display(),this.inputComponent.inputEl.focus(),this.open()}display(){var e;this.contentEl.empty(),this.blockPointerInputOutsideModal&&(this.bgEl.style.pointerEvents=this.blockPointerInputOutsideModal?"none":"auto"),this.titleEl.textContent=this.header;const t=this.contentEl.createDiv();this.inputComponent=this.createInputField(t,this.placeholder,this.input),null===(e=this.customComponents)||void 0===e||e.call(this,t),this.createButtonBar(t)}createInputField(e,t,A){const i=new obsidian_module.TextAreaComponent(e);i.inputEl.style.width="100%",i.inputEl.style.height=2*this.lines+"em",1===this.lines&&(i.inputEl.style.resize="none",i.inputEl.style.overflow="hidden"),i.setPlaceholder(null!=t?t:"").setValue(null!=A?A:"").onChange((e=>this.input=e));const n=()=>{this.selectionUpdateTimer=this.view.ownerWindow.setTimeout((()=>{this.selectionStart=this.inputComponent.inputEl.selectionStart,this.selectionEnd=this.inputComponent.inputEl.selectionEnd}),30)};return i.inputEl.addEventListener("keydown",this.keyDownCallback),i.inputEl.addEventListener("keyup",n),i.inputEl.addEventListener("pointerup",n),i.inputEl.addEventListener("touchend",n),i.inputEl.addEventListener("input",n),i.inputEl.addEventListener("paste",n),i.inputEl.addEventListener("cut",n),i.inputEl.addEventListener("select",n),i.inputEl.addEventListener("selectionchange",n),i}createButton(e,t,A,i="",n="5px"){const a=new obsidian_module.ButtonComponent(e);return a.buttonEl.style.padding="0.5em",a.buttonEl.style.marginLeft=n,a.setTooltip(i),a.setButtonText(t).onClick(A),a}createButtonBar(e){const t=e.createDiv();t.style.display="flex",t.style.justifyContent="space-between",t.style.marginTop="1rem";const A=t.createDiv(),i=t.createDiv();if(this.buttons&&this.buttons.length>0){let e=null;for(const t of this.buttons){const A=new obsidian_module.ButtonComponent(i);A.buttonEl.style.marginLeft="5px",t.tooltip&&A.setTooltip(t.tooltip),A.setButtonText(t.caption).onClick((e=>{const A=t.action(this.input);A&&(this.input=A),this.submit()})),e=null!=e?e:A}e&&(e.setCta(),e.buttonEl.style.marginRight="0")}else this.createButton(i,"✅",this.submitClickCallback).setCta().buttonEl.style.marginRight="0";this.createButton(i,"❌",this.cancelClickCallback,"Cancel"),this.displayEditorButtons&&(this.createButton(A,"⏎",(()=>this.insertStringBtnClickCallback("\n")),"Insert new line","0"),this.createButton(A,"⌫",this.delBtnClickCallback,"Delete"),this.createButton(A,"⎵",(()=>this.insertStringBtnClickCallback(" ")),"Insert space"),this.view&&this.createButton(A,"🔗",this.linkBtnClickCallback,"Insert markdown link to file"),this.createButton(A,"🔠",this.uppercaseBtnClickCallback,"Uppercase"))}submit(){this.didSubmit=!0,this.close()}cancel(){this.close()}resolveInput(){this.didSubmit?this.resolvePromise(this.input):this.rejectPromise("No input given.")}removeInputListener(){var e,t;null===(t=null===(e=this.inputComponent)||void 0===e?void 0:e.inputEl)||void 0===t||t.removeEventListener("keydown",this.keyDownCallback)}onOpen(){super.onOpen(),this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.select()}onClose(){super.onClose(),this.resolveInput(),this.removeInputListener()}}class GenericSuggester extends obsidian_module.FuzzySuggestModal{static Suggest(e,t,A,i,n){return new GenericSuggester(e,t,A,i,n).promise}constructor(e,t,A,i,n){var a;super(e),this.displayItems=t,this.items=A,this.hint=i,this.instructions=n,this.limit=20,this.setPlaceholder(null!==(a=this.hint)&&void 0!==a?a:""),n&&this.setInstructions(this.instructions),this.promise=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t})),this.open()}getItemText(e){return this.displayItems[this.items.indexOf(e)]}getItems(){return this.items}selectSuggestion(e,t){this.resolved=!0,super.selectSuggestion(e,t)}onChooseItem(e){this.resolved=!0,this.resolvePromise(e)}onClose(){super.onClose(),this.resolved||this.rejectPromise(this.inputEl.value)}}class NewFileActions extends obsidian_module.Modal{constructor(e,t,A,i){super(e.app),this.plugin=e,this.path=t,this.keys=A,this.view=i}onOpen(){this.createForm()}async onClose(){}openFile(e){e&&getLeaf(this.plugin,this.view.leaf,this.keys).openFile(e,{active:!0})}createForm(){this.titleEl.setText("New File"),this.contentEl.createDiv({cls:"excalidraw-prompt-center",text:"File does not exist. Do you want to create it?"}),this.contentEl.createDiv({cls:"excalidraw-prompt-center filepath",text:this.path}),this.contentEl.createDiv({cls:"excalidraw-prompt-center"},(e=>{e.style.textAlign="right";const t=()=>this.path&&""!==this.path?!!this.view.file||(new obsidian_module.Notice("Unknown error. It seems as if your drawing was closed or the drawing file is missing"),!1):(new obsidian_module.Notice("Error: Filename for new file may not be empty"),!1),A=async e=>{if(!this.path.includes("/")){const e=new RegExp(`${this.view.file.name}$`,"g");this.path=this.view.file.path.replace(e,this.path)}return this.path.match(/\.md$/)||(this.path=`${this.path}.md`),checkAndCreateFolder(splitFolderAndFilename(this.path).folderpath),await this.app.vault.create(this.path,e)};e.createEl("button",{text:"Create Markdown"}).onclick=async()=>{if(!t)return;const e=await A("");this.openFile(e),this.close()},e.createEl("button",{text:"Create Excalidraw"}).onclick=async()=>{if(!t)return;const e=await A(await this.plugin.getBlankDrawing());await sleep$1(200),this.openFile(e),this.close()},e.createEl("button",{text:"Never Mind"}).onclick=()=>{this.close()}}))}}class ConfirmationPrompt extends obsidian_module.Modal{constructor(e,t){super(e.app),this.plugin=e,this.didConfirm=!1,this.cancelClickCallback=()=>{this.didConfirm=!1,this.close()},this.confirmClickCallback=()=>{this.didConfirm=!0,this.close()},this.message=t,this.waitForClose=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t})),this.display(),this.open()}display(){this.contentEl.empty(),this.titleEl.textContent="Confirmation";const e=this.contentEl.createDiv();e.style.marginBottom="1rem",e.innerHTML=this.message;const t=this.contentEl.createDiv();t.style.display="flex",t.style.justifyContent="flex-end";const A=this.createButton(t,"Cancel",this.cancelClickCallback);A.buttonEl.style.marginRight="0.5rem",this.createButton(t,"OK",this.confirmClickCallback).buttonEl.style.marginRight="0",A.buttonEl.focus()}createButton(e,t,A){const i=new obsidian_module.ButtonComponent(e);return i.setButtonText(t).onClick(A),i}onOpen(){var e;super.onOpen(),null===(e=this.contentEl.querySelector("button"))||void 0===e||e.focus()}onClose(){super.onClose(),this.didConfirm?this.resolvePromise(!0):this.resolvePromise(!1)}}class ScriptEngine{constructor(e){this.plugin=e,this.scriptIconMap={},this.loadScripts(),this.registerEventHandlers()}registerEventHandlers(){const e=e=>{if(!e.endsWith(".svg"))return;const t=app.vault.getAbstractFileByPath(getIMGFilename(e,"md"));t&&t instanceof obsidian_module.TFile&&(this.unloadScript(this.getScriptName(t),t.path),this.loadScript(t))};this.plugin.registerEvent(app.vault.on("delete",(async t=>{t instanceof obsidian_module.TFile&&t.path.startsWith(this.scriptPath)&&(this.unloadScript(this.getScriptName(t),t.path),e(t.path))}))),this.plugin.registerEvent(app.vault.on("create",(async t=>{t instanceof obsidian_module.TFile&&t.path.startsWith(this.scriptPath)&&(this.loadScript(t),e(t.path))}))),this.plugin.registerEvent(app.vault.on("rename",(async(t,A)=>{if(!(t instanceof obsidian_module.TFile))return;const i=A.startsWith(this.scriptPath),n=t.path.startsWith(this.scriptPath);i&&(this.unloadScript(this.getScriptName(A),A),e(A)),n&&(this.loadScript(t),e(t.path))})))}updateScriptPath(){this.scriptPath!==this.plugin.settings.scriptFolderPath&&(this.scriptPath&&this.unloadScripts(),this.loadScripts())}getListofScripts(){if(this.scriptPath=this.plugin.settings.scriptFolderPath,app.vault.getAbstractFileByPath(this.scriptPath))return app.vault.getFiles().filter((e=>e.path.startsWith(this.scriptPath)&&"md"===e.extension));this.scriptPath=null}loadScripts(){var e;null===(e=this.getListofScripts())||void 0===e||e.forEach((e=>this.loadScript(e)))}getScriptName(e){let t="",A="";e instanceof obsidian_module.TFile?(t=e.basename,A=e.path):(t=splitFolderAndFilename(e).basename,A=e);const i=A.split(`${this.scriptPath}/`)[1],n=i.lastIndexOf("/");return n>-1?i.substring(0,n+1)+t:t}async addScriptIconToMap(e,t){const A=getIMGFilename(e,"svg"),i=app.vault.getAbstractFileByPath(A),n=i&&i instanceof obsidian_module.TFile?await app.vault.read(i):null;this.scriptIconMap=Object.assign({},this.scriptIconMap);const a=splitFolderAndFilename(t);this.scriptIconMap[e]={name:a.filename,group:"/"===a.folderpath?"":a.folderpath,svgString:n},this.updateToolPannels()}loadScript(e){if("md"!==e.extension)return;const t=this.getScriptName(e);this.addScriptIconToMap(e.path,t),this.plugin.addCommand({id:t,name:`(Script) ${t}`,checkCallback:A=>{if(A)return Boolean(app.workspace.getActiveViewOfType(ExcalidrawView));const i=app.workspace.getActiveViewOfType(ExcalidrawView);return!!i&&((async()=>{const A=await app.vault.read(e);A&&this.executeScript(i,A,t,e)})(),!0)}})}unloadScripts(){const e=app.vault.getFiles().filter((e=>e.path.startsWith(this.scriptPath)));e.forEach((e=>{this.unloadScript(this.getScriptName(e),e.path)}))}unloadScript(e,t){if(!t.endsWith(".md"))return;delete this.scriptIconMap[t],this.scriptIconMap=Object.assign({},this.scriptIconMap),this.updateToolPannels();const A=`${PLUGIN_ID}:${e}`;app.commands.commands[A]&&delete app.commands.commands[A]}async executeScript(e,t,A,i){if(!e||!t||!A)return;this.plugin.ea.reset(),this.plugin.ea.setView(e),this.plugin.ea.activeScript=A;const n=Object.getPrototypeOf((async()=>{})).constructor;let a=null;return a=await new n("ea","utils",t)(this.plugin.ea,{inputPrompt:(t,A,i,n,a,r,s,o)=>ScriptEngine.inputPrompt(e,this.plugin,app,t,A,i,n,a,r,s,o),suggester:(e,t,A,i)=>ScriptEngine.suggester(app,e,t,A,i),scriptFile:i}),this.plugin.ea.activeScript=null,a}updateToolPannels(){app.workspace.getLeavesOfType("excalidraw").forEach((e=>{var t,A;null===(A=null===(t=e.view.toolsPanelRef)||void 0===t?void 0:t.current)||void 0===A||A.updateScriptIconMap(this.scriptIconMap)}))}static async inputPrompt(e,t,A,i,n,a,r,s,o,l,c){try{return await GenericInputPrompt.Prompt(e,t,A,i,n,a,r,s,o,l,c)}catch(e){return}}static async suggester(e,t,A,i,n){try{return await GenericSuggester.Suggest(e,t,A,i,n)}catch(e){return}}}var t$c={d:(e,t)=>{for(var A in t)t$c.o(t,A)&&!t$c.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},r$e={};t$c.d(r$e,{QA:()=>w$1,ZP:()=>j$1,qt:()=>x$1,MX:()=>$});const e$d={red:"hsl(0, 100%, 50%)",orange:"hsl(30, 100%, 50%)",yellow:"hsl(60, 100%, 50%)","lime green":"hsl(90, 100%, 50%)",green:"hsl(120, 100%, 50%)","blue green":"hsl(150, 100%, 50%)",cyan:"hsl(180, 100%, 50%)","sky blue":"hsl(210, 100%, 50%)",blue:"hsl(240, 100%, 50%)",purple:"hsl(270, 100%, 50%)",magenta:"hsl(300, 100%, 50%)",pink:"hsl(330, 100%, 50%)"};function s$a(e,t,A){return Math.max(e,Math.min(t,A))}function n$c(e,t){return+e.toFixed(t>=0?t:0)}function a$c(e){const t=e%360;return t<0?t+360:t}function i$a(e){return void 0!==e?s$a(0,e,1):1}function o$b(e){return Math.floor(Math.random()*e)}function h$4(e){var t;const{Cmin:A,Cmax:i,H:n,delta:a}=function(e){const[t,A,i]=Object.values(e).map((e=>e/255)),n=Math.max(t,A,i),a=Math.min(t,A,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===t?(A-i)/r%6:n===A?(i-t)/r+2:(t-A)/r+4,delta:r}}(e),r=(i+A)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$c(60*n),s:100*s,l:100*r,a:null!==(t=e.a)&&void 0!==t?t:1}}function u$8(e){const{h:t,s:A,l:i,a:n}=e,a=i/100,r=A/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(t/60%2-1)),l=a-s/2,c=t<60||300<=t&&t<360?s:120<=t&&t<240?0:o,d=240<=t&&t<360?0:60<=t&&t<180?s:o,h=t<120?0:180<=t&&t<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=n?n:1}}function l$5(e){const[t,A,i,n]=Object.values(e).map((e=>parseInt(e,16)));return{r:t,g:A,b:i,a:n?n/255:1}}const c$a=/^#?([\da-f])([\da-f])([\da-f])([\da-f])?$|^#?([\da-f]{2})([\da-f]{2})([\da-f]{2})?([\da-f]{2})?$/gi,f$3=/hsla?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function d$2({h:e,s:t,l:A,a:i}){return[u$8({h:a$c(e),s:s$a(0,t,100),l:s$a(0,A,100),a:i$a(i)}),"hsl"]}const g$2=/rgba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b$5({r:e,g:t,b:A,a:i}){return[{r:s$a(0,e,255),g:s$a(0,t,255),b:s$a(0,A,255),a:i$a(i)},"rgb"]}var p$3,v$2,m$1=function(e,t,A,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(e,A):n?n.value=A:t.set(e,A),A},y$1=function(e,t,A,i){if("a"===A&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===A?i:"a"===A?i.call(e):i?i.value:t.get(e)};class w$1{constructor(e){var t,A;p$3.set(this,{r:0,g:0,b:0,a:1}),v$2.set(this,"rgb");const i=w$1.Parsers.map((t=>t(e))).find((e=>"invalid"!==e[1]));i?(t=this,A=this,[{set value(e){m$1(t,p$3,e,"f")}}.value,{set value(e){m$1(A,v$2,e,"f")}}.value]=i):m$1(this,v$2,"invalid","f")}get red(){return y$1(this,p$3,"f").r}get blue(){return y$1(this,p$3,"f").b}get green(){return y$1(this,p$3,"f").g}get alpha(){return y$1(this,p$3,"f").a}get hue(){return h$4(y$1(this,p$3,"f")).h}get saturation(){return h$4(y$1(this,p$3,"f")).s}get lightness(){return h$4(y$1(this,p$3,"f")).l}get format(){return y$1(this,v$2,"f")}isValid(){return"invalid"!==y$1(this,v$2,"f")}rgba(){return y$1(this,p$3,"f")}hsla(){return h$4(y$1(this,p$3,"f"))}hexa({round:e=!1}={}){return function(e,t=!1){let{r:A,g:i,b:n,a:a}=e;a&&(a*=255),t&&([A,i,n,a]=[A,i,n,a].map((e=>e&&Math.round(e))));const[r,s,o,l]=[A,i,n,null!=a?a:255].map((e=>e.toString(16).padStart(2,"0").toUpperCase()));return{r:r,g:s,b:o,a:l}}(y$1(this,p$3,"f"),e)}stringRGB({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(y$1(this,p$3,"f")).map(((e,A)=>n$c(e,t[A])));return e?`rgba(${A}, ${i}, ${n}, ${a})`:`rgb(${A}, ${i}, ${n})`}stringHEX({alpha:e=!0}={}){const[t,A,i,n]=Object.values(this.hexa({round:!0}));return`#${t}${A}${i}${e?n:""}`}stringHSL({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.hsla()).map(((e,A)=>n$c(e,t[A])));return e?`hsla(${A}, ${i}%, ${n}%, ${a})`:`hsl(${A}, ${i}%, ${n}%)`}hueTo(e){var t;const{h:A,s:i,l:n,a:a}=this.hsla(),r="number"==typeof e?a$c(e):Number(null!==(t=e$d[e].match(/\d{1,3}/))&&void 0!==t?t:A);return m$1(this,p$3,u$8({h:r,s:i,l:n,a:a}),"f"),this}hueBy(e){const{h:t,s:A,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:a$c(t+e),s:A,l:i,a:n}),"f"),this}saturationTo(e){const{h:t,l:A,a:i}=this.hsla();return m$1(this,p$3,u$8({h:t,s:s$a(0,e,100),l:A,a:i}),"f"),this}saturateBy(e){const{h:t,s:A,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:t,s:s$a(0,A+e,100),l:i,a:n}),"f"),this}desaturateBy(e){return this.saturateBy(-1*e)}lightnessTo(e){const{h:t,s:A,a:i}=this.hsla();return m$1(this,p$3,u$8({h:t,s:A,l:s$a(0,e,100),a:i}),"f"),this}lighterBy(e){const{h:t,s:A,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:t,s:A,l:s$a(0,i+e,100),a:n}),"f"),this}darkerBy(e){return this.lighterBy(-1*e)}alphaTo(e){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,e,1)}),"f"),this}alphaBy(e){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,y$1(this,p$3,"f").a+e,1)}),"f"),this}invert({alpha:e=!1}={}){const{r:t,g:A,b:i,a:n}=y$1(this,p$3,"f");return m$1(this,p$3,{r:255-t,g:255-A,b:255-i,a:e?1-n:n},"f"),this}grayscale(){return this.desaturateBy(100)}rotate(e){return this.hueBy(e)}}function $(){return new w$1({r:o$b(255),g:o$b(255),b:o$b(255),a:Math.random()})}function x$1(e){(e=e.filter(((e,t,A)=>A.indexOf(e)===t))).forEach((e=>e(w$1)))}p$3=new WeakMap,v$2=new WeakMap,w$1.Parsers=[function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:t,g:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i&&"number"==typeof t}(e))return b$5(e);if("string"==typeof e){g$2.lastIndex=0;const t=g$2.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<3?2.55:.01):+e));return b$5({r:e,g:A,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:t,g:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i&&"string"==typeof t}(e))return[l$5(e),"hex"];if("string"==typeof e){c$a.lastIndex=0;const t=c$a.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map((e=>1===e.length?e.repeat(2):e));return[l$5({r:e,g:A,b:i,a:null!=n?n:"FF"}),"hex"]}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:t,s:A,l:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return d$2(e);if("string"==typeof e){f$3.lastIndex=0;const t=f$3.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(0===t?3.59:t<3?1:.01):+e));return d$2({h:e,s:A,l:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}];const j$1=e=>new w$1(e);r$e.QA;var O$1=r$e.ZP,B=r$e.qt;r$e.MX;var e$c={d:(e,t)=>{for(var A in t)e$c.o(t,A)&&!e$c.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},a$b={};function t$b(e){const t=e%360;return t<0?t+360:t}e$c.d(a$b,{Z:()=>n$b});const n$b=e=>{e.prototype.harmony=function({type:t="analogous",effect:A="tones",amount:i=5}={}){const{h:n,s:a,l:r,a:s}=this.hsla();switch("monochromatic"===t&&(o=i,i=Math.max(2,Math.min(o,10))),t){case"analogous":return[-30,0,30].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"complementary":return[0,180].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"split-complementary":return[0,150,210].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"double-split-complementary":return[-30,0,30,150,210].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"triad":return[0,120,240].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"rectangle":return[0,60,180,240].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"square":return[0,90,180,270].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"monochromatic":{const t="tones"===A?a:r;let o=("tints"===A?100-t:t)/i;o="tints"===A?o:-1*o;const l=[t];for(let e=0;enew e({h:n,s:t,l:r,a:s}))):l.map((t=>new e({h:n,s:a,l:t,a:s})))}}var o}};var r$d=a$b.Z,a$a={d:(e,t)=>{for(var A in t)a$a.o(t,A)&&!a$a.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},t$a={};a$a.d(t$a,{Z:()=>k});const e$b=6/29,n$a=Math.pow(e$b,3),c$9=Math.pow(29/3,3),r$c={x:.96422,y:1,z:.82521};function u$7(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function s$9(e,t,A){return Math.max(e,Math.min(t,A))}function o$a(e){const t=e%360;return t<0?t+360:t}function l$4(e){const[t,A,i]=Object.values(e).map((e=>e/255)),n=Math.max(t,A,i),a=Math.min(t,A,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===t?(A-i)/r%6:n===A?(i-t)/r+2:(t-A)/r+4,delta:r}}function b$4(e){var t;const{Cmin:A,Cmax:i,H:n,delta:a}=l$4(e),r=(i+A)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:o$a(60*n),s:100*s,l:100*r,a:null!==(t=e.a)&&void 0!==t?t:1}}function h$3(e){var t;const{Cmax:A,H:i,delta:n}=l$4(e),a=0===n?0:n/A;return{h:o$a(60*i),s:100*a,v:100*A,a:null!==(t=e.a)&&void 0!==t?t:1}}function v$1(e){const{h:t,a:A}=b$4(e),{r:i,g:n,b:a}=e;return{h:t,w:Math.min(i,n,a)/2.55,b:100*(1-Math.max(i,n,a)/255),a:A}}function i$9(e){const[t,A,i]=u$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=u$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}function m(e){const t=Object.values(i$9(e)).map(((e,t)=>e/(100*Object.values(r$c)[t]))).map((e=>e>n$a?Math.cbrt(e):(c$9*e+16)/116));return{l:116*t[1]-16,a:500*(t[0]-t[1]),b:200*(t[1]-t[2]),alpha:e.a}}function p$2(e){const{l:t,a:A,b:i}=m(e),n=180*Math.atan2(i,A)/Math.PI;return{l:t,c:Math.sqrt(Math.pow(A,2)+Math.pow(i,2)),h:o$a(n),a:e.a}}function f$2(e){const[t,A,i]=Object.values(i$9(e)).map((e=>e/100)),n=A/r$c.y,a=t&&A&&i?t+15*A+3*i:19,r=4*t/a,s=9*A/a,o=r$c.x+15*r$c.y+3*r$c.z,l=4*r$c.x/o,c=9*r$c.y/o;let d=n>n$a?116*Math.cbrt(n)-16:c$9*n,h=13*d*(r-l),u=13*d*(s-c);return d===Number(-0)&&(d=0),h===Number(-0)&&(h=0),u===Number(-0)&&(u=0),{l:d,u:h,v:u,a:e.a}}function M(e){const{x:t,y:A,z:i}=i$9(e),[n,a,r]=u$7([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[t,A,i]);return{u:n,v:a,w:r,a:e.a}}function w(e){let{r:t,g:A,b:i}=e;const n=Math.min(t,A,i);[t,A,i]=[t,A,i].map((e=>e-n));const a=Math.max(t,A,i);let r=Math.min(t,A);t-=r,A-=r,i&&A&&(i/=2,A/=2),r+=A,i+=A;const s=Math.max(t,r,i);if(s){const e=a/s;[t,r,i]=[t,r,i].map((t=>t*e))}return[t,r,i]=[t,r,i].map((e=>e+n)),{r:t,y:r,b:i,a:e.a}}function O(e){const{r:t,g:A,b:i,a:n}=e,a=1-Math.max(t,A,i)/255,[r,s,o]=1===a?[0,0,0]:[t,A,i].map((e=>100*(1-e/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:n}}function j(e){const{h:t,s:A,v:i,a:n}=e,a=i/100,r=a*(A/100),s=r*(1-Math.abs(t/60%2-1)),o=a-r,l=t<60||300<=t&&t<360?r:120<=t&&t<240?0:s,c=240<=t&&t<360?0:60<=t&&t<180?r:s,d=t<120?0:180<=t&&t<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=n?n:1}}function x(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=u$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=u$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return s$9(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}function y(e){const{l:t,a:A,b:i}=e,n=(t+16)/116,a=n+A/500,r=n-i/200,s=Object.values(r$c),[o,l,c]=[a,n,r].map(((e,t)=>(e>e$b?Math.pow(e,3):3*Math.pow(e$b,2)*(e-4/29))*s[t]*100));return x({x:o,y:l,z:c,a:e.alpha})}const k=e=>{e.prototype.mix=function({color:t="#fff",ratio:A=.5,colorspace:i="luv"}={}){const n=this.rgba(),a=(t instanceof e?t:new e(t)).rgba();let r,s;switch(A=s$9(0,A,1),i){case"hsl":r=Object.values(b$4(n)),s=Object.values(b$4(a));break;case"hsv":r=Object.values(h$3(n)),s=Object.values(h$3(a));break;case"hwb":r=Object.values(v$1(n)),s=Object.values(v$1(a));break;case"lab":r=Object.values(m(n)),s=Object.values(m(a));break;case"lch":r=Object.values(p$2(n)),s=Object.values(p$2(a));break;case"luv":r=Object.values(f$2(n)),s=Object.values(f$2(a));break;case"ryb":r=Object.values(w(n)),s=Object.values(w(a));break;case"uvw":r=Object.values(M(n)),s=Object.values(M(a));break;case"xyz":r=Object.values(i$9(n)),s=Object.values(i$9(a));break;case"cmyk":r=Object.values(O(n)),s=Object.values(O(a));break;default:r=Object.values(n),s=Object.values(a)}const[o,l,c,d,h]=r.map(((e,t)=>r[t]*(1-A)+s[t]*A));switch(i){case"hsl":return new e(function(e){const{h:t,s:A,l:i,a:n}=e,a=i/100,r=A/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(t/60%2-1)),l=a-s/2,c=t<60||300<=t&&t<360?s:120<=t&&t<240?0:o,d=240<=t&&t<360?0:60<=t&&t<180?s:o,h=t<120?0:180<=t&&t<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=n?n:1}}({h:o,s:l,l:c,a:d}));case"hsv":return new e(j({h:o,s:l,v:c,a:d}));case"hwb":return new e(function(e){const{h:t,b:A,w:i,a:n}=e;return j({h:t,s:100===A?0:100-i/(100-A)*100,v:100-A,a:n})}({h:o,w:l,b:c,a:d}));case"lab":return new e(y({l:o,a:l,b:c,alpha:d}));case"lch":return new e(function(e){const{l:t,c:A,h:i}=e;return y({l:t,a:A*Math.cos(i*Math.PI/180),b:A*Math.sin(i*Math.PI/180),alpha:e.a})}({l:o,c:l,h:c,a:d}));case"luv":return new e(function(e){const{l:t,u:A,v:i}=e,n=t>c$9*n$a?Math.pow((t+16)/116,3):t/c$9,a=r$c.x+15*r$c.y+3*r$c.z,r=(52*t/(A&&t?A+13*t*(4*r$c.x/a):1)-1)/3,s=-5*n,o=n*(39*t/(i&&t?i+13*t*(9*r$c.y/a):1)-5),l=r===-1/3?o-s:(o-s)/(r- -1/3);return x({x:100*l,y:100*n,z:100*(r*l+s),a:e.a})}({l:o,u:l,v:c,a:d}));case"ryb":return new e(function(e){let{r:t,y:A,b:i}=e;const n=Math.min(t,A,i);[t,A,i]=[t,A,i].map((e=>e-n));const a=Math.max(t,A,i);let r=Math.min(A,i);A-=r,i-=r,i&&r&&(i*=2,r*=2),t+=A,r+=A;const s=Math.max(t,r,i);if(s){const e=a/s;[t,r,i]=[t,r,i].map((t=>t*e))}return[t,r,i]=[t,r,i].map((e=>e+n)),{r:t,g:r,b:i,a:e.a}}({r:o,y:l,b:c,a:d}));case"uvw":return new e(function(e){const{u:t,v:A,w:i}=e,[n,a,r]=u$7([[1.5,0,0],[0,1,0],[1.5,-3,2]],[t,A,i]);return x({x:n,y:a,z:r,a:e.a})}({u:o,v:l,w:c,a:d}));case"xyz":return new e(x({x:o,y:l,z:c,a:d}));case"cmyk":return new e(function(e){const{c:t,m:A,y:i,k:n,a:a}=e,[r,s,o]=[t,A,i].map((e=>255*(1-e/100)*(1-n/100)));return{r:r,g:s,b:o,a:a}}({c:o,m:l,y:c,k:d,a:h}));default:return new e({r:o,g:l,b:c,a:d})}}};var z=t$a.Z,r$b={d:(e,t)=>{for(var A in t)r$b.o(t,A)&&!r$b.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},b$3={};r$b.d(b$3,{Z:()=>n$9});const g$1=["rgb(0,0,0)","rgb(0,0,51)","rgb(0,0,102)","rgb(0,0,153)","rgb(0,0,204)","rgb(0,0,255)","rgb(0,51,0)","rgb(0,51,51)","rgb(0,51,102)","rgb(0,51,153)","rgb(0,51,204)","rgb(0,51,255)","rgb(0,102,0)","rgb(0,102,51)","rgb(0,102,102)","rgb(0,102,153)","rgb(0,102,204)","rgb(0,102,255)","rgb(0,153,0)","rgb(0,153,51)","rgb(0,153,102)","rgb(0,153,153)","rgb(0,153,204)","rgb(0,153,255)","rgb(0,204,0)","rgb(0,204,51)","rgb(0,204,102)","rgb(0,204,153)","rgb(0,204,204)","rgb(0,204,255)","rgb(0,255,0)","rgb(0,255,51)","rgb(0,255,102)","rgb(0,255,153)","rgb(0,255,204)","rgb(0,255,255)","rgb(51,0,0)","rgb(51,0,51)","rgb(51,0,102)","rgb(51,0,153)","rgb(51,0,204)","rgb(51,0,255)","rgb(51,51,0)","rgb(51,51,51)","rgb(51,51,102)","rgb(51,51,153)","rgb(51,51,204)","rgb(51,51,255)","rgb(51,102,0)","rgb(51,102,51)","rgb(51,102,102)","rgb(51,102,153)","rgb(51,102,204)","rgb(51,102,255)","rgb(51,153,0)","rgb(51,153,51)","rgb(51,153,102)","rgb(51,153,153)","rgb(51,153,204)","rgb(51,153,255)","rgb(51,204,0)","rgb(51,204,51)","rgb(51,204,102)","rgb(51,204,153)","rgb(51,204,204)","rgb(51,204,255)","rgb(51,255,0)","rgb(51,255,51)","rgb(51,255,102)","rgb(51,255,153)","rgb(51,255,204)","rgb(51,255,255)","rgb(102,0,0)","rgb(102,0,51)","rgb(102,0,102)","rgb(102,0,153)","rgb(102,0,204)","rgb(102,0,255)","rgb(102,51,0)","rgb(102,51,51)","rgb(102,51,102)","rgb(102,51,153)","rgb(102,51,204)","rgb(102,51,255)","rgb(102,102,0)","rgb(102,102,51)","rgb(102,102,102)","rgb(102,102,153)","rgb(102,102,204)","rgb(102,102,255)","rgb(102,153,0)","rgb(102,153,51)","rgb(102,153,102)","rgb(102,153,153)","rgb(102,153,204)","rgb(102,153,255)","rgb(102,204,0)","rgb(102,204,51)","rgb(102,204,102)","rgb(102,204,153)","rgb(102,204,204)","rgb(102,204,255)","rgb(102,255,0)","rgb(102,255,51)","rgb(102,255,102)","rgb(102,255,153)","rgb(102,255,204)","rgb(102,255,255)","rgb(153,0,0)","rgb(153,0,51)","rgb(153,0,102)","rgb(153,0,153)","rgb(153,0,204)","rgb(153,0,255)","rgb(153,51,0)","rgb(153,51,51)","rgb(153,51,102)","rgb(153,51,153)","rgb(153,51,204)","rgb(153,51,255)","rgb(153,102,0)","rgb(153,102,51)","rgb(153,102,102)","rgb(153,102,153)","rgb(153,102,204)","rgb(153,102,255)","rgb(153,153,0)","rgb(153,153,51)","rgb(153,153,102)","rgb(153,153,153)","rgb(153,153,204)","rgb(153,153,255)","rgb(153,204,0)","rgb(153,204,51)","rgb(153,204,102)","rgb(153,204,153)","rgb(153,204,204)","rgb(153,204,255)","rgb(153,255,0)","rgb(153,255,51)","rgb(153,255,102)","rgb(153,255,153)","rgb(153,255,204)","rgb(153,255,255)","rgb(204,0,0)","rgb(204,0,51)","rgb(204,0,102)","rgb(204,0,153)","rgb(204,0,204)","rgb(204,0,255)","rgb(204,51,0)","rgb(204,51,51)","rgb(204,51,102)","rgb(204,51,153)","rgb(204,51,204)","rgb(204,51,255)","rgb(204,102,0)","rgb(204,102,51)","rgb(204,102,102)","rgb(204,102,153)","rgb(204,102,204)","rgb(204,102,255)","rgb(204,153,0)","rgb(204,153,51)","rgb(204,153,102)","rgb(204,153,153)","rgb(204,153,204)","rgb(204,153,255)","rgb(204,204,0)","rgb(204,204,51)","rgb(204,204,102)","rgb(204,204,153)","rgb(204,204,204)","rgb(204,204,255)","rgb(204,255,0)","rgb(204,255,51)","rgb(204,255,102)","rgb(204,255,153)","rgb(204,255,204)","rgb(204,255,255)","rgb(255,0,0)","rgb(255,0,51)","rgb(255,0,102)","rgb(255,0,153)","rgb(255,0,204)","rgb(255,0,255)","rgb(255,51,0)","rgb(255,51,51)","rgb(255,51,102)","rgb(255,51,153)","rgb(255,51,204)","rgb(255,51,255)","rgb(255,102,0)","rgb(255,102,51)","rgb(255,102,102)","rgb(255,102,153)","rgb(255,102,204)","rgb(255,102,255)","rgb(255,153,0)","rgb(255,153,51)","rgb(255,153,102)","rgb(255,153,153)","rgb(255,153,204)","rgb(255,153,255)","rgb(255,204,0)","rgb(255,204,51)","rgb(255,204,102)","rgb(255,204,153)","rgb(255,204,204)","rgb(255,204,255)","rgb(255,255,0)","rgb(255,255,51)","rgb(255,255,102)","rgb(255,255,153)","rgb(255,255,204)","rgb(255,255,255)"];function t$9(e){return(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function o$9(e,t=[0,0,0,1]){var A,i;return null!==(i=null===(A=e.match(/\d{1,3}/g))||void 0===A?void 0:A.map((e=>+e)))&&void 0!==i?i:t}const n$9=e=>{e.prototype.brightness=function({precision:e=4,percentage:t=!1}={}){const{r:A,g:i,b:n}=this.rgba(),a=+((.299*A+.587*i+.114*n)/255).toFixed(e);return t?100*a:a},e.prototype.luminance=function({precision:e=4,percentage:t=!1}={}){const{r:A,g:i,b:n}=this.rgba(),a=+(.2126*t$9(A)+.7152*t$9(i)+.0722*t$9(n)).toFixed(e);return t?100*a:a},e.prototype.contrast=function({bgColor:t="#fff",precision:A=4,ratio:i=!1}={}){const n=this.luminance(),a=(t instanceof e?t:new e(t)).luminance(),r=((Math.max(n,a)+.05)/(Math.min(n,a)+.05)).toFixed(A);return i?r+":1":+r},e.prototype.readableOn=function({bgColor:e="#fff",size:t="body",level:A="minimum"}={}){const i=this.contrast({bgColor:e});return"body"===t&&"enhanced"===A?i>=7:"large"===t&&"minimum"===A?i>=3:i>=4.5},e.prototype.equalTo=function(t="#fff"){const A=Object.values(this.rgba()),i=Object.values((t instanceof e?t:new e(t)).rgba());return A.toString()===i.toString()},e.prototype.isLight=function(){return this.brightness()>=.5},e.prototype.isDark=function(){return!this.isLight()},e.prototype.isCool=function(){const{h:e}=this.hsla();return 75<=e&&e<255},e.prototype.isWarm=function(){return!this.isCool()},e.prototype.isTinted=function(){return this.hsla().l>50},e.prototype.isShaded=function(){return this.hsla().l<50},e.prototype.isToned=function(){return this.hsla().s<100},e.prototype.isPureHue=function({reason:e=!0}={}){return this.isTinted()?!!e&&{pure:!1,reason:"tinted"}:this.isShaded()?!!e&&{pure:!1,reason:"shaded"}:this.isToned()?!!e&&{pure:!1,reason:"toned"}:!e||{pure:!0,reason:"N/A"}},e.prototype.closestCool=function(){const{h:e}=this.hsla();return this.isCool()?this:this.hueTo(e<75?75:254)},e.prototype.closestWarm=function(){const{h:e}=this.hsla();return this.isWarm()?this:this.hueTo(e<165?74:255)},e.prototype.closestPureHue=function(){const{h:t,a:A}=this.hsla(),{r:i,g:n,b:a,a:r}=function(e){const{h:t,s:A,l:i,a:n}=e,a=i/100,r=A/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(t/60%2-1)),l=a-s/2,c=t<60||300<=t&&t<360?s:120<=t&&t<240?0:o,d=240<=t&&t<360?0:60<=t&&t<180?s:o,h=t<120?0:180<=t&&t<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=n?n:1}}({h:t,s:100,l:50,a:A});return new e({r:i,g:n,b:a,a:r})},e.prototype.closestWebSafe=function(){const{r:t,g:A,b:i,a:n}=this.rgba();let[a,r,s]=new Array(3).fill(0),o=Number.POSITIVE_INFINITY,l={r:t,g:A,b:i,a:n};for(let e=0;e{for(var A in t)r$a.o(t,A)&&!r$a.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},g={};r$a.d(g,{Z:()=>a$9});const e$9={maroon:"rgb(128,0,0)","dark red":"rgb(139,0,0)",brown:"rgb(165,42,42)",firebrick:"rgb(178,34,34)",crimson:"rgb(220,20,60)",red:"rgb(255,0,0)",tomato:"rgb(255,99,71)",coral:"rgb(255,127,80)","indian red":"rgb(205,92,92)","light coral":"rgb(240,128,128)","dark salmon":"rgb(233,150,122)",salmon:"rgb(250,128,114)","light salmon":"rgb(255,160,122)","orange red":"rgb(255,69,0)","dark orange":"rgb(255,140,0)",orange:"rgb(255,165,0)",gold:"rgb(255,215,0)","dark golden rod":"rgb(184,134,11)","golden rod":"rgb(218,165,32)","pale golden rod":"rgb(238,232,170)","dark khaki":"rgb(189,183,107)",khaki:"rgb(240,230,140)",olive:"rgb(128,128,0)",yellow:"rgb(255,255,0)","yellow green":"rgb(154,205,50)","dark olive green":"rgb(85,107,47)","olive drab":"rgb(107,142,35)","lawn green":"rgb(124,252,0)","chart reuse":"rgb(127,255,0)","green yellow":"rgb(173,255,47)","dark green":"rgb(0,100,0)",green:"rgb(0,128,0)","forest green":"rgb(34,139,34)",lime:"rgb(0,255,0)","lime green":"rgb(50,205,50)","light green":"rgb(144,238,144)","pale green":"rgb(152,251,152)","dark sea green":"rgb(143,188,143)","medium spring green":"rgb(0,250,154)","spring green":"rgb(0,255,127)","sea green":"rgb(46,139,87)","medium aqua marine":"rgb(102,205,170)","medium sea green":"rgb(60,179,113)","light sea green":"rgb(32,178,170)","dark slate gray":"rgb(47,79,79)",teal:"rgb(0,128,128)","dark cyan":"rgb(0,139,139)",cyan:"rgb(0,255,255)",aqua:"rgb(0,255,255)","light cyan":"rgb(224,255,255)","dark turquoise":"rgb(0,206,209)",turquoise:"rgb(64,224,208)","medium turquoise":"rgb(72,209,204)","pale turquoise":"rgb(175,238,238)","aqua marine":"rgb(127,255,212)","powder blue":"rgb(176,224,230)","cadet blue":"rgb(95,158,160)","steel blue":"rgb(70,130,180)","corn flower blue":"rgb(100,149,237)","deep sky blue":"rgb(0,191,255)","dodger blue":"rgb(30,144,255)","light blue":"rgb(173,216,230)","sky blue":"rgb(135,206,235)","light sky blue":"rgb(135,206,250)","midnight blue":"rgb(25,25,112)",navy:"rgb(0,0,128)","dark blue":"rgb(0,0,139)","medium blue":"rgb(0,0,205)",blue:"rgb(0,0,255)","royal blue":"rgb(65,105,225)","blue violet":"rgb(138,43,226)",indigo:"rgb(75,0,130)","dark slate blue":"rgb(72,61,139)","slate blue":"rgb(106,90,205)","medium slate blue":"rgb(123,104,238)","medium purple":"rgb(147,112,219)","dark magenta":"rgb(139,0,139)","dark violet":"rgb(148,0,211)","dark orchid":"rgb(153,50,204)","medium orchid":"rgb(186,85,211)",purple:"rgb(128,0,128)",thistle:"rgb(216,191,216)",plum:"rgb(221,160,221)",violet:"rgb(238,130,238)",magenta:"rgb(255,0,255)",fuchsia:"rgb(255,0,255)",orchid:"rgb(218,112,214)","medium violet red":"rgb(199,21,133)","pale violet red":"rgb(219,112,147)","deep pink":"rgb(255,20,147)","hot pink":"rgb(255,105,180)","light pink":"rgb(255,182,193)",pink:"rgb(255,192,203)","antique white":"rgb(250,235,215)",beige:"rgb(245,245,220)",bisque:"rgb(255,228,196)","blanched almond":"rgb(255,235,205)",wheat:"rgb(245,222,179)","corn silk":"rgb(255,248,220)","lemon chiffon":"rgb(255,250,205)","light golden rod yellow":"rgb(250,250,210)","light yellow":"rgb(255,255,224)","saddle brown":"rgb(139,69,19)",sienna:"rgb(160,82,45)",chocolate:"rgb(210,105,30)",peru:"rgb(205,133,63)","sandy brown":"rgb(244,164,96)","burly wood":"rgb(222,184,135)",tan:"rgb(210,180,140)","rosy brown":"rgb(188,143,143)",moccasin:"rgb(255,228,181)","navajo white":"rgb(255,222,173)","peach puff":"rgb(255,218,185)","misty rose":"rgb(255,228,225)","lavender blush":"rgb(255,240,245)",linen:"rgb(250,240,230)","old lace":"rgb(253,245,230)","papaya whip":"rgb(255,239,213)","sea shell":"rgb(255,245,238)","mint cream":"rgb(245,255,250)","slate gray":"rgb(112,128,144)","light slate gray":"rgb(119,136,153)","light steel blue":"rgb(176,196,222)",lavender:"rgb(230,230,250)","floral white":"rgb(255,250,240)","alice blue":"rgb(240,248,255)","ghost white":"rgb(248,248,255)",honeydew:"rgb(240,255,240)",ivory:"rgb(255,255,240)",azure:"rgb(240,255,255)",snow:"rgb(255,250,250)",black:"rgb(0,0,0)","dim gray":"rgb(105,105,105)","dim grey":"rgb(105,105,105)",gray:"rgb(128,128,128)",grey:"rgb(128,128,128)","dark gray":"rgb(169,169,169)","dark grey":"rgb(169,169,169)",silver:"rgb(192,192,192)","light gray":"rgb(211,211,211)","light grey":"rgb(211,211,211)",gainsboro:"rgb(220,220,220)",gainsborough:"rgb(220,220,220)","white smoke":"rgb(245,245,245)",white:"rgb(255,255,255)",transparent:"rgba(0,0,0,0)"};function b$2(e,t=[0,0,0,1]){var A,i;return null!==(i=null===(A=e.match(/\d{1,3}/g))||void 0===A?void 0:A.map((e=>+e)))&&void 0!==i?i:t}const a$9=e=>{e.prototype.name=function({exact:e=!0}={}){const{r:t,g:A,b:i,a:n}=this.rgba();if(0===n)return"transparent";const[a,r]=[Object.keys(e$9),Object.values(e$9)];let s;if(e){const e=this.stringRGB({alpha:!1}).replace(/\s/g,"");s=a.find((t=>e$9[t]===e))}else{let e=Number.POSITIVE_INFINITY;for(let n=0;n{for(var A in t)t$8.o(t,A)&&!t$8.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},a$8={};t$8.d(a$8,{Z:()=>d$1});const n$8=6/29,r$9=Math.pow(n$8,3),o$8=Math.pow(29/3,3),e$8={x:.96422,y:1,z:.82521};function c$8(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function s$8(e,t,A){return Math.max(e,Math.min(t,A))}function u$6(e){const t=e%360;return t<0?t+360:t}function i$8(e){const{l:t,a:A,b:i}=function(e){const t=Object.values(function(e){const[t,A,i]=c$8([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=c$8([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(e)).map(((e,t)=>e/(100*Object.values(e$8)[t]))).map((e=>e>r$9?Math.cbrt(e):(o$8*e+16)/116));return{l:116*t[1]-16,a:500*(t[0]-t[1]),b:200*(t[1]-t[2]),alpha:e.a}}(e),n=180*Math.atan2(i,A)/Math.PI;return{l:t,c:Math.sqrt(Math.pow(A,2)+Math.pow(i,2)),h:u$6(n),a:e.a}}function h$2(e){const{l:t,c:A,h:i}=e;return function(e){const{l:t,a:A,b:i}=e,n=(t+16)/116,a=n+A/500,r=n-i/200,s=Object.values(e$8),[o,l,c]=[a,n,r].map(((e,t)=>(e>n$8?Math.pow(e,3):3*Math.pow(n$8,2)*(e-4/29))*s[t]*100));return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=c$8([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=c$8([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return s$8(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}({x:o,y:l,z:c,a:e.alpha})}({l:t,a:A*Math.cos(i*Math.PI/180),b:A*Math.sin(i*Math.PI/180),alpha:e.a})}const l$2=/lcha?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function p$1({l:e,c:t,h:A,a:i}){return[h$2({l:s$8(0,e,100),c:s$8(0,t,230),h:u$6(A),a:(n=i,void 0!==n?s$8(0,n,1):1)}),"lch"];var n}function f$1(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:t,c:A,h:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return p$1(e);if("string"==typeof e){l$2.lastIndex=0;const t=l$2.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(0===t?1:1===t?2.3:2===t?3.59:.01):+e));return p$1({l:e,c:A,h:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d$1=e=>{e.prototype.lcha=function(){return i$8(this.rgba())},e.prototype.stringLCH=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.lcha()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`lcha(${A}%, ${i}, ${n}, ${a})`:`lch(${A}%, ${i}, ${n})`},e.Parsers.push(f$1)};var b$1=a$8.Z,t$7={d:(e,t)=>{for(var A in t)t$7.o(t,A)&&!t$7.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$7={};t$7.d(n$7,{Z:()=>l$1});const r$8=Math.pow(6/29,3),e$7=Math.pow(29/3,3);function o$7(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function a$7(e,t,A){return Math.max(e,Math.min(t,A))}function u$5(e){const{l:t,u:A,v:i}=e,n=t>e$7*r$8?Math.pow((t+16)/116,3):t/e$7,a=(52*t/(A&&t?A+13*t*.20916005282038627:1)-1)/3,r=-5*n,s=n*(39*t/(i&&t?i+13*t*(9/18.43985):1)-5),o=a===-1/3?s-r:(s-r)/(a- -1/3);return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=o$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=o$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return a$7(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}({x:100*o,y:100*n,z:100*(a*o+r),a:e.a})}const c$7=/color\s*\(\s*luva?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$7({l:e,u:t,v:A,a:i}){return[u$5({l:a$7(0,e,100),u:a$7(-100,t,100),v:a$7(-100,A,100),a:(n=i,void 0!==n?a$7(0,n,1):1)}),"luv"];var n}function i$7(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:t,u:A,v:i}=e;return void 0!==t&&void 0!==A&&null!=i}(e))return s$7(e);if("string"==typeof e){c$7.lastIndex=0;const t=c$7.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<3?1:.01):+e));return s$7({l:e,u:A,v:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const l$1=e=>{e.prototype.luva=function(){return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=o$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=o$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(e)).map((e=>e/100)),n=A/1,a=t&&A&&i?t+15*A+3*i:19,r=4*t/a,s=9*A/a;let o=n>r$8?116*Math.cbrt(n)-16:e$7*n,l=13*o*(r-.20916005282038627),c=13*o*(s-.48807338454488514);return o===Number(-0)&&(o=0),l===Number(-0)&&(l=0),c===Number(-0)&&(c=0),{l:o,u:l,v:c,a:e.a}}(this.rgba())},e.prototype.stringLUV=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.luva()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`color(luva ${A}%, ${i}%, ${n}%, ${a})`:`color(luv ${A}%, ${i}%, ${n}%)`},e.Parsers.push(i$7)};var v=n$7.Z,t$6={d:(e,t)=>{for(var A in t)t$6.o(t,A)&&!t$6.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},a$6={};t$6.d(a$6,{Z:()=>d});const n$6=6/29,r$7=Math.pow(n$6,3),e$6=Math.pow(29/3,3),o$6={x:.96422,y:1,z:.82521};function c$6(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function s$6(e,t,A){return Math.max(e,Math.min(t,A))}function u$4(e){return void 0!==e?s$6(0,e,1):1}function i$6(e){const t=Object.values(function(e){const[t,A,i]=c$6([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=c$6([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(e)).map(((e,t)=>e/(100*Object.values(o$6)[t]))).map((e=>e>r$7?Math.cbrt(e):(e$6*e+16)/116));return{l:116*t[1]-16,a:500*(t[0]-t[1]),b:200*(t[1]-t[2]),alpha:e.a}}function l(e){const{l:t,a:A,b:i}=e,n=(t+16)/116,a=n+A/500,r=n-i/200,s=Object.values(o$6),[o,l,c]=[a,n,r].map(((e,t)=>(e>n$6?Math.pow(e,3):3*Math.pow(n$6,2)*(e-4/29))*s[t]*100));return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=c$6([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=c$6([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return s$6(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}({x:o,y:l,z:c,a:e.alpha})}const p=/laba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b({l:e,a:t,b:A,alpha:i}){return[l({l:s$6(0,e,100),a:s$6(-160,t,160),b:s$6(-160,A,160),alpha:u$4(i)}),"lab"]}function f(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:t,a:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return b(e);if("string"==typeof e){p.lastIndex=0;const t=p.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<3?1:.01):+e));return b({l:e,a:A,b:i,alpha:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d=e=>{e.prototype.laba=function(){return i$6(this.rgba())},e.prototype.stringLAB=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.laba()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`laba(${A}%, ${i}, ${n}, ${a})`:`lab(${A}%, ${i}, ${n})`},e.Parsers.push(f)};var h$1=a$6.Z,t$5={d:(e,t)=>{for(var A in t)t$5.o(t,A)&&!t$5.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$5={};function r$6(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function o$5(e,t,A){return Math.max(e,Math.min(t,A))}function e$5(e){const{u:t,v:A,w:i}=e,[n,a,r]=r$6([[1.5,0,0],[0,1,0],[1.5,-3,2]],[t,A,i]);return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=r$6([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=r$6([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return o$5(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}({x:n,y:a,z:r,a:e.a})}t$5.d(n$5,{Z:()=>s$5});const a$5=/color\s*\(\s*uvwa?\s*(\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function u$3({u:e,v:t,w:A,a:i}){return[e$5({u:o$5(0,e,200/3*.96422),v:o$5(0,t,100),w:o$5(-48.211,A,191.2605),a:(n=i,void 0!==n?o$5(0,n,1):1)}),"uvw"];var n}function c$5(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{u:t,v:A,w:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return u$3(e);if("string"==typeof e){a$5.lastIndex=0;const t=a$5.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map((e=>e.includes("%")?.01*+e.slice(0,-1):+e));return u$3({u:e,v:A,w:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const s$5=e=>{e.prototype.uvwa=function(){return function(e){const{x:t,y:A,z:i}=function(e){const[t,A,i]=r$6([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=r$6([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(e),[n,a,r]=r$6([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[t,A,i]);return{u:n,v:a,w:r,a:e.a}}(this.rgba())},e.prototype.stringUVW=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.uvwa()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`color(uvwa ${A}, ${i}, ${n}, ${a})`:`color(uvw ${A}, ${i}, ${n})`},e.Parsers.push(c$5)};var i$5=n$5.Z,t$4={d:(e,t)=>{for(var A in t)t$4.o(t,A)&&!t$4.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$4={};function r$5(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function o$4(e,t,A){return Math.max(e,Math.min(t,A))}function e$4(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=r$5([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=r$5([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return o$4(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}t$4.d(n$4,{Z:()=>u$2});const a$4=/color\s*\(\s*xyza?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$4({x:e,y:t,z:A,a:i}){return[e$4({x:o$4(0,e,96.422),y:o$4(0,t,100),z:o$4(0,A,82.521),a:(n=i,void 0!==n?o$4(0,n,1):1)}),"xyz"];var n}function c$4(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{x:t,y:A,z:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return s$4(e);if("string"==typeof e){a$4.lastIndex=0;const t=a$4.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map((e=>e.includes("%")?.01*+e.slice(0,-1):+e));return s$4({x:e,y:A,z:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$2=e=>{e.prototype.xyza=function(){return function(e){const[t,A,i]=r$5([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=r$5([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(this.rgba())},e.prototype.stringXYZ=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.xyza()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`color(xyza ${A}, ${i}, ${n}, ${a})`:`color(xyz ${A}, ${i}, ${n})`},e.Parsers.push(c$4)};var i$4=n$4.Z,t$3={d:(e,t)=>{for(var A in t)t$3.o(t,A)&&!t$3.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$3={};function r$4(e,t,A){return Math.max(e,Math.min(t,A))}function a$3(e){const t=e%360;return t<0?t+360:t}function o$3(e){const{h:t,a:A}=function(e){var t;const{Cmin:A,Cmax:i,H:n,delta:a}=function(e){const[t,A,i]=Object.values(e).map((e=>e/255)),n=Math.max(t,A,i),a=Math.min(t,A,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===t?(A-i)/r%6:n===A?(i-t)/r+2:(t-A)/r+4,delta:r}}(e),r=(i+A)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$3(60*n),s:100*s,l:100*r,a:null!==(t=e.a)&&void 0!==t?t:1}}(e),{r:i,g:n,b:a}=e;return{h:t,w:Math.min(i,n,a)/2.55,b:100*(1-Math.max(i,n,a)/255),a:A}}function e$3(e){const{h:t,b:A,w:i,a:n}=e;return function(e){const{h:t,s:A,v:i,a:n}=e,a=i/100,r=a*(A/100),s=r*(1-Math.abs(t/60%2-1)),o=a-r,l=t<60||300<=t&&t<360?r:120<=t&&t<240?0:s,c=240<=t&&t<360?0:60<=t&&t<180?r:s,d=t<120?0:180<=t&&t<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=n?n:1}}({h:t,s:100===A?0:100-i/(100-A)*100,v:100-A,a:n})}t$3.d(n$3,{Z:()=>u$1});const s$3=/hwba?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function i$3({h:e,w:t,b:A,a:i}){return[e$3({h:a$3(e),w:r$4(0,t,100),b:r$4(0,A,100),a:(n=i,void 0!==n?r$4(0,n,1):1)}),"hwb"];var n}function c$3(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:t,w:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return i$3(e);if("string"==typeof e){s$3.lastIndex=0;const t=s$3.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(0===t?3.59:t<3?1:.01):+e));return i$3({h:e,w:A,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$1=e=>{e.prototype.hwba=function(){return o$3(this.rgba())},e.prototype.stringHWB=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.hwba()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`hwba(${a$3(A)}, ${i}%, ${n}%, ${a})`:`hwb(${a$3(A)}, ${i}%, ${n}%)`},e.Parsers.push(c$3)};var h=n$3.Z,t$2={d:(e,t)=>{for(var A in t)t$2.o(t,A)&&!t$2.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$2={};function r$3(e,t,A){return Math.max(e,Math.min(t,A))}function s$2(e){const t=e%360;return t<0?t+360:t}function e$2(e){const{h:t,s:A,v:i,a:n}=e,a=i/100,r=a*(A/100),s=r*(1-Math.abs(t/60%2-1)),o=a-r,l=t<60||300<=t&&t<360?r:120<=t&&t<240?0:s,c=240<=t&&t<360?0:60<=t&&t<180?r:s,d=t<120?0:180<=t&&t<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=n?n:1}}t$2.d(n$2,{Z:()=>c$2});const a$2=/hsva?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o$2({h:e,s:t,v:A,a:i}){return[e$2({h:s$2(e),s:r$3(0,t,100),v:r$3(0,A,100),a:(n=i,void 0!==n?r$3(0,n,1):1)}),"hsv"];var n}function i$2(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:t,s:A,v:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return o$2(e);if("string"==typeof e){a$2.lastIndex=0;const t=a$2.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(0===t?3.59:t<3?1:.01):+e));return o$2({h:e,s:A,v:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const c$2=e=>{e.prototype.hsva=function(){return function(e){var t;const{Cmax:A,H:i,delta:n}=function(e){const[t,A,i]=Object.values(e).map((e=>e/255)),n=Math.max(t,A,i),a=Math.min(t,A,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===t?(A-i)/r%6:n===A?(i-t)/r+2:(t-A)/r+4,delta:r}}(e),a=0===n?0:n/A;return{h:s$2(60*i),s:100*a,v:100*A,a:null!==(t=e.a)&&void 0!==t?t:1}}(this.rgba())},e.prototype.stringHSV=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.hsva()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`hsva(${s$2(A)}, ${i}%, ${n}%, ${a})`:`hsv(${s$2(A)}, ${i}%, ${n}%)`},e.Parsers.push(i$2)};var u=n$2.Z,t$1={d:(e,t)=>{for(var A in t)t$1.o(t,A)&&!t$1.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},r$2={};function n$1(e,t,A){return Math.max(e,Math.min(t,A))}function o$1(e){let{r:t,y:A,b:i}=e;const n=Math.min(t,A,i);[t,A,i]=[t,A,i].map((e=>e-n));const a=Math.max(t,A,i);let r=Math.min(A,i);A-=r,i-=r,i&&r&&(i*=2,r*=2),t+=A,r+=A;const s=Math.max(t,r,i);if(s){const e=a/s;[t,r,i]=[t,r,i].map((t=>t*e))}return[t,r,i]=[t,r,i].map((e=>e+n)),{r:t,g:r,b:i,a:e.a}}t$1.d(r$2,{Z:()=>i$1});const a$1=/color\s*\(\s*ryba?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function e$1({r:e,y:t,b:A,a:i}){return[o$1({r:n$1(0,e,255),y:n$1(0,t,255),b:n$1(0,A,255),a:(n=i,void 0!==n?n$1(0,n,1):1)}),"ryb"];var n}function s$1(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:t,y:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return e$1(e);if("string"==typeof e){a$1.lastIndex=0;const t=a$1.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<3?2.55:.01):+e));return e$1({r:e,y:A,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i$1=e=>{e.prototype.ryba=function(){return function(e){let{r:t,g:A,b:i}=e;const n=Math.min(t,A,i);[t,A,i]=[t,A,i].map((e=>e-n));const a=Math.max(t,A,i);let r=Math.min(t,A);t-=r,A-=r,i&&A&&(i/=2,A/=2),r+=A,i+=A;const s=Math.max(t,r,i);if(s){const e=a/s;[t,r,i]=[t,r,i].map((t=>t*e))}return[t,r,i]=[t,r,i].map((e=>e+n)),{r:t,y:r,b:i,a:e.a}}(this.rgba())},e.prototype.stringRYB=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.ryba()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`color(ryba ${A}, ${i}, ${n}, ${a})`:`color(ryb ${A}, ${i}, ${n})`},e.Parsers.push(s$1)};var c$1=r$2.Z,t={d:(e,A)=>{for(var i in A)t.o(A,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:A[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n={};function e(e,t,A){return Math.max(e,Math.min(t,A))}function r$1(e){const{c:t,m:A,y:i,k:n,a:a}=e,[r,s,o]=[t,A,i].map((e=>255*(1-e/100)*(1-n/100)));return{r:r,g:s,b:o,a:a}}t.d(n,{Z:()=>i});const c=/device-cmyka?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?),?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o({c:t,m:A,y:i,k:n,a:a}){return[r$1({c:e(0,t,100),m:e(0,A,100),y:e(0,i,100),k:e(0,n,100),a:(r=a,void 0!==r?e(0,r,1):1)}),"cmyk"];var r}function a(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{c:t,m:A,y:i,k:n}=e;return void 0!==t&&void 0!==A&&void 0!==i&&void 0!==n}(e))return o(e);if("string"==typeof e){c.lastIndex=0;const t=c.exec(e);if(t){const[e,A,i,n,a]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<4?1:.01):+e));return o({c:e,m:A,y:i,k:n,a:a})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i=e=>{e.prototype.cmyka=function(){return function(e){const{r:t,g:A,b:i,a:n}=e,a=1-Math.max(t,A,i)/255,[r,s,o]=1===a?[0,0,0]:[t,A,i].map((e=>100*(1-e/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:n}}(this.rgba())},e.prototype.stringCMYK=function({alpha:e=!0,precision:t=[0,0,0,0,1]}={}){const[A,i,n,a,r]=Object.values(this.cmyka()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`device-cmyk(${A}, ${i}, ${n}, ${a}, ${r})`:`device-cmyk(${A}, ${i}, ${n}, ${a})`},e.Parsers.push(a)};var s=n.Z;class ExcalidrawScene{constructor(e=[]){this.type="excalidraw",this.version=2,this.source=GITHUB_RELEASES+PLUGIN_VERSION,this.elements=[],this.elements=e}toExJSON(){return Object.assign(Object.assign({},this),{elements:this.elements.map((e=>Object.assign({},e)))})}}var ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array;function create$1(){var e=new ARRAY_TYPE(16);return ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function clone(e){var t=new ARRAY_TYPE(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function fromValues$1(e,t,A,i,n,a,r,s,o,l,c,d,h,u,g,p){var m=new ARRAY_TYPE(16);return m[0]=e,m[1]=t,m[2]=A,m[3]=i,m[4]=n,m[5]=a,m[6]=r,m[7]=s,m[8]=o,m[9]=l,m[10]=c,m[11]=d,m[12]=h,m[13]=u,m[14]=g,m[15]=p,m}function multiply(e,t,A){var i=t[0],n=t[1],a=t[2],r=t[3],s=t[4],o=t[5],l=t[6],c=t[7],d=t[8],h=t[9],u=t[10],g=t[11],p=t[12],m=t[13],w=t[14],f=t[15],E=A[0],B=A[1],b=A[2],v=A[3];return e[0]=E*i+B*s+b*d+v*p,e[1]=E*n+B*o+b*h+v*m,e[2]=E*a+B*l+b*u+v*w,e[3]=E*r+B*c+b*g+v*f,E=A[4],B=A[5],b=A[6],v=A[7],e[4]=E*i+B*s+b*d+v*p,e[5]=E*n+B*o+b*h+v*m,e[6]=E*a+B*l+b*u+v*w,e[7]=E*r+B*c+b*g+v*f,E=A[8],B=A[9],b=A[10],v=A[11],e[8]=E*i+B*s+b*d+v*p,e[9]=E*n+B*o+b*h+v*m,e[10]=E*a+B*l+b*u+v*w,e[11]=E*r+B*c+b*g+v*f,E=A[12],B=A[13],b=A[14],v=A[15],e[12]=E*i+B*s+b*d+v*p,e[13]=E*n+B*o+b*h+v*m,e[14]=E*a+B*l+b*u+v*w,e[15]=E*r+B*c+b*g+v*f,e}function create(){var e=new ARRAY_TYPE(3);return ARRAY_TYPE!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function fromValues(e,t,A){var i=new ARRAY_TYPE(3);return i[0]=e,i[1]=t,i[2]=A,i}function transformMat4(e,t,A){var i=t[0],n=t[1],a=t[2],r=A[3]*i+A[7]*n+A[11]*a+A[15];return r=r||1,e[0]=(A[0]*i+A[4]*n+A[8]*a+A[12])/r,e[1]=(A[1]*i+A[5]*n+A[9]*a+A[13])/r,e[2]=(A[2]*i+A[6]*n+A[10]*a+A[14])/r,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)}),create();const random=new Random(Date.now()),randomInteger=()=>Math.floor(random.next()*2**31),randomId=()=>nanoid$1();function dimensionsFromPoints(e){const t=e.map((([e])=>e)),A=e.map((([,e])=>e)),i=Math.min(...t),n=Math.min(...A);return[Math.max(...t)-i,Math.max(...A)-n]}function getWindingOrder(e){return e.reduce(((e,[t,A],i,n)=>{const a=n[i+1];return((a?a[0]:0)-t)*((a?a[1]:0)+A)+e}),0)>0?"clockwise":"counterclockwise"}var chromaExports={},chroma$1={get exports(){return chromaExports},set exports(e){chromaExports=e}};chroma$1.exports=function(){for(var e=function(e,t,A){return void 0===t&&(t=0),void 0===A&&(A=1),eA?A:e},t=e,A={},i=0,n=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];i255)&&(e._clipped=!0),e[A]=t(e[A],0,255)):3===A&&(e[A]=t(e[A],0,1));return e},limit:e,type:r,unpack:function(e,t){return void 0===t&&(t=null),e.length>=3?Array.prototype.slice.call(e):"object"==s(e[0])&&t?t.split("").filter((function(t){return void 0!==e[0][t]})).map((function(t){return e[0][t]})):e[0]},last:function(e){if(e.length<2)return null;var t=e.length-1;return"string"==o(e[t])?e[t].toLowerCase():null},PI:l,TWOPI:2*l,PITHIRD:l/3,DEG2RAD:l/180,RAD2DEG:180/l},d={format:{},autodetect:[]},h=c.last,u=c.clip_rgb,g=c.type,p=d,m=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=this;if("object"===g(e[0])&&e[0].constructor&&e[0].constructor===this.constructor)return e[0];var i=h(e),n=!1;if(!i){n=!0,p.sorted||(p.autodetect=p.autodetect.sort((function(e,t){return t.p-e.p})),p.sorted=!0);for(var a=0,r=p.autodetect;a4?e[4]:1;return 1===a?[0,0,0,r]:[A>=1?0:255*(1-A)*(1-a),i>=1?0:255*(1-i)*(1-a),n>=1?0:255*(1-n)*(1-a),r]},F=E,x=w,S=d,T=c.unpack,I=c.type,k=v;x.prototype.cmyk=function(){return k(this._rgb)},F.cmyk=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(x,[null].concat(e,["cmyk"])))},S.format.cmyk=y,S.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=T(e,"cmyk"),"array"===I(e)&&4===e.length)return"cmyk"}});var U=c.unpack,Q=c.last,O=function(e){return Math.round(100*e)/100},M=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=U(e,"hsla"),i=Q(e)||"lsa";return A[0]=O(A[0]||0),A[1]=O(100*A[1])+"%",A[2]=O(100*A[2])+"%","hsla"===i||A.length>3&&A[3]<1?(A[3]=A.length>3?A[3]:1,i="hsla"):A.length=3,i+"("+A.join(",")+")"},L=c.unpack,D=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=(e=L(e,"rgba"))[0],i=e[1],n=e[2];A/=255,i/=255,n/=255;var a,r,s=Math.min(A,i,n),o=Math.max(A,i,n),l=(o+s)/2;return o===s?(a=0,r=Number.NaN):a=l<.5?(o-s)/(o+s):(o-s)/(2-o-s),A==o?r=(i-n)/(o-s):i==o?r=2+(n-A)/(o-s):n==o&&(r=4+(A-i)/(o-s)),(r*=60)<0&&(r+=360),e.length>3&&void 0!==e[3]?[r,a,l,e[3]]:[r,a,l]},N=c.unpack,H=c.last,R=M,P=D,V=Math.round,K=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=N(e,"rgba"),i=H(e)||"rgb";return"hsl"==i.substr(0,3)?R(P(A),i):(A[0]=V(A[0]),A[1]=V(A[1]),A[2]=V(A[2]),("rgba"===i||A.length>3&&A[3]<1)&&(A[3]=A.length>3?A[3]:1,i="rgba"),i+"("+A.slice(0,"rgb"===i?3:4).join(",")+")")},G=c.unpack,W=Math.round,z=function(){for(var e,t=[],A=arguments.length;A--;)t[A]=arguments[A];var i,n,a,r=(t=G(t,"hsl"))[0],s=t[1],o=t[2];if(0===s)i=n=a=255*o;else{var l=[0,0,0],c=[0,0,0],d=o<.5?o*(1+s):o+s-o*s,h=2*o-d,u=r/360;l[0]=u+1/3,l[1]=u,l[2]=u-1/3;for(var g=0;g<3;g++)l[g]<0&&(l[g]+=1),l[g]>1&&(l[g]-=1),6*l[g]<1?c[g]=h+6*(d-h)*l[g]:2*l[g]<1?c[g]=d:3*l[g]<2?c[g]=h+(d-h)*(2/3-l[g])*6:c[g]=h;i=(e=[W(255*c[0]),W(255*c[1]),W(255*c[2])])[0],n=e[1],a=e[2]}return t.length>3?[i,n,a,t[3]]:[i,n,a,1]},X=z,Y=d,j=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,J=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,Z=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,_=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,q=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,$=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,ee=Math.round,te=function(e){var t;if(e=e.toLowerCase().trim(),Y.format.named)try{return Y.format.named(e)}catch(e){}if(t=e.match(j)){for(var A=t.slice(1,4),i=0;i<3;i++)A[i]=+A[i];return A[3]=1,A}if(t=e.match(J)){for(var n=t.slice(1,5),a=0;a<4;a++)n[a]=+n[a];return n}if(t=e.match(Z)){for(var r=t.slice(1,4),s=0;s<3;s++)r[s]=ee(2.55*r[s]);return r[3]=1,r}if(t=e.match(_)){for(var o=t.slice(1,5),l=0;l<3;l++)o[l]=ee(2.55*o[l]);return o[3]=+o[3],o}if(t=e.match(q)){var c=t.slice(1,4);c[1]*=.01,c[2]*=.01;var d=X(c);return d[3]=1,d}if(t=e.match($)){var h=t.slice(1,4);h[1]*=.01,h[2]*=.01;var u=X(h);return u[3]=+t[4],u}};te.test=function(e){return j.test(e)||J.test(e)||Z.test(e)||_.test(e)||q.test(e)||$.test(e)};var Ae=E,ie=w,ne=d,ae=c.type,re=K,se=te;ie.prototype.css=function(e){return re(this._rgb,e)},Ae.css=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(ie,[null].concat(e,["css"])))},ne.format.css=se,ne.autodetect.push({p:5,test:function(e){for(var t=[],A=arguments.length-1;A-- >0;)t[A]=arguments[A+1];if(!t.length&&"string"===ae(e)&&se.test(e))return"css"}});var oe=w,le=E,ce=c.unpack;d.format.gl=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=ce(e,"rgba");return A[0]*=255,A[1]*=255,A[2]*=255,A},le.gl=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(oe,[null].concat(e,["gl"])))},oe.prototype.gl=function(){var e=this._rgb;return[e[0]/255,e[1]/255,e[2]/255,e[3]]};var de=c.unpack,he=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i=de(e,"rgb"),n=i[0],a=i[1],r=i[2],s=Math.min(n,a,r),o=Math.max(n,a,r),l=o-s,c=100*l/255,d=s/(255-l)*100;return 0===l?A=Number.NaN:(n===o&&(A=(a-r)/l),a===o&&(A=2+(r-n)/l),r===o&&(A=4+(n-a)/l),(A*=60)<0&&(A+=360)),[A,c,d]},ue=c.unpack,ge=Math.floor,pe=function(){for(var e,t,A,i,n,a,r=[],s=arguments.length;s--;)r[s]=arguments[s];var o,l,c,d=(r=ue(r,"hcg"))[0],h=r[1],u=r[2];u*=255;var g=255*h;if(0===h)o=l=c=u;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var p=ge(d/=60),m=d-p,w=u*(1-h),f=w+g*(1-m),E=w+g*m,B=w+g;switch(p){case 0:o=(e=[B,E,w])[0],l=e[1],c=e[2];break;case 1:o=(t=[f,B,w])[0],l=t[1],c=t[2];break;case 2:o=(A=[w,B,E])[0],l=A[1],c=A[2];break;case 3:o=(i=[w,f,B])[0],l=i[1],c=i[2];break;case 4:o=(n=[E,w,B])[0],l=n[1],c=n[2];break;case 5:o=(a=[B,w,f])[0],l=a[1],c=a[2]}}return[o,l,c,r.length>3?r[3]:1]},me=c.unpack,we=c.type,fe=E,Ee=w,Be=d,be=he;Ee.prototype.hcg=function(){return be(this._rgb)},fe.hcg=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(Ee,[null].concat(e,["hcg"])))},Be.format.hcg=pe,Be.autodetect.push({p:1,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=me(e,"hcg"),"array"===we(e)&&3===e.length)return"hcg"}});var ve=c.unpack,Ce=c.last,ye=Math.round,Fe=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=ve(e,"rgba"),i=A[0],n=A[1],a=A[2],r=A[3],s=Ce(e)||"auto";void 0===r&&(r=1),"auto"===s&&(s=r<1?"rgba":"rgb");var o="000000"+((i=ye(i))<<16|(n=ye(n))<<8|(a=ye(a))).toString(16);o=o.substr(o.length-6);var l="0"+ye(255*r).toString(16);switch(l=l.substr(l.length-2),s.toLowerCase()){case"rgba":return"#"+o+l;case"argb":return"#"+l+o;default:return"#"+o}},xe=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,Se=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,Te=function(e){if(e.match(xe)){4!==e.length&&7!==e.length||(e=e.substr(1)),3===e.length&&(e=(e=e.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]);var t=parseInt(e,16);return[t>>16,t>>8&255,255&t,1]}if(e.match(Se)){5!==e.length&&9!==e.length||(e=e.substr(1)),4===e.length&&(e=(e=e.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]);var A=parseInt(e,16);return[A>>24&255,A>>16&255,A>>8&255,Math.round((255&A)/255*100)/100]}throw new Error("unknown hex color: "+e)},Ie=E,ke=w,Ue=c.type,Qe=d,Oe=Fe;ke.prototype.hex=function(e){return Oe(this._rgb,e)},Ie.hex=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(ke,[null].concat(e,["hex"])))},Qe.format.hex=Te,Qe.autodetect.push({p:4,test:function(e){for(var t=[],A=arguments.length-1;A-- >0;)t[A]=arguments[A+1];if(!t.length&&"string"===Ue(e)&&[3,4,5,6,7,8,9].indexOf(e.length)>=0)return"hex"}});var Me=c.unpack,Le=c.TWOPI,De=Math.min,Ne=Math.sqrt,He=Math.acos,Re=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i=Me(e,"rgb"),n=i[0],a=i[1],r=i[2],s=De(n/=255,a/=255,r/=255),o=(n+a+r)/3,l=o>0?1-s/o:0;return 0===l?A=NaN:(A=(n-a+(n-r))/2,A/=Ne((n-a)*(n-a)+(n-r)*(a-r)),A=He(A),r>a&&(A=Le-A),A/=Le),[360*A,l,o]},Pe=c.unpack,Ve=c.limit,Ke=c.TWOPI,Ge=c.PITHIRD,We=Math.cos,ze=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i,n,a=(e=Pe(e,"hsi"))[0],r=e[1],s=e[2];return isNaN(a)&&(a=0),isNaN(r)&&(r=0),a>360&&(a-=360),a<0&&(a+=360),(a/=360)<1/3?i=1-((n=(1-r)/3)+(A=(1+r*We(Ke*a)/We(Ge-Ke*a))/3)):a<2/3?n=1-((A=(1-r)/3)+(i=(1+r*We(Ke*(a-=1/3))/We(Ge-Ke*a))/3)):A=1-((i=(1-r)/3)+(n=(1+r*We(Ke*(a-=2/3))/We(Ge-Ke*a))/3)),[255*(A=Ve(s*A*3)),255*(i=Ve(s*i*3)),255*(n=Ve(s*n*3)),e.length>3?e[3]:1]},Xe=c.unpack,Ye=c.type,je=E,Je=w,Ze=d,_e=Re;Je.prototype.hsi=function(){return _e(this._rgb)},je.hsi=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(Je,[null].concat(e,["hsi"])))},Ze.format.hsi=ze,Ze.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=Xe(e,"hsi"),"array"===Ye(e)&&3===e.length)return"hsi"}});var qe=c.unpack,$e=c.type,et=E,tt=w,At=d,it=D;tt.prototype.hsl=function(){return it(this._rgb)},et.hsl=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(tt,[null].concat(e,["hsl"])))},At.format.hsl=z,At.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=qe(e,"hsl"),"array"===$e(e)&&3===e.length)return"hsl"}});var nt=c.unpack,at=Math.min,rt=Math.max,st=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i,n,a=(e=nt(e,"rgb"))[0],r=e[1],s=e[2],o=at(a,r,s),l=rt(a,r,s),c=l-o;return n=l/255,0===l?(A=Number.NaN,i=0):(i=c/l,a===l&&(A=(r-s)/c),r===l&&(A=2+(s-a)/c),s===l&&(A=4+(a-r)/c),(A*=60)<0&&(A+=360)),[A,i,n]},ot=c.unpack,lt=Math.floor,ct=function(){for(var e,t,A,i,n,a,r=[],s=arguments.length;s--;)r[s]=arguments[s];var o,l,c,d=(r=ot(r,"hsv"))[0],h=r[1],u=r[2];if(u*=255,0===h)o=l=c=u;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var g=lt(d/=60),p=d-g,m=u*(1-h),w=u*(1-h*p),f=u*(1-h*(1-p));switch(g){case 0:o=(e=[u,f,m])[0],l=e[1],c=e[2];break;case 1:o=(t=[w,u,m])[0],l=t[1],c=t[2];break;case 2:o=(A=[m,u,f])[0],l=A[1],c=A[2];break;case 3:o=(i=[m,w,u])[0],l=i[1],c=i[2];break;case 4:o=(n=[f,m,u])[0],l=n[1],c=n[2];break;case 5:o=(a=[u,m,w])[0],l=a[1],c=a[2]}}return[o,l,c,r.length>3?r[3]:1]},dt=c.unpack,ht=c.type,ut=E,gt=w,pt=d,mt=st;gt.prototype.hsv=function(){return mt(this._rgb)},ut.hsv=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(gt,[null].concat(e,["hsv"])))},pt.format.hsv=ct,pt.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=dt(e,"hsv"),"array"===ht(e)&&3===e.length)return"hsv"}});var wt={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},ft=wt,Et=c.unpack,Bt=Math.pow,bt=function(e){return(e/=255)<=.04045?e/12.92:Bt((e+.055)/1.055,2.4)},vt=function(e){return e>ft.t3?Bt(e,1/3):e/ft.t2+ft.t0},Ct=function(e,t,A){return e=bt(e),t=bt(t),A=bt(A),[vt((.4124564*e+.3575761*t+.1804375*A)/ft.Xn),vt((.2126729*e+.7151522*t+.072175*A)/ft.Yn),vt((.0193339*e+.119192*t+.9503041*A)/ft.Zn)]},yt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=Et(e,"rgb"),i=A[0],n=A[1],a=A[2],r=Ct(i,n,a),s=r[0],o=r[1],l=116*o-16;return[l<0?0:l,500*(s-o),200*(o-r[2])]},Ft=wt,xt=c.unpack,St=Math.pow,Tt=function(e){return 255*(e<=.00304?12.92*e:1.055*St(e,1/2.4)-.055)},It=function(e){return e>Ft.t1?e*e*e:Ft.t2*(e-Ft.t0)},kt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i,n,a=(e=xt(e,"lab"))[0],r=e[1],s=e[2];return i=(a+16)/116,A=isNaN(r)?i:i+r/500,n=isNaN(s)?i:i-s/200,i=Ft.Yn*It(i),A=Ft.Xn*It(A),n=Ft.Zn*It(n),[Tt(3.2404542*A-1.5371385*i-.4985314*n),Tt(-.969266*A+1.8760108*i+.041556*n),Tt(.0556434*A-.2040259*i+1.0572252*n),e.length>3?e[3]:1]},Ut=c.unpack,Qt=c.type,Ot=E,Mt=w,Lt=d,Dt=yt;Mt.prototype.lab=function(){return Dt(this._rgb)},Ot.lab=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(Mt,[null].concat(e,["lab"])))},Lt.format.lab=kt,Lt.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=Ut(e,"lab"),"array"===Qt(e)&&3===e.length)return"lab"}});var Nt=c.unpack,Ht=c.RAD2DEG,Rt=Math.sqrt,Pt=Math.atan2,Vt=Math.round,Kt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=Nt(e,"lab"),i=A[0],n=A[1],a=A[2],r=Rt(n*n+a*a),s=(Pt(a,n)*Ht+360)%360;return 0===Vt(1e4*r)&&(s=Number.NaN),[i,r,s]},Gt=c.unpack,Wt=yt,zt=Kt,Xt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=Gt(e,"rgb"),i=A[0],n=A[1],a=A[2],r=Wt(i,n,a),s=r[0],o=r[1],l=r[2];return zt(s,o,l)},Yt=c.unpack,jt=c.DEG2RAD,Jt=Math.sin,Zt=Math.cos,_t=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=Yt(e,"lch"),i=A[0],n=A[1],a=A[2];return isNaN(a)&&(a=0),[i,Zt(a*=jt)*n,Jt(a)*n]},qt=c.unpack,$t=_t,eA=kt,tA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=(e=qt(e,"lch"))[0],i=e[1],n=e[2],a=$t(A,i,n),r=a[0],s=a[1],o=a[2],l=eA(r,s,o);return[l[0],l[1],l[2],e.length>3?e[3]:1]},AA=c.unpack,iA=tA,nA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=AA(e,"hcl").reverse();return iA.apply(void 0,A)},aA=c.unpack,rA=c.type,sA=E,oA=w,lA=d,cA=Xt;oA.prototype.lch=function(){return cA(this._rgb)},oA.prototype.hcl=function(){return cA(this._rgb).reverse()},sA.lch=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(oA,[null].concat(e,["lch"])))},sA.hcl=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(oA,[null].concat(e,["hcl"])))},lA.format.lch=tA,lA.format.hcl=nA,["lch","hcl"].forEach((function(e){return lA.autodetect.push({p:2,test:function(){for(var t=[],A=arguments.length;A--;)t[A]=arguments[A];if(t=aA(t,e),"array"===rA(t)&&3===t.length)return e}})}));var dA={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",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",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:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",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",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},hA=d,uA=c.type,gA=dA,pA=Te,mA=Fe;w.prototype.name=function(){for(var e=mA(this._rgb,"rgb"),t=0,A=Object.keys(gA);t0;)t[A]=arguments[A+1];if(!t.length&&"string"===uA(e)&&gA[e.toLowerCase()])return"named"}});var wA=c.unpack,fA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=wA(e,"rgb");return(A[0]<<16)+(A[1]<<8)+A[2]},EA=c.type,BA=function(e){if("number"==EA(e)&&e>=0&&e<=16777215)return[e>>16,e>>8&255,255&e,1];throw new Error("unknown num color: "+e)},bA=E,vA=w,CA=d,yA=c.type,FA=fA;vA.prototype.num=function(){return FA(this._rgb)},bA.num=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(vA,[null].concat(e,["num"])))},CA.format.num=BA,CA.autodetect.push({p:5,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(1===e.length&&"number"===yA(e[0])&&e[0]>=0&&e[0]<=16777215)return"num"}});var xA=E,SA=w,TA=d,IA=c.unpack,kA=c.type,UA=Math.round;SA.prototype.rgb=function(e){return void 0===e&&(e=!0),!1===e?this._rgb.slice(0,3):this._rgb.slice(0,3).map(UA)},SA.prototype.rgba=function(e){return void 0===e&&(e=!0),this._rgb.slice(0,4).map((function(t,A){return A<3?!1===e?t:UA(t):t}))},xA.rgb=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(SA,[null].concat(e,["rgb"])))},TA.format.rgb=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=IA(e,"rgba");return void 0===A[3]&&(A[3]=1),A},TA.autodetect.push({p:3,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=IA(e,"rgba"),"array"===kA(e)&&(3===e.length||4===e.length&&"number"==kA(e[3])&&e[3]>=0&&e[3]<=1))return"rgb"}});var QA=Math.log,OA=function(e){var t,A,i,n=e/100;return n<66?(t=255,A=n<6?0:-155.25485562709179-.44596950469579133*(A=n-2)+104.49216199393888*QA(A),i=n<20?0:.8274096064007395*(i=n-10)-254.76935184120902+115.67994401066147*QA(i)):(t=351.97690566805693+.114206453784165*(t=n-55)-40.25366309332127*QA(t),A=325.4494125711974+.07943456536662342*(A=n-50)-28.0852963507957*QA(A),i=255),[t,A,i,1]},MA=OA,LA=c.unpack,DA=Math.round,NA=E,HA=w,RA=d,PA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var A,i=LA(e,"rgb"),n=i[0],a=i[2],r=1e3,s=4e4,o=.4;s-r>o;){var l=MA(A=.5*(s+r));l[2]/l[0]>=a/n?s=A:r=A}return DA(A)};HA.prototype.temp=HA.prototype.kelvin=HA.prototype.temperature=function(){return PA(this._rgb)},NA.temp=NA.kelvin=NA.temperature=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(HA,[null].concat(e,["temp"])))},RA.format.temp=RA.format.kelvin=RA.format.temperature=OA;var VA=c.unpack,KA=Math.cbrt,GA=Math.pow,WA=Math.sign,zA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=VA(e,"rgb"),i=A[0],n=A[1],a=A[2],r=[XA(i/255),XA(n/255),XA(a/255)],s=r[0],o=r[1],l=r[2],c=KA(.4122214708*s+.5363325363*o+.0514459929*l),d=KA(.2119034982*s+.6806995451*o+.1073969566*l),h=KA(.0883024619*s+.2817188376*o+.6299787005*l);return[.2104542553*c+.793617785*d-.0040720468*h,1.9779984951*c-2.428592205*d+.4505937099*h,.0259040371*c+.7827717662*d-.808675766*h]};function XA(e){var t=Math.abs(e);return t<.04045?e/12.92:(WA(e)||1)*GA((t+.055)/1.055,2.4)}var YA=c.unpack,jA=Math.pow,JA=Math.sign,ZA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=(e=YA(e,"lab"))[0],i=e[1],n=e[2],a=jA(A+.3963377774*i+.2158037573*n,3),r=jA(A-.1055613458*i-.0638541728*n,3),s=jA(A-.0894841775*i-1.291485548*n,3);return[255*_A(4.0767416621*a-3.3077115913*r+.2309699292*s),255*_A(-1.2684380046*a+2.6097574011*r-.3413193965*s),255*_A(-.0041960863*a-.7034186147*r+1.707614701*s),e.length>3?e[3]:1]};function _A(e){var t=Math.abs(e);return t>.0031308?(JA(e)||1)*(1.055*jA(t,1/2.4)-.055):12.92*e}var qA=c.unpack,$A=c.type,ei=E,ti=w,Ai=d,ii=zA;ti.prototype.oklab=function(){return ii(this._rgb)},ei.oklab=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(ti,[null].concat(e,["oklab"])))},Ai.format.oklab=ZA,Ai.autodetect.push({p:3,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=qA(e,"oklab"),"array"===$A(e)&&3===e.length)return"oklab"}});var ni=c.unpack,ai=zA,ri=Kt,si=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=ni(e,"rgb"),i=A[0],n=A[1],a=A[2],r=ai(i,n,a),s=r[0],o=r[1],l=r[2];return ri(s,o,l)},oi=c.unpack,li=_t,ci=ZA,di=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=(e=oi(e,"lch"))[0],i=e[1],n=e[2],a=li(A,i,n),r=a[0],s=a[1],o=a[2],l=ci(r,s,o);return[l[0],l[1],l[2],e.length>3?e[3]:1]},hi=c.unpack,ui=c.type,gi=E,pi=w,mi=d,wi=si;pi.prototype.oklch=function(){return wi(this._rgb)},gi.oklch=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(pi,[null].concat(e,["oklch"])))},mi.format.oklch=di,mi.autodetect.push({p:3,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=hi(e,"oklch"),"array"===ui(e)&&3===e.length)return"oklch"}});var fi=w,Ei=c.type;fi.prototype.alpha=function(e,t){return void 0===t&&(t=!1),void 0!==e&&"number"===Ei(e)?t?(this._rgb[3]=e,this):new fi([this._rgb[0],this._rgb[1],this._rgb[2],e],"rgb"):this._rgb[3]},w.prototype.clipped=function(){return this._rgb._clipped||!1};var Bi=w,bi=wt;Bi.prototype.darken=function(e){void 0===e&&(e=1);var t=this.lab();return t[0]-=bi.Kn*e,new Bi(t,"lab").alpha(this.alpha(),!0)},Bi.prototype.brighten=function(e){return void 0===e&&(e=1),this.darken(-e)},Bi.prototype.darker=Bi.prototype.darken,Bi.prototype.brighter=Bi.prototype.brighten,w.prototype.get=function(e){var t=e.split("."),A=t[0],i=t[1],n=this[A]();if(i){var a=A.indexOf(i)-("ok"===A.substr(0,2)?2:0);if(a>-1)return n[a];throw new Error("unknown channel "+i+" in mode "+A)}return n};var vi=w,Ci=c.type,yi=Math.pow;vi.prototype.luminance=function(e){if(void 0!==e&&"number"===Ci(e)){if(0===e)return new vi([0,0,0,this._rgb[3]],"rgb");if(1===e)return new vi([255,255,255,this._rgb[3]],"rgb");var t=this.luminance(),A=20,i=function(t,n){var a=t.interpolate(n,.5,"rgb"),r=a.luminance();return Math.abs(e-r)<1e-7||!A--?a:r>e?i(t,a):i(a,n)},n=(t>e?i(new vi([0,0,0]),this):i(this,new vi([255,255,255]))).rgb();return new vi(n.concat([this._rgb[3]]))}return Fi.apply(void 0,this._rgb.slice(0,3))};var Fi=function(e,t,A){return.2126*(e=xi(e))+.7152*(t=xi(t))+.0722*xi(A)},xi=function(e){return(e/=255)<=.03928?e/12.92:yi((e+.055)/1.055,2.4)},Si={},Ti=w,Ii=c.type,ki=Si,Ui=function(e,t,A){void 0===A&&(A=.5);for(var i=[],n=arguments.length-3;n-- >0;)i[n]=arguments[n+3];var a=i[0]||"lrgb";if(ki[a]||i.length||(a=Object.keys(ki)[0]),!ki[a])throw new Error("interpolation mode "+a+" is not defined");return"object"!==Ii(e)&&(e=new Ti(e)),"object"!==Ii(t)&&(t=new Ti(t)),ki[a](e,t,A).alpha(e.alpha()+A*(t.alpha()-e.alpha()))},Qi=w,Oi=Ui;Qi.prototype.mix=Qi.prototype.interpolate=function(e,t){void 0===t&&(t=.5);for(var A=[],i=arguments.length-2;i-- >0;)A[i]=arguments[i+2];return Oi.apply(void 0,[this,e,t].concat(A))};var Mi=w;Mi.prototype.premultiply=function(e){void 0===e&&(e=!1);var t=this._rgb,A=t[3];return e?(this._rgb=[t[0]*A,t[1]*A,t[2]*A,A],this):new Mi([t[0]*A,t[1]*A,t[2]*A,A],"rgb")};var Li=w,Di=wt;Li.prototype.saturate=function(e){void 0===e&&(e=1);var t=this.lch();return t[1]+=Di.Kn*e,t[1]<0&&(t[1]=0),new Li(t,"lch").alpha(this.alpha(),!0)},Li.prototype.desaturate=function(e){return void 0===e&&(e=1),this.saturate(-e)};var Ni=w,Hi=c.type;Ni.prototype.set=function(e,t,A){void 0===A&&(A=!1);var i=e.split("."),n=i[0],a=i[1],r=this[n]();if(a){var s=n.indexOf(a)-("ok"===n.substr(0,2)?2:0);if(s>-1){if("string"==Hi(t))switch(t.charAt(0)){case"+":case"-":r[s]+=+t;break;case"*":r[s]*=+t.substr(1);break;case"/":r[s]/=+t.substr(1);break;default:r[s]=+t}else{if("number"!==Hi(t))throw new Error("unsupported value for Color.set");r[s]=t}var o=new Ni(r,n);return A?(this._rgb=o._rgb,this):o}throw new Error("unknown channel "+a+" in mode "+n)}return r};var Ri=w;Si.rgb=function(e,t,A){var i=e._rgb,n=t._rgb;return new Ri(i[0]+A*(n[0]-i[0]),i[1]+A*(n[1]-i[1]),i[2]+A*(n[2]-i[2]),"rgb")};var Pi=w,Vi=Math.sqrt,Ki=Math.pow;Si.lrgb=function(e,t,A){var i=e._rgb,n=i[0],a=i[1],r=i[2],s=t._rgb,o=s[0],l=s[1],c=s[2];return new Pi(Vi(Ki(n,2)*(1-A)+Ki(o,2)*A),Vi(Ki(a,2)*(1-A)+Ki(l,2)*A),Vi(Ki(r,2)*(1-A)+Ki(c,2)*A),"rgb")};var Gi=w;Si.lab=function(e,t,A){var i=e.lab(),n=t.lab();return new Gi(i[0]+A*(n[0]-i[0]),i[1]+A*(n[1]-i[1]),i[2]+A*(n[2]-i[2]),"lab")};var Wi=w,zi=function(e,t,A,i){var n,a,r,s,o,l,c,d,h,u,g,p,m;return"hsl"===i?(r=e.hsl(),s=t.hsl()):"hsv"===i?(r=e.hsv(),s=t.hsv()):"hcg"===i?(r=e.hcg(),s=t.hcg()):"hsi"===i?(r=e.hsi(),s=t.hsi()):"lch"===i||"hcl"===i?(i="hcl",r=e.hcl(),s=t.hcl()):"oklch"===i&&(r=e.oklch().reverse(),s=t.oklch().reverse()),"h"!==i.substr(0,1)&&"oklch"!==i||(o=(n=r)[0],c=n[1],h=n[2],l=(a=s)[0],d=a[1],u=a[2]),isNaN(o)||isNaN(l)?isNaN(o)?isNaN(l)?p=Number.NaN:(p=l,1!=h&&0!=h||"hsv"==i||(g=d)):(p=o,1!=u&&0!=u||"hsv"==i||(g=c)):p=o+A*(l>o&&l-o>180?l-(o+360):l180?l+360-o:l-o),void 0===g&&(g=c+A*(d-c)),m=h+A*(u-h),new Wi("oklch"===i?[m,g,p]:[p,g,m],i)},Xi=zi,Yi=function(e,t,A){return Xi(e,t,A,"lch")};Si.lch=Yi,Si.hcl=Yi;var ji=w;Si.num=function(e,t,A){var i=e.num(),n=t.num();return new ji(i+A*(n-i),"num")};var Ji=zi;Si.hcg=function(e,t,A){return Ji(e,t,A,"hcg")};var Zi=zi;Si.hsi=function(e,t,A){return Zi(e,t,A,"hsi")};var _i=zi;Si.hsl=function(e,t,A){return _i(e,t,A,"hsl")};var qi=zi;Si.hsv=function(e,t,A){return qi(e,t,A,"hsv")};var $i=w;Si.oklab=function(e,t,A){var i=e.oklab(),n=t.oklab();return new $i(i[0]+A*(n[0]-i[0]),i[1]+A*(n[1]-i[1]),i[2]+A*(n[2]-i[2]),"oklab")};var en=zi;Si.oklch=function(e,t,A){return en(e,t,A,"oklch")};var tn=w,An=c.clip_rgb,nn=Math.pow,an=Math.sqrt,rn=Math.PI,sn=Math.cos,on=Math.sin,ln=Math.atan2,cn=function(e,t){for(var A=e.length,i=[0,0,0,0],n=0;n.9999999&&(i[3]=1),new tn(An(i))},dn=E,hn=c.type,un=Math.pow,gn=function(e){var t="rgb",A=dn("#ccc"),i=0,n=[0,1],a=[],r=[0,0],s=!1,o=[],l=!1,c=0,d=1,h=!1,u={},g=!0,p=1,m=function(e){if((e=e||["#fff","#000"])&&"string"===hn(e)&&dn.brewer&&dn.brewer[e.toLowerCase()]&&(e=dn.brewer[e.toLowerCase()]),"array"===hn(e)){1===e.length&&(e=[e[0],e[0]]),e=e.slice(0);for(var t=0;t2?function(e){if(null!=s){for(var t=s.length-1,A=0;A=s[A];)A++;return A-1}return 0}(e)/(s.length-2):d!==c?(e-c)/(d-c):1,l=f(l),i||(l=w(l)),1!==p&&(l=un(l,p)),l=r[0]+l*(1-r[0]-r[1]),l=Math.min(1,Math.max(0,l));var h=Math.floor(1e4*l);if(g&&u[h])n=u[h];else{if("array"===hn(o))for(var m=0;m=E&&m===a.length-1){n=o[m];break}if(l>E&&l2){var l=e.map((function(t,A){return A/(e.length-1)})),h=e.map((function(e){return(e-c)/(d-c)}));h.every((function(e,t){return l[t]===e}))||(f=function(e){if(e<=0||e>=1)return e;for(var t=0;e>=h[t+1];)t++;var A=(e-h[t])/(h[t+1]-h[t]);return l[t]+A*(l[t+1]-l[t])})}}return n=[c,d],b},b.mode=function(e){return arguments.length?(t=e,B(),b):t},b.range=function(e,t){return m(e),b},b.out=function(e){return l=e,b},b.spread=function(e){return arguments.length?(i=e,b):i},b.correctLightness=function(e){return null==e&&(e=!0),h=e,B(),w=h?function(e){for(var t=E(0,!0).lab()[0],A=E(1,!0).lab()[0],i=t>A,n=E(e,!0).lab()[0],a=t+(A-t)*e,r=n-a,s=0,o=1,l=20;Math.abs(r)>.01&&l-- >0;)i&&(r*=-1),r<0?(s=e,e+=.5*(o-e)):(o=e,e+=.5*(s-e)),r=(n=E(e,!0).lab()[0])-a;return e}:function(e){return e},b},b.padding=function(e){return null!=e?("number"===hn(e)&&(e=[e,e]),r=e,b):r},b.colors=function(t,A){arguments.length<2&&(A="hex");var i=[];if(0===arguments.length)i=o.slice(0);else if(1===t)i=[b(.5)];else if(t>1){var a=n[0],r=n[1]-a;i=pn(0,t,!1).map((function(e){return b(a+e/(t-1)*r)}))}else{e=[];var l=[];if(s&&s.length>2)for(var c=1,d=s.length,h=1<=d;h?cd;h?c++:c--)l.push(.5*(s[c-1]+s[c]));else l=n;i=l.map((function(e){return b(e)}))}return dn[A]&&(i=i.map((function(e){return e[A]()}))),i},b.cache=function(e){return null!=e?(g=e,b):g},b.gamma=function(e){return null!=e?(p=e,b):p},b.nodata=function(e){return null!=e?(A=dn(e),b):A},b};function pn(e,t,A){for(var i=[],n=ea;n?r++:r--)i.push(r);return i}var mn=w,wn=gn,fn=E,En=function(e,t,A){if(!En[A])throw new Error("unknown blend mode "+A);return En[A](e,t)},Bn=function(e){return function(t,A){var i=fn(A).rgb(),n=fn(t).rgb();return fn.rgb(e(i,n))}},bn=function(e){return function(t,A){var i=[];return i[0]=e(t[0],A[0]),i[1]=e(t[1],A[1]),i[2]=e(t[2],A[2]),i}};En.normal=Bn(bn((function(e){return e}))),En.multiply=Bn(bn((function(e,t){return e*t/255}))),En.screen=Bn(bn((function(e,t){return 255*(1-(1-e/255)*(1-t/255))}))),En.overlay=Bn(bn((function(e,t){return t<128?2*e*t/255:255*(1-2*(1-e/255)*(1-t/255))}))),En.darken=Bn(bn((function(e,t){return e>t?t:e}))),En.lighten=Bn(bn((function(e,t){return e>t?e:t}))),En.dodge=Bn(bn((function(e,t){return 255===e||(e=t/255*255/(1-e/255))>255?255:e}))),En.burn=Bn(bn((function(e,t){return 255*(1-(1-t/255)/(e/255))})));for(var vn=En,Cn=c.type,yn=c.clip_rgb,Fn=c.TWOPI,xn=Math.pow,Sn=Math.sin,Tn=Math.cos,In=E,kn=w,Un=Math.floor,Qn=Math.random,On=r,Mn=Math.log,Ln=Math.pow,Dn=Math.floor,Nn=Math.abs,Hn=function(e,t){void 0===t&&(t=null);var A={min:Number.MAX_VALUE,max:-1*Number.MAX_VALUE,sum:0,values:[],count:0};return"object"===On(e)&&(e=Object.values(e)),e.forEach((function(e){t&&"object"===On(e)&&(e=e[t]),null==e||isNaN(e)||(A.values.push(e),A.sum+=e,eA.max&&(A.max=e),A.count+=1)})),A.domain=[A.min,A.max],A.limits=function(e,t){return Rn(A,e,t)},A},Rn=function(e,t,A){void 0===t&&(t="equal"),void 0===A&&(A=7),"array"==On(e)&&(e=Hn(e));var i=e.min,n=e.max,a=e.values.sort((function(e,t){return e-t}));if(1===A)return[i,n];var r=[];if("c"===t.substr(0,1)&&(r.push(i),r.push(n)),"e"===t.substr(0,1)){r.push(i);for(var s=1;s 0");var o=Math.LOG10E*Mn(i),l=Math.LOG10E*Mn(n);r.push(i);for(var c=1;c200&&(E=!1)}for(var L={},D=0;D=360;)g-=360;r[u]=g}else r[u]=r[u]/s[u];return h/=i,new tn(r,t).alpha(h>.99999?1:h,!0)},la.bezier=function(e){var t=function(e){var t,A,i,n,a,r,s;if(e=e.map((function(e){return new mn(e)})),2===e.length)t=e.map((function(e){return e.lab()})),a=t[0],r=t[1],n=function(e){var t=[0,1,2].map((function(t){return a[t]+e*(r[t]-a[t])}));return new mn(t,"lab")};else if(3===e.length)A=e.map((function(e){return e.lab()})),a=A[0],r=A[1],s=A[2],n=function(e){var t=[0,1,2].map((function(t){return(1-e)*(1-e)*a[t]+2*(1-e)*e*r[t]+e*e*s[t]}));return new mn(t,"lab")};else if(4===e.length){var o;i=e.map((function(e){return e.lab()})),a=i[0],r=i[1],s=i[2],o=i[3],n=function(e){var t=[0,1,2].map((function(t){return(1-e)*(1-e)*(1-e)*a[t]+3*(1-e)*(1-e)*e*r[t]+3*(1-e)*e*e*s[t]+e*e*e*o[t]}));return new mn(t,"lab")}}else{if(!(e.length>=5))throw new RangeError("No point in running bezier with only one color.");var l,c,d;l=e.map((function(e){return e.lab()})),d=e.length-1,c=function(e){for(var t=[1,1],A=1;Ai?(A+.05)/(i+.05):(i+.05)/(A+.05)},la.deltaE=function(e,t,A,i,n){void 0===A&&(A=1),void 0===i&&(i=1),void 0===n&&(n=1);var a=function(e){return 360*e/(2*qn)},r=function(e){return 2*qn*e/360};e=new Kn(e),t=new Kn(t);var s=Array.from(e.lab()),o=s[0],l=s[1],c=s[2],d=Array.from(t.lab()),h=d[0],u=d[1],g=d[2],p=(o+h)/2,m=(Gn(Wn(l,2)+Wn(c,2))+Gn(Wn(u,2)+Wn(g,2)))/2,w=.5*(1-Gn(Wn(m,7)/(Wn(m,7)+Wn(25,7)))),f=l*(1+w),E=u*(1+w),B=Gn(Wn(f,2)+Wn(c,2)),b=Gn(Wn(E,2)+Wn(g,2)),v=(B+b)/2,C=a(Yn(c,f)),y=a(Yn(g,E)),F=C>=0?C:C+360,x=y>=0?y:y+360,S=jn(F-x)>180?(F+x+360)/2:(F+x)/2,T=1-.17*Jn(r(S-30))+.24*Jn(r(2*S))+.32*Jn(r(3*S+6))-.2*Jn(r(4*S-63)),I=x-F;I=jn(I)<=180?I:x<=F?I+360:I-360,I=2*Gn(B*b)*Zn(r(I)/2);var k=h-o,U=b-B,Q=1+.015*Wn(p-50,2)/Gn(20+Wn(p-50,2)),O=1+.045*v,M=1+.015*v*T,L=30*_n(-Wn((S-275)/25,2)),D=-2*Gn(Wn(v,7)/(Wn(v,7)+Wn(25,7)))*Zn(2*r(L)),N=Gn(Wn(k/(A*Q),2)+Wn(U/(i*O),2)+Wn(I/(n*M),2)+D*(U/(i*O))*(I/(n*M)));return Xn(0,zn(100,N))},la.distance=function(e,t,A){void 0===A&&(A="lab"),e=new $n(e),t=new $n(t);var i=e.get(A),n=t.get(A),a=0;for(var r in i){var s=(i[r]||0)-(n[r]||0);a+=s*s}return Math.sqrt(a)},la.limits=Pn.limits,la.valid=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];try{return new(Function.prototype.bind.apply(ea,[null].concat(e))),!0}catch(e){return!1}},la.scales=ia,la.colors=dA,la.brewer=oa,la}();var chroma=chromaExports;function hexWithAlpha(e,t){return chroma(e).alpha(t).css()}function has(e,t){return e.hasAttribute(t)}function get(e,t,A){return e.getAttribute(t)||A||""}function getNum(e,t,A){const i=Number(get(e,t));return Number.isNaN(i)?A||0:i}const attrHandlers={stroke:({el:e,exVals:t})=>{const A=get(e,"stroke");t.strokeColor=has(e,"stroke-opacity")?hexWithAlpha(A,getNum(e,"stroke-opacity")):A},"stroke-opacity":({el:e,exVals:t})=>{t.strokeColor=hexWithAlpha(get(e,"stroke","#000000"),getNum(e,"stroke-opacity"))},"stroke-width":({el:e,exVals:t})=>{t.strokeWidth=getNum(e,"stroke-width")},fill:({el:e,exVals:t})=>{const A=get(e,"fill");t.backgroundColor="none"===A?"#00000000":A},"fill-opacity":({el:e,exVals:t})=>{t.backgroundColor=hexWithAlpha(get(e,"fill","#000000"),getNum(e,"fill-opacity"))},opacity:({el:e,exVals:t})=>{t.opacity=getNum(e,"opacity",100)}};function presAttrsToElementValues(e){return[...e.attributes].reduce(((t,A)=>{const i=A.name;return Object.keys(attrHandlers).includes(i)&&attrHandlers[i]({el:e,exVals:t}),t}),{})}function filterAttrsToElementValues(e){const t={};return has(e,"x")&&(t.x=getNum(e,"x")),has(e,"y")&&(t.y=getNum(e,"y")),has(e,"width")&&(t.width=getNum(e,"width")),has(e,"height")&&(t.height=getNum(e,"height")),t}function pointsAttrToPoints(e){let t=[];return has(e,"points")&&(t=get(e,"points").split(" ").map((e=>e.split(",").map(parseFloat)))),t}function getGroupAttrs(e){return e.reduce(((e,{element:t})=>{const A=presAttrsToElementValues(t);return Object.assign(Object.assign({},e),A)}),{})}class Group{constructor(e){this.id=randomId(),this.element=e}}function createExElement(){return{id:randomId(),x:0,y:0,strokeColor:"#000000",backgroundColor:"#000000",fillStyle:"solid",strokeWidth:1,strokeStyle:"solid",roundness:null,roughness:0,opacity:100,width:0,height:0,angle:0,seed:Math.floor(random.next()*2**31),version:0,versionNonce:0,isDeleted:!1,groupIds:[],boundElementIds:null}}function createExRect(){return Object.assign(Object.assign({},createExElement()),{type:"rectangle"})}function createExLine(){return Object.assign(Object.assign({},createExElement()),{type:"line",points:[]})}function createExEllipse(){return Object.assign(Object.assign({},createExElement()),{type:"ellipse"})}function createExDraw(){return Object.assign(Object.assign({},createExElement()),{type:"line",points:[]})}const transformFunctions={matrix:"matrix",matrix3d:"matrix3d",perspective:"perspective",rotate:"rotate",rotate3d:"rotate3d",rotateX:"rotateX",rotateY:"rotateY",rotateZ:"rotateZ",scale:"scale",scale3d:"scale3d",scaleX:"scaleX",scaleY:"scaleY",scaleZ:"scaleZ",skew:"skew",skewX:"skewX",skewY:"skewY",translate:"translate",translate3d:"translate3d",translateX:"translateX",translateY:"translateY",translateZ:"translateZ"},transformFunctionsArr=Object.keys(transformFunctions),defaultUnits={matrix:"",matrix3d:"",perspective:"perspective",rotate:"deg",rotate3d:"deg",rotateX:"deg",rotateY:"deg",rotateZ:"deg",scale:"",scale3d:"",scaleX:"",scaleY:"",scaleZ:"",skew:"skew",skewX:"deg",skewY:"deg",translate:"px",translate3d:"px",translateX:"px",translateY:"px",translateZ:"px"},svgTransformToCSSTransform=e=>{const t=e.match(/(\w+)\(([^)]*)\)/g);if(!t)return"";const A=t.map((e=>{const t=e.split("(")[0];if(!t)throw new Error("Unable to find transform name");if(!transformFunctionsArr.includes(t))throw new Error(`transform function name "${t}" is not valid`);const A=e.match(/([-+]?[0-9]*\.?[0-9]+)([a-z])*/g);if(!A)return{type:t,values:[]};let i=A.map((e=>{const[A,i]=e.matchAll(/([-+]?[0-9]*\.?[0-9]+)|([a-z])*/g);return{unit:i[0]||defaultUnits[t],value:A[0]}}));return i&&"rotate"===t&&(null==i?void 0:i.length)>1&&(i=[i[0]]),{type:t,values:i}}));return A.map((({type:e,values:t})=>`${e}(${t.map((({unit:e,value:t})=>`${t}${e}`)).join(", ")})`)).join(" ")};function getElementMatrix(e){if(e.hasAttribute("transform")){const t=new DOMMatrix(svgTransformToCSSTransform(e.getAttribute("transform")||""));return multiply(create$1(),create$1(),t.toFloat32Array())}return create$1()}function getTransformMatrix(e,t){return t.map((({element:e})=>getElementMatrix(e))).concat([getElementMatrix(e)]).reduce(((e,t)=>multiply(e,e,t)),create$1())}function transformPoints(e,t){return e.map((([e,A])=>{const[i,n]=transformMat4(create(),fromValues(e,A,1),t);return[i,n]}))}function distance(e,t){return Math.sqrt(distanceSq(e,t))}function distanceSq(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)}function distanceToSegmentSq(e,t,A){const i=distanceSq(t,A);if(0===i)return distanceSq(e,t);let n=((e[0]-t[0])*(A[0]-t[0])+(e[1]-t[1])*(A[1]-t[1]))/i;return n=Math.max(0,Math.min(1,n)),distanceSq(e,lerp(t,A,n))}function lerp(e,t,A){return[e[0]+(t[0]-e[0])*A,e[1]+(t[1]-e[1])*A]}function flatness(e,t){const A=e[t+0],i=e[t+1],n=e[t+2],a=e[t+3];let r=3*i[0]-2*A[0]-a[0];r*=r;let s=3*i[1]-2*A[1]-a[1];s*=s;let o=3*n[0]-2*a[0]-A[0];o*=o;let l=3*n[1]-2*a[1]-A[1];return l*=l,r1&&n.push(A):n.push(A),n.push(e[t+3])}else{const i=.5,a=e[t+0],r=e[t+1],s=e[t+2],o=e[t+3],l=lerp(a,r,i),c=lerp(r,s,i),d=lerp(s,o,i),h=lerp(l,c,i),u=lerp(c,d,i),g=lerp(h,u,i);getPointsOnBezierCurveWithSplitting([a,l,h,g],0,A,n),getPointsOnBezierCurveWithSplitting([g,u,d,o],0,A,n)}return n}function simplify(e,t){return simplifyPoints(e,0,e.length,t)}function simplifyPoints(e,t,A,i,n){const a=n||[],r=e[t],s=e[A-1];let o=0,l=1;for(let i=t+1;io&&(o=t,l=i)}return Math.sqrt(o)>i?(simplifyPoints(e,t,l+1,i,a),simplifyPoints(e,l,A,i,a)):(a.length||a.push(r),a.push(s)),a}function pointsOnBezierCurves(e,t=.15,A){const i=[],n=(e.length-1)/3;for(let A=0;A0?simplifyPoints(i,0,i.length,A):i}const COMMAND=0,NUMBER=1,EOD=2,PARAMS={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function tokenize(e){const t=new Array;for(;""!==e;)if(e.match(/^([ \t\r\n,]+)/))e=e.substr(RegExp.$1.length);else if(e.match(/^([aAcChHlLmMqQsStTvVzZ])/))t[t.length]={type:0,text:RegExp.$1},e=e.substr(RegExp.$1.length);else{if(!e.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];t[t.length]={type:1,text:`${parseFloat(RegExp.$1)}`},e=e.substr(RegExp.$1.length)}return t[t.length]={type:2,text:""},t}function isType(e,t){return e.type===t}function parsePath(e){const t=[],A=tokenize(e);let i="BOD",n=0,a=A[n];for(;!isType(a,2);){let r=0;const s=[];if("BOD"===i){if("M"!==a.text&&"m"!==a.text)return parsePath("M0,0"+e);n++,r=PARAMS[a.text],i=a.text}else isType(a,1)?r=PARAMS[i]:(n++,r=PARAMS[a.text],i=a.text);if(!(n+ri%2?e+A:e+t));a.push({key:"C",data:e}),t=e[4],A=e[5];break}case"Q":a.push({key:"Q",data:[...s]}),t=s[2],A=s[3];break;case"q":{const e=s.map(((e,i)=>i%2?e+A:e+t));a.push({key:"Q",data:e}),t=e[2],A=e[3];break}case"A":a.push({key:"A",data:[...s]}),t=s[5],A=s[6];break;case"a":t+=s[5],A+=s[6],a.push({key:"A",data:[s[0],s[1],s[2],s[3],s[4],t,A]});break;case"H":a.push({key:"H",data:[...s]}),t=s[0];break;case"h":t+=s[0],a.push({key:"H",data:[t]});break;case"V":a.push({key:"V",data:[...s]}),A=s[0];break;case"v":A+=s[0],a.push({key:"V",data:[A]});break;case"S":a.push({key:"S",data:[...s]}),t=s[2],A=s[3];break;case"s":{const e=s.map(((e,i)=>i%2?e+A:e+t));a.push({key:"S",data:e}),t=e[2],A=e[3];break}case"T":a.push({key:"T",data:[...s]}),t=s[0],A=s[1];break;case"t":t+=s[0],A+=s[1],a.push({key:"T",data:[t,A]});break;case"Z":case"z":a.push({key:"Z",data:[]}),t=i,A=n}return a}function normalize(e){const t=[];let A="",i=0,n=0,a=0,r=0,s=0,o=0;for(const{key:l,data:c}of e){switch(l){case"M":t.push({key:"M",data:[...c]}),[i,n]=c,[a,r]=c;break;case"C":t.push({key:"C",data:[...c]}),i=c[4],n=c[5],s=c[2],o=c[3];break;case"L":t.push({key:"L",data:[...c]}),[i,n]=c;break;case"H":i=c[0],t.push({key:"L",data:[i,n]});break;case"V":n=c[0],t.push({key:"L",data:[i,n]});break;case"S":{let e=0,a=0;"C"===A||"S"===A?(e=i+(i-s),a=n+(n-o)):(e=i,a=n),t.push({key:"C",data:[e,a,...c]}),s=c[0],o=c[1],i=c[2],n=c[3];break}case"T":{const[e,a]=c;let r=0,l=0;"Q"===A||"T"===A?(r=i+(i-s),l=n+(n-o)):(r=i,l=n);const d=i+2*(r-i)/3,h=n+2*(l-n)/3,u=e+2*(r-e)/3,g=a+2*(l-a)/3;t.push({key:"C",data:[d,h,u,g,e,a]}),s=r,o=l,i=e,n=a;break}case"Q":{const[e,A,a,r]=c,l=i+2*(e-i)/3,d=n+2*(A-n)/3,h=a+2*(e-a)/3,u=r+2*(A-r)/3;t.push({key:"C",data:[l,d,h,u,a,r]}),s=e,o=A,i=a,n=r;break}case"A":{const e=Math.abs(c[0]),A=Math.abs(c[1]),a=c[2],r=c[3],s=c[4],o=c[5],l=c[6];0===e||0===A?(t.push({key:"C",data:[i,n,o,l,o,l]}),i=o,n=l):i===o&&n===l||(arcToCubicCurves(i,n,o,l,e,A,a,r,s).forEach((function(e){t.push({key:"C",data:e})})),i=o,n=l);break}case"Z":t.push({key:"Z",data:[]}),i=a,n=r}A=l}return t}function degToRad(e){return Math.PI*e/180}function rotate(e,t,A){return[e*Math.cos(A)-t*Math.sin(A),e*Math.sin(A)+t*Math.cos(A)]}function arcToCubicCurves(e,t,A,i,n,a,r,s,o,l){const c=degToRad(r);let d=[],h=0,u=0,g=0,p=0;if(l)[h,u,g,p]=l;else{[e,t]=rotate(e,t,-c),[A,i]=rotate(A,i,-c);const r=(e-A)/2,l=(t-i)/2;let d=r*r/(n*n)+l*l/(a*a);d>1&&(d=Math.sqrt(d),n*=d,a*=d);const m=n*n,w=a*a,f=m*w-m*l*l-w*r*r,E=m*l*l+w*r*r,B=(s===o?-1:1)*Math.sqrt(Math.abs(f/E));g=B*n*l/a+(e+A)/2,p=B*-a*r/n+(t+i)/2,h=Math.asin(parseFloat(((t-p)/a).toFixed(9))),u=Math.asin(parseFloat(((i-p)/a).toFixed(9))),eu&&(h-=2*Math.PI),!o&&u>h&&(u-=2*Math.PI)}let m=u-h;if(Math.abs(m)>120*Math.PI/180){const e=u,t=A,s=i;u=o&&u>h?h+120*Math.PI/180*1:h+120*Math.PI/180*-1,d=arcToCubicCurves(A=g+n*Math.cos(u),i=p+a*Math.sin(u),t,s,n,a,r,0,o,[u,e,g,p])}m=u-h;const w=Math.cos(h),f=Math.sin(h),E=Math.cos(u),B=Math.sin(u),b=Math.tan(m/4),v=4/3*n*b,C=4/3*a*b,y=[e,t],F=[e+v*f,t-C*w],x=[A+v*B,i-C*E],S=[A,i];if(F[0]=2*y[0]-F[0],F[1]=2*y[1]-F[1],l)return[F,x,S].concat(d);{d=[F,x,S].concat(d);const e=[];for(let t=0;t{s.length>=4&&a.push(...pointsOnBezierCurves(s,t)),s=[]},l=()=>{o(),a.length&&(n.push(a),a=[])};for(const{key:e,data:t}of i)switch(e){case"M":l(),r=[t[0],t[1]],a.push(r);break;case"L":o(),a.push([t[0],t[1]]);break;case"C":if(!s.length){const e=a.length?a[a.length-1]:r;s.push([e[0],e[1]])}s.push([t[0],t[1]]),s.push([t[2],t[3]]),s.push([t[4],t[5]]);break;case"Z":o(),a.push([r[0],r[1]])}if(l(),!A)return n;const c=[];for(const e of n){const t=simplify(e,A);t.length&&c.push(t)}return c}const SUPPORTED_TAGS=["svg","path","g","use","circle","ellipse","rect","polyline","polygon"],nodeValidator=e=>SUPPORTED_TAGS.includes(e.tagName)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT;function createTreeWalker(e){return document.createTreeWalker(e,NodeFilter.SHOW_ALL,{acceptNode:nodeValidator})}const presAttrs=(e,t)=>Object.assign(Object.assign(Object.assign({},getGroupAttrs(t)),presAttrsToElementValues(e)),filterAttrsToElementValues(e)),skippedUseAttrs=["id"],allwaysPassedUseAttrs=["x","y","width","height","href","xlink:href"],getDefElWithCorrectAttrs=(e,t)=>[...t.attributes].reduce(((A,i)=>(skippedUseAttrs.includes(i.value)||e.hasAttribute(i.name)&&!allwaysPassedUseAttrs.includes(i.name)||A.setAttribute(i.name,t.getAttribute(i.name)||""),A)),e.cloneNode()),walkers={svg:e=>{walk(e,e.tw.nextNode())},g:e=>{const t=Object.assign(Object.assign({},e),{tw:createTreeWalker(e.tw.currentNode),groups:[...e.groups,new Group(e.tw.currentNode)]});walk(t,t.tw.nextNode()),walk(e,e.tw.nextSibling())},use:e=>{const{root:t,tw:A,scene:i}=e,n=A.currentNode,a=n.getAttribute("href")||n.getAttribute("xlink:href");if(!a)throw new Error("unable to get id of use element");const r=t.querySelector(a);if(!r)throw new Error(`unable to find def element with id: ${a}`);const s=new ExcalidrawScene,o=getDefElWithCorrectAttrs(r,n);walk(Object.assign(Object.assign({},e),{scene:s,tw:createTreeWalker(o)}),o);const l=s.elements.pop();l&&i.elements.push(l),walk(e,e.tw.nextNode())},circle:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getNum(n,"r",0),r=2*a,s=getNum(n,"x",0)+getNum(n,"cx",0)-a,o=getNum(n,"y",0)+getNum(n,"cy",0)-a,l=getTransformMatrix(n,i),c=fromValues$1(r,0,0,0,0,r,0,0,0,0,1,0,s,o,0,1),d=multiply(create$1(),l,c),h=Object.assign(Object.assign(Object.assign({},createExEllipse()),presAttrs(n,i)),{x:d[12],y:d[13],width:d[0],height:d[5],groupIds:i.map((e=>e.id))});A.elements.push(h),walk(e,t.nextNode())},ellipse:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getNum(n,"rx",0),r=getNum(n,"ry",0),s=getNum(n,"cx",0),o=getNum(n,"cy",0),l=getNum(n,"x",0)+s-a,c=getNum(n,"y",0)+o-r,d=2*a,h=2*r,u=getTransformMatrix(n,i),g=fromValues$1(d,0,0,0,0,h,0,0,0,0,1,0,l,c,0,1),p=multiply(create$1(),u,g),m=Object.assign(Object.assign(Object.assign({},createExEllipse()),presAttrs(n,i)),{x:p[12],y:p[13],width:p[0],height:p[5],groupIds:i.map((e=>e.id))});A.elements.push(m),walk(e,t.nextNode())},line:e=>{walk(e,e.tw.nextNode())},polygon:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=transformPoints(pointsAttrToPoints(n),getTransformMatrix(n,i)),r=a[0][0],s=a[0][1],o=a.map((([e,t])=>[e-r,t-s])),[l,c]=dimensionsFromPoints(o),d=Object.assign(Object.assign(Object.assign(Object.assign({},createExLine()),getGroupAttrs(i)),presAttrsToElementValues(n)),{points:o.concat([[0,0]]),x:r,y:s,width:l,height:c});A.elements.push(d),walk(e,e.tw.nextNode())},polyline:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getTransformMatrix(n,i),r=transformPoints(pointsAttrToPoints(n),a),s=r[0][0],o=r[0][1],l=r.map((([e,t])=>[e-s,t-o])),[c,d]=dimensionsFromPoints(l),h=has(n,"fill"),u=get(n,"fill"),g=!h||h&&"none"!==u,p=Object.assign(Object.assign(Object.assign(Object.assign({},createExLine()),getGroupAttrs(i)),presAttrsToElementValues(n)),{points:l.concat(g?[[0,0]]:[]),x:s,y:o,width:c,height:d});A.elements.push(p),walk(e,e.tw.nextNode())},rect:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getNum(n,"x",0),r=getNum(n,"y",0),s=getNum(n,"width",0),o=getNum(n,"height",0),l=getTransformMatrix(n,i),c=fromValues$1(s,0,0,0,0,o,0,0,0,0,1,0,a,r,0,1),d=multiply(create$1(),l,c),h=n.hasAttribute("rx")||n.hasAttribute("ry"),u=Object.assign(Object.assign(Object.assign({},createExRect()),presAttrs(n,i)),{x:d[12],y:d[13],width:d[0],height:d[5],roundness:h?{type:ROUNDNESS.LEGACY}:null});A.elements.push(u),walk(e,e.tw.nextNode())},path:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getTransformMatrix(n,i),r=pointsOnPath(get(n,"d")),s=get(n,"fill","black"),o=get(n,"fill-rule","nonzero");let l=[],c=randomId();switch(o){case"nonzero":let e="clockwise";l=r.map(((t,A)=>{const r=transformPoints(t,clone(a)),o=r[0][0],l=r[0][1],[d,h]=dimensionsFromPoints(r),u=r.map((([e,t])=>[e-o,t-l])),g=getWindingOrder(u);0===A&&(e=g,c=randomId());let p=s;return e!==g&&(p="#FFFFFF"),Object.assign(Object.assign(Object.assign(Object.assign({},createExDraw()),{strokeWidth:0,strokeColor:"#00000000"}),presAttrs(n,i)),{points:u,backgroundColor:p,width:d,height:h,x:o+getNum(n,"x",0),y:l+getNum(n,"y",0),groupIds:[c]})}));break;case"evenodd":l=r.map(((e,t)=>{const A=transformPoints(e,clone(a)),r=A[0][0],s=A[0][1],[o,l]=dimensionsFromPoints(A),d=A.map((([e,t])=>[e-r,t-s]));return 0===t&&(c=randomId()),Object.assign(Object.assign(Object.assign({},createExDraw()),presAttrs(n,i)),{points:d,width:o,height:l,x:r+getNum(n,"x",0),y:s+getNum(n,"y",0)})}))}A.elements=A.elements.concat(l),walk(e,t.nextNode())}};function walk(e,t){if(!t)return;const A=t.nodeName;walkers[A]&&walkers[A](e)}const svgToExcalidraw=e=>{const t=(new DOMParser).parseFromString(e,"image/svg+xml"),A=t.querySelectorAll("parsererror"),i=A.length>0;let n=null;if(i)console.error("There were errors while parsing the given SVG: ",[...A].map((e=>e.innerHTML)));else{const e=createTreeWalker(t),A=new ExcalidrawScene;walk({tw:e,scene:A,groups:[],root:t},e.nextNode()),n=A.elements}return{hasErrors:i,errors:i?A:null,content:n}};B([r$d,z,e$a,l$3,b$1,v,h$1,i$5,i$4,h,u,c$1,s]);const GAP=4;class ExcalidrawAutomate{get obsidian(){return obsidian_module__namespace}async getAttachmentFilepath(e){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t.file))return errorMessage("targetView not set","getAttachmentFolderAndFilePath()"),null;const A=await getAttachmentsFolderAndFilePath(app,this.targetView.file.path,e);return getNewUniqueFilepath(app.vault,e,A.folder)}constructor(e,t){this.targetView=null,this.mostRecentMarkdownSVG=null,this.onViewUnloadHook=null,this.onViewModeChangeHook=null,this.onLinkHoverHook=null,this.onLinkClickHook=null,this.onDropHook=null,this.onCanvasColorChangeHook=null,this.activeScript=null,this.plugin=e,this.reset(),this.targetView=t}getViewLastPointerPosition(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.currentPosition:(errorMessage("targetView not set","getExcalidrawAPI()"),null)}getAPI(e){return new ExcalidrawAutomate(this.plugin,e)}setFillStyle(e){switch(e){case 0:return this.style.fillStyle="hachure","hachure";case 1:return this.style.fillStyle="cross-hatch","cross-hatch";default:return this.style.fillStyle="solid","solid"}}setStrokeStyle(e){switch(e){case 0:return this.style.strokeStyle="solid","solid";case 1:return this.style.strokeStyle="dashed","dashed";default:return this.style.strokeStyle="dotted","dotted"}}setStrokeSharpness(e){return 0===e?(this.style.roundness={type:ROUNDNESS.LEGACY},"round"):(this.style.roundness=null,"sharp")}setFontFamily(e){switch(e){case 1:return this.style.fontFamily=4,getFontFamily(4);case 2:return this.style.fontFamily=2,getFontFamily(2);case 3:return this.style.fontFamily=3,getFontFamily(3);default:return this.style.fontFamily=1,getFontFamily(1)}}setTheme(e){return 0===e?(this.canvas.theme="light","light"):(this.canvas.theme="dark","dark")}addToGroup(e){const t=nanoid();return e.forEach((e=>{var A,i;null===(i=null===(A=this.elementsDict[e])||void 0===A?void 0:A.groupIds)||void 0===i||i.push(t)})),t}async toClipboard(e){const t=e?await getTemplate(this.plugin,e,!1,new EmbeddedFilesLoader(this.plugin),0):null;let A=t?t.elements:[];A=A.concat(this.getElements()),navigator.clipboard.writeText(JSON.stringify({type:"excalidraw/clipboard",elements:A}))}async getSceneFromFile(e){if(!e)return errorMessage("file not found","getScene()"),null;if(!this.isExcalidrawFile(e))return errorMessage("file is not an Excalidraw file","getScene()"),null;const t=await getTemplate(this.plugin,e.path,!1,new EmbeddedFilesLoader(this.plugin),0);return{elements:t.elements,appState:t.appState}}getElements(){const e=[],t=Object.keys(this.elementsDict);for(let A=0;A{let t=e.plaintext?e.plaintext+"\n\n":"";const A=this.getElements().filter((e=>"text"===e.type));return t+="# Text Elements\n",A.forEach((e=>{var A,i;t+=`${null!==(A=e.rawText)&&void 0!==A?A:null!==(i=e.originalText)&&void 0!==i?i:e.text} ^${e.id}\n\n`})),this.getElements().filter((e=>"text"!==e.type&&e.link)).forEach((e=>{t+=`${e.link} ^${e.id}\n\n`})),t+=Object.keys(this.imagesDict).length>0?"\n# Embedded files\n":"",Object.keys(this.imagesDict).forEach((e=>{const A=this.imagesDict[e];A.latex?t+=`${e}: $$${A.latex}$$\n`:t+=`${e}: [[${A.file}]]\n`})),t})()+getMarkdownDrawingSection(JSON.stringify(G,null,"\t"),this.plugin.settings.compress))}async createSVG(e,t=!1,A,i,n,a){return n||(n=this.plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":this.plugin.settings.exportWithTheme?void 0:"light"),n&&!A&&(A={withBackground:this.plugin.settings.exportWithBackground,withTheme:!0}),i||(i=new EmbeddedFilesLoader(this.plugin,n?"dark"===n:void 0)),await createSVG(e,t,A,i,n,this.canvas.theme,this.canvas.viewBackgroundColor,this.getElements(),this.plugin,0,a,this.imagesDict)}async createPNG(e,t=1,A,i,n,a){return n||(n=this.plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":this.plugin.settings.exportWithTheme?void 0:"light"),n&&!A&&(A={withBackground:this.plugin.settings.exportWithBackground,withTheme:!0}),i||(i=new EmbeddedFilesLoader(this.plugin,n?"dark"===n:void 0)),await createPNG(e,t,A,i,n,this.canvas.theme,this.canvas.viewBackgroundColor,this.getElements(),this.plugin,0,a,this.imagesDict)}wrapText(e,t){return wrapTextAtCharLength(e,t,this.plugin.settings.forceWrap)}boxedElement(e,t,A,i,n,a,r=null){return{id:e,type:t,x:A,y:i,width:n,height:a,angle:this.style.angle,strokeColor:this.style.strokeColor,backgroundColor:this.style.backgroundColor,fillStyle:this.style.fillStyle,strokeWidth:this.style.strokeWidth,strokeStyle:this.style.strokeStyle,roughness:this.style.roughness,opacity:this.style.opacity,roundness:this.style.strokeSharpness?"round"===this.style.strokeSharpness?{type:ROUNDNESS.ADAPTIVE_RADIUS}:null:this.style.roundness,seed:Math.floor(1e5*Math.random()),version:1,versionNonce:Math.floor(1e9*Math.random()),updated:Date.now(),isDeleted:!1,groupIds:[],boundElements:[],link:r,locked:!1}}addIFrame(e,t,A,i,n,a){var r;if(!this.targetView||!(null===(r=this.targetView)||void 0===r?void 0:r._loaded))return errorMessage("targetView not set","addIFrame()"),null;if(!n&&!a)return errorMessage("Either the url or the file must be set. If both are provided the URL takes precedence","addIFrame()"),null;const s=nanoid();return this.elementsDict[s]=this.boxedElement(s,"iframe",e,t,A,i,n||(a?`[[${app.metadataCache.fileToLinktext(a,this.targetView.file.path,"md"===a.extension)}]]`:"")),s}addRect(e,t,A,i){const n=nanoid();return this.elementsDict[n]=this.boxedElement(n,"rectangle",e,t,A,i),n}addDiamond(e,t,A,i){const n=nanoid();return this.elementsDict[n]=this.boxedElement(n,"diamond",e,t,A,i),n}addEllipse(e,t,A,i){const n=nanoid();return this.elementsDict[n]=this.boxedElement(n,"ellipse",e,t,A,i),n}addBlob(e,t,A,i){const n=.5*i,a=.5*A,r=a/9,s=.8*n,o=[],l=(A,i)=>{const l=A+Math.random()*r-r/2;o.push([l+Math.random()*r-r/2+A%2*r/6+e,i*Math.sqrt(n*n*(1-l*l/(a*a)))+Math.random()*s-s/2+A%2*s/6+t])};let c;for(c=r/2-a;c<=a-r/2;c+=a/6)l(c,1);for(c=a-r/2;c>=r/2-a;c-=a/6)l(c,-1);o.push(o[0]);const d=this.addLine((e=>{const t=getLineBox(e),n=A/t.w,a=i/t.h;let r;for(r=0;r500){const e=500/Math.max(r.size.width,r.size.height);r.size.width=e*r.size.width,r.size.height=e*r.size.height}return this.elementsDict[n]=this.boxedElement(n,"image",e,t,r.size.width,r.size.height),this.elementsDict[n].fileId=s,this.elementsDict[n].scale=[1,1],n}async addLaTex(e,t,A){const i=nanoid(),n=await tex2dataURL(A,this.plugin);return n?(this.imagesDict[n.fileId]={mimeType:n.mimeType,id:n.fileId,dataURL:n.dataURL,created:n.created,file:null,hasSVGwithBitmap:!1,latex:A},this.elementsDict[i]=this.boxedElement(i,"image",e,t,n.size.width,n.size.height),this.elementsDict[i].fileId=n.fileId,this.elementsDict[i].scale=[1,1],i):null}connectObjects(e,t,A,i,n){if(!this.elementsDict[e]||!this.elementsDict[A])return;if(["line","arrow","freedraw"].includes(this.elementsDict[e].type)||["line","arrow","freedraw"].includes(this.elementsDict[A].type))return;const a=(null==n?void 0:n.padding)?n.padding:10,r=(null==n?void 0:n.numberOfPoints)?n.numberOfPoints:0,s=(e,t)=>{switch(e){case"bottom":return[(t.x+(t.x+t.width))/2,t.y+t.height+a];case"left":return[t.x-a,(t.y+(t.y+t.height))/2];case"right":return[t.x+t.width+a,(t.y+(t.y+t.height))/2];default:return[(t.x+(t.x+t.width))/2,t.y-a]}};let o,l,c,d;const h=this.elementsDict[e],u=this.elementsDict[A];if(!t||!i){const e=h.x+h.width/2,A=u.x+u.width/2,n=h.y+h.height/2,a=u.y+u.height/2;if(!t){const t=intersectElementWithLine(h,[A,a],[e,n],4);0===t.length?[o,l]=[e,n]:[o,l]=t[0]}if(!i){const t=intersectElementWithLine(u,[e,n],[A,a],4);0===t.length?[c,d]=[A,a]:[c,d]=t[0]}}t&&([o,l]=s(t,this.elementsDict[e])),i&&([c,d]=s(i,this.elementsDict[A]));const g=r+2,p=[];for(let e=0;eMath.PI/2&&(i-=Math.PI),this.style.angle=i;const a=this.addText(A.x+A.points[1][0]/2-n.width/2,A.y+A.points[1][1]/2-n.height,t);return this.style.angle=0,a}clear(){this.elementsDict={},this.imagesDict={}}reset(){this.clear(),this.activeScript=null,this.style={strokeColor:"#000000",backgroundColor:"transparent",angle:0,fillStyle:"hachure",strokeWidth:1,strokeStyle:"solid",roughness:1,opacity:100,roundness:null,fontFamily:1,fontSize:20,textAlign:"left",verticalAlign:"top",startArrowHead:null,endArrowHead:"arrow"},this.canvas={theme:"light",viewBackgroundColor:"#FFFFFF",gridSize:0}}isExcalidrawFile(e){return this.plugin.isExcalidrawFile(e)}setView(e){if(!e){const e=app.workspace.getActiveViewOfType(ExcalidrawView);if(e instanceof ExcalidrawView)this.targetView=e;else{const e=app.workspace.getLeavesOfType("excalidraw");if(!e||0==e.length)return;this.targetView=e[0].view}}if("active"==e){const e=app.workspace.getActiveViewOfType(ExcalidrawView);if(!(e instanceof ExcalidrawView))return;this.targetView=e}if("first"==e){const e=app.workspace.getLeavesOfType("excalidraw");if(!e||0==e.length)return;this.targetView=e[0].view}return e instanceof ExcalidrawView&&(this.targetView=e),this.targetView}getExcalidrawAPI(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.excalidrawAPI:(errorMessage("targetView not set","getExcalidrawAPI()"),null)}getViewElements(){var e;if(!this.targetView||!(null===(e=this.targetView)||void 0===e?void 0:e._loaded))return errorMessage("targetView not set","getViewElements()"),[];const t=this.targetView.excalidrawAPI;return t?t.getSceneElements():[]}deleteViewElements(e){var t,A,i;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return errorMessage("targetView not set","deleteViewElements()"),!1;const n=null===(i=null===(A=this.targetView)||void 0===A?void 0:A.excalidrawRef)||void 0===i?void 0:i.current;if(!n)return!1;const a=n.getSceneElements(),r=n.getAppState();return this.targetView.updateScene({elements:a.filter((t=>!e.includes(t))),appState:r,commitToHistory:!0}),!0}getViewSelectedElement(){const e=this.getViewSelectedElements();return e?e[0]:null}getViewSelectedElements(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.getViewSelectedElements():(errorMessage("targetView not set","getViewSelectedElements()"),[])}getViewFileForImageElement(e){var t,A,i,n;return this.targetView&&(null===(t=this.targetView)||void 0===t?void 0:t._loaded)?e&&"image"===e.type?null===(n=null===(i=null===(A=this.targetView)||void 0===A?void 0:A.excalidrawData)||void 0===i?void 0:i.getFile(e.fileId))||void 0===n?void 0:n.file:(errorMessage("Must provide an image element as input","getViewFileForImageElement()"),null):(errorMessage("targetView not set","getViewFileForImageElement()"),null)}copyViewElementsToEAforEditing(e){e.forEach((e=>{this.elementsDict[e.id]=cloneElement(e)}))}setViewModeEnabled(e){var t,A,i;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","viewToggleFullScreen()");const n=this.targetView;n.updateScene({appState:{viewModeEnabled:e}}),null===(i=null===(A=n.toolsPanelRef)||void 0===A?void 0:A.current)||void 0===i||i.setExcalidrawViewMode(e)}viewUpdateScene(e,t=!1){var A;this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?this.targetView.updateScene(e,t):errorMessage("targetView not set","viewToggleFullScreen()")}viewZoomToElements(e,t){var A;this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?this.targetView.zoomToElements(e,t):errorMessage("targetView not set","viewToggleFullScreen()")}viewToggleFullScreen(e=!1){var t,A,i;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","viewToggleFullScreen()");const n=this.targetView,a=n.isFullscreen();e&&(n.updateScene({appState:{viewModeEnabled:!a},commitToHistory:!1}),null===(i=null===(A=this.targetView.toolsPanelRef)||void 0===A?void 0:A.current)||void 0===i||i.setExcalidrawViewMode(!a)),a?n.exitFullscreen():n.gotoFullscreen()}connectObjectWithViewSelectedElement(e,t,A,i){const n=this.getViewSelectedElement();if(!n)return!1;const a=n.id;return this.elementsDict[a]=n,this.connectObjects(e,t,a,A,i),delete this.elementsDict[a],!0}async addElementsToView(e=!1,t=!0,A=!1){var i;if(!this.targetView||!(null===(i=this.targetView)||void 0===i?void 0:i._loaded))return errorMessage("targetView not set","addElementsToView()"),!1;const n=this.getElements();return await this.targetView.addElements(n,e,t,this.imagesDict,A)}registerThisAsViewEA(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}deregisterThisAsViewEA(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}getEmbeddedFilesLoader(e){return new EmbeddedFilesLoader(this.plugin,e)}getExportSettings(e,t){return{withBackground:e,withTheme:t}}getBoundingBox(e){const t=getCommonBoundingBox(e);return{topX:t.minX,topY:t.minY,width:t.maxX-t.minX,height:t.maxY-t.minY}}getMaximumGroups(e){return getMaximumGroups(e)}getLargestElement(e){if(!e||0===e.length)return null;let t=e[0];const A=e=>e.height*e.width;let i=A(e[0]);for(let n=1;ni&&(i=a,t=e[n])}return t}getCommonGroupForElements(e){const t=e.map((e=>e.groupIds)).reduce(((e,t)=>t.filter((t=>e.includes(t)))));return t.length>0?t[0]:null}getElementsInTheSameGroupWithElement(e,t){if(!e||!t)return[];const A="text"===e.type&&e.containerId?t.filter((t=>t.id===e.containerId)):[];return 0===e.groupIds.length?1===A.length?[e,A[0]]:[e]:1===A.length?t.filter((t=>t.groupIds.some((t=>e.groupIds.includes(t)))||t===A[0])):t.filter((t=>t.groupIds.some((t=>e.groupIds.includes(t)))))}getElementsInFrame(e,t){return e&&t&&"frame"===e.type?t.filter((t=>t.frameId===e.id)):[]}intersectElementWithLine(e,t,A,i){return intersectElementWithLine(e,t,A,i)}getScriptSettings(){var e;return this.activeScript?null!==(e=this.plugin.settings.scriptEngineSettings[this.activeScript])&&void 0!==e?e:{}:null}async setScriptSettings(e){if(!this.activeScript)return null;this.plugin.settings.scriptEngineSettings[this.activeScript]=e,await this.plugin.saveSettings()}openFileInNewOrAdjacentLeaf(e){if(!(e&&e instanceof obsidian_module.TFile))return null;if(!this.targetView)return null;const t=getNewOrAdjacentLeaf(this.plugin,this.targetView.leaf);return t.openFile(e,{active:!0}),t}measureText(e){var t,A;const i=_measureText(e,this.style.fontSize,this.style.fontFamily,getDefaultLineHeight(this.style.fontFamily));return{width:null!==(t=i.w)&&void 0!==t?t:0,height:null!==(A=i.h)&&void 0!==A?A:0}}async getOriginalImageSize(e){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return errorMessage("targetView not set","getOriginalImageSize()"),null;if(!e||"image"!==e.type)return errorMessage("Please provide a single image element as input","getOriginalImageSize()"),null;const A=this.targetView.excalidrawData.getFile(e.fileId);if(!A)return errorMessage("Please provide a single image element as input","getOriginalImageSize()"),null;const i="dark"===this.getExcalidrawAPI().getAppState().theme,n=A.getImage(i);return await getImageSize(n)}verifyMinimumPluginVersion(e){return verifyMinimumPluginVersion(e)}isExcalidrawView(e){return e instanceof ExcalidrawView}selectElementsInView(e){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","selectElementsInView()");if(!e||0===e.length)return;const A=this.getExcalidrawAPI();if("string"==typeof e[0]){const t=this.getViewElements().filter((t=>e.includes(t.id)));A.selectElements(t)}else A.selectElements(e)}generateElementId(){return nanoid()}cloneElement(e){const t=JSON.parse(JSON.stringify(e));return t.id=nanoid(),t}moveViewElementToZIndex(e,t){var A;if(!this.targetView||!(null===(A=this.targetView)||void 0===A?void 0:A._loaded))return void errorMessage("targetView not set","moveViewElementToZIndex()");const i=this.getExcalidrawAPI(),n=this.getViewElements(),a=n.filter((t=>t.id===e));if(0===a.length)return void errorMessage(`Element (id: ${e}) not found`,"moveViewElementToZIndex");if(t>=n.length)return void i.bringToFront(a);if(t<0)return void i.sendToBack(a);const r=n.indexOf(a[0]);n.splice(t,0,n.splice(r,1)[0]),this.targetView.updateScene({elements:n,commitToHistory:!0})}hexStringToRgb(e){const t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}rgbToHexString(e){return O$1({r:e[0],g:e[1],b:e[2]}).stringHEX({alpha:!1})}hslToRgb(e){const t=O$1({h:e[0],s:e[1],l:e[2]});return[t.red,t.green,t.blue]}rgbToHsl(e){const t=O$1({r:e[0],g:e[1],b:e[2]});return[t.hue,t.saturation,t.lightness]}colorNameToHex(e){return COLOR_NAMES.has(e.toLowerCase().trim())?COLOR_NAMES.get(e.toLowerCase().trim()):e.trim()}getCM(e){if(e)return"string"==typeof e&&(e=this.colorNameToHex(e)),O$1(e);log("Creates a CM object. Visit https://github.com/lbragile/ColorMaster for documentation.")}importSVG(e){const t=svgToExcalidraw(e);return t.hasErrors?(new obsidian_module.Notice(`There were errors while parsing the given SVG:\n${[...t.errors].map((e=>e.innerHTML))}`),!1):(this.copyViewElementsToEAforEditing(t.content),!0)}}async function initExcalidrawAutomate(e){await initFonts();const t=new ExcalidrawAutomate(e);return window.ExcalidrawAutomate=t,t}function destroyExcalidrawAutomate(){delete window.ExcalidrawAutomate}function normalizeLinePoints(e){const t=[],[A,i]=e[0];for(let n=0;n-1||t.search("excalidraw-plugin: locked\n")>-1;await a.loadData(t,l,o?TextMode.parsed:TextMode.raw);let d=t.search("# Text Elements\n");-1==d&&(d=t.search("# Drawing\n"));let h=a.scene;A&&await i.loadSceneFiles(a,(e=>{if(e&&0!==e.length){for(const t of e)t.hasSVGwithBitmap&&(c=!0),a.scene.files[t.id]={mimeType:t.mimeType,id:t.id,dataURL:t.dataURL,created:t.created};h=scaleLoadedImage(a.scene,e).scene}}),n);let u=h.elements;if(s.hasGroupref){const t=s.hasSectionref?getTextElementsMatchingQuery(h.elements,["# "+s.sectionref],!0):h.elements.filter((e=>e.id===s.blockref));t.length>0&&(u=e.ea.getElementsInTheSameGroupWithElement(t[0],h.elements))}if(s.hasFrameref){const t=h.elements.filter((e=>e.id===s.blockref));1===t.length&&(u=e.ea.getElementsInFrame(t[0],h.elements))}return s.hasTaskbone&&(u=u.filter((t=>{var A;return"freedraw"===t.type||"image"===t.type&&!e.isExcalidrawFile(null===(A=a.getFile(t.fileId))||void 0===A?void 0:A.file)}))),{elements:u,appState:h.appState,frontmatter:t.substring(0,d),files:h.files,hasSVGwithBitmap:c}}return{elements:[],appState:{},frontmatter:null,files:[],hasSVGwithBitmap:c}}async function createPNG(e,t=1,A,i,n,a,r,s=[],o,l,c,d){var h,u,g,p,m,w,f;i||(i=new EmbeddedFilesLoader(o)),c=null!=c?c:o.settings.exportPaddingSVG;const E=e?await getTemplate(o,e,!0,i,l):null;let B=null!==(h=null==E?void 0:E.elements)&&void 0!==h?h:[];B=B.concat(s);const b=null!=d?d:{};return(null==E?void 0:E.files)&&Object.values(E.files).forEach((e=>{b[e.id]=e})),await getPNG({type:"excalidraw",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,elements:B,appState:{theme:null!==(g=null!=n?n:null===(u=null==E?void 0:E.appState)||void 0===u?void 0:u.theme)&&void 0!==g?g:a,viewBackgroundColor:null!==(m=null===(p=null==E?void 0:E.appState)||void 0===p?void 0:p.viewBackgroundColor)&&void 0!==m?m:r},files:b},{withBackground:null!==(w=null==A?void 0:A.withBackground)&&void 0!==w?w:o.settings.exportWithBackground,withTheme:null!==(f=null==A?void 0:A.withTheme)&&void 0!==f?f:o.settings.exportWithTheme},c,t)}async function createSVG(e,t=!1,A,i,n,a,r,s=[],o,l,c,d){var h,u,g,p,m,w,f;i||(i=new EmbeddedFilesLoader(o));const E=e?await getTemplate(o,e,!0,i,l):null;let B=null!==(h=null==E?void 0:E.elements)&&void 0!==h?h:[];B=B.concat(s),c=null!=c?c:o.settings.exportPaddingSVG;const b=null!=d?d:{};(null==E?void 0:E.files)&&Object.values(E.files).forEach((e=>{b[e.id]=e}));const v=await getSVG({type:"excalidraw",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,elements:B,appState:{theme:null!==(g=null!=n?n:null===(u=null==E?void 0:E.appState)||void 0===u?void 0:u.theme)&&void 0!==g?g:a,viewBackgroundColor:null!==(m=null===(p=null==E?void 0:E.appState)||void 0===p?void 0:p.viewBackgroundColor)&&void 0!==m?m:r},files:b},{withBackground:null!==(w=null==A?void 0:A.withBackground)&&void 0!==w?w:o.settings.exportWithBackground,withTheme:null!==(f=null==A?void 0:A.withTheme)&&void 0!==f?f:o.settings.exportWithTheme},c),C=getEmbeddedFilenameParts(e);if(!C.hasGroupref&&!C.hasFrameref&&(C.hasBlockref||C.hasSectionref)){let e=C.hasSectionref?getTextElementsMatchingQuery(B,["# "+C.sectionref],!0):B.filter((e=>e.id===C.blockref));if(e.length>0){const t=e[0].containerId;t&&(e=e.concat(B.filter((e=>e.id===t))));const A=o.ea.getBoundingBox(e),i=o.ea.getBoundingBox(B);v.viewBox.baseVal.x=A.topX-i.topX,v.viewBox.baseVal.y=A.topY-i.topY,v.viewBox.baseVal.width=A.width+2*c,v.viewBox.baseVal.height=A.height+2*c}}return(null==E?void 0:E.hasSVGwithBitmap)&&v.setAttribute("hasbitmap","true"),t?embedFontsInSVG(v,o):v}function estimateLineBound(e){let t=1/0,A=1/0,i=-1/0,n=-1/0;for(const[a,r]of e)t=Math.min(t,a),A=Math.min(A,r),i=Math.max(i,a),n=Math.max(n,r);return[t,A,i,n]}function estimateBounds(e){const t=getCommonBoundingBox(e);return[t.minX,t.minY,t.maxX,t.maxY]}function repositionElementsToCursor(e,t,A=!1){const[i,n,a,r]=estimateBounds(e);let[s,o]=[0,0];return[s,o]=A?[t.x-(i+a)/2,t.y-(n+r)/2]:[t.x-i,t.y-n],e.forEach((e=>{e.x=e.x+s,e.y=e.y+o})),e}function errorMessage(e,t){switch(e){case"targetView not set":errorlog({where:"ExcalidrawAutomate",source:t,message:"targetView not set, or no longer active. Use setView before calling this function"});break;case"mobile not supported":errorlog({where:"ExcalidrawAutomate",source:t,message:"this function is not avalable on Obsidian Mobile"});break;default:errorlog({where:"ExcalidrawAutomate",source:t,message:null!=e?e:"unknown error"})}}const insertLaTeXToView=e=>{const t=e.plugin.app,A=e.plugin.ea;new Prompt(t,t$d("ENTER_LATEX"),e.plugin.settings.latexBoilerplate,"\\color{red}\\oint_S {E_n dA = \\frac{1}{{\\varepsilon _0 }}} Q_{inside}").openAndGetValue((async t=>{t&&(A.reset(),await A.addLaTex(0,0,t),A.setView(e),A.addElementsToView(!0,!1,!0))}))},search=async e=>{const t=e.plugin.ea;t.reset(),t.setView(e);const A=t.getViewElements().filter((e=>"text"===e.type||"frame"===e.type));if(0===A.length)return;let i=await ScriptEngine.inputPrompt(e,e.plugin,e.plugin.app,"Search for","use quotation marks for exact match","");if(!i)return;const n=i.matchAll(/"(.*?)"/g);let a,r=[];for(;!(a=n.next()).done;)r.push(a.value[1]);i=i.replaceAll(/"(.*?)"/g,""),r=r.concat(i.split(" ").filter((e=>0!==e.length))),t.targetView.selectElementsMatchingQuery(A,r)},getTextElementsMatchingQuery=(e,t,A=!1)=>e&&0!==e.length&&t&&0!==t.length?e.filter((e=>"text"===e.type&&t.some((t=>{if(A){const A=e.rawText.toLowerCase().split("\n")[0].trim().match(/^#*(# .*)/);return!(!A||2!==A.length)&&A[1]===t.toLowerCase()}return e.rawText.toLowerCase().replaceAll("\n"," ").trim().match(t.toLowerCase())})))):[],getFrameElementsMatchingQuery=(e,t,A=!1)=>e&&0!==e.length&&t&&0!==t.length?e.filter((e=>"frame"===e.type&&t.some((t=>{if(A){const A=e.name.toLowerCase().split("\n")[0].trim().match(/^#*(# .*)/);return!(!A||2!==A.length)&&A[1]===t.toLowerCase()}return e.name.toLowerCase().replaceAll("\n"," ").trim().match(t.toLowerCase())})))):[],cloneElement=e=>Object.assign(Object.assign({},e),{version:e.version+1,updated:Date.now(),versionNonce:Math.floor(1e9*Math.random())}),verifyMinimumPluginVersion=e=>PLUGIN_VERSION===e||isVersionNewerThanOther(PLUGIN_VERSION,e),URL$1="https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/index-new.md";class ScriptInstallPrompt extends obsidian_module.Modal{constructor(e){super(e.app),this.plugin=e}async onOpen(){this.contentEl.classList.add("excalidraw-scriptengine-install"),this.containerEl.classList.add("excalidraw-scriptengine-install");try{const e=await obsidian_module.request({url:URL$1});if(!e)return new obsidian_module.Notice("Error opening the Excalidraw Script Store page. Please double check that you can access the website. I've logged the link in developer console (press CTRL+SHIFT+i)",5e3),log(URL$1),void this.close();await obsidian_module.MarkdownRenderer.renderMarkdown(e,this.contentEl,"",this.plugin),this.contentEl.querySelectorAll("h1[data-heading],h2[data-heading],h3[data-heading]").forEach((e=>{e.setAttribute("id",e.getAttribute("data-heading"))})),this.contentEl.querySelectorAll("a.internal-link").forEach((e=>{e.removeAttribute("target")}))}catch(e){errorlog({where:"ScriptInstallPrompt.onOpen",error:e}),new obsidian_module.Notice("Could not open ScriptEngine repository"),this.close()}}onClose(){this.contentEl.empty()}}function r(e){var t,A,i="";if("string"==typeof e||"number"==typeof e)i+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t{e.view instanceof ExcalidrawView&&e.view.updatePinnedCustomPens()})),this.plugin.saveSettings();const e=this.plugin.settings.customPens[this.pen],t=this.view.excalidrawAPI;setPen(e,t),t.setActiveTool({type:"freedraw"})}}async createForm(){const e=e=>{let t="";if(COLOR_NAMES.has(e))return[COLOR_NAMES.get(e),t];const A=(new Option).style;if(A.color=e,A.color){const e=A.color.match(/^[^\d]*(\d*)[^\d]*(\d*)[^\d]*(\d*)[^\d]*([\d\.]*)?/);return e?(t=e[4]?(Math.round(255*parseFloat(e[4]))<<0).toString(16).padStart(2,"0"):"",[`#${(parseInt(e[1])<<0).toString(16).padStart(2,"0")}${(parseInt(e[2])<<0).toString(16).padStart(2,"0")}${(parseInt(e[3])<<0).toString(16).padStart(2,"0")}`,t]):[null,t]}return[null,t]},t=this.plugin.settings.customPens[this.pen],A=this.contentEl;let i,n,a,r,s;A.createEl("h1",{text:"Pen settings"}),new obsidian_module.Setting(A).setName("Pen type").setDesc("Select type of pen").addDropdown((e=>{e.addOption("default","Excalidraw Default").addOption("highlighter","Highlighter").addOption("finetip","Fine tip pen").addOption("fountain","Fountain pen").addOption("marker","Marker with Outline").addOption("thick-thin","Mindmap Thick-Thin").addOption("thin-thick-thin","Mindmap Thin-Thick-Thin").setValue(t.type).onChange((e=>{this.dirty=!0,t.type=e}))})).addButton((e=>e.setButtonText("Apply").onClick((()=>{this.dirty=!0,t.strokeColor=PENS[t.type].strokeColor,t.backgroundColor=PENS[t.type].backgroundColor,t.fillStyle=PENS[t.type].fillStyle,t.strokeWidth=PENS[t.type].strokeWidth,t.roughness=PENS[t.type].roughness,t.penOptions=Object.assign({},PENS[t.type].penOptions),A.empty(),this.createForm()})))),i=new obsidian_module.Setting(A).setName(fragWithHTML(t.freedrawOnly?"Stroke & fill applies to: Freedraw only":"Stroke & fill applies to: All shapes")).setDesc(fragWithHTML('"All shapes" means that if for example, you select a blue pen with dashed fill and then switch to a different tool (e.g. to a line, a circle, an arrow - i.e. not the freedraw tool), those will all have the same blue line and dashed fill.
"Only applies to the freedraw line" means that if for example you are writing black text, and you select a custom pen (e.g. a yellow highlighter), then after using the highlighter you switch to another tool, the previous settings (e.g. black stroke color) will apply to the new shape.')).addToggle((e=>e.setValue(t.freedrawOnly).onChange((e=>{this.dirty=!0,i.setName(fragWithHTML(e?"Stroke & fill applies to: Freedraw only":"Stroke & fill applies to: All shapes")),t.freedrawOnly=e}))));let o,l,c,d,h,u,g,[p,m]=e(t.strokeColor),w=!1;s=new obsidian_module.Setting(A).setName(fragWithHTML(Boolean(t.strokeColor)?"Stroke color: Preset color":"Stroke color: Current")).setDesc(fragWithHTML("Use current stroke color of the canvas, or set a specific preset color for the pen")).addToggle((A=>A.setValue(!Boolean(t.strokeColor)).onChange((A=>{this.dirty=!0,n.settingEl.style.display=A?"none":"",s.setName(fragWithHTML(A?"Stroke color: Current":"Stroke color: Preset color")),A?delete t.strokeColor:(r.getValue()||([p,m]=e("black"),a.setValue(p),r.setValue("black")),t.strokeColor=r.getValue())})))),n=new obsidian_module.Setting(A).setName("Select stroke color").addButton((A=>A.setButtonText("Use Canvas Current").onClick((()=>{var A,i;const n=this.api.getAppState(),s=null!==(i=null===(A=n.resetCustomPen)||void 0===A?void 0:A.currentItemStrokeColor)&&void 0!==i?i:n.currentItemStrokeColor;[p,m]=e(s),t.strokeColor=s,this.dirty=!0,r.setValue(s),w=!0,a.setValue(p)})))).addText((A=>{r=A,A.setValue(t.strokeColor).onChange((A=>{w=!0,this.dirty=!0,t.strokeColor=A,[p,m]=e(A),p&&a.setValue(p)}))})).addColorPicker((e=>{a=e,e.setValue(null!=p?p:"#000000").onChange((e=>{w?w=!1:(this.dirty=!0,t.strokeColor=e+m,r.setValue(e+m))}))})),n.settingEl.style.display=Boolean(t.strokeColor)?"":"none";let[f,E]=e(t.backgroundColor);o=new obsidian_module.Setting(A).setName(fragWithHTML(Boolean(t.backgroundColor)?"Background color: Preset color":"Background color: Current")).setDesc(fragWithHTML("Toggle to use the current background color of the canvas; or a preset color")).addToggle((A=>A.setValue(!Boolean(t.backgroundColor)).onChange((A=>{this.dirty=!0,o.setName(fragWithHTML(A?"Background color: Current":"Background color: Preset color")),c.settingEl.style.display=A?"none":"",l.settingEl.style.display=A||"transparent"===t.backgroundColor?"none":"",A?delete t.backgroundColor:(h.getValue()||([f,E]=e("black"),d.setValue(f),h.setValue("black")),u.setValue(!1))})))),c=new obsidian_module.Setting(A).setName(fragWithHTML("transparent"===t.backgroundColor?"Background: Transparent":"Color: Preset color")).setDesc("Background has color or is transparent").addToggle((e=>{u=e,e.setValue("transparent"===t.backgroundColor).onChange((e=>{this.dirty=!0,l.settingEl.style.display=e?"none":"",g.settingEl.style.display=e?"none":"",c.setName(fragWithHTML(e?"Background: Transparent":"Color: Preset color")),t.backgroundColor=e?"transparent":d.getValue()}))})),c.settingEl.style.display=Boolean(t.backgroundColor)?"":"none";let B,b,v,C,y,F,x,S,T,I=!1;l=new obsidian_module.Setting(A).setName("Background color").addButton((A=>A.setButtonText("Use Canvas Current").onClick((()=>{var A,i;const n=this.api.getAppState(),a=null!==(i=null===(A=n.resetCustomPen)||void 0===A?void 0:A.currentItemBackgroundColor)&&void 0!==i?i:n.currentItemBackgroundColor;[f,E]=e(a),t.backgroundColor=a,this.dirty=!0,h.setValue(a),I=!0,d.setValue(f)})))).addText((A=>{h=A,A.setValue(t.backgroundColor).onChange((A=>{I=!0,this.dirty=!0,t.backgroundColor=A,[f,E]=e(A),f&&d.setValue(f)}))})).addColorPicker((e=>{d=e,e.setValue(null!=f?f:"#000000").onChange((e=>{I?I=!1:(this.dirty=!0,t.backgroundColor=e+E,h.setValue(e+E))}))})),l.settingEl.style.display=Boolean(t.backgroundColor)&&"transparent"!==t.backgroundColor?"":"none",g=new obsidian_module.Setting(A).setName("Fill Style").addDropdown((e=>e.addOption("","Unset").addOption("dots","Dots (⚠ VERY SLOW performance on large objects!)").addOption("zigzag","Zigzag").addOption("zigzag-line","Zigzag-line").addOption("dashed","Dashed").addOption("hachure","Hachure").addOption("cross-hatch","Cross-hatch").addOption("solid","Solid").setValue(t.fillStyle).onChange((e=>{this.dirty=!0,t.fillStyle=e})))),g.settingEl.style.display=Boolean(t.backgroundColor)&&"transparent"!==t.backgroundColor?"":"none",B=new obsidian_module.Setting(A).setName(fragWithHTML(`Sloppiness: ${null===t.roughness?"Not Set":t.roughness<=.5?"Architect (":t.roughness<=1.5?"Artist (":"Cartoonist ("}${null===t.roughness?"":`${t.roughness})`}`)).setDesc("Line sloppiness of the shape fill pattern").addSlider((e=>e.setLimits(-.5,3,.5).setValue(null===t.roughness?-.5:t.roughness).onChange((e=>{this.dirty=!0,t.roughness=-.5===e?null:e,B.setName(fragWithHTML(`Sloppiness: ${null===t.roughness?"Not Set":t.roughness<=.5?"Architect (":t.roughness<=1.5?"Artist (":"Cartoonist ("}${null===t.roughness?"":`${t.roughness})`}`))})))),b=new obsidian_module.Setting(A).setName(fragWithHTML(`Stroke Width ${0===t.strokeWidth?"Not Set":t.strokeWidth}`)).addSlider((e=>e.setLimits(0,5,.5).setValue(t.strokeWidth).onChange((e=>{this.dirty=!0,t.strokeWidth=e,b.setName(fragWithHTML(`Stroke Width ${0===t.strokeWidth?"Not Set":t.strokeWidth}`))})))),new obsidian_module.Setting(A).setName("Highlighter pen?").addToggle((e=>e.setValue(t.penOptions.highlighter).onChange((e=>{this.dirty=!0,t.penOptions.highlighter=e})))),new obsidian_module.Setting(A).setName("Pressure sensitve pen?").setDesc(fragWithHTML("toggle on: pressure sensitive
toggle off: constant pressure")).addToggle((e=>e.setValue(!t.penOptions.constantPressure).onChange((e=>{this.dirty=!0,t.penOptions.constantPressure=!e,v.settingEl.style.display=t.penOptions.constantPressure?"none":""})))),t.penOptions.hasOutline&&0===t.penOptions.outlineWidth&&(t.penOptions.outlineWidth=.5,this.dirty=!0),!t.penOptions.hasOutline&&t.penOptions.outlineWidth>0&&(t.penOptions.outlineWidth=0,this.dirty=!0),C=new obsidian_module.Setting(A).setName(fragWithHTML(0===t.penOptions.outlineWidth?"No outline":`Outline width ${t.penOptions.outlineWidth}`)).setDesc("If the stroke has an outline, this will mean the stroke color is the outline color, and the background color is the pen stroke's fill color. If the pen does not have an outline then the pen color is the stroke color. The Fill Style setting applies to the fill style of the enclosed shape, not of the line itself. The line can only have solid fill.").addSlider((e=>e.setLimits(0,8,.5).setValue(t.penOptions.outlineWidth).onChange((e=>{this.dirty=!0,t.penOptions.outlineWidth=e,t.penOptions.hasOutline=e>0,C.setName(fragWithHTML(0===t.penOptions.outlineWidth?"No outline":`Outline width ${t.penOptions.outlineWidth}`))})))),A.createEl("h2",{text:"Perfect Freehand settings"}),A.createEl("p").innerHTML='Read the Perfect Freehand documentation following this link.',y=new obsidian_module.Setting(A).setName(fragWithHTML(`Thinnning ${t.penOptions.options.thinning}`)).setDesc(fragWithHTML("The effect of pressure on the stroke's size.
To create a stroke with a steady line, set the thinning option to 0.
To create a stroke that gets thinner with pressure instead of thicker, use a negative number for the thinning option.")).addSlider((e=>e.setLimits(-1,1,.05).setValue(t.penOptions.options.thinning).onChange((e=>{this.dirty,y.setName(fragWithHTML(`Thinnning ${e}`)),t.penOptions.options.thinning=e})))),F=new obsidian_module.Setting(A).setName(fragWithHTML(`Smoothing ${t.penOptions.options.smoothing}`)).setDesc(fragWithHTML("How much to soften the stroke's edges.")).addSlider((e=>e.setLimits(0,1,.05).setValue(t.penOptions.options.smoothing).onChange((e=>{this.dirty,F.setName(fragWithHTML(`Smoothing ${e}`)),t.penOptions.options.smoothing=e})))),x=new obsidian_module.Setting(A).setName(fragWithHTML(`Streamline ${t.penOptions.options.streamline}`)).setDesc(fragWithHTML("\tHow much to streamline the stroke.")).addSlider((e=>e.setLimits(0,1,.05).setValue(t.penOptions.options.streamline).onChange((e=>{this.dirty,x.setName(fragWithHTML(`Streamline ${e}`)),t.penOptions.options.streamline=e})))),new obsidian_module.Setting(A).setName("Easing function").setDesc(fragWithHTML('An easing function for the tapering effect. For more info click here')).addDropdown((e=>e.addOptions(EASINGFUNCTIONS).setValue(t.penOptions.options.easing).onChange((e=>{this.dirty=!0,t.penOptions.options.easing=e})))),v=new obsidian_module.Setting(A).setName("Simulate Pressure").setDesc("Whether to simulate pressure based on velocity.").addDropdown((e=>e.addOption("true","Always").addOption("false","Never").addOption("","Yes for mouse, No for pen").setValue(!0===t.penOptions.options.simulatePressure?"true":!1===t.penOptions.options.simulatePressure?"false":"").onChange((e=>{switch(this.dirty=!0,e){case"true":t.penOptions.options.simulatePressure=!0;break;case"false":t.penOptions.options.simulatePressure=!1;break;default:delete t.penOptions.options.simulatePressure}})))),v.settingEl.style.display=t.penOptions.constantPressure?"none":"",A.createEl("h3",{text:"Start"}),A.createEl("p",{text:"Tapering options for the start of the line."}),new obsidian_module.Setting(A).setName("Cap Start").setDesc("Whether to draw a cap").addToggle((e=>e.setValue(t.penOptions.options.start.cap).onChange((e=>{this.dirty=!0,t.penOptions.options.start.cap=e})))),S=new obsidian_module.Setting(A).setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.start.taper?"true":t.penOptions.options.start.taper}`)).setDesc("The distance to taper. If set to true, the taper will be the total length of the stroke.").addSlider((e=>e.setLimits(0,151,1).setValue("boolean"==typeof t.penOptions.options.start.taper?151:t.penOptions.options.start.taper).onChange((e=>{this.dirty,t.penOptions.options.start.taper=151===e||e,S.setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.start.taper?"true":t.penOptions.options.start.taper}`))})))),new obsidian_module.Setting(A).setName("Easing function").setDesc(fragWithHTML('An easing function for the tapering effect. For more info click here')).addDropdown((e=>e.addOptions(EASINGFUNCTIONS).setValue(t.penOptions.options.start.easing).onChange((e=>{this.dirty=!0,t.penOptions.options.start.easing=e})))),A.createEl("h3",{text:"End"}),A.createEl("p",{text:"Tapering options for the end of the line."}),new obsidian_module.Setting(A).setName("Cap End").setDesc("Whether to draw a cap").addToggle((e=>e.setValue(t.penOptions.options.end.cap).onChange((e=>{this.dirty=!0,t.penOptions.options.end.cap=e})))),T=new obsidian_module.Setting(A).setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.end.taper?"true":t.penOptions.options.end.taper}`)).setDesc("The distance to taper. If set to true, the taper will be the total length of the stroke.").addSlider((e=>e.setLimits(0,151,1).setValue("boolean"==typeof t.penOptions.options.end.taper?151:t.penOptions.options.end.taper).onChange((e=>{this.dirty,t.penOptions.options.end.taper=151===e||e,T.setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.end.taper?"true":t.penOptions.options.end.taper}`))})))),new obsidian_module.Setting(A).setName("Easing function").setDesc(fragWithHTML('An easing function for the tapering effect. For more info click here')).addDropdown((e=>e.addOptions(EASINGFUNCTIONS).setValue(t.penOptions.options.end.easing).onChange((e=>{this.dirty=!0,t.penOptions.options.end.easing=e}))))}}var defaultAttributes={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const toKebabCase=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),createLucideIcon=(e,t)=>{const A=React.forwardRef((({color:A="currentColor",size:i=24,strokeWidth:n=2,absoluteStrokeWidth:a,children:r,...s},o)=>{return React.createElement("svg",{ref:o,...defaultAttributes,width:i,height:i,stroke:A,strokeWidth:a?24*Number(n)/Number(i):n,className:`lucide lucide-${l=e,l.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...t.map((([e,t])=>React.createElement(e,t))),...(Array.isArray(r)?r:[r])||[]]);var l}));return A.displayName=`${e}`,A},Globe=createLucideIcon("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"2",x2:"22",y1:"12",y2:"12",key:"1dnqot"}],["path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z",key:"nb9nel"}]]),RotateCcw=createLucideIcon("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),Scan=createLucideIcon("Scan",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]),ICONS={ExportImage:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("g",{strokeWidth:"1.25"},React__namespace.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),React__namespace.createElement("path",{d:"M15 8h.01"}),React__namespace.createElement("path",{d:"M12 20h-5a3 3 0 0 1 -3 -3v-10a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v5"}),React__namespace.createElement("path",{d:"M4 15l4 -4c.928 -.893 2.072 -.893 3 0l4 4"}),React__namespace.createElement("path",{d:"M14 14l1 -1c.617 -.593 1.328 -.793 2.009 -.598"}),React__namespace.createElement("path",{d:"M19 16v6"}),React__namespace.createElement("path",{d:"M22 19l-3 3l-3 -3"}))),Reload:React__namespace.createElement(RotateCcw,null),Globe:React__namespace.createElement(Globe,null),ZoomToSelectedElement:React__namespace.createElement(Scan,null),ZoomToSection:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("text",{x:"6",y:"18",fontSize:"22px"},"#")),ZoomToBlock:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("text",{x:"1",y:"18",fontSize:"22px"},"#^")),Discord:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"var(--icon-fill-color)",stroke:"none",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 640 512"},React__namespace.createElement("path",{d:"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"})),Github:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}),React__namespace.createElement("path",{d:"M9 18c-4.51 2-5-2-7-2"})),YouTube:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M12 19c-2.3 0-6.4-.2-8.1-.6-.7-.2-1.2-.7-1.4-1.4-.3-1.1-.5-3.4-.5-5s.2-3.9.5-5c.2-.7.7-1.2 1.4-1.4C5.6 5.2 9.7 5 12 5s6.4.2 8.1.6c.7.2 1.2.7 1.4 1.4.3 1.1.5 3.4.5 5s-.2 3.9-.5 5c-.2.7-.7 1.2-1.4 1.4-1.7.4-5.8.6-8.1.6 0 0 0 0 0 0z"}),React__namespace.createElement("polygon",{points:"10 15 15 12 10 9"})),heart:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M20.42 4.58a5.4 5.4 0 0 0-7.65 0l-.77.78-.77-.78a5.4 5.4 0 0 0-7.65 0C1.46 6.7 1.33 10.28 4 13l8 8 8-8c2.67-2.72 2.54-6.3.42-8.42z"})),twitter:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z"})),exportLibrary:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 200 190",fill:"var(--icon-fill-color)"},React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M50 10h20v20H50"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M50 10h20m-20 0h20m0 0v20m0-20v20m0 0H50m20 0H50m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M90 10h20v20H90"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M90 10h20m-20 0h20m0 0v20m0-20v20m0 0H90m20 0H90m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M130 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M130 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M170 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M170 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M70 50h60v80h20l-50 50-50-50h20V50"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M70 50h60m-60 0h60m0 0v80m0-80v80m0 0h20m-20 0h20m0 0-50 50m50-50-50 50m0 0-50-50m50 50-50-50m0 0h20m-20 0h20m0 0V50m0 80V50m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M10 10h20v20H10"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M10 10h20m-20 0h20m0 0v20m0-20v20m0 0H10m20 0H10m0 0V10m0 20V10"}))),insertPDF:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M64 464H96v48H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V288H336V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16zM176 352h32c30.9 0 56 25.1 56 56s-25.1 56-56 56H192v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V448 368c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H192v48h16zm96-80h32c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H304c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H320v96h16zm80-112c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V432 368z"})),insertImage:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"})),insertMD:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"})),insertLaTeX:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",stroke:"none",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"})),insertLink:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"none",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"})),search:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7C401.8 87.79 326.8 13.32 235.2 1.723C99.01-15.51-15.51 99.01 1.724 235.2c11.6 91.64 86.08 166.7 177.6 178.9c53.8 7.189 104.3-6.236 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 0C515.9 484.7 515.9 459.3 500.3 443.7zM79.1 208c0-70.58 57.42-128 128-128s128 57.42 128 128c0 70.58-57.42 128-128 128S79.1 278.6 79.1 208z"})),ocr:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"m6 18 6-12 6 12"}),React__namespace.createElement("path",{d:"M8 14h8"}),React__namespace.createElement("path",{d:"M3 7V5a2 2 0 0 1 2-2h2"}),React__namespace.createElement("path",{d:"M17 3h2a2 2 0 0 1 2 2v2"}),React__namespace.createElement("path",{d:"M21 17v2a2 2 0 0 1-2 2h-2"}),React__namespace.createElement("path",{d:"M7 21H5a2 2 0 0 1-2-2v-2"})),scriptEngine:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeLinecap:"round",strokeWidth:"4"},React__namespace.createElement("g",{transform:"translate(-8,-8)"},React__namespace.createElement("path",{d:"M24.318 37.983c-1.234-1.232-8.433-3.903-7.401-7.387 1.057-3.484 9.893-12.443 13.669-13.517 3.776-1.074 6.142 6.523 9.012 7.073 2.87.55 6.797-1.572 8.207-3.694 1.384-2.148-3.147-7.413.15-9.168 3.298-1.755 16.389-2.646 19.611-1.284 3.247 1.363-1.611 7.335-.151 9.483 1.46 2.148 6.067 3.746 8.836 3.38 2.769-.368 4.154-6.733 7.728-5.633 3.575 1.1 12.36 8.828 13.67 12.233 1.308 3.406-5.186 5.423-5.79 8.2-.58 2.75-.026 6.705 2.265 8.355 2.266 1.65 9.642-1.78 11.404 1.598 1.762 3.38 1.007 15.35-.806 18.651-1.787 3.353-7.753-.367-9.969 1.31-2.215 1.65-3.901 5.92-3.373 8.67.504 2.777 7.754 4.48 6.445 7.885C96.49 87.543 87.15 95.454 83.5 96.685c-3.65 1.231-4.96-4.741-7.577-5.16-2.593-.393-6.57.707-8.03 2.75-1.436 2.017 2.668 7.806-.63 9.483-3.323 1.676-15.759 2.226-19.157.655-3.373-1.598.554-7.964-1.108-10.138-1.687-2.174-6.394-3.431-9.012-2.907-2.643.55-3.273 7.282-6.747 6.103-3.499-1.126-12.788-9.535-14.172-13.019-1.36-3.484 5.437-5.108 5.966-7.858.529-2.777-.68-7.073-2.744-8.697-2.064-1.624-7.93 2.41-9.642-1.126-1.737-3.537-2.441-16.765-.654-20.118 1.787-3.3 9.062 1.598 11.429.183 2.366-1.44 2.316-7.282 2.769-8.749m.126-.104c-1.234-1.232-8.433-3.903-7.401-7.387 1.057-3.484 9.893-12.443 13.669-13.517 3.776-1.074 6.142 6.523 9.012 7.073 2.87.55 6.797-1.572 8.207-3.694 1.384-2.148-3.147-7.413.15-9.168 3.298-1.755 16.389-2.646 19.611-1.284 3.247 1.363-1.611 7.335-.151 9.483 1.46 2.148 6.067 3.746 8.836 3.38 2.769-.368 4.154-6.733 7.728-5.633 3.575 1.1 12.36 8.828 13.67 12.233 1.308 3.406-5.186 5.423-5.79 8.2-.58 2.75-.026 6.705 2.265 8.355 2.266 1.65 9.642-1.78 11.404 1.598 1.762 3.38 1.007 15.35-.806 18.651-1.787 3.353-7.753-.367-9.969 1.31-2.215 1.65-3.901 5.92-3.373 8.67.504 2.777 7.754 4.48 6.445 7.885C96.49 87.543 87.15 95.454 83.5 96.685c-3.65 1.231-4.96-4.741-7.577-5.16-2.593-.393-6.57.707-8.03 2.75-1.436 2.017 2.668 7.806-.63 9.483-3.323 1.676-15.759 2.226-19.157.655-3.373-1.598.554-7.964-1.108-10.138-1.687-2.174-6.394-3.431-9.012-2.907-2.643.55-3.273 7.282-6.747 6.103-3.499-1.126-12.788-9.535-14.172-13.019-1.36-3.484 5.437-5.108 5.966-7.858.529-2.777-.68-7.073-2.744-8.697-2.064-1.624-7.93 2.41-9.642-1.126-1.737-3.537-2.441-16.765-.654-20.118 1.787-3.3 9.062 1.598 11.429.183 2.366-1.44 2.316-7.282 2.769-8.749",fill:"none",strokeWidth:"2"}),React__namespace.createElement("path",{d:"M81.235 56.502a23.3 23.3 0 0 1-1.46 8.068 20.785 20.785 0 0 1-1.762 3.72 24.068 24.068 0 0 1-5.337 6.26 22.575 22.575 0 0 1-3.449 2.358 23.726 23.726 0 0 1-7.803 2.803 24.719 24.719 0 0 1-8.333 0 24.102 24.102 0 0 1-4.028-1.074 23.71 23.71 0 0 1-3.776-1.729 23.259 23.259 0 0 1-6.369-5.265 23.775 23.775 0 0 1-2.416-3.353 24.935 24.935 0 0 1-1.762-3.72 23.765 23.765 0 0 1-1.083-3.981 23.454 23.454 0 0 1 0-8.173c.252-1.336.604-2.698 1.083-3.956a24.935 24.935 0 0 1 1.762-3.72 22.587 22.587 0 0 1 2.416-3.378c.881-1.048 1.888-2.017 2.946-2.908a24.38 24.38 0 0 1 3.423-2.357 23.71 23.71 0 0 1 3.776-1.73 21.74 21.74 0 0 1 4.028-1.047 23.437 23.437 0 0 1 8.333 0 24.282 24.282 0 0 1 7.803 2.777 26.198 26.198 0 0 1 3.45 2.357 24.62 24.62 0 0 1 5.336 6.287 20.785 20.785 0 0 1 1.762 3.72 21.32 21.32 0 0 1 1.083 3.955c.251 1.336.302 3.405.377 4.086.05.681.05-.68 0 0",fill:"none"}),React__namespace.createElement("path",{d:"M69.404 56.633c-6.596-3.3-13.216-6.6-19.51-9.744m19.51 9.744c-6.747-3.379-13.493-6.758-19.51-9.744m0 0v19.489m0-19.49v19.49m0 0c4.355-2.148 8.71-4.322 19.51-9.745m-19.51 9.745c3.978-1.965 7.93-3.956 19.51-9.745m0 0h0m0 0h0"}))),openLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v7"}),React__namespace.createElement("polyline",{points:"14 2 14 8 20 8"}),React__namespace.createElement("path",{d:"m10 18 3-3-3-3"}),React__namespace.createElement("path",{d:"M4 18v-1a2 2 0 0 1 2-2h6"})),openLinkProperties:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v7"}),React__namespace.createElement("polyline",{points:"14 2 14 8 20 8",fill:"var(--icon-fill-color)"}),React__namespace.createElement("path",{d:"m10 18 3-3-3-3"}),React__namespace.createElement("path",{d:"M4 18v-1a2 2 0 0 1 2-2h6"})),switchToMarkdown:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",stroke:"var(--icon-fill-color)",strokeWidth:"10",fill:"var(--icon-fill-color)"},React__namespace.createElement("path",{d:"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"})),gotoFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M128 32H32C14.31 32 0 46.31 0 64v96c0 17.69 14.31 32 32 32s32-14.31 32-32V96h64c17.69 0 32-14.31 32-32S145.7 32 128 32zM416 32h-96c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32V64C448 46.31 433.7 32 416 32zM128 416H64v-64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96c0 17.69 14.31 32 32 32h96c17.69 0 32-14.31 32-32S145.7 416 128 416zM416 320c-17.69 0-32 14.31-32 32v64h-64c-17.69 0-32 14.31-32 32s14.31 32 32 32h96c17.69 0 32-14.31 32-32v-96C448 334.3 433.7 320 416 320z"})),exitFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M128 320H32c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32v-96C160 334.3 145.7 320 128 320zM416 320h-96c-17.69 0-32 14.31-32 32v96c0 17.69 14.31 32 32 32s32-14.31 32-32v-64h64c17.69 0 32-14.31 32-32S433.7 320 416 320zM320 192h96c17.69 0 32-14.31 32-32s-14.31-32-32-32h-64V64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96C288 177.7 302.3 192 320 192zM128 32C110.3 32 96 46.31 96 64v64H32C14.31 128 0 142.3 0 160s14.31 32 32 32h96c17.69 0 32-14.31 32-32V64C160 46.31 145.7 32 128 32z"})),releaseNotes:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M0 219.2v212.5c0 14.25 11.62 26.25 26.5 27C75.32 461.2 180.2 471.3 240 511.9V245.2C181.4 205.5 79.99 194.8 29.84 192C13.59 191.1 0 203.6 0 219.2zM482.2 192c-50.09 2.848-151.3 13.47-209.1 53.09C272.1 245.2 272 245.3 272 245.5v266.5c60.04-40.39 164.7-50.76 213.5-53.28C500.4 457.9 512 445.9 512 431.7V219.2C512 203.6 498.4 191.1 482.2 192zM352 96c0-53-43-96-96-96S160 43 160 96s43 96 96 96S352 149 352 96z"})),rawMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 60"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"4",d:"M20 10H10m10 0H10m0 0v40m0-40v40m0 0h10m-10 0h10M40 10H30m10 0H30m0 0v40m0-40v40m0 0h10m-10 0h10M60 10h10m-10 0h10m0 0v40m0-40v40m0 0H60m10 0H60M80 10h10m-10 0h10m0 0v40m0-40v40m0 0H80m10 0H80"})),parsedMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",stroke:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M574.1 280.4l-45.38-181.8c-5.875-23.63-21.62-44-43-55.75c-21.5-11.75-46.1-14.13-70.25-6.375l-15.25 5.125c-8.375 2.75-12.87 11.88-10 20.25l5 15.13c2.75 8.375 11.88 12.88 20.25 10.13l13.12-4.375c10.88-3.625 23-3.625 33.25 1.75c10.25 5.375 17.5 14.5 20.38 25.75l38.38 153.9c-22.12-6.875-49.75-12.5-81.13-12.5c-34.88 0-73.1 7-114.9 26.75H251.4C210.5 258.6 171.4 251.6 136.5 251.6c-31.38 0-59 5.625-81.12 12.5l38.38-153.9c2.875-11.25 10.12-20.38 20.5-25.75C124.4 79.12 136.5 79.12 147.4 82.74l13.12 4.375c8.375 2.75 17.5-1.75 20.25-10.13l5-15.13C188.6 53.49 184.1 44.37 175.6 41.62l-15.25-5.125c-23.13-7.75-48.75-5.375-70.13 6.375c-21.37 11.75-37.12 32.13-43 55.75L1.875 280.4C.6251 285.4 .0001 290.6 .0001 295.9v70.25C.0001 428.1 51.63 480 115.3 480h37.13c60.25 0 110.4-46 114.9-105.4l2.875-38.63h35.75l2.875 38.63C313.3 433.1 363.4 480 423.6 480h37.13c63.62 0 115.2-51 115.2-113.9V295.9C576 290.6 575.4 285.5 574.1 280.4zM203.4 369.7c-2 26-24.38 46.25-51 46.25H115.2C87 415.1 64 393.6 64 366.1v-37.5c18.12-6.5 43.38-13 72.62-13c23.88 0 47.25 4.375 69.88 13L203.4 369.7zM512 366.1c0 27.5-23 49.88-51.25 49.88h-37.13c-26.62 0-49-20.25-51-46.25l-3.125-41.13c22.62-8.625 46.13-13 70-13c29 0 54.38 6.5 72.5 13V366.1z"})),convertFile:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:"0 110 700 340",xmlns:"http://www.w3.org/2000/svg",stroke:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"m593.95 239.4v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4688-1.457-3.1875-2.6445-5.0742-3.5h-1.5742c-1.4727-0.49219-3.0039-0.78516-4.5508-0.875h-124.25c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v87.5h-70v-105.88-1.0508c-0.089844-1.5469-0.38281-3.0781-0.875-4.5508v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4727-1.457-3.1914-2.6445-5.0742-3.5h-1.5742c-1.7031-0.875-3.5352-1.4688-5.4258-1.75h-123.55c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v245c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-52.5h70v122.5c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-192.5-1.0508c-0.14453-1.5547-0.5-3.0859-1.0508-4.5508zm-313.95 110.6h-140v-210h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v87.5h-52.5c-6.2539 0-12.031 3.3359-15.156 8.75s-3.125 12.086 0 17.5 8.9023 8.75 15.156 8.75h52.5zm140 70v-105h27.824l-5.0742 5.0742c-3.7031 3.1719-5.9141 7.7461-6.1055 12.617-0.1875 4.8711 1.668 9.6016 5.1133 13.051 3.4492 3.4453 8.1797 5.3008 13.051 5.1133 4.8711-0.19141 9.4453-2.4023 12.617-6.1055l35-35c3.2578-3.2773 5.0898-7.7148 5.0898-12.336 0-4.625-1.832-9.0586-5.0898-12.34l-35-35c-4.5078-3.8555-10.66-5.1719-16.348-3.4883-5.6875 1.6797-10.137 6.1289-11.816 11.816-1.6836 5.6914-0.37109 11.844 3.4883 16.348l5.0742 5.0742h-27.824v-69.824h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v157.5z"})),cog:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M495.9 166.6C499.2 175.2 496.4 184.9 489.6 191.2L446.3 230.6C447.4 238.9 448 247.4 448 256C448 264.6 447.4 273.1 446.3 281.4L489.6 320.8C496.4 327.1 499.2 336.8 495.9 345.4C491.5 357.3 486.2 368.8 480.2 379.7L475.5 387.8C468.9 398.8 461.5 409.2 453.4 419.1C447.4 426.2 437.7 428.7 428.9 425.9L373.2 408.1C359.8 418.4 344.1 427 329.2 433.6L316.7 490.7C314.7 499.7 307.7 506.1 298.5 508.5C284.7 510.8 270.5 512 255.1 512C241.5 512 227.3 510.8 213.5 508.5C204.3 506.1 197.3 499.7 195.3 490.7L182.8 433.6C167 427 152.2 418.4 138.8 408.1L83.14 425.9C74.3 428.7 64.55 426.2 58.63 419.1C50.52 409.2 43.12 398.8 36.52 387.8L31.84 379.7C25.77 368.8 20.49 357.3 16.06 345.4C12.82 336.8 15.55 327.1 22.41 320.8L65.67 281.4C64.57 273.1 64 264.6 64 256C64 247.4 64.57 238.9 65.67 230.6L22.41 191.2C15.55 184.9 12.82 175.3 16.06 166.6C20.49 154.7 25.78 143.2 31.84 132.3L36.51 124.2C43.12 113.2 50.52 102.8 58.63 92.95C64.55 85.8 74.3 83.32 83.14 86.14L138.8 103.9C152.2 93.56 167 84.96 182.8 78.43L195.3 21.33C197.3 12.25 204.3 5.04 213.5 3.51C227.3 1.201 241.5 0 256 0C270.5 0 284.7 1.201 298.5 3.51C307.7 5.04 314.7 12.25 316.7 21.33L329.2 78.43C344.1 84.96 359.8 93.56 373.2 103.9L428.9 86.14C437.7 83.32 447.4 85.8 453.4 92.95C461.5 102.8 468.9 113.2 475.5 124.2L480.2 132.3C486.2 143.2 491.5 154.7 495.9 166.6V166.6zM256 336C300.2 336 336 300.2 336 255.1C336 211.8 300.2 175.1 256 175.1C211.8 175.1 176 211.8 176 255.1C176 300.2 211.8 336 256 336z"})),trayMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M618.1 97.67c-13.02-4.375-27.45 .1562-35.72 11.16L464 266.7l-118.4-157.8c-8.266-11.03-22.64-15.56-35.72-11.16C296.8 102 288 114.2 288 128v256c0 17.69 14.33 32 32 32s32-14.31 32-32v-160l86.41 115.2c12.06 16.12 39.13 16.12 51.19 0L576 224v160c0 17.69 14.33 32 32 32s32-14.31 32-32v-256C640 114.2 631.2 102 618.1 97.67zM224 96.01H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h64v223.1c0 17.69 14.33 31.99 32 31.99s32-14.3 32-31.99V160h64c17.67 0 32-14.31 32-32S241.7 96.01 224 96.01z"})),copyElementLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 260 260","aria-hidden":"true",focusable:"false",role:"img"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"8",d:"M10 10h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0V10m0 40V10M210 10h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0V10m0 40V10M210 210h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0v-40m0 40v-40M10 210h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0v-40m0 40v-40M30 210V50m0 160V50M50 30h160M50 30h160M230 50v160m0-160v160M50 230h160m-160 0h160"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M110 90c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10m0-80c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10M150 90c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10m0-80c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M89.868 130.198c13.36-.03 66.78-.17 80.13-.2m-80.13.2c13.36-.03 66.78-.17 80.13-.2"})),importSVG:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 526 526"},React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"var(--input-bg-color)",strokeWidth:"0",d:"m133.462 71 .33-6.54.97-6.34 1.58-6.13 2.16-5.88 2.69-5.6 3.21-5.27 3.69-4.93 4.13-4.55 4.55-4.13 4.93-3.69 5.27-3.21 5.6-2.69 5.88-2.16 6.13-1.58 6.34-.97 6.54-.33h160v128l.16 3.28.49 3.18.79 3.07 1.07 2.94 1.35 2.8 1.6 2.63 1.84 2.47 2.06 2.27 2.27 2.06 2.47 1.84 2.63 1.6 2.8 1.35 2.94 1.07 3.07.79 3.18.49 3.28.16h128v288l-.33 6.54-.97 6.34-1.58 6.13-2.16 5.88-2.69 5.6-3.21 5.27-3.69 4.93-4.13 4.55-4.55 4.13-4.93 3.69-5.27 3.21-5.6 2.69-5.88 2.16-6.13 1.58-6.34.97-6.54.33h-256l-6.54-.33-6.34-.97-6.13-1.58-5.88-2.16-5.6-2.69-5.27-3.21-4.93-3.69-4.55-4.13-4.13-4.55-3.69-4.93-3.21-5.27-2.69-5.6-2.16-5.88-1.58-6.13-.97-6.34-.33-6.54V343h174.1l-39 39-1.65 1.83-1.43 1.94-1.22 2.05-.99 2.13-.77 2.2-.55 2.25-.33 2.29-.11 2.3.11 2.3.33 2.28.55 2.24.77 2.19.99 2.12 1.22 2.04 1.43 1.93 1.65 1.81 1.83 1.64 1.94 1.42 2.05 1.2 2.13.99 2.2.76 2.25.56 2.29.33 2.3.11 2.3-.1 2.28-.33 2.24-.54 2.19-.77 2.12-.98 2.04-1.21 1.93-1.43 1.81-1.65 80-80 1.65-1.83 1.43-1.94 1.22-2.05.99-2.13.77-2.2.55-2.25.33-2.29.11-2.3-.11-2.3-.33-2.28-.55-2.24-.77-2.19-.99-2.12-1.22-2.04-1.43-1.93-1.65-1.81-80-80-1.83-1.65-1.94-1.43-2.05-1.22-2.13-.99-2.2-.77-2.25-.55-2.29-.33-2.3-.11-2.3.11-2.28.33-2.24.55-2.19.77-2.12.99-2.04 1.22-1.93 1.43-1.81 1.65-1.64 1.83-1.42 1.94-1.2 2.05-.99 2.13-.76 2.2-.56 2.25-.33 2.29-.11 2.3.1 2.3.33 2.28.54 2.24.77 2.19.98 2.12 1.21 2.04 1.43 1.93 1.65 1.81 39 39h-174.1V71"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"18",d:"M133.462 71s0 0 0 0m0 0s0 0 0 0m0 0 .33-6.54m-.33 6.54c.13-2.57.26-5.13.33-6.54m0 0c.36-2.33.72-4.67.97-6.34m-.97 6.34c.35-2.26.69-4.53.97-6.34m0 0c.51-1.99 1.03-3.98 1.58-6.13m-1.58 6.13c.4-1.56.81-3.12 1.58-6.13m0 0c.81-2.22 1.62-4.43 2.16-5.88m-2.16 5.88c.45-1.22.9-2.44 2.16-5.88m0 0c.72-1.51 1.45-3.01 2.69-5.6m-2.69 5.6c.69-1.45 1.39-2.9 2.69-5.6m0 0c.93-1.52 1.86-3.05 3.21-5.27m-3.21 5.27c.97-1.59 1.94-3.18 3.21-5.27m0 0c.86-1.15 1.71-2.29 3.69-4.93m-3.69 4.93c.78-1.04 1.56-2.08 3.69-4.93m0 0c1.53-1.69 3.07-3.38 4.13-4.55m-4.13 4.55c1.54-1.69 3.07-3.38 4.13-4.55m0 0c1.03-.93 2.06-1.87 4.55-4.13m-4.55 4.13c.98-.89 1.97-1.78 4.55-4.13m0 0c1.64-1.23 3.28-2.46 4.93-3.69m-4.93 3.69c1.72-1.29 3.45-2.58 4.93-3.69m0 0c1.11-.68 2.23-1.35 5.27-3.21m-5.27 3.21c1.5-.91 3.01-1.83 5.27-3.21m0 0c1.87-.89 3.73-1.79 5.6-2.69m-5.6 2.69c2.09-1 4.17-2.01 5.6-2.69m0 0c1.72-.64 3.44-1.27 5.88-2.16m-5.88 2.16c1.94-.72 3.89-1.43 5.88-2.16m0 0c2.3-.59 4.6-1.19 6.13-1.58m-6.13 1.58c2.32-.6 4.65-1.2 6.13-1.58m0 0c2.06-.31 4.12-.63 6.34-.97m-6.34.97c2.34-.36 4.69-.72 6.34-.97m0 0c2.05-.1 4.09-.21 6.54-.33m-6.54.33c2.06-.1 4.12-.21 6.54-.33m0 0h160m-160 0h160m0 0v128m0-128v128m0 0s0 0 0 0m0 0s0 0 0 0m0 0 .16 3.28m-.16-3.28c.06 1.16.12 2.32.16 3.28m0 0c.13.82.26 1.64.49 3.18m-.49-3.18c.18 1.13.35 2.26.49 3.18m0 0c.24.95.49 1.91.79 3.07m-.79-3.07c.28 1.1.56 2.2.79 3.07m0 0c.39 1.06.78 2.13 1.07 2.94m-1.07-2.94c.42 1.15.84 2.3 1.07 2.94m0 0c.38.79.76 1.57 1.35 2.8m-1.35-2.8c.4.82.79 1.64 1.35 2.8m0 0c.45.75.91 1.5 1.6 2.63m-1.6-2.63c.4.65.8 1.31 1.6 2.63m0 0c.56.76 1.13 1.52 1.84 2.47m-1.84-2.47c.58.79 1.17 1.57 1.84 2.47m0 0c.75.82 1.5 1.65 2.06 2.27m-2.06-2.27c.75.82 1.5 1.65 2.06 2.27m0 0c.74.66 1.47 1.33 2.27 2.06m-2.27-2.06c.89.81 1.78 1.61 2.27 2.06m0 0c.69.51 1.37 1.02 2.47 1.84m-2.47-1.84c.68.5 1.35 1.01 2.47 1.84m0 0c.81.49 1.62.99 2.63 1.6m-2.63-1.6c.74.45 1.47.9 2.63 1.6m0 0c.72.35 1.43.69 2.8 1.35m-2.8-1.35c.61.3 1.22.59 2.8 1.35m0 0c.85.31 1.69.62 2.94 1.07m-2.94-1.07c1.03.38 2.07.75 2.94 1.07m0 0c.83.22 1.67.43 3.07.79m-3.07-.79 3.07.79m0 0c1.07.16 2.14.33 3.18.49m-3.18-.49c1.2.18 2.39.36 3.18.49m0 0 3.28.16m-3.28-.16c.97.04 1.93.09 3.28.16m0 0h128m-128 0h128m0 0v288m0-288v288m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.1 2.02-.2 4.04-.33 6.54m.33-6.54c-.13 2.52-.26 5.05-.33 6.54m0 0c-.33 2.14-.66 4.29-.97 6.34m.97-6.34c-.32 2.06-.63 4.12-.97 6.34m0 0c-.59 2.28-1.17 4.55-1.58 6.13m1.58-6.13c-.53 2.07-1.07 4.14-1.58 6.13m0 0c-.73 1.99-1.46 3.97-2.16 5.88m2.16-5.88c-.72 1.97-1.44 3.94-2.16 5.88m0 0c-.94 1.97-1.89 3.93-2.69 5.6m2.69-5.6c-.91 1.89-1.82 3.77-2.69 5.6m0 0c-.89 1.46-1.78 2.92-3.21 5.27m3.21-5.27c-.65 1.05-1.29 2.11-3.21 5.27m0 0c-1.13 1.51-2.25 3.01-3.69 4.93m3.69-4.93c-1.29 1.72-2.58 3.44-3.69 4.93m0 0c-1.29 1.42-2.58 2.84-4.13 4.55m4.13-4.55-4.13 4.55m0 0-4.55 4.13m4.55-4.13-4.55 4.13m0 0c-1.2.9-2.41 1.8-4.93 3.69m4.93-3.69-4.93 3.69m0 0c-1.56.95-3.13 1.9-5.27 3.21m5.27-3.21c-1.99 1.21-3.98 2.42-5.27 3.21m0 0c-1.8.86-3.6 1.73-5.6 2.69m5.6-2.69c-1.34.64-2.67 1.28-5.6 2.69m0 0c-2.24.82-4.48 1.65-5.88 2.16m5.88-2.16c-1.38.51-2.77 1.02-5.88 2.16m0 0c-1.46.38-2.93.76-6.13 1.58m6.13-1.58c-1.54.4-3.09.79-6.13 1.58m0 0c-2.12.32-4.24.65-6.34.97m6.34-.97c-2.47.38-4.94.75-6.34.97m0 0c-2.23.11-4.46.22-6.54.33m6.54-.33c-1.97.1-3.93.2-6.54.33m0 0h-256m256 0h-256m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-2.33-.12-4.66-.24-6.54-.33m6.54.33c-1.33-.07-2.65-.13-6.54-.33m0 0c-1.88-.29-3.77-.58-6.34-.97m6.34.97c-2.07-.32-4.14-.63-6.34-.97m0 0c-1.52-.39-3.04-.79-6.13-1.58m6.13 1.58c-2.02-.52-4.04-1.04-6.13-1.58m0 0c-1.6-.59-3.19-1.17-5.88-2.16m5.88 2.16c-1.9-.7-3.8-1.39-5.88-2.16m0 0c-1.41-.68-2.82-1.36-5.6-2.69m5.6 2.69c-1.6-.77-3.2-1.54-5.6-2.69m0 0c-1.4-.86-2.81-1.71-5.27-3.21m5.27 3.21c-2.08-1.27-4.17-2.54-5.27-3.21m0 0c-1.72-1.29-3.43-2.57-4.93-3.69m4.93 3.69c-1.79-1.34-3.57-2.67-4.93-3.69m0 0c-1.18-1.07-2.36-2.15-4.55-4.13m4.55 4.13c-1.64-1.49-3.27-2.97-4.55-4.13m0 0c-1.07-1.19-2.15-2.37-4.13-4.55m4.13 4.55c-1.46-1.61-2.93-3.23-4.13-4.55m0 0-3.69-4.93m3.69 4.93c-.88-1.17-1.76-2.35-3.69-4.93m0 0c-.83-1.37-1.67-2.75-3.21-5.27m3.21 5.27c-1.15-1.89-2.3-3.79-3.21-5.27m0 0c-1.03-2.14-2.05-4.27-2.69-5.6m2.69 5.6c-.68-1.43-1.37-2.85-2.69-5.6m0 0c-.8-2.17-1.59-4.34-2.16-5.88m2.16 5.88c-.82-2.22-1.63-4.44-2.16-5.88m0 0c-.47-1.82-.94-3.64-1.58-6.13m1.58 6.13c-.37-1.44-.74-2.88-1.58-6.13m0 0-.97-6.34m.97 6.34c-.3-1.98-.61-3.97-.97-6.34m0 0c-.13-2.54-.26-5.07-.33-6.54m.33 6.54-.33-6.54m0 0V343m0 112V343m0 0h174.1m-174.1 0h174.1m0 0-39 39m39-39-39 39m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.65.72-1.3 1.44-1.65 1.83m1.65-1.83c-.34.38-.68.76-1.65 1.83m0 0c-.35.47-.7.95-1.43 1.94m1.43-1.94c-.38.5-.75 1.01-1.43 1.94m0 0c-.32.54-.64 1.08-1.22 2.05m1.22-2.05c-.38.64-.76 1.28-1.22 2.05m0 0c-.2.45-.41.89-.99 2.13m.99-2.13c-.38.82-.76 1.64-.99 2.13m0 0c-.18.53-.36 1.05-.77 2.2m.77-2.2c-.3.88-.61 1.75-.77 2.2m0 0c-.15.61-.3 1.22-.55 2.25m.55-2.25c-.16.68-.33 1.35-.55 2.25m0 0-.33 2.29m.33-2.29c-.13.9-.26 1.79-.33 2.29m0 0-.11 2.3m.11-2.3c-.03.59-.06 1.19-.11 2.3m0 0c.03.54.05 1.08.11 2.3m-.11-2.3c.03.72.07 1.44.11 2.3m0 0c.1.71.21 1.43.33 2.28m-.33-2.28c.1.71.21 1.42.33 2.28m0 0c.22.88.44 1.77.55 2.24m-.55-2.24c.16.66.33 1.32.55 2.24m0 0c.26.72.51 1.45.77 2.19m-.77-2.19c.25.69.49 1.39.77 2.19m0 0c.33.7.65 1.4.99 2.12m-.99-2.12c.37.79.74 1.57.99 2.12m0 0c.38.63.75 1.25 1.22 2.04m-1.22-2.04c.4.67.8 1.35 1.22 2.04m0 0c.38.52.77 1.05 1.43 1.93m-1.43-1.93c.38.52.77 1.05 1.43 1.93m0 0c.46.5.91 1 1.65 1.81m-1.65-1.81c.35.39.7.77 1.65 1.81m0 0c.37.33.75.67 1.83 1.64m-1.83-1.64c.43.39.87.78 1.83 1.64m0 0c.62.45 1.25.91 1.94 1.42m-1.94-1.42c.45.32.9.65 1.94 1.42m0 0c.53.3 1.05.61 2.05 1.2m-2.05-1.2c.43.25.86.5 2.05 1.2m0 0c.78.36 1.56.72 2.13.99m-2.13-.99c.54.25 1.08.5 2.13.99m0 0c.67.23 1.33.46 2.2.76m-2.2-.76c.51.17 1.03.35 2.2.76m0 0c.87.22 1.73.43 2.25.56m-2.25-.56c.79.2 1.57.39 2.25.56m0 0 2.29.33m-2.29-.33c.58.08 1.16.16 2.29.33m0 0c.91.04 1.82.09 2.3.11m-2.3-.11c.89.04 1.79.09 2.3.11m0 0c.48-.02.96-.04 2.3-.1m-2.3.1c.73-.03 1.47-.06 2.3-.1m0 0c.61-.09 1.22-.18 2.28-.33m-2.28.33c.58-.09 1.17-.17 2.28-.33m0 0c.79-.19 1.59-.38 2.24-.54m-2.24.54c.88-.21 1.75-.42 2.24-.54m0 0c.7-.25 1.4-.49 2.19-.77m-2.19.77c.5-.18 1.01-.35 2.19-.77m0 0c.56-.26 1.13-.52 2.12-.98m-2.12.98c.69-.31 1.37-.63 2.12-.98m0 0c.63-.37 1.25-.74 2.04-1.21m-2.04 1.21c.8-.48 1.6-.95 2.04-1.21m0 0c.67-.5 1.34-.99 1.93-1.43m-1.93 1.43c.52-.39 1.05-.78 1.93-1.43m0 0c.43-.39.87-.79 1.81-1.65m-1.81 1.65c.42-.38.83-.76 1.81-1.65m0 0 80-80m-80 80 80-80m0 0s0 0 0 0m0 0s0 0 0 0m0 0c.33-.37.67-.74 1.65-1.83m-1.65 1.83c.63-.7 1.27-1.4 1.65-1.83m0 0c.3-.4.59-.79 1.43-1.94m-1.43 1.94c.42-.57.84-1.13 1.43-1.94m0 0c.4-.68.8-1.35 1.22-2.05m-1.22 2.05c.47-.79.93-1.57 1.22-2.05m0 0c.28-.62.57-1.23.99-2.13m-.99 2.13c.3-.65.6-1.31.99-2.13m0 0c.26-.74.51-1.47.77-2.2m-.77 2.2.77-2.2m0 0 .55-2.25m-.55 2.25c.2-.84.41-1.68.55-2.25m0 0 .33-2.29m-.33 2.29c.11-.75.21-1.49.33-2.29m0 0c.03-.54.05-1.08.11-2.3m-.11 2.3c.04-.91.09-1.81.11-2.3m0 0c-.03-.7-.07-1.41-.11-2.3m.11 2.3c-.04-.75-.07-1.49-.11-2.3m0 0c-.08-.52-.15-1.04-.33-2.28m.33 2.28c-.09-.63-.18-1.26-.33-2.28m0 0-.55-2.24m.55 2.24c-.19-.79-.39-1.58-.55-2.24m0 0-.77-2.19m.77 2.19c-.25-.72-.51-1.44-.77-2.19m0 0c-.23-.5-.46-.99-.99-2.12m.99 2.12c-.39-.83-.78-1.66-.99-2.12m0 0c-.42-.7-.83-1.39-1.22-2.04m1.22 2.04c-.32-.53-.64-1.06-1.22-2.04m0 0c-.47-.64-.95-1.28-1.43-1.93m1.43 1.93c-.47-.63-.94-1.27-1.43-1.93m0 0c-.44-.49-.89-.98-1.65-1.81m1.65 1.81c-.64-.7-1.28-1.4-1.65-1.81m0 0-80-80m80 80-80-80m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.72-.65-1.44-1.3-1.83-1.65m1.83 1.65c-.68-.62-1.37-1.23-1.83-1.65m0 0c-.51-.38-1.02-.75-1.94-1.43m1.94 1.43c-.58-.43-1.17-.87-1.94-1.43m0 0c-.73-.43-1.45-.86-2.05-1.22m2.05 1.22c-.77-.45-1.53-.9-2.05-1.22m0 0c-.46-.21-.93-.43-2.13-.99m2.13.99-2.13-.99m0 0c-.83-.29-1.65-.57-2.2-.77m2.2.77c-.56-.19-1.12-.39-2.2-.77m0 0c-.65-.16-1.29-.31-2.25-.55m2.25.55c-.57-.14-1.13-.27-2.25-.55m0 0c-.74-.11-1.48-.21-2.29-.33m2.29.33c-.51-.07-1.02-.15-2.29-.33m0 0c-.77-.04-1.54-.07-2.3-.11m2.3.11c-.88-.04-1.76-.08-2.3-.11m0 0c-.49.02-.98.05-2.3.11m2.3-.11c-.88.04-1.77.09-2.3.11m0 0c-.62.09-1.23.18-2.28.33m2.28-.33c-.6.09-1.2.17-2.28.33m0 0c-.45.11-.91.22-2.24.55m2.24-.55c-.79.2-1.58.39-2.24.55m0 0c-.56.2-1.12.4-2.19.77m2.19-.77c-.51.18-1.01.36-2.19.77m0 0c-.85.4-1.7.8-2.12.99m2.12-.99c-.51.24-1.02.48-2.12.99m0 0c-.6.36-1.2.71-2.04 1.22m2.04-1.22c-.46.27-.91.55-2.04 1.22m0 0c-.49.36-.99.73-1.93 1.43m1.93-1.43-1.93 1.43m0 0c-.42.38-.85.77-1.81 1.65m1.81-1.65c-.69.63-1.39 1.27-1.81 1.65m0 0-1.64 1.83m1.64-1.83c-.54.6-1.08 1.21-1.64 1.83m0 0c-.53.73-1.07 1.47-1.42 1.94m1.42-1.94c-.36.5-.73 1-1.42 1.94m0 0c-.35.61-.7 1.21-1.2 2.05m1.2-2.05c-.33.58-.67 1.15-1.2 2.05m0 0c-.26.57-.53 1.15-.99 2.13m.99-2.13c-.39.85-.78 1.69-.99 2.13m0 0c-.24.7-.48 1.4-.76 2.2m.76-2.2c-.17.51-.35 1.01-.76 2.2m0 0c-.17.68-.33 1.35-.56 2.25m.56-2.25c-.2.79-.39 1.57-.56 2.25m0 0c-.09.65-.18 1.29-.33 2.29m.33-2.29c-.06.48-.13.95-.33 2.29m0 0c-.03.71-.07 1.43-.11 2.3m.11-2.3-.11 2.3m0 0c.04.86.08 1.73.1 2.3m-.1-2.3c.03.8.07 1.6.1 2.3m0 0c.13.88.25 1.76.33 2.28m-.33-2.28c.11.73.21 1.47.33 2.28m0 0c.18.74.36 1.49.54 2.24m-.54-2.24c.15.64.31 1.28.54 2.24m0 0c.2.57.4 1.15.77 2.19m-.77-2.19c.21.58.41 1.17.77 2.19m0 0c.23.5.46 1.01.98 2.12m-.98-2.12c.35.76.71 1.53.98 2.12m0 0c.38.64.76 1.29 1.21 2.04m-1.21-2.04 1.21 2.04m0 0c.45.6.89 1.21 1.43 1.93m-1.43-1.93c.3.4.6.81 1.43 1.93m0 0 1.65 1.81m-1.65-1.81c.47.52.94 1.03 1.65 1.81m0 0 39 39m-39-39 39 39m0 0h-174.1m174.1 0h-174.1m0 0V71m0 223.9V71m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeLinecap:"round",strokeWidth:"18",d:"M135 343.068H31m104 0H31m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.74-.04-1.48-.07-2.46-.12m2.46.12c-.77-.04-1.54-.08-2.46-.12m0 0c-.87-.14-1.75-.27-2.39-.37m2.39.37c-.55-.09-1.1-.17-2.39-.37m0 0c-.87-.22-1.74-.44-2.3-.59m2.3.59c-.62-.15-1.24-.31-2.3-.59m0 0c-.82-.29-1.64-.59-2.21-.8m2.21.8c-.52-.18-1.03-.37-2.21-.8m0 0c-.55-.26-1.09-.52-2.1-1.01m2.1 1.01c-.64-.31-1.28-.61-2.1-1.01m0 0c-.74-.45-1.48-.89-1.98-1.2m1.98 1.2c-.42-.25-.84-.51-1.98-1.2m0 0c-.7-.52-1.41-1.05-1.84-1.38m1.84 1.38c-.37-.28-.75-.56-1.84-1.38m0 0c-.4-.36-.8-.71-1.71-1.54m1.71 1.54c-.35-.31-.7-.63-1.71-1.54m0 0c-.43-.47-.85-.95-1.54-1.71m1.54 1.71c-.61-.68-1.23-1.36-1.54-1.71m0 0c-.29-.38-.58-.76-1.38-1.84m1.38 1.84c-.54-.71-1.08-1.43-1.38-1.84m0 0c-.46-.76-.92-1.52-1.2-1.98m1.2 1.98c-.45-.74-.89-1.47-1.2-1.98m0 0c-.37-.77-.74-1.53-1.01-2.1m1.01 2.1c-.3-.62-.6-1.25-1.01-2.1m0 0c-.2-.54-.39-1.07-.8-2.21m.8 2.21c-.2-.54-.4-1.09-.8-2.21m0 0c-.22-.85-.44-1.71-.59-2.3m.59 2.3c-.12-.46-.24-.92-.59-2.3m0 0c-.11-.72-.22-1.43-.37-2.39m.37 2.39c-.08-.48-.15-.96-.37-2.39m0 0c-.03-.74-.07-1.48-.12-2.46m.12 2.46c-.04-.79-.08-1.59-.12-2.46m0 0c.04-.74.07-1.49.12-2.46m-.12 2.46.12-2.46m0 0c.08-.53.16-1.07.37-2.39m-.37 2.39c.09-.56.17-1.12.37-2.39m0 0c.17-.69.35-1.38.59-2.3m-.59 2.3c.15-.61.31-1.23.59-2.3m0 0c.17-.48.34-.96.8-2.21m-.8 2.21c.2-.55.4-1.1.8-2.21m0 0c.25-.52.49-1.03 1.01-2.1m-1.01 2.1c.36-.76.73-1.52 1.01-2.1m0 0c.43-.72.87-1.44 1.2-1.98m-1.2 1.98c.27-.45.55-.91 1.2-1.98m0 0c.54-.73 1.09-1.47 1.38-1.84m-1.38 1.84c.4-.54.81-1.09 1.38-1.84m0 0c.53-.59 1.07-1.18 1.54-1.71m-1.54 1.71c.59-.66 1.19-1.32 1.54-1.71m0 0c.54-.49 1.08-.97 1.71-1.54m-1.71 1.54c.48-.43.95-.86 1.71-1.54m0 0c.46-.35.92-.7 1.84-1.38m-1.84 1.38c.5-.38 1.01-.76 1.84-1.38m0 0c.52-.32 1.04-.63 1.98-1.2m-1.98 1.2c.72-.44 1.44-.88 1.98-1.2m0 0 2.1-1.01m-2.1 1.01c.84-.4 1.67-.81 2.1-1.01m0 0c.45-.17.91-.33 2.21-.8m-2.21.8c.56-.21 1.12-.41 2.21-.8m0 0c.89-.23 1.79-.46 2.3-.59m-2.3.59c.48-.13.95-.25 2.3-.59m0 0c.51-.08 1.02-.16 2.39-.37m-2.39.37 2.39-.37m0 0c.52-.02 1.03-.05 2.46-.12m-2.46.12c.74-.03 1.48-.07 2.46-.12m0 0 103.34-.27m-103.34.27c30.04-.08 60.08-.16 103.34-.27"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"var(--input-bg-color)",strokeWidth:"0",d:"M517.462 135h-128V7l128 128"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"18",d:"M517.462 135h-128m128 0h-128m0 0V7m0 128V7m0 0 128 128m-128-128 128 128m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"}))),obsidian:React__namespace.createElement("svg",{focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("defs",null,React__namespace.createElement("radialGradient",{id:"b",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-48 -185 123 -32 179 429.7)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".4"}),React__namespace.createElement("stop",{offset:"1",stopOpacity:".1"})),React__namespace.createElement("radialGradient",{id:"c",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(41 -310 229 30 341.6 351.3)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".6"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".1"})),React__namespace.createElement("radialGradient",{id:"d",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(57 -261 178 39 190.5 296.3)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".8"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".4"})),React__namespace.createElement("radialGradient",{id:"e",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-79 -133 153 -90 321.4 464.2)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".3"}),React__namespace.createElement("stop",{offset:"1",stopOpacity:".3"})),React__namespace.createElement("radialGradient",{id:"f",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-29 136 -92 -20 300.7 149.9)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:"0"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".2"})),React__namespace.createElement("radialGradient",{id:"g",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(72 73 -155 153 137.8 225.2)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".2"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".4"})),React__namespace.createElement("radialGradient",{id:"h",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(20 118 -251 43 215.1 273.7)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".1"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".3"})),React__namespace.createElement("radialGradient",{id:"i",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-162 -85 268 -510 374.4 371.7)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".2"}),React__namespace.createElement("stop",{offset:".5",stopColor:"#fff",stopOpacity:".2"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".3"})),React__namespace.createElement("filter",{id:"a",x:"80.1",y:"37",width:"351.1",height:"443.2",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},React__namespace.createElement("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),React__namespace.createElement("feBlend",{in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),React__namespace.createElement("feGaussianBlur",{stdDeviation:"6.5",result:"effect1_foregroundBlur_744_9191"}))),React__namespace.createElement("g",{filter:"url(#a)"},React__namespace.createElement("path",{d:"M359.2 437.5c-2.6 19-21.3 33.9-40 28.7-26.5-7.2-57.2-18.6-84.8-20.7l-42.4-3.2a28 28 0 0 1-18-8.3l-73-74.8a27.7 27.7 0 0 1-5.4-30.7s45-98.6 46.8-103.7c1.6-5.1 7.8-49.9 11.4-73.9a28 28 0 0 1 9-16.5L249 57.2a28 28 0 0 1 40.6 3.4l72.6 91.6a29.5 29.5 0 0 1 6.2 18.3c0 17.3 1.5 53 11.2 76a301.3 301.3 0 0 0 35.6 58.2 14 14 0 0 1 1 15.6c-6.3 10.7-18.9 31.3-36.6 57.6a142.2 142.2 0 0 0-20.5 59.6Z",fill:"#000",fillOpacity:".3"})),React__namespace.createElement("path",{id:"arrow",d:"M359.9 434.3c-2.6 19.1-21.3 34-40 28.9-26.4-7.3-57-18.7-84.7-20.8l-42.3-3.2a27.9 27.9 0 0 1-18-8.4l-73-75a27.9 27.9 0 0 1-5.4-31s45.1-99 46.8-104.2c1.7-5.1 7.8-50 11.4-74.2a28 28 0 0 1 9-16.6l86.2-77.5a28 28 0 0 1 40.6 3.5l72.5 92a29.7 29.7 0 0 1 6.2 18.3c0 17.4 1.5 53.2 11.1 76.3a303 303 0 0 0 35.6 58.5 14 14 0 0 1 1.1 15.7c-6.4 10.8-18.9 31.4-36.7 57.9a143.3 143.3 0 0 0-20.4 59.8Z",fill:"#6c31e3"}),React__namespace.createElement("path",{d:"M182.7 436.4c33.9-68.7 33-118 18.5-153-13.2-32.4-37.9-52.8-57.3-65.5-.4 1.9-1 3.7-1.8 5.4L96.5 324.8a27.9 27.9 0 0 0 5.5 31l72.9 75c2.3 2.3 5 4.2 7.8 5.6Z",fill:"url(#b)"}),React__namespace.createElement("path",{d:"M274.9 297c9.1.9 18 2.9 26.8 6.1 27.8 10.4 53.1 33.8 74 78.9 1.5-2.6 3-5.1 4.6-7.5a1222 1222 0 0 0 36.7-57.9 14 14 0 0 0-1-15.7 303 303 0 0 1-35.7-58.5c-9.6-23-11-58.9-11.1-76.3 0-6.6-2.1-13.1-6.2-18.3l-72.5-92-1.2-1.5c5.3 17.5 5 31.5 1.7 44.2-3 11.8-8.6 22.5-14.5 33.8-2 3.8-4 7.7-5.9 11.7a140 140 0 0 0-15.8 58c-1 24.2 3.9 54.5 20 95Z",fill:"url(#c)"}),React__namespace.createElement("path",{d:"M274.8 297c-16.1-40.5-21-70.8-20-95 1-24 8-42 15.8-58l6-11.7c5.8-11.3 11.3-22 14.4-33.8a78.5 78.5 0 0 0-1.7-44.2 28 28 0 0 0-39.4-2l-86.2 77.5a28 28 0 0 0-9 16.6L144.2 216c0 .7-.2 1.3-.3 2 19.4 12.6 44 33 57.3 65.3 2.6 6.4 4.8 13.1 6.4 20.4a200 200 0 0 1 67.2-6.8Z",fill:"url(#d)"}),React__namespace.createElement("path",{d:"M320 463.2c18.6 5.1 37.3-9.8 39.9-29a153 153 0 0 1 15.9-52.2c-21-45.1-46.3-68.5-74-78.9-29.5-11-61.6-7.3-94.2.6 7.3 33.1 3 76.4-24.8 132.7 3.1 1.6 6.6 2.5 10.1 2.8l43.9 3.3c23.8 1.7 59.3 14 83.2 20.7Z",fill:"url(#e)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M255 200.5c-1.1 24 1.9 51.4 18 91.8l-5-.5c-14.5-42.1-17.7-63.7-16.6-88 1-24.3 8.9-43 16.7-59 2-4 6.6-11.5 8.6-15.3 5.8-11.3 9.7-17.2 13-27.5 4.8-14.4 3.8-21.2 3.2-28 3.7 24.5-10.4 45.8-21 67.5a145 145 0 0 0-17 59Z",fill:"url(#f)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M206 285.1c2 4.4 3.7 8 4.9 13.5l-4.3 1c-1.7-6.4-3-11-5.5-16.5-14.6-34.3-38-52-57-65 23 12.4 46.7 31.9 61.9 67Z",fill:"url(#g)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M211.1 303c8 37.5-1 85.2-27.5 131.6 22.2-46 33-90.1 24-131l3.5-.7Z",fill:"url(#h)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M302.7 299.5c43.5 16.3 60.3 52 72.8 81.9-15.5-31.2-37-65.7-74.4-78.5-28.4-9.8-52.4-8.6-93.5.7l-.9-4c43.6-10 66.4-11.2 96 0Z",fill:"url(#i)"})),"add-file":React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),React__namespace.createElement("polyline",{points:"14 2 14 8 20 8"}),React__namespace.createElement("line",{x1:"12",x2:"12",y1:"18",y2:"12"}),React__namespace.createElement("line",{x1:"9",x2:"15",y1:"15",y2:"15"}))},saveIcon=e=>React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:e?"var(--color-accent)":"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),React__namespace.createElement("polyline",{points:"17 21 17 13 7 13 7 21"}),React__namespace.createElement("polyline",{points:"7 3 7 8 15 8"})),penIcon=e=>{var t,A,i,n,a,r,s,o,l,c,d,h;switch(e.type){case"highlighter":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{fill:null!==(t=e.strokeColor)&&void 0!==t?t:"var(--icon-fill-color)",strokeWidth:"2",d:"m9 11-6 6v3h9l3-3"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4"}));case"finetip":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:null!==(A=e.strokeColor)&&void 0!==A?A:"var(--icon-fill-color)",stroke:null!==(i=e.strokeColor)&&void 0!==i?i:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{strokeWidth:"2",d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"}));case"fountain":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{fill:null!==(n=e.strokeColor)&&void 0!==n?n:"var(--icon-fill-color)",d:"m12 19 7-7 3 3-7 7-3-3z"}),React__namespace.createElement("path",{fill:"none",d:"m18 13-1.5-7.5L2 2l3.5 14.5L13 18l5-5z"}),React__namespace.createElement("path",{fill:"none",d:"m2 2 7.586 7.586"}),React__namespace.createElement("circle",{fill:"none",cx:"11",cy:"11",r:"2"}));case"marker":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",fill:null!==(a=e.strokeColor)&&void 0!==a?a:"var(--icon-fill-color)",stroke:null!==(r=e.strokeColor)&&void 0!==r?r:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M331 315l158.4-215L460.1 70.6 245 229 331 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L436.6 8.4C444 2.9 453 0 462.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L350.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H240l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L144 320zM23 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H40c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z"}));case"thick-thin":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 108 106",strokeWidth:"2",fill:null!==(s=e.strokeColor)&&void 0!==s?s:"var(--icon-fill-color)",stroke:null!==(o=e.strokeColor)&&void 0!==o?o:"var(--icon-fill-color)"},React__namespace.createElement("path",{d:"m-.58 95.628.22-.89q.22-.89.49-2.44.26-1.54.77-3.35t1.31-3.43q.79-1.61.2-.26-.6 1.34-.03-.14.58-1.49 1.54-2.97.96-1.49 2.54-3.18 1.59-1.68 3.46-2.96 1.86-1.27.81-.54-1.04.73.6-.46 1.64-1.19 2.8-1.81 1.16-.63.16-.08-.99.54 1.21-.5 2.2-1.03 1.11-.58-1.1.45-.03-.07 1.06-.53 2.32-.82 1.26-.3 2.91-.52 1.64-.23 3.05-.18 1.4.05 2.5.12 1.09.07 2.25.24 1.16.17 2.3.49 1.15.32 2.11.78.96.47 2.21 1.01 1.25.55 2.37 1.04t2.34.89q1.22.4 2.5.65 1.29.25 2.44.33 1.16.08 2.35.17 1.18.08 2.26-.1 1.08-.19 2-1.1.92-.91 1.25-1.93.32-1.02.38-2.15t.57.21q.51 1.34-.03-.02-.55-1.37-.96-2.83-.41-1.45.5-.67.92.79-.03-.06-.95-.85-1.52-1.8-.57-.94-1.5-1.52-.93-.57-1.94-1.22-1.01-.65-1.97-1.88-.96-1.22-1.44-2.54-.49-1.32-.65-2.57-.17-1.24-.11-2.35.06-1.11.31-2.91.24-1.79.76-2.77.51-.97 1.29-1.8.77-.84 1.64-1.55.88-.72 1.9-1.33 1.03-.61 2.43-1.15 1.41-.55 2.69-.92 1.29-.37 2.81-.68 1.53-.31 2.83-.58 1.31-.27 2.78-.47 1.47-.2 2.58-.49 1.12-.28 2.19-.58 1.08-.31 2.13-.73 1.05-.42 2.44-1.32 1.39-.9 2.68-1.85 1.3-.95 2.25-1.87.95-.91 2.06-2 1.11-1.09 1.92-1.93.82-.84 1.54-1.82.71-.98 1.4-1.88.69-.9 1.38-1.96.69-1.07 1.25-2.04.55-.97 1.21-1.94.65-.96 1.35-1.79.69-.83 1.46-1.74.77-.9 1.66-1.73.89-.84 2.72-2.31 1.84-1.48 1.84-1.47v.01l-1.1 1.03q-1.1 1.02-1.77 1.92-.68.9-1.39 1.85-.71.96-1.41 1.91-.7.96-1.19 1.92-.48.95-.95 1.92-.46.96-.9 1.95-.43.99-1.02 2.16-.59 1.17-1.17 2.15-.58.97-1.23 2.13t-1.29 2.02q-.64.86-1.3 1.73-.66.88-1.42 1.78-.75.9-1.72 2.03-.97 1.14-1.81 1.89-.85.75-1.98 1.71-1.14.96-2.05 1.61-.91.64-2.42 1.38-1.51.73-2.71 1.21t-2.49.92q-1.3.44-2.35.69-1.06.24-2.1.59-1.03.34-2.06.74-1.03.4-2.29.94-1.26.54-2.27 1.11-1.01.58-1.57 1.57-.56.99-.81 2.06-.25 1.08.56 2.02.8.94-.21-.02-1.02-.96-.01-.48 1 .49 1.87 1.25.87.77 0 0-.88-.77.46-.01 1.34.75 2.6 1.68 1.26.94 2.08 2.03.81 1.09.01.27-.8-.82.3.26 1.11 1.08 1.71 2.1.61 1.02 1.21 2.25.6 1.24.92 2.36.32 1.12-.16.13-.49-.98.02.36.51 1.35.71 2.69.2 1.34.24 2.46.03 1.12-.09 2.42-.13 1.29-.72 3.21-.6 1.92-1.4 3.49-.81 1.58-1.77 2.83-.96 1.24-2.88 2.72-1.92 1.48-2.95 1.85-1.04.36-2.47.76-1.44.41-3.33.72-1.89.32-3.37.41-1.48.09-2.63.15-1.15.05-2.74-.06-1.59-.1-2.8-.29-1.2-.19-3.2-.63-1.99-.45-3.63-.92-1.63-.48-3.28-.79-1.65-.31-2.76-.2-1.11.1-2.21.42-1.11.32.39-.29 1.49-.6-.12.21-1.61.8-.39.19 1.21-.61.29.13-.92.74-1.83 1.34-.92.61.15-.19t.3-.05q-.77.75-1.58 1.57-.81.82.01-.18.82-1 .24.23t-.72 2.72q-.15 1.48-.08 2.4.07.91-.19 2.16-.26 1.26-.81 2.41-.55 1.16-1.36 2.15t-1.84 1.75q-1.03.77-2.21 1.27t-2.44.7q-1.27.2-2.53.1-1.28-.11-2.49-.52-1.22-.41-2.3-1.1-1.08-.68-1.96-1.61-.89-.92-1.52-2.04-.64-1.11-.99-2.34-.36-1.23-.41-2.51l-.04-1.27Z"}));case"thin-thick-thin":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 114 113",strokeWidth:"2",fill:null!==(l=e.strokeColor)&&void 0!==l?l:"var(--icon-fill-color)",stroke:null!==(c=e.strokeColor)&&void 0!==c?c:"var(--icon-fill-color)"},React__namespace.createElement("path",{d:"m10 103.405.13-1.22q.14-1.22 1.3-3.16 1.15-1.94 2.74-3.46 1.59-1.53 3.35-2.72 1.77-1.2 4-1.95 2.23-.76 4.45-1t4.86-.4q2.64-.15 5.14-.34 2.51-.19 4.85-.94 2.35-.75 4.55-1.71 2.21-.97 4.16-2.26 1.95-1.3 4.03-2.97 2.07-1.67 3.85-3.05 1.78-1.37 3.72-2.48 1.94-1.11 3.3-2.99 1.36-1.89 2.58-3.74 1.22-1.85-.63-3.42-1.85-1.57-3.82-2.86-1.97-1.3-4.11-2.08-2.15-.78-4.21-1.6-2.06-.81-4.02-1.96-1.96-1.14-3.71-2.48-1.74-1.33-3.37-2.77-1.63-1.43-3.23-3.62-1.6-2.18-2.23-4.64-.62-2.46-.36-4.96.27-2.49 1.19-4.46.91-1.97 2.42-3.7 1.5-1.73 3.5-3.15t4.11-2.28q2.1-.86 4.33-1.44 2.24-.58 4.92-.84 2.68-.26 4.83-.19t4.69.35q2.53.28 4.75.66 2.23.38 4.48.2 2.26-.19 4.43-1.3 2.17-1.12 4.2-2.36 2.04-1.24 3.93-2.43 1.9-1.19 3.84-2.14 1.95-.95 4.04-1.78 2.09-.83 4.56-2.28 2.46-1.46 2.46-1.45h.01q.01 0-1.38 1.3-1.38 1.29-3.08 2.59-1.7 1.3-3.5 2.5t-3.42 2.65q-1.62 1.45-3.18 3-1.57 1.56-3.37 3.13-1.8 1.57-3.6 2.91-1.81 1.33-3.92 2.12t-4.24.92q-2.13.14-4.31.26-2.18.12-4.5.39t-4.56.88q-2.25.61-4.24 1.6-1.99 1-3.83 2.29-1.83 1.29.18 2.44 2.01 1.15 4.2 1.92 2.2.78 4.34 1 2.15.22 4.4.69 2.25.46 4.34 1.16 2.08.71 4.33 1.91 2.25 1.21 4.11 2.73 1.87 1.52 3.68 4.03 1.82 2.5 2.74 5 .93 2.5 1.18 5.03.26 2.53-.04 4.81t-1.4 4.85q-1.09 2.58-2.4 4.26-1.3 1.68-3.1 3.44t-4.02 3.62q-2.23 1.85-4.32 3.07-2.08 1.23-4.34 1.99-2.25.76-4.46 1.96t-4.37 2.14q-2.15.93-4.22 1.81t-4.36 1.35q-2.3.46-4.52.82-2.22.35-4.76.38-2.54.04-4.87-.28t-4.67-.67q-2.34-.35-4.72-.54-2.39-.19-4.64.37-2.25.56-4.16 1.66-1.91 1.11-3.52 2.71-1.61 1.6-2.55 2.39l-.94.78Z"}));default:return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:null!==(d=e.strokeColor)&&void 0!==d?d:"var(--icon-fill-color)",stroke:null!==(h=e.strokeColor)&&void 0!==h?h:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1 0 0-1-1 0 0-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z"}))}},stringToSVG=e=>(e=e.replace(/stroke\s*=\s*['"][^"']*['"]/g,"").replace(/[^-]width\s*=\s*['"][^"']*['"]/g,"").replace(/[^-]height\s*=\s*['"][^"']*['"]/g,"").replace("0&&round(i.width)/e.offsetWidth||1,a=e.offsetHeight>0&&round(i.height)/e.offsetHeight||1);var r=(isElement(e)?getWindow(e):window).visualViewport,s=!isLayoutViewport()&&A,o=(i.left+(s&&r?r.offsetLeft:0))/n,l=(i.top+(s&&r?r.offsetTop:0))/a,c=i.width/n,d=i.height/a;return{width:c,height:d,top:l,right:o+c,bottom:l+d,left:o,x:o,y:l}}function getLayoutRect(e){var t=getBoundingClientRect(e),A=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-A)<=1&&(A=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:A,height:i}}function contains(e,t){var A=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(A&&isShadowRoot(A)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function getComputedStyle$1(e){return getWindow(e).getComputedStyle(e)}function isTableElement(e){return["table","td","th"].indexOf(getNodeName(e))>=0}function getDocumentElement(e){return((isElement(e)?e.ownerDocument:e.document)||window.document).documentElement}function getParentNode(e){return"html"===getNodeName(e)?e:e.assignedSlot||e.parentNode||(isShadowRoot(e)?e.host:null)||getDocumentElement(e)}function getTrueOffsetParent(e){return isHTMLElement(e)&&"fixed"!==getComputedStyle$1(e).position?e.offsetParent:null}function getContainingBlock(e){var t=/firefox/i.test(getUAString());if(/Trident/i.test(getUAString())&&isHTMLElement(e)&&"fixed"===getComputedStyle$1(e).position)return null;var A=getParentNode(e);for(isShadowRoot(A)&&(A=A.host);isHTMLElement(A)&&["html","body"].indexOf(getNodeName(A))<0;){var i=getComputedStyle$1(A);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return A;A=A.parentNode}return null}function getOffsetParent(e){for(var t=getWindow(e),A=getTrueOffsetParent(e);A&&isTableElement(A)&&"static"===getComputedStyle$1(A).position;)A=getTrueOffsetParent(A);return A&&("html"===getNodeName(A)||"body"===getNodeName(A)&&"static"===getComputedStyle$1(A).position)?t:A||getContainingBlock(e)||t}function getMainAxisFromPlacement(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function within(e,t,A){return max(e,min(t,A))}function withinMaxClamp(e,t,A){var i=within(e,t,A);return i>A?A:i}function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0}}function mergePaddingObject(e){return Object.assign({},getFreshSideObject(),e)}function expandToHashMap(e,t){return t.reduce((function(t,A){return t[A]=e,t}),{})}var toPaddingObject=function(e,t){return mergePaddingObject("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:expandToHashMap(e,basePlacements))};function arrow(e){var t,A=e.state,i=e.name,n=e.options,a=A.elements.arrow,r=A.modifiersData.popperOffsets,s=getBasePlacement(A.placement),o=getMainAxisFromPlacement(s),l=[left,right].indexOf(s)>=0?"height":"width";if(a&&r){var c=toPaddingObject(n.padding,A),d=getLayoutRect(a),h="y"===o?top:left,u="y"===o?bottom:right,g=A.rects.reference[l]+A.rects.reference[o]-r[o]-A.rects.popper[l],p=r[o]-A.rects.reference[o],m=getOffsetParent(a),w=m?"y"===o?m.clientHeight||0:m.clientWidth||0:0,f=g/2-p/2,E=c[h],B=w-d[l]-c[u],b=w/2-d[l]/2+f,v=within(E,b,B),C=o;A.modifiersData[i]=((t={})[C]=v,t.centerOffset=v-b,t)}}function effect$1(e){var t=e.state,A=e.options.element,i=void 0===A?"[data-popper-arrow]":A;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&contains(t.elements.popper,i)&&(t.elements.arrow=i)}var arrow$1={name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect$1,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function getVariation(e){return e.split("-")[1]}var unsetSides={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(e){var t=e.x,A=e.y,i=window.devicePixelRatio||1;return{x:round(t*i)/i||0,y:round(A*i)/i||0}}function mapToStyles(e){var t,A=e.popper,i=e.popperRect,n=e.placement,a=e.variation,r=e.offsets,s=e.position,o=e.gpuAcceleration,l=e.adaptive,c=e.roundOffsets,d=e.isFixed,h=r.x,u=void 0===h?0:h,g=r.y,p=void 0===g?0:g,m="function"==typeof c?c({x:u,y:p}):{x:u,y:p};u=m.x,p=m.y;var w=r.hasOwnProperty("x"),f=r.hasOwnProperty("y"),E=left,B=top,b=window;if(l){var v=getOffsetParent(A),C="clientHeight",y="clientWidth";v===getWindow(A)&&"static"!==getComputedStyle$1(v=getDocumentElement(A)).position&&"absolute"===s&&(C="scrollHeight",y="scrollWidth"),v=v,(n===top||(n===left||n===right)&&a===end)&&(B=bottom,p-=(d&&v===b&&b.visualViewport?b.visualViewport.height:v[C])-i.height,p*=o?1:-1),n!==left&&(n!==top&&n!==bottom||a!==end)||(E=right,u-=(d&&v===b&&b.visualViewport?b.visualViewport.width:v[y])-i.width,u*=o?1:-1)}var F,x=Object.assign({position:s},l&&unsetSides),S=!0===c?roundOffsetsByDPR({x:u,y:p}):{x:u,y:p};return u=S.x,p=S.y,o?Object.assign({},x,((F={})[B]=f?"0":"",F[E]=w?"0":"",F.transform=(b.devicePixelRatio||1)<=1?"translate("+u+"px, "+p+"px)":"translate3d("+u+"px, "+p+"px, 0)",F)):Object.assign({},x,((t={})[B]=f?p+"px":"",t[E]=w?u+"px":"",t.transform="",t))}function computeStyles(e){var t=e.state,A=e.options,i=A.gpuAcceleration,n=void 0===i||i,a=A.adaptive,r=void 0===a||a,s=A.roundOffsets,o=void 0===s||s,l={placement:getBasePlacement(t.placement),variation:getVariation(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:n,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,mapToStyles(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:o})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,mapToStyles(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:o})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var computeStyles$1={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}},passive={passive:!0};function effect(e){var t=e.state,A=e.instance,i=e.options,n=i.scroll,a=void 0===n||n,r=i.resize,s=void 0===r||r,o=getWindow(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach((function(e){e.addEventListener("scroll",A.update,passive)})),s&&o.addEventListener("resize",A.update,passive),function(){a&&l.forEach((function(e){e.removeEventListener("scroll",A.update,passive)})),s&&o.removeEventListener("resize",A.update,passive)}}var eventListeners={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:effect,data:{}},hash$1={left:"right",right:"left",bottom:"top",top:"bottom"};function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,(function(e){return hash$1[e]}))}var hash={start:"end",end:"start"};function getOppositeVariationPlacement(e){return e.replace(/start|end/g,(function(e){return hash[e]}))}function getWindowScroll(e){var t=getWindow(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function getWindowScrollBarX(e){return getBoundingClientRect(getDocumentElement(e)).left+getWindowScroll(e).scrollLeft}function getViewportRect(e,t){var A=getWindow(e),i=getDocumentElement(e),n=A.visualViewport,a=i.clientWidth,r=i.clientHeight,s=0,o=0;if(n){a=n.width,r=n.height;var l=isLayoutViewport();(l||!l&&"fixed"===t)&&(s=n.offsetLeft,o=n.offsetTop)}return{width:a,height:r,x:s+getWindowScrollBarX(e),y:o}}function getDocumentRect(e){var t,A=getDocumentElement(e),i=getWindowScroll(e),n=null==(t=e.ownerDocument)?void 0:t.body,a=max(A.scrollWidth,A.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),r=max(A.scrollHeight,A.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),s=-i.scrollLeft+getWindowScrollBarX(e),o=-i.scrollTop;return"rtl"===getComputedStyle$1(n||A).direction&&(s+=max(A.clientWidth,n?n.clientWidth:0)-a),{width:a,height:r,x:s,y:o}}function isScrollParent(e){var t=getComputedStyle$1(e),A=t.overflow,i=t.overflowX,n=t.overflowY;return/auto|scroll|overlay|hidden/.test(A+n+i)}function getScrollParent(e){return["html","body","#document"].indexOf(getNodeName(e))>=0?e.ownerDocument.body:isHTMLElement(e)&&isScrollParent(e)?e:getScrollParent(getParentNode(e))}function listScrollParents(e,t){var A;void 0===t&&(t=[]);var i=getScrollParent(e),n=i===(null==(A=e.ownerDocument)?void 0:A.body),a=getWindow(i),r=n?[a].concat(a.visualViewport||[],isScrollParent(i)?i:[]):i,s=t.concat(r);return n?s:s.concat(listScrollParents(getParentNode(r)))}function rectToClientRect(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function getInnerBoundingClientRect(e,t){var A=getBoundingClientRect(e,!1,"fixed"===t);return A.top=A.top+e.clientTop,A.left=A.left+e.clientLeft,A.bottom=A.top+e.clientHeight,A.right=A.left+e.clientWidth,A.width=e.clientWidth,A.height=e.clientHeight,A.x=A.left,A.y=A.top,A}function getClientRectFromMixedType(e,t,A){return t===viewport?rectToClientRect(getViewportRect(e,A)):isElement(t)?getInnerBoundingClientRect(t,A):rectToClientRect(getDocumentRect(getDocumentElement(e)))}function getClippingParents(e){var t=listScrollParents(getParentNode(e)),A=["absolute","fixed"].indexOf(getComputedStyle$1(e).position)>=0&&isHTMLElement(e)?getOffsetParent(e):e;return isElement(A)?t.filter((function(e){return isElement(e)&&contains(e,A)&&"body"!==getNodeName(e)})):[]}function getClippingRect(e,t,A,i){var n="clippingParents"===t?getClippingParents(e):[].concat(t),a=[].concat(n,[A]),r=a[0],s=a.reduce((function(t,A){var n=getClientRectFromMixedType(e,A,i);return t.top=max(n.top,t.top),t.right=min(n.right,t.right),t.bottom=min(n.bottom,t.bottom),t.left=max(n.left,t.left),t}),getClientRectFromMixedType(e,r,i));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function computeOffsets(e){var t,A=e.reference,i=e.element,n=e.placement,a=n?getBasePlacement(n):null,r=n?getVariation(n):null,s=A.x+A.width/2-i.width/2,o=A.y+A.height/2-i.height/2;switch(a){case top:t={x:s,y:A.y-i.height};break;case bottom:t={x:s,y:A.y+A.height};break;case right:t={x:A.x+A.width,y:o};break;case left:t={x:A.x-i.width,y:o};break;default:t={x:A.x,y:A.y}}var l=a?getMainAxisFromPlacement(a):null;if(null!=l){var c="y"===l?"height":"width";switch(r){case start:t[l]=t[l]-(A[c]/2-i[c]/2);break;case end:t[l]=t[l]+(A[c]/2-i[c]/2)}}return t}function detectOverflow(e,t){void 0===t&&(t={});var A=t,i=A.placement,n=void 0===i?e.placement:i,a=A.strategy,r=void 0===a?e.strategy:a,s=A.boundary,o=void 0===s?clippingParents:s,l=A.rootBoundary,c=void 0===l?viewport:l,d=A.elementContext,h=void 0===d?popper:d,u=A.altBoundary,g=void 0!==u&&u,p=A.padding,m=void 0===p?0:p,w=mergePaddingObject("number"!=typeof m?m:expandToHashMap(m,basePlacements)),f=h===popper?reference:popper,E=e.rects.popper,B=e.elements[g?f:h],b=getClippingRect(isElement(B)?B:B.contextElement||getDocumentElement(e.elements.popper),o,c,r),v=getBoundingClientRect(e.elements.reference),C=computeOffsets({reference:v,element:E,strategy:"absolute",placement:n}),y=rectToClientRect(Object.assign({},E,C)),F=h===popper?y:v,x={top:b.top-F.top+w.top,bottom:F.bottom-b.bottom+w.bottom,left:b.left-F.left+w.left,right:F.right-b.right+w.right},S=e.modifiersData.offset;if(h===popper&&S){var T=S[n];Object.keys(x).forEach((function(e){var t=[right,bottom].indexOf(e)>=0?1:-1,A=[top,bottom].indexOf(e)>=0?"y":"x";x[e]+=T[A]*t}))}return x}function computeAutoPlacement(e,t){void 0===t&&(t={});var A=t,i=A.placement,n=A.boundary,a=A.rootBoundary,r=A.padding,s=A.flipVariations,o=A.allowedAutoPlacements,l=void 0===o?placements:o,c=getVariation(i),d=c?s?variationPlacements:variationPlacements.filter((function(e){return getVariation(e)===c})):basePlacements,h=d.filter((function(e){return l.indexOf(e)>=0}));0===h.length&&(h=d);var u=h.reduce((function(t,A){return t[A]=detectOverflow(e,{placement:A,boundary:n,rootBoundary:a,padding:r})[getBasePlacement(A)],t}),{});return Object.keys(u).sort((function(e,t){return u[e]-u[t]}))}function getExpandedFallbackPlacements(e){if(getBasePlacement(e)===auto)return[];var t=getOppositePlacement(e);return[getOppositeVariationPlacement(e),t,getOppositeVariationPlacement(t)]}function flip(e){var t=e.state,A=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var n=A.mainAxis,a=void 0===n||n,r=A.altAxis,s=void 0===r||r,o=A.fallbackPlacements,l=A.padding,c=A.boundary,d=A.rootBoundary,h=A.altBoundary,u=A.flipVariations,g=void 0===u||u,p=A.allowedAutoPlacements,m=t.options.placement,w=getBasePlacement(m),f=o||(w!==m&&g?getExpandedFallbackPlacements(m):[getOppositePlacement(m)]),E=[m].concat(f).reduce((function(e,A){return e.concat(getBasePlacement(A)===auto?computeAutoPlacement(t,{placement:A,boundary:c,rootBoundary:d,padding:l,flipVariations:g,allowedAutoPlacements:p}):A)}),[]),B=t.rects.reference,b=t.rects.popper,v=new Map,C=!0,y=E[0],F=0;F=0,k=I?"width":"height",U=detectOverflow(t,{placement:x,boundary:c,rootBoundary:d,altBoundary:h,padding:l}),Q=I?T?right:left:T?bottom:top;B[k]>b[k]&&(Q=getOppositePlacement(Q));var O=getOppositePlacement(Q),M=[];if(a&&M.push(U[S]<=0),s&&M.push(U[Q]<=0,U[O]<=0),M.every((function(e){return e}))){y=x,C=!1;break}v.set(x,M)}if(C)for(var L=function(e){var t=E.find((function(t){var A=v.get(t);if(A)return A.slice(0,e).every((function(e){return e}))}));if(t)return y=t,"break"},D=g?3:1;D>0&&"break"!==L(D);D--);t.placement!==y&&(t.modifiersData[i]._skip=!0,t.placement=y,t.reset=!0)}}var flip$1={name:"flip",enabled:!0,phase:"main",fn:flip,requiresIfExists:["offset"],data:{_skip:!1}};function getSideOffsets(e,t,A){return void 0===A&&(A={x:0,y:0}),{top:e.top-t.height-A.y,right:e.right-t.width+A.x,bottom:e.bottom-t.height+A.y,left:e.left-t.width-A.x}}function isAnySideFullyClipped(e){return[top,right,bottom,left].some((function(t){return e[t]>=0}))}function hide(e){var t=e.state,A=e.name,i=t.rects.reference,n=t.rects.popper,a=t.modifiersData.preventOverflow,r=detectOverflow(t,{elementContext:"reference"}),s=detectOverflow(t,{altBoundary:!0}),o=getSideOffsets(r,i),l=getSideOffsets(s,n,a),c=isAnySideFullyClipped(o),d=isAnySideFullyClipped(l);t.modifiersData[A]={referenceClippingOffsets:o,popperEscapeOffsets:l,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}var hide$1={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hide};function distanceAndSkiddingToXY(e,t,A){var i=getBasePlacement(e),n=[left,top].indexOf(i)>=0?-1:1,a="function"==typeof A?A(Object.assign({},t,{placement:e})):A,r=a[0],s=a[1];return r=r||0,s=(s||0)*n,[left,right].indexOf(i)>=0?{x:s,y:r}:{x:r,y:s}}function offset(e){var t=e.state,A=e.options,i=e.name,n=A.offset,a=void 0===n?[0,0]:n,r=placements.reduce((function(e,A){return e[A]=distanceAndSkiddingToXY(A,t.rects,a),e}),{}),s=r[t.placement],o=s.x,l=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=o,t.modifiersData.popperOffsets.y+=l),t.modifiersData[i]=r}var offset$1={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset};function popperOffsets(e){var t=e.state,A=e.name;t.modifiersData[A]=computeOffsets({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var popperOffsets$1={name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}};function getAltAxis(e){return"x"===e?"y":"x"}function preventOverflow(e){var t=e.state,A=e.options,i=e.name,n=A.mainAxis,a=void 0===n||n,r=A.altAxis,s=void 0!==r&&r,o=A.boundary,l=A.rootBoundary,c=A.altBoundary,d=A.padding,h=A.tether,u=void 0===h||h,g=A.tetherOffset,p=void 0===g?0:g,m=detectOverflow(t,{boundary:o,rootBoundary:l,padding:d,altBoundary:c}),w=getBasePlacement(t.placement),f=getVariation(t.placement),E=!f,B=getMainAxisFromPlacement(w),b=getAltAxis(B),v=t.modifiersData.popperOffsets,C=t.rects.reference,y=t.rects.popper,F="function"==typeof p?p(Object.assign({},t.rects,{placement:t.placement})):p,x="number"==typeof F?{mainAxis:F,altAxis:F}:Object.assign({mainAxis:0,altAxis:0},F),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,T={x:0,y:0};if(v){if(a){var I,k="y"===B?top:left,U="y"===B?bottom:right,Q="y"===B?"height":"width",O=v[B],M=O+m[k],L=O-m[U],D=u?-y[Q]/2:0,N=f===start?C[Q]:y[Q],H=f===start?-y[Q]:-C[Q],R=t.elements.arrow,P=u&&R?getLayoutRect(R):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:getFreshSideObject(),K=V[k],G=V[U],W=within(0,C[Q],P[Q]),z=E?C[Q]/2-D-W-K-x.mainAxis:N-W-K-x.mainAxis,X=E?-C[Q]/2+D+W+G+x.mainAxis:H+W+G+x.mainAxis,Y=t.elements.arrow&&getOffsetParent(t.elements.arrow),j=Y?"y"===B?Y.clientTop||0:Y.clientLeft||0:0,J=null!=(I=null==S?void 0:S[B])?I:0,Z=O+X-J,_=within(u?min(M,O+z-J-j):M,O,u?max(L,Z):L);v[B]=_,T[B]=_-O}if(s){var q,$="x"===B?top:left,ee="x"===B?bottom:right,te=v[b],Ae="y"===b?"height":"width",ie=te+m[$],ne=te-m[ee],ae=-1!==[top,left].indexOf(w),re=null!=(q=null==S?void 0:S[b])?q:0,se=ae?ie:te-C[Ae]-y[Ae]-re+x.altAxis,oe=ae?te+C[Ae]+y[Ae]-re-x.altAxis:ne,le=u&&ae?withinMaxClamp(se,te,oe):within(u?se:ie,te,u?oe:ne);v[b]=le,T[b]=le-te}t.modifiersData[i]=T}}var preventOverflow$1={name:"preventOverflow",enabled:!0,phase:"main",fn:preventOverflow,requiresIfExists:["offset"]};function getHTMLElementScroll(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function getNodeScroll(e){return e!==getWindow(e)&&isHTMLElement(e)?getHTMLElementScroll(e):getWindowScroll(e)}function isElementScaled(e){var t=e.getBoundingClientRect(),A=round(t.width)/e.offsetWidth||1,i=round(t.height)/e.offsetHeight||1;return 1!==A||1!==i}function getCompositeRect(e,t,A){void 0===A&&(A=!1);var i=isHTMLElement(t),n=isHTMLElement(t)&&isElementScaled(t),a=getDocumentElement(t),r=getBoundingClientRect(e,n,A),s={scrollLeft:0,scrollTop:0},o={x:0,y:0};return(i||!i&&!A)&&(("body"!==getNodeName(t)||isScrollParent(a))&&(s=getNodeScroll(t)),isHTMLElement(t)?((o=getBoundingClientRect(t,!0)).x+=t.clientLeft,o.y+=t.clientTop):a&&(o.x=getWindowScrollBarX(a))),{x:r.left+s.scrollLeft-o.x,y:r.top+s.scrollTop-o.y,width:r.width,height:r.height}}function order(e){var t=new Map,A=new Set,i=[];function n(e){A.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!A.has(e)){var i=t.get(e);i&&n(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){A.has(e.name)||n(e)})),i}function orderModifiers(e){var t=order(e);return modifierPhases.reduce((function(e,A){return e.concat(t.filter((function(e){return e.phase===A})))}),[])}function debounce(e){var t;return function(){return t||(t=new Promise((function(A){Promise.resolve().then((function(){t=void 0,A(e())}))}))),t}}function mergeByName(e){var t=e.reduce((function(e,t){var A=e[t.name];return e[t.name]=A?Object.assign({},A,t,{options:Object.assign({},A.options,t.options),data:Object.assign({},A.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}var DEFAULT_OPTIONS={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var e=arguments.length,t=new Array(e),A=0;A(this.setSelectedItem(this.selectedItem-1,!0),!1))),A.register([],"ArrowDown",(()=>(this.setSelectedItem(this.selectedItem+1,!0),!1))),A.register([],"Enter",(e=>(this.useSelectedItem(e),!1))),A.register([],"Tab",(e=>(this.chooseSuggestion(e),!1)))}chooseSuggestion(e){if(!this.items||!this.items.length)return;const t=this.items[this.selectedItem];t&&this.owner.onChooseSuggestion(t,e)}onSuggestionClick(e,t){if(e.preventDefault(),!this.suggestions||!this.suggestions.length)return;const A=this.suggestions.indexOf(t);this.setSelectedItem(A,!1),this.useSelectedItem(e)}onSuggestionMouseover(e,t){if(!this.suggestions||!this.suggestions.length)return;const A=this.suggestions.indexOf(t);this.setSelectedItem(A,!1)}empty(){this.containerEl.empty()}setSuggestions(e){this.containerEl.empty();const t=[];e.forEach((e=>{const A=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(e,A),t.push(A)})),this.items=e,this.suggestions=t,this.setSelectedItem(0,!1)}useSelectedItem(e){if(!this.items||!this.items.length)return;const t=this.items[this.selectedItem];t&&this.owner.selectSuggestion(t,e)}wrap(e,t){return(e%t+t)%t}setSelectedItem(e,t){const A=this.wrap(e,this.suggestions.length),i=this.suggestions[this.selectedItem],n=this.suggestions[A];i&&i.removeClass("is-selected"),n&&n.addClass("is-selected"),this.selectedItem=A,t&&n.scrollIntoView(!1)}}class SuggestionModal extends obsidian_module.FuzzySuggestModal{constructor(e,t,A){super(e),this.items=[],this.scope=new obsidian_module.Scope(this.app.scope),this.emptyStateText="No match found",this.limit=100,this.inputEl=t,this.items=A,this.suggestEl=createDiv("suggestion-container"),this.contentEl=this.suggestEl.createDiv("suggestion"),this.suggester=new Suggester(this,this.contentEl,this.scope),this.scope.register([],"Escape",this.onEscape.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onFocus.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",(e=>{e.preventDefault()}))}empty(){this.suggester.empty()}onInputChanged(){if(this.shouldNotOpen)return;const e=this.modifyInput(this.inputEl.value),t=this.getSuggestions(e);t.length>0?this.suggester.setSuggestions(t.slice(0,this.limit)):this.onNoSuggestion(),this.open()}onFocus(){this.shouldNotOpen=!1,this.onInputChanged()}modifyInput(e){return e}onNoSuggestion(){this.empty(),this.renderSuggestion(null,this.contentEl.createDiv("suggestion-item"))}open(){this.app.keymap.pushScope(this.scope),this.inputEl.ownerDocument.body.appendChild(this.suggestEl),this.popper=createPopper(this.inputEl,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,10]}},{name:"flip",options:{fallbackPlacements:["top"]}}]})}onEscape(){this.close(),this.shouldNotOpen=!0}close(){this.app.keymap.popScope(this.scope),this.suggester.setSuggestions([]),this.popper&&this.popper.destroy(),this.suggestEl.detach()}createPrompt(e){this.promptEl||(this.promptEl=this.suggestEl.createDiv("prompt-instructions"));const t=this.promptEl.createDiv("prompt-instruction");for(const A of e)t.appendChild(A)}}class FileSuggestionModal extends SuggestionModal{constructor(e,t,A){super(e,t.inputEl,A),this.limit=20,this.files=[...A],this.text=t,this.inputEl.addEventListener("input",(()=>this.getFile()))}getFile(){const e=this.inputEl.value,t=this.app.vault.getAbstractFileByPath(e);t!==this.file&&t instanceof obsidian_module.TFile&&(this.file=t,this.onInputChanged())}getSelectedItem(){return this.file}getItemText(e){return e.path}onChooseItem(e){this.file=e,this.text.setValue(e.path),this.text.onChanged()}selectSuggestion({item:e}){this.file=e,this.text.setValue(e.path),this.onClose(),this.text.onChanged(),this.close()}renderSuggestion(e,t){const{item:A,match:i}=e||{},n=t.createDiv({cls:"suggestion-content"});if(!A)return n.setText(this.emptyStateText),void n.parentElement.addClass("is-selected");const a=A.path.length-A.name.length,r=i.matches.map((e=>createSpan("suggestion-highlight")));for(let e=a;et[0]===e));if(t){const a=r[i.matches.indexOf(t)];n.appendChild(a),a.appendText(A.path.substring(t[0],t[1])),e+=t[1]-t[0]-1}else n.appendText(A.path[e])}t.createDiv({cls:"suggestion-note",text:A.path})}getItems(){return this.files}}const insertImageToView=async(e,t,A,i)=>{e.clear(),e.style.strokeColor="transparent",e.style.backgroundColor="transparent";const n=e.getExcalidrawAPI();e.canvas.theme=n.getAppState().theme;const a=await e.addImage(t.x,t.y,A,i);return await e.addElementsToView(!1,!1,!0),a},insertIFrameToView=async(e,t,A,i)=>{if(e.clear(),e.style.strokeColor="transparent",e.style.backgroundColor="transparent",A&&IMAGE_TYPES.contains(A.extension)||e.isExcalidrawFile(A))return await insertImageToView(e,t,A);{const n=e.addIFrame(t.x,t.y,500,500,i,A);return await e.addElementsToView(!1,!1,!0),n}},getEA=e=>{try{return window.ExcalidrawAutomate.getAPI(e)}catch(e){return console.log({message:"Excalidraw not available",fn:getEA}),null}};class InsertPDFModal extends obsidian_module.Modal{constructor(e,t){super(app),this.plugin=e,this.view=t,this.borderBox=!0,this.gapSize=20,this.numColumns=1,this.lockAfterImport=!0,this.pagesToImport=[],this.pageDimensions={width:0,height:0},this.importScale=.3,this.dirty=!1,this.setImageSizeMessage=()=>this.imageSizeMessage.innerText=`${Math.round(this.pageDimensions.width*this.importScale)} x ${Math.round(this.pageDimensions.height*this.importScale)}`}open(e){e&&"pdf"===e.extension.toLowerCase()&&(this.pdfFile=e),super.open()}onOpen(){this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText("Import PDF"),this.createForm()}async onClose(){this.dirty&&(this.plugin.settings.pdfImportScale=this.importScale,this.plugin.settings.pdfBorderBox=this.borderBox,this.plugin.settings.pdfGapSize=this.gapSize,this.plugin.settings.pdfNumColumns=this.numColumns,this.plugin.settings.pdfLockAfterImport=this.lockAfterImport,this.plugin.saveSettings()),this.pdfDoc&&(this.pdfDoc.destroy(),this.pdfDoc=null)}async getPageDimensions(e){try{const t=this.plugin.settings.pdfScale,A=createEl("canvas"),i=(await e.getPage(1)).getViewport({scale:t});this.pageDimensions.height=i.height,this.pageDimensions.width=i.width,A.width=0,A.height=0,this.setImageSizeMessage()}catch(e){console.log(e)}}createPageListFromString(e){const t=e=>e.replace(/\D/g,"");return this.pagesToImport=[],e.split(",").forEach((e=>{const A=e.split("-");if(1===A.length){const e=parseInt(t(A[0]));!isNaN(e)&&this.pagesToImport.push(e)}else if(2===A.length){const e=parseInt(t(A[0])),i=parseInt(t(A[1]));if(isNaN(e)||isNaN(i))return;for(let t=e;t<=i;t++)this.pagesToImport.push(t)}})),this.pagesToImport}async createForm(){await this.plugin.loadSettings(),this.borderBox=this.plugin.settings.pdfBorderBox,this.gapSize=this.plugin.settings.pdfGapSize,this.numColumns=this.plugin.settings.pdfNumColumns,this.lockAfterImport=this.plugin.settings.pdfLockAfterImport,this.importScale=this.plugin.settings.pdfImportScale;const e=this.contentEl;let t,A,i,n;const a=()=>this.pdfDoc?0===this.pagesToImport.length?(i.buttonEl.style.display="none",void(n.innerText="Please select pages to import")):Math.max(...this.pagesToImport)<=this.pdfDoc.numPages?(i.buttonEl.style.display="block",void(n.innerText="")):(i.buttonEl.style.display="none",void(n.innerText=`The selected document has ${this.pdfDoc.numPages} pages. Please select pages between 1 and ${this.pdfDoc.numPages}`)):(n.innerText="Please select a PDF file",void(i.buttonEl.style.display="none")),r=()=>{0!==A?t.innerHTML=`There are ${A} pages in the selected document.`:t.innerText="Please select a PDF file"},s=async e=>{this.pdfDoc&&await this.pdfDoc.destroy(),this.pdfDoc=null,e&&(this.pdfDoc=await getPDFDoc(e),this.pdfFile=e,this.pdfDoc?(A=this.pdfDoc.numPages,a(),r(),this.getPageDimensions(this.pdfDoc)):i.setDisabled(!0))},o=new obsidian_module.TextComponent(e);o.inputEl.style.width="100%";const l=new FileSuggestionModal(this.app,o,app.vault.getFiles().filter((e=>"pdf"===e.extension.toLowerCase())));let c,d,h,u;o.onChange((async()=>{const e=l.getSelectedItem();await s(e)})),t=e.createEl("p",{text:""}),r(),new obsidian_module.Setting(e).setName("Pages to import").addText((e=>{d=e,e.setPlaceholder("e.g.: 1,3-5,7,9-10").onChange((e=>{const t=this.createPageListFromString(e);t.length>15?c.innerHTML=`You are importing ${t.length} pages. ⚠️ This may take a while. ⚠️`:c.innerHTML=`You are importing ${t.length} pages.`,a()})),e.inputEl.style.width="100%"})),c=e.createEl("p",{text:""}),new obsidian_module.Setting(e).setName("Add border box").addToggle((e=>e.setValue(this.borderBox).onChange((e=>{this.borderBox=e,this.dirty=!0})))),new obsidian_module.Setting(e).setName("Lock pages on canvas after import").addToggle((e=>e.setValue(this.lockAfterImport).onChange((e=>{this.lockAfterImport=e,this.dirty=!0})))),new obsidian_module.Setting(e).setName("Number of columns").addSlider((e=>e.setLimits(1,100,1).setValue(this.numColumns).onChange((e=>{this.numColumns=e,h.innerText=` ${e.toString()}`,this.dirty=!0})))).settingEl.createDiv("",(e=>{h=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.numColumns.toString()}`})),new obsidian_module.Setting(e).setName("Size of gap between pages").addSlider((e=>e.setLimits(10,200,10).setValue(this.gapSize).onChange((e=>{this.gapSize=e,u.innerText=` ${e.toString()}`,this.dirty=!0})))).settingEl.createDiv("",(e=>{u=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.gapSize.toString()}`}));const g=new obsidian_module.Setting(e).setName("Imported page size").setDesc(`${this.pageDimensions.width*this.importScale} x ${this.pageDimensions.height*this.importScale}`).addSlider((e=>e.setLimits(.1,1.5,.1).setValue(this.importScale).onChange((e=>{this.importScale=e,this.dirty=!0,this.setImageSizeMessage()}))));this.imageSizeMessage=g.descEl;const p=new obsidian_module.Setting(e).setDesc("Select a document first").addButton((e=>{e.setButtonText("Import PDF").setCta().onClick((async()=>{const e=getEA(this.view);let t=0,A=0;const i=Math.round(this.pageDimensions.width*this.importScale),a=Math.round(this.pageDimensions.height*this.importScale);for(let r=0;re.id)),o=e.getViewElements().filter((e=>s.includes(e.id)));r.selectElements(o),r.zoomToFit(o),this.close()})),i=e,i.buttonEl.style.display="none"}));n=p.descEl,n.addClass("mod-warning"),this.pdfFile?(o.setValue(this.pdfFile.path),await s(this.pdfFile),l.close(),d.inputEl.focus()):o.inputEl.focus(),a()}}class UniversalInsertFileModal extends obsidian_module.Modal{constructor(e,t){super(app),this.plugin=e,this.view=t,this.center={x:0,y:0};const A=t.excalidrawAPI.getAppState(),i=t.containerEl.getBoundingClientRect(),n=window.innerWidth||document.documentElement.clientWidth,a=window.innerHeight||document.documentElement.clientHeight,r=sceneCoordsToViewportCoords({sceneX:t.currentPosition.x,sceneY:t.currentPosition.y},A);if(r.x>=i.left+150&&r.y<=i.right-150&&r.y>=i.top+150&&r.y<=i.bottom-150){const e=t.currentPosition.x-250,A=t.currentPosition.y-250;this.center={x:e,y:A}}else{const e=i.left+i.width/2,t=i.top+i.height/2,r=Math.max(0,Math.min(n,e)),s=Math.max(0,Math.min(a,t));this.center=viewportCoordsToSceneCoords({clientX:r,clientY:s},A),this.center={x:this.center.x-250,y:this.center.y-250}}}onOpen(){this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText("Insert File From Vault"),this.createForm()}async createForm(){const e=this.contentEl;let t,A,i,n,a,r,s,o=!1;const l=async()=>{const e=this.plugin.ea,o=s&&"md"===s.extension&&!e.isExcalidrawFile(s),l=s&&(IMAGE_TYPES.contains(s.extension)||e.isExcalidrawFile(s)),c=s&&!l,d=s&&"pdf"===s.extension,h=s&&e.isExcalidrawFile(s);if(o){for(A.settingEl.style.display="",t.selectEl.style.display="block";t.selectEl.options.length>0;)t.selectEl.remove(0);t.addOption("",""),(await app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},s)).blocks.filter((e=>{var t;return e.display&&"heading"===(null===(t=e.node)||void 0===t?void 0:t.type)})).forEach((e=>{t.addOption(`#${e.display.replaceAll(REG_BLOCK_REF_CLEAN,"").trim()}`,e.display)}))}else A.settingEl.style.display="none",t.selectEl.style.display="none";r.settingEl.style.display=h?"":"none",l||"md"===(null==s?void 0:s.extension)?n.buttonEl.style.display="block":n.buttonEl.style.display="none",i.buttonEl.style.display=c?"block":"none",a.buttonEl.style.display=d?"block":"none"},c=new obsidian_module.TextComponent(e);c.inputEl.style.width="100%";const d=new FileSuggestionModal(this.app,c,app.vault.getFiles().filter((e=>e!==this.view.file)));c.onChange((()=>{s=d.getSelectedItem(),l()})),A=new obsidian_module.Setting(e).setName("Select section heading").addDropdown((e=>{t=e,t.selectEl.style.width="100%"})),r=new obsidian_module.Setting(e).setName("Anchor to 100% of original size").setDesc("This is a pro feature, use it only if you understand how it works. If enabled even if you change the size of the imported image in Excalidraw, the next time you open the drawing this image will pop back to 100% size. This is useful when embedding an atomic Excalidraw idea into another note and preserving relative sizing of text and icons.").addToggle((e=>{e.setValue(o).onChange((e=>{o=e}))})),new obsidian_module.Setting(e).addButton((e=>{e.setButtonText("as iFrame").onClick((async()=>{const e=app.metadataCache.fileToLinktext(s,this.view.file.path,"md"===s.extension),A=getEA(this.view);A.selectElementsInView([await insertIFrameToView(A,this.center,void 0,`[[${e}${t.selectEl.value}]]`)]),this.close()})),i=e})).addButton((e=>{e.setButtonText("as Pdf").onClick((()=>{new InsertPDFModal(this.plugin,this.view).open(s),this.close()})),a=e})).addButton((e=>{e.setButtonText("as Image").onClick((async()=>{const e=getEA(this.view),A=s&&"md"===s.extension&&!e.isExcalidrawFile(s);e.selectElementsInView([await insertImageToView(e,this.center,A&&t.selectEl.value&&""!==t.selectEl.value?`${s.path}${t.selectEl.value}`:s,e.isExcalidrawFile(s)?!o:void 0)]),this.close()})),n=e})),this.view.ownerWindow.addEventListener("keydown",this.onKeyDown=e=>{const t=e=>"none"!==e.buttonEl.style.display;switch(e.key){case"Escape":return void this.close();case"Enter":return!t(i)||t(n)||t(a)?!t(n)||t(i)||t(a)?!t(a)||t(i)||t(n)?void 0:void a.buttonEl.click():void n.buttonEl.click():void i.buttonEl.click();case"i":return void(t(n)&&n.buttonEl.click());case"p":return void(t(a)&&a.buttonEl.click());case"f":return void(t(i)&&i.buttonEl.click())}}),c.inputEl.focus(),l()}onClose(){this.view.ownerWindow.removeEventListener("keydown",this.onKeyDown)}}const setPen=(e,t)=>{const A=t.getAppState();t.updateScene({appState:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({currentStrokeOptions:e.penOptions},e.strokeWidth&&0!==e.strokeWidth?{currentItemStrokeWidth:e.strokeWidth}:null),e.backgroundColor?{currentItemBackgroundColor:e.backgroundColor}:null),e.strokeColor?{currentItemStrokeColor:e.strokeColor}:null),""===e.fillStyle?null:{currentItemFillStyle:e.fillStyle}),e.roughness?null:{currentItemRoughness:e.roughness}),e.freedrawOnly&&!A.resetCustomPen?{resetCustomPen:{currentItemStrokeWidth:A.currentItemStrokeWidth,currentItemBackgroundColor:A.currentItemBackgroundColor,currentItemStrokeColor:A.currentItemStrokeColor,currentItemFillStyle:A.currentItemFillStyle,currentItemRoughness:A.currentItemRoughness}}:null)})},resetStrokeOptions=(e,t,A)=>{t.updateScene({appState:Object.assign(Object.assign(Object.assign({},e?{currentItemStrokeWidth:e.currentItemStrokeWidth,currentItemBackgroundColor:e.currentItemBackgroundColor,currentItemStrokeColor:e.currentItemStrokeColor,currentItemFillStyle:e.currentItemFillStyle,currentItemRoughness:e.currentItemRoughness}:null),{resetCustomPen:null}),A?{currentStrokeOptions:null}:null)})};class ObsidianMenu{constructor(e,t,A){this.plugin=e,this.toolsRef=t,this.view=A,this.renderCustomPens=(e,t)=>{var A;return null===(A=t.customPens)||void 0===A?void 0:A.map(((A,i)=>{const n=this.plugin.settings.customPens[i];return t.resetCustomPen&&"freedraw"!==t.activeTool.type&&t.currentStrokeOptions===n.penOptions&&setTimeout((()=>resetStrokeOptions(t.resetCustomPen,this.view.excalidrawAPI,!1))),!t.resetCustomPen&&"freedraw"===t.activeTool.type&&t.currentStrokeOptions===n.penOptions&&n.freedrawOnly&&setTimeout((()=>setPen(this.activePen,this.view.excalidrawAPI))),this.activePen&&t.resetCustomPen&&"freedraw"===t.activeTool.type&&t.currentStrokeOptions===n.penOptions&&n.freedrawOnly&&(this.activePen.strokeWidth=t.currentItemStrokeWidth,this.activePen.backgroundColor=t.currentItemBackgroundColor,this.activePen.strokeColor=t.currentItemStrokeColor,this.activePen.fillStyle=t.currentItemFillStyle,this.activePen.roughness=t.currentItemRoughness),React__namespace.createElement("label",{key:i,className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onClick:()=>{const e=Date.now();if(e-this.clickTimestamp[i]<500){const e=new PenSettingsModal(this.plugin,this.view,i);return void(async()=>{await this.plugin.loadSettings(),e.open()})()}this.clickTimestamp[i]=e;const t=this.view.excalidrawAPI,A=t.getAppState();A.currentStrokeOptions!==n.penOptions||"freedraw"!==A.activeTool.type?(this.activePen=Object.assign({},n),setPen(n,t),t.setActiveTool({type:"freedraw"})):resetStrokeOptions(A.resetCustomPen,t,!0)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":n.type,style:Object.assign({},"freedraw"===t.activeTool.type&&t.currentStrokeOptions===n.penOptions?{background:"var(--color-primary)"}:{})},penIcon(n)))}))},this.longpressTimeout={},this.renderPinnedScriptButtons=(e,t)=>{var A;let i=0;return null===(A=null==t?void 0:t.pinnedScripts)||void 0===A?void 0:A.map(((t,A)=>{var n;const a=this.plugin.scriptEngine.scriptIconMap[t],r=null!==(n=null==a?void 0:a.name)&&void 0!==n?n:"",s=(null==a?void 0:a.svgString)?stringToSVG(a.svgString):ICONS.cog;return this.longpressTimeout[A]||(this.longpressTimeout[A]=0),React__namespace.createElement("label",{key:A,className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onPointerUp:()=>{this.longpressTimeout[A]&&(window.clearTimeout(this.longpressTimeout[A]),this.longpressTimeout[A]=0,(async()=>{const e=app.vault.getAbstractFileByPath(t);e&&e instanceof obsidian_module.TFile&&this.plugin.scriptEngine.executeScript(this.view,await app.vault.read(e),this.plugin.scriptEngine.getScriptName(e),e)})())},onPointerDown:()=>{const e=Date.now();this.longpressTimeout[A]>0&&(window.clearTimeout(this.longpressTimeout[A]),this.longpressTimeout[A]=0),e-i>=500&&(this.longpressTimeout[A]=window.setTimeout((()=>{this.longpressTimeout[A]=0,(async()=>{var e;await this.plugin.loadSettings();const A=this.plugin.settings.pinnedScripts.indexOf(t);A>-1&&(this.plugin.settings.pinnedScripts.splice(A,1),null===(e=this.view.excalidrawAPI)||void 0===e||e.setToast({message:`Pin removed: ${r}`,duration:3e3,closable:!0})),await this.plugin.saveSettings(),app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updatePinnedScripts()}))})()}),1500)),i=e}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":r},s))}))},this.renderButton=(e,t)=>React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement("label",{className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onClick:()=>{this.toolsRef.current.setTheme(t.theme),this.toolsRef.current.toggleVisibility(t.zenModeEnabled||e)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":t$d("OBSIDIAN_TOOLS_PANEL")},ICONS.obsidian)),React__namespace.createElement("label",{className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onClick:()=>{new UniversalInsertFileModal(this.plugin,this.view).open()}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":t$d("UNIVERSAL_ADD_FILE")},ICONS["add-file"])),this.renderCustomPens(e,t),this.renderPinnedScriptButtons(e,t)),this.clickTimestamp=Array.from({length:Object.keys(PENS).length},(()=>0))}}class ActionButton extends React__namespace.Component{constructor(e){super(e),this.toastMessageTimeout=0,this.longpressTimeout=0,this.state={visible:!0}}render(){return React__namespace.createElement("button",{style:{},className:"ToolIcon_type_button ToolIcon_size_small ToolIcon_type_button--show ToolIcon",title:this.props.title,onClick:e=>{this.toastMessageTimeout&&(window.clearTimeout(this.toastMessageTimeout),this.toastMessageTimeout=0,this.props.action(e)),this.longpressTimeout&&(window.clearTimeout(this.longpressTimeout),this.longpressTimeout=0)},onPointerDown:e=>{this.toastMessageTimeout=window.setTimeout((()=>{var e;null===(e=this.props.view.excalidrawAPI)||void 0===e||e.setToast({message:this.props.title,duration:3e3,closable:!0}),this.toastMessageTimeout=0}),400),this.longpressTimeout=window.setTimeout((()=>{var t;this.props.longpress?this.props.longpress(e):null===(t=this.props.view.excalidrawAPI)||void 0===t||t.setToast({message:"Cannot pin this action",duration:3e3,closable:!0}),this.longpressTimeout=0}),1500)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},this.props.icon))}}const FIRST_RUN='\nThe Excalidraw Obsidian plugin is much more than "just" a drawing tool. To help you get started here\'s a showcase of the key Excalidraw plugin features.\n\nIf you\'d like to learn more, please subscribe to my YouTube channel: [Visual PKM](https://www.youtube.com/channel/UCC0gns4a9fhVkGkngvSumAQ) where I regularly share videos about Obsidian-Excalidraw and about tools and techniques for Visual Personal Knowledge Management.\n\nThank you & Enjoy!\n\n
\n\n
\n',RELEASE_NOTES={Intro:'After each update you\'ll be prompted with the release notes. You can disable this in plugin settings.\n\nI develop this plugin as a hobby, spending my free time doing this. If you find it valuable, then please say THANK YOU or...\n\n
\n',"1.9.8":'\n## New Features\n- Zoom to heading and block in markdown frames.\n- Added an iframe menu that allows users to change heading/block zoom, center the element, and open it in the browser.\n- Replaced twitframe with platform.twitter for tweets. The "Read more" and "Reply" buttons now work. Embedded tweets will honor theme settings.\n\n## Bug Fixes\n- Fixed an issue where embedded markdown frames disappeared in fullscreen mode. [#1197](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1197)\n- Resolved a problem with the "Embed Markdown as Image" feature where changes to embed properties were not always honored. [#1201](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1201)\n- When inserting any file from the Vault and embedding a Markdown document as an image, the embed now correctly honors the section heading if specified. [#1200](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1200)\n- SVG and PNG autoexport now function properly when closing a popout window. [#1209](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1209)\n- Many other minor fixes\n',"1.9.7":`\n## Fixed:\n\n- Fixed an issue where using the color picker shortcut would cause the UI to disappear in mobile view mode.\n- You can now add YouTube playlists to iframes.\n- Fixed a bug where the "Add any file" dropdown suggester opened in the main Obsidian workspace instead of the popout window when Excalidraw was running. ([#1179](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1191))\n- Made some improvements to the logic of opening in the adjacent pane, although it is still not perfect.\n- Fixed an issue where Obsidian sync would result in the loss of the last approximately 20 seconds of work. Excalidraw's handling of sync is now fixed. ([#1189](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1189))\n\n## New:\n\n- Introducing Image Cache: Excalidraw will now cache rendered images embedded in Markdown documents, which will enhance the markdown rendering experience.\n- Backup Cache: Excalidraw now stores a backup on your device when saving, in case the application is terminated during a save operation. If you are using sync, you can find the latest backup on the device you last used to edit your drawing.\n- Added ${String.fromCharCode(96)}frame=${String.fromCharCode(96)} parameter to image references. ([#1194](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1194)) For more details about this feature, check out this [YouTube video](https://youtu.be/yZQoJg2RCKI).\n- When an SVG image from Draw.io is embedded in Excalidraw, clicking the image will open the file in the [Diagram plugin](https://github.com/zapthedingbat/drawio-obsidian) (if available).\n- Added the [Create DrawIO file](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Create%20DrawIO%20file.md) Excalidraw Automate Script to the library, which allows you to create a new draw.io drawing and add it to the current Excalidraw canvas.\n\n## New in ExcalidrawAutomate\n\n${String.fromCharCode(96,96,96)}typescript\nasync getAttachmentFilepath(filename: string): Promise\n${String.fromCharCode(96,96,96)}\n\nThis asynchronous function retrieves the filepath to a new file, taking into account the attachments preference settings in Obsidian. It creates the attachment folder if it doesn't already exist. The function returns the complete path to the file. If the provided filename already exists, the function will append '_[number]' before the extension to generate a unique filename.\n\n${String.fromCharCode(96,96,96)}typescript\ngetElementsInFrame(frameElement: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];\n${String.fromCharCode(96,96,96)}\n\nThis function returns the elements contained within a frame.\n`,"1.9.6":`\n## Fixed\n- help shortcuts are really hard to see [#1176](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1179)\n- link icons not visible on elements after 1.9.5 release (reported on Discord)\n- PDFs in iFrames will now respect the ${String.fromCharCode(96)}[[document.pdf#page=155]]${String.fromCharCode(96)} format\n- Keyboard shortcuts were not working properly on external drop. Check [updated keyboard map](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/excalidraw-modifiers.png)\n\nKeyboard map\n`,"1.9.5":`\n
\n\n
\n\n## New\n- IFrame support: insert documents from your Obsidian Vault and insert youtube, Vimeo, and generally any website from the internet\n- Frame support: use frames to group items on your board\n\n## New in ExcalidrawAutomate\n- selectElementsInView now also accepts a list of element IDs\n- new addIFrame function that accepts an Obsidian file or a URL string\n${String.fromCharCode(96,96,96)}typescript\nselectElementsInView(elements: ExcalidrawElement[] | string[]): void;\naddIFrame(topX: number, topY: number, width: number, height: number, url?: string, file?: TFile): string;\n${String.fromCharCode(96,96,96)}\n`,"1.9.3":'\n## New from Excalidraw.com\n- Eyedropper tool. The eyedropper is triggered with "i". If you hold the ALT key while clicking the color it will set the stroke color of the selected element, else the background color.\n- Flipping multiple elements\n- Improved stencil library rendering performance + the stencil library will remember the scroll position from the previous time it was open\n\n## Fixed\n- Replaced command palette and tab export SVG/PNG/Excalidraw actions with "export image" which will take the user to the export image dialog.\n',"1.9.2":`\n
\n\n
\n\n## New\n- Excalidraw.com Color Picker redesign [#6216](https://github.com/excalidraw/excalidraw/pull/6216)\n- Updated palette loader script in the script library\n- New ExcalidrawAutomate API to load Elements and AppState from another Excalidraw file.\n${String.fromCharCode(96,96,96)}typescript\nasync getSceneFromFile(file: TFile): Promise<{elements: ExcalidrawElement[]; appState: AppState;}>\n${String.fromCharCode(96,96,96)}\n`,"1.9.1":'\n## Updates from Excalidraw.com\n- "Unlock all elements" - new action available via the context menu [#5894](https://github.com/excalidraw/excalidraw/pull/5894)\n- Minor improvements to improve the speed [#6560](https://github.com/excalidraw/excalidraw/pull/6560)\n- Retain Seed on Shift Paste [#6509](https://github.com/excalidraw/excalidraw/pull/6509)\n\n## New/Fixed\n- Clicking on the link handle (top right corner) will open the link in the same window\n- CTRL/CMD click on a link will open the link in a new tab and will focus on the new tab\n- Linking to parts of images. In some cases clicking search results, links, or backlinks did not focus on the right element according to the link. Fixed.\n',"1.9.0":`\n
\n\n
\n\n## Fixed\n- Embedded images, markdowns, PDFs will load one by one, not in one go after a long wait\n\n## New\n- Embed PDF\n\n## New in ExcalidrawAutomate\n- onFileCreateHook: if set this hook is called whenever a new drawing is created using Excalidraw command palette menu actions. If the excalidraw file is created using Templater or other means, the trigger will not fire. [#1124](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1124)\n${String.fromCharCode(96,96,96)}typescript\n onFileCreateHook: (data: {\n ea: ExcalidrawAutomate;\n excalidrawFile: TFile; //the file being created\n view: ExcalidrawView;\n }) => Promise;\n ${String.fromCharCode(96,96,96)}\n`,"1.8.26":"\n## Fixed\n- Dynamic styling did not pick up correctly\n - the accent color with the default Obsidian theme\n - the drawing theme color with the out of the box, default new drawing (not using a template)\n- The Obsidian tools panel did not pick up user scripts when installing your very first script. A reload of Obsidian was required.\n","1.8.25":'\n
\n\n
\n\n## New & improved\n- Multi-link support\n- Updated [Scribble Helper](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Scribble%20Helper.md) script for better handwritten text support. \n - Add links to text elements\n - Creating wrapped text in transparent sticky notes\n - Add text to arrows and lines\n - Handwriting support on iOS via Scribble\n\n## Fixed\n - The long-standing issue of jumping text\n \n',"1.8.24":`\n## Updates from Excalidraw.com\n- fix: color picker keyboard handling not working\n- fix: center align text when bind to the container via context menu\n- fix: split "Edit selected shape" shortcut\n\n## Fixed\n- BUG: Area embed link of svg inside excalidraw embed entire svg instead of area [#1098](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1098)\n\n## New\n- I updated the [Scribble Helper](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Scribble%20Helper.md) script with tons of new features. I am still beta testing the script. I will release a demo video in the next few days.\n\n## New in Excalidraw Automate\n- I added many more configuration options for the scriptEngine utils.inputPrompt function. See [Scribble Helper](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Scribble%20Helper.md) for a demonstration of this new feature.\n${String.fromCharCode(96,96,96)}typescript\n public static async inputPrompt(\n view: ExcalidrawView,\n plugin: ExcalidrawPlugin,\n app: App,\n header: string,\n placeholder?: string,\n value?: string,\n buttons?: { caption: string; tooltip?:string; action: Function }[],\n lines?: number,\n displayEditorButtons?: boolean,\n customComponents?: (container: HTMLElement) => void\n )\n${String.fromCharCode(96,96,96)}`,"1.8.23":'\n## Fixes\n- Fixed palm rejection to prevent unwanted spikes when using the freedraw tool. ([#1065](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1065))\n- Fixed issue where images disappeared when zoomed in. ([#6417](https://github.com/excalidraw/excalidraw/pull/6417))\n- Autosave will now save the drawing when you change the theme from dark to light or vice versa. ([#1080](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1080))\n- Added padding to short LaTeX formulas to prevent cropping. ([#1053](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1053))\n\n## New Features\n- Added a new command palette action: Toggle to invert default binding behavior. This new feature allows you to switch between normal and inverted mode. In normal mode, arrows will bind to objects unless you hold the CTRL/CMD key while drawing the arrow or moving objects. In inverted mode, arrows will not bind to objects unless you hold the CTRL/CMD key while drawing the arrow or moving objects.\n- You can now set a template LaTeX formula in the plugin settings (under experimental features) to be used when creating a new LaTeX formula. ([#1090](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1090))\n- Redesigned the Image Export dialog. I hope dropdowns are now more intuitive than the toggles were.\n- Added the ability to export only the selected part of a drawing. See the Export dialog for more information.\n- Added a zigzag fill easter egg. See a demo of this feature [here](https://twitter.com/excalidraw/status/1645428942344445952?s=61&t=nivKLx2vgl6hdv2EbW4mZg).\n- Added a new expert function: recolor embedded Excalidraw and SVG images (not JPG, PNG, BMP, WEBP, GIF). See a demo of this feature here:\n\n
\n\n
\n',"1.8.22":`\n## Fixed\n- Styling of custom pen and script buttons in the side panel was inverted.\n- Minor tweaks to dynamic styling. [see this video to understand dynamic styling](https://youtu.be/fypDth_-8q0)\n\n## New\n- New scripts by @threethan:\n - [Auto Draw for Pen](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Auto%20Draw%20for%20Pen.md): Automatically switches between the select and draw tools, based on whether a pen is being used. Supports most pens including Apple Pencil.\n - [Hardware Eraser Support](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Hardware%20Eraser%20Support.md): Adds support for pen inversion, a.k.a. the hardware eraser on the back of your pen. Supports Windows based styluses. Does not suppoprt Apple Pencil or S-Pen.\n- Added separate buttons to support copying link, area or group references to objects on the drawing. [#1063](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1063). See [this video](https://youtu.be/yZQoJg2RCKI) for more details on how this works.\n- Hover preview will no longer trigger for image files (.png, .svg, .jpg, .gif, .webp, .bmp, .ico, .excalidraw)\n- Minor updates to the [Slideshow](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Slideshow.md) script. You can download the updated script from the Excalidraw script library. The slideshow will now correctly run also when initiated in a popout window. When the drawing is in a popout window, the slideshow will not be full screen, but will only occupy the popout window. If you run the slideshow from the main Obsidian workspace, it will be displayed in full-screen mode.\n- Updated the Icon Library script to now include image keywords under each of the images to allow searching for keywords (CTRL/CMD+F). I've uploaded the new script to [here](https://gist.github.com/zsviczian/33ff695d5b990de1ebe8b82e541c26ad). If you need further information watch this [video](https://youtu.be/_OEljzZ33H8)\n\n## New in ExcalidrawAutomate\n- ${String.fromCharCode(96)}addText${String.fromCharCode(96)} ${String.fromCharCode(96)}formatting${String.fromCharCode(96)} parameter now accepts ${String.fromCharCode(96)}boxStrokeColor${String.fromCharCode(96)} and ${String.fromCharCode(96)}textVerticalAlign${String.fromCharCode(96)} values.\n${String.fromCharCode(96,96,96)}typescript\naddText(\n topX: number,\n topY: number,\n text: string,\n formatting?: {\n wrapAt?: number;\n width?: number;\n height?: number;\n textAlign?: "left" | "center" | "right";\n box?: boolean | "box" | "blob" | "ellipse" | "diamond";\n boxPadding?: number;\n boxStrokeColor?: string;\n textVerticalAlign?: "top" | "middle" | "bottom";\n },\n id?: string,\n ): string;\n${String.fromCharCode(96,96,96)}\n- new ${String.fromCharCode(96)}onFileOpenHook${String.fromCharCode(96)}. If set, this callback is triggered, when an Excalidraw file is opened. You can use this callback in case you want to do something additional when the file is opened. This will run before the file level script defined in the ${String.fromCharCode(96)}excalidraw-onload-script${String.fromCharCode(96)} frontmatter is executed. Excalidraw will await the result of operations here. Handle with care. If you change data such as the frontmatter of the underlying file, I haven't tested how it will behave.\n${String.fromCharCode(96,96,96)}typescript\nonFileOpenHook: (data: {\n ea: ExcalidrawAutomate;\n excalidrawFile: TFile; //the file being loaded\n view: ExcalidrawView;\n}) => Promise;\n${String.fromCharCode(96,96,96)}`,"1.8.21":'\n## Quality of Life improvements\n- Dynamic Styling (see plugin settings / Display). When Dynamic Styling is enabled it fixes Excalidraw issues with the Minimal Theme\n- New "Invert Colors" script\n\n
\n\n
\n\n### Note\nThe few of you, that are using the Dynamic Styling Templater script, please remove it and restart Obsidian.\n',"1.8.20":"\n## Fixed\n- Excalidraw froze Obsidian in certain rare situations [#1054](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1054)\n- File loading error [#1062](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1062)\n- Embedded images in markdown documents no longer have the line on the side. Image sizing works better. [#1059](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1059)\n- Locked elements will not show a hover preview [#1060](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1060)\n- CTRL/CMD + K correctly triggers add link [#1056](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1056)\n\n## New\n- Grid color adjusts to the view background color\n\nI'm sorry, but the sticky note editing issue on Android with the on-screen keyboard has still not been resolved. If you also experience this error, please help raise the priority with the core Excalidraw team by commenting on this issue: [#6330](https://github.com/excalidraw/excalidraw/issues/6330)\n","1.8.19":"\n## Fixed: Text wrapping issue in sticky notes\n\nI fixed an issue where text would wrap differently and words would disappear during text editing in sticky notes. You can check out the details on [GitHub #6318](https://github.com/excalidraw/excalidraw/issues/6331).\n\nI am aware of three additional issues related to container text editing that are still open. I apologize for any inconvenience caused by the recent change in how text size is calculated on Excalidraw.com, which has had a knock-on effect on Obsidian. I am actively working to address the following issues:\n\n- Pinch zooming while editing text in a text container [GitHub #6331](https://github.com/excalidraw/excalidraw/issues/6331)\n- Container text jumps on edit on Android with on-screen keyboard [GitHub #6330](https://github.com/excalidraw/excalidraw/issues/6330)\n- Shadow text when editing text containers without a keyboard on iOS [GitHub #6329](https://github.com/excalidraw/excalidraw/issues/6329)\n\nThank you for your patience while I work on resolving these issues.\n","1.8.18":`\n## Fixed\n- Text scaling issue introduced in 1.8.17\n- [#1043](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1043): Error handling when ${String.fromCharCode(96)}onCanvasColorChangeHook${String.fromCharCode(96)} is executed. This is used in the [Dynamic Styling Script](https://youtu.be/LtR04fNTKTM). \n`,"1.8.17":'\n## New from Excalidraw.com\n- Improved text wrapping in the ellipse and diamond shapes [6172](https://github.com/excalidraw/excalidraw/pull/6172)\n\n## New\n- Updated slideshow script\n\n
\n\n
\n\n## Fixed: \n- "Save to..." in the Stencil Library menu now works as expected [#1032](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1032)\n',"1.8.16":'\n**!!! Modifier keys have changed, please review the table below !!!**\n[Click this to see the new shortcuts overview image](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/excalidraw-modifiers.png)\n\n## Fixed \n- This version was extensively tested and developed on MacOS to remove usability issues.\n- New command palette action to create a new drawing in a new tab\n- Modifier keys to open links in the active window, splitting the current view to the right, in a new tab, or in a popout window now behave consistently both in Excalidraw and when clicking a drawing that is embedded in a markdown note.\n- Drag & Drop properly works from within Obsidian, from a web browser, and from the OS file explorer\n\n
\n\n
\n',"1.8.14":"\n## Fixed\n- text element link gets deleted when the drawing is reloaded\n","1.8.13":'\n## Fixed\n- When changing a text element in markdown mode, the change seem to have showed up when switching back to Excalidraw mode, but then lost these changes when loading the file the next time.\n- Scrolling through a page that has embedded drawings on Obsidian Mobile accidently opens the drawing in Excalidraw when touching the image. Now you need to press and hold to open the image in Excalidraw. [#1003](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1003)\n- The scrollbar is no longer visible when presenting using the SlideShow script\n- Stroke properties could not be changed when custom pen settings had "Stroke & fill applies to: All shapes". It works now.\n\n## QoL\n- Custom pens will remember the stroke changes until you press the pen preset button again.\n - This is a bit hard to explain, let me try... Essentially, when you use a custom pen, it will keep the changes you made to the pen (like changing the stroke width) until you press the pen-prereset button again. So, for example, if you\'re using a mind mapping custom pen and change its color, and then switch to a different tool like text, when you switch back to the freedraw tool using the Excalidraw tools panel, the pen will still have the same color you set earlier, but if you press the mind mapping pen-preset button, it will default back to your custom pen settings including your preset color.\n- Added new buttons to load current stroke color and background color in the pen settings dialog. Also added an edit box so you can configure any valid color string (including with transparency) for pen stroke and background colors. [#991](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/991)\n',"1.8.11":'\n
\n\n
\n\n# New\n- Support for referencing images from the internet in Excalidraw drawings, including YouTube thumbnail support. [#913](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/913)\n - Link to images on the internet without creating a copy in your Vault by holding down the CTRL key while dropping the link or image.\n - Automatic conversion of image URLs and YouTube links into image elements with original links added as a link on the element when pasting. Note, that if you only want to paste the plain text link (not the image), first double-click the canvas to start a new text element, then paste the link.\n- Two new options added to plugin settings:\n - Make mouse wheel zoom by default [#474](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/474)\n - Allow pinch zoom in pen mode [#828](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/828)\n- Update to the [Set Grid](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Set%20Grid.svg) script now saves the grid setting for the current file.\n',"1.8.10":'\n
\n\n
\n\n# QoL improvements\n- You can structure icons in the Obsidian tools panel by moving scripts to folders\n![image|300](https://user-images.githubusercontent.com/14358394/212389592-306130d0-209a-49df-99bb-c538f2155b23.png)\n- I added useful actions to the hamburger menu in both tray-mode and normal-mode. \n![image|150](https://user-images.githubusercontent.com/14358394/212534508-9107fd19-27ab-4415-8abc-bc97c73afc0b.png)\n- I added a new Export Image dialog. You can access the new export screen from the hamburger-menu\n![image|200](https://user-images.githubusercontent.com/14358394/212534654-7a479e23-8d5d-452e-9a18-a9896278aa27.png)\n- Links in help now point to Obsidian-Excalidraw relevant content.\n- I added a welcome screen\n![image|150](https://user-images.githubusercontent.com/14358394/212534568-3cd1e8a1-5b20-4a30-96e4-40d7dac57e33.png)\n- I updated the alternative dark mode / dynamic styling [script](https://gist.github.com/zsviczian/c7223c5b4af30d5c88a0cae05300305c)\n',"1.8.9":"\n# Minor QoL improvements\n- When you open a second drawing in the same Excalidraw view (i.e. by navigating a link) and make a change to this drawing, and then press UNDO, the entire drawing disappeared. Redo brought the image back, however, this behavior was frustrating. Not anymore...\n- On iPad\n - when you open the command palette, autozoom resized the drawing. If the Obsidian command palette or some other modal window is shown Excalidraw will not resize the view.\n - when you add a link to the drawing using the Command Palette, sometimes the link was added in a far corner of the drawing outside the current view area. This should be fixed now.","1.8.8":`\n
\n\n
\n\n# New\n- The plugin now includes support for [Perfect Freehand](https://perfect-freehand-example.vercel.app/) pen-options. I've also added a new [Alternative Pens](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Alternative%20Pens.md) script.\n- Embed scene in exported PNG and SVG images [#860](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/860). This means that the export will be a normal PNG or SVG image with the added functionality that if someone loads the image into excalidraw.com it will open as a normal excalidraw file.\n - I've added 2 new Command Palette actions (export PNG, export SVG with embedded scene).\n - If you SHIFT click ${String.fromCharCode(96)} Save as PNG (or SVG)${String.fromCharCode(96)} in the workspace-tab menu, Excalidraw will embed the scene in the export.\n- I updated the [Organic Line](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Organic%20Line.md) script. It has an improved thick-to-thin look and a new thin-to-thick-to-thin line type.\n\n# Fixed\n- Intelligent image width setting [#955](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/955). Before this change, when the embedded image was small, the image would be extended to meet the image width setting in plugin settings. From now on, if the image is smaller than max-width, it will only extend to max-width. You can still set 100% width using custom CSS. See more on that [here](https://github.com/zsviczian/obsidian-excalidraw-plugin#embedded-images).\n\n# New in ExcalidrawAutomate\n- I added the ${String.fromCharCode(96)} plaintext${String.fromCharCode(96)} parameter to ${String.fromCharCode(96)}ExcalidrawAutomate.create${String.fromCharCode(96)} . Using this, you can add some text below the frontmatter but above the ${String.fromCharCode(96)}# Text Elements${String.fromCharCode(96)} section. Use this for example to add metadata to your file. (e.g. I use this in my Daily Quote template to add a Dataview field for the ${String.fromCharCode(96)}Author::${String.fromCharCode(96)} and add the quote with a standard block reference, so I can easily reference it in other files. I also add the ${String.fromCharCode(96)}#quote${String.fromCharCode(96)} tag to the file using this.)\n- The script running in the ScriptEngine now also receives the ${String.fromCharCode(96)}TFile${String.fromCharCode(96)} object for the script itself. You can access this object during execution via the ${String.fromCharCode(96)}utils.scriptFile${String.fromCharCode(96)} variable. \n`,"1.8.7":'\n## New from Excalidraw.com\n- Support shrinking text containers to their original height when text is removed [#6025](https://github.com/excalidraw/excalidraw/pull/6025)\n
\n\n
\n\n## Fixed\n- removed the white background when editing arrow-label [#6033](https://github.com/excalidraw/excalidraw/pull/6033)\n- Minor style tweaks\n - for embedding Excalidraw into Obsidian Canvas. e.g. dragging no longer accidentally creates an image copy of the drawing, and\n - style tweaks on the Excalidraw canvas\n\n## New\n- If you set a different text color and sticky note border color, now if you change the border color, the text color will not be changed.\n',"1.8.6":`\n## New from Excalidraw.com:\n- Better default radius for rectangles [#5553](https://github.com/excalidraw/excalidraw/pull/5553). Existing drawings will look unchanged, this applies only to new rectangles.\n![image|200](https://user-images.githubusercontent.com/5153846/206264345-59fd7436-e87b-4bc9-ade8-9e6f6a6fd8c1.png)\n> [!attention]- ExcalidrawAutomate technical details\n> - ${String.fromCharCode(96)}strokeSharpness${String.fromCharCode(96)} is now deprecated\n> - use roundness instead\n> - ${String.fromCharCode(96)}roundness === null${String.fromCharCode(96)} is legacy ${String.fromCharCode(96)}strokeSharpness = "sharp"${String.fromCharCode(96)}\n> - ${String.fromCharCode(96)}roundness = { type: RoundnessType; value?: number }${String.fromCharCode(96)}\n> - type: 1, LEGACY, type:2 PROPORTIONAL_RADIUS, type:3 ADAPTIVE_RADIUS: 3\n> - value:\n> - Radius represented as % of element's largest side (width/height).\n> DEFAULT_PROPORTIONAL_RADIUS = 0.25;\n> - Fixed radius for the ADAPTIVE_RADIUS algorithm. In pixels.\n> DEFAULT_ADAPTIVE_RADIUS = 32;\n\n## New\n- For Obsidian 1.1.6 and above\n - Improved embedding into Obsidian Canvas\n - Improved embedding into Markdown documents\n- Added setting under ${String.fromCharCode(96)}Display/Default mode when opening Excalidraw${String.fromCharCode(96)} to always open the drawing in view mode on Mobile, but in normal mode on desktop. [#939](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/939)\n\n## Fixed\n- Zoom reset tooltip appears twice [#942](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/942)\n- Hid export library from library menu as it does not work due to Obsidian limitations. Use the command palette export library instead.\n- Arrow with label did not get exported and embedded correctly [#941](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/941)\n![image|200](https://user-images.githubusercontent.com/22638687/207845868-b352ddb1-7994-4f13-a0b2-f2e19bd72935.png)\n`,"1.8.4":'\n## New from Excalidraw.com\n- Labels on Arrows!!! [#5723](https://github.com/excalidraw/excalidraw/pull/5723)\n - To add a label press "Enter" or "Double click" on the arrow\n - Use "Cmd/Ctrl+double click" to enter the line editor\n\n
\n\n
\n\n## New\n- **Changed behavior**: In the Obsidian markdown editor clicking an Excalidraw image will not open the image (to avoid accidentally opening the image on a tablet). To open a drawing for editing in Excalidraw double click or long-tap on it. [#920](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/920)\n\n## Fixed \n- Text stroke color is not honored when pasting a HEX color string to an Excalidraw canvas open in an Obsidian popout window [#921](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/921)\n- The new [multi-line >> multi-element paste behavior](https://github.com/excalidraw/excalidraw/pull/5786) introduced in the previous release did not work as expected in Obsidian. Now it does.\n',"1.8.2":`\nIntroducing the [Excalidraw Slideshow Script](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Slideshow.md) - available in the script store\n
\n\n
\n\n## Fixed\n- Obsidian tools panel gets misplaced after switching Obsidian workspace tabs\n\n## New in ExcalidrawAutomate\n- changed ${String.fromCharCode(96)}viewToggleFullScreen(forceViewMode: boolean = false): void${String.fromCharCode(96)}: the function will toggle view mode on when going to full screen and view mode off when terminating full screen.\n- new functions\n${String.fromCharCode(96,96,96)}typescript\nsetViewModeEnabled(enabled: boolean):void;\nviewUpdateScene(\n scene: {\n elements?: ExcalidrawElement[];\n appState?: AppState;\n files?: BinaryFileData;\n commitToHistory?: boolean;\n },\n restore: boolean = false,\n ):void;\nviewZoomToElements(\n selectElements: boolean,\n elements: ExcalidrawElement[]\n ):void;\n${String.fromCharCode(96,96,96)}\n\n`,"1.8.1":`\n## New and fixes from Excalidraw.com\n- New text paste behavior. Pasting multiline text will generate separate text elements unless you hold down the shift button while pasting [#5786](https://github.com/excalidraw/excalidraw/pull/5786)\n- line editor fixes [#5927](https://github.com/excalidraw/excalidraw/pull/5927)\n\n## Fixed\n- The Command Palette "Insert link" action now inserts the new link at the top drawing layer, not at the bottom.\n- Updated, hopefully, better organized, Plugin Readme.\n\n## New\n- Second attempt at moving to React 18. This upgrade is required to maintain alignment with the core Excalidraw product and to continue to benefit from Excalidraw.com enhancements.\n- Added options to Plugin Settings\n - to disable autozoom when loading a drawing for the first time [#907](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/907)\n - to modify autosave interval. You can now set an autosave interval for desktop and for mobile [#888](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/888)\n\n## New in ExcalidrawAutomate\n- Published the obsidian_module on the ExcalidrawAutomate object. ${String.fromCharCode(96)}ExcalidrawAutomate.obsidian${String.fromCharCode(96)}. Publishing this object will give script developers increased flexibility and control over script automation.\n`,"1.8.0":'\n
\n\n
\n\n## New\n- Optical Character Recognition (OCR). Introducing the MVP (minimum viable product) release of the integration of [Taskbone](https://taskbone.com) OCR into Excalidraw. See the new scan button on the Obsidian tools panel.\n- New and improved full-screen mode\n - Activate using the Obsidian tools panel, the Obsidian Command Palette, or the Alt+F11 shortcut\n - The ESC key no longer closes full-screen\n - Full-screen mode works properly on iOS as well\n- Improved Icon visibility on the Obsidian tools panel\n- Added 3 additional buttons to the tools panel\n - Force save\n - Open link (useful on Mobile devices). In the case of LaTeX equations, the button opens the equation properties.\n - Open the link in a new pane. In the case of embedded markdown documents, the button opens the embed properties.\n\n## Fixed\n- The [deconstruct selected elements into a new drawing](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Deconstruct%20selected%20elements%20into%20new%20drawing.md) script now also correctly decomposes transcluded text elements.\n',"1.7.30":"\nFix:\n- Forcing the embedded image to always scale to 100% (a feature introduced in [1.7.26](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.7.26)) scaled the embedded excalidraw drawings incorrectly on devices with a pixel ratio of 2 or 3 (e.g. iPads). This is now fixed, however, this fix might retrospectively impact drawings that use this feature. Sorry for that.\n","1.7.29":"\n- This is a big update that accommodates the **UI redesign** on Excalidraw.com [#5780](https://github.com/excalidraw/excalidraw/pull/5780). The change on the surface may seem superficial, however, I had to tweak a number of things to make it work in Obsidian. I hope I found everything that broke and fixed it, if not, I'll try to fix it quickly...\n- This update also comes with changes under the hood that **fix issues with Excalidraw Automate** - paving the way for further scripts, plus some smaller bug fixes.\n- I **reworked text wrapping**. In some cases, text wrapping in SVG exports looked different compared to how the text looked in Excalidraw. This should now be fixed.\n- If you are using the **Experimental Dynamic Styling** of the Excalidraw Toolbar, then I recommend updating your styling script following base on [this](https://gist.github.com/zsviczian/c7223c5b4af30d5c88a0cae05300305c)\n","1.7.27":'## New\n- Import SVG drawing as an Excalidraw object. [#679](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/679)\n\n
\n\n
\n\n## Fixed\n- Large drawings freeze on the iPad when opening the file. I implemented a workaround whereby Excalidraw will avoid zoom-to-fit drawings with over 1000 elements. [#863](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/863)\n- Reintroduced copy/paste to the context menu\n',"1.7.26":'## Fixed\n- Transcluded block with a parent bullet does not embed sub-bullet [#853](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/853)\n- Transcluded text will now exclude ^block-references at end of lines\n- Phantom duplicates of the drawing appear when "zoom to fit" results in a zoom value below 10% and there are many objects on the canvas [#850](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/850)\n- CTRL+Wheel will increase/decrease zoom in steps of 5% matching the behavior of the "+" & "-" zoom buttons.\n- Latest updates from Excalidarw.com\n - Freedraw flip not scaling correctly [#5752](https://github.com/excalidraw/excalidraw/pull/5752)\n - Multiple elements resizing regressions [#5586](https://github.com/excalidraw/excalidraw/pull/5586)\n\n## New - power user features\n- Force the embedded image to always scale to 100%. Note: this is a very niche feature with a very particular behavior that I built primarily for myself (even more so than other features in Excalidraw Obsidian - also built primarily for myself 😉)... This will reset your embedded image to 100% size every time you open the Excalidraw drawing, or in case you have embedded an Excalidraw drawing on your canvas inserted using this function, every time you update the embedded drawing, it will be scaled back to 100% size. This means that even if you resize the image on the drawing, it will reset to 100% the next time you open the file or you modify the original embedded object. This feature is useful when you decompose a drawing into separate Excalidraw files, but when combined onto a single canvas you want the individual pieces to maintain their actual sizes. I use this feature to construct Book-on-a-Page summaries from atomic drawings.\n- I added an action to the command palette to temporarily disable/enable Excalidraw autosave. When autosave is disabled, Excalidraw will still save your drawing when changing to another Obsidian window, but it will not save every 10 seconds. On a mobile device (but also on a desktop) this can lead to data loss if you terminate Obsidian abruptly (i.e. swipe the application away, or close Obsidian without first closing the drawing). Use this feature if you find Excalidraw laggy.'};class ReleaseNotes extends obsidian_module.Modal{constructor(e,t,A){super(e),this.plugin=t,this.version=A}onOpen(){var e;this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText(`Welcome to Excalidraw ${null!==(e=this.version)&&void 0!==e?e:""}`),this.createForm()}async onClose(){this.contentEl.empty(),await this.plugin.loadSettings(),this.plugin.settings.previousRelease=PLUGIN_VERSION,await this.plugin.saveSettings()}async createForm(){let e=this.plugin.settings.previousRelease;e=this.version===e?"0.0.0":e;const t=this.version?Object.keys(RELEASE_NOTES).filter((t=>"Intro"===t||isVersionNewerThanOther(t,e))).map((e=>`${"Intro"===e?"":`# ${e}\n`}${RELEASE_NOTES[e]}`)).slice(0,10).join("\n\n---\n"):FIRST_RUN;await obsidian_module.MarkdownRenderer.renderMarkdown(t,this.contentEl,"",this.plugin),this.contentEl.createEl("p",{text:""},(e=>{e.style.textAlign="right",e.createEl("button",{text:"Close"}).onclick=()=>this.close()}))}}class ExportDialog extends obsidian_module.Modal{constructor(e,t,A){super(app),this.plugin=e,this.view=t,this.file=A,this.dirty=!1,this.hasSelectedElements=!1,this.ea=getEA(this.view),this.api=this.ea.getExcalidrawAPI(),this.padding=getExportPadding(this.plugin,this.file),this.scale=getPNGScale(this.plugin,this.file),this.theme=getExportTheme(this.plugin,this.file,this.api.getAppState().theme),this.boundingBox=this.ea.getBoundingBox(this.ea.getViewElements()),this.embedScene=!1,this.exportSelectedOnly=!1,this.saveToVault=!0,this.transparent=!getWithBackground(this.plugin,this.file),this.saveSettings=!1}onOpen(){this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText("Export Image"),this.hasSelectedElements=this.view.getViewSelectedElements().length>0,this.selectedOnlySetting.setVisibility(this.hasSelectedElements)}async onClose(){this.dirty=this.saveSettings}async createForm(){let e,t;this.contentEl.createEl("h1",{text:"Image settings"}),this.contentEl.createEl("p",{text:"Transparency only affects PNGs. Excalidraw files can only be exported outside the Vault. PNGs copied to clipboard may not include the scene."});const A=()=>{const e=Math.round(this.scale*this.boundingBox.width+2*this.padding),t=Math.round(this.scale*this.boundingBox.height+2*this.padding);return fragWithHTML(`The lager the scale, the larger the image.
Scale: ${this.scale}
Image size: ${e}x${t}`)},i=()=>fragWithHTML(`Current image padding is ${this.padding}`);t=new obsidian_module.Setting(this.contentEl).setName("Image padding").setDesc(i()).addSlider((n=>{n.setLimits(0,50,1).setValue(this.padding).onChange((n=>{this.padding=n,e.setDesc(A()),t.setDesc(i())}))})),e=new obsidian_module.Setting(this.contentEl).setName("PNG Scale").setDesc(A()).addSlider((t=>t.setLimits(.5,5,.5).setValue(this.scale).onChange((t=>{this.scale=t,e.setDesc(A())})))),new obsidian_module.Setting(this.contentEl).setName("Export theme").addDropdown((e=>e.addOption("light","Light").addOption("dark","Dark").setValue(this.theme).onChange((e=>{this.theme=e})))),new obsidian_module.Setting(this.contentEl).setName("Background color").addDropdown((e=>e.addOption("transparent","Transparent").addOption("with-color","Use scene background color").setValue(this.transparent?"transparent":"with-color").onChange((e=>{this.transparent="transparent"===e})))),new obsidian_module.Setting(this.contentEl).setName("Save or one-time settings?").addDropdown((e=>e.addOption("save","Save these settings as the preset for this image").addOption("one-time","These are one-time settings").setValue(this.saveSettings?"save":"one-time").onChange((e=>{this.saveSettings="save"===e})))),this.contentEl.createEl("h1",{text:"Export settings"}),new obsidian_module.Setting(this.contentEl).setName("Embed the Excalidraw scene in the exported file?").addDropdown((e=>e.addOption("embed","Embed scene").addOption("no-embed","Do not embed scene").setValue(this.embedScene?"embed":"no-embed").onChange((e=>{this.embedScene="embed"===e})))),DEVICE.isDesktop&&new obsidian_module.Setting(this.contentEl).setName("Where to save the image?").addDropdown((e=>e.addOption("vault","Save image to your Vault").addOption("outside","Export image outside your Vault").setValue(this.saveToVault?"vault":"outside").onChange((e=>{this.saveToVault="vault"===e})))),this.selectedOnlySetting=new obsidian_module.Setting(this.contentEl).setName("Export entire scene or just selected elements?").addDropdown((e=>e.addOption("all","Export entire scene").addOption("selected","Export selected elements").setValue(this.exportSelectedOnly?"selected":"all").onChange((e=>{this.exportSelectedOnly="selected"===e}))));const n=this.contentEl.createDiv({cls:"excalidraw-prompt-buttons-div"});n.createEl("button",{text:"PNG to File",cls:"excalidraw-prompt-button"}).onclick=()=>{this.saveToVault?this.view.savePNG(this.view.getScene(this.hasSelectedElements&&this.exportSelectedOnly)):this.view.exportPNG(this.embedScene,this.hasSelectedElements&&this.exportSelectedOnly),this.close()},n.createEl("button",{text:"SVG to File",cls:"excalidraw-prompt-button"}).onclick=()=>{this.saveToVault?this.view.saveSVG(this.view.getScene(this.hasSelectedElements&&this.exportSelectedOnly)):this.view.exportSVG(this.embedScene,this.hasSelectedElements&&this.exportSelectedOnly),this.close()},n.createEl("button",{text:"Excalidraw",cls:"excalidraw-prompt-button"}).onclick=()=>{this.view.exportExcalidraw(this.hasSelectedElements&&this.exportSelectedOnly),this.close()},DEVICE.isDesktop&&(n.createEl("button",{text:"PNG to Clipboard",cls:"excalidraw-prompt-button"}).onclick=()=>{this.view.exportPNGToClipboard(this.embedScene,this.hasSelectedElements&&this.exportSelectedOnly),this.close()})}}const TOOLS_PANEL_WIDTH=228;class ToolsPanel extends React__namespace.Component{constructor(e){super(e),this.pos1=0,this.pos2=0,this.pos3=0,this.pos4=0,this.penDownX=0,this.penDownY=0,this.previousWidth=0,this.previousHeight=0,this.onRightEdge=!1,this.onBottomEdge=!1;const t=e.view.plugin.getPackage(e.view.ownerWindow).react;this.containerRef=t.createRef(),this.state={visible:e.visible,top:50,left:200,theme:"dark",excalidrawViewMode:!1,minimized:!1,isDirty:!1,isFullscreen:!1,isPreviewMode:!0,scriptIconMap:{}}}updateScriptIconMap(e){this.setState((()=>({scriptIconMap:e})))}setPreviewMode(e){this.setState((()=>({isPreviewMode:e})))}setFullscreen(e){this.setState((()=>({isFullscreen:e})))}setDirty(e){this.setState((()=>({isDirty:e})))}setExcalidrawViewMode(e){this.setState((()=>({excalidrawViewMode:e})))}toggleVisibility(e){this.setTopCenter(e),this.setState((e=>({visible:!e.visible})))}setTheme(e){this.setState((t=>({theme:e})))}setTopCenter(e){this.setState((()=>({left:(this.containerRef.current.clientWidth-228-(e?0:232))/2+this.containerRef.current.parentElement.offsetLeft+(e?0:232),top:64+this.containerRef.current.parentElement.offsetTop})))}updatePosition(e=0,t=0){this.setState((()=>{const{offsetTop:A,offsetLeft:i,clientWidth:n,clientHeight:a}=this.containerRef.current.firstElementChild,r=A-e,s=i-t,{clientWidth:o,clientHeight:l,offsetTop:c,offsetLeft:d}=this.containerRef.current.parentElement;return this.previousHeight=l,this.previousWidth=o,this.onBottomEdge=r>=l-a+c,this.onRightEdge=s>=o-n+d,{top:r{e.preventDefault(),Math.abs(this.penDownX-this.pos3)>5||Math.abs(this.penDownY-this.pos4)>5||this.setState((e=>({minimized:!e.minimized})))},onPointerDown:e=>{const t=e=>{e.preventDefault(),this.pos1=this.pos3-e.clientX,this.pos2=this.pos4-e.clientY,this.pos3=e.clientX,this.pos4=e.clientY,this.updatePosition(this.pos2,this.pos1)},A=()=>{var e,i;null===(e=this.props.view.ownerDocument)||void 0===e||e.removeEventListener("pointerup",A),null===(i=this.props.view.ownerDocument)||void 0===i||i.removeEventListener("pointermove",t)};e.preventDefault(),this.penDownX=this.pos3=e.clientX,this.penDownY=this.pos4=e.clientY,this.props.view.ownerDocument.addEventListener("pointerup",A),this.props.view.ownerDocument.addEventListener("pointermove",t)}},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 228 26"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M40,7 h148 M40,13 h148 M40,19 h148"}))),React__namespace.createElement("div",{className:"Island App-menu__left scrollbar",style:{maxHeight:"350px",width:"initial","--padding":2,display:this.state.minimized?"none":"block"}},React__namespace.createElement("div",{className:"panelColumn"},React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Utility actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"scriptEngine",title:t$d("INSTALL_SCRIPT_BUTTON"),action:()=>{new ScriptInstallPrompt(this.props.view.plugin).open()},icon:ICONS.scriptEngine,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"release-notes",title:t$d("READ_RELEASE_NOTES"),action:()=>{new ReleaseNotes(this.props.view.app,this.props.view.plugin,PLUGIN_VERSION).open()},icon:ICONS.releaseNotes,view:this.props.view}),null===this.state.isPreviewMode?React__namespace.createElement(ActionButton,{key:"convert",title:t$d("CONVERT_FILE"),action:()=>{this.props.view.convertExcalidrawToMD()},icon:ICONS.convertFile,view:this.props.view}):React__namespace.createElement(ActionButton,{key:"viewmode",title:this.state.isPreviewMode?t$d("PARSED"):t$d("RAW"),action:()=>{this.state.isPreviewMode?this.props.view.changeTextMode(TextMode.raw):this.props.view.changeTextMode(TextMode.parsed)},icon:this.state.isPreviewMode?ICONS.rawMode:ICONS.parsedMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"tray-mode",title:t$d("TRAY_MODE"),action:()=>{this.props.view.toggleTrayMode()},icon:ICONS.trayMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"fullscreen",title:this.state.isFullscreen?t$d("EXIT_FULLSCREEN"):t$d("GOTO_FULLSCREEN"),action:()=>{this.state.isFullscreen?this.props.view.exitFullscreen():this.props.view.gotoFullscreen()},icon:this.state.isFullscreen?ICONS.exitFullScreen:ICONS.gotoFullScreen,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"search",title:t$d("SEARCH"),action:()=>{search(this.props.view)},icon:ICONS.search,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"ocr",title:t$d("RUN_OCR"),action:e=>{this.props.view.plugin.settings.taskboneEnabled?this.props.view.plugin.taskbone.getTextForView(this.props.view,isCTRL(e)):new obsidian_module.Notice("Taskbone OCR is not enabled. Please go to plugins settings to enable it.",4e3)},icon:ICONS.ocr,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"openLink",title:t$d("OPEN_LINK_CLICK"),action:e=>{const t=new MouseEvent("click",{ctrlKey:e.ctrlKey||!(DEVICE.isIOS||DEVICE.isMacOS),metaKey:e.metaKey||DEVICE.isIOS||DEVICE.isMacOS,shiftKey:e.shiftKey,altKey:e.altKey});this.props.view.handleLinkClick(t)},icon:ICONS.openLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"openLinkProperties",title:t$d("OPEN_LINK_PROPS"),action:()=>{const e=new MouseEvent("click",{ctrlKey:!0,metaKey:!0,shiftKey:!1,altKey:!1});this.props.view.handleLinkClick(e)},icon:ICONS.openLinkProperties,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"save",title:t$d("FORCE_SAVE"),action:()=>{this.props.view.forceSave()},icon:saveIcon(this.state.isDirty),view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Export actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"lib",title:t$d("DOWNLOAD_LIBRARY"),action:()=>{this.props.view.plugin.exportLibrary()},icon:ICONS.exportLibrary,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"exportIMG",title:t$d("EXPORT_IMAGE"),action:()=>{const e=this.props.view;e.exportDialog||(e.exportDialog=new ExportDialog(e.plugin,e,e.file),e.exportDialog.createForm()),e.exportDialog.open()},icon:ICONS.ExportImage,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"md",title:t$d("OPEN_AS_MD"),action:()=>{this.props.view.openAsMarkdown()},icon:ICONS.switchToMarkdown,view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Insert actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"image",title:t$d("INSERT_IMAGE"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertImageDialog.start(this.props.view)},icon:ICONS.insertImage,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"pdf",title:t$d("INSERT_PDF"),action:()=>{this.props.centerPointer(),new InsertPDFModal(this.props.view.plugin,this.props.view).open()},icon:ICONS.insertPDF,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"insertMD",title:t$d("INSERT_MD"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertMDDialog.start(this.props.view)},icon:ICONS.insertMD,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"latex",title:t$d("INSERT_LATEX"),action:e=>{isALT(e)?this.props.view.openExternalLink("https://youtu.be/r08wk-58DPk"):(this.props.centerPointer(),insertLaTeXToView(this.props.view))},icon:ICONS.insertLaTeX,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link",title:t$d("INSERT_LINK"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertLinkDialog.start(this.props.view.file.path,this.props.view.addText)},icon:ICONS.insertLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link-to-element",title:t$d("INSERT_LINK_TO_ELEMENT"),action:e=>{isALT(e)?this.props.view.openExternalLink("https://youtu.be/yZQoJg2RCKI"):this.props.view.copyLinkToSelectedElementToClipboard(isCTRL(e)?"group=":isSHIFT(e)?"area=":"")},icon:ICONS.copyElementLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"import-svg",title:t$d("IMPORT_SVG"),action:e=>{this.props.view.plugin.importSVGDialog.start(this.props.view)},icon:ICONS.importSVG,view:this.props.view}))),this.renderScriptButtons(!1),this.renderScriptButtons(!0)))))}renderScriptButtons(e){if(0===Object.keys(this.state.scriptIconMap).length)return"";const t=`${this.props.view.plugin.settings.scriptFolderPath}/Downloaded/`,A=A=>e?A.startsWith(t):!A.startsWith(t);if(0===Object.keys(this.state.scriptIconMap).filter((e=>A(e))).length)return"";const i=new Set;Object.keys(this.state.scriptIconMap).filter((e=>A(e))).forEach((e=>i.add(this.state.scriptIconMap[e].group)));const n=Array.from(i).sort(((e,t)=>e>t?1:-1));return n.push(n.shift()),React__namespace.createElement(React__namespace.Fragment,null,n.map(((t,A)=>React__namespace.createElement("fieldset",{key:`${t}-${A}`},React__namespace.createElement("legend",null,e?t:""===t?"User":"User/"+t),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},Object.entries(this.state.scriptIconMap).filter((([e,A])=>A.group===t)).sort().map((([e,t])=>React__namespace.createElement(ActionButton,{key:e,title:t.name,action:async()=>{const t=this.props.view,A=t.plugin,i=app.vault.getAbstractFileByPath(e);i&&i instanceof obsidian_module.TFile&&A.scriptEngine.executeScript(t,await app.vault.read(i),A.scriptEngine.getScriptName(i),i)},longpress:async()=>{const A=this.props.view,i=A.excalidrawAPI,n=A.plugin;await n.loadSettings();const a=n.settings.pinnedScripts.indexOf(e);a>-1?(n.settings.pinnedScripts.splice(a,1),null==i||i.setToast({message:`Pin removed: ${t.name}`,duration:3e3,closable:!0})):(n.settings.pinnedScripts.push(e),null==i||i.setToast({message:`Pinned: ${t.name}`,duration:3e3,closable:!0})),await n.saveSettings(),app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updatePinnedScripts()}))},icon:t.svgString?stringToSVG(t.svgString):ICONS.cog,view:this.props.view}))))))))}}const getElementsAtPointer=(e,t,A)=>t.filter((t=>{if(A&&t.type!==A)return!1;if(t.locked)return!1;const[i,n,a,r]=rotatedDimensions(t);return i<=e.x&&i+a>=e.x&&n<=e.y&&n+r>=e.y})),getTextElementAtPointer=(e,t)=>{const A=t.excalidrawAPI;if(!A)return{id:null,text:null};const i=getElementsAtPointer(e,A.getSceneElements(),"text");if(0==i.length)return{id:null,text:null};if(1===i.length)return{id:i[0].id,text:i[0].text};const n=i.filter((e=>{const A=t.textMode===TextMode.parsed?t.excalidrawData.getRawText(e.id):e.text;return!!A&&(!!A.match(REG_LINKINDEX_HYPERLINK)||!!REGEX_LINK.getRes(A).next().value)}));return 0==n.length?{id:i[0].id,text:i[0].text}:{id:n[0].id,text:n[0].text}},getImageElementAtPointer=(e,t)=>{const A=t.excalidrawAPI;if(!A)return;const i=getElementsAtPointer(e,A.getSceneElements(),"image");return 0===i.length?{id:null,fileId:null}:i.length>=1?{id:i[0].id,fileId:i[0].fileId}:void 0},getElementWithLinkAtPointer=(e,t)=>{const A=t.excalidrawAPI;if(!A)return;const i=getElementsAtPointer(e,A.getSceneElements()).filter((e=>e.link));return 0===i.length?{id:null,text:null}:i.length>=1?{id:i[0].id,text:i[0].link}:void 0},setDynamicStyle=(e,t,A,i)=>{var n,a,r,s,o,l,c,d,h,u,g,p,m,w;if("none"===i){null===(n=t.excalidrawContainer)||void 0===n||n.removeAttribute("style"),setTimeout((()=>t.updateScene({appState:{dynamicStyle:""}})));const e=null===(s=null===(r=null===(a=t.toolsPanelRef)||void 0===a?void 0:a.current)||void 0===r?void 0:r.containerRef)||void 0===s?void 0:s.current;if(e){let t=e.getAttribute("style");t=t.replace(/\-\-color\-primary.*/,""),e.setAttribute("style",t)}return}t.ownerDocument;const f="light"===(null===(c=null===(l=null===(o=null==t?void 0:t.excalidrawAPI)||void 0===o?void 0:o.getAppState)||void 0===l?void 0:l.call(o))||void 0===c?void 0:c.theme)||"light"===(null===(u=null===(h=null===(d=null==t?void 0:t.excalidrawData)||void 0===d?void 0:d.scene)||void 0===h?void 0:h.appState)||void 0===u?void 0:u.theme),E=()=>f?e.getCM(A):(t=>{const A=e.getCM(t),i=A.lightness;return A.lightnessTo(Math.abs(i-100))})(A),B=E().lightness,b=E().isDark(),v=app.getAccentColor(),C=()=>e.getCM(v),y=()=>e.getCM("#000000").lightnessTo(B),F="gray"===i,x=F?b?y().lighterBy(15):y().darkerBy(15):b?E().lighterBy(15).mix({color:y(),ratio:.6}):E().darkerBy(15).mix({color:y(),ratio:.6}),S=F?b?y().lighterBy(5):y().darkerBy(5):b?E().lighterBy(5).mix({color:y(),ratio:.6}):E().darkerBy(5).mix({color:y(),ratio:.6}),T=E().mix({color:b?"#f0f0f0":"#101010",ratio:.8}),I=e=>e.stringHEX({alpha:!1}),k=`--color-primary: ${I(C())};--color-primary-darker: ${I(C().darkerBy(10))};--color-primary-darkest: ${I(C().darkerBy(10))};--button-gray-1: ${I(x)};--button-gray-2: ${I(S)};--input-border-color: ${I(x)};--input-bg-color: ${I(S)};--input-label-color: ${I(T)};--island-bg-color: ${S.alphaTo(.93).stringHEX()};--popup-secondary-bg-color: ${S.alphaTo(.93).stringHEX()};--icon-fill-color: ${I(T)};--text-primary-color: ${I(T)};--overlay-bg-color: ${S.alphaTo(.6).stringHEX()};--popup-bg-color: ${I(x)};--color-gray-100: ${I(T)};--color-gray-40: ${I(T)};--color-gray-30: ${I(x)};--color-gray-80: ${I(x)};--sidebar-border-color: ${I(x)};--color-primary-light: ${I(C().lighterBy(10))};--button-hover-bg: ${I(x)};--sidebar-bg-color: ${S.alphaTo(.93).stringHEX()};--sidebar-shadow: ${I(x)};--popup-text-color: ${I(T)};--code-normal: ${I(T)};--code-background: ${I(S)};--h1-color: ${I(T)};--h2-color: ${I(T)};--h3-color: ${I(T)};--h4-color: ${I(T)};color: ${I(T)};--select-highlight-color: ${I(x)};`;null===(g=t.excalidrawContainer)||void 0===g||g.setAttribute("style",k),setTimeout((()=>t.updateScene({appState:{dynamicStyle:k}})));const U=null===(w=null===(m=null===(p=t.toolsPanelRef)||void 0===p?void 0:p.current)||void 0===m?void 0:m.containerRef)||void 0===w?void 0:w.current;if(U){let e=U.getAttribute("style");e=e.replace(/\-\-color\-primary.*/,""),U.setAttribute("style",e+k)}},useDefaultExcalidrawFrame=e=>!e.link.startsWith("[")&&!e.link.match(TWITTER_REG),patchMobileView=e=>{if(DEVICE.isDesktop)return;console.log("patching mobile view");const t=getParentOfClass(e.containerEl,"mod-top");t&&(t.hasClass("mod-visible")||t.addClass("mod-visible"))},processLinkText=(e,t)=>{let A=null;if(e.search("#")>-1){const i=getLinkParts(e,t.file);A=`#${i.isBlockRef?"^":""}${i.ref}`,e=i.path}return e.match(REG_LINKINDEX_INVALIDCHARS)?{subpath:A,file:null}:{subpath:A,file:app.metadataCache.getFirstLinkpathDest(e,t.file.path)}},renderWebView=(e,t,A,i,n)=>{const a=e.match(TWITTER_REG);if(a){const t=e.match(/.*\/(\d*)\?/)[1];t&&(e=`https://platform.twitter.com/embed/Tweet.html?frame=false&hideCard=false&hideThread=false&id=${t}&lang=en&theme=${"dark"===A.excalidrawData.iFrameTheme?"dark":"light"===A.excalidrawData.iFrameTheme?"light":"auto"===A.excalidrawData.iFrameTheme?"dark"===n.theme?"dark":"light":isObsidianThemeDark()?"dark":"light"}&width=550px`)}return DEVICE.isDesktop&&!a?React__namespace.createElement("webview",{ref:e=>A.updateIFrameRef(i,e),className:"excalidraw__iframe",title:"Excalidraw Embedded Content",allowFullScreen:!0,src:e,style:{overflow:"hidden",borderRadius:`${t}px`}}):React__namespace.createElement("iframe",{ref:e=>A.updateIFrameRef(i,e),className:"excalidraw__iframe",title:"Excalidraw Embedded Content",allowFullScreen:!0,allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",src:e,style:{overflow:"hidden",borderRadius:`${t}px`}})};function RenderObsidianView({element:e,linkText:t,radius:A,view:i,containerRef:n,appState:a,theme:r}){var s,o,l;const{subpath:c,file:d}=processLinkText(t,i);if(!d)return null;const h=i.plugin.getPackage(i.ownerWindow).react,u=h.useRef(null),g=h.useRef(!1),p=h.useRef(!1),m=h.useCallback((e=>{p.current&&e.stopPropagation()}),[p.current]);h.useEffect((()=>{if(null==n?void 0:n.current)return KEYBOARD_EVENT_TYPES.forEach((e=>n.current.addEventListener(e,m))),n.current.addEventListener("click",w),()=>{(null==n?void 0:n.current)&&(KEYBOARD_EVENT_TYPES.forEach((e=>n.current.removeEventListener(e,m))),EXTENDED_EVENT_TYPES.forEach((e=>n.current.removeEventListener(e,m))),n.current.removeEventListener("click",w))}}),[]),h.useEffect((()=>{if(EXTENDED_EVENT_TYPES.forEach((e=>n.current.removeEventListener(e,m))),null==n?void 0:n.current)return p.current&&EXTENDED_EVENT_TYPES.forEach((e=>n.current.addEventListener(e,m))),()=>{(null==n?void 0:n.current)&&EXTENDED_EVENT_TYPES.forEach((e=>n.current.removeEventListener(e,m)))}}),[p.current,n.current]),h.useEffect((()=>{if(!(null==n?void 0:n.current))return;for(;n.current.hasChildNodes();)n.current.removeChild(n.current.lastChild);const t=i.ownerDocument,a=new obsidian_module.WorkspaceSplit(app.workspace,"vertical");return a.getRoot=()=>app.workspace[t===document?"rootSplit":"floatingSplit"],a.getContainer=()=>getContainerForDocument(t),a.containerEl.style.width="100%",a.containerEl.style.height="100%",a.containerEl.style.borderRadius=`${A}px`,u.current={leaf:app.workspace.createLeafInParent(a,0),node:null},c&&i.canvasNodeFactory.isInitialized()?(app.workspace.activeLeaf===i.leaf&&DEVICE.isDesktop&&(i.ownerWindow.electronWindow.isAlwaysOnTop()||(i.ownerWindow.electronWindow.setAlwaysOnTop(!0),setTimeout((()=>{i.ownerWindow.electronWindow.setAlwaysOnTop(!1)}),150))),u.current.node=i.canvasNodeFactory.createFileNote(d,c,n.current,e.id)):(async()=>{var t,r;await u.current.leaf.openFile(d,c?{eState:{subpath:c},state:{mode:"preview"}}:void 0);const s=null===(t=u.current.leaf.view)||void 0===t?void 0:t.getViewType();if("canvas"===s&&(null===(r=u.current.leaf.view.canvas)||void 0===r||r.setReadonly(!0)),"markdown"===s&&i.canvasNodeFactory.isInitialized())await u.current.leaf.setViewState({state:{file:null}}),u.current.node=i.canvasNodeFactory.createFileNote(d,c,n.current,e.id);else{const e=a.containerEl.querySelector("div.workspace-leaf");e&&(e.style.borderRadius=`${A}px`),n.current.appendChild(a.containerEl)}patchMobileView(i)})(),()=>{}}),[t,c,n,A]),h.useEffect((()=>{var e;g.current&&((null===(e=u.current)||void 0===e?void 0:e.node)&&i.canvasNodeFactory.stopEditing(u.current.node),g.current=!1)}),[g.current,u]);const w=h.useCallback((t=>{var A,n,a;if(p.current&&t.stopPropagation(),p.current&&!g.current&&(null===(A=u.current)||void 0===A?void 0:A.leaf))if("markdown"===(null===(n=u.current.leaf.view)||void 0===n?void 0:n.getViewType())){const t=i.excalidrawAPI.getSceneElements().filter((t=>t.id===e.id))[0];if(!t||0!==t.angle)return void new obsidian_module.Notice("Sorry, cannot edit rotated markdown documents");const A=u.current.leaf.view.modes;if(!A)return;u.current.leaf.view.setMode(A.source),g.current=!0,patchMobileView(i)}else(null===(a=u.current)||void 0===a?void 0:a.node)&&i.canvasNodeFactory.startEditing(u.current.node,r)}),[null===(s=u.current)||void 0===s?void 0:s.leaf,e.id]);return h.useEffect((()=>{var t,A,r,s,o;if(!(null==n?void 0:n.current)||!(null==u?void 0:u.current))return;const l=p.current;if(p.current=(null===(t=a.activeIFrame)||void 0===t?void 0:t.element.id)===e.id&&"active"===(null===(A=a.activeIFrame)||void 0===A?void 0:A.state),l!==p.current)if("markdown"===(null===(s=null===(r=u.current.leaf)||void 0===r?void 0:r.view)||void 0===s?void 0:s.getViewType())){const e=u.current.leaf.view.modes;if(!e)return;if(!p.current)return u.current.leaf.view.setMode(e.preview),void(g.current=!1)}else(null===(o=u.current)||void 0===o?void 0:o.node)&&i.canvasNodeFactory.stopEditing(u.current.node)}),[n,u,p,null===(o=a.activeIFrame)||void 0===o?void 0:o.element,null===(l=a.activeIFrame)||void 0===l?void 0:l.state,e,i,t,c,d,r,g,i.canvasNodeFactory]),null}const CustomIFrame=({element:e,radius:t,view:A,appState:i,linkText:n})=>{const a=A.plugin.getPackage(A.ownerWindow).react.useRef(null),r="dark"===A.excalidrawData.iFrameTheme?"theme-dark":"light"===A.excalidrawData.iFrameTheme?"theme-light":"auto"===A.excalidrawData.iFrameTheme?"dark"===i.theme?"theme-dark":"theme-light":isObsidianThemeDark()?"theme-dark":"theme-light";return React__namespace.createElement("div",{ref:a,style:{width:"100%",height:"100%",borderRadius:`${t}px`,color:"var(--text-normal)"},className:r},React__namespace.createElement(RenderObsidianView,{element:e,linkText:n,radius:t,view:A,containerRef:a,appState:i,theme:r}))},DB_NAME="Excalidraw "+app.appId,CACHE_STORE="imageCache",BACKUP_STORE="drawingBAK",getKey=e=>`${e.filepath}#${e.blockref}#${e.sectionref}#${e.isDark?1:0}#${e.isSVG?1:0}#${e.scale}`;class ImageCache{constructor(e,t,A){this.initializationNotice=!1,this.dbName=e,this.cacheStoreName=t,this.backupStoreName=A,this.db=null,this.isInitializing=!1,this.plugin=null,app.workspace.onLayoutReady((()=>this.initializeDB()))}async initializeDB(){if(!this.isInitializing&&null===this.db){this.isInitializing=!0;try{const e=indexedDB.open(this.dbName);if(e.onupgradeneeded=e=>{const t=e.target.result;t.objectStoreNames.contains(this.cacheStoreName)||t.createObjectStore(this.cacheStoreName),t.objectStoreNames.contains(this.backupStoreName)||t.createObjectStore(this.backupStoreName)},this.db=await new Promise(((t,A)=>{e.onsuccess=e=>{const A=e.target.result;t(A)},e.onerror=()=>{A(new Error(`Failed to open or create IndexedDB database: ${this.dbName}`))}})),!this.db.objectStoreNames.contains(this.cacheStoreName)||!this.db.objectStoreNames.contains(this.backupStoreName)){const e=this.db.version+1;this.db.close();const t=indexedDB.open(this.dbName,e);t.onupgradeneeded=e=>{const t=e.target.result;t.objectStoreNames.contains(this.cacheStoreName)||t.createObjectStore(this.cacheStoreName),t.objectStoreNames.contains(this.backupStoreName)||t.createObjectStore(this.backupStoreName)},await new Promise(((e,A)=>{t.onsuccess=()=>{t.result.close(),e()},t.onerror=()=>{A(new Error(`Failed to upgrade IndexedDB database: ${this.dbName}`))}})),this.db=await new Promise(((e,t)=>{const A=indexedDB.open(this.dbName);A.onsuccess=()=>{const t=A.result;e(t)},A.onerror=()=>{t(new Error(`Failed to open IndexedDB database: ${this.dbName}`))}}))}await this.purgeInvalidCacheFiles(),await this.purgeInvalidBackupFiles()}finally{this.isInitializing=!1,this.initializationNotice&&(new obsidian_module.Notice("Excalidraw Image Cache is Initialized - You may now retry opening your damaged drawing."),this.initializationNotice=!1),console.log("Initialized Excalidraw Image Cache")}}}async purgeInvalidCacheFiles(){const e=this.db.transaction(this.cacheStoreName,"readwrite").objectStore(this.cacheStoreName),t=app.vault.getFiles(),A=[],i=e.openCursor();return new Promise(((n,a)=>{i.onsuccess=i=>{const r=i.target.result;if(r){const i=r.key,n=i.split("#")[0],a=t.some((e=>e.path===n)),s=a?t.find((e=>e.path===n)):null;(!s||s&&s.stat.mtime>r.value.mtime)&&A.push(new Promise(((t,A)=>{const n=e.delete(r.primaryKey);n.onsuccess=()=>t(),n.onerror=()=>A(new Error(`Failed to delete file with key: ${i}`))}))),r.continue()}else Promise.all(A).then((()=>n())).catch((e=>a(e)))},i.onerror=()=>{a(new Error("Failed to purge invalid files from IndexedDB."))}}))}async purgeInvalidBackupFiles(){const e=this.db.transaction(this.backupStoreName,"readwrite").objectStore(this.backupStoreName),t=app.vault.getFiles(),A=[],i=e.openCursor();return new Promise(((n,a)=>{i.onsuccess=i=>{const r=i.target.result;if(r){const i=r.key,n=t.some((e=>e.path===i));n||A.push(new Promise(((t,A)=>{const n=e.delete(r.primaryKey);n.onsuccess=()=>t(),n.onerror=()=>A(new Error(`Failed to delete backup file with key: ${i}`))}))),r.continue()}else Promise.all(A).then((()=>n())).catch((e=>a(e)))},i.onerror=()=>{a(new Error("Failed to purge invalid backup files from IndexedDB."))}}))}async getObjectStore(e,t){return this.db.transaction(t,e).objectStore(t)}async getCacheData(e){const t=(await this.getObjectStore("readonly",this.cacheStoreName)).get(e);return new Promise(((e,A)=>{t.onsuccess=()=>{const A=t.result;e(A||null)},t.onerror=()=>{A(new Error("Failed to retrieve data from IndexedDB."))}}))}async getBackupData(e){const t=(await this.getObjectStore("readonly",this.backupStoreName)).get(e);return new Promise(((e,A)=>{t.onsuccess=()=>{const A=t.result;e(A||null)},t.onerror=()=>{A(new Error("Failed to retrieve backup data from IndexedDB."))}}))}isReady(){return!!this.db&&!this.isInitializing&&!!this.plugin&&this.plugin.settings.allowImageCache}async getImageFromCache(e){if(!this.isReady())return null;const t=getKey(e);return this.getCacheData(t).then((t=>{const A=app.vault.getAbstractFileByPath(e.filepath.split("#")[0]);if(A&&A instanceof obsidian_module.TFile)return t&&t.mtime===A.stat.mtime?t.imageBase64:void 0}))}async getBAKFromCache(e){return this.isReady()?this.getBackupData(e):null}addImageToCache(e,t){if(!this.isReady())return;const A=app.vault.getAbstractFileByPath(e.filepath.split("#")[0]);if(!(A&&A instanceof obsidian_module.TFile))return;const i={mtime:A.stat.mtime,imageBase64:t},n=this.db.transaction(this.cacheStoreName,"readwrite").objectStore(this.cacheStoreName),a=getKey(e);n.put(i,a)}async addBAKToCache(e,t){this.isReady()&&this.db.transaction(this.backupStoreName,"readwrite").objectStore(this.backupStoreName).put(t,e)}async clearImageCache(){if(this.isReady())return this.clear(this.cacheStoreName,"Image cache was cleared")}async clearBackupCache(){if(this.isReady())return this.clear(this.backupStoreName,"All backups were cleared")}async clear(e,t){if(!this.isReady())return;const A=this.db.transaction([e],"readwrite").objectStore(e);return new Promise(((i,n)=>{const a=A.clear();a.onsuccess=()=>{new obsidian_module.Notice(t),i()},a.onerror=()=>n(new Error(`Failed to clear ${e}.`))}))}}const imageCache=new ImageCache(DB_NAME,CACHE_STORE,"drawingBAK");class CanvasNodeFactory{constructor(e){this.view=e,this.nodes=new Map,this.initialized=!1,this.isInitialized=()=>this.initialized}async initialize(){const e=app.internalPlugins.plugins.canvas;e._loaded||await e.load();const t=this.view.ownerDocument,A=new obsidian_module.WorkspaceSplit(app.workspace,"vertical");A.getRoot=()=>app.workspace[t===document?"rootSplit":"floatingSplit"],A.getContainer=()=>getContainerForDocument(t),this.leaf=app.workspace.createLeafInParent(A,0),this.canvas=e.views.canvas(this.leaf).canvas,this.initialized=!0}createFileNote(e,t,A,i){if(!this.initialized)return;t=null!=t?t:"",this.nodes.has(i)&&(this.canvas.removeNode(this.nodes.get(i)),this.nodes.delete(i));const n=this.canvas.createFileNode({pos:{x:0,y:0},file:e,subpath:t,save:!1});return n.setFilePath(e.path,t),n.render(),A.style.background="var(--background-primary)",A.appendChild(n.contentEl),this.nodes.set(i,n),n}startEditing(e,t){if(!this.initialized||!e)return;e.startEditing();const A=isObsidianThemeDark()?"theme-dark":"theme-light";A!==t&&(async()=>{var i,n,a,r,s,o;let l=0;for(;!(null===(a=null===(n=null===(i=e.child.editor)||void 0===i?void 0:i.containerEl)||void 0===n?void 0:n.parentElement)||void 0===a?void 0:a.parentElement)&&l++<100;)await sleep(25);(null===(o=null===(s=null===(r=e.child.editor)||void 0===r?void 0:r.containerEl)||void 0===s?void 0:s.parentElement)||void 0===o?void 0:o.parentElement)&&(e.child.editor.containerEl.parentElement.parentElement.classList.remove(A),e.child.editor.containerEl.parentElement.parentElement.classList.add(t),new MutationObserver((e=>{for(const i of e)if("attributes"===i.type&&"class"===i.attributeName){const e=i.target;e.classList.contains(A)&&(e.classList.remove(A),e.classList.add(t))}})).observe(e.child.editor.containerEl.parentElement.parentElement,{attributes:!0}))})()}stopEditing(e){this.initialized&&e&&e.child.editMode&&e.child.showPreview()}purgeNodes(){this.initialized&&(this.nodes.forEach((e=>{this.canvas.removeNode(e)})),this.nodes.clear())}}class IFrameMenu{constructor(e,t){this.view=e,this.containerRef=t,this.updateElement=(e,t,A)=>{if(!t)return;const i=this.view,n=`[[${app.metadataCache.fileToLinktext(A,i.file.path,"md"===A.extension)}${e}]]`;mutateElement(t,{link:n}),i.excalidrawData.elementLinks.set(t.id,n),i.setDirty(99),i.updateScene({appState:{activeIFrame:null}})},this.menuFadeTimeout=0,this.menuElementId=null}handleMouseEnter(){var e;clearTimeout(this.menuFadeTimeout),null===(e=this.containerRef.current)||void 0===e||e.style.setProperty("opacity","1")}handleMouseLeave(){const e=this;this.menuFadeTimeout=window.setTimeout((()=>{var t;null===(t=e.containerRef.current)||void 0===t||t.style.setProperty("opacity","0.2")}),5e3)}renderButtons(e){var t,A;const i=this.view,n=null==i?void 0:i.excalidrawAPI;if(!n)return null;if(!e.activeIFrame||"active"!==e.activeIFrame.state||e.viewModeEnabled)return this.menuElementId=null,this.menuFadeTimeout&&(clearTimeout(this.menuFadeTimeout),this.menuFadeTimeout=0),null;const a=null===(t=e.activeIFrame)||void 0===t?void 0:t.element;this.menuElementId!==a.id&&(this.menuElementId=a.id,this.handleMouseLeave());let r=a.link;if(!r)return null;const s=useDefaultExcalidrawFrame(a);let o=null===(A=a.link)||void 0===A?void 0:A.match(REG_LINKINDEX_HYPERLINK);if(!s&&!o){const t=REGEX_LINK.getRes(a.link).next();if(!t||!t.value&&t.done)return null;if(r=REGEX_LINK.getLink(t),o=r.match(REG_LINKINDEX_HYPERLINK),!o){const{subpath:t,file:A}=processLinkText(r,i);if(!A||"md"!==A.extension)return null;const{x:s,y:o}=sceneCoordsToViewportCoords({sceneX:a.x,sceneY:a.y},e),l=o-2.5*ROOTELEMENTSIZE-e.offsetTop+"px",c=s-e.offsetLeft+"px";return React__namespace.createElement("div",{ref:this.containerRef,className:"iframe-menu",style:{top:l,left:c,opacity:1},onMouseEnter:()=>this.handleMouseEnter(),onPointerDown:()=>this.handleMouseEnter(),onMouseLeave:()=>this.handleMouseLeave()},React__namespace.createElement("div",{className:"Island",style:{position:"relative"}},React__namespace.createElement(ActionButton,{key:"MarkdownSection",title:t$d("NARROW_TO_HEADING"),action:async()=>{const e=(await app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},A)).blocks.filter((e=>{var t;return e.display&&"heading"===(null===(t=e.node)||void 0===t?void 0:t.type)})),i=[""].concat(e.map((e=>`#${e.display.replaceAll(REG_BLOCK_REF_CLEAN,"").trim()}`))),n=[t$d("SHOW_ENTIRE_FILE")].concat(e.map((e=>e.display))),r=await ScriptEngine.suggester(app,n,i,"Select section from document");(r||""===r)&&r!==t&&this.updateElement(r,a,A)},icon:ICONS.ZoomToSection,view:i}),React__namespace.createElement(ActionButton,{key:"MarkdownBlock",title:t$d("NARROW_TO_BLOCK"),action:async()=>{var e,i,n;if(!A)return;const r=(await app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},A)).blocks.filter((e=>{var t;return e.display&&"paragraph"===(null===(t=e.node)||void 0===t?void 0:t.type)})),s=["entire-file"].concat(r),o=[t$d("SHOW_ENTIRE_FILE")].concat(r.map((e=>{var t;return`${(null===(t=e.node)||void 0===t?void 0:t.id)?`#^${e.node.id}: `:""}${e.display.trim()}`}))),l=await ScriptEngine.suggester(app,o,s,"Select section from document");if(!l)return;if("entire-file"===l){if(""===t)return;return void this.updateElement("",a,A)}let c=l.node.id;if(!c||`#^${c}`!==t){if(!c){const t=null===(n=null===(i=null===(e=l.node)||void 0===e?void 0:e.position)||void 0===i?void 0:i.end)||void 0===n?void 0:n.offset;if(!t)return;c=nanoid();const a=await app.vault.cachedRead(A);if(!a)return;await app.vault.modify(A,a.slice(0,t)+` ^${c}`+a.slice(t)),await sleep(200)}this.updateElement(`#^${c}`,a,A)}},icon:ICONS.ZoomToBlock,view:i}),React__namespace.createElement(ActionButton,{key:"ZoomToElement",title:t$d("ZOOM_TO_FIT"),action:()=>{a&&n.zoomToFit([a],i.plugin.settings.zoomToFitMaxLevel,.1)},icon:ICONS.ZoomToSelectedElement,view:i})))}}if(o||s){const t=s?n.getIFrameElementById(a.id):i.getIFrameElementById(a.id);if(!t||!t.contentWindow)return null;const{x:A,y:o}=sceneCoordsToViewportCoords({sceneX:a.x,sceneY:a.y},e),l=o-2.5*ROOTELEMENTSIZE-e.offsetTop+"px",c=A-e.offsetLeft+"px";return React__namespace.createElement("div",{ref:this.containerRef,className:"iframe-menu",style:{top:l,left:c,opacity:1},onMouseEnter:()=>this.handleMouseEnter(),onPointerDown:()=>this.handleMouseEnter(),onMouseLeave:()=>this.handleMouseLeave()},React__namespace.createElement("div",{className:"Island",style:{position:"relative"}},t.src!==r&&!t.src.startsWith("https://www.youtube.com")&&!t.src.startsWith("https://player.vimeo.com")&&React__namespace.createElement(ActionButton,{key:"Reload",title:t$d("RELOAD"),action:()=>{t.src=r},icon:ICONS.Reload,view:i}),React__namespace.createElement(ActionButton,{key:"Open",title:t$d("OPEN_IN_BROWSER"),action:()=>{i.openExternalLink(t.src)},icon:ICONS.Globe,view:i}),React__namespace.createElement(ActionButton,{key:"ZoomToElement",title:t$d("ZOOM_TO_FIT"),action:()=>{a&&n.zoomToFit([a],i.plugin.settings.zoomToFitMaxLevel,.1)},icon:ICONS.ZoomToSelectedElement,view:i})))}}}var TextMode;!function(e){e.parsed="parsed",e.raw="raw"}(TextMode||(TextMode={}));const HIDE="excalidraw-hidden",SHOW="excalidraw-visible",addFiles=async(e,t,A)=>{if(!e||0===e.length||!t)return;const i=t.excalidrawAPI;if(!i)return;if(e=e.filter((e=>e&&e.size&&e.size.height>0&&e.size.width>0)),0===e.length)return;const n=scaleLoadedImage(t.getScene(),e);void 0===A&&(A=n.scene.appState.theme),n.dirty&&t.updateScene({elements:n.scene.elements,appState:n.scene.appState,commitToHistory:!1});for(const i of e)if(t.excalidrawData.hasFile(i.id)&&t.excalidrawData.getFile(i.id).setImage(i.dataURL,i.mimeType,i.size,A,i.hasSVGwithBitmap),t.excalidrawData.hasEquation(i.id)){const e=t.excalidrawData.getEquation(i.id).latex;t.excalidrawData.setEquation(i.id,{latex:e,isLoaded:!0})}i.addFiles(e)},warningUnknowSeriousError=()=>{new obsidian_module.Notice("WARNING: Excalidraw ran into an unknown problem!\n\nThere is a risk that your most recent changes cannot be saved.\n\nTo be on the safe side...\n1) Please select your drawing using CTRL/CMD+A and make a copy with CTRL/CMD+C.\n2) Then create an empty drawing in a new pane by CTRL/CMD+clicking the Excalidraw ribbon button,\n3) and paste your work to the new document with CTRL/CMD+V.",6e4)};class ExcalidrawView extends obsidian_module.TextFileView{constructor(e,t){super(e),this.getScene=null,this.addElements=null,this.getSelectedTextElement=null,this.getSelectedImageElement=null,this.getSelectedElementWithLink=null,this.addText=null,this.refresh=null,this.excalidrawRef=null,this.excalidrawAPI=null,this.excalidrawWrapperRef=null,this.toolsPanelRef=null,this.iframeMenuRef=null,this.linksAlwaysOpenInANewPane=!1,this.lastSaveTimestamp=0,this.lastLoadedFile=null,this.modifierKeyDown={shiftKey:!1,metaKey:!1,ctrlKey:!1,altKey:!1},this.currentPosition={x:0,y:0},this.iFrameRefs=new Map,this.semaphores={popoutUnload:!1,viewunload:!1,scriptsReady:!1,justLoaded:!1,preventAutozoom:!1,autosaving:!1,dirty:null,preventReload:!1,isEditingText:!1,saving:!1,forceSaving:!1,hoverSleep:!1,wheelTimeout:null},this.autosaveTimer=null,this.textMode=TextMode.raw,this.compatibilityMode=!1,this.isEditingTextResetTimer=null,this.id=this.leaf.id,this.getHookServer=()=>{var e;return null!==(e=this.hookServer)&&void 0!==e?e:this.plugin.ea},this.preventReloadResetTimer=null,this.hiddenMobileLeaves=[],this.offsetLeft=0,this.offsetTop=0,this.blockTextModeChange=!1,this.isLoaded=!1,this.activeLoader=null,this.nextLoader=null,this.initialContainerSizeUpdate=!1,this.previousSceneVersion=0,this.previousBackgroundColor="",this.previousTheme="",this.colorChangeTimer=null,this.plugin=t,this.excalidrawData=new ExcalidrawData(t),this.hookServer=t.ea,this.canvasNodeFactory=new CanvasNodeFactory(this)}setHookServer(e){this.hookServer=e||this.plugin.ea}preventAutozoom(){this.semaphores.preventAutozoom=!0,setTimeout((()=>this.semaphores.preventAutozoom=!1),1500)}saveExcalidraw(e){if(!e){if(!this.getScene)return!1;e=this.getScene()}const t=`${this.file.path.substring(0,this.file.path.lastIndexOf(".md"))}.excalidraw`,A=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(t));A&&A instanceof obsidian_module.TFile?app.vault.modify(A,JSON.stringify(e,null,"\t")):app.vault.create(t,JSON.stringify(e,null,"\t"))}async exportExcalidraw(e){this.getScene&&this.file&&(app.isMobile?new Prompt(app,"Please provide filename",this.file.basename,"filename, leave blank to cancel action").openAndGetValue((async e=>{if(!e)return;e=`${e}.excalidraw`;const t=splitFolderAndFilename(this.file.path).folderpath;await checkAndCreateFolder(t);const A=getNewUniqueFilepath(app.vault,e,t);app.vault.create(A,JSON.stringify(this.getScene(),null,"\t")),new obsidian_module.Notice(`Exported to ${A}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.getScene(e),null,"\t")),`${this.file.basename}.excalidraw`))}async svg(e,t,A){const i=this.exportDialog,n={withBackground:i?!i.transparent:getWithBackground(this.plugin,this.file),withTheme:!0};return await getSVG(Object.assign(Object.assign({},e),{appState:Object.assign(Object.assign({},e.appState),{theme:null!=t?t:i?i.theme:getExportTheme(this.plugin,this.file,e.appState.theme),exportEmbedScene:void 0===A?!!i&&i.embedScene:A})}),n,i?i.padding:getExportPadding(this.plugin,this.file))}async saveSVG(e,t){if(!e){if(!this.getScene)return!1;e=this.getScene()}const A=async(A,i)=>{const n=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(A)),a=await this.svg(e,i,t);if(!a)return;const r=(new XMLSerializer).serializeToString(embedFontsInSVG(a,this.plugin));n&&n instanceof obsidian_module.TFile?await app.vault.modify(n,r):await app.vault.create(A,r)};this.plugin.settings.autoExportLightAndDark?(await A(getIMGFilename(this.file.path,"dark.svg"),"dark"),await A(getIMGFilename(this.file.path,"light.svg"),"light")):await A(getIMGFilename(this.file.path,"svg"))}async exportSVG(e,t){if(!this.getScene||!this.file)return;let A=await this.svg(this.getScene(t),void 0,e);A&&(A=embedFontsInSVG(A,this.plugin),download(null,svgToBase64(A.outerHTML),`${this.file.basename}.svg`))}async png(e,t,A){const i=this.exportDialog,n={withBackground:i?!i.transparent:getWithBackground(this.plugin,this.file),withTheme:!0};return await getPNG(Object.assign(Object.assign({},e),{appState:Object.assign(Object.assign({},e.appState),{theme:null!=t?t:i?i.theme:getExportTheme(this.plugin,this.file,e.appState.theme),exportEmbedScene:void 0===A?!!i&&i.embedScene:A})}),n,i?i.padding:getExportPadding(this.plugin,this.file),i?i.scale:getPNGScale(this.plugin,this.file))}async savePNG(e,t){if(!e){if(!this.getScene)return!1;e=this.getScene()}const A=async(A,i)=>{const n=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(A)),a=await this.png(e,i,t);a&&(n&&n instanceof obsidian_module.TFile?await app.vault.modifyBinary(n,await a.arrayBuffer()):await app.vault.createBinary(A,await a.arrayBuffer()))};this.plugin.settings.autoExportLightAndDark?(await A(getIMGFilename(this.file.path,"dark.png"),"dark"),await A(getIMGFilename(this.file.path,"light.png"),"light")):await A(getIMGFilename(this.file.path,"png"))}async exportPNGToClipboard(e,t){if(!this.getScene||!this.file)return;const A=await this.png(this.getScene(t),void 0,e);A&&await navigator.clipboard.write([new window.ClipboardItem({"image/png":A})])}async exportPNG(e,t){if(!this.getScene||!this.file)return;const A=await this.png(this.getScene(t),void 0,e);if(!A)return;const i=new FileReader;i.readAsDataURL(A);const n=this;i.onloadend=function(){const e=i.result;download(null,e,`${n.file.basename}.png`)}}async save(e=!0,t=!1){if(!this.isLoaded)return;if(this.semaphores.saving)return;this.semaphores.saving=!0;let A=!1;if(this.getScene&&this.excalidrawAPI&&this.isLoaded&&this.file&&app.vault.getAbstractFileByPath(this.file.path)){try{const i=Boolean(null!==this.semaphores.dirty&&this.semaphores.dirty||this.semaphores.autosaving||t),n=this.getScene();if(this.compatibilityMode?await this.excalidrawData.syncElements(n):await this.excalidrawData.syncElements(n,this.excalidrawAPI.getAppState().selectedElementIds)&&!this.semaphores.popoutUnload&&await this.loadDrawing(!1,this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((e=>e.isDeleted))),i){this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=e,await super.save();const i=this.file.path,n=this.lastSavedData;if(setTimeout((()=>imageCache.addBAKToCache(i,n)),50),A=this.lastSaveTimestamp===this.file.stat.mtime&&!e&&t,this.lastSaveTimestamp=this.file.stat.mtime,this.clearDirty(),e){const e=this;this.preventReloadResetTimer=setTimeout((()=>e.semaphores.preventReload=!1),2e3)}}if(!A&&!this.semaphores.autosaving&&(!this.semaphores.viewunload||this.semaphores.popoutUnload)){const e=this.excalidrawData.autoexportPreference;(e===AutoexportPreference.inherit&&this.plugin.settings.autoexportSVG||e===AutoexportPreference.both||e===AutoexportPreference.svg)&&this.saveSVG(),(e===AutoexportPreference.inherit&&this.plugin.settings.autoexportPNG||e===AutoexportPreference.both||e===AutoexportPreference.png)&&this.savePNG(),!this.compatibilityMode&&this.plugin.settings.autoexportExcalidraw&&this.saveExcalidraw()}}catch(e){errorlog({where:"ExcalidrawView.save",fn:this.save,error:e}),warningUnknowSeriousError()}this.semaphores.saving=!1,A&&this.reload(!0,this.file)}else this.semaphores.saving=!1}getViewData(){var e,t,A;if(!this.getScene||!this.excalidrawData.loaded)return this.data;const i=this.getScene();if(!i)return this.data;if(!this.compatibilityMode){let i=this.data.search(/(^%%\n)?# Text Elements\n/m);if(-1==i&&(i=this.data.search(/(%%\n)?# Drawing\n/)),-1==i)return this.data;const n=(null===(e=this.exportDialog)||void 0===e?void 0:e.dirty)&&(null===(t=this.exportDialog)||void 0===t?void 0:t.saveSettings)?[["excalidraw-export-padding",this.exportDialog.padding.toString()],["excalidraw-export-pngscale",this.exportDialog.scale.toString()],["excalidraw-export-dark","dark"===this.exportDialog.theme?"true":"false"],["excalidraw-export-transparent",this.exportDialog.transparent?"true":"false"],[FRONTMATTER_KEY,this.textMode===TextMode.raw?"raw":"parsed"]]:[[FRONTMATTER_KEY,this.textMode===TextMode.raw?"raw":"parsed"]];(null===(A=this.exportDialog)||void 0===A?void 0:A.dirty)&&(this.exportDialog.dirty=!1);let a=updateFrontmatterInString(this.data.substring(0,i),n);const r=/(^---[\w\W]*?---\n)(!\[\[.*?]]\n(%%\n)?)/m;a.match(r)&&(a=a.replace(r,"$1")),this.excalidrawData.disableCompression||(this.excalidrawData.disableCompression=this.isEditedAsMarkdownInOtherView());const s=a+this.excalidrawData.generateMD(this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((e=>e.isDeleted)));return this.excalidrawData.disableCompression=!1,s}return this.compatibilityMode?JSON.stringify(i,null,"\t"):this.data}restoreMobileLeaves(){this.hiddenMobileLeaves.length>0&&(this.hiddenMobileLeaves.forEach((e=>{e[0].containerEl.style.display=e[1]})),this.hiddenMobileLeaves=[])}toggleDisableBinding(){const e=!this.excalidrawAPI.getAppState().invertBindingBehaviour;this.updateScene({appState:{invertBindingBehaviour:e}}),new obsidian_module.Notice(e?"Inverted Mode: Default arrow binding is now disabled. Use CTRL/CMD to temporarily enable binding when needed.":"Normal Mode: Arrow binding is now enabled. Use CTRL/CMD to temporarily disable binding when needed.")}gotoFullscreen(){this.plugin.leafChangeTimeout&&(clearTimeout(this.plugin.leafChangeTimeout),this.plugin.leafChangeTimeout=null),this.excalidrawWrapperRef&&(this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!0),(e=>{for(;e&&!e.hasClass("workspace-split");)e.addClass(SHOW),e=e.parentElement;e&&(e.addClass(SHOW),e.querySelectorAll(`div.workspace-split:not(.${SHOW})`).forEach((e=>e.addClass(SHOW))),e.querySelector(`div.workspace-leaf-content.${SHOW} > .view-header`).addClass(SHOW),e.querySelectorAll(`div.workspace-tab-container.${SHOW} > div.workspace-leaf:not(.${SHOW})`).forEach((e=>e.addClass(SHOW))),e.querySelectorAll(`div.workspace-tabs.${SHOW} > div.workspace-tab-header-container`).forEach((e=>e.addClass(SHOW))),e.querySelectorAll(`div.workspace-split.${SHOW} > div.workspace-tabs:not(.${SHOW})`).forEach((e=>e.addClass(SHOW))));const t=this.ownerDocument;t.body.querySelectorAll(`div.workspace-split:not(.${SHOW})`).forEach((e=>e.addClass(HIDE))),t.body.querySelector(`div.workspace-leaf-content.${SHOW} > .view-header`).addClass(HIDE),t.body.querySelectorAll(`div.workspace-tab-container.${SHOW} > div.workspace-leaf:not(.${SHOW})`).forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll(`div.workspace-tabs.${SHOW} > div.workspace-tab-header-container`).forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll(`div.workspace-split.${SHOW} > div.workspace-tabs:not(.${SHOW})`).forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll("div.workspace-ribbon").forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll("div.mobile-navbar").forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll("div.status-bar").forEach((e=>e.addClass(HIDE)))})(this.contentEl))}isFullscreen(){return Boolean(document.body.querySelector(".excalidraw-hidden"))}exitFullscreen(){this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!1);const e=this.ownerDocument;e.querySelectorAll(".excalidraw-hidden").forEach((e=>e.removeClass(HIDE))),e.querySelectorAll(".excalidraw-visible").forEach((e=>e.removeClass(SHOW)))}removeLinkTooltip(){const e=this.ownerDocument.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");e&&e.classList.remove("excalidraw-tooltip--visible")}handleLinkHookCall(e,t,A){if(this.getHookServer().onLinkClickHook)try{if(!this.getHookServer().onLinkClickHook(e,t,A,this,this.getHookServer()))return!0}catch(e){errorlog({where:"ExcalidrawView.onLinkOpen",fn:this.getHookServer().onLinkClickHook,error:e})}return!1}openExternalLink(e,t){return!!e.match(REG_LINKINDEX_HYPERLINK)&&(window.open(e,"_blank"),!0)}openTagSearch(e){const t=e.matchAll(/#([\p{Letter}\p{Emoji_Presentation}\p{Number}\/_-]+)/gu).next();if(!t.value||t.value.length<2)return;const A=app.workspace.getLeavesOfType("search");0!=A.length&&(A[0].view.setQuery(`tag:${t.value[1]}`),app.workspace.revealLeaf(A[0]),this.isFullscreen()&&this.exitFullscreen())}async linkClick(e,t,A,i,n){var a,r,s,o,l;t||(t={id:null,text:null}),A||(A={id:null,fileId:null}),i||(i={id:null,text:null}),n||(n={shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,altKey:e.altKey});const c=linkClickModifierType(n);let d=null,h=null,u=null;if((null==t?void 0:t.id)||(null==i?void 0:i.id)){if(u=null!==(a=null==i?void 0:i.text)&&void 0!==a?a:this.textMode===TextMode.parsed?this.excalidrawData.getRawText(t.id):t.text,!u)return;u=u.replaceAll("\n","");const A=null!==(r=t.id)&&void 0!==r?r:i.id,n=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A))[0];if(this.handleLinkHookCall(n,u,e))return;if(this.openExternalLink(u))return;const s=REGEX_LINK.getResList(u);let o=s[0];if(s.length>1&&(o=await ScriptEngine.suggester(app,s.filter((e=>Boolean(e.value))).map((e=>REGEX_LINK.getLink(e))),s.filter((e=>Boolean(e.value))),"Select link to open"),!o))return;if(!(null==o?void 0:o.value))return void this.openTagSearch(u);if(u=REGEX_LINK.getLink(o),this.openExternalLink(u))return;if(u.search("#")>-1){const e=getLinkParts(u,this.file);h=`#${e.isBlockRef?"^":""}${e.ref}`,u=e.path}if(u.match(REG_LINKINDEX_INVALIDCHARS))return void new obsidian_module.Notice(t$d("FILENAME_INVALID_CHARS"),4e3);d=this.app.metadataCache.getFirstLinkpathDest(u,this.file.path)}if(null==A?void 0:A.id){if(this.excalidrawData.hasEquation(A.fileId)){const e=this.excalidrawData.getEquation(A.fileId).latex;return void new Prompt(app,t$d("ENTER_LATEX"),e,"").openAndGetValue((async t=>{t&&t!==e&&(this.excalidrawData.setEquation(A.fileId,{latex:t,isLoaded:!1}),await this.save(!1),await updateEquation(t,A.fileId,this,addFiles,this.plugin),this.setDirty(1))}))}if(await this.save(!1),this.excalidrawData.hasFile(A.fileId)){const e=this.excalidrawData.getFile(A.fileId);if(e.isHyperlink)return void window.open(e.hyperlink,"_blank");if("md-properties"===c&&"md"===e.file.extension&&!this.plugin.isExcalidrawFile(e.file)){const t=async t=>{t&&e.linkParts.original!==t&&(e.resetImage(this.file.path,t),this.setDirty(2),await this.save(!1),await this.loadSceneFiles())};return void GenericInputPrompt.Prompt(this,this.plugin,app,"Customize the link",void 0,e.linkParts.original,[{caption:"✅",action:t}],1,!1,(e=>e.createEl("p",{text:fragWithHTML("Do not add [[square brackets]] around the filename!
Follow this format when editing your link:
filename#^blockref|WIDTHxMAXHEIGHT")})),!1).then(t,(()=>{}))}u=e.file.path,d=e.file,"pdf"===d.extension.toLowerCase()&&(h=null===(s=e.linkParts.original.match(/(#.*)$/))||void 0===s?void 0:s[1])}}if(!u)return void new obsidian_module.Notice(t$d("LINK_BUTTON_CLICK_NO_TEXT"),2e4);const g=null!==(l=null!==(o=A.id)&&void 0!==o?o:t.id)&&void 0!==l?l:i.id,p=this.excalidrawAPI.getSceneElements().filter((e=>e.id===g))[0];if(!this.handleLinkHookCall(p,u,e))try{if("active-pane"!==c&&this.isFullscreen()&&this.exitFullscreen(),!d)return void new NewFileActions(this.plugin,u,n,this).open();this.linksAlwaysOpenInANewPane&&(n.ctrlKey=!0,n.altKey=!0);const e=getLeaf(this.plugin,this.leaf,n);try{const t=app.plugins.plugins["drawio-obsidian"];if(t&&t._loaded&&"svg"===d.extension){const t=await this.app.vault.cachedRead(d);if(/(<|\<)(mxfile|mxgraph)/i.test(t))return void e.setViewState({type:"diagram-edit",state:{file:d.path}})}}catch(e){console.error(e)}await e.openFile(d,h?{active:!this.linksAlwaysOpenInANewPane,eState:{subpath:h}}:void 0)}catch(e){new obsidian_module.Notice(e,4e3)}}async handleLinkClick(e){this.removeLinkTooltip();const t=this.getSelectedTextElement(),A=(null==t?void 0:t.id)?null:this.getSelectedImageElement(),i=(null==A?void 0:A.id)||(null==t?void 0:t.id)?null:this.getSelectedElementWithLink();this.linkClick(e,t,A,i)}onResize(){var e,t;if(this.plugin.leafChangeTimeout)return;const A=this.excalidrawAPI;this.plugin.settings.zoomToFitOnResize&&this.excalidrawRef&&!this.semaphores.isEditingText&&A&&"text"!==(null===(t=null===(e=A.getAppState())||void 0===e?void 0:e.editingElement)||void 0===t?void 0:t.type)&&this.zoomToFit(!1)}getSceneVersion(e){return this.excalidrawGetSceneVersion||(this.excalidrawGetSceneVersion=this.plugin.getPackage(this.ownerWindow).excalidrawLib.getSceneVersion),this.excalidrawGetSceneVersion(e.filter((e=>!e.isDeleted)))}async forceSave(e=!1){this.semaphores.autosaving||this.semaphores.saving?e||new obsidian_module.Notice("Force Save aborted because saving is in progress)"):(this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=!1,this.semaphores.forceSaving=!0,await this.save(!1,!0),this.plugin.triggerEmbedUpdates(),this.loadSceneFiles(),this.semaphores.forceSaving=!1,e||new obsidian_module.Notice("Save successful",1e3))}onload(){const e=Boolean(void 0===this.containerEl.onWindowMigrated);app.isMobile||e||this.containerEl.onWindowMigrated((()=>this.leaf.rebuildView()));const t=app.isMobile?document:this.containerEl.ownerDocument;this.ownerDocument=t,this.ownerWindow=this.ownerDocument.defaultView,this.plugin.getPackage(this.ownerWindow),this.semaphores.scriptsReady=!0,this.wheelEvent=e=>{this.semaphores.wheelTimeout&&clearTimeout(this.semaphores.wheelTimeout),this.semaphores.hoverSleep&&this.clearHoverPreview&&this.clearHoverPreview(),this.semaphores.wheelTimeout=setTimeout((()=>{clearTimeout(this.semaphores.wheelTimeout),this.semaphores.wheelTimeout=null}),1e3)},this.containerEl.addEventListener("wheel",this.wheelEvent,{passive:!1}),this.addAction("ScriptEngine",t$d("INSTALL_SCRIPT_BUTTON"),(()=>{new ScriptInstallPrompt(this.plugin).open()})),this.diskIcon=this.addAction("save",t$d("FORCE_SAVE"),(async()=>this.forceSave())),this.textIsRaw_Element=this.addAction("presentation",t$d("RAW"),(()=>this.changeTextMode(TextMode.parsed))),this.textIsParsed_Element=this.addAction("quote-glyph",t$d("PARSED"),(()=>this.changeTextMode(TextMode.raw))),this.linkAction_Element=this.addAction("link",t$d("OPEN_LINK"),(e=>this.handleLinkClick(e))),app.isMobile||this.addAction("fullscreen","Use the action on the Excalidraw Obsidian Panel or the Command Palette to exit fullscreen mode. You can set up a hotkey for toggling fullscreen mode in Obsidian settings under Hotkeys.",(()=>this.gotoFullscreen()));const A=this;app.workspace.onLayoutReady((async()=>{this.canvasNodeFactory.initialize(),A.contentEl.addClass("excalidraw-view"),await A.addSlidingPanesListner(),A.addParentMoveObserver(),A.onKeyUp=e=>{A.modifierKeyDown={shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey}},A.onKeyDown=e=>{this.modifierKeyDown={shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey}},A.ownerWindow.addEventListener("keydown",A.onKeyDown,!1),A.ownerWindow.addEventListener("keyup",A.onKeyUp,!1)})),this.setupAutosaveTimer(),super.onload()}async addSlidingPanesListner(){const e=this;this.slidingPanesListner=()=>{e.refresh&&e.refresh()};let t=app.workspace.rootSplit;for(;!t;)await sleep(50),t=app.workspace.rootSplit;t.containerEl.addEventListener("scroll",this.slidingPanesListner)}removeSlidingPanesListner(){var e;this.slidingPanesListner&&(null===(e=app.workspace.rootSplit.containerEl)||void 0===e||e.removeEventListener("scroll",this.slidingPanesListner))}addParentMoveObserver(){var e;const t=null!==(e=getParentOfClass(this.containerEl,"popover"))&&void 0!==e?e:getParentOfClass(this.containerEl,"workspace-leaf");if(!t)return;const A=t.classList.contains("popover");this.offsetLeft=t.offsetLeft,this.offsetTop=t.offsetTop;const i=this;this.parentMoveObserver=new MutationObserver((async e=>{const t=e[0].target;if(!(t instanceof HTMLElement))return;const{offsetLeft:A,offsetTop:n}=t;A===i.offsetLeft&&n==i.offsetTop||(i.refresh&&i.refresh(),i.offsetLeft=A,i.offsetTop=n)})),this.parentMoveObserver.observe(t,{attributeOldValue:!0,attributeFilter:A?["data-x","data-y"]:["class","style"]})}removeParentMoveObserver(){this.parentMoveObserver&&this.parentMoveObserver.disconnect()}setTheme(e){const t=this.excalidrawAPI;if(!this.excalidrawRef||!t)return;if(this.file&&hasExportTheme(this.plugin,this.file))return;const A=t.getAppState();this.excalidrawData.scene.theme=e,this.updateScene({appState:Object.assign(Object.assign({},A),{theme:e}),commitToHistory:!1})}async changeTextMode(e,t=!0){if(this.compatibilityMode)return;if(this.blockTextModeChange)return;this.blockTextModeChange=!0,this.textMode=e,e===TextMode.parsed?(this.textIsRaw_Element.hide(),this.textIsParsed_Element.show()):(this.textIsRaw_Element.show(),this.textIsParsed_Element.hide()),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setPreviewMode(e===TextMode.parsed);const A=this.excalidrawAPI;A&&t&&(await this.save(),this.preventAutozoom(),await this.excalidrawData.loadData(this.data,this.file,this.textMode),this.excalidrawData.scene.appState.theme=A.getAppState().theme,await this.loadDrawing(!1),A.history.clear()),this.prevTextMode=this.textMode,this.blockTextModeChange=!1}setupAutosaveTimer(){const e=async()=>{var t;if(!this.isLoaded)return void(this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval));const A=this.excalidrawAPI;if(!A)return void warningUnknowSeriousError();const i=A.getAppState(),n=null!==i.editingElement;if(this.refresh(),!this.semaphores.dirty||this.semaphores.dirty!=(null===(t=this.file)||void 0===t?void 0:t.path)||!this.plugin.settings.autosave||this.semaphores.forceSaving||this.semaphores.autosaving||n||null!==i.draggingElement)this.autosaveTimer=setTimeout(e,this.plugin.activeExcalidrawView===this&&this.semaphores.dirty&&this.plugin.settings.autosave?1e3:this.plugin.settings.autosaveInterval);else{if(this.autosaveTimer=null,this.excalidrawRef){this.semaphores.autosaving=!0;const e=this;this.save().then((()=>e.semaphores.autosaving=!1))}this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval)}};this.autosaveFunction=e,this.autosaveTimer&&(clearTimeout(this.autosaveTimer),this.autosaveTimer=null),this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval)}onunload(){var e,t,A,i,n,a;if(this.restoreMobileLeaves(),this.semaphores.viewunload=!0,this.semaphores.popoutUnload=this.ownerDocument!==document&&0===this.ownerDocument.body.querySelectorAll(".workspace-tab-header").length,null===(e=this.ownerWindow)||void 0===e||e.removeEventListener("keydown",this.onKeyDown,!1),null===(t=this.ownerWindow)||void 0===t||t.removeEventListener("keyup",this.onKeyUp,!1),this.containerEl.removeEventListener("wheel",this.wheelEvent,!1),this.getHookServer().onViewUnloadHook)try{this.getHookServer().onViewUnloadHook(this)}catch(e){errorlog({where:"ExcalidrawView.onunload",fn:this.getHookServer().onViewUnloadHook,error:e})}const r=null===(i=null===(A=this.containerEl)||void 0===A?void 0:A.ownerDocument)||void 0===i?void 0:i.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");r&&(null===(a=null===(n=this.containerEl)||void 0===n?void 0:n.ownerDocument)||void 0===a||a.body.removeChild(r)),this.removeParentMoveObserver(),this.removeSlidingPanesListner(),this.autosaveTimer&&(clearInterval(this.autosaveTimer),this.autosaveTimer=null)}async reload(e=!1,t){if(this.semaphores.preventReload)return void(this.semaphores.preventReload=!1);if(this.semaphores.saving)return;if(this.lastLoadedFile=null,this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),this.compatibilityMode)return void this.clearDirty();const A=this.excalidrawAPI;if(!this.excalidrawRef||!this.file||!A)return;const i=t&&t===this.file;i&&(this.data=await app.vault.read(t),this.preventAutozoom()),e?await this.excalidrawData.loadData(this.data,this.file,this.textMode):await this.excalidrawData.setTextMode(this.textMode),this.excalidrawData.scene.appState.theme=A.getAppState().theme,await this.loadDrawing(i),this.clearDirty()}async zoomToElementId(e,t){let A=0;for(;!this.excalidrawAPI&&A++<100;)await sleep(50);const i=this.excalidrawAPI;if(!i)return;const n=i.getSceneElements();let a=n.filter((t=>t.id===e));if(0!==a.length){if(t){const e=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],n);e.length>0&&(a=e)}this.preventAutozoom(),this.zoomToElements(!i.getAppState().viewModeEnabled,a)}}setEphemeralState(e){if(!e)return;const t=this;let A=null;e.match&&e.match.content&&e.match.matches&&1===e.match.matches.length&&2===e.match.matches[0].length&&(A=[e.match.content.substring(e.match.matches[0][0],e.match.matches[0][1])]);const i=async()=>{var e,A;let i=0;for(;(t.semaphores.justLoaded||!t.isLoaded||!t.excalidrawAPI||(null===(A=null===(e=t.excalidrawAPI)||void 0===e?void 0:e.getAppState())||void 0===A?void 0:A.isLoading))&&i++<100;)await sleep(50)},n=getEmbeddedFilenameParts(e.subpath);n.hasBlockref&&setTimeout((async()=>{await i(),setTimeout((()=>t.zoomToElementId(n.blockref,n.hasGroupref)))})),n.hasSectionref?A=[`# ${n.sectionref}`]:e.line&&e.line>0&&(A=[this.data.split("\n")[e.line-1]]),A&&setTimeout((async()=>{await i();const e=t.excalidrawAPI;if(!e)return;if(e.getAppState().isLoading)return;const a=e.getSceneElements();if(1===A.length&&A[0].startsWith("[")){let i=REGEX_LINK.getResList(A[0])[0];if(i){const A=REGEX_LINK.getLink(i);if(A){const i=t.plugin.app.metadataCache.getFirstLinkpathDest(A,t.file.path);if(i){let A=[];if(t.excalidrawData.files.forEach(((e,t)=>{var n;(null===(n=e.file)||void 0===n?void 0:n.path)===i.path&&A.push(t)})),A.length>0){const i=a.filter((e=>"image"===e.type&&A.includes(e.fileId)));i.length>0&&(this.preventAutozoom(),setTimeout((()=>t.zoomToElements(!e.getAppState().viewModeEnabled,i))))}}}}}t.selectElementsMatchingQuery(a,A,!e.getAppState().viewModeEnabled,n.hasSectionref,n.hasGroupref)})),super.setEphemeralState(e)}clear(){this.canvasNodeFactory.purgeNodes(),this.iFrameRefs.clear(),delete this.exportDialog;const e=this.excalidrawAPI;this.excalidrawRef&&e&&(this.activeLoader&&(this.activeLoader.terminate=!0,this.activeLoader=null),this.nextLoader=null,e.resetScene(),this.previousSceneVersion=0)}async setViewData(e,t=!1){this.lastLoadedFile!==this.file&&(this.isLoaded=!1,this.file&&(this.plugin.settings.showNewVersionNotification&&checkExcalidrawVersion(app),t&&this.clear(),this.lastSaveTimestamp=this.file.stat.mtime,this.lastLoadedFile=this.file,e=this.data=e.replaceAll("\r\n","\n").replaceAll("\r","\n"),app.workspace.onLayoutReady((async()=>{if(this.compatibilityMode="excalidraw"===this.file.extension,await this.plugin.loadSettings(),this.compatibilityMode)this.textIsRaw_Element.hide(),this.textIsParsed_Element.hide(),this.linkAction_Element.hide(),this.textMode=TextMode.raw,await this.excalidrawData.loadLegacyData(e,this.file),this.plugin.settings.compatibilityMode||new obsidian_module.Notice(t$d("COMPATIBILITY_MODE"),4e3),this.excalidrawData.disableCompression=!0;else{this.linkAction_Element.show(),this.excalidrawData.disableCompression=!1;const t=getTextMode(e);this.changeTextMode(t,!1);try{if(!await this.excalidrawData.loadData(e,this.file,this.textMode))return}catch(e){errorlog({where:"ExcalidrawView.setViewData",error:e});const t=this.file,A=this.plugin,i=this.leaf;return(async()=>{let n=!0,a=0;const r=Date.now();for(;!imageCache.isReady()&&n;){const e=`You've been now wating for ${Math.round((Date.now()-r)/1e3)} seconds. `;imageCache.initializationNotice=!0;const t=new ConfirmationPrompt(A,`${a>0?a%4==0?e+"The CACHE is still loading.

":a%4==1?e+"Watch the top rigth corner for the notification.

":a%4==2?e+"I really, really hope the backup will work for you!

":e+"I am sorry, it is taking a while, there is not much I can do...

":""}${t$d("CACHE_NOT_READY")}`);n=await t.waitForClose,a++}const s=await imageCache.getBAKFromCache(t.path);s?new ConfirmationPrompt(A,t$d("BACKUP_AVAILABLE")).waitForClose.then((async e=>{e&&(await app.vault.modify(t,s),A.excalidrawFileModes[i.id||t.path]="excalidraw",A.setExcalidrawView(i))})):new obsidian_module.Notice(`Error loading drawing:\n${e.message}${"Cannot read property 'index' of undefined"===e.message?"\n'# Drawing' section is likely missing":""}\n\nTry manually fixing the file or restoring an earlier version from sync history.`,1e4)})(),void this.setMarkdownView()}}if(await this.loadDrawing(!0),this.plugin.ea.onFileOpenHook)try{await this.plugin.ea.onFileOpenHook({ea:getEA(this),excalidrawFile:this.file,view:this})}catch(e){errorlog({where:"ExcalidrawView.setViewData.onFileOpenHook",error:e})}const t=this.excalidrawData.getOnLoadScript();if(t){const e=this,A=this.file.basename+"-onlaod-script",i=()=>{e.excalidrawAPI?e.plugin.scriptEngine.executeScript(e,t,A,this.file):setTimeout(i,200)};i()}this.isLoaded=!0}))))}getGridColor(e){const t=this.plugin.ea.getCM(e);return t.isDark()?t.lighterBy(5):t.darkerBy(5),t.stringHEX()}async loadSceneFiles(){if(!this.excalidrawAPI)return;const e=new EmbeddedFilesLoader(this.plugin),t=e=>{this.nextLoader=null,this.activeLoader=e,e.loadSceneFiles(this.excalidrawData,((e,A,i=!0)=>{e&&(addFiles(e,this,A),i&&(this.activeLoader=null,this.nextLoader?t(this.nextLoader):this.excalidrawData.getFiles().some((e=>{if(e&&!e.file&&e.attemptCounter<30){const e=this,t=this.file.path;return setTimeout((async()=>{e&&e.excalidrawAPI&&t===e.file.path&&e.loadSceneFiles()}),2e3),!0}return!1}))))}),0)};this.activeLoader?this.nextLoader=e:t(e)}async synchronizeWithData(e){let t=0;for(;this.semaphores.saving&&t++<30;)await sleep(100);if(t>=30)return void errorlog({where:"ExcalidrawView.synchronizeWithData",message:`Aborting sync with received file (${this.file.path}) because semaphores.saving remained true for ower 3 seconds`,fn:this.synchronizeWithData});this.semaphores.saving=!0;let A=!1;try{const t=e.deletedElements.map((e=>e.id)),i=this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((e=>!t.contains(e.id))),n=i.map((e=>e.id)),a=t=>{switch(t.type){case"text":this.excalidrawData.textElements.set(t.id,e.textElements.get(t.id));break;case"image":e.getFile(t.fileId)?(this.excalidrawData.setFile(t.fileId,e.getFile(t.fileId)),A=!0):e.getEquation(t.fileId)&&(this.excalidrawData.setEquation(t.fileId,e.getEquation(t.fileId)),A=!0)}e.elementLinks.has(t.id)&&this.excalidrawData.elementLinks.set(t.id,e.elementLinks.get(t.id))};e.scene.elements.forEach(((t,r,s)=>{const o=i.filter((e=>e.id===t.id))[0];if(o&&(o.version0&&a.viewModeEnabled,l=this.isLoaded?s.getAppState().zenModeEnabled:a.zenModeEnabled;s.setLocalFont(this.plugin.settings.experimentalEnableFourthFont),this.updateScene({elements:n.elements.concat(null!=t?t:[]),files:n.files,commitToHistory:!0},e),this.updateScene({appState:Object.assign(Object.assign(Object.assign({},n.appState),this.excalidrawData.selectedElementIds?this.excalidrawData.selectedElementIds:{}),{zenModeEnabled:l,viewModeEnabled:o,linkOpacity:this.excalidrawData.getLinkOpacity(),trayModeEnabled:this.plugin.settings.defaultTrayMode,penMode:r,penDetected:r,allowPinchZoom:this.plugin.settings.allowPinchZoom,allowWheelZoom:this.plugin.settings.allowWheelZoom,pinnedScripts:this.plugin.settings.pinnedScripts,customPens:this.plugin.settings.customPens.slice(0,this.plugin.settings.numberOfCustomPens)})}),app.workspace.getActiveViewOfType(ExcalidrawView)===this.leaf.view&&this.excalidrawWrapperRef&&(null===(i=null===(A=this.excalidrawWrapperRef.current)||void 0===A?void 0:A.firstElementChild)||void 0===i||i.focus()),this.onAfterLoadScene()}else this.instantiateExcalidraw({elements:n.elements,appState:Object.assign(Object.assign({},n.appState),{zenModeEnabled:a.zenModeEnabled,viewModeEnabled:n.elements.length>0&&a.viewModeEnabled,linkOpacity:this.excalidrawData.getLinkOpacity(),trayModeEnabled:this.plugin.settings.defaultTrayMode,penMode:r,penDetected:r,allowPinchZoom:this.plugin.settings.allowPinchZoom,allowWheelZoom:this.plugin.settings.allowWheelZoom,pinnedScripts:this.plugin.settings.pinnedScripts,customPens:this.plugin.settings.customPens.slice(0,this.plugin.settings.numberOfCustomPens)}),files:n.files,libraryItems:await this.getLibrary()});const o=null!==this.data.match(/```compressed\-json\n/gm);this.compatibilityMode||this.plugin.settings.compress===o||this.isEditedAsMarkdownInOtherView()||this.setDirty(4)}isEditedAsMarkdownInOtherView(){return app.workspace.getLeavesOfType("markdown").filter((e=>e.view.file===this.file)).length>0}onAfterLoadScene(){this.loadSceneFiles(),this.updateContainerSize(null,!0),this.initializeToolsIconPanelAfterLoading()}setDirty(e){var t,A;this.semaphores.dirty=null===(t=this.file)||void 0===t?void 0:t.path,this.diskIcon.querySelector("svg").addClass("excalidraw-dirty"),!this.semaphores.viewunload&&(null===(A=this.toolsPanelRef)||void 0===A?void 0:A.current)&&this.toolsPanelRef.current.setDirty(!0),app.isMobile||obsidian_module.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="var(--color-accent)")}clearDirty(){var e;if(this.semaphores.viewunload)return;const t=this.excalidrawAPI;if(!t)return;this.semaphores.dirty=null,(null===(e=this.toolsPanelRef)||void 0===e?void 0:e.current)&&this.toolsPanelRef.current.setDirty(!1);const A=t.getSceneElements();A&&(this.previousSceneVersion=this.getSceneVersion(A)),this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),app.isMobile||obsidian_module.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="")}initializeToolsIconPanelAfterLoading(){var e;if(this.semaphores.viewunload)return;const t=this.excalidrawAPI;if(!t)return;const A=t.getAppState(),i=null===(e=this.toolsPanelRef)||void 0===e?void 0:e.current;i&&(i.setTheme(A.theme),i.setExcalidrawViewMode(A.viewModeEnabled),i.setPreviewMode(this.compatibilityMode?null:this.textMode===TextMode.parsed),i.updateScriptIconMap(this.plugin.scriptEngine.scriptIconMap))}canAcceptExtension(e){return"excalidraw"===e}getDisplayText(){return this.file?this.file.basename:t$d("NOFILE")}getViewType(){return"excalidraw"}getIcon(){return ICON_NAME}setMarkdownView(){this.plugin.excalidrawFileModes[this.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)}async openAsMarkdown(){!0===this.plugin.settings.compress&&(this.excalidrawData.disableCompression=!0,await this.save(!0,!0)),this.setMarkdownView()}async convertExcalidrawToMD(){await this.save(),this.plugin.openDrawing(await this.plugin.convertSingleExcalidrawToMD(this.file),"active-pane",!0)}async addYouTubeThumbnail(e){const t=await getYouTubeThumbnailLink(e),A=getEA(this),i=await A.addImage(0,0,t);A.getElement(i).link=e,A.addElementsToView(!0,!0,!0)}async addImageWithURL(e){const t=getEA(this);await t.addImage(0,0,e),t.addElementsToView(!0,!0,!0)}async addImageSaveToVault(e){const t=getEA(this),A=getMimeType(getURLImageExtension(e)),i=await getDataURLFromURL(e,A,3e3),n=await generateIdFromFile((new TextEncoder).encode(i)),a=await this.excalidrawData.saveDataURLtoVault(i,A,n);await t.addImage(0,0,a),t.addElementsToView(!0,!0,!0)}async addTextWithIframely(e){var t;const A=await this.addText(e),i=`http://iframely.server.crestify.com/iframely?url=${e}`;try{const n=JSON.parse(await obsidian_module.request({url:i}));if(!n||n.error||!(null===(t=n.meta)||void 0===t?void 0:t.title))return;const a=getEA(this),r=a.getViewElements().filter((e=>e.id===A));1===r.length&&(r[0].text=r[0].originalText=r[0].rawText=`[${n.meta.title}](${e})`,a.copyViewElementsToEAforEditing(r),a.addElementsToView(!1,!1,!1))}catch(e){}}onPaneMenu(e,t){this.excalidrawAPI&&this.getViewSelectedElements().some((e=>"text"===e.type))&&e.addItem((e=>{e.setTitle(t$d("OPEN_LINK")).setIcon("external-link").setSection("pane").onClick((e=>{this.handleLinkClick(e)}))})),this.compatibilityMode?e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE")).onClick((()=>this.convertExcalidrawToMD())).setSection("pane")})):e.addItem((e=>{e.setTitle(t$d("OPEN_AS_MD")).setIcon("document").onClick((()=>{this.openAsMarkdown()})).setSection("pane")})),e.addItem((e=>{e.setTitle(t$d("EXPORT_IMAGE")).setIcon("export-img").setSection("pane").onClick((async e=>{this.getScene&&this.file&&(this.exportDialog||(this.exportDialog=new ExportDialog(this.plugin,this,this.file),this.exportDialog.createForm()),this.exportDialog.open())})).setSection("pane")})).addItem((e=>{e.setTitle(t$d("INSTALL_SCRIPT_BUTTON")).setIcon("ScriptEngine").setSection("pane").onClick((()=>{new ScriptInstallPrompt(this.plugin).open()}))})),super.onPaneMenu(e,t)}async getLibrary(){var e;const t=this.plugin.getStencilLibrary();return(null==t?void 0:t.library)?t.library:null!==(e=null==t?void 0:t.libraryItems)&&void 0!==e?e:[]}async instantiateExcalidraw(e){for(;!this.semaphores.scriptsReady;)await sleep(50);const t=this.plugin.getPackage(this.ownerWindow).react,A=this.plugin.getPackage(this.ownerWindow).reactDOM;this.clearDirty();const i=t.createElement((()=>{const A=t.useRef(null),i=t.useRef(null),n=t.useRef(null),[a,r]=t.useState({width:void 0,height:void 0});let s=null,o=null,l=null,c=Date.now(),d=!1;this.toolsPanelRef=i,this.iframeMenuRef=n,this.obsidianMenu=new ObsidianMenu(this.plugin,i,this),this.iframeMenu=new IFrameMenu(this,n);const h=()=>{let e,t;const A=new Promise(((A,i)=>{e=A,t=i}));return A.resolve=e,A.reject=t,A},u=t.useMemo((()=>({current:{readyPromise:h()}})),[]);t.useEffect((()=>{u.current.readyPromise.then((e=>{this.excalidrawAPI=e,e.setLocalFont(this.plugin.settings.experimentalEnableFourthFont),setTimeout((()=>{var e,t,A;this.onAfterLoadScene(),this.excalidrawContainer=null===(t=null===(e=this.excalidrawWrapperRef)||void 0===e?void 0:e.current)||void 0===t?void 0:t.firstElementChild,null===(A=this.excalidrawContainer)||void 0===A||A.focus()}))}))}),[u]),this.excalidrawRef=u,this.excalidrawWrapperRef=A,t.useEffect((()=>{r({width:this.contentEl.clientWidth,height:this.contentEl.clientHeight});const e=()=>{try{const e=this.contentEl.clientWidth,t=this.contentEl.clientHeight;if(0===e||0===t)return;r({width:e,height:t}),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.updatePosition(),this.ownerDocument!==document&&this.refresh()}catch(e){errorlog({where:"Excalidraw React-Wrapper, onResize",error:e})}};return this.ownerWindow.addEventListener("resize",e),()=>{var t;return null===(t=this.ownerWindow)||void 0===t?void 0:t.removeEventListener("resize",e)}}),[A]),this.getSelectedTextElement=()=>{var e;const t=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!t)return{id:null,text:null};if(t.getAppState().viewModeEnabled){if(s){const e=s;return s=null,e}return{id:null,text:null}}const A=t.getSceneElements().filter((e=>e.id===Object.keys(t.getAppState().selectedElementIds)[0]));if(0===A.length)return{id:null,text:null};if("text"===A[0].type)return{id:A[0].id,text:A[0].text};if(["image","arrow"].contains(A[0].type))return{id:null,text:null};const i=null===(e=A[0].boundElements)||void 0===e?void 0:e.filter((e=>"text"===e.type));if((null==i?void 0:i.length)>0){const e=t.getSceneElements().filter((e=>e.id===i[0].id));if(e.length>0)return{id:e[0].id,text:e[0].text}}if(0===A[0].groupIds.length)return{id:null,text:null};const n=A[0].groupIds[0],a=t.getSceneElements().filter((e=>{var t;return null===(t=e.groupIds)||void 0===t?void 0:t.includes(n)})).filter((e=>"text"===e.type));return 0===a.length?{id:null,text:null}:{id:A[0].id,text:A[0].text}},this.getSelectedImageElement=()=>{const e=this.excalidrawAPI;if(!e)return{id:null,fileId:null};if(e.getAppState().viewModeEnabled){if(o){const e=o;return o=null,e}return{id:null,fileId:null}}const t=e.getSceneElements().filter((t=>t.id==Object.keys(e.getAppState().selectedElementIds)[0]));if(0===t.length)return{id:null,fileId:null};if("image"==t[0].type)return{id:t[0].id,fileId:t[0].fileId};if("text"===t[0].type)return{id:null,fileId:null};if(0===t[0].groupIds.length)return{id:null,fileId:null};const A=t[0].groupIds[0],i=e.getSceneElements().filter((e=>{var t;return null===(t=e.groupIds)||void 0===t?void 0:t.includes(A)})).filter((e=>"image"==e.type));return 0===i.length?{id:null,fileId:null}:{id:i[0].id,fileId:i[0].fileId}},this.getSelectedElementWithLink=()=>{const e=this.excalidrawAPI;if(!e)return{id:null,text:null};if(e.getAppState().viewModeEnabled){if(l){const e=l;return l=null,e}return{id:null,text:null}}const t=e.getSceneElements().filter((t=>t.id==Object.keys(e.getAppState().selectedElementIds)[0]));if(0===t.length)return{id:null,text:null};if(t[0].link)return{id:t[0].id,text:t[0].link};if(0===t[0].groupIds.length)return{id:null,text:null};const A=t[0].groupIds[0],i=e.getSceneElements().filter((e=>{var t;return null===(t=e.groupIds)||void 0===t?void 0:t.includes(A)})).filter((e=>e.link));return 0===i.length?{id:null,text:null}:{id:i[0].id,text:i[0].link}},this.addText=async(e,t,A=!0)=>{var i,n,a,r,s;const o=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!o)return;const l=o.getAppState(),c=this.plugin.ea.getAPI(this);c.style.strokeColor=null!==(i=l.currentItemStrokeColor)&&void 0!==i?i:"black",c.style.opacity=null!==(n=l.currentItemOpacity)&&void 0!==n?n:1,c.style.fontFamily=null!==(a=null!=t?t:l.currentItemFontFamily)&&void 0!==a?a:1,c.style.fontSize=null!==(r=l.currentItemFontSize)&&void 0!==r?r:20,c.style.textAlign=null!==(s=l.currentItemTextAlign)&&void 0!==s?s:"left";const{width:d,height:h}=l,g=viewportCoordsToSceneCoords({clientX:0,clientY:0},l),p=viewportCoordsToSceneCoords({clientX:d,clientY:h},l),m=g.x>this.currentPosition.x||p.xthis.currentPosition.y||p.y{const a=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!a)return!1;const r=e.filter((e=>"text"==e.type));for(let e=0;ee.id)),o=a.getSceneElements(),l=[];for(let t=0;te.id===A))[0],l.push(A))}const c=n?o.concat(e.filter((e=>!l.includes(e.id)))):e.filter((e=>!l.includes(e.id))).concat(o);if(this.updateScene({elements:c,commitToHistory:!0},!0),i&&Object.keys(i).length>0){const e=[];Object.keys(i).forEach((t=>{if(e.push({mimeType:i[t].mimeType,id:i[t].id,dataURL:i[t].dataURL,created:i[t].created}),i[t].file||i[t].isHyperlink){const e=new EmbeddedFile(this.plugin,this.file.path,i[t].isHyperlink?i[t].hyperlink:i[t].file),A=a.getAppState();e.setImage(i[t].dataURL,i[t].mimeType,i[t].size,"dark"===A.theme,i[t].hasSVGwithBitmap),this.excalidrawData.setFile(i[t].id,e)}i[t].latex&&this.excalidrawData.setEquation(i[t].id,{latex:i[t].latex,isLoaded:!0})})),a.addFiles(e)}return a.updateContainerSize(a.getSceneElements().filter((e=>s.includes(e.id))).filter(isContainer)),A?await this.save(!1):this.setDirty(5),!0},this.getScene=e=>{const t=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!t)return null;const A=e?this.getViewSelectedElements():t.getSceneElements(),i=t.getAppState(),n=Object.assign({},t.getFiles());if(n){const e=A.filter((e=>"image"===e.type)).map((e=>e.fileId)),t=Object.keys(n).filter((t=>!e.contains(t)));t.forEach((e=>delete n[e]))}return{type:"excalidraw",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,elements:A,appState:{theme:i.theme,viewBackgroundColor:i.viewBackgroundColor,currentItemStrokeColor:i.currentItemStrokeColor,currentItemBackgroundColor:i.currentItemBackgroundColor,currentItemFillStyle:i.currentItemFillStyle,currentItemStrokeWidth:i.currentItemStrokeWidth,currentItemStrokeStyle:i.currentItemStrokeStyle,currentItemRoughness:i.currentItemRoughness,currentItemOpacity:i.currentItemOpacity,currentItemFontFamily:i.currentItemFontFamily,currentItemFontSize:i.currentItemFontSize,currentItemTextAlign:i.currentItemTextAlign,currentItemStartArrowhead:i.currentItemStartArrowhead,currentItemEndArrowhead:i.currentItemEndArrowhead,scrollX:i.scrollX,scrollY:i.scrollY,zoom:i.zoom,currentItemRoundness:i.currentItemRoundness,gridSize:i.gridSize,colorPalette:i.colorPalette,currentStrokeOptions:i.currentStrokeOptions,previousGridSize:i.previousGridSize},prevTextMode:this.prevTextMode,files:n}},this.refresh=()=>{if(0===this.contentEl.clientWidth||0===this.contentEl.clientHeight)return;const e=this.excalidrawAPI;(null==u?void 0:u.current)&&e&&e.refresh()};let g={x:0,y:0},p=null;this.clearHoverPreview=()=>{if(p){const e=new MouseEvent("click",{view:this.ownerWindow,bubbles:!0,cancelable:!0});p.dispatchEvent(e),p=null}};const m=e=>{var t,A,i,n,a;const r=null===(t=app.dragManager.draggable)||void 0===t?void 0:t.files;return r&&r[0]==this.file&&(r.shift(),app.dragManager.draggable.title=`${r.length} files`),["file","files"].includes(null===(A=app.dragManager.draggable)||void 0===A?void 0:A.type)?"link":(null===(i=e.types)||void 0===i?void 0:i.includes("text/html"))||(null===(n=e.types)||void 0===n?void 0:n.includes("text/plain"))||(null===(a=e.types)||void 0===a?void 0:a.includes("Files"))?"copy":void 0};let w=!1;const f=()=>{if(s=getTextElementAtPointer(this.currentPosition,this),s&&s.id){const e=new MouseEvent("click",{ctrlKey:!(DEVICE.isIOS||DEVICE.isMacOS)||this.modifierKeyDown.ctrlKey,metaKey:DEVICE.isIOS||DEVICE.isMacOS||this.modifierKeyDown.metaKey,shiftKey:this.modifierKeyDown.shiftKey,altKey:this.modifierKeyDown.altKey});return this.handleLinkClick(e),void(s=null)}if(o=getImageElementAtPointer(this.currentPosition,this),o&&o.id){const e=new MouseEvent("click",{ctrlKey:!(DEVICE.isIOS||DEVICE.isMacOS)||this.modifierKeyDown.ctrlKey,metaKey:DEVICE.isIOS||DEVICE.isMacOS||this.modifierKeyDown.metaKey,shiftKey:this.modifierKeyDown.shiftKey,altKey:this.modifierKeyDown.altKey});return this.handleLinkClick(e),void(o=null)}if(l=getElementWithLinkAtPointer(this.currentPosition,this),l&&l.id){const e=new MouseEvent("click",{ctrlKey:!(DEVICE.isIOS||DEVICE.isMacOS)||this.modifierKeyDown.ctrlKey,metaKey:DEVICE.isIOS||DEVICE.isMacOS||this.modifierKeyDown.metaKey,shiftKey:this.modifierKeyDown.shiftKey,altKey:this.modifierKeyDown.altKey});return this.handleLinkClick(e),void(l=null)}};let E=null;const B=(e,t)=>{var A,i;if(!E)return;if(null===(i=null===(A=this.excalidrawAPI)||void 0===A?void 0:A.getAppState())||void 0===i?void 0:i.editingElement)return;if(this.semaphores.wheelTimeout)return;if(!e){if(!this.currentPosition)return;e="";const A=getTextElementAtPointer(this.currentPosition,this);if(A&&A.text){t=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A.id))[0];const i=this.textMode===TextMode.parsed?this.excalidrawData.getRawText(A.id):A.text;if(!i)return;if(i.match(REG_LINKINDEX_HYPERLINK))return;const n=REGEX_LINK.getRes(i).next();if(!n.value)return;if((e=REGEX_LINK.getLink(n)).match(REG_LINKINDEX_HYPERLINK))return}else{const A=getImageElementAtPointer(this.currentPosition,this);if(t=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A.id))[0],!A||!A.fileId)return;if(!this.excalidrawData.hasFile(A.fileId))return;const i=this.excalidrawData.getFile(A.fileId);if(i.isHyperlink)return;if(IMAGE_TYPES.contains(i.file.extension))return;if("pdf"===i.file.extension.toLowerCase())return;if(this.plugin.ea.isExcalidrawFile(i.file))return;const n=i.linkParts.ref?`#${i.linkParts.isBlockRef?"^":""}${i.linkParts.ref}`:"";e=i.file.path+n}}if(this.getHookServer().onLinkHoverHook)try{if(!this.getHookServer().onLinkHoverHook(t,e,this,this.getHookServer()))return}catch(e){errorlog({where:"ExcalidrawView.showHoverPreview",fn:this.getHookServer().onLinkHoverHook,error:e})}if(this.semaphores.hoverSleep)return;const n=app.metadataCache.getFirstLinkpathDest(e.split("#")[0],this.file.path);if(!n)return;if(this.ownerDocument.querySelector(`div.popover-title[data-path="${n.path}"]`))return;this.semaphores.hoverSleep=!0;const a=this;if(setTimeout((()=>a.semaphores.hoverSleep=!1),500),this.plugin.hover.linkText=e,this.plugin.hover.sourcePath=this.file.path,p=this.contentEl,app.workspace.trigger("hover-link",{event:E,source:"excalidraw",hoverParent:p,targetEl:p,linktext:this.plugin.hover.linkText,sourcePath:this.plugin.hover.sourcePath}),g=this.currentPosition,this.isFullscreen()){const e=this;setTimeout((()=>{var t,A,i,a;const r=null!==(a=null===(i=null===(A=null===(t=this.ownerDocument.querySelector(`div.popover-title[data-path="${n.path}"]`))||void 0===t?void 0:t.parentElement)||void 0===A?void 0:A.parentElement)||void 0===i?void 0:i.parentElement)&&void 0!==a?a:this.ownerDocument.body.querySelector("div.popover");r&&e.contentEl.append(r)}),400)}},{Excalidraw:b,MainMenu:v,WelcomeScreen:C}=this.plugin.getPackage(this.ownerWindow).excalidrawLib,y=t.createElement("div",{className:"excalidraw-wrapper",ref:A,key:"abc",tabIndex:0,onKeyDown:e=>{e.target!==y.ref.current&&(this.isFullscreen()&&e.keyCode===KEYCODE.ESC&&this.exitFullscreen(),!isCTRL(e)||isSHIFT(e)||isALT(e)||B())},onPointerDown:e=>{(isCTRL(e)||isMETA(e))&&(!this.plugin.settings.allowCtrlClick&&isMETA(e)||setTimeout((()=>{(this.getSelectedTextElement().id||this.getSelectedImageElement().id||this.getSelectedElementWithLink().id)&&this.handleLinkClick(e)})))},onMouseMove:e=>{E=e.nativeEvent},onMouseOver:()=>{this.clearHoverPreview()},onDragOver:e=>{const t=m(e.dataTransfer);if(t){this.draginfoDiv||(this.draginfoDiv=createDiv({cls:"excalidraw-draginfo"}),this.ownerDocument.body.appendChild(this.draginfoDiv));let A="";if(app.dragManager.draggable)switch(internalDragModifierType(e)){case"image":A="Embed image";break;case"image-fullsize":A="Embed image @100%";break;case"link":A="Insert link\n"+(DEVICE.isMacOS||DEVICE.isIOS?"try SHIFT and CTRL combinations for other drop actions":"try SHIFT, CTRL, ALT combinations for other drop actions");break;case"iframe":A="Insert in interactive frame"}else if(1===e.dataTransfer.types.length&&e.dataTransfer.types.includes("Files"))A="External file";else switch(externalDragModifierType(e)){case"image-import":A="Import image to Vault";break;case"image-url":A="Insert image/thumbnail with URL\n"+(DEVICE.isMacOS||DEVICE.isIOS?"try SHIFT, OPT, CTRL combinations for other drop actions":"try SHIFT, CTRL, ALT combinations for other drop actions");break;case"insert-link":A="Insert link";break;case"iframe":A="Insert in interactive frame"}this.draginfoDiv.innerText!==A&&(this.draginfoDiv.innerText=A);const i=e.clientY-8*parseFloat(getComputedStyle(this.draginfoDiv).fontSize)+"px",n=e.clientX-this.draginfoDiv.clientWidth/2+"px";return this.draginfoDiv.style.top!==i&&(this.draginfoDiv.style.top=i),this.draginfoDiv.style.left!==n&&(this.draginfoDiv.style.left=n),e.dataTransfer.dropEffect=t,e.preventDefault(),!1}},onDragLeave:()=>{this.draginfoDiv&&(this.ownerDocument.body.removeChild(this.draginfoDiv),delete this.draginfoDiv)}},t.createElement(b,{ref:u,width:a.width,height:a.height,UIOptions:{canvasActions:{loadScene:!1,saveScene:!1,saveAsScene:!1,export:!1,saveAsImage:!1,saveToActiveFile:!1}},initState:null==e?void 0:e.appState,initialData:e,detectScroll:!0,onPointerUpdate:e=>{if(this.currentPosition=e.pointer,p&&(Math.abs(g.x-e.pointer.x)>50||Math.abs(g.y-e.pointer.y)>50)&&this.clearHoverPreview(),w){if(!d&&"down"===e.button){if(d=!0,isCTRL(this.modifierKeyDown)||isMETA(this.modifierKeyDown))return void f();const e=Date.now();return e-c<600&&e-c>40&&f(),void(c=e)}"up"===e.button&&(d=!1),(isCTRL(this.modifierKeyDown)||this.excalidrawAPI.getAppState().isViewModeEnabled&&this.plugin.settings.hoverPreviewWithoutCTRL)&&B()}},libraryReturnUrl:"app://obsidian.md",autoFocus:!0,onChange:(e,t)=>{var A,i,n,a;const r=()=>{if(setTimeout((()=>this.updateScene({appState:{gridColor:this.getGridColor(t.viewBackgroundColor)}}))),setDynamicStyle(this.plugin.ea,this,t.viewBackgroundColor,this.plugin.settings.dynamicStyling),this.plugin.ea.onCanvasColorChangeHook)try{this.plugin.ea.onCanvasColorChangeHook(this.plugin.ea,this,t.viewBackgroundColor)}catch(e){errorlog({where:r,source:this.plugin.ea.onCanvasColorChangeHook,error:e,message:"ea.onCanvasColorChangeHook exception"})}};if(w=t.viewModeEnabled,this.semaphores.justLoaded){if((null!==(a=null===(n=null===(i=null===(A=this.excalidrawData)||void 0===A?void 0:A.scene)||void 0===i?void 0:i.elements)||void 0===n?void 0:n.length)&&void 0!==a?a:0)>0&&0===e.length)return;return this.semaphores.justLoaded=!1,!this.semaphores.preventAutozoom&&this.plugin.settings.zoomToFitOnOpen&&this.zoomToFit(!1,!0),this.previousSceneVersion=this.getSceneVersion(e),this.previousBackgroundColor=t.viewBackgroundColor,this.previousTheme=t.theme,void r()}if(t.theme!==this.previousTheme&&this.file===this.excalidrawData.file&&(this.previousTheme=t.theme,this.setDirty(5)),t.viewBackgroundColor!==this.previousBackgroundColor&&this.file===this.excalidrawData.file&&(this.previousBackgroundColor=t.viewBackgroundColor,this.setDirty(6),this.colorChangeTimer&&clearTimeout(this.colorChangeTimer),this.colorChangeTimer=setTimeout((()=>{r(),this.colorChangeTimer=null}),50)),!this.semaphores.dirty&&null===t.editingElement&&null===t.editingLinearElement){const t=this.getSceneVersion(e);(t>0||0===t&&e.length>0)&&t!==this.previousSceneVersion&&(this.previousSceneVersion=t,this.setDirty(6))}},onLibraryChange:e=>{(async()=>{const t={type:"excalidrawlib",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,libraryItems:e};this.plugin.setStencilLibrary(t),await this.plugin.saveSettings()})()},renderTopRightUI:(e,t)=>this.obsidianMenu.renderButton(e,t),renderIFrameMenu:e=>this.iframeMenu.renderButtons(e),onPaste:e=>{if(e&&e.text&&hyperlinkIsImage(e.text))return this.addImageWithURL(e.text),!1;if(e.elements){const e=this;setTimeout((()=>e.save(!1)),300)}return!0},onThemeChange:async e=>{var t;this.excalidrawData.scene.appState.theme=e,this.loadSceneFiles(),null===(t=null==i?void 0:i.current)||void 0===t||t.setTheme(e),setDynamicStyle(this.plugin.ea,this,this.previousBackgroundColor,this.plugin.settings.dynamicStyling)},ownerDocument:this.ownerDocument,ownerWindow:this.ownerWindow,onDrop:e=>{this.draginfoDiv&&(this.ownerDocument.body.removeChild(this.draginfoDiv),delete this.draginfoDiv);const t=this.excalidrawAPI;if(!t)return!1;const A=t.getAppState();this.currentPosition=viewportCoordsToSceneCoords({clientX:e.clientX,clientY:e.clientY},A);const i=app.dragManager.draggable,n=internalDragModifierType(e),a=externalDragModifierType(e),r=(t,A,n)=>{if(!this.getHookServer().onDropHook)return!1;try{return this.getHookServer().onDropHook({ea:this.getHookServer(),event:e,draggable:i,type:t,payload:{files:A,text:n},excalidrawFile:this.file,view:this,pointerPosition:this.currentPosition})}catch(e){return new obsidian_module.Notice("on drop hook error. See console log for details"),errorlog({where:"ExcalidrawView.onDrop",error:e}),!1}};switch(null==i?void 0:i.type){case"file":if(!r("file",[i.file],null)){const e=i.file;if(e.path.match(REG_LINKINDEX_INVALIDCHARS))return new obsidian_module.Notice(t$d("FILENAME_INVALID_CHARS"),4e3),!1;if(["image","image-fullsize"].contains(n)&&(IMAGE_TYPES.contains(e.extension)||"md"===e.extension||"pdf"===e.extension.toLowerCase()))return"pdf"===e.extension.toLowerCase()?new InsertPDFModal(this.plugin,this).open(e):(async()=>{const t=getEA(this);t.selectElementsInView([await insertImageToView(t,this.currentPosition,e,!("image-fullsize"===n))])})(),!1;if("iframe"===n)return(async()=>{const t=getEA(this);t.selectElementsInView([await insertIFrameToView(t,this.currentPosition,e)])})(),!1;this.addText(`[[${app.metadataCache.fileToLinktext(i.file,this.file.path,!0)}]]`)}return!1;case"files":return r("file",i.files,null)||(async()=>{if(["image","image-fullsize"].contains(n)){const e=getEA(this);e.canvas.theme=t.getAppState().theme;let A=0;const a=[];for(const t of i.files)(IMAGE_TYPES.contains(t.extension)||"md"===t.extension)&&(a.push(await e.addImage(this.currentPosition.x+50*A,this.currentPosition.y+50*A,t,!("image-fullsize"===n))),A++,await e.addElementsToView(!1,!1,!0),e.selectElementsInView(a)),"pdf"===t.extension.toLowerCase()&&new InsertPDFModal(this.plugin,this).open(t)}else{if("iframe"===n){const e=getEA(this);let t=0,A=0;const n=[];for(const a of i.files)n.push(await insertIFrameToView(e,{x:this.currentPosition.x+500*t,y:this.currentPosition.y+550*A},a)),t=(t+1)%3,0===t&&A++;return!1}for(const e of i.files)await this.addText(`[[${app.metadataCache.fileToLinktext(e,this.file.path,!0)}]]`,void 0,!1),this.currentPosition.y+=2*A.currentItemFontSize;this.save(!1)}})(),!1}if(e.dataTransfer.types.includes("Files")){if(e.dataTransfer.types.includes("text/plain")){const t=e.dataTransfer.getData("text");if(t&&r("text",null,t))return!1;if(t&&"image-url"===a&&hyperlinkIsImage(t))return this.addImageWithURL(t),!1;if(t&&"insert-link"===a)return this.plugin.settings.iframelyAllowed&&t.match(/^https?:\/\/\S*$/)?(this.addTextWithIframely(t),!1):(this.addText(t),!1);if(t&&"iframe"===a)return insertIFrameToView(getEA(this),this.currentPosition,void 0,t),!1}if(e.dataTransfer.types.includes("text/html")){const t=e.dataTransfer.getData("text/html").match(/src=["']([^"']*)["']/);if(t&&"image-url"===a&&hyperlinkIsImage(t[1]))return this.addImageWithURL(t[1]),!1;if(t&&"insert-link"===a)return this.plugin.settings.iframelyAllowed&&t[1].match(/^https?:\/\/\S*$/)?(this.addTextWithIframely(t[1]),!1):(this.addText(t[1]),!1);if(t&&"iframe"===a)return insertIFrameToView(getEA(this),this.currentPosition,void 0,t[1]),!1}return!0}if(e.dataTransfer.types.includes("text/plain")||e.dataTransfer.types.includes("text/uri-list")||e.dataTransfer.types.includes("text/html")){const t=e.dataTransfer.getData("text/html").match(/src=["']([^"']*)["']/),A=t?t[1]:"",i=e.dataTransfer.getData("text"),n=e.dataTransfer.getData("text/uri-list");let s=t?A:i;if(s&&""!==s||(s=n),!s||""===s)return!0;if(!r("text",null,s)){if(s&&"iframe"===a&&/^(blob:)?(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(s))return!0;if(s&&"image-url"===a&&hyperlinkIsYouTubeLink(s))return this.addYouTubeThumbnail(s),!1;if(n&&"image-url"===a&&hyperlinkIsYouTubeLink(n))return this.addYouTubeThumbnail(n),!1;if(s&&"image-url"===a&&hyperlinkIsImage(s))return this.addImageWithURL(s),!1;if(n&&"image-url"===a&&hyperlinkIsImage(n))return this.addImageWithURL(n),!1;if(s&&"image-import"===a&&hyperlinkIsImage(s))return this.addImageSaveToVault(s),!1;if(n&&"image-import"===a&&hyperlinkIsImage(n))return this.addImageSaveToVault(n),!1;if(this.plugin.settings.iframelyAllowed&&s.match(/^https?:\/\/\S*$/))return this.addTextWithIframely(s),!1;if(s.startsWith("obsidian://open?vault=")){const t=e.dataTransfer.getData("text/html");if(t){const e=t.match(/href="app:\/\/obsidian\.md\/(.*?)"/);if(2===e.length){const t=decodeURIComponent(e[1]).split("#"),A=app.vault.getAbstractFileByPath(t[0]);if(A&&A instanceof obsidian_module.TFile){const e=app.metadataCache.fileToLinktext(A,this.file.path);return void this.addText(`[[${e+(t.length>1?"#"+t[1]+"|"+e:"")}]]`)}return this.addText(`[[${decodeURIComponent(e[1])}]]`),!1}}const A=s.split("file=");if(2===A.length)return this.addText(`[[${decodeURIComponent(A[1])}]]`),!1}this.addText(s.replace(/(!\[\[.*#[^\]]*\]\])/g,"$1{40}"))}return!1}return!r("unknown",null,null)},onBeforeTextEdit:e=>{var t;if(clearTimeout(this.isEditingTextResetTimer),this.isEditingTextResetTimer=null,this.semaphores.isEditingText=!0,this.compatibilityMode)return null!==(t=e.originalText)&&void 0!==t?t:e.text;return this.excalidrawData.getRawText(e.id)||e.rawText},onBeforeTextSubmit:(e,t,A,i)=>{const n=this.excalidrawAPI;if(!n)return[null,null,null];const a="PASTING EXCALIDRAW ELEMENTS AS A TEXT ELEMENT IS NOT ALLOWED";if(t.startsWith('{"type":"excalidraw/clipboard","elements":[{"'))return setTimeout((()=>{const t=this.excalidrawAPI.getSceneElements(),A=t.filter((t=>t.id===e.id));if(1===A.length){const e=cloneElement(A[0]);e.rawText=a,t[t.indexOf(A[0])]=e,this.excalidrawData.setTextElement(e.id,a,a,(()=>{})),this.updateScene({elements:t}),n.history.clear()}})),[a,a,null];if(this.semaphores.isEditingText=!0,this.isEditingTextResetTimer=setTimeout((()=>{this.semaphores.isEditingText=!1,this.isEditingTextResetTimer=null}),1500),i)return this.excalidrawData.deleteTextElement(e.id),this.setDirty(7),[null,null,null];const r=e.containerId;if(t!==e.text||A!==e.originalText||!this.excalidrawData.getRawText(e.id)){this.setDirty(8);const[i,a,s]=this.excalidrawData.setTextElement(e.id,t,A,(async(t,A)=>{var i,a;if(this.textMode===TextMode.raw)return;const r=this.excalidrawAPI.getSceneElements(),s=r.filter((t=>t.id===e.id));if(1===s.length){const e=cloneElement(s[0]),o=s[0].containerId?null===(a=null===(i=n.getSceneElements().filter((e=>e.id===s[0].containerId)))||void 0===i?void 0:i[0])||void 0===a?void 0:a.type:void 0;this.excalidrawData.updateTextElement(e,t,A,!0,o),r[r.indexOf(s[0])]=e,this.updateScene({elements:r}),e.containerId&&this.updateContainerSize(e.containerId)}n.history.clear()}));return i?(r&&this.updateContainerSize(r,!0),this.textMode===TextMode.raw?[t,A,s]:t===i?s?[i,a,s]:[null,null,null]:(n.history.clear(),[i,a,s])):[null,null,null]}return r&&this.updateContainerSize(r,!0),this.textMode===TextMode.parsed?this.excalidrawData.getParsedText(e.id):[null,null,null]},onLinkOpen:async(e,t)=>{var A;if(t.preventDefault(),!e)return;let i=e.link;if(!i||""===i)return;setTimeout((()=>this.removeLinkTooltip()),500);let n=null===(A=null==t?void 0:t.detail)||void 0===A?void 0:A.nativeEvent;if(!this.handleLinkHookCall(e,e.link,n)&&!this.openExternalLink(e.link,isSHIFT(n)||isCTRL(n)||isMETA(n)||isALT(n)?void 0:e)){if("text"===e.type){const t=e.rawText.replaceAll("\n","");REGEX_LINK.getResList(t).filter((e=>Boolean(e.value))).length>1&&(i=t)}n.shiftKey||n.ctrlKey||n.metaKey||n.altKey||(n={shiftKey:!0,ctrlKey:!1,metaKey:!1,altKey:!1}),this.linkClick(n,null,null,{id:e.id,text:i},emulateCTRLClickForLinks(n))}},onLinkHover:(e,t)=>{if(e&&(this.plugin.settings.hoverPreviewWithoutCTRL||isCTRL(t))){E=t,E.ctrlKey=!(DEVICE.isIOS||DEVICE.isMacOS)||E.ctrlKey,E.metaKey=DEVICE.isIOS||DEVICE.isMacOS||E.metaKey;const A=e.link;if(!A||""===A)return;if(A.startsWith("[[")){const t=A.match(/\[\[(?.*?)\]\]/);if(!t)return;let i=t.groups.link;B(i,e)}}},onViewModeChange:e=>{var t,A;if(this.semaphores.viewunload||null===(A=null===(t=this.toolsPanelRef)||void 0===t?void 0:t.current)||void 0===A||A.setExcalidrawViewMode(e),this.getHookServer().onViewModeChangeHook)try{this.getHookServer().onViewModeChangeHook(e,this,this.getHookServer())}catch(e){errorlog({where:"ExcalidrawView.onViewModeChange",fn:this.getHookServer().onViewModeChangeHook,error:e})}},validateIFrame:!0,renderWebview:DEVICE.isDesktop,renderCustomIFrame:(e,A,i)=>{try{const n=useDefaultExcalidrawFrame(e);if(!this.file||!e||!e.link||0===e.link.length||n)return null;if(e.link.match(REG_LINKINDEX_HYPERLINK))return n?null:renderWebView(e.link,A,this,e.id,i);const a=REGEX_LINK.getRes(e.link).next();if(!a||!a.value&&a.done)return null;let r=REGEX_LINK.getLink(a);return r.match(REG_LINKINDEX_HYPERLINK)?n?null:renderWebView(r,A,this,e.id,i):t.createElement(CustomIFrame,{element:e,radius:A,view:this,appState:i,linkText:r})}catch(e){return null}}},t.createElement(v,{},t.createElement(v.DefaultItems.ChangeCanvasBackground),t.createElement(v.DefaultItems.ToggleTheme),t.createElement(v.Separator),DEVICE.isPhone?null:t.createElement(v.Item,{icon:ICONS.trayMode,"aria-label":"Tray-mode offers an alternative, more spacious canvas",onSelect:()=>{this.toggleTrayMode()}},"Toggle tray-mode"),t.createElement(v.Item,{icon:saveIcon(!1),"aria-label":t$d("FORCE_SAVE"),onSelect:()=>{this.forceSave()}},"Save"),t.createElement(v.Item,{icon:ICONS.scriptEngine,"aria-label":"Explore the Excalidraw Script Library",onSelect:()=>{new ScriptInstallPrompt(this.plugin).open()}},"Script Library"),t.createElement(v.Item,{icon:ICONS.ExportImage,"aria-label":"Export image as PNG, SVG, or Excalidraw file",onSelect:()=>{this.exportDialog||(this.exportDialog=new ExportDialog(this.plugin,this,this.file),this.exportDialog.createForm()),this.exportDialog.open()}},"Export Image..."),t.createElement(v.Item,{icon:ICONS.switchToMarkdown,"aria-label":"Switch to markdown view",onSelect:()=>{this.openAsMarkdown()}},"Open as Markdown"),t.createElement(v.Separator),t.createElement(v.DefaultItems.Help),t.createElement(v.DefaultItems.ClearCanvas)),t.createElement(C,{},t.createElement(C.Center,{},t.createElement(C.Center.Logo),t.createElement(C.Center.Heading,{},'Type "Excalidraw" in the Command Palette',t.createElement("br"),"Explore the Obsidian Menu in the top right",t.createElement("br"),"Visit the Script Library",t.createElement("br"),"Find help in the hamburger-menu"),t.createElement(C.Center.Menu,{},t.createElement(C.Center.MenuItemLink,{icon:ICONS.YouTube,href:"https://www.youtube.com/@VisualPKM",shortcut:null,"aria-label":"Visual PKM YouTube Channel"}," Check out the Visual PKM YouTube channel."),t.createElement(C.Center.MenuItemLink,{icon:ICONS.Discord,href:"https://discord.gg/DyfAXFwUHc",shortcut:null,"aria-label":"Join the Visual Thinking Discord Server"}," Join the Visual Thinking Discord Server"),t.createElement(C.Center.MenuItemLink,{icon:ICONS.twitter,href:"https://twitter.com/zsviczian",shortcut:null,"aria-label":"Follow me on Twitter"}," Follow me on Twitter"),t.createElement(C.Center.MenuItemLink,{icon:ICONS.heart,href:"https://ko-fi.com/zsolt",shortcut:null,"aria-label":"Donate to support Excalidraw-Obsidian"},' Say "Thank You" & support the plugin.'))))),t.createElement(ToolsPanel,{ref:i,visible:!1,view:this,centerPointer:()=>{const e=this.excalidrawAPI;if(!u||!u.current||!e)return;const t=e.getAppState(),{width:A,height:i}=t;this.currentPosition=viewportCoordsToSceneCoords({clientX:A/2,clientY:i/2},t)}})),F=t.useRef(new ResizeObserver((e=>{if(!i||!i.current)return;const{width:t,height:A}=e[0].contentRect;if(0===t||0===A)return;const n=i.current.onRightEdge?i.current.previousWidth-t:0,a=i.current.onBottomEdge?i.current.previousHeight-A:0;i.current.updatePosition(a,n)})));return t.useEffect((()=>((null==i?void 0:i.current)&&F.current.observe(i.current.containerRef.current),()=>{F.current.unobserve(i.current.containerRef.current)})),[i,F]),t.createElement(t.Fragment,null,y)}));A.createRoot(this.contentEl).render(i)}updateContainerSize(e,t=!1){const A=this.excalidrawAPI;if(!A)return;const i=()=>{const t=e?A.getSceneElements().filter((t=>t.id===e&&"arrow"!==t.type)):A.getSceneElements().filter(isContainer);t.length>0&&(this.initialContainerSizeUpdate&&(this.semaphores.justLoaded=!0),A.updateContainerSize(t)),this.initialContainerSizeUpdate=!1};t?setTimeout((()=>i()),50):i()}zoomToFit(e=!0,t=!1){if(document.body.querySelector("div.modal-container"))return;const A=this.excalidrawAPI;if(!A||!this.excalidrawRef||this.semaphores.isEditingText||this.semaphores.preventAutozoom)return;const i=this.plugin.settings.zoomToFitMaxLevel,n=A.getSceneElements().filter((e=>e.width<1e4&&e.height<1e4));app.isMobile&&n.length>1e3||n.length>2500?t&&A.scrollToContent():e?setTimeout((()=>A.zoomToFit(n,i,this.isFullscreen()?0:.05)),100):A.zoomToFit(n,i,this.isFullscreen()?0:.05)}updatePinnedScripts(){const e=this.excalidrawAPI;if(!e)return!1;e.updateScene({appState:{pinnedScripts:this.plugin.settings.pinnedScripts}})}updatePinnedCustomPens(){const e=this.excalidrawAPI;if(!e)return!1;e.updateScene({appState:{customPens:this.plugin.settings.customPens.slice(0,this.plugin.settings.numberOfCustomPens)}})}updatePinchZoom(){const e=this.excalidrawAPI;if(!e)return!1;e.updateScene({appState:{allowPinchZoom:this.plugin.settings.allowPinchZoom}})}updateWheelZoom(){const e=this.excalidrawAPI;if(!e)return!1;e.updateScene({appState:{allowWheelZoom:this.plugin.settings.allowWheelZoom}})}async toggleTrayMode(){const e=this.excalidrawAPI;if(!e)return!1;const t=e.getAppState();e.updateScene({appState:{trayModeEnabled:!t.trayModeEnabled}}),await this.plugin.loadSettings(),this.plugin.settings.defaultTrayMode=!t.trayModeEnabled,this.plugin.saveSettings()}selectElementsMatchingQuery(e,t,A=!0,i=!1,n=!1){let a=getTextElementsMatchingQuery(e.filter((e=>"text"===e.type)),t,i).concat(getFrameElementsMatchingQuery(e.filter((e=>"frame"===e.type)),t,i));if(0!==a.length){if(n){const t=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],e);t.length>0&&(a=t)}this.zoomToElements(A,a)}else new obsidian_module.Notice("I could not find a matching text element")}zoomToElements(e,t){const A=this.excalidrawAPI;if(!A)return;const i=this.plugin.settings.zoomToFitMaxLevel;e&&A.selectElements(t),A.zoomToFit(t,i,.05)}getViewSelectedElements(){var e;const t=this.excalidrawAPI;if(!t)return[];const A=null===(e=t.getAppState())||void 0===e?void 0:e.selectedElementIds;if(!A)return[];const i=Object.keys(A);if(!i)return[];const n=t.getSceneElements().filter((e=>i.includes(e.id))),a=n.filter((e=>e.boundElements&&e.boundElements.filter((e=>"text"===e.type)).length>0)).map((e=>e.boundElements.filter((e=>"text"===e.type)).map((e=>e.id))[0])),r=n.map((e=>e.id)).concat(a);return t.getSceneElements().filter((e=>r.contains(e.id)))}async copyLinkToSelectedElementToClipboard(e){const t=this.getViewSelectedElements();if(t.length<1)return void new obsidian_module.Notice(t$d("INSERT_LINK_TO_ELEMENT_ERROR"));let A;if(2===t.length){const e=t.filter((e=>"text"===e.type));1===e.length&&e[0].containerId&&1===t.filter((e=>e.boundElements.some((e=>"text"===e.type)))).length&&(A=e[0].id)}A||(A=1===t.length?t[0].id:this.plugin.ea.getLargestElement(t).id);let i=[];if(t.some((e=>e.id===A&&"frame"===e.type)))switch(e){case"area=":case"group=":case"frame=":i=[{caption:"Frame",action:()=>{e="frame="}},{caption:"Link",action:()=>{e=""}}];break;default:i=[{caption:"Link",action:()=>{e=""}},{caption:"Frame",action:()=>{e="frame="}}]}else switch(e){case"area=":i=[{caption:"Area",action:()=>{e="area="}},{caption:"Link",action:()=>{e=""}},{caption:"Group",action:()=>{e="group="}}];break;case"group=":i=[{caption:"Group",action:()=>{e="group="}},{caption:"Link",action:()=>{e=""}},{caption:"Area",action:()=>{e="area="}}];break;default:i=[{caption:"Link",action:()=>{e=""}},{caption:"Area",action:()=>{e="area="}},{caption:"Group",action:()=>{e="group="}}]}const n=await ScriptEngine.inputPrompt(this,this.plugin,app,"Set link alias","Leave empty if you do not want to set an alias","",i);navigator.clipboard.writeText(`${e.length>0?"!":""}[[${this.file.path}#^${e}${A}${n?`|${n}`:""}]]`),new obsidian_module.Notice(t$d("INSERT_LINK_TO_ELEMENT_READY"))}updateScene(e,t=!1){const A=this.excalidrawAPI;if(!A)return;const i=e.elements&&t;i&&(e.elements=A.restore(e).elements);try{A.updateScene(e)}catch(t){if(errorlog({where:"ExcalidrawView.updateScene 1st attempt",fn:this.updateScene,error:t,scene:e,willDoSecondAttempt:!i}),i)warningUnknowSeriousError();else try{e.elements=A.restore(e).elements,A.updateScene(e)}catch(t){errorlog({where:"ExcalidrawView.updateScene 2nd attempt",fn:this.updateScene,error:t,scene:e}),warningUnknowSeriousError()}}}updateIFrameRef(e,t){t&&this.iFrameRefs.set(e,t)}getIFrameElementById(e){return this.iFrameRefs.get(e)}}function getTextMode(e){return e.search("excalidraw-plugin: parsed\n")>-1||e.search("excalidraw-plugin: locked\n")>-1?TextMode.parsed:TextMode.raw}const DEFAULT_SETTINGS={folder:"Excalidraw",embedUseExcalidrawFolder:!1,templateFilePath:"Excalidraw/Template.excalidraw",scriptFolderPath:"Excalidraw/Scripts",compress:!1,autosave:!0,autosaveInterval:15e3,autosaveIntervalDesktop:15e3,autosaveIntervalMobile:1e4,drawingFilenamePrefix:"Drawing ",drawingEmbedPrefixWithFilename:!0,drawingFilnameEmbedPostfix:" ",drawingFilenameDateTime:"YYYY-MM-DD HH.mm.ss",useExcalidrawExtension:!0,displaySVGInPreview:!0,allowImageCache:!0,displayExportedImageIfAvailable:!1,previewMatchObsidianTheme:!1,width:"400",dynamicStyling:"colorful",isLeftHanded:!1,iframeMatchExcalidrawTheme:!0,matchTheme:!1,matchThemeAlways:!1,matchThemeTrigger:!1,defaultMode:"normal",defaultPenMode:"never",allowPinchZoom:!1,allowWheelZoom:!1,zoomToFitOnOpen:!0,zoomToFitOnResize:!0,zoomToFitMaxLevel:2,linkPrefix:"📍",urlPrefix:"🌐",parseTODO:!1,todo:"☐",done:"🗹",hoverPreviewWithoutCTRL:!1,linkOpacity:1,openInAdjacentPane:!1,openInMainWorkspace:!0,showLinkBrackets:!0,allowCtrlClick:!0,forceWrap:!1,pageTransclusionCharLimit:200,wordWrappingDefault:0,removeTransclusionQuoteSigns:!0,iframelyAllowed:!0,pngExportScale:1,exportWithTheme:!0,exportWithBackground:!0,exportPaddingSVG:10,keepInSync:!1,autoexportSVG:!1,autoexportPNG:!1,autoExportLightAndDark:!1,autoexportExcalidraw:!1,embedType:"excalidraw",embedWikiLink:!0,syncExcalidraw:!1,experimentalFileType:!1,experimentalFileTag:"✏️",experimentalLivePreview:!0,experimentalEnableFourthFont:!1,experimantalFourthFont:"Virgil",fieldSuggester:!0,compatibilityMode:!1,drawingOpenCount:0,library:"deprecated",library2:{type:"excalidrawlib",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,libraryItems:[]},imageElementNotice:!0,mdSVGwidth:500,mdSVGmaxHeight:800,mdFont:"Virgil",mdFontColor:"Black",mdBorderColor:"Black",mdCSS:"",scriptEngineSettings:{},defaultTrayMode:!0,previousRelease:"0.0.0",showReleaseNotes:!0,showNewVersionNotification:!0,mathjaxSourceURL:"https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js",latexBoilerplate:"\\color{blue}",taskboneEnabled:!1,taskboneAPIkey:"",pinnedScripts:[],customPens:[Object.assign({},PENS.default),Object.assign({},PENS.highlighter),Object.assign({},PENS.finetip),Object.assign({},PENS.fountain),Object.assign({},PENS.marker),Object.assign({},PENS["thick-thin"]),Object.assign({},PENS["thin-thick-thin"]),Object.assign({},PENS.default),Object.assign({},PENS.default),Object.assign({},PENS.default)],numberOfCustomPens:0,pdfScale:4,pdfBorderBox:!0,pdfGapSize:20,pdfLockAfterImport:!0,pdfNumColumns:1,pdfImportScale:.3};class ExcalidrawSettingTab extends obsidian_module.PluginSettingTab{constructor(e,t){super(e,t),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1,this.requestUpdatePinnedPens=!1,this.requestUpdateDynamicStyling=!1,this.reloadMathJax=!1,this.plugin=t}applySettingsUpdate(e=!1){e&&(this.requestReloadDrawings=!0)}async hide(){if(this.plugin.settings.scriptFolderPath=obsidian_module.normalizePath(this.plugin.settings.scriptFolderPath),"/"!==this.plugin.settings.scriptFolderPath&&""!==this.plugin.settings.scriptFolderPath||(this.plugin.settings.scriptFolderPath="Excalidraw/Scripts"),this.plugin.saveSettings(),this.requestUpdatePinnedPens&&app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updatePinnedCustomPens()})),this.requestUpdateDynamicStyling&&app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&setDynamicStyle(this.plugin.ea,e.view,e.view.previousBackgroundColor,this.plugin.settings.dynamicStyling)})),this.requestReloadDrawings){const e=app.workspace.getLeavesOfType("excalidraw");for(const t of e)t.view instanceof ExcalidrawView&&(await t.view.save(!1),await t.view.reload(!0));this.requestEmbedUpdate=!0}this.requestEmbedUpdate&&this.plugin.triggerEmbedUpdates(),this.plugin.scriptEngine.updateScriptPath(),this.reloadMathJax&&this.plugin.loadMathJax()}async display(){var e;await this.plugin.loadSettings(),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1;const{containerEl:t}=this;t.addClass("excalidraw-settings"),this.containerEl.empty();const A=t.createDiv("coffee");A.addClass("ex-coffee-div"),A.createEl("a",{href:"https://ko-fi.com/zsolt"}).createEl("img",{attr:{src:"https://cdn.ko-fi.com/cdn/kofi3.png?v=3"}}).height=45,new obsidian_module.Setting(t).setName(t$d("RELEASE_NOTES_NAME")).setDesc(fragWithHTML(t$d("RELEASE_NOTES_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showReleaseNotes).onChange((async e=>{this.plugin.settings.showReleaseNotes=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("NEWVERSION_NOTIFICATION_NAME")).setDesc(fragWithHTML(t$d("NEWVERSION_NOTIFICATION_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showNewVersionNotification).onChange((async e=>{this.plugin.settings.showNewVersionNotification=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FOLDER_NAME")).setDesc(fragWithHTML(t$d("FOLDER_DESC"))).addText((e=>e.setPlaceholder("Excalidraw").setValue(this.plugin.settings.folder).onChange((async e=>{this.plugin.settings.folder=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FOLDER_EMBED_NAME")).setDesc(fragWithHTML(t$d("FOLDER_EMBED_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.embedUseExcalidrawFolder).onChange((async e=>{this.plugin.settings.embedUseExcalidrawFolder=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("TEMPLATE_NAME")).setDesc(fragWithHTML(t$d("TEMPLATE_DESC"))).addText((e=>e.setPlaceholder("Excalidraw/Template").setValue(this.plugin.settings.templateFilePath).onChange((async e=>{this.plugin.settings.templateFilePath=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("SCRIPT_FOLDER_NAME")).setDesc(fragWithHTML(t$d("SCRIPT_FOLDER_DESC"))).addText((e=>e.setPlaceholder("Excalidraw/Scripts").setValue(this.plugin.settings.scriptFolderPath).onChange((async e=>{this.plugin.settings.scriptFolderPath=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("SAVING_HEAD")}),new obsidian_module.Setting(t).setName(t$d("COMPRESS_NAME")).setDesc(fragWithHTML(t$d("COMPRESS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.compress).onChange((async e=>{this.plugin.settings.compress=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("AUTOSAVE_INTERVAL_DESKTOP_NAME")).setDesc(fragWithHTML(t$d("AUTOSAVE_INTERVAL_DESKTOP_DESC"))).addDropdown((e=>e.addOption("15000","Frequent (every 15 seconds)").addOption("60000","Moderate (every 60 seconds)").addOption("300000","Rare (every 5 minutes)").addOption("900000","Practically never (every 15 minutes)").setValue(this.plugin.settings.autosaveIntervalDesktop.toString()).onChange((async e=>{this.plugin.settings.autosaveIntervalDesktop=parseInt(e),this.plugin.settings.autosaveInterval=app.isMobile?this.plugin.settings.autosaveIntervalMobile:this.plugin.settings.autosaveIntervalDesktop,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("AUTOSAVE_INTERVAL_MOBILE_NAME")).setDesc(fragWithHTML(t$d("AUTOSAVE_INTERVAL_MOBILE_DESC"))).addDropdown((e=>e.addOption("10000","Frequent (every 10 seconds)").addOption("30000","Moderate (every 30 seconds)").addOption("60000","Rare (every 1 minute)").addOption("300000","Practically never (every 5 minutes)").setValue(this.plugin.settings.autosaveIntervalMobile.toString()).onChange((async e=>{this.plugin.settings.autosaveIntervalMobile=parseInt(e),this.plugin.settings.autosaveInterval=app.isMobile?this.plugin.settings.autosaveIntervalMobile:this.plugin.settings.autosaveIntervalDesktop,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("FILENAME_HEAD")}),t.createDiv("",(e=>{e.innerHTML=t$d("FILENAME_DESC")}));const i=()=>`${t$d("FILENAME_SAMPLE")}${getDrawingFilename(this.plugin.settings)}
${t$d("FILENAME_EMBED_SAMPLE")}${getEmbedFilename("{NOTE_NAME}",this.plugin.settings)}`,n=t.createEl("p",{text:""});let a,r,s,o,l,c,d;n.innerHTML=i(),new obsidian_module.Setting(t).setName(t$d("FILENAME_PREFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_DESC"))).addText((e=>e.setPlaceholder("Drawing ").setValue(this.plugin.settings.drawingFilenamePrefix).onChange((async t=>{this.plugin.settings.drawingFilenamePrefix=t.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilenamePrefix),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILENAME_PREFIX_EMBED_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_EMBED_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.drawingEmbedPrefixWithFilename).onChange((async e=>{this.plugin.settings.drawingEmbedPrefixWithFilename=e,n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILENAME_POSTFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_POSTFIX_DESC"))).addText((e=>e.setPlaceholder("").setValue(this.plugin.settings.drawingFilnameEmbedPostfix).onChange((async t=>{this.plugin.settings.drawingFilnameEmbedPostfix=t.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilnameEmbedPostfix),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILENAME_DATE_NAME")).setDesc(fragWithHTML(t$d("FILENAME_DATE_DESC"))).addText((e=>e.setPlaceholder("YYYY-MM-DD HH.mm.ss").setValue(this.plugin.settings.drawingFilenameDateTime).onChange((async t=>{this.plugin.settings.drawingFilenameDateTime=t.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilenameDateTime),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILENAME_EXCALIDRAW_EXTENSION_NAME")).setDesc(fragWithHTML(t$d("FILENAME_EXCALIDRAW_EXTENSION_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.useExcalidrawExtension).onChange((async e=>{this.plugin.settings.useExcalidrawExtension=e,n.innerHTML=i(),this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("DISPLAY_HEAD")}),new obsidian_module.Setting(t).setName(t$d("DYNAMICSTYLE_NAME")).setDesc(fragWithHTML(t$d("DYNAMICSTYLE_DESC"))).addDropdown((e=>e.addOption("none","Dynamic Styling OFF").addOption("colorful","Match color").addOption("gray","Gray, match tone").setValue(this.plugin.settings.dynamicStyling).onChange((async e=>{this.requestUpdateDynamicStyling=!0,this.plugin.settings.dynamicStyling=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("LEFTHANDED_MODE_NAME")).setDesc(fragWithHTML(t$d("LEFTHANDED_MODE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.isLeftHanded).onChange((async e=>{this.plugin.settings.isLeftHanded=e,setLeftHandedMode(e),setTimeout((()=>setLeftHandedMode(e))),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("IFRAME_MATCH_THEME_NAME")).setDesc(fragWithHTML(t$d("IFRAME_MATCH_THEME_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.iframeMatchExcalidrawTheme).onChange((async e=>{this.plugin.settings.iframeMatchExcalidrawTheme=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("MATCH_THEME_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchTheme).onChange((async e=>{this.plugin.settings.matchTheme=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("MATCH_THEME_ALWAYS_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_ALWAYS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchThemeAlways).onChange((async e=>{this.plugin.settings.matchThemeAlways=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("MATCH_THEME_TRIGGER_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_TRIGGER_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchThemeTrigger).onChange((async e=>{this.plugin.settings.matchThemeTrigger=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("DEFAULT_OPEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_OPEN_MODE_DESC"))).addDropdown((e=>e.addOption("normal","Always in normal-mode").addOption("zen","Always in zen-mode").addOption("view","Always in view-mode").addOption("view-mobile","Usually normal, but view-mode on Phone").setValue(this.plugin.settings.defaultMode).onChange((async e=>{this.plugin.settings.defaultMode=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("DEFAULT_PEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_PEN_MODE_DESC"))).addDropdown((e=>e.addOption("never","Never").addOption("mobile","On Obsidian Mobile").addOption("always","Always").setValue(this.plugin.settings.defaultPenMode).onChange((async e=>{this.plugin.settings.defaultPenMode=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("DEFAULT_PINCHZOOM_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_PINCHZOOM_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowPinchZoom).onChange((async e=>{this.plugin.settings.allowPinchZoom=e,app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updatePinchZoom()})),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("DEFAULT_WHEELZOOM_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_WHEELZOOM_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowWheelZoom).onChange((async e=>{this.plugin.settings.allowWheelZoom=e,app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updateWheelZoom()})),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("ZOOM_TO_FIT_ONOPEN_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_ONOPEN_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.zoomToFitOnOpen).onChange((async e=>{this.plugin.settings.zoomToFitOnOpen=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("ZOOM_TO_FIT_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.zoomToFitOnResize).onChange((async e=>{this.plugin.settings.zoomToFitOnResize=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("ZOOM_TO_FIT_MAX_LEVEL_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_MAX_LEVEL_DESC"))).addSlider((e=>e.setLimits(.5,10,.5).setValue(this.plugin.settings.zoomToFitMaxLevel).onChange((async e=>{a.innerText=` ${e.toString()}`,this.plugin.settings.zoomToFitMaxLevel=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{a=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.zoomToFitMaxLevel.toString()}`})),this.containerEl.createEl("h1",{text:t$d("LINKS_HEAD")}),this.containerEl.createEl("span",void 0,(e=>e.innerHTML=t$d("LINKS_DESC"))),new obsidian_module.Setting(t).setName(t$d("ADJACENT_PANE_NAME")).setDesc(fragWithHTML(t$d("ADJACENT_PANE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.openInAdjacentPane).onChange((async e=>{this.plugin.settings.openInAdjacentPane=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("MAINWORKSPACE_PANE_NAME")).setDesc(fragWithHTML(t$d("MAINWORKSPACE_PANE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.openInMainWorkspace).onChange((async e=>{this.plugin.settings.openInMainWorkspace=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(fragWithHTML(t$d("LINK_BRACKETS_NAME"))).setDesc(fragWithHTML(t$d("LINK_BRACKETS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showLinkBrackets).onChange((e=>{this.plugin.settings.showLinkBrackets=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("LINK_PREFIX_NAME")).setDesc(fragWithHTML(t$d("LINK_PREFIX_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.linkPrefix).onChange((e=>{this.plugin.settings.linkPrefix=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("URL_PREFIX_NAME")).setDesc(fragWithHTML(t$d("URL_PREFIX_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.urlPrefix).onChange((e=>{this.plugin.settings.urlPrefix=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("PARSE_TODO_NAME")).setDesc(fragWithHTML(t$d("PARSE_TODO_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.parseTODO).onChange((e=>{this.plugin.settings.parseTODO=e,r.setDisabled(!e),s.setDisabled(!e),this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("TODO_NAME")).setDesc(fragWithHTML(t$d("TODO_DESC"))).addText((e=>{r=e,e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.todo).onChange((e=>{this.plugin.settings.todo=e,this.applySettingsUpdate(!0)}))})),r.setDisabled(!this.plugin.settings.parseTODO),new obsidian_module.Setting(t).setName(t$d("DONE_NAME")).setDesc(fragWithHTML(t$d("DONE_DESC"))).setDisabled(!this.plugin.settings.parseTODO).addText((e=>{s=e,e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.done).onChange((e=>{this.plugin.settings.done=e,this.applySettingsUpdate(!0)}))})),s.setDisabled(!this.plugin.settings.parseTODO),new obsidian_module.Setting(t).setName(t$d("LINKOPACITY_NAME")).setDesc(fragWithHTML(t$d("LINKOPACITY_DESC"))).addSlider((e=>e.setLimits(0,1,.05).setValue(this.plugin.settings.linkOpacity).onChange((async e=>{o.innerText=` ${e.toString()}`,this.plugin.settings.linkOpacity=e,this.applySettingsUpdate(!0)})))).settingEl.createDiv("",(e=>{o=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.linkOpacity.toString()}`})),new obsidian_module.Setting(t).setName(t$d("HOVERPREVIEW_NAME")).setDesc(fragWithHTML(t$d("HOVERPREVIEW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.hoverPreviewWithoutCTRL).onChange((async e=>{this.plugin.settings.hoverPreviewWithoutCTRL=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("LINK_CTRL_CLICK_NAME")).setDesc(fragWithHTML(t$d("LINK_CTRL_CLICK_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowCtrlClick).onChange((async e=>{this.plugin.settings.allowCtrlClick=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("TRANSCLUSION_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_WRAP_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.forceWrap).onChange((async e=>{this.plugin.settings.forceWrap=e,this.applySettingsUpdate(!0)})))).descEl.innerHTML=`![[doc#^ref]]{number} ${t$d("TRANSCLUSION_WRAP_DESC")}`,new obsidian_module.Setting(t).setName(t$d("PAGE_TRANSCLUSION_CHARCOUNT_NAME")).setDesc(fragWithHTML(t$d("PAGE_TRANSCLUSION_CHARCOUNT_DESC"))).addText((e=>e.setPlaceholder("Enter a number").setValue(this.plugin.settings.pageTransclusionCharLimit.toString()).onChange((async t=>{const A=parseInt(t);if(isNaN(A)&&""!==t)e.setValue(this.plugin.settings.pageTransclusionCharLimit.toString());else{if(this.requestEmbedUpdate=!0,""===t)return this.plugin.settings.pageTransclusionCharLimit=10,void this.applySettingsUpdate(!0);this.plugin.settings.pageTransclusionCharLimit=A,e.setValue(this.plugin.settings.pageTransclusionCharLimit.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(t).setName(t$d("TRANSCLUSION_DEFAULT_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_DEFAULT_WRAP_DESC"))).addText((e=>e.setPlaceholder("Enter a number").setValue(this.plugin.settings.wordWrappingDefault.toString()).onChange((async t=>{const A=parseInt(t);if(isNaN(A)&&""!==t)e.setValue(this.plugin.settings.wordWrappingDefault.toString());else{if(this.requestEmbedUpdate=!0,""===t)return this.plugin.settings.wordWrappingDefault=0,void this.applySettingsUpdate(!0);this.plugin.settings.wordWrappingDefault=A,e.setValue(this.plugin.settings.wordWrappingDefault.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(t).setName(t$d("QUOTE_TRANSCLUSION_REMOVE_NAME")).setDesc(fragWithHTML(t$d("QUOTE_TRANSCLUSION_REMOVE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.removeTransclusionQuoteSigns).onChange((e=>{this.plugin.settings.removeTransclusionQuoteSigns=e,this.requestEmbedUpdate=!0,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("GET_URL_TITLE_NAME")).setDesc(fragWithHTML(t$d("GET_URL_TITLE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.iframelyAllowed).onChange((async e=>{this.plugin.settings.iframelyAllowed=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("MD_HEAD")}),this.containerEl.createEl("p",{text:t$d("MD_HEAD_DESC")}),new obsidian_module.Setting(t).setName(t$d("MD_TRANSCLUDE_WIDTH_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_WIDTH_DESC"))).addText((e=>e.setPlaceholder("Enter a number e.g. 500").setValue(this.plugin.settings.mdSVGwidth.toString()).onChange((async t=>{const A=parseInt(t);if(isNaN(A)&&""!==t)e.setValue(this.plugin.settings.mdSVGwidth.toString());else{if(this.requestEmbedUpdate=!0,""===t)return this.plugin.settings.mdSVGwidth=500,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGwidth=A,this.requestReloadDrawings=!0,e.setValue(this.plugin.settings.mdSVGwidth.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(t).setName(t$d("MD_TRANSCLUDE_HEIGHT_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_HEIGHT_DESC"))).addText((e=>e.setPlaceholder("Enter a number e.g. 800").setValue(this.plugin.settings.mdSVGmaxHeight.toString()).onChange((async t=>{const A=parseInt(t);if(isNaN(A)&&""!==t)e.setValue(this.plugin.settings.mdSVGmaxHeight.toString());else{if(this.requestEmbedUpdate=!0,""===t)return this.plugin.settings.mdSVGmaxHeight=800,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGmaxHeight=A,this.requestReloadDrawings=!0,e.setValue(this.plugin.settings.mdSVGmaxHeight.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(t).setName(t$d("MD_DEFAULT_FONT_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_FONT_DESC"))).addDropdown((async e=>{e.addOption("Virgil","Virgil"),e.addOption("Cascadia","Cascadia"),this.app.vault.getFiles().filter((e=>["ttf","woff","woff2"].contains(e.extension))).forEach((t=>{e.addOption(t.path,t.name)})),e.setValue(this.plugin.settings.mdFont).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFont=e,this.applySettingsUpdate(!0)}))})),new obsidian_module.Setting(t).setName(t$d("MD_DEFAULT_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_COLOR_DESC"))).addText((e=>e.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdFontColor).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFontColor=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("MD_DEFAULT_BORDER_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_BORDER_COLOR_DESC"))).addText((e=>e.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdBorderColor).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdBorderColor=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("MD_CSS_NAME")).setDesc(fragWithHTML(t$d("MD_CSS_DESC"))).addText((e=>e.setPlaceholder("filename of css file in vault").setValue(this.plugin.settings.mdCSS).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdCSS=e,this.applySettingsUpdate(!0)})))),this.containerEl.createEl("h1",{text:t$d("EMBED_HEAD")}),new obsidian_module.Setting(t).setName(t$d("EMBED_IMAGE_CACHE_NAME")).setDesc(fragWithHTML(t$d("EMBED_IMAGE_CACHE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowImageCache).onChange((e=>{this.plugin.settings.allowImageCache=e,this.applySettingsUpdate()})))).addButton((e=>e.setButtonText(t$d("EMBED_IMAGE_CACHE_CLEAR")).onClick((()=>{imageCache.clearImageCache()})))).addButton((e=>e.setButtonText(t$d("BACKUP_CACHE_CLEAR")).onClick((()=>{new ConfirmationPrompt(this.plugin,t$d("BACKUP_CACHE_CLEAR_CONFIRMATION")).waitForClose.then((e=>{e&&imageCache.clearBackupCache()}))})))),new obsidian_module.Setting(t).setName(t$d("EMBED_PREVIEW_SVG_NAME")).setDesc(fragWithHTML(t$d("EMBED_PREVIEW_SVG_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.displaySVGInPreview).onChange((async e=>{this.plugin.settings.displaySVGInPreview=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EMBED_REUSE_EXPORTED_IMAGE_NAME")).setDesc(fragWithHTML(t$d("EMBED_REUSE_EXPORTED_IMAGE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.displayExportedImageIfAvailable).onChange((async e=>{this.plugin.settings.displayExportedImageIfAvailable=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("PREVIEW_MATCH_OBSIDIAN_NAME")).setDesc(fragWithHTML(t$d("PREVIEW_MATCH_OBSIDIAN_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.previewMatchObsidianTheme).onChange((async e=>{this.plugin.settings.previewMatchObsidianTheme=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EMBED_WIDTH_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIDTH_DESC"))).addText((e=>e.setPlaceholder("400").setValue(this.plugin.settings.width).onChange((async e=>{this.plugin.settings.width=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian_module.Setting(t).setName(t$d("EMBED_TYPE_NAME")).setDesc(fragWithHTML(t$d("EMBED_TYPE_DESC"))).addDropdown((async e=>{l=e,l.addOption("excalidraw","excalidraw"),this.plugin.settings.autoexportPNG?l.addOption("PNG","PNG"):"PNG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),this.plugin.settings.autoexportSVG?l.addOption("SVG","SVG"):"SVG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),l.setValue(this.plugin.settings.embedType).onChange((async e=>{this.plugin.settings.embedType=e,this.applySettingsUpdate()}))})),new obsidian_module.Setting(t).setName(t$d("EMBED_WIKILINK_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIKILINK_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.embedWikiLink).onChange((async e=>{this.plugin.settings.embedWikiLink=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_PNG_SCALE_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_SCALE_DESC"))).addSlider((e=>e.setLimits(1,5,.5).setValue(this.plugin.settings.pngExportScale).onChange((async e=>{c.innerText=` ${e.toString()}`,this.plugin.settings.pngExportScale=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{c=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.pngExportScale.toString()}`})),new obsidian_module.Setting(t).setName(t$d("EXPORT_BACKGROUND_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BACKGROUND_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.exportWithBackground).onChange((async e=>{this.plugin.settings.exportWithBackground=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_PADDING_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PADDING_DESC"))).addSlider((e=>e.setLimits(0,50,5).setValue(this.plugin.settings.exportPaddingSVG).onChange((async e=>{d.innerText=` ${e.toString()}`,this.plugin.settings.exportPaddingSVG=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{d=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.exportPaddingSVG.toString()}`})),new obsidian_module.Setting(t).setName(t$d("EXPORT_THEME_NAME")).setDesc(fragWithHTML(t$d("EXPORT_THEME_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.exportWithTheme).onChange((async e=>{this.plugin.settings.exportWithTheme=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),this.containerEl.createEl("h1",{text:t$d("EXPORT_HEAD")}),new obsidian_module.Setting(t).setName(t$d("EXPORT_SYNC_NAME")).setDesc(fragWithHTML(t$d("EXPORT_SYNC_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.keepInSync).onChange((async e=>{this.plugin.settings.keepInSync=e,this.applySettingsUpdate()}))));const h=e=>{let t=0;for(t=0;te.setValue(this.plugin.settings.autoexportSVG).onChange((async e=>{e?l.addOption("SVG","SVG"):("SVG"===this.plugin.settings.embedType&&(l.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),h("SVG")),this.plugin.settings.autoexportSVG=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_PNG_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoexportPNG).onChange((async e=>{e?l.addOption("PNG","PNG"):("PNG"===this.plugin.settings.embedType&&(l.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),h("PNG")),this.plugin.settings.autoexportPNG=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_BOTH_DARK_AND_LIGHT_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BOTH_DARK_AND_LIGHT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoExportLightAndDark).onChange((async e=>{this.plugin.settings.autoExportLightAndDark=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("COMPATIBILITY_HEAD")}),new obsidian_module.Setting(t).setName(t$d("COMPATIBILITY_MODE_NAME")).setDesc(fragWithHTML(t$d("COMPATIBILITY_MODE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.compatibilityMode).onChange((async e=>{this.plugin.settings.compatibilityMode=e,n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("EXPORT_EXCALIDRAW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoexportExcalidraw).onChange((async e=>{this.plugin.settings.autoexportExcalidraw=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("SYNC_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("SYNC_EXCALIDRAW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.syncExcalidraw).onChange((async e=>{this.plugin.settings.syncExcalidraw=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("NONSTANDARD_HEAD")}),this.containerEl.createEl("p",{text:t$d("NONSTANDARD_DESC")}),new obsidian_module.Setting(t).setName(t$d("CUSTOM_PEN_NAME")).setDesc(t$d("CUSTOM_PEN_DESC")).addDropdown((e=>e.addOption("0","0").addOption("1","1").addOption("2","2").addOption("3","3").addOption("4","4").addOption("5","5").addOption("6","6").addOption("7","7").addOption("8","8").addOption("9","9").addOption("10","10").setValue(this.plugin.settings.numberOfCustomPens.toString()).onChange((e=>{this.plugin.settings.numberOfCustomPens=parseInt(e),this.requestUpdatePinnedPens=!0,this.applySettingsUpdate(!1)})))),new obsidian_module.Setting(t).setName(t$d("ENABLE_FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("ENABLE_FOURTH_FONT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalEnableFourthFont).onChange((async e=>{this.requestReloadDrawings=!0,this.plugin.settings.experimentalEnableFourthFont=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("FOURTH_FONT_DESC"))).addDropdown((async e=>{e.addOption("Virgil","Virgil"),this.app.vault.getFiles().filter((e=>["ttf","woff","woff2"].contains(e.extension))).forEach((t=>{e.addOption(t.path,t.name)})),e.setValue(this.plugin.settings.experimantalFourthFont).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.experimantalFourthFont=e,this.applySettingsUpdate(!0),this.plugin.initializeFourthFont()}))})),this.containerEl.createEl("h1",{text:t$d("EXPERIMENTAL_HEAD")}),this.containerEl.createEl("p",{text:t$d("EXPERIMENTAL_DESC")}),new obsidian_module.Setting(t).setName(t$d("MATHJAX_NAME")).setDesc(t$d("MATHJAX_DESC")).addDropdown((e=>{e.addOption("https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js","jsdelivr").addOption("https://unpkg.com/mathjax@3.2.1/es5/tex-svg.js","unpkg").addOption("https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.1/es5/tex-svg-full.min.js","cdnjs").setValue(this.plugin.settings.mathjaxSourceURL).onChange((e=>{this.plugin.settings.mathjaxSourceURL=e,this.reloadMathJax=!0,this.applySettingsUpdate()}))})),new obsidian_module.Setting(t).setName(t$d("LATEX_DEFAULT_NAME")).setDesc(fragWithHTML(t$d("LATEX_DEFAULT_DESC"))).addText((e=>e.setValue(this.plugin.settings.latexBoilerplate).onChange((e=>{this.plugin.settings.latexBoilerplate=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FIELD_SUGGESTER_NAME")).setDesc(fragWithHTML(t$d("FIELD_SUGGESTER_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.fieldSuggester).onChange((async e=>{this.plugin.settings.fieldSuggester=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILETYPE_NAME")).setDesc(fragWithHTML(t$d("FILETYPE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalFileType).onChange((async e=>{this.plugin.settings.experimentalFileType=e,this.plugin.experimentalFileTypeDisplayToggle(e),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILETAG_NAME")).setDesc(fragWithHTML(t$d("FILETAG_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.experimentalFileTag).onChange((async e=>{this.plugin.settings.experimentalFileTag=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("LIVEPREVIEW_NAME")).setDesc(fragWithHTML(t$d("LIVEPREVIEW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalLivePreview).onChange((async e=>{this.plugin.settings.experimentalLivePreview=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h2",{text:t$d("TASKBONE_HEAD")}),this.containerEl.createEl("p",{text:t$d("TASKBONE_DESC")}),new obsidian_module.Setting(t).setName(t$d("TASKBONE_ENABLE_NAME")).setDesc(fragWithHTML(t$d("TASKBONE_ENABLE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.taskboneEnabled).onChange((async e=>{if(u.setDisabled(!e),this.plugin.settings.taskboneEnabled=e,""===this.plugin.settings.taskboneAPIkey){const e=await this.plugin.taskbone.initialize(!1);e&&u.setValue(e)}this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("TASKBONE_APIKEY_NAME")).setDesc(fragWithHTML(t$d("TASKBONE_APIKEY_DESC"))).addText((e=>{u=e,u.setValue(this.plugin.settings.taskboneAPIkey).onChange((async e=>{this.plugin.settings.taskboneAPIkey=e,this.applySettingsUpdate()})).setDisabled(!this.plugin.settings.taskboneEnabled)}));const g=null===(e=this.plugin.scriptEngine.getListofScripts())||void 0===e?void 0:e.map((e=>this.plugin.scriptEngine.getScriptName(e)));if(Object.keys(this.plugin.settings.scriptEngineSettings).length>0&&g){const e=(e,t)=>{const A=this.plugin.settings.scriptEngineSettings[e][t];return"object"==typeof A?A.height:null},A=(e,t)=>{const A=this.plugin.settings.scriptEngineSettings[e][t];return"object"==typeof A?A.value:A},i=(e,t,A)=>{"object"==typeof this.plugin.settings.scriptEngineSettings[e][t]?this.plugin.settings.scriptEngineSettings[e][t].value=A:this.plugin.settings.scriptEngineSettings[e][t]=A},n=(e,n,a)=>{new obsidian_module.Setting(t).setName(n).setDesc(fragWithHTML(null!=a?a:"")).addToggle((t=>t.setValue(A(e,n)).onChange((async t=>{i(e,n,t),this.applySettingsUpdate()}))))},a=(n,a,r,s)=>{s&&"[object Array]"===Object.prototype.toString.call(s)&&s.length>0?new obsidian_module.Setting(t).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addDropdown((e=>{s.forEach((t=>e.addOption(t.toString(),t.toString()))),e.setValue(A(n,a)).onChange((async e=>{i(n,a,e),this.applySettingsUpdate()}))})):e(n,a)?new obsidian_module.Setting(t).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addTextArea((t=>{t.inputEl.style.minHeight=e(n,a),t.inputEl.style.minWidth="400px",t.setValue(A(n,a)).onChange((async e=>{i(n,a,e),this.applySettingsUpdate()}))})):new obsidian_module.Setting(t).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addText((e=>e.setValue(A(n,a)).onChange((async e=>{i(n,a,e),this.applySettingsUpdate()}))))},r=(e,n,a)=>{new obsidian_module.Setting(t).setName(n).setDesc(fragWithHTML(null!=a?a:"")).addText((t=>t.setPlaceholder("Enter a number").setValue(A(e,n).toString()).onChange((async a=>{const r=parseFloat(a);isNaN(r)&&""!==a?t.setValue(A(e,n).toString()):(i(e,n,isNaN(r)?0:r),this.applySettingsUpdate())}))))};this.containerEl.createEl("h1",{text:t$d("SCRIPT_SETTINGS_HEAD")}),Object.keys(this.plugin.settings.scriptEngineSettings).filter((e=>g.contains(e))).forEach((e=>{const t=this.plugin.settings.scriptEngineSettings[e],A=Object.values(t);0===A.length||A.length>0&&0===A.map((e=>e.hidden?0:1)).reduce(((e,t)=>e+t))||(this.containerEl.createEl("h3",{text:e}),Object.keys(t).forEach((A=>{var i;const s=t[A];switch(typeof(null!==(i=s.value)&&void 0!==i?i:s)){case"boolean":s.hidden||n(e,A,s.description);break;case"string":s.hidden||a(e,A,s.description,s.valueset);break;case"number":s.hidden||r(e,A,s.description)}})))}))}}}var openDialogAction;!function(e){e[e.openFile=0]="openFile",e[e.insertLinkToDrawing=1]="insertLinkToDrawing"}(openDialogAction||(openDialogAction={}));class OpenFileDialog extends obsidian_module.FuzzySuggestModal{constructor(e,t){super(e),this.app=e,this.action=openDialogAction.openFile,this.plugin=t,this.onNewPane=!1,this.limit=20,this.setInstructions([{command:t$d("TYPE_FILENAME"),purpose:""}]),this.inputEl.onkeyup=e=>{"Enter"==e.key&&this.action==openDialogAction.openFile&&this.containerEl.innerText.includes(EMPTY_MESSAGE)&&(this.plugin.createAndOpenDrawing(`${this.plugin.settings.folder}/${this.inputEl.value}.excalidraw.md`,this.onNewPane?"new-pane":"active-pane"),this.close())}}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>this.plugin.isExcalidrawFile(e)))}getItemText(e){return e.path}onChooseItem(e){switch(this.action){case openDialogAction.openFile:this.plugin.openDrawing(e,this.onNewPane?"new-pane":"active-pane",!0);break;case openDialogAction.insertLinkToDrawing:this.plugin.embedDrawing(e)}}start(e,t){switch(this.action=e,this.onNewPane=t,e){case openDialogAction.openFile:this.emptyStateText=EMPTY_MESSAGE,this.setPlaceholder(t$d("SELECT_FILE_OR_TYPE_NEW"));break;case openDialogAction.insertLinkToDrawing:this.emptyStateText=t$d("NO_MATCH"),this.setPlaceholder(t$d("SELECT_TO_EMBED"))}this.open()}}class InsertLinkDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e),this.app=e,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_FILE_TO_LINK")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return this.app.metadataCache.getLinkSuggestions().filter((e=>!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path+(e.alias?`|${e.alias}`:"")}onChooseItem(e){let t=e.path;e.file&&(t=this.app.metadataCache.fileToLinktext(e.file,this.drawingPath,!0)),this.addText(`[[${t+(e.alias?`|${e.alias}`:"")}]]`)}start(e,t){this.addText=t,this.drawingPath=e,this.open()}}class InsertImageDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE_WITH_OPTION_TO_SCALE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_DRAWING")),this.emptyStateText=t$d("NO_MATCH"),this.inputEl.onkeyup=e=>{"Enter"===e.key&&scaleToFullsizeModifier(e)&&this.chooser.values&&(this.onChooseItem(this.chooser.values[this.chooser.selectedItem].item,new KeyboardEvent("keypress",{shiftKey:!0,metaKey:!(DEVICE.isIOS||DEVICE.isMacOS),ctrlKey:DEVICE.isIOS||DEVICE.isMacOS})),this.close())}}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>(IMAGE_TYPES.contains(e.extension)||this.plugin.isExcalidrawFile(e))&&!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path}onChooseItem(e,t){const A=this.plugin.ea.getAPI(this.view);A.canvas.theme=this.view.excalidrawAPI.getAppState().theme;const i=scaleToFullsizeModifier(t);(async()=>{await A.addImage(0,0,e,!i),A.addElementsToView(!0,!1,!0)})()}start(e){this.view=e,this.open()}}class ImportSVGDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_DRAWING")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>"svg"===e.extension&&!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path}async onChooseItem(e,t){if(!e)return;const A=this.plugin.ea;A.reset(),A.setView(this.view);const i=await app.vault.read(e);i&&""!==i&&(A.importSVG(i),A.addElementsToView(!0,!0,!0))}start(e){this.view=e,this.open()}}class InsertMDDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_MD")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>"md"===e.extension&&!this.plugin.isExcalidrawFile(e)))}getItemText(e){return e.path}onChooseItem(e){const t=this.plugin.ea;t.reset(),t.setView(this.view),(async()=>{await t.addImage(0,0,e),t.addElementsToView(!0,!1,!0)})()}start(e){this.view=e,this.open()}}function around(e,t){const A=Object.keys(t).map((A=>around1(e,A,t[A])));return 1===A.length?A[0]:function(){A.forEach((e=>e()))}}function around1(e,t,A){const i=e[t],n=e.hasOwnProperty(t);let a=A(i);return i&&Object.setPrototypeOf(a,i),Object.setPrototypeOf(r,a),e[t]=r,s;function r(...A){return a===i&&e[t]===r&&s(),a.apply(this,A)}function s(){e[t]===r&&(n?e[t]=i:delete e[t]),a!==i&&(a=i,Object.setPrototypeOf(r,i||Function))}}let plugin,vault,metadataCache;const getDefaultWidth=e=>{const t=parseInt(e.settings.width);return isNaN(t)||0===t||null===t?"400":e.settings.width},initializeMarkdownPostProcessor=e=>{plugin=e,vault=e.app.vault,metadataCache=e.app.metadataCache},getIMG=async(e,t=!1)=>{var A;let i=e.file;if(!e.file){const t=vault.getAbstractFileByPath(null===(A=e.fname)||void 0===A?void 0:A.split("#")[0]);if(!(t&&t instanceof obsidian_module.TFile))return null;i=t}const n=getEmbeddedFilenameParts(e.fname);e.style=e.style.replaceAll(" ","-");const a=hasExportTheme(plugin,i)?getExportTheme(plugin,i,"light"):void 0,r={withBackground:getWithBackground(plugin,i),withTheme:!!a||plugin.settings.exportWithTheme},s=createEl("img");let o=`max-width:${e.fwidth}${e.fwidth.match(/\d$/)?"px":""}; `;e.fheight&&(o+=`height:${e.fheight}px;`),t||s.setAttribute("style",o),s.addClass(e.style),s.addClass("excalidraw-embedded-img");const l=null!=a?a:plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":plugin.settings.exportWithTheme?void 0:"light";l&&(r.withTheme=!0);const c=new EmbeddedFilesLoader(plugin,l?"dark"===l:void 0),d=imageCache.isReady();if(!plugin.settings.displaySVGInPreview){const t=parseInt(e.fwidth),A=t>=2400?5:t>=1800?4:t>=1200?3:t>=600?2:1,a=Object.assign(Object.assign({},n),{isDark:"dark"===l,isSVG:!1,scale:A});if(d){const e=await imageCache.getImageFromCache(a);if(e)return s.src=e,s}const o=n.hasGroupref||n.hasFrameref?void 0:await getQuickImagePreview(plugin,i.path,"png"),h=null!=o?o:await createPNG(n.hasGroupref||n.hasFrameref?n.filepath+n.linkpartReference:i.path,A,r,c,l,null,null,[],plugin,0);return h?(s.src=URL.createObjectURL(h),d&&imageCache.addImageToCache(a,s.src),s):null}const h=Object.assign(Object.assign({},n),{isDark:"dark"===l,isSVG:!0,scale:1});if(d){const e=await imageCache.getImageFromCache(h);if(e)return s.setAttribute("src",e),s}if(!n.hasBlockref&&!n.hasSectionref){const e=await getQuickImagePreview(plugin,i.path,"svg");if(e)return s.setAttribute("src",svgToBase64(e)),d&&imageCache.addImageToCache(h,s.src),s}const u=(await createSVG(n.hasGroupref||n.hasBlockref||n.hasSectionref||n.hasFrameref?n.filepath+n.linkpartReference:i.path,!0,r,c,l,null,null,[],plugin,0,getExportPadding(plugin,i))).outerHTML;let g=null;const p=document.createElement("div");p.innerHTML=u;const m=p.firstChild;return m instanceof SVGSVGElement&&(g=m),g?(g=embedFontsInSVG(g,plugin),g.removeAttribute("width"),g.removeAttribute("height"),s.setAttribute("src",svgToBase64(g.outerHTML)),d&&imageCache.addImageToCache(h,s.src),s):null},createImgElement=async(e,t=!1)=>{const A=await getIMG(e,t);let i;A.setAttribute("fileSource",e.fname),e.fwidth&&A.setAttribute("w",e.fwidth),e.fheight&&A.setAttribute("h",e.fheight),A.setAttribute("draggable","false"),A.setAttribute("onCanvas",t?"true":"false");const n=e=>{if(e.target instanceof Element&&"img"!=e.target.tagName.toLowerCase())return;const t=A.getAttribute("fileSource");if(t){const A=t.match(/([^#]*)(.*)/);if(!A)return;plugin.openDrawing(vault.getAbstractFileByPath(A[1]),linkClickModifierType(e),!0,A[2])}};let a;return A.addEventListener("pointermove",(e=>{i&&(Math.abs(e.screenX-a.screenX)>10||Math.abs(e.screenY-a.screenY)>10)&&(clearTimeout(i),i=null)})),A.addEventListener("pointerdown",(e=>{var t;(null===(t=null==A?void 0:A.parentElement)||void 0===t?void 0:t.hasClass("canvas-node-content"))||(i=setTimeout((()=>n(e)),500),a=e)})),A.addEventListener("pointerup",(()=>{i&&clearTimeout(i),i=null})),A.addEventListener("dblclick",n),A.addEventListener(RERENDER_EVENT,(async e=>{e.stopPropagation();const t=A.parentElement,i=A.style.maxWidth,n=A.style.maxHeight,a=A.getAttribute("fileSource"),r="true"===A.getAttribute("onCanvas"),s=await createImgElement({fname:a,fwidth:A.getAttribute("w"),fheight:A.getAttribute("h"),style:A.getAttribute("class")},r);t.empty(),r||(s.style.maxHeight=n,s.style.maxWidth=i),s.setAttribute("fileSource",a),t.append(s)})),A},createImageDiv=async(e,t=!1)=>{const A=await createImgElement(e,t);return createDiv(e.style,(e=>e.append(A)))},processReadingMode=async(e,t)=>{var A;for(const i of e){const e=null===(A=i.getAttribute("src"))||void 0===A?void 0:A.split("#")[0];if(!e)continue;const n=metadataCache.getFirstLinkpathDest(e,t.sourcePath);if(n&&n instanceof obsidian_module.TFile&&plugin.isExcalidrawFile(n)){if(isTextOnlyEmbed(i))continue;i.parentElement.replaceChild(await processInternalEmbed(i,n),i)}}},processInternalEmbed=async(e,t)=>{const A={fname:"",fheight:"",fwidth:"",style:""},i=e.getAttribute("src");if(!i)return;e.removeClass("markdown-embed"),e.removeClass("inline-embed"),e.addClass("media-embed"),e.addClass("image-embed"),A.fwidth=e.getAttribute("width")?e.getAttribute("width"):getDefaultWidth(plugin),A.fheight=e.getAttribute("height");let n=e.getAttribute("alt");A.style="excalidraw-svg",processAltText(i.split("#")[0],n,A);const a=getEmbeddedFilenameParts(i);return A.fname=(null==t?void 0:t.path)+(a.hasBlockref||a.hasSectionref?a.linkpartReference:""),A.file=t,await createImageDiv(A)},processAltText=(e,t,A)=>{var i,n;if(t&&!t.startsWith(e)){const a=t.match(/[^\|\d]*\|?((\d*%?)x?(\d*%?))?\|?(.*)/);A.fwidth=null!==(i=a[2])&&void 0!==i?i:A.fwidth,A.fheight=null!==(n=a[3])&&void 0!==n?n:A.fheight,a[4]&&!a[4].startsWith(e)&&(A.style=`excalidraw-svg-${a[4]}`),a[4]&&""!==a[4]||a[2]&&""!==a[2]||!a[0]||""===a[0]||(A.style=`excalidraw-svg-${a[0]}`)}},isTextOnlyEmbed=e=>{const t=e.getAttribute("src");if(!t)return!0;const A=getEmbeddedFilenameParts(t);return!(A.hasArearef||A.hasGroupref||A.hasFrameref)&&(A.hasBlockref||A.hasSectionref)},tmpObsidianWYSIWYG=async(e,t)=>{const A=app.vault.getAbstractFileByPath(t.sourcePath);if(!(A instanceof obsidian_module.TFile))return;if(!plugin.isExcalidrawFile(A))return;if(t.remainingNestLevel<4)return;const i=t.containerEl;let n=i;for(;!n.hasClass("dataview")&&!n.hasClass("cm-preview-code-block")&&!n.hasClass("cm-embed-block")&&!n.hasClass("internal-embed")&&!n.hasClass("markdown-reading-view")&&!n.hasClass("markdown-embed")&&n.parentElement;)n=n.parentElement;if(n.hasClass("dataview")||n.hasClass("cm-preview-code-block")||n.hasClass("cm-embed-block"))return;const a={fname:t.sourcePath,fheight:"",fwidth:getDefaultWidth(plugin),style:"excalidraw-svg"};a.file=A;const r=n.hasClass("markdown-embed"),s=n.hasClass("markdown-reading-view");if(!n.hasClass("internal-embed")&&(r||s)){const t=Boolean(e.querySelector(".frontmatter"));if(e.empty(),!t)return void(e.parentElement===i&&i.removeChild(e));n.empty();const A=n.hasClass("canvas-node-content"),s=await createImageDiv(a,A);return r?(n.removeClass("markdown-embed"),n.removeClass("inline-embed"),n.addClass("media-embed"),n.addClass("image-embed"),!A&&s.firstChild instanceof HTMLElement&&(s.firstChild.style.maxHeight="100%",s.firstChild.style.maxWidth=null),void n.appendChild(s.firstChild)):void n.appendChild(s)}if(isTextOnlyEmbed(n))return;if(e.empty(),n.hasAttribute("ready"))return;n.setAttribute("ready",""),n.empty();const o=await processInternalEmbed(n,A);n.appendChild(o);let l=null;const c=new MutationObserver((e=>{var t;["alt","width","height"].contains(null===(t=e[0])||void 0===t?void 0:t.attributeName)&&(l&&clearTimeout(l),l=setTimeout((async()=>{l=null,n.empty();const e=await processInternalEmbed(n,A);n.appendChild(e)}),500))}));c.observe(n,{attributes:!0})},markdownPostProcessor=async(e,t)=>{var A;const i=e.querySelectorAll(".internal-embed");0!==i.length?Boolean(null===(A=t.frontmatter)||void 0===A?void 0:A.hasOwnProperty("excalidraw-plugin"))?e.style.display="none":await processReadingMode(i,t):tmpObsidianWYSIWYG(e,t)},hoverEvent=e=>{e.linktext?(plugin.hover.linkText=e.linktext,plugin.hover.sourcePath=e.sourcePath):plugin.hover.linkText=null},observer=new MutationObserver((async e=>{if(0==e.length)return;if(!plugin.hover.linkText)return;const t=metadataCache.getFirstLinkpathDest(plugin.hover.linkText,plugin.hover.sourcePath?plugin.hover.sourcePath:"");if(!t)return;if(!(t instanceof obsidian_module.TFile))return;if("excalidraw"!==t.extension)return;const A=getIMGFilename(t.path,"svg"),i=vault.getAbstractFileByPath(A);if(i&&i instanceof obsidian_module.TFile)return;const n=getIMGFilename(t.path,"png"),a=vault.getAbstractFileByPath(n);if(a&&a instanceof obsidian_module.TFile)return;if(!plugin.hover.linkText)return;if(1!=e.length)return;if(1!=e[0].addedNodes.length)return;if("popover hover-popover file-embed is-loaded"!=!e[0].addedNodes[0].classNames)return;const r=e[0].addedNodes[0];r.empty();const s=await getIMG({file:t,fname:t.path,fwidth:"300",fheight:null,style:"excalidraw-svg"}),o=createDiv("",(async e=>{e.appendChild(s),e.setAttribute("src",t.path),e.onClickEvent((t=>{t.stopImmediatePropagation();const A=e.getAttribute("src");A&&plugin.openDrawing(vault.getAbstractFileByPath(A),linkClickModifierType(t))}))}));r.appendChild(o)})),EXCALIDRAW_AUTOMATE_INFO=[{field:"plugin",code:null,desc:"The ExcalidrawPlugin object",after:""},{field:"elementsDict",code:null,desc:"The {} dictionary object, contains the ExcalidrawElements currently edited in Automate indexed by el.id",after:'[""]'},{field:"imagesDict",code:null,desc:"the images files including DataURL, indexed by fileId",after:'[""]'},{field:"style.strokeColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.backgroundColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.angle",code:"[number]",desc:"Rotation of the object in radian",after:""},{field:"style.fillStyle",code:"[string]",desc:"'hachure' | 'cross-hatch' | 'solid'",after:""},{field:"style.strokeWidth",code:"[number]",desc:null,after:""},{field:"style.strokeStyle",code:"[string]",desc:"'solid' | 'dashed' | 'dotted'",after:""},{field:"style.roughness",code:"[number]",desc:"0:Architect\n1:Artist\n2:Cartoonist",after:""},{field:"style.opacity",code:"[number]",desc:"100: Fully opaque\n0: Fully transparent",after:""},{field:"style.roundness",code:"[null | { type: RoundnessType; value?: number };]",desc:"set to null for 'sharp', else the stroke will be 'round'
type: 1==LEGACY,
2==PROPORTIONAL RADIUS,
3==ADAPTIVE RADIUS, value: adaptive factor defaults to 32",after:""},{field:"style.fontFamily",code:"[number]",desc:"1: Virgil, 2:Helvetica, 3:Cascadia, 4:LocalFont",after:""},{field:"style.fontSize",code:"[number]",desc:null,after:""},{field:"style.textAlign",code:"[string]",desc:"'left' | 'right' | 'center'",after:""},{field:"style.verticalAlign",code:"[string]",desc:"For future use, has no effect currently; 'top' | 'bottom' | 'middle'",after:""},{field:"style.startArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"style.endArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"canvas.theme",code:"[string]",desc:"'dark' | 'light'",after:""},{field:"canvas.viewBackgroundColor",code:"[string]",desc:"A valid css color.\nSee W3 School Colors for more.",after:""},{field:"canvas.gridSize",code:"[number]",desc:null,after:""},{field:"setStrokeSharpness",code:"setStrokeSharpness(sharpness: number): void;",desc:"Set ea.style.roundness. 0: is the legacy value, 3: is the current default value, null is sharp",after:""},{field:"addToGroup",code:"addToGroup(objectIds: []): string;",desc:null,after:""},{field:"toClipboard",code:"toClipboard(templatePath?: string): void;",desc:"Copies current elements using template to clipboard, ready to be pasted into an excalidraw canvas",after:""},{field:"getSceneFromFile",code:"async getSceneFromFile(file: TFile): Promise<{elements: ExcalidrawElement[]; appState: AppState;}>;",desc:"returns the elements and appState from a file, if the file is not an excalidraw file, it will return null",after:""},{field:"getElements",code:"getElements(): ExcalidrawElement[];",desc:"Get all elements from ExcalidrawAutomate elementsDict",after:""},{field:"getElement",code:"getElement(id: string): ExcalidrawElement;",desc:"Get single element from ExcalidrawAutomate elementsDict",after:""},{field:"create",code:'create(params?: {filename?: string, foldername?: string, templatePath?: string, onNewPane?: boolean, frontmatterKeys?: { "excalidraw-plugin"?: "raw" | "parsed", "excalidraw-link-prefix"?: string, "excalidraw-link-brackets"?: boolean, "excalidraw-url-prefix"?: string,},}): Promise;',desc:"Create a drawing and save it to filename.\nIf filename is null: default filename as defined in Excalidraw settings.\nIf folder is null: default folder as defined in Excalidraw settings\n",after:""},{field:"createSVG",code:"createSVG(templatePath?: string, embedFont?: boolean, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"createPNG",code:"createPNG(templatePath?: string, scale?: number, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"wrapText",code:"wrapText(text: string, lineLen: number): string;",desc:null,after:""},{field:"addRect",code:"addRect(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addDiamond",code:"addDiamond(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addEllipse",code:"addEllipse(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addBlob",code:"addBlob(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"refreshTextElementSize",code:"refreshTextElementSize(id: string);",desc:"Refreshes the size of the text element. Intended to be used when you copyViewElementsToEAforEditing() and then change the text in a text element and want to update the size of the text element to fit the modifid contents.",after:""},{field:"addText",code:'addText(topX: number, topY: number, text: string, formatting?: {wrapAt?: number; width?: number; height?: number; textAlign?: "left" | "center" | "right"; textVerticalAlign: "top" | "middle" | "bottom"; box?: boolean | "box" | "blob" | "ellipse" | "diamond"; boxPadding?: number; boxStrokeColor?: string;}, id?: string,): string;',desc:"If box is !null, then text will be boxed\nThe function returns the id of the TextElement. If the text element is boxed i.e. it is a sticky note, then the id of the container object",after:""},{field:"addLine",code:"addLine(points: [[x: number, y: number]]): string;",desc:null,after:""},{field:"addArrow",code:"addArrow(points: [[x: number, y: number]], formatting?: { startArrowHead?: string; endArrowHead?: string; startObjectId?: string; endObjectId?: string;},): string;",desc:null,after:""},{field:"addImage",code:"addImage(topX: number, topY: number, imageFile: TFile, scale: boolean): Promise;",desc:"set scale to false if you want to embed the image at 100% of its original size. Default is true which will insert a scaled image",after:""},{field:"addIFrame",code:"addIFrame(topX: number, topY: number, width: number, height: number, url?: string, file?: TFile): string;",desc:"Adds an iframe to the drawing. If url is not null then the iframe will be loaded from the url. The url maybe a markdown link to an note in the Vault or a weblink. If url is null then the iframe will be loaded from the file. Both the url and the file may not be null.",after:""},{field:"addLaTex",code:"addLaTex(topX: number, topY: number, tex: string): Promise;",desc:null,after:""},{field:"connectObjects",code:"connectObjects(objectA: string, connectionA: ConnectionPoint, objectB: string, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): string;",desc:'type ConnectionPoint = "top" | "bottom" | "left" | "right" | null\nWhen null is passed as ConnectionPoint then Excalidraw will automatically decide\nnumberOfPoints is the number of points on the line. Default is 0 i.e. line will only have a start and end point.\nArrowHead: "triangle"|"dot"|"arrow"|"bar"|null',after:""},{field:"addLabelToLine",code:"addLabelToLine(lineId: string, label: string): string;",desc:"Adds a text label to a line or arrow. Currently only works with a simple straight 2-point (start & end) line",after:""},{field:"clear",code:"clear(): void;",desc:"Clears elementsDict and imagesDict only",after:""},{field:"reset",code:"reset(): void;",desc:"clear() + reset all style values to default",after:""},{field:"isExcalidrawFile",code:"isExcalidrawFile(f: TFile): boolean;",desc:"Returns true if MD file is an Excalidraw file",after:""},{field:"targetView",code:"targetView: ExcalidrawView;",desc:"The Obsidian view currently edited",after:""},{field:"setView",code:'setView(view: ExcalidrawView | "first" | "active"): ExcalidrawView;',desc:null,after:""},{field:"getExcalidrawAPI",code:"getExcalidrawAPI(): any;",desc:"Excalidraw API",after:""},{field:"getViewElements",code:"getViewElements(): ExcalidrawElement[];",desc:"Get elements in View",after:""},{field:"deleteViewElements",code:"deleteViewElements(el: ExcalidrawElement[]): boolean;",desc:null,after:""},{field:"getViewSelectedElement",code:"getViewSelectedElement(): ExcalidrawElement;",desc:"Get the selected element in the view, if more are selected, get the first",after:""},{field:"getViewSelectedElements",code:"getViewSelectedElements(): ExcalidrawElement[];",desc:null,after:""},{field:"getViewFileForImageElement",code:"getViewFileForImageElement(el: ExcalidrawElement): TFile | null;",desc:"Returns the TFile file handle for the image element",after:""},{field:"copyViewElementsToEAforEditing",code:"copyViewElementsToEAforEditing(elements: ExcalidrawElement[]): void;",desc:"Copies elements from view to elementsDict for editing",after:""},{field:"viewToggleFullScreen",code:"viewToggleFullScreen(forceViewMode?: boolean): void;",desc:null,after:""},{field:"connectObjectWithViewSelectedElement",code:"connectObjectWithViewSelectedElement(objectA: string, connectionA: ConnectionPoint, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): boolean;",desc:"Connect an object to the selected element in the view\nSee tooltip for connectObjects for details",after:""},{field:"addElementsToView",code:"addElementsToView(repositionToCursor?: boolean, save?: boolean, newElementsOnTop?: boolean,): Promise;",desc:"Adds elements from elementsDict to the current view\nrepositionToCursor: default is false\nsave: default is true\nnewElementsOnTop: default is false, i.e. the new elements get to the bottom of the stack\nnewElementsOnTop controls whether elements created with ExcalidrawAutomate are added at the bottom of the stack or the top of the stack of elements already in the view\nNote that elements copied to the view with copyViewElementsToEAforEditing retain their position in the stack of elements in the view even if modified using EA",after:""},{field:"onDropHook",code:'onDropHook(data: {ea: ExcalidrawAutomate, event: React.DragEvent, draggable: any, type: "file" | "text" | "unknown", payload: {files: TFile[], text: string,}, excalidrawFile: TFile, view: ExcalidrawView, pointerPosition: { x: number, y: number},}): boolean;',desc:"If set Excalidraw will call this function onDrop events.\nA return of true will stop the default onDrop processing in Excalidraw.\n\ndraggable is the Obsidian draggable object\nfiles is the array of dropped files\nexcalidrawFile is the file receiving the drop event\nview is the excalidraw view receiving the drop.\npointerPosition is the pointer position on canvas at the time of drop.",after:""},{field:"mostRecentMarkdownSVG",code:"mostRecentMarkdownSVG: SVGSVGElement;",desc:"Markdown renderer will drop a copy of the most recent SVG here for debugging purposes",after:""},{field:"getEmbeddedFilesLoader",code:"getEmbeddedFilesLoader(isDark?: boolean): EmbeddedFilesLoader;",desc:"Utility function to generate EmbeddedFilesLoader object",after:""},{field:"getExportSettings",code:"getExportSettings(withBackground: boolean, withTheme: boolean,): ExportSettings;",desc:"Utility function to generate ExportSettings object",after:""},{field:"getBoundingBox",code:"getBoundingBox(elements: ExcalidrawElement[]): {topX: number, topY: number, width: number, height: number,};",desc:"Gets the bounding box of elements. The bounding box is the box encapsulating all of the elements completely.",after:""},{field:"getMaximumGroups",code:"getMaximumGroups(elements: ExcalidrawElement[]): ExcalidrawElement[][];",desc:"Elements grouped by the highest level groups",after:""},{field:"getLargestElement",code:"getLargestElement(elements: ExcalidrawElement[]): ExcalidrawElement;",desc:"Gets the largest element from a group. useful when a text element is grouped with a box, and you want to connect an arrow to the box",after:""},{field:"intersectElementWithLine",code:"intersectElementWithLine(element: ExcalidrawBindableElement, a: readonly [number, number], b: readonly [number, number], gap?: number,): Point[];",desc:"If gap is given, the element is inflated by this value.\nReturns 2 or 0 intersection points between line going through `a` and `b` and the `element`, in ascending order of distance from `a`.",after:""},{field:"getCommonGroupForElements",code:"getCommonGroupForElements(elements: ExcalidrawElement[]): string;",desc:"Gets the groupId for the group that contains all the elements, or null if such a group does not exist",after:""},{field:"getElementsInTheSameGroupWithElement",code:"getElementsInTheSameGroupWithElement(element: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];",desc:"Gets all the elements from elements[] that share one or more groupIds with element.",after:""},{field:"activeScript",code:"activeScript: string;",desc:"Mandatory to set before calling the get and set ScriptSettings functions. Set automatically by the ScriptEngine\nSee for more details: Script Engine Help",after:""},{field:"getScriptSettings",code:"getScriptSettings(): {};",desc:"Returns script settings. Saves settings in plugin settings, under the activeScript key. See for more details: Script Engine Help",after:""},{field:"setScriptSettings",code:"setScriptSettings(settings: any): Promise;",desc:"Sets script settings.\nSee for more details: Script Engine Help",after:""},{field:"openFileInNewOrAdjacentLeaf",code:"openFileInNewOrAdjacentLeaf(file: TFile): WorkspaceLeaf;",desc:"Open a file in a new workspaceleaf or reuse an existing adjacent leaf depending on Excalidraw Plugin Settings",after:""},{field:"measureText",code:"measureText(text: string): { width: number; height: number };",desc:"Measures text size based on current style settings",after:""},{field:"verifyMinimumPluginVersion",code:"verifyMinimumPluginVersion(requiredVersion: string): boolean;",desc:'Returns true if plugin version is >= than required\nrecommended use:\nif(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.20")) {new Notice("message");return;}',after:""},{field:"selectElementsInView",code:"selectElementsInView(elements: ExcalidrawElement[] | string[]):void;",desc:"You can supply a list of Excalidraw Elements or the string IDs of those elements. The elements provided will be set as selected in the targetView.",after:""},{field:"generateElementId",code:"generateElementId(): string;",desc:"Returns an 8 character long random id",after:""},{field:"cloneElement",code:"cloneElement(element: ExcalidrawElement): ExcalidrawElement;",desc:"Returns a clone of the element with a new element id",after:""},{field:"moveViewElementToZIndex",code:"moveViewElementToZIndex(elementId:number, newZIndex:number): void;",desc:"Moves the element to a specific position in the z-index",after:""},{field:"hexStringToRgb",code:"hexStringToRgb(color: string):number[];",desc:"Converts a HEX color to an RGB number array. #FF0000 to [255,0,0]",after:""},{field:"rgbToHexString",code:"rgbToHexString(color: number[]):string;",desc:"Converts an RGB number array to a HEX string. [255,0,0] to #FF0000",after:""},{field:"hslToRgb",code:"hslToRgb(color: number[]):number[];",desc:"Converts an HSL number array to an RGB number array. [0,100,50] to [255,0,0]",after:""},{field:"rgbToHsl",code:"rgbToHsl(color:number[]):number[];",desc:"Converts an RGB number array to an HSL number array. [255,0,0] to [0,100,50]",after:""},{field:"colorNameToHex",code:"colorNameToHex(color:string):string;",desc:"Converts a CSS color name to its HEX color equivalent. 'White' to #FFFFFF",after:""},{field:"obsidian",code:"obsidian",desc:"Access functions and objects available on the Obsidian Module",after:""},{field:"getAttachmentFilepath",code:"async getAttachmentFilepath(filename: string): Promise",desc:"This asynchronous function should be awaited. It retrieves the filepath to a new file, taking into account the attachments preference settings in Obsidian. If the attachment folder doesn't exist, it creates it. The function returns the complete path to the file. If the provided filename already exists, the function will append '_[number]' before the extension to generate a unique filename.",after:""},{field:"setViewModeEnabled",code:"setViewModeEnabled(enabled: boolean): void;",desc:"Sets Excalidraw in the targetView to view-mode",after:""},{field:"viewUpdateScene",code:"viewUpdateScene(scene:{elements?:ExcalidrawElement[],appState?: AppState,files?: BinaryFileData,commitToHistory?: boolean,},restore:boolean=false):void",desc:"Calls the ExcalidrawAPI updateScene function for the targetView. When restore=true, excalidraw will try to correct errors in the scene such as setting default values to missing element properties.",after:""},{field:"viewZoomToElements",code:"viewZoomToElements(selectElements: boolean,elements: ExcalidrawElement[]):void",desc:"Zoom tarteView to fit elements provided as input. elements === [] will zoom to fit the entire scene. SelectElements toggles whether the elements should be in a selected state at the end of the operation.",after:""}],EXCALIDRAW_SCRIPTENGINE_INFO=[{field:"inputPrompt",code:"inputPrompt: (header: string, placeholder?: string, value?: string, buttons?: {caption:string, tooltip?:string, action:Function}[], lines?: number, displayEditorButtons?: boolean, customComponents?: (container: HTMLElement) => void, blockPointerInputOutsideModal?: boolean);",desc:"Opens a prompt that asks for an input.\nReturns a string with the input.\nYou need to await the result of inputPrompt.\nEditor buttons are text editing buttons like delete, enter, allcaps - these are only displayed if lines is greater than 1 \nCustom components are components that you can add to the prompt. These will be displayed between the text input area and the buttons.\nblockPointerInputOutsideModal will block pointer input outside the modal. This is useful if you want to prevent the user accidently closing the modal or interacting with the excalidraw canvas while the prompt is open.\nbuttons.action(input: string) => string\nThe button action function will receive the actual input string. If action returns null, input will be unchanged. If action returns a string, input will receive that value when the promise is resolved. example:\nlet fileType = '';\nconst filename = await utils.inputPrompt (\n 'Filename',\n '',\n '',\n, [\n {\n caption: 'Markdown',\n action: ()=>{fileType='md';return;}\n },\n {\n caption: 'Excalidraw',\n action: ()=>{fileType='ex';return;}\n }\n ]\n);",after:""},{field:"suggester",code:"suggester: (displayItems: string[], items: any[], hint?: string, instructions?:Instruction[]);",desc:"Opens a suggester. Displays the displayItems and returns the corresponding item from items[]\nYou need to await the result of suggester.\nIf the user cancels (ESC), suggester will return undefined\nHint and instructions are optional\n\ninterface Instruction {command: string;purpose: string;}",after:""},{field:"scriptFile",code:"scriptFile: TFile",desc:"The TFile of the currently running script",after:""}],FRONTMATTER_KEYS_INFO=[{field:"plugin",code:null,desc:"Denotes an excalidraw file. If key is not present, the file will not be recognized as an Excalidarw file. Valid values are 'parsed' and 'raw'",after:": parsed"},{field:"link-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid internal link. Set to empty string if you do not want to show a prefix",after:': "📍"'},{field:"url-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid external link. Set to empty string if you do not want to show a prefix",after:': "🌐"'},{field:"link-brackets",code:null,desc:"Set to true, if you want to display [[square brackets]] around the links in Text Elements",after:": true"},{field:"default-mode",code:null,desc:"Specifies how Excalidraw should open by default. Valid values are: view|zen",after:": view"},{field:"linkbutton-opacity",code:null,desc:"The opacity of the blue link button in the top right of the element overriding the respective setting in plugin settings. Valid values are between 0 and 1, where 0 means the button is transparent.",after:": 0.5"},{field:"onload-script",code:null,desc:"The value of this field will be executed as javascript code using the Script Engine environment. Use this to initiate custom actions or logic when loading your drawing.",after:': "new Notice(`Hello World!\\n\\nFile: ${ea.targetView.file.basename}`);"'},{field:"font",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: Virgil|Cascadia|font_file_name.extension",after:": Virgil"},{field:"font-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"border-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"css",code:null,desc:'This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this front matter keys to your markdown document. Valid values are: "css-filename|css snippet"',after:': ""'},{field:"export-transparent",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Transparent / false == with background",after:": true"},{field:"export-dark",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Dark mode / false == light mode",after:": true"},{field:"export-padding",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects both SVG and PNG export. Specify the export padding for the image.",after:": 5"},{field:"export-pngscale",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.",after:": 1"},{field:"autoexport",code:null,desc:"Override autoexport settings for this file. Valid values are\nnone\nboth\npng\nsvg",after:": png"},{field:"iframe-theme",code:null,desc:"Override iFrame theme plugin-settings for this file. 'match' will match the Excalidraw theme, 'default' will match the obsidian theme. Valid values are\ndark\nlight\nauto\ndefault",after:": auto"}];class FieldSuggester extends obsidian_module.EditorSuggest{constructor(e){super(e.app),this.getSuggestions=e=>{const t=e.query.toLowerCase();return("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).map((e=>e.field)).filter((e=>e.toLowerCase().includes(t)))},this.plugin=e}onTrigger(e,t,A){var i,n,a,r,s;if(this.plugin.settings.fieldSuggester){const A=t.getLine(e.line).substring(0,e.ch),o=null!==(r=null!==(n=null===(i=A.match(/^excalidraw-(.*)$/))||void 0===i?void 0:i[1])&&void 0!==n?n:null===(a=A.match(/(^ea|\Wea)\.([\w\.]*)$/))||void 0===a?void 0:a[2])&&void 0!==r?r:null===(s=A.match(/(^utils|\Wutils)\.([\w\.]*)$/))||void 0===s?void 0:s[2];if(void 0!==o)return this.suggestType=A.match(/^excalidraw-(.*)$/)?"excalidraw":A.match(/(^ea|\Wea)\.([\w\.]*)$/)?"ea":"utils",this.latestTriggerInfo={end:e,start:{ch:e.ch-o.length,line:e.line},query:o},this.latestTriggerInfo}return null}renderSuggestion(e,t){const A=e.replace("ea"===this.suggestType?"ea.":"utils"===this.suggestType?"utils.":"excalidraw-",""),i=("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).find((t=>t.field===e));t.createEl("b",{text:A}),t.createEl("br"),i.code&&t.createEl("code",{text:i.code}),i.desc&&t.createDiv("div",(e=>e.innerHTML=i.desc))}selectSuggestion(e){var t;const{context:A}=this;if(A){const i="ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO,n=`${e}${null===(t=i.find((t=>t.field===e)))||void 0===t?void 0:t.after}`;if(A.editor.replaceRange(n,this.latestTriggerInfo.start,this.latestTriggerInfo.end),this.latestTriggerInfo.start.ch===this.latestTriggerInfo.end.ch){const e=this.latestTriggerInfo.end;e.ch+=n.length,A.editor.setCursor(e)}}}}class FrontmatterEditor{constructor(e){this.initialized=!1,this.dataWOfrontmatter=e;const t=(e=e.replaceAll("\r\n","\n").replaceAll("\r","\n")).split(/^---(?:.|\n)*(?:^---\n)/gm);2===t.length&&(this.dataWOfrontmatter=t[1],this.frontmatterStr=e.match(/^---((?:.|\n)*)(?:^---\n)/gm)[0].replaceAll(/(^---\n|^\n)/gm,"").trim()+"\n",this.initialized=!0)}hasKey(e){if(!this.initialized)return!1;const t=new RegExp(`^${e}:`,"gm");return Boolean(this.frontmatterStr.match(t))}setKey(e,t){if(this.initialized)if(t=t.replaceAll("\r\n","\n").replaceAll("\r","\n").replaceAll(":",";").trim().split("\n").join(" "),this.hasKey(e)){const A=new RegExp(`^${e}:.*\\n(?:\\s\\s.*\\n)*`,"gm");this.frontmatterStr=this.frontmatterStr.split(A).join("\n").trim()+`\n${e}: ${t}`}else this.frontmatterStr=this.frontmatterStr.trim()+`\n${e}: ${t}`}get data(){return this.initialized?["---",this.frontmatterStr,"---",this.dataWOfrontmatter].join("\n"):this.dataWOfrontmatter}}const TASKBONE_URL="https://api.taskbone.com/",TASKBONE_OCR_FN="execute?id=60f394af-85f6-40bc-9613-5d26dc283cbb";class Taskbone{get apiKey(){return this.plugin.settings.taskboneAPIkey}constructor(e){this.plugin=e}async initialize(e=!0){var t;if(""!==this.plugin.settings.taskboneAPIkey)return;const A=await obsidian_module.requestUrl({url:`${TASKBONE_URL}users/excalidraw-obsidian/identities`,method:"post",contentType:"application/json",throw:!1});if(!A)return;const i=null===(t=A.json)||void 0===t?void 0:t.apiKey;return i&&"string"==typeof i&&(e&&await this.plugin.loadSettings(),this.plugin.settings.taskboneAPIkey=i,e&&await this.plugin.saveSettings()),i}async getTextForView(e,t){await e.forceSave(!0);const A=e.excalidrawAPI.getSceneElements().filter((t=>{var A;return"freedraw"===t.type||"image"===t.type&&!this.plugin.isExcalidrawFile(null===(A=e.excalidrawData.getFile(t.fileId))||void 0===A?void 0:A.file)}));if(0===A.length)return void new obsidian_module.Notice("Aborting OCR because there are no image or freedraw elements on the canvas.",4e3);const i=new FrontmatterEditor(e.data);if(i.hasKey("taskbone-ocr")&&!t)return void new obsidian_module.Notice("The drawing has already been processed, you will find the result in the frontmatter in markdown view mode. If you ran the command from the Obsidian Panel in Excalidraw then you can CTRL(CMD)+click the command to force the rescaning.",4e3);const n=this.plugin.ea.getBoundingBox(A),a=n.width*n.height,r=Math.sqrt(36e4/a),s=Math.sqrt(a/16e6),o=r>1?r:s>1?1/s:1,l=new EmbeddedFilesLoader(this.plugin,!1),c=await createPNG(e.file.path+"#^taskbone",o,{withBackground:!0,withTheme:!0},l,"light",null,null,[],this.plugin,0),d=await this.getTextForImage(c);d&&(i.setKey("taskbone-ocr",d),e.data=i.data,e.save(!1),window.navigator.clipboard.writeText(d),new obsidian_module.Notice("I placed the recognized in the drawing's frontmatter and onto the system clipboard."))}async getTextForImage(e){""===this.apiKey&&await this.initialize();const t={records:[{image:await blobToBase64(e)}]},A=await obsidian_module.requestUrl({url:"https://api.taskbone.com/execute?id=60f394af-85f6-40bc-9613-5d26dc283cbb",method:"post",contentType:"application/json",body:JSON.stringify(t),headers:{authorization:`Bearer ${this.apiKey}`},throw:!1}),i=null==A?void 0:A.json;return i&&200===A.status?i.records[0].text:(new obsidian_module.Notice("Something went wrong while processing your request. Please check developer console for more information"),void log(A))}}class ExcalidrawPlugin extends obsidian_module.Plugin{constructor(e,t){super(e,t),this.excalidrawFiles=new Set,this.excalidrawFileModes={},this._loaded=!1,this.activeExcalidrawView=null,this.lastActiveExcalidrawFilePath=null,this.hover={linkText:null,sourcePath:null},this.opencount=0,this.filesMaster=null,this.equationsMaster=null,this.mathjax=null,this.mathjaxDiv=null,this.mathjaxLoaderFinished=!1,this.fourthFontDef=VIRGIL_FONT,this.packageMap=new WeakMap,this.leafChangeTimeout=null,this.popScope=null,this.filesMaster=new Map,this.equationsMaster=new Map}getPackage(e){if(e===window)return{react:react,reactDOM:reactDOM,excalidrawLib:excalidrawLib};if(this.packageMap.has(e))return this.packageMap.get(e);const{react:t,reactDOM:A,excalidrawLib:i}=e.eval.call(e,`(function() {\n ${lzStringExports.decompressFromBase64(EXCALIDRAW_PACKAGES)};\n return {react:React,reactDOM:ReactDOM,excalidrawLib:ExcalidrawLib};\n })()`);return this.packageMap.set(e,{react:t,reactDOM:A,excalidrawLib:i}),{react:t,reactDOM:A,excalidrawLib:i}}async onload(){if(obsidian_module.addIcon(ICON_NAME,EXCALIDRAW_ICON),obsidian_module.addIcon("ScriptEngine",SCRIPTENGINE_ICON),obsidian_module.addIcon("export-img",EXPORT_IMG_ICON),await this.loadSettings({reEnableAutosave:!0}),imageCache.plugin=this,this.addSettingTab(new ExcalidrawSettingTab(this.app,this)),this.ea=await initExcalidrawAutomate(this),this.registerView("excalidraw",(e=>new ExcalidrawView(e,this))),this.registerExtensions(["excalidraw"],"excalidraw"),this.addMarkdownPostProcessor(),this.registerInstallCodeblockProcessor(),this.addThemeObserver(),this.experimentalFileTypeDisplayToggle(this.settings.experimentalFileType),this.registerCommands(),this.registerEventListeners(),this.initializeFourthFont(),this.registerEditorSuggest(new FieldSuggester(this)),this.registerMonkeyPatches(),this.settings.showReleaseNotes){const e="0.0.0"===this.settings.previousRelease;isVersionNewerThanOther(PLUGIN_VERSION,this.settings.previousRelease)&&new ReleaseNotes(this.app,this,e?null:PLUGIN_VERSION).open()}this.switchToExcalidarwAfterLoad(),this.loadMathJax();const e=this;this.app.workspace.onLayoutReady((()=>{this.scriptEngine=new ScriptEngine(e)})),this.taskbone=new Taskbone(this)}initializeFourthFont(){this.app.workspace.onLayoutReady((async()=>{const e=await getFontDataURL(this.app,this.settings.experimantalFourthFont,"","LocalFont"),t=""===e.dataURL?VIRGIL_DATAURL:e.dataURL;this.fourthFontDef=e.fontDef;const A=new Set;app.workspace.iterateAllLeaves((e=>{const i=app.isMobile?document:e.view.containerEl.ownerDocument;if(!i)return;if(A.has(i))return;A.add(i);const n=i.createElement("style");n.id="local-font-stylesheet",n.textContent=`\n @font-face {\n font-family: 'LocalFont';\n src: url("${t}");\n font-display: swap;\n }\n `;const a=i.getElementById(n.id);i.head.appendChild(n),a&&i.head.removeChild(a),i.fonts.load("20px LocalFont")}))}))}loadMathJax(){const e=this;this.app.workspace.onLayoutReady((async()=>{await obsidian_module.loadMathJax();try{e.mathjaxDiv&&(document.body.removeChild(e.mathjaxDiv),e.mathjax=null,e.mathjaxLoaderFinished=!1),e.mathjaxDiv=document.body.createDiv(),e.mathjaxDiv.title="Excalidraw MathJax Support",e.mathjaxDiv.style.display="none";const t=e.mathjaxDiv.createEl("iframe");t.title="Excalidraw MathJax Support";const A=t.contentWindow.document,i=A.createElement("script");i.type="text/javascript",i.onload=()=>{const A=t.contentWindow;A.MathJax.startup.pagePromise.then((async()=>{const t=app.vault.getAbstractFileByPath("preamble.sty"),i=t&&t instanceof obsidian_module.TFile?await app.vault.read(t):null;try{i&&await A.MathJax.tex2svg(i)}catch(t){errorlog({where:e.loadMathJax,description:"Unexpected error while loading preamble.sty",error:t})}e.mathjax=A.MathJax,e.mathjaxLoaderFinished=!0}))},i.src=e.settings.mathjaxSourceURL,A.head.appendChild(i)}catch(t){new obsidian_module.Notice("Excalidraw: Error initializing LaTeX support"),e.mathjaxLoaderFinished=!0}}))}switchToExcalidarwAfterLoad(){const e=this;this.app.workspace.onLayoutReady((()=>{let t;for(t of app.workspace.getLeavesOfType("markdown"))t.view instanceof obsidian_module.MarkdownView&&e.isExcalidrawFile(t.view.file)&&(e.excalidrawFileModes[t.id||t.view.file.path]="excalidraw",e.setExcalidrawView(t))}))}forceSaveActiveView(e){if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.forceSave(),!0)}registerInstallCodeblockProcessor(){const e=async(e,t)=>{let A=null;try{const e=t.parentElement.querySelector(`a[href="#${t.previousElementSibling.getAttribute("data-heading")}"]`);e.style.paddingRight="10px",A=e.parentElement.createEl("button",null,(e=>{e.setText(t$d("UPDATE_SCRIPT")),e.addClass("mod-muted"),e.style.backgroundColor="var(--interactive-success)",e.style.display="none"}))}catch(t){errorlog({where:"this.registerInstallCodeblockProcessor",source:e,error:t})}e=e.trim(),t.createEl("button",null,(async t=>{var i;const n=e=>{switch(A&&(A.style.display="none"),e){case"CHECKING":t.setText(t$d("CHECKING_SCRIPT")),t.style.backgroundColor="var(--interactive-normal)";break;case"INSTALL":t.setText(t$d("INSTALL_SCRIPT")),t.style.backgroundColor="var(--interactive-accent)";break;case"UPTODATE":t.setText(t$d("UPTODATE_SCRIPT")),t.style.backgroundColor="var(--interactive-normal)";break;case"UPDATE":t.setText(t$d("UPDATE_SCRIPT")),t.style.backgroundColor="var(--interactive-success)",A&&(A.style.display=null);break;case"ERROR":t.setText(t$d("UNABLETOCHECK_SCRIPT")),t.style.backgroundColor="var(--interactive-normal)"}};t.addClass("mod-muted");let a=e;try{a=decodeURI(e)}catch(t){errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",source:e,error:t})}const r=a.substring(a.lastIndexOf("/")+1),s=`${this.settings.scriptFolderPath}/Downloaded`,o=app.vault.getFiles().filter((e=>e.path.startsWith(s)&&e.name===r)).sort(((e,t)=>e.path>t.path?1:-1));let l=o[0];const c=null!==(i=null==l?void 0:l.path)&&void 0!==i?i:`${s}/${r}`,d=getIMGFilename(c,"svg");let h=this.app.vault.getAbstractFileByPath(d);if(n(l?"CHECKING":"INSTALL"),t.onclick=async()=>{const t=async(e,t,A)=>{const i=await obsidian_module.request({url:e});return!i||i.startsWith("404: Not Found")?null:(t?await this.app.vault.modify(t,i):(await checkAndCreateFolder(s),t=await this.app.vault.create(A,i)),t)};try{if(l=await t(e,l,c),!l)throw n("ERROR"),"File not found";h=await t(getIMGFilename(e,"svg"),h,d),n("UPTODATE"),0===Object.keys(this.scriptEngine.scriptIconMap).length&&this.scriptEngine.loadScripts(),new obsidian_module.Notice(`Installed: ${l.basename}`)}catch(e){new obsidian_module.Notice(`Error installing script: ${r}`),errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",error:e})}},A&&(A.onclick=t.onclick),!(l&&l instanceof obsidian_module.TFile))return;const u=new Map;JSON.parse(await obsidian_module.request({url:"https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/directory-info.json"})).forEach((e=>u.set(e.fname,e.mtime)));const g=(e,t)=>{if(0===u.size||!u.has(e))return"ERROR";const A=u.get(e);return!t||A>t.stat.mtime?"UPDATE":"UPTODATE"},p=g(r,l),m=g(getIMGFilename(r,"svg"),h&&h instanceof obsidian_module.TFile?h:null);n("UPTODATE"===p&&"UPTODATE"===m||"UPTODATE"===p&&"ERROR"===m?"UPTODATE":"ERROR"===p?"ERROR":"UPDATE"===p||"UPDATE"===m?"UPDATE":"UPTODATE")}))};this.registerMarkdownCodeBlockProcessor(SCRIPT_INSTALL_CODEBLOCK,(async(t,A)=>{A.addEventListener(RERENDER_EVENT,(async i=>{i.stopPropagation(),A.empty(),e(t,A)})),e(t,A)}))}addMarkdownPostProcessor(){initializeMarkdownPostProcessor(this),this.registerMarkdownPostProcessor(markdownPostProcessor),this.registerEvent(this.app.workspace.on("hover-link",hoverEvent)),this.observer=observer,this.observer.observe(document,{childList:!0,subtree:!0})}addThemeObserver(){this.themeObserver=new MutationObserver((async e=>{var t,A,i,n,a,r,s,o;if(!this.settings.matchThemeTrigger)return;if((null===(t=e[0])||void 0===t?void 0:t.oldValue)===(null===(i=null===(A=e[0])||void 0===A?void 0:A.target)||void 0===i?void 0:i.getAttribute("class")))return;if((null===(a=null===(n=e[0])||void 0===n?void 0:n.oldValue)||void 0===a?void 0:a.includes("theme-dark"))===(null===(o=null===(s=null===(r=e[0])||void 0===r?void 0:r.target)||void 0===s?void 0:s.classList)||void 0===o?void 0:o.contains("theme-dark")))return;const l=isObsidianThemeDark()?"dark":"light";this.app.workspace.getLeavesOfType("excalidraw").forEach((e=>{const t=e.view;t.file&&t.excalidrawRef&&t.setTheme(l)}))})),this.themeObserver.observe(document.body,{attributeOldValue:!0,attributeFilter:["class"]})}experimentalFileTypeDisplayToggle(e){e?this.experimentalFileTypeDisplay():(this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.fileExplorerObserver=null)}experimentalFileTypeDisplay(){const e=e=>{if(1!=e.childElementCount)return;const t=e.getAttribute("data-path");if(!t)return;const A=this.app.vault.getAbstractFileByPath(t);A&&A instanceof obsidian_module.TFile&&this.isExcalidrawFile(A)&&e.insertBefore(createDiv({cls:"nav-file-tag",text:this.settings.experimentalFileTag}),e.firstChild)};this.fileExplorerObserver=new MutationObserver((t=>{const A=t.filter((e=>e.addedNodes.length>0));A.forEach((t=>{t.addedNodes.forEach((t=>{t instanceof Element&&t.querySelectorAll(".nav-file-title").forEach(e)}))}))}));const t=this;this.app.workspace.onLayoutReady((()=>{document.querySelectorAll(".nav-file-title").forEach(e),t.fileExplorerObserver.observe(document.querySelector(".workspace"),{childList:!0,subtree:!0})}))}registerCommands(){this.openDialog=new OpenFileDialog(this.app,this),this.insertLinkDialog=new InsertLinkDialog(this.app),this.insertImageDialog=new InsertImageDialog(this),this.importSVGDialog=new ImportSVGDialog(this),this.insertMDDialog=new InsertMDDialog(this),this.addRibbonIcon(ICON_NAME,t$d("CREATE_NEW"),(async e=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),linkClickModifierType(emulateCTRLClickForLinks(e)))})),this.registerEvent(this.app.workspace.on("file-menu",((e,t)=>{e.addItem((e=>{e.setTitle(t$d("CREATE_NEW")).setIcon(ICON_NAME).onClick((e=>{let A=t.path;t instanceof obsidian_module.TFile&&(A=obsidian_module.normalizePath(t.path.substr(0,t.path.lastIndexOf(t.name)))),this.createAndOpenDrawing(getDrawingFilename(this.settings),linkClickModifierType(emulateCTRLClickForLinks(e)),A)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((e,t)=>{t instanceof obsidian_module.TFile&&"excalidraw"==t.extension&&e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE_KEEP_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(t,!1,!1)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((e,t)=>{t instanceof obsidian_module.TFile&&"excalidraw"==t.extension&&e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE_REPLACE_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(t,!0,!0)}))}))}))),this.addCommand({id:"excalidraw-disable-autosave",name:t$d("TEMPORARY_DISABLE_AUTOSAVE"),checkCallback:e=>!!this.settings.autosave&&(e||(this.settings.autosave=!1),!0)}),this.addCommand({id:"excalidraw-enable-autosave",name:t$d("TEMPORARY_ENABLE_AUTOSAVE"),checkCallback:e=>!this.settings.autosave&&(e||(this.settings.autosave=!0),!0)}),this.addCommand({id:"excalidraw-download-lib",name:t$d("DOWNLOAD_LIBRARY"),callback:this.exportLibrary}),this.addCommand({id:"excalidraw-open",name:t$d("OPEN_EXISTING_NEW_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!0)}}),this.addCommand({id:"excalidraw-open-on-current",name:t$d("OPEN_EXISTING_ACTIVE_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!1)}}),this.addCommand({id:"excalidraw-insert-transclusion",name:t$d("TRANSCLUDE"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(this.openDialog.start(openDialogAction.insertLinkToDrawing,!1),!0)}),this.addCommand({id:"excalidraw-insert-last-active-transclusion",name:t$d("TRANSCLUDE_MOST_RECENT"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView))&&null!=this.lastActiveExcalidrawFilePath;const t=this.app.vault.getAbstractFileByPath(this.lastActiveExcalidrawFilePath);return t instanceof obsidian_module.TFile&&(this.embedDrawing(t),!0)}}),this.addCommand({id:"excalidraw-autocreate",name:t$d("NEW_IN_NEW_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"new-pane")}}),this.addCommand({id:"excalidraw-autocreate-newtab",name:t$d("NEW_IN_NEW_TAB"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"new-tab")}}),this.addCommand({id:"excalidraw-autocreate-on-current",name:t$d("NEW_IN_ACTIVE_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"active-pane")}}),this.addCommand({id:"excalidraw-autocreate-popout",name:t$d("NEW_IN_POPOUT_WINDOW"),checkCallback:e=>{if(e)return!app.isMobile;this.createAndOpenDrawing(getDrawingFilename(this.settings),"popout-window")}});const e=async e=>{const t=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(!t)return;const A=getEmbedFilename(t.file.basename,this.settings),i=this.settings.embedUseExcalidrawFolder?null:(await getAttachmentsFolderAndFilePath(this.app,t.file.path,A)).folder,n=await this.createDrawing(A,i);await this.embedDrawing(n),this.openDrawing(n,e,!0,void 0,!0)};this.addCommand({id:"excalidraw-autocreate-and-embed",name:t$d("NEW_IN_NEW_PANE_EMBED"),checkCallback:t=>t?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("new-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-new-tab",name:t$d("NEW_IN_NEW_TAB_EMBED"),checkCallback:t=>t?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("new-tab"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-on-current",name:t$d("NEW_IN_ACTIVE_PANE_EMBED"),checkCallback:t=>t?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("active-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-popout",name:t$d("NEW_IN_POPOUT_WINDOW_EMBED"),checkCallback:t=>t?!app.isMobile&&Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("popout-window"),!0)}),this.addCommand({id:"run-ocr",name:t$d("RUN_OCR"),checkCallback:e=>{const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return e?Boolean(t):!!t&&(this.settings.taskboneEnabled?(this.taskbone.getTextForView(t,!1),!0):(new obsidian_module.Notice("Taskbone OCR is not enabled. Please go to plugins settings to enable it.",4e3),!0))}}),this.addCommand({id:"search-text",name:t$d("SEARCH"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(search(t),!0)}}),this.addCommand({id:"fullscreen",name:t$d("TOGGLE_FULLSCREEN"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.isFullscreen()?t.exitFullscreen():t.gotoFullscreen(),!0)}}),this.addCommand({id:"disable-binding",name:t$d("TOGGLE_DISABLEBINDING"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.toggleDisableBinding(),!0)}}),this.addCommand({id:"export-image",name:t$d("EXPORT_IMAGE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.exportDialog||(t.exportDialog=new ExportDialog(this,t,t.file),t.exportDialog.createForm()),t.exportDialog.open(),!0)}}),this.forceSaveCommand=this.addCommand({id:"save",hotkeys:[{modifiers:["Ctrl"],key:"s"}],name:t$d("FORCE_SAVE"),checkCallback:e=>this.forceSaveActiveView(e)}),this.addCommand({id:"toggle-lock",hotkeys:[{modifiers:["Ctrl","Shift"],key:"e"}],name:t$d("TOGGLE_LOCK"),checkCallback:e=>{if(e)return!!Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))&&!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode;const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!t||t.compatibilityMode||(t.changeTextMode(t.textMode===TextMode.parsed?TextMode.raw:TextMode.parsed),0))}}),this.addCommand({id:"scriptengine-store",name:t$d("INSTALL_SCRIPT_BUTTON"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ScriptInstallPrompt(this).open(),!0)}),this.addCommand({id:"delete-file",name:t$d("DELETE_FILE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(t){this.ea.reset(),this.ea.setView(t);const e=this.ea.getViewSelectedElement();if("image"!==e.type)return new obsidian_module.Notice("Please select an image or embedded markdown document",4e3),!0;const A=this.ea.getViewFileForImageElement(e);return A?(this.app.vault.delete(A),this.ea.deleteViewElements([e]),!0):(new obsidian_module.Notice("Please select an image or embedded markdown document",4e3),!0)}return!1}}),this.addCommand({id:"insert-link",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(this.insertLinkDialog.start(t.file.path,t.addText),!0)}}),this.addCommand({id:"insert-link-to-element",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK_TO_ELEMENT_NORMAL"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.copyLinkToSelectedElementToClipboard(""),!0)}}),this.addCommand({id:"insert-link-to-element-group",name:t$d("INSERT_LINK_TO_ELEMENT_GROUP"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.copyLinkToSelectedElementToClipboard("group="),!0)}}),this.addCommand({id:"insert-link-to-element-frame",name:t$d("INSERT_LINK_TO_ELEMENT_FRAME"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.copyLinkToSelectedElementToClipboard("frame="),!0)}}),this.addCommand({id:"insert-link-to-element-area",name:t$d("INSERT_LINK_TO_ELEMENT_AREA"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.copyLinkToSelectedElementToClipboard("area="),!0)}}),this.addCommand({id:"toggle-lefthanded-mode",name:t$d("TOGGLE_LEFTHANDED_MODE"),checkCallback:e=>{if(e){if(this.app.workspace.getActiveViewOfType(ExcalidrawView)){const e=this.app.workspace.getActiveViewOfType(ExcalidrawView),t=null==e?void 0:e.excalidrawAPI;return!!t&&!!t.getAppState().trayModeEnabled}return!1}return this.app.workspace.getActiveViewOfType(ExcalidrawView),(async()=>{const e=this.settings.isLeftHanded;await this.loadSettings({applyLefthandedMode:!1}),this.settings.isLeftHanded=!e,this.saveSettings(),setLeftHandedMode(!e),setTimeout((()=>setLeftHandedMode(!e)))})(),!0}}),this.addCommand({id:"reset-image-to-100",name:t$d("RESET_IMG_TO_100"),checkCallback:e=>{const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!t)return!1;if(!t.excalidrawAPI)return!1;const A=t.getViewSelectedElements().filter((e=>"image"===e.type));if(1!==A.length)return e||new obsidian_module.Notice("Select a single image element and try again"),!1;const i=A[0];return t.excalidrawData.getFile(i.fileId)?!!e||void(async()=>{const e=new ExcalidrawAutomate(this,t),n=await e.getOriginalImageSize(i);if(n){e.copyViewElementsToEAforEditing(A);const t=e.getElement(i.id);t.width=n.width,t.height=n.height,e.addElementsToView(!1,!1,!1)}})():(e||new obsidian_module.Notice("Select a single image element and try again"),!1)}}),this.addCommand({id:"insert-image",name:t$d("INSERT_IMAGE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(this.insertImageDialog.start(t),!0)}}),this.addCommand({id:"import-svg",name:t$d("IMPORT_SVG"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(this.importSVGDialog.start(t),!0)}}),this.addCommand({id:"release-notes",name:t$d("READ_RELEASE_NOTES"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ReleaseNotes(this.app,this,PLUGIN_VERSION).open(),!0)}),this.addCommand({id:"tray-mode",name:t$d("TRAY_MODE"),checkCallback:e=>{if(e){const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!e||!e.excalidrawRef)return!1;const t=e.excalidrawAPI.getAppState();return!t.zenModeEnabled&&!t.viewModeEnabled}const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!t||!t.excalidrawAPI||(t.toggleTrayMode(),0))}}),this.addCommand({id:"insert-md",name:t$d("INSERT_MD"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(this.insertMDDialog.start(t),!0)}}),this.addCommand({id:"insert-pdf",name:t$d("INSERT_PDF"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(new InsertPDFModal(this,t).open(),!0)}}),this.addCommand({id:"universal-add-file",name:t$d("UNIVERSAL_ADD_FILE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(new UniversalInsertFileModal(this,t).open(),!0)}}),this.addCommand({id:"insert-LaTeX-symbol",name:t$d("INSERT_LATEX"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(insertLaTeXToView(t),!0)}}),this.addCommand({id:"toggle-excalidraw-view",name:t$d("TOGGLE_MODE"),checkCallback:e=>{const t=this.app.workspace.getActiveFile();if(!t)return!1;const A=this.isExcalidrawFile(t);if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))?!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode:A;const i=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(i){const e=i.leaf;return this.excalidrawFileModes[e.id||t.path]="markdown",void this.setMarkdownView(e)}const n=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(n&&A){const e=n.leaf;return this.excalidrawFileModes[e.id||t.path]="excalidraw",void this.setExcalidrawView(e)}}}),this.addCommand({id:"convert-to-excalidraw",name:t$d("CONVERT_NOTE_TO_EXCALIDRAW"),checkCallback:e=>{const t=this.app.workspace.getActiveFile(),A=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(!t||!A)return!1;const i=0===t.stat.size;if(e)return i;i&&(async()=>{await this.app.vault.modify(t,await this.getBlankDrawing()),this.setExcalidrawView(A.leaf)})()}}),this.addCommand({id:"convert-excalidraw",name:t$d("CONVERT_EXCALIDRAW"),checkCallback:e=>{if(e){const e=this.app.vault.getFiles().filter((e=>"excalidraw"==e.extension));return e.length>0}return this.convertExcalidrawToMD(),!0}})}async convertSingleExcalidrawToMD(e,t=!1,A=!1){const i=await this.app.vault.read(e),n=e.name.substring(0,e.name.lastIndexOf(".excalidraw"))+(t?".md":".excalidraw.md"),a=getNewUniqueFilepath(this.app.vault,n,obsidian_module.normalizePath(e.path.substring(0,e.path.lastIndexOf(e.name))));log(a);const r=await this.app.vault.create(a,FRONTMATTER+await this.exportSceneToMD(i));return this.settings.keepInSync&&EXPORT_TYPES.forEach((t=>{const A=e.path.substring(0,e.path.lastIndexOf(".excalidraw"))+t,i=this.app.vault.getAbstractFileByPath(obsidian_module.normalizePath(A));if(i&&i instanceof obsidian_module.TFile){const e=a.substring(0,a.lastIndexOf(".md"))+t;this.app.fileManager.renameFile(i,e)}})),A||this.app.vault.delete(e),r}async convertExcalidrawToMD(e=!1,t=!1){const A=this.app.vault.getFiles().filter((e=>"excalidraw"==e.extension));for(const i of A)this.convertSingleExcalidrawToMD(i,e,t);new obsidian_module.Notice(`Converted ${A.length} files.`)}registerMonkeyPatches(){var e,t;(null===(t=null===(e=app.plugins)||void 0===e?void 0:e.plugins)||void 0===t?void 0:t["obsidian-hover-editor"])||this.register(around(obsidian_module.WorkspaceLeaf.prototype,{getRoot:e=>function(){const t=e.call(this);return t.getRoot===this.getRoot?t:t.getRoot()}})),this.registerEvent(app.workspace.on("editor-menu",((e,t,A)=>{if(!(A&&A instanceof obsidian_module.MarkdownView))return;const i=A.file,n=A.leaf;if(!A.file)return;const a=this.app.metadataCache.getFileCache(i);(null==a?void 0:a.frontmatter)&&a.frontmatter[FRONTMATTER_KEY]&&e.addItem((e=>e.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("excalidraw").onClick((()=>{this.excalidrawFileModes[n.id||i.path]="excalidraw",this.setExcalidrawView(n)}))))}))),this.registerEvent(app.workspace.on("file-menu",((e,t,A,i)=>{if(!(i&&i.view instanceof obsidian_module.MarkdownView))return;if(!(t instanceof obsidian_module.TFile))return;const n=this.app.metadataCache.getFileCache(t);(null==n?void 0:n.frontmatter)&&n.frontmatter[FRONTMATTER_KEY]&&(e.addItem((e=>{e.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("pane").onClick((()=>{this.excalidrawFileModes[i.id||t.path]="excalidraw",this.setExcalidrawView(i)}))})),e.items.unshift(e.items.pop()))})));const A=this;this.register(around(obsidian_module.WorkspaceLeaf.prototype,{detach:e=>function(){var t;const i=null===(t=this.view)||void 0===t?void 0:t.getState();return(null==i?void 0:i.file)&&A.excalidrawFileModes[this.id||i.file]&&delete A.excalidrawFileModes[this.id||i.file],e.apply(this)},setViewState:e=>function(t,...i){var n;if(A._loaded&&"markdown"===t.type&&(null===(n=t.state)||void 0===n?void 0:n.file)&&"markdown"!==A.excalidrawFileModes[this.id||t.state.file]){const n=app.metadataCache.getCache(t.state.file);if((null==n?void 0:n.frontmatter)&&n.frontmatter[FRONTMATTER_KEY]){const n=Object.assign(Object.assign({},t),{type:"excalidraw"});return A.excalidrawFileModes[t.state.file]="excalidraw",e.apply(this,[n,...i])}}return e.apply(this,[t,...i])}}))}registerEventListeners(){const e=this;this.app.workspace.onLayoutReady((async()=>{e.registerEvent(app.vault.on("rename",(async(t,A)=>{t instanceof obsidian_module.TFile&&e.isExcalidrawFile(t)&&e.settings.keepInSync&&[EXPORT_TYPES,"excalidraw"].flat().forEach((async e=>{const i=getIMGFilename(A,e),n=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(i));if(n&&n instanceof obsidian_module.TFile){const A=getIMGFilename(t.path,e);await app.fileManager.renameFile(n,A)}}))}))),e.registerEvent(app.vault.on("modify",(async t=>{app.workspace.getLeavesOfType("excalidraw").forEach((async A=>{const i=A.view;if(i.file&&(i.file.path===t.path||"excalidraw"===t.extension&&`${t.path.substring(0,t.path.lastIndexOf(".excalidraw"))}.md`===i.file.path)){if(i.semaphores.preventReload)return void(i.semaphores.preventReload=!1);if(i.lastSaveTimestamp+3e5{if(!(t instanceof obsidian_module.TFile))return;const A=this.excalidrawFiles.has(t);if(this.updateFileCache(t,void 0,!0),!A)return;const i=app.workspace.getLeavesOfType("excalidraw");for(let e=0;e{[EXPORT_TYPES,"excalidraw"].flat().forEach((async e=>{const A=getIMGFilename(t.path,e),i=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(A));i&&i instanceof obsidian_module.TFile&&await app.vault.delete(i)}))}),500)}))),e.registerEvent(app.workspace.on("active-leaf-change",(async t=>{var A;e.leafChangeTimeout&&clearTimeout(e.leafChangeTimeout),e.leafChangeTimeout=setTimeout((()=>{e.leafChangeTimeout=null}),1e3);const i=e.activeExcalidrawView,n=t.view instanceof ExcalidrawView?t.view:null; +EXPR:/(!)?(\[\[([^|\]]+)\|?([^\]]+)?]]|\[([^\]]*)]\(([^)]*)\))(\{(\d+)\})?/g,getResList:e=>{const t=e.matchAll(REGEX_LINK.EXPR);let A;const i=[];for(;!(A=t.next()).done;)i.push(A);return i},getRes:e=>e.matchAll(REGEX_LINK.EXPR),isTransclusion:e=>!!e.value[1],getLink:e=>e.value[3]?e.value[3]:e.value[6],isWikiLink:e=>!!e.value[3],getAliasOrLink:e=>REGEX_LINK.isWikiLink(e)?e.value[4]?e.value[4]:e.value[3]:e.value[5]?e.value[5]:e.value[6],getWrapLength:(e,t)=>{const A=parseInt(e.value[8]);return isNaN(A)?t>0?t:null:A}},DRAWING_REG=/\n# Drawing\n[^`]*(```json\n)([\s\S]*?)```\n/gm,DRAWING_REG_FALLBACK=/\n# Drawing\n(```json\n)?(.*)(```)?(%%)?/gm,DRAWING_COMPRESSED_REG=/(\n# Drawing\n[^`]*(?:```compressed\-json\n))([\s\S]*?)(```\n)/gm,DRAWING_COMPRESSED_REG_FALLBACK=/(\n# Drawing\n(?:```compressed\-json\n)?)(.*)((```)?(%%)?)/gm,REG_LINKINDEX_HYPERLINK=/^\w+:\/\//,isCompressedMD=e=>null!==e.match(/```compressed\-json\n/gm),getDecompressedScene=e=>{let t,A=e.matchAll(DRAWING_COMPRESSED_REG);return t=A.next(),t.done&&(A=e.matchAll(DRAWING_COMPRESSED_REG_FALLBACK),t=A.next()),t.value&&t.value.length>1?[decompress(t.value[2]),t]:[null,t]},changeThemeOfExcalidrawMD=e=>{const t=isCompressedMD(e);let A=t?getDecompressedScene(e)[0]:e;return A?(isObsidianThemeDark?1===(A.match(/"theme"\s*:\s*"light"\s*,/g)||[]).length&&(A=A.replace(/"theme"\s*:\s*"light"\s*,/,'"theme": "dark",')):1===(A.match(/"theme"\s*:\s*"dark"\s*,/g)||[]).length&&(A=A.replace(/"theme"\s*:\s*"dark"\s*,/,'"theme": "light",')),t?e.replace(DRAWING_COMPRESSED_REG,`$1${compress(A)}$3`):A):e};function getJSON(e){let t,A;if(isCompressedMD(e)){const[t,A]=getDecompressedScene(e);return t?{scene:t.substring(0,t.lastIndexOf("}")+1),pos:A.value.index}:{scene:e,pos:A.value?A.value.index:0}}if(t=e.matchAll(DRAWING_REG),A=t.next(),A.done&&(t=e.matchAll(DRAWING_REG_FALLBACK),A=t.next()),A.value&&A.value.length>1){const e=A.value[2];return{scene:e.substr(0,e.lastIndexOf("}")+1),pos:A.value.index}}return{scene:e,pos:A.value?A.value.index:0}}function getMarkdownDrawingSection(e,t){return t?`%%\n# Drawing\n\`\`\`compressed-json\n${compress(e)}\n\`\`\`\n%%`:`%%\n# Drawing\n\`\`\`json\n${e}\n\`\`\`\n%%`}const estimateMaxLineLen=(e,t)=>{if(!t||!e)return null;if(e===t)return null;let A=0;const i=e.split("\n");if(1===i.length)return null;for(const e of i){const t=e.trim();t.length>A&&(A=t.length)}return A},wrap=(e,t)=>t?wrapTextAtCharLength(e,t,!1,0):e;class ExcalidrawData{constructor(e){this.plugin=e,this.textElements=null,this.elementLinks=null,this.scene=null,this.deletedElements=[],this.file=null,this.embeddableTheme="auto",this.autoexportPreference=AutoexportPreference.inherit,this.textMode=TextMode.raw,this.loaded=!1,this.files=null,this.equations=null,this.compatibilityMode=!1,this.selectedElementIds={},this.disableCompression=!1,this.app=e.app,this.files=new Map,this.equations=new Map}initializeNonInitializedFields(){var e,t,A;if(!this.scene||!this.scene.elements)return;const i=null!==(e=this.scene.source.split("https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/")[1])&&void 0!==e?e:"1.8.16",n=this.scene.elements;for(const e of n){if("iframe"===e.type&&(e.type="embeddable"),e.boundElements){const t=new Map;e.boundElements.forEach((e=>{t.set(e.id,e.type)}));const A=Array.from(t,(([e,t])=>({id:e,type:t})));A.length!==e.boundElements.length&&(e.boundElements=A)}e.boundElementIds&&(e.boundElements||(e.boundElements=[]),e.boundElements=e.boundElements.concat(e.boundElementIds.map((e=>({type:"arrow",id:e})))),delete e.boundElementIds),"text"!==e.type||e.containerId||(e.containerId=null),null===e.x&&(e.x=0),null===e.y&&(e.y=0),null===(null===(t=e.startBinding)||void 0===t?void 0:t.focus)&&(e.startBinding.focus=0),null===(null===(A=e.endBinding)||void 0===A?void 0:A.focus)&&(e.endBinding.focus=0),null===e.fontSize&&(e.fontSize=20)}try{n.filter((e=>"text"===e.type&&e.containerId&&n.some((t=>t.id===e.containerId&&t.boundElements.length>0&&t.boundElements.some((t=>"text"===t.type&&t.id!==e.id&&t.id.length>8)))))).forEach((e=>{try{const t=n.filter((t=>t.id===e.containerId))[0],A=t.boundElements.filter((e=>!("text"===e.type&&!n.some((t=>t.id===e.id)))));t.boundElements=[{id:e.id,type:"text"}].concat(A)}catch(e){}}));const e=!isVersionNewerThanOther(i,"1.8.16");n.filter((e=>e.boundElements&&e.boundElements.length>0)).forEach((t=>{var A;e&&!(null===(A=t.customData)||void 0===A?void 0:A.legacyTextWrap)&&(t.customData=Object.assign(Object.assign({},t.customData),{legacyTextWrap:!0}));const i=t.boundElements.filter((e=>n.some((t=>t.id===e.id))));i.length!==t.boundElements.length&&(t.boundElements=i)})),n.filter((e=>"text"===e.type&&e.containerId&&!n.some((t=>t.id===e.containerId)))).forEach((e=>{e.containerId=null}))}catch(e){}}async loadData(e,t,A){var i,n;if(!t)return!1;if(this.loaded=!1,this.selectedElementIds={},this.textElements=new Map,this.elementLinks=new Map,this.file!=t&&(this.files.clear(),this.equations.clear()),this.file=t,this.compatibilityMode=!1,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.setAutoexportPreferences(),this.setembeddableThemePreference(),this.scene=null,this.plugin.settings.syncExcalidraw){const e=`${t.path.substring(0,t.path.lastIndexOf(".md"))}.excalidraw`,A=this.app.vault.getAbstractFileByPath(e);if(A&&A instanceof obsidian_module.TFile&&A.stat.mtime>t.stat.mtime){const e=await this.app.vault.read(A);this.scene=JSON.parse(e)}}let a=null;if(a=(()=>{const t=getJSON(e);if(-1===t.pos)throw new Error("Excalidraw JSON not found in the file");return this.scene||(this.scene=JSON_parse(t.scene)),t})(),this.deletedElements=this.scene.elements.filter((e=>e.isDeleted)),this.scene.elements=this.scene.elements.filter((e=>!e.isDeleted)),this.scene.files||(this.scene.files={}),hasExportTheme(this.plugin,this.file)?this.scene.appState.theme=getExportTheme(this.plugin,this.file,"light"):this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),null===(n=null===(i=this.scene)||void 0===i?void 0:i.elements)||void 0===n?void 0:n.some((e=>"iframe"===e.type))){const e=new ConfirmationPrompt(this.plugin,"This file contains embedded frames which will be migrated to a newer version for compatibility with excalidraw.com.
🔄 If you're using Obsidian on multiple devices, you may proceed now, but please, before opening this file on your other devices, update Excalidraw on those as well.
🔍 More info is available here.
🌐 Translate.");if(e.contentEl.focus(),!await e.waitForClose)throw new Error("iframe conversion canceled")}this.initializeNonInitializedFields();let r=(e=e.substring(0,a.pos)).search(/(^%%\n)?# Text Elements\n/m);if(-1===r)return await this.setTextMode(A,!1),this.loaded=!0,!0;r+=e.match(/((^%%\n)?# Text Elements\n)/m)[0].length,e=e.substring(r),r=0;const s=" ^12345678\n\n".length;let o,l=e.matchAll(/\s\^(.{8})[\n]+/g);for(;!(o=l.next()).done;){let t=e.substring(r,o.value.index);const A=o.value[1],i=this.scene.elements.filter((e=>e.id===A))[0];if(i)if("text"!==i.type)i.link!==t&&(i.link=t,i.version++,i.versionNonce++),this.elementLinks.set(A,t);else{const e=estimateMaxLineLen(i.text,i.originalText),n=t.matchAll(/^%%\*\*\*>>>text element-link:(\[\[[^<*\]]*]])<<<\*\*\*%%/gm).next();n.done||(t=t.replace(/^%%\*\*\*>>>text element-link:\[\[[^<*\]]*]]<<<\*\*\*%%/gm,""),i.link=n.value[1]);const a=await this.parse(t);i.rawText=t,this.textElements.set(A,{raw:t,parsed:a.parsed,wrapAt:e}),a.link&&(i.link=a.link),!i||i.rawText&&""!==i.rawText||(i.rawText=t)}r=o.value.index+s}for(l=(e=e.substring(e.indexOf("# Embedded files\n")+"# Embedded files\n".length)).matchAll(/([\w\d]*):\s*\[\[([^\]]*)]]\s?(\{[^}]*})?\n/gm);!(o=l.next()).done;){const e=new EmbeddedFile(this.plugin,this.file.path,o.value[2],o.value[3]);this.setFile(o.value[1],e)}for(l=e.matchAll(/([\w\d]*):\s*(https?:\/\/[^\s]*)\n/gm);!(o=l.next()).done;){const e=new EmbeddedFile(this.plugin,null,o.value[2]);this.setFile(o.value[1],e)}for(l=e.matchAll(/([\w\d]*):\s*\$\$(.*)(\$\$\s*\n)/gm);!(o=l.next()).done;)this.setEquation(o.value[1],{latex:o.value[2],isLoaded:!1});return this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(A,!0),this.loaded=!0,!0}async loadLegacyData(e,t){return!!t&&(this.loaded=!1,this.selectedElementIds={},this.compatibilityMode=!0,this.file=t,this.textElements=new Map,this.elementLinks=new Map,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.setembeddableThemePreference(),this.scene=JSON.parse(e),this.scene.files||(this.scene.files={}),this.initializeNonInitializedFields(),this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.files.clear(),this.equations.clear(),this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(TextMode.raw,!0),this.loaded=!0,!0)}async setTextMode(e,t=!1){this.scene&&(this.textMode=e,await this.updateSceneTextElements(t))}updateTextElement(e,t,A,i=!1,n){var a;if(i||t!=e.text){const i=_measureText(t,e.fontSize,e.fontFamily,null!==(a=e.lineHeight)&&void 0!==a?a:getDefaultLineHeight(e.fontFamily));e.text=t,e.originalText=A,e.containerId&&"arrow"!==n||(e.width=i.w),e.height=i.h,e.baseline=i.baseline}}async updateSceneTextElements(e=!1){var t,A,i,n;const a=null===(t=this.scene.elements)||void 0===t?void 0:t.filter((e=>"text"===e.type));for(const t of a){const a=getContainerElement(t,this.scene),r=null!==(i=null!==(A=await this.getText(t.id))&&void 0!==A?A:t.originalText)&&void 0!==i?i:t.text,s=null===(n=this.textElements.get(t.id))||void 0===n?void 0:n.wrapAt;try{this.updateTextElement(t,s?wrapText(r,getFontString({fontSize:t.fontSize,fontFamily:t.fontFamily}),getBoundTextMaxWidth(a)):r,r,e,null==a?void 0:a.type)}catch(e){debug({where:"ExcalidrawData.updateSceneTextElements",fn:this.updateSceneTextElements,textElement:t})}}}async getText(e){const t=this.textElements.get(e);return t?this.textMode===TextMode.parsed?(t.parsed||this.textElements.set(e,{raw:t.raw,parsed:(await this.parse(t.raw)).parsed,wrapAt:t.wrapAt}),t.parsed):t.raw:null}findNewElementLinksInScene(){var e;let t=!1;const A=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"!==e.type&&e.link&&e.link.startsWith("[[")&&!this.elementLinks.has(e.id)));if(0===A.length)return t;let i,n=JSON.stringify(this.scene);for(const e of A)i=e.id,e.id.length>8&&(t=!0,i=nanoid(),n=n.replaceAll(e.id,i)),this.elementLinks.set(i,e.link);return this.scene=JSON.parse(n),t}findNewTextElementsInScene(e={}){var t;this.selectedElementIds=e;const A=null===(t=this.scene.elements)||void 0===t?void 0:t.filter((e=>"text"===e.type));let i,n=JSON.stringify(this.scene),a=!1;for(const e of A)if(i=e.id,e.id.length>8){if(a=!0,i=nanoid(),this.selectedElementIds[e.id]&&(delete this.selectedElementIds[e.id],this.selectedElementIds[i]=!0),n=n.replaceAll(e.id,i),this.textElements.has(e.id)){const t=this.textElements.get(e.id);this.textElements.set(i,{raw:t.raw,parsed:t.parsed,wrapAt:t.wrapAt}),this.textElements.delete(e.id)}if(!this.textElements.has(i)){const t=e.rawText&&""!==e.rawText?e.rawText:e.text,A=estimateMaxLineLen(e.text,e.originalText);this.textElements.set(i,{raw:t,parsed:null,wrapAt:A}),this.parseasync(i,t,A)}}else if(!this.textElements.has(e.id)){const t=e.rawText&&""!==e.rawText?e.rawText:e.text,A=estimateMaxLineLen(e.text,e.originalText);this.textElements.set(i,{raw:t,parsed:null,wrapAt:A}),this.parseasync(i,t,A)}return a&&(this.scene=JSON.parse(n)),a}updateElementLinksFromScene(){var e;for(const t of this.elementLinks.keys()){const A=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"!==e.type&&e.id===t&&e.link&&e.link.startsWith("[[")));0===A.length?this.elementLinks.delete(t):this.elementLinks.set(t,A[0].link)}}async updateTextElementsFromScene(){var e,t,A;for(const i of this.textElements.keys()){const n=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"===e.type&&e.id===i));if(0===n.length)this.textElements.delete(i);else{const e=await this.getText(i),a=this.scene.prevTextMode===TextMode.parsed?n[0].rawText:null!==(t=n[0].originalText)&&void 0!==t?t:n[0].text;if(e!==(null!==(A=n[0].originalText)&&void 0!==A?A:n[0].text)){const e=estimateMaxLineLen(n[0].text,n[0].originalText);this.textElements.set(i,{raw:a,parsed:(await this.parse(a)).parsed,wrapAt:e})}}}}async parseasync(e,t,A){this.textElements.set(e,{raw:t,parsed:(await this.parse(t)).parsed,wrapAt:A})}parseLinks(e,t,A){return e.substring(t,A.value.index)+(this.showLinkBrackets?"[[":"")+REGEX_LINK.getAliasOrLink(A)+(this.showLinkBrackets?"]]":"")}async getTransclusion(e){const t=getLinkParts(e,this.file),A=this.app.metadataCache.getFirstLinkpathDest(t.path,this.file.path);return await getTransclusion(t,this.app,A,this.plugin.settings.pageTransclusionCharLimit)}async parse(e){e=this.parseCheckbox(e);let t="",A=null,i=0;const n=REGEX_LINK.getRes(e);let a,r=!1,s=!1;for(e.match(REG_LINKINDEX_HYPERLINK)&&(A=e,s=!0);!(a=n.next()).done;){if(!A){const e=REGEX_LINK.getLink(a);A=e.match(REG_LINKINDEX_HYPERLINK)?e:`[[${e}]]`}if(REGEX_LINK.isTransclusion(a)){let A=this.parseCheckbox((await this.getTransclusion(REGEX_LINK.getLink(a))).contents).replaceAll(/%%[^%]*%%/gm,"");this.plugin.settings.removeTransclusionQuoteSigns&&(A=A.replaceAll(/\n\s*>\s?/gm,"\n")),t+=e.substring(i,a.value.index)+wrapTextAtCharLength(A,REGEX_LINK.getWrapLength(a,this.plugin.settings.wordWrappingDefault),this.plugin.settings.forceWrap)}else{const A=this.parseLinks(e,i,a);A&&(t+=A,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0))}i=a.value.index+a.value[0].length}return t+=e.substring(i,e.length),r&&(t=this.linkPrefix+t),s&&(t=this.urlPrefix+t),{parsed:t,link:A}}parseCheckbox(e){return this.plugin.settings.parseTODO?e.replaceAll(/^- \[\s] /g,`${this.plugin.settings.todo} `).replaceAll(/\n- \[\s] /g,`\n${this.plugin.settings.todo} `).replaceAll(/^- \[[^\s]] /g,`${this.plugin.settings.done} `).replaceAll(/\n- \[[^\s]] /g,`\n${this.plugin.settings.done} `):e}quickParse(e){if((e=>{const t=REGEX_LINK.getRes(e);let A;for(;!(A=t.next()).done;)if(REGEX_LINK.isTransclusion(A))return!0;return!1})(e))return[null,null];e=this.parseCheckbox(e);let t="",A=null,i=0;const n=REGEX_LINK.getRes(e);let a,r=!1,s=!1;for(e.match(REG_LINKINDEX_HYPERLINK)&&(A=e,s=!0);!(a=n.next()).done;){if(!A){const e=REGEX_LINK.getLink(a);A=e.match(REG_LINKINDEX_HYPERLINK)?e:`[[${e}]]`}const n=this.parseLinks(e,i,a);n&&(t+=n,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0)),i=a.value.index+a.value[0].length}return t+=e.substring(i,e.length),r&&(t=this.linkPrefix+t),s&&(t=this.urlPrefix+t),[t,A]}generateMD(e=[]){let t="# Text Elements\n";for(const e of this.textElements.keys()){const A=this.scene.elements.filter((t=>t.id===e));let i=this.textElements.get(e).raw;A&&1===A.length&&A[0].link&&A[0].rawText===A[0].originalText&&A[0].link.match(/^\[\[[^\]]*]]$/g)&&(i=`%%***>>>text element-link:${A[0].link}<<<***%%`+i),t+=`${i} ^${e}\n\n`}for(const e of this.elementLinks.keys())t+=`${this.elementLinks.get(e)} ^${e}\n\n`;if(t+=this.equations.size>0||this.files.size>0?"\n# Embedded files\n":"",this.equations.size>0)for(const e of this.equations.keys())t+=`${e}: $$${this.equations.get(e).latex}$$\n`;if(this.files.size>0)for(const e of this.files.keys()){const A=/(^[^#\|]*)/,i=this.files.get(e);i.isHyperlink?t+=`${e}: ${i.hyperlink}\n`:t+=`${e}: [[${i.file?i.linkParts.original.replace(A,app.metadataCache.fileToLinktext(i.file,this.file.path)):i.linkParts.original}]]${i.colorMap?" "+JSON.stringify(i.colorMap):""}\n`}return t+=this.equations.size>0||this.files.size>0?"\n":"",t+getMarkdownDrawingSection(JSON.stringify({type:this.scene.type,version:this.scene.version,source:this.scene.source,elements:this.scene.elements.concat(e),appState:this.scene.appState,files:this.scene.files},null,"\t"),!this.disableCompression&&this.plugin.settings.compress)}async saveDataURLtoVault(e,t,A){var i;const n=this.scene;let a=`Pasted Image ${window.moment().format("YYYYMMDDHHmmss_SSS")}`;switch(t){case"image/png":default:a+=".png";break;case"image/jpeg":a+=".jpg";break;case"image/svg+xml":a+=".svg";break;case"image/gif":a+=".gif"}const r=(await getAttachmentsFolderAndFilePath(this.app,this.file.path,a)).filepath,s=await getBinaryFileFromDataURL(e);if(!s)return null;const o=await this.app.vault.createBinary(r,s),l=new EmbeddedFile(this.plugin,this.file.path,r);return l.setImage(e,t,{height:0,width:0},"dark"===(null===(i=n.appState)||void 0===i?void 0:i.theme),"image/svg+xml"===t),this.setFile(A,l),o}async syncFiles(){let e=!1;const t=this.scene,A=t.elements.filter((e=>"image"===e.type)).map((e=>e.fileId));if(this.files.forEach(((t,i)=>{A.contains(i)||(this.files.delete(i),e=!0)})),this.equations.forEach(((t,i)=>{A.contains(i)||(this.equations.delete(i),e=!0)})),!t.files||0===Object.keys(t.files).length)return!1;const i=new Set;A.forEach((A=>{if(i.has(A)){const n=this.getFile(A),a=this.getEquation(A);if(n&&(n.isHyperlink||n.file&&("md"!==n.file.extension||this.plugin.isExcalidrawFile(n.file))))return;const r=fileid();t.elements.filter((e=>e.fileId===A))[0].fileId=r,e=!0,i.add(r),n&&this.setFile(r,new EmbeddedFile(this.plugin,this.file.path,n.linkParts.original)),a&&this.setEquation(r,{latex:a.latex,isLoaded:!1})}i.add(A)}));for(const A of Object.keys(t.files))this.hasFile(A)||this.hasEquation(A)||(e=!0,await this.saveDataURLtoVault(t.files[A].dataURL,t.files[A].mimeType,A));return e}async syncElements(e,t){this.scene=e;let A=!1;return this.compatibilityMode||(A=await this.syncFiles(),this.scene.files={}),this.updateElementLinksFromScene(),A=A||this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene(),await this.updateTextElementsFromScene(),A||this.findNewTextElementsInScene(t)}async updateScene(e){this.scene=JSON_parse(e),this.updateElementLinksFromScene();const t=this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.setembeddableThemePreference()||this.findNewElementLinksInScene();return await this.updateTextElementsFromScene(),!(!t&&!this.findNewTextElementsInScene()||(await this.updateSceneTextElements(),0))}getRawText(e){var t;return null===(t=this.textElements.get(e))||void 0===t?void 0:t.raw}getParsedText(e){const t=this.textElements.get(e);return t?[wrap(t.parsed,t.wrapAt),t.parsed,null]:[null,null,null]}setTextElement(e,t,A,i){const n=estimateMaxLineLen(t,A),[a,r]=this.quickParse(A);return a?(this.textElements.set(e,{raw:A,parsed:a,wrapAt:n}),[wrap(a,n),a,r]):(this.parse(A).then((t=>{const a=t.parsed;this.textElements.set(e,{raw:A,parsed:a,wrapAt:n}),a&&i(wrap(a,n),a)})),[null,null,null])}async addTextElement(e,t,A){let i=estimateMaxLineLen(t,A);this.textElements.has(e)&&(i=this.textElements.get(e).wrapAt);const n=await this.parse(A);return this.textElements.set(e,{raw:A,parsed:n.parsed,wrapAt:i}),[wrap(n.parsed,i),n.parsed,n.link]}deleteTextElement(e){this.textElements.delete(e)}getOpenMode(){const e=this.app.metadataCache.getFileCache(this.file);let t="view-mobile"===this.plugin.settings.defaultMode?DEVICE.isPhone?"view":"normal":this.plugin.settings.defaultMode;switch((null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-default-mode"]&&(t=e.frontmatter["excalidraw-default-mode"]),t){case"zen":return{viewModeEnabled:!1,zenModeEnabled:!0};case"view":return{viewModeEnabled:!0,zenModeEnabled:!1};default:return{viewModeEnabled:!1,zenModeEnabled:!1}}}getLinkOpacity(){const e=this.app.metadataCache.getFileCache(this.file);let t=this.plugin.settings.linkOpacity;return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-linkbutton-opacity"]&&(t=e.frontmatter["excalidraw-linkbutton-opacity"]),t}getOnLoadScript(){const e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-onload-script"]?e.frontmatter["excalidraw-onload-script"]:null}setLinkPrefix(){const e=this.linkPrefix,t=this.app.metadataCache.getFileCache(this.file);return(null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-link-prefix"]?this.linkPrefix=t.frontmatter["excalidraw-link-prefix"]:this.linkPrefix=this.plugin.settings.linkPrefix,e!=this.linkPrefix}setUrlPrefix(){const e=this.urlPrefix,t=this.app.metadataCache.getFileCache(this.file);return(null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-url-prefix"]?this.urlPrefix=t.frontmatter["excalidraw-url-prefix"]:this.urlPrefix=this.plugin.settings.urlPrefix,e!=this.urlPrefix}setAutoexportPreferences(){const e=this.app.metadataCache.getFileCache(this.file);if((null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-autoexport"])switch(e.frontmatter["excalidraw-autoexport"].toLowerCase()){case"none":this.autoexportPreference=AutoexportPreference.none;break;case"both":this.autoexportPreference=AutoexportPreference.both;break;case"png":this.autoexportPreference=AutoexportPreference.png;break;case"svg":this.autoexportPreference=AutoexportPreference.svg;break;default:this.autoexportPreference=AutoexportPreference.inherit}else this.autoexportPreference=AutoexportPreference.inherit}setembeddableThemePreference(){const e=this.embeddableTheme,t=this.app.metadataCache.getFileCache(this.file);return(null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-iframe-theme"]?(this.embeddableTheme=t.frontmatter["excalidraw-iframe-theme"].toLowerCase(),EMBEDDABLE_THEME_FRONTMATTER_VALUES.includes(this.embeddableTheme)||(this.embeddableTheme="default")):this.embeddableTheme=this.plugin.settings.iframeMatchExcalidrawTheme?"auto":"default",e!=this.embeddableTheme}setShowLinkBrackets(){const e=this.showLinkBrackets,t=this.app.metadataCache.getFileCache(this.file);return(null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-link-brackets"]?this.showLinkBrackets=0!=t.frontmatter["excalidraw-link-brackets"]:this.showLinkBrackets=this.plugin.settings.showLinkBrackets,e!=this.showLinkBrackets}setFile(e,t){if(!t)return;if(this.files.set(e,t),t.isHyperlink)return void this.plugin.filesMaster.set(e,{isHyperlink:!0,path:t.hyperlink,blockrefData:null,hasSVGwithBitmap:t.isSVGwithBitmap});if(!t.file)return;const A=t.linkParts.original.split("#");this.plugin.filesMaster.set(e,{isHyperlink:!1,path:t.file.path+(t.shouldScale()?"":"|100%"),blockrefData:1===A.length?null:A[1],hasSVGwithBitmap:t.isSVGwithBitmap,colorMapJSON:t.colorMap?JSON.stringify(t.colorMap):null})}getFiles(){return Object.values(this.files)}getFile(e){let t=this.files.get(e);if(t)return t;const A=this.plugin.filesMaster.get(e);return A?(t=new EmbeddedFile(this.plugin,this.file.path,A.blockrefData?A.path+"#"+A.blockrefData:A.path),this.files.set(e,t),t):t}getFileEntries(){return this.files.entries()}deleteFile(e){this.files.delete(e)}hasFile(e){if(this.files.has(e))return!0;if(this.plugin.filesMaster.has(e)){const t=this.plugin.filesMaster.get(e);if(t.isHyperlink)return this.files.set(e,new EmbeddedFile(this.plugin,this.file.path,t.path)),!0;const A=t.path.split("|")[0].split("#")[0];if(!this.app.vault.getAbstractFileByPath(A))return this.plugin.filesMaster.delete(e),!0;const i=t.path.endsWith("100%"),n=new EmbeddedFile(this.plugin,this.file.path,(t.blockrefData?A+"#"+t.blockrefData:A)+(i?"|100%":""),t.colorMapJSON);return this.files.set(e,n),!0}return!1}setEquation(e,t){this.equations.set(e,{latex:t.latex,isLoaded:t.isLoaded}),this.plugin.equationsMaster.set(e,t.latex)}getEquation(e){let t=this.equations.get(e);if(t)return t;const A=this.plugin.equationsMaster.get(e);return A?(this.equations.set(e,{latex:A,isLoaded:!1}),{latex:A,isLoaded:!1}):t}getEquationEntries(){return this.equations.entries()}deleteEquation(e){this.equations.delete(e)}hasEquation(e){return!!this.equations.has(e)||!!this.plugin.equationsMaster.has(e)&&(this.equations.set(e,{latex:this.plugin.equationsMaster.get(e),isLoaded:!1}),!0)}}const getTransclusion=async(e,t,A,i)=>{var n,a,r,s,o,l,c,d,h;if(!e.path)return{contents:e.original.trim(),lineNum:0};if(!(A&&A instanceof obsidian_module.TFile))return{contents:e.original.trim(),lineNum:0};const u=await t.vault.read(A);if(!e.ref)return i?{contents:u.substring(0,i).trim(),lineNum:0}:{contents:u.trim(),lineNum:0};const g=(await t.metadataCache.blockCache.getForFile({isCancelled:()=>!1},A)).blocks.filter((e=>"comment"!=e.node.type));if(!g)return{contents:e.original.trim(),lineNum:0};if(e.isBlockRef){let t=null===(n=g.filter((t=>t.node.id==e.ref))[0])||void 0===n?void 0:n.node;if(!t)return{contents:e.original.trim(),lineNum:0};["blockquote"].includes(t.type)&&(t=t.children[0]);const A=t.position.start.offset,i=t.position.start.line,a=t.position.end.offset;return{contents:u.substring(A,a).replaceAll(/ \^\S*$|^\^\S*$/gm,"").trim(),lineNum:i}}const p=g.filter((e=>0===e.display.search(/^#+\s/)));let m=null,w=0,f=null,E=1;for(let t=0;tE;)e++;return e===p.length&&p[e-1].node.depth>E?{leadingHashes:"#".repeat(E)+" ",contents:u.substring(m).trim(),lineNum:w}:(f=p[e].node.position.start.offset-1,{leadingHashes:"#".repeat(E)+" ",contents:u.substring(m,f).trim(),lineNum:w})}const A=p[t].node.children[0],i=null===(r=null===(a=p[t].node.data)||void 0===a?void 0:a.hProperties)||void 0===r?void 0:r.dataHeading,n=null==A?void 0:A.children;!m&&((null===(s=null==A?void 0:A.value)||void 0===s?void 0:s.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref||(null===(o=null==A?void 0:A.title)||void 0===o?void 0:o.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref||(null==i?void 0:i.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref||n&&(null===(c=null===(l=n[0])||void 0===l?void 0:l.value)||void 0===c?void 0:c.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref)&&(m=null===(d=p[t].node.children[0])||void 0===d?void 0:d.position.start.offset,E=p[t].node.depth,w=null===(h=p[t].node.children[0])||void 0===h?void 0:h.position.start.line)}return m?{leadingHashes:"#".repeat(E)+" ",contents:u.substring(m).trim(),lineNum:w}:{contents:e.original.trim(),lineNum:0}};class ScriptEngine{constructor(e){this.plugin=e,this.scriptIconMap={},this.loadScripts(),this.registerEventHandlers()}registerEventHandlers(){const e=e=>{if(!e.endsWith(".svg"))return;const t=app.vault.getAbstractFileByPath(getIMGFilename(e,"md"));t&&t instanceof obsidian_module.TFile&&(this.unloadScript(this.getScriptName(t),t.path),this.loadScript(t))};this.plugin.registerEvent(app.vault.on("delete",(async t=>{t instanceof obsidian_module.TFile&&t.path.startsWith(this.scriptPath)&&(this.unloadScript(this.getScriptName(t),t.path),e(t.path))}))),this.plugin.registerEvent(app.vault.on("create",(async t=>{t instanceof obsidian_module.TFile&&t.path.startsWith(this.scriptPath)&&(this.loadScript(t),e(t.path))}))),this.plugin.registerEvent(app.vault.on("rename",(async(t,A)=>{if(!(t instanceof obsidian_module.TFile))return;const i=A.startsWith(this.scriptPath),n=t.path.startsWith(this.scriptPath);i&&(this.unloadScript(this.getScriptName(A),A),e(A)),n&&(this.loadScript(t),e(t.path))})))}updateScriptPath(){this.scriptPath!==this.plugin.settings.scriptFolderPath&&(this.scriptPath&&this.unloadScripts(),this.loadScripts())}getListofScripts(){if(this.scriptPath=this.plugin.settings.scriptFolderPath,app.vault.getAbstractFileByPath(this.scriptPath))return app.vault.getFiles().filter((e=>e.path.startsWith(this.scriptPath)&&"md"===e.extension));this.scriptPath=null}loadScripts(){var e;null===(e=this.getListofScripts())||void 0===e||e.forEach((e=>this.loadScript(e)))}getScriptName(e){let t="",A="";e instanceof obsidian_module.TFile?(t=e.basename,A=e.path):(t=splitFolderAndFilename(e).basename,A=e);const i=A.split(`${this.scriptPath}/`)[1],n=i.lastIndexOf("/");return n>-1?i.substring(0,n+1)+t:t}async addScriptIconToMap(e,t){const A=getIMGFilename(e,"svg"),i=app.vault.getAbstractFileByPath(A),n=i&&i instanceof obsidian_module.TFile?await app.vault.read(i):null;this.scriptIconMap=Object.assign({},this.scriptIconMap);const a=splitFolderAndFilename(t);this.scriptIconMap[e]={name:a.filename,group:"/"===a.folderpath?"":a.folderpath,svgString:n},this.updateToolPannels()}loadScript(e){if("md"!==e.extension)return;const t=this.getScriptName(e);this.addScriptIconToMap(e.path,t),this.plugin.addCommand({id:t,name:`(Script) ${t}`,checkCallback:A=>{if(A)return Boolean(app.workspace.getActiveViewOfType(ExcalidrawView));const i=app.workspace.getActiveViewOfType(ExcalidrawView);return!!i&&((async()=>{const A=await app.vault.read(e);A&&this.executeScript(i,A,t,e)})(),!0)}})}unloadScripts(){const e=app.vault.getFiles().filter((e=>e.path.startsWith(this.scriptPath)));e.forEach((e=>{this.unloadScript(this.getScriptName(e),e.path)}))}unloadScript(e,t){if(!t.endsWith(".md"))return;delete this.scriptIconMap[t],this.scriptIconMap=Object.assign({},this.scriptIconMap),this.updateToolPannels();const A=`${PLUGIN_ID}:${e}`;app.commands.commands[A]&&delete app.commands.commands[A]}async executeScript(e,t,A,i){if(!e||!t||!A)return;this.plugin.ea.reset(),this.plugin.ea.setView(e),this.plugin.ea.activeScript=A;const n=Object.getPrototypeOf((async()=>{})).constructor;let a=null;return a=await new n("ea","utils",t)(this.plugin.ea,{inputPrompt:(t,A,i,n,a,r,s,o)=>ScriptEngine.inputPrompt(e,this.plugin,app,t,A,i,n,a,r,s,o),suggester:(e,t,A,i)=>ScriptEngine.suggester(app,e,t,A,i),scriptFile:i}),this.plugin.ea.activeScript=null,a}updateToolPannels(){app.workspace.getLeavesOfType("excalidraw").forEach((e=>{var t,A;null===(A=null===(t=e.view.toolsPanelRef)||void 0===t?void 0:t.current)||void 0===A||A.updateScriptIconMap(this.scriptIconMap)}))}static async inputPrompt(e,t,A,i,n,a,r,s,o,l,c){try{return await GenericInputPrompt.Prompt(e,t,A,i,n,a,r,s,o,l,c)}catch(e){return}}static async suggester(e,t,A,i,n){try{return await GenericSuggester.Suggest(e,t,A,i,n)}catch(e){return}}}var t$c={d:(e,t)=>{for(var A in t)t$c.o(t,A)&&!t$c.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},r$e={};t$c.d(r$e,{QA:()=>w$1,ZP:()=>j$1,qt:()=>x$1,MX:()=>$});const e$d={red:"hsl(0, 100%, 50%)",orange:"hsl(30, 100%, 50%)",yellow:"hsl(60, 100%, 50%)","lime green":"hsl(90, 100%, 50%)",green:"hsl(120, 100%, 50%)","blue green":"hsl(150, 100%, 50%)",cyan:"hsl(180, 100%, 50%)","sky blue":"hsl(210, 100%, 50%)",blue:"hsl(240, 100%, 50%)",purple:"hsl(270, 100%, 50%)",magenta:"hsl(300, 100%, 50%)",pink:"hsl(330, 100%, 50%)"};function s$a(e,t,A){return Math.max(e,Math.min(t,A))}function n$c(e,t){return+e.toFixed(t>=0?t:0)}function a$c(e){const t=e%360;return t<0?t+360:t}function i$a(e){return void 0!==e?s$a(0,e,1):1}function o$b(e){return Math.floor(Math.random()*e)}function h$4(e){var t;const{Cmin:A,Cmax:i,H:n,delta:a}=function(e){const[t,A,i]=Object.values(e).map((e=>e/255)),n=Math.max(t,A,i),a=Math.min(t,A,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===t?(A-i)/r%6:n===A?(i-t)/r+2:(t-A)/r+4,delta:r}}(e),r=(i+A)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$c(60*n),s:100*s,l:100*r,a:null!==(t=e.a)&&void 0!==t?t:1}}function u$8(e){const{h:t,s:A,l:i,a:n}=e,a=i/100,r=A/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(t/60%2-1)),l=a-s/2,c=t<60||300<=t&&t<360?s:120<=t&&t<240?0:o,d=240<=t&&t<360?0:60<=t&&t<180?s:o,h=t<120?0:180<=t&&t<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=n?n:1}}function l$5(e){const[t,A,i,n]=Object.values(e).map((e=>parseInt(e,16)));return{r:t,g:A,b:i,a:n?n/255:1}}const c$a=/^#?([\da-f])([\da-f])([\da-f])([\da-f])?$|^#?([\da-f]{2})([\da-f]{2})([\da-f]{2})?([\da-f]{2})?$/gi,f$3=/hsla?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function d$2({h:e,s:t,l:A,a:i}){return[u$8({h:a$c(e),s:s$a(0,t,100),l:s$a(0,A,100),a:i$a(i)}),"hsl"]}const g$2=/rgba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b$5({r:e,g:t,b:A,a:i}){return[{r:s$a(0,e,255),g:s$a(0,t,255),b:s$a(0,A,255),a:i$a(i)},"rgb"]}var p$3,v$2,m$1=function(e,t,A,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(e,A):n?n.value=A:t.set(e,A),A},y$1=function(e,t,A,i){if("a"===A&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===A?i:"a"===A?i.call(e):i?i.value:t.get(e)};class w$1{constructor(e){var t,A;p$3.set(this,{r:0,g:0,b:0,a:1}),v$2.set(this,"rgb");const i=w$1.Parsers.map((t=>t(e))).find((e=>"invalid"!==e[1]));i?(t=this,A=this,[{set value(e){m$1(t,p$3,e,"f")}}.value,{set value(e){m$1(A,v$2,e,"f")}}.value]=i):m$1(this,v$2,"invalid","f")}get red(){return y$1(this,p$3,"f").r}get blue(){return y$1(this,p$3,"f").b}get green(){return y$1(this,p$3,"f").g}get alpha(){return y$1(this,p$3,"f").a}get hue(){return h$4(y$1(this,p$3,"f")).h}get saturation(){return h$4(y$1(this,p$3,"f")).s}get lightness(){return h$4(y$1(this,p$3,"f")).l}get format(){return y$1(this,v$2,"f")}isValid(){return"invalid"!==y$1(this,v$2,"f")}rgba(){return y$1(this,p$3,"f")}hsla(){return h$4(y$1(this,p$3,"f"))}hexa({round:e=!1}={}){return function(e,t=!1){let{r:A,g:i,b:n,a:a}=e;a&&(a*=255),t&&([A,i,n,a]=[A,i,n,a].map((e=>e&&Math.round(e))));const[r,s,o,l]=[A,i,n,null!=a?a:255].map((e=>e.toString(16).padStart(2,"0").toUpperCase()));return{r:r,g:s,b:o,a:l}}(y$1(this,p$3,"f"),e)}stringRGB({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(y$1(this,p$3,"f")).map(((e,A)=>n$c(e,t[A])));return e?`rgba(${A}, ${i}, ${n}, ${a})`:`rgb(${A}, ${i}, ${n})`}stringHEX({alpha:e=!0}={}){const[t,A,i,n]=Object.values(this.hexa({round:!0}));return`#${t}${A}${i}${e?n:""}`}stringHSL({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.hsla()).map(((e,A)=>n$c(e,t[A])));return e?`hsla(${A}, ${i}%, ${n}%, ${a})`:`hsl(${A}, ${i}%, ${n}%)`}hueTo(e){var t;const{h:A,s:i,l:n,a:a}=this.hsla(),r="number"==typeof e?a$c(e):Number(null!==(t=e$d[e].match(/\d{1,3}/))&&void 0!==t?t:A);return m$1(this,p$3,u$8({h:r,s:i,l:n,a:a}),"f"),this}hueBy(e){const{h:t,s:A,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:a$c(t+e),s:A,l:i,a:n}),"f"),this}saturationTo(e){const{h:t,l:A,a:i}=this.hsla();return m$1(this,p$3,u$8({h:t,s:s$a(0,e,100),l:A,a:i}),"f"),this}saturateBy(e){const{h:t,s:A,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:t,s:s$a(0,A+e,100),l:i,a:n}),"f"),this}desaturateBy(e){return this.saturateBy(-1*e)}lightnessTo(e){const{h:t,s:A,a:i}=this.hsla();return m$1(this,p$3,u$8({h:t,s:A,l:s$a(0,e,100),a:i}),"f"),this}lighterBy(e){const{h:t,s:A,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:t,s:A,l:s$a(0,i+e,100),a:n}),"f"),this}darkerBy(e){return this.lighterBy(-1*e)}alphaTo(e){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,e,1)}),"f"),this}alphaBy(e){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,y$1(this,p$3,"f").a+e,1)}),"f"),this}invert({alpha:e=!1}={}){const{r:t,g:A,b:i,a:n}=y$1(this,p$3,"f");return m$1(this,p$3,{r:255-t,g:255-A,b:255-i,a:e?1-n:n},"f"),this}grayscale(){return this.desaturateBy(100)}rotate(e){return this.hueBy(e)}}function $(){return new w$1({r:o$b(255),g:o$b(255),b:o$b(255),a:Math.random()})}function x$1(e){(e=e.filter(((e,t,A)=>A.indexOf(e)===t))).forEach((e=>e(w$1)))}p$3=new WeakMap,v$2=new WeakMap,w$1.Parsers=[function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:t,g:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i&&"number"==typeof t}(e))return b$5(e);if("string"==typeof e){g$2.lastIndex=0;const t=g$2.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<3?2.55:.01):+e));return b$5({r:e,g:A,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:t,g:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i&&"string"==typeof t}(e))return[l$5(e),"hex"];if("string"==typeof e){c$a.lastIndex=0;const t=c$a.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map((e=>1===e.length?e.repeat(2):e));return[l$5({r:e,g:A,b:i,a:null!=n?n:"FF"}),"hex"]}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:t,s:A,l:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return d$2(e);if("string"==typeof e){f$3.lastIndex=0;const t=f$3.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(0===t?3.59:t<3?1:.01):+e));return d$2({h:e,s:A,l:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}];const j$1=e=>new w$1(e);r$e.QA;var O$1=r$e.ZP,B=r$e.qt;r$e.MX;var e$c={d:(e,t)=>{for(var A in t)e$c.o(t,A)&&!e$c.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},a$b={};function t$b(e){const t=e%360;return t<0?t+360:t}e$c.d(a$b,{Z:()=>n$b});const n$b=e=>{e.prototype.harmony=function({type:t="analogous",effect:A="tones",amount:i=5}={}){const{h:n,s:a,l:r,a:s}=this.hsla();switch("monochromatic"===t&&(o=i,i=Math.max(2,Math.min(o,10))),t){case"analogous":return[-30,0,30].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"complementary":return[0,180].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"split-complementary":return[0,150,210].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"double-split-complementary":return[-30,0,30,150,210].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"triad":return[0,120,240].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"rectangle":return[0,60,180,240].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"square":return[0,90,180,270].map((t=>new e({h:t$b(n+t),s:a,l:r,a:s})));case"monochromatic":{const t="tones"===A?a:r;let o=("tints"===A?100-t:t)/i;o="tints"===A?o:-1*o;const l=[t];for(let e=0;enew e({h:n,s:t,l:r,a:s}))):l.map((t=>new e({h:n,s:a,l:t,a:s})))}}var o}};var r$d=a$b.Z,a$a={d:(e,t)=>{for(var A in t)a$a.o(t,A)&&!a$a.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},t$a={};a$a.d(t$a,{Z:()=>k});const e$b=6/29,n$a=Math.pow(e$b,3),c$9=Math.pow(29/3,3),r$c={x:.96422,y:1,z:.82521};function u$7(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function s$9(e,t,A){return Math.max(e,Math.min(t,A))}function o$a(e){const t=e%360;return t<0?t+360:t}function l$4(e){const[t,A,i]=Object.values(e).map((e=>e/255)),n=Math.max(t,A,i),a=Math.min(t,A,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===t?(A-i)/r%6:n===A?(i-t)/r+2:(t-A)/r+4,delta:r}}function b$4(e){var t;const{Cmin:A,Cmax:i,H:n,delta:a}=l$4(e),r=(i+A)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:o$a(60*n),s:100*s,l:100*r,a:null!==(t=e.a)&&void 0!==t?t:1}}function h$3(e){var t;const{Cmax:A,H:i,delta:n}=l$4(e),a=0===n?0:n/A;return{h:o$a(60*i),s:100*a,v:100*A,a:null!==(t=e.a)&&void 0!==t?t:1}}function v$1(e){const{h:t,a:A}=b$4(e),{r:i,g:n,b:a}=e;return{h:t,w:Math.min(i,n,a)/2.55,b:100*(1-Math.max(i,n,a)/255),a:A}}function i$9(e){const[t,A,i]=u$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=u$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}function m(e){const t=Object.values(i$9(e)).map(((e,t)=>e/(100*Object.values(r$c)[t]))).map((e=>e>n$a?Math.cbrt(e):(c$9*e+16)/116));return{l:116*t[1]-16,a:500*(t[0]-t[1]),b:200*(t[1]-t[2]),alpha:e.a}}function p$2(e){const{l:t,a:A,b:i}=m(e),n=180*Math.atan2(i,A)/Math.PI;return{l:t,c:Math.sqrt(Math.pow(A,2)+Math.pow(i,2)),h:o$a(n),a:e.a}}function f$2(e){const[t,A,i]=Object.values(i$9(e)).map((e=>e/100)),n=A/r$c.y,a=t&&A&&i?t+15*A+3*i:19,r=4*t/a,s=9*A/a,o=r$c.x+15*r$c.y+3*r$c.z,l=4*r$c.x/o,c=9*r$c.y/o;let d=n>n$a?116*Math.cbrt(n)-16:c$9*n,h=13*d*(r-l),u=13*d*(s-c);return d===Number(-0)&&(d=0),h===Number(-0)&&(h=0),u===Number(-0)&&(u=0),{l:d,u:h,v:u,a:e.a}}function M(e){const{x:t,y:A,z:i}=i$9(e),[n,a,r]=u$7([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[t,A,i]);return{u:n,v:a,w:r,a:e.a}}function w(e){let{r:t,g:A,b:i}=e;const n=Math.min(t,A,i);[t,A,i]=[t,A,i].map((e=>e-n));const a=Math.max(t,A,i);let r=Math.min(t,A);t-=r,A-=r,i&&A&&(i/=2,A/=2),r+=A,i+=A;const s=Math.max(t,r,i);if(s){const e=a/s;[t,r,i]=[t,r,i].map((t=>t*e))}return[t,r,i]=[t,r,i].map((e=>e+n)),{r:t,y:r,b:i,a:e.a}}function O(e){const{r:t,g:A,b:i,a:n}=e,a=1-Math.max(t,A,i)/255,[r,s,o]=1===a?[0,0,0]:[t,A,i].map((e=>100*(1-e/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:n}}function j(e){const{h:t,s:A,v:i,a:n}=e,a=i/100,r=a*(A/100),s=r*(1-Math.abs(t/60%2-1)),o=a-r,l=t<60||300<=t&&t<360?r:120<=t&&t<240?0:s,c=240<=t&&t<360?0:60<=t&&t<180?r:s,d=t<120?0:180<=t&&t<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=n?n:1}}function x(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=u$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=u$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return s$9(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}function y(e){const{l:t,a:A,b:i}=e,n=(t+16)/116,a=n+A/500,r=n-i/200,s=Object.values(r$c),[o,l,c]=[a,n,r].map(((e,t)=>(e>e$b?Math.pow(e,3):3*Math.pow(e$b,2)*(e-4/29))*s[t]*100));return x({x:o,y:l,z:c,a:e.alpha})}const k=e=>{e.prototype.mix=function({color:t="#fff",ratio:A=.5,colorspace:i="luv"}={}){const n=this.rgba(),a=(t instanceof e?t:new e(t)).rgba();let r,s;switch(A=s$9(0,A,1),i){case"hsl":r=Object.values(b$4(n)),s=Object.values(b$4(a));break;case"hsv":r=Object.values(h$3(n)),s=Object.values(h$3(a));break;case"hwb":r=Object.values(v$1(n)),s=Object.values(v$1(a));break;case"lab":r=Object.values(m(n)),s=Object.values(m(a));break;case"lch":r=Object.values(p$2(n)),s=Object.values(p$2(a));break;case"luv":r=Object.values(f$2(n)),s=Object.values(f$2(a));break;case"ryb":r=Object.values(w(n)),s=Object.values(w(a));break;case"uvw":r=Object.values(M(n)),s=Object.values(M(a));break;case"xyz":r=Object.values(i$9(n)),s=Object.values(i$9(a));break;case"cmyk":r=Object.values(O(n)),s=Object.values(O(a));break;default:r=Object.values(n),s=Object.values(a)}const[o,l,c,d,h]=r.map(((e,t)=>r[t]*(1-A)+s[t]*A));switch(i){case"hsl":return new e(function(e){const{h:t,s:A,l:i,a:n}=e,a=i/100,r=A/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(t/60%2-1)),l=a-s/2,c=t<60||300<=t&&t<360?s:120<=t&&t<240?0:o,d=240<=t&&t<360?0:60<=t&&t<180?s:o,h=t<120?0:180<=t&&t<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=n?n:1}}({h:o,s:l,l:c,a:d}));case"hsv":return new e(j({h:o,s:l,v:c,a:d}));case"hwb":return new e(function(e){const{h:t,b:A,w:i,a:n}=e;return j({h:t,s:100===A?0:100-i/(100-A)*100,v:100-A,a:n})}({h:o,w:l,b:c,a:d}));case"lab":return new e(y({l:o,a:l,b:c,alpha:d}));case"lch":return new e(function(e){const{l:t,c:A,h:i}=e;return y({l:t,a:A*Math.cos(i*Math.PI/180),b:A*Math.sin(i*Math.PI/180),alpha:e.a})}({l:o,c:l,h:c,a:d}));case"luv":return new e(function(e){const{l:t,u:A,v:i}=e,n=t>c$9*n$a?Math.pow((t+16)/116,3):t/c$9,a=r$c.x+15*r$c.y+3*r$c.z,r=(52*t/(A&&t?A+13*t*(4*r$c.x/a):1)-1)/3,s=-5*n,o=n*(39*t/(i&&t?i+13*t*(9*r$c.y/a):1)-5),l=r===-1/3?o-s:(o-s)/(r- -1/3);return x({x:100*l,y:100*n,z:100*(r*l+s),a:e.a})}({l:o,u:l,v:c,a:d}));case"ryb":return new e(function(e){let{r:t,y:A,b:i}=e;const n=Math.min(t,A,i);[t,A,i]=[t,A,i].map((e=>e-n));const a=Math.max(t,A,i);let r=Math.min(A,i);A-=r,i-=r,i&&r&&(i*=2,r*=2),t+=A,r+=A;const s=Math.max(t,r,i);if(s){const e=a/s;[t,r,i]=[t,r,i].map((t=>t*e))}return[t,r,i]=[t,r,i].map((e=>e+n)),{r:t,g:r,b:i,a:e.a}}({r:o,y:l,b:c,a:d}));case"uvw":return new e(function(e){const{u:t,v:A,w:i}=e,[n,a,r]=u$7([[1.5,0,0],[0,1,0],[1.5,-3,2]],[t,A,i]);return x({x:n,y:a,z:r,a:e.a})}({u:o,v:l,w:c,a:d}));case"xyz":return new e(x({x:o,y:l,z:c,a:d}));case"cmyk":return new e(function(e){const{c:t,m:A,y:i,k:n,a:a}=e,[r,s,o]=[t,A,i].map((e=>255*(1-e/100)*(1-n/100)));return{r:r,g:s,b:o,a:a}}({c:o,m:l,y:c,k:d,a:h}));default:return new e({r:o,g:l,b:c,a:d})}}};var z=t$a.Z,r$b={d:(e,t)=>{for(var A in t)r$b.o(t,A)&&!r$b.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},b$3={};r$b.d(b$3,{Z:()=>n$9});const g$1=["rgb(0,0,0)","rgb(0,0,51)","rgb(0,0,102)","rgb(0,0,153)","rgb(0,0,204)","rgb(0,0,255)","rgb(0,51,0)","rgb(0,51,51)","rgb(0,51,102)","rgb(0,51,153)","rgb(0,51,204)","rgb(0,51,255)","rgb(0,102,0)","rgb(0,102,51)","rgb(0,102,102)","rgb(0,102,153)","rgb(0,102,204)","rgb(0,102,255)","rgb(0,153,0)","rgb(0,153,51)","rgb(0,153,102)","rgb(0,153,153)","rgb(0,153,204)","rgb(0,153,255)","rgb(0,204,0)","rgb(0,204,51)","rgb(0,204,102)","rgb(0,204,153)","rgb(0,204,204)","rgb(0,204,255)","rgb(0,255,0)","rgb(0,255,51)","rgb(0,255,102)","rgb(0,255,153)","rgb(0,255,204)","rgb(0,255,255)","rgb(51,0,0)","rgb(51,0,51)","rgb(51,0,102)","rgb(51,0,153)","rgb(51,0,204)","rgb(51,0,255)","rgb(51,51,0)","rgb(51,51,51)","rgb(51,51,102)","rgb(51,51,153)","rgb(51,51,204)","rgb(51,51,255)","rgb(51,102,0)","rgb(51,102,51)","rgb(51,102,102)","rgb(51,102,153)","rgb(51,102,204)","rgb(51,102,255)","rgb(51,153,0)","rgb(51,153,51)","rgb(51,153,102)","rgb(51,153,153)","rgb(51,153,204)","rgb(51,153,255)","rgb(51,204,0)","rgb(51,204,51)","rgb(51,204,102)","rgb(51,204,153)","rgb(51,204,204)","rgb(51,204,255)","rgb(51,255,0)","rgb(51,255,51)","rgb(51,255,102)","rgb(51,255,153)","rgb(51,255,204)","rgb(51,255,255)","rgb(102,0,0)","rgb(102,0,51)","rgb(102,0,102)","rgb(102,0,153)","rgb(102,0,204)","rgb(102,0,255)","rgb(102,51,0)","rgb(102,51,51)","rgb(102,51,102)","rgb(102,51,153)","rgb(102,51,204)","rgb(102,51,255)","rgb(102,102,0)","rgb(102,102,51)","rgb(102,102,102)","rgb(102,102,153)","rgb(102,102,204)","rgb(102,102,255)","rgb(102,153,0)","rgb(102,153,51)","rgb(102,153,102)","rgb(102,153,153)","rgb(102,153,204)","rgb(102,153,255)","rgb(102,204,0)","rgb(102,204,51)","rgb(102,204,102)","rgb(102,204,153)","rgb(102,204,204)","rgb(102,204,255)","rgb(102,255,0)","rgb(102,255,51)","rgb(102,255,102)","rgb(102,255,153)","rgb(102,255,204)","rgb(102,255,255)","rgb(153,0,0)","rgb(153,0,51)","rgb(153,0,102)","rgb(153,0,153)","rgb(153,0,204)","rgb(153,0,255)","rgb(153,51,0)","rgb(153,51,51)","rgb(153,51,102)","rgb(153,51,153)","rgb(153,51,204)","rgb(153,51,255)","rgb(153,102,0)","rgb(153,102,51)","rgb(153,102,102)","rgb(153,102,153)","rgb(153,102,204)","rgb(153,102,255)","rgb(153,153,0)","rgb(153,153,51)","rgb(153,153,102)","rgb(153,153,153)","rgb(153,153,204)","rgb(153,153,255)","rgb(153,204,0)","rgb(153,204,51)","rgb(153,204,102)","rgb(153,204,153)","rgb(153,204,204)","rgb(153,204,255)","rgb(153,255,0)","rgb(153,255,51)","rgb(153,255,102)","rgb(153,255,153)","rgb(153,255,204)","rgb(153,255,255)","rgb(204,0,0)","rgb(204,0,51)","rgb(204,0,102)","rgb(204,0,153)","rgb(204,0,204)","rgb(204,0,255)","rgb(204,51,0)","rgb(204,51,51)","rgb(204,51,102)","rgb(204,51,153)","rgb(204,51,204)","rgb(204,51,255)","rgb(204,102,0)","rgb(204,102,51)","rgb(204,102,102)","rgb(204,102,153)","rgb(204,102,204)","rgb(204,102,255)","rgb(204,153,0)","rgb(204,153,51)","rgb(204,153,102)","rgb(204,153,153)","rgb(204,153,204)","rgb(204,153,255)","rgb(204,204,0)","rgb(204,204,51)","rgb(204,204,102)","rgb(204,204,153)","rgb(204,204,204)","rgb(204,204,255)","rgb(204,255,0)","rgb(204,255,51)","rgb(204,255,102)","rgb(204,255,153)","rgb(204,255,204)","rgb(204,255,255)","rgb(255,0,0)","rgb(255,0,51)","rgb(255,0,102)","rgb(255,0,153)","rgb(255,0,204)","rgb(255,0,255)","rgb(255,51,0)","rgb(255,51,51)","rgb(255,51,102)","rgb(255,51,153)","rgb(255,51,204)","rgb(255,51,255)","rgb(255,102,0)","rgb(255,102,51)","rgb(255,102,102)","rgb(255,102,153)","rgb(255,102,204)","rgb(255,102,255)","rgb(255,153,0)","rgb(255,153,51)","rgb(255,153,102)","rgb(255,153,153)","rgb(255,153,204)","rgb(255,153,255)","rgb(255,204,0)","rgb(255,204,51)","rgb(255,204,102)","rgb(255,204,153)","rgb(255,204,204)","rgb(255,204,255)","rgb(255,255,0)","rgb(255,255,51)","rgb(255,255,102)","rgb(255,255,153)","rgb(255,255,204)","rgb(255,255,255)"];function t$9(e){return(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function o$9(e,t=[0,0,0,1]){var A,i;return null!==(i=null===(A=e.match(/\d{1,3}/g))||void 0===A?void 0:A.map((e=>+e)))&&void 0!==i?i:t}const n$9=e=>{e.prototype.brightness=function({precision:e=4,percentage:t=!1}={}){const{r:A,g:i,b:n}=this.rgba(),a=+((.299*A+.587*i+.114*n)/255).toFixed(e);return t?100*a:a},e.prototype.luminance=function({precision:e=4,percentage:t=!1}={}){const{r:A,g:i,b:n}=this.rgba(),a=+(.2126*t$9(A)+.7152*t$9(i)+.0722*t$9(n)).toFixed(e);return t?100*a:a},e.prototype.contrast=function({bgColor:t="#fff",precision:A=4,ratio:i=!1}={}){const n=this.luminance(),a=(t instanceof e?t:new e(t)).luminance(),r=((Math.max(n,a)+.05)/(Math.min(n,a)+.05)).toFixed(A);return i?r+":1":+r},e.prototype.readableOn=function({bgColor:e="#fff",size:t="body",level:A="minimum"}={}){const i=this.contrast({bgColor:e});return"body"===t&&"enhanced"===A?i>=7:"large"===t&&"minimum"===A?i>=3:i>=4.5},e.prototype.equalTo=function(t="#fff"){const A=Object.values(this.rgba()),i=Object.values((t instanceof e?t:new e(t)).rgba());return A.toString()===i.toString()},e.prototype.isLight=function(){return this.brightness()>=.5},e.prototype.isDark=function(){return!this.isLight()},e.prototype.isCool=function(){const{h:e}=this.hsla();return 75<=e&&e<255},e.prototype.isWarm=function(){return!this.isCool()},e.prototype.isTinted=function(){return this.hsla().l>50},e.prototype.isShaded=function(){return this.hsla().l<50},e.prototype.isToned=function(){return this.hsla().s<100},e.prototype.isPureHue=function({reason:e=!0}={}){return this.isTinted()?!!e&&{pure:!1,reason:"tinted"}:this.isShaded()?!!e&&{pure:!1,reason:"shaded"}:this.isToned()?!!e&&{pure:!1,reason:"toned"}:!e||{pure:!0,reason:"N/A"}},e.prototype.closestCool=function(){const{h:e}=this.hsla();return this.isCool()?this:this.hueTo(e<75?75:254)},e.prototype.closestWarm=function(){const{h:e}=this.hsla();return this.isWarm()?this:this.hueTo(e<165?74:255)},e.prototype.closestPureHue=function(){const{h:t,a:A}=this.hsla(),{r:i,g:n,b:a,a:r}=function(e){const{h:t,s:A,l:i,a:n}=e,a=i/100,r=A/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(t/60%2-1)),l=a-s/2,c=t<60||300<=t&&t<360?s:120<=t&&t<240?0:o,d=240<=t&&t<360?0:60<=t&&t<180?s:o,h=t<120?0:180<=t&&t<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=n?n:1}}({h:t,s:100,l:50,a:A});return new e({r:i,g:n,b:a,a:r})},e.prototype.closestWebSafe=function(){const{r:t,g:A,b:i,a:n}=this.rgba();let[a,r,s]=new Array(3).fill(0),o=Number.POSITIVE_INFINITY,l={r:t,g:A,b:i,a:n};for(let e=0;e{for(var A in t)r$a.o(t,A)&&!r$a.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},g={};r$a.d(g,{Z:()=>a$9});const e$9={maroon:"rgb(128,0,0)","dark red":"rgb(139,0,0)",brown:"rgb(165,42,42)",firebrick:"rgb(178,34,34)",crimson:"rgb(220,20,60)",red:"rgb(255,0,0)",tomato:"rgb(255,99,71)",coral:"rgb(255,127,80)","indian red":"rgb(205,92,92)","light coral":"rgb(240,128,128)","dark salmon":"rgb(233,150,122)",salmon:"rgb(250,128,114)","light salmon":"rgb(255,160,122)","orange red":"rgb(255,69,0)","dark orange":"rgb(255,140,0)",orange:"rgb(255,165,0)",gold:"rgb(255,215,0)","dark golden rod":"rgb(184,134,11)","golden rod":"rgb(218,165,32)","pale golden rod":"rgb(238,232,170)","dark khaki":"rgb(189,183,107)",khaki:"rgb(240,230,140)",olive:"rgb(128,128,0)",yellow:"rgb(255,255,0)","yellow green":"rgb(154,205,50)","dark olive green":"rgb(85,107,47)","olive drab":"rgb(107,142,35)","lawn green":"rgb(124,252,0)","chart reuse":"rgb(127,255,0)","green yellow":"rgb(173,255,47)","dark green":"rgb(0,100,0)",green:"rgb(0,128,0)","forest green":"rgb(34,139,34)",lime:"rgb(0,255,0)","lime green":"rgb(50,205,50)","light green":"rgb(144,238,144)","pale green":"rgb(152,251,152)","dark sea green":"rgb(143,188,143)","medium spring green":"rgb(0,250,154)","spring green":"rgb(0,255,127)","sea green":"rgb(46,139,87)","medium aqua marine":"rgb(102,205,170)","medium sea green":"rgb(60,179,113)","light sea green":"rgb(32,178,170)","dark slate gray":"rgb(47,79,79)",teal:"rgb(0,128,128)","dark cyan":"rgb(0,139,139)",cyan:"rgb(0,255,255)",aqua:"rgb(0,255,255)","light cyan":"rgb(224,255,255)","dark turquoise":"rgb(0,206,209)",turquoise:"rgb(64,224,208)","medium turquoise":"rgb(72,209,204)","pale turquoise":"rgb(175,238,238)","aqua marine":"rgb(127,255,212)","powder blue":"rgb(176,224,230)","cadet blue":"rgb(95,158,160)","steel blue":"rgb(70,130,180)","corn flower blue":"rgb(100,149,237)","deep sky blue":"rgb(0,191,255)","dodger blue":"rgb(30,144,255)","light blue":"rgb(173,216,230)","sky blue":"rgb(135,206,235)","light sky blue":"rgb(135,206,250)","midnight blue":"rgb(25,25,112)",navy:"rgb(0,0,128)","dark blue":"rgb(0,0,139)","medium blue":"rgb(0,0,205)",blue:"rgb(0,0,255)","royal blue":"rgb(65,105,225)","blue violet":"rgb(138,43,226)",indigo:"rgb(75,0,130)","dark slate blue":"rgb(72,61,139)","slate blue":"rgb(106,90,205)","medium slate blue":"rgb(123,104,238)","medium purple":"rgb(147,112,219)","dark magenta":"rgb(139,0,139)","dark violet":"rgb(148,0,211)","dark orchid":"rgb(153,50,204)","medium orchid":"rgb(186,85,211)",purple:"rgb(128,0,128)",thistle:"rgb(216,191,216)",plum:"rgb(221,160,221)",violet:"rgb(238,130,238)",magenta:"rgb(255,0,255)",fuchsia:"rgb(255,0,255)",orchid:"rgb(218,112,214)","medium violet red":"rgb(199,21,133)","pale violet red":"rgb(219,112,147)","deep pink":"rgb(255,20,147)","hot pink":"rgb(255,105,180)","light pink":"rgb(255,182,193)",pink:"rgb(255,192,203)","antique white":"rgb(250,235,215)",beige:"rgb(245,245,220)",bisque:"rgb(255,228,196)","blanched almond":"rgb(255,235,205)",wheat:"rgb(245,222,179)","corn silk":"rgb(255,248,220)","lemon chiffon":"rgb(255,250,205)","light golden rod yellow":"rgb(250,250,210)","light yellow":"rgb(255,255,224)","saddle brown":"rgb(139,69,19)",sienna:"rgb(160,82,45)",chocolate:"rgb(210,105,30)",peru:"rgb(205,133,63)","sandy brown":"rgb(244,164,96)","burly wood":"rgb(222,184,135)",tan:"rgb(210,180,140)","rosy brown":"rgb(188,143,143)",moccasin:"rgb(255,228,181)","navajo white":"rgb(255,222,173)","peach puff":"rgb(255,218,185)","misty rose":"rgb(255,228,225)","lavender blush":"rgb(255,240,245)",linen:"rgb(250,240,230)","old lace":"rgb(253,245,230)","papaya whip":"rgb(255,239,213)","sea shell":"rgb(255,245,238)","mint cream":"rgb(245,255,250)","slate gray":"rgb(112,128,144)","light slate gray":"rgb(119,136,153)","light steel blue":"rgb(176,196,222)",lavender:"rgb(230,230,250)","floral white":"rgb(255,250,240)","alice blue":"rgb(240,248,255)","ghost white":"rgb(248,248,255)",honeydew:"rgb(240,255,240)",ivory:"rgb(255,255,240)",azure:"rgb(240,255,255)",snow:"rgb(255,250,250)",black:"rgb(0,0,0)","dim gray":"rgb(105,105,105)","dim grey":"rgb(105,105,105)",gray:"rgb(128,128,128)",grey:"rgb(128,128,128)","dark gray":"rgb(169,169,169)","dark grey":"rgb(169,169,169)",silver:"rgb(192,192,192)","light gray":"rgb(211,211,211)","light grey":"rgb(211,211,211)",gainsboro:"rgb(220,220,220)",gainsborough:"rgb(220,220,220)","white smoke":"rgb(245,245,245)",white:"rgb(255,255,255)",transparent:"rgba(0,0,0,0)"};function b$2(e,t=[0,0,0,1]){var A,i;return null!==(i=null===(A=e.match(/\d{1,3}/g))||void 0===A?void 0:A.map((e=>+e)))&&void 0!==i?i:t}const a$9=e=>{e.prototype.name=function({exact:e=!0}={}){const{r:t,g:A,b:i,a:n}=this.rgba();if(0===n)return"transparent";const[a,r]=[Object.keys(e$9),Object.values(e$9)];let s;if(e){const e=this.stringRGB({alpha:!1}).replace(/\s/g,"");s=a.find((t=>e$9[t]===e))}else{let e=Number.POSITIVE_INFINITY;for(let n=0;n{for(var A in t)t$8.o(t,A)&&!t$8.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},a$8={};t$8.d(a$8,{Z:()=>d$1});const n$8=6/29,r$9=Math.pow(n$8,3),o$8=Math.pow(29/3,3),e$8={x:.96422,y:1,z:.82521};function c$8(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function s$8(e,t,A){return Math.max(e,Math.min(t,A))}function u$6(e){const t=e%360;return t<0?t+360:t}function i$8(e){const{l:t,a:A,b:i}=function(e){const t=Object.values(function(e){const[t,A,i]=c$8([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=c$8([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(e)).map(((e,t)=>e/(100*Object.values(e$8)[t]))).map((e=>e>r$9?Math.cbrt(e):(o$8*e+16)/116));return{l:116*t[1]-16,a:500*(t[0]-t[1]),b:200*(t[1]-t[2]),alpha:e.a}}(e),n=180*Math.atan2(i,A)/Math.PI;return{l:t,c:Math.sqrt(Math.pow(A,2)+Math.pow(i,2)),h:u$6(n),a:e.a}}function h$2(e){const{l:t,c:A,h:i}=e;return function(e){const{l:t,a:A,b:i}=e,n=(t+16)/116,a=n+A/500,r=n-i/200,s=Object.values(e$8),[o,l,c]=[a,n,r].map(((e,t)=>(e>n$8?Math.pow(e,3):3*Math.pow(n$8,2)*(e-4/29))*s[t]*100));return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=c$8([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=c$8([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return s$8(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}({x:o,y:l,z:c,a:e.alpha})}({l:t,a:A*Math.cos(i*Math.PI/180),b:A*Math.sin(i*Math.PI/180),alpha:e.a})}const l$2=/lcha?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function p$1({l:e,c:t,h:A,a:i}){return[h$2({l:s$8(0,e,100),c:s$8(0,t,230),h:u$6(A),a:(n=i,void 0!==n?s$8(0,n,1):1)}),"lch"];var n}function f$1(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:t,c:A,h:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return p$1(e);if("string"==typeof e){l$2.lastIndex=0;const t=l$2.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(0===t?1:1===t?2.3:2===t?3.59:.01):+e));return p$1({l:e,c:A,h:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d$1=e=>{e.prototype.lcha=function(){return i$8(this.rgba())},e.prototype.stringLCH=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.lcha()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`lcha(${A}%, ${i}, ${n}, ${a})`:`lch(${A}%, ${i}, ${n})`},e.Parsers.push(f$1)};var b$1=a$8.Z,t$7={d:(e,t)=>{for(var A in t)t$7.o(t,A)&&!t$7.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$7={};t$7.d(n$7,{Z:()=>l$1});const r$8=Math.pow(6/29,3),e$7=Math.pow(29/3,3);function o$7(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function a$7(e,t,A){return Math.max(e,Math.min(t,A))}function u$5(e){const{l:t,u:A,v:i}=e,n=t>e$7*r$8?Math.pow((t+16)/116,3):t/e$7,a=(52*t/(A&&t?A+13*t*.20916005282038627:1)-1)/3,r=-5*n,s=n*(39*t/(i&&t?i+13*t*(9/18.43985):1)-5),o=a===-1/3?s-r:(s-r)/(a- -1/3);return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=o$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=o$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return a$7(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}({x:100*o,y:100*n,z:100*(a*o+r),a:e.a})}const c$7=/color\s*\(\s*luva?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$7({l:e,u:t,v:A,a:i}){return[u$5({l:a$7(0,e,100),u:a$7(-100,t,100),v:a$7(-100,A,100),a:(n=i,void 0!==n?a$7(0,n,1):1)}),"luv"];var n}function i$7(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:t,u:A,v:i}=e;return void 0!==t&&void 0!==A&&null!=i}(e))return s$7(e);if("string"==typeof e){c$7.lastIndex=0;const t=c$7.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<3?1:.01):+e));return s$7({l:e,u:A,v:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const l$1=e=>{e.prototype.luva=function(){return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=o$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=o$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(e)).map((e=>e/100)),n=A/1,a=t&&A&&i?t+15*A+3*i:19,r=4*t/a,s=9*A/a;let o=n>r$8?116*Math.cbrt(n)-16:e$7*n,l=13*o*(r-.20916005282038627),c=13*o*(s-.48807338454488514);return o===Number(-0)&&(o=0),l===Number(-0)&&(l=0),c===Number(-0)&&(c=0),{l:o,u:l,v:c,a:e.a}}(this.rgba())},e.prototype.stringLUV=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.luva()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`color(luva ${A}%, ${i}%, ${n}%, ${a})`:`color(luv ${A}%, ${i}%, ${n}%)`},e.Parsers.push(i$7)};var v=n$7.Z,t$6={d:(e,t)=>{for(var A in t)t$6.o(t,A)&&!t$6.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},a$6={};t$6.d(a$6,{Z:()=>d});const n$6=6/29,r$7=Math.pow(n$6,3),e$6=Math.pow(29/3,3),o$6={x:.96422,y:1,z:.82521};function c$6(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function s$6(e,t,A){return Math.max(e,Math.min(t,A))}function u$4(e){return void 0!==e?s$6(0,e,1):1}function i$6(e){const t=Object.values(function(e){const[t,A,i]=c$6([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=c$6([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(e)).map(((e,t)=>e/(100*Object.values(o$6)[t]))).map((e=>e>r$7?Math.cbrt(e):(e$6*e+16)/116));return{l:116*t[1]-16,a:500*(t[0]-t[1]),b:200*(t[1]-t[2]),alpha:e.a}}function l(e){const{l:t,a:A,b:i}=e,n=(t+16)/116,a=n+A/500,r=n-i/200,s=Object.values(o$6),[o,l,c]=[a,n,r].map(((e,t)=>(e>n$6?Math.pow(e,3):3*Math.pow(n$6,2)*(e-4/29))*s[t]*100));return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=c$6([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=c$6([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return s$6(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}({x:o,y:l,z:c,a:e.alpha})}const p=/laba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b({l:e,a:t,b:A,alpha:i}){return[l({l:s$6(0,e,100),a:s$6(-160,t,160),b:s$6(-160,A,160),alpha:u$4(i)}),"lab"]}function f(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:t,a:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return b(e);if("string"==typeof e){p.lastIndex=0;const t=p.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<3?1:.01):+e));return b({l:e,a:A,b:i,alpha:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d=e=>{e.prototype.laba=function(){return i$6(this.rgba())},e.prototype.stringLAB=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.laba()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`laba(${A}%, ${i}, ${n}, ${a})`:`lab(${A}%, ${i}, ${n})`},e.Parsers.push(f)};var h$1=a$6.Z,t$5={d:(e,t)=>{for(var A in t)t$5.o(t,A)&&!t$5.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$5={};function r$6(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function o$5(e,t,A){return Math.max(e,Math.min(t,A))}function e$5(e){const{u:t,v:A,w:i}=e,[n,a,r]=r$6([[1.5,0,0],[0,1,0],[1.5,-3,2]],[t,A,i]);return function(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=r$6([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=r$6([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return o$5(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}({x:n,y:a,z:r,a:e.a})}t$5.d(n$5,{Z:()=>s$5});const a$5=/color\s*\(\s*uvwa?\s*(\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function u$3({u:e,v:t,w:A,a:i}){return[e$5({u:o$5(0,e,200/3*.96422),v:o$5(0,t,100),w:o$5(-48.211,A,191.2605),a:(n=i,void 0!==n?o$5(0,n,1):1)}),"uvw"];var n}function c$5(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{u:t,v:A,w:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return u$3(e);if("string"==typeof e){a$5.lastIndex=0;const t=a$5.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map((e=>e.includes("%")?.01*+e.slice(0,-1):+e));return u$3({u:e,v:A,w:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const s$5=e=>{e.prototype.uvwa=function(){return function(e){const{x:t,y:A,z:i}=function(e){const[t,A,i]=r$6([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=r$6([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(e),[n,a,r]=r$6([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[t,A,i]);return{u:n,v:a,w:r,a:e.a}}(this.rgba())},e.prototype.stringUVW=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.uvwa()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`color(uvwa ${A}, ${i}, ${n}, ${a})`:`color(uvw ${A}, ${i}, ${n})`},e.Parsers.push(c$5)};var i$5=n$5.Z,t$4={d:(e,t)=>{for(var A in t)t$4.o(t,A)&&!t$4.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$4={};function r$5(e,t){return[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]]}function o$4(e,t,A){return Math.max(e,Math.min(t,A))}function e$4(e){const[t,A,i]=Object.values(function(e){const[t,A,i]=r$5([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}(e)).map((e=>e/100)),[n,a,r]=r$5([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[t,A,i]).map((e=>{return o$4(0,255*((t=e)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t),255);var t}));return{r:n,g:a,b:r,a:e.a}}t$4.d(n$4,{Z:()=>u$2});const a$4=/color\s*\(\s*xyza?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$4({x:e,y:t,z:A,a:i}){return[e$4({x:o$4(0,e,96.422),y:o$4(0,t,100),z:o$4(0,A,82.521),a:(n=i,void 0!==n?o$4(0,n,1):1)}),"xyz"];var n}function c$4(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{x:t,y:A,z:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return s$4(e);if("string"==typeof e){a$4.lastIndex=0;const t=a$4.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map((e=>e.includes("%")?.01*+e.slice(0,-1):+e));return s$4({x:e,y:A,z:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$2=e=>{e.prototype.xyza=function(){return function(e){const[t,A,i]=r$5([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(t=e,(t/=255)<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4));var t})));return function(e){const[t,A,i]=r$5([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:t,y:A,z:i,a:e.a}}({x:t,y:A,z:i,a:e.a})}(this.rgba())},e.prototype.stringXYZ=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.xyza()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`color(xyza ${A}, ${i}, ${n}, ${a})`:`color(xyz ${A}, ${i}, ${n})`},e.Parsers.push(c$4)};var i$4=n$4.Z,t$3={d:(e,t)=>{for(var A in t)t$3.o(t,A)&&!t$3.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$3={};function r$4(e,t,A){return Math.max(e,Math.min(t,A))}function a$3(e){const t=e%360;return t<0?t+360:t}function o$3(e){const{h:t,a:A}=function(e){var t;const{Cmin:A,Cmax:i,H:n,delta:a}=function(e){const[t,A,i]=Object.values(e).map((e=>e/255)),n=Math.max(t,A,i),a=Math.min(t,A,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===t?(A-i)/r%6:n===A?(i-t)/r+2:(t-A)/r+4,delta:r}}(e),r=(i+A)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$3(60*n),s:100*s,l:100*r,a:null!==(t=e.a)&&void 0!==t?t:1}}(e),{r:i,g:n,b:a}=e;return{h:t,w:Math.min(i,n,a)/2.55,b:100*(1-Math.max(i,n,a)/255),a:A}}function e$3(e){const{h:t,b:A,w:i,a:n}=e;return function(e){const{h:t,s:A,v:i,a:n}=e,a=i/100,r=a*(A/100),s=r*(1-Math.abs(t/60%2-1)),o=a-r,l=t<60||300<=t&&t<360?r:120<=t&&t<240?0:s,c=240<=t&&t<360?0:60<=t&&t<180?r:s,d=t<120?0:180<=t&&t<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=n?n:1}}({h:t,s:100===A?0:100-i/(100-A)*100,v:100-A,a:n})}t$3.d(n$3,{Z:()=>u$1});const s$3=/hwba?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function i$3({h:e,w:t,b:A,a:i}){return[e$3({h:a$3(e),w:r$4(0,t,100),b:r$4(0,A,100),a:(n=i,void 0!==n?r$4(0,n,1):1)}),"hwb"];var n}function c$3(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:t,w:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return i$3(e);if("string"==typeof e){s$3.lastIndex=0;const t=s$3.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(0===t?3.59:t<3?1:.01):+e));return i$3({h:e,w:A,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$1=e=>{e.prototype.hwba=function(){return o$3(this.rgba())},e.prototype.stringHWB=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.hwba()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`hwba(${a$3(A)}, ${i}%, ${n}%, ${a})`:`hwb(${a$3(A)}, ${i}%, ${n}%)`},e.Parsers.push(c$3)};var h=n$3.Z,t$2={d:(e,t)=>{for(var A in t)t$2.o(t,A)&&!t$2.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n$2={};function r$3(e,t,A){return Math.max(e,Math.min(t,A))}function s$2(e){const t=e%360;return t<0?t+360:t}function e$2(e){const{h:t,s:A,v:i,a:n}=e,a=i/100,r=a*(A/100),s=r*(1-Math.abs(t/60%2-1)),o=a-r,l=t<60||300<=t&&t<360?r:120<=t&&t<240?0:s,c=240<=t&&t<360?0:60<=t&&t<180?r:s,d=t<120?0:180<=t&&t<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=n?n:1}}t$2.d(n$2,{Z:()=>c$2});const a$2=/hsva?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o$2({h:e,s:t,v:A,a:i}){return[e$2({h:s$2(e),s:r$3(0,t,100),v:r$3(0,A,100),a:(n=i,void 0!==n?r$3(0,n,1):1)}),"hsv"];var n}function i$2(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:t,s:A,v:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return o$2(e);if("string"==typeof e){a$2.lastIndex=0;const t=a$2.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(0===t?3.59:t<3?1:.01):+e));return o$2({h:e,s:A,v:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const c$2=e=>{e.prototype.hsva=function(){return function(e){var t;const{Cmax:A,H:i,delta:n}=function(e){const[t,A,i]=Object.values(e).map((e=>e/255)),n=Math.max(t,A,i),a=Math.min(t,A,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===t?(A-i)/r%6:n===A?(i-t)/r+2:(t-A)/r+4,delta:r}}(e),a=0===n?0:n/A;return{h:s$2(60*i),s:100*a,v:100*A,a:null!==(t=e.a)&&void 0!==t?t:1}}(this.rgba())},e.prototype.stringHSV=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.hsva()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`hsva(${s$2(A)}, ${i}%, ${n}%, ${a})`:`hsv(${s$2(A)}, ${i}%, ${n}%)`},e.Parsers.push(i$2)};var u=n$2.Z,t$1={d:(e,t)=>{for(var A in t)t$1.o(t,A)&&!t$1.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},r$2={};function n$1(e,t,A){return Math.max(e,Math.min(t,A))}function o$1(e){let{r:t,y:A,b:i}=e;const n=Math.min(t,A,i);[t,A,i]=[t,A,i].map((e=>e-n));const a=Math.max(t,A,i);let r=Math.min(A,i);A-=r,i-=r,i&&r&&(i*=2,r*=2),t+=A,r+=A;const s=Math.max(t,r,i);if(s){const e=a/s;[t,r,i]=[t,r,i].map((t=>t*e))}return[t,r,i]=[t,r,i].map((e=>e+n)),{r:t,g:r,b:i,a:e.a}}t$1.d(r$2,{Z:()=>i$1});const a$1=/color\s*\(\s*ryba?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function e$1({r:e,y:t,b:A,a:i}){return[o$1({r:n$1(0,e,255),y:n$1(0,t,255),b:n$1(0,A,255),a:(n=i,void 0!==n?n$1(0,n,1):1)}),"ryb"];var n}function s$1(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:t,y:A,b:i}=e;return void 0!==t&&void 0!==A&&void 0!==i}(e))return e$1(e);if("string"==typeof e){a$1.lastIndex=0;const t=a$1.exec(e);if(t){const[e,A,i,n]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<3?2.55:.01):+e));return e$1({r:e,y:A,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i$1=e=>{e.prototype.ryba=function(){return function(e){let{r:t,g:A,b:i}=e;const n=Math.min(t,A,i);[t,A,i]=[t,A,i].map((e=>e-n));const a=Math.max(t,A,i);let r=Math.min(t,A);t-=r,A-=r,i&&A&&(i/=2,A/=2),r+=A,i+=A;const s=Math.max(t,r,i);if(s){const e=a/s;[t,r,i]=[t,r,i].map((t=>t*e))}return[t,r,i]=[t,r,i].map((e=>e+n)),{r:t,y:r,b:i,a:e.a}}(this.rgba())},e.prototype.stringRYB=function({alpha:e=!0,precision:t=[0,0,0,1]}={}){const[A,i,n,a]=Object.values(this.ryba()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`color(ryba ${A}, ${i}, ${n}, ${a})`:`color(ryb ${A}, ${i}, ${n})`},e.Parsers.push(s$1)};var c$1=r$2.Z,t={d:(e,A)=>{for(var i in A)t.o(A,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:A[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},n={};function e(e,t,A){return Math.max(e,Math.min(t,A))}function r$1(e){const{c:t,m:A,y:i,k:n,a:a}=e,[r,s,o]=[t,A,i].map((e=>255*(1-e/100)*(1-n/100)));return{r:r,g:s,b:o,a:a}}t.d(n,{Z:()=>i});const c=/device-cmyka?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?),?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o({c:t,m:A,y:i,k:n,a:a}){return[r$1({c:e(0,t,100),m:e(0,A,100),y:e(0,i,100),k:e(0,n,100),a:(r=a,void 0!==r?e(0,r,1):1)}),"cmyk"];var r}function a(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{c:t,m:A,y:i,k:n}=e;return void 0!==t&&void 0!==A&&void 0!==i&&void 0!==n}(e))return o(e);if("string"==typeof e){c.lastIndex=0;const t=c.exec(e);if(t){const[e,A,i,n,a]=t.filter((e=>void 0!==e)).slice(1).map(((e,t)=>e.includes("%")?+e.slice(0,-1)*(t<4?1:.01):+e));return o({c:e,m:A,y:i,k:n,a:a})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i=e=>{e.prototype.cmyka=function(){return function(e){const{r:t,g:A,b:i,a:n}=e,a=1-Math.max(t,A,i)/255,[r,s,o]=1===a?[0,0,0]:[t,A,i].map((e=>100*(1-e/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:n}}(this.rgba())},e.prototype.stringCMYK=function({alpha:e=!0,precision:t=[0,0,0,0,1]}={}){const[A,i,n,a,r]=Object.values(this.cmyka()).map(((e,A)=>function(e,t){return+e.toFixed(t>=0?t:0)}(e,t[A])));return e?`device-cmyk(${A}, ${i}, ${n}, ${a}, ${r})`:`device-cmyk(${A}, ${i}, ${n}, ${a})`},e.Parsers.push(a)};var s=n.Z;class ExcalidrawScene{constructor(e=[]){this.type="excalidraw",this.version=2,this.source=GITHUB_RELEASES+PLUGIN_VERSION,this.elements=[],this.elements=e}toExJSON(){return Object.assign(Object.assign({},this),{elements:this.elements.map((e=>Object.assign({},e)))})}}var ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array;function create$1(){var e=new ARRAY_TYPE(16);return ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function clone(e){var t=new ARRAY_TYPE(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function fromValues$1(e,t,A,i,n,a,r,s,o,l,c,d,h,u,g,p){var m=new ARRAY_TYPE(16);return m[0]=e,m[1]=t,m[2]=A,m[3]=i,m[4]=n,m[5]=a,m[6]=r,m[7]=s,m[8]=o,m[9]=l,m[10]=c,m[11]=d,m[12]=h,m[13]=u,m[14]=g,m[15]=p,m}function multiply(e,t,A){var i=t[0],n=t[1],a=t[2],r=t[3],s=t[4],o=t[5],l=t[6],c=t[7],d=t[8],h=t[9],u=t[10],g=t[11],p=t[12],m=t[13],w=t[14],f=t[15],E=A[0],B=A[1],b=A[2],v=A[3];return e[0]=E*i+B*s+b*d+v*p,e[1]=E*n+B*o+b*h+v*m,e[2]=E*a+B*l+b*u+v*w,e[3]=E*r+B*c+b*g+v*f,E=A[4],B=A[5],b=A[6],v=A[7],e[4]=E*i+B*s+b*d+v*p,e[5]=E*n+B*o+b*h+v*m,e[6]=E*a+B*l+b*u+v*w,e[7]=E*r+B*c+b*g+v*f,E=A[8],B=A[9],b=A[10],v=A[11],e[8]=E*i+B*s+b*d+v*p,e[9]=E*n+B*o+b*h+v*m,e[10]=E*a+B*l+b*u+v*w,e[11]=E*r+B*c+b*g+v*f,E=A[12],B=A[13],b=A[14],v=A[15],e[12]=E*i+B*s+b*d+v*p,e[13]=E*n+B*o+b*h+v*m,e[14]=E*a+B*l+b*u+v*w,e[15]=E*r+B*c+b*g+v*f,e}function create(){var e=new ARRAY_TYPE(3);return ARRAY_TYPE!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function fromValues(e,t,A){var i=new ARRAY_TYPE(3);return i[0]=e,i[1]=t,i[2]=A,i}function transformMat4(e,t,A){var i=t[0],n=t[1],a=t[2],r=A[3]*i+A[7]*n+A[11]*a+A[15];return r=r||1,e[0]=(A[0]*i+A[4]*n+A[8]*a+A[12])/r,e[1]=(A[1]*i+A[5]*n+A[9]*a+A[13])/r,e[2]=(A[2]*i+A[6]*n+A[10]*a+A[14])/r,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)}),create();const random=new Random(Date.now()),randomInteger=()=>Math.floor(random.next()*2**31),randomId=()=>nanoid$1();function dimensionsFromPoints(e){const t=e.map((([e])=>e)),A=e.map((([,e])=>e)),i=Math.min(...t),n=Math.min(...A);return[Math.max(...t)-i,Math.max(...A)-n]}function getWindingOrder(e){return e.reduce(((e,[t,A],i,n)=>{const a=n[i+1];return((a?a[0]:0)-t)*((a?a[1]:0)+A)+e}),0)>0?"clockwise":"counterclockwise"}var chromaExports={},chroma$1={get exports(){return chromaExports},set exports(e){chromaExports=e}};chroma$1.exports=function(){for(var e=function(e,t,A){return void 0===t&&(t=0),void 0===A&&(A=1),eA?A:e},t=e,A={},i=0,n=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];i255)&&(e._clipped=!0),e[A]=t(e[A],0,255)):3===A&&(e[A]=t(e[A],0,1));return e},limit:e,type:r,unpack:function(e,t){return void 0===t&&(t=null),e.length>=3?Array.prototype.slice.call(e):"object"==s(e[0])&&t?t.split("").filter((function(t){return void 0!==e[0][t]})).map((function(t){return e[0][t]})):e[0]},last:function(e){if(e.length<2)return null;var t=e.length-1;return"string"==o(e[t])?e[t].toLowerCase():null},PI:l,TWOPI:2*l,PITHIRD:l/3,DEG2RAD:l/180,RAD2DEG:180/l},d={format:{},autodetect:[]},h=c.last,u=c.clip_rgb,g=c.type,p=d,m=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=this;if("object"===g(e[0])&&e[0].constructor&&e[0].constructor===this.constructor)return e[0];var i=h(e),n=!1;if(!i){n=!0,p.sorted||(p.autodetect=p.autodetect.sort((function(e,t){return t.p-e.p})),p.sorted=!0);for(var a=0,r=p.autodetect;a4?e[4]:1;return 1===a?[0,0,0,r]:[A>=1?0:255*(1-A)*(1-a),i>=1?0:255*(1-i)*(1-a),n>=1?0:255*(1-n)*(1-a),r]},F=E,x=w,T=d,S=c.unpack,I=c.type,M=v;x.prototype.cmyk=function(){return M(this._rgb)},F.cmyk=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(x,[null].concat(e,["cmyk"])))},T.format.cmyk=y,T.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=S(e,"cmyk"),"array"===I(e)&&4===e.length)return"cmyk"}});var k=c.unpack,U=c.last,Q=function(e){return Math.round(100*e)/100},O=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=k(e,"hsla"),i=U(e)||"lsa";return A[0]=Q(A[0]||0),A[1]=Q(100*A[1])+"%",A[2]=Q(100*A[2])+"%","hsla"===i||A.length>3&&A[3]<1?(A[3]=A.length>3?A[3]:1,i="hsla"):A.length=3,i+"("+A.join(",")+")"},L=c.unpack,N=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=(e=L(e,"rgba"))[0],i=e[1],n=e[2];A/=255,i/=255,n/=255;var a,r,s=Math.min(A,i,n),o=Math.max(A,i,n),l=(o+s)/2;return o===s?(a=0,r=Number.NaN):a=l<.5?(o-s)/(o+s):(o-s)/(2-o-s),A==o?r=(i-n)/(o-s):i==o?r=2+(n-A)/(o-s):n==o&&(r=4+(A-i)/(o-s)),(r*=60)<0&&(r+=360),e.length>3&&void 0!==e[3]?[r,a,l,e[3]]:[r,a,l]},D=c.unpack,R=c.last,H=O,P=N,V=Math.round,K=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=D(e,"rgba"),i=R(e)||"rgb";return"hsl"==i.substr(0,3)?H(P(A),i):(A[0]=V(A[0]),A[1]=V(A[1]),A[2]=V(A[2]),("rgba"===i||A.length>3&&A[3]<1)&&(A[3]=A.length>3?A[3]:1,i="rgba"),i+"("+A.slice(0,"rgb"===i?3:4).join(",")+")")},G=c.unpack,W=Math.round,z=function(){for(var e,t=[],A=arguments.length;A--;)t[A]=arguments[A];var i,n,a,r=(t=G(t,"hsl"))[0],s=t[1],o=t[2];if(0===s)i=n=a=255*o;else{var l=[0,0,0],c=[0,0,0],d=o<.5?o*(1+s):o+s-o*s,h=2*o-d,u=r/360;l[0]=u+1/3,l[1]=u,l[2]=u-1/3;for(var g=0;g<3;g++)l[g]<0&&(l[g]+=1),l[g]>1&&(l[g]-=1),6*l[g]<1?c[g]=h+6*(d-h)*l[g]:2*l[g]<1?c[g]=d:3*l[g]<2?c[g]=h+(d-h)*(2/3-l[g])*6:c[g]=h;i=(e=[W(255*c[0]),W(255*c[1]),W(255*c[2])])[0],n=e[1],a=e[2]}return t.length>3?[i,n,a,t[3]]:[i,n,a,1]},X=z,Y=d,j=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,_=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,J=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,Z=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,q=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,$=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,ee=Math.round,te=function(e){var t;if(e=e.toLowerCase().trim(),Y.format.named)try{return Y.format.named(e)}catch(e){}if(t=e.match(j)){for(var A=t.slice(1,4),i=0;i<3;i++)A[i]=+A[i];return A[3]=1,A}if(t=e.match(_)){for(var n=t.slice(1,5),a=0;a<4;a++)n[a]=+n[a];return n}if(t=e.match(J)){for(var r=t.slice(1,4),s=0;s<3;s++)r[s]=ee(2.55*r[s]);return r[3]=1,r}if(t=e.match(Z)){for(var o=t.slice(1,5),l=0;l<3;l++)o[l]=ee(2.55*o[l]);return o[3]=+o[3],o}if(t=e.match(q)){var c=t.slice(1,4);c[1]*=.01,c[2]*=.01;var d=X(c);return d[3]=1,d}if(t=e.match($)){var h=t.slice(1,4);h[1]*=.01,h[2]*=.01;var u=X(h);return u[3]=+t[4],u}};te.test=function(e){return j.test(e)||_.test(e)||J.test(e)||Z.test(e)||q.test(e)||$.test(e)};var Ae=E,ie=w,ne=d,ae=c.type,re=K,se=te;ie.prototype.css=function(e){return re(this._rgb,e)},Ae.css=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(ie,[null].concat(e,["css"])))},ne.format.css=se,ne.autodetect.push({p:5,test:function(e){for(var t=[],A=arguments.length-1;A-- >0;)t[A]=arguments[A+1];if(!t.length&&"string"===ae(e)&&se.test(e))return"css"}});var oe=w,le=E,ce=c.unpack;d.format.gl=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=ce(e,"rgba");return A[0]*=255,A[1]*=255,A[2]*=255,A},le.gl=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(oe,[null].concat(e,["gl"])))},oe.prototype.gl=function(){var e=this._rgb;return[e[0]/255,e[1]/255,e[2]/255,e[3]]};var de=c.unpack,he=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i=de(e,"rgb"),n=i[0],a=i[1],r=i[2],s=Math.min(n,a,r),o=Math.max(n,a,r),l=o-s,c=100*l/255,d=s/(255-l)*100;return 0===l?A=Number.NaN:(n===o&&(A=(a-r)/l),a===o&&(A=2+(r-n)/l),r===o&&(A=4+(n-a)/l),(A*=60)<0&&(A+=360)),[A,c,d]},ue=c.unpack,ge=Math.floor,pe=function(){for(var e,t,A,i,n,a,r=[],s=arguments.length;s--;)r[s]=arguments[s];var o,l,c,d=(r=ue(r,"hcg"))[0],h=r[1],u=r[2];u*=255;var g=255*h;if(0===h)o=l=c=u;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var p=ge(d/=60),m=d-p,w=u*(1-h),f=w+g*(1-m),E=w+g*m,B=w+g;switch(p){case 0:o=(e=[B,E,w])[0],l=e[1],c=e[2];break;case 1:o=(t=[f,B,w])[0],l=t[1],c=t[2];break;case 2:o=(A=[w,B,E])[0],l=A[1],c=A[2];break;case 3:o=(i=[w,f,B])[0],l=i[1],c=i[2];break;case 4:o=(n=[E,w,B])[0],l=n[1],c=n[2];break;case 5:o=(a=[B,w,f])[0],l=a[1],c=a[2]}}return[o,l,c,r.length>3?r[3]:1]},me=c.unpack,we=c.type,fe=E,Ee=w,Be=d,be=he;Ee.prototype.hcg=function(){return be(this._rgb)},fe.hcg=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(Ee,[null].concat(e,["hcg"])))},Be.format.hcg=pe,Be.autodetect.push({p:1,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=me(e,"hcg"),"array"===we(e)&&3===e.length)return"hcg"}});var ve=c.unpack,Ce=c.last,ye=Math.round,Fe=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=ve(e,"rgba"),i=A[0],n=A[1],a=A[2],r=A[3],s=Ce(e)||"auto";void 0===r&&(r=1),"auto"===s&&(s=r<1?"rgba":"rgb");var o="000000"+((i=ye(i))<<16|(n=ye(n))<<8|(a=ye(a))).toString(16);o=o.substr(o.length-6);var l="0"+ye(255*r).toString(16);switch(l=l.substr(l.length-2),s.toLowerCase()){case"rgba":return"#"+o+l;case"argb":return"#"+l+o;default:return"#"+o}},xe=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,Te=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,Se=function(e){if(e.match(xe)){4!==e.length&&7!==e.length||(e=e.substr(1)),3===e.length&&(e=(e=e.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]);var t=parseInt(e,16);return[t>>16,t>>8&255,255&t,1]}if(e.match(Te)){5!==e.length&&9!==e.length||(e=e.substr(1)),4===e.length&&(e=(e=e.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]);var A=parseInt(e,16);return[A>>24&255,A>>16&255,A>>8&255,Math.round((255&A)/255*100)/100]}throw new Error("unknown hex color: "+e)},Ie=E,Me=w,ke=c.type,Ue=d,Qe=Fe;Me.prototype.hex=function(e){return Qe(this._rgb,e)},Ie.hex=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(Me,[null].concat(e,["hex"])))},Ue.format.hex=Se,Ue.autodetect.push({p:4,test:function(e){for(var t=[],A=arguments.length-1;A-- >0;)t[A]=arguments[A+1];if(!t.length&&"string"===ke(e)&&[3,4,5,6,7,8,9].indexOf(e.length)>=0)return"hex"}});var Oe=c.unpack,Le=c.TWOPI,Ne=Math.min,De=Math.sqrt,Re=Math.acos,He=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i=Oe(e,"rgb"),n=i[0],a=i[1],r=i[2],s=Ne(n/=255,a/=255,r/=255),o=(n+a+r)/3,l=o>0?1-s/o:0;return 0===l?A=NaN:(A=(n-a+(n-r))/2,A/=De((n-a)*(n-a)+(n-r)*(a-r)),A=Re(A),r>a&&(A=Le-A),A/=Le),[360*A,l,o]},Pe=c.unpack,Ve=c.limit,Ke=c.TWOPI,Ge=c.PITHIRD,We=Math.cos,ze=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i,n,a=(e=Pe(e,"hsi"))[0],r=e[1],s=e[2];return isNaN(a)&&(a=0),isNaN(r)&&(r=0),a>360&&(a-=360),a<0&&(a+=360),(a/=360)<1/3?i=1-((n=(1-r)/3)+(A=(1+r*We(Ke*a)/We(Ge-Ke*a))/3)):a<2/3?n=1-((A=(1-r)/3)+(i=(1+r*We(Ke*(a-=1/3))/We(Ge-Ke*a))/3)):A=1-((i=(1-r)/3)+(n=(1+r*We(Ke*(a-=2/3))/We(Ge-Ke*a))/3)),[255*(A=Ve(s*A*3)),255*(i=Ve(s*i*3)),255*(n=Ve(s*n*3)),e.length>3?e[3]:1]},Xe=c.unpack,Ye=c.type,je=E,_e=w,Je=d,Ze=He;_e.prototype.hsi=function(){return Ze(this._rgb)},je.hsi=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(_e,[null].concat(e,["hsi"])))},Je.format.hsi=ze,Je.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=Xe(e,"hsi"),"array"===Ye(e)&&3===e.length)return"hsi"}});var qe=c.unpack,$e=c.type,et=E,tt=w,At=d,it=N;tt.prototype.hsl=function(){return it(this._rgb)},et.hsl=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(tt,[null].concat(e,["hsl"])))},At.format.hsl=z,At.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=qe(e,"hsl"),"array"===$e(e)&&3===e.length)return"hsl"}});var nt=c.unpack,at=Math.min,rt=Math.max,st=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i,n,a=(e=nt(e,"rgb"))[0],r=e[1],s=e[2],o=at(a,r,s),l=rt(a,r,s),c=l-o;return n=l/255,0===l?(A=Number.NaN,i=0):(i=c/l,a===l&&(A=(r-s)/c),r===l&&(A=2+(s-a)/c),s===l&&(A=4+(a-r)/c),(A*=60)<0&&(A+=360)),[A,i,n]},ot=c.unpack,lt=Math.floor,ct=function(){for(var e,t,A,i,n,a,r=[],s=arguments.length;s--;)r[s]=arguments[s];var o,l,c,d=(r=ot(r,"hsv"))[0],h=r[1],u=r[2];if(u*=255,0===h)o=l=c=u;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var g=lt(d/=60),p=d-g,m=u*(1-h),w=u*(1-h*p),f=u*(1-h*(1-p));switch(g){case 0:o=(e=[u,f,m])[0],l=e[1],c=e[2];break;case 1:o=(t=[w,u,m])[0],l=t[1],c=t[2];break;case 2:o=(A=[m,u,f])[0],l=A[1],c=A[2];break;case 3:o=(i=[m,w,u])[0],l=i[1],c=i[2];break;case 4:o=(n=[f,m,u])[0],l=n[1],c=n[2];break;case 5:o=(a=[u,m,w])[0],l=a[1],c=a[2]}}return[o,l,c,r.length>3?r[3]:1]},dt=c.unpack,ht=c.type,ut=E,gt=w,pt=d,mt=st;gt.prototype.hsv=function(){return mt(this._rgb)},ut.hsv=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(gt,[null].concat(e,["hsv"])))},pt.format.hsv=ct,pt.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=dt(e,"hsv"),"array"===ht(e)&&3===e.length)return"hsv"}});var wt={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},ft=wt,Et=c.unpack,Bt=Math.pow,bt=function(e){return(e/=255)<=.04045?e/12.92:Bt((e+.055)/1.055,2.4)},vt=function(e){return e>ft.t3?Bt(e,1/3):e/ft.t2+ft.t0},Ct=function(e,t,A){return e=bt(e),t=bt(t),A=bt(A),[vt((.4124564*e+.3575761*t+.1804375*A)/ft.Xn),vt((.2126729*e+.7151522*t+.072175*A)/ft.Yn),vt((.0193339*e+.119192*t+.9503041*A)/ft.Zn)]},yt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=Et(e,"rgb"),i=A[0],n=A[1],a=A[2],r=Ct(i,n,a),s=r[0],o=r[1],l=116*o-16;return[l<0?0:l,500*(s-o),200*(o-r[2])]},Ft=wt,xt=c.unpack,Tt=Math.pow,St=function(e){return 255*(e<=.00304?12.92*e:1.055*Tt(e,1/2.4)-.055)},It=function(e){return e>Ft.t1?e*e*e:Ft.t2*(e-Ft.t0)},Mt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A,i,n,a=(e=xt(e,"lab"))[0],r=e[1],s=e[2];return i=(a+16)/116,A=isNaN(r)?i:i+r/500,n=isNaN(s)?i:i-s/200,i=Ft.Yn*It(i),A=Ft.Xn*It(A),n=Ft.Zn*It(n),[St(3.2404542*A-1.5371385*i-.4985314*n),St(-.969266*A+1.8760108*i+.041556*n),St(.0556434*A-.2040259*i+1.0572252*n),e.length>3?e[3]:1]},kt=c.unpack,Ut=c.type,Qt=E,Ot=w,Lt=d,Nt=yt;Ot.prototype.lab=function(){return Nt(this._rgb)},Qt.lab=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(Ot,[null].concat(e,["lab"])))},Lt.format.lab=Mt,Lt.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=kt(e,"lab"),"array"===Ut(e)&&3===e.length)return"lab"}});var Dt=c.unpack,Rt=c.RAD2DEG,Ht=Math.sqrt,Pt=Math.atan2,Vt=Math.round,Kt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=Dt(e,"lab"),i=A[0],n=A[1],a=A[2],r=Ht(n*n+a*a),s=(Pt(a,n)*Rt+360)%360;return 0===Vt(1e4*r)&&(s=Number.NaN),[i,r,s]},Gt=c.unpack,Wt=yt,zt=Kt,Xt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=Gt(e,"rgb"),i=A[0],n=A[1],a=A[2],r=Wt(i,n,a),s=r[0],o=r[1],l=r[2];return zt(s,o,l)},Yt=c.unpack,jt=c.DEG2RAD,_t=Math.sin,Jt=Math.cos,Zt=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=Yt(e,"lch"),i=A[0],n=A[1],a=A[2];return isNaN(a)&&(a=0),[i,Jt(a*=jt)*n,_t(a)*n]},qt=c.unpack,$t=Zt,eA=Mt,tA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=(e=qt(e,"lch"))[0],i=e[1],n=e[2],a=$t(A,i,n),r=a[0],s=a[1],o=a[2],l=eA(r,s,o);return[l[0],l[1],l[2],e.length>3?e[3]:1]},AA=c.unpack,iA=tA,nA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=AA(e,"hcl").reverse();return iA.apply(void 0,A)},aA=c.unpack,rA=c.type,sA=E,oA=w,lA=d,cA=Xt;oA.prototype.lch=function(){return cA(this._rgb)},oA.prototype.hcl=function(){return cA(this._rgb).reverse()},sA.lch=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(oA,[null].concat(e,["lch"])))},sA.hcl=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(oA,[null].concat(e,["hcl"])))},lA.format.lch=tA,lA.format.hcl=nA,["lch","hcl"].forEach((function(e){return lA.autodetect.push({p:2,test:function(){for(var t=[],A=arguments.length;A--;)t[A]=arguments[A];if(t=aA(t,e),"array"===rA(t)&&3===t.length)return e}})}));var dA={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",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",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:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",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",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},hA=d,uA=c.type,gA=dA,pA=Se,mA=Fe;w.prototype.name=function(){for(var e=mA(this._rgb,"rgb"),t=0,A=Object.keys(gA);t0;)t[A]=arguments[A+1];if(!t.length&&"string"===uA(e)&&gA[e.toLowerCase()])return"named"}});var wA=c.unpack,fA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=wA(e,"rgb");return(A[0]<<16)+(A[1]<<8)+A[2]},EA=c.type,BA=function(e){if("number"==EA(e)&&e>=0&&e<=16777215)return[e>>16,e>>8&255,255&e,1];throw new Error("unknown num color: "+e)},bA=E,vA=w,CA=d,yA=c.type,FA=fA;vA.prototype.num=function(){return FA(this._rgb)},bA.num=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(vA,[null].concat(e,["num"])))},CA.format.num=BA,CA.autodetect.push({p:5,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(1===e.length&&"number"===yA(e[0])&&e[0]>=0&&e[0]<=16777215)return"num"}});var xA=E,TA=w,SA=d,IA=c.unpack,MA=c.type,kA=Math.round;TA.prototype.rgb=function(e){return void 0===e&&(e=!0),!1===e?this._rgb.slice(0,3):this._rgb.slice(0,3).map(kA)},TA.prototype.rgba=function(e){return void 0===e&&(e=!0),this._rgb.slice(0,4).map((function(t,A){return A<3?!1===e?t:kA(t):t}))},xA.rgb=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(TA,[null].concat(e,["rgb"])))},SA.format.rgb=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=IA(e,"rgba");return void 0===A[3]&&(A[3]=1),A},SA.autodetect.push({p:3,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=IA(e,"rgba"),"array"===MA(e)&&(3===e.length||4===e.length&&"number"==MA(e[3])&&e[3]>=0&&e[3]<=1))return"rgb"}});var UA=Math.log,QA=function(e){var t,A,i,n=e/100;return n<66?(t=255,A=n<6?0:-155.25485562709179-.44596950469579133*(A=n-2)+104.49216199393888*UA(A),i=n<20?0:.8274096064007395*(i=n-10)-254.76935184120902+115.67994401066147*UA(i)):(t=351.97690566805693+.114206453784165*(t=n-55)-40.25366309332127*UA(t),A=325.4494125711974+.07943456536662342*(A=n-50)-28.0852963507957*UA(A),i=255),[t,A,i,1]},OA=QA,LA=c.unpack,NA=Math.round,DA=E,RA=w,HA=d,PA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var A,i=LA(e,"rgb"),n=i[0],a=i[2],r=1e3,s=4e4,o=.4;s-r>o;){var l=OA(A=.5*(s+r));l[2]/l[0]>=a/n?s=A:r=A}return NA(A)};RA.prototype.temp=RA.prototype.kelvin=RA.prototype.temperature=function(){return PA(this._rgb)},DA.temp=DA.kelvin=DA.temperature=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(RA,[null].concat(e,["temp"])))},HA.format.temp=HA.format.kelvin=HA.format.temperature=QA;var VA=c.unpack,KA=Math.cbrt,GA=Math.pow,WA=Math.sign,zA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=VA(e,"rgb"),i=A[0],n=A[1],a=A[2],r=[XA(i/255),XA(n/255),XA(a/255)],s=r[0],o=r[1],l=r[2],c=KA(.4122214708*s+.5363325363*o+.0514459929*l),d=KA(.2119034982*s+.6806995451*o+.1073969566*l),h=KA(.0883024619*s+.2817188376*o+.6299787005*l);return[.2104542553*c+.793617785*d-.0040720468*h,1.9779984951*c-2.428592205*d+.4505937099*h,.0259040371*c+.7827717662*d-.808675766*h]};function XA(e){var t=Math.abs(e);return t<.04045?e/12.92:(WA(e)||1)*GA((t+.055)/1.055,2.4)}var YA=c.unpack,jA=Math.pow,_A=Math.sign,JA=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=(e=YA(e,"lab"))[0],i=e[1],n=e[2],a=jA(A+.3963377774*i+.2158037573*n,3),r=jA(A-.1055613458*i-.0638541728*n,3),s=jA(A-.0894841775*i-1.291485548*n,3);return[255*ZA(4.0767416621*a-3.3077115913*r+.2309699292*s),255*ZA(-1.2684380046*a+2.6097574011*r-.3413193965*s),255*ZA(-.0041960863*a-.7034186147*r+1.707614701*s),e.length>3?e[3]:1]};function ZA(e){var t=Math.abs(e);return t>.0031308?(_A(e)||1)*(1.055*jA(t,1/2.4)-.055):12.92*e}var qA=c.unpack,$A=c.type,ei=E,ti=w,Ai=d,ii=zA;ti.prototype.oklab=function(){return ii(this._rgb)},ei.oklab=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(ti,[null].concat(e,["oklab"])))},Ai.format.oklab=JA,Ai.autodetect.push({p:3,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=qA(e,"oklab"),"array"===$A(e)&&3===e.length)return"oklab"}});var ni=c.unpack,ai=zA,ri=Kt,si=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=ni(e,"rgb"),i=A[0],n=A[1],a=A[2],r=ai(i,n,a),s=r[0],o=r[1],l=r[2];return ri(s,o,l)},oi=c.unpack,li=Zt,ci=JA,di=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var A=(e=oi(e,"lch"))[0],i=e[1],n=e[2],a=li(A,i,n),r=a[0],s=a[1],o=a[2],l=ci(r,s,o);return[l[0],l[1],l[2],e.length>3?e[3]:1]},hi=c.unpack,ui=c.type,gi=E,pi=w,mi=d,wi=si;pi.prototype.oklch=function(){return wi(this._rgb)},gi.oklch=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(pi,[null].concat(e,["oklch"])))},mi.format.oklch=di,mi.autodetect.push({p:3,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=hi(e,"oklch"),"array"===ui(e)&&3===e.length)return"oklch"}});var fi=w,Ei=c.type;fi.prototype.alpha=function(e,t){return void 0===t&&(t=!1),void 0!==e&&"number"===Ei(e)?t?(this._rgb[3]=e,this):new fi([this._rgb[0],this._rgb[1],this._rgb[2],e],"rgb"):this._rgb[3]},w.prototype.clipped=function(){return this._rgb._clipped||!1};var Bi=w,bi=wt;Bi.prototype.darken=function(e){void 0===e&&(e=1);var t=this.lab();return t[0]-=bi.Kn*e,new Bi(t,"lab").alpha(this.alpha(),!0)},Bi.prototype.brighten=function(e){return void 0===e&&(e=1),this.darken(-e)},Bi.prototype.darker=Bi.prototype.darken,Bi.prototype.brighter=Bi.prototype.brighten,w.prototype.get=function(e){var t=e.split("."),A=t[0],i=t[1],n=this[A]();if(i){var a=A.indexOf(i)-("ok"===A.substr(0,2)?2:0);if(a>-1)return n[a];throw new Error("unknown channel "+i+" in mode "+A)}return n};var vi=w,Ci=c.type,yi=Math.pow;vi.prototype.luminance=function(e){if(void 0!==e&&"number"===Ci(e)){if(0===e)return new vi([0,0,0,this._rgb[3]],"rgb");if(1===e)return new vi([255,255,255,this._rgb[3]],"rgb");var t=this.luminance(),A=20,i=function(t,n){var a=t.interpolate(n,.5,"rgb"),r=a.luminance();return Math.abs(e-r)<1e-7||!A--?a:r>e?i(t,a):i(a,n)},n=(t>e?i(new vi([0,0,0]),this):i(this,new vi([255,255,255]))).rgb();return new vi(n.concat([this._rgb[3]]))}return Fi.apply(void 0,this._rgb.slice(0,3))};var Fi=function(e,t,A){return.2126*(e=xi(e))+.7152*(t=xi(t))+.0722*xi(A)},xi=function(e){return(e/=255)<=.03928?e/12.92:yi((e+.055)/1.055,2.4)},Ti={},Si=w,Ii=c.type,Mi=Ti,ki=function(e,t,A){void 0===A&&(A=.5);for(var i=[],n=arguments.length-3;n-- >0;)i[n]=arguments[n+3];var a=i[0]||"lrgb";if(Mi[a]||i.length||(a=Object.keys(Mi)[0]),!Mi[a])throw new Error("interpolation mode "+a+" is not defined");return"object"!==Ii(e)&&(e=new Si(e)),"object"!==Ii(t)&&(t=new Si(t)),Mi[a](e,t,A).alpha(e.alpha()+A*(t.alpha()-e.alpha()))},Ui=w,Qi=ki;Ui.prototype.mix=Ui.prototype.interpolate=function(e,t){void 0===t&&(t=.5);for(var A=[],i=arguments.length-2;i-- >0;)A[i]=arguments[i+2];return Qi.apply(void 0,[this,e,t].concat(A))};var Oi=w;Oi.prototype.premultiply=function(e){void 0===e&&(e=!1);var t=this._rgb,A=t[3];return e?(this._rgb=[t[0]*A,t[1]*A,t[2]*A,A],this):new Oi([t[0]*A,t[1]*A,t[2]*A,A],"rgb")};var Li=w,Ni=wt;Li.prototype.saturate=function(e){void 0===e&&(e=1);var t=this.lch();return t[1]+=Ni.Kn*e,t[1]<0&&(t[1]=0),new Li(t,"lch").alpha(this.alpha(),!0)},Li.prototype.desaturate=function(e){return void 0===e&&(e=1),this.saturate(-e)};var Di=w,Ri=c.type;Di.prototype.set=function(e,t,A){void 0===A&&(A=!1);var i=e.split("."),n=i[0],a=i[1],r=this[n]();if(a){var s=n.indexOf(a)-("ok"===n.substr(0,2)?2:0);if(s>-1){if("string"==Ri(t))switch(t.charAt(0)){case"+":case"-":r[s]+=+t;break;case"*":r[s]*=+t.substr(1);break;case"/":r[s]/=+t.substr(1);break;default:r[s]=+t}else{if("number"!==Ri(t))throw new Error("unsupported value for Color.set");r[s]=t}var o=new Di(r,n);return A?(this._rgb=o._rgb,this):o}throw new Error("unknown channel "+a+" in mode "+n)}return r};var Hi=w;Ti.rgb=function(e,t,A){var i=e._rgb,n=t._rgb;return new Hi(i[0]+A*(n[0]-i[0]),i[1]+A*(n[1]-i[1]),i[2]+A*(n[2]-i[2]),"rgb")};var Pi=w,Vi=Math.sqrt,Ki=Math.pow;Ti.lrgb=function(e,t,A){var i=e._rgb,n=i[0],a=i[1],r=i[2],s=t._rgb,o=s[0],l=s[1],c=s[2];return new Pi(Vi(Ki(n,2)*(1-A)+Ki(o,2)*A),Vi(Ki(a,2)*(1-A)+Ki(l,2)*A),Vi(Ki(r,2)*(1-A)+Ki(c,2)*A),"rgb")};var Gi=w;Ti.lab=function(e,t,A){var i=e.lab(),n=t.lab();return new Gi(i[0]+A*(n[0]-i[0]),i[1]+A*(n[1]-i[1]),i[2]+A*(n[2]-i[2]),"lab")};var Wi=w,zi=function(e,t,A,i){var n,a,r,s,o,l,c,d,h,u,g,p,m;return"hsl"===i?(r=e.hsl(),s=t.hsl()):"hsv"===i?(r=e.hsv(),s=t.hsv()):"hcg"===i?(r=e.hcg(),s=t.hcg()):"hsi"===i?(r=e.hsi(),s=t.hsi()):"lch"===i||"hcl"===i?(i="hcl",r=e.hcl(),s=t.hcl()):"oklch"===i&&(r=e.oklch().reverse(),s=t.oklch().reverse()),"h"!==i.substr(0,1)&&"oklch"!==i||(o=(n=r)[0],c=n[1],h=n[2],l=(a=s)[0],d=a[1],u=a[2]),isNaN(o)||isNaN(l)?isNaN(o)?isNaN(l)?p=Number.NaN:(p=l,1!=h&&0!=h||"hsv"==i||(g=d)):(p=o,1!=u&&0!=u||"hsv"==i||(g=c)):p=o+A*(l>o&&l-o>180?l-(o+360):l180?l+360-o:l-o),void 0===g&&(g=c+A*(d-c)),m=h+A*(u-h),new Wi("oklch"===i?[m,g,p]:[p,g,m],i)},Xi=zi,Yi=function(e,t,A){return Xi(e,t,A,"lch")};Ti.lch=Yi,Ti.hcl=Yi;var ji=w;Ti.num=function(e,t,A){var i=e.num(),n=t.num();return new ji(i+A*(n-i),"num")};var _i=zi;Ti.hcg=function(e,t,A){return _i(e,t,A,"hcg")};var Ji=zi;Ti.hsi=function(e,t,A){return Ji(e,t,A,"hsi")};var Zi=zi;Ti.hsl=function(e,t,A){return Zi(e,t,A,"hsl")};var qi=zi;Ti.hsv=function(e,t,A){return qi(e,t,A,"hsv")};var $i=w;Ti.oklab=function(e,t,A){var i=e.oklab(),n=t.oklab();return new $i(i[0]+A*(n[0]-i[0]),i[1]+A*(n[1]-i[1]),i[2]+A*(n[2]-i[2]),"oklab")};var en=zi;Ti.oklch=function(e,t,A){return en(e,t,A,"oklch")};var tn=w,An=c.clip_rgb,nn=Math.pow,an=Math.sqrt,rn=Math.PI,sn=Math.cos,on=Math.sin,ln=Math.atan2,cn=function(e,t){for(var A=e.length,i=[0,0,0,0],n=0;n.9999999&&(i[3]=1),new tn(An(i))},dn=E,hn=c.type,un=Math.pow,gn=function(e){var t="rgb",A=dn("#ccc"),i=0,n=[0,1],a=[],r=[0,0],s=!1,o=[],l=!1,c=0,d=1,h=!1,u={},g=!0,p=1,m=function(e){if((e=e||["#fff","#000"])&&"string"===hn(e)&&dn.brewer&&dn.brewer[e.toLowerCase()]&&(e=dn.brewer[e.toLowerCase()]),"array"===hn(e)){1===e.length&&(e=[e[0],e[0]]),e=e.slice(0);for(var t=0;t2?function(e){if(null!=s){for(var t=s.length-1,A=0;A=s[A];)A++;return A-1}return 0}(e)/(s.length-2):d!==c?(e-c)/(d-c):1,l=f(l),i||(l=w(l)),1!==p&&(l=un(l,p)),l=r[0]+l*(1-r[0]-r[1]),l=Math.min(1,Math.max(0,l));var h=Math.floor(1e4*l);if(g&&u[h])n=u[h];else{if("array"===hn(o))for(var m=0;m=E&&m===a.length-1){n=o[m];break}if(l>E&&l2){var l=e.map((function(t,A){return A/(e.length-1)})),h=e.map((function(e){return(e-c)/(d-c)}));h.every((function(e,t){return l[t]===e}))||(f=function(e){if(e<=0||e>=1)return e;for(var t=0;e>=h[t+1];)t++;var A=(e-h[t])/(h[t+1]-h[t]);return l[t]+A*(l[t+1]-l[t])})}}return n=[c,d],b},b.mode=function(e){return arguments.length?(t=e,B(),b):t},b.range=function(e,t){return m(e),b},b.out=function(e){return l=e,b},b.spread=function(e){return arguments.length?(i=e,b):i},b.correctLightness=function(e){return null==e&&(e=!0),h=e,B(),w=h?function(e){for(var t=E(0,!0).lab()[0],A=E(1,!0).lab()[0],i=t>A,n=E(e,!0).lab()[0],a=t+(A-t)*e,r=n-a,s=0,o=1,l=20;Math.abs(r)>.01&&l-- >0;)i&&(r*=-1),r<0?(s=e,e+=.5*(o-e)):(o=e,e+=.5*(s-e)),r=(n=E(e,!0).lab()[0])-a;return e}:function(e){return e},b},b.padding=function(e){return null!=e?("number"===hn(e)&&(e=[e,e]),r=e,b):r},b.colors=function(t,A){arguments.length<2&&(A="hex");var i=[];if(0===arguments.length)i=o.slice(0);else if(1===t)i=[b(.5)];else if(t>1){var a=n[0],r=n[1]-a;i=pn(0,t,!1).map((function(e){return b(a+e/(t-1)*r)}))}else{e=[];var l=[];if(s&&s.length>2)for(var c=1,d=s.length,h=1<=d;h?cd;h?c++:c--)l.push(.5*(s[c-1]+s[c]));else l=n;i=l.map((function(e){return b(e)}))}return dn[A]&&(i=i.map((function(e){return e[A]()}))),i},b.cache=function(e){return null!=e?(g=e,b):g},b.gamma=function(e){return null!=e?(p=e,b):p},b.nodata=function(e){return null!=e?(A=dn(e),b):A},b};function pn(e,t,A){for(var i=[],n=ea;n?r++:r--)i.push(r);return i}var mn=w,wn=gn,fn=E,En=function(e,t,A){if(!En[A])throw new Error("unknown blend mode "+A);return En[A](e,t)},Bn=function(e){return function(t,A){var i=fn(A).rgb(),n=fn(t).rgb();return fn.rgb(e(i,n))}},bn=function(e){return function(t,A){var i=[];return i[0]=e(t[0],A[0]),i[1]=e(t[1],A[1]),i[2]=e(t[2],A[2]),i}};En.normal=Bn(bn((function(e){return e}))),En.multiply=Bn(bn((function(e,t){return e*t/255}))),En.screen=Bn(bn((function(e,t){return 255*(1-(1-e/255)*(1-t/255))}))),En.overlay=Bn(bn((function(e,t){return t<128?2*e*t/255:255*(1-2*(1-e/255)*(1-t/255))}))),En.darken=Bn(bn((function(e,t){return e>t?t:e}))),En.lighten=Bn(bn((function(e,t){return e>t?e:t}))),En.dodge=Bn(bn((function(e,t){return 255===e||(e=t/255*255/(1-e/255))>255?255:e}))),En.burn=Bn(bn((function(e,t){return 255*(1-(1-t/255)/(e/255))})));for(var vn=En,Cn=c.type,yn=c.clip_rgb,Fn=c.TWOPI,xn=Math.pow,Tn=Math.sin,Sn=Math.cos,In=E,Mn=w,kn=Math.floor,Un=Math.random,Qn=r,On=Math.log,Ln=Math.pow,Nn=Math.floor,Dn=Math.abs,Rn=function(e,t){void 0===t&&(t=null);var A={min:Number.MAX_VALUE,max:-1*Number.MAX_VALUE,sum:0,values:[],count:0};return"object"===Qn(e)&&(e=Object.values(e)),e.forEach((function(e){t&&"object"===Qn(e)&&(e=e[t]),null==e||isNaN(e)||(A.values.push(e),A.sum+=e,eA.max&&(A.max=e),A.count+=1)})),A.domain=[A.min,A.max],A.limits=function(e,t){return Hn(A,e,t)},A},Hn=function(e,t,A){void 0===t&&(t="equal"),void 0===A&&(A=7),"array"==Qn(e)&&(e=Rn(e));var i=e.min,n=e.max,a=e.values.sort((function(e,t){return e-t}));if(1===A)return[i,n];var r=[];if("c"===t.substr(0,1)&&(r.push(i),r.push(n)),"e"===t.substr(0,1)){r.push(i);for(var s=1;s 0");var o=Math.LOG10E*On(i),l=Math.LOG10E*On(n);r.push(i);for(var c=1;c200&&(E=!1)}for(var L={},N=0;N=360;)g-=360;r[u]=g}else r[u]=r[u]/s[u];return h/=i,new tn(r,t).alpha(h>.99999?1:h,!0)},la.bezier=function(e){var t=function(e){var t,A,i,n,a,r,s;if(e=e.map((function(e){return new mn(e)})),2===e.length)t=e.map((function(e){return e.lab()})),a=t[0],r=t[1],n=function(e){var t=[0,1,2].map((function(t){return a[t]+e*(r[t]-a[t])}));return new mn(t,"lab")};else if(3===e.length)A=e.map((function(e){return e.lab()})),a=A[0],r=A[1],s=A[2],n=function(e){var t=[0,1,2].map((function(t){return(1-e)*(1-e)*a[t]+2*(1-e)*e*r[t]+e*e*s[t]}));return new mn(t,"lab")};else if(4===e.length){var o;i=e.map((function(e){return e.lab()})),a=i[0],r=i[1],s=i[2],o=i[3],n=function(e){var t=[0,1,2].map((function(t){return(1-e)*(1-e)*(1-e)*a[t]+3*(1-e)*(1-e)*e*r[t]+3*(1-e)*e*e*s[t]+e*e*e*o[t]}));return new mn(t,"lab")}}else{if(!(e.length>=5))throw new RangeError("No point in running bezier with only one color.");var l,c,d;l=e.map((function(e){return e.lab()})),d=e.length-1,c=function(e){for(var t=[1,1],A=1;Ai?(A+.05)/(i+.05):(i+.05)/(A+.05)},la.deltaE=function(e,t,A,i,n){void 0===A&&(A=1),void 0===i&&(i=1),void 0===n&&(n=1);var a=function(e){return 360*e/(2*qn)},r=function(e){return 2*qn*e/360};e=new Kn(e),t=new Kn(t);var s=Array.from(e.lab()),o=s[0],l=s[1],c=s[2],d=Array.from(t.lab()),h=d[0],u=d[1],g=d[2],p=(o+h)/2,m=(Gn(Wn(l,2)+Wn(c,2))+Gn(Wn(u,2)+Wn(g,2)))/2,w=.5*(1-Gn(Wn(m,7)/(Wn(m,7)+Wn(25,7)))),f=l*(1+w),E=u*(1+w),B=Gn(Wn(f,2)+Wn(c,2)),b=Gn(Wn(E,2)+Wn(g,2)),v=(B+b)/2,C=a(Yn(c,f)),y=a(Yn(g,E)),F=C>=0?C:C+360,x=y>=0?y:y+360,T=jn(F-x)>180?(F+x+360)/2:(F+x)/2,S=1-.17*_n(r(T-30))+.24*_n(r(2*T))+.32*_n(r(3*T+6))-.2*_n(r(4*T-63)),I=x-F;I=jn(I)<=180?I:x<=F?I+360:I-360,I=2*Gn(B*b)*Jn(r(I)/2);var M=h-o,k=b-B,U=1+.015*Wn(p-50,2)/Gn(20+Wn(p-50,2)),Q=1+.045*v,O=1+.015*v*S,L=30*Zn(-Wn((T-275)/25,2)),N=-2*Gn(Wn(v,7)/(Wn(v,7)+Wn(25,7)))*Jn(2*r(L)),D=Gn(Wn(M/(A*U),2)+Wn(k/(i*Q),2)+Wn(I/(n*O),2)+N*(k/(i*Q))*(I/(n*O)));return Xn(0,zn(100,D))},la.distance=function(e,t,A){void 0===A&&(A="lab"),e=new $n(e),t=new $n(t);var i=e.get(A),n=t.get(A),a=0;for(var r in i){var s=(i[r]||0)-(n[r]||0);a+=s*s}return Math.sqrt(a)},la.limits=Pn.limits,la.valid=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];try{return new(Function.prototype.bind.apply(ea,[null].concat(e))),!0}catch(e){return!1}},la.scales=ia,la.colors=dA,la.brewer=oa,la}();var chroma=chromaExports;function hexWithAlpha(e,t){return chroma(e).alpha(t).css()}function has(e,t){return e.hasAttribute(t)}function get(e,t,A){return e.getAttribute(t)||A||""}function getNum(e,t,A){const i=Number(get(e,t));return Number.isNaN(i)?A||0:i}const attrHandlers={stroke:({el:e,exVals:t})=>{const A=get(e,"stroke");t.strokeColor=has(e,"stroke-opacity")?hexWithAlpha(A,getNum(e,"stroke-opacity")):A},"stroke-opacity":({el:e,exVals:t})=>{t.strokeColor=hexWithAlpha(get(e,"stroke","#000000"),getNum(e,"stroke-opacity"))},"stroke-width":({el:e,exVals:t})=>{t.strokeWidth=getNum(e,"stroke-width")},fill:({el:e,exVals:t})=>{const A=get(e,"fill");t.backgroundColor="none"===A?"#00000000":A},"fill-opacity":({el:e,exVals:t})=>{t.backgroundColor=hexWithAlpha(get(e,"fill","#000000"),getNum(e,"fill-opacity"))},opacity:({el:e,exVals:t})=>{t.opacity=getNum(e,"opacity",100)}};function presAttrsToElementValues(e){return[...e.attributes].reduce(((t,A)=>{const i=A.name;return Object.keys(attrHandlers).includes(i)&&attrHandlers[i]({el:e,exVals:t}),t}),{})}function filterAttrsToElementValues(e){const t={};return has(e,"x")&&(t.x=getNum(e,"x")),has(e,"y")&&(t.y=getNum(e,"y")),has(e,"width")&&(t.width=getNum(e,"width")),has(e,"height")&&(t.height=getNum(e,"height")),t}function pointsAttrToPoints(e){let t=[];return has(e,"points")&&(t=get(e,"points").split(" ").map((e=>e.split(",").map(parseFloat)))),t}function getGroupAttrs(e){return e.reduce(((e,{element:t})=>{const A=presAttrsToElementValues(t);return Object.assign(Object.assign({},e),A)}),{})}class Group{constructor(e){this.id=randomId(),this.element=e}}function createExElement(){return{id:randomId(),x:0,y:0,strokeColor:"#000000",backgroundColor:"#000000",fillStyle:"solid",strokeWidth:1,strokeStyle:"solid",roundness:null,roughness:0,opacity:100,width:0,height:0,angle:0,seed:Math.floor(random.next()*2**31),version:0,versionNonce:0,isDeleted:!1,groupIds:[],boundElementIds:null}}function createExRect(){return Object.assign(Object.assign({},createExElement()),{type:"rectangle"})}function createExLine(){return Object.assign(Object.assign({},createExElement()),{type:"line",points:[]})}function createExEllipse(){return Object.assign(Object.assign({},createExElement()),{type:"ellipse"})}function createExDraw(){return Object.assign(Object.assign({},createExElement()),{type:"line",points:[]})}const transformFunctions={matrix:"matrix",matrix3d:"matrix3d",perspective:"perspective",rotate:"rotate",rotate3d:"rotate3d",rotateX:"rotateX",rotateY:"rotateY",rotateZ:"rotateZ",scale:"scale",scale3d:"scale3d",scaleX:"scaleX",scaleY:"scaleY",scaleZ:"scaleZ",skew:"skew",skewX:"skewX",skewY:"skewY",translate:"translate",translate3d:"translate3d",translateX:"translateX",translateY:"translateY",translateZ:"translateZ"},transformFunctionsArr=Object.keys(transformFunctions),defaultUnits={matrix:"",matrix3d:"",perspective:"perspective",rotate:"deg",rotate3d:"deg",rotateX:"deg",rotateY:"deg",rotateZ:"deg",scale:"",scale3d:"",scaleX:"",scaleY:"",scaleZ:"",skew:"skew",skewX:"deg",skewY:"deg",translate:"px",translate3d:"px",translateX:"px",translateY:"px",translateZ:"px"},svgTransformToCSSTransform=e=>{const t=e.match(/(\w+)\(([^)]*)\)/g);if(!t)return"";const A=t.map((e=>{const t=e.split("(")[0];if(!t)throw new Error("Unable to find transform name");if(!transformFunctionsArr.includes(t))throw new Error(`transform function name "${t}" is not valid`);const A=e.match(/([-+]?[0-9]*\.?[0-9]+)([a-z])*/g);if(!A)return{type:t,values:[]};let i=A.map((e=>{const[A,i]=e.matchAll(/([-+]?[0-9]*\.?[0-9]+)|([a-z])*/g);return{unit:i[0]||defaultUnits[t],value:A[0]}}));return i&&"rotate"===t&&(null==i?void 0:i.length)>1&&(i=[i[0]]),{type:t,values:i}}));return A.map((({type:e,values:t})=>`${e}(${t.map((({unit:e,value:t})=>`${t}${e}`)).join(", ")})`)).join(" ")};function getElementMatrix(e){if(e.hasAttribute("transform")){const t=new DOMMatrix(svgTransformToCSSTransform(e.getAttribute("transform")||""));return multiply(create$1(),create$1(),t.toFloat32Array())}return create$1()}function getTransformMatrix(e,t){return t.map((({element:e})=>getElementMatrix(e))).concat([getElementMatrix(e)]).reduce(((e,t)=>multiply(e,e,t)),create$1())}function transformPoints(e,t){return e.map((([e,A])=>{const[i,n]=transformMat4(create(),fromValues(e,A,1),t);return[i,n]}))}function distance(e,t){return Math.sqrt(distanceSq(e,t))}function distanceSq(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)}function distanceToSegmentSq(e,t,A){const i=distanceSq(t,A);if(0===i)return distanceSq(e,t);let n=((e[0]-t[0])*(A[0]-t[0])+(e[1]-t[1])*(A[1]-t[1]))/i;return n=Math.max(0,Math.min(1,n)),distanceSq(e,lerp(t,A,n))}function lerp(e,t,A){return[e[0]+(t[0]-e[0])*A,e[1]+(t[1]-e[1])*A]}function flatness(e,t){const A=e[t+0],i=e[t+1],n=e[t+2],a=e[t+3];let r=3*i[0]-2*A[0]-a[0];r*=r;let s=3*i[1]-2*A[1]-a[1];s*=s;let o=3*n[0]-2*a[0]-A[0];o*=o;let l=3*n[1]-2*a[1]-A[1];return l*=l,r1&&n.push(A):n.push(A),n.push(e[t+3])}else{const i=.5,a=e[t+0],r=e[t+1],s=e[t+2],o=e[t+3],l=lerp(a,r,i),c=lerp(r,s,i),d=lerp(s,o,i),h=lerp(l,c,i),u=lerp(c,d,i),g=lerp(h,u,i);getPointsOnBezierCurveWithSplitting([a,l,h,g],0,A,n),getPointsOnBezierCurveWithSplitting([g,u,d,o],0,A,n)}return n}function simplify(e,t){return simplifyPoints(e,0,e.length,t)}function simplifyPoints(e,t,A,i,n){const a=n||[],r=e[t],s=e[A-1];let o=0,l=1;for(let i=t+1;io&&(o=t,l=i)}return Math.sqrt(o)>i?(simplifyPoints(e,t,l+1,i,a),simplifyPoints(e,l,A,i,a)):(a.length||a.push(r),a.push(s)),a}function pointsOnBezierCurves(e,t=.15,A){const i=[],n=(e.length-1)/3;for(let A=0;A0?simplifyPoints(i,0,i.length,A):i}const COMMAND=0,NUMBER=1,EOD=2,PARAMS={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function tokenize(e){const t=new Array;for(;""!==e;)if(e.match(/^([ \t\r\n,]+)/))e=e.substr(RegExp.$1.length);else if(e.match(/^([aAcChHlLmMqQsStTvVzZ])/))t[t.length]={type:0,text:RegExp.$1},e=e.substr(RegExp.$1.length);else{if(!e.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];t[t.length]={type:1,text:`${parseFloat(RegExp.$1)}`},e=e.substr(RegExp.$1.length)}return t[t.length]={type:2,text:""},t}function isType(e,t){return e.type===t}function parsePath(e){const t=[],A=tokenize(e);let i="BOD",n=0,a=A[n];for(;!isType(a,2);){let r=0;const s=[];if("BOD"===i){if("M"!==a.text&&"m"!==a.text)return parsePath("M0,0"+e);n++,r=PARAMS[a.text],i=a.text}else isType(a,1)?r=PARAMS[i]:(n++,r=PARAMS[a.text],i=a.text);if(!(n+ri%2?e+A:e+t));a.push({key:"C",data:e}),t=e[4],A=e[5];break}case"Q":a.push({key:"Q",data:[...s]}),t=s[2],A=s[3];break;case"q":{const e=s.map(((e,i)=>i%2?e+A:e+t));a.push({key:"Q",data:e}),t=e[2],A=e[3];break}case"A":a.push({key:"A",data:[...s]}),t=s[5],A=s[6];break;case"a":t+=s[5],A+=s[6],a.push({key:"A",data:[s[0],s[1],s[2],s[3],s[4],t,A]});break;case"H":a.push({key:"H",data:[...s]}),t=s[0];break;case"h":t+=s[0],a.push({key:"H",data:[t]});break;case"V":a.push({key:"V",data:[...s]}),A=s[0];break;case"v":A+=s[0],a.push({key:"V",data:[A]});break;case"S":a.push({key:"S",data:[...s]}),t=s[2],A=s[3];break;case"s":{const e=s.map(((e,i)=>i%2?e+A:e+t));a.push({key:"S",data:e}),t=e[2],A=e[3];break}case"T":a.push({key:"T",data:[...s]}),t=s[0],A=s[1];break;case"t":t+=s[0],A+=s[1],a.push({key:"T",data:[t,A]});break;case"Z":case"z":a.push({key:"Z",data:[]}),t=i,A=n}return a}function normalize(e){const t=[];let A="",i=0,n=0,a=0,r=0,s=0,o=0;for(const{key:l,data:c}of e){switch(l){case"M":t.push({key:"M",data:[...c]}),[i,n]=c,[a,r]=c;break;case"C":t.push({key:"C",data:[...c]}),i=c[4],n=c[5],s=c[2],o=c[3];break;case"L":t.push({key:"L",data:[...c]}),[i,n]=c;break;case"H":i=c[0],t.push({key:"L",data:[i,n]});break;case"V":n=c[0],t.push({key:"L",data:[i,n]});break;case"S":{let e=0,a=0;"C"===A||"S"===A?(e=i+(i-s),a=n+(n-o)):(e=i,a=n),t.push({key:"C",data:[e,a,...c]}),s=c[0],o=c[1],i=c[2],n=c[3];break}case"T":{const[e,a]=c;let r=0,l=0;"Q"===A||"T"===A?(r=i+(i-s),l=n+(n-o)):(r=i,l=n);const d=i+2*(r-i)/3,h=n+2*(l-n)/3,u=e+2*(r-e)/3,g=a+2*(l-a)/3;t.push({key:"C",data:[d,h,u,g,e,a]}),s=r,o=l,i=e,n=a;break}case"Q":{const[e,A,a,r]=c,l=i+2*(e-i)/3,d=n+2*(A-n)/3,h=a+2*(e-a)/3,u=r+2*(A-r)/3;t.push({key:"C",data:[l,d,h,u,a,r]}),s=e,o=A,i=a,n=r;break}case"A":{const e=Math.abs(c[0]),A=Math.abs(c[1]),a=c[2],r=c[3],s=c[4],o=c[5],l=c[6];0===e||0===A?(t.push({key:"C",data:[i,n,o,l,o,l]}),i=o,n=l):i===o&&n===l||(arcToCubicCurves(i,n,o,l,e,A,a,r,s).forEach((function(e){t.push({key:"C",data:e})})),i=o,n=l);break}case"Z":t.push({key:"Z",data:[]}),i=a,n=r}A=l}return t}function degToRad(e){return Math.PI*e/180}function rotate(e,t,A){return[e*Math.cos(A)-t*Math.sin(A),e*Math.sin(A)+t*Math.cos(A)]}function arcToCubicCurves(e,t,A,i,n,a,r,s,o,l){const c=degToRad(r);let d=[],h=0,u=0,g=0,p=0;if(l)[h,u,g,p]=l;else{[e,t]=rotate(e,t,-c),[A,i]=rotate(A,i,-c);const r=(e-A)/2,l=(t-i)/2;let d=r*r/(n*n)+l*l/(a*a);d>1&&(d=Math.sqrt(d),n*=d,a*=d);const m=n*n,w=a*a,f=m*w-m*l*l-w*r*r,E=m*l*l+w*r*r,B=(s===o?-1:1)*Math.sqrt(Math.abs(f/E));g=B*n*l/a+(e+A)/2,p=B*-a*r/n+(t+i)/2,h=Math.asin(parseFloat(((t-p)/a).toFixed(9))),u=Math.asin(parseFloat(((i-p)/a).toFixed(9))),eu&&(h-=2*Math.PI),!o&&u>h&&(u-=2*Math.PI)}let m=u-h;if(Math.abs(m)>120*Math.PI/180){const e=u,t=A,s=i;u=o&&u>h?h+120*Math.PI/180*1:h+120*Math.PI/180*-1,d=arcToCubicCurves(A=g+n*Math.cos(u),i=p+a*Math.sin(u),t,s,n,a,r,0,o,[u,e,g,p])}m=u-h;const w=Math.cos(h),f=Math.sin(h),E=Math.cos(u),B=Math.sin(u),b=Math.tan(m/4),v=4/3*n*b,C=4/3*a*b,y=[e,t],F=[e+v*f,t-C*w],x=[A+v*B,i-C*E],T=[A,i];if(F[0]=2*y[0]-F[0],F[1]=2*y[1]-F[1],l)return[F,x,T].concat(d);{d=[F,x,T].concat(d);const e=[];for(let t=0;t{s.length>=4&&a.push(...pointsOnBezierCurves(s,t)),s=[]},l=()=>{o(),a.length&&(n.push(a),a=[])};for(const{key:e,data:t}of i)switch(e){case"M":l(),r=[t[0],t[1]],a.push(r);break;case"L":o(),a.push([t[0],t[1]]);break;case"C":if(!s.length){const e=a.length?a[a.length-1]:r;s.push([e[0],e[1]])}s.push([t[0],t[1]]),s.push([t[2],t[3]]),s.push([t[4],t[5]]);break;case"Z":o(),a.push([r[0],r[1]])}if(l(),!A)return n;const c=[];for(const e of n){const t=simplify(e,A);t.length&&c.push(t)}return c}const SUPPORTED_TAGS=["svg","path","g","use","circle","ellipse","rect","polyline","polygon"],nodeValidator=e=>SUPPORTED_TAGS.includes(e.tagName)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT;function createTreeWalker(e){return document.createTreeWalker(e,NodeFilter.SHOW_ALL,{acceptNode:nodeValidator})}const presAttrs=(e,t)=>Object.assign(Object.assign(Object.assign({},getGroupAttrs(t)),presAttrsToElementValues(e)),filterAttrsToElementValues(e)),skippedUseAttrs=["id"],allwaysPassedUseAttrs=["x","y","width","height","href","xlink:href"],getDefElWithCorrectAttrs=(e,t)=>[...t.attributes].reduce(((A,i)=>(skippedUseAttrs.includes(i.value)||e.hasAttribute(i.name)&&!allwaysPassedUseAttrs.includes(i.name)||A.setAttribute(i.name,t.getAttribute(i.name)||""),A)),e.cloneNode()),walkers={svg:e=>{walk(e,e.tw.nextNode())},g:e=>{const t=Object.assign(Object.assign({},e),{tw:createTreeWalker(e.tw.currentNode),groups:[...e.groups,new Group(e.tw.currentNode)]});walk(t,t.tw.nextNode()),walk(e,e.tw.nextSibling())},use:e=>{const{root:t,tw:A,scene:i}=e,n=A.currentNode,a=n.getAttribute("href")||n.getAttribute("xlink:href");if(!a)throw new Error("unable to get id of use element");const r=t.querySelector(a);if(!r)throw new Error(`unable to find def element with id: ${a}`);const s=new ExcalidrawScene,o=getDefElWithCorrectAttrs(r,n);walk(Object.assign(Object.assign({},e),{scene:s,tw:createTreeWalker(o)}),o);const l=s.elements.pop();l&&i.elements.push(l),walk(e,e.tw.nextNode())},circle:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getNum(n,"r",0),r=2*a,s=getNum(n,"x",0)+getNum(n,"cx",0)-a,o=getNum(n,"y",0)+getNum(n,"cy",0)-a,l=getTransformMatrix(n,i),c=fromValues$1(r,0,0,0,0,r,0,0,0,0,1,0,s,o,0,1),d=multiply(create$1(),l,c),h=Object.assign(Object.assign(Object.assign({},createExEllipse()),presAttrs(n,i)),{x:d[12],y:d[13],width:d[0],height:d[5],groupIds:i.map((e=>e.id))});A.elements.push(h),walk(e,t.nextNode())},ellipse:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getNum(n,"rx",0),r=getNum(n,"ry",0),s=getNum(n,"cx",0),o=getNum(n,"cy",0),l=getNum(n,"x",0)+s-a,c=getNum(n,"y",0)+o-r,d=2*a,h=2*r,u=getTransformMatrix(n,i),g=fromValues$1(d,0,0,0,0,h,0,0,0,0,1,0,l,c,0,1),p=multiply(create$1(),u,g),m=Object.assign(Object.assign(Object.assign({},createExEllipse()),presAttrs(n,i)),{x:p[12],y:p[13],width:p[0],height:p[5],groupIds:i.map((e=>e.id))});A.elements.push(m),walk(e,t.nextNode())},line:e=>{walk(e,e.tw.nextNode())},polygon:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=transformPoints(pointsAttrToPoints(n),getTransformMatrix(n,i)),r=a[0][0],s=a[0][1],o=a.map((([e,t])=>[e-r,t-s])),[l,c]=dimensionsFromPoints(o),d=Object.assign(Object.assign(Object.assign(Object.assign({},createExLine()),getGroupAttrs(i)),presAttrsToElementValues(n)),{points:o.concat([[0,0]]),x:r,y:s,width:l,height:c});A.elements.push(d),walk(e,e.tw.nextNode())},polyline:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getTransformMatrix(n,i),r=transformPoints(pointsAttrToPoints(n),a),s=r[0][0],o=r[0][1],l=r.map((([e,t])=>[e-s,t-o])),[c,d]=dimensionsFromPoints(l),h=has(n,"fill"),u=get(n,"fill"),g=!h||h&&"none"!==u,p=Object.assign(Object.assign(Object.assign(Object.assign({},createExLine()),getGroupAttrs(i)),presAttrsToElementValues(n)),{points:l.concat(g?[[0,0]]:[]),x:s,y:o,width:c,height:d});A.elements.push(p),walk(e,e.tw.nextNode())},rect:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getNum(n,"x",0),r=getNum(n,"y",0),s=getNum(n,"width",0),o=getNum(n,"height",0),l=getTransformMatrix(n,i),c=fromValues$1(s,0,0,0,0,o,0,0,0,0,1,0,a,r,0,1),d=multiply(create$1(),l,c),h=n.hasAttribute("rx")||n.hasAttribute("ry"),u=Object.assign(Object.assign(Object.assign({},createExRect()),presAttrs(n,i)),{x:d[12],y:d[13],width:d[0],height:d[5],roundness:h?{type:ROUNDNESS.LEGACY}:null});A.elements.push(u),walk(e,e.tw.nextNode())},path:e=>{const{tw:t,scene:A,groups:i}=e,n=t.currentNode,a=getTransformMatrix(n,i),r=pointsOnPath(get(n,"d")),s=get(n,"fill","black"),o=get(n,"fill-rule","nonzero");let l=[],c=randomId();switch(o){case"nonzero":let e="clockwise";l=r.map(((t,A)=>{const r=transformPoints(t,clone(a)),o=r[0][0],l=r[0][1],[d,h]=dimensionsFromPoints(r),u=r.map((([e,t])=>[e-o,t-l])),g=getWindingOrder(u);0===A&&(e=g,c=randomId());let p=s;return e!==g&&(p="#FFFFFF"),Object.assign(Object.assign(Object.assign(Object.assign({},createExDraw()),{strokeWidth:0,strokeColor:"#00000000"}),presAttrs(n,i)),{points:u,backgroundColor:p,width:d,height:h,x:o+getNum(n,"x",0),y:l+getNum(n,"y",0),groupIds:[c]})}));break;case"evenodd":l=r.map(((e,t)=>{const A=transformPoints(e,clone(a)),r=A[0][0],s=A[0][1],[o,l]=dimensionsFromPoints(A),d=A.map((([e,t])=>[e-r,t-s]));return 0===t&&(c=randomId()),Object.assign(Object.assign(Object.assign({},createExDraw()),presAttrs(n,i)),{points:d,width:o,height:l,x:r+getNum(n,"x",0),y:s+getNum(n,"y",0)})}))}A.elements=A.elements.concat(l),walk(e,t.nextNode())}};function walk(e,t){if(!t)return;const A=t.nodeName;walkers[A]&&walkers[A](e)}const svgToExcalidraw=e=>{const t=(new DOMParser).parseFromString(e,"image/svg+xml"),A=t.querySelectorAll("parsererror"),i=A.length>0;let n=null;if(i)console.error("There were errors while parsing the given SVG: ",[...A].map((e=>e.innerHTML)));else{const e=createTreeWalker(t),A=new ExcalidrawScene;walk({tw:e,scene:A,groups:[],root:t},e.nextNode()),n=A.elements}return{hasErrors:i,errors:i?A:null,content:n}};B([r$d,z,e$a,l$3,b$1,v,h$1,i$5,i$4,h,u,c$1,s]);const GAP=4;class ExcalidrawAutomate{get obsidian(){return obsidian_module__namespace}get DEVICE(){return DEVICE}async getAttachmentFilepath(e){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t.file))return errorMessage("targetView not set","getAttachmentFolderAndFilePath()"),null;const A=await getAttachmentsFolderAndFilePath(app,this.targetView.file.path,e);return getNewUniqueFilepath(app.vault,e,A.folder)}async newFilePrompt(e,t,A,i){var n;if(!this.targetView||!(null===(n=this.targetView)||void 0===n?void 0:n.file))return errorMessage("targetView not set","newFileActions()"),null;const a=emulateKeysForLinkClick(A),r=new NewFileActions(this.plugin,e,a,this.targetView,t,i);return r.open(),await r.waitForClose}getLeaf(e,t){const A=emulateKeysForLinkClick(null!=t?t:"new-tab");return getLeaf(this.plugin,e,A)}constructor(e,t){this.mostRecentMarkdownSVG=null,this.targetView=null,this.onViewUnloadHook=null,this.onViewModeChangeHook=null,this.onLinkHoverHook=null,this.onLinkClickHook=null,this.onDropHook=null,this.onPasteHook=null,this.onCanvasColorChangeHook=null,this.activeScript=null,this.plugin=e,this.reset(),this.targetView=t}getViewLastPointerPosition(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.currentPosition:(errorMessage("targetView not set","getExcalidrawAPI()"),null)}getAPI(e){return new ExcalidrawAutomate(this.plugin,e)}setFillStyle(e){switch(e){case 0:return this.style.fillStyle="hachure","hachure";case 1:return this.style.fillStyle="cross-hatch","cross-hatch";default:return this.style.fillStyle="solid","solid"}}setStrokeStyle(e){switch(e){case 0:return this.style.strokeStyle="solid","solid";case 1:return this.style.strokeStyle="dashed","dashed";default:return this.style.strokeStyle="dotted","dotted"}}setStrokeSharpness(e){return 0===e?(this.style.roundness={type:ROUNDNESS.LEGACY},"round"):(this.style.roundness=null,"sharp")}setFontFamily(e){switch(e){case 1:return this.style.fontFamily=4,getFontFamily(4);case 2:return this.style.fontFamily=2,getFontFamily(2);case 3:return this.style.fontFamily=3,getFontFamily(3);default:return this.style.fontFamily=1,getFontFamily(1)}}setTheme(e){return 0===e?(this.canvas.theme="light","light"):(this.canvas.theme="dark","dark")}addToGroup(e){const t=nanoid();return e.forEach((e=>{var A,i;null===(i=null===(A=this.elementsDict[e])||void 0===A?void 0:A.groupIds)||void 0===i||i.push(t)})),t}async toClipboard(e){const t=e?await getTemplate(this.plugin,e,!1,new EmbeddedFilesLoader(this.plugin),0):null;let A=t?t.elements:[];A=A.concat(this.getElements()),navigator.clipboard.writeText(JSON.stringify({type:"excalidraw/clipboard",elements:A}))}async getSceneFromFile(e){if(!e)return errorMessage("file not found","getScene()"),null;if(!this.isExcalidrawFile(e))return errorMessage("file is not an Excalidraw file","getScene()"),null;const t=await getTemplate(this.plugin,e.path,!1,new EmbeddedFilesLoader(this.plugin),0);return{elements:t.elements,appState:t.appState}}getElements(){const e=[],t=Object.keys(this.elementsDict);for(let A=0;A{let t=e.plaintext?e.plaintext+"\n\n":"";const A=this.getElements().filter((e=>"text"===e.type));return t+="# Text Elements\n",A.forEach((e=>{var A,i;t+=`${null!==(A=e.rawText)&&void 0!==A?A:null!==(i=e.originalText)&&void 0!==i?i:e.text} ^${e.id}\n\n`})),this.getElements().filter((e=>"text"!==e.type&&e.link)).forEach((e=>{t+=`${e.link} ^${e.id}\n\n`})),t+=Object.keys(this.imagesDict).length>0?"\n# Embedded files\n":"",Object.keys(this.imagesDict).forEach((e=>{const A=this.imagesDict[e];A.latex?t+=`${e}: $$${A.latex}$$\n`:t+=`${e}: [[${A.file}]]\n`})),t})()+getMarkdownDrawingSection(JSON.stringify(G,null,"\t"),this.plugin.settings.compress))}async createSVG(e,t=!1,A,i,n,a){return n||(n=this.plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":this.plugin.settings.exportWithTheme?void 0:"light"),n&&!A&&(A={withBackground:this.plugin.settings.exportWithBackground,withTheme:!0}),i||(i=new EmbeddedFilesLoader(this.plugin,n?"dark"===n:void 0)),await createSVG(e,t,A,i,n,this.canvas.theme,this.canvas.viewBackgroundColor,this.getElements(),this.plugin,0,a,this.imagesDict)}async createPNG(e,t=1,A,i,n,a){return n||(n=this.plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":this.plugin.settings.exportWithTheme?void 0:"light"),n&&!A&&(A={withBackground:this.plugin.settings.exportWithBackground,withTheme:!0}),i||(i=new EmbeddedFilesLoader(this.plugin,n?"dark"===n:void 0)),await createPNG(e,t,A,i,n,this.canvas.theme,this.canvas.viewBackgroundColor,this.getElements(),this.plugin,0,a,this.imagesDict)}wrapText(e,t){return wrapTextAtCharLength(e,t,this.plugin.settings.forceWrap)}boxedElement(e,t,A,i,n,a,r=null){return{id:e,type:t,x:A,y:i,width:n,height:a,angle:this.style.angle,strokeColor:this.style.strokeColor,backgroundColor:this.style.backgroundColor,fillStyle:this.style.fillStyle,strokeWidth:this.style.strokeWidth,strokeStyle:this.style.strokeStyle,roughness:this.style.roughness,opacity:this.style.opacity,roundness:this.style.strokeSharpness?"round"===this.style.strokeSharpness?{type:ROUNDNESS.ADAPTIVE_RADIUS}:null:this.style.roundness,seed:Math.floor(1e5*Math.random()),version:1,versionNonce:Math.floor(1e9*Math.random()),updated:Date.now(),isDeleted:!1,groupIds:[],boundElements:[],link:r,locked:!1}}addIFrame(e,t,A,i,n,a){return this.addEmbeddable(e,t,A,i,n,a)}addEmbeddable(e,t,A,i,n,a){var r;if(!this.targetView||!(null===(r=this.targetView)||void 0===r?void 0:r._loaded))return errorMessage("targetView not set","addEmbeddable()"),null;if(!n&&!a)return errorMessage("Either the url or the file must be set. If both are provided the URL takes precedence","addEmbeddable()"),null;const s=nanoid();return this.elementsDict[s]=this.boxedElement(s,"embeddable",e,t,A,i,n||(a?`[[${app.metadataCache.fileToLinktext(a,this.targetView.file.path,!1)}]]`:"")),s}addRect(e,t,A,i){const n=nanoid();return this.elementsDict[n]=this.boxedElement(n,"rectangle",e,t,A,i),n}addDiamond(e,t,A,i){const n=nanoid();return this.elementsDict[n]=this.boxedElement(n,"diamond",e,t,A,i),n}addEllipse(e,t,A,i){const n=nanoid();return this.elementsDict[n]=this.boxedElement(n,"ellipse",e,t,A,i),n}addBlob(e,t,A,i){const n=.5*i,a=.5*A,r=a/9,s=.8*n,o=[],l=(A,i)=>{const l=A+Math.random()*r-r/2;o.push([l+Math.random()*r-r/2+A%2*r/6+e,i*Math.sqrt(n*n*(1-l*l/(a*a)))+Math.random()*s-s/2+A%2*s/6+t])};let c;for(c=r/2-a;c<=a-r/2;c+=a/6)l(c,1);for(c=a-r/2;c>=r/2-a;c-=a/6)l(c,-1);o.push(o[0]);const d=this.addLine((e=>{const t=getLineBox(e),n=A/t.w,a=i/t.h;let r;for(r=0;r500){const e=500/Math.max(s.size.width,s.size.height);s.size.width=e*s.size.width,s.size.height=e*s.size.height}return this.elementsDict[a]=this.boxedElement(a,"image",e,t,s.size.width,s.size.height),this.elementsDict[a].fileId=o,this.elementsDict[a].scale=[1,1],a}async addLaTex(e,t,A){const i=nanoid(),n=await tex2dataURL(A,this.plugin);return n?(this.imagesDict[n.fileId]={mimeType:n.mimeType,id:n.fileId,dataURL:n.dataURL,created:n.created,file:null,hasSVGwithBitmap:!1,latex:A},this.elementsDict[i]=this.boxedElement(i,"image",e,t,n.size.width,n.size.height),this.elementsDict[i].fileId=n.fileId,this.elementsDict[i].scale=[1,1],i):null}connectObjects(e,t,A,i,n){if(!this.elementsDict[e]||!this.elementsDict[A])return;if(["line","arrow","freedraw"].includes(this.elementsDict[e].type)||["line","arrow","freedraw"].includes(this.elementsDict[A].type))return;const a=(null==n?void 0:n.padding)?n.padding:10,r=(null==n?void 0:n.numberOfPoints)?n.numberOfPoints:0,s=(e,t)=>{switch(e){case"bottom":return[(t.x+(t.x+t.width))/2,t.y+t.height+a];case"left":return[t.x-a,(t.y+(t.y+t.height))/2];case"right":return[t.x+t.width+a,(t.y+(t.y+t.height))/2];default:return[(t.x+(t.x+t.width))/2,t.y-a]}};let o,l,c,d;const h=this.elementsDict[e],u=this.elementsDict[A];if(!t||!i){const e=h.x+h.width/2,A=u.x+u.width/2,n=h.y+h.height/2,a=u.y+u.height/2;if(!t){const t=intersectElementWithLine(h,[A,a],[e,n],4);0===t.length?[o,l]=[e,n]:[o,l]=t[0]}if(!i){const t=intersectElementWithLine(u,[e,n],[A,a],4);0===t.length?[c,d]=[A,a]:[c,d]=t[0]}}t&&([o,l]=s(t,this.elementsDict[e])),i&&([c,d]=s(i,this.elementsDict[A]));const g=r+2,p=[];for(let e=0;eMath.PI/2&&(i-=Math.PI),this.style.angle=i;const a=this.addText(A.x+A.points[1][0]/2-n.width/2,A.y+A.points[1][1]/2-n.height,t);return this.style.angle=0,a}clear(){this.elementsDict={},this.imagesDict={}}reset(){this.clear(),this.activeScript=null,this.style={strokeColor:"#000000",backgroundColor:"transparent",angle:0,fillStyle:"hachure",strokeWidth:1,strokeStyle:"solid",roughness:1,opacity:100,roundness:null,fontFamily:1,fontSize:20,textAlign:"left",verticalAlign:"top",startArrowHead:null,endArrowHead:"arrow"},this.canvas={theme:"light",viewBackgroundColor:"#FFFFFF",gridSize:0}}isExcalidrawFile(e){return this.plugin.isExcalidrawFile(e)}setView(e){if(!e){const e=app.workspace.getActiveViewOfType(ExcalidrawView);if(e instanceof ExcalidrawView)this.targetView=e;else{const e=app.workspace.getLeavesOfType("excalidraw");if(!e||0==e.length)return;this.targetView=e[0].view}}if("active"==e){const e=app.workspace.getActiveViewOfType(ExcalidrawView);if(!(e instanceof ExcalidrawView))return;this.targetView=e}if("first"==e){const e=app.workspace.getLeavesOfType("excalidraw");if(!e||0==e.length)return;this.targetView=e[0].view}return e instanceof ExcalidrawView&&(this.targetView=e),this.targetView}getExcalidrawAPI(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.excalidrawAPI:(errorMessage("targetView not set","getExcalidrawAPI()"),null)}getViewElements(){var e;if(!this.targetView||!(null===(e=this.targetView)||void 0===e?void 0:e._loaded))return errorMessage("targetView not set","getViewElements()"),[];const t=this.targetView.excalidrawAPI;return t?t.getSceneElements():[]}deleteViewElements(e){var t,A,i;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return errorMessage("targetView not set","deleteViewElements()"),!1;const n=null===(i=null===(A=this.targetView)||void 0===A?void 0:A.excalidrawRef)||void 0===i?void 0:i.current;if(!n)return!1;const a=n.getSceneElements(),r=n.getAppState();return this.targetView.updateScene({elements:a.filter((t=>!e.includes(t))),appState:r,commitToHistory:!0}),!0}getViewSelectedElement(){const e=this.getViewSelectedElements();return e?e[0]:null}getViewSelectedElements(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.getViewSelectedElements():(errorMessage("targetView not set","getViewSelectedElements()"),[])}getViewFileForImageElement(e){var t,A,i,n;return this.targetView&&(null===(t=this.targetView)||void 0===t?void 0:t._loaded)?e&&"image"===e.type?null===(n=null===(i=null===(A=this.targetView)||void 0===A?void 0:A.excalidrawData)||void 0===i?void 0:i.getFile(e.fileId))||void 0===n?void 0:n.file:(errorMessage("Must provide an image element as input","getViewFileForImageElement()"),null):(errorMessage("targetView not set","getViewFileForImageElement()"),null)}copyViewElementsToEAforEditing(e){e.forEach((e=>{this.elementsDict[e.id]=cloneElement(e)}))}viewToggleFullScreen(e=!1){var t,A,i;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","viewToggleFullScreen()");const n=this.targetView,a=n.isFullscreen();e&&(n.updateScene({appState:{viewModeEnabled:!a},commitToHistory:!1}),null===(i=null===(A=this.targetView.toolsPanelRef)||void 0===A?void 0:A.current)||void 0===i||i.setExcalidrawViewMode(!a)),a?n.exitFullscreen():n.gotoFullscreen()}setViewModeEnabled(e){var t,A,i;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","viewToggleFullScreen()");const n=this.targetView;n.updateScene({appState:{viewModeEnabled:e}}),null===(i=null===(A=n.toolsPanelRef)||void 0===A?void 0:A.current)||void 0===i||i.setExcalidrawViewMode(e)}viewUpdateScene(e,t=!1){var A;this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?this.targetView.updateScene(e,t):errorMessage("targetView not set","viewToggleFullScreen()")}connectObjectWithViewSelectedElement(e,t,A,i){const n=this.getViewSelectedElement();if(!n)return!1;const a=n.id;return this.elementsDict[a]=n,this.connectObjects(e,t,a,A,i),delete this.elementsDict[a],!0}viewZoomToElements(e,t){var A;this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?this.targetView.zoomToElements(e,t):errorMessage("targetView not set","viewToggleFullScreen()")}async addElementsToView(e=!1,t=!0,A=!1,i=!1){var n;if(!this.targetView||!(null===(n=this.targetView)||void 0===n?void 0:n._loaded))return errorMessage("targetView not set","addElementsToView()"),!1;const a=this.getElements();return await this.targetView.addElements(a,e,t,this.imagesDict,A,i)}registerThisAsViewEA(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}deregisterThisAsViewEA(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}getEmbeddedFilesLoader(e){return new EmbeddedFilesLoader(this.plugin,e)}getExportSettings(e,t){return{withBackground:e,withTheme:t}}getBoundingBox(e){const t=getCommonBoundingBox(e);return{topX:t.minX,topY:t.minY,width:t.maxX-t.minX,height:t.maxY-t.minY}}getMaximumGroups(e){return getMaximumGroups(e)}getLargestElement(e){if(!e||0===e.length)return null;let t=e[0];const A=e=>e.height*e.width;let i=A(e[0]);for(let n=1;ni&&(i=a,t=e[n])}return t}intersectElementWithLine(e,t,A,i){return intersectElementWithLine(e,t,A,i)}getCommonGroupForElements(e){const t=e.map((e=>e.groupIds)).reduce(((e,t)=>t.filter((t=>e.includes(t)))));return t.length>0?t[0]:null}getElementsInTheSameGroupWithElement(e,t){if(!e||!t)return[];const A="text"===e.type&&e.containerId?t.filter((t=>t.id===e.containerId)):[];return 0===e.groupIds.length?1===A.length?[e,A[0]]:[e]:1===A.length?t.filter((t=>t.groupIds.some((t=>e.groupIds.includes(t)))||t===A[0])):t.filter((t=>t.groupIds.some((t=>e.groupIds.includes(t)))))}getElementsInFrame(e,t){return e&&t&&"frame"===e.type?t.filter((t=>t.frameId===e.id)):[]}getScriptSettings(){var e;return this.activeScript?null!==(e=this.plugin.settings.scriptEngineSettings[this.activeScript])&&void 0!==e?e:{}:null}async setScriptSettings(e){if(!this.activeScript)return null;this.plugin.settings.scriptEngineSettings[this.activeScript]=e,await this.plugin.saveSettings()}openFileInNewOrAdjacentLeaf(e){if(!(e&&e instanceof obsidian_module.TFile))return null;if(!this.targetView)return null;const t=getNewOrAdjacentLeaf(this.plugin,this.targetView.leaf);return t.openFile(e,{active:!0}),t}measureText(e){var t,A;const i=_measureText(e,this.style.fontSize,this.style.fontFamily,getDefaultLineHeight(this.style.fontFamily));return{width:null!==(t=i.w)&&void 0!==t?t:0,height:null!==(A=i.h)&&void 0!==A?A:0}}async getOriginalImageSize(e){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return errorMessage("targetView not set","getOriginalImageSize()"),null;if(!e||"image"!==e.type)return errorMessage("Please provide a single image element as input","getOriginalImageSize()"),null;const A=this.targetView.excalidrawData.getFile(e.fileId);if(!A)return errorMessage("Please provide a single image element as input","getOriginalImageSize()"),null;const i="dark"===this.getExcalidrawAPI().getAppState().theme,n=A.getImage(i);return await getImageSize(n)}verifyMinimumPluginVersion(e){return verifyMinimumPluginVersion(e)}isExcalidrawView(e){return e instanceof ExcalidrawView}selectElementsInView(e){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","selectElementsInView()");if(!e||0===e.length)return;const A=this.getExcalidrawAPI();if("string"==typeof e[0]){const t=this.getViewElements().filter((t=>e.includes(t.id)));A.selectElements(t)}else A.selectElements(e)}generateElementId(){return nanoid()}cloneElement(e){const t=JSON.parse(JSON.stringify(e));return t.id=nanoid(),t}moveViewElementToZIndex(e,t){var A;if(!this.targetView||!(null===(A=this.targetView)||void 0===A?void 0:A._loaded))return void errorMessage("targetView not set","moveViewElementToZIndex()");const i=this.getExcalidrawAPI(),n=this.getViewElements(),a=n.filter((t=>t.id===e));if(0===a.length)return void errorMessage(`Element (id: ${e}) not found`,"moveViewElementToZIndex");if(t>=n.length)return void i.bringToFront(a);if(t<0)return void i.sendToBack(a);const r=n.indexOf(a[0]);n.splice(t,0,n.splice(r,1)[0]),this.targetView.updateScene({elements:n,commitToHistory:!0})}hexStringToRgb(e){const t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}rgbToHexString(e){return O$1({r:e[0],g:e[1],b:e[2]}).stringHEX({alpha:!1})}hslToRgb(e){const t=O$1({h:e[0],s:e[1],l:e[2]});return[t.red,t.green,t.blue]}rgbToHsl(e){const t=O$1({r:e[0],g:e[1],b:e[2]});return[t.hue,t.saturation,t.lightness]}colorNameToHex(e){return COLOR_NAMES.has(e.toLowerCase().trim())?COLOR_NAMES.get(e.toLowerCase().trim()):e.trim()}getCM(e){if(e)return"string"==typeof e&&(e=this.colorNameToHex(e)),O$1(e);log("Creates a CM object. Visit https://github.com/lbragile/ColorMaster for documentation.")}importSVG(e){const t=svgToExcalidraw(e);return t.hasErrors?(new obsidian_module.Notice(`There were errors while parsing the given SVG:\n${[...t.errors].map((e=>e.innerHTML))}`),!1):(this.copyViewElementsToEAforEditing(t.content),!0)}}async function initExcalidrawAutomate(e){await initFonts();const t=new ExcalidrawAutomate(e);return window.ExcalidrawAutomate=t,t}function destroyExcalidrawAutomate(){delete window.ExcalidrawAutomate}function normalizeLinePoints(e){const t=[],[A,i]=e[0];for(let n=0;n-1||t.search("excalidraw-plugin: locked\n")>-1;await a.loadData(t,l,o?TextMode.parsed:TextMode.raw);let d=t.search("# Text Elements\n");-1==d&&(d=t.search("# Drawing\n"));let h=a.scene;A&&await i.loadSceneFiles(a,(e=>{if(e&&0!==e.length){for(const t of e)t.hasSVGwithBitmap&&(c=!0),a.scene.files[t.id]={mimeType:t.mimeType,id:t.id,dataURL:t.dataURL,created:t.created};h=scaleLoadedImage(a.scene,e).scene}}),n);let u=h.elements;if(s.hasGroupref){const t=s.hasSectionref?getTextElementsMatchingQuery(h.elements,["# "+s.sectionref],!0):h.elements.filter((e=>e.id===s.blockref));t.length>0&&(u=e.ea.getElementsInTheSameGroupWithElement(t[0],h.elements))}if(s.hasFrameref){const t=h.elements.filter((e=>e.id===s.blockref));1===t.length&&(u=e.ea.getElementsInFrame(t[0],h.elements))}return s.hasTaskbone&&(u=u.filter((t=>{var A;return"freedraw"===t.type||"image"===t.type&&!e.isExcalidrawFile(null===(A=a.getFile(t.fileId))||void 0===A?void 0:A.file)}))),{elements:u,appState:h.appState,frontmatter:t.substring(0,d),files:h.files,hasSVGwithBitmap:c}}return{elements:[],appState:{},frontmatter:null,files:[],hasSVGwithBitmap:c}}async function createPNG(e,t=1,A,i,n,a,r,s=[],o,l,c,d){var h,u,g,p,m,w,f;i||(i=new EmbeddedFilesLoader(o)),c=null!=c?c:o.settings.exportPaddingSVG;const E=e?await getTemplate(o,e,!0,i,l):null;let B=null!==(h=null==E?void 0:E.elements)&&void 0!==h?h:[];B=B.concat(s);const b=null!=d?d:{};return(null==E?void 0:E.files)&&Object.values(E.files).forEach((e=>{b[e.id]=e})),await getPNG({type:"excalidraw",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,elements:B,appState:{theme:null!==(g=null!=n?n:null===(u=null==E?void 0:E.appState)||void 0===u?void 0:u.theme)&&void 0!==g?g:a,viewBackgroundColor:null!==(m=null===(p=null==E?void 0:E.appState)||void 0===p?void 0:p.viewBackgroundColor)&&void 0!==m?m:r},files:b},{withBackground:null!==(w=null==A?void 0:A.withBackground)&&void 0!==w?w:o.settings.exportWithBackground,withTheme:null!==(f=null==A?void 0:A.withTheme)&&void 0!==f?f:o.settings.exportWithTheme},c,t)}async function createSVG(e,t=!1,A,i,n,a,r,s=[],o,l,c,d){var h,u,g,p,m,w,f;i||(i=new EmbeddedFilesLoader(o));const E=e?await getTemplate(o,e,!0,i,l):null;let B=null!==(h=null==E?void 0:E.elements)&&void 0!==h?h:[];B=B.concat(s),c=null!=c?c:o.settings.exportPaddingSVG;const b=null!=d?d:{};(null==E?void 0:E.files)&&Object.values(E.files).forEach((e=>{b[e.id]=e}));const v=await getSVG({type:"excalidraw",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,elements:B,appState:{theme:null!==(g=null!=n?n:null===(u=null==E?void 0:E.appState)||void 0===u?void 0:u.theme)&&void 0!==g?g:a,viewBackgroundColor:null!==(m=null===(p=null==E?void 0:E.appState)||void 0===p?void 0:p.viewBackgroundColor)&&void 0!==m?m:r},files:b},{withBackground:null!==(w=null==A?void 0:A.withBackground)&&void 0!==w?w:o.settings.exportWithBackground,withTheme:null!==(f=null==A?void 0:A.withTheme)&&void 0!==f?f:o.settings.exportWithTheme},c),C=getEmbeddedFilenameParts(e);if(!C.hasGroupref&&!C.hasFrameref&&(C.hasBlockref||C.hasSectionref)){let e=C.hasSectionref?getTextElementsMatchingQuery(B,["# "+C.sectionref],!0):B.filter((e=>e.id===C.blockref));if(e.length>0){const t=e[0].containerId;t&&(e=e.concat(B.filter((e=>e.id===t))));const A=o.ea.getBoundingBox(e),i=o.ea.getBoundingBox(B);v.viewBox.baseVal.x=A.topX-i.topX,v.viewBox.baseVal.y=A.topY-i.topY,v.viewBox.baseVal.width=A.width+2*c,v.viewBox.baseVal.height=A.height+2*c}}return(null==E?void 0:E.hasSVGwithBitmap)&&v.setAttribute("hasbitmap","true"),t?embedFontsInSVG(v,o):v}function estimateLineBound(e){let t=1/0,A=1/0,i=-1/0,n=-1/0;for(const[a,r]of e)t=Math.min(t,a),A=Math.min(A,r),i=Math.max(i,a),n=Math.max(n,r);return[t,A,i,n]}function estimateBounds(e){const t=getCommonBoundingBox(e);return[t.minX,t.minY,t.maxX,t.maxY]}function repositionElementsToCursor(e,t,A=!1,i){const[n,a,r,s]=estimateBounds(e);let[o,l]=[0,0];return[o,l]=A?[t.x-(n+r)/2,t.y-(a+s)/2]:[t.x-n,t.y-a],e.forEach((e=>{e.x=e.x+o,e.y=e.y+l})),restore({elements:e},null,null).elements}function errorMessage(e,t){switch(e){case"targetView not set":errorlog({where:"ExcalidrawAutomate",source:t,message:"targetView not set, or no longer active. Use setView before calling this function"});break;case"mobile not supported":errorlog({where:"ExcalidrawAutomate",source:t,message:"this function is not avalable on Obsidian Mobile"});break;default:errorlog({where:"ExcalidrawAutomate",source:t,message:null!=e?e:"unknown error"})}}const insertLaTeXToView=e=>{const t=e.plugin.app,A=e.plugin.ea;new Prompt(t,t$d("ENTER_LATEX"),e.plugin.settings.latexBoilerplate,"\\color{red}\\oint_S {E_n dA = \\frac{1}{{\\varepsilon _0 }}} Q_{inside}").openAndGetValue((async t=>{t&&(A.reset(),await A.addLaTex(0,0,t),A.setView(e),A.addElementsToView(!0,!1,!0))}))},search=async e=>{const t=e.plugin.ea;t.reset(),t.setView(e);const A=t.getViewElements().filter((e=>"text"===e.type||"frame"===e.type));if(0===A.length)return;let i=await ScriptEngine.inputPrompt(e,e.plugin,e.plugin.app,"Search for","use quotation marks for exact match","");if(!i)return;const n=i.matchAll(/"(.*?)"/g);let a,r=[];for(;!(a=n.next()).done;)r.push(a.value[1]);i=i.replaceAll(/"(.*?)"/g,""),r=r.concat(i.split(" ").filter((e=>0!==e.length))),t.targetView.selectElementsMatchingQuery(A,r)},getTextElementsMatchingQuery=(e,t,A=!1)=>e&&0!==e.length&&t&&0!==t.length?e.filter((e=>"text"===e.type&&t.some((t=>{if(A){const A=e.rawText.toLowerCase().split("\n")[0].trim().match(/^#*(# .*)/);return!(!A||2!==A.length)&&A[1]===t.toLowerCase()}return e.rawText.toLowerCase().replaceAll("\n"," ").trim().match(t.toLowerCase())})))):[],getFrameElementsMatchingQuery=(e,t,A=!1)=>e&&0!==e.length&&t&&0!==t.length?e.filter((e=>"frame"===e.type&&t.some((t=>{if(A){const A=e.name.toLowerCase().split("\n")[0].trim().match(/^#*(# .*)/);return!(!A||2!==A.length)&&A[1]===t.toLowerCase()}return(e.name?e.name.toLowerCase().replaceAll("\n"," ").trim():"").match(t.toLowerCase())})))):[],cloneElement=e=>{const t=JSON.parse(JSON.stringify(e));return t.version=e.version+1,t.updated=Date.now(),t.versionNonce=Math.floor(1e9*Math.random()),t},verifyMinimumPluginVersion=e=>PLUGIN_VERSION===e||isVersionNewerThanOther(PLUGIN_VERSION,e),URL$1="https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/index-new.md";class ScriptInstallPrompt extends obsidian_module.Modal{constructor(e){super(e.app),this.plugin=e}async onOpen(){this.contentEl.classList.add("excalidraw-scriptengine-install"),this.containerEl.classList.add("excalidraw-scriptengine-install");try{const e=await obsidian_module.request({url:URL$1});if(!e)return new obsidian_module.Notice("Error opening the Excalidraw Script Store page. Please double check that you can access the website. I've logged the link in developer console (press CTRL+SHIFT+i)",5e3),log(URL$1),void this.close();await obsidian_module.MarkdownRenderer.renderMarkdown(e,this.contentEl,"",this.plugin),this.contentEl.querySelectorAll("h1[data-heading],h2[data-heading],h3[data-heading]").forEach((e=>{e.setAttribute("id",e.getAttribute("data-heading"))})),this.contentEl.querySelectorAll("a.internal-link").forEach((e=>{e.removeAttribute("target")}))}catch(e){errorlog({where:"ScriptInstallPrompt.onOpen",error:e}),new obsidian_module.Notice("Could not open ScriptEngine repository"),this.close()}}onClose(){this.contentEl.empty()}}function r(e){var t,A,i="";if("string"==typeof e||"number"==typeof e)i+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t{e.view instanceof ExcalidrawView&&e.view.updatePinnedCustomPens()})),this.plugin.saveSettings();const e=this.plugin.settings.customPens[this.pen],t=this.view.excalidrawAPI;setPen(e,t),t.setActiveTool({type:"freedraw"})}}async createForm(){const e=e=>{let t="";if(COLOR_NAMES.has(e))return[COLOR_NAMES.get(e),t];const A=(new Option).style;if(A.color=e,A.color){const e=A.color.match(/^[^\d]*(\d*)[^\d]*(\d*)[^\d]*(\d*)[^\d]*([\d\.]*)?/);return e?(t=e[4]?(Math.round(255*parseFloat(e[4]))<<0).toString(16).padStart(2,"0"):"",[`#${(parseInt(e[1])<<0).toString(16).padStart(2,"0")}${(parseInt(e[2])<<0).toString(16).padStart(2,"0")}${(parseInt(e[3])<<0).toString(16).padStart(2,"0")}`,t]):[null,t]}return[null,t]},t=this.plugin.settings.customPens[this.pen],A=this.contentEl;let i,n,a,r,s;A.createEl("h1",{text:"Pen settings"}),new obsidian_module.Setting(A).setName("Pen type").setDesc("Select type of pen").addDropdown((e=>{e.addOption("default","Excalidraw Default").addOption("highlighter","Highlighter").addOption("finetip","Fine tip pen").addOption("fountain","Fountain pen").addOption("marker","Marker with Outline").addOption("thick-thin","Mindmap Thick-Thin").addOption("thin-thick-thin","Mindmap Thin-Thick-Thin").setValue(t.type).onChange((e=>{this.dirty=!0,t.type=e}))})).addButton((e=>e.setButtonText("Apply").onClick((()=>{this.dirty=!0,t.strokeColor=PENS[t.type].strokeColor,t.backgroundColor=PENS[t.type].backgroundColor,t.fillStyle=PENS[t.type].fillStyle,t.strokeWidth=PENS[t.type].strokeWidth,t.roughness=PENS[t.type].roughness,t.penOptions=Object.assign({},PENS[t.type].penOptions),A.empty(),this.createForm()})))),i=new obsidian_module.Setting(A).setName(fragWithHTML(t.freedrawOnly?"Stroke & fill applies to: Freedraw only":"Stroke & fill applies to: All shapes")).setDesc(fragWithHTML('"All shapes" means that if for example, you select a blue pen with dashed fill and then switch to a different tool (e.g. to a line, a circle, an arrow - i.e. not the freedraw tool), those will all have the same blue line and dashed fill.
"Only applies to the freedraw line" means that if for example you are writing black text, and you select a custom pen (e.g. a yellow highlighter), then after using the highlighter you switch to another tool, the previous settings (e.g. black stroke color) will apply to the new shape.')).addToggle((e=>e.setValue(t.freedrawOnly).onChange((e=>{this.dirty=!0,i.setName(fragWithHTML(e?"Stroke & fill applies to: Freedraw only":"Stroke & fill applies to: All shapes")),t.freedrawOnly=e}))));let o,l,c,d,h,u,g,[p,m]=e(t.strokeColor),w=!1;s=new obsidian_module.Setting(A).setName(fragWithHTML(Boolean(t.strokeColor)?"Stroke color: Preset color":"Stroke color: Current")).setDesc(fragWithHTML("Use current stroke color of the canvas, or set a specific preset color for the pen")).addToggle((A=>A.setValue(!Boolean(t.strokeColor)).onChange((A=>{this.dirty=!0,n.settingEl.style.display=A?"none":"",s.setName(fragWithHTML(A?"Stroke color: Current":"Stroke color: Preset color")),A?delete t.strokeColor:(r.getValue()||([p,m]=e("black"),a.setValue(p),r.setValue("black")),t.strokeColor=r.getValue())})))),n=new obsidian_module.Setting(A).setName("Select stroke color").addButton((A=>A.setButtonText("Use Canvas Current").onClick((()=>{var A,i;const n=this.api.getAppState(),s=null!==(i=null===(A=n.resetCustomPen)||void 0===A?void 0:A.currentItemStrokeColor)&&void 0!==i?i:n.currentItemStrokeColor;[p,m]=e(s),t.strokeColor=s,this.dirty=!0,r.setValue(s),w=!0,a.setValue(p)})))).addText((A=>{r=A,A.setValue(t.strokeColor).onChange((A=>{w=!0,this.dirty=!0,t.strokeColor=A,[p,m]=e(A),p&&a.setValue(p)}))})).addColorPicker((e=>{a=e,e.setValue(null!=p?p:"#000000").onChange((e=>{w?w=!1:(this.dirty=!0,t.strokeColor=e+m,r.setValue(e+m))}))})),n.settingEl.style.display=Boolean(t.strokeColor)?"":"none";let[f,E]=e(t.backgroundColor);o=new obsidian_module.Setting(A).setName(fragWithHTML(Boolean(t.backgroundColor)?"Background color: Preset color":"Background color: Current")).setDesc(fragWithHTML("Toggle to use the current background color of the canvas; or a preset color")).addToggle((A=>A.setValue(!Boolean(t.backgroundColor)).onChange((A=>{this.dirty=!0,o.setName(fragWithHTML(A?"Background color: Current":"Background color: Preset color")),c.settingEl.style.display=A?"none":"",l.settingEl.style.display=A||"transparent"===t.backgroundColor?"none":"",A?delete t.backgroundColor:(h.getValue()||([f,E]=e("black"),d.setValue(f),h.setValue("black")),u.setValue(!1))})))),c=new obsidian_module.Setting(A).setName(fragWithHTML("transparent"===t.backgroundColor?"Background: Transparent":"Color: Preset color")).setDesc("Background has color or is transparent").addToggle((e=>{u=e,e.setValue("transparent"===t.backgroundColor).onChange((e=>{this.dirty=!0,l.settingEl.style.display=e?"none":"",g.settingEl.style.display=e?"none":"",c.setName(fragWithHTML(e?"Background: Transparent":"Color: Preset color")),t.backgroundColor=e?"transparent":d.getValue()}))})),c.settingEl.style.display=Boolean(t.backgroundColor)?"":"none";let B,b,v,C,y,F,x,T,S,I=!1;l=new obsidian_module.Setting(A).setName("Background color").addButton((A=>A.setButtonText("Use Canvas Current").onClick((()=>{var A,i;const n=this.api.getAppState(),a=null!==(i=null===(A=n.resetCustomPen)||void 0===A?void 0:A.currentItemBackgroundColor)&&void 0!==i?i:n.currentItemBackgroundColor;[f,E]=e(a),t.backgroundColor=a,this.dirty=!0,h.setValue(a),I=!0,d.setValue(f)})))).addText((A=>{h=A,A.setValue(t.backgroundColor).onChange((A=>{I=!0,this.dirty=!0,t.backgroundColor=A,[f,E]=e(A),f&&d.setValue(f)}))})).addColorPicker((e=>{d=e,e.setValue(null!=f?f:"#000000").onChange((e=>{I?I=!1:(this.dirty=!0,t.backgroundColor=e+E,h.setValue(e+E))}))})),l.settingEl.style.display=Boolean(t.backgroundColor)&&"transparent"!==t.backgroundColor?"":"none",g=new obsidian_module.Setting(A).setName("Fill Style").addDropdown((e=>e.addOption("","Unset").addOption("dots","Dots (⚠ VERY SLOW performance on large objects!)").addOption("zigzag","Zigzag").addOption("zigzag-line","Zigzag-line").addOption("dashed","Dashed").addOption("hachure","Hachure").addOption("cross-hatch","Cross-hatch").addOption("solid","Solid").setValue(t.fillStyle).onChange((e=>{this.dirty=!0,t.fillStyle=e})))),g.settingEl.style.display=Boolean(t.backgroundColor)&&"transparent"!==t.backgroundColor?"":"none",B=new obsidian_module.Setting(A).setName(fragWithHTML(`Sloppiness: ${null===t.roughness?"Not Set":t.roughness<=.5?"Architect (":t.roughness<=1.5?"Artist (":"Cartoonist ("}${null===t.roughness?"":`${t.roughness})`}`)).setDesc("Line sloppiness of the shape fill pattern").addSlider((e=>e.setLimits(-.5,3,.5).setValue(null===t.roughness?-.5:t.roughness).onChange((e=>{this.dirty=!0,t.roughness=-.5===e?null:e,B.setName(fragWithHTML(`Sloppiness: ${null===t.roughness?"Not Set":t.roughness<=.5?"Architect (":t.roughness<=1.5?"Artist (":"Cartoonist ("}${null===t.roughness?"":`${t.roughness})`}`))})))),b=new obsidian_module.Setting(A).setName(fragWithHTML(`Stroke Width ${0===t.strokeWidth?"Not Set":t.strokeWidth}`)).addSlider((e=>e.setLimits(0,5,.5).setValue(t.strokeWidth).onChange((e=>{this.dirty=!0,t.strokeWidth=e,b.setName(fragWithHTML(`Stroke Width ${0===t.strokeWidth?"Not Set":t.strokeWidth}`))})))),new obsidian_module.Setting(A).setName("Highlighter pen?").addToggle((e=>e.setValue(t.penOptions.highlighter).onChange((e=>{this.dirty=!0,t.penOptions.highlighter=e})))),new obsidian_module.Setting(A).setName("Pressure sensitve pen?").setDesc(fragWithHTML("toggle on: pressure sensitive
toggle off: constant pressure")).addToggle((e=>e.setValue(!t.penOptions.constantPressure).onChange((e=>{this.dirty=!0,t.penOptions.constantPressure=!e,v.settingEl.style.display=t.penOptions.constantPressure?"none":""})))),t.penOptions.hasOutline&&0===t.penOptions.outlineWidth&&(t.penOptions.outlineWidth=.5,this.dirty=!0),!t.penOptions.hasOutline&&t.penOptions.outlineWidth>0&&(t.penOptions.outlineWidth=0,this.dirty=!0),C=new obsidian_module.Setting(A).setName(fragWithHTML(0===t.penOptions.outlineWidth?"No outline":`Outline width ${t.penOptions.outlineWidth}`)).setDesc("If the stroke has an outline, this will mean the stroke color is the outline color, and the background color is the pen stroke's fill color. If the pen does not have an outline then the pen color is the stroke color. The Fill Style setting applies to the fill style of the enclosed shape, not of the line itself. The line can only have solid fill.").addSlider((e=>e.setLimits(0,8,.5).setValue(t.penOptions.outlineWidth).onChange((e=>{this.dirty=!0,t.penOptions.outlineWidth=e,t.penOptions.hasOutline=e>0,C.setName(fragWithHTML(0===t.penOptions.outlineWidth?"No outline":`Outline width ${t.penOptions.outlineWidth}`))})))),A.createEl("h2",{text:"Perfect Freehand settings"}),A.createEl("p").innerHTML='Read the Perfect Freehand documentation following this link.',y=new obsidian_module.Setting(A).setName(fragWithHTML(`Thinnning ${t.penOptions.options.thinning}`)).setDesc(fragWithHTML("The effect of pressure on the stroke's size.
To create a stroke with a steady line, set the thinning option to 0.
To create a stroke that gets thinner with pressure instead of thicker, use a negative number for the thinning option.")).addSlider((e=>e.setLimits(-1,1,.05).setValue(t.penOptions.options.thinning).onChange((e=>{this.dirty,y.setName(fragWithHTML(`Thinnning ${e}`)),t.penOptions.options.thinning=e})))),F=new obsidian_module.Setting(A).setName(fragWithHTML(`Smoothing ${t.penOptions.options.smoothing}`)).setDesc(fragWithHTML("How much to soften the stroke's edges.")).addSlider((e=>e.setLimits(0,1,.05).setValue(t.penOptions.options.smoothing).onChange((e=>{this.dirty,F.setName(fragWithHTML(`Smoothing ${e}`)),t.penOptions.options.smoothing=e})))),x=new obsidian_module.Setting(A).setName(fragWithHTML(`Streamline ${t.penOptions.options.streamline}`)).setDesc(fragWithHTML("\tHow much to streamline the stroke.")).addSlider((e=>e.setLimits(0,1,.05).setValue(t.penOptions.options.streamline).onChange((e=>{this.dirty,x.setName(fragWithHTML(`Streamline ${e}`)),t.penOptions.options.streamline=e})))),new obsidian_module.Setting(A).setName("Easing function").setDesc(fragWithHTML('An easing function for the tapering effect. For more info click here')).addDropdown((e=>e.addOptions(EASINGFUNCTIONS).setValue(t.penOptions.options.easing).onChange((e=>{this.dirty=!0,t.penOptions.options.easing=e})))),v=new obsidian_module.Setting(A).setName("Simulate Pressure").setDesc("Whether to simulate pressure based on velocity.").addDropdown((e=>e.addOption("true","Always").addOption("false","Never").addOption("","Yes for mouse, No for pen").setValue(!0===t.penOptions.options.simulatePressure?"true":!1===t.penOptions.options.simulatePressure?"false":"").onChange((e=>{switch(this.dirty=!0,e){case"true":t.penOptions.options.simulatePressure=!0;break;case"false":t.penOptions.options.simulatePressure=!1;break;default:delete t.penOptions.options.simulatePressure}})))),v.settingEl.style.display=t.penOptions.constantPressure?"none":"",A.createEl("h3",{text:"Start"}),A.createEl("p",{text:"Tapering options for the start of the line."}),new obsidian_module.Setting(A).setName("Cap Start").setDesc("Whether to draw a cap").addToggle((e=>e.setValue(t.penOptions.options.start.cap).onChange((e=>{this.dirty=!0,t.penOptions.options.start.cap=e})))),T=new obsidian_module.Setting(A).setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.start.taper?"true":t.penOptions.options.start.taper}`)).setDesc("The distance to taper. If set to true, the taper will be the total length of the stroke.").addSlider((e=>e.setLimits(0,151,1).setValue("boolean"==typeof t.penOptions.options.start.taper?151:t.penOptions.options.start.taper).onChange((e=>{this.dirty,t.penOptions.options.start.taper=151===e||e,T.setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.start.taper?"true":t.penOptions.options.start.taper}`))})))),new obsidian_module.Setting(A).setName("Easing function").setDesc(fragWithHTML('An easing function for the tapering effect. For more info click here')).addDropdown((e=>e.addOptions(EASINGFUNCTIONS).setValue(t.penOptions.options.start.easing).onChange((e=>{this.dirty=!0,t.penOptions.options.start.easing=e})))),A.createEl("h3",{text:"End"}),A.createEl("p",{text:"Tapering options for the end of the line."}),new obsidian_module.Setting(A).setName("Cap End").setDesc("Whether to draw a cap").addToggle((e=>e.setValue(t.penOptions.options.end.cap).onChange((e=>{this.dirty=!0,t.penOptions.options.end.cap=e})))),S=new obsidian_module.Setting(A).setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.end.taper?"true":t.penOptions.options.end.taper}`)).setDesc("The distance to taper. If set to true, the taper will be the total length of the stroke.").addSlider((e=>e.setLimits(0,151,1).setValue("boolean"==typeof t.penOptions.options.end.taper?151:t.penOptions.options.end.taper).onChange((e=>{this.dirty,t.penOptions.options.end.taper=151===e||e,S.setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.end.taper?"true":t.penOptions.options.end.taper}`))})))),new obsidian_module.Setting(A).setName("Easing function").setDesc(fragWithHTML('An easing function for the tapering effect. For more info click here')).addDropdown((e=>e.addOptions(EASINGFUNCTIONS).setValue(t.penOptions.options.end.easing).onChange((e=>{this.dirty=!0,t.penOptions.options.end.easing=e}))))}}var defaultAttributes={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const toKebabCase=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),createLucideIcon=(e,t)=>{const A=React.forwardRef((({color:A="currentColor",size:i=24,strokeWidth:n=2,absoluteStrokeWidth:a,children:r,...s},o)=>{return React.createElement("svg",{ref:o,...defaultAttributes,width:i,height:i,stroke:A,strokeWidth:a?24*Number(n)/Number(i):n,className:`lucide lucide-${l=e,l.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...t.map((([e,t])=>React.createElement(e,t))),...(Array.isArray(r)?r:[r])||[]]);var l}));return A.displayName=`${e}`,A},Globe=createLucideIcon("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"2",x2:"22",y1:"12",y2:"12",key:"1dnqot"}],["path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z",key:"nb9nel"}]]),RotateCcw=createLucideIcon("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),Scan=createLucideIcon("Scan",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]),ICONS={ExportImage:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("g",{strokeWidth:"1.25"},React__namespace.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),React__namespace.createElement("path",{d:"M15 8h.01"}),React__namespace.createElement("path",{d:"M12 20h-5a3 3 0 0 1 -3 -3v-10a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v5"}),React__namespace.createElement("path",{d:"M4 15l4 -4c.928 -.893 2.072 -.893 3 0l4 4"}),React__namespace.createElement("path",{d:"M14 14l1 -1c.617 -.593 1.328 -.793 2.009 -.598"}),React__namespace.createElement("path",{d:"M19 16v6"}),React__namespace.createElement("path",{d:"M22 19l-3 3l-3 -3"}))),Reload:React__namespace.createElement(RotateCcw,null),Globe:React__namespace.createElement(Globe,null),ZoomToSelectedElement:React__namespace.createElement(Scan,null),ZoomToSection:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("text",{x:"6",y:"18",fontSize:"22px"},"#")),ZoomToBlock:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("text",{x:"1",y:"18",fontSize:"22px"},"#^")),Discord:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"var(--icon-fill-color)",stroke:"none",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 640 512"},React__namespace.createElement("path",{d:"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"})),Github:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}),React__namespace.createElement("path",{d:"M9 18c-4.51 2-5-2-7-2"})),YouTube:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M12 19c-2.3 0-6.4-.2-8.1-.6-.7-.2-1.2-.7-1.4-1.4-.3-1.1-.5-3.4-.5-5s.2-3.9.5-5c.2-.7.7-1.2 1.4-1.4C5.6 5.2 9.7 5 12 5s6.4.2 8.1.6c.7.2 1.2.7 1.4 1.4.3 1.1.5 3.4.5 5s-.2 3.9-.5 5c-.2.7-.7 1.2-1.4 1.4-1.7.4-5.8.6-8.1.6 0 0 0 0 0 0z"}),React__namespace.createElement("polygon",{points:"10 15 15 12 10 9"})),heart:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M20.42 4.58a5.4 5.4 0 0 0-7.65 0l-.77.78-.77-.78a5.4 5.4 0 0 0-7.65 0C1.46 6.7 1.33 10.28 4 13l8 8 8-8c2.67-2.72 2.54-6.3.42-8.42z"})),twitter:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z"})),exportLibrary:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 200 190",fill:"var(--icon-fill-color)"},React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M50 10h20v20H50"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M50 10h20m-20 0h20m0 0v20m0-20v20m0 0H50m20 0H50m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M90 10h20v20H90"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M90 10h20m-20 0h20m0 0v20m0-20v20m0 0H90m20 0H90m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M130 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M130 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M170 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M170 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M70 50h60v80h20l-50 50-50-50h20V50"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M70 50h60m-60 0h60m0 0v80m0-80v80m0 0h20m-20 0h20m0 0-50 50m50-50-50 50m0 0-50-50m50 50-50-50m0 0h20m-20 0h20m0 0V50m0 80V50m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M10 10h20v20H10"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M10 10h20m-20 0h20m0 0v20m0-20v20m0 0H10m20 0H10m0 0V10m0 20V10"}))),insertPDF:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M64 464H96v48H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V288H336V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16zM176 352h32c30.9 0 56 25.1 56 56s-25.1 56-56 56H192v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V448 368c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H192v48h16zm96-80h32c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H304c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H320v96h16zm80-112c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V432 368z"})),insertImage:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"})),insertMD:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"})),insertLaTeX:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",stroke:"none",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"})),insertLink:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"none",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"})),search:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7C401.8 87.79 326.8 13.32 235.2 1.723C99.01-15.51-15.51 99.01 1.724 235.2c11.6 91.64 86.08 166.7 177.6 178.9c53.8 7.189 104.3-6.236 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 0C515.9 484.7 515.9 459.3 500.3 443.7zM79.1 208c0-70.58 57.42-128 128-128s128 57.42 128 128c0 70.58-57.42 128-128 128S79.1 278.6 79.1 208z"})),ocr:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"m6 18 6-12 6 12"}),React__namespace.createElement("path",{d:"M8 14h8"}),React__namespace.createElement("path",{d:"M3 7V5a2 2 0 0 1 2-2h2"}),React__namespace.createElement("path",{d:"M17 3h2a2 2 0 0 1 2 2v2"}),React__namespace.createElement("path",{d:"M21 17v2a2 2 0 0 1-2 2h-2"}),React__namespace.createElement("path",{d:"M7 21H5a2 2 0 0 1-2-2v-2"})),scriptEngine:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeLinecap:"round",strokeWidth:"4"},React__namespace.createElement("g",{transform:"translate(-8,-8)"},React__namespace.createElement("path",{d:"M24.318 37.983c-1.234-1.232-8.433-3.903-7.401-7.387 1.057-3.484 9.893-12.443 13.669-13.517 3.776-1.074 6.142 6.523 9.012 7.073 2.87.55 6.797-1.572 8.207-3.694 1.384-2.148-3.147-7.413.15-9.168 3.298-1.755 16.389-2.646 19.611-1.284 3.247 1.363-1.611 7.335-.151 9.483 1.46 2.148 6.067 3.746 8.836 3.38 2.769-.368 4.154-6.733 7.728-5.633 3.575 1.1 12.36 8.828 13.67 12.233 1.308 3.406-5.186 5.423-5.79 8.2-.58 2.75-.026 6.705 2.265 8.355 2.266 1.65 9.642-1.78 11.404 1.598 1.762 3.38 1.007 15.35-.806 18.651-1.787 3.353-7.753-.367-9.969 1.31-2.215 1.65-3.901 5.92-3.373 8.67.504 2.777 7.754 4.48 6.445 7.885C96.49 87.543 87.15 95.454 83.5 96.685c-3.65 1.231-4.96-4.741-7.577-5.16-2.593-.393-6.57.707-8.03 2.75-1.436 2.017 2.668 7.806-.63 9.483-3.323 1.676-15.759 2.226-19.157.655-3.373-1.598.554-7.964-1.108-10.138-1.687-2.174-6.394-3.431-9.012-2.907-2.643.55-3.273 7.282-6.747 6.103-3.499-1.126-12.788-9.535-14.172-13.019-1.36-3.484 5.437-5.108 5.966-7.858.529-2.777-.68-7.073-2.744-8.697-2.064-1.624-7.93 2.41-9.642-1.126-1.737-3.537-2.441-16.765-.654-20.118 1.787-3.3 9.062 1.598 11.429.183 2.366-1.44 2.316-7.282 2.769-8.749m.126-.104c-1.234-1.232-8.433-3.903-7.401-7.387 1.057-3.484 9.893-12.443 13.669-13.517 3.776-1.074 6.142 6.523 9.012 7.073 2.87.55 6.797-1.572 8.207-3.694 1.384-2.148-3.147-7.413.15-9.168 3.298-1.755 16.389-2.646 19.611-1.284 3.247 1.363-1.611 7.335-.151 9.483 1.46 2.148 6.067 3.746 8.836 3.38 2.769-.368 4.154-6.733 7.728-5.633 3.575 1.1 12.36 8.828 13.67 12.233 1.308 3.406-5.186 5.423-5.79 8.2-.58 2.75-.026 6.705 2.265 8.355 2.266 1.65 9.642-1.78 11.404 1.598 1.762 3.38 1.007 15.35-.806 18.651-1.787 3.353-7.753-.367-9.969 1.31-2.215 1.65-3.901 5.92-3.373 8.67.504 2.777 7.754 4.48 6.445 7.885C96.49 87.543 87.15 95.454 83.5 96.685c-3.65 1.231-4.96-4.741-7.577-5.16-2.593-.393-6.57.707-8.03 2.75-1.436 2.017 2.668 7.806-.63 9.483-3.323 1.676-15.759 2.226-19.157.655-3.373-1.598.554-7.964-1.108-10.138-1.687-2.174-6.394-3.431-9.012-2.907-2.643.55-3.273 7.282-6.747 6.103-3.499-1.126-12.788-9.535-14.172-13.019-1.36-3.484 5.437-5.108 5.966-7.858.529-2.777-.68-7.073-2.744-8.697-2.064-1.624-7.93 2.41-9.642-1.126-1.737-3.537-2.441-16.765-.654-20.118 1.787-3.3 9.062 1.598 11.429.183 2.366-1.44 2.316-7.282 2.769-8.749",fill:"none",strokeWidth:"2"}),React__namespace.createElement("path",{d:"M81.235 56.502a23.3 23.3 0 0 1-1.46 8.068 20.785 20.785 0 0 1-1.762 3.72 24.068 24.068 0 0 1-5.337 6.26 22.575 22.575 0 0 1-3.449 2.358 23.726 23.726 0 0 1-7.803 2.803 24.719 24.719 0 0 1-8.333 0 24.102 24.102 0 0 1-4.028-1.074 23.71 23.71 0 0 1-3.776-1.729 23.259 23.259 0 0 1-6.369-5.265 23.775 23.775 0 0 1-2.416-3.353 24.935 24.935 0 0 1-1.762-3.72 23.765 23.765 0 0 1-1.083-3.981 23.454 23.454 0 0 1 0-8.173c.252-1.336.604-2.698 1.083-3.956a24.935 24.935 0 0 1 1.762-3.72 22.587 22.587 0 0 1 2.416-3.378c.881-1.048 1.888-2.017 2.946-2.908a24.38 24.38 0 0 1 3.423-2.357 23.71 23.71 0 0 1 3.776-1.73 21.74 21.74 0 0 1 4.028-1.047 23.437 23.437 0 0 1 8.333 0 24.282 24.282 0 0 1 7.803 2.777 26.198 26.198 0 0 1 3.45 2.357 24.62 24.62 0 0 1 5.336 6.287 20.785 20.785 0 0 1 1.762 3.72 21.32 21.32 0 0 1 1.083 3.955c.251 1.336.302 3.405.377 4.086.05.681.05-.68 0 0",fill:"none"}),React__namespace.createElement("path",{d:"M69.404 56.633c-6.596-3.3-13.216-6.6-19.51-9.744m19.51 9.744c-6.747-3.379-13.493-6.758-19.51-9.744m0 0v19.489m0-19.49v19.49m0 0c4.355-2.148 8.71-4.322 19.51-9.745m-19.51 9.745c3.978-1.965 7.93-3.956 19.51-9.745m0 0h0m0 0h0"}))),openLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v7"}),React__namespace.createElement("polyline",{points:"14 2 14 8 20 8"}),React__namespace.createElement("path",{d:"m10 18 3-3-3-3"}),React__namespace.createElement("path",{d:"M4 18v-1a2 2 0 0 1 2-2h6"})),openLinkProperties:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v7"}),React__namespace.createElement("polyline",{points:"14 2 14 8 20 8",fill:"var(--icon-fill-color)"}),React__namespace.createElement("path",{d:"m10 18 3-3-3-3"}),React__namespace.createElement("path",{d:"M4 18v-1a2 2 0 0 1 2-2h6"})),switchToMarkdown:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",stroke:"var(--icon-fill-color)",strokeWidth:"10",fill:"var(--icon-fill-color)"},React__namespace.createElement("path",{d:"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"})),gotoFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M128 32H32C14.31 32 0 46.31 0 64v96c0 17.69 14.31 32 32 32s32-14.31 32-32V96h64c17.69 0 32-14.31 32-32S145.7 32 128 32zM416 32h-96c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32V64C448 46.31 433.7 32 416 32zM128 416H64v-64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96c0 17.69 14.31 32 32 32h96c17.69 0 32-14.31 32-32S145.7 416 128 416zM416 320c-17.69 0-32 14.31-32 32v64h-64c-17.69 0-32 14.31-32 32s14.31 32 32 32h96c17.69 0 32-14.31 32-32v-96C448 334.3 433.7 320 416 320z"})),exitFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M128 320H32c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32v-96C160 334.3 145.7 320 128 320zM416 320h-96c-17.69 0-32 14.31-32 32v96c0 17.69 14.31 32 32 32s32-14.31 32-32v-64h64c17.69 0 32-14.31 32-32S433.7 320 416 320zM320 192h96c17.69 0 32-14.31 32-32s-14.31-32-32-32h-64V64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96C288 177.7 302.3 192 320 192zM128 32C110.3 32 96 46.31 96 64v64H32C14.31 128 0 142.3 0 160s14.31 32 32 32h96c17.69 0 32-14.31 32-32V64C160 46.31 145.7 32 128 32z"})),releaseNotes:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M0 219.2v212.5c0 14.25 11.62 26.25 26.5 27C75.32 461.2 180.2 471.3 240 511.9V245.2C181.4 205.5 79.99 194.8 29.84 192C13.59 191.1 0 203.6 0 219.2zM482.2 192c-50.09 2.848-151.3 13.47-209.1 53.09C272.1 245.2 272 245.3 272 245.5v266.5c60.04-40.39 164.7-50.76 213.5-53.28C500.4 457.9 512 445.9 512 431.7V219.2C512 203.6 498.4 191.1 482.2 192zM352 96c0-53-43-96-96-96S160 43 160 96s43 96 96 96S352 149 352 96z"})),rawMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 60"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"4",d:"M20 10H10m10 0H10m0 0v40m0-40v40m0 0h10m-10 0h10M40 10H30m10 0H30m0 0v40m0-40v40m0 0h10m-10 0h10M60 10h10m-10 0h10m0 0v40m0-40v40m0 0H60m10 0H60M80 10h10m-10 0h10m0 0v40m0-40v40m0 0H80m10 0H80"})),parsedMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",stroke:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M574.1 280.4l-45.38-181.8c-5.875-23.63-21.62-44-43-55.75c-21.5-11.75-46.1-14.13-70.25-6.375l-15.25 5.125c-8.375 2.75-12.87 11.88-10 20.25l5 15.13c2.75 8.375 11.88 12.88 20.25 10.13l13.12-4.375c10.88-3.625 23-3.625 33.25 1.75c10.25 5.375 17.5 14.5 20.38 25.75l38.38 153.9c-22.12-6.875-49.75-12.5-81.13-12.5c-34.88 0-73.1 7-114.9 26.75H251.4C210.5 258.6 171.4 251.6 136.5 251.6c-31.38 0-59 5.625-81.12 12.5l38.38-153.9c2.875-11.25 10.12-20.38 20.5-25.75C124.4 79.12 136.5 79.12 147.4 82.74l13.12 4.375c8.375 2.75 17.5-1.75 20.25-10.13l5-15.13C188.6 53.49 184.1 44.37 175.6 41.62l-15.25-5.125c-23.13-7.75-48.75-5.375-70.13 6.375c-21.37 11.75-37.12 32.13-43 55.75L1.875 280.4C.6251 285.4 .0001 290.6 .0001 295.9v70.25C.0001 428.1 51.63 480 115.3 480h37.13c60.25 0 110.4-46 114.9-105.4l2.875-38.63h35.75l2.875 38.63C313.3 433.1 363.4 480 423.6 480h37.13c63.62 0 115.2-51 115.2-113.9V295.9C576 290.6 575.4 285.5 574.1 280.4zM203.4 369.7c-2 26-24.38 46.25-51 46.25H115.2C87 415.1 64 393.6 64 366.1v-37.5c18.12-6.5 43.38-13 72.62-13c23.88 0 47.25 4.375 69.88 13L203.4 369.7zM512 366.1c0 27.5-23 49.88-51.25 49.88h-37.13c-26.62 0-49-20.25-51-46.25l-3.125-41.13c22.62-8.625 46.13-13 70-13c29 0 54.38 6.5 72.5 13V366.1z"})),convertFile:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:"0 110 700 340",xmlns:"http://www.w3.org/2000/svg",stroke:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"m593.95 239.4v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4688-1.457-3.1875-2.6445-5.0742-3.5h-1.5742c-1.4727-0.49219-3.0039-0.78516-4.5508-0.875h-124.25c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v87.5h-70v-105.88-1.0508c-0.089844-1.5469-0.38281-3.0781-0.875-4.5508v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4727-1.457-3.1914-2.6445-5.0742-3.5h-1.5742c-1.7031-0.875-3.5352-1.4688-5.4258-1.75h-123.55c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v245c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-52.5h70v122.5c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-192.5-1.0508c-0.14453-1.5547-0.5-3.0859-1.0508-4.5508zm-313.95 110.6h-140v-210h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v87.5h-52.5c-6.2539 0-12.031 3.3359-15.156 8.75s-3.125 12.086 0 17.5 8.9023 8.75 15.156 8.75h52.5zm140 70v-105h27.824l-5.0742 5.0742c-3.7031 3.1719-5.9141 7.7461-6.1055 12.617-0.1875 4.8711 1.668 9.6016 5.1133 13.051 3.4492 3.4453 8.1797 5.3008 13.051 5.1133 4.8711-0.19141 9.4453-2.4023 12.617-6.1055l35-35c3.2578-3.2773 5.0898-7.7148 5.0898-12.336 0-4.625-1.832-9.0586-5.0898-12.34l-35-35c-4.5078-3.8555-10.66-5.1719-16.348-3.4883-5.6875 1.6797-10.137 6.1289-11.816 11.816-1.6836 5.6914-0.37109 11.844 3.4883 16.348l5.0742 5.0742h-27.824v-69.824h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v157.5z"})),cog:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M495.9 166.6C499.2 175.2 496.4 184.9 489.6 191.2L446.3 230.6C447.4 238.9 448 247.4 448 256C448 264.6 447.4 273.1 446.3 281.4L489.6 320.8C496.4 327.1 499.2 336.8 495.9 345.4C491.5 357.3 486.2 368.8 480.2 379.7L475.5 387.8C468.9 398.8 461.5 409.2 453.4 419.1C447.4 426.2 437.7 428.7 428.9 425.9L373.2 408.1C359.8 418.4 344.1 427 329.2 433.6L316.7 490.7C314.7 499.7 307.7 506.1 298.5 508.5C284.7 510.8 270.5 512 255.1 512C241.5 512 227.3 510.8 213.5 508.5C204.3 506.1 197.3 499.7 195.3 490.7L182.8 433.6C167 427 152.2 418.4 138.8 408.1L83.14 425.9C74.3 428.7 64.55 426.2 58.63 419.1C50.52 409.2 43.12 398.8 36.52 387.8L31.84 379.7C25.77 368.8 20.49 357.3 16.06 345.4C12.82 336.8 15.55 327.1 22.41 320.8L65.67 281.4C64.57 273.1 64 264.6 64 256C64 247.4 64.57 238.9 65.67 230.6L22.41 191.2C15.55 184.9 12.82 175.3 16.06 166.6C20.49 154.7 25.78 143.2 31.84 132.3L36.51 124.2C43.12 113.2 50.52 102.8 58.63 92.95C64.55 85.8 74.3 83.32 83.14 86.14L138.8 103.9C152.2 93.56 167 84.96 182.8 78.43L195.3 21.33C197.3 12.25 204.3 5.04 213.5 3.51C227.3 1.201 241.5 0 256 0C270.5 0 284.7 1.201 298.5 3.51C307.7 5.04 314.7 12.25 316.7 21.33L329.2 78.43C344.1 84.96 359.8 93.56 373.2 103.9L428.9 86.14C437.7 83.32 447.4 85.8 453.4 92.95C461.5 102.8 468.9 113.2 475.5 124.2L480.2 132.3C486.2 143.2 491.5 154.7 495.9 166.6V166.6zM256 336C300.2 336 336 300.2 336 255.1C336 211.8 300.2 175.1 256 175.1C211.8 175.1 176 211.8 176 255.1C176 300.2 211.8 336 256 336z"})),trayMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M618.1 97.67c-13.02-4.375-27.45 .1562-35.72 11.16L464 266.7l-118.4-157.8c-8.266-11.03-22.64-15.56-35.72-11.16C296.8 102 288 114.2 288 128v256c0 17.69 14.33 32 32 32s32-14.31 32-32v-160l86.41 115.2c12.06 16.12 39.13 16.12 51.19 0L576 224v160c0 17.69 14.33 32 32 32s32-14.31 32-32v-256C640 114.2 631.2 102 618.1 97.67zM224 96.01H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h64v223.1c0 17.69 14.33 31.99 32 31.99s32-14.3 32-31.99V160h64c17.67 0 32-14.31 32-32S241.7 96.01 224 96.01z"})),copyElementLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 260 260","aria-hidden":"true",focusable:"false",role:"img"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"8",d:"M10 10h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0V10m0 40V10M210 10h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0V10m0 40V10M210 210h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0v-40m0 40v-40M10 210h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0v-40m0 40v-40M30 210V50m0 160V50M50 30h160M50 30h160M230 50v160m0-160v160M50 230h160m-160 0h160"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M110 90c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10m0-80c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10M150 90c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10m0-80c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M89.868 130.198c13.36-.03 66.78-.17 80.13-.2m-80.13.2c13.36-.03 66.78-.17 80.13-.2"})),importSVG:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 526 526"},React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"var(--input-bg-color)",strokeWidth:"0",d:"m133.462 71 .33-6.54.97-6.34 1.58-6.13 2.16-5.88 2.69-5.6 3.21-5.27 3.69-4.93 4.13-4.55 4.55-4.13 4.93-3.69 5.27-3.21 5.6-2.69 5.88-2.16 6.13-1.58 6.34-.97 6.54-.33h160v128l.16 3.28.49 3.18.79 3.07 1.07 2.94 1.35 2.8 1.6 2.63 1.84 2.47 2.06 2.27 2.27 2.06 2.47 1.84 2.63 1.6 2.8 1.35 2.94 1.07 3.07.79 3.18.49 3.28.16h128v288l-.33 6.54-.97 6.34-1.58 6.13-2.16 5.88-2.69 5.6-3.21 5.27-3.69 4.93-4.13 4.55-4.55 4.13-4.93 3.69-5.27 3.21-5.6 2.69-5.88 2.16-6.13 1.58-6.34.97-6.54.33h-256l-6.54-.33-6.34-.97-6.13-1.58-5.88-2.16-5.6-2.69-5.27-3.21-4.93-3.69-4.55-4.13-4.13-4.55-3.69-4.93-3.21-5.27-2.69-5.6-2.16-5.88-1.58-6.13-.97-6.34-.33-6.54V343h174.1l-39 39-1.65 1.83-1.43 1.94-1.22 2.05-.99 2.13-.77 2.2-.55 2.25-.33 2.29-.11 2.3.11 2.3.33 2.28.55 2.24.77 2.19.99 2.12 1.22 2.04 1.43 1.93 1.65 1.81 1.83 1.64 1.94 1.42 2.05 1.2 2.13.99 2.2.76 2.25.56 2.29.33 2.3.11 2.3-.1 2.28-.33 2.24-.54 2.19-.77 2.12-.98 2.04-1.21 1.93-1.43 1.81-1.65 80-80 1.65-1.83 1.43-1.94 1.22-2.05.99-2.13.77-2.2.55-2.25.33-2.29.11-2.3-.11-2.3-.33-2.28-.55-2.24-.77-2.19-.99-2.12-1.22-2.04-1.43-1.93-1.65-1.81-80-80-1.83-1.65-1.94-1.43-2.05-1.22-2.13-.99-2.2-.77-2.25-.55-2.29-.33-2.3-.11-2.3.11-2.28.33-2.24.55-2.19.77-2.12.99-2.04 1.22-1.93 1.43-1.81 1.65-1.64 1.83-1.42 1.94-1.2 2.05-.99 2.13-.76 2.2-.56 2.25-.33 2.29-.11 2.3.1 2.3.33 2.28.54 2.24.77 2.19.98 2.12 1.21 2.04 1.43 1.93 1.65 1.81 39 39h-174.1V71"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"18",d:"M133.462 71s0 0 0 0m0 0s0 0 0 0m0 0 .33-6.54m-.33 6.54c.13-2.57.26-5.13.33-6.54m0 0c.36-2.33.72-4.67.97-6.34m-.97 6.34c.35-2.26.69-4.53.97-6.34m0 0c.51-1.99 1.03-3.98 1.58-6.13m-1.58 6.13c.4-1.56.81-3.12 1.58-6.13m0 0c.81-2.22 1.62-4.43 2.16-5.88m-2.16 5.88c.45-1.22.9-2.44 2.16-5.88m0 0c.72-1.51 1.45-3.01 2.69-5.6m-2.69 5.6c.69-1.45 1.39-2.9 2.69-5.6m0 0c.93-1.52 1.86-3.05 3.21-5.27m-3.21 5.27c.97-1.59 1.94-3.18 3.21-5.27m0 0c.86-1.15 1.71-2.29 3.69-4.93m-3.69 4.93c.78-1.04 1.56-2.08 3.69-4.93m0 0c1.53-1.69 3.07-3.38 4.13-4.55m-4.13 4.55c1.54-1.69 3.07-3.38 4.13-4.55m0 0c1.03-.93 2.06-1.87 4.55-4.13m-4.55 4.13c.98-.89 1.97-1.78 4.55-4.13m0 0c1.64-1.23 3.28-2.46 4.93-3.69m-4.93 3.69c1.72-1.29 3.45-2.58 4.93-3.69m0 0c1.11-.68 2.23-1.35 5.27-3.21m-5.27 3.21c1.5-.91 3.01-1.83 5.27-3.21m0 0c1.87-.89 3.73-1.79 5.6-2.69m-5.6 2.69c2.09-1 4.17-2.01 5.6-2.69m0 0c1.72-.64 3.44-1.27 5.88-2.16m-5.88 2.16c1.94-.72 3.89-1.43 5.88-2.16m0 0c2.3-.59 4.6-1.19 6.13-1.58m-6.13 1.58c2.32-.6 4.65-1.2 6.13-1.58m0 0c2.06-.31 4.12-.63 6.34-.97m-6.34.97c2.34-.36 4.69-.72 6.34-.97m0 0c2.05-.1 4.09-.21 6.54-.33m-6.54.33c2.06-.1 4.12-.21 6.54-.33m0 0h160m-160 0h160m0 0v128m0-128v128m0 0s0 0 0 0m0 0s0 0 0 0m0 0 .16 3.28m-.16-3.28c.06 1.16.12 2.32.16 3.28m0 0c.13.82.26 1.64.49 3.18m-.49-3.18c.18 1.13.35 2.26.49 3.18m0 0c.24.95.49 1.91.79 3.07m-.79-3.07c.28 1.1.56 2.2.79 3.07m0 0c.39 1.06.78 2.13 1.07 2.94m-1.07-2.94c.42 1.15.84 2.3 1.07 2.94m0 0c.38.79.76 1.57 1.35 2.8m-1.35-2.8c.4.82.79 1.64 1.35 2.8m0 0c.45.75.91 1.5 1.6 2.63m-1.6-2.63c.4.65.8 1.31 1.6 2.63m0 0c.56.76 1.13 1.52 1.84 2.47m-1.84-2.47c.58.79 1.17 1.57 1.84 2.47m0 0c.75.82 1.5 1.65 2.06 2.27m-2.06-2.27c.75.82 1.5 1.65 2.06 2.27m0 0c.74.66 1.47 1.33 2.27 2.06m-2.27-2.06c.89.81 1.78 1.61 2.27 2.06m0 0c.69.51 1.37 1.02 2.47 1.84m-2.47-1.84c.68.5 1.35 1.01 2.47 1.84m0 0c.81.49 1.62.99 2.63 1.6m-2.63-1.6c.74.45 1.47.9 2.63 1.6m0 0c.72.35 1.43.69 2.8 1.35m-2.8-1.35c.61.3 1.22.59 2.8 1.35m0 0c.85.31 1.69.62 2.94 1.07m-2.94-1.07c1.03.38 2.07.75 2.94 1.07m0 0c.83.22 1.67.43 3.07.79m-3.07-.79 3.07.79m0 0c1.07.16 2.14.33 3.18.49m-3.18-.49c1.2.18 2.39.36 3.18.49m0 0 3.28.16m-3.28-.16c.97.04 1.93.09 3.28.16m0 0h128m-128 0h128m0 0v288m0-288v288m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.1 2.02-.2 4.04-.33 6.54m.33-6.54c-.13 2.52-.26 5.05-.33 6.54m0 0c-.33 2.14-.66 4.29-.97 6.34m.97-6.34c-.32 2.06-.63 4.12-.97 6.34m0 0c-.59 2.28-1.17 4.55-1.58 6.13m1.58-6.13c-.53 2.07-1.07 4.14-1.58 6.13m0 0c-.73 1.99-1.46 3.97-2.16 5.88m2.16-5.88c-.72 1.97-1.44 3.94-2.16 5.88m0 0c-.94 1.97-1.89 3.93-2.69 5.6m2.69-5.6c-.91 1.89-1.82 3.77-2.69 5.6m0 0c-.89 1.46-1.78 2.92-3.21 5.27m3.21-5.27c-.65 1.05-1.29 2.11-3.21 5.27m0 0c-1.13 1.51-2.25 3.01-3.69 4.93m3.69-4.93c-1.29 1.72-2.58 3.44-3.69 4.93m0 0c-1.29 1.42-2.58 2.84-4.13 4.55m4.13-4.55-4.13 4.55m0 0-4.55 4.13m4.55-4.13-4.55 4.13m0 0c-1.2.9-2.41 1.8-4.93 3.69m4.93-3.69-4.93 3.69m0 0c-1.56.95-3.13 1.9-5.27 3.21m5.27-3.21c-1.99 1.21-3.98 2.42-5.27 3.21m0 0c-1.8.86-3.6 1.73-5.6 2.69m5.6-2.69c-1.34.64-2.67 1.28-5.6 2.69m0 0c-2.24.82-4.48 1.65-5.88 2.16m5.88-2.16c-1.38.51-2.77 1.02-5.88 2.16m0 0c-1.46.38-2.93.76-6.13 1.58m6.13-1.58c-1.54.4-3.09.79-6.13 1.58m0 0c-2.12.32-4.24.65-6.34.97m6.34-.97c-2.47.38-4.94.75-6.34.97m0 0c-2.23.11-4.46.22-6.54.33m6.54-.33c-1.97.1-3.93.2-6.54.33m0 0h-256m256 0h-256m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-2.33-.12-4.66-.24-6.54-.33m6.54.33c-1.33-.07-2.65-.13-6.54-.33m0 0c-1.88-.29-3.77-.58-6.34-.97m6.34.97c-2.07-.32-4.14-.63-6.34-.97m0 0c-1.52-.39-3.04-.79-6.13-1.58m6.13 1.58c-2.02-.52-4.04-1.04-6.13-1.58m0 0c-1.6-.59-3.19-1.17-5.88-2.16m5.88 2.16c-1.9-.7-3.8-1.39-5.88-2.16m0 0c-1.41-.68-2.82-1.36-5.6-2.69m5.6 2.69c-1.6-.77-3.2-1.54-5.6-2.69m0 0c-1.4-.86-2.81-1.71-5.27-3.21m5.27 3.21c-2.08-1.27-4.17-2.54-5.27-3.21m0 0c-1.72-1.29-3.43-2.57-4.93-3.69m4.93 3.69c-1.79-1.34-3.57-2.67-4.93-3.69m0 0c-1.18-1.07-2.36-2.15-4.55-4.13m4.55 4.13c-1.64-1.49-3.27-2.97-4.55-4.13m0 0c-1.07-1.19-2.15-2.37-4.13-4.55m4.13 4.55c-1.46-1.61-2.93-3.23-4.13-4.55m0 0-3.69-4.93m3.69 4.93c-.88-1.17-1.76-2.35-3.69-4.93m0 0c-.83-1.37-1.67-2.75-3.21-5.27m3.21 5.27c-1.15-1.89-2.3-3.79-3.21-5.27m0 0c-1.03-2.14-2.05-4.27-2.69-5.6m2.69 5.6c-.68-1.43-1.37-2.85-2.69-5.6m0 0c-.8-2.17-1.59-4.34-2.16-5.88m2.16 5.88c-.82-2.22-1.63-4.44-2.16-5.88m0 0c-.47-1.82-.94-3.64-1.58-6.13m1.58 6.13c-.37-1.44-.74-2.88-1.58-6.13m0 0-.97-6.34m.97 6.34c-.3-1.98-.61-3.97-.97-6.34m0 0c-.13-2.54-.26-5.07-.33-6.54m.33 6.54-.33-6.54m0 0V343m0 112V343m0 0h174.1m-174.1 0h174.1m0 0-39 39m39-39-39 39m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.65.72-1.3 1.44-1.65 1.83m1.65-1.83c-.34.38-.68.76-1.65 1.83m0 0c-.35.47-.7.95-1.43 1.94m1.43-1.94c-.38.5-.75 1.01-1.43 1.94m0 0c-.32.54-.64 1.08-1.22 2.05m1.22-2.05c-.38.64-.76 1.28-1.22 2.05m0 0c-.2.45-.41.89-.99 2.13m.99-2.13c-.38.82-.76 1.64-.99 2.13m0 0c-.18.53-.36 1.05-.77 2.2m.77-2.2c-.3.88-.61 1.75-.77 2.2m0 0c-.15.61-.3 1.22-.55 2.25m.55-2.25c-.16.68-.33 1.35-.55 2.25m0 0-.33 2.29m.33-2.29c-.13.9-.26 1.79-.33 2.29m0 0-.11 2.3m.11-2.3c-.03.59-.06 1.19-.11 2.3m0 0c.03.54.05 1.08.11 2.3m-.11-2.3c.03.72.07 1.44.11 2.3m0 0c.1.71.21 1.43.33 2.28m-.33-2.28c.1.71.21 1.42.33 2.28m0 0c.22.88.44 1.77.55 2.24m-.55-2.24c.16.66.33 1.32.55 2.24m0 0c.26.72.51 1.45.77 2.19m-.77-2.19c.25.69.49 1.39.77 2.19m0 0c.33.7.65 1.4.99 2.12m-.99-2.12c.37.79.74 1.57.99 2.12m0 0c.38.63.75 1.25 1.22 2.04m-1.22-2.04c.4.67.8 1.35 1.22 2.04m0 0c.38.52.77 1.05 1.43 1.93m-1.43-1.93c.38.52.77 1.05 1.43 1.93m0 0c.46.5.91 1 1.65 1.81m-1.65-1.81c.35.39.7.77 1.65 1.81m0 0c.37.33.75.67 1.83 1.64m-1.83-1.64c.43.39.87.78 1.83 1.64m0 0c.62.45 1.25.91 1.94 1.42m-1.94-1.42c.45.32.9.65 1.94 1.42m0 0c.53.3 1.05.61 2.05 1.2m-2.05-1.2c.43.25.86.5 2.05 1.2m0 0c.78.36 1.56.72 2.13.99m-2.13-.99c.54.25 1.08.5 2.13.99m0 0c.67.23 1.33.46 2.2.76m-2.2-.76c.51.17 1.03.35 2.2.76m0 0c.87.22 1.73.43 2.25.56m-2.25-.56c.79.2 1.57.39 2.25.56m0 0 2.29.33m-2.29-.33c.58.08 1.16.16 2.29.33m0 0c.91.04 1.82.09 2.3.11m-2.3-.11c.89.04 1.79.09 2.3.11m0 0c.48-.02.96-.04 2.3-.1m-2.3.1c.73-.03 1.47-.06 2.3-.1m0 0c.61-.09 1.22-.18 2.28-.33m-2.28.33c.58-.09 1.17-.17 2.28-.33m0 0c.79-.19 1.59-.38 2.24-.54m-2.24.54c.88-.21 1.75-.42 2.24-.54m0 0c.7-.25 1.4-.49 2.19-.77m-2.19.77c.5-.18 1.01-.35 2.19-.77m0 0c.56-.26 1.13-.52 2.12-.98m-2.12.98c.69-.31 1.37-.63 2.12-.98m0 0c.63-.37 1.25-.74 2.04-1.21m-2.04 1.21c.8-.48 1.6-.95 2.04-1.21m0 0c.67-.5 1.34-.99 1.93-1.43m-1.93 1.43c.52-.39 1.05-.78 1.93-1.43m0 0c.43-.39.87-.79 1.81-1.65m-1.81 1.65c.42-.38.83-.76 1.81-1.65m0 0 80-80m-80 80 80-80m0 0s0 0 0 0m0 0s0 0 0 0m0 0c.33-.37.67-.74 1.65-1.83m-1.65 1.83c.63-.7 1.27-1.4 1.65-1.83m0 0c.3-.4.59-.79 1.43-1.94m-1.43 1.94c.42-.57.84-1.13 1.43-1.94m0 0c.4-.68.8-1.35 1.22-2.05m-1.22 2.05c.47-.79.93-1.57 1.22-2.05m0 0c.28-.62.57-1.23.99-2.13m-.99 2.13c.3-.65.6-1.31.99-2.13m0 0c.26-.74.51-1.47.77-2.2m-.77 2.2.77-2.2m0 0 .55-2.25m-.55 2.25c.2-.84.41-1.68.55-2.25m0 0 .33-2.29m-.33 2.29c.11-.75.21-1.49.33-2.29m0 0c.03-.54.05-1.08.11-2.3m-.11 2.3c.04-.91.09-1.81.11-2.3m0 0c-.03-.7-.07-1.41-.11-2.3m.11 2.3c-.04-.75-.07-1.49-.11-2.3m0 0c-.08-.52-.15-1.04-.33-2.28m.33 2.28c-.09-.63-.18-1.26-.33-2.28m0 0-.55-2.24m.55 2.24c-.19-.79-.39-1.58-.55-2.24m0 0-.77-2.19m.77 2.19c-.25-.72-.51-1.44-.77-2.19m0 0c-.23-.5-.46-.99-.99-2.12m.99 2.12c-.39-.83-.78-1.66-.99-2.12m0 0c-.42-.7-.83-1.39-1.22-2.04m1.22 2.04c-.32-.53-.64-1.06-1.22-2.04m0 0c-.47-.64-.95-1.28-1.43-1.93m1.43 1.93c-.47-.63-.94-1.27-1.43-1.93m0 0c-.44-.49-.89-.98-1.65-1.81m1.65 1.81c-.64-.7-1.28-1.4-1.65-1.81m0 0-80-80m80 80-80-80m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.72-.65-1.44-1.3-1.83-1.65m1.83 1.65c-.68-.62-1.37-1.23-1.83-1.65m0 0c-.51-.38-1.02-.75-1.94-1.43m1.94 1.43c-.58-.43-1.17-.87-1.94-1.43m0 0c-.73-.43-1.45-.86-2.05-1.22m2.05 1.22c-.77-.45-1.53-.9-2.05-1.22m0 0c-.46-.21-.93-.43-2.13-.99m2.13.99-2.13-.99m0 0c-.83-.29-1.65-.57-2.2-.77m2.2.77c-.56-.19-1.12-.39-2.2-.77m0 0c-.65-.16-1.29-.31-2.25-.55m2.25.55c-.57-.14-1.13-.27-2.25-.55m0 0c-.74-.11-1.48-.21-2.29-.33m2.29.33c-.51-.07-1.02-.15-2.29-.33m0 0c-.77-.04-1.54-.07-2.3-.11m2.3.11c-.88-.04-1.76-.08-2.3-.11m0 0c-.49.02-.98.05-2.3.11m2.3-.11c-.88.04-1.77.09-2.3.11m0 0c-.62.09-1.23.18-2.28.33m2.28-.33c-.6.09-1.2.17-2.28.33m0 0c-.45.11-.91.22-2.24.55m2.24-.55c-.79.2-1.58.39-2.24.55m0 0c-.56.2-1.12.4-2.19.77m2.19-.77c-.51.18-1.01.36-2.19.77m0 0c-.85.4-1.7.8-2.12.99m2.12-.99c-.51.24-1.02.48-2.12.99m0 0c-.6.36-1.2.71-2.04 1.22m2.04-1.22c-.46.27-.91.55-2.04 1.22m0 0c-.49.36-.99.73-1.93 1.43m1.93-1.43-1.93 1.43m0 0c-.42.38-.85.77-1.81 1.65m1.81-1.65c-.69.63-1.39 1.27-1.81 1.65m0 0-1.64 1.83m1.64-1.83c-.54.6-1.08 1.21-1.64 1.83m0 0c-.53.73-1.07 1.47-1.42 1.94m1.42-1.94c-.36.5-.73 1-1.42 1.94m0 0c-.35.61-.7 1.21-1.2 2.05m1.2-2.05c-.33.58-.67 1.15-1.2 2.05m0 0c-.26.57-.53 1.15-.99 2.13m.99-2.13c-.39.85-.78 1.69-.99 2.13m0 0c-.24.7-.48 1.4-.76 2.2m.76-2.2c-.17.51-.35 1.01-.76 2.2m0 0c-.17.68-.33 1.35-.56 2.25m.56-2.25c-.2.79-.39 1.57-.56 2.25m0 0c-.09.65-.18 1.29-.33 2.29m.33-2.29c-.06.48-.13.95-.33 2.29m0 0c-.03.71-.07 1.43-.11 2.3m.11-2.3-.11 2.3m0 0c.04.86.08 1.73.1 2.3m-.1-2.3c.03.8.07 1.6.1 2.3m0 0c.13.88.25 1.76.33 2.28m-.33-2.28c.11.73.21 1.47.33 2.28m0 0c.18.74.36 1.49.54 2.24m-.54-2.24c.15.64.31 1.28.54 2.24m0 0c.2.57.4 1.15.77 2.19m-.77-2.19c.21.58.41 1.17.77 2.19m0 0c.23.5.46 1.01.98 2.12m-.98-2.12c.35.76.71 1.53.98 2.12m0 0c.38.64.76 1.29 1.21 2.04m-1.21-2.04 1.21 2.04m0 0c.45.6.89 1.21 1.43 1.93m-1.43-1.93c.3.4.6.81 1.43 1.93m0 0 1.65 1.81m-1.65-1.81c.47.52.94 1.03 1.65 1.81m0 0 39 39m-39-39 39 39m0 0h-174.1m174.1 0h-174.1m0 0V71m0 223.9V71m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeLinecap:"round",strokeWidth:"18",d:"M135 343.068H31m104 0H31m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.74-.04-1.48-.07-2.46-.12m2.46.12c-.77-.04-1.54-.08-2.46-.12m0 0c-.87-.14-1.75-.27-2.39-.37m2.39.37c-.55-.09-1.1-.17-2.39-.37m0 0c-.87-.22-1.74-.44-2.3-.59m2.3.59c-.62-.15-1.24-.31-2.3-.59m0 0c-.82-.29-1.64-.59-2.21-.8m2.21.8c-.52-.18-1.03-.37-2.21-.8m0 0c-.55-.26-1.09-.52-2.1-1.01m2.1 1.01c-.64-.31-1.28-.61-2.1-1.01m0 0c-.74-.45-1.48-.89-1.98-1.2m1.98 1.2c-.42-.25-.84-.51-1.98-1.2m0 0c-.7-.52-1.41-1.05-1.84-1.38m1.84 1.38c-.37-.28-.75-.56-1.84-1.38m0 0c-.4-.36-.8-.71-1.71-1.54m1.71 1.54c-.35-.31-.7-.63-1.71-1.54m0 0c-.43-.47-.85-.95-1.54-1.71m1.54 1.71c-.61-.68-1.23-1.36-1.54-1.71m0 0c-.29-.38-.58-.76-1.38-1.84m1.38 1.84c-.54-.71-1.08-1.43-1.38-1.84m0 0c-.46-.76-.92-1.52-1.2-1.98m1.2 1.98c-.45-.74-.89-1.47-1.2-1.98m0 0c-.37-.77-.74-1.53-1.01-2.1m1.01 2.1c-.3-.62-.6-1.25-1.01-2.1m0 0c-.2-.54-.39-1.07-.8-2.21m.8 2.21c-.2-.54-.4-1.09-.8-2.21m0 0c-.22-.85-.44-1.71-.59-2.3m.59 2.3c-.12-.46-.24-.92-.59-2.3m0 0c-.11-.72-.22-1.43-.37-2.39m.37 2.39c-.08-.48-.15-.96-.37-2.39m0 0c-.03-.74-.07-1.48-.12-2.46m.12 2.46c-.04-.79-.08-1.59-.12-2.46m0 0c.04-.74.07-1.49.12-2.46m-.12 2.46.12-2.46m0 0c.08-.53.16-1.07.37-2.39m-.37 2.39c.09-.56.17-1.12.37-2.39m0 0c.17-.69.35-1.38.59-2.3m-.59 2.3c.15-.61.31-1.23.59-2.3m0 0c.17-.48.34-.96.8-2.21m-.8 2.21c.2-.55.4-1.1.8-2.21m0 0c.25-.52.49-1.03 1.01-2.1m-1.01 2.1c.36-.76.73-1.52 1.01-2.1m0 0c.43-.72.87-1.44 1.2-1.98m-1.2 1.98c.27-.45.55-.91 1.2-1.98m0 0c.54-.73 1.09-1.47 1.38-1.84m-1.38 1.84c.4-.54.81-1.09 1.38-1.84m0 0c.53-.59 1.07-1.18 1.54-1.71m-1.54 1.71c.59-.66 1.19-1.32 1.54-1.71m0 0c.54-.49 1.08-.97 1.71-1.54m-1.71 1.54c.48-.43.95-.86 1.71-1.54m0 0c.46-.35.92-.7 1.84-1.38m-1.84 1.38c.5-.38 1.01-.76 1.84-1.38m0 0c.52-.32 1.04-.63 1.98-1.2m-1.98 1.2c.72-.44 1.44-.88 1.98-1.2m0 0 2.1-1.01m-2.1 1.01c.84-.4 1.67-.81 2.1-1.01m0 0c.45-.17.91-.33 2.21-.8m-2.21.8c.56-.21 1.12-.41 2.21-.8m0 0c.89-.23 1.79-.46 2.3-.59m-2.3.59c.48-.13.95-.25 2.3-.59m0 0c.51-.08 1.02-.16 2.39-.37m-2.39.37 2.39-.37m0 0c.52-.02 1.03-.05 2.46-.12m-2.46.12c.74-.03 1.48-.07 2.46-.12m0 0 103.34-.27m-103.34.27c30.04-.08 60.08-.16 103.34-.27"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"var(--input-bg-color)",strokeWidth:"0",d:"M517.462 135h-128V7l128 128"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"18",d:"M517.462 135h-128m128 0h-128m0 0V7m0 128V7m0 0 128 128m-128-128 128 128m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"}))),obsidian:React__namespace.createElement("svg",{focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("defs",null,React__namespace.createElement("radialGradient",{id:"b",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-48 -185 123 -32 179 429.7)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".4"}),React__namespace.createElement("stop",{offset:"1",stopOpacity:".1"})),React__namespace.createElement("radialGradient",{id:"c",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(41 -310 229 30 341.6 351.3)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".6"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".1"})),React__namespace.createElement("radialGradient",{id:"d",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(57 -261 178 39 190.5 296.3)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".8"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".4"})),React__namespace.createElement("radialGradient",{id:"e",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-79 -133 153 -90 321.4 464.2)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".3"}),React__namespace.createElement("stop",{offset:"1",stopOpacity:".3"})),React__namespace.createElement("radialGradient",{id:"f",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-29 136 -92 -20 300.7 149.9)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:"0"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".2"})),React__namespace.createElement("radialGradient",{id:"g",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(72 73 -155 153 137.8 225.2)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".2"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".4"})),React__namespace.createElement("radialGradient",{id:"h",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(20 118 -251 43 215.1 273.7)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".1"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".3"})),React__namespace.createElement("radialGradient",{id:"i",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-162 -85 268 -510 374.4 371.7)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".2"}),React__namespace.createElement("stop",{offset:".5",stopColor:"#fff",stopOpacity:".2"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".3"})),React__namespace.createElement("filter",{id:"a",x:"80.1",y:"37",width:"351.1",height:"443.2",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},React__namespace.createElement("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),React__namespace.createElement("feBlend",{in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),React__namespace.createElement("feGaussianBlur",{stdDeviation:"6.5",result:"effect1_foregroundBlur_744_9191"}))),React__namespace.createElement("g",{filter:"url(#a)"},React__namespace.createElement("path",{d:"M359.2 437.5c-2.6 19-21.3 33.9-40 28.7-26.5-7.2-57.2-18.6-84.8-20.7l-42.4-3.2a28 28 0 0 1-18-8.3l-73-74.8a27.7 27.7 0 0 1-5.4-30.7s45-98.6 46.8-103.7c1.6-5.1 7.8-49.9 11.4-73.9a28 28 0 0 1 9-16.5L249 57.2a28 28 0 0 1 40.6 3.4l72.6 91.6a29.5 29.5 0 0 1 6.2 18.3c0 17.3 1.5 53 11.2 76a301.3 301.3 0 0 0 35.6 58.2 14 14 0 0 1 1 15.6c-6.3 10.7-18.9 31.3-36.6 57.6a142.2 142.2 0 0 0-20.5 59.6Z",fill:"#000",fillOpacity:".3"})),React__namespace.createElement("path",{id:"arrow",d:"M359.9 434.3c-2.6 19.1-21.3 34-40 28.9-26.4-7.3-57-18.7-84.7-20.8l-42.3-3.2a27.9 27.9 0 0 1-18-8.4l-73-75a27.9 27.9 0 0 1-5.4-31s45.1-99 46.8-104.2c1.7-5.1 7.8-50 11.4-74.2a28 28 0 0 1 9-16.6l86.2-77.5a28 28 0 0 1 40.6 3.5l72.5 92a29.7 29.7 0 0 1 6.2 18.3c0 17.4 1.5 53.2 11.1 76.3a303 303 0 0 0 35.6 58.5 14 14 0 0 1 1.1 15.7c-6.4 10.8-18.9 31.4-36.7 57.9a143.3 143.3 0 0 0-20.4 59.8Z",fill:"#6c31e3"}),React__namespace.createElement("path",{d:"M182.7 436.4c33.9-68.7 33-118 18.5-153-13.2-32.4-37.9-52.8-57.3-65.5-.4 1.9-1 3.7-1.8 5.4L96.5 324.8a27.9 27.9 0 0 0 5.5 31l72.9 75c2.3 2.3 5 4.2 7.8 5.6Z",fill:"url(#b)"}),React__namespace.createElement("path",{d:"M274.9 297c9.1.9 18 2.9 26.8 6.1 27.8 10.4 53.1 33.8 74 78.9 1.5-2.6 3-5.1 4.6-7.5a1222 1222 0 0 0 36.7-57.9 14 14 0 0 0-1-15.7 303 303 0 0 1-35.7-58.5c-9.6-23-11-58.9-11.1-76.3 0-6.6-2.1-13.1-6.2-18.3l-72.5-92-1.2-1.5c5.3 17.5 5 31.5 1.7 44.2-3 11.8-8.6 22.5-14.5 33.8-2 3.8-4 7.7-5.9 11.7a140 140 0 0 0-15.8 58c-1 24.2 3.9 54.5 20 95Z",fill:"url(#c)"}),React__namespace.createElement("path",{d:"M274.8 297c-16.1-40.5-21-70.8-20-95 1-24 8-42 15.8-58l6-11.7c5.8-11.3 11.3-22 14.4-33.8a78.5 78.5 0 0 0-1.7-44.2 28 28 0 0 0-39.4-2l-86.2 77.5a28 28 0 0 0-9 16.6L144.2 216c0 .7-.2 1.3-.3 2 19.4 12.6 44 33 57.3 65.3 2.6 6.4 4.8 13.1 6.4 20.4a200 200 0 0 1 67.2-6.8Z",fill:"url(#d)"}),React__namespace.createElement("path",{d:"M320 463.2c18.6 5.1 37.3-9.8 39.9-29a153 153 0 0 1 15.9-52.2c-21-45.1-46.3-68.5-74-78.9-29.5-11-61.6-7.3-94.2.6 7.3 33.1 3 76.4-24.8 132.7 3.1 1.6 6.6 2.5 10.1 2.8l43.9 3.3c23.8 1.7 59.3 14 83.2 20.7Z",fill:"url(#e)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M255 200.5c-1.1 24 1.9 51.4 18 91.8l-5-.5c-14.5-42.1-17.7-63.7-16.6-88 1-24.3 8.9-43 16.7-59 2-4 6.6-11.5 8.6-15.3 5.8-11.3 9.7-17.2 13-27.5 4.8-14.4 3.8-21.2 3.2-28 3.7 24.5-10.4 45.8-21 67.5a145 145 0 0 0-17 59Z",fill:"url(#f)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M206 285.1c2 4.4 3.7 8 4.9 13.5l-4.3 1c-1.7-6.4-3-11-5.5-16.5-14.6-34.3-38-52-57-65 23 12.4 46.7 31.9 61.9 67Z",fill:"url(#g)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M211.1 303c8 37.5-1 85.2-27.5 131.6 22.2-46 33-90.1 24-131l3.5-.7Z",fill:"url(#h)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M302.7 299.5c43.5 16.3 60.3 52 72.8 81.9-15.5-31.2-37-65.7-74.4-78.5-28.4-9.8-52.4-8.6-93.5.7l-.9-4c43.6-10 66.4-11.2 96 0Z",fill:"url(#i)"})),"add-file":React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),React__namespace.createElement("polyline",{points:"14 2 14 8 20 8"}),React__namespace.createElement("line",{x1:"12",x2:"12",y1:"18",y2:"12"}),React__namespace.createElement("line",{x1:"9",x2:"15",y1:"15",y2:"15"})),ExcalidrawSword:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 537.9 1150.7"},React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"#FFF6F0",d:"m281 988 113-124-77-569H213l-37 574 106 120-4 2"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M279 989c37-42 82-84 116-122M279 990c33-33 59-66 113-123m0-1c-22-191-51-385-78-570m78 570c-31-196-58-391-78-570m-4-1c-30-1-56 1-97-1m102 3c-41 1-81 0-106-3m1 3c-11 185-20 369-30 574m30-574c-7 165-16 330-32 575m2-3c38 47 73 81 97 121m-98-116c39 41 76 86 100 114m0 1s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"#af7e00",strokeLinecap:"round",strokeWidth:"4",d:"M279 614v264m-3-259c2 43 8 211 8 254"}),React__namespace.createElement("g",{fill:"none",fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{stroke:"#646261",strokeWidth:".5",d:"M209 300c2-1 6-5 9-3m-8 3 7-5m-4 7c-1-1 2-6 5-8m-6 9 5-9m-9 16c3-3 6-11 12-18m-11 14c5-2 10-7 12-10m-13 17c5-7 9-15 15-21m-13 18c4-7 8-10 13-15m-15 17c7-2 14-11 18-20m-19 20c7-3 7-8 21-15m-18 17c6-8 11-15 13-15m-12 17c6-7 11-16 14-23m-19 24 28-22m-25 25 25-25m-24 25c7-7 13-14 23-28m-21 30 18-27m-20 29c4-9 17-13 25-30m-28 30c10-4 17-12 31-30m-28 34c11-9 20-20 26-34m-26 34c10-11 15-20 30-32m-32 40c5-12 16-20 31-40m-31 36c9-10 20-20 34-38m-34 38c11-12 23-22 35-37m-33 39c10-12 24-25 33-40m-34 44c10-12 19-25 42-43m-43 46 41-44m-36 42c9-13 31-32 32-44m-35 46c12-11 22-23 38-45m-43 48c13-14 27-20 47-52m-44 52c16-14 33-35 47-50m-43 51c8-12 25-25 38-50m-40 54 43-56m-43 56c9-9 25-28 46-58m-51 61c13-15 30-30 56-57m-51 58c17-20 35-40 46-57m-47 61c14-16 25-32 48-61m-48 63c15-18 27-27 57-63m-62 64c18-20 33-37 59-63m-51 61c13-19 34-37 48-65m-53 70c16-19 31-34 58-68m-61 69c30-25 48-55 63-67m-63 66c20-17 38-40 66-65m-58 67c23-23 42-48 53-67m-55 71c18-27 42-50 59-74m-60 78c12-21 33-35 64-75m-66 74c20-26 46-53 67-77m-63 80c24-27 43-54 66-77m-70 75c30-31 55-63 68-76m-74 80c15-17 32-32 78-85m-75 86c23-25 48-49 74-83m-66 88c18-21 36-50 66-90m-69 88c21-29 43-55 70-87m-77 93c36-34 59-66 80-93m-79 89c27-25 49-54 81-88m-73 89c23-32 48-61 71-89m-76 94 79-96m-77 96c27-32 58-65 84-90m-89 92c34-38 69-78 86-94m-81 98 84-96m-86 97c32-42 66-82 83-100m-82 100c29-39 62-74 87-98m-92 98c27-24 50-52 93-100m-86 105c34-44 72-83 86-106m-87 105c34-36 63-73 88-104m-91 105c26-24 50-47 94-104m-94 106c27-31 57-67 95-107m-96 109c38-39 71-78 99-112m-97 113 96-110M200 414c35-34 57-67 102-115m-98 110c38-42 77-83 102-112m-96 116c17-27 44-59 96-117m-99 116c23-25 45-55 99-117M205 415c35-45 77-87 110-122M203 418c43-43 81-91 108-122M208 420c44-45 84-97 100-128M205 419l108-123M201 421c40-44 83-86 114-127M203 425c33-41 70-82 111-127M205 425c24-29 50-53 107-131M206 428c38-41 72-83 108-132M205 430l109-132M204 429c30-38 65-73 112-125M204 435c31-35 63-72 111-130M205 433c40-46 76-96 112-132M205 441c20-34 43-60 112-135M200 439c33-34 59-66 116-133M202 436c29-30 56-63 114-129M206 440c27-36 57-70 111-133M201 442c26-31 58-61 120-127M202 445c20-30 46-54 117-131M201 450c41-51 79-93 113-138M204 444c34-40 71-82 113-133M203 450c33-42 68-79 115-135M200 451l120-132M204 449c33-26 65-68 113-132M205 451l115-133M200 458l117-138M201 458l119-135M202 459c35-38 69-74 119-139M205 460c31-42 65-82 113-135M199 467c29-29 52-60 119-135M201 462c32-40 70-80 118-135M203 462c47-52 93-98 116-135M205 466c39-47 76-90 113-139M196 472c35-33 62-58 123-137M199 470c31-36 63-68 120-136M205 469c26-33 56-67 114-132M204 473c42-44 80-91 115-137M197 477c45-52 96-107 121-137M199 477c31-42 67-79 122-137M199 481c44-51 78-97 120-145M200 479c39-46 78-94 123-140M196 485c37-47 76-83 124-144M201 483c31-32 59-68 120-138M204 486c41-56 89-104 115-145M204 485l118-142M196 487c35-29 63-70 124-136M201 491c35-48 73-91 123-143M201 494c36-40 66-71 121-147M204 493c26-38 55-69 120-143M196 498c37-47 79-94 125-147M200 495c38-39 76-82 123-139M200 496c48-48 89-100 127-139M200 499c28-32 55-62 125-146M199 500c26-32 62-68 125-137M198 502c42-47 81-95 125-143M204 506c32-42 60-73 122-145M203 504c37-42 75-90 121-142M202 512c37-51 83-95 121-150M197 507c49-52 92-102 127-140M203 515c45-54 89-106 119-153M203 512c37-45 78-93 121-148M196 518c47-61 104-120 127-145M197 514c32-36 67-72 131-145M198 515c38-40 71-78 127-145M198 518c46-52 89-105 127-149M193 521c47-53 96-111 133-149M199 522c42-47 86-94 127-147M203 523c33-45 71-89 124-149M201 524c44-52 88-104 124-149M199 532c38-55 81-97 127-154M199 527c49-60 104-115 127-148M201 533c28-43 61-84 126-150M199 529c50-53 95-113 128-147M199 533c31-34 63-69 132-148M197 533c43-46 86-97 132-145M195 541l135-157M200 536c42-53 86-105 127-148M198 543c33-41 65-79 128-152M196 540c38-46 75-89 131-150M199 542c40-48 85-93 128-148M198 544c28-36 57-69 130-153M194 549c56-57 105-117 137-150M197 546c37-46 79-89 132-148M197 550c39-44 81-94 131-155M201 552c38-51 80-99 130-155M197 554c30-39 62-72 134-153M195 553c37-40 73-79 136-152M199 555c50-61 102-120 131-150M199 558c43-53 84-102 131-155M196 563c34-40 68-82 132-153M193 561c52-54 99-110 139-154M198 564c29-31 56-66 136-157M198 565c39-45 77-86 131-156M192 566c36-40 73-82 143-153M195 568c28-35 57-71 135-154M195 569c53-55 107-115 138-154M198 569l133-157M196 576c32-34 58-75 133-159M193 572c26-33 57-64 141-154M195 579c54-57 103-117 134-158M198 575c36-40 70-82 133-157M190 579c64-65 117-122 141-155M195 582c39-47 82-94 138-158M196 581c28-38 64-72 138-154M198 583l134-159M191 588c52-61 101-114 145-158M194 588c51-64 102-124 141-160M195 586c41-45 85-97 138-154M197 590c41-47 82-95 135-162M195 594c30-42 63-76 139-162M193 594c32-34 59-68 140-161M195 596c42-50 76-93 141-163M197 594c32-37 65-72 136-160M192 603l142-162M192 598c30-31 59-64 144-157M197 604c43-59 95-112 138-164M195 603c54-64 106-127 139-164M194 605l144-163M192 608c39-42 79-87 146-164M199 612c31-46 66-86 139-170M197 608c38-47 79-93 141-163M190 611c62-65 121-129 149-163M193 614c55-69 111-132 144-164M197 615c33-31 64-68 136-162M196 615c49-57 101-120 141-165M195 620c52-65 115-133 142-162M190 621c35-37 66-73 147-167M195 625c35-47 75-89 141-169M194 621c47-50 89-100 143-166M189 623c58-58 112-122 149-163M192 624l147-165M196 631c36-45 73-91 143-173M195 629c33-46 70-89 142-168M193 633c57-61 112-124 146-170M190 631c55-60 109-121 148-167M192 633c34-34 67-76 149-166M193 633c44-46 82-94 147-167M194 638c30-35 61-66 144-168M191 638c55-63 113-125 148-169M193 643c50-63 108-130 148-172M194 643c38-48 76-95 145-173M193 646c55-67 111-135 151-170M189 646c35-43 71-82 152-170M196 649c46-56 91-113 141-171M193 648c36-41 71-86 147-172M193 651c47-56 96-116 146-171M191 654c60-70 123-141 150-174M196 656c40-56 85-105 143-172M194 653c34-42 71-88 146-171M186 659c44-45 78-87 153-171M188 659c54-62 108-119 153-173M195 661c32-40 64-83 147-173M193 661c37-39 70-81 147-176M192 663c59-67 124-133 151-173M190 666c41-50 83-99 152-174M193 666c61-63 115-131 149-173M193 666c59-70 120-136 150-173M189 672c34-38 62-73 157-177M189 673l155-176M190 676c45-55 91-112 157-177M192 674l150-176M188 675c38-33 71-73 156-172M188 678c55-63 108-120 155-176M191 679c51-56 107-118 151-174M191 680c50-56 102-118 152-179M186 682c45-48 92-97 158-173M189 684c34-35 64-74 155-176M187 690c51-51 87-102 161-185M191 687c48-60 95-114 154-180M185 688c32-34 68-69 157-178M188 692l158-181M190 692c43-47 83-101 152-178M191 696l154-184M188 700c47-56 93-114 161-185M188 698c63-70 128-142 158-181M189 700c40-49 79-94 154-179M190 700c45-47 85-98 157-183M188 703c35-35 67-72 157-181M186 703c44-53 91-106 161-180M192 708c61-69 116-137 155-186M188 708c51-54 96-108 158-184M186 709l161-179M185 710c52-54 101-111 163-182M189 712c54-64 111-131 161-185M191 713l158-183M187 720c43-50 83-97 160-183M187 718l161-184M191 719c49-54 99-112 156-184M189 719c56-63 114-131 159-186M183 723c52-52 97-102 169-186M184 725c49-54 96-104 165-187M186 729c62-67 115-138 160-191M189 728c46-57 95-113 160-189M185 728c57-64 116-127 163-183M185 732c33-43 69-80 165-188M187 730c33-38 75-85 159-188M190 732c48-53 96-112 158-188M184 736c57-52 102-110 169-187M186 737c34-43 72-87 163-187M191 742l157-194M189 740c34-44 67-82 162-189M187 746c51-73 111-134 163-188M185 744c62-77 129-150 166-189M187 744c42-47 87-98 162-188M189 747c58-66 115-134 160-191M186 748c61-74 127-141 163-185M186 748c44-47 92-98 166-190M188 750c38-47 79-98 166-193M188 754c48-58 97-118 164-194M185 756c44-55 90-105 168-189M184 755l167-189M187 759c59-63 114-134 166-193M187 758l164-194M186 762c59-64 119-133 169-193M185 761c54-65 111-127 170-191M186 762c40-41 77-85 168-195M187 766c63-71 127-143 165-197M181 767c57-65 116-128 176-192M183 770l171-192M185 773c70-78 131-153 169-195M186 773c41-53 82-101 169-196M182 778l176-200M181 775l174-193M185 777c66-76 126-148 168-198M185 778c41-50 86-101 171-195M180 785c66-74 131-151 177-198M184 783c46-55 96-110 172-195M184 784c59-61 114-126 174-196M185 784c62-68 122-136 171-197M185 789c43-49 90-97 174-200M182 788l174-197M187 792c39-50 80-100 168-198M184 793l172-202M180 797c41-49 86-98 174-203M183 794c38-45 77-91 173-198M184 801c48-61 103-123 171-205M184 798c44-45 85-94 173-202M179 805c45-53 87-102 179-200M182 802c48-56 94-111 176-198M186 805c55-71 115-146 170-200M184 803l174-202M183 807c55-64 111-130 178-200M180 809c64-76 132-150 179-200M185 810c35-47 74-91 171-200M183 811l174-202M180 812c43-41 87-91 177-201M180 816c41-52 83-100 178-205M187 820c35-49 74-96 175-206M184 818c63-77 133-157 176-205M182 818c43-57 95-109 178-201M180 821c41-48 84-94 180-203M182 822c44-46 83-91 175-205M182 824c54-56 105-115 179-206M181 831c44-54 90-101 181-206M178 828c41-48 83-96 183-204M180 828c74-77 141-155 182-205M184 830c60-68 118-135 178-206M180 835c56-66 117-132 183-207M180 834c66-73 127-143 180-204M183 839c41-51 86-99 181-208M183 838c50-61 103-121 178-208M178 843c63-70 120-139 184-207M179 841l184-209M184 845c71-85 135-166 177-214M182 842c73-79 141-162 179-207M181 849c46-58 95-112 179-211M180 849l182-208M181 849c69-77 140-159 179-208M183 848c63-73 131-150 179-210M181 857c46-64 96-123 182-213M177 854c73-84 146-165 185-211M181 859c59-75 121-141 182-213M182 856c74-85 144-170 183-212M176 858c70-78 139-156 188-208M179 862c70-80 137-157 184-213M182 861c35-38 72-84 181-214M180 864c63-77 127-153 184-215M176 865c62-70 125-142 190-208M179 867l186-211M179 871c67-76 129-151 187-215M180 871c67-77 134-156 184-216M178 871c47-55 95-110 190-214M180 872c57-67 115-135 187-211M184 875c40-44 78-91 179-212M183 874l183-213M183 877c62-72 126-144 182-214M181 875l184-209M187 874c69-76 133-157 179-212M186 876c55-69 112-134 181-211M186 874c60-70 126-136 182-205M185 877c41-45 76-88 183-207M190 883l174-212M189 881c52-62 108-128 176-212M185 878c54-62 113-129 183-201M188 880c55-67 112-131 178-205M192 883c56-70 124-145 176-205M191 882c51-58 97-115 176-208M187 886c50-56 93-108 183-203M189 882l181-201M190 885c66-65 126-134 181-201M192 885c58-68 113-135 176-202M190 884c52-51 101-104 179-200M192 886c47-49 90-101 177-200M193 891c71-79 138-160 176-206M196 890l173-203M198 889c36-44 76-92 170-199M195 889c47-50 90-100 174-196M197 893c55-66 106-121 170-202M199 893c59-66 118-135 171-202M201 895c47-56 90-106 167-201M197 891c46-49 90-98 174-194M203 895c34-38 72-85 170-197M201 895l171-197M203 896c50-55 98-112 167-194M201 895c40-47 85-94 170-192M205 899c57-72 118-149 165-194M203 899c63-69 121-141 167-195M204 899c49-58 104-118 169-193M203 898c45-53 93-104 170-192M203 900c61-63 121-138 169-190M207 900c37-38 72-80 165-193M207 901c45-45 84-94 163-186M206 901c41-50 88-101 168-189M209 904c45-56 88-105 162-190M210 906c37-41 72-81 163-194M210 904c33-39 72-81 162-186M209 905c32-44 72-85 165-188M215 909c51-65 107-131 160-193M213 906c35-38 69-79 160-189M213 906c57-71 123-141 162-184M210 908c36-38 73-79 163-183M216 908c53-64 112-124 158-182M215 910c52-62 106-122 159-186M214 910c41-47 79-94 163-185M213 911l163-182M218 914c45-59 97-119 155-183M218 912l157-184M219 911c39-47 81-94 154-179M217 913l158-180M220 915c50-52 92-109 156-181M219 917c48-60 94-115 158-183M222 920c32-35 64-77 156-179M219 918l159-180M219 920c32-34 66-71 158-179M220 920c61-69 123-143 156-181M222 918l156-174M223 920l155-175M228 922c42-49 80-104 146-174M223 922c64-72 124-144 153-177M224 926c53-60 100-123 156-178M223 925l155-176M227 929c48-61 97-116 152-181M227 926c34-39 66-79 152-176M226 927c48-49 89-95 151-172M226 926c52-55 104-109 152-169M228 927l151-174M231 930c30-41 58-74 149-175M231 930c35-42 71-83 148-171M230 929c50-51 92-102 150-169M230 933c55-65 113-138 151-174M231 934c33-37 63-75 148-176M235 933c37-38 74-81 142-164M232 932l147-166M234 936c26-34 58-76 149-171M235 935c49-59 102-121 146-168M234 932c57-65 111-125 147-163M235 934c44-51 90-103 146-164M240 936c51-58 98-115 142-168M237 937c32-34 64-71 144-166M241 936c42-48 85-100 139-159M238 940c48-52 92-102 143-163M240 943c32-39 62-72 142-165M241 942c38-48 76-92 141-167M244 941c54-57 102-118 137-163M242 941c49-60 100-118 139-159M246 943l139-159M242 943c33-40 68-84 139-162M239 944c45-46 81-88 147-160M244 946l138-161M247 948c52-55 100-111 133-162M244 947c55-57 106-120 140-161M243 944c37-32 65-72 142-154M246 946l138-155M247 952c35-44 68-86 133-157M249 952c49-58 90-109 136-159M250 952l131-151M246 950l137-154M249 954c53-55 99-110 132-158M250 952c39-44 77-87 133-154M250 956c30-31 53-60 132-155M250 955c45-57 94-111 134-150M252 960c34-46 66-87 135-154M253 958l131-154M254 953c34-35 75-72 135-142M254 957c27-35 58-67 132-148M260 960c39-57 82-105 124-150M255 958c32-35 61-68 130-149M257 963l129-147M256 962c41-45 86-97 128-150M262 964c27-42 61-78 127-152M260 964l124-151M258 963c47-49 92-99 130-145M259 964l127-147M259 962c30-29 59-66 126-140M260 965c28-34 55-67 128-147M258 966c53-57 99-107 133-139M260 965c29-30 59-66 127-143M262 968c47-52 100-112 126-146M265 967c34-35 64-73 123-141M265 967c24-33 58-66 120-138M263 970c42-45 83-92 124-141M270 974c43-58 90-108 118-142M269 971c37-40 71-84 119-143M268 975c23-31 54-64 122-139M267 971l124-136M269 978c47-55 97-108 122-141M271 975c40-50 83-98 120-142M272 976c46-50 90-107 119-137M267 977c32-33 59-69 122-136M270 977c34-43 69-80 122-135M273 977c30-34 58-71 117-136M275 981c34-41 61-79 115-139M271 978c46-49 91-103 119-131M275 984c47-47 86-101 119-142M275 981l115-136M277 982c24-29 57-62 112-128M273 980c43-45 83-91 119-131M277 983c39-39 76-81 114-130M276 984c36-42 74-85 113-134M275 988c48-55 94-108 120-131M277 985c27-36 59-67 114-130M282 990c29-31 51-64 112-135M281 985l112-128M276 985c46-51 93-91 113-122M278 989c44-50 89-99 116-127M282 989c46-48 79-90 111-132M284 991c36-47 75-96 108-131"}),React__namespace.createElement("path",{stroke:"#000",d:"M283 989c39-52 86-95 106-127M282 989c38-44 73-85 112-126m-2 1c-27-190-56-380-78-570m79 570c-33-223-64-446-78-568m-1 2c-40 1-79 1-101-6m100 5H210m2-4c-15 208-26 416-31 578m31-576c-14 162-22 325-32 575m0 1c25 33 57 69 96 113m-96-114c29 41 62 76 98 117m2 1s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:"#dbc9f3",d:"m325 490-71-1-133 118-5 3-4 4-3 5-3 5-19 127 20 15 19 15 16 16 14 17 12 18 9 18 8 20 6 20 15-4 15-3 13-2 13-2 12-1 11-1 15 1 5 1-4-11-5-20-5-20-3-19-2-20-1-19v-19l2-19 2-18 3-19 4-18 6-18 6-19 6-18 8-18 4-9 9-18 4-8 2-8 3-10 1-10v-12l-5-39"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M325 490s0 0 0 0m0 0s0 0 0 0m0 0-71-1m71 1-71-1m0 0L121 607m133-118L121 607m0 0s0 0 0 0m0 0s0 0 0 0m0 0-5 3m5-3-5 3m0 0-4 4m4-4-4 4m0 0-3 5m3-5-3 5m0 0-3 5m3-5-3 5m0 0L87 751m19-127L87 751m0 0s0 0 0 0m0 0s0 0 0 0m0 0 20 15m-20-15 20 15m0 0 19 15m-19-15 19 15m0 0 16 16m-16-16 16 16m0 0 14 17m-14-17 14 17m0 0 12 18m-12-18 12 18m0 0 9 18m-9-18 9 18m0 0 8 20m-8-20 8 20m0 0 6 20m-6-20 6 20m0 0 15-4m-15 4 15-4m0 0 15-3m-15 3 15-3m0 0 13-2m-13 2 13-2m0 0 13-2m-13 2 13-2m0 0 12-1m-12 1 12-1m0 0 11-1m-11 1 11-1m0 0 15 1m-15-1 15 1m0 0 5 1m-5-1 5 1m0 0-4-11m4 11-4-11m0 0-5-20m5 20-5-20m0 0-5-20m5 20-5-20m0 0-3-19m3 19-3-19m0 0-2-20m2 20-2-20m0 0-1-19m1 19-1-19m0 0v-19m0 19v-19m0 0 2-19m-2 19 2-19m0 0 2-18m-2 18 2-18m0 0 3-19m-3 19 3-19m0 0 4-18m-4 18 4-18m0 0 6-18m-6 18 6-18m0 0 6-19m-6 19 6-19m0 0 6-18m-6 18 6-18m0 0 8-18m-8 18 8-18m0 0 4-9m-4 9 4-9m0 0 9-18m-9 18 9-18m0 0 4-8m-4 8 4-8m0 0 2-8m-2 8 2-8m0 0 3-10m-3 10 3-10m0 0 1-10m-1 10 1-10m0 0v-12m0 12v-12m0 0-5-39m5 39-5-39m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:"#a887e8",d:"m439 634 10 20 4 24 2 26 3 25 5 25 8 25 9 24 12 24 13 24 8 11 9 12 7 10 2 6 2 6v5l-2 5-2 5-5 8-61 99-8-17-8-16-9-14-9-14-9-12-10-11-10-10-11-10-11-8-11-7-12-6-12-5-13-4-13-3-14-2-6-1h-7l-7-20-5-20-4-20-3-19-1-19-1-19 1-28 2-19 3-18 4-18 5-19 6-18 7-18 8-18 9-19 7-14 7-20 2-21-5-41 114 144"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M439 634s0 0 0 0m0 0s0 0 0 0m0 0 10 20m-10-20 10 20m0 0 4 24m-4-24 4 24m0 0 2 26m-2-26 2 26m0 0 3 25m-3-25 3 25m0 0 5 25m-5-25 5 25m0 0 8 25m-8-25 8 25m0 0 9 24m-9-24 9 24m0 0 12 24m-12-24 12 24m0 0 13 24m-13-24 13 24m0 0 8 11m-8-11 8 11m0 0 9 12m-9-12 9 12m0 0 7 10m-7-10 7 10m0 0 2 6m-2-6 2 6m0 0 2 6m-2-6 2 6m0 0v5m0-5v5m0 0-2 5m2-5-2 5m0 0-2 5m2-5-2 5m0 0-5 8m5-8-5 8m0 0-61 99m61-99-61 99m0 0s0 0 0 0m0 0s0 0 0 0m0 0-8-17m8 17-8-17m0 0-8-16m8 16-8-16m0 0-9-14m9 14-9-14m0 0-9-14m9 14-9-14m0 0-9-12m9 12-9-12m0 0-10-11m10 11-10-11m0 0-10-10m10 10-10-10m0 0-11-10m11 10-11-10m0 0-11-8m11 8-11-8m0 0-11-7m11 7-11-7m0 0-12-6m12 6-12-6m0 0-12-5m12 5-12-5m0 0-13-4m13 4-13-4m0 0-13-3m13 3-13-3m0 0-14-2m14 2-14-2m0 0-6-1m6 1-6-1m0 0h-7m7 0h-7m0 0-7-20m7 20-7-20m0 0-5-20m5 20-5-20m0 0-4-20m4 20-4-20m0 0-3-19m3 19-3-19m0 0-1-19m1 19-1-19m0 0-1-19m1 19-1-19m0 0 1-28m-1 28 1-28m0 0 2-19m-2 19 2-19m0 0 3-18m-3 18 3-18m0 0 4-18m-4 18 4-18m0 0 5-19m-5 19 5-19m0 0 6-18m-6 18 6-18m0 0 7-18m-7 18 7-18m0 0 8-18m-8 18 8-18m0 0 9-19m-9 19 9-19m0 0 7-14m-7 14 7-14m0 0 7-20m-7 20 7-20m0 0 2-21m-2 21 2-21m0 0-5-41m5 41-5-41m0 0 114 144M325 490l114 144m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:"#6342a0",d:"m190 890 6 29 2 29-1 27-2 14-6 27-8 26-11 25-13 25-7 12 28 1 27 1 27 3 27 4 27 5 25 6 26 7 25 9 12 4 12 2 11-1 10-3 9-5 8-9 6-8 8-18 25-85-10-22-11-20-11-18-13-16-13-14-15-13-15-11-17-9-17-7-19-5-19-3-21-2h-21l-23 3-24 4-24 6"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M190 890s0 0 0 0m0 0s0 0 0 0m0 0 6 29m-6-29 6 29m0 0 2 29m-2-29 2 29m0 0-1 27m1-27-1 27m0 0-2 14m2-14-2 14m0 0-6 27m6-27-6 27m0 0-8 26m8-26-8 26m0 0-11 25m11-25-11 25m0 0-13 25m13-25-13 25m0 0-7 12m7-12-7 12m0 0 28 1m-28-1 28 1m0 0 27 1m-27-1 27 1m0 0 27 3m-27-3 27 3m0 0 27 4m-27-4 27 4m0 0 27 5m-27-5 27 5m0 0 25 6m-25-6 25 6m0 0 26 7m-26-7 26 7m0 0 25 9m-25-9 25 9m0 0 12 4m-12-4 12 4m0 0 12 2m-12-2 12 2m0 0 11-1m-11 1 11-1m0 0 10-3m-10 3 10-3m0 0 9-5m-9 5 9-5m0 0 8-9m-8 9 8-9m0 0 6-8m-6 8 6-8m0 0 8-18m-8 18 8-18m0 0 25-85m-25 85 25-85m0 0s0 0 0 0m0 0s0 0 0 0m0 0-10-22m10 22-10-22m0 0-11-20m11 20-11-20m0 0-11-18m11 18-11-18m0 0-13-16m13 16-13-16m0 0-13-14m13 14-13-14m0 0-15-13m15 13-15-13m0 0-15-11m15 11-15-11m0 0-17-9m17 9-17-9m0 0-17-7m17 7-17-7m0 0-19-5m19 5-19-5m0 0-19-3m19 3-19-3m0 0-21-2m21 2-21-2m0 0h-21m21 0h-21m0 0-23 3m23-3-23 3m0 0-24 4m24-4-24 4m0 0-24 6m24-6-24 6m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:"#390f8c",d:"m87 751 25 19 22 20 20 22 16 24 12 26 9 28 6 27 2 26v27l-4 26-6 26-10 27-13 27-17 26L21 976l-8-12-7-11-1-9v-11l3-9 10-22 69-151"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M87 751s0 0 0 0m0 0s0 0 0 0m0 0 25 19m-25-19 25 19m0 0 22 20m-22-20 22 20m0 0 20 22m-20-22 20 22m0 0 16 24m-16-24 16 24m0 0 12 26m-12-26 12 26m0 0 9 28m-9-28 9 28m0 0 6 27m-6-27 6 27m0 0 2 26m-2-26 2 26m0 0v27m0-27v27m0 0-4 26m4-26-4 26m0 0-6 26m6-26-6 26m0 0-10 27m10-27-10 27m0 0-13 27m13-27-13 27m0 0-17 26m17-26-17 26m0 0L21 976m128 126L21 976m0 0s0 0 0 0m0 0s0 0 0 0m0 0-8-12m8 12-8-12m0 0-7-11m7 11-7-11m0 0-1-9m1 9-1-9m0 0v-11m0 11v-11m0 0 3-9m-3 9 3-9m0 0 10-22M8 924l10-22m0 0 69-151M18 902l69-151m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"#CECDCC",strokeLinecap:"round",strokeWidth:"10",d:"M91 753s0 0 0 0m0 0s0 0 0 0m0 0 21 16m-21-16 21 16m0 0 18 17m-18-17 18 17m0 0 16 16m-16-16 16 16m0 0 13 17m-13-17 13 17m0 0 11 17m-11-17 11 17m0 0 8 17m-8-17 8 17m0 0 7 18m-7-18 7 18m0 0 6 18m-6-18 6 18m0 0 15-4m-15 4 15-4m0 0 14-2m-14 2 14-2m0 0 14-2m-14 2 14-2m0 0 13-2m-13 2 13-2m0 0 12-1m-12 1 12-1m0 0 11-1m-11 1 11-1m0 0h10m-10 0h10m0 0h8m-8 0h8m0 0-6-21m6 21-6-21m0 0-6-20m6 20-6-20m0 0-4-20m4 20-4-20m0 0-3-20m3 20-3-20m0 0-1-19m1 19-1-19m0 0-1-19m1 19-1-19m0 0 1-19m-1 19 1-19m0 0 2-18m-2 18 2-18m0 0 2-19m-2 19 2-19m0 0 4-18m-4 18 4-18m0 0 5-18m-5 18 5-18m0 0 6-18m-6 18 6-18m0 0 7-18m-7 18 7-18m0 0 7-18m-7 18 7-18m0 0 9-18m-9 18 9-18m0 0 9-19m-9 19 9-19m0 0 8-22m-8 22 8-22m0 0 2-10m-2 10 2-10"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"#FFF6F0",d:"m154 297-20-26 25-24 207-6 19 26-27 25-205 1-1-3"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"m156 295-20-23m20 24c-7-11-16-19-22-27m6 1c1-11 10-13 21-21m-25 18c6-6 10-11 25-23m0 4c64-2 125-5 200-5m-198 3c64-1 133-4 201-2m-4 0c7 5 16 16 24 23m-20-25c5 6 7 12 20 23m-1 2c-2 8-12 14-18 25m18-24c-7 6-13 13-20 24m-4 1c-82-4-161-3-203 3m207-5c-56 1-110 0-206 4m-1-1s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"#FFF6F0",d:"m275 618 12-35 6-12 11-14 23-18 21-16-29-185-5-43-3-5-5-1-45 4-1 14 17 311"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M277 617c2-5 4-24 9-34 4-10 10-19 17-26 7-8 18-13 23-17l10-8c3-3 9-4 11-9 1-5 3 10-2-20l-26-163c-5-31-2-20-3-27l-3-11c-1-4 0-10-2-12s-6 0-11 0l-15 2h-14c-4 0-8-2-10 0s0 7 0 14v30l10 205c3 38 3 13 3 26l1 50m1-1c2-5 7-22 12-31 5-10 11-20 17-27 7-7 17-13 22-17l7-9c4-3 12-5 14-10s3 10-2-20l-28-162c-5-31-2-19-3-25l-1-13c-1-4-1-9-3-11s-5-1-9-1l-17 1h-15c-5 0-10-2-12 0-1 2 3 5 3 13l2 32 10 202c2 39 0 16 0 29l2 49"})),React__namespace.createElement("g",{fill:"none",fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{stroke:"#bcb9b8",strokeWidth:".5",d:"m259 300 6-5m-6 5 7-4m-4 7 3-8m-3 8 4-8m-7 10c4-3 6-3 12-9m-12 10 13-11m-11 13c5-4 5-8 10-14m-8 14 8-14m-11 17c6-4 12-9 15-15m-16 16 17-17m-13 20c1-3 7-8 12-19m-13 17c6-5 8-10 15-17m-15 21c5-9 14-16 21-21m-23 22 22-24m-18 24 19-25m-19 26 18-24m-21 27c8-7 18-19 25-27m-27 28 29-28m-24 29c4-5 13-13 24-28m-25 30 25-32m-28 36c10-10 17-19 33-34m-34 34c8-9 15-17 35-35m-30 37 29-38m-30 38 29-37m-32 38c12-10 24-24 37-39m-36 40 38-40m-37 43c13-13 22-27 36-43m-35 43 36-42m-38 45c11-11 24-24 42-46m-42 46 44-46m-41 50c16-18 29-37 40-52m-40 51c14-19 28-35 41-49m-43 51 46-51m-46 51 45-50m-41 53 42-54m-44 55 45-54m-49 58c15-14 24-29 55-57m-54 56c13-14 26-27 51-57m-46 61c17-23 35-45 49-60m-49 58c11-16 24-32 46-59m-51 64 55-60m-54 60 52-59m-51 61c14-19 32-36 50-61m-48 60 49-60m-52 65c10-14 24-25 55-59m-55 59 54-60m-50 59c13-13 25-28 51-59m-52 62 50-62m-54 66c14-16 27-29 53-60m-53 59c18-21 35-40 54-58m-49 61 50-60m-51 59 50-61m-52 65c12-16 23-27 52-61m-53 60c15-15 29-32 54-60m-49 63 51-63m-52 64 51-63m-55 65 55-60m-54 59c15-15 29-31 53-59m-51 61 52-61m-52 62 53-61m-53 65c14-18 30-36 53-62m-55 62 56-60m-51 61 49-63m-50 64c11-15 23-29 51-62m-53 65c15-18 34-38 55-60m-56 61c15-20 34-39 55-60m-52 61c11-10 20-26 52-63m-53 64c12-15 24-31 52-62m-53 67c11-17 26-35 54-64m-55 63 54-61m-50 63c21-26 41-50 52-61m-54 61 52-63m-55 67c20-26 44-50 57-61m-56 61c21-25 44-50 56-62m-52 64 51-63m-52 64 52-65m-56 65c20-17 39-40 55-60m-54 62 56-63m-53 64 53-64m-54 65 54-64m-53 67c10-14 22-29 55-63m-58 64 57-63m-55 66c20-25 42-52 56-66m-54 65c20-24 39-50 54-64m-57 69c19-23 41-44 56-63m-56 61c18-18 33-37 56-61m-51 62 50-62m-51 63 53-64m-56 68c15-16 31-32 56-64m-57 65c19-23 39-43 58-65m-55 68 56-65m-57 64 55-67m-57 69c20-19 37-43 58-65m-59 66c21-20 38-41 60-64m-57 66c22-26 45-52 59-65m-57 65 54-66m-58 70c23-25 43-44 59-67m-58 66c15-15 27-32 57-64m-56 68c16-16 30-36 57-68m-56 67 56-66m-58 69c19-18 35-40 58-63m-59 63c16-16 28-32 60-65m-55 66 55-66m-56 68 57-68m-62 71c18-17 39-39 62-66m-60 66c16-18 32-37 61-67m-60 71 58-69m-56 68c18-19 33-41 57-69m-59 70c21-19 39-40 62-64m-63 65c25-27 48-53 62-66m-60 70c12-14 25-29 57-71m-56 70 58-70m-60 72c19-22 41-40 59-64m-59 66c19-24 40-45 60-67m-58 68 60-69m-59 71 58-71m-59 72c23-23 46-52 62-67m-65 69 63-68m-60 68c18-18 36-39 60-68m-58 71 57-71m-60 72c14-15 32-34 62-69m-63 71c22-26 45-52 63-70m-60 70c19-20 34-38 61-71m-61 72 61-71m-64 73c23-19 41-40 62-68m-62 70 62-70m-60 72 61-72m-59 72 59-71m-60 74c22-26 45-50 60-71m-63 72 64-70m-61 71c14-14 24-29 63-71m-61 72 59-73m-63 75c23-26 46-52 65-70m-65 71 64-71m-62 75c17-17 33-37 62-75m-60 73 61-73m-64 79 62-71m-63 69 64-71m-60 74c19-23 38-43 60-75m-61 74c19-21 37-43 61-73m-62 79c23-26 46-56 65-76m-67 74 66-72m-64 75c25-26 47-55 65-75m-64 75c17-18 31-36 64-76m-64 78c19-22 38-42 62-72m-64 73c15-17 30-35 66-73m-65 74 64-73m-62 75c14-16 26-34 63-75m-68 76c24-22 44-45 67-69m-65 71 67-73m-64 75 64-76m-64 77 62-77m-66 78c15-13 29-31 68-72m-66 72 67-72m-64 77c13-18 28-31 64-79m-64 78 64-76m-66 77c19-20 37-42 66-71m-67 73 67-74m-62 76c19-26 43-52 62-75m-65 74 66-75m-67 81 66-76m-68 75c27-28 55-58 68-75m-62 78c15-21 30-41 64-78m-67 78 65-78m-67 82c20-21 37-40 69-78m-68 76 67-75m-63 78 65-80m-66 81c12-16 26-32 65-78m-68 81c14-19 32-36 69-79m-70 77c26-26 50-55 69-75m-64 81c14-21 29-38 66-79m-68 77c18-20 33-38 66-80m-66 83c18-22 39-44 66-78m-68 78 69-77m-66 81c21-23 39-48 65-81m-66 81c27-31 50-60 67-81m-70 83c29-29 57-63 72-79m-70 79 70-77m-66 79c13-18 25-35 66-79m-68 78 67-79m-68 82c15-13 28-29 68-76m-68 77 69-78m-66 82 65-81m-67 79c18-18 33-39 69-79m-69 83c18-22 40-48 69-76m-72 77c19-19 36-39 71-79m-68 81c25-31 53-59 69-80m-69 81 69-83m-71 84c15-17 32-34 70-78m-69 79 70-79m-68 84 68-86m-69 84c17-19 30-37 70-82m-70 83 70-79m-72 81c16-17 32-34 72-81m-69 82 69-81m-68 82 69-81m-72 85 71-79m-70 78c21-23 43-46 71-81m-70 83c16-16 33-34 71-84m-71 85 71-82m-74 84 21-18m-19 19 20-21m-19 25c6-7 13-17 20-23m-19 22 18-24m11-13c10-13 23-28 42-45m-43 45c12-16 26-29 43-47m-42 48c11-8 18-20 41-48m-40 49 41-49m-72 87c4-6 9-9 10-13m-11 12 14-11m-10 13 8-15m-9 16 10-14m27-38c13-10 26-27 33-33m-30 34 29-32m-25 34 26-35m-29 35 30-34m-75 87c5-3 7-5 9-8m-8 9c2-4 5-6 10-9m-8 11 7-12m-6 11c1-4 4-7 7-10m42-52 24-21m-24 21 22-23m-20 24c5-3 9-13 18-24m-17 25 19-25m-75 90 8-6m-8 5 8-5m-4 7 4-7m-4 8 3-7m-6 9h3m-3 1 4-1m-1 3v-4m0 4 1-3"}),React__namespace.createElement("path",{stroke:"transparent",d:"M276 614c2-6 5-24 10-33 4-10 11-19 17-26 7-7 17-13 22-17l8-6c4-3 12-5 13-11 2-5 2 9-3-21s-22-128-26-159c-5-30-2-17-3-23l-2-15c0-4 1-8-1-9-3-1-7 1-11 1l-17-2c-4 0-9 3-13 4-3 0-8-4-9-2-2 2-1 6 0 13l2 32 10 198 1 28 1 46m0 1c2-5 5-21 10-31 4-10 11-22 18-29 6-7 17-11 22-14 6-4 7-3 10-6s8-7 10-12c1-5 2 10-2-20l-24-160-4-24-2-15c-1-4 0-6-2-7h-28l-14 2c-3 0-6-2-8 0v12l2 29c1 38 7 163 10 201 2 37 2 11 3 24l-1 50"})),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeLinecap:"round",strokeWidth:"4",d:"M276 613c1-5 6-23 11-33 5-9 11-17 18-24l19-15 10-9c4-3 11-7 12-12 2-5 4 11-1-19l-27-160c-5-31-1-17-2-24l-2-13c-1-4 0-9-2-10-3-2-7 0-11 0h-16l-14 1c-4 0-10-3-11-1-2 2 3 6 3 13 1 8-2-7-1 32l11 198 2 27 1 48m1 0c2-5 5-21 10-31 5-9 14-17 20-24l18-18 8-6c3-3 10-5 11-11 2-5 3 9-2-22l-25-160c-5-31-2-18-3-24l1-12c-1-4-1-8-3-10h-9l-17-1-15 2c-5 0-10 0-11 2-2 2 0 4 1 11s1-7 3 31l7 198c2 37 2 14 3 27l3 50"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"#FFF6F0",d:"m275 626-20-52-11-9-23-19-13-7-11-3-1-9 15-233v-1h41l6 1v12l4 61 12 260"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"m276 625-12-22c-4-9-5-20-10-28s-12-14-20-20c-7-7-19-15-25-18s-9 1-11-2c-2-4 0-5 0-17l4-55 8-154c1-28-3-13 1-16s13 0 21 0c8 1 23-2 27 1 4 4-2-6-1 18l6 128 12 186m-1 1-9-26c-3-9-8-18-13-26l-19-20c-6-6-17-14-23-18-6-3-9 1-11-3-2-3-1-6-1-18l3-53 9-155c2-28-3-10 0-12 4-3 13-2 21-2s22-2 26 1-1-8 0 17l5 128 14 186"})),React__namespace.createElement("g",{fill:"none",fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{stroke:"#000",strokeWidth:".3",d:"M211 291s0 0 0 0m0 0s0 0 0 0m0 3h1m-1 0 1-1m-1 5 3-4m-3 4 2-3m-3 6c3-1 5-5 5-6m-5 7 5-7m-3 11 6-10m-6 9c0-4 4-6 6-9m-8 12c7-3 4-8 8-13m-7 13 12-15m-14 20c5-13 11-15 18-17m-19 13c8-6 15-12 15-17m-16 25c10-8 13-16 21-26m-19 24c3-4 9-11 18-19m-16 19c8-9 15-16 20-24m-23 26c8-6 9-9 23-23m-23 23c8-5 11-9 28-26m-25 31c5-8 10-15 22-27m-23 25c5-2 17-12 29-26m-28 28 24-30m-28 33c7-4 14-17 32-28m-31 32c8-12 20-23 30-36m-25 38c6-14 12-22 25-41m-29 41c10-14 19-25 32-36m-35 42 36-47m-34 44c16-15 31-33 34-42m-37 44c9-11 19-21 42-40m-39 40c15-14 26-29 40-41m-38 47c9-14 22-32 42-49m-45 48c10-11 21-24 40-50m-41 52c19-14 35-33 42-49m-41 49c17-15 29-30 46-51m-47 51c18-11 30-32 53-48m-50 52c10-14 20-23 47-55m-47 56c14-10 20-24 52-54m-53 55c17-15 28-33 50-56m-49 59c13-16 23-28 53-58m-52 57c10-14 25-27 49-59m-54 64c21-18 33-32 56-65m-53 64c16-19 34-38 54-59m-54 64c14-19 32-44 52-64m-53 63c14-16 31-31 54-60m-57 62c17-15 22-27 53-55m-50 55c15-16 28-32 53-57m-55 59c23-18 32-35 53-56m-51 58c12-11 22-26 54-58m-55 60c21-22 41-42 53-59m-53 61c15-14 29-30 55-60m-54 65c8-15 23-30 52-62m-50 59c6-14 20-23 51-62m-52 63c15-11 28-27 50-54m-53 56c21-25 46-46 56-59m-53 64c20-19 38-38 54-62m-54 62c14-16 30-34 51-63m-53 64c22-19 31-39 53-59m-52 60 52-59m-49 65c17-26 37-50 51-63m-56 62c16-17 29-30 57-63m-57 64c16-12 28-31 56-59m-54 62c10-15 21-30 55-65m-60 65c18-17 41-43 62-60m-56 63c18-24 38-48 53-64m-59 64c16-19 36-36 55-64m-49 67c12-17 28-34 54-63m-59 64c21-19 37-38 57-65m-53 65c11-16 25-29 54-62m-54 66c10-11 21-22 51-62m-52 61 56-62m-57 67c13-18 28-35 56-64m-56 63 56-63m-53 69c23-29 39-54 56-64m-60 60c22-24 48-48 59-64m-58 72c25-24 40-57 59-67m-59 64c25-27 46-52 58-67m-61 69c22-22 47-48 55-63m-52 65c22-24 41-50 58-65m-60 68 62-68m-59 66c18-19 35-42 56-65m-58 71 61-64m-61 63 59-65m-57 67 53-64m-55 64c23-21 40-48 59-65m-58 69c22-22 42-43 57-66m-56 68c10-15 20-30 58-66m-61 66c15-14 34-36 56-63m-54 65c14-21 32-40 56-67m-56 66c17-11 31-29 55-65m-56 69c18-21 38-42 57-66m-60 65c19-17 34-33 59-61m-57 63c21-21 39-43 60-66m-59 69c20-20 41-47 59-64m-59 66 58-69m-55 69c11-18 29-35 56-68m-58 72c19-24 39-49 57-68m-56 74c10-22 31-44 54-73m-58 69c24-25 44-49 61-69m-57 76c15-20 30-38 58-70m-63 68 61-70m-57 72c25-25 45-54 58-70m-58 69 60-69m-65 77c12-21 33-33 66-71m-63 68c18-24 38-46 60-72m-58 77c18-20 34-39 60-76m-60 72 58-71m-63 73c21-21 47-45 60-71m-59 74c18-18 36-37 64-71m-61 77c22-27 43-52 59-74m-59 71 59-70m-63 76c16-21 36-42 66-75m-63 71c13-13 25-29 63-71m-66 74c16-15 36-32 67-68m-66 71c23-23 44-46 64-74m-67 77c21-17 39-38 62-74m-60 72 64-72m-65 79c23-31 45-58 64-77m-60 73c16-21 38-41 63-72m-67 80c32-28 54-58 68-75m-64 69c15-20 32-41 61-71m-62 81c15-24 38-45 60-81m-62 79c18-22 35-42 66-74m-63 78c14-23 30-41 60-78m-62 76c15-19 28-35 64-73m-63 72c22-27 44-44 63-70m-65 72 65-75m-66 78c16-15 31-35 68-77m-66 76c23-26 46-54 66-72m-65 77c14-25 37-45 63-74m-64 73c15-17 29-32 64-74m-67 80c22-26 48-59 68-76m-67 75c23-25 46-50 67-76m-62 77c7-10 25-28 59-71m-62 73 65-76m-65 78c16-19 38-41 61-78m-61 79 66-76m-70 79c32-30 56-65 72-80m-67 82c22-29 43-55 66-78m-66 78c22-28 47-62 62-75m-64 76c17-18 32-36 66-77m-65 84c18-29 39-48 63-77m-65 72 68-75m-70 84c21-25 41-54 70-80m-69 76c17-16 33-35 69-76m-68 78c26-27 46-52 69-74m-70 73c24-24 46-49 69-75m-68 84c25-31 50-58 65-78m-66 76 69-81m-69 84c25-24 41-49 73-83m-73 82 70-80m-70 80c21-27 42-49 72-79m-71 83c19-24 41-48 70-80m-69 76c11-9 25-29 71-71m-71 73c23-22 47-49 66-74m-62 75c19-17 33-40 67-74m-67 74c22-23 45-50 63-72m-61 71 62-71m-64 76c14-20 31-39 66-77m-67 74c27-27 46-46 64-71m-61 71c15-17 28-33 62-67m-59 73c22-25 44-55 61-72m-61 71c16-18 30-39 60-71m-62 73c28-28 47-55 65-69m-63 66c23-26 47-50 61-65m-59 69c14-21 30-30 61-64m-59 60c21-23 38-46 54-62m-52 61c10-15 30-32 58-59m-60 61c20-22 39-39 56-61m-52 64c18-22 29-39 50-62m-53 63 56-64m-55 64c19-24 34-42 52-57m-49 55 50-57m-45 59c15-24 37-44 46-55m-49 54c18-19 32-38 51-55m-53 53c17-8 27-18 50-50m-48 54c9-12 22-22 50-55m-49 58c21-25 34-41 51-58m-47 57c7-15 19-25 46-54m-50 57c15-13 24-29 47-57m-43 54c12-11 21-23 46-52m-48 55c22-22 36-39 45-55m-42 55c16-20 29-34 46-53m-44 50c12-13 19-22 46-48m-45 53c10-18 21-28 40-53m-36 49c4-8 14-25 37-43m-42 45 44-46m-39 47c8-16 17-24 39-49m-42 52 39-48m-36 51c13-19 25-29 37-51m-37 48c10-10 16-22 39-47m-40 47c13-6 21-17 40-39m-40 41 40-46m-37 43c15-6 20-20 33-42m-31 47c8-13 15-19 33-43m-33 42c14-12 22-28 32-37m-31 36 35-40m-31 39c7-8 17-17 26-33m-32 35c8-7 17-15 34-36m-31 35c9-8 18-20 35-36m-34 42c8-13 19-23 32-37m-30 35c8-4 13-18 27-34m-27 34c10-13 18-22 30-34m-29 33c11-5 15-16 27-31m-28 33c12-10 24-24 32-32m-27 34c3-9 11-15 24-34m-27 36c13-13 25-27 28-32m-22 28 20-25m-23 30 24-32m-23 34 26-27m-26 25 24-28m-21 31c6-6 11-13 23-30m-25 28c5-8 13-14 22-28m-19 33c3-10 15-20 19-29m-21 28 21-29m-23 31c11-9 15-9 25-30m-21 28c4-6 8-13 23-26m-23 27 23-22m-21 22c5-10 16-16 19-22m-20 27c3-12 13-12 16-28m-14 24c4-3 9-9 17-21m-17 27c2-10 8-11 17-22m-15 19 16-22m-20 20c7 0 12-4 19-13m-14 19c2-8 10-16 14-21m-15 19c0 1 6-8 18-17m-17 18 15-19m-14 20c6-2 3-6 19-18m-20 20c4-6 11-12 17-19m-15 17c4-2 11-8 13-16m-14 20c4-6 6-10 14-17m-9 15 9-10m-12 14c4-7 10-10 15-15m-14 20c4-9 7-10 12-15m-11 11 12-16m-12 20c-1-2 7-10 9-14m-11 11c6-1 8-7 16-14m-11 22c-1-11 6-11 9-16m-11 11 12-14m-10 14 6-11m-9 13c6-5 10-9 10-13m-9 18c0-7 5-5 9-12m-9 10c4-3 9-8 12-14m-11 14 9-13m-8 14c3-3 6-5 8-9m-6 11c2-1 6-6 6-8m-8 9c4-3 7-5 9-11m-6 10c-1-2 7-4 6-8m-7 11c-1-1 3-6 9-10m-9 14c1-4 3-6 6-11m-8 9 10-9m-8 9c3-2 2-3 10-6m-10 7c2 0 3-3 8-9m-8 13c2-2 8-5 7-10m-5 9 6-8m-6 9 7-6m-6 8 5-8m-5 9 5-4m-6 5 7-7m-5 8c1-2 4-2 4-6m-3 7c0-3 2-4 3-6m-3 8 5-5m-5 5 4-5m-4 6c2 0 3 0 4-3m-3 4 3-5m-3 7 4-4m-3 4 2-3m-1 4 2-2m-3 3 2-3m-1 5 1-1m-1 1 2-2"}),React__namespace.createElement("path",{stroke:"transparent",strokeWidth:".5",d:"m277 624-11-21c-4-9-7-22-11-30-5-8-10-13-17-19-8-6-22-15-29-18-6-3-10 1-12-1-2-3 1-5 2-17l4-55 8-153c2-29-2-15 1-17 4-2 13 2 21 2s23-3 27-1c4 3-4-8-3 16 2 24 7 76 10 128 3 53 6 155 7 186m0 5-10-31-11-23c-4-7-7-13-13-19-7-6-19-16-26-20-7-3-12 0-15-3-2-4 1-5 2-17v-53c1-35 4-127 7-156 2-28 2-14 6-16 5-1 13 7 20 7 8 0 19-7 23-4s-1-3 0 21c2 24 7 71 10 122l6 186"})),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeLinecap:"round",strokeWidth:"4",d:"m275 627-10-24c-4-9-6-20-11-27-5-8-12-13-19-19l-25-19c-6-4-10-1-12-4-2-4 0-5 0-17l4-55 9-154c2-28-2-12 2-14 3-2 10 0 18 0s23-3 27 1c5 3-2-7-1 18l6 129 12 184m2 0-13-25c-4-9-5-17-10-25a124 124 0 0 0-45-38c-6-3-8 1-10-2s0-5 0-17l3-54 8-155c2-28 0-11 4-13 3-3 10-2 17-2 7-1 22-4 26-1 4 4-2-3 0 21l9 127 9 183"}),React__namespace.createElement("path",{fill:"none",stroke:"#E6E6E5",strokeLinecap:"round",strokeWidth:"10",d:"M460 1010s0 0 0 0m0 0s0 0 0 0m0 0-10-21m10 21-10-21m0 0-11-19m11 19-11-19m0 0-11-17m11 17-11-17m0 0-13-15m13 15-13-15m0 0-13-14m13 14-13-14m0 0-14-11m14 11-14-11m0 0-16-10m16 10-16-10m0 0-16-9m16 9-16-9m0 0-17-6m17 6-17-6m0 0-18-5m18 5-18-5m0 0-19-3m19 3-19-3m0 0-20-2m20 2-20-2m0 0-21 1m21-1-21 1m0 0-22 2m22-2-22 2m0 0-24 4m24-4-24 4m0 0-24 5m24-5-24 5m0 0 6 29m-6-29 6 29m0 0 2 27m-2-27 2 27m0 0v26m0-26v26m0 0-4 26m4-26-4 26m0 0-7 24m7-24-7 24m0 0-9 24m9-24-9 24m0 0-11 24m11-24-11 24m0 0-13 25m13-25-13 25"}),React__namespace.createElement("path",{fill:"none",stroke:"#6d6d6d",strokeLinecap:"round",strokeWidth:"10",d:"M190 890s0 0 0 0m0 0s0 0 0 0m0 0 6 27m-6-27 6 27m0 0 2 26m-2-26 2 26m0 0v26m0-26v26m0 0-3 25m3-25-3 25m0 0-6 25m6-25-6 25m0 0-9 26m9-26-9 26m0 0-12 25m12-25-12 25m0 0-15 26m15-26-15 26"}),React__namespace.createElement("g",{fill:"none",fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{stroke:"#ea0",strokeWidth:".3",d:"M137 269s0 0 0 0m0 0s0 0 0 0m0 0c3-5 5-6 12-12m-11 15c2-4 7-9 11-13m-11 10c2 2 6-7 25-17m-25 19c7-5 16-15 20-21m-17 23c9-4 11-13 24-25m-23 25 20-23m-19 23c4-7 18-21 22-26m-25 31c5-9 13-17 27-32m-28 29c13-12 19-16 28-29m-24 30c6-7 11-14 25-26m-23 33c10-12 20-28 28-36m-29 34c8-9 13-20 28-34m-30 37c16-16 23-29 35-35m-34 32 32-31m-29 35c7-14 18-16 34-33m-32 29c11-11 19-24 27-32m-27 32c5-8 19-18 35-32m-37 34c13-12 24-21 34-34m-30 37c12-14 17-24 30-39m-32 40 35-40m-35 42c14-18 23-30 35-38m-33 36 34-38m-29 40c10-17 26-32 32-38m-35 37c13-13 23-27 37-38m-40 37c15-5 22-12 39-37m-37 41c7-9 18-17 39-43m-38 47c18-22 28-35 43-50m-39 49c5-14 15-21 38-46m-43 49c14-12 22-26 43-52m-39 49c11-10 19-20 41-47m-42 50c20-21 33-36 42-52m-40 52 44-50m-41 47c11-12 18-22 45-48m-45 53c10-17 21-27 40-53m-34 48c4-9 14-26 37-45m-43 47 46-47m-39 46c8-16 18-25 42-52m-46 55c13-14 25-28 43-51m-39 54c15-21 28-32 42-57m-41 54c10-12 18-26 43-52m-43 50c14-7 23-20 44-45m-44 47c15-19 32-37 45-52m-41 48c17-9 24-25 40-50m-38 55c10-15 18-23 40-51m-38 48c16-15 27-34 39-46m-39 45c14-14 26-29 43-49m-38 47c10-12 23-24 36-44m-41 46c10-10 21-20 43-47m-40 45c13-13 26-29 46-48m-45 54c11-17 25-30 42-50m-39 47c10-8 18-24 40-49m-40 49c14-18 27-31 43-48m-40 46c14-11 24-26 40-47m-42 48c18-16 34-36 46-47m-40 48c8-13 19-25 39-52m-42 54c20-20 37-40 43-49m-35 44c12-17 26-32 36-45m-40 49 41-51m-38 52 44-47m-44 45 42-49m-38 50c10-10 19-22 42-51m-44 49c11-13 23-25 42-49m-37 53c9-18 29-37 39-53m-41 52 42-53m-42 53c16-14 24-19 46-55m-42 53c9-12 18-25 43-51m-42 50 45-47m-43 47c13-19 32-34 40-47m-40 52c8-19 25-26 40-56m-38 51c9-9 20-21 40-48m-39 52c10-18 23-27 42-50m-39 47 40-50m-42 46c13-8 24-19 44-42m-40 48c11-16 27-34 40-50m-38 46c6-7 18-23 43-47m-42 47 40-48m-38 47c13-9 17-21 45-47m-46 50 43-49m-39 45c13-13 30-30 40-48m-41 51c12-13 21-26 41-47m-35 45 37-44m-40 47c13-17 29-32 43-47m-40 50c13-19 26-31 41-49m-40 45c9-10 20-22 41-49m-39 50c5-8 21-24 38-46m-40 44c14-11 26-27 45-48m-38 53c8-20 25-31 39-49m-41 44 41-47m-37 45c6-7 15-17 36-46m-39 49c17-19 33-36 41-49m-39 52c8-17 22-22 40-48m-40 46c15-16 30-33 44-51m-41 48c6-9 15-17 41-50m-40 52 41-47m-35 46c9-11 22-26 35-44m-39 46c14-15 26-27 41-48m-34 43c8-16 32-32 37-45m-39 48c5-8 16-22 42-47m-41 51c6-13 16-22 38-51m-41 48c17-18 34-34 45-48m-41 45c12-11 16-21 46-45m-45 47c9-8 17-20 42-49m-41 52c13-17 34-32 41-52m-39 49c13-11 23-27 41-47m-39 45c9-13 17-17 44-47m-42 51c12-18 26-30 41-50m-40 48c15-15 25-23 41-45m-43 47c12-13 26-27 45-51m-41 49c12-15 27-25 43-51m-40 53c12-20 29-37 40-51m-39 52c9-12 22-24 45-52m-45 51c15-19 28-35 43-51m-43 49c14-10 23-17 46-47m-44 50c14-16 24-32 44-52m-44 53c11-10 17-20 49-55m-45 52c13-18 31-35 41-48m-38 45c5-8 19-19 45-48m-48 49c19-16 32-34 45-48m-41 54 41-49m-41 47c16-19 32-40 45-50m-40 51c8-14 22-30 36-55m-37 53c17-18 31-37 41-49m-36 47c11-18 27-33 37-50m-38 50 41-48m-41 49c8-13 22-25 46-48m-46 48c12-11 23-23 42-50m-37 47c13-16 22-31 42-46m-46 48c12-8 19-20 46-49m-38 54c9-23 30-38 39-54m-43 50c15-20 35-37 45-49m-42 47 40-47m-38 48 40-48m-37 50c13-17 26-36 44-49m-47 47c10-10 17-20 42-49m-34 50c9-15 24-28 34-47m-36 45c10-13 23-25 41-45m-44 47c18-23 35-42 46-46m-43 45c19-18 34-34 44-49m-40 47 38-43m-38 44c14-14 26-28 41-49m-38 52c9-17 23-26 42-53m-44 51c13-16 29-29 44-46m-39 44c17-19 31-33 42-49m-42 52c16-16 29-36 40-47m-40 48c8-15 17-23 46-50m-46 47c15-15 28-31 44-45m-38 47c9-18 23-32 43-48m-45 47c11-13 27-28 43-49m-40 51c13-17 20-32 43-49m-43 49c17-17 28-35 43-48m-40 46c14-17 31-32 42-48m-44 47c14-14 28-34 42-47m-37 50c12-14 22-26 37-49m-37 47c13-17 25-33 40-47m-35 45c10-12 23-31 42-44m-45 47c13-17 22-27 44-50m-43 51c10-15 22-30 45-47m-45 44c17-16 32-37 43-46m-41 43c11-11 24-18 45-44m-43 48c15-19 33-36 39-46m-38 47c11-17 26-27 43-41m-40 38 36-41m-36 46c14-15 27-30 36-45m-34 40c7-11 19-23 37-41m-36 46c10-16 26-30 37-47m-37 46c10-10 20-20 37-41m-33 39c11-11 17-22 37-42m-37 40c8-7 17-15 35-38m-34 39c11-15 22-23 37-41m-36 41c10-10 19-19 34-38m-29 41c7-12 15-24 33-36m-33 35 30-38m-28 36c10-8 22-25 29-35m-29 37c8-11 19-22 27-36m-22 33c5-9 15-18 27-31m-31 33c10-11 23-26 29-35m-30 34c10-13 26-24 33-31m-29 31c10-7 15-18 26-30m-20 34c0-10 7-13 20-30m-22 27c6-7 12-13 23-30m-24 28c11-6 15-13 27-31m-24 33c8-7 12-15 25-28m-18 27c-1-6 13-18 17-26m-20 28c6-12 14-19 22-27m-21 24c9-7 17-16 19-20m-20 19 23-23m-228 28s0 0 0 0m0 0s0 0 0 0m3 0-7-7m7 7-8-8m11 5c-9-2-15-11-14-15m16 17c-6-4-11-9-19-13m22 17c-14-12-22-18-27-29m27 27-27-24m31 23c-14-6-19-18-30-26m29 26c-15-9-26-20-32-29m32 30c-3-5-15-17-31-33m30 30-30-28m31 27c-9-7-19-21-28-27m30 27-34-26m36 31c-9-13-22-25-30-34m32 33c-5-7-15-16-32-32m39 30c-11-10-23-12-37-31m34 32c-11-12-20-19-35-32m35 30c-8-14-27-28-31-29m35 28c-16-10-29-26-41-30m41 30c-9-11-21-19-35-31m36 31-40-32m44 31c-17-8-30-24-41-32m41 33c-13-7-25-21-42-33m43 37c-7-12-20-24-38-38m42 38c-16-15-32-27-45-40m49 42c-15-11-29-25-43-43m39 39c-10-11-24-22-45-38m52 41c-14-10-26-19-49-39m46 35c-18-12-32-29-44-37m45 35c-15-11-28-29-48-40m52 44-51-40m51 37c-9-10-18-14-51-37m52 40-48-44m52 42c-20-11-30-27-55-43m53 45-49-45m52 45c-19-15-35-33-49-48m48 46c-10-10-20-21-50-43m54 47c-15-22-34-37-52-46m54 41-55-45m54 46c-16-16-26-29-50-45m55 45c-22-18-44-36-58-45m61 50c-19-22-40-38-55-52m52 49-54-48m58 44c-14-15-35-28-56-44m58 45c-20-13-36-28-57-47m55 48c-12-13-20-15-55-50m59 49c-14-9-25-20-55-46m53 50c-12-16-26-28-49-55m53 52c-12-11-27-21-55-49m56 51c-17-21-41-33-57-50m60 51c-22-16-39-35-56-50m61 51c-17-16-36-33-61-52m58 49c-20-18-35-35-55-50m59 46c-14-9-36-27-53-42m52 47c-16-15-28-27-57-51m62 47c-22-15-49-36-56-43m53 47c-17-17-35-32-53-51m55 51c-6-9-22-23-54-48m57 46c-13-9-28-21-56-49m55 52c-14-19-37-37-57-49m60 45-58-48m57 51c-10-14-32-31-54-52m57 51c-12-14-29-26-56-48m64 45c-17-16-34-30-60-46m56 47-57-47m63 44c-20-12-35-20-60-41m56 46c-14-11-28-25-53-49m61 46c-19-12-33-24-64-46m62 47c-15-13-33-24-57-47m57 48c-19-20-44-36-52-50m52 51-53-48m55 45c-6-5-21-14-56-43m58 46c-15-17-34-32-56-49m58 50c-11-12-26-24-53-50m53 50-57-52m64 54c-20-24-40-38-61-49m58 43c-15-10-28-22-57-48m63 51c-24-24-49-41-61-50m58 51c-15-13-28-28-55-51m56 46c-13-12-31-30-58-47m61 51c-20-18-35-32-59-50m64 47c-17-10-37-25-55-47m52 49c-19-17-38-34-56-48m59 46c-15-16-31-28-53-50m54 52c-17-15-33-26-58-49m61 46c-18-14-44-31-59-48m60 51-57-48m59 47c-16-10-35-24-60-46m61 46c-17-11-31-26-57-46m58 46c-13-12-26-17-53-51m53 50c-17-11-35-29-57-47m62 46c-15-11-27-21-61-50m57 53c-15-16-30-29-54-49m61 47c-15-12-33-26-58-48m55 51c-18-19-42-41-54-49m55 48c-12-16-26-32-52-50m57 49c-18-13-35-30-56-48m55 47-50-50m52 51c-15-12-32-27-55-49m55 47c-16-13-35-29-56-50m60 52c-21-22-46-41-58-49m60 53c-14-14-20-26-57-53m58 50c-21-20-42-39-55-47m54 45c-5-5-25-20-52-50m56 51c-19-19-42-36-58-49m60 47c-18-13-39-26-52-49m53 52c-20-16-39-31-57-51m56 52c-11-15-27-29-57-54m60 50c-17-13-37-30-57-48m63 48c-23-11-46-28-56-42m52 43-54-46m58 46-57-48m58 47c-22-15-41-31-56-46m56 45c-19-10-31-32-54-44m55 45c-12-8-26-21-57-47m61 49c-18-14-36-37-53-50m53 52-57-52m58 50-55-47m56 45c-11-9-22-17-53-47m60 46c-25-12-42-35-56-48m54 49c-12-11-25-19-57-48m60 48c-17-11-34-25-59-47m60 50c-18-14-33-27-58-50m62 46c-22-11-36-28-56-43m51 46c-11-11-19-20-53-49m58 50c-18-21-38-39-55-52m55 52c-15-14-30-28-55-48m59 45c-15-12-27-24-58-47m55 47-55-48m62 50c-22-17-40-29-56-52m54 54c-13-17-29-28-55-51m62 47c-20-14-42-28-63-45m58 48c-20-21-43-40-56-52m63 54c-15-17-33-32-60-55m57 49c-21-15-38-30-57-47m62 49c-20-15-36-29-55-48m53 49c-16-16-32-32-55-50m61 47c-26-15-46-34-58-49m53 52c-12-14-24-24-52-49m53 47c-9-16-18-22-50-50m50 48-51-46m54 44c-13-10-26-23-48-40m50 42c-15-10-28-22-54-43m56 40c-19-16-37-33-51-43m50 45c-18-17-36-33-51-42m48 39c-10-9-26-23-44-44m48 44c-11-8-20-17-51-40m52 39c-11-7-22-19-44-43m43 43c-18-13-31-27-48-42m51 37c-19-12-37-30-49-37m47 41-44-38m45 37c-15-8-25-23-40-41m42 40c-7-5-17-15-46-36m47 32c-11-4-25-16-43-30m41 34c-12-14-29-32-39-37m41 36c-15-17-27-24-36-33m35 31c-14-10-27-23-37-33m38 29c-12-5-15-15-34-27m36 29c-12-8-24-17-37-33m42 32c-16-13-29-22-40-28m35 29c-11-13-26-22-36-32m38 31c-3-11-15-15-34-29m35 30c-8-10-16-18-34-32m35 31c-9-6-12-16-32-31m32 31c-10-9-21-17-35-31m37 28-33-30m33 30c-7-9-17-15-33-30m33 31c-8-11-18-19-26-26m26 21c-9-7-19-18-28-23m32 25c-9-8-14-15-29-26m28 24c-12-8-22-19-30-24m30 22c-7-2-10-13-27-26m26 27c-5-7-13-13-26-24m17 13c-5-3-7-7-13-15m12 12c-4 0-6-4-14-8"}),React__namespace.createElement("path",{stroke:"transparent",strokeWidth:".5",d:"M160 294c-10-1-8-9-26-22m23 24c-6-8-12-13-21-27m1 0c5-5 16-11 21-25m-21 25 25-22m-3-1c86-2 164-7 206-5m-202 7c70-1 138-1 202-4m0 0c3 10 11 15 17 24m-19-24 20 23m2 5c-6-1-10 10-25 24m23-29-20 25m-3 4c-61 0-123-4-204 1m205-5-205 5m0-1s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeLinecap:"round",strokeWidth:"4",d:"M153 298c0-10-9-23-15-29m19 23c-8-6-14-14-21-25m1 4c4-9 16-15 21-29m-23 27c8-8 14-14 27-22m1 1c50-4 103-3 198-6m-200 5c46-2 90-3 201-3m2-4c9 6 16 22 20 27m-23-25 22 23m-1 1c-7 10-12 15-19 21m21-22c-9 10-17 19-20 25m-1 0c-64 2-119 5-208 4m207-5c-48-1-97 2-207 4m1 1s0 0 0 0m0 0s0 0 0 0"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"#FFF6F0",d:"m305 241-9-42-4-18v-21l6-46 9-35 11-32 8-17-10 1-27-4-20-12-11-8-14 11-16 8-25 7-8-4-4 9 21 70 9 43 1 36-5 57 6 2 78-4"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M303 241c-1-10-11-36-11-61 0-24 7-62 11-85 5-22 12-39 16-50 3-11 7-11 7-14-1-3-2-1-8-2s-21-1-29-4c-9-2-16-7-21-10s-6-7-9-8c-2 0-2 2-6 5-5 3-14 12-22 15-9 3-24 3-30 4-7 0-7-3-8 0-1 2 1 8 2 13l5 15a771 771 0 0 1 22 106c2 16-1 27-1 37l-1 25c-1 6-3 12-1 15s6 2 14 2l34-2 36-1m-1 0c-1-11-8-38-8-63 0-24 5-60 9-82s12-39 16-50c4-12 9-15 8-18 0-2-5 4-11 3a170 170 0 0 1-49-16c-5-3-4-8-6-9-2 0-3 2-8 5s-13 10-21 14c-9 3-22 4-29 5s-11-3-13 0c-1 2 2 9 4 14 2 4 4 4 7 14s9 29 12 47a465 465 0 0 1 10 97l-1 22c-1 7-4 17-3 20 2 3 4 0 13 0h36l35-4"})),React__namespace.createElement("g",{fill:"none",fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{stroke:"#c24c0e",strokeWidth:".5",d:"M191 30s0 0 0 0m0 0s0 0 0 0m-1 5c2 0 3 0 5-6m-4 7 6-5m-4 8 8-9m-7 9c2-3 5-7 7-7m-4 13c2-9 5-10 7-13m-10 11c6-5 7-8 14-13m-8 20c1-5 8-13 13-23m-16 20c7-8 11-14 17-18m-18 25c3-11 8-14 22-22m-20 23c7-11 17-24 23-27m-25 30 27-29m-24 28c8-8 12-16 25-29m-23 34c2-6 9-17 27-39m-29 39c7-7 16-15 33-35m-34 40c14-13 20-18 45-46m-41 47c16-18 30-38 41-47m-40 46c13-16 33-34 56-60m-58 65c18-18 34-37 56-65m-57 71c15-19 33-35 65-72m-59 69c14-16 26-33 54-64m-56 70c17-23 40-41 56-70m-53 69c20-25 45-53 58-65m-62 73c15-17 31-29 61-72m-58 70c21-27 46-51 60-70m-55 76c19-24 40-49 63-73m-66 71c16-19 31-38 63-71m-59 76c18-27 36-47 62-75m-64 74c14-18 33-33 63-73m-61 78c24-31 50-58 70-78m-71 79c23-33 48-59 66-80m-63 87c21-34 43-56 67-82m-71 77c24-24 45-46 71-80m-65 85c21-22 42-43 70-80m-71 83 71-86m-69 91c24-37 54-65 71-86m-73 85c16-24 36-46 75-88m-77 96c31-35 66-75 84-91m-81 85 79-90m-79 100c15-20 34-46 80-94m-79 89c32-35 65-72 82-93m-85 101c28-27 51-53 91-98m-88 97c18-23 38-45 87-99m-90 105c28-27 46-50 93-105m-88 104c28-32 56-62 88-104m-87 110c17-25 37-42 90-108m-93 108c25-27 51-55 95-107m-93 113c19-23 44-47 95-114m-93 114c30-33 59-70 97-114m-98 121c37-43 75-94 102-118M220 150c27-34 52-65 103-119m-99 121c30-36 67-77 99-122M220 155c27-31 49-58 106-122M223 162c40-45 79-92 103-117M221 161c23-27 44-55 103-117M222 166c17-25 44-48 98-113m-97 112c20-27 45-56 94-112m-96 122c35-39 73-81 96-112m-93 108c27-35 51-65 92-107m-96 114c21-27 41-46 89-95m-85 94c17-22 39-47 82-94m-79 98c14-22 39-50 74-93m-77 96c22-31 52-60 80-94m-77 99c13-20 27-34 78-90m-82 87c24-23 42-46 81-90m-81 98c25-31 59-66 76-94m-76 95c23-24 42-47 78-92m-81 94c20-13 31-32 85-87m-84 91c17-22 35-38 81-91m-76 100c22-36 50-65 77-90m-80 85c17-22 36-43 77-87m-82 100 83-90m-80 88c29-34 56-66 79-90m-78 98c16-22 35-45 74-94m-73 90c23-28 44-50 73-87m-71 95c16-25 38-44 71-83m-74 81 74-85m-76 96c30-36 54-64 76-87m-74 82c25-30 49-60 71-84m-73 96c18-23 37-46 74-88m-77 85c30-34 56-63 75-87m-72 93c34-40 60-66 77-84m-72 80c22-26 43-53 69-81m-63 79c17-17 30-33 62-77m-66 78 67-75m-56 73c18-22 47-49 56-67m-60 70 60-68m-56 71c20-32 48-56 57-64m-56 62c19-24 39-47 57-63m-48 59c8-15 27-25 47-51m-49 54c13-17 23-30 49-58m-42 55c15-13 23-31 38-51m-38 53c10-17 25-31 43-50m-42 47c10-6 13-13 38-44m-36 46 36-41m-28 43c10-17 27-27 31-41m-33 42 32-40m-28 36c6-7 14-12 32-28m-31 30c6-9 16-16 27-32m-25 33c15-10 16-18 26-32m-25 30c7-7 14-15 27-25m-16 25c-1-5 8-17 15-19m-18 20c5-4 11-10 20-25m-16 21c6 1 14-11 14-14m-12 18c3-6 7-9 15-18m-12 19c1-2 7-11 13-13m-13 13c3-6 5-8 14-14m-6 12c2-4 3-7 7-8m-7 8 5-7m0 7 2-2m-3 1 2-2m-84 4s0 0 0 0m0 0s0 0 0 0m6 0s-4-4-7-4m8 4-7-5m10 2c0 1-4-6-12-6m13 9-10-9m20 10c-8-5-11-7-16-19m11 16c-3-1-6-5-14-12m22 16c-12-8-14-12-19-20m18 18c-6-4-10-11-21-18m25 17c-1-2-12-8-25-24m26 27c-7-12-18-20-28-27m33 23c-5-6-16-21-29-30m31 31-34-29m42 31c-5-11-13-17-39-35m39 34-42-36m44 39c-8-13-23-26-44-39m48 35c-12-8-19-17-46-40m50 43c-20-18-37-32-47-46m48 42-50-43m59 43c-24-20-48-40-60-52m58 55c-24-19-46-38-59-51m61 49c-13-18-37-35-62-53m65 53-61-55m68 54c-17-21-40-32-66-58m65 60c-17-18-35-30-68-58m74 53c-24-17-53-43-74-56m73 62c-25-25-48-46-72-65m80 62c-23-18-45-39-84-67m83 69c-30-26-57-53-78-69m79 68c-20-22-41-41-80-76m83 72c-30-24-56-48-83-73m83 64-81-67m77 70c-21-14-42-33-80-69m79 66-83-72m86 69c-28-21-51-40-81-71m78 64c-23-21-44-36-76-68m74 69c-27-22-54-48-79-68m81 59c-25-17-45-36-83-65m81 67c-31-27-63-57-79-69m82 59c-31-13-54-33-81-68m75 72c-15-16-31-30-77-69m74 61c-25-20-48-43-76-63m75 60-73-64m77 62c-25-21-54-42-76-68m73 66-77-66m74 58c-11-15-33-28-77-61m81 63c-26-19-48-39-79-66m77 63c-27-31-56-51-78-68m81 68c-32-27-63-55-82-69m81 60c-20-18-47-43-85-66m83 69c-25-25-55-47-82-72m83 64c-28-23-57-48-83-74m83 76-83-74m86 68c-23-17-46-38-89-77m85 79c-18-13-32-29-85-77m88 71c-31-27-66-50-93-80m90 79c-32-27-67-54-87-74m86 73c-20-26-48-52-86-82m90 79c-27-25-54-50-91-80m90 72c-22-17-48-41-92-75m94 76c-23-13-40-30-93-79m94 76c-24-21-50-47-100-84m98 86-94-84m95 77c-22-16-42-38-94-83m95 83c-25-17-47-36-99-85m103 82c-39-30-74-60-102-85m99 85c-42-38-82-71-103-87m101 82c-35-34-79-65-104-92m106 91c-35-27-66-56-102-88m101 87c-39-33-76-68-104-95m106 90c-26-20-54-47-104-91m107 84c-30-19-52-41-107-85m102 88c-40-32-80-70-106-92m110 91c-29-20-50-43-104-91m104 88L197 31m106 82c-34-23-55-44-100-87m96 85c-34-26-67-57-97-84m98 81c-28-27-62-53-92-85m93 83c-28-21-52-47-96-79m99 76c-38-26-72-58-93-74m91 75c-23-20-43-35-90-80m93 72c-24-17-45-36-88-69m86 72c-27-19-48-39-85-73m85 66c-30-25-64-51-83-71m82 73c-27-24-57-53-81-70m84 67c-19-14-35-30-74-63m73 62c-14-13-33-25-75-67m76 66c-24-26-47-41-75-64m73 59c-14-12-33-27-71-64m70 58c-19-25-51-42-69-59m71 62c-20-19-42-37-66-62m66 60-62-59m65 56c-25-21-53-43-66-56m67 50c-28-19-51-40-69-55m71 55c-23-18-46-38-69-53m67 52c-10-9-29-22-65-56m67 55c-26-23-47-42-64-53m63 51-61-56m62 55c-21-22-48-44-62-55m63 49c-18-12-40-29-55-49m56 51c-13-13-29-25-57-53m61 50c-23-14-41-35-49-44m46 42-48-42m0 2-8-10m9 10-10-8m62 41c-12-5-18-11-35-27m34 32-36-31m37 28c-7-4-14-9-26-29m25 26c-9-7-22-16-28-22m33 20c-13-6-16-12-27-17m22 17c-2-5-7-12-22-22m22 18c0-7-10-12-10-19m13 16c-4-2-14-10-15-14m16 15c-4-3-5-12-13-14m15 12c-6-5-12-10-12-12m12 6c-2-1-6-4-5-5m5 6c-3-3-4-5-7-5"}),React__namespace.createElement("path",{stroke:"transparent",d:"M300 239c-2-10-8-38-8-62 1-24 6-60 11-82s13-41 17-52c3-11 7-12 6-15-1-2-5 0-12-1s-21 0-29-2-13-7-18-10c-4-2-5-7-8-7-2-1-2 2-7 5s-14 10-23 12c-8 3-21 3-28 3-6 1-8-2-9 1-1 2 1 12 2 17l3 12c3 10 10 28 14 46l7 62c2 16 2 27 2 37l-2 25c-1 6-1 11 1 14s4 3 12 3l37-4 32 1m5-6c-3-10-14-34-14-57s8-59 11-81l11-54c4-11 10-13 10-15 1-2 0 4-6 3-7-1-23-8-32-11-8-2-15-4-20-7-5-2-7-9-9-9s2 3-2 7c-5 4-14 12-23 16-10 4-26 6-32 7s-5-3-6-1v12l4 10c4 11 12 32 16 51 5 18 9 45 10 61s-5 27-6 37c-2 10-4 18-3 24 1 7 4 14 7 17 2 2 1-3 7-3 7 0 21 3 33 3s31-4 38-5"})),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeLinecap:"round",strokeOpacity:".8",strokeWidth:"4",d:"M301 240c-2-10-9-37-9-62 0-24 4-60 9-83 4-22 13-40 18-50 4-11 8-13 7-15 0-3-3 0-9-1l-28-5-22-7c-5-3-7-8-9-9-3-1 0 1-5 4s-15 10-24 13-23 5-29 6-8-3-8 0c-1 2 2 8 3 13l3 14 13 47c4 18 7 44 9 60s1 25 1 35l-1 26c0 7-4 13-2 16s6 1 14 1h33l37-2m1-1c-2-10-12-37-12-61 0-23 7-60 12-83 5-22 13-40 16-51 4-11 7-12 6-15s-5-1-11-1l-25-3c-8-2-18-6-23-9s-4-9-7-10c-2-1-3 2-8 5s-13 11-21 14-22 5-28 5c-6 1-9-3-10-1s1 8 2 13l4 15c3 10 10 31 14 49s9 43 10 59c1 15-2 24-3 34v27c0 7-2 14 0 17 2 2 4-1 12-2l34-1 37-1"}),React__namespace.createElement("g",{strokeLinecap:"round"},React__namespace.createElement("path",{fill:"#ff0800",d:"M257 42c2 0 7 1 9 3 3 2 5 6 5 10v15c-1 4-3 6-5 8l-9 3c-3-1-6-3-8-7-2-3-3-8-3-13 0-4 1-9 4-12 2-3 8-5 10-5h2m-6-1c3-2 5-2 7 0 3 2 7 6 9 10 1 4-1 9-1 13-1 4-1 8-3 10-2 3-6 6-9 6s-8-2-10-5c-3-3-4-9-4-13s1-8 3-11l6-9c2-1 2 2 2 2"}),React__namespace.createElement("path",{fill:"none",stroke:"#000",strokeWidth:"4",d:"M257 42c2-1 6 1 8 2 2 2 5 6 6 10s2 9 1 13c0 4-3 9-6 11-2 3-6 4-9 4l-7-8-4-12c0-4 0-9 2-12 1-3 7-6 9-7 1-1 1 1 1 1m5 0c3 1 6 5 8 8s3 8 2 12c0 4-4 9-6 12s-4 5-6 5c-3 0-6-3-9-5-3-3-6-6-7-10s1-11 3-14c2-4 4-7 7-8h10"})))},saveIcon=e=>React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:e?"var(--color-accent)":"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),React__namespace.createElement("polyline",{points:"17 21 17 13 7 13 7 21"}),React__namespace.createElement("polyline",{points:"7 3 7 8 15 8"})),penIcon=e=>{var t,A,i,n,a,r,s,o,l,c,d,h;switch(e.type){case"highlighter":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{fill:null!==(t=e.strokeColor)&&void 0!==t?t:"var(--icon-fill-color)",strokeWidth:"2",d:"m9 11-6 6v3h9l3-3"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4"}));case"finetip":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:null!==(A=e.strokeColor)&&void 0!==A?A:"var(--icon-fill-color)",stroke:null!==(i=e.strokeColor)&&void 0!==i?i:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{strokeWidth:"2",d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"}));case"fountain":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{fill:null!==(n=e.strokeColor)&&void 0!==n?n:"var(--icon-fill-color)",d:"m12 19 7-7 3 3-7 7-3-3z"}),React__namespace.createElement("path",{fill:"none",d:"m18 13-1.5-7.5L2 2l3.5 14.5L13 18l5-5z"}),React__namespace.createElement("path",{fill:"none",d:"m2 2 7.586 7.586"}),React__namespace.createElement("circle",{fill:"none",cx:"11",cy:"11",r:"2"}));case"marker":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",fill:null!==(a=e.strokeColor)&&void 0!==a?a:"var(--icon-fill-color)",stroke:null!==(r=e.strokeColor)&&void 0!==r?r:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M331 315l158.4-215L460.1 70.6 245 229 331 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L436.6 8.4C444 2.9 453 0 462.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L350.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H240l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L144 320zM23 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H40c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z"}));case"thick-thin":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 108 106",strokeWidth:"2",fill:null!==(s=e.strokeColor)&&void 0!==s?s:"var(--icon-fill-color)",stroke:null!==(o=e.strokeColor)&&void 0!==o?o:"var(--icon-fill-color)"},React__namespace.createElement("path",{d:"m-.58 95.628.22-.89q.22-.89.49-2.44.26-1.54.77-3.35t1.31-3.43q.79-1.61.2-.26-.6 1.34-.03-.14.58-1.49 1.54-2.97.96-1.49 2.54-3.18 1.59-1.68 3.46-2.96 1.86-1.27.81-.54-1.04.73.6-.46 1.64-1.19 2.8-1.81 1.16-.63.16-.08-.99.54 1.21-.5 2.2-1.03 1.11-.58-1.1.45-.03-.07 1.06-.53 2.32-.82 1.26-.3 2.91-.52 1.64-.23 3.05-.18 1.4.05 2.5.12 1.09.07 2.25.24 1.16.17 2.3.49 1.15.32 2.11.78.96.47 2.21 1.01 1.25.55 2.37 1.04t2.34.89q1.22.4 2.5.65 1.29.25 2.44.33 1.16.08 2.35.17 1.18.08 2.26-.1 1.08-.19 2-1.1.92-.91 1.25-1.93.32-1.02.38-2.15t.57.21q.51 1.34-.03-.02-.55-1.37-.96-2.83-.41-1.45.5-.67.92.79-.03-.06-.95-.85-1.52-1.8-.57-.94-1.5-1.52-.93-.57-1.94-1.22-1.01-.65-1.97-1.88-.96-1.22-1.44-2.54-.49-1.32-.65-2.57-.17-1.24-.11-2.35.06-1.11.31-2.91.24-1.79.76-2.77.51-.97 1.29-1.8.77-.84 1.64-1.55.88-.72 1.9-1.33 1.03-.61 2.43-1.15 1.41-.55 2.69-.92 1.29-.37 2.81-.68 1.53-.31 2.83-.58 1.31-.27 2.78-.47 1.47-.2 2.58-.49 1.12-.28 2.19-.58 1.08-.31 2.13-.73 1.05-.42 2.44-1.32 1.39-.9 2.68-1.85 1.3-.95 2.25-1.87.95-.91 2.06-2 1.11-1.09 1.92-1.93.82-.84 1.54-1.82.71-.98 1.4-1.88.69-.9 1.38-1.96.69-1.07 1.25-2.04.55-.97 1.21-1.94.65-.96 1.35-1.79.69-.83 1.46-1.74.77-.9 1.66-1.73.89-.84 2.72-2.31 1.84-1.48 1.84-1.47v.01l-1.1 1.03q-1.1 1.02-1.77 1.92-.68.9-1.39 1.85-.71.96-1.41 1.91-.7.96-1.19 1.92-.48.95-.95 1.92-.46.96-.9 1.95-.43.99-1.02 2.16-.59 1.17-1.17 2.15-.58.97-1.23 2.13t-1.29 2.02q-.64.86-1.3 1.73-.66.88-1.42 1.78-.75.9-1.72 2.03-.97 1.14-1.81 1.89-.85.75-1.98 1.71-1.14.96-2.05 1.61-.91.64-2.42 1.38-1.51.73-2.71 1.21t-2.49.92q-1.3.44-2.35.69-1.06.24-2.1.59-1.03.34-2.06.74-1.03.4-2.29.94-1.26.54-2.27 1.11-1.01.58-1.57 1.57-.56.99-.81 2.06-.25 1.08.56 2.02.8.94-.21-.02-1.02-.96-.01-.48 1 .49 1.87 1.25.87.77 0 0-.88-.77.46-.01 1.34.75 2.6 1.68 1.26.94 2.08 2.03.81 1.09.01.27-.8-.82.3.26 1.11 1.08 1.71 2.1.61 1.02 1.21 2.25.6 1.24.92 2.36.32 1.12-.16.13-.49-.98.02.36.51 1.35.71 2.69.2 1.34.24 2.46.03 1.12-.09 2.42-.13 1.29-.72 3.21-.6 1.92-1.4 3.49-.81 1.58-1.77 2.83-.96 1.24-2.88 2.72-1.92 1.48-2.95 1.85-1.04.36-2.47.76-1.44.41-3.33.72-1.89.32-3.37.41-1.48.09-2.63.15-1.15.05-2.74-.06-1.59-.1-2.8-.29-1.2-.19-3.2-.63-1.99-.45-3.63-.92-1.63-.48-3.28-.79-1.65-.31-2.76-.2-1.11.1-2.21.42-1.11.32.39-.29 1.49-.6-.12.21-1.61.8-.39.19 1.21-.61.29.13-.92.74-1.83 1.34-.92.61.15-.19t.3-.05q-.77.75-1.58 1.57-.81.82.01-.18.82-1 .24.23t-.72 2.72q-.15 1.48-.08 2.4.07.91-.19 2.16-.26 1.26-.81 2.41-.55 1.16-1.36 2.15t-1.84 1.75q-1.03.77-2.21 1.27t-2.44.7q-1.27.2-2.53.1-1.28-.11-2.49-.52-1.22-.41-2.3-1.1-1.08-.68-1.96-1.61-.89-.92-1.52-2.04-.64-1.11-.99-2.34-.36-1.23-.41-2.51l-.04-1.27Z"}));case"thin-thick-thin":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 114 113",strokeWidth:"2",fill:null!==(l=e.strokeColor)&&void 0!==l?l:"var(--icon-fill-color)",stroke:null!==(c=e.strokeColor)&&void 0!==c?c:"var(--icon-fill-color)"},React__namespace.createElement("path",{d:"m10 103.405.13-1.22q.14-1.22 1.3-3.16 1.15-1.94 2.74-3.46 1.59-1.53 3.35-2.72 1.77-1.2 4-1.95 2.23-.76 4.45-1t4.86-.4q2.64-.15 5.14-.34 2.51-.19 4.85-.94 2.35-.75 4.55-1.71 2.21-.97 4.16-2.26 1.95-1.3 4.03-2.97 2.07-1.67 3.85-3.05 1.78-1.37 3.72-2.48 1.94-1.11 3.3-2.99 1.36-1.89 2.58-3.74 1.22-1.85-.63-3.42-1.85-1.57-3.82-2.86-1.97-1.3-4.11-2.08-2.15-.78-4.21-1.6-2.06-.81-4.02-1.96-1.96-1.14-3.71-2.48-1.74-1.33-3.37-2.77-1.63-1.43-3.23-3.62-1.6-2.18-2.23-4.64-.62-2.46-.36-4.96.27-2.49 1.19-4.46.91-1.97 2.42-3.7 1.5-1.73 3.5-3.15t4.11-2.28q2.1-.86 4.33-1.44 2.24-.58 4.92-.84 2.68-.26 4.83-.19t4.69.35q2.53.28 4.75.66 2.23.38 4.48.2 2.26-.19 4.43-1.3 2.17-1.12 4.2-2.36 2.04-1.24 3.93-2.43 1.9-1.19 3.84-2.14 1.95-.95 4.04-1.78 2.09-.83 4.56-2.28 2.46-1.46 2.46-1.45h.01q.01 0-1.38 1.3-1.38 1.29-3.08 2.59-1.7 1.3-3.5 2.5t-3.42 2.65q-1.62 1.45-3.18 3-1.57 1.56-3.37 3.13-1.8 1.57-3.6 2.91-1.81 1.33-3.92 2.12t-4.24.92q-2.13.14-4.31.26-2.18.12-4.5.39t-4.56.88q-2.25.61-4.24 1.6-1.99 1-3.83 2.29-1.83 1.29.18 2.44 2.01 1.15 4.2 1.92 2.2.78 4.34 1 2.15.22 4.4.69 2.25.46 4.34 1.16 2.08.71 4.33 1.91 2.25 1.21 4.11 2.73 1.87 1.52 3.68 4.03 1.82 2.5 2.74 5 .93 2.5 1.18 5.03.26 2.53-.04 4.81t-1.4 4.85q-1.09 2.58-2.4 4.26-1.3 1.68-3.1 3.44t-4.02 3.62q-2.23 1.85-4.32 3.07-2.08 1.23-4.34 1.99-2.25.76-4.46 1.96t-4.37 2.14q-2.15.93-4.22 1.81t-4.36 1.35q-2.3.46-4.52.82-2.22.35-4.76.38-2.54.04-4.87-.28t-4.67-.67q-2.34-.35-4.72-.54-2.39-.19-4.64.37-2.25.56-4.16 1.66-1.91 1.11-3.52 2.71-1.61 1.6-2.55 2.39l-.94.78Z"}));default:return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:null!==(d=e.strokeColor)&&void 0!==d?d:"var(--icon-fill-color)",stroke:null!==(h=e.strokeColor)&&void 0!==h?h:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1 0 0-1-1 0 0-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z"}))}},stringToSVG=e=>(e=e.replace(/stroke\s*=\s*['"][^"']*['"]/g,"").replace(/[^-]width\s*=\s*['"][^"']*['"]/g,"").replace(/[^-]height\s*=\s*['"][^"']*['"]/g,"").replace("React__namespace.createElement("div",{className:"welcome-screen-center__logo virgil welcome-screen-decor"},e," ");var top="top",bottom="bottom",right="right",left="left",auto="auto",basePlacements=[top,bottom,right,left],start="start",end="end",clippingParents="clippingParents",viewport="viewport",popper="popper",reference="reference",variationPlacements=basePlacements.reduce((function(e,t){return e.concat([t+"-"+start,t+"-"+end])}),[]),placements=[].concat(basePlacements,[auto]).reduce((function(e,t){return e.concat([t,t+"-"+start,t+"-"+end])}),[]),beforeRead="beforeRead",read="read",afterRead="afterRead",beforeMain="beforeMain",main="main",afterMain="afterMain",beforeWrite="beforeWrite",write="write",afterWrite="afterWrite",modifierPhases=[beforeRead,read,afterRead,beforeMain,main,afterMain,beforeWrite,write,afterWrite];function getNodeName(e){return e?(e.nodeName||"").toLowerCase():null}function getWindow(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function isElement(e){return e instanceof getWindow(e).Element||e instanceof Element}function isHTMLElement(e){return e instanceof getWindow(e).HTMLElement||e instanceof HTMLElement}function isShadowRoot(e){return"undefined"!=typeof ShadowRoot&&(e instanceof getWindow(e).ShadowRoot||e instanceof ShadowRoot)}function applyStyles(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var A=t.styles[e]||{},i=t.attributes[e]||{},n=t.elements[e];isHTMLElement(n)&&getNodeName(n)&&(Object.assign(n.style,A),Object.keys(i).forEach((function(e){var t=i[e];!1===t?n.removeAttribute(e):n.setAttribute(e,!0===t?"":t)})))}))}function effect$2(e){var t=e.state,A={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,A.popper),t.styles=A,t.elements.arrow&&Object.assign(t.elements.arrow.style,A.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],n=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:A[e]).reduce((function(e,t){return e[t]="",e}),{});isHTMLElement(i)&&getNodeName(i)&&(Object.assign(i.style,a),Object.keys(n).forEach((function(e){i.removeAttribute(e)})))}))}}var applyStyles$1={name:"applyStyles",enabled:!0,phase:"write",fn:applyStyles,effect:effect$2,requires:["computeStyles"]};function getBasePlacement(e){return e.split("-")[0]}var max=Math.max,min=Math.min,round=Math.round;function getUAString(){var e=navigator.userAgentData;return null!=e&&e.brands?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function isLayoutViewport(){return!/^((?!chrome|android).)*safari/i.test(getUAString())}function getBoundingClientRect(e,t,A){void 0===t&&(t=!1),void 0===A&&(A=!1);var i=e.getBoundingClientRect(),n=1,a=1;t&&isHTMLElement(e)&&(n=e.offsetWidth>0&&round(i.width)/e.offsetWidth||1,a=e.offsetHeight>0&&round(i.height)/e.offsetHeight||1);var r=(isElement(e)?getWindow(e):window).visualViewport,s=!isLayoutViewport()&&A,o=(i.left+(s&&r?r.offsetLeft:0))/n,l=(i.top+(s&&r?r.offsetTop:0))/a,c=i.width/n,d=i.height/a;return{width:c,height:d,top:l,right:o+c,bottom:l+d,left:o,x:o,y:l}}function getLayoutRect(e){var t=getBoundingClientRect(e),A=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-A)<=1&&(A=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:A,height:i}}function contains(e,t){var A=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(A&&isShadowRoot(A)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function getComputedStyle$1(e){return getWindow(e).getComputedStyle(e)}function isTableElement(e){return["table","td","th"].indexOf(getNodeName(e))>=0}function getDocumentElement(e){return((isElement(e)?e.ownerDocument:e.document)||window.document).documentElement}function getParentNode(e){return"html"===getNodeName(e)?e:e.assignedSlot||e.parentNode||(isShadowRoot(e)?e.host:null)||getDocumentElement(e)}function getTrueOffsetParent(e){return isHTMLElement(e)&&"fixed"!==getComputedStyle$1(e).position?e.offsetParent:null}function getContainingBlock(e){var t=/firefox/i.test(getUAString());if(/Trident/i.test(getUAString())&&isHTMLElement(e)&&"fixed"===getComputedStyle$1(e).position)return null;var A=getParentNode(e);for(isShadowRoot(A)&&(A=A.host);isHTMLElement(A)&&["html","body"].indexOf(getNodeName(A))<0;){var i=getComputedStyle$1(A);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return A;A=A.parentNode}return null}function getOffsetParent(e){for(var t=getWindow(e),A=getTrueOffsetParent(e);A&&isTableElement(A)&&"static"===getComputedStyle$1(A).position;)A=getTrueOffsetParent(A);return A&&("html"===getNodeName(A)||"body"===getNodeName(A)&&"static"===getComputedStyle$1(A).position)?t:A||getContainingBlock(e)||t}function getMainAxisFromPlacement(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function within(e,t,A){return max(e,min(t,A))}function withinMaxClamp(e,t,A){var i=within(e,t,A);return i>A?A:i}function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0}}function mergePaddingObject(e){return Object.assign({},getFreshSideObject(),e)}function expandToHashMap(e,t){return t.reduce((function(t,A){return t[A]=e,t}),{})}var toPaddingObject=function(e,t){return mergePaddingObject("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:expandToHashMap(e,basePlacements))};function arrow(e){var t,A=e.state,i=e.name,n=e.options,a=A.elements.arrow,r=A.modifiersData.popperOffsets,s=getBasePlacement(A.placement),o=getMainAxisFromPlacement(s),l=[left,right].indexOf(s)>=0?"height":"width";if(a&&r){var c=toPaddingObject(n.padding,A),d=getLayoutRect(a),h="y"===o?top:left,u="y"===o?bottom:right,g=A.rects.reference[l]+A.rects.reference[o]-r[o]-A.rects.popper[l],p=r[o]-A.rects.reference[o],m=getOffsetParent(a),w=m?"y"===o?m.clientHeight||0:m.clientWidth||0:0,f=g/2-p/2,E=c[h],B=w-d[l]-c[u],b=w/2-d[l]/2+f,v=within(E,b,B),C=o;A.modifiersData[i]=((t={})[C]=v,t.centerOffset=v-b,t)}}function effect$1(e){var t=e.state,A=e.options.element,i=void 0===A?"[data-popper-arrow]":A;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&contains(t.elements.popper,i)&&(t.elements.arrow=i)}var arrow$1={name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect$1,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function getVariation(e){return e.split("-")[1]}var unsetSides={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(e){var t=e.x,A=e.y,i=window.devicePixelRatio||1;return{x:round(t*i)/i||0,y:round(A*i)/i||0}}function mapToStyles(e){var t,A=e.popper,i=e.popperRect,n=e.placement,a=e.variation,r=e.offsets,s=e.position,o=e.gpuAcceleration,l=e.adaptive,c=e.roundOffsets,d=e.isFixed,h=r.x,u=void 0===h?0:h,g=r.y,p=void 0===g?0:g,m="function"==typeof c?c({x:u,y:p}):{x:u,y:p};u=m.x,p=m.y;var w=r.hasOwnProperty("x"),f=r.hasOwnProperty("y"),E=left,B=top,b=window;if(l){var v=getOffsetParent(A),C="clientHeight",y="clientWidth";v===getWindow(A)&&"static"!==getComputedStyle$1(v=getDocumentElement(A)).position&&"absolute"===s&&(C="scrollHeight",y="scrollWidth"),v=v,(n===top||(n===left||n===right)&&a===end)&&(B=bottom,p-=(d&&v===b&&b.visualViewport?b.visualViewport.height:v[C])-i.height,p*=o?1:-1),n!==left&&(n!==top&&n!==bottom||a!==end)||(E=right,u-=(d&&v===b&&b.visualViewport?b.visualViewport.width:v[y])-i.width,u*=o?1:-1)}var F,x=Object.assign({position:s},l&&unsetSides),T=!0===c?roundOffsetsByDPR({x:u,y:p}):{x:u,y:p};return u=T.x,p=T.y,o?Object.assign({},x,((F={})[B]=f?"0":"",F[E]=w?"0":"",F.transform=(b.devicePixelRatio||1)<=1?"translate("+u+"px, "+p+"px)":"translate3d("+u+"px, "+p+"px, 0)",F)):Object.assign({},x,((t={})[B]=f?p+"px":"",t[E]=w?u+"px":"",t.transform="",t))}function computeStyles(e){var t=e.state,A=e.options,i=A.gpuAcceleration,n=void 0===i||i,a=A.adaptive,r=void 0===a||a,s=A.roundOffsets,o=void 0===s||s,l={placement:getBasePlacement(t.placement),variation:getVariation(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:n,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,mapToStyles(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:o})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,mapToStyles(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:o})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var computeStyles$1={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}},passive={passive:!0};function effect(e){var t=e.state,A=e.instance,i=e.options,n=i.scroll,a=void 0===n||n,r=i.resize,s=void 0===r||r,o=getWindow(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach((function(e){e.addEventListener("scroll",A.update,passive)})),s&&o.addEventListener("resize",A.update,passive),function(){a&&l.forEach((function(e){e.removeEventListener("scroll",A.update,passive)})),s&&o.removeEventListener("resize",A.update,passive)}}var eventListeners={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:effect,data:{}},hash$1={left:"right",right:"left",bottom:"top",top:"bottom"};function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,(function(e){return hash$1[e]}))}var hash={start:"end",end:"start"};function getOppositeVariationPlacement(e){return e.replace(/start|end/g,(function(e){return hash[e]}))}function getWindowScroll(e){var t=getWindow(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function getWindowScrollBarX(e){return getBoundingClientRect(getDocumentElement(e)).left+getWindowScroll(e).scrollLeft}function getViewportRect(e,t){var A=getWindow(e),i=getDocumentElement(e),n=A.visualViewport,a=i.clientWidth,r=i.clientHeight,s=0,o=0;if(n){a=n.width,r=n.height;var l=isLayoutViewport();(l||!l&&"fixed"===t)&&(s=n.offsetLeft,o=n.offsetTop)}return{width:a,height:r,x:s+getWindowScrollBarX(e),y:o}}function getDocumentRect(e){var t,A=getDocumentElement(e),i=getWindowScroll(e),n=null==(t=e.ownerDocument)?void 0:t.body,a=max(A.scrollWidth,A.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),r=max(A.scrollHeight,A.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),s=-i.scrollLeft+getWindowScrollBarX(e),o=-i.scrollTop;return"rtl"===getComputedStyle$1(n||A).direction&&(s+=max(A.clientWidth,n?n.clientWidth:0)-a),{width:a,height:r,x:s,y:o}}function isScrollParent(e){var t=getComputedStyle$1(e),A=t.overflow,i=t.overflowX,n=t.overflowY;return/auto|scroll|overlay|hidden/.test(A+n+i)}function getScrollParent(e){return["html","body","#document"].indexOf(getNodeName(e))>=0?e.ownerDocument.body:isHTMLElement(e)&&isScrollParent(e)?e:getScrollParent(getParentNode(e))}function listScrollParents(e,t){var A;void 0===t&&(t=[]);var i=getScrollParent(e),n=i===(null==(A=e.ownerDocument)?void 0:A.body),a=getWindow(i),r=n?[a].concat(a.visualViewport||[],isScrollParent(i)?i:[]):i,s=t.concat(r);return n?s:s.concat(listScrollParents(getParentNode(r)))}function rectToClientRect(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function getInnerBoundingClientRect(e,t){var A=getBoundingClientRect(e,!1,"fixed"===t);return A.top=A.top+e.clientTop,A.left=A.left+e.clientLeft,A.bottom=A.top+e.clientHeight,A.right=A.left+e.clientWidth,A.width=e.clientWidth,A.height=e.clientHeight,A.x=A.left,A.y=A.top,A}function getClientRectFromMixedType(e,t,A){return t===viewport?rectToClientRect(getViewportRect(e,A)):isElement(t)?getInnerBoundingClientRect(t,A):rectToClientRect(getDocumentRect(getDocumentElement(e)))}function getClippingParents(e){var t=listScrollParents(getParentNode(e)),A=["absolute","fixed"].indexOf(getComputedStyle$1(e).position)>=0&&isHTMLElement(e)?getOffsetParent(e):e;return isElement(A)?t.filter((function(e){return isElement(e)&&contains(e,A)&&"body"!==getNodeName(e)})):[]}function getClippingRect(e,t,A,i){var n="clippingParents"===t?getClippingParents(e):[].concat(t),a=[].concat(n,[A]),r=a[0],s=a.reduce((function(t,A){var n=getClientRectFromMixedType(e,A,i);return t.top=max(n.top,t.top),t.right=min(n.right,t.right),t.bottom=min(n.bottom,t.bottom),t.left=max(n.left,t.left),t}),getClientRectFromMixedType(e,r,i));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function computeOffsets(e){var t,A=e.reference,i=e.element,n=e.placement,a=n?getBasePlacement(n):null,r=n?getVariation(n):null,s=A.x+A.width/2-i.width/2,o=A.y+A.height/2-i.height/2;switch(a){case top:t={x:s,y:A.y-i.height};break;case bottom:t={x:s,y:A.y+A.height};break;case right:t={x:A.x+A.width,y:o};break;case left:t={x:A.x-i.width,y:o};break;default:t={x:A.x,y:A.y}}var l=a?getMainAxisFromPlacement(a):null;if(null!=l){var c="y"===l?"height":"width";switch(r){case start:t[l]=t[l]-(A[c]/2-i[c]/2);break;case end:t[l]=t[l]+(A[c]/2-i[c]/2)}}return t}function detectOverflow(e,t){void 0===t&&(t={});var A=t,i=A.placement,n=void 0===i?e.placement:i,a=A.strategy,r=void 0===a?e.strategy:a,s=A.boundary,o=void 0===s?clippingParents:s,l=A.rootBoundary,c=void 0===l?viewport:l,d=A.elementContext,h=void 0===d?popper:d,u=A.altBoundary,g=void 0!==u&&u,p=A.padding,m=void 0===p?0:p,w=mergePaddingObject("number"!=typeof m?m:expandToHashMap(m,basePlacements)),f=h===popper?reference:popper,E=e.rects.popper,B=e.elements[g?f:h],b=getClippingRect(isElement(B)?B:B.contextElement||getDocumentElement(e.elements.popper),o,c,r),v=getBoundingClientRect(e.elements.reference),C=computeOffsets({reference:v,element:E,strategy:"absolute",placement:n}),y=rectToClientRect(Object.assign({},E,C)),F=h===popper?y:v,x={top:b.top-F.top+w.top,bottom:F.bottom-b.bottom+w.bottom,left:b.left-F.left+w.left,right:F.right-b.right+w.right},T=e.modifiersData.offset;if(h===popper&&T){var S=T[n];Object.keys(x).forEach((function(e){var t=[right,bottom].indexOf(e)>=0?1:-1,A=[top,bottom].indexOf(e)>=0?"y":"x";x[e]+=S[A]*t}))}return x}function computeAutoPlacement(e,t){void 0===t&&(t={});var A=t,i=A.placement,n=A.boundary,a=A.rootBoundary,r=A.padding,s=A.flipVariations,o=A.allowedAutoPlacements,l=void 0===o?placements:o,c=getVariation(i),d=c?s?variationPlacements:variationPlacements.filter((function(e){return getVariation(e)===c})):basePlacements,h=d.filter((function(e){return l.indexOf(e)>=0}));0===h.length&&(h=d);var u=h.reduce((function(t,A){return t[A]=detectOverflow(e,{placement:A,boundary:n,rootBoundary:a,padding:r})[getBasePlacement(A)],t}),{});return Object.keys(u).sort((function(e,t){return u[e]-u[t]}))}function getExpandedFallbackPlacements(e){if(getBasePlacement(e)===auto)return[];var t=getOppositePlacement(e);return[getOppositeVariationPlacement(e),t,getOppositeVariationPlacement(t)]}function flip(e){var t=e.state,A=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var n=A.mainAxis,a=void 0===n||n,r=A.altAxis,s=void 0===r||r,o=A.fallbackPlacements,l=A.padding,c=A.boundary,d=A.rootBoundary,h=A.altBoundary,u=A.flipVariations,g=void 0===u||u,p=A.allowedAutoPlacements,m=t.options.placement,w=getBasePlacement(m),f=o||(w!==m&&g?getExpandedFallbackPlacements(m):[getOppositePlacement(m)]),E=[m].concat(f).reduce((function(e,A){return e.concat(getBasePlacement(A)===auto?computeAutoPlacement(t,{placement:A,boundary:c,rootBoundary:d,padding:l,flipVariations:g,allowedAutoPlacements:p}):A)}),[]),B=t.rects.reference,b=t.rects.popper,v=new Map,C=!0,y=E[0],F=0;F=0,M=I?"width":"height",k=detectOverflow(t,{placement:x,boundary:c,rootBoundary:d,altBoundary:h,padding:l}),U=I?S?right:left:S?bottom:top;B[M]>b[M]&&(U=getOppositePlacement(U));var Q=getOppositePlacement(U),O=[];if(a&&O.push(k[T]<=0),s&&O.push(k[U]<=0,k[Q]<=0),O.every((function(e){return e}))){y=x,C=!1;break}v.set(x,O)}if(C)for(var L=function(e){var t=E.find((function(t){var A=v.get(t);if(A)return A.slice(0,e).every((function(e){return e}))}));if(t)return y=t,"break"},N=g?3:1;N>0&&"break"!==L(N);N--);t.placement!==y&&(t.modifiersData[i]._skip=!0,t.placement=y,t.reset=!0)}}var flip$1={name:"flip",enabled:!0,phase:"main",fn:flip,requiresIfExists:["offset"],data:{_skip:!1}};function getSideOffsets(e,t,A){return void 0===A&&(A={x:0,y:0}),{top:e.top-t.height-A.y,right:e.right-t.width+A.x,bottom:e.bottom-t.height+A.y,left:e.left-t.width-A.x}}function isAnySideFullyClipped(e){return[top,right,bottom,left].some((function(t){return e[t]>=0}))}function hide(e){var t=e.state,A=e.name,i=t.rects.reference,n=t.rects.popper,a=t.modifiersData.preventOverflow,r=detectOverflow(t,{elementContext:"reference"}),s=detectOverflow(t,{altBoundary:!0}),o=getSideOffsets(r,i),l=getSideOffsets(s,n,a),c=isAnySideFullyClipped(o),d=isAnySideFullyClipped(l);t.modifiersData[A]={referenceClippingOffsets:o,popperEscapeOffsets:l,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}var hide$1={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hide};function distanceAndSkiddingToXY(e,t,A){var i=getBasePlacement(e),n=[left,top].indexOf(i)>=0?-1:1,a="function"==typeof A?A(Object.assign({},t,{placement:e})):A,r=a[0],s=a[1];return r=r||0,s=(s||0)*n,[left,right].indexOf(i)>=0?{x:s,y:r}:{x:r,y:s}}function offset(e){var t=e.state,A=e.options,i=e.name,n=A.offset,a=void 0===n?[0,0]:n,r=placements.reduce((function(e,A){return e[A]=distanceAndSkiddingToXY(A,t.rects,a),e}),{}),s=r[t.placement],o=s.x,l=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=o,t.modifiersData.popperOffsets.y+=l),t.modifiersData[i]=r}var offset$1={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset};function popperOffsets(e){var t=e.state,A=e.name;t.modifiersData[A]=computeOffsets({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var popperOffsets$1={name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}};function getAltAxis(e){return"x"===e?"y":"x"}function preventOverflow(e){var t=e.state,A=e.options,i=e.name,n=A.mainAxis,a=void 0===n||n,r=A.altAxis,s=void 0!==r&&r,o=A.boundary,l=A.rootBoundary,c=A.altBoundary,d=A.padding,h=A.tether,u=void 0===h||h,g=A.tetherOffset,p=void 0===g?0:g,m=detectOverflow(t,{boundary:o,rootBoundary:l,padding:d,altBoundary:c}),w=getBasePlacement(t.placement),f=getVariation(t.placement),E=!f,B=getMainAxisFromPlacement(w),b=getAltAxis(B),v=t.modifiersData.popperOffsets,C=t.rects.reference,y=t.rects.popper,F="function"==typeof p?p(Object.assign({},t.rects,{placement:t.placement})):p,x="number"==typeof F?{mainAxis:F,altAxis:F}:Object.assign({mainAxis:0,altAxis:0},F),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,S={x:0,y:0};if(v){if(a){var I,M="y"===B?top:left,k="y"===B?bottom:right,U="y"===B?"height":"width",Q=v[B],O=Q+m[M],L=Q-m[k],N=u?-y[U]/2:0,D=f===start?C[U]:y[U],R=f===start?-y[U]:-C[U],H=t.elements.arrow,P=u&&H?getLayoutRect(H):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:getFreshSideObject(),K=V[M],G=V[k],W=within(0,C[U],P[U]),z=E?C[U]/2-N-W-K-x.mainAxis:D-W-K-x.mainAxis,X=E?-C[U]/2+N+W+G+x.mainAxis:R+W+G+x.mainAxis,Y=t.elements.arrow&&getOffsetParent(t.elements.arrow),j=Y?"y"===B?Y.clientTop||0:Y.clientLeft||0:0,_=null!=(I=null==T?void 0:T[B])?I:0,J=Q+X-_,Z=within(u?min(O,Q+z-_-j):O,Q,u?max(L,J):L);v[B]=Z,S[B]=Z-Q}if(s){var q,$="x"===B?top:left,ee="x"===B?bottom:right,te=v[b],Ae="y"===b?"height":"width",ie=te+m[$],ne=te-m[ee],ae=-1!==[top,left].indexOf(w),re=null!=(q=null==T?void 0:T[b])?q:0,se=ae?ie:te-C[Ae]-y[Ae]-re+x.altAxis,oe=ae?te+C[Ae]+y[Ae]-re-x.altAxis:ne,le=u&&ae?withinMaxClamp(se,te,oe):within(u?se:ie,te,u?oe:ne);v[b]=le,S[b]=le-te}t.modifiersData[i]=S}}var preventOverflow$1={name:"preventOverflow",enabled:!0,phase:"main",fn:preventOverflow,requiresIfExists:["offset"]};function getHTMLElementScroll(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function getNodeScroll(e){return e!==getWindow(e)&&isHTMLElement(e)?getHTMLElementScroll(e):getWindowScroll(e)}function isElementScaled(e){var t=e.getBoundingClientRect(),A=round(t.width)/e.offsetWidth||1,i=round(t.height)/e.offsetHeight||1;return 1!==A||1!==i}function getCompositeRect(e,t,A){void 0===A&&(A=!1);var i=isHTMLElement(t),n=isHTMLElement(t)&&isElementScaled(t),a=getDocumentElement(t),r=getBoundingClientRect(e,n,A),s={scrollLeft:0,scrollTop:0},o={x:0,y:0};return(i||!i&&!A)&&(("body"!==getNodeName(t)||isScrollParent(a))&&(s=getNodeScroll(t)),isHTMLElement(t)?((o=getBoundingClientRect(t,!0)).x+=t.clientLeft,o.y+=t.clientTop):a&&(o.x=getWindowScrollBarX(a))),{x:r.left+s.scrollLeft-o.x,y:r.top+s.scrollTop-o.y,width:r.width,height:r.height}}function order(e){var t=new Map,A=new Set,i=[];function n(e){A.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!A.has(e)){var i=t.get(e);i&&n(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){A.has(e.name)||n(e)})),i}function orderModifiers(e){var t=order(e);return modifierPhases.reduce((function(e,A){return e.concat(t.filter((function(e){return e.phase===A})))}),[])}function debounce(e){var t;return function(){return t||(t=new Promise((function(A){Promise.resolve().then((function(){t=void 0,A(e())}))}))),t}}function mergeByName(e){var t=e.reduce((function(e,t){var A=e[t.name];return e[t.name]=A?Object.assign({},A,t,{options:Object.assign({},A.options,t.options),data:Object.assign({},A.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}var DEFAULT_OPTIONS={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var e=arguments.length,t=new Array(e),A=0;A(this.setSelectedItem(this.selectedItem-1,!0),!1))),A.register([],"ArrowDown",(()=>(this.setSelectedItem(this.selectedItem+1,!0),!1))),A.register([],"Enter",(e=>(this.useSelectedItem(e),!1))),A.register([],"Tab",(e=>(this.chooseSuggestion(e),!1)))}chooseSuggestion(e){if(!this.items||!this.items.length)return;const t=this.items[this.selectedItem];t&&this.owner.onChooseSuggestion(t,e)}onSuggestionClick(e,t){if(e.preventDefault(),!this.suggestions||!this.suggestions.length)return;const A=this.suggestions.indexOf(t);this.setSelectedItem(A,!1),this.useSelectedItem(e)}onSuggestionMouseover(e,t){if(!this.suggestions||!this.suggestions.length)return;const A=this.suggestions.indexOf(t);this.setSelectedItem(A,!1)}empty(){this.containerEl.empty()}setSuggestions(e){this.containerEl.empty();const t=[];e.forEach((e=>{const A=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(e,A),t.push(A)})),this.items=e,this.suggestions=t,this.setSelectedItem(0,!1)}useSelectedItem(e){if(!this.items||!this.items.length)return;const t=this.items[this.selectedItem];t&&this.owner.selectSuggestion(t,e)}wrap(e,t){return(e%t+t)%t}setSelectedItem(e,t){const A=this.wrap(e,this.suggestions.length),i=this.suggestions[this.selectedItem],n=this.suggestions[A];i&&i.removeClass("is-selected"),n&&n.addClass("is-selected"),this.selectedItem=A,t&&n.scrollIntoView(!1)}}class SuggestionModal extends obsidian_module.FuzzySuggestModal{constructor(e,t,A){super(e),this.items=[],this.scope=new obsidian_module.Scope(this.app.scope),this.emptyStateText="No match found",this.limit=100,this.inputEl=t,this.items=A,this.suggestEl=createDiv("suggestion-container"),this.contentEl=this.suggestEl.createDiv("suggestion"),this.suggester=new Suggester(this,this.contentEl,this.scope),this.scope.register([],"Escape",this.onEscape.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onFocus.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",(e=>{e.preventDefault()}))}empty(){this.suggester.empty()}onInputChanged(){if(this.shouldNotOpen)return;const e=this.modifyInput(this.inputEl.value),t=this.getSuggestions(e);t.length>0?this.suggester.setSuggestions(t.slice(0,this.limit)):this.onNoSuggestion(),this.open()}onFocus(){this.shouldNotOpen=!1,this.onInputChanged()}modifyInput(e){return e}onNoSuggestion(){this.empty(),this.renderSuggestion(null,this.contentEl.createDiv("suggestion-item"))}open(){this.app.keymap.pushScope(this.scope),this.inputEl.ownerDocument.body.appendChild(this.suggestEl),this.popper=createPopper(this.inputEl,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,10]}},{name:"flip",options:{fallbackPlacements:["top"]}}]})}onEscape(){this.close(),this.shouldNotOpen=!0}close(){this.app.keymap.popScope(this.scope),this.suggester.setSuggestions([]),this.popper&&this.popper.destroy(),this.suggestEl.detach()}createPrompt(e){this.promptEl||(this.promptEl=this.suggestEl.createDiv("prompt-instructions"));const t=this.promptEl.createDiv("prompt-instruction");for(const A of e)t.appendChild(A)}}class FileSuggestionModal extends SuggestionModal{constructor(e,t,A){super(e,t.inputEl,A),this.limit=20,this.files=[...A],this.text=t,this.inputEl.addEventListener("input",(()=>this.getFile()))}getFile(){const e=this.inputEl.value,t=this.app.vault.getAbstractFileByPath(e);t!==this.file&&t instanceof obsidian_module.TFile&&(this.file=t,this.onInputChanged())}getSelectedItem(){return this.file}getItemText(e){return e.path}onChooseItem(e){this.file=e,this.text.setValue(e.path),this.text.onChanged()}selectSuggestion({item:e}){this.file=e,this.text.setValue(e.path),this.onClose(),this.text.onChanged(),this.close()}renderSuggestion(e,t){const{item:A,match:i}=e||{},n=t.createDiv({cls:"suggestion-content"});if(!A)return n.setText(this.emptyStateText),void n.parentElement.addClass("is-selected");const a=A.path.length-A.name.length,r=i.matches.map((e=>createSpan("suggestion-highlight")));for(let e=a;et[0]===e));if(t){const a=r[i.matches.indexOf(t)];n.appendChild(a),a.appendText(A.path.substring(t[0],t[1])),e+=t[1]-t[0]-1}else n.appendText(A.path[e])}t.createDiv({cls:"suggestion-note",text:A.path})}getItems(){return this.files}}const insertImageToView=async(e,t,A,i)=>{e.clear(),e.style.strokeColor="transparent",e.style.backgroundColor="transparent";const n=e.getExcalidrawAPI();e.canvas.theme=n.getAppState().theme;const a=await e.addImage(t.x,t.y,A,i);return await e.addElementsToView(!1,!0,!0),a},insertEmbeddableToView=async(e,t,A,i)=>{if(e.clear(),e.style.strokeColor="transparent",e.style.backgroundColor="transparent",A&&IMAGE_TYPES.contains(A.extension)||e.isExcalidrawFile(A))return await insertImageToView(e,t,A);{const n=e.addEmbeddable(t.x,t.y,500,500,i,A);return await e.addElementsToView(!1,!0,!0),n}},getEA=e=>{try{return window.ExcalidrawAutomate.getAPI(e)}catch(e){return console.log({message:"Excalidraw not available",fn:getEA}),null}};class InsertPDFModal extends obsidian_module.Modal{constructor(e,t){super(app),this.plugin=e,this.view=t,this.borderBox=!0,this.gapSize=20,this.numColumns=1,this.lockAfterImport=!0,this.pagesToImport=[],this.pageDimensions={width:0,height:0},this.importScale=.3,this.dirty=!1,this.setImageSizeMessage=()=>this.imageSizeMessage.innerText=`${Math.round(this.pageDimensions.width*this.importScale)} x ${Math.round(this.pageDimensions.height*this.importScale)}`}open(e){e&&"pdf"===e.extension.toLowerCase()&&(this.pdfFile=e),super.open()}onOpen(){this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText("Import PDF"),this.createForm()}async onClose(){this.dirty&&(this.plugin.settings.pdfImportScale=this.importScale,this.plugin.settings.pdfBorderBox=this.borderBox,this.plugin.settings.pdfGapSize=this.gapSize,this.plugin.settings.pdfNumColumns=this.numColumns,this.plugin.settings.pdfLockAfterImport=this.lockAfterImport,this.plugin.saveSettings()),this.pdfDoc&&(this.pdfDoc.destroy(),this.pdfDoc=null)}async getPageDimensions(e){try{const t=this.plugin.settings.pdfScale,A=createEl("canvas"),i=(await e.getPage(1)).getViewport({scale:t});this.pageDimensions.height=i.height,this.pageDimensions.width=i.width,A.width=0,A.height=0,this.setImageSizeMessage()}catch(e){console.log(e)}}createPageListFromString(e){const t=e=>e.replace(/\D/g,"");return this.pagesToImport=[],e.split(",").forEach((e=>{const A=e.split("-");if(1===A.length){const e=parseInt(t(A[0]));!isNaN(e)&&this.pagesToImport.push(e)}else if(2===A.length){const e=parseInt(t(A[0])),i=parseInt(t(A[1]));if(isNaN(e)||isNaN(i))return;for(let t=e;t<=i;t++)this.pagesToImport.push(t)}})),this.pagesToImport}async createForm(){await this.plugin.loadSettings(),this.borderBox=this.plugin.settings.pdfBorderBox,this.gapSize=this.plugin.settings.pdfGapSize,this.numColumns=this.plugin.settings.pdfNumColumns,this.lockAfterImport=this.plugin.settings.pdfLockAfterImport,this.importScale=this.plugin.settings.pdfImportScale;const e=this.contentEl;let t,A,i,n;const a=()=>this.pdfDoc?0===this.pagesToImport.length?(i.buttonEl.style.display="none",void(n.innerText="Please select pages to import")):Math.max(...this.pagesToImport)<=this.pdfDoc.numPages?(i.buttonEl.style.display="block",void(n.innerText="")):(i.buttonEl.style.display="none",void(n.innerText=`The selected document has ${this.pdfDoc.numPages} pages. Please select pages between 1 and ${this.pdfDoc.numPages}`)):(n.innerText="Please select a PDF file",void(i.buttonEl.style.display="none")),r=()=>{0!==A?t.innerHTML=`There are ${A} pages in the selected document.`:t.innerText="Please select a PDF file"},s=async e=>{this.pdfDoc&&await this.pdfDoc.destroy(),this.pdfDoc=null,e&&(this.pdfDoc=await getPDFDoc(e),this.pdfFile=e,this.pdfDoc?(A=this.pdfDoc.numPages,a(),r(),this.getPageDimensions(this.pdfDoc)):i.setDisabled(!0))},o=new obsidian_module.TextComponent(e);o.inputEl.style.width="100%";const l=new FileSuggestionModal(this.app,o,app.vault.getFiles().filter((e=>"pdf"===e.extension.toLowerCase())));let c,d,h,u;o.onChange((async()=>{const e=l.getSelectedItem();await s(e)})),t=e.createEl("p",{text:""}),r(),new obsidian_module.Setting(e).setName("Pages to import").addText((e=>{d=e,e.setPlaceholder("e.g.: 1,3-5,7,9-10").onChange((e=>{const t=this.createPageListFromString(e);t.length>15?c.innerHTML=`You are importing ${t.length} pages. ⚠️ This may take a while. ⚠️`:c.innerHTML=`You are importing ${t.length} pages.`,a()})),e.inputEl.style.width="100%"})),c=e.createEl("p",{text:""}),new obsidian_module.Setting(e).setName("Add border box").addToggle((e=>e.setValue(this.borderBox).onChange((e=>{this.borderBox=e,this.dirty=!0})))),new obsidian_module.Setting(e).setName("Lock pages on canvas after import").addToggle((e=>e.setValue(this.lockAfterImport).onChange((e=>{this.lockAfterImport=e,this.dirty=!0})))),new obsidian_module.Setting(e).setName("Number of columns").addSlider((e=>e.setLimits(1,100,1).setValue(this.numColumns).onChange((e=>{this.numColumns=e,h.innerText=` ${e.toString()}`,this.dirty=!0})))).settingEl.createDiv("",(e=>{h=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.numColumns.toString()}`})),new obsidian_module.Setting(e).setName("Size of gap between pages").addSlider((e=>e.setLimits(10,200,10).setValue(this.gapSize).onChange((e=>{this.gapSize=e,u.innerText=` ${e.toString()}`,this.dirty=!0})))).settingEl.createDiv("",(e=>{u=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.gapSize.toString()}`}));const g=new obsidian_module.Setting(e).setName("Imported page size").setDesc(`${this.pageDimensions.width*this.importScale} x ${this.pageDimensions.height*this.importScale}`).addSlider((e=>e.setLimits(.1,1.5,.1).setValue(this.importScale).onChange((e=>{this.importScale=e,this.dirty=!0,this.setImageSizeMessage()}))));this.imageSizeMessage=g.descEl;const p=new obsidian_module.Setting(e).setDesc("Select a document first").addButton((e=>{e.setButtonText("Import PDF").setCta().onClick((async()=>{const e=getEA(this.view);let t=0,A=0;const i=Math.round(this.pageDimensions.width*this.importScale),a=Math.round(this.pageDimensions.height*this.importScale);for(let r=0;re.id)),o=e.getViewElements().filter((e=>s.includes(e.id)));r.selectElements(o),r.zoomToFit(o),this.close()})),i=e,i.buttonEl.style.display="none"}));n=p.descEl,n.addClass("mod-warning"),this.pdfFile?(o.setValue(this.pdfFile.path),await s(this.pdfFile),l.close(),d.inputEl.focus()):o.inputEl.focus(),a()}}class UniversalInsertFileModal extends obsidian_module.Modal{constructor(e,t){super(app),this.plugin=e,this.view=t,this.center={x:0,y:0};const A=t.excalidrawAPI.getAppState(),i=t.containerEl.getBoundingClientRect(),n=window.innerWidth||document.documentElement.clientWidth,a=window.innerHeight||document.documentElement.clientHeight,r=sceneCoordsToViewportCoords({sceneX:t.currentPosition.x,sceneY:t.currentPosition.y},A);if(r.x>=i.left+150&&r.y<=i.right-150&&r.y>=i.top+150&&r.y<=i.bottom-150){const e=t.currentPosition.x-250,A=t.currentPosition.y-250;this.center={x:e,y:A}}else{const e=i.left+i.width/2,t=i.top+i.height/2,r=Math.max(0,Math.min(n,e)),s=Math.max(0,Math.min(a,t));this.center=viewportCoordsToSceneCoords({clientX:r,clientY:s},A),this.center={x:this.center.x-250,y:this.center.y-250}}}open(e,t){this.file=e,this.center=null!=t?t:this.center,super.open()}onOpen(){this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText("Insert File From Vault"),this.createForm()}async createForm(){const e=this.contentEl;let t,A,i,n,a,r,s=!1,o=this.file;const l=async()=>{const e=this.plugin.ea,s=o&&"md"===o.extension&&!e.isExcalidrawFile(o),l=o&&(IMAGE_TYPES.contains(o.extension)||e.isExcalidrawFile(o)),c=o&&!l,d=o&&"pdf"===o.extension,h=o&&e.isExcalidrawFile(o);if(s){for(A.settingEl.style.display="",t.selectEl.style.display="block";t.selectEl.options.length>0;)t.selectEl.remove(0);t.addOption("",""),(await app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},o)).blocks.filter((e=>{var t;return e.display&&"heading"===(null===(t=e.node)||void 0===t?void 0:t.type)})).forEach((e=>{t.addOption(`#${e.display.replaceAll(REG_BLOCK_REF_CLEAN,"").trim()}`,e.display)}))}else A.settingEl.style.display="none",t.selectEl.style.display="none";r.settingEl.style.display=h?"":"none",l||"md"===(null==o?void 0:o.extension)?n.buttonEl.style.display="block":n.buttonEl.style.display="none",i.buttonEl.style.display=c?"block":"none",a.buttonEl.style.display=d?"block":"none"},c=new obsidian_module.TextComponent(e);c.inputEl.style.width="100%";const d=new FileSuggestionModal(this.app,c,app.vault.getFiles().filter((e=>e!==this.view.file)));c.onChange((()=>{o=d.getSelectedItem(),l()})),A=new obsidian_module.Setting(e).setName("Select section heading").addDropdown((e=>{t=e,t.selectEl.style.width="100%"})),r=new obsidian_module.Setting(e).setName("Anchor to 100% of original size").setDesc("This is a pro feature, use it only if you understand how it works. If enabled even if you change the size of the imported image in Excalidraw, the next time you open the drawing this image will pop back to 100% size. This is useful when embedding an atomic Excalidraw idea into another note and preserving relative sizing of text and icons.").addToggle((e=>{e.setValue(s).onChange((e=>{s=e}))})),new obsidian_module.Setting(e).addButton((e=>{e.setButtonText("as iFrame").onClick((async()=>{const e=app.metadataCache.fileToLinktext(o,this.view.file.path,"md"===o.extension),A=getEA(this.view);A.selectElementsInView([await insertEmbeddableToView(A,this.center,void 0,`[[${e}${t.selectEl.value}]]`)]),this.close()})),i=e})).addButton((e=>{e.setButtonText("as Pdf").onClick((()=>{new InsertPDFModal(this.plugin,this.view).open(o),this.close()})),a=e})).addButton((e=>{e.setButtonText("as Image").onClick((async()=>{const e=getEA(this.view),A=o&&"md"===o.extension&&!e.isExcalidrawFile(o);e.selectElementsInView([await insertImageToView(e,this.center,A&&t.selectEl.value&&""!==t.selectEl.value?`${o.path}${t.selectEl.value}`:o,e.isExcalidrawFile(o)?!s:void 0)]),this.close()})),n=e})),this.view.ownerWindow.addEventListener("keydown",this.onKeyDown=e=>{const t=e=>"none"!==e.buttonEl.style.display;switch(e.key){case"Escape":return void this.close();case"Enter":return!t(i)||t(n)||t(a)?!t(n)||t(i)||t(a)?!t(a)||t(i)||t(n)?void 0:void a.buttonEl.click():void n.buttonEl.click():void i.buttonEl.click();case"i":return void(t(n)&&n.buttonEl.click());case"p":return void(t(a)&&a.buttonEl.click());case"f":return void(t(i)&&i.buttonEl.click())}}),c.inputEl.focus(),o&&(c.setValue(o.path),d.close()),l()}onClose(){this.view.ownerWindow.removeEventListener("keydown",this.onKeyDown)}}const setPen=(e,t)=>{const A=t.getAppState();t.updateScene({appState:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({currentStrokeOptions:e.penOptions},e.strokeWidth&&0!==e.strokeWidth?{currentItemStrokeWidth:e.strokeWidth}:null),e.backgroundColor?{currentItemBackgroundColor:e.backgroundColor}:null),e.strokeColor?{currentItemStrokeColor:e.strokeColor}:null),""===e.fillStyle?null:{currentItemFillStyle:e.fillStyle}),e.roughness?null:{currentItemRoughness:e.roughness}),e.freedrawOnly&&!A.resetCustomPen?{resetCustomPen:{currentItemStrokeWidth:A.currentItemStrokeWidth,currentItemBackgroundColor:A.currentItemBackgroundColor,currentItemStrokeColor:A.currentItemStrokeColor,currentItemFillStyle:A.currentItemFillStyle,currentItemRoughness:A.currentItemRoughness}}:null)})},resetStrokeOptions=(e,t,A)=>{t.updateScene({appState:Object.assign(Object.assign(Object.assign({},e?{currentItemStrokeWidth:e.currentItemStrokeWidth,currentItemBackgroundColor:e.currentItemBackgroundColor,currentItemStrokeColor:e.currentItemStrokeColor,currentItemFillStyle:e.currentItemFillStyle,currentItemRoughness:e.currentItemRoughness}:null),{resetCustomPen:null}),A?{currentStrokeOptions:null}:null)})};class ObsidianMenu{constructor(e,t,A){this.plugin=e,this.toolsRef=t,this.view=A,this.renderCustomPens=(e,t)=>{var A;return null===(A=t.customPens)||void 0===A?void 0:A.map(((A,i)=>{const n=this.plugin.settings.customPens[i];return t.resetCustomPen&&"freedraw"!==t.activeTool.type&&t.currentStrokeOptions===n.penOptions&&setTimeout((()=>resetStrokeOptions(t.resetCustomPen,this.view.excalidrawAPI,!1))),!t.resetCustomPen&&"freedraw"===t.activeTool.type&&t.currentStrokeOptions===n.penOptions&&n.freedrawOnly&&setTimeout((()=>setPen(this.activePen,this.view.excalidrawAPI))),this.activePen&&t.resetCustomPen&&"freedraw"===t.activeTool.type&&t.currentStrokeOptions===n.penOptions&&n.freedrawOnly&&(this.activePen.strokeWidth=t.currentItemStrokeWidth,this.activePen.backgroundColor=t.currentItemBackgroundColor,this.activePen.strokeColor=t.currentItemStrokeColor,this.activePen.fillStyle=t.currentItemFillStyle,this.activePen.roughness=t.currentItemRoughness),React__namespace.createElement("label",{key:i,className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onClick:()=>{const e=Date.now();if(e-this.clickTimestamp[i]<500){const e=new PenSettingsModal(this.plugin,this.view,i);return void(async()=>{await this.plugin.loadSettings(),e.open()})()}this.clickTimestamp[i]=e;const t=this.view.excalidrawAPI,A=t.getAppState();A.currentStrokeOptions!==n.penOptions||"freedraw"!==A.activeTool.type?(this.activePen=Object.assign({},n),setPen(n,t),t.setActiveTool({type:"freedraw"})):resetStrokeOptions(A.resetCustomPen,t,!0)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":n.type,style:Object.assign({},"freedraw"===t.activeTool.type&&t.currentStrokeOptions===n.penOptions?{background:"var(--color-primary)"}:{})},penIcon(n)))}))},this.longpressTimeout={},this.renderPinnedScriptButtons=(e,t)=>{var A;let i=0;return null===(A=null==t?void 0:t.pinnedScripts)||void 0===A?void 0:A.map(((t,A)=>{var n;const a=this.plugin.scriptEngine.scriptIconMap[t],r=null!==(n=null==a?void 0:a.name)&&void 0!==n?n:"",s=(null==a?void 0:a.svgString)?stringToSVG(a.svgString):ICONS.cog;return this.longpressTimeout[A]||(this.longpressTimeout[A]=0),React__namespace.createElement("label",{key:A,className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onPointerUp:()=>{this.longpressTimeout[A]&&(window.clearTimeout(this.longpressTimeout[A]),this.longpressTimeout[A]=0,(async()=>{const e=app.vault.getAbstractFileByPath(t);e&&e instanceof obsidian_module.TFile&&this.plugin.scriptEngine.executeScript(this.view,await app.vault.read(e),this.plugin.scriptEngine.getScriptName(e),e)})())},onPointerDown:()=>{const e=Date.now();this.longpressTimeout[A]>0&&(window.clearTimeout(this.longpressTimeout[A]),this.longpressTimeout[A]=0),e-i>=500&&(this.longpressTimeout[A]=window.setTimeout((()=>{this.longpressTimeout[A]=0,(async()=>{var e;await this.plugin.loadSettings();const A=this.plugin.settings.pinnedScripts.indexOf(t);A>-1&&(this.plugin.settings.pinnedScripts.splice(A,1),null===(e=this.view.excalidrawAPI)||void 0===e||e.setToast({message:`Pin removed: ${r}`,duration:3e3,closable:!0})),await this.plugin.saveSettings(),app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updatePinnedScripts()}))})()}),1500)),i=e}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":r},s))}))},this.renderButton=(e,t)=>React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement("label",{className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onClick:()=>{this.toolsRef.current.setTheme(t.theme),this.toolsRef.current.toggleVisibility(t.zenModeEnabled||e)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":t$d("OBSIDIAN_TOOLS_PANEL")},ICONS.obsidian)),React__namespace.createElement("label",{className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onClick:()=>{new UniversalInsertFileModal(this.plugin,this.view).open()}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":t$d("UNIVERSAL_ADD_FILE")},ICONS["add-file"])),this.renderCustomPens(e,t),this.renderPinnedScriptButtons(e,t)),this.clickTimestamp=Array.from({length:Object.keys(PENS).length},(()=>0))}}class ActionButton extends React__namespace.Component{constructor(e){super(e),this.toastMessageTimeout=0,this.longpressTimeout=0,this.state={visible:!0}}render(){return React__namespace.createElement("button",{style:{},className:"ToolIcon_type_button ToolIcon_size_small ToolIcon_type_button--show ToolIcon",title:this.props.title,onClick:e=>{this.toastMessageTimeout&&(window.clearTimeout(this.toastMessageTimeout),this.toastMessageTimeout=0,this.props.action(e)),this.longpressTimeout&&(window.clearTimeout(this.longpressTimeout),this.longpressTimeout=0)},onPointerDown:e=>{this.toastMessageTimeout=window.setTimeout((()=>{var e;null===(e=this.props.view.excalidrawAPI)||void 0===e||e.setToast({message:this.props.title,duration:3e3,closable:!0}),this.toastMessageTimeout=0}),400),this.longpressTimeout=window.setTimeout((()=>{var t;this.props.longpress?this.props.longpress(e):null===(t=this.props.view.excalidrawAPI)||void 0===t||t.setToast({message:"Cannot pin this action",duration:3e3,closable:!0}),this.longpressTimeout=0}),1500)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},this.props.icon))}}const FIRST_RUN='\nThe Excalidraw Obsidian plugin is much more than "just" a drawing tool. To help you get started here\'s a showcase of the key Excalidraw plugin features.\n\nIf you\'d like to learn more, please subscribe to my YouTube channel: [Visual PKM](https://www.youtube.com/channel/UCC0gns4a9fhVkGkngvSumAQ) where I regularly share videos about Obsidian-Excalidraw and about tools and techniques for Visual Personal Knowledge Management.\n\nThank you & Enjoy!\n\n
\n\n
\n',RELEASE_NOTES={Intro:'After each update you\'ll be prompted with the release notes. You can disable this in plugin settings.\n\nI develop this plugin as a hobby, spending my free time doing this. If you find it valuable, then please say THANK YOU or...\n\n
\n',"1.9.12":`\n## New\n- If you create a Text Element that includes only a transclusion e.g.: ${String.fromCharCode(96)}![[My Image.png]]${String.fromCharCode(96)} then excalidraw will automatically replace the transclusion with the embedded image.\n- New Excalidraw splash screen icon contributed by Felix Häberle. 😍\n\n
\n\n
\n\n## Fixed\n- Popout windows behaved inconsistently losing focus at the time when a markdown file was embedded. Hopefully, this is now working as intended.\n- A number of small fixes that will also improve the ExcaliBrain experience\n`,"1.9.11":"\n# New\n- I added 2 new command palette actions: 1) to toggle frame clipping and 2) to toggle frame rendering.\n\n# Updated\n- I released a minor update to the slideshow script. Frame sequence (Frame 1, 2, 3, ...) will now be displayed in proper order. Frames will be hidden during the presentation (this was there before, but there was a change to excalidraw.com that broke this feature of the slideshow script).\n\n# Fixed: \n- Excalidraw Automate error introduced with 1.9.10 - when elements are repositioned to cursor and no ExcalidrawView is active\n","1.9.10":'\n## New\n- @mazurov added a new script: [Ellipse Selected Elements](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Ellipse%20Selected%20Elements.md)\n\n## Fixed\n- **Image Saving Error**: Previously, inserting an image from Firebase Storage or other URLs could result in an error that prevented the entire drawing from being saved. I have now improved the error handling and image fetching from the web, ensuring smooth image insertion and saving. \n- **Text Search Bug**: There was an issue where text search failed when frames had default names like "Frame 1," "Frame 2," etc. This has been resolved, and now the text search works correctly in such cases. ([#1239](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1239)) \n- **Image Positioning Fix**: An annoying bug caused the image to jump after inserting it using the "Insert Image" command palette action. I\'ve fixed this issue, and now the image behaves as expected when positioning it for the first time.\n',"1.9.9":`\n## ⚠️⚠️ IMPORTANT: PLEASE READ ⚠️⚠️\n\nI updated embedded frames for compatibility with excalidraw.com. To ensure everything works smoothly:\n\n🔄 Update Excalidraw on all your devices.\n\nThis will avoid any issues with converted files and let you enjoy the new features seamlessly.\n\nThank you for your understanding. If you have any questions, feel free to reach out.\n\n---\n\n## Fixed:\n- PNG image caching resulting in broken images after Obsidian restarts\n- SVG export now displays embedded iframes with the correct embed link (note this feature only works when you open the SVGs in a browser outside Obsidian).\n\n## Updated / fixed in Excalidraw Automate\n- I updated ${String.fromCharCode(96)}lib/ExcalidrawAutomate.d.ts${String.fromCharCode(96)} and published a new version of obsidian-excalidraw-plugin type library to npmjs.\n- Added new ExcalidrawAutomate functions: ${String.fromCharCode(96)} addEmbeddable()${String.fromCharCode(96)}, ${String.fromCharCode(96)}DEVICE${String.fromCharCode(96)}, ${String.fromCharCode(96)}newFilePrompt()${String.fromCharCode(96)}, and ${String.fromCharCode(96)}getLeaf()${String.fromCharCode(96)}\n- ${String.fromCharCode(96)}addImage${String.fromCharCode(96)} and ${String.fromCharCode(96)}addElementsToView${String.fromCharCode(96)} were extended with 1-1 additional optional parameter. As a result of ${String.fromCharCode(96)}shouldRestoreElements${String.fromCharCode(96)} defaulting to false, all elements in the scene will no longer be updated (iframes will not blink) when you add elements via script.\n- There is a new event hook: ${String.fromCharCode(96)}onPasteHook${String.fromCharCode(96)}. This will be called whenever the user pastes something to the canvas. You can use this callback if you want to do something additional during the onPaste event. In case you want to prevent the Excalidraw default onPaste action you must return false\n\n${String.fromCharCode(96,96,96)}typescript\nasync addImage(\n topX: number,\n topY: number,\n imageFile: TFile | string,\n scale: boolean = true,\n anchor: boolean = true,\n): Promise;\n\nasync addElementsToView(\n repositionToCursor: boolean = false,\n save: boolean = true,\n newElementsOnTop: boolean = false,\n shouldRestoreElements: boolean = false,\n): Promise;\n\n onPasteHook: (data: {\n ea: ExcalidrawAutomate;\n payload: ClipboardData;\n event: ClipboardEvent;\n excalidrawFile: TFile;\n view: ExcalidrawView;\n pointerPosition: { x: number; y: number };\n }) => boolean = null;\n\naddEmbeddable(\n topX: number,\n topY: number,\n width: number,\n height: number,\n url?: string,\n file?: TFile\n): string;\n\nget DEVICE(): DeviceType;\n\nnewFilePrompt(\n newFileNameOrPath: string,\n shouldOpenNewFile: boolean,\n targetPane?: PaneTarget,\n parentFile?: TFile\n): Promise;\n\ngetLeaf(\n origo: WorkspaceLeaf,\n targetPane?: PaneTarget\n): WorkspaceLeaf;\n${String.fromCharCode(96,96,96)}\n`,"1.9.8":'\n## New Features\n- Zoom to heading and block in markdown frames.\n- Added an iframe menu that allows users to change heading/block zoom, center the element, and open it in the browser.\n- Replaced twitframe with platform.twitter for tweets. The "Read more" and "Reply" buttons now work. Embedded tweets will honor theme settings.\n\n## Bug Fixes\n- Fixed an issue where embedded markdown frames disappeared in fullscreen mode. [#1197](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1197)\n- Resolved a problem with the "Embed Markdown as Image" feature where changes to embed properties were not always honored. [#1201](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1201)\n- When inserting any file from the Vault and embedding a Markdown document as an image, the embed now correctly honors the section heading if specified. [#1200](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1200)\n- SVG and PNG autoexport now function properly when closing a popout window. [#1209](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1209)\n- Many other minor fixes\n',"1.9.7":`\n## Fixed:\n\n- Fixed an issue where using the color picker shortcut would cause the UI to disappear in mobile view mode.\n- You can now add YouTube playlists to iframes.\n- Fixed a bug where the "Add any file" dropdown suggester opened in the main Obsidian workspace instead of the popout window when Excalidraw was running. ([#1179](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1191))\n- Made some improvements to the logic of opening in the adjacent pane, although it is still not perfect.\n- Fixed an issue where Obsidian sync would result in the loss of the last approximately 20 seconds of work. Excalidraw's handling of sync is now fixed. ([#1189](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1189))\n\n## New:\n\n- Introducing Image Cache: Excalidraw will now cache rendered images embedded in Markdown documents, which will enhance the markdown rendering experience.\n- Backup Cache: Excalidraw now stores a backup on your device when saving, in case the application is terminated during a save operation. If you are using sync, you can find the latest backup on the device you last used to edit your drawing.\n- Added ${String.fromCharCode(96)}frame=${String.fromCharCode(96)} parameter to image references. ([#1194](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1194)) For more details about this feature, check out this [YouTube video](https://youtu.be/yZQoJg2RCKI).\n- When an SVG image from Draw.io is embedded in Excalidraw, clicking the image will open the file in the [Diagram plugin](https://github.com/zapthedingbat/drawio-obsidian) (if available).\n- Added the [Create DrawIO file](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Create%20DrawIO%20file.md) Excalidraw Automate Script to the library, which allows you to create a new draw.io drawing and add it to the current Excalidraw canvas.\n\n## New in ExcalidrawAutomate\n\n${String.fromCharCode(96,96,96)}typescript\nasync getAttachmentFilepath(filename: string): Promise\n${String.fromCharCode(96,96,96)}\n\nThis asynchronous function retrieves the filepath to a new file, taking into account the attachments preference settings in Obsidian. It creates the attachment folder if it doesn't already exist. The function returns the complete path to the file. If the provided filename already exists, the function will append '_[number]' before the extension to generate a unique filename.\n\n${String.fromCharCode(96,96,96)}typescript\ngetElementsInFrame(frameElement: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];\n${String.fromCharCode(96,96,96)}\n\nThis function returns the elements contained within a frame.\n`,"1.9.6":`\n## Fixed\n- help shortcuts are really hard to see [#1176](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1179)\n- link icons not visible on elements after 1.9.5 release (reported on Discord)\n- PDFs in iFrames will now respect the ${String.fromCharCode(96)}[[document.pdf#page=155]]${String.fromCharCode(96)} format\n- Keyboard shortcuts were not working properly on external drop. Check [updated keyboard map](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/excalidraw-modifiers.png)\n\nKeyboard map\n`,"1.9.5":`\n
\n\n
\n\n## New\n- IFrame support: insert documents from your Obsidian Vault and insert youtube, Vimeo, and generally any website from the internet\n- Frame support: use frames to group items on your board\n\n## New in ExcalidrawAutomate\n- selectElementsInView now also accepts a list of element IDs\n- new addIFrame function that accepts an Obsidian file or a URL string\n${String.fromCharCode(96,96,96)}typescript\nselectElementsInView(elements: ExcalidrawElement[] | string[]): void;\naddIFrame(topX: number, topY: number, width: number, height: number, url?: string, file?: TFile): string;\n${String.fromCharCode(96,96,96)}\n`,"1.9.3":'\n## New from Excalidraw.com\n- Eyedropper tool. The eyedropper is triggered with "i". If you hold the ALT key while clicking the color it will set the stroke color of the selected element, else the background color.\n- Flipping multiple elements\n- Improved stencil library rendering performance + the stencil library will remember the scroll position from the previous time it was open\n\n## Fixed\n- Replaced command palette and tab export SVG/PNG/Excalidraw actions with "export image" which will take the user to the export image dialog.\n',"1.9.2":`\n
\n\n
\n\n## New\n- Excalidraw.com Color Picker redesign [#6216](https://github.com/excalidraw/excalidraw/pull/6216)\n- Updated palette loader script in the script library\n- New ExcalidrawAutomate API to load Elements and AppState from another Excalidraw file.\n${String.fromCharCode(96,96,96)}typescript\nasync getSceneFromFile(file: TFile): Promise<{elements: ExcalidrawElement[]; appState: AppState;}>\n${String.fromCharCode(96,96,96)}\n`,"1.9.1":'\n## Updates from Excalidraw.com\n- "Unlock all elements" - new action available via the context menu [#5894](https://github.com/excalidraw/excalidraw/pull/5894)\n- Minor improvements to improve the speed [#6560](https://github.com/excalidraw/excalidraw/pull/6560)\n- Retain Seed on Shift Paste [#6509](https://github.com/excalidraw/excalidraw/pull/6509)\n\n## New/Fixed\n- Clicking on the link handle (top right corner) will open the link in the same window\n- CTRL/CMD click on a link will open the link in a new tab and will focus on the new tab\n- Linking to parts of images. In some cases clicking search results, links, or backlinks did not focus on the right element according to the link. Fixed.\n',"1.9.0":`\n
\n\n
\n\n## Fixed\n- Embedded images, markdowns, PDFs will load one by one, not in one go after a long wait\n\n## New\n- Embed PDF\n\n## New in ExcalidrawAutomate\n- onFileCreateHook: if set this hook is called whenever a new drawing is created using Excalidraw command palette menu actions. If the excalidraw file is created using Templater or other means, the trigger will not fire. [#1124](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1124)\n${String.fromCharCode(96,96,96)}typescript\n onFileCreateHook: (data: {\n ea: ExcalidrawAutomate;\n excalidrawFile: TFile; //the file being created\n view: ExcalidrawView;\n }) => Promise;\n ${String.fromCharCode(96,96,96)}\n`,"1.8.26":"\n## Fixed\n- Dynamic styling did not pick up correctly\n - the accent color with the default Obsidian theme\n - the drawing theme color with the out of the box, default new drawing (not using a template)\n- The Obsidian tools panel did not pick up user scripts when installing your very first script. A reload of Obsidian was required.\n","1.8.25":'\n
\n\n
\n\n## New & improved\n- Multi-link support\n- Updated [Scribble Helper](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Scribble%20Helper.md) script for better handwritten text support. \n - Add links to text elements\n - Creating wrapped text in transparent sticky notes\n - Add text to arrows and lines\n - Handwriting support on iOS via Scribble\n\n## Fixed\n - The long-standing issue of jumping text\n \n',"1.8.24":`\n## Updates from Excalidraw.com\n- fix: color picker keyboard handling not working\n- fix: center align text when bind to the container via context menu\n- fix: split "Edit selected shape" shortcut\n\n## Fixed\n- BUG: Area embed link of svg inside excalidraw embed entire svg instead of area [#1098](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1098)\n\n## New\n- I updated the [Scribble Helper](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Scribble%20Helper.md) script with tons of new features. I am still beta testing the script. I will release a demo video in the next few days.\n\n## New in Excalidraw Automate\n- I added many more configuration options for the scriptEngine utils.inputPrompt function. See [Scribble Helper](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Scribble%20Helper.md) for a demonstration of this new feature.\n${String.fromCharCode(96,96,96)}typescript\n public static async inputPrompt(\n view: ExcalidrawView,\n plugin: ExcalidrawPlugin,\n app: App,\n header: string,\n placeholder?: string,\n value?: string,\n buttons?: { caption: string; tooltip?:string; action: Function }[],\n lines?: number,\n displayEditorButtons?: boolean,\n customComponents?: (container: HTMLElement) => void\n )\n${String.fromCharCode(96,96,96)}`,"1.8.23":'\n## Fixes\n- Fixed palm rejection to prevent unwanted spikes when using the freedraw tool. ([#1065](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1065))\n- Fixed issue where images disappeared when zoomed in. ([#6417](https://github.com/excalidraw/excalidraw/pull/6417))\n- Autosave will now save the drawing when you change the theme from dark to light or vice versa. ([#1080](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1080))\n- Added padding to short LaTeX formulas to prevent cropping. ([#1053](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1053))\n\n## New Features\n- Added a new command palette action: Toggle to invert default binding behavior. This new feature allows you to switch between normal and inverted mode. In normal mode, arrows will bind to objects unless you hold the CTRL/CMD key while drawing the arrow or moving objects. In inverted mode, arrows will not bind to objects unless you hold the CTRL/CMD key while drawing the arrow or moving objects.\n- You can now set a template LaTeX formula in the plugin settings (under experimental features) to be used when creating a new LaTeX formula. ([#1090](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1090))\n- Redesigned the Image Export dialog. I hope dropdowns are now more intuitive than the toggles were.\n- Added the ability to export only the selected part of a drawing. See the Export dialog for more information.\n- Added a zigzag fill easter egg. See a demo of this feature [here](https://twitter.com/excalidraw/status/1645428942344445952?s=61&t=nivKLx2vgl6hdv2EbW4mZg).\n- Added a new expert function: recolor embedded Excalidraw and SVG images (not JPG, PNG, BMP, WEBP, GIF). See a demo of this feature here:\n\n
\n\n
\n',"1.8.22":`\n## Fixed\n- Styling of custom pen and script buttons in the side panel was inverted.\n- Minor tweaks to dynamic styling. [see this video to understand dynamic styling](https://youtu.be/fypDth_-8q0)\n\n## New\n- New scripts by @threethan:\n - [Auto Draw for Pen](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Auto%20Draw%20for%20Pen.md): Automatically switches between the select and draw tools, based on whether a pen is being used. Supports most pens including Apple Pencil.\n - [Hardware Eraser Support](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Hardware%20Eraser%20Support.md): Adds support for pen inversion, a.k.a. the hardware eraser on the back of your pen. Supports Windows based styluses. Does not suppoprt Apple Pencil or S-Pen.\n- Added separate buttons to support copying link, area or group references to objects on the drawing. [#1063](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1063). See [this video](https://youtu.be/yZQoJg2RCKI) for more details on how this works.\n- Hover preview will no longer trigger for image files (.png, .svg, .jpg, .gif, .webp, .bmp, .ico, .excalidraw)\n- Minor updates to the [Slideshow](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Slideshow.md) script. You can download the updated script from the Excalidraw script library. The slideshow will now correctly run also when initiated in a popout window. When the drawing is in a popout window, the slideshow will not be full screen, but will only occupy the popout window. If you run the slideshow from the main Obsidian workspace, it will be displayed in full-screen mode.\n- Updated the Icon Library script to now include image keywords under each of the images to allow searching for keywords (CTRL/CMD+F). I've uploaded the new script to [here](https://gist.github.com/zsviczian/33ff695d5b990de1ebe8b82e541c26ad). If you need further information watch this [video](https://youtu.be/_OEljzZ33H8)\n\n## New in ExcalidrawAutomate\n- ${String.fromCharCode(96)}addText${String.fromCharCode(96)} ${String.fromCharCode(96)}formatting${String.fromCharCode(96)} parameter now accepts ${String.fromCharCode(96)}boxStrokeColor${String.fromCharCode(96)} and ${String.fromCharCode(96)}textVerticalAlign${String.fromCharCode(96)} values.\n${String.fromCharCode(96,96,96)}typescript\naddText(\n topX: number,\n topY: number,\n text: string,\n formatting?: {\n wrapAt?: number;\n width?: number;\n height?: number;\n textAlign?: "left" | "center" | "right";\n box?: boolean | "box" | "blob" | "ellipse" | "diamond";\n boxPadding?: number;\n boxStrokeColor?: string;\n textVerticalAlign?: "top" | "middle" | "bottom";\n },\n id?: string,\n ): string;\n${String.fromCharCode(96,96,96)}\n- new ${String.fromCharCode(96)}onFileOpenHook${String.fromCharCode(96)}. If set, this callback is triggered, when an Excalidraw file is opened. You can use this callback in case you want to do something additional when the file is opened. This will run before the file level script defined in the ${String.fromCharCode(96)}excalidraw-onload-script${String.fromCharCode(96)} frontmatter is executed. Excalidraw will await the result of operations here. Handle with care. If you change data such as the frontmatter of the underlying file, I haven't tested how it will behave.\n${String.fromCharCode(96,96,96)}typescript\nonFileOpenHook: (data: {\n ea: ExcalidrawAutomate;\n excalidrawFile: TFile; //the file being loaded\n view: ExcalidrawView;\n}) => Promise;\n${String.fromCharCode(96,96,96)}`,"1.8.21":'\n## Quality of Life improvements\n- Dynamic Styling (see plugin settings / Display). When Dynamic Styling is enabled it fixes Excalidraw issues with the Minimal Theme\n- New "Invert Colors" script\n\n
\n\n
\n\n### Note\nThe few of you, that are using the Dynamic Styling Templater script, please remove it and restart Obsidian.\n',"1.8.20":"\n## Fixed\n- Excalidraw froze Obsidian in certain rare situations [#1054](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1054)\n- File loading error [#1062](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1062)\n- Embedded images in markdown documents no longer have the line on the side. Image sizing works better. [#1059](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1059)\n- Locked elements will not show a hover preview [#1060](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1060)\n- CTRL/CMD + K correctly triggers add link [#1056](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1056)\n\n## New\n- Grid color adjusts to the view background color\n\nI'm sorry, but the sticky note editing issue on Android with the on-screen keyboard has still not been resolved. If you also experience this error, please help raise the priority with the core Excalidraw team by commenting on this issue: [#6330](https://github.com/excalidraw/excalidraw/issues/6330)\n","1.8.19":"\n## Fixed: Text wrapping issue in sticky notes\n\nI fixed an issue where text would wrap differently and words would disappear during text editing in sticky notes. You can check out the details on [GitHub #6318](https://github.com/excalidraw/excalidraw/issues/6331).\n\nI am aware of three additional issues related to container text editing that are still open. I apologize for any inconvenience caused by the recent change in how text size is calculated on Excalidraw.com, which has had a knock-on effect on Obsidian. I am actively working to address the following issues:\n\n- Pinch zooming while editing text in a text container [GitHub #6331](https://github.com/excalidraw/excalidraw/issues/6331)\n- Container text jumps on edit on Android with on-screen keyboard [GitHub #6330](https://github.com/excalidraw/excalidraw/issues/6330)\n- Shadow text when editing text containers without a keyboard on iOS [GitHub #6329](https://github.com/excalidraw/excalidraw/issues/6329)\n\nThank you for your patience while I work on resolving these issues.\n","1.8.18":`\n## Fixed\n- Text scaling issue introduced in 1.8.17\n- [#1043](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1043): Error handling when ${String.fromCharCode(96)}onCanvasColorChangeHook${String.fromCharCode(96)} is executed. This is used in the [Dynamic Styling Script](https://youtu.be/LtR04fNTKTM). \n`,"1.8.17":'\n## New from Excalidraw.com\n- Improved text wrapping in the ellipse and diamond shapes [6172](https://github.com/excalidraw/excalidraw/pull/6172)\n\n## New\n- Updated slideshow script\n\n
\n\n
\n\n## Fixed: \n- "Save to..." in the Stencil Library menu now works as expected [#1032](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1032)\n',"1.8.16":'\n**!!! Modifier keys have changed, please review the table below !!!**\n[Click this to see the new shortcuts overview image](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/excalidraw-modifiers.png)\n\n## Fixed \n- This version was extensively tested and developed on MacOS to remove usability issues.\n- New command palette action to create a new drawing in a new tab\n- Modifier keys to open links in the active window, splitting the current view to the right, in a new tab, or in a popout window now behave consistently both in Excalidraw and when clicking a drawing that is embedded in a markdown note.\n- Drag & Drop properly works from within Obsidian, from a web browser, and from the OS file explorer\n\n
\n\n
\n',"1.8.14":"\n## Fixed\n- text element link gets deleted when the drawing is reloaded\n","1.8.13":'\n## Fixed\n- When changing a text element in markdown mode, the change seem to have showed up when switching back to Excalidraw mode, but then lost these changes when loading the file the next time.\n- Scrolling through a page that has embedded drawings on Obsidian Mobile accidently opens the drawing in Excalidraw when touching the image. Now you need to press and hold to open the image in Excalidraw. [#1003](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1003)\n- The scrollbar is no longer visible when presenting using the SlideShow script\n- Stroke properties could not be changed when custom pen settings had "Stroke & fill applies to: All shapes". It works now.\n\n## QoL\n- Custom pens will remember the stroke changes until you press the pen preset button again.\n - This is a bit hard to explain, let me try... Essentially, when you use a custom pen, it will keep the changes you made to the pen (like changing the stroke width) until you press the pen-prereset button again. So, for example, if you\'re using a mind mapping custom pen and change its color, and then switch to a different tool like text, when you switch back to the freedraw tool using the Excalidraw tools panel, the pen will still have the same color you set earlier, but if you press the mind mapping pen-preset button, it will default back to your custom pen settings including your preset color.\n- Added new buttons to load current stroke color and background color in the pen settings dialog. Also added an edit box so you can configure any valid color string (including with transparency) for pen stroke and background colors. [#991](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/991)\n',"1.8.11":'\n
\n\n
\n\n# New\n- Support for referencing images from the internet in Excalidraw drawings, including YouTube thumbnail support. [#913](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/913)\n - Link to images on the internet without creating a copy in your Vault by holding down the CTRL key while dropping the link or image.\n - Automatic conversion of image URLs and YouTube links into image elements with original links added as a link on the element when pasting. Note, that if you only want to paste the plain text link (not the image), first double-click the canvas to start a new text element, then paste the link.\n- Two new options added to plugin settings:\n - Make mouse wheel zoom by default [#474](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/474)\n - Allow pinch zoom in pen mode [#828](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/828)\n- Update to the [Set Grid](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Set%20Grid.svg) script now saves the grid setting for the current file.\n',"1.8.10":'\n
\n\n
\n\n# QoL improvements\n- You can structure icons in the Obsidian tools panel by moving scripts to folders\n![image|300](https://user-images.githubusercontent.com/14358394/212389592-306130d0-209a-49df-99bb-c538f2155b23.png)\n- I added useful actions to the hamburger menu in both tray-mode and normal-mode. \n![image|150](https://user-images.githubusercontent.com/14358394/212534508-9107fd19-27ab-4415-8abc-bc97c73afc0b.png)\n- I added a new Export Image dialog. You can access the new export screen from the hamburger-menu\n![image|200](https://user-images.githubusercontent.com/14358394/212534654-7a479e23-8d5d-452e-9a18-a9896278aa27.png)\n- Links in help now point to Obsidian-Excalidraw relevant content.\n- I added a welcome screen\n![image|150](https://user-images.githubusercontent.com/14358394/212534568-3cd1e8a1-5b20-4a30-96e4-40d7dac57e33.png)\n- I updated the alternative dark mode / dynamic styling [script](https://gist.github.com/zsviczian/c7223c5b4af30d5c88a0cae05300305c)\n',"1.8.9":"\n# Minor QoL improvements\n- When you open a second drawing in the same Excalidraw view (i.e. by navigating a link) and make a change to this drawing, and then press UNDO, the entire drawing disappeared. Redo brought the image back, however, this behavior was frustrating. Not anymore...\n- On iPad\n - when you open the command palette, autozoom resized the drawing. If the Obsidian command palette or some other modal window is shown Excalidraw will not resize the view.\n - when you add a link to the drawing using the Command Palette, sometimes the link was added in a far corner of the drawing outside the current view area. This should be fixed now.","1.8.8":`\n
\n\n
\n\n# New\n- The plugin now includes support for [Perfect Freehand](https://perfect-freehand-example.vercel.app/) pen-options. I've also added a new [Alternative Pens](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Alternative%20Pens.md) script.\n- Embed scene in exported PNG and SVG images [#860](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/860). This means that the export will be a normal PNG or SVG image with the added functionality that if someone loads the image into excalidraw.com it will open as a normal excalidraw file.\n - I've added 2 new Command Palette actions (export PNG, export SVG with embedded scene).\n - If you SHIFT click ${String.fromCharCode(96)} Save as PNG (or SVG)${String.fromCharCode(96)} in the workspace-tab menu, Excalidraw will embed the scene in the export.\n- I updated the [Organic Line](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Organic%20Line.md) script. It has an improved thick-to-thin look and a new thin-to-thick-to-thin line type.\n\n# Fixed\n- Intelligent image width setting [#955](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/955). Before this change, when the embedded image was small, the image would be extended to meet the image width setting in plugin settings. From now on, if the image is smaller than max-width, it will only extend to max-width. You can still set 100% width using custom CSS. See more on that [here](https://github.com/zsviczian/obsidian-excalidraw-plugin#embedded-images).\n\n# New in ExcalidrawAutomate\n- I added the ${String.fromCharCode(96)} plaintext${String.fromCharCode(96)} parameter to ${String.fromCharCode(96)}ExcalidrawAutomate.create${String.fromCharCode(96)} . Using this, you can add some text below the frontmatter but above the ${String.fromCharCode(96)}# Text Elements${String.fromCharCode(96)} section. Use this for example to add metadata to your file. (e.g. I use this in my Daily Quote template to add a Dataview field for the ${String.fromCharCode(96)}Author::${String.fromCharCode(96)} and add the quote with a standard block reference, so I can easily reference it in other files. I also add the ${String.fromCharCode(96)}#quote${String.fromCharCode(96)} tag to the file using this.)\n- The script running in the ScriptEngine now also receives the ${String.fromCharCode(96)}TFile${String.fromCharCode(96)} object for the script itself. You can access this object during execution via the ${String.fromCharCode(96)}utils.scriptFile${String.fromCharCode(96)} variable. \n`,"1.8.7":'\n## New from Excalidraw.com\n- Support shrinking text containers to their original height when text is removed [#6025](https://github.com/excalidraw/excalidraw/pull/6025)\n
\n\n
\n\n## Fixed\n- removed the white background when editing arrow-label [#6033](https://github.com/excalidraw/excalidraw/pull/6033)\n- Minor style tweaks\n - for embedding Excalidraw into Obsidian Canvas. e.g. dragging no longer accidentally creates an image copy of the drawing, and\n - style tweaks on the Excalidraw canvas\n\n## New\n- If you set a different text color and sticky note border color, now if you change the border color, the text color will not be changed.\n',"1.8.6":`\n## New from Excalidraw.com:\n- Better default radius for rectangles [#5553](https://github.com/excalidraw/excalidraw/pull/5553). Existing drawings will look unchanged, this applies only to new rectangles.\n![image|200](https://user-images.githubusercontent.com/5153846/206264345-59fd7436-e87b-4bc9-ade8-9e6f6a6fd8c1.png)\n> [!attention]- ExcalidrawAutomate technical details\n> - ${String.fromCharCode(96)}strokeSharpness${String.fromCharCode(96)} is now deprecated\n> - use roundness instead\n> - ${String.fromCharCode(96)}roundness === null${String.fromCharCode(96)} is legacy ${String.fromCharCode(96)}strokeSharpness = "sharp"${String.fromCharCode(96)}\n> - ${String.fromCharCode(96)}roundness = { type: RoundnessType; value?: number }${String.fromCharCode(96)}\n> - type: 1, LEGACY, type:2 PROPORTIONAL_RADIUS, type:3 ADAPTIVE_RADIUS: 3\n> - value:\n> - Radius represented as % of element's largest side (width/height).\n> DEFAULT_PROPORTIONAL_RADIUS = 0.25;\n> - Fixed radius for the ADAPTIVE_RADIUS algorithm. In pixels.\n> DEFAULT_ADAPTIVE_RADIUS = 32;\n\n## New\n- For Obsidian 1.1.6 and above\n - Improved embedding into Obsidian Canvas\n - Improved embedding into Markdown documents\n- Added setting under ${String.fromCharCode(96)}Display/Default mode when opening Excalidraw${String.fromCharCode(96)} to always open the drawing in view mode on Mobile, but in normal mode on desktop. [#939](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/939)\n\n## Fixed\n- Zoom reset tooltip appears twice [#942](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/942)\n- Hid export library from library menu as it does not work due to Obsidian limitations. Use the command palette export library instead.\n- Arrow with label did not get exported and embedded correctly [#941](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/941)\n![image|200](https://user-images.githubusercontent.com/22638687/207845868-b352ddb1-7994-4f13-a0b2-f2e19bd72935.png)\n`,"1.8.4":'\n## New from Excalidraw.com\n- Labels on Arrows!!! [#5723](https://github.com/excalidraw/excalidraw/pull/5723)\n - To add a label press "Enter" or "Double click" on the arrow\n - Use "Cmd/Ctrl+double click" to enter the line editor\n\n
\n\n
\n\n## New\n- **Changed behavior**: In the Obsidian markdown editor clicking an Excalidraw image will not open the image (to avoid accidentally opening the image on a tablet). To open a drawing for editing in Excalidraw double click or long-tap on it. [#920](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/920)\n\n## Fixed \n- Text stroke color is not honored when pasting a HEX color string to an Excalidraw canvas open in an Obsidian popout window [#921](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/921)\n- The new [multi-line >> multi-element paste behavior](https://github.com/excalidraw/excalidraw/pull/5786) introduced in the previous release did not work as expected in Obsidian. Now it does.\n',"1.8.2":`\nIntroducing the [Excalidraw Slideshow Script](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Slideshow.md) - available in the script store\n
\n\n
\n\n## Fixed\n- Obsidian tools panel gets misplaced after switching Obsidian workspace tabs\n\n## New in ExcalidrawAutomate\n- changed ${String.fromCharCode(96)}viewToggleFullScreen(forceViewMode: boolean = false): void${String.fromCharCode(96)}: the function will toggle view mode on when going to full screen and view mode off when terminating full screen.\n- new functions\n${String.fromCharCode(96,96,96)}typescript\nsetViewModeEnabled(enabled: boolean):void;\nviewUpdateScene(\n scene: {\n elements?: ExcalidrawElement[];\n appState?: AppState;\n files?: BinaryFileData;\n commitToHistory?: boolean;\n },\n restore: boolean = false,\n ):void;\nviewZoomToElements(\n selectElements: boolean,\n elements: ExcalidrawElement[]\n ):void;\n${String.fromCharCode(96,96,96)}\n\n`,"1.8.1":`\n## New and fixes from Excalidraw.com\n- New text paste behavior. Pasting multiline text will generate separate text elements unless you hold down the shift button while pasting [#5786](https://github.com/excalidraw/excalidraw/pull/5786)\n- line editor fixes [#5927](https://github.com/excalidraw/excalidraw/pull/5927)\n\n## Fixed\n- The Command Palette "Insert link" action now inserts the new link at the top drawing layer, not at the bottom.\n- Updated, hopefully, better organized, Plugin Readme.\n\n## New\n- Second attempt at moving to React 18. This upgrade is required to maintain alignment with the core Excalidraw product and to continue to benefit from Excalidraw.com enhancements.\n- Added options to Plugin Settings\n - to disable autozoom when loading a drawing for the first time [#907](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/907)\n - to modify autosave interval. You can now set an autosave interval for desktop and for mobile [#888](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/888)\n\n## New in ExcalidrawAutomate\n- Published the obsidian_module on the ExcalidrawAutomate object. ${String.fromCharCode(96)}ExcalidrawAutomate.obsidian${String.fromCharCode(96)}. Publishing this object will give script developers increased flexibility and control over script automation.\n`,"1.8.0":'\n
\n\n
\n\n## New\n- Optical Character Recognition (OCR). Introducing the MVP (minimum viable product) release of the integration of [Taskbone](https://taskbone.com) OCR into Excalidraw. See the new scan button on the Obsidian tools panel.\n- New and improved full-screen mode\n - Activate using the Obsidian tools panel, the Obsidian Command Palette, or the Alt+F11 shortcut\n - The ESC key no longer closes full-screen\n - Full-screen mode works properly on iOS as well\n- Improved Icon visibility on the Obsidian tools panel\n- Added 3 additional buttons to the tools panel\n - Force save\n - Open link (useful on Mobile devices). In the case of LaTeX equations, the button opens the equation properties.\n - Open the link in a new pane. In the case of embedded markdown documents, the button opens the embed properties.\n\n## Fixed\n- The [deconstruct selected elements into a new drawing](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Deconstruct%20selected%20elements%20into%20new%20drawing.md) script now also correctly decomposes transcluded text elements.\n',"1.7.30":"\nFix:\n- Forcing the embedded image to always scale to 100% (a feature introduced in [1.7.26](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.7.26)) scaled the embedded excalidraw drawings incorrectly on devices with a pixel ratio of 2 or 3 (e.g. iPads). This is now fixed, however, this fix might retrospectively impact drawings that use this feature. Sorry for that.\n","1.7.29":"\n- This is a big update that accommodates the **UI redesign** on Excalidraw.com [#5780](https://github.com/excalidraw/excalidraw/pull/5780). The change on the surface may seem superficial, however, I had to tweak a number of things to make it work in Obsidian. I hope I found everything that broke and fixed it, if not, I'll try to fix it quickly...\n- This update also comes with changes under the hood that **fix issues with Excalidraw Automate** - paving the way for further scripts, plus some smaller bug fixes.\n- I **reworked text wrapping**. In some cases, text wrapping in SVG exports looked different compared to how the text looked in Excalidraw. This should now be fixed.\n- If you are using the **Experimental Dynamic Styling** of the Excalidraw Toolbar, then I recommend updating your styling script following base on [this](https://gist.github.com/zsviczian/c7223c5b4af30d5c88a0cae05300305c)\n","1.7.27":'## New\n- Import SVG drawing as an Excalidraw object. [#679](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/679)\n\n
\n\n
\n\n## Fixed\n- Large drawings freeze on the iPad when opening the file. I implemented a workaround whereby Excalidraw will avoid zoom-to-fit drawings with over 1000 elements. [#863](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/863)\n- Reintroduced copy/paste to the context menu\n',"1.7.26":'## Fixed\n- Transcluded block with a parent bullet does not embed sub-bullet [#853](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/853)\n- Transcluded text will now exclude ^block-references at end of lines\n- Phantom duplicates of the drawing appear when "zoom to fit" results in a zoom value below 10% and there are many objects on the canvas [#850](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/850)\n- CTRL+Wheel will increase/decrease zoom in steps of 5% matching the behavior of the "+" & "-" zoom buttons.\n- Latest updates from Excalidarw.com\n - Freedraw flip not scaling correctly [#5752](https://github.com/excalidraw/excalidraw/pull/5752)\n - Multiple elements resizing regressions [#5586](https://github.com/excalidraw/excalidraw/pull/5586)\n\n## New - power user features\n- Force the embedded image to always scale to 100%. Note: this is a very niche feature with a very particular behavior that I built primarily for myself (even more so than other features in Excalidraw Obsidian - also built primarily for myself 😉)... This will reset your embedded image to 100% size every time you open the Excalidraw drawing, or in case you have embedded an Excalidraw drawing on your canvas inserted using this function, every time you update the embedded drawing, it will be scaled back to 100% size. This means that even if you resize the image on the drawing, it will reset to 100% the next time you open the file or you modify the original embedded object. This feature is useful when you decompose a drawing into separate Excalidraw files, but when combined onto a single canvas you want the individual pieces to maintain their actual sizes. I use this feature to construct Book-on-a-Page summaries from atomic drawings.\n- I added an action to the command palette to temporarily disable/enable Excalidraw autosave. When autosave is disabled, Excalidraw will still save your drawing when changing to another Obsidian window, but it will not save every 10 seconds. On a mobile device (but also on a desktop) this can lead to data loss if you terminate Obsidian abruptly (i.e. swipe the application away, or close Obsidian without first closing the drawing). Use this feature if you find Excalidraw laggy.'};class ReleaseNotes extends obsidian_module.Modal{constructor(e,t,A){super(e),this.plugin=t,this.version=A}onOpen(){var e;this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText(`Welcome to Excalidraw ${null!==(e=this.version)&&void 0!==e?e:""}`),this.createForm()}async onClose(){this.contentEl.empty(),await this.plugin.loadSettings(),this.plugin.settings.previousRelease=PLUGIN_VERSION,await this.plugin.saveSettings()}async createForm(){let e=this.plugin.settings.previousRelease;e=this.version===e?"0.0.0":e;const t=this.version?Object.keys(RELEASE_NOTES).filter((t=>"Intro"===t||isVersionNewerThanOther(t,e))).map((e=>`${"Intro"===e?"":`# ${e}\n`}${RELEASE_NOTES[e]}`)).slice(0,10).join("\n\n---\n"):FIRST_RUN;await obsidian_module.MarkdownRenderer.renderMarkdown(t,this.contentEl,"",this.plugin),this.contentEl.createEl("p",{text:""},(e=>{e.style.textAlign="right",e.createEl("button",{text:"Close"}).onclick=()=>this.close()}))}}class ExportDialog extends obsidian_module.Modal{constructor(e,t,A){super(app),this.plugin=e,this.view=t,this.file=A,this.dirty=!1,this.hasSelectedElements=!1,this.ea=getEA(this.view),this.api=this.ea.getExcalidrawAPI(),this.padding=getExportPadding(this.plugin,this.file),this.scale=getPNGScale(this.plugin,this.file),this.theme=getExportTheme(this.plugin,this.file,this.api.getAppState().theme),this.boundingBox=this.ea.getBoundingBox(this.ea.getViewElements()),this.embedScene=!1,this.exportSelectedOnly=!1,this.saveToVault=!0,this.transparent=!getWithBackground(this.plugin,this.file),this.saveSettings=!1}onOpen(){this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText("Export Image"),this.hasSelectedElements=this.view.getViewSelectedElements().length>0,this.selectedOnlySetting.setVisibility(this.hasSelectedElements)}async onClose(){this.dirty=this.saveSettings}async createForm(){let e,t;this.contentEl.createEl("h1",{text:"Image settings"}),this.contentEl.createEl("p",{text:"Transparency only affects PNGs. Excalidraw files can only be exported outside the Vault. PNGs copied to clipboard may not include the scene."});const A=()=>{const e=Math.round(this.scale*this.boundingBox.width+2*this.padding),t=Math.round(this.scale*this.boundingBox.height+2*this.padding);return fragWithHTML(`The lager the scale, the larger the image.
Scale: ${this.scale}
Image size: ${e}x${t}`)},i=()=>fragWithHTML(`Current image padding is ${this.padding}`);t=new obsidian_module.Setting(this.contentEl).setName("Image padding").setDesc(i()).addSlider((n=>{n.setLimits(0,50,1).setValue(this.padding).onChange((n=>{this.padding=n,e.setDesc(A()),t.setDesc(i())}))})),e=new obsidian_module.Setting(this.contentEl).setName("PNG Scale").setDesc(A()).addSlider((t=>t.setLimits(.5,5,.5).setValue(this.scale).onChange((t=>{this.scale=t,e.setDesc(A())})))),new obsidian_module.Setting(this.contentEl).setName("Export theme").addDropdown((e=>e.addOption("light","Light").addOption("dark","Dark").setValue(this.theme).onChange((e=>{this.theme=e})))),new obsidian_module.Setting(this.contentEl).setName("Background color").addDropdown((e=>e.addOption("transparent","Transparent").addOption("with-color","Use scene background color").setValue(this.transparent?"transparent":"with-color").onChange((e=>{this.transparent="transparent"===e})))),new obsidian_module.Setting(this.contentEl).setName("Save or one-time settings?").addDropdown((e=>e.addOption("save","Save these settings as the preset for this image").addOption("one-time","These are one-time settings").setValue(this.saveSettings?"save":"one-time").onChange((e=>{this.saveSettings="save"===e})))),this.contentEl.createEl("h1",{text:"Export settings"}),new obsidian_module.Setting(this.contentEl).setName("Embed the Excalidraw scene in the exported file?").addDropdown((e=>e.addOption("embed","Embed scene").addOption("no-embed","Do not embed scene").setValue(this.embedScene?"embed":"no-embed").onChange((e=>{this.embedScene="embed"===e})))),DEVICE.isDesktop&&new obsidian_module.Setting(this.contentEl).setName("Where to save the image?").addDropdown((e=>e.addOption("vault","Save image to your Vault").addOption("outside","Export image outside your Vault").setValue(this.saveToVault?"vault":"outside").onChange((e=>{this.saveToVault="vault"===e})))),this.selectedOnlySetting=new obsidian_module.Setting(this.contentEl).setName("Export entire scene or just selected elements?").addDropdown((e=>e.addOption("all","Export entire scene").addOption("selected","Export selected elements").setValue(this.exportSelectedOnly?"selected":"all").onChange((e=>{this.exportSelectedOnly="selected"===e}))));const n=this.contentEl.createDiv({cls:"excalidraw-prompt-buttons-div"});n.createEl("button",{text:"PNG to File",cls:"excalidraw-prompt-button"}).onclick=()=>{this.saveToVault?this.view.savePNG(this.view.getScene(this.hasSelectedElements&&this.exportSelectedOnly)):this.view.exportPNG(this.embedScene,this.hasSelectedElements&&this.exportSelectedOnly),this.close()},n.createEl("button",{text:"SVG to File",cls:"excalidraw-prompt-button"}).onclick=()=>{this.saveToVault?this.view.saveSVG(this.view.getScene(this.hasSelectedElements&&this.exportSelectedOnly)):this.view.exportSVG(this.embedScene,this.hasSelectedElements&&this.exportSelectedOnly),this.close()},n.createEl("button",{text:"Excalidraw",cls:"excalidraw-prompt-button"}).onclick=()=>{this.view.exportExcalidraw(this.hasSelectedElements&&this.exportSelectedOnly),this.close()},DEVICE.isDesktop&&(n.createEl("button",{text:"PNG to Clipboard",cls:"excalidraw-prompt-button"}).onclick=()=>{this.view.exportPNGToClipboard(this.embedScene,this.hasSelectedElements&&this.exportSelectedOnly),this.close()})}}const TOOLS_PANEL_WIDTH=228;class ToolsPanel extends React__namespace.Component{constructor(e){super(e),this.pos1=0,this.pos2=0,this.pos3=0,this.pos4=0,this.penDownX=0,this.penDownY=0,this.previousWidth=0,this.previousHeight=0,this.onRightEdge=!1,this.onBottomEdge=!1;const t=e.view.plugin.getPackage(e.view.ownerWindow).react;this.containerRef=t.createRef(),this.state={visible:e.visible,top:50,left:200,theme:"dark",excalidrawViewMode:!1,minimized:!1,isDirty:!1,isFullscreen:!1,isPreviewMode:!0,scriptIconMap:{}}}updateScriptIconMap(e){this.setState((()=>({scriptIconMap:e})))}setPreviewMode(e){this.setState((()=>({isPreviewMode:e})))}setFullscreen(e){this.setState((()=>({isFullscreen:e})))}setDirty(e){this.setState((()=>({isDirty:e})))}setExcalidrawViewMode(e){this.setState((()=>({excalidrawViewMode:e})))}toggleVisibility(e){this.setTopCenter(e),this.setState((e=>({visible:!e.visible})))}setTheme(e){this.setState((t=>({theme:e})))}setTopCenter(e){this.setState((()=>({left:(this.containerRef.current.clientWidth-228-(e?0:232))/2+this.containerRef.current.parentElement.offsetLeft+(e?0:232),top:64+this.containerRef.current.parentElement.offsetTop})))}updatePosition(e=0,t=0){this.setState((()=>{const{offsetTop:A,offsetLeft:i,clientWidth:n,clientHeight:a}=this.containerRef.current.firstElementChild,r=A-e,s=i-t,{clientWidth:o,clientHeight:l,offsetTop:c,offsetLeft:d}=this.containerRef.current.parentElement;return this.previousHeight=l,this.previousWidth=o,this.onBottomEdge=r>=l-a+c,this.onRightEdge=s>=o-n+d,{top:r{e.preventDefault(),Math.abs(this.penDownX-this.pos3)>5||Math.abs(this.penDownY-this.pos4)>5||this.setState((e=>({minimized:!e.minimized})))},onPointerDown:e=>{const t=e=>{e.preventDefault(),this.pos1=this.pos3-e.clientX,this.pos2=this.pos4-e.clientY,this.pos3=e.clientX,this.pos4=e.clientY,this.updatePosition(this.pos2,this.pos1)},A=()=>{var e,i;null===(e=this.props.view.ownerDocument)||void 0===e||e.removeEventListener("pointerup",A),null===(i=this.props.view.ownerDocument)||void 0===i||i.removeEventListener("pointermove",t)};e.preventDefault(),this.penDownX=this.pos3=e.clientX,this.penDownY=this.pos4=e.clientY,this.props.view.ownerDocument.addEventListener("pointerup",A),this.props.view.ownerDocument.addEventListener("pointermove",t)}},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 228 26"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M40,7 h148 M40,13 h148 M40,19 h148"}))),React__namespace.createElement("div",{className:"Island App-menu__left scrollbar",style:{maxHeight:"350px",width:"initial","--padding":2,display:this.state.minimized?"none":"block"}},React__namespace.createElement("div",{className:"panelColumn"},React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Utility actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"scriptEngine",title:t$d("INSTALL_SCRIPT_BUTTON"),action:()=>{new ScriptInstallPrompt(this.props.view.plugin).open()},icon:ICONS.scriptEngine,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"release-notes",title:t$d("READ_RELEASE_NOTES"),action:()=>{new ReleaseNotes(this.props.view.app,this.props.view.plugin,PLUGIN_VERSION).open()},icon:ICONS.releaseNotes,view:this.props.view}),null===this.state.isPreviewMode?React__namespace.createElement(ActionButton,{key:"convert",title:t$d("CONVERT_FILE"),action:()=>{this.props.view.convertExcalidrawToMD()},icon:ICONS.convertFile,view:this.props.view}):React__namespace.createElement(ActionButton,{key:"viewmode",title:this.state.isPreviewMode?t$d("PARSED"):t$d("RAW"),action:()=>{this.state.isPreviewMode?this.props.view.changeTextMode(TextMode.raw):this.props.view.changeTextMode(TextMode.parsed)},icon:this.state.isPreviewMode?ICONS.rawMode:ICONS.parsedMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"tray-mode",title:t$d("TRAY_MODE"),action:()=>{this.props.view.toggleTrayMode()},icon:ICONS.trayMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"fullscreen",title:this.state.isFullscreen?t$d("EXIT_FULLSCREEN"):t$d("GOTO_FULLSCREEN"),action:()=>{this.state.isFullscreen?this.props.view.exitFullscreen():this.props.view.gotoFullscreen()},icon:this.state.isFullscreen?ICONS.exitFullScreen:ICONS.gotoFullScreen,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"search",title:t$d("SEARCH"),action:()=>{search(this.props.view)},icon:ICONS.search,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"ocr",title:t$d("RUN_OCR"),action:e=>{this.props.view.plugin.settings.taskboneEnabled?this.props.view.plugin.taskbone.getTextForView(this.props.view,isCTRL(e)):new obsidian_module.Notice("Taskbone OCR is not enabled. Please go to plugins settings to enable it.",4e3)},icon:ICONS.ocr,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"openLink",title:t$d("OPEN_LINK_CLICK"),action:e=>{const t=new MouseEvent("click",{ctrlKey:e.ctrlKey||!(DEVICE.isIOS||DEVICE.isMacOS),metaKey:e.metaKey||DEVICE.isIOS||DEVICE.isMacOS,shiftKey:e.shiftKey,altKey:e.altKey});this.props.view.handleLinkClick(t)},icon:ICONS.openLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"openLinkProperties",title:t$d("OPEN_LINK_PROPS"),action:()=>{const e=new MouseEvent("click",{ctrlKey:!0,metaKey:!0,shiftKey:!1,altKey:!1});this.props.view.handleLinkClick(e)},icon:ICONS.openLinkProperties,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"save",title:t$d("FORCE_SAVE"),action:()=>{this.props.view.forceSave()},icon:saveIcon(this.state.isDirty),view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Export actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"lib",title:t$d("DOWNLOAD_LIBRARY"),action:()=>{this.props.view.plugin.exportLibrary()},icon:ICONS.exportLibrary,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"exportIMG",title:t$d("EXPORT_IMAGE"),action:()=>{const e=this.props.view;e.exportDialog||(e.exportDialog=new ExportDialog(e.plugin,e,e.file),e.exportDialog.createForm()),e.exportDialog.open()},icon:ICONS.ExportImage,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"md",title:t$d("OPEN_AS_MD"),action:()=>{this.props.view.openAsMarkdown()},icon:ICONS.switchToMarkdown,view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Insert actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"image",title:t$d("INSERT_IMAGE"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertImageDialog.start(this.props.view)},icon:ICONS.insertImage,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"pdf",title:t$d("INSERT_PDF"),action:()=>{this.props.centerPointer(),new InsertPDFModal(this.props.view.plugin,this.props.view).open()},icon:ICONS.insertPDF,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"insertMD",title:t$d("INSERT_MD"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertMDDialog.start(this.props.view)},icon:ICONS.insertMD,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"latex",title:t$d("INSERT_LATEX"),action:e=>{isALT(e)?this.props.view.openExternalLink("https://youtu.be/r08wk-58DPk"):(this.props.centerPointer(),insertLaTeXToView(this.props.view))},icon:ICONS.insertLaTeX,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link",title:t$d("INSERT_LINK"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertLinkDialog.start(this.props.view.file.path,this.props.view.addText)},icon:ICONS.insertLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link-to-element",title:t$d("INSERT_LINK_TO_ELEMENT"),action:e=>{isALT(e)?this.props.view.openExternalLink("https://youtu.be/yZQoJg2RCKI"):this.props.view.copyLinkToSelectedElementToClipboard(isCTRL(e)?"group=":isSHIFT(e)?"area=":"")},icon:ICONS.copyElementLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"import-svg",title:t$d("IMPORT_SVG"),action:e=>{this.props.view.plugin.importSVGDialog.start(this.props.view)},icon:ICONS.importSVG,view:this.props.view}))),this.renderScriptButtons(!1),this.renderScriptButtons(!0)))))}renderScriptButtons(e){if(0===Object.keys(this.state.scriptIconMap).length)return"";const t=`${this.props.view.plugin.settings.scriptFolderPath}/Downloaded/`,A=A=>e?A.startsWith(t):!A.startsWith(t);if(0===Object.keys(this.state.scriptIconMap).filter((e=>A(e))).length)return"";const i=new Set;Object.keys(this.state.scriptIconMap).filter((e=>A(e))).forEach((e=>i.add(this.state.scriptIconMap[e].group)));const n=Array.from(i).sort(((e,t)=>e>t?1:-1));return n.push(n.shift()),React__namespace.createElement(React__namespace.Fragment,null,n.map(((t,A)=>React__namespace.createElement("fieldset",{key:`${t}-${A}`},React__namespace.createElement("legend",null,e?t:""===t?"User":"User/"+t),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},Object.entries(this.state.scriptIconMap).filter((([e,A])=>A.group===t)).sort().map((([e,t])=>React__namespace.createElement(ActionButton,{key:e,title:t.name,action:async()=>{const t=this.props.view,A=t.plugin,i=app.vault.getAbstractFileByPath(e);i&&i instanceof obsidian_module.TFile&&A.scriptEngine.executeScript(t,await app.vault.read(i),A.scriptEngine.getScriptName(i),i)},longpress:async()=>{const A=this.props.view,i=A.excalidrawAPI,n=A.plugin;await n.loadSettings();const a=n.settings.pinnedScripts.indexOf(e);a>-1?(n.settings.pinnedScripts.splice(a,1),null==i||i.setToast({message:`Pin removed: ${t.name}`,duration:3e3,closable:!0})):(n.settings.pinnedScripts.push(e),null==i||i.setToast({message:`Pinned: ${t.name}`,duration:3e3,closable:!0})),await n.saveSettings(),app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updatePinnedScripts()}))},icon:t.svgString?stringToSVG(t.svgString):ICONS.cog,view:this.props.view}))))))))}}const getElementsAtPointer=(e,t,A)=>t.filter((t=>{if(A&&t.type!==A)return!1;if(t.locked)return!1;const[i,n,a,r]=rotatedDimensions(t);return i<=e.x&&i+a>=e.x&&n<=e.y&&n+r>=e.y})),getTextElementAtPointer=(e,t)=>{const A=t.excalidrawAPI;if(!A)return{id:null,text:null};const i=getElementsAtPointer(e,A.getSceneElements(),"text");if(0==i.length)return{id:null,text:null};if(1===i.length)return{id:i[0].id,text:i[0].text};const n=i.filter((e=>{const A=t.textMode===TextMode.parsed?t.excalidrawData.getRawText(e.id):e.text;return!!A&&(!!A.match(REG_LINKINDEX_HYPERLINK)||!!REGEX_LINK.getRes(A).next().value)}));return 0==n.length?{id:i[0].id,text:i[0].text}:{id:n[0].id,text:n[0].text}},getImageElementAtPointer=(e,t)=>{const A=t.excalidrawAPI;if(!A)return;const i=getElementsAtPointer(e,A.getSceneElements(),"image");return 0===i.length?{id:null,fileId:null}:i.length>=1?{id:i[0].id,fileId:i[0].fileId}:void 0},getElementWithLinkAtPointer=(e,t)=>{const A=t.excalidrawAPI;if(!A)return;const i=getElementsAtPointer(e,A.getSceneElements()).filter((e=>e.link));return 0===i.length?{id:null,text:null}:i.length>=1?{id:i[0].id,text:i[0].link}:void 0},setDynamicStyle=(e,t,A,i)=>{var n,a,r,s,o,l,c,d,h,u,g,p,m,w;if("none"===i){null===(n=t.excalidrawContainer)||void 0===n||n.removeAttribute("style"),setTimeout((()=>t.updateScene({appState:{dynamicStyle:""}})));const e=null===(s=null===(r=null===(a=t.toolsPanelRef)||void 0===a?void 0:a.current)||void 0===r?void 0:r.containerRef)||void 0===s?void 0:s.current;if(e){let t=e.getAttribute("style");t=t.replace(/\-\-color\-primary.*/,""),e.setAttribute("style",t)}return}t.ownerDocument;const f="light"===(null===(c=null===(l=null===(o=null==t?void 0:t.excalidrawAPI)||void 0===o?void 0:o.getAppState)||void 0===l?void 0:l.call(o))||void 0===c?void 0:c.theme)||"light"===(null===(u=null===(h=null===(d=null==t?void 0:t.excalidrawData)||void 0===d?void 0:d.scene)||void 0===h?void 0:h.appState)||void 0===u?void 0:u.theme),E=()=>f?e.getCM(A):(t=>{const A=e.getCM(t),i=A.lightness;return A.lightnessTo(Math.abs(i-100))})(A),B=E().lightness,b=E().isDark(),v=app.getAccentColor(),C=()=>e.getCM(v),y=()=>e.getCM("#000000").lightnessTo(B),F="gray"===i,x=F?b?y().lighterBy(15):y().darkerBy(15):b?E().lighterBy(15).mix({color:y(),ratio:.6}):E().darkerBy(15).mix({color:y(),ratio:.6}),T=F?b?y().lighterBy(5):y().darkerBy(5):b?E().lighterBy(5).mix({color:y(),ratio:.6}):E().darkerBy(5).mix({color:y(),ratio:.6}),S=E().mix({color:b?"#f0f0f0":"#101010",ratio:.8}),I=e=>e.stringHEX({alpha:!1}),M=`--color-primary: ${I(C())};--color-primary-darker: ${I(C().darkerBy(10))};--color-primary-darkest: ${I(C().darkerBy(10))};--button-gray-1: ${I(x)};--button-gray-2: ${I(T)};--input-border-color: ${I(x)};--input-bg-color: ${I(T)};--input-label-color: ${I(S)};--island-bg-color: ${T.alphaTo(.93).stringHEX()};--popup-secondary-bg-color: ${T.alphaTo(.93).stringHEX()};--icon-fill-color: ${I(S)};--text-primary-color: ${I(S)};--overlay-bg-color: ${T.alphaTo(.6).stringHEX()};--popup-bg-color: ${I(x)};--color-gray-100: ${I(S)};--color-gray-40: ${I(S)};--color-gray-30: ${I(x)};--color-gray-80: ${I(x)};--sidebar-border-color: ${I(x)};--color-primary-light: ${I(C().lighterBy(10))};--button-hover-bg: ${I(x)};--sidebar-bg-color: ${T.alphaTo(.93).stringHEX()};--sidebar-shadow: ${I(x)};--popup-text-color: ${I(S)};--code-normal: ${I(S)};--code-background: ${I(T)};--h1-color: ${I(S)};--h2-color: ${I(S)};--h3-color: ${I(S)};--h4-color: ${I(S)};color: ${I(S)};--select-highlight-color: ${I(x)};`;null===(g=t.excalidrawContainer)||void 0===g||g.setAttribute("style",M),setTimeout((()=>t.updateScene({appState:{dynamicStyle:M}})));const k=null===(w=null===(m=null===(p=t.toolsPanelRef)||void 0===p?void 0:p.current)||void 0===m?void 0:m.containerRef)||void 0===w?void 0:w.current;if(k){let e=k.getAttribute("style");e=e.replace(/\-\-color\-primary.*/,""),k.setAttribute("style",e+M)}},renderWebView=(e,t,A,i)=>DEVICE.isDesktop?React__namespace.createElement("webview",{ref:e=>t.updateEmbeddableRef(A,e),className:"excalidraw__embeddable",title:"Excalidraw Embedded Content",allowFullScreen:!0,src:e,style:{overflow:"hidden",borderRadius:"var(--embeddable-radius)"}}):React__namespace.createElement("iframe",{ref:e=>t.updateEmbeddableRef(A,e),className:"excalidraw__embeddable",title:"Excalidraw Embedded Content",allowFullScreen:!0,allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",src:e,style:{overflow:"hidden",borderRadius:"var(--embeddable-radius)"}});function RenderObsidianView({element:e,linkText:t,view:A,containerRef:i,appState:n,theme:a}){var r,s,o;const{subpath:l,file:c}=processLinkText(t,A);if(!c)return null;const d=A.plugin.getPackage(A.ownerWindow).react,h=d.useRef(null),u=d.useRef(!1),g=d.useRef(!1),p=d.useCallback((e=>{g.current&&e.stopPropagation()}),[g.current]);d.useEffect((()=>{if(null==i?void 0:i.current)return KEYBOARD_EVENT_TYPES.forEach((e=>i.current.addEventListener(e,p))),i.current.addEventListener("click",m),()=>{(null==i?void 0:i.current)&&(KEYBOARD_EVENT_TYPES.forEach((e=>i.current.removeEventListener(e,p))),EXTENDED_EVENT_TYPES.forEach((e=>i.current.removeEventListener(e,p))),i.current.removeEventListener("click",m))}}),[]),d.useEffect((()=>{if(EXTENDED_EVENT_TYPES.forEach((e=>i.current.removeEventListener(e,p))),null==i?void 0:i.current)return g.current&&EXTENDED_EVENT_TYPES.forEach((e=>i.current.addEventListener(e,p))),()=>{(null==i?void 0:i.current)&&EXTENDED_EVENT_TYPES.forEach((e=>i.current.removeEventListener(e,p)))}}),[g.current,i.current]),d.useEffect((()=>{if(!(null==i?void 0:i.current))return;for(;i.current.hasChildNodes();)i.current.removeChild(i.current.lastChild);const t=A.ownerDocument,n=new obsidian_module.WorkspaceSplit(app.workspace,"vertical");n.getRoot=()=>app.workspace[t===document?"rootSplit":"floatingSplit"],n.getContainer=()=>getContainerForDocument(t),n.containerEl.style.width="100%",n.containerEl.style.height="100%",n.containerEl.style.borderRadius="var(--embeddable-radius)",h.current={leaf:app.workspace.createLeafInParent(n,0),node:null};const a=()=>{app.workspace.activeLeaf===A.leaf&&DEVICE.isDesktop&&(A.ownerWindow.electronWindow.isAlwaysOnTop()||(A.ownerWindow.electronWindow.setAlwaysOnTop(!0),setTimeout((()=>{A.ownerWindow.electronWindow.setAlwaysOnTop(!1)}),500)))};return l&&A.canvasNodeFactory.isInitialized()?(a(),h.current.node=A.canvasNodeFactory.createFileNote(c,l,i.current,e.id)):(async()=>{var t,r;await h.current.leaf.openFile(c,Object.assign({active:!1,state:{mode:"preview"}},l?{eState:{subpath:l}}:{}));const s=null===(t=h.current.leaf.view)||void 0===t?void 0:t.getViewType();if("canvas"===s&&(null===(r=h.current.leaf.view.canvas)||void 0===r||r.setReadonly(!0)),"markdown"===s&&A.canvasNodeFactory.isInitialized())a(),await h.current.leaf.setViewState({state:{file:null}}),h.current.node=A.canvasNodeFactory.createFileNote(c,l,i.current,e.id);else{const e=n.containerEl.querySelector("div.workspace-leaf");e&&(e.style.borderRadius="var(--embeddable-radius)"),i.current.appendChild(n.containerEl)}patchMobileView(A)})(),()=>{}}),[t,l,i]),d.useEffect((()=>{var e;u.current&&((null===(e=h.current)||void 0===e?void 0:e.node)&&A.canvasNodeFactory.stopEditing(h.current.node),u.current=!1)}),[u.current,h]);const m=d.useCallback((t=>{var i,n,r;if(g.current&&t.stopPropagation(),g.current&&!u.current&&(null===(i=h.current)||void 0===i?void 0:i.leaf))if("markdown"===(null===(n=h.current.leaf.view)||void 0===n?void 0:n.getViewType())){const t=A.excalidrawAPI.getSceneElements().filter((t=>t.id===e.id))[0];if(!t||0!==t.angle)return void new obsidian_module.Notice("Sorry, cannot edit rotated markdown documents");const i=h.current.leaf.view.modes;if(!i)return;h.current.leaf.view.setMode(i.source),u.current=!0,patchMobileView(A)}else(null===(r=h.current)||void 0===r?void 0:r.node)&&A.canvasNodeFactory.startEditing(h.current.node,a)}),[null===(r=h.current)||void 0===r?void 0:r.leaf,e.id]);return d.useEffect((()=>{var t,a,r,s,o;if(!(null==i?void 0:i.current)||!(null==h?void 0:h.current))return;const l=g.current;if(g.current=(null===(t=n.activeEmbeddable)||void 0===t?void 0:t.element.id)===e.id&&"active"===(null===(a=n.activeEmbeddable)||void 0===a?void 0:a.state),l!==g.current)if("markdown"===(null===(s=null===(r=h.current.leaf)||void 0===r?void 0:r.view)||void 0===s?void 0:s.getViewType())){const e=h.current.leaf.view.modes;if(!e)return;if(!g.current)return h.current.leaf.view.setMode(e.preview),void(u.current=!1)}else(null===(o=h.current)||void 0===o?void 0:o.node)&&A.canvasNodeFactory.stopEditing(h.current.node)}),[i,h,g,null===(s=n.activeEmbeddable)||void 0===s?void 0:s.element,null===(o=n.activeEmbeddable)||void 0===o?void 0:o.state,e,A,t,l,c,a,u,A.canvasNodeFactory]),null}const CustomEmbeddable=({element:e,view:t,appState:A,linkText:i})=>{const n=t.plugin.getPackage(t.ownerWindow).react.useRef(null),a="dark"===t.excalidrawData.embeddableTheme?"theme-dark":"light"===t.excalidrawData.embeddableTheme?"theme-light":"auto"===t.excalidrawData.embeddableTheme?"dark"===A.theme?"theme-dark":"theme-light":isObsidianThemeDark()?"theme-dark":"theme-light";return React__namespace.createElement("div",{ref:n,style:{width:"100%",height:"100%",borderRadius:"var(--embeddable-radius)",color:"var(--text-normal)"},className:a},React__namespace.createElement(RenderObsidianView,{element:e,linkText:i,view:t,containerRef:n,appState:A,theme:a}))},DB_NAME="Excalidraw "+app.appId,CACHE_STORE="imageCache",BACKUP_STORE="drawingBAK",getKey=e=>`${e.filepath}#${e.blockref}#${e.sectionref}#${e.isDark?1:0}#${e.isSVG?1:0}#${e.scale}`;class ImageCache{constructor(e,t,A){this.initializationNotice=!1,this.obsidanURLCache=new Map,this.dbName=e,this.cacheStoreName=t,this.backupStoreName=A,this.db=null,this.isInitializing=!1,this.plugin=null,app.workspace.onLayoutReady((()=>this.initializeDB()))}async initializeDB(){if(!this.isInitializing&&null===this.db){this.isInitializing=!0;try{const e=indexedDB.open(this.dbName);if(e.onupgradeneeded=e=>{const t=e.target.result;t.objectStoreNames.contains(this.cacheStoreName)||t.createObjectStore(this.cacheStoreName),t.objectStoreNames.contains(this.backupStoreName)||t.createObjectStore(this.backupStoreName)},this.db=await new Promise(((t,A)=>{e.onsuccess=e=>{const A=e.target.result;t(A)},e.onerror=()=>{A(new Error(`Failed to open or create IndexedDB database: ${this.dbName}`))}})),!this.db.objectStoreNames.contains(this.cacheStoreName)||!this.db.objectStoreNames.contains(this.backupStoreName)){const e=this.db.version+1;this.db.close();const t=indexedDB.open(this.dbName,e);t.onupgradeneeded=e=>{const t=e.target.result;t.objectStoreNames.contains(this.cacheStoreName)||t.createObjectStore(this.cacheStoreName),t.objectStoreNames.contains(this.backupStoreName)||t.createObjectStore(this.backupStoreName)},await new Promise(((e,A)=>{t.onsuccess=()=>{t.result.close(),e()},t.onerror=()=>{A(new Error(`Failed to upgrade IndexedDB database: ${this.dbName}`))}})),this.db=await new Promise(((e,t)=>{const A=indexedDB.open(this.dbName);A.onsuccess=()=>{const t=A.result;e(t)},A.onerror=()=>{t(new Error(`Failed to open IndexedDB database: ${this.dbName}`))}}))}await this.purgeInvalidCacheFiles(),await this.purgeInvalidBackupFiles()}finally{this.isInitializing=!1,this.initializationNotice&&(new obsidian_module.Notice("Excalidraw Image Cache is Initialized - You may now retry opening your damaged drawing."),this.initializationNotice=!1),console.log("Initialized Excalidraw Image Cache")}}}async purgeInvalidCacheFiles(){const e=this.db.transaction(this.cacheStoreName,"readwrite").objectStore(this.cacheStoreName),t=app.vault.getFiles(),A=[],i=e.openCursor();return new Promise(((n,a)=>{i.onsuccess=i=>{const r=i.target.result;if(r){const i=r.key,n=i.split("#")[0],a=t.some((e=>e.path===n)),s=a?t.find((e=>e.path===n)):null;(!s||s&&s.stat.mtime>r.value.mtime||!r.value.blob)&&A.push(new Promise(((t,A)=>{const n=e.delete(r.primaryKey);n.onsuccess=()=>t(),n.onerror=()=>A(new Error(`Failed to delete file with key: ${i}`))}))),r.continue()}else Promise.all(A).then((()=>n())).catch((e=>a(e)))},i.onerror=()=>{a(new Error("Failed to purge invalid files from IndexedDB."))}}))}async purgeInvalidBackupFiles(){const e=this.db.transaction(this.backupStoreName,"readwrite").objectStore(this.backupStoreName),t=app.vault.getFiles(),A=[],i=e.openCursor();return new Promise(((n,a)=>{i.onsuccess=i=>{const r=i.target.result;if(r){const i=r.key,n=t.some((e=>e.path===i));n||A.push(new Promise(((t,A)=>{const n=e.delete(r.primaryKey);n.onsuccess=()=>t(),n.onerror=()=>A(new Error(`Failed to delete backup file with key: ${i}`))}))),r.continue()}else Promise.all(A).then((()=>n())).catch((e=>a(e)))},i.onerror=()=>{a(new Error("Failed to purge invalid backup files from IndexedDB."))}}))}async getObjectStore(e,t){return this.db.transaction(t,e).objectStore(t)}async getCacheData(e){const t=(await this.getObjectStore("readonly",this.cacheStoreName)).get(e);return new Promise(((e,A)=>{t.onsuccess=()=>{const A=t.result;e(A||null)},t.onerror=()=>{A(new Error("Failed to retrieve data from IndexedDB."))}}))}async getBackupData(e){const t=(await this.getObjectStore("readonly",this.backupStoreName)).get(e);return new Promise(((e,A)=>{t.onsuccess=()=>{const A=t.result;e(A||null)},t.onerror=()=>{A(new Error("Failed to retrieve backup data from IndexedDB."))}}))}isReady(){return!!this.db&&!this.isInitializing&&!!this.plugin&&this.plugin.settings.allowImageCache}async getImageFromCache(e){if(!this.isReady())return null;const t=getKey(e),A=await this.getCacheData(t),i=app.vault.getAbstractFileByPath(e.filepath.split("#")[0]);if(i&&i instanceof obsidian_module.TFile&&A&&A.mtime===i.stat.mtime){if(this.obsidanURLCache.has(t))return this.obsidanURLCache.get(t);const e=URL.createObjectURL(A.blob);return this.obsidanURLCache.set(t,e),e}}async getBAKFromCache(e){return this.isReady()?this.getBackupData(e):null}addImageToCache(e,t,A){if(!this.isReady())return;const i=app.vault.getAbstractFileByPath(e.filepath.split("#")[0]);if(!(i&&i instanceof obsidian_module.TFile))return;const n={mtime:i.stat.mtime,blob:A},a=this.db.transaction(this.cacheStoreName,"readwrite").objectStore(this.cacheStoreName),r=getKey(e);a.put(n,r),this.obsidanURLCache.set(r,t)}async addBAKToCache(e,t){this.isReady()&&this.db.transaction(this.backupStoreName,"readwrite").objectStore(this.backupStoreName).put(t,e)}async clearImageCache(){if(this.isReady())return this.clear(this.cacheStoreName,"Image cache was cleared")}async clearBackupCache(){if(this.isReady())return this.clear(this.backupStoreName,"All backups were cleared")}async clear(e,t){if(!this.isReady())return;const A=this.db.transaction([e],"readwrite").objectStore(e);return new Promise(((i,n)=>{const a=A.clear();a.onsuccess=()=>{new obsidian_module.Notice(t),i()},a.onerror=()=>n(new Error(`Failed to clear ${e}.`))}))}}const imageCache=new ImageCache(DB_NAME,CACHE_STORE,"drawingBAK");class CanvasNodeFactory{constructor(e){this.view=e,this.nodes=new Map,this.initialized=!1,this.isInitialized=()=>this.initialized}async initialize(){const e=app.internalPlugins.plugins.canvas;e._loaded||await e.load();const t=this.view.ownerDocument,A=new obsidian_module.WorkspaceSplit(app.workspace,"vertical");A.getRoot=()=>app.workspace[t===document?"rootSplit":"floatingSplit"],A.getContainer=()=>getContainerForDocument(t),this.leaf=app.workspace.createLeafInParent(A,0),this.canvas=e.views.canvas(this.leaf).canvas,this.initialized=!0}createFileNote(e,t,A,i){if(!this.initialized)return;t=null!=t?t:"",this.nodes.has(i)&&(this.canvas.removeNode(this.nodes.get(i)),this.nodes.delete(i));const n=this.canvas.createFileNode({pos:{x:0,y:0},file:e,subpath:t,save:!1});return n.setFilePath(e.path,t),n.render(),A.style.background="var(--background-primary)",A.appendChild(n.contentEl),this.nodes.set(i,n),n}startEditing(e,t){if(!this.initialized||!e)return;e.startEditing();const A=isObsidianThemeDark()?"theme-dark":"theme-light";A!==t&&(async()=>{var i,n,a,r,s,o;let l=0;for(;!(null===(a=null===(n=null===(i=e.child.editor)||void 0===i?void 0:i.containerEl)||void 0===n?void 0:n.parentElement)||void 0===a?void 0:a.parentElement)&&l++<100;)await sleep(25);(null===(o=null===(s=null===(r=e.child.editor)||void 0===r?void 0:r.containerEl)||void 0===s?void 0:s.parentElement)||void 0===o?void 0:o.parentElement)&&(e.child.editor.containerEl.parentElement.parentElement.classList.remove(A),e.child.editor.containerEl.parentElement.parentElement.classList.add(t),new MutationObserver((e=>{for(const i of e)if("attributes"===i.type&&"class"===i.attributeName){const e=i.target;e.classList.contains(A)&&(e.classList.remove(A),e.classList.add(t))}})).observe(e.child.editor.containerEl.parentElement.parentElement,{attributes:!0}))})()}stopEditing(e){this.initialized&&e&&e.child.editMode&&e.child.showPreview()}purgeNodes(){this.initialized&&(this.nodes.forEach((e=>{this.canvas.removeNode(e)})),this.nodes.clear())}}class EmbeddableMenu{constructor(e,t){this.view=e,this.containerRef=t,this.updateElement=(e,t,A)=>{if(!t)return;const i=this.view,n=`[[${app.metadataCache.fileToLinktext(A,i.file.path,"md"===A.extension)}${e}]]`;mutateElement(t,{link:n}),i.excalidrawData.elementLinks.set(t.id,n),i.setDirty(99),i.updateScene({appState:{activeEmbeddable:null}})},this.menuFadeTimeout=0,this.menuElementId=null}handleMouseEnter(){var e;clearTimeout(this.menuFadeTimeout),null===(e=this.containerRef.current)||void 0===e||e.style.setProperty("opacity","1")}handleMouseLeave(){const e=this;this.menuFadeTimeout=window.setTimeout((()=>{var t;null===(t=e.containerRef.current)||void 0===t||t.style.setProperty("opacity","0.2")}),5e3)}renderButtons(e){var t,A;const i=this.view,n=null==i?void 0:i.excalidrawAPI;if(!n)return null;if(!e.activeEmbeddable||"active"!==e.activeEmbeddable.state||e.viewModeEnabled)return this.menuElementId=null,this.menuFadeTimeout&&(clearTimeout(this.menuFadeTimeout),this.menuFadeTimeout=0),null;const a=null===(t=e.activeEmbeddable)||void 0===t?void 0:t.element;this.menuElementId!==a.id&&(this.menuElementId=a.id,this.handleMouseLeave());let r=a.link;if(!r)return null;const s=useDefaultExcalidrawFrame(a);let o=null===(A=a.link)||void 0===A?void 0:A.match(REG_LINKINDEX_HYPERLINK);if(!s&&!o){const t=REGEX_LINK.getRes(a.link).next();if(!t||!t.value&&t.done)return null;if(r=REGEX_LINK.getLink(t),o=r.match(REG_LINKINDEX_HYPERLINK),!o){const{subpath:t,file:A}=processLinkText(r,i);if(!A||"md"!==A.extension)return null;const{x:s,y:o}=sceneCoordsToViewportCoords({sceneX:a.x,sceneY:a.y},e),l=o-2.5*ROOTELEMENTSIZE-e.offsetTop+"px",c=s-e.offsetLeft+"px";return React__namespace.createElement("div",{ref:this.containerRef,className:"embeddable-menu",style:{top:l,left:c,opacity:1},onMouseEnter:()=>this.handleMouseEnter(),onPointerDown:()=>this.handleMouseEnter(),onMouseLeave:()=>this.handleMouseLeave()},React__namespace.createElement("div",{className:"Island",style:{position:"relative"}},React__namespace.createElement(ActionButton,{key:"MarkdownSection",title:t$d("NARROW_TO_HEADING"),action:async()=>{const e=(await app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},A)).blocks.filter((e=>{var t;return e.display&&"heading"===(null===(t=e.node)||void 0===t?void 0:t.type)})),i=[""].concat(e.map((e=>`#${e.display.replaceAll(REG_BLOCK_REF_CLEAN,"").trim()}`))),n=[t$d("SHOW_ENTIRE_FILE")].concat(e.map((e=>e.display))),r=await ScriptEngine.suggester(app,n,i,"Select section from document");(r||""===r)&&r!==t&&this.updateElement(r,a,A)},icon:ICONS.ZoomToSection,view:i}),React__namespace.createElement(ActionButton,{key:"MarkdownBlock",title:t$d("NARROW_TO_BLOCK"),action:async()=>{var e,i,n;if(!A)return;const r=(await app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},A)).blocks.filter((e=>{var t;return e.display&&"paragraph"===(null===(t=e.node)||void 0===t?void 0:t.type)})),s=["entire-file"].concat(r),o=[t$d("SHOW_ENTIRE_FILE")].concat(r.map((e=>{var t;return`${(null===(t=e.node)||void 0===t?void 0:t.id)?`#^${e.node.id}: `:""}${e.display.trim()}`}))),l=await ScriptEngine.suggester(app,o,s,"Select section from document");if(!l)return;if("entire-file"===l){if(""===t)return;return void this.updateElement("",a,A)}let c=l.node.id;if(!c||`#^${c}`!==t){if(!c){const t=null===(n=null===(i=null===(e=l.node)||void 0===e?void 0:e.position)||void 0===i?void 0:i.end)||void 0===n?void 0:n.offset;if(!t)return;c=nanoid();const a=await app.vault.cachedRead(A);if(!a)return;await app.vault.modify(A,a.slice(0,t)+` ^${c}`+a.slice(t)),await sleep(200)}this.updateElement(`#^${c}`,a,A)}},icon:ICONS.ZoomToBlock,view:i}),React__namespace.createElement(ActionButton,{key:"ZoomToElement",title:t$d("ZOOM_TO_FIT"),action:()=>{a&&n.zoomToFit([a],i.plugin.settings.zoomToFitMaxLevel,.1)},icon:ICONS.ZoomToSelectedElement,view:i})))}}if(o||s){const t=s?n.getHTMLIFrameElement(a.id):i.getEmbeddableElementById(a.id);if(!t||!t.contentWindow)return null;const{x:A,y:o}=sceneCoordsToViewportCoords({sceneX:a.x,sceneY:a.y},e),l=o-2.5*ROOTELEMENTSIZE-e.offsetTop+"px",c=A-e.offsetLeft+"px";return React__namespace.createElement("div",{ref:this.containerRef,className:"embeddable-menu",style:{top:l,left:c,opacity:1},onMouseEnter:()=>this.handleMouseEnter(),onPointerDown:()=>this.handleMouseEnter(),onMouseLeave:()=>this.handleMouseLeave()},React__namespace.createElement("div",{className:"Island",style:{position:"relative"}},t.src!==r&&!t.src.startsWith("https://www.youtube.com")&&!t.src.startsWith("https://player.vimeo.com")&&React__namespace.createElement(ActionButton,{key:"Reload",title:t$d("RELOAD"),action:()=>{t.src=r},icon:ICONS.Reload,view:i}),React__namespace.createElement(ActionButton,{key:"Open",title:t$d("OPEN_IN_BROWSER"),action:()=>{i.openExternalLink(t.src)},icon:ICONS.Globe,view:i}),React__namespace.createElement(ActionButton,{key:"ZoomToElement",title:t$d("ZOOM_TO_FIT"),action:()=>{a&&n.zoomToFit([a],i.plugin.settings.zoomToFitMaxLevel,.1)},icon:ICONS.ZoomToSelectedElement,view:i})))}}}var TextMode;!function(e){e.parsed="parsed",e.raw="raw"}(TextMode||(TextMode={}));const HIDE="excalidraw-hidden",SHOW="excalidraw-visible",addFiles=async(e,t,A)=>{if(!e||0===e.length||!t)return;const i=t.excalidrawAPI;if(!i)return;if(e=e.filter((e=>e&&e.size&&e.size.height>0&&e.size.width>0)),0===e.length)return;const n=scaleLoadedImage(t.getScene(),e);void 0===A&&(A=n.scene.appState.theme),n.dirty&&t.updateScene({elements:n.scene.elements,appState:n.scene.appState,commitToHistory:!1});for(const i of e)if(t.excalidrawData.hasFile(i.id)&&t.excalidrawData.getFile(i.id).setImage(i.dataURL,i.mimeType,i.size,A,i.hasSVGwithBitmap),t.excalidrawData.hasEquation(i.id)){const e=t.excalidrawData.getEquation(i.id).latex;t.excalidrawData.setEquation(i.id,{latex:e,isLoaded:!0})}i.addFiles(e)},warningUnknowSeriousError=()=>{new obsidian_module.Notice("WARNING: Excalidraw ran into an unknown problem!\n\nThere is a risk that your most recent changes cannot be saved.\n\nTo be on the safe side...\n1) Please select your drawing using CTRL/CMD+A and make a copy with CTRL/CMD+C.\n2) Then create an empty drawing in a new pane by CTRL/CMD+clicking the Excalidraw ribbon button,\n3) and paste your work to the new document with CTRL/CMD+V.",6e4)};class ExcalidrawView extends obsidian_module.TextFileView{constructor(e,t){super(e),this.getScene=null,this.addElements=null,this.getSelectedTextElement=null,this.getSelectedImageElement=null,this.getSelectedElementWithLink=null,this.addText=null,this.refresh=null,this.excalidrawRef=null,this.excalidrawAPI=null,this.excalidrawWrapperRef=null,this.toolsPanelRef=null,this.embeddableMenuRef=null,this.linksAlwaysOpenInANewPane=!1,this.lastSaveTimestamp=0,this.lastLoadedFile=null,this.modifierKeyDown={shiftKey:!1,metaKey:!1,ctrlKey:!1,altKey:!1},this.currentPosition={x:0,y:0},this.embeddableRefs=new Map,this.semaphores={popoutUnload:!1,viewunload:!1,scriptsReady:!1,justLoaded:!1,preventAutozoom:!1,autosaving:!1,dirty:null,preventReload:!1,isEditingText:!1,saving:!1,forceSaving:!1,hoverSleep:!1,wheelTimeout:null},this.autosaveTimer=null,this.textMode=TextMode.raw,this.compatibilityMode=!1,this.isEditingTextResetTimer=null,this.id=this.leaf.id,this.getHookServer=()=>{var e;return null!==(e=this.hookServer)&&void 0!==e?e:this.plugin.ea},this.preventReloadResetTimer=null,this.hiddenMobileLeaves=[],this.offsetLeft=0,this.offsetTop=0,this.blockTextModeChange=!1,this.isLoaded=!1,this.activeLoader=null,this.nextLoader=null,this.initialContainerSizeUpdate=!1,this.previousSceneVersion=0,this.previousBackgroundColor="",this.previousTheme="",this.colorChangeTimer=null,this.plugin=t,this.excalidrawData=new ExcalidrawData(t),this.hookServer=t.ea,this.canvasNodeFactory=new CanvasNodeFactory(this)}setHookServer(e){this.hookServer=e||this.plugin.ea}preventAutozoom(){this.semaphores.preventAutozoom=!0,setTimeout((()=>this.semaphores.preventAutozoom=!1),1500)}saveExcalidraw(e){if(!e){if(!this.getScene)return!1;e=this.getScene()}const t=`${this.file.path.substring(0,this.file.path.lastIndexOf(".md"))}.excalidraw`,A=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(t));A&&A instanceof obsidian_module.TFile?app.vault.modify(A,JSON.stringify(e,null,"\t")):app.vault.create(t,JSON.stringify(e,null,"\t"))}async exportExcalidraw(e){this.getScene&&this.file&&(app.isMobile?new Prompt(app,"Please provide filename",this.file.basename,"filename, leave blank to cancel action").openAndGetValue((async e=>{if(!e)return;e=`${e}.excalidraw`;const t=splitFolderAndFilename(this.file.path).folderpath;await checkAndCreateFolder(t);const A=getNewUniqueFilepath(app.vault,e,t);app.vault.create(A,JSON.stringify(this.getScene(),null,"\t")),new obsidian_module.Notice(`Exported to ${A}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.getScene(e),null,"\t")),`${this.file.basename}.excalidraw`))}async svg(e,t,A){const i=this.exportDialog,n={withBackground:i?!i.transparent:getWithBackground(this.plugin,this.file),withTheme:!0};return await getSVG(Object.assign(Object.assign({},e),{appState:Object.assign(Object.assign({},e.appState),{theme:null!=t?t:i?i.theme:getExportTheme(this.plugin,this.file,e.appState.theme),exportEmbedScene:void 0===A?!!i&&i.embedScene:A})}),n,i?i.padding:getExportPadding(this.plugin,this.file))}async saveSVG(e,t){if(!e){if(!this.getScene)return!1;e=this.getScene()}const A=async(A,i)=>{const n=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(A)),a=await this.svg(e,i,t);if(!a)return;const r=(new XMLSerializer).serializeToString(embedFontsInSVG(a,this.plugin));n&&n instanceof obsidian_module.TFile?await app.vault.modify(n,r):await app.vault.create(A,r)};this.plugin.settings.autoExportLightAndDark?(await A(getIMGFilename(this.file.path,"dark.svg"),"dark"),await A(getIMGFilename(this.file.path,"light.svg"),"light")):await A(getIMGFilename(this.file.path,"svg"))}async exportSVG(e,t){if(!this.getScene||!this.file)return;let A=await this.svg(this.getScene(t),void 0,e);A&&(A=embedFontsInSVG(A,this.plugin),download(null,svgToBase64(A.outerHTML),`${this.file.basename}.svg`))}async png(e,t,A){const i=this.exportDialog,n={withBackground:i?!i.transparent:getWithBackground(this.plugin,this.file),withTheme:!0};return await getPNG(Object.assign(Object.assign({},e),{appState:Object.assign(Object.assign({},e.appState),{theme:null!=t?t:i?i.theme:getExportTheme(this.plugin,this.file,e.appState.theme),exportEmbedScene:void 0===A?!!i&&i.embedScene:A})}),n,i?i.padding:getExportPadding(this.plugin,this.file),i?i.scale:getPNGScale(this.plugin,this.file))}async savePNG(e,t){if(!e){if(!this.getScene)return!1;e=this.getScene()}const A=async(A,i)=>{const n=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(A)),a=await this.png(e,i,t);a&&(n&&n instanceof obsidian_module.TFile?await app.vault.modifyBinary(n,await a.arrayBuffer()):await app.vault.createBinary(A,await a.arrayBuffer()))};this.plugin.settings.autoExportLightAndDark?(await A(getIMGFilename(this.file.path,"dark.png"),"dark"),await A(getIMGFilename(this.file.path,"light.png"),"light")):await A(getIMGFilename(this.file.path,"png"))}async exportPNGToClipboard(e,t){if(!this.getScene||!this.file)return;const A=await this.png(this.getScene(t),void 0,e);A&&await navigator.clipboard.write([new window.ClipboardItem({"image/png":A})])}async exportPNG(e,t){if(!this.getScene||!this.file)return;const A=await this.png(this.getScene(t),void 0,e);if(!A)return;const i=new FileReader;i.readAsDataURL(A);const n=this;i.onloadend=function(){const e=i.result;download(null,e,`${n.file.basename}.png`)}}async save(e=!0,t=!1){if(!this.isLoaded)return;if(this.semaphores.saving)return;this.semaphores.saving=!0;let A=!1;if(this.getScene&&this.excalidrawAPI&&this.isLoaded&&this.file&&app.vault.getAbstractFileByPath(this.file.path)){try{const i=Boolean(null!==this.semaphores.dirty&&this.semaphores.dirty||this.semaphores.autosaving||t),n=this.getScene();if(this.compatibilityMode?await this.excalidrawData.syncElements(n):await this.excalidrawData.syncElements(n,this.excalidrawAPI.getAppState().selectedElementIds)&&!this.semaphores.popoutUnload&&await this.loadDrawing(!1,this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((e=>e.isDeleted))),i){this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=e,await super.save();const i=this.file.path,n=this.lastSavedData;if(setTimeout((()=>imageCache.addBAKToCache(i,n)),50),A=this.lastSaveTimestamp===this.file.stat.mtime&&!e&&t,this.lastSaveTimestamp=this.file.stat.mtime,this.clearDirty(),e){const e=this;this.preventReloadResetTimer=setTimeout((()=>e.semaphores.preventReload=!1),2e3)}}if(!A&&!this.semaphores.autosaving&&(!this.semaphores.viewunload||this.semaphores.popoutUnload)){const e=this.excalidrawData.autoexportPreference;(e===AutoexportPreference.inherit&&this.plugin.settings.autoexportSVG||e===AutoexportPreference.both||e===AutoexportPreference.svg)&&this.saveSVG(),(e===AutoexportPreference.inherit&&this.plugin.settings.autoexportPNG||e===AutoexportPreference.both||e===AutoexportPreference.png)&&this.savePNG(),!this.compatibilityMode&&this.plugin.settings.autoexportExcalidraw&&this.saveExcalidraw()}}catch(e){errorlog({where:"ExcalidrawView.save",fn:this.save,error:e}),warningUnknowSeriousError()}this.semaphores.saving=!1,A&&this.reload(!0,this.file)}else this.semaphores.saving=!1}getViewData(){var e,t,A;if(!this.getScene||!this.excalidrawData.loaded)return this.data;const i=this.getScene();if(!i)return this.data;if(!this.compatibilityMode){let i=this.data.search(/(^%%\n)?# Text Elements\n/m);if(-1==i&&(i=this.data.search(/(%%\n)?# Drawing\n/)),-1==i)return this.data;const n=(null===(e=this.exportDialog)||void 0===e?void 0:e.dirty)&&(null===(t=this.exportDialog)||void 0===t?void 0:t.saveSettings)?[["excalidraw-export-padding",this.exportDialog.padding.toString()],["excalidraw-export-pngscale",this.exportDialog.scale.toString()],["excalidraw-export-dark","dark"===this.exportDialog.theme?"true":"false"],["excalidraw-export-transparent",this.exportDialog.transparent?"true":"false"],[FRONTMATTER_KEY,this.textMode===TextMode.raw?"raw":"parsed"]]:[[FRONTMATTER_KEY,this.textMode===TextMode.raw?"raw":"parsed"]];(null===(A=this.exportDialog)||void 0===A?void 0:A.dirty)&&(this.exportDialog.dirty=!1);let a=updateFrontmatterInString(this.data.substring(0,i),n);const r=/(^---[\w\W]*?---\n)(!\[\[.*?]]\n(%%\n)?)/m;a.match(r)&&(a=a.replace(r,"$1")),this.excalidrawData.disableCompression||(this.excalidrawData.disableCompression=this.isEditedAsMarkdownInOtherView());const s=a+this.excalidrawData.generateMD(this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((e=>e.isDeleted)));return this.excalidrawData.disableCompression=!1,s}return this.compatibilityMode?JSON.stringify(i,null,"\t"):this.data}restoreMobileLeaves(){this.hiddenMobileLeaves.length>0&&(this.hiddenMobileLeaves.forEach((e=>{e[0].containerEl.style.display=e[1]})),this.hiddenMobileLeaves=[])}toggleDisableBinding(){const e=!this.excalidrawAPI.getAppState().invertBindingBehaviour;this.updateScene({appState:{invertBindingBehaviour:e}}),new obsidian_module.Notice(e?"Inverted Mode: Default arrow binding is now disabled. Use CTRL/CMD to temporarily enable binding when needed.":"Normal Mode: Arrow binding is now enabled. Use CTRL/CMD to temporarily disable binding when needed.")}toggleFrameRendering(){const e=this.excalidrawAPI.getAppState().frameRendering;this.updateScene({appState:{frameRendering:Object.assign(Object.assign({},e),{enabled:!e.enabled})}}),new obsidian_module.Notice(e.enabled?"Frame Rendering: Enabled":"Frame Rendering: Disabled")}toggleFrameClipping(){const e=this.excalidrawAPI.getAppState().frameRendering;this.updateScene({appState:{frameRendering:Object.assign(Object.assign({},e),{clip:!e.clip})}}),new obsidian_module.Notice(e.clip?"Frame Clipping: Enabled":"Frame Clipping: Disabled")}gotoFullscreen(){this.plugin.leafChangeTimeout&&(clearTimeout(this.plugin.leafChangeTimeout),this.plugin.leafChangeTimeout=null),this.excalidrawWrapperRef&&(this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!0),(e=>{for(;e&&!e.hasClass("workspace-split");)e.addClass(SHOW),e=e.parentElement;e&&(e.addClass(SHOW),e.querySelectorAll(`div.workspace-split:not(.${SHOW})`).forEach((e=>e.addClass(SHOW))),e.querySelector(`div.workspace-leaf-content.${SHOW} > .view-header`).addClass(SHOW),e.querySelectorAll(`div.workspace-tab-container.${SHOW} > div.workspace-leaf:not(.${SHOW})`).forEach((e=>e.addClass(SHOW))),e.querySelectorAll(`div.workspace-tabs.${SHOW} > div.workspace-tab-header-container`).forEach((e=>e.addClass(SHOW))),e.querySelectorAll(`div.workspace-split.${SHOW} > div.workspace-tabs:not(.${SHOW})`).forEach((e=>e.addClass(SHOW))));const t=this.ownerDocument;t.body.querySelectorAll(`div.workspace-split:not(.${SHOW})`).forEach((e=>e.addClass(HIDE))),t.body.querySelector(`div.workspace-leaf-content.${SHOW} > .view-header`).addClass(HIDE),t.body.querySelectorAll(`div.workspace-tab-container.${SHOW} > div.workspace-leaf:not(.${SHOW})`).forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll(`div.workspace-tabs.${SHOW} > div.workspace-tab-header-container`).forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll(`div.workspace-split.${SHOW} > div.workspace-tabs:not(.${SHOW})`).forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll("div.workspace-ribbon").forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll("div.mobile-navbar").forEach((e=>e.addClass(HIDE))),t.body.querySelectorAll("div.status-bar").forEach((e=>e.addClass(HIDE)))})(this.contentEl))}isFullscreen(){return Boolean(document.body.querySelector(".excalidraw-hidden"))}exitFullscreen(){this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!1);const e=this.ownerDocument;e.querySelectorAll(".excalidraw-hidden").forEach((e=>e.removeClass(HIDE))),e.querySelectorAll(".excalidraw-visible").forEach((e=>e.removeClass(SHOW)))}removeLinkTooltip(){const e=this.ownerDocument.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");e&&e.classList.remove("excalidraw-tooltip--visible")}handleLinkHookCall(e,t,A){if(this.getHookServer().onLinkClickHook)try{if(!this.getHookServer().onLinkClickHook(e,t,A,this,this.getHookServer()))return!0}catch(e){errorlog({where:"ExcalidrawView.onLinkOpen",fn:this.getHookServer().onLinkClickHook,error:e})}return!1}openExternalLink(e,t){return!!e.match(REG_LINKINDEX_HYPERLINK)&&(window.open(e,"_blank"),!0)}openTagSearch(e){const t=e.matchAll(/#([\p{Letter}\p{Emoji_Presentation}\p{Number}\/_-]+)/gu).next();if(!t.value||t.value.length<2)return;const A=app.workspace.getLeavesOfType("search");0!=A.length&&(A[0].view.setQuery(`tag:${t.value[1]}`),app.workspace.revealLeaf(A[0]),this.isFullscreen()&&this.exitFullscreen())}async linkClick(e,t,A,i,n){var a,r,s,o,l;t||(t={id:null,text:null}),A||(A={id:null,fileId:null}),i||(i={id:null,text:null}),n||(n={shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,altKey:e.altKey});const c=linkClickModifierType(n);let d=null,h=null,u=null;if((null==t?void 0:t.id)||(null==i?void 0:i.id)){if(u=null!==(a=null==i?void 0:i.text)&&void 0!==a?a:this.textMode===TextMode.parsed?this.excalidrawData.getRawText(t.id):t.text,!u)return;u=u.replaceAll("\n","");const A=null!==(r=t.id)&&void 0!==r?r:i.id,n=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A))[0];if(this.handleLinkHookCall(n,u,e))return;if(this.openExternalLink(u))return;const s=REGEX_LINK.getResList(u);let o=s[0];if(s.length>1&&(o=await ScriptEngine.suggester(app,s.filter((e=>Boolean(e.value))).map((e=>REGEX_LINK.getLink(e))),s.filter((e=>Boolean(e.value))),"Select link to open"),!o))return;if(!(null==o?void 0:o.value))return void this.openTagSearch(u);if(u=REGEX_LINK.getLink(o),this.openExternalLink(u))return;if(u.search("#")>-1){const e=getLinkParts(u,this.file);h=`#${e.isBlockRef?"^":""}${e.ref}`,u=e.path}if(u.match(REG_LINKINDEX_INVALIDCHARS))return void new obsidian_module.Notice(t$d("FILENAME_INVALID_CHARS"),4e3);d=this.app.metadataCache.getFirstLinkpathDest(u,this.file.path)}if(null==A?void 0:A.id){if(this.excalidrawData.hasEquation(A.fileId)){const e=this.excalidrawData.getEquation(A.fileId).latex;return void new Prompt(app,t$d("ENTER_LATEX"),e,"").openAndGetValue((async t=>{t&&t!==e&&(this.excalidrawData.setEquation(A.fileId,{latex:t,isLoaded:!1}),await this.save(!1),await updateEquation(t,A.fileId,this,addFiles,this.plugin),this.setDirty(1))}))}if(await this.save(!1),this.excalidrawData.hasFile(A.fileId)){const e=this.excalidrawData.getFile(A.fileId);if(e.isHyperlink)return void window.open(e.hyperlink,"_blank");if("md-properties"===c&&"md"===e.file.extension&&!this.plugin.isExcalidrawFile(e.file)){const t=async t=>{t&&e.linkParts.original!==t&&(e.resetImage(this.file.path,t),this.setDirty(2),await this.save(!1),await this.loadSceneFiles())};return void GenericInputPrompt.Prompt(this,this.plugin,app,"Customize the link",void 0,e.linkParts.original,[{caption:"✅",action:t}],1,!1,(e=>e.createEl("p",{text:fragWithHTML("Do not add [[square brackets]] around the filename!
Follow this format when editing your link:
filename#^blockref|WIDTHxMAXHEIGHT")})),!1).then(t,(()=>{}))}u=e.file.path,d=e.file,"pdf"===d.extension.toLowerCase()&&(h=null===(s=e.linkParts.original.match(/(#.*)$/))||void 0===s?void 0:s[1])}}if(!u)return void new obsidian_module.Notice(t$d("LINK_BUTTON_CLICK_NO_TEXT"),2e4);const g=null!==(l=null!==(o=A.id)&&void 0!==o?o:t.id)&&void 0!==l?l:i.id,p=this.excalidrawAPI.getSceneElements().filter((e=>e.id===g))[0];if(!this.handleLinkHookCall(p,u,e))try{if("active-pane"!==c&&this.isFullscreen()&&this.exitFullscreen(),!d)return void new NewFileActions(this.plugin,u,n,this).open();this.linksAlwaysOpenInANewPane&&!anyModifierKeysPressed(n)&&(n=emulateKeysForLinkClick("new-pane"));const e=getLeaf(this.plugin,this.leaf,n);try{const t=app.plugins.plugins["drawio-obsidian"];if(t&&t._loaded&&"svg"===d.extension){const t=await this.app.vault.cachedRead(d);if(/(<|\<)(mxfile|mxgraph)/i.test(t))return void e.setViewState({type:"diagram-edit",state:{file:d.path}})}}catch(e){console.error(e)}await e.openFile(d,Object.assign({active:!this.linksAlwaysOpenInANewPane},h?{eState:{subpath:h}}:{}))}catch(e){new obsidian_module.Notice(e,4e3)}}async handleLinkClick(e){this.removeLinkTooltip();const t=this.getSelectedTextElement(),A=(null==t?void 0:t.id)?null:this.getSelectedImageElement(),i=(null==A?void 0:A.id)||(null==t?void 0:t.id)?null:this.getSelectedElementWithLink();this.linkClick(e,t,A,i)}onResize(){var e,t;if(this.plugin.leafChangeTimeout)return;const A=this.excalidrawAPI;this.plugin.settings.zoomToFitOnResize&&this.excalidrawRef&&!this.semaphores.isEditingText&&A&&"text"!==(null===(t=null===(e=A.getAppState())||void 0===e?void 0:e.editingElement)||void 0===t?void 0:t.type)&&this.zoomToFit(!1)}getSceneVersion(e){return this.excalidrawGetSceneVersion||(this.excalidrawGetSceneVersion=this.plugin.getPackage(this.ownerWindow).excalidrawLib.getSceneVersion),this.excalidrawGetSceneVersion(e.filter((e=>!e.isDeleted)))}async forceSave(e=!1){this.semaphores.autosaving||this.semaphores.saving?e||new obsidian_module.Notice("Force Save aborted because saving is in progress)"):(this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=!1,this.semaphores.forceSaving=!0,await this.save(!1,!0),this.plugin.triggerEmbedUpdates(),this.loadSceneFiles(),this.semaphores.forceSaving=!1,e||new obsidian_module.Notice("Save successful",1e3))}onload(){const e=Boolean(void 0===this.containerEl.onWindowMigrated);app.isMobile||e||this.containerEl.onWindowMigrated((()=>this.leaf.rebuildView()));const t=app.isMobile?document:this.containerEl.ownerDocument;this.ownerDocument=t,this.ownerWindow=this.ownerDocument.defaultView,this.plugin.getPackage(this.ownerWindow),this.semaphores.scriptsReady=!0,this.wheelEvent=e=>{this.semaphores.wheelTimeout&&clearTimeout(this.semaphores.wheelTimeout),this.semaphores.hoverSleep&&this.clearHoverPreview&&this.clearHoverPreview(),this.semaphores.wheelTimeout=setTimeout((()=>{clearTimeout(this.semaphores.wheelTimeout),this.semaphores.wheelTimeout=null}),1e3)},this.containerEl.addEventListener("wheel",this.wheelEvent,{passive:!1}),this.addAction("ScriptEngine",t$d("INSTALL_SCRIPT_BUTTON"),(()=>{new ScriptInstallPrompt(this.plugin).open()})),this.diskIcon=this.addAction("save",t$d("FORCE_SAVE"),(async()=>this.forceSave())),this.textIsRaw_Element=this.addAction("presentation",t$d("RAW"),(()=>this.changeTextMode(TextMode.parsed))),this.textIsParsed_Element=this.addAction("quote-glyph",t$d("PARSED"),(()=>this.changeTextMode(TextMode.raw))),this.linkAction_Element=this.addAction("link",t$d("OPEN_LINK"),(e=>this.handleLinkClick(e))),app.isMobile||this.addAction("fullscreen","Use the action on the Excalidraw Obsidian Panel or the Command Palette to exit fullscreen mode. You can set up a hotkey for toggling fullscreen mode in Obsidian settings under Hotkeys.",(()=>this.gotoFullscreen()));const A=this;app.workspace.onLayoutReady((async()=>{this.canvasNodeFactory.initialize(),A.contentEl.addClass("excalidraw-view"),await A.addSlidingPanesListner(),A.addParentMoveObserver(),A.onKeyUp=e=>{A.modifierKeyDown={shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey}},A.onKeyDown=e=>{this.modifierKeyDown={shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey}},A.ownerWindow.addEventListener("keydown",A.onKeyDown,!1),A.ownerWindow.addEventListener("keyup",A.onKeyUp,!1)})),this.setupAutosaveTimer(),super.onload()}async addSlidingPanesListner(){const e=this;this.slidingPanesListner=()=>{e.refresh&&e.refresh()};let t=app.workspace.rootSplit;for(;!t;)await sleep(50),t=app.workspace.rootSplit;t.containerEl.addEventListener("scroll",this.slidingPanesListner)}removeSlidingPanesListner(){var e;this.slidingPanesListner&&(null===(e=app.workspace.rootSplit.containerEl)||void 0===e||e.removeEventListener("scroll",this.slidingPanesListner))}addParentMoveObserver(){var e;const t=null!==(e=getParentOfClass(this.containerEl,"popover"))&&void 0!==e?e:getParentOfClass(this.containerEl,"workspace-leaf");if(!t)return;const A=t.classList.contains("popover");this.offsetLeft=t.offsetLeft,this.offsetTop=t.offsetTop;const i=this;this.parentMoveObserver=new MutationObserver((async e=>{const t=e[0].target;if(!(t instanceof HTMLElement))return;const{offsetLeft:A,offsetTop:n}=t;A===i.offsetLeft&&n==i.offsetTop||(i.refresh&&i.refresh(),i.offsetLeft=A,i.offsetTop=n)})),this.parentMoveObserver.observe(t,{attributeOldValue:!0,attributeFilter:A?["data-x","data-y"]:["class","style"]})}removeParentMoveObserver(){this.parentMoveObserver&&this.parentMoveObserver.disconnect()}setTheme(e){const t=this.excalidrawAPI;if(!this.excalidrawRef||!t)return;if(this.file&&hasExportTheme(this.plugin,this.file))return;const A=t.getAppState();this.excalidrawData.scene.theme=e,this.updateScene({appState:Object.assign(Object.assign({},A),{theme:e}),commitToHistory:!1})}async changeTextMode(e,t=!0){if(this.compatibilityMode)return;if(this.blockTextModeChange)return;this.blockTextModeChange=!0,this.textMode=e,e===TextMode.parsed?(this.textIsRaw_Element.hide(),this.textIsParsed_Element.show()):(this.textIsRaw_Element.show(),this.textIsParsed_Element.hide()),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setPreviewMode(e===TextMode.parsed);const A=this.excalidrawAPI;A&&t&&(await this.save(),this.preventAutozoom(),await this.excalidrawData.loadData(this.data,this.file,this.textMode),this.excalidrawData.scene.appState.theme=A.getAppState().theme,await this.loadDrawing(!1),A.history.clear()),this.prevTextMode=this.textMode,this.blockTextModeChange=!1}setupAutosaveTimer(){const e=async()=>{var t;if(!this.isLoaded)return void(this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval));const A=this.excalidrawAPI;if(!A)return void warningUnknowSeriousError();const i=A.getAppState(),n=null!==i.editingElement;if(this.refresh(),!this.semaphores.dirty||this.semaphores.dirty!=(null===(t=this.file)||void 0===t?void 0:t.path)||!this.plugin.settings.autosave||this.semaphores.forceSaving||this.semaphores.autosaving||n||null!==i.draggingElement)this.autosaveTimer=setTimeout(e,this.plugin.activeExcalidrawView===this&&this.semaphores.dirty&&this.plugin.settings.autosave?1e3:this.plugin.settings.autosaveInterval);else{if(this.autosaveTimer=null,this.excalidrawRef){this.semaphores.autosaving=!0;const e=this;this.save().then((()=>e.semaphores.autosaving=!1))}this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval)}};this.autosaveFunction=e,this.autosaveTimer&&(clearTimeout(this.autosaveTimer),this.autosaveTimer=null),this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval)}onunload(){var e,t,A,i,n,a;if(this.restoreMobileLeaves(),this.semaphores.viewunload=!0,this.semaphores.popoutUnload=this.ownerDocument!==document&&0===this.ownerDocument.body.querySelectorAll(".workspace-tab-header").length,null===(e=this.ownerWindow)||void 0===e||e.removeEventListener("keydown",this.onKeyDown,!1),null===(t=this.ownerWindow)||void 0===t||t.removeEventListener("keyup",this.onKeyUp,!1),this.containerEl.removeEventListener("wheel",this.wheelEvent,!1),this.getHookServer().onViewUnloadHook)try{this.getHookServer().onViewUnloadHook(this)}catch(e){errorlog({where:"ExcalidrawView.onunload",fn:this.getHookServer().onViewUnloadHook,error:e})}const r=null===(i=null===(A=this.containerEl)||void 0===A?void 0:A.ownerDocument)||void 0===i?void 0:i.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");r&&(null===(a=null===(n=this.containerEl)||void 0===n?void 0:n.ownerDocument)||void 0===a||a.body.removeChild(r)),this.removeParentMoveObserver(),this.removeSlidingPanesListner(),this.autosaveTimer&&(clearInterval(this.autosaveTimer),this.autosaveTimer=null)}async reload(e=!1,t){if(this.semaphores.preventReload)return void(this.semaphores.preventReload=!1);if(this.semaphores.saving)return;if(this.lastLoadedFile=null,this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),this.compatibilityMode)return void this.clearDirty();const A=this.excalidrawAPI;if(!this.excalidrawRef||!this.file||!A)return;const i=t&&t===this.file;i&&(this.data=await app.vault.read(t),this.preventAutozoom()),e?await this.excalidrawData.loadData(this.data,this.file,this.textMode):await this.excalidrawData.setTextMode(this.textMode),this.excalidrawData.scene.appState.theme=A.getAppState().theme,await this.loadDrawing(i),this.clearDirty()}async zoomToElementId(e,t){let A=0;for(;!this.excalidrawAPI&&A++<100;)await sleep(50);const i=this.excalidrawAPI;if(!i)return;const n=i.getSceneElements();let a=n.filter((t=>t.id===e));if(0!==a.length){if(t){const e=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],n);e.length>0&&(a=e)}this.preventAutozoom(),this.zoomToElements(!i.getAppState().viewModeEnabled,a)}}setEphemeralState(e){if(!e)return;const t=this;let A=null;e.match&&e.match.content&&e.match.matches&&1===e.match.matches.length&&2===e.match.matches[0].length&&(A=[e.match.content.substring(e.match.matches[0][0],e.match.matches[0][1])]);const i=async()=>{var e,A;let i=0;for(;(t.semaphores.justLoaded||!t.isLoaded||!t.excalidrawAPI||(null===(A=null===(e=t.excalidrawAPI)||void 0===e?void 0:e.getAppState())||void 0===A?void 0:A.isLoading))&&i++<100;)await sleep(50)},n=getEmbeddedFilenameParts(e.subpath);n.hasBlockref&&setTimeout((async()=>{await i(),setTimeout((()=>t.zoomToElementId(n.blockref,n.hasGroupref)))})),n.hasSectionref?A=[`# ${n.sectionref}`]:e.line&&e.line>0&&(A=[this.data.split("\n")[e.line-1]]),A&&setTimeout((async()=>{await i();const e=t.excalidrawAPI;if(!e)return;if(e.getAppState().isLoading)return;const a=e.getSceneElements();if(1===A.length&&A[0].startsWith("[")){let i=REGEX_LINK.getResList(A[0])[0];if(i){const A=REGEX_LINK.getLink(i);if(A){const i=t.plugin.app.metadataCache.getFirstLinkpathDest(A,t.file.path);if(i){let A=[];if(t.excalidrawData.files.forEach(((e,t)=>{var n;(null===(n=e.file)||void 0===n?void 0:n.path)===i.path&&A.push(t)})),A.length>0){const i=a.filter((e=>"image"===e.type&&A.includes(e.fileId)));i.length>0&&(this.preventAutozoom(),setTimeout((()=>t.zoomToElements(!e.getAppState().viewModeEnabled,i))))}}}}}t.selectElementsMatchingQuery(a,A,!e.getAppState().viewModeEnabled,n.hasSectionref,n.hasGroupref)})),super.setEphemeralState(e)}clear(){this.canvasNodeFactory.purgeNodes(),this.embeddableRefs.clear(),delete this.exportDialog;const e=this.excalidrawAPI;this.excalidrawRef&&e&&(this.activeLoader&&(this.activeLoader.terminate=!0,this.activeLoader=null),this.nextLoader=null,e.resetScene(),this.previousSceneVersion=0)}async setViewData(e,t=!1){this.lastLoadedFile!==this.file&&(this.isLoaded=!1,this.file&&(this.plugin.settings.showNewVersionNotification&&checkExcalidrawVersion(app),t&&this.clear(),this.lastSaveTimestamp=this.file.stat.mtime,this.lastLoadedFile=this.file,e=this.data=e.replaceAll("\r\n","\n").replaceAll("\r","\n"),app.workspace.onLayoutReady((async()=>{if(this.compatibilityMode="excalidraw"===this.file.extension,await this.plugin.loadSettings(),this.compatibilityMode)this.textIsRaw_Element.hide(),this.textIsParsed_Element.hide(),this.linkAction_Element.hide(),this.textMode=TextMode.raw,await this.excalidrawData.loadLegacyData(e,this.file),this.plugin.settings.compatibilityMode||new obsidian_module.Notice(t$d("COMPATIBILITY_MODE"),4e3),this.excalidrawData.disableCompression=!0;else{this.linkAction_Element.show(),this.excalidrawData.disableCompression=!1;const t=getTextMode(e);this.changeTextMode(t,!1);try{if(!await this.excalidrawData.loadData(e,this.file,this.textMode))return}catch(e){if(errorlog({where:"ExcalidrawView.setViewData",error:e}),"iframe conversion canceled"===e.message)return void this.setMarkdownView();const t=this.file,A=this.plugin,i=this.leaf;return(async()=>{let n=!0,a=0;const r=Date.now();for(;!imageCache.isReady()&&n;){const e=`You've been now wating for ${Math.round((Date.now()-r)/1e3)} seconds. `;imageCache.initializationNotice=!0;const t=new ConfirmationPrompt(A,`${a>0?a%4==0?e+"The CACHE is still loading.

":a%4==1?e+"Watch the top rigth corner for the notification.

":a%4==2?e+"I really, really hope the backup will work for you!

":e+"I am sorry, it is taking a while, there is not much I can do...

":""}${t$d("CACHE_NOT_READY")}`);n=await t.waitForClose,a++}const s=await imageCache.getBAKFromCache(t.path);s?new ConfirmationPrompt(A,t$d("BACKUP_AVAILABLE")).waitForClose.then((async e=>{e&&(await app.vault.modify(t,s),A.excalidrawFileModes[i.id||t.path]="excalidraw",A.setExcalidrawView(i))})):new obsidian_module.Notice(`Error loading drawing:\n${e.message}${"Cannot read property 'index' of undefined"===e.message?"\n'# Drawing' section is likely missing":""}\n\nTry manually fixing the file or restoring an earlier version from sync history.`,1e4)})(),void this.setMarkdownView()}}if(await this.loadDrawing(!0),this.plugin.ea.onFileOpenHook)try{await this.plugin.ea.onFileOpenHook({ea:getEA(this),excalidrawFile:this.file,view:this})}catch(e){errorlog({where:"ExcalidrawView.setViewData.onFileOpenHook",error:e})}const t=this.excalidrawData.getOnLoadScript();if(t){const e=this,A=this.file.basename+"-onlaod-script",i=()=>{e.excalidrawAPI?e.plugin.scriptEngine.executeScript(e,t,A,this.file):setTimeout(i,200)};i()}this.isLoaded=!0}))))}getGridColor(e){const t=this.plugin.ea.getCM(e);return t.isDark()?t.lighterBy(5):t.darkerBy(5),t.stringHEX()}async loadSceneFiles(){if(!this.excalidrawAPI)return;const e=new EmbeddedFilesLoader(this.plugin),t=e=>{this.nextLoader=null,this.activeLoader=e,e.loadSceneFiles(this.excalidrawData,((e,A,i=!0)=>{e&&(addFiles(e,this,A),i&&(this.activeLoader=null,this.nextLoader?t(this.nextLoader):this.excalidrawData.getFiles().some((e=>{if(e&&!e.file&&e.attemptCounter<30){const e=this,t=this.file.path;return setTimeout((async()=>{e&&e.excalidrawAPI&&t===e.file.path&&e.loadSceneFiles()}),2e3),!0}return!1}))))}),0)};this.activeLoader?this.nextLoader=e:t(e)}async synchronizeWithData(e){let t=0;for(;this.semaphores.saving&&t++<30;)await sleep(100);if(t>=30)return void errorlog({where:"ExcalidrawView.synchronizeWithData",message:`Aborting sync with received file (${this.file.path}) because semaphores.saving remained true for ower 3 seconds`,fn:this.synchronizeWithData});this.semaphores.saving=!0;let A=!1;try{const t=e.deletedElements.map((e=>e.id)),i=this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((e=>!t.contains(e.id))),n=i.map((e=>e.id)),a=t=>{switch(t.type){case"text":this.excalidrawData.textElements.set(t.id,e.textElements.get(t.id));break;case"image":e.getFile(t.fileId)?(this.excalidrawData.setFile(t.fileId,e.getFile(t.fileId)),A=!0):e.getEquation(t.fileId)&&(this.excalidrawData.setEquation(t.fileId,e.getEquation(t.fileId)),A=!0)}e.elementLinks.has(t.id)&&this.excalidrawData.elementLinks.set(t.id,e.elementLinks.get(t.id))};e.scene.elements.forEach(((t,r,s)=>{const o=i.filter((e=>e.id===t.id))[0];if(o&&(o.version0&&a.viewModeEnabled,l=this.isLoaded?s.getAppState().zenModeEnabled:a.zenModeEnabled;s.setLocalFont(this.plugin.settings.experimentalEnableFourthFont),this.updateScene({elements:n.elements.concat(null!=t?t:[]),files:n.files,commitToHistory:!0},e),this.updateScene({appState:Object.assign(Object.assign(Object.assign({},n.appState),this.excalidrawData.selectedElementIds?this.excalidrawData.selectedElementIds:{}),{zenModeEnabled:l,viewModeEnabled:o,linkOpacity:this.excalidrawData.getLinkOpacity(),trayModeEnabled:this.plugin.settings.defaultTrayMode,penMode:r,penDetected:r,allowPinchZoom:this.plugin.settings.allowPinchZoom,allowWheelZoom:this.plugin.settings.allowWheelZoom,pinnedScripts:this.plugin.settings.pinnedScripts,customPens:this.plugin.settings.customPens.slice(0,this.plugin.settings.numberOfCustomPens)})}),app.workspace.getActiveViewOfType(ExcalidrawView)===this.leaf.view&&this.excalidrawWrapperRef&&(null===(i=null===(A=this.excalidrawWrapperRef.current)||void 0===A?void 0:A.firstElementChild)||void 0===i||i.focus()),this.onAfterLoadScene()}else this.instantiateExcalidraw({elements:n.elements,appState:Object.assign(Object.assign({},n.appState),{zenModeEnabled:a.zenModeEnabled,viewModeEnabled:n.elements.length>0&&a.viewModeEnabled,linkOpacity:this.excalidrawData.getLinkOpacity(),trayModeEnabled:this.plugin.settings.defaultTrayMode,penMode:r,penDetected:r,allowPinchZoom:this.plugin.settings.allowPinchZoom,allowWheelZoom:this.plugin.settings.allowWheelZoom,pinnedScripts:this.plugin.settings.pinnedScripts,customPens:this.plugin.settings.customPens.slice(0,this.plugin.settings.numberOfCustomPens)}),files:n.files,libraryItems:await this.getLibrary()});const o=null!==this.data.match(/```compressed\-json\n/gm);this.compatibilityMode||this.plugin.settings.compress===o||this.isEditedAsMarkdownInOtherView()||this.setDirty(4)}isEditedAsMarkdownInOtherView(){return app.workspace.getLeavesOfType("markdown").filter((e=>e.view.file===this.file)).length>0}onAfterLoadScene(){this.loadSceneFiles(),this.updateContainerSize(null,!0),this.initializeToolsIconPanelAfterLoading()}setDirty(e){var t,A;this.semaphores.dirty=null===(t=this.file)||void 0===t?void 0:t.path,this.diskIcon.querySelector("svg").addClass("excalidraw-dirty"),!this.semaphores.viewunload&&(null===(A=this.toolsPanelRef)||void 0===A?void 0:A.current)&&this.toolsPanelRef.current.setDirty(!0),app.isMobile||obsidian_module.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="var(--color-accent)")}clearDirty(){var e;if(this.semaphores.viewunload)return;const t=this.excalidrawAPI;if(!t)return;this.semaphores.dirty=null,(null===(e=this.toolsPanelRef)||void 0===e?void 0:e.current)&&this.toolsPanelRef.current.setDirty(!1);const A=t.getSceneElements();A&&(this.previousSceneVersion=this.getSceneVersion(A)),this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),app.isMobile||obsidian_module.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="")}initializeToolsIconPanelAfterLoading(){var e;if(this.semaphores.viewunload)return;const t=this.excalidrawAPI;if(!t)return;const A=t.getAppState(),i=null===(e=this.toolsPanelRef)||void 0===e?void 0:e.current;i&&(i.setTheme(A.theme),i.setExcalidrawViewMode(A.viewModeEnabled),i.setPreviewMode(this.compatibilityMode?null:this.textMode===TextMode.parsed),i.updateScriptIconMap(this.plugin.scriptEngine.scriptIconMap))}canAcceptExtension(e){return"excalidraw"===e}getDisplayText(){return this.file?this.file.basename:t$d("NOFILE")}getViewType(){return"excalidraw"}getIcon(){return ICON_NAME}setMarkdownView(){this.plugin.excalidrawFileModes[this.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)}async openAsMarkdown(){!0===this.plugin.settings.compress&&(this.excalidrawData.disableCompression=!0,await this.save(!0,!0)),this.setMarkdownView()}async convertExcalidrawToMD(){await this.save(),this.plugin.openDrawing(await this.plugin.convertSingleExcalidrawToMD(this.file),"active-pane",!0)}async addYouTubeThumbnail(e){const t=await getYouTubeThumbnailLink(e),A=getEA(this),i=await A.addImage(0,0,t);A.getElement(i).link=e,A.addElementsToView(!0,!0,!0)}async addImageWithURL(e){const t=getEA(this);await t.addImage(0,0,e),t.addElementsToView(!0,!0,!0)}async addImageSaveToVault(e){const t=getEA(this),A=getMimeType(getURLImageExtension(e)),i=await getDataURLFromURL(e,A,3e3),n=await generateIdFromFile((new TextEncoder).encode(i)),a=await this.excalidrawData.saveDataURLtoVault(i,A,n);a?(await t.addImage(0,0,a),t.addElementsToView(!0,!0,!0)):new obsidian_module.Notice(t$d("ERROR_SAVING_IMAGE"))}async addTextWithIframely(e){var t;const A=await this.addText(e),i=`http://iframely.server.crestify.com/iframely?url=${e}`;try{const n=JSON.parse(await obsidian_module.request({url:i}));if(!n||n.error||!(null===(t=n.meta)||void 0===t?void 0:t.title))return;const a=getEA(this),r=a.getViewElements().filter((e=>e.id===A));1===r.length&&(r[0].text=r[0].originalText=r[0].rawText=`[${n.meta.title}](${e})`,a.copyViewElementsToEAforEditing(r),a.addElementsToView(!1,!1,!1))}catch(e){}}onPaneMenu(e,t){this.excalidrawAPI&&this.getViewSelectedElements().some((e=>"text"===e.type))&&e.addItem((e=>{e.setTitle(t$d("OPEN_LINK")).setIcon("external-link").setSection("pane").onClick((e=>{this.handleLinkClick(e)}))})),this.compatibilityMode?e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE")).onClick((()=>this.convertExcalidrawToMD())).setSection("pane")})):e.addItem((e=>{e.setTitle(t$d("OPEN_AS_MD")).setIcon("document").onClick((()=>{this.openAsMarkdown()})).setSection("pane")})),e.addItem((e=>{e.setTitle(t$d("EXPORT_IMAGE")).setIcon("export-img").setSection("pane").onClick((async e=>{this.getScene&&this.file&&(this.exportDialog||(this.exportDialog=new ExportDialog(this.plugin,this,this.file),this.exportDialog.createForm()),this.exportDialog.open())})).setSection("pane")})).addItem((e=>{e.setTitle(t$d("INSTALL_SCRIPT_BUTTON")).setIcon("ScriptEngine").setSection("pane").onClick((()=>{new ScriptInstallPrompt(this.plugin).open()}))})),super.onPaneMenu(e,t)}async getLibrary(){var e;const t=this.plugin.getStencilLibrary();return(null==t?void 0:t.library)?t.library:null!==(e=null==t?void 0:t.libraryItems)&&void 0!==e?e:[]}async instantiateExcalidraw(e){for(;!this.semaphores.scriptsReady;)await sleep(50);const t=this.plugin.getPackage(this.ownerWindow).react,A=this.plugin.getPackage(this.ownerWindow).reactDOM;this.clearDirty();const i=t.createElement((()=>{const A=t.useRef(null),i=t.useRef(null),n=t.useRef(null),[a,r]=t.useState({width:void 0,height:void 0});let s=null,o=null,l=null,c=Date.now(),d=!1;this.toolsPanelRef=i,this.embeddableMenuRef=n,this.obsidianMenu=new ObsidianMenu(this.plugin,i,this),this.embeddableMenu=new EmbeddableMenu(this,n);const h=()=>{let e,t;const A=new Promise(((A,i)=>{e=A,t=i}));return A.resolve=e,A.reject=t,A},u=t.useMemo((()=>({current:{readyPromise:h()}})),[]);t.useEffect((()=>{u.current.readyPromise.then((e=>{this.excalidrawAPI=e,e.setLocalFont(this.plugin.settings.experimentalEnableFourthFont),setTimeout((()=>{var e,t,A;this.onAfterLoadScene(),this.excalidrawContainer=null===(t=null===(e=this.excalidrawWrapperRef)||void 0===e?void 0:e.current)||void 0===t?void 0:t.firstElementChild,null===(A=this.excalidrawContainer)||void 0===A||A.focus()}))}))}),[u]),this.excalidrawRef=u,this.excalidrawWrapperRef=A,t.useEffect((()=>{r({width:this.contentEl.clientWidth,height:this.contentEl.clientHeight});const e=()=>{try{const e=this.contentEl.clientWidth,t=this.contentEl.clientHeight;if(0===e||0===t)return;r({width:e,height:t}),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.updatePosition(),this.ownerDocument!==document&&this.refresh()}catch(e){errorlog({where:"Excalidraw React-Wrapper, onResize",error:e})}};return this.ownerWindow.addEventListener("resize",e),()=>{var t;return null===(t=this.ownerWindow)||void 0===t?void 0:t.removeEventListener("resize",e)}}),[A]),this.getSelectedTextElement=()=>{var e;const t=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!t)return{id:null,text:null};if(t.getAppState().viewModeEnabled){if(s){const e=s;return s=null,e}return{id:null,text:null}}const A=t.getSceneElements().filter((e=>e.id===Object.keys(t.getAppState().selectedElementIds)[0]));if(0===A.length)return{id:null,text:null};if("text"===A[0].type)return{id:A[0].id,text:A[0].text};if(["image","arrow"].contains(A[0].type))return{id:null,text:null};const i=null===(e=A[0].boundElements)||void 0===e?void 0:e.filter((e=>"text"===e.type));if((null==i?void 0:i.length)>0){const e=t.getSceneElements().filter((e=>e.id===i[0].id));if(e.length>0)return{id:e[0].id,text:e[0].text}}if(0===A[0].groupIds.length)return{id:null,text:null};const n=A[0].groupIds[0],a=t.getSceneElements().filter((e=>{var t;return null===(t=e.groupIds)||void 0===t?void 0:t.includes(n)})).filter((e=>"text"===e.type));return 0===a.length?{id:null,text:null}:{id:A[0].id,text:A[0].text}},this.getSelectedImageElement=()=>{const e=this.excalidrawAPI;if(!e)return{id:null,fileId:null};if(e.getAppState().viewModeEnabled){if(o){const e=o;return o=null,e}return{id:null,fileId:null}}const t=e.getSceneElements().filter((t=>t.id==Object.keys(e.getAppState().selectedElementIds)[0]));if(0===t.length)return{id:null,fileId:null};if("image"==t[0].type)return{id:t[0].id,fileId:t[0].fileId};if("text"===t[0].type)return{id:null,fileId:null};if(0===t[0].groupIds.length)return{id:null,fileId:null};const A=t[0].groupIds[0],i=e.getSceneElements().filter((e=>{var t;return null===(t=e.groupIds)||void 0===t?void 0:t.includes(A)})).filter((e=>"image"==e.type));return 0===i.length?{id:null,fileId:null}:{id:i[0].id,fileId:i[0].fileId}},this.getSelectedElementWithLink=()=>{const e=this.excalidrawAPI;if(!e)return{id:null,text:null};if(e.getAppState().viewModeEnabled){if(l){const e=l;return l=null,e}return{id:null,text:null}}const t=e.getSceneElements().filter((t=>t.id==Object.keys(e.getAppState().selectedElementIds)[0]));if(0===t.length)return{id:null,text:null};if(t[0].link)return{id:t[0].id,text:t[0].link};if(0===t[0].groupIds.length)return{id:null,text:null};const A=t[0].groupIds[0],i=e.getSceneElements().filter((e=>{var t;return null===(t=e.groupIds)||void 0===t?void 0:t.includes(A)})).filter((e=>e.link));return 0===i.length?{id:null,text:null}:{id:i[0].id,text:i[0].link}},this.addText=async(e,t,A=!0)=>{var i,n,a,r,s;const o=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!o)return;const l=o.getAppState(),c=this.plugin.ea.getAPI(this);c.style.strokeColor=null!==(i=l.currentItemStrokeColor)&&void 0!==i?i:"black",c.style.opacity=null!==(n=l.currentItemOpacity)&&void 0!==n?n:1,c.style.fontFamily=null!==(a=null!=t?t:l.currentItemFontFamily)&&void 0!==a?a:1,c.style.fontSize=null!==(r=l.currentItemFontSize)&&void 0!==r?r:20,c.style.textAlign=null!==(s=l.currentItemTextAlign)&&void 0!==s?s:"left";const{width:d,height:h}=l,g=viewportCoordsToSceneCoords({clientX:0,clientY:0},l),p=viewportCoordsToSceneCoords({clientX:d,clientY:h},l),m=g.x>this.currentPosition.x||p.xthis.currentPosition.y||p.y{const r=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!r)return!1;const s=e.filter((e=>"text"==e.type));for(let e=0;ee.id)),l=r.getSceneElements(),c=[];for(let t=0;te.id===A))[0],c.push(A))}const d=n?l.concat(e.filter((e=>!c.includes(e.id)))):e.filter((e=>!c.includes(e.id))).concat(l);if(this.updateScene({elements:d,commitToHistory:!0},a),i&&Object.keys(i).length>0){const e=[];Object.keys(i).forEach((t=>{if(e.push({mimeType:i[t].mimeType,id:i[t].id,dataURL:i[t].dataURL,created:i[t].created}),i[t].file||i[t].isHyperlink){const e=new EmbeddedFile(this.plugin,this.file.path,i[t].isHyperlink?i[t].hyperlink:i[t].file),A=r.getAppState();e.setImage(i[t].dataURL,i[t].mimeType,i[t].size,"dark"===A.theme,i[t].hasSVGwithBitmap),this.excalidrawData.setFile(i[t].id,e)}i[t].latex&&this.excalidrawData.setEquation(i[t].id,{latex:i[t].latex,isLoaded:!0})})),r.addFiles(e)}return r.updateContainerSize(r.getSceneElements().filter((e=>o.includes(e.id))).filter(isContainer)),A?await this.save(!1):this.setDirty(5),!0},this.getScene=e=>{const t=this.excalidrawAPI;if(!(null==u?void 0:u.current)||!t)return null;const A=e?this.getViewSelectedElements():t.getSceneElements(),i=t.getAppState(),n=Object.assign({},t.getFiles());if(n){const e=A.filter((e=>"image"===e.type)).map((e=>e.fileId)),t=Object.keys(n).filter((t=>!e.contains(t)));t.forEach((e=>delete n[e]))}return{type:"excalidraw",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,elements:A,appState:{theme:i.theme,viewBackgroundColor:i.viewBackgroundColor,currentItemStrokeColor:i.currentItemStrokeColor,currentItemBackgroundColor:i.currentItemBackgroundColor,currentItemFillStyle:i.currentItemFillStyle,currentItemStrokeWidth:i.currentItemStrokeWidth,currentItemStrokeStyle:i.currentItemStrokeStyle,currentItemRoughness:i.currentItemRoughness,currentItemOpacity:i.currentItemOpacity,currentItemFontFamily:i.currentItemFontFamily,currentItemFontSize:i.currentItemFontSize,currentItemTextAlign:i.currentItemTextAlign,currentItemStartArrowhead:i.currentItemStartArrowhead,currentItemEndArrowhead:i.currentItemEndArrowhead,scrollX:i.scrollX,scrollY:i.scrollY,zoom:i.zoom,currentItemRoundness:i.currentItemRoundness,gridSize:i.gridSize,colorPalette:i.colorPalette,currentStrokeOptions:i.currentStrokeOptions,previousGridSize:i.previousGridSize,frameRendering:i.frameRendering},prevTextMode:this.prevTextMode,files:n}},this.refresh=()=>{if(0===this.contentEl.clientWidth||0===this.contentEl.clientHeight)return;const e=this.excalidrawAPI;(null==u?void 0:u.current)&&e&&e.refresh()};let g={x:0,y:0},p=null;this.clearHoverPreview=()=>{if(p){const e=new MouseEvent("click",{view:this.ownerWindow,bubbles:!0,cancelable:!0});p.dispatchEvent(e),p=null}};const m=e=>{var t,A,i,n,a;const r=null===(t=app.dragManager.draggable)||void 0===t?void 0:t.files;return r&&r[0]==this.file&&(r.shift(),app.dragManager.draggable.title=`${r.length} files`),["file","files"].includes(null===(A=app.dragManager.draggable)||void 0===A?void 0:A.type)?"link":(null===(i=e.types)||void 0===i?void 0:i.includes("text/html"))||(null===(n=e.types)||void 0===n?void 0:n.includes("text/plain"))||(null===(a=e.types)||void 0===a?void 0:a.includes("Files"))?"copy":void 0};let w=!1;const f=()=>{if(s=getTextElementAtPointer(this.currentPosition,this),s&&s.id){const e=new MouseEvent("click",{ctrlKey:!(DEVICE.isIOS||DEVICE.isMacOS)||this.modifierKeyDown.ctrlKey,metaKey:DEVICE.isIOS||DEVICE.isMacOS||this.modifierKeyDown.metaKey,shiftKey:this.modifierKeyDown.shiftKey,altKey:this.modifierKeyDown.altKey});return this.handleLinkClick(e),void(s=null)}if(o=getImageElementAtPointer(this.currentPosition,this),o&&o.id){const e=new MouseEvent("click",{ctrlKey:!(DEVICE.isIOS||DEVICE.isMacOS)||this.modifierKeyDown.ctrlKey,metaKey:DEVICE.isIOS||DEVICE.isMacOS||this.modifierKeyDown.metaKey,shiftKey:this.modifierKeyDown.shiftKey,altKey:this.modifierKeyDown.altKey});return this.handleLinkClick(e),void(o=null)}if(l=getElementWithLinkAtPointer(this.currentPosition,this),l&&l.id){const e=new MouseEvent("click",{ctrlKey:!(DEVICE.isIOS||DEVICE.isMacOS)||this.modifierKeyDown.ctrlKey,metaKey:DEVICE.isIOS||DEVICE.isMacOS||this.modifierKeyDown.metaKey,shiftKey:this.modifierKeyDown.shiftKey,altKey:this.modifierKeyDown.altKey});return this.handleLinkClick(e),void(l=null)}};let E=null;const B=(e,t)=>{var A,i;if(!E)return;if(null===(i=null===(A=this.excalidrawAPI)||void 0===A?void 0:A.getAppState())||void 0===i?void 0:i.editingElement)return;if(this.semaphores.wheelTimeout)return;if(!e){if(!this.currentPosition)return;e="";const A=getTextElementAtPointer(this.currentPosition,this);if(A&&A.text){t=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A.id))[0];const i=this.textMode===TextMode.parsed?this.excalidrawData.getRawText(A.id):A.text;if(!i)return;if(i.match(REG_LINKINDEX_HYPERLINK))return;const n=REGEX_LINK.getRes(i).next();if(!n.value)return;if((e=REGEX_LINK.getLink(n)).match(REG_LINKINDEX_HYPERLINK))return}else{const A=getImageElementAtPointer(this.currentPosition,this);if(t=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A.id))[0],!A||!A.fileId)return;if(!this.excalidrawData.hasFile(A.fileId))return;const i=this.excalidrawData.getFile(A.fileId);if(i.isHyperlink)return;if(IMAGE_TYPES.contains(i.file.extension))return;if("pdf"===i.file.extension.toLowerCase())return;if(this.plugin.ea.isExcalidrawFile(i.file))return;const n=i.linkParts.ref?`#${i.linkParts.isBlockRef?"^":""}${i.linkParts.ref}`:"";e=i.file.path+n}}if(this.getHookServer().onLinkHoverHook)try{if(!this.getHookServer().onLinkHoverHook(t,e,this,this.getHookServer()))return}catch(e){errorlog({where:"ExcalidrawView.showHoverPreview",fn:this.getHookServer().onLinkHoverHook,error:e})}if(this.semaphores.hoverSleep)return;const n=app.metadataCache.getFirstLinkpathDest(e.split("#")[0],this.file.path);if(!n)return;if(this.ownerDocument.querySelector(`div.popover-title[data-path="${n.path}"]`))return;this.semaphores.hoverSleep=!0;const a=this;if(setTimeout((()=>a.semaphores.hoverSleep=!1),500),this.plugin.hover.linkText=e,this.plugin.hover.sourcePath=this.file.path,p=this.contentEl,app.workspace.trigger("hover-link",{event:E,source:"excalidraw",hoverParent:p,targetEl:p,linktext:this.plugin.hover.linkText,sourcePath:this.plugin.hover.sourcePath}),g=this.currentPosition,this.isFullscreen()){const e=this;setTimeout((()=>{var t,A,i,a;const r=null!==(a=null===(i=null===(A=null===(t=this.ownerDocument.querySelector(`div.popover-title[data-path="${n.path}"]`))||void 0===t?void 0:t.parentElement)||void 0===A?void 0:A.parentElement)||void 0===i?void 0:i.parentElement)&&void 0!==a?a:this.ownerDocument.body.querySelector("div.popover");r&&e.contentEl.append(r)}),400)}},{Excalidraw:b,MainMenu:v,WelcomeScreen:C}=this.plugin.getPackage(this.ownerWindow).excalidrawLib,y=t.createElement("div",{className:"excalidraw-wrapper",ref:A,key:"abc",tabIndex:0,onKeyDown:e=>{e.target!==y.ref.current&&(this.isFullscreen()&&e.keyCode===KEYCODE.ESC&&this.exitFullscreen(),!isCTRL(e)||isSHIFT(e)||isALT(e)||B())},onPointerDown:e=>{(isCTRL(e)||isMETA(e))&&(!this.plugin.settings.allowCtrlClick&&isMETA(e)||setTimeout((()=>{(this.getSelectedTextElement().id||this.getSelectedImageElement().id||this.getSelectedElementWithLink().id)&&this.handleLinkClick(e)})))},onMouseMove:e=>{E=e.nativeEvent},onMouseOver:()=>{this.clearHoverPreview()},onDragOver:e=>{const t=m(e.dataTransfer);if(t){this.draginfoDiv||(this.draginfoDiv=createDiv({cls:"excalidraw-draginfo"}),this.ownerDocument.body.appendChild(this.draginfoDiv));let A="";if(app.dragManager.draggable)switch(internalDragModifierType(e)){case"image":A="Embed image";break;case"image-fullsize":A="Embed image @100%";break;case"link":A="Insert link\n"+(DEVICE.isMacOS||DEVICE.isIOS?"try SHIFT and CTRL combinations for other drop actions":"try SHIFT, CTRL, ALT combinations for other drop actions");break;case"embeddable":A="Insert in interactive frame"}else if(1===e.dataTransfer.types.length&&e.dataTransfer.types.includes("Files"))A="External file";else switch(externalDragModifierType(e)){case"image-import":A="Import image to Vault";break;case"image-url":A="Insert image/thumbnail with URL\n"+(DEVICE.isMacOS||DEVICE.isIOS?"try SHIFT, OPT, CTRL combinations for other drop actions":"try SHIFT, CTRL, ALT combinations for other drop actions");break;case"insert-link":A="Insert link";break;case"embeddable":A="Insert in interactive frame"}this.draginfoDiv.innerText!==A&&(this.draginfoDiv.innerText=A);const i=e.clientY-8*parseFloat(getComputedStyle(this.draginfoDiv).fontSize)+"px",n=e.clientX-this.draginfoDiv.clientWidth/2+"px";return this.draginfoDiv.style.top!==i&&(this.draginfoDiv.style.top=i),this.draginfoDiv.style.left!==n&&(this.draginfoDiv.style.left=n),e.dataTransfer.dropEffect=t,e.preventDefault(),!1}},onDragLeave:()=>{this.draginfoDiv&&(this.ownerDocument.body.removeChild(this.draginfoDiv),delete this.draginfoDiv)}},t.createElement(b,{ref:u,width:a.width,height:a.height,UIOptions:{canvasActions:{loadScene:!1,saveScene:!1,saveAsScene:!1,export:!1,saveAsImage:!1,saveToActiveFile:!1}},initState:null==e?void 0:e.appState,initialData:e,detectScroll:!0,onPointerUpdate:e=>{if(this.currentPosition=e.pointer,p&&(Math.abs(g.x-e.pointer.x)>50||Math.abs(g.y-e.pointer.y)>50)&&this.clearHoverPreview(),w){if(!d&&"down"===e.button){if(d=!0,isCTRL(this.modifierKeyDown)||isMETA(this.modifierKeyDown))return void f();const e=Date.now();return e-c<600&&e-c>40&&f(),void(c=e)}"up"===e.button&&(d=!1),(isCTRL(this.modifierKeyDown)||this.excalidrawAPI.getAppState().isViewModeEnabled&&this.plugin.settings.hoverPreviewWithoutCTRL)&&B()}},libraryReturnUrl:"app://obsidian.md",autoFocus:!0,onChange:(e,t)=>{var A,i,n,a;const r=()=>{if(setTimeout((()=>this.updateScene({appState:{gridColor:this.getGridColor(t.viewBackgroundColor)}}))),setDynamicStyle(this.plugin.ea,this,t.viewBackgroundColor,this.plugin.settings.dynamicStyling),this.plugin.ea.onCanvasColorChangeHook)try{this.plugin.ea.onCanvasColorChangeHook(this.plugin.ea,this,t.viewBackgroundColor)}catch(e){errorlog({where:r,source:this.plugin.ea.onCanvasColorChangeHook,error:e,message:"ea.onCanvasColorChangeHook exception"})}};if(w=t.viewModeEnabled,this.semaphores.justLoaded){if((null!==(a=null===(n=null===(i=null===(A=this.excalidrawData)||void 0===A?void 0:A.scene)||void 0===i?void 0:i.elements)||void 0===n?void 0:n.length)&&void 0!==a?a:0)>0&&0===e.length)return;return this.semaphores.justLoaded=!1,!this.semaphores.preventAutozoom&&this.plugin.settings.zoomToFitOnOpen&&this.zoomToFit(!1,!0),this.previousSceneVersion=this.getSceneVersion(e),this.previousBackgroundColor=t.viewBackgroundColor,this.previousTheme=t.theme,void r()}if(t.theme!==this.previousTheme&&this.file===this.excalidrawData.file&&(this.previousTheme=t.theme,this.setDirty(5)),t.viewBackgroundColor!==this.previousBackgroundColor&&this.file===this.excalidrawData.file&&(this.previousBackgroundColor=t.viewBackgroundColor,this.setDirty(6),this.colorChangeTimer&&clearTimeout(this.colorChangeTimer),this.colorChangeTimer=setTimeout((()=>{r(),this.colorChangeTimer=null}),50)),!this.semaphores.dirty&&null===t.editingElement&&null===t.editingLinearElement){const t=this.getSceneVersion(e);(t>0||0===t&&e.length>0)&&t!==this.previousSceneVersion&&(this.previousSceneVersion=t,this.setDirty(6))}},onLibraryChange:e=>{(async()=>{const t={type:"excalidrawlib",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,libraryItems:e};this.plugin.setStencilLibrary(t),await this.plugin.saveSettings()})()},renderTopRightUI:(e,t)=>this.obsidianMenu.renderButton(e,t),renderEmbeddableMenu:e=>this.embeddableMenu.renderButtons(e),onPaste:(e,t)=>{const A=this.getHookServer();if(e&&A.onPasteHook){const i=A.onPasteHook({ea:A,payload:e,event:t,excalidrawFile:this.file,view:this,pointerPosition:this.currentPosition});if("boolean"==typeof i&&!1===i)return!1}if(e&&e.text&&hyperlinkIsImage(e.text))return this.addImageWithURL(e.text),!1;if(e.elements){const e=this;setTimeout((()=>e.save(!1)),300)}return!0},onThemeChange:async e=>{var t;this.excalidrawData.scene.appState.theme=e,this.loadSceneFiles(),null===(t=null==i?void 0:i.current)||void 0===t||t.setTheme(e),setDynamicStyle(this.plugin.ea,this,this.previousBackgroundColor,this.plugin.settings.dynamicStyling)},ownerDocument:this.ownerDocument,ownerWindow:this.ownerWindow,onDrop:e=>{this.draginfoDiv&&(this.ownerDocument.body.removeChild(this.draginfoDiv),delete this.draginfoDiv);const t=this.excalidrawAPI;if(!t)return!1;const A=t.getAppState();this.currentPosition=viewportCoordsToSceneCoords({clientX:e.clientX,clientY:e.clientY},A);const i=app.dragManager.draggable,n=internalDragModifierType(e),a=externalDragModifierType(e),r=(t,A,n)=>{if(!this.getHookServer().onDropHook)return!1;try{return this.getHookServer().onDropHook({ea:this.getHookServer(),event:e,draggable:i,type:t,payload:{files:A,text:n},excalidrawFile:this.file,view:this,pointerPosition:this.currentPosition})}catch(e){return new obsidian_module.Notice("on drop hook error. See console log for details"),errorlog({where:"ExcalidrawView.onDrop",error:e}),!1}};switch(null==i?void 0:i.type){case"file":if(!r("file",[i.file],null)){const e=i.file;if(e.path.match(REG_LINKINDEX_INVALIDCHARS))return new obsidian_module.Notice(t$d("FILENAME_INVALID_CHARS"),4e3),!1;if(["image","image-fullsize"].contains(n)&&(IMAGE_TYPES.contains(e.extension)||"md"===e.extension||"pdf"===e.extension.toLowerCase()))return"pdf"===e.extension.toLowerCase()?new InsertPDFModal(this.plugin,this).open(e):(async()=>{const t=getEA(this);t.selectElementsInView([await insertImageToView(t,this.currentPosition,e,!("image-fullsize"===n))])})(),!1;if("embeddable"===n)return(async()=>{const t=getEA(this);t.selectElementsInView([await insertEmbeddableToView(t,this.currentPosition,e)])})(),!1;this.addText(`[[${app.metadataCache.fileToLinktext(i.file,this.file.path,!0)}]]`)}return!1;case"files":return r("file",i.files,null)||(async()=>{if(["image","image-fullsize"].contains(n)){const e=getEA(this);e.canvas.theme=t.getAppState().theme;let A=0;const a=[];for(const t of i.files)(IMAGE_TYPES.contains(t.extension)||"md"===t.extension)&&(a.push(await e.addImage(this.currentPosition.x+50*A,this.currentPosition.y+50*A,t,!("image-fullsize"===n))),A++,await e.addElementsToView(!1,!1,!0),e.selectElementsInView(a)),"pdf"===t.extension.toLowerCase()&&new InsertPDFModal(this.plugin,this).open(t)}else{if("embeddable"===n){const e=getEA(this);let t=0,A=0;const n=[];for(const a of i.files)n.push(await insertEmbeddableToView(e,{x:this.currentPosition.x+500*t,y:this.currentPosition.y+550*A},a)),t=(t+1)%3,0===t&&A++;return!1}for(const e of i.files)await this.addText(`[[${app.metadataCache.fileToLinktext(e,this.file.path,!0)}]]`,void 0,!1),this.currentPosition.y+=2*A.currentItemFontSize;this.save(!1)}})(),!1}if(e.dataTransfer.types.includes("Files")){if(e.dataTransfer.types.includes("text/plain")){const t=e.dataTransfer.getData("text");if(t&&r("text",null,t))return!1;if(t&&"image-url"===a&&hyperlinkIsImage(t))return this.addImageWithURL(t),!1;if(t&&"insert-link"===a)return this.plugin.settings.iframelyAllowed&&t.match(/^https?:\/\/\S*$/)?(this.addTextWithIframely(t),!1):(this.addText(t),!1);if(t&&"embeddable"===a)return insertEmbeddableToView(getEA(this),this.currentPosition,void 0,t),!1}if(e.dataTransfer.types.includes("text/html")){const t=e.dataTransfer.getData("text/html").match(/src=["']([^"']*)["']/);if(t&&"image-url"===a&&hyperlinkIsImage(t[1]))return this.addImageWithURL(t[1]),!1;if(t&&"insert-link"===a)return this.plugin.settings.iframelyAllowed&&t[1].match(/^https?:\/\/\S*$/)?(this.addTextWithIframely(t[1]),!1):(this.addText(t[1]),!1);if(t&&"embeddable"===a)return insertEmbeddableToView(getEA(this),this.currentPosition,void 0,t[1]),!1}return!0}if(e.dataTransfer.types.includes("text/plain")||e.dataTransfer.types.includes("text/uri-list")||e.dataTransfer.types.includes("text/html")){const t=e.dataTransfer.getData("text/html").match(/src=["']([^"']*)["']/),A=t?t[1]:"",i=e.dataTransfer.getData("text"),n=e.dataTransfer.getData("text/uri-list");let s=t?A:i;if(s&&""!==s||(s=n),!s||""===s)return!0;if(!r("text",null,s)){if(s&&"embeddable"===a&&/^(blob:)?(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(s))return!0;if(s&&"image-url"===a&&hyperlinkIsYouTubeLink(s))return this.addYouTubeThumbnail(s),!1;if(n&&"image-url"===a&&hyperlinkIsYouTubeLink(n))return this.addYouTubeThumbnail(n),!1;if(s&&"image-url"===a&&hyperlinkIsImage(s))return this.addImageWithURL(s),!1;if(n&&"image-url"===a&&hyperlinkIsImage(n))return this.addImageWithURL(n),!1;if(s&&"image-import"===a&&hyperlinkIsImage(s))return this.addImageSaveToVault(s),!1;if(n&&"image-import"===a&&hyperlinkIsImage(n))return this.addImageSaveToVault(n),!1;if(this.plugin.settings.iframelyAllowed&&s.match(/^https?:\/\/\S*$/))return this.addTextWithIframely(s),!1;if(s.startsWith("obsidian://open?vault=")){const t=e.dataTransfer.getData("text/html");if(t){const e=t.match(/href="app:\/\/obsidian\.md\/(.*?)"/);if(2===e.length){const t=decodeURIComponent(e[1]).split("#"),A=app.vault.getAbstractFileByPath(t[0]);if(A&&A instanceof obsidian_module.TFile){const e=app.metadataCache.fileToLinktext(A,this.file.path);return void this.addText(`[[${e+(t.length>1?"#"+t[1]+"|"+e:"")}]]`)}return this.addText(`[[${decodeURIComponent(e[1])}]]`),!1}}const A=s.split("file=");if(2===A.length)return this.addText(`[[${decodeURIComponent(A[1])}]]`),!1}this.addText(s.replace(/(!\[\[.*#[^\]]*\]\])/g,"$1{40}"))}return!1}return!r("unknown",null,null)},onBeforeTextEdit:e=>{var t;if(clearTimeout(this.isEditingTextResetTimer),this.isEditingTextResetTimer=null,this.semaphores.isEditingText=!0,this.compatibilityMode)return null!==(t=e.originalText)&&void 0!==t?t:e.text;return this.excalidrawData.getRawText(e.id)||e.rawText},onBeforeTextSubmit:(e,t,A,i)=>{var n,a;const r=this.excalidrawAPI;if(!r)return[null,null,null];if(this.semaphores.isEditingText=!0,this.isEditingTextResetTimer&&clearTimeout(this.isEditingTextResetTimer),this.isEditingTextResetTimer=setTimeout((()=>{this.semaphores.isEditingText=!1,this.isEditingTextResetTimer=null}),1500),i)return this.excalidrawData.deleteTextElement(e.id),this.setDirty(7),[null,null,null];const s=t$d("WARNING_PASTING_ELEMENT_AS_TEXT");if(t.startsWith('{"type":"excalidraw/clipboard","elements":[{"'))return setTimeout((()=>{const t=this.excalidrawAPI.getSceneElements(),A=t.filter((t=>t.id===e.id));if(1===A.length){const e=cloneElement(A[0]);e.rawText=s,t[t.indexOf(A[0])]=e,this.excalidrawData.setTextElement(e.id,s,s,(()=>{})),this.updateScene({elements:t}),r.history.clear()}})),[s,s,null];const o=e.containerId,l=A.trim().matchAll(/^!\[\[([^|\]]*)?.*?]]$|^!\[[^\]]*?]\((.*?)\)$/g).next();if(null===(n=null==l?void 0:l.value)||void 0===n?void 0:n[0]){const t=null!==(a=l.value[1])&&void 0!==a?a:l.value[2],A=app.metadataCache.getFirstLinkpathDest(t,this.file.path);if(A&&A instanceof obsidian_module.TFile){if("md"!==A.extension||this.plugin.isExcalidrawFile(A))return setTimeout((async()=>{const t=this.excalidrawAPI.getSceneElements(),i=t.filter((t=>t.id===e.id));if(1===i.length){const e={x:i[0].x,y:i[0].y},n=cloneElement(i[0]);n.isDeleted=!0,this.excalidrawData.deleteTextElement(n.id),t[t.indexOf(i[0])]=n,this.updateScene({elements:t});const a=getEA(this);IMAGE_TYPES.contains(A.extension)?a.selectElementsInView([await insertImageToView(a,e,A)]):"pdf"!==A.extension?a.selectElementsInView([await insertEmbeddableToView(a,e,A)]):new UniversalInsertFileModal(this.plugin,this).open(A,e),this.setDirty()}})),[null,null,null];new obsidian_module.Notice(t$d("USE_INSERT_FILE_MODAL"),5e3)}}if(t!==e.text||A!==e.originalText||!this.excalidrawData.getRawText(e.id)){this.setDirty(8);const i=async(t,A)=>{var i,n;if(this.textMode===TextMode.raw)return;const a=this.excalidrawAPI.getSceneElements(),s=a.filter((t=>t.id===e.id));if(1===s.length){const e=cloneElement(s[0]),o=s[0].containerId?null===(n=null===(i=r.getSceneElements().filter((e=>e.id===s[0].containerId)))||void 0===i?void 0:i[0])||void 0===n?void 0:n.type:void 0;this.excalidrawData.updateTextElement(e,t,A,!0,o),a[a.indexOf(s[0])]=e,this.updateScene({elements:a}),e.containerId&&this.updateContainerSize(e.containerId),this.setDirty()}r.history.clear()},[n,a,s]=this.excalidrawData.setTextElement(e.id,t,A,i);return n?(o&&this.updateContainerSize(o,!0),this.textMode===TextMode.raw?[t,A,s]:t===n?s?[n,a,s]:[null,null,null]:(r.history.clear(),[n,a,s])):[null,null,null]}return o&&this.updateContainerSize(o,!0),this.textMode===TextMode.parsed?this.excalidrawData.getParsedText(e.id):[null,null,null]},onLinkOpen:async(e,t)=>{var A;if(t.preventDefault(),!e)return;let i=e.link;if(!i||""===i)return;setTimeout((()=>this.removeLinkTooltip()),500);let n=null===(A=null==t?void 0:t.detail)||void 0===A?void 0:A.nativeEvent;if(!this.handleLinkHookCall(e,e.link,n)&&!this.openExternalLink(e.link,isSHIFT(n)||isCTRL(n)||isMETA(n)||isALT(n)?void 0:e)){if("text"===e.type){const t=e.rawText.replaceAll("\n","");REGEX_LINK.getResList(t).filter((e=>Boolean(e.value))).length>1&&(i=t)}n.shiftKey||n.ctrlKey||n.metaKey||n.altKey||(n=emulateKeysForLinkClick("new-tab")),this.linkClick(n,null,null,{id:e.id,text:i},n)}},onLinkHover:(e,t)=>{if(e&&(this.plugin.settings.hoverPreviewWithoutCTRL||isCTRL(t))){E=t,E.ctrlKey=!(DEVICE.isIOS||DEVICE.isMacOS)||E.ctrlKey,E.metaKey=DEVICE.isIOS||DEVICE.isMacOS||E.metaKey;const A=e.link;if(!A||""===A)return;if(A.startsWith("[[")){const t=A.match(/\[\[(?.*?)\]\]/);if(!t)return;let i=t.groups.link;B(i,e)}}},onViewModeChange:e=>{var t,A;if(this.semaphores.viewunload||null===(A=null===(t=this.toolsPanelRef)||void 0===t?void 0:t.current)||void 0===A||A.setExcalidrawViewMode(e),this.getHookServer().onViewModeChangeHook)try{this.getHookServer().onViewModeChangeHook(e,this,this.getHookServer())}catch(e){errorlog({where:"ExcalidrawView.onViewModeChange",fn:this.getHookServer().onViewModeChangeHook,error:e})}},validateEmbeddable:!0,renderWebview:DEVICE.isDesktop,renderEmbeddable:(e,A)=>{try{const i=useDefaultExcalidrawFrame(e);if(!this.file||!e||!e.link||0===e.link.length||i)return null;if(e.link.match(REG_LINKINDEX_HYPERLINK))return i?null:renderWebView(e.link,this,e.id);const n=REGEX_LINK.getRes(e.link).next();if(!n||!n.value&&n.done)return null;let a=REGEX_LINK.getLink(n);return a.match(REG_LINKINDEX_HYPERLINK)?i?null:renderWebView(a,this,e.id):t.createElement(CustomEmbeddable,{element:e,view:this,appState:A,linkText:a})}catch(e){return null}}},t.createElement(v,{},t.createElement(v.DefaultItems.ChangeCanvasBackground),t.createElement(v.DefaultItems.ToggleTheme),t.createElement(v.Separator),DEVICE.isPhone?null:t.createElement(v.Item,{icon:ICONS.trayMode,"aria-label":"Tray-mode offers an alternative, more spacious canvas",onSelect:()=>{this.toggleTrayMode()}},"Toggle tray-mode"),t.createElement(v.Item,{icon:saveIcon(!1),"aria-label":t$d("FORCE_SAVE"),onSelect:()=>{this.forceSave()}},"Save"),t.createElement(v.Item,{icon:ICONS.scriptEngine,"aria-label":"Explore the Excalidraw Script Library",onSelect:()=>{new ScriptInstallPrompt(this.plugin).open()}},"Script Library"),t.createElement(v.Item,{icon:ICONS.ExportImage,"aria-label":"Export image as PNG, SVG, or Excalidraw file",onSelect:()=>{this.exportDialog||(this.exportDialog=new ExportDialog(this.plugin,this,this.file),this.exportDialog.createForm()),this.exportDialog.open()}},"Export Image..."),t.createElement(v.Item,{icon:ICONS.switchToMarkdown,"aria-label":"Switch to markdown view",onSelect:()=>{this.openAsMarkdown()}},"Open as Markdown"),t.createElement(v.Separator),t.createElement(v.DefaultItems.Help),t.createElement(v.DefaultItems.ClearCanvas)),t.createElement(C,{},t.createElement(C.Center,{},t.createElement(C.Center.Logo,{},t.createElement(LogoWrapper,{},ICONS.ExcalidrawSword)),t.createElement(C.Center.Heading,{},'Type "Excalidraw" in the Command Palette',t.createElement("br"),"Explore the Obsidian Menu in the top right",t.createElement("br"),"Visit the Script Library",t.createElement("br"),"Find help in the hamburger-menu"),t.createElement(C.Center.Menu,{},t.createElement(C.Center.MenuItemLink,{icon:ICONS.YouTube,href:"https://www.youtube.com/@VisualPKM",shortcut:null,"aria-label":"Visual PKM YouTube Channel"}," Check out the Visual PKM YouTube channel."),t.createElement(C.Center.MenuItemLink,{icon:ICONS.Discord,href:"https://discord.gg/DyfAXFwUHc",shortcut:null,"aria-label":"Join the Visual Thinking Discord Server"}," Join the Visual Thinking Discord Server"),t.createElement(C.Center.MenuItemLink,{icon:ICONS.twitter,href:"https://twitter.com/zsviczian",shortcut:null,"aria-label":"Follow me on Twitter"}," Follow me on Twitter"),t.createElement(C.Center.MenuItemLink,{icon:ICONS.heart,href:"https://ko-fi.com/zsolt",shortcut:null,"aria-label":"Donate to support Excalidraw-Obsidian"},' Say "Thank You" & support the plugin.'))))),t.createElement(ToolsPanel,{ref:i,visible:!1,view:this,centerPointer:()=>{const e=this.excalidrawAPI;if(!u||!u.current||!e)return;const t=e.getAppState(),{width:A,height:i}=t;this.currentPosition=viewportCoordsToSceneCoords({clientX:A/2,clientY:i/2},t)}})),F=t.useRef(new ResizeObserver((e=>{if(!i||!i.current)return;const{width:t,height:A}=e[0].contentRect;if(0===t||0===A)return;const n=i.current.onRightEdge?i.current.previousWidth-t:0,a=i.current.onBottomEdge?i.current.previousHeight-A:0;i.current.updatePosition(a,n)})));return t.useEffect((()=>((null==i?void 0:i.current)&&F.current.observe(i.current.containerRef.current),()=>{F.current.unobserve(i.current.containerRef.current)})),[i,F]),t.createElement(t.Fragment,null,y)}));A.createRoot(this.contentEl).render(i)}updateContainerSize(e,t=!1){const A=this.excalidrawAPI;if(!A)return;const i=()=>{const t=e?A.getSceneElements().filter((t=>t.id===e&&"arrow"!==t.type)):A.getSceneElements().filter(isContainer);t.length>0&&(this.initialContainerSizeUpdate&&(this.semaphores.justLoaded=!0),A.updateContainerSize(t)),this.initialContainerSizeUpdate=!1};t?setTimeout((()=>i()),50):i()}zoomToFit(e=!0,t=!1){if(document.body.querySelector("div.modal-container"))return;const A=this.excalidrawAPI;if(!A||!this.excalidrawRef||this.semaphores.isEditingText||this.semaphores.preventAutozoom)return;const i=this.plugin.settings.zoomToFitMaxLevel,n=A.getSceneElements().filter((e=>e.width<1e4&&e.height<1e4));app.isMobile&&n.length>1e3||n.length>2500?t&&A.scrollToContent():e?setTimeout((()=>A.zoomToFit(n,i,this.isFullscreen()?0:.05)),100):A.zoomToFit(n,i,this.isFullscreen()?0:.05)}updatePinnedScripts(){const e=this.excalidrawAPI;if(!e)return!1;e.updateScene({appState:{pinnedScripts:this.plugin.settings.pinnedScripts}})}updatePinnedCustomPens(){const e=this.excalidrawAPI;if(!e)return!1;e.updateScene({appState:{customPens:this.plugin.settings.customPens.slice(0,this.plugin.settings.numberOfCustomPens)}})}updatePinchZoom(){const e=this.excalidrawAPI;if(!e)return!1;e.updateScene({appState:{allowPinchZoom:this.plugin.settings.allowPinchZoom}})}updateWheelZoom(){const e=this.excalidrawAPI;if(!e)return!1;e.updateScene({appState:{allowWheelZoom:this.plugin.settings.allowWheelZoom}})}async toggleTrayMode(){const e=this.excalidrawAPI;if(!e)return!1;const t=e.getAppState();e.updateScene({appState:{trayModeEnabled:!t.trayModeEnabled}}),await this.plugin.loadSettings(),this.plugin.settings.defaultTrayMode=!t.trayModeEnabled,this.plugin.saveSettings()}selectElementsMatchingQuery(e,t,A=!0,i=!1,n=!1){let a=getTextElementsMatchingQuery(e.filter((e=>"text"===e.type)),t,i).concat(getFrameElementsMatchingQuery(e.filter((e=>"frame"===e.type)),t,i));if(0!==a.length){if(n){const t=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],e);t.length>0&&(a=t)}this.zoomToElements(A,a)}else new obsidian_module.Notice("I could not find a matching text element")}zoomToElements(e,t){const A=this.excalidrawAPI;if(!A)return;const i=this.plugin.settings.zoomToFitMaxLevel;e&&A.selectElements(t),A.zoomToFit(t,i,.05)}getViewSelectedElements(){var e;const t=this.excalidrawAPI;if(!t)return[];const A=null===(e=t.getAppState())||void 0===e?void 0:e.selectedElementIds;if(!A)return[];const i=Object.keys(A);if(!i)return[];const n=t.getSceneElements().filter((e=>i.includes(e.id))),a=n.filter((e=>e.boundElements&&e.boundElements.filter((e=>"text"===e.type)).length>0)).map((e=>e.boundElements.filter((e=>"text"===e.type)).map((e=>e.id))[0])),r=n.map((e=>e.id)).concat(a);return t.getSceneElements().filter((e=>r.contains(e.id)))}async copyLinkToSelectedElementToClipboard(e){const t=this.getViewSelectedElements();if(t.length<1)return void new obsidian_module.Notice(t$d("INSERT_LINK_TO_ELEMENT_ERROR"));let A;if(2===t.length){const e=t.filter((e=>"text"===e.type));1===e.length&&e[0].containerId&&1===t.filter((e=>e.boundElements.some((e=>"text"===e.type)))).length&&(A=e[0].id)}A||(A=1===t.length?t[0].id:this.plugin.ea.getLargestElement(t).id);let i=[];if(t.some((e=>e.id===A&&"frame"===e.type)))switch(e){case"area=":case"group=":case"frame=":i=[{caption:"Frame",action:()=>{e="frame="}},{caption:"Link",action:()=>{e=""}}];break;default:i=[{caption:"Link",action:()=>{e=""}},{caption:"Frame",action:()=>{e="frame="}}]}else switch(e){case"area=":i=[{caption:"Area",action:()=>{e="area="}},{caption:"Link",action:()=>{e=""}},{caption:"Group",action:()=>{e="group="}}];break;case"group=":i=[{caption:"Group",action:()=>{e="group="}},{caption:"Link",action:()=>{e=""}},{caption:"Area",action:()=>{e="area="}}];break;default:i=[{caption:"Link",action:()=>{e=""}},{caption:"Area",action:()=>{e="area="}},{caption:"Group",action:()=>{e="group="}}]}const n=await ScriptEngine.inputPrompt(this,this.plugin,app,"Set link alias","Leave empty if you do not want to set an alias","",i);navigator.clipboard.writeText(`${e.length>0?"!":""}[[${this.file.path}#^${e}${A}${n?`|${n}`:""}]]`),new obsidian_module.Notice(t$d("INSERT_LINK_TO_ELEMENT_READY"))}updateScene(e,t=!1){const A=this.excalidrawAPI;if(!A)return;const i=e.elements&&t;i&&(e.elements=restore(e,null,null).elements);try{A.updateScene(e)}catch(t){if(errorlog({where:"ExcalidrawView.updateScene 1st attempt",fn:this.updateScene,error:t,scene:e,willDoSecondAttempt:!i}),i)warningUnknowSeriousError();else try{e.elements=restore(e,null,null).elements,A.updateScene(e)}catch(t){errorlog({where:"ExcalidrawView.updateScene 2nd attempt",fn:this.updateScene,error:t,scene:e}),warningUnknowSeriousError()}}}updateEmbeddableRef(e,t){t&&this.embeddableRefs.set(e,t)}getEmbeddableElementById(e){return this.embeddableRefs.get(e)}}function getTextMode(e){return e.search("excalidraw-plugin: parsed\n")>-1||e.search("excalidraw-plugin: locked\n")>-1?TextMode.parsed:TextMode.raw}const DEFAULT_SETTINGS={folder:"Excalidraw",embedUseExcalidrawFolder:!1,templateFilePath:"Excalidraw/Template.excalidraw",scriptFolderPath:"Excalidraw/Scripts",compress:!1,autosave:!0,autosaveInterval:15e3,autosaveIntervalDesktop:15e3,autosaveIntervalMobile:1e4,drawingFilenamePrefix:"Drawing ",drawingEmbedPrefixWithFilename:!0,drawingFilnameEmbedPostfix:" ",drawingFilenameDateTime:"YYYY-MM-DD HH.mm.ss",useExcalidrawExtension:!0,displaySVGInPreview:!0,allowImageCache:!0,displayExportedImageIfAvailable:!1,previewMatchObsidianTheme:!1,width:"400",dynamicStyling:"colorful",isLeftHanded:!1,iframeMatchExcalidrawTheme:!0,matchTheme:!1,matchThemeAlways:!1,matchThemeTrigger:!1,defaultMode:"normal",defaultPenMode:"never",allowPinchZoom:!1,allowWheelZoom:!1,zoomToFitOnOpen:!0,zoomToFitOnResize:!0,zoomToFitMaxLevel:2,linkPrefix:"📍",urlPrefix:"🌐",parseTODO:!1,todo:"☐",done:"🗹",hoverPreviewWithoutCTRL:!1,linkOpacity:1,openInAdjacentPane:!1,openInMainWorkspace:!0,showLinkBrackets:!0,allowCtrlClick:!0,forceWrap:!1,pageTransclusionCharLimit:200,wordWrappingDefault:0,removeTransclusionQuoteSigns:!0,iframelyAllowed:!0,pngExportScale:1,exportWithTheme:!0,exportWithBackground:!0,exportPaddingSVG:10,keepInSync:!1,autoexportSVG:!1,autoexportPNG:!1,autoExportLightAndDark:!1,autoexportExcalidraw:!1,embedType:"excalidraw",embedWikiLink:!0,syncExcalidraw:!1,experimentalFileType:!1,experimentalFileTag:"✏️",experimentalLivePreview:!0,experimentalEnableFourthFont:!1,experimantalFourthFont:"Virgil",fieldSuggester:!0,compatibilityMode:!1,drawingOpenCount:0,library:"deprecated",library2:{type:"excalidrawlib",version:2,source:GITHUB_RELEASES+PLUGIN_VERSION,libraryItems:[]},imageElementNotice:!0,mdSVGwidth:500,mdSVGmaxHeight:800,mdFont:"Virgil",mdFontColor:"Black",mdBorderColor:"Black",mdCSS:"",scriptEngineSettings:{},defaultTrayMode:!0,previousRelease:"0.0.0",showReleaseNotes:!0,showNewVersionNotification:!0,mathjaxSourceURL:"https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js",latexBoilerplate:"\\color{blue}",taskboneEnabled:!1,taskboneAPIkey:"",pinnedScripts:[],customPens:[Object.assign({},PENS.default),Object.assign({},PENS.highlighter),Object.assign({},PENS.finetip),Object.assign({},PENS.fountain),Object.assign({},PENS.marker),Object.assign({},PENS["thick-thin"]),Object.assign({},PENS["thin-thick-thin"]),Object.assign({},PENS.default),Object.assign({},PENS.default),Object.assign({},PENS.default)],numberOfCustomPens:0,pdfScale:4,pdfBorderBox:!0,pdfGapSize:20,pdfLockAfterImport:!0,pdfNumColumns:1,pdfImportScale:.3};class ExcalidrawSettingTab extends obsidian_module.PluginSettingTab{constructor(e,t){super(e,t),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1,this.requestUpdatePinnedPens=!1,this.requestUpdateDynamicStyling=!1,this.reloadMathJax=!1,this.plugin=t}applySettingsUpdate(e=!1){e&&(this.requestReloadDrawings=!0)}async hide(){if(this.plugin.settings.scriptFolderPath=obsidian_module.normalizePath(this.plugin.settings.scriptFolderPath),"/"!==this.plugin.settings.scriptFolderPath&&""!==this.plugin.settings.scriptFolderPath||(this.plugin.settings.scriptFolderPath="Excalidraw/Scripts"),this.plugin.saveSettings(),this.requestUpdatePinnedPens&&app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updatePinnedCustomPens()})),this.requestUpdateDynamicStyling&&app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&setDynamicStyle(this.plugin.ea,e.view,e.view.previousBackgroundColor,this.plugin.settings.dynamicStyling)})),this.requestReloadDrawings){const e=app.workspace.getLeavesOfType("excalidraw");for(const t of e)t.view instanceof ExcalidrawView&&(await t.view.save(!1),await t.view.reload(!0));this.requestEmbedUpdate=!0}this.requestEmbedUpdate&&this.plugin.triggerEmbedUpdates(),this.plugin.scriptEngine.updateScriptPath(),this.reloadMathJax&&this.plugin.loadMathJax()}async display(){var e;await this.plugin.loadSettings(),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1;const{containerEl:t}=this;t.addClass("excalidraw-settings"),this.containerEl.empty();const A=t.createDiv("coffee");A.addClass("ex-coffee-div"),A.createEl("a",{href:"https://ko-fi.com/zsolt"}).createEl("img",{attr:{src:"https://cdn.ko-fi.com/cdn/kofi3.png?v=3"}}).height=45,new obsidian_module.Setting(t).setName(t$d("RELEASE_NOTES_NAME")).setDesc(fragWithHTML(t$d("RELEASE_NOTES_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showReleaseNotes).onChange((async e=>{this.plugin.settings.showReleaseNotes=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("NEWVERSION_NOTIFICATION_NAME")).setDesc(fragWithHTML(t$d("NEWVERSION_NOTIFICATION_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showNewVersionNotification).onChange((async e=>{this.plugin.settings.showNewVersionNotification=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FOLDER_NAME")).setDesc(fragWithHTML(t$d("FOLDER_DESC"))).addText((e=>e.setPlaceholder("Excalidraw").setValue(this.plugin.settings.folder).onChange((async e=>{this.plugin.settings.folder=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FOLDER_EMBED_NAME")).setDesc(fragWithHTML(t$d("FOLDER_EMBED_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.embedUseExcalidrawFolder).onChange((async e=>{this.plugin.settings.embedUseExcalidrawFolder=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("TEMPLATE_NAME")).setDesc(fragWithHTML(t$d("TEMPLATE_DESC"))).addText((e=>e.setPlaceholder("Excalidraw/Template").setValue(this.plugin.settings.templateFilePath).onChange((async e=>{this.plugin.settings.templateFilePath=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("SCRIPT_FOLDER_NAME")).setDesc(fragWithHTML(t$d("SCRIPT_FOLDER_DESC"))).addText((e=>e.setPlaceholder("Excalidraw/Scripts").setValue(this.plugin.settings.scriptFolderPath).onChange((async e=>{this.plugin.settings.scriptFolderPath=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("SAVING_HEAD")}),new obsidian_module.Setting(t).setName(t$d("COMPRESS_NAME")).setDesc(fragWithHTML(t$d("COMPRESS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.compress).onChange((async e=>{this.plugin.settings.compress=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("AUTOSAVE_INTERVAL_DESKTOP_NAME")).setDesc(fragWithHTML(t$d("AUTOSAVE_INTERVAL_DESKTOP_DESC"))).addDropdown((e=>e.addOption("15000","Frequent (every 15 seconds)").addOption("60000","Moderate (every 60 seconds)").addOption("300000","Rare (every 5 minutes)").addOption("900000","Practically never (every 15 minutes)").setValue(this.plugin.settings.autosaveIntervalDesktop.toString()).onChange((async e=>{this.plugin.settings.autosaveIntervalDesktop=parseInt(e),this.plugin.settings.autosaveInterval=app.isMobile?this.plugin.settings.autosaveIntervalMobile:this.plugin.settings.autosaveIntervalDesktop,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("AUTOSAVE_INTERVAL_MOBILE_NAME")).setDesc(fragWithHTML(t$d("AUTOSAVE_INTERVAL_MOBILE_DESC"))).addDropdown((e=>e.addOption("10000","Frequent (every 10 seconds)").addOption("30000","Moderate (every 30 seconds)").addOption("60000","Rare (every 1 minute)").addOption("300000","Practically never (every 5 minutes)").setValue(this.plugin.settings.autosaveIntervalMobile.toString()).onChange((async e=>{this.plugin.settings.autosaveIntervalMobile=parseInt(e),this.plugin.settings.autosaveInterval=app.isMobile?this.plugin.settings.autosaveIntervalMobile:this.plugin.settings.autosaveIntervalDesktop,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("FILENAME_HEAD")}),t.createDiv("",(e=>{e.innerHTML=t$d("FILENAME_DESC")}));const i=()=>`${t$d("FILENAME_SAMPLE")}${getDrawingFilename(this.plugin.settings)}
${t$d("FILENAME_EMBED_SAMPLE")}${getEmbedFilename("{NOTE_NAME}",this.plugin.settings)}`,n=t.createEl("p",{text:""});let a,r,s,o,l,c,d;n.innerHTML=i(),new obsidian_module.Setting(t).setName(t$d("FILENAME_PREFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_DESC"))).addText((e=>e.setPlaceholder("Drawing ").setValue(this.plugin.settings.drawingFilenamePrefix).onChange((async t=>{this.plugin.settings.drawingFilenamePrefix=t.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilenamePrefix),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILENAME_PREFIX_EMBED_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_EMBED_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.drawingEmbedPrefixWithFilename).onChange((async e=>{this.plugin.settings.drawingEmbedPrefixWithFilename=e,n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILENAME_POSTFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_POSTFIX_DESC"))).addText((e=>e.setPlaceholder("").setValue(this.plugin.settings.drawingFilnameEmbedPostfix).onChange((async t=>{this.plugin.settings.drawingFilnameEmbedPostfix=t.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilnameEmbedPostfix),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILENAME_DATE_NAME")).setDesc(fragWithHTML(t$d("FILENAME_DATE_DESC"))).addText((e=>e.setPlaceholder("YYYY-MM-DD HH.mm.ss").setValue(this.plugin.settings.drawingFilenameDateTime).onChange((async t=>{this.plugin.settings.drawingFilenameDateTime=t.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilenameDateTime),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILENAME_EXCALIDRAW_EXTENSION_NAME")).setDesc(fragWithHTML(t$d("FILENAME_EXCALIDRAW_EXTENSION_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.useExcalidrawExtension).onChange((async e=>{this.plugin.settings.useExcalidrawExtension=e,n.innerHTML=i(),this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("DISPLAY_HEAD")}),new obsidian_module.Setting(t).setName(t$d("DYNAMICSTYLE_NAME")).setDesc(fragWithHTML(t$d("DYNAMICSTYLE_DESC"))).addDropdown((e=>e.addOption("none","Dynamic Styling OFF").addOption("colorful","Match color").addOption("gray","Gray, match tone").setValue(this.plugin.settings.dynamicStyling).onChange((async e=>{this.requestUpdateDynamicStyling=!0,this.plugin.settings.dynamicStyling=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("LEFTHANDED_MODE_NAME")).setDesc(fragWithHTML(t$d("LEFTHANDED_MODE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.isLeftHanded).onChange((async e=>{this.plugin.settings.isLeftHanded=e,setLeftHandedMode(e),setTimeout((()=>setLeftHandedMode(e))),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("IFRAME_MATCH_THEME_NAME")).setDesc(fragWithHTML(t$d("IFRAME_MATCH_THEME_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.iframeMatchExcalidrawTheme).onChange((async e=>{this.plugin.settings.iframeMatchExcalidrawTheme=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("MATCH_THEME_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchTheme).onChange((async e=>{this.plugin.settings.matchTheme=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("MATCH_THEME_ALWAYS_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_ALWAYS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchThemeAlways).onChange((async e=>{this.plugin.settings.matchThemeAlways=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("MATCH_THEME_TRIGGER_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_TRIGGER_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchThemeTrigger).onChange((async e=>{this.plugin.settings.matchThemeTrigger=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("DEFAULT_OPEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_OPEN_MODE_DESC"))).addDropdown((e=>e.addOption("normal","Always in normal-mode").addOption("zen","Always in zen-mode").addOption("view","Always in view-mode").addOption("view-mobile","Usually normal, but view-mode on Phone").setValue(this.plugin.settings.defaultMode).onChange((async e=>{this.plugin.settings.defaultMode=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("DEFAULT_PEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_PEN_MODE_DESC"))).addDropdown((e=>e.addOption("never","Never").addOption("mobile","On Obsidian Mobile").addOption("always","Always").setValue(this.plugin.settings.defaultPenMode).onChange((async e=>{this.plugin.settings.defaultPenMode=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("DEFAULT_PINCHZOOM_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_PINCHZOOM_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowPinchZoom).onChange((async e=>{this.plugin.settings.allowPinchZoom=e,app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updatePinchZoom()})),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("DEFAULT_WHEELZOOM_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_WHEELZOOM_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowWheelZoom).onChange((async e=>{this.plugin.settings.allowWheelZoom=e,app.workspace.getLeavesOfType("excalidraw").forEach((e=>{e.view instanceof ExcalidrawView&&e.view.updateWheelZoom()})),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("ZOOM_TO_FIT_ONOPEN_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_ONOPEN_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.zoomToFitOnOpen).onChange((async e=>{this.plugin.settings.zoomToFitOnOpen=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("ZOOM_TO_FIT_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.zoomToFitOnResize).onChange((async e=>{this.plugin.settings.zoomToFitOnResize=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("ZOOM_TO_FIT_MAX_LEVEL_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_MAX_LEVEL_DESC"))).addSlider((e=>e.setLimits(.5,10,.5).setValue(this.plugin.settings.zoomToFitMaxLevel).onChange((async e=>{a.innerText=` ${e.toString()}`,this.plugin.settings.zoomToFitMaxLevel=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{a=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.zoomToFitMaxLevel.toString()}`})),this.containerEl.createEl("h1",{text:t$d("LINKS_HEAD")}),this.containerEl.createEl("span",void 0,(e=>e.innerHTML=t$d("LINKS_DESC"))),new obsidian_module.Setting(t).setName(t$d("ADJACENT_PANE_NAME")).setDesc(fragWithHTML(t$d("ADJACENT_PANE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.openInAdjacentPane).onChange((async e=>{this.plugin.settings.openInAdjacentPane=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("MAINWORKSPACE_PANE_NAME")).setDesc(fragWithHTML(t$d("MAINWORKSPACE_PANE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.openInMainWorkspace).onChange((async e=>{this.plugin.settings.openInMainWorkspace=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(fragWithHTML(t$d("LINK_BRACKETS_NAME"))).setDesc(fragWithHTML(t$d("LINK_BRACKETS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showLinkBrackets).onChange((e=>{this.plugin.settings.showLinkBrackets=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("LINK_PREFIX_NAME")).setDesc(fragWithHTML(t$d("LINK_PREFIX_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.linkPrefix).onChange((e=>{this.plugin.settings.linkPrefix=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("URL_PREFIX_NAME")).setDesc(fragWithHTML(t$d("URL_PREFIX_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.urlPrefix).onChange((e=>{this.plugin.settings.urlPrefix=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("PARSE_TODO_NAME")).setDesc(fragWithHTML(t$d("PARSE_TODO_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.parseTODO).onChange((e=>{this.plugin.settings.parseTODO=e,r.setDisabled(!e),s.setDisabled(!e),this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("TODO_NAME")).setDesc(fragWithHTML(t$d("TODO_DESC"))).addText((e=>{r=e,e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.todo).onChange((e=>{this.plugin.settings.todo=e,this.applySettingsUpdate(!0)}))})),r.setDisabled(!this.plugin.settings.parseTODO),new obsidian_module.Setting(t).setName(t$d("DONE_NAME")).setDesc(fragWithHTML(t$d("DONE_DESC"))).setDisabled(!this.plugin.settings.parseTODO).addText((e=>{s=e,e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.done).onChange((e=>{this.plugin.settings.done=e,this.applySettingsUpdate(!0)}))})),s.setDisabled(!this.plugin.settings.parseTODO),new obsidian_module.Setting(t).setName(t$d("LINKOPACITY_NAME")).setDesc(fragWithHTML(t$d("LINKOPACITY_DESC"))).addSlider((e=>e.setLimits(0,1,.05).setValue(this.plugin.settings.linkOpacity).onChange((async e=>{o.innerText=` ${e.toString()}`,this.plugin.settings.linkOpacity=e,this.applySettingsUpdate(!0)})))).settingEl.createDiv("",(e=>{o=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.linkOpacity.toString()}`})),new obsidian_module.Setting(t).setName(t$d("HOVERPREVIEW_NAME")).setDesc(fragWithHTML(t$d("HOVERPREVIEW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.hoverPreviewWithoutCTRL).onChange((async e=>{this.plugin.settings.hoverPreviewWithoutCTRL=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("LINK_CTRL_CLICK_NAME")).setDesc(fragWithHTML(t$d("LINK_CTRL_CLICK_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowCtrlClick).onChange((async e=>{this.plugin.settings.allowCtrlClick=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("TRANSCLUSION_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_WRAP_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.forceWrap).onChange((async e=>{this.plugin.settings.forceWrap=e,this.applySettingsUpdate(!0)})))).descEl.innerHTML=`![[doc#^ref]]{number} ${t$d("TRANSCLUSION_WRAP_DESC")}`,new obsidian_module.Setting(t).setName(t$d("PAGE_TRANSCLUSION_CHARCOUNT_NAME")).setDesc(fragWithHTML(t$d("PAGE_TRANSCLUSION_CHARCOUNT_DESC"))).addText((e=>e.setPlaceholder("Enter a number").setValue(this.plugin.settings.pageTransclusionCharLimit.toString()).onChange((async t=>{const A=parseInt(t);if(isNaN(A)&&""!==t)e.setValue(this.plugin.settings.pageTransclusionCharLimit.toString());else{if(this.requestEmbedUpdate=!0,""===t)return this.plugin.settings.pageTransclusionCharLimit=10,void this.applySettingsUpdate(!0);this.plugin.settings.pageTransclusionCharLimit=A,e.setValue(this.plugin.settings.pageTransclusionCharLimit.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(t).setName(t$d("TRANSCLUSION_DEFAULT_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_DEFAULT_WRAP_DESC"))).addText((e=>e.setPlaceholder("Enter a number").setValue(this.plugin.settings.wordWrappingDefault.toString()).onChange((async t=>{const A=parseInt(t);if(isNaN(A)&&""!==t)e.setValue(this.plugin.settings.wordWrappingDefault.toString());else{if(this.requestEmbedUpdate=!0,""===t)return this.plugin.settings.wordWrappingDefault=0,void this.applySettingsUpdate(!0);this.plugin.settings.wordWrappingDefault=A,e.setValue(this.plugin.settings.wordWrappingDefault.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(t).setName(t$d("QUOTE_TRANSCLUSION_REMOVE_NAME")).setDesc(fragWithHTML(t$d("QUOTE_TRANSCLUSION_REMOVE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.removeTransclusionQuoteSigns).onChange((e=>{this.plugin.settings.removeTransclusionQuoteSigns=e,this.requestEmbedUpdate=!0,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("GET_URL_TITLE_NAME")).setDesc(fragWithHTML(t$d("GET_URL_TITLE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.iframelyAllowed).onChange((async e=>{this.plugin.settings.iframelyAllowed=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("MD_HEAD")}),this.containerEl.createEl("p",{text:t$d("MD_HEAD_DESC")}),new obsidian_module.Setting(t).setName(t$d("MD_TRANSCLUDE_WIDTH_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_WIDTH_DESC"))).addText((e=>e.setPlaceholder("Enter a number e.g. 500").setValue(this.plugin.settings.mdSVGwidth.toString()).onChange((async t=>{const A=parseInt(t);if(isNaN(A)&&""!==t)e.setValue(this.plugin.settings.mdSVGwidth.toString());else{if(this.requestEmbedUpdate=!0,""===t)return this.plugin.settings.mdSVGwidth=500,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGwidth=A,this.requestReloadDrawings=!0,e.setValue(this.plugin.settings.mdSVGwidth.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(t).setName(t$d("MD_TRANSCLUDE_HEIGHT_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_HEIGHT_DESC"))).addText((e=>e.setPlaceholder("Enter a number e.g. 800").setValue(this.plugin.settings.mdSVGmaxHeight.toString()).onChange((async t=>{const A=parseInt(t);if(isNaN(A)&&""!==t)e.setValue(this.plugin.settings.mdSVGmaxHeight.toString());else{if(this.requestEmbedUpdate=!0,""===t)return this.plugin.settings.mdSVGmaxHeight=800,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGmaxHeight=A,this.requestReloadDrawings=!0,e.setValue(this.plugin.settings.mdSVGmaxHeight.toString()),this.applySettingsUpdate(!0)}})))),new obsidian_module.Setting(t).setName(t$d("MD_DEFAULT_FONT_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_FONT_DESC"))).addDropdown((async e=>{e.addOption("Virgil","Virgil"),e.addOption("Cascadia","Cascadia"),this.app.vault.getFiles().filter((e=>["ttf","woff","woff2"].contains(e.extension))).forEach((t=>{e.addOption(t.path,t.name)})),e.setValue(this.plugin.settings.mdFont).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFont=e,this.applySettingsUpdate(!0)}))})),new obsidian_module.Setting(t).setName(t$d("MD_DEFAULT_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_COLOR_DESC"))).addText((e=>e.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdFontColor).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFontColor=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("MD_DEFAULT_BORDER_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_BORDER_COLOR_DESC"))).addText((e=>e.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdBorderColor).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdBorderColor=e,this.applySettingsUpdate(!0)})))),new obsidian_module.Setting(t).setName(t$d("MD_CSS_NAME")).setDesc(fragWithHTML(t$d("MD_CSS_DESC"))).addText((e=>e.setPlaceholder("filename of css file in vault").setValue(this.plugin.settings.mdCSS).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdCSS=e,this.applySettingsUpdate(!0)})))),this.containerEl.createEl("h1",{text:t$d("EMBED_HEAD")}),new obsidian_module.Setting(t).setName(t$d("EMBED_IMAGE_CACHE_NAME")).setDesc(fragWithHTML(t$d("EMBED_IMAGE_CACHE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowImageCache).onChange((e=>{this.plugin.settings.allowImageCache=e,this.applySettingsUpdate()})))).addButton((e=>e.setButtonText(t$d("EMBED_IMAGE_CACHE_CLEAR")).onClick((()=>{imageCache.clearImageCache()})))).addButton((e=>e.setButtonText(t$d("BACKUP_CACHE_CLEAR")).onClick((()=>{new ConfirmationPrompt(this.plugin,t$d("BACKUP_CACHE_CLEAR_CONFIRMATION")).waitForClose.then((e=>{e&&imageCache.clearBackupCache()}))})))),new obsidian_module.Setting(t).setName(t$d("EMBED_PREVIEW_SVG_NAME")).setDesc(fragWithHTML(t$d("EMBED_PREVIEW_SVG_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.displaySVGInPreview).onChange((async e=>{this.plugin.settings.displaySVGInPreview=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EMBED_REUSE_EXPORTED_IMAGE_NAME")).setDesc(fragWithHTML(t$d("EMBED_REUSE_EXPORTED_IMAGE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.displayExportedImageIfAvailable).onChange((async e=>{this.plugin.settings.displayExportedImageIfAvailable=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("PREVIEW_MATCH_OBSIDIAN_NAME")).setDesc(fragWithHTML(t$d("PREVIEW_MATCH_OBSIDIAN_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.previewMatchObsidianTheme).onChange((async e=>{this.plugin.settings.previewMatchObsidianTheme=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EMBED_WIDTH_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIDTH_DESC"))).addText((e=>e.setPlaceholder("400").setValue(this.plugin.settings.width).onChange((async e=>{this.plugin.settings.width=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian_module.Setting(t).setName(t$d("EMBED_TYPE_NAME")).setDesc(fragWithHTML(t$d("EMBED_TYPE_DESC"))).addDropdown((async e=>{l=e,l.addOption("excalidraw","excalidraw"),this.plugin.settings.autoexportPNG?l.addOption("PNG","PNG"):"PNG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),this.plugin.settings.autoexportSVG?l.addOption("SVG","SVG"):"SVG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),l.setValue(this.plugin.settings.embedType).onChange((async e=>{this.plugin.settings.embedType=e,this.applySettingsUpdate()}))})),new obsidian_module.Setting(t).setName(t$d("EMBED_WIKILINK_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIKILINK_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.embedWikiLink).onChange((async e=>{this.plugin.settings.embedWikiLink=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_PNG_SCALE_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_SCALE_DESC"))).addSlider((e=>e.setLimits(1,5,.5).setValue(this.plugin.settings.pngExportScale).onChange((async e=>{c.innerText=` ${e.toString()}`,this.plugin.settings.pngExportScale=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{c=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.pngExportScale.toString()}`})),new obsidian_module.Setting(t).setName(t$d("EXPORT_BACKGROUND_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BACKGROUND_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.exportWithBackground).onChange((async e=>{this.plugin.settings.exportWithBackground=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_PADDING_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PADDING_DESC"))).addSlider((e=>e.setLimits(0,50,5).setValue(this.plugin.settings.exportPaddingSVG).onChange((async e=>{d.innerText=` ${e.toString()}`,this.plugin.settings.exportPaddingSVG=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{d=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.exportPaddingSVG.toString()}`})),new obsidian_module.Setting(t).setName(t$d("EXPORT_THEME_NAME")).setDesc(fragWithHTML(t$d("EXPORT_THEME_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.exportWithTheme).onChange((async e=>{this.plugin.settings.exportWithTheme=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),this.containerEl.createEl("h1",{text:t$d("EXPORT_HEAD")}),new obsidian_module.Setting(t).setName(t$d("EXPORT_SYNC_NAME")).setDesc(fragWithHTML(t$d("EXPORT_SYNC_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.keepInSync).onChange((async e=>{this.plugin.settings.keepInSync=e,this.applySettingsUpdate()}))));const h=e=>{let t=0;for(t=0;te.setValue(this.plugin.settings.autoexportSVG).onChange((async e=>{e?l.addOption("SVG","SVG"):("SVG"===this.plugin.settings.embedType&&(l.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),h("SVG")),this.plugin.settings.autoexportSVG=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_PNG_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoexportPNG).onChange((async e=>{e?l.addOption("PNG","PNG"):("PNG"===this.plugin.settings.embedType&&(l.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),h("PNG")),this.plugin.settings.autoexportPNG=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_BOTH_DARK_AND_LIGHT_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BOTH_DARK_AND_LIGHT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoExportLightAndDark).onChange((async e=>{this.plugin.settings.autoExportLightAndDark=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("COMPATIBILITY_HEAD")}),new obsidian_module.Setting(t).setName(t$d("COMPATIBILITY_MODE_NAME")).setDesc(fragWithHTML(t$d("COMPATIBILITY_MODE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.compatibilityMode).onChange((async e=>{this.plugin.settings.compatibilityMode=e,n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("EXPORT_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("EXPORT_EXCALIDRAW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoexportExcalidraw).onChange((async e=>{this.plugin.settings.autoexportExcalidraw=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("SYNC_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("SYNC_EXCALIDRAW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.syncExcalidraw).onChange((async e=>{this.plugin.settings.syncExcalidraw=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("NONSTANDARD_HEAD")}),this.containerEl.createEl("p",{text:t$d("NONSTANDARD_DESC")}),new obsidian_module.Setting(t).setName(t$d("CUSTOM_PEN_NAME")).setDesc(t$d("CUSTOM_PEN_DESC")).addDropdown((e=>e.addOption("0","0").addOption("1","1").addOption("2","2").addOption("3","3").addOption("4","4").addOption("5","5").addOption("6","6").addOption("7","7").addOption("8","8").addOption("9","9").addOption("10","10").setValue(this.plugin.settings.numberOfCustomPens.toString()).onChange((e=>{this.plugin.settings.numberOfCustomPens=parseInt(e),this.requestUpdatePinnedPens=!0,this.applySettingsUpdate(!1)})))),new obsidian_module.Setting(t).setName(t$d("ENABLE_FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("ENABLE_FOURTH_FONT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalEnableFourthFont).onChange((async e=>{this.requestReloadDrawings=!0,this.plugin.settings.experimentalEnableFourthFont=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("FOURTH_FONT_DESC"))).addDropdown((async e=>{e.addOption("Virgil","Virgil"),this.app.vault.getFiles().filter((e=>["ttf","woff","woff2"].contains(e.extension))).forEach((t=>{e.addOption(t.path,t.name)})),e.setValue(this.plugin.settings.experimantalFourthFont).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.experimantalFourthFont=e,this.applySettingsUpdate(!0),this.plugin.initializeFourthFont()}))})),this.containerEl.createEl("h1",{text:t$d("EXPERIMENTAL_HEAD")}),this.containerEl.createEl("p",{text:t$d("EXPERIMENTAL_DESC")}),new obsidian_module.Setting(t).setName(t$d("MATHJAX_NAME")).setDesc(t$d("MATHJAX_DESC")).addDropdown((e=>{e.addOption("https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js","jsdelivr").addOption("https://unpkg.com/mathjax@3.2.1/es5/tex-svg.js","unpkg").addOption("https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.1/es5/tex-svg-full.min.js","cdnjs").setValue(this.plugin.settings.mathjaxSourceURL).onChange((e=>{this.plugin.settings.mathjaxSourceURL=e,this.reloadMathJax=!0,this.applySettingsUpdate()}))})),new obsidian_module.Setting(t).setName(t$d("LATEX_DEFAULT_NAME")).setDesc(fragWithHTML(t$d("LATEX_DEFAULT_DESC"))).addText((e=>e.setValue(this.plugin.settings.latexBoilerplate).onChange((e=>{this.plugin.settings.latexBoilerplate=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FIELD_SUGGESTER_NAME")).setDesc(fragWithHTML(t$d("FIELD_SUGGESTER_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.fieldSuggester).onChange((async e=>{this.plugin.settings.fieldSuggester=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILETYPE_NAME")).setDesc(fragWithHTML(t$d("FILETYPE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalFileType).onChange((async e=>{this.plugin.settings.experimentalFileType=e,this.plugin.experimentalFileTypeDisplayToggle(e),this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("FILETAG_NAME")).setDesc(fragWithHTML(t$d("FILETAG_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.experimentalFileTag).onChange((async e=>{this.plugin.settings.experimentalFileTag=e,this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("LIVEPREVIEW_NAME")).setDesc(fragWithHTML(t$d("LIVEPREVIEW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalLivePreview).onChange((async e=>{this.plugin.settings.experimentalLivePreview=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h2",{text:t$d("TASKBONE_HEAD")}),this.containerEl.createEl("p",{text:t$d("TASKBONE_DESC")}),new obsidian_module.Setting(t).setName(t$d("TASKBONE_ENABLE_NAME")).setDesc(fragWithHTML(t$d("TASKBONE_ENABLE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.taskboneEnabled).onChange((async e=>{if(u.setDisabled(!e),this.plugin.settings.taskboneEnabled=e,""===this.plugin.settings.taskboneAPIkey){const e=await this.plugin.taskbone.initialize(!1);e&&u.setValue(e)}this.applySettingsUpdate()})))),new obsidian_module.Setting(t).setName(t$d("TASKBONE_APIKEY_NAME")).setDesc(fragWithHTML(t$d("TASKBONE_APIKEY_DESC"))).addText((e=>{u=e,u.setValue(this.plugin.settings.taskboneAPIkey).onChange((async e=>{this.plugin.settings.taskboneAPIkey=e,this.applySettingsUpdate()})).setDisabled(!this.plugin.settings.taskboneEnabled)}));const g=null===(e=this.plugin.scriptEngine.getListofScripts())||void 0===e?void 0:e.map((e=>this.plugin.scriptEngine.getScriptName(e)));if(Object.keys(this.plugin.settings.scriptEngineSettings).length>0&&g){const e=(e,t)=>{const A=this.plugin.settings.scriptEngineSettings[e][t];return"object"==typeof A?A.height:null},A=(e,t)=>{const A=this.plugin.settings.scriptEngineSettings[e][t];return"object"==typeof A?A.value:A},i=(e,t,A)=>{"object"==typeof this.plugin.settings.scriptEngineSettings[e][t]?this.plugin.settings.scriptEngineSettings[e][t].value=A:this.plugin.settings.scriptEngineSettings[e][t]=A},n=(e,n,a)=>{new obsidian_module.Setting(t).setName(n).setDesc(fragWithHTML(null!=a?a:"")).addToggle((t=>t.setValue(A(e,n)).onChange((async t=>{i(e,n,t),this.applySettingsUpdate()}))))},a=(n,a,r,s)=>{s&&"[object Array]"===Object.prototype.toString.call(s)&&s.length>0?new obsidian_module.Setting(t).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addDropdown((e=>{s.forEach((t=>e.addOption(t.toString(),t.toString()))),e.setValue(A(n,a)).onChange((async e=>{i(n,a,e),this.applySettingsUpdate()}))})):e(n,a)?new obsidian_module.Setting(t).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addTextArea((t=>{t.inputEl.style.minHeight=e(n,a),t.inputEl.style.minWidth="400px",t.setValue(A(n,a)).onChange((async e=>{i(n,a,e),this.applySettingsUpdate()}))})):new obsidian_module.Setting(t).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addText((e=>e.setValue(A(n,a)).onChange((async e=>{i(n,a,e),this.applySettingsUpdate()}))))},r=(e,n,a)=>{new obsidian_module.Setting(t).setName(n).setDesc(fragWithHTML(null!=a?a:"")).addText((t=>t.setPlaceholder("Enter a number").setValue(A(e,n).toString()).onChange((async a=>{const r=parseFloat(a);isNaN(r)&&""!==a?t.setValue(A(e,n).toString()):(i(e,n,isNaN(r)?0:r),this.applySettingsUpdate())}))))};this.containerEl.createEl("h1",{text:t$d("SCRIPT_SETTINGS_HEAD")}),Object.keys(this.plugin.settings.scriptEngineSettings).filter((e=>g.contains(e))).forEach((e=>{const t=this.plugin.settings.scriptEngineSettings[e],A=Object.values(t);0===A.length||A.length>0&&0===A.map((e=>e.hidden?0:1)).reduce(((e,t)=>e+t))||(this.containerEl.createEl("h3",{text:e}),Object.keys(t).forEach((A=>{var i;const s=t[A];switch(typeof(null!==(i=s.value)&&void 0!==i?i:s)){case"boolean":s.hidden||n(e,A,s.description);break;case"string":s.hidden||a(e,A,s.description,s.valueset);break;case"number":s.hidden||r(e,A,s.description)}})))}))}}}var openDialogAction;!function(e){e[e.openFile=0]="openFile",e[e.insertLinkToDrawing=1]="insertLinkToDrawing"}(openDialogAction||(openDialogAction={}));class OpenFileDialog extends obsidian_module.FuzzySuggestModal{constructor(e,t){super(e),this.app=e,this.action=openDialogAction.openFile,this.plugin=t,this.onNewPane=!1,this.limit=20,this.setInstructions([{command:t$d("TYPE_FILENAME"),purpose:""}]),this.inputEl.onkeyup=e=>{"Enter"==e.key&&this.action==openDialogAction.openFile&&this.containerEl.innerText.includes(EMPTY_MESSAGE)&&(this.plugin.createAndOpenDrawing(`${this.plugin.settings.folder}/${this.inputEl.value}.excalidraw.md`,this.onNewPane?"new-pane":"active-pane"),this.close())}}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>this.plugin.isExcalidrawFile(e)))}getItemText(e){return e.path}onChooseItem(e){switch(this.action){case openDialogAction.openFile:this.plugin.openDrawing(e,this.onNewPane?"new-pane":"active-pane",!0);break;case openDialogAction.insertLinkToDrawing:this.plugin.embedDrawing(e)}}start(e,t){switch(this.action=e,this.onNewPane=t,e){case openDialogAction.openFile:this.emptyStateText=EMPTY_MESSAGE,this.setPlaceholder(t$d("SELECT_FILE_OR_TYPE_NEW"));break;case openDialogAction.insertLinkToDrawing:this.emptyStateText=t$d("NO_MATCH"),this.setPlaceholder(t$d("SELECT_TO_EMBED"))}this.open()}}class InsertLinkDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e),this.app=e,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_FILE_TO_LINK")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return this.app.metadataCache.getLinkSuggestions().filter((e=>!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path+(e.alias?`|${e.alias}`:"")}onChooseItem(e){let t=e.path;e.file&&(t=this.app.metadataCache.fileToLinktext(e.file,this.drawingPath,!0)),this.addText(`[[${t+(e.alias?`|${e.alias}`:"")}]]`)}start(e,t){this.addText=t,this.drawingPath=e,this.open()}}class InsertImageDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE_WITH_OPTION_TO_SCALE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_DRAWING")),this.emptyStateText=t$d("NO_MATCH"),this.inputEl.onkeyup=e=>{"Enter"===e.key&&scaleToFullsizeModifier(e)&&this.chooser.values&&(this.onChooseItem(this.chooser.values[this.chooser.selectedItem].item,new KeyboardEvent("keypress",{shiftKey:!0,metaKey:!(DEVICE.isIOS||DEVICE.isMacOS),ctrlKey:DEVICE.isIOS||DEVICE.isMacOS})),this.close())}}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>(IMAGE_TYPES.contains(e.extension)||this.plugin.isExcalidrawFile(e))&&!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path}onChooseItem(e,t){const A=this.plugin.ea.getAPI(this.view);A.canvas.theme=this.view.excalidrawAPI.getAppState().theme;const i=scaleToFullsizeModifier(t);(async()=>{await A.addImage(0,0,e,!i),A.addElementsToView(!0,!0,!0)})()}start(e){this.view=e,this.open()}}class ImportSVGDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_DRAWING")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>"svg"===e.extension&&!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path}async onChooseItem(e,t){if(!e)return;const A=this.plugin.ea;A.reset(),A.setView(this.view);const i=await app.vault.read(e);i&&""!==i&&(A.importSVG(i),A.addElementsToView(!0,!0,!0,!0))}start(e){this.view=e,this.open()}}class InsertMDDialog extends obsidian_module.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_MD")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>"md"===e.extension&&!this.plugin.isExcalidrawFile(e)))}getItemText(e){return e.path}onChooseItem(e){const t=this.plugin.ea;t.reset(),t.setView(this.view),(async()=>{await t.addImage(0,0,e),t.addElementsToView(!0,!1,!0)})()}start(e){this.view=e,this.open()}}function around(e,t){const A=Object.keys(t).map((A=>around1(e,A,t[A])));return 1===A.length?A[0]:function(){A.forEach((e=>e()))}}function around1(e,t,A){const i=e[t],n=e.hasOwnProperty(t);let a=A(i);return i&&Object.setPrototypeOf(a,i),Object.setPrototypeOf(r,a),e[t]=r,s;function r(...A){return a===i&&e[t]===r&&s(),a.apply(this,A)}function s(){e[t]===r&&(n?e[t]=i:delete e[t]),a!==i&&(a=i,Object.setPrototypeOf(r,i||Function))}}let plugin,vault,metadataCache;const getDefaultWidth=e=>{const t=parseInt(e.settings.width);return isNaN(t)||0===t||null===t?"400":e.settings.width},initializeMarkdownPostProcessor=e=>{plugin=e,vault=e.app.vault,metadataCache=e.app.metadataCache},getIMG=async(e,t=!1)=>{var A;let i=e.file;if(!e.file){const t=vault.getAbstractFileByPath(null===(A=e.fname)||void 0===A?void 0:A.split("#")[0]);if(!(t&&t instanceof obsidian_module.TFile))return null;i=t}const n=getEmbeddedFilenameParts(e.fname);e.style=e.style.replaceAll(" ","-");const a=hasExportTheme(plugin,i)?getExportTheme(plugin,i,"light"):void 0,r={withBackground:getWithBackground(plugin,i),withTheme:!!a||plugin.settings.exportWithTheme},s=createEl("img");let o=`max-width:${e.fwidth}${e.fwidth.match(/\d$/)?"px":""}; `;e.fheight&&(o+=`height:${e.fheight}px;`),t||s.setAttribute("style",o),s.addClass(e.style),s.addClass("excalidraw-embedded-img");const l=null!=a?a:plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":plugin.settings.exportWithTheme?void 0:"light";l&&(r.withTheme=!0);const c=new EmbeddedFilesLoader(plugin,l?"dark"===l:void 0),d=imageCache.isReady();if(!plugin.settings.displaySVGInPreview){const t=parseInt(e.fwidth),A=t>=2400?5:t>=1800?4:t>=1200?3:t>=600?2:1,a=Object.assign(Object.assign({},n),{isDark:"dark"===l,isSVG:!1,scale:A});if(d){const e=await imageCache.getImageFromCache(a);if(e)return s.src=e,s}const o=n.hasGroupref||n.hasFrameref?void 0:await getQuickImagePreview(plugin,i.path,"png"),h=null!=o?o:await createPNG(n.hasGroupref||n.hasFrameref?n.filepath+n.linkpartReference:i.path,A,r,c,l,null,null,[],plugin,0);return h?(s.src=URL.createObjectURL(h),d&&imageCache.addImageToCache(a,s.src,h),s):null}const h=Object.assign(Object.assign({},n),{isDark:"dark"===l,isSVG:!0,scale:1});if(d){const e=await imageCache.getImageFromCache(h);if(e)return s.setAttribute("src",e),s}let u=null;const g=document.createElement("div");if(!n.hasBlockref&&!n.hasSectionref){const e=await getQuickImagePreview(plugin,i.path,"svg");if(e){g.innerHTML=e;const t=g.firstChild;if(t instanceof SVGSVGElement&&(u=t),u)return addSVGToImgSrc(s,u,d,h)}}const p=(await createSVG(n.hasGroupref||n.hasBlockref||n.hasSectionref||n.hasFrameref?n.filepath+n.linkpartReference:i.path,!0,r,c,l,null,null,[],plugin,0,getExportPadding(plugin,i))).outerHTML;g.innerHTML=p;const m=g.firstChild;return m instanceof SVGSVGElement&&(u=m),u?(u=embedFontsInSVG(u,plugin),u.removeAttribute("width"),u.removeAttribute("height"),addSVGToImgSrc(s,u,d,h)):null},addSVGToImgSrc=(e,t,A,i)=>{const n=(new XMLSerializer).serializeToString(t),a=new Blob([n],{type:"image/svg+xml"}),r=URL.createObjectURL(a);return e.setAttribute("src",r),A&&imageCache.addImageToCache(i,r,a),e},createImgElement=async(e,t=!1)=>{const A=await getIMG(e,t);let i;A.setAttribute("fileSource",e.fname),e.fwidth&&A.setAttribute("w",e.fwidth),e.fheight&&A.setAttribute("h",e.fheight),A.setAttribute("draggable","false"),A.setAttribute("onCanvas",t?"true":"false");const n=e=>{if(e.target instanceof Element&&"img"!=e.target.tagName.toLowerCase())return;const t=A.getAttribute("fileSource");if(t){const A=t.match(/([^#]*)(.*)/);if(!A)return;plugin.openDrawing(vault.getAbstractFileByPath(A[1]),linkClickModifierType(e),!0,A[2])}};let a;return A.addEventListener("pointermove",(e=>{i&&(Math.abs(e.screenX-a.screenX)>10||Math.abs(e.screenY-a.screenY)>10)&&(clearTimeout(i),i=null)})),A.addEventListener("pointerdown",(e=>{var t;(null===(t=null==A?void 0:A.parentElement)||void 0===t?void 0:t.hasClass("canvas-node-content"))||(i=setTimeout((()=>n(e)),500),a=e)})),A.addEventListener("pointerup",(()=>{i&&clearTimeout(i),i=null})),A.addEventListener("dblclick",n),A.addEventListener(RERENDER_EVENT,(async e=>{e.stopPropagation();const t=A.parentElement,i=A.style.maxWidth,n=A.style.maxHeight,a=A.getAttribute("fileSource"),r="true"===A.getAttribute("onCanvas"),s=await createImgElement({fname:a,fwidth:A.getAttribute("w"),fheight:A.getAttribute("h"),style:A.getAttribute("class")},r);t.empty(),r||(s.style.maxHeight=n,s.style.maxWidth=i),s.setAttribute("fileSource",a),t.append(s)})),A},createImageDiv=async(e,t=!1)=>{const A=await createImgElement(e,t);return createDiv(e.style,(e=>e.append(A)))},processReadingMode=async(e,t)=>{var A;for(const i of e){const e=null===(A=i.getAttribute("src"))||void 0===A?void 0:A.split("#")[0];if(!e)continue;const n=metadataCache.getFirstLinkpathDest(e,t.sourcePath);if(n&&n instanceof obsidian_module.TFile&&plugin.isExcalidrawFile(n)){if(isTextOnlyEmbed(i))continue;i.parentElement.replaceChild(await processInternalEmbed(i,n),i)}}},processInternalEmbed=async(e,t)=>{const A={fname:"",fheight:"",fwidth:"",style:""},i=e.getAttribute("src");if(!i)return;e.removeClass("markdown-embed"),e.removeClass("inline-embed"),e.addClass("media-embed"),e.addClass("image-embed"),A.fwidth=e.getAttribute("width")?e.getAttribute("width"):getDefaultWidth(plugin),A.fheight=e.getAttribute("height");let n=e.getAttribute("alt");A.style="excalidraw-svg",processAltText(i.split("#")[0],n,A);const a=getEmbeddedFilenameParts(i);return A.fname=(null==t?void 0:t.path)+(a.hasBlockref||a.hasSectionref?a.linkpartReference:""),A.file=t,await createImageDiv(A)},processAltText=(e,t,A)=>{var i,n;if(t&&!t.startsWith(e)){const a=t.match(/[^\|\d]*\|?((\d*%?)x?(\d*%?))?\|?(.*)/);A.fwidth=null!==(i=a[2])&&void 0!==i?i:A.fwidth,A.fheight=null!==(n=a[3])&&void 0!==n?n:A.fheight,a[4]&&!a[4].startsWith(e)&&(A.style=`excalidraw-svg-${a[4]}`),a[4]&&""!==a[4]||a[2]&&""!==a[2]||!a[0]||""===a[0]||(A.style=`excalidraw-svg-${a[0]}`)}},isTextOnlyEmbed=e=>{const t=e.getAttribute("src");if(!t)return!0;const A=getEmbeddedFilenameParts(t);return!(A.hasArearef||A.hasGroupref||A.hasFrameref)&&(A.hasBlockref||A.hasSectionref)},tmpObsidianWYSIWYG=async(e,t)=>{const A=app.vault.getAbstractFileByPath(t.sourcePath);if(!(A instanceof obsidian_module.TFile))return;if(!plugin.isExcalidrawFile(A))return;if(t.remainingNestLevel<4)return;const i=t.containerEl;let n=i;for(;!n.hasClass("dataview")&&!n.hasClass("cm-preview-code-block")&&!n.hasClass("cm-embed-block")&&!n.hasClass("internal-embed")&&!n.hasClass("markdown-reading-view")&&!n.hasClass("markdown-embed")&&n.parentElement;)n=n.parentElement;if(n.hasClass("dataview")||n.hasClass("cm-preview-code-block")||n.hasClass("cm-embed-block"))return;const a={fname:t.sourcePath,fheight:"",fwidth:getDefaultWidth(plugin),style:"excalidraw-svg"};a.file=A;const r=n.hasClass("markdown-embed"),s=n.hasClass("markdown-reading-view");if(!n.hasClass("internal-embed")&&(r||s)){const t=Boolean(e.querySelector(".frontmatter"));if(e.empty(),!t)return void(e.parentElement===i&&i.removeChild(e));n.empty();const A=n.hasClass("canvas-node-content"),s=await createImageDiv(a,A);return r?(n.removeClass("markdown-embed"),n.removeClass("inline-embed"),n.addClass("media-embed"),n.addClass("image-embed"),!A&&s.firstChild instanceof HTMLElement&&(s.firstChild.style.maxHeight="100%",s.firstChild.style.maxWidth=null),void n.appendChild(s.firstChild)):void n.appendChild(s)}if(isTextOnlyEmbed(n))return;if(e.empty(),n.hasAttribute("ready"))return;n.setAttribute("ready",""),n.empty();const o=await processInternalEmbed(n,A);n.appendChild(o);let l=null;const c=new MutationObserver((e=>{var t;["alt","width","height"].contains(null===(t=e[0])||void 0===t?void 0:t.attributeName)&&(l&&clearTimeout(l),l=setTimeout((async()=>{l=null,n.empty();const e=await processInternalEmbed(n,A);n.appendChild(e)}),500))}));c.observe(n,{attributes:!0})},markdownPostProcessor=async(e,t)=>{var A;const i=e.querySelectorAll(".internal-embed");0!==i.length?Boolean(null===(A=t.frontmatter)||void 0===A?void 0:A.hasOwnProperty("excalidraw-plugin"))?e.style.display="none":await processReadingMode(i,t):tmpObsidianWYSIWYG(e,t)},hoverEvent=e=>{e.linktext?(plugin.hover.linkText=e.linktext,plugin.hover.sourcePath=e.sourcePath):plugin.hover.linkText=null},observer=new MutationObserver((async e=>{if(0==e.length)return;if(!plugin.hover.linkText)return;const t=metadataCache.getFirstLinkpathDest(plugin.hover.linkText,plugin.hover.sourcePath?plugin.hover.sourcePath:"");if(!t)return;if(!(t instanceof obsidian_module.TFile))return;if("excalidraw"!==t.extension)return;const A=getIMGFilename(t.path,"svg"),i=vault.getAbstractFileByPath(A);if(i&&i instanceof obsidian_module.TFile)return;const n=getIMGFilename(t.path,"png"),a=vault.getAbstractFileByPath(n);if(a&&a instanceof obsidian_module.TFile)return;if(!plugin.hover.linkText)return;if(1!=e.length)return;if(1!=e[0].addedNodes.length)return;if("popover hover-popover file-embed is-loaded"!=!e[0].addedNodes[0].classNames)return;const r=e[0].addedNodes[0];r.empty();const s=await getIMG({file:t,fname:t.path,fwidth:"300",fheight:null,style:"excalidraw-svg"}),o=createDiv("",(async e=>{e.appendChild(s),e.setAttribute("src",t.path),e.onClickEvent((t=>{t.stopImmediatePropagation();const A=e.getAttribute("src");A&&plugin.openDrawing(vault.getAbstractFileByPath(A),linkClickModifierType(t))}))}));r.appendChild(o)})),EXCALIDRAW_AUTOMATE_INFO=[{field:"plugin",code:null,desc:"The ExcalidrawPlugin object",after:""},{field:"elementsDict",code:null,desc:"The {} dictionary object, contains the ExcalidrawElements currently edited in Automate indexed by el.id",after:'[""]'},{field:"imagesDict",code:null,desc:"the images files including DataURL, indexed by fileId",after:'[""]'},{field:"style.strokeColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.backgroundColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.angle",code:"[number]",desc:"Rotation of the object in radian",after:""},{field:"style.fillStyle",code:"[string]",desc:"'hachure' | 'cross-hatch' | 'solid'",after:""},{field:"style.strokeWidth",code:"[number]",desc:null,after:""},{field:"style.strokeStyle",code:"[string]",desc:"'solid' | 'dashed' | 'dotted'",after:""},{field:"style.roughness",code:"[number]",desc:"0:Architect\n1:Artist\n2:Cartoonist",after:""},{field:"style.opacity",code:"[number]",desc:"100: Fully opaque\n0: Fully transparent",after:""},{field:"style.roundness",code:"[null | { type: RoundnessType; value?: number };]",desc:"set to null for 'sharp', else the stroke will be 'round'
type: 1==LEGACY,
2==PROPORTIONAL RADIUS,
3==ADAPTIVE RADIUS, value: adaptive factor defaults to 32",after:""},{field:"style.fontFamily",code:"[number]",desc:"1: Virgil, 2:Helvetica, 3:Cascadia, 4:LocalFont",after:""},{field:"style.fontSize",code:"[number]",desc:null,after:""},{field:"style.textAlign",code:"[string]",desc:"'left' | 'right' | 'center'",after:""},{field:"style.verticalAlign",code:"[string]",desc:"For future use, has no effect currently; 'top' | 'bottom' | 'middle'",after:""},{field:"style.startArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"style.endArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"canvas.theme",code:"[string]",desc:"'dark' | 'light'",after:""},{field:"canvas.viewBackgroundColor",code:"[string]",desc:"A valid css color.\nSee W3 School Colors for more.",after:""},{field:"canvas.gridSize",code:"[number]",desc:null,after:""},{field:"setStrokeSharpness",code:"setStrokeSharpness(sharpness: number): void;",desc:"Set ea.style.roundness. 0: is the legacy value, 3: is the current default value, null is sharp",after:""},{field:"addToGroup",code:"addToGroup(objectIds: []): string;",desc:null,after:""},{field:"toClipboard",code:"toClipboard(templatePath?: string): void;",desc:"Copies current elements using template to clipboard, ready to be pasted into an excalidraw canvas",after:""},{field:"getSceneFromFile",code:"async getSceneFromFile(file: TFile): Promise<{elements: ExcalidrawElement[]; appState: AppState;}>;",desc:"returns the elements and appState from a file, if the file is not an excalidraw file, it will return null",after:""},{field:"getElements",code:"getElements(): ExcalidrawElement[];",desc:"Get all elements from ExcalidrawAutomate elementsDict",after:""},{field:"getElement",code:"getElement(id: string): ExcalidrawElement;",desc:"Get single element from ExcalidrawAutomate elementsDict",after:""},{field:"create",code:'create(params?: {filename?: string, foldername?: string, templatePath?: string, onNewPane?: boolean, frontmatterKeys?: { "excalidraw-plugin"?: "raw" | "parsed", "excalidraw-link-prefix"?: string, "excalidraw-link-brackets"?: boolean, "excalidraw-url-prefix"?: string,},}): Promise;',desc:"Create a drawing and save it to filename.\nIf filename is null: default filename as defined in Excalidraw settings.\nIf folder is null: default folder as defined in Excalidraw settings\n",after:""},{field:"createSVG",code:"createSVG(templatePath?: string, embedFont?: boolean, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"createPNG",code:"createPNG(templatePath?: string, scale?: number, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"wrapText",code:"wrapText(text: string, lineLen: number): string;",desc:null,after:""},{field:"addRect",code:"addRect(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addDiamond",code:"addDiamond(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addEllipse",code:"addEllipse(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addBlob",code:"addBlob(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"refreshTextElementSize",code:"refreshTextElementSize(id: string);",desc:"Refreshes the size of the text element. Intended to be used when you copyViewElementsToEAforEditing() and then change the text in a text element and want to update the size of the text element to fit the modifid contents.",after:""},{field:"addText",code:'addText(topX: number, topY: number, text: string, formatting?: {wrapAt?: number; width?: number; height?: number; textAlign?: "left" | "center" | "right"; textVerticalAlign: "top" | "middle" | "bottom"; box?: boolean | "box" | "blob" | "ellipse" | "diamond"; boxPadding?: number; boxStrokeColor?: string;}, id?: string,): string;',desc:"If box is !null, then text will be boxed\nThe function returns the id of the TextElement. If the text element is boxed i.e. it is a sticky note, then the id of the container object",after:""},{field:"addLine",code:"addLine(points: [[x: number, y: number]]): string;",desc:null,after:""},{field:"addArrow",code:"addArrow(points: [[x: number, y: number]], formatting?: { startArrowHead?: string; endArrowHead?: string; startObjectId?: string; endObjectId?: string;},): string;",desc:null,after:""},{field:"addImage",code:"addImage(topX: number, topY: number, imageFile: TFile, scale?: boolean, anchor?: boolean): Promise;",desc:"set scale to false if you want to embed the image at 100% of its original size. Default is true which will insert a scaled image. anchor will only be evaluated if scale is false. anchor true will add |100% to the end of the filename, resulting in an image that will always pop back to 100% when the source file is updated or when the Excalidraw file is reopened. ",after:""},{field:"addEmbeddable",code:"addEmbeddable(topX: number, topY: number, width: number, height: number, url?: string, file?: TFile): string;",desc:"Adds an iframe to the drawing. If url is not null then the iframe will be loaded from the url. The url maybe a markdown link to an note in the Vault or a weblink. If url is null then the iframe will be loaded from the file. Both the url and the file may not be null.",after:""},{field:"addLaTex",code:"addLaTex(topX: number, topY: number, tex: string): Promise;",desc:null,after:""},{field:"connectObjects",code:"connectObjects(objectA: string, connectionA: ConnectionPoint, objectB: string, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): string;",desc:'type ConnectionPoint = "top" | "bottom" | "left" | "right" | null\nWhen null is passed as ConnectionPoint then Excalidraw will automatically decide\nnumberOfPoints is the number of points on the line. Default is 0 i.e. line will only have a start and end point.\nArrowHead: "triangle"|"dot"|"arrow"|"bar"|null',after:""},{field:"addLabelToLine",code:"addLabelToLine(lineId: string, label: string): string;",desc:"Adds a text label to a line or arrow. Currently only works with a simple straight 2-point (start & end) line",after:""},{field:"clear",code:"clear(): void;",desc:"Clears elementsDict and imagesDict only",after:""},{field:"reset",code:"reset(): void;",desc:"clear() + reset all style values to default",after:""},{field:"isExcalidrawFile",code:"isExcalidrawFile(f: TFile): boolean;",desc:"Returns true if MD file is an Excalidraw file",after:""},{field:"targetView",code:"targetView: ExcalidrawView;",desc:"The Obsidian view currently edited",after:""},{field:"setView",code:'setView(view: ExcalidrawView | "first" | "active"): ExcalidrawView;',desc:null,after:""},{field:"getExcalidrawAPI",code:"getExcalidrawAPI(): any;",desc:"Excalidraw API",after:""},{field:"getViewElements",code:"getViewElements(): ExcalidrawElement[];",desc:"Get elements in View",after:""},{field:"deleteViewElements",code:"deleteViewElements(el: ExcalidrawElement[]): boolean;",desc:null,after:""},{field:"getViewSelectedElement",code:"getViewSelectedElement(): ExcalidrawElement;",desc:"Get the selected element in the view, if more are selected, get the first",after:""},{field:"getViewSelectedElements",code:"getViewSelectedElements(): ExcalidrawElement[];",desc:null,after:""},{field:"getViewFileForImageElement",code:"getViewFileForImageElement(el: ExcalidrawElement): TFile | null;",desc:"Returns the TFile file handle for the image element",after:""},{field:"copyViewElementsToEAforEditing",code:"copyViewElementsToEAforEditing(elements: ExcalidrawElement[]): void;",desc:"Copies elements from view to elementsDict for editing",after:""},{field:"viewToggleFullScreen",code:"viewToggleFullScreen(forceViewMode?: boolean): void;",desc:null,after:""},{field:"connectObjectWithViewSelectedElement",code:"connectObjectWithViewSelectedElement(objectA: string, connectionA: ConnectionPoint, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): boolean;",desc:"Connect an object to the selected element in the view\nSee tooltip for connectObjects for details",after:""},{field:"addElementsToView",code:"addElementsToView(repositionToCursor?: boolean, save?: boolean, newElementsOnTop?: boolean,shouldRestoreElements?: boolean,): Promise;",desc:"Adds elements from elementsDict to the current view\nrepositionToCursor: default is false\nsave: default is true\nnewElementsOnTop: default is false, i.e. the new elements get to the bottom of the stack\nnewElementsOnTop controls whether elements created with ExcalidrawAutomate are added at the bottom of the stack or the top of the stack of elements already in the view\nNote that elements copied to the view with copyViewElementsToEAforEditing retain their position in the stack of elements in the view even if modified using EA",after:""},{field:"onDropHook",code:'onDropHook(data: {ea: ExcalidrawAutomate, event: React.DragEvent, draggable: any, type: "file" | "text" | "unknown", payload: {files: TFile[], text: string,}, excalidrawFile: TFile, view: ExcalidrawView, pointerPosition: { x: number, y: number},}): boolean;',desc:"If set Excalidraw will call this function onDrop events.\nA return of true will stop the default onDrop processing in Excalidraw.\n\ndraggable is the Obsidian draggable object\nfiles is the array of dropped files\nexcalidrawFile is the file receiving the drop event\nview is the excalidraw view receiving the drop.\npointerPosition is the pointer position on canvas at the time of drop.",after:""},{field:"mostRecentMarkdownSVG",code:"mostRecentMarkdownSVG: SVGSVGElement;",desc:"Markdown renderer will drop a copy of the most recent SVG here for debugging purposes",after:""},{field:"getEmbeddedFilesLoader",code:"getEmbeddedFilesLoader(isDark?: boolean): EmbeddedFilesLoader;",desc:"Utility function to generate EmbeddedFilesLoader object",after:""},{field:"getExportSettings",code:"getExportSettings(withBackground: boolean, withTheme: boolean,): ExportSettings;",desc:"Utility function to generate ExportSettings object",after:""},{field:"getBoundingBox",code:"getBoundingBox(elements: ExcalidrawElement[]): {topX: number, topY: number, width: number, height: number,};",desc:"Gets the bounding box of elements. The bounding box is the box encapsulating all of the elements completely.",after:""},{field:"getMaximumGroups",code:"getMaximumGroups(elements: ExcalidrawElement[]): ExcalidrawElement[][];",desc:"Elements grouped by the highest level groups",after:""},{field:"getLargestElement",code:"getLargestElement(elements: ExcalidrawElement[]): ExcalidrawElement;",desc:"Gets the largest element from a group. useful when a text element is grouped with a box, and you want to connect an arrow to the box",after:""},{field:"intersectElementWithLine",code:"intersectElementWithLine(element: ExcalidrawBindableElement, a: readonly [number, number], b: readonly [number, number], gap?: number,): Point[];",desc:"If gap is given, the element is inflated by this value.\nReturns 2 or 0 intersection points between line going through `a` and `b` and the `element`, in ascending order of distance from `a`.",after:""},{field:"getCommonGroupForElements",code:"getCommonGroupForElements(elements: ExcalidrawElement[]): string;",desc:"Gets the groupId for the group that contains all the elements, or null if such a group does not exist",after:""},{field:"getElementsInTheSameGroupWithElement",code:"getElementsInTheSameGroupWithElement(element: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];",desc:"Gets all the elements from elements[] that share one or more groupIds with element.",after:""},{field:"activeScript",code:"activeScript: string;",desc:"Mandatory to set before calling the get and set ScriptSettings functions. Set automatically by the ScriptEngine\nSee for more details: Script Engine Help",after:""},{field:"getScriptSettings",code:"getScriptSettings(): {};",desc:"Returns script settings. Saves settings in plugin settings, under the activeScript key. See for more details: Script Engine Help",after:""},{field:"setScriptSettings",code:"setScriptSettings(settings: any): Promise;",desc:"Sets script settings.\nSee for more details: Script Engine Help",after:""},{field:"openFileInNewOrAdjacentLeaf",code:"openFileInNewOrAdjacentLeaf(file: TFile): WorkspaceLeaf;",desc:"Open a file in a new workspaceleaf or reuse an existing adjacent leaf depending on Excalidraw Plugin Settings",after:""},{field:"measureText",code:"measureText(text: string): { width: number; height: number };",desc:"Measures text size based on current style settings",after:""},{field:"verifyMinimumPluginVersion",code:"verifyMinimumPluginVersion(requiredVersion: string): boolean;",desc:'Returns true if plugin version is >= than required\nrecommended use:\nif(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.20")) {new Notice("message");return;}',after:""},{field:"selectElementsInView",code:"selectElementsInView(elements: ExcalidrawElement[] | string[]):void;",desc:"You can supply a list of Excalidraw Elements or the string IDs of those elements. The elements provided will be set as selected in the targetView.",after:""},{field:"generateElementId",code:"generateElementId(): string;",desc:"Returns an 8 character long random id",after:""},{field:"cloneElement",code:"cloneElement(element: ExcalidrawElement): ExcalidrawElement;",desc:"Returns a clone of the element with a new element id",after:""},{field:"moveViewElementToZIndex",code:"moveViewElementToZIndex(elementId:number, newZIndex:number): void;",desc:"Moves the element to a specific position in the z-index",after:""},{field:"hexStringToRgb",code:"hexStringToRgb(color: string):number[];",desc:"Converts a HEX color to an RGB number array. #FF0000 to [255,0,0]",after:""},{field:"rgbToHexString",code:"rgbToHexString(color: number[]):string;",desc:"Converts an RGB number array to a HEX string. [255,0,0] to #FF0000",after:""},{field:"hslToRgb",code:"hslToRgb(color: number[]):number[];",desc:"Converts an HSL number array to an RGB number array. [0,100,50] to [255,0,0]",after:""},{field:"rgbToHsl",code:"rgbToHsl(color:number[]):number[];",desc:"Converts an RGB number array to an HSL number array. [255,0,0] to [0,100,50]",after:""},{field:"colorNameToHex",code:"colorNameToHex(color:string):string;",desc:"Converts a CSS color name to its HEX color equivalent. 'White' to #FFFFFF",after:""},{field:"obsidian",code:"obsidian",desc:"Access functions and objects available on the Obsidian Module",after:""},{field:"getAttachmentFilepath",code:"async getAttachmentFilepath(filename: string): Promise",desc:"This asynchronous function should be awaited. It retrieves the filepath to a new file, taking into account the attachments preference settings in Obsidian. If the attachment folder doesn't exist, it creates it. The function returns the complete path to the file. If the provided filename already exists, the function will append '_[number]' before the extension to generate a unique filename.",after:""},{field:"setViewModeEnabled",code:"setViewModeEnabled(enabled: boolean): void;",desc:"Sets Excalidraw in the targetView to view-mode",after:""},{field:"viewUpdateScene",code:"viewUpdateScene(scene:{elements?:ExcalidrawElement[],appState?: AppState,files?: BinaryFileData,commitToHistory?: boolean,},restore:boolean=false):void",desc:"Calls the ExcalidrawAPI updateScene function for the targetView. When restore=true, excalidraw will try to correct errors in the scene such as setting default values to missing element properties.",after:""},{field:"viewZoomToElements",code:"viewZoomToElements(selectElements: boolean,elements: ExcalidrawElement[]):void",desc:"Zoom tarteView to fit elements provided as input. elements === [] will zoom to fit the entire scene. SelectElements toggles whether the elements should be in a selected state at the end of the operation.",after:""}],EXCALIDRAW_SCRIPTENGINE_INFO=[{field:"inputPrompt",code:"inputPrompt: (header: string, placeholder?: string, value?: string, buttons?: {caption:string, tooltip?:string, action:Function}[], lines?: number, displayEditorButtons?: boolean, customComponents?: (container: HTMLElement) => void, blockPointerInputOutsideModal?: boolean);",desc:"Opens a prompt that asks for an input.\nReturns a string with the input.\nYou need to await the result of inputPrompt.\nEditor buttons are text editing buttons like delete, enter, allcaps - these are only displayed if lines is greater than 1 \nCustom components are components that you can add to the prompt. These will be displayed between the text input area and the buttons.\nblockPointerInputOutsideModal will block pointer input outside the modal. This is useful if you want to prevent the user accidently closing the modal or interacting with the excalidraw canvas while the prompt is open.\nbuttons.action(input: string) => string\nThe button action function will receive the actual input string. If action returns null, input will be unchanged. If action returns a string, input will receive that value when the promise is resolved. example:\nlet fileType = '';\nconst filename = await utils.inputPrompt (\n 'Filename',\n '',\n '',\n, [\n {\n caption: 'Markdown',\n action: ()=>{fileType='md';return;}\n },\n {\n caption: 'Excalidraw',\n action: ()=>{fileType='ex';return;}\n }\n ]\n);",after:""},{field:"suggester",code:"suggester: (displayItems: string[], items: any[], hint?: string, instructions?:Instruction[]);",desc:"Opens a suggester. Displays the displayItems and returns the corresponding item from items[]\nYou need to await the result of suggester.\nIf the user cancels (ESC), suggester will return undefined\nHint and instructions are optional\n\ninterface Instruction {command: string;purpose: string;}",after:""},{field:"scriptFile",code:"scriptFile: TFile",desc:"The TFile of the currently running script",after:""}],FRONTMATTER_KEYS_INFO=[{field:"plugin",code:null,desc:"Denotes an excalidraw file. If key is not present, the file will not be recognized as an Excalidarw file. Valid values are 'parsed' and 'raw'",after:": parsed"},{field:"link-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid internal link. Set to empty string if you do not want to show a prefix",after:': "📍"'},{field:"url-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid external link. Set to empty string if you do not want to show a prefix",after:': "🌐"'},{field:"link-brackets",code:null,desc:"Set to true, if you want to display [[square brackets]] around the links in Text Elements",after:": true"},{field:"default-mode",code:null,desc:"Specifies how Excalidraw should open by default. Valid values are: view|zen",after:": view"},{field:"linkbutton-opacity",code:null,desc:"The opacity of the blue link button in the top right of the element overriding the respective setting in plugin settings. Valid values are between 0 and 1, where 0 means the button is transparent.",after:": 0.5"},{field:"onload-script",code:null,desc:"The value of this field will be executed as javascript code using the Script Engine environment. Use this to initiate custom actions or logic when loading your drawing.",after:': "new Notice(`Hello World!\\n\\nFile: ${ea.targetView.file.basename}`);"'},{field:"font",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: Virgil|Cascadia|font_file_name.extension",after:": Virgil"},{field:"font-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"border-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"css",code:null,desc:'This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this front matter keys to your markdown document. Valid values are: "css-filename|css snippet"',after:': ""'},{field:"export-transparent",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Transparent / false == with background",after:": true"},{field:"export-dark",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Dark mode / false == light mode",after:": true"},{field:"export-padding",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects both SVG and PNG export. Specify the export padding for the image.",after:": 5"},{field:"export-pngscale",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.",after:": 1"},{field:"autoexport",code:null,desc:"Override autoexport settings for this file. Valid values are\nnone\nboth\npng\nsvg",after:": png"},{field:"iframe-theme",code:null,desc:"Override iFrame theme plugin-settings for this file. 'match' will match the Excalidraw theme, 'default' will match the obsidian theme. Valid values are\ndark\nlight\nauto\ndefault",after:": auto"}];class FieldSuggester extends obsidian_module.EditorSuggest{constructor(e){super(e.app),this.getSuggestions=e=>{const t=e.query.toLowerCase();return("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).map((e=>e.field)).filter((e=>e.toLowerCase().includes(t)))},this.plugin=e}onTrigger(e,t,A){var i,n,a,r,s;if(this.plugin.settings.fieldSuggester){const A=t.getLine(e.line).substring(0,e.ch),o=null!==(r=null!==(n=null===(i=A.match(/^excalidraw-(.*)$/))||void 0===i?void 0:i[1])&&void 0!==n?n:null===(a=A.match(/(^ea|\Wea)\.([\w\.]*)$/))||void 0===a?void 0:a[2])&&void 0!==r?r:null===(s=A.match(/(^utils|\Wutils)\.([\w\.]*)$/))||void 0===s?void 0:s[2];if(void 0!==o)return this.suggestType=A.match(/^excalidraw-(.*)$/)?"excalidraw":A.match(/(^ea|\Wea)\.([\w\.]*)$/)?"ea":"utils",this.latestTriggerInfo={end:e,start:{ch:e.ch-o.length,line:e.line},query:o},this.latestTriggerInfo}return null}renderSuggestion(e,t){const A=e.replace("ea"===this.suggestType?"ea.":"utils"===this.suggestType?"utils.":"excalidraw-",""),i=("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).find((t=>t.field===e));t.createEl("b",{text:A}),t.createEl("br"),i.code&&t.createEl("code",{text:i.code}),i.desc&&t.createDiv("div",(e=>e.innerHTML=i.desc))}selectSuggestion(e){var t;const{context:A}=this;if(A){const i="ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO,n=`${e}${null===(t=i.find((t=>t.field===e)))||void 0===t?void 0:t.after}`;if(A.editor.replaceRange(n,this.latestTriggerInfo.start,this.latestTriggerInfo.end),this.latestTriggerInfo.start.ch===this.latestTriggerInfo.end.ch){const e=this.latestTriggerInfo.end;e.ch+=n.length,A.editor.setCursor(e)}}}}class FrontmatterEditor{constructor(e){this.initialized=!1,this.dataWOfrontmatter=e;const t=(e=e.replaceAll("\r\n","\n").replaceAll("\r","\n")).split(/^---(?:.|\n)*(?:^---\n)/gm);2===t.length&&(this.dataWOfrontmatter=t[1],this.frontmatterStr=e.match(/^---((?:.|\n)*)(?:^---\n)/gm)[0].replaceAll(/(^---\n|^\n)/gm,"").trim()+"\n",this.initialized=!0)}hasKey(e){if(!this.initialized)return!1;const t=new RegExp(`^${e}:`,"gm");return Boolean(this.frontmatterStr.match(t))}setKey(e,t){if(this.initialized)if(t=t.replaceAll("\r\n","\n").replaceAll("\r","\n").replaceAll(":",";").trim().split("\n").join(" "),this.hasKey(e)){const A=new RegExp(`^${e}:.*\\n(?:\\s\\s.*\\n)*`,"gm");this.frontmatterStr=this.frontmatterStr.split(A).join("\n").trim()+`\n${e}: ${t}`}else this.frontmatterStr=this.frontmatterStr.trim()+`\n${e}: ${t}`}get data(){return this.initialized?["---",this.frontmatterStr,"---",this.dataWOfrontmatter].join("\n"):this.dataWOfrontmatter}}const TASKBONE_URL="https://api.taskbone.com/",TASKBONE_OCR_FN="execute?id=60f394af-85f6-40bc-9613-5d26dc283cbb";class Taskbone{get apiKey(){return this.plugin.settings.taskboneAPIkey}constructor(e){this.plugin=e}async initialize(e=!0){var t;if(""!==this.plugin.settings.taskboneAPIkey)return;const A=await obsidian_module.requestUrl({url:`${TASKBONE_URL}users/excalidraw-obsidian/identities`,method:"post",contentType:"application/json",throw:!1});if(!A)return;const i=null===(t=A.json)||void 0===t?void 0:t.apiKey;return i&&"string"==typeof i&&(e&&await this.plugin.loadSettings(),this.plugin.settings.taskboneAPIkey=i,e&&await this.plugin.saveSettings()),i}async getTextForView(e,t){await e.forceSave(!0);const A=e.excalidrawAPI.getSceneElements().filter((t=>{var A;return"freedraw"===t.type||"image"===t.type&&!this.plugin.isExcalidrawFile(null===(A=e.excalidrawData.getFile(t.fileId))||void 0===A?void 0:A.file)}));if(0===A.length)return void new obsidian_module.Notice("Aborting OCR because there are no image or freedraw elements on the canvas.",4e3);const i=new FrontmatterEditor(e.data);if(i.hasKey("taskbone-ocr")&&!t)return void new obsidian_module.Notice("The drawing has already been processed, you will find the result in the frontmatter in markdown view mode. If you ran the command from the Obsidian Panel in Excalidraw then you can CTRL(CMD)+click the command to force the rescaning.",4e3);const n=this.plugin.ea.getBoundingBox(A),a=n.width*n.height,r=Math.sqrt(36e4/a),s=Math.sqrt(a/16e6),o=r>1?r:s>1?1/s:1,l=new EmbeddedFilesLoader(this.plugin,!1),c=await createPNG(e.file.path+"#^taskbone",o,{withBackground:!0,withTheme:!0},l,"light",null,null,[],this.plugin,0),d=await this.getTextForImage(c);d&&(i.setKey("taskbone-ocr",d),e.data=i.data,e.save(!1),window.navigator.clipboard.writeText(d),new obsidian_module.Notice("I placed the recognized in the drawing's frontmatter and onto the system clipboard."))}async getTextForImage(e){""===this.apiKey&&await this.initialize();const t={records:[{image:await blobToBase64(e)}]},A=await obsidian_module.requestUrl({url:"https://api.taskbone.com/execute?id=60f394af-85f6-40bc-9613-5d26dc283cbb",method:"post",contentType:"application/json",body:JSON.stringify(t),headers:{authorization:`Bearer ${this.apiKey}`},throw:!1}),i=null==A?void 0:A.json;return i&&200===A.status?i.records[0].text:(new obsidian_module.Notice("Something went wrong while processing your request. Please check developer console for more information"),void log(A))}}class ExcalidrawPlugin extends obsidian_module.Plugin{constructor(e,t){super(e,t),this.excalidrawFiles=new Set,this.excalidrawFileModes={},this._loaded=!1,this.activeExcalidrawView=null,this.lastActiveExcalidrawFilePath=null,this.hover={linkText:null,sourcePath:null},this.opencount=0,this.filesMaster=null,this.equationsMaster=null,this.mathjax=null,this.mathjaxDiv=null,this.mathjaxLoaderFinished=!1,this.fourthFontDef=VIRGIL_FONT,this.packageMap=new WeakMap,this.leafChangeTimeout=null,this.popScope=null,this.filesMaster=new Map,this.equationsMaster=new Map}getPackage(e){if(e===window)return{react:react,reactDOM:reactDOM,excalidrawLib:excalidrawLib};if(this.packageMap.has(e))return this.packageMap.get(e);const{react:t,reactDOM:A,excalidrawLib:i}=e.eval.call(e,`(function() {\n ${lzStringExports.decompressFromBase64(EXCALIDRAW_PACKAGES)};\n return {react:React,reactDOM:ReactDOM,excalidrawLib:ExcalidrawLib};\n })()`);return this.packageMap.set(e,{react:t,reactDOM:A,excalidrawLib:i}),{react:t,reactDOM:A,excalidrawLib:i}}async onload(){if(obsidian_module.addIcon(ICON_NAME,EXCALIDRAW_ICON),obsidian_module.addIcon("ScriptEngine",SCRIPTENGINE_ICON),obsidian_module.addIcon("export-img",EXPORT_IMG_ICON),await this.loadSettings({reEnableAutosave:!0}),imageCache.plugin=this,this.addSettingTab(new ExcalidrawSettingTab(this.app,this)),this.ea=await initExcalidrawAutomate(this),this.registerView("excalidraw",(e=>new ExcalidrawView(e,this))),this.registerExtensions(["excalidraw"],"excalidraw"),this.addMarkdownPostProcessor(),this.registerInstallCodeblockProcessor(),this.addThemeObserver(),this.experimentalFileTypeDisplayToggle(this.settings.experimentalFileType),this.registerCommands(),this.registerEventListeners(),this.initializeFourthFont(),this.registerEditorSuggest(new FieldSuggester(this)),this.registerMonkeyPatches(),this.settings.showReleaseNotes){const e="0.0.0"===this.settings.previousRelease;isVersionNewerThanOther(PLUGIN_VERSION,this.settings.previousRelease)&&new ReleaseNotes(this.app,this,e?null:PLUGIN_VERSION).open()}this.switchToExcalidarwAfterLoad(),this.loadMathJax();const e=this;this.app.workspace.onLayoutReady((()=>{this.scriptEngine=new ScriptEngine(e)})),this.taskbone=new Taskbone(this)}initializeFourthFont(){this.app.workspace.onLayoutReady((async()=>{const e=await getFontDataURL(this.app,this.settings.experimantalFourthFont,"","LocalFont"),t=""===e.dataURL?VIRGIL_DATAURL:e.dataURL;this.fourthFontDef=e.fontDef;const A=new Set;app.workspace.iterateAllLeaves((e=>{const i=app.isMobile?document:e.view.containerEl.ownerDocument;if(!i)return;if(A.has(i))return;A.add(i);const n=i.createElement("style");n.id="local-font-stylesheet",n.textContent=`\n @font-face {\n font-family: 'LocalFont';\n src: url("${t}");\n font-display: swap;\n }\n `;const a=i.getElementById(n.id);i.head.appendChild(n),a&&i.head.removeChild(a),i.fonts.load("20px LocalFont")}))}))}loadMathJax(){const e=this;this.app.workspace.onLayoutReady((async()=>{await obsidian_module.loadMathJax();try{e.mathjaxDiv&&(document.body.removeChild(e.mathjaxDiv),e.mathjax=null,e.mathjaxLoaderFinished=!1),e.mathjaxDiv=document.body.createDiv(),e.mathjaxDiv.title="Excalidraw MathJax Support",e.mathjaxDiv.style.display="none";const t=e.mathjaxDiv.createEl("iframe");t.title="Excalidraw MathJax Support";const A=t.contentWindow.document,i=A.createElement("script");i.type="text/javascript",i.onload=()=>{const A=t.contentWindow;A.MathJax.startup.pagePromise.then((async()=>{const t=app.vault.getAbstractFileByPath("preamble.sty"),i=t&&t instanceof obsidian_module.TFile?await app.vault.read(t):null;try{i&&await A.MathJax.tex2svg(i)}catch(t){errorlog({where:e.loadMathJax,description:"Unexpected error while loading preamble.sty",error:t})}e.mathjax=A.MathJax,e.mathjaxLoaderFinished=!0}))},i.src=e.settings.mathjaxSourceURL,A.head.appendChild(i)}catch(t){new obsidian_module.Notice("Excalidraw: Error initializing LaTeX support"),e.mathjaxLoaderFinished=!0}}))}switchToExcalidarwAfterLoad(){const e=this;this.app.workspace.onLayoutReady((()=>{let t;for(t of app.workspace.getLeavesOfType("markdown"))t.view instanceof obsidian_module.MarkdownView&&e.isExcalidrawFile(t.view.file)&&(e.excalidrawFileModes[t.id||t.view.file.path]="excalidraw",e.setExcalidrawView(t))}))}forceSaveActiveView(e){if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.forceSave(),!0)}registerInstallCodeblockProcessor(){const e=async(e,t)=>{let A=null;try{const e=t.parentElement.querySelector(`a[href="#${t.previousElementSibling.getAttribute("data-heading")}"]`);e.style.paddingRight="10px",A=e.parentElement.createEl("button",null,(e=>{e.setText(t$d("UPDATE_SCRIPT")),e.addClass("mod-muted"),e.style.backgroundColor="var(--interactive-success)",e.style.display="none"}))}catch(t){errorlog({where:"this.registerInstallCodeblockProcessor",source:e,error:t})}e=e.trim(),t.createEl("button",null,(async t=>{var i;const n=e=>{switch(A&&(A.style.display="none"),e){case"CHECKING":t.setText(t$d("CHECKING_SCRIPT")),t.style.backgroundColor="var(--interactive-normal)";break;case"INSTALL":t.setText(t$d("INSTALL_SCRIPT")),t.style.backgroundColor="var(--interactive-accent)";break;case"UPTODATE":t.setText(t$d("UPTODATE_SCRIPT")),t.style.backgroundColor="var(--interactive-normal)";break;case"UPDATE":t.setText(t$d("UPDATE_SCRIPT")),t.style.backgroundColor="var(--interactive-success)",A&&(A.style.display=null);break;case"ERROR":t.setText(t$d("UNABLETOCHECK_SCRIPT")),t.style.backgroundColor="var(--interactive-normal)"}};t.addClass("mod-muted");let a=e;try{a=decodeURI(e)}catch(t){errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",source:e,error:t})}const r=a.substring(a.lastIndexOf("/")+1),s=`${this.settings.scriptFolderPath}/Downloaded`,o=app.vault.getFiles().filter((e=>e.path.startsWith(s)&&e.name===r)).sort(((e,t)=>e.path>t.path?1:-1));let l=o[0];const c=null!==(i=null==l?void 0:l.path)&&void 0!==i?i:`${s}/${r}`,d=getIMGFilename(c,"svg");let h=this.app.vault.getAbstractFileByPath(d);if(n(l?"CHECKING":"INSTALL"),t.onclick=async()=>{const t=async(e,t,A)=>{const i=await obsidian_module.request({url:e});return!i||i.startsWith("404: Not Found")?null:(t?await this.app.vault.modify(t,i):(await checkAndCreateFolder(s),t=await this.app.vault.create(A,i)),t)};try{if(l=await t(e,l,c),!l)throw n("ERROR"),"File not found";h=await t(getIMGFilename(e,"svg"),h,d),n("UPTODATE"),0===Object.keys(this.scriptEngine.scriptIconMap).length&&this.scriptEngine.loadScripts(),new obsidian_module.Notice(`Installed: ${l.basename}`)}catch(e){new obsidian_module.Notice(`Error installing script: ${r}`),errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",error:e})}},A&&(A.onclick=t.onclick),!(l&&l instanceof obsidian_module.TFile))return;const u=new Map;JSON.parse(await obsidian_module.request({url:"https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/directory-info.json"})).forEach((e=>u.set(e.fname,e.mtime)));const g=(e,t)=>{if(0===u.size||!u.has(e))return"ERROR";const A=u.get(e);return!t||A>t.stat.mtime?"UPDATE":"UPTODATE"},p=g(r,l),m=g(getIMGFilename(r,"svg"),h&&h instanceof obsidian_module.TFile?h:null);n("UPTODATE"===p&&"UPTODATE"===m||"UPTODATE"===p&&"ERROR"===m?"UPTODATE":"ERROR"===p?"ERROR":"UPDATE"===p||"UPDATE"===m?"UPDATE":"UPTODATE")}))};this.registerMarkdownCodeBlockProcessor(SCRIPT_INSTALL_CODEBLOCK,(async(t,A)=>{A.addEventListener(RERENDER_EVENT,(async i=>{i.stopPropagation(),A.empty(),e(t,A)})),e(t,A)}))}addMarkdownPostProcessor(){initializeMarkdownPostProcessor(this),this.registerMarkdownPostProcessor(markdownPostProcessor),this.registerEvent(this.app.workspace.on("hover-link",hoverEvent)),this.observer=observer,this.observer.observe(document,{childList:!0,subtree:!0})}addThemeObserver(){this.themeObserver=new MutationObserver((async e=>{var t,A,i,n,a,r,s,o;if(!this.settings.matchThemeTrigger)return;if((null===(t=e[0])||void 0===t?void 0:t.oldValue)===(null===(i=null===(A=e[0])||void 0===A?void 0:A.target)||void 0===i?void 0:i.getAttribute("class")))return;if((null===(a=null===(n=e[0])||void 0===n?void 0:n.oldValue)||void 0===a?void 0:a.includes("theme-dark"))===(null===(o=null===(s=null===(r=e[0])||void 0===r?void 0:r.target)||void 0===s?void 0:s.classList)||void 0===o?void 0:o.contains("theme-dark")))return;const l=isObsidianThemeDark()?"dark":"light";this.app.workspace.getLeavesOfType("excalidraw").forEach((e=>{const t=e.view;t.file&&t.excalidrawRef&&t.setTheme(l)}))})),this.themeObserver.observe(document.body,{attributeOldValue:!0,attributeFilter:["class"]})}experimentalFileTypeDisplayToggle(e){e?this.experimentalFileTypeDisplay():(this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.fileExplorerObserver=null)}experimentalFileTypeDisplay(){const e=e=>{if(1!=e.childElementCount)return;const t=e.getAttribute("data-path");if(!t)return;const A=this.app.vault.getAbstractFileByPath(t);A&&A instanceof obsidian_module.TFile&&this.isExcalidrawFile(A)&&e.insertBefore(createDiv({cls:"nav-file-tag",text:this.settings.experimentalFileTag}),e.firstChild)};this.fileExplorerObserver=new MutationObserver((t=>{const A=t.filter((e=>e.addedNodes.length>0));A.forEach((t=>{t.addedNodes.forEach((t=>{t instanceof Element&&t.querySelectorAll(".nav-file-title").forEach(e)}))}))}));const t=this;this.app.workspace.onLayoutReady((()=>{document.querySelectorAll(".nav-file-title").forEach(e),t.fileExplorerObserver.observe(document.querySelector(".workspace"),{childList:!0,subtree:!0})}))}registerCommands(){this.openDialog=new OpenFileDialog(this.app,this),this.insertLinkDialog=new InsertLinkDialog(this.app),this.insertImageDialog=new InsertImageDialog(this),this.importSVGDialog=new ImportSVGDialog(this),this.insertMDDialog=new InsertMDDialog(this),this.addRibbonIcon(ICON_NAME,t$d("CREATE_NEW"),(async e=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),linkClickModifierType(emulateCTRLClickForLinks(e)))})),this.registerEvent(this.app.workspace.on("file-menu",((e,t)=>{e.addItem((e=>{e.setTitle(t$d("CREATE_NEW")).setIcon(ICON_NAME).onClick((e=>{let A=t.path;t instanceof obsidian_module.TFile&&(A=obsidian_module.normalizePath(t.path.substr(0,t.path.lastIndexOf(t.name)))),this.createAndOpenDrawing(getDrawingFilename(this.settings),linkClickModifierType(emulateCTRLClickForLinks(e)),A)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((e,t)=>{t instanceof obsidian_module.TFile&&"excalidraw"==t.extension&&e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE_KEEP_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(t,!1,!1)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((e,t)=>{t instanceof obsidian_module.TFile&&"excalidraw"==t.extension&&e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE_REPLACE_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(t,!0,!0)}))}))}))),this.addCommand({id:"excalidraw-disable-autosave",name:t$d("TEMPORARY_DISABLE_AUTOSAVE"),checkCallback:e=>!!this.settings.autosave&&(e||(this.settings.autosave=!1),!0)}),this.addCommand({id:"excalidraw-enable-autosave",name:t$d("TEMPORARY_ENABLE_AUTOSAVE"),checkCallback:e=>!this.settings.autosave&&(e||(this.settings.autosave=!0),!0)}),this.addCommand({id:"excalidraw-download-lib",name:t$d("DOWNLOAD_LIBRARY"),callback:this.exportLibrary}),this.addCommand({id:"excalidraw-open",name:t$d("OPEN_EXISTING_NEW_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!0)}}),this.addCommand({id:"excalidraw-open-on-current",name:t$d("OPEN_EXISTING_ACTIVE_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!1)}}),this.addCommand({id:"excalidraw-insert-transclusion",name:t$d("TRANSCLUDE"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(this.openDialog.start(openDialogAction.insertLinkToDrawing,!1),!0)}),this.addCommand({id:"excalidraw-insert-last-active-transclusion",name:t$d("TRANSCLUDE_MOST_RECENT"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView))&&null!=this.lastActiveExcalidrawFilePath;const t=this.app.vault.getAbstractFileByPath(this.lastActiveExcalidrawFilePath);return t instanceof obsidian_module.TFile&&(this.embedDrawing(t),!0)}}),this.addCommand({id:"excalidraw-autocreate",name:t$d("NEW_IN_NEW_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"new-pane")}}),this.addCommand({id:"excalidraw-autocreate-newtab",name:t$d("NEW_IN_NEW_TAB"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"new-tab")}}),this.addCommand({id:"excalidraw-autocreate-on-current",name:t$d("NEW_IN_ACTIVE_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"active-pane")}}),this.addCommand({id:"excalidraw-autocreate-popout",name:t$d("NEW_IN_POPOUT_WINDOW"),checkCallback:e=>{if(e)return!app.isMobile;this.createAndOpenDrawing(getDrawingFilename(this.settings),"popout-window")}});const e=async e=>{const t=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(!t)return;const A=getEmbedFilename(t.file.basename,this.settings),i=this.settings.embedUseExcalidrawFolder?null:(await getAttachmentsFolderAndFilePath(this.app,t.file.path,A)).folder,n=await this.createDrawing(A,i);await this.embedDrawing(n),this.openDrawing(n,e,!0,void 0,!0)};this.addCommand({id:"excalidraw-autocreate-and-embed",name:t$d("NEW_IN_NEW_PANE_EMBED"),checkCallback:t=>t?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("new-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-new-tab",name:t$d("NEW_IN_NEW_TAB_EMBED"),checkCallback:t=>t?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("new-tab"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-on-current",name:t$d("NEW_IN_ACTIVE_PANE_EMBED"),checkCallback:t=>t?Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("active-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-popout",name:t$d("NEW_IN_POPOUT_WINDOW_EMBED"),checkCallback:t=>t?!app.isMobile&&Boolean(this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView)):(e("popout-window"),!0)}),this.addCommand({id:"run-ocr",name:t$d("RUN_OCR"),checkCallback:e=>{const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return e?Boolean(t):!!t&&(this.settings.taskboneEnabled?(this.taskbone.getTextForView(t,!1),!0):(new obsidian_module.Notice("Taskbone OCR is not enabled. Please go to plugins settings to enable it.",4e3),!0))}}),this.addCommand({id:"search-text",name:t$d("SEARCH"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(search(t),!0)}}),this.addCommand({id:"fullscreen",name:t$d("TOGGLE_FULLSCREEN"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.isFullscreen()?t.exitFullscreen():t.gotoFullscreen(),!0)}}),this.addCommand({id:"disable-binding",name:t$d("TOGGLE_DISABLEBINDING"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.toggleDisableBinding(),!0)}}),this.addCommand({id:"disable-framerendering",name:t$d("TOGGLE_FRAME_RENDERING"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.toggleFrameRendering(),!0)}}),this.addCommand({id:"disable-frameclipping",name:t$d("TOGGLE_FRAME_CLIPPING"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.toggleFrameClipping(),!0)}}),this.addCommand({id:"export-image",name:t$d("EXPORT_IMAGE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.exportDialog||(t.exportDialog=new ExportDialog(this,t,t.file),t.exportDialog.createForm()),t.exportDialog.open(),!0)}}),this.forceSaveCommand=this.addCommand({id:"save",hotkeys:[{modifiers:["Ctrl"],key:"s"}],name:t$d("FORCE_SAVE"),checkCallback:e=>this.forceSaveActiveView(e)}),this.addCommand({id:"toggle-lock",hotkeys:[{modifiers:["Ctrl","Shift"],key:"e"}],name:t$d("TOGGLE_LOCK"),checkCallback:e=>{if(e)return!!Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))&&!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode;const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!t||t.compatibilityMode||(t.changeTextMode(t.textMode===TextMode.parsed?TextMode.raw:TextMode.parsed),0))}}),this.addCommand({id:"scriptengine-store",name:t$d("INSTALL_SCRIPT_BUTTON"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ScriptInstallPrompt(this).open(),!0)}),this.addCommand({id:"delete-file",name:t$d("DELETE_FILE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(t){this.ea.reset(),this.ea.setView(t);const e=this.ea.getViewSelectedElement();if("image"!==e.type)return new obsidian_module.Notice("Please select an image or embedded markdown document",4e3),!0;const A=this.ea.getViewFileForImageElement(e);return A?(this.app.vault.delete(A),this.ea.deleteViewElements([e]),!0):(new obsidian_module.Notice("Please select an image or embedded markdown document",4e3),!0)}return!1}}),this.addCommand({id:"insert-link",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(this.insertLinkDialog.start(t.file.path,t.addText),!0)}}),this.addCommand({id:"insert-link-to-element",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK_TO_ELEMENT_NORMAL"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.copyLinkToSelectedElementToClipboard(""),!0)}}),this.addCommand({id:"insert-link-to-element-group",name:t$d("INSERT_LINK_TO_ELEMENT_GROUP"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.copyLinkToSelectedElementToClipboard("group="),!0)}}),this.addCommand({id:"insert-link-to-element-frame",name:t$d("INSERT_LINK_TO_ELEMENT_FRAME"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.copyLinkToSelectedElementToClipboard("frame="),!0)}}),this.addCommand({id:"insert-link-to-element-area",name:t$d("INSERT_LINK_TO_ELEMENT_AREA"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(t.copyLinkToSelectedElementToClipboard("area="),!0)}}),this.addCommand({id:"toggle-lefthanded-mode",name:t$d("TOGGLE_LEFTHANDED_MODE"),checkCallback:e=>{if(e){if(this.app.workspace.getActiveViewOfType(ExcalidrawView)){const e=this.app.workspace.getActiveViewOfType(ExcalidrawView),t=null==e?void 0:e.excalidrawAPI;return!!t&&!!t.getAppState().trayModeEnabled}return!1}return this.app.workspace.getActiveViewOfType(ExcalidrawView),(async()=>{const e=this.settings.isLeftHanded;await this.loadSettings({applyLefthandedMode:!1}),this.settings.isLeftHanded=!e,this.saveSettings(),setLeftHandedMode(!e),setTimeout((()=>setLeftHandedMode(!e)))})(),!0}}),this.addCommand({id:"reset-image-to-100",name:t$d("RESET_IMG_TO_100"),checkCallback:e=>{const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!t)return!1;if(!t.excalidrawAPI)return!1;const A=t.getViewSelectedElements().filter((e=>"image"===e.type));if(1!==A.length)return e||new obsidian_module.Notice("Select a single image element and try again"),!1;const i=A[0];return t.excalidrawData.getFile(i.fileId)?!!e||void(async()=>{const e=new ExcalidrawAutomate(this,t),n=await e.getOriginalImageSize(i);if(n){e.copyViewElementsToEAforEditing(A);const t=e.getElement(i.id);t.width=n.width,t.height=n.height,e.addElementsToView(!1,!1,!1)}})():(e||new obsidian_module.Notice("Select a single image element and try again"),!1)}}),this.addCommand({id:"insert-image",name:t$d("INSERT_IMAGE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(this.insertImageDialog.start(t),!0)}}),this.addCommand({id:"import-svg",name:t$d("IMPORT_SVG"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(this.importSVGDialog.start(t),!0)}}),this.addCommand({id:"release-notes",name:t$d("READ_RELEASE_NOTES"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ReleaseNotes(this.app,this,PLUGIN_VERSION).open(),!0)}),this.addCommand({id:"tray-mode",name:t$d("TRAY_MODE"),checkCallback:e=>{if(e){const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!e||!e.excalidrawRef)return!1;const t=e.excalidrawAPI.getAppState();return!t.zenModeEnabled&&!t.viewModeEnabled}const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!t||!t.excalidrawAPI||(t.toggleTrayMode(),0))}}),this.addCommand({id:"insert-md",name:t$d("INSERT_MD"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(this.insertMDDialog.start(t),!0)}}),this.addCommand({id:"insert-pdf",name:t$d("INSERT_PDF"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(new InsertPDFModal(this,t).open(),!0)}}),this.addCommand({id:"universal-add-file",name:t$d("UNIVERSAL_ADD_FILE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(new UniversalInsertFileModal(this,t).open(),!0)}}),this.addCommand({id:"insert-LaTeX-symbol",name:t$d("INSERT_LATEX"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const t=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!t&&(insertLaTeXToView(t),!0)}}),this.addCommand({id:"toggle-excalidraw-view",name:t$d("TOGGLE_MODE"),checkCallback:e=>{const t=this.app.workspace.getActiveFile();if(!t)return!1;const A=this.isExcalidrawFile(t);if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))?!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode:A;const i=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(i){const e=i.leaf;return this.excalidrawFileModes[e.id||t.path]="markdown",void this.setMarkdownView(e)}const n=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(n&&A){const e=n.leaf;return this.excalidrawFileModes[e.id||t.path]="excalidraw",void this.setExcalidrawView(e)}}}),this.addCommand({id:"convert-to-excalidraw",name:t$d("CONVERT_NOTE_TO_EXCALIDRAW"),checkCallback:e=>{const t=this.app.workspace.getActiveFile(),A=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(!t||!A)return!1;const i=0===t.stat.size;if(e)return i;i&&(async()=>{await this.app.vault.modify(t,await this.getBlankDrawing()),this.setExcalidrawView(A.leaf)})()}}),this.addCommand({id:"convert-excalidraw",name:t$d("CONVERT_EXCALIDRAW"),checkCallback:e=>{if(e){const e=this.app.vault.getFiles().filter((e=>"excalidraw"==e.extension));return e.length>0}return this.convertExcalidrawToMD(),!0}})}async convertSingleExcalidrawToMD(e,t=!1,A=!1){const i=await this.app.vault.read(e),n=e.name.substring(0,e.name.lastIndexOf(".excalidraw"))+(t?".md":".excalidraw.md"),a=getNewUniqueFilepath(this.app.vault,n,obsidian_module.normalizePath(e.path.substring(0,e.path.lastIndexOf(e.name))));log(a);const r=await this.app.vault.create(a,FRONTMATTER+await this.exportSceneToMD(i));return this.settings.keepInSync&&EXPORT_TYPES.forEach((t=>{const A=e.path.substring(0,e.path.lastIndexOf(".excalidraw"))+t,i=this.app.vault.getAbstractFileByPath(obsidian_module.normalizePath(A));if(i&&i instanceof obsidian_module.TFile){const e=a.substring(0,a.lastIndexOf(".md"))+t;this.app.fileManager.renameFile(i,e)}})),A||this.app.vault.delete(e),r}async convertExcalidrawToMD(e=!1,t=!1){const A=this.app.vault.getFiles().filter((e=>"excalidraw"==e.extension));for(const i of A)this.convertSingleExcalidrawToMD(i,e,t);new obsidian_module.Notice(`Converted ${A.length} files.`)}registerMonkeyPatches(){var e,t;(null===(t=null===(e=app.plugins)||void 0===e?void 0:e.plugins)||void 0===t?void 0:t["obsidian-hover-editor"])||this.register(around(obsidian_module.WorkspaceLeaf.prototype,{getRoot:e=>function(){const t=e.call(this);return t.getRoot===this.getRoot?t:t.getRoot()}})),this.registerEvent(app.workspace.on("editor-menu",((e,t,A)=>{if(!(A&&A instanceof obsidian_module.MarkdownView))return;const i=A.file,n=A.leaf;if(!A.file)return;const a=this.app.metadataCache.getFileCache(i);(null==a?void 0:a.frontmatter)&&a.frontmatter[FRONTMATTER_KEY]&&e.addItem((e=>e.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("excalidraw").onClick((()=>{this.excalidrawFileModes[n.id||i.path]="excalidraw",this.setExcalidrawView(n)}))))}))),this.registerEvent(app.workspace.on("file-menu",((e,t,A,i)=>{if(!(i&&i.view instanceof obsidian_module.MarkdownView))return;if(!(t instanceof obsidian_module.TFile))return;const n=this.app.metadataCache.getFileCache(t);(null==n?void 0:n.frontmatter)&&n.frontmatter[FRONTMATTER_KEY]&&(e.addItem((e=>{e.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("pane").onClick((()=>{this.excalidrawFileModes[i.id||t.path]="excalidraw",this.setExcalidrawView(i)}))})),e.items.unshift(e.items.pop()))})));const A=this;this.register(around(obsidian_module.WorkspaceLeaf.prototype,{detach:e=>function(){var t;const i=null===(t=this.view)||void 0===t?void 0:t.getState();return(null==i?void 0:i.file)&&A.excalidrawFileModes[this.id||i.file]&&delete A.excalidrawFileModes[this.id||i.file],e.apply(this)},setViewState:e=>function(t,...i){var n;if(A._loaded&&"markdown"===t.type&&(null===(n=t.state)||void 0===n?void 0:n.file)&&"markdown"!==A.excalidrawFileModes[this.id||t.state.file]){const n=app.metadataCache.getCache(t.state.file);if((null==n?void 0:n.frontmatter)&&n.frontmatter[FRONTMATTER_KEY]){const n=Object.assign(Object.assign({},t),{type:"excalidraw"});return A.excalidrawFileModes[t.state.file]="excalidraw",e.apply(this,[n,...i])}}return e.apply(this,[t,...i])}}))}registerEventListeners(){const e=this;this.app.workspace.onLayoutReady((async()=>{e.registerEvent(app.vault.on("rename",(async(t,A)=>{t instanceof obsidian_module.TFile&&e.isExcalidrawFile(t)&&e.settings.keepInSync&&[EXPORT_TYPES,"excalidraw"].flat().forEach((async e=>{const i=getIMGFilename(A,e),n=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(i));if(n&&n instanceof obsidian_module.TFile){const A=getIMGFilename(t.path,e);await app.fileManager.renameFile(n,A)}}))}))),e.registerEvent(app.vault.on("modify",(async t=>{app.workspace.getLeavesOfType("excalidraw").forEach((async A=>{const i=A.view;if(i.file&&(i.file.path===t.path||"excalidraw"===t.extension&&`${t.path.substring(0,t.path.lastIndexOf(".excalidraw"))}.md`===i.file.path)){if(i.semaphores.preventReload)return void(i.semaphores.preventReload=!1);if(i.lastSaveTimestamp+3e5{if(!(t instanceof obsidian_module.TFile))return;const A=this.excalidrawFiles.has(t);if(this.updateFileCache(t,void 0,!0),!A)return;const i=app.workspace.getLeavesOfType("excalidraw");for(let e=0;e{[EXPORT_TYPES,"excalidraw"].flat().forEach((async e=>{const A=getIMGFilename(t.path,e),i=app.vault.getAbstractFileByPath(obsidian_module.normalizePath(A));i&&i instanceof obsidian_module.TFile&&await app.vault.delete(i)}))}),500)}))),e.registerEvent(app.workspace.on("active-leaf-change",(async t=>{var A;e.leafChangeTimeout&&clearTimeout(e.leafChangeTimeout),e.leafChangeTimeout=setTimeout((()=>{e.leafChangeTimeout=null}),1e3);const i=e.activeExcalidrawView,n=t.view instanceof ExcalidrawView?t.view:null; //!Temporary hack if(e.activeExcalidrawView=n,n&&(e.lastActiveExcalidrawFilePath=null===(A=n.file)||void 0===A?void 0:A.path),app.isMobile&&n&&!i){const e=document.querySelector("body>.app-container>.mobile-navbar");e&&e instanceof HTMLDivElement&&(e.style.position="relative")}if(app.isMobile&&!n&&i){const e=document.querySelector("body>.app-container>.mobile-navbar");e&&e instanceof HTMLDivElement&&(e.style.position="")}if(i&&i!==n&&(i.leaf!==t&&i.semaphores.dirty&&!i.semaphores.viewunload&&await i.save(!0),i.file&&e.triggerEmbedUpdates(i.file.path)),n&&(!i||i.leaf!==t)){const e=n.file;n.file&&setTimeout((()=>{var t;n&&n._loaded&&(null===(t=n.file)||void 0===t?void 0:t.path)===(null==e?void 0:e.path)&&(n.activeLoader||n.loadSceneFiles())}),2e3)}if(n&&n._loaded&&n.isLoaded&&n.excalidrawAPI&&e.ea.onCanvasColorChangeHook&&e.ea.onCanvasColorChangeHook(e.ea,n,n.excalidrawAPI.getAppState().viewBackgroundColor),e.popScope&&(e.popScope(),e.popScope=null),n){const t=e.app.keymap.getRootScope(),A=t.register(["Mod"],"Enter",(()=>!0));t.keys.unshift(t.keys.pop());const i=t.register(["Mod"],"k",(()=>!0));t.keys.unshift(t.keys.pop());const n=t.register(["Mod"],"f",(()=>{const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(search(e),!0)}));t.keys.unshift(t.keys.pop());const a=e.forceSaveCommand&&"s"===e.forceSaveCommand.hotkeys[0].key&&e.forceSaveCommand.hotkeys[0].modifiers.includes("Ctrl")?t.register(["Ctrl"],"s",(()=>e.forceSaveActiveView(!1))):void 0;a&&t.keys.unshift(t.keys.pop()),e.popScope=()=>{t.unregister(A),t.unregister(i),t.unregister(n),Boolean(a)&&t.unregister(a)}}}))),e.addFileSaveTriggerEventHandlers();const t=app.metadataCache;t.getCachedFiles().forEach((A=>{var i;const n=null===(i=t.getCache(A))||void 0===i?void 0:i.frontmatter;(n&&void 0!==n[FRONTMATTER_KEY]||A.match(/\.excalidraw$/))&&e.updateFileCache(app.vault.getAbstractFileByPath(A),n)})),this.registerEvent(t.on("changed",((e,t,A)=>this.updateFileCache(e,null==A?void 0:A.frontmatter))))}))}addFileSaveTriggerEventHandlers(){this.registerEvent(this.app.workspace.on("click",(e=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&(!e.target||"excalidraw__canvas"!==e.target.className&&!getParentOfClass(e.target,"excalidraw-wrapper"))&&this.activeExcalidrawView.save()}))),this.registerEvent(this.app.workspace.on("file-menu",(()=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()}))),this.modalContainerObserver=new MutationObserver((async e=>{1===e.length&&"childList"===e[0].type&&1===e[0].addedNodes.length&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()})),this.modalContainerObserver.observe(document.body,{childList:!0});const e=document.querySelector(".workspace-drawer.mod-left"),t=document.querySelector(".workspace-drawer.mod-right");if(e||t){const A=async e=>{"display: none;"===e[0].oldValue&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()},i={attributeOldValue:!0,attributeFilter:["style"]};e&&(this.workspaceDrawerLeftObserver=new MutationObserver(A),this.workspaceDrawerLeftObserver.observe(e,i)),t&&(this.workspaceDrawerRightObserver=new MutationObserver(A),this.workspaceDrawerRightObserver.observe(t,i))}}updateFileCache(e,t,A=!1){t&&void 0!==t[FRONTMATTER_KEY]?this.excalidrawFiles.add(e):A||"excalidraw"!==e.extension?this.excalidrawFiles.delete(e):this.excalidrawFiles.add(e)}onunload(){destroyExcalidrawAutomate(),this.popScope&&(this.popScope(),this.popScope=null),this.observer.disconnect(),this.themeObserver.disconnect(),this.modalContainerObserver.disconnect(),this.workspaceDrawerLeftObserver&&this.workspaceDrawerLeftObserver.disconnect(),this.workspaceDrawerRightObserver&&this.workspaceDrawerRightObserver.disconnect(),this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.app.workspace.getLeavesOfType("excalidraw").forEach((e=>{this.setMarkdownView(e)})),this.mathjaxDiv&&document.body.removeChild(this.mathjaxDiv),Object.values(this.packageMap).forEach((e=>{delete e.excalidrawLib,delete e.reactDOM,delete e.react}))}async embedDrawing(e){const t=this.app.workspace.getActiveViewOfType(obsidian_module.MarkdownView);if(t&&t.file){const A=this.app.metadataCache.fileToLinktext(e,t.file.path,"excalidraw"===this.settings.embedType),i=t.editor;if("excalidraw"===this.settings.embedType)return i.replaceSelection(this.settings.embedWikiLink?`![[${A}]]`:`![](${encodeURI(A)})`),void i.focus();let n=this.settings.autoExportLightAndDark?getExportTheme(this,e,this.settings.exportWithTheme&&isObsidianThemeDark()?"dark":"light"):"";n=""===n?"":n+".";const a=getIMGFilename(A,n+this.settings.embedType.toLowerCase()),r=getIMGFilename(e.path,n+this.settings.embedType.toLowerCase()),s="dark."===n?"light.":"dark.",o=getIMGFilename(A,s+this.settings.embedType.toLowerCase());this.app.vault.getAbstractFileByPath(r)||(await this.app.vault.create(r,""),await sleep$1(200)),i.replaceSelection(this.settings.embedWikiLink?`![[${a}]]\n%%[[${A}|🖋 Edit in Excalidraw]]${o?", and the [["+o+"|"+s.split(".")[0]+" exported image]]":""}%%`:`![](${encodeURI(a)})\n%%[🖋 Edit in Excalidraw](${encodeURI(A)})${o?", and the ["+s.split(".")[0]+" exported image]("+encodeURI(o)+")":""}%%`),i.focus()}}async loadSettings(e={applyLefthandedMode:!0,reEnableAutosave:!1}){void 0===e.applyLefthandedMode&&(e.applyLefthandedMode=!0),void 0===e.reEnableAutosave&&(e.reEnableAutosave=!1),this.settings=Object.assign({},DEFAULT_SETTINGS,await this.loadData()),e.applyLefthandedMode&&setLeftHandedMode(this.settings.isLeftHanded),e.reEnableAutosave&&(this.settings.autosave=!0),this.settings.autosaveInterval=app.isMobile?this.settings.autosaveIntervalMobile:this.settings.autosaveIntervalDesktop}async saveSettings(){await this.saveData(this.settings)}getStencilLibrary(){return""===this.settings.library||"deprecated"===this.settings.library?this.settings.library2:JSON_parse(this.settings.library)}setStencilLibrary(e){this.settings.library="deprecated",this.settings.library2=e}triggerEmbedUpdates(e){const t=new Set;app.workspace.iterateAllLeaves((A=>{const i=app.isMobile?document:A.view.containerEl.ownerDocument;if(!i)return;if(t.has(i))return;t.add(i);const n=i.createEvent("Event");n.initEvent(RERENDER_EVENT,!0,!1),i.querySelectorAll("img[class^='excalidraw-svg']"+(e?`[fileSource='${e.replaceAll("'","\\'")}']`:"")).forEach((e=>e.dispatchEvent(n)))}))}openDrawing(e,t,A=!1,i,n=!1){let a;"md-properties"===t&&(t="new-tab"),"popout-window"===t&&(a=app.workspace.openPopoutLeaf()),"new-tab"===t&&(a=app.workspace.getLeaf("tab")),a||(a=this.app.workspace.getLeaf(!1),"empty"!==a.view.getViewType()&&"new-pane"===t&&(a=getNewOrAdjacentLeaf(this,a))),a.openFile(e,i&&""!==i?{active:A,eState:{subpath:i}}:{active:A}).then((()=>{if(n&&this.ea.onFileCreateHook)try{this.ea.onFileCreateHook({ea:this.ea,excalidrawFile:e,view:a.view})}catch(e){console.error(e)}}))}async getBlankDrawing(){const e=this.app.metadataCache.getFirstLinkpathDest(obsidian_module.normalizePath(this.settings.templateFilePath),"");if(e&&e instanceof obsidian_module.TFile&&("md"==e.extension&&!this.settings.compatibilityMode||"excalidraw"==e.extension&&this.settings.compatibilityMode)){const t=await this.app.vault.read(e);if(t)return this.settings.matchTheme?changeThemeOfExcalidrawMD(t):t}if(this.settings.compatibilityMode)return this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;const t=this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;return`${FRONTMATTER}\n${getMarkdownDrawingSection(t,this.settings.compress)}`}async exportSceneToMD(e){var t,A;if(!e)return"";const i=null===(t=JSON_parse(e).elements)||void 0===t?void 0:t.filter((e=>"text"==e.type));let n,a="# Text Elements\n";for(const t of i)n=t.id,t.id.length>8&&(n=nanoid(),e=e.replaceAll(t.id,n)),a+=`${null!==(A=t.originalText)&&void 0!==A?A:t.text} ^${n}\n\n`;return a+getMarkdownDrawingSection(JSON.stringify(JSON_parse(e),null,"\t"),this.settings.compress)}async createDrawing(e,t,A){const i=obsidian_module.normalizePath(t||this.settings.folder);await checkAndCreateFolder(i);const n=getNewUniqueFilepath(this.app.vault,e,i),a=await this.app.vault.create(n,null!=A?A:await this.getBlankDrawing());let r=0;for(;a instanceof obsidian_module.TFile&&!this.isExcalidrawFile(a)&&r++<10;)await sleep$1(50);return r>10&&errorlog({file:a,error:"new drawing not recognized as an excalidraw file",fn:this.createDrawing}),a}async createAndOpenDrawing(e,t,A,i){const n=await this.createDrawing(e,A,i);return this.openDrawing(n,t,!0,void 0,!0),n.path}async setMarkdownView(e){const t=e.view.getState();await e.setViewState({type:"excalidraw",state:{file:null}}),await e.setViewState({type:"markdown",state:t,popstate:!0},{focus:!0})}async setExcalidrawView(e){await e.setViewState({type:"excalidraw",state:e.view.getState(),popstate:!0})}isExcalidrawFile(e){if(!e)return!1;if("excalidraw"===e.extension)return!0;const t=e?this.app.metadataCache.getFileCache(e):null;return!!(null==t?void 0:t.frontmatter)&&!!t.frontmatter[FRONTMATTER_KEY]}async exportLibrary(){this.app.isMobile?new Prompt(this.app,"Please provide a filename","my-library","filename, leave blank to cancel action").openAndGetValue((async e=>{if(!e)return;e=`${e}.excalidrawlib`;const t=obsidian_module.normalizePath(this.settings.folder);await checkAndCreateFolder(t);const A=getNewUniqueFilepath(this.app.vault,e,t);this.app.vault.create(A,this.settings.library),new obsidian_module.Notice(`Exported library to ${A}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.settings.library2,null,"\t")),"my-obsidian-library.excalidrawlib")}}module.exports=ExcalidrawPlugin; diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json b/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json index a312d50..379b5d8 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-excalidraw-plugin", "name": "Excalidraw", - "version": "1.9.8", + "version": "1.9.12", "minAppVersion": "1.1.6", "description": "An Obsidian plugin to edit and view Excalidraw drawings", "author": "Zsolt Viczian", diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css b/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css index e72d8d3..c910f71 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css @@ -346,11 +346,11 @@ div.excalidraw-draginfo { position: absolute !important; } -.excalidraw__iframe-container .view-header { +.excalidraw__embeddable-container .view-header { display: none !important; } -.excalidraw__iframe-container input { +.excalidraw__embeddable-container input { background: initial; } @@ -358,10 +358,22 @@ div.excalidraw-draginfo { background-color: var(--color-gray-80) !important; } -.excalidraw .iframe-menu { +.excalidraw .embeddable-menu { width: fit-content; height: fit-content; position: absolute; display: block; z-index: var(--zIndex-layerUI); +} + +.excalidraw .welcome-screen-center__logo svg { + width: 5rem !important; +} + +.excalidraw-image-wrapper { + text-align: center; +} + +.excalidraw-image-wrapper img { + margin: auto; } \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/main.js b/.obsidian/plugins/obsidian-git/main.js index 950027f..586d7f4 100644 --- a/.obsidian/plugins/obsidian-git/main.js +++ b/.obsidian/plugins/obsidian-git/main.js @@ -29954,21 +29954,21 @@ var SimpleGit = class extends GitManager { (err) => this.onError(err) ); return res.all.map((e) => { - var _a2, _b; + var _a2, _b, _c, _d; return { ...e, refs: e.refs.split(", "), diff: { ...e.diff, - files: e.diff.files.map((f) => ({ + files: (_b = (_a2 = e.diff) == null ? void 0 : _a2.files.map((f) => ({ ...f, status: f.status, path: f.file, hash: e.hash, vault_path: this.getVaultPath(f.file) - })) + }))) != null ? _b : [] }, - fileName: (_b = (_a2 = e.diff) == null ? void 0 : _a2.files.first()) == null ? void 0 : _b.file + fileName: (_d = (_c = e.diff) == null ? void 0 : _c.files.first()) == null ? void 0 : _d.file }; }); } diff --git a/.obsidian/plugins/obsidian-git/manifest.json b/.obsidian/plugins/obsidian-git/manifest.json index 38b873f..f1797b1 100644 --- a/.obsidian/plugins/obsidian-git/manifest.json +++ b/.obsidian/plugins/obsidian-git/manifest.json @@ -5,5 +5,5 @@ "isDesktopOnly": false, "fundingUrl": "https://ko-fi.com/vinzent", "js": "main.js", - "version": "2.20.5" + "version": "2.20.6" } diff --git a/.obsidian/plugins/obsidian-view-mode-by-frontmatter/main.js b/.obsidian/plugins/obsidian-view-mode-by-frontmatter/main.js index 269464e..69a3f23 100644 --- a/.obsidian/plugins/obsidian-view-mode-by-frontmatter/main.js +++ b/.obsidian/plugins/obsidian-view-mode-by-frontmatter/main.js @@ -35,6 +35,7 @@ function __awaiter(thisArg, _arguments, P, generator) { const DEFAULT_SETTINGS = { ignoreOpenFiles: false, ignoreForceViewAll: false, + folders: [{ folder: '', viewMode: '' }] }; class ViewModeByFrontmatterPlugin extends obsidian.Plugin { constructor() { @@ -61,6 +62,58 @@ class ViewModeByFrontmatterPlugin extends obsidian.Plugin { this.openedFiles = resetOpenedNotes(this.app); return; } + let state = leaf.getViewState(); + // check if in a declared folder + let folderModeState = null; + for (const folderMode of this.settings.folders) { + if (folderMode.folder !== '' && folderMode.viewMode) { + const folder = this.app.vault.getAbstractFileByPath(folderMode.folder); + if (folder instanceof obsidian.TFolder) { + if (view.file.parent === folder || view.file.parent.path.startsWith(folder.path)) { + if (!state.state) { // just to be on the safe side + continue; + } + const [key, mode] = folderMode.viewMode.split(':').map((s) => s.trim()); + if (key === "default") { + folderModeState = null; // ensures that no state is set + continue; + } + else if (!["live", "preview", "source"].includes(mode)) { + continue; + } + folderModeState = Object.assign({}, state.state); + folderModeState.mode = mode; + switch (key) { + case this.OBSIDIAN_EDITING_MODE_KEY: { + if (mode == "live") { + folderModeState.source = false; + folderModeState.mode = 'source'; + } + else { + folderModeState.source = true; + } + break; + } + case this.OBSIDIAN_UI_MODE_KEY: + folderModeState.source = false; + break; + } + } + } + else { + console.warn(`ForceViewMode: Folder ${folderMode.folder} does not exist or is not a folder.`); + } + } + } + if (folderModeState) { + if (state.state.mode !== folderModeState.mode || + state.state.source !== folderModeState.source) { + state.state.mode = folderModeState.mode; + state.state.source = folderModeState.source; + yield leaf.setViewState(state); + } + return; + } // ... get frontmatter data and search for a key indicating the desired view mode // and when the given key is present ... set it to the declared mode const fileCache = this.app.metadataCache.getFileCache(view.file); @@ -70,7 +123,6 @@ class ViewModeByFrontmatterPlugin extends obsidian.Plugin { const fileDeclaredEditingMode = fileCache !== null && fileCache.frontmatter ? fileCache.frontmatter[this.OBSIDIAN_EDITING_MODE_KEY] : null; - let state = leaf.getViewState(); if (fileDeclaredUIMode) { if (["source", "preview", "live"].includes(fileDeclaredUIMode) && view.getMode() !== fileDeclaredUIMode) { @@ -84,7 +136,7 @@ class ViewModeByFrontmatterPlugin extends obsidian.Plugin { } } if (fileDeclaredUIMode || fileDeclaredEditingMode) { - leaf.setViewState(state); + yield leaf.setViewState(state); if (true == this.settings.ignoreOpenFiles) { this.openedFiles = resetOpenedNotes(this.app); } @@ -93,14 +145,14 @@ class ViewModeByFrontmatterPlugin extends obsidian.Plugin { const defaultViewMode = this.app.vault.config.defaultViewMode ? this.app.vault.config.defaultViewMode : "source"; - const defaultEditingModeIsLivePreview = this.app.vault.config.livePreview; + const defaultEditingModeIsLivePreview = this.app.vault.config.livePreview === undefined ? true : this.app.vault.config.livePreview; if (!this.settings.ignoreForceViewAll) { let state = leaf.getViewState(); if (view.getMode() !== defaultViewMode) { state.state.mode = defaultViewMode; } state.state.source = defaultEditingModeIsLivePreview ? false : true; - leaf.setViewState(state); + yield leaf.setViewState(state); this.openedFiles = resetOpenedNotes(this.app); } return; @@ -158,6 +210,10 @@ class ViewModeByFrontmatterSettingTab extends obsidian.PluginSettingTab { display() { let { containerEl } = this; containerEl.empty(); + const createHeader = (text) => containerEl.createEl("h2", { text }); + const desc = document.createDocumentFragment(); + desc.append("Changing the view mode can be done through the key ", desc.createEl("code", { text: "obsidianUIMode" }), ", which can have the value ", desc.createEl("code", { text: "source" }), " or ", desc.createEl("code", { text: "preview" }), ".", desc.createEl("br"), "Changing the editing mode happens by declaring the key ", desc.createEl("code", { text: "obsidianEditingMode" }), "; it takes ", desc.createEl("code", { text: "live" }), " or ", desc.createEl("code", { text: "source" }), " as value."); + new obsidian.Setting(this.containerEl).setDesc(desc); new obsidian.Setting(containerEl) .setName("Ignore opened files") .setDesc("Never change the view mode on a note which was already open.") @@ -178,8 +234,75 @@ class ViewModeByFrontmatterSettingTab extends obsidian.PluginSettingTab { yield this.plugin.saveSettings(); })); }); + createHeader("Folders"); + const folderDesc = document.createDocumentFragment(); + folderDesc.append("Specify a view mode for notes in a given folder.", folderDesc.createEl("br"), "Note that this will force the view mode on all the notes in the folder, even if they have a different view mode set in their frontmatter.", folderDesc.createEl("br"), "Precedence is from bottom (highest) to top (lowest), so if you have child folders specified, make sure to put them below their parent folder."); + new obsidian.Setting(this.containerEl).setDesc(folderDesc); + new obsidian.Setting(this.containerEl) + .setDesc("Add new folder") + .addButton((button) => { + button + .setTooltip("Add another folder to the list") + .setButtonText("+") + .setCta() + .onClick(() => __awaiter(this, void 0, void 0, function* () { + this.plugin.settings.folders.push({ + folder: "", + viewMode: "", + }); + yield this.plugin.saveSettings(); + this.display(); + })); + }); + this.plugin.settings.folders.forEach((folderMode, index) => { + const div = containerEl.createEl("div"); + div.addClass("force-view-mode-div"); + div.addClass("force-view-mode-folder"); + const s = new obsidian.Setting(this.containerEl) + .addSearch((cb) => { + cb.setPlaceholder("Example: folder1/templates") + .setValue(folderMode.folder) + .onChange((newFolder) => __awaiter(this, void 0, void 0, function* () { + if (newFolder && + this.plugin.settings.folders.some((e) => e.folder == newFolder)) { + console.error("ForceViewMode: This folder already has a template associated with", newFolder); + return; + } + this.plugin.settings.folders[index].folder = newFolder; + yield this.plugin.saveSettings(); + })); + }) + .addDropdown(cb => { + const modes = [ + "default", + "obsidianUIMode: preview", + "obsidianUIMode: source", + "obsidianEditingMode: live", + "obsidianEditingMode: source", + ]; + modes.forEach(mode => { + cb.addOption(mode, mode); + }); + cb.setValue(folderMode.viewMode || "default") + .onChange((value) => __awaiter(this, void 0, void 0, function* () { + this.plugin.settings.folders[index].viewMode = value; + yield this.plugin.saveSettings(); + })); + }) + .addExtraButton((cb) => { + cb.setIcon("cross") + .setTooltip("Delete") + .onClick(() => __awaiter(this, void 0, void 0, function* () { + this.plugin.settings.folders.splice(index, 1); + yield this.plugin.saveSettings(); + this.display(); + })); + }); + s.infoEl.remove(); + div.appendChild(containerEl.lastChild); + }); } } module.exports = ViewModeByFrontmatterPlugin; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIm1haW4udHMiXSwic291cmNlc0NvbnRlbnQiOm51bGwsIm5hbWVzIjpbIlBsdWdpbiIsIk1hcmtkb3duVmlldyIsImRlYm91bmNlIiwiUGx1Z2luU2V0dGluZ1RhYiIsIlNldHRpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFvR0E7QUFDTyxTQUFTLFNBQVMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUU7QUFDN0QsSUFBSSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEtBQUssWUFBWSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsT0FBTyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7QUFDaEgsSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxVQUFVLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDL0QsUUFBUSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0FBQ25HLFFBQVEsU0FBUyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENB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 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIm1haW4udHMiXSwic291cmNlc0NvbnRlbnQiOm51bGwsIm5hbWVzIjpbIlBsdWdpbiIsIk1hcmtkb3duVmlldyIsIlRGb2xkZXIiLCJkZWJvdW5jZSIsIlBsdWdpblNldHRpbmdUYWIiLCJTZXR0aW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBb0dBO0FBQ08sU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFO0FBQzdELElBQUksU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxLQUFLLFlBQVksQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ2hILElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsVUFBVSxPQUFPLEVBQUUsTUFBTSxFQUFFO0FBQy9ELFFBQVEsU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUNuRyxRQUFRLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENB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 diff --git a/.obsidian/plugins/obsidian-view-mode-by-frontmatter/manifest.json b/.obsidian/plugins/obsidian-view-mode-by-frontmatter/manifest.json index 1eb4ace..5cc4535 100644 --- a/.obsidian/plugins/obsidian-view-mode-by-frontmatter/manifest.json +++ b/.obsidian/plugins/obsidian-view-mode-by-frontmatter/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-view-mode-by-frontmatter", "name": "Force note view mode", - "version": "1.1.2", + "version": "1.2.0", "minAppVersion": "0.9.12", "description": "This plugin allows to force the view mode and editing mode for a note by using front matter", "author": "Benny Wydooghe", diff --git a/.obsidian/plugins/obsidian-view-mode-by-frontmatter/styles.css b/.obsidian/plugins/obsidian-view-mode-by-frontmatter/styles.css new file mode 100644 index 0000000..1914044 --- /dev/null +++ b/.obsidian/plugins/obsidian-view-mode-by-frontmatter/styles.css @@ -0,0 +1,13 @@ +.force-view-mode-div > .setting-item > .setting-item-control { + justify-content: space-around; + padding: 0; + width: 100%; +} + +.force-view-mode-folder > .setting-item > .setting-item-control > *:first-child { + flex: 2 1 0; +} + +.force-view-mode-folder > .setting-item > .setting-item-control > *:nth-child(2) { + flex: 1 1 0; +} \ No newline at end of file diff --git a/.obsidian/plugins/omnisearch/data.json b/.obsidian/plugins/omnisearch/data.json index 9b33c73..4421322 100644 --- a/.obsidian/plugins/omnisearch/data.json +++ b/.obsidian/plugins/omnisearch/data.json @@ -5,6 +5,7 @@ "indexedFileTypes": [], "PDFIndexing": false, "imagesIndexing": false, + "unsupportedFilesIndexing": "no", "splitCamelCase": false, "openInNewPane": false, "ribbonIcon": true, @@ -14,11 +15,13 @@ "highlight": true, "showPreviousQueryResults": true, "simpleSearch": false, + "fuzziness": "1", "weightBasename": 3, "weightDirectory": 2, "weightH1": 1.5, "weightH2": 1.3, "weightH3": 1.1, + "weightUnmarkedTags": 1.1, "welcomeMessage": "1.10.1", "verboseLogging": false } \ No newline at end of file diff --git a/.obsidian/plugins/omnisearch/main.js b/.obsidian/plugins/omnisearch/main.js index 3a75417..98da52c 100644 --- a/.obsidian/plugins/omnisearch/main.js +++ b/.obsidian/plugins/omnisearch/main.js @@ -3,43 +3,47 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ -var Kc=Object.create;var Mr=Object.defineProperty,zc=Object.defineProperties,Vc=Object.getOwnPropertyDescriptor,Hc=Object.getOwnPropertyDescriptors,$c=Object.getOwnPropertyNames,gs=Object.getOwnPropertySymbols,Wc=Object.getPrototypeOf,ys=Object.prototype.hasOwnProperty,Uc=Object.prototype.propertyIsEnumerable;var vs=(t,e,r)=>e in t?Mr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ue=(t,e)=>{for(var r in e||(e={}))ys.call(e,r)&&vs(t,r,e[r]);if(gs)for(var r of gs(e))Uc.call(e,r)&&vs(t,r,e[r]);return t},Oe=(t,e)=>zc(t,Hc(e)),_s=t=>Mr(t,"__esModule",{value:!0});var yn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Gc=(t,e)=>{_s(t);for(var r in e)Mr(t,r,{get:e[r],enumerable:!0})},Qc=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of $c(e))!ys.call(t,n)&&n!=="default"&&Mr(t,n,{get:()=>e[n],enumerable:!(r=Vc(e,n))||r.enumerable});return t},Fe=t=>Qc(_s(Mr(t!=null?Kc(Wc(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var Ta=yn((un,Po)=>{(function(t,e){if(typeof un=="object"&&typeof Po=="object")Po.exports=e();else if(typeof define=="function"&&define.amd)define([],e);else{var r=e();for(var n in r)(typeof un=="object"?un:t)[n]=r[n]}})(typeof self!="undefined"?self:un,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(n,i,o){r.o(n,i)||Object.defineProperty(n,i,{enumerable:!0,get:o})},r.r=function(n){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,i){if(1&i&&(n=r(n)),8&i||4&i&&typeof n=="object"&&n&&n.__esModule)return n;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&i&&typeof n!="string")for(var s in n)r.d(o,s,function(a){return n[a]}.bind(null,s));return o},r.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=0)}([function(t,e,r){"use strict";r.r(e),r.d(e,"md5",function(){return x});var n="0123456789abcdef".split(""),i=function(b){for(var h="",_=0;_<4;_++)h+=n[b>>8*_+4&15]+n[b>>8*_&15];return h},o=function(b){for(var h=b.length,_=0;_>>32-C,S)}(h=function(j,C,S,E){return C=s(s(C,j),s(S,E))}(b,h,p,v),m,_)},l=function(b,h,_,p,m,v,g,j){return a(_&p|~_&m,h,_,v,g,j,b)},u=function(b,h,_,p,m,v,g,j){return a(_&m|p&~m,h,_,v,g,j,b)},d=function(b,h,_,p,m,v,g,j){return a(_^p^m,h,_,v,g,j,b)},f=function(b,h,_,p,m,v,g,j){return a(p^(_|~m),h,_,v,g,j,b)},c=function(b,h,_){_===void 0&&(_=s);var p=b[0],m=b[1],v=b[2],g=b[3],j=l.bind(null,_);p=j(p,m,v,g,h[0],7,-680876936),g=j(g,p,m,v,h[1],12,-389564586),v=j(v,g,p,m,h[2],17,606105819),m=j(m,v,g,p,h[3],22,-1044525330),p=j(p,m,v,g,h[4],7,-176418897),g=j(g,p,m,v,h[5],12,1200080426),v=j(v,g,p,m,h[6],17,-1473231341),m=j(m,v,g,p,h[7],22,-45705983),p=j(p,m,v,g,h[8],7,1770035416),g=j(g,p,m,v,h[9],12,-1958414417),v=j(v,g,p,m,h[10],17,-42063),m=j(m,v,g,p,h[11],22,-1990404162),p=j(p,m,v,g,h[12],7,1804603682),g=j(g,p,m,v,h[13],12,-40341101),v=j(v,g,p,m,h[14],17,-1502002290),m=j(m,v,g,p,h[15],22,1236535329);var C=u.bind(null,_);p=C(p,m,v,g,h[1],5,-165796510),g=C(g,p,m,v,h[6],9,-1069501632),v=C(v,g,p,m,h[11],14,643717713),m=C(m,v,g,p,h[0],20,-373897302),p=C(p,m,v,g,h[5],5,-701558691),g=C(g,p,m,v,h[10],9,38016083),v=C(v,g,p,m,h[15],14,-660478335),m=C(m,v,g,p,h[4],20,-405537848),p=C(p,m,v,g,h[9],5,568446438),g=C(g,p,m,v,h[14],9,-1019803690),v=C(v,g,p,m,h[3],14,-187363961),m=C(m,v,g,p,h[8],20,1163531501),p=C(p,m,v,g,h[13],5,-1444681467),g=C(g,p,m,v,h[2],9,-51403784),v=C(v,g,p,m,h[7],14,1735328473),m=C(m,v,g,p,h[12],20,-1926607734);var S=d.bind(null,_);p=S(p,m,v,g,h[5],4,-378558),g=S(g,p,m,v,h[8],11,-2022574463),v=S(v,g,p,m,h[11],16,1839030562),m=S(m,v,g,p,h[14],23,-35309556),p=S(p,m,v,g,h[1],4,-1530992060),g=S(g,p,m,v,h[4],11,1272893353),v=S(v,g,p,m,h[7],16,-155497632),m=S(m,v,g,p,h[10],23,-1094730640),p=S(p,m,v,g,h[13],4,681279174),g=S(g,p,m,v,h[0],11,-358537222),v=S(v,g,p,m,h[3],16,-722521979),m=S(m,v,g,p,h[6],23,76029189),p=S(p,m,v,g,h[9],4,-640364487),g=S(g,p,m,v,h[12],11,-421815835),v=S(v,g,p,m,h[15],16,530742520),m=S(m,v,g,p,h[2],23,-995338651);var E=f.bind(null,_);p=E(p,m,v,g,h[0],6,-198630844),g=E(g,p,m,v,h[7],10,1126891415),v=E(v,g,p,m,h[14],15,-1416354905),m=E(m,v,g,p,h[5],21,-57434055),p=E(p,m,v,g,h[12],6,1700485571),g=E(g,p,m,v,h[3],10,-1894986606),v=E(v,g,p,m,h[10],15,-1051523),m=E(m,v,g,p,h[1],21,-2054922799),p=E(p,m,v,g,h[8],6,1873313359),g=E(g,p,m,v,h[15],10,-30611744),v=E(v,g,p,m,h[6],15,-1560198380),m=E(m,v,g,p,h[13],21,1309151649),p=E(p,m,v,g,h[4],6,-145523070),g=E(g,p,m,v,h[11],10,-1120210379),v=E(v,g,p,m,h[2],15,718787259),m=E(m,v,g,p,h[9],21,-343485551),b[0]=_(p,b[0]),b[1]=_(m,b[1]),b[2]=_(v,b[2]),b[3]=_(g,b[3])},y=function(b){for(var h=[],_=0;_<64;_+=4)h[_>>2]=b.charCodeAt(_)+(b.charCodeAt(_+1)<<8)+(b.charCodeAt(_+2)<<16)+(b.charCodeAt(_+3)<<24);return h},w=function(b,h){var _,p=b.length,m=[1732584193,-271733879,-1732584194,271733878];for(_=64;_<=p;_+=64)c(m,y(b.substring(_-64,_)),h);var v=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],g=(b=b.substring(_-64)).length;for(_=0;_>2]|=b.charCodeAt(_)<<(_%4<<3);if(v[_>>2]|=128<<(_%4<<3),_>55)for(c(m,v,h),_=16;_--;)v[_]=0;return v[14]=8*p,c(m,v,h),m};function x(b){var h;return o(w("hello"))!=="5d41402abc4b2a76b9719d911017c592"&&(h=function(_,p){var m=(65535&_)+(65535&p);return(_>>16)+(p>>16)+(m>>16)<<16|65535&m}),o(w(b,h))}}])})});var nl=yn(ii=>{ii.parse=function(t,e){if(e?e.offsets=typeof e.offsets=="undefined"?!0:e.offsets:e={offsets:!0},t||(t=""),t.indexOf(":")===-1&&!e.tokenize)return t;if(!e.keywords&&!e.ranges&&!e.tokenize)return t;var r={text:[]};e.offsets&&(r.offsets=[]);for(var n={},i=[],o=/(\S+:'(?:[^'\\]|\\.)*')|(\S+:"(?:[^"\\]|\\.)*")|(-?"(?:[^"\\]|\\.)*")|(-?'(?:[^'\\]|\\.)*')|\S+|\S+:\S+/g,s;(s=o.exec(t))!==null;){var c=s[0],a=c.indexOf(":");if(a!==-1){var l=c.split(":"),u=c.slice(0,a),d=c.slice(a+1);d=d.replace(/^\"|\"$|^\'|\'$/g,""),d=(d+"").replace(/\\(.?)/g,function(g,j){switch(j){case"\\":return"\\";case"0":return"\0";case"":return"";default:return j}}),i.push({keyword:u,value:d,offsetStart:s.index,offsetEnd:s.index+c.length})}else{var f=!1;c[0]==="-"&&(f=!0,c=c.slice(1)),c=c.replace(/^\"|\"$|^\'|\'$/g,""),c=(c+"").replace(/\\(.?)/g,function(g,j){switch(j){case"\\":return"\\";case"0":return"\0";case"":return"";default:return j}}),f?n.text?(n.text instanceof Array||(n.text=[n.text]),n.text.push(c)):n.text=c:i.push({text:c,offsetStart:s.index,offsetEnd:s.index+c.length})}}i.reverse();for(var c;c=i.pop();)if(c.text)r.text.push(c.text),e.offsets&&r.offsets.push(c);else{var u=c.keyword;e.keywords=e.keywords||[];var y=!1,w=!1;if(!/^-/.test(u))y=e.keywords.indexOf(u)!==-1;else if(u[0]==="-"){var x=u.slice(1);y=e.keywords.indexOf(x)!==-1,y&&(u=x,w=!0)}e.ranges=e.ranges||[];var b=e.ranges.indexOf(u)!==-1;if(y){e.offsets&&r.offsets.push({keyword:u,value:c.value,offsetStart:w?c.offsetStart+1:c.offsetStart,offsetEnd:c.offsetEnd});var h=c.value;if(h.length){var _=h.split(",");w?n[u]?n[u]instanceof Array?_.length>1?n[u]=n[u].concat(_):n[u].push(h):(n[u]=[n[u]],n[u].push(h)):_.length>1?n[u]=_:e.alwaysArray?n[u]=[h]:n[u]=h:r[u]?r[u]instanceof Array?_.length>1?r[u]=r[u].concat(_):r[u].push(h):(r[u]=[r[u]],r[u].push(h)):_.length>1?r[u]=_:e.alwaysArray?r[u]=[h]:r[u]=h}}else if(b){e.offsets&&r.offsets.push(c);var h=c.value,p=h.split("-");r[u]={},p.length===2?(r[u].from=p[0],r[u].to=p[1]):!p.length%2||(r[u].from=h)}else{var m=c.keyword+":"+c.value;r.text.push(m),e.offsets&&r.offsets.push({text:m,offsetStart:c.offsetStart,offsetEnd:c.offsetEnd})}}return r.text.length?e.tokenize||(r.text=r.text.join(" ").trim()):delete r.text,r.exclude=n,r};ii.stringify=function(t,e,r){if(e||(e={offsets:!0}),!t)return"";if(typeof t=="string")return t;if(Array.isArray(t))return t.join(" ");if(!Object.keys(t).length)return"";if(Object.keys(t).length===3&&!!t.text&&!!t.offsets&&!!t.exclude&&typeof t.text=="string")return t.text;r||(r="");var n=function(a){return a.indexOf(" ")>-1?JSON.stringify(a):a},i=function(a){return r+a},o=[];if(t.text){var s=[];typeof t.text=="string"?s.push(t.text):s.push.apply(s,t.text),s.length>0&&o.push(s.map(n).map(i).join(" "))}return e.keywords&&e.keywords.forEach(function(a){if(!!t[a]){var l=[];typeof t[a]=="string"?l.push(t[a]):l.push.apply(l,t[a]),l.length>0&&o.push(i(a+":"+l.map(n).join(",")))}}),e.ranges&&e.ranges.forEach(function(a){if(!!t[a]){var l=t[a].from,u=t[a].to;u&&(l=l+"-"+u),l&&o.push(i(a+":"+l))}}),t.exclude&&Object.keys(t.exclude).length>0&&o.push(ii.stringify(t.exclude,e,"-")),o.join(" ")}});var ol=yn((n_,il)=>{il.exports=nl()});var xc=yn(Si=>{function fs(t){return fs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},fs(t)}(function(t,e){if(typeof define=="function"&&define.amd)define(["exports"],e);else if(typeof Si!="undefined")e(Si);else{var r={exports:{}};e(r.exports),t.CancelablePromise=r.exports}})(typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:Si,function(t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CancelablePromise=void 0,t.cancelable=L,t.default=void 0,t.isCancelablePromise=k;function e(A,F){if(typeof F!="function"&&F!==null)throw new TypeError("Super expression must either be null or a function");A.prototype=Object.create(F&&F.prototype,{constructor:{value:A,writable:!0,configurable:!0}}),Object.defineProperty(A,"prototype",{writable:!1}),F&&r(A,F)}function r(A,F){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(N,O){return N.__proto__=O,N},r(A,F)}function n(A){var F=s();return function(){var N=a(A),O;if(F){var X=a(this).constructor;O=Reflect.construct(N,arguments,X)}else O=N.apply(this,arguments);return i(this,O)}}function i(A,F){if(F&&(fs(F)==="object"||typeof F=="function"))return F;if(F!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return o(A)}function o(A){if(A===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return A}function s(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function a(A){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(D){return D.__proto__||Object.getPrototypeOf(D)},a(A)}function l(A,F){var D=typeof Symbol!="undefined"&&A[Symbol.iterator]||A["@@iterator"];if(!D){if(Array.isArray(A)||(D=u(A))||F&&A&&typeof A.length=="number"){D&&(A=D);var N=0,O=function(){};return{s:O,n:function(){return N>=A.length?{done:!0}:{done:!1,value:A[N++]}},e:function(te){throw te},f:O}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var X=!0,le=!1,_e;return{s:function(){D=D.call(A)},n:function(){var te=D.next();return X=te.done,te},e:function(te){le=!0,_e=te},f:function(){try{!X&&D.return!=null&&D.return()}finally{if(le)throw _e}}}}function u(A,F){if(!!A){if(typeof A=="string")return d(A,F);var D=Object.prototype.toString.call(A).slice(8,-1);if(D==="Object"&&A.constructor&&(D=A.constructor.name),D==="Map"||D==="Set")return Array.from(A);if(D==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(D))return d(A,F)}}function d(A,F){(F==null||F>A.length)&&(F=A.length);for(var D=0,N=new Array(F);Dps});var Pr=Fe(require("obsidian"));var Lc=Fe(require("obsidian"));function ce(){}function qc(t,e){for(let r in e)t[r]=e[r];return t}function Di(t){return t()}function bs(){return Object.create(null)}function Ue(t){t.forEach(Di)}function er(t){return typeof t=="function"}function be(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}var vn;function Ti(t,e){return vn||(vn=document.createElement("a")),vn.href=e,t===vn.href}function xs(t){return Object.keys(t).length===0}function ws(t,...e){if(t==null)return ce;let r=t.subscribe(...e);return r.unsubscribe?()=>r.unsubscribe():r}function _n(t,e,r){t.$$.on_destroy.push(ws(e,r))}function tr(t,e,r,n){if(t){let i=js(t,e,r,n);return t[0](i)}}function js(t,e,r,n){return t[1]&&n?qc(r.ctx.slice(),t[1](n(e))):r.ctx}function rr(t,e,r,n){if(t[2]&&n){let i=t[2](n(r));if(e.dirty===void 0)return i;if(typeof i=="object"){let o=[],s=Math.max(e.dirty.length,i.length);for(let a=0;a32){let e=[],r=t.ctx.length/32;for(let n=0;nt.removeEventListener(e,r,n)}function B(t,e,r){r==null?t.removeAttribute(e):t.getAttribute(e)!==r&&t.setAttribute(e,r)}function Xc(t){return Array.from(t.childNodes)}function Ge(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function Ii(t,e){t.value=e??""}function ze(t,e,r,n){r===null?t.style.removeProperty(e):t.style.setProperty(e,r,n?"important":"")}function Oi(t,e,r){t.classList[r?"add":"remove"](e)}function Zc(t,e,{bubbles:r=!1,cancelable:n=!1}={}){let i=document.createEvent("CustomEvent");return i.initCustomEvent(t,r,n,e),i}var Rr;function Lr(t){Rr=t}function ki(){if(!Rr)throw new Error("Function called outside component initialization");return Rr}function Br(t){ki().$$.on_mount.push(t)}function Nr(t){ki().$$.on_destroy.push(t)}function Pi(){let t=ki();return(e,r,{cancelable:n=!1}={})=>{let i=t.$$.callbacks[e];if(i){let o=Zc(e,r,{cancelable:n});return i.slice().forEach(s=>{s.call(t,o)}),!o.defaultPrevented}return!0}}function $e(t,e){let r=t.$$.callbacks[e.type];r&&r.slice().forEach(n=>n.call(this,e))}var Kr=[];var tt=[],xn=[],Ss=[],Fs=Promise.resolve(),Mi=!1;function Es(){Mi||(Mi=!0,Fs.then(Ds))}function mt(){return Es(),Fs}function Ri(t){xn.push(t)}var Li=new Set,wn=0;function Ds(){let t=Rr;do{for(;wn{jn.delete(t),n&&(r&&t.d(1),n())}),t.o(e)}else n&&n()}var qy=typeof window!="undefined"?window:typeof globalThis!="undefined"?globalThis:global;function Le(t){t&&t.c()}function ke(t,e,r,n){let{fragment:i,after_update:o}=t.$$;i&&i.m(e,r),n||Ri(()=>{let s=t.$$.on_mount.map(Di).filter(er);t.$$.on_destroy?t.$$.on_destroy.push(...s):Ue(s),t.$$.on_mount=[]}),o.forEach(Ri)}function Ee(t,e){let r=t.$$;r.fragment!==null&&(Ue(r.on_destroy),r.fragment&&r.fragment.d(e),r.on_destroy=r.fragment=null,r.ctx=[])}function tf(t,e){t.$$.dirty[0]===-1&&(Kr.push(t),Es(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{let w=y.length?y[0]:c;return u.ctx&&i(u.ctx[f],u.ctx[f]=w)&&(!u.skip_bound&&u.bound[f]&&u.bound[f](w),d&&tf(t,f)),c}):[],u.update(),d=!0,Ue(u.before_update),u.fragment=n?n(u.ctx):!1,e.target){if(e.hydrate){Yc();let f=Xc(e.target);u.fragment&&u.fragment.l(f),f.forEach(H)}else u.fragment&&u.fragment.c();e.intro&&ee(t.$$.fragment),ke(t,e.target,e.anchor,e.customElement),Jc(),Ds()}Lr(l)}var rf;typeof HTMLElement=="function"&&(rf=class extends HTMLElement{constructor(){super();this.attachShadow({mode:"open"})}connectedCallback(){let{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(Di).filter(er);for(let e in this.$$.slotted)this.appendChild(this.$$.slotted[e])}attributeChangedCallback(t,e,r){this[t]=r}disconnectedCallback(){Ue(this.$$.on_disconnect)}$destroy(){Ee(this,1),this.$destroy=ce}$on(t,e){if(!er(e))return ce;let r=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return r.push(e),()=>{let n=r.indexOf(e);n!==-1&&r.splice(n,1)}}$set(t){this.$$set&&!xs(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});var Ae=class{$destroy(){Ee(this,1),this.$destroy=ce}$on(e,r){if(!er(r))return ce;let n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(r),()=>{let i=n.indexOf(r);i!==-1&&n.splice(i,1)}}$set(e){this.$$set&&!xs(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}};var Mt=Fe(require("obsidian"));var Ha=Fe(require("obsidian"));var Bi=class{constructor(){this.handlers=new Map;this.disabled=[]}on(e,r,n){if(e.includes("@")||r.includes("@"))throw new Error("Invalid context/event name - Cannot contain @");this.handlers.set(`${e}@${r}`,n)}off(e,r){if(r)this.handlers.delete(`${e}@${r}`);else for(let[n]of this.handlers.entries())n.startsWith(`${e}@`)&&this.handlers.delete(n)}disable(e){this.enable(e),this.disabled.push(e)}enable(e){this.disabled=this.disabled.filter(r=>r!==e)}emit(e,...r){let n=[...this.handlers.entries()].filter(([i,o])=>!this.disabled.includes(i.split("@")[0]));for(let[i,o]of n)i.endsWith(`@${e}`)&&o(...r)}};var sr=[];function Cn(t,e=ce){let r,n=new Set;function i(a){if(be(t,a)&&(t=a,r)){let l=!sr.length;for(let u of n)u[1](),sr.push(u,t);if(l){for(let u=0;u{n.delete(u),n.size===0&&(r(),r=null)}}return{set:i,update:o,subscribe:s}}var Y=Fe(require("obsidian"));var ie=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:global,he=Object.keys,Te=Array.isArray;typeof Promise!="undefined"&&!ie.Promise&&(ie.Promise=Promise);function Pe(t,e){return typeof e!="object"||he(e).forEach(function(r){t[r]=e[r]}),t}var zr=Object.getPrototypeOf,nf={}.hasOwnProperty;function Ve(t,e){return nf.call(t,e)}function ar(t,e){typeof e=="function"&&(e=e(zr(t))),(typeof Reflect=="undefined"?he:Reflect.ownKeys)(e).forEach(r=>{rt(t,r,e[r])})}var Ts=Object.defineProperty;function rt(t,e,r,n){Ts(t,e,Pe(r&&Ve(r,"get")&&typeof r.get=="function"?{get:r.get,set:r.set,configurable:!0}:{value:r,configurable:!0,writable:!0},n))}function lr(t){return{from:function(e){return t.prototype=Object.create(e.prototype),rt(t.prototype,"constructor",t),{extend:ar.bind(null,t.prototype)}}}}var of=Object.getOwnPropertyDescriptor;function Ni(t,e){let r=of(t,e),n;return r||(n=zr(t))&&Ni(n,e)}var sf=[].slice;function An(t,e,r){return sf.call(t,e,r)}function Is(t,e){return e(t)}function Vr(t){if(!t)throw new Error("Assertion Failed")}function Os(t){ie.setImmediate?setImmediate(t):setTimeout(t,0)}function ks(t,e){return t.reduce((r,n,i)=>{var o=e(n,i);return o&&(r[o[0]]=o[1]),r},{})}function af(t,e,r){try{t.apply(null,r)}catch(n){e&&e(n)}}function nt(t,e){if(Ve(t,e))return t[e];if(!e)return t;if(typeof e!="string"){for(var r=[],n=0,i=e.length;n["Int","Uint","Float"].map(e=>e+t+"Array")))).filter(t=>ie[t]),cf=Rs.map(t=>ie[t]);ks(Rs,t=>[t,!0]);var gt=null;function Hr(t){gt=typeof WeakMap!="undefined"&&new WeakMap;let e=Ki(t);return gt=null,e}function Ki(t){if(!t||typeof t!="object")return t;let e=gt&>.get(t);if(e)return e;if(Te(t)){e=[],gt&>.set(t,e);for(var r=0,n=t.length;r=0)e=t;else{let o=zr(t);e=o===Object.prototype?{}:Object.create(o),gt&>.set(t,e);for(var i in t)Ve(t,i)&&(e[i]=Ki(t[i]))}return e}var{toString:ff}={};function zi(t){return ff.call(t).slice(8,-1)}var Vi=typeof Symbol!="undefined"?Symbol.iterator:"@@iterator",df=typeof Vi=="symbol"?function(t){var e;return t!=null&&(e=t[Vi])&&e.apply(t)}:function(){return null},ur={};function it(t){var e,r,n,i;if(arguments.length===1){if(Te(t))return t.slice();if(this===ur&&typeof t=="string")return[t];if(i=df(t)){for(r=[];n=i.next(),!n.done;)r.push(n.value);return r}if(t==null)return[t];if(e=t.length,typeof e=="number"){for(r=new Array(e);e--;)r[e]=t[e];return r}return[t]}for(e=arguments.length,r=new Array(e);e--;)r[e]=arguments[e];return r}var Hi=typeof Symbol!="undefined"?t=>t[Symbol.toStringTag]==="AsyncFunction":()=>!1,Je=typeof location!="undefined"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Ls(t,e){Je=t,Bs=e}var Bs=()=>!0,hf=!new Error("").stack;function Nt(){if(hf)try{throw Nt.arguments,new Error}catch(t){return t}return new Error}function $i(t,e){var r=t.stack;return r?(e=e||0,r.indexOf(t.name)===0&&(e+=(t.name+t.message).split(` +var Wc=Object.create;var Lr=Object.defineProperty,Uc=Object.defineProperties,Gc=Object.getOwnPropertyDescriptor,Qc=Object.getOwnPropertyDescriptors,qc=Object.getOwnPropertyNames,vo=Object.getOwnPropertySymbols,Yc=Object.getPrototypeOf,_o=Object.prototype.hasOwnProperty,Jc=Object.prototype.propertyIsEnumerable;var bo=(t,e,r)=>e in t?Lr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ue=(t,e)=>{for(var r in e||(e={}))_o.call(e,r)&&bo(t,r,e[r]);if(vo)for(var r of vo(e))Jc.call(e,r)&&bo(t,r,e[r]);return t},Oe=(t,e)=>Uc(t,Qc(e)),xo=t=>Lr(t,"__esModule",{value:!0});var yn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Xc=(t,e)=>{xo(t);for(var r in e)Lr(t,r,{get:e[r],enumerable:!0})},Zc=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of qc(e))!_o.call(t,n)&&n!=="default"&&Lr(t,n,{get:()=>e[n],enumerable:!(r=Gc(e,n))||r.enumerable});return t},Fe=t=>Zc(xo(Lr(t!=null?Wc(Yc(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var Pa=yn((cn,Ms)=>{(function(t,e){if(typeof cn=="object"&&typeof Ms=="object")Ms.exports=e();else if(typeof define=="function"&&define.amd)define([],e);else{var r=e();for(var n in r)(typeof cn=="object"?cn:t)[n]=r[n]}})(typeof self!="undefined"?self:cn,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(n,i,s){r.o(n,i)||Object.defineProperty(n,i,{enumerable:!0,get:s})},r.r=function(n){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,i){if(1&i&&(n=r(n)),8&i||4&i&&typeof n=="object"&&n&&n.__esModule)return n;var s=Object.create(null);if(r.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:n}),2&i&&typeof n!="string")for(var o in n)r.d(s,o,function(a){return n[a]}.bind(null,o));return s},r.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=0)}([function(t,e,r){"use strict";r.r(e),r.d(e,"md5",function(){return x});var n="0123456789abcdef".split(""),i=function(b){for(var d="",_=0;_<4;_++)d+=n[b>>8*_+4&15]+n[b>>8*_&15];return d},s=function(b){for(var d=b.length,_=0;_>>32-C,F)}(d=function(j,C,F,E){return C=o(o(C,j),o(F,E))}(b,d,m,v),g,_)},u=function(b,d,_,m,g,v,y,j){return a(_&m|~_&g,d,_,v,y,j,b)},l=function(b,d,_,m,g,v,y,j){return a(_&g|m&~g,d,_,v,y,j,b)},f=function(b,d,_,m,g,v,y,j){return a(_^m^g,d,_,v,y,j,b)},p=function(b,d,_,m,g,v,y,j){return a(m^(_|~g),d,_,v,y,j,b)},c=function(b,d,_){_===void 0&&(_=o);var m=b[0],g=b[1],v=b[2],y=b[3],j=u.bind(null,_);m=j(m,g,v,y,d[0],7,-680876936),y=j(y,m,g,v,d[1],12,-389564586),v=j(v,y,m,g,d[2],17,606105819),g=j(g,v,y,m,d[3],22,-1044525330),m=j(m,g,v,y,d[4],7,-176418897),y=j(y,m,g,v,d[5],12,1200080426),v=j(v,y,m,g,d[6],17,-1473231341),g=j(g,v,y,m,d[7],22,-45705983),m=j(m,g,v,y,d[8],7,1770035416),y=j(y,m,g,v,d[9],12,-1958414417),v=j(v,y,m,g,d[10],17,-42063),g=j(g,v,y,m,d[11],22,-1990404162),m=j(m,g,v,y,d[12],7,1804603682),y=j(y,m,g,v,d[13],12,-40341101),v=j(v,y,m,g,d[14],17,-1502002290),g=j(g,v,y,m,d[15],22,1236535329);var C=l.bind(null,_);m=C(m,g,v,y,d[1],5,-165796510),y=C(y,m,g,v,d[6],9,-1069501632),v=C(v,y,m,g,d[11],14,643717713),g=C(g,v,y,m,d[0],20,-373897302),m=C(m,g,v,y,d[5],5,-701558691),y=C(y,m,g,v,d[10],9,38016083),v=C(v,y,m,g,d[15],14,-660478335),g=C(g,v,y,m,d[4],20,-405537848),m=C(m,g,v,y,d[9],5,568446438),y=C(y,m,g,v,d[14],9,-1019803690),v=C(v,y,m,g,d[3],14,-187363961),g=C(g,v,y,m,d[8],20,1163531501),m=C(m,g,v,y,d[13],5,-1444681467),y=C(y,m,g,v,d[2],9,-51403784),v=C(v,y,m,g,d[7],14,1735328473),g=C(g,v,y,m,d[12],20,-1926607734);var F=f.bind(null,_);m=F(m,g,v,y,d[5],4,-378558),y=F(y,m,g,v,d[8],11,-2022574463),v=F(v,y,m,g,d[11],16,1839030562),g=F(g,v,y,m,d[14],23,-35309556),m=F(m,g,v,y,d[1],4,-1530992060),y=F(y,m,g,v,d[4],11,1272893353),v=F(v,y,m,g,d[7],16,-155497632),g=F(g,v,y,m,d[10],23,-1094730640),m=F(m,g,v,y,d[13],4,681279174),y=F(y,m,g,v,d[0],11,-358537222),v=F(v,y,m,g,d[3],16,-722521979),g=F(g,v,y,m,d[6],23,76029189),m=F(m,g,v,y,d[9],4,-640364487),y=F(y,m,g,v,d[12],11,-421815835),v=F(v,y,m,g,d[15],16,530742520),g=F(g,v,y,m,d[2],23,-995338651);var E=p.bind(null,_);m=E(m,g,v,y,d[0],6,-198630844),y=E(y,m,g,v,d[7],10,1126891415),v=E(v,y,m,g,d[14],15,-1416354905),g=E(g,v,y,m,d[5],21,-57434055),m=E(m,g,v,y,d[12],6,1700485571),y=E(y,m,g,v,d[3],10,-1894986606),v=E(v,y,m,g,d[10],15,-1051523),g=E(g,v,y,m,d[1],21,-2054922799),m=E(m,g,v,y,d[8],6,1873313359),y=E(y,m,g,v,d[15],10,-30611744),v=E(v,y,m,g,d[6],15,-1560198380),g=E(g,v,y,m,d[13],21,1309151649),m=E(m,g,v,y,d[4],6,-145523070),y=E(y,m,g,v,d[11],10,-1120210379),v=E(v,y,m,g,d[2],15,718787259),g=E(g,v,y,m,d[9],21,-343485551),b[0]=_(m,b[0]),b[1]=_(g,b[1]),b[2]=_(v,b[2]),b[3]=_(y,b[3])},h=function(b){for(var d=[],_=0;_<64;_+=4)d[_>>2]=b.charCodeAt(_)+(b.charCodeAt(_+1)<<8)+(b.charCodeAt(_+2)<<16)+(b.charCodeAt(_+3)<<24);return d},w=function(b,d){var _,m=b.length,g=[1732584193,-271733879,-1732584194,271733878];for(_=64;_<=m;_+=64)c(g,h(b.substring(_-64,_)),d);var v=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],y=(b=b.substring(_-64)).length;for(_=0;_>2]|=b.charCodeAt(_)<<(_%4<<3);if(v[_>>2]|=128<<(_%4<<3),_>55)for(c(g,v,d),_=16;_--;)v[_]=0;return v[14]=8*m,c(g,v,d),g};function x(b){var d;return s(w("hello"))!=="5d41402abc4b2a76b9719d911017c592"&&(d=function(_,m){var g=(65535&_)+(65535&m);return(_>>16)+(m>>16)+(g>>16)<<16|65535&g}),s(w(b,d))}}])})});var ll=yn(oi=>{oi.parse=function(t,e){if(e?e.offsets=typeof e.offsets=="undefined"?!0:e.offsets:e={offsets:!0},t||(t=""),t.indexOf(":")===-1&&!e.tokenize)return t;if(!e.keywords&&!e.ranges&&!e.tokenize)return t;var r={text:[]};e.offsets&&(r.offsets=[]);for(var n={},i=[],s=/(\S+:'(?:[^'\\]|\\.)*')|(\S+:"(?:[^"\\]|\\.)*")|(-?"(?:[^"\\]|\\.)*")|(-?'(?:[^'\\]|\\.)*')|\S+|\S+:\S+/g,o;(o=s.exec(t))!==null;){var c=o[0],a=c.indexOf(":");if(a!==-1){var u=c.split(":"),l=c.slice(0,a),f=c.slice(a+1);f=f.replace(/^\"|\"$|^\'|\'$/g,""),f=(f+"").replace(/\\(.?)/g,function(y,j){switch(j){case"\\":return"\\";case"0":return"\0";case"":return"";default:return j}}),i.push({keyword:l,value:f,offsetStart:o.index,offsetEnd:o.index+c.length})}else{var p=!1;c[0]==="-"&&(p=!0,c=c.slice(1)),c=c.replace(/^\"|\"$|^\'|\'$/g,""),c=(c+"").replace(/\\(.?)/g,function(y,j){switch(j){case"\\":return"\\";case"0":return"\0";case"":return"";default:return j}}),p?n.text?(n.text instanceof Array||(n.text=[n.text]),n.text.push(c)):n.text=c:i.push({text:c,offsetStart:o.index,offsetEnd:o.index+c.length})}}i.reverse();for(var c;c=i.pop();)if(c.text)r.text.push(c.text),e.offsets&&r.offsets.push(c);else{var l=c.keyword;e.keywords=e.keywords||[];var h=!1,w=!1;if(!/^-/.test(l))h=e.keywords.indexOf(l)!==-1;else if(l[0]==="-"){var x=l.slice(1);h=e.keywords.indexOf(x)!==-1,h&&(l=x,w=!0)}e.ranges=e.ranges||[];var b=e.ranges.indexOf(l)!==-1;if(h){e.offsets&&r.offsets.push({keyword:l,value:c.value,offsetStart:w?c.offsetStart+1:c.offsetStart,offsetEnd:c.offsetEnd});var d=c.value;if(d.length){var _=d.split(",");w?n[l]?n[l]instanceof Array?_.length>1?n[l]=n[l].concat(_):n[l].push(d):(n[l]=[n[l]],n[l].push(d)):_.length>1?n[l]=_:e.alwaysArray?n[l]=[d]:n[l]=d:r[l]?r[l]instanceof Array?_.length>1?r[l]=r[l].concat(_):r[l].push(d):(r[l]=[r[l]],r[l].push(d)):_.length>1?r[l]=_:e.alwaysArray?r[l]=[d]:r[l]=d}}else if(b){e.offsets&&r.offsets.push(c);var d=c.value,m=d.split("-");r[l]={},m.length===2?(r[l].from=m[0],r[l].to=m[1]):!m.length%2||(r[l].from=d)}else{var g=c.keyword+":"+c.value;r.text.push(g),e.offsets&&r.offsets.push({text:g,offsetStart:c.offsetStart,offsetEnd:c.offsetEnd})}}return r.text.length?e.tokenize||(r.text=r.text.join(" ").trim()):delete r.text,r.exclude=n,r};oi.stringify=function(t,e,r){if(e||(e={offsets:!0}),!t)return"";if(typeof t=="string")return t;if(Array.isArray(t))return t.join(" ");if(!Object.keys(t).length)return"";if(Object.keys(t).length===3&&!!t.text&&!!t.offsets&&!!t.exclude&&typeof t.text=="string")return t.text;r||(r="");var n=function(a){return a.indexOf(" ")>-1?JSON.stringify(a):a},i=function(a){return r+a},s=[];if(t.text){var o=[];typeof t.text=="string"?o.push(t.text):o.push.apply(o,t.text),o.length>0&&s.push(o.map(n).map(i).join(" "))}return e.keywords&&e.keywords.forEach(function(a){if(!!t[a]){var u=[];typeof t[a]=="string"?u.push(t[a]):u.push.apply(u,t[a]),u.length>0&&s.push(i(a+":"+u.map(n).join(",")))}}),e.ranges&&e.ranges.forEach(function(a){if(!!t[a]){var u=t[a].from,l=t[a].to;l&&(u=u+"-"+l),u&&s.push(i(a+":"+u))}}),t.exclude&&Object.keys(t.exclude).length>0&&s.push(oi.stringify(t.exclude,e,"-")),s.join(" ")}});var cl=yn((c_,ul)=>{ul.exports=ll()});var Fc=yn(Ei=>{function ho(t){return ho=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ho(t)}(function(t,e){if(typeof define=="function"&&define.amd)define(["exports"],e);else if(typeof Ei!="undefined")e(Ei);else{var r={exports:{}};e(r.exports),t.CancelablePromise=r.exports}})(typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:Ei,function(t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CancelablePromise=void 0,t.cancelable=L,t.default=void 0,t.isCancelablePromise=O;function e(A,S){if(typeof S!="function"&&S!==null)throw new TypeError("Super expression must either be null or a function");A.prototype=Object.create(S&&S.prototype,{constructor:{value:A,writable:!0,configurable:!0}}),Object.defineProperty(A,"prototype",{writable:!1}),S&&r(A,S)}function r(A,S){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(N,k){return N.__proto__=k,N},r(A,S)}function n(A){var S=o();return function(){var N=a(A),k;if(S){var X=a(this).constructor;k=Reflect.construct(N,arguments,X)}else k=N.apply(this,arguments);return i(this,k)}}function i(A,S){if(S&&(ho(S)==="object"||typeof S=="function"))return S;if(S!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return s(A)}function s(A){if(A===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return A}function o(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function a(A){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(T){return T.__proto__||Object.getPrototypeOf(T)},a(A)}function u(A,S){var T=typeof Symbol!="undefined"&&A[Symbol.iterator]||A["@@iterator"];if(!T){if(Array.isArray(A)||(T=l(A))||S&&A&&typeof A.length=="number"){T&&(A=T);var N=0,k=function(){};return{s:k,n:function(){return N>=A.length?{done:!0}:{done:!1,value:A[N++]}},e:function(te){throw te},f:k}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var X=!0,le=!1,_e;return{s:function(){T=T.call(A)},n:function(){var te=T.next();return X=te.done,te},e:function(te){le=!0,_e=te},f:function(){try{!X&&T.return!=null&&T.return()}finally{if(le)throw _e}}}}function l(A,S){if(!!A){if(typeof A=="string")return f(A,S);var T=Object.prototype.toString.call(A).slice(8,-1);if(T==="Object"&&A.constructor&&(T=A.constructor.name),T==="Map"||T==="Set")return Array.from(A);if(T==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(T))return f(A,S)}}function f(A,S){(S==null||S>A.length)&&(S=A.length);for(var T=0,N=new Array(S);Tgo});var gn=Fe(require("obsidian"));var Vc=Fe(require("obsidian"));function ce(){}function ef(t,e){for(let r in e)t[r]=e[r];return t}function Ii(t){return t()}function wo(){return Object.create(null)}function Ue(t){t.forEach(Ii)}function tr(t){return typeof t=="function"}function be(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}var vn;function ki(t,e){return vn||(vn=document.createElement("a")),vn.href=e,t===vn.href}function jo(t){return Object.keys(t).length===0}function Co(t,...e){if(t==null)return ce;let r=t.subscribe(...e);return r.unsubscribe?()=>r.unsubscribe():r}function _n(t,e,r){t.$$.on_destroy.push(Co(e,r))}function rr(t,e,r,n){if(t){let i=Ao(t,e,r,n);return t[0](i)}}function Ao(t,e,r,n){return t[1]&&n?ef(r.ctx.slice(),t[1](n(e))):r.ctx}function nr(t,e,r,n){if(t[2]&&n){let i=t[2](n(r));if(e.dirty===void 0)return i;if(typeof i=="object"){let s=[],o=Math.max(e.dirty.length,i.length);for(let a=0;a32){let e=[],r=t.ctx.length/32;for(let n=0;nt.removeEventListener(e,r,n)}function B(t,e,r){r==null?t.removeAttribute(e):t.getAttribute(e)!==r&&t.setAttribute(e,r)}function nf(t){return Array.from(t.childNodes)}function Ge(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function Oi(t,e){t.value=e??""}function ze(t,e,r,n){r===null?t.style.removeProperty(e):t.style.setProperty(e,r,n?"important":"")}function Pi(t,e,r){t.classList[r?"add":"remove"](e)}function sf(t,e,{bubbles:r=!1,cancelable:n=!1}={}){let i=document.createEvent("CustomEvent");return i.initCustomEvent(t,r,n,e),i}var Br;function Nr(t){Br=t}function Mi(){if(!Br)throw new Error("Function called outside component initialization");return Br}function Kr(t){Mi().$$.on_mount.push(t)}function zr(t){Mi().$$.on_destroy.push(t)}function Ri(){let t=Mi();return(e,r,{cancelable:n=!1}={})=>{let i=t.$$.callbacks[e];if(i){let s=sf(e,r,{cancelable:n});return i.slice().forEach(o=>{o.call(t,s)}),!s.defaultPrevented}return!0}}function Ve(t,e){let r=t.$$.callbacks[e.type];r&&r.slice().forEach(n=>n.call(this,e))}var Vr=[];var tt=[],xn=[],Eo=[],Do=Promise.resolve(),Li=!1;function To(){Li||(Li=!0,Do.then(Io))}function mt(){return To(),Do}function Bi(t){xn.push(t)}var Ni=new Set,wn=0;function Io(){let t=Br;do{for(;wn{jn.delete(t),n&&(r&&t.d(1),n())}),t.o(e)}else n&&n()}var tv=typeof window!="undefined"?window:typeof globalThis!="undefined"?globalThis:global;function Ne(t){t&&t.c()}function Pe(t,e,r,n){let{fragment:i,after_update:s}=t.$$;i&&i.m(e,r),n||Bi(()=>{let o=t.$$.on_mount.map(Ii).filter(tr);t.$$.on_destroy?t.$$.on_destroy.push(...o):Ue(o),t.$$.on_mount=[]}),s.forEach(Bi)}function De(t,e){let r=t.$$;r.fragment!==null&&(Ue(r.on_destroy),r.fragment&&r.fragment.d(e),r.on_destroy=r.fragment=null,r.ctx=[])}function af(t,e){t.$$.dirty[0]===-1&&(Vr.push(t),To(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{let w=h.length?h[0]:c;return l.ctx&&i(l.ctx[p],l.ctx[p]=w)&&(!l.skip_bound&&l.bound[p]&&l.bound[p](w),f&&af(t,p)),c}):[],l.update(),f=!0,Ue(l.before_update),l.fragment=n?n(l.ctx):!1,e.target){if(e.hydrate){tf();let p=nf(e.target);l.fragment&&l.fragment.l(p),p.forEach(H)}else l.fragment&&l.fragment.c();e.intro&&ee(t.$$.fragment),Pe(t,e.target,e.anchor,e.customElement),rf(),Io()}Nr(u)}var lf;typeof HTMLElement=="function"&&(lf=class extends HTMLElement{constructor(){super();this.attachShadow({mode:"open"})}connectedCallback(){let{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(Ii).filter(tr);for(let e in this.$$.slotted)this.appendChild(this.$$.slotted[e])}attributeChangedCallback(t,e,r){this[t]=r}disconnectedCallback(){Ue(this.$$.on_disconnect)}$destroy(){De(this,1),this.$destroy=ce}$on(t,e){if(!tr(e))return ce;let r=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return r.push(e),()=>{let n=r.indexOf(e);n!==-1&&r.splice(n,1)}}$set(t){this.$$set&&!jo(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});var Se=class{$destroy(){De(this,1),this.$destroy=ce}$on(e,r){if(!tr(r))return ce;let n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(r),()=>{let i=n.indexOf(r);i!==-1&&n.splice(i,1)}}$set(e){this.$$set&&!jo(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}};var Rt=Fe(require("obsidian"));var Qa=Fe(require("obsidian"));var Ki=class{constructor(){this.handlers=new Map;this.disabled=[]}on(e,r,n){if(e.includes("@")||r.includes("@"))throw new Error("Invalid context/event name - Cannot contain @");this.handlers.set(`${e}@${r}`,n)}off(e,r){if(r)this.handlers.delete(`${e}@${r}`);else for(let[n]of this.handlers.entries())n.startsWith(`${e}@`)&&this.handlers.delete(n)}disable(e){this.enable(e),this.disabled.push(e)}enable(e){this.disabled=this.disabled.filter(r=>r!==e)}emit(e,...r){let n=[...this.handlers.entries()].filter(([i,s])=>!this.disabled.includes(i.split("@")[0]));for(let[i,s]of n)i.endsWith(`@${e}`)&&s(...r)}};var ar=[];function Cn(t,e=ce){let r,n=new Set;function i(a){if(be(t,a)&&(t=a,r)){let u=!ar.length;for(let l of n)l[1](),ar.push(l,t);if(u){for(let l=0;l{n.delete(l),n.size===0&&(r(),r=null)}}return{set:i,update:s,subscribe:o}}var q=Fe(require("obsidian"));var ie=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:global,pe=Object.keys,Ie=Array.isArray;typeof Promise!="undefined"&&!ie.Promise&&(ie.Promise=Promise);function Me(t,e){return typeof e!="object"||pe(e).forEach(function(r){t[r]=e[r]}),t}var Hr=Object.getPrototypeOf,uf={}.hasOwnProperty;function He(t,e){return uf.call(t,e)}function lr(t,e){typeof e=="function"&&(e=e(Hr(t))),(typeof Reflect=="undefined"?pe:Reflect.ownKeys)(e).forEach(r=>{rt(t,r,e[r])})}var ko=Object.defineProperty;function rt(t,e,r,n){ko(t,e,Me(r&&He(r,"get")&&typeof r.get=="function"?{get:r.get,set:r.set,configurable:!0}:{value:r,configurable:!0,writable:!0},n))}function ur(t){return{from:function(e){return t.prototype=Object.create(e.prototype),rt(t.prototype,"constructor",t),{extend:lr.bind(null,t.prototype)}}}}var cf=Object.getOwnPropertyDescriptor;function zi(t,e){let r=cf(t,e),n;return r||(n=Hr(t))&&zi(n,e)}var ff=[].slice;function An(t,e,r){return ff.call(t,e,r)}function Oo(t,e){return e(t)}function $r(t){if(!t)throw new Error("Assertion Failed")}function Po(t){ie.setImmediate?setImmediate(t):setTimeout(t,0)}function Mo(t,e){return t.reduce((r,n,i)=>{var s=e(n,i);return s&&(r[s[0]]=s[1]),r},{})}function df(t,e,r){try{t.apply(null,r)}catch(n){e&&e(n)}}function nt(t,e){if(He(t,e))return t[e];if(!e)return t;if(typeof e!="string"){for(var r=[],n=0,i=e.length;n["Int","Uint","Float"].map(e=>e+t+"Array")))).filter(t=>ie[t]),mf=Bo.map(t=>ie[t]);Mo(Bo,t=>[t,!0]);var gt=null;function Wr(t){gt=typeof WeakMap!="undefined"&&new WeakMap;let e=Vi(t);return gt=null,e}function Vi(t){if(!t||typeof t!="object")return t;let e=gt&>.get(t);if(e)return e;if(Ie(t)){e=[],gt&>.set(t,e);for(var r=0,n=t.length;r=0)e=t;else{let s=Hr(t);e=s===Object.prototype?{}:Object.create(s),gt&>.set(t,e);for(var i in t)He(t,i)&&(e[i]=Vi(t[i]))}return e}var{toString:gf}={};function Hi(t){return gf.call(t).slice(8,-1)}var $i=typeof Symbol!="undefined"?Symbol.iterator:"@@iterator",yf=typeof $i=="symbol"?function(t){var e;return t!=null&&(e=t[$i])&&e.apply(t)}:function(){return null},cr={};function it(t){var e,r,n,i;if(arguments.length===1){if(Ie(t))return t.slice();if(this===cr&&typeof t=="string")return[t];if(i=yf(t)){for(r=[];n=i.next(),!n.done;)r.push(n.value);return r}if(t==null)return[t];if(e=t.length,typeof e=="number"){for(r=new Array(e);e--;)r[e]=t[e];return r}return[t]}for(e=arguments.length,r=new Array(e);e--;)r[e]=arguments[e];return r}var Wi=typeof Symbol!="undefined"?t=>t[Symbol.toStringTag]==="AsyncFunction":()=>!1,Je=typeof location!="undefined"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function No(t,e){Je=t,Ko=e}var Ko=()=>!0,vf=!new Error("").stack;function Kt(){if(vf)try{throw Kt.arguments,new Error}catch(t){return t}return new Error}function Ui(t,e){var r=t.stack;return r?(e=e||0,r.indexOf(t.name)===0&&(e+=(t.name+t.message).split(` `).length),r.split(` -`).slice(e).filter(Bs).map(n=>` -`+n).join("")):""}var pf=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"],Ns=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],Wi=pf.concat(Ns),mf={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function cr(t,e){this._e=Nt(),this.name=t,this.message=e}lr(cr).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+": "+this.message+$i(this._e,2))}},toString:function(){return this.name+": "+this.message}});function Ks(t,e){return t+". Errors: "+Object.keys(e).map(r=>e[r].toString()).filter((r,n,i)=>i.indexOf(r)===n).join(` -`)}function Sn(t,e,r,n){this._e=Nt(),this.failures=e,this.failedKeys=n,this.successCount=r,this.message=Ks(t,e)}lr(Sn).from(cr);function $r(t,e){this._e=Nt(),this.name="BulkError",this.failures=Object.keys(e).map(r=>e[r]),this.failuresByPos=e,this.message=Ks(t,e)}lr($r).from(cr);var Ui=Wi.reduce((t,e)=>(t[e]=e+"Error",t),{}),gf=cr,V=Wi.reduce((t,e)=>{var r=e+"Error";function n(i,o){this._e=Nt(),this.name=r,i?typeof i=="string"?(this.message=`${i}${o?` - `+o:""}`,this.inner=o||null):typeof i=="object"&&(this.message=`${i.name} ${i.message}`,this.inner=i):(this.message=mf[e]||r,this.inner=null)}return lr(n).from(gf),t[e]=n,t},{});V.Syntax=SyntaxError;V.Type=TypeError;V.Range=RangeError;var zs=Ns.reduce((t,e)=>(t[e+"Error"]=V[e],t),{});function yf(t,e){if(!t||t instanceof cr||t instanceof TypeError||t instanceof SyntaxError||!t.name||!zs[t.name])return t;var r=new zs[t.name](e||t.message,t);return"stack"in t&&rt(r,"stack",{get:function(){return this.inner.stack}}),r}var Fn=Wi.reduce((t,e)=>(["Syntax","Type","Range"].indexOf(e)===-1&&(t[e+"Error"]=V[e]),t),{});Fn.ModifyError=Sn;Fn.DexieError=cr;Fn.BulkError=$r;function ne(){}function Wr(t){return t}function vf(t,e){return t==null||t===Wr?e:function(r){return e(t(r))}}function Kt(t,e){return function(){t.apply(this,arguments),e.apply(this,arguments)}}function _f(t,e){return t===ne?e:function(){var r=t.apply(this,arguments);r!==void 0&&(arguments[0]=r);var n=this.onsuccess,i=this.onerror;this.onsuccess=null,this.onerror=null;var o=e.apply(this,arguments);return n&&(this.onsuccess=this.onsuccess?Kt(n,this.onsuccess):n),i&&(this.onerror=this.onerror?Kt(i,this.onerror):i),o!==void 0?o:r}}function bf(t,e){return t===ne?e:function(){t.apply(this,arguments);var r=this.onsuccess,n=this.onerror;this.onsuccess=this.onerror=null,e.apply(this,arguments),r&&(this.onsuccess=this.onsuccess?Kt(r,this.onsuccess):r),n&&(this.onerror=this.onerror?Kt(n,this.onerror):n)}}function xf(t,e){return t===ne?e:function(r){var n=t.apply(this,arguments);Pe(r,n);var i=this.onsuccess,o=this.onerror;this.onsuccess=null,this.onerror=null;var s=e.apply(this,arguments);return i&&(this.onsuccess=this.onsuccess?Kt(i,this.onsuccess):i),o&&(this.onerror=this.onerror?Kt(o,this.onerror):o),n===void 0?s===void 0?void 0:s:Pe(n,s)}}function wf(t,e){return t===ne?e:function(){return e.apply(this,arguments)===!1?!1:t.apply(this,arguments)}}function Gi(t,e){return t===ne?e:function(){var r=t.apply(this,arguments);if(r&&typeof r.then=="function"){for(var n=this,i=arguments.length,o=new Array(i);i--;)o[i]=arguments[i];return r.then(function(){return e.apply(n,o)})}return e.apply(this,arguments)}}var Ur={},jf=100,Cf=20,Vs=100,[Qi,En,qi]=typeof Promise=="undefined"?[]:(()=>{let t=Promise.resolve();if(typeof crypto=="undefined"||!crypto.subtle)return[t,zr(t),t];let e=crypto.subtle.digest("SHA-512",new Uint8Array([0]));return[e,zr(e),t]})(),Hs=En&&En.then,Dn=Qi&&Qi.constructor,Yi=!!qi,Ji=!1,Af=qi?()=>{qi.then(kn)}:ie.setImmediate?setImmediate.bind(null,kn):ie.MutationObserver?()=>{var t=document.createElement("div");new MutationObserver(()=>{kn(),t=null}).observe(t,{attributes:!0}),t.setAttribute("i","1")}:()=>{setTimeout(kn,0)},Gr=function(t,e){Qr.push([t,e]),Tn&&(Af(),Tn=!1)},Xi=!0,Tn=!0,zt=[],In=[],Zi=null,eo=Wr,fr={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:Zs,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach(t=>{try{Zs(t[0],t[1])}catch{}})}},K=fr,Qr=[],Vt=0,On=[];function M(t){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this.onuncatched=ne,this._lib=!1;var e=this._PSD=K;if(Je&&(this._stackHolder=Nt(),this._prev=null,this._numPrev=0),typeof t!="function"){if(t!==Ur)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&ro(this,this._value);return}this._state=null,this._value=null,++e.ref,Ws(this,t)}var to={get:function(){var t=K,e=Rn;function r(n,i){var o=!t.global&&(t!==K||e!==Rn);let s=o&&!ot();var a=new M((l,u)=>{no(this,new $s(Bn(n,t,o,s),Bn(i,t,o,s),l,u,t))});return Je&&Qs(a,this),a}return r.prototype=Ur,r},set:function(t){rt(this,"then",t&&t.prototype===Ur?to:{get:function(){return t},set:to.set})}};ar(M.prototype,{then:to,_then:function(t,e){no(this,new $s(null,null,t,e,K))},catch:function(t){if(arguments.length===1)return this.then(null,t);var e=arguments[0],r=arguments[1];return typeof e=="function"?this.then(null,n=>n instanceof e?r(n):Pn(n)):this.then(null,n=>n&&n.name===e?r(n):Pn(n))},finally:function(t){return this.then(e=>(t(),e),e=>(t(),Pn(e)))},stack:{get:function(){if(this._stack)return this._stack;try{Ji=!0;var t=Gs(this,[],Cf),e=t.join(` -From previous: `);return this._state!==null&&(this._stack=e),e}finally{Ji=!1}}},timeout:function(t,e){return t<1/0?new M((r,n)=>{var i=setTimeout(()=>n(new V.Timeout(e)),t);this.then(r,n).finally(clearTimeout.bind(null,i))}):this}});typeof Symbol!="undefined"&&Symbol.toStringTag&&rt(M.prototype,Symbol.toStringTag,"Dexie.Promise");fr.env=qs();function $s(t,e,r,n,i){this.onFulfilled=typeof t=="function"?t:null,this.onRejected=typeof e=="function"?e:null,this.resolve=r,this.reject=n,this.psd=i}ar(M,{all:function(){var t=it.apply(null,arguments).map(Ln);return new M(function(e,r){t.length===0&&e([]);var n=t.length;t.forEach((i,o)=>M.resolve(i).then(s=>{t[o]=s,--n||e(t)},r))})},resolve:t=>{if(t instanceof M)return t;if(t&&typeof t.then=="function")return new M((r,n)=>{t.then(r,n)});var e=new M(Ur,!0,t);return Qs(e,Zi),e},reject:Pn,race:function(){var t=it.apply(null,arguments).map(Ln);return new M((e,r)=>{t.map(n=>M.resolve(n).then(e,r))})},PSD:{get:()=>K,set:t=>K=t},totalEchoes:{get:()=>Rn},newPSD:yt,usePSD:hr,scheduler:{get:()=>Gr,set:t=>{Gr=t}},rejectionMapper:{get:()=>eo,set:t=>{eo=t}},follow:(t,e)=>new M((r,n)=>yt((i,o)=>{var s=K;s.unhandleds=[],s.onunhandled=o,s.finalize=Kt(function(){Ff(()=>{this.unhandleds.length===0?i():o(this.unhandleds[0])})},s.finalize),t()},e,r,n))});Dn&&(Dn.allSettled&&rt(M,"allSettled",function(){let t=it.apply(null,arguments).map(Ln);return new M(e=>{t.length===0&&e([]);let r=t.length,n=new Array(r);t.forEach((i,o)=>M.resolve(i).then(s=>n[o]={status:"fulfilled",value:s},s=>n[o]={status:"rejected",reason:s}).then(()=>--r||e(n)))})}),Dn.any&&typeof AggregateError!="undefined"&&rt(M,"any",function(){let t=it.apply(null,arguments).map(Ln);return new M((e,r)=>{t.length===0&&r(new AggregateError([]));let n=t.length,i=new Array(n);t.forEach((o,s)=>M.resolve(o).then(a=>e(a),a=>{i[s]=a,--n||r(new AggregateError(i))}))})}));function Ws(t,e){try{e(r=>{if(t._state===null){if(r===t)throw new TypeError("A promise cannot be resolved with itself.");var n=t._lib&&qr();r&&typeof r.then=="function"?Ws(t,(i,o)=>{r instanceof M?r._then(i,o):r.then(i,o)}):(t._state=!0,t._value=r,Us(t)),n&&Yr()}},ro.bind(null,t))}catch(r){ro(t,r)}}function ro(t,e){if(In.push(e),t._state===null){var r=t._lib&&qr();e=eo(e),t._state=!1,t._value=e,Je&&e!==null&&typeof e=="object"&&!e._promise&&af(()=>{var n=Ni(e,"stack");e._promise=t,rt(e,"stack",{get:()=>Ji?n&&(n.get?n.get.apply(e):n.value):t.stack})}),Ef(t),Us(t),r&&Yr()}}function Us(t){var e=t._listeners;t._listeners=[];for(var r=0,n=e.length;r{--Vt==0&&io()},[]))}function no(t,e){if(t._state===null){t._listeners.push(e);return}var r=t._state?e.onFulfilled:e.onRejected;if(r===null)return(t._state?e.resolve:e.reject)(t._value);++e.psd.ref,++Vt,Gr(Sf,[r,t,e])}function Sf(t,e,r){try{Zi=e;var n,i=e._value;e._state?n=t(i):(In.length&&(In=[]),n=t(i),In.indexOf(i)===-1&&Df(e)),r.resolve(n)}catch(o){r.reject(o)}finally{Zi=null,--Vt==0&&io(),--r.psd.ref||r.psd.finalize()}}function Gs(t,e,r){if(e.length===r)return e;var n="";if(t._state===!1){var i=t._value,o,s;i!=null?(o=i.name||"Error",s=i.message||i,n=$i(i,0)):(o=i,s=""),e.push(o+(s?": "+s:"")+n)}return Je&&(n=$i(t._stackHolder,2),n&&e.indexOf(n)===-1&&e.push(n),t._prev&&Gs(t._prev,e,r)),e}function Qs(t,e){var r=e?e._numPrev+1:0;r0;)for(t=Qr,Qr=[],r=t.length,e=0;e0);Xi=!0,Tn=!0}function io(){var t=zt;zt=[],t.forEach(n=>{n._PSD.onunhandled.call(null,n._value,n)});for(var e=On.slice(0),r=e.length;r;)e[--r]()}function Ff(t){function e(){t(),On.splice(On.indexOf(e),1)}On.push(e),++Vt,Gr(()=>{--Vt==0&&io()},[])}function Ef(t){zt.some(e=>e._value===t._value)||zt.push(t)}function Df(t){for(var e=zt.length;e;)if(zt[--e]._value===t._value){zt.splice(e,1);return}}function Pn(t){return new M(Ur,!1,t)}function se(t,e){var r=K;return function(){var n=qr(),i=K;try{return vt(r,!0),t.apply(this,arguments)}catch(o){e&&e(o)}finally{vt(i,!1),n&&Yr()}}}var Ie={awaits:0,echoes:0,id:0},Tf=0,Mn=[],oo=0,Rn=0,If=0;function yt(t,e,r,n){var i=K,o=Object.create(i);o.parent=i,o.ref=0,o.global=!1,o.id=++If;var s=fr.env;o.env=Yi?{Promise:M,PromiseProp:{value:M,configurable:!0,writable:!0},all:M.all,race:M.race,allSettled:M.allSettled,any:M.any,resolve:M.resolve,reject:M.reject,nthen:Js(s.nthen,o),gthen:Js(s.gthen,o)}:{},e&&Pe(o,e),++i.ref,o.finalize=function(){--this.parent.ref||this.parent.finalize()};var a=hr(o,t,r,n);return o.ref===0&&o.finalize(),a}function dr(){return Ie.id||(Ie.id=++Tf),++Ie.awaits,Ie.echoes+=Vs,Ie.id}function ot(){return Ie.awaits?(--Ie.awaits==0&&(Ie.id=0),Ie.echoes=Ie.awaits*Vs,!0):!1}(""+Hs).indexOf("[native code]")===-1&&(dr=ot=ne);function Ln(t){return Ie.echoes&&t&&t.constructor===Dn?(dr(),t.then(e=>(ot(),e),e=>(ot(),ye(e)))):t}function Of(t){++Rn,(!Ie.echoes||--Ie.echoes==0)&&(Ie.echoes=Ie.id=0),Mn.push(K),vt(t,!0)}function kf(){var t=Mn[Mn.length-1];Mn.pop(),vt(t,!1)}function vt(t,e){var r=K;if((e?Ie.echoes&&(!oo++||t!==K):oo&&(!--oo||t!==K))&&Ys(e?Of.bind(null,t):kf),t!==K&&(K=t,r===fr&&(fr.env=qs()),Yi)){var n=fr.env.Promise,i=t.env;En.then=i.nthen,n.prototype.then=i.gthen,(r.global||t.global)&&(Object.defineProperty(ie,"Promise",i.PromiseProp),n.all=i.all,n.race=i.race,n.resolve=i.resolve,n.reject=i.reject,i.allSettled&&(n.allSettled=i.allSettled),i.any&&(n.any=i.any))}}function qs(){var t=ie.Promise;return Yi?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(ie,"Promise"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:En.then,gthen:t.prototype.then}:{}}function hr(t,e,r,n,i){var o=K;try{return vt(t,!0),e(r,n,i)}finally{vt(o,!1)}}function Ys(t){Hs.call(Qi,t)}function Bn(t,e,r,n){return typeof t!="function"?t:function(){var i=K;r&&dr(),vt(e,!0);try{return t.apply(this,arguments)}finally{vt(i,!1),n&&Ys(ot)}}}function Js(t,e){return function(r,n){return t.call(this,Bn(r,e),Bn(n,e))}}var Xs="unhandledrejection";function Zs(t,e){var r;try{r=e.onuncatched(t)}catch{}if(r!==!1)try{var n,i={promise:e,reason:t};if(ie.document&&document.createEvent?(n=document.createEvent("Event"),n.initEvent(Xs,!0,!0),Pe(n,i)):ie.CustomEvent&&(n=new CustomEvent(Xs,{detail:i}),Pe(n,i)),n&&ie.dispatchEvent&&(dispatchEvent(n),!ie.PromiseRejectionEvent&&ie.onunhandledrejection))try{ie.onunhandledrejection(n)}catch{}Je&&n&&!n.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch{}}var ye=M.reject;function so(t,e,r,n){if(!t.idbdb||!t._state.openComplete&&!K.letThrough&&!t._vip){if(t._state.openComplete)return ye(new V.DatabaseClosed(t._state.dbOpenError));if(!t._state.isBeingOpened){if(!t._options.autoOpen)return ye(new V.DatabaseClosed);t.open().catch(ne)}return t._state.dbReadyPromise.then(()=>so(t,e,r,n))}else{var i=t._createTransaction(e,r,t._dbSchema);try{i.create(),t._state.PR1398_maxLoop=3}catch(o){return o.name===Ui.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>so(t,e,r,n))):ye(o)}return i._promise(e,(o,s)=>yt(()=>(K.trans=i,n(o,s,i)))).then(o=>i._completion.then(()=>o))}}var ea="3.2.2",Ht=String.fromCharCode(65535),ao=-1/0,st="Invalid key provided. Keys must be of type string, number, Date or Array.",ta="String expected.",Jr=[],Nn=typeof navigator!="undefined"&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),Pf=Nn,Mf=Nn,ra=t=>!/(dexie\.js|dexie\.min\.js)/.test(t),Kn="__dbnames",lo="readonly",uo="readwrite";function $t(t,e){return t?e?function(){return t.apply(this,arguments)&&e.apply(this,arguments)}:t:e}var na={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function zn(t){return typeof t=="string"&&!/\./.test(t)?e=>(e[t]===void 0&&t in e&&(e=Hr(e),delete e[t]),e):e=>e}var ia=class{_trans(e,r,n){let i=this._tx||K.trans,o=this.name;function s(l,u,d){if(!d.schema[o])throw new V.NotFound("Table "+o+" not part of transaction");return r(d.idbtrans,d)}let a=qr();try{return i&&i.db===this.db?i===K.trans?i._promise(e,s,n):yt(()=>i._promise(e,s,n),{trans:i,transless:K.transless||K}):so(this.db,e,[this.name],s)}finally{a&&Yr()}}get(e,r){return e&&e.constructor===Object?this.where(e).first(r):this._trans("readonly",n=>this.core.get({trans:n,key:e}).then(i=>this.hook.reading.fire(i))).then(r)}where(e){if(typeof e=="string")return new this.db.WhereClause(this,e);if(Te(e))return new this.db.WhereClause(this,`[${e.join("+")}]`);let r=he(e);if(r.length===1)return this.where(r[0]).equals(e[r[0]]);let n=this.schema.indexes.concat(this.schema.primKey).filter(u=>u.compound&&r.every(d=>u.keyPath.indexOf(d)>=0)&&u.keyPath.every(d=>r.indexOf(d)>=0))[0];if(n&&this.db._maxKey!==Ht)return this.where(n.name).equals(n.keyPath.map(u=>e[u]));!n&&Je&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${r.join("+")}]`);let{idxByName:i}=this.schema,o=this.db._deps.indexedDB;function s(u,d){try{return o.cmp(u,d)===0}catch{return!1}}let[a,l]=r.reduce(([u,d],f)=>{let c=i[f],y=e[f];return[u||c,u||!c?$t(d,c&&c.multi?w=>{let x=nt(w,f);return Te(x)&&x.some(b=>s(y,b))}:w=>s(y,nt(w,f))):d]},[null,null]);return a?this.where(a.name).equals(e[a.keyPath]).filter(l):n?this.filter(l):this.where(r).equals("")}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,Te(e)?`[${e.join("+")}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;let r=n=>{if(!n)return n;let i=Object.create(e.prototype);for(var o in n)if(Ve(n,o))try{i[o]=n[o]}catch{}return i};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=r,this.hook("reading",r),e}defineClass(){function e(r){Pe(this,r)}return this.mapToClass(e)}add(e,r){let{auto:n,keyPath:i}=this.schema.primKey,o=e;return i&&n&&(o=zn(i)(e)),this._trans("readwrite",s=>this.core.mutate({trans:s,type:"add",keys:r!=null?[r]:null,values:[o]})).then(s=>s.numFailures?M.reject(s.failures[0]):s.lastResult).then(s=>{if(i)try{Qe(e,i,s)}catch{}return s})}update(e,r){if(typeof e=="object"&&!Te(e)){let n=nt(e,this.schema.primKey.keyPath);if(n===void 0)return ye(new V.InvalidArgument("Given object does not contain its primary key"));try{typeof r!="function"?he(r).forEach(i=>{Qe(e,i,r[i])}):r(e,{value:e,primKey:n})}catch{}return this.where(":id").equals(n).modify(r)}else return this.where(":id").equals(e).modify(r)}put(e,r){let{auto:n,keyPath:i}=this.schema.primKey,o=e;return i&&n&&(o=zn(i)(e)),this._trans("readwrite",s=>this.core.mutate({trans:s,type:"put",values:[o],keys:r!=null?[r]:null})).then(s=>s.numFailures?M.reject(s.failures[0]):s.lastResult).then(s=>{if(i)try{Qe(e,i,s)}catch{}return s})}delete(e){return this._trans("readwrite",r=>this.core.mutate({trans:r,type:"delete",keys:[e]})).then(r=>r.numFailures?M.reject(r.failures[0]):void 0)}clear(){return this._trans("readwrite",e=>this.core.mutate({trans:e,type:"deleteRange",range:na})).then(e=>e.numFailures?M.reject(e.failures[0]):void 0)}bulkGet(e){return this._trans("readonly",r=>this.core.getMany({keys:e,trans:r}).then(n=>n.map(i=>this.hook.reading.fire(i))))}bulkAdd(e,r,n){let i=Array.isArray(r)?r:void 0;n=n||(i?void 0:r);let o=n?n.allKeys:void 0;return this._trans("readwrite",s=>{let{auto:a,keyPath:l}=this.schema.primKey;if(l&&i)throw new V.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(i&&i.length!==e.length)throw new V.InvalidArgument("Arguments objects and keys must have the same length");let u=e.length,d=l&&a?e.map(zn(l)):e;return this.core.mutate({trans:s,type:"add",keys:i,values:d,wantResults:o}).then(({numFailures:f,results:c,lastResult:y,failures:w})=>{let x=o?c:y;if(f===0)return x;throw new $r(`${this.name}.bulkAdd(): ${f} of ${u} operations failed`,w)})})}bulkPut(e,r,n){let i=Array.isArray(r)?r:void 0;n=n||(i?void 0:r);let o=n?n.allKeys:void 0;return this._trans("readwrite",s=>{let{auto:a,keyPath:l}=this.schema.primKey;if(l&&i)throw new V.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(i&&i.length!==e.length)throw new V.InvalidArgument("Arguments objects and keys must have the same length");let u=e.length,d=l&&a?e.map(zn(l)):e;return this.core.mutate({trans:s,type:"put",keys:i,values:d,wantResults:o}).then(({numFailures:f,results:c,lastResult:y,failures:w})=>{let x=o?c:y;if(f===0)return x;throw new $r(`${this.name}.bulkPut(): ${f} of ${u} operations failed`,w)})})}bulkDelete(e){let r=e.length;return this._trans("readwrite",n=>this.core.mutate({trans:n,type:"delete",keys:e})).then(({numFailures:n,lastResult:i,failures:o})=>{if(n===0)return i;throw new $r(`${this.name}.bulkDelete(): ${n} of ${r} operations failed`,o)})}};function Xr(t){var e={},r=function(a,l){if(l){for(var u=arguments.length,d=new Array(u-1);--u;)d[u-1]=arguments[u];return e[a].subscribe.apply(null,d),t}else if(typeof a=="string")return e[a]};r.addEventType=o;for(var n=1,i=arguments.length;n$t(n(),e()):e,t.justLimit=r&&!n}function Lf(t,e){t.isMatch=$t(t.isMatch,e)}function Vn(t,e){if(t.isPrimKey)return e.primaryKey;let r=e.getIndexByKeyPath(t.index);if(!r)throw new V.Schema("KeyPath "+t.index+" on object store "+e.name+" is not indexed");return r}function oa(t,e,r){let n=Vn(t,e.schema);return e.openCursor({trans:r,values:!t.keysOnly,reverse:t.dir==="prev",unique:!!t.unique,query:{index:n,range:t.range}})}function Hn(t,e,r,n){let i=t.replayFilter?$t(t.filter,t.replayFilter()):t.filter;if(t.or){let o={},s=(a,l,u)=>{if(!i||i(l,u,c=>l.stop(c),c=>l.fail(c))){var d=l.primaryKey,f=""+d;f==="[object ArrayBuffer]"&&(f=""+new Uint8Array(d)),Ve(o,f)||(o[f]=!0,e(a,l,u))}};return Promise.all([t.or._iterate(s,r),sa(oa(t,n,r),t.algorithm,s,!t.keysOnly&&t.valueMapper)])}else return sa(oa(t,n,r),$t(t.algorithm,i),e,!t.keysOnly&&t.valueMapper)}function sa(t,e,r,n){var i=n?(s,a,l)=>r(n(s),a,l):r,o=se(i);return t.then(s=>{if(s)return s.start(()=>{var a=()=>s.continue();(!e||e(s,l=>a=l,l=>{s.stop(l),a=ne},l=>{s.fail(l),a=ne}))&&o(s.value,s,l=>a=l),a()})})}function Me(t,e){try{let r=aa(t),n=aa(e);if(r!==n)return r==="Array"?1:n==="Array"?-1:r==="binary"?1:n==="binary"?-1:r==="string"?1:n==="string"?-1:r==="Date"?1:n!=="Date"?NaN:-1;switch(r){case"number":case"Date":case"string":return t>e?1:tHn(r,e,n,r.table.core))}count(e){return this._read(r=>{let n=this._ctx,i=n.table.core;if(pr(n,!0))return i.count({trans:r,query:{index:Vn(n,i.schema),range:n.range}}).then(s=>Math.min(s,n.limit));var o=0;return Hn(n,()=>(++o,!1),r,i).then(()=>o)}).then(e)}sortBy(e,r){let n=e.split(".").reverse(),i=n[0],o=n.length-1;function s(u,d){return d?s(u[n[d]],d-1):u[i]}var a=this._ctx.dir==="next"?1:-1;function l(u,d){var f=s(u,o),c=s(d,o);return fc?a:0}return this.toArray(function(u){return u.sort(l)}).then(r)}toArray(e){return this._read(r=>{var n=this._ctx;if(n.dir==="next"&&pr(n,!0)&&n.limit>0){let{valueMapper:i}=n,o=Vn(n,n.table.core.schema);return n.table.core.query({trans:r,limit:n.limit,values:!0,query:{index:o,range:n.range}}).then(({result:s})=>i?s.map(i):s)}else{let i=[];return Hn(n,o=>i.push(o),r,n.table.core).then(()=>i)}},e)}offset(e){var r=this._ctx;return e<=0?this:(r.offset+=e,pr(r)?fo(r,()=>{var n=e;return(i,o)=>n===0?!0:n===1?(--n,!1):(o(()=>{i.advance(n),n=0}),!1)}):fo(r,()=>{var n=e;return()=>--n<0}),this)}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),fo(this._ctx,()=>{var r=e;return function(n,i,o){return--r<=0&&i(o),r>=0}},!0),this}until(e,r){return co(this._ctx,function(n,i,o){return e(n.value)?(i(o),r):!0}),this}first(e){return this.limit(1).toArray(function(r){return r[0]}).then(e)}last(e){return this.reverse().first(e)}filter(e){return co(this._ctx,function(r){return e(r.value)}),Lf(this._ctx,e),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var r=this._ctx;return r.keysOnly=!r.isMatch,this.each(function(n,i){e(i.key,i)})}eachUniqueKey(e){return this._ctx.unique="unique",this.eachKey(e)}eachPrimaryKey(e){var r=this._ctx;return r.keysOnly=!r.isMatch,this.each(function(n,i){e(i.primaryKey,i)})}keys(e){var r=this._ctx;r.keysOnly=!r.isMatch;var n=[];return this.each(function(i,o){n.push(o.key)}).then(function(){return n}).then(e)}primaryKeys(e){var r=this._ctx;if(r.dir==="next"&&pr(r,!0)&&r.limit>0)return this._read(i=>{var o=Vn(r,r.table.core.schema);return r.table.core.query({trans:i,values:!1,limit:r.limit,query:{index:o,range:r.range}})}).then(({result:i})=>i).then(e);r.keysOnly=!r.isMatch;var n=[];return this.each(function(i,o){n.push(o.primaryKey)}).then(function(){return n}).then(e)}uniqueKeys(e){return this._ctx.unique="unique",this.keys(e)}firstKey(e){return this.limit(1).keys(function(r){return r[0]}).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,r=e.index&&e.table.schema.idxByName[e.index];if(!r||!r.multi)return this;var n={};return co(this._ctx,function(i){var o=i.primaryKey.toString(),s=Ve(n,o);return n[o]=!0,!s}),this}modify(e){var r=this._ctx;return this._write(n=>{var i;if(typeof e=="function")i=e;else{var o=he(e),s=o.length;i=function(x){for(var b=!1,h=0;h{let{failures:h,numFailures:_}=b;c+=x-_;for(let p of he(h))f.push(h[p])};return this.clone().primaryKeys().then(x=>{let b=h=>{let _=Math.min(d,x.length-h);return a.getMany({trans:n,keys:x.slice(h,h+_),cache:"immutable"}).then(p=>{let m=[],v=[],g=l?[]:null,j=[];for(let S=0;S<_;++S){let E=p[S],P={value:Hr(E),primKey:x[h+S]};i.call(P,P.value,P)!==!1&&(P.value==null?j.push(x[h+S]):!l&&Me(u(E),u(P.value))!==0?(j.push(x[h+S]),m.push(P.value)):(v.push(P.value),l&&g.push(x[h+S])))}let C=pr(r)&&r.limit===1/0&&(typeof e!="function"||e===ho)&&{index:r.index,range:r.range};return Promise.resolve(m.length>0&&a.mutate({trans:n,type:"add",values:m}).then(S=>{for(let E in S.failures)j.splice(parseInt(E),1);w(m.length,S)})).then(()=>(v.length>0||C&&typeof e=="object")&&a.mutate({trans:n,type:"put",keys:g,values:v,criteria:C,changeSpec:typeof e!="function"&&e}).then(S=>w(v.length,S))).then(()=>(j.length>0||C&&e===ho)&&a.mutate({trans:n,type:"delete",keys:j,criteria:C}).then(S=>w(j.length,S))).then(()=>x.length>h+_&&b(h+d))})};return b(0).then(()=>{if(f.length>0)throw new Sn("Error modifying one or more objects",f,c,y);return x.length})})})}delete(){var e=this._ctx,r=e.range;return pr(e)&&(e.isPrimKey&&!Mf||r.type===3)?this._write(n=>{let{primaryKey:i}=e.table.core.schema,o=r;return e.table.core.count({trans:n,query:{index:i,range:o}}).then(s=>e.table.core.mutate({trans:n,type:"deleteRange",range:o}).then(({failures:a,lastResult:l,results:u,numFailures:d})=>{if(d)throw new Sn("Could not delete some values",Object.keys(a).map(f=>a[f]),s-d);return s-d}))}):this.modify(ho)}},ho=(t,e)=>e.value=null;function Kf(t){return Zr(ua.prototype,function(r,n){this.db=t;let i=na,o=null;if(n)try{i=n()}catch(u){o=u}let s=r._ctx,a=s.table,l=a.hook.reading.fire;this._ctx={table:a,index:s.index,isPrimKey:!s.index||a.schema.primKey.keyPath&&s.index===a.schema.primKey.name,range:i,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:o,or:s.or,valueMapper:l!==Wr?l:null}})}function zf(t,e){return te?-1:t===e?0:1}function He(t,e,r){var n=t instanceof po?new t.Collection(t):t;return n._ctx.error=r?new r(e):new TypeError(e),n}function mr(t){return new t.Collection(t,()=>ca("")).limit(0)}function Hf(t){return t==="next"?e=>e.toUpperCase():e=>e.toLowerCase()}function $f(t){return t==="next"?e=>e.toLowerCase():e=>e.toUpperCase()}function Wf(t,e,r,n,i,o){for(var s=Math.min(t.length,n.length),a=-1,l=0;l=0?t.substr(0,a)+e[a]+r.substr(a+1):null;i(t[l],u)<0&&(a=l)}return stypeof x=="string"))return He(t,ta);function c(x){i=Hf(x),o=$f(x),s=x==="next"?zf:Vf;var b=r.map(function(h){return{lower:o(h),upper:i(h)}}).sort(function(h,_){return s(h.lower,_.lower)});a=b.map(function(h){return h.upper}),l=b.map(function(h){return h.lower}),u=x,d=x==="next"?"":n}c("next");var y=new t.Collection(t,()=>_t(a[0],l[f-1]+n));y._ondirectionchange=function(x){c(x)};var w=0;return y._addAlgorithm(function(x,b,h){var _=x.key;if(typeof _!="string")return!1;var p=o(_);if(e(p,l,w))return!0;for(var m=null,v=w;v0)&&(m=g)}return b(m!==null?function(){x.continue(m+d)}:h),!1}),y}function _t(t,e,r,n){return{type:2,lower:t,upper:e,lowerOpen:r,upperOpen:n}}function ca(t){return{type:1,lower:t,upper:t}}var po=class{get Collection(){return this._ctx.table.db.Collection}between(e,r,n,i){n=n!==!1,i=i===!0;try{return this._cmp(e,r)>0||this._cmp(e,r)===0&&(n||i)&&!(n&&i)?mr(this):new this.Collection(this,()=>_t(e,r,!n,!i))}catch{return He(this,st)}}equals(e){return e==null?He(this,st):new this.Collection(this,()=>ca(e))}above(e){return e==null?He(this,st):new this.Collection(this,()=>_t(e,void 0,!0))}aboveOrEqual(e){return e==null?He(this,st):new this.Collection(this,()=>_t(e,void 0,!1))}below(e){return e==null?He(this,st):new this.Collection(this,()=>_t(void 0,e,!1,!0))}belowOrEqual(e){return e==null?He(this,st):new this.Collection(this,()=>_t(void 0,e))}startsWith(e){return typeof e!="string"?He(this,ta):this.between(e,e+Ht,!0,!0)}startsWithIgnoreCase(e){return e===""?this.startsWith(e):$n(this,(r,n)=>r.indexOf(n[0])===0,[e],Ht)}equalsIgnoreCase(e){return $n(this,(r,n)=>r===n[0],[e],"")}anyOfIgnoreCase(){var e=it.apply(ur,arguments);return e.length===0?mr(this):$n(this,(r,n)=>n.indexOf(r)!==-1,e,"")}startsWithAnyOfIgnoreCase(){var e=it.apply(ur,arguments);return e.length===0?mr(this):$n(this,(r,n)=>n.some(i=>r.indexOf(i)===0),e,Ht)}anyOf(){let e=it.apply(ur,arguments),r=this._cmp;try{e.sort(r)}catch{return He(this,st)}if(e.length===0)return mr(this);let n=new this.Collection(this,()=>_t(e[0],e[e.length-1]));n._ondirectionchange=o=>{r=o==="next"?this._ascending:this._descending,e.sort(r)};let i=0;return n._addAlgorithm((o,s,a)=>{let l=o.key;for(;r(l,e[i])>0;)if(++i,i===e.length)return s(a),!1;return r(l,e[i])===0?!0:(s(()=>{o.continue(e[i])}),!1)}),n}notEqual(e){return this.inAnyRange([[ao,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){let e=it.apply(ur,arguments);if(e.length===0)return new this.Collection(this);try{e.sort(this._ascending)}catch{return He(this,st)}let r=e.reduce((n,i)=>n?n.concat([[n[n.length-1][1],i]]):[[ao,i]],null);return r.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(r,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,r){let n=this._cmp,i=this._ascending,o=this._descending,s=this._min,a=this._max;if(e.length===0)return mr(this);if(!e.every(m=>m[0]!==void 0&&m[1]!==void 0&&i(m[0],m[1])<=0))return He(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",V.InvalidArgument);let l=!r||r.includeLowers!==!1,u=r&&r.includeUppers===!0;function d(m,v){let g=0,j=m.length;for(;g0){C[0]=s(C[0],v[0]),C[1]=a(C[1],v[1]);break}}return g===j&&m.push(v),m}let f=i;function c(m,v){return f(m[0],v[0])}let y;try{y=e.reduce(d,[]),y.sort(c)}catch{return He(this,st)}let w=0,x=u?m=>i(m,y[w][1])>0:m=>i(m,y[w][1])>=0,b=l?m=>o(m,y[w][0])>0:m=>o(m,y[w][0])>=0;function h(m){return!x(m)&&!b(m)}let _=x,p=new this.Collection(this,()=>_t(y[0][0],y[y.length-1][1],!l,!u));return p._ondirectionchange=m=>{m==="next"?(_=x,f=i):(_=b,f=o),y.sort(c)},p._addAlgorithm((m,v,g)=>{for(var j=m.key;_(j);)if(++w,w===y.length)return v(g),!1;return h(j)?!0:(this._cmp(j,y[w][1])===0||this._cmp(j,y[w][0])===0||v(()=>{f===i?m.continue(y[w][0]):m.continue(y[w][1])}),!1)}),p}startsWithAnyOf(){let e=it.apply(ur,arguments);return e.every(r=>typeof r=="string")?e.length===0?mr(this):this.inAnyRange(e.map(r=>[r,r+Ht])):He(this,"startsWithAnyOf() only works with strings")}};function Uf(t){return Zr(po.prototype,function(r,n,i){this.db=t,this._ctx={table:r,index:n===":id"?null:n,or:i};let o=t._deps.indexedDB;if(!o)throw new V.MissingAPI;this._cmp=this._ascending=o.cmp.bind(o),this._descending=(s,a)=>o.cmp(a,s),this._max=(s,a)=>o.cmp(s,a)>0?s:a,this._min=(s,a)=>o.cmp(s,a)<0?s:a,this._IDBKeyRange=t._deps.IDBKeyRange})}function Xe(t){return se(function(e){return en(e),t(e.target.error),!1})}function en(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()}var tn="storagemutated",bt="x-storagemutated-1",xt=Xr(null,tn),fa=class{_lock(){return Vr(!K.global),++this._reculock,this._reculock===1&&!K.global&&(K.lockOwnerFor=this),this}_unlock(){if(Vr(!K.global),--this._reculock==0)for(K.global||(K.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{hr(e[1],e[0])}catch{}}return this}_locked(){return this._reculock&&K.lockOwnerFor!==this}create(e){if(!this.mode)return this;let r=this.db.idbdb,n=this.db._state.dbOpenError;if(Vr(!this.idbtrans),!e&&!r)switch(n&&n.name){case"DatabaseClosedError":throw new V.DatabaseClosed(n);case"MissingAPIError":throw new V.MissingAPI(n.message,n);default:throw new V.OpenFailed(n)}if(!this.active)throw new V.TransactionInactive;return Vr(this._completion._state===null),e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):r.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})),e.onerror=se(i=>{en(i),this._reject(e.error)}),e.onabort=se(i=>{en(i),this.active&&this._reject(new V.Abort(e.error)),this.active=!1,this.on("abort").fire(i)}),e.oncomplete=se(()=>{this.active=!1,this._resolve(),"mutatedParts"in e&&xt.storagemutated.fire(e.mutatedParts)}),this}_promise(e,r,n){if(e==="readwrite"&&this.mode!=="readwrite")return ye(new V.ReadOnly("Transaction is readonly"));if(!this.active)return ye(new V.TransactionInactive);if(this._locked())return new M((o,s)=>{this._blockedFuncs.push([()=>{this._promise(e,r,n).then(o,s)},K])});if(n)return yt(()=>{var o=new M((s,a)=>{this._lock();let l=r(s,a,this);l&&l.then&&l.then(s,a)});return o.finally(()=>this._unlock()),o._lib=!0,o});var i=new M((o,s)=>{var a=r(o,s,this);a&&a.then&&a.then(o,s)});return i._lib=!0,i}_root(){return this.parent?this.parent._root():this}waitFor(e){var r=this._root();let n=M.resolve(e);if(r._waitingFor)r._waitingFor=r._waitingFor.then(()=>n);else{r._waitingFor=n,r._waitingQueue=[];var i=r.idbtrans.objectStore(r.storeNames[0]);(function s(){for(++r._spinCount;r._waitingQueue.length;)r._waitingQueue.shift()();r._waitingFor&&(i.get(-1/0).onsuccess=s)})()}var o=r._waitingFor;return new M((s,a)=>{n.then(l=>r._waitingQueue.push(se(s.bind(null,l))),l=>r._waitingQueue.push(se(a.bind(null,l)))).finally(()=>{r._waitingFor===o&&(r._waitingFor=null)})})}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new V.Abort))}table(e){let r=this._memoizedTables||(this._memoizedTables={});if(Ve(r,e))return r[e];let n=this.schema[e];if(!n)throw new V.NotFound("Table "+e+" not part of transaction");let i=new this.db.Table(e,n,this);return i.core=this.db.core.table(e),r[e]=i,i}};function Gf(t){return Zr(fa.prototype,function(r,n,i,o,s){this.db=t,this.mode=r,this.storeNames=n,this.schema=i,this.chromeTransactionDurability=o,this.idbtrans=null,this.on=Xr(this,"complete","error","abort"),this.parent=s||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new M((a,l)=>{this._resolve=a,this._reject=l}),this._completion.then(()=>{this.active=!1,this.on.complete.fire()},a=>{var l=this.active;return this.active=!1,this.on.error.fire(a),this.parent?this.parent._reject(a):l&&this.idbtrans&&this.idbtrans.abort(),ye(a)})})}function mo(t,e,r,n,i,o,s){return{name:t,keyPath:e,unique:r,multi:n,auto:i,compound:o,src:(r&&!s?"&":"")+(n?"*":"")+(i?"++":"")+da(e)}}function da(t){return typeof t=="string"?t:t?"["+[].join.call(t,"+")+"]":""}function ha(t,e,r){return{name:t,primKey:e,indexes:r,mappedClass:null,idxByName:ks(r,n=>[n.name,n])}}function Qf(t){return t.length===1?t[0]:t}var rn=t=>{try{return t.only([[]]),rn=()=>[[]],[[]]}catch{return rn=()=>Ht,Ht}};function go(t){return t==null?()=>{}:typeof t=="string"?qf(t):e=>nt(e,t)}function qf(t){return t.split(".").length===1?r=>r[t]:r=>nt(r,t)}function pa(t){return[].slice.call(t)}var Yf=0;function nn(t){return t==null?":id":typeof t=="string"?t:`[${t.join("+")}]`}function Jf(t,e,r){function n(d,f){let c=pa(d.objectStoreNames);return{schema:{name:d.name,tables:c.map(y=>f.objectStore(y)).map(y=>{let{keyPath:w,autoIncrement:x}=y,b=Te(w),h=w==null,_={},p={name:y.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:h,compound:b,keyPath:w,autoIncrement:x,unique:!0,extractKey:go(w)},indexes:pa(y.indexNames).map(m=>y.index(m)).map(m=>{let{name:v,unique:g,multiEntry:j,keyPath:C}=m,S=Te(C),E={name:v,compound:S,keyPath:C,unique:g,multiEntry:j,extractKey:go(C)};return _[nn(C)]=E,E}),getIndexByKeyPath:m=>_[nn(m)]};return _[":id"]=p.primaryKey,w!=null&&(_[nn(w)]=p.primaryKey),p})},hasGetAll:c.length>0&&"getAll"in f.objectStore(c[0])&&!(typeof navigator!="undefined"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}function i(d){if(d.type===3)return null;if(d.type===4)throw new Error("Cannot convert never type to IDBKeyRange");let{lower:f,upper:c,lowerOpen:y,upperOpen:w}=d;return f===void 0?c===void 0?null:e.upperBound(c,!!w):c===void 0?e.lowerBound(f,!!y):e.bound(f,c,!!y,!!w)}function o(d){let f=d.name;function c({trans:x,type:b,keys:h,values:_,range:p}){return new Promise((m,v)=>{m=se(m);let g=x.objectStore(f),j=g.keyPath==null,C=b==="put"||b==="add";if(!C&&b!=="delete"&&b!=="deleteRange")throw new Error("Invalid operation type: "+b);let{length:S}=h||_||{length:1};if(h&&_&&h.length!==_.length)throw new Error("Given keys array must have same length as given values array.");if(S===0)return m({numFailures:0,failures:{},results:[],lastResult:void 0});let E,P=[],L=[],k=0,z=Q=>{++k,en(Q)};if(b==="deleteRange"){if(p.type===4)return m({numFailures:k,failures:L,results:[],lastResult:void 0});p.type===3?P.push(E=g.clear()):P.push(E=g.delete(i(p)))}else{let[Q,Z]=C?j?[_,h]:[_,null]:[h,null];if(C)for(let A=0;A{let Z=Q.target.result;P.forEach((A,F)=>A.error!=null&&(L[F]=A.error)),m({numFailures:k,failures:L,results:b==="delete"?h:P.map(A=>A.result),lastResult:Z})};E.onerror=Q=>{z(Q),J(Q)},E.onsuccess=J})}function y({trans:x,values:b,query:h,reverse:_,unique:p}){return new Promise((m,v)=>{m=se(m);let{index:g,range:j}=h,C=x.objectStore(f),S=g.isPrimaryKey?C:C.index(g.name),E=_?p?"prevunique":"prev":p?"nextunique":"next",P=b||!("openKeyCursor"in S)?S.openCursor(i(j),E):S.openKeyCursor(i(j),E);P.onerror=Xe(v),P.onsuccess=se(L=>{let k=P.result;if(!k){m(null);return}k.___id=++Yf,k.done=!1;let z=k.continue.bind(k),J=k.continuePrimaryKey;J&&(J=J.bind(k));let Q=k.advance.bind(k),Z=()=>{throw new Error("Cursor not started")},A=()=>{throw new Error("Cursor not stopped")};k.trans=x,k.stop=k.continue=k.continuePrimaryKey=k.advance=Z,k.fail=se(v),k.next=function(){let F=1;return this.start(()=>F--?this.continue():this.stop()).then(()=>this)},k.start=F=>{let D=new Promise((O,X)=>{O=se(O),P.onerror=Xe(X),k.fail=X,k.stop=le=>{k.stop=k.continue=k.continuePrimaryKey=k.advance=A,O(le)}}),N=()=>{if(P.result)try{F()}catch(O){k.fail(O)}else k.done=!0,k.start=()=>{throw new Error("Cursor behind last entry")},k.stop()};return P.onsuccess=se(O=>{P.onsuccess=N,N()}),k.continue=z,k.continuePrimaryKey=J,k.advance=Q,N(),D},m(k)},v)})}function w(x){return b=>new Promise((h,_)=>{h=se(h);let{trans:p,values:m,limit:v,query:g}=b,j=v===1/0?void 0:v,{index:C,range:S}=g,E=p.objectStore(f),P=C.isPrimaryKey?E:E.index(C.name),L=i(S);if(v===0)return h({result:[]});if(x){let k=m?P.getAll(L,j):P.getAllKeys(L,j);k.onsuccess=z=>h({result:z.target.result}),k.onerror=Xe(_)}else{let k=0,z=m||!("openKeyCursor"in P)?P.openCursor(L):P.openKeyCursor(L),J=[];z.onsuccess=Q=>{let Z=z.result;if(!Z)return h({result:J});if(J.push(m?Z.value:Z.primaryKey),++k===v)return h({result:J});Z.continue()},z.onerror=Xe(_)}})}return{name:f,schema:d,mutate:c,getMany({trans:x,keys:b}){return new Promise((h,_)=>{h=se(h);let p=x.objectStore(f),m=b.length,v=new Array(m),g=0,j=0,C,S=P=>{let L=P.target;(v[L._pos]=L.result)!=null,++j===g&&h(v)},E=Xe(_);for(let P=0;P{h=se(h);let m=x.objectStore(f).get(b);m.onsuccess=v=>h(v.target.result),m.onerror=Xe(_)})},query:w(a),openCursor:y,count({query:x,trans:b}){let{index:h,range:_}=x;return new Promise((p,m)=>{let v=b.objectStore(f),g=h.isPrimaryKey?v:v.index(h.name),j=i(_),C=j?g.count(j):g.count();C.onsuccess=se(S=>p(S.target.result)),C.onerror=Xe(m)})}}}let{schema:s,hasGetAll:a}=n(t,r),l=s.tables.map(d=>o(d)),u={};return l.forEach(d=>u[d.name]=d),{stack:"dbcore",transaction:t.transaction.bind(t),table(d){if(!u[d])throw new Error(`Table '${d}' not found`);return u[d]},MIN_KEY:-1/0,MAX_KEY:rn(e),schema:s}}function Xf(t,e){return e.reduce((r,{create:n})=>ue(ue({},r),n(r)),t)}function Zf(t,e,{IDBKeyRange:r,indexedDB:n},i){return{dbcore:Xf(Jf(e,r,i),t.dbcore)}}function yo({_novip:t},e){let r=e.db,n=Zf(t._middlewares,r,t._deps,e);t.core=n.dbcore,t.tables.forEach(i=>{let o=i.name;t.core.schema.tables.some(s=>s.name===o)&&(i.core=t.core.table(o),t[o]instanceof t.Table&&(t[o].core=i.core))})}function Wn({_novip:t},e,r,n){r.forEach(i=>{let o=n[i];e.forEach(s=>{let a=Ni(s,i);(!a||"value"in a&&a.value===void 0)&&(s===t.Transaction.prototype||s instanceof t.Transaction?rt(s,i,{get(){return this.table(i)},set(l){Ts(this,i,{value:l,writable:!0,configurable:!0,enumerable:!0})}}):s[i]=new t.Table(i,o))})})}function vo({_novip:t},e){e.forEach(r=>{for(let n in r)r[n]instanceof t.Table&&delete r[n]})}function ed(t,e){return t._cfg.version-e._cfg.version}function td(t,e,r,n){let i=t._dbSchema,o=t._createTransaction("readwrite",t._storeNames,i);o.create(r),o._completion.catch(n);let s=o._reject.bind(o),a=K.transless||K;yt(()=>{K.trans=o,K.transless=a,e===0?(he(i).forEach(l=>{_o(r,l,i[l].primKey,i[l].indexes)}),yo(t,r),M.follow(()=>t.on.populate.fire(o)).catch(s)):rd(t,e,o,r).catch(s)})}function rd({_novip:t},e,r,n){let i=[],o=t._versions,s=t._dbSchema=xo(t,t.idbdb,n),a=!1;o.filter(d=>d._cfg.version>=e).forEach(d=>{i.push(()=>{let f=s,c=d._cfg.dbschema;wo(t,f,n),wo(t,c,n),s=t._dbSchema=c;let y=ma(f,c);y.add.forEach(x=>{_o(n,x[0],x[1].primKey,x[1].indexes)}),y.change.forEach(x=>{if(x.recreate)throw new V.Upgrade("Not yet support for changing primary key");{let b=n.objectStore(x.name);x.add.forEach(h=>bo(b,h)),x.change.forEach(h=>{b.deleteIndex(h.name),bo(b,h)}),x.del.forEach(h=>b.deleteIndex(h))}});let w=d._cfg.contentUpgrade;if(w&&d._cfg.version>e){yo(t,n),r._memoizedTables={},a=!0;let x=Ps(c);y.del.forEach(p=>{x[p]=f[p]}),vo(t,[t.Transaction.prototype]),Wn(t,[t.Transaction.prototype],he(x),x),r.schema=x;let b=Hi(w);b&&dr();let h,_=M.follow(()=>{if(h=w(r),h&&b){var p=ot.bind(null,null);h.then(p,p)}});return h&&typeof h.then=="function"?M.resolve(h):_.then(()=>h)}}),i.push(f=>{if(!a||!Pf){let c=d._cfg.dbschema;id(c,f)}vo(t,[t.Transaction.prototype]),Wn(t,[t.Transaction.prototype],t._storeNames,t._dbSchema),r.schema=t._dbSchema})});function u(){return i.length?M.resolve(i.shift()(r.idbtrans)).then(u):M.resolve()}return u().then(()=>{nd(s,n)})}function ma(t,e){let r={del:[],add:[],change:[]},n;for(n in t)e[n]||r.del.push(n);for(n in e){let i=t[n],o=e[n];if(!i)r.add.push([n,o]);else{let s={name:n,def:o,recreate:!1,del:[],add:[],change:[]};if(""+(i.primKey.keyPath||"")!=""+(o.primKey.keyPath||"")||i.primKey.auto!==o.primKey.auto&&!Nn)s.recreate=!0,r.change.push(s);else{let a=i.idxByName,l=o.idxByName,u;for(u in a)l[u]||s.del.push(u);for(u in l){let d=a[u],f=l[u];d?d.src!==f.src&&s.change.push(f):s.add.push(f)}(s.del.length>0||s.add.length>0||s.change.length>0)&&r.change.push(s)}}}return r}function _o(t,e,r,n){let i=t.db.createObjectStore(e,r.keyPath?{keyPath:r.keyPath,autoIncrement:r.auto}:{autoIncrement:r.auto});return n.forEach(o=>bo(i,o)),i}function nd(t,e){he(t).forEach(r=>{e.db.objectStoreNames.contains(r)||_o(e,r,t[r].primKey,t[r].indexes)})}function id(t,e){[].slice.call(e.db.objectStoreNames).forEach(r=>t[r]==null&&e.db.deleteObjectStore(r))}function bo(t,e){t.createIndex(e.name,e.keyPath,{unique:e.unique,multiEntry:e.multi})}function xo(t,e,r){let n={};return An(e.objectStoreNames,0).forEach(o=>{let s=r.objectStore(o),a=s.keyPath,l=mo(da(a),a||"",!1,!1,!!s.autoIncrement,a&&typeof a!="string",!0),u=[];for(let f=0;fi.add.length||i.change.length))}function wo({_novip:t},e,r){let n=r.db.objectStoreNames;for(let i=0;i{e=e.trim();let n=e.replace(/([&*]|\+\+)/g,""),i=/^\[/.test(n)?n.match(/^\[(.*)\]$/)[1].split("+"):n;return mo(n,i||null,/\&/.test(e),/\*/.test(e),/\+\+/.test(e),Te(i),r===0)})}var ga=class{_parseStoresSpec(e,r){he(e).forEach(n=>{if(e[n]!==null){var i=ad(e[n]),o=i.shift();if(o.multi)throw new V.Schema("Primary key cannot be multi-valued");i.forEach(s=>{if(s.auto)throw new V.Schema("Only primary key can be marked as autoIncrement (++)");if(!s.keyPath)throw new V.Schema("Index must have a name and cannot be an empty string")}),r[n]=ha(n,o,i)}})}stores(e){let r=this.db;this._cfg.storesSource=this._cfg.storesSource?Pe(this._cfg.storesSource,e):e;let n=r._versions,i={},o={};return n.forEach(s=>{Pe(i,s._cfg.storesSource),o=s._cfg.dbschema={},s._parseStoresSpec(i,o)}),r._dbSchema=o,vo(r,[r._allTables,r,r.Transaction.prototype]),Wn(r,[r._allTables,r,r.Transaction.prototype,this._cfg.tables],he(o),o),r._storeNames=he(o),this}upgrade(e){return this._cfg.contentUpgrade=Gi(this._cfg.contentUpgrade||ne,e),this}};function ld(t){return Zr(ga.prototype,function(r){this.db=t,this._cfg={version:r,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})}function jo(t,e){let r=t._dbNamesDB;return r||(r=t._dbNamesDB=new lt(Kn,{addons:[],indexedDB:t,IDBKeyRange:e}),r.version(1).stores({dbnames:"name"})),r.table("dbnames")}function Co(t){return t&&typeof t.databases=="function"}function ud({indexedDB:t,IDBKeyRange:e}){return Co(t)?Promise.resolve(t.databases()).then(r=>r.map(n=>n.name).filter(n=>n!==Kn)):jo(t,e).toCollection().primaryKeys()}function cd({indexedDB:t,IDBKeyRange:e},r){!Co(t)&&r!==Kn&&jo(t,e).put({name:r}).catch(ne)}function fd({indexedDB:t,IDBKeyRange:e},r){!Co(t)&&r!==Kn&&jo(t,e).delete(r).catch(ne)}function Ao(t){return yt(function(){return K.letThrough=!0,t()})}function dd(){var t=!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent);if(!t||!indexedDB.databases)return Promise.resolve();var e;return new Promise(function(r){var n=function(){return indexedDB.databases().finally(r)};e=setInterval(n,100),n()}).finally(function(){return clearInterval(e)})}function hd(t){let e=t._state,{indexedDB:r}=t._deps;if(e.isBeingOpened||t.idbdb)return e.dbReadyPromise.then(()=>e.dbOpenError?ye(e.dbOpenError):t);Je&&(e.openCanceller._stackHolder=Nt()),e.isBeingOpened=!0,e.dbOpenError=null,e.openComplete=!1;let n=e.openCanceller;function i(){if(e.openCanceller!==n)throw new V.DatabaseClosed("db.open() was cancelled")}let o=e.dbReadyResolve,s=null,a=!1;return M.race([n,(typeof navigator=="undefined"?M.resolve():dd()).then(()=>new M((l,u)=>{if(i(),!r)throw new V.MissingAPI;let d=t.name,f=e.autoSchema?r.open(d):r.open(d,Math.round(t.verno*10));if(!f)throw new V.MissingAPI;f.onerror=Xe(u),f.onblocked=se(t._fireOnBlocked),f.onupgradeneeded=se(c=>{if(s=f.transaction,e.autoSchema&&!t._options.allowEmptyDB){f.onerror=en,s.abort(),f.result.close();let w=r.deleteDatabase(d);w.onsuccess=w.onerror=se(()=>{u(new V.NoSuchDatabase(`Database ${d} doesnt exist`))})}else{s.onerror=Xe(u);var y=c.oldVersion>Math.pow(2,62)?0:c.oldVersion;a=y<1,t._novip.idbdb=f.result,td(t,y/10,s,u)}},u),f.onsuccess=se(()=>{s=null;let c=t._novip.idbdb=f.result,y=An(c.objectStoreNames);if(y.length>0)try{let w=c.transaction(Qf(y),"readonly");e.autoSchema?od(t,c,w):(wo(t,t._dbSchema,w),sd(t,w)||console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")),yo(t,w)}catch{}Jr.push(t),c.onversionchange=se(w=>{e.vcFired=!0,t.on("versionchange").fire(w)}),c.onclose=se(w=>{t.on("close").fire(w)}),a&&cd(t._deps,d),l()},u)}))]).then(()=>(i(),e.onReadyBeingFired=[],M.resolve(Ao(()=>t.on.ready.fire(t.vip))).then(function l(){if(e.onReadyBeingFired.length>0){let u=e.onReadyBeingFired.reduce(Gi,ne);return e.onReadyBeingFired=[],M.resolve(Ao(()=>u(t.vip))).then(l)}}))).finally(()=>{e.onReadyBeingFired=null,e.isBeingOpened=!1}).then(()=>t).catch(l=>{e.dbOpenError=l;try{s&&s.abort()}catch{}return n===e.openCanceller&&t._close(),ye(l)}).finally(()=>{e.openComplete=!0,o()})}function So(t){var e=s=>t.next(s),r=s=>t.throw(s),n=o(e),i=o(r);function o(s){return a=>{var l=s(a),u=l.value;return l.done?u:!u||typeof u.then!="function"?Te(u)?Promise.all(u).then(n,i):n(u):u.then(n,i)}}return o(e)()}function pd(t,e,r){var n=arguments.length;if(n<2)throw new V.InvalidArgument("Too few arguments");for(var i=new Array(n-1);--n;)i[n-1]=arguments[n];r=i.pop();var o=Ms(i);return[t,o,r]}function ya(t,e,r,n,i){return M.resolve().then(()=>{let o=K.transless||K,s=t._createTransaction(e,r,t._dbSchema,n),a={trans:s,transless:o};if(n)s.idbtrans=n.idbtrans;else try{s.create(),t._state.PR1398_maxLoop=3}catch(f){return f.name===Ui.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>ya(t,e,r,null,i))):ye(f)}let l=Hi(i);l&&dr();let u,d=M.follow(()=>{if(u=i.call(s,s),u)if(l){var f=ot.bind(null,null);u.then(f,f)}else typeof u.next=="function"&&typeof u.throw=="function"&&(u=So(u))},a);return(u&&typeof u.then=="function"?M.resolve(u).then(f=>s.active?f:ye(new V.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))):d.then(()=>u)).then(f=>(n&&s._resolve(),s._completion.then(()=>f))).catch(f=>(s._reject(f),ye(f)))})}function Un(t,e,r){let n=Te(t)?t.slice():[t];for(let i=0;i0,p=Oe(ue({},w),{isVirtual:_,keyTail:y,keyLength:h,extractKey:go(c),unique:!_&&w.unique});if(b.push(p),p.isPrimaryKey||o.push(p),h>1){let m=h===2?c[0]:c.slice(0,h-1);s(m,y+1,w)}return b.sort((m,v)=>m.keyTail-v.keyTail),p}let a=s(n.primaryKey.keyPath,0,n.primaryKey);i[":id"]=[a];for(let c of n.indexes)s(c.keyPath,0,c);function l(c){let y=i[nn(c)];return y&&y[0]}function u(c,y){return{type:c.type===1?2:c.type,lower:Un(c.lower,c.lowerOpen?t.MAX_KEY:t.MIN_KEY,y),lowerOpen:!0,upper:Un(c.upper,c.upperOpen?t.MIN_KEY:t.MAX_KEY,y),upperOpen:!0}}function d(c){let y=c.query.index;return y.isVirtual?Oe(ue({},c),{query:{index:y,range:u(c.query.range,y.keyTail)}}):c}return Oe(ue({},r),{schema:Oe(ue({},n),{primaryKey:a,indexes:o,getIndexByKeyPath:l}),count(c){return r.count(d(c))},query(c){return r.query(d(c))},openCursor(c){let{keyTail:y,isVirtual:w,keyLength:x}=c.query.index;if(!w)return r.openCursor(c);function b(h){function _(m){m!=null?h.continue(Un(m,c.reverse?t.MAX_KEY:t.MIN_KEY,y)):c.unique?h.continue(h.key.slice(0,x).concat(c.reverse?t.MIN_KEY:t.MAX_KEY,y)):h.continue()}return Object.create(h,{continue:{value:_},continuePrimaryKey:{value(m,v){h.continuePrimaryKey(Un(m,t.MAX_KEY,y),v)}},primaryKey:{get(){return h.primaryKey}},key:{get(){let m=h.key;return x===1?m[0]:m.slice(0,x)}},value:{get(){return h.value}}})}return r.openCursor(d(c)).then(h=>h&&b(h))}})}})}var gd={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:md};function Fo(t,e,r,n){return r=r||{},n=n||"",he(t).forEach(i=>{if(!Ve(e,i))r[n+i]=void 0;else{var o=t[i],s=e[i];if(typeof o=="object"&&typeof s=="object"&&o&&s){let a=zi(o),l=zi(s);a!==l?r[n+i]=e[i]:a==="Object"?Fo(o,s,r,n+i+"."):o!==s&&(r[n+i]=e[i])}else o!==s&&(r[n+i]=e[i])}}),he(e).forEach(i=>{Ve(t,i)||(r[n+i]=e[i])}),r}function yd(t,e){return e.type==="delete"?e.keys:e.keys||e.values.map(t.extractKey)}var vd={stack:"dbcore",name:"HooksMiddleware",level:2,create:t=>Oe(ue({},t),{table(e){let r=t.table(e),{primaryKey:n}=r.schema;return Oe(ue({},r),{mutate(o){let s=K.trans,{deleting:a,creating:l,updating:u}=s.table(e).hook;switch(o.type){case"add":if(l.fire===ne)break;return s._promise("readwrite",()=>d(o),!0);case"put":if(l.fire===ne&&u.fire===ne)break;return s._promise("readwrite",()=>d(o),!0);case"delete":if(a.fire===ne)break;return s._promise("readwrite",()=>d(o),!0);case"deleteRange":if(a.fire===ne)break;return s._promise("readwrite",()=>f(o),!0)}return r.mutate(o);function d(y){let w=K.trans,x=y.keys||yd(n,y);if(!x)throw new Error("Keys missing");return y=y.type==="add"||y.type==="put"?Oe(ue({},y),{keys:x}):ue({},y),y.type!=="delete"&&(y.values=[...y.values]),y.keys&&(y.keys=[...y.keys]),_d(r,y,x).then(b=>{let h=x.map((_,p)=>{let m=b[p],v={onerror:null,onsuccess:null};if(y.type==="delete")a.fire.call(v,_,m,w);else if(y.type==="add"||m===void 0){let g=l.fire.call(v,_,y.values[p],w);_==null&&g!=null&&(_=g,y.keys[p]=_,n.outbound||Qe(y.values[p],n.keyPath,_))}else{let g=Fo(m,y.values[p]),j=u.fire.call(v,g,_,m,w);if(j){let C=y.values[p];Object.keys(j).forEach(S=>{Ve(C,S)?C[S]=j[S]:Qe(C,S,j[S])})}}return v});return r.mutate(y).then(({failures:_,results:p,numFailures:m,lastResult:v})=>{for(let g=0;g(h.forEach(p=>p.onerror&&p.onerror(_)),Promise.reject(_)))})}function f(y){return c(y.trans,y.range,1e4)}function c(y,w,x){return r.query({trans:y,values:!1,query:{index:n,range:w},limit:x}).then(({result:b})=>d({type:"delete",keys:b,trans:y}).then(h=>h.numFailures>0?Promise.reject(h.failures[0]):b.length({table:e=>{let r=t.table(e);return Oe(ue({},r),{getMany:n=>{if(!n.cache)return r.getMany(n);let i=va(n.keys,n.trans._cache,n.cache==="clone");return i?M.resolve(i):r.getMany(n).then(o=>(n.trans._cache={keys:n.keys,values:n.cache==="clone"?Hr(o):o},o))},mutate:n=>(n.type!=="add"&&(n.trans._cache=null),r.mutate(n))})}})};function Eo(t){return!("from"in t)}var at=function(t,e){if(this)Pe(this,arguments.length?{d:1,from:t,to:arguments.length>1?e:t}:{d:0});else{let r=new at;return t&&"d"in t&&Pe(r,t),r}};ar(at.prototype,{add(t){return Gn(this,t),this},addKey(t){return on(this,t,t),this},addKeys(t){return t.forEach(e=>on(this,e,e)),this},[Vi](){return Do(this)}});function on(t,e,r){let n=Me(e,r);if(isNaN(n))return;if(n>0)throw RangeError();if(Eo(t))return Pe(t,{from:e,to:r,d:1});let i=t.l,o=t.r;if(Me(r,t.from)<0)return i?on(i,e,r):t.l={from:e,to:r,d:1,l:null,r:null},_a(t);if(Me(e,t.to)>0)return o?on(o,e,r):t.r={from:e,to:r,d:1,l:null,r:null},_a(t);Me(e,t.from)<0&&(t.from=e,t.l=null,t.d=o?o.d+1:1),Me(r,t.to)>0&&(t.to=r,t.r=null,t.d=t.l?t.l.d+1:1);let s=!t.r;i&&!t.l&&Gn(t,i),o&&s&&Gn(t,o)}function Gn(t,e){function r(n,{from:i,to:o,l:s,r:a}){on(n,i,o),s&&r(n,s),a&&r(n,a)}Eo(e)||r(t,e)}function xd(t,e){let r=Do(e),n=r.next();if(n.done)return!1;let i=n.value,o=Do(t),s=o.next(i.from),a=s.value;for(;!n.done&&!s.done;){if(Me(a.from,i.to)<=0&&Me(a.to,i.from)>=0)return!0;Me(i.from,a.from)<0?i=(n=r.next(a.from)).value:a=(s=o.next(i.from)).value}return!1}function Do(t){let e=Eo(t)?null:{s:0,n:t};return{next(r){let n=arguments.length>0;for(;e;)switch(e.s){case 0:if(e.s=1,n)for(;e.n.l&&Me(r,e.n.from)<0;)e={up:e,n:e.n.l,s:1};else for(;e.n.l;)e={up:e,n:e.n.l,s:1};case 1:if(e.s=2,!n||Me(r,e.n.to)<=0)return{value:e.n,done:!1};case 2:if(e.n.r){e.s=3,e={up:e,n:e.n.r,s:0};continue}case 3:e=e.up}return{done:!0}}}}function _a(t){var e,r;let n=(((e=t.r)===null||e===void 0?void 0:e.d)||0)-(((r=t.l)===null||r===void 0?void 0:r.d)||0),i=n>1?"r":n<-1?"l":"";if(i){let o=i==="r"?"l":"r",s=ue({},t),a=t[i];t.from=a.from,t.to=a.to,t[i]=a[i],s[i]=a[o],t[o]=s,s.d=ba(s)}t.d=ba(t)}function ba({r:t,l:e}){return(t?e?Math.max(t.d,e.d):t.d:e?e.d:0)+1}var wd={stack:"dbcore",level:0,create:t=>{let e=t.schema.name,r=new at(t.MIN_KEY,t.MAX_KEY);return Oe(ue({},t),{table:n=>{let i=t.table(n),{schema:o}=i,{primaryKey:s}=o,{extractKey:a,outbound:l}=s,u=Oe(ue({},i),{mutate:c=>{let y=c.trans,w=y.mutatedParts||(y.mutatedParts={}),x=g=>{let j=`idb://${e}/${n}/${g}`;return w[j]||(w[j]=new at)},b=x(""),h=x(":dels"),{type:_}=c,[p,m]=c.type==="deleteRange"?[c.range]:c.type==="delete"?[c.keys]:c.values.length<50?[[],c.values]:[],v=c.trans._cache;return i.mutate(c).then(g=>{if(Te(p)){_!=="delete"&&(p=g.results),b.addKeys(p);let j=va(p,v);!j&&_!=="add"&&h.addKeys(p),(j||m)&&jd(x,o,j,m)}else if(p){let j={from:p.lower,to:p.upper};h.add(j),b.add(j)}else b.add(r),h.add(r),o.indexes.forEach(j=>x(j.name).add(r));return g})}}),d=({query:{index:c,range:y}})=>{var w,x;return[c,new at((w=y.lower)!==null&&w!==void 0?w:t.MIN_KEY,(x=y.upper)!==null&&x!==void 0?x:t.MAX_KEY)]},f={get:c=>[s,new at(c.key)],getMany:c=>[s,new at().addKeys(c.keys)],count:d,query:d,openCursor:d};return he(f).forEach(c=>{u[c]=function(y){let{subscr:w}=K;if(w){let x=m=>{let v=`idb://${e}/${n}/${m}`;return w[v]||(w[v]=new at)},b=x(""),h=x(":dels"),[_,p]=f[c](y);if(x(_.name||"").add(p),!_.isPrimaryKey)if(c==="count")h.add(r);else{let m=c==="query"&&l&&y.values&&i.query(Oe(ue({},y),{values:!1}));return i[c].apply(this,arguments).then(v=>{if(c==="query"){if(l&&y.values)return m.then(({result:j})=>(b.addKeys(j),v));let g=y.values?v.result.map(a):v.result;y.values?b.addKeys(g):h.addKeys(g)}else if(c==="openCursor"){let g=v,j=y.values;return g&&Object.create(g,{key:{get(){return h.addKey(g.primaryKey),g.key}},primaryKey:{get(){let C=g.primaryKey;return h.addKey(C),C}},value:{get(){return j&&b.addKey(g.primaryKey),g.value}}})}return v})}}return i[c].apply(this,arguments)}}),u}})}};function jd(t,e,r,n){function i(o){let s=t(o.name||"");function a(u){return u!=null?o.extractKey(u):null}let l=u=>o.multiEntry&&Te(u)?u.forEach(d=>s.addKey(d)):s.addKey(u);(r||n).forEach((u,d)=>{let f=r&&a(r[d]),c=n&&a(n[d]);Me(f,c)!==0&&(f!=null&&l(f),c!=null&&l(c))})}e.indexes.forEach(i)}var lt=class{constructor(e,r){this._middlewares={},this.verno=0;let n=lt.dependencies;this._options=r=ue({addons:lt.addons,autoOpen:!0,indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange},r),this._deps={indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange};let{addons:i}=r;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;let o={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:ne,dbReadyPromise:null,cancelOpen:ne,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};o.dbReadyPromise=new M(s=>{o.dbReadyResolve=s}),o.openCanceller=new M((s,a)=>{o.cancelOpen=a}),this._state=o,this.name=e,this.on=Xr(this,"populate","blocked","versionchange","close",{ready:[Gi,ne]}),this.on.ready.subscribe=Is(this.on.ready.subscribe,s=>(a,l)=>{lt.vip(()=>{let u=this._state;if(u.openComplete)u.dbOpenError||M.resolve().then(a),l&&s(a);else if(u.onReadyBeingFired)u.onReadyBeingFired.push(a),l&&s(a);else{s(a);let d=this;l||s(function f(){d.on.ready.unsubscribe(a),d.on.ready.unsubscribe(f)})}})}),this.Collection=Kf(this),this.Table=Rf(this),this.Transaction=Gf(this),this.Version=ld(this),this.WhereClause=Uf(this),this.on("versionchange",s=>{s.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()}),this.on("blocked",s=>{!s.newVersion||s.newVersionnew this.Transaction(s,a,l,this._options.chromeTransactionDurability,u),this._fireOnBlocked=s=>{this.on("blocked").fire(s),Jr.filter(a=>a.name===this.name&&a!==this&&!a._state.vcFired).map(a=>a.on("versionchange").fire(s))},this.use(gd),this.use(vd),this.use(wd),this.use(bd),this.vip=Object.create(this,{_vip:{value:!0}}),i.forEach(s=>s(this))}version(e){if(isNaN(e)||e<.1)throw new V.Type("Given version is not a positive number");if(e=Math.round(e*10)/10,this.idbdb||this._state.isBeingOpened)throw new V.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,e);let r=this._versions;var n=r.filter(i=>i._cfg.version===e)[0];return n||(n=new this.Version(e),r.push(n),r.sort(ed),n.stores({}),this._state.autoSchema=!1,n)}_whenReady(e){return this.idbdb&&(this._state.openComplete||K.letThrough||this._vip)?e():new M((r,n)=>{if(this._state.openComplete)return n(new V.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen){n(new V.DatabaseClosed);return}this.open().catch(ne)}this._state.dbReadyPromise.then(r,n)}).then(e)}use({stack:e,create:r,level:n,name:i}){i&&this.unuse({stack:e,name:i});let o=this._middlewares[e]||(this._middlewares[e]=[]);return o.push({stack:e,create:r,level:n??10,name:i}),o.sort((s,a)=>s.level-a.level),this}unuse({stack:e,name:r,create:n}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter(i=>n?i.create!==n:r?i.name!==r:!1)),this}open(){return hd(this)}_close(){let e=this._state,r=Jr.indexOf(this);if(r>=0&&Jr.splice(r,1),this.idbdb){try{this.idbdb.close()}catch{}this._novip.idbdb=null}e.dbReadyPromise=new M(n=>{e.dbReadyResolve=n}),e.openCanceller=new M((n,i)=>{e.cancelOpen=i})}close(){this._close();let e=this._state;this._options.autoOpen=!1,e.dbOpenError=new V.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){let e=arguments.length>0,r=this._state;return new M((n,i)=>{let o=()=>{this.close();var s=this._deps.indexedDB.deleteDatabase(this.name);s.onsuccess=se(()=>{fd(this._deps,this.name),n()}),s.onerror=Xe(i),s.onblocked=this._fireOnBlocked};if(e)throw new V.InvalidArgument("Arguments not allowed in db.delete()");r.isBeingOpened?r.dbReadyPromise.then(o):o()})}backendDB(){return this.idbdb}isOpen(){return this.idbdb!==null}hasBeenClosed(){let e=this._state.dbOpenError;return e&&e.name==="DatabaseClosed"}hasFailed(){return this._state.dbOpenError!==null}dynamicallyOpened(){return this._state.autoSchema}get tables(){return he(this._allTables).map(e=>this._allTables[e])}transaction(){let e=pd.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,r,n){let i=K.trans;(!i||i.db!==this||e.indexOf("!")!==-1)&&(i=null);let o=e.indexOf("?")!==-1;e=e.replace("!","").replace("?","");let s,a;try{if(a=r.map(u=>{var d=u instanceof this.Table?u.name:u;if(typeof d!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return d}),e=="r"||e===lo)s=lo;else if(e=="rw"||e==uo)s=uo;else throw new V.InvalidArgument("Invalid transaction mode: "+e);if(i){if(i.mode===lo&&s===uo)if(o)i=null;else throw new V.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");i&&a.forEach(u=>{if(i&&i.storeNames.indexOf(u)===-1)if(o)i=null;else throw new V.SubTransaction("Table "+u+" not included in parent transaction.")}),o&&i&&!i.active&&(i=null)}}catch(u){return i?i._promise(null,(d,f)=>{f(u)}):ye(u)}let l=ya.bind(null,this,s,a,i,n);return i?i._promise(s,l,"lock"):K.trans?hr(K.transless,()=>this._whenReady(l)):this._whenReady(l)}table(e){if(!Ve(this._allTables,e))throw new V.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}},Cd=typeof Symbol!="undefined"&&"observable"in Symbol?Symbol.observable:"@@observable",xa=class{constructor(e){this._subscribe=e}subscribe(e,r,n){return this._subscribe(!e||typeof e=="function"?{next:e,error:r,complete:n}:e)}[Cd](){return this}};function wa(t,e){return he(e).forEach(r=>{let n=t[r]||(t[r]=new at);Gn(n,e[r])}),t}function Ad(t){return new xa(e=>{let r=Hi(t);function n(y){r&&dr();let w=()=>yt(t,{subscr:y,trans:null}),x=K.trans?hr(K.transless,w):w();return r&&x.then(ot,ot),x}let i=!1,o={},s={},a={get closed(){return i},unsubscribe:()=>{i=!0,xt.storagemutated.unsubscribe(f)}};e.start&&e.start(a);let l=!1,u=!1;function d(){return he(s).some(y=>o[y]&&xd(o[y],s[y]))}let f=y=>{wa(o,y),d()&&c()},c=()=>{if(l||i)return;o={};let y={},w=n(y);u||(xt(tn,f),u=!0),l=!0,Promise.resolve(w).then(x=>{l=!1,!i&&(d()?c():(o={},s=y,e.next&&e.next(x)))},x=>{l=!1,e.error&&e.error(x),a.unsubscribe()})};return c(),a})}var To;try{To={indexedDB:ie.indexedDB||ie.mozIndexedDB||ie.webkitIndexedDB||ie.msIndexedDB,IDBKeyRange:ie.IDBKeyRange||ie.webkitIDBKeyRange}}catch{To={indexedDB:null,IDBKeyRange:null}}var Wt=lt;ar(Wt,Oe(ue({},Fn),{delete(t){return new Wt(t,{addons:[]}).delete()},exists(t){return new Wt(t,{addons:[]}).open().then(e=>(e.close(),!0)).catch("NoSuchDatabaseError",()=>!1)},getDatabaseNames(t){try{return ud(Wt.dependencies).then(t)}catch{return ye(new V.MissingAPI)}},defineClass(){function t(e){Pe(this,e)}return t},ignoreTransaction(t){return K.trans?hr(K.transless,t):t()},vip:Ao,async:function(t){return function(){try{var e=So(t.apply(this,arguments));return!e||typeof e.then!="function"?M.resolve(e):e}catch(r){return ye(r)}}},spawn:function(t,e,r){try{var n=So(t.apply(r,e||[]));return!n||typeof n.then!="function"?M.resolve(n):n}catch(i){return ye(i)}},currentTransaction:{get:()=>K.trans||null},waitFor:function(t,e){let r=M.resolve(typeof t=="function"?Wt.ignoreTransaction(t):t).timeout(e||6e4);return K.trans?K.trans.waitFor(r):r},Promise:M,debug:{get:()=>Je,set:t=>{Ls(t,t==="dexie"?()=>!0:ra)}},derive:lr,extend:Pe,props:ar,override:Is,Events:Xr,on:xt,liveQuery:Ad,extendObservabilitySet:wa,getByKeyPath:nt,setByKeyPath:Qe,delByKeyPath:lf,shallowClone:Ps,deepClone:Hr,getObjectDiff:Fo,cmp:Me,asap:Os,minKey:ao,addons:[],connections:Jr,errnames:Ui,dependencies:To,semVer:ea,version:ea.split(".").map(t=>parseInt(t)).reduce((t,e,r)=>t+e/Math.pow(10,r*2))}));Wt.maxKey=rn(Wt.dependencies.IDBKeyRange);typeof dispatchEvent!="undefined"&&typeof addEventListener!="undefined"&&(xt(tn,t=>{if(!ut){let e;Nn?(e=document.createEvent("CustomEvent"),e.initCustomEvent(bt,!0,!0,t)):e=new CustomEvent(bt,{detail:t}),ut=!0,dispatchEvent(e),ut=!1}}),addEventListener(bt,({detail:t})=>{ut||Qn(t)}));function Qn(t){let e=ut;try{ut=!0,xt.storagemutated.fire(t)}finally{ut=e}}var ut=!1;if(typeof BroadcastChannel!="undefined"){let t=new BroadcastChannel(bt);xt(tn,e=>{ut||t.postMessage(e)}),t.onmessage=e=>{e.data&&Qn(e.data)}}else if(typeof self!="undefined"&&typeof navigator!="undefined"){xt(tn,e=>{try{ut||(typeof localStorage!="undefined"&&localStorage.setItem(bt,JSON.stringify({trig:Math.random(),changedParts:e})),typeof self.clients=="object"&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(r=>r.postMessage({type:bt,changedParts:e})))}catch{}}),typeof addEventListener!="undefined"&&addEventListener("storage",e=>{if(e.key===bt){let r=JSON.parse(e.newValue);r&&Qn(r.changedParts)}});let t=self.document&&navigator.serviceWorker;t&&t.addEventListener("message",Sd)}function Sd({data:t}){t&&t.type===bt&&Qn(t.changedParts)}M.rejectionMapper=yf;Ls(Je,ra);var Ze=class extends lt{constructor(){super(Ze.dbName);this.version(Ze.dbVersion).stores({searchHistory:"++id",minisearch:"date"})}static async clearOldDatabases(){let e=(await indexedDB.databases()).filter(r=>r.name===Ze.dbName&&r.version!==Ze.dbVersion*10);if(e.length){console.log("Omnisearch - Those IndexedDb databases will be deleted:");for(let r of e)r.name&&indexedDB.deleteDatabase(r.name)}}static getInstance(){return Ze.instance||(Ze.instance=new Ze),Ze.instance}async clearCache(){await this.minisearch.clear()}},gr=Ze;gr.dbVersion=8,gr.dbName="omnisearch/cache/"+app.appId;var Be=gr.getInstance();var Ut=Cn(!1),sn='Needs a restart to fully take effect.',Io=class extends Y.PluginSettingTab{constructor(e){super(app,e);this.plugin=e,Ut.subscribe(async r=>{I.showExcerpt=r,await pe(this.plugin)})}display(){let{containerEl:e}=this;if(e.empty(),app.loadLocalStorage(an)=="1"){let f=e.createEl("span");f.innerHTML='\u26A0\uFE0F OMNISEARCH IS DISABLED \u26A0\uFE0F'}e.createEl("h2",{text:"Omnisearch"});let r=e.createDiv();r.innerHTML=` +`).slice(e).filter(Ko).map(n=>` +`+n).join("")):""}var _f=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"],zo=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],Gi=_f.concat(zo),bf={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function fr(t,e){this._e=Kt(),this.name=t,this.message=e}ur(fr).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+": "+this.message+Ui(this._e,2))}},toString:function(){return this.name+": "+this.message}});function Vo(t,e){return t+". Errors: "+Object.keys(e).map(r=>e[r].toString()).filter((r,n,i)=>i.indexOf(r)===n).join(` +`)}function Fn(t,e,r,n){this._e=Kt(),this.failures=e,this.failedKeys=n,this.successCount=r,this.message=Vo(t,e)}ur(Fn).from(fr);function Ur(t,e){this._e=Kt(),this.name="BulkError",this.failures=Object.keys(e).map(r=>e[r]),this.failuresByPos=e,this.message=Vo(t,e)}ur(Ur).from(fr);var Qi=Gi.reduce((t,e)=>(t[e]=e+"Error",t),{}),xf=fr,V=Gi.reduce((t,e)=>{var r=e+"Error";function n(i,s){this._e=Kt(),this.name=r,i?typeof i=="string"?(this.message=`${i}${s?` + `+s:""}`,this.inner=s||null):typeof i=="object"&&(this.message=`${i.name} ${i.message}`,this.inner=i):(this.message=bf[e]||r,this.inner=null)}return ur(n).from(xf),t[e]=n,t},{});V.Syntax=SyntaxError;V.Type=TypeError;V.Range=RangeError;var Ho=zo.reduce((t,e)=>(t[e+"Error"]=V[e],t),{});function wf(t,e){if(!t||t instanceof fr||t instanceof TypeError||t instanceof SyntaxError||!t.name||!Ho[t.name])return t;var r=new Ho[t.name](e||t.message,t);return"stack"in t&&rt(r,"stack",{get:function(){return this.inner.stack}}),r}var Sn=Gi.reduce((t,e)=>(["Syntax","Type","Range"].indexOf(e)===-1&&(t[e+"Error"]=V[e]),t),{});Sn.ModifyError=Fn;Sn.DexieError=fr;Sn.BulkError=Ur;function ne(){}function Gr(t){return t}function jf(t,e){return t==null||t===Gr?e:function(r){return e(t(r))}}function zt(t,e){return function(){t.apply(this,arguments),e.apply(this,arguments)}}function Cf(t,e){return t===ne?e:function(){var r=t.apply(this,arguments);r!==void 0&&(arguments[0]=r);var n=this.onsuccess,i=this.onerror;this.onsuccess=null,this.onerror=null;var s=e.apply(this,arguments);return n&&(this.onsuccess=this.onsuccess?zt(n,this.onsuccess):n),i&&(this.onerror=this.onerror?zt(i,this.onerror):i),s!==void 0?s:r}}function Af(t,e){return t===ne?e:function(){t.apply(this,arguments);var r=this.onsuccess,n=this.onerror;this.onsuccess=this.onerror=null,e.apply(this,arguments),r&&(this.onsuccess=this.onsuccess?zt(r,this.onsuccess):r),n&&(this.onerror=this.onerror?zt(n,this.onerror):n)}}function Ff(t,e){return t===ne?e:function(r){var n=t.apply(this,arguments);Me(r,n);var i=this.onsuccess,s=this.onerror;this.onsuccess=null,this.onerror=null;var o=e.apply(this,arguments);return i&&(this.onsuccess=this.onsuccess?zt(i,this.onsuccess):i),s&&(this.onerror=this.onerror?zt(s,this.onerror):s),n===void 0?o===void 0?void 0:o:Me(n,o)}}function Sf(t,e){return t===ne?e:function(){return e.apply(this,arguments)===!1?!1:t.apply(this,arguments)}}function qi(t,e){return t===ne?e:function(){var r=t.apply(this,arguments);if(r&&typeof r.then=="function"){for(var n=this,i=arguments.length,s=new Array(i);i--;)s[i]=arguments[i];return r.then(function(){return e.apply(n,s)})}return e.apply(this,arguments)}}var Qr={},Ef=100,Df=20,$o=100,[Yi,En,Ji]=typeof Promise=="undefined"?[]:(()=>{let t=Promise.resolve();if(typeof crypto=="undefined"||!crypto.subtle)return[t,Hr(t),t];let e=crypto.subtle.digest("SHA-512",new Uint8Array([0]));return[e,Hr(e),t]})(),Wo=En&&En.then,Dn=Yi&&Yi.constructor,Xi=!!Ji,Zi=!1,Tf=Ji?()=>{Ji.then(On)}:ie.setImmediate?setImmediate.bind(null,On):ie.MutationObserver?()=>{var t=document.createElement("div");new MutationObserver(()=>{On(),t=null}).observe(t,{attributes:!0}),t.setAttribute("i","1")}:()=>{setTimeout(On,0)},qr=function(t,e){Yr.push([t,e]),Tn&&(Tf(),Tn=!1)},es=!0,Tn=!0,Vt=[],In=[],ts=null,rs=Gr,dr={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:ta,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach(t=>{try{ta(t[0],t[1])}catch{}})}},K=dr,Yr=[],Ht=0,kn=[];function M(t){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this.onuncatched=ne,this._lib=!1;var e=this._PSD=K;if(Je&&(this._stackHolder=Kt(),this._prev=null,this._numPrev=0),typeof t!="function"){if(t!==Qr)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&is(this,this._value);return}this._state=null,this._value=null,++e.ref,Go(this,t)}var ns={get:function(){var t=K,e=Rn;function r(n,i){var s=!t.global&&(t!==K||e!==Rn);let o=s&&!st();var a=new M((u,l)=>{ss(this,new Uo(Bn(n,t,s,o),Bn(i,t,s,o),u,l,t))});return Je&&Yo(a,this),a}return r.prototype=Qr,r},set:function(t){rt(this,"then",t&&t.prototype===Qr?ns:{get:function(){return t},set:ns.set})}};lr(M.prototype,{then:ns,_then:function(t,e){ss(this,new Uo(null,null,t,e,K))},catch:function(t){if(arguments.length===1)return this.then(null,t);var e=arguments[0],r=arguments[1];return typeof e=="function"?this.then(null,n=>n instanceof e?r(n):Pn(n)):this.then(null,n=>n&&n.name===e?r(n):Pn(n))},finally:function(t){return this.then(e=>(t(),e),e=>(t(),Pn(e)))},stack:{get:function(){if(this._stack)return this._stack;try{Zi=!0;var t=qo(this,[],Df),e=t.join(` +From previous: `);return this._state!==null&&(this._stack=e),e}finally{Zi=!1}}},timeout:function(t,e){return t<1/0?new M((r,n)=>{var i=setTimeout(()=>n(new V.Timeout(e)),t);this.then(r,n).finally(clearTimeout.bind(null,i))}):this}});typeof Symbol!="undefined"&&Symbol.toStringTag&&rt(M.prototype,Symbol.toStringTag,"Dexie.Promise");dr.env=Jo();function Uo(t,e,r,n,i){this.onFulfilled=typeof t=="function"?t:null,this.onRejected=typeof e=="function"?e:null,this.resolve=r,this.reject=n,this.psd=i}lr(M,{all:function(){var t=it.apply(null,arguments).map(Ln);return new M(function(e,r){t.length===0&&e([]);var n=t.length;t.forEach((i,s)=>M.resolve(i).then(o=>{t[s]=o,--n||e(t)},r))})},resolve:t=>{if(t instanceof M)return t;if(t&&typeof t.then=="function")return new M((r,n)=>{t.then(r,n)});var e=new M(Qr,!0,t);return Yo(e,ts),e},reject:Pn,race:function(){var t=it.apply(null,arguments).map(Ln);return new M((e,r)=>{t.map(n=>M.resolve(n).then(e,r))})},PSD:{get:()=>K,set:t=>K=t},totalEchoes:{get:()=>Rn},newPSD:yt,usePSD:pr,scheduler:{get:()=>qr,set:t=>{qr=t}},rejectionMapper:{get:()=>rs,set:t=>{rs=t}},follow:(t,e)=>new M((r,n)=>yt((i,s)=>{var o=K;o.unhandleds=[],o.onunhandled=s,o.finalize=zt(function(){kf(()=>{this.unhandleds.length===0?i():s(this.unhandleds[0])})},o.finalize),t()},e,r,n))});Dn&&(Dn.allSettled&&rt(M,"allSettled",function(){let t=it.apply(null,arguments).map(Ln);return new M(e=>{t.length===0&&e([]);let r=t.length,n=new Array(r);t.forEach((i,s)=>M.resolve(i).then(o=>n[s]={status:"fulfilled",value:o},o=>n[s]={status:"rejected",reason:o}).then(()=>--r||e(n)))})}),Dn.any&&typeof AggregateError!="undefined"&&rt(M,"any",function(){let t=it.apply(null,arguments).map(Ln);return new M((e,r)=>{t.length===0&&r(new AggregateError([]));let n=t.length,i=new Array(n);t.forEach((s,o)=>M.resolve(s).then(a=>e(a),a=>{i[o]=a,--n||r(new AggregateError(i))}))})}));function Go(t,e){try{e(r=>{if(t._state===null){if(r===t)throw new TypeError("A promise cannot be resolved with itself.");var n=t._lib&&Jr();r&&typeof r.then=="function"?Go(t,(i,s)=>{r instanceof M?r._then(i,s):r.then(i,s)}):(t._state=!0,t._value=r,Qo(t)),n&&Xr()}},is.bind(null,t))}catch(r){is(t,r)}}function is(t,e){if(In.push(e),t._state===null){var r=t._lib&&Jr();e=rs(e),t._state=!1,t._value=e,Je&&e!==null&&typeof e=="object"&&!e._promise&&df(()=>{var n=zi(e,"stack");e._promise=t,rt(e,"stack",{get:()=>Zi?n&&(n.get?n.get.apply(e):n.value):t.stack})}),Of(t),Qo(t),r&&Xr()}}function Qo(t){var e=t._listeners;t._listeners=[];for(var r=0,n=e.length;r{--Ht==0&&os()},[]))}function ss(t,e){if(t._state===null){t._listeners.push(e);return}var r=t._state?e.onFulfilled:e.onRejected;if(r===null)return(t._state?e.resolve:e.reject)(t._value);++e.psd.ref,++Ht,qr(If,[r,t,e])}function If(t,e,r){try{ts=e;var n,i=e._value;e._state?n=t(i):(In.length&&(In=[]),n=t(i),In.indexOf(i)===-1&&Pf(e)),r.resolve(n)}catch(s){r.reject(s)}finally{ts=null,--Ht==0&&os(),--r.psd.ref||r.psd.finalize()}}function qo(t,e,r){if(e.length===r)return e;var n="";if(t._state===!1){var i=t._value,s,o;i!=null?(s=i.name||"Error",o=i.message||i,n=Ui(i,0)):(s=i,o=""),e.push(s+(o?": "+o:"")+n)}return Je&&(n=Ui(t._stackHolder,2),n&&e.indexOf(n)===-1&&e.push(n),t._prev&&qo(t._prev,e,r)),e}function Yo(t,e){var r=e?e._numPrev+1:0;r0;)for(t=Yr,Yr=[],r=t.length,e=0;e0);es=!0,Tn=!0}function os(){var t=Vt;Vt=[],t.forEach(n=>{n._PSD.onunhandled.call(null,n._value,n)});for(var e=kn.slice(0),r=e.length;r;)e[--r]()}function kf(t){function e(){t(),kn.splice(kn.indexOf(e),1)}kn.push(e),++Ht,qr(()=>{--Ht==0&&os()},[])}function Of(t){Vt.some(e=>e._value===t._value)||Vt.push(t)}function Pf(t){for(var e=Vt.length;e;)if(Vt[--e]._value===t._value){Vt.splice(e,1);return}}function Pn(t){return new M(Qr,!1,t)}function oe(t,e){var r=K;return function(){var n=Jr(),i=K;try{return vt(r,!0),t.apply(this,arguments)}catch(s){e&&e(s)}finally{vt(i,!1),n&&Xr()}}}var ke={awaits:0,echoes:0,id:0},Mf=0,Mn=[],as=0,Rn=0,Rf=0;function yt(t,e,r,n){var i=K,s=Object.create(i);s.parent=i,s.ref=0,s.global=!1,s.id=++Rf;var o=dr.env;s.env=Xi?{Promise:M,PromiseProp:{value:M,configurable:!0,writable:!0},all:M.all,race:M.race,allSettled:M.allSettled,any:M.any,resolve:M.resolve,reject:M.reject,nthen:Zo(o.nthen,s),gthen:Zo(o.gthen,s)}:{},e&&Me(s,e),++i.ref,s.finalize=function(){--this.parent.ref||this.parent.finalize()};var a=pr(s,t,r,n);return s.ref===0&&s.finalize(),a}function hr(){return ke.id||(ke.id=++Mf),++ke.awaits,ke.echoes+=$o,ke.id}function st(){return ke.awaits?(--ke.awaits==0&&(ke.id=0),ke.echoes=ke.awaits*$o,!0):!1}(""+Wo).indexOf("[native code]")===-1&&(hr=st=ne);function Ln(t){return ke.echoes&&t&&t.constructor===Dn?(hr(),t.then(e=>(st(),e),e=>(st(),ye(e)))):t}function Lf(t){++Rn,(!ke.echoes||--ke.echoes==0)&&(ke.echoes=ke.id=0),Mn.push(K),vt(t,!0)}function Bf(){var t=Mn[Mn.length-1];Mn.pop(),vt(t,!1)}function vt(t,e){var r=K;if((e?ke.echoes&&(!as++||t!==K):as&&(!--as||t!==K))&&Xo(e?Lf.bind(null,t):Bf),t!==K&&(K=t,r===dr&&(dr.env=Jo()),Xi)){var n=dr.env.Promise,i=t.env;En.then=i.nthen,n.prototype.then=i.gthen,(r.global||t.global)&&(Object.defineProperty(ie,"Promise",i.PromiseProp),n.all=i.all,n.race=i.race,n.resolve=i.resolve,n.reject=i.reject,i.allSettled&&(n.allSettled=i.allSettled),i.any&&(n.any=i.any))}}function Jo(){var t=ie.Promise;return Xi?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(ie,"Promise"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:En.then,gthen:t.prototype.then}:{}}function pr(t,e,r,n,i){var s=K;try{return vt(t,!0),e(r,n,i)}finally{vt(s,!1)}}function Xo(t){Wo.call(Yi,t)}function Bn(t,e,r,n){return typeof t!="function"?t:function(){var i=K;r&&hr(),vt(e,!0);try{return t.apply(this,arguments)}finally{vt(i,!1),n&&Xo(st)}}}function Zo(t,e){return function(r,n){return t.call(this,Bn(r,e),Bn(n,e))}}var ea="unhandledrejection";function ta(t,e){var r;try{r=e.onuncatched(t)}catch{}if(r!==!1)try{var n,i={promise:e,reason:t};if(ie.document&&document.createEvent?(n=document.createEvent("Event"),n.initEvent(ea,!0,!0),Me(n,i)):ie.CustomEvent&&(n=new CustomEvent(ea,{detail:i}),Me(n,i)),n&&ie.dispatchEvent&&(dispatchEvent(n),!ie.PromiseRejectionEvent&&ie.onunhandledrejection))try{ie.onunhandledrejection(n)}catch{}Je&&n&&!n.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch{}}var ye=M.reject;function ls(t,e,r,n){if(!t.idbdb||!t._state.openComplete&&!K.letThrough&&!t._vip){if(t._state.openComplete)return ye(new V.DatabaseClosed(t._state.dbOpenError));if(!t._state.isBeingOpened){if(!t._options.autoOpen)return ye(new V.DatabaseClosed);t.open().catch(ne)}return t._state.dbReadyPromise.then(()=>ls(t,e,r,n))}else{var i=t._createTransaction(e,r,t._dbSchema);try{i.create(),t._state.PR1398_maxLoop=3}catch(s){return s.name===Qi.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>ls(t,e,r,n))):ye(s)}return i._promise(e,(s,o)=>yt(()=>(K.trans=i,n(s,o,i)))).then(s=>i._completion.then(()=>s))}}var ra="3.2.2",$t=String.fromCharCode(65535),us=-1/0,ot="Invalid key provided. Keys must be of type string, number, Date or Array.",na="String expected.",Zr=[],Nn=typeof navigator!="undefined"&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),Nf=Nn,Kf=Nn,ia=t=>!/(dexie\.js|dexie\.min\.js)/.test(t),Kn="__dbnames",cs="readonly",fs="readwrite";function Wt(t,e){return t?e?function(){return t.apply(this,arguments)&&e.apply(this,arguments)}:t:e}var sa={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function zn(t){return typeof t=="string"&&!/\./.test(t)?e=>(e[t]===void 0&&t in e&&(e=Wr(e),delete e[t]),e):e=>e}var oa=class{_trans(e,r,n){let i=this._tx||K.trans,s=this.name;function o(u,l,f){if(!f.schema[s])throw new V.NotFound("Table "+s+" not part of transaction");return r(f.idbtrans,f)}let a=Jr();try{return i&&i.db===this.db?i===K.trans?i._promise(e,o,n):yt(()=>i._promise(e,o,n),{trans:i,transless:K.transless||K}):ls(this.db,e,[this.name],o)}finally{a&&Xr()}}get(e,r){return e&&e.constructor===Object?this.where(e).first(r):this._trans("readonly",n=>this.core.get({trans:n,key:e}).then(i=>this.hook.reading.fire(i))).then(r)}where(e){if(typeof e=="string")return new this.db.WhereClause(this,e);if(Ie(e))return new this.db.WhereClause(this,`[${e.join("+")}]`);let r=pe(e);if(r.length===1)return this.where(r[0]).equals(e[r[0]]);let n=this.schema.indexes.concat(this.schema.primKey).filter(l=>l.compound&&r.every(f=>l.keyPath.indexOf(f)>=0)&&l.keyPath.every(f=>r.indexOf(f)>=0))[0];if(n&&this.db._maxKey!==$t)return this.where(n.name).equals(n.keyPath.map(l=>e[l]));!n&&Je&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${r.join("+")}]`);let{idxByName:i}=this.schema,s=this.db._deps.indexedDB;function o(l,f){try{return s.cmp(l,f)===0}catch{return!1}}let[a,u]=r.reduce(([l,f],p)=>{let c=i[p],h=e[p];return[l||c,l||!c?Wt(f,c&&c.multi?w=>{let x=nt(w,p);return Ie(x)&&x.some(b=>o(h,b))}:w=>o(h,nt(w,p))):f]},[null,null]);return a?this.where(a.name).equals(e[a.keyPath]).filter(u):n?this.filter(u):this.where(r).equals("")}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,Ie(e)?`[${e.join("+")}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;let r=n=>{if(!n)return n;let i=Object.create(e.prototype);for(var s in n)if(He(n,s))try{i[s]=n[s]}catch{}return i};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=r,this.hook("reading",r),e}defineClass(){function e(r){Me(this,r)}return this.mapToClass(e)}add(e,r){let{auto:n,keyPath:i}=this.schema.primKey,s=e;return i&&n&&(s=zn(i)(e)),this._trans("readwrite",o=>this.core.mutate({trans:o,type:"add",keys:r!=null?[r]:null,values:[s]})).then(o=>o.numFailures?M.reject(o.failures[0]):o.lastResult).then(o=>{if(i)try{Qe(e,i,o)}catch{}return o})}update(e,r){if(typeof e=="object"&&!Ie(e)){let n=nt(e,this.schema.primKey.keyPath);if(n===void 0)return ye(new V.InvalidArgument("Given object does not contain its primary key"));try{typeof r!="function"?pe(r).forEach(i=>{Qe(e,i,r[i])}):r(e,{value:e,primKey:n})}catch{}return this.where(":id").equals(n).modify(r)}else return this.where(":id").equals(e).modify(r)}put(e,r){let{auto:n,keyPath:i}=this.schema.primKey,s=e;return i&&n&&(s=zn(i)(e)),this._trans("readwrite",o=>this.core.mutate({trans:o,type:"put",values:[s],keys:r!=null?[r]:null})).then(o=>o.numFailures?M.reject(o.failures[0]):o.lastResult).then(o=>{if(i)try{Qe(e,i,o)}catch{}return o})}delete(e){return this._trans("readwrite",r=>this.core.mutate({trans:r,type:"delete",keys:[e]})).then(r=>r.numFailures?M.reject(r.failures[0]):void 0)}clear(){return this._trans("readwrite",e=>this.core.mutate({trans:e,type:"deleteRange",range:sa})).then(e=>e.numFailures?M.reject(e.failures[0]):void 0)}bulkGet(e){return this._trans("readonly",r=>this.core.getMany({keys:e,trans:r}).then(n=>n.map(i=>this.hook.reading.fire(i))))}bulkAdd(e,r,n){let i=Array.isArray(r)?r:void 0;n=n||(i?void 0:r);let s=n?n.allKeys:void 0;return this._trans("readwrite",o=>{let{auto:a,keyPath:u}=this.schema.primKey;if(u&&i)throw new V.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(i&&i.length!==e.length)throw new V.InvalidArgument("Arguments objects and keys must have the same length");let l=e.length,f=u&&a?e.map(zn(u)):e;return this.core.mutate({trans:o,type:"add",keys:i,values:f,wantResults:s}).then(({numFailures:p,results:c,lastResult:h,failures:w})=>{let x=s?c:h;if(p===0)return x;throw new Ur(`${this.name}.bulkAdd(): ${p} of ${l} operations failed`,w)})})}bulkPut(e,r,n){let i=Array.isArray(r)?r:void 0;n=n||(i?void 0:r);let s=n?n.allKeys:void 0;return this._trans("readwrite",o=>{let{auto:a,keyPath:u}=this.schema.primKey;if(u&&i)throw new V.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(i&&i.length!==e.length)throw new V.InvalidArgument("Arguments objects and keys must have the same length");let l=e.length,f=u&&a?e.map(zn(u)):e;return this.core.mutate({trans:o,type:"put",keys:i,values:f,wantResults:s}).then(({numFailures:p,results:c,lastResult:h,failures:w})=>{let x=s?c:h;if(p===0)return x;throw new Ur(`${this.name}.bulkPut(): ${p} of ${l} operations failed`,w)})})}bulkDelete(e){let r=e.length;return this._trans("readwrite",n=>this.core.mutate({trans:n,type:"delete",keys:e})).then(({numFailures:n,lastResult:i,failures:s})=>{if(n===0)return i;throw new Ur(`${this.name}.bulkDelete(): ${n} of ${r} operations failed`,s)})}};function en(t){var e={},r=function(a,u){if(u){for(var l=arguments.length,f=new Array(l-1);--l;)f[l-1]=arguments[l];return e[a].subscribe.apply(null,f),t}else if(typeof a=="string")return e[a]};r.addEventType=s;for(var n=1,i=arguments.length;nWt(n(),e()):e,t.justLimit=r&&!n}function Vf(t,e){t.isMatch=Wt(t.isMatch,e)}function Vn(t,e){if(t.isPrimKey)return e.primaryKey;let r=e.getIndexByKeyPath(t.index);if(!r)throw new V.Schema("KeyPath "+t.index+" on object store "+e.name+" is not indexed");return r}function aa(t,e,r){let n=Vn(t,e.schema);return e.openCursor({trans:r,values:!t.keysOnly,reverse:t.dir==="prev",unique:!!t.unique,query:{index:n,range:t.range}})}function Hn(t,e,r,n){let i=t.replayFilter?Wt(t.filter,t.replayFilter()):t.filter;if(t.or){let s={},o=(a,u,l)=>{if(!i||i(u,l,c=>u.stop(c),c=>u.fail(c))){var f=u.primaryKey,p=""+f;p==="[object ArrayBuffer]"&&(p=""+new Uint8Array(f)),He(s,p)||(s[p]=!0,e(a,u,l))}};return Promise.all([t.or._iterate(o,r),la(aa(t,n,r),t.algorithm,o,!t.keysOnly&&t.valueMapper)])}else return la(aa(t,n,r),Wt(t.algorithm,i),e,!t.keysOnly&&t.valueMapper)}function la(t,e,r,n){var i=n?(o,a,u)=>r(n(o),a,u):r,s=oe(i);return t.then(o=>{if(o)return o.start(()=>{var a=()=>o.continue();(!e||e(o,u=>a=u,u=>{o.stop(u),a=ne},u=>{o.fail(u),a=ne}))&&s(o.value,o,u=>a=u),a()})})}function Re(t,e){try{let r=ua(t),n=ua(e);if(r!==n)return r==="Array"?1:n==="Array"?-1:r==="binary"?1:n==="binary"?-1:r==="string"?1:n==="string"?-1:r==="Date"?1:n!=="Date"?NaN:-1;switch(r){case"number":case"Date":case"string":return t>e?1:tHn(r,e,n,r.table.core))}count(e){return this._read(r=>{let n=this._ctx,i=n.table.core;if(mr(n,!0))return i.count({trans:r,query:{index:Vn(n,i.schema),range:n.range}}).then(o=>Math.min(o,n.limit));var s=0;return Hn(n,()=>(++s,!1),r,i).then(()=>s)}).then(e)}sortBy(e,r){let n=e.split(".").reverse(),i=n[0],s=n.length-1;function o(l,f){return f?o(l[n[f]],f-1):l[i]}var a=this._ctx.dir==="next"?1:-1;function u(l,f){var p=o(l,s),c=o(f,s);return pc?a:0}return this.toArray(function(l){return l.sort(u)}).then(r)}toArray(e){return this._read(r=>{var n=this._ctx;if(n.dir==="next"&&mr(n,!0)&&n.limit>0){let{valueMapper:i}=n,s=Vn(n,n.table.core.schema);return n.table.core.query({trans:r,limit:n.limit,values:!0,query:{index:s,range:n.range}}).then(({result:o})=>i?o.map(i):o)}else{let i=[];return Hn(n,s=>i.push(s),r,n.table.core).then(()=>i)}},e)}offset(e){var r=this._ctx;return e<=0?this:(r.offset+=e,mr(r)?hs(r,()=>{var n=e;return(i,s)=>n===0?!0:n===1?(--n,!1):(s(()=>{i.advance(n),n=0}),!1)}):hs(r,()=>{var n=e;return()=>--n<0}),this)}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),hs(this._ctx,()=>{var r=e;return function(n,i,s){return--r<=0&&i(s),r>=0}},!0),this}until(e,r){return ds(this._ctx,function(n,i,s){return e(n.value)?(i(s),r):!0}),this}first(e){return this.limit(1).toArray(function(r){return r[0]}).then(e)}last(e){return this.reverse().first(e)}filter(e){return ds(this._ctx,function(r){return e(r.value)}),Vf(this._ctx,e),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var r=this._ctx;return r.keysOnly=!r.isMatch,this.each(function(n,i){e(i.key,i)})}eachUniqueKey(e){return this._ctx.unique="unique",this.eachKey(e)}eachPrimaryKey(e){var r=this._ctx;return r.keysOnly=!r.isMatch,this.each(function(n,i){e(i.primaryKey,i)})}keys(e){var r=this._ctx;r.keysOnly=!r.isMatch;var n=[];return this.each(function(i,s){n.push(s.key)}).then(function(){return n}).then(e)}primaryKeys(e){var r=this._ctx;if(r.dir==="next"&&mr(r,!0)&&r.limit>0)return this._read(i=>{var s=Vn(r,r.table.core.schema);return r.table.core.query({trans:i,values:!1,limit:r.limit,query:{index:s,range:r.range}})}).then(({result:i})=>i).then(e);r.keysOnly=!r.isMatch;var n=[];return this.each(function(i,s){n.push(s.primaryKey)}).then(function(){return n}).then(e)}uniqueKeys(e){return this._ctx.unique="unique",this.keys(e)}firstKey(e){return this.limit(1).keys(function(r){return r[0]}).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,r=e.index&&e.table.schema.idxByName[e.index];if(!r||!r.multi)return this;var n={};return ds(this._ctx,function(i){var s=i.primaryKey.toString(),o=He(n,s);return n[s]=!0,!o}),this}modify(e){var r=this._ctx;return this._write(n=>{var i;if(typeof e=="function")i=e;else{var s=pe(e),o=s.length;i=function(x){for(var b=!1,d=0;d{let{failures:d,numFailures:_}=b;c+=x-_;for(let m of pe(d))p.push(d[m])};return this.clone().primaryKeys().then(x=>{let b=d=>{let _=Math.min(f,x.length-d);return a.getMany({trans:n,keys:x.slice(d,d+_),cache:"immutable"}).then(m=>{let g=[],v=[],y=u?[]:null,j=[];for(let F=0;F<_;++F){let E=m[F],P={value:Wr(E),primKey:x[d+F]};i.call(P,P.value,P)!==!1&&(P.value==null?j.push(x[d+F]):!u&&Re(l(E),l(P.value))!==0?(j.push(x[d+F]),g.push(P.value)):(v.push(P.value),u&&y.push(x[d+F])))}let C=mr(r)&&r.limit===1/0&&(typeof e!="function"||e===ps)&&{index:r.index,range:r.range};return Promise.resolve(g.length>0&&a.mutate({trans:n,type:"add",values:g}).then(F=>{for(let E in F.failures)j.splice(parseInt(E),1);w(g.length,F)})).then(()=>(v.length>0||C&&typeof e=="object")&&a.mutate({trans:n,type:"put",keys:y,values:v,criteria:C,changeSpec:typeof e!="function"&&e}).then(F=>w(v.length,F))).then(()=>(j.length>0||C&&e===ps)&&a.mutate({trans:n,type:"delete",keys:j,criteria:C}).then(F=>w(j.length,F))).then(()=>x.length>d+_&&b(d+f))})};return b(0).then(()=>{if(p.length>0)throw new Fn("Error modifying one or more objects",p,c,h);return x.length})})})}delete(){var e=this._ctx,r=e.range;return mr(e)&&(e.isPrimKey&&!Kf||r.type===3)?this._write(n=>{let{primaryKey:i}=e.table.core.schema,s=r;return e.table.core.count({trans:n,query:{index:i,range:s}}).then(o=>e.table.core.mutate({trans:n,type:"deleteRange",range:s}).then(({failures:a,lastResult:u,results:l,numFailures:f})=>{if(f)throw new Fn("Could not delete some values",Object.keys(a).map(p=>a[p]),o-f);return o-f}))}):this.modify(ps)}},ps=(t,e)=>e.value=null;function Wf(t){return tn(fa.prototype,function(r,n){this.db=t;let i=sa,s=null;if(n)try{i=n()}catch(l){s=l}let o=r._ctx,a=o.table,u=a.hook.reading.fire;this._ctx={table:a,index:o.index,isPrimKey:!o.index||a.schema.primKey.keyPath&&o.index===a.schema.primKey.name,range:i,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:s,or:o.or,valueMapper:u!==Gr?u:null}})}function Uf(t,e){return te?-1:t===e?0:1}function $e(t,e,r){var n=t instanceof ms?new t.Collection(t):t;return n._ctx.error=r?new r(e):new TypeError(e),n}function gr(t){return new t.Collection(t,()=>da("")).limit(0)}function Qf(t){return t==="next"?e=>e.toUpperCase():e=>e.toLowerCase()}function qf(t){return t==="next"?e=>e.toLowerCase():e=>e.toUpperCase()}function Yf(t,e,r,n,i,s){for(var o=Math.min(t.length,n.length),a=-1,u=0;u=0?t.substr(0,a)+e[a]+r.substr(a+1):null;i(t[u],l)<0&&(a=u)}return otypeof x=="string"))return $e(t,na);function c(x){i=Qf(x),s=qf(x),o=x==="next"?Uf:Gf;var b=r.map(function(d){return{lower:s(d),upper:i(d)}}).sort(function(d,_){return o(d.lower,_.lower)});a=b.map(function(d){return d.upper}),u=b.map(function(d){return d.lower}),l=x,f=x==="next"?"":n}c("next");var h=new t.Collection(t,()=>_t(a[0],u[p-1]+n));h._ondirectionchange=function(x){c(x)};var w=0;return h._addAlgorithm(function(x,b,d){var _=x.key;if(typeof _!="string")return!1;var m=s(_);if(e(m,u,w))return!0;for(var g=null,v=w;v0)&&(g=y)}return b(g!==null?function(){x.continue(g+f)}:d),!1}),h}function _t(t,e,r,n){return{type:2,lower:t,upper:e,lowerOpen:r,upperOpen:n}}function da(t){return{type:1,lower:t,upper:t}}var ms=class{get Collection(){return this._ctx.table.db.Collection}between(e,r,n,i){n=n!==!1,i=i===!0;try{return this._cmp(e,r)>0||this._cmp(e,r)===0&&(n||i)&&!(n&&i)?gr(this):new this.Collection(this,()=>_t(e,r,!n,!i))}catch{return $e(this,ot)}}equals(e){return e==null?$e(this,ot):new this.Collection(this,()=>da(e))}above(e){return e==null?$e(this,ot):new this.Collection(this,()=>_t(e,void 0,!0))}aboveOrEqual(e){return e==null?$e(this,ot):new this.Collection(this,()=>_t(e,void 0,!1))}below(e){return e==null?$e(this,ot):new this.Collection(this,()=>_t(void 0,e,!1,!0))}belowOrEqual(e){return e==null?$e(this,ot):new this.Collection(this,()=>_t(void 0,e))}startsWith(e){return typeof e!="string"?$e(this,na):this.between(e,e+$t,!0,!0)}startsWithIgnoreCase(e){return e===""?this.startsWith(e):$n(this,(r,n)=>r.indexOf(n[0])===0,[e],$t)}equalsIgnoreCase(e){return $n(this,(r,n)=>r===n[0],[e],"")}anyOfIgnoreCase(){var e=it.apply(cr,arguments);return e.length===0?gr(this):$n(this,(r,n)=>n.indexOf(r)!==-1,e,"")}startsWithAnyOfIgnoreCase(){var e=it.apply(cr,arguments);return e.length===0?gr(this):$n(this,(r,n)=>n.some(i=>r.indexOf(i)===0),e,$t)}anyOf(){let e=it.apply(cr,arguments),r=this._cmp;try{e.sort(r)}catch{return $e(this,ot)}if(e.length===0)return gr(this);let n=new this.Collection(this,()=>_t(e[0],e[e.length-1]));n._ondirectionchange=s=>{r=s==="next"?this._ascending:this._descending,e.sort(r)};let i=0;return n._addAlgorithm((s,o,a)=>{let u=s.key;for(;r(u,e[i])>0;)if(++i,i===e.length)return o(a),!1;return r(u,e[i])===0?!0:(o(()=>{s.continue(e[i])}),!1)}),n}notEqual(e){return this.inAnyRange([[us,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){let e=it.apply(cr,arguments);if(e.length===0)return new this.Collection(this);try{e.sort(this._ascending)}catch{return $e(this,ot)}let r=e.reduce((n,i)=>n?n.concat([[n[n.length-1][1],i]]):[[us,i]],null);return r.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(r,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,r){let n=this._cmp,i=this._ascending,s=this._descending,o=this._min,a=this._max;if(e.length===0)return gr(this);if(!e.every(g=>g[0]!==void 0&&g[1]!==void 0&&i(g[0],g[1])<=0))return $e(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",V.InvalidArgument);let u=!r||r.includeLowers!==!1,l=r&&r.includeUppers===!0;function f(g,v){let y=0,j=g.length;for(;y0){C[0]=o(C[0],v[0]),C[1]=a(C[1],v[1]);break}}return y===j&&g.push(v),g}let p=i;function c(g,v){return p(g[0],v[0])}let h;try{h=e.reduce(f,[]),h.sort(c)}catch{return $e(this,ot)}let w=0,x=l?g=>i(g,h[w][1])>0:g=>i(g,h[w][1])>=0,b=u?g=>s(g,h[w][0])>0:g=>s(g,h[w][0])>=0;function d(g){return!x(g)&&!b(g)}let _=x,m=new this.Collection(this,()=>_t(h[0][0],h[h.length-1][1],!u,!l));return m._ondirectionchange=g=>{g==="next"?(_=x,p=i):(_=b,p=s),h.sort(c)},m._addAlgorithm((g,v,y)=>{for(var j=g.key;_(j);)if(++w,w===h.length)return v(y),!1;return d(j)?!0:(this._cmp(j,h[w][1])===0||this._cmp(j,h[w][0])===0||v(()=>{p===i?g.continue(h[w][0]):g.continue(h[w][1])}),!1)}),m}startsWithAnyOf(){let e=it.apply(cr,arguments);return e.every(r=>typeof r=="string")?e.length===0?gr(this):this.inAnyRange(e.map(r=>[r,r+$t])):$e(this,"startsWithAnyOf() only works with strings")}};function Jf(t){return tn(ms.prototype,function(r,n,i){this.db=t,this._ctx={table:r,index:n===":id"?null:n,or:i};let s=t._deps.indexedDB;if(!s)throw new V.MissingAPI;this._cmp=this._ascending=s.cmp.bind(s),this._descending=(o,a)=>s.cmp(a,o),this._max=(o,a)=>s.cmp(o,a)>0?o:a,this._min=(o,a)=>s.cmp(o,a)<0?o:a,this._IDBKeyRange=t._deps.IDBKeyRange})}function Xe(t){return oe(function(e){return rn(e),t(e.target.error),!1})}function rn(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()}var nn="storagemutated",bt="x-storagemutated-1",xt=en(null,nn),ha=class{_lock(){return $r(!K.global),++this._reculock,this._reculock===1&&!K.global&&(K.lockOwnerFor=this),this}_unlock(){if($r(!K.global),--this._reculock==0)for(K.global||(K.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{pr(e[1],e[0])}catch{}}return this}_locked(){return this._reculock&&K.lockOwnerFor!==this}create(e){if(!this.mode)return this;let r=this.db.idbdb,n=this.db._state.dbOpenError;if($r(!this.idbtrans),!e&&!r)switch(n&&n.name){case"DatabaseClosedError":throw new V.DatabaseClosed(n);case"MissingAPIError":throw new V.MissingAPI(n.message,n);default:throw new V.OpenFailed(n)}if(!this.active)throw new V.TransactionInactive;return $r(this._completion._state===null),e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):r.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})),e.onerror=oe(i=>{rn(i),this._reject(e.error)}),e.onabort=oe(i=>{rn(i),this.active&&this._reject(new V.Abort(e.error)),this.active=!1,this.on("abort").fire(i)}),e.oncomplete=oe(()=>{this.active=!1,this._resolve(),"mutatedParts"in e&&xt.storagemutated.fire(e.mutatedParts)}),this}_promise(e,r,n){if(e==="readwrite"&&this.mode!=="readwrite")return ye(new V.ReadOnly("Transaction is readonly"));if(!this.active)return ye(new V.TransactionInactive);if(this._locked())return new M((s,o)=>{this._blockedFuncs.push([()=>{this._promise(e,r,n).then(s,o)},K])});if(n)return yt(()=>{var s=new M((o,a)=>{this._lock();let u=r(o,a,this);u&&u.then&&u.then(o,a)});return s.finally(()=>this._unlock()),s._lib=!0,s});var i=new M((s,o)=>{var a=r(s,o,this);a&&a.then&&a.then(s,o)});return i._lib=!0,i}_root(){return this.parent?this.parent._root():this}waitFor(e){var r=this._root();let n=M.resolve(e);if(r._waitingFor)r._waitingFor=r._waitingFor.then(()=>n);else{r._waitingFor=n,r._waitingQueue=[];var i=r.idbtrans.objectStore(r.storeNames[0]);(function o(){for(++r._spinCount;r._waitingQueue.length;)r._waitingQueue.shift()();r._waitingFor&&(i.get(-1/0).onsuccess=o)})()}var s=r._waitingFor;return new M((o,a)=>{n.then(u=>r._waitingQueue.push(oe(o.bind(null,u))),u=>r._waitingQueue.push(oe(a.bind(null,u)))).finally(()=>{r._waitingFor===s&&(r._waitingFor=null)})})}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new V.Abort))}table(e){let r=this._memoizedTables||(this._memoizedTables={});if(He(r,e))return r[e];let n=this.schema[e];if(!n)throw new V.NotFound("Table "+e+" not part of transaction");let i=new this.db.Table(e,n,this);return i.core=this.db.core.table(e),r[e]=i,i}};function Xf(t){return tn(ha.prototype,function(r,n,i,s,o){this.db=t,this.mode=r,this.storeNames=n,this.schema=i,this.chromeTransactionDurability=s,this.idbtrans=null,this.on=en(this,"complete","error","abort"),this.parent=o||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new M((a,u)=>{this._resolve=a,this._reject=u}),this._completion.then(()=>{this.active=!1,this.on.complete.fire()},a=>{var u=this.active;return this.active=!1,this.on.error.fire(a),this.parent?this.parent._reject(a):u&&this.idbtrans&&this.idbtrans.abort(),ye(a)})})}function gs(t,e,r,n,i,s,o){return{name:t,keyPath:e,unique:r,multi:n,auto:i,compound:s,src:(r&&!o?"&":"")+(n?"*":"")+(i?"++":"")+pa(e)}}function pa(t){return typeof t=="string"?t:t?"["+[].join.call(t,"+")+"]":""}function ma(t,e,r){return{name:t,primKey:e,indexes:r,mappedClass:null,idxByName:Mo(r,n=>[n.name,n])}}function Zf(t){return t.length===1?t[0]:t}var sn=t=>{try{return t.only([[]]),sn=()=>[[]],[[]]}catch{return sn=()=>$t,$t}};function ys(t){return t==null?()=>{}:typeof t=="string"?ed(t):e=>nt(e,t)}function ed(t){return t.split(".").length===1?r=>r[t]:r=>nt(r,t)}function ga(t){return[].slice.call(t)}var td=0;function on(t){return t==null?":id":typeof t=="string"?t:`[${t.join("+")}]`}function rd(t,e,r){function n(f,p){let c=ga(f.objectStoreNames);return{schema:{name:f.name,tables:c.map(h=>p.objectStore(h)).map(h=>{let{keyPath:w,autoIncrement:x}=h,b=Ie(w),d=w==null,_={},m={name:h.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:d,compound:b,keyPath:w,autoIncrement:x,unique:!0,extractKey:ys(w)},indexes:ga(h.indexNames).map(g=>h.index(g)).map(g=>{let{name:v,unique:y,multiEntry:j,keyPath:C}=g,F=Ie(C),E={name:v,compound:F,keyPath:C,unique:y,multiEntry:j,extractKey:ys(C)};return _[on(C)]=E,E}),getIndexByKeyPath:g=>_[on(g)]};return _[":id"]=m.primaryKey,w!=null&&(_[on(w)]=m.primaryKey),m})},hasGetAll:c.length>0&&"getAll"in p.objectStore(c[0])&&!(typeof navigator!="undefined"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}function i(f){if(f.type===3)return null;if(f.type===4)throw new Error("Cannot convert never type to IDBKeyRange");let{lower:p,upper:c,lowerOpen:h,upperOpen:w}=f;return p===void 0?c===void 0?null:e.upperBound(c,!!w):c===void 0?e.lowerBound(p,!!h):e.bound(p,c,!!h,!!w)}function s(f){let p=f.name;function c({trans:x,type:b,keys:d,values:_,range:m}){return new Promise((g,v)=>{g=oe(g);let y=x.objectStore(p),j=y.keyPath==null,C=b==="put"||b==="add";if(!C&&b!=="delete"&&b!=="deleteRange")throw new Error("Invalid operation type: "+b);let{length:F}=d||_||{length:1};if(d&&_&&d.length!==_.length)throw new Error("Given keys array must have same length as given values array.");if(F===0)return g({numFailures:0,failures:{},results:[],lastResult:void 0});let E,P=[],L=[],O=0,z=Q=>{++O,rn(Q)};if(b==="deleteRange"){if(m.type===4)return g({numFailures:O,failures:L,results:[],lastResult:void 0});m.type===3?P.push(E=y.clear()):P.push(E=y.delete(i(m)))}else{let[Q,Z]=C?j?[_,d]:[_,null]:[d,null];if(C)for(let A=0;A{let Z=Q.target.result;P.forEach((A,S)=>A.error!=null&&(L[S]=A.error)),g({numFailures:O,failures:L,results:b==="delete"?d:P.map(A=>A.result),lastResult:Z})};E.onerror=Q=>{z(Q),J(Q)},E.onsuccess=J})}function h({trans:x,values:b,query:d,reverse:_,unique:m}){return new Promise((g,v)=>{g=oe(g);let{index:y,range:j}=d,C=x.objectStore(p),F=y.isPrimaryKey?C:C.index(y.name),E=_?m?"prevunique":"prev":m?"nextunique":"next",P=b||!("openKeyCursor"in F)?F.openCursor(i(j),E):F.openKeyCursor(i(j),E);P.onerror=Xe(v),P.onsuccess=oe(L=>{let O=P.result;if(!O){g(null);return}O.___id=++td,O.done=!1;let z=O.continue.bind(O),J=O.continuePrimaryKey;J&&(J=J.bind(O));let Q=O.advance.bind(O),Z=()=>{throw new Error("Cursor not started")},A=()=>{throw new Error("Cursor not stopped")};O.trans=x,O.stop=O.continue=O.continuePrimaryKey=O.advance=Z,O.fail=oe(v),O.next=function(){let S=1;return this.start(()=>S--?this.continue():this.stop()).then(()=>this)},O.start=S=>{let T=new Promise((k,X)=>{k=oe(k),P.onerror=Xe(X),O.fail=X,O.stop=le=>{O.stop=O.continue=O.continuePrimaryKey=O.advance=A,k(le)}}),N=()=>{if(P.result)try{S()}catch(k){O.fail(k)}else O.done=!0,O.start=()=>{throw new Error("Cursor behind last entry")},O.stop()};return P.onsuccess=oe(k=>{P.onsuccess=N,N()}),O.continue=z,O.continuePrimaryKey=J,O.advance=Q,N(),T},g(O)},v)})}function w(x){return b=>new Promise((d,_)=>{d=oe(d);let{trans:m,values:g,limit:v,query:y}=b,j=v===1/0?void 0:v,{index:C,range:F}=y,E=m.objectStore(p),P=C.isPrimaryKey?E:E.index(C.name),L=i(F);if(v===0)return d({result:[]});if(x){let O=g?P.getAll(L,j):P.getAllKeys(L,j);O.onsuccess=z=>d({result:z.target.result}),O.onerror=Xe(_)}else{let O=0,z=g||!("openKeyCursor"in P)?P.openCursor(L):P.openKeyCursor(L),J=[];z.onsuccess=Q=>{let Z=z.result;if(!Z)return d({result:J});if(J.push(g?Z.value:Z.primaryKey),++O===v)return d({result:J});Z.continue()},z.onerror=Xe(_)}})}return{name:p,schema:f,mutate:c,getMany({trans:x,keys:b}){return new Promise((d,_)=>{d=oe(d);let m=x.objectStore(p),g=b.length,v=new Array(g),y=0,j=0,C,F=P=>{let L=P.target;(v[L._pos]=L.result)!=null,++j===y&&d(v)},E=Xe(_);for(let P=0;P{d=oe(d);let g=x.objectStore(p).get(b);g.onsuccess=v=>d(v.target.result),g.onerror=Xe(_)})},query:w(a),openCursor:h,count({query:x,trans:b}){let{index:d,range:_}=x;return new Promise((m,g)=>{let v=b.objectStore(p),y=d.isPrimaryKey?v:v.index(d.name),j=i(_),C=j?y.count(j):y.count();C.onsuccess=oe(F=>m(F.target.result)),C.onerror=Xe(g)})}}}let{schema:o,hasGetAll:a}=n(t,r),u=o.tables.map(f=>s(f)),l={};return u.forEach(f=>l[f.name]=f),{stack:"dbcore",transaction:t.transaction.bind(t),table(f){if(!l[f])throw new Error(`Table '${f}' not found`);return l[f]},MIN_KEY:-1/0,MAX_KEY:sn(e),schema:o}}function nd(t,e){return e.reduce((r,{create:n})=>ue(ue({},r),n(r)),t)}function id(t,e,{IDBKeyRange:r,indexedDB:n},i){return{dbcore:nd(rd(e,r,i),t.dbcore)}}function vs({_novip:t},e){let r=e.db,n=id(t._middlewares,r,t._deps,e);t.core=n.dbcore,t.tables.forEach(i=>{let s=i.name;t.core.schema.tables.some(o=>o.name===s)&&(i.core=t.core.table(s),t[s]instanceof t.Table&&(t[s].core=i.core))})}function Wn({_novip:t},e,r,n){r.forEach(i=>{let s=n[i];e.forEach(o=>{let a=zi(o,i);(!a||"value"in a&&a.value===void 0)&&(o===t.Transaction.prototype||o instanceof t.Transaction?rt(o,i,{get(){return this.table(i)},set(u){ko(this,i,{value:u,writable:!0,configurable:!0,enumerable:!0})}}):o[i]=new t.Table(i,s))})})}function _s({_novip:t},e){e.forEach(r=>{for(let n in r)r[n]instanceof t.Table&&delete r[n]})}function sd(t,e){return t._cfg.version-e._cfg.version}function od(t,e,r,n){let i=t._dbSchema,s=t._createTransaction("readwrite",t._storeNames,i);s.create(r),s._completion.catch(n);let o=s._reject.bind(s),a=K.transless||K;yt(()=>{K.trans=s,K.transless=a,e===0?(pe(i).forEach(u=>{bs(r,u,i[u].primKey,i[u].indexes)}),vs(t,r),M.follow(()=>t.on.populate.fire(s)).catch(o)):ad(t,e,s,r).catch(o)})}function ad({_novip:t},e,r,n){let i=[],s=t._versions,o=t._dbSchema=ws(t,t.idbdb,n),a=!1;s.filter(f=>f._cfg.version>=e).forEach(f=>{i.push(()=>{let p=o,c=f._cfg.dbschema;js(t,p,n),js(t,c,n),o=t._dbSchema=c;let h=ya(p,c);h.add.forEach(x=>{bs(n,x[0],x[1].primKey,x[1].indexes)}),h.change.forEach(x=>{if(x.recreate)throw new V.Upgrade("Not yet support for changing primary key");{let b=n.objectStore(x.name);x.add.forEach(d=>xs(b,d)),x.change.forEach(d=>{b.deleteIndex(d.name),xs(b,d)}),x.del.forEach(d=>b.deleteIndex(d))}});let w=f._cfg.contentUpgrade;if(w&&f._cfg.version>e){vs(t,n),r._memoizedTables={},a=!0;let x=Ro(c);h.del.forEach(m=>{x[m]=p[m]}),_s(t,[t.Transaction.prototype]),Wn(t,[t.Transaction.prototype],pe(x),x),r.schema=x;let b=Wi(w);b&&hr();let d,_=M.follow(()=>{if(d=w(r),d&&b){var m=st.bind(null,null);d.then(m,m)}});return d&&typeof d.then=="function"?M.resolve(d):_.then(()=>d)}}),i.push(p=>{if(!a||!Nf){let c=f._cfg.dbschema;ud(c,p)}_s(t,[t.Transaction.prototype]),Wn(t,[t.Transaction.prototype],t._storeNames,t._dbSchema),r.schema=t._dbSchema})});function l(){return i.length?M.resolve(i.shift()(r.idbtrans)).then(l):M.resolve()}return l().then(()=>{ld(o,n)})}function ya(t,e){let r={del:[],add:[],change:[]},n;for(n in t)e[n]||r.del.push(n);for(n in e){let i=t[n],s=e[n];if(!i)r.add.push([n,s]);else{let o={name:n,def:s,recreate:!1,del:[],add:[],change:[]};if(""+(i.primKey.keyPath||"")!=""+(s.primKey.keyPath||"")||i.primKey.auto!==s.primKey.auto&&!Nn)o.recreate=!0,r.change.push(o);else{let a=i.idxByName,u=s.idxByName,l;for(l in a)u[l]||o.del.push(l);for(l in u){let f=a[l],p=u[l];f?f.src!==p.src&&o.change.push(p):o.add.push(p)}(o.del.length>0||o.add.length>0||o.change.length>0)&&r.change.push(o)}}}return r}function bs(t,e,r,n){let i=t.db.createObjectStore(e,r.keyPath?{keyPath:r.keyPath,autoIncrement:r.auto}:{autoIncrement:r.auto});return n.forEach(s=>xs(i,s)),i}function ld(t,e){pe(t).forEach(r=>{e.db.objectStoreNames.contains(r)||bs(e,r,t[r].primKey,t[r].indexes)})}function ud(t,e){[].slice.call(e.db.objectStoreNames).forEach(r=>t[r]==null&&e.db.deleteObjectStore(r))}function xs(t,e){t.createIndex(e.name,e.keyPath,{unique:e.unique,multiEntry:e.multi})}function ws(t,e,r){let n={};return An(e.objectStoreNames,0).forEach(s=>{let o=r.objectStore(s),a=o.keyPath,u=gs(pa(a),a||"",!1,!1,!!o.autoIncrement,a&&typeof a!="string",!0),l=[];for(let p=0;pi.add.length||i.change.length))}function js({_novip:t},e,r){let n=r.db.objectStoreNames;for(let i=0;i{e=e.trim();let n=e.replace(/([&*]|\+\+)/g,""),i=/^\[/.test(n)?n.match(/^\[(.*)\]$/)[1].split("+"):n;return gs(n,i||null,/\&/.test(e),/\*/.test(e),/\+\+/.test(e),Ie(i),r===0)})}var va=class{_parseStoresSpec(e,r){pe(e).forEach(n=>{if(e[n]!==null){var i=dd(e[n]),s=i.shift();if(s.multi)throw new V.Schema("Primary key cannot be multi-valued");i.forEach(o=>{if(o.auto)throw new V.Schema("Only primary key can be marked as autoIncrement (++)");if(!o.keyPath)throw new V.Schema("Index must have a name and cannot be an empty string")}),r[n]=ma(n,s,i)}})}stores(e){let r=this.db;this._cfg.storesSource=this._cfg.storesSource?Me(this._cfg.storesSource,e):e;let n=r._versions,i={},s={};return n.forEach(o=>{Me(i,o._cfg.storesSource),s=o._cfg.dbschema={},o._parseStoresSpec(i,s)}),r._dbSchema=s,_s(r,[r._allTables,r,r.Transaction.prototype]),Wn(r,[r._allTables,r,r.Transaction.prototype,this._cfg.tables],pe(s),s),r._storeNames=pe(s),this}upgrade(e){return this._cfg.contentUpgrade=qi(this._cfg.contentUpgrade||ne,e),this}};function hd(t){return tn(va.prototype,function(r){this.db=t,this._cfg={version:r,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})}function Cs(t,e){let r=t._dbNamesDB;return r||(r=t._dbNamesDB=new lt(Kn,{addons:[],indexedDB:t,IDBKeyRange:e}),r.version(1).stores({dbnames:"name"})),r.table("dbnames")}function As(t){return t&&typeof t.databases=="function"}function pd({indexedDB:t,IDBKeyRange:e}){return As(t)?Promise.resolve(t.databases()).then(r=>r.map(n=>n.name).filter(n=>n!==Kn)):Cs(t,e).toCollection().primaryKeys()}function md({indexedDB:t,IDBKeyRange:e},r){!As(t)&&r!==Kn&&Cs(t,e).put({name:r}).catch(ne)}function gd({indexedDB:t,IDBKeyRange:e},r){!As(t)&&r!==Kn&&Cs(t,e).delete(r).catch(ne)}function Fs(t){return yt(function(){return K.letThrough=!0,t()})}function yd(){var t=!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent);if(!t||!indexedDB.databases)return Promise.resolve();var e;return new Promise(function(r){var n=function(){return indexedDB.databases().finally(r)};e=setInterval(n,100),n()}).finally(function(){return clearInterval(e)})}function vd(t){let e=t._state,{indexedDB:r}=t._deps;if(e.isBeingOpened||t.idbdb)return e.dbReadyPromise.then(()=>e.dbOpenError?ye(e.dbOpenError):t);Je&&(e.openCanceller._stackHolder=Kt()),e.isBeingOpened=!0,e.dbOpenError=null,e.openComplete=!1;let n=e.openCanceller;function i(){if(e.openCanceller!==n)throw new V.DatabaseClosed("db.open() was cancelled")}let s=e.dbReadyResolve,o=null,a=!1;return M.race([n,(typeof navigator=="undefined"?M.resolve():yd()).then(()=>new M((u,l)=>{if(i(),!r)throw new V.MissingAPI;let f=t.name,p=e.autoSchema?r.open(f):r.open(f,Math.round(t.verno*10));if(!p)throw new V.MissingAPI;p.onerror=Xe(l),p.onblocked=oe(t._fireOnBlocked),p.onupgradeneeded=oe(c=>{if(o=p.transaction,e.autoSchema&&!t._options.allowEmptyDB){p.onerror=rn,o.abort(),p.result.close();let w=r.deleteDatabase(f);w.onsuccess=w.onerror=oe(()=>{l(new V.NoSuchDatabase(`Database ${f} doesnt exist`))})}else{o.onerror=Xe(l);var h=c.oldVersion>Math.pow(2,62)?0:c.oldVersion;a=h<1,t._novip.idbdb=p.result,od(t,h/10,o,l)}},l),p.onsuccess=oe(()=>{o=null;let c=t._novip.idbdb=p.result,h=An(c.objectStoreNames);if(h.length>0)try{let w=c.transaction(Zf(h),"readonly");e.autoSchema?cd(t,c,w):(js(t,t._dbSchema,w),fd(t,w)||console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")),vs(t,w)}catch{}Zr.push(t),c.onversionchange=oe(w=>{e.vcFired=!0,t.on("versionchange").fire(w)}),c.onclose=oe(w=>{t.on("close").fire(w)}),a&&md(t._deps,f),u()},l)}))]).then(()=>(i(),e.onReadyBeingFired=[],M.resolve(Fs(()=>t.on.ready.fire(t.vip))).then(function u(){if(e.onReadyBeingFired.length>0){let l=e.onReadyBeingFired.reduce(qi,ne);return e.onReadyBeingFired=[],M.resolve(Fs(()=>l(t.vip))).then(u)}}))).finally(()=>{e.onReadyBeingFired=null,e.isBeingOpened=!1}).then(()=>t).catch(u=>{e.dbOpenError=u;try{o&&o.abort()}catch{}return n===e.openCanceller&&t._close(),ye(u)}).finally(()=>{e.openComplete=!0,s()})}function Ss(t){var e=o=>t.next(o),r=o=>t.throw(o),n=s(e),i=s(r);function s(o){return a=>{var u=o(a),l=u.value;return u.done?l:!l||typeof l.then!="function"?Ie(l)?Promise.all(l).then(n,i):n(l):l.then(n,i)}}return s(e)()}function _d(t,e,r){var n=arguments.length;if(n<2)throw new V.InvalidArgument("Too few arguments");for(var i=new Array(n-1);--n;)i[n-1]=arguments[n];r=i.pop();var s=Lo(i);return[t,s,r]}function _a(t,e,r,n,i){return M.resolve().then(()=>{let s=K.transless||K,o=t._createTransaction(e,r,t._dbSchema,n),a={trans:o,transless:s};if(n)o.idbtrans=n.idbtrans;else try{o.create(),t._state.PR1398_maxLoop=3}catch(p){return p.name===Qi.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>_a(t,e,r,null,i))):ye(p)}let u=Wi(i);u&&hr();let l,f=M.follow(()=>{if(l=i.call(o,o),l)if(u){var p=st.bind(null,null);l.then(p,p)}else typeof l.next=="function"&&typeof l.throw=="function"&&(l=Ss(l))},a);return(l&&typeof l.then=="function"?M.resolve(l).then(p=>o.active?p:ye(new V.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))):f.then(()=>l)).then(p=>(n&&o._resolve(),o._completion.then(()=>p))).catch(p=>(o._reject(p),ye(p)))})}function Un(t,e,r){let n=Ie(t)?t.slice():[t];for(let i=0;i0,m=Oe(ue({},w),{isVirtual:_,keyTail:h,keyLength:d,extractKey:ys(c),unique:!_&&w.unique});if(b.push(m),m.isPrimaryKey||s.push(m),d>1){let g=d===2?c[0]:c.slice(0,d-1);o(g,h+1,w)}return b.sort((g,v)=>g.keyTail-v.keyTail),m}let a=o(n.primaryKey.keyPath,0,n.primaryKey);i[":id"]=[a];for(let c of n.indexes)o(c.keyPath,0,c);function u(c){let h=i[on(c)];return h&&h[0]}function l(c,h){return{type:c.type===1?2:c.type,lower:Un(c.lower,c.lowerOpen?t.MAX_KEY:t.MIN_KEY,h),lowerOpen:!0,upper:Un(c.upper,c.upperOpen?t.MIN_KEY:t.MAX_KEY,h),upperOpen:!0}}function f(c){let h=c.query.index;return h.isVirtual?Oe(ue({},c),{query:{index:h,range:l(c.query.range,h.keyTail)}}):c}return Oe(ue({},r),{schema:Oe(ue({},n),{primaryKey:a,indexes:s,getIndexByKeyPath:u}),count(c){return r.count(f(c))},query(c){return r.query(f(c))},openCursor(c){let{keyTail:h,isVirtual:w,keyLength:x}=c.query.index;if(!w)return r.openCursor(c);function b(d){function _(g){g!=null?d.continue(Un(g,c.reverse?t.MAX_KEY:t.MIN_KEY,h)):c.unique?d.continue(d.key.slice(0,x).concat(c.reverse?t.MIN_KEY:t.MAX_KEY,h)):d.continue()}return Object.create(d,{continue:{value:_},continuePrimaryKey:{value(g,v){d.continuePrimaryKey(Un(g,t.MAX_KEY,h),v)}},primaryKey:{get(){return d.primaryKey}},key:{get(){let g=d.key;return x===1?g[0]:g.slice(0,x)}},value:{get(){return d.value}}})}return r.openCursor(f(c)).then(d=>d&&b(d))}})}})}var xd={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:bd};function Es(t,e,r,n){return r=r||{},n=n||"",pe(t).forEach(i=>{if(!He(e,i))r[n+i]=void 0;else{var s=t[i],o=e[i];if(typeof s=="object"&&typeof o=="object"&&s&&o){let a=Hi(s),u=Hi(o);a!==u?r[n+i]=e[i]:a==="Object"?Es(s,o,r,n+i+"."):s!==o&&(r[n+i]=e[i])}else s!==o&&(r[n+i]=e[i])}}),pe(e).forEach(i=>{He(t,i)||(r[n+i]=e[i])}),r}function wd(t,e){return e.type==="delete"?e.keys:e.keys||e.values.map(t.extractKey)}var jd={stack:"dbcore",name:"HooksMiddleware",level:2,create:t=>Oe(ue({},t),{table(e){let r=t.table(e),{primaryKey:n}=r.schema;return Oe(ue({},r),{mutate(s){let o=K.trans,{deleting:a,creating:u,updating:l}=o.table(e).hook;switch(s.type){case"add":if(u.fire===ne)break;return o._promise("readwrite",()=>f(s),!0);case"put":if(u.fire===ne&&l.fire===ne)break;return o._promise("readwrite",()=>f(s),!0);case"delete":if(a.fire===ne)break;return o._promise("readwrite",()=>f(s),!0);case"deleteRange":if(a.fire===ne)break;return o._promise("readwrite",()=>p(s),!0)}return r.mutate(s);function f(h){let w=K.trans,x=h.keys||wd(n,h);if(!x)throw new Error("Keys missing");return h=h.type==="add"||h.type==="put"?Oe(ue({},h),{keys:x}):ue({},h),h.type!=="delete"&&(h.values=[...h.values]),h.keys&&(h.keys=[...h.keys]),Cd(r,h,x).then(b=>{let d=x.map((_,m)=>{let g=b[m],v={onerror:null,onsuccess:null};if(h.type==="delete")a.fire.call(v,_,g,w);else if(h.type==="add"||g===void 0){let y=u.fire.call(v,_,h.values[m],w);_==null&&y!=null&&(_=y,h.keys[m]=_,n.outbound||Qe(h.values[m],n.keyPath,_))}else{let y=Es(g,h.values[m]),j=l.fire.call(v,y,_,g,w);if(j){let C=h.values[m];Object.keys(j).forEach(F=>{He(C,F)?C[F]=j[F]:Qe(C,F,j[F])})}}return v});return r.mutate(h).then(({failures:_,results:m,numFailures:g,lastResult:v})=>{for(let y=0;y(d.forEach(m=>m.onerror&&m.onerror(_)),Promise.reject(_)))})}function p(h){return c(h.trans,h.range,1e4)}function c(h,w,x){return r.query({trans:h,values:!1,query:{index:n,range:w},limit:x}).then(({result:b})=>f({type:"delete",keys:b,trans:h}).then(d=>d.numFailures>0?Promise.reject(d.failures[0]):b.length({table:e=>{let r=t.table(e);return Oe(ue({},r),{getMany:n=>{if(!n.cache)return r.getMany(n);let i=ba(n.keys,n.trans._cache,n.cache==="clone");return i?M.resolve(i):r.getMany(n).then(s=>(n.trans._cache={keys:n.keys,values:n.cache==="clone"?Wr(s):s},s))},mutate:n=>(n.type!=="add"&&(n.trans._cache=null),r.mutate(n))})}})};function Ds(t){return!("from"in t)}var at=function(t,e){if(this)Me(this,arguments.length?{d:1,from:t,to:arguments.length>1?e:t}:{d:0});else{let r=new at;return t&&"d"in t&&Me(r,t),r}};lr(at.prototype,{add(t){return Gn(this,t),this},addKey(t){return an(this,t,t),this},addKeys(t){return t.forEach(e=>an(this,e,e)),this},[$i](){return Ts(this)}});function an(t,e,r){let n=Re(e,r);if(isNaN(n))return;if(n>0)throw RangeError();if(Ds(t))return Me(t,{from:e,to:r,d:1});let i=t.l,s=t.r;if(Re(r,t.from)<0)return i?an(i,e,r):t.l={from:e,to:r,d:1,l:null,r:null},xa(t);if(Re(e,t.to)>0)return s?an(s,e,r):t.r={from:e,to:r,d:1,l:null,r:null},xa(t);Re(e,t.from)<0&&(t.from=e,t.l=null,t.d=s?s.d+1:1),Re(r,t.to)>0&&(t.to=r,t.r=null,t.d=t.l?t.l.d+1:1);let o=!t.r;i&&!t.l&&Gn(t,i),s&&o&&Gn(t,s)}function Gn(t,e){function r(n,{from:i,to:s,l:o,r:a}){an(n,i,s),o&&r(n,o),a&&r(n,a)}Ds(e)||r(t,e)}function Fd(t,e){let r=Ts(e),n=r.next();if(n.done)return!1;let i=n.value,s=Ts(t),o=s.next(i.from),a=o.value;for(;!n.done&&!o.done;){if(Re(a.from,i.to)<=0&&Re(a.to,i.from)>=0)return!0;Re(i.from,a.from)<0?i=(n=r.next(a.from)).value:a=(o=s.next(i.from)).value}return!1}function Ts(t){let e=Ds(t)?null:{s:0,n:t};return{next(r){let n=arguments.length>0;for(;e;)switch(e.s){case 0:if(e.s=1,n)for(;e.n.l&&Re(r,e.n.from)<0;)e={up:e,n:e.n.l,s:1};else for(;e.n.l;)e={up:e,n:e.n.l,s:1};case 1:if(e.s=2,!n||Re(r,e.n.to)<=0)return{value:e.n,done:!1};case 2:if(e.n.r){e.s=3,e={up:e,n:e.n.r,s:0};continue}case 3:e=e.up}return{done:!0}}}}function xa(t){var e,r;let n=(((e=t.r)===null||e===void 0?void 0:e.d)||0)-(((r=t.l)===null||r===void 0?void 0:r.d)||0),i=n>1?"r":n<-1?"l":"";if(i){let s=i==="r"?"l":"r",o=ue({},t),a=t[i];t.from=a.from,t.to=a.to,t[i]=a[i],o[i]=a[s],t[s]=o,o.d=wa(o)}t.d=wa(t)}function wa({r:t,l:e}){return(t?e?Math.max(t.d,e.d):t.d:e?e.d:0)+1}var Sd={stack:"dbcore",level:0,create:t=>{let e=t.schema.name,r=new at(t.MIN_KEY,t.MAX_KEY);return Oe(ue({},t),{table:n=>{let i=t.table(n),{schema:s}=i,{primaryKey:o}=s,{extractKey:a,outbound:u}=o,l=Oe(ue({},i),{mutate:c=>{let h=c.trans,w=h.mutatedParts||(h.mutatedParts={}),x=y=>{let j=`idb://${e}/${n}/${y}`;return w[j]||(w[j]=new at)},b=x(""),d=x(":dels"),{type:_}=c,[m,g]=c.type==="deleteRange"?[c.range]:c.type==="delete"?[c.keys]:c.values.length<50?[[],c.values]:[],v=c.trans._cache;return i.mutate(c).then(y=>{if(Ie(m)){_!=="delete"&&(m=y.results),b.addKeys(m);let j=ba(m,v);!j&&_!=="add"&&d.addKeys(m),(j||g)&&Ed(x,s,j,g)}else if(m){let j={from:m.lower,to:m.upper};d.add(j),b.add(j)}else b.add(r),d.add(r),s.indexes.forEach(j=>x(j.name).add(r));return y})}}),f=({query:{index:c,range:h}})=>{var w,x;return[c,new at((w=h.lower)!==null&&w!==void 0?w:t.MIN_KEY,(x=h.upper)!==null&&x!==void 0?x:t.MAX_KEY)]},p={get:c=>[o,new at(c.key)],getMany:c=>[o,new at().addKeys(c.keys)],count:f,query:f,openCursor:f};return pe(p).forEach(c=>{l[c]=function(h){let{subscr:w}=K;if(w){let x=g=>{let v=`idb://${e}/${n}/${g}`;return w[v]||(w[v]=new at)},b=x(""),d=x(":dels"),[_,m]=p[c](h);if(x(_.name||"").add(m),!_.isPrimaryKey)if(c==="count")d.add(r);else{let g=c==="query"&&u&&h.values&&i.query(Oe(ue({},h),{values:!1}));return i[c].apply(this,arguments).then(v=>{if(c==="query"){if(u&&h.values)return g.then(({result:j})=>(b.addKeys(j),v));let y=h.values?v.result.map(a):v.result;h.values?b.addKeys(y):d.addKeys(y)}else if(c==="openCursor"){let y=v,j=h.values;return y&&Object.create(y,{key:{get(){return d.addKey(y.primaryKey),y.key}},primaryKey:{get(){let C=y.primaryKey;return d.addKey(C),C}},value:{get(){return j&&b.addKey(y.primaryKey),y.value}}})}return v})}}return i[c].apply(this,arguments)}}),l}})}};function Ed(t,e,r,n){function i(s){let o=t(s.name||"");function a(l){return l!=null?s.extractKey(l):null}let u=l=>s.multiEntry&&Ie(l)?l.forEach(f=>o.addKey(f)):o.addKey(l);(r||n).forEach((l,f)=>{let p=r&&a(r[f]),c=n&&a(n[f]);Re(p,c)!==0&&(p!=null&&u(p),c!=null&&u(c))})}e.indexes.forEach(i)}var lt=class{constructor(e,r){this._middlewares={},this.verno=0;let n=lt.dependencies;this._options=r=ue({addons:lt.addons,autoOpen:!0,indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange},r),this._deps={indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange};let{addons:i}=r;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;let s={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:ne,dbReadyPromise:null,cancelOpen:ne,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};s.dbReadyPromise=new M(o=>{s.dbReadyResolve=o}),s.openCanceller=new M((o,a)=>{s.cancelOpen=a}),this._state=s,this.name=e,this.on=en(this,"populate","blocked","versionchange","close",{ready:[qi,ne]}),this.on.ready.subscribe=Oo(this.on.ready.subscribe,o=>(a,u)=>{lt.vip(()=>{let l=this._state;if(l.openComplete)l.dbOpenError||M.resolve().then(a),u&&o(a);else if(l.onReadyBeingFired)l.onReadyBeingFired.push(a),u&&o(a);else{o(a);let f=this;u||o(function p(){f.on.ready.unsubscribe(a),f.on.ready.unsubscribe(p)})}})}),this.Collection=Wf(this),this.Table=zf(this),this.Transaction=Xf(this),this.Version=hd(this),this.WhereClause=Jf(this),this.on("versionchange",o=>{o.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()}),this.on("blocked",o=>{!o.newVersion||o.newVersionnew this.Transaction(o,a,u,this._options.chromeTransactionDurability,l),this._fireOnBlocked=o=>{this.on("blocked").fire(o),Zr.filter(a=>a.name===this.name&&a!==this&&!a._state.vcFired).map(a=>a.on("versionchange").fire(o))},this.use(xd),this.use(jd),this.use(Sd),this.use(Ad),this.vip=Object.create(this,{_vip:{value:!0}}),i.forEach(o=>o(this))}version(e){if(isNaN(e)||e<.1)throw new V.Type("Given version is not a positive number");if(e=Math.round(e*10)/10,this.idbdb||this._state.isBeingOpened)throw new V.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,e);let r=this._versions;var n=r.filter(i=>i._cfg.version===e)[0];return n||(n=new this.Version(e),r.push(n),r.sort(sd),n.stores({}),this._state.autoSchema=!1,n)}_whenReady(e){return this.idbdb&&(this._state.openComplete||K.letThrough||this._vip)?e():new M((r,n)=>{if(this._state.openComplete)return n(new V.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen){n(new V.DatabaseClosed);return}this.open().catch(ne)}this._state.dbReadyPromise.then(r,n)}).then(e)}use({stack:e,create:r,level:n,name:i}){i&&this.unuse({stack:e,name:i});let s=this._middlewares[e]||(this._middlewares[e]=[]);return s.push({stack:e,create:r,level:n??10,name:i}),s.sort((o,a)=>o.level-a.level),this}unuse({stack:e,name:r,create:n}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter(i=>n?i.create!==n:r?i.name!==r:!1)),this}open(){return vd(this)}_close(){let e=this._state,r=Zr.indexOf(this);if(r>=0&&Zr.splice(r,1),this.idbdb){try{this.idbdb.close()}catch{}this._novip.idbdb=null}e.dbReadyPromise=new M(n=>{e.dbReadyResolve=n}),e.openCanceller=new M((n,i)=>{e.cancelOpen=i})}close(){this._close();let e=this._state;this._options.autoOpen=!1,e.dbOpenError=new V.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){let e=arguments.length>0,r=this._state;return new M((n,i)=>{let s=()=>{this.close();var o=this._deps.indexedDB.deleteDatabase(this.name);o.onsuccess=oe(()=>{gd(this._deps,this.name),n()}),o.onerror=Xe(i),o.onblocked=this._fireOnBlocked};if(e)throw new V.InvalidArgument("Arguments not allowed in db.delete()");r.isBeingOpened?r.dbReadyPromise.then(s):s()})}backendDB(){return this.idbdb}isOpen(){return this.idbdb!==null}hasBeenClosed(){let e=this._state.dbOpenError;return e&&e.name==="DatabaseClosed"}hasFailed(){return this._state.dbOpenError!==null}dynamicallyOpened(){return this._state.autoSchema}get tables(){return pe(this._allTables).map(e=>this._allTables[e])}transaction(){let e=_d.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,r,n){let i=K.trans;(!i||i.db!==this||e.indexOf("!")!==-1)&&(i=null);let s=e.indexOf("?")!==-1;e=e.replace("!","").replace("?","");let o,a;try{if(a=r.map(l=>{var f=l instanceof this.Table?l.name:l;if(typeof f!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return f}),e=="r"||e===cs)o=cs;else if(e=="rw"||e==fs)o=fs;else throw new V.InvalidArgument("Invalid transaction mode: "+e);if(i){if(i.mode===cs&&o===fs)if(s)i=null;else throw new V.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");i&&a.forEach(l=>{if(i&&i.storeNames.indexOf(l)===-1)if(s)i=null;else throw new V.SubTransaction("Table "+l+" not included in parent transaction.")}),s&&i&&!i.active&&(i=null)}}catch(l){return i?i._promise(null,(f,p)=>{p(l)}):ye(l)}let u=_a.bind(null,this,o,a,i,n);return i?i._promise(o,u,"lock"):K.trans?pr(K.transless,()=>this._whenReady(u)):this._whenReady(u)}table(e){if(!He(this._allTables,e))throw new V.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}},Dd=typeof Symbol!="undefined"&&"observable"in Symbol?Symbol.observable:"@@observable",ja=class{constructor(e){this._subscribe=e}subscribe(e,r,n){return this._subscribe(!e||typeof e=="function"?{next:e,error:r,complete:n}:e)}[Dd](){return this}};function Ca(t,e){return pe(e).forEach(r=>{let n=t[r]||(t[r]=new at);Gn(n,e[r])}),t}function Td(t){return new ja(e=>{let r=Wi(t);function n(h){r&&hr();let w=()=>yt(t,{subscr:h,trans:null}),x=K.trans?pr(K.transless,w):w();return r&&x.then(st,st),x}let i=!1,s={},o={},a={get closed(){return i},unsubscribe:()=>{i=!0,xt.storagemutated.unsubscribe(p)}};e.start&&e.start(a);let u=!1,l=!1;function f(){return pe(o).some(h=>s[h]&&Fd(s[h],o[h]))}let p=h=>{Ca(s,h),f()&&c()},c=()=>{if(u||i)return;s={};let h={},w=n(h);l||(xt(nn,p),l=!0),u=!0,Promise.resolve(w).then(x=>{u=!1,!i&&(f()?c():(s={},o=h,e.next&&e.next(x)))},x=>{u=!1,e.error&&e.error(x),a.unsubscribe()})};return c(),a})}var Is;try{Is={indexedDB:ie.indexedDB||ie.mozIndexedDB||ie.webkitIndexedDB||ie.msIndexedDB,IDBKeyRange:ie.IDBKeyRange||ie.webkitIDBKeyRange}}catch{Is={indexedDB:null,IDBKeyRange:null}}var Ut=lt;lr(Ut,Oe(ue({},Sn),{delete(t){return new Ut(t,{addons:[]}).delete()},exists(t){return new Ut(t,{addons:[]}).open().then(e=>(e.close(),!0)).catch("NoSuchDatabaseError",()=>!1)},getDatabaseNames(t){try{return pd(Ut.dependencies).then(t)}catch{return ye(new V.MissingAPI)}},defineClass(){function t(e){Me(this,e)}return t},ignoreTransaction(t){return K.trans?pr(K.transless,t):t()},vip:Fs,async:function(t){return function(){try{var e=Ss(t.apply(this,arguments));return!e||typeof e.then!="function"?M.resolve(e):e}catch(r){return ye(r)}}},spawn:function(t,e,r){try{var n=Ss(t.apply(r,e||[]));return!n||typeof n.then!="function"?M.resolve(n):n}catch(i){return ye(i)}},currentTransaction:{get:()=>K.trans||null},waitFor:function(t,e){let r=M.resolve(typeof t=="function"?Ut.ignoreTransaction(t):t).timeout(e||6e4);return K.trans?K.trans.waitFor(r):r},Promise:M,debug:{get:()=>Je,set:t=>{No(t,t==="dexie"?()=>!0:ia)}},derive:ur,extend:Me,props:lr,override:Oo,Events:en,on:xt,liveQuery:Td,extendObservabilitySet:Ca,getByKeyPath:nt,setByKeyPath:Qe,delByKeyPath:hf,shallowClone:Ro,deepClone:Wr,getObjectDiff:Es,cmp:Re,asap:Po,minKey:us,addons:[],connections:Zr,errnames:Qi,dependencies:Is,semVer:ra,version:ra.split(".").map(t=>parseInt(t)).reduce((t,e,r)=>t+e/Math.pow(10,r*2))}));Ut.maxKey=sn(Ut.dependencies.IDBKeyRange);typeof dispatchEvent!="undefined"&&typeof addEventListener!="undefined"&&(xt(nn,t=>{if(!ut){let e;Nn?(e=document.createEvent("CustomEvent"),e.initCustomEvent(bt,!0,!0,t)):e=new CustomEvent(bt,{detail:t}),ut=!0,dispatchEvent(e),ut=!1}}),addEventListener(bt,({detail:t})=>{ut||Qn(t)}));function Qn(t){let e=ut;try{ut=!0,xt.storagemutated.fire(t)}finally{ut=e}}var ut=!1;if(typeof BroadcastChannel!="undefined"){let t=new BroadcastChannel(bt);xt(nn,e=>{ut||t.postMessage(e)}),t.onmessage=e=>{e.data&&Qn(e.data)}}else if(typeof self!="undefined"&&typeof navigator!="undefined"){xt(nn,e=>{try{ut||(typeof localStorage!="undefined"&&localStorage.setItem(bt,JSON.stringify({trig:Math.random(),changedParts:e})),typeof self.clients=="object"&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(r=>r.postMessage({type:bt,changedParts:e})))}catch{}}),typeof addEventListener!="undefined"&&addEventListener("storage",e=>{if(e.key===bt){let r=JSON.parse(e.newValue);r&&Qn(r.changedParts)}});let t=self.document&&navigator.serviceWorker;t&&t.addEventListener("message",Id)}function Id({data:t}){t&&t.type===bt&&Qn(t.changedParts)}M.rejectionMapper=wf;No(Je,ia);var Aa=Fe(require("obsidian")),Ze=class extends lt{constructor(){super(Ze.dbName);this.version(Ze.dbVersion).stores({searchHistory:"++id",minisearch:"date"})}static async clearOldDatabases(){let e=(await indexedDB.databases()).filter(r=>r.name===Ze.dbName&&r.version!==Ze.dbVersion*10);if(e.length){console.log("Omnisearch - Those IndexedDb databases will be deleted:");for(let r of e)r.name&&indexedDB.deleteDatabase(r.name)}}static getInstance(){return Ze.instance||(Ze.instance=new Ze),Ze.instance}async clearCache(){new Aa.Notice("Omnisearch - Cache cleared. Please restart Obsidian."),await this.minisearch.clear()}},yr=Ze;yr.dbVersion=8,yr.dbName="omnisearch/cache/"+app.appId;var we=yr.getInstance();var Gt=Cn(!1),qn='Needs a restart to fully take effect.',ks=class extends q.PluginSettingTab{constructor(e){super(app,e);this.plugin=e,Gt.subscribe(async r=>{D.showExcerpt=r,await fe(this.plugin)})}display(){let{containerEl:e}=this;if(e.empty(),app.loadLocalStorage(ln)=="1"){let c=e.createEl("span");c.innerHTML='\u26A0\uFE0F OMNISEARCH IS DISABLED \u26A0\uFE0F'}e.createEl("h2",{text:"Omnisearch"});let r=e.createDiv();r.innerHTML=` Buy Me a Coffee at ko-fi.com - `,new Y.Setting(e).setName("Indexing").setHeading();let n=new DocumentFragment;et()?n.createSpan({},f=>{f.innerHTML=`\u{1F44D} You have installed Text Extractor, Omnisearch will use it to index PDFs and images. -
Text extraction only works on desktop, but the cache can be synchronized with your mobile device.`}):n.createSpan({},f=>{f.innerHTML='\u26A0\uFE0F Omnisearch requires Text Extractor to index PDFs and images.'}),new Y.Setting(e).setDesc(n);let i=new DocumentFragment;i.createSpan({},f=>{f.innerHTML="Include PDFs in search results"}),new Y.Setting(e).setName(`PDFs Indexing ${et()?"":"\u26A0\uFE0F Disabled"}`).setDesc(i).addToggle(f=>f.setValue(I.PDFIndexing).onChange(async c=>{I.PDFIndexing=c,await pe(this.plugin)})).setDisabled(!et());let o=new DocumentFragment;o.createSpan({},f=>{f.innerHTML="Include images in search results"}),new Y.Setting(e).setName(`Images Indexing ${et()?"":"\u26A0\uFE0F Disabled"}`).setDesc(o).addToggle(f=>f.setValue(I.imagesIndexing).onChange(async c=>{I.imagesIndexing=c,await pe(this.plugin)})).setDisabled(!et());let s=new DocumentFragment;s.createSpan({},f=>{f.innerHTML=`In addition to standard md files, Omnisearch can also index other plaintext files.
- Add extensions separated by a space, without the dot. Example: "txt org".
+ `;let n=new DocumentFragment;n.createSpan({},c=>{c.innerHTML='\u26A0\uFE0F Changing indexing settings will clear the cache, and requires a restart of Obsidian.

',et()?c.innerHTML+=` + \u{1F44D} You have installed Text Extractor, Omnisearch can use it to index PDFs and images contents. +
Text extraction only works on desktop, but the cache can be synchronized with your mobile device.`:c.innerHTML+='\u26A0\uFE0F Omnisearch requires Text Extractor to index PDFs and images.'}),new q.Setting(e).setName("Indexing").setHeading().setDesc(n);let i=new DocumentFragment;i.createSpan({},c=>{c.innerHTML="Omnisearch will use Text Extractor to index the content of your PDFs"}),new q.Setting(e).setName(`PDFs content indexing ${et()?"":"\u26A0\uFE0F Disabled"}`).setDesc(i).addToggle(c=>c.setValue(D.PDFIndexing).onChange(async h=>{await we.clearCache(),D.PDFIndexing=h,await fe(this.plugin)})).setDisabled(!et());let s=new DocumentFragment;s.createSpan({},c=>{c.innerHTML="Omnisearch will use Text Extractor to OCR your images and index their content"}),new q.Setting(e).setName(`Images OCR indexing ${et()?"":"\u26A0\uFE0F Disabled"}`).setDesc(s).addToggle(c=>c.setValue(D.imagesIndexing).onChange(async h=>{await we.clearCache(),D.imagesIndexing=h,await fe(this.plugin)})).setDisabled(!et());let o=new DocumentFragment;o.createSpan({},c=>{c.innerHTML=` + Omnisearch can index filenames of "unsupported" files, such as e.g.
.mp4
,
.xlsx
, + or non-extracted PDFs & images.
+ "Obsidian setting" will respect the value of "Files & Links > Detect all file extensions"`}),new q.Setting(e).setName("Index paths of unsupported files").setDesc(o).addDropdown(c=>{c.addOptions({yes:"Yes",no:"No",default:"Obsidian setting"}).setValue(D.unsupportedFilesIndexing).onChange(async h=>{await we.clearCache(),D.unsupportedFilesIndexing=h,await fe(this.plugin)})});let a=new DocumentFragment;a.createSpan({},c=>{c.innerHTML=`In addition to standard md files, Omnisearch can also index other PLAINTEXT files.
+ Add extensions separated by a space, without the dot. Example: "txt org csv".
\u26A0\uFE0F Using extensions of non-plaintext files (like .docx or .pptx) WILL cause crashes, - because Omnisearch will try to index their content.
- ${sn}`}),new Y.Setting(e).setName("Additional files to index").setDesc(s).addText(f=>{f.setValue(I.indexedFileTypes.join(" ")).setPlaceholder("Example: txt org").onChange(async c=>{I.indexedFileTypes=c.split(" "),await pe(this.plugin)})}),new Y.Setting(e).setName("Behavior").setHeading(),new Y.Setting(e).setName("Save index to cache").setDesc("Enable caching to speed up indexing time. In rare cases, the cache write may cause a freeze in Obsidian. This option will disable itself if it happens.").addToggle(f=>f.setValue(I.useCache).onChange(async c=>{I.useCache=c,await pe(this.plugin)})),new Y.Setting(e).setName(`Respect Obsidian's "Excluded Files"`).setDesc(`By default, files that are in Obsidian's "Options > Files & Links > Excluded Files" list are downranked in results. - Enable this option to completely hide them`).addToggle(f=>f.setValue(I.hideExcluded).onChange(async c=>{I.hideExcluded=c,await pe(this.plugin)}));let a=new DocumentFragment;a.createSpan({},f=>{f.innerHTML=`Normalize diacritics in search terms. Words like "br\xFBl\xE9e" or "\u017Elu\u0165ou\u010Dk\xFD" will be indexed as "brulee" and "zlutoucky".
+ because Omnisearch will try to index their content.`}),new q.Setting(e).setName("Additional TEXT files to index").setDesc(a).addText(c=>{c.setValue(D.indexedFileTypes.join(" ")).setPlaceholder("Example: txt org csv").onChange(async h=>{await we.clearCache(),D.indexedFileTypes=h.split(" "),await fe(this.plugin)})}),new q.Setting(e).setName("Behavior").setHeading(),new q.Setting(e).setName("Save index to cache").setDesc("Enable caching to speed up indexing time. In rare cases, the cache write may cause a crash in Obsidian. This option will disable itself if it happens.").addToggle(c=>c.setValue(D.useCache).onChange(async h=>{D.useCache=h,await fe(this.plugin)})),new q.Setting(e).setName(`Respect Obsidian's "Excluded Files"`).setDesc(`By default, files that are in Obsidian's "Options > Files & Links > Excluded Files" list are downranked in results. + Enable this option to completely hide them`).addToggle(c=>c.setValue(D.hideExcluded).onChange(async h=>{D.hideExcluded=h,await fe(this.plugin)}));let u=new DocumentFragment;u.createSpan({},c=>{c.innerHTML=`Enable this if you want to be able to search for CamelCaseWords as separate words.
+ \u26A0\uFE0F Changing this setting will clear the cache.
+ ${qn} + `}),new q.Setting(e).setName("Split CamelCaseWords").setDesc(u).addToggle(c=>c.setValue(D.splitCamelCase).onChange(async h=>{await we.clearCache(),D.splitCamelCase=h,await fe(this.plugin)})),new q.Setting(e).setName("Simpler search").setDesc(`Enable this if Obsidian often freezes while making searches. + Words shorter than 3 characters won't be used as prefixes; this can reduce search delay but will return fewer results.`).addToggle(c=>c.setValue(D.simpleSearch).onChange(async h=>{D.simpleSearch=h,await fe(this.plugin)})),new q.Setting(e).setName("Open in new pane").setDesc("Open and create files in a new pane instead of the current pane.").addToggle(c=>c.setValue(D.openInNewPane).onChange(async h=>{D.openInNewPane=h,await fe(this.plugin)})),new q.Setting(e).setName("Fuzziness").setDesc("Define the level of fuzziness for the search. The higher the fuzziness, the more results you'll get.").addDropdown(c=>c.addOptions({0:"Exact match",1:"Not too fuzzy",2:"Fuzzy enough"}).setValue(D.fuzziness).onChange(async h=>{["0","1","2"].includes(h)||(h="2"),D.fuzziness=h,await fe(this.plugin)})),new q.Setting(e).setName("User Interface").setHeading(),new q.Setting(e).setName("Show ribbon button").setDesc("Add a button on the sidebar to open the Vault search modal.").addToggle(c=>c.setValue(D.ribbonIcon).onChange(async h=>{D.ribbonIcon=h,await fe(this.plugin),h?this.plugin.addRibbonButton():this.plugin.removeRibbonButton()})),new q.Setting(e).setName("Show excerpts").setDesc("Shows the contextual part of the note that matches the search. Disable this to only show filenames in results.").addToggle(c=>c.setValue(D.showExcerpt).onChange(async h=>{Gt.set(h)})),new q.Setting(e).setName("Render line return in excerpts").setDesc("Activate this option to render line returns in result excerpts.").addToggle(c=>c.setValue(D.renderLineReturnInExcerpts).onChange(async h=>{D.renderLineReturnInExcerpts=h,await fe(this.plugin)})),new q.Setting(e).setName("Show previous query results").setDesc("Re-executes the previous query when opening Omnisearch.").addToggle(c=>c.setValue(D.showPreviousQueryResults).onChange(async h=>{D.showPreviousQueryResults=h,await fe(this.plugin)}));let l=new DocumentFragment;l.createSpan({},c=>{c.innerHTML=`Shows a button next to the search input, to create a note. + Acts the same as the shift \u21B5 shortcut, can be useful for mobile device users.`}),new q.Setting(e).setName('Show "Create note" button').setDesc(l).addToggle(c=>c.setValue(D.showCreateButton).onChange(async h=>{D.showCreateButton=h,await fe(this.plugin)})),new q.Setting(e).setName("Highlight matching words in results").setDesc("Will highlight matching results when enabled. See README for more customization options.").addToggle(c=>c.setValue(D.highlight).onChange(async h=>{D.highlight=h,await fe(this.plugin)})),new q.Setting(e).setName("Results weighting").setHeading(),new q.Setting(e).setName(`File name & declared aliases (default: ${wt.weightBasename})`).addSlider(c=>this.weightSlider(c,"weightBasename")),new q.Setting(e).setName(`File directory (default: ${wt.weightDirectory})`).addSlider(c=>this.weightSlider(c,"weightDirectory")),new q.Setting(e).setName(`Headings level 1 (default: ${wt.weightH1})`).addSlider(c=>this.weightSlider(c,"weightH1")),new q.Setting(e).setName(`Headings level 2 (default: ${wt.weightH2})`).addSlider(c=>this.weightSlider(c,"weightH2")),new q.Setting(e).setName(`Headings level 3 (default: ${wt.weightH3})`).addSlider(c=>this.weightSlider(c,"weightH3")),new q.Setting(e).setName(`Tags without the # (default: ${wt.weightUnmarkedTags})`).addSlider(c=>this.weightSlider(c,"weightUnmarkedTags")),new q.Setting(e).setName("Debugging").setHeading(),new q.Setting(e).setName("Enable verbose logging").setDesc("Adds a LOT of logs for debugging purposes. Don't forget to disable it.").addToggle(c=>c.setValue(D.verboseLogging).onChange(async h=>{D.verboseLogging=h,await fe(this.plugin)})),new q.Setting(e).setName("Danger Zone").setHeading();let f=new DocumentFragment;f.createSpan({},c=>{c.innerHTML=`Normalize diacritics in search terms. Words like "br\xFBl\xE9e" or "\u017Elu\u0165ou\u010Dk\xFD" will be indexed as "brulee" and "zlutoucky".
\u26A0\uFE0F You probably should NOT disable this.
\u26A0\uFE0F Changing this setting will clear the cache.
- ${sn} - `}),new Y.Setting(e).setName("Ignore diacritics").setDesc(a).addToggle(f=>f.setValue(I.ignoreDiacritics).onChange(async c=>{await Be.clearCache(),I.ignoreDiacritics=c,await pe(this.plugin)}));let l=new DocumentFragment;l.createSpan({},f=>{f.innerHTML=`Enable this if you want to be able to search for CamelCaseWords as separate words.
- \u26A0\uFE0F Changing this setting will clear the cache.
- ${sn} - `}),new Y.Setting(e).setName("Split CamelCaseWords").setDesc(l).addToggle(f=>f.setValue(I.splitCamelCase).onChange(async c=>{await Be.clearCache(),I.splitCamelCase=c,await pe(this.plugin)})),new Y.Setting(e).setName("Simpler search").setDesc(`Enable this if Obsidian often freezes while making searches. - Words shorter than 3 characters won't be used as prefixes; this can reduce search delay but will return fewer results.`).addToggle(f=>f.setValue(I.simpleSearch).onChange(async c=>{I.simpleSearch=c,await pe(this.plugin)})),new Y.Setting(e).setName("Open in new pane").setDesc("Open and create files in a new pane instead of the current pane.").addToggle(f=>f.setValue(I.openInNewPane).onChange(async c=>{I.openInNewPane=c,await pe(this.plugin)})),new Y.Setting(e).setName("User Interface").setHeading(),new Y.Setting(e).setName("Show ribbon button").setDesc("Add a button on the sidebar to open the Vault search modal.").addToggle(f=>f.setValue(I.ribbonIcon).onChange(async c=>{I.ribbonIcon=c,await pe(this.plugin),c?this.plugin.addRibbonButton():this.plugin.removeRibbonButton()})),new Y.Setting(e).setName("Show excerpts").setDesc("Shows the contextual part of the note that matches the search. Disable this to only show filenames in results.").addToggle(f=>f.setValue(I.showExcerpt).onChange(async c=>{Ut.set(c)})),new Y.Setting(e).setName("Render line return in excerpts").setDesc("Activate this option to render line returns in result excerpts.").addToggle(f=>f.setValue(I.renderLineReturnInExcerpts).onChange(async c=>{I.renderLineReturnInExcerpts=c,await pe(this.plugin)})),new Y.Setting(e).setName("Show previous query results").setDesc("Re-executes the previous query when opening Omnisearch.").addToggle(f=>f.setValue(I.showPreviousQueryResults).onChange(async c=>{I.showPreviousQueryResults=c,await pe(this.plugin)}));let u=new DocumentFragment;u.createSpan({},f=>{f.innerHTML=`Shows a button next to the search input, to create a note. - Acts the same as the shift \u21B5 shortcut, can be useful for mobile device users.`}),new Y.Setting(e).setName('Show "Create note" button').setDesc(u).addToggle(f=>f.setValue(I.showCreateButton).onChange(async c=>{I.showCreateButton=c,await pe(this.plugin)})),new Y.Setting(e).setName("Highlight matching words in results").setDesc("Will highlight matching results when enabled. See README for more customization options.").addToggle(f=>f.setValue(I.highlight).onChange(async c=>{I.highlight=c,await pe(this.plugin)})),new Y.Setting(e).setName("Results weighting").setHeading(),new Y.Setting(e).setName(`File name & declared aliases (default: ${Gt.weightBasename})`).addSlider(f=>this.weightSlider(f,"weightBasename")),new Y.Setting(e).setName(`File directory (default: ${Gt.weightDirectory})`).addSlider(f=>this.weightSlider(f,"weightDirectory")),new Y.Setting(e).setName(`Headings level 1 (default: ${Gt.weightH1})`).addSlider(f=>this.weightSlider(f,"weightH1")),new Y.Setting(e).setName(`Headings level 2 (default: ${Gt.weightH2})`).addSlider(f=>this.weightSlider(f,"weightH2")),new Y.Setting(e).setName(`Headings level 3 (default: ${Gt.weightH3})`).addSlider(f=>this.weightSlider(f,"weightH3")),new Y.Setting(e).setName("Debugging").setHeading(),new Y.Setting(e).setName("Enable verbose logging").setDesc("Adds a LOT of logs for debugging purposes. Don't forget to disable it.").addToggle(f=>f.setValue(I.verboseLogging).onChange(async c=>{I.verboseLogging=c,await pe(this.plugin)})),new Y.Setting(e).setName("Danger Zone").setHeading();let d=new DocumentFragment;if(d.createSpan({},f=>{f.innerHTML=`Disable Omnisearch on this device only.
- ${sn}`}),new Y.Setting(e).setName("Disable on this device").setDesc(d).addToggle(f=>f.setValue(Oo()).onChange(async c=>{c?app.saveLocalStorage(an,"1"):app.saveLocalStorage(an),new Y.Notice("Omnisearch - Disabled. Please restart Obsidian.")})),wt()){let f=new DocumentFragment;f.createSpan({},c=>{c.innerHTML=`Erase all Omnisearch cache data. + ${qn} + `}),new q.Setting(e).setName("Ignore diacritics").setDesc(f).addToggle(c=>c.setValue(D.ignoreDiacritics).onChange(async h=>{await we.clearCache(),D.ignoreDiacritics=h,await fe(this.plugin)}));let p=new DocumentFragment;if(p.createSpan({},c=>{c.innerHTML=`Disable Omnisearch on this device only.
+ ${qn}`}),new q.Setting(e).setName("Disable on this device").setDesc(p).addToggle(c=>c.setValue(Os()).onChange(async h=>{h?app.saveLocalStorage(ln,"1"):app.saveLocalStorage(ln),new q.Notice("Omnisearch - Disabled. Please restart Obsidian.")})),jt()){let c=new DocumentFragment;c.createSpan({},h=>{h.innerHTML=`Erase all Omnisearch cache data. Use this if Omnisearch results are inconsistent, missing, or appear outdated.
- ${sn}`}),new Y.Setting(e).setName("Clear cache data").setDesc(f).addButton(c=>{c.setButtonText("Clear cache"),c.onClick(async()=>{await Be.clearCache(),new Y.Notice("Omnisearch - Cache cleared. Please restart Obsidian.")})})}}weightSlider(e,r){e.setLimits(1,5,.1).setValue(I[r]).setDynamicTooltip().onChange(n=>{I[r]=n,pe(this.plugin)})}},Gt={useCache:!0,hideExcluded:!1,ignoreDiacritics:!0,indexedFileTypes:[],PDFIndexing:!1,imagesIndexing:!1,splitCamelCase:!1,openInNewPane:!1,ribbonIcon:!0,showExcerpt:!0,renderLineReturnInExcerpts:!0,showCreateButton:!1,highlight:!0,showPreviousQueryResults:!0,simpleSearch:!1,weightBasename:3,weightDirectory:2,weightH1:1.5,weightH2:1.3,weightH3:1.1,welcomeMessage:"",verboseLogging:!1},I=Object.assign({},Gt);async function ja(t){I=Object.assign({},Gt,await t.loadData()),Ut.set(I.showExcerpt)}async function pe(t){await t.saveData(I)}function Oo(){return app.loadLocalStorage(an)=="1"}var Ca=Fe(require("obsidian"));var Aa=/[\u4e00-\u9fa5]/;var Sa=100,ln=300,Fa=`suggestion-highlight omnisearch-highlight ${I.highlight?"omnisearch-default-highlight":""}`,an="omnisearch-disabled",U=new Bi,qn={ToggleExcerpts:"toggle-excerpts"},We=(o=>(o[o.Done=0]="Done",o[o.LoadingCache=1]="LoadingCache",o[o.ReadingFiles=2]="ReadingFiles",o[o.IndexingFiles=3]="IndexingFiles",o[o.WritingCache=4]="WritingCache",o))(We||{});var jt=Cn(0),Ea=!1;function ko(t){Ea=t}function Da(){return Ea}function Yn(){return app.plugins.plugins["cm-chs-patch"]}function et(){return app.plugins?.plugins?.["text-extractor"]?.api}function wt(){return!Ca.Platform.isIosApp&&I.useCache}var Ct=/[|\n\r -#%-*,-/:;?@[-\]_{}\u00A0\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u1680\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2000-\u200A\u2010-\u2029\u202F-\u2043\u2045-\u2051\u2053-\u205F\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u3000-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]+/u;var za=Fe(require("obsidian"));var ct=Fe(require("obsidian"));var Ia=Fe(require("crypto")),Oa=Fe(Ta());function At(...t){return t[1]!==null&&t[1]!==void 0&&t[2]!==null&&t[2]!==void 0?`${t[1]}${t[2]}`:"<no content>"}function Fd(t){return t.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function ka(t){let e=t.split("/");return e.pop(),e.join("/")}function Ed(t){return t.replace(/[-/\\^$*+?.()|[\]{}]/g,"[$&]")}function St(t){if(!t.length)return/^$/g;let e="("+(Yn()?"":I.splitCamelCase?`^|${Ct.source}|[A-Z]`:`^|${Ct.source}`)+`)(${t.map(n=>Ed(n)).join("|")})`;return new RegExp(`${e}`,"giu")}function Jn(t,e){return t.headings?.filter(r=>r.level===e).map(r=>r.heading)??[]}function Xn(t,e){return(t+e)%e}function yr(t,e){try{let r=e??-1,n=Math.max(0,r-Sa),i=Math.min(t.length,r+ln);if(r>-1?t=(n>0?"\u2026":"")+t.slice(n,i).trim()+(ia).join(` -`);let s=t.lastIndexOf(` -`,r-n);s>0&&(t=t.slice(s))}return t=Fd(t),I.renderLineReturnInExcerpts&&(t=t.trim().replaceAll(` -`,"
")),t}catch(r){return new ct.Notice("Omnisearch - Error while creating excerpt, see developer console"),console.error("Omnisearch - Error while creating excerpt"),console.error(r),""}}function Mo(t){return t.replace(/(\*|_)+(.+?)(\*|_)+/g,(e,r,n)=>n)}function Pa(t){return t?.frontmatter?(0,ct.parseFrontMatterAliases)(t.frontmatter)??[]:[]}function Ma(t){let e=t?(0,ct.getAllTags)(t)??[]:[];return e=[...new Set(e.reduce((r,n)=>[...r,...n.split("/").filter(i=>i).map(i=>i.startsWith("#")?i:`#${i}`),n],[]))],e}function ft(t){return t==null?"":(t=t.replaceAll("`","[__omnisearch__backtick__]"),t=t.normalize("NFD").replace(/\p{Diacritic}/gu,""),t=t.replaceAll("[__omnisearch__backtick__]","`"),t)}function Qt(){return ct.Platform.isMacOS?"\u2318":"ctrl"}function cn(t){let e=!!et(),r=e&&I.PDFIndexing,n=e&&I.imagesIndexing;return Ro(t)||dn(t)||r&&fn(t)||n&&Zn(t)}function Zn(t){let e=qt(t);return e==="png"||e==="jpg"||e==="jpeg"}function fn(t){return qt(t)==="pdf"}function Ro(t){return[...I.indexedFileTypes,"md"].some(e=>t.endsWith(`.${e}`))}function dn(t){return t.endsWith(".canvas")}function qt(t){let e=t.split(".");return e[e.length-1]??""}function Ra(t){return ct.Platform.isMobileApp?(0,Oa.md5)(t.toString()):(0,Ia.createHash)("md5").update(t).digest("hex")}function La(t,e){let r=[],n=0,i=t.length;for(;no.path===t);if(!e)throw new Error(`Invalid file path: "${t}"`);let r=null,n=et();if(Ro(t))r=await app.vault.cachedRead(e);else if(dn(t)){let o=JSON.parse(await app.vault.cachedRead(e)),s=[];for(let a of o.nodes)a.type==="text"?s.push(a.text):a.type==="file"&&s.push(a.file);for(let a of o.edges.filter(l=>!!l.label))s.push(a.label);r=s.join(`\r -`)}else if(n?.canFileBeExtracted(t))r=await n.extractText(e);else throw new Error(`Unsupported file type: "${t}"`);r==null&&(console.warn(`Omnisearch: ${r} content for file`,e.path),r=""),r=ft(r);let i=app.metadataCache.getFileCache(e);if(i&&i.frontmatter?.["excalidraw-plugin"]){let o=i.sections?.filter(s=>s.type==="comment")??[];for(let{start:s,end:a}of o.map(l=>l.position))r=r.substring(0,s.offset-1)+r.substring(a.offset)}return{basename:ft(e.basename),content:r,path:e.path,mtime:e.stat.mtime,tags:Ma(i),aliases:Pa(i).join(""),headings1:i?Jn(i,1).join(" "):"",headings2:i?Jn(i,2).join(" "):"",headings3:i?Jn(i,3).join(" "):""}}var Va=class{constructor(){this.nextQueryIsEmpty=!1;this.documents=new Map}async addToLiveCache(e){try{let r=await Dd(e);if(!r.path){console.error(`Missing .path field in IndexedDocument "${r.basename}", skipping`);return}this.documents.set(e,r)}catch(r){console.warn(`Omnisearch: Error while adding "${e}" to live cache`,r),this.removeFromLiveCache(e)}}removeFromLiveCache(e){this.documents.delete(e)}async getDocument(e){return this.documents.has(e)?this.documents.get(e):(fe("Generating IndexedDocument from",e),await this.addToLiveCache(e),this.documents.get(e))}async addToSearchHistory(e){if(!e){this.nextQueryIsEmpty=!0;return}this.nextQueryIsEmpty=!1;let r=await Be.searchHistory.toArray();r=r.filter(n=>n.query!==e).reverse(),r.unshift({query:e}),r=r.slice(0,10),await Be.searchHistory.clear(),await Be.searchHistory.bulkAdd(r)}async getSearchHistory(){let e=(await Be.searchHistory.toArray()).reverse().map(r=>r.query);return this.nextQueryIsEmpty&&e.unshift(""),e}getDocumentsChecksum(e){return Ra(JSON.stringify(e.sort((r,n)=>r.pathn.path?1:0)))}async getMinisearchCache(){try{return(await Be.minisearch.toArray())[0]}catch(e){return new za.Notice("Omnisearch - Cache missing or invalid. Some freezes may occur while Omnisearch indexes your vault."),console.error("Omnisearch - Error while loading Minisearch cache"),console.error(e),null}}async writeMinisearchCache(e,r){let n=Array.from(r).map(([i,o])=>({path:i,mtime:o}));await Be.minisearch.clear(),await Be.minisearch.add({date:new Date().toISOString(),paths:n,data:e.toJSON()}),console.log("Omnisearch - Search cache written")}},we=new Va;function Td(t){let e,r,n,i,o,s,a,l,u=t[8].default,d=tr(u,t,t[7],null);return{c(){e=R("div"),r=R("div"),n=R("input"),o=W(),d&&d.c(),B(n,"class","prompt-input"),B(n,"placeholder",t[0]),B(n,"spellcheck","false"),B(n,"type","text"),B(r,"class","omnisearch-input-field"),B(e,"class","omnisearch-input-container")},m(f,c){$(f,e,c),T(e,r),T(r,n),t[9](n),Ii(n,t[1]),T(e,o),d&&d.m(e,null),s=!0,a||(l=[Ke(n,"input",t[10]),Cs(i=t[3].call(null,n)),Ke(n,"compositionend",t[11]),Ke(n,"compositionstart",t[12]),Ke(n,"input",t[4])],a=!0)},p(f,[c]){(!s||c&1)&&B(n,"placeholder",f[0]),c&2&&n.value!==f[1]&&Ii(n,f[1]),d&&d.p&&(!s||c&128)&&nr(d,u,f,f[7],s?rr(u,f[7],c,null):ir(f[7]),null)},i(f){s||(ee(d,f),s=!0)},o(f){re(d,f),s=!1},d(f){f&&H(e),t[9](null),d&&d.d(f),a=!1,Ue(l)}}}function Id(t,e,r){let{$$slots:n={},$$scope:i}=e,{initialValue:o=""}=e,{placeholder:s=""}=e,a=!1,l="",u,d=Pi();function f(p){r(1,l=p)}function c(p){p&&!a&&!l&&(a=!0,r(1,l=p),y())}function y(p){mt().then(()=>(u.focus(),mt())).then(()=>{u.select()})}let w=(0,Ha.debounce)(()=>{we.addToSearchHistory(""),d("input",l)},300);function x(p){tt[p?"unshift":"push"](()=>{u=p,r(2,u)})}function b(){l=this.value,r(1,l)}let h=p=>ko(!1),_=p=>ko(!0);return t.$$set=p=>{"initialValue"in p&&r(5,o=p.initialValue),"placeholder"in p&&r(0,s=p.placeholder),"$$scope"in p&&r(7,i=p.$$scope)},t.$$.update=()=>{if(t.$$.dirty&32){e:c(o)}},[s,l,u,y,w,o,f,i,n,x,b,h,_]}var $a=class extends Ae{constructor(e){super();De(this,e,Id,Td,be,{initialValue:5,placeholder:0,setInputValue:6})}get setInputValue(){return this.$$.ctx[6]}},ei=$a;function Od(t){let e,r,n,i,o=t[1].default,s=tr(o,t,t[0],null);return{c(){e=R("div"),s&&s.c(),B(e,"class","prompt-results")},m(a,l){$(a,e,l),s&&s.m(e,null),r=!0,n||(i=Ke(e,"mousedown",kd),n=!0)},p(a,[l]){s&&s.p&&(!r||l&1)&&nr(s,o,a,a[0],r?rr(o,a[0],l,null):ir(a[0]),null)},i(a){r||(ee(s,a),r=!0)},o(a){re(s,a),r=!1},d(a){a&&H(e),s&&s.d(a),n=!1,i()}}}var kd=t=>t.preventDefault();function Pd(t,e,r){let{$$slots:n={},$$scope:i}=e;return t.$$set=o=>{"$$scope"in o&&r(0,i=o.$$scope)},[i,n]}var Wa=class extends Ae{constructor(e){super();De(this,e,Pd,Od,be,{})}},ti=Wa;var Lo=Fe(require("obsidian"));async function ri(t,e=!1){let r=St(t.foundWords);r.exec(t.content);let n=r.lastIndex,i=!1;app.workspace.iterateAllLeaves(a=>{a.view instanceof Lo.MarkdownView&&!e&&a.getViewState().state?.file===t.path&&a.getViewState()?.pinned&&(app.workspace.setActiveLeaf(a,{focus:!0}),i=!0)}),i||await app.workspace.openLinkText(t.path,"",e);let o=app.workspace.getActiveViewOfType(Lo.MarkdownView);if(!o)return;let s=o.editor.offsetToPos(n);s.ch=0,o.editor.setCursor(s),o.editor.scrollIntoView({from:{line:s.line-10,ch:0},to:{line:s.line+10,ch:0}})}async function Ua(t,e=!1){try{let r;switch(app.vault.getConfig("newFileLocation")){case"current":r=(app.workspace.getActiveFile()?.parent?.path??"")+"/";break;case"folder":r=app.vault.getConfig("newFileFolderPath")+"/";break;default:r="";break}await app.workspace.openLinkText(`${r}${t}.md`,"",e)}catch(r){throw r.message="OmniSearch - Could not create note: "+r.message,console.error(r),r}}function Md(t){let e;return{c(){e=R("span"),e.innerHTML='',B(e,"class","suggestion-flair"),B(e,"aria-label","Not created yet, select to create")},m(r,n){$(r,e,n)},p:ce,i:ce,o:ce,d(r){r&&H(e)}}}function Rd(t){"use strict";return[]}var Ga=class extends Ae{constructor(e){super();De(this,e,Rd,Md,be,{})}},Qa=Ga;function qa(t){let e,r;return e=new Qa({}),{c(){Le(e.$$.fragment)},m(n,i){ke(e,n,i),r=!0},i(n){r||(ee(e.$$.fragment,n),r=!0)},o(n){re(e.$$.fragment,n),r=!1},d(n){Ee(e,n)}}}function Ld(t){let e,r,n,i,o,s=t[2]&&qa(t),a=t[4].default,l=tr(a,t,t[3],null);return{c(){e=R("div"),s&&s.c(),r=W(),l&&l.c(),B(e,"data-result-id",t[0]),B(e,"class","suggestion-item omnisearch-result"),Oi(e,"is-selected",t[1])},m(u,d){$(u,e,d),s&&s.m(e,null),T(e,r),l&&l.m(e,null),n=!0,i||(o=[Ke(e,"mousemove",t[5]),Ke(e,"click",t[6]),Ke(e,"auxclick",t[7])],i=!0)},p(u,[d]){u[2]?s?d&4&&ee(s,1):(s=qa(u),s.c(),ee(s,1),s.m(e,r)):s&&(Lt(),re(s,1,1,()=>{s=null}),Bt()),l&&l.p&&(!n||d&8)&&nr(l,a,u,u[3],n?rr(a,u[3],d,null):ir(u[3]),null),(!n||d&1)&&B(e,"data-result-id",u[0]),(!n||d&2)&&Oi(e,"is-selected",u[1])},i(u){n||(ee(s),ee(l,u),n=!0)},o(u){re(s),re(l,u),n=!1},d(u){u&&H(e),s&&s.d(),l&&l.d(u),i=!1,Ue(o)}}}function Bd(t,e,r){let{$$slots:n={},$$scope:i}=e,{id:o}=e,{selected:s=!1}=e,{glyph:a=!1}=e;function l(f){$e.call(this,t,f)}function u(f){$e.call(this,t,f)}function d(f){$e.call(this,t,f)}return t.$$set=f=>{"id"in f&&r(0,o=f.id),"selected"in f&&r(1,s=f.selected),"glyph"in f&&r(2,a=f.glyph),"$$scope"in f&&r(3,i=f.$$scope)},[o,s,a,i,n,l,u,d]}var Ya=class extends Ae{constructor(e){super();De(this,e,Bd,Ld,be,{id:0,selected:1,glyph:2})}},ni=Ya;var vr=Fe(require("obsidian"));function Ja(t){let e,r=t[1].matches.length+"",n,i,o=(t[1].matches.length>1?"matches":"match")+"",s;return{c(){e=R("span"),n=xe(r),i=xe("\xA0"),s=xe(o),B(e,"class","omnisearch-result__counter")},m(a,l){$(a,e,l),T(e,n),T(e,i),T(e,s)},p(a,l){l&2&&r!==(r=a[1].matches.length+"")&&Ge(n,r),l&2&&o!==(o=(a[1].matches.length>1?"matches":"match")+"")&&Ge(s,o)},d(a){a&&H(e)}}}function Xa(t){let e,r,n,i,o;return{c(){e=R("div"),r=R("span"),n=W(),i=R("span"),o=xe(t[6]),B(e,"class","omnisearch-result__folder-path")},m(s,a){$(s,e,a),T(e,r),t[12](r),T(e,n),T(e,i),T(i,o)},p(s,a){a&64&&Ge(o,s[6])},d(s){s&&H(e),t[12](null)}}}function Za(t){let e,r=t[8].replace(t[9],At)+"";return{c(){e=R("div"),B(e,"class","omnisearch-result__body")},m(n,i){$(n,e,i),e.innerHTML=r},p(n,i){i&768&&r!==(r=n[8].replace(n[9],At)+"")&&(e.innerHTML=r)},d(n){n&&H(e)}}}function el(t){let e,r,n;return{c(){e=R("div"),r=R("img"),ze(r,"width","100px"),Ti(r.src,n=t[5])||B(r,"src",n),B(r,"alt",""),B(e,"class","omnisearch-result__image-container")},m(i,o){$(i,e,o),T(e,r)},p(i,o){o&32&&!Ti(r.src,n=i[5])&&B(r,"src",n)},d(i){i&&H(e)}}}function Nd(t){let e,r,n,i,o,s,a=t[2].replace(t[9],At)+"",l,u,d,f=qt(t[1].path)+"",c,y,w,x,b,h,_=t[1].matches.length>0&&Ja(t),p=t[6]&&Xa(t),m=t[10]&&Za(t),v=t[5]&&el(t);return{c(){e=R("div"),r=R("div"),n=R("span"),i=R("span"),o=W(),s=R("span"),l=W(),u=R("span"),d=xe("."),c=xe(f),y=W(),_&&_.c(),w=W(),p&&p.c(),x=W(),b=R("div"),m&&m.c(),h=W(),v&&v.c(),B(u,"class","omnisearch-result__extension"),B(n,"class","omnisearch-result__title"),B(r,"class","omnisearch-result__title-container"),ze(b,"display","flex"),ze(b,"flex-direction","row")},m(g,j){$(g,e,j),T(e,r),T(r,n),T(n,i),t[11](i),T(n,o),T(n,s),s.innerHTML=a,T(n,l),T(n,u),T(u,d),T(u,c),T(n,y),_&&_.m(n,null),T(e,w),p&&p.m(e,null),T(e,x),T(e,b),m&&m.m(b,null),T(b,h),v&&v.m(b,null)},p(g,j){j&516&&a!==(a=g[2].replace(g[9],At)+"")&&(s.innerHTML=a),j&2&&f!==(f=qt(g[1].path)+"")&&Ge(c,f),g[1].matches.length>0?_?_.p(g,j):(_=Ja(g),_.c(),_.m(n,null)):_&&(_.d(1),_=null),g[6]?p?p.p(g,j):(p=Xa(g),p.c(),p.m(e,x)):p&&(p.d(1),p=null),g[10]?m?m.p(g,j):(m=Za(g),m.c(),m.m(b,h)):m&&(m.d(1),m=null),g[5]?v?v.p(g,j):(v=el(g),v.c(),v.m(b,null)):v&&(v.d(1),v=null)},d(g){g&&H(e),t[11](null),_&&_.d(),p&&p.d(),m&&m.d(),v&&v.d()}}}function Kd(t){let e,r;return e=new ni({props:{glyph:t[7],id:t[1].path,selected:t[0],$$slots:{default:[Nd]},$$scope:{ctx:t}}}),e.$on("click",t[13]),e.$on("auxclick",t[14]),e.$on("mousemove",t[15]),{c(){Le(e.$$.fragment)},m(n,i){ke(e,n,i),r=!0},p(n,[i]){let o={};i&128&&(o.glyph=n[7]),i&2&&(o.id=n[1].path),i&1&&(o.selected=n[0]),i&67454&&(o.$$scope={dirty:i,ctx:n}),e.$set(o)},i(n){r||(ee(e.$$.fragment,n),r=!0)},o(n){re(e.$$.fragment,n),r=!1},d(n){Ee(e,n)}}}function zd(t,e,r){let n,i,o,s;_n(t,Ut,p=>r(10,s=p));let{selected:a=!1}=e,{note:l}=e,u=null,d="",f="",c,y;function w(p){tt[p?"unshift":"push"](()=>{y=p,r(4,y)})}function x(p){tt[p?"unshift":"push"](()=>{c=p,r(3,c)})}function b(p){$e.call(this,t,p)}function h(p){$e.call(this,t,p)}function _(p){$e.call(this,t,p)}t.$$set=p=>{"selected"in p&&r(0,a=p.selected),"note"in p&&r(1,l=p.note)},t.$$.update=()=>{if(t.$$.dirty&2){e:if(r(5,u=null),Zn(l.path)){let p=app.vault.getFiles().find(m=>m.path===l.path);p&&r(5,u=app.vault.getResourcePath(p))}}if(t.$$.dirty&2){e:r(9,n=St(l.foundWords))}if(t.$$.dirty&2){e:r(8,i=yr(l.content,l.matches[0]?.offset??-1))}if(t.$$.dirty&30){e:r(2,d=l.basename),r(6,f=ka(l.path)),I.ignoreDiacritics&&r(2,d=ft(d)),c&&(0,vr.setIcon)(c,"folder-open"),y&&(Zn(l.path)?(0,vr.setIcon)(y,"image"):fn(l.path)?(0,vr.setIcon)(y,"file-text"):dn(l.path)?(0,vr.setIcon)(y,"layout-dashboard"):(0,vr.setIcon)(y,"file"))}};e:r(7,o=!1);return[a,l,d,c,y,u,f,o,i,n,s,w,x,b,h,_]}var tl=class extends Ae{constructor(e){super();De(this,e,zd,Kd,be,{selected:0,note:1})}},rl=tl;var sl=Fe(ol()),Bo=["ext","path"],Yt=class{constructor(e=""){this.extensions=[];I.ignoreDiacritics&&(e=ft(e));let r=(0,sl.parse)(e.toLowerCase(),{tokenize:!0,keywords:Bo});r.text=r.text??[],r.exclude=r.exclude??{},r.exclude.text=r.exclude.text??[],Array.isArray(r.exclude.text)||(r.exclude.text=[r.exclude.text]);for(let n of Bo){let i=r[n];i&&(r[n]=Array.isArray(i)?i:[i]);let o=r.exclude[n];o&&(r.exclude[n]=Array.isArray(o)?o:[o])}this.query=r,this.extensions=this.query.ext??[]}isEmpty(){for(let e of Bo)if(this.query[e]?.length||this.query.text.length)return!1;return!0}segmentsToStr(){return this.query.text.join(" ")}getTags(){return this.query.text.filter(e=>e.startsWith("#"))}getTagsWithoutHashtag(){return this.getTags().map(e=>e.replace(/^#/,""))}getExactTerms(){return this.query.text.filter(e=>e.split(" ").length>1)}};var ae=function(){return ae=Object.assign||function(e){for(var r,n=1,i=arguments.length;n0&&o[o.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!o||u[1]>o[0]&&u[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function me(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,o=[],s;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)o.push(i.value)}catch(a){s={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return o}var $d="ENTRIES",al="KEYS",ll="VALUES",Se="",No=function(){function t(e,r){var n=e._tree,i=Array.from(n.keys());this.set=e,this._type=r,this._path=i.length>0?[{node:n,keys:i}]:[]}return t.prototype.next=function(){var e=this.dive();return this.backtrack(),e},t.prototype.dive=function(){if(this._path.length===0)return{done:!0,value:void 0};var e=_r(this._path),r=e.node,n=e.keys;if(_r(n)===Se)return{done:!1,value:this.result()};var i=r.get(_r(n));return this._path.push({node:i,keys:Array.from(i.keys())}),this.dive()},t.prototype.backtrack=function(){if(this._path.length!==0){var e=_r(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}},t.prototype.key=function(){return this.set._prefix+this._path.map(function(e){var r=e.keys;return _r(r)}).filter(function(e){return e!==Se}).join("")},t.prototype.value=function(){return _r(this._path).node.get(Se)},t.prototype.result=function(){switch(this._type){case ll:return this.value();case al:return this.key();default:return[this.key(),this.value()]}},t.prototype[Symbol.iterator]=function(){return this},t}(),_r=function(t){return t[t.length-1]},Wd=function(t,e,r){var n=new Map;if(e===void 0)return n;for(var i=e.length+1,o=i+r,s=new Uint8Array(o*i).fill(r+1),a=0;ar)continue e}ul(t.get(y),e,r,n,i,x,s,a+y)}}}catch(k){l={error:k}}finally{try{c&&!c.done&&(u=f.return)&&u.call(f)}finally{if(l)throw l.error}}},Ko=function(){function t(e,r){e===void 0&&(e=new Map),r===void 0&&(r=""),this._size=void 0,this._tree=e,this._prefix=r}return t.prototype.atPrefix=function(e){var r,n;if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");var i=me(oi(this._tree,e.slice(this._prefix.length)),2),o=i[0],s=i[1];if(o===void 0){var a=me(Ho(s),2),l=a[0],u=a[1];try{for(var d=G(l.keys()),f=d.next();!f.done;f=d.next()){var c=f.value;if(c!==Se&&c.startsWith(u)){var y=new Map;return y.set(c.slice(u.length),l.get(c)),new t(y,e)}}}catch(w){r={error:w}}finally{try{f&&!f.done&&(n=d.return)&&n.call(d)}finally{if(r)throw r.error}}}return new t(o,e)},t.prototype.clear=function(){this._size=void 0,this._tree.clear()},t.prototype.delete=function(e){return this._size=void 0,Ud(this._tree,e)},t.prototype.entries=function(){return new No(this,$d)},t.prototype.forEach=function(e){var r,n;try{for(var i=G(this),o=i.next();!o.done;o=i.next()){var s=me(o.value,2),a=s[0],l=s[1];e(a,l,this)}}catch(u){r={error:u}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}},t.prototype.fuzzyGet=function(e,r){return Wd(this._tree,e,r)},t.prototype.get=function(e){var r=zo(this._tree,e);return r!==void 0?r.get(Se):void 0},t.prototype.has=function(e){var r=zo(this._tree,e);return r!==void 0&&r.has(Se)},t.prototype.keys=function(){return new No(this,al)},t.prototype.set=function(e,r){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var n=Vo(this._tree,e);return n.set(Se,r),this},Object.defineProperty(t.prototype,"size",{get:function(){if(this._size)return this._size;this._size=0;for(var e=this.entries();!e.next().done;)this._size+=1;return this._size},enumerable:!1,configurable:!0}),t.prototype.update=function(e,r){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var n=Vo(this._tree,e);return n.set(Se,r(n.get(Se))),this},t.prototype.fetch=function(e,r){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var n=Vo(this._tree,e),i=n.get(Se);return i===void 0&&n.set(Se,i=r()),i},t.prototype.values=function(){return new No(this,ll)},t.prototype[Symbol.iterator]=function(){return this.entries()},t.from=function(e){var r,n,i=new t;try{for(var o=G(e),s=o.next();!s.done;s=o.next()){var a=me(s.value,2),l=a[0],u=a[1];i.set(l,u)}}catch(d){r={error:d}}finally{try{s&&!s.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return i},t.fromObject=function(e){return t.from(Object.entries(e))},t}(),oi=function(t,e,r){var n,i;if(r===void 0&&(r=[]),e.length===0||t==null)return[t,r];try{for(var o=G(t.keys()),s=o.next();!s.done;s=o.next()){var a=s.value;if(a!==Se&&e.startsWith(a))return r.push([t,a]),oi(t.get(a),e.slice(a.length),r)}}catch(l){n={error:l}}finally{try{s&&!s.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}return r.push([t,e]),oi(void 0,"",r)},zo=function(t,e){var r,n;if(e.length===0||t==null)return t;try{for(var i=G(t.keys()),o=i.next();!o.done;o=i.next()){var s=o.value;if(s!==Se&&e.startsWith(s))return zo(t.get(s),e.slice(s.length))}}catch(a){r={error:a}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}},Vo=function(t,e){var r,n,i=e.length;e:for(var o=0;t&&o0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new Ko,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}},t.prototype.discard=function(e){var r=this,n=this._idToShortId.get(e);if(n==null)throw new Error("MiniSearch: cannot discard document with ID ".concat(e,": it is not in the index"));this._idToShortId.delete(e),this._documentIds.delete(n),this._storedFields.delete(n),(this._fieldLength.get(n)||[]).forEach(function(i,o){r.removeFieldLength(n,o,r._documentCount,i)}),this._fieldLength.delete(n),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()},t.prototype.maybeAutoVacuum=function(){if(this._options.autoVacuum!==!1){var e=this._options.autoVacuum,r=e.minDirtFactor,n=e.minDirtCount,i=e.batchSize,o=e.batchWait;this.conditionalVacuum({batchSize:i,batchWait:o},{minDirtCount:n,minDirtFactor:r})}},t.prototype.discardAll=function(e){var r,n,i=this._options.autoVacuum;try{this._options.autoVacuum=!1;try{for(var o=G(e),s=o.next();!s.done;s=o.next()){var a=s.value;this.discard(a)}}catch(l){r={error:l}}finally{try{s&&!s.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}}finally{this._options.autoVacuum=i}this.maybeAutoVacuum()},t.prototype.replace=function(e){var r=this._options,n=r.idField,i=r.extractField,o=i(e,n);this.discard(o),this.add(e)},t.prototype.vacuum=function(e){return e===void 0&&(e={}),this.conditionalVacuum(e)},t.prototype.conditionalVacuum=function(e,r){var n=this;return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&r,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(function(){var i=n._enqueuedVacuumConditions;return n._enqueuedVacuumConditions=qo,n.performVacuuming(e,i)}),this._enqueuedVacuum)):this.vacuumConditionsMet(r)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)},t.prototype.performVacuuming=function(e,r){return Vd(this,void 0,void 0,function(){var n,i,o,s,a,l,u,d,f,c,y,w,x,b,h,_,p,m,v,g,j,C,S,E,P;return Hd(this,function(L){switch(L.label){case 0:if(n=this._dirtCount,!this.vacuumConditionsMet(r))return[3,10];i=e.batchSize||Qo.batchSize,o=e.batchWait||Qo.batchWait,s=1,L.label=1;case 1:L.trys.push([1,7,8,9]),a=G(this._index),l=a.next(),L.label=2;case 2:if(l.done)return[3,6];u=me(l.value,2),d=u[0],f=u[1];try{for(c=(C=void 0,G(f)),y=c.next();!y.done;y=c.next()){w=me(y.value,2),x=w[0],b=w[1];try{for(h=(E=void 0,G(b)),_=h.next();!_.done;_=h.next())p=me(_.value,1),m=p[0],!this._documentIds.has(m)&&(b.size<=1?f.delete(x):b.delete(m))}catch(k){E={error:k}}finally{try{_&&!_.done&&(P=h.return)&&P.call(h)}finally{if(E)throw E.error}}}}catch(k){C={error:k}}finally{try{y&&!y.done&&(S=c.return)&&S.call(c)}finally{if(C)throw C.error}}return this._index.get(d).size===0&&this._index.delete(d),s%i!=0?[3,4]:[4,new Promise(function(k){return setTimeout(k,o)})];case 3:L.sent(),L.label=4;case 4:s+=1,L.label=5;case 5:return l=a.next(),[3,2];case 6:return[3,9];case 7:return v=L.sent(),g={error:v},[3,9];case 8:try{l&&!l.done&&(j=a.return)&&j.call(a)}finally{if(g)throw g.error}return[7];case 9:this._dirtCount-=n,L.label=10;case 10:return[4,null];case 11:return L.sent(),this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null,[2]}})})},t.prototype.vacuumConditionsMet=function(e){if(e==null)return!0;var r=e.minDirtCount,n=e.minDirtFactor;return r=r||Yo.minDirtCount,n=n||Yo.minDirtFactor,this.dirtCount>=r&&this.dirtFactor>=n},Object.defineProperty(t.prototype,"isVacuuming",{get:function(){return this._currentVacuum!=null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dirtCount",{get:function(){return this._dirtCount},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dirtFactor",{get:function(){return this._dirtCount/(1+this._documentCount+this._dirtCount)},enumerable:!1,configurable:!0}),t.prototype.has=function(e){return this._idToShortId.has(e)},t.prototype.search=function(e,r){var n,i;r===void 0&&(r={});var o=this.executeQuery(e,r),s=[];try{for(var a=G(o),l=a.next();!l.done;l=a.next()){var u=me(l.value,2),d=u[0],f=u[1],c=f.score,y=f.terms,w=f.match,x=y.length,b={id:this._documentIds.get(d),score:c*x,terms:Object.keys(w),match:w};Object.assign(b,this._storedFields.get(d)),(r.filter==null||r.filter(b))&&s.push(b)}}catch(h){n={error:h}}finally{try{l&&!l.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}return s.sort(ml),s},t.prototype.autoSuggest=function(e,r){var n,i,o,s;r===void 0&&(r={}),r=ae(ae({},this._options.autoSuggestOptions),r);var a=new Map;try{for(var l=G(this.search(e,r)),u=l.next();!u.done;u=l.next()){var d=u.value,f=d.score,c=d.terms,y=c.join(" "),w=a.get(y);w!=null?(w.score+=f,w.count+=1):a.set(y,{score:f,terms:c,count:1})}}catch(v){n={error:v}}finally{try{u&&!u.done&&(i=l.return)&&i.call(l)}finally{if(n)throw n.error}}var x=[];try{for(var b=G(a),h=b.next();!h.done;h=b.next()){var _=me(h.value,2),w=_[0],p=_[1],f=p.score,c=p.terms,m=p.count;x.push({suggestion:w,terms:c,score:f/m})}}catch(v){o={error:v}}finally{try{h&&!h.done&&(s=b.return)&&s.call(b)}finally{if(o)throw o.error}}return x.sort(ml),x},Object.defineProperty(t.prototype,"documentCount",{get:function(){return this._documentCount},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"termCount",{get:function(){return this._index.size},enumerable:!1,configurable:!0}),t.loadJSON=function(e,r){if(r==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),r)},t.getDefault=function(e){if(Go.hasOwnProperty(e))return Uo(Go,e);throw new Error('MiniSearch: unknown option "'.concat(e,'"'))},t.loadJS=function(e,r){var n,i,o,s,a,l,u=e.index,d=e.documentCount,f=e.nextId,c=e.documentIds,y=e.fieldIds,w=e.fieldLength,x=e.averageFieldLength,b=e.storedFields,h=e.dirtCount,_=e.serializationVersion;if(_!==1&&_!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");var p=new t(r);p._documentCount=d,p._nextId=f,p._documentIds=si(c),p._idToShortId=new Map,p._fieldIds=y,p._fieldLength=si(w),p._avgFieldLength=x,p._storedFields=si(b),p._dirtCount=h||0,p._index=new Ko;try{for(var m=G(p._documentIds),v=m.next();!v.done;v=m.next()){var g=me(v.value,2),j=g[0],C=g[1];p._idToShortId.set(C,j)}}catch(F){n={error:F}}finally{try{v&&!v.done&&(i=m.return)&&i.call(m)}finally{if(n)throw n.error}}try{for(var S=G(u),E=S.next();!E.done;E=S.next()){var P=me(E.value,2),L=P[0],k=P[1],z=new Map;try{for(var J=(a=void 0,G(Object.keys(k))),Q=J.next();!Q.done;Q=J.next()){var Z=Q.value,A=k[Z];_===1&&(A=A.ds),z.set(parseInt(Z,10),si(A))}}catch(F){a={error:F}}finally{try{Q&&!Q.done&&(l=J.return)&&l.call(J)}finally{if(a)throw a.error}}p._index.set(L,z)}}catch(F){o={error:F}}finally{try{E&&!E.done&&(s=S.return)&&s.call(S)}finally{if(o)throw o.error}}return p},t.prototype.executeQuery=function(e,r){var n=this;if(r===void 0&&(r={}),typeof e!="string"){var i=ae(ae(ae({},r),e),{queries:void 0}),o=e.queries.map(function(b){return n.executeQuery(b,i)});return this.combineResults(o,e.combineWith)}var s=this._options,a=s.tokenize,l=s.processTerm,u=s.searchOptions,d=ae(ae({tokenize:a,processTerm:l},u),r),f=d.tokenize,c=d.processTerm,y=f(e).flatMap(function(b){return c(b)}).filter(function(b){return!!b}),w=y.map(Jd(d)),x=w.map(function(b){return n.executeQuerySpec(b,d)});return this.combineResults(x,d.combineWith)},t.prototype.executeQuerySpec=function(e,r){var n,i,o,s,a=ae(ae({},this._options.searchOptions),r),l=(a.fields||this._options.fields).reduce(function(Z,A){var F;return ae(ae({},Z),(F={},F[A]=Uo(Z,A)||1,F))},a.boost||{}),u=a.boostDocument,d=a.weights,f=a.maxFuzzy,c=a.bm25,y=ae(ae({},hl.weights),d),w=y.fuzzy,x=y.prefix,b=this._index.get(e.term),h=this.termResults(e.term,e.term,1,b,l,u,c),_,p;if(e.prefix&&(_=this._index.atPrefix(e.term)),e.fuzzy){var m=e.fuzzy===!0?.2:e.fuzzy,v=m<1?Math.min(f,Math.round(e.term.length*m)):m;v&&(p=this._index.fuzzyGet(e.term,v))}if(_)try{for(var g=G(_),j=g.next();!j.done;j=g.next()){var C=me(j.value,2),S=C[0],E=C[1],P=S.length-e.term.length;if(!!P){p==null||p.delete(S);var L=x*S.length/(S.length+.3*P);this.termResults(e.term,S,L,E,l,u,c,h)}}}catch(Z){n={error:Z}}finally{try{j&&!j.done&&(i=g.return)&&i.call(g)}finally{if(n)throw n.error}}if(p)try{for(var k=G(p.keys()),z=k.next();!z.done;z=k.next()){var S=z.value,J=me(p.get(S),2),Q=J[0],P=J[1];if(!!P){var L=w*S.length/(S.length+P);this.termResults(e.term,S,L,Q,l,u,c,h)}}}catch(Z){o={error:Z}}finally{try{z&&!z.done&&(s=k.return)&&s.call(k)}finally{if(o)throw o.error}}return h},t.prototype.combineResults=function(e,r){if(r===void 0&&(r=$o),e.length===0)return new Map;var n=r.toLowerCase();return e.reduce(Qd[n])||new Map},t.prototype.toJSON=function(){var e,r,n,i,o=[];try{for(var s=G(this._index),a=s.next();!a.done;a=s.next()){var l=me(a.value,2),u=l[0],d=l[1],f={};try{for(var c=(n=void 0,G(d)),y=c.next();!y.done;y=c.next()){var w=me(y.value,2),x=w[0],b=w[1];f[x]=Object.fromEntries(b)}}catch(h){n={error:h}}finally{try{y&&!y.done&&(i=c.return)&&i.call(c)}finally{if(n)throw n.error}}o.push([u,f])}}catch(h){e={error:h}}finally{try{a&&!a.done&&(r=s.return)&&r.call(s)}finally{if(e)throw e.error}}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:o,serializationVersion:2}},t.prototype.termResults=function(e,r,n,i,o,s,a,l){var u,d,f,c,y;if(l===void 0&&(l=new Map),i==null)return l;try{for(var w=G(Object.keys(o)),x=w.next();!x.done;x=w.next()){var b=x.value,h=o[b],_=this._fieldIds[b],p=i.get(_);if(p!=null){var m=p.size,v=this._avgFieldLength[_];try{for(var g=(f=void 0,G(p.keys())),j=g.next();!j.done;j=g.next()){var C=j.value;if(!this._documentIds.has(C)){this.removeTerm(_,C,r),m-=1;continue}var S=s?s(this._documentIds.get(C),r):1;if(!!S){var E=p.get(C),P=this._fieldLength.get(C)[_],L=Yd(E,m,this._documentCount,P,v,a),k=n*h*S*L,z=l.get(C);if(z){z.score+=k,Zd(z.terms,e);var J=Uo(z.match,r);J?J.push(b):z.match[r]=[b]}else l.set(C,{score:k,terms:[e],match:(y={},y[r]=[b],y)})}}}catch(Q){f={error:Q}}finally{try{j&&!j.done&&(c=g.return)&&c.call(g)}finally{if(f)throw f.error}}}}}catch(Q){u={error:Q}}finally{try{x&&!x.done&&(d=w.return)&&d.call(w)}finally{if(u)throw u.error}}return l},t.prototype.addTerm=function(e,r,n){var i=this._index.fetch(n,gl),o=i.get(e);if(o==null)o=new Map,o.set(r,1),i.set(e,o);else{var s=o.get(r);o.set(r,(s||0)+1)}},t.prototype.removeTerm=function(e,r,n){if(!this._index.has(n)){this.warnDocumentChanged(r,e,n);return}var i=this._index.fetch(n,gl),o=i.get(e);o==null||o.get(r)==null?this.warnDocumentChanged(r,e,n):o.get(r)<=1?o.size<=1?i.delete(e):o.delete(r):o.set(r,o.get(r)-1),this._index.get(n).size===0&&this._index.delete(n)},t.prototype.warnDocumentChanged=function(e,r,n){var i,o;try{for(var s=G(Object.keys(this._fieldIds)),a=s.next();!a.done;a=s.next()){var l=a.value;if(this._fieldIds[l]===r){this._options.logger("warn","MiniSearch: document with ID ".concat(this._documentIds.get(e),' has changed before removal: term "').concat(n,'" was not present in field "').concat(l,'". Removing a document after it has changed can corrupt the index!'),"version_conflict");return}}}catch(u){i={error:u}}finally{try{a&&!a.done&&(o=s.return)&&o.call(s)}finally{if(i)throw i.error}}},t.prototype.addDocumentId=function(e){var r=this._nextId;return this._idToShortId.set(e,r),this._documentIds.set(r,e),this._documentCount+=1,this._nextId+=1,r},t.prototype.addFields=function(e){for(var r=0;r0){if(++e>=$h)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Tl=Gh;function Qh(t){return function(){return t}}var Il=Qh;var qh=function(){try{var t=Ne(Object,"defineProperty");return t({},"",{}),t}catch{}}(),Jo=qh;var Yh=Jo?function(t,e){return Jo(t,"toString",{configurable:!0,enumerable:!1,value:Il(e),writable:!0})}:Et,Ol=Yh;var Jh=Tl(Ol),kl=Jh;var Xh=9007199254740991,Zh=/^(?:0|[1-9]\d*)$/;function ep(t,e){var r=typeof t;return e=e??Xh,!!e&&(r=="number"||r!="symbol"&&Zh.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=ip}var jr=op;function sp(t){return t!=null&&jr(t.length)&&!li(t)}var Dt=sp;function ap(t,e,r){if(!Ft(r))return!1;var n=typeof e;return(n=="number"?Dt(r)&&xr(e,r.length):n=="string"&&e in r)?wr(r[e],t):!1}var Xo=ap;var lp=Object.prototype;function up(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||lp;return t===r}var Ll=up;function cp(t,e){for(var r=-1,n=Array(t);++r-1}var ou=Am;function Sm(t,e){var r=this.__data__,n=Tt(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var su=Sm;function Er(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e0&&r(a)?e>1?bu(a,e-1,r,n,i):pi(i,a):n||(i[i.length]=a)}return i}var xu=bu;function qm(){this.__data__=new It,this.size=0}var wu=qm;function Ym(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var ju=Ym;function Jm(t){return this.__data__.get(t)}var Cu=Jm;function Xm(t){return this.__data__.has(t)}var Au=Xm;var Zm=200;function eg(t,e){var r=this.__data__;if(r instanceof It){var n=r.__data__;if(!Ot||n.lengtha))return!1;var u=o.get(t),d=o.get(e);if(u&&d)return u==e&&d==t;var f=-1,c=!0,y=r&Cg?new Nu:void 0;for(o.set(t,e),o.set(e,t);++fe||o&&s&&l&&!a&&!u||n&&s&&l||!r&&l||!i)return 1;if(!n&&!o&&!u&&t=a)return l;var u=r[n];return l*(u=="desc"?-1:1)}}return t.index-e.index}var yc=by;function xy(t,e,r){e.length?e=br(e,function(o){return de(o)?function(s){return Tr(s,o.length===1?o[0]:o)}:o}):e=[Et];var n=-1;e=br(e,fi(lc));var i=pc(t,function(o,s,a){var l=br(e,function(u){return u(o)});return{criteria:l,index:++n,value:o}});return mc(i,function(o,s){return yc(o,s,r)})}var vc=xy;var wy=Rl(function(t,e){if(t==null)return[];var r=e.length;return r>1&&Xo(t,e[0],e[1])?e=[]:r>2&&Xo(e[0],e[1],e[2])&&(e=[e[0]]),vc(t,xu(e,1),[])}),ls=wy;var jy=t=>{let e=t.split(Ct),r=Yn();return r?e.flatMap(n=>Aa.test(n)?r.cut(n):[n]):I.splitCamelCase?[...e,...e.flatMap(Ba)]:e},Ci=class{constructor(){this.indexedDocuments=new Map;this.minisearch=new Wo(Ci.options)}async loadCache(){let e=await we.getMinisearchCache();return e?(this.minisearch=Wo.loadJS(e.data,Ci.options),this.indexedDocuments=new Map(e.paths.map(r=>[r.path,r.mtime])),!0):(console.log("Omnisearch - No cache found"),!1)}getDiff(e){let r=new Map(e.map(o=>[o.path,o.mtime])),n=e.filter(o=>!this.indexedDocuments.has(o.path)||this.indexedDocuments.get(o.path)!==o.mtime),i=[...this.indexedDocuments].filter(([o,s])=>!r.has(o)||r.get(o)!==s).map(o=>({path:o[0],mtime:o[1]}));return{toAdd:n,toRemove:i}}async addFromPaths(e){fe("Adding files",e);let r=(await Promise.all(e.map(async i=>await we.getDocument(i)))).filter(i=>!!i?.path);fe("Sorting documents to first index markdown"),r=ls(r,i=>i.path.endsWith(".md")?0:1),this.removeFromPaths(r.filter(i=>this.indexedDocuments.has(i.path)).map(i=>i.path));let n=La(r,500);for(let i of n){fe("Indexing into search engine",i),i.forEach(s=>this.indexedDocuments.set(s.path,s.mtime));let o=i.filter(s=>this.minisearch.has(s.path));this.removeFromPaths(o.map(s=>s.path)),await this.minisearch.addAllAsync(i)}}removeFromPaths(e){e.forEach(n=>this.indexedDocuments.delete(n));let r=e.filter(n=>this.minisearch.has(n));this.minisearch.discardAll(r)}async search(e,r){if(e.isEmpty())return[];fe("Starting search for",e);let n=this.minisearch.search(e.segmentsToStr(),{prefix:l=>l.length>=r.prefixLength,fuzzy:l=>l.length<=3?0:l.length<=5?.1:.2,combineWith:"AND",boost:{basename:I.weightBasename,directory:I.weightDirectory,aliases:I.weightBasename,headings1:I.weightH1,headings2:I.weightH2,headings3:I.weightH3}});if(fe("Found",n.length,"results"),e.query.ext?.length&&(n=n.filter(l=>{let u="."+l.id.split(".").pop();return e.query.ext?.some(d=>u.startsWith(d.startsWith(".")?d:"."+d))}),console.log(e.query.ext,n.length)),e.query.path&&(n=n.filter(l=>e.query.path?.some(u=>l.id.toLowerCase().includes(u.toLowerCase())))),e.query.exclude.path&&(n=n.filter(l=>!e.query.exclude.path?.some(u=>l.id.toLowerCase().includes(u.toLowerCase())))),!n.length)return[];if(r.singleFilePath)return n.filter(l=>l.id===r.singleFilePath);I.hideExcluded?n=n.filter(l=>!(app.metadataCache.isUserIgnored&&app.metadataCache.isUserIgnored(l.id))):n.forEach(l=>{app.metadataCache.isUserIgnored&&app.metadataCache.isUserIgnored(l.id)&&(l.score/=10)});let i=e.getTags();for(let l of i)for(let u of n)(u.tags??[]).includes(l)&&(u.score*=100);fe("Sorting and limiting results"),n=n.sort((l,u)=>u.score-l.score).slice(0,50);let o=await Promise.all(n.map(async l=>await we.getDocument(l.id))),s=e.getExactTerms();s.length&&(fe("Filtering with quoted terms"),n=n.filter(l=>{let u=o.find(c=>c.path===l.id),d=u?.path.toLowerCase()??"",f=Mo(u?.content??"").toLowerCase();return s.every(c=>f.includes(c)||d.includes(c))}));let a=e.query.exclude.text;return a.length&&(fe("Filtering with exclusions"),n=n.filter(l=>{let u=Mo(o.find(d=>d.path===l.id)?.content??"").toLowerCase();return a.every(d=>!u.includes(d))})),fe("Deduping"),n=n.filter((l,u,d)=>d.findIndex(f=>f.id===l.id)===u),n}getMatches(e,r,n){let i=new Date().getTime(),o=null,s=[],a=0;for(;(o=r.exec(e))!==null;){if(++a>=100||new Date().getTime()-i>50){Na("Stopped getMatches at",a,"results");break}let u=o[0];u&&s.push({match:u,offset:o.index})}let l=e.toLowerCase().indexOf(n.segmentsToStr());return l>-1&&s.unshift({offset:l,match:n.segmentsToStr()}),s}async getSuggestions(e,r){let n;I.simpleSearch?n=await this.search(e,{prefixLength:3,singleFilePath:r?.singleFilePath}):n=await this.search(e,{prefixLength:1,singleFilePath:r?.singleFilePath});let i=await Promise.all(n.map(async s=>await we.getDocument(s.id)));return n.map(s=>{fe("Locating matches for",s.id);let a=i.find(f=>f.path===s.id);a||(console.warn(`Omnisearch - Note "${s.id}" not in the live cache`),a={content:"",basename:s.id,path:s.id});let l=[...Object.keys(s.match),...e.getExactTerms(),...e.getTags()].filter(f=>f.length>1||/\p{Emoji}/u.test(f));fe("Matching tokens:",l),fe("Getting matches locations...");let u=this.getMatches(a.content,St(l),e);return fe("Matches:",u),ue({score:s.score,foundWords:l,matches:u},a)})}async writeToCache(){await we.writeMinisearchCache(this.minisearch,this.indexedDocuments)}},us=Ci;us.options={tokenize:jy,extractField:(e,r)=>{if(r==="directory"){let n=e.path.split("/");return n.pop(),n.join("/")}return e[r]},processTerm:e=>(I.ignoreDiacritics?ft(e):e).toLowerCase(),idField:"path",fields:["basename","directory","aliases","content","headings1","headings2","headings3"],storeFields:["tags"],logger(e,r,n){n==="version_conflict"&&new _c.Notice("Omnisearch - Your index cache may be incorrect or corrupted. If this message keeps appearing, go to Settings to clear the cache.",5e3)}};var ve=new us;var cs=new Set;function bc(t){cs.add(t)}async function Ai(){let t=[...cs].map(e=>e.path);t.length&&(ve.removeFromPaths(t),ve.addFromPaths(t),cs.clear())}var wc=Fe(xc());function jc(t,e,r){let n=t.slice();return n[35]=e[r],n[37]=r,n}function Cy(t){let e,r,n;return{c(){e=R("button"),e.textContent="Create note"},m(i,o){$(i,e,o),r||(n=Ke(e,"click",t[12]),r=!0)},p:ce,d(i){i&&H(e),r=!1,n()}}}function Ay(t){let e,r=I.showCreateButton&&Cy(t);return{c(){r&&r.c(),e=or()},m(n,i){r&&r.m(n,i),$(n,e,i)},p(n,i){I.showCreateButton&&r.p(n,i)},d(n){r&&r.d(n),n&&H(e)}}}function Cc(t){let e,r,n;return{c(){e=R("div"),r=xe("\u23F3 Work in progress: "),n=xe(t[3]),ze(e,"text-align","center"),ze(e,"color","var(--text-accent)"),ze(e,"margin-top","10px")},m(i,o){$(i,e,o),T(e,r),T(e,n)},p(i,o){o[0]&8&&Ge(n,i[3])},d(i){i&&H(e)}}}function Ac(t){let e,r;function n(...i){return t[18](t[37],...i)}return e=new rl({props:{selected:t[37]===t[0],note:t[35]}}),e.$on("mousemove",n),e.$on("click",t[10]),e.$on("auxclick",t[19]),{c(){Le(e.$$.fragment)},m(i,o){ke(e,i,o),r=!0},p(i,o){t=i;let s={};o[0]&1&&(s.selected=t[37]===t[0]),o[0]&4&&(s.note=t[35]),e.$set(s)},i(i){r||(ee(e.$$.fragment,i),r=!0)},o(i){re(e.$$.fragment,i),r=!1},d(i){Ee(e,i)}}}function Sy(t){let e;return{c(){e=xe("Searching...")},m(r,n){$(r,e,n)},p:ce,d(r){r&&H(e)}}}function Fy(t){let e,r=I.simpleSearch&&t[1].split(Ct).some(Fc),n,i=r&&Sc(t);return{c(){e=xe(`We found 0 result for your search here. - `),i&&i.c(),n=or()},m(o,s){$(o,e,s),i&&i.m(o,s),$(o,n,s)},p(o,s){s[0]&2&&(r=I.simpleSearch&&o[1].split(Ct).some(Fc)),r?i||(i=Sc(o),i.c(),i.m(n.parentNode,n)):i&&(i.d(1),i=null)},d(o){o&&H(e),i&&i.d(o),o&&H(n)}}}function Sc(t){let e,r,n;return{c(){e=R("br"),r=W(),n=R("span"),n.textContent=`You have enabled "Simpler Search" in the settings, try to type more - characters.`,ze(n,"color","var(--text-accent)"),ze(n,"font-size","small")},m(i,o){$(i,e,o),$(i,r,o),$(i,n,o)},d(i){i&&H(e),i&&H(r),i&&H(n)}}}function Ey(t){let e,r,n,i=t[2],o=[];for(let d=0;dre(o[d],1,1,()=>{o[d]=null});function a(d,f){if(!d[2].length&&d[1]&&!d[4])return Fy;if(d[4])return Sy}let l=a(t,[-1,-1]),u=l&&l(t);return{c(){for(let d=0;d\u2191\u2193to navigate',l=W(),u=R("div"),u.innerHTML=`alt \u2191\u2193 - to cycle history`,d=W(),f=R("div"),c=R("span"),y=xe(t[7]),w=R("span"),w.textContent="to open",x=W(),b=R("div"),b.innerHTML=`tab - to switch to In-File Search`,h=W(),_=R("div"),p=R("span"),m=xe(t[6]),v=W(),g=R("span"),g.textContent="to open in a new pane",j=W(),C=R("div"),S=R("span"),E=xe(t[9]),P=W(),L=R("span"),L.textContent="to create",k=W(),z=R("div"),J=R("span"),Q=xe(t[8]),Z=W(),A=R("span"),A.textContent="to create in a new pane",F=W(),D=R("div"),D.innerHTML=`alt \u21B5 - to insert a link`,N=W(),O=R("div"),O.innerHTML=`ctrl+h - to toggle excerpts`,X=W(),le=R("div"),le.innerHTML='escto close',B(a,"class","prompt-instruction"),B(u,"class","prompt-instruction"),B(c,"class","prompt-instruction-command"),B(f,"class","prompt-instruction"),B(b,"class","prompt-instruction"),B(p,"class","prompt-instruction-command"),B(_,"class","prompt-instruction"),B(S,"class","prompt-instruction-command"),B(C,"class","prompt-instruction"),B(J,"class","prompt-instruction-command"),B(z,"class","prompt-instruction"),B(D,"class","prompt-instruction"),B(O,"class","prompt-instruction"),B(le,"class","prompt-instruction"),B(s,"class","prompt-instructions")},m(q,ge){ke(e,q,ge),$(q,r,ge),te&&te.m(q,ge),$(q,n,ge),ke(i,q,ge),$(q,o,ge),$(q,s,ge),T(s,a),T(s,l),T(s,u),T(s,d),T(s,f),T(f,c),T(c,y),T(f,w),T(s,x),T(s,b),T(s,h),T(s,_),T(_,p),T(p,m),T(_,v),T(_,g),T(s,j),T(s,C),T(C,S),T(S,E),T(C,P),T(C,L),T(s,k),T(s,z),T(z,J),T(J,Q),T(z,Z),T(z,A),T(s,F),T(s,D),T(s,N),T(s,O),T(s,X),T(s,le),_e=!0},p(q,ge){let Ei={};ge[0]&2&&(Ei.initialValue=q[1]),ge[1]&128&&(Ei.$$scope={dirty:ge,ctx:q}),e.$set(Ei),q[3]?te?te.p(q,ge):(te=Cc(q),te.c(),te.m(n.parentNode,n)):te&&(te.d(1),te=null);let ms={};ge[0]&23|ge[1]&128&&(ms.$$scope={dirty:ge,ctx:q}),i.$set(ms),(!_e||ge[0]&128)&&Ge(y,q[7]),(!_e||ge[0]&64)&&Ge(m,q[6]),(!_e||ge[0]&512)&&Ge(E,q[9]),(!_e||ge[0]&256)&&Ge(Q,q[8])},i(q){_e||(ee(e.$$.fragment,q),ee(i.$$.fragment,q),_e=!0)},o(q){re(e.$$.fragment,q),re(i.$$.fragment,q),_e=!1},d(q){t[16](null),Ee(e,q),q&&H(r),te&&te.d(q),q&&H(n),Ee(i,q),q&&H(o),q&&H(s)}}}var Fc=t=>t.length<3;function Ty(t,e,r){let n,i;_n(t,jt,O=>r(15,i=O));let{modal:o}=e,{previousQuery:s}=e,a=0,l=0,u,d=[],f,c="",y=!0,w,x,b,h,_;Br(async()=>{U.enable("vault"),U.on("vault","enter",C),U.on("vault","create-note",k),U.on("vault","open-in-new-pane",S),U.on("vault","insert-link",z),U.on("vault","tab",J),U.on("vault","arrow-up",()=>Q(-1)),U.on("vault","arrow-down",()=>Q(1)),U.on("vault","prev-search-history",p),U.on("vault","next-search-history",m),await Ai(),I.showPreviousQueryResults&&r(13,s=(await we.getSearchHistory())[0])}),Nr(()=>{U.disable("vault")});async function p(){let O=(await we.getSearchHistory()).filter(X=>X);++l>=O.length&&(l=0),r(1,u=O[l]),w?.setInputValue(u)}async function m(){let O=(await we.getSearchHistory()).filter(X=>X);--l<0&&(l=O.length?O.length-1:0),r(1,u=O[l]),w?.setInputValue(u)}let v=null;async function g(){v&&(v.cancel(),v=null),f=new Yt(u),v=(0,wc.cancelable)(new Promise(O=>{O(ve.getSuggestions(f))})),r(2,d=await v),r(0,a=0),await Z()}function j(O){!n||(O?.ctrlKey?S():C(),o.close())}function C(){!n||(P(n),o.close())}function S(){!n||(P(n,!0),o.close())}function E(){u&&we.addToSearchHistory(u)}function P(O,X=!1){E(),ri(O,X)}async function L(O){await k()}async function k(O){if(u){try{await Ua(u,O?.newLeaf)}catch(X){new Mt.Notice(X.message);return}o.close()}}function z(){if(!n)return;let O=app.vault.getMarkdownFiles().find(te=>te.path===n.path),X=app.workspace.getActiveFile(),le=app.workspace.getActiveViewOfType(Mt.MarkdownView);if(!le?.editor){new Mt.Notice("Omnisearch - Error - No active editor",3e3);return}let _e;O&&X?_e=app.fileManager.generateMarkdownLink(O,X.path):_e=`[[${n.basename}.${qt(n.path)}]]`;let Ce=le.editor.getCursor();le.editor.replaceRange(_e,Ce,Ce),Ce.ch+=_e.length,le.editor.setCursor(Ce),o.close()}function J(){if(!(n&&(fn(n?.path)||!n?.matches.length)))if(E(),o.close(),n){let O=app.vault.getAbstractFileByPath(n.path);O&&O instanceof Mt.TFile&&new kr(app,O,u).open()}else{let O=app.workspace.getActiveViewOfType(Mt.MarkdownView);O&&new kr(app,O.file,u).open()}}function Q(O){r(0,a=Xn(a+O,d.length)),Z()}async function Z(){await mt(),n&&activeWindow.document.querySelector(`[data-result-id="${n.path}"]`)?.scrollIntoView({behavior:"auto",block:"nearest"})}function A(O){tt[O?"unshift":"push"](()=>{w=O,r(5,w)})}let F=O=>r(1,u=O.detail),D=(O,X)=>r(0,a=O),N=O=>{O.button==1&&S()};t.$$set=O=>{"modal"in O&&r(14,o=O.modal),"previousQuery"in O&&r(13,s=O.previousQuery)},t.$$.update=()=>{if(t.$$.dirty[0]&8194){e:r(1,u=u??s)}if(t.$$.dirty[0]&2){e:u?(r(4,y=!0),g().then(()=>{r(4,y=!1)})):(r(4,y=!1),r(2,d=[]))}if(t.$$.dirty[0]&5){e:n=d[a]}if(t.$$.dirty[0]&32768){e:switch(i){case We.LoadingCache:r(3,c="Loading cache...");break;case We.ReadingFiles:r(3,c="Reading files...");break;case We.IndexingFiles:r(3,c="Indexing files...");break;case We.WritingCache:g(),r(3,c="Updating cache...");break;default:g(),r(3,c="");break}}};e:I.openInNewPane?(r(6,x="\u21B5"),r(7,b=Qt()+" \u21B5"),r(8,h="shift \u21B5"),r(9,_=Qt()+" shift \u21B5")):(r(6,x=Qt()+" \u21B5"),r(7,b="\u21B5"),r(8,h=Qt()+" shift \u21B5"),r(9,_="shift \u21B5"));return[a,u,d,c,y,w,x,b,h,_,j,S,L,s,o,i,A,F,D,N]}var Ec=class extends Ae{constructor(e){super();De(this,e,Ty,Dy,be,{modal:14,previousQuery:13},null,[-1,-1])}},Dc=Ec;var Oc=Fe(require("obsidian"));function Iy(t){let e,r=t[2].replace(t[3],At)+"";return{c(){e=R("div"),B(e,"class","omnisearch-result__body")},m(n,i){$(n,e,i),e.innerHTML=r},p(n,i){i&12&&r!==(r=n[2].replace(n[3],At)+"")&&(e.innerHTML=r)},d(n){n&&H(e)}}}function Oy(t){let e,r;return e=new ni({props:{id:t[0].toString(),selected:t[1],$$slots:{default:[Iy]},$$scope:{ctx:t}}}),e.$on("mousemove",t[6]),e.$on("click",t[7]),e.$on("auxclick",t[8]),{c(){Le(e.$$.fragment)},m(n,i){ke(e,n,i),r=!0},p(n,[i]){let o={};i&1&&(o.id=n[0].toString()),i&2&&(o.selected=n[1]),i&524&&(o.$$scope={dirty:i,ctx:n}),e.$set(o)},i(n){r||(ee(e.$$.fragment,n),r=!0)},o(n){re(e.$$.fragment,n),r=!1},d(n){Ee(e,n)}}}function ky(t,e,r){let n,i,{offset:o}=e,{note:s}=e,{index:a=0}=e,{selected:l=!1}=e;function u(c){$e.call(this,t,c)}function d(c){$e.call(this,t,c)}function f(c){$e.call(this,t,c)}return t.$$set=c=>{"offset"in c&&r(4,o=c.offset),"note"in c&&r(5,s=c.note),"index"in c&&r(0,a=c.index),"selected"in c&&r(1,l=c.selected)},t.$$.update=()=>{if(t.$$.dirty&32){e:r(3,n=St(s.foundWords))}if(t.$$.dirty&48){e:r(2,i=yr(s?.content??"",o))}},[a,l,i,n,o,s,u,d,f]}var Tc=class extends Ae{constructor(e){super();De(this,e,ky,Oy,be,{offset:4,note:5,index:0,selected:1})}},Ic=Tc;function kc(t,e,r){let n=t.slice();return n[19]=e[r],n[21]=r,n}function Py(t){let e;return{c(){e=R("div"),e.textContent="We found 0 result for your search here.",ze(e,"text-align","center")},m(r,n){$(r,e,n)},p:ce,i:ce,o:ce,d(r){r&&H(e)}}}function My(t){let e,r,n=t[4],i=[];for(let s=0;sre(i[s],1,1,()=>{i[s]=null});return{c(){for(let s=0;s{s[d]=null}),Bt(),r=s[e],r?r.p(l,u):(r=s[e]=o[e](l),r.c()),ee(r,1),r.m(n.parentNode,n))},i(l){i||(ee(r),i=!0)},o(l){re(r),i=!1},d(l){s[e].d(l),l&&H(n)}}}function Ly(t){let e;return{c(){e=R("span"),e.textContent="to close"},m(r,n){$(r,e,n)},d(r){r&&H(e)}}}function By(t){let e;return{c(){e=R("span"),e.textContent="to go back to Vault Search"},m(r,n){$(r,e,n)},d(r){r&&H(e)}}}function Ny(t){let e,r,n,i,o,s,a,l,u,d,f,c,y,w,x,b,h,_,p,m;e=new ei({props:{placeholder:"Omnisearch - File",initialValue:t[1]}}),e.$on("input",t[10]),n=new ti({props:{$$slots:{default:[Ry]},$$scope:{ctx:t}}});function v(C,S){return C[0]?By:Ly}let g=v(t,-1),j=g(t);return{c(){Le(e.$$.fragment),r=W(),Le(n.$$.fragment),i=W(),o=R("div"),s=R("div"),s.innerHTML='\u2191\u2193to navigate',a=W(),l=R("div"),l.innerHTML='\u21B5to open',u=W(),d=R("div"),d.innerHTML=`tab - to switch to Vault Search`,f=W(),c=R("div"),y=R("span"),y.textContent="esc",w=W(),j.c(),x=W(),b=R("div"),h=R("span"),h.textContent=`${Qt()} \u21B5`,_=W(),p=R("span"),p.textContent="to open in a new pane",B(s,"class","prompt-instruction"),B(l,"class","prompt-instruction"),B(d,"class","prompt-instruction"),B(y,"class","prompt-instruction-command"),B(c,"class","prompt-instruction"),B(h,"class","prompt-instruction-command"),B(b,"class","prompt-instruction"),B(o,"class","prompt-instructions")},m(C,S){ke(e,C,S),$(C,r,S),ke(n,C,S),$(C,i,S),$(C,o,S),T(o,s),T(o,a),T(o,l),T(o,u),T(o,d),T(o,f),T(o,c),T(c,y),T(c,w),j.m(c,null),T(o,x),T(o,b),T(b,h),T(b,_),T(b,p),m=!0},p(C,[S]){let E={};S&2&&(E.initialValue=C[1]),e.$set(E);let P={};S&4194360&&(P.$$scope={dirty:S,ctx:C}),n.$set(P),g!==(g=v(C,S))&&(j.d(1),j=g(C),j&&(j.c(),j.m(c,null)))},i(C){m||(ee(e.$$.fragment,C),ee(n.$$.fragment,C),m=!0)},o(C){re(e.$$.fragment,C),re(n.$$.fragment,C),m=!1},d(C){Ee(e,C),C&&H(r),Ee(n,C),C&&H(i),C&&H(o),j.d()}}}function Ky(t,e,r){let n=t.find(i=>i.offset>e);return n?t.filter(i=>i.offset>e&&i.offset<=n.offset+r):[]}function zy(t,e,r){let{modal:n}=e,{parent:i=null}=e,{singleFilePath:o=""}=e,{previousQuery:s}=e,a,l=[],u=0,d,f;Br(()=>{U.enable("infile"),U.on("infile","enter",b),U.on("infile","open-in-new-pane",x),U.on("infile","arrow-up",()=>y(-1)),U.on("infile","arrow-down",()=>y(1)),U.on("infile","tab",h)}),Nr(()=>{U.disable("infile")});function c(g){let j=[],C=-1,S=0;for(;;){let E=Ky(g,C,ln);if(!E.length||(C=E.last().offset,j.push(E),++S>100))break}return j}function y(g){r(5,u=Xn(u+g,l.length)),w()}async function w(){await mt(),document.querySelector(`[data-result-id="${u}"]`)?.scrollIntoView({behavior:"auto",block:"nearest"})}async function x(){return b(!0)}async function b(g=!1){if(d){n.close(),i&&i.close(),await ri(d,g);let j=app.workspace.getActiveViewOfType(Oc.MarkdownView);if(!j)return;let C=l[u]??0,S=j.editor.offsetToPos(C);S.ch=0,j.editor.setCursor(S),j.editor.scrollIntoView({from:{line:S.line-10,ch:0},to:{line:S.line+10,ch:0}})}}function h(){new Zt(app,a??s).open(),n.close()}let _=g=>r(2,a=g.detail),p=(g,j)=>r(5,u=g),m=g=>b(g.ctrlKey),v=g=>{g.button==1&&b(!0)};return t.$$set=g=>{"modal"in g&&r(7,n=g.modal),"parent"in g&&r(0,i=g.parent),"singleFilePath"in g&&r(8,o=g.singleFilePath),"previousQuery"in g&&r(1,s=g.previousQuery)},t.$$.update=()=>{if(t.$$.dirty&2){e:r(2,a=s??"")}if(t.$$.dirty&772){e:(async()=>{a&&(r(9,f=new Yt(a)),r(3,d=(await ve.getSuggestions(f,{singleFilePath:o}))[0]??null)),r(5,u=0),await w()})()}if(t.$$.dirty&8){e:if(d){let g=c(d.matches);r(4,l=g.map(j=>Math.round((j.first().offset+j.last().offset)/2)))}}},[i,s,a,d,l,u,b,n,o,f,_,p,m,v]}var Mc=class extends Ae{constructor(e){super();De(this,e,zy,Ny,be,{modal:7,parent:0,singleFilePath:8,previousQuery:1})}},Rc=Mc;var ds=class extends Lc.Modal{constructor(e){super(e);this.modalEl.replaceChildren(),this.modalEl.addClass("omnisearch-modal","prompt"),this.modalEl.removeClass("modal"),this.modalEl.tabIndex=-1,this.scope.register([],"ArrowDown",s=>{s.preventDefault(),U.emit("arrow-down")}),this.scope.register([],"ArrowUp",s=>{s.preventDefault(),U.emit("arrow-up")});for(let s of[{k:"J",dir:"down"},{k:"K",dir:"up"}])for(let a of["Ctrl","Mod"])this.scope.register([a],s.k,l=>{this.app.vault.getConfig("vimMode")&&U.emit("arrow-"+s.dir)});for(let s of[{k:"N",dir:"down"},{k:"P",dir:"up"}])for(let a of["Ctrl","Mod"])this.scope.register([a],s.k,l=>{this.app.vault.getConfig("vimMode")&&U.emit("arrow-"+s.dir)});let r,n,i,o;I.openInNewPane?(r=["Mod"],n=[],i=["Mod","Shift"],o=["Shift"]):(r=[],n=["Mod"],i=["Shift"],o=["Mod","Shift"]),this.scope.register(n,"Enter",s=>{s.preventDefault(),U.emit("open-in-new-pane")}),this.scope.register(["Alt"],"Enter",s=>{s.preventDefault(),U.emit("insert-link")}),this.scope.register(i,"Enter",s=>{s.preventDefault(),U.emit("create-note")}),this.scope.register(o,"Enter",s=>{s.preventDefault(),U.emit("create-note",{newLeaf:!0})}),this.scope.register(r,"Enter",s=>{Da()||(s.preventDefault(),U.emit("enter"))}),this.scope.register([],"Tab",s=>{s.preventDefault(),U.emit("tab")}),this.scope.register(["Alt"],"ArrowDown",s=>{s.preventDefault(),U.emit("next-search-history")}),this.scope.register(["Alt"],"ArrowUp",s=>{s.preventDefault(),U.emit("prev-search-history")}),this.scope.register(["Ctrl"],"H",s=>{U.emit(qn.ToggleExcerpts)})}},Zt=class extends ds{constructor(e,r){super(e);let n=new Dc({target:this.modalEl,props:{modal:this,previousQuery:r}});this.onClose=()=>{n.$destroy()}}},kr=class extends ds{constructor(e,r,n="",i){super(e);let o=new Rc({target:this.modalEl,props:{modal:this,singleFilePath:r.path,parent:i,previousQuery:n}});i&&i.containerEl.toggleVisibility(!1),this.onClose=()=>{i&&i.containerEl.toggleVisibility(!0),o.$destroy()}}};var Bc=!1,Fi=[];function Vy(t){return t.map(e=>{let{score:r,path:n,basename:i,foundWords:o,matches:s,content:a}=e,l=yr(a,s[0]?.offset??-1);return{score:r,path:n,basename:i,foundWords:o,matches:s.map(u=>({match:u.match,offset:u.offset})),excerpt:l}})}async function Hy(t){let e=new Yt(t),r=await ve.getSuggestions(e);return Vy(r)}function $y(t){Fi.push(t),Bc&&t()}function Wy(t){Fi=Fi.filter(e=>e!==t)}function Nc(){Bc=!0,Fi.forEach(t=>t())}var hs={search:Hy,registerOnIndexed:$y,unregisterOnIndexed:Wy,refreshIndex:Ai};var ps=class extends Pr.Plugin{async onload(){if(await ja(this),this.addSettingTab(new Io(this)),Oo()){console.log("Omnisearch - Plugin disabled");return}await Uy(),await gr.clearOldDatabases(),Gy(this),I.ribbonIcon&&this.addRibbonButton(),U.disable("vault"),U.disable("infile"),U.on("global",qn.ToggleExcerpts,()=>{Ut.set(!I.showExcerpt)}),this.addCommand({id:"show-modal",name:"Vault search",callback:()=>{new Zt(app).open()}}),this.addCommand({id:"show-modal-infile",name:"In-file search",editorCallback:(e,r)=>{r.file&&new kr(app,r.file).open()}}),app.workspace.onLayoutReady(async()=>{this.registerEvent(this.app.vault.on("create",e=>{cn(e.path)&&(fe("Indexing new file",e.path),ve.addFromPaths([e.path]))})),this.registerEvent(this.app.vault.on("delete",e=>{fe("Removing file",e.path),we.removeFromLiveCache(e.path),ve.removeFromPaths([e.path])})),this.registerEvent(this.app.vault.on("modify",async e=>{cn(e.path)&&(fe("Updating file",e.path),await we.addToLiveCache(e.path),bc(e))})),this.registerEvent(this.app.vault.on("rename",async(e,r)=>{cn(e.path)&&(fe("Renaming file",e.path),we.removeFromLiveCache(r),we.addToLiveCache(e.path),ve.removeFromPaths([r]),await ve.addFromPaths([e.path]))})),this.executeFirstLaunchTasks(),await this.populateIndex()})}executeFirstLaunchTasks(){let e="1.10.1";if(I.welcomeMessage!==e){let r=new DocumentFragment;r.createSpan({},n=>{n.innerHTML="\u{1F50E} Omnisearch now requires the Text Extractor plugin to index PDF and images. See Omnisearch settings for more information."}),new Pr.Notice(r,2e4)}I.welcomeMessage=e,this.saveData(I)}async onunload(){delete globalThis.omnisearch,await Be.clearCache()}addRibbonButton(){this.ribbonButton=this.addRibbonIcon("search","Omnisearch",e=>{new Zt(app).open()})}removeRibbonButton(){this.ribbonButton&&this.ribbonButton.parentNode?.removeChild(this.ribbonButton)}async populateIndex(){console.time("Omnisearch - Indexing total time"),jt.set(We.ReadingFiles);let e=app.vault.getFiles().filter(n=>cn(n.path));console.log(`Omnisearch - ${e.length} files total`),console.log(`Omnisearch - Cache is ${wt()?"enabled":"disabled"}`),wt()&&(console.time("Omnisearch - Loading index from cache"),jt.set(We.LoadingCache),await ve.loadCache()&&console.timeEnd("Omnisearch - Loading index from cache"));let r=ve.getDiff(e.map(n=>({path:n.path,mtime:n.stat.mtime})));wt()&&(r.toAdd.length&&console.log("Omnisearch - Total number of files to add/update: "+r.toAdd.length),r.toRemove.length&&console.log("Omnisearch - Total number of files to remove: "+r.toRemove.length)),r.toAdd.length>=1e3&&wt()&&new Pr.Notice(`Omnisearch - ${r.toAdd.length} files need to be indexed. Obsidian may experience stutters and freezes during the process`,1e4),jt.set(We.IndexingFiles),ve.removeFromPaths(r.toRemove.map(n=>n.path)),await ve.addFromPaths(r.toAdd.map(n=>n.path)),(r.toRemove.length||r.toAdd.length)&&wt()&&(jt.set(We.WritingCache),I.useCache=!1,pe(this),await ve.writeToCache(),I.useCache=!0,pe(this)),console.timeEnd("Omnisearch - Indexing total time"),r.toAdd.length>=1e3&&new Pr.Notice("Omnisearch - Your files have been indexed."),jt.set(We.Done),Nc()}};async function Uy(){let t=[`${app.vault.configDir}/plugins/omnisearch/searchIndex.json`,`${app.vault.configDir}/plugins/omnisearch/notesCache.json`,`${app.vault.configDir}/plugins/omnisearch/notesCache.data`,`${app.vault.configDir}/plugins/omnisearch/searchIndex.data`,`${app.vault.configDir}/plugins/omnisearch/historyCache.json`,`${app.vault.configDir}/plugins/omnisearch/pdfCache.data`];for(let e of t)if(await app.vault.adapter.exists(e))try{await app.vault.adapter.remove(e)}catch{}}function Gy(t){t.registerObsidianProtocolHandler("omnisearch",e=>{new Zt(app,e.query).open()}),globalThis.omnisearch=hs,app.plugins.plugins.omnisearch.api=hs} + ${qn}`}),new q.Setting(e).setName("Clear cache data").setDesc(c).addButton(h=>{h.setButtonText("Clear cache"),h.onClick(async()=>{await we.clearCache()})})}}weightSlider(e,r){e.setLimits(1,5,.1).setValue(D[r]).setDynamicTooltip().onChange(n=>{D[r]=n,fe(this.plugin)})}},wt={useCache:!0,hideExcluded:!1,ignoreDiacritics:!0,indexedFileTypes:[],PDFIndexing:!1,imagesIndexing:!1,unsupportedFilesIndexing:"no",splitCamelCase:!1,openInNewPane:!1,ribbonIcon:!0,showExcerpt:!0,renderLineReturnInExcerpts:!0,showCreateButton:!1,highlight:!0,showPreviousQueryResults:!0,simpleSearch:!1,fuzziness:"1",weightBasename:3,weightDirectory:2,weightH1:1.5,weightH2:1.3,weightH3:1.1,weightUnmarkedTags:1.1,welcomeMessage:"",verboseLogging:!1},D=Object.assign({},wt);async function Fa(t){D=Object.assign({},wt,await t.loadData()),Gt.set(D.showExcerpt)}async function fe(t){await t.saveData(D)}function Os(){return app.loadLocalStorage(ln)==="1"}function Sa(){return D.unsupportedFilesIndexing==="yes"||D.unsupportedFilesIndexing==="default"&&!!app.vault.getConfig("showUnsupportedFiles")}var Ea=Fe(require("obsidian"));var Da=/[\u4e00-\u9fa5]/;var Ta=100,un=300,Ia=`suggestion-highlight omnisearch-highlight ${D.highlight?"omnisearch-default-highlight":""}`,ln="omnisearch-disabled",U=new Ki,Yn={ToggleExcerpts:"toggle-excerpts"},We=(s=>(s[s.Done=0]="Done",s[s.LoadingCache=1]="LoadingCache",s[s.ReadingFiles=2]="ReadingFiles",s[s.IndexingFiles=3]="IndexingFiles",s[s.WritingCache=4]="WritingCache",s))(We||{});var Ct=Cn(0),ka=!1;function Ps(t){ka=t}function Oa(){return ka}function Jn(){return app.plugins.plugins["cm-chs-patch"]}function et(){return app.plugins?.plugins?.["text-extractor"]?.api}function jt(){return!Ea.Platform.isIosApp&&D.useCache}var At=/[|\t\n\r= -#%-*,.\/:;?@[-\]_{}\u00A0\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u1680\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2000-\u200A\u2010-\u2029\u202F-\u2043\u2045-\u2051\u2053-\u205F\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u3000-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]+/u;var Ua=Fe(require("obsidian"));var ct=Fe(require("obsidian"));var Ma=Fe(require("crypto")),Ra=Fe(Pa());function Ft(t,...e){return e[1].trim()?`${e[0]}${e[1]}`:"<no content>"}function kd(t){return t.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function La(t){let e=t.split("/");return e.pop(),e.join("/")}function Od(t){return t.replace(/[-/\\^$*+?.()|[\]{}]/g,"[$&]")}function St(t){if(!t.length)return/^$/g;t.sort((n,i)=>i.length-n.length);let e="("+(Jn()?"":D.splitCamelCase?`^|${At.source}|-|[A-Z]`:`^|${At.source}|-`)+`)(${t.map(n=>Od(n)).join("|")})`;return new RegExp(`${e}`,"giu")}function Xn(t,e){return t.headings?.filter(r=>r.level===e).map(r=>r.heading)??[]}function Zn(t,e){return(t+e)%e}function vr(t,e){try{let r=e??-1,n=Math.max(0,r-Ta),i=Math.min(t.length,r+un);if(r>-1?t=(n>0?"\u2026":"")+t.slice(n,i).trim()+(ia).join(` +`);let o=t.lastIndexOf(` +`,r-n);o>0&&(t=t.slice(o))}return t=kd(t),D.renderLineReturnInExcerpts&&(t=t.trim().replaceAll(` +`,"
")),t}catch(r){return new ct.Notice("Omnisearch - Error while creating excerpt, see developer console"),console.error("Omnisearch - Error while creating excerpt"),console.error(r),""}}function Rs(t){return t.replace(/(\*|_)+(.+?)(\*|_)+/g,(e,r,n)=>n)}function Ba(t){return t?.frontmatter?(0,ct.parseFrontMatterAliases)(t.frontmatter)??[]:[]}function Na(t){let e=t?(0,ct.getAllTags)(t)??[]:[];return e=[...new Set(e.reduce((r,n)=>[...r,...n.split("/").filter(i=>i).map(i=>i.startsWith("#")?i:`#${i}`),n],[]))],e}function ft(t){return t==null?"":(t=t.replaceAll("`","[__omnisearch__backtick__]"),t=t.normalize("NFD").replace(/\p{Diacritic}/gu,""),t=t.replaceAll("[__omnisearch__backtick__]","`"),t)}function Qt(){return ct.Platform.isMacOS?"\u2318":"ctrl"}function Pd(t){let e=!!et(),r=e&&D.PDFIndexing,n=e&&D.imagesIndexing;return ei(t)||br(t)||ti(t)||r&&qt(t)||n&&_r(t)}function Ls(t){return Sa()||ei(t)||br(t)||ti(t)}function fn(t){return Ls(t)||Pd(t)}function _r(t){let e=Yt(t);return e==="png"||e==="jpg"||e==="jpeg"||e==="webp"}function qt(t){return Yt(t)==="pdf"}function ei(t){return[...D.indexedFileTypes,"md"].some(e=>t.endsWith(`.${e}`))}function br(t){return t.endsWith(".canvas")}function ti(t){return t.endsWith(".loom")||t.endsWith(".dashboard")}function Yt(t){let e=t.split(".");return e[e.length-1]??""}function Ka(t){return ct.Platform.isMobileApp?(0,Ra.md5)(t.toString()):(0,Ma.createHash)("md5").update(t).digest("hex")}function za(t,e){let r=[],n=0,i=t.length;for(;nr);return e.length>1?e:[]}function Ha(t){return t.includes("-")?t.split("-").filter(e=>e):[]}function de(...t){Wa(console.log,...t)}function $a(...t){Wa(console.warn,...t)}function Wa(t,...e){if(D.verboseLogging){let r=new Date,n=`${r.getMinutes()}:${r.getSeconds()}:${r.getMilliseconds()}`;t("Omnisearch -",n+" -",...e)}}async function Md(t){let e=app.vault.getFiles().find(o=>o.path===t);if(!e)throw new Error(`Invalid file path: "${t}"`);let r=null,n=et();if(ei(t))r=await app.vault.cachedRead(e);else if(br(t)){let o=JSON.parse(await app.vault.cachedRead(e)),a=[];for(let u of o.nodes)u.type==="text"?a.push(u.text):u.type==="file"&&a.push(u.file);for(let u of o.edges.filter(l=>!!l.label))a.push(u.label);r=a.join(`\r +`)}else if(ti(t))try{let o=JSON.parse(await app.vault.cachedRead(e)),a=[],u=l=>{for(let f in l)typeof l[f]=="object"?u(l[f]):f==="markdown"&&a.push(l[f])};u(o),r=a.join(`\r +`)}catch(o){console.error("Omnisearch: Error while parsing Dataloom file",t),console.error(o)}else _r(t)&&D.imagesIndexing&&n?.canFileBeExtracted(t)?r=await n.extractText(e):qt(t)&&D.PDFIndexing&&n?.canFileBeExtracted(t)?r=await n.extractText(e):Ls(t)&&(r=e.path);r==null&&(console.warn(`Omnisearch: ${r} content for file`,e.path),r=""),r=ft(r);let i=app.metadataCache.getFileCache(e);if(i&&i.frontmatter?.["excalidraw-plugin"]){let o=i.sections?.filter(a=>a.type==="comment")??[];for(let{start:a,end:u}of o.map(l=>l.position))r=r.substring(0,a.offset-1)+r.substring(u.offset)}let s=Na(i);return{basename:ft(e.basename),content:r,path:e.path,mtime:e.stat.mtime,tags:s,unmarkedTags:s.map(o=>o.replace("#","")),aliases:Ba(i).join(""),headings1:i?Xn(i,1).join(" "):"",headings2:i?Xn(i,2).join(" "):"",headings3:i?Xn(i,3).join(" "):""}}var Ga=class{constructor(){this.nextQueryIsEmpty=!1;this.documents=new Map}async addToLiveCache(e){try{let r=await Md(e);if(!r.path){console.error(`Missing .path field in IndexedDocument "${r.basename}", skipping`);return}this.documents.set(e,r)}catch(r){console.warn(`Omnisearch: Error while adding "${e}" to live cache`,r),this.removeFromLiveCache(e)}}removeFromLiveCache(e){this.documents.delete(e)}async getDocument(e){return this.documents.has(e)?this.documents.get(e):(de("Generating IndexedDocument from",e),await this.addToLiveCache(e),this.documents.get(e))}async addToSearchHistory(e){if(!e){this.nextQueryIsEmpty=!0;return}this.nextQueryIsEmpty=!1;let r=await we.searchHistory.toArray();r=r.filter(n=>n.query!==e).reverse(),r.unshift({query:e}),r=r.slice(0,10),await we.searchHistory.clear(),await we.searchHistory.bulkAdd(r)}async getSearchHistory(){let e=(await we.searchHistory.toArray()).reverse().map(r=>r.query);return this.nextQueryIsEmpty&&e.unshift(""),e}getDocumentsChecksum(e){return Ka(JSON.stringify(e.sort((r,n)=>r.pathn.path?1:0)))}async getMinisearchCache(){try{return(await we.minisearch.toArray())[0]}catch(e){return new Ua.Notice("Omnisearch - Cache missing or invalid. Some freezes may occur while Omnisearch indexes your vault."),console.error("Omnisearch - Error while loading Minisearch cache"),console.error(e),null}}async writeMinisearchCache(e,r){let n=Array.from(r).map(([i,s])=>({path:i,mtime:s}));await we.minisearch.clear(),await we.minisearch.add({date:new Date().toISOString(),paths:n,data:e.toJSON()}),console.log("Omnisearch - Search cache written")}},je=new Ga;function Rd(t){let e,r,n,i,s,o,a,u,l=t[8].default,f=rr(l,t,t[7],null);return{c(){e=R("div"),r=R("div"),n=R("input"),s=W(),f&&f.c(),B(n,"class","prompt-input"),B(n,"placeholder",t[0]),B(n,"spellcheck","false"),B(n,"type","text"),B(r,"class","omnisearch-input-field"),B(e,"class","omnisearch-input-container")},m(p,c){$(p,e,c),I(e,r),I(r,n),t[9](n),Oi(n,t[1]),I(e,s),f&&f.m(e,null),o=!0,a||(u=[Be(n,"input",t[10]),Fo(i=t[3].call(null,n)),Be(n,"compositionend",t[11]),Be(n,"compositionstart",t[12]),Be(n,"input",t[4])],a=!0)},p(p,[c]){(!o||c&1)&&B(n,"placeholder",p[0]),c&2&&n.value!==p[1]&&Oi(n,p[1]),f&&f.p&&(!o||c&128)&&ir(f,l,p,p[7],o?nr(l,p[7],c,null):sr(p[7]),null)},i(p){o||(ee(f,p),o=!0)},o(p){re(f,p),o=!1},d(p){p&&H(e),t[9](null),f&&f.d(p),a=!1,Ue(u)}}}function Ld(t,e,r){let{$$slots:n={},$$scope:i}=e,{initialValue:s=""}=e,{placeholder:o=""}=e,a=!1,u="",l,f=Ri();function p(m){r(1,u=m)}function c(m){m&&!a&&!u&&(a=!0,r(1,u=m),h())}function h(m){mt().then(()=>(l.focus(),mt())).then(()=>{l.select()})}let w=(0,Qa.debounce)(()=>{je.addToSearchHistory(""),f("input",u)},300);function x(m){tt[m?"unshift":"push"](()=>{l=m,r(2,l)})}function b(){u=this.value,r(1,u)}let d=m=>Ps(!1),_=m=>Ps(!0);return t.$$set=m=>{"initialValue"in m&&r(5,s=m.initialValue),"placeholder"in m&&r(0,o=m.placeholder),"$$scope"in m&&r(7,i=m.$$scope)},t.$$.update=()=>{if(t.$$.dirty&32){e:c(s)}},[o,u,l,h,w,s,p,i,n,x,b,d,_]}var qa=class extends Se{constructor(e){super();Te(this,e,Ld,Rd,be,{initialValue:5,placeholder:0,setInputValue:6})}get setInputValue(){return this.$$.ctx[6]}},ri=qa;function Bd(t){let e,r,n,i,s=t[1].default,o=rr(s,t,t[0],null);return{c(){e=R("div"),o&&o.c(),B(e,"class","prompt-results")},m(a,u){$(a,e,u),o&&o.m(e,null),r=!0,n||(i=Be(e,"mousedown",Nd),n=!0)},p(a,[u]){o&&o.p&&(!r||u&1)&&ir(o,s,a,a[0],r?nr(s,a[0],u,null):sr(a[0]),null)},i(a){r||(ee(o,a),r=!0)},o(a){re(o,a),r=!1},d(a){a&&H(e),o&&o.d(a),n=!1,i()}}}var Nd=t=>t.preventDefault();function Kd(t,e,r){let{$$slots:n={},$$scope:i}=e;return t.$$set=s=>{"$$scope"in s&&r(0,i=s.$$scope)},[i,n]}var Ya=class extends Se{constructor(e){super();Te(this,e,Kd,Bd,be,{})}},ni=Ya;var Bs=Fe(require("obsidian"));async function ii(t,e=!1){let r=St(t.foundWords);r.exec(t.content);let n=r.lastIndex,i=!1;app.workspace.iterateAllLeaves(a=>{a.view instanceof Bs.MarkdownView&&!e&&a.getViewState().state?.file===t.path&&a.getViewState()?.pinned&&(app.workspace.setActiveLeaf(a,{focus:!0}),i=!0)}),i||await app.workspace.openLinkText(t.path,"",e);let s=app.workspace.getActiveViewOfType(Bs.MarkdownView);if(!s)return;let o=s.editor.offsetToPos(n);o.ch=0,s.editor.setCursor(o),s.editor.scrollIntoView({from:{line:o.line-10,ch:0},to:{line:o.line+10,ch:0}})}async function Ja(t,e=!1){try{let r;switch(app.vault.getConfig("newFileLocation")){case"current":r=(app.workspace.getActiveFile()?.parent?.path??"")+"/";break;case"folder":r=app.vault.getConfig("newFileFolderPath")+"/";break;default:r="";break}await app.workspace.openLinkText(`${r}${t}.md`,"",e)}catch(r){throw r.message="OmniSearch - Could not create note: "+r.message,console.error(r),r}}function zd(t){let e;return{c(){e=R("span"),e.innerHTML='',B(e,"class","suggestion-flair"),B(e,"aria-label","Not created yet, select to create")},m(r,n){$(r,e,n)},p:ce,i:ce,o:ce,d(r){r&&H(e)}}}function Vd(t){"use strict";return[]}var Xa=class extends Se{constructor(e){super();Te(this,e,Vd,zd,be,{})}},Za=Xa;function el(t){let e,r;return e=new Za({}),{c(){Ne(e.$$.fragment)},m(n,i){Pe(e,n,i),r=!0},i(n){r||(ee(e.$$.fragment,n),r=!0)},o(n){re(e.$$.fragment,n),r=!1},d(n){De(e,n)}}}function Hd(t){let e,r,n,i,s,o=t[2]&&el(t),a=t[4].default,u=rr(a,t,t[3],null);return{c(){e=R("div"),o&&o.c(),r=W(),u&&u.c(),B(e,"data-result-id",t[0]),B(e,"class","suggestion-item omnisearch-result"),Pi(e,"is-selected",t[1])},m(l,f){$(l,e,f),o&&o.m(e,null),I(e,r),u&&u.m(e,null),n=!0,i||(s=[Be(e,"mousemove",t[5]),Be(e,"click",t[6]),Be(e,"keypress",t[7]),Be(e,"auxclick",t[8])],i=!0)},p(l,[f]){l[2]?o?f&4&&ee(o,1):(o=el(l),o.c(),ee(o,1),o.m(e,r)):o&&(Bt(),re(o,1,1,()=>{o=null}),Nt()),u&&u.p&&(!n||f&8)&&ir(u,a,l,l[3],n?nr(a,l[3],f,null):sr(l[3]),null),(!n||f&1)&&B(e,"data-result-id",l[0]),(!n||f&2)&&Pi(e,"is-selected",l[1])},i(l){n||(ee(o),ee(u,l),n=!0)},o(l){re(o),re(u,l),n=!1},d(l){l&&H(e),o&&o.d(),u&&u.d(l),i=!1,Ue(s)}}}function $d(t,e,r){let{$$slots:n={},$$scope:i}=e,{id:s}=e,{selected:o=!1}=e,{glyph:a=!1}=e;function u(c){Ve.call(this,t,c)}function l(c){Ve.call(this,t,c)}function f(c){Ve.call(this,t,c)}function p(c){Ve.call(this,t,c)}return t.$$set=c=>{"id"in c&&r(0,s=c.id),"selected"in c&&r(1,o=c.selected),"glyph"in c&&r(2,a=c.glyph),"$$scope"in c&&r(3,i=c.$$scope)},[s,o,a,i,n,u,l,f,p]}var tl=class extends Se{constructor(e){super();Te(this,e,$d,Hd,be,{id:0,selected:1,glyph:2})}},si=tl;var xr=Fe(require("obsidian"));function rl(t){let e,r=t[1].matches.length+"",n,i,s=(t[1].matches.length>1?"matches":"match")+"",o;return{c(){e=R("span"),n=xe(r),i=xe("\xA0"),o=xe(s),B(e,"class","omnisearch-result__counter")},m(a,u){$(a,e,u),I(e,n),I(e,i),I(e,o)},p(a,u){u&2&&r!==(r=a[1].matches.length+"")&&Ge(n,r),u&2&&s!==(s=(a[1].matches.length>1?"matches":"match")+"")&&Ge(o,s)},d(a){a&&H(e)}}}function nl(t){let e,r,n,i,s;return{c(){e=R("div"),r=R("span"),n=W(),i=R("span"),s=xe(t[6]),B(e,"class","omnisearch-result__folder-path")},m(o,a){$(o,e,a),I(e,r),t[12](r),I(e,n),I(e,i),I(i,s)},p(o,a){a&64&&Ge(s,o[6])},d(o){o&&H(e),t[12](null)}}}function il(t){let e,r=t[8].replace(t[9],Ft)+"";return{c(){e=R("div"),B(e,"class","omnisearch-result__body")},m(n,i){$(n,e,i),e.innerHTML=r},p(n,i){i&768&&r!==(r=n[8].replace(n[9],Ft)+"")&&(e.innerHTML=r)},d(n){n&&H(e)}}}function sl(t){let e,r,n;return{c(){e=R("div"),r=R("img"),ze(r,"width","100px"),ki(r.src,n=t[5])||B(r,"src",n),B(r,"alt",""),B(e,"class","omnisearch-result__image-container")},m(i,s){$(i,e,s),I(e,r)},p(i,s){s&32&&!ki(r.src,n=i[5])&&B(r,"src",n)},d(i){i&&H(e)}}}function Wd(t){let e,r,n,i,s,o,a=t[2].replace(t[9],Ft)+"",u,l,f,p=Yt(t[1].path)+"",c,h,w,x,b,d,_=t[1].matches.length>0&&rl(t),m=t[6]&&nl(t),g=t[10]&&il(t),v=t[5]&&sl(t);return{c(){e=R("div"),r=R("div"),n=R("span"),i=R("span"),s=W(),o=R("span"),u=W(),l=R("span"),f=xe("."),c=xe(p),h=W(),_&&_.c(),w=W(),m&&m.c(),x=W(),b=R("div"),g&&g.c(),d=W(),v&&v.c(),B(l,"class","omnisearch-result__extension"),B(n,"class","omnisearch-result__title"),B(r,"class","omnisearch-result__title-container"),ze(b,"display","flex"),ze(b,"flex-direction","row")},m(y,j){$(y,e,j),I(e,r),I(r,n),I(n,i),t[11](i),I(n,s),I(n,o),o.innerHTML=a,I(n,u),I(n,l),I(l,f),I(l,c),I(n,h),_&&_.m(n,null),I(e,w),m&&m.m(e,null),I(e,x),I(e,b),g&&g.m(b,null),I(b,d),v&&v.m(b,null)},p(y,j){j&516&&a!==(a=y[2].replace(y[9],Ft)+"")&&(o.innerHTML=a),j&2&&p!==(p=Yt(y[1].path)+"")&&Ge(c,p),y[1].matches.length>0?_?_.p(y,j):(_=rl(y),_.c(),_.m(n,null)):_&&(_.d(1),_=null),y[6]?m?m.p(y,j):(m=nl(y),m.c(),m.m(e,x)):m&&(m.d(1),m=null),y[10]?g?g.p(y,j):(g=il(y),g.c(),g.m(b,d)):g&&(g.d(1),g=null),y[5]?v?v.p(y,j):(v=sl(y),v.c(),v.m(b,null)):v&&(v.d(1),v=null)},d(y){y&&H(e),t[11](null),_&&_.d(),m&&m.d(),g&&g.d(),v&&v.d()}}}function Ud(t){let e,r;return e=new si({props:{glyph:t[7],id:t[1].path,selected:t[0],$$slots:{default:[Wd]},$$scope:{ctx:t}}}),e.$on("click",t[13]),e.$on("auxclick",t[14]),e.$on("mousemove",t[15]),{c(){Ne(e.$$.fragment)},m(n,i){Pe(e,n,i),r=!0},p(n,[i]){let s={};i&128&&(s.glyph=n[7]),i&2&&(s.id=n[1].path),i&1&&(s.selected=n[0]),i&67454&&(s.$$scope={dirty:i,ctx:n}),e.$set(s)},i(n){r||(ee(e.$$.fragment,n),r=!0)},o(n){re(e.$$.fragment,n),r=!1},d(n){De(e,n)}}}function Gd(t,e,r){let n,i,s,o;_n(t,Gt,m=>r(10,o=m));let{selected:a=!1}=e,{note:u}=e,l=null,f="",p="",c,h;function w(m){tt[m?"unshift":"push"](()=>{h=m,r(4,h)})}function x(m){tt[m?"unshift":"push"](()=>{c=m,r(3,c)})}function b(m){Ve.call(this,t,m)}function d(m){Ve.call(this,t,m)}function _(m){Ve.call(this,t,m)}t.$$set=m=>{"selected"in m&&r(0,a=m.selected),"note"in m&&r(1,u=m.note)},t.$$.update=()=>{if(t.$$.dirty&2){e:if(r(5,l=null),_r(u.path)){let m=app.vault.getFiles().find(g=>g.path===u.path);m&&r(5,l=app.vault.getResourcePath(m))}}if(t.$$.dirty&2){e:r(9,n=St(u.foundWords))}if(t.$$.dirty&2){e:r(8,i=vr(u.content,u.matches[0]?.offset??-1))}if(t.$$.dirty&30){e:r(2,f=u.basename),r(6,p=La(u.path)),D.ignoreDiacritics&&r(2,f=ft(f)),c&&(0,xr.setIcon)(c,"folder-open"),h&&(_r(u.path)?(0,xr.setIcon)(h,"image"):qt(u.path)?(0,xr.setIcon)(h,"file-text"):br(u.path)?(0,xr.setIcon)(h,"layout-dashboard"):(0,xr.setIcon)(h,"file"))}};e:r(7,s=!1);return[a,u,f,c,h,l,p,s,i,n,o,w,x,b,d,_]}var ol=class extends Se{constructor(e){super();Te(this,e,Gd,Ud,be,{selected:0,note:1})}},al=ol;var fl=Fe(cl()),Ns=["ext","path"],Jt=class{#e;constructor(e=""){D.ignoreDiacritics&&(e=ft(e));let r=(0,fl.parse)(e.toLowerCase(),{tokenize:!0,keywords:Ns});r.text=r.text??[],r.exclude=r.exclude??{},r.exclude.text=r.exclude.text??[],Array.isArray(r.exclude.text)||(r.exclude.text=[r.exclude.text]);for(let n of Ns){let i=r[n];i&&(r[n]=Array.isArray(i)?i:[i]);let s=r.exclude[n];s&&(r.exclude[n]=Array.isArray(s)?s:[s])}this.query=r,this.#e=e.match(/"([^"]+)"/g)?.map(n=>n.replace(/"/g,""))??[]}isEmpty(){for(let e of Ns)if(this.query[e]?.length||this.query.text.length)return!1;return!0}segmentsToStr(){return this.query.text.join(" ")}getTags(){return this.query.text.filter(e=>e.startsWith("#"))}getTagsWithoutHashtag(){return this.getTags().map(e=>e.replace(/^#/,""))}getExactTerms(){return[...new Set([...this.query.text.filter(e=>e.split(" ").length>1),...this.#e])]}};var ae=function(){return ae=Object.assign||function(e){for(var r,n=1,i=arguments.length;n0&&s[s.length-1])&&(l[0]===6||l[0]===2)){r=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function me(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s}var Yd="ENTRIES",dl="KEYS",hl="VALUES",Ee="",Ks=function(){function t(e,r){var n=e._tree,i=Array.from(n.keys());this.set=e,this._type=r,this._path=i.length>0?[{node:n,keys:i}]:[]}return t.prototype.next=function(){var e=this.dive();return this.backtrack(),e},t.prototype.dive=function(){if(this._path.length===0)return{done:!0,value:void 0};var e=wr(this._path),r=e.node,n=e.keys;if(wr(n)===Ee)return{done:!1,value:this.result()};var i=r.get(wr(n));return this._path.push({node:i,keys:Array.from(i.keys())}),this.dive()},t.prototype.backtrack=function(){if(this._path.length!==0){var e=wr(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}},t.prototype.key=function(){return this.set._prefix+this._path.map(function(e){var r=e.keys;return wr(r)}).filter(function(e){return e!==Ee}).join("")},t.prototype.value=function(){return wr(this._path).node.get(Ee)},t.prototype.result=function(){switch(this._type){case hl:return this.value();case dl:return this.key();default:return[this.key(),this.value()]}},t.prototype[Symbol.iterator]=function(){return this},t}(),wr=function(t){return t[t.length-1]},Jd=function(t,e,r){var n=new Map;if(e===void 0)return n;for(var i=e.length+1,s=i+r,o=new Uint8Array(s*i).fill(r+1),a=0;ar)continue e}pl(t.get(h),e,r,n,i,x,o,a+h)}}}catch(O){u={error:O}}finally{try{c&&!c.done&&(l=p.return)&&l.call(p)}finally{if(u)throw u.error}}},zs=function(){function t(e,r){e===void 0&&(e=new Map),r===void 0&&(r=""),this._size=void 0,this._tree=e,this._prefix=r}return t.prototype.atPrefix=function(e){var r,n;if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");var i=me(ai(this._tree,e.slice(this._prefix.length)),2),s=i[0],o=i[1];if(s===void 0){var a=me($s(o),2),u=a[0],l=a[1];try{for(var f=G(u.keys()),p=f.next();!p.done;p=f.next()){var c=p.value;if(c!==Ee&&c.startsWith(l)){var h=new Map;return h.set(c.slice(l.length),u.get(c)),new t(h,e)}}}catch(w){r={error:w}}finally{try{p&&!p.done&&(n=f.return)&&n.call(f)}finally{if(r)throw r.error}}}return new t(s,e)},t.prototype.clear=function(){this._size=void 0,this._tree.clear()},t.prototype.delete=function(e){return this._size=void 0,Xd(this._tree,e)},t.prototype.entries=function(){return new Ks(this,Yd)},t.prototype.forEach=function(e){var r,n;try{for(var i=G(this),s=i.next();!s.done;s=i.next()){var o=me(s.value,2),a=o[0],u=o[1];e(a,u,this)}}catch(l){r={error:l}}finally{try{s&&!s.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}},t.prototype.fuzzyGet=function(e,r){return Jd(this._tree,e,r)},t.prototype.get=function(e){var r=Vs(this._tree,e);return r!==void 0?r.get(Ee):void 0},t.prototype.has=function(e){var r=Vs(this._tree,e);return r!==void 0&&r.has(Ee)},t.prototype.keys=function(){return new Ks(this,dl)},t.prototype.set=function(e,r){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var n=Hs(this._tree,e);return n.set(Ee,r),this},Object.defineProperty(t.prototype,"size",{get:function(){if(this._size)return this._size;this._size=0;for(var e=this.entries();!e.next().done;)this._size+=1;return this._size},enumerable:!1,configurable:!0}),t.prototype.update=function(e,r){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var n=Hs(this._tree,e);return n.set(Ee,r(n.get(Ee))),this},t.prototype.fetch=function(e,r){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var n=Hs(this._tree,e),i=n.get(Ee);return i===void 0&&n.set(Ee,i=r()),i},t.prototype.values=function(){return new Ks(this,hl)},t.prototype[Symbol.iterator]=function(){return this.entries()},t.from=function(e){var r,n,i=new t;try{for(var s=G(e),o=s.next();!o.done;o=s.next()){var a=me(o.value,2),u=a[0],l=a[1];i.set(u,l)}}catch(f){r={error:f}}finally{try{o&&!o.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}return i},t.fromObject=function(e){return t.from(Object.entries(e))},t}(),ai=function(t,e,r){var n,i;if(r===void 0&&(r=[]),e.length===0||t==null)return[t,r];try{for(var s=G(t.keys()),o=s.next();!o.done;o=s.next()){var a=o.value;if(a!==Ee&&e.startsWith(a))return r.push([t,a]),ai(t.get(a),e.slice(a.length),r)}}catch(u){n={error:u}}finally{try{o&&!o.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}return r.push([t,e]),ai(void 0,"",r)},Vs=function(t,e){var r,n;if(e.length===0||t==null)return t;try{for(var i=G(t.keys()),s=i.next();!s.done;s=i.next()){var o=s.value;if(o!==Ee&&e.startsWith(o))return Vs(t.get(o),e.slice(o.length))}}catch(a){r={error:a}}finally{try{s&&!s.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}},Hs=function(t,e){var r,n,i=e.length;e:for(var s=0;t&&s0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new zs,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}},t.prototype.discard=function(e){var r=this,n=this._idToShortId.get(e);if(n==null)throw new Error("MiniSearch: cannot discard document with ID ".concat(e,": it is not in the index"));this._idToShortId.delete(e),this._documentIds.delete(n),this._storedFields.delete(n),(this._fieldLength.get(n)||[]).forEach(function(i,s){r.removeFieldLength(n,s,r._documentCount,i)}),this._fieldLength.delete(n),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()},t.prototype.maybeAutoVacuum=function(){if(this._options.autoVacuum!==!1){var e=this._options.autoVacuum,r=e.minDirtFactor,n=e.minDirtCount,i=e.batchSize,s=e.batchWait;this.conditionalVacuum({batchSize:i,batchWait:s},{minDirtCount:n,minDirtFactor:r})}},t.prototype.discardAll=function(e){var r,n,i=this._options.autoVacuum;try{this._options.autoVacuum=!1;try{for(var s=G(e),o=s.next();!o.done;o=s.next()){var a=o.value;this.discard(a)}}catch(u){r={error:u}}finally{try{o&&!o.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}}finally{this._options.autoVacuum=i}this.maybeAutoVacuum()},t.prototype.replace=function(e){var r=this._options,n=r.idField,i=r.extractField,s=i(e,n);this.discard(s),this.add(e)},t.prototype.vacuum=function(e){return e===void 0&&(e={}),this.conditionalVacuum(e)},t.prototype.conditionalVacuum=function(e,r){var n=this;return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&r,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(function(){var i=n._enqueuedVacuumConditions;return n._enqueuedVacuumConditions=Ys,n.performVacuuming(e,i)}),this._enqueuedVacuum)):this.vacuumConditionsMet(r)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)},t.prototype.performVacuuming=function(e,r){return Qd(this,void 0,void 0,function(){var n,i,s,o,a,u,l,f,p,c,h,w,x,b,d,_,m,g,v,y,j,C,F,E,P;return qd(this,function(L){switch(L.label){case 0:if(n=this._dirtCount,!this.vacuumConditionsMet(r))return[3,10];i=e.batchSize||qs.batchSize,s=e.batchWait||qs.batchWait,o=1,L.label=1;case 1:L.trys.push([1,7,8,9]),a=G(this._index),u=a.next(),L.label=2;case 2:if(u.done)return[3,6];l=me(u.value,2),f=l[0],p=l[1];try{for(c=(C=void 0,G(p)),h=c.next();!h.done;h=c.next()){w=me(h.value,2),x=w[0],b=w[1];try{for(d=(E=void 0,G(b)),_=d.next();!_.done;_=d.next())m=me(_.value,1),g=m[0],!this._documentIds.has(g)&&(b.size<=1?p.delete(x):b.delete(g))}catch(O){E={error:O}}finally{try{_&&!_.done&&(P=d.return)&&P.call(d)}finally{if(E)throw E.error}}}}catch(O){C={error:O}}finally{try{h&&!h.done&&(F=c.return)&&F.call(c)}finally{if(C)throw C.error}}return this._index.get(f).size===0&&this._index.delete(f),o%i!=0?[3,4]:[4,new Promise(function(O){return setTimeout(O,s)})];case 3:L.sent(),L.label=4;case 4:o+=1,L.label=5;case 5:return u=a.next(),[3,2];case 6:return[3,9];case 7:return v=L.sent(),y={error:v},[3,9];case 8:try{u&&!u.done&&(j=a.return)&&j.call(a)}finally{if(y)throw y.error}return[7];case 9:this._dirtCount-=n,L.label=10;case 10:return[4,null];case 11:return L.sent(),this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null,[2]}})})},t.prototype.vacuumConditionsMet=function(e){if(e==null)return!0;var r=e.minDirtCount,n=e.minDirtFactor;return r=r||Js.minDirtCount,n=n||Js.minDirtFactor,this.dirtCount>=r&&this.dirtFactor>=n},Object.defineProperty(t.prototype,"isVacuuming",{get:function(){return this._currentVacuum!=null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dirtCount",{get:function(){return this._dirtCount},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dirtFactor",{get:function(){return this._dirtCount/(1+this._documentCount+this._dirtCount)},enumerable:!1,configurable:!0}),t.prototype.has=function(e){return this._idToShortId.has(e)},t.prototype.search=function(e,r){var n,i;r===void 0&&(r={});var s=this.executeQuery(e,r),o=[];try{for(var a=G(s),u=a.next();!u.done;u=a.next()){var l=me(u.value,2),f=l[0],p=l[1],c=p.score,h=p.terms,w=p.match,x=h.length,b={id:this._documentIds.get(f),score:c*x,terms:Object.keys(w),match:w};Object.assign(b,this._storedFields.get(f)),(r.filter==null||r.filter(b))&&o.push(b)}}catch(d){n={error:d}}finally{try{u&&!u.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}return o.sort(bl),o},t.prototype.autoSuggest=function(e,r){var n,i,s,o;r===void 0&&(r={}),r=ae(ae({},this._options.autoSuggestOptions),r);var a=new Map;try{for(var u=G(this.search(e,r)),l=u.next();!l.done;l=u.next()){var f=l.value,p=f.score,c=f.terms,h=c.join(" "),w=a.get(h);w!=null?(w.score+=p,w.count+=1):a.set(h,{score:p,terms:c,count:1})}}catch(v){n={error:v}}finally{try{l&&!l.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}var x=[];try{for(var b=G(a),d=b.next();!d.done;d=b.next()){var _=me(d.value,2),w=_[0],m=_[1],p=m.score,c=m.terms,g=m.count;x.push({suggestion:w,terms:c,score:p/g})}}catch(v){s={error:v}}finally{try{d&&!d.done&&(o=b.return)&&o.call(b)}finally{if(s)throw s.error}}return x.sort(bl),x},Object.defineProperty(t.prototype,"documentCount",{get:function(){return this._documentCount},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"termCount",{get:function(){return this._index.size},enumerable:!1,configurable:!0}),t.loadJSON=function(e,r){if(r==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),r)},t.getDefault=function(e){if(Qs.hasOwnProperty(e))return Gs(Qs,e);throw new Error('MiniSearch: unknown option "'.concat(e,'"'))},t.loadJS=function(e,r){var n,i,s,o,a,u,l=e.index,f=e.documentCount,p=e.nextId,c=e.documentIds,h=e.fieldIds,w=e.fieldLength,x=e.averageFieldLength,b=e.storedFields,d=e.dirtCount,_=e.serializationVersion;if(_!==1&&_!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");var m=new t(r);m._documentCount=f,m._nextId=p,m._documentIds=li(c),m._idToShortId=new Map,m._fieldIds=h,m._fieldLength=li(w),m._avgFieldLength=x,m._storedFields=li(b),m._dirtCount=d||0,m._index=new zs;try{for(var g=G(m._documentIds),v=g.next();!v.done;v=g.next()){var y=me(v.value,2),j=y[0],C=y[1];m._idToShortId.set(C,j)}}catch(S){n={error:S}}finally{try{v&&!v.done&&(i=g.return)&&i.call(g)}finally{if(n)throw n.error}}try{for(var F=G(l),E=F.next();!E.done;E=F.next()){var P=me(E.value,2),L=P[0],O=P[1],z=new Map;try{for(var J=(a=void 0,G(Object.keys(O))),Q=J.next();!Q.done;Q=J.next()){var Z=Q.value,A=O[Z];_===1&&(A=A.ds),z.set(parseInt(Z,10),li(A))}}catch(S){a={error:S}}finally{try{Q&&!Q.done&&(u=J.return)&&u.call(J)}finally{if(a)throw a.error}}m._index.set(L,z)}}catch(S){s={error:S}}finally{try{E&&!E.done&&(o=F.return)&&o.call(F)}finally{if(s)throw s.error}}return m},t.prototype.executeQuery=function(e,r){var n=this;if(r===void 0&&(r={}),typeof e!="string"){var i=ae(ae(ae({},r),e),{queries:void 0}),s=e.queries.map(function(b){return n.executeQuery(b,i)});return this.combineResults(s,e.combineWith)}var o=this._options,a=o.tokenize,u=o.processTerm,l=o.searchOptions,f=ae(ae({tokenize:a,processTerm:u},l),r),p=f.tokenize,c=f.processTerm,h=p(e).flatMap(function(b){return c(b)}).filter(function(b){return!!b}),w=h.map(nh(f)),x=w.map(function(b){return n.executeQuerySpec(b,f)});return this.combineResults(x,f.combineWith)},t.prototype.executeQuerySpec=function(e,r){var n,i,s,o,a=ae(ae({},this._options.searchOptions),r),u=(a.fields||this._options.fields).reduce(function(Z,A){var S;return ae(ae({},Z),(S={},S[A]=Gs(Z,A)||1,S))},a.boost||{}),l=a.boostDocument,f=a.weights,p=a.maxFuzzy,c=a.bm25,h=ae(ae({},vl.weights),f),w=h.fuzzy,x=h.prefix,b=this._index.get(e.term),d=this.termResults(e.term,e.term,1,b,u,l,c),_,m;if(e.prefix&&(_=this._index.atPrefix(e.term)),e.fuzzy){var g=e.fuzzy===!0?.2:e.fuzzy,v=g<1?Math.min(p,Math.round(e.term.length*g)):g;v&&(m=this._index.fuzzyGet(e.term,v))}if(_)try{for(var y=G(_),j=y.next();!j.done;j=y.next()){var C=me(j.value,2),F=C[0],E=C[1],P=F.length-e.term.length;if(!!P){m==null||m.delete(F);var L=x*F.length/(F.length+.3*P);this.termResults(e.term,F,L,E,u,l,c,d)}}}catch(Z){n={error:Z}}finally{try{j&&!j.done&&(i=y.return)&&i.call(y)}finally{if(n)throw n.error}}if(m)try{for(var O=G(m.keys()),z=O.next();!z.done;z=O.next()){var F=z.value,J=me(m.get(F),2),Q=J[0],P=J[1];if(!!P){var L=w*F.length/(F.length+P);this.termResults(e.term,F,L,Q,u,l,c,d)}}}catch(Z){s={error:Z}}finally{try{z&&!z.done&&(o=O.return)&&o.call(O)}finally{if(s)throw s.error}}return d},t.prototype.combineResults=function(e,r){if(r===void 0&&(r=Ws),e.length===0)return new Map;var n=r.toLowerCase();return e.reduce(eh[n])||new Map},t.prototype.toJSON=function(){var e,r,n,i,s=[];try{for(var o=G(this._index),a=o.next();!a.done;a=o.next()){var u=me(a.value,2),l=u[0],f=u[1],p={};try{for(var c=(n=void 0,G(f)),h=c.next();!h.done;h=c.next()){var w=me(h.value,2),x=w[0],b=w[1];p[x]=Object.fromEntries(b)}}catch(d){n={error:d}}finally{try{h&&!h.done&&(i=c.return)&&i.call(c)}finally{if(n)throw n.error}}s.push([l,p])}}catch(d){e={error:d}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(e)throw e.error}}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:s,serializationVersion:2}},t.prototype.termResults=function(e,r,n,i,s,o,a,u){var l,f,p,c,h;if(u===void 0&&(u=new Map),i==null)return u;try{for(var w=G(Object.keys(s)),x=w.next();!x.done;x=w.next()){var b=x.value,d=s[b],_=this._fieldIds[b],m=i.get(_);if(m!=null){var g=m.size,v=this._avgFieldLength[_];try{for(var y=(p=void 0,G(m.keys())),j=y.next();!j.done;j=y.next()){var C=j.value;if(!this._documentIds.has(C)){this.removeTerm(_,C,r),g-=1;continue}var F=o?o(this._documentIds.get(C),r):1;if(!!F){var E=m.get(C),P=this._fieldLength.get(C)[_],L=rh(E,g,this._documentCount,P,v,a),O=n*d*F*L,z=u.get(C);if(z){z.score+=O,sh(z.terms,e);var J=Gs(z.match,r);J?J.push(b):z.match[r]=[b]}else u.set(C,{score:O,terms:[e],match:(h={},h[r]=[b],h)})}}}catch(Q){p={error:Q}}finally{try{j&&!j.done&&(c=y.return)&&c.call(y)}finally{if(p)throw p.error}}}}}catch(Q){l={error:Q}}finally{try{x&&!x.done&&(f=w.return)&&f.call(w)}finally{if(l)throw l.error}}return u},t.prototype.addTerm=function(e,r,n){var i=this._index.fetch(n,xl),s=i.get(e);if(s==null)s=new Map,s.set(r,1),i.set(e,s);else{var o=s.get(r);s.set(r,(o||0)+1)}},t.prototype.removeTerm=function(e,r,n){if(!this._index.has(n)){this.warnDocumentChanged(r,e,n);return}var i=this._index.fetch(n,xl),s=i.get(e);s==null||s.get(r)==null?this.warnDocumentChanged(r,e,n):s.get(r)<=1?s.size<=1?i.delete(e):s.delete(r):s.set(r,s.get(r)-1),this._index.get(n).size===0&&this._index.delete(n)},t.prototype.warnDocumentChanged=function(e,r,n){var i,s;try{for(var o=G(Object.keys(this._fieldIds)),a=o.next();!a.done;a=o.next()){var u=a.value;if(this._fieldIds[u]===r){this._options.logger("warn","MiniSearch: document with ID ".concat(this._documentIds.get(e),' has changed before removal: term "').concat(n,'" was not present in field "').concat(u,'". Removing a document after it has changed can corrupt the index!'),"version_conflict");return}}}catch(l){i={error:l}}finally{try{a&&!a.done&&(s=o.return)&&s.call(o)}finally{if(i)throw i.error}}},t.prototype.addDocumentId=function(e){var r=this._nextId;return this._idToShortId.set(e,r),this._documentIds.set(r,e),this._documentCount+=1,this._nextId+=1,r},t.prototype.addFields=function(e){for(var r=0;r0){if(++e>=Yh)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Ml=Zh;function ep(t){return function(){return t}}var Rl=ep;var tp=function(){try{var t=Ke(Object,"defineProperty");return t({},"",{}),t}catch{}}(),Xs=tp;var rp=Xs?function(t,e){return Xs(t,"toString",{configurable:!0,enumerable:!1,value:Rl(e),writable:!0})}:Dt,Ll=rp;var np=Ml(Ll),Bl=np;var ip=9007199254740991,sp=/^(?:0|[1-9]\d*)$/;function op(t,e){var r=typeof t;return e=e??ip,!!e&&(r=="number"||r!="symbol"&&sp.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=cp}var Fr=fp;function dp(t){return t!=null&&Fr(t.length)&&!ci(t)}var Tt=dp;function hp(t,e,r){if(!Et(r))return!1;var n=typeof e;return(n=="number"?Tt(r)&&Cr(e,r.length):n=="string"&&e in r)?Ar(r[e],t):!1}var Zs=hp;var pp=Object.prototype;function mp(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||pp;return t===r}var Vl=mp;function gp(t,e){for(var r=-1,n=Array(t);++r-1}var cu=Im;function km(t,e){var r=this.__data__,n=It(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var fu=km;function Ir(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e0&&r(a)?e>1?Au(a,e-1,r,n,i):gi(i,a):n||(i[i.length]=a)}return i}var Fu=Au;function tg(){this.__data__=new kt,this.size=0}var Su=tg;function rg(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var Eu=rg;function ng(t){return this.__data__.get(t)}var Du=ng;function ig(t){return this.__data__.has(t)}var Tu=ig;var sg=200;function og(t,e){var r=this.__data__;if(r instanceof kt){var n=r.__data__;if(!Ot||n.lengtha))return!1;var l=s.get(t),f=s.get(e);if(l&&f)return l==e&&f==t;var p=-1,c=!0,h=r&Tg?new $u:void 0;for(s.set(t,e),s.set(e,t);++pe||s&&o&&u&&!a&&!l||n&&o&&u||!r&&u||!i)return 1;if(!n&&!s&&!l&&t=a)return u;var l=r[n];return u*(l=="desc"?-1:1)}}return t.index-e.index}var wc=Fy;function Sy(t,e,r){e.length?e=jr(e,function(s){return he(s)?function(o){return Or(o,s.length===1?s[0]:s)}:s}):e=[Dt];var n=-1;e=jr(e,hi(hc));var i=_c(t,function(s,o,a){var u=jr(e,function(l){return l(s)});return{criteria:u,index:++n,value:s}});return bc(i,function(s,o){return wc(s,o,r)})}var jc=Sy;var Ey=zl(function(t,e){if(t==null)return[];var r=e.length;return r>1&&Zs(t,e[0],e[1])?e=[]:r>2&&Zs(e[0],e[1],e[2])&&(e=[e[0]]),jc(t,Fu(e,1),[])}),uo=Ey;var Dy=t=>{let e=t.split(At),r=Jn();return r?e=e.flatMap(n=>Da.test(n)?r.cut(n):[n]):(e=[...e,...e.flatMap(Va)],e=[...e,...e.flatMap(Ha)]),e},Fi=class{constructor(){this.indexedDocuments=new Map;this.minisearch=new Us(Fi.options)}async loadCache(){let e=await je.getMinisearchCache();return e?(this.minisearch=Us.loadJS(e.data,Fi.options),this.indexedDocuments=new Map(e.paths.map(r=>[r.path,r.mtime])),!0):(console.log("Omnisearch - No cache found"),!1)}getDiff(e){let r=new Map(e.map(s=>[s.path,s.mtime])),n=e.filter(s=>!this.indexedDocuments.has(s.path)||this.indexedDocuments.get(s.path)!==s.mtime),i=[...this.indexedDocuments].filter(([s,o])=>!r.has(s)||r.get(s)!==o).map(s=>({path:s[0],mtime:s[1]}));return{toAdd:n,toRemove:i}}async addFromPaths(e){de("Adding files",e);let r=(await Promise.all(e.map(async i=>await je.getDocument(i)))).filter(i=>!!i?.path);de("Sorting documents to first index markdown"),r=uo(r,i=>i.path.endsWith(".md")?0:1),this.removeFromPaths(r.filter(i=>this.indexedDocuments.has(i.path)).map(i=>i.path));let n=za(r,500);for(let i of n){de("Indexing into search engine",i),i.forEach(o=>this.indexedDocuments.set(o.path,o.mtime));let s=i.filter(o=>this.minisearch.has(o.path));this.removeFromPaths(s.map(o=>o.path)),await this.minisearch.addAllAsync(i)}}removeFromPaths(e){e.forEach(n=>this.indexedDocuments.delete(n));let r=e.filter(n=>this.minisearch.has(n));this.minisearch.discardAll(r)}async search(e,r){if(e.isEmpty())return[];de("Starting search for",e);let n;switch(D.fuzziness){case"0":n=0;break;case"1":n=.1;break;default:n=.2;break}let i=this.minisearch.search(e.segmentsToStr(),{prefix:l=>l.length>=r.prefixLength,fuzzy:l=>l.length<=3?0:l.length<=5?n/2:n,combineWith:"AND",boost:{basename:D.weightBasename,directory:D.weightDirectory,aliases:D.weightBasename,headings1:D.weightH1,headings2:D.weightH2,headings3:D.weightH3,unmarkedTags:D.weightUnmarkedTags}});if(de("Found",i.length,"results"),e.query.ext?.length&&(i=i.filter(l=>{let f="."+l.id.split(".").pop();return e.query.ext?.some(p=>f.startsWith(p.startsWith(".")?p:"."+p))})),e.query.path&&(i=i.filter(l=>e.query.path?.some(f=>l.id.toLowerCase().includes(f.toLowerCase())))),e.query.exclude.path&&(i=i.filter(l=>!e.query.exclude.path?.some(f=>l.id.toLowerCase().includes(f.toLowerCase())))),!i.length)return[];if(r.singleFilePath)return i.filter(l=>l.id===r.singleFilePath);D.hideExcluded?i=i.filter(l=>!(app.metadataCache.isUserIgnored&&app.metadataCache.isUserIgnored(l.id))):i.forEach(l=>{app.metadataCache.isUserIgnored&&app.metadataCache.isUserIgnored(l.id)&&(l.score/=10)});let s=e.getTags();for(let l of s)for(let f of i)(f.tags??[]).includes(l)&&(f.score*=100);de("Sorting and limiting results"),i=i.sort((l,f)=>f.score-l.score).slice(0,50);let o=await Promise.all(i.map(async l=>await je.getDocument(l.id))),a=e.getExactTerms();a.length&&(de("Filtering with quoted terms"),i=i.filter(l=>{let f=o.find(h=>h.path===l.id),p=f?.path.toLowerCase()??"",c=Rs(f?.content??"").toLowerCase();return a.every(h=>c.includes(h)||p.includes(h))}));let u=e.query.exclude.text;return u.length&&(de("Filtering with exclusions"),i=i.filter(l=>{let f=Rs(o.find(p=>p.path===l.id)?.content??"").toLowerCase();return u.every(p=>!f.includes(p))})),de("Deduping"),i=i.filter((l,f,p)=>p.findIndex(c=>c.id===l.id)===f),i}getMatches(e,r,n){let i=new Date().getTime(),s=null,o=[],a=0;for(;(s=r.exec(e))!==null;){if(++a>=100||new Date().getTime()-i>50){$a("Stopped getMatches at",a,"results");break}let l=s[2];l&&o.push({match:l,offset:s.index+1})}let u=e.toLowerCase().indexOf(n.segmentsToStr());return u>-1&&(o=o.filter(l=>l.offset!==u),o.unshift({offset:u,match:n.segmentsToStr()})),o}async getSuggestions(e,r){let n;D.simpleSearch?n=await this.search(e,{prefixLength:3,singleFilePath:r?.singleFilePath}):n=await this.search(e,{prefixLength:1,singleFilePath:r?.singleFilePath});let i=await Promise.all(n.map(async o=>await je.getDocument(o.id)));return n.map(o=>{de("Locating matches for",o.id);let a=i.find(p=>p.path===o.id);a||(console.warn(`Omnisearch - Note "${o.id}" not in the live cache`),a={content:"",basename:o.id,path:o.id});let u=[...Object.keys(o.match),...e.getExactTerms(),...e.getTags()].filter(p=>p.length>1||/\p{Emoji}/u.test(p));de("Matching tokens:",u),de("Getting matches locations...");let l=this.getMatches(a.content,St(u),e);return de("Matches:",l),ue({score:o.score,foundWords:u,matches:l},a)})}async writeToCache(){await je.writeMinisearchCache(this.minisearch,this.indexedDocuments)}},co=Fi;co.options={tokenize:Dy,extractField:(e,r)=>{if(r==="directory"){let n=e.path.split("/");return n.pop(),n.join("/")}return e[r]},processTerm:e=>(D.ignoreDiacritics?ft(e):e).toLowerCase(),idField:"path",fields:["basename","directory","aliases","content","headings1","headings2","headings3"],storeFields:["tags"],logger(e,r,n){n==="version_conflict"&&new Cc.Notice("Omnisearch - Your index cache may be incorrect or corrupted. If this message keeps appearing, go to Settings to clear the cache.",5e3)}};var ve=new co;var fo=new Set;function Ac(t){fo.add(t)}async function Si(){let t=[...fo].map(e=>e.path);t.length&&(ve.removeFromPaths(t),ve.addFromPaths(t),fo.clear())}var Sc=Fe(Fc());function Ec(t,e,r){let n=t.slice();return n[35]=e[r],n[37]=r,n}function Ty(t){let e,r,n;return{c(){e=R("button"),e.textContent="Create note"},m(i,s){$(i,e,s),r||(n=Be(e,"click",t[12]),r=!0)},p:ce,d(i){i&&H(e),r=!1,n()}}}function Iy(t){let e,r=D.showCreateButton&&Ty(t);return{c(){r&&r.c(),e=or()},m(n,i){r&&r.m(n,i),$(n,e,i)},p(n,i){D.showCreateButton&&r.p(n,i)},d(n){r&&r.d(n),n&&H(e)}}}function Dc(t){let e,r,n;return{c(){e=R("div"),r=xe("\u23F3 Work in progress: "),n=xe(t[3]),ze(e,"text-align","center"),ze(e,"color","var(--text-accent)"),ze(e,"margin-top","10px")},m(i,s){$(i,e,s),I(e,r),I(e,n)},p(i,s){s[0]&8&&Ge(n,i[3])},d(i){i&&H(e)}}}function Tc(t){let e,r;function n(...i){return t[18](t[37],...i)}return e=new al({props:{selected:t[37]===t[0],note:t[35]}}),e.$on("mousemove",n),e.$on("click",t[10]),e.$on("auxclick",t[19]),{c(){Ne(e.$$.fragment)},m(i,s){Pe(e,i,s),r=!0},p(i,s){t=i;let o={};s[0]&1&&(o.selected=t[37]===t[0]),s[0]&4&&(o.note=t[35]),e.$set(o)},i(i){r||(ee(e.$$.fragment,i),r=!0)},o(i){re(e.$$.fragment,i),r=!1},d(i){De(e,i)}}}function ky(t){let e;return{c(){e=xe("Searching...")},m(r,n){$(r,e,n)},p:ce,d(r){r&&H(e)}}}function Oy(t){let e,r=D.simpleSearch&&t[1].split(At).some(kc),n,i=r&&Ic(t);return{c(){e=xe(`We found 0 result for your search here. + `),i&&i.c(),n=or()},m(s,o){$(s,e,o),i&&i.m(s,o),$(s,n,o)},p(s,o){o[0]&2&&(r=D.simpleSearch&&s[1].split(At).some(kc)),r?i||(i=Ic(s),i.c(),i.m(n.parentNode,n)):i&&(i.d(1),i=null)},d(s){s&&H(e),i&&i.d(s),s&&H(n)}}}function Ic(t){let e,r,n;return{c(){e=R("br"),r=W(),n=R("span"),n.textContent=`You have enabled "Simpler Search" in the settings, try to type more + characters.`,ze(n,"color","var(--text-accent)"),ze(n,"font-size","small")},m(i,s){$(i,e,s),$(i,r,s),$(i,n,s)},d(i){i&&H(e),i&&H(r),i&&H(n)}}}function Py(t){let e,r,n,i=t[2],s=[];for(let f=0;fre(s[f],1,1,()=>{s[f]=null});function a(f,p){if(!f[2].length&&f[1]&&!f[4])return Oy;if(f[4])return ky}let u=a(t,[-1,-1]),l=u&&u(t);return{c(){for(let f=0;f\u2191\u2193to navigate',u=W(),l=R("div"),l.innerHTML=`alt \u2191\u2193 + to cycle history`,f=W(),p=R("div"),c=R("span"),h=xe(t[7]),w=R("span"),w.textContent="to open",x=W(),b=R("div"),b.innerHTML=`tab + to switch to In-File Search`,d=W(),_=R("div"),m=R("span"),g=xe(t[6]),v=W(),y=R("span"),y.textContent="to open in a new pane",j=W(),C=R("div"),F=R("span"),E=xe(t[9]),P=W(),L=R("span"),L.textContent="to create",O=W(),z=R("div"),J=R("span"),Q=xe(t[8]),Z=W(),A=R("span"),A.textContent="to create in a new pane",S=W(),T=R("div"),T.innerHTML=`alt \u21B5 + to insert a link`,N=W(),k=R("div"),k.innerHTML=`ctrl+h + to toggle excerpts`,X=W(),le=R("div"),le.innerHTML='escto close',B(a,"class","prompt-instruction"),B(l,"class","prompt-instruction"),B(c,"class","prompt-instruction-command"),B(p,"class","prompt-instruction"),B(b,"class","prompt-instruction"),B(m,"class","prompt-instruction-command"),B(_,"class","prompt-instruction"),B(F,"class","prompt-instruction-command"),B(C,"class","prompt-instruction"),B(J,"class","prompt-instruction-command"),B(z,"class","prompt-instruction"),B(T,"class","prompt-instruction"),B(k,"class","prompt-instruction"),B(le,"class","prompt-instruction"),B(o,"class","prompt-instructions")},m(Y,ge){Pe(e,Y,ge),$(Y,r,ge),te&&te.m(Y,ge),$(Y,n,ge),Pe(i,Y,ge),$(Y,s,ge),$(Y,o,ge),I(o,a),I(o,u),I(o,l),I(o,f),I(o,p),I(p,c),I(c,h),I(p,w),I(o,x),I(o,b),I(o,d),I(o,_),I(_,m),I(m,g),I(_,v),I(_,y),I(o,j),I(o,C),I(C,F),I(F,E),I(C,P),I(C,L),I(o,O),I(o,z),I(z,J),I(J,Q),I(z,Z),I(z,A),I(o,S),I(o,T),I(o,N),I(o,k),I(o,X),I(o,le),_e=!0},p(Y,ge){let Ti={};ge[0]&2&&(Ti.initialValue=Y[1]),ge[1]&128&&(Ti.$$scope={dirty:ge,ctx:Y}),e.$set(Ti),Y[3]?te?te.p(Y,ge):(te=Dc(Y),te.c(),te.m(n.parentNode,n)):te&&(te.d(1),te=null);let yo={};ge[0]&23|ge[1]&128&&(yo.$$scope={dirty:ge,ctx:Y}),i.$set(yo),(!_e||ge[0]&128)&&Ge(h,Y[7]),(!_e||ge[0]&64)&&Ge(g,Y[6]),(!_e||ge[0]&512)&&Ge(E,Y[9]),(!_e||ge[0]&256)&&Ge(Q,Y[8])},i(Y){_e||(ee(e.$$.fragment,Y),ee(i.$$.fragment,Y),_e=!0)},o(Y){re(e.$$.fragment,Y),re(i.$$.fragment,Y),_e=!1},d(Y){t[16](null),De(e,Y),Y&&H(r),te&&te.d(Y),Y&&H(n),De(i,Y),Y&&H(s),Y&&H(o)}}}var kc=t=>t.length<3;function Ry(t,e,r){let n,i;_n(t,Ct,k=>r(15,i=k));let{modal:s}=e,{previousQuery:o}=e,a=0,u=0,l,f=[],p,c="",h=!0,w,x,b,d,_;Kr(async()=>{U.enable("vault"),U.on("vault","enter",C),U.on("vault","create-note",O),U.on("vault","open-in-new-pane",F),U.on("vault","insert-link",z),U.on("vault","tab",J),U.on("vault","arrow-up",()=>Q(-1)),U.on("vault","arrow-down",()=>Q(1)),U.on("vault","prev-search-history",m),U.on("vault","next-search-history",g),await Si(),D.showPreviousQueryResults&&r(13,o=(await je.getSearchHistory())[0])}),zr(()=>{U.disable("vault")});async function m(){let k=(await je.getSearchHistory()).filter(X=>X);++u>=k.length&&(u=0),r(1,l=k[u]),w?.setInputValue(l)}async function g(){let k=(await je.getSearchHistory()).filter(X=>X);--u<0&&(u=k.length?k.length-1:0),r(1,l=k[u]),w?.setInputValue(l)}let v=null;async function y(){v&&(v.cancel(),v=null),p=new Jt(l),v=(0,Sc.cancelable)(new Promise(k=>{k(ve.getSuggestions(p))})),r(2,f=await v),r(0,a=0),await Z()}function j(k){!n||(k?.ctrlKey?F():C(),s.close())}function C(){!n||(P(n),s.close())}function F(){!n||(P(n,!0),s.close())}function E(){l&&je.addToSearchHistory(l)}function P(k,X=!1){E(),ii(k,X)}async function L(k){await O()}async function O(k){if(l){try{await Ja(l,k?.newLeaf)}catch(X){new Rt.Notice(X.message);return}s.close()}}function z(){if(!n)return;let k=app.vault.getMarkdownFiles().find(te=>te.path===n.path),X=app.workspace.getActiveFile(),le=app.workspace.getActiveViewOfType(Rt.MarkdownView);if(!le?.editor){new Rt.Notice("Omnisearch - Error - No active editor",3e3);return}let _e;k&&X?_e=app.fileManager.generateMarkdownLink(k,X.path):_e=`[[${n.basename}.${Yt(n.path)}]]`;let Ae=le.editor.getCursor();le.editor.replaceRange(_e,Ae,Ae),Ae.ch+=_e.length,le.editor.setCursor(Ae),s.close()}function J(){if(!(n&&(qt(n?.path)||!n?.matches.length)))if(E(),s.close(),n){let k=app.vault.getAbstractFileByPath(n.path);k&&k instanceof Rt.TFile&&new Rr(app,k,l).open()}else{let k=app.workspace.getActiveViewOfType(Rt.MarkdownView);k&&new Rr(app,k.file,l).open()}}function Q(k){r(0,a=Zn(a+k,f.length)),Z()}async function Z(){await mt(),n&&activeWindow.document.querySelector(`[data-result-id="${n.path}"]`)?.scrollIntoView({behavior:"auto",block:"nearest"})}function A(k){tt[k?"unshift":"push"](()=>{w=k,r(5,w)})}let S=k=>r(1,l=k.detail),T=(k,X)=>r(0,a=k),N=k=>{k.button==1&&F()};t.$$set=k=>{"modal"in k&&r(14,s=k.modal),"previousQuery"in k&&r(13,o=k.previousQuery)},t.$$.update=()=>{if(t.$$.dirty[0]&8194){e:r(1,l=l??o)}if(t.$$.dirty[0]&2){e:l?(r(4,h=!0),y().then(()=>{r(4,h=!1)})):(r(4,h=!1),r(2,f=[]))}if(t.$$.dirty[0]&5){e:n=f[a]}if(t.$$.dirty[0]&32768){e:switch(i){case We.LoadingCache:r(3,c="Loading cache...");break;case We.ReadingFiles:r(3,c="Reading files...");break;case We.IndexingFiles:r(3,c="Indexing files...");break;case We.WritingCache:y(),r(3,c="Updating cache...");break;default:y(),r(3,c="");break}}};e:D.openInNewPane?(r(6,x="\u21B5"),r(7,b=Qt()+" \u21B5"),r(8,d="shift \u21B5"),r(9,_=Qt()+" shift \u21B5")):(r(6,x=Qt()+" \u21B5"),r(7,b="\u21B5"),r(8,d=Qt()+" shift \u21B5"),r(9,_="shift \u21B5"));return[a,l,f,c,h,w,x,b,d,_,j,F,L,o,s,i,A,S,T,N]}var Oc=class extends Se{constructor(e){super();Te(this,e,Ry,My,be,{modal:14,previousQuery:13},null,[-1,-1])}},Pc=Oc;var Lc=Fe(require("obsidian"));function Ly(t){let e,r=t[2].replace(t[3],Ft)+"";return{c(){e=R("div"),B(e,"class","omnisearch-result__body")},m(n,i){$(n,e,i),e.innerHTML=r},p(n,i){i&12&&r!==(r=n[2].replace(n[3],Ft)+"")&&(e.innerHTML=r)},d(n){n&&H(e)}}}function By(t){let e,r;return e=new si({props:{id:t[0].toString(),selected:t[1],$$slots:{default:[Ly]},$$scope:{ctx:t}}}),e.$on("mousemove",t[6]),e.$on("click",t[7]),e.$on("auxclick",t[8]),{c(){Ne(e.$$.fragment)},m(n,i){Pe(e,n,i),r=!0},p(n,[i]){let s={};i&1&&(s.id=n[0].toString()),i&2&&(s.selected=n[1]),i&524&&(s.$$scope={dirty:i,ctx:n}),e.$set(s)},i(n){r||(ee(e.$$.fragment,n),r=!0)},o(n){re(e.$$.fragment,n),r=!1},d(n){De(e,n)}}}function Ny(t,e,r){let n,i,{offset:s}=e,{note:o}=e,{index:a=0}=e,{selected:u=!1}=e;function l(c){Ve.call(this,t,c)}function f(c){Ve.call(this,t,c)}function p(c){Ve.call(this,t,c)}return t.$$set=c=>{"offset"in c&&r(4,s=c.offset),"note"in c&&r(5,o=c.note),"index"in c&&r(0,a=c.index),"selected"in c&&r(1,u=c.selected)},t.$$.update=()=>{if(t.$$.dirty&32){e:r(3,n=St(o.foundWords))}if(t.$$.dirty&48){e:r(2,i=vr(o?.content??"",s))}},[a,u,i,n,s,o,l,f,p]}var Mc=class extends Se{constructor(e){super();Te(this,e,Ny,By,be,{offset:4,note:5,index:0,selected:1})}},Rc=Mc;function Bc(t,e,r){let n=t.slice();return n[19]=e[r],n[21]=r,n}function Ky(t){let e;return{c(){e=R("div"),e.textContent="We found 0 result for your search here.",ze(e,"text-align","center")},m(r,n){$(r,e,n)},p:ce,i:ce,o:ce,d(r){r&&H(e)}}}function zy(t){let e,r,n=t[4],i=[];for(let o=0;ore(i[o],1,1,()=>{i[o]=null});return{c(){for(let o=0;o{o[f]=null}),Nt(),r=o[e],r?r.p(u,l):(r=o[e]=s[e](u),r.c()),ee(r,1),r.m(n.parentNode,n))},i(u){i||(ee(r),i=!0)},o(u){re(r),i=!1},d(u){o[e].d(u),u&&H(n)}}}function Hy(t){let e;return{c(){e=R("span"),e.textContent="to close"},m(r,n){$(r,e,n)},d(r){r&&H(e)}}}function $y(t){let e;return{c(){e=R("span"),e.textContent="to go back to Vault Search"},m(r,n){$(r,e,n)},d(r){r&&H(e)}}}function Wy(t){let e,r,n,i,s,o,a,u,l,f,p,c,h,w,x,b,d,_,m,g;e=new ri({props:{placeholder:"Omnisearch - File",initialValue:t[1]}}),e.$on("input",t[10]),n=new ni({props:{$$slots:{default:[Vy]},$$scope:{ctx:t}}});function v(C,F){return C[0]?$y:Hy}let y=v(t,-1),j=y(t);return{c(){Ne(e.$$.fragment),r=W(),Ne(n.$$.fragment),i=W(),s=R("div"),o=R("div"),o.innerHTML='\u2191\u2193to navigate',a=W(),u=R("div"),u.innerHTML='\u21B5to open',l=W(),f=R("div"),f.innerHTML=`tab + to switch to Vault Search`,p=W(),c=R("div"),h=R("span"),h.textContent="esc",w=W(),j.c(),x=W(),b=R("div"),d=R("span"),d.textContent=`${Qt()} \u21B5`,_=W(),m=R("span"),m.textContent="to open in a new pane",B(o,"class","prompt-instruction"),B(u,"class","prompt-instruction"),B(f,"class","prompt-instruction"),B(h,"class","prompt-instruction-command"),B(c,"class","prompt-instruction"),B(d,"class","prompt-instruction-command"),B(b,"class","prompt-instruction"),B(s,"class","prompt-instructions")},m(C,F){Pe(e,C,F),$(C,r,F),Pe(n,C,F),$(C,i,F),$(C,s,F),I(s,o),I(s,a),I(s,u),I(s,l),I(s,f),I(s,p),I(s,c),I(c,h),I(c,w),j.m(c,null),I(s,x),I(s,b),I(b,d),I(b,_),I(b,m),g=!0},p(C,[F]){let E={};F&2&&(E.initialValue=C[1]),e.$set(E);let P={};F&4194360&&(P.$$scope={dirty:F,ctx:C}),n.$set(P),y!==(y=v(C,F))&&(j.d(1),j=y(C),j&&(j.c(),j.m(c,null)))},i(C){g||(ee(e.$$.fragment,C),ee(n.$$.fragment,C),g=!0)},o(C){re(e.$$.fragment,C),re(n.$$.fragment,C),g=!1},d(C){De(e,C),C&&H(r),De(n,C),C&&H(i),C&&H(s),j.d()}}}function Uy(t,e,r){let n=t.find(i=>i.offset>e);return n?t.filter(i=>i.offset>e&&i.offset<=n.offset+r):[]}function Gy(t,e,r){let{modal:n}=e,{parent:i=null}=e,{singleFilePath:s=""}=e,{previousQuery:o}=e,a,u=[],l=0,f,p;Kr(()=>{U.enable("infile"),U.on("infile","enter",b),U.on("infile","open-in-new-pane",x),U.on("infile","arrow-up",()=>h(-1)),U.on("infile","arrow-down",()=>h(1)),U.on("infile","tab",d)}),zr(()=>{U.disable("infile")});function c(y){let j=[],C=-1,F=0;for(;;){let E=Uy(y,C,un);if(!E.length||(C=E.last().offset,j.push(E),++F>100))break}return j}function h(y){r(5,l=Zn(l+y,u.length)),w()}async function w(){await mt(),document.querySelector(`[data-result-id="${l}"]`)?.scrollIntoView({behavior:"auto",block:"nearest"})}async function x(){return b(!0)}async function b(y=!1){if(f){n.close(),i&&i.close(),await ii(f,y);let j=app.workspace.getActiveViewOfType(Lc.MarkdownView);if(!j)return;let C=u[l]??0,F=j.editor.offsetToPos(C);F.ch=0,j.editor.setCursor(F),j.editor.scrollIntoView({from:{line:F.line-10,ch:0},to:{line:F.line+10,ch:0}})}}function d(){new er(app,a??o).open(),n.close()}let _=y=>r(2,a=y.detail),m=(y,j)=>r(5,l=y),g=y=>b(y.ctrlKey),v=y=>{y.button==1&&b(!0)};return t.$$set=y=>{"modal"in y&&r(7,n=y.modal),"parent"in y&&r(0,i=y.parent),"singleFilePath"in y&&r(8,s=y.singleFilePath),"previousQuery"in y&&r(1,o=y.previousQuery)},t.$$.update=()=>{if(t.$$.dirty&2){e:r(2,a=o??"")}if(t.$$.dirty&772){e:(async()=>{a&&(r(9,p=new Jt(a)),r(3,f=(await ve.getSuggestions(p,{singleFilePath:s}))[0]??null)),r(5,l=0),await w()})()}if(t.$$.dirty&8){e:if(f){let y=c(f.matches);r(4,u=y.map(j=>Math.round((j.first().offset+j.last().offset)/2)))}}},[i,o,a,f,u,l,b,n,s,p,_,m,g,v]}var Kc=class extends Se{constructor(e){super();Te(this,e,Gy,Wy,be,{modal:7,parent:0,singleFilePath:8,previousQuery:1})}},zc=Kc;var po=class extends Vc.Modal{constructor(e){super(e);this.modalEl.replaceChildren(),this.modalEl.addClass("omnisearch-modal","prompt"),this.modalEl.removeClass("modal"),this.modalEl.tabIndex=-1,this.scope.register([],"ArrowDown",o=>{o.preventDefault(),U.emit("arrow-down")}),this.scope.register([],"ArrowUp",o=>{o.preventDefault(),U.emit("arrow-up")});for(let o of[{k:"J",dir:"down"},{k:"K",dir:"up"}])for(let a of["Ctrl","Mod"])this.scope.register([a],o.k,u=>{this.app.vault.getConfig("vimMode")&&U.emit("arrow-"+o.dir)});for(let o of[{k:"N",dir:"down"},{k:"P",dir:"up"}])for(let a of["Ctrl","Mod"])this.scope.register([a],o.k,u=>{this.app.vault.getConfig("vimMode")&&U.emit("arrow-"+o.dir)});let r,n,i,s;D.openInNewPane?(r=["Mod"],n=[],i=["Mod","Shift"],s=["Shift"]):(r=[],n=["Mod"],i=["Shift"],s=["Mod","Shift"]),this.scope.register(n,"Enter",o=>{o.preventDefault(),U.emit("open-in-new-pane")}),this.scope.register(["Alt"],"Enter",o=>{o.preventDefault(),U.emit("insert-link")}),this.scope.register(i,"Enter",o=>{o.preventDefault(),U.emit("create-note")}),this.scope.register(s,"Enter",o=>{o.preventDefault(),U.emit("create-note",{newLeaf:!0})}),this.scope.register(r,"Enter",o=>{Oa()||(o.preventDefault(),U.emit("enter"))}),this.scope.register([],"Tab",o=>{o.preventDefault(),U.emit("tab")}),this.scope.register(["Alt"],"ArrowDown",o=>{o.preventDefault(),U.emit("next-search-history")}),this.scope.register(["Alt"],"ArrowUp",o=>{o.preventDefault(),U.emit("prev-search-history")}),this.scope.register(["Ctrl"],"H",o=>{U.emit(Yn.ToggleExcerpts)})}},er=class extends po{constructor(e,r){super(e);let n=new Pc({target:this.modalEl,props:{modal:this,previousQuery:r}});this.onClose=()=>{n.$destroy()}}},Rr=class extends po{constructor(e,r,n="",i){super(e);let s=new zc({target:this.modalEl,props:{modal:this,singleFilePath:r.path,parent:i,previousQuery:n}});i&&i.containerEl.toggleVisibility(!1),this.onClose=()=>{i&&i.containerEl.toggleVisibility(!0),s.$destroy()}}};var Hc=!1,Di=[];function Qy(t){return t.map(e=>{let{score:r,path:n,basename:i,foundWords:s,matches:o,content:a}=e,u=vr(a,o[0]?.offset??-1);return{score:r,path:n,basename:i,foundWords:s,matches:o.map(l=>({match:l.match,offset:l.offset})),excerpt:u}})}async function qy(t){let e=new Jt(t),r=await ve.getSuggestions(e);return Qy(r)}function Yy(t){Di.push(t),Hc&&t()}function Jy(t){Di=Di.filter(e=>e!==t)}function $c(){Hc=!0,Di.forEach(t=>t())}var mo={search:qy,registerOnIndexed:Yy,unregisterOnIndexed:Jy,refreshIndex:Si};var go=class extends gn.Plugin{async onload(){if(await Fa(this),this.addSettingTab(new ks(this)),Os()){console.log("Omnisearch - Plugin disabled");return}await Xy(),await yr.clearOldDatabases(),Zy(this),D.ribbonIcon&&this.addRibbonButton(),U.disable("vault"),U.disable("infile"),U.on("global",Yn.ToggleExcerpts,()=>{Gt.set(!D.showExcerpt)}),this.addCommand({id:"show-modal",name:"Vault search",callback:()=>{new er(app).open()}}),this.addCommand({id:"show-modal-infile",name:"In-file search",editorCallback:(e,r)=>{r.file&&new Rr(app,r.file).open()}}),app.workspace.onLayoutReady(async()=>{this.registerEvent(this.app.vault.on("create",e=>{fn(e.path)&&(de("Indexing new file",e.path),ve.addFromPaths([e.path]))})),this.registerEvent(this.app.vault.on("delete",e=>{de("Removing file",e.path),je.removeFromLiveCache(e.path),ve.removeFromPaths([e.path])})),this.registerEvent(this.app.vault.on("modify",async e=>{fn(e.path)&&(de("Updating file",e.path),await je.addToLiveCache(e.path),Ac(e))})),this.registerEvent(this.app.vault.on("rename",async(e,r)=>{fn(e.path)&&(de("Renaming file",e.path),je.removeFromLiveCache(r),je.addToLiveCache(e.path),ve.removeFromPaths([r]),await ve.addFromPaths([e.path]))})),this.executeFirstLaunchTasks(),await this.populateIndex()})}executeFirstLaunchTasks(){let e="1.10.1";D.welcomeMessage!==e,D.welcomeMessage=e,this.saveData(D)}async onunload(){delete globalThis.omnisearch,await we.clearCache()}addRibbonButton(){this.ribbonButton=this.addRibbonIcon("search","Omnisearch",e=>{new er(app).open()})}removeRibbonButton(){this.ribbonButton&&this.ribbonButton.parentNode?.removeChild(this.ribbonButton)}async populateIndex(){console.time("Omnisearch - Indexing total time"),Ct.set(We.ReadingFiles);let e=app.vault.getFiles().filter(n=>fn(n.path));console.log(`Omnisearch - ${e.length} files total`),console.log(`Omnisearch - Cache is ${jt()?"enabled":"disabled"}`),jt()&&(console.time("Omnisearch - Loading index from cache"),Ct.set(We.LoadingCache),await ve.loadCache()&&console.timeEnd("Omnisearch - Loading index from cache"));let r=ve.getDiff(e.map(n=>({path:n.path,mtime:n.stat.mtime})));jt()&&(r.toAdd.length&&console.log("Omnisearch - Total number of files to add/update: "+r.toAdd.length),r.toRemove.length&&console.log("Omnisearch - Total number of files to remove: "+r.toRemove.length)),r.toAdd.length>=1e3&&jt()&&new gn.Notice(`Omnisearch - ${r.toAdd.length} files need to be indexed. Obsidian may experience stutters and freezes during the process`,1e4),Ct.set(We.IndexingFiles),ve.removeFromPaths(r.toRemove.map(n=>n.path)),await ve.addFromPaths(r.toAdd.map(n=>n.path)),(r.toRemove.length||r.toAdd.length)&&jt()&&(Ct.set(We.WritingCache),D.useCache=!1,fe(this),await ve.writeToCache(),D.useCache=!0,fe(this)),console.timeEnd("Omnisearch - Indexing total time"),r.toAdd.length>=1e3&&new gn.Notice("Omnisearch - Your files have been indexed."),Ct.set(We.Done),$c()}};async function Xy(){let t=[`${app.vault.configDir}/plugins/omnisearch/searchIndex.json`,`${app.vault.configDir}/plugins/omnisearch/notesCache.json`,`${app.vault.configDir}/plugins/omnisearch/notesCache.data`,`${app.vault.configDir}/plugins/omnisearch/searchIndex.data`,`${app.vault.configDir}/plugins/omnisearch/historyCache.json`,`${app.vault.configDir}/plugins/omnisearch/pdfCache.data`];for(let e of t)if(await app.vault.adapter.exists(e))try{await app.vault.adapter.remove(e)}catch{}}function Zy(t){t.registerObsidianProtocolHandler("omnisearch",e=>{new er(app,e.query).open()}),globalThis.omnisearch=mo,app.plugins.plugins.omnisearch.api=mo} diff --git a/.obsidian/plugins/omnisearch/manifest.json b/.obsidian/plugins/omnisearch/manifest.json index 6708391..042bf45 100644 --- a/.obsidian/plugins/omnisearch/manifest.json +++ b/.obsidian/plugins/omnisearch/manifest.json @@ -1,8 +1,8 @@ { "id": "omnisearch", "name": "Omnisearch", - "version": "1.14.2", - "minAppVersion": "1.0.0", + "version": "1.15.2", + "minAppVersion": "1.3.0", "description": "A search engine that just works", "author": "Simon Cambier", "authorUrl": "https://github.com/scambier/obsidian-omnisearch", diff --git a/.obsidian/plugins/settings-search/manifest.json b/.obsidian/plugins/settings-search/manifest.json index bca040a..f475f06 100644 --- a/.obsidian/plugins/settings-search/manifest.json +++ b/.obsidian/plugins/settings-search/manifest.json @@ -1,7 +1,7 @@ { "id": "settings-search", "name": "Settings Search", - "version": "1.3.7", + "version": "1.3.8", "minAppVersion": "0.12.17", "author": "Jeremy Valentine", "description": "Globally search settings in Obsidian.md", diff --git a/.obsidian/plugins/table-editor-obsidian/main.js b/.obsidian/plugins/table-editor-obsidian/main.js index ad79700..b18e17d 100644 --- a/.obsidian/plugins/table-editor-obsidian/main.js +++ b/.obsidian/plugins/table-editor-obsidian/main.js @@ -589,6 +589,4934 @@ const prettyPrintAST = (token, level = 0) => { exports.prettyPrintAST = prettyPrintAST; }); +var decimal = createCommonjsModule(function (module) { +(function (globalScope) { + + + /*! + * decimal.js v10.4.3 + * An arbitrary-precision Decimal type for JavaScript. + * https://github.com/MikeMcl/decimal.js + * Copyright (c) 2022 Michael Mclaughlin + * MIT Licence + */ + + + // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ // + + + // The maximum exponent magnitude. + // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`. + var EXP_LIMIT = 9e15, // 0 to 9e15 + + // The limit on the value of `precision`, and on the value of the first argument to + // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`. + MAX_DIGITS = 1e9, // 0 to 1e9 + + // Base conversion alphabet. + NUMERALS = '0123456789abcdef', + + // The natural logarithm of 10 (1025 digits). + LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058', + + // Pi (1025 digits). + PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789', + + + // The initial configuration properties of the Decimal constructor. + DEFAULTS = { + + // These values must be integers within the stated ranges (inclusive). + // Most of these values can be changed at run-time using the `Decimal.config` method. + + // The maximum number of significant digits of the result of a calculation or base conversion. + // E.g. `Decimal.config({ precision: 20 });` + precision: 20, // 1 to MAX_DIGITS + + // The rounding mode used when rounding to `precision`. + // + // ROUND_UP 0 Away from zero. + // ROUND_DOWN 1 Towards zero. + // ROUND_CEIL 2 Towards +Infinity. + // ROUND_FLOOR 3 Towards -Infinity. + // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up. + // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down. + // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour. + // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity. + // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity. + // + // E.g. + // `Decimal.rounding = 4;` + // `Decimal.rounding = Decimal.ROUND_HALF_UP;` + rounding: 4, // 0 to 8 + + // The modulo mode used when calculating the modulus: a mod n. + // The quotient (q = a / n) is calculated according to the corresponding rounding mode. + // The remainder (r) is calculated as: r = a - n * q. + // + // UP 0 The remainder is positive if the dividend is negative, else is negative. + // DOWN 1 The remainder has the same sign as the dividend (JavaScript %). + // FLOOR 3 The remainder has the same sign as the divisor (Python %). + // HALF_EVEN 6 The IEEE 754 remainder function. + // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive. + // + // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian + // division (9) are commonly used for the modulus operation. The other rounding modes can also + // be used, but they may not give useful results. + modulo: 1, // 0 to 9 + + // The exponent value at and beneath which `toString` returns exponential notation. + // JavaScript numbers: -7 + toExpNeg: -7, // 0 to -EXP_LIMIT + + // The exponent value at and above which `toString` returns exponential notation. + // JavaScript numbers: 21 + toExpPos: 21, // 0 to EXP_LIMIT + + // The minimum exponent value, beneath which underflow to zero occurs. + // JavaScript numbers: -324 (5e-324) + minE: -EXP_LIMIT, // -1 to -EXP_LIMIT + + // The maximum exponent value, above which overflow to Infinity occurs. + // JavaScript numbers: 308 (1.7976931348623157e+308) + maxE: EXP_LIMIT, // 1 to EXP_LIMIT + + // Whether to use cryptographically-secure random number generation, if available. + crypto: false // true/false + }, + + + // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- // + + + Decimal, inexact, noConflict, quadrant, + external = true, + + decimalError = '[DecimalError] ', + invalidArgument = decimalError + 'Invalid argument: ', + precisionLimitExceeded = decimalError + 'Precision limit exceeded', + cryptoUnavailable = decimalError + 'crypto unavailable', + tag = '[object Decimal]', + + mathfloor = Math.floor, + mathpow = Math.pow, + + isBinary = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i, + isHex = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i, + isOctal = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i, + isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, + + BASE = 1e7, + LOG_BASE = 7, + MAX_SAFE_INTEGER = 9007199254740991, + + LN10_PRECISION = LN10.length - 1, + PI_PRECISION = PI.length - 1, + + // Decimal.prototype object + P = { toStringTag: tag }; + + + // Decimal prototype methods + + + /* + * absoluteValue abs + * ceil + * clampedTo clamp + * comparedTo cmp + * cosine cos + * cubeRoot cbrt + * decimalPlaces dp + * dividedBy div + * dividedToIntegerBy divToInt + * equals eq + * floor + * greaterThan gt + * greaterThanOrEqualTo gte + * hyperbolicCosine cosh + * hyperbolicSine sinh + * hyperbolicTangent tanh + * inverseCosine acos + * inverseHyperbolicCosine acosh + * inverseHyperbolicSine asinh + * inverseHyperbolicTangent atanh + * inverseSine asin + * inverseTangent atan + * isFinite + * isInteger isInt + * isNaN + * isNegative isNeg + * isPositive isPos + * isZero + * lessThan lt + * lessThanOrEqualTo lte + * logarithm log + * [maximum] [max] + * [minimum] [min] + * minus sub + * modulo mod + * naturalExponential exp + * naturalLogarithm ln + * negated neg + * plus add + * precision sd + * round + * sine sin + * squareRoot sqrt + * tangent tan + * times mul + * toBinary + * toDecimalPlaces toDP + * toExponential + * toFixed + * toFraction + * toHexadecimal toHex + * toNearest + * toNumber + * toOctal + * toPower pow + * toPrecision + * toSignificantDigits toSD + * toString + * truncated trunc + * valueOf toJSON + */ + + + /* + * Return a new Decimal whose value is the absolute value of this Decimal. + * + */ + P.absoluteValue = P.abs = function () { + var x = new this.constructor(this); + if (x.s < 0) x.s = 1; + return finalise(x); + }; + + + /* + * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the + * direction of positive Infinity. + * + */ + P.ceil = function () { + return finalise(new this.constructor(this), this.e + 1, 2); + }; + + + /* + * Return a new Decimal whose value is the value of this Decimal clamped to the range + * delineated by `min` and `max`. + * + * min {number|string|Decimal} + * max {number|string|Decimal} + * + */ + P.clampedTo = P.clamp = function (min, max) { + var k, + x = this, + Ctor = x.constructor; + min = new Ctor(min); + max = new Ctor(max); + if (!min.s || !max.s) return new Ctor(NaN); + if (min.gt(max)) throw Error(invalidArgument + max); + k = x.cmp(min); + return k < 0 ? min : x.cmp(max) > 0 ? max : new Ctor(x); + }; + + + /* + * Return + * 1 if the value of this Decimal is greater than the value of `y`, + * -1 if the value of this Decimal is less than the value of `y`, + * 0 if they have the same value, + * NaN if the value of either Decimal is NaN. + * + */ + P.comparedTo = P.cmp = function (y) { + var i, j, xdL, ydL, + x = this, + xd = x.d, + yd = (y = new x.constructor(y)).d, + xs = x.s, + ys = y.s; + + // Either NaN or ±Infinity? + if (!xd || !yd) { + return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1; + } + + // Either zero? + if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0; + + // Signs differ? + if (xs !== ys) return xs; + + // Compare exponents. + if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1; + + xdL = xd.length; + ydL = yd.length; + + // Compare digit by digit. + for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) { + if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1; + } + + // Compare lengths. + return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1; + }; + + + /* + * Return a new Decimal whose value is the cosine of the value in radians of this Decimal. + * + * Domain: [-Infinity, Infinity] + * Range: [-1, 1] + * + * cos(0) = 1 + * cos(-0) = 1 + * cos(Infinity) = NaN + * cos(-Infinity) = NaN + * cos(NaN) = NaN + * + */ + P.cosine = P.cos = function () { + var pr, rm, + x = this, + Ctor = x.constructor; + + if (!x.d) return new Ctor(NaN); + + // cos(0) = cos(-0) = 1 + if (!x.d[0]) return new Ctor(1); + + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE; + Ctor.rounding = 1; + + x = cosine(Ctor, toLessThanHalfPi(Ctor, x)); + + Ctor.precision = pr; + Ctor.rounding = rm; + + return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true); + }; + + + /* + * + * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to + * `precision` significant digits using rounding mode `rounding`. + * + * cbrt(0) = 0 + * cbrt(-0) = -0 + * cbrt(1) = 1 + * cbrt(-1) = -1 + * cbrt(N) = N + * cbrt(-I) = -I + * cbrt(I) = I + * + * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3)) + * + */ + P.cubeRoot = P.cbrt = function () { + var e, m, n, r, rep, s, sd, t, t3, t3plusx, + x = this, + Ctor = x.constructor; + + if (!x.isFinite() || x.isZero()) return new Ctor(x); + external = false; + + // Initial estimate. + s = x.s * mathpow(x.s * x, 1 / 3); + + // Math.cbrt underflow/overflow? + // Pass x to Math.pow as integer, then adjust the exponent of the result. + if (!s || Math.abs(s) == 1 / 0) { + n = digitsToString(x.d); + e = x.e; + + // Adjust n exponent so it is a multiple of 3 away from x exponent. + if (s = (e - n.length + 1) % 3) n += (s == 1 || s == -2 ? '0' : '00'); + s = mathpow(n, 1 / 3); + + // Rarely, e may be one less than the result exponent value. + e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2)); + + if (s == 1 / 0) { + n = '5e' + e; + } else { + n = s.toExponential(); + n = n.slice(0, n.indexOf('e') + 1) + e; + } + + r = new Ctor(n); + r.s = x.s; + } else { + r = new Ctor(s.toString()); + } + + sd = (e = Ctor.precision) + 3; + + // Halley's method. + // TODO? Compare Newton's method. + for (;;) { + t = r; + t3 = t.times(t).times(t); + t3plusx = t3.plus(x); + r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1); + + // TODO? Replace with for-loop and checkRoundingDigits. + if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) { + n = n.slice(sd - 3, sd + 1); + + // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999 + // , i.e. approaching a rounding boundary, continue the iteration. + if (n == '9999' || !rep && n == '4999') { + + // On the first iteration only, check to see if rounding up gives the exact result as the + // nines may infinitely repeat. + if (!rep) { + finalise(t, e + 1, 0); + + if (t.times(t).times(t).eq(x)) { + r = t; + break; + } + } + + sd += 4; + rep = 1; + } else { + + // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result. + // If not, then there are further digits and m will be truthy. + if (!+n || !+n.slice(1) && n.charAt(0) == '5') { + + // Truncate to the first rounding digit. + finalise(r, e + 1, 1); + m = !r.times(r).times(r).eq(x); + } + + break; + } + } + } + + external = true; + + return finalise(r, e, Ctor.rounding, m); + }; + + + /* + * Return the number of decimal places of the value of this Decimal. + * + */ + P.decimalPlaces = P.dp = function () { + var w, + d = this.d, + n = NaN; + + if (d) { + w = d.length - 1; + n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE; + + // Subtract the number of trailing zeros of the last word. + w = d[w]; + if (w) for (; w % 10 == 0; w /= 10) n--; + if (n < 0) n = 0; + } + + return n; + }; + + + /* + * n / 0 = I + * n / N = N + * n / I = 0 + * 0 / n = 0 + * 0 / 0 = N + * 0 / N = N + * 0 / I = 0 + * N / n = N + * N / 0 = N + * N / N = N + * N / I = N + * I / n = I + * I / 0 = I + * I / N = N + * I / I = N + * + * Return a new Decimal whose value is the value of this Decimal divided by `y`, rounded to + * `precision` significant digits using rounding mode `rounding`. + * + */ + P.dividedBy = P.div = function (y) { + return divide(this, new this.constructor(y)); + }; + + + /* + * Return a new Decimal whose value is the integer part of dividing the value of this Decimal + * by the value of `y`, rounded to `precision` significant digits using rounding mode `rounding`. + * + */ + P.dividedToIntegerBy = P.divToInt = function (y) { + var x = this, + Ctor = x.constructor; + return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding); + }; + + + /* + * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false. + * + */ + P.equals = P.eq = function (y) { + return this.cmp(y) === 0; + }; + + + /* + * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the + * direction of negative Infinity. + * + */ + P.floor = function () { + return finalise(new this.constructor(this), this.e + 1, 3); + }; + + + /* + * Return true if the value of this Decimal is greater than the value of `y`, otherwise return + * false. + * + */ + P.greaterThan = P.gt = function (y) { + return this.cmp(y) > 0; + }; + + + /* + * Return true if the value of this Decimal is greater than or equal to the value of `y`, + * otherwise return false. + * + */ + P.greaterThanOrEqualTo = P.gte = function (y) { + var k = this.cmp(y); + return k == 1 || k === 0; + }; + + + /* + * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this + * Decimal. + * + * Domain: [-Infinity, Infinity] + * Range: [1, Infinity] + * + * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ... + * + * cosh(0) = 1 + * cosh(-0) = 1 + * cosh(Infinity) = Infinity + * cosh(-Infinity) = Infinity + * cosh(NaN) = NaN + * + * x time taken (ms) result + * 1000 9 9.8503555700852349694e+433 + * 10000 25 4.4034091128314607936e+4342 + * 100000 171 1.4033316802130615897e+43429 + * 1000000 3817 1.5166076984010437725e+434294 + * 10000000 abandoned after 2 minute wait + * + * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x)) + * + */ + P.hyperbolicCosine = P.cosh = function () { + var k, n, pr, rm, len, + x = this, + Ctor = x.constructor, + one = new Ctor(1); + + if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN); + if (x.isZero()) return one; + + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + Math.max(x.e, x.sd()) + 4; + Ctor.rounding = 1; + len = x.d.length; + + // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1 + // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4)) + + // Estimate the optimum number of times to use the argument reduction. + // TODO? Estimation reused from cosine() and may not be optimal here. + if (len < 32) { + k = Math.ceil(len / 3); + n = (1 / tinyPow(4, k)).toString(); + } else { + k = 16; + n = '2.3283064365386962890625e-10'; + } + + x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true); + + // Reverse argument reduction + var cosh2_x, + i = k, + d8 = new Ctor(8); + for (; i--;) { + cosh2_x = x.times(x); + x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8)))); + } + + return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true); + }; + + + /* + * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this + * Decimal. + * + * Domain: [-Infinity, Infinity] + * Range: [-Infinity, Infinity] + * + * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ... + * + * sinh(0) = 0 + * sinh(-0) = -0 + * sinh(Infinity) = Infinity + * sinh(-Infinity) = -Infinity + * sinh(NaN) = NaN + * + * x time taken (ms) + * 10 2 ms + * 100 5 ms + * 1000 14 ms + * 10000 82 ms + * 100000 886 ms 1.4033316802130615897e+43429 + * 200000 2613 ms + * 300000 5407 ms + * 400000 8824 ms + * 500000 13026 ms 8.7080643612718084129e+217146 + * 1000000 48543 ms + * + * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x)) + * + */ + P.hyperbolicSine = P.sinh = function () { + var k, pr, rm, len, + x = this, + Ctor = x.constructor; + + if (!x.isFinite() || x.isZero()) return new Ctor(x); + + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + Math.max(x.e, x.sd()) + 4; + Ctor.rounding = 1; + len = x.d.length; + + if (len < 3) { + x = taylorSeries(Ctor, 2, x, x, true); + } else { + + // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x)) + // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3)) + // 3 multiplications and 1 addition + + // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x))) + // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5))) + // 4 multiplications and 2 additions + + // Estimate the optimum number of times to use the argument reduction. + k = 1.4 * Math.sqrt(len); + k = k > 16 ? 16 : k | 0; + + x = x.times(1 / tinyPow(5, k)); + x = taylorSeries(Ctor, 2, x, x, true); + + // Reverse argument reduction + var sinh2_x, + d5 = new Ctor(5), + d16 = new Ctor(16), + d20 = new Ctor(20); + for (; k--;) { + sinh2_x = x.times(x); + x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20)))); + } + } + + Ctor.precision = pr; + Ctor.rounding = rm; + + return finalise(x, pr, rm, true); + }; + + + /* + * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this + * Decimal. + * + * Domain: [-Infinity, Infinity] + * Range: [-1, 1] + * + * tanh(x) = sinh(x) / cosh(x) + * + * tanh(0) = 0 + * tanh(-0) = -0 + * tanh(Infinity) = 1 + * tanh(-Infinity) = -1 + * tanh(NaN) = NaN + * + */ + P.hyperbolicTangent = P.tanh = function () { + var pr, rm, + x = this, + Ctor = x.constructor; + + if (!x.isFinite()) return new Ctor(x.s); + if (x.isZero()) return new Ctor(x); + + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + 7; + Ctor.rounding = 1; + + return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm); + }; + + + /* + * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of + * this Decimal. + * + * Domain: [-1, 1] + * Range: [0, pi] + * + * acos(x) = pi/2 - asin(x) + * + * acos(0) = pi/2 + * acos(-0) = pi/2 + * acos(1) = 0 + * acos(-1) = pi + * acos(1/2) = pi/3 + * acos(-1/2) = 2*pi/3 + * acos(|x| > 1) = NaN + * acos(NaN) = NaN + * + */ + P.inverseCosine = P.acos = function () { + var halfPi, + x = this, + Ctor = x.constructor, + k = x.abs().cmp(1), + pr = Ctor.precision, + rm = Ctor.rounding; + + if (k !== -1) { + return k === 0 + // |x| is 1 + ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0) + // |x| > 1 or x is NaN + : new Ctor(NaN); + } + + if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5); + + // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3 + + Ctor.precision = pr + 6; + Ctor.rounding = 1; + + x = x.asin(); + halfPi = getPi(Ctor, pr + 4, rm).times(0.5); + + Ctor.precision = pr; + Ctor.rounding = rm; + + return halfPi.minus(x); + }; + + + /* + * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the + * value of this Decimal. + * + * Domain: [1, Infinity] + * Range: [0, Infinity] + * + * acosh(x) = ln(x + sqrt(x^2 - 1)) + * + * acosh(x < 1) = NaN + * acosh(NaN) = NaN + * acosh(Infinity) = Infinity + * acosh(-Infinity) = NaN + * acosh(0) = NaN + * acosh(-0) = NaN + * acosh(1) = 0 + * acosh(-1) = NaN + * + */ + P.inverseHyperbolicCosine = P.acosh = function () { + var pr, rm, + x = this, + Ctor = x.constructor; + + if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN); + if (!x.isFinite()) return new Ctor(x); + + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4; + Ctor.rounding = 1; + external = false; + + x = x.times(x).minus(1).sqrt().plus(x); + + external = true; + Ctor.precision = pr; + Ctor.rounding = rm; + + return x.ln(); + }; + + + /* + * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value + * of this Decimal. + * + * Domain: [-Infinity, Infinity] + * Range: [-Infinity, Infinity] + * + * asinh(x) = ln(x + sqrt(x^2 + 1)) + * + * asinh(NaN) = NaN + * asinh(Infinity) = Infinity + * asinh(-Infinity) = -Infinity + * asinh(0) = 0 + * asinh(-0) = -0 + * + */ + P.inverseHyperbolicSine = P.asinh = function () { + var pr, rm, + x = this, + Ctor = x.constructor; + + if (!x.isFinite() || x.isZero()) return new Ctor(x); + + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6; + Ctor.rounding = 1; + external = false; + + x = x.times(x).plus(1).sqrt().plus(x); + + external = true; + Ctor.precision = pr; + Ctor.rounding = rm; + + return x.ln(); + }; + + + /* + * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the + * value of this Decimal. + * + * Domain: [-1, 1] + * Range: [-Infinity, Infinity] + * + * atanh(x) = 0.5 * ln((1 + x) / (1 - x)) + * + * atanh(|x| > 1) = NaN + * atanh(NaN) = NaN + * atanh(Infinity) = NaN + * atanh(-Infinity) = NaN + * atanh(0) = 0 + * atanh(-0) = -0 + * atanh(1) = Infinity + * atanh(-1) = -Infinity + * + */ + P.inverseHyperbolicTangent = P.atanh = function () { + var pr, rm, wpr, xsd, + x = this, + Ctor = x.constructor; + + if (!x.isFinite()) return new Ctor(NaN); + if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN); + + pr = Ctor.precision; + rm = Ctor.rounding; + xsd = x.sd(); + + if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true); + + Ctor.precision = wpr = xsd - x.e; + + x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1); + + Ctor.precision = pr + 4; + Ctor.rounding = 1; + + x = x.ln(); + + Ctor.precision = pr; + Ctor.rounding = rm; + + return x.times(0.5); + }; + + + /* + * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this + * Decimal. + * + * Domain: [-Infinity, Infinity] + * Range: [-pi/2, pi/2] + * + * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2))) + * + * asin(0) = 0 + * asin(-0) = -0 + * asin(1/2) = pi/6 + * asin(-1/2) = -pi/6 + * asin(1) = pi/2 + * asin(-1) = -pi/2 + * asin(|x| > 1) = NaN + * asin(NaN) = NaN + * + * TODO? Compare performance of Taylor series. + * + */ + P.inverseSine = P.asin = function () { + var halfPi, k, + pr, rm, + x = this, + Ctor = x.constructor; + + if (x.isZero()) return new Ctor(x); + + k = x.abs().cmp(1); + pr = Ctor.precision; + rm = Ctor.rounding; + + if (k !== -1) { + + // |x| is 1 + if (k === 0) { + halfPi = getPi(Ctor, pr + 4, rm).times(0.5); + halfPi.s = x.s; + return halfPi; + } + + // |x| > 1 or x is NaN + return new Ctor(NaN); + } + + // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6 + + Ctor.precision = pr + 6; + Ctor.rounding = 1; + + x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan(); + + Ctor.precision = pr; + Ctor.rounding = rm; + + return x.times(2); + }; + + + /* + * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value + * of this Decimal. + * + * Domain: [-Infinity, Infinity] + * Range: [-pi/2, pi/2] + * + * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ... + * + * atan(0) = 0 + * atan(-0) = -0 + * atan(1) = pi/4 + * atan(-1) = -pi/4 + * atan(Infinity) = pi/2 + * atan(-Infinity) = -pi/2 + * atan(NaN) = NaN + * + */ + P.inverseTangent = P.atan = function () { + var i, j, k, n, px, t, r, wpr, x2, + x = this, + Ctor = x.constructor, + pr = Ctor.precision, + rm = Ctor.rounding; + + if (!x.isFinite()) { + if (!x.s) return new Ctor(NaN); + if (pr + 4 <= PI_PRECISION) { + r = getPi(Ctor, pr + 4, rm).times(0.5); + r.s = x.s; + return r; + } + } else if (x.isZero()) { + return new Ctor(x); + } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) { + r = getPi(Ctor, pr + 4, rm).times(0.25); + r.s = x.s; + return r; + } + + Ctor.precision = wpr = pr + 10; + Ctor.rounding = 1; + + // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x); + + // Argument reduction + // Ensure |x| < 0.42 + // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2))) + + k = Math.min(28, wpr / LOG_BASE + 2 | 0); + + for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1)); + + external = false; + + j = Math.ceil(wpr / LOG_BASE); + n = 1; + x2 = x.times(x); + r = new Ctor(x); + px = x; + + // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ... + for (; i !== -1;) { + px = px.times(x2); + t = r.minus(px.div(n += 2)); + + px = px.times(x2); + r = t.plus(px.div(n += 2)); + + if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;); + } + + if (k) r = r.times(2 << (k - 1)); + + external = true; + + return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true); + }; + + + /* + * Return true if the value of this Decimal is a finite number, otherwise return false. + * + */ + P.isFinite = function () { + return !!this.d; + }; + + + /* + * Return true if the value of this Decimal is an integer, otherwise return false. + * + */ + P.isInteger = P.isInt = function () { + return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2; + }; + + + /* + * Return true if the value of this Decimal is NaN, otherwise return false. + * + */ + P.isNaN = function () { + return !this.s; + }; + + + /* + * Return true if the value of this Decimal is negative, otherwise return false. + * + */ + P.isNegative = P.isNeg = function () { + return this.s < 0; + }; + + + /* + * Return true if the value of this Decimal is positive, otherwise return false. + * + */ + P.isPositive = P.isPos = function () { + return this.s > 0; + }; + + + /* + * Return true if the value of this Decimal is 0 or -0, otherwise return false. + * + */ + P.isZero = function () { + return !!this.d && this.d[0] === 0; + }; + + + /* + * Return true if the value of this Decimal is less than `y`, otherwise return false. + * + */ + P.lessThan = P.lt = function (y) { + return this.cmp(y) < 0; + }; + + + /* + * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false. + * + */ + P.lessThanOrEqualTo = P.lte = function (y) { + return this.cmp(y) < 1; + }; + + + /* + * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + * If no base is specified, return log[10](arg). + * + * log[base](arg) = ln(arg) / ln(base) + * + * The result will always be correctly rounded if the base of the log is 10, and 'almost always' + * otherwise: + * + * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen + * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error + * between the result and the correctly rounded result will be one ulp (unit in the last place). + * + * log[-b](a) = NaN + * log[0](a) = NaN + * log[1](a) = NaN + * log[NaN](a) = NaN + * log[Infinity](a) = NaN + * log[b](0) = -Infinity + * log[b](-0) = -Infinity + * log[b](-a) = NaN + * log[b](1) = 0 + * log[b](Infinity) = Infinity + * log[b](NaN) = NaN + * + * [base] {number|string|Decimal} The base of the logarithm. + * + */ + P.logarithm = P.log = function (base) { + var isBase10, d, denominator, k, inf, num, sd, r, + arg = this, + Ctor = arg.constructor, + pr = Ctor.precision, + rm = Ctor.rounding, + guard = 5; + + // Default base is 10. + if (base == null) { + base = new Ctor(10); + isBase10 = true; + } else { + base = new Ctor(base); + d = base.d; + + // Return NaN if base is negative, or non-finite, or is 0 or 1. + if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN); + + isBase10 = base.eq(10); + } + + d = arg.d; + + // Is arg negative, non-finite, 0 or 1? + if (arg.s < 0 || !d || !d[0] || arg.eq(1)) { + return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0); + } + + // The result will have a non-terminating decimal expansion if base is 10 and arg is not an + // integer power of 10. + if (isBase10) { + if (d.length > 1) { + inf = true; + } else { + for (k = d[0]; k % 10 === 0;) k /= 10; + inf = k !== 1; + } + } + + external = false; + sd = pr + guard; + num = naturalLogarithm(arg, sd); + denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd); + + // The result will have 5 rounding digits. + r = divide(num, denominator, sd, 1); + + // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000, + // calculate 10 further digits. + // + // If the result is known to have an infinite decimal expansion, repeat this until it is clear + // that the result is above or below the boundary. Otherwise, if after calculating the 10 + // further digits, the last 14 are nines, round up and assume the result is exact. + // Also assume the result is exact if the last 14 are zero. + // + // Example of a result that will be incorrectly rounded: + // log[1048576](4503599627370502) = 2.60000000000000009610279511444746... + // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it + // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so + // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal + // place is still 2.6. + if (checkRoundingDigits(r.d, k = pr, rm)) { + + do { + sd += 10; + num = naturalLogarithm(arg, sd); + denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd); + r = divide(num, denominator, sd, 1); + + if (!inf) { + + // Check for 14 nines from the 2nd rounding digit, as the first may be 4. + if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) { + r = finalise(r, pr + 1, 0); + } + + break; + } + } while (checkRoundingDigits(r.d, k += 10, rm)); + } + + external = true; + + return finalise(r, pr, rm); + }; + + + /* + * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal. + * + * arguments {number|string|Decimal} + * + P.max = function () { + Array.prototype.push.call(arguments, this); + return maxOrMin(this.constructor, arguments, 'lt'); + }; + */ + + + /* + * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal. + * + * arguments {number|string|Decimal} + * + P.min = function () { + Array.prototype.push.call(arguments, this); + return maxOrMin(this.constructor, arguments, 'gt'); + }; + */ + + + /* + * n - 0 = n + * n - N = N + * n - I = -I + * 0 - n = -n + * 0 - 0 = 0 + * 0 - N = N + * 0 - I = -I + * N - n = N + * N - 0 = N + * N - N = N + * N - I = N + * I - n = I + * I - 0 = I + * I - N = N + * I - I = N + * + * Return a new Decimal whose value is the value of this Decimal minus `y`, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + */ + P.minus = P.sub = function (y) { + var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd, + x = this, + Ctor = x.constructor; + + y = new Ctor(y); + + // If either is not finite... + if (!x.d || !y.d) { + + // Return NaN if either is NaN. + if (!x.s || !y.s) y = new Ctor(NaN); + + // Return y negated if x is finite and y is ±Infinity. + else if (x.d) y.s = -y.s; + + // Return x if y is finite and x is ±Infinity. + // Return x if both are ±Infinity with different signs. + // Return NaN if both are ±Infinity with the same sign. + else y = new Ctor(y.d || x.s !== y.s ? x : NaN); + + return y; + } + + // If signs differ... + if (x.s != y.s) { + y.s = -y.s; + return x.plus(y); + } + + xd = x.d; + yd = y.d; + pr = Ctor.precision; + rm = Ctor.rounding; + + // If either is zero... + if (!xd[0] || !yd[0]) { + + // Return y negated if x is zero and y is non-zero. + if (yd[0]) y.s = -y.s; + + // Return x if y is zero and x is non-zero. + else if (xd[0]) y = new Ctor(x); + + // Return zero if both are zero. + // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity. + else return new Ctor(rm === 3 ? -0 : 0); + + return external ? finalise(y, pr, rm) : y; + } + + // x and y are finite, non-zero numbers with the same sign. + + // Calculate base 1e7 exponents. + e = mathfloor(y.e / LOG_BASE); + xe = mathfloor(x.e / LOG_BASE); + + xd = xd.slice(); + k = xe - e; + + // If base 1e7 exponents differ... + if (k) { + xLTy = k < 0; + + if (xLTy) { + d = xd; + k = -k; + len = yd.length; + } else { + d = yd; + e = xe; + len = xd.length; + } + + // Numbers with massively different exponents would result in a very high number of + // zeros needing to be prepended, but this can be avoided while still ensuring correct + // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`. + i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2; + + if (k > i) { + k = i; + d.length = 1; + } + + // Prepend zeros to equalise exponents. + d.reverse(); + for (i = k; i--;) d.push(0); + d.reverse(); + + // Base 1e7 exponents equal. + } else { + + // Check digits to determine which is the bigger number. + + i = xd.length; + len = yd.length; + xLTy = i < len; + if (xLTy) len = i; + + for (i = 0; i < len; i++) { + if (xd[i] != yd[i]) { + xLTy = xd[i] < yd[i]; + break; + } + } + + k = 0; + } + + if (xLTy) { + d = xd; + xd = yd; + yd = d; + y.s = -y.s; + } + + len = xd.length; + + // Append zeros to `xd` if shorter. + // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length. + for (i = yd.length - len; i > 0; --i) xd[len++] = 0; + + // Subtract yd from xd. + for (i = yd.length; i > k;) { + + if (xd[--i] < yd[i]) { + for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1; + --xd[j]; + xd[i] += BASE; + } + + xd[i] -= yd[i]; + } + + // Remove trailing zeros. + for (; xd[--len] === 0;) xd.pop(); + + // Remove leading zeros and adjust exponent accordingly. + for (; xd[0] === 0; xd.shift()) --e; + + // Zero? + if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0); + + y.d = xd; + y.e = getBase10Exponent(xd, e); + + return external ? finalise(y, pr, rm) : y; + }; + + + /* + * n % 0 = N + * n % N = N + * n % I = n + * 0 % n = 0 + * -0 % n = -0 + * 0 % 0 = N + * 0 % N = N + * 0 % I = 0 + * N % n = N + * N % 0 = N + * N % N = N + * N % I = N + * I % n = N + * I % 0 = N + * I % N = N + * I % I = N + * + * Return a new Decimal whose value is the value of this Decimal modulo `y`, rounded to + * `precision` significant digits using rounding mode `rounding`. + * + * The result depends on the modulo mode. + * + */ + P.modulo = P.mod = function (y) { + var q, + x = this, + Ctor = x.constructor; + + y = new Ctor(y); + + // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0. + if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN); + + // Return x if y is ±Infinity or x is ±0. + if (!y.d || x.d && !x.d[0]) { + return finalise(new Ctor(x), Ctor.precision, Ctor.rounding); + } + + // Prevent rounding of intermediate calculations. + external = false; + + if (Ctor.modulo == 9) { + + // Euclidian division: q = sign(y) * floor(x / abs(y)) + // result = x - q * y where 0 <= result < abs(y) + q = divide(x, y.abs(), 0, 3, 1); + q.s *= y.s; + } else { + q = divide(x, y, 0, Ctor.modulo, 1); + } + + q = q.times(y); + + external = true; + + return x.minus(q); + }; + + + /* + * Return a new Decimal whose value is the natural exponential of the value of this Decimal, + * i.e. the base e raised to the power the value of this Decimal, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + */ + P.naturalExponential = P.exp = function () { + return naturalExponential(this); + }; + + + /* + * Return a new Decimal whose value is the natural logarithm of the value of this Decimal, + * rounded to `precision` significant digits using rounding mode `rounding`. + * + */ + P.naturalLogarithm = P.ln = function () { + return naturalLogarithm(this); + }; + + + /* + * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by + * -1. + * + */ + P.negated = P.neg = function () { + var x = new this.constructor(this); + x.s = -x.s; + return finalise(x); + }; + + + /* + * n + 0 = n + * n + N = N + * n + I = I + * 0 + n = n + * 0 + 0 = 0 + * 0 + N = N + * 0 + I = I + * N + n = N + * N + 0 = N + * N + N = N + * N + I = N + * I + n = I + * I + 0 = I + * I + N = N + * I + I = I + * + * Return a new Decimal whose value is the value of this Decimal plus `y`, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + */ + P.plus = P.add = function (y) { + var carry, d, e, i, k, len, pr, rm, xd, yd, + x = this, + Ctor = x.constructor; + + y = new Ctor(y); + + // If either is not finite... + if (!x.d || !y.d) { + + // Return NaN if either is NaN. + if (!x.s || !y.s) y = new Ctor(NaN); + + // Return x if y is finite and x is ±Infinity. + // Return x if both are ±Infinity with the same sign. + // Return NaN if both are ±Infinity with different signs. + // Return y if x is finite and y is ±Infinity. + else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN); + + return y; + } + + // If signs differ... + if (x.s != y.s) { + y.s = -y.s; + return x.minus(y); + } + + xd = x.d; + yd = y.d; + pr = Ctor.precision; + rm = Ctor.rounding; + + // If either is zero... + if (!xd[0] || !yd[0]) { + + // Return x if y is zero. + // Return y if y is non-zero. + if (!yd[0]) y = new Ctor(x); + + return external ? finalise(y, pr, rm) : y; + } + + // x and y are finite, non-zero numbers with the same sign. + + // Calculate base 1e7 exponents. + k = mathfloor(x.e / LOG_BASE); + e = mathfloor(y.e / LOG_BASE); + + xd = xd.slice(); + i = k - e; + + // If base 1e7 exponents differ... + if (i) { + + if (i < 0) { + d = xd; + i = -i; + len = yd.length; + } else { + d = yd; + e = k; + len = xd.length; + } + + // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1. + k = Math.ceil(pr / LOG_BASE); + len = k > len ? k + 1 : len + 1; + + if (i > len) { + i = len; + d.length = 1; + } + + // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts. + d.reverse(); + for (; i--;) d.push(0); + d.reverse(); + } + + len = xd.length; + i = yd.length; + + // If yd is longer than xd, swap xd and yd so xd points to the longer array. + if (len - i < 0) { + i = len; + d = yd; + yd = xd; + xd = d; + } + + // Only start adding at yd.length - 1 as the further digits of xd can be left as they are. + for (carry = 0; i;) { + carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0; + xd[i] %= BASE; + } + + if (carry) { + xd.unshift(carry); + ++e; + } + + // Remove trailing zeros. + // No need to check for zero, as +x + +y != 0 && -x + -y != 0 + for (len = xd.length; xd[--len] == 0;) xd.pop(); + + y.d = xd; + y.e = getBase10Exponent(xd, e); + + return external ? finalise(y, pr, rm) : y; + }; + + + /* + * Return the number of significant digits of the value of this Decimal. + * + * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0. + * + */ + P.precision = P.sd = function (z) { + var k, + x = this; + + if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z); + + if (x.d) { + k = getPrecision(x.d); + if (z && x.e + 1 > k) k = x.e + 1; + } else { + k = NaN; + } + + return k; + }; + + + /* + * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using + * rounding mode `rounding`. + * + */ + P.round = function () { + var x = this, + Ctor = x.constructor; + + return finalise(new Ctor(x), x.e + 1, Ctor.rounding); + }; + + + /* + * Return a new Decimal whose value is the sine of the value in radians of this Decimal. + * + * Domain: [-Infinity, Infinity] + * Range: [-1, 1] + * + * sin(x) = x - x^3/3! + x^5/5! - ... + * + * sin(0) = 0 + * sin(-0) = -0 + * sin(Infinity) = NaN + * sin(-Infinity) = NaN + * sin(NaN) = NaN + * + */ + P.sine = P.sin = function () { + var pr, rm, + x = this, + Ctor = x.constructor; + + if (!x.isFinite()) return new Ctor(NaN); + if (x.isZero()) return new Ctor(x); + + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE; + Ctor.rounding = 1; + + x = sine(Ctor, toLessThanHalfPi(Ctor, x)); + + Ctor.precision = pr; + Ctor.rounding = rm; + + return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true); + }; + + + /* + * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + * sqrt(-n) = N + * sqrt(N) = N + * sqrt(-I) = N + * sqrt(I) = I + * sqrt(0) = 0 + * sqrt(-0) = -0 + * + */ + P.squareRoot = P.sqrt = function () { + var m, n, sd, r, rep, t, + x = this, + d = x.d, + e = x.e, + s = x.s, + Ctor = x.constructor; + + // Negative/NaN/Infinity/zero? + if (s !== 1 || !d || !d[0]) { + return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0); + } + + external = false; + + // Initial estimate. + s = Math.sqrt(+x); + + // Math.sqrt underflow/overflow? + // Pass x to Math.sqrt as integer, then adjust the exponent of the result. + if (s == 0 || s == 1 / 0) { + n = digitsToString(d); + + if ((n.length + e) % 2 == 0) n += '0'; + s = Math.sqrt(n); + e = mathfloor((e + 1) / 2) - (e < 0 || e % 2); + + if (s == 1 / 0) { + n = '5e' + e; + } else { + n = s.toExponential(); + n = n.slice(0, n.indexOf('e') + 1) + e; + } + + r = new Ctor(n); + } else { + r = new Ctor(s.toString()); + } + + sd = (e = Ctor.precision) + 3; + + // Newton-Raphson iteration. + for (;;) { + t = r; + r = t.plus(divide(x, t, sd + 2, 1)).times(0.5); + + // TODO? Replace with for-loop and checkRoundingDigits. + if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) { + n = n.slice(sd - 3, sd + 1); + + // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or + // 4999, i.e. approaching a rounding boundary, continue the iteration. + if (n == '9999' || !rep && n == '4999') { + + // On the first iteration only, check to see if rounding up gives the exact result as the + // nines may infinitely repeat. + if (!rep) { + finalise(t, e + 1, 0); + + if (t.times(t).eq(x)) { + r = t; + break; + } + } + + sd += 4; + rep = 1; + } else { + + // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result. + // If not, then there are further digits and m will be truthy. + if (!+n || !+n.slice(1) && n.charAt(0) == '5') { + + // Truncate to the first rounding digit. + finalise(r, e + 1, 1); + m = !r.times(r).eq(x); + } + + break; + } + } + } + + external = true; + + return finalise(r, e, Ctor.rounding, m); + }; + + + /* + * Return a new Decimal whose value is the tangent of the value in radians of this Decimal. + * + * Domain: [-Infinity, Infinity] + * Range: [-Infinity, Infinity] + * + * tan(0) = 0 + * tan(-0) = -0 + * tan(Infinity) = NaN + * tan(-Infinity) = NaN + * tan(NaN) = NaN + * + */ + P.tangent = P.tan = function () { + var pr, rm, + x = this, + Ctor = x.constructor; + + if (!x.isFinite()) return new Ctor(NaN); + if (x.isZero()) return new Ctor(x); + + pr = Ctor.precision; + rm = Ctor.rounding; + Ctor.precision = pr + 10; + Ctor.rounding = 1; + + x = x.sin(); + x.s = 1; + x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0); + + Ctor.precision = pr; + Ctor.rounding = rm; + + return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true); + }; + + + /* + * n * 0 = 0 + * n * N = N + * n * I = I + * 0 * n = 0 + * 0 * 0 = 0 + * 0 * N = N + * 0 * I = N + * N * n = N + * N * 0 = N + * N * N = N + * N * I = N + * I * n = I + * I * 0 = N + * I * N = N + * I * I = I + * + * Return a new Decimal whose value is this Decimal times `y`, rounded to `precision` significant + * digits using rounding mode `rounding`. + * + */ + P.times = P.mul = function (y) { + var carry, e, i, k, r, rL, t, xdL, ydL, + x = this, + Ctor = x.constructor, + xd = x.d, + yd = (y = new Ctor(y)).d; + + y.s *= x.s; + + // If either is NaN, ±Infinity or ±0... + if (!xd || !xd[0] || !yd || !yd[0]) { + + return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd + + // Return NaN if either is NaN. + // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity. + ? NaN + + // Return ±Infinity if either is ±Infinity. + // Return ±0 if either is ±0. + : !xd || !yd ? y.s / 0 : y.s * 0); + } + + e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE); + xdL = xd.length; + ydL = yd.length; + + // Ensure xd points to the longer array. + if (xdL < ydL) { + r = xd; + xd = yd; + yd = r; + rL = xdL; + xdL = ydL; + ydL = rL; + } + + // Initialise the result array with zeros. + r = []; + rL = xdL + ydL; + for (i = rL; i--;) r.push(0); + + // Multiply! + for (i = ydL; --i >= 0;) { + carry = 0; + for (k = xdL + i; k > i;) { + t = r[k] + yd[i] * xd[k - i - 1] + carry; + r[k--] = t % BASE | 0; + carry = t / BASE | 0; + } + + r[k] = (r[k] + carry) % BASE | 0; + } + + // Remove trailing zeros. + for (; !r[--rL];) r.pop(); + + if (carry) ++e; + else r.shift(); + + y.d = r; + y.e = getBase10Exponent(r, e); + + return external ? finalise(y, Ctor.precision, Ctor.rounding) : y; + }; + + + /* + * Return a string representing the value of this Decimal in base 2, round to `sd` significant + * digits using rounding mode `rm`. + * + * If the optional `sd` argument is present then return binary exponential notation. + * + * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + */ + P.toBinary = function (sd, rm) { + return toStringBinary(this, 2, sd, rm); + }; + + + /* + * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp` + * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted. + * + * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal. + * + * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + */ + P.toDecimalPlaces = P.toDP = function (dp, rm) { + var x = this, + Ctor = x.constructor; + + x = new Ctor(x); + if (dp === void 0) return x; + + checkInt32(dp, 0, MAX_DIGITS); + + if (rm === void 0) rm = Ctor.rounding; + else checkInt32(rm, 0, 8); + + return finalise(x, dp + x.e + 1, rm); + }; + + + /* + * Return a string representing the value of this Decimal in exponential notation rounded to + * `dp` fixed decimal places using rounding mode `rounding`. + * + * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + */ + P.toExponential = function (dp, rm) { + var str, + x = this, + Ctor = x.constructor; + + if (dp === void 0) { + str = finiteToString(x, true); + } else { + checkInt32(dp, 0, MAX_DIGITS); + + if (rm === void 0) rm = Ctor.rounding; + else checkInt32(rm, 0, 8); + + x = finalise(new Ctor(x), dp + 1, rm); + str = finiteToString(x, true, dp + 1); + } + + return x.isNeg() && !x.isZero() ? '-' + str : str; + }; + + + /* + * Return a string representing the value of this Decimal in normal (fixed-point) notation to + * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is + * omitted. + * + * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'. + * + * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'. + * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'. + * (-0).toFixed(3) is '0.000'. + * (-0.5).toFixed(0) is '-0'. + * + */ + P.toFixed = function (dp, rm) { + var str, y, + x = this, + Ctor = x.constructor; + + if (dp === void 0) { + str = finiteToString(x); + } else { + checkInt32(dp, 0, MAX_DIGITS); + + if (rm === void 0) rm = Ctor.rounding; + else checkInt32(rm, 0, 8); + + y = finalise(new Ctor(x), dp + x.e + 1, rm); + str = finiteToString(y, false, dp + y.e + 1); + } + + // To determine whether to add the minus sign look at the value before it was rounded, + // i.e. look at `x` rather than `y`. + return x.isNeg() && !x.isZero() ? '-' + str : str; + }; + + + /* + * Return an array representing the value of this Decimal as a simple fraction with an integer + * numerator and an integer denominator. + * + * The denominator will be a positive non-zero value less than or equal to the specified maximum + * denominator. If a maximum denominator is not specified, the denominator will be the lowest + * value necessary to represent the number exactly. + * + * [maxD] {number|string|Decimal} Maximum denominator. Integer >= 1 and < Infinity. + * + */ + P.toFraction = function (maxD) { + var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r, + x = this, + xd = x.d, + Ctor = x.constructor; + + if (!xd) return new Ctor(x); + + n1 = d0 = new Ctor(1); + d1 = n0 = new Ctor(0); + + d = new Ctor(d1); + e = d.e = getPrecision(xd) - x.e - 1; + k = e % LOG_BASE; + d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k); + + if (maxD == null) { + + // d is 10**e, the minimum max-denominator needed. + maxD = e > 0 ? d : n1; + } else { + n = new Ctor(maxD); + if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n); + maxD = n.gt(d) ? (e > 0 ? d : n1) : n; + } + + external = false; + n = new Ctor(digitsToString(xd)); + pr = Ctor.precision; + Ctor.precision = e = xd.length * LOG_BASE * 2; + + for (;;) { + q = divide(n, d, 0, 1, 1); + d2 = d0.plus(q.times(d1)); + if (d2.cmp(maxD) == 1) break; + d0 = d1; + d1 = d2; + d2 = n1; + n1 = n0.plus(q.times(d2)); + n0 = d2; + d2 = d; + d = n.minus(q.times(d2)); + n = d2; + } + + d2 = divide(maxD.minus(d0), d1, 0, 1, 1); + n0 = n0.plus(d2.times(n1)); + d0 = d0.plus(d2.times(d1)); + n0.s = n1.s = x.s; + + // Determine which fraction is closer to x, n0/d0 or n1/d1? + r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1 + ? [n1, d1] : [n0, d0]; + + Ctor.precision = pr; + external = true; + + return r; + }; + + + /* + * Return a string representing the value of this Decimal in base 16, round to `sd` significant + * digits using rounding mode `rm`. + * + * If the optional `sd` argument is present then return binary exponential notation. + * + * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + */ + P.toHexadecimal = P.toHex = function (sd, rm) { + return toStringBinary(this, 16, sd, rm); + }; + + + /* + * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding + * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal. + * + * The return value will always have the same sign as this Decimal, unless either this Decimal + * or `y` is NaN, in which case the return value will be also be NaN. + * + * The return value is not affected by the value of `precision`. + * + * y {number|string|Decimal} The magnitude to round to a multiple of. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * 'toNearest() rounding mode not an integer: {rm}' + * 'toNearest() rounding mode out of range: {rm}' + * + */ + P.toNearest = function (y, rm) { + var x = this, + Ctor = x.constructor; + + x = new Ctor(x); + + if (y == null) { + + // If x is not finite, return x. + if (!x.d) return x; + + y = new Ctor(1); + rm = Ctor.rounding; + } else { + y = new Ctor(y); + if (rm === void 0) { + rm = Ctor.rounding; + } else { + checkInt32(rm, 0, 8); + } + + // If x is not finite, return x if y is not NaN, else NaN. + if (!x.d) return y.s ? x : y; + + // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN. + if (!y.d) { + if (y.s) y.s = x.s; + return y; + } + } + + // If y is not zero, calculate the nearest multiple of y to x. + if (y.d[0]) { + external = false; + x = divide(x, y, 0, rm, 1).times(y); + external = true; + finalise(x); + + // If y is zero, return zero with the sign of x. + } else { + y.s = x.s; + x = y; + } + + return x; + }; + + + /* + * Return the value of this Decimal converted to a number primitive. + * Zero keeps its sign. + * + */ + P.toNumber = function () { + return +this; + }; + + + /* + * Return a string representing the value of this Decimal in base 8, round to `sd` significant + * digits using rounding mode `rm`. + * + * If the optional `sd` argument is present then return binary exponential notation. + * + * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + */ + P.toOctal = function (sd, rm) { + return toStringBinary(this, 8, sd, rm); + }; + + + /* + * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded + * to `precision` significant digits using rounding mode `rounding`. + * + * ECMAScript compliant. + * + * pow(x, NaN) = NaN + * pow(x, ±0) = 1 + + * pow(NaN, non-zero) = NaN + * pow(abs(x) > 1, +Infinity) = +Infinity + * pow(abs(x) > 1, -Infinity) = +0 + * pow(abs(x) == 1, ±Infinity) = NaN + * pow(abs(x) < 1, +Infinity) = +0 + * pow(abs(x) < 1, -Infinity) = +Infinity + * pow(+Infinity, y > 0) = +Infinity + * pow(+Infinity, y < 0) = +0 + * pow(-Infinity, odd integer > 0) = -Infinity + * pow(-Infinity, even integer > 0) = +Infinity + * pow(-Infinity, odd integer < 0) = -0 + * pow(-Infinity, even integer < 0) = +0 + * pow(+0, y > 0) = +0 + * pow(+0, y < 0) = +Infinity + * pow(-0, odd integer > 0) = -0 + * pow(-0, even integer > 0) = +0 + * pow(-0, odd integer < 0) = -Infinity + * pow(-0, even integer < 0) = +Infinity + * pow(finite x < 0, finite non-integer) = NaN + * + * For non-integer or very large exponents pow(x, y) is calculated using + * + * x^y = exp(y*ln(x)) + * + * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the + * probability of an incorrectly rounded result + * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14 + * i.e. 1 in 250,000,000,000,000 + * + * If a result is incorrectly rounded the maximum error will be 1 ulp (unit in last place). + * + * y {number|string|Decimal} The power to which to raise this Decimal. + * + */ + P.toPower = P.pow = function (y) { + var e, k, pr, r, rm, s, + x = this, + Ctor = x.constructor, + yn = +(y = new Ctor(y)); + + // Either ±Infinity, NaN or ±0? + if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn)); + + x = new Ctor(x); + + if (x.eq(1)) return x; + + pr = Ctor.precision; + rm = Ctor.rounding; + + if (y.eq(1)) return finalise(x, pr, rm); + + // y exponent + e = mathfloor(y.e / LOG_BASE); + + // If y is a small integer use the 'exponentiation by squaring' algorithm. + if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) { + r = intPow(Ctor, x, k, pr); + return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm); + } + + s = x.s; + + // if x is negative + if (s < 0) { + + // if y is not an integer + if (e < y.d.length - 1) return new Ctor(NaN); + + // Result is positive if x is negative and the last digit of integer y is even. + if ((y.d[e] & 1) == 0) s = 1; + + // if x.eq(-1) + if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) { + x.s = s; + return x; + } + } + + // Estimate result exponent. + // x^y = 10^e, where e = y * log10(x) + // log10(x) = log10(x_significand) + x_exponent + // log10(x_significand) = ln(x_significand) / ln(10) + k = mathpow(+x, yn); + e = k == 0 || !isFinite(k) + ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1)) + : new Ctor(k + '').e; + + // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1. + + // Overflow/underflow? + if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0); + + external = false; + Ctor.rounding = x.s = 1; + + // Estimate the extra guard digits needed to ensure five correct rounding digits from + // naturalLogarithm(x). Example of failure without these extra digits (precision: 10): + // new Decimal(2.32456).pow('2087987436534566.46411') + // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815 + k = Math.min(12, (e + '').length); + + // r = x^y = exp(y*ln(x)) + r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr); + + // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40) + if (r.d) { + + // Truncate to the required precision plus five rounding digits. + r = finalise(r, pr + 5, 1); + + // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate + // the result. + if (checkRoundingDigits(r.d, pr, rm)) { + e = pr + 10; + + // Truncate to the increased precision plus five rounding digits. + r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1); + + // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9). + if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) { + r = finalise(r, pr + 1, 0); + } + } + } + + r.s = s; + external = true; + Ctor.rounding = rm; + + return finalise(r, pr, rm); + }; + + + /* + * Return a string representing the value of this Decimal rounded to `sd` significant digits + * using rounding mode `rounding`. + * + * Return exponential notation if `sd` is less than the number of digits necessary to represent + * the integer part of the value in normal notation. + * + * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + */ + P.toPrecision = function (sd, rm) { + var str, + x = this, + Ctor = x.constructor; + + if (sd === void 0) { + str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); + } else { + checkInt32(sd, 1, MAX_DIGITS); + + if (rm === void 0) rm = Ctor.rounding; + else checkInt32(rm, 0, 8); + + x = finalise(new Ctor(x), sd, rm); + str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd); + } + + return x.isNeg() && !x.isZero() ? '-' + str : str; + }; + + + /* + * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd` + * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if + * omitted. + * + * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * 'toSD() digits out of range: {sd}' + * 'toSD() digits not an integer: {sd}' + * 'toSD() rounding mode not an integer: {rm}' + * 'toSD() rounding mode out of range: {rm}' + * + */ + P.toSignificantDigits = P.toSD = function (sd, rm) { + var x = this, + Ctor = x.constructor; + + if (sd === void 0) { + sd = Ctor.precision; + rm = Ctor.rounding; + } else { + checkInt32(sd, 1, MAX_DIGITS); + + if (rm === void 0) rm = Ctor.rounding; + else checkInt32(rm, 0, 8); + } + + return finalise(new Ctor(x), sd, rm); + }; + + + /* + * Return a string representing the value of this Decimal. + * + * Return exponential notation if this Decimal has a positive exponent equal to or greater than + * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`. + * + */ + P.toString = function () { + var x = this, + Ctor = x.constructor, + str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); + + return x.isNeg() && !x.isZero() ? '-' + str : str; + }; + + + /* + * Return a new Decimal whose value is the value of this Decimal truncated to a whole number. + * + */ + P.truncated = P.trunc = function () { + return finalise(new this.constructor(this), this.e + 1, 1); + }; + + + /* + * Return a string representing the value of this Decimal. + * Unlike `toString`, negative zero will include the minus sign. + * + */ + P.valueOf = P.toJSON = function () { + var x = this, + Ctor = x.constructor, + str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); + + return x.isNeg() ? '-' + str : str; + }; + + + // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers. + + + /* + * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower, + * finiteToString, naturalExponential, naturalLogarithm + * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest, + * P.toPrecision, P.toSignificantDigits, toStringBinary, random + * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm + * convertBase toStringBinary, parseOther + * cos P.cos + * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy, + * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction, + * P.toNearest, toStringBinary, naturalExponential, naturalLogarithm, + * taylorSeries, atan2, parseOther + * finalise P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh, + * P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus, + * P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot, + * P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed, + * P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits, + * P.truncated, divide, getLn10, getPi, naturalExponential, + * naturalLogarithm, ceil, floor, round, trunc + * finiteToString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf, + * toStringBinary + * getBase10Exponent P.minus, P.plus, P.times, parseOther + * getLn10 P.logarithm, naturalLogarithm + * getPi P.acos, P.asin, P.atan, toLessThanHalfPi, atan2 + * getPrecision P.precision, P.toFraction + * getZeroString digitsToString, finiteToString + * intPow P.toPower, parseOther + * isOdd toLessThanHalfPi + * maxOrMin max, min + * naturalExponential P.naturalExponential, P.toPower + * naturalLogarithm P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm, + * P.toPower, naturalExponential + * nonFiniteToString finiteToString, toStringBinary + * parseDecimal Decimal + * parseOther Decimal + * sin P.sin + * taylorSeries P.cosh, P.sinh, cos, sin + * toLessThanHalfPi P.cos, P.sin + * toStringBinary P.toBinary, P.toHexadecimal, P.toOctal + * truncate intPow + * + * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi, + * naturalLogarithm, config, parseOther, random, Decimal + */ + + + function digitsToString(d) { + var i, k, ws, + indexOfLastWord = d.length - 1, + str = '', + w = d[0]; + + if (indexOfLastWord > 0) { + str += w; + for (i = 1; i < indexOfLastWord; i++) { + ws = d[i] + ''; + k = LOG_BASE - ws.length; + if (k) str += getZeroString(k); + str += ws; + } + + w = d[i]; + ws = w + ''; + k = LOG_BASE - ws.length; + if (k) str += getZeroString(k); + } else if (w === 0) { + return '0'; + } + + // Remove trailing zeros of last w. + for (; w % 10 === 0;) w /= 10; + + return str + w; + } + + + function checkInt32(i, min, max) { + if (i !== ~~i || i < min || i > max) { + throw Error(invalidArgument + i); + } + } + + + /* + * Check 5 rounding digits if `repeating` is null, 4 otherwise. + * `repeating == null` if caller is `log` or `pow`, + * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`. + */ + function checkRoundingDigits(d, i, rm, repeating) { + var di, k, r, rd; + + // Get the length of the first word of the array d. + for (k = d[0]; k >= 10; k /= 10) --i; + + // Is the rounding digit in the first word of d? + if (--i < 0) { + i += LOG_BASE; + di = 0; + } else { + di = Math.ceil((i + 1) / LOG_BASE); + i %= LOG_BASE; + } + + // i is the index (0 - 6) of the rounding digit. + // E.g. if within the word 3487563 the first rounding digit is 5, + // then i = 4, k = 1000, rd = 3487563 % 1000 = 563 + k = mathpow(10, LOG_BASE - i); + rd = d[di] % k | 0; + + if (repeating == null) { + if (i < 3) { + if (i == 0) rd = rd / 100 | 0; + else if (i == 1) rd = rd / 10 | 0; + r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0; + } else { + r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) && + (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 || + (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0; + } + } else { + if (i < 4) { + if (i == 0) rd = rd / 1000 | 0; + else if (i == 1) rd = rd / 100 | 0; + else if (i == 2) rd = rd / 10 | 0; + r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999; + } else { + r = ((repeating || rm < 4) && rd + 1 == k || + (!repeating && rm > 3) && rd + 1 == k / 2) && + (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1; + } + } + + return r; + } + + + // Convert string of `baseIn` to an array of numbers of `baseOut`. + // Eg. convertBase('255', 10, 16) returns [15, 15]. + // Eg. convertBase('ff', 16, 10) returns [2, 5, 5]. + function convertBase(str, baseIn, baseOut) { + var j, + arr = [0], + arrL, + i = 0, + strL = str.length; + + for (; i < strL;) { + for (arrL = arr.length; arrL--;) arr[arrL] *= baseIn; + arr[0] += NUMERALS.indexOf(str.charAt(i++)); + for (j = 0; j < arr.length; j++) { + if (arr[j] > baseOut - 1) { + if (arr[j + 1] === void 0) arr[j + 1] = 0; + arr[j + 1] += arr[j] / baseOut | 0; + arr[j] %= baseOut; + } + } + } + + return arr.reverse(); + } + + + /* + * cos(x) = 1 - x^2/2! + x^4/4! - ... + * |x| < pi/2 + * + */ + function cosine(Ctor, x) { + var k, len, y; + + if (x.isZero()) return x; + + // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1 + // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1 + + // Estimate the optimum number of times to use the argument reduction. + len = x.d.length; + if (len < 32) { + k = Math.ceil(len / 3); + y = (1 / tinyPow(4, k)).toString(); + } else { + k = 16; + y = '2.3283064365386962890625e-10'; + } + + Ctor.precision += k; + + x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1)); + + // Reverse argument reduction + for (var i = k; i--;) { + var cos2x = x.times(x); + x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1); + } + + Ctor.precision -= k; + + return x; + } + + + /* + * Perform division in the specified base. + */ + var divide = (function () { + + // Assumes non-zero x and k, and hence non-zero result. + function multiplyInteger(x, k, base) { + var temp, + carry = 0, + i = x.length; + + for (x = x.slice(); i--;) { + temp = x[i] * k + carry; + x[i] = temp % base | 0; + carry = temp / base | 0; + } + + if (carry) x.unshift(carry); + + return x; + } + + function compare(a, b, aL, bL) { + var i, r; + + if (aL != bL) { + r = aL > bL ? 1 : -1; + } else { + for (i = r = 0; i < aL; i++) { + if (a[i] != b[i]) { + r = a[i] > b[i] ? 1 : -1; + break; + } + } + } + + return r; + } + + function subtract(a, b, aL, base) { + var i = 0; + + // Subtract b from a. + for (; aL--;) { + a[aL] -= i; + i = a[aL] < b[aL] ? 1 : 0; + a[aL] = i * base + a[aL] - b[aL]; + } + + // Remove leading zeros. + for (; !a[0] && a.length > 1;) a.shift(); + } + + return function (x, y, pr, rm, dp, base) { + var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, + yL, yz, + Ctor = x.constructor, + sign = x.s == y.s ? 1 : -1, + xd = x.d, + yd = y.d; + + // Either NaN, Infinity or 0? + if (!xd || !xd[0] || !yd || !yd[0]) { + + return new Ctor(// Return NaN if either NaN, or both Infinity or 0. + !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN : + + // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0. + xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0); + } + + if (base) { + logBase = 1; + e = x.e - y.e; + } else { + base = BASE; + logBase = LOG_BASE; + e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase); + } + + yL = yd.length; + xL = xd.length; + q = new Ctor(sign); + qd = q.d = []; + + // Result exponent may be one less than e. + // The digit array of a Decimal from toStringBinary may have trailing zeros. + for (i = 0; yd[i] == (xd[i] || 0); i++); + + if (yd[i] > (xd[i] || 0)) e--; + + if (pr == null) { + sd = pr = Ctor.precision; + rm = Ctor.rounding; + } else if (dp) { + sd = pr + (x.e - y.e) + 1; + } else { + sd = pr; + } + + if (sd < 0) { + qd.push(1); + more = true; + } else { + + // Convert precision in number of base 10 digits to base 1e7 digits. + sd = sd / logBase + 2 | 0; + i = 0; + + // divisor < 1e7 + if (yL == 1) { + k = 0; + yd = yd[0]; + sd++; + + // k is the carry. + for (; (i < xL || k) && sd--; i++) { + t = k * base + (xd[i] || 0); + qd[i] = t / yd | 0; + k = t % yd | 0; + } + + more = k || i < xL; + + // divisor >= 1e7 + } else { + + // Normalise xd and yd so highest order digit of yd is >= base/2 + k = base / (yd[0] + 1) | 0; + + if (k > 1) { + yd = multiplyInteger(yd, k, base); + xd = multiplyInteger(xd, k, base); + yL = yd.length; + xL = xd.length; + } + + xi = yL; + rem = xd.slice(0, yL); + remL = rem.length; + + // Add zeros to make remainder as long as divisor. + for (; remL < yL;) rem[remL++] = 0; + + yz = yd.slice(); + yz.unshift(0); + yd0 = yd[0]; + + if (yd[1] >= base / 2) ++yd0; + + do { + k = 0; + + // Compare divisor and remainder. + cmp = compare(yd, rem, yL, remL); + + // If divisor < remainder. + if (cmp < 0) { + + // Calculate trial digit, k. + rem0 = rem[0]; + if (yL != remL) rem0 = rem0 * base + (rem[1] || 0); + + // k will be how many times the divisor goes into the current remainder. + k = rem0 / yd0 | 0; + + // Algorithm: + // 1. product = divisor * trial digit (k) + // 2. if product > remainder: product -= divisor, k-- + // 3. remainder -= product + // 4. if product was < remainder at 2: + // 5. compare new remainder and divisor + // 6. If remainder > divisor: remainder -= divisor, k++ + + if (k > 1) { + if (k >= base) k = base - 1; + + // product = divisor * trial digit. + prod = multiplyInteger(yd, k, base); + prodL = prod.length; + remL = rem.length; + + // Compare product and remainder. + cmp = compare(prod, rem, prodL, remL); + + // product > remainder. + if (cmp == 1) { + k--; + + // Subtract divisor from product. + subtract(prod, yL < prodL ? yz : yd, prodL, base); + } + } else { + + // cmp is -1. + // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1 + // to avoid it. If k is 1 there is a need to compare yd and rem again below. + if (k == 0) cmp = k = 1; + prod = yd.slice(); + } + + prodL = prod.length; + if (prodL < remL) prod.unshift(0); + + // Subtract product from remainder. + subtract(rem, prod, remL, base); + + // If product was < previous remainder. + if (cmp == -1) { + remL = rem.length; + + // Compare divisor and new remainder. + cmp = compare(yd, rem, yL, remL); + + // If divisor < new remainder, subtract divisor from remainder. + if (cmp < 1) { + k++; + + // Subtract divisor from remainder. + subtract(rem, yL < remL ? yz : yd, remL, base); + } + } + + remL = rem.length; + } else if (cmp === 0) { + k++; + rem = [0]; + } // if cmp === 1, k will be 0 + + // Add the next digit, k, to the result array. + qd[i++] = k; + + // Update the remainder. + if (cmp && rem[0]) { + rem[remL++] = xd[xi] || 0; + } else { + rem = [xd[xi]]; + remL = 1; + } + + } while ((xi++ < xL || rem[0] !== void 0) && sd--); + + more = rem[0] !== void 0; + } + + // Leading zero? + if (!qd[0]) qd.shift(); + } + + // logBase is 1 when divide is being used for base conversion. + if (logBase == 1) { + q.e = e; + inexact = more; + } else { + + // To calculate q.e, first get the number of digits of qd[0]. + for (i = 1, k = qd[0]; k >= 10; k /= 10) i++; + q.e = i + e * logBase - 1; + + finalise(q, dp ? pr + q.e + 1 : pr, rm, more); + } + + return q; + }; + })(); + + + /* + * Round `x` to `sd` significant digits using rounding mode `rm`. + * Check for over/under-flow. + */ + function finalise(x, sd, rm, isTruncated) { + var digits, i, j, k, rd, roundUp, w, xd, xdi, + Ctor = x.constructor; + + // Don't round if sd is null or undefined. + out: if (sd != null) { + xd = x.d; + + // Infinity/NaN. + if (!xd) return x; + + // rd: the rounding digit, i.e. the digit after the digit that may be rounded up. + // w: the word of xd containing rd, a base 1e7 number. + // xdi: the index of w within xd. + // digits: the number of digits of w. + // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if + // they had leading zeros) + // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero). + + // Get the length of the first word of the digits array xd. + for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++; + i = sd - digits; + + // Is the rounding digit in the first word of xd? + if (i < 0) { + i += LOG_BASE; + j = sd; + w = xd[xdi = 0]; + + // Get the rounding digit at index j of w. + rd = w / mathpow(10, digits - j - 1) % 10 | 0; + } else { + xdi = Math.ceil((i + 1) / LOG_BASE); + k = xd.length; + if (xdi >= k) { + if (isTruncated) { + + // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`. + for (; k++ <= xdi;) xd.push(0); + w = rd = 0; + digits = 1; + i %= LOG_BASE; + j = i - LOG_BASE + 1; + } else { + break out; + } + } else { + w = k = xd[xdi]; + + // Get the number of digits of w. + for (digits = 1; k >= 10; k /= 10) digits++; + + // Get the index of rd within w. + i %= LOG_BASE; + + // Get the index of rd within w, adjusted for leading zeros. + // The number of leading zeros of w is given by LOG_BASE - digits. + j = i - LOG_BASE + digits; + + // Get the rounding digit at index j of w. + rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0; + } + } + + // Are there any non-zero digits after the rounding digit? + isTruncated = isTruncated || sd < 0 || + xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1)); + + // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right + // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression + // will give 714. + + roundUp = rm < 4 + ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) + : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 && + + // Check whether the digit to the left of the rounding digit is odd. + ((i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10) & 1 || + rm == (x.s < 0 ? 8 : 7)); + + if (sd < 1 || !xd[0]) { + xd.length = 0; + if (roundUp) { + + // Convert sd to decimal places. + sd -= x.e + 1; + + // 1, 0.1, 0.01, 0.001, 0.0001 etc. + xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE); + x.e = -sd || 0; + } else { + + // Zero. + xd[0] = x.e = 0; + } + + return x; + } + + // Remove excess digits. + if (i == 0) { + xd.length = xdi; + k = 1; + xdi--; + } else { + xd.length = xdi + 1; + k = mathpow(10, LOG_BASE - i); + + // E.g. 56700 becomes 56000 if 7 is the rounding digit. + // j > 0 means i > number of leading zeros of w. + xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0; + } + + if (roundUp) { + for (;;) { + + // Is the digit to be rounded up in the first word of xd? + if (xdi == 0) { + + // i will be the length of xd[0] before k is added. + for (i = 1, j = xd[0]; j >= 10; j /= 10) i++; + j = xd[0] += k; + for (k = 1; j >= 10; j /= 10) k++; + + // if i != k the length has increased. + if (i != k) { + x.e++; + if (xd[0] == BASE) xd[0] = 1; + } + + break; + } else { + xd[xdi] += k; + if (xd[xdi] != BASE) break; + xd[xdi--] = 0; + k = 1; + } + } + } + + // Remove trailing zeros. + for (i = xd.length; xd[--i] === 0;) xd.pop(); + } + + if (external) { + + // Overflow? + if (x.e > Ctor.maxE) { + + // Infinity. + x.d = null; + x.e = NaN; + + // Underflow? + } else if (x.e < Ctor.minE) { + + // Zero. + x.e = 0; + x.d = [0]; + // Ctor.underflow = true; + } // else Ctor.underflow = false; + } + + return x; + } + + + function finiteToString(x, isExp, sd) { + if (!x.isFinite()) return nonFiniteToString(x); + var k, + e = x.e, + str = digitsToString(x.d), + len = str.length; + + if (isExp) { + if (sd && (k = sd - len) > 0) { + str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k); + } else if (len > 1) { + str = str.charAt(0) + '.' + str.slice(1); + } + + str = str + (x.e < 0 ? 'e' : 'e+') + x.e; + } else if (e < 0) { + str = '0.' + getZeroString(-e - 1) + str; + if (sd && (k = sd - len) > 0) str += getZeroString(k); + } else if (e >= len) { + str += getZeroString(e + 1 - len); + if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k); + } else { + if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k); + if (sd && (k = sd - len) > 0) { + if (e + 1 === len) str += '.'; + str += getZeroString(k); + } + } + + return str; + } + + + // Calculate the base 10 exponent from the base 1e7 exponent. + function getBase10Exponent(digits, e) { + var w = digits[0]; + + // Add the number of digits of the first word of the digits array. + for ( e *= LOG_BASE; w >= 10; w /= 10) e++; + return e; + } + + + function getLn10(Ctor, sd, pr) { + if (sd > LN10_PRECISION) { + + // Reset global state in case the exception is caught. + external = true; + if (pr) Ctor.precision = pr; + throw Error(precisionLimitExceeded); + } + return finalise(new Ctor(LN10), sd, 1, true); + } + + + function getPi(Ctor, sd, rm) { + if (sd > PI_PRECISION) throw Error(precisionLimitExceeded); + return finalise(new Ctor(PI), sd, rm, true); + } + + + function getPrecision(digits) { + var w = digits.length - 1, + len = w * LOG_BASE + 1; + + w = digits[w]; + + // If non-zero... + if (w) { + + // Subtract the number of trailing zeros of the last word. + for (; w % 10 == 0; w /= 10) len--; + + // Add the number of digits of the first word. + for (w = digits[0]; w >= 10; w /= 10) len++; + } + + return len; + } + + + function getZeroString(k) { + var zs = ''; + for (; k--;) zs += '0'; + return zs; + } + + + /* + * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an + * integer of type number. + * + * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`. + * + */ + function intPow(Ctor, x, n, pr) { + var isTruncated, + r = new Ctor(1), + + // Max n of 9007199254740991 takes 53 loop iterations. + // Maximum digits array length; leaves [28, 34] guard digits. + k = Math.ceil(pr / LOG_BASE + 4); + + external = false; + + for (;;) { + if (n % 2) { + r = r.times(x); + if (truncate(r.d, k)) isTruncated = true; + } + + n = mathfloor(n / 2); + if (n === 0) { + + // To ensure correct rounding when r.d is truncated, increment the last word if it is zero. + n = r.d.length - 1; + if (isTruncated && r.d[n] === 0) ++r.d[n]; + break; + } + + x = x.times(x); + truncate(x.d, k); + } + + external = true; + + return r; + } + + + function isOdd(n) { + return n.d[n.d.length - 1] & 1; + } + + + /* + * Handle `max` and `min`. `ltgt` is 'lt' or 'gt'. + */ + function maxOrMin(Ctor, args, ltgt) { + var y, + x = new Ctor(args[0]), + i = 0; + + for (; ++i < args.length;) { + y = new Ctor(args[i]); + if (!y.s) { + x = y; + break; + } else if (x[ltgt](y)) { + x = y; + } + } + + return x; + } + + + /* + * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant + * digits. + * + * Taylor/Maclaurin series. + * + * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ... + * + * Argument reduction: + * Repeat x = x / 32, k += 5, until |x| < 0.1 + * exp(x) = exp(x / 2^k)^(2^k) + * + * Previously, the argument was initially reduced by + * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10) + * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was + * found to be slower than just dividing repeatedly by 32 as above. + * + * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000 + * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000 + * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324) + * + * exp(Infinity) = Infinity + * exp(-Infinity) = 0 + * exp(NaN) = NaN + * exp(±0) = 1 + * + * exp(x) is non-terminating for any finite, non-zero x. + * + * The result will always be correctly rounded. + * + */ + function naturalExponential(x, sd) { + var denominator, guard, j, pow, sum, t, wpr, + rep = 0, + i = 0, + k = 0, + Ctor = x.constructor, + rm = Ctor.rounding, + pr = Ctor.precision; + + // 0/NaN/Infinity? + if (!x.d || !x.d[0] || x.e > 17) { + + return new Ctor(x.d + ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0 + : x.s ? x.s < 0 ? 0 : x : 0 / 0); + } + + if (sd == null) { + external = false; + wpr = pr; + } else { + wpr = sd; + } + + t = new Ctor(0.03125); + + // while abs(x) >= 0.1 + while (x.e > -2) { + + // x = x / 2^5 + x = x.times(t); + k += 5; + } + + // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision + // necessary to ensure the first 4 rounding digits are correct. + guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0; + wpr += guard; + denominator = pow = sum = new Ctor(1); + Ctor.precision = wpr; + + for (;;) { + pow = finalise(pow.times(x), wpr, 1); + denominator = denominator.times(++i); + t = sum.plus(divide(pow, denominator, wpr, 1)); + + if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) { + j = k; + while (j--) sum = finalise(sum.times(sum), wpr, 1); + + // Check to see if the first 4 rounding digits are [49]999. + // If so, repeat the summation with a higher precision, otherwise + // e.g. with precision: 18, rounding: 1 + // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123) + // `wpr - guard` is the index of first rounding digit. + if (sd == null) { + + if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) { + Ctor.precision = wpr += 10; + denominator = pow = t = new Ctor(1); + i = 0; + rep++; + } else { + return finalise(sum, Ctor.precision = pr, rm, external = true); + } + } else { + Ctor.precision = pr; + return sum; + } + } + + sum = t; + } + } + + + /* + * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant + * digits. + * + * ln(-n) = NaN + * ln(0) = -Infinity + * ln(-0) = -Infinity + * ln(1) = 0 + * ln(Infinity) = Infinity + * ln(-Infinity) = NaN + * ln(NaN) = NaN + * + * ln(n) (n != 1) is non-terminating. + * + */ + function naturalLogarithm(y, sd) { + var c, c0, denominator, e, numerator, rep, sum, t, wpr, x1, x2, + n = 1, + guard = 10, + x = y, + xd = x.d, + Ctor = x.constructor, + rm = Ctor.rounding, + pr = Ctor.precision; + + // Is x negative or Infinity, NaN, 0 or 1? + if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) { + return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x); + } + + if (sd == null) { + external = false; + wpr = pr; + } else { + wpr = sd; + } + + Ctor.precision = wpr += guard; + c = digitsToString(xd); + c0 = c.charAt(0); + + if (Math.abs(e = x.e) < 1.5e15) { + + // Argument reduction. + // The series converges faster the closer the argument is to 1, so using + // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b + // multiply the argument by itself until the leading digits of the significand are 7, 8, 9, + // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can + // later be divided by this number, then separate out the power of 10 using + // ln(a*10^b) = ln(a) + b*ln(10). + + // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14). + //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) { + // max n is 6 (gives 0.7 - 1.3) + while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) { + x = x.times(y); + c = digitsToString(x.d); + c0 = c.charAt(0); + n++; + } + + e = x.e; + + if (c0 > 1) { + x = new Ctor('0.' + c); + e++; + } else { + x = new Ctor(c0 + '.' + c.slice(1)); + } + } else { + + // The argument reduction method above may result in overflow if the argument y is a massive + // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this + // function using ln(x*10^e) = ln(x) + e*ln(10). + t = getLn10(Ctor, wpr + 2, pr).times(e + ''); + x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t); + Ctor.precision = pr; + + return sd == null ? finalise(x, pr, rm, external = true) : x; + } + + // x1 is x reduced to a value near 1. + x1 = x; + + // Taylor series. + // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...) + // where x = (y - 1)/(y + 1) (|x| < 1) + sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1); + x2 = finalise(x.times(x), wpr, 1); + denominator = 3; + + for (;;) { + numerator = finalise(numerator.times(x2), wpr, 1); + t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1)); + + if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) { + sum = sum.times(2); + + // Reverse the argument reduction. Check that e is not 0 because, besides preventing an + // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0. + if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + '')); + sum = divide(sum, new Ctor(n), wpr, 1); + + // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has + // been repeated previously) and the first 4 rounding digits 9999? + // If so, restart the summation with a higher precision, otherwise + // e.g. with precision: 12, rounding: 1 + // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463. + // `wpr - guard` is the index of first rounding digit. + if (sd == null) { + if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) { + Ctor.precision = wpr += guard; + t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1); + x2 = finalise(x.times(x), wpr, 1); + denominator = rep = 1; + } else { + return finalise(sum, Ctor.precision = pr, rm, external = true); + } + } else { + Ctor.precision = pr; + return sum; + } + } + + sum = t; + denominator += 2; + } + } + + + // ±Infinity, NaN. + function nonFiniteToString(x) { + // Unsigned. + return String(x.s * x.s / 0); + } + + + /* + * Parse the value of a new Decimal `x` from string `str`. + */ + function parseDecimal(x, str) { + var e, i, len; + + // Decimal point? + if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); + + // Exponential form? + if ((i = str.search(/e/i)) > 0) { + + // Determine exponent. + if (e < 0) e = i; + e += +str.slice(i + 1); + str = str.substring(0, i); + } else if (e < 0) { + + // Integer. + e = str.length; + } + + // Determine leading zeros. + for (i = 0; str.charCodeAt(i) === 48; i++); + + // Determine trailing zeros. + for (len = str.length; str.charCodeAt(len - 1) === 48; --len); + str = str.slice(i, len); + + if (str) { + len -= i; + x.e = e = e - i - 1; + x.d = []; + + // Transform base + + // e is the base 10 exponent. + // i is where to slice str to get the first word of the digits array. + i = (e + 1) % LOG_BASE; + if (e < 0) i += LOG_BASE; + + if (i < len) { + if (i) x.d.push(+str.slice(0, i)); + for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE)); + str = str.slice(i); + i = LOG_BASE - str.length; + } else { + i -= len; + } + + for (; i--;) str += '0'; + x.d.push(+str); + + if (external) { + + // Overflow? + if (x.e > x.constructor.maxE) { + + // Infinity. + x.d = null; + x.e = NaN; + + // Underflow? + } else if (x.e < x.constructor.minE) { + + // Zero. + x.e = 0; + x.d = [0]; + // x.constructor.underflow = true; + } // else x.constructor.underflow = false; + } + } else { + + // Zero. + x.e = 0; + x.d = [0]; + } + + return x; + } + + + /* + * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value. + */ + function parseOther(x, str) { + var base, Ctor, divisor, i, isFloat, len, p, xd, xe; + + if (str.indexOf('_') > -1) { + str = str.replace(/(\d)_(?=\d)/g, '$1'); + if (isDecimal.test(str)) return parseDecimal(x, str); + } else if (str === 'Infinity' || str === 'NaN') { + if (!+str) x.s = NaN; + x.e = NaN; + x.d = null; + return x; + } + + if (isHex.test(str)) { + base = 16; + str = str.toLowerCase(); + } else if (isBinary.test(str)) { + base = 2; + } else if (isOctal.test(str)) { + base = 8; + } else { + throw Error(invalidArgument + str); + } + + // Is there a binary exponent part? + i = str.search(/p/i); + + if (i > 0) { + p = +str.slice(i + 1); + str = str.substring(2, i); + } else { + str = str.slice(2); + } + + // Convert `str` as an integer then divide the result by `base` raised to a power such that the + // fraction part will be restored. + i = str.indexOf('.'); + isFloat = i >= 0; + Ctor = x.constructor; + + if (isFloat) { + str = str.replace('.', ''); + len = str.length; + i = len - i; + + // log[10](16) = 1.2041... , log[10](88) = 1.9444.... + divisor = intPow(Ctor, new Ctor(base), i, i * 2); + } + + xd = convertBase(str, base, BASE); + xe = xd.length - 1; + + // Remove trailing zeros. + for (i = xe; xd[i] === 0; --i) xd.pop(); + if (i < 0) return new Ctor(x.s * 0); + x.e = getBase10Exponent(xd, xe); + x.d = xd; + external = false; + + // At what precision to perform the division to ensure exact conversion? + // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount) + // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412 + // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits. + // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount + // Therefore using 4 * the number of digits of str will always be enough. + if (isFloat) x = divide(x, divisor, len * 4); + + // Multiply by the binary exponent part if present. + if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p)); + external = true; + + return x; + } + + + /* + * sin(x) = x - x^3/3! + x^5/5! - ... + * |x| < pi/2 + * + */ + function sine(Ctor, x) { + var k, + len = x.d.length; + + if (len < 3) { + return x.isZero() ? x : taylorSeries(Ctor, 2, x, x); + } + + // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x) + // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5) + // and sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20)) + + // Estimate the optimum number of times to use the argument reduction. + k = 1.4 * Math.sqrt(len); + k = k > 16 ? 16 : k | 0; + + x = x.times(1 / tinyPow(5, k)); + x = taylorSeries(Ctor, 2, x, x); + + // Reverse argument reduction + var sin2_x, + d5 = new Ctor(5), + d16 = new Ctor(16), + d20 = new Ctor(20); + for (; k--;) { + sin2_x = x.times(x); + x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20)))); + } + + return x; + } + + + // Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`. + function taylorSeries(Ctor, n, x, y, isHyperbolic) { + var j, t, u, x2, + pr = Ctor.precision, + k = Math.ceil(pr / LOG_BASE); + + external = false; + x2 = x.times(x); + u = new Ctor(y); + + for (;;) { + t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1); + u = isHyperbolic ? y.plus(t) : y.minus(t); + y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1); + t = u.plus(y); + + if (t.d[k] !== void 0) { + for (j = k; t.d[j] === u.d[j] && j--;); + if (j == -1) break; + } + + j = u; + u = y; + y = t; + t = j; + } + + external = true; + t.d.length = k + 1; + + return t; + } + + + // Exponent e must be positive and non-zero. + function tinyPow(b, e) { + var n = b; + while (--e) n *= b; + return n; + } + + + // Return the absolute value of `x` reduced to less than or equal to half pi. + function toLessThanHalfPi(Ctor, x) { + var t, + isNeg = x.s < 0, + pi = getPi(Ctor, Ctor.precision, 1), + halfPi = pi.times(0.5); + + x = x.abs(); + + if (x.lte(halfPi)) { + quadrant = isNeg ? 4 : 1; + return x; + } + + t = x.divToInt(pi); + + if (t.isZero()) { + quadrant = isNeg ? 3 : 2; + } else { + x = x.minus(t.times(pi)); + + // 0 <= x < pi + if (x.lte(halfPi)) { + quadrant = isOdd(t) ? (isNeg ? 2 : 3) : (isNeg ? 4 : 1); + return x; + } + + quadrant = isOdd(t) ? (isNeg ? 1 : 4) : (isNeg ? 3 : 2); + } + + return x.minus(pi).abs(); + } + + + /* + * Return the value of Decimal `x` as a string in base `baseOut`. + * + * If the optional `sd` argument is present include a binary exponent suffix. + */ + function toStringBinary(x, baseOut, sd, rm) { + var base, e, i, k, len, roundUp, str, xd, y, + Ctor = x.constructor, + isExp = sd !== void 0; + + if (isExp) { + checkInt32(sd, 1, MAX_DIGITS); + if (rm === void 0) rm = Ctor.rounding; + else checkInt32(rm, 0, 8); + } else { + sd = Ctor.precision; + rm = Ctor.rounding; + } + + if (!x.isFinite()) { + str = nonFiniteToString(x); + } else { + str = finiteToString(x); + i = str.indexOf('.'); + + // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required: + // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10)) + // minBinaryExponent = floor(decimalExponent * log[2](10)) + // log[2](10) = 3.321928094887362347870319429489390175864 + + if (isExp) { + base = 2; + if (baseOut == 16) { + sd = sd * 4 - 3; + } else if (baseOut == 8) { + sd = sd * 3 - 2; + } + } else { + base = baseOut; + } + + // Convert the number as an integer then divide the result by its base raised to a power such + // that the fraction part will be restored. + + // Non-integer. + if (i >= 0) { + str = str.replace('.', ''); + y = new Ctor(1); + y.e = str.length - i; + y.d = convertBase(finiteToString(y), 10, base); + y.e = y.d.length; + } + + xd = convertBase(str, 10, base); + e = len = xd.length; + + // Remove trailing zeros. + for (; xd[--len] == 0;) xd.pop(); + + if (!xd[0]) { + str = isExp ? '0p+0' : '0'; + } else { + if (i < 0) { + e--; + } else { + x = new Ctor(x); + x.d = xd; + x.e = e; + x = divide(x, y, sd, rm, 0, base); + xd = x.d; + e = x.e; + roundUp = inexact; + } + + // The rounding digit, i.e. the digit after the digit that may be rounded up. + i = xd[sd]; + k = base / 2; + roundUp = roundUp || xd[sd + 1] !== void 0; + + roundUp = rm < 4 + ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2)) + : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 || + rm === (x.s < 0 ? 8 : 7)); + + xd.length = sd; + + if (roundUp) { + + // Rounding up may mean the previous digit has to be rounded up and so on. + for (; ++xd[--sd] > base - 1;) { + xd[sd] = 0; + if (!sd) { + ++e; + xd.unshift(1); + } + } + } + + // Determine trailing zeros. + for (len = xd.length; !xd[len - 1]; --len); + + // E.g. [4, 11, 15] becomes 4bf. + for (i = 0, str = ''; i < len; i++) str += NUMERALS.charAt(xd[i]); + + // Add binary exponent suffix? + if (isExp) { + if (len > 1) { + if (baseOut == 16 || baseOut == 8) { + i = baseOut == 16 ? 4 : 3; + for (--len; len % i; len++) str += '0'; + xd = convertBase(str, base, baseOut); + for (len = xd.length; !xd[len - 1]; --len); + + // xd[0] will always be be 1 + for (i = 1, str = '1.'; i < len; i++) str += NUMERALS.charAt(xd[i]); + } else { + str = str.charAt(0) + '.' + str.slice(1); + } + } + + str = str + (e < 0 ? 'p' : 'p+') + e; + } else if (e < 0) { + for (; ++e;) str = '0' + str; + str = '0.' + str; + } else { + if (++e > len) for (e -= len; e-- ;) str += '0'; + else if (e < len) str = str.slice(0, e) + '.' + str.slice(e); + } + } + + str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str; + } + + return x.s < 0 ? '-' + str : str; + } + + + // Does not strip trailing zeros. + function truncate(arr, len) { + if (arr.length > len) { + arr.length = len; + return true; + } + } + + + // Decimal methods + + + /* + * abs + * acos + * acosh + * add + * asin + * asinh + * atan + * atanh + * atan2 + * cbrt + * ceil + * clamp + * clone + * config + * cos + * cosh + * div + * exp + * floor + * hypot + * ln + * log + * log2 + * log10 + * max + * min + * mod + * mul + * pow + * random + * round + * set + * sign + * sin + * sinh + * sqrt + * sub + * sum + * tan + * tanh + * trunc + */ + + + /* + * Return a new Decimal whose value is the absolute value of `x`. + * + * x {number|string|Decimal} + * + */ + function abs(x) { + return new this(x).abs(); + } + + + /* + * Return a new Decimal whose value is the arccosine in radians of `x`. + * + * x {number|string|Decimal} + * + */ + function acos(x) { + return new this(x).acos(); + } + + + /* + * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to + * `precision` significant digits using rounding mode `rounding`. + * + * x {number|string|Decimal} A value in radians. + * + */ + function acosh(x) { + return new this(x).acosh(); + } + + + /* + * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant + * digits using rounding mode `rounding`. + * + * x {number|string|Decimal} + * y {number|string|Decimal} + * + */ + function add(x, y) { + return new this(x).plus(y); + } + + + /* + * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + * x {number|string|Decimal} + * + */ + function asin(x) { + return new this(x).asin(); + } + + + /* + * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to + * `precision` significant digits using rounding mode `rounding`. + * + * x {number|string|Decimal} A value in radians. + * + */ + function asinh(x) { + return new this(x).asinh(); + } + + + /* + * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + * x {number|string|Decimal} + * + */ + function atan(x) { + return new this(x).atan(); + } + + + /* + * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to + * `precision` significant digits using rounding mode `rounding`. + * + * x {number|string|Decimal} A value in radians. + * + */ + function atanh(x) { + return new this(x).atanh(); + } + + + /* + * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi + * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`. + * + * Domain: [-Infinity, Infinity] + * Range: [-pi, pi] + * + * y {number|string|Decimal} The y-coordinate. + * x {number|string|Decimal} The x-coordinate. + * + * atan2(±0, -0) = ±pi + * atan2(±0, +0) = ±0 + * atan2(±0, -x) = ±pi for x > 0 + * atan2(±0, x) = ±0 for x > 0 + * atan2(-y, ±0) = -pi/2 for y > 0 + * atan2(y, ±0) = pi/2 for y > 0 + * atan2(±y, -Infinity) = ±pi for finite y > 0 + * atan2(±y, +Infinity) = ±0 for finite y > 0 + * atan2(±Infinity, x) = ±pi/2 for finite x + * atan2(±Infinity, -Infinity) = ±3*pi/4 + * atan2(±Infinity, +Infinity) = ±pi/4 + * atan2(NaN, x) = NaN + * atan2(y, NaN) = NaN + * + */ + function atan2(y, x) { + y = new this(y); + x = new this(x); + var r, + pr = this.precision, + rm = this.rounding, + wpr = pr + 4; + + // Either NaN + if (!y.s || !x.s) { + r = new this(NaN); + + // Both ±Infinity + } else if (!y.d && !x.d) { + r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75); + r.s = y.s; + + // x is ±Infinity or y is ±0 + } else if (!x.d || y.isZero()) { + r = x.s < 0 ? getPi(this, pr, rm) : new this(0); + r.s = y.s; + + // y is ±Infinity or x is ±0 + } else if (!y.d || x.isZero()) { + r = getPi(this, wpr, 1).times(0.5); + r.s = y.s; + + // Both non-zero and finite + } else if (x.s < 0) { + this.precision = wpr; + this.rounding = 1; + r = this.atan(divide(y, x, wpr, 1)); + x = getPi(this, wpr, 1); + this.precision = pr; + this.rounding = rm; + r = y.s < 0 ? r.minus(x) : r.plus(x); + } else { + r = this.atan(divide(y, x, wpr, 1)); + } + + return r; + } + + + /* + * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant + * digits using rounding mode `rounding`. + * + * x {number|string|Decimal} + * + */ + function cbrt(x) { + return new this(x).cbrt(); + } + + + /* + * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`. + * + * x {number|string|Decimal} + * + */ + function ceil(x) { + return finalise(x = new this(x), x.e + 1, 2); + } + + + /* + * Return a new Decimal whose value is `x` clamped to the range delineated by `min` and `max`. + * + * x {number|string|Decimal} + * min {number|string|Decimal} + * max {number|string|Decimal} + * + */ + function clamp(x, min, max) { + return new this(x).clamp(min, max); + } + + + /* + * Configure global settings for a Decimal constructor. + * + * `obj` is an object with one or more of the following properties, + * + * precision {number} + * rounding {number} + * toExpNeg {number} + * toExpPos {number} + * maxE {number} + * minE {number} + * modulo {number} + * crypto {boolean|number} + * defaults {true} + * + * E.g. Decimal.config({ precision: 20, rounding: 4 }) + * + */ + function config(obj) { + if (!obj || typeof obj !== 'object') throw Error(decimalError + 'Object expected'); + var i, p, v, + useDefaults = obj.defaults === true, + ps = [ + 'precision', 1, MAX_DIGITS, + 'rounding', 0, 8, + 'toExpNeg', -EXP_LIMIT, 0, + 'toExpPos', 0, EXP_LIMIT, + 'maxE', 0, EXP_LIMIT, + 'minE', -EXP_LIMIT, 0, + 'modulo', 0, 9 + ]; + + for (i = 0; i < ps.length; i += 3) { + if (p = ps[i], useDefaults) this[p] = DEFAULTS[p]; + if ((v = obj[p]) !== void 0) { + if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v; + else throw Error(invalidArgument + p + ': ' + v); + } + } + + if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p]; + if ((v = obj[p]) !== void 0) { + if (v === true || v === false || v === 0 || v === 1) { + if (v) { + if (typeof crypto != 'undefined' && crypto && + (crypto.getRandomValues || crypto.randomBytes)) { + this[p] = true; + } else { + throw Error(cryptoUnavailable); + } + } else { + this[p] = false; + } + } else { + throw Error(invalidArgument + p + ': ' + v); + } + } + + return this; + } + + + /* + * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant + * digits using rounding mode `rounding`. + * + * x {number|string|Decimal} A value in radians. + * + */ + function cos(x) { + return new this(x).cos(); + } + + + /* + * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision + * significant digits using rounding mode `rounding`. + * + * x {number|string|Decimal} A value in radians. + * + */ + function cosh(x) { + return new this(x).cosh(); + } + + + /* + * Create and return a Decimal constructor with the same configuration properties as this Decimal + * constructor. + * + */ + function clone(obj) { + var i, p, ps; + + /* + * The Decimal constructor and exported function. + * Return a new Decimal instance. + * + * v {number|string|Decimal} A numeric value. + * + */ + function Decimal(v) { + var e, i, t, + x = this; + + // Decimal called without new. + if (!(x instanceof Decimal)) return new Decimal(v); + + // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor + // which points to Object. + x.constructor = Decimal; + + // Duplicate. + if (isDecimalInstance(v)) { + x.s = v.s; + + if (external) { + if (!v.d || v.e > Decimal.maxE) { + + // Infinity. + x.e = NaN; + x.d = null; + } else if (v.e < Decimal.minE) { + + // Zero. + x.e = 0; + x.d = [0]; + } else { + x.e = v.e; + x.d = v.d.slice(); + } + } else { + x.e = v.e; + x.d = v.d ? v.d.slice() : v.d; + } + + return; + } + + t = typeof v; + + if (t === 'number') { + if (v === 0) { + x.s = 1 / v < 0 ? -1 : 1; + x.e = 0; + x.d = [0]; + return; + } + + if (v < 0) { + v = -v; + x.s = -1; + } else { + x.s = 1; + } + + // Fast path for small integers. + if (v === ~~v && v < 1e7) { + for (e = 0, i = v; i >= 10; i /= 10) e++; + + if (external) { + if (e > Decimal.maxE) { + x.e = NaN; + x.d = null; + } else if (e < Decimal.minE) { + x.e = 0; + x.d = [0]; + } else { + x.e = e; + x.d = [v]; + } + } else { + x.e = e; + x.d = [v]; + } + + return; + + // Infinity, NaN. + } else if (v * 0 !== 0) { + if (!v) x.s = NaN; + x.e = NaN; + x.d = null; + return; + } + + return parseDecimal(x, v.toString()); + + } else if (t !== 'string') { + throw Error(invalidArgument + v); + } + + // Minus sign? + if ((i = v.charCodeAt(0)) === 45) { + v = v.slice(1); + x.s = -1; + } else { + // Plus sign? + if (i === 43) v = v.slice(1); + x.s = 1; + } + + return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v); + } + + Decimal.prototype = P; + + Decimal.ROUND_UP = 0; + Decimal.ROUND_DOWN = 1; + Decimal.ROUND_CEIL = 2; + Decimal.ROUND_FLOOR = 3; + Decimal.ROUND_HALF_UP = 4; + Decimal.ROUND_HALF_DOWN = 5; + Decimal.ROUND_HALF_EVEN = 6; + Decimal.ROUND_HALF_CEIL = 7; + Decimal.ROUND_HALF_FLOOR = 8; + Decimal.EUCLID = 9; + + Decimal.config = Decimal.set = config; + Decimal.clone = clone; + Decimal.isDecimal = isDecimalInstance; + + Decimal.abs = abs; + Decimal.acos = acos; + Decimal.acosh = acosh; // ES6 + Decimal.add = add; + Decimal.asin = asin; + Decimal.asinh = asinh; // ES6 + Decimal.atan = atan; + Decimal.atanh = atanh; // ES6 + Decimal.atan2 = atan2; + Decimal.cbrt = cbrt; // ES6 + Decimal.ceil = ceil; + Decimal.clamp = clamp; + Decimal.cos = cos; + Decimal.cosh = cosh; // ES6 + Decimal.div = div; + Decimal.exp = exp; + Decimal.floor = floor; + Decimal.hypot = hypot; // ES6 + Decimal.ln = ln; + Decimal.log = log; + Decimal.log10 = log10; // ES6 + Decimal.log2 = log2; // ES6 + Decimal.max = max; + Decimal.min = min; + Decimal.mod = mod; + Decimal.mul = mul; + Decimal.pow = pow; + Decimal.random = random; + Decimal.round = round; + Decimal.sign = sign; // ES6 + Decimal.sin = sin; + Decimal.sinh = sinh; // ES6 + Decimal.sqrt = sqrt; + Decimal.sub = sub; + Decimal.sum = sum; + Decimal.tan = tan; + Decimal.tanh = tanh; // ES6 + Decimal.trunc = trunc; // ES6 + + if (obj === void 0) obj = {}; + if (obj) { + if (obj.defaults !== true) { + ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto']; + for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p]; + } + } + + Decimal.config(obj); + + return Decimal; + } + + + /* + * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant + * digits using rounding mode `rounding`. + * + * x {number|string|Decimal} + * y {number|string|Decimal} + * + */ + function div(x, y) { + return new this(x).div(y); + } + + + /* + * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + * x {number|string|Decimal} The power to which to raise the base of the natural log. + * + */ + function exp(x) { + return new this(x).exp(); + } + + + /* + * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`. + * + * x {number|string|Decimal} + * + */ + function floor(x) { + return finalise(x = new this(x), x.e + 1, 3); + } + + + /* + * Return a new Decimal whose value is the square root of the sum of the squares of the arguments, + * rounded to `precision` significant digits using rounding mode `rounding`. + * + * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...) + * + * arguments {number|string|Decimal} + * + */ + function hypot() { + var i, n, + t = new this(0); + + external = false; + + for (i = 0; i < arguments.length;) { + n = new this(arguments[i++]); + if (!n.d) { + if (n.s) { + external = true; + return new this(1 / 0); + } + t = n; + } else if (t.d) { + t = t.plus(n.times(n)); + } + } + + external = true; + + return t.sqrt(); + } + + + /* + * Return true if object is a Decimal instance (where Decimal is any Decimal constructor), + * otherwise return false. + * + */ + function isDecimalInstance(obj) { + return obj instanceof Decimal || obj && obj.toStringTag === tag || false; + } + + + /* + * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + * x {number|string|Decimal} + * + */ + function ln(x) { + return new this(x).ln(); + } + + + /* + * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base + * is specified, rounded to `precision` significant digits using rounding mode `rounding`. + * + * log[y](x) + * + * x {number|string|Decimal} The argument of the logarithm. + * y {number|string|Decimal} The base of the logarithm. + * + */ + function log(x, y) { + return new this(x).log(y); + } + + + /* + * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + * x {number|string|Decimal} + * + */ + function log2(x) { + return new this(x).log(2); + } + + + /* + * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + * x {number|string|Decimal} + * + */ + function log10(x) { + return new this(x).log(10); + } + + + /* + * Return a new Decimal whose value is the maximum of the arguments. + * + * arguments {number|string|Decimal} + * + */ + function max() { + return maxOrMin(this, arguments, 'lt'); + } + + + /* + * Return a new Decimal whose value is the minimum of the arguments. + * + * arguments {number|string|Decimal} + * + */ + function min() { + return maxOrMin(this, arguments, 'gt'); + } + + + /* + * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits + * using rounding mode `rounding`. + * + * x {number|string|Decimal} + * y {number|string|Decimal} + * + */ + function mod(x, y) { + return new this(x).mod(y); + } + + + /* + * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant + * digits using rounding mode `rounding`. + * + * x {number|string|Decimal} + * y {number|string|Decimal} + * + */ + function mul(x, y) { + return new this(x).mul(y); + } + + + /* + * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision + * significant digits using rounding mode `rounding`. + * + * x {number|string|Decimal} The base. + * y {number|string|Decimal} The exponent. + * + */ + function pow(x, y) { + return new this(x).pow(y); + } + + + /* + * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with + * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros + * are produced). + * + * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive. + * + */ + function random(sd) { + var d, e, k, n, + i = 0, + r = new this(1), + rd = []; + + if (sd === void 0) sd = this.precision; + else checkInt32(sd, 1, MAX_DIGITS); + + k = Math.ceil(sd / LOG_BASE); + + if (!this.crypto) { + for (; i < k;) rd[i++] = Math.random() * 1e7 | 0; + + // Browsers supporting crypto.getRandomValues. + } else if (crypto.getRandomValues) { + d = crypto.getRandomValues(new Uint32Array(k)); + + for (; i < k;) { + n = d[i]; + + // 0 <= n < 4294967296 + // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865). + if (n >= 4.29e9) { + d[i] = crypto.getRandomValues(new Uint32Array(1))[0]; + } else { + + // 0 <= n <= 4289999999 + // 0 <= (n % 1e7) <= 9999999 + rd[i++] = n % 1e7; + } + } + + // Node.js supporting crypto.randomBytes. + } else if (crypto.randomBytes) { + + // buffer + d = crypto.randomBytes(k *= 4); + + for (; i < k;) { + + // 0 <= n < 2147483648 + n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24); + + // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286). + if (n >= 2.14e9) { + crypto.randomBytes(4).copy(d, i); + } else { + + // 0 <= n <= 2139999999 + // 0 <= (n % 1e7) <= 9999999 + rd.push(n % 1e7); + i += 4; + } + } + + i = k / 4; + } else { + throw Error(cryptoUnavailable); + } + + k = rd[--i]; + sd %= LOG_BASE; + + // Convert trailing digits to zeros according to sd. + if (k && sd) { + n = mathpow(10, LOG_BASE - sd); + rd[i] = (k / n | 0) * n; + } + + // Remove trailing words which are zero. + for (; rd[i] === 0; i--) rd.pop(); + + // Zero? + if (i < 0) { + e = 0; + rd = [0]; + } else { + e = -1; + + // Remove leading words which are zero and adjust exponent accordingly. + for (; rd[0] === 0; e -= LOG_BASE) rd.shift(); + + // Count the digits of the first word of rd to determine leading zeros. + for (k = 1, n = rd[0]; n >= 10; n /= 10) k++; + + // Adjust the exponent for leading zeros of the first word of rd. + if (k < LOG_BASE) e -= LOG_BASE - k; + } + + r.e = e; + r.d = rd; + + return r; + } + + + /* + * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`. + * + * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL). + * + * x {number|string|Decimal} + * + */ + function round(x) { + return finalise(x = new this(x), x.e + 1, this.rounding); + } + + + /* + * Return + * 1 if x > 0, + * -1 if x < 0, + * 0 if x is 0, + * -0 if x is -0, + * NaN otherwise + * + * x {number|string|Decimal} + * + */ + function sign(x) { + x = new this(x); + return x.d ? (x.d[0] ? x.s : 0 * x.s) : x.s || NaN; + } + + + /* + * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits + * using rounding mode `rounding`. + * + * x {number|string|Decimal} A value in radians. + * + */ + function sin(x) { + return new this(x).sin(); + } + + + /* + * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + * x {number|string|Decimal} A value in radians. + * + */ + function sinh(x) { + return new this(x).sinh(); + } + + + /* + * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant + * digits using rounding mode `rounding`. + * + * x {number|string|Decimal} + * + */ + function sqrt(x) { + return new this(x).sqrt(); + } + + + /* + * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits + * using rounding mode `rounding`. + * + * x {number|string|Decimal} + * y {number|string|Decimal} + * + */ + function sub(x, y) { + return new this(x).sub(y); + } + + + /* + * Return a new Decimal whose value is the sum of the arguments, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + * Only the result is rounded, not the intermediate calculations. + * + * arguments {number|string|Decimal} + * + */ + function sum() { + var i = 0, + args = arguments, + x = new this(args[i]); + + external = false; + for (; x.s && ++i < args.length;) x = x.plus(args[i]); + external = true; + + return finalise(x, this.precision, this.rounding); + } + + + /* + * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant + * digits using rounding mode `rounding`. + * + * x {number|string|Decimal} A value in radians. + * + */ + function tan(x) { + return new this(x).tan(); + } + + + /* + * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision` + * significant digits using rounding mode `rounding`. + * + * x {number|string|Decimal} A value in radians. + * + */ + function tanh(x) { + return new this(x).tanh(); + } + + + /* + * Return a new Decimal whose value is `x` truncated to an integer. + * + * x {number|string|Decimal} + * + */ + function trunc(x) { + return finalise(x = new this(x), x.e + 1, 1); + } + + + // Create and configure initial Decimal constructor. + Decimal = clone(DEFAULTS); + Decimal.prototype.constructor = Decimal; + Decimal['default'] = Decimal.Decimal = Decimal; + + // Create the internal constants from their string values. + LN10 = new Decimal(LN10); + PI = new Decimal(PI); + + + // Export. + + + // AMD. + if ( module.exports) { + if (typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol') { + P[Symbol['for']('nodejs.util.inspect.custom')] = P.toString; + P[Symbol.toStringTag] = 'Decimal'; + } + + module.exports = Decimal; + + // Browser. + } else { + if (!globalScope) { + globalScope = typeof self != 'undefined' && self && self.self == self ? self : window; + } + + noConflict = globalScope.Decimal; + Decimal.noConflict = function () { + globalScope.Decimal = noConflict; + return Decimal; + }; + + globalScope.Decimal = Decimal; + } +})(commonjsGlobal); +}); + var lodash = createCommonjsModule(function (module, exports) { (function() { @@ -17732,9 +22660,26 @@ var lodash = createCommonjsModule(function (module, exports) { }); var results = createCommonjsModule(function (module, exports) { +var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); -exports.Value = exports.Arity = void 0; +exports.Value = exports.Arity = exports.FloatOrMilliseconds = void 0; +const decimal_js_1 = __importDefault(decimal); +const datetimeRe = new RegExp('[1-9][0-9]{3}-[01][0-9]-[0-3][0-9][T ][0-2][0-9]:[0-5][0-9]'); +const FloatOrMilliseconds = (value) => { + const v = value.trim(); + if (v === '') { + return new decimal_js_1.default(0); + } + if (datetimeRe.test(v)) { + return new decimal_js_1.default(new Date(v).valueOf()); + } + const decimalValue = new decimal_js_1.default(v); + return decimalValue.isNaN() ? new decimal_js_1.default(0) : decimalValue; +}; +exports.FloatOrMilliseconds = FloatOrMilliseconds; class Arity { constructor(rows, columns) { this.isRow = () => this.rows > 1 && this.cols === 1; @@ -17748,13 +22693,9 @@ exports.Arity = Arity; class Value { constructor(val) { this.get = (row, column) => this.val[row][column]; - this.getAsFloat = (row, column) => { - const parsed = parseFloat(this.get(row, column)); - return isNaN(parsed) ? 0 : parsed; - }; - this.getAsInt = (row, column) => { - const parsed = parseInt(this.get(row, column)); - return isNaN(parsed) ? 0 : parsed; + this.getAsNumber = (row, column) => { + const value = this.get(row, column); + return exports.FloatOrMilliseconds(value); }; /** * getArity returns the dimensions of the contained value, in rows and columns @@ -17826,30 +22767,24 @@ class AlgebraicOperation { return neverthrow.err(Error(`Right operand in algebraic "${name}" must be a single cell.`)); } if (rightArity.isCell()) { - const rightCellValue = rightValue.value.getAsFloat(0, 0); + const rightCellValue = rightValue.value.getAsNumber(0, 0); const result = lodash.map(leftValue.value.val, (currentRow) => lodash.map(currentRow, (currentCell) => { - let leftCellValue = parseFloat(currentCell); - if (isNaN(leftCellValue)) { - leftCellValue = 0; - } + const leftCellValue = results.FloatOrMilliseconds(currentCell); return fn(leftCellValue, rightCellValue).toString(); })); return neverthrow.ok(new results.Value(result)); } - const leftCellValue = leftValue.value.getAsFloat(0, 0); + const leftCellValue = leftValue.value.getAsNumber(0, 0); const result = lodash.map(rightValue.value.val, (currentRow) => lodash.map(currentRow, (currentCell) => { - let rightCellValue = parseFloat(currentCell); - if (isNaN(leftCellValue)) { - rightCellValue = 0; - } + const rightCellValue = results.FloatOrMilliseconds(currentCell); return fn(leftCellValue, rightCellValue).toString(); })); return neverthrow.ok(new results.Value(result)); }; - this.add = (table, cell) => this.withCellAndRange(table, cell, 'add', true, (left, right) => left + right); - this.subtract = (table, cell) => this.withCellAndRange(table, cell, 'subtract', true, (left, right) => left - right); - this.multiply = (table, cell) => this.withCellAndRange(table, cell, 'multiply', true, (left, right) => left * right); - this.divide = (table, cell) => this.withCellAndRange(table, cell, 'divide', false, (left, right) => left / right); + this.add = (table, cell) => this.withCellAndRange(table, cell, 'add', true, (left, right) => left.plus(right)); + this.subtract = (table, cell) => this.withCellAndRange(table, cell, 'subtract', true, (left, right) => left.minus(right)); + this.multiply = (table, cell) => this.withCellAndRange(table, cell, 'multiply', true, (left, right) => left.times(right)); + this.divide = (table, cell) => this.withCellAndRange(table, cell, 'divide', false, (left, right) => left.dividedBy(right)); const typeErr = ast_utils.checkType(ast, 'algebraic_operation'); if (typeErr) { throw typeErr; @@ -17928,21 +22863,21 @@ class Predicate { if (!rightArity.isCell()) { return neverthrow.err(Error('Can only use comparison operator on a single cell. Right side is not a cell.')); } - const leftVal = leftData.value.getAsFloat(0, 0); - const rightVal = rightData.value.getAsFloat(0, 0); + const leftVal = leftData.value.getAsNumber(0, 0); + const rightVal = rightData.value.getAsNumber(0, 0); switch (this.operator) { case '>': - return neverthrow.ok(leftVal > rightVal); + return neverthrow.ok(leftVal.greaterThan(rightVal)); case '>=': - return neverthrow.ok(leftVal >= rightVal); + return neverthrow.ok(leftVal.greaterThanOrEqualTo(rightVal)); case '<': - return neverthrow.ok(leftVal < rightVal); + return neverthrow.ok(leftVal.lessThan(rightVal)); case '<=': - return neverthrow.ok(leftVal <= rightVal); + return neverthrow.ok(leftVal.lessThanOrEqualTo(rightVal)); case '==': - return neverthrow.ok(leftVal === rightVal); + return neverthrow.ok(leftVal.equals(rightVal)); case '!=': - return neverthrow.ok(leftVal !== rightVal); + return neverthrow.ok(!leftVal.equals(rightVal)); default: return neverthrow.err(Error('Invalid conditional operator: ' + this.operator)); } @@ -18562,11 +23497,19 @@ exports.DefaultFormatter = DefaultFormatter; class DisplayDirective { constructor(ast) { this.format = (num) => { - if (typeof num === 'string') { - const parsedNum = parseFloat(num); - return parsedNum.toFixed(this.decimalLength); + const parsed = typeof num === 'string' ? parseFloat(num) : num; + if (this.displayAsDatetime) { + // Seriously, there's no date formatting functionality in Javascript? + const date = new Date(parsed); + const pad = (v) => `0${v}`.slice(-2); + const y = date.getFullYear(); + const mo = pad(date.getMonth() + 1); + const d = pad(date.getDate()); + const h = pad(date.getHours()); + const min = pad(date.getMinutes()); + return `${y}-${mo}-${d} ${h}:${min}`; } - return num.toFixed(this.decimalLength); + return parsed.toFixed(this.decimalLength); }; let typeError = ast_utils.checkType(ast, 'display_directive'); if (typeError) { @@ -18586,10 +23529,15 @@ class DisplayDirective { throw lengthError; } const formattingDirective = displayDirectiveOption.children[0]; - typeError = ast_utils.checkType(formattingDirective, 'formatting_directive'); + typeError = ast_utils.checkType(formattingDirective, 'formatting_directive', 'datetime_directive'); if (typeError) { throw typeError; } + this.displayAsDatetime = formattingDirective.type === 'datetime_directive'; + if (this.displayAsDatetime) { + this.decimalLength = -1; + return; + } lengthError = ast_utils.checkChildLength(formattingDirective, 1); if (lengthError) { throw lengthError; @@ -18606,12 +23554,16 @@ exports.DisplayDirective = DisplayDirective; }); var single_param_function = createCommonjsModule(function (module, exports) { +var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.SingleParamFunctionCall = void 0; +const decimal_js_1 = __importDefault(decimal); class SingleParamFunctionCall { constructor(ast, table) { this.getValue = (table, cell) => this.param.getValue(table, cell).andThen((sourceData) => @@ -18650,12 +23602,9 @@ exports.SingleParamFunctionCall = SingleParamFunctionCall; */ const sum = (value) => { const total = value.val.reduce((runningTotal, currentRow) => currentRow.reduce((rowTotal, currentCell) => { - let currentCellValue = parseFloat(currentCell); - if (isNaN(currentCellValue)) { - currentCellValue = 0; - } - return rowTotal + currentCellValue; - }, runningTotal), 0); + const currentCellValue = results.FloatOrMilliseconds(currentCell); + return currentCellValue.add(rowTotal); + }, runningTotal), new decimal_js_1.default(0)); return new results.Value([[total.toString()]]); }; /** @@ -20211,8 +25160,9 @@ algebraic_operation ::= "(" source " "? algebraic_operator " "? source ")" algebraic_operator ::= "+" | "-" | "*" | "/" display_directive ::= ";" display_directive_option -display_directive_option ::= formatting_directive +display_directive_option ::= formatting_directive | datetime_directive formatting_directive ::= "%." int "f" +datetime_directive ::= "dt" float ::= "-"? int "." int real ::= "-"? int @@ -20333,7 +25283,8 @@ const parseFormula = (line, table) => { try { do { formulas.push(new Formula(unparsedFormulas[0], table)); - if (unparsedFormulas.length > 1 && unparsedFormulas[1].type === 'formula_list') { + if (unparsedFormulas.length > 1 && + unparsedFormulas[1].type === 'formula_list') { unparsedFormulas = unparsedFormulas[1].children; } else { @@ -24035,4 +28986,4 @@ var buyMeACoffee = "\n\n\n\n\n\n\n\n"; module.exports = TableEditorPlugin; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9pY29ucy50cyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL3BvaW50LmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvcmFuZ2UuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9mb2N1cy5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL2FsaWdubWVudC5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL3RhYmxlLWNlbGwuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi90YWJsZS1yb3cuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9uZXZlcnRocm93L25ldmVydGhyb3cuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9jYWxjL2FzdF91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gvbG9kYXNoLmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvY2FsYy9yZXN1bHRzLmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvY2FsYy9hbGdlYnJhaWNfb3BlcmF0aW9uLmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvY2FsYy9jb25kaXRpb25hbF9mdW5jdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL2NhbGMvY29uc3RhbnQuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9jYWxjL2NvbHVtbi5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL2NhbGMvcm93LmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvY2FsYy9yZWZlcmVuY2UuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9jYWxjL3JhbmdlLmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvY2FsYy9kZXN0aW5hdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL2NhbGMvZGlzcGxheV9kaXJlY3RpdmUuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9jYWxjL3NpbmdsZV9wYXJhbV9mdW5jdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9lYm5mL2Rpc3QvVG9rZW5FcnJvci5qcyIsIm5vZGVfbW9kdWxlcy9lYm5mL2Rpc3QvUGFyc2VyLmpzIiwibm9kZV9tb2R1bGVzL2VibmYvZGlzdC9TZW1hbnRpY0hlbHBlcnMuanMiLCJub2RlX21vZHVsZXMvZWJuZi9kaXN0L0dyYW1tYXJzL0JORi5qcyIsIm5vZGVfbW9kdWxlcy9lYm5mL2Rpc3QvR3JhbW1hcnMvVzNDRUJORi5qcyIsIm5vZGVfbW9kdWxlcy9lYm5mL2Rpc3QvR3JhbW1hcnMvQ3VzdG9tLmpzIiwibm9kZV9tb2R1bGVzL2VibmYvZGlzdC9HcmFtbWFycy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9lYm5mL2Rpc3QvaW5kZXguanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9jYWxjL2NhbGMuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi90YWJsZS5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL3BhcnNlci5qcyIsIm5vZGVfbW9kdWxlcy9tZWF3L2xpYi9pbmRleC5tanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9mb3JtYXR0ZXIuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9lZGl0LXNjcmlwdC5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL3RleHQtZWRpdG9yLmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvb3B0aW9ucy5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL3RhYmxlLWVkaXRvci5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL2luZGV4LmpzIiwic3JjL3NldHRpbmdzLnRzIiwic3JjL29ic2lkaWFuLXRleHQtZWRpdG9yLnRzIiwic3JjL3RhYmxlLWVkaXRvci50cyIsInNyYy90YWJsZS1jb250cm9scy12aWV3LnRzIiwic3JjL21haW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UgKi9cclxuXHJcbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xyXG4gICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcclxuICAgIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxyXG4gICAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxyXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcclxuICAgIHJldHVybiByO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xyXG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xyXG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgcHJpdmF0ZU1hcCkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwcml2YXRlTWFwLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBwcml2YXRlTWFwLCB2YWx1ZSkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIHNldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHByaXZhdGVNYXAuc2V0KHJlY2VpdmVyLCB2YWx1ZSk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbn1cclxuIiwiaW1wb3J0IHsgYWRkSWNvbiB9IGZyb20gJ29ic2lkaWFuJztcblxuZXhwb3J0IGNvbnN0IGljb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBzcHJlYWRzaGVldDogYFxuPHN2ZyB2ZXJzaW9uPVwiMS4xXCIgdmlld0JveD1cIjAgMCA0ODIuODEgNDgyLjgxXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIm00NTcuNTggMjUuNDY0LTQzMi44MyAwLjQyMTUxYy0xMy42NTggMC4wMTMzMTQtMjQuNzU4IDExLjExNS0yNC43NTcgMjQuNzU3bDAuMDMxMDI0IDM0Ny40NWM3LjQ4MzNlLTQgOC4zODA4IDQuMjExIDE1Ljc3MiAxMC42MDggMjAuMjU5IDMuNDUzMyAyLjQ0OTkgNS4wNzE2IDMuMjkwMSA4Ljg3OSAzLjkwMjIgMS43MDMzIDAuMzczMzMgMy40NTYxIDAuNTk0NzEgNS4yNjkyIDAuNTkyOTRsNDMyLjg0LTAuNDIxNTFjMS44MDktMWUtMyAzLjU2MTgtMC4yMTgyMyA1LjI1NjgtMC41OTI5NGgxLjIxNzR2LTAuMzcxOTZjMTAuNTA1LTIuODcyNyAxOC4yNzktMTIuMzk3IDE4LjI3OC0yMy43ODhsLTAuMDMxLTM0Ny40M2MxZS0zIC0xMy42NDktMTEuMTA3LTI0Ljc2My0yNC43NjgtMjQuNzYzem0zLjU0NTMgMjQuNzYzdjcxLjM0NGgtMTYzLjMxdi03NC44ODZoMTU5Ljc2YzEuOTY0MSAwLjAwMTQgMy41NDY3IDEuNTkyMiAzLjU0NjcgMy41NDI1em0tMS42NzM3IDM1MC4zN2gtMTYxLjZ2LTY3LjIwN2gxNjMuMzF2NjQuMjY4YzFlLTMgMS4yNTcyLTAuNzA1NDkgMi4zMjEtMS43MDMzIDIuOTM4NnptLTQzOC4yMS0yLjUxNzF2LTY0LjI2OGg3Ni42NDZ2NjcuMjA3aC03NC45NDJjLTAuOTk3ODQtMC42MTc2NS0xLjcwMzMtMS42ODE0LTEuNzAzMy0yLjkzODZ6bTI1NS4yOC0xNTUuMTh2NjkuNjg4aC0xNTcuNDJ2LTY5LjY4OHptMCA5MC45MTN2NjcuMjA3aC0xNTcuNDJ2LTY3LjIwN3ptLTAuMDMxLTIxMS44M2gtMTU3LjQydi03NC44ODZoMTU3LjQyem0wIDIxLjIyNnY3Ny44MjZoLTE1Ny40MnYtNzcuODI2em0tMTc4LjY0IDc3LjgyNmgtNzYuNjQ2di03Ny44MjZoNzYuNjQ2em0wLjAzMTAyIDIxLjg2MnY2OS42ODhoLTc2LjY0NnYtNjkuNjg4em0xOTkuOTUgNjkuMjY4di02OS42OTdoMTYzLjMxdjY5LjY5N3ptLTAuMDMxLTkxLjU1MnYtNzcuODI2aDE2My4zMXY3Ny44MjZ6XCIgc3Ryb2tlLXdpZHRoPVwiMS4zNzI1XCIvPlxuPC9zdmc+YCxcbiAgYWxpZ25MZWZ0OiBgXG48c3ZnIGNsYXNzPVwid2lkZ2V0LWljb25cIiBlbmFibGUtYmFja2dyb3VuZD1cIm5ldyAwIDAgNTEyIDUxMlwiIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxnIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA1MTIgMClcIj5cbiAgICA8cGF0aCBkPVwibTUwMS4zMyAxNzAuNjdoLTMyMGMtNS44OTYgMC0xMC42NjcgNC43NzEtMTAuNjY3IDEwLjY2N3YyMS4zMzNjMCA1Ljg5NiA0Ljc3MSAxMC42NjcgMTAuNjY3IDEwLjY2N2gzMjBjNS44OTYgMCAxMC42NjctNC43NzEgMTAuNjY3LTEwLjY2N3YtMjEuMzMzYzAtNS44OTYtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42Njd6XCIvPlxuICAgIDxwYXRoIGQ9XCJtNTAxLjMzIDI5OC42N2gtNDkwLjY3Yy01Ljg5NiAwLTEwLjY2NyA0Ljc3MS0xMC42NjcgMTAuNjY2djIxLjMzM2MwIDUuODk2IDQuNzcxIDEwLjY2NyAxMC42NjcgMTAuNjY3aDQ5MC42N2M1Ljg5NiAwIDEwLjY2Ny00Ljc3MSAxMC42NjctMTAuNjY3di0yMS4zMzNjLTFlLTMgLTUuODk1LTQuNzcyLTEwLjY2Ni0xMC42NjgtMTAuNjY2elwiLz5cbiAgICA8cGF0aCBkPVwibTUwMS4zMyA0MjYuNjdoLTMyMGMtNS44OTYgMC0xMC42NjcgNC43NzEtMTAuNjY3IDEwLjY2N3YyMS4zMzNjMCA1Ljg5NiA0Ljc3MSAxMC42NjcgMTAuNjY3IDEwLjY2N2gzMjBjNS44OTYgMCAxMC42NjctNC43NzEgMTAuNjY3LTEwLjY2N3YtMjEuMzMzYzAtNS44OTYtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42Njd6XCIvPlxuICAgIDxwYXRoIGQ9XCJtNTAxLjMzIDQyLjY2N2gtNDkwLjY3Yy01Ljg5NiAwLTEwLjY2NyA0Ljc3MS0xMC42NjcgMTAuNjY2djIxLjMzM2MwIDUuODk2IDQuNzcxIDEwLjY2NyAxMC42NjcgMTAuNjY3aDQ5MC42N2M1Ljg5NiAwIDEwLjY2Ny00Ljc3MSAxMC42NjctMTAuNjY3di0yMS4zMzNjLTFlLTMgLTUuODk1LTQuNzcyLTEwLjY2Ni0xMC42NjgtMTAuNjY2elwiLz5cbiAgPC9nPlxuPC9zdmc+YCxcbiAgYWxpZ25DZW50ZXI6IGBcbjxzdmcgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIGVuYWJsZS1iYWNrZ3JvdW5kPVwibmV3IDAgMCA1MTIgNTEyXCIgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPGcgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDUxMiAwKVwiPlxuICAgIDxwYXRoIGQ9XCJtNDE2IDE3MC42N2gtMzIwYy01Ljg5NiAwLTEwLjY2NyA0Ljc3MS0xMC42NjcgMTAuNjY3djIxLjMzM2MwIDUuODk2IDQuNzcxIDEwLjY2NyAxMC42NjcgMTAuNjY3aDMyMGM1Ljg5NiAwIDEwLjY2Ny00Ljc3MSAxMC42NjctMTAuNjY3di0yMS4zMzNjMC01Ljg5Ni00Ljc3MS0xMC42NjctMTAuNjY3LTEwLjY2N3pcIi8+XG4gICAgPHBhdGggZD1cIm01MDEuMzMgMjk4LjY3aC00OTAuNjdjLTUuODk2IDAtMTAuNjY3IDQuNzcxLTEwLjY2NyAxMC42NjZ2MjEuMzMzYzAgNS44OTYgNC43NzEgMTAuNjY3IDEwLjY2NyAxMC42NjdoNDkwLjY3YzUuODk2IDAgMTAuNjY3LTQuNzcxIDEwLjY2Ny0xMC42Njd2LTIxLjMzM2MtMWUtMyAtNS44OTUtNC43NzItMTAuNjY2LTEwLjY2OC0xMC42NjZ6XCIvPlxuICAgIDxwYXRoIGQ9XCJtNDE2IDQyNi42N2gtMzIwYy01Ljg5NiAwLTEwLjY2NyA0Ljc3MS0xMC42NjcgMTAuNjY3djIxLjMzM2MwIDUuODk2IDQuNzcxIDEwLjY2NyAxMC42NjcgMTAuNjY3aDMyMGM1Ljg5NiAwIDEwLjY2Ny00Ljc3MSAxMC42NjctMTAuNjY3di0yMS4zMzNjMC01Ljg5Ni00Ljc3MS0xMC42NjctMTAuNjY3LTEwLjY2N3pcIi8+XG4gICAgPHBhdGggZD1cIm01MDEuMzMgNDIuNjY3aC00OTAuNjdjLTUuODk2IDAtMTAuNjY3IDQuNzcxLTEwLjY2NyAxMC42NjZ2MjEuMzMzYzAgNS44OTYgNC43NzEgMTAuNjY3IDEwLjY2NyAxMC42NjdoNDkwLjY3YzUuODk2IDAgMTAuNjY3LTQuNzcxIDEwLjY2Ny0xMC42Njd2LTIxLjMzM2MtMWUtMyAtNS44OTUtNC43NzItMTAuNjY2LTEwLjY2OC0xMC42NjZ6XCIvPlxuICA8L2c+XG48L3N2Zz5gLFxuICBhbGlnblJpZ2h0OiBgXG48c3ZnIGNsYXNzPVwid2lkZ2V0LWljb25cIiBlbmFibGUtYmFja2dyb3VuZD1cIm5ldyAwIDAgNTEyIDUxMlwiIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxwYXRoIGQ9XCJtNTAxLjMzIDE3MC42N2gtMzIwYy01Ljg5NiAwLTEwLjY2NyA0Ljc3MS0xMC42NjcgMTAuNjY3djIxLjMzM2MwIDUuODk2IDQuNzcxIDEwLjY2NyAxMC42NjcgMTAuNjY3aDMyMGM1Ljg5NiAwIDEwLjY2Ny00Ljc3MSAxMC42NjctMTAuNjY3di0yMS4zMzNjMC01Ljg5Ni00Ljc3MS0xMC42NjctMTAuNjY3LTEwLjY2N3pcIi8+XG4gIDxwYXRoIGQ9XCJtNTAxLjMzIDI5OC42N2gtNDkwLjY3Yy01Ljg5NiAwLTEwLjY2NyA0Ljc3MS0xMC42NjcgMTAuNjY2djIxLjMzM2MwIDUuODk2IDQuNzcxIDEwLjY2NyAxMC42NjcgMTAuNjY3aDQ5MC42N2M1Ljg5NiAwIDEwLjY2Ny00Ljc3MSAxMC42NjctMTAuNjY3di0yMS4zMzNjLTFlLTMgLTUuODk1LTQuNzcyLTEwLjY2Ni0xMC42NjgtMTAuNjY2elwiLz5cbiAgPHBhdGggZD1cIm01MDEuMzMgNDI2LjY3aC0zMjBjLTUuODk2IDAtMTAuNjY3IDQuNzcxLTEwLjY2NyAxMC42Njd2MjEuMzMzYzAgNS44OTYgNC43NzEgMTAuNjY3IDEwLjY2NyAxMC42NjdoMzIwYzUuODk2IDAgMTAuNjY3LTQuNzcxIDEwLjY2Ny0xMC42Njd2LTIxLjMzM2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3elwiLz5cbiAgPHBhdGggZD1cIm01MDEuMzMgNDIuNjY3aC00OTAuNjdjLTUuODk2IDAtMTAuNjY3IDQuNzcxLTEwLjY2NyAxMC42NjZ2MjEuMzMzYzAgNS44OTYgNC43NzEgMTAuNjY3IDEwLjY2NyAxMC42NjdoNDkwLjY3YzUuODk2IDAgMTAuNjY3LTQuNzcxIDEwLjY2Ny0xMC42Njd2LTIxLjMzM2MtMWUtMyAtNS44OTUtNC43NzItMTAuNjY2LTEwLjY2OC0xMC42NjZ6XCIvPlxuPC9zdmc+YCxcbiAgZGVsZXRlQ29sdW1uOiBgXG48c3ZnIGNsYXNzPVwid2lkZ2V0LWljb25cIiBlbmFibGUtYmFja2dyb3VuZD1cIm5ldyAwIDAgMjYgMjZcIiB2ZXJzaW9uPVwiMS4xXCIgdmlld0JveD1cIjAgMCAyNiAyNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPHBhdGggZD1cIm0xMy41OTQgMjAuODV2My4xNWgtMTB2LTIyaDEwdjMuMTVjMC42MzMtMC4zMjMgMS4zMDQtMC41NjUgMi0wLjcyN3YtMy40MjNjMC0wLjU1MS0wLjQ0OC0xLTEtMWgtMTJjLTAuNTUgMC0xIDAuNDQ5LTEgMXYyNGMwIDAuNTUxIDAuNDQ5IDEgMSAxaDEyYzAuNTUyIDAgMS0wLjQ0OSAxLTF2LTMuNDI0Yy0wLjY5Ni0wLjE2MS0xLjM2Ny0wLjQwMy0yLTAuNzI2elwiLz5cbiAgPHBhdGggZD1cIm0xNy41OTQgNi4xODhjLTMuNzYyIDAtNi44MTMgMy4wNTEtNi44MTIgNi44MTMtMWUtMyAzLjc2MSAzLjA1IDYuODEyIDYuODEyIDYuODEyczYuODEzLTMuMDUxIDYuODEzLTYuODEzLTMuMDUyLTYuODEyLTYuODEzLTYuODEyem0zLjYzMiA3LjgwMi03LjI2NyAxZS0zdi0xLjk4Mmg3LjI2OGwtMWUtMyAxLjk4MXpcIi8+XG48L3N2Zz5gLFxuICBkZWxldGVSb3c6IGBcbjxzdmcgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIGVuYWJsZS1iYWNrZ3JvdW5kPVwibmV3IDAgMCAxNS4zODEgMTUuMzgxXCIgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgMTUuMzgxIDE1LjM4MVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPHBhdGggZD1cIk0wLDEuNzMydjcuNzMyaDYuMDUzYzAtMC4wMzUtMC4wMDQtMC4wNy0wLjAwNC0wLjEwNGMwLTAuNDM0LDAuMDYxLTAuODU0LDAuMTY1LTEuMjU1SDEuMzZWMy4wOTIgICAgaDEyLjY2MnYyLjE5MmMwLjU0NiwwLjM5NiwxLjAxLDAuODk3LDEuMzU5LDEuNDc3VjEuNzMySDB6XCIvPlxuICA8cGF0aCBkPVwibTExLjE5NiA1LjI4Yy0yLjMwNyAwLTQuMTgzIDEuODc3LTQuMTgzIDQuMTg0IDAgMi4zMDggMS44NzYgNC4xODUgNC4xODMgNC4xODUgMi4zMDkgMCA0LjE4NS0xLjg3NyA0LjE4NS00LjE4NSAwLTIuMzA3LTEuODc2LTQuMTg0LTQuMTg1LTQuMTg0em0wIDcuMjMzYy0xLjY3OSAwLTMuMDQ3LTEuMzY3LTMuMDQ3LTMuMDQ5IDAtMS42OCAxLjM2OC0zLjA0OSAzLjA0Ny0zLjA0OSAxLjY4NCAwIDMuMDUgMS4zNjkgMy4wNSAzLjA0OSAwIDEuNjgyLTEuMzY2IDMuMDQ5LTMuMDUgMy4wNDl6XCIvPlxuICA8cmVjdCB4PVwiOS4zMTJcIiB5PVwiOC43NTlcIiB3aWR0aD1cIjMuODQ0XCIgaGVpZ2h0PVwiMS4xMDRcIi8+XG48L3N2Zz5gLFxuICBpbnNlcnRDb2x1bW46IGBcbjxzdmcgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiLTIxIDAgNTEyIDUxMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPHBhdGggZD1cIm0yODggMTA2LjY3Yy0zLjkyNTggMC03Ljg1MTYtMS40Mjk3LTEwLjkyMi00LjMxMjVsLTgwLTc0LjY2NGMtNC44MDA4LTQuNDgwNS02LjM3ODktMTEuNDU3LTMuOTY4OC0xNy41NTkgMi40MTAyLTYuMTAxNiA4LjMyMDMtMTAuMTMzIDE0Ljg5MS0xMC4xMzNoMTYwYzYuNTcwMyAwIDEyLjQ4IDQuMDExNyAxNC44OTEgMTAuMTMzIDIuNDEwMiA2LjEyNSAwLjgzMjAzIDEzLjA3OC0zLjk2ODggMTcuNTU5bC04MCA3NC42NjRjLTMuMDcwMyAyLjg4MjgtNi45OTYxIDQuMzEyNS0xMC45MjIgNC4zMTI1em0tMzkuNDAyLTc0LjY2OCAzOS40MDIgMzYuNzc3IDM5LjQwMi0zNi43Nzd6XCIvPlxuICA8cGF0aCBkPVwibTQzMiA1MTJoLTUzLjMzMmMtMjAuNTkgMC0zNy4zMzYtMTYuNzQ2LTM3LjMzNi0zNy4zMzJ2LTMzMC42N2MwLTIwLjU4NiAxNi43NDYtMzcuMzMyIDM3LjMzNi0zNy4zMzJoNTMuMzMyYzIwLjU4NiAwIDM3LjMzMiAxNi43NDYgMzcuMzMyIDM3LjMzMnYzMzAuNjdjMCAyMC41ODYtMTYuNzQ2IDM3LjMzMi0zNy4zMzIgMzcuMzMyem0tNTMuMzMyLTM3My4zM2MtMi45NDUzIDAtNS4zMzU5IDIuMzg2Ny01LjMzNTkgNS4zMzJ2MzMwLjY3YzAgMi45NDE0IDIuMzkwNiA1LjMzMiA1LjMzNTkgNS4zMzJoNTMuMzMyYzIuOTQ1MyAwIDUuMzMyLTIuMzkwNiA1LjMzMi01LjMzMnYtMzMwLjY3YzAtMi45NDUzLTIuMzg2Ny01LjMzMi01LjMzMi01LjMzMnpcIi8+XG4gIDxwYXRoIGQ9XCJtMTk3LjMzIDUxMmgtMTYwYy0yMC41ODYgMC0zNy4zMzItMTYuNzQ2LTM3LjMzMi0zNy4zMzJ2LTMzMC42N2MwLTIwLjU4NiAxNi43NDYtMzcuMzMyIDM3LjMzMi0zNy4zMzJoMTYwYzIwLjU5IDAgMzcuMzM2IDE2Ljc0NiAzNy4zMzYgMzcuMzMydjMzMC42N2MwIDIwLjU4Ni0xNi43NDYgMzcuMzMyLTM3LjMzNiAzNy4zMzJ6bS0xNjAtMzczLjMzYy0yLjk0MTQgMC01LjMzMiAyLjM4NjctNS4zMzIgNS4zMzJ2MzMwLjY3YzAgMi45NDE0IDIuMzkwNiA1LjMzMiA1LjMzMiA1LjMzMmgxNjBjMi45NDUzIDAgNS4zMzU5LTIuMzkwNiA1LjMzNTktNS4zMzJ2LTMzMC42N2MwLTIuOTQ1My0yLjM5MDYtNS4zMzItNS4zMzU5LTUuMzMyelwiLz5cbiAgPHBhdGggZD1cIm00NTMuMzMgMzI1LjMzaC05NmMtOC44MzIgMC0xNi03LjE2OC0xNi0xNnM3LjE2OC0xNiAxNi0xNmg5NmM4LjgzMiAwIDE2IDcuMTY4IDE2IDE2cy03LjE2OCAxNi0xNiAxNnpcIi8+XG4gIDxwYXRoIGQ9XCJtMjE4LjY3IDMyNS4zM2gtMjAyLjY3Yy04LjgzMiAwLTE2LTcuMTY4LTE2LTE2czcuMTY4LTE2IDE2LTE2aDIwMi42N2M4LjgzMiAwIDE2IDcuMTY4IDE2IDE2cy03LjE2OCAxNi0xNiAxNnpcIi8+XG4gIDxwYXRoIGQ9XCJtMTE3LjMzIDUxMmMtOC44MzIgMC0xNi03LjE2OC0xNi0xNnYtMzczLjMzYzAtOC44MzIgNy4xNjgtMTYgMTYtMTZzMTYgNy4xNjggMTYgMTZ2MzczLjMzYzAgOC44MzItNy4xNjggMTYtMTYgMTZ6XCIvPlxuPC9zdmc+YCxcbiAgaW5zZXJ0Um93OiBgXG48c3ZnIGNsYXNzPVwid2lkZ2V0LWljb25cIiB2ZXJzaW9uPVwiMS4xXCIgdmlld0JveD1cIjAgLTIxIDUxMiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxwYXRoIGQ9XCJtMTYgMjc3LjMzYy0xLjk4NDQgMC0zLjk2ODgtMC4zNjMyOC01Ljg2NzItMS4xMDk0LTYuMTIxMS0yLjQxMDItMTAuMTMzLTguMzIwMy0xMC4xMzMtMTQuODkxdi0xNjBjMC02LjU3MDMgNC4wMTE3LTEyLjQ4IDEwLjEzMy0xNC44OTEgNi4xNDQ1LTIuNDEwMiAxMy4wNzgtMC44NTE1NiAxNy41NTkgMy45Njg4bDc0LjY2NCA4MGM1Ljc2MTcgNi4xNDQ1IDUuNzYxNyAxNS42OCAwIDIxLjgyNGwtNzQuNjY0IDgwYy0zLjA5MzggMy4zMjgxLTcuMzM5OCA1LjA5NzctMTEuNjkxIDUuMDk3N3ptMTYtMTM1LjR2NzguODA1bDM2Ljc3Ny0zOS40MDJ6XCIvPlxuICA8cGF0aCBkPVwibTQ3NC42NyAxMjhoLTMzMC42N2MtMjAuNTg2IDAtMzcuMzMyLTE2Ljc0Ni0zNy4zMzItMzcuMzMydi01My4zMzZjMC0yMC41ODYgMTYuNzQ2LTM3LjMzMiAzNy4zMzItMzcuMzMyaDMzMC42N2MyMC41ODYgMCAzNy4zMzIgMTYuNzQ2IDM3LjMzMiAzNy4zMzJ2NTMuMzM2YzAgMjAuNTg2LTE2Ljc0NiAzNy4zMzItMzcuMzMyIDM3LjMzMnptLTMzMC42Ny05NmMtMi45NDUzIDAtNS4zMzIgMi4zOTA2LTUuMzMyIDUuMzMydjUzLjMzNmMwIDIuOTQxNCAyLjM4NjcgNS4zMzIgNS4zMzIgNS4zMzJoMzMwLjY3YzIuOTQxNCAwIDUuMzMyLTIuMzkwNiA1LjMzMi01LjMzMnYtNTMuMzM2YzAtMi45NDE0LTIuMzkwNi01LjMzMi01LjMzMi01LjMzMnpcIi8+XG4gIDxwYXRoIGQ9XCJtNDc0LjY3IDQ2OS4zM2gtMzMwLjY3Yy0yMC41ODYgMC0zNy4zMzItMTYuNzQ2LTM3LjMzMi0zNy4zMzJ2LTE2MGMwLTIwLjU4NiAxNi43NDYtMzcuMzMyIDM3LjMzMi0zNy4zMzJoMzMwLjY3YzIwLjU4NiAwIDM3LjMzMiAxNi43NDYgMzcuMzMyIDM3LjMzMnYxNjBjMCAyMC41ODYtMTYuNzQ2IDM3LjMzMi0zNy4zMzIgMzcuMzMyem0tMzMwLjY3LTIwMi42NmMtMi45NDUzIDAtNS4zMzIgMi4zODY3LTUuMzMyIDUuMzMydjE2MGMwIDIuOTQ1MyAyLjM4NjcgNS4zMzIgNS4zMzIgNS4zMzJoMzMwLjY3YzIuOTQxNCAwIDUuMzMyLTIuMzg2NyA1LjMzMi01LjMzMnYtMTYwYzAtMi45NDUzLTIuMzkwNi01LjMzMi01LjMzMi01LjMzMnpcIi8+XG4gIDxwYXRoIGQ9XCJtMzA5LjMzIDEyOGMtOC44MzIgMC0xNi03LjE2OC0xNi0xNnYtOTZjMC04LjgzMiA3LjE2OC0xNiAxNi0xNnMxNiA3LjE2OCAxNiAxNnY5NmMwIDguODMyLTcuMTY4IDE2LTE2IDE2elwiLz5cbiAgPHBhdGggZD1cIm0zMDkuMzMgNDY5LjMzYy04LjgzMiAwLTE2LTcuMTY4LTE2LTE2di0yMDIuNjZjMC04LjgzMiA3LjE2OC0xNiAxNi0xNnMxNiA3LjE2OCAxNiAxNnYyMDIuNjZjMCA4LjgzMi03LjE2OCAxNi0xNiAxNnpcIi8+XG4gIDxwYXRoIGQ9XCJtNDk2IDM2OGgtMzczLjMzYy04LjgzMiAwLTE2LTcuMTY4LTE2LTE2czcuMTY4LTE2IDE2LTE2aDM3My4zM2M4LjgzMiAwIDE2IDcuMTY4IDE2IDE2cy03LjE2OCAxNi0xNiAxNnpcIi8+XG48L3N2Zz5gLFxuICBtb3ZlQ29sdW1uTGVmdDogYFxuPHN2ZyBjbGFzcz1cIndpZGdldC1pY29uXCIgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgNTEyLjAyIDUxMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPHBhdGggZD1cIm0zNTcuMzUgNTEyLjAxaDk2YzMyLjM2MyAwIDU4LjY2OC0yNi4zMDUgNTguNjY4LTU4LjY2OHYtMzk0LjY2YzAtMzIuMzYzLTI2LjMwNS01OC42NjgtNTguNjY4LTU4LjY2OGgtOTZjLTMyLjM2MyAwLTU4LjY2NCAyNi4zMDUtNTguNjY0IDU4LjY2OHYzOTQuNjZjMCAzMi4zNjMgMjYuMzAxIDU4LjY2OCA1OC42NjQgNTguNjY4em05Ni00ODBjMTQuNjk5IDAgMjYuNjY4IDExLjk2OSAyNi42NjggMjYuNjY4djM5NC42NmMwIDE0LjY5OS0xMS45NjkgMjYuNjY4LTI2LjY2OCAyNi42NjhoLTk2Yy0xNC42OTkgMC0yNi42NjQtMTEuOTY5LTI2LjY2NC0yNi42Njh2LTM5NC42NmMwLTE0LjY5OSAxMS45NjUtMjYuNjY4IDI2LjY2NC0yNi42Njh6XCIvPlxuICA8cGF0aCBkPVwibTE2LjAxNiAyNzIuMDFoMjI0YzguODMyIDAgMTYtNy4xNjggMTYtMTZzLTcuMTY4LTE2LTE2LTE2aC0yMjRjLTguODMyIDAtMTYgNy4xNjgtMTYgMTZzNy4xNjggMTYgMTYgMTZ6XCIvPlxuICA8cGF0aCBkPVwibTEwMS4zNSAzNTcuMzRjNC4wOTc2IDAgOC4xOTE0LTEuNTU0NyAxMS4zMDktNC42OTE0IDYuMjUtNi4yNSA2LjI1LTE2LjM4MyAwLTIyLjYzN2wtNzQuMDI3LTc0LjAyMyA3NC4wMjctNzQuMDI3YzYuMjUtNi4yNSA2LjI1LTE2LjM4NyAwLTIyLjYzN3MtMTYuMzgzLTYuMjUtMjIuNjM3IDBsLTg1LjMzMiA4NS4zMzZjLTYuMjUgNi4yNS02LjI1IDE2LjM4MyAwIDIyLjYzM2w4NS4zMzIgODUuMzMyYzMuMTM2NyAzLjE2MDIgNy4yMzQ0IDQuNzE0OCAxMS4zMjggNC43MTQ4elwiLz5cbjwvc3ZnPmAsXG4gIG1vdmVDb2x1bW5SaWdodDogYFxuPHN2ZyBjbGFzcz1cIndpZGdldC1pY29uXCIgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgNTEyLjAyIDUxMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPHBhdGggZD1cIm0xNTQuNjcgNTEyLjAxaC05NmMtMzIuMzYzIDAtNTguNjY4LTI2LjMwNS01OC42NjgtNTguNjY4di0zOTQuNjZjMC0zMi4zNjMgMjYuMzA1LTU4LjY2OCA1OC42NjgtNTguNjY4aDk2YzMyLjM2MyAwIDU4LjY2NCAyNi4zMDUgNTguNjY0IDU4LjY2OHYzOTQuNjZjMCAzMi4zNjMtMjYuMzAxIDU4LjY2OC01OC42NjQgNTguNjY4em0tOTYtNDgwYy0xNC42OTkgMC0yNi42NjggMTEuOTY5LTI2LjY2OCAyNi42Njh2Mzk0LjY2YzAgMTQuNjk5IDExLjk2OSAyNi42NjggMjYuNjY4IDI2LjY2OGg5NmMxNC42OTkgMCAyNi42NjQtMTEuOTY5IDI2LjY2NC0yNi42Njh2LTM5NC42NmMwLTE0LjY5OS0xMS45NjUtMjYuNjY4LTI2LjY2NC0yNi42Njh6XCIvPlxuICA8cGF0aCBkPVwibTQ5NiAyNzIuMDFoLTIyNGMtOC44MzIgMC0xNi03LjE2OC0xNi0xNiAwLTguODMyIDcuMTY4LTE2IDE2LTE2aDIyNGM4LjgzMiAwIDE2IDcuMTY4IDE2IDE2IDAgOC44MzItNy4xNjggMTYtMTYgMTZ6XCIvPlxuICA8cGF0aCBkPVwibTQxMC42NyAzNTcuMzRjLTQuMDk3NyAwLTguMTkxNC0xLjU1NDctMTEuMzA5LTQuNjkxNC02LjI1LTYuMjUtNi4yNS0xNi4zODMgMC0yMi42MzdsNzQuMDI3LTc0LjAyMy03NC4wMjctNzQuMDI3Yy02LjI1LTYuMjUtNi4yNS0xNi4zODcgMC0yMi42MzdzMTYuMzgzLTYuMjUgMjIuNjM3IDBsODUuMzMyIDg1LjMzNmM2LjI1IDYuMjUgNi4yNSAxNi4zODMgMCAyMi42MzNsLTg1LjMzMiA4NS4zMzJjLTMuMTM2NyAzLjE2MDItNy4yMzQ0IDQuNzE0OC0xMS4zMjggNC43MTQ4elwiLz5cbjwvc3ZnPmAsXG4gIG1vdmVSb3dEb3duOiBgXG48c3ZnIGNsYXNzPVwid2lkZ2V0LWljb25cIiB2ZXJzaW9uPVwiMS4xXCIgdmlld0JveD1cIjAgMCA1MTIgNTEyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8cGF0aCBkPVwibTQ1My4zMyAyMTMuMzNoLTM5NC42NmMtMzIuMzYzIDAtNTguNjY4LTI2LjMwMS01OC42NjgtNTguNjY0di05NmMwLTMyLjM2MyAyNi4zMDUtNTguNjY4IDU4LjY2OC01OC42NjhoMzk0LjY2YzMyLjM2MyAwIDU4LjY2OCAyNi4zMDUgNTguNjY4IDU4LjY2OHY5NmMwIDMyLjM2My0yNi4zMDUgNTguNjY0LTU4LjY2OCA1OC42NjR6bS0zOTQuNjYtMTgxLjMzYy0xNC42OTkgMC0yNi42NjggMTEuOTY5LTI2LjY2OCAyNi42Njh2OTZjMCAxNC42OTkgMTEuOTY5IDI2LjY2NCAyNi42NjggMjYuNjY0aDM5NC42NmMxNC42OTkgMCAyNi42NjgtMTEuOTY1IDI2LjY2OC0yNi42NjR2LTk2YzAtMTQuNjk5LTExLjk2OS0yNi42NjgtMjYuNjY4LTI2LjY2OHpcIi8+XG4gIDxwYXRoIGQ9XCJtMjU2IDUxMmMtOC44MzIgMC0xNi03LjE2OC0xNi0xNnYtMjI0YzAtOC44MzIgNy4xNjgtMTYgMTYtMTZzMTYgNy4xNjggMTYgMTZ2MjI0YzAgOC44MzItNy4xNjggMTYtMTYgMTZ6XCIvPlxuICA8cGF0aCBkPVwibTI1NiA1MTJjLTQuMDk3NyAwLTguMTkxNC0xLjU1ODYtMTEuMzA5LTQuNjkxNGwtODUuMzMyLTg1LjMzNmMtNi4yNS02LjI1LTYuMjUtMTYuMzgzIDAtMjIuNjMzczE2LjM4My02LjI1IDIyLjYzNyAwbDc0LjAyMyA3NC4wMjcgNzQuMDI3LTc0LjAyN2M2LjI1LTYuMjUgMTYuMzg3LTYuMjUgMjIuNjM3IDBzNi4yNSAxNi4zODMgMCAyMi42MzNsLTg1LjMzNiA4NS4zMzZjLTMuMTU2MiAzLjEzMjgtNy4yNSA0LjY5MTQtMTEuMzQ4IDQuNjkxNHpcIi8+XG48L3N2Zz5gLFxuICBtb3ZlUm93VXA6IGBcbjxzdmcgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxwYXRoIGQ9XCJtNDUzLjMzIDI5OC42N2gtMzk0LjY2Yy0zMi4zNjMgMC01OC42NjggMjYuMzAxLTU4LjY2OCA1OC42NjR2OTZjMCAzMi4zNjMgMjYuMzA1IDU4LjY2OCA1OC42NjggNTguNjY4aDM5NC42NmMzMi4zNjMgMCA1OC42NjgtMjYuMzA1IDU4LjY2OC01OC42Njh2LTk2YzAtMzIuMzYzLTI2LjMwNS01OC42NjQtNTguNjY4LTU4LjY2NHptLTM5NC42NiAxODEuMzNjLTE0LjY5OSAwLTI2LjY2OC0xMS45NjktMjYuNjY4LTI2LjY2OHYtOTZjMC0xNC42OTkgMTEuOTY5LTI2LjY2NCAyNi42NjgtMjYuNjY0aDM5NC42NmMxNC42OTkgMCAyNi42NjggMTEuOTY1IDI2LjY2OCAyNi42NjR2OTZjMCAxNC42OTktMTEuOTY5IDI2LjY2OC0yNi42NjggMjYuNjY4elwiLz5cbiAgPHBhdGggZD1cIm0yNTYgMGMtOC44MzIgMC0xNiA3LjE2OC0xNiAxNnYyMjRjMCA4LjgzMiA3LjE2OCAxNiAxNiAxNnMxNi03LjE2OCAxNi0xNnYtMjI0YzAtOC44MzItNy4xNjgtMTYtMTYtMTZ6XCIvPlxuICA8cGF0aCBkPVwibTI1NiAwYy00LjA5NzcgMC04LjE5MTQgMS41NTg2LTExLjMwOSA0LjY5MTRsLTg1LjMzMiA4NS4zMzZjLTYuMjUgNi4yNS02LjI1IDE2LjM4MyAwIDIyLjYzM3MxNi4zODMgNi4yNSAyMi42MzcgMGw3NC4wMjMtNzQuMDI3IDc0LjAyNyA3NC4wMjdjNi4yNSA2LjI1IDE2LjM4NyA2LjI1IDIyLjYzNyAwczYuMjUtMTYuMzgzIDAtMjIuNjMzbC04NS4zMzYtODUuMzM2Yy0zLjE1NjItMy4xMzI4LTcuMjUtNC42OTE0LTExLjM0OC00LjY5MTR6XCIvPlxuPC9zdmc+YCxcbiAgc29ydEFzYzogYFxuPHN2ZyBjbGFzcz1cIndpZGdldC1pY29uXCIgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPGcgdHJhbnNmb3JtPVwibWF0cml4KDEgMCAwIC0xIDAgNTAxLjE1KVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzM1wiPlxuICAgIDxwYXRoIGQ9XCJtMzUzLjYgNzQuNDg2Yy0xMS43NzYgMC0yMS4zMzMgOS41NTczLTIxLjMzMyAyMS4zMzN2Mjk4LjY3YzAgMTEuNzc2IDkuNTU3MyAyMS4zMzMgMjEuMzMzIDIxLjMzM3MyMS4zMzMtOS41NTczIDIxLjMzMy0yMS4zMzN2LTI5OC42N2MwLTExLjc3Ni05LjU1NzMtMjEuMzMzLTIxLjMzMy0yMS4zMzN6XCIvPlxuICAgIDxwYXRoIGQ9XCJtMzUzLjYgNzQuNDg2Yy01LjQ2MzYgMC0xMC45MjIgMi4wNzgxLTE1LjA3OSA2LjI1NTJsLTExMy43OCAxMTMuNzhjLTguMzMzMyA4LjMzMzMtOC4zMzMzIDIxLjg0NCAwIDMwLjE3NyA4LjMzMzMgOC4zMzMzIDIxLjg0NCA4LjMzMzMgMzAuMTgzIDBsOTguNjk3LTk4LjcwMyA5OC43MDMgOTguNzAzYzguMzMzMyA4LjMzMzMgMjEuODQ5IDguMzMzMyAzMC4xODMgMCA4LjMzMzMtOC4zMzMzIDguMzMzMy0yMS44NDQgMC0zMC4xNzdsLTExMy43OC0xMTMuNzhjLTQuMjA4My00LjE3NzEtOS42NjY3LTYuMjU1Mi0xNS4xMzEtNi4yNTUyelwiLz5cbiAgPC9nPlxuICA8cGF0aCBkPVwibTE2Ni4wNCAyMTAuMTFxLTUuMDk3MS0xMy40OTItOS41OTQ1LTI2LjM4NS00LjQ5NzQtMTMuMTkyLTkuMjk0Ny0yNi42ODVoLTk0LjE0NmwtMTguODg5IDUzLjA3aC0zMC4yODNxMTEuOTkzLTMyLjk4MSAyMi40ODctNjAuODY1IDEwLjQ5NC0yOC4xODQgMjAuMzg4LTUzLjM2OSAxMC4xOTQtMjUuMTg2IDIwLjA4OS00Ny45NzMgOS44OTQzLTIzLjA4NyAyMC42ODgtNDUuNTc0aDI2LjY4NXExMC43OTQgMjIuNDg3IDIwLjY4OCA0NS41NzQgOS44OTQzIDIyLjc4NyAxOS43ODkgNDcuOTczIDEwLjE5NCAyNS4xODYgMjAuNjg4IDUzLjM2OSAxMC40OTQgMjcuODg0IDIyLjQ4NyA2MC44NjV6bS0yNy4yODQtNzcuMDU2cS05LjU5NDUtMjYuMDg1LTE5LjE4OS01MC4zNzEtOS4yOTQ3LTI0LjU4Ni0xOS40ODktNDcuMDczLTEwLjQ5NCAyMi40ODctMjAuMDg5IDQ3LjA3My05LjI5NDcgMjQuMjg2LTE4LjU4OSA1MC4zNzF6XCIvPlxuICA8cGF0aCBkPVwibTE3My4yNCAzMjUuMjVxLTYuODk2IDcuNzk1NS0xNi4xOTEgMTguODg5LTguOTk0OCAxMC43OTQtMTkuMTg5IDI0LjI4Ni0xMC4xOTQgMTMuMTkyLTIwLjk4OCAyOC4xODQtMTAuNzk0IDE0LjY5Mi0yMS4yODggMjkuOTgzLTEwLjE5NCAxNC45OTEtMTkuNDg5IDI5Ljk4My05LjI5NDcgMTQuOTkxLTE2Ljc5IDI4LjQ4NGgxMTYuOTN2MjQuODg2aC0xNTAuODF2LTE5LjQ4OXE2LjI5NjQtMTEuOTkzIDE0LjY5Mi0yNi4zODUgOC42OTUtMTQuMzkyIDE4LjI5LTI5LjM4MyA5Ljg5NDMtMTQuOTkxIDIwLjM4OC0zMC4yODN0MjAuNjg4LTI5LjM4M3ExMC40OTQtMTQuMDkyIDIwLjA4OC0yNi4zODUgOS44OTQzLTEyLjI5MyAxNy45OS0yMS41ODhoLTEwNi43NHYtMjQuODg2aDE0Mi40MnpcIi8+XG48L3N2Zz5gLFxuICBzb3J0RGVzYzogYFxuPHN2ZyBjbGFzcz1cIndpZGdldC1pY29uXCIgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPGcgdHJhbnNmb3JtPVwibWF0cml4KDEgMCAwIC0xIDAgNTAxLjE1KVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzM1wiPlxuICAgIDxwYXRoIGQ9XCJtMzUzLjYgNzQuNDg2Yy0xMS43NzYgMC0yMS4zMzMgOS41NTczLTIxLjMzMyAyMS4zMzN2Mjk4LjY3YzAgMTEuNzc2IDkuNTU3MyAyMS4zMzMgMjEuMzMzIDIxLjMzM3MyMS4zMzMtOS41NTczIDIxLjMzMy0yMS4zMzN2LTI5OC42N2MwLTExLjc3Ni05LjU1NzMtMjEuMzMzLTIxLjMzMy0yMS4zMzN6XCIvPlxuICAgIDxwYXRoIGQ9XCJtMzUzLjYgNzQuNDg2Yy01LjQ2MzYgMC0xMC45MjIgMi4wNzgxLTE1LjA3OSA2LjI1NTJsLTExMy43OCAxMTMuNzhjLTguMzMzMyA4LjMzMzMtOC4zMzMzIDIxLjg0NCAwIDMwLjE3NyA4LjMzMzMgOC4zMzMzIDIxLjg0NCA4LjMzMzMgMzAuMTgzIDBsOTguNjk3LTk4LjcwMyA5OC43MDMgOTguNzAzYzguMzMzMyA4LjMzMzMgMjEuODQ5IDguMzMzMyAzMC4xODMgMCA4LjMzMzMtOC4zMzMzIDguMzMzMy0yMS44NDQgMC0zMC4xNzdsLTExMy43OC0xMTMuNzhjLTQuMjA4My00LjE3NzEtOS42NjY3LTYuMjU1Mi0xNS4xMzEtNi4yNTUyelwiLz5cbiAgPC9nPlxuICA8cGF0aCBkPVwibTE2OS4xMSA1MDcuNzJxLTUuMDk3MS0xMy40OTItOS41OTQ1LTI2LjM4NS00LjQ5NzQtMTMuMTkyLTkuMjk0Ny0yNi42ODVoLTk0LjE0NmwtMTguODg5IDUzLjA3aC0zMC4yODNxMTEuOTkzLTMyLjk4MSAyMi40ODctNjAuODY1IDEwLjQ5NC0yOC4xODQgMjAuMzg4LTUzLjM2OSAxMC4xOTQtMjUuMTg2IDIwLjA4OC00Ny45NzMgOS44OTQzLTIzLjA4NyAyMC42ODgtNDUuNTc0aDI2LjY4NXExMC43OTQgMjIuNDg3IDIwLjY4OCA0NS41NzQgOS44OTQzIDIyLjc4NyAxOS43ODkgNDcuOTczIDEwLjE5NCAyNS4xODYgMjAuNjg4IDUzLjM2OSAxMC40OTQgMjcuODg0IDIyLjQ4NyA2MC44NjV6bS0yNy4yODQtNzcuMDU2cS05LjU5NDUtMjYuMDg1LTE5LjE4OS01MC4zNzEtOS4yOTQ3LTI0LjU4Ni0xOS40ODktNDcuMDczLTEwLjQ5NCAyMi40ODctMjAuMDg5IDQ3LjA3My05LjI5NDcgMjQuMjg2LTE4LjU4OSA1MC4zNzF6XCIvPlxuICA8cGF0aCBkPVwibTE3Ni4zMSAyNy42MzlxLTYuODk2IDcuNzk1NS0xNi4xOTEgMTguODg5LTguOTk0OCAxMC43OTQtMTkuMTg5IDI0LjI4Ni0xMC4xOTQgMTMuMTkyLTIwLjk4OCAyOC4xODQtMTAuNzk0IDE0LjY5Mi0yMS4yODggMjkuOTgzLTEwLjE5NCAxNC45OTEtMTkuNDg5IDI5Ljk4My05LjI5NDcgMTQuOTkxLTE2Ljc5IDI4LjQ4NGgxMTYuOTN2MjQuODg2aC0xNTAuODF2LTE5LjQ4OXE2LjI5NjQtMTEuOTkzIDE0LjY5Mi0yNi4zODUgOC42OTUtMTQuMzkyIDE4LjI5LTI5LjM4MyA5Ljg5NDMtMTQuOTkxIDIwLjM4OC0zMC4yODMgMTAuNDk0LTE1LjI5MSAyMC42ODgtMjkuMzgzIDEwLjQ5NC0xNC4wOTIgMjAuMDg4LTI2LjM4NSA5Ljg5NDMtMTIuMjkzIDE3Ljk5LTIxLjU4OGgtMTA2Ljc0di0yNC44ODZoMTQyLjQyelwiLz5cbjwvc3ZnPmAsXG4gIGZvcm11bGE6IGBcbjxzdmcgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxwYXRoIGQ9XCJtMjYzLjUxIDYyLjk2N2MxLjY3Mi0xMS4xMzQgOS4zMjYtMjIuOTY3IDIwLjIyMi0yMi45NjcgMTEuMDI4IDAgMjAgOC45NzIgMjAgMjBoNDBjMC0zMy4wODQtMjYuOTE2LTYwLTYwLTYwLTMzLjYyOSAwLTU1LjUyNyAyOC42OTEtNTkuNzg0IDU3LjA3M2wtMTIuODYyIDg2LjkyN2gtNjEuMzU0djQwaDU1LjQzNmwtMzkuMjIgMjY1LjA3LTAuMTE2IDAuOTM3Yy0xLjA2MyAxMC42Mi05LjM5MyAyMS45OS0yMC4xIDIxLjk5LTExLjAyOCAwLTIwLTguOTcyLTIwLTIwaC00MGMwIDMzLjA4NCAyNi45MTYgNjAgNjAgNjAgMzMuNjYxIDAgNTYuNzcxLTI5LjE0MSA1OS44NDgtNTcuNDk2bDQwLjAyMy0yNzAuNWg2MC4xMjl2LTQwaC01NC4yMTFsMTEuOTg5LTgxLjAzM3pcIi8+XG4gIDxwb2x5Z29uIHBvaW50cz1cIjQyNi4yNyAyNDggMzc4LjI0IDI0OCAzNTIuMjUgMjg3LjA4IDMzNC45MiAyNDggMjkxLjE3IDI0OCAzMjYgMzI2LjU3IDI3MC41MiA0MTAgMzE4LjU2IDQxMCAzNDUuMjEgMzY5LjkyIDM2Mi45OCA0MTAgNDA2LjczIDQxMCAzNzEuNDYgMzMwLjQzXCIvPlxuPC9zdmc+YCxcbiAgaGVscDogYFxuPHN2ZyBjbGFzcz1cIndpZGdldC1pY29uXCIgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPHBhdGggZD1cIm0yNDguMTYgMzQzLjIyYy0xNC42MzkgMC0yNi40OTEgMTIuMi0yNi40OTEgMjYuODQgMCAxNC4yOTEgMTEuNTAzIDI2Ljg0IDI2LjQ5MSAyNi44NHMyNi44NC0xMi41NDggMjYuODQtMjYuODRjMC0xNC42NC0xMi4xOTktMjYuODQtMjYuODQtMjYuODR6XCIvPlxuICA8cGF0aCBkPVwibTI1Mi42OSAxNDBjLTQ3LjA1NyAwLTY4LjY2OCAyNy44ODUtNjguNjY4IDQ2LjcwOCAwIDEzLjU5NSAxMS41MDIgMTkuODY5IDIwLjkxNCAxOS44NjkgMTguODIyIDAgMTEuMTU0LTI2Ljg0IDQ2LjcwOC0yNi44NCAxNy40MjkgMCAzMS4zNzIgNy42NjkgMzEuMzcyIDIzLjcwMyAwIDE4LjgyNC0xOS41MiAyOS42MjktMzEuMDIzIDM5LjM4OS0xMC4xMDggOC43MTQtMjMuMzU0IDIzLjAwNi0yMy4zNTQgNTIuOTgzIDAgMTguMTI1IDQuODc5IDIzLjM1NCAxOS4xNzEgMjMuMzU0IDE3LjA4IDAgMjAuNTY1LTcuNjY4IDIwLjU2NS0xNC4yOTEgMC0xOC4xMjYgMC4zNS0yOC41ODMgMTkuNTIxLTQzLjU3MSA5LjQxMS03LjMyIDM5LjA0LTMxLjAyMyAzOS4wNC02My43ODlzLTI5LjYyOS01Ny41MTUtNzQuMjQ2LTU3LjUxNXpcIi8+XG4gIDxwYXRoIGQ9XCJtMjU2IDBjLTE0MS40OCAwLTI1NiAxMTQuNS0yNTYgMjU2djIzNmMwIDExLjA0NiA4Ljk1NCAyMCAyMCAyMGgyMzZjMTQxLjQ4IDAgMjU2LTExNC41IDI1Ni0yNTYgMC0xNDEuNDgtMTE0LjUtMjU2LTI1Ni0yNTZ6bTAgNDcyaC0yMTZ2LTIxNmMwLTExOS4zOCA5Ni42MDctMjE2IDIxNi0yMTYgMTE5LjM4IDAgMjE2IDk2LjYwNyAyMTYgMjE2IDAgMTE5LjM4LTk2LjYwNyAyMTYtMjE2IDIxNnpcIi8+XG48L3N2Zz5gLFxuICBjc3Y6IGBcbjxzdmcgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuIDxwYXRoIGQ9XCJtNC45OTc5IDl2LThoMTQuNTAybDMuNSAzLjUgMmUtNyAxOC41aC0xOW0xNC0yMnY1aDVtLTE2IDdoLTJjLTEgMC0yIDAuNS0yIDEuNXYxLjVzMWUtOCAwLjUgMCAxLjUgMSAxLjUgMiAxLjVoMm02LjI1LTZoLTIuNWMtMS41IDAtMiAwLjUtMiAxLjVzMC41IDEuNSAyIDEuNSAyIDAuNSAyIDEuNS0wLjUgMS41LTIgMS41aC0yLjVtMTIuMjUtN3YwLjVjMCAwLjUtMi41IDYuNS0yLjUgNi41aC0wLjVzLTIuNS02LTIuNS02LjV2LTAuNVwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwidmFyKC0tdGV4dC1tdXRlZClcIiBzdHJva2Utd2lkdGg9XCIxLjVcIi8+XG48L3N2Zz5gLFxuICBhcnJvd2VudGVyOiBgXG48c3ZnIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwibTQuNjQxMTkgMTIuNSAyLjg3MjgzIDIuNzAzOGMuMzAxNjMuMjgzOS4zMTYwMi43NTg2LjAzMjEzIDEuMDYwMi0uMjgzODkuMzAxNy0uNzU4NTQuMzE2LTEuMDYwMTcuMDMyMWwtNC4yNS00Yy0uMTUwNTktLjE0MTctLjIzNTk4LS4zMzkzLS4yMzU5OC0uNTQ2MXMuMDg1MzktLjQwNDQuMjM1OTgtLjU0NjJsNC4yNS0zLjk5OTk1Yy4zMDE2My0uMjgzODkuNzc2MjgtLjI2OTUgMS4wNjAxNy4wMzIxM3MuMjY5NS43NzYyOC0uMDMyMTMgMS4wNjAxN2wtMi44NzI4NCAyLjcwMzg1aDEwLjEwODgyYy45NjY1IDAgMS43NS0uNzgzNSAxLjc1LTEuNzV2LTQuNWMwLS40MTQyMS4zMzU4LS43NS43NS0uNzVzLjc1LjMzNTc5Ljc1Ljc1djQuNWMwIDEuNzk0OS0xLjQ1NTEgMy4yNS0zLjI1IDMuMjV6XCIvPlxuPC9zdmc+YCxcbiAgYXJyb3d0YWI6IGBcbjxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJtMTguMjA3MTA2OCAxMS4yOTI4OTMyLTYuNS02LjQ5OTk5OTk4Yy0uMzkwNTI0My0uMzkwNTI0MjktMS4wMjM2ODkzLS4zOTA1MjQyOS0xLjQxNDIxMzYgMC0uMzYwNDgzOTQuMzYwNDgzOTYtLjM4ODIxMzQ4LjkyNzcxNTAyLS4wODMxODg2IDEuMzIwMDA2MjJsLjA4MzE4ODYuMDk0MjA3MzQgNC43OTMxMDY4IDQuNzkyODkzMjJoLTExLjA4NmMtLjUxMjgzNTg0IDAtLjkzNTUwNzE2LjM4NjA0MDItLjk5MzI3MjI3Ljg4MzM3ODlsLS4wMDY3Mjc3My4xMTY2MjExYzAgLjUxMjgzNTguMzg2MDQwMTkuOTM1NTA3Mi44ODMzNzg4Ny45OTMyNzIzbC4xMTY2MjExMy4wMDY3Mjc3aDExLjA4NmwtNC43OTMxMDY4IDQuNzkyODkzMmMtLjM2MDQ4Mzk0LjM2MDQ4NC0uMzg4MjEzNDguOTI3NzE1LS4wODMxODg2IDEuMzIwMDA2MmwuMDgzMTg4Ni4wOTQyMDc0Yy4zNjA0ODQuMzYwNDgzOS45Mjc3MTUuMzg4MjEzNSAxLjMyMDAwNjIuMDgzMTg4NmwuMDk0MjA3NC0uMDgzMTg4NiA2LjUtNi41Yy4zNjA0ODM5LS4zNjA0ODQuMzg4MjEzNS0uOTI3NzE1LjA4MzE4ODYtMS4zMjAwMDYybC0uMDgzMTg4Ni0uMDk0MjA3NC02LjUtNi40OTk5OTk5OHptMi43OTI4OTMyIDcuMjA3MTA2OHYtMTNjMC0uNTUyMjg0NzUtLjQ0NzcxNTMtMS0xLTFzLTEgLjQ0NzcxNTI1LTEgMXYxM2MwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF6XCIgZmlsbD1cIiMyMTIxMjFcIi8+XG48L3N2Zz5gLFxufTtcblxuZXhwb3J0IGNvbnN0IGFkZEljb25zID0gKCk6IHZvaWQgPT4ge1xuICBPYmplY3Qua2V5cyhpY29ucykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgLy8gRG9uJ3QgYWRkIHRoZSAnaGVscCcgaWNvbiBoZXJlIGFzIGl0IHdpbGwgb3ZlcndyaXRlIHRoZSBuYXRpdmUgb25lLlxuICAgIGlmIChrZXkgIT09ICdoZWxwJykge1xuICAgICAgYWRkSWNvbihrZXksIGljb25zW2tleV0pO1xuICAgIH1cbiAgfSk7XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBvaW50ID0gdm9pZCAwO1xuLyoqXG4gKiBBIGBQb2ludGAgcmVwcmVzZW50cyBhIHBvaW50IGluIHRoZSB0ZXh0IGVkaXRvci5cbiAqL1xuY2xhc3MgUG9pbnQge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgYFBvaW50YCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm93IC0gUm93IG9mIHRoZSBwb2ludCwgc3RhcnRzIGZyb20gMC5cbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gQ29sdW1uIG9mIHRoZSBwb2ludCwgc3RhcnRzIGZyb20gMC5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihyb3csIGNvbHVtbikge1xuICAgICAgICB0aGlzLnJvdyA9IHJvdztcbiAgICAgICAgdGhpcy5jb2x1bW4gPSBjb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgcG9pbnQgaXMgZXF1YWwgdG8gYW5vdGhlciBwb2ludC5cbiAgICAgKi9cbiAgICBlcXVhbHMocG9pbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm93ID09PSBwb2ludC5yb3cgJiYgdGhpcy5jb2x1bW4gPT09IHBvaW50LmNvbHVtbjtcbiAgICB9XG59XG5leHBvcnRzLlBvaW50ID0gUG9pbnQ7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmFuZ2UgPSB2b2lkIDA7XG4vKipcbiAqIEEgYFJhbmdlYCBvYmplY3QgcmVwcmVzZW50cyBhIHJhbmdlIGluIHRoZSB0ZXh0IGVkaXRvci5cbiAqL1xuY2xhc3MgUmFuZ2Uge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgYFJhbmdlYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RhcnQgLSBUaGUgc3RhcnQgcG9pbnQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSBlbmQgLSBUaGUgZW5kIHBvaW50IG9mIHRoZSByYW5nZS5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzdGFydCwgZW5kKSB7XG4gICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDtcbiAgICAgICAgdGhpcy5lbmQgPSBlbmQ7XG4gICAgfVxufVxuZXhwb3J0cy5SYW5nZSA9IFJhbmdlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkZvY3VzID0gdm9pZCAwO1xuLyoqXG4gKiBBIGBGb2N1c2Agb2JqZWN0IHJlcHJlc2VudHMgd2hpY2ggY2VsbCBpcyBmb2N1c2VkIGluIHRoZSB0YWJsZS5cbiAqXG4gKiBOb3RlIHRoYXQgYHJvd2AgYW5kIGBjb2x1bW5gIHByb3BlcnRpZXMgc3BlY2lmaXkgYSBjZWxsJ3MgcG9zaXRpb24gaW4gdGhlXG4gKiB0YWJsZSwgbm90IHRoZSBjdXJzb3IncyBwb3NpdGlvbiBpbiB0aGUgdGV4dCBlZGl0b3IgYXMge0BsaW5rIFBvaW50fSBjbGFzcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBGb2N1cyB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBgRm9jdXNgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb3cgLSBSb3cgb2YgdGhlIGZvY3VzZWQgY2VsbC5cbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gQ29sdW1uIG9mIHRoZSBmb2N1c2VkIGNlbGwuXG4gICAgICogQHBhcmFtIG9mZnNldCAtIFJhdyBvZmZzZXQgaW4gdGhlIGNlbGwuXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iocm93LCBjb2x1bW4sIG9mZnNldCkge1xuICAgICAgICB0aGlzLnJvdyA9IHJvdztcbiAgICAgICAgdGhpcy5jb2x1bW4gPSBjb2x1bW47XG4gICAgICAgIHRoaXMub2Zmc2V0ID0gb2Zmc2V0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdHdvIGZvY3VzZXMgcG9pbnQgdGhlIHNhbWUgY2VsbC5cbiAgICAgKiBPZmZzZXRzIGFyZSBpZ25vcmVkLlxuICAgICAqL1xuICAgIHBvc0VxdWFscyhmb2N1cykge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3cgPT09IGZvY3VzLnJvdyAmJiB0aGlzLmNvbHVtbiA9PT0gZm9jdXMuY29sdW1uO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGUgZm9jdXMgb2JqZWN0IGJ5IHNldHRpbmcgaXRzIHJvdyB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvdyAtIFJvdyBvZiB0aGUgZm9jdXNlZCBjZWxsLlxuICAgICAqIEByZXR1cm5zIEEgbmV3IGZvY3VzIG9iamVjdCB3aXRoIHRoZSBzcGVjaWZpZWQgcm93LlxuICAgICAqL1xuICAgIHNldFJvdyhyb3cpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGb2N1cyhyb3csIHRoaXMuY29sdW1uLCB0aGlzLm9mZnNldCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoZSBmb2N1cyBvYmplY3QgYnkgc2V0dGluZyBpdHMgY29sdW1uIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sdW1uIC0gQ29sdW1uIG9mIHRoZSBmb2N1c2VkIGNlbGwuXG4gICAgICogQHJldHVybnMgQSBuZXcgZm9jdXMgb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCBjb2x1bW4uXG4gICAgICovXG4gICAgc2V0Q29sdW1uKGNvbHVtbikge1xuICAgICAgICByZXR1cm4gbmV3IEZvY3VzKHRoaXMucm93LCBjb2x1bW4sIHRoaXMub2Zmc2V0KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhlIGZvY3VzIG9iamVjdCBieSBzZXR0aW5nIGl0cyBvZmZzZXQgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZmZzZXQgLSBPZmZzZXQgaW4gdGhlIGZvY3VzZWQgY2VsbC5cbiAgICAgKiBAcmV0dXJucyBBIG5ldyBmb2N1cyBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVkIG9mZnNldC5cbiAgICAgKi9cbiAgICBzZXRPZmZzZXQob2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiBuZXcgRm9jdXModGhpcy5yb3csIHRoaXMuY29sdW1uLCBvZmZzZXQpO1xuICAgIH1cbn1cbmV4cG9ydHMuRm9jdXMgPSBGb2N1cztcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5IZWFkZXJBbGlnbm1lbnQgPSBleHBvcnRzLkRlZmF1bHRBbGlnbm1lbnQgPSBleHBvcnRzLkFsaWdubWVudCA9IHZvaWQgMDtcbi8qKlxuICogUmVwcmVzZW50cyBjb2x1bW4gYWxpZ25tZW50LlxuICpcbiAqIC0gYEFsaWdubWVudC5OT05FYCAtIFVzZSBkZWZhdWx0IGFsaWdubWVudC5cbiAqIC0gYEFsaWdubWVudC5MRUZUYCAtIEFsaWduIGxlZnQuXG4gKiAtIGBBbGlnbm1lbnQuUklHSFRgIC0gQWxpZ24gcmlnaHQuXG4gKiAtIGBBbGlnbm1lbnQuQ0VOVEVSYCAtIEFsaWduIGNlbnRlci5cbiAqXG4gKi9cbnZhciBBbGlnbm1lbnQ7XG4oZnVuY3Rpb24gKEFsaWdubWVudCkge1xuICAgIEFsaWdubWVudFtcIk5PTkVcIl0gPSBcIm5vbmVcIjtcbiAgICBBbGlnbm1lbnRbXCJMRUZUXCJdID0gXCJsZWZ0XCI7XG4gICAgQWxpZ25tZW50W1wiUklHSFRcIl0gPSBcInJpZ2h0XCI7XG4gICAgQWxpZ25tZW50W1wiQ0VOVEVSXCJdID0gXCJjZW50ZXJcIjtcbn0pKEFsaWdubWVudCA9IGV4cG9ydHMuQWxpZ25tZW50IHx8IChleHBvcnRzLkFsaWdubWVudCA9IHt9KSk7XG4vKipcbiAqIFJlcHJlc2VudHMgZGVmYXVsdCBjb2x1bW4gYWxpZ25tZW50XG4gKlxuICogLSBgRGVmYXVsdEFsaWdubWVudC5MRUZUYCAtIEFsaWduIGxlZnQuXG4gKiAtIGBEZWZhdWx0QWxpZ25tZW50LlJJR0hUYCAtIEFsaWduIHJpZ2h0LlxuICogLSBgRGVmYXVsdEFsaWdubWVudC5DRU5URVJgIC0gQWxpZ24gY2VudGVyLlxuICpcbiAqL1xudmFyIERlZmF1bHRBbGlnbm1lbnQ7XG4oZnVuY3Rpb24gKERlZmF1bHRBbGlnbm1lbnQpIHtcbiAgICBEZWZhdWx0QWxpZ25tZW50W1wiTEVGVFwiXSA9IFwibGVmdFwiO1xuICAgIERlZmF1bHRBbGlnbm1lbnRbXCJSSUdIVFwiXSA9IFwicmlnaHRcIjtcbiAgICBEZWZhdWx0QWxpZ25tZW50W1wiQ0VOVEVSXCJdID0gXCJjZW50ZXJcIjtcbn0pKERlZmF1bHRBbGlnbm1lbnQgPSBleHBvcnRzLkRlZmF1bHRBbGlnbm1lbnQgfHwgKGV4cG9ydHMuRGVmYXVsdEFsaWdubWVudCA9IHt9KSk7XG4vKipcbiAqIFJlcHJlc2VudHMgYWxpZ25tZW50IG9mIGhlYWRlciBjZWxscy5cbiAqXG4gKiAtIGBIZWFkZXJBbGlnbm1lbnQuRk9MTE9XYCAtIEZvbGxvdyBjb2x1bW4ncyBhbGlnbm1lbnQuXG4gKiAtIGBIZWFkZXJBbGlnbm1lbnQuTEVGVGAgLSBBbGlnbiBsZWZ0LlxuICogLSBgSGVhZGVyQWxpZ25tZW50LlJJR0hUYCAtIEFsaWduIHJpZ2h0LlxuICogLSBgSGVhZGVyQWxpZ25tZW50LkNFTlRFUmAgLSBBbGlnbiBjZW50ZXIuXG4gKlxuICovXG52YXIgSGVhZGVyQWxpZ25tZW50O1xuKGZ1bmN0aW9uIChIZWFkZXJBbGlnbm1lbnQpIHtcbiAgICBIZWFkZXJBbGlnbm1lbnRbXCJGT0xMT1dcIl0gPSBcImZvbGxvd1wiO1xuICAgIEhlYWRlckFsaWdubWVudFtcIkxFRlRcIl0gPSBcImxlZnRcIjtcbiAgICBIZWFkZXJBbGlnbm1lbnRbXCJSSUdIVFwiXSA9IFwicmlnaHRcIjtcbiAgICBIZWFkZXJBbGlnbm1lbnRbXCJDRU5URVJcIl0gPSBcImNlbnRlclwiO1xufSkoSGVhZGVyQWxpZ25tZW50ID0gZXhwb3J0cy5IZWFkZXJBbGlnbm1lbnQgfHwgKGV4cG9ydHMuSGVhZGVyQWxpZ25tZW50ID0ge30pKTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UYWJsZUNlbGwgPSB2b2lkIDA7XG5jb25zdCBhbGlnbm1lbnRfMSA9IHJlcXVpcmUoXCIuL2FsaWdubWVudFwiKTtcbi8qKlxuICogQSBgVGFibGVDZWxsYCBvYmplY3QgcmVwcmVzZW50cyBhIHRhYmxlIGNlbGwuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgVGFibGVDZWxsIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGBUYWJsZUNlbGxgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByYXdDb250ZW50IC0gUmF3IGNvbnRlbnQgb2YgdGhlIGNlbGwuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocmF3Q29udGVudCkge1xuICAgICAgICB0aGlzLnJhd0NvbnRlbnQgPSByYXdDb250ZW50O1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSByYXdDb250ZW50LnRyaW0oKTtcbiAgICAgICAgdGhpcy5wYWRkaW5nTGVmdCA9XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQgPT09ICcnXG4gICAgICAgICAgICAgICAgPyB0aGlzLnJhd0NvbnRlbnQgPT09ICcnXG4gICAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgICA6IDFcbiAgICAgICAgICAgICAgICA6IHRoaXMucmF3Q29udGVudC5sZW5ndGggLSB0aGlzLnJhd0NvbnRlbnQudHJpbUxlZnQoKS5sZW5ndGg7XG4gICAgICAgIHRoaXMucGFkZGluZ1JpZ2h0ID1cbiAgICAgICAgICAgIHRoaXMucmF3Q29udGVudC5sZW5ndGggLSB0aGlzLmNvbnRlbnQubGVuZ3RoIC0gdGhpcy5wYWRkaW5nTGVmdDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVycyB0aGUgY2VsbCB0byBhIHRleHQgcmVwcmVzZW50YXRpb24uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUaGUgcmF3IGNvbnRlbnQgb2YgdGhlIGNlbGwuXG4gICAgICovXG4gICAgdG9UZXh0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yYXdDb250ZW50O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIGNlbGwgaXMgYSBkZWxpbWl0ZXIgaS5lLiBpdCBvbmx5IGNvbnRhaW5zIGh5cGhlbnMgYC1gIHdpdGggb3B0aW9uYWwgb25lXG4gICAgICogbGVhZGluZyBhbmQgdHJhaWxpbmcgY29sb25zIGA6YC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgY2VsbCBpcyBhIGRlbGltaXRlci5cbiAgICAgKi9cbiAgICBpc0RlbGltaXRlcigpIHtcbiAgICAgICAgcmV0dXJuIC9eXFxzKjo/LSs6P1xccyokLy50ZXN0KHRoaXMucmF3Q29udGVudCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGFsaWdubWVudCB0aGUgY2VsbCByZXByZXNlbnRzLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIGFsaWdubWVudCB0aGUgY2VsbCByZXByZXNlbnRzOyBgdW5kZWZpbmVkYCBpZiB0aGUgY2VsbCBpcyBub3QgYSBkZWxpbWl0ZXIuXG4gICAgICovXG4gICAgZ2V0QWxpZ25tZW50KCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNEZWxpbWl0ZXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb250ZW50WzBdID09PSAnOicpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRlbnRbdGhpcy5jb250ZW50Lmxlbmd0aCAtIDFdID09PSAnOicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWxpZ25tZW50XzEuQWxpZ25tZW50LkNFTlRFUjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhbGlnbm1lbnRfMS5BbGlnbm1lbnQuTEVGVDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb250ZW50W3RoaXMuY29udGVudC5sZW5ndGggLSAxXSA9PT0gJzonKSB7XG4gICAgICAgICAgICByZXR1cm4gYWxpZ25tZW50XzEuQWxpZ25tZW50LlJJR0hUO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhbGlnbm1lbnRfMS5BbGlnbm1lbnQuTk9ORTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgYSByZWxhdGl2ZSBwb3NpdGlvbiBpbiB0aGUgdHJpbW1lZCBjb250ZW50IGZyb20gdGhhdCBpbiB0aGUgcmF3IGNvbnRlbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmF3T2Zmc2V0IC0gUmVsYXRpdmUgcG9zaXRpb24gaW4gdGhlIHJhdyBjb250ZW50LlxuICAgICAqIEByZXR1cm5zIC0gUmVsYXRpdmUgcG9zaXRpb24gaW4gdGhlIHRyaW1tZWQgY29udGVudC5cbiAgICAgKi9cbiAgICBjb21wdXRlQ29udGVudE9mZnNldChyYXdPZmZzZXQpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudCA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyYXdPZmZzZXQgPCB0aGlzLnBhZGRpbmdMZWZ0KSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmF3T2Zmc2V0IDwgdGhpcy5wYWRkaW5nTGVmdCArIHRoaXMuY29udGVudC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiByYXdPZmZzZXQgLSB0aGlzLnBhZGRpbmdMZWZ0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RoO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyBhIHJlbGF0aXZlIHBvc2l0aW9uIGluIHRoZSByYXcgY29udGVudCBmcm9tIHRoYXQgaW4gdGhlIHRyaW1tZWQgY29udGVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250ZW50T2Zmc2V0IC0gUmVsYXRpdmUgcG9zaXRpb24gaW4gdGhlIHRyaW1tZWQgY29udGVudC5cbiAgICAgKiBAcmV0dXJucyAtIFJlbGF0aXZlIHBvc2l0aW9uIGluIHRoZSByYXcgY29udGVudC5cbiAgICAgKi9cbiAgICBjb21wdXRlUmF3T2Zmc2V0KGNvbnRlbnRPZmZzZXQpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRlbnRPZmZzZXQgKyB0aGlzLnBhZGRpbmdMZWZ0O1xuICAgIH1cbn1cbmV4cG9ydHMuVGFibGVDZWxsID0gVGFibGVDZWxsO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRhYmxlUm93ID0gdm9pZCAwO1xuY29uc3QgdGFibGVfY2VsbF8xID0gcmVxdWlyZShcIi4vdGFibGUtY2VsbFwiKTtcbi8qKlxuICogQSBgVGFibGVSb3dgIG9iamVjdCByZXByZXNlbnRzIGEgdGFibGUgcm93LlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIFRhYmxlUm93IHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGBUYWJsZVJvd2Agb2JqZWMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2VsbHMgLSBDZWxscyB0aGF0IHRoZSByb3cgY29udGFpbnMuXG4gICAgICogQHBhcmFtIG1hcmdpbkxlZnQgLSBNYXJnaW4gc3RyaW5nIGF0IHRoZSBsZWZ0IG9mIHRoZSByb3cuXG4gICAgICogQHBhcmFtIG1hcmdpblJpZ2h0IC0gTWFyZ2luIHN0cmluZyBhdCB0aGUgcmlnaHQgb2YgdGhlIHJvdy5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihjZWxscywgbWFyZ2luTGVmdCwgbWFyZ2luUmlnaHQpIHtcbiAgICAgICAgdGhpcy5fY2VsbHMgPSBjZWxscy5zbGljZSgpO1xuICAgICAgICB0aGlzLm1hcmdpbkxlZnQgPSBtYXJnaW5MZWZ0O1xuICAgICAgICB0aGlzLm1hcmdpblJpZ2h0ID0gbWFyZ2luUmlnaHQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG51bWJlciBvZiB0aGUgY2VsbHMgaW4gdGhlIHJvdy5cbiAgICAgKi9cbiAgICBnZXRXaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NlbGxzLmxlbmd0aDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY2VsbHMgdGhhdCB0aGUgcm93IGNvbnRhaW5zLlxuICAgICAqL1xuICAgIGdldENlbGxzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2VsbHMuc2xpY2UoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyBhIGNlbGwgYXQgdGhlIHNwZWNpZmllZCBpbmRleC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbmRleCAtIEluZGV4LlxuICAgICAqIEByZXR1cm5zIFRoZSBjZWxsIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggaWYgZXhpc3RzOyBgdW5kZWZpbmVkYCBpZiBubyBjZWxsIGlzIGZvdW5kLlxuICAgICAqL1xuICAgIGdldENlbGxBdChpbmRleCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2VsbHNbaW5kZXhdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgY2VsbCBpbiB0aGUgcm93IHRvIGEgbmV3IHZhbHVlLCByZXR1cm5pbmcgYSBjb3B5IG9mIHRoZSByb3dcbiAgICAgKiB3aXRoIHRoZSBtb2RpZmllZCB2YWx1ZS5cbiAgICAgKlxuICAgICAqIElmIGFuIGludmFsaWQgaW5kZXggaXMgcHJvdmlkZWQsIHRoZSByb3cgd2lsbCBiZSB1bmNoYW5nZWQuXG4gICAgICovXG4gICAgc2V0Q2VsbEF0KGluZGV4LCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBjZWxscyA9IHRoaXMuZ2V0Q2VsbHMoKTsgLy8gYSBjb3B5XG4gICAgICAgIGNlbGxzW2luZGV4XSA9IG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZVJvdyhjZWxscywgdGhpcy5tYXJnaW5MZWZ0LCB0aGlzLm1hcmdpblJpZ2h0KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVycyB0aGUgcm93IHRvIGEgdGV4dCByZXByZXNlbnRhdGlvbi5cbiAgICAgKi9cbiAgICB0b1RleHQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9jZWxscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1hcmdpbkxlZnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2VsbHMgPSB0aGlzLl9jZWxscy5tYXAoKGNlbGwpID0+IGNlbGwudG9UZXh0KCkpLmpvaW4oJ3wnKTtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMubWFyZ2luTGVmdH18JHtjZWxsc318JHt0aGlzLm1hcmdpblJpZ2h0fWA7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgcm93IGlzIGEgZGVsaW1pdGVyIG9yIG5vdC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcm93IGlzIGEgZGVsaW1pdGVyIGkuZS4gYWxsIHRoZSBjZWxscyBjb250YWluZWQgYXJlIGRlbGltaXRlcnMuXG4gICAgICovXG4gICAgaXNEZWxpbWl0ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jZWxscy5ldmVyeSgoY2VsbCkgPT4gY2VsbC5pc0RlbGltaXRlcigpKTtcbiAgICB9XG59XG5leHBvcnRzLlRhYmxlUm93ID0gVGFibGVSb3c7XG4iLCJcInVzZSBzdHJpY3RcIjtcbi8qKlxuICogUmV0cmlldmVkIGZyb21cbiAqICAgaHR0cHM6Ly9naXRodWIuY29tL3N1cGVybWFjcm8vbmV2ZXJ0aHJvd1xuICpcbiAqIE1JVCBMaWNlbnNlXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTkgR2lvcmdpbyBEZWxnYWRvXG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRXJyID0gZXhwb3J0cy5PayA9IGV4cG9ydHMuZXJyID0gZXhwb3J0cy5vayA9IHZvaWQgMDtcbmNvbnN0IG9rID0gKHZhbHVlKSA9PiBuZXcgT2sodmFsdWUpO1xuZXhwb3J0cy5vayA9IG9rO1xuY29uc3QgZXJyID0gKGVycikgPT4gbmV3IEVycihlcnIpO1xuZXhwb3J0cy5lcnIgPSBlcnI7XG5jbGFzcyBPayB7XG4gICAgY29uc3RydWN0b3IodmFsdWUpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm1hdGNoID0gKG9rLCBfZXJyKSA9PiBvayh0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgaXNPaygpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlzRXJyKCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNPaygpO1xuICAgIH1cbiAgICBtYXAoZikge1xuICAgICAgICByZXR1cm4gZXhwb3J0cy5vayhmKHRoaXMudmFsdWUpKTtcbiAgICB9XG4gICAgbWFwRXJyKF9mKSB7XG4gICAgICAgIHJldHVybiBleHBvcnRzLm9rKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICAvLyBhZGQgaW5mbyBvbiBob3cgdGhpcyBpcyByZWFsbHkgdXNlZnVsIGZvciBjb252ZXJ0aW5nIGFcbiAgICAvLyBSZXN1bHQ8UmVzdWx0PFQsIEUyPiwgRTE+XG4gICAgLy8gaW50byBhIFJlc3VsdDxULCBFMj5cbiAgICBhbmRUaGVuKGYpIHtcbiAgICAgICAgcmV0dXJuIGYodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIHVud3JhcE9yKF92KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgIH1cbiAgICBfdW5zYWZlVW53cmFwKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG4gICAgX3Vuc2FmZVVud3JhcEVycigpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYWxsZWQgYF91bnNhZmVVbndyYXBFcnJgIG9uIGFuIE9rJyk7XG4gICAgfVxufVxuZXhwb3J0cy5PayA9IE9rO1xuY2xhc3MgRXJyIHtcbiAgICBjb25zdHJ1Y3RvcihlcnJvcikge1xuICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7XG4gICAgICAgIHRoaXMubWF0Y2ggPSAoX29rLCBlcnIpID0+IGVycih0aGlzLmVycm9yKTtcbiAgICB9XG4gICAgaXNPaygpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpc0VycigpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzT2soKTtcbiAgICB9XG4gICAgbWFwKF9mKSB7XG4gICAgICAgIHJldHVybiBleHBvcnRzLmVycih0aGlzLmVycm9yKTtcbiAgICB9XG4gICAgbWFwRXJyKGYpIHtcbiAgICAgICAgcmV0dXJuIGV4cG9ydHMuZXJyKGYodGhpcy5lcnJvcikpO1xuICAgIH1cbiAgICBhbmRUaGVuKF9mKSB7XG4gICAgICAgIHJldHVybiBleHBvcnRzLmVycih0aGlzLmVycm9yKTtcbiAgICB9XG4gICAgdW53cmFwT3Iodikge1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG4gICAgX3Vuc2FmZVVud3JhcCgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYWxsZWQgYF91bnNhZmVVbndyYXBgIG9uIGFuIEVycicpO1xuICAgIH1cbiAgICBfdW5zYWZlVW53cmFwRXJyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcjtcbiAgICB9XG59XG5leHBvcnRzLkVyciA9IEVycjtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wcmV0dHlQcmludEFTVCA9IGV4cG9ydHMuY2hlY2tDaGlsZExlbmd0aCA9IGV4cG9ydHMuY2hlY2tUeXBlID0gZXhwb3J0cy5lcnJSZWxhdGl2ZVJlZmVyZW5jZUluZGV4ID0gZXhwb3J0cy5lcnJJbmRleDAgPSB2b2lkIDA7XG5leHBvcnRzLmVyckluZGV4MCA9IG5ldyBFcnJvcignSW5kZXggMCB1c2VkIHRvIGNyZWF0ZSBhIHJlZmVyZW5jZScpO1xuZXhwb3J0cy5lcnJSZWxhdGl2ZVJlZmVyZW5jZUluZGV4ID0gbmV3IEVycm9yKCdDYW4gbm90IHVzZSByZWxhdGl2ZSByZWZlcmVuY2Ugd2hlcmUgYWJzb2x1dGUgcmVmZXJlbmNlIGlzIHJlcXVpcmVkJyk7XG5jb25zdCBjaGVja1R5cGUgPSAoYXN0LCAuLi5leHBlY3RlZFR5cGVzKSA9PiB7XG4gICAgaWYgKGV4cGVjdGVkVHlwZXMuaW5kZXhPZihhc3QudHlwZSkgPj0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiBuZXcgRXJyb3IoYEZvcm11bGEgZWxlbWVudCAnJHthc3QudGV4dH0nIGlzIGEgJHthc3QudHlwZX0gYnV0IGV4cGVjdGVkIGAgK1xuICAgICAgICBgb25lIG9mICR7ZXhwZWN0ZWRUeXBlc30gaW4gdGhpcyBwb3NpdGlvbi5gKTtcbn07XG5leHBvcnRzLmNoZWNrVHlwZSA9IGNoZWNrVHlwZTtcbmNvbnN0IGNoZWNrQ2hpbGRMZW5ndGggPSAoYXN0LCBsZW4pID0+IHtcbiAgICBpZiAoYXN0LmNoaWxkcmVuLmxlbmd0aCA9PT0gbGVuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBFcnJvcihgRm9ybXVsYSBlbGVtZW50ICcke2FzdC50ZXh0fScgd2FzIGV4cGVjdGVkIHRvIGhhdmUgJHtsZW59IGAgK1xuICAgICAgICBgZWxlbWVudHMsIGJ1dCBoYWQgJHthc3QuY2hpbGRyZW4ubGVuZ3RofWApO1xufTtcbmV4cG9ydHMuY2hlY2tDaGlsZExlbmd0aCA9IGNoZWNrQ2hpbGRMZW5ndGg7XG5jb25zdCBwcmV0dHlQcmludEFTVCA9ICh0b2tlbiwgbGV2ZWwgPSAwKSA9PiB7XG4gICAgY29uc29sZS5sb2coJyAgJy5yZXBlYXQobGV2ZWwpICtcbiAgICAgICAgYHwtJHt0b2tlbi50eXBlfSR7dG9rZW4uY2hpbGRyZW4ubGVuZ3RoID09PSAwID8gJz0nICsgdG9rZW4udGV4dCA6ICcnfWApO1xuICAgIGlmICh0b2tlbi5jaGlsZHJlbikge1xuICAgICAgICB0b2tlbi5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgICAgICBleHBvcnRzLnByZXR0eVByaW50QVNUKGMsIGxldmVsICsgMSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5leHBvcnRzLnByZXR0eVByaW50QVNUID0gcHJldHR5UHJpbnRBU1Q7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBMb2Rhc2ggPGh0dHBzOi8vbG9kYXNoLmNvbS8+XG4gKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyA8aHR0cHM6Ly9vcGVuanNmLm9yZy8+XG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxuICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzXG4gKi9cbjsoZnVuY3Rpb24oKSB7XG5cbiAgLyoqIFVzZWQgYXMgYSBzYWZlIHJlZmVyZW5jZSBmb3IgYHVuZGVmaW5lZGAgaW4gcHJlLUVTNSBlbnZpcm9ubWVudHMuICovXG4gIHZhciB1bmRlZmluZWQ7XG5cbiAgLyoqIFVzZWQgYXMgdGhlIHNlbWFudGljIHZlcnNpb24gbnVtYmVyLiAqL1xuICB2YXIgVkVSU0lPTiA9ICc0LjE3LjIwJztcblxuICAvKiogVXNlZCBhcyB0aGUgc2l6ZSB0byBlbmFibGUgbGFyZ2UgYXJyYXkgb3B0aW1pemF0aW9ucy4gKi9cbiAgdmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XG5cbiAgLyoqIEVycm9yIG1lc3NhZ2UgY29uc3RhbnRzLiAqL1xuICB2YXIgQ09SRV9FUlJPUl9URVhUID0gJ1Vuc3VwcG9ydGVkIGNvcmUtanMgdXNlLiBUcnkgaHR0cHM6Ly9ucG1zLmlvL3NlYXJjaD9xPXBvbnlmaWxsLicsXG4gICAgICBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbiAgLyoqIFVzZWQgdG8gc3RhbmQtaW4gZm9yIGB1bmRlZmluZWRgIGhhc2ggdmFsdWVzLiAqL1xuICB2YXIgSEFTSF9VTkRFRklORUQgPSAnX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyc7XG5cbiAgLyoqIFVzZWQgYXMgdGhlIG1heGltdW0gbWVtb2l6ZSBjYWNoZSBzaXplLiAqL1xuICB2YXIgTUFYX01FTU9JWkVfU0laRSA9IDUwMDtcblxuICAvKiogVXNlZCBhcyB0aGUgaW50ZXJuYWwgYXJndW1lbnQgcGxhY2Vob2xkZXIuICovXG4gIHZhciBQTEFDRUhPTERFUiA9ICdfX2xvZGFzaF9wbGFjZWhvbGRlcl9fJztcblxuICAvKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciBjbG9uaW5nLiAqL1xuICB2YXIgQ0xPTkVfREVFUF9GTEFHID0gMSxcbiAgICAgIENMT05FX0ZMQVRfRkxBRyA9IDIsXG4gICAgICBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xuXG4gIC8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHZhbHVlIGNvbXBhcmlzb25zLiAqL1xuICB2YXIgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgPSAxLFxuICAgICAgQ09NUEFSRV9VTk9SREVSRURfRkxBRyA9IDI7XG5cbiAgLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgZnVuY3Rpb24gbWV0YWRhdGEuICovXG4gIHZhciBXUkFQX0JJTkRfRkxBRyA9IDEsXG4gICAgICBXUkFQX0JJTkRfS0VZX0ZMQUcgPSAyLFxuICAgICAgV1JBUF9DVVJSWV9CT1VORF9GTEFHID0gNCxcbiAgICAgIFdSQVBfQ1VSUllfRkxBRyA9IDgsXG4gICAgICBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcgPSAxNixcbiAgICAgIFdSQVBfUEFSVElBTF9GTEFHID0gMzIsXG4gICAgICBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRyA9IDY0LFxuICAgICAgV1JBUF9BUllfRkxBRyA9IDEyOCxcbiAgICAgIFdSQVBfUkVBUkdfRkxBRyA9IDI1NixcbiAgICAgIFdSQVBfRkxJUF9GTEFHID0gNTEyO1xuXG4gIC8qKiBVc2VkIGFzIGRlZmF1bHQgb3B0aW9ucyBmb3IgYF8udHJ1bmNhdGVgLiAqL1xuICB2YXIgREVGQVVMVF9UUlVOQ19MRU5HVEggPSAzMCxcbiAgICAgIERFRkFVTFRfVFJVTkNfT01JU1NJT04gPSAnLi4uJztcblxuICAvKiogVXNlZCB0byBkZXRlY3QgaG90IGZ1bmN0aW9ucyBieSBudW1iZXIgb2YgY2FsbHMgd2l0aGluIGEgc3BhbiBvZiBtaWxsaXNlY29uZHMuICovXG4gIHZhciBIT1RfQ09VTlQgPSA4MDAsXG4gICAgICBIT1RfU1BBTiA9IDE2O1xuXG4gIC8qKiBVc2VkIHRvIGluZGljYXRlIHRoZSB0eXBlIG9mIGxhenkgaXRlcmF0ZWVzLiAqL1xuICB2YXIgTEFaWV9GSUxURVJfRkxBRyA9IDEsXG4gICAgICBMQVpZX01BUF9GTEFHID0gMixcbiAgICAgIExBWllfV0hJTEVfRkxBRyA9IDM7XG5cbiAgLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG4gIHZhciBJTkZJTklUWSA9IDEgLyAwLFxuICAgICAgTUFYX1NBRkVfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTEsXG4gICAgICBNQVhfSU5URUdFUiA9IDEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4LFxuICAgICAgTkFOID0gMCAvIDA7XG5cbiAgLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdGhlIG1heGltdW0gbGVuZ3RoIGFuZCBpbmRleCBvZiBhbiBhcnJheS4gKi9cbiAgdmFyIE1BWF9BUlJBWV9MRU5HVEggPSA0Mjk0OTY3Mjk1LFxuICAgICAgTUFYX0FSUkFZX0lOREVYID0gTUFYX0FSUkFZX0xFTkdUSCAtIDEsXG4gICAgICBIQUxGX01BWF9BUlJBWV9MRU5HVEggPSBNQVhfQVJSQVlfTEVOR1RIID4+PiAxO1xuXG4gIC8qKiBVc2VkIHRvIGFzc29jaWF0ZSB3cmFwIG1ldGhvZHMgd2l0aCB0aGVpciBiaXQgZmxhZ3MuICovXG4gIHZhciB3cmFwRmxhZ3MgPSBbXG4gICAgWydhcnknLCBXUkFQX0FSWV9GTEFHXSxcbiAgICBbJ2JpbmQnLCBXUkFQX0JJTkRfRkxBR10sXG4gICAgWydiaW5kS2V5JywgV1JBUF9CSU5EX0tFWV9GTEFHXSxcbiAgICBbJ2N1cnJ5JywgV1JBUF9DVVJSWV9GTEFHXSxcbiAgICBbJ2N1cnJ5UmlnaHQnLCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUddLFxuICAgIFsnZmxpcCcsIFdSQVBfRkxJUF9GTEFHXSxcbiAgICBbJ3BhcnRpYWwnLCBXUkFQX1BBUlRJQUxfRkxBR10sXG4gICAgWydwYXJ0aWFsUmlnaHQnLCBXUkFQX1BBUlRJQUxfUklHSFRfRkxBR10sXG4gICAgWydyZWFyZycsIFdSQVBfUkVBUkdfRkxBR11cbiAgXTtcblxuICAvKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG4gIHZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXScsXG4gICAgICBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XScsXG4gICAgICBhc3luY1RhZyA9ICdbb2JqZWN0IEFzeW5jRnVuY3Rpb25dJyxcbiAgICAgIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgICAgZG9tRXhjVGFnID0gJ1tvYmplY3QgRE9NRXhjZXB0aW9uXScsXG4gICAgICBlcnJvclRhZyA9ICdbb2JqZWN0IEVycm9yXScsXG4gICAgICBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcbiAgICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgICBtYXBUYWcgPSAnW29iamVjdCBNYXBdJyxcbiAgICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgICAgbnVsbFRhZyA9ICdbb2JqZWN0IE51bGxdJyxcbiAgICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgICAgcHJvbWlzZVRhZyA9ICdbb2JqZWN0IFByb21pc2VdJyxcbiAgICAgIHByb3h5VGFnID0gJ1tvYmplY3QgUHJveHldJyxcbiAgICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgICBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJyxcbiAgICAgIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nLFxuICAgICAgdW5kZWZpbmVkVGFnID0gJ1tvYmplY3QgVW5kZWZpbmVkXScsXG4gICAgICB3ZWFrTWFwVGFnID0gJ1tvYmplY3QgV2Vha01hcF0nLFxuICAgICAgd2Vha1NldFRhZyA9ICdbb2JqZWN0IFdlYWtTZXRdJztcblxuICB2YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgICAgZGF0YVZpZXdUYWcgPSAnW29iamVjdCBEYXRhVmlld10nLFxuICAgICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGVtcHR5IHN0cmluZyBsaXRlcmFscyBpbiBjb21waWxlZCB0ZW1wbGF0ZSBzb3VyY2UuICovXG4gIHZhciByZUVtcHR5U3RyaW5nTGVhZGluZyA9IC9cXGJfX3AgXFwrPSAnJzsvZyxcbiAgICAgIHJlRW1wdHlTdHJpbmdNaWRkbGUgPSAvXFxiKF9fcCBcXCs9KSAnJyBcXCsvZyxcbiAgICAgIHJlRW1wdHlTdHJpbmdUcmFpbGluZyA9IC8oX19lXFwoLio/XFwpfFxcYl9fdFxcKSkgXFwrXFxuJyc7L2c7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggSFRNTCBlbnRpdGllcyBhbmQgSFRNTCBjaGFyYWN0ZXJzLiAqL1xuICB2YXIgcmVFc2NhcGVkSHRtbCA9IC8mKD86YW1wfGx0fGd0fHF1b3R8IzM5KTsvZyxcbiAgICAgIHJlVW5lc2NhcGVkSHRtbCA9IC9bJjw+XCInXS9nLFxuICAgICAgcmVIYXNFc2NhcGVkSHRtbCA9IFJlZ0V4cChyZUVzY2FwZWRIdG1sLnNvdXJjZSksXG4gICAgICByZUhhc1VuZXNjYXBlZEh0bWwgPSBSZWdFeHAocmVVbmVzY2FwZWRIdG1sLnNvdXJjZSk7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cbiAgdmFyIHJlRXNjYXBlID0gLzwlLShbXFxzXFxTXSs/KSU+L2csXG4gICAgICByZUV2YWx1YXRlID0gLzwlKFtcXHNcXFNdKz8pJT4vZyxcbiAgICAgIHJlSW50ZXJwb2xhdGUgPSAvPCU9KFtcXHNcXFNdKz8pJT4vZztcblxuICAvKiogVXNlZCB0byBtYXRjaCBwcm9wZXJ0eSBuYW1lcyB3aXRoaW4gcHJvcGVydHkgcGF0aHMuICovXG4gIHZhciByZUlzRGVlcFByb3AgPSAvXFwufFxcWyg/OlteW1xcXV0qfChbXCInXSkoPzooPyFcXDEpW15cXFxcXXxcXFxcLikqP1xcMSlcXF0vLFxuICAgICAgcmVJc1BsYWluUHJvcCA9IC9eXFx3KiQvLFxuICAgICAgcmVQcm9wTmFtZSA9IC9bXi5bXFxdXSt8XFxbKD86KC0/XFxkKyg/OlxcLlxcZCspPyl8KFtcIiddKSgoPzooPyFcXDIpW15cXFxcXXxcXFxcLikqPylcXDIpXFxdfCg/PSg/OlxcLnxcXFtcXF0pKD86XFwufFxcW1xcXXwkKSkvZztcblxuICAvKipcbiAgICogVXNlZCB0byBtYXRjaCBgUmVnRXhwYFxuICAgKiBbc3ludGF4IGNoYXJhY3RlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXBhdHRlcm5zKS5cbiAgICovXG4gIHZhciByZVJlZ0V4cENoYXIgPSAvW1xcXFxeJC4qKz8oKVtcXF17fXxdL2csXG4gICAgICByZUhhc1JlZ0V4cENoYXIgPSBSZWdFeHAocmVSZWdFeHBDaGFyLnNvdXJjZSk7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZS4gKi9cbiAgdmFyIHJlVHJpbSA9IC9eXFxzK3xcXHMrJC9nLFxuICAgICAgcmVUcmltU3RhcnQgPSAvXlxccysvLFxuICAgICAgcmVUcmltRW5kID0gL1xccyskLztcblxuICAvKiogVXNlZCB0byBtYXRjaCB3cmFwIGRldGFpbCBjb21tZW50cy4gKi9cbiAgdmFyIHJlV3JhcENvbW1lbnQgPSAvXFx7KD86XFxuXFwvXFwqIFxcW3dyYXBwZWQgd2l0aCAuK1xcXSBcXCpcXC8pP1xcbj8vLFxuICAgICAgcmVXcmFwRGV0YWlscyA9IC9cXHtcXG5cXC9cXCogXFxbd3JhcHBlZCB3aXRoICguKylcXF0gXFwqLyxcbiAgICAgIHJlU3BsaXREZXRhaWxzID0gLyw/ICYgLztcblxuICAvKiogVXNlZCB0byBtYXRjaCB3b3JkcyBjb21wb3NlZCBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4gKi9cbiAgdmFyIHJlQXNjaWlXb3JkID0gL1teXFx4MDAtXFx4MmZcXHgzYS1cXHg0MFxceDViLVxceDYwXFx4N2ItXFx4N2ZdKy9nO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGJhY2tzbGFzaGVzIGluIHByb3BlcnR5IHBhdGhzLiAqL1xuICB2YXIgcmVFc2NhcGVDaGFyID0gL1xcXFwoXFxcXCk/L2c7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gbWF0Y2hcbiAgICogW0VTIHRlbXBsYXRlIGRlbGltaXRlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRlbXBsYXRlLWxpdGVyYWwtbGV4aWNhbC1jb21wb25lbnRzKS5cbiAgICovXG4gIHZhciByZUVzVGVtcGxhdGUgPSAvXFwkXFx7KFteXFxcXH1dKig/OlxcXFwuW15cXFxcfV0qKSopXFx9L2c7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggYFJlZ0V4cGAgZmxhZ3MgZnJvbSB0aGVpciBjb2VyY2VkIHN0cmluZyB2YWx1ZXMuICovXG4gIHZhciByZUZsYWdzID0gL1xcdyokLztcblxuICAvKiogVXNlZCB0byBkZXRlY3QgYmFkIHNpZ25lZCBoZXhhZGVjaW1hbCBzdHJpbmcgdmFsdWVzLiAqL1xuICB2YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4gIC8qKiBVc2VkIHRvIGRldGVjdCBiaW5hcnkgc3RyaW5nIHZhbHVlcy4gKi9cbiAgdmFyIHJlSXNCaW5hcnkgPSAvXjBiWzAxXSskL2k7XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xuICB2YXIgcmVJc0hvc3RDdG9yID0gL15cXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXF0kLztcblxuICAvKiogVXNlZCB0byBkZXRlY3Qgb2N0YWwgc3RyaW5nIHZhbHVlcy4gKi9cbiAgdmFyIHJlSXNPY3RhbCA9IC9eMG9bMC03XSskL2k7XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xuICB2YXIgcmVJc1VpbnQgPSAvXig/OjB8WzEtOV1cXGQqKSQvO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIExhdGluIFVuaWNvZGUgbGV0dGVycyAoZXhjbHVkaW5nIG1hdGhlbWF0aWNhbCBvcGVyYXRvcnMpLiAqL1xuICB2YXIgcmVMYXRpbiA9IC9bXFx4YzAtXFx4ZDZcXHhkOC1cXHhmNlxceGY4LVxceGZmXFx1MDEwMC1cXHUwMTdmXS9nO1xuXG4gIC8qKiBVc2VkIHRvIGVuc3VyZSBjYXB0dXJpbmcgb3JkZXIgb2YgdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cbiAgdmFyIHJlTm9NYXRjaCA9IC8oJF4pLztcblxuICAvKiogVXNlZCB0byBtYXRjaCB1bmVzY2FwZWQgY2hhcmFjdGVycyBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG4gIHZhciByZVVuZXNjYXBlZFN0cmluZyA9IC9bJ1xcblxcclxcdTIwMjhcXHUyMDI5XFxcXF0vZztcblxuICAvKiogVXNlZCB0byBjb21wb3NlIHVuaWNvZGUgY2hhcmFjdGVyIGNsYXNzZXMuICovXG4gIHZhciByc0FzdHJhbFJhbmdlID0gJ1xcXFx1ZDgwMC1cXFxcdWRmZmYnLFxuICAgICAgcnNDb21ib01hcmtzUmFuZ2UgPSAnXFxcXHUwMzAwLVxcXFx1MDM2ZicsXG4gICAgICByZUNvbWJvSGFsZk1hcmtzUmFuZ2UgPSAnXFxcXHVmZTIwLVxcXFx1ZmUyZicsXG4gICAgICByc0NvbWJvU3ltYm9sc1JhbmdlID0gJ1xcXFx1MjBkMC1cXFxcdTIwZmYnLFxuICAgICAgcnNDb21ib1JhbmdlID0gcnNDb21ib01hcmtzUmFuZ2UgKyByZUNvbWJvSGFsZk1hcmtzUmFuZ2UgKyByc0NvbWJvU3ltYm9sc1JhbmdlLFxuICAgICAgcnNEaW5nYmF0UmFuZ2UgPSAnXFxcXHUyNzAwLVxcXFx1MjdiZicsXG4gICAgICByc0xvd2VyUmFuZ2UgPSAnYS16XFxcXHhkZi1cXFxceGY2XFxcXHhmOC1cXFxceGZmJyxcbiAgICAgIHJzTWF0aE9wUmFuZ2UgPSAnXFxcXHhhY1xcXFx4YjFcXFxceGQ3XFxcXHhmNycsXG4gICAgICByc05vbkNoYXJSYW5nZSA9ICdcXFxceDAwLVxcXFx4MmZcXFxceDNhLVxcXFx4NDBcXFxceDViLVxcXFx4NjBcXFxceDdiLVxcXFx4YmYnLFxuICAgICAgcnNQdW5jdHVhdGlvblJhbmdlID0gJ1xcXFx1MjAwMC1cXFxcdTIwNmYnLFxuICAgICAgcnNTcGFjZVJhbmdlID0gJyBcXFxcdFxcXFx4MGJcXFxcZlxcXFx4YTBcXFxcdWZlZmZcXFxcblxcXFxyXFxcXHUyMDI4XFxcXHUyMDI5XFxcXHUxNjgwXFxcXHUxODBlXFxcXHUyMDAwXFxcXHUyMDAxXFxcXHUyMDAyXFxcXHUyMDAzXFxcXHUyMDA0XFxcXHUyMDA1XFxcXHUyMDA2XFxcXHUyMDA3XFxcXHUyMDA4XFxcXHUyMDA5XFxcXHUyMDBhXFxcXHUyMDJmXFxcXHUyMDVmXFxcXHUzMDAwJyxcbiAgICAgIHJzVXBwZXJSYW5nZSA9ICdBLVpcXFxceGMwLVxcXFx4ZDZcXFxceGQ4LVxcXFx4ZGUnLFxuICAgICAgcnNWYXJSYW5nZSA9ICdcXFxcdWZlMGVcXFxcdWZlMGYnLFxuICAgICAgcnNCcmVha1JhbmdlID0gcnNNYXRoT3BSYW5nZSArIHJzTm9uQ2hhclJhbmdlICsgcnNQdW5jdHVhdGlvblJhbmdlICsgcnNTcGFjZVJhbmdlO1xuXG4gIC8qKiBVc2VkIHRvIGNvbXBvc2UgdW5pY29kZSBjYXB0dXJlIGdyb3Vwcy4gKi9cbiAgdmFyIHJzQXBvcyA9IFwiWydcXHUyMDE5XVwiLFxuICAgICAgcnNBc3RyYWwgPSAnWycgKyByc0FzdHJhbFJhbmdlICsgJ10nLFxuICAgICAgcnNCcmVhayA9ICdbJyArIHJzQnJlYWtSYW5nZSArICddJyxcbiAgICAgIHJzQ29tYm8gPSAnWycgKyByc0NvbWJvUmFuZ2UgKyAnXScsXG4gICAgICByc0RpZ2l0cyA9ICdcXFxcZCsnLFxuICAgICAgcnNEaW5nYmF0ID0gJ1snICsgcnNEaW5nYmF0UmFuZ2UgKyAnXScsXG4gICAgICByc0xvd2VyID0gJ1snICsgcnNMb3dlclJhbmdlICsgJ10nLFxuICAgICAgcnNNaXNjID0gJ1teJyArIHJzQXN0cmFsUmFuZ2UgKyByc0JyZWFrUmFuZ2UgKyByc0RpZ2l0cyArIHJzRGluZ2JhdFJhbmdlICsgcnNMb3dlclJhbmdlICsgcnNVcHBlclJhbmdlICsgJ10nLFxuICAgICAgcnNGaXR6ID0gJ1xcXFx1ZDgzY1tcXFxcdWRmZmItXFxcXHVkZmZmXScsXG4gICAgICByc01vZGlmaWVyID0gJyg/OicgKyByc0NvbWJvICsgJ3wnICsgcnNGaXR6ICsgJyknLFxuICAgICAgcnNOb25Bc3RyYWwgPSAnW14nICsgcnNBc3RyYWxSYW5nZSArICddJyxcbiAgICAgIHJzUmVnaW9uYWwgPSAnKD86XFxcXHVkODNjW1xcXFx1ZGRlNi1cXFxcdWRkZmZdKXsyfScsXG4gICAgICByc1N1cnJQYWlyID0gJ1tcXFxcdWQ4MDAtXFxcXHVkYmZmXVtcXFxcdWRjMDAtXFxcXHVkZmZmXScsXG4gICAgICByc1VwcGVyID0gJ1snICsgcnNVcHBlclJhbmdlICsgJ10nLFxuICAgICAgcnNaV0ogPSAnXFxcXHUyMDBkJztcblxuICAvKiogVXNlZCB0byBjb21wb3NlIHVuaWNvZGUgcmVnZXhlcy4gKi9cbiAgdmFyIHJzTWlzY0xvd2VyID0gJyg/OicgKyByc0xvd2VyICsgJ3wnICsgcnNNaXNjICsgJyknLFxuICAgICAgcnNNaXNjVXBwZXIgPSAnKD86JyArIHJzVXBwZXIgKyAnfCcgKyByc01pc2MgKyAnKScsXG4gICAgICByc09wdENvbnRyTG93ZXIgPSAnKD86JyArIHJzQXBvcyArICcoPzpkfGxsfG18cmV8c3x0fHZlKSk/JyxcbiAgICAgIHJzT3B0Q29udHJVcHBlciA9ICcoPzonICsgcnNBcG9zICsgJyg/OkR8TEx8TXxSRXxTfFR8VkUpKT8nLFxuICAgICAgcmVPcHRNb2QgPSByc01vZGlmaWVyICsgJz8nLFxuICAgICAgcnNPcHRWYXIgPSAnWycgKyByc1ZhclJhbmdlICsgJ10/JyxcbiAgICAgIHJzT3B0Sm9pbiA9ICcoPzonICsgcnNaV0ogKyAnKD86JyArIFtyc05vbkFzdHJhbCwgcnNSZWdpb25hbCwgcnNTdXJyUGFpcl0uam9pbignfCcpICsgJyknICsgcnNPcHRWYXIgKyByZU9wdE1vZCArICcpKicsXG4gICAgICByc09yZExvd2VyID0gJ1xcXFxkKig/OjFzdHwybmR8M3JkfCg/IVsxMjNdKVxcXFxkdGgpKD89XFxcXGJ8W0EtWl9dKScsXG4gICAgICByc09yZFVwcGVyID0gJ1xcXFxkKig/OjFTVHwyTkR8M1JEfCg/IVsxMjNdKVxcXFxkVEgpKD89XFxcXGJ8W2Etel9dKScsXG4gICAgICByc1NlcSA9IHJzT3B0VmFyICsgcmVPcHRNb2QgKyByc09wdEpvaW4sXG4gICAgICByc0Vtb2ppID0gJyg/OicgKyBbcnNEaW5nYmF0LCByc1JlZ2lvbmFsLCByc1N1cnJQYWlyXS5qb2luKCd8JykgKyAnKScgKyByc1NlcSxcbiAgICAgIHJzU3ltYm9sID0gJyg/OicgKyBbcnNOb25Bc3RyYWwgKyByc0NvbWJvICsgJz8nLCByc0NvbWJvLCByc1JlZ2lvbmFsLCByc1N1cnJQYWlyLCByc0FzdHJhbF0uam9pbignfCcpICsgJyknO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGFwb3N0cm9waGVzLiAqL1xuICB2YXIgcmVBcG9zID0gUmVnRXhwKHJzQXBvcywgJ2cnKTtcblxuICAvKipcbiAgICogVXNlZCB0byBtYXRjaCBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3MpIGFuZFxuICAgKiBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzIGZvciBzeW1ib2xzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3NfZm9yX1N5bWJvbHMpLlxuICAgKi9cbiAgdmFyIHJlQ29tYm9NYXJrID0gUmVnRXhwKHJzQ29tYm8sICdnJyk7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggW3N0cmluZyBzeW1ib2xzXShodHRwczovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvamF2YXNjcmlwdC11bmljb2RlKS4gKi9cbiAgdmFyIHJlVW5pY29kZSA9IFJlZ0V4cChyc0ZpdHogKyAnKD89JyArIHJzRml0eiArICcpfCcgKyByc1N5bWJvbCArIHJzU2VxLCAnZycpO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGNvbXBsZXggb3IgY29tcG91bmQgd29yZHMuICovXG4gIHZhciByZVVuaWNvZGVXb3JkID0gUmVnRXhwKFtcbiAgICByc1VwcGVyICsgJz8nICsgcnNMb3dlciArICcrJyArIHJzT3B0Q29udHJMb3dlciArICcoPz0nICsgW3JzQnJlYWssIHJzVXBwZXIsICckJ10uam9pbignfCcpICsgJyknLFxuICAgIHJzTWlzY1VwcGVyICsgJysnICsgcnNPcHRDb250clVwcGVyICsgJyg/PScgKyBbcnNCcmVhaywgcnNVcHBlciArIHJzTWlzY0xvd2VyLCAnJCddLmpvaW4oJ3wnKSArICcpJyxcbiAgICByc1VwcGVyICsgJz8nICsgcnNNaXNjTG93ZXIgKyAnKycgKyByc09wdENvbnRyTG93ZXIsXG4gICAgcnNVcHBlciArICcrJyArIHJzT3B0Q29udHJVcHBlcixcbiAgICByc09yZFVwcGVyLFxuICAgIHJzT3JkTG93ZXIsXG4gICAgcnNEaWdpdHMsXG4gICAgcnNFbW9qaVxuICBdLmpvaW4oJ3wnKSwgJ2cnKTtcblxuICAvKiogVXNlZCB0byBkZXRlY3Qgc3RyaW5ncyB3aXRoIFt6ZXJvLXdpZHRoIGpvaW5lcnMgb3IgY29kZSBwb2ludHMgZnJvbSB0aGUgYXN0cmFsIHBsYW5lc10oaHR0cDovL2Vldi5lZS9ibG9nLzIwMTUvMDkvMTIvZGFyay1jb3JuZXJzLW9mLXVuaWNvZGUvKS4gKi9cbiAgdmFyIHJlSGFzVW5pY29kZSA9IFJlZ0V4cCgnWycgKyByc1pXSiArIHJzQXN0cmFsUmFuZ2UgICsgcnNDb21ib1JhbmdlICsgcnNWYXJSYW5nZSArICddJyk7XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IHN0cmluZ3MgdGhhdCBuZWVkIGEgbW9yZSByb2J1c3QgcmVnZXhwIHRvIG1hdGNoIHdvcmRzLiAqL1xuICB2YXIgcmVIYXNVbmljb2RlV29yZCA9IC9bYS16XVtBLVpdfFtBLVpdezJ9W2Etel18WzAtOV1bYS16QS1aXXxbYS16QS1aXVswLTldfFteYS16QS1aMC05IF0vO1xuXG4gIC8qKiBVc2VkIHRvIGFzc2lnbiBkZWZhdWx0IGBjb250ZXh0YCBvYmplY3QgcHJvcGVydGllcy4gKi9cbiAgdmFyIGNvbnRleHRQcm9wcyA9IFtcbiAgICAnQXJyYXknLCAnQnVmZmVyJywgJ0RhdGFWaWV3JywgJ0RhdGUnLCAnRXJyb3InLCAnRmxvYXQzMkFycmF5JywgJ0Zsb2F0NjRBcnJheScsXG4gICAgJ0Z1bmN0aW9uJywgJ0ludDhBcnJheScsICdJbnQxNkFycmF5JywgJ0ludDMyQXJyYXknLCAnTWFwJywgJ01hdGgnLCAnT2JqZWN0JyxcbiAgICAnUHJvbWlzZScsICdSZWdFeHAnLCAnU2V0JywgJ1N0cmluZycsICdTeW1ib2wnLCAnVHlwZUVycm9yJywgJ1VpbnQ4QXJyYXknLFxuICAgICdVaW50OENsYW1wZWRBcnJheScsICdVaW50MTZBcnJheScsICdVaW50MzJBcnJheScsICdXZWFrTWFwJyxcbiAgICAnXycsICdjbGVhclRpbWVvdXQnLCAnaXNGaW5pdGUnLCAncGFyc2VJbnQnLCAnc2V0VGltZW91dCdcbiAgXTtcblxuICAvKiogVXNlZCB0byBtYWtlIHRlbXBsYXRlIHNvdXJjZVVSTHMgZWFzaWVyIHRvIGlkZW50aWZ5LiAqL1xuICB2YXIgdGVtcGxhdGVDb3VudGVyID0gLTE7XG5cbiAgLyoqIFVzZWQgdG8gaWRlbnRpZnkgYHRvU3RyaW5nVGFnYCB2YWx1ZXMgb2YgdHlwZWQgYXJyYXlzLiAqL1xuICB2YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcbiAgdHlwZWRBcnJheVRhZ3NbZmxvYXQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1tmbG9hdDY0VGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW2ludDhUYWddID0gdHlwZWRBcnJheVRhZ3NbaW50MTZUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQxNlRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1t1aW50MzJUYWddID0gdHJ1ZTtcbiAgdHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1thcnJheUJ1ZmZlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tib29sVGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW2RhdGFWaWV3VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2RhdGVUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPVxuICB0eXBlZEFycmF5VGFnc1ttYXBUYWddID0gdHlwZWRBcnJheVRhZ3NbbnVtYmVyVGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW29iamVjdFRhZ10gPSB0eXBlZEFycmF5VGFnc1tyZWdleHBUYWddID1cbiAgdHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPVxuICB0eXBlZEFycmF5VGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4gIC8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIHN1cHBvcnRlZCBieSBgXy5jbG9uZWAuICovXG4gIHZhciBjbG9uZWFibGVUYWdzID0ge307XG4gIGNsb25lYWJsZVRhZ3NbYXJnc1RhZ10gPSBjbG9uZWFibGVUYWdzW2FycmF5VGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRhVmlld1RhZ10gPVxuICBjbG9uZWFibGVUYWdzW2Jvb2xUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRlVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbZmxvYXQzMlRhZ10gPSBjbG9uZWFibGVUYWdzW2Zsb2F0NjRUYWddID1cbiAgY2xvbmVhYmxlVGFnc1tpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MTZUYWddID1cbiAgY2xvbmVhYmxlVGFnc1tpbnQzMlRhZ10gPSBjbG9uZWFibGVUYWdzW21hcFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW251bWJlclRhZ10gPSBjbG9uZWFibGVUYWdzW29iamVjdFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3JlZ2V4cFRhZ10gPSBjbG9uZWFibGVUYWdzW3NldFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3N0cmluZ1RhZ10gPSBjbG9uZWFibGVUYWdzW3N5bWJvbFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3VpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbdWludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG4gIGNsb25lYWJsZVRhZ3NbZXJyb3JUYWddID0gY2xvbmVhYmxlVGFnc1tmdW5jVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuICAvKiogVXNlZCB0byBtYXAgTGF0aW4gVW5pY29kZSBsZXR0ZXJzIHRvIGJhc2ljIExhdGluIGxldHRlcnMuICovXG4gIHZhciBkZWJ1cnJlZExldHRlcnMgPSB7XG4gICAgLy8gTGF0aW4tMSBTdXBwbGVtZW50IGJsb2NrLlxuICAgICdcXHhjMCc6ICdBJywgICdcXHhjMSc6ICdBJywgJ1xceGMyJzogJ0EnLCAnXFx4YzMnOiAnQScsICdcXHhjNCc6ICdBJywgJ1xceGM1JzogJ0EnLFxuICAgICdcXHhlMCc6ICdhJywgICdcXHhlMSc6ICdhJywgJ1xceGUyJzogJ2EnLCAnXFx4ZTMnOiAnYScsICdcXHhlNCc6ICdhJywgJ1xceGU1JzogJ2EnLFxuICAgICdcXHhjNyc6ICdDJywgICdcXHhlNyc6ICdjJyxcbiAgICAnXFx4ZDAnOiAnRCcsICAnXFx4ZjAnOiAnZCcsXG4gICAgJ1xceGM4JzogJ0UnLCAgJ1xceGM5JzogJ0UnLCAnXFx4Y2EnOiAnRScsICdcXHhjYic6ICdFJyxcbiAgICAnXFx4ZTgnOiAnZScsICAnXFx4ZTknOiAnZScsICdcXHhlYSc6ICdlJywgJ1xceGViJzogJ2UnLFxuICAgICdcXHhjYyc6ICdJJywgICdcXHhjZCc6ICdJJywgJ1xceGNlJzogJ0knLCAnXFx4Y2YnOiAnSScsXG4gICAgJ1xceGVjJzogJ2knLCAgJ1xceGVkJzogJ2knLCAnXFx4ZWUnOiAnaScsICdcXHhlZic6ICdpJyxcbiAgICAnXFx4ZDEnOiAnTicsICAnXFx4ZjEnOiAnbicsXG4gICAgJ1xceGQyJzogJ08nLCAgJ1xceGQzJzogJ08nLCAnXFx4ZDQnOiAnTycsICdcXHhkNSc6ICdPJywgJ1xceGQ2JzogJ08nLCAnXFx4ZDgnOiAnTycsXG4gICAgJ1xceGYyJzogJ28nLCAgJ1xceGYzJzogJ28nLCAnXFx4ZjQnOiAnbycsICdcXHhmNSc6ICdvJywgJ1xceGY2JzogJ28nLCAnXFx4ZjgnOiAnbycsXG4gICAgJ1xceGQ5JzogJ1UnLCAgJ1xceGRhJzogJ1UnLCAnXFx4ZGInOiAnVScsICdcXHhkYyc6ICdVJyxcbiAgICAnXFx4ZjknOiAndScsICAnXFx4ZmEnOiAndScsICdcXHhmYic6ICd1JywgJ1xceGZjJzogJ3UnLFxuICAgICdcXHhkZCc6ICdZJywgICdcXHhmZCc6ICd5JywgJ1xceGZmJzogJ3knLFxuICAgICdcXHhjNic6ICdBZScsICdcXHhlNic6ICdhZScsXG4gICAgJ1xceGRlJzogJ1RoJywgJ1xceGZlJzogJ3RoJyxcbiAgICAnXFx4ZGYnOiAnc3MnLFxuICAgIC8vIExhdGluIEV4dGVuZGVkLUEgYmxvY2suXG4gICAgJ1xcdTAxMDAnOiAnQScsICAnXFx1MDEwMic6ICdBJywgJ1xcdTAxMDQnOiAnQScsXG4gICAgJ1xcdTAxMDEnOiAnYScsICAnXFx1MDEwMyc6ICdhJywgJ1xcdTAxMDUnOiAnYScsXG4gICAgJ1xcdTAxMDYnOiAnQycsICAnXFx1MDEwOCc6ICdDJywgJ1xcdTAxMGEnOiAnQycsICdcXHUwMTBjJzogJ0MnLFxuICAgICdcXHUwMTA3JzogJ2MnLCAgJ1xcdTAxMDknOiAnYycsICdcXHUwMTBiJzogJ2MnLCAnXFx1MDEwZCc6ICdjJyxcbiAgICAnXFx1MDEwZSc6ICdEJywgICdcXHUwMTEwJzogJ0QnLCAnXFx1MDEwZic6ICdkJywgJ1xcdTAxMTEnOiAnZCcsXG4gICAgJ1xcdTAxMTInOiAnRScsICAnXFx1MDExNCc6ICdFJywgJ1xcdTAxMTYnOiAnRScsICdcXHUwMTE4JzogJ0UnLCAnXFx1MDExYSc6ICdFJyxcbiAgICAnXFx1MDExMyc6ICdlJywgICdcXHUwMTE1JzogJ2UnLCAnXFx1MDExNyc6ICdlJywgJ1xcdTAxMTknOiAnZScsICdcXHUwMTFiJzogJ2UnLFxuICAgICdcXHUwMTFjJzogJ0cnLCAgJ1xcdTAxMWUnOiAnRycsICdcXHUwMTIwJzogJ0cnLCAnXFx1MDEyMic6ICdHJyxcbiAgICAnXFx1MDExZCc6ICdnJywgICdcXHUwMTFmJzogJ2cnLCAnXFx1MDEyMSc6ICdnJywgJ1xcdTAxMjMnOiAnZycsXG4gICAgJ1xcdTAxMjQnOiAnSCcsICAnXFx1MDEyNic6ICdIJywgJ1xcdTAxMjUnOiAnaCcsICdcXHUwMTI3JzogJ2gnLFxuICAgICdcXHUwMTI4JzogJ0knLCAgJ1xcdTAxMmEnOiAnSScsICdcXHUwMTJjJzogJ0knLCAnXFx1MDEyZSc6ICdJJywgJ1xcdTAxMzAnOiAnSScsXG4gICAgJ1xcdTAxMjknOiAnaScsICAnXFx1MDEyYic6ICdpJywgJ1xcdTAxMmQnOiAnaScsICdcXHUwMTJmJzogJ2knLCAnXFx1MDEzMSc6ICdpJyxcbiAgICAnXFx1MDEzNCc6ICdKJywgICdcXHUwMTM1JzogJ2onLFxuICAgICdcXHUwMTM2JzogJ0snLCAgJ1xcdTAxMzcnOiAnaycsICdcXHUwMTM4JzogJ2snLFxuICAgICdcXHUwMTM5JzogJ0wnLCAgJ1xcdTAxM2InOiAnTCcsICdcXHUwMTNkJzogJ0wnLCAnXFx1MDEzZic6ICdMJywgJ1xcdTAxNDEnOiAnTCcsXG4gICAgJ1xcdTAxM2EnOiAnbCcsICAnXFx1MDEzYyc6ICdsJywgJ1xcdTAxM2UnOiAnbCcsICdcXHUwMTQwJzogJ2wnLCAnXFx1MDE0Mic6ICdsJyxcbiAgICAnXFx1MDE0Myc6ICdOJywgICdcXHUwMTQ1JzogJ04nLCAnXFx1MDE0Nyc6ICdOJywgJ1xcdTAxNGEnOiAnTicsXG4gICAgJ1xcdTAxNDQnOiAnbicsICAnXFx1MDE0Nic6ICduJywgJ1xcdTAxNDgnOiAnbicsICdcXHUwMTRiJzogJ24nLFxuICAgICdcXHUwMTRjJzogJ08nLCAgJ1xcdTAxNGUnOiAnTycsICdcXHUwMTUwJzogJ08nLFxuICAgICdcXHUwMTRkJzogJ28nLCAgJ1xcdTAxNGYnOiAnbycsICdcXHUwMTUxJzogJ28nLFxuICAgICdcXHUwMTU0JzogJ1InLCAgJ1xcdTAxNTYnOiAnUicsICdcXHUwMTU4JzogJ1InLFxuICAgICdcXHUwMTU1JzogJ3InLCAgJ1xcdTAxNTcnOiAncicsICdcXHUwMTU5JzogJ3InLFxuICAgICdcXHUwMTVhJzogJ1MnLCAgJ1xcdTAxNWMnOiAnUycsICdcXHUwMTVlJzogJ1MnLCAnXFx1MDE2MCc6ICdTJyxcbiAgICAnXFx1MDE1Yic6ICdzJywgICdcXHUwMTVkJzogJ3MnLCAnXFx1MDE1Zic6ICdzJywgJ1xcdTAxNjEnOiAncycsXG4gICAgJ1xcdTAxNjInOiAnVCcsICAnXFx1MDE2NCc6ICdUJywgJ1xcdTAxNjYnOiAnVCcsXG4gICAgJ1xcdTAxNjMnOiAndCcsICAnXFx1MDE2NSc6ICd0JywgJ1xcdTAxNjcnOiAndCcsXG4gICAgJ1xcdTAxNjgnOiAnVScsICAnXFx1MDE2YSc6ICdVJywgJ1xcdTAxNmMnOiAnVScsICdcXHUwMTZlJzogJ1UnLCAnXFx1MDE3MCc6ICdVJywgJ1xcdTAxNzInOiAnVScsXG4gICAgJ1xcdTAxNjknOiAndScsICAnXFx1MDE2Yic6ICd1JywgJ1xcdTAxNmQnOiAndScsICdcXHUwMTZmJzogJ3UnLCAnXFx1MDE3MSc6ICd1JywgJ1xcdTAxNzMnOiAndScsXG4gICAgJ1xcdTAxNzQnOiAnVycsICAnXFx1MDE3NSc6ICd3JyxcbiAgICAnXFx1MDE3Nic6ICdZJywgICdcXHUwMTc3JzogJ3knLCAnXFx1MDE3OCc6ICdZJyxcbiAgICAnXFx1MDE3OSc6ICdaJywgICdcXHUwMTdiJzogJ1onLCAnXFx1MDE3ZCc6ICdaJyxcbiAgICAnXFx1MDE3YSc6ICd6JywgICdcXHUwMTdjJzogJ3onLCAnXFx1MDE3ZSc6ICd6JyxcbiAgICAnXFx1MDEzMic6ICdJSicsICdcXHUwMTMzJzogJ2lqJyxcbiAgICAnXFx1MDE1Mic6ICdPZScsICdcXHUwMTUzJzogJ29lJyxcbiAgICAnXFx1MDE0OSc6IFwiJ25cIiwgJ1xcdTAxN2YnOiAncydcbiAgfTtcblxuICAvKiogVXNlZCB0byBtYXAgY2hhcmFjdGVycyB0byBIVE1MIGVudGl0aWVzLiAqL1xuICB2YXIgaHRtbEVzY2FwZXMgPSB7XG4gICAgJyYnOiAnJmFtcDsnLFxuICAgICc8JzogJyZsdDsnLFxuICAgICc+JzogJyZndDsnLFxuICAgICdcIic6ICcmcXVvdDsnLFxuICAgIFwiJ1wiOiAnJiMzOTsnXG4gIH07XG5cbiAgLyoqIFVzZWQgdG8gbWFwIEhUTUwgZW50aXRpZXMgdG8gY2hhcmFjdGVycy4gKi9cbiAgdmFyIGh0bWxVbmVzY2FwZXMgPSB7XG4gICAgJyZhbXA7JzogJyYnLFxuICAgICcmbHQ7JzogJzwnLFxuICAgICcmZ3Q7JzogJz4nLFxuICAgICcmcXVvdDsnOiAnXCInLFxuICAgICcmIzM5Oyc6IFwiJ1wiXG4gIH07XG5cbiAgLyoqIFVzZWQgdG8gZXNjYXBlIGNoYXJhY3RlcnMgZm9yIGluY2x1c2lvbiBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG4gIHZhciBzdHJpbmdFc2NhcGVzID0ge1xuICAgICdcXFxcJzogJ1xcXFwnLFxuICAgIFwiJ1wiOiBcIidcIixcbiAgICAnXFxuJzogJ24nLFxuICAgICdcXHInOiAncicsXG4gICAgJ1xcdTIwMjgnOiAndTIwMjgnLFxuICAgICdcXHUyMDI5JzogJ3UyMDI5J1xuICB9O1xuXG4gIC8qKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB3aXRob3V0IGEgZGVwZW5kZW5jeSBvbiBgcm9vdGAuICovXG4gIHZhciBmcmVlUGFyc2VGbG9hdCA9IHBhcnNlRmxvYXQsXG4gICAgICBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuICAvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGdsb2JhbGAgZnJvbSBOb2RlLmpzLiAqL1xuICB2YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbiAgdmFyIGZyZWVTZWxmID0gdHlwZW9mIHNlbGYgPT0gJ29iamVjdCcgJiYgc2VsZiAmJiBzZWxmLk9iamVjdCA9PT0gT2JqZWN0ICYmIHNlbGY7XG5cbiAgLyoqIFVzZWQgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBvYmplY3QuICovXG4gIHZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4gIC8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG4gIHZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiYgIWV4cG9ydHMubm9kZVR5cGUgJiYgZXhwb3J0cztcblxuICAvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG4gIHZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbiAgLyoqIERldGVjdCB0aGUgcG9wdWxhciBDb21tb25KUyBleHRlbnNpb24gYG1vZHVsZS5leHBvcnRzYC4gKi9cbiAgdmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBwcm9jZXNzYCBmcm9tIE5vZGUuanMuICovXG4gIHZhciBmcmVlUHJvY2VzcyA9IG1vZHVsZUV4cG9ydHMgJiYgZnJlZUdsb2JhbC5wcm9jZXNzO1xuXG4gIC8qKiBVc2VkIHRvIGFjY2VzcyBmYXN0ZXIgTm9kZS5qcyBoZWxwZXJzLiAqL1xuICB2YXIgbm9kZVV0aWwgPSAoZnVuY3Rpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFVzZSBgdXRpbC50eXBlc2AgZm9yIE5vZGUuanMgMTArLlxuICAgICAgdmFyIHR5cGVzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlKCd1dGlsJykudHlwZXM7XG5cbiAgICAgIGlmICh0eXBlcykge1xuICAgICAgICByZXR1cm4gdHlwZXM7XG4gICAgICB9XG5cbiAgICAgIC8vIExlZ2FjeSBgcHJvY2Vzcy5iaW5kaW5nKCd1dGlsJylgIGZvciBOb2RlLmpzIDwgMTAuXG4gICAgICByZXR1cm4gZnJlZVByb2Nlc3MgJiYgZnJlZVByb2Nlc3MuYmluZGluZyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nKCd1dGlsJyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgfSgpKTtcblxuICAvKiBOb2RlLmpzIGhlbHBlciByZWZlcmVuY2VzLiAqL1xuICB2YXIgbm9kZUlzQXJyYXlCdWZmZXIgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc0FycmF5QnVmZmVyLFxuICAgICAgbm9kZUlzRGF0ZSA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzRGF0ZSxcbiAgICAgIG5vZGVJc01hcCA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzTWFwLFxuICAgICAgbm9kZUlzUmVnRXhwID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNSZWdFeHAsXG4gICAgICBub2RlSXNTZXQgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1NldCxcbiAgICAgIG5vZGVJc1R5cGVkQXJyYXkgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1R5cGVkQXJyYXk7XG5cbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgLyoqXG4gICAqIEEgZmFzdGVyIGFsdGVybmF0aXZlIHRvIGBGdW5jdGlvbiNhcHBseWAsIHRoaXMgZnVuY3Rpb24gaW52b2tlcyBgZnVuY2BcbiAgICogd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgYHRoaXNBcmdgIGFuZCB0aGUgYXJndW1lbnRzIG9mIGBhcmdzYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaW52b2tlLlxuICAgKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgYXJndW1lbnRzIHRvIGludm9rZSBgZnVuY2Agd2l0aC5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc3VsdCBvZiBgZnVuY2AuXG4gICAqL1xuICBmdW5jdGlvbiBhcHBseShmdW5jLCB0aGlzQXJnLCBhcmdzKSB7XG4gICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgY2FzZSAwOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcpO1xuICAgICAgY2FzZSAxOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0pO1xuICAgICAgY2FzZSAyOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgICAgY2FzZSAzOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pO1xuICAgIH1cbiAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VBZ2dyZWdhdG9yYCBmb3IgYXJyYXlzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHNldHRlciBUaGUgZnVuY3Rpb24gdG8gc2V0IGBhY2N1bXVsYXRvcmAgdmFsdWVzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIGtleXMuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBhY2N1bXVsYXRvciBUaGUgaW5pdGlhbCBhZ2dyZWdhdGVkIG9iamVjdC5cbiAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBhY2N1bXVsYXRvcmAuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheUFnZ3JlZ2F0b3IoYXJyYXksIHNldHRlciwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgIHNldHRlcihhY2N1bXVsYXRvciwgdmFsdWUsIGl0ZXJhdGVlKHZhbHVlKSwgYXJyYXkpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZvckVhY2hgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlFYWNoKGFycmF5LCBpdGVyYXRlZSkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAoaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpID09PSBmYWxzZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5mb3JFYWNoUmlnaHRgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlFYWNoUmlnaHQoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICBpZiAoaXRlcmF0ZWUoYXJyYXlbbGVuZ3RoXSwgbGVuZ3RoLCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXk7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmV2ZXJ5YCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFsbCBlbGVtZW50cyBwYXNzIHRoZSBwcmVkaWNhdGUgY2hlY2ssXG4gICAqICBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheUV2ZXJ5KGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKCFwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZpbHRlcmAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAqIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlGaWx0ZXIoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgcmVzSW5kZXggPSAwLFxuICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5pbmNsdWRlc2AgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAqIHNwZWNpZnlpbmcgYW4gaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7Kn0gdGFyZ2V0IFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHRhcmdldGAgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAgICovXG4gIGZ1bmN0aW9uIGFycmF5SW5jbHVkZXMoYXJyYXksIHZhbHVlKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgIHJldHVybiAhIWxlbmd0aCAmJiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIDApID4gLTE7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBhcnJheUluY2x1ZGVzYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGEgY29tcGFyYXRvci5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB0YXJnZXQgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbXBhcmF0b3IgVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB0YXJnZXRgIGlzIGZvdW5kLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheUluY2x1ZGVzV2l0aChhcnJheSwgdmFsdWUsIGNvbXBhcmF0b3IpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKGNvbXBhcmF0b3IodmFsdWUsIGFycmF5W2luZGV4XSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubWFwYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVcbiAgICogc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgYXJyYXkuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheU1hcChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmRzIHRoZSBlbGVtZW50cyBvZiBgdmFsdWVzYCB0byBgYXJyYXlgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBhcHBlbmQuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlQdXNoKGFycmF5LCB2YWx1ZXMpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aCxcbiAgICAgICAgb2Zmc2V0ID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGFycmF5W29mZnNldCArIGluZGV4XSA9IHZhbHVlc1tpbmRleF07XG4gICAgfVxuICAgIHJldHVybiBhcnJheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ucmVkdWNlYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luaXRBY2N1bV0gU3BlY2lmeSB1c2luZyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgIGFzXG4gICAqICB0aGUgaW5pdGlhbCB2YWx1ZS5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlSZWR1Y2UoYXJyYXksIGl0ZXJhdGVlLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gICAgaWYgKGluaXRBY2N1bSAmJiBsZW5ndGgpIHtcbiAgICAgIGFjY3VtdWxhdG9yID0gYXJyYXlbKytpbmRleF07XG4gICAgfVxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCBhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSk7XG4gICAgfVxuICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ucmVkdWNlUmlnaHRgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAgICogQHBhcmFtIHtib29sZWFufSBbaW5pdEFjY3VtXSBTcGVjaWZ5IHVzaW5nIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YCBhc1xuICAgKiAgdGhlIGluaXRpYWwgdmFsdWUuXG4gICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICovXG4gIGZ1bmN0aW9uIGFycmF5UmVkdWNlUmlnaHQoYXJyYXksIGl0ZXJhdGVlLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgIGlmIChpbml0QWNjdW0gJiYgbGVuZ3RoKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGFycmF5Wy0tbGVuZ3RoXTtcbiAgICB9XG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCBhcnJheVtsZW5ndGhdLCBsZW5ndGgsIGFycmF5KTtcbiAgICB9XG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zb21lYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVcbiAgICogc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFueSBlbGVtZW50IHBhc3NlcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlTb21lKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzaXplIG9mIGFuIEFTQ0lJIGBzdHJpbmdgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgaW5zcGVjdC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3RyaW5nIHNpemUuXG4gICAqL1xuICB2YXIgYXNjaWlTaXplID0gYmFzZVByb3BlcnR5KCdsZW5ndGgnKTtcblxuICAvKipcbiAgICogQ29udmVydHMgYW4gQVNDSUkgYHN0cmluZ2AgdG8gYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBhcnJheS5cbiAgICovXG4gIGZ1bmN0aW9uIGFzY2lpVG9BcnJheShzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyaW5nLnNwbGl0KCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdHMgYW4gQVNDSUkgYHN0cmluZ2AgaW50byBhbiBhcnJheSBvZiBpdHMgd29yZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgd29yZHMgb2YgYHN0cmluZ2AuXG4gICAqL1xuICBmdW5jdGlvbiBhc2NpaVdvcmRzKHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmcubWF0Y2gocmVBc2NpaVdvcmQpIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5maW5kS2V5YCBhbmQgYF8uZmluZExhc3RLZXlgLFxuICAgKiB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMsIHdoaWNoIGl0ZXJhdGVzIG92ZXIgYGNvbGxlY3Rpb25gXG4gICAqIHVzaW5nIGBlYWNoRnVuY2AuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGBjb2xsZWN0aW9uYC5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZvdW5kIGVsZW1lbnQgb3IgaXRzIGtleSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VGaW5kS2V5KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZWFjaEZ1bmMpIHtcbiAgICB2YXIgcmVzdWx0O1xuICAgIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGtleSwgY29sbGVjdGlvbikpIHtcbiAgICAgICAgcmVzdWx0ID0ga2V5O1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maW5kSW5kZXhgIGFuZCBgXy5maW5kTGFzdEluZGV4YCB3aXRob3V0XG4gICAqIHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZUZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tSW5kZXgsIGZyb21SaWdodCkge1xuICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgIGluZGV4ID0gZnJvbUluZGV4ICsgKGZyb21SaWdodCA/IDEgOiAtMSk7XG5cbiAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgaWYgKHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW5kZXhPZmAgd2l0aG91dCBgZnJvbUluZGV4YCBib3VuZHMgY2hlY2tzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWVcbiAgICAgID8gc3RyaWN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleClcbiAgICAgIDogYmFzZUZpbmRJbmRleChhcnJheSwgYmFzZUlzTmFOLCBmcm9tSW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgYmFzZUluZGV4T2ZgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYSBjb21wYXJhdG9yLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbXBhcmF0b3IgVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VJbmRleE9mV2l0aChhcnJheSwgdmFsdWUsIGZyb21JbmRleCwgY29tcGFyYXRvcikge1xuICAgIHZhciBpbmRleCA9IGZyb21JbmRleCAtIDEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAoY29tcGFyYXRvcihhcnJheVtpbmRleF0sIHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc05hTmAgd2l0aG91dCBzdXBwb3J0IGZvciBudW1iZXIgb2JqZWN0cy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGBOYU5gLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlSXNOYU4odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1lYW5gIGFuZCBgXy5tZWFuQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbWVhbi5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VNZWFuKGFycmF5LCBpdGVyYXRlZSkge1xuICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICByZXR1cm4gbGVuZ3RoID8gKGJhc2VTdW0oYXJyYXksIGl0ZXJhdGVlKSAvIGxlbmd0aCkgOiBOQU47XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVByb3BlcnR5KGtleSkge1xuICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdFtrZXldO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlPZmAgd2l0aG91dCBzdXBwb3J0IGZvciBkZWVwIHBhdGhzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVByb3BlcnR5T2Yob2JqZWN0KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGtleSkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yZWR1Y2VgIGFuZCBgXy5yZWR1Y2VSaWdodGAsIHdpdGhvdXQgc3VwcG9ydFxuICAgKiBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcywgd2hpY2ggaXRlcmF0ZXMgb3ZlciBgY29sbGVjdGlvbmAgdXNpbmcgYGVhY2hGdW5jYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcGFyYW0geyp9IGFjY3VtdWxhdG9yIFRoZSBpbml0aWFsIHZhbHVlLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGluaXRBY2N1bSBTcGVjaWZ5IHVzaW5nIHRoZSBmaXJzdCBvciBsYXN0IGVsZW1lbnQgb2ZcbiAgICogIGBjb2xsZWN0aW9uYCBhcyB0aGUgaW5pdGlhbCB2YWx1ZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZWFjaEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBgY29sbGVjdGlvbmAuXG4gICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VSZWR1Y2UoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0sIGVhY2hGdW5jKSB7XG4gICAgZWFjaEZ1bmMoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGluaXRBY2N1bVxuICAgICAgICA/IChpbml0QWNjdW0gPSBmYWxzZSwgdmFsdWUpXG4gICAgICAgIDogaXRlcmF0ZWUoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvcnRCeWAgd2hpY2ggdXNlcyBgY29tcGFyZXJgIHRvIGRlZmluZSB0aGVcbiAgICogc29ydCBvcmRlciBvZiBgYXJyYXlgIGFuZCByZXBsYWNlcyBjcml0ZXJpYSBvYmplY3RzIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZ1xuICAgKiB2YWx1ZXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzb3J0LlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJlciBUaGUgZnVuY3Rpb24gdG8gZGVmaW5lIHNvcnQgb3JkZXIuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVNvcnRCeShhcnJheSwgY29tcGFyZXIpIHtcbiAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgYXJyYXkuc29ydChjb21wYXJlcik7XG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICBhcnJheVtsZW5ndGhdID0gYXJyYXlbbGVuZ3RoXS52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnN1bWAgYW5kIGBfLnN1bUJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAqIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHN1bS5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VTdW0oYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgdmFyIHJlc3VsdCxcbiAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBjdXJyZW50ID0gaXRlcmF0ZWUoYXJyYXlbaW5kZXhdKTtcbiAgICAgIGlmIChjdXJyZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ID09PSB1bmRlZmluZWQgPyBjdXJyZW50IDogKHJlc3VsdCArIGN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRpbWVzYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHNcbiAgICogb3IgbWF4IGFycmF5IGxlbmd0aCBjaGVja3MuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gaW52b2tlIGBpdGVyYXRlZWAuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VUaW1lcyhuLCBpdGVyYXRlZSkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICByZXN1bHQgPSBBcnJheShuKTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGluZGV4KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50b1BhaXJzYCBhbmQgYF8udG9QYWlyc0luYCB3aGljaCBjcmVhdGVzIGFuIGFycmF5XG4gICAqIG9mIGtleS12YWx1ZSBwYWlycyBmb3IgYG9iamVjdGAgY29ycmVzcG9uZGluZyB0byB0aGUgcHJvcGVydHkgbmFtZXMgb2YgYHByb3BzYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gZ2V0IHZhbHVlcyBmb3IuXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGtleS12YWx1ZSBwYWlycy5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VUb1BhaXJzKG9iamVjdCwgcHJvcHMpIHtcbiAgICByZXR1cm4gYXJyYXlNYXAocHJvcHMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgcmV0dXJuIFtrZXksIG9iamVjdFtrZXldXTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy51bmFyeWAgd2l0aG91dCBzdXBwb3J0IGZvciBzdG9yaW5nIG1ldGFkYXRhLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjYXAgYXJndW1lbnRzIGZvci5cbiAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FwcGVkIGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVVuYXJ5KGZ1bmMpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiBmdW5jKHZhbHVlKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnZhbHVlc2AgYW5kIGBfLnZhbHVlc0luYCB3aGljaCBjcmVhdGVzIGFuXG4gICAqIGFycmF5IG9mIGBvYmplY3RgIHByb3BlcnR5IHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwcm9wZXJ0eSBuYW1lc1xuICAgKiBvZiBgcHJvcHNgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBwcm9wZXJ0eSBuYW1lcyB0byBnZXQgdmFsdWVzIGZvci5cbiAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgdmFsdWVzLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVZhbHVlcyhvYmplY3QsIHByb3BzKSB7XG4gICAgcmV0dXJuIGFycmF5TWFwKHByb3BzLCBmdW5jdGlvbihrZXkpIHtcbiAgICAgIHJldHVybiBvYmplY3Rba2V5XTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBgY2FjaGVgIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjYWNoZSBUaGUgY2FjaGUgdG8gcXVlcnkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBjYWNoZUhhcyhjYWNoZSwga2V5KSB7XG4gICAgcmV0dXJuIGNhY2hlLmhhcyhrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8udHJpbWAgYW5kIGBfLnRyaW1TdGFydGAgdG8gZ2V0IHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgc3RyaW5nIHN5bWJvbFxuICAgKiB0aGF0IGlzIG5vdCBmb3VuZCBpbiB0aGUgY2hhcmFjdGVyIHN5bWJvbHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IHN0clN5bWJvbHMgVGhlIHN0cmluZyBzeW1ib2xzIHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7QXJyYXl9IGNoclN5bWJvbHMgVGhlIGNoYXJhY3RlciBzeW1ib2xzIHRvIGZpbmQuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCB1bm1hdGNoZWQgc3RyaW5nIHN5bWJvbC5cbiAgICovXG4gIGZ1bmN0aW9uIGNoYXJzU3RhcnRJbmRleChzdHJTeW1ib2xzLCBjaHJTeW1ib2xzKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IHN0clN5bWJvbHMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGggJiYgYmFzZUluZGV4T2YoY2hyU3ltYm9scywgc3RyU3ltYm9sc1tpbmRleF0sIDApID4gLTEpIHt9XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8udHJpbWAgYW5kIGBfLnRyaW1FbmRgIHRvIGdldCB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgc3RyaW5nIHN5bWJvbFxuICAgKiB0aGF0IGlzIG5vdCBmb3VuZCBpbiB0aGUgY2hhcmFjdGVyIHN5bWJvbHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IHN0clN5bWJvbHMgVGhlIHN0cmluZyBzeW1ib2xzIHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7QXJyYXl9IGNoclN5bWJvbHMgVGhlIGNoYXJhY3RlciBzeW1ib2xzIHRvIGZpbmQuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IHVubWF0Y2hlZCBzdHJpbmcgc3ltYm9sLlxuICAgKi9cbiAgZnVuY3Rpb24gY2hhcnNFbmRJbmRleChzdHJTeW1ib2xzLCBjaHJTeW1ib2xzKSB7XG4gICAgdmFyIGluZGV4ID0gc3RyU3ltYm9scy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaW5kZXgtLSAmJiBiYXNlSW5kZXhPZihjaHJTeW1ib2xzLCBzdHJTeW1ib2xzW2luZGV4XSwgMCkgPiAtMSkge31cbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGBwbGFjZWhvbGRlcmAgb2NjdXJyZW5jZXMgaW4gYGFycmF5YC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7Kn0gcGxhY2Vob2xkZXIgVGhlIHBsYWNlaG9sZGVyIHRvIHNlYXJjaCBmb3IuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHBsYWNlaG9sZGVyIGNvdW50LlxuICAgKi9cbiAgZnVuY3Rpb24gY291bnRIb2xkZXJzKGFycmF5LCBwbGFjZWhvbGRlcikge1xuICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgIHJlc3VsdCA9IDA7XG5cbiAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgIGlmIChhcnJheVtsZW5ndGhdID09PSBwbGFjZWhvbGRlcikge1xuICAgICAgICArK3Jlc3VsdDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IGBfLmRlYnVycmAgdG8gY29udmVydCBMYXRpbi0xIFN1cHBsZW1lbnQgYW5kIExhdGluIEV4dGVuZGVkLUFcbiAgICogbGV0dGVycyB0byBiYXNpYyBMYXRpbiBsZXR0ZXJzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbGV0dGVyIFRoZSBtYXRjaGVkIGxldHRlciB0byBkZWJ1cnIuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGRlYnVycmVkIGxldHRlci5cbiAgICovXG4gIHZhciBkZWJ1cnJMZXR0ZXIgPSBiYXNlUHJvcGVydHlPZihkZWJ1cnJlZExldHRlcnMpO1xuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IGBfLmVzY2FwZWAgdG8gY29udmVydCBjaGFyYWN0ZXJzIHRvIEhUTUwgZW50aXRpZXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaHIgVGhlIG1hdGNoZWQgY2hhcmFjdGVyIHRvIGVzY2FwZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBjaGFyYWN0ZXIuXG4gICAqL1xuICB2YXIgZXNjYXBlSHRtbENoYXIgPSBiYXNlUHJvcGVydHlPZihodG1sRXNjYXBlcyk7XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8udGVtcGxhdGVgIHRvIGVzY2FwZSBjaGFyYWN0ZXJzIGZvciBpbmNsdXNpb24gaW4gY29tcGlsZWQgc3RyaW5nIGxpdGVyYWxzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hyIFRoZSBtYXRjaGVkIGNoYXJhY3RlciB0byBlc2NhcGUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGVzY2FwZWQgY2hhcmFjdGVyLlxuICAgKi9cbiAgZnVuY3Rpb24gZXNjYXBlU3RyaW5nQ2hhcihjaHIpIHtcbiAgICByZXR1cm4gJ1xcXFwnICsgc3RyaW5nRXNjYXBlc1tjaHJdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZhbHVlIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZS5cbiAgICovXG4gIGZ1bmN0aW9uIGdldFZhbHVlKG9iamVjdCwga2V5KSB7XG4gICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGBzdHJpbmdgIGNvbnRhaW5zIFVuaWNvZGUgc3ltYm9scy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhIHN5bWJvbCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxuICAgKi9cbiAgZnVuY3Rpb24gaGFzVW5pY29kZShzdHJpbmcpIHtcbiAgICByZXR1cm4gcmVIYXNVbmljb2RlLnRlc3Qoc3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYHN0cmluZ2AgY29udGFpbnMgYSB3b3JkIGNvbXBvc2VkIG9mIFVuaWNvZGUgc3ltYm9scy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhIHdvcmQgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAgICovXG4gIGZ1bmN0aW9uIGhhc1VuaWNvZGVXb3JkKHN0cmluZykge1xuICAgIHJldHVybiByZUhhc1VuaWNvZGVXb3JkLnRlc3Qoc3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBgaXRlcmF0b3JgIHRvIGFuIGFycmF5LlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gaXRlcmF0b3IgVGhlIGl0ZXJhdG9yIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY29udmVydGVkIGFycmF5LlxuICAgKi9cbiAgZnVuY3Rpb24gaXRlcmF0b3JUb0FycmF5KGl0ZXJhdG9yKSB7XG4gICAgdmFyIGRhdGEsXG4gICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgd2hpbGUgKCEoZGF0YSA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgcmVzdWx0LnB1c2goZGF0YS52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYG1hcGAgdG8gaXRzIGtleS12YWx1ZSBwYWlycy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG1hcCBUaGUgbWFwIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUga2V5LXZhbHVlIHBhaXJzLlxuICAgKi9cbiAgZnVuY3Rpb24gbWFwVG9BcnJheShtYXApIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgcmVzdWx0ID0gQXJyYXkobWFwLnNpemUpO1xuXG4gICAgbWFwLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAgcmVzdWx0WysraW5kZXhdID0gW2tleSwgdmFsdWVdO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHVuYXJ5IGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBpdHMgYXJndW1lbnQgdHJhbnNmb3JtZWQuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHRyYW5zZm9ybSBUaGUgYXJndW1lbnQgdHJhbnNmb3JtLlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICovXG4gIGZ1bmN0aW9uIG92ZXJBcmcoZnVuYywgdHJhbnNmb3JtKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGFyZykge1xuICAgICAgcmV0dXJuIGZ1bmModHJhbnNmb3JtKGFyZykpO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgYWxsIGBwbGFjZWhvbGRlcmAgZWxlbWVudHMgaW4gYGFycmF5YCB3aXRoIGFuIGludGVybmFsIHBsYWNlaG9sZGVyXG4gICAqIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIHRoZWlyIGluZGV4ZXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAqIEBwYXJhbSB7Kn0gcGxhY2Vob2xkZXIgVGhlIHBsYWNlaG9sZGVyIHRvIHJlcGxhY2UuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gICAqL1xuICBmdW5jdGlvbiByZXBsYWNlSG9sZGVycyhhcnJheSwgcGxhY2Vob2xkZXIpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICByZXNJbmRleCA9IDAsXG4gICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gcGxhY2Vob2xkZXIgfHwgdmFsdWUgPT09IFBMQUNFSE9MREVSKSB7XG4gICAgICAgIGFycmF5W2luZGV4XSA9IFBMQUNFSE9MREVSO1xuICAgICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSBpbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBgc2V0YCB0byBhbiBhcnJheSBvZiBpdHMgdmFsdWVzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gc2V0IFRoZSBzZXQgdG8gY29udmVydC5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSB2YWx1ZXMuXG4gICAqL1xuICBmdW5jdGlvbiBzZXRUb0FycmF5KHNldCkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICByZXN1bHQgPSBBcnJheShzZXQuc2l6ZSk7XG5cbiAgICBzZXQuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgcmVzdWx0WysraW5kZXhdID0gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBgc2V0YCB0byBpdHMgdmFsdWUtdmFsdWUgcGFpcnMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBzZXQgVGhlIHNldCB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHZhbHVlLXZhbHVlIHBhaXJzLlxuICAgKi9cbiAgZnVuY3Rpb24gc2V0VG9QYWlycyhzZXQpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgcmVzdWx0ID0gQXJyYXkoc2V0LnNpemUpO1xuXG4gICAgc2V0LmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHJlc3VsdFsrK2luZGV4XSA9IFt2YWx1ZSwgdmFsdWVdO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmluZGV4T2ZgIHdoaWNoIHBlcmZvcm1zIHN0cmljdCBlcXVhbGl0eVxuICAgKiBjb21wYXJpc29ucyBvZiB2YWx1ZXMsIGkuZS4gYD09PWAuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICovXG4gIGZ1bmN0aW9uIHN0cmljdEluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgaW5kZXggPSBmcm9tSW5kZXggLSAxLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKGFycmF5W2luZGV4XSA9PT0gdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmxhc3RJbmRleE9mYCB3aGljaCBwZXJmb3JtcyBzdHJpY3QgZXF1YWxpdHlcbiAgICogY29tcGFyaXNvbnMgb2YgdmFsdWVzLCBpLmUuIGA9PT1gLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAqL1xuICBmdW5jdGlvbiBzdHJpY3RMYXN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgIHZhciBpbmRleCA9IGZyb21JbmRleCArIDE7XG4gICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgIGlmIChhcnJheVtpbmRleF0gPT09IHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIG51bWJlciBvZiBzeW1ib2xzIGluIGBzdHJpbmdgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3RyaW5nIHNpemUuXG4gICAqL1xuICBmdW5jdGlvbiBzdHJpbmdTaXplKHN0cmluZykge1xuICAgIHJldHVybiBoYXNVbmljb2RlKHN0cmluZylcbiAgICAgID8gdW5pY29kZVNpemUoc3RyaW5nKVxuICAgICAgOiBhc2NpaVNpemUoc3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBhbiBhcnJheS5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY29udmVydGVkIGFycmF5LlxuICAgKi9cbiAgZnVuY3Rpb24gc3RyaW5nVG9BcnJheShzdHJpbmcpIHtcbiAgICByZXR1cm4gaGFzVW5pY29kZShzdHJpbmcpXG4gICAgICA/IHVuaWNvZGVUb0FycmF5KHN0cmluZylcbiAgICAgIDogYXNjaWlUb0FycmF5KHN0cmluZyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy51bmVzY2FwZWAgdG8gY29udmVydCBIVE1MIGVudGl0aWVzIHRvIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaHIgVGhlIG1hdGNoZWQgY2hhcmFjdGVyIHRvIHVuZXNjYXBlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB1bmVzY2FwZWQgY2hhcmFjdGVyLlxuICAgKi9cbiAgdmFyIHVuZXNjYXBlSHRtbENoYXIgPSBiYXNlUHJvcGVydHlPZihodG1sVW5lc2NhcGVzKTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgc2l6ZSBvZiBhIFVuaWNvZGUgYHN0cmluZ2AuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyBpbnNwZWN0LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdHJpbmcgc2l6ZS5cbiAgICovXG4gIGZ1bmN0aW9uIHVuaWNvZGVTaXplKHN0cmluZykge1xuICAgIHZhciByZXN1bHQgPSByZVVuaWNvZGUubGFzdEluZGV4ID0gMDtcbiAgICB3aGlsZSAocmVVbmljb2RlLnRlc3Qoc3RyaW5nKSkge1xuICAgICAgKytyZXN1bHQ7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBVbmljb2RlIGBzdHJpbmdgIHRvIGFuIGFycmF5LlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgYXJyYXkuXG4gICAqL1xuICBmdW5jdGlvbiB1bmljb2RlVG9BcnJheShzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyaW5nLm1hdGNoKHJlVW5pY29kZSkgfHwgW107XG4gIH1cblxuICAvKipcbiAgICogU3BsaXRzIGEgVW5pY29kZSBgc3RyaW5nYCBpbnRvIGFuIGFycmF5IG9mIGl0cyB3b3Jkcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSB3b3JkcyBvZiBgc3RyaW5nYC5cbiAgICovXG4gIGZ1bmN0aW9uIHVuaWNvZGVXb3JkcyhzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyaW5nLm1hdGNoKHJlVW5pY29kZVdvcmQpIHx8IFtdO1xuICB9XG5cbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBwcmlzdGluZSBgbG9kYXNoYCBmdW5jdGlvbiB1c2luZyB0aGUgYGNvbnRleHRgIG9iamVjdC5cbiAgICpcbiAgICogQHN0YXRpY1xuICAgKiBAbWVtYmVyT2YgX1xuICAgKiBAc2luY2UgMS4xLjBcbiAgICogQGNhdGVnb3J5IFV0aWxcbiAgICogQHBhcmFtIHtPYmplY3R9IFtjb250ZXh0PXJvb3RdIFRoZSBjb250ZXh0IG9iamVjdC5cbiAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGEgbmV3IGBsb2Rhc2hgIGZ1bmN0aW9uLlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBfLm1peGluKHsgJ2Zvbyc6IF8uY29uc3RhbnQoJ2ZvbycpIH0pO1xuICAgKlxuICAgKiB2YXIgbG9kYXNoID0gXy5ydW5JbkNvbnRleHQoKTtcbiAgICogbG9kYXNoLm1peGluKHsgJ2Jhcic6IGxvZGFzaC5jb25zdGFudCgnYmFyJykgfSk7XG4gICAqXG4gICAqIF8uaXNGdW5jdGlvbihfLmZvbyk7XG4gICAqIC8vID0+IHRydWVcbiAgICogXy5pc0Z1bmN0aW9uKF8uYmFyKTtcbiAgICogLy8gPT4gZmFsc2VcbiAgICpcbiAgICogbG9kYXNoLmlzRnVuY3Rpb24obG9kYXNoLmZvbyk7XG4gICAqIC8vID0+IGZhbHNlXG4gICAqIGxvZGFzaC5pc0Z1bmN0aW9uKGxvZGFzaC5iYXIpO1xuICAgKiAvLyA9PiB0cnVlXG4gICAqXG4gICAqIC8vIENyZWF0ZSBhIHN1cGVkLXVwIGBkZWZlcmAgaW4gTm9kZS5qcy5cbiAgICogdmFyIGRlZmVyID0gXy5ydW5JbkNvbnRleHQoeyAnc2V0VGltZW91dCc6IHNldEltbWVkaWF0ZSB9KS5kZWZlcjtcbiAgICovXG4gIHZhciBydW5JbkNvbnRleHQgPSAoZnVuY3Rpb24gcnVuSW5Db250ZXh0KGNvbnRleHQpIHtcbiAgICBjb250ZXh0ID0gY29udGV4dCA9PSBudWxsID8gcm9vdCA6IF8uZGVmYXVsdHMocm9vdC5PYmplY3QoKSwgY29udGV4dCwgXy5waWNrKHJvb3QsIGNvbnRleHRQcm9wcykpO1xuXG4gICAgLyoqIEJ1aWx0LWluIGNvbnN0cnVjdG9yIHJlZmVyZW5jZXMuICovXG4gICAgdmFyIEFycmF5ID0gY29udGV4dC5BcnJheSxcbiAgICAgICAgRGF0ZSA9IGNvbnRleHQuRGF0ZSxcbiAgICAgICAgRXJyb3IgPSBjb250ZXh0LkVycm9yLFxuICAgICAgICBGdW5jdGlvbiA9IGNvbnRleHQuRnVuY3Rpb24sXG4gICAgICAgIE1hdGggPSBjb250ZXh0Lk1hdGgsXG4gICAgICAgIE9iamVjdCA9IGNvbnRleHQuT2JqZWN0LFxuICAgICAgICBSZWdFeHAgPSBjb250ZXh0LlJlZ0V4cCxcbiAgICAgICAgU3RyaW5nID0gY29udGV4dC5TdHJpbmcsXG4gICAgICAgIFR5cGVFcnJvciA9IGNvbnRleHQuVHlwZUVycm9yO1xuXG4gICAgLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xuICAgIHZhciBhcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlLFxuICAgICAgICBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgICAgIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuICAgIC8qKiBVc2VkIHRvIGRldGVjdCBvdmVycmVhY2hpbmcgY29yZS1qcyBzaGltcy4gKi9cbiAgICB2YXIgY29yZUpzRGF0YSA9IGNvbnRleHRbJ19fY29yZS1qc19zaGFyZWRfXyddO1xuXG4gICAgLyoqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgZGVjb21waWxlZCBzb3VyY2Ugb2YgZnVuY3Rpb25zLiAqL1xuICAgIHZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbiAgICAvKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbiAgICB2YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuICAgIC8qKiBVc2VkIHRvIGdlbmVyYXRlIHVuaXF1ZSBJRHMuICovXG4gICAgdmFyIGlkQ291bnRlciA9IDA7XG5cbiAgICAvKiogVXNlZCB0byBkZXRlY3QgbWV0aG9kcyBtYXNxdWVyYWRpbmcgYXMgbmF0aXZlLiAqL1xuICAgIHZhciBtYXNrU3JjS2V5ID0gKGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHVpZCA9IC9bXi5dKyQvLmV4ZWMoY29yZUpzRGF0YSAmJiBjb3JlSnNEYXRhLmtleXMgJiYgY29yZUpzRGF0YS5rZXlzLklFX1BST1RPIHx8ICcnKTtcbiAgICAgIHJldHVybiB1aWQgPyAoJ1N5bWJvbChzcmMpXzEuJyArIHVpZCkgOiAnJztcbiAgICB9KCkpO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byByZXNvbHZlIHRoZVxuICAgICAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICAgICAqIG9mIHZhbHVlcy5cbiAgICAgKi9cbiAgICB2YXIgbmF0aXZlT2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuICAgIC8qKiBVc2VkIHRvIGluZmVyIHRoZSBgT2JqZWN0YCBjb25zdHJ1Y3Rvci4gKi9cbiAgICB2YXIgb2JqZWN0Q3RvclN0cmluZyA9IGZ1bmNUb1N0cmluZy5jYWxsKE9iamVjdCk7XG5cbiAgICAvKiogVXNlZCB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBgX2AgcmVmZXJlbmNlIGluIGBfLm5vQ29uZmxpY3RgLiAqL1xuICAgIHZhciBvbGREYXNoID0gcm9vdC5fO1xuXG4gICAgLyoqIFVzZWQgdG8gZGV0ZWN0IGlmIGEgbWV0aG9kIGlzIG5hdGl2ZS4gKi9cbiAgICB2YXIgcmVJc05hdGl2ZSA9IFJlZ0V4cCgnXicgK1xuICAgICAgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgICAgIC5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcXFxcKCl8IGZvciAuKz8oPz1cXFxcXFxdKS9nLCAnJDEuKj8nKSArICckJ1xuICAgICk7XG5cbiAgICAvKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbiAgICB2YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IGNvbnRleHQuQnVmZmVyIDogdW5kZWZpbmVkLFxuICAgICAgICBTeW1ib2wgPSBjb250ZXh0LlN5bWJvbCxcbiAgICAgICAgVWludDhBcnJheSA9IGNvbnRleHQuVWludDhBcnJheSxcbiAgICAgICAgYWxsb2NVbnNhZmUgPSBCdWZmZXIgPyBCdWZmZXIuYWxsb2NVbnNhZmUgOiB1bmRlZmluZWQsXG4gICAgICAgIGdldFByb3RvdHlwZSA9IG92ZXJBcmcoT2JqZWN0LmdldFByb3RvdHlwZU9mLCBPYmplY3QpLFxuICAgICAgICBvYmplY3RDcmVhdGUgPSBPYmplY3QuY3JlYXRlLFxuICAgICAgICBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IG9iamVjdFByb3RvLnByb3BlcnR5SXNFbnVtZXJhYmxlLFxuICAgICAgICBzcGxpY2UgPSBhcnJheVByb3RvLnNwbGljZSxcbiAgICAgICAgc3ByZWFkYWJsZVN5bWJvbCA9IFN5bWJvbCA/IFN5bWJvbC5pc0NvbmNhdFNwcmVhZGFibGUgOiB1bmRlZmluZWQsXG4gICAgICAgIHN5bUl0ZXJhdG9yID0gU3ltYm9sID8gU3ltYm9sLml0ZXJhdG9yIDogdW5kZWZpbmVkLFxuICAgICAgICBzeW1Ub1N0cmluZ1RhZyA9IFN5bWJvbCA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuICAgIHZhciBkZWZpbmVQcm9wZXJ0eSA9IChmdW5jdGlvbigpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBmdW5jID0gZ2V0TmF0aXZlKE9iamVjdCwgJ2RlZmluZVByb3BlcnR5Jyk7XG4gICAgICAgIGZ1bmMoe30sICcnLCB7fSk7XG4gICAgICAgIHJldHVybiBmdW5jO1xuICAgICAgfSBjYXRjaCAoZSkge31cbiAgICB9KCkpO1xuXG4gICAgLyoqIE1vY2tlZCBidWlsdC1pbnMuICovXG4gICAgdmFyIGN0eENsZWFyVGltZW91dCA9IGNvbnRleHQuY2xlYXJUaW1lb3V0ICE9PSByb290LmNsZWFyVGltZW91dCAmJiBjb250ZXh0LmNsZWFyVGltZW91dCxcbiAgICAgICAgY3R4Tm93ID0gRGF0ZSAmJiBEYXRlLm5vdyAhPT0gcm9vdC5EYXRlLm5vdyAmJiBEYXRlLm5vdyxcbiAgICAgICAgY3R4U2V0VGltZW91dCA9IGNvbnRleHQuc2V0VGltZW91dCAhPT0gcm9vdC5zZXRUaW1lb3V0ICYmIGNvbnRleHQuc2V0VGltZW91dDtcblxuICAgIC8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbiAgICB2YXIgbmF0aXZlQ2VpbCA9IE1hdGguY2VpbCxcbiAgICAgICAgbmF0aXZlRmxvb3IgPSBNYXRoLmZsb29yLFxuICAgICAgICBuYXRpdmVHZXRTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxcbiAgICAgICAgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIgPyBCdWZmZXIuaXNCdWZmZXIgOiB1bmRlZmluZWQsXG4gICAgICAgIG5hdGl2ZUlzRmluaXRlID0gY29udGV4dC5pc0Zpbml0ZSxcbiAgICAgICAgbmF0aXZlSm9pbiA9IGFycmF5UHJvdG8uam9pbixcbiAgICAgICAgbmF0aXZlS2V5cyA9IG92ZXJBcmcoT2JqZWN0LmtleXMsIE9iamVjdCksXG4gICAgICAgIG5hdGl2ZU1heCA9IE1hdGgubWF4LFxuICAgICAgICBuYXRpdmVNaW4gPSBNYXRoLm1pbixcbiAgICAgICAgbmF0aXZlTm93ID0gRGF0ZS5ub3csXG4gICAgICAgIG5hdGl2ZVBhcnNlSW50ID0gY29udGV4dC5wYXJzZUludCxcbiAgICAgICAgbmF0aXZlUmFuZG9tID0gTWF0aC5yYW5kb20sXG4gICAgICAgIG5hdGl2ZVJldmVyc2UgPSBhcnJheVByb3RvLnJldmVyc2U7XG5cbiAgICAvKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG4gICAgdmFyIERhdGFWaWV3ID0gZ2V0TmF0aXZlKGNvbnRleHQsICdEYXRhVmlldycpLFxuICAgICAgICBNYXAgPSBnZXROYXRpdmUoY29udGV4dCwgJ01hcCcpLFxuICAgICAgICBQcm9taXNlID0gZ2V0TmF0aXZlKGNvbnRleHQsICdQcm9taXNlJyksXG4gICAgICAgIFNldCA9IGdldE5hdGl2ZShjb250ZXh0LCAnU2V0JyksXG4gICAgICAgIFdlYWtNYXAgPSBnZXROYXRpdmUoY29udGV4dCwgJ1dlYWtNYXAnKSxcbiAgICAgICAgbmF0aXZlQ3JlYXRlID0gZ2V0TmF0aXZlKE9iamVjdCwgJ2NyZWF0ZScpO1xuXG4gICAgLyoqIFVzZWQgdG8gc3RvcmUgZnVuY3Rpb24gbWV0YWRhdGEuICovXG4gICAgdmFyIG1ldGFNYXAgPSBXZWFrTWFwICYmIG5ldyBXZWFrTWFwO1xuXG4gICAgLyoqIFVzZWQgdG8gbG9va3VwIHVubWluaWZpZWQgZnVuY3Rpb24gbmFtZXMuICovXG4gICAgdmFyIHJlYWxOYW1lcyA9IHt9O1xuXG4gICAgLyoqIFVzZWQgdG8gZGV0ZWN0IG1hcHMsIHNldHMsIGFuZCB3ZWFrbWFwcy4gKi9cbiAgICB2YXIgZGF0YVZpZXdDdG9yU3RyaW5nID0gdG9Tb3VyY2UoRGF0YVZpZXcpLFxuICAgICAgICBtYXBDdG9yU3RyaW5nID0gdG9Tb3VyY2UoTWFwKSxcbiAgICAgICAgcHJvbWlzZUN0b3JTdHJpbmcgPSB0b1NvdXJjZShQcm9taXNlKSxcbiAgICAgICAgc2V0Q3RvclN0cmluZyA9IHRvU291cmNlKFNldCksXG4gICAgICAgIHdlYWtNYXBDdG9yU3RyaW5nID0gdG9Tb3VyY2UoV2Vha01hcCk7XG5cbiAgICAvKiogVXNlZCB0byBjb252ZXJ0IHN5bWJvbHMgdG8gcHJpbWl0aXZlcyBhbmQgc3RyaW5ncy4gKi9cbiAgICB2YXIgc3ltYm9sUHJvdG8gPSBTeW1ib2wgPyBTeW1ib2wucHJvdG90eXBlIDogdW5kZWZpbmVkLFxuICAgICAgICBzeW1ib2xWYWx1ZU9mID0gc3ltYm9sUHJvdG8gPyBzeW1ib2xQcm90by52YWx1ZU9mIDogdW5kZWZpbmVkLFxuICAgICAgICBzeW1ib2xUb1N0cmluZyA9IHN5bWJvbFByb3RvID8gc3ltYm9sUHJvdG8udG9TdHJpbmcgOiB1bmRlZmluZWQ7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYGxvZGFzaGAgb2JqZWN0IHdoaWNoIHdyYXBzIGB2YWx1ZWAgdG8gZW5hYmxlIGltcGxpY2l0IG1ldGhvZFxuICAgICAqIGNoYWluIHNlcXVlbmNlcy4gTWV0aG9kcyB0aGF0IG9wZXJhdGUgb24gYW5kIHJldHVybiBhcnJheXMsIGNvbGxlY3Rpb25zLFxuICAgICAqIGFuZCBmdW5jdGlvbnMgY2FuIGJlIGNoYWluZWQgdG9nZXRoZXIuIE1ldGhvZHMgdGhhdCByZXRyaWV2ZSBhIHNpbmdsZSB2YWx1ZVxuICAgICAqIG9yIG1heSByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUgd2lsbCBhdXRvbWF0aWNhbGx5IGVuZCB0aGUgY2hhaW4gc2VxdWVuY2VcbiAgICAgKiBhbmQgcmV0dXJuIHRoZSB1bndyYXBwZWQgdmFsdWUuIE90aGVyd2lzZSwgdGhlIHZhbHVlIG11c3QgYmUgdW53cmFwcGVkXG4gICAgICogd2l0aCBgXyN2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBFeHBsaWNpdCBjaGFpbiBzZXF1ZW5jZXMsIHdoaWNoIG11c3QgYmUgdW53cmFwcGVkIHdpdGggYF8jdmFsdWVgLCBtYXkgYmVcbiAgICAgKiBlbmFibGVkIHVzaW5nIGBfLmNoYWluYC5cbiAgICAgKlxuICAgICAqIFRoZSBleGVjdXRpb24gb2YgY2hhaW5lZCBtZXRob2RzIGlzIGxhenksIHRoYXQgaXMsIGl0J3MgZGVmZXJyZWQgdW50aWxcbiAgICAgKiBgXyN2YWx1ZWAgaXMgaW1wbGljaXRseSBvciBleHBsaWNpdGx5IGNhbGxlZC5cbiAgICAgKlxuICAgICAqIExhenkgZXZhbHVhdGlvbiBhbGxvd3Mgc2V2ZXJhbCBtZXRob2RzIHRvIHN1cHBvcnQgc2hvcnRjdXQgZnVzaW9uLlxuICAgICAqIFNob3J0Y3V0IGZ1c2lvbiBpcyBhbiBvcHRpbWl6YXRpb24gdG8gbWVyZ2UgaXRlcmF0ZWUgY2FsbHM7IHRoaXMgYXZvaWRzXG4gICAgICogdGhlIGNyZWF0aW9uIG9mIGludGVybWVkaWF0ZSBhcnJheXMgYW5kIGNhbiBncmVhdGx5IHJlZHVjZSB0aGUgbnVtYmVyIG9mXG4gICAgICogaXRlcmF0ZWUgZXhlY3V0aW9ucy4gU2VjdGlvbnMgb2YgYSBjaGFpbiBzZXF1ZW5jZSBxdWFsaWZ5IGZvciBzaG9ydGN1dFxuICAgICAqIGZ1c2lvbiBpZiB0aGUgc2VjdGlvbiBpcyBhcHBsaWVkIHRvIGFuIGFycmF5IGFuZCBpdGVyYXRlZXMgYWNjZXB0IG9ubHlcbiAgICAgKiBvbmUgYXJndW1lbnQuIFRoZSBoZXVyaXN0aWMgZm9yIHdoZXRoZXIgYSBzZWN0aW9uIHF1YWxpZmllcyBmb3Igc2hvcnRjdXRcbiAgICAgKiBmdXNpb24gaXMgc3ViamVjdCB0byBjaGFuZ2UuXG4gICAgICpcbiAgICAgKiBDaGFpbmluZyBpcyBzdXBwb3J0ZWQgaW4gY3VzdG9tIGJ1aWxkcyBhcyBsb25nIGFzIHRoZSBgXyN2YWx1ZWAgbWV0aG9kIGlzXG4gICAgICogZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuXG4gICAgICpcbiAgICAgKiBJbiBhZGRpdGlvbiB0byBsb2Rhc2ggbWV0aG9kcywgd3JhcHBlcnMgaGF2ZSBgQXJyYXlgIGFuZCBgU3RyaW5nYCBtZXRob2RzLlxuICAgICAqXG4gICAgICogVGhlIHdyYXBwZXIgYEFycmF5YCBtZXRob2RzIGFyZTpcbiAgICAgKiBgY29uY2F0YCwgYGpvaW5gLCBgcG9wYCwgYHB1c2hgLCBgc2hpZnRgLCBgc29ydGAsIGBzcGxpY2VgLCBhbmQgYHVuc2hpZnRgXG4gICAgICpcbiAgICAgKiBUaGUgd3JhcHBlciBgU3RyaW5nYCBtZXRob2RzIGFyZTpcbiAgICAgKiBgcmVwbGFjZWAgYW5kIGBzcGxpdGBcbiAgICAgKlxuICAgICAqIFRoZSB3cmFwcGVyIG1ldGhvZHMgdGhhdCBzdXBwb3J0IHNob3J0Y3V0IGZ1c2lvbiBhcmU6XG4gICAgICogYGF0YCwgYGNvbXBhY3RgLCBgZHJvcGAsIGBkcm9wUmlnaHRgLCBgZHJvcFdoaWxlYCwgYGZpbHRlcmAsIGBmaW5kYCxcbiAgICAgKiBgZmluZExhc3RgLCBgaGVhZGAsIGBpbml0aWFsYCwgYGxhc3RgLCBgbWFwYCwgYHJlamVjdGAsIGByZXZlcnNlYCwgYHNsaWNlYCxcbiAgICAgKiBgdGFpbGAsIGB0YWtlYCwgYHRha2VSaWdodGAsIGB0YWtlUmlnaHRXaGlsZWAsIGB0YWtlV2hpbGVgLCBhbmQgYHRvQXJyYXlgXG4gICAgICpcbiAgICAgKiBUaGUgY2hhaW5hYmxlIHdyYXBwZXIgbWV0aG9kcyBhcmU6XG4gICAgICogYGFmdGVyYCwgYGFyeWAsIGBhc3NpZ25gLCBgYXNzaWduSW5gLCBgYXNzaWduSW5XaXRoYCwgYGFzc2lnbldpdGhgLCBgYXRgLFxuICAgICAqIGBiZWZvcmVgLCBgYmluZGAsIGBiaW5kQWxsYCwgYGJpbmRLZXlgLCBgY2FzdEFycmF5YCwgYGNoYWluYCwgYGNodW5rYCxcbiAgICAgKiBgY29tbWl0YCwgYGNvbXBhY3RgLCBgY29uY2F0YCwgYGNvbmZvcm1zYCwgYGNvbnN0YW50YCwgYGNvdW50QnlgLCBgY3JlYXRlYCxcbiAgICAgKiBgY3VycnlgLCBgZGVib3VuY2VgLCBgZGVmYXVsdHNgLCBgZGVmYXVsdHNEZWVwYCwgYGRlZmVyYCwgYGRlbGF5YCxcbiAgICAgKiBgZGlmZmVyZW5jZWAsIGBkaWZmZXJlbmNlQnlgLCBgZGlmZmVyZW5jZVdpdGhgLCBgZHJvcGAsIGBkcm9wUmlnaHRgLFxuICAgICAqIGBkcm9wUmlnaHRXaGlsZWAsIGBkcm9wV2hpbGVgLCBgZXh0ZW5kYCwgYGV4dGVuZFdpdGhgLCBgZmlsbGAsIGBmaWx0ZXJgLFxuICAgICAqIGBmbGF0TWFwYCwgYGZsYXRNYXBEZWVwYCwgYGZsYXRNYXBEZXB0aGAsIGBmbGF0dGVuYCwgYGZsYXR0ZW5EZWVwYCxcbiAgICAgKiBgZmxhdHRlbkRlcHRoYCwgYGZsaXBgLCBgZmxvd2AsIGBmbG93UmlnaHRgLCBgZnJvbVBhaXJzYCwgYGZ1bmN0aW9uc2AsXG4gICAgICogYGZ1bmN0aW9uc0luYCwgYGdyb3VwQnlgLCBgaW5pdGlhbGAsIGBpbnRlcnNlY3Rpb25gLCBgaW50ZXJzZWN0aW9uQnlgLFxuICAgICAqIGBpbnRlcnNlY3Rpb25XaXRoYCwgYGludmVydGAsIGBpbnZlcnRCeWAsIGBpbnZva2VNYXBgLCBgaXRlcmF0ZWVgLCBga2V5QnlgLFxuICAgICAqIGBrZXlzYCwgYGtleXNJbmAsIGBtYXBgLCBgbWFwS2V5c2AsIGBtYXBWYWx1ZXNgLCBgbWF0Y2hlc2AsIGBtYXRjaGVzUHJvcGVydHlgLFxuICAgICAqIGBtZW1vaXplYCwgYG1lcmdlYCwgYG1lcmdlV2l0aGAsIGBtZXRob2RgLCBgbWV0aG9kT2ZgLCBgbWl4aW5gLCBgbmVnYXRlYCxcbiAgICAgKiBgbnRoQXJnYCwgYG9taXRgLCBgb21pdEJ5YCwgYG9uY2VgLCBgb3JkZXJCeWAsIGBvdmVyYCwgYG92ZXJBcmdzYCxcbiAgICAgKiBgb3ZlckV2ZXJ5YCwgYG92ZXJTb21lYCwgYHBhcnRpYWxgLCBgcGFydGlhbFJpZ2h0YCwgYHBhcnRpdGlvbmAsIGBwaWNrYCxcbiAgICAgKiBgcGlja0J5YCwgYHBsYW50YCwgYHByb3BlcnR5YCwgYHByb3BlcnR5T2ZgLCBgcHVsbGAsIGBwdWxsQWxsYCwgYHB1bGxBbGxCeWAsXG4gICAgICogYHB1bGxBbGxXaXRoYCwgYHB1bGxBdGAsIGBwdXNoYCwgYHJhbmdlYCwgYHJhbmdlUmlnaHRgLCBgcmVhcmdgLCBgcmVqZWN0YCxcbiAgICAgKiBgcmVtb3ZlYCwgYHJlc3RgLCBgcmV2ZXJzZWAsIGBzYW1wbGVTaXplYCwgYHNldGAsIGBzZXRXaXRoYCwgYHNodWZmbGVgLFxuICAgICAqIGBzbGljZWAsIGBzb3J0YCwgYHNvcnRCeWAsIGBzcGxpY2VgLCBgc3ByZWFkYCwgYHRhaWxgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLFxuICAgICAqIGB0YWtlUmlnaHRXaGlsZWAsIGB0YWtlV2hpbGVgLCBgdGFwYCwgYHRocm90dGxlYCwgYHRocnVgLCBgdG9BcnJheWAsXG4gICAgICogYHRvUGFpcnNgLCBgdG9QYWlyc0luYCwgYHRvUGF0aGAsIGB0b1BsYWluT2JqZWN0YCwgYHRyYW5zZm9ybWAsIGB1bmFyeWAsXG4gICAgICogYHVuaW9uYCwgYHVuaW9uQnlgLCBgdW5pb25XaXRoYCwgYHVuaXFgLCBgdW5pcUJ5YCwgYHVuaXFXaXRoYCwgYHVuc2V0YCxcbiAgICAgKiBgdW5zaGlmdGAsIGB1bnppcGAsIGB1bnppcFdpdGhgLCBgdXBkYXRlYCwgYHVwZGF0ZVdpdGhgLCBgdmFsdWVzYCxcbiAgICAgKiBgdmFsdWVzSW5gLCBgd2l0aG91dGAsIGB3cmFwYCwgYHhvcmAsIGB4b3JCeWAsIGB4b3JXaXRoYCwgYHppcGAsXG4gICAgICogYHppcE9iamVjdGAsIGB6aXBPYmplY3REZWVwYCwgYW5kIGB6aXBXaXRoYFxuICAgICAqXG4gICAgICogVGhlIHdyYXBwZXIgbWV0aG9kcyB0aGF0IGFyZSAqKm5vdCoqIGNoYWluYWJsZSBieSBkZWZhdWx0IGFyZTpcbiAgICAgKiBgYWRkYCwgYGF0dGVtcHRgLCBgY2FtZWxDYXNlYCwgYGNhcGl0YWxpemVgLCBgY2VpbGAsIGBjbGFtcGAsIGBjbG9uZWAsXG4gICAgICogYGNsb25lRGVlcGAsIGBjbG9uZURlZXBXaXRoYCwgYGNsb25lV2l0aGAsIGBjb25mb3Jtc1RvYCwgYGRlYnVycmAsXG4gICAgICogYGRlZmF1bHRUb2AsIGBkaXZpZGVgLCBgZWFjaGAsIGBlYWNoUmlnaHRgLCBgZW5kc1dpdGhgLCBgZXFgLCBgZXNjYXBlYCxcbiAgICAgKiBgZXNjYXBlUmVnRXhwYCwgYGV2ZXJ5YCwgYGZpbmRgLCBgZmluZEluZGV4YCwgYGZpbmRLZXlgLCBgZmluZExhc3RgLFxuICAgICAqIGBmaW5kTGFzdEluZGV4YCwgYGZpbmRMYXN0S2V5YCwgYGZpcnN0YCwgYGZsb29yYCwgYGZvckVhY2hgLCBgZm9yRWFjaFJpZ2h0YCxcbiAgICAgKiBgZm9ySW5gLCBgZm9ySW5SaWdodGAsIGBmb3JPd25gLCBgZm9yT3duUmlnaHRgLCBgZ2V0YCwgYGd0YCwgYGd0ZWAsIGBoYXNgLFxuICAgICAqIGBoYXNJbmAsIGBoZWFkYCwgYGlkZW50aXR5YCwgYGluY2x1ZGVzYCwgYGluZGV4T2ZgLCBgaW5SYW5nZWAsIGBpbnZva2VgLFxuICAgICAqIGBpc0FyZ3VtZW50c2AsIGBpc0FycmF5YCwgYGlzQXJyYXlCdWZmZXJgLCBgaXNBcnJheUxpa2VgLCBgaXNBcnJheUxpa2VPYmplY3RgLFxuICAgICAqIGBpc0Jvb2xlYW5gLCBgaXNCdWZmZXJgLCBgaXNEYXRlYCwgYGlzRWxlbWVudGAsIGBpc0VtcHR5YCwgYGlzRXF1YWxgLFxuICAgICAqIGBpc0VxdWFsV2l0aGAsIGBpc0Vycm9yYCwgYGlzRmluaXRlYCwgYGlzRnVuY3Rpb25gLCBgaXNJbnRlZ2VyYCwgYGlzTGVuZ3RoYCxcbiAgICAgKiBgaXNNYXBgLCBgaXNNYXRjaGAsIGBpc01hdGNoV2l0aGAsIGBpc05hTmAsIGBpc05hdGl2ZWAsIGBpc05pbGAsIGBpc051bGxgLFxuICAgICAqIGBpc051bWJlcmAsIGBpc09iamVjdGAsIGBpc09iamVjdExpa2VgLCBgaXNQbGFpbk9iamVjdGAsIGBpc1JlZ0V4cGAsXG4gICAgICogYGlzU2FmZUludGVnZXJgLCBgaXNTZXRgLCBgaXNTdHJpbmdgLCBgaXNVbmRlZmluZWRgLCBgaXNUeXBlZEFycmF5YCxcbiAgICAgKiBgaXNXZWFrTWFwYCwgYGlzV2Vha1NldGAsIGBqb2luYCwgYGtlYmFiQ2FzZWAsIGBsYXN0YCwgYGxhc3RJbmRleE9mYCxcbiAgICAgKiBgbG93ZXJDYXNlYCwgYGxvd2VyRmlyc3RgLCBgbHRgLCBgbHRlYCwgYG1heGAsIGBtYXhCeWAsIGBtZWFuYCwgYG1lYW5CeWAsXG4gICAgICogYG1pbmAsIGBtaW5CeWAsIGBtdWx0aXBseWAsIGBub0NvbmZsaWN0YCwgYG5vb3BgLCBgbm93YCwgYG50aGAsIGBwYWRgLFxuICAgICAqIGBwYWRFbmRgLCBgcGFkU3RhcnRgLCBgcGFyc2VJbnRgLCBgcG9wYCwgYHJhbmRvbWAsIGByZWR1Y2VgLCBgcmVkdWNlUmlnaHRgLFxuICAgICAqIGByZXBlYXRgLCBgcmVzdWx0YCwgYHJvdW5kYCwgYHJ1bkluQ29udGV4dGAsIGBzYW1wbGVgLCBgc2hpZnRgLCBgc2l6ZWAsXG4gICAgICogYHNuYWtlQ2FzZWAsIGBzb21lYCwgYHNvcnRlZEluZGV4YCwgYHNvcnRlZEluZGV4QnlgLCBgc29ydGVkTGFzdEluZGV4YCxcbiAgICAgKiBgc29ydGVkTGFzdEluZGV4QnlgLCBgc3RhcnRDYXNlYCwgYHN0YXJ0c1dpdGhgLCBgc3R1YkFycmF5YCwgYHN0dWJGYWxzZWAsXG4gICAgICogYHN0dWJPYmplY3RgLCBgc3R1YlN0cmluZ2AsIGBzdHViVHJ1ZWAsIGBzdWJ0cmFjdGAsIGBzdW1gLCBgc3VtQnlgLFxuICAgICAqIGB0ZW1wbGF0ZWAsIGB0aW1lc2AsIGB0b0Zpbml0ZWAsIGB0b0ludGVnZXJgLCBgdG9KU09OYCwgYHRvTGVuZ3RoYCxcbiAgICAgKiBgdG9Mb3dlcmAsIGB0b051bWJlcmAsIGB0b1NhZmVJbnRlZ2VyYCwgYHRvU3RyaW5nYCwgYHRvVXBwZXJgLCBgdHJpbWAsXG4gICAgICogYHRyaW1FbmRgLCBgdHJpbVN0YXJ0YCwgYHRydW5jYXRlYCwgYHVuZXNjYXBlYCwgYHVuaXF1ZUlkYCwgYHVwcGVyQ2FzZWAsXG4gICAgICogYHVwcGVyRmlyc3RgLCBgdmFsdWVgLCBhbmQgYHdvcmRzYFxuICAgICAqXG4gICAgICogQG5hbWUgX1xuICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byB3cmFwIGluIGEgYGxvZGFzaGAgaW5zdGFuY2UuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIHNxdWFyZShuKSB7XG4gICAgICogICByZXR1cm4gbiAqIG47XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIHdyYXBwZWQgPSBfKFsxLCAyLCAzXSk7XG4gICAgICpcbiAgICAgKiAvLyBSZXR1cm5zIGFuIHVud3JhcHBlZCB2YWx1ZS5cbiAgICAgKiB3cmFwcGVkLnJlZHVjZShfLmFkZCk7XG4gICAgICogLy8gPT4gNlxuICAgICAqXG4gICAgICogLy8gUmV0dXJucyBhIHdyYXBwZWQgdmFsdWUuXG4gICAgICogdmFyIHNxdWFyZXMgPSB3cmFwcGVkLm1hcChzcXVhcmUpO1xuICAgICAqXG4gICAgICogXy5pc0FycmF5KHNxdWFyZXMpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoc3F1YXJlcy52YWx1ZSgpKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gbG9kYXNoKHZhbHVlKSB7XG4gICAgICBpZiAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiAhaXNBcnJheSh2YWx1ZSkgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSkge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBMb2Rhc2hXcmFwcGVyKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnX193cmFwcGVkX18nKSkge1xuICAgICAgICAgIHJldHVybiB3cmFwcGVyQ2xvbmUodmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNyZWF0ZWAgd2l0aG91dCBzdXBwb3J0IGZvciBhc3NpZ25pbmdcbiAgICAgKiBwcm9wZXJ0aWVzIHRvIHRoZSBjcmVhdGVkIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHByb3RvIFRoZSBvYmplY3QgdG8gaW5oZXJpdCBmcm9tLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gICAgICovXG4gICAgdmFyIGJhc2VDcmVhdGUgPSAoZnVuY3Rpb24oKSB7XG4gICAgICBmdW5jdGlvbiBvYmplY3QoKSB7fVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHByb3RvKSB7XG4gICAgICAgIGlmICghaXNPYmplY3QocHJvdG8pKSB7XG4gICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChvYmplY3RDcmVhdGUpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0Q3JlYXRlKHByb3RvKTtcbiAgICAgICAgfVxuICAgICAgICBvYmplY3QucHJvdG90eXBlID0gcHJvdG87XG4gICAgICAgIHZhciByZXN1bHQgPSBuZXcgb2JqZWN0O1xuICAgICAgICBvYmplY3QucHJvdG90eXBlID0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9KCkpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGZ1bmN0aW9uIHdob3NlIHByb3RvdHlwZSBjaGFpbiBzZXF1ZW5jZSB3cmFwcGVycyBpbmhlcml0IGZyb20uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VMb2Rhc2goKSB7XG4gICAgICAvLyBObyBvcGVyYXRpb24gcGVyZm9ybWVkLlxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGNvbnN0cnVjdG9yIGZvciBjcmVhdGluZyBgbG9kYXNoYCB3cmFwcGVyIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbY2hhaW5BbGxdIEVuYWJsZSBleHBsaWNpdCBtZXRob2QgY2hhaW4gc2VxdWVuY2VzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIExvZGFzaFdyYXBwZXIodmFsdWUsIGNoYWluQWxsKSB7XG4gICAgICB0aGlzLl9fd3JhcHBlZF9fID0gdmFsdWU7XG4gICAgICB0aGlzLl9fYWN0aW9uc19fID0gW107XG4gICAgICB0aGlzLl9fY2hhaW5fXyA9ICEhY2hhaW5BbGw7XG4gICAgICB0aGlzLl9faW5kZXhfXyA9IDA7XG4gICAgICB0aGlzLl9fdmFsdWVzX18gPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQnkgZGVmYXVsdCwgdGhlIHRlbXBsYXRlIGRlbGltaXRlcnMgdXNlZCBieSBsb2Rhc2ggYXJlIGxpa2UgdGhvc2UgaW5cbiAgICAgKiBlbWJlZGRlZCBSdWJ5IChFUkIpIGFzIHdlbGwgYXMgRVMyMDE1IHRlbXBsYXRlIHN0cmluZ3MuIENoYW5nZSB0aGVcbiAgICAgKiBmb2xsb3dpbmcgdGVtcGxhdGUgc2V0dGluZ3MgdG8gdXNlIGFsdGVybmF0aXZlIGRlbGltaXRlcnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgICAqL1xuICAgIGxvZGFzaC50ZW1wbGF0ZVNldHRpbmdzID0ge1xuXG4gICAgICAvKipcbiAgICAgICAqIFVzZWQgdG8gZGV0ZWN0IGBkYXRhYCBwcm9wZXJ0eSB2YWx1ZXMgdG8gYmUgSFRNTC1lc2NhcGVkLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAqIEB0eXBlIHtSZWdFeHB9XG4gICAgICAgKi9cbiAgICAgICdlc2NhcGUnOiByZUVzY2FwZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBVc2VkIHRvIGRldGVjdCBjb2RlIHRvIGJlIGV2YWx1YXRlZC5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAgICAgKiBAdHlwZSB7UmVnRXhwfVxuICAgICAgICovXG4gICAgICAnZXZhbHVhdGUnOiByZUV2YWx1YXRlLFxuXG4gICAgICAvKipcbiAgICAgICAqIFVzZWQgdG8gZGV0ZWN0IGBkYXRhYCBwcm9wZXJ0eSB2YWx1ZXMgdG8gaW5qZWN0LlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAqIEB0eXBlIHtSZWdFeHB9XG4gICAgICAgKi9cbiAgICAgICdpbnRlcnBvbGF0ZSc6IHJlSW50ZXJwb2xhdGUsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlZCB0byByZWZlcmVuY2UgdGhlIGRhdGEgb2JqZWN0IGluIHRoZSB0ZW1wbGF0ZSB0ZXh0LlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICAgKi9cbiAgICAgICd2YXJpYWJsZSc6ICcnLFxuXG4gICAgICAvKipcbiAgICAgICAqIFVzZWQgdG8gaW1wb3J0IHZhcmlhYmxlcyBpbnRvIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAgICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgICAgICovXG4gICAgICAnaW1wb3J0cyc6IHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIGBsb2Rhc2hgIGZ1bmN0aW9uLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzLmltcG9ydHNcbiAgICAgICAgICogQHR5cGUge0Z1bmN0aW9ufVxuICAgICAgICAgKi9cbiAgICAgICAgJ18nOiBsb2Rhc2hcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gRW5zdXJlIHdyYXBwZXJzIGFyZSBpbnN0YW5jZXMgb2YgYGJhc2VMb2Rhc2hgLlxuICAgIGxvZGFzaC5wcm90b3R5cGUgPSBiYXNlTG9kYXNoLnByb3RvdHlwZTtcbiAgICBsb2Rhc2gucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gbG9kYXNoO1xuXG4gICAgTG9kYXNoV3JhcHBlci5wcm90b3R5cGUgPSBiYXNlQ3JlYXRlKGJhc2VMb2Rhc2gucHJvdG90eXBlKTtcbiAgICBMb2Rhc2hXcmFwcGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IExvZGFzaFdyYXBwZXI7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbGF6eSB3cmFwcGVyIG9iamVjdCB3aGljaCB3cmFwcyBgdmFsdWVgIHRvIGVuYWJsZSBsYXp5IGV2YWx1YXRpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gTGF6eVdyYXBwZXIodmFsdWUpIHtcbiAgICAgIHRoaXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgICAgIHRoaXMuX19hY3Rpb25zX18gPSBbXTtcbiAgICAgIHRoaXMuX19kaXJfXyA9IDE7XG4gICAgICB0aGlzLl9fZmlsdGVyZWRfXyA9IGZhbHNlO1xuICAgICAgdGhpcy5fX2l0ZXJhdGVlc19fID0gW107XG4gICAgICB0aGlzLl9fdGFrZUNvdW50X18gPSBNQVhfQVJSQVlfTEVOR1RIO1xuICAgICAgdGhpcy5fX3ZpZXdzX18gPSBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgdGhlIGxhenkgd3JhcHBlciBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGNsb25lXG4gICAgICogQG1lbWJlck9mIExhenlXcmFwcGVyXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIGBMYXp5V3JhcHBlcmAgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxhenlDbG9uZSgpIHtcbiAgICAgIHZhciByZXN1bHQgPSBuZXcgTGF6eVdyYXBwZXIodGhpcy5fX3dyYXBwZWRfXyk7XG4gICAgICByZXN1bHQuX19hY3Rpb25zX18gPSBjb3B5QXJyYXkodGhpcy5fX2FjdGlvbnNfXyk7XG4gICAgICByZXN1bHQuX19kaXJfXyA9IHRoaXMuX19kaXJfXztcbiAgICAgIHJlc3VsdC5fX2ZpbHRlcmVkX18gPSB0aGlzLl9fZmlsdGVyZWRfXztcbiAgICAgIHJlc3VsdC5fX2l0ZXJhdGVlc19fID0gY29weUFycmF5KHRoaXMuX19pdGVyYXRlZXNfXyk7XG4gICAgICByZXN1bHQuX190YWtlQ291bnRfXyA9IHRoaXMuX190YWtlQ291bnRfXztcbiAgICAgIHJlc3VsdC5fX3ZpZXdzX18gPSBjb3B5QXJyYXkodGhpcy5fX3ZpZXdzX18pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXZlcnNlcyB0aGUgZGlyZWN0aW9uIG9mIGxhenkgaXRlcmF0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSByZXZlcnNlXG4gICAgICogQG1lbWJlck9mIExhenlXcmFwcGVyXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IHJldmVyc2VkIGBMYXp5V3JhcHBlcmAgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxhenlSZXZlcnNlKCkge1xuICAgICAgaWYgKHRoaXMuX19maWx0ZXJlZF9fKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBuZXcgTGF6eVdyYXBwZXIodGhpcyk7XG4gICAgICAgIHJlc3VsdC5fX2Rpcl9fID0gLTE7XG4gICAgICAgIHJlc3VsdC5fX2ZpbHRlcmVkX18gPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5jbG9uZSgpO1xuICAgICAgICByZXN1bHQuX19kaXJfXyAqPSAtMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXh0cmFjdHMgdGhlIHVud3JhcHBlZCB2YWx1ZSBmcm9tIGl0cyBsYXp5IHdyYXBwZXIuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIHZhbHVlXG4gICAgICogQG1lbWJlck9mIExhenlXcmFwcGVyXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHVud3JhcHBlZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsYXp5VmFsdWUoKSB7XG4gICAgICB2YXIgYXJyYXkgPSB0aGlzLl9fd3JhcHBlZF9fLnZhbHVlKCksXG4gICAgICAgICAgZGlyID0gdGhpcy5fX2Rpcl9fLFxuICAgICAgICAgIGlzQXJyID0gaXNBcnJheShhcnJheSksXG4gICAgICAgICAgaXNSaWdodCA9IGRpciA8IDAsXG4gICAgICAgICAgYXJyTGVuZ3RoID0gaXNBcnIgPyBhcnJheS5sZW5ndGggOiAwLFxuICAgICAgICAgIHZpZXcgPSBnZXRWaWV3KDAsIGFyckxlbmd0aCwgdGhpcy5fX3ZpZXdzX18pLFxuICAgICAgICAgIHN0YXJ0ID0gdmlldy5zdGFydCxcbiAgICAgICAgICBlbmQgPSB2aWV3LmVuZCxcbiAgICAgICAgICBsZW5ndGggPSBlbmQgLSBzdGFydCxcbiAgICAgICAgICBpbmRleCA9IGlzUmlnaHQgPyBlbmQgOiAoc3RhcnQgLSAxKSxcbiAgICAgICAgICBpdGVyYXRlZXMgPSB0aGlzLl9faXRlcmF0ZWVzX18sXG4gICAgICAgICAgaXRlckxlbmd0aCA9IGl0ZXJhdGVlcy5sZW5ndGgsXG4gICAgICAgICAgcmVzSW5kZXggPSAwLFxuICAgICAgICAgIHRha2VDb3VudCA9IG5hdGl2ZU1pbihsZW5ndGgsIHRoaXMuX190YWtlQ291bnRfXyk7XG5cbiAgICAgIGlmICghaXNBcnIgfHwgKCFpc1JpZ2h0ICYmIGFyckxlbmd0aCA9PSBsZW5ndGggJiYgdGFrZUNvdW50ID09IGxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VXcmFwcGVyVmFsdWUoYXJyYXksIHRoaXMuX19hY3Rpb25zX18pO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuXG4gICAgICBvdXRlcjpcbiAgICAgIHdoaWxlIChsZW5ndGgtLSAmJiByZXNJbmRleCA8IHRha2VDb3VudCkge1xuICAgICAgICBpbmRleCArPSBkaXI7XG5cbiAgICAgICAgdmFyIGl0ZXJJbmRleCA9IC0xLFxuICAgICAgICAgICAgdmFsdWUgPSBhcnJheVtpbmRleF07XG5cbiAgICAgICAgd2hpbGUgKCsraXRlckluZGV4IDwgaXRlckxlbmd0aCkge1xuICAgICAgICAgIHZhciBkYXRhID0gaXRlcmF0ZWVzW2l0ZXJJbmRleF0sXG4gICAgICAgICAgICAgIGl0ZXJhdGVlID0gZGF0YS5pdGVyYXRlZSxcbiAgICAgICAgICAgICAgdHlwZSA9IGRhdGEudHlwZSxcbiAgICAgICAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZSh2YWx1ZSk7XG5cbiAgICAgICAgICBpZiAodHlwZSA9PSBMQVpZX01BUF9GTEFHKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGNvbXB1dGVkO1xuICAgICAgICAgIH0gZWxzZSBpZiAoIWNvbXB1dGVkKSB7XG4gICAgICAgICAgICBpZiAodHlwZSA9PSBMQVpZX0ZJTFRFUl9GTEFHKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYnJlYWsgb3V0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvLyBFbnN1cmUgYExhenlXcmFwcGVyYCBpcyBhbiBpbnN0YW5jZSBvZiBgYmFzZUxvZGFzaGAuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlID0gYmFzZUNyZWF0ZShiYXNlTG9kYXNoLnByb3RvdHlwZSk7XG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTGF6eVdyYXBwZXI7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgaGFzaCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIEhhc2goZW50cmllcykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gZW50cmllcyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuXG4gICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgZW50cnkgPSBlbnRyaWVzW2luZGV4XTtcbiAgICAgICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBoYXNoLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBjbGVhclxuICAgICAqIEBtZW1iZXJPZiBIYXNoXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFzaENsZWFyKCkge1xuICAgICAgdGhpcy5fX2RhdGFfXyA9IG5hdGl2ZUNyZWF0ZSA/IG5hdGl2ZUNyZWF0ZShudWxsKSA6IHt9O1xuICAgICAgdGhpcy5zaXplID0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgaGFzaC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgZGVsZXRlXG4gICAgICogQG1lbWJlck9mIEhhc2hcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gaGFzaCBUaGUgaGFzaCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhhc2hEZWxldGUoa2V5KSB7XG4gICAgICB2YXIgcmVzdWx0ID0gdGhpcy5oYXMoa2V5KSAmJiBkZWxldGUgdGhpcy5fX2RhdGFfX1trZXldO1xuICAgICAgdGhpcy5zaXplIC09IHJlc3VsdCA/IDEgOiAwO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBoYXNoIHZhbHVlIGZvciBga2V5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgZ2V0XG4gICAgICogQG1lbWJlck9mIEhhc2hcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFzaEdldChrZXkpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICAgIGlmIChuYXRpdmVDcmVhdGUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGRhdGFba2V5XTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gSEFTSF9VTkRFRklORUQgPyB1bmRlZmluZWQgOiByZXN1bHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpID8gZGF0YVtrZXldIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhIGhhc2ggdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgaGFzXG4gICAgICogQG1lbWJlck9mIEhhc2hcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFzaEhhcyhrZXkpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICAgIHJldHVybiBuYXRpdmVDcmVhdGUgPyAoZGF0YVtrZXldICE9PSB1bmRlZmluZWQpIDogaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGhhc2ggYGtleWAgdG8gYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgc2V0XG4gICAgICogQG1lbWJlck9mIEhhc2hcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaGFzaCBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXNoU2V0KGtleSwgdmFsdWUpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICAgIHRoaXMuc2l6ZSArPSB0aGlzLmhhcyhrZXkpID8gMCA6IDE7XG4gICAgICBkYXRhW2tleV0gPSAobmF0aXZlQ3JlYXRlICYmIHZhbHVlID09PSB1bmRlZmluZWQpID8gSEFTSF9VTkRFRklORUQgOiB2YWx1ZTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8vIEFkZCBtZXRob2RzIHRvIGBIYXNoYC5cbiAgICBIYXNoLnByb3RvdHlwZS5jbGVhciA9IGhhc2hDbGVhcjtcbiAgICBIYXNoLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBoYXNoRGVsZXRlO1xuICAgIEhhc2gucHJvdG90eXBlLmdldCA9IGhhc2hHZXQ7XG4gICAgSGFzaC5wcm90b3R5cGUuaGFzID0gaGFzaEhhcztcbiAgICBIYXNoLnByb3RvdHlwZS5zZXQgPSBoYXNoU2V0O1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBsaXN0IGNhY2hlIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gTGlzdENhY2hlKGVudHJpZXMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcblxuICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgbGlzdCBjYWNoZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgY2xlYXJcbiAgICAgKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGlzdENhY2hlQ2xlYXIoKSB7XG4gICAgICB0aGlzLl9fZGF0YV9fID0gW107XG4gICAgICB0aGlzLnNpemUgPSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBsaXN0IGNhY2hlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBkZWxldGVcbiAgICAgKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxpc3RDYWNoZURlbGV0ZShrZXkpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgICAgICBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuXG4gICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBsYXN0SW5kZXggPSBkYXRhLmxlbmd0aCAtIDE7XG4gICAgICBpZiAoaW5kZXggPT0gbGFzdEluZGV4KSB7XG4gICAgICAgIGRhdGEucG9wKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzcGxpY2UuY2FsbChkYXRhLCBpbmRleCwgMSk7XG4gICAgICB9XG4gICAgICAtLXRoaXMuc2l6ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGxpc3QgY2FjaGUgdmFsdWUgZm9yIGBrZXlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBnZXRcbiAgICAgKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxpc3RDYWNoZUdldChrZXkpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgICAgICBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuXG4gICAgICByZXR1cm4gaW5kZXggPCAwID8gdW5kZWZpbmVkIDogZGF0YVtpbmRleF1bMV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGEgbGlzdCBjYWNoZSB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBoYXNcbiAgICAgKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxpc3RDYWNoZUhhcyhrZXkpIHtcbiAgICAgIHJldHVybiBhc3NvY0luZGV4T2YodGhpcy5fX2RhdGFfXywga2V5KSA+IC0xO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGxpc3QgY2FjaGUgYGtleWAgdG8gYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgc2V0XG4gICAgICogQG1lbWJlck9mIExpc3RDYWNoZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBsaXN0IGNhY2hlIGluc3RhbmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxpc3RDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXG4gICAgICAgICAgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcblxuICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICArK3RoaXMuc2l6ZTtcbiAgICAgICAgZGF0YS5wdXNoKFtrZXksIHZhbHVlXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhW2luZGV4XVsxXSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gQWRkIG1ldGhvZHMgdG8gYExpc3RDYWNoZWAuXG4gICAgTGlzdENhY2hlLnByb3RvdHlwZS5jbGVhciA9IGxpc3RDYWNoZUNsZWFyO1xuICAgIExpc3RDYWNoZS5wcm90b3R5cGVbJ2RlbGV0ZSddID0gbGlzdENhY2hlRGVsZXRlO1xuICAgIExpc3RDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbGlzdENhY2hlR2V0O1xuICAgIExpc3RDYWNoZS5wcm90b3R5cGUuaGFzID0gbGlzdENhY2hlSGFzO1xuICAgIExpc3RDYWNoZS5wcm90b3R5cGUuc2V0ID0gbGlzdENhY2hlU2V0O1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG1hcCBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBNYXBDYWNoZShlbnRyaWVzKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgICAgICB0aGlzLnNldChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIG1hcC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgY2xlYXJcbiAgICAgKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXBDYWNoZUNsZWFyKCkge1xuICAgICAgdGhpcy5zaXplID0gMDtcbiAgICAgIHRoaXMuX19kYXRhX18gPSB7XG4gICAgICAgICdoYXNoJzogbmV3IEhhc2gsXG4gICAgICAgICdtYXAnOiBuZXcgKE1hcCB8fCBMaXN0Q2FjaGUpLFxuICAgICAgICAnc3RyaW5nJzogbmV3IEhhc2hcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIG1hcC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgZGVsZXRlXG4gICAgICogQG1lbWJlck9mIE1hcENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcENhY2hlRGVsZXRlKGtleSkge1xuICAgICAgdmFyIHJlc3VsdCA9IGdldE1hcERhdGEodGhpcywga2V5KVsnZGVsZXRlJ10oa2V5KTtcbiAgICAgIHRoaXMuc2l6ZSAtPSByZXN1bHQgPyAxIDogMDtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbWFwIHZhbHVlIGZvciBga2V5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgZ2V0XG4gICAgICogQG1lbWJlck9mIE1hcENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcENhY2hlR2V0KGtleSkge1xuICAgICAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KS5nZXQoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYSBtYXAgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgaGFzXG4gICAgICogQG1lbWJlck9mIE1hcENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcENhY2hlSGFzKGtleSkge1xuICAgICAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KS5oYXMoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBtYXAgYGtleWAgdG8gYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgc2V0XG4gICAgICogQG1lbWJlck9mIE1hcENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG1hcCBjYWNoZSBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXBDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gICAgICB2YXIgZGF0YSA9IGdldE1hcERhdGEodGhpcywga2V5KSxcbiAgICAgICAgICBzaXplID0gZGF0YS5zaXplO1xuXG4gICAgICBkYXRhLnNldChrZXksIHZhbHVlKTtcbiAgICAgIHRoaXMuc2l6ZSArPSBkYXRhLnNpemUgPT0gc2l6ZSA/IDAgOiAxO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gQWRkIG1ldGhvZHMgdG8gYE1hcENhY2hlYC5cbiAgICBNYXBDYWNoZS5wcm90b3R5cGUuY2xlYXIgPSBtYXBDYWNoZUNsZWFyO1xuICAgIE1hcENhY2hlLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBtYXBDYWNoZURlbGV0ZTtcbiAgICBNYXBDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbWFwQ2FjaGVHZXQ7XG4gICAgTWFwQ2FjaGUucHJvdG90eXBlLmhhcyA9IG1hcENhY2hlSGFzO1xuICAgIE1hcENhY2hlLnByb3RvdHlwZS5zZXQgPSBtYXBDYWNoZVNldDtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBjYWNoZSBvYmplY3QgdG8gc3RvcmUgdW5pcXVlIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBjYWNoZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBTZXRDYWNoZSh2YWx1ZXMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHZhbHVlcyA9PSBudWxsID8gMCA6IHZhbHVlcy5sZW5ndGg7XG5cbiAgICAgIHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGU7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB0aGlzLmFkZCh2YWx1ZXNbaW5kZXhdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGB2YWx1ZWAgdG8gdGhlIGFycmF5IGNhY2hlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBhZGRcbiAgICAgKiBAbWVtYmVyT2YgU2V0Q2FjaGVcbiAgICAgKiBAYWxpYXMgcHVzaFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNhY2hlLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNhY2hlIGluc3RhbmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNldENhY2hlQWRkKHZhbHVlKSB7XG4gICAgICB0aGlzLl9fZGF0YV9fLnNldCh2YWx1ZSwgSEFTSF9VTkRFRklORUQpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgaW4gdGhlIGFycmF5IGNhY2hlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBoYXNcbiAgICAgKiBAbWVtYmVyT2YgU2V0Q2FjaGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXRDYWNoZUhhcyh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgbWV0aG9kcyB0byBgU2V0Q2FjaGVgLlxuICAgIFNldENhY2hlLnByb3RvdHlwZS5hZGQgPSBTZXRDYWNoZS5wcm90b3R5cGUucHVzaCA9IHNldENhY2hlQWRkO1xuICAgIFNldENhY2hlLnByb3RvdHlwZS5oYXMgPSBzZXRDYWNoZUhhcztcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzdGFjayBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBTdGFjayhlbnRyaWVzKSB7XG4gICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18gPSBuZXcgTGlzdENhY2hlKGVudHJpZXMpO1xuICAgICAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIHN0YWNrLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBjbGVhclxuICAgICAqIEBtZW1iZXJPZiBTdGFja1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0YWNrQ2xlYXIoKSB7XG4gICAgICB0aGlzLl9fZGF0YV9fID0gbmV3IExpc3RDYWNoZTtcbiAgICAgIHRoaXMuc2l6ZSA9IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIHN0YWNrLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBkZWxldGVcbiAgICAgKiBAbWVtYmVyT2YgU3RhY2tcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3RhY2tEZWxldGUoa2V5KSB7XG4gICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXG4gICAgICAgICAgcmVzdWx0ID0gZGF0YVsnZGVsZXRlJ10oa2V5KTtcblxuICAgICAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBzdGFjayB2YWx1ZSBmb3IgYGtleWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGdldFxuICAgICAqIEBtZW1iZXJPZiBTdGFja1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdGFja0dldChrZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9fZGF0YV9fLmdldChrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhIHN0YWNrIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGhhc1xuICAgICAqIEBtZW1iZXJPZiBTdGFja1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdGFja0hhcyhrZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHN0YWNrIGBrZXlgIHRvIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIHNldFxuICAgICAqIEBtZW1iZXJPZiBTdGFja1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBzdGFjayBjYWNoZSBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdGFja1NldChrZXksIHZhbHVlKSB7XG4gICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX187XG4gICAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIExpc3RDYWNoZSkge1xuICAgICAgICB2YXIgcGFpcnMgPSBkYXRhLl9fZGF0YV9fO1xuICAgICAgICBpZiAoIU1hcCB8fCAocGFpcnMubGVuZ3RoIDwgTEFSR0VfQVJSQVlfU0laRSAtIDEpKSB7XG4gICAgICAgICAgcGFpcnMucHVzaChba2V5LCB2YWx1ZV0pO1xuICAgICAgICAgIHRoaXMuc2l6ZSA9ICsrZGF0YS5zaXplO1xuICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIGRhdGEgPSB0aGlzLl9fZGF0YV9fID0gbmV3IE1hcENhY2hlKHBhaXJzKTtcbiAgICAgIH1cbiAgICAgIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gQWRkIG1ldGhvZHMgdG8gYFN0YWNrYC5cbiAgICBTdGFjay5wcm90b3R5cGUuY2xlYXIgPSBzdGFja0NsZWFyO1xuICAgIFN0YWNrLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBzdGFja0RlbGV0ZTtcbiAgICBTdGFjay5wcm90b3R5cGUuZ2V0ID0gc3RhY2tHZXQ7XG4gICAgU3RhY2sucHJvdG90eXBlLmhhcyA9IHN0YWNrSGFzO1xuICAgIFN0YWNrLnByb3RvdHlwZS5zZXQgPSBzdGFja1NldDtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgdGhlIGFycmF5LWxpa2UgYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBpbmhlcml0ZWQgU3BlY2lmeSByZXR1cm5pbmcgaW5oZXJpdGVkIHByb3BlcnR5IG5hbWVzLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlMaWtlS2V5cyh2YWx1ZSwgaW5oZXJpdGVkKSB7XG4gICAgICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKSxcbiAgICAgICAgICBpc0FyZyA9ICFpc0FyciAmJiBpc0FyZ3VtZW50cyh2YWx1ZSksXG4gICAgICAgICAgaXNCdWZmID0gIWlzQXJyICYmICFpc0FyZyAmJiBpc0J1ZmZlcih2YWx1ZSksXG4gICAgICAgICAgaXNUeXBlID0gIWlzQXJyICYmICFpc0FyZyAmJiAhaXNCdWZmICYmIGlzVHlwZWRBcnJheSh2YWx1ZSksXG4gICAgICAgICAgc2tpcEluZGV4ZXMgPSBpc0FyciB8fCBpc0FyZyB8fCBpc0J1ZmYgfHwgaXNUeXBlLFxuICAgICAgICAgIHJlc3VsdCA9IHNraXBJbmRleGVzID8gYmFzZVRpbWVzKHZhbHVlLmxlbmd0aCwgU3RyaW5nKSA6IFtdLFxuICAgICAgICAgIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgICAgICBpZiAoKGluaGVyaXRlZCB8fCBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBrZXkpKSAmJlxuICAgICAgICAgICAgIShza2lwSW5kZXhlcyAmJiAoXG4gICAgICAgICAgICAgICAvLyBTYWZhcmkgOSBoYXMgZW51bWVyYWJsZSBgYXJndW1lbnRzLmxlbmd0aGAgaW4gc3RyaWN0IG1vZGUuXG4gICAgICAgICAgICAgICBrZXkgPT0gJ2xlbmd0aCcgfHxcbiAgICAgICAgICAgICAgIC8vIE5vZGUuanMgMC4xMCBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiBidWZmZXJzLlxuICAgICAgICAgICAgICAgKGlzQnVmZiAmJiAoa2V5ID09ICdvZmZzZXQnIHx8IGtleSA9PSAncGFyZW50JykpIHx8XG4gICAgICAgICAgICAgICAvLyBQaGFudG9tSlMgMiBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiB0eXBlZCBhcnJheXMuXG4gICAgICAgICAgICAgICAoaXNUeXBlICYmIChrZXkgPT0gJ2J1ZmZlcicgfHwga2V5ID09ICdieXRlTGVuZ3RoJyB8fCBrZXkgPT0gJ2J5dGVPZmZzZXQnKSkgfHxcbiAgICAgICAgICAgICAgIC8vIFNraXAgaW5kZXggcHJvcGVydGllcy5cbiAgICAgICAgICAgICAgIGlzSW5kZXgoa2V5LCBsZW5ndGgpXG4gICAgICAgICAgICApKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnNhbXBsZWAgZm9yIGFycmF5cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNhbXBsZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmFuZG9tIGVsZW1lbnQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlTYW1wbGUoYXJyYXkpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYXJyYXlbYmFzZVJhbmRvbSgwLCBsZW5ndGggLSAxKV0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnNhbXBsZVNpemVgIGZvciBhcnJheXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzYW1wbGUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byBzYW1wbGUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSByYW5kb20gZWxlbWVudHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlTYW1wbGVTaXplKGFycmF5LCBuKSB7XG4gICAgICByZXR1cm4gc2h1ZmZsZVNlbGYoY29weUFycmF5KGFycmF5KSwgYmFzZUNsYW1wKG4sIDAsIGFycmF5Lmxlbmd0aCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zaHVmZmxlYCBmb3IgYXJyYXlzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2h1ZmZsZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzaHVmZmxlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheVNodWZmbGUoYXJyYXkpIHtcbiAgICAgIHJldHVybiBzaHVmZmxlU2VsZihjb3B5QXJyYXkoYXJyYXkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGFzc2lnblZhbHVlYCBleGNlcHQgdGhhdCBpdCBkb2Vzbid0IGFzc2lnblxuICAgICAqIGB1bmRlZmluZWRgIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgICAgIGlmICgodmFsdWUgIT09IHVuZGVmaW5lZCAmJiAhZXEob2JqZWN0W2tleV0sIHZhbHVlKSkgfHxcbiAgICAgICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSkge1xuICAgICAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBc3NpZ25zIGB2YWx1ZWAgdG8gYGtleWAgb2YgYG9iamVjdGAgaWYgdGhlIGV4aXN0aW5nIHZhbHVlIGlzIG5vdCBlcXVpdmFsZW50XG4gICAgICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICAgICAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV07XG4gICAgICBpZiAoIShoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBlcShvYmpWYWx1ZSwgdmFsdWUpKSB8fFxuICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBga2V5YCBpcyBmb3VuZCBpbiBgYXJyYXlgIG9mIGtleS12YWx1ZSBwYWlycy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXNzb2NJbmRleE9mKGFycmF5LCBrZXkpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgaWYgKGVxKGFycmF5W2xlbmd0aF1bMF0sIGtleSkpIHtcbiAgICAgICAgICByZXR1cm4gbGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWdncmVnYXRlcyBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAgb24gYGFjY3VtdWxhdG9yYCB3aXRoIGtleXMgdHJhbnNmb3JtZWRcbiAgICAgKiBieSBgaXRlcmF0ZWVgIGFuZCB2YWx1ZXMgc2V0IGJ5IGBzZXR0ZXJgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gc2V0dGVyIFRoZSBmdW5jdGlvbiB0byBzZXQgYGFjY3VtdWxhdG9yYCB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGl0ZXJhdGVlIHRvIHRyYW5zZm9ybSBrZXlzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBhY2N1bXVsYXRvciBUaGUgaW5pdGlhbCBhZ2dyZWdhdGVkIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGFjY3VtdWxhdG9yYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQWdncmVnYXRvcihjb2xsZWN0aW9uLCBzZXR0ZXIsIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xuICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGtleSwgY29sbGVjdGlvbikge1xuICAgICAgICBzZXR0ZXIoYWNjdW11bGF0b3IsIHZhbHVlLCBpdGVyYXRlZSh2YWx1ZSksIGNvbGxlY3Rpb24pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uYXNzaWduYCB3aXRob3V0IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNvdXJjZXNcbiAgICAgKiBvciBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VBc3NpZ24ob2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgIHJldHVybiBvYmplY3QgJiYgY29weU9iamVjdChzb3VyY2UsIGtleXMoc291cmNlKSwgb2JqZWN0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hc3NpZ25JbmAgd2l0aG91dCBzdXBwb3J0IGZvciBtdWx0aXBsZSBzb3VyY2VzXG4gICAgICogb3IgYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQXNzaWduSW4ob2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgIHJldHVybiBvYmplY3QgJiYgY29weU9iamVjdChzb3VyY2UsIGtleXNJbihzb3VyY2UpLCBvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBhc3NpZ25WYWx1ZWAgYW5kIGBhc3NpZ25NZXJnZVZhbHVlYCB3aXRob3V0XG4gICAgICogdmFsdWUgY2hlY2tzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoa2V5ID09ICdfX3Byb3RvX18nICYmIGRlZmluZVByb3BlcnR5KSB7XG4gICAgICAgIGRlZmluZVByb3BlcnR5KG9iamVjdCwga2V5LCB7XG4gICAgICAgICAgJ2NvbmZpZ3VyYWJsZSc6IHRydWUsXG4gICAgICAgICAgJ2VudW1lcmFibGUnOiB0cnVlLFxuICAgICAgICAgICd2YWx1ZSc6IHZhbHVlLFxuICAgICAgICAgICd3cml0YWJsZSc6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmF0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGluZGl2aWR1YWwgcGF0aHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aHMgVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBwaWNrZWQgZWxlbWVudHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUF0KG9iamVjdCwgcGF0aHMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHBhdGhzLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpLFxuICAgICAgICAgIHNraXAgPSBvYmplY3QgPT0gbnVsbDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0W2luZGV4XSA9IHNraXAgPyB1bmRlZmluZWQgOiBnZXQob2JqZWN0LCBwYXRoc1tpbmRleF0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5jbGFtcGAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyIFRoZSBudW1iZXIgdG8gY2xhbXAuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsb3dlcl0gVGhlIGxvd2VyIGJvdW5kLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1cHBlciBUaGUgdXBwZXIgYm91bmQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY2xhbXBlZCBudW1iZXIuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUNsYW1wKG51bWJlciwgbG93ZXIsIHVwcGVyKSB7XG4gICAgICBpZiAobnVtYmVyID09PSBudW1iZXIpIHtcbiAgICAgICAgaWYgKHVwcGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBudW1iZXIgPSBudW1iZXIgPD0gdXBwZXIgPyBudW1iZXIgOiB1cHBlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG51bWJlciA9IG51bWJlciA+PSBsb3dlciA/IG51bWJlciA6IGxvd2VyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVtYmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNsb25lYCBhbmQgYF8uY2xvbmVEZWVwYCB3aGljaCB0cmFja3NcbiAgICAgKiB0cmF2ZXJzZWQgb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLlxuICAgICAqICAxIC0gRGVlcCBjbG9uZVxuICAgICAqICAyIC0gRmxhdHRlbiBpbmhlcml0ZWQgcHJvcGVydGllc1xuICAgICAqICA0IC0gQ2xvbmUgc3ltYm9sc1xuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNsb25pbmcuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtrZXldIFRoZSBrZXkgb2YgYHZhbHVlYC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIHBhcmVudCBvYmplY3Qgb2YgYHZhbHVlYC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIG9iamVjdHMgYW5kIHRoZWlyIGNsb25lIGNvdW50ZXJwYXJ0cy5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgY2xvbmVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VDbG9uZSh2YWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwga2V5LCBvYmplY3QsIHN0YWNrKSB7XG4gICAgICB2YXIgcmVzdWx0LFxuICAgICAgICAgIGlzRGVlcCA9IGJpdG1hc2sgJiBDTE9ORV9ERUVQX0ZMQUcsXG4gICAgICAgICAgaXNGbGF0ID0gYml0bWFzayAmIENMT05FX0ZMQVRfRkxBRyxcbiAgICAgICAgICBpc0Z1bGwgPSBiaXRtYXNrICYgQ0xPTkVfU1lNQk9MU19GTEFHO1xuXG4gICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICByZXN1bHQgPSBvYmplY3QgPyBjdXN0b21pemVyKHZhbHVlLCBrZXksIG9iamVjdCwgc3RhY2spIDogY3VzdG9taXplcih2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpO1xuICAgICAgaWYgKGlzQXJyKSB7XG4gICAgICAgIHJlc3VsdCA9IGluaXRDbG9uZUFycmF5KHZhbHVlKTtcbiAgICAgICAgaWYgKCFpc0RlZXApIHtcbiAgICAgICAgICByZXR1cm4gY29weUFycmF5KHZhbHVlLCByZXN1bHQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgdGFnID0gZ2V0VGFnKHZhbHVlKSxcbiAgICAgICAgICAgIGlzRnVuYyA9IHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWc7XG5cbiAgICAgICAgaWYgKGlzQnVmZmVyKHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBjbG9uZUJ1ZmZlcih2YWx1ZSwgaXNEZWVwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFnID09IG9iamVjdFRhZyB8fCB0YWcgPT0gYXJnc1RhZyB8fCAoaXNGdW5jICYmICFvYmplY3QpKSB7XG4gICAgICAgICAgcmVzdWx0ID0gKGlzRmxhdCB8fCBpc0Z1bmMpID8ge30gOiBpbml0Q2xvbmVPYmplY3QodmFsdWUpO1xuICAgICAgICAgIGlmICghaXNEZWVwKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNGbGF0XG4gICAgICAgICAgICAgID8gY29weVN5bWJvbHNJbih2YWx1ZSwgYmFzZUFzc2lnbkluKHJlc3VsdCwgdmFsdWUpKVxuICAgICAgICAgICAgICA6IGNvcHlTeW1ib2xzKHZhbHVlLCBiYXNlQXNzaWduKHJlc3VsdCwgdmFsdWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFjbG9uZWFibGVUYWdzW3RhZ10pIHtcbiAgICAgICAgICAgIHJldHVybiBvYmplY3QgPyB2YWx1ZSA6IHt9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQgPSBpbml0Q2xvbmVCeVRhZyh2YWx1ZSwgdGFnLCBpc0RlZXApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBDaGVjayBmb3IgY2lyY3VsYXIgcmVmZXJlbmNlcyBhbmQgcmV0dXJuIGl0cyBjb3JyZXNwb25kaW5nIGNsb25lLlxuICAgICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKTtcbiAgICAgIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KHZhbHVlKTtcbiAgICAgIGlmIChzdGFja2VkKSB7XG4gICAgICAgIHJldHVybiBzdGFja2VkO1xuICAgICAgfVxuICAgICAgc3RhY2suc2V0KHZhbHVlLCByZXN1bHQpO1xuXG4gICAgICBpZiAoaXNTZXQodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goZnVuY3Rpb24oc3ViVmFsdWUpIHtcbiAgICAgICAgICByZXN1bHQuYWRkKGJhc2VDbG9uZShzdWJWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3ViVmFsdWUsIHZhbHVlLCBzdGFjaykpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoaXNNYXAodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goZnVuY3Rpb24oc3ViVmFsdWUsIGtleSkge1xuICAgICAgICAgIHJlc3VsdC5zZXQoa2V5LCBiYXNlQ2xvbmUoc3ViVmFsdWUsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGtleSwgdmFsdWUsIHN0YWNrKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB2YXIga2V5c0Z1bmMgPSBpc0Z1bGxcbiAgICAgICAgPyAoaXNGbGF0ID8gZ2V0QWxsS2V5c0luIDogZ2V0QWxsS2V5cylcbiAgICAgICAgOiAoaXNGbGF0ID8ga2V5c0luIDoga2V5cyk7XG5cbiAgICAgIHZhciBwcm9wcyA9IGlzQXJyID8gdW5kZWZpbmVkIDoga2V5c0Z1bmModmFsdWUpO1xuICAgICAgYXJyYXlFYWNoKHByb3BzIHx8IHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgICAgIGlmIChwcm9wcykge1xuICAgICAgICAgIGtleSA9IHN1YlZhbHVlO1xuICAgICAgICAgIHN1YlZhbHVlID0gdmFsdWVba2V5XTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZWN1cnNpdmVseSBwb3B1bGF0ZSBjbG9uZSAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgICAgICBhc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFjaykpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNvbmZvcm1zYCB3aGljaCBkb2Vzbid0IGNsb25lIGBzb3VyY2VgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgcHJlZGljYXRlcyB0byBjb25mb3JtIHRvLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNwZWMgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUNvbmZvcm1zKHNvdXJjZSkge1xuICAgICAgdmFyIHByb3BzID0ga2V5cyhzb3VyY2UpO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICByZXR1cm4gYmFzZUNvbmZvcm1zVG8ob2JqZWN0LCBzb3VyY2UsIHByb3BzKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY29uZm9ybXNUb2Agd2hpY2ggYWNjZXB0cyBgcHJvcHNgIHRvIGNoZWNrLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgcHJlZGljYXRlcyB0byBjb25mb3JtIHRvLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBjb25mb3JtcywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VDb25mb3Jtc1RvKG9iamVjdCwgc291cmNlLCBwcm9wcykge1xuICAgICAgdmFyIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcbiAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gIWxlbmd0aDtcbiAgICAgIH1cbiAgICAgIG9iamVjdCA9IE9iamVjdChvYmplY3QpO1xuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIHZhciBrZXkgPSBwcm9wc1tsZW5ndGhdLFxuICAgICAgICAgICAgcHJlZGljYXRlID0gc291cmNlW2tleV0sXG4gICAgICAgICAgICB2YWx1ZSA9IG9iamVjdFtrZXldO1xuXG4gICAgICAgIGlmICgodmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSB8fCAhcHJlZGljYXRlKHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZGVsYXlgIGFuZCBgXy5kZWZlcmAgd2hpY2ggYWNjZXB0cyBgYXJnc2BcbiAgICAgKiB0byBwcm92aWRlIHRvIGBmdW5jYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZGVsYXkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHdhaXQgVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gZGVsYXkgaW52b2NhdGlvbi5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcmdzIFRoZSBhcmd1bWVudHMgdG8gcHJvdmlkZSB0byBgZnVuY2AuXG4gICAgICogQHJldHVybnMge251bWJlcnxPYmplY3R9IFJldHVybnMgdGhlIHRpbWVyIGlkIG9yIHRpbWVvdXQgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VEZWxheShmdW5jLCB3YWl0LCBhcmdzKSB7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpIHsgZnVuYy5hcHBseSh1bmRlZmluZWQsIGFyZ3MpOyB9LCB3YWl0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2RzIGxpa2UgYF8uZGlmZmVyZW5jZWAgd2l0aG91dCBzdXBwb3J0XG4gICAgICogZm9yIGV4Y2x1ZGluZyBtdWx0aXBsZSBhcnJheXMgb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gZXhjbHVkZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWVdIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRGlmZmVyZW5jZShhcnJheSwgdmFsdWVzLCBpdGVyYXRlZSwgY29tcGFyYXRvcikge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgaW5jbHVkZXMgPSBhcnJheUluY2x1ZGVzLFxuICAgICAgICAgIGlzQ29tbW9uID0gdHJ1ZSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgICAgdmFsdWVzTGVuZ3RoID0gdmFsdWVzLmxlbmd0aDtcblxuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVyYXRlZSkge1xuICAgICAgICB2YWx1ZXMgPSBhcnJheU1hcCh2YWx1ZXMsIGJhc2VVbmFyeShpdGVyYXRlZSkpO1xuICAgICAgfVxuICAgICAgaWYgKGNvbXBhcmF0b3IpIHtcbiAgICAgICAgaW5jbHVkZXMgPSBhcnJheUluY2x1ZGVzV2l0aDtcbiAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHZhbHVlcy5sZW5ndGggPj0gTEFSR0VfQVJSQVlfU0laRSkge1xuICAgICAgICBpbmNsdWRlcyA9IGNhY2hlSGFzO1xuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICB2YWx1ZXMgPSBuZXcgU2V0Q2FjaGUodmFsdWVzKTtcbiAgICAgIH1cbiAgICAgIG91dGVyOlxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZSA9PSBudWxsID8gdmFsdWUgOiBpdGVyYXRlZSh2YWx1ZSk7XG5cbiAgICAgICAgdmFsdWUgPSAoY29tcGFyYXRvciB8fCB2YWx1ZSAhPT0gMCkgPyB2YWx1ZSA6IDA7XG4gICAgICAgIGlmIChpc0NvbW1vbiAmJiBjb21wdXRlZCA9PT0gY29tcHV0ZWQpIHtcbiAgICAgICAgICB2YXIgdmFsdWVzSW5kZXggPSB2YWx1ZXNMZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKHZhbHVlc0luZGV4LS0pIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZXNbdmFsdWVzSW5kZXhdID09PSBjb21wdXRlZCkge1xuICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFpbmNsdWRlcyh2YWx1ZXMsIGNvbXB1dGVkLCBjb21wYXJhdG9yKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JFYWNoYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxuICAgICAqL1xuICAgIHZhciBiYXNlRWFjaCA9IGNyZWF0ZUJhc2VFYWNoKGJhc2VGb3JPd24pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yRWFjaFJpZ2h0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxuICAgICAqL1xuICAgIHZhciBiYXNlRWFjaFJpZ2h0ID0gY3JlYXRlQmFzZUVhY2goYmFzZUZvck93blJpZ2h0LCB0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmV2ZXJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYWxsIGVsZW1lbnRzIHBhc3MgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAgICAgKiAgZWxzZSBgZmFsc2VgXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUV2ZXJ5KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IHRydWU7XG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgcmVzdWx0ID0gISFwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2RzIGxpa2UgYF8ubWF4YCBhbmQgYF8ubWluYCB3aGljaCBhY2NlcHRzIGFcbiAgICAgKiBgY29tcGFyYXRvcmAgdG8gZGV0ZXJtaW5lIHRoZSBleHRyZW11bSB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbXBhcmF0b3IgVGhlIGNvbXBhcmF0b3IgdXNlZCB0byBjb21wYXJlIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZXh0cmVtdW0gdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUV4dHJlbXVtKGFycmF5LCBpdGVyYXRlZSwgY29tcGFyYXRvcikge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgICBjdXJyZW50ID0gaXRlcmF0ZWUodmFsdWUpO1xuXG4gICAgICAgIGlmIChjdXJyZW50ICE9IG51bGwgJiYgKGNvbXB1dGVkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPyAoY3VycmVudCA9PT0gY3VycmVudCAmJiAhaXNTeW1ib2woY3VycmVudCkpXG4gICAgICAgICAgICAgIDogY29tcGFyYXRvcihjdXJyZW50LCBjb21wdXRlZClcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICB2YXIgY29tcHV0ZWQgPSBjdXJyZW50LFxuICAgICAgICAgICAgICByZXN1bHQgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maWxsYCB3aXRob3V0IGFuIGl0ZXJhdGVlIGNhbGwgZ3VhcmQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmaWxsLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGZpbGwgYGFycmF5YCB3aXRoLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IHBvc2l0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZW5kPWFycmF5Lmxlbmd0aF0gVGhlIGVuZCBwb3NpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRmlsbChhcnJheSwgdmFsdWUsIHN0YXJ0LCBlbmQpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgICAgIHN0YXJ0ID0gdG9JbnRlZ2VyKHN0YXJ0KTtcbiAgICAgIGlmIChzdGFydCA8IDApIHtcbiAgICAgICAgc3RhcnQgPSAtc3RhcnQgPiBsZW5ndGggPyAwIDogKGxlbmd0aCArIHN0YXJ0KTtcbiAgICAgIH1cbiAgICAgIGVuZCA9IChlbmQgPT09IHVuZGVmaW5lZCB8fCBlbmQgPiBsZW5ndGgpID8gbGVuZ3RoIDogdG9JbnRlZ2VyKGVuZCk7XG4gICAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgICBlbmQgKz0gbGVuZ3RoO1xuICAgICAgfVxuICAgICAgZW5kID0gc3RhcnQgPiBlbmQgPyAwIDogdG9MZW5ndGgoZW5kKTtcbiAgICAgIHdoaWxlIChzdGFydCA8IGVuZCkge1xuICAgICAgICBhcnJheVtzdGFydCsrXSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZpbHRlcmAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZpbHRlcihjb2xsZWN0aW9uLCBwcmVkaWNhdGUpIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xuICAgICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikpIHtcbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mbGF0dGVuYCB3aXRoIHN1cHBvcnQgZm9yIHJlc3RyaWN0aW5nIGZsYXR0ZW5pbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmbGF0dGVuLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZXB0aCBUaGUgbWF4aW11bSByZWN1cnNpb24gZGVwdGguXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbcHJlZGljYXRlPWlzRmxhdHRlbmFibGVdIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNTdHJpY3RdIFJlc3RyaWN0IHRvIHZhbHVlcyB0aGF0IHBhc3MgYHByZWRpY2F0ZWAgY2hlY2tzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtyZXN1bHQ9W11dIFRoZSBpbml0aWFsIHJlc3VsdCB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZsYXR0ZW4oYXJyYXksIGRlcHRoLCBwcmVkaWNhdGUsIGlzU3RyaWN0LCByZXN1bHQpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgcHJlZGljYXRlIHx8IChwcmVkaWNhdGUgPSBpc0ZsYXR0ZW5hYmxlKTtcbiAgICAgIHJlc3VsdCB8fCAocmVzdWx0ID0gW10pO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICAgIGlmIChkZXB0aCA+IDAgJiYgcHJlZGljYXRlKHZhbHVlKSkge1xuICAgICAgICAgIGlmIChkZXB0aCA+IDEpIHtcbiAgICAgICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGZsYXR0ZW4gYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgICAgICBiYXNlRmxhdHRlbih2YWx1ZSwgZGVwdGggLSAxLCBwcmVkaWNhdGUsIGlzU3RyaWN0LCByZXN1bHQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcnJheVB1c2gocmVzdWx0LCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFpc1N0cmljdCkge1xuICAgICAgICAgIHJlc3VsdFtyZXN1bHQubGVuZ3RoXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBiYXNlRm9yT3duYCB3aGljaCBpdGVyYXRlcyBvdmVyIGBvYmplY3RgXG4gICAgICogcHJvcGVydGllcyByZXR1cm5lZCBieSBga2V5c0Z1bmNgIGFuZCBpbnZva2VzIGBpdGVyYXRlZWAgZm9yIGVhY2ggcHJvcGVydHkuXG4gICAgICogSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0ga2V5c0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUga2V5cyBvZiBgb2JqZWN0YC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIHZhciBiYXNlRm9yID0gY3JlYXRlQmFzZUZvcigpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBiYXNlRm9yYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIHByb3BlcnRpZXNcbiAgICAgKiBpbiB0aGUgb3Bwb3NpdGUgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgdmFyIGJhc2VGb3JSaWdodCA9IGNyZWF0ZUJhc2VGb3IodHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JPd25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZvck93bihvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ICYmIGJhc2VGb3Iob2JqZWN0LCBpdGVyYXRlZSwga2V5cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yT3duUmlnaHRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZvck93blJpZ2h0KG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBvYmplY3QgJiYgYmFzZUZvclJpZ2h0KG9iamVjdCwgaXRlcmF0ZWUsIGtleXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZ1bmN0aW9uc2Agd2hpY2ggY3JlYXRlcyBhbiBhcnJheSBvZlxuICAgICAqIGBvYmplY3RgIGZ1bmN0aW9uIHByb3BlcnR5IG5hbWVzIGZpbHRlcmVkIGZyb20gYHByb3BzYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzIHRvIGZpbHRlci5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGZ1bmN0aW9uIG5hbWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VGdW5jdGlvbnMob2JqZWN0LCBwcm9wcykge1xuICAgICAgcmV0dXJuIGFycmF5RmlsdGVyKHByb3BzLCBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24ob2JqZWN0W2tleV0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZ2V0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZmF1bHQgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUdldChvYmplY3QsIHBhdGgpIHtcbiAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuXG4gICAgICB2YXIgaW5kZXggPSAwLFxuICAgICAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAob2JqZWN0ICE9IG51bGwgJiYgaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgb2JqZWN0ID0gb2JqZWN0W3RvS2V5KHBhdGhbaW5kZXgrK10pXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoaW5kZXggJiYgaW5kZXggPT0gbGVuZ3RoKSA/IG9iamVjdCA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0QWxsS2V5c2AgYW5kIGBnZXRBbGxLZXlzSW5gIHdoaWNoIHVzZXNcbiAgICAgKiBga2V5c0Z1bmNgIGFuZCBgc3ltYm9sc0Z1bmNgIHRvIGdldCB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcbiAgICAgKiBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0ga2V5c0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUga2V5cyBvZiBgb2JqZWN0YC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzeW1ib2xzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgYW5kIHN5bWJvbHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzRnVuYywgc3ltYm9sc0Z1bmMpIHtcbiAgICAgIHZhciByZXN1bHQgPSBrZXlzRnVuYyhvYmplY3QpO1xuICAgICAgcmV0dXJuIGlzQXJyYXkob2JqZWN0KSA/IHJlc3VsdCA6IGFycmF5UHVzaChyZXN1bHQsIHN5bWJvbHNGdW5jKG9iamVjdCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRUYWdgIHdpdGhvdXQgZmFsbGJhY2tzIGZvciBidWdneSBlbnZpcm9ubWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUdldFRhZyh2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWRUYWcgOiBudWxsVGFnO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKVxuICAgICAgICA/IGdldFJhd1RhZyh2YWx1ZSlcbiAgICAgICAgOiBvYmplY3RUb1N0cmluZyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZ3RgIHdoaWNoIGRvZXNuJ3QgY29lcmNlIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGdyZWF0ZXIgdGhhbiBgb3RoZXJgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUd0KHZhbHVlLCBvdGhlcikge1xuICAgICAgcmV0dXJuIHZhbHVlID4gb3RoZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaGFzYCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZXAgcGF0aHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBrZXkgVGhlIGtleSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUhhcyhvYmplY3QsIGtleSkge1xuICAgICAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmhhc0luYCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZXAgcGF0aHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBrZXkgVGhlIGtleSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUhhc0luKG9iamVjdCwga2V5KSB7XG4gICAgICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYga2V5IGluIE9iamVjdChvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmluUmFuZ2VgIHdoaWNoIGRvZXNuJ3QgY29lcmNlIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlciBUaGUgbnVtYmVyIHRvIGNoZWNrLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydCBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgVGhlIGVuZCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBudW1iZXJgIGlzIGluIHRoZSByYW5nZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJblJhbmdlKG51bWJlciwgc3RhcnQsIGVuZCkge1xuICAgICAgcmV0dXJuIG51bWJlciA+PSBuYXRpdmVNaW4oc3RhcnQsIGVuZCkgJiYgbnVtYmVyIDwgbmF0aXZlTWF4KHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5pbnRlcnNlY3Rpb25gLCB3aXRob3V0IHN1cHBvcnRcbiAgICAgKiBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcywgdGhhdCBhY2NlcHRzIGFuIGFycmF5IG9mIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheXMgVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2Ygc2hhcmVkIHZhbHVlcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSW50ZXJzZWN0aW9uKGFycmF5cywgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpIHtcbiAgICAgIHZhciBpbmNsdWRlcyA9IGNvbXBhcmF0b3IgPyBhcnJheUluY2x1ZGVzV2l0aCA6IGFycmF5SW5jbHVkZXMsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXlzWzBdLmxlbmd0aCxcbiAgICAgICAgICBvdGhMZW5ndGggPSBhcnJheXMubGVuZ3RoLFxuICAgICAgICAgIG90aEluZGV4ID0gb3RoTGVuZ3RoLFxuICAgICAgICAgIGNhY2hlcyA9IEFycmF5KG90aExlbmd0aCksXG4gICAgICAgICAgbWF4TGVuZ3RoID0gSW5maW5pdHksXG4gICAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICAgIHdoaWxlIChvdGhJbmRleC0tKSB7XG4gICAgICAgIHZhciBhcnJheSA9IGFycmF5c1tvdGhJbmRleF07XG4gICAgICAgIGlmIChvdGhJbmRleCAmJiBpdGVyYXRlZSkge1xuICAgICAgICAgIGFycmF5ID0gYXJyYXlNYXAoYXJyYXksIGJhc2VVbmFyeShpdGVyYXRlZSkpO1xuICAgICAgICB9XG4gICAgICAgIG1heExlbmd0aCA9IG5hdGl2ZU1pbihhcnJheS5sZW5ndGgsIG1heExlbmd0aCk7XG4gICAgICAgIGNhY2hlc1tvdGhJbmRleF0gPSAhY29tcGFyYXRvciAmJiAoaXRlcmF0ZWUgfHwgKGxlbmd0aCA+PSAxMjAgJiYgYXJyYXkubGVuZ3RoID49IDEyMCkpXG4gICAgICAgICAgPyBuZXcgU2V0Q2FjaGUob3RoSW5kZXggJiYgYXJyYXkpXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBhcnJheSA9IGFycmF5c1swXTtcblxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgc2VlbiA9IGNhY2hlc1swXTtcblxuICAgICAgb3V0ZXI6XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCAmJiByZXN1bHQubGVuZ3RoIDwgbWF4TGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSkgOiB2YWx1ZTtcblxuICAgICAgICB2YWx1ZSA9IChjb21wYXJhdG9yIHx8IHZhbHVlICE9PSAwKSA/IHZhbHVlIDogMDtcbiAgICAgICAgaWYgKCEoc2VlblxuICAgICAgICAgICAgICA/IGNhY2hlSGFzKHNlZW4sIGNvbXB1dGVkKVxuICAgICAgICAgICAgICA6IGluY2x1ZGVzKHJlc3VsdCwgY29tcHV0ZWQsIGNvbXBhcmF0b3IpXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgb3RoSW5kZXggPSBvdGhMZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKC0tb3RoSW5kZXgpIHtcbiAgICAgICAgICAgIHZhciBjYWNoZSA9IGNhY2hlc1tvdGhJbmRleF07XG4gICAgICAgICAgICBpZiAoIShjYWNoZVxuICAgICAgICAgICAgICAgICAgPyBjYWNoZUhhcyhjYWNoZSwgY29tcHV0ZWQpXG4gICAgICAgICAgICAgICAgICA6IGluY2x1ZGVzKGFycmF5c1tvdGhJbmRleF0sIGNvbXB1dGVkLCBjb21wYXJhdG9yKSlcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzZWVuKSB7XG4gICAgICAgICAgICBzZWVuLnB1c2goY29tcHV0ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW52ZXJ0YCBhbmQgYF8uaW52ZXJ0QnlgIHdoaWNoIGludmVydHNcbiAgICAgKiBgb2JqZWN0YCB3aXRoIHZhbHVlcyB0cmFuc2Zvcm1lZCBieSBgaXRlcmF0ZWVgIGFuZCBzZXQgYnkgYHNldHRlcmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gc2V0dGVyIFRoZSBmdW5jdGlvbiB0byBzZXQgYGFjY3VtdWxhdG9yYCB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGl0ZXJhdGVlIHRvIHRyYW5zZm9ybSB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGFjY3VtdWxhdG9yIFRoZSBpbml0aWFsIGludmVydGVkIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGFjY3VtdWxhdG9yYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSW52ZXJ0ZXIob2JqZWN0LCBzZXR0ZXIsIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xuICAgICAgYmFzZUZvck93bihvYmplY3QsIGZ1bmN0aW9uKHZhbHVlLCBrZXksIG9iamVjdCkge1xuICAgICAgICBzZXR0ZXIoYWNjdW11bGF0b3IsIGl0ZXJhdGVlKHZhbHVlKSwga2V5LCBvYmplY3QpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW52b2tlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGluZGl2aWR1YWxcbiAgICAgKiBtZXRob2QgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIG1ldGhvZCB0byBpbnZva2UuXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgYXJndW1lbnRzIHRvIGludm9rZSB0aGUgbWV0aG9kIHdpdGguXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgaW52b2tlZCBtZXRob2QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUludm9rZShvYmplY3QsIHBhdGgsIGFyZ3MpIHtcbiAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuICAgICAgb2JqZWN0ID0gcGFyZW50KG9iamVjdCwgcGF0aCk7XG4gICAgICB2YXIgZnVuYyA9IG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogb2JqZWN0W3RvS2V5KGxhc3QocGF0aCkpXTtcbiAgICAgIHJldHVybiBmdW5jID09IG51bGwgPyB1bmRlZmluZWQgOiBhcHBseShmdW5jLCBvYmplY3QsIGFyZ3MpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzQXJndW1lbnRzYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc0FyZ3VtZW50cyh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0FycmF5QnVmZmVyYCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXkgYnVmZmVyLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzQXJyYXlCdWZmZXIodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IGFycmF5QnVmZmVyVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzRGF0ZWAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZGF0ZSBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNEYXRlKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBkYXRlVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzRXF1YWxgIHdoaWNoIHN1cHBvcnRzIHBhcnRpYWwgY29tcGFyaXNvbnNcbiAgICAgKiBhbmQgdHJhY2tzIHRyYXZlcnNlZCBvYmplY3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLlxuICAgICAqICAxIC0gVW5vcmRlcmVkIGNvbXBhcmlzb25cbiAgICAgKiAgMiAtIFBhcnRpYWwgY29tcGFyaXNvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgYHZhbHVlYCBhbmQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzRXF1YWwodmFsdWUsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaykge1xuICAgICAgaWYgKHZhbHVlID09PSBvdGhlcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IG90aGVyID09IG51bGwgfHwgKCFpc09iamVjdExpa2UodmFsdWUpICYmICFpc09iamVjdExpa2Uob3RoZXIpKSkge1xuICAgICAgICByZXR1cm4gdmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlSXNFcXVhbERlZXAodmFsdWUsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBiYXNlSXNFcXVhbCwgc3RhY2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxgIGZvciBhcnJheXMgYW5kIG9iamVjdHMgd2hpY2ggcGVyZm9ybXNcbiAgICAgKiBkZWVwIGNvbXBhcmlzb25zIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMgZW5hYmxpbmcgb2JqZWN0cyB3aXRoIGNpcmN1bGFyXG4gICAgICogcmVmZXJlbmNlcyB0byBiZSBjb21wYXJlZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBiYXNlSXNFcXVhbGAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZXF1YWxGdW5jIFRoZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1aXZhbGVudHMgb2YgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgYG9iamVjdGAgYW5kIGBvdGhlcmAgb2JqZWN0cy5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG9iamVjdHMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNFcXVhbERlZXAob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaykge1xuICAgICAgdmFyIG9iaklzQXJyID0gaXNBcnJheShvYmplY3QpLFxuICAgICAgICAgIG90aElzQXJyID0gaXNBcnJheShvdGhlciksXG4gICAgICAgICAgb2JqVGFnID0gb2JqSXNBcnIgPyBhcnJheVRhZyA6IGdldFRhZyhvYmplY3QpLFxuICAgICAgICAgIG90aFRhZyA9IG90aElzQXJyID8gYXJyYXlUYWcgOiBnZXRUYWcob3RoZXIpO1xuXG4gICAgICBvYmpUYWcgPSBvYmpUYWcgPT0gYXJnc1RhZyA/IG9iamVjdFRhZyA6IG9ialRhZztcbiAgICAgIG90aFRhZyA9IG90aFRhZyA9PSBhcmdzVGFnID8gb2JqZWN0VGFnIDogb3RoVGFnO1xuXG4gICAgICB2YXIgb2JqSXNPYmogPSBvYmpUYWcgPT0gb2JqZWN0VGFnLFxuICAgICAgICAgIG90aElzT2JqID0gb3RoVGFnID09IG9iamVjdFRhZyxcbiAgICAgICAgICBpc1NhbWVUYWcgPSBvYmpUYWcgPT0gb3RoVGFnO1xuXG4gICAgICBpZiAoaXNTYW1lVGFnICYmIGlzQnVmZmVyKG9iamVjdCkpIHtcbiAgICAgICAgaWYgKCFpc0J1ZmZlcihvdGhlcikpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgb2JqSXNBcnIgPSB0cnVlO1xuICAgICAgICBvYmpJc09iaiA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGlzU2FtZVRhZyAmJiAhb2JqSXNPYmopIHtcbiAgICAgICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKTtcbiAgICAgICAgcmV0dXJuIChvYmpJc0FyciB8fCBpc1R5cGVkQXJyYXkob2JqZWN0KSlcbiAgICAgICAgICA/IGVxdWFsQXJyYXlzKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spXG4gICAgICAgICAgOiBlcXVhbEJ5VGFnKG9iamVjdCwgb3RoZXIsIG9ialRhZywgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjayk7XG4gICAgICB9XG4gICAgICBpZiAoIShiaXRtYXNrICYgQ09NUEFSRV9QQVJUSUFMX0ZMQUcpKSB7XG4gICAgICAgIHZhciBvYmpJc1dyYXBwZWQgPSBvYmpJc09iaiAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgJ19fd3JhcHBlZF9fJyksXG4gICAgICAgICAgICBvdGhJc1dyYXBwZWQgPSBvdGhJc09iaiAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG90aGVyLCAnX193cmFwcGVkX18nKTtcblxuICAgICAgICBpZiAob2JqSXNXcmFwcGVkIHx8IG90aElzV3JhcHBlZCkge1xuICAgICAgICAgIHZhciBvYmpVbndyYXBwZWQgPSBvYmpJc1dyYXBwZWQgPyBvYmplY3QudmFsdWUoKSA6IG9iamVjdCxcbiAgICAgICAgICAgICAgb3RoVW53cmFwcGVkID0gb3RoSXNXcmFwcGVkID8gb3RoZXIudmFsdWUoKSA6IG90aGVyO1xuXG4gICAgICAgICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKTtcbiAgICAgICAgICByZXR1cm4gZXF1YWxGdW5jKG9ialVud3JhcHBlZCwgb3RoVW53cmFwcGVkLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghaXNTYW1lVGFnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gICAgICByZXR1cm4gZXF1YWxPYmplY3RzKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTWFwYCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBtYXAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNNYXAodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gbWFwVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTWF0Y2hgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBtYXRjaERhdGEgVGhlIHByb3BlcnR5IG5hbWVzLCB2YWx1ZXMsIGFuZCBjb21wYXJlIGZsYWdzIHRvIG1hdGNoLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBpcyBhIG1hdGNoLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzTWF0Y2gob2JqZWN0LCBzb3VyY2UsIG1hdGNoRGF0YSwgY3VzdG9taXplcikge1xuICAgICAgdmFyIGluZGV4ID0gbWF0Y2hEYXRhLmxlbmd0aCxcbiAgICAgICAgICBsZW5ndGggPSBpbmRleCxcbiAgICAgICAgICBub0N1c3RvbWl6ZXIgPSAhY3VzdG9taXplcjtcblxuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAhbGVuZ3RoO1xuICAgICAgfVxuICAgICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICB2YXIgZGF0YSA9IG1hdGNoRGF0YVtpbmRleF07XG4gICAgICAgIGlmICgobm9DdXN0b21pemVyICYmIGRhdGFbMl0pXG4gICAgICAgICAgICAgID8gZGF0YVsxXSAhPT0gb2JqZWN0W2RhdGFbMF1dXG4gICAgICAgICAgICAgIDogIShkYXRhWzBdIGluIG9iamVjdClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgZGF0YSA9IG1hdGNoRGF0YVtpbmRleF07XG4gICAgICAgIHZhciBrZXkgPSBkYXRhWzBdLFxuICAgICAgICAgICAgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgICAgIHNyY1ZhbHVlID0gZGF0YVsxXTtcblxuICAgICAgICBpZiAobm9DdXN0b21pemVyICYmIGRhdGFbMl0pIHtcbiAgICAgICAgICBpZiAob2JqVmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBzdGFjayA9IG5ldyBTdGFjaztcbiAgICAgICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlLCBzdGFjayk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghKHJlc3VsdCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyBiYXNlSXNFcXVhbChzcmNWYWx1ZSwgb2JqVmFsdWUsIENPTVBBUkVfUEFSVElBTF9GTEFHIHwgQ09NUEFSRV9VTk9SREVSRURfRkxBRywgY3VzdG9taXplciwgc3RhY2spXG4gICAgICAgICAgICAgICAgOiByZXN1bHRcbiAgICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNOYXRpdmVgIHdpdGhvdXQgYmFkIHNoaW0gY2hlY2tzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICAgICAgaWYgKCFpc09iamVjdCh2YWx1ZSkgfHwgaXNNYXNrZWQodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBwYXR0ZXJuID0gaXNGdW5jdGlvbih2YWx1ZSkgPyByZUlzTmF0aXZlIDogcmVJc0hvc3RDdG9yO1xuICAgICAgcmV0dXJuIHBhdHRlcm4udGVzdCh0b1NvdXJjZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzUmVnRXhwYCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSByZWdleHAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNSZWdFeHAodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHJlZ2V4cFRhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1NldGAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc2V0LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzU2V0KHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBnZXRUYWcodmFsdWUpID09IHNldFRhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1R5cGVkQXJyYXlgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHR5cGVkIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiZcbiAgICAgICAgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhIXR5cGVkQXJyYXlUYWdzW2Jhc2VHZXRUYWcodmFsdWUpXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pdGVyYXRlZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gW3ZhbHVlPV8uaWRlbnRpdHldIFRoZSB2YWx1ZSB0byBjb252ZXJ0IHRvIGFuIGl0ZXJhdGVlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgaXRlcmF0ZWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUl0ZXJhdGVlKHZhbHVlKSB7XG4gICAgICAvLyBEb24ndCBzdG9yZSB0aGUgYHR5cGVvZmAgcmVzdWx0IGluIGEgdmFyaWFibGUgdG8gYXZvaWQgYSBKSVQgYnVnIGluIFNhZmFyaSA5LlxuICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYwMzQgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gaWRlbnRpdHk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBpc0FycmF5KHZhbHVlKVxuICAgICAgICAgID8gYmFzZU1hdGNoZXNQcm9wZXJ0eSh2YWx1ZVswXSwgdmFsdWVbMV0pXG4gICAgICAgICAgOiBiYXNlTWF0Y2hlcyh2YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmtleXNgIHdoaWNoIGRvZXNuJ3QgdHJlYXQgc3BhcnNlIGFycmF5cyBhcyBkZW5zZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUtleXMob2JqZWN0KSB7XG4gICAgICBpZiAoIWlzUHJvdG90eXBlKG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIG5hdGl2ZUtleXMob2JqZWN0KTtcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYga2V5ICE9ICdjb25zdHJ1Y3RvcicpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmtleXNJbmAgd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlS2V5c0luKG9iamVjdCkge1xuICAgICAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgICAgIHJldHVybiBuYXRpdmVLZXlzSW4ob2JqZWN0KTtcbiAgICAgIH1cbiAgICAgIHZhciBpc1Byb3RvID0gaXNQcm90b3R5cGUob2JqZWN0KSxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgICAgICBpZiAoIShrZXkgPT0gJ2NvbnN0cnVjdG9yJyAmJiAoaXNQcm90byB8fCAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubHRgIHdoaWNoIGRvZXNuJ3QgY29lcmNlIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGxlc3MgdGhhbiBgb3RoZXJgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUx0KHZhbHVlLCBvdGhlcikge1xuICAgICAgcmV0dXJuIHZhbHVlIDwgb3RoZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWFwYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICByZXN1bHQgPSBpc0FycmF5TGlrZShjb2xsZWN0aW9uKSA/IEFycmF5KGNvbGxlY3Rpb24ubGVuZ3RoKSA6IFtdO1xuXG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIHJlc3VsdFsrK2luZGV4XSA9IGl0ZXJhdGVlKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1hdGNoZXNgIHdoaWNoIGRvZXNuJ3QgY2xvbmUgYHNvdXJjZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgdG8gbWF0Y2guXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc3BlYyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWF0Y2hlcyhzb3VyY2UpIHtcbiAgICAgIHZhciBtYXRjaERhdGEgPSBnZXRNYXRjaERhdGEoc291cmNlKTtcbiAgICAgIGlmIChtYXRjaERhdGEubGVuZ3RoID09IDEgJiYgbWF0Y2hEYXRhWzBdWzJdKSB7XG4gICAgICAgIHJldHVybiBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZShtYXRjaERhdGFbMF1bMF0sIG1hdGNoRGF0YVswXVsxXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3QgPT09IHNvdXJjZSB8fCBiYXNlSXNNYXRjaChvYmplY3QsIHNvdXJjZSwgbWF0Y2hEYXRhKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc1Byb3BlcnR5YCB3aGljaCBkb2Vzbid0IGNsb25lIGBzcmNWYWx1ZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAgICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgdmFsdWUgdG8gbWF0Y2guXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc3BlYyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWF0Y2hlc1Byb3BlcnR5KHBhdGgsIHNyY1ZhbHVlKSB7XG4gICAgICBpZiAoaXNLZXkocGF0aCkgJiYgaXNTdHJpY3RDb21wYXJhYmxlKHNyY1ZhbHVlKSkge1xuICAgICAgICByZXR1cm4gbWF0Y2hlc1N0cmljdENvbXBhcmFibGUodG9LZXkocGF0aCksIHNyY1ZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgdmFyIG9ialZhbHVlID0gZ2V0KG9iamVjdCwgcGF0aCk7XG4gICAgICAgIHJldHVybiAob2JqVmFsdWUgPT09IHVuZGVmaW5lZCAmJiBvYmpWYWx1ZSA9PT0gc3JjVmFsdWUpXG4gICAgICAgICAgPyBoYXNJbihvYmplY3QsIHBhdGgpXG4gICAgICAgICAgOiBiYXNlSXNFcXVhbChzcmNWYWx1ZSwgb2JqVmFsdWUsIENPTVBBUkVfUEFSVElBTF9GTEFHIHwgQ09NUEFSRV9VTk9SREVSRURfRkxBRyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1lcmdlYCB3aXRob3V0IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNvdXJjZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzcmNJbmRleCBUaGUgaW5kZXggb2YgYHNvdXJjZWAuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgbWVyZ2VkIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSB2YWx1ZXMgYW5kIHRoZWlyIG1lcmdlZFxuICAgICAqICBjb3VudGVycGFydHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZU1lcmdlKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplciwgc3RhY2spIHtcbiAgICAgIGlmIChvYmplY3QgPT09IHNvdXJjZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBiYXNlRm9yKHNvdXJjZSwgZnVuY3Rpb24oc3JjVmFsdWUsIGtleSkge1xuICAgICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICAgICAgICBpZiAoaXNPYmplY3Qoc3JjVmFsdWUpKSB7XG4gICAgICAgICAgYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgYmFzZU1lcmdlLCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxuICAgICAgICAgICAgPyBjdXN0b21pemVyKHNhZmVHZXQob2JqZWN0LCBrZXkpLCBzcmNWYWx1ZSwgKGtleSArICcnKSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSBzcmNWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9LCBrZXlzSW4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZU1lcmdlYCBmb3IgYXJyYXlzIGFuZCBvYmplY3RzIHdoaWNoIHBlcmZvcm1zXG4gICAgICogZGVlcCBtZXJnZXMgYW5kIHRyYWNrcyB0cmF2ZXJzZWQgb2JqZWN0cyBlbmFibGluZyBvYmplY3RzIHdpdGggY2lyY3VsYXJcbiAgICAgKiByZWZlcmVuY2VzIHRvIGJlIG1lcmdlZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBtZXJnZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3JjSW5kZXggVGhlIGluZGV4IG9mIGBzb3VyY2VgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IG1lcmdlRnVuYyBUaGUgZnVuY3Rpb24gdG8gbWVyZ2UgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSB2YWx1ZXMgYW5kIHRoZWlyIG1lcmdlZFxuICAgICAqICBjb3VudGVycGFydHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgbWVyZ2VGdW5jLCBjdXN0b21pemVyLCBzdGFjaykge1xuICAgICAgdmFyIG9ialZhbHVlID0gc2FmZUdldChvYmplY3QsIGtleSksXG4gICAgICAgICAgc3JjVmFsdWUgPSBzYWZlR2V0KHNvdXJjZSwga2V5KSxcbiAgICAgICAgICBzdGFja2VkID0gc3RhY2suZ2V0KHNyY1ZhbHVlKTtcblxuICAgICAgaWYgKHN0YWNrZWQpIHtcbiAgICAgICAgYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgc3RhY2tlZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXJcbiAgICAgICAgPyBjdXN0b21pemVyKG9ialZhbHVlLCBzcmNWYWx1ZSwgKGtleSArICcnKSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgdmFyIGlzQ29tbW9uID0gbmV3VmFsdWUgPT09IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKGlzQ29tbW9uKSB7XG4gICAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkoc3JjVmFsdWUpLFxuICAgICAgICAgICAgaXNCdWZmID0gIWlzQXJyICYmIGlzQnVmZmVyKHNyY1ZhbHVlKSxcbiAgICAgICAgICAgIGlzVHlwZWQgPSAhaXNBcnIgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkoc3JjVmFsdWUpO1xuXG4gICAgICAgIG5ld1ZhbHVlID0gc3JjVmFsdWU7XG4gICAgICAgIGlmIChpc0FyciB8fCBpc0J1ZmYgfHwgaXNUeXBlZCkge1xuICAgICAgICAgIGlmIChpc0FycmF5KG9ialZhbHVlKSkge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSBvYmpWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSBpZiAoaXNBcnJheUxpa2VPYmplY3Qob2JqVmFsdWUpKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IGNvcHlBcnJheShvYmpWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2UgaWYgKGlzQnVmZikge1xuICAgICAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gY2xvbmVCdWZmZXIoc3JjVmFsdWUsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIGlmIChpc1R5cGVkKSB7XG4gICAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICAgICAgbmV3VmFsdWUgPSBjbG9uZVR5cGVkQXJyYXkoc3JjVmFsdWUsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gW107XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzUGxhaW5PYmplY3Qoc3JjVmFsdWUpIHx8IGlzQXJndW1lbnRzKHNyY1ZhbHVlKSkge1xuICAgICAgICAgIG5ld1ZhbHVlID0gb2JqVmFsdWU7XG4gICAgICAgICAgaWYgKGlzQXJndW1lbnRzKG9ialZhbHVlKSkge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSB0b1BsYWluT2JqZWN0KG9ialZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSBpZiAoIWlzT2JqZWN0KG9ialZhbHVlKSB8fCBpc0Z1bmN0aW9uKG9ialZhbHVlKSkge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSBpbml0Q2xvbmVPYmplY3Qoc3JjVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXNDb21tb24pIHtcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgbWVyZ2Ugb2JqZWN0cyBhbmQgYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgIHN0YWNrLnNldChzcmNWYWx1ZSwgbmV3VmFsdWUpO1xuICAgICAgICBtZXJnZUZ1bmMobmV3VmFsdWUsIHNyY1ZhbHVlLCBzcmNJbmRleCwgY3VzdG9taXplciwgc3RhY2spO1xuICAgICAgICBzdGFja1snZGVsZXRlJ10oc3JjVmFsdWUpO1xuICAgICAgfVxuICAgICAgYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm50aGAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIGluZGV4IG9mIHRoZSBlbGVtZW50IHRvIHJldHVybi5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbnRoIGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTnRoKGFycmF5LCBuKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbiArPSBuIDwgMCA/IGxlbmd0aCA6IDA7XG4gICAgICByZXR1cm4gaXNJbmRleChuLCBsZW5ndGgpID8gYXJyYXlbbl0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ub3JkZXJCeWAgd2l0aG91dCBwYXJhbSBndWFyZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9uW118T2JqZWN0W118c3RyaW5nW119IGl0ZXJhdGVlcyBUaGUgaXRlcmF0ZWVzIHRvIHNvcnQgYnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gb3JkZXJzIFRoZSBzb3J0IG9yZGVycyBvZiBgaXRlcmF0ZWVzYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzb3J0ZWQgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZU9yZGVyQnkoY29sbGVjdGlvbiwgaXRlcmF0ZWVzLCBvcmRlcnMpIHtcbiAgICAgIGlmIChpdGVyYXRlZXMubGVuZ3RoKSB7XG4gICAgICAgIGl0ZXJhdGVlcyA9IGFycmF5TWFwKGl0ZXJhdGVlcywgZnVuY3Rpb24oaXRlcmF0ZWUpIHtcbiAgICAgICAgICBpZiAoaXNBcnJheShpdGVyYXRlZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgICAgICByZXR1cm4gYmFzZUdldCh2YWx1ZSwgaXRlcmF0ZWUubGVuZ3RoID09PSAxID8gaXRlcmF0ZWVbMF0gOiBpdGVyYXRlZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpdGVyYXRlZTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVyYXRlZXMgPSBbaWRlbnRpdHldO1xuICAgICAgfVxuXG4gICAgICB2YXIgaW5kZXggPSAtMTtcbiAgICAgIGl0ZXJhdGVlcyA9IGFycmF5TWFwKGl0ZXJhdGVlcywgYmFzZVVuYXJ5KGdldEl0ZXJhdGVlKCkpKTtcblxuICAgICAgdmFyIHJlc3VsdCA9IGJhc2VNYXAoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGtleSwgY29sbGVjdGlvbikge1xuICAgICAgICB2YXIgY3JpdGVyaWEgPSBhcnJheU1hcChpdGVyYXRlZXMsIGZ1bmN0aW9uKGl0ZXJhdGVlKSB7XG4gICAgICAgICAgcmV0dXJuIGl0ZXJhdGVlKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7ICdjcml0ZXJpYSc6IGNyaXRlcmlhLCAnaW5kZXgnOiArK2luZGV4LCAndmFsdWUnOiB2YWx1ZSB9O1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBiYXNlU29ydEJ5KHJlc3VsdCwgZnVuY3Rpb24ob2JqZWN0LCBvdGhlcikge1xuICAgICAgICByZXR1cm4gY29tcGFyZU11bHRpcGxlKG9iamVjdCwgb3RoZXIsIG9yZGVycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5waWNrYCB3aXRob3V0IHN1cHBvcnQgZm9yIGluZGl2aWR1YWxcbiAgICAgKiBwcm9wZXJ0eSBpZGVudGlmaWVycy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRocyBUaGUgcHJvcGVydHkgcGF0aHMgdG8gcGljay5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VQaWNrKG9iamVjdCwgcGF0aHMpIHtcbiAgICAgIHJldHVybiBiYXNlUGlja0J5KG9iamVjdCwgcGF0aHMsIGZ1bmN0aW9uKHZhbHVlLCBwYXRoKSB7XG4gICAgICAgIHJldHVybiBoYXNJbihvYmplY3QsIHBhdGgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgIGBfLnBpY2tCeWAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nW119IHBhdGhzIFRoZSBwcm9wZXJ0eSBwYXRocyB0byBwaWNrLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgcHJvcGVydHkuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUGlja0J5KG9iamVjdCwgcGF0aHMsIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcGF0aHMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IHt9O1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgcGF0aCA9IHBhdGhzW2luZGV4XSxcbiAgICAgICAgICAgIHZhbHVlID0gYmFzZUdldChvYmplY3QsIHBhdGgpO1xuXG4gICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIHBhdGgpKSB7XG4gICAgICAgICAgYmFzZVNldChyZXN1bHQsIGNhc3RQYXRoKHBhdGgsIG9iamVjdCksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VQcm9wZXJ0eWAgd2hpY2ggc3VwcG9ydHMgZGVlcCBwYXRocy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUHJvcGVydHlEZWVwKHBhdGgpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VHZXQob2JqZWN0LCBwYXRoKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHVsbEFsbEJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlXG4gICAgICogc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byByZW1vdmUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUHVsbEFsbChhcnJheSwgdmFsdWVzLCBpdGVyYXRlZSwgY29tcGFyYXRvcikge1xuICAgICAgdmFyIGluZGV4T2YgPSBjb21wYXJhdG9yID8gYmFzZUluZGV4T2ZXaXRoIDogYmFzZUluZGV4T2YsXG4gICAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSB2YWx1ZXMubGVuZ3RoLFxuICAgICAgICAgIHNlZW4gPSBhcnJheTtcblxuICAgICAgaWYgKGFycmF5ID09PSB2YWx1ZXMpIHtcbiAgICAgICAgdmFsdWVzID0gY29weUFycmF5KHZhbHVlcyk7XG4gICAgICB9XG4gICAgICBpZiAoaXRlcmF0ZWUpIHtcbiAgICAgICAgc2VlbiA9IGFycmF5TWFwKGFycmF5LCBiYXNlVW5hcnkoaXRlcmF0ZWUpKTtcbiAgICAgIH1cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBmcm9tSW5kZXggPSAwLFxuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZXNbaW5kZXhdLFxuICAgICAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZSA/IGl0ZXJhdGVlKHZhbHVlKSA6IHZhbHVlO1xuXG4gICAgICAgIHdoaWxlICgoZnJvbUluZGV4ID0gaW5kZXhPZihzZWVuLCBjb21wdXRlZCwgZnJvbUluZGV4LCBjb21wYXJhdG9yKSkgPiAtMSkge1xuICAgICAgICAgIGlmIChzZWVuICE9PSBhcnJheSkge1xuICAgICAgICAgICAgc3BsaWNlLmNhbGwoc2VlbiwgZnJvbUluZGV4LCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3BsaWNlLmNhbGwoYXJyYXksIGZyb21JbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5wdWxsQXRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaW5kaXZpZHVhbFxuICAgICAqIGluZGV4ZXMgb3IgY2FwdHVyaW5nIHRoZSByZW1vdmVkIGVsZW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyW119IGluZGV4ZXMgVGhlIGluZGV4ZXMgb2YgZWxlbWVudHMgdG8gcmVtb3ZlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VQdWxsQXQoYXJyYXksIGluZGV4ZXMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA/IGluZGV4ZXMubGVuZ3RoIDogMCxcbiAgICAgICAgICBsYXN0SW5kZXggPSBsZW5ndGggLSAxO1xuXG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgdmFyIGluZGV4ID0gaW5kZXhlc1tsZW5ndGhdO1xuICAgICAgICBpZiAobGVuZ3RoID09IGxhc3RJbmRleCB8fCBpbmRleCAhPT0gcHJldmlvdXMpIHtcbiAgICAgICAgICB2YXIgcHJldmlvdXMgPSBpbmRleDtcbiAgICAgICAgICBpZiAoaXNJbmRleChpbmRleCkpIHtcbiAgICAgICAgICAgIHNwbGljZS5jYWxsKGFycmF5LCBpbmRleCwgMSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJhc2VVbnNldChhcnJheSwgaW5kZXgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJhbmRvbWAgd2l0aG91dCBzdXBwb3J0IGZvciByZXR1cm5pbmdcbiAgICAgKiBmbG9hdGluZy1wb2ludCBudW1iZXJzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbG93ZXIgVGhlIGxvd2VyIGJvdW5kLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1cHBlciBUaGUgdXBwZXIgYm91bmQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgcmFuZG9tIG51bWJlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUmFuZG9tKGxvd2VyLCB1cHBlcikge1xuICAgICAgcmV0dXJuIGxvd2VyICsgbmF0aXZlRmxvb3IobmF0aXZlUmFuZG9tKCkgKiAodXBwZXIgLSBsb3dlciArIDEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yYW5nZWAgYW5kIGBfLnJhbmdlUmlnaHRgIHdoaWNoIGRvZXNuJ3RcbiAgICAgKiBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kIFRoZSBlbmQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGVwIFRoZSB2YWx1ZSB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IGJ5LlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcmFuZ2Ugb2YgbnVtYmVycy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUmFuZ2Uoc3RhcnQsIGVuZCwgc3RlcCwgZnJvbVJpZ2h0KSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBuYXRpdmVNYXgobmF0aXZlQ2VpbCgoZW5kIC0gc3RhcnQpIC8gKHN0ZXAgfHwgMSkpLCAwKSxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgcmVzdWx0W2Zyb21SaWdodCA/IGxlbmd0aCA6ICsraW5kZXhdID0gc3RhcnQ7XG4gICAgICAgIHN0YXJ0ICs9IHN0ZXA7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJlcGVhdGAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gcmVwZWF0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gcmVwZWF0IHRoZSBzdHJpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmVwZWF0ZWQgc3RyaW5nLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VSZXBlYXQoc3RyaW5nLCBuKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gJyc7XG4gICAgICBpZiAoIXN0cmluZyB8fCBuIDwgMSB8fCBuID4gTUFYX1NBRkVfSU5URUdFUikge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgLy8gTGV2ZXJhZ2UgdGhlIGV4cG9uZW50aWF0aW9uIGJ5IHNxdWFyaW5nIGFsZ29yaXRobSBmb3IgYSBmYXN0ZXIgcmVwZWF0LlxuICAgICAgLy8gU2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0V4cG9uZW50aWF0aW9uX2J5X3NxdWFyaW5nIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICBkbyB7XG4gICAgICAgIGlmIChuICUgMikge1xuICAgICAgICAgIHJlc3VsdCArPSBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgbiA9IG5hdGl2ZUZsb29yKG4gLyAyKTtcbiAgICAgICAgaWYgKG4pIHtcbiAgICAgICAgICBzdHJpbmcgKz0gc3RyaW5nO1xuICAgICAgICB9XG4gICAgICB9IHdoaWxlIChuKTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yZXN0YCB3aGljaCBkb2Vzbid0IHZhbGlkYXRlIG9yIGNvZXJjZSBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD1mdW5jLmxlbmd0aC0xXSBUaGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIHJlc3QgcGFyYW1ldGVyLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VSZXN0KGZ1bmMsIHN0YXJ0KSB7XG4gICAgICByZXR1cm4gc2V0VG9TdHJpbmcob3ZlclJlc3QoZnVuYywgc3RhcnQsIGlkZW50aXR5KSwgZnVuYyArICcnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zYW1wbGVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzYW1wbGUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJhbmRvbSBlbGVtZW50LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTYW1wbGUoY29sbGVjdGlvbikge1xuICAgICAgcmV0dXJuIGFycmF5U2FtcGxlKHZhbHVlcyhjb2xsZWN0aW9uKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc2FtcGxlU2l6ZWAgd2l0aG91dCBwYXJhbSBndWFyZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIHNhbXBsZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNhbXBsZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHJhbmRvbSBlbGVtZW50cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU2FtcGxlU2l6ZShjb2xsZWN0aW9uLCBuKSB7XG4gICAgICB2YXIgYXJyYXkgPSB2YWx1ZXMoY29sbGVjdGlvbik7XG4gICAgICByZXR1cm4gc2h1ZmZsZVNlbGYoYXJyYXksIGJhc2VDbGFtcChuLCAwLCBhcnJheS5sZW5ndGgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zZXRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXQuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIHBhdGggY3JlYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU2V0KG9iamVjdCwgcGF0aCwgdmFsdWUsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgfVxuICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoLFxuICAgICAgICAgIGxhc3RJbmRleCA9IGxlbmd0aCAtIDEsXG4gICAgICAgICAgbmVzdGVkID0gb2JqZWN0O1xuXG4gICAgICB3aGlsZSAobmVzdGVkICE9IG51bGwgJiYgKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gdG9LZXkocGF0aFtpbmRleF0pLFxuICAgICAgICAgICAgbmV3VmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICBpZiAoa2V5ID09PSAnX19wcm90b19fJyB8fCBrZXkgPT09ICdjb25zdHJ1Y3RvcicgfHwga2V5ID09PSAncHJvdG90eXBlJykge1xuICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW5kZXggIT0gbGFzdEluZGV4KSB7XG4gICAgICAgICAgdmFyIG9ialZhbHVlID0gbmVzdGVkW2tleV07XG4gICAgICAgICAgbmV3VmFsdWUgPSBjdXN0b21pemVyID8gY3VzdG9taXplcihvYmpWYWx1ZSwga2V5LCBuZXN0ZWQpIDogdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IGlzT2JqZWN0KG9ialZhbHVlKVxuICAgICAgICAgICAgICA/IG9ialZhbHVlXG4gICAgICAgICAgICAgIDogKGlzSW5kZXgocGF0aFtpbmRleCArIDFdKSA/IFtdIDoge30pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhc3NpZ25WYWx1ZShuZXN0ZWQsIGtleSwgbmV3VmFsdWUpO1xuICAgICAgICBuZXN0ZWQgPSBuZXN0ZWRba2V5XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHNldERhdGFgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaG90IGxvb3Agc2hvcnRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFzc29jaWF0ZSBtZXRhZGF0YSB3aXRoLlxuICAgICAqIEBwYXJhbSB7Kn0gZGF0YSBUaGUgbWV0YWRhdGEuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAgICAgKi9cbiAgICB2YXIgYmFzZVNldERhdGEgPSAhbWV0YU1hcCA/IGlkZW50aXR5IDogZnVuY3Rpb24oZnVuYywgZGF0YSkge1xuICAgICAgbWV0YU1hcC5zZXQoZnVuYywgZGF0YSk7XG4gICAgICByZXR1cm4gZnVuYztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHNldFRvU3RyaW5nYCB3aXRob3V0IHN1cHBvcnQgZm9yIGhvdCBsb29wIHNob3J0aW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICAgICAqL1xuICAgIHZhciBiYXNlU2V0VG9TdHJpbmcgPSAhZGVmaW5lUHJvcGVydHkgPyBpZGVudGl0eSA6IGZ1bmN0aW9uKGZ1bmMsIHN0cmluZykge1xuICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5KGZ1bmMsICd0b1N0cmluZycsIHtcbiAgICAgICAgJ2NvbmZpZ3VyYWJsZSc6IHRydWUsXG4gICAgICAgICdlbnVtZXJhYmxlJzogZmFsc2UsXG4gICAgICAgICd2YWx1ZSc6IGNvbnN0YW50KHN0cmluZyksXG4gICAgICAgICd3cml0YWJsZSc6IHRydWVcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zaHVmZmxlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2h1ZmZsZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzaHVmZmxlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU2h1ZmZsZShjb2xsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gc2h1ZmZsZVNlbGYodmFsdWVzKGNvbGxlY3Rpb24pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zbGljZWAgd2l0aG91dCBhbiBpdGVyYXRlZSBjYWxsIGd1YXJkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2xpY2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmQ9YXJyYXkubGVuZ3RoXSBUaGUgZW5kIHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgaWYgKHN0YXJ0IDwgMCkge1xuICAgICAgICBzdGFydCA9IC1zdGFydCA+IGxlbmd0aCA/IDAgOiAobGVuZ3RoICsgc3RhcnQpO1xuICAgICAgfVxuICAgICAgZW5kID0gZW5kID4gbGVuZ3RoID8gbGVuZ3RoIDogZW5kO1xuICAgICAgaWYgKGVuZCA8IDApIHtcbiAgICAgICAgZW5kICs9IGxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGxlbmd0aCA9IHN0YXJ0ID4gZW5kID8gMCA6ICgoZW5kIC0gc3RhcnQpID4+PiAwKTtcbiAgICAgIHN0YXJ0ID4+Pj0gMDtcblxuICAgICAgdmFyIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICByZXN1bHRbaW5kZXhdID0gYXJyYXlbaW5kZXggKyBzdGFydF07XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvbWVgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbnkgZWxlbWVudCBwYXNzZXMgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTb21lKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIHJlc3VsdDtcblxuICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIHJlc3VsdCA9IHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pO1xuICAgICAgICByZXR1cm4gIXJlc3VsdDtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuICEhcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvcnRlZEluZGV4YCBhbmQgYF8uc29ydGVkTGFzdEluZGV4YCB3aGljaFxuICAgICAqIHBlcmZvcm1zIGEgYmluYXJ5IHNlYXJjaCBvZiBgYXJyYXlgIHRvIGRldGVybWluZSB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYFxuICAgICAqIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIGBhcnJheWAgaW4gb3JkZXIgdG8gbWFpbnRhaW4gaXRzIHNvcnQgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXRIaWdoZXN0XSBTcGVjaWZ5IHJldHVybmluZyB0aGUgaGlnaGVzdCBxdWFsaWZpZWQgaW5kZXguXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgKiAgaW50byBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTb3J0ZWRJbmRleChhcnJheSwgdmFsdWUsIHJldEhpZ2hlc3QpIHtcbiAgICAgIHZhciBsb3cgPSAwLFxuICAgICAgICAgIGhpZ2ggPSBhcnJheSA9PSBudWxsID8gbG93IDogYXJyYXkubGVuZ3RoO1xuXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmIHZhbHVlID09PSB2YWx1ZSAmJiBoaWdoIDw9IEhBTEZfTUFYX0FSUkFZX0xFTkdUSCkge1xuICAgICAgICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgICAgICAgIHZhciBtaWQgPSAobG93ICsgaGlnaCkgPj4+IDEsXG4gICAgICAgICAgICAgIGNvbXB1dGVkID0gYXJyYXlbbWlkXTtcblxuICAgICAgICAgIGlmIChjb21wdXRlZCAhPT0gbnVsbCAmJiAhaXNTeW1ib2woY29tcHV0ZWQpICYmXG4gICAgICAgICAgICAgIChyZXRIaWdoZXN0ID8gKGNvbXB1dGVkIDw9IHZhbHVlKSA6IChjb21wdXRlZCA8IHZhbHVlKSkpIHtcbiAgICAgICAgICAgIGxvdyA9IG1pZCArIDE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhpZ2ggPSBtaWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoaWdoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VTb3J0ZWRJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaWRlbnRpdHksIHJldEhpZ2hlc3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvcnRlZEluZGV4QnlgIGFuZCBgXy5zb3J0ZWRMYXN0SW5kZXhCeWBcbiAgICAgKiB3aGljaCBpbnZva2VzIGBpdGVyYXRlZWAgZm9yIGB2YWx1ZWAgYW5kIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgIHRvIGNvbXB1dGVcbiAgICAgKiB0aGVpciBzb3J0IHJhbmtpbmcuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OyAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbcmV0SGlnaGVzdF0gU3BlY2lmeSByZXR1cm5pbmcgdGhlIGhpZ2hlc3QgcXVhbGlmaWVkIGluZGV4LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICogIGludG8gYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU29ydGVkSW5kZXhCeShhcnJheSwgdmFsdWUsIGl0ZXJhdGVlLCByZXRIaWdoZXN0KSB7XG4gICAgICB2YXIgbG93ID0gMCxcbiAgICAgICAgICBoaWdoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoaGlnaCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cblxuICAgICAgdmFsdWUgPSBpdGVyYXRlZSh2YWx1ZSk7XG4gICAgICB2YXIgdmFsSXNOYU4gPSB2YWx1ZSAhPT0gdmFsdWUsXG4gICAgICAgICAgdmFsSXNOdWxsID0gdmFsdWUgPT09IG51bGwsXG4gICAgICAgICAgdmFsSXNTeW1ib2wgPSBpc1N5bWJvbCh2YWx1ZSksXG4gICAgICAgICAgdmFsSXNVbmRlZmluZWQgPSB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuXG4gICAgICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgICAgICB2YXIgbWlkID0gbmF0aXZlRmxvb3IoKGxvdyArIGhpZ2gpIC8gMiksXG4gICAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlKGFycmF5W21pZF0pLFxuICAgICAgICAgICAgb3RoSXNEZWZpbmVkID0gY29tcHV0ZWQgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG90aElzTnVsbCA9IGNvbXB1dGVkID09PSBudWxsLFxuICAgICAgICAgICAgb3RoSXNSZWZsZXhpdmUgPSBjb21wdXRlZCA9PT0gY29tcHV0ZWQsXG4gICAgICAgICAgICBvdGhJc1N5bWJvbCA9IGlzU3ltYm9sKGNvbXB1dGVkKTtcblxuICAgICAgICBpZiAodmFsSXNOYU4pIHtcbiAgICAgICAgICB2YXIgc2V0TG93ID0gcmV0SGlnaGVzdCB8fCBvdGhJc1JlZmxleGl2ZTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWxJc1VuZGVmaW5lZCkge1xuICAgICAgICAgIHNldExvdyA9IG90aElzUmVmbGV4aXZlICYmIChyZXRIaWdoZXN0IHx8IG90aElzRGVmaW5lZCk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsSXNOdWxsKSB7XG4gICAgICAgICAgc2V0TG93ID0gb3RoSXNSZWZsZXhpdmUgJiYgb3RoSXNEZWZpbmVkICYmIChyZXRIaWdoZXN0IHx8ICFvdGhJc051bGwpO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbElzU3ltYm9sKSB7XG4gICAgICAgICAgc2V0TG93ID0gb3RoSXNSZWZsZXhpdmUgJiYgb3RoSXNEZWZpbmVkICYmICFvdGhJc051bGwgJiYgKHJldEhpZ2hlc3QgfHwgIW90aElzU3ltYm9sKTtcbiAgICAgICAgfSBlbHNlIGlmIChvdGhJc051bGwgfHwgb3RoSXNTeW1ib2wpIHtcbiAgICAgICAgICBzZXRMb3cgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRMb3cgPSByZXRIaWdoZXN0ID8gKGNvbXB1dGVkIDw9IHZhbHVlKSA6IChjb21wdXRlZCA8IHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2V0TG93KSB7XG4gICAgICAgICAgbG93ID0gbWlkICsgMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoaWdoID0gbWlkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmF0aXZlTWluKGhpZ2gsIE1BWF9BUlJBWV9JTkRFWCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc29ydGVkVW5pcWAgYW5kIGBfLnNvcnRlZFVuaXFCeWAgd2l0aG91dFxuICAgICAqIHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVNvcnRlZFVuaXEoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgcmVzSW5kZXggPSAwLFxuICAgICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlID8gaXRlcmF0ZWUodmFsdWUpIDogdmFsdWU7XG5cbiAgICAgICAgaWYgKCFpbmRleCB8fCAhZXEoY29tcHV0ZWQsIHNlZW4pKSB7XG4gICAgICAgICAgdmFyIHNlZW4gPSBjb21wdXRlZDtcbiAgICAgICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSB2YWx1ZSA9PT0gMCA/IDAgOiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50b051bWJlcmAgd2hpY2ggZG9lc24ndCBlbnN1cmUgY29ycmVjdFxuICAgICAqIGNvbnZlcnNpb25zIG9mIGJpbmFyeSwgaGV4YWRlY2ltYWwsIG9yIG9jdGFsIHN0cmluZyB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VUb051bWJlcih2YWx1ZSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJykge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBOQU47XG4gICAgICB9XG4gICAgICByZXR1cm4gK3ZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRvU3RyaW5nYCB3aGljaCBkb2Vzbid0IGNvbnZlcnQgbnVsbGlzaFxuICAgICAqIHZhbHVlcyB0byBlbXB0eSBzdHJpbmdzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0cmluZy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlVG9TdHJpbmcodmFsdWUpIHtcbiAgICAgIC8vIEV4aXQgZWFybHkgZm9yIHN0cmluZ3MgdG8gYXZvaWQgYSBwZXJmb3JtYW5jZSBoaXQgaW4gc29tZSBlbnZpcm9ubWVudHMuXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBjb252ZXJ0IHZhbHVlcyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgICAgICByZXR1cm4gYXJyYXlNYXAodmFsdWUsIGJhc2VUb1N0cmluZykgKyAnJztcbiAgICAgIH1cbiAgICAgIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHN5bWJvbFRvU3RyaW5nID8gc3ltYm9sVG9TdHJpbmcuY2FsbCh2YWx1ZSkgOiAnJztcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSAodmFsdWUgKyAnJyk7XG4gICAgICByZXR1cm4gKHJlc3VsdCA9PSAnMCcgJiYgKDEgLyB2YWx1ZSkgPT0gLUlORklOSVRZKSA/ICctMCcgOiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udW5pcUJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVVuaXEoYXJyYXksIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBpbmNsdWRlcyA9IGFycmF5SW5jbHVkZXMsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIGlzQ29tbW9uID0gdHJ1ZSxcbiAgICAgICAgICByZXN1bHQgPSBbXSxcbiAgICAgICAgICBzZWVuID0gcmVzdWx0O1xuXG4gICAgICBpZiAoY29tcGFyYXRvcikge1xuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICBpbmNsdWRlcyA9IGFycmF5SW5jbHVkZXNXaXRoO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAobGVuZ3RoID49IExBUkdFX0FSUkFZX1NJWkUpIHtcbiAgICAgICAgdmFyIHNldCA9IGl0ZXJhdGVlID8gbnVsbCA6IGNyZWF0ZVNldChhcnJheSk7XG4gICAgICAgIGlmIChzZXQpIHtcbiAgICAgICAgICByZXR1cm4gc2V0VG9BcnJheShzZXQpO1xuICAgICAgICB9XG4gICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgIGluY2x1ZGVzID0gY2FjaGVIYXM7XG4gICAgICAgIHNlZW4gPSBuZXcgU2V0Q2FjaGU7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgc2VlbiA9IGl0ZXJhdGVlID8gW10gOiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBvdXRlcjpcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSkgOiB2YWx1ZTtcblxuICAgICAgICB2YWx1ZSA9IChjb21wYXJhdG9yIHx8IHZhbHVlICE9PSAwKSA/IHZhbHVlIDogMDtcbiAgICAgICAgaWYgKGlzQ29tbW9uICYmIGNvbXB1dGVkID09PSBjb21wdXRlZCkge1xuICAgICAgICAgIHZhciBzZWVuSW5kZXggPSBzZWVuLmxlbmd0aDtcbiAgICAgICAgICB3aGlsZSAoc2VlbkluZGV4LS0pIHtcbiAgICAgICAgICAgIGlmIChzZWVuW3NlZW5JbmRleF0gPT09IGNvbXB1dGVkKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXRlcmF0ZWUpIHtcbiAgICAgICAgICAgIHNlZW4ucHVzaChjb21wdXRlZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghaW5jbHVkZXMoc2VlbiwgY29tcHV0ZWQsIGNvbXBhcmF0b3IpKSB7XG4gICAgICAgICAgaWYgKHNlZW4gIT09IHJlc3VsdCkge1xuICAgICAgICAgICAgc2Vlbi5wdXNoKGNvbXB1dGVkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuc2V0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcHJvcGVydHkgcGF0aCB0byB1bnNldC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHByb3BlcnR5IGlzIGRlbGV0ZWQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlVW5zZXQob2JqZWN0LCBwYXRoKSB7XG4gICAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcbiAgICAgIG9iamVjdCA9IHBhcmVudChvYmplY3QsIHBhdGgpO1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsIHx8IGRlbGV0ZSBvYmplY3RbdG9LZXkobGFzdChwYXRoKSldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVwZGF0ZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHVwZGF0ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB1cGRhdGVyIFRoZSBmdW5jdGlvbiB0byBwcm9kdWNlIHRoZSB1cGRhdGVkIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIHBhdGggY3JlYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlVXBkYXRlKG9iamVjdCwgcGF0aCwgdXBkYXRlciwgY3VzdG9taXplcikge1xuICAgICAgcmV0dXJuIGJhc2VTZXQob2JqZWN0LCBwYXRoLCB1cGRhdGVyKGJhc2VHZXQob2JqZWN0LCBwYXRoKSksIGN1c3RvbWl6ZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5kcm9wV2hpbGVgIGFuZCBgXy50YWtlV2hpbGVgXG4gICAgICogd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEcm9wXSBTcGVjaWZ5IGRyb3BwaW5nIGVsZW1lbnRzIGluc3RlYWQgb2YgdGFraW5nIHRoZW0uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VXaGlsZShhcnJheSwgcHJlZGljYXRlLCBpc0Ryb3AsIGZyb21SaWdodCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICBpbmRleCA9IGZyb21SaWdodCA/IGxlbmd0aCA6IC0xO1xuXG4gICAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSAmJlxuICAgICAgICBwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7fVxuXG4gICAgICByZXR1cm4gaXNEcm9wXG4gICAgICAgID8gYmFzZVNsaWNlKGFycmF5LCAoZnJvbVJpZ2h0ID8gMCA6IGluZGV4KSwgKGZyb21SaWdodCA/IGluZGV4ICsgMSA6IGxlbmd0aCkpXG4gICAgICAgIDogYmFzZVNsaWNlKGFycmF5LCAoZnJvbVJpZ2h0ID8gaW5kZXggKyAxIDogMCksIChmcm9tUmlnaHQgPyBsZW5ndGggOiBpbmRleCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGB3cmFwcGVyVmFsdWVgIHdoaWNoIHJldHVybnMgdGhlIHJlc3VsdCBvZlxuICAgICAqIHBlcmZvcm1pbmcgYSBzZXF1ZW5jZSBvZiBhY3Rpb25zIG9uIHRoZSB1bndyYXBwZWQgYHZhbHVlYCwgd2hlcmUgZWFjaFxuICAgICAqIHN1Y2Nlc3NpdmUgYWN0aW9uIGlzIHN1cHBsaWVkIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHByZXZpb3VzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB1bndyYXBwZWQgdmFsdWUuXG4gICAgICogQHBhcmFtIHtBcnJheX0gYWN0aW9ucyBBY3Rpb25zIHRvIHBlcmZvcm0gdG8gcmVzb2x2ZSB0aGUgdW53cmFwcGVkIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlV3JhcHBlclZhbHVlKHZhbHVlLCBhY3Rpb25zKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gdmFsdWU7XG4gICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgTGF6eVdyYXBwZXIpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnZhbHVlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXlSZWR1Y2UoYWN0aW9ucywgZnVuY3Rpb24ocmVzdWx0LCBhY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbi5mdW5jLmFwcGx5KGFjdGlvbi50aGlzQXJnLCBhcnJheVB1c2goW3Jlc3VsdF0sIGFjdGlvbi5hcmdzKSk7XG4gICAgICB9LCByZXN1bHQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy54b3JgLCB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcywgdGhhdCBhY2NlcHRzIGFuIGFycmF5IG9mIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheXMgVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgdmFsdWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VYb3IoYXJyYXlzLCBpdGVyYXRlZSwgY29tcGFyYXRvcikge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5cy5sZW5ndGg7XG4gICAgICBpZiAobGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZVVuaXEoYXJyYXlzWzBdKSA6IFtdO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGFycmF5ID0gYXJyYXlzW2luZGV4XSxcbiAgICAgICAgICAgIG90aEluZGV4ID0gLTE7XG5cbiAgICAgICAgd2hpbGUgKCsrb3RoSW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBpZiAob3RoSW5kZXggIT0gaW5kZXgpIHtcbiAgICAgICAgICAgIHJlc3VsdFtpbmRleF0gPSBiYXNlRGlmZmVyZW5jZShyZXN1bHRbaW5kZXhdIHx8IGFycmF5LCBhcnJheXNbb3RoSW5kZXhdLCBpdGVyYXRlZSwgY29tcGFyYXRvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZVVuaXEoYmFzZUZsYXR0ZW4ocmVzdWx0LCAxKSwgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy56aXBPYmplY3RgIHdoaWNoIGFzc2lnbnMgdmFsdWVzIHVzaW5nIGBhc3NpZ25GdW5jYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgcHJvcGVydHkgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGFzc2lnbkZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlWmlwT2JqZWN0KHByb3BzLCB2YWx1ZXMsIGFzc2lnbkZ1bmMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgICAgICB2YWxzTGVuZ3RoID0gdmFsdWVzLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSB7fTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gaW5kZXggPCB2YWxzTGVuZ3RoID8gdmFsdWVzW2luZGV4XSA6IHVuZGVmaW5lZDtcbiAgICAgICAgYXNzaWduRnVuYyhyZXN1bHQsIHByb3BzW2luZGV4XSwgdmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYXN0cyBgdmFsdWVgIHRvIGFuIGVtcHR5IGFycmF5IGlmIGl0J3Mgbm90IGFuIGFycmF5IGxpa2Ugb2JqZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9IFJldHVybnMgdGhlIGNhc3QgYXJyYXktbGlrZSBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2FzdEFycmF5TGlrZU9iamVjdCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlT2JqZWN0KHZhbHVlKSA/IHZhbHVlIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FzdHMgYHZhbHVlYCB0byBgaWRlbnRpdHlgIGlmIGl0J3Mgbm90IGEgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGNhc3QgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2FzdEZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdmdW5jdGlvbicgPyB2YWx1ZSA6IGlkZW50aXR5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhc3RzIGB2YWx1ZWAgdG8gYSBwYXRoIGFycmF5IGlmIGl0J3Mgbm90IG9uZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeSBrZXlzIG9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY2FzdCBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNhc3RQYXRoKHZhbHVlLCBvYmplY3QpIHtcbiAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNLZXkodmFsdWUsIG9iamVjdCkgPyBbdmFsdWVdIDogc3RyaW5nVG9QYXRoKHRvU3RyaW5nKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBgYmFzZVJlc3RgIGFsaWFzIHdoaWNoIGNhbiBiZSByZXBsYWNlZCB3aXRoIGBpZGVudGl0eWAgYnkgbW9kdWxlXG4gICAgICogcmVwbGFjZW1lbnQgcGx1Z2lucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHR5cGUge0Z1bmN0aW9ufVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICovXG4gICAgdmFyIGNhc3RSZXN0ID0gYmFzZVJlc3Q7XG5cbiAgICAvKipcbiAgICAgKiBDYXN0cyBgYXJyYXlgIHRvIGEgc2xpY2UgaWYgaXQncyBuZWVkZWQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydCBUaGUgc3RhcnQgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmQ9YXJyYXkubGVuZ3RoXSBUaGUgZW5kIHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY2FzdCBzbGljZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjYXN0U2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCA/IGxlbmd0aCA6IGVuZDtcbiAgICAgIHJldHVybiAoIXN0YXJ0ICYmIGVuZCA+PSBsZW5ndGgpID8gYXJyYXkgOiBiYXNlU2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc2ltcGxlIHdyYXBwZXIgYXJvdW5kIHRoZSBnbG9iYWwgW2BjbGVhclRpbWVvdXRgXShodHRwczovL21kbi5pby9jbGVhclRpbWVvdXQpLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcnxPYmplY3R9IGlkIFRoZSB0aW1lciBpZCBvciB0aW1lb3V0IG9iamVjdCBvZiB0aGUgdGltZXIgdG8gY2xlYXIuXG4gICAgICovXG4gICAgdmFyIGNsZWFyVGltZW91dCA9IGN0eENsZWFyVGltZW91dCB8fCBmdW5jdGlvbihpZCkge1xuICAgICAgcmV0dXJuIHJvb3QuY2xlYXJUaW1lb3V0KGlkKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mICBgYnVmZmVyYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtCdWZmZXJ9IGJ1ZmZlciBUaGUgYnVmZmVyIHRvIGNsb25lLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gICAgICogQHJldHVybnMge0J1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGJ1ZmZlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZUJ1ZmZlcihidWZmZXIsIGlzRGVlcCkge1xuICAgICAgaWYgKGlzRGVlcCkge1xuICAgICAgICByZXR1cm4gYnVmZmVyLnNsaWNlKCk7XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gYnVmZmVyLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBhbGxvY1Vuc2FmZSA/IGFsbG9jVW5zYWZlKGxlbmd0aCkgOiBuZXcgYnVmZmVyLmNvbnN0cnVjdG9yKGxlbmd0aCk7XG5cbiAgICAgIGJ1ZmZlci5jb3B5KHJlc3VsdCk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgYXJyYXlCdWZmZXJgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5QnVmZmVyfSBhcnJheUJ1ZmZlciBUaGUgYXJyYXkgYnVmZmVyIHRvIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHtBcnJheUJ1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGFycmF5IGJ1ZmZlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZUFycmF5QnVmZmVyKGFycmF5QnVmZmVyKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gbmV3IGFycmF5QnVmZmVyLmNvbnN0cnVjdG9yKGFycmF5QnVmZmVyLmJ5dGVMZW5ndGgpO1xuICAgICAgbmV3IFVpbnQ4QXJyYXkocmVzdWx0KS5zZXQobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIGBkYXRhVmlld2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhVmlldyBUaGUgZGF0YSB2aWV3IHRvIGNsb25lLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIGRhdGEgdmlldy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZURhdGFWaWV3KGRhdGFWaWV3LCBpc0RlZXApIHtcbiAgICAgIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKGRhdGFWaWV3LmJ1ZmZlcikgOiBkYXRhVmlldy5idWZmZXI7XG4gICAgICByZXR1cm4gbmV3IGRhdGFWaWV3LmNvbnN0cnVjdG9yKGJ1ZmZlciwgZGF0YVZpZXcuYnl0ZU9mZnNldCwgZGF0YVZpZXcuYnl0ZUxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIGByZWdleHBgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gcmVnZXhwIFRoZSByZWdleHAgdG8gY2xvbmUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHJlZ2V4cC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZVJlZ0V4cChyZWdleHApIHtcbiAgICAgIHZhciByZXN1bHQgPSBuZXcgcmVnZXhwLmNvbnN0cnVjdG9yKHJlZ2V4cC5zb3VyY2UsIHJlRmxhZ3MuZXhlYyhyZWdleHApKTtcbiAgICAgIHJlc3VsdC5sYXN0SW5kZXggPSByZWdleHAubGFzdEluZGV4O1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgdGhlIGBzeW1ib2xgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHN5bWJvbCBUaGUgc3ltYm9sIG9iamVjdCB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgc3ltYm9sIG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZVN5bWJvbChzeW1ib2wpIHtcbiAgICAgIHJldHVybiBzeW1ib2xWYWx1ZU9mID8gT2JqZWN0KHN5bWJvbFZhbHVlT2YuY2FsbChzeW1ib2wpKSA6IHt9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgdHlwZWRBcnJheWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSB0eXBlZEFycmF5IFRoZSB0eXBlZCBhcnJheSB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCB0eXBlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZVR5cGVkQXJyYXkodHlwZWRBcnJheSwgaXNEZWVwKSB7XG4gICAgICB2YXIgYnVmZmVyID0gaXNEZWVwID8gY2xvbmVBcnJheUJ1ZmZlcih0eXBlZEFycmF5LmJ1ZmZlcikgOiB0eXBlZEFycmF5LmJ1ZmZlcjtcbiAgICAgIHJldHVybiBuZXcgdHlwZWRBcnJheS5jb25zdHJ1Y3RvcihidWZmZXIsIHR5cGVkQXJyYXkuYnl0ZU9mZnNldCwgdHlwZWRBcnJheS5sZW5ndGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXBhcmVzIHZhbHVlcyB0byBzb3J0IHRoZW0gaW4gYXNjZW5kaW5nIG9yZGVyLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc29ydCBvcmRlciBpbmRpY2F0b3IgZm9yIGB2YWx1ZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29tcGFyZUFzY2VuZGluZyh2YWx1ZSwgb3RoZXIpIHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gb3RoZXIpIHtcbiAgICAgICAgdmFyIHZhbElzRGVmaW5lZCA9IHZhbHVlICE9PSB1bmRlZmluZWQsXG4gICAgICAgICAgICB2YWxJc051bGwgPSB2YWx1ZSA9PT0gbnVsbCxcbiAgICAgICAgICAgIHZhbElzUmVmbGV4aXZlID0gdmFsdWUgPT09IHZhbHVlLFxuICAgICAgICAgICAgdmFsSXNTeW1ib2wgPSBpc1N5bWJvbCh2YWx1ZSk7XG5cbiAgICAgICAgdmFyIG90aElzRGVmaW5lZCA9IG90aGVyICE9PSB1bmRlZmluZWQsXG4gICAgICAgICAgICBvdGhJc051bGwgPSBvdGhlciA9PT0gbnVsbCxcbiAgICAgICAgICAgIG90aElzUmVmbGV4aXZlID0gb3RoZXIgPT09IG90aGVyLFxuICAgICAgICAgICAgb3RoSXNTeW1ib2wgPSBpc1N5bWJvbChvdGhlcik7XG5cbiAgICAgICAgaWYgKCghb3RoSXNOdWxsICYmICFvdGhJc1N5bWJvbCAmJiAhdmFsSXNTeW1ib2wgJiYgdmFsdWUgPiBvdGhlcikgfHxcbiAgICAgICAgICAgICh2YWxJc1N5bWJvbCAmJiBvdGhJc0RlZmluZWQgJiYgb3RoSXNSZWZsZXhpdmUgJiYgIW90aElzTnVsbCAmJiAhb3RoSXNTeW1ib2wpIHx8XG4gICAgICAgICAgICAodmFsSXNOdWxsICYmIG90aElzRGVmaW5lZCAmJiBvdGhJc1JlZmxleGl2ZSkgfHxcbiAgICAgICAgICAgICghdmFsSXNEZWZpbmVkICYmIG90aElzUmVmbGV4aXZlKSB8fFxuICAgICAgICAgICAgIXZhbElzUmVmbGV4aXZlKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCghdmFsSXNOdWxsICYmICF2YWxJc1N5bWJvbCAmJiAhb3RoSXNTeW1ib2wgJiYgdmFsdWUgPCBvdGhlcikgfHxcbiAgICAgICAgICAgIChvdGhJc1N5bWJvbCAmJiB2YWxJc0RlZmluZWQgJiYgdmFsSXNSZWZsZXhpdmUgJiYgIXZhbElzTnVsbCAmJiAhdmFsSXNTeW1ib2wpIHx8XG4gICAgICAgICAgICAob3RoSXNOdWxsICYmIHZhbElzRGVmaW5lZCAmJiB2YWxJc1JlZmxleGl2ZSkgfHxcbiAgICAgICAgICAgICghb3RoSXNEZWZpbmVkICYmIHZhbElzUmVmbGV4aXZlKSB8fFxuICAgICAgICAgICAgIW90aElzUmVmbGV4aXZlKSB7XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIGJ5IGBfLm9yZGVyQnlgIHRvIGNvbXBhcmUgbXVsdGlwbGUgcHJvcGVydGllcyBvZiBhIHZhbHVlIHRvIGFub3RoZXJcbiAgICAgKiBhbmQgc3RhYmxlIHNvcnQgdGhlbS5cbiAgICAgKlxuICAgICAqIElmIGBvcmRlcnNgIGlzIHVuc3BlY2lmaWVkLCBhbGwgdmFsdWVzIGFyZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyLiBPdGhlcndpc2UsXG4gICAgICogc3BlY2lmeSBhbiBvcmRlciBvZiBcImRlc2NcIiBmb3IgZGVzY2VuZGluZyBvciBcImFzY1wiIGZvciBhc2NlbmRpbmcgc29ydCBvcmRlclxuICAgICAqIG9mIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbltdfHN0cmluZ1tdfSBvcmRlcnMgVGhlIG9yZGVyIHRvIHNvcnQgYnkgZm9yIGVhY2ggcHJvcGVydHkuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc29ydCBvcmRlciBpbmRpY2F0b3IgZm9yIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbXBhcmVNdWx0aXBsZShvYmplY3QsIG90aGVyLCBvcmRlcnMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIG9iakNyaXRlcmlhID0gb2JqZWN0LmNyaXRlcmlhLFxuICAgICAgICAgIG90aENyaXRlcmlhID0gb3RoZXIuY3JpdGVyaWEsXG4gICAgICAgICAgbGVuZ3RoID0gb2JqQ3JpdGVyaWEubGVuZ3RoLFxuICAgICAgICAgIG9yZGVyc0xlbmd0aCA9IG9yZGVycy5sZW5ndGg7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBjb21wYXJlQXNjZW5kaW5nKG9iakNyaXRlcmlhW2luZGV4XSwgb3RoQ3JpdGVyaWFbaW5kZXhdKTtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIGlmIChpbmRleCA+PSBvcmRlcnNMZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBvcmRlciA9IG9yZGVyc1tpbmRleF07XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdCAqIChvcmRlciA9PSAnZGVzYycgPyAtMSA6IDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBGaXhlcyBhbiBgQXJyYXkjc29ydGAgYnVnIGluIHRoZSBKUyBlbmdpbmUgZW1iZWRkZWQgaW4gQWRvYmUgYXBwbGljYXRpb25zXG4gICAgICAvLyB0aGF0IGNhdXNlcyBpdCwgdW5kZXIgY2VydGFpbiBjaXJjdW1zdGFuY2VzLCB0byBwcm92aWRlIHRoZSBzYW1lIHZhbHVlIGZvclxuICAgICAgLy8gYG9iamVjdGAgYW5kIGBvdGhlcmAuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vamFzaGtlbmFzL3VuZGVyc2NvcmUvcHVsbC8xMjQ3XG4gICAgICAvLyBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgLy9cbiAgICAgIC8vIFRoaXMgYWxzbyBlbnN1cmVzIGEgc3RhYmxlIHNvcnQgaW4gVjggYW5kIG90aGVyIGVuZ2luZXMuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9OTAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgIHJldHVybiBvYmplY3QuaW5kZXggLSBvdGhlci5pbmRleDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IHRoYXQgaXMgdGhlIGNvbXBvc2l0aW9uIG9mIHBhcnRpYWxseSBhcHBsaWVkIGFyZ3VtZW50cyxcbiAgICAgKiBwbGFjZWhvbGRlcnMsIGFuZCBwcm92aWRlZCBhcmd1bWVudHMgaW50byBhIHNpbmdsZSBhcnJheSBvZiBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFyZ3MgVGhlIHByb3ZpZGVkIGFyZ3VtZW50cy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYXJ0aWFscyBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQuXG4gICAgICogQHBhcmFtIHtBcnJheX0gaG9sZGVycyBUaGUgYHBhcnRpYWxzYCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICAgICAqIEBwYXJhbXMge2Jvb2xlYW59IFtpc0N1cnJpZWRdIFNwZWNpZnkgY29tcG9zaW5nIGZvciBhIGN1cnJpZWQgZnVuY3Rpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY29tcG9zZWQgYXJndW1lbnRzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzLCBpc0N1cnJpZWQpIHtcbiAgICAgIHZhciBhcmdzSW5kZXggPSAtMSxcbiAgICAgICAgICBhcmdzTGVuZ3RoID0gYXJncy5sZW5ndGgsXG4gICAgICAgICAgaG9sZGVyc0xlbmd0aCA9IGhvbGRlcnMubGVuZ3RoLFxuICAgICAgICAgIGxlZnRJbmRleCA9IC0xLFxuICAgICAgICAgIGxlZnRMZW5ndGggPSBwYXJ0aWFscy5sZW5ndGgsXG4gICAgICAgICAgcmFuZ2VMZW5ndGggPSBuYXRpdmVNYXgoYXJnc0xlbmd0aCAtIGhvbGRlcnNMZW5ndGgsIDApLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGxlZnRMZW5ndGggKyByYW5nZUxlbmd0aCksXG4gICAgICAgICAgaXNVbmN1cnJpZWQgPSAhaXNDdXJyaWVkO1xuXG4gICAgICB3aGlsZSAoKytsZWZ0SW5kZXggPCBsZWZ0TGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtsZWZ0SW5kZXhdID0gcGFydGlhbHNbbGVmdEluZGV4XTtcbiAgICAgIH1cbiAgICAgIHdoaWxlICgrK2FyZ3NJbmRleCA8IGhvbGRlcnNMZW5ndGgpIHtcbiAgICAgICAgaWYgKGlzVW5jdXJyaWVkIHx8IGFyZ3NJbmRleCA8IGFyZ3NMZW5ndGgpIHtcbiAgICAgICAgICByZXN1bHRbaG9sZGVyc1thcmdzSW5kZXhdXSA9IGFyZ3NbYXJnc0luZGV4XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgd2hpbGUgKHJhbmdlTGVuZ3RoLS0pIHtcbiAgICAgICAgcmVzdWx0W2xlZnRJbmRleCsrXSA9IGFyZ3NbYXJnc0luZGV4KytdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGNvbXBvc2VBcmdzYCBleGNlcHQgdGhhdCB0aGUgYXJndW1lbnRzIGNvbXBvc2l0aW9uXG4gICAgICogaXMgdGFpbG9yZWQgZm9yIGBfLnBhcnRpYWxSaWdodGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFyZ3MgVGhlIHByb3ZpZGVkIGFyZ3VtZW50cy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYXJ0aWFscyBUaGUgYXJndW1lbnRzIHRvIGFwcGVuZCB0byB0aG9zZSBwcm92aWRlZC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBob2xkZXJzIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gICAgICogQHBhcmFtcyB7Ym9vbGVhbn0gW2lzQ3VycmllZF0gU3BlY2lmeSBjb21wb3NpbmcgZm9yIGEgY3VycmllZCBmdW5jdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21wb3NlZCBhcmd1bWVudHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29tcG9zZUFyZ3NSaWdodChhcmdzLCBwYXJ0aWFscywgaG9sZGVycywgaXNDdXJyaWVkKSB7XG4gICAgICB2YXIgYXJnc0luZGV4ID0gLTEsXG4gICAgICAgICAgYXJnc0xlbmd0aCA9IGFyZ3MubGVuZ3RoLFxuICAgICAgICAgIGhvbGRlcnNJbmRleCA9IC0xLFxuICAgICAgICAgIGhvbGRlcnNMZW5ndGggPSBob2xkZXJzLmxlbmd0aCxcbiAgICAgICAgICByaWdodEluZGV4ID0gLTEsXG4gICAgICAgICAgcmlnaHRMZW5ndGggPSBwYXJ0aWFscy5sZW5ndGgsXG4gICAgICAgICAgcmFuZ2VMZW5ndGggPSBuYXRpdmVNYXgoYXJnc0xlbmd0aCAtIGhvbGRlcnNMZW5ndGgsIDApLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KHJhbmdlTGVuZ3RoICsgcmlnaHRMZW5ndGgpLFxuICAgICAgICAgIGlzVW5jdXJyaWVkID0gIWlzQ3VycmllZDtcblxuICAgICAgd2hpbGUgKCsrYXJnc0luZGV4IDwgcmFuZ2VMZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0W2FyZ3NJbmRleF0gPSBhcmdzW2FyZ3NJbmRleF07XG4gICAgICB9XG4gICAgICB2YXIgb2Zmc2V0ID0gYXJnc0luZGV4O1xuICAgICAgd2hpbGUgKCsrcmlnaHRJbmRleCA8IHJpZ2h0TGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtvZmZzZXQgKyByaWdodEluZGV4XSA9IHBhcnRpYWxzW3JpZ2h0SW5kZXhdO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCsraG9sZGVyc0luZGV4IDwgaG9sZGVyc0xlbmd0aCkge1xuICAgICAgICBpZiAoaXNVbmN1cnJpZWQgfHwgYXJnc0luZGV4IDwgYXJnc0xlbmd0aCkge1xuICAgICAgICAgIHJlc3VsdFtvZmZzZXQgKyBob2xkZXJzW2hvbGRlcnNJbmRleF1dID0gYXJnc1thcmdzSW5kZXgrK107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29waWVzIHRoZSB2YWx1ZXMgb2YgYHNvdXJjZWAgdG8gYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gc291cmNlIFRoZSBhcnJheSB0byBjb3B5IHZhbHVlcyBmcm9tLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFthcnJheT1bXV0gVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIHRvLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvcHlBcnJheShzb3VyY2UsIGFycmF5KSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBzb3VyY2UubGVuZ3RoO1xuXG4gICAgICBhcnJheSB8fCAoYXJyYXkgPSBBcnJheShsZW5ndGgpKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIGFycmF5W2luZGV4XSA9IHNvdXJjZVtpbmRleF07XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29waWVzIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgZnJvbS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMgdG8gY29weS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgdG8uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29waWVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvcHlPYmplY3Qoc291cmNlLCBwcm9wcywgb2JqZWN0LCBjdXN0b21pemVyKSB7XG4gICAgICB2YXIgaXNOZXcgPSAhb2JqZWN0O1xuICAgICAgb2JqZWN0IHx8IChvYmplY3QgPSB7fSk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcblxuICAgICAgICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyXG4gICAgICAgICAgPyBjdXN0b21pemVyKG9iamVjdFtrZXldLCBzb3VyY2Vba2V5XSwga2V5LCBvYmplY3QsIHNvdXJjZSlcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG5ld1ZhbHVlID0gc291cmNlW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzTmV3KSB7XG4gICAgICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgb3duIHN5bWJvbHMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgZnJvbS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgdG8uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb3B5U3ltYm9scyhzb3VyY2UsIG9iamVjdCkge1xuICAgICAgcmV0dXJuIGNvcHlPYmplY3Qoc291cmNlLCBnZXRTeW1ib2xzKHNvdXJjZSksIG9iamVjdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29waWVzIG93biBhbmQgaW5oZXJpdGVkIHN5bWJvbHMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgZnJvbS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgdG8uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb3B5U3ltYm9sc0luKHNvdXJjZSwgb2JqZWN0KSB7XG4gICAgICByZXR1cm4gY29weU9iamVjdChzb3VyY2UsIGdldFN5bWJvbHNJbihzb3VyY2UpLCBvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLmdyb3VwQnlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzZXR0ZXIgVGhlIGZ1bmN0aW9uIHRvIHNldCBhY2N1bXVsYXRvciB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2luaXRpYWxpemVyXSBUaGUgYWNjdW11bGF0b3Igb2JqZWN0IGluaXRpYWxpemVyLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFnZ3JlZ2F0b3IgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQWdncmVnYXRvcihzZXR0ZXIsIGluaXRpYWxpemVyKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlBZ2dyZWdhdG9yIDogYmFzZUFnZ3JlZ2F0b3IsXG4gICAgICAgICAgICBhY2N1bXVsYXRvciA9IGluaXRpYWxpemVyID8gaW5pdGlhbGl6ZXIoKSA6IHt9O1xuXG4gICAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIHNldHRlciwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpLCBhY2N1bXVsYXRvcik7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLmFzc2lnbmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGFzc2lnbmVyIFRoZSBmdW5jdGlvbiB0byBhc3NpZ24gdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFzc2lnbmVyIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUFzc2lnbmVyKGFzc2lnbmVyKSB7XG4gICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2VzKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgICAgbGVuZ3RoID0gc291cmNlcy5sZW5ndGgsXG4gICAgICAgICAgICBjdXN0b21pemVyID0gbGVuZ3RoID4gMSA/IHNvdXJjZXNbbGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBndWFyZCA9IGxlbmd0aCA+IDIgPyBzb3VyY2VzWzJdIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGN1c3RvbWl6ZXIgPSAoYXNzaWduZXIubGVuZ3RoID4gMyAmJiB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nKVxuICAgICAgICAgID8gKGxlbmd0aC0tLCBjdXN0b21pemVyKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzb3VyY2VzWzBdLCBzb3VyY2VzWzFdLCBndWFyZCkpIHtcbiAgICAgICAgICBjdXN0b21pemVyID0gbGVuZ3RoIDwgMyA/IHVuZGVmaW5lZCA6IGN1c3RvbWl6ZXI7XG4gICAgICAgICAgbGVuZ3RoID0gMTtcbiAgICAgICAgfVxuICAgICAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICB2YXIgc291cmNlID0gc291cmNlc1tpbmRleF07XG4gICAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgYXNzaWduZXIob2JqZWN0LCBzb3VyY2UsIGluZGV4LCBjdXN0b21pemVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgYmFzZUVhY2hgIG9yIGBiYXNlRWFjaFJpZ2h0YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZWFjaEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhIGNvbGxlY3Rpb24uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYmFzZSBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVCYXNlRWFjaChlYWNoRnVuYywgZnJvbVJpZ2h0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNBcnJheUxpa2UoY29sbGVjdGlvbikpIHtcbiAgICAgICAgICByZXR1cm4gZWFjaEZ1bmMoY29sbGVjdGlvbiwgaXRlcmF0ZWUpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBsZW5ndGggPSBjb2xsZWN0aW9uLmxlbmd0aCxcbiAgICAgICAgICAgIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTEsXG4gICAgICAgICAgICBpdGVyYWJsZSA9IE9iamVjdChjb2xsZWN0aW9uKTtcblxuICAgICAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgICAgIGlmIChpdGVyYXRlZShpdGVyYWJsZVtpbmRleF0sIGluZGV4LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBiYXNlIGZ1bmN0aW9uIGZvciBtZXRob2RzIGxpa2UgYF8uZm9ySW5gIGFuZCBgXy5mb3JPd25gLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBiYXNlIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUJhc2VGb3IoZnJvbVJpZ2h0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0LCBpdGVyYXRlZSwga2V5c0Z1bmMpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgICBpdGVyYWJsZSA9IE9iamVjdChvYmplY3QpLFxuICAgICAgICAgICAgcHJvcHMgPSBrZXlzRnVuYyhvYmplY3QpLFxuICAgICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gICAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICAgIHZhciBrZXkgPSBwcm9wc1tmcm9tUmlnaHQgPyBsZW5ndGggOiArK2luZGV4XTtcbiAgICAgICAgICBpZiAoaXRlcmF0ZWUoaXRlcmFibGVba2V5XSwga2V5LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIHRvIGludm9rZSBpdCB3aXRoIHRoZSBvcHRpb25hbCBgdGhpc2BcbiAgICAgKiBiaW5kaW5nIG9mIGB0aGlzQXJnYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVCaW5kKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcpIHtcbiAgICAgIHZhciBpc0JpbmQgPSBiaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcsXG4gICAgICAgICAgQ3RvciA9IGNyZWF0ZUN0b3IoZnVuYyk7XG5cbiAgICAgIGZ1bmN0aW9uIHdyYXBwZXIoKSB7XG4gICAgICAgIHZhciBmbiA9ICh0aGlzICYmIHRoaXMgIT09IHJvb3QgJiYgdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXIpID8gQ3RvciA6IGZ1bmM7XG4gICAgICAgIHJldHVybiBmbi5hcHBseShpc0JpbmQgPyB0aGlzQXJnIDogdGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB3cmFwcGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLmxvd2VyRmlyc3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kTmFtZSBUaGUgbmFtZSBvZiB0aGUgYFN0cmluZ2AgY2FzZSBtZXRob2QgdG8gdXNlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNhc2UgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQ2FzZUZpcnN0KG1ldGhvZE5hbWUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcblxuICAgICAgICB2YXIgc3RyU3ltYm9scyA9IGhhc1VuaWNvZGUoc3RyaW5nKVxuICAgICAgICAgID8gc3RyaW5nVG9BcnJheShzdHJpbmcpXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgdmFyIGNociA9IHN0clN5bWJvbHNcbiAgICAgICAgICA/IHN0clN5bWJvbHNbMF1cbiAgICAgICAgICA6IHN0cmluZy5jaGFyQXQoMCk7XG5cbiAgICAgICAgdmFyIHRyYWlsaW5nID0gc3RyU3ltYm9sc1xuICAgICAgICAgID8gY2FzdFNsaWNlKHN0clN5bWJvbHMsIDEpLmpvaW4oJycpXG4gICAgICAgICAgOiBzdHJpbmcuc2xpY2UoMSk7XG5cbiAgICAgICAgcmV0dXJuIGNoclttZXRob2ROYW1lXSgpICsgdHJhaWxpbmc7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLmNhbWVsQ2FzZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0byBjb21iaW5lIGVhY2ggd29yZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjb21wb3VuZGVyIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUNvbXBvdW5kZXIoY2FsbGJhY2spIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGFycmF5UmVkdWNlKHdvcmRzKGRlYnVycihzdHJpbmcpLnJlcGxhY2UocmVBcG9zLCAnJykpLCBjYWxsYmFjaywgJycpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwcm9kdWNlcyBhbiBpbnN0YW5jZSBvZiBgQ3RvcmAgcmVnYXJkbGVzcyBvZlxuICAgICAqIHdoZXRoZXIgaXQgd2FzIGludm9rZWQgYXMgcGFydCBvZiBhIGBuZXdgIGV4cHJlc3Npb24gb3IgYnkgYGNhbGxgIG9yIGBhcHBseWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IEN0b3IgVGhlIGNvbnN0cnVjdG9yIHRvIHdyYXAuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVDdG9yKEN0b3IpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgLy8gVXNlIGEgYHN3aXRjaGAgc3RhdGVtZW50IHRvIHdvcmsgd2l0aCBjbGFzcyBjb25zdHJ1Y3RvcnMuIFNlZVxuICAgICAgICAvLyBodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWZ1bmN0aW9uLW9iamVjdHMtY2FsbC10aGlzYXJndW1lbnQtYXJndW1lbnRzbGlzdFxuICAgICAgICAvLyBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgICAgIGNhc2UgMDogcmV0dXJuIG5ldyBDdG9yO1xuICAgICAgICAgIGNhc2UgMTogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0pO1xuICAgICAgICAgIGNhc2UgMjogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgICAgICAgIGNhc2UgMzogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pO1xuICAgICAgICAgIGNhc2UgNDogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0sIGFyZ3NbM10pO1xuICAgICAgICAgIGNhc2UgNTogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0sIGFyZ3NbM10sIGFyZ3NbNF0pO1xuICAgICAgICAgIGNhc2UgNjogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0sIGFyZ3NbM10sIGFyZ3NbNF0sIGFyZ3NbNV0pO1xuICAgICAgICAgIGNhc2UgNzogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0sIGFyZ3NbM10sIGFyZ3NbNF0sIGFyZ3NbNV0sIGFyZ3NbNl0pO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0aGlzQmluZGluZyA9IGJhc2VDcmVhdGUoQ3Rvci5wcm90b3R5cGUpLFxuICAgICAgICAgICAgcmVzdWx0ID0gQ3Rvci5hcHBseSh0aGlzQmluZGluZywgYXJncyk7XG5cbiAgICAgICAgLy8gTWltaWMgdGhlIGNvbnN0cnVjdG9yJ3MgYHJldHVybmAgYmVoYXZpb3IuXG4gICAgICAgIC8vIFNlZSBodHRwczovL2VzNS5naXRodWIuaW8vI3gxMy4yLjIgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgICAgcmV0dXJuIGlzT2JqZWN0KHJlc3VsdCkgPyByZXN1bHQgOiB0aGlzQmluZGluZztcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIHRvIGVuYWJsZSBjdXJyeWluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBhcml0eSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQ3VycnkoZnVuYywgYml0bWFzaywgYXJpdHkpIHtcbiAgICAgIHZhciBDdG9yID0gY3JlYXRlQ3RvcihmdW5jKTtcblxuICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgICAgICBhcmdzID0gQXJyYXkobGVuZ3RoKSxcbiAgICAgICAgICAgIGluZGV4ID0gbGVuZ3RoLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXIgPSBnZXRIb2xkZXIod3JhcHBlcik7XG5cbiAgICAgICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgICAgICBhcmdzW2luZGV4XSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGhvbGRlcnMgPSAobGVuZ3RoIDwgMyAmJiBhcmdzWzBdICE9PSBwbGFjZWhvbGRlciAmJiBhcmdzW2xlbmd0aCAtIDFdICE9PSBwbGFjZWhvbGRlcilcbiAgICAgICAgICA/IFtdXG4gICAgICAgICAgOiByZXBsYWNlSG9sZGVycyhhcmdzLCBwbGFjZWhvbGRlcik7XG5cbiAgICAgICAgbGVuZ3RoIC09IGhvbGRlcnMubGVuZ3RoO1xuICAgICAgICBpZiAobGVuZ3RoIDwgYXJpdHkpIHtcbiAgICAgICAgICByZXR1cm4gY3JlYXRlUmVjdXJyeShcbiAgICAgICAgICAgIGZ1bmMsIGJpdG1hc2ssIGNyZWF0ZUh5YnJpZCwgd3JhcHBlci5wbGFjZWhvbGRlciwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgYXJncywgaG9sZGVycywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGFyaXR5IC0gbGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZm4gPSAodGhpcyAmJiB0aGlzICE9PSByb290ICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSA/IEN0b3IgOiBmdW5jO1xuICAgICAgICByZXR1cm4gYXBwbHkoZm4sIHRoaXMsIGFyZ3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBfLmZpbmRgIG9yIGBfLmZpbmRMYXN0YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZmluZEluZGV4RnVuYyBUaGUgZnVuY3Rpb24gdG8gZmluZCB0aGUgY29sbGVjdGlvbiBpbmRleC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmaW5kIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUZpbmQoZmluZEluZGV4RnVuYykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZnJvbUluZGV4KSB7XG4gICAgICAgIHZhciBpdGVyYWJsZSA9IE9iamVjdChjb2xsZWN0aW9uKTtcbiAgICAgICAgaWYgKCFpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xuICAgICAgICAgIHZhciBpdGVyYXRlZSA9IGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyk7XG4gICAgICAgICAgY29sbGVjdGlvbiA9IGtleXMoY29sbGVjdGlvbik7XG4gICAgICAgICAgcHJlZGljYXRlID0gZnVuY3Rpb24oa2V5KSB7IHJldHVybiBpdGVyYXRlZShpdGVyYWJsZVtrZXldLCBrZXksIGl0ZXJhYmxlKTsgfTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaW5kZXggPSBmaW5kSW5kZXhGdW5jKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZnJvbUluZGV4KTtcbiAgICAgICAgcmV0dXJuIGluZGV4ID4gLTEgPyBpdGVyYWJsZVtpdGVyYXRlZSA/IGNvbGxlY3Rpb25baW5kZXhdIDogaW5kZXhdIDogdW5kZWZpbmVkO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8uZmxvd2Agb3IgYF8uZmxvd1JpZ2h0YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZmxvdyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVGbG93KGZyb21SaWdodCkge1xuICAgICAgcmV0dXJuIGZsYXRSZXN0KGZ1bmN0aW9uKGZ1bmNzKSB7XG4gICAgICAgIHZhciBsZW5ndGggPSBmdW5jcy5sZW5ndGgsXG4gICAgICAgICAgICBpbmRleCA9IGxlbmd0aCxcbiAgICAgICAgICAgIHByZXJlcSA9IExvZGFzaFdyYXBwZXIucHJvdG90eXBlLnRocnU7XG5cbiAgICAgICAgaWYgKGZyb21SaWdodCkge1xuICAgICAgICAgIGZ1bmNzLnJldmVyc2UoKTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICAgIHZhciBmdW5jID0gZnVuY3NbaW5kZXhdO1xuICAgICAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwcmVyZXEgJiYgIXdyYXBwZXIgJiYgZ2V0RnVuY05hbWUoZnVuYykgPT0gJ3dyYXBwZXInKSB7XG4gICAgICAgICAgICB2YXIgd3JhcHBlciA9IG5ldyBMb2Rhc2hXcmFwcGVyKFtdLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaW5kZXggPSB3cmFwcGVyID8gaW5kZXggOiBsZW5ndGg7XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgZnVuYyA9IGZ1bmNzW2luZGV4XTtcblxuICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGdldEZ1bmNOYW1lKGZ1bmMpLFxuICAgICAgICAgICAgICBkYXRhID0gZnVuY05hbWUgPT0gJ3dyYXBwZXInID8gZ2V0RGF0YShmdW5jKSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgIGlmIChkYXRhICYmIGlzTGF6aWFibGUoZGF0YVswXSkgJiZcbiAgICAgICAgICAgICAgICBkYXRhWzFdID09IChXUkFQX0FSWV9GTEFHIHwgV1JBUF9DVVJSWV9GTEFHIHwgV1JBUF9QQVJUSUFMX0ZMQUcgfCBXUkFQX1JFQVJHX0ZMQUcpICYmXG4gICAgICAgICAgICAgICAgIWRhdGFbNF0ubGVuZ3RoICYmIGRhdGFbOV0gPT0gMVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgIHdyYXBwZXIgPSB3cmFwcGVyW2dldEZ1bmNOYW1lKGRhdGFbMF0pXS5hcHBseSh3cmFwcGVyLCBkYXRhWzNdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd3JhcHBlciA9IChmdW5jLmxlbmd0aCA9PSAxICYmIGlzTGF6aWFibGUoZnVuYykpXG4gICAgICAgICAgICAgID8gd3JhcHBlcltmdW5jTmFtZV0oKVxuICAgICAgICAgICAgICA6IHdyYXBwZXIudGhydShmdW5jKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzLFxuICAgICAgICAgICAgICB2YWx1ZSA9IGFyZ3NbMF07XG5cbiAgICAgICAgICBpZiAod3JhcHBlciAmJiBhcmdzLmxlbmd0aCA9PSAxICYmIGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcHBlci5wbGFudCh2YWx1ZSkudmFsdWUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGluZGV4ID0gMCxcbiAgICAgICAgICAgICAgcmVzdWx0ID0gbGVuZ3RoID8gZnVuY3NbaW5kZXhdLmFwcGx5KHRoaXMsIGFyZ3MpIDogdmFsdWU7XG5cbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gZnVuY3NbaW5kZXhdLmNhbGwodGhpcywgcmVzdWx0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHdyYXBzIGBmdW5jYCB0byBpbnZva2UgaXQgd2l0aCBvcHRpb25hbCBgdGhpc2BcbiAgICAgKiBiaW5kaW5nIG9mIGB0aGlzQXJnYCwgcGFydGlhbCBhcHBsaWNhdGlvbiwgYW5kIGN1cnJ5aW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufHN0cmluZ30gZnVuYyBUaGUgZnVuY3Rpb24gb3IgbWV0aG9kIG5hbWUgdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQgdG9cbiAgICAgKiAgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbcGFydGlhbHNSaWdodF0gVGhlIGFyZ3VtZW50cyB0byBhcHBlbmQgdG8gdGhvc2UgcHJvdmlkZWRcbiAgICAgKiAgdG8gdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc1JpZ2h0XSBUaGUgYHBhcnRpYWxzUmlnaHRgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2FyZ1Bvc10gVGhlIGFyZ3VtZW50IHBvc2l0aW9ucyBvZiB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJ5XSBUaGUgYXJpdHkgY2FwIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5XSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlSHlicmlkKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBwYXJ0aWFsc1JpZ2h0LCBob2xkZXJzUmlnaHQsIGFyZ1BvcywgYXJ5LCBhcml0eSkge1xuICAgICAgdmFyIGlzQXJ5ID0gYml0bWFzayAmIFdSQVBfQVJZX0ZMQUcsXG4gICAgICAgICAgaXNCaW5kID0gYml0bWFzayAmIFdSQVBfQklORF9GTEFHLFxuICAgICAgICAgIGlzQmluZEtleSA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfS0VZX0ZMQUcsXG4gICAgICAgICAgaXNDdXJyaWVkID0gYml0bWFzayAmIChXUkFQX0NVUlJZX0ZMQUcgfCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcpLFxuICAgICAgICAgIGlzRmxpcCA9IGJpdG1hc2sgJiBXUkFQX0ZMSVBfRkxBRyxcbiAgICAgICAgICBDdG9yID0gaXNCaW5kS2V5ID8gdW5kZWZpbmVkIDogY3JlYXRlQ3RvcihmdW5jKTtcblxuICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgICAgICBhcmdzID0gQXJyYXkobGVuZ3RoKSxcbiAgICAgICAgICAgIGluZGV4ID0gbGVuZ3RoO1xuXG4gICAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgICAgYXJnc1tpbmRleF0gPSBhcmd1bWVudHNbaW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0N1cnJpZWQpIHtcbiAgICAgICAgICB2YXIgcGxhY2Vob2xkZXIgPSBnZXRIb2xkZXIod3JhcHBlciksXG4gICAgICAgICAgICAgIGhvbGRlcnNDb3VudCA9IGNvdW50SG9sZGVycyhhcmdzLCBwbGFjZWhvbGRlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcnRpYWxzKSB7XG4gICAgICAgICAgYXJncyA9IGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzLCBpc0N1cnJpZWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJ0aWFsc1JpZ2h0KSB7XG4gICAgICAgICAgYXJncyA9IGNvbXBvc2VBcmdzUmlnaHQoYXJncywgcGFydGlhbHNSaWdodCwgaG9sZGVyc1JpZ2h0LCBpc0N1cnJpZWQpO1xuICAgICAgICB9XG4gICAgICAgIGxlbmd0aCAtPSBob2xkZXJzQ291bnQ7XG4gICAgICAgIGlmIChpc0N1cnJpZWQgJiYgbGVuZ3RoIDwgYXJpdHkpIHtcbiAgICAgICAgICB2YXIgbmV3SG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKGFyZ3MsIHBsYWNlaG9sZGVyKTtcbiAgICAgICAgICByZXR1cm4gY3JlYXRlUmVjdXJyeShcbiAgICAgICAgICAgIGZ1bmMsIGJpdG1hc2ssIGNyZWF0ZUh5YnJpZCwgd3JhcHBlci5wbGFjZWhvbGRlciwgdGhpc0FyZyxcbiAgICAgICAgICAgIGFyZ3MsIG5ld0hvbGRlcnMsIGFyZ1BvcywgYXJ5LCBhcml0eSAtIGxlbmd0aFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRoaXNCaW5kaW5nID0gaXNCaW5kID8gdGhpc0FyZyA6IHRoaXMsXG4gICAgICAgICAgICBmbiA9IGlzQmluZEtleSA/IHRoaXNCaW5kaW5nW2Z1bmNdIDogZnVuYztcblxuICAgICAgICBsZW5ndGggPSBhcmdzLmxlbmd0aDtcbiAgICAgICAgaWYgKGFyZ1Bvcykge1xuICAgICAgICAgIGFyZ3MgPSByZW9yZGVyKGFyZ3MsIGFyZ1Bvcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNGbGlwICYmIGxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBhcmdzLnJldmVyc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNBcnkgJiYgYXJ5IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgYXJncy5sZW5ndGggPSBhcnk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcikge1xuICAgICAgICAgIGZuID0gQ3RvciB8fCBjcmVhdGVDdG9yKGZuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpc0JpbmRpbmcsIGFyZ3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uaW52ZXJ0QnlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzZXR0ZXIgVGhlIGZ1bmN0aW9uIHRvIHNldCBhY2N1bXVsYXRvciB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gdG9JdGVyYXRlZSBUaGUgZnVuY3Rpb24gdG8gcmVzb2x2ZSBpdGVyYXRlZXMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgaW52ZXJ0ZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlSW52ZXJ0ZXIoc2V0dGVyLCB0b0l0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0LCBpdGVyYXRlZSkge1xuICAgICAgICByZXR1cm4gYmFzZUludmVydGVyKG9iamVjdCwgc2V0dGVyLCB0b0l0ZXJhdGVlKGl0ZXJhdGVlKSwge30pO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBhIG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gb24gdHdvIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3BlcmF0b3IgVGhlIGZ1bmN0aW9uIHRvIHBlcmZvcm0gdGhlIG9wZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2RlZmF1bHRWYWx1ZV0gVGhlIHZhbHVlIHVzZWQgZm9yIGB1bmRlZmluZWRgIGFyZ3VtZW50cy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZU1hdGhPcGVyYXRpb24ob3BlcmF0b3IsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBvdGhlcikge1xuICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiBvdGhlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJlc3VsdCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvdGhlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gb3RoZXI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgdHlwZW9mIG90aGVyID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGJhc2VUb1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICBvdGhlciA9IGJhc2VUb1N0cmluZyhvdGhlcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbHVlID0gYmFzZVRvTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgICAgIG90aGVyID0gYmFzZVRvTnVtYmVyKG90aGVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0ID0gb3BlcmF0b3IodmFsdWUsIG90aGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gbGlrZSBgXy5vdmVyYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gYXJyYXlGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgaXRlcmF0ZWVzLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG92ZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlT3ZlcihhcnJheUZ1bmMpIHtcbiAgICAgIHJldHVybiBmbGF0UmVzdChmdW5jdGlvbihpdGVyYXRlZXMpIHtcbiAgICAgICAgaXRlcmF0ZWVzID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBiYXNlVW5hcnkoZ2V0SXRlcmF0ZWUoKSkpO1xuICAgICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xuICAgICAgICAgIHZhciB0aGlzQXJnID0gdGhpcztcbiAgICAgICAgICByZXR1cm4gYXJyYXlGdW5jKGl0ZXJhdGVlcywgZnVuY3Rpb24oaXRlcmF0ZWUpIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBseShpdGVyYXRlZSwgdGhpc0FyZywgYXJncyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgcGFkZGluZyBmb3IgYHN0cmluZ2AgYmFzZWQgb24gYGxlbmd0aGAuIFRoZSBgY2hhcnNgIHN0cmluZ1xuICAgICAqIGlzIHRydW5jYXRlZCBpZiB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgZXhjZWVkcyBgbGVuZ3RoYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aCBUaGUgcGFkZGluZyBsZW5ndGguXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz0nICddIFRoZSBzdHJpbmcgdXNlZCBhcyBwYWRkaW5nLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHBhZGRpbmcgZm9yIGBzdHJpbmdgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVBhZGRpbmcobGVuZ3RoLCBjaGFycykge1xuICAgICAgY2hhcnMgPSBjaGFycyA9PT0gdW5kZWZpbmVkID8gJyAnIDogYmFzZVRvU3RyaW5nKGNoYXJzKTtcblxuICAgICAgdmFyIGNoYXJzTGVuZ3RoID0gY2hhcnMubGVuZ3RoO1xuICAgICAgaWYgKGNoYXJzTGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm4gY2hhcnNMZW5ndGggPyBiYXNlUmVwZWF0KGNoYXJzLCBsZW5ndGgpIDogY2hhcnM7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gYmFzZVJlcGVhdChjaGFycywgbmF0aXZlQ2VpbChsZW5ndGggLyBzdHJpbmdTaXplKGNoYXJzKSkpO1xuICAgICAgcmV0dXJuIGhhc1VuaWNvZGUoY2hhcnMpXG4gICAgICAgID8gY2FzdFNsaWNlKHN0cmluZ1RvQXJyYXkocmVzdWx0KSwgMCwgbGVuZ3RoKS5qb2luKCcnKVxuICAgICAgICA6IHJlc3VsdC5zbGljZSgwLCBsZW5ndGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHdyYXBzIGBmdW5jYCB0byBpbnZva2UgaXQgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmdcbiAgICAgKiBvZiBgdGhpc0FyZ2AgYW5kIGBwYXJ0aWFsc2AgcHJlcGVuZGVkIHRvIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgY3JlYXRlV3JhcGAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYXJ0aWFscyBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQgdG9cbiAgICAgKiAgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVBhcnRpYWwoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMpIHtcbiAgICAgIHZhciBpc0JpbmQgPSBiaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcsXG4gICAgICAgICAgQ3RvciA9IGNyZWF0ZUN0b3IoZnVuYyk7XG5cbiAgICAgIGZ1bmN0aW9uIHdyYXBwZXIoKSB7XG4gICAgICAgIHZhciBhcmdzSW5kZXggPSAtMSxcbiAgICAgICAgICAgIGFyZ3NMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICAgICAgbGVmdEluZGV4ID0gLTEsXG4gICAgICAgICAgICBsZWZ0TGVuZ3RoID0gcGFydGlhbHMubGVuZ3RoLFxuICAgICAgICAgICAgYXJncyA9IEFycmF5KGxlZnRMZW5ndGggKyBhcmdzTGVuZ3RoKSxcbiAgICAgICAgICAgIGZuID0gKHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcikgPyBDdG9yIDogZnVuYztcblxuICAgICAgICB3aGlsZSAoKytsZWZ0SW5kZXggPCBsZWZ0TGVuZ3RoKSB7XG4gICAgICAgICAgYXJnc1tsZWZ0SW5kZXhdID0gcGFydGlhbHNbbGVmdEluZGV4XTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoYXJnc0xlbmd0aC0tKSB7XG4gICAgICAgICAgYXJnc1tsZWZ0SW5kZXgrK10gPSBhcmd1bWVudHNbKythcmdzSW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcHBseShmbiwgaXNCaW5kID8gdGhpc0FyZyA6IHRoaXMsIGFyZ3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBfLnJhbmdlYCBvciBgXy5yYW5nZVJpZ2h0YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcmFuZ2UgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUmFuZ2UoZnJvbVJpZ2h0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oc3RhcnQsIGVuZCwgc3RlcCkge1xuICAgICAgICBpZiAoc3RlcCAmJiB0eXBlb2Ygc3RlcCAhPSAnbnVtYmVyJyAmJiBpc0l0ZXJhdGVlQ2FsbChzdGFydCwgZW5kLCBzdGVwKSkge1xuICAgICAgICAgIGVuZCA9IHN0ZXAgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRW5zdXJlIHRoZSBzaWduIG9mIGAtMGAgaXMgcHJlc2VydmVkLlxuICAgICAgICBzdGFydCA9IHRvRmluaXRlKHN0YXJ0KTtcbiAgICAgICAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZW5kID0gc3RhcnQ7XG4gICAgICAgICAgc3RhcnQgPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVuZCA9IHRvRmluaXRlKGVuZCk7XG4gICAgICAgIH1cbiAgICAgICAgc3RlcCA9IHN0ZXAgPT09IHVuZGVmaW5lZCA/IChzdGFydCA8IGVuZCA/IDEgOiAtMSkgOiB0b0Zpbml0ZShzdGVwKTtcbiAgICAgICAgcmV0dXJuIGJhc2VSYW5nZShzdGFydCwgZW5kLCBzdGVwLCBmcm9tUmlnaHQpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBhIHJlbGF0aW9uYWwgb3BlcmF0aW9uIG9uIHR3byB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wZXJhdG9yIFRoZSBmdW5jdGlvbiB0byBwZXJmb3JtIHRoZSBvcGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcmVsYXRpb25hbCBvcGVyYXRpb24gZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihvcGVyYXRvcikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBvdGhlcikge1xuICAgICAgICBpZiAoISh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgJiYgdHlwZW9mIG90aGVyID09ICdzdHJpbmcnKSkge1xuICAgICAgICAgIHZhbHVlID0gdG9OdW1iZXIodmFsdWUpO1xuICAgICAgICAgIG90aGVyID0gdG9OdW1iZXIob3RoZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcGVyYXRvcih2YWx1ZSwgb3RoZXIpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB3cmFwcyBgZnVuY2AgdG8gY29udGludWUgY3VycnlpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgY3JlYXRlV3JhcGAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB3cmFwRnVuYyBUaGUgZnVuY3Rpb24gdG8gY3JlYXRlIHRoZSBgZnVuY2Agd3JhcHBlci5cbiAgICAgKiBAcGFyYW0geyp9IHBsYWNlaG9sZGVyIFRoZSBwbGFjZWhvbGRlciB2YWx1ZS5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBwcmVwZW5kIHRvIHRob3NlIHByb3ZpZGVkIHRvXG4gICAgICogIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2hvbGRlcnNdIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2FyZ1Bvc10gVGhlIGFyZ3VtZW50IHBvc2l0aW9ucyBvZiB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJ5XSBUaGUgYXJpdHkgY2FwIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5XSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUmVjdXJyeShmdW5jLCBiaXRtYXNrLCB3cmFwRnVuYywgcGxhY2Vob2xkZXIsIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBhcmdQb3MsIGFyeSwgYXJpdHkpIHtcbiAgICAgIHZhciBpc0N1cnJ5ID0gYml0bWFzayAmIFdSQVBfQ1VSUllfRkxBRyxcbiAgICAgICAgICBuZXdIb2xkZXJzID0gaXNDdXJyeSA/IGhvbGRlcnMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmV3SG9sZGVyc1JpZ2h0ID0gaXNDdXJyeSA/IHVuZGVmaW5lZCA6IGhvbGRlcnMsXG4gICAgICAgICAgbmV3UGFydGlhbHMgPSBpc0N1cnJ5ID8gcGFydGlhbHMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmV3UGFydGlhbHNSaWdodCA9IGlzQ3VycnkgPyB1bmRlZmluZWQgOiBwYXJ0aWFscztcblxuICAgICAgYml0bWFzayB8PSAoaXNDdXJyeSA/IFdSQVBfUEFSVElBTF9GTEFHIDogV1JBUF9QQVJUSUFMX1JJR0hUX0ZMQUcpO1xuICAgICAgYml0bWFzayAmPSB+KGlzQ3VycnkgPyBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRyA6IFdSQVBfUEFSVElBTF9GTEFHKTtcblxuICAgICAgaWYgKCEoYml0bWFzayAmIFdSQVBfQ1VSUllfQk9VTkRfRkxBRykpIHtcbiAgICAgICAgYml0bWFzayAmPSB+KFdSQVBfQklORF9GTEFHIHwgV1JBUF9CSU5EX0tFWV9GTEFHKTtcbiAgICAgIH1cbiAgICAgIHZhciBuZXdEYXRhID0gW1xuICAgICAgICBmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBuZXdQYXJ0aWFscywgbmV3SG9sZGVycywgbmV3UGFydGlhbHNSaWdodCxcbiAgICAgICAgbmV3SG9sZGVyc1JpZ2h0LCBhcmdQb3MsIGFyeSwgYXJpdHlcbiAgICAgIF07XG5cbiAgICAgIHZhciByZXN1bHQgPSB3cmFwRnVuYy5hcHBseSh1bmRlZmluZWQsIG5ld0RhdGEpO1xuICAgICAgaWYgKGlzTGF6aWFibGUoZnVuYykpIHtcbiAgICAgICAgc2V0RGF0YShyZXN1bHQsIG5ld0RhdGEpO1xuICAgICAgfVxuICAgICAgcmVzdWx0LnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XG4gICAgICByZXR1cm4gc2V0V3JhcFRvU3RyaW5nKHJlc3VsdCwgZnVuYywgYml0bWFzayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8ucm91bmRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kTmFtZSBUaGUgbmFtZSBvZiB0aGUgYE1hdGhgIG1ldGhvZCB0byB1c2Ugd2hlbiByb3VuZGluZy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByb3VuZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVSb3VuZChtZXRob2ROYW1lKSB7XG4gICAgICB2YXIgZnVuYyA9IE1hdGhbbWV0aG9kTmFtZV07XG4gICAgICByZXR1cm4gZnVuY3Rpb24obnVtYmVyLCBwcmVjaXNpb24pIHtcbiAgICAgICAgbnVtYmVyID0gdG9OdW1iZXIobnVtYmVyKTtcbiAgICAgICAgcHJlY2lzaW9uID0gcHJlY2lzaW9uID09IG51bGwgPyAwIDogbmF0aXZlTWluKHRvSW50ZWdlcihwcmVjaXNpb24pLCAyOTIpO1xuICAgICAgICBpZiAocHJlY2lzaW9uICYmIG5hdGl2ZUlzRmluaXRlKG51bWJlcikpIHtcbiAgICAgICAgICAvLyBTaGlmdCB3aXRoIGV4cG9uZW50aWFsIG5vdGF0aW9uIHRvIGF2b2lkIGZsb2F0aW5nLXBvaW50IGlzc3Vlcy5cbiAgICAgICAgICAvLyBTZWUgW01ETl0oaHR0cHM6Ly9tZG4uaW8vcm91bmQjRXhhbXBsZXMpIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICAgICAgdmFyIHBhaXIgPSAodG9TdHJpbmcobnVtYmVyKSArICdlJykuc3BsaXQoJ2UnKSxcbiAgICAgICAgICAgICAgdmFsdWUgPSBmdW5jKHBhaXJbMF0gKyAnZScgKyAoK3BhaXJbMV0gKyBwcmVjaXNpb24pKTtcblxuICAgICAgICAgIHBhaXIgPSAodG9TdHJpbmcodmFsdWUpICsgJ2UnKS5zcGxpdCgnZScpO1xuICAgICAgICAgIHJldHVybiArKHBhaXJbMF0gKyAnZScgKyAoK3BhaXJbMV0gLSBwcmVjaXNpb24pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuYyhudW1iZXIpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2V0IG9iamVjdCBvZiBgdmFsdWVzYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gYWRkIHRvIHRoZSBzZXQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IHNldC5cbiAgICAgKi9cbiAgICB2YXIgY3JlYXRlU2V0ID0gIShTZXQgJiYgKDEgLyBzZXRUb0FycmF5KG5ldyBTZXQoWywtMF0pKVsxXSkgPT0gSU5GSU5JVFkpID8gbm9vcCA6IGZ1bmN0aW9uKHZhbHVlcykge1xuICAgICAgcmV0dXJuIG5ldyBTZXQodmFsdWVzKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBfLnRvUGFpcnNgIG9yIGBfLnRvUGFpcnNJbmAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYSBnaXZlbiBvYmplY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcGFpcnMgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlVG9QYWlycyhrZXlzRnVuYykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICB2YXIgdGFnID0gZ2V0VGFnKG9iamVjdCk7XG4gICAgICAgIGlmICh0YWcgPT0gbWFwVGFnKSB7XG4gICAgICAgICAgcmV0dXJuIG1hcFRvQXJyYXkob2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFnID09IHNldFRhZykge1xuICAgICAgICAgIHJldHVybiBzZXRUb1BhaXJzKG9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJhc2VUb1BhaXJzKG9iamVjdCwga2V5c0Z1bmMob2JqZWN0KSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGVpdGhlciBjdXJyaWVzIG9yIGludm9rZXMgYGZ1bmNgIHdpdGggb3B0aW9uYWxcbiAgICAgKiBgdGhpc2AgYmluZGluZyBhbmQgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufHN0cmluZ30gZnVuYyBUaGUgZnVuY3Rpb24gb3IgbWV0aG9kIG5hbWUgdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy5cbiAgICAgKiAgICAxIC0gYF8uYmluZGBcbiAgICAgKiAgICAyIC0gYF8uYmluZEtleWBcbiAgICAgKiAgICA0IC0gYF8uY3VycnlgIG9yIGBfLmN1cnJ5UmlnaHRgIG9mIGEgYm91bmQgZnVuY3Rpb25cbiAgICAgKiAgICA4IC0gYF8uY3VycnlgXG4gICAgICogICAxNiAtIGBfLmN1cnJ5UmlnaHRgXG4gICAgICogICAzMiAtIGBfLnBhcnRpYWxgXG4gICAgICogICA2NCAtIGBfLnBhcnRpYWxSaWdodGBcbiAgICAgKiAgMTI4IC0gYF8ucmVhcmdgXG4gICAgICogIDI1NiAtIGBfLmFyeWBcbiAgICAgKiAgNTEyIC0gYF8uZmxpcGBcbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbYXJnUG9zXSBUaGUgYXJndW1lbnQgcG9zaXRpb25zIG9mIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJpdHldIFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVXcmFwKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBhcmdQb3MsIGFyeSwgYXJpdHkpIHtcbiAgICAgIHZhciBpc0JpbmRLZXkgPSBiaXRtYXNrICYgV1JBUF9CSU5EX0tFWV9GTEFHO1xuICAgICAgaWYgKCFpc0JpbmRLZXkgJiYgdHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gcGFydGlhbHMgPyBwYXJ0aWFscy5sZW5ndGggOiAwO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgYml0bWFzayAmPSB+KFdSQVBfUEFSVElBTF9GTEFHIHwgV1JBUF9QQVJUSUFMX1JJR0hUX0ZMQUcpO1xuICAgICAgICBwYXJ0aWFscyA9IGhvbGRlcnMgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBhcnkgPSBhcnkgPT09IHVuZGVmaW5lZCA/IGFyeSA6IG5hdGl2ZU1heCh0b0ludGVnZXIoYXJ5KSwgMCk7XG4gICAgICBhcml0eSA9IGFyaXR5ID09PSB1bmRlZmluZWQgPyBhcml0eSA6IHRvSW50ZWdlcihhcml0eSk7XG4gICAgICBsZW5ndGggLT0gaG9sZGVycyA/IGhvbGRlcnMubGVuZ3RoIDogMDtcblxuICAgICAgaWYgKGJpdG1hc2sgJiBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRykge1xuICAgICAgICB2YXIgcGFydGlhbHNSaWdodCA9IHBhcnRpYWxzLFxuICAgICAgICAgICAgaG9sZGVyc1JpZ2h0ID0gaG9sZGVycztcblxuICAgICAgICBwYXJ0aWFscyA9IGhvbGRlcnMgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB2YXIgZGF0YSA9IGlzQmluZEtleSA/IHVuZGVmaW5lZCA6IGdldERhdGEoZnVuYyk7XG5cbiAgICAgIHZhciBuZXdEYXRhID0gW1xuICAgICAgICBmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscywgaG9sZGVycywgcGFydGlhbHNSaWdodCwgaG9sZGVyc1JpZ2h0LFxuICAgICAgICBhcmdQb3MsIGFyeSwgYXJpdHlcbiAgICAgIF07XG5cbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIG1lcmdlRGF0YShuZXdEYXRhLCBkYXRhKTtcbiAgICAgIH1cbiAgICAgIGZ1bmMgPSBuZXdEYXRhWzBdO1xuICAgICAgYml0bWFzayA9IG5ld0RhdGFbMV07XG4gICAgICB0aGlzQXJnID0gbmV3RGF0YVsyXTtcbiAgICAgIHBhcnRpYWxzID0gbmV3RGF0YVszXTtcbiAgICAgIGhvbGRlcnMgPSBuZXdEYXRhWzRdO1xuICAgICAgYXJpdHkgPSBuZXdEYXRhWzldID0gbmV3RGF0YVs5XSA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gKGlzQmluZEtleSA/IDAgOiBmdW5jLmxlbmd0aClcbiAgICAgICAgOiBuYXRpdmVNYXgobmV3RGF0YVs5XSAtIGxlbmd0aCwgMCk7XG5cbiAgICAgIGlmICghYXJpdHkgJiYgYml0bWFzayAmIChXUkFQX0NVUlJZX0ZMQUcgfCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcpKSB7XG4gICAgICAgIGJpdG1hc2sgJj0gfihXUkFQX0NVUlJZX0ZMQUcgfCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcpO1xuICAgICAgfVxuICAgICAgaWYgKCFiaXRtYXNrIHx8IGJpdG1hc2sgPT0gV1JBUF9CSU5EX0ZMQUcpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGNyZWF0ZUJpbmQoZnVuYywgYml0bWFzaywgdGhpc0FyZyk7XG4gICAgICB9IGVsc2UgaWYgKGJpdG1hc2sgPT0gV1JBUF9DVVJSWV9GTEFHIHx8IGJpdG1hc2sgPT0gV1JBUF9DVVJSWV9SSUdIVF9GTEFHKSB7XG4gICAgICAgIHJlc3VsdCA9IGNyZWF0ZUN1cnJ5KGZ1bmMsIGJpdG1hc2ssIGFyaXR5KTtcbiAgICAgIH0gZWxzZSBpZiAoKGJpdG1hc2sgPT0gV1JBUF9QQVJUSUFMX0ZMQUcgfHwgYml0bWFzayA9PSAoV1JBUF9CSU5EX0ZMQUcgfCBXUkFQX1BBUlRJQUxfRkxBRykpICYmICFob2xkZXJzLmxlbmd0aCkge1xuICAgICAgICByZXN1bHQgPSBjcmVhdGVQYXJ0aWFsKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IGNyZWF0ZUh5YnJpZC5hcHBseSh1bmRlZmluZWQsIG5ld0RhdGEpO1xuICAgICAgfVxuICAgICAgdmFyIHNldHRlciA9IGRhdGEgPyBiYXNlU2V0RGF0YSA6IHNldERhdGE7XG4gICAgICByZXR1cm4gc2V0V3JhcFRvU3RyaW5nKHNldHRlcihyZXN1bHQsIG5ld0RhdGEpLCBmdW5jLCBiaXRtYXNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIGJ5IGBfLmRlZmF1bHRzYCB0byBjdXN0b21pemUgaXRzIGBfLmFzc2lnbkluYCB1c2UgdG8gYXNzaWduIHByb3BlcnRpZXNcbiAgICAgKiBvZiBzb3VyY2Ugb2JqZWN0cyB0byB0aGUgZGVzdGluYXRpb24gb2JqZWN0IGZvciBhbGwgZGVzdGluYXRpb24gcHJvcGVydGllc1xuICAgICAqIHRoYXQgcmVzb2x2ZSB0byBgdW5kZWZpbmVkYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSBvYmpWYWx1ZSBUaGUgZGVzdGluYXRpb24gdmFsdWUuXG4gICAgICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgc291cmNlIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHBhcmVudCBvYmplY3Qgb2YgYG9ialZhbHVlYC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgdmFsdWUgdG8gYXNzaWduLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGN1c3RvbURlZmF1bHRzQXNzaWduSW4ob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCkge1xuICAgICAgaWYgKG9ialZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAoZXEob2JqVmFsdWUsIG9iamVjdFByb3RvW2tleV0pICYmICFoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkpIHtcbiAgICAgICAgcmV0dXJuIHNyY1ZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9ialZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZWQgYnkgYF8uZGVmYXVsdHNEZWVwYCB0byBjdXN0b21pemUgaXRzIGBfLm1lcmdlYCB1c2UgdG8gbWVyZ2Ugc291cmNlXG4gICAgICogb2JqZWN0cyBpbnRvIGRlc3RpbmF0aW9uIG9iamVjdHMgdGhhdCBhcmUgcGFzc2VkIHRocnUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gb2JqVmFsdWUgVGhlIGRlc3RpbmF0aW9uIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7Kn0gc3JjVmFsdWUgVGhlIHNvdXJjZSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIG1lcmdlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHBhcmVudCBvYmplY3Qgb2YgYG9ialZhbHVlYC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBwYXJlbnQgb2JqZWN0IG9mIGBzcmNWYWx1ZWAuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtzdGFja10gVHJhY2tzIHRyYXZlcnNlZCBzb3VyY2UgdmFsdWVzIGFuZCB0aGVpciBtZXJnZWRcbiAgICAgKiAgY291bnRlcnBhcnRzLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3VzdG9tRGVmYXVsdHNNZXJnZShvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKSB7XG4gICAgICBpZiAoaXNPYmplY3Qob2JqVmFsdWUpICYmIGlzT2JqZWN0KHNyY1ZhbHVlKSkge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBtZXJnZSBvYmplY3RzIGFuZCBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgc3RhY2suc2V0KHNyY1ZhbHVlLCBvYmpWYWx1ZSk7XG4gICAgICAgIGJhc2VNZXJnZShvYmpWYWx1ZSwgc3JjVmFsdWUsIHVuZGVmaW5lZCwgY3VzdG9tRGVmYXVsdHNNZXJnZSwgc3RhY2spO1xuICAgICAgICBzdGFja1snZGVsZXRlJ10oc3JjVmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9ialZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZWQgYnkgYF8ub21pdGAgdG8gY3VzdG9taXplIGl0cyBgXy5jbG9uZURlZXBgIHVzZSB0byBvbmx5IGNsb25lIHBsYWluXG4gICAgICogb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHVuY2xvbmVkIHZhbHVlIG9yIGB1bmRlZmluZWRgIHRvIGRlZmVyIGNsb25pbmcgdG8gYF8uY2xvbmVEZWVwYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjdXN0b21PbWl0Q2xvbmUodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc1BsYWluT2JqZWN0KHZhbHVlKSA/IHVuZGVmaW5lZCA6IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxEZWVwYCBmb3IgYXJyYXlzIHdpdGggc3VwcG9ydCBmb3JcbiAgICAgKiBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IG90aGVyIFRoZSBvdGhlciBhcnJheSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGJhc2VJc0VxdWFsYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGN1c3RvbWl6ZXIgVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHN0YWNrIFRyYWNrcyB0cmF2ZXJzZWQgYGFycmF5YCBhbmQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYXJyYXlzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXF1YWxBcnJheXMoYXJyYXksIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gICAgICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHLFxuICAgICAgICAgIGFyckxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICBvdGhMZW5ndGggPSBvdGhlci5sZW5ndGg7XG5cbiAgICAgIGlmIChhcnJMZW5ndGggIT0gb3RoTGVuZ3RoICYmICEoaXNQYXJ0aWFsICYmIG90aExlbmd0aCA+IGFyckxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgLy8gQ2hlY2sgdGhhdCBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgICAgIHZhciBhcnJTdGFja2VkID0gc3RhY2suZ2V0KGFycmF5KTtcbiAgICAgIHZhciBvdGhTdGFja2VkID0gc3RhY2suZ2V0KG90aGVyKTtcbiAgICAgIGlmIChhcnJTdGFja2VkICYmIG90aFN0YWNrZWQpIHtcbiAgICAgICAgcmV0dXJuIGFyclN0YWNrZWQgPT0gb3RoZXIgJiYgb3RoU3RhY2tlZCA9PSBhcnJheTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIHJlc3VsdCA9IHRydWUsXG4gICAgICAgICAgc2VlbiA9IChiaXRtYXNrICYgQ09NUEFSRV9VTk9SREVSRURfRkxBRykgPyBuZXcgU2V0Q2FjaGUgOiB1bmRlZmluZWQ7XG5cbiAgICAgIHN0YWNrLnNldChhcnJheSwgb3RoZXIpO1xuICAgICAgc3RhY2suc2V0KG90aGVyLCBhcnJheSk7XG5cbiAgICAgIC8vIElnbm9yZSBub24taW5kZXggcHJvcGVydGllcy5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgYXJyTGVuZ3RoKSB7XG4gICAgICAgIHZhciBhcnJWYWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICAgIG90aFZhbHVlID0gb3RoZXJbaW5kZXhdO1xuXG4gICAgICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICAgICAgdmFyIGNvbXBhcmVkID0gaXNQYXJ0aWFsXG4gICAgICAgICAgICA/IGN1c3RvbWl6ZXIob3RoVmFsdWUsIGFyclZhbHVlLCBpbmRleCwgb3RoZXIsIGFycmF5LCBzdGFjaylcbiAgICAgICAgICAgIDogY3VzdG9taXplcihhcnJWYWx1ZSwgb3RoVmFsdWUsIGluZGV4LCBhcnJheSwgb3RoZXIsIHN0YWNrKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29tcGFyZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmIChjb21wYXJlZCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbXBhcmUgYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgIGlmIChzZWVuKSB7XG4gICAgICAgICAgaWYgKCFhcnJheVNvbWUob3RoZXIsIGZ1bmN0aW9uKG90aFZhbHVlLCBvdGhJbmRleCkge1xuICAgICAgICAgICAgICAgIGlmICghY2FjaGVIYXMoc2Vlbiwgb3RoSW5kZXgpICYmXG4gICAgICAgICAgICAgICAgICAgIChhcnJWYWx1ZSA9PT0gb3RoVmFsdWUgfHwgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlZW4ucHVzaChvdGhJbmRleCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KSkge1xuICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIShcbiAgICAgICAgICAgICAgYXJyVmFsdWUgPT09IG90aFZhbHVlIHx8XG4gICAgICAgICAgICAgICAgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHN0YWNrWydkZWxldGUnXShhcnJheSk7XG4gICAgICBzdGFja1snZGVsZXRlJ10ob3RoZXIpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsRGVlcGAgZm9yIGNvbXBhcmluZyBvYmplY3RzIG9mXG4gICAgICogdGhlIHNhbWUgYHRvU3RyaW5nVGFnYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIG9ubHkgc3VwcG9ydHMgY29tcGFyaW5nIHZhbHVlcyB3aXRoIHRhZ3Mgb2ZcbiAgICAgKiBgQm9vbGVhbmAsIGBEYXRlYCwgYEVycm9yYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBvciBgU3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBgdG9TdHJpbmdUYWdgIG9mIHRoZSBvYmplY3RzIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgYmFzZUlzRXF1YWxgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc3RhY2sgVHJhY2tzIHRyYXZlcnNlZCBgb2JqZWN0YCBhbmQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVxdWFsQnlUYWcob2JqZWN0LCBvdGhlciwgdGFnLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gICAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgICBjYXNlIGRhdGFWaWV3VGFnOlxuICAgICAgICAgIGlmICgob2JqZWN0LmJ5dGVMZW5ndGggIT0gb3RoZXIuYnl0ZUxlbmd0aCkgfHxcbiAgICAgICAgICAgICAgKG9iamVjdC5ieXRlT2Zmc2V0ICE9IG90aGVyLmJ5dGVPZmZzZXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9iamVjdCA9IG9iamVjdC5idWZmZXI7XG4gICAgICAgICAgb3RoZXIgPSBvdGhlci5idWZmZXI7XG5cbiAgICAgICAgY2FzZSBhcnJheUJ1ZmZlclRhZzpcbiAgICAgICAgICBpZiAoKG9iamVjdC5ieXRlTGVuZ3RoICE9IG90aGVyLmJ5dGVMZW5ndGgpIHx8XG4gICAgICAgICAgICAgICFlcXVhbEZ1bmMobmV3IFVpbnQ4QXJyYXkob2JqZWN0KSwgbmV3IFVpbnQ4QXJyYXkob3RoZXIpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBjYXNlIGJvb2xUYWc6XG4gICAgICAgIGNhc2UgZGF0ZVRhZzpcbiAgICAgICAgY2FzZSBudW1iZXJUYWc6XG4gICAgICAgICAgLy8gQ29lcmNlIGJvb2xlYW5zIHRvIGAxYCBvciBgMGAgYW5kIGRhdGVzIHRvIG1pbGxpc2Vjb25kcy5cbiAgICAgICAgICAvLyBJbnZhbGlkIGRhdGVzIGFyZSBjb2VyY2VkIHRvIGBOYU5gLlxuICAgICAgICAgIHJldHVybiBlcSgrb2JqZWN0LCArb3RoZXIpO1xuXG4gICAgICAgIGNhc2UgZXJyb3JUYWc6XG4gICAgICAgICAgcmV0dXJuIG9iamVjdC5uYW1lID09IG90aGVyLm5hbWUgJiYgb2JqZWN0Lm1lc3NhZ2UgPT0gb3RoZXIubWVzc2FnZTtcblxuICAgICAgICBjYXNlIHJlZ2V4cFRhZzpcbiAgICAgICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICAgICAgLy8gQ29lcmNlIHJlZ2V4ZXMgdG8gc3RyaW5ncyBhbmQgdHJlYXQgc3RyaW5ncywgcHJpbWl0aXZlcyBhbmQgb2JqZWN0cyxcbiAgICAgICAgICAvLyBhcyBlcXVhbC4gU2VlIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1yZWdleHAucHJvdG90eXBlLnRvc3RyaW5nXG4gICAgICAgICAgLy8gZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IChvdGhlciArICcnKTtcblxuICAgICAgICBjYXNlIG1hcFRhZzpcbiAgICAgICAgICB2YXIgY29udmVydCA9IG1hcFRvQXJyYXk7XG5cbiAgICAgICAgY2FzZSBzZXRUYWc6XG4gICAgICAgICAgdmFyIGlzUGFydGlhbCA9IGJpdG1hc2sgJiBDT01QQVJFX1BBUlRJQUxfRkxBRztcbiAgICAgICAgICBjb252ZXJ0IHx8IChjb252ZXJ0ID0gc2V0VG9BcnJheSk7XG5cbiAgICAgICAgICBpZiAob2JqZWN0LnNpemUgIT0gb3RoZXIuc2l6ZSAmJiAhaXNQYXJ0aWFsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEFzc3VtZSBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgICAgICAgICB2YXIgc3RhY2tlZCA9IHN0YWNrLmdldChvYmplY3QpO1xuICAgICAgICAgIGlmIChzdGFja2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RhY2tlZCA9PSBvdGhlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgYml0bWFzayB8PSBDT01QQVJFX1VOT1JERVJFRF9GTEFHO1xuXG4gICAgICAgICAgLy8gUmVjdXJzaXZlbHkgY29tcGFyZSBvYmplY3RzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgICAgc3RhY2suc2V0KG9iamVjdCwgb3RoZXIpO1xuICAgICAgICAgIHZhciByZXN1bHQgPSBlcXVhbEFycmF5cyhjb252ZXJ0KG9iamVjdCksIGNvbnZlcnQob3RoZXIpLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKTtcbiAgICAgICAgICBzdGFja1snZGVsZXRlJ10ob2JqZWN0KTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuXG4gICAgICAgIGNhc2Ugc3ltYm9sVGFnOlxuICAgICAgICAgIGlmIChzeW1ib2xWYWx1ZU9mKSB7XG4gICAgICAgICAgICByZXR1cm4gc3ltYm9sVmFsdWVPZi5jYWxsKG9iamVjdCkgPT0gc3ltYm9sVmFsdWVPZi5jYWxsKG90aGVyKTtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBvYmplY3RzIHdpdGggc3VwcG9ydCBmb3JcbiAgICAgKiBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgYmFzZUlzRXF1YWxgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc3RhY2sgVHJhY2tzIHRyYXZlcnNlZCBgb2JqZWN0YCBhbmQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVxdWFsT2JqZWN0cyhvYmplY3QsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gICAgICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHLFxuICAgICAgICAgIG9ialByb3BzID0gZ2V0QWxsS2V5cyhvYmplY3QpLFxuICAgICAgICAgIG9iakxlbmd0aCA9IG9ialByb3BzLmxlbmd0aCxcbiAgICAgICAgICBvdGhQcm9wcyA9IGdldEFsbEtleXMob3RoZXIpLFxuICAgICAgICAgIG90aExlbmd0aCA9IG90aFByb3BzLmxlbmd0aDtcblxuICAgICAgaWYgKG9iakxlbmd0aCAhPSBvdGhMZW5ndGggJiYgIWlzUGFydGlhbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSBvYmpMZW5ndGg7XG4gICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICB2YXIga2V5ID0gb2JqUHJvcHNbaW5kZXhdO1xuICAgICAgICBpZiAoIShpc1BhcnRpYWwgPyBrZXkgaW4gb3RoZXIgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG90aGVyLCBrZXkpKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gQ2hlY2sgdGhhdCBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgICAgIHZhciBvYmpTdGFja2VkID0gc3RhY2suZ2V0KG9iamVjdCk7XG4gICAgICB2YXIgb3RoU3RhY2tlZCA9IHN0YWNrLmdldChvdGhlcik7XG4gICAgICBpZiAob2JqU3RhY2tlZCAmJiBvdGhTdGFja2VkKSB7XG4gICAgICAgIHJldHVybiBvYmpTdGFja2VkID09IG90aGVyICYmIG90aFN0YWNrZWQgPT0gb2JqZWN0O1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IHRydWU7XG4gICAgICBzdGFjay5zZXQob2JqZWN0LCBvdGhlcik7XG4gICAgICBzdGFjay5zZXQob3RoZXIsIG9iamVjdCk7XG5cbiAgICAgIHZhciBza2lwQ3RvciA9IGlzUGFydGlhbDtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgb2JqTGVuZ3RoKSB7XG4gICAgICAgIGtleSA9IG9ialByb3BzW2luZGV4XTtcbiAgICAgICAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV0sXG4gICAgICAgICAgICBvdGhWYWx1ZSA9IG90aGVyW2tleV07XG5cbiAgICAgICAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICB2YXIgY29tcGFyZWQgPSBpc1BhcnRpYWxcbiAgICAgICAgICAgID8gY3VzdG9taXplcihvdGhWYWx1ZSwgb2JqVmFsdWUsIGtleSwgb3RoZXIsIG9iamVjdCwgc3RhY2spXG4gICAgICAgICAgICA6IGN1c3RvbWl6ZXIob2JqVmFsdWUsIG90aFZhbHVlLCBrZXksIG9iamVjdCwgb3RoZXIsIHN0YWNrKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIG9iamVjdHMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgaWYgKCEoY29tcGFyZWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IChvYmpWYWx1ZSA9PT0gb3RoVmFsdWUgfHwgZXF1YWxGdW5jKG9ialZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spKVxuICAgICAgICAgICAgICA6IGNvbXBhcmVkXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgc2tpcEN0b3IgfHwgKHNraXBDdG9yID0ga2V5ID09ICdjb25zdHJ1Y3RvcicpO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdCAmJiAhc2tpcEN0b3IpIHtcbiAgICAgICAgdmFyIG9iakN0b3IgPSBvYmplY3QuY29uc3RydWN0b3IsXG4gICAgICAgICAgICBvdGhDdG9yID0gb3RoZXIuY29uc3RydWN0b3I7XG5cbiAgICAgICAgLy8gTm9uIGBPYmplY3RgIG9iamVjdCBpbnN0YW5jZXMgd2l0aCBkaWZmZXJlbnQgY29uc3RydWN0b3JzIGFyZSBub3QgZXF1YWwuXG4gICAgICAgIGlmIChvYmpDdG9yICE9IG90aEN0b3IgJiZcbiAgICAgICAgICAgICgnY29uc3RydWN0b3InIGluIG9iamVjdCAmJiAnY29uc3RydWN0b3InIGluIG90aGVyKSAmJlxuICAgICAgICAgICAgISh0eXBlb2Ygb2JqQ3RvciA9PSAnZnVuY3Rpb24nICYmIG9iakN0b3IgaW5zdGFuY2VvZiBvYmpDdG9yICYmXG4gICAgICAgICAgICAgIHR5cGVvZiBvdGhDdG9yID09ICdmdW5jdGlvbicgJiYgb3RoQ3RvciBpbnN0YW5jZW9mIG90aEN0b3IpKSB7XG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHN0YWNrWydkZWxldGUnXShvYmplY3QpO1xuICAgICAgc3RhY2tbJ2RlbGV0ZSddKG90aGVyKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUmVzdGAgd2hpY2ggZmxhdHRlbnMgdGhlIHJlc3QgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmxhdFJlc3QoZnVuYykge1xuICAgICAgcmV0dXJuIHNldFRvU3RyaW5nKG92ZXJSZXN0KGZ1bmMsIHVuZGVmaW5lZCwgZmxhdHRlbiksIGZ1bmMgKyAnJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgYW5kIHN5bWJvbHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0QWxsS2V5cyhvYmplY3QpIHtcbiAgICAgIHJldHVybiBiYXNlR2V0QWxsS2V5cyhvYmplY3QsIGtleXMsIGdldFN5bWJvbHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcbiAgICAgKiBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRBbGxLZXlzSW4ob2JqZWN0KSB7XG4gICAgICByZXR1cm4gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzSW4sIGdldFN5bWJvbHNJbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBtZXRhZGF0YSBmb3IgYGZ1bmNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWV0YWRhdGEgZm9yIGBmdW5jYC5cbiAgICAgKi9cbiAgICB2YXIgZ2V0RGF0YSA9ICFtZXRhTWFwID8gbm9vcCA6IGZ1bmN0aW9uKGZ1bmMpIHtcbiAgICAgIHJldHVybiBtZXRhTWFwLmdldChmdW5jKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbmFtZSBvZiBgZnVuY2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGZ1bmN0aW9uIG5hbWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0RnVuY05hbWUoZnVuYykge1xuICAgICAgdmFyIHJlc3VsdCA9IChmdW5jLm5hbWUgKyAnJyksXG4gICAgICAgICAgYXJyYXkgPSByZWFsTmFtZXNbcmVzdWx0XSxcbiAgICAgICAgICBsZW5ndGggPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlYWxOYW1lcywgcmVzdWx0KSA/IGFycmF5Lmxlbmd0aCA6IDA7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICB2YXIgZGF0YSA9IGFycmF5W2xlbmd0aF0sXG4gICAgICAgICAgICBvdGhlckZ1bmMgPSBkYXRhLmZ1bmM7XG4gICAgICAgIGlmIChvdGhlckZ1bmMgPT0gbnVsbCB8fCBvdGhlckZ1bmMgPT0gZnVuYykge1xuICAgICAgICAgIHJldHVybiBkYXRhLm5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgYXJndW1lbnQgcGxhY2Vob2xkZXIgdmFsdWUgZm9yIGBmdW5jYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcGxhY2Vob2xkZXIgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0SG9sZGVyKGZ1bmMpIHtcbiAgICAgIHZhciBvYmplY3QgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKGxvZGFzaCwgJ3BsYWNlaG9sZGVyJykgPyBsb2Rhc2ggOiBmdW5jO1xuICAgICAgcmV0dXJuIG9iamVjdC5wbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBhcHByb3ByaWF0ZSBcIml0ZXJhdGVlXCIgZnVuY3Rpb24uIElmIGBfLml0ZXJhdGVlYCBpcyBjdXN0b21pemVkLFxuICAgICAqIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgY3VzdG9tIG1ldGhvZCwgb3RoZXJ3aXNlIGl0IHJldHVybnMgYGJhc2VJdGVyYXRlZWAuXG4gICAgICogSWYgYXJndW1lbnRzIGFyZSBwcm92aWRlZCwgdGhlIGNob3NlbiBmdW5jdGlvbiBpcyBpbnZva2VkIHdpdGggdGhlbSBhbmRcbiAgICAgKiBpdHMgcmVzdWx0IGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IFt2YWx1ZV0gVGhlIHZhbHVlIHRvIGNvbnZlcnQgdG8gYW4gaXRlcmF0ZWUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcml0eV0gVGhlIGFyaXR5IG9mIHRoZSBjcmVhdGVkIGl0ZXJhdGVlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgY2hvc2VuIGZ1bmN0aW9uIG9yIGl0cyByZXN1bHQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0SXRlcmF0ZWUoKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gbG9kYXNoLml0ZXJhdGVlIHx8IGl0ZXJhdGVlO1xuICAgICAgcmVzdWx0ID0gcmVzdWx0ID09PSBpdGVyYXRlZSA/IGJhc2VJdGVyYXRlZSA6IHJlc3VsdDtcbiAgICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gcmVzdWx0KGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdKSA6IHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBkYXRhIGZvciBgbWFwYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG1hcCBUaGUgbWFwIHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIHJlZmVyZW5jZSBrZXkuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1hcCBkYXRhLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldE1hcERhdGEobWFwLCBrZXkpIHtcbiAgICAgIHZhciBkYXRhID0gbWFwLl9fZGF0YV9fO1xuICAgICAgcmV0dXJuIGlzS2V5YWJsZShrZXkpXG4gICAgICAgID8gZGF0YVt0eXBlb2Yga2V5ID09ICdzdHJpbmcnID8gJ3N0cmluZycgOiAnaGFzaCddXG4gICAgICAgIDogZGF0YS5tYXA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcHJvcGVydHkgbmFtZXMsIHZhbHVlcywgYW5kIGNvbXBhcmUgZmxhZ3Mgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG1hdGNoIGRhdGEgb2YgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0TWF0Y2hEYXRhKG9iamVjdCkge1xuICAgICAgdmFyIHJlc3VsdCA9IGtleXMob2JqZWN0KSxcbiAgICAgICAgICBsZW5ndGggPSByZXN1bHQubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgdmFyIGtleSA9IHJlc3VsdFtsZW5ndGhdLFxuICAgICAgICAgICAgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuICAgICAgICByZXN1bHRbbGVuZ3RoXSA9IFtrZXksIHZhbHVlLCBpc1N0cmljdENvbXBhcmFibGUodmFsdWUpXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbmF0aXZlIGZ1bmN0aW9uIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBtZXRob2QgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXROYXRpdmUob2JqZWN0LCBrZXkpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGdldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgICAgIHJldHVybiBiYXNlSXNOYXRpdmUodmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlR2V0VGFnYCB3aGljaCBpZ25vcmVzIGBTeW1ib2wudG9TdHJpbmdUYWdgIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmF3IGB0b1N0cmluZ1RhZ2AuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0UmF3VGFnKHZhbHVlKSB7XG4gICAgICB2YXIgaXNPd24gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBzeW1Ub1N0cmluZ1RhZyksXG4gICAgICAgICAgdGFnID0gdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuXG4gICAgICB0cnkge1xuICAgICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciB1bm1hc2tlZCA9IHRydWU7XG4gICAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgICB2YXIgcmVzdWx0ID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgICBpZiAodW5tYXNrZWQpIHtcbiAgICAgICAgaWYgKGlzT3duKSB7XG4gICAgICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2Ygc3ltYm9scy5cbiAgICAgKi9cbiAgICB2YXIgZ2V0U3ltYm9scyA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgICByZXR1cm4gYXJyYXlGaWx0ZXIobmF0aXZlR2V0U3ltYm9scyhvYmplY3QpLCBmdW5jdGlvbihzeW1ib2wpIHtcbiAgICAgICAgcmV0dXJuIHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwob2JqZWN0LCBzeW1ib2wpO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2Ygc3ltYm9scy5cbiAgICAgKi9cbiAgICB2YXIgZ2V0U3ltYm9sc0luID0gIW5hdGl2ZUdldFN5bWJvbHMgPyBzdHViQXJyYXkgOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIHdoaWxlIChvYmplY3QpIHtcbiAgICAgICAgYXJyYXlQdXNoKHJlc3VsdCwgZ2V0U3ltYm9scyhvYmplY3QpKTtcbiAgICAgICAgb2JqZWN0ID0gZ2V0UHJvdG90eXBlKG9iamVjdCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBgdG9TdHJpbmdUYWdgIG9mIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gICAgICovXG4gICAgdmFyIGdldFRhZyA9IGJhc2VHZXRUYWc7XG5cbiAgICAvLyBGYWxsYmFjayBmb3IgZGF0YSB2aWV3cywgbWFwcywgc2V0cywgYW5kIHdlYWsgbWFwcyBpbiBJRSAxMSBhbmQgcHJvbWlzZXMgaW4gTm9kZS5qcyA8IDYuXG4gICAgaWYgKChEYXRhVmlldyAmJiBnZXRUYWcobmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigxKSkpICE9IGRhdGFWaWV3VGFnKSB8fFxuICAgICAgICAoTWFwICYmIGdldFRhZyhuZXcgTWFwKSAhPSBtYXBUYWcpIHx8XG4gICAgICAgIChQcm9taXNlICYmIGdldFRhZyhQcm9taXNlLnJlc29sdmUoKSkgIT0gcHJvbWlzZVRhZykgfHxcbiAgICAgICAgKFNldCAmJiBnZXRUYWcobmV3IFNldCkgIT0gc2V0VGFnKSB8fFxuICAgICAgICAoV2Vha01hcCAmJiBnZXRUYWcobmV3IFdlYWtNYXApICE9IHdlYWtNYXBUYWcpKSB7XG4gICAgICBnZXRUYWcgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gYmFzZUdldFRhZyh2YWx1ZSksXG4gICAgICAgICAgICBDdG9yID0gcmVzdWx0ID09IG9iamVjdFRhZyA/IHZhbHVlLmNvbnN0cnVjdG9yIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY3RvclN0cmluZyA9IEN0b3IgPyB0b1NvdXJjZShDdG9yKSA6ICcnO1xuXG4gICAgICAgIGlmIChjdG9yU3RyaW5nKSB7XG4gICAgICAgICAgc3dpdGNoIChjdG9yU3RyaW5nKSB7XG4gICAgICAgICAgICBjYXNlIGRhdGFWaWV3Q3RvclN0cmluZzogcmV0dXJuIGRhdGFWaWV3VGFnO1xuICAgICAgICAgICAgY2FzZSBtYXBDdG9yU3RyaW5nOiByZXR1cm4gbWFwVGFnO1xuICAgICAgICAgICAgY2FzZSBwcm9taXNlQ3RvclN0cmluZzogcmV0dXJuIHByb21pc2VUYWc7XG4gICAgICAgICAgICBjYXNlIHNldEN0b3JTdHJpbmc6IHJldHVybiBzZXRUYWc7XG4gICAgICAgICAgICBjYXNlIHdlYWtNYXBDdG9yU3RyaW5nOiByZXR1cm4gd2Vha01hcFRhZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgdmlldywgYXBwbHlpbmcgYW55IGB0cmFuc2Zvcm1zYCB0byB0aGUgYHN0YXJ0YCBhbmQgYGVuZGAgcG9zaXRpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSB2aWV3LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgVGhlIGVuZCBvZiB0aGUgdmlldy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSB0cmFuc2Zvcm1zIFRoZSB0cmFuc2Zvcm1hdGlvbnMgdG8gYXBwbHkgdG8gdGhlIHZpZXcuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgYHN0YXJ0YCBhbmQgYGVuZGBcbiAgICAgKiAgcG9zaXRpb25zIG9mIHRoZSB2aWV3LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldFZpZXcoc3RhcnQsIGVuZCwgdHJhbnNmb3Jtcykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gdHJhbnNmb3Jtcy5sZW5ndGg7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBkYXRhID0gdHJhbnNmb3Jtc1tpbmRleF0sXG4gICAgICAgICAgICBzaXplID0gZGF0YS5zaXplO1xuXG4gICAgICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnZHJvcCc6ICAgICAgc3RhcnQgKz0gc2l6ZTsgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZHJvcFJpZ2h0JzogZW5kIC09IHNpemU7IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Rha2UnOiAgICAgIGVuZCA9IG5hdGl2ZU1pbihlbmQsIHN0YXJ0ICsgc2l6ZSk7IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Rha2VSaWdodCc6IHN0YXJ0ID0gbmF0aXZlTWF4KHN0YXJ0LCBlbmQgLSBzaXplKTsgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7ICdzdGFydCc6IHN0YXJ0LCAnZW5kJzogZW5kIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXh0cmFjdHMgd3JhcHBlciBkZXRhaWxzIGZyb20gdGhlIGBzb3VyY2VgIGJvZHkgY29tbWVudC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZSBUaGUgc291cmNlIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSB3cmFwcGVyIGRldGFpbHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0V3JhcERldGFpbHMoc291cmNlKSB7XG4gICAgICB2YXIgbWF0Y2ggPSBzb3VyY2UubWF0Y2gocmVXcmFwRGV0YWlscyk7XG4gICAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsxXS5zcGxpdChyZVNwbGl0RGV0YWlscykgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHBhdGhgIGV4aXN0cyBvbiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIHRvIGNoZWNrLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGhhc0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGNoZWNrIHByb3BlcnRpZXMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBwYXRoYCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXNQYXRoKG9iamVjdCwgcGF0aCwgaGFzRnVuYykge1xuICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gdG9LZXkocGF0aFtpbmRleF0pO1xuICAgICAgICBpZiAoIShyZXN1bHQgPSBvYmplY3QgIT0gbnVsbCAmJiBoYXNGdW5jKG9iamVjdCwga2V5KSkpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBvYmplY3QgPSBvYmplY3Rba2V5XTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXN1bHQgfHwgKytpbmRleCAhPSBsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGxlbmd0aCA9IG9iamVjdCA9PSBudWxsID8gMCA6IG9iamVjdC5sZW5ndGg7XG4gICAgICByZXR1cm4gISFsZW5ndGggJiYgaXNMZW5ndGgobGVuZ3RoKSAmJiBpc0luZGV4KGtleSwgbGVuZ3RoKSAmJlxuICAgICAgICAoaXNBcnJheShvYmplY3QpIHx8IGlzQXJndW1lbnRzKG9iamVjdCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGFuIGFycmF5IGNsb25lLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY2xvbmUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbml0Q2xvbmVBcnJheShhcnJheSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBuZXcgYXJyYXkuY29uc3RydWN0b3IobGVuZ3RoKTtcblxuICAgICAgLy8gQWRkIHByb3BlcnRpZXMgYXNzaWduZWQgYnkgYFJlZ0V4cCNleGVjYC5cbiAgICAgIGlmIChsZW5ndGggJiYgdHlwZW9mIGFycmF5WzBdID09ICdzdHJpbmcnICYmIGhhc093blByb3BlcnR5LmNhbGwoYXJyYXksICdpbmRleCcpKSB7XG4gICAgICAgIHJlc3VsdC5pbmRleCA9IGFycmF5LmluZGV4O1xuICAgICAgICByZXN1bHQuaW5wdXQgPSBhcnJheS5pbnB1dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xvbmUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5pdENsb25lT2JqZWN0KG9iamVjdCkge1xuICAgICAgcmV0dXJuICh0eXBlb2Ygb2JqZWN0LmNvbnN0cnVjdG9yID09ICdmdW5jdGlvbicgJiYgIWlzUHJvdG90eXBlKG9iamVjdCkpXG4gICAgICAgID8gYmFzZUNyZWF0ZShnZXRQcm90b3R5cGUob2JqZWN0KSlcbiAgICAgICAgOiB7fTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUgYmFzZWQgb24gaXRzIGB0b1N0cmluZ1RhZ2AuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNsb25pbmcgdmFsdWVzIHdpdGggdGFncyBvZlxuICAgICAqIGBCb29sZWFuYCwgYERhdGVgLCBgRXJyb3JgLCBgTWFwYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBgU2V0YCwgb3IgYFN0cmluZ2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBgdG9TdHJpbmdUYWdgIG9mIHRoZSBvYmplY3QgdG8gY2xvbmUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbml0Q2xvbmVCeVRhZyhvYmplY3QsIHRhZywgaXNEZWVwKSB7XG4gICAgICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgYXJyYXlCdWZmZXJUYWc6XG4gICAgICAgICAgcmV0dXJuIGNsb25lQXJyYXlCdWZmZXIob2JqZWN0KTtcblxuICAgICAgICBjYXNlIGJvb2xUYWc6XG4gICAgICAgIGNhc2UgZGF0ZVRhZzpcbiAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoK29iamVjdCk7XG5cbiAgICAgICAgY2FzZSBkYXRhVmlld1RhZzpcbiAgICAgICAgICByZXR1cm4gY2xvbmVEYXRhVmlldyhvYmplY3QsIGlzRGVlcCk7XG5cbiAgICAgICAgY2FzZSBmbG9hdDMyVGFnOiBjYXNlIGZsb2F0NjRUYWc6XG4gICAgICAgIGNhc2UgaW50OFRhZzogY2FzZSBpbnQxNlRhZzogY2FzZSBpbnQzMlRhZzpcbiAgICAgICAgY2FzZSB1aW50OFRhZzogY2FzZSB1aW50OENsYW1wZWRUYWc6IGNhc2UgdWludDE2VGFnOiBjYXNlIHVpbnQzMlRhZzpcbiAgICAgICAgICByZXR1cm4gY2xvbmVUeXBlZEFycmF5KG9iamVjdCwgaXNEZWVwKTtcblxuICAgICAgICBjYXNlIG1hcFRhZzpcbiAgICAgICAgICByZXR1cm4gbmV3IEN0b3I7XG5cbiAgICAgICAgY2FzZSBudW1iZXJUYWc6XG4gICAgICAgIGNhc2Ugc3RyaW5nVGFnOlxuICAgICAgICAgIHJldHVybiBuZXcgQ3RvcihvYmplY3QpO1xuXG4gICAgICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgICAgIHJldHVybiBjbG9uZVJlZ0V4cChvYmplY3QpO1xuXG4gICAgICAgIGNhc2Ugc2V0VGFnOlxuICAgICAgICAgIHJldHVybiBuZXcgQ3RvcjtcblxuICAgICAgICBjYXNlIHN5bWJvbFRhZzpcbiAgICAgICAgICByZXR1cm4gY2xvbmVTeW1ib2wob2JqZWN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnNlcnRzIHdyYXBwZXIgYGRldGFpbHNgIGluIGEgY29tbWVudCBhdCB0aGUgdG9wIG9mIHRoZSBgc291cmNlYCBib2R5LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlIFRoZSBzb3VyY2UgdG8gbW9kaWZ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gZGV0YWlscyBUaGUgZGV0YWlscyB0byBpbnNlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgbW9kaWZpZWQgc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluc2VydFdyYXBEZXRhaWxzKHNvdXJjZSwgZGV0YWlscykge1xuICAgICAgdmFyIGxlbmd0aCA9IGRldGFpbHMubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICAgIH1cbiAgICAgIHZhciBsYXN0SW5kZXggPSBsZW5ndGggLSAxO1xuICAgICAgZGV0YWlsc1tsYXN0SW5kZXhdID0gKGxlbmd0aCA+IDEgPyAnJiAnIDogJycpICsgZGV0YWlsc1tsYXN0SW5kZXhdO1xuICAgICAgZGV0YWlscyA9IGRldGFpbHMuam9pbihsZW5ndGggPiAyID8gJywgJyA6ICcgJyk7XG4gICAgICByZXR1cm4gc291cmNlLnJlcGxhY2UocmVXcmFwQ29tbWVudCwgJ3tcXG4vKiBbd3JhcHBlZCB3aXRoICcgKyBkZXRhaWxzICsgJ10gKi9cXG4nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGZsYXR0ZW5hYmxlIGBhcmd1bWVudHNgIG9iamVjdCBvciBhcnJheS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZmxhdHRlbmFibGUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0ZsYXR0ZW5hYmxlKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNBcnJheSh2YWx1ZSkgfHwgaXNBcmd1bWVudHModmFsdWUpIHx8XG4gICAgICAgICEhKHNwcmVhZGFibGVTeW1ib2wgJiYgdmFsdWUgJiYgdmFsdWVbc3ByZWFkYWJsZVN5bWJvbF0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBpbmRleC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgaW5kZXgsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgICAgIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgICAgbGVuZ3RoID0gbGVuZ3RoID09IG51bGwgPyBNQVhfU0FGRV9JTlRFR0VSIDogbGVuZ3RoO1xuXG4gICAgICByZXR1cm4gISFsZW5ndGggJiZcbiAgICAgICAgKHR5cGUgPT0gJ251bWJlcicgfHxcbiAgICAgICAgICAodHlwZSAhPSAnc3ltYm9sJyAmJiByZUlzVWludC50ZXN0KHZhbHVlKSkpICYmXG4gICAgICAgICAgICAodmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBhcmd1bWVudHMgYXJlIGZyb20gYW4gaXRlcmF0ZWUgY2FsbC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIHZhbHVlIGFyZ3VtZW50LlxuICAgICAqIEBwYXJhbSB7Kn0gaW5kZXggVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBpbmRleCBvciBrZXkgYXJndW1lbnQuXG4gICAgICogQHBhcmFtIHsqfSBvYmplY3QgVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBvYmplY3QgYXJndW1lbnQuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBhcmd1bWVudHMgYXJlIGZyb20gYW4gaXRlcmF0ZWUgY2FsbCxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzSXRlcmF0ZWVDYWxsKHZhbHVlLCBpbmRleCwgb2JqZWN0KSB7XG4gICAgICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgaW5kZXg7XG4gICAgICBpZiAodHlwZSA9PSAnbnVtYmVyJ1xuICAgICAgICAgICAgPyAoaXNBcnJheUxpa2Uob2JqZWN0KSAmJiBpc0luZGV4KGluZGV4LCBvYmplY3QubGVuZ3RoKSlcbiAgICAgICAgICAgIDogKHR5cGUgPT0gJ3N0cmluZycgJiYgaW5kZXggaW4gb2JqZWN0KVxuICAgICAgICAgICkge1xuICAgICAgICByZXR1cm4gZXEob2JqZWN0W2luZGV4XSwgdmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSBhbmQgbm90IGEgcHJvcGVydHkgcGF0aC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkga2V5cyBvbi5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3BlcnR5IG5hbWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0tleSh2YWx1ZSwgb2JqZWN0KSB7XG4gICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgICBpZiAodHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nIHx8XG4gICAgICAgICAgdmFsdWUgPT0gbnVsbCB8fCBpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVJc1BsYWluUHJvcC50ZXN0KHZhbHVlKSB8fCAhcmVJc0RlZXBQcm9wLnRlc3QodmFsdWUpIHx8XG4gICAgICAgIChvYmplY3QgIT0gbnVsbCAmJiB2YWx1ZSBpbiBPYmplY3Qob2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUgZm9yIHVzZSBhcyB1bmlxdWUgb2JqZWN0IGtleS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0tleWFibGUodmFsdWUpIHtcbiAgICAgIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgICAgcmV0dXJuICh0eXBlID09ICdzdHJpbmcnIHx8IHR5cGUgPT0gJ251bWJlcicgfHwgdHlwZSA9PSAnc3ltYm9sJyB8fCB0eXBlID09ICdib29sZWFuJylcbiAgICAgICAgPyAodmFsdWUgIT09ICdfX3Byb3RvX18nKVxuICAgICAgICA6ICh2YWx1ZSA9PT0gbnVsbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBmdW5jYCBoYXMgYSBsYXp5IGNvdW50ZXJwYXJ0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGhhcyBhIGxhenkgY291bnRlcnBhcnQsXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0xhemlhYmxlKGZ1bmMpIHtcbiAgICAgIHZhciBmdW5jTmFtZSA9IGdldEZ1bmNOYW1lKGZ1bmMpLFxuICAgICAgICAgIG90aGVyID0gbG9kYXNoW2Z1bmNOYW1lXTtcblxuICAgICAgaWYgKHR5cGVvZiBvdGhlciAhPSAnZnVuY3Rpb24nIHx8ICEoZnVuY05hbWUgaW4gTGF6eVdyYXBwZXIucHJvdG90eXBlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoZnVuYyA9PT0gb3RoZXIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICB2YXIgZGF0YSA9IGdldERhdGEob3RoZXIpO1xuICAgICAgcmV0dXJuICEhZGF0YSAmJiBmdW5jID09PSBkYXRhWzBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgZnVuY2AgaGFzIGl0cyBzb3VyY2UgbWFza2VkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGlzIG1hc2tlZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTWFza2VkKGZ1bmMpIHtcbiAgICAgIHJldHVybiAhIW1hc2tTcmNLZXkgJiYgKG1hc2tTcmNLZXkgaW4gZnVuYyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBmdW5jYCBpcyBjYXBhYmxlIG9mIGJlaW5nIG1hc2tlZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBmdW5jYCBpcyBtYXNrYWJsZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIHZhciBpc01hc2thYmxlID0gY29yZUpzRGF0YSA/IGlzRnVuY3Rpb24gOiBzdHViRmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYSBwcm90b3R5cGUgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3RvdHlwZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzUHJvdG90eXBlKHZhbHVlKSB7XG4gICAgICB2YXIgQ3RvciA9IHZhbHVlICYmIHZhbHVlLmNvbnN0cnVjdG9yLFxuICAgICAgICAgIHByb3RvID0gKHR5cGVvZiBDdG9yID09ICdmdW5jdGlvbicgJiYgQ3Rvci5wcm90b3R5cGUpIHx8IG9iamVjdFByb3RvO1xuXG4gICAgICByZXR1cm4gdmFsdWUgPT09IHByb3RvO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlIGZvciBzdHJpY3QgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGkuZS4gYD09PWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlmIHN1aXRhYmxlIGZvciBzdHJpY3RcbiAgICAgKiAgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1N0cmljdENvbXBhcmFibGUodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgJiYgIWlzT2JqZWN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYG1hdGNoZXNQcm9wZXJ0eWAgZm9yIHNvdXJjZSB2YWx1ZXMgc3VpdGFibGVcbiAgICAgKiBmb3Igc3RyaWN0IGVxdWFsaXR5IGNvbXBhcmlzb25zLCBpLmUuIGA9PT1gLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlKGtleSwgc3JjVmFsdWUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmplY3Rba2V5XSA9PT0gc3JjVmFsdWUgJiZcbiAgICAgICAgICAoc3JjVmFsdWUgIT09IHVuZGVmaW5lZCB8fCAoa2V5IGluIE9iamVjdChvYmplY3QpKSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tZW1vaXplYCB3aGljaCBjbGVhcnMgdGhlIG1lbW9pemVkIGZ1bmN0aW9uJ3NcbiAgICAgKiBjYWNoZSB3aGVuIGl0IGV4Y2VlZHMgYE1BWF9NRU1PSVpFX1NJWkVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgbWVtb2l6ZWQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWVtb2l6ZUNhcHBlZChmdW5jKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gbWVtb2l6ZShmdW5jLCBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgaWYgKGNhY2hlLnNpemUgPT09IE1BWF9NRU1PSVpFX1NJWkUpIHtcbiAgICAgICAgICBjYWNoZS5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgICB9KTtcblxuICAgICAgdmFyIGNhY2hlID0gcmVzdWx0LmNhY2hlO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXJnZXMgdGhlIGZ1bmN0aW9uIG1ldGFkYXRhIG9mIGBzb3VyY2VgIGludG8gYGRhdGFgLlxuICAgICAqXG4gICAgICogTWVyZ2luZyBtZXRhZGF0YSByZWR1Y2VzIHRoZSBudW1iZXIgb2Ygd3JhcHBlcnMgdXNlZCB0byBpbnZva2UgYSBmdW5jdGlvbi5cbiAgICAgKiBUaGlzIGlzIHBvc3NpYmxlIGJlY2F1c2UgbWV0aG9kcyBsaWtlIGBfLmJpbmRgLCBgXy5jdXJyeWAsIGFuZCBgXy5wYXJ0aWFsYFxuICAgICAqIG1heSBiZSBhcHBsaWVkIHJlZ2FyZGxlc3Mgb2YgZXhlY3V0aW9uIG9yZGVyLiBNZXRob2RzIGxpa2UgYF8uYXJ5YCBhbmRcbiAgICAgKiBgXy5yZWFyZ2AgbW9kaWZ5IGZ1bmN0aW9uIGFyZ3VtZW50cywgbWFraW5nIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFyZVxuICAgICAqIGV4ZWN1dGVkIGltcG9ydGFudCwgcHJldmVudGluZyB0aGUgbWVyZ2luZyBvZiBtZXRhZGF0YS4gSG93ZXZlciwgd2UgbWFrZVxuICAgICAqIGFuIGV4Y2VwdGlvbiBmb3IgYSBzYWZlIGNvbWJpbmVkIGNhc2Ugd2hlcmUgY3VycmllZCBmdW5jdGlvbnMgaGF2ZSBgXy5hcnlgXG4gICAgICogYW5kIG9yIGBfLnJlYXJnYCBhcHBsaWVkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBkYXRhIFRoZSBkZXN0aW5hdGlvbiBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIHNvdXJjZSBtZXRhZGF0YS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGRhdGFgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1lcmdlRGF0YShkYXRhLCBzb3VyY2UpIHtcbiAgICAgIHZhciBiaXRtYXNrID0gZGF0YVsxXSxcbiAgICAgICAgICBzcmNCaXRtYXNrID0gc291cmNlWzFdLFxuICAgICAgICAgIG5ld0JpdG1hc2sgPSBiaXRtYXNrIHwgc3JjQml0bWFzayxcbiAgICAgICAgICBpc0NvbW1vbiA9IG5ld0JpdG1hc2sgPCAoV1JBUF9CSU5EX0ZMQUcgfCBXUkFQX0JJTkRfS0VZX0ZMQUcgfCBXUkFQX0FSWV9GTEFHKTtcblxuICAgICAgdmFyIGlzQ29tYm8gPVxuICAgICAgICAoKHNyY0JpdG1hc2sgPT0gV1JBUF9BUllfRkxBRykgJiYgKGJpdG1hc2sgPT0gV1JBUF9DVVJSWV9GTEFHKSkgfHxcbiAgICAgICAgKChzcmNCaXRtYXNrID09IFdSQVBfQVJZX0ZMQUcpICYmIChiaXRtYXNrID09IFdSQVBfUkVBUkdfRkxBRykgJiYgKGRhdGFbN10ubGVuZ3RoIDw9IHNvdXJjZVs4XSkpIHx8XG4gICAgICAgICgoc3JjQml0bWFzayA9PSAoV1JBUF9BUllfRkxBRyB8IFdSQVBfUkVBUkdfRkxBRykpICYmIChzb3VyY2VbN10ubGVuZ3RoIDw9IHNvdXJjZVs4XSkgJiYgKGJpdG1hc2sgPT0gV1JBUF9DVVJSWV9GTEFHKSk7XG5cbiAgICAgIC8vIEV4aXQgZWFybHkgaWYgbWV0YWRhdGEgY2FuJ3QgYmUgbWVyZ2VkLlxuICAgICAgaWYgKCEoaXNDb21tb24gfHwgaXNDb21ibykpIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgICAvLyBVc2Ugc291cmNlIGB0aGlzQXJnYCBpZiBhdmFpbGFibGUuXG4gICAgICBpZiAoc3JjQml0bWFzayAmIFdSQVBfQklORF9GTEFHKSB7XG4gICAgICAgIGRhdGFbMl0gPSBzb3VyY2VbMl07XG4gICAgICAgIC8vIFNldCB3aGVuIGN1cnJ5aW5nIGEgYm91bmQgZnVuY3Rpb24uXG4gICAgICAgIG5ld0JpdG1hc2sgfD0gYml0bWFzayAmIFdSQVBfQklORF9GTEFHID8gMCA6IFdSQVBfQ1VSUllfQk9VTkRfRkxBRztcbiAgICAgIH1cbiAgICAgIC8vIENvbXBvc2UgcGFydGlhbCBhcmd1bWVudHMuXG4gICAgICB2YXIgdmFsdWUgPSBzb3VyY2VbM107XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdmFyIHBhcnRpYWxzID0gZGF0YVszXTtcbiAgICAgICAgZGF0YVszXSA9IHBhcnRpYWxzID8gY29tcG9zZUFyZ3MocGFydGlhbHMsIHZhbHVlLCBzb3VyY2VbNF0pIDogdmFsdWU7XG4gICAgICAgIGRhdGFbNF0gPSBwYXJ0aWFscyA/IHJlcGxhY2VIb2xkZXJzKGRhdGFbM10sIFBMQUNFSE9MREVSKSA6IHNvdXJjZVs0XTtcbiAgICAgIH1cbiAgICAgIC8vIENvbXBvc2UgcGFydGlhbCByaWdodCBhcmd1bWVudHMuXG4gICAgICB2YWx1ZSA9IHNvdXJjZVs1XTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBwYXJ0aWFscyA9IGRhdGFbNV07XG4gICAgICAgIGRhdGFbNV0gPSBwYXJ0aWFscyA/IGNvbXBvc2VBcmdzUmlnaHQocGFydGlhbHMsIHZhbHVlLCBzb3VyY2VbNl0pIDogdmFsdWU7XG4gICAgICAgIGRhdGFbNl0gPSBwYXJ0aWFscyA/IHJlcGxhY2VIb2xkZXJzKGRhdGFbNV0sIFBMQUNFSE9MREVSKSA6IHNvdXJjZVs2XTtcbiAgICAgIH1cbiAgICAgIC8vIFVzZSBzb3VyY2UgYGFyZ1Bvc2AgaWYgYXZhaWxhYmxlLlxuICAgICAgdmFsdWUgPSBzb3VyY2VbN107XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgZGF0YVs3XSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgLy8gVXNlIHNvdXJjZSBgYXJ5YCBpZiBpdCdzIHNtYWxsZXIuXG4gICAgICBpZiAoc3JjQml0bWFzayAmIFdSQVBfQVJZX0ZMQUcpIHtcbiAgICAgICAgZGF0YVs4XSA9IGRhdGFbOF0gPT0gbnVsbCA/IHNvdXJjZVs4XSA6IG5hdGl2ZU1pbihkYXRhWzhdLCBzb3VyY2VbOF0pO1xuICAgICAgfVxuICAgICAgLy8gVXNlIHNvdXJjZSBgYXJpdHlgIGlmIG9uZSBpcyBub3QgcHJvdmlkZWQuXG4gICAgICBpZiAoZGF0YVs5XSA9PSBudWxsKSB7XG4gICAgICAgIGRhdGFbOV0gPSBzb3VyY2VbOV07XG4gICAgICB9XG4gICAgICAvLyBVc2Ugc291cmNlIGBmdW5jYCBhbmQgbWVyZ2UgYml0bWFza3MuXG4gICAgICBkYXRhWzBdID0gc291cmNlWzBdO1xuICAgICAgZGF0YVsxXSA9IG5ld0JpdG1hc2s7XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZVxuICAgICAqIFtgT2JqZWN0LmtleXNgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3Qua2V5cylcbiAgICAgKiBleGNlcHQgdGhhdCBpdCBpbmNsdWRlcyBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBuYXRpdmVLZXlzSW4ob2JqZWN0KSB7XG4gICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICBpZiAob2JqZWN0ICE9IG51bGwpIHtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIE9iamVjdChvYmplY3QpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIHVzaW5nIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG9iamVjdFRvU3RyaW5nKHZhbHVlKSB7XG4gICAgICByZXR1cm4gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUmVzdGAgd2hpY2ggdHJhbnNmb3JtcyB0aGUgcmVzdCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PWZ1bmMubGVuZ3RoLTFdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgcmVzdCBwYXJhbWV0ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNmb3JtIFRoZSByZXN0IGFycmF5IHRyYW5zZm9ybS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBvdmVyUmVzdChmdW5jLCBzdGFydCwgdHJhbnNmb3JtKSB7XG4gICAgICBzdGFydCA9IG5hdGl2ZU1heChzdGFydCA9PT0gdW5kZWZpbmVkID8gKGZ1bmMubGVuZ3RoIC0gMSkgOiBzdGFydCwgMCk7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzLFxuICAgICAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChhcmdzLmxlbmd0aCAtIHN0YXJ0LCAwKSxcbiAgICAgICAgICAgIGFycmF5ID0gQXJyYXkobGVuZ3RoKTtcblxuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIGFycmF5W2luZGV4XSA9IGFyZ3Nbc3RhcnQgKyBpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgaW5kZXggPSAtMTtcbiAgICAgICAgdmFyIG90aGVyQXJncyA9IEFycmF5KHN0YXJ0ICsgMSk7XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgc3RhcnQpIHtcbiAgICAgICAgICBvdGhlckFyZ3NbaW5kZXhdID0gYXJnc1tpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgb3RoZXJBcmdzW3N0YXJ0XSA9IHRyYW5zZm9ybShhcnJheSk7XG4gICAgICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzLCBvdGhlckFyZ3MpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBwYXJlbnQgdmFsdWUgYXQgYHBhdGhgIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGF0aCBUaGUgcGF0aCB0byBnZXQgdGhlIHBhcmVudCB2YWx1ZSBvZi5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcGFyZW50IHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHBhcmVudChvYmplY3QsIHBhdGgpIHtcbiAgICAgIHJldHVybiBwYXRoLmxlbmd0aCA8IDIgPyBvYmplY3QgOiBiYXNlR2V0KG9iamVjdCwgYmFzZVNsaWNlKHBhdGgsIDAsIC0xKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVvcmRlciBgYXJyYXlgIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGluZGV4ZXMgd2hlcmUgdGhlIGVsZW1lbnQgYXRcbiAgICAgKiB0aGUgZmlyc3QgaW5kZXggaXMgYXNzaWduZWQgYXMgdGhlIGZpcnN0IGVsZW1lbnQsIHRoZSBlbGVtZW50IGF0XG4gICAgICogdGhlIHNlY29uZCBpbmRleCBpcyBhc3NpZ25lZCBhcyB0aGUgc2Vjb25kIGVsZW1lbnQsIGFuZCBzbyBvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHJlb3JkZXIuXG4gICAgICogQHBhcmFtIHtBcnJheX0gaW5kZXhlcyBUaGUgYXJyYW5nZWQgYXJyYXkgaW5kZXhlcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZW9yZGVyKGFycmF5LCBpbmRleGVzKSB7XG4gICAgICB2YXIgYXJyTGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1pbihpbmRleGVzLmxlbmd0aCwgYXJyTGVuZ3RoKSxcbiAgICAgICAgICBvbGRBcnJheSA9IGNvcHlBcnJheShhcnJheSk7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICB2YXIgaW5kZXggPSBpbmRleGVzW2xlbmd0aF07XG4gICAgICAgIGFycmF5W2xlbmd0aF0gPSBpc0luZGV4KGluZGV4LCBhcnJMZW5ndGgpID8gb2xkQXJyYXlbaW5kZXhdIDogdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHZhbHVlIGF0IGBrZXlgLCB1bmxlc3MgYGtleWAgaXMgXCJfX3Byb3RvX19cIiBvciBcImNvbnN0cnVjdG9yXCIuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2FmZUdldChvYmplY3QsIGtleSkge1xuICAgICAgaWYgKGtleSA9PT0gJ2NvbnN0cnVjdG9yJyAmJiB0eXBlb2Ygb2JqZWN0W2tleV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoa2V5ID09ICdfX3Byb3RvX18nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9iamVjdFtrZXldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgbWV0YWRhdGEgZm9yIGBmdW5jYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBJZiB0aGlzIGZ1bmN0aW9uIGJlY29tZXMgaG90LCBpLmUuIGlzIGludm9rZWQgYSBsb3QgaW4gYSBzaG9ydFxuICAgICAqIHBlcmlvZCBvZiB0aW1lLCBpdCB3aWxsIHRyaXAgaXRzIGJyZWFrZXIgYW5kIHRyYW5zaXRpb24gdG8gYW4gaWRlbnRpdHlcbiAgICAgKiBmdW5jdGlvbiB0byBhdm9pZCBnYXJiYWdlIGNvbGxlY3Rpb24gcGF1c2VzIGluIFY4LiBTZWVcbiAgICAgKiBbVjggaXNzdWUgMjA3MF0oaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MjA3MClcbiAgICAgKiBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhc3NvY2lhdGUgbWV0YWRhdGEgd2l0aC5cbiAgICAgKiBAcGFyYW0geyp9IGRhdGEgVGhlIG1ldGFkYXRhLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gICAgICovXG4gICAgdmFyIHNldERhdGEgPSBzaG9ydE91dChiYXNlU2V0RGF0YSk7XG5cbiAgICAvKipcbiAgICAgKiBBIHNpbXBsZSB3cmFwcGVyIGFyb3VuZCB0aGUgZ2xvYmFsIFtgc2V0VGltZW91dGBdKGh0dHBzOi8vbWRuLmlvL3NldFRpbWVvdXQpLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWxheS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2FpdCBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheSBpbnZvY2F0aW9uLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ8T2JqZWN0fSBSZXR1cm5zIHRoZSB0aW1lciBpZCBvciB0aW1lb3V0IG9iamVjdC5cbiAgICAgKi9cbiAgICB2YXIgc2V0VGltZW91dCA9IGN0eFNldFRpbWVvdXQgfHwgZnVuY3Rpb24oZnVuYywgd2FpdCkge1xuICAgICAgcmV0dXJuIHJvb3Quc2V0VGltZW91dChmdW5jLCB3YWl0KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYHRvU3RyaW5nYCBtZXRob2Qgb2YgYGZ1bmNgIHRvIHJldHVybiBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHN0cmluZyBUaGUgYHRvU3RyaW5nYCByZXN1bHQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAgICAgKi9cbiAgICB2YXIgc2V0VG9TdHJpbmcgPSBzaG9ydE91dChiYXNlU2V0VG9TdHJpbmcpO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYHRvU3RyaW5nYCBtZXRob2Qgb2YgYHdyYXBwZXJgIHRvIG1pbWljIHRoZSBzb3VyY2Ugb2YgYHJlZmVyZW5jZWBcbiAgICAgKiB3aXRoIHdyYXBwZXIgZGV0YWlscyBpbiBhIGNvbW1lbnQgYXQgdGhlIHRvcCBvZiB0aGUgc291cmNlIGJvZHkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHdyYXBwZXIgVGhlIGZ1bmN0aW9uIHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSByZWZlcmVuY2UgVGhlIHJlZmVyZW5jZSBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgd3JhcHBlcmAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2V0V3JhcFRvU3RyaW5nKHdyYXBwZXIsIHJlZmVyZW5jZSwgYml0bWFzaykge1xuICAgICAgdmFyIHNvdXJjZSA9IChyZWZlcmVuY2UgKyAnJyk7XG4gICAgICByZXR1cm4gc2V0VG9TdHJpbmcod3JhcHBlciwgaW5zZXJ0V3JhcERldGFpbHMoc291cmNlLCB1cGRhdGVXcmFwRGV0YWlscyhnZXRXcmFwRGV0YWlscyhzb3VyY2UpLCBiaXRtYXNrKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0J2xsIHNob3J0IG91dCBhbmQgaW52b2tlIGBpZGVudGl0eWAgaW5zdGVhZFxuICAgICAqIG9mIGBmdW5jYCB3aGVuIGl0J3MgY2FsbGVkIGBIT1RfQ09VTlRgIG9yIG1vcmUgdGltZXMgaW4gYEhPVF9TUEFOYFxuICAgICAqIG1pbGxpc2Vjb25kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc2hvcnRhYmxlIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNob3J0T3V0KGZ1bmMpIHtcbiAgICAgIHZhciBjb3VudCA9IDAsXG4gICAgICAgICAgbGFzdENhbGxlZCA9IDA7XG5cbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHN0YW1wID0gbmF0aXZlTm93KCksXG4gICAgICAgICAgICByZW1haW5pbmcgPSBIT1RfU1BBTiAtIChzdGFtcCAtIGxhc3RDYWxsZWQpO1xuXG4gICAgICAgIGxhc3RDYWxsZWQgPSBzdGFtcDtcbiAgICAgICAgaWYgKHJlbWFpbmluZyA+IDApIHtcbiAgICAgICAgICBpZiAoKytjb3VudCA+PSBIT1RfQ09VTlQpIHtcbiAgICAgICAgICAgIHJldHVybiBhcmd1bWVudHNbMF07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvdW50ID0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuYy5hcHBseSh1bmRlZmluZWQsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zaHVmZmxlYCB3aGljaCBtdXRhdGVzIGFuZCBzZXRzIHRoZSBzaXplIG9mIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzaHVmZmxlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2l6ZT1hcnJheS5sZW5ndGhdIFRoZSBzaXplIG9mIGBhcnJheWAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2h1ZmZsZVNlbGYoYXJyYXksIHNpemUpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICBsYXN0SW5kZXggPSBsZW5ndGggLSAxO1xuXG4gICAgICBzaXplID0gc2l6ZSA9PT0gdW5kZWZpbmVkID8gbGVuZ3RoIDogc2l6ZTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgc2l6ZSkge1xuICAgICAgICB2YXIgcmFuZCA9IGJhc2VSYW5kb20oaW5kZXgsIGxhc3RJbmRleCksXG4gICAgICAgICAgICB2YWx1ZSA9IGFycmF5W3JhbmRdO1xuXG4gICAgICAgIGFycmF5W3JhbmRdID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICBhcnJheVtpbmRleF0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGFycmF5Lmxlbmd0aCA9IHNpemU7XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gYSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gICAgICovXG4gICAgdmFyIHN0cmluZ1RvUGF0aCA9IG1lbW9pemVDYXBwZWQoZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICBpZiAoc3RyaW5nLmNoYXJDb2RlQXQoMCkgPT09IDQ2IC8qIC4gKi8pIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJycpO1xuICAgICAgfVxuICAgICAgc3RyaW5nLnJlcGxhY2UocmVQcm9wTmFtZSwgZnVuY3Rpb24obWF0Y2gsIG51bWJlciwgcXVvdGUsIHN1YlN0cmluZykge1xuICAgICAgICByZXN1bHQucHVzaChxdW90ZSA/IHN1YlN0cmluZy5yZXBsYWNlKHJlRXNjYXBlQ2hhciwgJyQxJykgOiAobnVtYmVyIHx8IG1hdGNoKSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIGtleSBpZiBpdCdzIG5vdCBhIHN0cmluZyBvciBzeW1ib2wuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge3N0cmluZ3xzeW1ib2x9IFJldHVybnMgdGhlIGtleS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b0tleSh2YWx1ZSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fCBpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9ICh2YWx1ZSArICcnKTtcbiAgICAgIHJldHVybiAocmVzdWx0ID09ICcwJyAmJiAoMSAvIHZhbHVlKSA9PSAtSU5GSU5JVFkpID8gJy0wJyA6IHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgZnVuY2AgdG8gaXRzIHNvdXJjZSBjb2RlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNvdXJjZSBjb2RlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvU291cmNlKGZ1bmMpIHtcbiAgICAgIGlmIChmdW5jICE9IG51bGwpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gZnVuY1RvU3RyaW5nLmNhbGwoZnVuYyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIChmdW5jICsgJycpO1xuICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgfVxuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgd3JhcHBlciBgZGV0YWlsc2AgYmFzZWQgb24gYGJpdG1hc2tgIGZsYWdzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IGRldGFpbHMgVGhlIGRldGFpbHMgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBkZXRhaWxzYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1cGRhdGVXcmFwRGV0YWlscyhkZXRhaWxzLCBiaXRtYXNrKSB7XG4gICAgICBhcnJheUVhY2god3JhcEZsYWdzLCBmdW5jdGlvbihwYWlyKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9ICdfLicgKyBwYWlyWzBdO1xuICAgICAgICBpZiAoKGJpdG1hc2sgJiBwYWlyWzFdKSAmJiAhYXJyYXlJbmNsdWRlcyhkZXRhaWxzLCB2YWx1ZSkpIHtcbiAgICAgICAgICBkZXRhaWxzLnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBkZXRhaWxzLnNvcnQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgYHdyYXBwZXJgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gd3JhcHBlciBUaGUgd3JhcHBlciB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgd3JhcHBlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyQ2xvbmUod3JhcHBlcikge1xuICAgICAgaWYgKHdyYXBwZXIgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikge1xuICAgICAgICByZXR1cm4gd3JhcHBlci5jbG9uZSgpO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IG5ldyBMb2Rhc2hXcmFwcGVyKHdyYXBwZXIuX193cmFwcGVkX18sIHdyYXBwZXIuX19jaGFpbl9fKTtcbiAgICAgIHJlc3VsdC5fX2FjdGlvbnNfXyA9IGNvcHlBcnJheSh3cmFwcGVyLl9fYWN0aW9uc19fKTtcbiAgICAgIHJlc3VsdC5fX2luZGV4X18gID0gd3JhcHBlci5fX2luZGV4X187XG4gICAgICByZXN1bHQuX192YWx1ZXNfXyA9IHdyYXBwZXIuX192YWx1ZXNfXztcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBlbGVtZW50cyBzcGxpdCBpbnRvIGdyb3VwcyB0aGUgbGVuZ3RoIG9mIGBzaXplYC5cbiAgICAgKiBJZiBgYXJyYXlgIGNhbid0IGJlIHNwbGl0IGV2ZW5seSwgdGhlIGZpbmFsIGNodW5rIHdpbGwgYmUgdGhlIHJlbWFpbmluZ1xuICAgICAqIGVsZW1lbnRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHByb2Nlc3MuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzaXplPTFdIFRoZSBsZW5ndGggb2YgZWFjaCBjaHVua1xuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY2h1bmtzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNodW5rKFsnYScsICdiJywgJ2MnLCAnZCddLCAyKTtcbiAgICAgKiAvLyA9PiBbWydhJywgJ2InXSwgWydjJywgJ2QnXV1cbiAgICAgKlxuICAgICAqIF8uY2h1bmsoWydhJywgJ2InLCAnYycsICdkJ10sIDMpO1xuICAgICAqIC8vID0+IFtbJ2EnLCAnYicsICdjJ10sIFsnZCddXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNodW5rKGFycmF5LCBzaXplLCBndWFyZCkge1xuICAgICAgaWYgKChndWFyZCA/IGlzSXRlcmF0ZWVDYWxsKGFycmF5LCBzaXplLCBndWFyZCkgOiBzaXplID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIHNpemUgPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2l6ZSA9IG5hdGl2ZU1heCh0b0ludGVnZXIoc2l6ZSksIDApO1xuICAgICAgfVxuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGggfHwgc2l6ZSA8IDEpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gMCxcbiAgICAgICAgICByZXNJbmRleCA9IDAsXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkobmF0aXZlQ2VpbChsZW5ndGggLyBzaXplKSk7XG5cbiAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSBiYXNlU2xpY2UoYXJyYXksIGluZGV4LCAoaW5kZXggKz0gc2l6ZSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggYWxsIGZhbHNleSB2YWx1ZXMgcmVtb3ZlZC4gVGhlIHZhbHVlcyBgZmFsc2VgLCBgbnVsbGAsXG4gICAgICogYDBgLCBgXCJcImAsIGB1bmRlZmluZWRgLCBhbmQgYE5hTmAgYXJlIGZhbHNleS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjb21wYWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5jb21wYWN0KFswLCAxLCBmYWxzZSwgMiwgJycsIDNdKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb21wYWN0KGFycmF5KSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXNJbmRleCA9IDAsXG4gICAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgcmVzdWx0W3Jlc0luZGV4KytdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBhcnJheSBjb25jYXRlbmF0aW5nIGBhcnJheWAgd2l0aCBhbnkgYWRkaXRpb25hbCBhcnJheXNcbiAgICAgKiBhbmQvb3IgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNvbmNhdGVuYXRlLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBjb25jYXRlbmF0ZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBjb25jYXRlbmF0ZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsxXTtcbiAgICAgKiB2YXIgb3RoZXIgPSBfLmNvbmNhdChhcnJheSwgMiwgWzNdLCBbWzRdXSk7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhvdGhlcik7XG4gICAgICogLy8gPT4gWzEsIDIsIDMsIFs0XV1cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb25jYXQoKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHZhciBhcmdzID0gQXJyYXkobGVuZ3RoIC0gMSksXG4gICAgICAgICAgYXJyYXkgPSBhcmd1bWVudHNbMF0sXG4gICAgICAgICAgaW5kZXggPSBsZW5ndGg7XG5cbiAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgIGFyZ3NbaW5kZXggLSAxXSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXlQdXNoKGlzQXJyYXkoYXJyYXkpID8gY29weUFycmF5KGFycmF5KSA6IFthcnJheV0sIGJhc2VGbGF0dGVuKGFyZ3MsIDEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGBhcnJheWAgdmFsdWVzIG5vdCBpbmNsdWRlZCBpbiB0aGUgb3RoZXIgZ2l2ZW4gYXJyYXlzXG4gICAgICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuIFRoZSBvcmRlciBhbmQgcmVmZXJlbmNlcyBvZiByZXN1bHQgdmFsdWVzIGFyZVxuICAgICAqIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IGFycmF5LlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5wdWxsQWxsYCwgdGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBhcnJheS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gZXhjbHVkZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQHNlZSBfLndpdGhvdXQsIF8ueG9yXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGlmZmVyZW5jZShbMiwgMV0sIFsyLCAzXSk7XG4gICAgICogLy8gPT4gWzFdXG4gICAgICovXG4gICAgdmFyIGRpZmZlcmVuY2UgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheSwgdmFsdWVzKSB7XG4gICAgICByZXR1cm4gaXNBcnJheUxpa2VPYmplY3QoYXJyYXkpXG4gICAgICAgID8gYmFzZURpZmZlcmVuY2UoYXJyYXksIGJhc2VGbGF0dGVuKHZhbHVlcywgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5kaWZmZXJlbmNlYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCBhbmQgYHZhbHVlc2AgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvblxuICAgICAqIGJ5IHdoaWNoIHRoZXkncmUgY29tcGFyZWQuIFRoZSBvcmRlciBhbmQgcmVmZXJlbmNlcyBvZiByZXN1bHQgdmFsdWVzIGFyZVxuICAgICAqIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IGFycmF5LiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDpcbiAgICAgKiAodmFsdWUpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5wdWxsQWxsQnlgLCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBleGNsdWRlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGlmZmVyZW5jZUJ5KFsyLjEsIDEuMl0sIFsyLjMsIDMuNF0sIE1hdGguZmxvb3IpO1xuICAgICAqIC8vID0+IFsxLjJdXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmRpZmZlcmVuY2VCeShbeyAneCc6IDIgfSwgeyAneCc6IDEgfV0sIFt7ICd4JzogMSB9XSwgJ3gnKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDIgfV1cbiAgICAgKi9cbiAgICB2YXIgZGlmZmVyZW5jZUJ5ID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXksIHZhbHVlcykge1xuICAgICAgdmFyIGl0ZXJhdGVlID0gbGFzdCh2YWx1ZXMpO1xuICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGl0ZXJhdGVlKSkge1xuICAgICAgICBpdGVyYXRlZSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdChhcnJheSlcbiAgICAgICAgPyBiYXNlRGlmZmVyZW5jZShhcnJheSwgYmFzZUZsYXR0ZW4odmFsdWVzLCAxLCBpc0FycmF5TGlrZU9iamVjdCwgdHJ1ZSksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSlcbiAgICAgICAgOiBbXTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZGlmZmVyZW5jZWAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmBcbiAgICAgKiB3aGljaCBpcyBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5YCB0byBgdmFsdWVzYC4gVGhlIG9yZGVyIGFuZFxuICAgICAqIHJlZmVyZW5jZXMgb2YgcmVzdWx0IHZhbHVlcyBhcmUgZGV0ZXJtaW5lZCBieSB0aGUgZmlyc3QgYXJyYXkuIFRoZSBjb21wYXJhdG9yXG4gICAgICogaXMgaW52b2tlZCB3aXRoIHR3byBhcmd1bWVudHM6IChhcnJWYWwsIG90aFZhbCkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLnB1bGxBbGxXaXRoYCwgdGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBhcnJheS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gZXhjbHVkZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9XTtcbiAgICAgKlxuICAgICAqIF8uZGlmZmVyZW5jZVdpdGgob2JqZWN0cywgW3sgJ3gnOiAxLCAneSc6IDIgfV0sIF8uaXNFcXVhbCk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAyLCAneSc6IDEgfV1cbiAgICAgKi9cbiAgICB2YXIgZGlmZmVyZW5jZVdpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheSwgdmFsdWVzKSB7XG4gICAgICB2YXIgY29tcGFyYXRvciA9IGxhc3QodmFsdWVzKTtcbiAgICAgIGlmIChpc0FycmF5TGlrZU9iamVjdChjb21wYXJhdG9yKSkge1xuICAgICAgICBjb21wYXJhdG9yID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlT2JqZWN0KGFycmF5KVxuICAgICAgICA/IGJhc2VEaWZmZXJlbmNlKGFycmF5LCBiYXNlRmxhdHRlbih2YWx1ZXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSwgdW5kZWZpbmVkLCBjb21wYXJhdG9yKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBgbmAgZWxlbWVudHMgZHJvcHBlZCBmcm9tIHRoZSBiZWdpbm5pbmcuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC41LjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTFdIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gZHJvcC5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kcm9wKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gWzIsIDNdXG4gICAgICpcbiAgICAgKiBfLmRyb3AoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbM11cbiAgICAgKlxuICAgICAqIF8uZHJvcChbMSwgMiwgM10sIDUpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICpcbiAgICAgKiBfLmRyb3AoWzEsIDIsIDNdLCAwKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkcm9wKGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgbiA9IChndWFyZCB8fCBuID09PSB1bmRlZmluZWQpID8gMSA6IHRvSW50ZWdlcihuKTtcbiAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIG4gPCAwID8gMCA6IG4sIGxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBgbmAgZWxlbWVudHMgZHJvcHBlZCBmcm9tIHRoZSBlbmQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTFdIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gZHJvcC5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kcm9wUmlnaHQoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIF8uZHJvcFJpZ2h0KFsxLCAyLCAzXSwgMik7XG4gICAgICogLy8gPT4gWzFdXG4gICAgICpcbiAgICAgKiBfLmRyb3BSaWdodChbMSwgMiwgM10sIDUpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICpcbiAgICAgKiBfLmRyb3BSaWdodChbMSwgMiwgM10sIDApO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRyb3BSaWdodChhcnJheSwgbiwgZ3VhcmQpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIG4gPSAoZ3VhcmQgfHwgbiA9PT0gdW5kZWZpbmVkKSA/IDEgOiB0b0ludGVnZXIobik7XG4gICAgICBuID0gbGVuZ3RoIC0gbjtcbiAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIDAsIG4gPCAwID8gMCA6IG4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIGV4Y2x1ZGluZyBlbGVtZW50cyBkcm9wcGVkIGZyb20gdGhlIGVuZC5cbiAgICAgKiBFbGVtZW50cyBhcmUgZHJvcHBlZCB1bnRpbCBgcHJlZGljYXRlYCByZXR1cm5zIGZhbHNleS4gVGhlIHByZWRpY2F0ZSBpc1xuICAgICAqIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGFycmF5KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmRyb3BSaWdodFdoaWxlKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiAhby5hY3RpdmU7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5kcm9wUmlnaHRXaGlsZSh1c2VycywgeyAndXNlcic6ICdwZWJibGVzJywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5JywgJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZHJvcFJpZ2h0V2hpbGUodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leSddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmRyb3BSaWdodFdoaWxlKHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknLCAnZnJlZCcsICdwZWJibGVzJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkcm9wUmlnaHRXaGlsZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlV2hpbGUoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIHRydWUsIHRydWUpXG4gICAgICAgIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgZXhjbHVkaW5nIGVsZW1lbnRzIGRyb3BwZWQgZnJvbSB0aGUgYmVnaW5uaW5nLlxuICAgICAqIEVsZW1lbnRzIGFyZSBkcm9wcGVkIHVudGlsIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5LiBUaGUgcHJlZGljYXRlIGlzXG4gICAgICogaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgYXJyYXkpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogdHJ1ZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZHJvcFdoaWxlKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiAhby5hY3RpdmU7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZHJvcFdoaWxlKHVzZXJzLCB7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiBmYWxzZSB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnLCAncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5kcm9wV2hpbGUodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ3BlYmJsZXMnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5kcm9wV2hpbGUodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leScsICdmcmVkJywgJ3BlYmJsZXMnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRyb3BXaGlsZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlV2hpbGUoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIHRydWUpXG4gICAgICAgIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmlsbHMgZWxlbWVudHMgb2YgYGFycmF5YCB3aXRoIGB2YWx1ZWAgZnJvbSBgc3RhcnRgIHVwIHRvLCBidXQgbm90XG4gICAgICogaW5jbHVkaW5nLCBgZW5kYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4yLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmlsbC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBmaWxsIGBhcnJheWAgd2l0aC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsxLCAyLCAzXTtcbiAgICAgKlxuICAgICAqIF8uZmlsbChhcnJheSwgJ2EnKTtcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gWydhJywgJ2EnLCAnYSddXG4gICAgICpcbiAgICAgKiBfLmZpbGwoQXJyYXkoMyksIDIpO1xuICAgICAqIC8vID0+IFsyLCAyLCAyXVxuICAgICAqXG4gICAgICogXy5maWxsKFs0LCA2LCA4LCAxMF0sICcqJywgMSwgMyk7XG4gICAgICogLy8gPT4gWzQsICcqJywgJyonLCAxMF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKHN0YXJ0ICYmIHR5cGVvZiBzdGFydCAhPSAnbnVtYmVyJyAmJiBpc0l0ZXJhdGVlQ2FsbChhcnJheSwgdmFsdWUsIHN0YXJ0KSkge1xuICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgIGVuZCA9IGxlbmd0aDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlRmlsbChhcnJheSwgdmFsdWUsIHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZGAgZXhjZXB0IHRoYXQgaXQgcmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0XG4gICAgICogZWxlbWVudCBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgaW5zdGVhZCBvZiB0aGUgZWxlbWVudCBpdHNlbGYuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMS4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmcm9tSW5kZXg9MF0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmb3VuZCBlbGVtZW50LCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogdHJ1ZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmluZEluZGV4KHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLnVzZXIgPT0gJ2Jhcm5leSc7IH0pO1xuICAgICAqIC8vID0+IDBcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kSW5kZXgodXNlcnMsIHsgJ3VzZXInOiAnZnJlZCcsICdhY3RpdmUnOiBmYWxzZSB9KTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kSW5kZXgodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiAwXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRJbmRleCh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IDJcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaW5kSW5kZXgoYXJyYXksIHByZWRpY2F0ZSwgZnJvbUluZGV4KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSBmcm9tSW5kZXggPT0gbnVsbCA/IDAgOiB0b0ludGVnZXIoZnJvbUluZGV4KTtcbiAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgaW5kZXggPSBuYXRpdmVNYXgobGVuZ3RoICsgaW5kZXgsIDApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VGaW5kSW5kZXgoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGluZGV4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZpbmRJbmRleGAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50c1xuICAgICAqIG9mIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmcm9tSW5kZXg9YXJyYXkubGVuZ3RoLTFdIFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZm91bmQgZWxlbWVudCwgZWxzZSBgLTFgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmZpbmRMYXN0SW5kZXgodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8udXNlciA9PSAncGViYmxlcyc7IH0pO1xuICAgICAqIC8vID0+IDJcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kTGFzdEluZGV4KHVzZXJzLCB7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiB0cnVlIH0pO1xuICAgICAqIC8vID0+IDBcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRMYXN0SW5kZXgodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRMYXN0SW5kZXgodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiAwXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmluZExhc3RJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tSW5kZXgpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IGxlbmd0aCAtIDE7XG4gICAgICBpZiAoZnJvbUluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaW5kZXggPSB0b0ludGVnZXIoZnJvbUluZGV4KTtcbiAgICAgICAgaW5kZXggPSBmcm9tSW5kZXggPCAwXG4gICAgICAgICAgPyBuYXRpdmVNYXgobGVuZ3RoICsgaW5kZXgsIDApXG4gICAgICAgICAgOiBuYXRpdmVNaW4oaW5kZXgsIGxlbmd0aCAtIDEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VGaW5kSW5kZXgoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGluZGV4LCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGbGF0dGVucyBgYXJyYXlgIGEgc2luZ2xlIGxldmVsIGRlZXAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZmxhdHRlbihbMSwgWzIsIFszLCBbNF1dLCA1XV0pO1xuICAgICAqIC8vID0+IFsxLCAyLCBbMywgWzRdXSwgNV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmbGF0dGVuKGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZUZsYXR0ZW4oYXJyYXksIDEpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVjdXJzaXZlbHkgZmxhdHRlbnMgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmbGF0dGVuLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5mbGF0dGVuRGVlcChbMSwgWzIsIFszLCBbNF1dLCA1XV0pO1xuICAgICAqIC8vID0+IFsxLCAyLCAzLCA0LCA1XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZsYXR0ZW5EZWVwKGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZUZsYXR0ZW4oYXJyYXksIElORklOSVRZKSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlY3Vyc2l2ZWx5IGZsYXR0ZW4gYGFycmF5YCB1cCB0byBgZGVwdGhgIHRpbWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZsYXR0ZW4uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtkZXB0aD0xXSBUaGUgbWF4aW11bSByZWN1cnNpb24gZGVwdGguXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgWzIsIFszLCBbNF1dLCA1XV07XG4gICAgICpcbiAgICAgKiBfLmZsYXR0ZW5EZXB0aChhcnJheSwgMSk7XG4gICAgICogLy8gPT4gWzEsIDIsIFszLCBbNF1dLCA1XVxuICAgICAqXG4gICAgICogXy5mbGF0dGVuRGVwdGgoYXJyYXksIDIpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzLCBbNF0sIDVdXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmxhdHRlbkRlcHRoKGFycmF5LCBkZXB0aCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgZGVwdGggPSBkZXB0aCA9PT0gdW5kZWZpbmVkID8gMSA6IHRvSW50ZWdlcihkZXB0aCk7XG4gICAgICByZXR1cm4gYmFzZUZsYXR0ZW4oYXJyYXksIGRlcHRoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaW52ZXJzZSBvZiBgXy50b1BhaXJzYDsgdGhpcyBtZXRob2QgcmV0dXJucyBhbiBvYmplY3QgY29tcG9zZWRcbiAgICAgKiBmcm9tIGtleS12YWx1ZSBgcGFpcnNgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gcGFpcnMgVGhlIGtleS12YWx1ZSBwYWlycy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZyb21QYWlycyhbWydhJywgMV0sIFsnYicsIDJdXSk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gZnJvbVBhaXJzKHBhaXJzKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBwYWlycyA9PSBudWxsID8gMCA6IHBhaXJzLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSB7fTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHBhaXIgPSBwYWlyc1tpbmRleF07XG4gICAgICAgIHJlc3VsdFtwYWlyWzBdXSA9IHBhaXJbMV07XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBhbGlhcyBmaXJzdFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmhlYWQoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICpcbiAgICAgKiBfLmhlYWQoW10pO1xuICAgICAqIC8vID0+IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhlYWQoYXJyYXkpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSA/IGFycmF5WzBdIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGB2YWx1ZWAgaXMgZm91bmQgaW4gYGFycmF5YFxuICAgICAqIHVzaW5nIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLiBJZiBgZnJvbUluZGV4YCBpcyBuZWdhdGl2ZSwgaXQncyB1c2VkIGFzIHRoZVxuICAgICAqIG9mZnNldCBmcm9tIHRoZSBlbmQgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmcm9tSW5kZXg9MF0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaW5kZXhPZihbMSwgMiwgMSwgMl0sIDIpO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIC8vIFNlYXJjaCBmcm9tIHRoZSBgZnJvbUluZGV4YC5cbiAgICAgKiBfLmluZGV4T2YoWzEsIDIsIDEsIDJdLCAyLCAyKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gZnJvbUluZGV4ID09IG51bGwgPyAwIDogdG9JbnRlZ2VyKGZyb21JbmRleCk7XG4gICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgIGluZGV4ID0gbmF0aXZlTWF4KGxlbmd0aCArIGluZGV4LCAwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIGluZGV4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBidXQgdGhlIGxhc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pbml0aWFsKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5pdGlhbChhcnJheSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgcmV0dXJuIGxlbmd0aCA/IGJhc2VTbGljZShhcnJheSwgMCwgLTEpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB1bmlxdWUgdmFsdWVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIGFsbCBnaXZlbiBhcnJheXNcbiAgICAgKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy4gVGhlIG9yZGVyIGFuZCByZWZlcmVuY2VzIG9mIHJlc3VsdCB2YWx1ZXMgYXJlXG4gICAgICogZGV0ZXJtaW5lZCBieSB0aGUgZmlyc3QgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgaW50ZXJzZWN0aW5nIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pbnRlcnNlY3Rpb24oWzIsIDFdLCBbMiwgM10pO1xuICAgICAqIC8vID0+IFsyXVxuICAgICAqL1xuICAgIHZhciBpbnRlcnNlY3Rpb24gPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBtYXBwZWQgPSBhcnJheU1hcChhcnJheXMsIGNhc3RBcnJheUxpa2VPYmplY3QpO1xuICAgICAgcmV0dXJuIChtYXBwZWQubGVuZ3RoICYmIG1hcHBlZFswXSA9PT0gYXJyYXlzWzBdKVxuICAgICAgICA/IGJhc2VJbnRlcnNlY3Rpb24obWFwcGVkKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbnRlcnNlY3Rpb25gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYFxuICAgICAqIHdoaWNoIGlzIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBvZiBlYWNoIGBhcnJheXNgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb25cbiAgICAgKiBieSB3aGljaCB0aGV5J3JlIGNvbXBhcmVkLiBUaGUgb3JkZXIgYW5kIHJlZmVyZW5jZXMgb2YgcmVzdWx0IHZhbHVlcyBhcmVcbiAgICAgKiBkZXRlcm1pbmVkIGJ5IHRoZSBmaXJzdCBhcnJheS4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6XG4gICAgICogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgaW50ZXJzZWN0aW5nIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pbnRlcnNlY3Rpb25CeShbMi4xLCAxLjJdLCBbMi4zLCAzLjRdLCBNYXRoLmZsb29yKTtcbiAgICAgKiAvLyA9PiBbMi4xXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5pbnRlcnNlY3Rpb25CeShbeyAneCc6IDEgfV0sIFt7ICd4JzogMiB9LCB7ICd4JzogMSB9XSwgJ3gnKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDEgfV1cbiAgICAgKi9cbiAgICB2YXIgaW50ZXJzZWN0aW9uQnkgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBpdGVyYXRlZSA9IGxhc3QoYXJyYXlzKSxcbiAgICAgICAgICBtYXBwZWQgPSBhcnJheU1hcChhcnJheXMsIGNhc3RBcnJheUxpa2VPYmplY3QpO1xuXG4gICAgICBpZiAoaXRlcmF0ZWUgPT09IGxhc3QobWFwcGVkKSkge1xuICAgICAgICBpdGVyYXRlZSA9IHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1hcHBlZC5wb3AoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAobWFwcGVkLmxlbmd0aCAmJiBtYXBwZWRbMF0gPT09IGFycmF5c1swXSlcbiAgICAgICAgPyBiYXNlSW50ZXJzZWN0aW9uKG1hcHBlZCwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbnRlcnNlY3Rpb25gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGNvbXBhcmF0b3JgXG4gICAgICogd2hpY2ggaXMgaW52b2tlZCB0byBjb21wYXJlIGVsZW1lbnRzIG9mIGBhcnJheXNgLiBUaGUgb3JkZXIgYW5kIHJlZmVyZW5jZXNcbiAgICAgKiBvZiByZXN1bHQgdmFsdWVzIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSBmaXJzdCBhcnJheS4gVGhlIGNvbXBhcmF0b3IgaXNcbiAgICAgKiBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50czogKGFyclZhbCwgb3RoVmFsKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBpbnRlcnNlY3RpbmcgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAyLCAneSc6IDEgfV07XG4gICAgICogdmFyIG90aGVycyA9IFt7ICd4JzogMSwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDIgfV07XG4gICAgICpcbiAgICAgKiBfLmludGVyc2VjdGlvbldpdGgob2JqZWN0cywgb3RoZXJzLCBfLmlzRXF1YWwpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSwgJ3knOiAyIH1dXG4gICAgICovXG4gICAgdmFyIGludGVyc2VjdGlvbldpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBjb21wYXJhdG9yID0gbGFzdChhcnJheXMpLFxuICAgICAgICAgIG1hcHBlZCA9IGFycmF5TWFwKGFycmF5cywgY2FzdEFycmF5TGlrZU9iamVjdCk7XG5cbiAgICAgIGNvbXBhcmF0b3IgPSB0eXBlb2YgY29tcGFyYXRvciA9PSAnZnVuY3Rpb24nID8gY29tcGFyYXRvciA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChjb21wYXJhdG9yKSB7XG4gICAgICAgIG1hcHBlZC5wb3AoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAobWFwcGVkLmxlbmd0aCAmJiBtYXBwZWRbMF0gPT09IGFycmF5c1swXSlcbiAgICAgICAgPyBiYXNlSW50ZXJzZWN0aW9uKG1hcHBlZCwgdW5kZWZpbmVkLCBjb21wYXJhdG9yKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYWxsIGVsZW1lbnRzIGluIGBhcnJheWAgaW50byBhIHN0cmluZyBzZXBhcmF0ZWQgYnkgYHNlcGFyYXRvcmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY29udmVydC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3NlcGFyYXRvcj0nLCddIFRoZSBlbGVtZW50IHNlcGFyYXRvci5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBqb2luZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmpvaW4oWydhJywgJ2InLCAnYyddLCAnficpO1xuICAgICAqIC8vID0+ICdhfmJ+YydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBqb2luKGFycmF5LCBzZXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiBhcnJheSA9PSBudWxsID8gJycgOiBuYXRpdmVKb2luLmNhbGwoYXJyYXksIHNlcGFyYXRvcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbGFzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGxhc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmxhc3QoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGFzdChhcnJheSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgcmV0dXJuIGxlbmd0aCA/IGFycmF5W2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaW5kZXhPZmAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGBhcnJheWAgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD1hcnJheS5sZW5ndGgtMV0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubGFzdEluZGV4T2YoWzEsIDIsIDEsIDJdLCAyKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiAvLyBTZWFyY2ggZnJvbSB0aGUgYGZyb21JbmRleGAuXG4gICAgICogXy5sYXN0SW5kZXhPZihbMSwgMiwgMSwgMl0sIDIsIDIpO1xuICAgICAqIC8vID0+IDFcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsYXN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gbGVuZ3RoO1xuICAgICAgaWYgKGZyb21JbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGluZGV4ID0gdG9JbnRlZ2VyKGZyb21JbmRleCk7XG4gICAgICAgIGluZGV4ID0gaW5kZXggPCAwID8gbmF0aXZlTWF4KGxlbmd0aCArIGluZGV4LCAwKSA6IG5hdGl2ZU1pbihpbmRleCwgbGVuZ3RoIC0gMSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWUgPT09IHZhbHVlXG4gICAgICAgID8gc3RyaWN0TGFzdEluZGV4T2YoYXJyYXksIHZhbHVlLCBpbmRleClcbiAgICAgICAgOiBiYXNlRmluZEluZGV4KGFycmF5LCBiYXNlSXNOYU4sIGluZGV4LCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBlbGVtZW50IGF0IGluZGV4IGBuYCBvZiBgYXJyYXlgLiBJZiBgbmAgaXMgbmVnYXRpdmUsIHRoZSBudGhcbiAgICAgKiBlbGVtZW50IGZyb20gdGhlIGVuZCBpcyByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjExLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTBdIFRoZSBpbmRleCBvZiB0aGUgZWxlbWVudCB0byByZXR1cm4uXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG50aCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsnYScsICdiJywgJ2MnLCAnZCddO1xuICAgICAqXG4gICAgICogXy5udGgoYXJyYXksIDEpO1xuICAgICAqIC8vID0+ICdiJ1xuICAgICAqXG4gICAgICogXy5udGgoYXJyYXksIC0yKTtcbiAgICAgKiAvLyA9PiAnYyc7XG4gICAgICovXG4gICAgZnVuY3Rpb24gbnRoKGFycmF5LCBuKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkgPyBiYXNlTnRoKGFycmF5LCB0b0ludGVnZXIobikpIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIGdpdmVuIHZhbHVlcyBmcm9tIGBhcnJheWAgdXNpbmdcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8ud2l0aG91dGAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC4gVXNlIGBfLnJlbW92ZWBcbiAgICAgKiB0byByZW1vdmUgZWxlbWVudHMgZnJvbSBhbiBhcnJheSBieSBwcmVkaWNhdGUuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsnYScsICdiJywgJ2MnLCAnYScsICdiJywgJ2MnXTtcbiAgICAgKlxuICAgICAqIF8ucHVsbChhcnJheSwgJ2EnLCAnYycpO1xuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbJ2InLCAnYiddXG4gICAgICovXG4gICAgdmFyIHB1bGwgPSBiYXNlUmVzdChwdWxsQWxsKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucHVsbGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBhbiBhcnJheSBvZiB2YWx1ZXMgdG8gcmVtb3ZlLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5kaWZmZXJlbmNlYCwgdGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsnYScsICdiJywgJ2MnLCAnYScsICdiJywgJ2MnXTtcbiAgICAgKlxuICAgICAqIF8ucHVsbEFsbChhcnJheSwgWydhJywgJ2MnXSk7XG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsnYicsICdiJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwdWxsQWxsKGFycmF5LCB2YWx1ZXMpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoICYmIHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoKVxuICAgICAgICA/IGJhc2VQdWxsQWxsKGFycmF5LCB2YWx1ZXMpXG4gICAgICAgIDogYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5wdWxsQWxsYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCBhbmQgYHZhbHVlc2AgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvblxuICAgICAqIGJ5IHdoaWNoIHRoZXkncmUgY29tcGFyZWQuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5kaWZmZXJlbmNlQnlgLCB0aGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFt7ICd4JzogMSB9LCB7ICd4JzogMiB9LCB7ICd4JzogMyB9LCB7ICd4JzogMSB9XTtcbiAgICAgKlxuICAgICAqIF8ucHVsbEFsbEJ5KGFycmF5LCBbeyAneCc6IDEgfSwgeyAneCc6IDMgfV0sICd4Jyk7XG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMiB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHB1bGxBbGxCeShhcnJheSwgdmFsdWVzLCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGggJiYgdmFsdWVzICYmIHZhbHVlcy5sZW5ndGgpXG4gICAgICAgID8gYmFzZVB1bGxBbGwoYXJyYXksIHZhbHVlcywgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKVxuICAgICAgICA6IGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucHVsbEFsbGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5YCB0byBgdmFsdWVzYC4gVGhlIGNvbXBhcmF0b3IgaXNcbiAgICAgKiBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50czogKGFyclZhbCwgb3RoVmFsKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8uZGlmZmVyZW5jZVdpdGhgLCB0aGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC42LjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDMsICd5JzogNCB9LCB7ICd4JzogNSwgJ3knOiA2IH1dO1xuICAgICAqXG4gICAgICogXy5wdWxsQWxsV2l0aChhcnJheSwgW3sgJ3gnOiAzLCAneSc6IDQgfV0sIF8uaXNFcXVhbCk7XG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiA1LCAneSc6IDYgfV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwdWxsQWxsV2l0aChhcnJheSwgdmFsdWVzLCBjb21wYXJhdG9yKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCAmJiB2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aClcbiAgICAgICAgPyBiYXNlUHVsbEFsbChhcnJheSwgdmFsdWVzLCB1bmRlZmluZWQsIGNvbXBhcmF0b3IpXG4gICAgICAgIDogYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBlbGVtZW50cyBmcm9tIGBhcnJheWAgY29ycmVzcG9uZGluZyB0byBgaW5kZXhlc2AgYW5kIHJldHVybnMgYW5cbiAgICAgKiBhcnJheSBvZiByZW1vdmVkIGVsZW1lbnRzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5hdGAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHsuLi4obnVtYmVyfG51bWJlcltdKX0gW2luZGV4ZXNdIFRoZSBpbmRleGVzIG9mIGVsZW1lbnRzIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiByZW1vdmVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbJ2EnLCAnYicsICdjJywgJ2QnXTtcbiAgICAgKiB2YXIgcHVsbGVkID0gXy5wdWxsQXQoYXJyYXksIFsxLCAzXSk7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gWydhJywgJ2MnXVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2cocHVsbGVkKTtcbiAgICAgKiAvLyA9PiBbJ2InLCAnZCddXG4gICAgICovXG4gICAgdmFyIHB1bGxBdCA9IGZsYXRSZXN0KGZ1bmN0aW9uKGFycmF5LCBpbmRleGVzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgcmVzdWx0ID0gYmFzZUF0KGFycmF5LCBpbmRleGVzKTtcblxuICAgICAgYmFzZVB1bGxBdChhcnJheSwgYXJyYXlNYXAoaW5kZXhlcywgZnVuY3Rpb24oaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGlzSW5kZXgoaW5kZXgsIGxlbmd0aCkgPyAraW5kZXggOiBpbmRleDtcbiAgICAgIH0pLnNvcnQoY29tcGFyZUFzY2VuZGluZykpO1xuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwgZWxlbWVudHMgZnJvbSBgYXJyYXlgIHRoYXQgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yXG4gICAgICogYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgdGhlIHJlbW92ZWQgZWxlbWVudHMuIFRoZSBwcmVkaWNhdGUgaXMgaW52b2tlZFxuICAgICAqIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBhcnJheSkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLmZpbHRlcmAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC4gVXNlIGBfLnB1bGxgXG4gICAgICogdG8gcHVsbCBlbGVtZW50cyBmcm9tIGFuIGFycmF5IGJ5IHZhbHVlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcmVtb3ZlZCBlbGVtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDIsIDMsIDRdO1xuICAgICAqIHZhciBldmVucyA9IF8ucmVtb3ZlKGFycmF5LCBmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gbiAlIDIgPT0gMDtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMSwgM11cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGV2ZW5zKTtcbiAgICAgKiAvLyA9PiBbMiwgNF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZW1vdmUoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgaW5kZXhlcyA9IFtdLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgcHJlZGljYXRlID0gZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgaWYgKHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgICBpbmRleGVzLnB1c2goaW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBiYXNlUHVsbEF0KGFycmF5LCBpbmRleGVzKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV2ZXJzZXMgYGFycmF5YCBzbyB0aGF0IHRoZSBmaXJzdCBlbGVtZW50IGJlY29tZXMgdGhlIGxhc3QsIHRoZSBzZWNvbmRcbiAgICAgKiBlbGVtZW50IGJlY29tZXMgdGhlIHNlY29uZCB0byBsYXN0LCBhbmQgc28gb24uXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgIGFuZCBpcyBiYXNlZCBvblxuICAgICAqIFtgQXJyYXkjcmV2ZXJzZWBdKGh0dHBzOi8vbWRuLmlvL0FycmF5L3JldmVyc2UpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDIsIDNdO1xuICAgICAqXG4gICAgICogXy5yZXZlcnNlKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMywgMiwgMV1cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMywgMiwgMV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXZlcnNlKGFycmF5KSB7XG4gICAgICByZXR1cm4gYXJyYXkgPT0gbnVsbCA/IGFycmF5IDogbmF0aXZlUmV2ZXJzZS5jYWxsKGFycmF5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCBmcm9tIGBzdGFydGAgdXAgdG8sIGJ1dCBub3QgaW5jbHVkaW5nLCBgZW5kYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGluc3RlYWQgb2ZcbiAgICAgKiBbYEFycmF5I3NsaWNlYF0oaHR0cHM6Ly9tZG4uaW8vQXJyYXkvc2xpY2UpIHRvIGVuc3VyZSBkZW5zZSBhcnJheXMgYXJlXG4gICAgICogcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2xpY2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmQ9YXJyYXkubGVuZ3RoXSBUaGUgZW5kIHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKGVuZCAmJiB0eXBlb2YgZW5kICE9ICdudW1iZXInICYmIGlzSXRlcmF0ZWVDYWxsKGFycmF5LCBzdGFydCwgZW5kKSkge1xuICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgIGVuZCA9IGxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBzdGFydCA9IHN0YXJ0ID09IG51bGwgPyAwIDogdG9JbnRlZ2VyKHN0YXJ0KTtcbiAgICAgICAgZW5kID0gZW5kID09PSB1bmRlZmluZWQgPyBsZW5ndGggOiB0b0ludGVnZXIoZW5kKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZXMgYSBiaW5hcnkgc2VhcmNoIHRvIGRldGVybWluZSB0aGUgbG93ZXN0IGluZGV4IGF0IHdoaWNoIGB2YWx1ZWBcbiAgICAgKiBzaG91bGQgYmUgaW5zZXJ0ZWQgaW50byBgYXJyYXlgIGluIG9yZGVyIHRvIG1haW50YWluIGl0cyBzb3J0IG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICogIGludG8gYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zb3J0ZWRJbmRleChbMzAsIDUwXSwgNDApO1xuICAgICAqIC8vID0+IDFcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb3J0ZWRJbmRleChhcnJheSwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnNvcnRlZEluZGV4YCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWBcbiAgICAgKiB3aGljaCBpcyBpbnZva2VkIGZvciBgdmFsdWVgIGFuZCBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCB0byBjb21wdXRlIHRoZWlyXG4gICAgICogc29ydCByYW5raW5nLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgKiAgaW50byBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICd4JzogNCB9LCB7ICd4JzogNSB9XTtcbiAgICAgKlxuICAgICAqIF8uc29ydGVkSW5kZXhCeShvYmplY3RzLCB7ICd4JzogNCB9LCBmdW5jdGlvbihvKSB7IHJldHVybiBvLng7IH0pO1xuICAgICAqIC8vID0+IDBcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uc29ydGVkSW5kZXhCeShvYmplY3RzLCB7ICd4JzogNCB9LCAneCcpO1xuICAgICAqIC8vID0+IDBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb3J0ZWRJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXhCeShhcnJheSwgdmFsdWUsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbmRleE9mYCBleGNlcHQgdGhhdCBpdCBwZXJmb3JtcyBhIGJpbmFyeVxuICAgICAqIHNlYXJjaCBvbiBhIHNvcnRlZCBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNvcnRlZEluZGV4T2YoWzQsIDUsIDUsIDUsIDZdLCA1KTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICovXG4gICAgZnVuY3Rpb24gc29ydGVkSW5kZXhPZihhcnJheSwgdmFsdWUpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGgpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gYmFzZVNvcnRlZEluZGV4KGFycmF5LCB2YWx1ZSk7XG4gICAgICAgIGlmIChpbmRleCA8IGxlbmd0aCAmJiBlcShhcnJheVtpbmRleF0sIHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc29ydGVkSW5kZXhgIGV4Y2VwdCB0aGF0IGl0IHJldHVybnMgdGhlIGhpZ2hlc3RcbiAgICAgKiBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIGBhcnJheWAgaW4gb3JkZXIgdG9cbiAgICAgKiBtYWludGFpbiBpdHMgc29ydCBvcmRlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICAgICAqICBpbnRvIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29ydGVkTGFzdEluZGV4KFs0LCA1LCA1LCA1LCA2XSwgNSk7XG4gICAgICogLy8gPT4gNFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRlZExhc3RJbmRleChhcnJheSwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnNvcnRlZExhc3RJbmRleGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgXG4gICAgICogd2hpY2ggaXMgaW52b2tlZCBmb3IgYHZhbHVlYCBhbmQgZWFjaCBlbGVtZW50IG9mIGBhcnJheWAgdG8gY29tcHV0ZSB0aGVpclxuICAgICAqIHNvcnQgcmFua2luZy4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICogIGludG8gYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAneCc6IDQgfSwgeyAneCc6IDUgfV07XG4gICAgICpcbiAgICAgKiBfLnNvcnRlZExhc3RJbmRleEJ5KG9iamVjdHMsIHsgJ3gnOiA0IH0sIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8ueDsgfSk7XG4gICAgICogLy8gPT4gMVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5zb3J0ZWRMYXN0SW5kZXhCeShvYmplY3RzLCB7ICd4JzogNCB9LCAneCcpO1xuICAgICAqIC8vID0+IDFcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb3J0ZWRMYXN0SW5kZXhCeShhcnJheSwgdmFsdWUsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gYmFzZVNvcnRlZEluZGV4QnkoYXJyYXksIHZhbHVlLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMiksIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ubGFzdEluZGV4T2ZgIGV4Y2VwdCB0aGF0IGl0IHBlcmZvcm1zIGEgYmluYXJ5XG4gICAgICogc2VhcmNoIG9uIGEgc29ydGVkIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29ydGVkTGFzdEluZGV4T2YoWzQsIDUsIDUsIDUsIDZdLCA1KTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICovXG4gICAgZnVuY3Rpb24gc29ydGVkTGFzdEluZGV4T2YoYXJyYXksIHZhbHVlKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAobGVuZ3RoKSB7XG4gICAgICAgIHZhciBpbmRleCA9IGJhc2VTb3J0ZWRJbmRleChhcnJheSwgdmFsdWUsIHRydWUpIC0gMTtcbiAgICAgICAgaWYgKGVxKGFycmF5W2luZGV4XSwgdmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51bmlxYCBleGNlcHQgdGhhdCBpdCdzIGRlc2lnbmVkIGFuZCBvcHRpbWl6ZWRcbiAgICAgKiBmb3Igc29ydGVkIGFycmF5cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNvcnRlZFVuaXEoWzEsIDEsIDJdKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb3J0ZWRVbmlxKGFycmF5KSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlU29ydGVkVW5pcShhcnJheSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuaXFCeWAgZXhjZXB0IHRoYXQgaXQncyBkZXNpZ25lZCBhbmQgb3B0aW1pemVkXG4gICAgICogZm9yIHNvcnRlZCBhcnJheXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWVdIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNvcnRlZFVuaXFCeShbMS4xLCAxLjIsIDIuMywgMi40XSwgTWF0aC5mbG9vcik7XG4gICAgICogLy8gPT4gWzEuMSwgMi4zXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRlZFVuaXFCeShhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VTb3J0ZWRVbmlxKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpXG4gICAgICAgIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgYnV0IHRoZSBmaXJzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRhaWwoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0YWlsKGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZVNsaWNlKGFycmF5LCAxLCBsZW5ndGgpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBgbmAgZWxlbWVudHMgdGFrZW4gZnJvbSB0aGUgYmVnaW5uaW5nLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHRha2UuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGFrZShbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IFsxXVxuICAgICAqXG4gICAgICogXy50YWtlKFsxLCAyLCAzXSwgMik7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICpcbiAgICAgKiBfLnRha2UoWzEsIDIsIDNdLCA1KTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIF8udGFrZShbMSwgMiwgM10sIDApO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGFrZShhcnJheSwgbiwgZ3VhcmQpIHtcbiAgICAgIGlmICghKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgbiA9IChndWFyZCB8fCBuID09PSB1bmRlZmluZWQpID8gMSA6IHRvSW50ZWdlcihuKTtcbiAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIDAsIG4gPCAwID8gMCA6IG4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIHdpdGggYG5gIGVsZW1lbnRzIHRha2VuIGZyb20gdGhlIGVuZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MV0gVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byB0YWtlLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRha2VSaWdodChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IFszXVxuICAgICAqXG4gICAgICogXy50YWtlUmlnaHQoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbMiwgM11cbiAgICAgKlxuICAgICAqIF8udGFrZVJpZ2h0KFsxLCAyLCAzXSwgNSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBfLnRha2VSaWdodChbMSwgMiwgM10sIDApO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGFrZVJpZ2h0KGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgbiA9IChndWFyZCB8fCBuID09PSB1bmRlZmluZWQpID8gMSA6IHRvSW50ZWdlcihuKTtcbiAgICAgIG4gPSBsZW5ndGggLSBuO1xuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgbiA8IDAgPyAwIDogbiwgbGVuZ3RoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGVsZW1lbnRzIHRha2VuIGZyb20gdGhlIGVuZC4gRWxlbWVudHMgYXJlXG4gICAgICogdGFrZW4gdW50aWwgYHByZWRpY2F0ZWAgcmV0dXJucyBmYWxzZXkuIFRoZSBwcmVkaWNhdGUgaXMgaW52b2tlZCB3aXRoXG4gICAgICogdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBhcnJheSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy50YWtlUmlnaHRXaGlsZSh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gIW8uYWN0aXZlOyB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnLCAncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8udGFrZVJpZ2h0V2hpbGUodXNlcnMsIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiBmYWxzZSB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ3BlYmJsZXMnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8udGFrZVJpZ2h0V2hpbGUodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnLCAncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnRha2VSaWdodFdoaWxlKHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0YWtlUmlnaHRXaGlsZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlV2hpbGUoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGZhbHNlLCB0cnVlKVxuICAgICAgICA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIHdpdGggZWxlbWVudHMgdGFrZW4gZnJvbSB0aGUgYmVnaW5uaW5nLiBFbGVtZW50c1xuICAgICAqIGFyZSB0YWtlbiB1bnRpbCBgcHJlZGljYXRlYCByZXR1cm5zIGZhbHNleS4gVGhlIHByZWRpY2F0ZSBpcyBpbnZva2VkIHdpdGhcbiAgICAgKiB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGFycmF5KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnRha2VXaGlsZSh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gIW8uYWN0aXZlOyB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leScsICdmcmVkJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy50YWtlV2hpbGUodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnRha2VXaGlsZSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5JywgJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy50YWtlV2hpbGUodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRha2VXaGlsZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlV2hpbGUoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMykpXG4gICAgICAgIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB1bmlxdWUgdmFsdWVzLCBpbiBvcmRlciwgZnJvbSBhbGwgZ2l2ZW4gYXJyYXlzIHVzaW5nXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY29tYmluZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuaW9uKFsyXSwgWzEsIDJdKTtcbiAgICAgKiAvLyA9PiBbMiwgMV1cbiAgICAgKi9cbiAgICB2YXIgdW5pb24gPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHJldHVybiBiYXNlVW5pcShiYXNlRmxhdHRlbihhcnJheXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuaW9uYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgb2YgZWFjaCBgYXJyYXlzYCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uIGJ5XG4gICAgICogd2hpY2ggdW5pcXVlbmVzcyBpcyBjb21wdXRlZC4gUmVzdWx0IHZhbHVlcyBhcmUgY2hvc2VuIGZyb20gdGhlIGZpcnN0XG4gICAgICogYXJyYXkgaW4gd2hpY2ggdGhlIHZhbHVlIG9jY3Vycy4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6XG4gICAgICogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY29tYmluZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuaW9uQnkoWzIuMV0sIFsxLjIsIDIuM10sIE1hdGguZmxvb3IpO1xuICAgICAqIC8vID0+IFsyLjEsIDEuMl1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8udW5pb25CeShbeyAneCc6IDEgfV0sIFt7ICd4JzogMiB9LCB7ICd4JzogMSB9XSwgJ3gnKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDEgfSwgeyAneCc6IDIgfV1cbiAgICAgKi9cbiAgICB2YXIgdW5pb25CeSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgdmFyIGl0ZXJhdGVlID0gbGFzdChhcnJheXMpO1xuICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGl0ZXJhdGVlKSkge1xuICAgICAgICBpdGVyYXRlZSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlVW5pcShiYXNlRmxhdHRlbihhcnJheXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udW5pb25gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGNvbXBhcmF0b3JgIHdoaWNoXG4gICAgICogaXMgaW52b2tlZCB0byBjb21wYXJlIGVsZW1lbnRzIG9mIGBhcnJheXNgLiBSZXN1bHQgdmFsdWVzIGFyZSBjaG9zZW4gZnJvbVxuICAgICAqIHRoZSBmaXJzdCBhcnJheSBpbiB3aGljaCB0aGUgdmFsdWUgb2NjdXJzLiBUaGUgY29tcGFyYXRvciBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGNvbWJpbmVkIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAneCc6IDEsICd5JzogMiB9LCB7ICd4JzogMiwgJ3knOiAxIH1dO1xuICAgICAqIHZhciBvdGhlcnMgPSBbeyAneCc6IDEsICd5JzogMSB9LCB7ICd4JzogMSwgJ3knOiAyIH1dO1xuICAgICAqXG4gICAgICogXy51bmlvbldpdGgob2JqZWN0cywgb3RoZXJzLCBfLmlzRXF1YWwpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAyLCAneSc6IDEgfSwgeyAneCc6IDEsICd5JzogMSB9XVxuICAgICAqL1xuICAgIHZhciB1bmlvbldpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBjb21wYXJhdG9yID0gbGFzdChhcnJheXMpO1xuICAgICAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09ICdmdW5jdGlvbicgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIGJhc2VVbmlxKGJhc2VGbGF0dGVuKGFycmF5cywgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpLCB1bmRlZmluZWQsIGNvbXBhcmF0b3IpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGR1cGxpY2F0ZS1mcmVlIHZlcnNpb24gb2YgYW4gYXJyYXksIHVzaW5nXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGluIHdoaWNoIG9ubHkgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgZWFjaCBlbGVtZW50XG4gICAgICogaXMga2VwdC4gVGhlIG9yZGVyIG9mIHJlc3VsdCB2YWx1ZXMgaXMgZGV0ZXJtaW5lZCBieSB0aGUgb3JkZXIgdGhleSBvY2N1clxuICAgICAqIGluIHRoZSBhcnJheS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuaXEoWzIsIDEsIDJdKTtcbiAgICAgKiAvLyA9PiBbMiwgMV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmlxKGFycmF5KSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkgPyBiYXNlVW5pcShhcnJheSkgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuaXFgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBpbiBgYXJyYXlgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnkgd2hpY2hcbiAgICAgKiB1bmlxdWVuZXNzIGlzIGNvbXB1dGVkLiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZVxuICAgICAqIG9yZGVyIHRoZXkgb2NjdXIgaW4gdGhlIGFycmF5LiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDpcbiAgICAgKiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuaXFCeShbMi4xLCAxLjIsIDIuM10sIE1hdGguZmxvb3IpO1xuICAgICAqIC8vID0+IFsyLjEsIDEuMl1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8udW5pcUJ5KFt7ICd4JzogMSB9LCB7ICd4JzogMiB9LCB7ICd4JzogMSB9XSwgJ3gnKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDEgfSwgeyAneCc6IDIgfV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmlxQnkoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkgPyBiYXNlVW5pcShhcnJheSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udW5pcWAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5YC4gVGhlIG9yZGVyIG9mIHJlc3VsdCB2YWx1ZXMgaXNcbiAgICAgKiBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlciB0aGV5IG9jY3VyIGluIHRoZSBhcnJheS5UaGUgY29tcGFyYXRvciBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9LCB7ICd4JzogMSwgJ3knOiAyIH1dO1xuICAgICAqXG4gICAgICogXy51bmlxV2l0aChvYmplY3RzLCBfLmlzRXF1YWwpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAyLCAneSc6IDEgfV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmlxV2l0aChhcnJheSwgY29tcGFyYXRvcikge1xuICAgICAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09ICdmdW5jdGlvbicgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpID8gYmFzZVVuaXEoYXJyYXksIHVuZGVmaW5lZCwgY29tcGFyYXRvcikgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnppcGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBhbiBhcnJheSBvZiBncm91cGVkXG4gICAgICogZWxlbWVudHMgYW5kIGNyZWF0ZXMgYW4gYXJyYXkgcmVncm91cGluZyB0aGUgZWxlbWVudHMgdG8gdGhlaXIgcHJlLXppcFxuICAgICAqIGNvbmZpZ3VyYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMS4yLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgb2YgZ3JvdXBlZCBlbGVtZW50cyB0byBwcm9jZXNzLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHJlZ3JvdXBlZCBlbGVtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHppcHBlZCA9IF8uemlwKFsnYScsICdiJ10sIFsxLCAyXSwgW3RydWUsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gW1snYScsIDEsIHRydWVdLCBbJ2InLCAyLCBmYWxzZV1dXG4gICAgICpcbiAgICAgKiBfLnVuemlwKHppcHBlZCk7XG4gICAgICogLy8gPT4gW1snYScsICdiJ10sIFsxLCAyXSwgW3RydWUsIGZhbHNlXV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bnppcChhcnJheSkge1xuICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gMDtcbiAgICAgIGFycmF5ID0gYXJyYXlGaWx0ZXIoYXJyYXksIGZ1bmN0aW9uKGdyb3VwKSB7XG4gICAgICAgIGlmIChpc0FycmF5TGlrZU9iamVjdChncm91cCkpIHtcbiAgICAgICAgICBsZW5ndGggPSBuYXRpdmVNYXgoZ3JvdXAubGVuZ3RoLCBsZW5ndGgpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBiYXNlVGltZXMobGVuZ3RoLCBmdW5jdGlvbihpbmRleCkge1xuICAgICAgICByZXR1cm4gYXJyYXlNYXAoYXJyYXksIGJhc2VQcm9wZXJ0eShpbmRleCkpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51bnppcGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgIHRvIHNwZWNpZnlcbiAgICAgKiBob3cgcmVncm91cGVkIHZhbHVlcyBzaG91bGQgYmUgY29tYmluZWQuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggdGhlXG4gICAgICogZWxlbWVudHMgb2YgZWFjaCBncm91cDogKC4uLmdyb3VwKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjguMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzIHRvIHByb2Nlc3MuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiB0byBjb21iaW5lXG4gICAgICogIHJlZ3JvdXBlZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcmVncm91cGVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgemlwcGVkID0gXy56aXAoWzEsIDJdLCBbMTAsIDIwXSwgWzEwMCwgMjAwXSk7XG4gICAgICogLy8gPT4gW1sxLCAxMCwgMTAwXSwgWzIsIDIwLCAyMDBdXVxuICAgICAqXG4gICAgICogXy51bnppcFdpdGgoemlwcGVkLCBfLmFkZCk7XG4gICAgICogLy8gPT4gWzMsIDMwLCAzMDBdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdW56aXBXaXRoKGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gdW56aXAoYXJyYXkpO1xuICAgICAgaWYgKGl0ZXJhdGVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheU1hcChyZXN1bHQsIGZ1bmN0aW9uKGdyb3VwKSB7XG4gICAgICAgIHJldHVybiBhcHBseShpdGVyYXRlZSwgdW5kZWZpbmVkLCBncm91cCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGV4Y2x1ZGluZyBhbGwgZ2l2ZW4gdmFsdWVzIHVzaW5nXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLnB1bGxgLCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGV4Y2x1ZGUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqIEBzZWUgXy5kaWZmZXJlbmNlLCBfLnhvclxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLndpdGhvdXQoWzIsIDEsIDIsIDNdLCAxLCAyKTtcbiAgICAgKiAvLyA9PiBbM11cbiAgICAgKi9cbiAgICB2YXIgd2l0aG91dCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5LCB2YWx1ZXMpIHtcbiAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdChhcnJheSlcbiAgICAgICAgPyBiYXNlRGlmZmVyZW5jZShhcnJheSwgdmFsdWVzKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB1bmlxdWUgdmFsdWVzIHRoYXQgaXMgdGhlXG4gICAgICogW3N5bW1ldHJpYyBkaWZmZXJlbmNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TeW1tZXRyaWNfZGlmZmVyZW5jZSlcbiAgICAgKiBvZiB0aGUgZ2l2ZW4gYXJyYXlzLiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlclxuICAgICAqIHRoZXkgb2NjdXIgaW4gdGhlIGFycmF5cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjQuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQHNlZSBfLmRpZmZlcmVuY2UsIF8ud2l0aG91dFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnhvcihbMiwgMV0sIFsyLCAzXSk7XG4gICAgICogLy8gPT4gWzEsIDNdXG4gICAgICovXG4gICAgdmFyIHhvciA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgcmV0dXJuIGJhc2VYb3IoYXJyYXlGaWx0ZXIoYXJyYXlzLCBpc0FycmF5TGlrZU9iamVjdCkpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy54b3JgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBvZiBlYWNoIGBhcnJheXNgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnlcbiAgICAgKiB3aGljaCBieSB3aGljaCB0aGV5J3JlIGNvbXBhcmVkLiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpcyBkZXRlcm1pbmVkXG4gICAgICogYnkgdGhlIG9yZGVyIHRoZXkgb2NjdXIgaW4gdGhlIGFycmF5cy4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmVcbiAgICAgKiBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnhvckJ5KFsyLjEsIDEuMl0sIFsyLjMsIDMuNF0sIE1hdGguZmxvb3IpO1xuICAgICAqIC8vID0+IFsxLjIsIDMuNF1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ueG9yQnkoW3sgJ3gnOiAxIH1dLCBbeyAneCc6IDIgfSwgeyAneCc6IDEgfV0sICd4Jyk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAyIH1dXG4gICAgICovXG4gICAgdmFyIHhvckJ5ID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XG4gICAgICB2YXIgaXRlcmF0ZWUgPSBsYXN0KGFycmF5cyk7XG4gICAgICBpZiAoaXNBcnJheUxpa2VPYmplY3QoaXRlcmF0ZWUpKSB7XG4gICAgICAgIGl0ZXJhdGVlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VYb3IoYXJyYXlGaWx0ZXIoYXJyYXlzLCBpc0FycmF5TGlrZU9iamVjdCksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnhvcmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5c2AuIFRoZSBvcmRlciBvZiByZXN1bHQgdmFsdWVzIGlzXG4gICAgICogZGV0ZXJtaW5lZCBieSB0aGUgb3JkZXIgdGhleSBvY2N1ciBpbiB0aGUgYXJyYXlzLiBUaGUgY29tcGFyYXRvciBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAneCc6IDEsICd5JzogMiB9LCB7ICd4JzogMiwgJ3knOiAxIH1dO1xuICAgICAqIHZhciBvdGhlcnMgPSBbeyAneCc6IDEsICd5JzogMSB9LCB7ICd4JzogMSwgJ3knOiAyIH1dO1xuICAgICAqXG4gICAgICogXy54b3JXaXRoKG9iamVjdHMsIG90aGVycywgXy5pc0VxdWFsKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDIsICd5JzogMSB9LCB7ICd4JzogMSwgJ3knOiAxIH1dXG4gICAgICovXG4gICAgdmFyIHhvcldpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBjb21wYXJhdG9yID0gbGFzdChhcnJheXMpO1xuICAgICAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09ICdmdW5jdGlvbicgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIGJhc2VYb3IoYXJyYXlGaWx0ZXIoYXJyYXlzLCBpc0FycmF5TGlrZU9iamVjdCksIHVuZGVmaW5lZCwgY29tcGFyYXRvcik7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGdyb3VwZWQgZWxlbWVudHMsIHRoZSBmaXJzdCBvZiB3aGljaCBjb250YWlucyB0aGVcbiAgICAgKiBmaXJzdCBlbGVtZW50cyBvZiB0aGUgZ2l2ZW4gYXJyYXlzLCB0aGUgc2Vjb25kIG9mIHdoaWNoIGNvbnRhaW5zIHRoZVxuICAgICAqIHNlY29uZCBlbGVtZW50cyBvZiB0aGUgZ2l2ZW4gYXJyYXlzLCBhbmQgc28gb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIHByb2Nlc3MuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZ3JvdXBlZCBlbGVtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy56aXAoWydhJywgJ2InXSwgWzEsIDJdLCBbdHJ1ZSwgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBbWydhJywgMSwgdHJ1ZV0sIFsnYicsIDIsIGZhbHNlXV1cbiAgICAgKi9cbiAgICB2YXIgemlwID0gYmFzZVJlc3QodW56aXApO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5mcm9tUGFpcnNgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgdHdvIGFycmF5cyxcbiAgICAgKiBvbmUgb2YgcHJvcGVydHkgaWRlbnRpZmllcnMgYW5kIG9uZSBvZiBjb3JyZXNwb25kaW5nIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjQuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwcm9wcz1bXV0gVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFt2YWx1ZXM9W11dIFRoZSBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy56aXBPYmplY3QoWydhJywgJ2InXSwgWzEsIDJdKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB6aXBPYmplY3QocHJvcHMsIHZhbHVlcykge1xuICAgICAgcmV0dXJuIGJhc2VaaXBPYmplY3QocHJvcHMgfHwgW10sIHZhbHVlcyB8fCBbXSwgYXNzaWduVmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uemlwT2JqZWN0YCBleGNlcHQgdGhhdCBpdCBzdXBwb3J0cyBwcm9wZXJ0eSBwYXRocy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwcm9wcz1bXV0gVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFt2YWx1ZXM9W11dIFRoZSBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy56aXBPYmplY3REZWVwKFsnYS5iWzBdLmMnLCAnYS5iWzFdLmQnXSwgWzEsIDJdKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogeyAnYic6IFt7ICdjJzogMSB9LCB7ICdkJzogMiB9XSB9IH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB6aXBPYmplY3REZWVwKHByb3BzLCB2YWx1ZXMpIHtcbiAgICAgIHJldHVybiBiYXNlWmlwT2JqZWN0KHByb3BzIHx8IFtdLCB2YWx1ZXMgfHwgW10sIGJhc2VTZXQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uemlwYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgdG8gc3BlY2lmeVxuICAgICAqIGhvdyBncm91cGVkIHZhbHVlcyBzaG91bGQgYmUgY29tYmluZWQuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggdGhlXG4gICAgICogZWxlbWVudHMgb2YgZWFjaCBncm91cDogKC4uLmdyb3VwKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjguMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIHRvIGNvbWJpbmVcbiAgICAgKiAgZ3JvdXBlZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZ3JvdXBlZCBlbGVtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy56aXBXaXRoKFsxLCAyXSwgWzEwLCAyMF0sIFsxMDAsIDIwMF0sIGZ1bmN0aW9uKGEsIGIsIGMpIHtcbiAgICAgKiAgIHJldHVybiBhICsgYiArIGM7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gWzExMSwgMjIyXVxuICAgICAqL1xuICAgIHZhciB6aXBXaXRoID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXlzLmxlbmd0aCxcbiAgICAgICAgICBpdGVyYXRlZSA9IGxlbmd0aCA+IDEgPyBhcnJheXNbbGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG5cbiAgICAgIGl0ZXJhdGVlID0gdHlwZW9mIGl0ZXJhdGVlID09ICdmdW5jdGlvbicgPyAoYXJyYXlzLnBvcCgpLCBpdGVyYXRlZSkgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gdW56aXBXaXRoKGFycmF5cywgaXRlcmF0ZWUpO1xuICAgIH0pO1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UgdGhhdCB3cmFwcyBgdmFsdWVgIHdpdGggZXhwbGljaXQgbWV0aG9kXG4gICAgICogY2hhaW4gc2VxdWVuY2VzIGVuYWJsZWQuIFRoZSByZXN1bHQgb2Ygc3VjaCBzZXF1ZW5jZXMgbXVzdCBiZSB1bndyYXBwZWRcbiAgICAgKiB3aXRoIGBfI3ZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjMuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byB3cmFwLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBgbG9kYXNoYCB3cmFwcGVyIGluc3RhbmNlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWdlJzogMzYgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhZ2UnOiA0MCB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FnZSc6IDEgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiB2YXIgeW91bmdlc3QgPSBfXG4gICAgICogICAuY2hhaW4odXNlcnMpXG4gICAgICogICAuc29ydEJ5KCdhZ2UnKVxuICAgICAqICAgLm1hcChmdW5jdGlvbihvKSB7XG4gICAgICogICAgIHJldHVybiBvLnVzZXIgKyAnIGlzICcgKyBvLmFnZTtcbiAgICAgKiAgIH0pXG4gICAgICogICAuaGVhZCgpXG4gICAgICogICAudmFsdWUoKTtcbiAgICAgKiAvLyA9PiAncGViYmxlcyBpcyAxJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNoYWluKHZhbHVlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gbG9kYXNoKHZhbHVlKTtcbiAgICAgIHJlc3VsdC5fX2NoYWluX18gPSB0cnVlO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpbnZva2VzIGBpbnRlcmNlcHRvcmAgYW5kIHJldHVybnMgYHZhbHVlYC4gVGhlIGludGVyY2VwdG9yXG4gICAgICogaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDsgKHZhbHVlKS4gVGhlIHB1cnBvc2Ugb2YgdGhpcyBtZXRob2QgaXMgdG9cbiAgICAgKiBcInRhcCBpbnRvXCIgYSBtZXRob2QgY2hhaW4gc2VxdWVuY2UgaW4gb3JkZXIgdG8gbW9kaWZ5IGludGVybWVkaWF0ZSByZXN1bHRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb3ZpZGUgdG8gYGludGVyY2VwdG9yYC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpbnRlcmNlcHRvciBUaGUgZnVuY3Rpb24gdG8gaW52b2tlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIGB2YWx1ZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8oWzEsIDIsIDNdKVxuICAgICAqICAudGFwKGZ1bmN0aW9uKGFycmF5KSB7XG4gICAgICogICAgLy8gTXV0YXRlIGlucHV0IGFycmF5LlxuICAgICAqICAgIGFycmF5LnBvcCgpO1xuICAgICAqICB9KVxuICAgICAqICAucmV2ZXJzZSgpXG4gICAgICogIC52YWx1ZSgpO1xuICAgICAqIC8vID0+IFsyLCAxXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRhcCh2YWx1ZSwgaW50ZXJjZXB0b3IpIHtcbiAgICAgIGludGVyY2VwdG9yKHZhbHVlKTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnRhcGAgZXhjZXB0IHRoYXQgaXQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIGBpbnRlcmNlcHRvcmAuXG4gICAgICogVGhlIHB1cnBvc2Ugb2YgdGhpcyBtZXRob2QgaXMgdG8gXCJwYXNzIHRocnVcIiB2YWx1ZXMgcmVwbGFjaW5nIGludGVybWVkaWF0ZVxuICAgICAqIHJlc3VsdHMgaW4gYSBtZXRob2QgY2hhaW4gc2VxdWVuY2UuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvdmlkZSB0byBgaW50ZXJjZXB0b3JgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGludGVyY2VwdG9yIFRoZSBmdW5jdGlvbiB0byBpbnZva2UuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc3VsdCBvZiBgaW50ZXJjZXB0b3JgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfKCcgIGFiYyAgJylcbiAgICAgKiAgLmNoYWluKClcbiAgICAgKiAgLnRyaW0oKVxuICAgICAqICAudGhydShmdW5jdGlvbih2YWx1ZSkge1xuICAgICAqICAgIHJldHVybiBbdmFsdWVdO1xuICAgICAqICB9KVxuICAgICAqICAudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbJ2FiYyddXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGhydSh2YWx1ZSwgaW50ZXJjZXB0b3IpIHtcbiAgICAgIHJldHVybiBpbnRlcmNlcHRvcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgdGhlIHdyYXBwZXIgdmVyc2lvbiBvZiBgXy5hdGAuXG4gICAgICpcbiAgICAgKiBAbmFtZSBhdFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMC4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEBwYXJhbSB7Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwYXRoc10gVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogMyB9IH0sIDRdIH07XG4gICAgICpcbiAgICAgKiBfKG9iamVjdCkuYXQoWydhWzBdLmIuYycsICdhWzFdJ10pLnZhbHVlKCk7XG4gICAgICogLy8gPT4gWzMsIDRdXG4gICAgICovXG4gICAgdmFyIHdyYXBwZXJBdCA9IGZsYXRSZXN0KGZ1bmN0aW9uKHBhdGhzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gcGF0aHMubGVuZ3RoLFxuICAgICAgICAgIHN0YXJ0ID0gbGVuZ3RoID8gcGF0aHNbMF0gOiAwLFxuICAgICAgICAgIHZhbHVlID0gdGhpcy5fX3dyYXBwZWRfXyxcbiAgICAgICAgICBpbnRlcmNlcHRvciA9IGZ1bmN0aW9uKG9iamVjdCkgeyByZXR1cm4gYmFzZUF0KG9iamVjdCwgcGF0aHMpOyB9O1xuXG4gICAgICBpZiAobGVuZ3RoID4gMSB8fCB0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCB8fFxuICAgICAgICAgICEodmFsdWUgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikgfHwgIWlzSW5kZXgoc3RhcnQpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRocnUoaW50ZXJjZXB0b3IpO1xuICAgICAgfVxuICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZShzdGFydCwgK3N0YXJ0ICsgKGxlbmd0aCA/IDEgOiAwKSk7XG4gICAgICB2YWx1ZS5fX2FjdGlvbnNfXy5wdXNoKHtcbiAgICAgICAgJ2Z1bmMnOiB0aHJ1LFxuICAgICAgICAnYXJncyc6IFtpbnRlcmNlcHRvcl0sXG4gICAgICAgICd0aGlzQXJnJzogdW5kZWZpbmVkXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgTG9kYXNoV3JhcHBlcih2YWx1ZSwgdGhpcy5fX2NoYWluX18pLnRocnUoZnVuY3Rpb24oYXJyYXkpIHtcbiAgICAgICAgaWYgKGxlbmd0aCAmJiAhYXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgYXJyYXkucHVzaCh1bmRlZmluZWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2Ugd2l0aCBleHBsaWNpdCBtZXRob2QgY2hhaW4gc2VxdWVuY2VzIGVuYWJsZWQuXG4gICAgICpcbiAgICAgKiBAbmFtZSBjaGFpblxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBgbG9kYXNoYCB3cmFwcGVyIGluc3RhbmNlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyBBIHNlcXVlbmNlIHdpdGhvdXQgZXhwbGljaXQgY2hhaW5pbmcuXG4gICAgICogXyh1c2VycykuaGVhZCgpO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH1cbiAgICAgKlxuICAgICAqIC8vIEEgc2VxdWVuY2Ugd2l0aCBleHBsaWNpdCBjaGFpbmluZy5cbiAgICAgKiBfKHVzZXJzKVxuICAgICAqICAgLmNoYWluKClcbiAgICAgKiAgIC5oZWFkKClcbiAgICAgKiAgIC5waWNrKCd1c2VyJylcbiAgICAgKiAgIC52YWx1ZSgpO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnYmFybmV5JyB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcHBlckNoYWluKCkge1xuICAgICAgcmV0dXJuIGNoYWluKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIHRoZSBjaGFpbiBzZXF1ZW5jZSBhbmQgcmV0dXJucyB0aGUgd3JhcHBlZCByZXN1bHQuXG4gICAgICpcbiAgICAgKiBAbmFtZSBjb21taXRcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjIuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDJdO1xuICAgICAqIHZhciB3cmFwcGVkID0gXyhhcnJheSkucHVzaCgzKTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIHdyYXBwZWQgPSB3cmFwcGVkLmNvbW1pdCgpO1xuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIHdyYXBwZWQubGFzdCgpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyQ29tbWl0KCkge1xuICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHRoaXMudmFsdWUoKSwgdGhpcy5fX2NoYWluX18pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG5leHQgdmFsdWUgb24gYSB3cmFwcGVkIG9iamVjdCBmb2xsb3dpbmcgdGhlXG4gICAgICogW2l0ZXJhdG9yIHByb3RvY29sXShodHRwczovL21kbi5pby9pdGVyYXRpb25fcHJvdG9jb2xzI2l0ZXJhdG9yKS5cbiAgICAgKlxuICAgICAqIEBuYW1lIG5leHRcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXh0IGl0ZXJhdG9yIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgd3JhcHBlZCA9IF8oWzEsIDJdKTtcbiAgICAgKlxuICAgICAqIHdyYXBwZWQubmV4dCgpO1xuICAgICAqIC8vID0+IHsgJ2RvbmUnOiBmYWxzZSwgJ3ZhbHVlJzogMSB9XG4gICAgICpcbiAgICAgKiB3cmFwcGVkLm5leHQoKTtcbiAgICAgKiAvLyA9PiB7ICdkb25lJzogZmFsc2UsICd2YWx1ZSc6IDIgfVxuICAgICAqXG4gICAgICogd3JhcHBlZC5uZXh0KCk7XG4gICAgICogLy8gPT4geyAnZG9uZSc6IHRydWUsICd2YWx1ZSc6IHVuZGVmaW5lZCB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcHBlck5leHQoKSB7XG4gICAgICBpZiAodGhpcy5fX3ZhbHVlc19fID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fX3ZhbHVlc19fID0gdG9BcnJheSh0aGlzLnZhbHVlKCkpO1xuICAgICAgfVxuICAgICAgdmFyIGRvbmUgPSB0aGlzLl9faW5kZXhfXyA+PSB0aGlzLl9fdmFsdWVzX18ubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlID0gZG9uZSA/IHVuZGVmaW5lZCA6IHRoaXMuX192YWx1ZXNfX1t0aGlzLl9faW5kZXhfXysrXTtcblxuICAgICAgcmV0dXJuIHsgJ2RvbmUnOiBkb25lLCAndmFsdWUnOiB2YWx1ZSB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgdGhlIHdyYXBwZXIgdG8gYmUgaXRlcmFibGUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBTeW1ib2wuaXRlcmF0b3JcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSB3cmFwcGVyIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHdyYXBwZWQgPSBfKFsxLCAyXSk7XG4gICAgICpcbiAgICAgKiB3cmFwcGVkW1N5bWJvbC5pdGVyYXRvcl0oKSA9PT0gd3JhcHBlZDtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBBcnJheS5mcm9tKHdyYXBwZWQpO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJUb0l0ZXJhdG9yKCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIHRoZSBjaGFpbiBzZXF1ZW5jZSBwbGFudGluZyBgdmFsdWVgIGFzIHRoZSB3cmFwcGVkIHZhbHVlLlxuICAgICAqXG4gICAgICogQG5hbWUgcGxhbnRcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjIuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwbGFudC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgd3JhcHBlZCA9IF8oWzEsIDJdKS5tYXAoc3F1YXJlKTtcbiAgICAgKiB2YXIgb3RoZXIgPSB3cmFwcGVkLnBsYW50KFszLCA0XSk7XG4gICAgICpcbiAgICAgKiBvdGhlci52YWx1ZSgpO1xuICAgICAqIC8vID0+IFs5LCAxNl1cbiAgICAgKlxuICAgICAqIHdyYXBwZWQudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbMSwgNF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyUGxhbnQodmFsdWUpIHtcbiAgICAgIHZhciByZXN1bHQsXG4gICAgICAgICAgcGFyZW50ID0gdGhpcztcblxuICAgICAgd2hpbGUgKHBhcmVudCBpbnN0YW5jZW9mIGJhc2VMb2Rhc2gpIHtcbiAgICAgICAgdmFyIGNsb25lID0gd3JhcHBlckNsb25lKHBhcmVudCk7XG4gICAgICAgIGNsb25lLl9faW5kZXhfXyA9IDA7XG4gICAgICAgIGNsb25lLl9fdmFsdWVzX18gPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICBwcmV2aW91cy5fX3dyYXBwZWRfXyA9IGNsb25lO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IGNsb25lO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwcmV2aW91cyA9IGNsb25lO1xuICAgICAgICBwYXJlbnQgPSBwYXJlbnQuX193cmFwcGVkX187XG4gICAgICB9XG4gICAgICBwcmV2aW91cy5fX3dyYXBwZWRfXyA9IHZhbHVlO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUgd3JhcHBlciB2ZXJzaW9uIG9mIGBfLnJldmVyc2VgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgdGhlIHdyYXBwZWQgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAbmFtZSByZXZlcnNlXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsxLCAyLCAzXTtcbiAgICAgKlxuICAgICAqIF8oYXJyYXkpLnJldmVyc2UoKS52YWx1ZSgpXG4gICAgICogLy8gPT4gWzMsIDIsIDFdXG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gWzMsIDIsIDFdXG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcHBlclJldmVyc2UoKSB7XG4gICAgICB2YXIgdmFsdWUgPSB0aGlzLl9fd3JhcHBlZF9fO1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIpIHtcbiAgICAgICAgdmFyIHdyYXBwZWQgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX19hY3Rpb25zX18ubGVuZ3RoKSB7XG4gICAgICAgICAgd3JhcHBlZCA9IG5ldyBMYXp5V3JhcHBlcih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICB3cmFwcGVkID0gd3JhcHBlZC5yZXZlcnNlKCk7XG4gICAgICAgIHdyYXBwZWQuX19hY3Rpb25zX18ucHVzaCh7XG4gICAgICAgICAgJ2Z1bmMnOiB0aHJ1LFxuICAgICAgICAgICdhcmdzJzogW3JldmVyc2VdLFxuICAgICAgICAgICd0aGlzQXJnJzogdW5kZWZpbmVkXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIod3JhcHBlZCwgdGhpcy5fX2NoYWluX18pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMudGhydShyZXZlcnNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyB0aGUgY2hhaW4gc2VxdWVuY2UgdG8gcmVzb2x2ZSB0aGUgdW53cmFwcGVkIHZhbHVlLlxuICAgICAqXG4gICAgICogQG5hbWUgdmFsdWVcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBhbGlhcyB0b0pTT04sIHZhbHVlT2ZcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHVud3JhcHBlZCB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXyhbMSwgMiwgM10pLnZhbHVlKCk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcHBlclZhbHVlKCkge1xuICAgICAgcmV0dXJuIGJhc2VXcmFwcGVyVmFsdWUodGhpcy5fX3dyYXBwZWRfXywgdGhpcy5fX2FjdGlvbnNfXyk7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2Yga2V5cyBnZW5lcmF0ZWQgZnJvbSB0aGUgcmVzdWx0cyBvZiBydW5uaW5nXG4gICAgICogZWFjaCBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYCB0aHJ1IGBpdGVyYXRlZWAuIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIG9mXG4gICAgICogZWFjaCBrZXkgaXMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUga2V5IHdhcyByZXR1cm5lZCBieSBgaXRlcmF0ZWVgLiBUaGVcbiAgICAgKiBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuNS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSB0byB0cmFuc2Zvcm0ga2V5cy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb21wb3NlZCBhZ2dyZWdhdGUgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNvdW50QnkoWzYuMSwgNC4yLCA2LjNdLCBNYXRoLmZsb29yKTtcbiAgICAgKiAvLyA9PiB7ICc0JzogMSwgJzYnOiAyIH1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uY291bnRCeShbJ29uZScsICd0d28nLCAndGhyZWUnXSwgJ2xlbmd0aCcpO1xuICAgICAqIC8vID0+IHsgJzMnOiAyLCAnNSc6IDEgfVxuICAgICAqL1xuICAgIHZhciBjb3VudEJ5ID0gY3JlYXRlQWdncmVnYXRvcihmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlc3VsdCwga2V5KSkge1xuICAgICAgICArK3Jlc3VsdFtrZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmFzZUFzc2lnblZhbHVlKHJlc3VsdCwga2V5LCAxKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgKiphbGwqKiBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAuXG4gICAgICogSXRlcmF0aW9uIGlzIHN0b3BwZWQgb25jZSBgcHJlZGljYXRlYCByZXR1cm5zIGZhbHNleS4gVGhlIHByZWRpY2F0ZSBpc1xuICAgICAqIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCByZXR1cm5zIGB0cnVlYCBmb3JcbiAgICAgKiBbZW1wdHkgY29sbGVjdGlvbnNdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0VtcHR5X3NldCkgYmVjYXVzZVxuICAgICAqIFtldmVyeXRoaW5nIGlzIHRydWVdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZhY3VvdXNfdHJ1dGgpIG9mXG4gICAgICogZWxlbWVudHMgb2YgZW1wdHkgY29sbGVjdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYWxsIGVsZW1lbnRzIHBhc3MgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmV2ZXJ5KFt0cnVlLCAxLCBudWxsLCAneWVzJ10sIEJvb2xlYW4pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmV2ZXJ5KHVzZXJzLCB7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiBmYWxzZSB9KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZXZlcnkodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmV2ZXJ5KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBldmVyeShjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGd1YXJkKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUV2ZXJ5IDogYmFzZUV2ZXJ5O1xuICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZ3VhcmQpKSB7XG4gICAgICAgIHByZWRpY2F0ZSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gLCByZXR1cm5pbmcgYW4gYXJyYXkgb2YgYWxsIGVsZW1lbnRzXG4gICAgICogYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yLiBUaGUgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aCB0aHJlZVxuICAgICAqIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5yZW1vdmVgLCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxuICAgICAqIEBzZWUgXy5yZWplY3RcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5maWx0ZXIodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuICFvLmFjdGl2ZTsgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydmcmVkJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maWx0ZXIodXNlcnMsIHsgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leSddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maWx0ZXIodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maWx0ZXIodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leSddXG4gICAgICpcbiAgICAgKiAvLyBDb21iaW5pbmcgc2V2ZXJhbCBwcmVkaWNhdGVzIHVzaW5nIGBfLm92ZXJFdmVyeWAgb3IgYF8ub3ZlclNvbWVgLlxuICAgICAqIF8uZmlsdGVyKHVzZXJzLCBfLm92ZXJTb21lKFt7ICdhZ2UnOiAzNiB9LCBbJ2FnZScsIDQwXV0pKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnLCAnYmFybmV5J11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaWx0ZXIoY29sbGVjdGlvbiwgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUZpbHRlciA6IGJhc2VGaWx0ZXI7XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYCwgcmV0dXJuaW5nIHRoZSBmaXJzdCBlbGVtZW50XG4gICAgICogYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yLiBUaGUgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aCB0aHJlZVxuICAgICAqIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1hdGNoZWQgZWxlbWVudCwgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhZ2UnOiAxLCAgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmZpbmQodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8uYWdlIDwgNDA7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdCBmb3IgJ2Jhcm5leSdcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kKHVzZXJzLCB7ICdhZ2UnOiAxLCAnYWN0aXZlJzogdHJ1ZSB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3QgZm9yICdwZWJibGVzJ1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZCh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdCBmb3IgJ2ZyZWQnXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmQodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBvYmplY3QgZm9yICdiYXJuZXknXG4gICAgICovXG4gICAgdmFyIGZpbmQgPSBjcmVhdGVGaW5kKGZpbmRJbmRleCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZpbmRgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2ZcbiAgICAgKiBgY29sbGVjdGlvbmAgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD1jb2xsZWN0aW9uLmxlbmd0aC0xXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1hdGNoZWQgZWxlbWVudCwgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5maW5kTGFzdChbMSwgMiwgMywgNF0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICUgMiA9PSAxO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IDNcbiAgICAgKi9cbiAgICB2YXIgZmluZExhc3QgPSBjcmVhdGVGaW5kKGZpbmRMYXN0SW5kZXgpO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZsYXR0ZW5lZCBhcnJheSBvZiB2YWx1ZXMgYnkgcnVubmluZyBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gXG4gICAgICogdGhydSBgaXRlcmF0ZWVgIGFuZCBmbGF0dGVuaW5nIHRoZSBtYXBwZWQgcmVzdWx0cy4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBkdXBsaWNhdGUobikge1xuICAgICAqICAgcmV0dXJuIFtuLCBuXTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLmZsYXRNYXAoWzEsIDJdLCBkdXBsaWNhdGUpO1xuICAgICAqIC8vID0+IFsxLCAxLCAyLCAyXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZsYXRNYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBiYXNlRmxhdHRlbihtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpLCAxKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZsYXRNYXBgIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IGZsYXR0ZW5zIHRoZVxuICAgICAqIG1hcHBlZCByZXN1bHRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNy4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBkdXBsaWNhdGUobikge1xuICAgICAqICAgcmV0dXJuIFtbW24sIG5dXV07XG4gICAgICogfVxuICAgICAqXG4gICAgICogXy5mbGF0TWFwRGVlcChbMSwgMl0sIGR1cGxpY2F0ZSk7XG4gICAgICogLy8gPT4gWzEsIDEsIDIsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmxhdE1hcERlZXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBiYXNlRmxhdHRlbihtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpLCBJTkZJTklUWSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5mbGF0TWFwYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBmbGF0dGVucyB0aGVcbiAgICAgKiBtYXBwZWQgcmVzdWx0cyB1cCB0byBgZGVwdGhgIHRpbWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNy4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtkZXB0aD0xXSBUaGUgbWF4aW11bSByZWN1cnNpb24gZGVwdGguXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBkdXBsaWNhdGUobikge1xuICAgICAqICAgcmV0dXJuIFtbW24sIG5dXV07XG4gICAgICogfVxuICAgICAqXG4gICAgICogXy5mbGF0TWFwRGVwdGgoWzEsIDJdLCBkdXBsaWNhdGUsIDIpO1xuICAgICAqIC8vID0+IFtbMSwgMV0sIFsyLCAyXV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmbGF0TWFwRGVwdGgoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGRlcHRoKSB7XG4gICAgICBkZXB0aCA9IGRlcHRoID09PSB1bmRlZmluZWQgPyAxIDogdG9JbnRlZ2VyKGRlcHRoKTtcbiAgICAgIHJldHVybiBiYXNlRmxhdHRlbihtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpLCBkZXB0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAgYW5kIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgZWFjaCBlbGVtZW50LlxuICAgICAqIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICogSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIEFzIHdpdGggb3RoZXIgXCJDb2xsZWN0aW9uc1wiIG1ldGhvZHMsIG9iamVjdHMgd2l0aCBhIFwibGVuZ3RoXCJcbiAgICAgKiBwcm9wZXJ0eSBhcmUgaXRlcmF0ZWQgbGlrZSBhcnJheXMuIFRvIGF2b2lkIHRoaXMgYmVoYXZpb3IgdXNlIGBfLmZvckluYFxuICAgICAqIG9yIGBfLmZvck93bmAgZm9yIG9iamVjdCBpdGVyYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAYWxpYXMgZWFjaFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxuICAgICAqIEBzZWUgXy5mb3JFYWNoUmlnaHRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5mb3JFYWNoKFsxLCAyXSwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKHZhbHVlKTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBMb2dzIGAxYCB0aGVuIGAyYC5cbiAgICAgKlxuICAgICAqIF8uZm9yRWFjaCh7ICdhJzogMSwgJ2InOiAyIH0sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKGtleSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gTG9ncyAnYScgdGhlbiAnYicgKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZCkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZm9yRWFjaChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlFYWNoIDogYmFzZUVhY2g7XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZm9yRWFjaGAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAYWxpYXMgZWFjaFJpZ2h0XG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gICAgICogQHNlZSBfLmZvckVhY2hcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5mb3JFYWNoUmlnaHQoWzEsIDJdLCBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAqICAgY29uc29sZS5sb2codmFsdWUpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IExvZ3MgYDJgIHRoZW4gYDFgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZvckVhY2hSaWdodChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlFYWNoUmlnaHQgOiBiYXNlRWFjaFJpZ2h0O1xuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiBrZXlzIGdlbmVyYXRlZCBmcm9tIHRoZSByZXN1bHRzIG9mIHJ1bm5pbmdcbiAgICAgKiBlYWNoIGVsZW1lbnQgb2YgYGNvbGxlY3Rpb25gIHRocnUgYGl0ZXJhdGVlYC4gVGhlIG9yZGVyIG9mIGdyb3VwZWQgdmFsdWVzXG4gICAgICogaXMgZGV0ZXJtaW5lZCBieSB0aGUgb3JkZXIgdGhleSBvY2N1ciBpbiBgY29sbGVjdGlvbmAuIFRoZSBjb3JyZXNwb25kaW5nXG4gICAgICogdmFsdWUgb2YgZWFjaCBrZXkgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgdGhlXG4gICAgICoga2V5LiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIGtleXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY29tcG9zZWQgYWdncmVnYXRlIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5ncm91cEJ5KFs2LjEsIDQuMiwgNi4zXSwgTWF0aC5mbG9vcik7XG4gICAgICogLy8gPT4geyAnNCc6IFs0LjJdLCAnNic6IFs2LjEsIDYuM10gfVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5ncm91cEJ5KFsnb25lJywgJ3R3bycsICd0aHJlZSddLCAnbGVuZ3RoJyk7XG4gICAgICogLy8gPT4geyAnMyc6IFsnb25lJywgJ3R3byddLCAnNSc6IFsndGhyZWUnXSB9XG4gICAgICovXG4gICAgdmFyIGdyb3VwQnkgPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocmVzdWx0LCBrZXkpKSB7XG4gICAgICAgIHJlc3VsdFtrZXldLnB1c2godmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmFzZUFzc2lnblZhbHVlKHJlc3VsdCwga2V5LCBbdmFsdWVdKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGluIGBjb2xsZWN0aW9uYC4gSWYgYGNvbGxlY3Rpb25gIGlzIGEgc3RyaW5nLCBpdCdzXG4gICAgICogY2hlY2tlZCBmb3IgYSBzdWJzdHJpbmcgb2YgYHZhbHVlYCwgb3RoZXJ3aXNlXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBpcyB1c2VkIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy4gSWYgYGZyb21JbmRleGAgaXMgbmVnYXRpdmUsIGl0J3MgdXNlZCBhc1xuICAgICAqIHRoZSBvZmZzZXQgZnJvbSB0aGUgZW5kIG9mIGBjb2xsZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ucmVkdWNlYC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmluY2x1ZGVzKFsxLCAyLCAzXSwgMSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pbmNsdWRlcyhbMSwgMiwgM10sIDEsIDIpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmluY2x1ZGVzKHsgJ2EnOiAxLCAnYic6IDIgfSwgMSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pbmNsdWRlcygnYWJjZCcsICdiYycpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbmNsdWRlcyhjb2xsZWN0aW9uLCB2YWx1ZSwgZnJvbUluZGV4LCBndWFyZCkge1xuICAgICAgY29sbGVjdGlvbiA9IGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pID8gY29sbGVjdGlvbiA6IHZhbHVlcyhjb2xsZWN0aW9uKTtcbiAgICAgIGZyb21JbmRleCA9IChmcm9tSW5kZXggJiYgIWd1YXJkKSA/IHRvSW50ZWdlcihmcm9tSW5kZXgpIDogMDtcblxuICAgICAgdmFyIGxlbmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoO1xuICAgICAgaWYgKGZyb21JbmRleCA8IDApIHtcbiAgICAgICAgZnJvbUluZGV4ID0gbmF0aXZlTWF4KGxlbmd0aCArIGZyb21JbmRleCwgMCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNTdHJpbmcoY29sbGVjdGlvbilcbiAgICAgICAgPyAoZnJvbUluZGV4IDw9IGxlbmd0aCAmJiBjb2xsZWN0aW9uLmluZGV4T2YodmFsdWUsIGZyb21JbmRleCkgPiAtMSlcbiAgICAgICAgOiAoISFsZW5ndGggJiYgYmFzZUluZGV4T2YoY29sbGVjdGlvbiwgdmFsdWUsIGZyb21JbmRleCkgPiAtMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyB0aGUgbWV0aG9kIGF0IGBwYXRoYCBvZiBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gLCByZXR1cm5pbmdcbiAgICAgKiBhbiBhcnJheSBvZiB0aGUgcmVzdWx0cyBvZiBlYWNoIGludm9rZWQgbWV0aG9kLiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICAgKiBhcmUgcHJvdmlkZWQgdG8gZWFjaCBpbnZva2VkIG1ldGhvZC4gSWYgYHBhdGhgIGlzIGEgZnVuY3Rpb24sIGl0J3MgaW52b2tlZFxuICAgICAqIGZvciwgYW5kIGB0aGlzYCBib3VuZCB0bywgZWFjaCBlbGVtZW50IGluIGBjb2xsZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7QXJyYXl8RnVuY3Rpb258c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBtZXRob2QgdG8gaW52b2tlIG9yXG4gICAgICogIHRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgZWFjaCBtZXRob2Qgd2l0aC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaW52b2tlTWFwKFtbNSwgMSwgN10sIFszLCAyLCAxXV0sICdzb3J0Jyk7XG4gICAgICogLy8gPT4gW1sxLCA1LCA3XSwgWzEsIDIsIDNdXVxuICAgICAqXG4gICAgICogXy5pbnZva2VNYXAoWzEyMywgNDU2XSwgU3RyaW5nLnByb3RvdHlwZS5zcGxpdCwgJycpO1xuICAgICAqIC8vID0+IFtbJzEnLCAnMicsICczJ10sIFsnNCcsICc1JywgJzYnXV1cbiAgICAgKi9cbiAgICB2YXIgaW52b2tlTWFwID0gYmFzZVJlc3QoZnVuY3Rpb24oY29sbGVjdGlvbiwgcGF0aCwgYXJncykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgaXNGdW5jID0gdHlwZW9mIHBhdGggPT0gJ2Z1bmN0aW9uJyxcbiAgICAgICAgICByZXN1bHQgPSBpc0FycmF5TGlrZShjb2xsZWN0aW9uKSA/IEFycmF5KGNvbGxlY3Rpb24ubGVuZ3RoKSA6IFtdO1xuXG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICByZXN1bHRbKytpbmRleF0gPSBpc0Z1bmMgPyBhcHBseShwYXRoLCB2YWx1ZSwgYXJncykgOiBiYXNlSW52b2tlKHZhbHVlLCBwYXRoLCBhcmdzKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIGtleXMgZ2VuZXJhdGVkIGZyb20gdGhlIHJlc3VsdHMgb2YgcnVubmluZ1xuICAgICAqIGVhY2ggZWxlbWVudCBvZiBgY29sbGVjdGlvbmAgdGhydSBgaXRlcmF0ZWVgLiBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBvZlxuICAgICAqIGVhY2gga2V5IGlzIHRoZSBsYXN0IGVsZW1lbnQgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgdGhlIGtleS4gVGhlXG4gICAgICogaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIGtleXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY29tcG9zZWQgYWdncmVnYXRlIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gW1xuICAgICAqICAgeyAnZGlyJzogJ2xlZnQnLCAnY29kZSc6IDk3IH0sXG4gICAgICogICB7ICdkaXInOiAncmlnaHQnLCAnY29kZSc6IDEwMCB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ua2V5QnkoYXJyYXksIGZ1bmN0aW9uKG8pIHtcbiAgICAgKiAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKG8uY29kZSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4geyAnYSc6IHsgJ2Rpcic6ICdsZWZ0JywgJ2NvZGUnOiA5NyB9LCAnZCc6IHsgJ2Rpcic6ICdyaWdodCcsICdjb2RlJzogMTAwIH0gfVxuICAgICAqXG4gICAgICogXy5rZXlCeShhcnJheSwgJ2RpcicpO1xuICAgICAqIC8vID0+IHsgJ2xlZnQnOiB7ICdkaXInOiAnbGVmdCcsICdjb2RlJzogOTcgfSwgJ3JpZ2h0JzogeyAnZGlyJzogJ3JpZ2h0JywgJ2NvZGUnOiAxMDAgfSB9XG4gICAgICovXG4gICAgdmFyIGtleUJ5ID0gY3JlYXRlQWdncmVnYXRvcihmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgIGJhc2VBc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgdmFsdWUpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB2YWx1ZXMgYnkgcnVubmluZyBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gIHRocnVcbiAgICAgKiBgaXRlcmF0ZWVgLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czpcbiAgICAgKiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBNYW55IGxvZGFzaCBtZXRob2RzIGFyZSBndWFyZGVkIHRvIHdvcmsgYXMgaXRlcmF0ZWVzIGZvciBtZXRob2RzIGxpa2VcbiAgICAgKiBgXy5ldmVyeWAsIGBfLmZpbHRlcmAsIGBfLm1hcGAsIGBfLm1hcFZhbHVlc2AsIGBfLnJlamVjdGAsIGFuZCBgXy5zb21lYC5cbiAgICAgKlxuICAgICAqIFRoZSBndWFyZGVkIG1ldGhvZHMgYXJlOlxuICAgICAqIGBhcnlgLCBgY2h1bmtgLCBgY3VycnlgLCBgY3VycnlSaWdodGAsIGBkcm9wYCwgYGRyb3BSaWdodGAsIGBldmVyeWAsXG4gICAgICogYGZpbGxgLCBgaW52ZXJ0YCwgYHBhcnNlSW50YCwgYHJhbmRvbWAsIGByYW5nZWAsIGByYW5nZVJpZ2h0YCwgYHJlcGVhdGAsXG4gICAgICogYHNhbXBsZVNpemVgLCBgc2xpY2VgLCBgc29tZWAsIGBzb3J0QnlgLCBgc3BsaXRgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLFxuICAgICAqIGB0ZW1wbGF0ZWAsIGB0cmltYCwgYHRyaW1FbmRgLCBgdHJpbVN0YXJ0YCwgYW5kIGB3b3Jkc2BcbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLm1hcChbNCwgOF0sIHNxdWFyZSk7XG4gICAgICogLy8gPT4gWzE2LCA2NF1cbiAgICAgKlxuICAgICAqIF8ubWFwKHsgJ2EnOiA0LCAnYic6IDggfSwgc3F1YXJlKTtcbiAgICAgKiAvLyA9PiBbMTYsIDY0XSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5tYXAodXNlcnMsICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydiYXJuZXknLCAnZnJlZCddXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheU1hcCA6IGJhc2VNYXA7XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc29ydEJ5YCBleGNlcHQgdGhhdCBpdCBhbGxvd3Mgc3BlY2lmeWluZyB0aGUgc29ydFxuICAgICAqIG9yZGVycyBvZiB0aGUgaXRlcmF0ZWVzIHRvIHNvcnQgYnkuIElmIGBvcmRlcnNgIGlzIHVuc3BlY2lmaWVkLCBhbGwgdmFsdWVzXG4gICAgICogYXJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuIE90aGVyd2lzZSwgc3BlY2lmeSBhbiBvcmRlciBvZiBcImRlc2NcIiBmb3JcbiAgICAgKiBkZXNjZW5kaW5nIG9yIFwiYXNjXCIgZm9yIGFzY2VuZGluZyBzb3J0IG9yZGVyIG9mIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBcnJheVtdfEZ1bmN0aW9uW118T2JqZWN0W118c3RyaW5nW119IFtpdGVyYXRlZXM9W18uaWRlbnRpdHldXVxuICAgICAqICBUaGUgaXRlcmF0ZWVzIHRvIHNvcnQgYnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gW29yZGVyc10gVGhlIHNvcnQgb3JkZXJzIG9mIGBpdGVyYXRlZXNgLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLnJlZHVjZWAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgc29ydGVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0OCB9LFxuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzQgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIC8vIFNvcnQgYnkgYHVzZXJgIGluIGFzY2VuZGluZyBvcmRlciBhbmQgYnkgYGFnZWAgaW4gZGVzY2VuZGluZyBvcmRlci5cbiAgICAgKiBfLm9yZGVyQnkodXNlcnMsIFsndXNlcicsICdhZ2UnXSwgWydhc2MnLCAnZGVzYyddKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbWydiYXJuZXknLCAzNl0sIFsnYmFybmV5JywgMzRdLCBbJ2ZyZWQnLCA0OF0sIFsnZnJlZCcsIDQwXV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBvcmRlckJ5KGNvbGxlY3Rpb24sIGl0ZXJhdGVlcywgb3JkZXJzLCBndWFyZCkge1xuICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAoIWlzQXJyYXkoaXRlcmF0ZWVzKSkge1xuICAgICAgICBpdGVyYXRlZXMgPSBpdGVyYXRlZXMgPT0gbnVsbCA/IFtdIDogW2l0ZXJhdGVlc107XG4gICAgICB9XG4gICAgICBvcmRlcnMgPSBndWFyZCA/IHVuZGVmaW5lZCA6IG9yZGVycztcbiAgICAgIGlmICghaXNBcnJheShvcmRlcnMpKSB7XG4gICAgICAgIG9yZGVycyA9IG9yZGVycyA9PSBudWxsID8gW10gOiBbb3JkZXJzXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlT3JkZXJCeShjb2xsZWN0aW9uLCBpdGVyYXRlZXMsIG9yZGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBlbGVtZW50cyBzcGxpdCBpbnRvIHR3byBncm91cHMsIHRoZSBmaXJzdCBvZiB3aGljaFxuICAgICAqIGNvbnRhaW5zIGVsZW1lbnRzIGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvciwgdGhlIHNlY29uZCBvZiB3aGljaFxuICAgICAqIGNvbnRhaW5zIGVsZW1lbnRzIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5IGZvci4gVGhlIHByZWRpY2F0ZSBpc1xuICAgICAqIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWdlJzogMzYsICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FnZSc6IDEsICAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnBhcnRpdGlvbih1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gby5hY3RpdmU7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2ZyZWQnXSwgWydiYXJuZXknLCAncGViYmxlcyddXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnBhcnRpdGlvbih1c2VycywgeyAnYWdlJzogMSwgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ3BlYmJsZXMnXSwgWydiYXJuZXknLCAnZnJlZCddXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ucGFydGl0aW9uKHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgW1snYmFybmV5JywgJ3BlYmJsZXMnXSwgWydmcmVkJ11dXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnBhcnRpdGlvbih1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2ZyZWQnXSwgWydiYXJuZXknLCAncGViYmxlcyddXVxuICAgICAqL1xuICAgIHZhciBwYXJ0aXRpb24gPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgcmVzdWx0W2tleSA/IDAgOiAxXS5wdXNoKHZhbHVlKTtcbiAgICB9LCBmdW5jdGlvbigpIHsgcmV0dXJuIFtbXSwgW11dOyB9KTtcblxuICAgIC8qKlxuICAgICAqIFJlZHVjZXMgYGNvbGxlY3Rpb25gIHRvIGEgdmFsdWUgd2hpY2ggaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCBvZiBydW5uaW5nXG4gICAgICogZWFjaCBlbGVtZW50IGluIGBjb2xsZWN0aW9uYCB0aHJ1IGBpdGVyYXRlZWAsIHdoZXJlIGVhY2ggc3VjY2Vzc2l2ZVxuICAgICAqIGludm9jYXRpb24gaXMgc3VwcGxpZWQgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgcHJldmlvdXMuIElmIGBhY2N1bXVsYXRvcmBcbiAgICAgKiBpcyBub3QgZ2l2ZW4sIHRoZSBmaXJzdCBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsXG4gICAgICogdmFsdWUuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggZm91ciBhcmd1bWVudHM6XG4gICAgICogKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIE1hbnkgbG9kYXNoIG1ldGhvZHMgYXJlIGd1YXJkZWQgdG8gd29yayBhcyBpdGVyYXRlZXMgZm9yIG1ldGhvZHMgbGlrZVxuICAgICAqIGBfLnJlZHVjZWAsIGBfLnJlZHVjZVJpZ2h0YCwgYW5kIGBfLnRyYW5zZm9ybWAuXG4gICAgICpcbiAgICAgKiBUaGUgZ3VhcmRlZCBtZXRob2RzIGFyZTpcbiAgICAgKiBgYXNzaWduYCwgYGRlZmF1bHRzYCwgYGRlZmF1bHRzRGVlcGAsIGBpbmNsdWRlc2AsIGBtZXJnZWAsIGBvcmRlckJ5YCxcbiAgICAgKiBhbmQgYHNvcnRCeWBcbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgYWNjdW11bGF0ZWQgdmFsdWUuXG4gICAgICogQHNlZSBfLnJlZHVjZVJpZ2h0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucmVkdWNlKFsxLCAyXSwgZnVuY3Rpb24oc3VtLCBuKSB7XG4gICAgICogICByZXR1cm4gc3VtICsgbjtcbiAgICAgKiB9LCAwKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiBfLnJlZHVjZSh7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDEgfSwgZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gICAgICogICAocmVzdWx0W3ZhbHVlXSB8fCAocmVzdWx0W3ZhbHVlXSA9IFtdKSkucHVzaChrZXkpO1xuICAgICAqICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgKiB9LCB7fSk7XG4gICAgICogLy8gPT4geyAnMSc6IFsnYScsICdjJ10sICcyJzogWydiJ10gfSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlZHVjZShjb2xsZWN0aW9uLCBpdGVyYXRlZSwgYWNjdW11bGF0b3IpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5UmVkdWNlIDogYmFzZVJlZHVjZSxcbiAgICAgICAgICBpbml0QWNjdW0gPSBhcmd1bWVudHMubGVuZ3RoIDwgMztcblxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDQpLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtLCBiYXNlRWFjaCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5yZWR1Y2VgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2ZcbiAgICAgKiBgY29sbGVjdGlvbmAgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbYWNjdW11bGF0b3JdIFRoZSBpbml0aWFsIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICAgKiBAc2VlIF8ucmVkdWNlXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFtbMCwgMV0sIFsyLCAzXSwgWzQsIDVdXTtcbiAgICAgKlxuICAgICAqIF8ucmVkdWNlUmlnaHQoYXJyYXksIGZ1bmN0aW9uKGZsYXR0ZW5lZCwgb3RoZXIpIHtcbiAgICAgKiAgIHJldHVybiBmbGF0dGVuZWQuY29uY2F0KG90aGVyKTtcbiAgICAgKiB9LCBbXSk7XG4gICAgICogLy8gPT4gWzQsIDUsIDIsIDMsIDAsIDFdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVkdWNlUmlnaHQoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheVJlZHVjZVJpZ2h0IDogYmFzZVJlZHVjZSxcbiAgICAgICAgICBpbml0QWNjdW0gPSBhcmd1bWVudHMubGVuZ3RoIDwgMztcblxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDQpLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtLCBiYXNlRWFjaFJpZ2h0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8uZmlsdGVyYDsgdGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gXG4gICAgICogdGhhdCBgcHJlZGljYXRlYCBkb2VzICoqbm90KiogcmV0dXJuIHRydXRoeSBmb3IuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXG4gICAgICogQHNlZSBfLmZpbHRlclxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnJlamVjdCh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gIW8uYWN0aXZlOyB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnJlamVjdCh1c2VycywgeyAnYWdlJzogNDAsICdhY3RpdmUnOiB0cnVlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnJlamVjdCh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnJlamVjdCh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZWplY3QoY29sbGVjdGlvbiwgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUZpbHRlciA6IGJhc2VGaWx0ZXI7XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBuZWdhdGUoZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSByYW5kb20gZWxlbWVudCBmcm9tIGBjb2xsZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjAuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2FtcGxlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByYW5kb20gZWxlbWVudC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zYW1wbGUoWzEsIDIsIDMsIDRdKTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2FtcGxlKGNvbGxlY3Rpb24pIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5U2FtcGxlIDogYmFzZVNhbXBsZTtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYG5gIHJhbmRvbSBlbGVtZW50cyBhdCB1bmlxdWUga2V5cyBmcm9tIGBjb2xsZWN0aW9uYCB1cCB0byB0aGVcbiAgICAgKiBzaXplIG9mIGBjb2xsZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2FtcGxlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNhbXBsZS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcmFuZG9tIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNhbXBsZVNpemUoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbMywgMV1cbiAgICAgKlxuICAgICAqIF8uc2FtcGxlU2l6ZShbMSwgMiwgM10sIDQpO1xuICAgICAqIC8vID0+IFsyLCAzLCAxXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNhbXBsZVNpemUoY29sbGVjdGlvbiwgbiwgZ3VhcmQpIHtcbiAgICAgIGlmICgoZ3VhcmQgPyBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBuLCBndWFyZCkgOiBuID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIG4gPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgIH1cbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5U2FtcGxlU2l6ZSA6IGJhc2VTYW1wbGVTaXplO1xuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBzaHVmZmxlZCB2YWx1ZXMsIHVzaW5nIGEgdmVyc2lvbiBvZiB0aGVcbiAgICAgKiBbRmlzaGVyLVlhdGVzIHNodWZmbGVdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0Zpc2hlci1ZYXRlc19zaHVmZmxlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2h1ZmZsZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzaHVmZmxlZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zaHVmZmxlKFsxLCAyLCAzLCA0XSk7XG4gICAgICogLy8gPT4gWzQsIDEsIDMsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2h1ZmZsZShjb2xsZWN0aW9uKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheVNodWZmbGUgOiBiYXNlU2h1ZmZsZTtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHNpemUgb2YgYGNvbGxlY3Rpb25gIGJ5IHJldHVybmluZyBpdHMgbGVuZ3RoIGZvciBhcnJheS1saWtlXG4gICAgICogdmFsdWVzIG9yIHRoZSBudW1iZXIgb2Ygb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgZm9yIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvbGxlY3Rpb24gc2l6ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zaXplKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogXy5zaXplKHsgJ2EnOiAxLCAnYic6IDIgfSk7XG4gICAgICogLy8gPT4gMlxuICAgICAqXG4gICAgICogXy5zaXplKCdwZWJibGVzJyk7XG4gICAgICogLy8gPT4gN1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNpemUoY29sbGVjdGlvbikge1xuICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICAgIGlmIChpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xuICAgICAgICByZXR1cm4gaXNTdHJpbmcoY29sbGVjdGlvbikgPyBzdHJpbmdTaXplKGNvbGxlY3Rpb24pIDogY29sbGVjdGlvbi5sZW5ndGg7XG4gICAgICB9XG4gICAgICB2YXIgdGFnID0gZ2V0VGFnKGNvbGxlY3Rpb24pO1xuICAgICAgaWYgKHRhZyA9PSBtYXBUYWcgfHwgdGFnID09IHNldFRhZykge1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5zaXplO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VLZXlzKGNvbGxlY3Rpb24pLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yICoqYW55KiogZWxlbWVudCBvZiBgY29sbGVjdGlvbmAuXG4gICAgICogSXRlcmF0aW9uIGlzIHN0b3BwZWQgb25jZSBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeS4gVGhlIHByZWRpY2F0ZSBpc1xuICAgICAqIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbnkgZWxlbWVudCBwYXNzZXMgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNvbWUoW251bGwsIDAsICd5ZXMnLCBmYWxzZV0sIEJvb2xlYW4pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnNvbWUodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5zb21lKHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5zb21lKHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvbWUoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBndWFyZCkge1xuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTb21lIDogYmFzZVNvbWU7XG4gICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBndWFyZCkpIHtcbiAgICAgICAgcHJlZGljYXRlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBlbGVtZW50cywgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciBieSB0aGUgcmVzdWx0cyBvZlxuICAgICAqIHJ1bm5pbmcgZWFjaCBlbGVtZW50IGluIGEgY29sbGVjdGlvbiB0aHJ1IGVhY2ggaXRlcmF0ZWUuIFRoaXMgbWV0aG9kXG4gICAgICogcGVyZm9ybXMgYSBzdGFibGUgc29ydCwgdGhhdCBpcywgaXQgcHJlc2VydmVzIHRoZSBvcmlnaW5hbCBzb3J0IG9yZGVyIG9mXG4gICAgICogZXF1YWwgZWxlbWVudHMuIFRoZSBpdGVyYXRlZXMgYXJlIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW2l0ZXJhdGVlcz1bXy5pZGVudGl0eV1dXG4gICAgICogIFRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzb3J0ZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQ4IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogMzAgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM0IH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5zb3J0QnkodXNlcnMsIFtmdW5jdGlvbihvKSB7IHJldHVybiBvLnVzZXI7IH1dKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbWydiYXJuZXknLCAzNl0sIFsnYmFybmV5JywgMzRdLCBbJ2ZyZWQnLCA0OF0sIFsnZnJlZCcsIDMwXV1cbiAgICAgKlxuICAgICAqIF8uc29ydEJ5KHVzZXJzLCBbJ3VzZXInLCAnYWdlJ10pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2Jhcm5leScsIDM0XSwgWydiYXJuZXknLCAzNl0sIFsnZnJlZCcsIDMwXSwgWydmcmVkJywgNDhdXVxuICAgICAqL1xuICAgIHZhciBzb3J0QnkgPSBiYXNlUmVzdChmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZXMpIHtcbiAgICAgIGlmIChjb2xsZWN0aW9uID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdmFyIGxlbmd0aCA9IGl0ZXJhdGVlcy5sZW5ndGg7XG4gICAgICBpZiAobGVuZ3RoID4gMSAmJiBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBpdGVyYXRlZXNbMF0sIGl0ZXJhdGVlc1sxXSkpIHtcbiAgICAgICAgaXRlcmF0ZWVzID0gW107XG4gICAgICB9IGVsc2UgaWYgKGxlbmd0aCA+IDIgJiYgaXNJdGVyYXRlZUNhbGwoaXRlcmF0ZWVzWzBdLCBpdGVyYXRlZXNbMV0sIGl0ZXJhdGVlc1syXSkpIHtcbiAgICAgICAgaXRlcmF0ZWVzID0gW2l0ZXJhdGVlc1swXV07XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZU9yZGVyQnkoY29sbGVjdGlvbiwgYmFzZUZsYXR0ZW4oaXRlcmF0ZWVzLCAxKSwgW10pO1xuICAgIH0pO1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgdGltZXN0YW1wIG9mIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRoYXQgaGF2ZSBlbGFwc2VkIHNpbmNlXG4gICAgICogdGhlIFVuaXggZXBvY2ggKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi40LjBcbiAgICAgKiBAY2F0ZWdvcnkgRGF0ZVxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVzdGFtcC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xuICAgICAqICAgY29uc29sZS5sb2coXy5ub3coKSAtIHN0YW1wKTtcbiAgICAgKiB9LCBfLm5vdygpKTtcbiAgICAgKiAvLyA9PiBMb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBpbnZvY2F0aW9uLlxuICAgICAqL1xuICAgIHZhciBub3cgPSBjdHhOb3cgfHwgZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gcm9vdC5EYXRlLm5vdygpO1xuICAgIH07XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8uYmVmb3JlYDsgdGhpcyBtZXRob2QgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlc1xuICAgICAqIGBmdW5jYCBvbmNlIGl0J3MgY2FsbGVkIGBuYCBvciBtb3JlIHRpbWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBjYWxscyBiZWZvcmUgYGZ1bmNgIGlzIGludm9rZWQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcmVzdHJpY3RlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHNhdmVzID0gWydwcm9maWxlJywgJ3NldHRpbmdzJ107XG4gICAgICpcbiAgICAgKiB2YXIgZG9uZSA9IF8uYWZ0ZXIoc2F2ZXMubGVuZ3RoLCBmdW5jdGlvbigpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKCdkb25lIHNhdmluZyEnKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIF8uZm9yRWFjaChzYXZlcywgZnVuY3Rpb24odHlwZSkge1xuICAgICAqICAgYXN5bmNTYXZlKHsgJ3R5cGUnOiB0eXBlLCAnY29tcGxldGUnOiBkb25lIH0pO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IExvZ3MgJ2RvbmUgc2F2aW5nIScgYWZ0ZXIgdGhlIHR3byBhc3luYyBzYXZlcyBoYXZlIGNvbXBsZXRlZC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhZnRlcihuLCBmdW5jKSB7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICBuID0gdG9JbnRlZ2VyKG4pO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoLS1uIDwgMSkge1xuICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2AsIHdpdGggdXAgdG8gYG5gIGFyZ3VtZW50cyxcbiAgICAgKiBpZ25vcmluZyBhbnkgYWRkaXRpb25hbCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjYXAgYXJndW1lbnRzIGZvci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249ZnVuYy5sZW5ndGhdIFRoZSBhcml0eSBjYXAuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjYXBwZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnNicsICc4JywgJzEwJ10sIF8uYXJ5KHBhcnNlSW50LCAxKSk7XG4gICAgICogLy8gPT4gWzYsIDgsIDEwXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFyeShmdW5jLCBuLCBndWFyZCkge1xuICAgICAgbiA9IGd1YXJkID8gdW5kZWZpbmVkIDogbjtcbiAgICAgIG4gPSAoZnVuYyAmJiBuID09IG51bGwpID8gZnVuYy5sZW5ndGggOiBuO1xuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9BUllfRkxBRywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCwgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgYW5kIGFyZ3VtZW50c1xuICAgICAqIG9mIHRoZSBjcmVhdGVkIGZ1bmN0aW9uLCB3aGlsZSBpdCdzIGNhbGxlZCBsZXNzIHRoYW4gYG5gIHRpbWVzLiBTdWJzZXF1ZW50XG4gICAgICogY2FsbHMgdG8gdGhlIGNyZWF0ZWQgZnVuY3Rpb24gcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgIGludm9jYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGNhbGxzIGF0IHdoaWNoIGBmdW5jYCBpcyBubyBsb25nZXIgaW52b2tlZC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZXN0cmljdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByZXN0cmljdGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBqUXVlcnkoZWxlbWVudCkub24oJ2NsaWNrJywgXy5iZWZvcmUoNSwgYWRkQ29udGFjdFRvTGlzdCkpO1xuICAgICAqIC8vID0+IEFsbG93cyBhZGRpbmcgdXAgdG8gNCBjb250YWN0cyB0byB0aGUgbGlzdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiZWZvcmUobiwgZnVuYykge1xuICAgICAgdmFyIHJlc3VsdDtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIG4gPSB0b0ludGVnZXIobik7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICgtLW4gPiAwKSB7XG4gICAgICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuIDw9IDEpIHtcbiAgICAgICAgICBmdW5jID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIGB0aGlzQXJnYFxuICAgICAqIGFuZCBgcGFydGlhbHNgIHByZXBlbmRlZCB0byB0aGUgYXJndW1lbnRzIGl0IHJlY2VpdmVzLlxuICAgICAqXG4gICAgICogVGhlIGBfLmJpbmQucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpYyBidWlsZHMsXG4gICAgICogbWF5IGJlIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBuYXRpdmUgYEZ1bmN0aW9uI2JpbmRgLCB0aGlzIG1ldGhvZCBkb2Vzbid0IHNldCB0aGUgXCJsZW5ndGhcIlxuICAgICAqIHByb3BlcnR5IG9mIGJvdW5kIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGJpbmQuXG4gICAgICogQHBhcmFtIHsqfSB0aGlzQXJnIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gYmUgcGFydGlhbGx5IGFwcGxpZWQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGdyZWV0KGdyZWV0aW5nLCBwdW5jdHVhdGlvbikge1xuICAgICAqICAgcmV0dXJuIGdyZWV0aW5nICsgJyAnICsgdGhpcy51c2VyICsgcHVuY3R1YXRpb247XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAgICAgKlxuICAgICAqIHZhciBib3VuZCA9IF8uYmluZChncmVldCwgb2JqZWN0LCAnaGknKTtcbiAgICAgKiBib3VuZCgnIScpO1xuICAgICAqIC8vID0+ICdoaSBmcmVkISdcbiAgICAgKlxuICAgICAqIC8vIEJvdW5kIHdpdGggcGxhY2Vob2xkZXJzLlxuICAgICAqIHZhciBib3VuZCA9IF8uYmluZChncmVldCwgb2JqZWN0LCBfLCAnIScpO1xuICAgICAqIGJvdW5kKCdoaScpO1xuICAgICAqIC8vID0+ICdoaSBmcmVkISdcbiAgICAgKi9cbiAgICB2YXIgYmluZCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIHRoaXNBcmcsIHBhcnRpYWxzKSB7XG4gICAgICB2YXIgYml0bWFzayA9IFdSQVBfQklORF9GTEFHO1xuICAgICAgaWYgKHBhcnRpYWxzLmxlbmd0aCkge1xuICAgICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBnZXRIb2xkZXIoYmluZCkpO1xuICAgICAgICBiaXRtYXNrIHw9IFdSQVBfUEFSVElBTF9GTEFHO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyB0aGUgbWV0aG9kIGF0IGBvYmplY3Rba2V5XWAgd2l0aCBgcGFydGlhbHNgXG4gICAgICogcHJlcGVuZGVkIHRvIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBUaGlzIG1ldGhvZCBkaWZmZXJzIGZyb20gYF8uYmluZGAgYnkgYWxsb3dpbmcgYm91bmQgZnVuY3Rpb25zIHRvIHJlZmVyZW5jZVxuICAgICAqIG1ldGhvZHMgdGhhdCBtYXkgYmUgcmVkZWZpbmVkIG9yIGRvbid0IHlldCBleGlzdC4gU2VlXG4gICAgICogW1BldGVyIE1pY2hhdXgncyBhcnRpY2xlXShodHRwOi8vcGV0ZXIubWljaGF1eC5jYS9hcnRpY2xlcy9sYXp5LWZ1bmN0aW9uLWRlZmluaXRpb24tcGF0dGVybilcbiAgICAgKiBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqXG4gICAgICogVGhlIGBfLmJpbmRLZXkucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpY1xuICAgICAqIGJ1aWxkcywgbWF5IGJlIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMTAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnZva2UgdGhlIG1ldGhvZCBvbi5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIG1ldGhvZC5cbiAgICAgKiBAcGFyYW0gey4uLip9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBib3VuZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHtcbiAgICAgKiAgICd1c2VyJzogJ2ZyZWQnLFxuICAgICAqICAgJ2dyZWV0JzogZnVuY3Rpb24oZ3JlZXRpbmcsIHB1bmN0dWF0aW9uKSB7XG4gICAgICogICAgIHJldHVybiBncmVldGluZyArICcgJyArIHRoaXMudXNlciArIHB1bmN0dWF0aW9uO1xuICAgICAqICAgfVxuICAgICAqIH07XG4gICAgICpcbiAgICAgKiB2YXIgYm91bmQgPSBfLmJpbmRLZXkob2JqZWN0LCAnZ3JlZXQnLCAnaGknKTtcbiAgICAgKiBib3VuZCgnIScpO1xuICAgICAqIC8vID0+ICdoaSBmcmVkISdcbiAgICAgKlxuICAgICAqIG9iamVjdC5ncmVldCA9IGZ1bmN0aW9uKGdyZWV0aW5nLCBwdW5jdHVhdGlvbikge1xuICAgICAqICAgcmV0dXJuIGdyZWV0aW5nICsgJ3lhICcgKyB0aGlzLnVzZXIgKyBwdW5jdHVhdGlvbjtcbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogYm91bmQoJyEnKTtcbiAgICAgKiAvLyA9PiAnaGl5YSBmcmVkISdcbiAgICAgKlxuICAgICAqIC8vIEJvdW5kIHdpdGggcGxhY2Vob2xkZXJzLlxuICAgICAqIHZhciBib3VuZCA9IF8uYmluZEtleShvYmplY3QsICdncmVldCcsIF8sICchJyk7XG4gICAgICogYm91bmQoJ2hpJyk7XG4gICAgICogLy8gPT4gJ2hpeWEgZnJlZCEnXG4gICAgICovXG4gICAgdmFyIGJpbmRLZXkgPSBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIGtleSwgcGFydGlhbHMpIHtcbiAgICAgIHZhciBiaXRtYXNrID0gV1JBUF9CSU5EX0ZMQUcgfCBXUkFQX0JJTkRfS0VZX0ZMQUc7XG4gICAgICBpZiAocGFydGlhbHMubGVuZ3RoKSB7XG4gICAgICAgIHZhciBob2xkZXJzID0gcmVwbGFjZUhvbGRlcnMocGFydGlhbHMsIGdldEhvbGRlcihiaW5kS2V5KSk7XG4gICAgICAgIGJpdG1hc2sgfD0gV1JBUF9QQVJUSUFMX0ZMQUc7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChrZXksIGJpdG1hc2ssIG9iamVjdCwgcGFydGlhbHMsIGhvbGRlcnMpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhcmd1bWVudHMgb2YgYGZ1bmNgIGFuZCBlaXRoZXIgaW52b2tlc1xuICAgICAqIGBmdW5jYCByZXR1cm5pbmcgaXRzIHJlc3VsdCwgaWYgYXQgbGVhc3QgYGFyaXR5YCBudW1iZXIgb2YgYXJndW1lbnRzIGhhdmVcbiAgICAgKiBiZWVuIHByb3ZpZGVkLCBvciByZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHRoZSByZW1haW5pbmcgYGZ1bmNgXG4gICAgICogYXJndW1lbnRzLCBhbmQgc28gb24uIFRoZSBhcml0eSBvZiBgZnVuY2AgbWF5IGJlIHNwZWNpZmllZCBpZiBgZnVuYy5sZW5ndGhgXG4gICAgICogaXMgbm90IHN1ZmZpY2llbnQuXG4gICAgICpcbiAgICAgKiBUaGUgYF8uY3VycnkucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpYyBidWlsZHMsXG4gICAgICogbWF5IGJlIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGRvZXNuJ3Qgc2V0IHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IG9mIGN1cnJpZWQgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY3VycnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcml0eT1mdW5jLmxlbmd0aF0gVGhlIGFyaXR5IG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGN1cnJpZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhYmMgPSBmdW5jdGlvbihhLCBiLCBjKSB7XG4gICAgICogICByZXR1cm4gW2EsIGIsIGNdO1xuICAgICAqIH07XG4gICAgICpcbiAgICAgKiB2YXIgY3VycmllZCA9IF8uY3VycnkoYWJjKTtcbiAgICAgKlxuICAgICAqIGN1cnJpZWQoMSkoMikoMyk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBjdXJyaWVkKDEsIDIpKDMpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogY3VycmllZCgxLCAyLCAzKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIC8vIEN1cnJpZWQgd2l0aCBwbGFjZWhvbGRlcnMuXG4gICAgICogY3VycmllZCgxKShfLCAzKSgyKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjdXJyeShmdW5jLCBhcml0eSwgZ3VhcmQpIHtcbiAgICAgIGFyaXR5ID0gZ3VhcmQgPyB1bmRlZmluZWQgOiBhcml0eTtcbiAgICAgIHZhciByZXN1bHQgPSBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfQ1VSUllfRkxBRywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGFyaXR5KTtcbiAgICAgIHJlc3VsdC5wbGFjZWhvbGRlciA9IGN1cnJ5LnBsYWNlaG9sZGVyO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmN1cnJ5YCBleGNlcHQgdGhhdCBhcmd1bWVudHMgYXJlIGFwcGxpZWQgdG8gYGZ1bmNgXG4gICAgICogaW4gdGhlIG1hbm5lciBvZiBgXy5wYXJ0aWFsUmlnaHRgIGluc3RlYWQgb2YgYF8ucGFydGlhbGAuXG4gICAgICpcbiAgICAgKiBUaGUgYF8uY3VycnlSaWdodC5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljXG4gICAgICogYnVpbGRzLCBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwcm92aWRlZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgZG9lc24ndCBzZXQgdGhlIFwibGVuZ3RoXCIgcHJvcGVydHkgb2YgY3VycmllZCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5PWZ1bmMubGVuZ3RoXSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY3VycmllZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFiYyA9IGZ1bmN0aW9uKGEsIGIsIGMpIHtcbiAgICAgKiAgIHJldHVybiBbYSwgYiwgY107XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBjdXJyaWVkID0gXy5jdXJyeVJpZ2h0KGFiYyk7XG4gICAgICpcbiAgICAgKiBjdXJyaWVkKDMpKDIpKDEpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogY3VycmllZCgyLCAzKSgxKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIGN1cnJpZWQoMSwgMiwgMyk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiAvLyBDdXJyaWVkIHdpdGggcGxhY2Vob2xkZXJzLlxuICAgICAqIGN1cnJpZWQoMykoMSwgXykoMik7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3VycnlSaWdodChmdW5jLCBhcml0eSwgZ3VhcmQpIHtcbiAgICAgIGFyaXR5ID0gZ3VhcmQgPyB1bmRlZmluZWQgOiBhcml0eTtcbiAgICAgIHZhciByZXN1bHQgPSBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfQ1VSUllfUklHSFRfRkxBRywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGFyaXR5KTtcbiAgICAgIHJlc3VsdC5wbGFjZWhvbGRlciA9IGN1cnJ5UmlnaHQucGxhY2Vob2xkZXI7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBkZWJvdW5jZWQgZnVuY3Rpb24gdGhhdCBkZWxheXMgaW52b2tpbmcgYGZ1bmNgIHVudGlsIGFmdGVyIGB3YWl0YFxuICAgICAqIG1pbGxpc2Vjb25kcyBoYXZlIGVsYXBzZWQgc2luY2UgdGhlIGxhc3QgdGltZSB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIHdhc1xuICAgICAqIGludm9rZWQuIFRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gY29tZXMgd2l0aCBhIGBjYW5jZWxgIG1ldGhvZCB0byBjYW5jZWxcbiAgICAgKiBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0byBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS5cbiAgICAgKiBQcm92aWRlIGBvcHRpb25zYCB0byBpbmRpY2F0ZSB3aGV0aGVyIGBmdW5jYCBzaG91bGQgYmUgaW52b2tlZCBvbiB0aGVcbiAgICAgKiBsZWFkaW5nIGFuZC9vciB0cmFpbGluZyBlZGdlIG9mIHRoZSBgd2FpdGAgdGltZW91dC4gVGhlIGBmdW5jYCBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbi4gU3Vic2VxdWVudFxuICAgICAqIGNhbGxzIHRvIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgXG4gICAgICogaW52b2NhdGlvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBJZiBgbGVhZGluZ2AgYW5kIGB0cmFpbGluZ2Agb3B0aW9ucyBhcmUgYHRydWVgLCBgZnVuY2AgaXNcbiAgICAgKiBpbnZva2VkIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0IG9ubHkgaWYgdGhlIGRlYm91bmNlZCBmdW5jdGlvblxuICAgICAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAgICAgKlxuICAgICAqIElmIGB3YWl0YCBpcyBgMGAgYW5kIGBsZWFkaW5nYCBpcyBgZmFsc2VgLCBgZnVuY2AgaW52b2NhdGlvbiBpcyBkZWZlcnJlZFxuICAgICAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAgICAgKlxuICAgICAqIFNlZSBbRGF2aWQgQ29yYmFjaG8ncyBhcnRpY2xlXShodHRwczovL2Nzcy10cmlja3MuY29tL2RlYm91bmNpbmctdGhyb3R0bGluZy1leHBsYWluZWQtZXhhbXBsZXMvKVxuICAgICAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8uZGVib3VuY2VgIGFuZCBgXy50aHJvdHRsZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWJvdW5jZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3dhaXQ9MF0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gZGVsYXkuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBUaGUgb3B0aW9ucyBvYmplY3QuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPWZhbHNlXVxuICAgICAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSBsZWFkaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1heFdhaXRdXG4gICAgICogIFRoZSBtYXhpbXVtIHRpbWUgYGZ1bmNgIGlzIGFsbG93ZWQgdG8gYmUgZGVsYXllZCBiZWZvcmUgaXQncyBpbnZva2VkLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudHJhaWxpbmc9dHJ1ZV1cbiAgICAgKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vIEF2b2lkIGNvc3RseSBjYWxjdWxhdGlvbnMgd2hpbGUgdGhlIHdpbmRvdyBzaXplIGlzIGluIGZsdXguXG4gICAgICogalF1ZXJ5KHdpbmRvdykub24oJ3Jlc2l6ZScsIF8uZGVib3VuY2UoY2FsY3VsYXRlTGF5b3V0LCAxNTApKTtcbiAgICAgKlxuICAgICAqIC8vIEludm9rZSBgc2VuZE1haWxgIHdoZW4gY2xpY2tlZCwgZGVib3VuY2luZyBzdWJzZXF1ZW50IGNhbGxzLlxuICAgICAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCBfLmRlYm91bmNlKHNlbmRNYWlsLCAzMDAsIHtcbiAgICAgKiAgICdsZWFkaW5nJzogdHJ1ZSxcbiAgICAgKiAgICd0cmFpbGluZyc6IGZhbHNlXG4gICAgICogfSkpO1xuICAgICAqXG4gICAgICogLy8gRW5zdXJlIGBiYXRjaExvZ2AgaXMgaW52b2tlZCBvbmNlIGFmdGVyIDEgc2Vjb25kIG9mIGRlYm91bmNlZCBjYWxscy5cbiAgICAgKiB2YXIgZGVib3VuY2VkID0gXy5kZWJvdW5jZShiYXRjaExvZywgMjUwLCB7ICdtYXhXYWl0JzogMTAwMCB9KTtcbiAgICAgKiB2YXIgc291cmNlID0gbmV3IEV2ZW50U291cmNlKCcvc3RyZWFtJyk7XG4gICAgICogalF1ZXJ5KHNvdXJjZSkub24oJ21lc3NhZ2UnLCBkZWJvdW5jZWQpO1xuICAgICAqXG4gICAgICogLy8gQ2FuY2VsIHRoZSB0cmFpbGluZyBkZWJvdW5jZWQgaW52b2NhdGlvbi5cbiAgICAgKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCBkZWJvdW5jZWQuY2FuY2VsKTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkZWJvdW5jZShmdW5jLCB3YWl0LCBvcHRpb25zKSB7XG4gICAgICB2YXIgbGFzdEFyZ3MsXG4gICAgICAgICAgbGFzdFRoaXMsXG4gICAgICAgICAgbWF4V2FpdCxcbiAgICAgICAgICByZXN1bHQsXG4gICAgICAgICAgdGltZXJJZCxcbiAgICAgICAgICBsYXN0Q2FsbFRpbWUsXG4gICAgICAgICAgbGFzdEludm9rZVRpbWUgPSAwLFxuICAgICAgICAgIGxlYWRpbmcgPSBmYWxzZSxcbiAgICAgICAgICBtYXhpbmcgPSBmYWxzZSxcbiAgICAgICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHdhaXQgPSB0b051bWJlcih3YWl0KSB8fCAwO1xuICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgIGxlYWRpbmcgPSAhIW9wdGlvbnMubGVhZGluZztcbiAgICAgICAgbWF4aW5nID0gJ21heFdhaXQnIGluIG9wdGlvbnM7XG4gICAgICAgIG1heFdhaXQgPSBtYXhpbmcgPyBuYXRpdmVNYXgodG9OdW1iZXIob3B0aW9ucy5tYXhXYWl0KSB8fCAwLCB3YWl0KSA6IG1heFdhaXQ7XG4gICAgICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGludm9rZUZ1bmModGltZSkge1xuICAgICAgICB2YXIgYXJncyA9IGxhc3RBcmdzLFxuICAgICAgICAgICAgdGhpc0FyZyA9IGxhc3RUaGlzO1xuXG4gICAgICAgIGxhc3RBcmdzID0gbGFzdFRoaXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gbGVhZGluZ0VkZ2UodGltZSkge1xuICAgICAgICAvLyBSZXNldCBhbnkgYG1heFdhaXRgIHRpbWVyLlxuICAgICAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgICAgIC8vIFN0YXJ0IHRoZSB0aW1lciBmb3IgdGhlIHRyYWlsaW5nIGVkZ2UuXG4gICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgICAgIC8vIEludm9rZSB0aGUgbGVhZGluZyBlZGdlLlxuICAgICAgICByZXR1cm4gbGVhZGluZyA/IGludm9rZUZ1bmModGltZSkgOiByZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQodGltZSkge1xuICAgICAgICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLFxuICAgICAgICAgICAgdGltZVNpbmNlTGFzdEludm9rZSA9IHRpbWUgLSBsYXN0SW52b2tlVGltZSxcbiAgICAgICAgICAgIHRpbWVXYWl0aW5nID0gd2FpdCAtIHRpbWVTaW5jZUxhc3RDYWxsO1xuXG4gICAgICAgIHJldHVybiBtYXhpbmdcbiAgICAgICAgICA/IG5hdGl2ZU1pbih0aW1lV2FpdGluZywgbWF4V2FpdCAtIHRpbWVTaW5jZUxhc3RJbnZva2UpXG4gICAgICAgICAgOiB0aW1lV2FpdGluZztcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gc2hvdWxkSW52b2tlKHRpbWUpIHtcbiAgICAgICAgdmFyIHRpbWVTaW5jZUxhc3RDYWxsID0gdGltZSAtIGxhc3RDYWxsVGltZSxcbiAgICAgICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWU7XG5cbiAgICAgICAgLy8gRWl0aGVyIHRoaXMgaXMgdGhlIGZpcnN0IGNhbGwsIGFjdGl2aXR5IGhhcyBzdG9wcGVkIGFuZCB3ZSdyZSBhdCB0aGVcbiAgICAgICAgLy8gdHJhaWxpbmcgZWRnZSwgdGhlIHN5c3RlbSB0aW1lIGhhcyBnb25lIGJhY2t3YXJkcyBhbmQgd2UncmUgdHJlYXRpbmdcbiAgICAgICAgLy8gaXQgYXMgdGhlIHRyYWlsaW5nIGVkZ2UsIG9yIHdlJ3ZlIGhpdCB0aGUgYG1heFdhaXRgIGxpbWl0LlxuICAgICAgICByZXR1cm4gKGxhc3RDYWxsVGltZSA9PT0gdW5kZWZpbmVkIHx8ICh0aW1lU2luY2VMYXN0Q2FsbCA+PSB3YWl0KSB8fFxuICAgICAgICAgICh0aW1lU2luY2VMYXN0Q2FsbCA8IDApIHx8IChtYXhpbmcgJiYgdGltZVNpbmNlTGFzdEludm9rZSA+PSBtYXhXYWl0KSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIHRpbWVyRXhwaXJlZCgpIHtcbiAgICAgICAgdmFyIHRpbWUgPSBub3coKTtcbiAgICAgICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xuICAgICAgICAgIHJldHVybiB0cmFpbGluZ0VkZ2UodGltZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVzdGFydCB0aGUgdGltZXIuXG4gICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgcmVtYWluaW5nV2FpdCh0aW1lKSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIHRyYWlsaW5nRWRnZSh0aW1lKSB7XG4gICAgICAgIHRpbWVySWQgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgLy8gT25seSBpbnZva2UgaWYgd2UgaGF2ZSBgbGFzdEFyZ3NgIHdoaWNoIG1lYW5zIGBmdW5jYCBoYXMgYmVlblxuICAgICAgICAvLyBkZWJvdW5jZWQgYXQgbGVhc3Qgb25jZS5cbiAgICAgICAgaWYgKHRyYWlsaW5nICYmIGxhc3RBcmdzKSB7XG4gICAgICAgICAgcmV0dXJuIGludm9rZUZ1bmModGltZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gY2FuY2VsKCkge1xuICAgICAgICBpZiAodGltZXJJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RJbnZva2VUaW1lID0gMDtcbiAgICAgICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGZsdXNoKCkge1xuICAgICAgICByZXR1cm4gdGltZXJJZCA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogdHJhaWxpbmdFZGdlKG5vdygpKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gZGVib3VuY2VkKCkge1xuICAgICAgICB2YXIgdGltZSA9IG5vdygpLFxuICAgICAgICAgICAgaXNJbnZva2luZyA9IHNob3VsZEludm9rZSh0aW1lKTtcblxuICAgICAgICBsYXN0QXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgbGFzdFRoaXMgPSB0aGlzO1xuICAgICAgICBsYXN0Q2FsbFRpbWUgPSB0aW1lO1xuXG4gICAgICAgIGlmIChpc0ludm9raW5nKSB7XG4gICAgICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGxlYWRpbmdFZGdlKGxhc3RDYWxsVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBpbnZvY2F0aW9ucyBpbiBhIHRpZ2h0IGxvb3AuXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgICAgICAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgICAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGRlYm91bmNlZC5jYW5jZWwgPSBjYW5jZWw7XG4gICAgICBkZWJvdW5jZWQuZmx1c2ggPSBmbHVzaDtcbiAgICAgIHJldHVybiBkZWJvdW5jZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmZXJzIGludm9raW5nIHRoZSBgZnVuY2AgdW50aWwgdGhlIGN1cnJlbnQgY2FsbCBzdGFjayBoYXMgY2xlYXJlZC4gQW55XG4gICAgICogYWRkaXRpb25hbCBhcmd1bWVudHMgYXJlIHByb3ZpZGVkIHRvIGBmdW5jYCB3aGVuIGl0J3MgaW52b2tlZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlZmVyLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIGBmdW5jYCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVyIGlkLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRlZmVyKGZ1bmN0aW9uKHRleHQpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKHRleHQpO1xuICAgICAqIH0sICdkZWZlcnJlZCcpO1xuICAgICAqIC8vID0+IExvZ3MgJ2RlZmVycmVkJyBhZnRlciBvbmUgbWlsbGlzZWNvbmQuXG4gICAgICovXG4gICAgdmFyIGRlZmVyID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgYXJncykge1xuICAgICAgcmV0dXJuIGJhc2VEZWxheShmdW5jLCAxLCBhcmdzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEludm9rZXMgYGZ1bmNgIGFmdGVyIGB3YWl0YCBtaWxsaXNlY29uZHMuIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmVcbiAgICAgKiBwcm92aWRlZCB0byBgZnVuY2Agd2hlbiBpdCdzIGludm9rZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWxheS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2FpdCBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheSBpbnZvY2F0aW9uLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIGBmdW5jYCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVyIGlkLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRlbGF5KGZ1bmN0aW9uKHRleHQpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKHRleHQpO1xuICAgICAqIH0sIDEwMDAsICdsYXRlcicpO1xuICAgICAqIC8vID0+IExvZ3MgJ2xhdGVyJyBhZnRlciBvbmUgc2Vjb25kLlxuICAgICAqL1xuICAgIHZhciBkZWxheSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIHdhaXQsIGFyZ3MpIHtcbiAgICAgIHJldHVybiBiYXNlRGVsYXkoZnVuYywgdG9OdW1iZXIod2FpdCkgfHwgMCwgYXJncyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIGFyZ3VtZW50cyByZXZlcnNlZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGZsaXAgYXJndW1lbnRzIGZvci5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmbGlwcGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgZmxpcHBlZCA9IF8uZmxpcChmdW5jdGlvbigpIHtcbiAgICAgKiAgIHJldHVybiBfLnRvQXJyYXkoYXJndW1lbnRzKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIGZsaXBwZWQoJ2EnLCAnYicsICdjJywgJ2QnKTtcbiAgICAgKiAvLyA9PiBbJ2QnLCAnYycsICdiJywgJ2EnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZsaXAoZnVuYykge1xuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9GTElQX0ZMQUcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IG1lbW9pemVzIHRoZSByZXN1bHQgb2YgYGZ1bmNgLiBJZiBgcmVzb2x2ZXJgIGlzXG4gICAgICogcHJvdmlkZWQsIGl0IGRldGVybWluZXMgdGhlIGNhY2hlIGtleSBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IGJhc2VkIG9uIHRoZVxuICAgICAqIGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgbWVtb2l6ZWQgZnVuY3Rpb24uIEJ5IGRlZmF1bHQsIHRoZSBmaXJzdCBhcmd1bWVudFxuICAgICAqIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbiBpcyB1c2VkIGFzIHRoZSBtYXAgY2FjaGUga2V5LiBUaGUgYGZ1bmNgXG4gICAgICogaXMgaW52b2tlZCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiB0aGUgbWVtb2l6ZWQgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhlIGNhY2hlIGlzIGV4cG9zZWQgYXMgdGhlIGBjYWNoZWAgcHJvcGVydHkgb24gdGhlIG1lbW9pemVkXG4gICAgICogZnVuY3Rpb24uIEl0cyBjcmVhdGlvbiBtYXkgYmUgY3VzdG9taXplZCBieSByZXBsYWNpbmcgdGhlIGBfLm1lbW9pemUuQ2FjaGVgXG4gICAgICogY29uc3RydWN0b3Igd2l0aCBvbmUgd2hvc2UgaW5zdGFuY2VzIGltcGxlbWVudCB0aGVcbiAgICAgKiBbYE1hcGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXByb3BlcnRpZXMtb2YtdGhlLW1hcC1wcm90b3R5cGUtb2JqZWN0KVxuICAgICAqIG1ldGhvZCBpbnRlcmZhY2Ugb2YgYGNsZWFyYCwgYGRlbGV0ZWAsIGBnZXRgLCBgaGFzYCwgYW5kIGBzZXRgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaGF2ZSBpdHMgb3V0cHV0IG1lbW9pemVkLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtyZXNvbHZlcl0gVGhlIGZ1bmN0aW9uIHRvIHJlc29sdmUgdGhlIGNhY2hlIGtleS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIgfTtcbiAgICAgKiB2YXIgb3RoZXIgPSB7ICdjJzogMywgJ2QnOiA0IH07XG4gICAgICpcbiAgICAgKiB2YXIgdmFsdWVzID0gXy5tZW1vaXplKF8udmFsdWVzKTtcbiAgICAgKiB2YWx1ZXMob2JqZWN0KTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIHZhbHVlcyhvdGhlcik7XG4gICAgICogLy8gPT4gWzMsIDRdXG4gICAgICpcbiAgICAgKiBvYmplY3QuYSA9IDI7XG4gICAgICogdmFsdWVzKG9iamVjdCk7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICpcbiAgICAgKiAvLyBNb2RpZnkgdGhlIHJlc3VsdCBjYWNoZS5cbiAgICAgKiB2YWx1ZXMuY2FjaGUuc2V0KG9iamVjdCwgWydhJywgJ2InXSk7XG4gICAgICogdmFsdWVzKG9iamVjdCk7XG4gICAgICogLy8gPT4gWydhJywgJ2InXVxuICAgICAqXG4gICAgICogLy8gUmVwbGFjZSBgXy5tZW1vaXplLkNhY2hlYC5cbiAgICAgKiBfLm1lbW9pemUuQ2FjaGUgPSBXZWFrTWFwO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1lbW9pemUoZnVuYywgcmVzb2x2ZXIpIHtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nIHx8IChyZXNvbHZlciAhPSBudWxsICYmIHR5cGVvZiByZXNvbHZlciAhPSAnZnVuY3Rpb24nKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICB2YXIgbWVtb2l6ZWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgICBrZXkgPSByZXNvbHZlciA/IHJlc29sdmVyLmFwcGx5KHRoaXMsIGFyZ3MpIDogYXJnc1swXSxcbiAgICAgICAgICAgIGNhY2hlID0gbWVtb2l6ZWQuY2FjaGU7XG5cbiAgICAgICAgaWYgKGNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICAgICAgcmV0dXJuIGNhY2hlLmdldChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHZhciByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICBtZW1vaXplZC5jYWNoZSA9IGNhY2hlLnNldChrZXksIHJlc3VsdCkgfHwgY2FjaGU7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgICAgbWVtb2l6ZWQuY2FjaGUgPSBuZXcgKG1lbW9pemUuQ2FjaGUgfHwgTWFwQ2FjaGUpO1xuICAgICAgcmV0dXJuIG1lbW9pemVkO1xuICAgIH1cblxuICAgIC8vIEV4cG9zZSBgTWFwQ2FjaGVgLlxuICAgIG1lbW9pemUuQ2FjaGUgPSBNYXBDYWNoZTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IG5lZ2F0ZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJlZGljYXRlIGBmdW5jYC4gVGhlXG4gICAgICogYGZ1bmNgIHByZWRpY2F0ZSBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIGFuZCBhcmd1bWVudHMgb2YgdGhlXG4gICAgICogY3JlYXRlZCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgcHJlZGljYXRlIHRvIG5lZ2F0ZS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBuZWdhdGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBpc0V2ZW4obikge1xuICAgICAqICAgcmV0dXJuIG4gJSAyID09IDA7XG4gICAgICogfVxuICAgICAqXG4gICAgICogXy5maWx0ZXIoWzEsIDIsIDMsIDQsIDUsIDZdLCBfLm5lZ2F0ZShpc0V2ZW4pKTtcbiAgICAgKiAvLyA9PiBbMSwgMywgNV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBuZWdhdGUocHJlZGljYXRlKSB7XG4gICAgICBpZiAodHlwZW9mIHByZWRpY2F0ZSAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgIHN3aXRjaCAoYXJncy5sZW5ndGgpIHtcbiAgICAgICAgICBjYXNlIDA6IHJldHVybiAhcHJlZGljYXRlLmNhbGwodGhpcyk7XG4gICAgICAgICAgY2FzZSAxOiByZXR1cm4gIXByZWRpY2F0ZS5jYWxsKHRoaXMsIGFyZ3NbMF0pO1xuICAgICAgICAgIGNhc2UgMjogcmV0dXJuICFwcmVkaWNhdGUuY2FsbCh0aGlzLCBhcmdzWzBdLCBhcmdzWzFdKTtcbiAgICAgICAgICBjYXNlIDM6IHJldHVybiAhcHJlZGljYXRlLmNhbGwodGhpcywgYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICFwcmVkaWNhdGUuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGlzIHJlc3RyaWN0ZWQgdG8gaW52b2tpbmcgYGZ1bmNgIG9uY2UuIFJlcGVhdCBjYWxsc1xuICAgICAqIHRvIHRoZSBmdW5jdGlvbiByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBmaXJzdCBpbnZvY2F0aW9uLiBUaGUgYGZ1bmNgIGlzXG4gICAgICogaW52b2tlZCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBhbmQgYXJndW1lbnRzIG9mIHRoZSBjcmVhdGVkIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcmVzdHJpY3RlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGluaXRpYWxpemUgPSBfLm9uY2UoY3JlYXRlQXBwbGljYXRpb24pO1xuICAgICAqIGluaXRpYWxpemUoKTtcbiAgICAgKiBpbml0aWFsaXplKCk7XG4gICAgICogLy8gPT4gYGNyZWF0ZUFwcGxpY2F0aW9uYCBpcyBpbnZva2VkIG9uY2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBvbmNlKGZ1bmMpIHtcbiAgICAgIHJldHVybiBiZWZvcmUoMiwgZnVuYyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBpdHMgYXJndW1lbnRzIHRyYW5zZm9ybWVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW3RyYW5zZm9ybXM9W18uaWRlbnRpdHldXVxuICAgICAqICBUaGUgYXJndW1lbnQgdHJhbnNmb3Jtcy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gZG91YmxlZChuKSB7XG4gICAgICogICByZXR1cm4gbiAqIDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgZnVuYyA9IF8ub3ZlckFyZ3MoZnVuY3Rpb24oeCwgeSkge1xuICAgICAqICAgcmV0dXJuIFt4LCB5XTtcbiAgICAgKiB9LCBbc3F1YXJlLCBkb3VibGVkXSk7XG4gICAgICpcbiAgICAgKiBmdW5jKDksIDMpO1xuICAgICAqIC8vID0+IFs4MSwgNl1cbiAgICAgKlxuICAgICAqIGZ1bmMoMTAsIDUpO1xuICAgICAqIC8vID0+IFsxMDAsIDEwXVxuICAgICAqL1xuICAgIHZhciBvdmVyQXJncyA9IGNhc3RSZXN0KGZ1bmN0aW9uKGZ1bmMsIHRyYW5zZm9ybXMpIHtcbiAgICAgIHRyYW5zZm9ybXMgPSAodHJhbnNmb3Jtcy5sZW5ndGggPT0gMSAmJiBpc0FycmF5KHRyYW5zZm9ybXNbMF0pKVxuICAgICAgICA/IGFycmF5TWFwKHRyYW5zZm9ybXNbMF0sIGJhc2VVbmFyeShnZXRJdGVyYXRlZSgpKSlcbiAgICAgICAgOiBhcnJheU1hcChiYXNlRmxhdHRlbih0cmFuc2Zvcm1zLCAxKSwgYmFzZVVuYXJ5KGdldEl0ZXJhdGVlKCkpKTtcblxuICAgICAgdmFyIGZ1bmNzTGVuZ3RoID0gdHJhbnNmb3Jtcy5sZW5ndGg7XG4gICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1pbihhcmdzLmxlbmd0aCwgZnVuY3NMZW5ndGgpO1xuXG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgYXJnc1tpbmRleF0gPSB0cmFuc2Zvcm1zW2luZGV4XS5jYWxsKHRoaXMsIGFyZ3NbaW5kZXhdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXBwbHkoZnVuYywgdGhpcywgYXJncyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggYHBhcnRpYWxzYCBwcmVwZW5kZWQgdG8gdGhlXG4gICAgICogYXJndW1lbnRzIGl0IHJlY2VpdmVzLiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmJpbmRgIGV4Y2VwdCBpdCBkb2VzICoqbm90KipcbiAgICAgKiBhbHRlciB0aGUgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBUaGUgYF8ucGFydGlhbC5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljXG4gICAgICogYnVpbGRzLCBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgZG9lc24ndCBzZXQgdGhlIFwibGVuZ3RoXCIgcHJvcGVydHkgb2YgcGFydGlhbGx5XG4gICAgICogYXBwbGllZCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4yLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBwYXJ0aWFsbHkgYXBwbHkgYXJndW1lbnRzIHRvLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIGJlIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHBhcnRpYWxseSBhcHBsaWVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBncmVldChncmVldGluZywgbmFtZSkge1xuICAgICAqICAgcmV0dXJuIGdyZWV0aW5nICsgJyAnICsgbmFtZTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgc2F5SGVsbG9UbyA9IF8ucGFydGlhbChncmVldCwgJ2hlbGxvJyk7XG4gICAgICogc2F5SGVsbG9UbygnZnJlZCcpO1xuICAgICAqIC8vID0+ICdoZWxsbyBmcmVkJ1xuICAgICAqXG4gICAgICogLy8gUGFydGlhbGx5IGFwcGxpZWQgd2l0aCBwbGFjZWhvbGRlcnMuXG4gICAgICogdmFyIGdyZWV0RnJlZCA9IF8ucGFydGlhbChncmVldCwgXywgJ2ZyZWQnKTtcbiAgICAgKiBncmVldEZyZWQoJ2hpJyk7XG4gICAgICogLy8gPT4gJ2hpIGZyZWQnXG4gICAgICovXG4gICAgdmFyIHBhcnRpYWwgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCBwYXJ0aWFscykge1xuICAgICAgdmFyIGhvbGRlcnMgPSByZXBsYWNlSG9sZGVycyhwYXJ0aWFscywgZ2V0SG9sZGVyKHBhcnRpYWwpKTtcbiAgICAgIHJldHVybiBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfUEFSVElBTF9GTEFHLCB1bmRlZmluZWQsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucGFydGlhbGAgZXhjZXB0IHRoYXQgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzXG4gICAgICogYXJlIGFwcGVuZGVkIHRvIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBUaGUgYF8ucGFydGlhbFJpZ2h0LnBsYWNlaG9sZGVyYCB2YWx1ZSwgd2hpY2ggZGVmYXVsdHMgdG8gYF9gIGluIG1vbm9saXRoaWNcbiAgICAgKiBidWlsZHMsIG1heSBiZSB1c2VkIGFzIGEgcGxhY2Vob2xkZXIgZm9yIHBhcnRpYWxseSBhcHBsaWVkIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBkb2Vzbid0IHNldCB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSBvZiBwYXJ0aWFsbHlcbiAgICAgKiBhcHBsaWVkIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHBhcnRpYWxseSBhcHBseSBhcmd1bWVudHMgdG8uXG4gICAgICogQHBhcmFtIHsuLi4qfSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gYmUgcGFydGlhbGx5IGFwcGxpZWQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcGFydGlhbGx5IGFwcGxpZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGdyZWV0KGdyZWV0aW5nLCBuYW1lKSB7XG4gICAgICogICByZXR1cm4gZ3JlZXRpbmcgKyAnICcgKyBuYW1lO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBncmVldEZyZWQgPSBfLnBhcnRpYWxSaWdodChncmVldCwgJ2ZyZWQnKTtcbiAgICAgKiBncmVldEZyZWQoJ2hpJyk7XG4gICAgICogLy8gPT4gJ2hpIGZyZWQnXG4gICAgICpcbiAgICAgKiAvLyBQYXJ0aWFsbHkgYXBwbGllZCB3aXRoIHBsYWNlaG9sZGVycy5cbiAgICAgKiB2YXIgc2F5SGVsbG9UbyA9IF8ucGFydGlhbFJpZ2h0KGdyZWV0LCAnaGVsbG8nLCBfKTtcbiAgICAgKiBzYXlIZWxsb1RvKCdmcmVkJyk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGZyZWQnXG4gICAgICovXG4gICAgdmFyIHBhcnRpYWxSaWdodCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIHBhcnRpYWxzKSB7XG4gICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBnZXRIb2xkZXIocGFydGlhbFJpZ2h0KSk7XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRywgdW5kZWZpbmVkLCBwYXJ0aWFscywgaG9sZGVycyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIGFyZ3VtZW50cyBhcnJhbmdlZCBhY2NvcmRpbmdcbiAgICAgKiB0byB0aGUgc3BlY2lmaWVkIGBpbmRleGVzYCB3aGVyZSB0aGUgYXJndW1lbnQgdmFsdWUgYXQgdGhlIGZpcnN0IGluZGV4IGlzXG4gICAgICogcHJvdmlkZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LCB0aGUgYXJndW1lbnQgdmFsdWUgYXQgdGhlIHNlY29uZCBpbmRleCBpc1xuICAgICAqIHByb3ZpZGVkIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQsIGFuZCBzbyBvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHJlYXJyYW5nZSBhcmd1bWVudHMgZm9yLlxuICAgICAqIEBwYXJhbSB7Li4uKG51bWJlcnxudW1iZXJbXSl9IGluZGV4ZXMgVGhlIGFycmFuZ2VkIGFyZ3VtZW50IGluZGV4ZXMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciByZWFyZ2VkID0gXy5yZWFyZyhmdW5jdGlvbihhLCBiLCBjKSB7XG4gICAgICogICByZXR1cm4gW2EsIGIsIGNdO1xuICAgICAqIH0sIFsyLCAwLCAxXSk7XG4gICAgICpcbiAgICAgKiByZWFyZ2VkKCdiJywgJ2MnLCAnYScpXG4gICAgICogLy8gPT4gWydhJywgJ2InLCAnYyddXG4gICAgICovXG4gICAgdmFyIHJlYXJnID0gZmxhdFJlc3QoZnVuY3Rpb24oZnVuYywgaW5kZXhlcykge1xuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9SRUFSR19GTEFHLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBpbmRleGVzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZVxuICAgICAqIGNyZWF0ZWQgZnVuY3Rpb24gYW5kIGFyZ3VtZW50cyBmcm9tIGBzdGFydGAgYW5kIGJleW9uZCBwcm92aWRlZCBhc1xuICAgICAqIGFuIGFycmF5LlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGJhc2VkIG9uIHRoZVxuICAgICAqIFtyZXN0IHBhcmFtZXRlcl0oaHR0cHM6Ly9tZG4uaW8vcmVzdF9wYXJhbWV0ZXJzKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD1mdW5jLmxlbmd0aC0xXSBUaGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIHJlc3QgcGFyYW1ldGVyLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgc2F5ID0gXy5yZXN0KGZ1bmN0aW9uKHdoYXQsIG5hbWVzKSB7XG4gICAgICogICByZXR1cm4gd2hhdCArICcgJyArIF8uaW5pdGlhbChuYW1lcykuam9pbignLCAnKSArXG4gICAgICogICAgIChfLnNpemUobmFtZXMpID4gMSA/ICcsICYgJyA6ICcnKSArIF8ubGFzdChuYW1lcyk7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBzYXkoJ2hlbGxvJywgJ2ZyZWQnLCAnYmFybmV5JywgJ3BlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiAnaGVsbG8gZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVzdChmdW5jLCBzdGFydCkge1xuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgc3RhcnQgPSBzdGFydCA9PT0gdW5kZWZpbmVkID8gc3RhcnQgOiB0b0ludGVnZXIoc3RhcnQpO1xuICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmMsIHN0YXJ0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiB0aGVcbiAgICAgKiBjcmVhdGUgZnVuY3Rpb24gYW5kIGFuIGFycmF5IG9mIGFyZ3VtZW50cyBtdWNoIGxpa2VcbiAgICAgKiBbYEZ1bmN0aW9uI2FwcGx5YF0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLWZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb24gdGhlXG4gICAgICogW3NwcmVhZCBvcGVyYXRvcl0oaHR0cHM6Ly9tZG4uaW8vc3ByZWFkX29wZXJhdG9yKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjIuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHNwcmVhZCBhcmd1bWVudHMgb3Zlci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgc3ByZWFkLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgc2F5ID0gXy5zcHJlYWQoZnVuY3Rpb24od2hvLCB3aGF0KSB7XG4gICAgICogICByZXR1cm4gd2hvICsgJyBzYXlzICcgKyB3aGF0O1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogc2F5KFsnZnJlZCcsICdoZWxsbyddKTtcbiAgICAgKiAvLyA9PiAnZnJlZCBzYXlzIGhlbGxvJ1xuICAgICAqXG4gICAgICogdmFyIG51bWJlcnMgPSBQcm9taXNlLmFsbChbXG4gICAgICogICBQcm9taXNlLnJlc29sdmUoNDApLFxuICAgICAqICAgUHJvbWlzZS5yZXNvbHZlKDM2KVxuICAgICAqIF0pO1xuICAgICAqXG4gICAgICogbnVtYmVycy50aGVuKF8uc3ByZWFkKGZ1bmN0aW9uKHgsIHkpIHtcbiAgICAgKiAgIHJldHVybiB4ICsgeTtcbiAgICAgKiB9KSk7XG4gICAgICogLy8gPT4gYSBQcm9taXNlIG9mIDc2XG4gICAgICovXG4gICAgZnVuY3Rpb24gc3ByZWFkKGZ1bmMsIHN0YXJ0KSB7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICBzdGFydCA9IHN0YXJ0ID09IG51bGwgPyAwIDogbmF0aXZlTWF4KHRvSW50ZWdlcihzdGFydCksIDApO1xuICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgdmFyIGFycmF5ID0gYXJnc1tzdGFydF0sXG4gICAgICAgICAgICBvdGhlckFyZ3MgPSBjYXN0U2xpY2UoYXJncywgMCwgc3RhcnQpO1xuXG4gICAgICAgIGlmIChhcnJheSkge1xuICAgICAgICAgIGFycmF5UHVzaChvdGhlckFyZ3MsIGFycmF5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXBwbHkoZnVuYywgdGhpcywgb3RoZXJBcmdzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSB0aHJvdHRsZWQgZnVuY3Rpb24gdGhhdCBvbmx5IGludm9rZXMgYGZ1bmNgIGF0IG1vc3Qgb25jZSBwZXJcbiAgICAgKiBldmVyeSBgd2FpdGAgbWlsbGlzZWNvbmRzLiBUaGUgdGhyb3R0bGVkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYFxuICAgICAqIG1ldGhvZCB0byBjYW5jZWwgZGVsYXllZCBgZnVuY2AgaW52b2NhdGlvbnMgYW5kIGEgYGZsdXNoYCBtZXRob2QgdG9cbiAgICAgKiBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS4gUHJvdmlkZSBgb3B0aW9uc2AgdG8gaW5kaWNhdGUgd2hldGhlciBgZnVuY2BcbiAgICAgKiBzaG91bGQgYmUgaW52b2tlZCBvbiB0aGUgbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgXG4gICAgICogdGltZW91dC4gVGhlIGBmdW5jYCBpcyBpbnZva2VkIHdpdGggdGhlIGxhc3QgYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZVxuICAgICAqIHRocm90dGxlZCBmdW5jdGlvbi4gU3Vic2VxdWVudCBjYWxscyB0byB0aGUgdGhyb3R0bGVkIGZ1bmN0aW9uIHJldHVybiB0aGVcbiAgICAgKiByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgIGludm9jYXRpb24uXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogSWYgYGxlYWRpbmdgIGFuZCBgdHJhaWxpbmdgIG9wdGlvbnMgYXJlIGB0cnVlYCwgYGZ1bmNgIGlzXG4gICAgICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSB0aHJvdHRsZWQgZnVuY3Rpb25cbiAgICAgKiBpcyBpbnZva2VkIG1vcmUgdGhhbiBvbmNlIGR1cmluZyB0aGUgYHdhaXRgIHRpbWVvdXQuXG4gICAgICpcbiAgICAgKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcbiAgICAgKiB1bnRpbCB0byB0aGUgbmV4dCB0aWNrLCBzaW1pbGFyIHRvIGBzZXRUaW1lb3V0YCB3aXRoIGEgdGltZW91dCBvZiBgMGAuXG4gICAgICpcbiAgICAgKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcbiAgICAgKiBmb3IgZGV0YWlscyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGBfLnRocm90dGxlYCBhbmQgYF8uZGVib3VuY2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gdGhyb3R0bGUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt3YWl0PTBdIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHRocm90dGxlIGludm9jYXRpb25zIHRvLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVhZGluZz10cnVlXVxuICAgICAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSBsZWFkaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICAgICAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHRocm90dGxlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gQXZvaWQgZXhjZXNzaXZlbHkgdXBkYXRpbmcgdGhlIHBvc2l0aW9uIHdoaWxlIHNjcm9sbGluZy5cbiAgICAgKiBqUXVlcnkod2luZG93KS5vbignc2Nyb2xsJywgXy50aHJvdHRsZSh1cGRhdGVQb3NpdGlvbiwgMTAwKSk7XG4gICAgICpcbiAgICAgKiAvLyBJbnZva2UgYHJlbmV3VG9rZW5gIHdoZW4gdGhlIGNsaWNrIGV2ZW50IGlzIGZpcmVkLCBidXQgbm90IG1vcmUgdGhhbiBvbmNlIGV2ZXJ5IDUgbWludXRlcy5cbiAgICAgKiB2YXIgdGhyb3R0bGVkID0gXy50aHJvdHRsZShyZW5ld1Rva2VuLCAzMDAwMDAsIHsgJ3RyYWlsaW5nJzogZmFsc2UgfSk7XG4gICAgICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIHRocm90dGxlZCk7XG4gICAgICpcbiAgICAgKiAvLyBDYW5jZWwgdGhlIHRyYWlsaW5nIHRocm90dGxlZCBpbnZvY2F0aW9uLlxuICAgICAqIGpRdWVyeSh3aW5kb3cpLm9uKCdwb3BzdGF0ZScsIHRocm90dGxlZC5jYW5jZWwpO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRocm90dGxlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBsZWFkaW5nID0gdHJ1ZSxcbiAgICAgICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgICAgICBsZWFkaW5nID0gJ2xlYWRpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMubGVhZGluZyA6IGxlYWRpbmc7XG4gICAgICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGVib3VuY2UoZnVuYywgd2FpdCwge1xuICAgICAgICAnbGVhZGluZyc6IGxlYWRpbmcsXG4gICAgICAgICdtYXhXYWl0Jzogd2FpdCxcbiAgICAgICAgJ3RyYWlsaW5nJzogdHJhaWxpbmdcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gb25lIGFyZ3VtZW50LCBpZ25vcmluZyBhbnlcbiAgICAgKiBhZGRpdGlvbmFsIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNhcHBlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tYXAoWyc2JywgJzgnLCAnMTAnXSwgXy51bmFyeShwYXJzZUludCkpO1xuICAgICAqIC8vID0+IFs2LCA4LCAxMF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmFyeShmdW5jKSB7XG4gICAgICByZXR1cm4gYXJ5KGZ1bmMsIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHByb3ZpZGVzIGB2YWx1ZWAgdG8gYHdyYXBwZXJgIGFzIGl0cyBmaXJzdFxuICAgICAqIGFyZ3VtZW50LiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGZ1bmN0aW9uIGFyZSBhcHBlbmRlZFxuICAgICAqIHRvIHRob3NlIHByb3ZpZGVkIHRvIHRoZSBgd3JhcHBlcmAuIFRoZSB3cmFwcGVyIGlzIGludm9rZWQgd2l0aCB0aGUgYHRoaXNgXG4gICAgICogYmluZGluZyBvZiB0aGUgY3JlYXRlZCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3dyYXBwZXI9aWRlbnRpdHldIFRoZSB3cmFwcGVyIGZ1bmN0aW9uLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgcCA9IF8ud3JhcChfLmVzY2FwZSwgZnVuY3Rpb24oZnVuYywgdGV4dCkge1xuICAgICAqICAgcmV0dXJuICc8cD4nICsgZnVuYyh0ZXh0KSArICc8L3A+JztcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIHAoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJyk7XG4gICAgICogLy8gPT4gJzxwPmZyZWQsIGJhcm5leSwgJmFtcDsgcGViYmxlczwvcD4nXG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcCh2YWx1ZSwgd3JhcHBlcikge1xuICAgICAgcmV0dXJuIHBhcnRpYWwoY2FzdEZ1bmN0aW9uKHdyYXBwZXIpLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ2FzdHMgYHZhbHVlYCBhcyBhbiBhcnJheSBpZiBpdCdzIG5vdCBvbmUuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC40LjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjYXN0IGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNhc3RBcnJheSgxKTtcbiAgICAgKiAvLyA9PiBbMV1cbiAgICAgKlxuICAgICAqIF8uY2FzdEFycmF5KHsgJ2EnOiAxIH0pO1xuICAgICAqIC8vID0+IFt7ICdhJzogMSB9XVxuICAgICAqXG4gICAgICogXy5jYXN0QXJyYXkoJ2FiYycpO1xuICAgICAqIC8vID0+IFsnYWJjJ11cbiAgICAgKlxuICAgICAqIF8uY2FzdEFycmF5KG51bGwpO1xuICAgICAqIC8vID0+IFtudWxsXVxuICAgICAqXG4gICAgICogXy5jYXN0QXJyYXkodW5kZWZpbmVkKTtcbiAgICAgKiAvLyA9PiBbdW5kZWZpbmVkXVxuICAgICAqXG4gICAgICogXy5jYXN0QXJyYXkoKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDIsIDNdO1xuICAgICAqIGNvbnNvbGUubG9nKF8uY2FzdEFycmF5KGFycmF5KSA9PT0gYXJyYXkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjYXN0QXJyYXkoKSB7XG4gICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdmFyIHZhbHVlID0gYXJndW1lbnRzWzBdO1xuICAgICAgcmV0dXJuIGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzaGFsbG93IGNsb25lIG9mIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGVcbiAgICAgKiBbc3RydWN0dXJlZCBjbG9uZSBhbGdvcml0aG1dKGh0dHBzOi8vbWRuLmlvL1N0cnVjdHVyZWRfY2xvbmVfYWxnb3JpdGhtKVxuICAgICAqIGFuZCBzdXBwb3J0cyBjbG9uaW5nIGFycmF5cywgYXJyYXkgYnVmZmVycywgYm9vbGVhbnMsIGRhdGUgb2JqZWN0cywgbWFwcyxcbiAgICAgKiBudW1iZXJzLCBgT2JqZWN0YCBvYmplY3RzLCByZWdleGVzLCBzZXRzLCBzdHJpbmdzLCBzeW1ib2xzLCBhbmQgdHlwZWRcbiAgICAgKiBhcnJheXMuIFRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIGBhcmd1bWVudHNgIG9iamVjdHMgYXJlIGNsb25lZFxuICAgICAqIGFzIHBsYWluIG9iamVjdHMuIEFuIGVtcHR5IG9iamVjdCBpcyByZXR1cm5lZCBmb3IgdW5jbG9uZWFibGUgdmFsdWVzIHN1Y2hcbiAgICAgKiBhcyBlcnJvciBvYmplY3RzLCBmdW5jdGlvbnMsIERPTSBub2RlcywgYW5kIFdlYWtNYXBzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgY2xvbmVkIHZhbHVlLlxuICAgICAqIEBzZWUgXy5jbG9uZURlZXBcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAnYSc6IDEgfSwgeyAnYic6IDIgfV07XG4gICAgICpcbiAgICAgKiB2YXIgc2hhbGxvdyA9IF8uY2xvbmUob2JqZWN0cyk7XG4gICAgICogY29uc29sZS5sb2coc2hhbGxvd1swXSA9PT0gb2JqZWN0c1swXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lKHZhbHVlKSB7XG4gICAgICByZXR1cm4gYmFzZUNsb25lKHZhbHVlLCBDTE9ORV9TWU1CT0xTX0ZMQUcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uY2xvbmVgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgIHdoaWNoXG4gICAgICogaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBjbG9uZWQgdmFsdWUuIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgLFxuICAgICAqIGNsb25pbmcgaXMgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgaW52b2tlZCB3aXRoXG4gICAgICogdXAgdG8gZm91ciBhcmd1bWVudHM7ICh2YWx1ZSBbLCBpbmRleHxrZXksIG9iamVjdCwgc3RhY2tdKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY2xvbmluZy5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgY2xvbmVkIHZhbHVlLlxuICAgICAqIEBzZWUgXy5jbG9uZURlZXBXaXRoXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIodmFsdWUpIHtcbiAgICAgKiAgIGlmIChfLmlzRWxlbWVudCh2YWx1ZSkpIHtcbiAgICAgKiAgICAgcmV0dXJuIHZhbHVlLmNsb25lTm9kZShmYWxzZSk7XG4gICAgICogICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGVsID0gXy5jbG9uZVdpdGgoZG9jdW1lbnQuYm9keSwgY3VzdG9taXplcik7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhlbCA9PT0gZG9jdW1lbnQuYm9keSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKiBjb25zb2xlLmxvZyhlbC5ub2RlTmFtZSk7XG4gICAgICogLy8gPT4gJ0JPRFknXG4gICAgICogY29uc29sZS5sb2coZWwuY2hpbGROb2Rlcy5sZW5ndGgpO1xuICAgICAqIC8vID0+IDBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZVdpdGgodmFsdWUsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX1NZTUJPTFNfRkxBRywgY3VzdG9taXplcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5jbG9uZWAgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgY2xvbmVzIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMS4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJlY3Vyc2l2ZWx5IGNsb25lLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBkZWVwIGNsb25lZCB2YWx1ZS5cbiAgICAgKiBAc2VlIF8uY2xvbmVcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAnYSc6IDEgfSwgeyAnYic6IDIgfV07XG4gICAgICpcbiAgICAgKiB2YXIgZGVlcCA9IF8uY2xvbmVEZWVwKG9iamVjdHMpO1xuICAgICAqIGNvbnNvbGUubG9nKGRlZXBbMF0gPT09IG9iamVjdHNbMF0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2xvbmVEZWVwKHZhbHVlKSB7XG4gICAgICByZXR1cm4gYmFzZUNsb25lKHZhbHVlLCBDTE9ORV9ERUVQX0ZMQUcgfCBDTE9ORV9TWU1CT0xTX0ZMQUcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uY2xvbmVXaXRoYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBjbG9uZXMgYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmVjdXJzaXZlbHkgY2xvbmUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY2xvbmluZy5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZGVlcCBjbG9uZWQgdmFsdWUuXG4gICAgICogQHNlZSBfLmNsb25lV2l0aFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBjdXN0b21pemVyKHZhbHVlKSB7XG4gICAgICogICBpZiAoXy5pc0VsZW1lbnQodmFsdWUpKSB7XG4gICAgICogICAgIHJldHVybiB2YWx1ZS5jbG9uZU5vZGUodHJ1ZSk7XG4gICAgICogICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGVsID0gXy5jbG9uZURlZXBXaXRoKGRvY3VtZW50LmJvZHksIGN1c3RvbWl6ZXIpO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coZWwgPT09IGRvY3VtZW50LmJvZHkpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICogY29uc29sZS5sb2coZWwubm9kZU5hbWUpO1xuICAgICAqIC8vID0+ICdCT0RZJ1xuICAgICAqIGNvbnNvbGUubG9nKGVsLmNoaWxkTm9kZXMubGVuZ3RoKTtcbiAgICAgKiAvLyA9PiAyMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lRGVlcFdpdGgodmFsdWUsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX0RFRVBfRkxBRyB8IENMT05FX1NZTUJPTFNfRkxBRywgY3VzdG9taXplcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBvYmplY3RgIGNvbmZvcm1zIHRvIGBzb3VyY2VgIGJ5IGludm9raW5nIHRoZSBwcmVkaWNhdGVcbiAgICAgKiBwcm9wZXJ0aWVzIG9mIGBzb3VyY2VgIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgdmFsdWVzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gYF8uY29uZm9ybXNgIHdoZW4gYHNvdXJjZWAgaXNcbiAgICAgKiBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjE0LjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSBwcmVkaWNhdGVzIHRvIGNvbmZvcm0gdG8uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBvYmplY3RgIGNvbmZvcm1zLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAyIH07XG4gICAgICpcbiAgICAgKiBfLmNvbmZvcm1zVG8ob2JqZWN0LCB7ICdiJzogZnVuY3Rpb24obikgeyByZXR1cm4gbiA+IDE7IH0gfSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5jb25mb3Jtc1RvKG9iamVjdCwgeyAnYic6IGZ1bmN0aW9uKG4pIHsgcmV0dXJuIG4gPiAyOyB9IH0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29uZm9ybXNUbyhvYmplY3QsIHNvdXJjZSkge1xuICAgICAgcmV0dXJuIHNvdXJjZSA9PSBudWxsIHx8IGJhc2VDb25mb3Jtc1RvKG9iamVjdCwgc291cmNlLCBrZXlzKHNvdXJjZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGFcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGNvbXBhcmlzb24gYmV0d2VlbiB0d28gdmFsdWVzIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZSBlcXVpdmFsZW50LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gICAgICogdmFyIG90aGVyID0geyAnYSc6IDEgfTtcbiAgICAgKlxuICAgICAqIF8uZXEob2JqZWN0LCBvYmplY3QpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uZXEob2JqZWN0LCBvdGhlcik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uZXEoJ2EnLCAnYScpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uZXEoJ2EnLCBPYmplY3QoJ2EnKSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uZXEoTmFOLCBOYU4pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlcSh2YWx1ZSwgb3RoZXIpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gb3RoZXIgfHwgKHZhbHVlICE9PSB2YWx1ZSAmJiBvdGhlciAhPT0gb3RoZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGdyZWF0ZXIgdGhhbiBgb3RoZXJgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuOS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZ3JlYXRlciB0aGFuIGBvdGhlcmAsXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAc2VlIF8ubHRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5ndCgzLCAxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmd0KDMsIDMpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmd0KDEsIDMpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGd0ID0gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihiYXNlR3QpO1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGBvdGhlcmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy45LjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG9cbiAgICAgKiAgYG90aGVyYCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBzZWUgXy5sdGVcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5ndGUoMywgMSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5ndGUoMywgMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5ndGUoMSwgMyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgZ3RlID0gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihmdW5jdGlvbih2YWx1ZSwgb3RoZXIpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA+PSBvdGhlcjtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxpa2VseSBhbiBgYXJndW1lbnRzYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGBhcmd1bWVudHNgIG9iamVjdCxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNBcmd1bWVudHMoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc0FyZ3VtZW50cyA9IGJhc2VJc0FyZ3VtZW50cyhmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKSA/IGJhc2VJc0FyZ3VtZW50cyA6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnY2FsbGVlJykgJiZcbiAgICAgICAgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsICdjYWxsZWUnKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgQXJyYXlgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5KGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoJ2FiYycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoXy5ub29wKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYW4gYEFycmF5QnVmZmVyYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGFycmF5IGJ1ZmZlciwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlCdWZmZXIobmV3IEFycmF5QnVmZmVyKDIpKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlCdWZmZXIobmV3IEFycmF5KDIpKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc0FycmF5QnVmZmVyID0gbm9kZUlzQXJyYXlCdWZmZXIgPyBiYXNlVW5hcnkobm9kZUlzQXJyYXlCdWZmZXIpIDogYmFzZUlzQXJyYXlCdWZmZXI7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLiBBIHZhbHVlIGlzIGNvbnNpZGVyZWQgYXJyYXktbGlrZSBpZiBpdCdzXG4gICAgICogbm90IGEgZnVuY3Rpb24gYW5kIGhhcyBhIGB2YWx1ZS5sZW5ndGhgIHRoYXQncyBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBvclxuICAgICAqIGVxdWFsIHRvIGAwYCBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5TGlrZShbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUxpa2UoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5TGlrZSgnYWJjJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5TGlrZShfLm5vb3ApO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNBcnJheUxpa2UodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgIWlzRnVuY3Rpb24odmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaXNBcnJheUxpa2VgIGV4Y2VwdCB0aGF0IGl0IGFsc28gY2hlY2tzIGlmIGB2YWx1ZWBcbiAgICAgKiBpcyBhbiBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGFycmF5LWxpa2Ugb2JqZWN0LFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUxpa2VPYmplY3QoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlMaWtlT2JqZWN0KGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUxpa2VPYmplY3QoJ2FiYycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlMaWtlT2JqZWN0KF8ubm9vcCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0FycmF5TGlrZU9iamVjdCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaXNBcnJheUxpa2UodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBib29sZWFuIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgYm9vbGVhbiwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzQm9vbGVhbihmYWxzZSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0Jvb2xlYW4obnVsbCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0Jvb2xlYW4odmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2UgfHxcbiAgICAgICAgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYm9vbFRhZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgYnVmZmVyLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNCdWZmZXIobmV3IEJ1ZmZlcigyKSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0J1ZmZlcihuZXcgVWludDhBcnJheSgyKSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgaXNCdWZmZXIgPSBuYXRpdmVJc0J1ZmZlciB8fCBzdHViRmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYERhdGVgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBkYXRlIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzRGF0ZShuZXcgRGF0ZSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0RhdGUoJ01vbiBBcHJpbCAyMyAyMDEyJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgaXNEYXRlID0gbm9kZUlzRGF0ZSA/IGJhc2VVbmFyeShub2RlSXNEYXRlKSA6IGJhc2VJc0RhdGU7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYSBET00gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBET00gZWxlbWVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzRWxlbWVudChkb2N1bWVudC5ib2R5KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRWxlbWVudCgnPGJvZHk+Jyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0VsZW1lbnQodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIHZhbHVlLm5vZGVUeXBlID09PSAxICYmICFpc1BsYWluT2JqZWN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhbiBlbXB0eSBvYmplY3QsIGNvbGxlY3Rpb24sIG1hcCwgb3Igc2V0LlxuICAgICAqXG4gICAgICogT2JqZWN0cyBhcmUgY29uc2lkZXJlZCBlbXB0eSBpZiB0aGV5IGhhdmUgbm8gb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkXG4gICAgICogcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqIEFycmF5LWxpa2UgdmFsdWVzIHN1Y2ggYXMgYGFyZ3VtZW50c2Agb2JqZWN0cywgYXJyYXlzLCBidWZmZXJzLCBzdHJpbmdzLCBvclxuICAgICAqIGpRdWVyeS1saWtlIGNvbGxlY3Rpb25zIGFyZSBjb25zaWRlcmVkIGVtcHR5IGlmIHRoZXkgaGF2ZSBhIGBsZW5ndGhgIG9mIGAwYC5cbiAgICAgKiBTaW1pbGFybHksIG1hcHMgYW5kIHNldHMgYXJlIGNvbnNpZGVyZWQgZW1wdHkgaWYgdGhleSBoYXZlIGEgYHNpemVgIG9mIGAwYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZW1wdHksIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0VtcHR5KG51bGwpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNFbXB0eSh0cnVlKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRW1wdHkoMSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0VtcHR5KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNFbXB0eSh7ICdhJzogMSB9KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGlzQXJyYXlMaWtlKHZhbHVlKSAmJlxuICAgICAgICAgIChpc0FycmF5KHZhbHVlKSB8fCB0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlLnNwbGljZSA9PSAnZnVuY3Rpb24nIHx8XG4gICAgICAgICAgICBpc0J1ZmZlcih2YWx1ZSkgfHwgaXNUeXBlZEFycmF5KHZhbHVlKSB8fCBpc0FyZ3VtZW50cyh2YWx1ZSkpKSB7XG4gICAgICAgIHJldHVybiAhdmFsdWUubGVuZ3RoO1xuICAgICAgfVxuICAgICAgdmFyIHRhZyA9IGdldFRhZyh2YWx1ZSk7XG4gICAgICBpZiAodGFnID09IG1hcFRhZyB8fCB0YWcgPT0gc2V0VGFnKSB7XG4gICAgICAgIHJldHVybiAhdmFsdWUuc2l6ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1Byb3RvdHlwZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICFiYXNlS2V5cyh2YWx1ZSkubGVuZ3RoO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIGRlZXAgY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlXG4gICAgICogZXF1aXZhbGVudC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyBjb21wYXJpbmcgYXJyYXlzLCBhcnJheSBidWZmZXJzLCBib29sZWFucyxcbiAgICAgKiBkYXRlIG9iamVjdHMsIGVycm9yIG9iamVjdHMsIG1hcHMsIG51bWJlcnMsIGBPYmplY3RgIG9iamVjdHMsIHJlZ2V4ZXMsXG4gICAgICogc2V0cywgc3RyaW5ncywgc3ltYm9scywgYW5kIHR5cGVkIGFycmF5cy4gYE9iamVjdGAgb2JqZWN0cyBhcmUgY29tcGFyZWRcbiAgICAgKiBieSB0aGVpciBvd24sIG5vdCBpbmhlcml0ZWQsIGVudW1lcmFibGUgcHJvcGVydGllcy4gRnVuY3Rpb25zIGFuZCBET01cbiAgICAgKiBub2RlcyBhcmUgY29tcGFyZWQgYnkgc3RyaWN0IGVxdWFsaXR5LCBpLmUuIGA9PT1gLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gICAgICogdmFyIG90aGVyID0geyAnYSc6IDEgfTtcbiAgICAgKlxuICAgICAqIF8uaXNFcXVhbChvYmplY3QsIG90aGVyKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBvYmplY3QgPT09IG90aGVyO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNFcXVhbCh2YWx1ZSwgb3RoZXIpIHtcbiAgICAgIHJldHVybiBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaXNFcXVhbGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIHRvIGNvbXBhcmUgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYCwgY29tcGFyaXNvbnNcbiAgICAgKiBhcmUgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgaW52b2tlZCB3aXRoIHVwIHRvXG4gICAgICogc2l4IGFyZ3VtZW50czogKG9ialZhbHVlLCBvdGhWYWx1ZSBbLCBpbmRleHxrZXksIG9iamVjdCwgb3RoZXIsIHN0YWNrXSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBpc0dyZWV0aW5nKHZhbHVlKSB7XG4gICAgICogICByZXR1cm4gL15oKD86aXxlbGxvKSQvLnRlc3QodmFsdWUpO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIG90aFZhbHVlKSB7XG4gICAgICogICBpZiAoaXNHcmVldGluZyhvYmpWYWx1ZSkgJiYgaXNHcmVldGluZyhvdGhWYWx1ZSkpIHtcbiAgICAgKiAgICAgcmV0dXJuIHRydWU7XG4gICAgICogICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWydoZWxsbycsICdnb29kYnllJ107XG4gICAgICogdmFyIG90aGVyID0gWydoaScsICdnb29kYnllJ107XG4gICAgICpcbiAgICAgKiBfLmlzRXF1YWxXaXRoKGFycmF5LCBvdGhlciwgY3VzdG9taXplcik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRXF1YWxXaXRoKHZhbHVlLCBvdGhlciwgY3VzdG9taXplcikge1xuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkO1xuICAgICAgdmFyIHJlc3VsdCA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKHZhbHVlLCBvdGhlcikgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gcmVzdWx0ID09PSB1bmRlZmluZWQgPyBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIsIHVuZGVmaW5lZCwgY3VzdG9taXplcikgOiAhIXJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhbiBgRXJyb3JgLCBgRXZhbEVycm9yYCwgYFJhbmdlRXJyb3JgLCBgUmVmZXJlbmNlRXJyb3JgLFxuICAgICAqIGBTeW50YXhFcnJvcmAsIGBUeXBlRXJyb3JgLCBvciBgVVJJRXJyb3JgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gZXJyb3Igb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNFcnJvcihuZXcgRXJyb3IpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNFcnJvcihFcnJvcik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0Vycm9yKHZhbHVlKSB7XG4gICAgICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHRhZyA9IGJhc2VHZXRUYWcodmFsdWUpO1xuICAgICAgcmV0dXJuIHRhZyA9PSBlcnJvclRhZyB8fCB0YWcgPT0gZG9tRXhjVGFnIHx8XG4gICAgICAgICh0eXBlb2YgdmFsdWUubWVzc2FnZSA9PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUubmFtZSA9PSAnc3RyaW5nJyAmJiAhaXNQbGFpbk9iamVjdCh2YWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgZmluaXRlIHByaW1pdGl2ZSBudW1iZXIuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYE51bWJlci5pc0Zpbml0ZWBdKGh0dHBzOi8vbWRuLmlvL051bWJlci9pc0Zpbml0ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZmluaXRlIG51bWJlciwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzRmluaXRlKDMpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNGaW5pdGUoTnVtYmVyLk1JTl9WQUxVRSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0Zpbml0ZShJbmZpbml0eSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNGaW5pdGUoJzMnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRmluaXRlKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmIG5hdGl2ZUlzRmluaXRlKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYEZ1bmN0aW9uYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZnVuY3Rpb24sIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0Z1bmN0aW9uKF8pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNGdW5jdGlvbigvYWJjLyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gICAgICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICAvLyBUaGUgdXNlIG9mIGBPYmplY3QjdG9TdHJpbmdgIGF2b2lkcyBpc3N1ZXMgd2l0aCB0aGUgYHR5cGVvZmAgb3BlcmF0b3JcbiAgICAgIC8vIGluIFNhZmFyaSA5IHdoaWNoIHJldHVybnMgJ29iamVjdCcgZm9yIHR5cGVkIGFycmF5cyBhbmQgb3RoZXIgY29uc3RydWN0b3JzLlxuICAgICAgdmFyIHRhZyA9IGJhc2VHZXRUYWcodmFsdWUpO1xuICAgICAgcmV0dXJuIHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWcgfHwgdGFnID09IGFzeW5jVGFnIHx8IHRhZyA9PSBwcm94eVRhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhbiBpbnRlZ2VyLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGJhc2VkIG9uXG4gICAgICogW2BOdW1iZXIuaXNJbnRlZ2VyYF0oaHR0cHM6Ly9tZG4uaW8vTnVtYmVyL2lzSW50ZWdlcikuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGludGVnZXIsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0ludGVnZXIoMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0ludGVnZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNJbnRlZ2VyKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0ludGVnZXIoJzMnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzSW50ZWdlcih2YWx1ZSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyAmJiB2YWx1ZSA9PSB0b0ludGVnZXIodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBsZW5ndGguXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgbG9vc2VseSBiYXNlZCBvblxuICAgICAqIFtgVG9MZW5ndGhgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy10b2xlbmd0aCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgbGVuZ3RoLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNMZW5ndGgoMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0xlbmd0aChOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0xlbmd0aChJbmZpbml0eSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNMZW5ndGgoJzMnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmXG4gICAgICAgIHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09IDAgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAgICAgKiBbbGFuZ3VhZ2UgdHlwZV0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLWVjbWFzY3JpcHQtbGFuZ3VhZ2UtdHlwZXMpXG4gICAgICogb2YgYE9iamVjdGAuIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdCh7fSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzT2JqZWN0KG51bGwpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgICAgIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgKHR5cGUgPT0gJ29iamVjdCcgfHwgdHlwZSA9PSAnZnVuY3Rpb24nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAgICAgKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNPYmplY3RMaWtlKHt9KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzT2JqZWN0TGlrZShbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNPYmplY3RMaWtlKF8ubm9vcCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNPYmplY3RMaWtlKG51bGwpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBNYXBgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjMuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBtYXAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc01hcChuZXcgTWFwKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTWFwKG5ldyBXZWFrTWFwKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc01hcCA9IG5vZGVJc01hcCA/IGJhc2VVbmFyeShub2RlSXNNYXApIDogYmFzZUlzTWFwO1xuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbiBiZXR3ZWVuIGBvYmplY3RgIGFuZCBgc291cmNlYCB0b1xuICAgICAqIGRldGVybWluZSBpZiBgb2JqZWN0YCBjb250YWlucyBlcXVpdmFsZW50IHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIGBfLm1hdGNoZXNgIHdoZW4gYHNvdXJjZWAgaXNcbiAgICAgKiBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKlxuICAgICAqIFBhcnRpYWwgY29tcGFyaXNvbnMgd2lsbCBtYXRjaCBlbXB0eSBhcnJheSBhbmQgZW1wdHkgb2JqZWN0IGBzb3VyY2VgXG4gICAgICogdmFsdWVzIGFnYWluc3QgYW55IGFycmF5IG9yIG9iamVjdCB2YWx1ZSwgcmVzcGVjdGl2ZWx5LiBTZWUgYF8uaXNFcXVhbGBcbiAgICAgKiBmb3IgYSBsaXN0IG9mIHN1cHBvcnRlZCB2YWx1ZSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG9iamVjdGAgaXMgYSBtYXRjaCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogMiB9O1xuICAgICAqXG4gICAgICogXy5pc01hdGNoKG9iamVjdCwgeyAnYic6IDIgfSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc01hdGNoKG9iamVjdCwgeyAnYic6IDEgfSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc01hdGNoKG9iamVjdCwgc291cmNlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09PSBzb3VyY2UgfHwgYmFzZUlzTWF0Y2gob2JqZWN0LCBzb3VyY2UsIGdldE1hdGNoRGF0YShzb3VyY2UpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmlzTWF0Y2hgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgIHdoaWNoXG4gICAgICogaXMgaW52b2tlZCB0byBjb21wYXJlIHZhbHVlcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGAsIGNvbXBhcmlzb25zXG4gICAgICogYXJlIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGludm9rZWQgd2l0aCBmaXZlXG4gICAgICogYXJndW1lbnRzOiAob2JqVmFsdWUsIHNyY1ZhbHVlLCBpbmRleHxrZXksIG9iamVjdCwgc291cmNlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG9iamVjdGAgaXMgYSBtYXRjaCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBpc0dyZWV0aW5nKHZhbHVlKSB7XG4gICAgICogICByZXR1cm4gL15oKD86aXxlbGxvKSQvLnRlc3QodmFsdWUpO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XG4gICAgICogICBpZiAoaXNHcmVldGluZyhvYmpWYWx1ZSkgJiYgaXNHcmVldGluZyhzcmNWYWx1ZSkpIHtcbiAgICAgKiAgICAgcmV0dXJuIHRydWU7XG4gICAgICogICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2dyZWV0aW5nJzogJ2hlbGxvJyB9O1xuICAgICAqIHZhciBzb3VyY2UgPSB7ICdncmVldGluZyc6ICdoaScgfTtcbiAgICAgKlxuICAgICAqIF8uaXNNYXRjaFdpdGgob2JqZWN0LCBzb3VyY2UsIGN1c3RvbWl6ZXIpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc01hdGNoV2l0aChvYmplY3QsIHNvdXJjZSwgY3VzdG9taXplcikge1xuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIGJhc2VJc01hdGNoKG9iamVjdCwgc291cmNlLCBnZXRNYXRjaERhdGEoc291cmNlKSwgY3VzdG9taXplcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYE5hTmAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYE51bWJlci5pc05hTmBdKGh0dHBzOi8vbWRuLmlvL051bWJlci9pc05hTikgYW5kIGlzIG5vdCB0aGUgc2FtZSBhc1xuICAgICAqIGdsb2JhbCBbYGlzTmFOYF0oaHR0cHM6Ly9tZG4uaW8vaXNOYU4pIHdoaWNoIHJldHVybnMgYHRydWVgIGZvclxuICAgICAqIGB1bmRlZmluZWRgIGFuZCBvdGhlciBub24tbnVtYmVyIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYE5hTmAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc05hTihOYU4pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOYU4obmV3IE51bWJlcihOYU4pKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBpc05hTih1bmRlZmluZWQpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOYU4odW5kZWZpbmVkKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTmFOKHZhbHVlKSB7XG4gICAgICAvLyBBbiBgTmFOYCBwcmltaXRpdmUgaXMgdGhlIG9ubHkgdmFsdWUgdGhhdCBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLlxuICAgICAgLy8gUGVyZm9ybSB0aGUgYHRvU3RyaW5nVGFnYCBjaGVjayBmaXJzdCB0byBhdm9pZCBlcnJvcnMgd2l0aCBzb21lXG4gICAgICAvLyBBY3RpdmVYIG9iamVjdHMgaW4gSUUuXG4gICAgICByZXR1cm4gaXNOdW1iZXIodmFsdWUpICYmIHZhbHVlICE9ICt2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHByaXN0aW5lIG5hdGl2ZSBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBjYW4ndCByZWxpYWJseSBkZXRlY3QgbmF0aXZlIGZ1bmN0aW9ucyBpbiB0aGUgcHJlc2VuY2VcbiAgICAgKiBvZiB0aGUgY29yZS1qcyBwYWNrYWdlIGJlY2F1c2UgY29yZS1qcyBjaXJjdW12ZW50cyB0aGlzIGtpbmQgb2YgZGV0ZWN0aW9uLlxuICAgICAqIERlc3BpdGUgbXVsdGlwbGUgcmVxdWVzdHMsIHRoZSBjb3JlLWpzIG1haW50YWluZXIgaGFzIG1hZGUgaXQgY2xlYXI6IGFueVxuICAgICAqIGF0dGVtcHQgdG8gZml4IHRoZSBkZXRlY3Rpb24gd2lsbCBiZSBvYnN0cnVjdGVkLiBBcyBhIHJlc3VsdCwgd2UncmUgbGVmdFxuICAgICAqIHdpdGggbGl0dGxlIGNob2ljZSBidXQgdG8gdGhyb3cgYW4gZXJyb3IuIFVuZm9ydHVuYXRlbHksIHRoaXMgYWxzbyBhZmZlY3RzXG4gICAgICogcGFja2FnZXMsIGxpa2UgW2JhYmVsLXBvbHlmaWxsXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9iYWJlbC1wb2x5ZmlsbCksXG4gICAgICogd2hpY2ggcmVseSBvbiBjb3JlLWpzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzTmF0aXZlKEFycmF5LnByb3RvdHlwZS5wdXNoKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTmF0aXZlKF8pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNOYXRpdmUodmFsdWUpIHtcbiAgICAgIGlmIChpc01hc2thYmxlKHZhbHVlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoQ09SRV9FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlSXNOYXRpdmUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGBudWxsYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYG51bGxgLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNOdWxsKG51bGwpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOdWxsKHZvaWQgMCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc051bGwodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG51bGxpc2gsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc05pbChudWxsKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTmlsKHZvaWQgMCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc05pbChOYU4pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNOaWwodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgTnVtYmVyYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRvIGV4Y2x1ZGUgYEluZmluaXR5YCwgYC1JbmZpbml0eWAsIGFuZCBgTmFOYCwgd2hpY2ggYXJlXG4gICAgICogY2xhc3NpZmllZCBhcyBudW1iZXJzLCB1c2UgdGhlIGBfLmlzRmluaXRlYCBtZXRob2QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbnVtYmVyLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNOdW1iZXIoMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc051bWJlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTnVtYmVyKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTnVtYmVyKCczJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyB8fFxuICAgICAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBudW1iZXJUYWcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCB0aGF0IGlzLCBhbiBvYmplY3QgY3JlYXRlZCBieSB0aGVcbiAgICAgKiBgT2JqZWN0YCBjb25zdHJ1Y3RvciBvciBvbmUgd2l0aCBhIGBbW1Byb3RvdHlwZV1dYCBvZiBgbnVsbGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC44LjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogfVxuICAgICAqXG4gICAgICogXy5pc1BsYWluT2JqZWN0KG5ldyBGb28pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzUGxhaW5PYmplY3QoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc1BsYWluT2JqZWN0KHsgJ3gnOiAwLCAneSc6IDAgfSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc1BsYWluT2JqZWN0KE9iamVjdC5jcmVhdGUobnVsbCkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlKSB7XG4gICAgICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkgfHwgYmFzZUdldFRhZyh2YWx1ZSkgIT0gb2JqZWN0VGFnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm90byA9IGdldFByb3RvdHlwZSh2YWx1ZSk7XG4gICAgICBpZiAocHJvdG8gPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICB2YXIgQ3RvciA9IGhhc093blByb3BlcnR5LmNhbGwocHJvdG8sICdjb25zdHJ1Y3RvcicpICYmIHByb3RvLmNvbnN0cnVjdG9yO1xuICAgICAgcmV0dXJuIHR5cGVvZiBDdG9yID09ICdmdW5jdGlvbicgJiYgQ3RvciBpbnN0YW5jZW9mIEN0b3IgJiZcbiAgICAgICAgZnVuY1RvU3RyaW5nLmNhbGwoQ3RvcikgPT0gb2JqZWN0Q3RvclN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFJlZ0V4cGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHJlZ2V4cCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzUmVnRXhwKC9hYmMvKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzUmVnRXhwKCcvYWJjLycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzUmVnRXhwID0gbm9kZUlzUmVnRXhwID8gYmFzZVVuYXJ5KG5vZGVJc1JlZ0V4cCkgOiBiYXNlSXNSZWdFeHA7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHNhZmUgaW50ZWdlci4gQW4gaW50ZWdlciBpcyBzYWZlIGlmIGl0J3MgYW4gSUVFRS03NTRcbiAgICAgKiBkb3VibGUgcHJlY2lzaW9uIG51bWJlciB3aGljaCBpc24ndCB0aGUgcmVzdWx0IG9mIGEgcm91bmRlZCB1bnNhZmUgaW50ZWdlci5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvblxuICAgICAqIFtgTnVtYmVyLmlzU2FmZUludGVnZXJgXShodHRwczovL21kbi5pby9OdW1iZXIvaXNTYWZlSW50ZWdlcikuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc2FmZSBpbnRlZ2VyLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNTYWZlSW50ZWdlcigzKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzU2FmZUludGVnZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNTYWZlSW50ZWdlcihJbmZpbml0eSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNTYWZlSW50ZWdlcignMycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNTYWZlSW50ZWdlcih2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzSW50ZWdlcih2YWx1ZSkgJiYgdmFsdWUgPj0gLU1BWF9TQUZFX0lOVEVHRVIgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFNldGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMy4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHNldCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzU2V0KG5ldyBTZXQpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNTZXQobmV3IFdlYWtTZXQpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzU2V0ID0gbm9kZUlzU2V0ID8gYmFzZVVuYXJ5KG5vZGVJc1NldCkgOiBiYXNlSXNTZXQ7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFN0cmluZ2AgcHJpbWl0aXZlIG9yIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzdHJpbmcsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc1N0cmluZygnYWJjJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc1N0cmluZygxKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8XG4gICAgICAgICghaXNBcnJheSh2YWx1ZSkgJiYgaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBzdHJpbmdUYWcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHN5bWJvbCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzU3ltYm9sKFN5bWJvbC5pdGVyYXRvcik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc1N5bWJvbCgnYWJjJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1N5bWJvbCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3ltYm9sJyB8fFxuICAgICAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSB0eXBlZCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB0eXBlZCBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzVHlwZWRBcnJheShuZXcgVWludDhBcnJheSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc1R5cGVkQXJyYXkoW10pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzVHlwZWRBcnJheSA9IG5vZGVJc1R5cGVkQXJyYXkgPyBiYXNlVW5hcnkobm9kZUlzVHlwZWRBcnJheSkgOiBiYXNlSXNUeXBlZEFycmF5O1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYHVuZGVmaW5lZGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGB1bmRlZmluZWRgLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNVbmRlZmluZWQodm9pZCAwKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzVW5kZWZpbmVkKG51bGwpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNVbmRlZmluZWQodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgV2Vha01hcGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMy4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHdlYWsgbWFwLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNXZWFrTWFwKG5ldyBXZWFrTWFwKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzV2Vha01hcChuZXcgTWFwKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzV2Vha01hcCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgZ2V0VGFnKHZhbHVlKSA9PSB3ZWFrTWFwVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgV2Vha1NldGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMy4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHdlYWsgc2V0LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNXZWFrU2V0KG5ldyBXZWFrU2V0KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzV2Vha1NldChuZXcgU2V0KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzV2Vha1NldCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gd2Vha1NldFRhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsZXNzIHRoYW4gYG90aGVyYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjkuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGxlc3MgdGhhbiBgb3RoZXJgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQHNlZSBfLmd0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubHQoMSwgMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5sdCgzLCAzKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5sdCgzLCAxKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBsdCA9IGNyZWF0ZVJlbGF0aW9uYWxPcGVyYXRpb24oYmFzZUx0KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBgb3RoZXJgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuOS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvXG4gICAgICogIGBvdGhlcmAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAc2VlIF8uZ3RlXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubHRlKDEsIDMpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8ubHRlKDMsIDMpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8ubHRlKDMsIDEpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGx0ZSA9IGNyZWF0ZVJlbGF0aW9uYWxPcGVyYXRpb24oZnVuY3Rpb24odmFsdWUsIG90aGVyKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPD0gb3RoZXI7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGFuIGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY29udmVydGVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRvQXJyYXkoeyAnYSc6IDEsICdiJzogMiB9KTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIF8udG9BcnJheSgnYWJjJyk7XG4gICAgICogLy8gPT4gWydhJywgJ2InLCAnYyddXG4gICAgICpcbiAgICAgKiBfLnRvQXJyYXkoMSk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKlxuICAgICAqIF8udG9BcnJheShudWxsKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvQXJyYXkodmFsdWUpIHtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKGlzQXJyYXlMaWtlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gaXNTdHJpbmcodmFsdWUpID8gc3RyaW5nVG9BcnJheSh2YWx1ZSkgOiBjb3B5QXJyYXkodmFsdWUpO1xuICAgICAgfVxuICAgICAgaWYgKHN5bUl0ZXJhdG9yICYmIHZhbHVlW3N5bUl0ZXJhdG9yXSkge1xuICAgICAgICByZXR1cm4gaXRlcmF0b3JUb0FycmF5KHZhbHVlW3N5bUl0ZXJhdG9yXSgpKTtcbiAgICAgIH1cbiAgICAgIHZhciB0YWcgPSBnZXRUYWcodmFsdWUpLFxuICAgICAgICAgIGZ1bmMgPSB0YWcgPT0gbWFwVGFnID8gbWFwVG9BcnJheSA6ICh0YWcgPT0gc2V0VGFnID8gc2V0VG9BcnJheSA6IHZhbHVlcyk7XG5cbiAgICAgIHJldHVybiBmdW5jKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgZmluaXRlIG51bWJlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEyLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29udmVydGVkIG51bWJlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50b0Zpbml0ZSgzLjIpO1xuICAgICAqIC8vID0+IDMuMlxuICAgICAqXG4gICAgICogXy50b0Zpbml0ZShOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiA1ZS0zMjRcbiAgICAgKlxuICAgICAqIF8udG9GaW5pdGUoSW5maW5pdHkpO1xuICAgICAqIC8vID0+IDEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4XG4gICAgICpcbiAgICAgKiBfLnRvRmluaXRlKCczLjInKTtcbiAgICAgKiAvLyA9PiAzLjJcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b0Zpbml0ZSh2YWx1ZSkge1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IDAgPyB2YWx1ZSA6IDA7XG4gICAgICB9XG4gICAgICB2YWx1ZSA9IHRvTnVtYmVyKHZhbHVlKTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gSU5GSU5JVFkgfHwgdmFsdWUgPT09IC1JTkZJTklUWSkge1xuICAgICAgICB2YXIgc2lnbiA9ICh2YWx1ZSA8IDAgPyAtMSA6IDEpO1xuICAgICAgICByZXR1cm4gc2lnbiAqIE1BWF9JTlRFR0VSO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlID09PSB2YWx1ZSA/IHZhbHVlIDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGFuIGludGVnZXIuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgbG9vc2VseSBiYXNlZCBvblxuICAgICAqIFtgVG9JbnRlZ2VyYF0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRvaW50ZWdlcikuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29udmVydGVkIGludGVnZXIuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9JbnRlZ2VyKDMuMik7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogXy50b0ludGVnZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gICAgICogLy8gPT4gMFxuICAgICAqXG4gICAgICogXy50b0ludGVnZXIoSW5maW5pdHkpO1xuICAgICAqIC8vID0+IDEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4XG4gICAgICpcbiAgICAgKiBfLnRvSW50ZWdlcignMy4yJyk7XG4gICAgICogLy8gPT4gM1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvSW50ZWdlcih2YWx1ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IHRvRmluaXRlKHZhbHVlKSxcbiAgICAgICAgICByZW1haW5kZXIgPSByZXN1bHQgJSAxO1xuXG4gICAgICByZXR1cm4gcmVzdWx0ID09PSByZXN1bHQgPyAocmVtYWluZGVyID8gcmVzdWx0IC0gcmVtYWluZGVyIDogcmVzdWx0KSA6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhbiBpbnRlZ2VyIHN1aXRhYmxlIGZvciB1c2UgYXMgdGhlIGxlbmd0aCBvZiBhblxuICAgICAqIGFycmF5LWxpa2Ugb2JqZWN0LlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGJhc2VkIG9uXG4gICAgICogW2BUb0xlbmd0aGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRvbGVuZ3RoKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgaW50ZWdlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50b0xlbmd0aCgzLjIpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8udG9MZW5ndGgoTnVtYmVyLk1JTl9WQUxVRSk7XG4gICAgICogLy8gPT4gMFxuICAgICAqXG4gICAgICogXy50b0xlbmd0aChJbmZpbml0eSk7XG4gICAgICogLy8gPT4gNDI5NDk2NzI5NVxuICAgICAqXG4gICAgICogXy50b0xlbmd0aCgnMy4yJyk7XG4gICAgICogLy8gPT4gM1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvTGVuZ3RoKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPyBiYXNlQ2xhbXAodG9JbnRlZ2VyKHZhbHVlKSwgMCwgTUFYX0FSUkFZX0xFTkdUSCkgOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBudW1iZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRvTnVtYmVyKDMuMik7XG4gICAgICogLy8gPT4gMy4yXG4gICAgICpcbiAgICAgKiBfLnRvTnVtYmVyKE51bWJlci5NSU5fVkFMVUUpO1xuICAgICAqIC8vID0+IDVlLTMyNFxuICAgICAqXG4gICAgICogXy50b051bWJlcihJbmZpbml0eSk7XG4gICAgICogLy8gPT4gSW5maW5pdHlcbiAgICAgKlxuICAgICAqIF8udG9OdW1iZXIoJzMuMicpO1xuICAgICAqIC8vID0+IDMuMlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvTnVtYmVyKHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIE5BTjtcbiAgICAgIH1cbiAgICAgIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgdmFyIG90aGVyID0gdHlwZW9mIHZhbHVlLnZhbHVlT2YgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAgICAgICB2YWx1ZSA9IGlzT2JqZWN0KG90aGVyKSA/IChvdGhlciArICcnKSA6IG90aGVyO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IDAgPyB2YWx1ZSA6ICt2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZShyZVRyaW0sICcnKTtcbiAgICAgIHZhciBpc0JpbmFyeSA9IHJlSXNCaW5hcnkudGVzdCh2YWx1ZSk7XG4gICAgICByZXR1cm4gKGlzQmluYXJ5IHx8IHJlSXNPY3RhbC50ZXN0KHZhbHVlKSlcbiAgICAgICAgPyBmcmVlUGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIGlzQmluYXJ5ID8gMiA6IDgpXG4gICAgICAgIDogKHJlSXNCYWRIZXgudGVzdCh2YWx1ZSkgPyBOQU4gOiArdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBwbGFpbiBvYmplY3QgZmxhdHRlbmluZyBpbmhlcml0ZWQgZW51bWVyYWJsZSBzdHJpbmdcbiAgICAgKiBrZXllZCBwcm9wZXJ0aWVzIG9mIGB2YWx1ZWAgdG8gb3duIHByb3BlcnRpZXMgb2YgdGhlIHBsYWluIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgcGxhaW4gb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmFzc2lnbih7ICdhJzogMSB9LCBuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyIH1cbiAgICAgKlxuICAgICAqIF8uYXNzaWduKHsgJ2EnOiAxIH0sIF8udG9QbGFpbk9iamVjdChuZXcgRm9vKSk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiwgJ2MnOiAzIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b1BsYWluT2JqZWN0KHZhbHVlKSB7XG4gICAgICByZXR1cm4gY29weU9iamVjdCh2YWx1ZSwga2V5c0luKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhIHNhZmUgaW50ZWdlci4gQSBzYWZlIGludGVnZXIgY2FuIGJlIGNvbXBhcmVkIGFuZFxuICAgICAqIHJlcHJlc2VudGVkIGNvcnJlY3RseS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgaW50ZWdlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50b1NhZmVJbnRlZ2VyKDMuMik7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogXy50b1NhZmVJbnRlZ2VyKE51bWJlci5NSU5fVkFMVUUpO1xuICAgICAqIC8vID0+IDBcbiAgICAgKlxuICAgICAqIF8udG9TYWZlSW50ZWdlcihJbmZpbml0eSk7XG4gICAgICogLy8gPT4gOTAwNzE5OTI1NDc0MDk5MVxuICAgICAqXG4gICAgICogXy50b1NhZmVJbnRlZ2VyKCczLjInKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9TYWZlSW50ZWdlcih2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgID8gYmFzZUNsYW1wKHRvSW50ZWdlcih2YWx1ZSksIC1NQVhfU0FGRV9JTlRFR0VSLCBNQVhfU0FGRV9JTlRFR0VSKVxuICAgICAgICA6ICh2YWx1ZSA9PT0gMCA/IHZhbHVlIDogMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZy4gQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGZvciBgbnVsbGBcbiAgICAgKiBhbmQgYHVuZGVmaW5lZGAgdmFsdWVzLiBUaGUgc2lnbiBvZiBgLTBgIGlzIHByZXNlcnZlZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRvU3RyaW5nKG51bGwpO1xuICAgICAqIC8vID0+ICcnXG4gICAgICpcbiAgICAgKiBfLnRvU3RyaW5nKC0wKTtcbiAgICAgKiAvLyA9PiAnLTAnXG4gICAgICpcbiAgICAgKiBfLnRvU3RyaW5nKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gJzEsMiwzJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvU3RyaW5nKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/ICcnIDogYmFzZVRvU3RyaW5nKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBBc3NpZ25zIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIG9mIHNvdXJjZSBvYmplY3RzIHRvIHRoZVxuICAgICAqIGRlc3RpbmF0aW9uIG9iamVjdC4gU291cmNlIG9iamVjdHMgYXJlIGFwcGxpZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LlxuICAgICAqIFN1YnNlcXVlbnQgc291cmNlcyBvdmVyd3JpdGUgcHJvcGVydHkgYXNzaWdubWVudHMgb2YgcHJldmlvdXMgc291cmNlcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgIGFuZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gICAgICogW2BPYmplY3QuYXNzaWduYF0oaHR0cHM6Ly9tZG4uaW8vT2JqZWN0L2Fzc2lnbikuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gey4uLk9iamVjdH0gW3NvdXJjZXNdIFRoZSBzb3VyY2Ugb2JqZWN0cy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBzZWUgXy5hc3NpZ25JblxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEJhcigpIHtcbiAgICAgKiAgIHRoaXMuYyA9IDM7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5iID0gMjtcbiAgICAgKiBCYXIucHJvdG90eXBlLmQgPSA0O1xuICAgICAqXG4gICAgICogXy5hc3NpZ24oeyAnYSc6IDAgfSwgbmV3IEZvbywgbmV3IEJhcik7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdjJzogMyB9XG4gICAgICovXG4gICAgdmFyIGFzc2lnbiA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlKSB7XG4gICAgICBpZiAoaXNQcm90b3R5cGUoc291cmNlKSB8fCBpc0FycmF5TGlrZShzb3VyY2UpKSB7XG4gICAgICAgIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzKHNvdXJjZSksIG9iamVjdCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5hc3NpZ25gIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgb3duIGFuZFxuICAgICAqIGluaGVyaXRlZCBzb3VyY2UgcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGFsaWFzIGV4dGVuZFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uYXNzaWduXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogfVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gQmFyKCkge1xuICAgICAqICAgdGhpcy5jID0gMztcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmIgPSAyO1xuICAgICAqIEJhci5wcm90b3R5cGUuZCA9IDQ7XG4gICAgICpcbiAgICAgKiBfLmFzc2lnbkluKHsgJ2EnOiAwIH0sIG5ldyBGb28sIG5ldyBCYXIpO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMywgJ2QnOiA0IH1cbiAgICAgKi9cbiAgICB2YXIgYXNzaWduSW4gPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSkge1xuICAgICAgY29weU9iamVjdChzb3VyY2UsIGtleXNJbihzb3VyY2UpLCBvYmplY3QpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5hc3NpZ25JbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmBcbiAgICAgKiB3aGljaCBpcyBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIGFzc2lnbmVkIHZhbHVlcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnNcbiAgICAgKiBgdW5kZWZpbmVkYCwgYXNzaWdubWVudCBpcyBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYFxuICAgICAqIGlzIGludm9rZWQgd2l0aCBmaXZlIGFyZ3VtZW50czogKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBhbGlhcyBleHRlbmRXaXRoXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gey4uLk9iamVjdH0gc291cmNlcyBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmFzc2lnbldpdGhcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUpIHtcbiAgICAgKiAgIHJldHVybiBfLmlzVW5kZWZpbmVkKG9ialZhbHVlKSA/IHNyY1ZhbHVlIDogb2JqVmFsdWU7XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGRlZmF1bHRzID0gXy5wYXJ0aWFsUmlnaHQoXy5hc3NpZ25JbldpdGgsIGN1c3RvbWl6ZXIpO1xuICAgICAqXG4gICAgICogZGVmYXVsdHMoeyAnYSc6IDEgfSwgeyAnYic6IDIgfSwgeyAnYSc6IDMgfSk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gICAgICovXG4gICAgdmFyIGFzc2lnbkluV2l0aCA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcikge1xuICAgICAgY29weU9iamVjdChzb3VyY2UsIGtleXNJbihzb3VyY2UpLCBvYmplY3QsIGN1c3RvbWl6ZXIpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5hc3NpZ25gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgXG4gICAgICogd2hpY2ggaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBhc3NpZ25lZCB2YWx1ZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zXG4gICAgICogYHVuZGVmaW5lZGAsIGFzc2lnbm1lbnQgaXMgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmBcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggZml2ZSBhcmd1bWVudHM6IChvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBzb3VyY2VzIFRoZSBzb3VyY2Ugb2JqZWN0cy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uYXNzaWduSW5XaXRoXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XG4gICAgICogICByZXR1cm4gXy5pc1VuZGVmaW5lZChvYmpWYWx1ZSkgPyBzcmNWYWx1ZSA6IG9ialZhbHVlO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBkZWZhdWx0cyA9IF8ucGFydGlhbFJpZ2h0KF8uYXNzaWduV2l0aCwgY3VzdG9taXplcik7XG4gICAgICpcbiAgICAgKiBkZWZhdWx0cyh7ICdhJzogMSB9LCB7ICdiJzogMiB9LCB7ICdhJzogMyB9KTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyIH1cbiAgICAgKi9cbiAgICB2YXIgYXNzaWduV2l0aCA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcikge1xuICAgICAgY29weU9iamVjdChzb3VyY2UsIGtleXMoc291cmNlKSwgb2JqZWN0LCBjdXN0b21pemVyKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gYHBhdGhzYCBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwYXRoc10gVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBwaWNrZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDMgfSB9LCA0XSB9O1xuICAgICAqXG4gICAgICogXy5hdChvYmplY3QsIFsnYVswXS5iLmMnLCAnYVsxXSddKTtcbiAgICAgKiAvLyA9PiBbMywgNF1cbiAgICAgKi9cbiAgICB2YXIgYXQgPSBmbGF0UmVzdChiYXNlQXQpO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgdGhhdCBpbmhlcml0cyBmcm9tIHRoZSBgcHJvdG90eXBlYCBvYmplY3QuIElmIGFcbiAgICAgKiBgcHJvcGVydGllc2Agb2JqZWN0IGlzIGdpdmVuLCBpdHMgb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXNcbiAgICAgKiBhcmUgYXNzaWduZWQgdG8gdGhlIGNyZWF0ZWQgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMy4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBwcm90b3R5cGUgVGhlIG9iamVjdCB0byBpbmhlcml0IGZyb20uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtwcm9wZXJ0aWVzXSBUaGUgcHJvcGVydGllcyB0byBhc3NpZ24gdG8gdGhlIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBTaGFwZSgpIHtcbiAgICAgKiAgIHRoaXMueCA9IDA7XG4gICAgICogICB0aGlzLnkgPSAwO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIENpcmNsZSgpIHtcbiAgICAgKiAgIFNoYXBlLmNhbGwodGhpcyk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogQ2lyY2xlLnByb3RvdHlwZSA9IF8uY3JlYXRlKFNoYXBlLnByb3RvdHlwZSwge1xuICAgICAqICAgJ2NvbnN0cnVjdG9yJzogQ2lyY2xlXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiB2YXIgY2lyY2xlID0gbmV3IENpcmNsZTtcbiAgICAgKiBjaXJjbGUgaW5zdGFuY2VvZiBDaXJjbGU7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogY2lyY2xlIGluc3RhbmNlb2YgU2hhcGU7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZShwcm90b3R5cGUsIHByb3BlcnRpZXMpIHtcbiAgICAgIHZhciByZXN1bHQgPSBiYXNlQ3JlYXRlKHByb3RvdHlwZSk7XG4gICAgICByZXR1cm4gcHJvcGVydGllcyA9PSBudWxsID8gcmVzdWx0IDogYmFzZUFzc2lnbihyZXN1bHQsIHByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFzc2lnbnMgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBvZiBzb3VyY2VcbiAgICAgKiBvYmplY3RzIHRvIHRoZSBkZXN0aW5hdGlvbiBvYmplY3QgZm9yIGFsbCBkZXN0aW5hdGlvbiBwcm9wZXJ0aWVzIHRoYXRcbiAgICAgKiByZXNvbHZlIHRvIGB1bmRlZmluZWRgLiBTb3VyY2Ugb2JqZWN0cyBhcmUgYXBwbGllZCBmcm9tIGxlZnQgdG8gcmlnaHQuXG4gICAgICogT25jZSBhIHByb3BlcnR5IGlzIHNldCwgYWRkaXRpb25hbCB2YWx1ZXMgb2YgdGhlIHNhbWUgcHJvcGVydHkgYXJlIGlnbm9yZWQuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uZGVmYXVsdHNEZWVwXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVmYXVsdHMoeyAnYSc6IDEgfSwgeyAnYic6IDIgfSwgeyAnYSc6IDMgfSk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gICAgICovXG4gICAgdmFyIGRlZmF1bHRzID0gYmFzZVJlc3QoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2VzKSB7XG4gICAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcblxuICAgICAgdmFyIGluZGV4ID0gLTE7XG4gICAgICB2YXIgbGVuZ3RoID0gc291cmNlcy5sZW5ndGg7XG4gICAgICB2YXIgZ3VhcmQgPSBsZW5ndGggPiAyID8gc291cmNlc1syXSA6IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgICAgICBsZW5ndGggPSAxO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgc291cmNlID0gc291cmNlc1tpbmRleF07XG4gICAgICAgIHZhciBwcm9wcyA9IGtleXNJbihzb3VyY2UpO1xuICAgICAgICB2YXIgcHJvcHNJbmRleCA9IC0xO1xuICAgICAgICB2YXIgcHJvcHNMZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKCsrcHJvcHNJbmRleCA8IHByb3BzTGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIGtleSA9IHByb3BzW3Byb3BzSW5kZXhdO1xuICAgICAgICAgIHZhciB2YWx1ZSA9IG9iamVjdFtrZXldO1xuXG4gICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgKGVxKHZhbHVlLCBvYmplY3RQcm90b1trZXldKSAmJiAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSB7XG4gICAgICAgICAgICBvYmplY3Rba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5kZWZhdWx0c2AgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgYXNzaWduc1xuICAgICAqIGRlZmF1bHQgcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMTAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uZGVmYXVsdHNcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kZWZhdWx0c0RlZXAoeyAnYSc6IHsgJ2InOiAyIH0gfSwgeyAnYSc6IHsgJ2InOiAxLCAnYyc6IDMgfSB9KTtcbiAgICAgKiAvLyA9PiB7ICdhJzogeyAnYic6IDIsICdjJzogMyB9IH1cbiAgICAgKi9cbiAgICB2YXIgZGVmYXVsdHNEZWVwID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xuICAgICAgYXJncy5wdXNoKHVuZGVmaW5lZCwgY3VzdG9tRGVmYXVsdHNNZXJnZSk7XG4gICAgICByZXR1cm4gYXBwbHkobWVyZ2VXaXRoLCB1bmRlZmluZWQsIGFyZ3MpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5maW5kYCBleGNlcHQgdGhhdCBpdCByZXR1cm5zIHRoZSBrZXkgb2YgdGhlIGZpcnN0XG4gICAgICogZWxlbWVudCBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgaW5zdGVhZCBvZiB0aGUgZWxlbWVudCBpdHNlbGYuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMS4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd8dW5kZWZpbmVkfSBSZXR1cm5zIHRoZSBrZXkgb2YgdGhlIG1hdGNoZWQgZWxlbWVudCxcbiAgICAgKiAgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0ge1xuICAgICAqICAgJ2Jhcm5leSc6ICB7ICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgICdmcmVkJzogICAgeyAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgJ3BlYmJsZXMnOiB7ICdhZ2UnOiAxLCAgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIH07XG4gICAgICpcbiAgICAgKiBfLmZpbmRLZXkodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8uYWdlIDwgNDA7IH0pO1xuICAgICAqIC8vID0+ICdiYXJuZXknIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZEtleSh1c2VycywgeyAnYWdlJzogMSwgJ2FjdGl2ZSc6IHRydWUgfSk7XG4gICAgICogLy8gPT4gJ3BlYmJsZXMnXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kS2V5KHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gJ2ZyZWQnXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRLZXkodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiAnYmFybmV5J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZpbmRLZXkob2JqZWN0LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiBiYXNlRmluZEtleShvYmplY3QsIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGJhc2VGb3JPd24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZEtleWAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGEgY29sbGVjdGlvbiBpbiB0aGUgb3Bwb3NpdGUgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd8dW5kZWZpbmVkfSBSZXR1cm5zIHRoZSBrZXkgb2YgdGhlIG1hdGNoZWQgZWxlbWVudCxcbiAgICAgKiAgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0ge1xuICAgICAqICAgJ2Jhcm5leSc6ICB7ICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgICdmcmVkJzogICAgeyAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgJ3BlYmJsZXMnOiB7ICdhZ2UnOiAxLCAgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIH07XG4gICAgICpcbiAgICAgKiBfLmZpbmRMYXN0S2V5KHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLmFnZSA8IDQwOyB9KTtcbiAgICAgKiAvLyA9PiByZXR1cm5zICdwZWJibGVzJyBhc3N1bWluZyBgXy5maW5kS2V5YCByZXR1cm5zICdiYXJuZXknXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZExhc3RLZXkodXNlcnMsIHsgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9KTtcbiAgICAgKiAvLyA9PiAnYmFybmV5J1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZExhc3RLZXkodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiAnZnJlZCdcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZExhc3RLZXkodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiAncGViYmxlcydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaW5kTGFzdEtleShvYmplY3QsIHByZWRpY2F0ZSkge1xuICAgICAgcmV0dXJuIGJhc2VGaW5kS2V5KG9iamVjdCwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgYmFzZUZvck93blJpZ2h0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyBvdmVyIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2YgYW5cbiAgICAgKiBvYmplY3QgYW5kIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgZWFjaCBwcm9wZXJ0eS4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBrZXksIG9iamVjdCkuIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdFxuICAgICAqIGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMy4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uZm9ySW5SaWdodFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5mb3JJbihuZXcgRm9vLCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICogICBjb25zb2xlLmxvZyhrZXkpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IExvZ3MgJ2EnLCAnYicsIHRoZW4gJ2MnIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZvckluKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbFxuICAgICAgICA/IG9iamVjdFxuICAgICAgICA6IGJhc2VGb3Iob2JqZWN0LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMyksIGtleXNJbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5mb3JJbmAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBwcm9wZXJ0aWVzIG9mXG4gICAgICogYG9iamVjdGAgaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uZm9ySW5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8uZm9ySW5SaWdodChuZXcgRm9vLCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICogICBjb25zb2xlLmxvZyhrZXkpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IExvZ3MgJ2MnLCAnYicsIHRoZW4gJ2EnIGFzc3VtaW5nIGBfLmZvckluYCBsb2dzICdhJywgJ2InLCB0aGVuICdjJy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JJblJpZ2h0KG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbFxuICAgICAgICA/IG9iamVjdFxuICAgICAgICA6IGJhc2VGb3JSaWdodChvYmplY3QsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAzKSwga2V5c0luKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyBvdmVyIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdCBhbmRcbiAgICAgKiBpbnZva2VzIGBpdGVyYXRlZWAgZm9yIGVhY2ggcHJvcGVydHkuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggdGhyZWVcbiAgICAgKiBhcmd1bWVudHM6ICh2YWx1ZSwga2V5LCBvYmplY3QpLiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uXG4gICAgICogZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjMuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmZvck93blJpZ2h0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmZvck93bihuZXcgRm9vLCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICogICBjb25zb2xlLmxvZyhrZXkpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IExvZ3MgJ2EnIHRoZW4gJ2InIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZvck93bihvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ICYmIGJhc2VGb3JPd24ob2JqZWN0LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZm9yT3duYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIHByb3BlcnRpZXMgb2ZcbiAgICAgKiBgb2JqZWN0YCBpbiB0aGUgb3Bwb3NpdGUgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBzZWUgXy5mb3JPd25cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8uZm9yT3duUmlnaHQobmV3IEZvbywgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgY29uc29sZS5sb2coa2V5KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBMb2dzICdiJyB0aGVuICdhJyBhc3N1bWluZyBgXy5mb3JPd25gIGxvZ3MgJ2EnIHRoZW4gJ2InLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZvck93blJpZ2h0KG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBvYmplY3QgJiYgYmFzZUZvck93blJpZ2h0KG9iamVjdCwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGZ1bmN0aW9uIHByb3BlcnR5IG5hbWVzIGZyb20gb3duIGVudW1lcmFibGUgcHJvcGVydGllc1xuICAgICAqIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgZnVuY3Rpb24gbmFtZXMuXG4gICAgICogQHNlZSBfLmZ1bmN0aW9uc0luXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IF8uY29uc3RhbnQoJ2EnKTtcbiAgICAgKiAgIHRoaXMuYiA9IF8uY29uc3RhbnQoJ2InKTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSBfLmNvbnN0YW50KCdjJyk7XG4gICAgICpcbiAgICAgKiBfLmZ1bmN0aW9ucyhuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYiddXG4gICAgICovXG4gICAgZnVuY3Rpb24gZnVuY3Rpb25zKG9iamVjdCkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gW10gOiBiYXNlRnVuY3Rpb25zKG9iamVjdCwga2V5cyhvYmplY3QpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGZ1bmN0aW9uIHByb3BlcnR5IG5hbWVzIGZyb20gb3duIGFuZCBpbmhlcml0ZWRcbiAgICAgKiBlbnVtZXJhYmxlIHByb3BlcnRpZXMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBuYW1lcy5cbiAgICAgKiBAc2VlIF8uZnVuY3Rpb25zXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IF8uY29uc3RhbnQoJ2EnKTtcbiAgICAgKiAgIHRoaXMuYiA9IF8uY29uc3RhbnQoJ2InKTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSBfLmNvbnN0YW50KCdjJyk7XG4gICAgICpcbiAgICAgKiBfLmZ1bmN0aW9uc0luKG5ldyBGb28pO1xuICAgICAqIC8vID0+IFsnYScsICdiJywgJ2MnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZ1bmN0aW9uc0luKG9iamVjdCkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gW10gOiBiYXNlRnVuY3Rpb25zKG9iamVjdCwga2V5c0luKG9iamVjdCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHZhbHVlIGF0IGBwYXRoYCBvZiBgb2JqZWN0YC4gSWYgdGhlIHJlc29sdmVkIHZhbHVlIGlzXG4gICAgICogYHVuZGVmaW5lZGAsIHRoZSBgZGVmYXVsdFZhbHVlYCBpcyByZXR1cm5lZCBpbiBpdHMgcGxhY2UuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy43LjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAgICogQHBhcmFtIHsqfSBbZGVmYXVsdFZhbHVlXSBUaGUgdmFsdWUgcmV0dXJuZWQgZm9yIGB1bmRlZmluZWRgIHJlc29sdmVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogMyB9IH1dIH07XG4gICAgICpcbiAgICAgKiBfLmdldChvYmplY3QsICdhWzBdLmIuYycpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8uZ2V0KG9iamVjdCwgWydhJywgJzAnLCAnYicsICdjJ10pO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8uZ2V0KG9iamVjdCwgJ2EuYi5jJywgJ2RlZmF1bHQnKTtcbiAgICAgKiAvLyA9PiAnZGVmYXVsdCdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXQob2JqZWN0LCBwYXRoLCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHZhciByZXN1bHQgPSBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IGJhc2VHZXQob2JqZWN0LCBwYXRoKTtcbiAgICAgIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRWYWx1ZSA6IHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHBhdGhgIGlzIGEgZGlyZWN0IHByb3BlcnR5IG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHBhdGhgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IHsgJ2InOiAyIH0gfTtcbiAgICAgKiB2YXIgb3RoZXIgPSBfLmNyZWF0ZSh7ICdhJzogXy5jcmVhdGUoeyAnYic6IDIgfSkgfSk7XG4gICAgICpcbiAgICAgKiBfLmhhcyhvYmplY3QsICdhJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5oYXMob2JqZWN0LCAnYS5iJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5oYXMob2JqZWN0LCBbJ2EnLCAnYiddKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmhhcyhvdGhlciwgJ2EnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhhcyhvYmplY3QsIHBhdGgpIHtcbiAgICAgIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBoYXNQYXRoKG9iamVjdCwgcGF0aCwgYmFzZUhhcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBwYXRoYCBpcyBhIGRpcmVjdCBvciBpbmhlcml0ZWQgcHJvcGVydHkgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgcGF0aGAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSBfLmNyZWF0ZSh7ICdhJzogXy5jcmVhdGUoeyAnYic6IDIgfSkgfSk7XG4gICAgICpcbiAgICAgKiBfLmhhc0luKG9iamVjdCwgJ2EnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmhhc0luKG9iamVjdCwgJ2EuYicpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaGFzSW4ob2JqZWN0LCBbJ2EnLCAnYiddKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmhhc0luKG9iamVjdCwgJ2InKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhhc0luKG9iamVjdCwgcGF0aCkge1xuICAgICAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGhhc1BhdGgob2JqZWN0LCBwYXRoLCBiYXNlSGFzSW4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIHRoZSBpbnZlcnRlZCBrZXlzIGFuZCB2YWx1ZXMgb2YgYG9iamVjdGAuXG4gICAgICogSWYgYG9iamVjdGAgY29udGFpbnMgZHVwbGljYXRlIHZhbHVlcywgc3Vic2VxdWVudCB2YWx1ZXMgb3ZlcndyaXRlXG4gICAgICogcHJvcGVydHkgYXNzaWdubWVudHMgb2YgcHJldmlvdXMgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuNy4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnZlcnQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGludmVydGVkIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMSB9O1xuICAgICAqXG4gICAgICogXy5pbnZlcnQob2JqZWN0KTtcbiAgICAgKiAvLyA9PiB7ICcxJzogJ2MnLCAnMic6ICdiJyB9XG4gICAgICovXG4gICAgdmFyIGludmVydCA9IGNyZWF0ZUludmVydGVyKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiZcbiAgICAgICAgICB0eXBlb2YgdmFsdWUudG9TdHJpbmcgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB2YWx1ZSA9IG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXN1bHRbdmFsdWVdID0ga2V5O1xuICAgIH0sIGNvbnN0YW50KGlkZW50aXR5KSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmludmVydGAgZXhjZXB0IHRoYXQgdGhlIGludmVydGVkIG9iamVjdCBpcyBnZW5lcmF0ZWRcbiAgICAgKiBmcm9tIHRoZSByZXN1bHRzIG9mIHJ1bm5pbmcgZWFjaCBlbGVtZW50IG9mIGBvYmplY3RgIHRocnUgYGl0ZXJhdGVlYC4gVGhlXG4gICAgICogY29ycmVzcG9uZGluZyBpbnZlcnRlZCB2YWx1ZSBvZiBlYWNoIGludmVydGVkIGtleSBpcyBhbiBhcnJheSBvZiBrZXlzXG4gICAgICogcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgdGhlIGludmVydGVkIHZhbHVlLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZFxuICAgICAqIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMS4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnZlcnQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBpbnZlcnRlZCBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDEgfTtcbiAgICAgKlxuICAgICAqIF8uaW52ZXJ0Qnkob2JqZWN0KTtcbiAgICAgKiAvLyA9PiB7ICcxJzogWydhJywgJ2MnXSwgJzInOiBbJ2InXSB9XG4gICAgICpcbiAgICAgKiBfLmludmVydEJ5KG9iamVjdCwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgKiAgIHJldHVybiAnZ3JvdXAnICsgdmFsdWU7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4geyAnZ3JvdXAxJzogWydhJywgJ2MnXSwgJ2dyb3VwMic6IFsnYiddIH1cbiAgICAgKi9cbiAgICB2YXIgaW52ZXJ0QnkgPSBjcmVhdGVJbnZlcnRlcihmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmXG4gICAgICAgICAgdHlwZW9mIHZhbHVlLnRvU3RyaW5nICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdmFsdWUgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocmVzdWx0LCB2YWx1ZSkpIHtcbiAgICAgICAgcmVzdWx0W3ZhbHVlXS5wdXNoKGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHRbdmFsdWVdID0gW2tleV07XG4gICAgICB9XG4gICAgfSwgZ2V0SXRlcmF0ZWUpO1xuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyB0aGUgbWV0aG9kIGF0IGBwYXRoYCBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIG1ldGhvZCB0byBpbnZva2UuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgdGhlIG1ldGhvZCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGludm9rZWQgbWV0aG9kLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IFsxLCAyLCAzLCA0XSB9IH1dIH07XG4gICAgICpcbiAgICAgKiBfLmludm9rZShvYmplY3QsICdhWzBdLmIuYy5zbGljZScsIDEsIDMpO1xuICAgICAqIC8vID0+IFsyLCAzXVxuICAgICAqL1xuICAgIHZhciBpbnZva2UgPSBiYXNlUmVzdChiYXNlSW52b2tlKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuIFNlZSB0aGVcbiAgICAgKiBbRVMgc3BlY10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LmtleXMpXG4gICAgICogZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8ua2V5cyhuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYiddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICpcbiAgICAgKiBfLmtleXMoJ2hpJyk7XG4gICAgICogLy8gPT4gWycwJywgJzEnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGtleXMob2JqZWN0KSB7XG4gICAgICByZXR1cm4gaXNBcnJheUxpa2Uob2JqZWN0KSA/IGFycmF5TGlrZUtleXMob2JqZWN0KSA6IGJhc2VLZXlzKG9iamVjdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5rZXlzSW4obmV3IEZvbyk7XG4gICAgICogLy8gPT4gWydhJywgJ2InLCAnYyddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgZnVuY3Rpb24ga2V5c0luKG9iamVjdCkge1xuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCwgdHJ1ZSkgOiBiYXNlS2V5c0luKG9iamVjdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLm1hcFZhbHVlc2A7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYW4gb2JqZWN0IHdpdGggdGhlXG4gICAgICogc2FtZSB2YWx1ZXMgYXMgYG9iamVjdGAgYW5kIGtleXMgZ2VuZXJhdGVkIGJ5IHJ1bm5pbmcgZWFjaCBvd24gZW51bWVyYWJsZVxuICAgICAqIHN0cmluZyBrZXllZCBwcm9wZXJ0eSBvZiBgb2JqZWN0YCB0aHJ1IGBpdGVyYXRlZWAuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwga2V5LCBvYmplY3QpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuOC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBvYmplY3QuXG4gICAgICogQHNlZSBfLm1hcFZhbHVlc1xuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLm1hcEtleXMoeyAnYSc6IDEsICdiJzogMiB9LCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICogICByZXR1cm4ga2V5ICsgdmFsdWU7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4geyAnYTEnOiAxLCAnYjInOiAyIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXBLZXlzKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgIGl0ZXJhdGVlID0gZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpO1xuXG4gICAgICBiYXNlRm9yT3duKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShyZXN1bHQsIGl0ZXJhdGVlKHZhbHVlLCBrZXksIG9iamVjdCksIHZhbHVlKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCB3aXRoIHRoZSBzYW1lIGtleXMgYXMgYG9iamVjdGAgYW5kIHZhbHVlcyBnZW5lcmF0ZWRcbiAgICAgKiBieSBydW5uaW5nIGVhY2ggb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnR5IG9mIGBvYmplY3RgIHRocnVcbiAgICAgKiBgaXRlcmF0ZWVgLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czpcbiAgICAgKiAodmFsdWUsIGtleSwgb2JqZWN0KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjQuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgb2JqZWN0LlxuICAgICAqIEBzZWUgXy5tYXBLZXlzXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IHtcbiAgICAgKiAgICdmcmVkJzogICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FnZSc6IDQwIH0sXG4gICAgICogICAncGViYmxlcyc6IHsgJ3VzZXInOiAncGViYmxlcycsICdhZ2UnOiAxIH1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5tYXBWYWx1ZXModXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8uYWdlOyB9KTtcbiAgICAgKiAvLyA9PiB7ICdmcmVkJzogNDAsICdwZWJibGVzJzogMSB9IChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLm1hcFZhbHVlcyh1c2VycywgJ2FnZScpO1xuICAgICAqIC8vID0+IHsgJ2ZyZWQnOiA0MCwgJ3BlYmJsZXMnOiAxIH0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXBWYWx1ZXMob2JqZWN0LCBpdGVyYXRlZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgICAgaXRlcmF0ZWUgPSBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMyk7XG5cbiAgICAgIGJhc2VGb3JPd24ob2JqZWN0LCBmdW5jdGlvbih2YWx1ZSwga2V5LCBvYmplY3QpIHtcbiAgICAgICAgYmFzZUFzc2lnblZhbHVlKHJlc3VsdCwga2V5LCBpdGVyYXRlZSh2YWx1ZSwga2V5LCBvYmplY3QpKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmFzc2lnbmAgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgbWVyZ2VzIG93biBhbmRcbiAgICAgKiBpbmhlcml0ZWQgZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBvZiBzb3VyY2Ugb2JqZWN0cyBpbnRvIHRoZVxuICAgICAqIGRlc3RpbmF0aW9uIG9iamVjdC4gU291cmNlIHByb3BlcnRpZXMgdGhhdCByZXNvbHZlIHRvIGB1bmRlZmluZWRgIGFyZVxuICAgICAqIHNraXBwZWQgaWYgYSBkZXN0aW5hdGlvbiB2YWx1ZSBleGlzdHMuIEFycmF5IGFuZCBwbGFpbiBvYmplY3QgcHJvcGVydGllc1xuICAgICAqIGFyZSBtZXJnZWQgcmVjdXJzaXZlbHkuIE90aGVyIG9iamVjdHMgYW5kIHZhbHVlIHR5cGVzIGFyZSBvdmVycmlkZGVuIGJ5XG4gICAgICogYXNzaWdubWVudC4gU291cmNlIG9iamVjdHMgYXJlIGFwcGxpZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LiBTdWJzZXF1ZW50XG4gICAgICogc291cmNlcyBvdmVyd3JpdGUgcHJvcGVydHkgYXNzaWdubWVudHMgb2YgcHJldmlvdXMgc291cmNlcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuNS4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gey4uLk9iamVjdH0gW3NvdXJjZXNdIFRoZSBzb3VyY2Ugb2JqZWN0cy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0ge1xuICAgICAqICAgJ2EnOiBbeyAnYic6IDIgfSwgeyAnZCc6IDQgfV1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogdmFyIG90aGVyID0ge1xuICAgICAqICAgJ2EnOiBbeyAnYyc6IDMgfSwgeyAnZSc6IDUgfV1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5tZXJnZShvYmplY3QsIG90aGVyKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogW3sgJ2InOiAyLCAnYyc6IDMgfSwgeyAnZCc6IDQsICdlJzogNSB9XSB9XG4gICAgICovXG4gICAgdmFyIG1lcmdlID0gY3JlYXRlQXNzaWduZXIoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4KSB7XG4gICAgICBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4KTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ubWVyZ2VgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgIHdoaWNoXG4gICAgICogaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBtZXJnZWQgdmFsdWVzIG9mIHRoZSBkZXN0aW5hdGlvbiBhbmQgc291cmNlXG4gICAgICogcHJvcGVydGllcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGAsIG1lcmdpbmcgaXMgaGFuZGxlZCBieSB0aGVcbiAgICAgKiBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBpbnZva2VkIHdpdGggc2l4IGFyZ3VtZW50czpcbiAgICAgKiAob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlLCBzdGFjaykuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IHNvdXJjZXMgVGhlIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGN1c3RvbWl6ZXIgVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUpIHtcbiAgICAgKiAgIGlmIChfLmlzQXJyYXkob2JqVmFsdWUpKSB7XG4gICAgICogICAgIHJldHVybiBvYmpWYWx1ZS5jb25jYXQoc3JjVmFsdWUpO1xuICAgICAqICAgfVxuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogWzFdLCAnYic6IFsyXSB9O1xuICAgICAqIHZhciBvdGhlciA9IHsgJ2EnOiBbM10sICdiJzogWzRdIH07XG4gICAgICpcbiAgICAgKiBfLm1lcmdlV2l0aChvYmplY3QsIG90aGVyLCBjdXN0b21pemVyKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogWzEsIDNdLCAnYic6IFsyLCA0XSB9XG4gICAgICovXG4gICAgdmFyIG1lcmdlV2l0aCA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcikge1xuICAgICAgYmFzZU1lcmdlKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcik7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8ucGlja2A7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIHRoZVxuICAgICAqIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydHkgcGF0aHMgb2YgYG9iamVjdGAgdGhhdCBhcmUgbm90IG9taXR0ZWQuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgY29uc2lkZXJhYmx5IHNsb3dlciB0aGFuIGBfLnBpY2tgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi4oc3RyaW5nfHN0cmluZ1tdKX0gW3BhdGhzXSBUaGUgcHJvcGVydHkgcGF0aHMgdG8gb21pdC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogJzInLCAnYyc6IDMgfTtcbiAgICAgKlxuICAgICAqIF8ub21pdChvYmplY3QsIFsnYScsICdjJ10pO1xuICAgICAqIC8vID0+IHsgJ2InOiAnMicgfVxuICAgICAqL1xuICAgIHZhciBvbWl0ID0gZmxhdFJlc3QoZnVuY3Rpb24ob2JqZWN0LCBwYXRocykge1xuICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICB2YXIgaXNEZWVwID0gZmFsc2U7XG4gICAgICBwYXRocyA9IGFycmF5TWFwKHBhdGhzLCBmdW5jdGlvbihwYXRoKSB7XG4gICAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuICAgICAgICBpc0RlZXAgfHwgKGlzRGVlcCA9IHBhdGgubGVuZ3RoID4gMSk7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgfSk7XG4gICAgICBjb3B5T2JqZWN0KG9iamVjdCwgZ2V0QWxsS2V5c0luKG9iamVjdCksIHJlc3VsdCk7XG4gICAgICBpZiAoaXNEZWVwKSB7XG4gICAgICAgIHJlc3VsdCA9IGJhc2VDbG9uZShyZXN1bHQsIENMT05FX0RFRVBfRkxBRyB8IENMT05FX0ZMQVRfRkxBRyB8IENMT05FX1NZTUJPTFNfRkxBRywgY3VzdG9tT21pdENsb25lKTtcbiAgICAgIH1cbiAgICAgIHZhciBsZW5ndGggPSBwYXRocy5sZW5ndGg7XG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgYmFzZVVuc2V0KHJlc3VsdCwgcGF0aHNbbGVuZ3RoXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLnBpY2tCeWA7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mXG4gICAgICogdGhlIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2YgYG9iamVjdGAgdGhhdFxuICAgICAqIGBwcmVkaWNhdGVgIGRvZXNuJ3QgcmV0dXJuIHRydXRoeSBmb3IuIFRoZSBwcmVkaWNhdGUgaXMgaW52b2tlZCB3aXRoIHR3b1xuICAgICAqIGFyZ3VtZW50czogKHZhbHVlLCBrZXkpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgcHJvcGVydHkuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6ICcyJywgJ2MnOiAzIH07XG4gICAgICpcbiAgICAgKiBfLm9taXRCeShvYmplY3QsIF8uaXNOdW1iZXIpO1xuICAgICAqIC8vID0+IHsgJ2InOiAnMicgfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG9taXRCeShvYmplY3QsIHByZWRpY2F0ZSkge1xuICAgICAgcmV0dXJuIHBpY2tCeShvYmplY3QsIG5lZ2F0ZShnZXRJdGVyYXRlZShwcmVkaWNhdGUpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2YgdGhlIHBpY2tlZCBgb2JqZWN0YCBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi4oc3RyaW5nfHN0cmluZ1tdKX0gW3BhdGhzXSBUaGUgcHJvcGVydHkgcGF0aHMgdG8gcGljay5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogJzInLCAnYyc6IDMgfTtcbiAgICAgKlxuICAgICAqIF8ucGljayhvYmplY3QsIFsnYScsICdjJ10pO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYyc6IDMgfVxuICAgICAqL1xuICAgIHZhciBwaWNrID0gZmxhdFJlc3QoZnVuY3Rpb24ob2JqZWN0LCBwYXRocykge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8ge30gOiBiYXNlUGljayhvYmplY3QsIHBhdGhzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIHRoZSBgb2JqZWN0YCBwcm9wZXJ0aWVzIGBwcmVkaWNhdGVgIHJldHVybnNcbiAgICAgKiB0cnV0aHkgZm9yLiBUaGUgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnRzOiAodmFsdWUsIGtleSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBwcm9wZXJ0eS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogJzInLCAnYyc6IDMgfTtcbiAgICAgKlxuICAgICAqIF8ucGlja0J5KG9iamVjdCwgXy5pc051bWJlcik7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdjJzogMyB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gcGlja0J5KG9iamVjdCwgcHJlZGljYXRlKSB7XG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgdmFyIHByb3BzID0gYXJyYXlNYXAoZ2V0QWxsS2V5c0luKG9iamVjdCksIGZ1bmN0aW9uKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIFtwcm9wXTtcbiAgICAgIH0pO1xuICAgICAgcHJlZGljYXRlID0gZ2V0SXRlcmF0ZWUocHJlZGljYXRlKTtcbiAgICAgIHJldHVybiBiYXNlUGlja0J5KG9iamVjdCwgcHJvcHMsIGZ1bmN0aW9uKHZhbHVlLCBwYXRoKSB7XG4gICAgICAgIHJldHVybiBwcmVkaWNhdGUodmFsdWUsIHBhdGhbMF0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5nZXRgIGV4Y2VwdCB0aGF0IGlmIHRoZSByZXNvbHZlZCB2YWx1ZSBpcyBhXG4gICAgICogZnVuY3Rpb24gaXQncyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIGl0cyBwYXJlbnQgb2JqZWN0IGFuZFxuICAgICAqIGl0cyByZXN1bHQgaXMgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byByZXNvbHZlLlxuICAgICAqIEBwYXJhbSB7Kn0gW2RlZmF1bHRWYWx1ZV0gVGhlIHZhbHVlIHJldHVybmVkIGZvciBgdW5kZWZpbmVkYCByZXNvbHZlZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYzEnOiAzLCAnYzInOiBfLmNvbnN0YW50KDQpIH0gfV0gfTtcbiAgICAgKlxuICAgICAqIF8ucmVzdWx0KG9iamVjdCwgJ2FbMF0uYi5jMScpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8ucmVzdWx0KG9iamVjdCwgJ2FbMF0uYi5jMicpO1xuICAgICAqIC8vID0+IDRcbiAgICAgKlxuICAgICAqIF8ucmVzdWx0KG9iamVjdCwgJ2FbMF0uYi5jMycsICdkZWZhdWx0Jyk7XG4gICAgICogLy8gPT4gJ2RlZmF1bHQnXG4gICAgICpcbiAgICAgKiBfLnJlc3VsdChvYmplY3QsICdhWzBdLmIuYzMnLCBfLmNvbnN0YW50KCdkZWZhdWx0JykpO1xuICAgICAqIC8vID0+ICdkZWZhdWx0J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlc3VsdChvYmplY3QsIHBhdGgsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIGxvb3AgaXMgZW50ZXJlZCB3aGVuIHBhdGggaXMgZW1wdHkuXG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICBsZW5ndGggPSAxO1xuICAgICAgICBvYmplY3QgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdFt0b0tleShwYXRoW2luZGV4XSldO1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGluZGV4ID0gbGVuZ3RoO1xuICAgICAgICAgIHZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIG9iamVjdCA9IGlzRnVuY3Rpb24odmFsdWUpID8gdmFsdWUuY2FsbChvYmplY3QpIDogdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHZhbHVlIGF0IGBwYXRoYCBvZiBgb2JqZWN0YC4gSWYgYSBwb3J0aW9uIG9mIGBwYXRoYCBkb2Vzbid0IGV4aXN0LFxuICAgICAqIGl0J3MgY3JlYXRlZC4gQXJyYXlzIGFyZSBjcmVhdGVkIGZvciBtaXNzaW5nIGluZGV4IHByb3BlcnRpZXMgd2hpbGUgb2JqZWN0c1xuICAgICAqIGFyZSBjcmVhdGVkIGZvciBhbGwgb3RoZXIgbWlzc2luZyBwcm9wZXJ0aWVzLiBVc2UgYF8uc2V0V2l0aGAgdG8gY3VzdG9taXplXG4gICAgICogYHBhdGhgIGNyZWF0aW9uLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy43LjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDMgfSB9XSB9O1xuICAgICAqXG4gICAgICogXy5zZXQob2JqZWN0LCAnYVswXS5iLmMnLCA0KTtcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QuYVswXS5iLmMpO1xuICAgICAqIC8vID0+IDRcbiAgICAgKlxuICAgICAqIF8uc2V0KG9iamVjdCwgWyd4JywgJzAnLCAneScsICd6J10sIDUpO1xuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdC54WzBdLnkueik7XG4gICAgICogLy8gPT4gNVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNldChvYmplY3QsIHBhdGgsIHZhbHVlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlU2V0KG9iamVjdCwgcGF0aCwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc2V0YCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgdG8gcHJvZHVjZSB0aGUgb2JqZWN0cyBvZiBgcGF0aGAuICBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYFxuICAgICAqIHBhdGggY3JlYXRpb24gaXMgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgaW52b2tlZFxuICAgICAqIHdpdGggdGhyZWUgYXJndW1lbnRzOiAobnNWYWx1ZSwga2V5LCBuc09iamVjdCkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXQuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0ge307XG4gICAgICpcbiAgICAgKiBfLnNldFdpdGgob2JqZWN0LCAnWzBdWzFdJywgJ2EnLCBPYmplY3QpO1xuICAgICAqIC8vID0+IHsgJzAnOiB7ICcxJzogJ2EnIH0gfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNldFdpdGgob2JqZWN0LCBwYXRoLCB2YWx1ZSwgY3VzdG9taXplcikge1xuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogYmFzZVNldChvYmplY3QsIHBhdGgsIHZhbHVlLCBjdXN0b21pemVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZC12YWx1ZSBwYWlycyBmb3IgYG9iamVjdGBcbiAgICAgKiB3aGljaCBjYW4gYmUgY29uc3VtZWQgYnkgYF8uZnJvbVBhaXJzYC4gSWYgYG9iamVjdGAgaXMgYSBtYXAgb3Igc2V0LCBpdHNcbiAgICAgKiBlbnRyaWVzIGFyZSByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBhbGlhcyBlbnRyaWVzXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGtleS12YWx1ZSBwYWlycy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8udG9QYWlycyhuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbWydhJywgMV0sIFsnYicsIDJdXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIHZhciB0b1BhaXJzID0gY3JlYXRlVG9QYWlycyhrZXlzKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQtdmFsdWUgcGFpcnNcbiAgICAgKiBmb3IgYG9iamVjdGAgd2hpY2ggY2FuIGJlIGNvbnN1bWVkIGJ5IGBfLmZyb21QYWlyc2AuIElmIGBvYmplY3RgIGlzIGEgbWFwXG4gICAgICogb3Igc2V0LCBpdHMgZW50cmllcyBhcmUgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAYWxpYXMgZW50cmllc0luXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGtleS12YWx1ZSBwYWlycy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8udG9QYWlyc0luKG5ldyBGb28pO1xuICAgICAqIC8vID0+IFtbJ2EnLCAxXSwgWydiJywgMl0sIFsnYycsIDNdXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIHZhciB0b1BhaXJzSW4gPSBjcmVhdGVUb1BhaXJzKGtleXNJbik7XG5cbiAgICAvKipcbiAgICAgKiBBbiBhbHRlcm5hdGl2ZSB0byBgXy5yZWR1Y2VgOyB0aGlzIG1ldGhvZCB0cmFuc2Zvcm1zIGBvYmplY3RgIHRvIGEgbmV3XG4gICAgICogYGFjY3VtdWxhdG9yYCBvYmplY3Qgd2hpY2ggaXMgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGVhY2ggb2YgaXRzIG93blxuICAgICAqIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgdGhydSBgaXRlcmF0ZWVgLCB3aXRoIGVhY2ggaW52b2NhdGlvblxuICAgICAqIHBvdGVudGlhbGx5IG11dGF0aW5nIHRoZSBgYWNjdW11bGF0b3JgIG9iamVjdC4gSWYgYGFjY3VtdWxhdG9yYCBpcyBub3RcbiAgICAgKiBwcm92aWRlZCwgYSBuZXcgb2JqZWN0IHdpdGggdGhlIHNhbWUgYFtbUHJvdG90eXBlXV1gIHdpbGwgYmUgdXNlZC4gVGhlXG4gICAgICogaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIGZvdXIgYXJndW1lbnRzOiAoYWNjdW11bGF0b3IsIHZhbHVlLCBrZXksIG9iamVjdCkuXG4gICAgICogSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMy4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbYWNjdW11bGF0b3JdIFRoZSBjdXN0b20gYWNjdW11bGF0b3IgdmFsdWUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRyYW5zZm9ybShbMiwgMywgNF0sIGZ1bmN0aW9uKHJlc3VsdCwgbikge1xuICAgICAqICAgcmVzdWx0LnB1c2gobiAqPSBuKTtcbiAgICAgKiAgIHJldHVybiBuICUgMiA9PSAwO1xuICAgICAqIH0sIFtdKTtcbiAgICAgKiAvLyA9PiBbNCwgOV1cbiAgICAgKlxuICAgICAqIF8udHJhbnNmb3JtKHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMSB9LCBmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgKiAgIChyZXN1bHRbdmFsdWVdIHx8IChyZXN1bHRbdmFsdWVdID0gW10pKS5wdXNoKGtleSk7XG4gICAgICogfSwge30pO1xuICAgICAqIC8vID0+IHsgJzEnOiBbJ2EnLCAnYyddLCAnMic6IFsnYiddIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm0ob2JqZWN0LCBpdGVyYXRlZSwgYWNjdW11bGF0b3IpIHtcbiAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkob2JqZWN0KSxcbiAgICAgICAgICBpc0Fyckxpa2UgPSBpc0FyciB8fCBpc0J1ZmZlcihvYmplY3QpIHx8IGlzVHlwZWRBcnJheShvYmplY3QpO1xuXG4gICAgICBpdGVyYXRlZSA9IGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCA0KTtcbiAgICAgIGlmIChhY2N1bXVsYXRvciA9PSBudWxsKSB7XG4gICAgICAgIHZhciBDdG9yID0gb2JqZWN0ICYmIG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgICAgICAgaWYgKGlzQXJyTGlrZSkge1xuICAgICAgICAgIGFjY3VtdWxhdG9yID0gaXNBcnIgPyBuZXcgQ3RvciA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgICBhY2N1bXVsYXRvciA9IGlzRnVuY3Rpb24oQ3RvcikgPyBiYXNlQ3JlYXRlKGdldFByb3RvdHlwZShvYmplY3QpKSA6IHt9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGFjY3VtdWxhdG9yID0ge307XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIChpc0Fyckxpa2UgPyBhcnJheUVhY2ggOiBiYXNlRm9yT3duKShvYmplY3QsIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgb2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBpdGVyYXRlZShhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBvYmplY3QpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgcHJvcGVydHkgYXQgYHBhdGhgIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gdW5zZXQuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBwcm9wZXJ0eSBpcyBkZWxldGVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogNyB9IH1dIH07XG4gICAgICogXy51bnNldChvYmplY3QsICdhWzBdLmIuYycpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdCk7XG4gICAgICogLy8gPT4geyAnYSc6IFt7ICdiJzoge30gfV0gfTtcbiAgICAgKlxuICAgICAqIF8udW5zZXQob2JqZWN0LCBbJ2EnLCAnMCcsICdiJywgJ2MnXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2cob2JqZWN0KTtcbiAgICAgKiAvLyA9PiB7ICdhJzogW3sgJ2InOiB7fSB9XSB9O1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuc2V0KG9iamVjdCwgcGF0aCkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdHJ1ZSA6IGJhc2VVbnNldChvYmplY3QsIHBhdGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc2V0YCBleGNlcHQgdGhhdCBhY2NlcHRzIGB1cGRhdGVyYCB0byBwcm9kdWNlIHRoZVxuICAgICAqIHZhbHVlIHRvIHNldC4gVXNlIGBfLnVwZGF0ZVdpdGhgIHRvIGN1c3RvbWl6ZSBgcGF0aGAgY3JlYXRpb24uIFRoZSBgdXBkYXRlcmBcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC42LjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHVwZGF0ZXIgVGhlIGZ1bmN0aW9uIHRvIHByb2R1Y2UgdGhlIHVwZGF0ZWQgdmFsdWUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiAzIH0gfV0gfTtcbiAgICAgKlxuICAgICAqIF8udXBkYXRlKG9iamVjdCwgJ2FbMF0uYi5jJywgZnVuY3Rpb24obikgeyByZXR1cm4gbiAqIG47IH0pO1xuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdC5hWzBdLmIuYyk7XG4gICAgICogLy8gPT4gOVxuICAgICAqXG4gICAgICogXy51cGRhdGUob2JqZWN0LCAneFswXS55LnonLCBmdW5jdGlvbihuKSB7IHJldHVybiBuID8gbiArIDEgOiAwOyB9KTtcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QueFswXS55LnopO1xuICAgICAqIC8vID0+IDBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1cGRhdGUob2JqZWN0LCBwYXRoLCB1cGRhdGVyKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlVXBkYXRlKG9iamVjdCwgcGF0aCwgY2FzdEZ1bmN0aW9uKHVwZGF0ZXIpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVwZGF0ZWAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIG9iamVjdHMgb2YgYHBhdGhgLiAgSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGBcbiAgICAgKiBwYXRoIGNyZWF0aW9uIGlzIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKG5zVmFsdWUsIGtleSwgbnNPYmplY3QpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC42LjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHVwZGF0ZXIgVGhlIGZ1bmN0aW9uIHRvIHByb2R1Y2UgdGhlIHVwZGF0ZWQgdmFsdWUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7fTtcbiAgICAgKlxuICAgICAqIF8udXBkYXRlV2l0aChvYmplY3QsICdbMF1bMV0nLCBfLmNvbnN0YW50KCdhJyksIE9iamVjdCk7XG4gICAgICogLy8gPT4geyAnMCc6IHsgJzEnOiAnYScgfSB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gdXBkYXRlV2l0aChvYmplY3QsIHBhdGgsIHVwZGF0ZXIsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IG9iamVjdCA6IGJhc2VVcGRhdGUob2JqZWN0LCBwYXRoLCBjYXN0RnVuY3Rpb24odXBkYXRlciksIGN1c3RvbWl6ZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0eSB2YWx1ZXMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLnZhbHVlcyhuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbMSwgMl0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKlxuICAgICAqIF8udmFsdWVzKCdoaScpO1xuICAgICAqIC8vID0+IFsnaCcsICdpJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB2YWx1ZXMob2JqZWN0KSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBbXSA6IGJhc2VWYWx1ZXMob2JqZWN0LCBrZXlzKG9iamVjdCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnR5XG4gICAgICogdmFsdWVzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy52YWx1ZXNJbihuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM10gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB2YWx1ZXNJbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IFtdIDogYmFzZVZhbHVlcyhvYmplY3QsIGtleXNJbihvYmplY3QpKTtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDbGFtcHMgYG51bWJlcmAgd2l0aGluIHRoZSBpbmNsdXNpdmUgYGxvd2VyYCBhbmQgYHVwcGVyYCBib3VuZHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTnVtYmVyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlciBUaGUgbnVtYmVyIHRvIGNsYW1wLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbG93ZXJdIFRoZSBsb3dlciBib3VuZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdXBwZXIgVGhlIHVwcGVyIGJvdW5kLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNsYW1wZWQgbnVtYmVyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNsYW1wKC0xMCwgLTUsIDUpO1xuICAgICAqIC8vID0+IC01XG4gICAgICpcbiAgICAgKiBfLmNsYW1wKDEwLCAtNSwgNSk7XG4gICAgICogLy8gPT4gNVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsYW1wKG51bWJlciwgbG93ZXIsIHVwcGVyKSB7XG4gICAgICBpZiAodXBwZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB1cHBlciA9IGxvd2VyO1xuICAgICAgICBsb3dlciA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGlmICh1cHBlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHVwcGVyID0gdG9OdW1iZXIodXBwZXIpO1xuICAgICAgICB1cHBlciA9IHVwcGVyID09PSB1cHBlciA/IHVwcGVyIDogMDtcbiAgICAgIH1cbiAgICAgIGlmIChsb3dlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGxvd2VyID0gdG9OdW1iZXIobG93ZXIpO1xuICAgICAgICBsb3dlciA9IGxvd2VyID09PSBsb3dlciA/IGxvd2VyIDogMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlQ2xhbXAodG9OdW1iZXIobnVtYmVyKSwgbG93ZXIsIHVwcGVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYG5gIGlzIGJldHdlZW4gYHN0YXJ0YCBhbmQgdXAgdG8sIGJ1dCBub3QgaW5jbHVkaW5nLCBgZW5kYC4gSWZcbiAgICAgKiBgZW5kYCBpcyBub3Qgc3BlY2lmaWVkLCBpdCdzIHNldCB0byBgc3RhcnRgIHdpdGggYHN0YXJ0YCB0aGVuIHNldCB0byBgMGAuXG4gICAgICogSWYgYHN0YXJ0YCBpcyBncmVhdGVyIHRoYW4gYGVuZGAgdGhlIHBhcmFtcyBhcmUgc3dhcHBlZCB0byBzdXBwb3J0XG4gICAgICogbmVnYXRpdmUgcmFuZ2VzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMy4wXG4gICAgICogQGNhdGVnb3J5IE51bWJlclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgVGhlIG51bWJlciB0byBjaGVjay5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZCBUaGUgZW5kIG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG51bWJlcmAgaXMgaW4gdGhlIHJhbmdlLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQHNlZSBfLnJhbmdlLCBfLnJhbmdlUmlnaHRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pblJhbmdlKDMsIDIsIDQpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSg0LCA4KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmluUmFuZ2UoNCwgMik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSgyLCAyKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pblJhbmdlKDEuMiwgMik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pblJhbmdlKDUuMiwgNCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSgtMywgLTIsIC02KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5SYW5nZShudW1iZXIsIHN0YXJ0LCBlbmQpIHtcbiAgICAgIHN0YXJ0ID0gdG9GaW5pdGUoc3RhcnQpO1xuICAgICAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGVuZCA9IHN0YXJ0O1xuICAgICAgICBzdGFydCA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbmQgPSB0b0Zpbml0ZShlbmQpO1xuICAgICAgfVxuICAgICAgbnVtYmVyID0gdG9OdW1iZXIobnVtYmVyKTtcbiAgICAgIHJldHVybiBiYXNlSW5SYW5nZShudW1iZXIsIHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2R1Y2VzIGEgcmFuZG9tIG51bWJlciBiZXR3ZWVuIHRoZSBpbmNsdXNpdmUgYGxvd2VyYCBhbmQgYHVwcGVyYCBib3VuZHMuXG4gICAgICogSWYgb25seSBvbmUgYXJndW1lbnQgaXMgcHJvdmlkZWQgYSBudW1iZXIgYmV0d2VlbiBgMGAgYW5kIHRoZSBnaXZlbiBudW1iZXJcbiAgICAgKiBpcyByZXR1cm5lZC4gSWYgYGZsb2F0aW5nYCBpcyBgdHJ1ZWAsIG9yIGVpdGhlciBgbG93ZXJgIG9yIGB1cHBlcmAgYXJlXG4gICAgICogZmxvYXRzLCBhIGZsb2F0aW5nLXBvaW50IG51bWJlciBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIGFuIGludGVnZXIuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogSmF2YVNjcmlwdCBmb2xsb3dzIHRoZSBJRUVFLTc1NCBzdGFuZGFyZCBmb3IgcmVzb2x2aW5nXG4gICAgICogZmxvYXRpbmctcG9pbnQgdmFsdWVzIHdoaWNoIGNhbiBwcm9kdWNlIHVuZXhwZWN0ZWQgcmVzdWx0cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjcuMFxuICAgICAqIEBjYXRlZ29yeSBOdW1iZXJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xvd2VyPTBdIFRoZSBsb3dlciBib3VuZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3VwcGVyPTFdIFRoZSB1cHBlciBib3VuZC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmbG9hdGluZ10gU3BlY2lmeSByZXR1cm5pbmcgYSBmbG9hdGluZy1wb2ludCBudW1iZXIuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgcmFuZG9tIG51bWJlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yYW5kb20oMCwgNSk7XG4gICAgICogLy8gPT4gYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDVcbiAgICAgKlxuICAgICAqIF8ucmFuZG9tKDUpO1xuICAgICAqIC8vID0+IGFsc28gYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDVcbiAgICAgKlxuICAgICAqIF8ucmFuZG9tKDUsIHRydWUpO1xuICAgICAqIC8vID0+IGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyIGJldHdlZW4gMCBhbmQgNVxuICAgICAqXG4gICAgICogXy5yYW5kb20oMS4yLCA1LjIpO1xuICAgICAqIC8vID0+IGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyIGJldHdlZW4gMS4yIGFuZCA1LjJcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByYW5kb20obG93ZXIsIHVwcGVyLCBmbG9hdGluZykge1xuICAgICAgaWYgKGZsb2F0aW5nICYmIHR5cGVvZiBmbG9hdGluZyAhPSAnYm9vbGVhbicgJiYgaXNJdGVyYXRlZUNhbGwobG93ZXIsIHVwcGVyLCBmbG9hdGluZykpIHtcbiAgICAgICAgdXBwZXIgPSBmbG9hdGluZyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGlmIChmbG9hdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdXBwZXIgPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgZmxvYXRpbmcgPSB1cHBlcjtcbiAgICAgICAgICB1cHBlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgbG93ZXIgPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgZmxvYXRpbmcgPSBsb3dlcjtcbiAgICAgICAgICBsb3dlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGxvd2VyID09PSB1bmRlZmluZWQgJiYgdXBwZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsb3dlciA9IDA7XG4gICAgICAgIHVwcGVyID0gMTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBsb3dlciA9IHRvRmluaXRlKGxvd2VyKTtcbiAgICAgICAgaWYgKHVwcGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB1cHBlciA9IGxvd2VyO1xuICAgICAgICAgIGxvd2VyID0gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cHBlciA9IHRvRmluaXRlKHVwcGVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGxvd2VyID4gdXBwZXIpIHtcbiAgICAgICAgdmFyIHRlbXAgPSBsb3dlcjtcbiAgICAgICAgbG93ZXIgPSB1cHBlcjtcbiAgICAgICAgdXBwZXIgPSB0ZW1wO1xuICAgICAgfVxuICAgICAgaWYgKGZsb2F0aW5nIHx8IGxvd2VyICUgMSB8fCB1cHBlciAlIDEpIHtcbiAgICAgICAgdmFyIHJhbmQgPSBuYXRpdmVSYW5kb20oKTtcbiAgICAgICAgcmV0dXJuIG5hdGl2ZU1pbihsb3dlciArIChyYW5kICogKHVwcGVyIC0gbG93ZXIgKyBmcmVlUGFyc2VGbG9hdCgnMWUtJyArICgocmFuZCArICcnKS5sZW5ndGggLSAxKSkpKSwgdXBwZXIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VSYW5kb20obG93ZXIsIHVwcGVyKTtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBbY2FtZWwgY2FzZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ2FtZWxDYXNlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNhbWVsIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5jYW1lbENhc2UoJ0ZvbyBCYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vQmFyJ1xuICAgICAqXG4gICAgICogXy5jYW1lbENhc2UoJy0tZm9vLWJhci0tJyk7XG4gICAgICogLy8gPT4gJ2Zvb0JhcidcbiAgICAgKlxuICAgICAqIF8uY2FtZWxDYXNlKCdfX0ZPT19CQVJfXycpO1xuICAgICAqIC8vID0+ICdmb29CYXInXG4gICAgICovXG4gICAgdmFyIGNhbWVsQ2FzZSA9IGNyZWF0ZUNvbXBvdW5kZXIoZnVuY3Rpb24ocmVzdWx0LCB3b3JkLCBpbmRleCkge1xuICAgICAgd29yZCA9IHdvcmQudG9Mb3dlckNhc2UoKTtcbiAgICAgIHJldHVybiByZXN1bHQgKyAoaW5kZXggPyBjYXBpdGFsaXplKHdvcmQpIDogd29yZCk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIGBzdHJpbmdgIHRvIHVwcGVyIGNhc2UgYW5kIHRoZSByZW1haW5pbmdcbiAgICAgKiB0byBsb3dlciBjYXNlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNhcGl0YWxpemUuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY2FwaXRhbGl6ZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNhcGl0YWxpemUoJ0ZSRUQnKTtcbiAgICAgKiAvLyA9PiAnRnJlZCdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjYXBpdGFsaXplKHN0cmluZykge1xuICAgICAgcmV0dXJuIHVwcGVyRmlyc3QodG9TdHJpbmcoc3RyaW5nKS50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWJ1cnJzIGBzdHJpbmdgIGJ5IGNvbnZlcnRpbmdcbiAgICAgKiBbTGF0aW4tMSBTdXBwbGVtZW50XShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MYXRpbi0xX1N1cHBsZW1lbnRfKFVuaWNvZGVfYmxvY2spI0NoYXJhY3Rlcl90YWJsZSlcbiAgICAgKiBhbmQgW0xhdGluIEV4dGVuZGVkLUFdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xhdGluX0V4dGVuZGVkLUEpXG4gICAgICogbGV0dGVycyB0byBiYXNpYyBMYXRpbiBsZXR0ZXJzIGFuZCByZW1vdmluZ1xuICAgICAqIFtjb21iaW5pbmcgZGlhY3JpdGljYWwgbWFya3NdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NvbWJpbmluZ19EaWFjcml0aWNhbF9NYXJrcykuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gZGVidXJyLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGRlYnVycmVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kZWJ1cnIoJ2TDqWrDoCB2dScpO1xuICAgICAqIC8vID0+ICdkZWphIHZ1J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRlYnVycihzdHJpbmcpIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICByZXR1cm4gc3RyaW5nICYmIHN0cmluZy5yZXBsYWNlKHJlTGF0aW4sIGRlYnVyckxldHRlcikucmVwbGFjZShyZUNvbWJvTWFyaywgJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgc3RyaW5nYCBlbmRzIHdpdGggdGhlIGdpdmVuIHRhcmdldCBzdHJpbmcuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3RhcmdldF0gVGhlIHN0cmluZyB0byBzZWFyY2ggZm9yLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcG9zaXRpb249c3RyaW5nLmxlbmd0aF0gVGhlIHBvc2l0aW9uIHRvIHNlYXJjaCB1cCB0by5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHN0cmluZ2AgZW5kcyB3aXRoIGB0YXJnZXRgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZW5kc1dpdGgoJ2FiYycsICdjJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5lbmRzV2l0aCgnYWJjJywgJ2InKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5lbmRzV2l0aCgnYWJjJywgJ2InLCAyKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gZW5kc1dpdGgoc3RyaW5nLCB0YXJnZXQsIHBvc2l0aW9uKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgdGFyZ2V0ID0gYmFzZVRvU3RyaW5nKHRhcmdldCk7XG5cbiAgICAgIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbiA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gbGVuZ3RoXG4gICAgICAgIDogYmFzZUNsYW1wKHRvSW50ZWdlcihwb3NpdGlvbiksIDAsIGxlbmd0aCk7XG5cbiAgICAgIHZhciBlbmQgPSBwb3NpdGlvbjtcbiAgICAgIHBvc2l0aW9uIC09IHRhcmdldC5sZW5ndGg7XG4gICAgICByZXR1cm4gcG9zaXRpb24gPj0gMCAmJiBzdHJpbmcuc2xpY2UocG9zaXRpb24sIGVuZCkgPT0gdGFyZ2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIHRoZSBjaGFyYWN0ZXJzIFwiJlwiLCBcIjxcIiwgXCI+XCIsICdcIicsIGFuZCBcIidcIiBpbiBgc3RyaW5nYCB0byB0aGVpclxuICAgICAqIGNvcnJlc3BvbmRpbmcgSFRNTCBlbnRpdGllcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBObyBvdGhlciBjaGFyYWN0ZXJzIGFyZSBlc2NhcGVkLiBUbyBlc2NhcGUgYWRkaXRpb25hbFxuICAgICAqIGNoYXJhY3RlcnMgdXNlIGEgdGhpcmQtcGFydHkgbGlicmFyeSBsaWtlIFtfaGVfXShodHRwczovL210aHMuYmUvaGUpLlxuICAgICAqXG4gICAgICogVGhvdWdoIHRoZSBcIj5cIiBjaGFyYWN0ZXIgaXMgZXNjYXBlZCBmb3Igc3ltbWV0cnksIGNoYXJhY3RlcnMgbGlrZVxuICAgICAqIFwiPlwiIGFuZCBcIi9cIiBkb24ndCBuZWVkIGVzY2FwaW5nIGluIEhUTUwgYW5kIGhhdmUgbm8gc3BlY2lhbCBtZWFuaW5nXG4gICAgICogdW5sZXNzIHRoZXkncmUgcGFydCBvZiBhIHRhZyBvciB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUuIFNlZVxuICAgICAqIFtNYXRoaWFzIEJ5bmVucydzIGFydGljbGVdKGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9hbWJpZ3VvdXMtYW1wZXJzYW5kcylcbiAgICAgKiAodW5kZXIgXCJzZW1pLXJlbGF0ZWQgZnVuIGZhY3RcIikgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKlxuICAgICAqIFdoZW4gd29ya2luZyB3aXRoIEhUTUwgeW91IHNob3VsZCBhbHdheXNcbiAgICAgKiBbcXVvdGUgYXR0cmlidXRlIHZhbHVlc10oaHR0cDovL3dvbmtvLmNvbS9wb3N0L2h0bWwtZXNjYXBpbmcpIHRvIHJlZHVjZVxuICAgICAqIFhTUyB2ZWN0b3JzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGVzY2FwZS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5lc2NhcGUoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJyk7XG4gICAgICogLy8gPT4gJ2ZyZWQsIGJhcm5leSwgJmFtcDsgcGViYmxlcydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlc2NhcGUoc3RyaW5nKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgcmV0dXJuIChzdHJpbmcgJiYgcmVIYXNVbmVzY2FwZWRIdG1sLnRlc3Qoc3RyaW5nKSlcbiAgICAgICAgPyBzdHJpbmcucmVwbGFjZShyZVVuZXNjYXBlZEh0bWwsIGVzY2FwZUh0bWxDaGFyKVxuICAgICAgICA6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFc2NhcGVzIHRoZSBgUmVnRXhwYCBzcGVjaWFsIGNoYXJhY3RlcnMgXCJeXCIsIFwiJFwiLCBcIlxcXCIsIFwiLlwiLCBcIipcIiwgXCIrXCIsXG4gICAgICogXCI/XCIsIFwiKFwiLCBcIilcIiwgXCJbXCIsIFwiXVwiLCBcIntcIiwgXCJ9XCIsIGFuZCBcInxcIiBpbiBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZXNjYXBlUmVnRXhwKCdbbG9kYXNoXShodHRwczovL2xvZGFzaC5jb20vKScpO1xuICAgICAqIC8vID0+ICdcXFtsb2Rhc2hcXF1cXChodHRwczovL2xvZGFzaFxcLmNvbS9cXCknXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHN0cmluZykge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHJldHVybiAoc3RyaW5nICYmIHJlSGFzUmVnRXhwQ2hhci50ZXN0KHN0cmluZykpXG4gICAgICAgID8gc3RyaW5nLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgICAgICAgOiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG9cbiAgICAgKiBba2ViYWIgY2FzZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGV0dGVyX2Nhc2UjU3BlY2lhbF9jYXNlX3N0eWxlcykuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBrZWJhYiBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ua2ViYWJDYXNlKCdGb28gQmFyJyk7XG4gICAgICogLy8gPT4gJ2Zvby1iYXInXG4gICAgICpcbiAgICAgKiBfLmtlYmFiQ2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ2Zvby1iYXInXG4gICAgICpcbiAgICAgKiBfLmtlYmFiQ2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnZm9vLWJhcidcbiAgICAgKi9cbiAgICB2YXIga2ViYWJDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJy0nIDogJycpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AsIGFzIHNwYWNlIHNlcGFyYXRlZCB3b3JkcywgdG8gbG93ZXIgY2FzZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGxvd2VyIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sb3dlckNhc2UoJy0tRm9vLUJhci0tJyk7XG4gICAgICogLy8gPT4gJ2ZvbyBiYXInXG4gICAgICpcbiAgICAgKiBfLmxvd2VyQ2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ2ZvbyBiYXInXG4gICAgICpcbiAgICAgKiBfLmxvd2VyQ2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnZm9vIGJhcidcbiAgICAgKi9cbiAgICB2YXIgbG93ZXJDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJyAnIDogJycpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBgc3RyaW5nYCB0byBsb3dlciBjYXNlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sb3dlckZpcnN0KCdGcmVkJyk7XG4gICAgICogLy8gPT4gJ2ZyZWQnXG4gICAgICpcbiAgICAgKiBfLmxvd2VyRmlyc3QoJ0ZSRUQnKTtcbiAgICAgKiAvLyA9PiAnZlJFRCdcbiAgICAgKi9cbiAgICB2YXIgbG93ZXJGaXJzdCA9IGNyZWF0ZUNhc2VGaXJzdCgndG9Mb3dlckNhc2UnKTtcblxuICAgIC8qKlxuICAgICAqIFBhZHMgYHN0cmluZ2Agb24gdGhlIGxlZnQgYW5kIHJpZ2h0IHNpZGVzIGlmIGl0J3Mgc2hvcnRlciB0aGFuIGBsZW5ndGhgLlxuICAgICAqIFBhZGRpbmcgY2hhcmFjdGVycyBhcmUgdHJ1bmNhdGVkIGlmIHRoZXkgY2FuJ3QgYmUgZXZlbmx5IGRpdmlkZWQgYnkgYGxlbmd0aGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcGFkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPTBdIFRoZSBwYWRkaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5wYWQoJ2FiYycsIDgpO1xuICAgICAqIC8vID0+ICcgIGFiYyAgICdcbiAgICAgKlxuICAgICAqIF8ucGFkKCdhYmMnLCA4LCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnXy1hYmNfLV8nXG4gICAgICpcbiAgICAgKiBfLnBhZCgnYWJjJywgMyk7XG4gICAgICogLy8gPT4gJ2FiYydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwYWQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgbGVuZ3RoID0gdG9JbnRlZ2VyKGxlbmd0aCk7XG5cbiAgICAgIHZhciBzdHJMZW5ndGggPSBsZW5ndGggPyBzdHJpbmdTaXplKHN0cmluZykgOiAwO1xuICAgICAgaWYgKCFsZW5ndGggfHwgc3RyTGVuZ3RoID49IGxlbmd0aCkge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgfVxuICAgICAgdmFyIG1pZCA9IChsZW5ndGggLSBzdHJMZW5ndGgpIC8gMjtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGNyZWF0ZVBhZGRpbmcobmF0aXZlRmxvb3IobWlkKSwgY2hhcnMpICtcbiAgICAgICAgc3RyaW5nICtcbiAgICAgICAgY3JlYXRlUGFkZGluZyhuYXRpdmVDZWlsKG1pZCksIGNoYXJzKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWRzIGBzdHJpbmdgIG9uIHRoZSByaWdodCBzaWRlIGlmIGl0J3Mgc2hvcnRlciB0aGFuIGBsZW5ndGhgLiBQYWRkaW5nXG4gICAgICogY2hhcmFjdGVycyBhcmUgdHJ1bmNhdGVkIGlmIHRoZXkgZXhjZWVkIGBsZW5ndGhgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHBhZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD0wXSBUaGUgcGFkZGluZyBsZW5ndGguXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz0nICddIFRoZSBzdHJpbmcgdXNlZCBhcyBwYWRkaW5nLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHBhZGRlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucGFkRW5kKCdhYmMnLCA2KTtcbiAgICAgKiAvLyA9PiAnYWJjICAgJ1xuICAgICAqXG4gICAgICogXy5wYWRFbmQoJ2FiYycsIDYsICdfLScpO1xuICAgICAqIC8vID0+ICdhYmNfLV8nXG4gICAgICpcbiAgICAgKiBfLnBhZEVuZCgnYWJjJywgMyk7XG4gICAgICogLy8gPT4gJ2FiYydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwYWRFbmQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgbGVuZ3RoID0gdG9JbnRlZ2VyKGxlbmd0aCk7XG5cbiAgICAgIHZhciBzdHJMZW5ndGggPSBsZW5ndGggPyBzdHJpbmdTaXplKHN0cmluZykgOiAwO1xuICAgICAgcmV0dXJuIChsZW5ndGggJiYgc3RyTGVuZ3RoIDwgbGVuZ3RoKVxuICAgICAgICA/IChzdHJpbmcgKyBjcmVhdGVQYWRkaW5nKGxlbmd0aCAtIHN0ckxlbmd0aCwgY2hhcnMpKVxuICAgICAgICA6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWRzIGBzdHJpbmdgIG9uIHRoZSBsZWZ0IHNpZGUgaWYgaXQncyBzaG9ydGVyIHRoYW4gYGxlbmd0aGAuIFBhZGRpbmdcbiAgICAgKiBjaGFyYWN0ZXJzIGFyZSB0cnVuY2F0ZWQgaWYgdGhleSBleGNlZWQgYGxlbmd0aGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcGFkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPTBdIFRoZSBwYWRkaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5wYWRTdGFydCgnYWJjJywgNik7XG4gICAgICogLy8gPT4gJyAgIGFiYydcbiAgICAgKlxuICAgICAqIF8ucGFkU3RhcnQoJ2FiYycsIDYsICdfLScpO1xuICAgICAqIC8vID0+ICdfLV9hYmMnXG4gICAgICpcbiAgICAgKiBfLnBhZFN0YXJ0KCdhYmMnLCAzKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHBhZFN0YXJ0KHN0cmluZywgbGVuZ3RoLCBjaGFycykge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGxlbmd0aCA9IHRvSW50ZWdlcihsZW5ndGgpO1xuXG4gICAgICB2YXIgc3RyTGVuZ3RoID0gbGVuZ3RoID8gc3RyaW5nU2l6ZShzdHJpbmcpIDogMDtcbiAgICAgIHJldHVybiAobGVuZ3RoICYmIHN0ckxlbmd0aCA8IGxlbmd0aClcbiAgICAgICAgPyAoY3JlYXRlUGFkZGluZyhsZW5ndGggLSBzdHJMZW5ndGgsIGNoYXJzKSArIHN0cmluZylcbiAgICAgICAgOiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gYW4gaW50ZWdlciBvZiB0aGUgc3BlY2lmaWVkIHJhZGl4LiBJZiBgcmFkaXhgIGlzXG4gICAgICogYHVuZGVmaW5lZGAgb3IgYDBgLCBhIGByYWRpeGAgb2YgYDEwYCBpcyB1c2VkIHVubGVzcyBgdmFsdWVgIGlzIGFcbiAgICAgKiBoZXhhZGVjaW1hbCwgaW4gd2hpY2ggY2FzZSBhIGByYWRpeGAgb2YgYDE2YCBpcyB1c2VkLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGFsaWducyB3aXRoIHRoZVxuICAgICAqIFtFUzUgaW1wbGVtZW50YXRpb25dKGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjEuMi4yKSBvZiBgcGFyc2VJbnRgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMS4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcmFkaXg9MTBdIFRoZSByYWRpeCB0byBpbnRlcnByZXQgYHZhbHVlYCBieS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBpbnRlZ2VyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnBhcnNlSW50KCcwOCcpO1xuICAgICAqIC8vID0+IDhcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnNicsICcwOCcsICcxMCddLCBfLnBhcnNlSW50KTtcbiAgICAgKiAvLyA9PiBbNiwgOCwgMTBdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcGFyc2VJbnQoc3RyaW5nLCByYWRpeCwgZ3VhcmQpIHtcbiAgICAgIGlmIChndWFyZCB8fCByYWRpeCA9PSBudWxsKSB7XG4gICAgICAgIHJhZGl4ID0gMDtcbiAgICAgIH0gZWxzZSBpZiAocmFkaXgpIHtcbiAgICAgICAgcmFkaXggPSArcmFkaXg7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmF0aXZlUGFyc2VJbnQodG9TdHJpbmcoc3RyaW5nKS5yZXBsYWNlKHJlVHJpbVN0YXJ0LCAnJyksIHJhZGl4IHx8IDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGVhdHMgdGhlIGdpdmVuIHN0cmluZyBgbmAgdGltZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcmVwZWF0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgc3RyaW5nLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmVwZWF0ZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnJlcGVhdCgnKicsIDMpO1xuICAgICAqIC8vID0+ICcqKionXG4gICAgICpcbiAgICAgKiBfLnJlcGVhdCgnYWJjJywgMik7XG4gICAgICogLy8gPT4gJ2FiY2FiYydcbiAgICAgKlxuICAgICAqIF8ucmVwZWF0KCdhYmMnLCAwKTtcbiAgICAgKiAvLyA9PiAnJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlcGVhdChzdHJpbmcsIG4sIGd1YXJkKSB7XG4gICAgICBpZiAoKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBuLCBndWFyZCkgOiBuID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIG4gPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlUmVwZWF0KHRvU3RyaW5nKHN0cmluZyksIG4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2VzIG1hdGNoZXMgZm9yIGBwYXR0ZXJuYCBpbiBgc3RyaW5nYCB3aXRoIGByZXBsYWNlbWVudGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYFN0cmluZyNyZXBsYWNlYF0oaHR0cHM6Ly9tZG4uaW8vU3RyaW5nL3JlcGxhY2UpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cHxzdHJpbmd9IHBhdHRlcm4gVGhlIHBhdHRlcm4gdG8gcmVwbGFjZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufHN0cmluZ30gcmVwbGFjZW1lbnQgVGhlIG1hdGNoIHJlcGxhY2VtZW50LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIG1vZGlmaWVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yZXBsYWNlKCdIaSBGcmVkJywgJ0ZyZWQnLCAnQmFybmV5Jyk7XG4gICAgICogLy8gPT4gJ0hpIEJhcm5leSdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXBsYWNlKCkge1xuICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoYXJnc1swXSk7XG5cbiAgICAgIHJldHVybiBhcmdzLmxlbmd0aCA8IDMgPyBzdHJpbmcgOiBzdHJpbmcucmVwbGFjZShhcmdzWzFdLCBhcmdzWzJdKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0b1xuICAgICAqIFtzbmFrZSBjYXNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TbmFrZV9jYXNlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNuYWtlIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zbmFrZUNhc2UoJ0ZvbyBCYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vX2JhcidcbiAgICAgKlxuICAgICAqIF8uc25ha2VDYXNlKCdmb29CYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vX2JhcidcbiAgICAgKlxuICAgICAqIF8uc25ha2VDYXNlKCctLUZPTy1CQVItLScpO1xuICAgICAqIC8vID0+ICdmb29fYmFyJ1xuICAgICAqL1xuICAgIHZhciBzbmFrZUNhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdCwgd29yZCwgaW5kZXgpIHtcbiAgICAgIHJldHVybiByZXN1bHQgKyAoaW5kZXggPyAnXycgOiAnJykgKyB3b3JkLnRvTG93ZXJDYXNlKCk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBTcGxpdHMgYHN0cmluZ2AgYnkgYHNlcGFyYXRvcmAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYFN0cmluZyNzcGxpdGBdKGh0dHBzOi8vbWRuLmlvL1N0cmluZy9zcGxpdCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gc3BsaXQuXG4gICAgICogQHBhcmFtIHtSZWdFeHB8c3RyaW5nfSBzZXBhcmF0b3IgVGhlIHNlcGFyYXRvciBwYXR0ZXJuIHRvIHNwbGl0IGJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGltaXRdIFRoZSBsZW5ndGggdG8gdHJ1bmNhdGUgcmVzdWx0cyB0by5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHN0cmluZyBzZWdtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zcGxpdCgnYS1iLWMnLCAnLScsIDIpO1xuICAgICAqIC8vID0+IFsnYScsICdiJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzcGxpdChzdHJpbmcsIHNlcGFyYXRvciwgbGltaXQpIHtcbiAgICAgIGlmIChsaW1pdCAmJiB0eXBlb2YgbGltaXQgIT0gJ251bWJlcicgJiYgaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBzZXBhcmF0b3IsIGxpbWl0KSkge1xuICAgICAgICBzZXBhcmF0b3IgPSBsaW1pdCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGxpbWl0ID0gbGltaXQgPT09IHVuZGVmaW5lZCA/IE1BWF9BUlJBWV9MRU5HVEggOiBsaW1pdCA+Pj4gMDtcbiAgICAgIGlmICghbGltaXQpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGlmIChzdHJpbmcgJiYgKFxuICAgICAgICAgICAgdHlwZW9mIHNlcGFyYXRvciA9PSAnc3RyaW5nJyB8fFxuICAgICAgICAgICAgKHNlcGFyYXRvciAhPSBudWxsICYmICFpc1JlZ0V4cChzZXBhcmF0b3IpKVxuICAgICAgICAgICkpIHtcbiAgICAgICAgc2VwYXJhdG9yID0gYmFzZVRvU3RyaW5nKHNlcGFyYXRvcik7XG4gICAgICAgIGlmICghc2VwYXJhdG9yICYmIGhhc1VuaWNvZGUoc3RyaW5nKSkge1xuICAgICAgICAgIHJldHVybiBjYXN0U2xpY2Uoc3RyaW5nVG9BcnJheShzdHJpbmcpLCAwLCBsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBzdHJpbmcuc3BsaXQoc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG9cbiAgICAgKiBbc3RhcnQgY2FzZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGV0dGVyX2Nhc2UjU3R5bGlzdGljX29yX3NwZWNpYWxpc2VkX3VzYWdlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjEuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0YXJ0IGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zdGFydENhc2UoJy0tZm9vLWJhci0tJyk7XG4gICAgICogLy8gPT4gJ0ZvbyBCYXInXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0Q2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ0ZvbyBCYXInXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0Q2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnRk9PIEJBUidcbiAgICAgKi9cbiAgICB2YXIgc3RhcnRDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJyAnIDogJycpICsgdXBwZXJGaXJzdCh3b3JkKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgc3RyaW5nYCBzdGFydHMgd2l0aCB0aGUgZ2l2ZW4gdGFyZ2V0IHN0cmluZy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbdGFyZ2V0XSBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtwb3NpdGlvbj0wXSBUaGUgcG9zaXRpb24gdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBzdHJpbmdgIHN0YXJ0cyB3aXRoIGB0YXJnZXRgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc3RhcnRzV2l0aCgnYWJjJywgJ2EnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0c1dpdGgoJ2FiYycsICdiJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uc3RhcnRzV2l0aCgnYWJjJywgJ2InLCAxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3RhcnRzV2l0aChzdHJpbmcsIHRhcmdldCwgcG9zaXRpb24pIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uID09IG51bGxcbiAgICAgICAgPyAwXG4gICAgICAgIDogYmFzZUNsYW1wKHRvSW50ZWdlcihwb3NpdGlvbiksIDAsIHN0cmluZy5sZW5ndGgpO1xuXG4gICAgICB0YXJnZXQgPSBiYXNlVG9TdHJpbmcodGFyZ2V0KTtcbiAgICAgIHJldHVybiBzdHJpbmcuc2xpY2UocG9zaXRpb24sIHBvc2l0aW9uICsgdGFyZ2V0Lmxlbmd0aCkgPT0gdGFyZ2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjb21waWxlZCB0ZW1wbGF0ZSBmdW5jdGlvbiB0aGF0IGNhbiBpbnRlcnBvbGF0ZSBkYXRhIHByb3BlcnRpZXNcbiAgICAgKiBpbiBcImludGVycG9sYXRlXCIgZGVsaW1pdGVycywgSFRNTC1lc2NhcGUgaW50ZXJwb2xhdGVkIGRhdGEgcHJvcGVydGllcyBpblxuICAgICAqIFwiZXNjYXBlXCIgZGVsaW1pdGVycywgYW5kIGV4ZWN1dGUgSmF2YVNjcmlwdCBpbiBcImV2YWx1YXRlXCIgZGVsaW1pdGVycy4gRGF0YVxuICAgICAqIHByb3BlcnRpZXMgbWF5IGJlIGFjY2Vzc2VkIGFzIGZyZWUgdmFyaWFibGVzIGluIHRoZSB0ZW1wbGF0ZS4gSWYgYSBzZXR0aW5nXG4gICAgICogb2JqZWN0IGlzIGdpdmVuLCBpdCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYF8udGVtcGxhdGVTZXR0aW5nc2AgdmFsdWVzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIEluIHRoZSBkZXZlbG9wbWVudCBidWlsZCBgXy50ZW1wbGF0ZWAgdXRpbGl6ZXNcbiAgICAgKiBbc291cmNlVVJMc10oaHR0cDovL3d3dy5odG1sNXJvY2tzLmNvbS9lbi90dXRvcmlhbHMvZGV2ZWxvcGVydG9vbHMvc291cmNlbWFwcy8jdG9jLXNvdXJjZXVybClcbiAgICAgKiBmb3IgZWFzaWVyIGRlYnVnZ2luZy5cbiAgICAgKlxuICAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHByZWNvbXBpbGluZyB0ZW1wbGF0ZXMgc2VlXG4gICAgICogW2xvZGFzaCdzIGN1c3RvbSBidWlsZHMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9sb2Rhc2guY29tL2N1c3RvbS1idWlsZHMpLlxuICAgICAqXG4gICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gQ2hyb21lIGV4dGVuc2lvbiBzYW5kYm94ZXMgc2VlXG4gICAgICogW0Nocm9tZSdzIGV4dGVuc2lvbnMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIuY2hyb21lLmNvbS9leHRlbnNpb25zL3NhbmRib3hpbmdFdmFsKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHRlbXBsYXRlIHN0cmluZy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cH0gW29wdGlvbnMuZXNjYXBlPV8udGVtcGxhdGVTZXR0aW5ncy5lc2NhcGVdXG4gICAgICogIFRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5ldmFsdWF0ZT1fLnRlbXBsYXRlU2V0dGluZ3MuZXZhbHVhdGVdXG4gICAgICogIFRoZSBcImV2YWx1YXRlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucy5pbXBvcnRzPV8udGVtcGxhdGVTZXR0aW5ncy5pbXBvcnRzXVxuICAgICAqICBBbiBvYmplY3QgdG8gaW1wb3J0IGludG8gdGhlIHRlbXBsYXRlIGFzIGZyZWUgdmFyaWFibGVzLlxuICAgICAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5pbnRlcnBvbGF0ZT1fLnRlbXBsYXRlU2V0dGluZ3MuaW50ZXJwb2xhdGVdXG4gICAgICogIFRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5zb3VyY2VVUkw9J2xvZGFzaC50ZW1wbGF0ZVNvdXJjZXNbbl0nXVxuICAgICAqICBUaGUgc291cmNlVVJMIG9mIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMudmFyaWFibGU9J29iaiddXG4gICAgICogIFRoZSBkYXRhIG9iamVjdCB2YXJpYWJsZSBuYW1lLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjb21waWxlZCB0ZW1wbGF0ZSBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gVXNlIHRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyIHRvIGNyZWF0ZSBhIGNvbXBpbGVkIHRlbXBsYXRlLlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hlbGxvIDwlPSB1c2VyICU+IScpO1xuICAgICAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnZnJlZCcgfSk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGZyZWQhJ1xuICAgICAqXG4gICAgICogLy8gVXNlIHRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyIHRvIGVzY2FwZSBkYXRhIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCc8Yj48JS0gdmFsdWUgJT48L2I+Jyk7XG4gICAgICogY29tcGlsZWQoeyAndmFsdWUnOiAnPHNjcmlwdD4nIH0pO1xuICAgICAqIC8vID0+ICc8Yj4mbHQ7c2NyaXB0Jmd0OzwvYj4nXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIFwiZXZhbHVhdGVcIiBkZWxpbWl0ZXIgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0IGFuZCBnZW5lcmF0ZSBIVE1MLlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlIF8uZm9yRWFjaCh1c2VycywgZnVuY3Rpb24odXNlcikgeyAlPjxsaT48JS0gdXNlciAlPjwvbGk+PCUgfSk7ICU+Jyk7XG4gICAgICogY29tcGlsZWQoeyAndXNlcnMnOiBbJ2ZyZWQnLCAnYmFybmV5J10gfSk7XG4gICAgICogLy8gPT4gJzxsaT5mcmVkPC9saT48bGk+YmFybmV5PC9saT4nXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIGludGVybmFsIGBwcmludGAgZnVuY3Rpb24gaW4gXCJldmFsdWF0ZVwiIGRlbGltaXRlcnMuXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPCUgcHJpbnQoXCJoZWxsbyBcIiArIHVzZXIpOyAlPiEnKTtcbiAgICAgKiBjb21waWxlZCh7ICd1c2VyJzogJ2Jhcm5leScgfSk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGJhcm5leSEnXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIEVTIHRlbXBsYXRlIGxpdGVyYWwgZGVsaW1pdGVyIGFzIGFuIFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXIuXG4gICAgICogLy8gRGlzYWJsZSBzdXBwb3J0IGJ5IHJlcGxhY2luZyB0aGUgXCJpbnRlcnBvbGF0ZVwiIGRlbGltaXRlci5cbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyAkeyB1c2VyIH0hJyk7XG4gICAgICogY29tcGlsZWQoeyAndXNlcic6ICdwZWJibGVzJyB9KTtcbiAgICAgKiAvLyA9PiAnaGVsbG8gcGViYmxlcyEnXG4gICAgICpcbiAgICAgKiAvLyBVc2UgYmFja3NsYXNoZXMgdG8gdHJlYXQgZGVsaW1pdGVycyBhcyBwbGFpbiB0ZXh0LlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlPSBcIlxcXFw8JS0gdmFsdWUgJVxcXFw+XCIgJT4nKTtcbiAgICAgKiBjb21waWxlZCh7ICd2YWx1ZSc6ICdpZ25vcmVkJyB9KTtcbiAgICAgKiAvLyA9PiAnPCUtIHZhbHVlICU+J1xuICAgICAqXG4gICAgICogLy8gVXNlIHRoZSBgaW1wb3J0c2Agb3B0aW9uIHRvIGltcG9ydCBgalF1ZXJ5YCBhcyBganFgLlxuICAgICAqIHZhciB0ZXh0ID0gJzwlIGpxLmVhY2godXNlcnMsIGZ1bmN0aW9uKHVzZXIpIHsgJT48bGk+PCUtIHVzZXIgJT48L2xpPjwlIH0pOyAlPic7XG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSh0ZXh0LCB7ICdpbXBvcnRzJzogeyAnanEnOiBqUXVlcnkgfSB9KTtcbiAgICAgKiBjb21waWxlZCh7ICd1c2Vycyc6IFsnZnJlZCcsICdiYXJuZXknXSB9KTtcbiAgICAgKiAvLyA9PiAnPGxpPmZyZWQ8L2xpPjxsaT5iYXJuZXk8L2xpPidcbiAgICAgKlxuICAgICAqIC8vIFVzZSB0aGUgYHNvdXJjZVVSTGAgb3B0aW9uIHRvIHNwZWNpZnkgYSBjdXN0b20gc291cmNlVVJMIGZvciB0aGUgdGVtcGxhdGUuXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGVsbG8gPCU9IHVzZXIgJT4hJywgeyAnc291cmNlVVJMJzogJy9iYXNpYy9ncmVldGluZy5qc3QnIH0pO1xuICAgICAqIGNvbXBpbGVkKGRhdGEpO1xuICAgICAqIC8vID0+IEZpbmQgdGhlIHNvdXJjZSBvZiBcImdyZWV0aW5nLmpzdFwiIHVuZGVyIHRoZSBTb3VyY2VzIHRhYiBvciBSZXNvdXJjZXMgcGFuZWwgb2YgdGhlIHdlYiBpbnNwZWN0b3IuXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIGB2YXJpYWJsZWAgb3B0aW9uIHRvIGVuc3VyZSBhIHdpdGgtc3RhdGVtZW50IGlzbid0IHVzZWQgaW4gdGhlIGNvbXBpbGVkIHRlbXBsYXRlLlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hpIDwlPSBkYXRhLnVzZXIgJT4hJywgeyAndmFyaWFibGUnOiAnZGF0YScgfSk7XG4gICAgICogY29tcGlsZWQuc291cmNlO1xuICAgICAqIC8vID0+IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgKiAvLyAgIHZhciBfX3QsIF9fcCA9ICcnO1xuICAgICAqIC8vICAgX19wICs9ICdoaSAnICsgKChfX3QgPSAoIGRhdGEudXNlciApKSA9PSBudWxsID8gJycgOiBfX3QpICsgJyEnO1xuICAgICAqIC8vICAgcmV0dXJuIF9fcDtcbiAgICAgKiAvLyB9XG4gICAgICpcbiAgICAgKiAvLyBVc2UgY3VzdG9tIHRlbXBsYXRlIGRlbGltaXRlcnMuXG4gICAgICogXy50ZW1wbGF0ZVNldHRpbmdzLmludGVycG9sYXRlID0gL3t7KFtcXHNcXFNdKz8pfX0vZztcbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyB7eyB1c2VyIH19IScpO1xuICAgICAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnbXVzdGFjaGUnIH0pO1xuICAgICAqIC8vID0+ICdoZWxsbyBtdXN0YWNoZSEnXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIGBzb3VyY2VgIHByb3BlcnR5IHRvIGlubGluZSBjb21waWxlZCB0ZW1wbGF0ZXMgZm9yIG1lYW5pbmdmdWxcbiAgICAgKiAvLyBsaW5lIG51bWJlcnMgaW4gZXJyb3IgbWVzc2FnZXMgYW5kIHN0YWNrIHRyYWNlcy5cbiAgICAgKiBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnanN0LmpzJyksICdcXFxuICAgICAqICAgdmFyIEpTVCA9IHtcXFxuICAgICAqICAgICBcIm1haW5cIjogJyArIF8udGVtcGxhdGUobWFpblRleHQpLnNvdXJjZSArICdcXFxuICAgICAqICAgfTtcXFxuICAgICAqICcpO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRlbXBsYXRlKHN0cmluZywgb3B0aW9ucywgZ3VhcmQpIHtcbiAgICAgIC8vIEJhc2VkIG9uIEpvaG4gUmVzaWcncyBgdG1wbGAgaW1wbGVtZW50YXRpb25cbiAgICAgIC8vIChodHRwOi8vZWpvaG4ub3JnL2Jsb2cvamF2YXNjcmlwdC1taWNyby10ZW1wbGF0aW5nLylcbiAgICAgIC8vIGFuZCBMYXVyYSBEb2t0b3JvdmEncyBkb1QuanMgKGh0dHBzOi8vZ2l0aHViLmNvbS9vbGFkby9kb1QpLlxuICAgICAgdmFyIHNldHRpbmdzID0gbG9kYXNoLnRlbXBsYXRlU2V0dGluZ3M7XG5cbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzdHJpbmcsIG9wdGlvbnMsIGd1YXJkKSkge1xuICAgICAgICBvcHRpb25zID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIG9wdGlvbnMgPSBhc3NpZ25JbldpdGgoe30sIG9wdGlvbnMsIHNldHRpbmdzLCBjdXN0b21EZWZhdWx0c0Fzc2lnbkluKTtcblxuICAgICAgdmFyIGltcG9ydHMgPSBhc3NpZ25JbldpdGgoe30sIG9wdGlvbnMuaW1wb3J0cywgc2V0dGluZ3MuaW1wb3J0cywgY3VzdG9tRGVmYXVsdHNBc3NpZ25JbiksXG4gICAgICAgICAgaW1wb3J0c0tleXMgPSBrZXlzKGltcG9ydHMpLFxuICAgICAgICAgIGltcG9ydHNWYWx1ZXMgPSBiYXNlVmFsdWVzKGltcG9ydHMsIGltcG9ydHNLZXlzKTtcblxuICAgICAgdmFyIGlzRXNjYXBpbmcsXG4gICAgICAgICAgaXNFdmFsdWF0aW5nLFxuICAgICAgICAgIGluZGV4ID0gMCxcbiAgICAgICAgICBpbnRlcnBvbGF0ZSA9IG9wdGlvbnMuaW50ZXJwb2xhdGUgfHwgcmVOb01hdGNoLFxuICAgICAgICAgIHNvdXJjZSA9IFwiX19wICs9ICdcIjtcblxuICAgICAgLy8gQ29tcGlsZSB0aGUgcmVnZXhwIHRvIG1hdGNoIGVhY2ggZGVsaW1pdGVyLlxuICAgICAgdmFyIHJlRGVsaW1pdGVycyA9IFJlZ0V4cChcbiAgICAgICAgKG9wdGlvbnMuZXNjYXBlIHx8IHJlTm9NYXRjaCkuc291cmNlICsgJ3wnICtcbiAgICAgICAgaW50ZXJwb2xhdGUuc291cmNlICsgJ3wnICtcbiAgICAgICAgKGludGVycG9sYXRlID09PSByZUludGVycG9sYXRlID8gcmVFc1RlbXBsYXRlIDogcmVOb01hdGNoKS5zb3VyY2UgKyAnfCcgK1xuICAgICAgICAob3B0aW9ucy5ldmFsdWF0ZSB8fCByZU5vTWF0Y2gpLnNvdXJjZSArICd8JCdcbiAgICAgICwgJ2cnKTtcblxuICAgICAgLy8gVXNlIGEgc291cmNlVVJMIGZvciBlYXNpZXIgZGVidWdnaW5nLlxuICAgICAgLy8gVGhlIHNvdXJjZVVSTCBnZXRzIGluamVjdGVkIGludG8gdGhlIHNvdXJjZSB0aGF0J3MgZXZhbC1lZCwgc28gYmUgY2FyZWZ1bFxuICAgICAgLy8gdG8gbm9ybWFsaXplIGFsbCBraW5kcyBvZiB3aGl0ZXNwYWNlLCBzbyBlLmcuIG5ld2xpbmVzIChhbmQgdW5pY29kZSB2ZXJzaW9ucyBvZiBpdCkgY2FuJ3Qgc25lYWsgaW5cbiAgICAgIC8vIGFuZCBlc2NhcGUgdGhlIGNvbW1lbnQsIHRodXMgaW5qZWN0aW5nIGNvZGUgdGhhdCBnZXRzIGV2YWxlZC5cbiAgICAgIHZhciBzb3VyY2VVUkwgPSAnLy8jIHNvdXJjZVVSTD0nICtcbiAgICAgICAgKGhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgJ3NvdXJjZVVSTCcpXG4gICAgICAgICAgPyAob3B0aW9ucy5zb3VyY2VVUkwgKyAnJykucmVwbGFjZSgvXFxzL2csICcgJylcbiAgICAgICAgICA6ICgnbG9kYXNoLnRlbXBsYXRlU291cmNlc1snICsgKCsrdGVtcGxhdGVDb3VudGVyKSArICddJylcbiAgICAgICAgKSArICdcXG4nO1xuXG4gICAgICBzdHJpbmcucmVwbGFjZShyZURlbGltaXRlcnMsIGZ1bmN0aW9uKG1hdGNoLCBlc2NhcGVWYWx1ZSwgaW50ZXJwb2xhdGVWYWx1ZSwgZXNUZW1wbGF0ZVZhbHVlLCBldmFsdWF0ZVZhbHVlLCBvZmZzZXQpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVWYWx1ZSB8fCAoaW50ZXJwb2xhdGVWYWx1ZSA9IGVzVGVtcGxhdGVWYWx1ZSk7XG5cbiAgICAgICAgLy8gRXNjYXBlIGNoYXJhY3RlcnMgdGhhdCBjYW4ndCBiZSBpbmNsdWRlZCBpbiBzdHJpbmcgbGl0ZXJhbHMuXG4gICAgICAgIHNvdXJjZSArPSBzdHJpbmcuc2xpY2UoaW5kZXgsIG9mZnNldCkucmVwbGFjZShyZVVuZXNjYXBlZFN0cmluZywgZXNjYXBlU3RyaW5nQ2hhcik7XG5cbiAgICAgICAgLy8gUmVwbGFjZSBkZWxpbWl0ZXJzIHdpdGggc25pcHBldHMuXG4gICAgICAgIGlmIChlc2NhcGVWYWx1ZSkge1xuICAgICAgICAgIGlzRXNjYXBpbmcgPSB0cnVlO1xuICAgICAgICAgIHNvdXJjZSArPSBcIicgK1xcbl9fZShcIiArIGVzY2FwZVZhbHVlICsgXCIpICtcXG4nXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2YWx1YXRlVmFsdWUpIHtcbiAgICAgICAgICBpc0V2YWx1YXRpbmcgPSB0cnVlO1xuICAgICAgICAgIHNvdXJjZSArPSBcIic7XFxuXCIgKyBldmFsdWF0ZVZhbHVlICsgXCI7XFxuX19wICs9ICdcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW50ZXJwb2xhdGVWYWx1ZSkge1xuICAgICAgICAgIHNvdXJjZSArPSBcIicgK1xcbigoX190ID0gKFwiICsgaW50ZXJwb2xhdGVWYWx1ZSArIFwiKSkgPT0gbnVsbCA/ICcnIDogX190KSArXFxuJ1wiO1xuICAgICAgICB9XG4gICAgICAgIGluZGV4ID0gb2Zmc2V0ICsgbWF0Y2gubGVuZ3RoO1xuXG4gICAgICAgIC8vIFRoZSBKUyBlbmdpbmUgZW1iZWRkZWQgaW4gQWRvYmUgcHJvZHVjdHMgbmVlZHMgYG1hdGNoYCByZXR1cm5lZCBpblxuICAgICAgICAvLyBvcmRlciB0byBwcm9kdWNlIHRoZSBjb3JyZWN0IGBvZmZzZXRgIHZhbHVlLlxuICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICB9KTtcblxuICAgICAgc291cmNlICs9IFwiJztcXG5cIjtcblxuICAgICAgLy8gSWYgYHZhcmlhYmxlYCBpcyBub3Qgc3BlY2lmaWVkIHdyYXAgYSB3aXRoLXN0YXRlbWVudCBhcm91bmQgdGhlIGdlbmVyYXRlZFxuICAgICAgLy8gY29kZSB0byBhZGQgdGhlIGRhdGEgb2JqZWN0IHRvIHRoZSB0b3Agb2YgdGhlIHNjb3BlIGNoYWluLlxuICAgICAgdmFyIHZhcmlhYmxlID0gaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25zLCAndmFyaWFibGUnKSAmJiBvcHRpb25zLnZhcmlhYmxlO1xuICAgICAgaWYgKCF2YXJpYWJsZSkge1xuICAgICAgICBzb3VyY2UgPSAnd2l0aCAob2JqKSB7XFxuJyArIHNvdXJjZSArICdcXG59XFxuJztcbiAgICAgIH1cbiAgICAgIC8vIENsZWFudXAgY29kZSBieSBzdHJpcHBpbmcgZW1wdHkgc3RyaW5ncy5cbiAgICAgIHNvdXJjZSA9IChpc0V2YWx1YXRpbmcgPyBzb3VyY2UucmVwbGFjZShyZUVtcHR5U3RyaW5nTGVhZGluZywgJycpIDogc291cmNlKVxuICAgICAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nTWlkZGxlLCAnJDEnKVxuICAgICAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nVHJhaWxpbmcsICckMTsnKTtcblxuICAgICAgLy8gRnJhbWUgY29kZSBhcyB0aGUgZnVuY3Rpb24gYm9keS5cbiAgICAgIHNvdXJjZSA9ICdmdW5jdGlvbignICsgKHZhcmlhYmxlIHx8ICdvYmonKSArICcpIHtcXG4nICtcbiAgICAgICAgKHZhcmlhYmxlXG4gICAgICAgICAgPyAnJ1xuICAgICAgICAgIDogJ29iaiB8fCAob2JqID0ge30pO1xcbidcbiAgICAgICAgKSArXG4gICAgICAgIFwidmFyIF9fdCwgX19wID0gJydcIiArXG4gICAgICAgIChpc0VzY2FwaW5nXG4gICAgICAgICAgID8gJywgX19lID0gXy5lc2NhcGUnXG4gICAgICAgICAgIDogJydcbiAgICAgICAgKSArXG4gICAgICAgIChpc0V2YWx1YXRpbmdcbiAgICAgICAgICA/ICcsIF9faiA9IEFycmF5LnByb3RvdHlwZS5qb2luO1xcbicgK1xuICAgICAgICAgICAgXCJmdW5jdGlvbiBwcmludCgpIHsgX19wICs9IF9fai5jYWxsKGFyZ3VtZW50cywgJycpIH1cXG5cIlxuICAgICAgICAgIDogJztcXG4nXG4gICAgICAgICkgK1xuICAgICAgICBzb3VyY2UgK1xuICAgICAgICAncmV0dXJuIF9fcFxcbn0nO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gYXR0ZW1wdChmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEZ1bmN0aW9uKGltcG9ydHNLZXlzLCBzb3VyY2VVUkwgKyAncmV0dXJuICcgKyBzb3VyY2UpXG4gICAgICAgICAgLmFwcGx5KHVuZGVmaW5lZCwgaW1wb3J0c1ZhbHVlcyk7XG4gICAgICB9KTtcblxuICAgICAgLy8gUHJvdmlkZSB0aGUgY29tcGlsZWQgZnVuY3Rpb24ncyBzb3VyY2UgYnkgaXRzIGB0b1N0cmluZ2AgbWV0aG9kIG9yXG4gICAgICAvLyB0aGUgYHNvdXJjZWAgcHJvcGVydHkgYXMgYSBjb252ZW5pZW5jZSBmb3IgaW5saW5pbmcgY29tcGlsZWQgdGVtcGxhdGVzLlxuICAgICAgcmVzdWx0LnNvdXJjZSA9IHNvdXJjZTtcbiAgICAgIGlmIChpc0Vycm9yKHJlc3VsdCkpIHtcbiAgICAgICAgdGhyb3cgcmVzdWx0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCwgYXMgYSB3aG9sZSwgdG8gbG93ZXIgY2FzZSBqdXN0IGxpa2VcbiAgICAgKiBbU3RyaW5nI3RvTG93ZXJDYXNlXShodHRwczovL21kbi5pby90b0xvd2VyQ2FzZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBsb3dlciBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9Mb3dlcignLS1Gb28tQmFyLS0nKTtcbiAgICAgKiAvLyA9PiAnLS1mb28tYmFyLS0nXG4gICAgICpcbiAgICAgKiBfLnRvTG93ZXIoJ2Zvb0JhcicpO1xuICAgICAqIC8vID0+ICdmb29iYXInXG4gICAgICpcbiAgICAgKiBfLnRvTG93ZXIoJ19fRk9PX0JBUl9fJyk7XG4gICAgICogLy8gPT4gJ19fZm9vX2Jhcl9fJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvTG93ZXIodmFsdWUpIHtcbiAgICAgIHJldHVybiB0b1N0cmluZyh2YWx1ZSkudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCwgYXMgYSB3aG9sZSwgdG8gdXBwZXIgY2FzZSBqdXN0IGxpa2VcbiAgICAgKiBbU3RyaW5nI3RvVXBwZXJDYXNlXShodHRwczovL21kbi5pby90b1VwcGVyQ2FzZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB1cHBlciBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9VcHBlcignLS1mb28tYmFyLS0nKTtcbiAgICAgKiAvLyA9PiAnLS1GT08tQkFSLS0nXG4gICAgICpcbiAgICAgKiBfLnRvVXBwZXIoJ2Zvb0JhcicpO1xuICAgICAqIC8vID0+ICdGT09CQVInXG4gICAgICpcbiAgICAgKiBfLnRvVXBwZXIoJ19fZm9vX2Jhcl9fJyk7XG4gICAgICogLy8gPT4gJ19fRk9PX0JBUl9fJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvVXBwZXIodmFsdWUpIHtcbiAgICAgIHJldHVybiB0b1N0cmluZyh2YWx1ZSkudG9VcHBlckNhc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2Ugb3Igc3BlY2lmaWVkIGNoYXJhY3RlcnMgZnJvbSBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB0cmltLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9d2hpdGVzcGFjZV0gVGhlIGNoYXJhY3RlcnMgdG8gdHJpbS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRyaW1tZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRyaW0oJyAgYWJjICAnKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqXG4gICAgICogXy50cmltKCctXy1hYmMtXy0nLCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqXG4gICAgICogXy5tYXAoWycgIGZvbyAgJywgJyAgYmFyICAnXSwgXy50cmltKTtcbiAgICAgKiAvLyA9PiBbJ2ZvbycsICdiYXInXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRyaW0oc3RyaW5nLCBjaGFycywgZ3VhcmQpIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICBpZiAoc3RyaW5nICYmIChndWFyZCB8fCBjaGFycyA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UocmVUcmltLCAnJyk7XG4gICAgICB9XG4gICAgICBpZiAoIXN0cmluZyB8fCAhKGNoYXJzID0gYmFzZVRvU3RyaW5nKGNoYXJzKSkpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgIH1cbiAgICAgIHZhciBzdHJTeW1ib2xzID0gc3RyaW5nVG9BcnJheShzdHJpbmcpLFxuICAgICAgICAgIGNoclN5bWJvbHMgPSBzdHJpbmdUb0FycmF5KGNoYXJzKSxcbiAgICAgICAgICBzdGFydCA9IGNoYXJzU3RhcnRJbmRleChzdHJTeW1ib2xzLCBjaHJTeW1ib2xzKSxcbiAgICAgICAgICBlbmQgPSBjaGFyc0VuZEluZGV4KHN0clN5bWJvbHMsIGNoclN5bWJvbHMpICsgMTtcblxuICAgICAgcmV0dXJuIGNhc3RTbGljZShzdHJTeW1ib2xzLCBzdGFydCwgZW5kKS5qb2luKCcnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHRyYWlsaW5nIHdoaXRlc3BhY2Ugb3Igc3BlY2lmaWVkIGNoYXJhY3RlcnMgZnJvbSBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB0cmltLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9d2hpdGVzcGFjZV0gVGhlIGNoYXJhY3RlcnMgdG8gdHJpbS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRyaW1tZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRyaW1FbmQoJyAgYWJjICAnKTtcbiAgICAgKiAvLyA9PiAnICBhYmMnXG4gICAgICpcbiAgICAgKiBfLnRyaW1FbmQoJy1fLWFiYy1fLScsICdfLScpO1xuICAgICAqIC8vID0+ICctXy1hYmMnXG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJpbUVuZChzdHJpbmcsIGNoYXJzLCBndWFyZCkge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGlmIChzdHJpbmcgJiYgKGd1YXJkIHx8IGNoYXJzID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZShyZVRyaW1FbmQsICcnKTtcbiAgICAgIH1cbiAgICAgIGlmICghc3RyaW5nIHx8ICEoY2hhcnMgPSBiYXNlVG9TdHJpbmcoY2hhcnMpKSkge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgfVxuICAgICAgdmFyIHN0clN5bWJvbHMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyksXG4gICAgICAgICAgZW5kID0gY2hhcnNFbmRJbmRleChzdHJTeW1ib2xzLCBzdHJpbmdUb0FycmF5KGNoYXJzKSkgKyAxO1xuXG4gICAgICByZXR1cm4gY2FzdFNsaWNlKHN0clN5bWJvbHMsIDAsIGVuZCkuam9pbignJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBsZWFkaW5nIHdoaXRlc3BhY2Ugb3Igc3BlY2lmaWVkIGNoYXJhY3RlcnMgZnJvbSBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB0cmltLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9d2hpdGVzcGFjZV0gVGhlIGNoYXJhY3RlcnMgdG8gdHJpbS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRyaW1tZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRyaW1TdGFydCgnICBhYmMgICcpO1xuICAgICAqIC8vID0+ICdhYmMgICdcbiAgICAgKlxuICAgICAqIF8udHJpbVN0YXJ0KCctXy1hYmMtXy0nLCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnYWJjLV8tJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRyaW1TdGFydChzdHJpbmcsIGNoYXJzLCBndWFyZCkge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGlmIChzdHJpbmcgJiYgKGd1YXJkIHx8IGNoYXJzID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZShyZVRyaW1TdGFydCwgJycpO1xuICAgICAgfVxuICAgICAgaWYgKCFzdHJpbmcgfHwgIShjaGFycyA9IGJhc2VUb1N0cmluZyhjaGFycykpKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICB9XG4gICAgICB2YXIgc3RyU3ltYm9scyA9IHN0cmluZ1RvQXJyYXkoc3RyaW5nKSxcbiAgICAgICAgICBzdGFydCA9IGNoYXJzU3RhcnRJbmRleChzdHJTeW1ib2xzLCBzdHJpbmdUb0FycmF5KGNoYXJzKSk7XG5cbiAgICAgIHJldHVybiBjYXN0U2xpY2Uoc3RyU3ltYm9scywgc3RhcnQpLmpvaW4oJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRydW5jYXRlcyBgc3RyaW5nYCBpZiBpdCdzIGxvbmdlciB0aGFuIHRoZSBnaXZlbiBtYXhpbXVtIHN0cmluZyBsZW5ndGguXG4gICAgICogVGhlIGxhc3QgY2hhcmFjdGVycyBvZiB0aGUgdHJ1bmNhdGVkIHN0cmluZyBhcmUgcmVwbGFjZWQgd2l0aCB0aGUgb21pc3Npb25cbiAgICAgKiBzdHJpbmcgd2hpY2ggZGVmYXVsdHMgdG8gXCIuLi5cIi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB0cnVuY2F0ZS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubGVuZ3RoPTMwXSBUaGUgbWF4aW11bSBzdHJpbmcgbGVuZ3RoLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5vbWlzc2lvbj0nLi4uJ10gVGhlIHN0cmluZyB0byBpbmRpY2F0ZSB0ZXh0IGlzIG9taXR0ZWQuXG4gICAgICogQHBhcmFtIHtSZWdFeHB8c3RyaW5nfSBbb3B0aW9ucy5zZXBhcmF0b3JdIFRoZSBzZXBhcmF0b3IgcGF0dGVybiB0byB0cnVuY2F0ZSB0by5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB0cnVuY2F0ZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRydW5jYXRlKCdoaS1kaWRkbHktaG8gdGhlcmUsIG5laWdoYm9yaW5vJyk7XG4gICAgICogLy8gPT4gJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZ2hiby4uLidcbiAgICAgKlxuICAgICAqIF8udHJ1bmNhdGUoJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZ2hib3Jpbm8nLCB7XG4gICAgICogICAnbGVuZ3RoJzogMjQsXG4gICAgICogICAnc2VwYXJhdG9yJzogJyAnXG4gICAgICogfSk7XG4gICAgICogLy8gPT4gJ2hpLWRpZGRseS1obyB0aGVyZSwuLi4nXG4gICAgICpcbiAgICAgKiBfLnRydW5jYXRlKCdoaS1kaWRkbHktaG8gdGhlcmUsIG5laWdoYm9yaW5vJywge1xuICAgICAqICAgJ2xlbmd0aCc6IDI0LFxuICAgICAqICAgJ3NlcGFyYXRvcic6IC8sPyArL1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+ICdoaS1kaWRkbHktaG8gdGhlcmUuLi4nXG4gICAgICpcbiAgICAgKiBfLnRydW5jYXRlKCdoaS1kaWRkbHktaG8gdGhlcmUsIG5laWdoYm9yaW5vJywge1xuICAgICAqICAgJ29taXNzaW9uJzogJyBbLi4uXSdcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiAnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnIFsuLi5dJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRydW5jYXRlKHN0cmluZywgb3B0aW9ucykge1xuICAgICAgdmFyIGxlbmd0aCA9IERFRkFVTFRfVFJVTkNfTEVOR1RILFxuICAgICAgICAgIG9taXNzaW9uID0gREVGQVVMVF9UUlVOQ19PTUlTU0lPTjtcblxuICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgIHZhciBzZXBhcmF0b3IgPSAnc2VwYXJhdG9yJyBpbiBvcHRpb25zID8gb3B0aW9ucy5zZXBhcmF0b3IgOiBzZXBhcmF0b3I7XG4gICAgICAgIGxlbmd0aCA9ICdsZW5ndGgnIGluIG9wdGlvbnMgPyB0b0ludGVnZXIob3B0aW9ucy5sZW5ndGgpIDogbGVuZ3RoO1xuICAgICAgICBvbWlzc2lvbiA9ICdvbWlzc2lvbicgaW4gb3B0aW9ucyA/IGJhc2VUb1N0cmluZyhvcHRpb25zLm9taXNzaW9uKSA6IG9taXNzaW9uO1xuICAgICAgfVxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcblxuICAgICAgdmFyIHN0ckxlbmd0aCA9IHN0cmluZy5sZW5ndGg7XG4gICAgICBpZiAoaGFzVW5pY29kZShzdHJpbmcpKSB7XG4gICAgICAgIHZhciBzdHJTeW1ib2xzID0gc3RyaW5nVG9BcnJheShzdHJpbmcpO1xuICAgICAgICBzdHJMZW5ndGggPSBzdHJTeW1ib2xzLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGlmIChsZW5ndGggPj0gc3RyTGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICB9XG4gICAgICB2YXIgZW5kID0gbGVuZ3RoIC0gc3RyaW5nU2l6ZShvbWlzc2lvbik7XG4gICAgICBpZiAoZW5kIDwgMSkge1xuICAgICAgICByZXR1cm4gb21pc3Npb247XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gc3RyU3ltYm9sc1xuICAgICAgICA/IGNhc3RTbGljZShzdHJTeW1ib2xzLCAwLCBlbmQpLmpvaW4oJycpXG4gICAgICAgIDogc3RyaW5nLnNsaWNlKDAsIGVuZCk7XG5cbiAgICAgIGlmIChzZXBhcmF0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0ICsgb21pc3Npb247XG4gICAgICB9XG4gICAgICBpZiAoc3RyU3ltYm9scykge1xuICAgICAgICBlbmQgKz0gKHJlc3VsdC5sZW5ndGggLSBlbmQpO1xuICAgICAgfVxuICAgICAgaWYgKGlzUmVnRXhwKHNlcGFyYXRvcikpIHtcbiAgICAgICAgaWYgKHN0cmluZy5zbGljZShlbmQpLnNlYXJjaChzZXBhcmF0b3IpKSB7XG4gICAgICAgICAgdmFyIG1hdGNoLFxuICAgICAgICAgICAgICBzdWJzdHJpbmcgPSByZXN1bHQ7XG5cbiAgICAgICAgICBpZiAoIXNlcGFyYXRvci5nbG9iYWwpIHtcbiAgICAgICAgICAgIHNlcGFyYXRvciA9IFJlZ0V4cChzZXBhcmF0b3Iuc291cmNlLCB0b1N0cmluZyhyZUZsYWdzLmV4ZWMoc2VwYXJhdG9yKSkgKyAnZycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzZXBhcmF0b3IubGFzdEluZGV4ID0gMDtcbiAgICAgICAgICB3aGlsZSAoKG1hdGNoID0gc2VwYXJhdG9yLmV4ZWMoc3Vic3RyaW5nKSkpIHtcbiAgICAgICAgICAgIHZhciBuZXdFbmQgPSBtYXRjaC5pbmRleDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnNsaWNlKDAsIG5ld0VuZCA9PT0gdW5kZWZpbmVkID8gZW5kIDogbmV3RW5kKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChzdHJpbmcuaW5kZXhPZihiYXNlVG9TdHJpbmcoc2VwYXJhdG9yKSwgZW5kKSAhPSBlbmQpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gcmVzdWx0Lmxhc3RJbmRleE9mKHNlcGFyYXRvcik7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnNsaWNlKDAsIGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdCArIG9taXNzaW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBpbnZlcnNlIG9mIGBfLmVzY2FwZWA7IHRoaXMgbWV0aG9kIGNvbnZlcnRzIHRoZSBIVE1MIGVudGl0aWVzXG4gICAgICogYCZhbXA7YCwgYCZsdDtgLCBgJmd0O2AsIGAmcXVvdDtgLCBhbmQgYCYjMzk7YCBpbiBgc3RyaW5nYCB0b1xuICAgICAqIHRoZWlyIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVycy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBObyBvdGhlciBIVE1MIGVudGl0aWVzIGFyZSB1bmVzY2FwZWQuIFRvIHVuZXNjYXBlIGFkZGl0aW9uYWxcbiAgICAgKiBIVE1MIGVudGl0aWVzIHVzZSBhIHRoaXJkLXBhcnR5IGxpYnJhcnkgbGlrZSBbX2hlX10oaHR0cHM6Ly9tdGhzLmJlL2hlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjYuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB1bmVzY2FwZS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB1bmVzY2FwZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuZXNjYXBlKCdmcmVkLCBiYXJuZXksICZhbXA7IHBlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiAnZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnXG4gICAgICovXG4gICAgZnVuY3Rpb24gdW5lc2NhcGUoc3RyaW5nKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgcmV0dXJuIChzdHJpbmcgJiYgcmVIYXNFc2NhcGVkSHRtbC50ZXN0KHN0cmluZykpXG4gICAgICAgID8gc3RyaW5nLnJlcGxhY2UocmVFc2NhcGVkSHRtbCwgdW5lc2NhcGVIdG1sQ2hhcilcbiAgICAgICAgOiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AsIGFzIHNwYWNlIHNlcGFyYXRlZCB3b3JkcywgdG8gdXBwZXIgY2FzZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHVwcGVyIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy51cHBlckNhc2UoJy0tZm9vLWJhcicpO1xuICAgICAqIC8vID0+ICdGT08gQkFSJ1xuICAgICAqXG4gICAgICogXy51cHBlckNhc2UoJ2Zvb0JhcicpO1xuICAgICAqIC8vID0+ICdGT08gQkFSJ1xuICAgICAqXG4gICAgICogXy51cHBlckNhc2UoJ19fZm9vX2Jhcl9fJyk7XG4gICAgICogLy8gPT4gJ0ZPTyBCQVInXG4gICAgICovXG4gICAgdmFyIHVwcGVyQ2FzZSA9IGNyZWF0ZUNvbXBvdW5kZXIoZnVuY3Rpb24ocmVzdWx0LCB3b3JkLCBpbmRleCkge1xuICAgICAgcmV0dXJuIHJlc3VsdCArIChpbmRleCA/ICcgJyA6ICcnKSArIHdvcmQudG9VcHBlckNhc2UoKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYHN0cmluZ2AgdG8gdXBwZXIgY2FzZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udXBwZXJGaXJzdCgnZnJlZCcpO1xuICAgICAqIC8vID0+ICdGcmVkJ1xuICAgICAqXG4gICAgICogXy51cHBlckZpcnN0KCdGUkVEJyk7XG4gICAgICogLy8gPT4gJ0ZSRUQnXG4gICAgICovXG4gICAgdmFyIHVwcGVyRmlyc3QgPSBjcmVhdGVDYXNlRmlyc3QoJ3RvVXBwZXJDYXNlJyk7XG5cbiAgICAvKipcbiAgICAgKiBTcGxpdHMgYHN0cmluZ2AgaW50byBhbiBhcnJheSBvZiBpdHMgd29yZHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cHxzdHJpbmd9IFtwYXR0ZXJuXSBUaGUgcGF0dGVybiB0byBtYXRjaCB3b3Jkcy5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgd29yZHMgb2YgYHN0cmluZ2AuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ud29yZHMoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJyk7XG4gICAgICogLy8gPT4gWydmcmVkJywgJ2Jhcm5leScsICdwZWJibGVzJ11cbiAgICAgKlxuICAgICAqIF8ud29yZHMoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJywgL1teLCBdKy9nKTtcbiAgICAgKiAvLyA9PiBbJ2ZyZWQnLCAnYmFybmV5JywgJyYnLCAncGViYmxlcyddXG4gICAgICovXG4gICAgZnVuY3Rpb24gd29yZHMoc3RyaW5nLCBwYXR0ZXJuLCBndWFyZCkge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHBhdHRlcm4gPSBndWFyZCA/IHVuZGVmaW5lZCA6IHBhdHRlcm47XG5cbiAgICAgIGlmIChwYXR0ZXJuID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGhhc1VuaWNvZGVXb3JkKHN0cmluZykgPyB1bmljb2RlV29yZHMoc3RyaW5nKSA6IGFzY2lpV29yZHMoc3RyaW5nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdHJpbmcubWF0Y2gocGF0dGVybikgfHwgW107XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQXR0ZW1wdHMgdG8gaW52b2tlIGBmdW5jYCwgcmV0dXJuaW5nIGVpdGhlciB0aGUgcmVzdWx0IG9yIHRoZSBjYXVnaHQgZXJyb3JcbiAgICAgKiBvYmplY3QuIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgdG8gYGZ1bmNgIHdoZW4gaXQncyBpbnZva2VkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhdHRlbXB0LlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIGBmdW5jYCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBgZnVuY2AgcmVzdWx0IG9yIGVycm9yIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gQXZvaWQgdGhyb3dpbmcgZXJyb3JzIGZvciBpbnZhbGlkIHNlbGVjdG9ycy5cbiAgICAgKiB2YXIgZWxlbWVudHMgPSBfLmF0dGVtcHQoZnVuY3Rpb24oc2VsZWN0b3IpIHtcbiAgICAgKiAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAgICAgKiB9LCAnPl8+Jyk7XG4gICAgICpcbiAgICAgKiBpZiAoXy5pc0Vycm9yKGVsZW1lbnRzKSkge1xuICAgICAqICAgZWxlbWVudHMgPSBbXTtcbiAgICAgKiB9XG4gICAgICovXG4gICAgdmFyIGF0dGVtcHQgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCBhcmdzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXBwbHkoZnVuYywgdW5kZWZpbmVkLCBhcmdzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGlzRXJyb3IoZSkgPyBlIDogbmV3IEVycm9yKGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQmluZHMgbWV0aG9kcyBvZiBhbiBvYmplY3QgdG8gdGhlIG9iamVjdCBpdHNlbGYsIG92ZXJ3cml0aW5nIHRoZSBleGlzdGluZ1xuICAgICAqIG1ldGhvZC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBkb2Vzbid0IHNldCB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSBvZiBib3VuZCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBiaW5kIGFuZCBhc3NpZ24gdGhlIGJvdW5kIG1ldGhvZHMgdG8uXG4gICAgICogQHBhcmFtIHsuLi4oc3RyaW5nfHN0cmluZ1tdKX0gbWV0aG9kTmFtZXMgVGhlIG9iamVjdCBtZXRob2QgbmFtZXMgdG8gYmluZC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdmlldyA9IHtcbiAgICAgKiAgICdsYWJlbCc6ICdkb2NzJyxcbiAgICAgKiAgICdjbGljayc6IGZ1bmN0aW9uKCkge1xuICAgICAqICAgICBjb25zb2xlLmxvZygnY2xpY2tlZCAnICsgdGhpcy5sYWJlbCk7XG4gICAgICogICB9XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIF8uYmluZEFsbCh2aWV3LCBbJ2NsaWNrJ10pO1xuICAgICAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCB2aWV3LmNsaWNrKTtcbiAgICAgKiAvLyA9PiBMb2dzICdjbGlja2VkIGRvY3MnIHdoZW4gY2xpY2tlZC5cbiAgICAgKi9cbiAgICB2YXIgYmluZEFsbCA9IGZsYXRSZXN0KGZ1bmN0aW9uKG9iamVjdCwgbWV0aG9kTmFtZXMpIHtcbiAgICAgIGFycmF5RWFjaChtZXRob2ROYW1lcywgZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgIGtleSA9IHRvS2V5KGtleSk7XG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgYmluZChvYmplY3Rba2V5XSwgb2JqZWN0KSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpdGVyYXRlcyBvdmVyIGBwYWlyc2AgYW5kIGludm9rZXMgdGhlIGNvcnJlc3BvbmRpbmdcbiAgICAgKiBmdW5jdGlvbiBvZiB0aGUgZmlyc3QgcHJlZGljYXRlIHRvIHJldHVybiB0cnV0aHkuIFRoZSBwcmVkaWNhdGUtZnVuY3Rpb25cbiAgICAgKiBwYWlycyBhcmUgaW52b2tlZCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBhbmQgYXJndW1lbnRzIG9mIHRoZSBjcmVhdGVkXG4gICAgICogZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhaXJzIFRoZSBwcmVkaWNhdGUtZnVuY3Rpb24gcGFpcnMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY29tcG9zaXRlIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgZnVuYyA9IF8uY29uZChbXG4gICAgICogICBbXy5tYXRjaGVzKHsgJ2EnOiAxIH0pLCAgICAgICAgICAgXy5jb25zdGFudCgnbWF0Y2hlcyBBJyldLFxuICAgICAqICAgW18uY29uZm9ybXMoeyAnYic6IF8uaXNOdW1iZXIgfSksIF8uY29uc3RhbnQoJ21hdGNoZXMgQicpXSxcbiAgICAgKiAgIFtfLnN0dWJUcnVlLCAgICAgICAgICAgICAgICAgICAgICBfLmNvbnN0YW50KCdubyBtYXRjaCcpXVxuICAgICAqIF0pO1xuICAgICAqXG4gICAgICogZnVuYyh7ICdhJzogMSwgJ2InOiAyIH0pO1xuICAgICAqIC8vID0+ICdtYXRjaGVzIEEnXG4gICAgICpcbiAgICAgKiBmdW5jKHsgJ2EnOiAwLCAnYic6IDEgfSk7XG4gICAgICogLy8gPT4gJ21hdGNoZXMgQidcbiAgICAgKlxuICAgICAqIGZ1bmMoeyAnYSc6ICcxJywgJ2InOiAnMicgfSk7XG4gICAgICogLy8gPT4gJ25vIG1hdGNoJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbmQocGFpcnMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBwYWlycyA9PSBudWxsID8gMCA6IHBhaXJzLmxlbmd0aCxcbiAgICAgICAgICB0b0l0ZXJhdGVlID0gZ2V0SXRlcmF0ZWUoKTtcblxuICAgICAgcGFpcnMgPSAhbGVuZ3RoID8gW10gOiBhcnJheU1hcChwYWlycywgZnVuY3Rpb24ocGFpcikge1xuICAgICAgICBpZiAodHlwZW9mIHBhaXJbMV0gIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3RvSXRlcmF0ZWUocGFpclswXSksIHBhaXJbMV1dO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIHZhciBwYWlyID0gcGFpcnNbaW5kZXhdO1xuICAgICAgICAgIGlmIChhcHBseShwYWlyWzBdLCB0aGlzLCBhcmdzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGFwcGx5KHBhaXJbMV0sIHRoaXMsIGFyZ3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyB0aGUgcHJlZGljYXRlIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgd2l0aFxuICAgICAqIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IHZhbHVlcyBvZiBhIGdpdmVuIG9iamVjdCwgcmV0dXJuaW5nIGB0cnVlYCBpZlxuICAgICAqIGFsbCBwcmVkaWNhdGVzIHJldHVybiB0cnV0aHksIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGUgY3JlYXRlZCBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIGBfLmNvbmZvcm1zVG9gIHdpdGhcbiAgICAgKiBgc291cmNlYCBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHByZWRpY2F0ZXMgdG8gY29uZm9ybSB0by5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcbiAgICAgKiAgIHsgJ2EnOiAyLCAnYic6IDEgfSxcbiAgICAgKiAgIHsgJ2EnOiAxLCAnYic6IDIgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmZpbHRlcihvYmplY3RzLCBfLmNvbmZvcm1zKHsgJ2InOiBmdW5jdGlvbihuKSB7IHJldHVybiBuID4gMTsgfSB9KSk7XG4gICAgICogLy8gPT4gW3sgJ2EnOiAxLCAnYic6IDIgfV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb25mb3Jtcyhzb3VyY2UpIHtcbiAgICAgIHJldHVybiBiYXNlQ29uZm9ybXMoYmFzZUNsb25lKHNvdXJjZSwgQ0xPTkVfREVFUF9GTEFHKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuNC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byByZXR1cm4gZnJvbSB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbnN0YW50IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IF8udGltZXMoMiwgXy5jb25zdGFudCh7ICdhJzogMSB9KSk7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3RzKTtcbiAgICAgKiAvLyA9PiBbeyAnYSc6IDEgfSwgeyAnYSc6IDEgfV1cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdHNbMF0gPT09IG9iamVjdHNbMV0pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb25zdGFudCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBgdmFsdWVgIHRvIGRldGVybWluZSB3aGV0aGVyIGEgZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgcmV0dXJuZWQgaW5cbiAgICAgKiBpdHMgcGxhY2UuIFRoZSBgZGVmYXVsdFZhbHVlYCBpcyByZXR1cm5lZCBpZiBgdmFsdWVgIGlzIGBOYU5gLCBgbnVsbGAsXG4gICAgICogb3IgYHVuZGVmaW5lZGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4xNC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcGFyYW0geyp9IGRlZmF1bHRWYWx1ZSBUaGUgZGVmYXVsdCB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVmYXVsdFRvKDEsIDEwKTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICpcbiAgICAgKiBfLmRlZmF1bHRUbyh1bmRlZmluZWQsIDEwKTtcbiAgICAgKiAvLyA9PiAxMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRlZmF1bHRUbyh2YWx1ZSwgZGVmYXVsdFZhbHVlKSB7XG4gICAgICByZXR1cm4gKHZhbHVlID09IG51bGwgfHwgdmFsdWUgIT09IHZhbHVlKSA/IGRlZmF1bHRWYWx1ZSA6IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHJlc3VsdCBvZiBpbnZva2luZyB0aGUgZ2l2ZW4gZnVuY3Rpb25zXG4gICAgICogd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgdGhlIGNyZWF0ZWQgZnVuY3Rpb24sIHdoZXJlIGVhY2ggc3VjY2Vzc2l2ZVxuICAgICAqIGludm9jYXRpb24gaXMgc3VwcGxpZWQgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgcHJldmlvdXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7Li4uKEZ1bmN0aW9ufEZ1bmN0aW9uW10pfSBbZnVuY3NdIFRoZSBmdW5jdGlvbnMgdG8gaW52b2tlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbXBvc2l0ZSBmdW5jdGlvbi5cbiAgICAgKiBAc2VlIF8uZmxvd1JpZ2h0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIHNxdWFyZShuKSB7XG4gICAgICogICByZXR1cm4gbiAqIG47XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGFkZFNxdWFyZSA9IF8uZmxvdyhbXy5hZGQsIHNxdWFyZV0pO1xuICAgICAqIGFkZFNxdWFyZSgxLCAyKTtcbiAgICAgKiAvLyA9PiA5XG4gICAgICovXG4gICAgdmFyIGZsb3cgPSBjcmVhdGVGbG93KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZsb3dgIGV4Y2VwdCB0aGF0IGl0IGNyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0XG4gICAgICogaW52b2tlcyB0aGUgZ2l2ZW4gZnVuY3Rpb25zIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHsuLi4oRnVuY3Rpb258RnVuY3Rpb25bXSl9IFtmdW5jc10gVGhlIGZ1bmN0aW9ucyB0byBpbnZva2UuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY29tcG9zaXRlIGZ1bmN0aW9uLlxuICAgICAqIEBzZWUgXy5mbG93XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIHNxdWFyZShuKSB7XG4gICAgICogICByZXR1cm4gbiAqIG47XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGFkZFNxdWFyZSA9IF8uZmxvd1JpZ2h0KFtzcXVhcmUsIF8uYWRkXSk7XG4gICAgICogYWRkU3F1YXJlKDEsIDIpO1xuICAgICAqIC8vID0+IDlcbiAgICAgKi9cbiAgICB2YXIgZmxvd1JpZ2h0ID0gY3JlYXRlRmxvdyh0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGZpcnN0IGFyZ3VtZW50IGl0IHJlY2VpdmVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIEFueSB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyBgdmFsdWVgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKF8uaWRlbnRpdHkob2JqZWN0KSA9PT0gb2JqZWN0KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaWRlbnRpdHkodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIHRoZSBhcmd1bWVudHMgb2YgdGhlIGNyZWF0ZWRcbiAgICAgKiBmdW5jdGlvbi4gSWYgYGZ1bmNgIGlzIGEgcHJvcGVydHkgbmFtZSwgdGhlIGNyZWF0ZWQgZnVuY3Rpb24gcmV0dXJucyB0aGVcbiAgICAgKiBwcm9wZXJ0eSB2YWx1ZSBmb3IgYSBnaXZlbiBlbGVtZW50LiBJZiBgZnVuY2AgaXMgYW4gYXJyYXkgb3Igb2JqZWN0LCB0aGVcbiAgICAgKiBjcmVhdGVkIGZ1bmN0aW9uIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGNvbnRhaW4gdGhlIGVxdWl2YWxlbnRcbiAgICAgKiBzb3VyY2UgcHJvcGVydGllcywgb3RoZXJ3aXNlIGl0IHJldHVybnMgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHsqfSBbZnVuYz1fLmlkZW50aXR5XSBUaGUgdmFsdWUgdG8gY29udmVydCB0byBhIGNhbGxiYWNrLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgY2FsbGJhY2suXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maWx0ZXIodXNlcnMsIF8uaXRlcmF0ZWUoeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogdHJ1ZSB9KSk7XG4gICAgICogLy8gPT4gW3sgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9XVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmlsdGVyKHVzZXJzLCBfLml0ZXJhdGVlKFsndXNlcicsICdmcmVkJ10pKTtcbiAgICAgKiAvLyA9PiBbeyAndXNlcic6ICdmcmVkJywgJ2FnZSc6IDQwIH1dXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLm1hcCh1c2VycywgXy5pdGVyYXRlZSgndXNlcicpKTtcbiAgICAgKiAvLyA9PiBbJ2Jhcm5leScsICdmcmVkJ11cbiAgICAgKlxuICAgICAqIC8vIENyZWF0ZSBjdXN0b20gaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKiBfLml0ZXJhdGVlID0gXy53cmFwKF8uaXRlcmF0ZWUsIGZ1bmN0aW9uKGl0ZXJhdGVlLCBmdW5jKSB7XG4gICAgICogICByZXR1cm4gIV8uaXNSZWdFeHAoZnVuYykgPyBpdGVyYXRlZShmdW5jKSA6IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAqICAgICByZXR1cm4gZnVuYy50ZXN0KHN0cmluZyk7XG4gICAgICogICB9O1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogXy5maWx0ZXIoWydhYmMnLCAnZGVmJ10sIC9lZi8pO1xuICAgICAqIC8vID0+IFsnZGVmJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpdGVyYXRlZShmdW5jKSB7XG4gICAgICByZXR1cm4gYmFzZUl0ZXJhdGVlKHR5cGVvZiBmdW5jID09ICdmdW5jdGlvbicgPyBmdW5jIDogYmFzZUNsb25lKGZ1bmMsIENMT05FX0RFRVBfRkxBRykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHBlcmZvcm1zIGEgcGFydGlhbCBkZWVwIGNvbXBhcmlzb24gYmV0d2VlbiBhIGdpdmVuXG4gICAgICogb2JqZWN0IGFuZCBgc291cmNlYCwgcmV0dXJuaW5nIGB0cnVlYCBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGhhcyBlcXVpdmFsZW50XG4gICAgICogcHJvcGVydHkgdmFsdWVzLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhlIGNyZWF0ZWQgZnVuY3Rpb24gaXMgZXF1aXZhbGVudCB0byBgXy5pc01hdGNoYCB3aXRoIGBzb3VyY2VgXG4gICAgICogcGFydGlhbGx5IGFwcGxpZWQuXG4gICAgICpcbiAgICAgKiBQYXJ0aWFsIGNvbXBhcmlzb25zIHdpbGwgbWF0Y2ggZW1wdHkgYXJyYXkgYW5kIGVtcHR5IG9iamVjdCBgc291cmNlYFxuICAgICAqIHZhbHVlcyBhZ2FpbnN0IGFueSBhcnJheSBvciBvYmplY3QgdmFsdWUsIHJlc3BlY3RpdmVseS4gU2VlIGBfLmlzRXF1YWxgXG4gICAgICogZm9yIGEgbGlzdCBvZiBzdXBwb3J0ZWQgdmFsdWUgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogTXVsdGlwbGUgdmFsdWVzIGNhbiBiZSBjaGVja2VkIGJ5IGNvbWJpbmluZyBzZXZlcmFsIG1hdGNoZXJzXG4gICAgICogdXNpbmcgYF8ub3ZlclNvbWVgXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgdG8gbWF0Y2guXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc3BlYyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbXG4gICAgICogICB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDMgfSxcbiAgICAgKiAgIHsgJ2EnOiA0LCAnYic6IDUsICdjJzogNiB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmlsdGVyKG9iamVjdHMsIF8ubWF0Y2hlcyh7ICdhJzogNCwgJ2MnOiA2IH0pKTtcbiAgICAgKiAvLyA9PiBbeyAnYSc6IDQsICdiJzogNSwgJ2MnOiA2IH1dXG4gICAgICpcbiAgICAgKiAvLyBDaGVja2luZyBmb3Igc2V2ZXJhbCBwb3NzaWJsZSB2YWx1ZXNcbiAgICAgKiBfLmZpbHRlcihvYmplY3RzLCBfLm92ZXJTb21lKFtfLm1hdGNoZXMoeyAnYSc6IDEgfSksIF8ubWF0Y2hlcyh7ICdhJzogNCB9KV0pKTtcbiAgICAgKiAvLyA9PiBbeyAnYSc6IDEsICdiJzogMiwgJ2MnOiAzIH0sIHsgJ2EnOiA0LCAnYic6IDUsICdjJzogNiB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hdGNoZXMoc291cmNlKSB7XG4gICAgICByZXR1cm4gYmFzZU1hdGNoZXMoYmFzZUNsb25lKHNvdXJjZSwgQ0xPTkVfREVFUF9GTEFHKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcGVyZm9ybXMgYSBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbiBiZXR3ZWVuIHRoZVxuICAgICAqIHZhbHVlIGF0IGBwYXRoYCBvZiBhIGdpdmVuIG9iamVjdCB0byBgc3JjVmFsdWVgLCByZXR1cm5pbmcgYHRydWVgIGlmIHRoZVxuICAgICAqIG9iamVjdCB2YWx1ZSBpcyBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogUGFydGlhbCBjb21wYXJpc29ucyB3aWxsIG1hdGNoIGVtcHR5IGFycmF5IGFuZCBlbXB0eSBvYmplY3RcbiAgICAgKiBgc3JjVmFsdWVgIHZhbHVlcyBhZ2FpbnN0IGFueSBhcnJheSBvciBvYmplY3QgdmFsdWUsIHJlc3BlY3RpdmVseS4gU2VlXG4gICAgICogYF8uaXNFcXVhbGAgZm9yIGEgbGlzdCBvZiBzdXBwb3J0ZWQgdmFsdWUgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogTXVsdGlwbGUgdmFsdWVzIGNhbiBiZSBjaGVja2VkIGJ5IGNvbWJpbmluZyBzZXZlcmFsIG1hdGNoZXJzXG4gICAgICogdXNpbmcgYF8ub3ZlclNvbWVgXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4yLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAgICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgdmFsdWUgdG8gbWF0Y2guXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc3BlYyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbXG4gICAgICogICB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDMgfSxcbiAgICAgKiAgIHsgJ2EnOiA0LCAnYic6IDUsICdjJzogNiB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmluZChvYmplY3RzLCBfLm1hdGNoZXNQcm9wZXJ0eSgnYScsIDQpKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogNCwgJ2InOiA1LCAnYyc6IDYgfVxuICAgICAqXG4gICAgICogLy8gQ2hlY2tpbmcgZm9yIHNldmVyYWwgcG9zc2libGUgdmFsdWVzXG4gICAgICogXy5maWx0ZXIob2JqZWN0cywgXy5vdmVyU29tZShbXy5tYXRjaGVzUHJvcGVydHkoJ2EnLCAxKSwgXy5tYXRjaGVzUHJvcGVydHkoJ2EnLCA0KV0pKTtcbiAgICAgKiAvLyA9PiBbeyAnYSc6IDEsICdiJzogMiwgJ2MnOiAzIH0sIHsgJ2EnOiA0LCAnYic6IDUsICdjJzogNiB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hdGNoZXNQcm9wZXJ0eShwYXRoLCBzcmNWYWx1ZSkge1xuICAgICAgcmV0dXJuIGJhc2VNYXRjaGVzUHJvcGVydHkocGF0aCwgYmFzZUNsb25lKHNyY1ZhbHVlLCBDTE9ORV9ERUVQX0ZMQUcpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIHRoZSBtZXRob2QgYXQgYHBhdGhgIG9mIGEgZ2l2ZW4gb2JqZWN0LlxuICAgICAqIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgdG8gdGhlIGludm9rZWQgbWV0aG9kLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuNy4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgbWV0aG9kIHRvIGludm9rZS5cbiAgICAgKiBAcGFyYW0gey4uLip9IFthcmdzXSBUaGUgYXJndW1lbnRzIHRvIGludm9rZSB0aGUgbWV0aG9kIHdpdGguXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgaW52b2tlciBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbXG4gICAgICogICB7ICdhJzogeyAnYic6IF8uY29uc3RhbnQoMikgfSB9LFxuICAgICAqICAgeyAnYSc6IHsgJ2InOiBfLmNvbnN0YW50KDEpIH0gfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLm1hcChvYmplY3RzLCBfLm1ldGhvZCgnYS5iJykpO1xuICAgICAqIC8vID0+IFsyLCAxXVxuICAgICAqXG4gICAgICogXy5tYXAob2JqZWN0cywgXy5tZXRob2QoWydhJywgJ2InXSkpO1xuICAgICAqIC8vID0+IFsyLCAxXVxuICAgICAqL1xuICAgIHZhciBtZXRob2QgPSBiYXNlUmVzdChmdW5jdGlvbihwYXRoLCBhcmdzKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBiYXNlSW52b2tlKG9iamVjdCwgcGF0aCwgYXJncyk7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLm1ldGhvZGA7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXNcbiAgICAgKiB0aGUgbWV0aG9kIGF0IGEgZ2l2ZW4gcGF0aCBvZiBgb2JqZWN0YC4gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZVxuICAgICAqIHByb3ZpZGVkIHRvIHRoZSBpbnZva2VkIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjcuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIHRoZSBtZXRob2Qgd2l0aC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBpbnZva2VyIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBfLnRpbWVzKDMsIF8uY29uc3RhbnQpLFxuICAgICAqICAgICBvYmplY3QgPSB7ICdhJzogYXJyYXksICdiJzogYXJyYXksICdjJzogYXJyYXkgfTtcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnYVsyXScsICdjWzBdJ10sIF8ubWV0aG9kT2Yob2JqZWN0KSk7XG4gICAgICogLy8gPT4gWzIsIDBdXG4gICAgICpcbiAgICAgKiBfLm1hcChbWydhJywgJzInXSwgWydjJywgJzAnXV0sIF8ubWV0aG9kT2Yob2JqZWN0KSk7XG4gICAgICogLy8gPT4gWzIsIDBdXG4gICAgICovXG4gICAgdmFyIG1ldGhvZE9mID0gYmFzZVJlc3QoZnVuY3Rpb24ob2JqZWN0LCBhcmdzKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICByZXR1cm4gYmFzZUludm9rZShvYmplY3QsIHBhdGgsIGFyZ3MpO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEFkZHMgYWxsIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBmdW5jdGlvbiBwcm9wZXJ0aWVzIG9mIGEgc291cmNlXG4gICAgICogb2JqZWN0IHRvIHRoZSBkZXN0aW5hdGlvbiBvYmplY3QuIElmIGBvYmplY3RgIGlzIGEgZnVuY3Rpb24sIHRoZW4gbWV0aG9kc1xuICAgICAqIGFyZSBhZGRlZCB0byBpdHMgcHJvdG90eXBlIGFzIHdlbGwuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVXNlIGBfLnJ1bkluQ29udGV4dGAgdG8gY3JlYXRlIGEgcHJpc3RpbmUgYGxvZGFzaGAgZnVuY3Rpb24gdG9cbiAgICAgKiBhdm9pZCBjb25mbGljdHMgY2F1c2VkIGJ5IG1vZGlmeWluZyB0aGUgb3JpZ2luYWwuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fSBbb2JqZWN0PWxvZGFzaF0gVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgZnVuY3Rpb25zIHRvIGFkZC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmNoYWluPXRydWVdIFNwZWNpZnkgd2hldGhlciBtaXhpbnMgYXJlIGNoYWluYWJsZS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb258T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiB2b3dlbHMoc3RyaW5nKSB7XG4gICAgICogICByZXR1cm4gXy5maWx0ZXIoc3RyaW5nLCBmdW5jdGlvbih2KSB7XG4gICAgICogICAgIHJldHVybiAvW2FlaW91XS9pLnRlc3Qodik7XG4gICAgICogICB9KTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLm1peGluKHsgJ3Zvd2Vscyc6IHZvd2VscyB9KTtcbiAgICAgKiBfLnZvd2VscygnZnJlZCcpO1xuICAgICAqIC8vID0+IFsnZSddXG4gICAgICpcbiAgICAgKiBfKCdmcmVkJykudm93ZWxzKCkudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbJ2UnXVxuICAgICAqXG4gICAgICogXy5taXhpbih7ICd2b3dlbHMnOiB2b3dlbHMgfSwgeyAnY2hhaW4nOiBmYWxzZSB9KTtcbiAgICAgKiBfKCdmcmVkJykudm93ZWxzKCk7XG4gICAgICogLy8gPT4gWydlJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtaXhpbihvYmplY3QsIHNvdXJjZSwgb3B0aW9ucykge1xuICAgICAgdmFyIHByb3BzID0ga2V5cyhzb3VyY2UpLFxuICAgICAgICAgIG1ldGhvZE5hbWVzID0gYmFzZUZ1bmN0aW9ucyhzb3VyY2UsIHByb3BzKTtcblxuICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCAmJlxuICAgICAgICAgICEoaXNPYmplY3Qoc291cmNlKSAmJiAobWV0aG9kTmFtZXMubGVuZ3RoIHx8ICFwcm9wcy5sZW5ndGgpKSkge1xuICAgICAgICBvcHRpb25zID0gc291cmNlO1xuICAgICAgICBzb3VyY2UgPSBvYmplY3Q7XG4gICAgICAgIG9iamVjdCA9IHRoaXM7XG4gICAgICAgIG1ldGhvZE5hbWVzID0gYmFzZUZ1bmN0aW9ucyhzb3VyY2UsIGtleXMoc291cmNlKSk7XG4gICAgICB9XG4gICAgICB2YXIgY2hhaW4gPSAhKGlzT2JqZWN0KG9wdGlvbnMpICYmICdjaGFpbicgaW4gb3B0aW9ucykgfHwgISFvcHRpb25zLmNoYWluLFxuICAgICAgICAgIGlzRnVuYyA9IGlzRnVuY3Rpb24ob2JqZWN0KTtcblxuICAgICAgYXJyYXlFYWNoKG1ldGhvZE5hbWVzLCBmdW5jdGlvbihtZXRob2ROYW1lKSB7XG4gICAgICAgIHZhciBmdW5jID0gc291cmNlW21ldGhvZE5hbWVdO1xuICAgICAgICBvYmplY3RbbWV0aG9kTmFtZV0gPSBmdW5jO1xuICAgICAgICBpZiAoaXNGdW5jKSB7XG4gICAgICAgICAgb2JqZWN0LnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGNoYWluQWxsID0gdGhpcy5fX2NoYWluX187XG4gICAgICAgICAgICBpZiAoY2hhaW4gfHwgY2hhaW5BbGwpIHtcbiAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG9iamVjdCh0aGlzLl9fd3JhcHBlZF9fKSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbnMgPSByZXN1bHQuX19hY3Rpb25zX18gPSBjb3B5QXJyYXkodGhpcy5fX2FjdGlvbnNfXyk7XG5cbiAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHsgJ2Z1bmMnOiBmdW5jLCAnYXJncyc6IGFyZ3VtZW50cywgJ3RoaXNBcmcnOiBvYmplY3QgfSk7XG4gICAgICAgICAgICAgIHJlc3VsdC5fX2NoYWluX18gPSBjaGFpbkFsbDtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KG9iamVjdCwgYXJyYXlQdXNoKFt0aGlzLnZhbHVlKCldLCBhcmd1bWVudHMpKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXZlcnRzIHRoZSBgX2AgdmFyaWFibGUgdG8gaXRzIHByZXZpb3VzIHZhbHVlIGFuZCByZXR1cm5zIGEgcmVmZXJlbmNlIHRvXG4gICAgICogdGhlIGBsb2Rhc2hgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGBsb2Rhc2hgIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgbG9kYXNoID0gXy5ub0NvbmZsaWN0KCk7XG4gICAgICovXG4gICAgZnVuY3Rpb24gbm9Db25mbGljdCgpIHtcbiAgICAgIGlmIChyb290Ll8gPT09IHRoaXMpIHtcbiAgICAgICAgcm9vdC5fID0gb2xkRGFzaDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYHVuZGVmaW5lZGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRpbWVzKDIsIF8ubm9vcCk7XG4gICAgICogLy8gPT4gW3VuZGVmaW5lZCwgdW5kZWZpbmVkXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG5vb3AoKSB7XG4gICAgICAvLyBObyBvcGVyYXRpb24gcGVyZm9ybWVkLlxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGdldHMgdGhlIGFyZ3VtZW50IGF0IGluZGV4IGBuYC4gSWYgYG5gIGlzIG5lZ2F0aXZlLFxuICAgICAqIHRoZSBudGggYXJndW1lbnQgZnJvbSB0aGUgZW5kIGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MF0gVGhlIGluZGV4IG9mIHRoZSBhcmd1bWVudCB0byByZXR1cm4uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcGFzcy10aHJ1IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgZnVuYyA9IF8ubnRoQXJnKDEpO1xuICAgICAqIGZ1bmMoJ2EnLCAnYicsICdjJywgJ2QnKTtcbiAgICAgKiAvLyA9PiAnYidcbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5udGhBcmcoLTIpO1xuICAgICAqIGZ1bmMoJ2EnLCAnYicsICdjJywgJ2QnKTtcbiAgICAgKiAvLyA9PiAnYydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBudGhBcmcobikge1xuICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgIHJldHVybiBiYXNlTnRoKGFyZ3MsIG4pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgaXRlcmF0ZWVzYCB3aXRoIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXNcbiAgICAgKiBhbmQgcmV0dXJucyB0aGVpciByZXN1bHRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW2l0ZXJhdGVlcz1bXy5pZGVudGl0eV1dXG4gICAgICogIFRoZSBpdGVyYXRlZXMgdG8gaW52b2tlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgZnVuYyA9IF8ub3ZlcihbTWF0aC5tYXgsIE1hdGgubWluXSk7XG4gICAgICpcbiAgICAgKiBmdW5jKDEsIDIsIDMsIDQpO1xuICAgICAqIC8vID0+IFs0LCAxXVxuICAgICAqL1xuICAgIHZhciBvdmVyID0gY3JlYXRlT3ZlcihhcnJheU1hcCk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBjaGVja3MgaWYgKiphbGwqKiBvZiB0aGUgYHByZWRpY2F0ZXNgIHJldHVyblxuICAgICAqIHRydXRoeSB3aGVuIGludm9rZWQgd2l0aCB0aGUgYXJndW1lbnRzIGl0IHJlY2VpdmVzLlxuICAgICAqXG4gICAgICogRm9sbG93aW5nIHNob3J0aGFuZHMgYXJlIHBvc3NpYmxlIGZvciBwcm92aWRpbmcgcHJlZGljYXRlcy5cbiAgICAgKiBQYXNzIGFuIGBPYmplY3RgIGFuZCBpdCB3aWxsIGJlIHVzZWQgYXMgYW4gcGFyYW1ldGVyIGZvciBgXy5tYXRjaGVzYCB0byBjcmVhdGUgdGhlIHByZWRpY2F0ZS5cbiAgICAgKiBQYXNzIGFuIGBBcnJheWAgb2YgcGFyYW1ldGVycyBmb3IgYF8ubWF0Y2hlc1Byb3BlcnR5YCBhbmQgdGhlIHByZWRpY2F0ZSB3aWxsIGJlIGNyZWF0ZWQgdXNpbmcgdGhlbS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHsuLi4oRnVuY3Rpb258RnVuY3Rpb25bXSl9IFtwcmVkaWNhdGVzPVtfLmlkZW50aXR5XV1cbiAgICAgKiAgVGhlIHByZWRpY2F0ZXMgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5vdmVyRXZlcnkoW0Jvb2xlYW4sIGlzRmluaXRlXSk7XG4gICAgICpcbiAgICAgKiBmdW5jKCcxJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogZnVuYyhudWxsKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogZnVuYyhOYU4pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIG92ZXJFdmVyeSA9IGNyZWF0ZU92ZXIoYXJyYXlFdmVyeSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBjaGVja3MgaWYgKiphbnkqKiBvZiB0aGUgYHByZWRpY2F0ZXNgIHJldHVyblxuICAgICAqIHRydXRoeSB3aGVuIGludm9rZWQgd2l0aCB0aGUgYXJndW1lbnRzIGl0IHJlY2VpdmVzLlxuICAgICAqXG4gICAgICogRm9sbG93aW5nIHNob3J0aGFuZHMgYXJlIHBvc3NpYmxlIGZvciBwcm92aWRpbmcgcHJlZGljYXRlcy5cbiAgICAgKiBQYXNzIGFuIGBPYmplY3RgIGFuZCBpdCB3aWxsIGJlIHVzZWQgYXMgYW4gcGFyYW1ldGVyIGZvciBgXy5tYXRjaGVzYCB0byBjcmVhdGUgdGhlIHByZWRpY2F0ZS5cbiAgICAgKiBQYXNzIGFuIGBBcnJheWAgb2YgcGFyYW1ldGVycyBmb3IgYF8ubWF0Y2hlc1Byb3BlcnR5YCBhbmQgdGhlIHByZWRpY2F0ZSB3aWxsIGJlIGNyZWF0ZWQgdXNpbmcgdGhlbS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHsuLi4oRnVuY3Rpb258RnVuY3Rpb25bXSl9IFtwcmVkaWNhdGVzPVtfLmlkZW50aXR5XV1cbiAgICAgKiAgVGhlIHByZWRpY2F0ZXMgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5vdmVyU29tZShbQm9vbGVhbiwgaXNGaW5pdGVdKTtcbiAgICAgKlxuICAgICAqIGZ1bmMoJzEnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBmdW5jKG51bGwpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGZ1bmMoTmFOKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogdmFyIG1hdGNoZXNGdW5jID0gXy5vdmVyU29tZShbeyAnYSc6IDEgfSwgeyAnYSc6IDIgfV0pXG4gICAgICogdmFyIG1hdGNoZXNQcm9wZXJ0eUZ1bmMgPSBfLm92ZXJTb21lKFtbJ2EnLCAxXSwgWydhJywgMl1dKVxuICAgICAqL1xuICAgIHZhciBvdmVyU29tZSA9IGNyZWF0ZU92ZXIoYXJyYXlTb21lKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHZhbHVlIGF0IGBwYXRoYCBvZiBhIGdpdmVuIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjQuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbXG4gICAgICogICB7ICdhJzogeyAnYic6IDIgfSB9LFxuICAgICAqICAgeyAnYSc6IHsgJ2InOiAxIH0gfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLm1hcChvYmplY3RzLCBfLnByb3BlcnR5KCdhLmInKSk7XG4gICAgICogLy8gPT4gWzIsIDFdXG4gICAgICpcbiAgICAgKiBfLm1hcChfLnNvcnRCeShvYmplY3RzLCBfLnByb3BlcnR5KFsnYScsICdiJ10pKSwgJ2EuYicpO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHByb3BlcnR5KHBhdGgpIHtcbiAgICAgIHJldHVybiBpc0tleShwYXRoKSA/IGJhc2VQcm9wZXJ0eSh0b0tleShwYXRoKSkgOiBiYXNlUHJvcGVydHlEZWVwKHBhdGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5wcm9wZXJ0eWA7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnNcbiAgICAgKiB0aGUgdmFsdWUgYXQgYSBnaXZlbiBwYXRoIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYWNjZXNzb3IgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFswLCAxLCAyXSxcbiAgICAgKiAgICAgb2JqZWN0ID0geyAnYSc6IGFycmF5LCAnYic6IGFycmF5LCAnYyc6IGFycmF5IH07XG4gICAgICpcbiAgICAgKiBfLm1hcChbJ2FbMl0nLCAnY1swXSddLCBfLnByb3BlcnR5T2Yob2JqZWN0KSk7XG4gICAgICogLy8gPT4gWzIsIDBdXG4gICAgICpcbiAgICAgKiBfLm1hcChbWydhJywgJzInXSwgWydjJywgJzAnXV0sIF8ucHJvcGVydHlPZihvYmplY3QpKTtcbiAgICAgKiAvLyA9PiBbMiwgMF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwcm9wZXJ0eU9mKG9iamVjdCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHBhdGgpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogYmFzZUdldChvYmplY3QsIHBhdGgpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIG51bWJlcnMgKHBvc2l0aXZlIGFuZC9vciBuZWdhdGl2ZSkgcHJvZ3Jlc3NpbmcgZnJvbVxuICAgICAqIGBzdGFydGAgdXAgdG8sIGJ1dCBub3QgaW5jbHVkaW5nLCBgZW5kYC4gQSBzdGVwIG9mIGAtMWAgaXMgdXNlZCBpZiBhIG5lZ2F0aXZlXG4gICAgICogYHN0YXJ0YCBpcyBzcGVjaWZpZWQgd2l0aG91dCBhbiBgZW5kYCBvciBgc3RlcGAuIElmIGBlbmRgIGlzIG5vdCBzcGVjaWZpZWQsXG4gICAgICogaXQncyBzZXQgdG8gYHN0YXJ0YCB3aXRoIGBzdGFydGAgdGhlbiBzZXQgdG8gYDBgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIEphdmFTY3JpcHQgZm9sbG93cyB0aGUgSUVFRS03NTQgc3RhbmRhcmQgZm9yIHJlc29sdmluZ1xuICAgICAqIGZsb2F0aW5nLXBvaW50IHZhbHVlcyB3aGljaCBjYW4gcHJvZHVjZSB1bmV4cGVjdGVkIHJlc3VsdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kIFRoZSBlbmQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0xXSBUaGUgdmFsdWUgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCBieS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHJhbmdlIG9mIG51bWJlcnMuXG4gICAgICogQHNlZSBfLmluUmFuZ2UsIF8ucmFuZ2VSaWdodFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKDQpO1xuICAgICAqIC8vID0+IFswLCAxLCAyLCAzXVxuICAgICAqXG4gICAgICogXy5yYW5nZSgtNCk7XG4gICAgICogLy8gPT4gWzAsIC0xLCAtMiwgLTNdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKDEsIDUpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzLCA0XVxuICAgICAqXG4gICAgICogXy5yYW5nZSgwLCAyMCwgNSk7XG4gICAgICogLy8gPT4gWzAsIDUsIDEwLCAxNV1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2UoMCwgLTQsIC0xKTtcbiAgICAgKiAvLyA9PiBbMCwgLTEsIC0yLCAtM11cbiAgICAgKlxuICAgICAqIF8ucmFuZ2UoMSwgNCwgMCk7XG4gICAgICogLy8gPT4gWzEsIDEsIDFdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKDApO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgdmFyIHJhbmdlID0gY3JlYXRlUmFuZ2UoKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucmFuZ2VgIGV4Y2VwdCB0aGF0IGl0IHBvcHVsYXRlcyB2YWx1ZXMgaW5cbiAgICAgKiBkZXNjZW5kaW5nIG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZCBUaGUgZW5kIG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MV0gVGhlIHZhbHVlIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgYnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSByYW5nZSBvZiBudW1iZXJzLlxuICAgICAqIEBzZWUgXy5pblJhbmdlLCBfLnJhbmdlXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCg0KTtcbiAgICAgKiAvLyA9PiBbMywgMiwgMSwgMF1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCgtNCk7XG4gICAgICogLy8gPT4gWy0zLCAtMiwgLTEsIDBdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlUmlnaHQoMSwgNSk7XG4gICAgICogLy8gPT4gWzQsIDMsIDIsIDFdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlUmlnaHQoMCwgMjAsIDUpO1xuICAgICAqIC8vID0+IFsxNSwgMTAsIDUsIDBdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlUmlnaHQoMCwgLTQsIC0xKTtcbiAgICAgKiAvLyA9PiBbLTMsIC0yLCAtMSwgMF1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCgxLCA0LCAwKTtcbiAgICAgKiAvLyA9PiBbMSwgMSwgMV1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCgwKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqL1xuICAgIHZhciByYW5nZVJpZ2h0ID0gY3JlYXRlUmFuZ2UodHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGVtcHR5IGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTMuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZW1wdHkgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheXMgPSBfLnRpbWVzKDIsIF8uc3R1YkFycmF5KTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5cyk7XG4gICAgICogLy8gPT4gW1tdLCBbXV1cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5c1swXSA9PT0gYXJyYXlzWzFdKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0dWJBcnJheSgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4xMy4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRpbWVzKDIsIF8uc3R1YkZhbHNlKTtcbiAgICAgKiAvLyA9PiBbZmFsc2UsIGZhbHNlXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0dWJGYWxzZSgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGVtcHR5IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEzLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBlbXB0eSBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gXy50aW1lcygyLCBfLnN0dWJPYmplY3QpO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2cob2JqZWN0cyk7XG4gICAgICogLy8gPT4gW3t9LCB7fV1cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdHNbMF0gPT09IG9iamVjdHNbMV0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3R1Yk9iamVjdCgpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGFuIGVtcHR5IHN0cmluZy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEzLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50aW1lcygyLCBfLnN0dWJTdHJpbmcpO1xuICAgICAqIC8vID0+IFsnJywgJyddXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3R1YlN0cmluZygpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGB0cnVlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEzLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50aW1lcygyLCBfLnN0dWJUcnVlKTtcbiAgICAgKiAvLyA9PiBbdHJ1ZSwgdHJ1ZV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdHViVHJ1ZSgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEludm9rZXMgdGhlIGl0ZXJhdGVlIGBuYCB0aW1lcywgcmV0dXJuaW5nIGFuIGFycmF5IG9mIHRoZSByZXN1bHRzIG9mXG4gICAgICogZWFjaCBpbnZvY2F0aW9uLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDsgKGluZGV4KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiB0aW1lcyB0byBpbnZva2UgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGltZXMoMywgU3RyaW5nKTtcbiAgICAgKiAvLyA9PiBbJzAnLCAnMScsICcyJ11cbiAgICAgKlxuICAgICAqICBfLnRpbWVzKDQsIF8uY29uc3RhbnQoMCkpO1xuICAgICAqIC8vID0+IFswLCAwLCAwLCAwXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRpbWVzKG4sIGl0ZXJhdGVlKSB7XG4gICAgICBuID0gdG9JbnRlZ2VyKG4pO1xuICAgICAgaWYgKG4gPCAxIHx8IG4gPiBNQVhfU0FGRV9JTlRFR0VSKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IE1BWF9BUlJBWV9MRU5HVEgsXG4gICAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWluKG4sIE1BWF9BUlJBWV9MRU5HVEgpO1xuXG4gICAgICBpdGVyYXRlZSA9IGdldEl0ZXJhdGVlKGl0ZXJhdGVlKTtcbiAgICAgIG4gLT0gTUFYX0FSUkFZX0xFTkdUSDtcblxuICAgICAgdmFyIHJlc3VsdCA9IGJhc2VUaW1lcyhsZW5ndGgsIGl0ZXJhdGVlKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgICAgICBpdGVyYXRlZShpbmRleCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHByb3BlcnR5IHBhdGggYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9QYXRoKCdhLmIuYycpO1xuICAgICAqIC8vID0+IFsnYScsICdiJywgJ2MnXVxuICAgICAqXG4gICAgICogXy50b1BhdGgoJ2FbMF0uYi5jJyk7XG4gICAgICogLy8gPT4gWydhJywgJzAnLCAnYicsICdjJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b1BhdGgodmFsdWUpIHtcbiAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gYXJyYXlNYXAodmFsdWUsIHRvS2V5KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc1N5bWJvbCh2YWx1ZSkgPyBbdmFsdWVdIDogY29weUFycmF5KHN0cmluZ1RvUGF0aCh0b1N0cmluZyh2YWx1ZSkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSB1bmlxdWUgSUQuIElmIGBwcmVmaXhgIGlzIGdpdmVuLCB0aGUgSUQgaXMgYXBwZW5kZWQgdG8gaXQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbcHJlZml4PScnXSBUaGUgdmFsdWUgdG8gcHJlZml4IHRoZSBJRCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHVuaXF1ZSBJRC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy51bmlxdWVJZCgnY29udGFjdF8nKTtcbiAgICAgKiAvLyA9PiAnY29udGFjdF8xMDQnXG4gICAgICpcbiAgICAgKiBfLnVuaXF1ZUlkKCk7XG4gICAgICogLy8gPT4gJzEwNSdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmlxdWVJZChwcmVmaXgpIHtcbiAgICAgIHZhciBpZCA9ICsraWRDb3VudGVyO1xuICAgICAgcmV0dXJuIHRvU3RyaW5nKHByZWZpeCkgKyBpZDtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBBZGRzIHR3byBudW1iZXJzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuNC4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYXVnZW5kIFRoZSBmaXJzdCBudW1iZXIgaW4gYW4gYWRkaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGFkZGVuZCBUaGUgc2Vjb25kIG51bWJlciBpbiBhbiBhZGRpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSB0b3RhbC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5hZGQoNiwgNCk7XG4gICAgICogLy8gPT4gMTBcbiAgICAgKi9cbiAgICB2YXIgYWRkID0gY3JlYXRlTWF0aE9wZXJhdGlvbihmdW5jdGlvbihhdWdlbmQsIGFkZGVuZCkge1xuICAgICAgcmV0dXJuIGF1Z2VuZCArIGFkZGVuZDtcbiAgICB9LCAwKTtcblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIGBudW1iZXJgIHJvdW5kZWQgdXAgdG8gYHByZWNpc2lvbmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4xMC4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyIFRoZSBudW1iZXIgdG8gcm91bmQgdXAuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtwcmVjaXNpb249MF0gVGhlIHByZWNpc2lvbiB0byByb3VuZCB1cCB0by5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSByb3VuZGVkIHVwIG51bWJlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5jZWlsKDQuMDA2KTtcbiAgICAgKiAvLyA9PiA1XG4gICAgICpcbiAgICAgKiBfLmNlaWwoNi4wMDQsIDIpO1xuICAgICAqIC8vID0+IDYuMDFcbiAgICAgKlxuICAgICAqIF8uY2VpbCg2MDQwLCAtMik7XG4gICAgICogLy8gPT4gNjEwMFxuICAgICAqL1xuICAgIHZhciBjZWlsID0gY3JlYXRlUm91bmQoJ2NlaWwnKTtcblxuICAgIC8qKlxuICAgICAqIERpdmlkZSB0d28gbnVtYmVycy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjcuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRpdmlkZW5kIFRoZSBmaXJzdCBudW1iZXIgaW4gYSBkaXZpc2lvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGl2aXNvciBUaGUgc2Vjb25kIG51bWJlciBpbiBhIGRpdmlzaW9uLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHF1b3RpZW50LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRpdmlkZSg2LCA0KTtcbiAgICAgKiAvLyA9PiAxLjVcbiAgICAgKi9cbiAgICB2YXIgZGl2aWRlID0gY3JlYXRlTWF0aE9wZXJhdGlvbihmdW5jdGlvbihkaXZpZGVuZCwgZGl2aXNvcikge1xuICAgICAgcmV0dXJuIGRpdmlkZW5kIC8gZGl2aXNvcjtcbiAgICB9LCAxKTtcblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIGBudW1iZXJgIHJvdW5kZWQgZG93biB0byBgcHJlY2lzaW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjEwLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgVGhlIG51bWJlciB0byByb3VuZCBkb3duLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcHJlY2lzaW9uPTBdIFRoZSBwcmVjaXNpb24gdG8gcm91bmQgZG93biB0by5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSByb3VuZGVkIGRvd24gbnVtYmVyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZsb29yKDQuMDA2KTtcbiAgICAgKiAvLyA9PiA0XG4gICAgICpcbiAgICAgKiBfLmZsb29yKDAuMDQ2LCAyKTtcbiAgICAgKiAvLyA9PiAwLjA0XG4gICAgICpcbiAgICAgKiBfLmZsb29yKDQwNjAsIC0yKTtcbiAgICAgKiAvLyA9PiA0MDAwXG4gICAgICovXG4gICAgdmFyIGZsb29yID0gY3JlYXRlUm91bmQoJ2Zsb29yJyk7XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB0aGUgbWF4aW11bSB2YWx1ZSBvZiBgYXJyYXlgLiBJZiBgYXJyYXlgIGlzIGVtcHR5IG9yIGZhbHNleSxcbiAgICAgKiBgdW5kZWZpbmVkYCBpcyByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWF4aW11bSB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tYXgoWzQsIDIsIDgsIDZdKTtcbiAgICAgKiAvLyA9PiA4XG4gICAgICpcbiAgICAgKiBfLm1heChbXSk7XG4gICAgICogLy8gPT4gdW5kZWZpbmVkXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWF4KGFycmF5KSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlRXh0cmVtdW0oYXJyYXksIGlkZW50aXR5LCBiYXNlR3QpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ubWF4YCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgaW4gYGFycmF5YCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uIGJ5IHdoaWNoXG4gICAgICogdGhlIHZhbHVlIGlzIHJhbmtlZC4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXhpbXVtIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICduJzogMSB9LCB7ICduJzogMiB9XTtcbiAgICAgKlxuICAgICAqIF8ubWF4Qnkob2JqZWN0cywgZnVuY3Rpb24obykgeyByZXR1cm4gby5uOyB9KTtcbiAgICAgKiAvLyA9PiB7ICduJzogMiB9XG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLm1heEJ5KG9iamVjdHMsICduJyk7XG4gICAgICogLy8gPT4geyAnbic6IDIgfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1heEJ5KGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXG4gICAgICAgID8gYmFzZUV4dHJlbXVtKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMiksIGJhc2VHdClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgdGhlIG1lYW4gb2YgdGhlIHZhbHVlcyBpbiBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIG1lYW4uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubWVhbihbNCwgMiwgOCwgNl0pO1xuICAgICAqIC8vID0+IDVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtZWFuKGFycmF5KSB7XG4gICAgICByZXR1cm4gYmFzZU1lYW4oYXJyYXksIGlkZW50aXR5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLm1lYW5gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBpbiBgYXJyYXlgIHRvIGdlbmVyYXRlIHRoZSB2YWx1ZSB0byBiZSBhdmVyYWdlZC5cbiAgICAgKiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjcuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbWVhbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAnbic6IDQgfSwgeyAnbic6IDIgfSwgeyAnbic6IDggfSwgeyAnbic6IDYgfV07XG4gICAgICpcbiAgICAgKiBfLm1lYW5CeShvYmplY3RzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLm47IH0pO1xuICAgICAqIC8vID0+IDVcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ubWVhbkJ5KG9iamVjdHMsICduJyk7XG4gICAgICogLy8gPT4gNVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1lYW5CeShhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBiYXNlTWVhbihhcnJheSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB0aGUgbWluaW11bSB2YWx1ZSBvZiBgYXJyYXlgLiBJZiBgYXJyYXlgIGlzIGVtcHR5IG9yIGZhbHNleSxcbiAgICAgKiBgdW5kZWZpbmVkYCBpcyByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWluaW11bSB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5taW4oWzQsIDIsIDgsIDZdKTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICpcbiAgICAgKiBfLm1pbihbXSk7XG4gICAgICogLy8gPT4gdW5kZWZpbmVkXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWluKGFycmF5KSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlRXh0cmVtdW0oYXJyYXksIGlkZW50aXR5LCBiYXNlTHQpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ubWluYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgaW4gYGFycmF5YCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uIGJ5IHdoaWNoXG4gICAgICogdGhlIHZhbHVlIGlzIHJhbmtlZC4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtaW5pbXVtIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICduJzogMSB9LCB7ICduJzogMiB9XTtcbiAgICAgKlxuICAgICAqIF8ubWluQnkob2JqZWN0cywgZnVuY3Rpb24obykgeyByZXR1cm4gby5uOyB9KTtcbiAgICAgKiAvLyA9PiB7ICduJzogMSB9XG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLm1pbkJ5KG9iamVjdHMsICduJyk7XG4gICAgICogLy8gPT4geyAnbic6IDEgfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1pbkJ5KGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXG4gICAgICAgID8gYmFzZUV4dHJlbXVtKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMiksIGJhc2VMdClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTXVsdGlwbHkgdHdvIG51bWJlcnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC43LjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtdWx0aXBsaWVyIFRoZSBmaXJzdCBudW1iZXIgaW4gYSBtdWx0aXBsaWNhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbXVsdGlwbGljYW5kIFRoZSBzZWNvbmQgbnVtYmVyIGluIGEgbXVsdGlwbGljYXRpb24uXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgcHJvZHVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tdWx0aXBseSg2LCA0KTtcbiAgICAgKiAvLyA9PiAyNFxuICAgICAqL1xuICAgIHZhciBtdWx0aXBseSA9IGNyZWF0ZU1hdGhPcGVyYXRpb24oZnVuY3Rpb24obXVsdGlwbGllciwgbXVsdGlwbGljYW5kKSB7XG4gICAgICByZXR1cm4gbXVsdGlwbGllciAqIG11bHRpcGxpY2FuZDtcbiAgICB9LCAxKTtcblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIGBudW1iZXJgIHJvdW5kZWQgdG8gYHByZWNpc2lvbmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4xMC4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyIFRoZSBudW1iZXIgdG8gcm91bmQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtwcmVjaXNpb249MF0gVGhlIHByZWNpc2lvbiB0byByb3VuZCB0by5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSByb3VuZGVkIG51bWJlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yb3VuZCg0LjAwNik7XG4gICAgICogLy8gPT4gNFxuICAgICAqXG4gICAgICogXy5yb3VuZCg0LjAwNiwgMik7XG4gICAgICogLy8gPT4gNC4wMVxuICAgICAqXG4gICAgICogXy5yb3VuZCg0MDYwLCAtMik7XG4gICAgICogLy8gPT4gNDEwMFxuICAgICAqL1xuICAgIHZhciByb3VuZCA9IGNyZWF0ZVJvdW5kKCdyb3VuZCcpO1xuXG4gICAgLyoqXG4gICAgICogU3VidHJhY3QgdHdvIG51bWJlcnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtaW51ZW5kIFRoZSBmaXJzdCBudW1iZXIgaW4gYSBzdWJ0cmFjdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3VidHJhaGVuZCBUaGUgc2Vjb25kIG51bWJlciBpbiBhIHN1YnRyYWN0aW9uLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGRpZmZlcmVuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc3VidHJhY3QoNiwgNCk7XG4gICAgICogLy8gPT4gMlxuICAgICAqL1xuICAgIHZhciBzdWJ0cmFjdCA9IGNyZWF0ZU1hdGhPcGVyYXRpb24oZnVuY3Rpb24obWludWVuZCwgc3VidHJhaGVuZCkge1xuICAgICAgcmV0dXJuIG1pbnVlbmQgLSBzdWJ0cmFoZW5kO1xuICAgIH0sIDApO1xuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgdGhlIHN1bSBvZiB0aGUgdmFsdWVzIGluIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy40LjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3VtLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnN1bShbNCwgMiwgOCwgNl0pO1xuICAgICAqIC8vID0+IDIwXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3VtKGFycmF5KSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlU3VtKGFycmF5LCBpZGVudGl0eSlcbiAgICAgICAgOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc3VtYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgaW4gYGFycmF5YCB0byBnZW5lcmF0ZSB0aGUgdmFsdWUgdG8gYmUgc3VtbWVkLlxuICAgICAqIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdW0uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ24nOiA0IH0sIHsgJ24nOiAyIH0sIHsgJ24nOiA4IH0sIHsgJ24nOiA2IH1dO1xuICAgICAqXG4gICAgICogXy5zdW1CeShvYmplY3RzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLm47IH0pO1xuICAgICAqIC8vID0+IDIwXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnN1bUJ5KG9iamVjdHMsICduJyk7XG4gICAgICogLy8gPT4gMjBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdW1CeShhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VTdW0oYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSlcbiAgICAgICAgOiAwO1xuICAgIH1cblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8vIEFkZCBtZXRob2RzIHRoYXQgcmV0dXJuIHdyYXBwZWQgdmFsdWVzIGluIGNoYWluIHNlcXVlbmNlcy5cbiAgICBsb2Rhc2guYWZ0ZXIgPSBhZnRlcjtcbiAgICBsb2Rhc2guYXJ5ID0gYXJ5O1xuICAgIGxvZGFzaC5hc3NpZ24gPSBhc3NpZ247XG4gICAgbG9kYXNoLmFzc2lnbkluID0gYXNzaWduSW47XG4gICAgbG9kYXNoLmFzc2lnbkluV2l0aCA9IGFzc2lnbkluV2l0aDtcbiAgICBsb2Rhc2guYXNzaWduV2l0aCA9IGFzc2lnbldpdGg7XG4gICAgbG9kYXNoLmF0ID0gYXQ7XG4gICAgbG9kYXNoLmJlZm9yZSA9IGJlZm9yZTtcbiAgICBsb2Rhc2guYmluZCA9IGJpbmQ7XG4gICAgbG9kYXNoLmJpbmRBbGwgPSBiaW5kQWxsO1xuICAgIGxvZGFzaC5iaW5kS2V5ID0gYmluZEtleTtcbiAgICBsb2Rhc2guY2FzdEFycmF5ID0gY2FzdEFycmF5O1xuICAgIGxvZGFzaC5jaGFpbiA9IGNoYWluO1xuICAgIGxvZGFzaC5jaHVuayA9IGNodW5rO1xuICAgIGxvZGFzaC5jb21wYWN0ID0gY29tcGFjdDtcbiAgICBsb2Rhc2guY29uY2F0ID0gY29uY2F0O1xuICAgIGxvZGFzaC5jb25kID0gY29uZDtcbiAgICBsb2Rhc2guY29uZm9ybXMgPSBjb25mb3JtcztcbiAgICBsb2Rhc2guY29uc3RhbnQgPSBjb25zdGFudDtcbiAgICBsb2Rhc2guY291bnRCeSA9IGNvdW50Qnk7XG4gICAgbG9kYXNoLmNyZWF0ZSA9IGNyZWF0ZTtcbiAgICBsb2Rhc2guY3VycnkgPSBjdXJyeTtcbiAgICBsb2Rhc2guY3VycnlSaWdodCA9IGN1cnJ5UmlnaHQ7XG4gICAgbG9kYXNoLmRlYm91bmNlID0gZGVib3VuY2U7XG4gICAgbG9kYXNoLmRlZmF1bHRzID0gZGVmYXVsdHM7XG4gICAgbG9kYXNoLmRlZmF1bHRzRGVlcCA9IGRlZmF1bHRzRGVlcDtcbiAgICBsb2Rhc2guZGVmZXIgPSBkZWZlcjtcbiAgICBsb2Rhc2guZGVsYXkgPSBkZWxheTtcbiAgICBsb2Rhc2guZGlmZmVyZW5jZSA9IGRpZmZlcmVuY2U7XG4gICAgbG9kYXNoLmRpZmZlcmVuY2VCeSA9IGRpZmZlcmVuY2VCeTtcbiAgICBsb2Rhc2guZGlmZmVyZW5jZVdpdGggPSBkaWZmZXJlbmNlV2l0aDtcbiAgICBsb2Rhc2guZHJvcCA9IGRyb3A7XG4gICAgbG9kYXNoLmRyb3BSaWdodCA9IGRyb3BSaWdodDtcbiAgICBsb2Rhc2guZHJvcFJpZ2h0V2hpbGUgPSBkcm9wUmlnaHRXaGlsZTtcbiAgICBsb2Rhc2guZHJvcFdoaWxlID0gZHJvcFdoaWxlO1xuICAgIGxvZGFzaC5maWxsID0gZmlsbDtcbiAgICBsb2Rhc2guZmlsdGVyID0gZmlsdGVyO1xuICAgIGxvZGFzaC5mbGF0TWFwID0gZmxhdE1hcDtcbiAgICBsb2Rhc2guZmxhdE1hcERlZXAgPSBmbGF0TWFwRGVlcDtcbiAgICBsb2Rhc2guZmxhdE1hcERlcHRoID0gZmxhdE1hcERlcHRoO1xuICAgIGxvZGFzaC5mbGF0dGVuID0gZmxhdHRlbjtcbiAgICBsb2Rhc2guZmxhdHRlbkRlZXAgPSBmbGF0dGVuRGVlcDtcbiAgICBsb2Rhc2guZmxhdHRlbkRlcHRoID0gZmxhdHRlbkRlcHRoO1xuICAgIGxvZGFzaC5mbGlwID0gZmxpcDtcbiAgICBsb2Rhc2guZmxvdyA9IGZsb3c7XG4gICAgbG9kYXNoLmZsb3dSaWdodCA9IGZsb3dSaWdodDtcbiAgICBsb2Rhc2guZnJvbVBhaXJzID0gZnJvbVBhaXJzO1xuICAgIGxvZGFzaC5mdW5jdGlvbnMgPSBmdW5jdGlvbnM7XG4gICAgbG9kYXNoLmZ1bmN0aW9uc0luID0gZnVuY3Rpb25zSW47XG4gICAgbG9kYXNoLmdyb3VwQnkgPSBncm91cEJ5O1xuICAgIGxvZGFzaC5pbml0aWFsID0gaW5pdGlhbDtcbiAgICBsb2Rhc2guaW50ZXJzZWN0aW9uID0gaW50ZXJzZWN0aW9uO1xuICAgIGxvZGFzaC5pbnRlcnNlY3Rpb25CeSA9IGludGVyc2VjdGlvbkJ5O1xuICAgIGxvZGFzaC5pbnRlcnNlY3Rpb25XaXRoID0gaW50ZXJzZWN0aW9uV2l0aDtcbiAgICBsb2Rhc2guaW52ZXJ0ID0gaW52ZXJ0O1xuICAgIGxvZGFzaC5pbnZlcnRCeSA9IGludmVydEJ5O1xuICAgIGxvZGFzaC5pbnZva2VNYXAgPSBpbnZva2VNYXA7XG4gICAgbG9kYXNoLml0ZXJhdGVlID0gaXRlcmF0ZWU7XG4gICAgbG9kYXNoLmtleUJ5ID0ga2V5Qnk7XG4gICAgbG9kYXNoLmtleXMgPSBrZXlzO1xuICAgIGxvZGFzaC5rZXlzSW4gPSBrZXlzSW47XG4gICAgbG9kYXNoLm1hcCA9IG1hcDtcbiAgICBsb2Rhc2gubWFwS2V5cyA9IG1hcEtleXM7XG4gICAgbG9kYXNoLm1hcFZhbHVlcyA9IG1hcFZhbHVlcztcbiAgICBsb2Rhc2gubWF0Y2hlcyA9IG1hdGNoZXM7XG4gICAgbG9kYXNoLm1hdGNoZXNQcm9wZXJ0eSA9IG1hdGNoZXNQcm9wZXJ0eTtcbiAgICBsb2Rhc2gubWVtb2l6ZSA9IG1lbW9pemU7XG4gICAgbG9kYXNoLm1lcmdlID0gbWVyZ2U7XG4gICAgbG9kYXNoLm1lcmdlV2l0aCA9IG1lcmdlV2l0aDtcbiAgICBsb2Rhc2gubWV0aG9kID0gbWV0aG9kO1xuICAgIGxvZGFzaC5tZXRob2RPZiA9IG1ldGhvZE9mO1xuICAgIGxvZGFzaC5taXhpbiA9IG1peGluO1xuICAgIGxvZGFzaC5uZWdhdGUgPSBuZWdhdGU7XG4gICAgbG9kYXNoLm50aEFyZyA9IG50aEFyZztcbiAgICBsb2Rhc2gub21pdCA9IG9taXQ7XG4gICAgbG9kYXNoLm9taXRCeSA9IG9taXRCeTtcbiAgICBsb2Rhc2gub25jZSA9IG9uY2U7XG4gICAgbG9kYXNoLm9yZGVyQnkgPSBvcmRlckJ5O1xuICAgIGxvZGFzaC5vdmVyID0gb3ZlcjtcbiAgICBsb2Rhc2gub3ZlckFyZ3MgPSBvdmVyQXJncztcbiAgICBsb2Rhc2gub3ZlckV2ZXJ5ID0gb3ZlckV2ZXJ5O1xuICAgIGxvZGFzaC5vdmVyU29tZSA9IG92ZXJTb21lO1xuICAgIGxvZGFzaC5wYXJ0aWFsID0gcGFydGlhbDtcbiAgICBsb2Rhc2gucGFydGlhbFJpZ2h0ID0gcGFydGlhbFJpZ2h0O1xuICAgIGxvZGFzaC5wYXJ0aXRpb24gPSBwYXJ0aXRpb247XG4gICAgbG9kYXNoLnBpY2sgPSBwaWNrO1xuICAgIGxvZGFzaC5waWNrQnkgPSBwaWNrQnk7XG4gICAgbG9kYXNoLnByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgbG9kYXNoLnByb3BlcnR5T2YgPSBwcm9wZXJ0eU9mO1xuICAgIGxvZGFzaC5wdWxsID0gcHVsbDtcbiAgICBsb2Rhc2gucHVsbEFsbCA9IHB1bGxBbGw7XG4gICAgbG9kYXNoLnB1bGxBbGxCeSA9IHB1bGxBbGxCeTtcbiAgICBsb2Rhc2gucHVsbEFsbFdpdGggPSBwdWxsQWxsV2l0aDtcbiAgICBsb2Rhc2gucHVsbEF0ID0gcHVsbEF0O1xuICAgIGxvZGFzaC5yYW5nZSA9IHJhbmdlO1xuICAgIGxvZGFzaC5yYW5nZVJpZ2h0ID0gcmFuZ2VSaWdodDtcbiAgICBsb2Rhc2gucmVhcmcgPSByZWFyZztcbiAgICBsb2Rhc2gucmVqZWN0ID0gcmVqZWN0O1xuICAgIGxvZGFzaC5yZW1vdmUgPSByZW1vdmU7XG4gICAgbG9kYXNoLnJlc3QgPSByZXN0O1xuICAgIGxvZGFzaC5yZXZlcnNlID0gcmV2ZXJzZTtcbiAgICBsb2Rhc2guc2FtcGxlU2l6ZSA9IHNhbXBsZVNpemU7XG4gICAgbG9kYXNoLnNldCA9IHNldDtcbiAgICBsb2Rhc2guc2V0V2l0aCA9IHNldFdpdGg7XG4gICAgbG9kYXNoLnNodWZmbGUgPSBzaHVmZmxlO1xuICAgIGxvZGFzaC5zbGljZSA9IHNsaWNlO1xuICAgIGxvZGFzaC5zb3J0QnkgPSBzb3J0Qnk7XG4gICAgbG9kYXNoLnNvcnRlZFVuaXEgPSBzb3J0ZWRVbmlxO1xuICAgIGxvZGFzaC5zb3J0ZWRVbmlxQnkgPSBzb3J0ZWRVbmlxQnk7XG4gICAgbG9kYXNoLnNwbGl0ID0gc3BsaXQ7XG4gICAgbG9kYXNoLnNwcmVhZCA9IHNwcmVhZDtcbiAgICBsb2Rhc2gudGFpbCA9IHRhaWw7XG4gICAgbG9kYXNoLnRha2UgPSB0YWtlO1xuICAgIGxvZGFzaC50YWtlUmlnaHQgPSB0YWtlUmlnaHQ7XG4gICAgbG9kYXNoLnRha2VSaWdodFdoaWxlID0gdGFrZVJpZ2h0V2hpbGU7XG4gICAgbG9kYXNoLnRha2VXaGlsZSA9IHRha2VXaGlsZTtcbiAgICBsb2Rhc2gudGFwID0gdGFwO1xuICAgIGxvZGFzaC50aHJvdHRsZSA9IHRocm90dGxlO1xuICAgIGxvZGFzaC50aHJ1ID0gdGhydTtcbiAgICBsb2Rhc2gudG9BcnJheSA9IHRvQXJyYXk7XG4gICAgbG9kYXNoLnRvUGFpcnMgPSB0b1BhaXJzO1xuICAgIGxvZGFzaC50b1BhaXJzSW4gPSB0b1BhaXJzSW47XG4gICAgbG9kYXNoLnRvUGF0aCA9IHRvUGF0aDtcbiAgICBsb2Rhc2gudG9QbGFpbk9iamVjdCA9IHRvUGxhaW5PYmplY3Q7XG4gICAgbG9kYXNoLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbiAgICBsb2Rhc2gudW5hcnkgPSB1bmFyeTtcbiAgICBsb2Rhc2gudW5pb24gPSB1bmlvbjtcbiAgICBsb2Rhc2gudW5pb25CeSA9IHVuaW9uQnk7XG4gICAgbG9kYXNoLnVuaW9uV2l0aCA9IHVuaW9uV2l0aDtcbiAgICBsb2Rhc2gudW5pcSA9IHVuaXE7XG4gICAgbG9kYXNoLnVuaXFCeSA9IHVuaXFCeTtcbiAgICBsb2Rhc2gudW5pcVdpdGggPSB1bmlxV2l0aDtcbiAgICBsb2Rhc2gudW5zZXQgPSB1bnNldDtcbiAgICBsb2Rhc2gudW56aXAgPSB1bnppcDtcbiAgICBsb2Rhc2gudW56aXBXaXRoID0gdW56aXBXaXRoO1xuICAgIGxvZGFzaC51cGRhdGUgPSB1cGRhdGU7XG4gICAgbG9kYXNoLnVwZGF0ZVdpdGggPSB1cGRhdGVXaXRoO1xuICAgIGxvZGFzaC52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgbG9kYXNoLnZhbHVlc0luID0gdmFsdWVzSW47XG4gICAgbG9kYXNoLndpdGhvdXQgPSB3aXRob3V0O1xuICAgIGxvZGFzaC53b3JkcyA9IHdvcmRzO1xuICAgIGxvZGFzaC53cmFwID0gd3JhcDtcbiAgICBsb2Rhc2gueG9yID0geG9yO1xuICAgIGxvZGFzaC54b3JCeSA9IHhvckJ5O1xuICAgIGxvZGFzaC54b3JXaXRoID0geG9yV2l0aDtcbiAgICBsb2Rhc2guemlwID0gemlwO1xuICAgIGxvZGFzaC56aXBPYmplY3QgPSB6aXBPYmplY3Q7XG4gICAgbG9kYXNoLnppcE9iamVjdERlZXAgPSB6aXBPYmplY3REZWVwO1xuICAgIGxvZGFzaC56aXBXaXRoID0gemlwV2l0aDtcblxuICAgIC8vIEFkZCBhbGlhc2VzLlxuICAgIGxvZGFzaC5lbnRyaWVzID0gdG9QYWlycztcbiAgICBsb2Rhc2guZW50cmllc0luID0gdG9QYWlyc0luO1xuICAgIGxvZGFzaC5leHRlbmQgPSBhc3NpZ25JbjtcbiAgICBsb2Rhc2guZXh0ZW5kV2l0aCA9IGFzc2lnbkluV2l0aDtcblxuICAgIC8vIEFkZCBtZXRob2RzIHRvIGBsb2Rhc2gucHJvdG90eXBlYC5cbiAgICBtaXhpbihsb2Rhc2gsIGxvZGFzaCk7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvLyBBZGQgbWV0aG9kcyB0aGF0IHJldHVybiB1bndyYXBwZWQgdmFsdWVzIGluIGNoYWluIHNlcXVlbmNlcy5cbiAgICBsb2Rhc2guYWRkID0gYWRkO1xuICAgIGxvZGFzaC5hdHRlbXB0ID0gYXR0ZW1wdDtcbiAgICBsb2Rhc2guY2FtZWxDYXNlID0gY2FtZWxDYXNlO1xuICAgIGxvZGFzaC5jYXBpdGFsaXplID0gY2FwaXRhbGl6ZTtcbiAgICBsb2Rhc2guY2VpbCA9IGNlaWw7XG4gICAgbG9kYXNoLmNsYW1wID0gY2xhbXA7XG4gICAgbG9kYXNoLmNsb25lID0gY2xvbmU7XG4gICAgbG9kYXNoLmNsb25lRGVlcCA9IGNsb25lRGVlcDtcbiAgICBsb2Rhc2guY2xvbmVEZWVwV2l0aCA9IGNsb25lRGVlcFdpdGg7XG4gICAgbG9kYXNoLmNsb25lV2l0aCA9IGNsb25lV2l0aDtcbiAgICBsb2Rhc2guY29uZm9ybXNUbyA9IGNvbmZvcm1zVG87XG4gICAgbG9kYXNoLmRlYnVyciA9IGRlYnVycjtcbiAgICBsb2Rhc2guZGVmYXVsdFRvID0gZGVmYXVsdFRvO1xuICAgIGxvZGFzaC5kaXZpZGUgPSBkaXZpZGU7XG4gICAgbG9kYXNoLmVuZHNXaXRoID0gZW5kc1dpdGg7XG4gICAgbG9kYXNoLmVxID0gZXE7XG4gICAgbG9kYXNoLmVzY2FwZSA9IGVzY2FwZTtcbiAgICBsb2Rhc2guZXNjYXBlUmVnRXhwID0gZXNjYXBlUmVnRXhwO1xuICAgIGxvZGFzaC5ldmVyeSA9IGV2ZXJ5O1xuICAgIGxvZGFzaC5maW5kID0gZmluZDtcbiAgICBsb2Rhc2guZmluZEluZGV4ID0gZmluZEluZGV4O1xuICAgIGxvZGFzaC5maW5kS2V5ID0gZmluZEtleTtcbiAgICBsb2Rhc2guZmluZExhc3QgPSBmaW5kTGFzdDtcbiAgICBsb2Rhc2guZmluZExhc3RJbmRleCA9IGZpbmRMYXN0SW5kZXg7XG4gICAgbG9kYXNoLmZpbmRMYXN0S2V5ID0gZmluZExhc3RLZXk7XG4gICAgbG9kYXNoLmZsb29yID0gZmxvb3I7XG4gICAgbG9kYXNoLmZvckVhY2ggPSBmb3JFYWNoO1xuICAgIGxvZGFzaC5mb3JFYWNoUmlnaHQgPSBmb3JFYWNoUmlnaHQ7XG4gICAgbG9kYXNoLmZvckluID0gZm9ySW47XG4gICAgbG9kYXNoLmZvckluUmlnaHQgPSBmb3JJblJpZ2h0O1xuICAgIGxvZGFzaC5mb3JPd24gPSBmb3JPd247XG4gICAgbG9kYXNoLmZvck93blJpZ2h0ID0gZm9yT3duUmlnaHQ7XG4gICAgbG9kYXNoLmdldCA9IGdldDtcbiAgICBsb2Rhc2guZ3QgPSBndDtcbiAgICBsb2Rhc2guZ3RlID0gZ3RlO1xuICAgIGxvZGFzaC5oYXMgPSBoYXM7XG4gICAgbG9kYXNoLmhhc0luID0gaGFzSW47XG4gICAgbG9kYXNoLmhlYWQgPSBoZWFkO1xuICAgIGxvZGFzaC5pZGVudGl0eSA9IGlkZW50aXR5O1xuICAgIGxvZGFzaC5pbmNsdWRlcyA9IGluY2x1ZGVzO1xuICAgIGxvZGFzaC5pbmRleE9mID0gaW5kZXhPZjtcbiAgICBsb2Rhc2guaW5SYW5nZSA9IGluUmFuZ2U7XG4gICAgbG9kYXNoLmludm9rZSA9IGludm9rZTtcbiAgICBsb2Rhc2guaXNBcmd1bWVudHMgPSBpc0FyZ3VtZW50cztcbiAgICBsb2Rhc2guaXNBcnJheSA9IGlzQXJyYXk7XG4gICAgbG9kYXNoLmlzQXJyYXlCdWZmZXIgPSBpc0FycmF5QnVmZmVyO1xuICAgIGxvZGFzaC5pc0FycmF5TGlrZSA9IGlzQXJyYXlMaWtlO1xuICAgIGxvZGFzaC5pc0FycmF5TGlrZU9iamVjdCA9IGlzQXJyYXlMaWtlT2JqZWN0O1xuICAgIGxvZGFzaC5pc0Jvb2xlYW4gPSBpc0Jvb2xlYW47XG4gICAgbG9kYXNoLmlzQnVmZmVyID0gaXNCdWZmZXI7XG4gICAgbG9kYXNoLmlzRGF0ZSA9IGlzRGF0ZTtcbiAgICBsb2Rhc2guaXNFbGVtZW50ID0gaXNFbGVtZW50O1xuICAgIGxvZGFzaC5pc0VtcHR5ID0gaXNFbXB0eTtcbiAgICBsb2Rhc2guaXNFcXVhbCA9IGlzRXF1YWw7XG4gICAgbG9kYXNoLmlzRXF1YWxXaXRoID0gaXNFcXVhbFdpdGg7XG4gICAgbG9kYXNoLmlzRXJyb3IgPSBpc0Vycm9yO1xuICAgIGxvZGFzaC5pc0Zpbml0ZSA9IGlzRmluaXRlO1xuICAgIGxvZGFzaC5pc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjtcbiAgICBsb2Rhc2guaXNJbnRlZ2VyID0gaXNJbnRlZ2VyO1xuICAgIGxvZGFzaC5pc0xlbmd0aCA9IGlzTGVuZ3RoO1xuICAgIGxvZGFzaC5pc01hcCA9IGlzTWFwO1xuICAgIGxvZGFzaC5pc01hdGNoID0gaXNNYXRjaDtcbiAgICBsb2Rhc2guaXNNYXRjaFdpdGggPSBpc01hdGNoV2l0aDtcbiAgICBsb2Rhc2guaXNOYU4gPSBpc05hTjtcbiAgICBsb2Rhc2guaXNOYXRpdmUgPSBpc05hdGl2ZTtcbiAgICBsb2Rhc2guaXNOaWwgPSBpc05pbDtcbiAgICBsb2Rhc2guaXNOdWxsID0gaXNOdWxsO1xuICAgIGxvZGFzaC5pc051bWJlciA9IGlzTnVtYmVyO1xuICAgIGxvZGFzaC5pc09iamVjdCA9IGlzT2JqZWN0O1xuICAgIGxvZGFzaC5pc09iamVjdExpa2UgPSBpc09iamVjdExpa2U7XG4gICAgbG9kYXNoLmlzUGxhaW5PYmplY3QgPSBpc1BsYWluT2JqZWN0O1xuICAgIGxvZGFzaC5pc1JlZ0V4cCA9IGlzUmVnRXhwO1xuICAgIGxvZGFzaC5pc1NhZmVJbnRlZ2VyID0gaXNTYWZlSW50ZWdlcjtcbiAgICBsb2Rhc2guaXNTZXQgPSBpc1NldDtcbiAgICBsb2Rhc2guaXNTdHJpbmcgPSBpc1N0cmluZztcbiAgICBsb2Rhc2guaXNTeW1ib2wgPSBpc1N5bWJvbDtcbiAgICBsb2Rhc2guaXNUeXBlZEFycmF5ID0gaXNUeXBlZEFycmF5O1xuICAgIGxvZGFzaC5pc1VuZGVmaW5lZCA9IGlzVW5kZWZpbmVkO1xuICAgIGxvZGFzaC5pc1dlYWtNYXAgPSBpc1dlYWtNYXA7XG4gICAgbG9kYXNoLmlzV2Vha1NldCA9IGlzV2Vha1NldDtcbiAgICBsb2Rhc2guam9pbiA9IGpvaW47XG4gICAgbG9kYXNoLmtlYmFiQ2FzZSA9IGtlYmFiQ2FzZTtcbiAgICBsb2Rhc2gubGFzdCA9IGxhc3Q7XG4gICAgbG9kYXNoLmxhc3RJbmRleE9mID0gbGFzdEluZGV4T2Y7XG4gICAgbG9kYXNoLmxvd2VyQ2FzZSA9IGxvd2VyQ2FzZTtcbiAgICBsb2Rhc2gubG93ZXJGaXJzdCA9IGxvd2VyRmlyc3Q7XG4gICAgbG9kYXNoLmx0ID0gbHQ7XG4gICAgbG9kYXNoLmx0ZSA9IGx0ZTtcbiAgICBsb2Rhc2gubWF4ID0gbWF4O1xuICAgIGxvZGFzaC5tYXhCeSA9IG1heEJ5O1xuICAgIGxvZGFzaC5tZWFuID0gbWVhbjtcbiAgICBsb2Rhc2gubWVhbkJ5ID0gbWVhbkJ5O1xuICAgIGxvZGFzaC5taW4gPSBtaW47XG4gICAgbG9kYXNoLm1pbkJ5ID0gbWluQnk7XG4gICAgbG9kYXNoLnN0dWJBcnJheSA9IHN0dWJBcnJheTtcbiAgICBsb2Rhc2guc3R1YkZhbHNlID0gc3R1YkZhbHNlO1xuICAgIGxvZGFzaC5zdHViT2JqZWN0ID0gc3R1Yk9iamVjdDtcbiAgICBsb2Rhc2guc3R1YlN0cmluZyA9IHN0dWJTdHJpbmc7XG4gICAgbG9kYXNoLnN0dWJUcnVlID0gc3R1YlRydWU7XG4gICAgbG9kYXNoLm11bHRpcGx5ID0gbXVsdGlwbHk7XG4gICAgbG9kYXNoLm50aCA9IG50aDtcbiAgICBsb2Rhc2gubm9Db25mbGljdCA9IG5vQ29uZmxpY3Q7XG4gICAgbG9kYXNoLm5vb3AgPSBub29wO1xuICAgIGxvZGFzaC5ub3cgPSBub3c7XG4gICAgbG9kYXNoLnBhZCA9IHBhZDtcbiAgICBsb2Rhc2gucGFkRW5kID0gcGFkRW5kO1xuICAgIGxvZGFzaC5wYWRTdGFydCA9IHBhZFN0YXJ0O1xuICAgIGxvZGFzaC5wYXJzZUludCA9IHBhcnNlSW50O1xuICAgIGxvZGFzaC5yYW5kb20gPSByYW5kb207XG4gICAgbG9kYXNoLnJlZHVjZSA9IHJlZHVjZTtcbiAgICBsb2Rhc2gucmVkdWNlUmlnaHQgPSByZWR1Y2VSaWdodDtcbiAgICBsb2Rhc2gucmVwZWF0ID0gcmVwZWF0O1xuICAgIGxvZGFzaC5yZXBsYWNlID0gcmVwbGFjZTtcbiAgICBsb2Rhc2gucmVzdWx0ID0gcmVzdWx0O1xuICAgIGxvZGFzaC5yb3VuZCA9IHJvdW5kO1xuICAgIGxvZGFzaC5ydW5JbkNvbnRleHQgPSBydW5JbkNvbnRleHQ7XG4gICAgbG9kYXNoLnNhbXBsZSA9IHNhbXBsZTtcbiAgICBsb2Rhc2guc2l6ZSA9IHNpemU7XG4gICAgbG9kYXNoLnNuYWtlQ2FzZSA9IHNuYWtlQ2FzZTtcbiAgICBsb2Rhc2guc29tZSA9IHNvbWU7XG4gICAgbG9kYXNoLnNvcnRlZEluZGV4ID0gc29ydGVkSW5kZXg7XG4gICAgbG9kYXNoLnNvcnRlZEluZGV4QnkgPSBzb3J0ZWRJbmRleEJ5O1xuICAgIGxvZGFzaC5zb3J0ZWRJbmRleE9mID0gc29ydGVkSW5kZXhPZjtcbiAgICBsb2Rhc2guc29ydGVkTGFzdEluZGV4ID0gc29ydGVkTGFzdEluZGV4O1xuICAgIGxvZGFzaC5zb3J0ZWRMYXN0SW5kZXhCeSA9IHNvcnRlZExhc3RJbmRleEJ5O1xuICAgIGxvZGFzaC5zb3J0ZWRMYXN0SW5kZXhPZiA9IHNvcnRlZExhc3RJbmRleE9mO1xuICAgIGxvZGFzaC5zdGFydENhc2UgPSBzdGFydENhc2U7XG4gICAgbG9kYXNoLnN0YXJ0c1dpdGggPSBzdGFydHNXaXRoO1xuICAgIGxvZGFzaC5zdWJ0cmFjdCA9IHN1YnRyYWN0O1xuICAgIGxvZGFzaC5zdW0gPSBzdW07XG4gICAgbG9kYXNoLnN1bUJ5ID0gc3VtQnk7XG4gICAgbG9kYXNoLnRlbXBsYXRlID0gdGVtcGxhdGU7XG4gICAgbG9kYXNoLnRpbWVzID0gdGltZXM7XG4gICAgbG9kYXNoLnRvRmluaXRlID0gdG9GaW5pdGU7XG4gICAgbG9kYXNoLnRvSW50ZWdlciA9IHRvSW50ZWdlcjtcbiAgICBsb2Rhc2gudG9MZW5ndGggPSB0b0xlbmd0aDtcbiAgICBsb2Rhc2gudG9Mb3dlciA9IHRvTG93ZXI7XG4gICAgbG9kYXNoLnRvTnVtYmVyID0gdG9OdW1iZXI7XG4gICAgbG9kYXNoLnRvU2FmZUludGVnZXIgPSB0b1NhZmVJbnRlZ2VyO1xuICAgIGxvZGFzaC50b1N0cmluZyA9IHRvU3RyaW5nO1xuICAgIGxvZGFzaC50b1VwcGVyID0gdG9VcHBlcjtcbiAgICBsb2Rhc2gudHJpbSA9IHRyaW07XG4gICAgbG9kYXNoLnRyaW1FbmQgPSB0cmltRW5kO1xuICAgIGxvZGFzaC50cmltU3RhcnQgPSB0cmltU3RhcnQ7XG4gICAgbG9kYXNoLnRydW5jYXRlID0gdHJ1bmNhdGU7XG4gICAgbG9kYXNoLnVuZXNjYXBlID0gdW5lc2NhcGU7XG4gICAgbG9kYXNoLnVuaXF1ZUlkID0gdW5pcXVlSWQ7XG4gICAgbG9kYXNoLnVwcGVyQ2FzZSA9IHVwcGVyQ2FzZTtcbiAgICBsb2Rhc2gudXBwZXJGaXJzdCA9IHVwcGVyRmlyc3Q7XG5cbiAgICAvLyBBZGQgYWxpYXNlcy5cbiAgICBsb2Rhc2guZWFjaCA9IGZvckVhY2g7XG4gICAgbG9kYXNoLmVhY2hSaWdodCA9IGZvckVhY2hSaWdodDtcbiAgICBsb2Rhc2guZmlyc3QgPSBoZWFkO1xuXG4gICAgbWl4aW4obG9kYXNoLCAoZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgc291cmNlID0ge307XG4gICAgICBiYXNlRm9yT3duKGxvZGFzaCwgZnVuY3Rpb24oZnVuYywgbWV0aG9kTmFtZSkge1xuICAgICAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwobG9kYXNoLnByb3RvdHlwZSwgbWV0aG9kTmFtZSkpIHtcbiAgICAgICAgICBzb3VyY2VbbWV0aG9kTmFtZV0gPSBmdW5jO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgfSgpKSwgeyAnY2hhaW4nOiBmYWxzZSB9KTtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIFRoZSBzZW1hbnRpYyB2ZXJzaW9uIG51bWJlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgbG9kYXNoLlZFUlNJT04gPSBWRVJTSU9OO1xuXG4gICAgLy8gQXNzaWduIGRlZmF1bHQgcGxhY2Vob2xkZXJzLlxuICAgIGFycmF5RWFjaChbJ2JpbmQnLCAnYmluZEtleScsICdjdXJyeScsICdjdXJyeVJpZ2h0JywgJ3BhcnRpYWwnLCAncGFydGlhbFJpZ2h0J10sIGZ1bmN0aW9uKG1ldGhvZE5hbWUpIHtcbiAgICAgIGxvZGFzaFttZXRob2ROYW1lXS5wbGFjZWhvbGRlciA9IGxvZGFzaDtcbiAgICB9KTtcblxuICAgIC8vIEFkZCBgTGF6eVdyYXBwZXJgIG1ldGhvZHMgZm9yIGBfLmRyb3BgIGFuZCBgXy50YWtlYCB2YXJpYW50cy5cbiAgICBhcnJheUVhY2goWydkcm9wJywgJ3Rha2UnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgbiA9IG4gPT09IHVuZGVmaW5lZCA/IDEgOiBuYXRpdmVNYXgodG9JbnRlZ2VyKG4pLCAwKTtcblxuICAgICAgICB2YXIgcmVzdWx0ID0gKHRoaXMuX19maWx0ZXJlZF9fICYmICFpbmRleClcbiAgICAgICAgICA/IG5ldyBMYXp5V3JhcHBlcih0aGlzKVxuICAgICAgICAgIDogdGhpcy5jbG9uZSgpO1xuXG4gICAgICAgIGlmIChyZXN1bHQuX19maWx0ZXJlZF9fKSB7XG4gICAgICAgICAgcmVzdWx0Ll9fdGFrZUNvdW50X18gPSBuYXRpdmVNaW4obiwgcmVzdWx0Ll9fdGFrZUNvdW50X18pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdC5fX3ZpZXdzX18ucHVzaCh7XG4gICAgICAgICAgICAnc2l6ZSc6IG5hdGl2ZU1pbihuLCBNQVhfQVJSQVlfTEVOR1RIKSxcbiAgICAgICAgICAgICd0eXBlJzogbWV0aG9kTmFtZSArIChyZXN1bHQuX19kaXJfXyA8IDAgPyAnUmlnaHQnIDogJycpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG5cbiAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lICsgJ1JpZ2h0J10gPSBmdW5jdGlvbihuKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJldmVyc2UoKVttZXRob2ROYW1lXShuKS5yZXZlcnNlKCk7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyB0aGF0IGFjY2VwdCBhbiBgaXRlcmF0ZWVgIHZhbHVlLlxuICAgIGFycmF5RWFjaChbJ2ZpbHRlcicsICdtYXAnLCAndGFrZVdoaWxlJ10sIGZ1bmN0aW9uKG1ldGhvZE5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgdHlwZSA9IGluZGV4ICsgMSxcbiAgICAgICAgICBpc0ZpbHRlciA9IHR5cGUgPT0gTEFaWV9GSUxURVJfRkxBRyB8fCB0eXBlID09IExBWllfV0hJTEVfRkxBRztcblxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oaXRlcmF0ZWUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuY2xvbmUoKTtcbiAgICAgICAgcmVzdWx0Ll9faXRlcmF0ZWVzX18ucHVzaCh7XG4gICAgICAgICAgJ2l0ZXJhdGVlJzogZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpLFxuICAgICAgICAgICd0eXBlJzogdHlwZVxuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0Ll9fZmlsdGVyZWRfXyA9IHJlc3VsdC5fX2ZpbHRlcmVkX18gfHwgaXNGaWx0ZXI7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyBmb3IgYF8uaGVhZGAgYW5kIGBfLmxhc3RgLlxuICAgIGFycmF5RWFjaChbJ2hlYWQnLCAnbGFzdCddLCBmdW5jdGlvbihtZXRob2ROYW1lLCBpbmRleCkge1xuICAgICAgdmFyIHRha2VOYW1lID0gJ3Rha2UnICsgKGluZGV4ID8gJ1JpZ2h0JyA6ICcnKTtcblxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzW3Rha2VOYW1lXSgxKS52YWx1ZSgpWzBdO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8vIEFkZCBgTGF6eVdyYXBwZXJgIG1ldGhvZHMgZm9yIGBfLmluaXRpYWxgIGFuZCBgXy50YWlsYC5cbiAgICBhcnJheUVhY2goWydpbml0aWFsJywgJ3RhaWwnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciBkcm9wTmFtZSA9ICdkcm9wJyArIChpbmRleCA/ICcnIDogJ1JpZ2h0Jyk7XG5cbiAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fX2ZpbHRlcmVkX18gPyBuZXcgTGF6eVdyYXBwZXIodGhpcykgOiB0aGlzW2Ryb3BOYW1lXSgxKTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuY29tcGFjdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKGlkZW50aXR5KTtcbiAgICB9O1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmZpbmQgPSBmdW5jdGlvbihwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcihwcmVkaWNhdGUpLmhlYWQoKTtcbiAgICB9O1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmZpbmRMYXN0ID0gZnVuY3Rpb24ocHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXZlcnNlKCkuZmluZChwcmVkaWNhdGUpO1xuICAgIH07XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuaW52b2tlTWFwID0gYmFzZVJlc3QoZnVuY3Rpb24ocGF0aCwgYXJncykge1xuICAgICAgaWYgKHR5cGVvZiBwYXRoID09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMYXp5V3JhcHBlcih0aGlzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICByZXR1cm4gYmFzZUludm9rZSh2YWx1ZSwgcGF0aCwgYXJncyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5yZWplY3QgPSBmdW5jdGlvbihwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcihuZWdhdGUoZ2V0SXRlcmF0ZWUocHJlZGljYXRlKSkpO1xuICAgIH07XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbihzdGFydCwgZW5kKSB7XG4gICAgICBzdGFydCA9IHRvSW50ZWdlcihzdGFydCk7XG5cbiAgICAgIHZhciByZXN1bHQgPSB0aGlzO1xuICAgICAgaWYgKHJlc3VsdC5fX2ZpbHRlcmVkX18gJiYgKHN0YXJ0ID4gMCB8fCBlbmQgPCAwKSkge1xuICAgICAgICByZXR1cm4gbmV3IExhenlXcmFwcGVyKHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC50YWtlUmlnaHQoLXN0YXJ0KTtcbiAgICAgIH0gZWxzZSBpZiAoc3RhcnQpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmRyb3Aoc3RhcnQpO1xuICAgICAgfVxuICAgICAgaWYgKGVuZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGVuZCA9IHRvSW50ZWdlcihlbmQpO1xuICAgICAgICByZXN1bHQgPSBlbmQgPCAwID8gcmVzdWx0LmRyb3BSaWdodCgtZW5kKSA6IHJlc3VsdC50YWtlKGVuZCAtIHN0YXJ0KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS50YWtlUmlnaHRXaGlsZSA9IGZ1bmN0aW9uKHByZWRpY2F0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMucmV2ZXJzZSgpLnRha2VXaGlsZShwcmVkaWNhdGUpLnJldmVyc2UoKTtcbiAgICB9O1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLnRha2UoTUFYX0FSUkFZX0xFTkdUSCk7XG4gICAgfTtcblxuICAgIC8vIEFkZCBgTGF6eVdyYXBwZXJgIG1ldGhvZHMgdG8gYGxvZGFzaC5wcm90b3R5cGVgLlxuICAgIGJhc2VGb3JPd24oTGF6eVdyYXBwZXIucHJvdG90eXBlLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XG4gICAgICB2YXIgY2hlY2tJdGVyYXRlZSA9IC9eKD86ZmlsdGVyfGZpbmR8bWFwfHJlamVjdCl8V2hpbGUkLy50ZXN0KG1ldGhvZE5hbWUpLFxuICAgICAgICAgIGlzVGFrZXIgPSAvXig/OmhlYWR8bGFzdCkkLy50ZXN0KG1ldGhvZE5hbWUpLFxuICAgICAgICAgIGxvZGFzaEZ1bmMgPSBsb2Rhc2hbaXNUYWtlciA/ICgndGFrZScgKyAobWV0aG9kTmFtZSA9PSAnbGFzdCcgPyAnUmlnaHQnIDogJycpKSA6IG1ldGhvZE5hbWVdLFxuICAgICAgICAgIHJldFVud3JhcHBlZCA9IGlzVGFrZXIgfHwgL15maW5kLy50ZXN0KG1ldGhvZE5hbWUpO1xuXG4gICAgICBpZiAoIWxvZGFzaEZ1bmMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbG9kYXNoLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLl9fd3JhcHBlZF9fLFxuICAgICAgICAgICAgYXJncyA9IGlzVGFrZXIgPyBbMV0gOiBhcmd1bWVudHMsXG4gICAgICAgICAgICBpc0xhenkgPSB2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyLFxuICAgICAgICAgICAgaXRlcmF0ZWUgPSBhcmdzWzBdLFxuICAgICAgICAgICAgdXNlTGF6eSA9IGlzTGF6eSB8fCBpc0FycmF5KHZhbHVlKTtcblxuICAgICAgICB2YXIgaW50ZXJjZXB0b3IgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgIHZhciByZXN1bHQgPSBsb2Rhc2hGdW5jLmFwcGx5KGxvZGFzaCwgYXJyYXlQdXNoKFt2YWx1ZV0sIGFyZ3MpKTtcbiAgICAgICAgICByZXR1cm4gKGlzVGFrZXIgJiYgY2hhaW5BbGwpID8gcmVzdWx0WzBdIDogcmVzdWx0O1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh1c2VMYXp5ICYmIGNoZWNrSXRlcmF0ZWUgJiYgdHlwZW9mIGl0ZXJhdGVlID09ICdmdW5jdGlvbicgJiYgaXRlcmF0ZWUubGVuZ3RoICE9IDEpIHtcbiAgICAgICAgICAvLyBBdm9pZCBsYXp5IHVzZSBpZiB0aGUgaXRlcmF0ZWUgaGFzIGEgXCJsZW5ndGhcIiB2YWx1ZSBvdGhlciB0aGFuIGAxYC5cbiAgICAgICAgICBpc0xhenkgPSB1c2VMYXp5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNoYWluQWxsID0gdGhpcy5fX2NoYWluX18sXG4gICAgICAgICAgICBpc0h5YnJpZCA9ICEhdGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgsXG4gICAgICAgICAgICBpc1Vud3JhcHBlZCA9IHJldFVud3JhcHBlZCAmJiAhY2hhaW5BbGwsXG4gICAgICAgICAgICBvbmx5TGF6eSA9IGlzTGF6eSAmJiAhaXNIeWJyaWQ7XG5cbiAgICAgICAgaWYgKCFyZXRVbndyYXBwZWQgJiYgdXNlTGF6eSkge1xuICAgICAgICAgIHZhbHVlID0gb25seUxhenkgPyB2YWx1ZSA6IG5ldyBMYXp5V3JhcHBlcih0aGlzKTtcbiAgICAgICAgICB2YXIgcmVzdWx0ID0gZnVuYy5hcHBseSh2YWx1ZSwgYXJncyk7XG4gICAgICAgICAgcmVzdWx0Ll9fYWN0aW9uc19fLnB1c2goeyAnZnVuYyc6IHRocnUsICdhcmdzJzogW2ludGVyY2VwdG9yXSwgJ3RoaXNBcmcnOiB1bmRlZmluZWQgfSk7XG4gICAgICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHJlc3VsdCwgY2hhaW5BbGwpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1Vud3JhcHBlZCAmJiBvbmx5TGF6eSkge1xuICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCA9IHRoaXMudGhydShpbnRlcmNlcHRvcik7XG4gICAgICAgIHJldHVybiBpc1Vud3JhcHBlZCA/IChpc1Rha2VyID8gcmVzdWx0LnZhbHVlKClbMF0gOiByZXN1bHQudmFsdWUoKSkgOiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGBBcnJheWAgbWV0aG9kcyB0byBgbG9kYXNoLnByb3RvdHlwZWAuXG4gICAgYXJyYXlFYWNoKFsncG9wJywgJ3B1c2gnLCAnc2hpZnQnLCAnc29ydCcsICdzcGxpY2UnLCAndW5zaGlmdCddLCBmdW5jdGlvbihtZXRob2ROYW1lKSB7XG4gICAgICB2YXIgZnVuYyA9IGFycmF5UHJvdG9bbWV0aG9kTmFtZV0sXG4gICAgICAgICAgY2hhaW5OYW1lID0gL14oPzpwdXNofHNvcnR8dW5zaGlmdCkkLy50ZXN0KG1ldGhvZE5hbWUpID8gJ3RhcCcgOiAndGhydScsXG4gICAgICAgICAgcmV0VW53cmFwcGVkID0gL14oPzpwb3B8c2hpZnQpJC8udGVzdChtZXRob2ROYW1lKTtcblxuICAgICAgbG9kYXNoLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgaWYgKHJldFVud3JhcHBlZCAmJiAhdGhpcy5fX2NoYWluX18pIHtcbiAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLnZhbHVlKCk7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkoaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtdLCBhcmdzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpc1tjaGFpbk5hbWVdKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkoaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtdLCBhcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gTWFwIG1pbmlmaWVkIG1ldGhvZCBuYW1lcyB0byB0aGVpciByZWFsIG5hbWVzLlxuICAgIGJhc2VGb3JPd24oTGF6eVdyYXBwZXIucHJvdG90eXBlLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XG4gICAgICB2YXIgbG9kYXNoRnVuYyA9IGxvZGFzaFttZXRob2ROYW1lXTtcbiAgICAgIGlmIChsb2Rhc2hGdW5jKSB7XG4gICAgICAgIHZhciBrZXkgPSBsb2Rhc2hGdW5jLm5hbWUgKyAnJztcbiAgICAgICAgaWYgKCFoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlYWxOYW1lcywga2V5KSkge1xuICAgICAgICAgIHJlYWxOYW1lc1trZXldID0gW107XG4gICAgICAgIH1cbiAgICAgICAgcmVhbE5hbWVzW2tleV0ucHVzaCh7ICduYW1lJzogbWV0aG9kTmFtZSwgJ2Z1bmMnOiBsb2Rhc2hGdW5jIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmVhbE5hbWVzW2NyZWF0ZUh5YnJpZCh1bmRlZmluZWQsIFdSQVBfQklORF9LRVlfRkxBRykubmFtZV0gPSBbe1xuICAgICAgJ25hbWUnOiAnd3JhcHBlcicsXG4gICAgICAnZnVuYyc6IHVuZGVmaW5lZFxuICAgIH1dO1xuXG4gICAgLy8gQWRkIG1ldGhvZHMgdG8gYExhenlXcmFwcGVyYC5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuY2xvbmUgPSBsYXp5Q2xvbmU7XG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnJldmVyc2UgPSBsYXp5UmV2ZXJzZTtcbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUudmFsdWUgPSBsYXp5VmFsdWU7XG5cbiAgICAvLyBBZGQgY2hhaW4gc2VxdWVuY2UgbWV0aG9kcyB0byB0aGUgYGxvZGFzaGAgd3JhcHBlci5cbiAgICBsb2Rhc2gucHJvdG90eXBlLmF0ID0gd3JhcHBlckF0O1xuICAgIGxvZGFzaC5wcm90b3R5cGUuY2hhaW4gPSB3cmFwcGVyQ2hhaW47XG4gICAgbG9kYXNoLnByb3RvdHlwZS5jb21taXQgPSB3cmFwcGVyQ29tbWl0O1xuICAgIGxvZGFzaC5wcm90b3R5cGUubmV4dCA9IHdyYXBwZXJOZXh0O1xuICAgIGxvZGFzaC5wcm90b3R5cGUucGxhbnQgPSB3cmFwcGVyUGxhbnQ7XG4gICAgbG9kYXNoLnByb3RvdHlwZS5yZXZlcnNlID0gd3JhcHBlclJldmVyc2U7XG4gICAgbG9kYXNoLnByb3RvdHlwZS50b0pTT04gPSBsb2Rhc2gucHJvdG90eXBlLnZhbHVlT2YgPSBsb2Rhc2gucHJvdG90eXBlLnZhbHVlID0gd3JhcHBlclZhbHVlO1xuXG4gICAgLy8gQWRkIGxhenkgYWxpYXNlcy5cbiAgICBsb2Rhc2gucHJvdG90eXBlLmZpcnN0ID0gbG9kYXNoLnByb3RvdHlwZS5oZWFkO1xuXG4gICAgaWYgKHN5bUl0ZXJhdG9yKSB7XG4gICAgICBsb2Rhc2gucHJvdG90eXBlW3N5bUl0ZXJhdG9yXSA9IHdyYXBwZXJUb0l0ZXJhdG9yO1xuICAgIH1cbiAgICByZXR1cm4gbG9kYXNoO1xuICB9KTtcblxuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAvLyBFeHBvcnQgbG9kYXNoLlxuICB2YXIgXyA9IHJ1bkluQ29udGV4dCgpO1xuXG4gIC8vIFNvbWUgQU1EIGJ1aWxkIG9wdGltaXplcnMsIGxpa2Ugci5qcywgY2hlY2sgZm9yIGNvbmRpdGlvbiBwYXR0ZXJucyBsaWtlOlxuICBpZiAodHlwZW9mIGRlZmluZSA9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkZWZpbmUuYW1kID09ICdvYmplY3QnICYmIGRlZmluZS5hbWQpIHtcbiAgICAvLyBFeHBvc2UgTG9kYXNoIG9uIHRoZSBnbG9iYWwgb2JqZWN0IHRvIHByZXZlbnQgZXJyb3JzIHdoZW4gTG9kYXNoIGlzXG4gICAgLy8gbG9hZGVkIGJ5IGEgc2NyaXB0IHRhZyBpbiB0aGUgcHJlc2VuY2Ugb2YgYW4gQU1EIGxvYWRlci5cbiAgICAvLyBTZWUgaHR0cDovL3JlcXVpcmVqcy5vcmcvZG9jcy9lcnJvcnMuaHRtbCNtaXNtYXRjaCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgIC8vIFVzZSBgXy5ub0NvbmZsaWN0YCB0byByZW1vdmUgTG9kYXNoIGZyb20gdGhlIGdsb2JhbCBvYmplY3QuXG4gICAgcm9vdC5fID0gXztcblxuICAgIC8vIERlZmluZSBhcyBhbiBhbm9ueW1vdXMgbW9kdWxlIHNvLCB0aHJvdWdoIHBhdGggbWFwcGluZywgaXQgY2FuIGJlXG4gICAgLy8gcmVmZXJlbmNlZCBhcyB0aGUgXCJ1bmRlcnNjb3JlXCIgbW9kdWxlLlxuICAgIGRlZmluZShmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBfO1xuICAgIH0pO1xuICB9XG4gIC8vIENoZWNrIGZvciBgZXhwb3J0c2AgYWZ0ZXIgYGRlZmluZWAgaW4gY2FzZSBhIGJ1aWxkIG9wdGltaXplciBhZGRzIGl0LlxuICBlbHNlIGlmIChmcmVlTW9kdWxlKSB7XG4gICAgLy8gRXhwb3J0IGZvciBOb2RlLmpzLlxuICAgIChmcmVlTW9kdWxlLmV4cG9ydHMgPSBfKS5fID0gXztcbiAgICAvLyBFeHBvcnQgZm9yIENvbW1vbkpTIHN1cHBvcnQuXG4gICAgZnJlZUV4cG9ydHMuXyA9IF87XG4gIH1cbiAgZWxzZSB7XG4gICAgLy8gRXhwb3J0IHRvIHRoZSBnbG9iYWwgb2JqZWN0LlxuICAgIHJvb3QuXyA9IF87XG4gIH1cbn0uY2FsbCh0aGlzKSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuVmFsdWUgPSBleHBvcnRzLkFyaXR5ID0gdm9pZCAwO1xuY29uc3QgbG9kYXNoXzEgPSByZXF1aXJlKFwibG9kYXNoXCIpO1xuY2xhc3MgQXJpdHkge1xuICAgIGNvbnN0cnVjdG9yKHJvd3MsIGNvbHVtbnMpIHtcbiAgICAgICAgdGhpcy5pc1JvdyA9ICgpID0+IHRoaXMucm93cyA+IDEgJiYgdGhpcy5jb2xzID09PSAxO1xuICAgICAgICB0aGlzLmlzQ29sdW1uID0gKCkgPT4gdGhpcy5yb3dzID09PSAxICYmIHRoaXMuY29scyA+IDE7XG4gICAgICAgIHRoaXMuaXNDZWxsID0gKCkgPT4gdGhpcy5yb3dzID09PSAxICYmIHRoaXMuY29scyA9PT0gMTtcbiAgICAgICAgdGhpcy5yb3dzID0gcm93cztcbiAgICAgICAgdGhpcy5jb2xzID0gY29sdW1ucztcbiAgICB9XG59XG5leHBvcnRzLkFyaXR5ID0gQXJpdHk7XG5jbGFzcyBWYWx1ZSB7XG4gICAgY29uc3RydWN0b3IodmFsKSB7XG4gICAgICAgIHRoaXMuZ2V0ID0gKHJvdywgY29sdW1uKSA9PiB0aGlzLnZhbFtyb3ddW2NvbHVtbl07XG4gICAgICAgIHRoaXMuZ2V0QXNGbG9hdCA9IChyb3csIGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VGbG9hdCh0aGlzLmdldChyb3csIGNvbHVtbikpO1xuICAgICAgICAgICAgcmV0dXJuIGlzTmFOKHBhcnNlZCkgPyAwIDogcGFyc2VkO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmdldEFzSW50ID0gKHJvdywgY29sdW1uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUludCh0aGlzLmdldChyb3csIGNvbHVtbikpO1xuICAgICAgICAgICAgcmV0dXJuIGlzTmFOKHBhcnNlZCkgPyAwIDogcGFyc2VkO1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogZ2V0QXJpdHkgcmV0dXJucyB0aGUgZGltZW5zaW9ucyBvZiB0aGUgY29udGFpbmVkIHZhbHVlLCBpbiByb3dzIGFuZCBjb2x1bW5zXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmdldEFyaXR5ID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWF4Q29scyA9IHRoaXMudmFsLnJlZHVjZSgobWF4LCBjdXJyZW50Um93KSA9PiBNYXRoLm1heChtYXgsIGN1cnJlbnRSb3cubGVuZ3RoKSwgMCk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFyaXR5KHRoaXMudmFsLmxlbmd0aCwgbWF4Q29scyk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudG9TdHJpbmcgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5nZXRBcml0eSgpLmlzQ2VsbCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KDAsIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGBbJHtsb2Rhc2hfMS5mbGF0dGVuKHRoaXMudmFsKVxuICAgICAgICAgICAgICAgIC5tYXAoKHZhbCkgPT4gdmFsLnRyaW0oKSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKCh2YWwpID0+IHZhbCAhPT0gJycpXG4gICAgICAgICAgICAgICAgLmpvaW4oJywgJyl9XWA7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudmFsID0gdmFsO1xuICAgIH1cbn1cbmV4cG9ydHMuVmFsdWUgPSBWYWx1ZTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5BbGdlYnJhaWNPcGVyYXRpb24gPSB2b2lkIDA7XG5jb25zdCBuZXZlcnRocm93XzEgPSByZXF1aXJlKFwiLi4vbmV2ZXJ0aHJvdy9uZXZlcnRocm93XCIpO1xuY29uc3QgYXN0X3V0aWxzXzEgPSByZXF1aXJlKFwiLi9hc3RfdXRpbHNcIik7XG5jb25zdCBjYWxjXzEgPSByZXF1aXJlKFwiLi9jYWxjXCIpO1xuY29uc3QgcmVzdWx0c18xID0gcmVxdWlyZShcIi4vcmVzdWx0c1wiKTtcbmNvbnN0IGxvZGFzaF8xID0gcmVxdWlyZShcImxvZGFzaFwiKTtcbmNsYXNzIEFsZ2VicmFpY09wZXJhdGlvbiB7XG4gICAgY29uc3RydWN0b3IoYXN0LCB0YWJsZSkge1xuICAgICAgICB0aGlzLmdldFZhbHVlID0gKHRhYmxlLCBjZWxsKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMub3BlcmF0b3IpIHtcbiAgICAgICAgICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkKHRhYmxlLCBjZWxsKTtcbiAgICAgICAgICAgICAgICBjYXNlICctJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3VidHJhY3QodGFibGUsIGNlbGwpO1xuICAgICAgICAgICAgICAgIGNhc2UgJyonOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tdWx0aXBseSh0YWJsZSwgY2VsbCk7XG4gICAgICAgICAgICAgICAgY2FzZSAnLyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRpdmlkZSh0YWJsZSwgY2VsbCk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIoRXJyb3IoJ0ludmFsaWQgYWxnYnJhaWMgb3BlcmF0b3I6ICcgKyB0aGlzLm9wZXJhdG9yKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiB3aXRoQ2VsbEFuZFJhbmdlIGFpZHMgaW4gcGVyZm9ybWluZyBhIG51bWVyaWMgb3BlcmF0aW9uIG9uIGNlbGxzIGluIGFcbiAgICAgICAgICogdGFibGUgd2hlcmUgYXQgbGVhc3Qgb25lIG9mIHRoZSB0d28gb3BlcmFuZHMgaXMgYSBzaW5nbGUgY2VsbC4gT3B0aW9uYWxseSxcbiAgICAgICAgICogdGhlIHR3byBzaWRlcyBvZiB0aGUgb3BlcmF0aW9uIGNhbiBiZSBzd2FwcGVkLCBzbyB0aGUgc2luZ2xlIGNlbGwgaXNcbiAgICAgICAgICogYWx3YXlzIG9uIHRoZSByaWdodC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMud2l0aENlbGxBbmRSYW5nZSA9ICh0YWJsZSwgY2VsbCwgbmFtZSwgY2FuSGF2ZVJpZ2h0UmFuZ2UsIGZuKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsZWZ0VmFsdWUgPSB0aGlzLmxlZnRTb3VyY2UuZ2V0VmFsdWUodGFibGUsIGNlbGwpO1xuICAgICAgICAgICAgaWYgKGxlZnRWYWx1ZS5pc0VycigpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIobGVmdFZhbHVlLmVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJpZ2h0VmFsdWUgPSB0aGlzLnJpZ2h0U291cmNlLmdldFZhbHVlKHRhYmxlLCBjZWxsKTtcbiAgICAgICAgICAgIGlmIChyaWdodFZhbHVlLmlzRXJyKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihyaWdodFZhbHVlLmVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxlZnRBcml0eSA9IGxlZnRWYWx1ZS52YWx1ZS5nZXRBcml0eSgpO1xuICAgICAgICAgICAgY29uc3QgcmlnaHRBcml0eSA9IHJpZ2h0VmFsdWUudmFsdWUuZ2V0QXJpdHkoKTtcbiAgICAgICAgICAgIGlmICghcmlnaHRBcml0eS5pc0NlbGwoKSAmJiAhbGVmdEFyaXR5LmlzQ2VsbCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIoRXJyb3IoYEF0IGxlYXN0IG9uZSBvcGVyYW5kIGluIGFsZ2VicmFpYyBcIiR7bmFtZX1cIiBtdXN0IGJlIGEgc2luZ2xlIGNlbGwuYCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFyaWdodEFyaXR5LmlzQ2VsbCgpICYmICFjYW5IYXZlUmlnaHRSYW5nZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKEVycm9yKGBSaWdodCBvcGVyYW5kIGluIGFsZ2VicmFpYyBcIiR7bmFtZX1cIiBtdXN0IGJlIGEgc2luZ2xlIGNlbGwuYCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJpZ2h0QXJpdHkuaXNDZWxsKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByaWdodENlbGxWYWx1ZSA9IHJpZ2h0VmFsdWUudmFsdWUuZ2V0QXNGbG9hdCgwLCAwKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBsb2Rhc2hfMS5tYXAobGVmdFZhbHVlLnZhbHVlLnZhbCwgKGN1cnJlbnRSb3cpID0+IGxvZGFzaF8xLm1hcChjdXJyZW50Um93LCAoY3VycmVudENlbGwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxlZnRDZWxsVmFsdWUgPSBwYXJzZUZsb2F0KGN1cnJlbnRDZWxsKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKGxlZnRDZWxsVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0Q2VsbFZhbHVlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm4obGVmdENlbGxWYWx1ZSwgcmlnaHRDZWxsVmFsdWUpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobmV3IHJlc3VsdHNfMS5WYWx1ZShyZXN1bHQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxlZnRDZWxsVmFsdWUgPSBsZWZ0VmFsdWUudmFsdWUuZ2V0QXNGbG9hdCgwLCAwKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGxvZGFzaF8xLm1hcChyaWdodFZhbHVlLnZhbHVlLnZhbCwgKGN1cnJlbnRSb3cpID0+IGxvZGFzaF8xLm1hcChjdXJyZW50Um93LCAoY3VycmVudENlbGwpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgcmlnaHRDZWxsVmFsdWUgPSBwYXJzZUZsb2F0KGN1cnJlbnRDZWxsKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYU4obGVmdENlbGxWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHRDZWxsVmFsdWUgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZm4obGVmdENlbGxWYWx1ZSwgcmlnaHRDZWxsVmFsdWUpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyByZXN1bHRzXzEuVmFsdWUocmVzdWx0KSk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYWRkID0gKHRhYmxlLCBjZWxsKSA9PiB0aGlzLndpdGhDZWxsQW5kUmFuZ2UodGFibGUsIGNlbGwsICdhZGQnLCB0cnVlLCAobGVmdCwgcmlnaHQpID0+IGxlZnQgKyByaWdodCk7XG4gICAgICAgIHRoaXMuc3VidHJhY3QgPSAodGFibGUsIGNlbGwpID0+IHRoaXMud2l0aENlbGxBbmRSYW5nZSh0YWJsZSwgY2VsbCwgJ3N1YnRyYWN0JywgdHJ1ZSwgKGxlZnQsIHJpZ2h0KSA9PiBsZWZ0IC0gcmlnaHQpO1xuICAgICAgICB0aGlzLm11bHRpcGx5ID0gKHRhYmxlLCBjZWxsKSA9PiB0aGlzLndpdGhDZWxsQW5kUmFuZ2UodGFibGUsIGNlbGwsICdtdWx0aXBseScsIHRydWUsIChsZWZ0LCByaWdodCkgPT4gbGVmdCAqIHJpZ2h0KTtcbiAgICAgICAgdGhpcy5kaXZpZGUgPSAodGFibGUsIGNlbGwpID0+IHRoaXMud2l0aENlbGxBbmRSYW5nZSh0YWJsZSwgY2VsbCwgJ2RpdmlkZScsIGZhbHNlLCAobGVmdCwgcmlnaHQpID0+IGxlZnQgLyByaWdodCk7XG4gICAgICAgIGNvbnN0IHR5cGVFcnIgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LCAnYWxnZWJyYWljX29wZXJhdGlvbicpO1xuICAgICAgICBpZiAodHlwZUVycikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAzKTtcbiAgICAgICAgaWYgKGxlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBsZW5ndGhFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjaGlsZFR5cGVFcnIgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LmNoaWxkcmVuWzFdLCAnYWxnZWJyYWljX29wZXJhdG9yJyk7XG4gICAgICAgIGlmIChjaGlsZFR5cGVFcnIpIHtcbiAgICAgICAgICAgIHRocm93IGNoaWxkVHlwZUVycjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZXJhdG9yID0gYXN0LmNoaWxkcmVuWzFdLnRleHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmxlZnRTb3VyY2UgPSBuZXcgY2FsY18xLlNvdXJjZShhc3QuY2hpbGRyZW5bMF0sIHRhYmxlKTtcbiAgICAgICAgICAgIHRoaXMucmlnaHRTb3VyY2UgPSBuZXcgY2FsY18xLlNvdXJjZShhc3QuY2hpbGRyZW5bMl0sIHRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIFN0aWxsIGluIGEgY29uc3RydWN0b3IsIHNvIG5vdGhpbmcgd2UgY2FuIGRvIGJ1dCB0aHJvdyBhZ2FpblxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkFsZ2VicmFpY09wZXJhdGlvbiA9IEFsZ2VicmFpY09wZXJhdGlvbjtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Db25kaXRpb25hbEZ1bmN0aW9uQ2FsbCA9IHZvaWQgMDtcbmNvbnN0IG5ldmVydGhyb3dfMSA9IHJlcXVpcmUoXCIuLi9uZXZlcnRocm93L25ldmVydGhyb3dcIik7XG5jb25zdCBhc3RfdXRpbHNfMSA9IHJlcXVpcmUoXCIuL2FzdF91dGlsc1wiKTtcbmNvbnN0IGNhbGNfMSA9IHJlcXVpcmUoXCIuL2NhbGNcIik7XG5jbGFzcyBDb25kaXRpb25hbEZ1bmN0aW9uQ2FsbCB7XG4gICAgY29uc3RydWN0b3IoYXN0LCB0YWJsZSkge1xuICAgICAgICB0aGlzLmdldFZhbHVlID0gKHRhYmxlLCBjZWxsKSA9PiB0aGlzLnByZWRpY2F0ZVxuICAgICAgICAgICAgLmV2YWwodGFibGUsIGNlbGwpXG4gICAgICAgICAgICAuYW5kVGhlbigocHJlZGljYXRlUmVzdWx0KSA9PiBwcmVkaWNhdGVSZXN1bHRcbiAgICAgICAgICAgID8gdGhpcy5sZWZ0U291cmNlLmdldFZhbHVlKHRhYmxlLCBjZWxsKVxuICAgICAgICAgICAgOiB0aGlzLnJpZ2h0U291cmNlLmdldFZhbHVlKHRhYmxlLCBjZWxsKSk7XG4gICAgICAgIGNvbnN0IHR5cGVFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShhc3QsICdjb25kaXRpb25hbF9mdW5jdGlvbl9jYWxsJyk7XG4gICAgICAgIGlmICh0eXBlRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IHR5cGVFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAzKTtcbiAgICAgICAgaWYgKGxlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBsZW5ndGhFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5wcmVkaWNhdGUgPSBuZXcgUHJlZGljYXRlKGFzdC5jaGlsZHJlblswXSwgdGFibGUpO1xuICAgICAgICAgICAgdGhpcy5sZWZ0U291cmNlID0gbmV3IGNhbGNfMS5Tb3VyY2UoYXN0LmNoaWxkcmVuWzFdLCB0YWJsZSk7XG4gICAgICAgICAgICB0aGlzLnJpZ2h0U291cmNlID0gbmV3IGNhbGNfMS5Tb3VyY2UoYXN0LmNoaWxkcmVuWzJdLCB0YWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAvLyBTdGlsbCBpbiBhIGNvbnN0cnVjdG9yLCBzbyBub3RoaW5nIHdlIGNhbiBkbyBidXQgdGhyb3cgYWdhaW5cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Db25kaXRpb25hbEZ1bmN0aW9uQ2FsbCA9IENvbmRpdGlvbmFsRnVuY3Rpb25DYWxsO1xuY2xhc3MgUHJlZGljYXRlIHtcbiAgICBjb25zdHJ1Y3Rvcihhc3QsIHRhYmxlKSB7XG4gICAgICAgIHRoaXMuZXZhbCA9ICh0YWJsZSwgY2VsbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGVmdERhdGEgPSB0aGlzLmxlZnRTb3VyY2UuZ2V0VmFsdWUodGFibGUsIGNlbGwpO1xuICAgICAgICAgICAgaWYgKGxlZnREYXRhLmlzRXJyKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihsZWZ0RGF0YS5lcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByaWdodERhdGEgPSB0aGlzLnJpZ2h0U291cmNlLmdldFZhbHVlKHRhYmxlLCBjZWxsKTtcbiAgICAgICAgICAgIGlmIChyaWdodERhdGEuaXNFcnIoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKHJpZ2h0RGF0YS5lcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsZWZ0QXJpdHkgPSBsZWZ0RGF0YS52YWx1ZS5nZXRBcml0eSgpO1xuICAgICAgICAgICAgY29uc3QgcmlnaHRBcml0eSA9IHJpZ2h0RGF0YS52YWx1ZS5nZXRBcml0eSgpO1xuICAgICAgICAgICAgaWYgKCFsZWZ0QXJpdHkuaXNDZWxsKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihFcnJvcignQ2FuIG9ubHkgdXNlIGNvbXBhcmlzb24gb3BlcmF0b3Igb24gYSBzaW5nbGUgY2VsbC4gTGVmdCBzaWRlIGlzIG5vdCBhIGNlbGwuJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFyaWdodEFyaXR5LmlzQ2VsbCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIoRXJyb3IoJ0NhbiBvbmx5IHVzZSBjb21wYXJpc29uIG9wZXJhdG9yIG9uIGEgc2luZ2xlIGNlbGwuIFJpZ2h0IHNpZGUgaXMgbm90IGEgY2VsbC4nKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsZWZ0VmFsID0gbGVmdERhdGEudmFsdWUuZ2V0QXNGbG9hdCgwLCAwKTtcbiAgICAgICAgICAgIGNvbnN0IHJpZ2h0VmFsID0gcmlnaHREYXRhLnZhbHVlLmdldEFzRmxvYXQoMCwgMCk7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMub3BlcmF0b3IpIHtcbiAgICAgICAgICAgICAgICBjYXNlICc+JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhsZWZ0VmFsID4gcmlnaHRWYWwpO1xuICAgICAgICAgICAgICAgIGNhc2UgJz49JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhsZWZ0VmFsID49IHJpZ2h0VmFsKTtcbiAgICAgICAgICAgICAgICBjYXNlICc8JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhsZWZ0VmFsIDwgcmlnaHRWYWwpO1xuICAgICAgICAgICAgICAgIGNhc2UgJzw9JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhsZWZ0VmFsIDw9IHJpZ2h0VmFsKTtcbiAgICAgICAgICAgICAgICBjYXNlICc9PSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobGVmdFZhbCA9PT0gcmlnaHRWYWwpO1xuICAgICAgICAgICAgICAgIGNhc2UgJyE9JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhsZWZ0VmFsICE9PSByaWdodFZhbCk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIoRXJyb3IoJ0ludmFsaWQgY29uZGl0aW9uYWwgb3BlcmF0b3I6ICcgKyB0aGlzLm9wZXJhdG9yKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHR5cGVFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShhc3QsICdwcmVkaWNhdGUnKTtcbiAgICAgICAgaWYgKHR5cGVFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChhc3QsIDMpO1xuICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGxlbmd0aEVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNoaWxkVHlwZUVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGFzdC5jaGlsZHJlblsxXSwgJ2NvbmRpdGlvbmFsX29wZXJhdG9yJyk7XG4gICAgICAgIGlmIChjaGlsZFR5cGVFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgY2hpbGRUeXBlRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcGVyYXRvciA9IGFzdC5jaGlsZHJlblsxXS50ZXh0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5sZWZ0U291cmNlID0gbmV3IGNhbGNfMS5Tb3VyY2UoYXN0LmNoaWxkcmVuWzBdLCB0YWJsZSk7XG4gICAgICAgICAgICB0aGlzLnJpZ2h0U291cmNlID0gbmV3IGNhbGNfMS5Tb3VyY2UoYXN0LmNoaWxkcmVuWzJdLCB0YWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAvLyBTdGlsbCBpbiBhIGNvbnN0cnVjdG9yLCBzbyBub3RoaW5nIHdlIGNhbiBkbyBidXQgdGhyb3cgYWdhaW5cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNvbnN0YW50ID0gdm9pZCAwO1xuY29uc3QgbmV2ZXJ0aHJvd18xID0gcmVxdWlyZShcIi4uL25ldmVydGhyb3cvbmV2ZXJ0aHJvd1wiKTtcbmNvbnN0IGFzdF91dGlsc18xID0gcmVxdWlyZShcIi4vYXN0X3V0aWxzXCIpO1xuY29uc3QgcmVzdWx0c18xID0gcmVxdWlyZShcIi4vcmVzdWx0c1wiKTtcbmNsYXNzIENvbnN0YW50IHtcbiAgICBjb25zdHJ1Y3Rvcihhc3QsIHRhYmxlKSB7XG4gICAgICAgIGNvbnN0IHR5cGVFcnIgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LCAncmVhbCcsICdmbG9hdCcpO1xuICAgICAgICBpZiAodHlwZUVycikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtdWx0aXBsaWVyID0gYXN0LnRleHRbMF0gPT09ICctJyA/IC0xIDogMTtcbiAgICAgICAgaWYgKGFzdC50eXBlID09PSAncmVhbCcpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBtdWx0aXBsaWVyICogcGFyc2VJbnQoYXN0LmNoaWxkcmVuWzBdLnRleHQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9XG4gICAgICAgICAgICAgICAgbXVsdGlwbGllciAqXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoYXN0LmNoaWxkcmVuWzBdLnRleHQgKyAnLicgKyBhc3QuY2hpbGRyZW5bMV0udGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0VmFsdWUodGFibGUsIGN1cnJlbnRDZWxsKSB7XG4gICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobmV3IHJlc3VsdHNfMS5WYWx1ZShbW3RoaXMudmFsdWUudG9TdHJpbmcoKV1dKSk7XG4gICAgfVxufVxuZXhwb3J0cy5Db25zdGFudCA9IENvbnN0YW50O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkFic29sdXRlQ29sdW1uID0gZXhwb3J0cy5Db2x1bW4gPSBleHBvcnRzLm5ld0NvbHVtbiA9IHZvaWQgMDtcbmNvbnN0IG5ldmVydGhyb3dfMSA9IHJlcXVpcmUoXCIuLi9uZXZlcnRocm93L25ldmVydGhyb3dcIik7XG5jb25zdCBhc3RfdXRpbHNfMSA9IHJlcXVpcmUoXCIuL2FzdF91dGlsc1wiKTtcbmNvbnN0IHJlc3VsdHNfMSA9IHJlcXVpcmUoXCIuL3Jlc3VsdHNcIik7XG5jb25zdCBuZXdDb2x1bW4gPSAoYXN0LCB0YWJsZSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIHN3aXRjaCAoYXN0LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3JlbGF0aXZlX2NvbHVtbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgUmVsYXRpdmVDb2x1bW4oYXN0LCB0YWJsZSkpO1xuICAgICAgICAgICAgY2FzZSAnYWJzb2x1dGVfY29sdW1uJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyBBYnNvbHV0ZUNvbHVtbihhc3QsIHRhYmxlKSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKG5ldyBFcnJvcihgRm9ybXVsYSBlbGVtZW50ICcke2FzdC50ZXh0fScgaXMgYSAke2FzdC50eXBlfSBidXQgZXhwZWN0ZWQgYW4gYCArXG4gICAgICAgICAgICAgICAgICAgICdyZWxhdHZlX2NvbHVtbiBvciBhYnNvbHV0ZV9jb2x1bW4gaW4gdGhpcyBwb3NpdGlvbi4nKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKGVycm9yKTtcbiAgICB9XG59O1xuZXhwb3J0cy5uZXdDb2x1bW4gPSBuZXdDb2x1bW47XG5jbGFzcyBDb2x1bW4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmdldFZhbHVlID0gKHRhYmxlLCBjdXJyZW50Q2VsbCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgY29uc3QgdmFsID0gKChfYSA9IHRhYmxlLmdldENlbGxBdChjdXJyZW50Q2VsbC5yb3csIHRoaXMuZ2V0SW5kZXgoY3VycmVudENlbGwpKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvVGV4dCgpKSB8fFxuICAgICAgICAgICAgICAgICcnO1xuICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgcmVzdWx0c18xLlZhbHVlKFtbdmFsXV0pKTtcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnRzLkNvbHVtbiA9IENvbHVtbjtcbmNsYXNzIFJlbGF0aXZlQ29sdW1uIGV4dGVuZHMgQ29sdW1uIHtcbiAgICBjb25zdHJ1Y3Rvcihhc3QsIHRhYmxlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZ2V0SW5kZXggPSAoY3VycmVudENlbGwpID0+IGN1cnJlbnRDZWxsLmNvbHVtbiArIHRoaXMub2Zmc2V0O1xuICAgICAgICB0aGlzLmdldEFic29sdXRlSW5kZXggPSAoKSA9PiBuZXZlcnRocm93XzEuZXJyKGFzdF91dGlsc18xLmVyclJlbGF0aXZlUmVmZXJlbmNlSW5kZXgpO1xuICAgICAgICBjb25zdCB0eXBlRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LCAncmVsYXRpdmVfY29sdW1uJyk7XG4gICAgICAgIGlmICh0eXBlRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IHR5cGVFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAxKTtcbiAgICAgICAgaWYgKGxlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBsZW5ndGhFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtdWx0aXBsaWVyID0gYXN0LnRleHRbMV0gPT09ICctJyA/IC0xIDogMTtcbiAgICAgICAgdGhpcy5vZmZzZXQgPSBtdWx0aXBsaWVyICogcGFyc2VJbnQoYXN0LmNoaWxkcmVuWzBdLnRleHQpO1xuICAgIH1cbn1cbmNsYXNzIEFic29sdXRlQ29sdW1uIGV4dGVuZHMgQ29sdW1uIHtcbiAgICBjb25zdHJ1Y3Rvcihhc3QsIHRhYmxlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZ2V0SW5kZXggPSAoY3VycmVudENlbGwpID0+IHRoaXMuaW5kZXg7XG4gICAgICAgIHRoaXMuZ2V0QWJzb2x1dGVJbmRleCA9ICgpID0+IG5ldmVydGhyb3dfMS5vayh0aGlzLmluZGV4KTtcbiAgICAgICAgbGV0IGluZGV4ID0gLTE7XG4gICAgICAgIGxldCBzeW1ib2wgPSAnJztcbiAgICAgICAgc3dpdGNoIChhc3QuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgc3ltYm9sID0gYXN0LnRleHRbMV07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZUVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGFzdC5jaGlsZHJlblswXSwgJ2ludCcpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV2ZXJ0aHJvd18xLmVycih0eXBlRXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpbmRleCA9IHBhcnNlSW50KGFzdC5jaGlsZHJlblswXS50ZXh0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3JtdWxhIGVsZW1lbnQgJyR7YXN0LnRleHR9JyBpcyBhICR7YXN0LnR5cGV9IGJ1dCBleHBlY3RlZCBgICtcbiAgICAgICAgICAgICAgICAgICAgJ2EgXFwnYWJzb2x1dGVfY29sdW1uXFwnIGluIHRoaXMgcG9zaXRpb24uJyk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChzeW1ib2wpIHtcbiAgICAgICAgICAgIGNhc2UgJyc6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICc8JzpcbiAgICAgICAgICAgICAgICBpbmRleCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICc+JzpcbiAgICAgICAgICAgICAgICBpbmRleCA9IHRhYmxlLmdldFdpZHRoKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb2x1bW4gc3ltYm9sICcke3N5bWJvbH0nYCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBhc3RfdXRpbHNfMS5lcnJJbmRleDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbmRleCA9IGluZGV4IC0gMTsgLy8gLTEgZm9yIGJlaW5nIHplcm8gaW5kZXhlZFxuICAgIH1cbn1cbmV4cG9ydHMuQWJzb2x1dGVDb2x1bW4gPSBBYnNvbHV0ZUNvbHVtbjtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5BYnNvbHV0ZVJvdyA9IGV4cG9ydHMuUm93ID0gZXhwb3J0cy5uZXdSb3cgPSB2b2lkIDA7XG5jb25zdCBuZXZlcnRocm93XzEgPSByZXF1aXJlKFwiLi4vbmV2ZXJ0aHJvdy9uZXZlcnRocm93XCIpO1xuY29uc3QgYXN0X3V0aWxzXzEgPSByZXF1aXJlKFwiLi9hc3RfdXRpbHNcIik7XG5jb25zdCByZXN1bHRzXzEgPSByZXF1aXJlKFwiLi9yZXN1bHRzXCIpO1xuY29uc3QgbmV3Um93ID0gKGFzdCwgdGFibGUpID0+IHtcbiAgICB0cnkge1xuICAgICAgICBzd2l0Y2ggKGFzdC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdyZWxhdGl2ZV9yb3cnOlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobmV3IFJlbGF0aXZlUm93KGFzdCwgdGFibGUpKTtcbiAgICAgICAgICAgIGNhc2UgJ2Fic29sdXRlX3Jvdyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgQWJzb2x1dGVSb3coYXN0LCB0YWJsZSkpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihuZXcgRXJyb3IoYEZvcm11bGEgZWxlbWVudCAnJHthc3QudGV4dH0nIGlzIGEgJHthc3QudHlwZX0gYnV0IGV4cGVjdGVkIGFuIGAgK1xuICAgICAgICAgICAgICAgICAgICAncmVsYXR2ZV9yb3cgb3IgYWJzb2x1dGVfcm93ICBpbiB0aGlzIHBvc2l0aW9uLicpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIoZXJyb3IpO1xuICAgIH1cbn07XG5leHBvcnRzLm5ld1JvdyA9IG5ld1JvdztcbmNsYXNzIFJvdyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZ2V0VmFsdWUgPSAodGFibGUsIGN1cnJlbnRDZWxsKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSAoKF9hID0gdGFibGVcbiAgICAgICAgICAgICAgICAuZ2V0Q2VsbEF0KHRoaXMuZ2V0SW5kZXgoY3VycmVudENlbGwpLCBjdXJyZW50Q2VsbC5jb2x1bW4pKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9UZXh0KCkpIHx8ICcnO1xuICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgcmVzdWx0c18xLlZhbHVlKFtbdmFsXV0pKTtcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnRzLlJvdyA9IFJvdztcbmNsYXNzIFJlbGF0aXZlUm93IGV4dGVuZHMgUm93IHtcbiAgICBjb25zdHJ1Y3Rvcihhc3QsIHRhYmxlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZ2V0SW5kZXggPSAoY3VycmVudENlbGwpID0+IGN1cnJlbnRDZWxsLnJvdyArIHRoaXMub2Zmc2V0O1xuICAgICAgICB0aGlzLmdldEFic29sdXRlSW5kZXggPSAoKSA9PiBuZXZlcnRocm93XzEuZXJyKGFzdF91dGlsc18xLmVyclJlbGF0aXZlUmVmZXJlbmNlSW5kZXgpO1xuICAgICAgICBjb25zdCB0eXBlRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LCAncmVsYXRpdmVfcm93Jyk7XG4gICAgICAgIGlmICh0eXBlRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IHR5cGVFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAxKTtcbiAgICAgICAgaWYgKGxlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBsZW5ndGhFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtdWx0aXBsaWVyID0gYXN0LnRleHRbMV0gPT09ICctJyA/IC0xIDogMTtcbiAgICAgICAgdGhpcy5vZmZzZXQgPSBtdWx0aXBsaWVyICogcGFyc2VJbnQoYXN0LmNoaWxkcmVuWzBdLnRleHQpO1xuICAgIH1cbn1cbmNsYXNzIEFic29sdXRlUm93IGV4dGVuZHMgUm93IHtcbiAgICBjb25zdHJ1Y3Rvcihhc3QsIHRhYmxlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZ2V0SW5kZXggPSAoY3VycmVudENlbGwpID0+IHRoaXMuaW5kZXg7XG4gICAgICAgIHRoaXMuZ2V0QWJzb2x1dGVJbmRleCA9ICgpID0+IG5ldmVydGhyb3dfMS5vayh0aGlzLmluZGV4KTtcbiAgICAgICAgbGV0IGluZGV4ID0gLTE7XG4gICAgICAgIGxldCBzeW1ib2wgPSAnJztcbiAgICAgICAgc3dpdGNoIChhc3QuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgc3ltYm9sID0gYXN0LnRleHRbMV07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZUVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGFzdC5jaGlsZHJlblswXSwgJ2ludCcpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV2ZXJ0aHJvd18xLmVycih0eXBlRXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpbmRleCA9IHBhcnNlSW50KGFzdC5jaGlsZHJlblswXS50ZXh0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3JtdWxhIGVsZW1lbnQgJyR7YXN0LnRleHR9JyBpcyBhICR7YXN0LnR5cGV9IGJ1dCBleHBlY3RlZCBgICtcbiAgICAgICAgICAgICAgICAgICAgJ2EgXFwnYWJzb2x1dGVfcm93XFwnIGluIHRoaXMgcG9zaXRpb24uJyk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChzeW1ib2wpIHtcbiAgICAgICAgICAgIGNhc2UgJyc6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICc8JzpcbiAgICAgICAgICAgICAgICBpbmRleCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICc+JzpcbiAgICAgICAgICAgICAgICBpbmRleCA9IHRhYmxlLmdldEhlaWdodCgpIC0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0knOlxuICAgICAgICAgICAgICAgIGluZGV4ID0gMjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJvdyBzeW1ib2wgJyR7c3ltYm9sfSdgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IGFzdF91dGlsc18xLmVyckluZGV4MDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMuaW5kZXggPSAwOyAvLyBhY2NvdW50IGZvciBiZWluZyB6ZXJvIGluZGV4ZWRcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5kZXggPSBpbmRleDsgLy8gLTEgZm9yIGJlaW5nIHplcm8gaW5kZXhlZCwgYnV0IHBsdXMgMSB0byBza2lwIGhlYWRlclxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5BYnNvbHV0ZVJvdyA9IEFic29sdXRlUm93O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlZmVyZW5jZSA9IHZvaWQgMDtcbmNvbnN0IG5ldmVydGhyb3dfMSA9IHJlcXVpcmUoXCIuLi9uZXZlcnRocm93L25ldmVydGhyb3dcIik7XG5jb25zdCBhc3RfdXRpbHNfMSA9IHJlcXVpcmUoXCIuL2FzdF91dGlsc1wiKTtcbmNvbnN0IGNvbHVtbl8xID0gcmVxdWlyZShcIi4vY29sdW1uXCIpO1xuY29uc3QgcmVzdWx0c18xID0gcmVxdWlyZShcIi4vcmVzdWx0c1wiKTtcbmNvbnN0IHJvd18xID0gcmVxdWlyZShcIi4vcm93XCIpO1xuY2xhc3MgUmVmZXJlbmNlIHtcbiAgICBjb25zdHJ1Y3Rvcihhc3QsIHRhYmxlKSB7XG4gICAgICAgIHRoaXMuZ2V0VmFsdWUgPSAodGFibGUsIGN1cnJlbnRDZWxsKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCBjZWxsID0ge1xuICAgICAgICAgICAgICAgIHJvdzogdGhpcy5yb3cgPyB0aGlzLnJvdy5nZXRJbmRleChjdXJyZW50Q2VsbCkgOiBjdXJyZW50Q2VsbC5yb3csXG4gICAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmNvbHVtblxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuY29sdW1uLmdldEluZGV4KGN1cnJlbnRDZWxsKVxuICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnRDZWxsLmNvbHVtbixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCB2YWwgPSAoKF9hID0gdGFibGUuZ2V0Q2VsbEF0KGNlbGwucm93LCBjZWxsLmNvbHVtbikpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1RleHQoKSkgfHwgJyc7XG4gICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyByZXN1bHRzXzEuVmFsdWUoW1t2YWxdXSkpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0eXBlRXJyID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGFzdCwgJ3NvdXJjZV9yZWZlcmVuY2UnLCAnYWJzb2x1dGVfcmVmZXJlbmNlJywgJ3JlbGF0aXZlX3JlZmVyZW5jZScpO1xuICAgICAgICBpZiAodHlwZUVycikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFzdC5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBhc3QuY2hpbGRyZW5baV07XG4gICAgICAgICAgICBzd2l0Y2ggKGNoaWxkLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdyZWxhdGl2ZV9yb3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2Fic29sdXRlX3Jvdyc6XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJvdyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcignUmVmZXJlbmNlIG1heSBvbmx5IGhhdmUgYXQgbW9zdCAxIHJvdywgbW9yZSB0aGFuIDEgcHJvdmlkZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjcmVhdGVkUm93ID0gcm93XzEubmV3Um93KGNoaWxkLCB0YWJsZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjcmVhdGVkUm93LmlzRXJyKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjcmVhdGVkUm93LmVycm9yID09PSBhc3RfdXRpbHNfMS5lcnJJbmRleDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgYWN0dWFsbHkgYW4gZXJyb3IsIGp1c3QgaW5kaWNhdGVzIHVzaW5nIGN1cnJlbnQgaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZWRSb3cuZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3cgPSBjcmVhdGVkUm93LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdyZWxhdGl2ZV9jb2x1bW4nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2Fic29sdXRlX2NvbHVtbic6XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbHVtbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcignUmVmZXJlbmNlIG1heSBvbmx5IGhhdmUgYXQgbW9zdCAxIGNvbHVtbiwgbW9yZSB0aGFuIDEgcHJvdmlkZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjcmVhdGVkQ29sID0gY29sdW1uXzEubmV3Q29sdW1uKGNoaWxkLCB0YWJsZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjcmVhdGVkQ29sLmlzRXJyKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjcmVhdGVkQ29sLmVycm9yID09PSBhc3RfdXRpbHNfMS5lcnJJbmRleDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgYWN0dWFsbHkgYW4gZXJyb3IsIGp1c3QgaW5kaWNhdGVzIHVzaW5nIGN1cnJlbnQgaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZWRDb2wuZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW4gPSBjcmVhdGVkQ29sLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuUmVmZXJlbmNlID0gUmVmZXJlbmNlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJhbmdlID0gdm9pZCAwO1xuY29uc3QgbmV2ZXJ0aHJvd18xID0gcmVxdWlyZShcIi4uL25ldmVydGhyb3cvbmV2ZXJ0aHJvd1wiKTtcbmNvbnN0IGFzdF91dGlsc18xID0gcmVxdWlyZShcIi4vYXN0X3V0aWxzXCIpO1xuY29uc3QgcmVmZXJlbmNlXzEgPSByZXF1aXJlKFwiLi9yZWZlcmVuY2VcIik7XG5jb25zdCByZXN1bHRzXzEgPSByZXF1aXJlKFwiLi9yZXN1bHRzXCIpO1xuY29uc3QgbG9kYXNoXzEgPSByZXF1aXJlKFwibG9kYXNoXCIpO1xuY2xhc3MgUmFuZ2Uge1xuICAgIGNvbnN0cnVjdG9yKGFzdCwgdGFibGUpIHtcbiAgICAgICAgdGhpcy5nZXRWYWx1ZSA9ICh0YWJsZSwgY3VycmVudENlbGwpID0+IHtcbiAgICAgICAgICAgIC8vIGlmIG5vIHN0YXJ0IGNvbHVtbiBpcyBwcm92aWRlZCwgY29weSBpdCBmcm9tIHRoZSBjdXJyZW50Q2VsbFxuICAgICAgICAgICAgY29uc3Qgc3RhcnRDb2x1bW4gPSB0aGlzLnN0YXJ0Q29sdW1uXG4gICAgICAgICAgICAgICAgPyB0aGlzLnN0YXJ0Q29sdW1uLmdldEluZGV4KGN1cnJlbnRDZWxsKVxuICAgICAgICAgICAgICAgIDogY3VycmVudENlbGwuY29sdW1uO1xuICAgICAgICAgICAgLy8gaWYgdGhlIGNvbHVtbiBpcyBwcm92aWRlZCBpbiB0aGUgZmlyc3Qgc2V0LCBidXQgbm90IHRoZSBzZWNvbmQsIGNvcHkgaXRcbiAgICAgICAgICAgIGNvbnN0IGVuZENvbHVtbiA9IHRoaXMuZW5kQ29sdW1uXG4gICAgICAgICAgICAgICAgPyB0aGlzLmVuZENvbHVtbi5nZXRJbmRleChjdXJyZW50Q2VsbClcbiAgICAgICAgICAgICAgICA6IHN0YXJ0Q29sdW1uO1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRSb3cgPSB0aGlzLnN0YXJ0Um93XG4gICAgICAgICAgICAgICAgPyB0aGlzLnN0YXJ0Um93LmdldEluZGV4KGN1cnJlbnRDZWxsKVxuICAgICAgICAgICAgICAgIDogY3VycmVudENlbGwucm93O1xuICAgICAgICAgICAgY29uc3QgZW5kUm93ID0gdGhpcy5lbmRSb3dcbiAgICAgICAgICAgICAgICA/IHRoaXMuZW5kUm93LmdldEluZGV4KGN1cnJlbnRDZWxsKVxuICAgICAgICAgICAgICAgIDogY3VycmVudENlbGwucm93O1xuICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgcmVzdWx0c18xLlZhbHVlKGxvZGFzaF8xLm1hcChsb2Rhc2hfMS5yYW5nZShzdGFydFJvdywgZW5kUm93ICsgMSksIChyb3cpID0+IGxvZGFzaF8xLm1hcChsb2Rhc2hfMS5yYW5nZShzdGFydENvbHVtbiwgZW5kQ29sdW1uICsgMSksIChjb2wpID0+IHsgdmFyIF9hOyByZXR1cm4gKChfYSA9IHRhYmxlLmdldENlbGxBdChyb3csIGNvbCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1RleHQoKSkgfHwgJyc7IH0pKSkpO1xuICAgICAgICB9O1xuICAgICAgICAvLyBUaGVyZSBuZWVkcyB0byBiZSBhIGRpc3RpbmN0aW9uIGJldHdlZW4gcmFuZ2VzIGZvciBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uXG4gICAgICAgIC8vIGEgZGVzdGluYXRpb24gcmFuZ2UgZG9lcyBub3QgYWxsb3cgcmVsYXRpdmUgcmVmZXJlbmNlcywgd2hpY2ggd291bGRcbiAgICAgICAgLy8gc29sdmUgdGhpcyBpc3N1ZSB3aXRoIGdldHRpbmcgdGhlIGluZGV4LlxuICAgICAgICB0aGlzLmFzQ2VsbHMgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RhcnRDb2x1bW4gfHwgIXRoaXMuc3RhcnRSb3cgfHwgIXRoaXMuZW5kUm93KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIobmV3IEVycm9yKCdBIHJhbmdlIHVzZWQgYXMgYSBkZXNpbnRhdGlvbiBtdXN0IGRlZmluZSByb3dzIGFuZCBjZWxscycpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZSBzZWNvbmQgcmVmZXJlbmNlIGluIHRoZSByYW5nZSBkb2VzIG5vdCBpbmNsdWRlIGEgY29sdW1uLFxuICAgICAgICAgICAgLy8gdXNlIHRoZSBzdGFydCBjb2x1bW4uXG4gICAgICAgICAgICBsZXQgZW5kQ29sdW1uID0gdGhpcy5lbmRDb2x1bW47XG4gICAgICAgICAgICBpZiAoIWVuZENvbHVtbikge1xuICAgICAgICAgICAgICAgIGVuZENvbHVtbiA9IHRoaXMuc3RhcnRDb2x1bW47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzdGFydFJvd0luZGV4ID0gdGhpcy5zdGFydFJvdy5nZXRBYnNvbHV0ZUluZGV4KCk7XG4gICAgICAgICAgICBjb25zdCBlbmRSb3dJbmRleCA9IHRoaXMuZW5kUm93LmdldEFic29sdXRlSW5kZXgoKTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0Q29sdW1uSW5kZXggPSB0aGlzLnN0YXJ0Q29sdW1uLmdldEFic29sdXRlSW5kZXgoKTtcbiAgICAgICAgICAgIGNvbnN0IGVuZENvbHVtbkluZGV4ID0gZW5kQ29sdW1uLmdldEFic29sdXRlSW5kZXgoKTtcbiAgICAgICAgICAgIGlmIChzdGFydFJvd0luZGV4LmlzRXJyKCkgfHxcbiAgICAgICAgICAgICAgICBlbmRSb3dJbmRleC5pc0VycigpIHx8XG4gICAgICAgICAgICAgICAgc3RhcnRDb2x1bW5JbmRleC5pc0VycigpIHx8XG4gICAgICAgICAgICAgICAgZW5kQ29sdW1uSW5kZXguaXNFcnIoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKG5ldyBFcnJvcignQSByZWxhdGl2ZSByYW5nZSBjYW4gbm90IGJlIHVzZWQgaW4gYSBmb3JtdWxhIGRlc3RpbmF0aW9uJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWluUm93ID0gTWF0aC5taW4oc3RhcnRSb3dJbmRleC52YWx1ZSwgZW5kUm93SW5kZXgudmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgbWF4Um93ID0gTWF0aC5tYXgoc3RhcnRSb3dJbmRleC52YWx1ZSwgZW5kUm93SW5kZXgudmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgbWluQ29sdW1uID0gTWF0aC5taW4oc3RhcnRDb2x1bW5JbmRleC52YWx1ZSwgZW5kQ29sdW1uSW5kZXgudmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgbWF4Q29sdW1uID0gTWF0aC5tYXgoc3RhcnRDb2x1bW5JbmRleC52YWx1ZSwgZW5kQ29sdW1uSW5kZXgudmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhsb2Rhc2hfMS5mbGF0TWFwKGxvZGFzaF8xLnJhbmdlKG1pblJvdywgbWF4Um93ICsgMSksIChyb3dOdW0pID0+IGxvZGFzaF8xLnJhbmdlKG1pbkNvbHVtbiwgbWF4Q29sdW1uICsgMSkubWFwKChjb2xOdW0pID0+ICh7IHJvdzogcm93TnVtLCBjb2x1bW46IGNvbE51bSB9KSkpKTtcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IHR5cGVFcnIgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LCAncmFuZ2UnKTtcbiAgICAgICAgaWYgKHR5cGVFcnIpIHtcbiAgICAgICAgICAgIHRocm93IHR5cGVFcnI7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChhc3QsIDIpO1xuICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGxlbmd0aEVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXJ0Q2hpbGQgPSBhc3QuY2hpbGRyZW5bMF07XG4gICAgICAgIGNvbnN0IGVuZENoaWxkID0gYXN0LmNoaWxkcmVuWzFdO1xuICAgICAgICB0eXBlRXJyID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKHN0YXJ0Q2hpbGQsICdzb3VyY2VfcmVmZXJlbmNlJyk7XG4gICAgICAgIGlmICh0eXBlRXJyKSB7XG4gICAgICAgICAgICB0aHJvdyB0eXBlRXJyO1xuICAgICAgICB9XG4gICAgICAgIHR5cGVFcnIgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoZW5kQ2hpbGQsICdzb3VyY2VfcmVmZXJlbmNlJyk7XG4gICAgICAgIGlmICh0eXBlRXJyKSB7XG4gICAgICAgICAgICB0aHJvdyB0eXBlRXJyO1xuICAgICAgICB9XG4gICAgICAgIGxlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChzdGFydENoaWxkLCAxKTtcbiAgICAgICAgaWYgKGxlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBsZW5ndGhFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoZW5kQ2hpbGQsIDEpO1xuICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGxlbmd0aEVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gbmV3IHJlZmVyZW5jZV8xLlJlZmVyZW5jZShzdGFydENoaWxkLmNoaWxkcmVuWzBdLCB0YWJsZSk7XG4gICAgICAgIGNvbnN0IGVuZCA9IG5ldyByZWZlcmVuY2VfMS5SZWZlcmVuY2UoZW5kQ2hpbGQuY2hpbGRyZW5bMF0sIHRhYmxlKTtcbiAgICAgICAgaWYgKChzdGFydC5yb3cgJiYgIWVuZC5yb3cpIHx8IChlbmQucm93ICYmICFzdGFydC5yb3cpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JhbmdlIG11c3QgdXNlIHJlZmVyZW5jZXMgb2YgdGhlIHNhbWUga2luZCcpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE11c3QgcHJvdmlkZSBhdCBsZWFzdCBhIHJvdyBvciBhIGNvbHVtbiwgYnV0IGlmIHRoZSBmaXJzdCB2YWx1ZSBoYXMgYVxuICAgICAgICAvLyBjb2x1bW4gYnV0IHRoZSBzZWNvbmQgZG9lcyBub3QsIHRoZW4gY29weSB0aGUgZmlyc3QgY29sIHRvIHNlY29uZC5cbiAgICAgICAgaWYgKCFzdGFydC5yb3cgJiYgIXN0YXJ0LmNvbHVtbikge1xuICAgICAgICAgICAgY29uc29sZS5sb2coc3RhcnQpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSYW5nZSBtdXN0IGhhdmUgYSByb3cgb3IgYSBjb2x1bW4gZGVmaW5lZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFydC5yb3cpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRSb3cgPSBzdGFydC5yb3c7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXJ0LmNvbHVtbikge1xuICAgICAgICAgICAgdGhpcy5zdGFydENvbHVtbiA9IHN0YXJ0LmNvbHVtbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5kLnJvdykge1xuICAgICAgICAgICAgdGhpcy5lbmRSb3cgPSBlbmQucm93O1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmQuY29sdW1uKSB7XG4gICAgICAgICAgICB0aGlzLmVuZENvbHVtbiA9IGVuZC5jb2x1bW47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVuZENvbHVtbiA9IHN0YXJ0LmNvbHVtbjtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuUmFuZ2UgPSBSYW5nZTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5SYW5nZURlc3RpbmF0aW9uID0gZXhwb3J0cy5DZWxsRGVzdGluYXRpb24gPSBleHBvcnRzLkNvbHVtbkRlc3RpbmF0aW9uID0gZXhwb3J0cy5Sb3dEZXN0aW5hdGlvbiA9IGV4cG9ydHMubmV3RGVzdGluYXRpb24gPSB2b2lkIDA7XG5jb25zdCBuZXZlcnRocm93XzEgPSByZXF1aXJlKFwiLi4vbmV2ZXJ0aHJvdy9uZXZlcnRocm93XCIpO1xuY29uc3QgYXN0X3V0aWxzXzEgPSByZXF1aXJlKFwiLi9hc3RfdXRpbHNcIik7XG5jb25zdCBjb2x1bW5fMSA9IHJlcXVpcmUoXCIuL2NvbHVtblwiKTtcbmNvbnN0IHJhbmdlXzEgPSByZXF1aXJlKFwiLi9yYW5nZVwiKTtcbmNvbnN0IHJvd18xID0gcmVxdWlyZShcIi4vcm93XCIpO1xuY29uc3QgbG9kYXNoXzEgPSByZXF1aXJlKFwibG9kYXNoXCIpO1xuY29uc3QgbmV3RGVzdGluYXRpb24gPSAoYXN0LCB0YWJsZSwgZm9ybWF0dGVyKSA9PiB7XG4gICAgY29uc3QgdHlwZUVyciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShhc3QsICdkZXN0aW5hdGlvbicpO1xuICAgIGlmICh0eXBlRXJyKSB7XG4gICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKHR5cGVFcnIpO1xuICAgIH1cbiAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAxKTtcbiAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIobGVuZ3RoRXJyb3IpO1xuICAgIH1cbiAgICBjb25zdCBjaGlsZCA9IGFzdC5jaGlsZHJlblswXTtcbiAgICBpZiAoY2hpbGQudHlwZSA9PT0gJ3JhbmdlJykge1xuICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyBSYW5nZURlc3RpbmF0aW9uKGNoaWxkLCB0YWJsZSwgZm9ybWF0dGVyKSk7XG4gICAgfVxuICAgIC8vIG11c3QgYmUgZWl0aGVyIGFuIGFic29sdXRlX3JlZmVyZW5jZVxuICAgIHRyeSB7XG4gICAgICAgIHN3aXRjaCAoY2hpbGQuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgQ2VsbERlc3RpbmF0aW9uKGNoaWxkLCB0YWJsZSwgZm9ybWF0dGVyKSk7XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgY29uc3QgaW5uZXJDaGlsZCA9IGNoaWxkLmNoaWxkcmVuWzBdO1xuICAgICAgICAgICAgICAgIGlmIChpbm5lckNoaWxkLnR5cGUgPT09ICdhYnNvbHV0ZV9yb3cnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobmV3IFJvd0Rlc3RpbmF0aW9uKGNoaWxkLCB0YWJsZSwgZm9ybWF0dGVyKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlubmVyQ2hpbGQudHlwZSA9PT0gJ2Fic29sdXRlX2NvbHVtbicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgQ29sdW1uRGVzdGluYXRpb24oY2hpbGQsIHRhYmxlLCBmb3JtYXR0ZXIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKG5ldyBFcnJvcignVW5leHBlY3RlZCBkZXN0aW5hdGlvbiB0eXBlICcgKyBjaGlsZC50eXBlKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciA9PT0gYXN0X3V0aWxzXzEuZXJySW5kZXgwKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihuZXcgRXJyb3IoJ0luZGV4IDAgbWF5IG5vdCBiZSB1c2VkIGluIGEgZGVzdGluYXRpb24nKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIoZXJyb3IpO1xuICAgIH1cbn07XG5leHBvcnRzLm5ld0Rlc3RpbmF0aW9uID0gbmV3RGVzdGluYXRpb247XG5jbGFzcyBSb3dEZXN0aW5hdGlvbiB7XG4gICAgY29uc3RydWN0b3IoYXN0LCB0YWJsZSwgZm9ybWF0dGVyKSB7XG4gICAgICAgIHRoaXMubWVyZ2UgPSAoc291cmNlLCB0YWJsZSkgPT4ge1xuICAgICAgICAgICAgLy8gZm9yIGNlbGwgaW4gcm93Li4uXG4gICAgICAgICAgICBjb25zdCBjZWxscyA9IGxvZGFzaF8xLnJhbmdlKDAsIHRhYmxlLmdldFdpZHRoKCkpLm1hcCgoY29sdW1uTnVtKSA9PiAoeyByb3c6IHRoaXMucm93LmluZGV4LCBjb2x1bW46IGNvbHVtbk51bSB9KSk7XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VGb3JDZWxscyhzb3VyY2UsIHRhYmxlLCBjZWxscywgdGhpcy5mb3JtYXR0ZXIpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmZvcm1hdHRlciA9IGZvcm1hdHRlcjtcbiAgICAgICAgY29uc3QgdHlwZUVyciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShhc3QsICdhYnNvbHV0ZV9yZWZlcmVuY2UnKTtcbiAgICAgICAgaWYgKHR5cGVFcnIpIHtcbiAgICAgICAgICAgIHRocm93IHR5cGVFcnI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGVuZ3RoRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja0NoaWxkTGVuZ3RoKGFzdCwgMSk7XG4gICAgICAgIGlmIChsZW5ndGhFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbGVuZ3RoRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2hpbGQgPSBhc3QuY2hpbGRyZW5bMF07XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnJvdyA9IG5ldyByb3dfMS5BYnNvbHV0ZVJvdyhjaGlsZCwgdGFibGUpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgLy8gSW4gYSBjb25zdHJ1Y3Rvciwgc28gd2UgbXVzdCB0aHJvd1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlJvd0Rlc3RpbmF0aW9uID0gUm93RGVzdGluYXRpb247XG5jbGFzcyBDb2x1bW5EZXN0aW5hdGlvbiB7XG4gICAgY29uc3RydWN0b3IoYXN0LCB0YWJsZSwgZm9ybWF0dGVyKSB7XG4gICAgICAgIHRoaXMubWVyZ2UgPSAoc291cmNlLCB0YWJsZSkgPT4ge1xuICAgICAgICAgICAgLy8gZm9yIGNlbGwgaW4gY29sdW1uIChleGNsdWRpbmcgaGVhZGVyKS4uLlxuICAgICAgICAgICAgY29uc3QgY2VsbHMgPSBsb2Rhc2hfMS5yYW5nZSgyLCB0YWJsZS5nZXRIZWlnaHQoKSkubWFwKChyb3dOdW0pID0+ICh7IHJvdzogcm93TnVtLCBjb2x1bW46IHRoaXMuY29sdW1uLmluZGV4IH0pKTtcbiAgICAgICAgICAgIHJldHVybiBtZXJnZUZvckNlbGxzKHNvdXJjZSwgdGFibGUsIGNlbGxzLCB0aGlzLmZvcm1hdHRlcik7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZm9ybWF0dGVyID0gZm9ybWF0dGVyO1xuICAgICAgICBjb25zdCB0eXBlRXJyID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGFzdCwgJ2Fic29sdXRlX3JlZmVyZW5jZScpO1xuICAgICAgICBpZiAodHlwZUVycikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAxKTtcbiAgICAgICAgaWYgKGxlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBsZW5ndGhFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjaGlsZCA9IGFzdC5jaGlsZHJlblswXTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1uID0gbmV3IGNvbHVtbl8xLkFic29sdXRlQ29sdW1uKGNoaWxkLCB0YWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAvLyBJbiBhIGNvbnN0cnVjdG9yLCBzbyB3ZSBtdXN0IHRocm93XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQ29sdW1uRGVzdGluYXRpb24gPSBDb2x1bW5EZXN0aW5hdGlvbjtcbmNsYXNzIENlbGxEZXN0aW5hdGlvbiB7XG4gICAgY29uc3RydWN0b3IoYXN0LCB0YWJsZSwgZm9ybWF0dGVyKSB7XG4gICAgICAgIHRoaXMubWVyZ2UgPSAoc291cmNlLCB0YWJsZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2VsbCA9IHsgcm93OiB0aGlzLnJvdy5pbmRleCwgY29sdW1uOiB0aGlzLmNvbHVtbi5pbmRleCB9O1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlRm9yQ2VsbHMoc291cmNlLCB0YWJsZSwgW2NlbGxdLCB0aGlzLmZvcm1hdHRlcik7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZm9ybWF0dGVyID0gZm9ybWF0dGVyO1xuICAgICAgICBjb25zdCB0eXBlRXJyID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGFzdCwgJ2Fic29sdXRlX3JlZmVyZW5jZScpO1xuICAgICAgICBpZiAodHlwZUVycikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycjtcbiAgICAgICAgfVxuICAgICAgICAvLyBBIGNlbGwgbmVlZHMgdG8gaGF2ZSB0d28gY2hpbGRyZW4sIGEgcm93IGFuZCBhIGNvbHVtblxuICAgICAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAyKTtcbiAgICAgICAgaWYgKGxlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBsZW5ndGhFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3dDaGlsZCA9IGFzdC5jaGlsZHJlblswXTtcbiAgICAgICAgY29uc3QgY29sQ2hpbGQgPSBhc3QuY2hpbGRyZW5bMV07XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnJvdyA9IG5ldyByb3dfMS5BYnNvbHV0ZVJvdyhyb3dDaGlsZCwgdGFibGUpO1xuICAgICAgICAgICAgdGhpcy5jb2x1bW4gPSBuZXcgY29sdW1uXzEuQWJzb2x1dGVDb2x1bW4oY29sQ2hpbGQsIHRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIEluIGEgY29uc3RydWN0b3IsIHNvIHdlIG11c3QgdGhyb3dcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5DZWxsRGVzdGluYXRpb24gPSBDZWxsRGVzdGluYXRpb247XG5jbGFzcyBSYW5nZURlc3RpbmF0aW9uIHtcbiAgICBjb25zdHJ1Y3Rvcihhc3QsIHRhYmxlLCBmb3JtYXR0ZXIpIHtcbiAgICAgICAgdGhpcy5tZXJnZSA9IChzb3VyY2UsIHRhYmxlKSA9PiB0aGlzLnJhbmdlXG4gICAgICAgICAgICAuYXNDZWxscygpXG4gICAgICAgICAgICAuYW5kVGhlbigoY2VsbHMpID0+IG1lcmdlRm9yQ2VsbHMoc291cmNlLCB0YWJsZSwgY2VsbHMsIHRoaXMuZm9ybWF0dGVyKSk7XG4gICAgICAgIHRoaXMuZm9ybWF0dGVyID0gZm9ybWF0dGVyO1xuICAgICAgICBjb25zdCB0eXBlRXJyID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGFzdCwgJ3JhbmdlJyk7XG4gICAgICAgIGlmICh0eXBlRXJyKSB7XG4gICAgICAgICAgICB0aHJvdyB0eXBlRXJyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChhc3QsIDIpO1xuICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGxlbmd0aEVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGFzdC5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgbGV0IGNoaWxkVHlwZUVyciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShjaGlsZCwgJ3NvdXJjZV9yZWZlcmVuY2UnKTtcbiAgICAgICAgICAgIGlmIChjaGlsZFR5cGVFcnIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBjaGlsZFR5cGVFcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjaGlsZExlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChjaGlsZCwgMSk7XG4gICAgICAgICAgICBpZiAoY2hpbGRMZW5ndGhFcnJvcikge1xuICAgICAgICAgICAgICAgIHRocm93IGNoaWxkTGVuZ3RoRXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjaGlsZFR5cGVFcnIgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoY2hpbGQuY2hpbGRyZW5bMF0sICdhYnNvbHV0ZV9yZWZlcmVuY2UnKTtcbiAgICAgICAgICAgIGlmIChjaGlsZFR5cGVFcnIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBjaGlsZFR5cGVFcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJhbmdlID0gbmV3IHJhbmdlXzEuUmFuZ2UoYXN0LCB0YWJsZSk7XG4gICAgfVxufVxuZXhwb3J0cy5SYW5nZURlc3RpbmF0aW9uID0gUmFuZ2VEZXN0aW5hdGlvbjtcbmNvbnN0IG1lcmdlRm9yQ2VsbHMgPSAoc291cmNlLCB0YWJsZSwgY2VsbHMsIGZvcm1hdHRlcikgPT4gY2VsbHMucmVkdWNlKChjdXJyZW50VGFibGUsIGN1cnJlbnRDZWxsKSA9PiBjdXJyZW50VGFibGUuYW5kVGhlbigodCkgPT4gc291cmNlXG4gICAgLmdldFZhbHVlKHQsIGN1cnJlbnRDZWxsKVxuICAgIC5hbmRUaGVuKCh2YWwpID0+IG5ldmVydGhyb3dfMS5vayh2YWwudG9TdHJpbmcoKSkpXG4gICAgLmFuZFRoZW4oKHZhbCkgPT4gbmV2ZXJ0aHJvd18xLm9rKHZhbC50cmltKCkgPT09ICcnID8gJzAnIDogdmFsKSlcbiAgICAuYW5kVGhlbigodmFsKSA9PiBuZXZlcnRocm93XzEub2sodC5zZXRDZWxsQXQoY3VycmVudENlbGwucm93LCBjdXJyZW50Q2VsbC5jb2x1bW4sIGZvcm1hdHRlci5mb3JtYXQodmFsKSkpKSksIG5ldmVydGhyb3dfMS5vayh0YWJsZSkpO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkRpc3BsYXlEaXJlY3RpdmUgPSBleHBvcnRzLkRlZmF1bHRGb3JtYXR0ZXIgPSB2b2lkIDA7XG5jb25zdCBhc3RfdXRpbHNfMSA9IHJlcXVpcmUoXCIuL2FzdF91dGlsc1wiKTtcbmNsYXNzIERlZmF1bHRGb3JtYXR0ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmZvcm1hdCA9IChudW0pID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbnVtID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVtLnRvU3RyaW5nKCk7XG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0cy5EZWZhdWx0Rm9ybWF0dGVyID0gRGVmYXVsdEZvcm1hdHRlcjtcbmNsYXNzIERpc3BsYXlEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKGFzdCkge1xuICAgICAgICB0aGlzLmZvcm1hdCA9IChudW0pID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbnVtID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZE51bSA9IHBhcnNlRmxvYXQobnVtKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VkTnVtLnRvRml4ZWQodGhpcy5kZWNpbWFsTGVuZ3RoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudW0udG9GaXhlZCh0aGlzLmRlY2ltYWxMZW5ndGgpO1xuICAgICAgICB9O1xuICAgICAgICBsZXQgdHlwZUVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGFzdCwgJ2Rpc3BsYXlfZGlyZWN0aXZlJyk7XG4gICAgICAgIGlmICh0eXBlRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IHR5cGVFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbGVuZ3RoRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja0NoaWxkTGVuZ3RoKGFzdCwgMSk7XG4gICAgICAgIGlmIChsZW5ndGhFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbGVuZ3RoRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGlzcGxheURpcmVjdGl2ZU9wdGlvbiA9IGFzdC5jaGlsZHJlblswXTtcbiAgICAgICAgdHlwZUVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGRpc3BsYXlEaXJlY3RpdmVPcHRpb24sICdkaXNwbGF5X2RpcmVjdGl2ZV9vcHRpb24nKTtcbiAgICAgICAgaWYgKHR5cGVFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGxlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChkaXNwbGF5RGlyZWN0aXZlT3B0aW9uLCAxKTtcbiAgICAgICAgaWYgKGxlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBsZW5ndGhFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb3JtYXR0aW5nRGlyZWN0aXZlID0gZGlzcGxheURpcmVjdGl2ZU9wdGlvbi5jaGlsZHJlblswXTtcbiAgICAgICAgdHlwZUVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGZvcm1hdHRpbmdEaXJlY3RpdmUsICdmb3JtYXR0aW5nX2RpcmVjdGl2ZScpO1xuICAgICAgICBpZiAodHlwZUVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyB0eXBlRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgbGVuZ3RoRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja0NoaWxkTGVuZ3RoKGZvcm1hdHRpbmdEaXJlY3RpdmUsIDEpO1xuICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGxlbmd0aEVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1hdHRpbmdEaXJlY3RpdmVMZW5ndGggPSBmb3JtYXR0aW5nRGlyZWN0aXZlLmNoaWxkcmVuWzBdO1xuICAgICAgICB0eXBlRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoZm9ybWF0dGluZ0RpcmVjdGl2ZUxlbmd0aCwgJ2ludCcpO1xuICAgICAgICBpZiAodHlwZUVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyB0eXBlRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZWNpbWFsTGVuZ3RoID0gcGFyc2VJbnQoZm9ybWF0dGluZ0RpcmVjdGl2ZUxlbmd0aC50ZXh0KTtcbiAgICB9XG59XG5leHBvcnRzLkRpc3BsYXlEaXJlY3RpdmUgPSBEaXNwbGF5RGlyZWN0aXZlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNpbmdsZVBhcmFtRnVuY3Rpb25DYWxsID0gdm9pZCAwO1xuY29uc3QgbmV2ZXJ0aHJvd18xID0gcmVxdWlyZShcIi4uL25ldmVydGhyb3cvbmV2ZXJ0aHJvd1wiKTtcbmNvbnN0IGFzdF91dGlsc18xID0gcmVxdWlyZShcIi4vYXN0X3V0aWxzXCIpO1xuY29uc3QgY2FsY18xID0gcmVxdWlyZShcIi4vY2FsY1wiKTtcbmNvbnN0IHJlc3VsdHNfMSA9IHJlcXVpcmUoXCIuL3Jlc3VsdHNcIik7XG5jbGFzcyBTaW5nbGVQYXJhbUZ1bmN0aW9uQ2FsbCB7XG4gICAgY29uc3RydWN0b3IoYXN0LCB0YWJsZSkge1xuICAgICAgICB0aGlzLmdldFZhbHVlID0gKHRhYmxlLCBjZWxsKSA9PiB0aGlzLnBhcmFtLmdldFZhbHVlKHRhYmxlLCBjZWxsKS5hbmRUaGVuKChzb3VyY2VEYXRhKSA9PiBcbiAgICAgICAgLy8gVGhlIG9wZXJhdGlvbiBmdW5jdGlvbnMgZG8gbm90IHRocm93IGVycm9ycyBiZWNhdXNlIGRhdGEgYXJpdHkgaGFzXG4gICAgICAgIC8vIGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQuXG4gICAgICAgIG5ldmVydGhyb3dfMS5vayh0aGlzLm9wKHNvdXJjZURhdGEpKSk7XG4gICAgICAgIGNvbnN0IHR5cGVFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShhc3QsICdzaW5nbGVfcGFyYW1fZnVuY3Rpb25fY2FsbCcpO1xuICAgICAgICBpZiAodHlwZUVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyB0eXBlRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGVuZ3RoRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja0NoaWxkTGVuZ3RoKGFzdCwgMik7XG4gICAgICAgIGlmIChsZW5ndGhFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbGVuZ3RoRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2hpbGRUeXBlRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LmNoaWxkcmVuWzBdLCAnc2luZ2xlX3BhcmFtX2Z1bmN0aW9uJyk7XG4gICAgICAgIGlmIChjaGlsZFR5cGVFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgY2hpbGRUeXBlRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gYXN0LmNoaWxkcmVuWzBdLnRleHQ7XG4gICAgICAgIHN3aXRjaCAoZnVuY3Rpb25OYW1lKSB7XG4gICAgICAgICAgICBjYXNlICdzdW0nOlxuICAgICAgICAgICAgICAgIHRoaXMub3AgPSBzdW07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZWFuJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9wID0gbWVhbjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ1Vua25vd24gc2luZ2xlIHBhcmFtIGZ1bmN0aW9uIGNhbGw6ICcgKyBmdW5jdGlvbk5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFyYW0gPSBuZXcgY2FsY18xLlNvdXJjZShhc3QuY2hpbGRyZW5bMV0sIHRhYmxlKTtcbiAgICB9XG59XG5leHBvcnRzLlNpbmdsZVBhcmFtRnVuY3Rpb25DYWxsID0gU2luZ2xlUGFyYW1GdW5jdGlvbkNhbGw7XG4vKipcbiAqIFN1bSBhbGwgdGhlIGNlbGxzIGluIHRoZSBpbnB1dCB2YWx1ZSwgcHJvZHVjaW5nIGEgc2luZ2xlIGNlbGwgb3V0cHV0LlxuICovXG5jb25zdCBzdW0gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCB0b3RhbCA9IHZhbHVlLnZhbC5yZWR1Y2UoKHJ1bm5pbmdUb3RhbCwgY3VycmVudFJvdykgPT4gY3VycmVudFJvdy5yZWR1Y2UoKHJvd1RvdGFsLCBjdXJyZW50Q2VsbCkgPT4ge1xuICAgICAgICBsZXQgY3VycmVudENlbGxWYWx1ZSA9IHBhcnNlRmxvYXQoY3VycmVudENlbGwpO1xuICAgICAgICBpZiAoaXNOYU4oY3VycmVudENlbGxWYWx1ZSkpIHtcbiAgICAgICAgICAgIGN1cnJlbnRDZWxsVmFsdWUgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dUb3RhbCArIGN1cnJlbnRDZWxsVmFsdWU7XG4gICAgfSwgcnVubmluZ1RvdGFsKSwgMCk7XG4gICAgcmV0dXJuIG5ldyByZXN1bHRzXzEuVmFsdWUoW1t0b3RhbC50b1N0cmluZygpXV0pO1xufTtcbi8qKlxuICogTWVhbiBvZiBhbGwgdGhlIGNlbGxzIGluIHRoZSBpbnB1dCB2YWx1ZSwgcHJvZHVjaW5nIGEgc2luZ2xlIGNlbGwgb3V0cHV0LlxuICovXG5jb25zdCBtZWFuID0gKHZhbHVlKSA9PiB7XG4gICAgY29uc3QgeyB0b3RhbCwgY291bnQgfSA9IHZhbHVlLnZhbC5yZWR1Y2UoKHsgdG90YWw6IHJ1bm5pbmdUb3RhbDEsIGNvdW50OiBjdXJyZW50Q291bnQxIH0sIGN1cnJlbnRSb3cpID0+IGN1cnJlbnRSb3cucmVkdWNlKCh7IHRvdGFsOiBydW5uaW5nVG90YWwyLCBjb3VudDogY3VycmVudENvdW50MiB9LCBjdXJyZW50Q2VsbCkgPT4gKHtcbiAgICAgICAgdG90YWw6IHJ1bm5pbmdUb3RhbDIgKyArY3VycmVudENlbGwsXG4gICAgICAgIGNvdW50OiBjdXJyZW50Q291bnQyICsgMSxcbiAgICB9KSwgeyB0b3RhbDogcnVubmluZ1RvdGFsMSwgY291bnQ6IGN1cnJlbnRDb3VudDEgfSksIHsgdG90YWw6IDAsIGNvdW50OiAwIH0pO1xuICAgIHJldHVybiBuZXcgcmVzdWx0c18xLlZhbHVlKFtbKHRvdGFsIC8gY291bnQpLnRvU3RyaW5nKCldXSk7XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRva2VuRXJyb3IgPSB2b2lkIDA7XG5jbGFzcyBUb2tlbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIHRva2VuKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICB0aGlzLnRva2VuID0gdG9rZW47XG4gICAgICAgIGlmICh0b2tlbiAmJiB0b2tlbi5lcnJvcnMpXG4gICAgICAgICAgICB0b2tlbi5lcnJvcnMucHVzaCh0aGlzKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgdGhpcztcbiAgICB9XG4gICAgaW5zcGVjdCgpIHtcbiAgICAgICAgcmV0dXJuICdTeW50YXhFcnJvcjogJyArIHRoaXMubWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnRzLlRva2VuRXJyb3IgPSBUb2tlbkVycm9yO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VG9rZW5FcnJvci5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbi8vIGh0dHBzOi8vd3d3Lmljcy51Y2kuZWR1L35wYXR0aXMvSUNTLTMzL2xlY3R1cmVzL2VibmYucGRmXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBhcnNlciA9IGV4cG9ydHMuZmluZFJ1bGVCeU5hbWUgPSBleHBvcnRzLnBhcnNlUnVsZU5hbWUgPSBleHBvcnRzLmVzY2FwZVJlZ0V4cCA9IGV4cG9ydHMucmVhZFRva2VuID0gdm9pZCAwO1xuY29uc3QgVVBQRVJfU05BS0VfUkUgPSAvXltBLVowLTlfXSskLztcbmNvbnN0IGRlY29yYXRpb25SRSA9IC8oXFw/fFxcK3xcXCopJC87XG5jb25zdCBwcmVEZWNvcmF0aW9uUkUgPSAvXihAfCZ8ISkvO1xuY29uc3QgV1NfUlVMRSA9ICdXUyc7XG5jb25zdCBUb2tlbkVycm9yXzEgPSByZXF1aXJlKFwiLi9Ub2tlbkVycm9yXCIpO1xuZnVuY3Rpb24gcmVhZFRva2VuKHR4dCwgZXhwcikge1xuICAgIGxldCByZXN1bHQgPSBleHByLmV4ZWModHh0KTtcbiAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5pbmRleCA9PSAwKSB7XG4gICAgICAgIGlmIChyZXN1bHRbMF0ubGVuZ3RoID09IDAgJiYgZXhwci5zb3VyY2UubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogbnVsbCxcbiAgICAgICAgICAgIHRleHQ6IHJlc3VsdFswXSxcbiAgICAgICAgICAgIHJlc3Q6IHR4dC5zdWJzdHIocmVzdWx0WzBdLmxlbmd0aCksXG4gICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgIGVuZDogcmVzdWx0WzBdLmxlbmd0aCAtIDEsXG4gICAgICAgICAgICBmdWxsVGV4dDogcmVzdWx0WzBdLFxuICAgICAgICAgICAgZXJyb3JzOiBbXSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgIHBhcmVudDogbnVsbFxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbmV4cG9ydHMucmVhZFRva2VuID0gcmVhZFRva2VuO1xuZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvW1xcLVxcW1xcXVxcL1xce1xcfVxcKFxcKVxcKlxcK1xcP1xcLlxcXFxcXF5cXCRcXHxdL2csICdcXFxcJCYnKTtcbn1cbmV4cG9ydHMuZXNjYXBlUmVnRXhwID0gZXNjYXBlUmVnRXhwO1xuZnVuY3Rpb24gZml4UmVzdCh0b2tlbikge1xuICAgIHRva2VuLnJlc3QgPSAnJztcbiAgICB0b2tlbi5jaGlsZHJlbiAmJiB0b2tlbi5jaGlsZHJlbi5mb3JFYWNoKGMgPT4gZml4UmVzdChjKSk7XG59XG5mdW5jdGlvbiBmaXhQb3NpdGlvbnModG9rZW4sIHN0YXJ0KSB7XG4gICAgdG9rZW4uc3RhcnQgKz0gc3RhcnQ7XG4gICAgdG9rZW4uZW5kICs9IHN0YXJ0O1xuICAgIHRva2VuLmNoaWxkcmVuICYmIHRva2VuLmNoaWxkcmVuLmZvckVhY2goYyA9PiBmaXhQb3NpdGlvbnMoYywgdG9rZW4uc3RhcnQpKTtcbn1cbmZ1bmN0aW9uIGFncmVnYXRlRXJyb3JzKGVycm9ycywgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4uZXJyb3JzICYmIHRva2VuLmVycm9ycy5sZW5ndGgpXG4gICAgICAgIHRva2VuLmVycm9ycy5mb3JFYWNoKGVyciA9PiBlcnJvcnMucHVzaChlcnIpKTtcbiAgICB0b2tlbi5jaGlsZHJlbiAmJiB0b2tlbi5jaGlsZHJlbi5mb3JFYWNoKHRvayA9PiBhZ3JlZ2F0ZUVycm9ycyhlcnJvcnMsIHRvaykpO1xufVxuZnVuY3Rpb24gcGFyc2VSdWxlTmFtZShuYW1lKSB7XG4gICAgbGV0IHBvc3REZWNvcmF0aW9uID0gZGVjb3JhdGlvblJFLmV4ZWMobmFtZSk7XG4gICAgbGV0IHByZURlY29yYXRpb24gPSBwcmVEZWNvcmF0aW9uUkUuZXhlYyhuYW1lKTtcbiAgICBsZXQgcG9zdERlY29yYXRpb25UZXh0ID0gKHBvc3REZWNvcmF0aW9uICYmIHBvc3REZWNvcmF0aW9uWzBdKSB8fCAnJztcbiAgICBsZXQgcHJlRGVjb3JhdGlvblRleHQgPSAocHJlRGVjb3JhdGlvbiAmJiBwcmVEZWNvcmF0aW9uWzBdKSB8fCAnJztcbiAgICBsZXQgb3V0ID0ge1xuICAgICAgICByYXc6IG5hbWUsXG4gICAgICAgIG5hbWU6IG5hbWUucmVwbGFjZShkZWNvcmF0aW9uUkUsICcnKS5yZXBsYWNlKHByZURlY29yYXRpb25SRSwgJycpLFxuICAgICAgICBpc09wdGlvbmFsOiBwb3N0RGVjb3JhdGlvblRleHQgPT0gJz8nIHx8IHBvc3REZWNvcmF0aW9uVGV4dCA9PSAnKicsXG4gICAgICAgIGFsbG93UmVwZXRpdGlvbjogcG9zdERlY29yYXRpb25UZXh0ID09ICcrJyB8fCBwb3N0RGVjb3JhdGlvblRleHQgPT0gJyonLFxuICAgICAgICBhdExlYXN0T25lOiBwb3N0RGVjb3JhdGlvblRleHQgPT0gJysnLFxuICAgICAgICBsb29rdXBQb3NpdGl2ZTogcHJlRGVjb3JhdGlvblRleHQgPT0gJyYnLFxuICAgICAgICBsb29rdXBOZWdhdGl2ZTogcHJlRGVjb3JhdGlvblRleHQgPT0gJyEnLFxuICAgICAgICBwaW5uZWQ6IHByZURlY29yYXRpb25UZXh0ID09ICdAJyxcbiAgICAgICAgbG9va3VwOiBmYWxzZSxcbiAgICAgICAgaXNMaXRlcmFsOiBmYWxzZVxuICAgIH07XG4gICAgb3V0LmlzTGl0ZXJhbCA9IG91dC5uYW1lWzBdID09IFwiJ1wiIHx8IG91dC5uYW1lWzBdID09ICdcIic7XG4gICAgb3V0Lmxvb2t1cCA9IG91dC5sb29rdXBOZWdhdGl2ZSB8fCBvdXQubG9va3VwUG9zaXRpdmU7XG4gICAgcmV0dXJuIG91dDtcbn1cbmV4cG9ydHMucGFyc2VSdWxlTmFtZSA9IHBhcnNlUnVsZU5hbWU7XG5mdW5jdGlvbiBmaW5kUnVsZUJ5TmFtZShuYW1lLCBwYXJzZXIpIHtcbiAgICBsZXQgcGFyc2VkID0gcGFyc2VSdWxlTmFtZShuYW1lKTtcbiAgICByZXR1cm4gcGFyc2VyLmNhY2hlZFJ1bGVzW3BhcnNlZC5uYW1lXSB8fCBudWxsO1xufVxuZXhwb3J0cy5maW5kUnVsZUJ5TmFtZSA9IGZpbmRSdWxlQnlOYW1lO1xuLy8vIFJlbW92ZXMgYWxsIHRoZSBub2RlcyBzdGFydGluZyB3aXRoICdSVUxFXydcbmZ1bmN0aW9uIHN0cmlwUnVsZXModG9rZW4sIHJlKSB7XG4gICAgaWYgKHRva2VuLmNoaWxkcmVuKSB7XG4gICAgICAgIGxldCBsb2NhbFJ1bGVzID0gdG9rZW4uY2hpbGRyZW4uZmlsdGVyKHggPT4geC50eXBlICYmIHJlLnRlc3QoeC50eXBlKSk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbG9jYWxSdWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IGluZGV4T25DaGlsZHJlbiA9IHRva2VuLmNoaWxkcmVuLmluZGV4T2YobG9jYWxSdWxlc1tpXSk7XG4gICAgICAgICAgICBpZiAoaW5kZXhPbkNoaWxkcmVuICE9IC0xKSB7XG4gICAgICAgICAgICAgICAgdG9rZW4uY2hpbGRyZW4uc3BsaWNlKGluZGV4T25DaGlsZHJlbiwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW4uY2hpbGRyZW4uZm9yRWFjaChjID0+IHN0cmlwUnVsZXMoYywgcmUpKTtcbiAgICB9XG59XG5jb25zdCBpZ25vcmVNaXNzaW5nUnVsZXMgPSBbJ0VPRiddO1xuY2xhc3MgUGFyc2VyIHtcbiAgICBjb25zdHJ1Y3RvcihncmFtbWFyUnVsZXMsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5ncmFtbWFyUnVsZXMgPSBncmFtbWFyUnVsZXM7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMuY2FjaGVkUnVsZXMgPSB7fTtcbiAgICAgICAgdGhpcy5kZWJ1ZyA9IG9wdGlvbnMgPyBvcHRpb25zLmRlYnVnID09PSB0cnVlIDogZmFsc2U7XG4gICAgICAgIGxldCBlcnJvcnMgPSBbXTtcbiAgICAgICAgbGV0IG5lZWRlZFJ1bGVzID0gW107XG4gICAgICAgIGdyYW1tYXJSdWxlcy5mb3JFYWNoKHJ1bGUgPT4ge1xuICAgICAgICAgICAgbGV0IHBhcnNlZE5hbWUgPSBwYXJzZVJ1bGVOYW1lKHJ1bGUubmFtZSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkTmFtZS5uYW1lIGluIHRoaXMuY2FjaGVkUnVsZXMpIHtcbiAgICAgICAgICAgICAgICBlcnJvcnMucHVzaCgnRHVwbGljYXRlZCBydWxlICcgKyBwYXJzZWROYW1lLm5hbWUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVkUnVsZXNbcGFyc2VkTmFtZS5uYW1lXSA9IHJ1bGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXJ1bGUuYm5mIHx8ICFydWxlLmJuZi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAnTWlzc2luZyBydWxlIGNvbnRlbnQsIHJ1bGU6ICcgKyBydWxlLm5hbWU7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9ycy5pbmRleE9mKGVycm9yKSA9PSAtMSlcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcnVsZS5ibmYuZm9yRWFjaChvcHRpb25zID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcnNlZCA9IHBhcnNlUnVsZU5hbWUob3B0aW9uc1swXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VkLm5hbWUgPT0gcnVsZS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0gJ0xlZnQgcmVjdXJzaW9uIGlzIG5vdCBhbGxvd2VkLCBydWxlOiAnICsgcnVsZS5uYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcnMuaW5kZXhPZihlcnJvcikgPT0gLTEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5hbWUgPSBwYXJzZVJ1bGVOYW1lKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFuYW1lLmlzTGl0ZXJhbCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkZWRSdWxlcy5pbmRleE9mKG5hbWUubmFtZSkgPT0gLTEgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlTWlzc2luZ1J1bGVzLmluZGV4T2YobmFtZS5uYW1lKSA9PSAtMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZGVkUnVsZXMucHVzaChuYW1lLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChXU19SVUxFID09IHJ1bGUubmFtZSlcbiAgICAgICAgICAgICAgICBydWxlLmltcGxpY2l0V3MgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChydWxlLmltcGxpY2l0V3MpIHtcbiAgICAgICAgICAgICAgICBpZiAobmVlZGVkUnVsZXMuaW5kZXhPZihXU19SVUxFKSA9PSAtMSlcbiAgICAgICAgICAgICAgICAgICAgbmVlZGVkUnVsZXMucHVzaChXU19SVUxFKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChydWxlLnJlY292ZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAobmVlZGVkUnVsZXMuaW5kZXhPZihydWxlLnJlY292ZXIpID09IC0xKVxuICAgICAgICAgICAgICAgICAgICBuZWVkZWRSdWxlcy5wdXNoKHJ1bGUucmVjb3Zlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBuZWVkZWRSdWxlcy5mb3JFYWNoKHJ1bGVOYW1lID0+IHtcbiAgICAgICAgICAgIGlmICghKHJ1bGVOYW1lIGluIHRoaXMuY2FjaGVkUnVsZXMpKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JzLnB1c2goJ01pc3NpbmcgcnVsZSAnICsgcnVsZU5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGVycm9ycy5sZW5ndGgpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JzLmpvaW4oJ1xcbicpKTtcbiAgICB9XG4gICAgZ2V0QVNUKHR4dCwgdGFyZ2V0KSB7XG4gICAgICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICAgICAgICB0YXJnZXQgPSB0aGlzLmdyYW1tYXJSdWxlcy5maWx0ZXIoeCA9PiAheC5mcmFnbWVudCAmJiB4Lm5hbWUuaW5kZXhPZignJScpICE9IDApWzBdLm5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMucGFyc2UodHh0LCB0YXJnZXQpO1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICBhZ3JlZ2F0ZUVycm9ycyhyZXN1bHQuZXJyb3JzLCByZXN1bHQpO1xuICAgICAgICAgICAgZml4UG9zaXRpb25zKHJlc3VsdCwgMCk7XG4gICAgICAgICAgICAvLyBSRU1PVkUgQUxMIFRIRSBUQUdTIE1BVENISU5HIC9eJS9cbiAgICAgICAgICAgIHN0cmlwUnVsZXMocmVzdWx0LCAvXiUvKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5vcHRpb25zIHx8ICF0aGlzLm9wdGlvbnMua2VlcFVwcGVyUnVsZXMpXG4gICAgICAgICAgICAgICAgc3RyaXBSdWxlcyhyZXN1bHQsIFVQUEVSX1NOQUtFX1JFKTtcbiAgICAgICAgICAgIGxldCByZXN0ID0gcmVzdWx0LnJlc3Q7XG4gICAgICAgICAgICBpZiAocmVzdCkge1xuICAgICAgICAgICAgICAgIG5ldyBUb2tlbkVycm9yXzEuVG9rZW5FcnJvcignVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQ6IFxcbicgKyByZXN0LCByZXN1bHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZml4UmVzdChyZXN1bHQpO1xuICAgICAgICAgICAgcmVzdWx0LnJlc3QgPSByZXN0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGVtaXRTb3VyY2UoKSB7XG4gICAgICAgIHJldHVybiAnQ0FOTk9UIEVNSVQgU09VUkNFIEZST00gQkFTRSBQYXJzZXInO1xuICAgIH1cbiAgICBwYXJzZSh0eHQsIHRhcmdldCwgcmVjdXJzaW9uID0gMCkge1xuICAgICAgICBsZXQgb3V0ID0gbnVsbDtcbiAgICAgICAgbGV0IHR5cGUgPSBwYXJzZVJ1bGVOYW1lKHRhcmdldCk7XG4gICAgICAgIGxldCBleHByO1xuICAgICAgICBsZXQgcHJpbnRhYmxlID0gdGhpcy5kZWJ1ZyAmJiAvKiFpc0xpdGVyYWwgJiovICFVUFBFUl9TTkFLRV9SRS50ZXN0KHR5cGUubmFtZSk7XG4gICAgICAgIHByaW50YWJsZSAmJlxuICAgICAgICAgICAgY29uc29sZS5sb2cobmV3IEFycmF5KHJlY3Vyc2lvbikuam9pbign4pSCICAnKSArICdUcnlpbmcgdG8gZ2V0ICcgKyB0YXJnZXQgKyAnIGZyb20gJyArIEpTT04uc3RyaW5naWZ5KHR4dC5zcGxpdCgnXFxuJylbMF0pKTtcbiAgICAgICAgbGV0IHJlYWxUeXBlID0gdHlwZS5uYW1lO1xuICAgICAgICBsZXQgdGFyZ2V0TGV4ID0gZmluZFJ1bGVCeU5hbWUodHlwZS5uYW1lLCB0aGlzKTtcbiAgICAgICAgaWYgKHR5cGUubmFtZSA9PSAnRU9GJykge1xuICAgICAgICAgICAgaWYgKHR4dC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHR4dC5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdFT0YnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgcmVzdDogJycsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxUZXh0OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IG51bGxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoIXRhcmdldExleCAmJiB0eXBlLmlzTGl0ZXJhbCkge1xuICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tZXZhbFxuICAgICAgICAgICAgICAgIGxldCBzcmMgPSBldmFsKHR5cGUubmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKHNyYyA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICclJUVNUFRZJSUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN0OiB0eHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxUZXh0OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZXhwciA9IG5ldyBSZWdFeHAoZXNjYXBlUmVnRXhwKHNyYykpO1xuICAgICAgICAgICAgICAgIHJlYWxUeXBlID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBSZWZlcmVuY2VFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXhwcikge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHJlYWRUb2tlbih0eHQsIGV4cHIpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC50eXBlID0gcmVhbFR5cGU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxldCBvcHRpb25zID0gdGFyZ2V0TGV4LmJuZjtcbiAgICAgICAgICAgIGlmIChvcHRpb25zIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmZvckVhY2gocGhhc2VzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG91dClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBpbm5lZCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0bXAgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0eXBlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBmdWxsVGV4dDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3Q6IHR4dFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0TGV4LmZyYWdtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wLmZyYWdtZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRtcFR4dCA9IHR4dDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBvc2l0aW9uID0gMDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFsbE9wdGlvbmFsID0gcGhhc2VzLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmb3VuZFNvbWV0aGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBoYXNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwaGFzZXNbaV0gPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYWxUYXJnZXQgPSBwYXJzZVJ1bGVOYW1lKHBoYXNlc1tpXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsT3B0aW9uYWwgPSBhbGxPcHRpb25hbCAmJiBsb2NhbFRhcmdldC5pc09wdGlvbmFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBnb3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZvdW5kQXRMZWFzdE9uZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldExleC5pbXBsaWNpdFdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3QgPSB0aGlzLnBhcnNlKHRtcFR4dCwgbG9jYWxUYXJnZXQubmFtZSwgcmVjdXJzaW9uICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdvdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBXUztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdTID0gdGhpcy5wYXJzZSh0bXBUeHQsIFdTX1JVTEUsIHJlY3Vyc2lvbiArIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoV1MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcC50ZXh0ID0gdG1wLnRleHQgKyBXUy50ZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wLmVuZCA9IHRtcC50ZXh0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdTLnBhcmVudCA9IHRtcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcC5jaGlsZHJlbi5wdXNoKFdTKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcFR4dCA9IHRtcFR4dC5zdWJzdHIoV1MudGV4dC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gKz0gV1MudGV4dC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKFdTICYmIFdTLnRleHQubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3QgPSBnb3QgfHwgdGhpcy5wYXJzZSh0bXBUeHQsIGxvY2FsVGFyZ2V0Lm5hbWUsIHJlY3Vyc2lvbiArIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBydWxlIDo6PSBcInRydWVcIiAhW2EtekEtWl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmVnYXRpdmUgbG9va3VwLCBpZiBpdCBkb2VzIG5vdCBtYXRjaCwgd2Ugc2hvdWxkIGNvbnRpbnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbFRhcmdldC5sb29rdXBOZWdhdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdvdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLyogY2FuY2VsIHRoaXMgcGF0aCAqLztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbFRhcmdldC5sb29rdXBQb3NpdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFnb3QpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ290KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxUYXJnZXQuaXNPcHRpb25hbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbFRhcmdldC5hdExlYXN0T25lICYmIGZvdW5kQXRMZWFzdE9uZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ290ICYmIHRhcmdldExleC5waW5uZWQgPT0gaSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZCA9IGdvdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50YWJsZSAmJiBjb25zb2xlLmxvZyhuZXcgQXJyYXkocmVjdXJzaW9uICsgMSkuam9pbign4pSCICAnKSArICfilJTilIAgJyArIGdvdC50eXBlICsgJyBQSU5ORUQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdvdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdCA9IHRoaXMucGFyc2VSZWNvdmVyeSh0YXJnZXRMZXgsIHRtcFR4dCwgcmVjdXJzaW9uICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ290KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0ID0gdG1wO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ1N5bnRheEVycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogdG1wVHh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogdG1wVHh0Lmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFRleHQ6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0OiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcFR4dC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRva2VuRXJyb3JfMS5Ub2tlbkVycm9yKGBVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dC4gRXhwZWN0aW5nICR7bG9jYWxUYXJnZXQubmFtZX0gR290OiAke3RtcFR4dH1gLCBnb3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRva2VuRXJyb3JfMS5Ub2tlbkVycm9yKGBVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dC4gTWlzc2luZyAke2xvY2FsVGFyZ2V0Lm5hbWV9YCwgZ290KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRhYmxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG5ldyBBcnJheShyZWN1cnNpb24gKyAxKS5qb2luKCfilIIgICcpICsgJ+KUlOKUgCAnICsgZ290LnR5cGUgKyAnICcgKyBKU09OLnN0cmluZ2lmeShnb3QudGV4dCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kQXRMZWFzdE9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kU29tZXRoaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdvdC50eXBlID09ICclJUVNUFRZJSUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Quc3RhcnQgKz0gcG9zaXRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdC5lbmQgKz0gcG9zaXRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbG9jYWxUYXJnZXQubG9va3VwUG9zaXRpdmUgJiYgZ290LnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnb3QuZnJhZ21lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3QuY2hpbGRyZW4gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290LmNoaWxkcmVuLmZvckVhY2goeCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LnN0YXJ0ICs9IHBvc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeC5lbmQgKz0gcG9zaXRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LnBhcmVudCA9IHRtcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcC5jaGlsZHJlbi5wdXNoKHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdC5wYXJlbnQgPSB0bXA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wLmNoaWxkcmVuLnB1c2goZ290KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxUYXJnZXQubG9va3VwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290Lmxvb2t1cCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50YWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobmV3IEFycmF5KHJlY3Vyc2lvbiArIDEpLmpvaW4oJ+KUgiAgJykgKyAn4pSU4pSAICcgKyBnb3QudHlwZSArICcgJyArIEpTT04uc3RyaW5naWZ5KGdvdC50ZXh0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVhdCBpdCBmcm9tIHRoZSBpbnB1dCBzdHJlYW0sIG9ubHkgaWYgaXQgaXMgbm90IGEgbG9va3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbG9jYWxUYXJnZXQubG9va3VwICYmICFnb3QubG9va3VwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAudGV4dCA9IHRtcC50ZXh0ICsgZ290LnRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAuZW5kID0gdG1wLnRleHQubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wVHh0ID0gdG1wVHh0LnN1YnN0cihnb3QudGV4dC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gKz0gZ290LnRleHQubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcC5yZXN0ID0gdG1wVHh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKGdvdCAmJiBsb2NhbFRhcmdldC5hbGxvd1JlcGV0aXRpb24gJiYgdG1wVHh0Lmxlbmd0aCAmJiAhZ290Lmxvb2t1cCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IC8qIElTIEEgUkVHRVhQICovXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZ290ID0gcmVhZFRva2VuKHRtcFR4dCwgcGhhc2VzW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdvdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50YWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhuZXcgQXJyYXkocmVjdXJzaW9uICsgMSkuam9pbign4pSCICAnKSArICfilJQ+ICcgKyBKU09OLnN0cmluZ2lmeShnb3QudGV4dCkgKyBwaGFzZXNbaV0uc291cmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZFNvbWV0aGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290LnN0YXJ0ICs9IHBvc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdC5lbmQgKz0gcG9zaXRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wLnRleHQgPSB0bXAudGV4dCArIGdvdC50ZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcC5lbmQgPSB0bXAudGV4dC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wVHh0ID0gdG1wVHh0LnN1YnN0cihnb3QudGV4dC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uICs9IGdvdC50ZXh0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAucmVzdCA9IHRtcFR4dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZm91bmRTb21ldGhpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dCA9IHRtcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50YWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG5ldyBBcnJheShyZWN1cnNpb24pLmpvaW4oJ+KUgiAgJykgKyAn4pScPOKUgOKUtDwgUFVTSElORyAnICsgb3V0LnR5cGUgKyAnICcgKyBKU09OLnN0cmluZ2lmeShvdXQudGV4dCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3V0ICYmIHRhcmdldExleC5zaW1wbGlmeVdoZW5PbmVDaGlsZHJlbiAmJiBvdXQuY2hpbGRyZW4ubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgICAgICBvdXQgPSBvdXQuY2hpbGRyZW5bMF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvdXQpIHtcbiAgICAgICAgICAgIHByaW50YWJsZSAmJiBjb25zb2xlLmxvZyh0YXJnZXQgKyAnIE5PVCBSRVNPTFZFRCBGUk9NICcgKyB0eHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxuICAgIHBhcnNlUmVjb3ZlcnkocmVjb3ZlcmFibGVUb2tlbiwgdG1wVHh0LCByZWN1cnNpb24pIHtcbiAgICAgICAgaWYgKHJlY292ZXJhYmxlVG9rZW4ucmVjb3ZlciAmJiB0bXBUeHQubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgcHJpbnRhYmxlID0gdGhpcy5kZWJ1ZztcbiAgICAgICAgICAgIHByaW50YWJsZSAmJlxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG5ldyBBcnJheShyZWN1cnNpb24gKyAxKS5qb2luKCfilIIgICcpICtcbiAgICAgICAgICAgICAgICAgICAgJ1RyeWluZyB0byByZWNvdmVyIHVudGlsIHRva2VuICcgK1xuICAgICAgICAgICAgICAgICAgICByZWNvdmVyYWJsZVRva2VuLnJlY292ZXIgK1xuICAgICAgICAgICAgICAgICAgICAnIGZyb20gJyArXG4gICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRtcFR4dC5zcGxpdCgnXFxuJylbMF0gKyB0bXBUeHQuc3BsaXQoJ1xcbicpWzFdKSk7XG4gICAgICAgICAgICBsZXQgdG1wID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdTeW50YXhFcnJvcicsXG4gICAgICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICAgICAgICAgIGVuZDogMCxcbiAgICAgICAgICAgICAgICBlcnJvcnM6IFtdLFxuICAgICAgICAgICAgICAgIGZ1bGxUZXh0OiAnJyxcbiAgICAgICAgICAgICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgICAgICAgcmVzdDogJydcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBsZXQgZ290O1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIGdvdCA9IHRoaXMucGFyc2UodG1wVHh0LCByZWNvdmVyYWJsZVRva2VuLnJlY292ZXIsIHJlY3Vyc2lvbiArIDEpO1xuICAgICAgICAgICAgICAgIGlmIChnb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3IFRva2VuRXJyb3JfMS5Ub2tlbkVycm9yKCdVbmV4cGVjdGVkIGlucHV0OiBcIicgKyB0bXAudGV4dCArIGBcIiBFeHBlY3Rpbmc6ICR7cmVjb3ZlcmFibGVUb2tlbi5uYW1lfWAsIHRtcCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdG1wLnRleHQgPSB0bXAudGV4dCArIHRtcFR4dFswXTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLmVuZCA9IHRtcC50ZXh0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgdG1wVHh0ID0gdG1wVHh0LnN1YnN0cigxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IHdoaWxlICghZ290ICYmIHRtcFR4dC5sZW5ndGggPiAwKTtcbiAgICAgICAgICAgIGlmICh0bXAudGV4dC5sZW5ndGggPiAwICYmIGdvdCkge1xuICAgICAgICAgICAgICAgIHByaW50YWJsZSAmJiBjb25zb2xlLmxvZyhuZXcgQXJyYXkocmVjdXJzaW9uICsgMSkuam9pbign4pSCICAnKSArICdSZWNvdmVyZWQgdGV4dDogJyArIEpTT04uc3RyaW5naWZ5KHRtcC50ZXh0KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRtcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG5leHBvcnRzLlBhcnNlciA9IFBhcnNlcjtcbmV4cG9ydHMuZGVmYXVsdCA9IFBhcnNlcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBhcnNlci5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZmluZENoaWxkcmVuQnlUeXBlID0gdm9pZCAwO1xuLyoqXG4gKiBGaW5kcyBhbGwgdGhlIGRpcmVjdCBjaGlsZHMgb2YgYSBzcGVjaWZ5ZWQgdHlwZVxuICovXG5mdW5jdGlvbiBmaW5kQ2hpbGRyZW5CeVR5cGUodG9rZW4sIHR5cGUpIHtcbiAgICByZXR1cm4gdG9rZW4uY2hpbGRyZW4gPyB0b2tlbi5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4LnR5cGUgPT0gdHlwZSkgOiBbXTtcbn1cbmV4cG9ydHMuZmluZENoaWxkcmVuQnlUeXBlID0gZmluZENoaWxkcmVuQnlUeXBlO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2VtYW50aWNIZWxwZXJzLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmFja3VzJUUyJTgwJTkzTmF1cl9Gb3JtXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKlxuc3ludGF4IDo6PSBSVUxFX0VPTCogcnVsZStcbnJ1bGUgOjo9IFwiIFwiKiBcIjxcIiBydWxlLW5hbWUgXCI+XCIgXCIgXCIqIFwiOjo9XCIgZmlyc3RFeHByZXNzaW9uIG90aGVyRXhwcmVzc2lvbiogXCIgXCIqIFJVTEVfRU9MKyBcIiBcIipcbmZpcnN0RXhwcmVzc2lvbiA6Oj0gXCIgXCIqIGxpc3Rcbm90aGVyRXhwcmVzc2lvbiA6Oj0gXCIgXCIqIFwifFwiIFwiIFwiKiBsaXN0XG5SVUxFX0VPTCA6Oj0gXCJcXHJcIiB8IFwiXFxuXCJcbmxpc3QgOjo9IHRlcm0gXCIgXCIqIGxpc3QgfCB0ZXJtXG50ZXJtIDo6PSBsaXRlcmFsIHwgXCI8XCIgcnVsZS1uYW1lIFwiPlwiXG5saXRlcmFsIDo6PSAnXCInIFJVTEVfQ0hBUkFDVEVSMSogJ1wiJyB8IFwiJ1wiIFJVTEVfQ0hBUkFDVEVSMiogXCInXCJcblJVTEVfQ0hBUkFDVEVSIDo6PSBcIiBcIiB8IFJVTEVfTEVUVEVSIHwgUlVMRV9ESUdJVCB8IFJVTEVfU1lNQk9MXG5SVUxFX0xFVFRFUiA6Oj0gXCJBXCIgfCBcIkJcIiB8IFwiQ1wiIHwgXCJEXCIgfCBcIkVcIiB8IFwiRlwiIHwgXCJHXCIgfCBcIkhcIiB8IFwiSVwiIHwgXCJKXCIgfCBcIktcIiB8IFwiTFwiIHwgXCJNXCIgfCBcIk5cIiB8IFwiT1wiIHwgXCJQXCIgfCBcIlFcIiB8IFwiUlwiIHwgXCJTXCIgfCBcIlRcIiB8IFwiVVwiIHwgXCJWXCIgfCBcIldcIiB8IFwiWFwiIHwgXCJZXCIgfCBcIlpcIiB8IFwiYVwiIHwgXCJiXCIgfCBcImNcIiB8IFwiZFwiIHwgXCJlXCIgfCBcImZcIiB8IFwiZ1wiIHwgXCJoXCIgfCBcImlcIiB8IFwialwiIHwgXCJrXCIgfCBcImxcIiB8IFwibVwiIHwgXCJuXCIgfCBcIm9cIiB8IFwicFwiIHwgXCJxXCIgfCBcInJcIiB8IFwic1wiIHwgXCJ0XCIgfCBcInVcIiB8IFwidlwiIHwgXCJ3XCIgfCBcInhcIiB8IFwieVwiIHwgXCJ6XCJcblJVTEVfRElHSVQgOjo9IFwiMFwiIHwgXCIxXCIgfCBcIjJcIiB8IFwiM1wiIHwgXCI0XCIgfCBcIjVcIiB8IFwiNlwiIHwgXCI3XCIgfCBcIjhcIiB8IFwiOVwiXG5SVUxFX1NZTUJPTCA6Oj0gXCItXCIgfCBcIl9cIiB8IFwiIVwiIHwgXCIjXCIgfCBcIiRcIiB8IFwiJVwiIHwgXCImXCIgfCBcIihcIiB8IFwiKVwiIHwgXCIqXCIgfCBcIitcIiB8IFwiLFwiIHwgXCItXCIgfCBcIi5cIiB8IFwiL1wiIHwgXCI6XCIgfCBcIjtcIiB8IFwiPFwiIHwgXCI9XCIgfCBcIj5cIiB8IFwiP1wiIHwgXCJAXCIgfCBcIltcIiB8IFwiXFxcIiB8IFwiXVwiIHwgXCJeXCIgfCBcIl9cIiB8IFwiYFwiIHwgXCJ7XCIgfCBcInxcIiB8IFwifVwiIHwgXCJ+XCJcblJVTEVfQ0hBUkFDVEVSMSA6Oj0gUlVMRV9DSEFSQUNURVIgfCBcIidcIlxuUlVMRV9DSEFSQUNURVIyIDo6PSBSVUxFX0NIQVJBQ1RFUiB8ICdcIidcbnJ1bGUtbmFtZSA6Oj0gUlVMRV9MRVRURVIgUlVMRV9DSEFSKlxuUlVMRV9DSEFSIDo6PSBSVUxFX0xFVFRFUiB8IFJVTEVfRElHSVQgfCBcIl9cIiB8IFwiLVwiXG4qL1xuY29uc3QgU2VtYW50aWNIZWxwZXJzXzEgPSByZXF1aXJlKFwiLi4vU2VtYW50aWNIZWxwZXJzXCIpO1xuY29uc3QgUGFyc2VyXzEgPSByZXF1aXJlKFwiLi4vUGFyc2VyXCIpO1xudmFyIEJORjtcbihmdW5jdGlvbiAoQk5GKSB7XG4gICAgQk5GLlJVTEVTID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnc3ludGF4JyxcbiAgICAgICAgICAgIGJuZjogW1snUlVMRV9FT0wqJywgJ3J1bGUrJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdydWxlJyxcbiAgICAgICAgICAgIGJuZjogW1xuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgJ1wiIFwiKicsXG4gICAgICAgICAgICAgICAgICAgICdcIjxcIicsXG4gICAgICAgICAgICAgICAgICAgICdydWxlLW5hbWUnLFxuICAgICAgICAgICAgICAgICAgICAnXCI+XCInLFxuICAgICAgICAgICAgICAgICAgICAnXCIgXCIqJyxcbiAgICAgICAgICAgICAgICAgICAgJ1wiOjo9XCInLFxuICAgICAgICAgICAgICAgICAgICAnZmlyc3RFeHByZXNzaW9uJyxcbiAgICAgICAgICAgICAgICAgICAgJ290aGVyRXhwcmVzc2lvbionLFxuICAgICAgICAgICAgICAgICAgICAnXCIgXCIqJyxcbiAgICAgICAgICAgICAgICAgICAgJ1JVTEVfRU9MKycsXG4gICAgICAgICAgICAgICAgICAgICdcIiBcIionXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZmlyc3RFeHByZXNzaW9uJyxcbiAgICAgICAgICAgIGJuZjogW1snXCIgXCIqJywgJ2xpc3QnXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ290aGVyRXhwcmVzc2lvbicsXG4gICAgICAgICAgICBibmY6IFtbJ1wiIFwiKicsICdcInxcIicsICdcIiBcIionLCAnbGlzdCddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUlVMRV9FT0wnLFxuICAgICAgICAgICAgYm5mOiBbWydcIlxcXFxyXCInXSwgWydcIlxcXFxuXCInXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2xpc3QnLFxuICAgICAgICAgICAgYm5mOiBbWyd0ZXJtJywgJ1wiIFwiKicsICdsaXN0J10sIFsndGVybSddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAndGVybScsXG4gICAgICAgICAgICBibmY6IFtbJ2xpdGVyYWwnXSwgWydcIjxcIicsICdydWxlLW5hbWUnLCAnXCI+XCInXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICAgICAgYm5mOiBbW2AnXCInYCwgJ1JVTEVfQ0hBUkFDVEVSMSonLCBgJ1wiJ2BdLCBbYFwiJ1wiYCwgJ1JVTEVfQ0hBUkFDVEVSMionLCBgXCInXCJgXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JVTEVfQ0hBUkFDVEVSJyxcbiAgICAgICAgICAgIGJuZjogW1snXCIgXCInXSwgWydSVUxFX0xFVFRFUiddLCBbJ1JVTEVfRElHSVQnXSwgWydSVUxFX1NZTUJPTCddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUlVMRV9MRVRURVInLFxuICAgICAgICAgICAgYm5mOiBbXG4gICAgICAgICAgICAgICAgWydcIkFcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJCXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiQ1wiJ10sXG4gICAgICAgICAgICAgICAgWydcIkRcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJFXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiRlwiJ10sXG4gICAgICAgICAgICAgICAgWydcIkdcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJIXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiSVwiJ10sXG4gICAgICAgICAgICAgICAgWydcIkpcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJLXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiTFwiJ10sXG4gICAgICAgICAgICAgICAgWydcIk1cIiddLFxuICAgICAgICAgICAgICAgIFsnXCJOXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiT1wiJ10sXG4gICAgICAgICAgICAgICAgWydcIlBcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJRXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiUlwiJ10sXG4gICAgICAgICAgICAgICAgWydcIlNcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJUXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiVVwiJ10sXG4gICAgICAgICAgICAgICAgWydcIlZcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJXXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiWFwiJ10sXG4gICAgICAgICAgICAgICAgWydcIllcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJaXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiYVwiJ10sXG4gICAgICAgICAgICAgICAgWydcImJcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJjXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiZFwiJ10sXG4gICAgICAgICAgICAgICAgWydcImVcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJmXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiZ1wiJ10sXG4gICAgICAgICAgICAgICAgWydcImhcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJpXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wialwiJ10sXG4gICAgICAgICAgICAgICAgWydcImtcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJsXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wibVwiJ10sXG4gICAgICAgICAgICAgICAgWydcIm5cIiddLFxuICAgICAgICAgICAgICAgIFsnXCJvXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wicFwiJ10sXG4gICAgICAgICAgICAgICAgWydcInFcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJyXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wic1wiJ10sXG4gICAgICAgICAgICAgICAgWydcInRcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJ1XCInXSxcbiAgICAgICAgICAgICAgICBbJ1widlwiJ10sXG4gICAgICAgICAgICAgICAgWydcIndcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJ4XCInXSxcbiAgICAgICAgICAgICAgICBbJ1wieVwiJ10sXG4gICAgICAgICAgICAgICAgWydcInpcIiddXG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdSVUxFX0RJR0lUJyxcbiAgICAgICAgICAgIGJuZjogW1snXCIwXCInXSwgWydcIjFcIiddLCBbJ1wiMlwiJ10sIFsnXCIzXCInXSwgWydcIjRcIiddLCBbJ1wiNVwiJ10sIFsnXCI2XCInXSwgWydcIjdcIiddLCBbJ1wiOFwiJ10sIFsnXCI5XCInXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JVTEVfU1lNQk9MJyxcbiAgICAgICAgICAgIGJuZjogW1xuICAgICAgICAgICAgICAgIFsnXCItXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiX1wiJ10sXG4gICAgICAgICAgICAgICAgWydcIiFcIiddLFxuICAgICAgICAgICAgICAgIFsnXCIjXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiJFwiJ10sXG4gICAgICAgICAgICAgICAgWydcIiVcIiddLFxuICAgICAgICAgICAgICAgIFsnXCImXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiKFwiJ10sXG4gICAgICAgICAgICAgICAgWydcIilcIiddLFxuICAgICAgICAgICAgICAgIFsnXCIqXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiK1wiJ10sXG4gICAgICAgICAgICAgICAgWydcIixcIiddLFxuICAgICAgICAgICAgICAgIFsnXCItXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiLlwiJ10sXG4gICAgICAgICAgICAgICAgWydcIi9cIiddLFxuICAgICAgICAgICAgICAgIFsnXCI6XCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiO1wiJ10sXG4gICAgICAgICAgICAgICAgWydcIjxcIiddLFxuICAgICAgICAgICAgICAgIFsnXCI9XCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiPlwiJ10sXG4gICAgICAgICAgICAgICAgWydcIj9cIiddLFxuICAgICAgICAgICAgICAgIFsnXCJAXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiW1wiJ10sXG4gICAgICAgICAgICAgICAgWydcIlxcXFxcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJdXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiXlwiJ10sXG4gICAgICAgICAgICAgICAgWydcIl9cIiddLFxuICAgICAgICAgICAgICAgIFsnXCJgXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wie1wiJ10sXG4gICAgICAgICAgICAgICAgWydcInxcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJ9XCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiflwiJ11cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JVTEVfQ0hBUkFDVEVSMScsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfQ0hBUkFDVEVSJ10sIFtgXCInXCJgXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JVTEVfQ0hBUkFDVEVSMicsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfQ0hBUkFDVEVSJ10sIFtgJ1wiJ2BdXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAncnVsZS1uYW1lJyxcbiAgICAgICAgICAgIGJuZjogW1snUlVMRV9MRVRURVInLCAnUlVMRV9DSEFSKiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUlVMRV9DSEFSJyxcbiAgICAgICAgICAgIGJuZjogW1snUlVMRV9MRVRURVInXSwgWydSVUxFX0RJR0lUJ10sIFsnXCJfXCInXSwgWydcIi1cIiddXVxuICAgICAgICB9XG4gICAgXTtcbiAgICBCTkYuZGVmYXVsdFBhcnNlciA9IG5ldyBQYXJzZXJfMS5QYXJzZXIoQk5GLlJVTEVTLCB7IGRlYnVnOiBmYWxzZSB9KTtcbiAgICBmdW5jdGlvbiBnZXRBbGxUZXJtcyhleHByKSB7XG4gICAgICAgIGxldCB0ZXJtcyA9IFNlbWFudGljSGVscGVyc18xLmZpbmRDaGlsZHJlbkJ5VHlwZShleHByLCAndGVybScpLm1hcCh0ZXJtID0+IHtcbiAgICAgICAgICAgIHJldHVybiBTZW1hbnRpY0hlbHBlcnNfMS5maW5kQ2hpbGRyZW5CeVR5cGUodGVybSwgJ2xpdGVyYWwnKS5jb25jYXQoU2VtYW50aWNIZWxwZXJzXzEuZmluZENoaWxkcmVuQnlUeXBlKHRlcm0sICdydWxlLW5hbWUnKSlbMF0udGV4dDtcbiAgICAgICAgfSk7XG4gICAgICAgIFNlbWFudGljSGVscGVyc18xLmZpbmRDaGlsZHJlbkJ5VHlwZShleHByLCAnbGlzdCcpLmZvckVhY2goZXhwciA9PiB7XG4gICAgICAgICAgICB0ZXJtcyA9IHRlcm1zLmNvbmNhdChnZXRBbGxUZXJtcyhleHByKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGVybXM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFJ1bGVzKHNvdXJjZSwgcGFyc2VyID0gQk5GLmRlZmF1bHRQYXJzZXIpIHtcbiAgICAgICAgbGV0IGFzdCA9IHBhcnNlci5nZXRBU1Qoc291cmNlKTtcbiAgICAgICAgaWYgKCFhc3QpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBwYXJzZSAnICsgc291cmNlKTtcbiAgICAgICAgaWYgKGFzdC5lcnJvcnMgJiYgYXN0LmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93IGFzdC5lcnJvcnNbMF07XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJ1bGVzID0gU2VtYW50aWNIZWxwZXJzXzEuZmluZENoaWxkcmVuQnlUeXBlKGFzdCwgJ3J1bGUnKTtcbiAgICAgICAgbGV0IHJldCA9IHJ1bGVzLm1hcCgocnVsZSkgPT4ge1xuICAgICAgICAgICAgbGV0IG5hbWUgPSBTZW1hbnRpY0hlbHBlcnNfMS5maW5kQ2hpbGRyZW5CeVR5cGUocnVsZSwgJ3J1bGUtbmFtZScpWzBdLnRleHQ7XG4gICAgICAgICAgICBsZXQgZXhwcmVzc2lvbnMgPSBTZW1hbnRpY0hlbHBlcnNfMS5maW5kQ2hpbGRyZW5CeVR5cGUocnVsZSwgJ2ZpcnN0RXhwcmVzc2lvbicpLmNvbmNhdChTZW1hbnRpY0hlbHBlcnNfMS5maW5kQ2hpbGRyZW5CeVR5cGUocnVsZSwgJ290aGVyRXhwcmVzc2lvbicpKTtcbiAgICAgICAgICAgIGxldCBibmYgPSBbXTtcbiAgICAgICAgICAgIGV4cHJlc3Npb25zLmZvckVhY2goZXhwciA9PiB7XG4gICAgICAgICAgICAgICAgYm5mLnB1c2goZ2V0QWxsVGVybXMoZXhwcikpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgICAgYm5mXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFyZXQuc29tZSh4ID0+IHgubmFtZSA9PSAnRU9MJykpIHtcbiAgICAgICAgICAgIHJldC5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnRU9MJyxcbiAgICAgICAgICAgICAgICBibmY6IFtbJ1wiXFxcXHJcXFxcblwiJywgJ1wiXFxcXHJcIicsICdcIlxcXFxuXCInXV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICAgIEJORi5nZXRSdWxlcyA9IGdldFJ1bGVzO1xuICAgIGZ1bmN0aW9uIFRyYW5zZm9ybShzb3VyY2UsIHN1YlBhcnNlciA9IEJORi5kZWZhdWx0UGFyc2VyKSB7XG4gICAgICAgIHJldHVybiBnZXRSdWxlcyhzb3VyY2Uuam9pbignJyksIHN1YlBhcnNlcik7XG4gICAgfVxuICAgIEJORi5UcmFuc2Zvcm0gPSBUcmFuc2Zvcm07XG4gICAgY2xhc3MgUGFyc2VyIGV4dGVuZHMgUGFyc2VyXzEuUGFyc2VyIHtcbiAgICAgICAgY29uc3RydWN0b3Ioc291cmNlLCBvcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBzdWJQYXJzZXIgPSBvcHRpb25zICYmIG9wdGlvbnMuZGVidWdSdWxlc1BhcnNlciA9PT0gdHJ1ZSA/IG5ldyBQYXJzZXJfMS5QYXJzZXIoQk5GLlJVTEVTLCB7IGRlYnVnOiB0cnVlIH0pIDogQk5GLmRlZmF1bHRQYXJzZXI7XG4gICAgICAgICAgICBzdXBlcihnZXRSdWxlcyhzb3VyY2UsIHN1YlBhcnNlciksIG9wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XG4gICAgICAgIH1cbiAgICAgICAgZW1pdFNvdXJjZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNvdXJjZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBCTkYuUGFyc2VyID0gUGFyc2VyO1xufSkoQk5GIHx8IChCTkYgPSB7fSkpO1xuZXhwb3J0cy5kZWZhdWx0ID0gQk5GO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Qk5GLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL1JFQy14bWwvI05ULU5hbWVcbi8vIGh0dHA6Ly93d3cuYm90dGxlY2Fwcy5kZS9yci91aVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLy8gR3JhbW1hclx0Ojo9XHRQcm9kdWN0aW9uKlxuLy8gUHJvZHVjdGlvblx0Ojo9XHROQ05hbWUgJzo6PScgQ2hvaWNlXG4vLyBOQ05hbWVcdDo6PVx0W2h0dHA6Ly93d3cudzMub3JnL1RSL3htbC1uYW1lcy8jTlQtTkNOYW1lXVxuLy8gQ2hvaWNlXHQ6Oj1cdFNlcXVlbmNlT3JEaWZmZXJlbmNlICggJ3wnIFNlcXVlbmNlT3JEaWZmZXJlbmNlICkqXG4vLyBTZXF1ZW5jZU9yRGlmZmVyZW5jZVx0Ojo9XHQoSXRlbSAoICctJyBJdGVtIHwgSXRlbSogKSk/XG4vLyBJdGVtXHQ6Oj1cdFByaW1hcnkgKCAnPycgfCAnKicgfCAnKycgKT9cbi8vIFByaW1hcnlcdDo6PVx0TkNOYW1lIHwgU3RyaW5nTGl0ZXJhbCB8IENoYXJDb2RlIHwgQ2hhckNsYXNzIHwgJygnIENob2ljZSAnKSdcbi8vIFN0cmluZ0xpdGVyYWxcdDo6PVx0J1wiJyBbXlwiXSogJ1wiJyB8IFwiJ1wiIFteJ10qIFwiJ1wiXG4vLyBDaGFyQ29kZVx0Ojo9XHQnI3gnIFswLTlhLWZBLUZdK1xuLy8gQ2hhckNsYXNzXHQ6Oj1cdCdbJyAnXic/ICggUlVMRV9DaGFyIHwgQ2hhckNvZGUgfCBDaGFyUmFuZ2UgfCBDaGFyQ29kZVJhbmdlICkrICddJ1xuLy8gUlVMRV9DaGFyXHQ6Oj1cdFtodHRwOi8vd3d3LnczLm9yZy9UUi94bWwjTlQtUlVMRV9DaGFyXVxuLy8gQ2hhclJhbmdlXHQ6Oj1cdFJVTEVfQ2hhciAnLScgKCBSVUxFX0NoYXIgLSAnXScgKVxuLy8gQ2hhckNvZGVSYW5nZVx0Ojo9XHRDaGFyQ29kZSAnLScgQ2hhckNvZGVcbi8vIFJVTEVfV0hJVEVTUEFDRVx0Ojo9XHRSVUxFX1MgfCBDb21tZW50XG4vLyBSVUxFX1NcdDo6PVx0I3g5IHwgI3hBIHwgI3hEIHwgI3gyMFxuLy8gQ29tbWVudFx0Ojo9XHQnLyonICggW14qXSB8ICcqJysgW14qL10gKSogJyonKiAnKi8nXG5jb25zdCBQYXJzZXJfMSA9IHJlcXVpcmUoXCIuLi9QYXJzZXJcIik7XG52YXIgQk5GO1xuKGZ1bmN0aW9uIChCTkYpIHtcbiAgICBCTkYuUlVMRVMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdHcmFtbWFyJyxcbiAgICAgICAgICAgIGJuZjogW1snUlVMRV9TKicsICclQXRvbWljKicsICdFT0YnXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJyVBdG9taWMnLFxuICAgICAgICAgICAgYm5mOiBbWydQcm9kdWN0aW9uJywgJ1JVTEVfUyonXV0sXG4gICAgICAgICAgICBmcmFnbWVudDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUHJvZHVjdGlvbicsXG4gICAgICAgICAgICBibmY6IFtbJ05DTmFtZScsICdSVUxFX1MqJywgJ1wiOjo9XCInLCAnUlVMRV9XSElURVNQQUNFKicsICdDaG9pY2UnLCAnUlVMRV9XSElURVNQQUNFKicsICdSVUxFX0VPTCsnLCAnUlVMRV9TKiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnTkNOYW1lJyxcbiAgICAgICAgICAgIGJuZjogW1svW2EtekEtWl1bYS16QS1aXzAtOV0qL11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdDaG9pY2UnLFxuICAgICAgICAgICAgYm5mOiBbWydTZXF1ZW5jZU9yRGlmZmVyZW5jZScsICclX0Nob2ljZV8xKiddXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclX0Nob2ljZV8xJyxcbiAgICAgICAgICAgIGJuZjogW1snUlVMRV9XSElURVNQQUNFKicsICdcInxcIicsICdSVUxFX1dISVRFU1BBQ0UqJywgJ1NlcXVlbmNlT3JEaWZmZXJlbmNlJ11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1NlcXVlbmNlT3JEaWZmZXJlbmNlJyxcbiAgICAgICAgICAgIGJuZjogW1snSXRlbScsICdSVUxFX1dISVRFU1BBQ0UqJywgJyVfSXRlbV8xPyddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnJV9JdGVtXzEnLFxuICAgICAgICAgICAgYm5mOiBbWydNaW51cycsICdJdGVtJ10sIFsnSXRlbSonXV0sXG4gICAgICAgICAgICBmcmFnbWVudDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnTWludXMnLFxuICAgICAgICAgICAgYm5mOiBbWydcIi1cIiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnSXRlbScsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfV0hJVEVTUEFDRSonLCAnJVByaW1hcnknLCAnUHJpbWFyeURlY29yYXRpb24/J11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1ByaW1hcnlEZWNvcmF0aW9uJyxcbiAgICAgICAgICAgIGJuZjogW1snXCI/XCInXSwgWydcIipcIiddLCBbJ1wiK1wiJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdEZWNvcmF0aW9uTmFtZScsXG4gICAgICAgICAgICBibmY6IFtbJ1wiZWJuZjovL1wiJywgL1teXFx4NUQjXSsvXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJyVQcmltYXJ5JyxcbiAgICAgICAgICAgIGJuZjogW1snTkNOYW1lJ10sIFsnU3RyaW5nTGl0ZXJhbCddLCBbJ0NoYXJDb2RlJ10sIFsnQ2hhckNsYXNzJ10sIFsnU3ViSXRlbSddXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdTdWJJdGVtJyxcbiAgICAgICAgICAgIGJuZjogW1snXCIoXCInLCAnUlVMRV9XSElURVNQQUNFKicsICdDaG9pY2UnLCAnUlVMRV9XSElURVNQQUNFKicsICdcIilcIiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnU3RyaW5nTGl0ZXJhbCcsXG4gICAgICAgICAgICBibmY6IFtbYCdcIidgLCAvW15cIl0qLywgYCdcIidgXSwgW2BcIidcImAsIC9bXiddKi8sIGBcIidcImBdXSxcbiAgICAgICAgICAgIHBpbm5lZDogMVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnQ2hhckNvZGUnLFxuICAgICAgICAgICAgYm5mOiBbWydcIiN4XCInLCAvWzAtOWEtekEtWl0rL11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdDaGFyQ2xhc3MnLFxuICAgICAgICAgICAgYm5mOiBbW1wiJ1snXCIsIFwiJ14nP1wiLCAnJVJVTEVfQ2hhckNsYXNzXzErJywgJ1wiXVwiJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclUlVMRV9DaGFyQ2xhc3NfMScsXG4gICAgICAgICAgICBibmY6IFtbJ0NoYXJDb2RlUmFuZ2UnXSwgWydDaGFyUmFuZ2UnXSwgWydDaGFyQ29kZSddLCBbJ1JVTEVfQ2hhciddXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdSVUxFX0NoYXInLFxuICAgICAgICAgICAgYm5mOiBbWy9cXHgwOS9dLCBbL1xceDBBL10sIFsvXFx4MEQvXSwgWy9bXFx4MjAtXFx4NWNdL10sIFsvW1xceDVlLVxcdUQ3RkZdL10sIFsvW1xcdUUwMDAtXFx1RkZGRF0vXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0NoYXJSYW5nZScsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfQ2hhcicsICdcIi1cIicsICdSVUxFX0NoYXInXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0NoYXJDb2RlUmFuZ2UnLFxuICAgICAgICAgICAgYm5mOiBbWydDaGFyQ29kZScsICdcIi1cIicsICdDaGFyQ29kZSddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUlVMRV9XSElURVNQQUNFJyxcbiAgICAgICAgICAgIGJuZjogW1snJVJVTEVfV0hJVEVTUEFDRV9DSEFSKiddLCBbJ0NvbW1lbnQnLCAnUlVMRV9XSElURVNQQUNFKiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUlVMRV9TJyxcbiAgICAgICAgICAgIGJuZjogW1snUlVMRV9XSElURVNQQUNFJywgJ1JVTEVfUyonXSwgWydSVUxFX0VPTCcsICdSVUxFX1MqJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclUlVMRV9XSElURVNQQUNFX0NIQVInLFxuICAgICAgICAgICAgYm5mOiBbWy9cXHgwOS9dLCBbL1xceDIwL11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0NvbW1lbnQnLFxuICAgICAgICAgICAgYm5mOiBbWydcIi8qXCInLCAnJVJVTEVfQ29tbWVudF9Cb2R5KicsICdcIiovXCInXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJyVSVUxFX0NvbW1lbnRfQm9keScsXG4gICAgICAgICAgICBibmY6IFtbJyFcIiovXCInLCAvW14qXS9dXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdSVUxFX0VPTCcsXG4gICAgICAgICAgICBibmY6IFtbL1xceDBELywgL1xceDBBL10sIFsvXFx4MEEvXSwgWy9cXHgwRC9dXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnTGluaycsXG4gICAgICAgICAgICBibmY6IFtbXCInWydcIiwgJ1VybCcsIFwiJ10nXCJdXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnVXJsJyxcbiAgICAgICAgICAgIGJuZjogW1svW15cXHg1RDovPyNdLywgJ1wiOi8vXCInLCAvW15cXHg1RCNdKy8sICclVXJsMT8nXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJyVVcmwxJyxcbiAgICAgICAgICAgIGJuZjogW1snXCIjXCInLCAnTkNOYW1lJ11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfVxuICAgIF07XG4gICAgQk5GLmRlZmF1bHRQYXJzZXIgPSBuZXcgUGFyc2VyXzEuUGFyc2VyKEJORi5SVUxFUywgeyBkZWJ1ZzogZmFsc2UgfSk7XG4gICAgY29uc3QgcHJlRGVjb3JhdGlvblJFID0gL14oIXwmKS87XG4gICAgY29uc3QgZGVjb3JhdGlvblJFID0gLyhcXD98XFwrfFxcKikkLztcbiAgICBjb25zdCBzdWJFeHByZXNzaW9uUkUgPSAvXiUvO1xuICAgIGZ1bmN0aW9uIGdldEJORlJ1bGUobmFtZSwgcGFyc2VyKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbmFtZSA9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKHByZURlY29yYXRpb25SRS50ZXN0KG5hbWUpKVxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIGxldCBzdWJleHByZXNzaW9uID0gc3ViRXhwcmVzc2lvblJFLnRlc3QobmFtZSk7XG4gICAgICAgICAgICBpZiAoc3ViZXhwcmVzc2lvbikge1xuICAgICAgICAgICAgICAgIGxldCBkZWNvcmF0aW9uID0gZGVjb3JhdGlvblJFLmV4ZWMobmFtZSk7XG4gICAgICAgICAgICAgICAgbGV0IGRlY29yYXRpb25UZXh0ID0gZGVjb3JhdGlvbiA/IGRlY29yYXRpb25bMF0gKyAnICcgOiAnJztcbiAgICAgICAgICAgICAgICBsZXQgbG9uZWx5ID0gaXNMb25lbHlSdWxlKG5hbWUsIHBhcnNlcik7XG4gICAgICAgICAgICAgICAgaWYgKGxvbmVseSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldEJORkJvZHkobmFtZSwgcGFyc2VyKSArIGRlY29yYXRpb25UZXh0O1xuICAgICAgICAgICAgICAgIHJldHVybiAnKCcgKyBnZXRCTkZCb2R5KG5hbWUsIHBhcnNlcikgKyAnKScgKyBkZWNvcmF0aW9uVGV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5hbWUuc291cmNlXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcXFwoPzp4fHUpKFthLXpBLVowLTldKykvZywgJyN4JDEnKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFtcXFxcKD86eHx1KShbYS16QS1aMC05XSspLVxcXFwoPzp4fHUpKFthLXpBLVowLTldKylcXF0vZywgJ1sjeCQxLSN4JDJdJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcnVsZSBpcyBhIHN0cmluZyBsaXRlcmFsIG9yIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aXRob3V0IGEgZGVzY2VuZGFudCB0cmVlXG4gICAgZnVuY3Rpb24gaXNMb25lbHlSdWxlKG5hbWUsIHBhcnNlcikge1xuICAgICAgICBsZXQgcnVsZSA9IFBhcnNlcl8xLmZpbmRSdWxlQnlOYW1lKG5hbWUsIHBhcnNlcik7XG4gICAgICAgIHJldHVybiAocnVsZSAmJlxuICAgICAgICAgICAgcnVsZS5ibmYubGVuZ3RoID09IDEgJiZcbiAgICAgICAgICAgIHJ1bGUuYm5mWzBdLmxlbmd0aCA9PSAxICYmXG4gICAgICAgICAgICAocnVsZS5ibmZbMF1bMF0gaW5zdGFuY2VvZiBSZWdFeHAgfHwgcnVsZS5ibmZbMF1bMF1bMF0gPT0gJ1wiJyB8fCBydWxlLmJuZlswXVswXVswXSA9PSBcIidcIikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRCTkZDaG9pY2UocnVsZXMsIHBhcnNlcikge1xuICAgICAgICByZXR1cm4gcnVsZXMubWFwKHggPT4gZ2V0Qk5GUnVsZSh4LCBwYXJzZXIpKS5qb2luKCcgJyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEJORkJvZHkobmFtZSwgcGFyc2VyKSB7XG4gICAgICAgIGxldCBydWxlID0gUGFyc2VyXzEuZmluZFJ1bGVCeU5hbWUobmFtZSwgcGFyc2VyKTtcbiAgICAgICAgaWYgKHJ1bGUpXG4gICAgICAgICAgICByZXR1cm4gcnVsZS5ibmYubWFwKHggPT4gZ2V0Qk5GQ2hvaWNlKHgsIHBhcnNlcikpLmpvaW4oJyB8ICcpO1xuICAgICAgICByZXR1cm4gJ1JVTEVfTk9UX0ZPVU5EIHsnICsgbmFtZSArICd9JztcbiAgICB9XG4gICAgZnVuY3Rpb24gZW1pdChwYXJzZXIpIHtcbiAgICAgICAgbGV0IGFjdW11bGF0b3IgPSBbXTtcbiAgICAgICAgcGFyc2VyLmdyYW1tYXJSdWxlcy5mb3JFYWNoKGwgPT4ge1xuICAgICAgICAgICAgaWYgKCEvXiUvLnRlc3QobC5uYW1lKSkge1xuICAgICAgICAgICAgICAgIGxldCByZWNvdmVyID0gbC5yZWNvdmVyID8gJyAvKiB7IHJlY292ZXJVbnRpbD0nICsgbC5yZWNvdmVyICsgJyB9ICovJyA6ICcnO1xuICAgICAgICAgICAgICAgIGFjdW11bGF0b3IucHVzaChsLm5hbWUgKyAnIDo6PSAnICsgZ2V0Qk5GQm9keShsLm5hbWUsIHBhcnNlcikgKyByZWNvdmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhY3VtdWxhdG9yLmpvaW4oJ1xcbicpO1xuICAgIH1cbiAgICBCTkYuZW1pdCA9IGVtaXQ7XG4gICAgbGV0IHN1Yml0ZW1zID0gMDtcbiAgICBmdW5jdGlvbiByZXN0YXIodG90YWwsIHJlc3RhKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdyZWJlcmlhIHJlc3RhciAnICsgcmVzdGEgKyAnIGEgJyArIHRvdGFsKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEaWZmZXJlbmNlIG5vdCBzdXBwb3J0ZWQgeWV0Jyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnZlcnRSZWdleCh0eHQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAodHh0XG4gICAgICAgICAgICAucmVwbGFjZSgvI3goW2EtekEtWjAtOV17NH0pL2csICdcXFxcdSQxJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8jeChbYS16QS1aMC05XXszfSkvZywgJ1xcXFx1MCQxJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8jeChbYS16QS1aMC05XXsyfSkvZywgJ1xcXFx4JDEnKVxuICAgICAgICAgICAgLnJlcGxhY2UoLyN4KFthLXpBLVowLTldezF9KS9nLCAnXFxcXHgwJDEnKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFN1Ykl0ZW1zKHRtcFJ1bGVzLCBzZXEsIHBhcmVudE5hbWUpIHtcbiAgICAgICAgbGV0IGFudGVyaW9yID0gbnVsbDtcbiAgICAgICAgbGV0IGJuZlNlcSA9IFtdO1xuICAgICAgICBzZXEuY2hpbGRyZW4uZm9yRWFjaCgoeCwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKHgudHlwZSA9PSAnTWludXMnKSB7XG4gICAgICAgICAgICAgICAgcmVzdGFyKGFudGVyaW9yLCB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGRlY29yYXRpb24gPSBzZXEuY2hpbGRyZW5baSArIDFdO1xuICAgICAgICAgICAgZGVjb3JhdGlvbiA9IChkZWNvcmF0aW9uICYmIGRlY29yYXRpb24udHlwZSA9PSAnUHJpbWFyeURlY29yYXRpb24nICYmIGRlY29yYXRpb24udGV4dCkgfHwgJyc7XG4gICAgICAgICAgICBsZXQgcHJlRGVjb3JhdGlvbiA9ICcnO1xuICAgICAgICAgICAgc3dpdGNoICh4LnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdTdWJJdGVtJzpcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5hbWUgPSAnJScgKyAocGFyZW50TmFtZSArIHN1Yml0ZW1zKyspO1xuICAgICAgICAgICAgICAgICAgICBjcmVhdGVSdWxlKHRtcFJ1bGVzLCB4LCBuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgYm5mU2VxLnB1c2gocHJlRGVjb3JhdGlvbiArIG5hbWUgKyBkZWNvcmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnTkNOYW1lJzpcbiAgICAgICAgICAgICAgICBjYXNlICdTdHJpbmdMaXRlcmFsJzpcbiAgICAgICAgICAgICAgICAgICAgYm5mU2VxLnB1c2gocHJlRGVjb3JhdGlvbiArIHgudGV4dCArIGRlY29yYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdDaGFyQ29kZSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnQ2hhckNsYXNzJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlY29yYXRpb24gfHwgcHJlRGVjb3JhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1J1bGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJyUnICsgKHBhcmVudE5hbWUgKyBzdWJpdGVtcysrKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBibmY6IFtbY29udmVydFJlZ2V4KHgudGV4dCldXVxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcFJ1bGVzLnB1c2gobmV3UnVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBibmZTZXEucHVzaChwcmVEZWNvcmF0aW9uICsgbmV3UnVsZS5uYW1lICsgZGVjb3JhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBibmZTZXEucHVzaChjb252ZXJ0UmVnZXgoeC50ZXh0KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnUHJpbWFyeURlY29yYXRpb24nOlxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyBIT1cgU0hPVUxEIEkgUEFSU0UgVEhJUz8gJyArIHgudHlwZSArICcgLT4gJyArIEpTT04uc3RyaW5naWZ5KHgudGV4dCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYW50ZXJpb3IgPSB4O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGJuZlNlcTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlUnVsZSh0bXBSdWxlcywgdG9rZW4sIG5hbWUpIHtcbiAgICAgICAgbGV0IGJuZiA9IHRva2VuLmNoaWxkcmVuLmZpbHRlcih4ID0+IHgudHlwZSA9PSAnU2VxdWVuY2VPckRpZmZlcmVuY2UnKS5tYXAocyA9PiBnZXRTdWJJdGVtcyh0bXBSdWxlcywgcywgbmFtZSkpO1xuICAgICAgICBsZXQgcnVsZSA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBibmZcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IHJlY292ZXIgPSBudWxsO1xuICAgICAgICBibmYuZm9yRWFjaCh4ID0+IHtcbiAgICAgICAgICAgIHJlY292ZXIgPSByZWNvdmVyIHx8IHhbJ3JlY292ZXInXTtcbiAgICAgICAgICAgIGRlbGV0ZSB4WydyZWNvdmVyJ107XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAobmFtZS5pbmRleE9mKCclJykgPT0gMClcbiAgICAgICAgICAgIHJ1bGUuZnJhZ21lbnQgPSB0cnVlO1xuICAgICAgICBpZiAocmVjb3ZlcilcbiAgICAgICAgICAgIHJ1bGUucmVjb3ZlciA9IHJlY292ZXI7XG4gICAgICAgIHRtcFJ1bGVzLnB1c2gocnVsZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFJ1bGVzKHNvdXJjZSwgcGFyc2VyID0gQk5GLmRlZmF1bHRQYXJzZXIpIHtcbiAgICAgICAgbGV0IGFzdCA9IHBhcnNlci5nZXRBU1Qoc291cmNlKTtcbiAgICAgICAgaWYgKCFhc3QpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBwYXJzZSAnICsgc291cmNlKTtcbiAgICAgICAgaWYgKGFzdC5lcnJvcnMgJiYgYXN0LmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93IGFzdC5lcnJvcnNbMF07XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHRtcFJ1bGVzID0gW107XG4gICAgICAgIGFzdC5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4LnR5cGUgPT0gJ1Byb2R1Y3Rpb24nKS5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgIGxldCBuYW1lID0geC5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4LnR5cGUgPT0gJ05DTmFtZScpWzBdLnRleHQ7XG4gICAgICAgICAgICBjcmVhdGVSdWxlKHRtcFJ1bGVzLCB4LCBuYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0bXBSdWxlcztcbiAgICB9XG4gICAgQk5GLmdldFJ1bGVzID0gZ2V0UnVsZXM7XG4gICAgZnVuY3Rpb24gVHJhbnNmb3JtKHNvdXJjZSwgc3ViUGFyc2VyID0gQk5GLmRlZmF1bHRQYXJzZXIpIHtcbiAgICAgICAgcmV0dXJuIGdldFJ1bGVzKHNvdXJjZS5qb2luKCcnKSwgc3ViUGFyc2VyKTtcbiAgICB9XG4gICAgQk5GLlRyYW5zZm9ybSA9IFRyYW5zZm9ybTtcbiAgICBjbGFzcyBQYXJzZXIgZXh0ZW5kcyBQYXJzZXJfMS5QYXJzZXIge1xuICAgICAgICBjb25zdHJ1Y3Rvcihzb3VyY2UsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YlBhcnNlciA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kZWJ1Z1J1bGVzUGFyc2VyID09PSB0cnVlID8gbmV3IFBhcnNlcl8xLlBhcnNlcihCTkYuUlVMRVMsIHsgZGVidWc6IHRydWUgfSkgOiBCTkYuZGVmYXVsdFBhcnNlcjtcbiAgICAgICAgICAgIHN1cGVyKGdldFJ1bGVzKHNvdXJjZSwgc3ViUGFyc2VyKSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgZW1pdFNvdXJjZSgpIHtcbiAgICAgICAgICAgIHJldHVybiBlbWl0KHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEJORi5QYXJzZXIgPSBQYXJzZXI7XG59KShCTkYgfHwgKEJORiA9IHt9KSk7XG5leHBvcnRzLmRlZmF1bHQgPSBCTkY7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1XM0NFQk5GLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL1JFQy14bWwvI05ULU5hbWVcbi8vIGh0dHA6Ly93d3cuYm90dGxlY2Fwcy5kZS9yci91aVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLy8gR3JhbW1hclx0Ojo9XHRQcm9kdWN0aW9uKlxuLy8gUHJvZHVjdGlvblx0Ojo9XHROQ05hbWUgJzo6PScgQ2hvaWNlXG4vLyBOQ05hbWVcdDo6PVx0W2h0dHA6Ly93d3cudzMub3JnL1RSL3htbC1uYW1lcy8jTlQtTkNOYW1lXVxuLy8gQ2hvaWNlXHQ6Oj1cdFNlcXVlbmNlT3JEaWZmZXJlbmNlICggJ3wnIFNlcXVlbmNlT3JEaWZmZXJlbmNlICkqXG4vLyBTZXF1ZW5jZU9yRGlmZmVyZW5jZVx0Ojo9XHQoSXRlbSAoICctJyBJdGVtIHwgSXRlbSogKSk/XG4vLyBJdGVtXHQ6Oj1cdFByaW1hcnkgKCAnPycgfCAnKicgfCAnKycgKT9cbi8vIFByaW1hcnlcdDo6PVx0TkNOYW1lIHwgU3RyaW5nTGl0ZXJhbCB8IENoYXJDb2RlIHwgQ2hhckNsYXNzIHwgJygnIENob2ljZSAnKSdcbi8vIFN0cmluZ0xpdGVyYWxcdDo6PVx0J1wiJyBbXlwiXSogJ1wiJyB8IFwiJ1wiIFteJ10qIFwiJ1wiXG4vLyBDaGFyQ29kZVx0Ojo9XHQnI3gnIFswLTlhLWZBLUZdK1xuLy8gQ2hhckNsYXNzXHQ6Oj1cdCdbJyAnXic/ICggUlVMRV9DaGFyIHwgQ2hhckNvZGUgfCBDaGFyUmFuZ2UgfCBDaGFyQ29kZVJhbmdlICkrICddJ1xuLy8gUlVMRV9DaGFyXHQ6Oj1cdFtodHRwOi8vd3d3LnczLm9yZy9UUi94bWwjTlQtUlVMRV9DaGFyXVxuLy8gQ2hhclJhbmdlXHQ6Oj1cdFJVTEVfQ2hhciAnLScgKCBSVUxFX0NoYXIgLSAnXScgKVxuLy8gQ2hhckNvZGVSYW5nZVx0Ojo9XHRDaGFyQ29kZSAnLScgQ2hhckNvZGVcbi8vIFJVTEVfV0hJVEVTUEFDRVx0Ojo9XHRSVUxFX1MgfCBDb21tZW50XG4vLyBSVUxFX1NcdDo6PVx0I3g5IHwgI3hBIHwgI3hEIHwgI3gyMFxuLy8gQ29tbWVudFx0Ojo9XHQnLyonICggW14qXSB8ICcqJysgW14qL10gKSogJyonKiAnKi8nXG5jb25zdCBUb2tlbkVycm9yXzEgPSByZXF1aXJlKFwiLi4vVG9rZW5FcnJvclwiKTtcbmNvbnN0IFBhcnNlcl8xID0gcmVxdWlyZShcIi4uL1BhcnNlclwiKTtcbnZhciBCTkY7XG4oZnVuY3Rpb24gKEJORikge1xuICAgIEJORi5SVUxFUyA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0dyYW1tYXInLFxuICAgICAgICAgICAgYm5mOiBbWydSVUxFX1MqJywgJ0F0dHJpYnV0ZXM/JywgJ1JVTEVfUyonLCAnJUF0b21pYyonLCAnRU9GJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclQXRvbWljJyxcbiAgICAgICAgICAgIGJuZjogW1snUHJvZHVjdGlvbicsICdSVUxFX1MqJ11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1Byb2R1Y3Rpb24nLFxuICAgICAgICAgICAgYm5mOiBbXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAnTkNOYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgJ1JVTEVfUyonLFxuICAgICAgICAgICAgICAgICAgICAnXCI6Oj1cIicsXG4gICAgICAgICAgICAgICAgICAgICdSVUxFX1dISVRFU1BBQ0UqJyxcbiAgICAgICAgICAgICAgICAgICAgJyVDaG9pY2UnLFxuICAgICAgICAgICAgICAgICAgICAnUlVMRV9XSElURVNQQUNFKicsXG4gICAgICAgICAgICAgICAgICAgICdBdHRyaWJ1dGVzPycsXG4gICAgICAgICAgICAgICAgICAgICdSVUxFX0VPTCsnLFxuICAgICAgICAgICAgICAgICAgICAnUlVMRV9TKidcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdOQ05hbWUnLFxuICAgICAgICAgICAgYm5mOiBbWy9bYS16QS1aXVthLXpBLVpfMC05XSovXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0F0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgYm5mOiBbWydcIntcIicsICdBdHRyaWJ1dGUnLCAnJUF0dHJpYnV0ZXMqJywgJ1JVTEVfUyonLCAnXCJ9XCInXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJyVBdHRyaWJ1dGVzJyxcbiAgICAgICAgICAgIGJuZjogW1snUlVMRV9TKicsICdcIixcIicsICdBdHRyaWJ1dGUnXV0sXG4gICAgICAgICAgICBmcmFnbWVudDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnQXR0cmlidXRlJyxcbiAgICAgICAgICAgIGJuZjogW1snUlVMRV9TKicsICdOQ05hbWUnLCAnUlVMRV9XSElURVNQQUNFKicsICdcIj1cIicsICdSVUxFX1dISVRFU1BBQ0UqJywgJ0F0dHJpYnV0ZVZhbHVlJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdBdHRyaWJ1dGVWYWx1ZScsXG4gICAgICAgICAgICBibmY6IFtbJ05DTmFtZSddLCBbL1sxLTldWzAtOV0qL11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclQ2hvaWNlJyxcbiAgICAgICAgICAgIGJuZjogW1snU2VxdWVuY2VPckRpZmZlcmVuY2UnLCAnJV9DaG9pY2VfMSonXV0sXG4gICAgICAgICAgICBmcmFnbWVudDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnJV9DaG9pY2VfMScsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfUyonLCAnXCJ8XCInLCAnUlVMRV9TKicsICdTZXF1ZW5jZU9yRGlmZmVyZW5jZSddXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdTZXF1ZW5jZU9yRGlmZmVyZW5jZScsXG4gICAgICAgICAgICBibmY6IFtbJyVJdGVtJywgJ1JVTEVfV0hJVEVTUEFDRSonLCAnJV9JdGVtXzE/J11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclX0l0ZW1fMScsXG4gICAgICAgICAgICBibmY6IFtbJ01pbnVzJywgJyVJdGVtJ10sIFsnJUl0ZW0qJ11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ01pbnVzJyxcbiAgICAgICAgICAgIGJuZjogW1snXCItXCInXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJyVJdGVtJyxcbiAgICAgICAgICAgIGJuZjogW1snUlVMRV9XSElURVNQQUNFKicsICdQcmltYXJ5UHJlRGVjb3JhdGlvbj8nLCAnJVByaW1hcnknLCAnUHJpbWFyeURlY29yYXRpb24/J11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1ByaW1hcnlEZWNvcmF0aW9uJyxcbiAgICAgICAgICAgIGJuZjogW1snXCI/XCInXSwgWydcIipcIiddLCBbJ1wiK1wiJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdQcmltYXJ5UHJlRGVjb3JhdGlvbicsXG4gICAgICAgICAgICBibmY6IFtbJ1wiJlwiJ10sIFsnXCIhXCInXSwgWydcIn5cIiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnJVByaW1hcnknLFxuICAgICAgICAgICAgYm5mOiBbWydOQ05hbWUnXSwgWydTdHJpbmdMaXRlcmFsJ10sIFsnQ2hhckNvZGUnXSwgWydDaGFyQ2xhc3MnXSwgWydTdWJJdGVtJ11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1N1Ykl0ZW0nLFxuICAgICAgICAgICAgYm5mOiBbWydcIihcIicsICdSVUxFX1MqJywgJyVDaG9pY2UnLCAnUlVMRV9TKicsICdcIilcIiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnU3RyaW5nTGl0ZXJhbCcsXG4gICAgICAgICAgICBibmY6IFtbYCdcIidgLCAvW15cIl0qLywgYCdcIidgXSwgW2BcIidcImAsIC9bXiddKi8sIGBcIidcImBdXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnQ2hhckNvZGUnLFxuICAgICAgICAgICAgYm5mOiBbWydcIiN4XCInLCAvWzAtOWEtekEtWl0rL11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdDaGFyQ2xhc3MnLFxuICAgICAgICAgICAgYm5mOiBbW1wiJ1snXCIsIFwiJ14nP1wiLCAnJVJVTEVfQ2hhckNsYXNzXzErJywgJ1wiXVwiJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclUlVMRV9DaGFyQ2xhc3NfMScsXG4gICAgICAgICAgICBibmY6IFtbJ0NoYXJDb2RlUmFuZ2UnXSwgWydDaGFyUmFuZ2UnXSwgWydDaGFyQ29kZSddLCBbJ1JVTEVfQ2hhciddXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdSVUxFX0NoYXInLFxuICAgICAgICAgICAgYm5mOiBbWy9cXHgwOS9dLCBbL1xceDBBL10sIFsvXFx4MEQvXSwgWy9bXFx4MjAtXFx4NWNdL10sIFsvW1xceDVlLVxcdUQ3RkZdL10sIFsvW1xcdUUwMDAtXFx1RkZGRF0vXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0NoYXJSYW5nZScsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfQ2hhcicsICdcIi1cIicsICdSVUxFX0NoYXInXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0NoYXJDb2RlUmFuZ2UnLFxuICAgICAgICAgICAgYm5mOiBbWydDaGFyQ29kZScsICdcIi1cIicsICdDaGFyQ29kZSddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUlVMRV9XSElURVNQQUNFJyxcbiAgICAgICAgICAgIGJuZjogW1snJVJVTEVfV0hJVEVTUEFDRV9DSEFSKiddLCBbJ0NvbW1lbnQnLCAnUlVMRV9XSElURVNQQUNFKiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUlVMRV9TJyxcbiAgICAgICAgICAgIGJuZjogW1snUlVMRV9XSElURVNQQUNFJywgJ1JVTEVfUyonXSwgWydSVUxFX0VPTCcsICdSVUxFX1MqJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclUlVMRV9XSElURVNQQUNFX0NIQVInLFxuICAgICAgICAgICAgYm5mOiBbWy9cXHgwOS9dLCBbL1xceDIwL11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0NvbW1lbnQnLFxuICAgICAgICAgICAgYm5mOiBbWydcIi8qXCInLCAnJVJVTEVfQ29tbWVudF9Cb2R5KicsICdcIiovXCInXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJyVSVUxFX0NvbW1lbnRfQm9keScsXG4gICAgICAgICAgICBibmY6IFtbL1teKl0vXSwgWydcIipcIisnLCAvW14vXSovXV0sXG4gICAgICAgICAgICBmcmFnbWVudDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUlVMRV9FT0wnLFxuICAgICAgICAgICAgYm5mOiBbWy9cXHgwRC8sIC9cXHgwQS9dLCBbL1xceDBBL10sIFsvXFx4MEQvXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0xpbmsnLFxuICAgICAgICAgICAgYm5mOiBbW1wiJ1snXCIsICdVcmwnLCBcIiddJ1wiXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1VybCcsXG4gICAgICAgICAgICBibmY6IFtbL1teXFx4NUQ6Lz8jXS8sICdcIjovL1wiJywgL1teXFx4NUQjXSsvLCAnJVVybDE/J11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclVXJsMScsXG4gICAgICAgICAgICBibmY6IFtbJ1wiI1wiJywgJ05DTmFtZSddXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH1cbiAgICBdO1xuICAgIEJORi5kZWZhdWx0UGFyc2VyID0gbmV3IFBhcnNlcl8xLlBhcnNlcihCTkYuUlVMRVMsIHsgZGVidWc6IGZhbHNlIH0pO1xuICAgIGNvbnN0IHByZURlY29yYXRpb25SRSA9IC9eKCF8JikvO1xuICAgIGNvbnN0IGRlY29yYXRpb25SRSA9IC8oXFw/fFxcK3xcXCopJC87XG4gICAgY29uc3Qgc3ViRXhwcmVzc2lvblJFID0gL14lLztcbiAgICBmdW5jdGlvbiBnZXRCTkZSdWxlKG5hbWUsIHBhcnNlcikge1xuICAgICAgICBpZiAodHlwZW9mIG5hbWUgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGxldCBkZWNvcmF0aW9uID0gZGVjb3JhdGlvblJFLmV4ZWMobmFtZSk7XG4gICAgICAgICAgICBsZXQgcHJlRGVjb3JhdGlvbiA9IHByZURlY29yYXRpb25SRS5leGVjKG5hbWUpO1xuICAgICAgICAgICAgbGV0IHByZURlY29yYXRpb25UZXh0ID0gcHJlRGVjb3JhdGlvbiA/IHByZURlY29yYXRpb25bMF0gOiAnJztcbiAgICAgICAgICAgIGxldCBkZWNvcmF0aW9uVGV4dCA9IGRlY29yYXRpb24gPyBkZWNvcmF0aW9uWzBdICsgJyAnIDogJyc7XG4gICAgICAgICAgICBsZXQgc3ViZXhwcmVzc2lvbiA9IHN1YkV4cHJlc3Npb25SRS50ZXN0KG5hbWUpO1xuICAgICAgICAgICAgaWYgKHN1YmV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgICAgICBsZXQgbG9uZWx5ID0gaXNMb25lbHlSdWxlKG5hbWUsIHBhcnNlcik7XG4gICAgICAgICAgICAgICAgaWYgKGxvbmVseSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZURlY29yYXRpb25UZXh0ICsgZ2V0Qk5GQm9keShuYW1lLCBwYXJzZXIpICsgZGVjb3JhdGlvblRleHQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZURlY29yYXRpb25UZXh0ICsgJygnICsgZ2V0Qk5GQm9keShuYW1lLCBwYXJzZXIpICsgJyknICsgZGVjb3JhdGlvblRleHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmFtZS5yZXBsYWNlKHByZURlY29yYXRpb25SRSwgcHJlRGVjb3JhdGlvblRleHQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5hbWUuc291cmNlXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcXFwoPzp4fHUpKFthLXpBLVowLTldKykvZywgJyN4JDEnKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFtcXFxcKD86eHx1KShbYS16QS1aMC05XSspLVxcXFwoPzp4fHUpKFthLXpBLVowLTldKylcXF0vZywgJ1sjeCQxLSN4JDJdJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcnVsZSBpcyBhIHN0cmluZyBsaXRlcmFsIG9yIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aXRob3V0IGEgZGVzY2VuZGFudCB0cmVlXG4gICAgZnVuY3Rpb24gaXNMb25lbHlSdWxlKG5hbWUsIHBhcnNlcikge1xuICAgICAgICBsZXQgcnVsZSA9IFBhcnNlcl8xLmZpbmRSdWxlQnlOYW1lKG5hbWUsIHBhcnNlcik7XG4gICAgICAgIHJldHVybiAocnVsZSAmJlxuICAgICAgICAgICAgcnVsZS5ibmYubGVuZ3RoID09IDEgJiZcbiAgICAgICAgICAgIHJ1bGUuYm5mWzBdLmxlbmd0aCA9PSAxICYmXG4gICAgICAgICAgICAocnVsZS5ibmZbMF1bMF0gaW5zdGFuY2VvZiBSZWdFeHAgfHwgcnVsZS5ibmZbMF1bMF1bMF0gPT0gJ1wiJyB8fCBydWxlLmJuZlswXVswXVswXSA9PSBcIidcIikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRCTkZDaG9pY2UocnVsZXMsIHBhcnNlcikge1xuICAgICAgICByZXR1cm4gcnVsZXMubWFwKHggPT4gZ2V0Qk5GUnVsZSh4LCBwYXJzZXIpKS5qb2luKCcgJyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEJORkJvZHkobmFtZSwgcGFyc2VyKSB7XG4gICAgICAgIGxldCBydWxlID0gUGFyc2VyXzEuZmluZFJ1bGVCeU5hbWUobmFtZSwgcGFyc2VyKTtcbiAgICAgICAgaWYgKHJ1bGUpXG4gICAgICAgICAgICByZXR1cm4gcnVsZS5ibmYubWFwKHggPT4gZ2V0Qk5GQ2hvaWNlKHgsIHBhcnNlcikpLmpvaW4oJyB8ICcpO1xuICAgICAgICByZXR1cm4gJ1JVTEVfTk9UX0ZPVU5EIHsnICsgbmFtZSArICd9JztcbiAgICB9XG4gICAgZnVuY3Rpb24gZW1pdChwYXJzZXIpIHtcbiAgICAgICAgbGV0IGFjdW11bGF0b3IgPSBbXTtcbiAgICAgICAgcGFyc2VyLmdyYW1tYXJSdWxlcy5mb3JFYWNoKGwgPT4ge1xuICAgICAgICAgICAgaWYgKCEvXiUvLnRlc3QobC5uYW1lKSkge1xuICAgICAgICAgICAgICAgIGxldCByZWNvdmVyID0gbC5yZWNvdmVyID8gJyB7IHJlY292ZXJVbnRpbD0nICsgbC5yZWNvdmVyICsgJyB9JyA6ICcnO1xuICAgICAgICAgICAgICAgIGFjdW11bGF0b3IucHVzaChsLm5hbWUgKyAnIDo6PSAnICsgZ2V0Qk5GQm9keShsLm5hbWUsIHBhcnNlcikgKyByZWNvdmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhY3VtdWxhdG9yLmpvaW4oJ1xcbicpO1xuICAgIH1cbiAgICBCTkYuZW1pdCA9IGVtaXQ7XG4gICAgbGV0IHN1Yml0ZW1zID0gMDtcbiAgICBmdW5jdGlvbiByZXN0YXIodG90YWwsIHJlc3RhKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdyZWJlcmlhIHJlc3RhciAnICsgcmVzdGEgKyAnIGEgJyArIHRvdGFsKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEaWZmZXJlbmNlIG5vdCBzdXBwb3J0ZWQgeWV0Jyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnZlcnRSZWdleCh0eHQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAodHh0XG4gICAgICAgICAgICAucmVwbGFjZSgvI3goW2EtekEtWjAtOV17NH0pL2csICdcXFxcdSQxJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8jeChbYS16QS1aMC05XXszfSkvZywgJ1xcXFx1MCQxJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8jeChbYS16QS1aMC05XXsyfSkvZywgJ1xcXFx4JDEnKVxuICAgICAgICAgICAgLnJlcGxhY2UoLyN4KFthLXpBLVowLTldezF9KS9nLCAnXFxcXHgwJDEnKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFN1Ykl0ZW1zKHRtcFJ1bGVzLCBzZXEsIHBhcmVudE5hbWUsIHBhcmVudEF0dHJpYnV0ZXMpIHtcbiAgICAgICAgbGV0IGFudGVyaW9yID0gbnVsbDtcbiAgICAgICAgbGV0IGJuZlNlcSA9IFtdO1xuICAgICAgICBzZXEuY2hpbGRyZW4uZm9yRWFjaCgoeCwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKHgudHlwZSA9PSAnTWludXMnKSB7XG4gICAgICAgICAgICAgICAgcmVzdGFyKGFudGVyaW9yLCB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGRlY29yYXRpb24gPSBzZXEuY2hpbGRyZW5baSArIDFdO1xuICAgICAgICAgICAgZGVjb3JhdGlvbiA9IChkZWNvcmF0aW9uICYmIGRlY29yYXRpb24udHlwZSA9PSAnUHJpbWFyeURlY29yYXRpb24nICYmIGRlY29yYXRpb24udGV4dCkgfHwgJyc7XG4gICAgICAgICAgICBsZXQgcHJlRGVjb3JhdGlvbiA9ICcnO1xuICAgICAgICAgICAgaWYgKGFudGVyaW9yICYmIGFudGVyaW9yLnR5cGUgPT0gJ1ByaW1hcnlQcmVEZWNvcmF0aW9uJykge1xuICAgICAgICAgICAgICAgIHByZURlY29yYXRpb24gPSBhbnRlcmlvci50ZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHBpbm5lZCA9IHByZURlY29yYXRpb24gPT0gJ34nID8gMSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChwaW5uZWQpIHtcbiAgICAgICAgICAgICAgICBwcmVEZWNvcmF0aW9uID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2ggKHgudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ1N1Ykl0ZW0nOlxuICAgICAgICAgICAgICAgICAgICBsZXQgbmFtZSA9ICclJyArIChwYXJlbnROYW1lICsgc3ViaXRlbXMrKyk7XG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZVJ1bGUodG1wUnVsZXMsIHgsIG5hbWUsIHBhcmVudEF0dHJpYnV0ZXMpO1xuICAgICAgICAgICAgICAgICAgICBibmZTZXEucHVzaChwcmVEZWNvcmF0aW9uICsgbmFtZSArIGRlY29yYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdOQ05hbWUnOlxuICAgICAgICAgICAgICAgICAgICBibmZTZXEucHVzaChwcmVEZWNvcmF0aW9uICsgeC50ZXh0ICsgZGVjb3JhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ1N0cmluZ0xpdGVyYWwnOlxuICAgICAgICAgICAgICAgICAgICBpZiAoZGVjb3JhdGlvbiB8fCBwcmVEZWNvcmF0aW9uIHx8ICEvXlsnXCIvKClhLXpBLVowLTkmXy46PSwrKlxcLVxcXlxcXFxdKyQvLnRlc3QoeC50ZXh0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm5mU2VxLnB1c2gocHJlRGVjb3JhdGlvbiArIHgudGV4dCArIGRlY29yYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjIG9mIHgudGV4dC5zbGljZSgxLCAtMSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50QXR0cmlidXRlcyAmJiBwYXJlbnRBdHRyaWJ1dGVzW1wiaWdub3JlQ2FzZVwiXSA9PSBcInRydWVcIiAmJiAvW2EtekEtWl0vLnRlc3QoYykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm5mU2VxLnB1c2gobmV3IFJlZ0V4cChcIltcIiArIGMudG9VcHBlckNhc2UoKSArIGMudG9Mb3dlckNhc2UoKSArIFwiXVwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibmZTZXEucHVzaChuZXcgUmVnRXhwKFBhcnNlcl8xLmVzY2FwZVJlZ0V4cChjKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdDaGFyQ29kZSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnQ2hhckNsYXNzJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlY29yYXRpb24gfHwgcHJlRGVjb3JhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1J1bGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJyUnICsgKHBhcmVudE5hbWUgKyBzdWJpdGVtcysrKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBibmY6IFtbY29udmVydFJlZ2V4KHgudGV4dCldXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0bXBSdWxlcy5wdXNoKG5ld1J1bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm5mU2VxLnB1c2gocHJlRGVjb3JhdGlvbiArIG5ld1J1bGUubmFtZSArIGRlY29yYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm5mU2VxLnB1c2goY29udmVydFJlZ2V4KHgudGV4dCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ1ByaW1hcnlQcmVEZWNvcmF0aW9uJzpcbiAgICAgICAgICAgICAgICBjYXNlICdQcmltYXJ5RGVjb3JhdGlvbic6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignIEhPVyBTSE9VTEQgSSBQQVJTRSBUSElTPyAnICsgeC50eXBlICsgJyAtPiAnICsgSlNPTi5zdHJpbmdpZnkoeC50ZXh0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhbnRlcmlvciA9IHg7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYm5mU2VxO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVSdWxlKHRtcFJ1bGVzLCB0b2tlbiwgbmFtZSwgcGFyZW50QXR0cmlidXRlcyA9IHVuZGVmaW5lZCkge1xuICAgICAgICBsZXQgYXR0ck5vZGUgPSB0b2tlbi5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4LnR5cGUgPT0gJ0F0dHJpYnV0ZXMnKVswXTtcbiAgICAgICAgbGV0IGF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgaWYgKGF0dHJOb2RlKSB7XG4gICAgICAgICAgICBhdHRyTm9kZS5jaGlsZHJlbi5mb3JFYWNoKHggPT4ge1xuICAgICAgICAgICAgICAgIGxldCBuYW1lID0geC5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4LnR5cGUgPT0gJ05DTmFtZScpWzBdLnRleHQ7XG4gICAgICAgICAgICAgICAgaWYgKG5hbWUgaW4gYXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVG9rZW5FcnJvcl8xLlRva2VuRXJyb3IoJ0R1cGxpY2F0ZWQgYXR0cmlidXRlICcgKyBuYW1lLCB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXNbbmFtZV0gPSB4LmNoaWxkcmVuLmZpbHRlcih4ID0+IHgudHlwZSA9PSAnQXR0cmlidXRlVmFsdWUnKVswXS50ZXh0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGxldCBibmYgPSB0b2tlbi5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4LnR5cGUgPT0gJ1NlcXVlbmNlT3JEaWZmZXJlbmNlJykubWFwKHMgPT4gZ2V0U3ViSXRlbXModG1wUnVsZXMsIHMsIG5hbWUsIHBhcmVudEF0dHJpYnV0ZXMgPyBwYXJlbnRBdHRyaWJ1dGVzIDogYXR0cmlidXRlcykpO1xuICAgICAgICBsZXQgcnVsZSA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBibmZcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG5hbWUuaW5kZXhPZignJScpID09IDApXG4gICAgICAgICAgICBydWxlLmZyYWdtZW50ID0gdHJ1ZTtcbiAgICAgICAgaWYgKGF0dHJpYnV0ZXNbJ3JlY292ZXJVbnRpbCddKSB7XG4gICAgICAgICAgICBydWxlLnJlY292ZXIgPSBhdHRyaWJ1dGVzWydyZWNvdmVyVW50aWwnXTtcbiAgICAgICAgICAgIGlmIChydWxlLmJuZi5sZW5ndGggPiAxKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUb2tlbkVycm9yXzEuVG9rZW5FcnJvcignb25seSBvbmUtb3B0aW9uIHByb2R1Y3Rpb25zIGFyZSBzdWl0YWJsZSBmb3IgZXJyb3IgcmVjb3ZlcmluZycsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ3BpbicgaW4gYXR0cmlidXRlcykge1xuICAgICAgICAgICAgbGV0IG51bSA9IHBhcnNlSW50KGF0dHJpYnV0ZXNbJ3BpbiddKTtcbiAgICAgICAgICAgIGlmICghaXNOYU4obnVtKSkge1xuICAgICAgICAgICAgICAgIHJ1bGUucGlubmVkID0gbnVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJ1bGUuYm5mLmxlbmd0aCA+IDEpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRva2VuRXJyb3JfMS5Ub2tlbkVycm9yKCdvbmx5IG9uZS1vcHRpb24gcHJvZHVjdGlvbnMgYXJlIHN1aXRhYmxlIGZvciBwaW5uaW5nJywgdG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGlmICgnd3MnIGluIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIHJ1bGUuaW1wbGljaXRXcyA9IGF0dHJpYnV0ZXNbJ3dzJ10gIT0gJ2V4cGxpY2l0JztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJ1bGUuaW1wbGljaXRXcyA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcnVsZS5mcmFnbWVudCA9IHJ1bGUuZnJhZ21lbnQgfHwgYXR0cmlidXRlc1snZnJhZ21lbnQnXSA9PSAndHJ1ZSc7XG4gICAgICAgIHJ1bGUuc2ltcGxpZnlXaGVuT25lQ2hpbGRyZW4gPSBhdHRyaWJ1dGVzWydzaW1wbGlmeVdoZW5PbmVDaGlsZHJlbiddID09ICd0cnVlJztcbiAgICAgICAgdG1wUnVsZXMucHVzaChydWxlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0UnVsZXMoc291cmNlLCBwYXJzZXIgPSBCTkYuZGVmYXVsdFBhcnNlcikge1xuICAgICAgICBsZXQgYXN0ID0gcGFyc2VyLmdldEFTVChzb3VyY2UpO1xuICAgICAgICBpZiAoIWFzdClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IHBhcnNlICcgKyBzb3VyY2UpO1xuICAgICAgICBpZiAoYXN0LmVycm9ycyAmJiBhc3QuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgYXN0LmVycm9yc1swXTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaW1wbGljaXRXcyA9IG51bGw7XG4gICAgICAgIGxldCBhdHRyTm9kZSA9IGFzdC5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4LnR5cGUgPT0gJ0F0dHJpYnV0ZXMnKVswXTtcbiAgICAgICAgbGV0IGF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgaWYgKGF0dHJOb2RlKSB7XG4gICAgICAgICAgICBhdHRyTm9kZS5jaGlsZHJlbi5mb3JFYWNoKHggPT4ge1xuICAgICAgICAgICAgICAgIGxldCBuYW1lID0geC5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4LnR5cGUgPT0gJ05DTmFtZScpWzBdLnRleHQ7XG4gICAgICAgICAgICAgICAgaWYgKG5hbWUgaW4gYXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVG9rZW5FcnJvcl8xLlRva2VuRXJyb3IoJ0R1cGxpY2F0ZWQgYXR0cmlidXRlICcgKyBuYW1lLCB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXNbbmFtZV0gPSB4LmNoaWxkcmVuLmZpbHRlcih4ID0+IHgudHlwZSA9PSAnQXR0cmlidXRlVmFsdWUnKVswXS50ZXh0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGltcGxpY2l0V3MgPSBhdHRyaWJ1dGVzWyd3cyddID09ICdpbXBsaWNpdCc7XG4gICAgICAgIGxldCB0bXBSdWxlcyA9IFtdO1xuICAgICAgICBhc3QuY2hpbGRyZW4uZmlsdGVyKHggPT4geC50eXBlID09ICdQcm9kdWN0aW9uJykubWFwKCh4KSA9PiB7XG4gICAgICAgICAgICBsZXQgbmFtZSA9IHguY2hpbGRyZW4uZmlsdGVyKHggPT4geC50eXBlID09ICdOQ05hbWUnKVswXS50ZXh0O1xuICAgICAgICAgICAgY3JlYXRlUnVsZSh0bXBSdWxlcywgeCwgbmFtZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0bXBSdWxlcy5mb3JFYWNoKHJ1bGUgPT4ge1xuICAgICAgICAgICAgaWYgKHJ1bGUuaW1wbGljaXRXcyA9PT0gbnVsbClcbiAgICAgICAgICAgICAgICBydWxlLmltcGxpY2l0V3MgPSBpbXBsaWNpdFdzO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRtcFJ1bGVzO1xuICAgIH1cbiAgICBCTkYuZ2V0UnVsZXMgPSBnZXRSdWxlcztcbiAgICBmdW5jdGlvbiBUcmFuc2Zvcm0oc291cmNlLCBzdWJQYXJzZXIgPSBCTkYuZGVmYXVsdFBhcnNlcikge1xuICAgICAgICByZXR1cm4gZ2V0UnVsZXMoc291cmNlLmpvaW4oJycpLCBzdWJQYXJzZXIpO1xuICAgIH1cbiAgICBCTkYuVHJhbnNmb3JtID0gVHJhbnNmb3JtO1xuICAgIGNsYXNzIFBhcnNlciBleHRlbmRzIFBhcnNlcl8xLlBhcnNlciB7XG4gICAgICAgIGNvbnN0cnVjdG9yKHNvdXJjZSwgb3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3Qgc3ViUGFyc2VyID0gb3B0aW9ucyAmJiBvcHRpb25zLmRlYnVnUnVsZXNQYXJzZXIgPT09IHRydWUgPyBuZXcgUGFyc2VyXzEuUGFyc2VyKEJORi5SVUxFUywgeyBkZWJ1ZzogdHJ1ZSB9KSA6IEJORi5kZWZhdWx0UGFyc2VyO1xuICAgICAgICAgICAgc3VwZXIoZ2V0UnVsZXMoc291cmNlLCBzdWJQYXJzZXIpLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBlbWl0U291cmNlKCkge1xuICAgICAgICAgICAgcmV0dXJuIGVtaXQodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQk5GLlBhcnNlciA9IFBhcnNlcjtcbn0pKEJORiB8fCAoQk5GID0ge30pKTtcbmV4cG9ydHMuZGVmYXVsdCA9IEJORjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUN1c3RvbS5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBCTkZfMSA9IHJlcXVpcmUoXCIuL0JORlwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkJORlwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gQk5GXzEuZGVmYXVsdDsgfSB9KTtcbnZhciBXM0NFQk5GXzEgPSByZXF1aXJlKFwiLi9XM0NFQk5GXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVzNDXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBXM0NFQk5GXzEuZGVmYXVsdDsgfSB9KTtcbnZhciBDdXN0b21fMSA9IHJlcXVpcmUoXCIuL0N1c3RvbVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkN1c3RvbVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gQ3VzdG9tXzEuZGVmYXVsdDsgfSB9KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIFBhcnNlcl8xID0gcmVxdWlyZShcIi4vUGFyc2VyXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUGFyc2VyXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBQYXJzZXJfMS5QYXJzZXI7IH0gfSk7XG52YXIgVG9rZW5FcnJvcl8xID0gcmVxdWlyZShcIi4vVG9rZW5FcnJvclwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRva2VuRXJyb3JcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFRva2VuRXJyb3JfMS5Ub2tlbkVycm9yOyB9IH0pO1xuZXhwb3J0cy5HcmFtbWFycyA9IHJlcXVpcmUoXCIuL0dyYW1tYXJzXCIpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnBhcnNlRm9ybXVsYSA9IGV4cG9ydHMucGFyc2VBbmRBcHBseSA9IGV4cG9ydHMuU291cmNlID0gZXhwb3J0cy5Gb3JtdWxhID0gdm9pZCAwO1xuY29uc3QgbmV2ZXJ0aHJvd18xID0gcmVxdWlyZShcIi4uL25ldmVydGhyb3cvbmV2ZXJ0aHJvd1wiKTtcbmNvbnN0IGFsZ2VicmFpY19vcGVyYXRpb25fMSA9IHJlcXVpcmUoXCIuL2FsZ2VicmFpY19vcGVyYXRpb25cIik7XG5jb25zdCBhc3RfdXRpbHNfMSA9IHJlcXVpcmUoXCIuL2FzdF91dGlsc1wiKTtcbmNvbnN0IGNvbmRpdGlvbmFsX2Z1bmN0aW9uXzEgPSByZXF1aXJlKFwiLi9jb25kaXRpb25hbF9mdW5jdGlvblwiKTtcbmNvbnN0IGNvbnN0YW50XzEgPSByZXF1aXJlKFwiLi9jb25zdGFudFwiKTtcbmNvbnN0IGRlc3RpbmF0aW9uXzEgPSByZXF1aXJlKFwiLi9kZXN0aW5hdGlvblwiKTtcbmNvbnN0IGRpc3BsYXlfZGlyZWN0aXZlXzEgPSByZXF1aXJlKFwiLi9kaXNwbGF5X2RpcmVjdGl2ZVwiKTtcbmNvbnN0IHJhbmdlXzEgPSByZXF1aXJlKFwiLi9yYW5nZVwiKTtcbmNvbnN0IHJlZmVyZW5jZV8xID0gcmVxdWlyZShcIi4vcmVmZXJlbmNlXCIpO1xuY29uc3Qgc2luZ2xlX3BhcmFtX2Z1bmN0aW9uXzEgPSByZXF1aXJlKFwiLi9zaW5nbGVfcGFyYW1fZnVuY3Rpb25cIik7XG5jb25zdCBlYm5mXzEgPSByZXF1aXJlKFwiZWJuZlwiKTtcbmNvbnN0IGxvZGFzaF8xID0gcmVxdWlyZShcImxvZGFzaFwiKTtcbi8qKlxuICogVzNDIGdyYW1tYXIgZGVzY3JpYmluZyBhIHZhbGlkIGZvcm11bGEgYXQgdGhlIGJvdHRvbSBvZiBhIHRhYmxlLlxuICpcbiAqIFRoZSBsaWJyYXJ5IGJlaW5nIHVzZWQgdG8gcGFyc2UgdGhlIGZvcm11bGEgZG9lcyBub3Qgc3Vwb3J0IEVCTkYsIG9ubHkgQk5GLFxuICogc28gVzNDIHN5bnRheCB3YXMgdXNlZCBpbiBvcmRlciB0byBnZXQgYWNjZXNzIHRvIGV4dGVuZGVkIGZlYXR1cmVzLlxuICpcbiAqIFRoZSBwYXJzZXIgZ2VuZXJhdGVzIGEgUEVHIHBhcnNlciwgd2hpYyBpcyBub3QgYWJsZSB0byBoYW5kbGUgYW1iaWd1aXR5LiBUaGVcbiAqIG9yZGVyIG9mIGNvbnN0cnVjdGlvbnMgaXMgc2lnbmlmaWNhbnQuXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2x5cy1sYW5nL25vZGUtZWJuZi9pc3N1ZXMvMzRcbiAqL1xuY29uc3QgcGFyc2VyR3JhbW1hciA9IGBcbnRibGZtX2xpbmUgICA6Oj0gXCI8IS0tIFRCTEZNOiBcIiBmb3JtdWxhX2xpc3QgXCIgLS0+XCJcbmZvcm11bGFfbGlzdCA6Oj0gZm9ybXVsYSAoIFwiOjpcIiBmb3JtdWxhX2xpc3QgKT9cbmZvcm11bGEgICAgICA6Oj0gZGVzdGluYXRpb24gXCI9XCIgc291cmNlIGRpc3BsYXlfZGlyZWN0aXZlP1xuXG5zb3VyY2UgICAgICAgICAgIDo6PSByYW5nZSB8IHNvdXJjZV9yZWZlcmVuY2UgfCBzaW5nbGVfcGFyYW1fZnVuY3Rpb25fY2FsbCB8IGNvbmRpdGlvbmFsX2Z1bmN0aW9uX2NhbGwgfCBhbGdlYnJhaWNfb3BlcmF0aW9uIHwgZmxvYXQgfCByZWFsXG5yYW5nZSAgICAgICAgICAgIDo6PSBzb3VyY2VfcmVmZXJlbmNlIFwiLi5cIiBzb3VyY2VfcmVmZXJlbmNlXG5zb3VyY2VfcmVmZXJlbmNlIDo6PSBhYnNvbHV0ZV9yZWZlcmVuY2UgfCByZWxhdGl2ZV9yZWZlcmVuY2VcbmRlc3RpbmF0aW9uICAgICAgOjo9IHJhbmdlIHwgYWJzb2x1dGVfcmVmZXJlbmNlXG5cbnJlbGF0aXZlX3JlZmVyZW5jZSA6Oj0gKHJlbGF0aXZlX3JvdyB8IGFic29sdXRlX3JvdykgKHJlbGF0aXZlX2NvbHVtbiB8IGFic29sdXRlX2NvbHVtbikgfCByZWxhdGl2ZV9yb3cgfCByZWxhdGl2ZV9jb2x1bW5cbnJlbGF0aXZlX3JvdyA6Oj0gXCJAXCIgKCBcIi1cIiB8IFwiK1wiICkgaW50XG5yZWxhdGl2ZV9jb2x1bW4gOjo9IFwiJFwiICggXCItXCIgfCBcIitcIiApIGludFxuXG5hYnNvbHV0ZV9yZWZlcmVuY2UgOjo9IGFic29sdXRlX3JvdyBhYnNvbHV0ZV9jb2x1bW4gfCBhYnNvbHV0ZV9yb3cgfCBhYnNvbHV0ZV9jb2x1bW5cbmFic29sdXRlX3JvdyA6Oj0gXCJAXCIgKCBcIklcIiB8IFwiPFwiIHwgXCI+XCIgfCBpbnQgKVxuYWJzb2x1dGVfY29sdW1uIDo6PSBcIiRcIiAoIFwiPFwiIHwgXCI+XCIgfCBpbnQgKVxuXG5zaW5nbGVfcGFyYW1fZnVuY3Rpb25fY2FsbCA6Oj0gc2luZ2xlX3BhcmFtX2Z1bmN0aW9uIFwiKFwiIHNvdXJjZSBcIilcIiBcbnNpbmdsZV9wYXJhbV9mdW5jdGlvbiAgICAgIDo6PSBcIm1lYW5cIiB8IFwic3VtXCJcblxuY29uZGl0aW9uYWxfZnVuY3Rpb25fY2FsbCA6Oj0gXCJpZihcIiBwcmVkaWNhdGUgXCIsXCIgXCIgXCI/IHNvdXJjZSBcIixcIiBcIiBcIj8gc291cmNlIFwiKVwiXG5wcmVkaWNhdGUgICAgICAgICAgICAgICAgIDo6PSBzb3VyY2Vfd2l0aG91dF9yYW5nZSBjb25kaXRpb25hbF9vcGVyYXRvciBzb3VyY2Vfd2l0aG91dF9yYW5nZVxuc291cmNlX3dpdGhvdXRfcmFuZ2UgICAgICA6Oj0gc291cmNlX3JlZmVyZW5jZSB8IHNpbmdsZV9wYXJhbV9mdW5jdGlvbl9jYWxsIHwgY29uZGl0aW9uYWxfZnVuY3Rpb25fY2FsbCB8IGFsZ2VicmFpY19vcGVyYXRpb24gfCBmbG9hdCB8IHJlYWxcbmNvbmRpdGlvbmFsX29wZXJhdG9yICAgICAgOjo9IFwiPlwiIHwgXCI8XCIgfCBcIj49XCIgfCBcIjw9XCIgfCBcIj09XCIgfCBcIiE9XCJcblxuYWxnZWJyYWljX29wZXJhdGlvbiA6Oj0gXCIoXCIgc291cmNlIFwiIFwiPyBhbGdlYnJhaWNfb3BlcmF0b3IgXCIgXCI/IHNvdXJjZSBcIilcIlxuYWxnZWJyYWljX29wZXJhdG9yICA6Oj0gXCIrXCIgfCBcIi1cIiB8IFwiKlwiIHwgXCIvXCJcblxuZGlzcGxheV9kaXJlY3RpdmUgICAgICAgIDo6PSBcIjtcIiBkaXNwbGF5X2RpcmVjdGl2ZV9vcHRpb25cbmRpc3BsYXlfZGlyZWN0aXZlX29wdGlvbiA6Oj0gZm9ybWF0dGluZ19kaXJlY3RpdmVcbmZvcm1hdHRpbmdfZGlyZWN0aXZlICAgICA6Oj0gXCIlLlwiIGludCBcImZcIlxuXG5mbG9hdCA6Oj0gXCItXCI/IGludCBcIi5cIiBpbnRcbnJlYWwgOjo9IFwiLVwiPyBpbnRcbmludCAgOjo9IFswLTldK1xuYDtcbmNsYXNzIEZvcm11bGEge1xuICAgIGNvbnN0cnVjdG9yKGFzdCwgdGFibGUpIHtcbiAgICAgICAgdGhpcy5tZXJnZSA9ICh0YWJsZSkgPT4gdGhpcy5kZXN0aW5hdGlvbi5tZXJnZSh0aGlzLnNvdXJjZSwgdGFibGUpO1xuICAgICAgICBsZXQgZm9ybWF0dGVyID0gbmV3IGRpc3BsYXlfZGlyZWN0aXZlXzEuRGVmYXVsdEZvcm1hdHRlcigpO1xuICAgICAgICBpZiAoYXN0LmNoaWxkcmVuLmxlbmd0aCA9PT0gMykge1xuICAgICAgICAgICAgZm9ybWF0dGVyID0gbmV3IGRpc3BsYXlfZGlyZWN0aXZlXzEuRGlzcGxheURpcmVjdGl2ZShhc3QuY2hpbGRyZW5bMl0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gZGVzdGluYXRpb25fMS5uZXdEZXN0aW5hdGlvbihhc3QuY2hpbGRyZW5bMF0sIHRhYmxlLCBmb3JtYXR0ZXIpO1xuICAgICAgICBpZiAoZGVzdGluYXRpb24uaXNFcnIoKSkge1xuICAgICAgICAgICAgdGhyb3cgZGVzdGluYXRpb24uZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uLnZhbHVlO1xuICAgICAgICB0aGlzLnNvdXJjZSA9IG5ldyBTb3VyY2UoYXN0LmNoaWxkcmVuWzFdLCB0YWJsZSk7XG4gICAgfVxufVxuZXhwb3J0cy5Gb3JtdWxhID0gRm9ybXVsYTtcbmNsYXNzIFNvdXJjZSB7XG4gICAgY29uc3RydWN0b3IoYXN0LCB0YWJsZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogZ2V0VmFsdWUgcmV0dXJucyB0aGUgZXZhbHVhdGVkIHZhbHVlIGZvciB0aGlzIHNvdXJjZSByZWN1cnNpdmVseS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZ2V0VmFsdWUgPSAodGFibGUsIGN1cnJlbnRDZWxsKSA9PiB0aGlzLmxvY2F0aW9uRGVzY3JpcHRvci5nZXRWYWx1ZSh0YWJsZSwgY3VycmVudENlbGwpO1xuICAgICAgICBpZiAoYXN0LnR5cGUgIT09ICdzb3VyY2UnICYmIGFzdC50eXBlICE9PSAnc291cmNlX3dpdGhvdXRfcmFuZ2UnKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignSW52YWxpZCBBU1QgdG9rZW4gdHlwZSBvZiAnICsgYXN0LnR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhc3QuY2hpbGRyZW4ubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignVW5leHBlY3RlZCBjaGlsZHJlbiBsZW5ndGggaW4gU291cmNlJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyYW1DaGlsZCA9IGFzdC5jaGlsZHJlblswXTtcbiAgICAgICAgY29uc3QgdnAgPSBuZXdWYWx1ZVByb3ZpZGVyKHBhcmFtQ2hpbGQsIHRhYmxlKTtcbiAgICAgICAgaWYgKHZwLmlzRXJyKCkpIHtcbiAgICAgICAgICAgIHRocm93IHZwLmVycm9yO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9jYXRpb25EZXNjcmlwdG9yID0gdnAudmFsdWU7XG4gICAgfVxufVxuZXhwb3J0cy5Tb3VyY2UgPSBTb3VyY2U7XG5jb25zdCBuZXdWYWx1ZVByb3ZpZGVyID0gKGFzdCwgdGFibGUpID0+IHtcbiAgICB0cnkge1xuICAgICAgICBzd2l0Y2ggKGFzdC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdyYW5nZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgcmFuZ2VfMS5SYW5nZShhc3QsIHRhYmxlKSk7XG4gICAgICAgICAgICBjYXNlICdzb3VyY2VfcmVmZXJlbmNlJzpcbiAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAxKTtcbiAgICAgICAgICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIobGVuZ3RoRXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyByZWZlcmVuY2VfMS5SZWZlcmVuY2UoYXN0LmNoaWxkcmVuWzBdLCB0YWJsZSkpO1xuICAgICAgICAgICAgY2FzZSAnc2luZ2xlX3BhcmFtX2Z1bmN0aW9uX2NhbGwnOlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobmV3IHNpbmdsZV9wYXJhbV9mdW5jdGlvbl8xLlNpbmdsZVBhcmFtRnVuY3Rpb25DYWxsKGFzdCwgdGFibGUpKTtcbiAgICAgICAgICAgIGNhc2UgJ2NvbmRpdGlvbmFsX2Z1bmN0aW9uX2NhbGwnOlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobmV3IGNvbmRpdGlvbmFsX2Z1bmN0aW9uXzEuQ29uZGl0aW9uYWxGdW5jdGlvbkNhbGwoYXN0LCB0YWJsZSkpO1xuICAgICAgICAgICAgY2FzZSAnYWxnZWJyYWljX29wZXJhdGlvbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgYWxnZWJyYWljX29wZXJhdGlvbl8xLkFsZ2VicmFpY09wZXJhdGlvbihhc3QsIHRhYmxlKSk7XG4gICAgICAgICAgICBjYXNlICdyZWFsJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyBjb25zdGFudF8xLkNvbnN0YW50KGFzdCwgdGFibGUpKTtcbiAgICAgICAgICAgIGNhc2UgJ2Zsb2F0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyBjb25zdGFudF8xLkNvbnN0YW50KGFzdCwgdGFibGUpKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ1VucmVjb2duaXplZCB2YWx1ZVByb3ZpZGVyIHR5cGUgJyArIGFzdC50eXBlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIoZXJyb3IpO1xuICAgIH1cbn07XG5jb25zdCBwYXJzZUFuZEFwcGx5ID0gKGZvcm11bGFMaW5lcywgdGFibGUpID0+IHtcbiAgICAvLyBQYXJzZSBlYWNoIGZvcm11bGEgbGluZSwgZmxhdHRlbmluZyB0aGUgcmVzdWx0aW5nIGxpc3RzIG9mIGZvcm11bGFzIGludG8gYVxuICAgIC8vIHNpbmdsZSBsaXN0LCBidXQgcmV0dXJuaW5nIGFuIGVycm9yIGlmIGFueSBmb3JtdWxhIGZhaWxzIHRvIHBhcnNlLlxuICAgIGNvbnN0IGZvcm11bGFzID0gZm9ybXVsYUxpbmVzLnJlZHVjZSgocHJldiwgZm9ybXVsYUxpbmUpID0+IHByZXYuYW5kVGhlbigoY3VycmVudEZvcm11bGFzKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0Zvcm11bGFzID0gZXhwb3J0cy5wYXJzZUZvcm11bGEoZm9ybXVsYUxpbmUsIHRhYmxlKTtcbiAgICAgICAgaWYgKG5ld0Zvcm11bGFzLmlzRXJyKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXdGb3JtdWxhcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKGxvZGFzaF8xLmNvbmNhdChuZXdGb3JtdWxhcy52YWx1ZSwgY3VycmVudEZvcm11bGFzKSk7XG4gICAgfSksIG5ldmVydGhyb3dfMS5vayhbXSkpO1xuICAgIC8vIElmIHRoZXJlIGlzIG5vIGVycm9yLFxuICAgIHJldHVybiBmb3JtdWxhcy5hbmRUaGVuKChpbm5lckZvcm11bGFzKSA9PiBcbiAgICAvLyBmb3IgZWFjaCBmb3JtdWxhXG4gICAgaW5uZXJGb3JtdWxhcy5yZWR1Y2VSaWdodCgocHJldlZhbHVlLCBmb3JtdWxhKSA9PiBcbiAgICAvLyBJZiB0aGUgcHJldmlvdXMgZm9ybXVsYSBkaWRuJ3QgZ2l2ZSBhbiBlcnJvclxuICAgIHByZXZWYWx1ZS5hbmRUaGVuKChwcmV2VGFibGUpID0+IFxuICAgIC8vIGF0dGVtcHQgdG8gYXBwbHkgdGhpcyBmb3JtdWxhIHRvIHRoZSB0YWJsZSBhbmQgcmV0dXJuIHRoZSByZXN1bHRcbiAgICBmb3JtdWxhLm1lcmdlKHByZXZUYWJsZSkpLCBcbiAgICAvLyBTdGFydCB3aXRoIHRoZSBjdXJyZW50IHRhYmxlIHN0YXRlXG4gICAgbmV2ZXJ0aHJvd18xLm9rKHRhYmxlKSkpO1xufTtcbmV4cG9ydHMucGFyc2VBbmRBcHBseSA9IHBhcnNlQW5kQXBwbHk7XG4vKipcbiAqIFBhcnNlIHRoZSBwcm92aWRlZCBsaW5lLCByZXR1cm5pbmcgYW55IGZvdW5kIGZvcm11bGFzLiBBIHNpbmdsZSBsaW5lIG1heVxuICogY29udGFpbiB6ZXJvIG9yIG1vcmUgZm9ybXVsYXMuXG4gKlxuICogQHBhcmFtIGxpbmUgQSBsaW5lIG9mIHRoZSBmb3JtIGA8IS0tIFRCRk06IHtGT1JNVUxBfTo6e0ZPUk1VTEF9IC0tPmBcbiAqL1xuY29uc3QgcGFyc2VGb3JtdWxhID0gKGxpbmUsIHRhYmxlKSA9PiB7XG4gICAgY29uc3QgcGFyc2VyID0gbmV3IGVibmZfMS5HcmFtbWFycy5XM0MuUGFyc2VyKHBhcnNlckdyYW1tYXIpO1xuICAgIGNvbnN0IGFzdCA9IHBhcnNlci5nZXRBU1QobGluZSk7XG4gICAgLy8gVE9ETzogRGV0ZXJtaW5lIGhvdyB0byByZXR1cm4gZXJyb3JzIHdoZW4gYSBmb3JtdWxhLWxpa2Ugc3RyaW5nXG4gICAgLy8gICAgICAgaXMgbm90IGFjdHVhbGx5IGEgdmFsaWQgZm9ybXVsYS5cbiAgICBpZiAoIWFzdCkge1xuICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihuZXcgRXJyb3IoYEZvcm11bGEgJyR7bGluZX0nIGNvdWxkIG5vdCBiZSBwYXJzZWRgKSk7XG4gICAgfVxuICAgIGNvbnN0IHR5cGVFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShhc3QsICd0YmxmbV9saW5lJyk7XG4gICAgaWYgKHR5cGVFcnJvcikge1xuICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycih0eXBlRXJyb3IpO1xuICAgIH1cbiAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAxKTtcbiAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIobGVuZ3RoRXJyb3IpO1xuICAgIH1cbiAgICBsZXQgdW5wYXJzZWRGb3JtdWxhcyA9IGFzdC5jaGlsZHJlblswXS5jaGlsZHJlbjtcbiAgICBjb25zdCBmb3JtdWxhcyA9IFtdO1xuICAgIHRyeSB7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGZvcm11bGFzLnB1c2gobmV3IEZvcm11bGEodW5wYXJzZWRGb3JtdWxhc1swXSwgdGFibGUpKTtcbiAgICAgICAgICAgIGlmICh1bnBhcnNlZEZvcm11bGFzLmxlbmd0aCA+IDEgJiYgdW5wYXJzZWRGb3JtdWxhc1sxXS50eXBlID09PSAnZm9ybXVsYV9saXN0Jykge1xuICAgICAgICAgICAgICAgIHVucGFyc2VkRm9ybXVsYXMgPSB1bnBhcnNlZEZvcm11bGFzWzFdLmNoaWxkcmVuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdW5wYXJzZWRGb3JtdWxhcyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IHdoaWxlICh1bnBhcnNlZEZvcm11bGFzLmxlbmd0aCA+IDApO1xuICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKGZvcm11bGFzKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKGVycm9yKTtcbiAgICB9XG59O1xuZXhwb3J0cy5wYXJzZUZvcm11bGEgPSBwYXJzZUZvcm11bGE7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuVGFibGUgPSB2b2lkIDA7XG5jb25zdCBjYWxjXzEgPSByZXF1aXJlKFwiLi9jYWxjL2NhbGNcIik7XG5jb25zdCBmb2N1c18xID0gcmVxdWlyZShcIi4vZm9jdXNcIik7XG5jb25zdCBwb2ludF8xID0gcmVxdWlyZShcIi4vcG9pbnRcIik7XG5jb25zdCByYW5nZV8xID0gcmVxdWlyZShcIi4vcmFuZ2VcIik7XG4vKipcbiAqIEEgYFRhYmxlYCBvYmplY3QgcmVwcmVzZW50cyBhIHRhYmxlLlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIFRhYmxlIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGBUYWJsZWAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvd3MgLSBBbiBhcnJheSBvZiByb3dzIHRoYXQgdGhlIHRhYmxlIGNvbnRhaW5zLlxuICAgICAqIEBwYXJhbSBmb3JtdWxhcyAtIEFuIGFycmF5IG9mIGZvcm11bGFzIGF0dGFjaGVkIHRvIHRoZSB0YWJsZS5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihyb3dzKSB7XG4gICAgICAgIHRoaXMuX3Jvd3MgPSByb3dzLnNsaWNlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG51bWJlciBvZiByb3dzIGluIHRoZSB0YWJsZS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2Ygcm93cy5cbiAgICAgKi9cbiAgICBnZXRIZWlnaHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3dzLmxlbmd0aDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbWF4aW11bSB3aWR0aCBvZiB0aGUgcm93cyBpbiB0aGUgdGFibGUuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUaGUgbWF4aW11bSB3aWR0aCBvZiB0aGUgcm93cy5cbiAgICAgKi9cbiAgICBnZXRXaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd3NcbiAgICAgICAgICAgIC5tYXAoKHJvdykgPT4gcm93LmdldFdpZHRoKCkpXG4gICAgICAgICAgICAucmVkdWNlKCh4LCB5KSA9PiBNYXRoLm1heCh4LCB5KSwgMCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHdpZHRoIG9mIHRoZSBoZWFkZXIgcm93LlxuICAgICAqIEFzc3VtZXMgdGhhdCBpdCBpcyBjYWxsZWQgb24gYSB2YWxpZCB0YWJsZSB3aXRoIGEgaGVhZGVyIHJvdy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSB3aWR0aCBvZiB0aGUgaGVhZGVyIHJvd1xuICAgICAqL1xuICAgIGdldEhlYWRlcldpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm93c1swXS5nZXRXaWR0aCgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSByb3dzIHRoYXQgdGhlIHRhYmxlIGNvbnRhaW5zLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgdGhlIHJvd3MuXG4gICAgICovXG4gICAgZ2V0Um93cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd3Muc2xpY2UoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZGVsaW1pdGVyIHJvdyBvZiB0aGUgdGFibGUuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUaGUgZGVsaW1pdGVyIHJvdzsgYHVuZGVmaW5lZGAgaWYgdGhlcmUgaXMgbm90IGRlbGltaXRlciByb3cuXG4gICAgICovXG4gICAgZ2V0RGVsaW1pdGVyUm93KCkge1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLl9yb3dzWzFdO1xuICAgICAgICBpZiAocm93ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvdy5pc0RlbGltaXRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gcm93O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgYSBjZWxsIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm93SW5kZXggLSBSb3cgaW5kZXggb2YgdGhlIGNlbGwuXG4gICAgICogQHBhcmFtIGNvbHVtbkluZGV4IC0gQ29sdW1uIGluZGV4IG9mIHRoZSBjZWxsLlxuICAgICAqIEByZXR1cm5zIFRoZSBjZWxsIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXg7IGB1bmRlZmluZWRgIGlmIG5vdCBmb3VuZC5cbiAgICAgKi9cbiAgICBnZXRDZWxsQXQocm93SW5kZXgsIGNvbHVtbkluZGV4KSB7XG4gICAgICAgIGNvbnN0IHJvdyA9IHRoaXMuX3Jvd3Nbcm93SW5kZXhdO1xuICAgICAgICBpZiAocm93ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJvdy5nZXRDZWxsQXQoY29sdW1uSW5kZXgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjZWxsIGF0IHRoZSBmb2N1cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmb2N1cyAtIEZvY3VzIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyBUaGUgY2VsbCBhdCB0aGUgZm9jdXM7IGB1bmRlZmluZWRgIGlmIG5vdCBmb3VuZC5cbiAgICAgKi9cbiAgICBnZXRGb2N1c2VkQ2VsbChmb2N1cykge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDZWxsQXQoZm9jdXMucm93LCBmb2N1cy5jb2x1bW4pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyB0aGUgdGFibGUgdG8gYW4gYXJyYXkgb2YgdGV4dCByZXByZXNlbnRhdGlvbnMgb2YgdGhlIHJvd3MuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB0ZXh0IHJlcHJlc2VudGF0aW9ucyBvZiB0aGUgcm93cy5cbiAgICAgKi9cbiAgICB0b0xpbmVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm93cy5tYXAoKHJvdykgPT4gcm93LnRvVGV4dCgpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyBhIGNlbGwgaW4gdGhlIHRhYmxlIHRvIGEgbmV3IHZhbHVlLCByZXR1cm5pbmcgYSBjb3B5IG9mIHRoZSB0YWJsZVxuICAgICAqIHdpdGggdGhlIG1vZGlmaWVkIHZhbHVlLlxuICAgICAqXG4gICAgICogSWYgYW4gaW52YWxpZCBpbmRleCBpcyBwcm92aWRlZCwgdGhlIHRhYmxlIHdpbGwgYmUgdW5jaGFuZ2VkLlxuICAgICAqL1xuICAgIHNldENlbGxBdChyb3dJbmRleCwgY29sdW1uSW5kZXgsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHJvd3MgPSB0aGlzLmdldFJvd3MoKTsgLy8gYSBjb3B5XG4gICAgICAgIHJvd3Nbcm93SW5kZXhdID0gcm93c1tyb3dJbmRleF0uc2V0Q2VsbEF0KGNvbHVtbkluZGV4LCB2YWx1ZSk7XG4gICAgICAgIHJldHVybiBuZXcgVGFibGUocm93cyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIGEgZm9jdXMgZnJvbSBhIHBvaW50IGluIHRoZSB0ZXh0IGVkaXRvci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwb3MgLSBBIHBvaW50IGluIHRoZSB0ZXh0IGVkaXRvci5cbiAgICAgKiBAcGFyYW0gcm93T2Zmc2V0IC0gVGhlIHJvdyBpbmRleCB3aGVyZSB0aGUgdGFibGUgc3RhcnRzIGluIHRoZSB0ZXh0IGVkaXRvci5cbiAgICAgKiBAcmV0dXJucyBBIGZvY3VzIG9iamVjdCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBzcGVjaWZpZWQgcG9pbnQ7XG4gICAgICogYHVuZGVmaW5lZGAgaWYgdGhlIHJvdyBpbmRleCBpcyBvdXQgb2YgYm91bmRzLlxuICAgICAqL1xuICAgIGZvY3VzT2ZQb3NpdGlvbihwb3MsIHJvd09mZnNldCkge1xuICAgICAgICBjb25zdCByb3dJbmRleCA9IHBvcy5yb3cgLSByb3dPZmZzZXQ7XG4gICAgICAgIGNvbnN0IHJvdyA9IHRoaXMuX3Jvd3Nbcm93SW5kZXhdO1xuICAgICAgICBpZiAocm93ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvcy5jb2x1bW4gPCByb3cubWFyZ2luTGVmdC5sZW5ndGggKyAxKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IGZvY3VzXzEuRm9jdXMocm93SW5kZXgsIC0xLCBwb3MuY29sdW1uKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjZWxsV2lkdGhzID0gcm93LmdldENlbGxzKCkubWFwKChjZWxsKSA9PiBjZWxsLnJhd0NvbnRlbnQubGVuZ3RoKTtcbiAgICAgICAgbGV0IGNvbHVtblBvcyA9IHJvdy5tYXJnaW5MZWZ0Lmxlbmd0aCArIDE7IC8vIGxlZnQgbWFyZ2luICsgYSBwaXBlXG4gICAgICAgIGxldCBjb2x1bW5JbmRleCA9IDA7XG4gICAgICAgIGZvciAoOyBjb2x1bW5JbmRleCA8IGNlbGxXaWR0aHMubGVuZ3RoOyBjb2x1bW5JbmRleCsrKSB7XG4gICAgICAgICAgICBpZiAoY29sdW1uUG9zICsgY2VsbFdpZHRoc1tjb2x1bW5JbmRleF0gKyAxID4gcG9zLmNvbHVtbikge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29sdW1uUG9zICs9IGNlbGxXaWR0aHNbY29sdW1uSW5kZXhdICsgMTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvZmZzZXQgPSBwb3MuY29sdW1uIC0gY29sdW1uUG9zO1xuICAgICAgICByZXR1cm4gbmV3IGZvY3VzXzEuRm9jdXMocm93SW5kZXgsIGNvbHVtbkluZGV4LCBvZmZzZXQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyBhIHBvc2l0aW9uIGluIHRoZSB0ZXh0IGVkaXRvciBmcm9tIGEgZm9jdXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZm9jdXMgLSBBIGZvY3VzIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gcm93T2Zmc2V0IC0gVGhlIHJvdyBpbmRleCB3aGVyZSB0aGUgdGFibGUgc3RhcnRzIGluIHRoZSB0ZXh0IGVkaXRvci5cbiAgICAgKiBAcmV0dXJucyBBIHBvc2l0aW9uIGluIHRoZSB0ZXh0IGVkaXRvciB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBmb2N1cztcbiAgICAgKiBgdW5kZWZpbmVkYCBpZiB0aGUgZm9jdXNlZCByb3cgIGlzIG91dCBvZiB0aGUgdGFibGUuXG4gICAgICovXG4gICAgcG9zaXRpb25PZkZvY3VzKGZvY3VzLCByb3dPZmZzZXQpIHtcbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5fcm93c1tmb2N1cy5yb3ddO1xuICAgICAgICBpZiAocm93ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm93UG9zID0gZm9jdXMucm93ICsgcm93T2Zmc2V0O1xuICAgICAgICBpZiAoZm9jdXMuY29sdW1uIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBwb2ludF8xLlBvaW50KHJvd1BvcywgZm9jdXMub2Zmc2V0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjZWxsV2lkdGhzID0gcm93LmdldENlbGxzKCkubWFwKChjZWxsKSA9PiBjZWxsLnJhd0NvbnRlbnQubGVuZ3RoKTtcbiAgICAgICAgY29uc3QgbWF4SW5kZXggPSBNYXRoLm1pbihmb2N1cy5jb2x1bW4sIGNlbGxXaWR0aHMubGVuZ3RoKTtcbiAgICAgICAgbGV0IGNvbHVtblBvcyA9IHJvdy5tYXJnaW5MZWZ0Lmxlbmd0aCArIDE7XG4gICAgICAgIGZvciAobGV0IGNvbHVtbkluZGV4ID0gMDsgY29sdW1uSW5kZXggPCBtYXhJbmRleDsgY29sdW1uSW5kZXgrKykge1xuICAgICAgICAgICAgY29sdW1uUG9zICs9IGNlbGxXaWR0aHNbY29sdW1uSW5kZXhdICsgMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IHBvaW50XzEuUG9pbnQocm93UG9zLCBjb2x1bW5Qb3MgKyBmb2N1cy5vZmZzZXQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyBhIHNlbGVjdGlvbiByYW5nZSBmcm9tIGEgZm9jdXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZm9jdXMgLSBBIGZvY3VzIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gcm93T2Zmc2V0IC0gVGhlIHJvdyBpbmRleCB3aGVyZSB0aGUgdGFibGUgc3RhcnRzIGluIHRoZSB0ZXh0IGVkaXRvci5cbiAgICAgKiBAcmV0dXJucyBBIHJhbmdlIHRvIGJlIHNlbGVjdGVkIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIGZvY3VzO1xuICAgICAqIGB1bmRlZmluZWRgIGlmIHRoZSBmb2N1cyBkb2VzIG5vdCBzcGVjaWZ5IGFueSBjZWxsIG9yIHRoZSBzcGVjaWZpZWQgY2VsbCBpcyBlbXB0eS5cbiAgICAgKi9cbiAgICBzZWxlY3Rpb25SYW5nZU9mRm9jdXMoZm9jdXMsIHJvd09mZnNldCkge1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLl9yb3dzW2ZvY3VzLnJvd107XG4gICAgICAgIGlmIChyb3cgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjZWxsID0gcm93LmdldENlbGxBdChmb2N1cy5jb2x1bW4pO1xuICAgICAgICBpZiAoY2VsbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjZWxsLmNvbnRlbnQgPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJvd1BvcyA9IGZvY3VzLnJvdyArIHJvd09mZnNldDtcbiAgICAgICAgY29uc3QgY2VsbFdpZHRocyA9IHJvdy5nZXRDZWxscygpLm1hcCgoY2VsbCkgPT4gY2VsbC5yYXdDb250ZW50Lmxlbmd0aCk7XG4gICAgICAgIGxldCBjb2x1bW5Qb3MgPSByb3cubWFyZ2luTGVmdC5sZW5ndGggKyAxO1xuICAgICAgICBmb3IgKGxldCBjb2x1bW5JbmRleCA9IDA7IGNvbHVtbkluZGV4IDwgZm9jdXMuY29sdW1uOyBjb2x1bW5JbmRleCsrKSB7XG4gICAgICAgICAgICBjb2x1bW5Qb3MgKz0gY2VsbFdpZHRoc1tjb2x1bW5JbmRleF0gKyAxO1xuICAgICAgICB9XG4gICAgICAgIGNvbHVtblBvcyArPSBjZWxsLnBhZGRpbmdMZWZ0O1xuICAgICAgICByZXR1cm4gbmV3IHJhbmdlXzEuUmFuZ2UobmV3IHBvaW50XzEuUG9pbnQocm93UG9zLCBjb2x1bW5Qb3MpLCBuZXcgcG9pbnRfMS5Qb2ludChyb3dQb3MsIGNvbHVtblBvcyArIGNlbGwuY29udGVudC5sZW5ndGgpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRXZhbHVhdGUgdGhlIGZvcm11bGEsIGFwcGx5aW5nIHRoZSByZXN1bHRzIHRvIHRoaXMgdGFibGUgYW5kIHJldHVybmluZyB0aGVcbiAgICAgKiBjaGFuZ2VzIGFzIGEgbmV3IHRhYmxlLlxuICAgICAqL1xuICAgIGFwcGx5Rm9ybXVsYXMoZm9ybXVsYUxpbmVzKSB7XG4gICAgICAgIHJldHVybiBjYWxjXzEucGFyc2VBbmRBcHBseShmb3JtdWxhTGluZXMsIHRoaXMpO1xuICAgIH1cbn1cbmV4cG9ydHMuVGFibGUgPSBUYWJsZTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZWFkVGFibGUgPSBleHBvcnRzLl9tYXJnaW5SZWdleCA9IGV4cG9ydHMubWFyZ2luUmVnZXhTcmMgPSBleHBvcnRzLl9yZWFkUm93ID0gZXhwb3J0cy5fc3BsaXRDZWxscyA9IHZvaWQgMDtcbmNvbnN0IHRhYmxlXzEgPSByZXF1aXJlKFwiLi90YWJsZVwiKTtcbmNvbnN0IHRhYmxlX2NlbGxfMSA9IHJlcXVpcmUoXCIuL3RhYmxlLWNlbGxcIik7XG5jb25zdCB0YWJsZV9yb3dfMSA9IHJlcXVpcmUoXCIuL3RhYmxlLXJvd1wiKTtcbi8qKlxuICogU3BsaXRzIGEgdGV4dCBpbnRvIGNlbGxzLlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IF9zcGxpdENlbGxzID0gKHRleHQpID0+IHtcbiAgICBjb25zdCBjZWxscyA9IFtdO1xuICAgIGxldCBidWYgPSAnJztcbiAgICBsZXQgcmVzdCA9IHRleHQ7XG4gICAgd2hpbGUgKHJlc3QgIT09ICcnKSB7XG4gICAgICAgIHN3aXRjaCAocmVzdFswXSkge1xuICAgICAgICAgICAgY2FzZSAnYCc6XG4gICAgICAgICAgICAgICAgLy8gcmVhZCBjb2RlIHNwYW5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0TWF0Y2ggPSByZXN0Lm1hdGNoKC9eYCovKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0TWF0Y2ggPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhc2Ugc3RhdGVtZW50IGVuc3VyZXMgZmlyc3QgY2hhciBpcyBhIGAgYW5kIHdlIGNhbm5vdCBnZXQgaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMganVzdCBzYXRpc2ZpZXMgdGhlIGNvbXBpbGVyLlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBzdGFydE1hdGNoWzBdO1xuICAgICAgICAgICAgICAgICAgICBsZXQgYnVmMSA9IHN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdDEgPSByZXN0LnN1YnN0cihzdGFydC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgY2xvc2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChyZXN0MSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN0MVswXSA9PT0gJ2AnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kTWF0Y2ggPSByZXN0MS5tYXRjaCgvXmAqLyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuZE1hdGNoID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhc2Ugc3RhdGVtZW50IGVuc3VyZXMgZmlyc3QgY2hhciBpcyBhIGAgYW5kIHdlIGNhbm5vdCBnZXQgaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBqdXN0IHNhdGlzZmllcyB0aGUgY29tcGlsZXIuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBlbmRNYXRjaFswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYxICs9IGVuZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0MSA9IHJlc3QxLnN1YnN0cihlbmQubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5kLmxlbmd0aCA9PT0gc3RhcnQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZjEgKz0gcmVzdDFbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdDEgPSByZXN0MS5zdWJzdHIoMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNsb3NlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmICs9IGJ1ZjE7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN0ID0gcmVzdDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWYgKz0gJ2AnO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdCA9IHJlc3Quc3Vic3RyKDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnXFxcXCc6XG4gICAgICAgICAgICAgICAgLy8gZXNjYXBlIG5leHQgY2hhcmFjdGVyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3QubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgYnVmICs9IHJlc3Quc3Vic3RyKDAsIDIpO1xuICAgICAgICAgICAgICAgICAgICByZXN0ID0gcmVzdC5zdWJzdHIoMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBidWYgKz0gJ1xcXFwnO1xuICAgICAgICAgICAgICAgICAgICByZXN0ID0gcmVzdC5zdWJzdHIoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnWyc6XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgZW5jb3VudGVyIGEgcmVuYW1lZCBbW2xpbmt8TGlua11dLCBhdXRvbWF0aWNhbGx5IGVzY2FwZSB0aGUgcGlwZVxuICAgICAgICAgICAgICAgIGJ1ZiArPSAnWyc7XG4gICAgICAgICAgICAgICAgcmVzdCA9IHJlc3Quc3Vic3RyKDEpO1xuICAgICAgICAgICAgICAgIGlmICgvXFxbW15cXFxcfFxcXV0rXFx8W158XFxdXStdXS8udGVzdChyZXN0KSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpZHggPSByZXN0LmluZGV4T2YoJ3wnKTtcbiAgICAgICAgICAgICAgICAgICAgYnVmICs9IHJlc3Quc2xpY2UoMCwgaWR4KTtcbiAgICAgICAgICAgICAgICAgICAgYnVmICs9ICdcXFxcfCc7XG4gICAgICAgICAgICAgICAgICAgIHJlc3QgPSByZXN0LnN1YnN0cihpZHggKyAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd8JzpcbiAgICAgICAgICAgICAgICAvLyBmbHVzaCBidWZmZXJcbiAgICAgICAgICAgICAgICBjZWxscy5wdXNoKGJ1Zik7XG4gICAgICAgICAgICAgICAgYnVmID0gJyc7XG4gICAgICAgICAgICAgICAgcmVzdCA9IHJlc3Quc3Vic3RyKDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBidWYgKz0gcmVzdFswXTtcbiAgICAgICAgICAgICAgICByZXN0ID0gcmVzdC5zdWJzdHIoMSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2VsbHMucHVzaChidWYpO1xuICAgIHJldHVybiBjZWxscztcbn07XG5leHBvcnRzLl9zcGxpdENlbGxzID0gX3NwbGl0Q2VsbHM7XG4vKipcbiAqIFJlYWRzIGEgdGFibGUgcm93LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gdGV4dCAtIEEgdGV4dC5cbiAqIEBwYXJhbSBbbGVmdE1hcmdpblJlZ2V4PS9eXFxzKiQvXSAtIEEgcmVndWxhciBleHByZXNzaW9uIG9iamVjdCB0aGF0IG1hdGNoZXMgbGVmdCBtYXJnaW4uXG4gKi9cbmNvbnN0IF9yZWFkUm93ID0gKHRleHQsIGxlZnRNYXJnaW5SZWdleCA9IC9eXFxzKiQvKSA9PiB7XG4gICAgbGV0IGNlbGxzID0gZXhwb3J0cy5fc3BsaXRDZWxscyh0ZXh0KTtcbiAgICBsZXQgbWFyZ2luTGVmdDtcbiAgICBpZiAoY2VsbHMubGVuZ3RoID4gMCAmJiBsZWZ0TWFyZ2luUmVnZXgudGVzdChjZWxsc1swXSkpIHtcbiAgICAgICAgbWFyZ2luTGVmdCA9IGNlbGxzWzBdO1xuICAgICAgICBjZWxscyA9IGNlbGxzLnNsaWNlKDEpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgbWFyZ2luTGVmdCA9ICcnO1xuICAgIH1cbiAgICBsZXQgbWFyZ2luUmlnaHQ7XG4gICAgaWYgKGNlbGxzLmxlbmd0aCA+IDEgJiYgL15cXHMqJC8udGVzdChjZWxsc1tjZWxscy5sZW5ndGggLSAxXSkpIHtcbiAgICAgICAgbWFyZ2luUmlnaHQgPSBjZWxsc1tjZWxscy5sZW5ndGggLSAxXTtcbiAgICAgICAgY2VsbHMgPSBjZWxscy5zbGljZSgwLCBjZWxscy5sZW5ndGggLSAxKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIG1hcmdpblJpZ2h0ID0gJyc7XG4gICAgfVxuICAgIHJldHVybiBuZXcgdGFibGVfcm93XzEuVGFibGVSb3coY2VsbHMubWFwKChjZWxsKSA9PiBuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbChjZWxsKSksIG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0KTtcbn07XG5leHBvcnRzLl9yZWFkUm93ID0gX3JlYWRSb3c7XG4vKipcbiAqIENyZWF0ZXMgYSByZWdleCBzb3VyY2Ugc3RyaW5nIG9mIG1hcmdpbiBjaGFyYWN0ZXIgY2xhc3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBjaGFycyAtIEEgc2V0IG9mIGFkZGl0aW9uYWwgbWFyZ2luIGNoYXJhY3RlcnMuXG4gKiBBIHBpcGUgYHxgLCBhIGJhY2tzbGFzaCBgXFxgLCBhbmQgYSBiYWNrcXVvdGUgd2lsbCBiZSBpZ25vcmVkLlxuICogQHJldHVybiBBIHJlZ2V4IHNvdXJjZSBzdHJpbmcuXG4gKi9cbmNvbnN0IG1hcmdpblJlZ2V4U3JjID0gKGNoYXJzKSA9PiB7XG4gICAgbGV0IGNzID0gJyc7XG4gICAgLy8gZm9yIChjb25zdCBjIGNoYXJzLnZhbHVlcygpKSB7XG4gICAgY2hhcnMuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICBpZiAoYyAhPT0gJ3wnICYmIGMgIT09ICdcXFxcJyAmJiBjICE9PSAnYCcpIHtcbiAgICAgICAgICAgIGNzICs9IGBcXFxcdXske2MuY29kZVBvaW50QXQoMCkudG9TdHJpbmcoMTYpfX1gO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGBbXFxcXHMke2NzfV0qYDtcbn07XG5leHBvcnRzLm1hcmdpblJlZ2V4U3JjID0gbWFyZ2luUmVnZXhTcmM7XG4vKipcbiAqIENyZWF0ZXMgYSByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0IHRoYXQgbWF0Y2hlcyBtYXJnaW4gb2YgdGFibGVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gY2hhcnMgLSBBIHNldCBvZiBhZGRpdGlvbmFsIG1hcmdpbiBjaGFyYWN0ZXJzLlxuICogQSBwaXBlIGB8YCwgYSBiYWNrc2xhc2ggYFxcYCwgYW5kIGEgYmFja3F1b3RlIHdpbGwgYmUgaWdub3JlZC5cbiAqIEByZXR1cm4gQW4gcmVndWxhciBleHByZXNzaW9uIG9iamVjdCB0aGF0IG1hdGNoZXMgbWFyZ2luIG9mIHRhYmxlcy5cbiAqL1xuY29uc3QgX21hcmdpblJlZ2V4ID0gKGNoYXJzKSA9PiBuZXcgUmVnRXhwKGBeJHtleHBvcnRzLm1hcmdpblJlZ2V4U3JjKGNoYXJzKX0kYCwgJ3UnKTtcbmV4cG9ydHMuX21hcmdpblJlZ2V4ID0gX21hcmdpblJlZ2V4O1xuLyoqXG4gKiBSZWFkcyBhIHRhYmxlIGZyb20gbGluZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBsaW5lcyAtIEFuIGFycmF5IG9mIHRleHRzLCBlYWNoIHRleHQgcmVwcmVzZW50cyBhIHJvdy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgb3B0aW9ucyBmb3IgcGFyc2luZy5cbiAqIEByZXR1cm5zIFRoZSB0YWJsZSByZWFkIGZyb20gdGhlIGxpbmVzLlxuICovXG5jb25zdCByZWFkVGFibGUgPSAobGluZXMsIG9wdGlvbnMpID0+IHtcbiAgICBjb25zdCBsZWZ0TWFyZ2luUmVnZXggPSBleHBvcnRzLl9tYXJnaW5SZWdleChvcHRpb25zLmxlZnRNYXJnaW5DaGFycyk7XG4gICAgcmV0dXJuIG5ldyB0YWJsZV8xLlRhYmxlKGxpbmVzLm1hcCgobGluZSkgPT4gZXhwb3J0cy5fcmVhZFJvdyhsaW5lLCBsZWZ0TWFyZ2luUmVnZXgpKSk7XG59O1xuZXhwb3J0cy5yZWFkVGFibGUgPSByZWFkVGFibGU7XG4iLCIvKlxyXG4gKiBHZW5lcmF0ZWQgYnkgc2NyaXB0LiBETyBOT1QgRURJVCFcclxuICpcclxuICogVGhlIHBhcnQgYmV0d2VlbiBCRUdJTiBhbmQgRU5EIGlzIGRlcml2ZWQgZnJvbSBVbmljb2RlIERhdGEgRmlsZXNcclxuICogYW5kIHByb3ZpZGVkIHVuZGVyIFVuaWNvZGUsIEluYy4gTGljZW5zZSBBZ3JlZW1lbnQuXHJcbiAqL1xyXG4vKiBCRUdJTiAqL1xyXG52YXIgZGVmcyA9IFtcclxuICAgIFswLCAzMSwgXCJOXCJdLFxyXG4gICAgWzMyLCAxMjYsIFwiTmFcIl0sXHJcbiAgICBbMTI3LCAxNjAsIFwiTlwiXSxcclxuICAgIFsxNjEsIDE2MSwgXCJBXCJdLFxyXG4gICAgWzE2MiwgMTYzLCBcIk5hXCJdLFxyXG4gICAgWzE2NCwgMTY0LCBcIkFcIl0sXHJcbiAgICBbMTY1LCAxNjYsIFwiTmFcIl0sXHJcbiAgICBbMTY3LCAxNjgsIFwiQVwiXSxcclxuICAgIFsxNjksIDE2OSwgXCJOXCJdLFxyXG4gICAgWzE3MCwgMTcwLCBcIkFcIl0sXHJcbiAgICBbMTcxLCAxNzEsIFwiTlwiXSxcclxuICAgIFsxNzIsIDE3MiwgXCJOYVwiXSxcclxuICAgIFsxNzMsIDE3NCwgXCJBXCJdLFxyXG4gICAgWzE3NSwgMTc1LCBcIk5hXCJdLFxyXG4gICAgWzE3NiwgMTgwLCBcIkFcIl0sXHJcbiAgICBbMTgxLCAxODEsIFwiTlwiXSxcclxuICAgIFsxODIsIDE4NiwgXCJBXCJdLFxyXG4gICAgWzE4NywgMTg3LCBcIk5cIl0sXHJcbiAgICBbMTg4LCAxOTEsIFwiQVwiXSxcclxuICAgIFsxOTIsIDE5NywgXCJOXCJdLFxyXG4gICAgWzE5OCwgMTk4LCBcIkFcIl0sXHJcbiAgICBbMTk5LCAyMDcsIFwiTlwiXSxcclxuICAgIFsyMDgsIDIwOCwgXCJBXCJdLFxyXG4gICAgWzIwOSwgMjE0LCBcIk5cIl0sXHJcbiAgICBbMjE1LCAyMTYsIFwiQVwiXSxcclxuICAgIFsyMTcsIDIyMSwgXCJOXCJdLFxyXG4gICAgWzIyMiwgMjI1LCBcIkFcIl0sXHJcbiAgICBbMjI2LCAyMjksIFwiTlwiXSxcclxuICAgIFsyMzAsIDIzMCwgXCJBXCJdLFxyXG4gICAgWzIzMSwgMjMxLCBcIk5cIl0sXHJcbiAgICBbMjMyLCAyMzQsIFwiQVwiXSxcclxuICAgIFsyMzUsIDIzNSwgXCJOXCJdLFxyXG4gICAgWzIzNiwgMjM3LCBcIkFcIl0sXHJcbiAgICBbMjM4LCAyMzksIFwiTlwiXSxcclxuICAgIFsyNDAsIDI0MCwgXCJBXCJdLFxyXG4gICAgWzI0MSwgMjQxLCBcIk5cIl0sXHJcbiAgICBbMjQyLCAyNDMsIFwiQVwiXSxcclxuICAgIFsyNDQsIDI0NiwgXCJOXCJdLFxyXG4gICAgWzI0NywgMjUwLCBcIkFcIl0sXHJcbiAgICBbMjUxLCAyNTEsIFwiTlwiXSxcclxuICAgIFsyNTIsIDI1MiwgXCJBXCJdLFxyXG4gICAgWzI1MywgMjUzLCBcIk5cIl0sXHJcbiAgICBbMjU0LCAyNTQsIFwiQVwiXSxcclxuICAgIFsyNTUsIDI1NiwgXCJOXCJdLFxyXG4gICAgWzI1NywgMjU3LCBcIkFcIl0sXHJcbiAgICBbMjU4LCAyNzIsIFwiTlwiXSxcclxuICAgIFsyNzMsIDI3MywgXCJBXCJdLFxyXG4gICAgWzI3NCwgMjc0LCBcIk5cIl0sXHJcbiAgICBbMjc1LCAyNzUsIFwiQVwiXSxcclxuICAgIFsyNzYsIDI4MiwgXCJOXCJdLFxyXG4gICAgWzI4MywgMjgzLCBcIkFcIl0sXHJcbiAgICBbMjg0LCAyOTMsIFwiTlwiXSxcclxuICAgIFsyOTQsIDI5NSwgXCJBXCJdLFxyXG4gICAgWzI5NiwgMjk4LCBcIk5cIl0sXHJcbiAgICBbMjk5LCAyOTksIFwiQVwiXSxcclxuICAgIFszMDAsIDMwNCwgXCJOXCJdLFxyXG4gICAgWzMwNSwgMzA3LCBcIkFcIl0sXHJcbiAgICBbMzA4LCAzMTEsIFwiTlwiXSxcclxuICAgIFszMTIsIDMxMiwgXCJBXCJdLFxyXG4gICAgWzMxMywgMzE4LCBcIk5cIl0sXHJcbiAgICBbMzE5LCAzMjIsIFwiQVwiXSxcclxuICAgIFszMjMsIDMyMywgXCJOXCJdLFxyXG4gICAgWzMyNCwgMzI0LCBcIkFcIl0sXHJcbiAgICBbMzI1LCAzMjcsIFwiTlwiXSxcclxuICAgIFszMjgsIDMzMSwgXCJBXCJdLFxyXG4gICAgWzMzMiwgMzMyLCBcIk5cIl0sXHJcbiAgICBbMzMzLCAzMzMsIFwiQVwiXSxcclxuICAgIFszMzQsIDMzNywgXCJOXCJdLFxyXG4gICAgWzMzOCwgMzM5LCBcIkFcIl0sXHJcbiAgICBbMzQwLCAzNTcsIFwiTlwiXSxcclxuICAgIFszNTgsIDM1OSwgXCJBXCJdLFxyXG4gICAgWzM2MCwgMzYyLCBcIk5cIl0sXHJcbiAgICBbMzYzLCAzNjMsIFwiQVwiXSxcclxuICAgIFszNjQsIDQ2MSwgXCJOXCJdLFxyXG4gICAgWzQ2MiwgNDYyLCBcIkFcIl0sXHJcbiAgICBbNDYzLCA0NjMsIFwiTlwiXSxcclxuICAgIFs0NjQsIDQ2NCwgXCJBXCJdLFxyXG4gICAgWzQ2NSwgNDY1LCBcIk5cIl0sXHJcbiAgICBbNDY2LCA0NjYsIFwiQVwiXSxcclxuICAgIFs0NjcsIDQ2NywgXCJOXCJdLFxyXG4gICAgWzQ2OCwgNDY4LCBcIkFcIl0sXHJcbiAgICBbNDY5LCA0NjksIFwiTlwiXSxcclxuICAgIFs0NzAsIDQ3MCwgXCJBXCJdLFxyXG4gICAgWzQ3MSwgNDcxLCBcIk5cIl0sXHJcbiAgICBbNDcyLCA0NzIsIFwiQVwiXSxcclxuICAgIFs0NzMsIDQ3MywgXCJOXCJdLFxyXG4gICAgWzQ3NCwgNDc0LCBcIkFcIl0sXHJcbiAgICBbNDc1LCA0NzUsIFwiTlwiXSxcclxuICAgIFs0NzYsIDQ3NiwgXCJBXCJdLFxyXG4gICAgWzQ3NywgNTkyLCBcIk5cIl0sXHJcbiAgICBbNTkzLCA1OTMsIFwiQVwiXSxcclxuICAgIFs1OTQsIDYwOCwgXCJOXCJdLFxyXG4gICAgWzYwOSwgNjA5LCBcIkFcIl0sXHJcbiAgICBbNjEwLCA3MDcsIFwiTlwiXSxcclxuICAgIFs3MDgsIDcwOCwgXCJBXCJdLFxyXG4gICAgWzcwOSwgNzEwLCBcIk5cIl0sXHJcbiAgICBbNzExLCA3MTEsIFwiQVwiXSxcclxuICAgIFs3MTIsIDcxMiwgXCJOXCJdLFxyXG4gICAgWzcxMywgNzE1LCBcIkFcIl0sXHJcbiAgICBbNzE2LCA3MTYsIFwiTlwiXSxcclxuICAgIFs3MTcsIDcxNywgXCJBXCJdLFxyXG4gICAgWzcxOCwgNzE5LCBcIk5cIl0sXHJcbiAgICBbNzIwLCA3MjAsIFwiQVwiXSxcclxuICAgIFs3MjEsIDcyNywgXCJOXCJdLFxyXG4gICAgWzcyOCwgNzMxLCBcIkFcIl0sXHJcbiAgICBbNzMyLCA3MzIsIFwiTlwiXSxcclxuICAgIFs3MzMsIDczMywgXCJBXCJdLFxyXG4gICAgWzczNCwgNzM0LCBcIk5cIl0sXHJcbiAgICBbNzM1LCA3MzUsIFwiQVwiXSxcclxuICAgIFs3MzYsIDc2NywgXCJOXCJdLFxyXG4gICAgWzc2OCwgODc5LCBcIkFcIl0sXHJcbiAgICBbODgwLCA5MTIsIFwiTlwiXSxcclxuICAgIFs5MTMsIDkyOSwgXCJBXCJdLFxyXG4gICAgWzkzMCwgOTMwLCBcIk5cIl0sXHJcbiAgICBbOTMxLCA5MzcsIFwiQVwiXSxcclxuICAgIFs5MzgsIDk0NCwgXCJOXCJdLFxyXG4gICAgWzk0NSwgOTYxLCBcIkFcIl0sXHJcbiAgICBbOTYyLCA5NjIsIFwiTlwiXSxcclxuICAgIFs5NjMsIDk2OSwgXCJBXCJdLFxyXG4gICAgWzk3MCwgMTAyNCwgXCJOXCJdLFxyXG4gICAgWzEwMjUsIDEwMjUsIFwiQVwiXSxcclxuICAgIFsxMDI2LCAxMDM5LCBcIk5cIl0sXHJcbiAgICBbMTA0MCwgMTEwMywgXCJBXCJdLFxyXG4gICAgWzExMDQsIDExMDQsIFwiTlwiXSxcclxuICAgIFsxMTA1LCAxMTA1LCBcIkFcIl0sXHJcbiAgICBbMTEwNiwgNDM1MSwgXCJOXCJdLFxyXG4gICAgWzQzNTIsIDQ0NDcsIFwiV1wiXSxcclxuICAgIFs0NDQ4LCA4MjA3LCBcIk5cIl0sXHJcbiAgICBbODIwOCwgODIwOCwgXCJBXCJdLFxyXG4gICAgWzgyMDksIDgyMTAsIFwiTlwiXSxcclxuICAgIFs4MjExLCA4MjE0LCBcIkFcIl0sXHJcbiAgICBbODIxNSwgODIxNSwgXCJOXCJdLFxyXG4gICAgWzgyMTYsIDgyMTcsIFwiQVwiXSxcclxuICAgIFs4MjE4LCA4MjE5LCBcIk5cIl0sXHJcbiAgICBbODIyMCwgODIyMSwgXCJBXCJdLFxyXG4gICAgWzgyMjIsIDgyMjMsIFwiTlwiXSxcclxuICAgIFs4MjI0LCA4MjI2LCBcIkFcIl0sXHJcbiAgICBbODIyNywgODIyNywgXCJOXCJdLFxyXG4gICAgWzgyMjgsIDgyMzEsIFwiQVwiXSxcclxuICAgIFs4MjMyLCA4MjM5LCBcIk5cIl0sXHJcbiAgICBbODI0MCwgODI0MCwgXCJBXCJdLFxyXG4gICAgWzgyNDEsIDgyNDEsIFwiTlwiXSxcclxuICAgIFs4MjQyLCA4MjQzLCBcIkFcIl0sXHJcbiAgICBbODI0NCwgODI0NCwgXCJOXCJdLFxyXG4gICAgWzgyNDUsIDgyNDUsIFwiQVwiXSxcclxuICAgIFs4MjQ2LCA4MjUwLCBcIk5cIl0sXHJcbiAgICBbODI1MSwgODI1MSwgXCJBXCJdLFxyXG4gICAgWzgyNTIsIDgyNTMsIFwiTlwiXSxcclxuICAgIFs4MjU0LCA4MjU0LCBcIkFcIl0sXHJcbiAgICBbODI1NSwgODMwNywgXCJOXCJdLFxyXG4gICAgWzgzMDgsIDgzMDgsIFwiQVwiXSxcclxuICAgIFs4MzA5LCA4MzE4LCBcIk5cIl0sXHJcbiAgICBbODMxOSwgODMxOSwgXCJBXCJdLFxyXG4gICAgWzgzMjAsIDgzMjAsIFwiTlwiXSxcclxuICAgIFs4MzIxLCA4MzI0LCBcIkFcIl0sXHJcbiAgICBbODMyNSwgODM2MCwgXCJOXCJdLFxyXG4gICAgWzgzNjEsIDgzNjEsIFwiSFwiXSxcclxuICAgIFs4MzYyLCA4MzYzLCBcIk5cIl0sXHJcbiAgICBbODM2NCwgODM2NCwgXCJBXCJdLFxyXG4gICAgWzgzNjUsIDg0NTAsIFwiTlwiXSxcclxuICAgIFs4NDUxLCA4NDUxLCBcIkFcIl0sXHJcbiAgICBbODQ1MiwgODQ1MiwgXCJOXCJdLFxyXG4gICAgWzg0NTMsIDg0NTMsIFwiQVwiXSxcclxuICAgIFs4NDU0LCA4NDU2LCBcIk5cIl0sXHJcbiAgICBbODQ1NywgODQ1NywgXCJBXCJdLFxyXG4gICAgWzg0NTgsIDg0NjYsIFwiTlwiXSxcclxuICAgIFs4NDY3LCA4NDY3LCBcIkFcIl0sXHJcbiAgICBbODQ2OCwgODQ2OSwgXCJOXCJdLFxyXG4gICAgWzg0NzAsIDg0NzAsIFwiQVwiXSxcclxuICAgIFs4NDcxLCA4NDgwLCBcIk5cIl0sXHJcbiAgICBbODQ4MSwgODQ4MiwgXCJBXCJdLFxyXG4gICAgWzg0ODMsIDg0ODUsIFwiTlwiXSxcclxuICAgIFs4NDg2LCA4NDg2LCBcIkFcIl0sXHJcbiAgICBbODQ4NywgODQ5MCwgXCJOXCJdLFxyXG4gICAgWzg0OTEsIDg0OTEsIFwiQVwiXSxcclxuICAgIFs4NDkyLCA4NTMwLCBcIk5cIl0sXHJcbiAgICBbODUzMSwgODUzMiwgXCJBXCJdLFxyXG4gICAgWzg1MzMsIDg1MzgsIFwiTlwiXSxcclxuICAgIFs4NTM5LCA4NTQyLCBcIkFcIl0sXHJcbiAgICBbODU0MywgODU0MywgXCJOXCJdLFxyXG4gICAgWzg1NDQsIDg1NTUsIFwiQVwiXSxcclxuICAgIFs4NTU2LCA4NTU5LCBcIk5cIl0sXHJcbiAgICBbODU2MCwgODU2OSwgXCJBXCJdLFxyXG4gICAgWzg1NzAsIDg1ODQsIFwiTlwiXSxcclxuICAgIFs4NTg1LCA4NTg1LCBcIkFcIl0sXHJcbiAgICBbODU4NiwgODU5MSwgXCJOXCJdLFxyXG4gICAgWzg1OTIsIDg2MDEsIFwiQVwiXSxcclxuICAgIFs4NjAyLCA4NjMxLCBcIk5cIl0sXHJcbiAgICBbODYzMiwgODYzMywgXCJBXCJdLFxyXG4gICAgWzg2MzQsIDg2NTcsIFwiTlwiXSxcclxuICAgIFs4NjU4LCA4NjU4LCBcIkFcIl0sXHJcbiAgICBbODY1OSwgODY1OSwgXCJOXCJdLFxyXG4gICAgWzg2NjAsIDg2NjAsIFwiQVwiXSxcclxuICAgIFs4NjYxLCA4Njc4LCBcIk5cIl0sXHJcbiAgICBbODY3OSwgODY3OSwgXCJBXCJdLFxyXG4gICAgWzg2ODAsIDg3MDMsIFwiTlwiXSxcclxuICAgIFs4NzA0LCA4NzA0LCBcIkFcIl0sXHJcbiAgICBbODcwNSwgODcwNSwgXCJOXCJdLFxyXG4gICAgWzg3MDYsIDg3MDcsIFwiQVwiXSxcclxuICAgIFs4NzA4LCA4NzEwLCBcIk5cIl0sXHJcbiAgICBbODcxMSwgODcxMiwgXCJBXCJdLFxyXG4gICAgWzg3MTMsIDg3MTQsIFwiTlwiXSxcclxuICAgIFs4NzE1LCA4NzE1LCBcIkFcIl0sXHJcbiAgICBbODcxNiwgODcxOCwgXCJOXCJdLFxyXG4gICAgWzg3MTksIDg3MTksIFwiQVwiXSxcclxuICAgIFs4NzIwLCA4NzIwLCBcIk5cIl0sXHJcbiAgICBbODcyMSwgODcyMSwgXCJBXCJdLFxyXG4gICAgWzg3MjIsIDg3MjQsIFwiTlwiXSxcclxuICAgIFs4NzI1LCA4NzI1LCBcIkFcIl0sXHJcbiAgICBbODcyNiwgODcyOSwgXCJOXCJdLFxyXG4gICAgWzg3MzAsIDg3MzAsIFwiQVwiXSxcclxuICAgIFs4NzMxLCA4NzMyLCBcIk5cIl0sXHJcbiAgICBbODczMywgODczNiwgXCJBXCJdLFxyXG4gICAgWzg3MzcsIDg3MzgsIFwiTlwiXSxcclxuICAgIFs4NzM5LCA4NzM5LCBcIkFcIl0sXHJcbiAgICBbODc0MCwgODc0MCwgXCJOXCJdLFxyXG4gICAgWzg3NDEsIDg3NDEsIFwiQVwiXSxcclxuICAgIFs4NzQyLCA4NzQyLCBcIk5cIl0sXHJcbiAgICBbODc0MywgODc0OCwgXCJBXCJdLFxyXG4gICAgWzg3NDksIDg3NDksIFwiTlwiXSxcclxuICAgIFs4NzUwLCA4NzUwLCBcIkFcIl0sXHJcbiAgICBbODc1MSwgODc1NSwgXCJOXCJdLFxyXG4gICAgWzg3NTYsIDg3NTksIFwiQVwiXSxcclxuICAgIFs4NzYwLCA4NzYzLCBcIk5cIl0sXHJcbiAgICBbODc2NCwgODc2NSwgXCJBXCJdLFxyXG4gICAgWzg3NjYsIDg3NzUsIFwiTlwiXSxcclxuICAgIFs4Nzc2LCA4Nzc2LCBcIkFcIl0sXHJcbiAgICBbODc3NywgODc3OSwgXCJOXCJdLFxyXG4gICAgWzg3ODAsIDg3ODAsIFwiQVwiXSxcclxuICAgIFs4NzgxLCA4Nzg1LCBcIk5cIl0sXHJcbiAgICBbODc4NiwgODc4NiwgXCJBXCJdLFxyXG4gICAgWzg3ODcsIDg3OTksIFwiTlwiXSxcclxuICAgIFs4ODAwLCA4ODAxLCBcIkFcIl0sXHJcbiAgICBbODgwMiwgODgwMywgXCJOXCJdLFxyXG4gICAgWzg4MDQsIDg4MDcsIFwiQVwiXSxcclxuICAgIFs4ODA4LCA4ODA5LCBcIk5cIl0sXHJcbiAgICBbODgxMCwgODgxMSwgXCJBXCJdLFxyXG4gICAgWzg4MTIsIDg4MTMsIFwiTlwiXSxcclxuICAgIFs4ODE0LCA4ODE1LCBcIkFcIl0sXHJcbiAgICBbODgxNiwgODgzMywgXCJOXCJdLFxyXG4gICAgWzg4MzQsIDg4MzUsIFwiQVwiXSxcclxuICAgIFs4ODM2LCA4ODM3LCBcIk5cIl0sXHJcbiAgICBbODgzOCwgODgzOSwgXCJBXCJdLFxyXG4gICAgWzg4NDAsIDg4NTIsIFwiTlwiXSxcclxuICAgIFs4ODUzLCA4ODUzLCBcIkFcIl0sXHJcbiAgICBbODg1NCwgODg1NiwgXCJOXCJdLFxyXG4gICAgWzg4NTcsIDg4NTcsIFwiQVwiXSxcclxuICAgIFs4ODU4LCA4ODY4LCBcIk5cIl0sXHJcbiAgICBbODg2OSwgODg2OSwgXCJBXCJdLFxyXG4gICAgWzg4NzAsIDg4OTQsIFwiTlwiXSxcclxuICAgIFs4ODk1LCA4ODk1LCBcIkFcIl0sXHJcbiAgICBbODg5NiwgODk3NywgXCJOXCJdLFxyXG4gICAgWzg5NzgsIDg5NzgsIFwiQVwiXSxcclxuICAgIFs4OTc5LCA4OTg1LCBcIk5cIl0sXHJcbiAgICBbODk4NiwgODk4NywgXCJXXCJdLFxyXG4gICAgWzg5ODgsIDkwMDAsIFwiTlwiXSxcclxuICAgIFs5MDAxLCA5MDAyLCBcIldcIl0sXHJcbiAgICBbOTAwMywgOTE5MiwgXCJOXCJdLFxyXG4gICAgWzkxOTMsIDkxOTYsIFwiV1wiXSxcclxuICAgIFs5MTk3LCA5MTk5LCBcIk5cIl0sXHJcbiAgICBbOTIwMCwgOTIwMCwgXCJXXCJdLFxyXG4gICAgWzkyMDEsIDkyMDIsIFwiTlwiXSxcclxuICAgIFs5MjAzLCA5MjAzLCBcIldcIl0sXHJcbiAgICBbOTIwNCwgOTMxMSwgXCJOXCJdLFxyXG4gICAgWzkzMTIsIDk0NDksIFwiQVwiXSxcclxuICAgIFs5NDUwLCA5NDUwLCBcIk5cIl0sXHJcbiAgICBbOTQ1MSwgOTU0NywgXCJBXCJdLFxyXG4gICAgWzk1NDgsIDk1NTEsIFwiTlwiXSxcclxuICAgIFs5NTUyLCA5NTg3LCBcIkFcIl0sXHJcbiAgICBbOTU4OCwgOTU5OSwgXCJOXCJdLFxyXG4gICAgWzk2MDAsIDk2MTUsIFwiQVwiXSxcclxuICAgIFs5NjE2LCA5NjE3LCBcIk5cIl0sXHJcbiAgICBbOTYxOCwgOTYyMSwgXCJBXCJdLFxyXG4gICAgWzk2MjIsIDk2MzEsIFwiTlwiXSxcclxuICAgIFs5NjMyLCA5NjMzLCBcIkFcIl0sXHJcbiAgICBbOTYzNCwgOTYzNCwgXCJOXCJdLFxyXG4gICAgWzk2MzUsIDk2NDEsIFwiQVwiXSxcclxuICAgIFs5NjQyLCA5NjQ5LCBcIk5cIl0sXHJcbiAgICBbOTY1MCwgOTY1MSwgXCJBXCJdLFxyXG4gICAgWzk2NTIsIDk2NTMsIFwiTlwiXSxcclxuICAgIFs5NjU0LCA5NjU1LCBcIkFcIl0sXHJcbiAgICBbOTY1NiwgOTY1OSwgXCJOXCJdLFxyXG4gICAgWzk2NjAsIDk2NjEsIFwiQVwiXSxcclxuICAgIFs5NjYyLCA5NjYzLCBcIk5cIl0sXHJcbiAgICBbOTY2NCwgOTY2NSwgXCJBXCJdLFxyXG4gICAgWzk2NjYsIDk2NjksIFwiTlwiXSxcclxuICAgIFs5NjcwLCA5NjcyLCBcIkFcIl0sXHJcbiAgICBbOTY3MywgOTY3NCwgXCJOXCJdLFxyXG4gICAgWzk2NzUsIDk2NzUsIFwiQVwiXSxcclxuICAgIFs5Njc2LCA5Njc3LCBcIk5cIl0sXHJcbiAgICBbOTY3OCwgOTY4MSwgXCJBXCJdLFxyXG4gICAgWzk2ODIsIDk2OTcsIFwiTlwiXSxcclxuICAgIFs5Njk4LCA5NzAxLCBcIkFcIl0sXHJcbiAgICBbOTcwMiwgOTcxMCwgXCJOXCJdLFxyXG4gICAgWzk3MTEsIDk3MTEsIFwiQVwiXSxcclxuICAgIFs5NzEyLCA5NzI0LCBcIk5cIl0sXHJcbiAgICBbOTcyNSwgOTcyNiwgXCJXXCJdLFxyXG4gICAgWzk3MjcsIDk3MzIsIFwiTlwiXSxcclxuICAgIFs5NzMzLCA5NzM0LCBcIkFcIl0sXHJcbiAgICBbOTczNSwgOTczNiwgXCJOXCJdLFxyXG4gICAgWzk3MzcsIDk3MzcsIFwiQVwiXSxcclxuICAgIFs5NzM4LCA5NzQxLCBcIk5cIl0sXHJcbiAgICBbOTc0MiwgOTc0MywgXCJBXCJdLFxyXG4gICAgWzk3NDQsIDk3NDcsIFwiTlwiXSxcclxuICAgIFs5NzQ4LCA5NzQ5LCBcIldcIl0sXHJcbiAgICBbOTc1MCwgOTc1NSwgXCJOXCJdLFxyXG4gICAgWzk3NTYsIDk3NTYsIFwiQVwiXSxcclxuICAgIFs5NzU3LCA5NzU3LCBcIk5cIl0sXHJcbiAgICBbOTc1OCwgOTc1OCwgXCJBXCJdLFxyXG4gICAgWzk3NTksIDk3OTEsIFwiTlwiXSxcclxuICAgIFs5NzkyLCA5NzkyLCBcIkFcIl0sXHJcbiAgICBbOTc5MywgOTc5MywgXCJOXCJdLFxyXG4gICAgWzk3OTQsIDk3OTQsIFwiQVwiXSxcclxuICAgIFs5Nzk1LCA5Nzk5LCBcIk5cIl0sXHJcbiAgICBbOTgwMCwgOTgxMSwgXCJXXCJdLFxyXG4gICAgWzk4MTIsIDk4MjMsIFwiTlwiXSxcclxuICAgIFs5ODI0LCA5ODI1LCBcIkFcIl0sXHJcbiAgICBbOTgyNiwgOTgyNiwgXCJOXCJdLFxyXG4gICAgWzk4MjcsIDk4MjksIFwiQVwiXSxcclxuICAgIFs5ODMwLCA5ODMwLCBcIk5cIl0sXHJcbiAgICBbOTgzMSwgOTgzNCwgXCJBXCJdLFxyXG4gICAgWzk4MzUsIDk4MzUsIFwiTlwiXSxcclxuICAgIFs5ODM2LCA5ODM3LCBcIkFcIl0sXHJcbiAgICBbOTgzOCwgOTgzOCwgXCJOXCJdLFxyXG4gICAgWzk4MzksIDk4MzksIFwiQVwiXSxcclxuICAgIFs5ODQwLCA5ODU0LCBcIk5cIl0sXHJcbiAgICBbOTg1NSwgOTg1NSwgXCJXXCJdLFxyXG4gICAgWzk4NTYsIDk4NzQsIFwiTlwiXSxcclxuICAgIFs5ODc1LCA5ODc1LCBcIldcIl0sXHJcbiAgICBbOTg3NiwgOTg4NSwgXCJOXCJdLFxyXG4gICAgWzk4ODYsIDk4ODcsIFwiQVwiXSxcclxuICAgIFs5ODg4LCA5ODg4LCBcIk5cIl0sXHJcbiAgICBbOTg4OSwgOTg4OSwgXCJXXCJdLFxyXG4gICAgWzk4OTAsIDk4OTcsIFwiTlwiXSxcclxuICAgIFs5ODk4LCA5ODk5LCBcIldcIl0sXHJcbiAgICBbOTkwMCwgOTkxNiwgXCJOXCJdLFxyXG4gICAgWzk5MTcsIDk5MTgsIFwiV1wiXSxcclxuICAgIFs5OTE5LCA5OTE5LCBcIkFcIl0sXHJcbiAgICBbOTkyMCwgOTkyMywgXCJOXCJdLFxyXG4gICAgWzk5MjQsIDk5MjUsIFwiV1wiXSxcclxuICAgIFs5OTI2LCA5OTMzLCBcIkFcIl0sXHJcbiAgICBbOTkzNCwgOTkzNCwgXCJXXCJdLFxyXG4gICAgWzk5MzUsIDk5MzksIFwiQVwiXSxcclxuICAgIFs5OTQwLCA5OTQwLCBcIldcIl0sXHJcbiAgICBbOTk0MSwgOTk1MywgXCJBXCJdLFxyXG4gICAgWzk5NTQsIDk5NTQsIFwiTlwiXSxcclxuICAgIFs5OTU1LCA5OTU1LCBcIkFcIl0sXHJcbiAgICBbOTk1NiwgOTk1OSwgXCJOXCJdLFxyXG4gICAgWzk5NjAsIDk5NjEsIFwiQVwiXSxcclxuICAgIFs5OTYyLCA5OTYyLCBcIldcIl0sXHJcbiAgICBbOTk2MywgOTk2OSwgXCJBXCJdLFxyXG4gICAgWzk5NzAsIDk5NzEsIFwiV1wiXSxcclxuICAgIFs5OTcyLCA5OTcyLCBcIkFcIl0sXHJcbiAgICBbOTk3MywgOTk3MywgXCJXXCJdLFxyXG4gICAgWzk5NzQsIDk5NzcsIFwiQVwiXSxcclxuICAgIFs5OTc4LCA5OTc4LCBcIldcIl0sXHJcbiAgICBbOTk3OSwgOTk4MCwgXCJBXCJdLFxyXG4gICAgWzk5ODEsIDk5ODEsIFwiV1wiXSxcclxuICAgIFs5OTgyLCA5OTgzLCBcIkFcIl0sXHJcbiAgICBbOTk4NCwgOTk4OCwgXCJOXCJdLFxyXG4gICAgWzk5ODksIDk5ODksIFwiV1wiXSxcclxuICAgIFs5OTkwLCA5OTkzLCBcIk5cIl0sXHJcbiAgICBbOTk5NCwgOTk5NSwgXCJXXCJdLFxyXG4gICAgWzk5OTYsIDEwMDIzLCBcIk5cIl0sXHJcbiAgICBbMTAwMjQsIDEwMDI0LCBcIldcIl0sXHJcbiAgICBbMTAwMjUsIDEwMDQ0LCBcIk5cIl0sXHJcbiAgICBbMTAwNDUsIDEwMDQ1LCBcIkFcIl0sXHJcbiAgICBbMTAwNDYsIDEwMDU5LCBcIk5cIl0sXHJcbiAgICBbMTAwNjAsIDEwMDYwLCBcIldcIl0sXHJcbiAgICBbMTAwNjEsIDEwMDYxLCBcIk5cIl0sXHJcbiAgICBbMTAwNjIsIDEwMDYyLCBcIldcIl0sXHJcbiAgICBbMTAwNjMsIDEwMDY2LCBcIk5cIl0sXHJcbiAgICBbMTAwNjcsIDEwMDY5LCBcIldcIl0sXHJcbiAgICBbMTAwNzAsIDEwMDcwLCBcIk5cIl0sXHJcbiAgICBbMTAwNzEsIDEwMDcxLCBcIldcIl0sXHJcbiAgICBbMTAwNzIsIDEwMTAxLCBcIk5cIl0sXHJcbiAgICBbMTAxMDIsIDEwMTExLCBcIkFcIl0sXHJcbiAgICBbMTAxMTIsIDEwMTMyLCBcIk5cIl0sXHJcbiAgICBbMTAxMzMsIDEwMTM1LCBcIldcIl0sXHJcbiAgICBbMTAxMzYsIDEwMTU5LCBcIk5cIl0sXHJcbiAgICBbMTAxNjAsIDEwMTYwLCBcIldcIl0sXHJcbiAgICBbMTAxNjEsIDEwMTc0LCBcIk5cIl0sXHJcbiAgICBbMTAxNzUsIDEwMTc1LCBcIldcIl0sXHJcbiAgICBbMTAxNzYsIDEwMjEzLCBcIk5cIl0sXHJcbiAgICBbMTAyMTQsIDEwMjIxLCBcIk5hXCJdLFxyXG4gICAgWzEwMjIyLCAxMDYyOCwgXCJOXCJdLFxyXG4gICAgWzEwNjI5LCAxMDYzMCwgXCJOYVwiXSxcclxuICAgIFsxMDYzMSwgMTEwMzQsIFwiTlwiXSxcclxuICAgIFsxMTAzNSwgMTEwMzYsIFwiV1wiXSxcclxuICAgIFsxMTAzNywgMTEwODcsIFwiTlwiXSxcclxuICAgIFsxMTA4OCwgMTEwODgsIFwiV1wiXSxcclxuICAgIFsxMTA4OSwgMTEwOTIsIFwiTlwiXSxcclxuICAgIFsxMTA5MywgMTEwOTMsIFwiV1wiXSxcclxuICAgIFsxMTA5NCwgMTEwOTcsIFwiQVwiXSxcclxuICAgIFsxMTA5OCwgMTE5MDMsIFwiTlwiXSxcclxuICAgIFsxMTkwNCwgMTE5MjksIFwiV1wiXSxcclxuICAgIFsxMTkzMCwgMTE5MzAsIFwiTlwiXSxcclxuICAgIFsxMTkzMSwgMTIwMTksIFwiV1wiXSxcclxuICAgIFsxMjAyMCwgMTIwMzEsIFwiTlwiXSxcclxuICAgIFsxMjAzMiwgMTIyNDUsIFwiV1wiXSxcclxuICAgIFsxMjI0NiwgMTIyNzEsIFwiTlwiXSxcclxuICAgIFsxMjI3MiwgMTIyODMsIFwiV1wiXSxcclxuICAgIFsxMjI4NCwgMTIyODcsIFwiTlwiXSxcclxuICAgIFsxMjI4OCwgMTIyODgsIFwiRlwiXSxcclxuICAgIFsxMjI4OSwgMTIzNTAsIFwiV1wiXSxcclxuICAgIFsxMjM1MSwgMTIzNTIsIFwiTlwiXSxcclxuICAgIFsxMjM1MywgMTI0MzgsIFwiV1wiXSxcclxuICAgIFsxMjQzOSwgMTI0NDAsIFwiTlwiXSxcclxuICAgIFsxMjQ0MSwgMTI1NDMsIFwiV1wiXSxcclxuICAgIFsxMjU0NCwgMTI1NDgsIFwiTlwiXSxcclxuICAgIFsxMjU0OSwgMTI1OTEsIFwiV1wiXSxcclxuICAgIFsxMjU5MiwgMTI1OTIsIFwiTlwiXSxcclxuICAgIFsxMjU5MywgMTI2ODYsIFwiV1wiXSxcclxuICAgIFsxMjY4NywgMTI2ODcsIFwiTlwiXSxcclxuICAgIFsxMjY4OCwgMTI3NzEsIFwiV1wiXSxcclxuICAgIFsxMjc3MiwgMTI3ODMsIFwiTlwiXSxcclxuICAgIFsxMjc4NCwgMTI4MzAsIFwiV1wiXSxcclxuICAgIFsxMjgzMSwgMTI4MzEsIFwiTlwiXSxcclxuICAgIFsxMjgzMiwgMTI4NzEsIFwiV1wiXSxcclxuICAgIFsxMjg3MiwgMTI4NzksIFwiQVwiXSxcclxuICAgIFsxMjg4MCwgMTk5MDMsIFwiV1wiXSxcclxuICAgIFsxOTkwNCwgMTk5NjcsIFwiTlwiXSxcclxuICAgIFsxOTk2OCwgNDIxMjQsIFwiV1wiXSxcclxuICAgIFs0MjEyNSwgNDIxMjcsIFwiTlwiXSxcclxuICAgIFs0MjEyOCwgNDIxODIsIFwiV1wiXSxcclxuICAgIFs0MjE4MywgNDMzNTksIFwiTlwiXSxcclxuICAgIFs0MzM2MCwgNDMzODgsIFwiV1wiXSxcclxuICAgIFs0MzM4OSwgNDQwMzEsIFwiTlwiXSxcclxuICAgIFs0NDAzMiwgNTUyMDMsIFwiV1wiXSxcclxuICAgIFs1NTIwNCwgNTczNDMsIFwiTlwiXSxcclxuICAgIFs1NzM0NCwgNjM3NDMsIFwiQVwiXSxcclxuICAgIFs2Mzc0NCwgNjQyNTUsIFwiV1wiXSxcclxuICAgIFs2NDI1NiwgNjUwMjMsIFwiTlwiXSxcclxuICAgIFs2NTAyNCwgNjUwMzksIFwiQVwiXSxcclxuICAgIFs2NTA0MCwgNjUwNDksIFwiV1wiXSxcclxuICAgIFs2NTA1MCwgNjUwNzEsIFwiTlwiXSxcclxuICAgIFs2NTA3MiwgNjUxMDYsIFwiV1wiXSxcclxuICAgIFs2NTEwNywgNjUxMDcsIFwiTlwiXSxcclxuICAgIFs2NTEwOCwgNjUxMjYsIFwiV1wiXSxcclxuICAgIFs2NTEyNywgNjUxMjcsIFwiTlwiXSxcclxuICAgIFs2NTEyOCwgNjUxMzEsIFwiV1wiXSxcclxuICAgIFs2NTEzMiwgNjUyODAsIFwiTlwiXSxcclxuICAgIFs2NTI4MSwgNjUzNzYsIFwiRlwiXSxcclxuICAgIFs2NTM3NywgNjU0NzAsIFwiSFwiXSxcclxuICAgIFs2NTQ3MSwgNjU0NzMsIFwiTlwiXSxcclxuICAgIFs2NTQ3NCwgNjU0NzksIFwiSFwiXSxcclxuICAgIFs2NTQ4MCwgNjU0ODEsIFwiTlwiXSxcclxuICAgIFs2NTQ4MiwgNjU0ODcsIFwiSFwiXSxcclxuICAgIFs2NTQ4OCwgNjU0ODksIFwiTlwiXSxcclxuICAgIFs2NTQ5MCwgNjU0OTUsIFwiSFwiXSxcclxuICAgIFs2NTQ5NiwgNjU0OTcsIFwiTlwiXSxcclxuICAgIFs2NTQ5OCwgNjU1MDAsIFwiSFwiXSxcclxuICAgIFs2NTUwMSwgNjU1MDMsIFwiTlwiXSxcclxuICAgIFs2NTUwNCwgNjU1MTAsIFwiRlwiXSxcclxuICAgIFs2NTUxMSwgNjU1MTEsIFwiTlwiXSxcclxuICAgIFs2NTUxMiwgNjU1MTgsIFwiSFwiXSxcclxuICAgIFs2NTUxOSwgNjU1MzIsIFwiTlwiXSxcclxuICAgIFs2NTUzMywgNjU1MzMsIFwiQVwiXSxcclxuICAgIFs2NTUzNCwgOTQxNzUsIFwiTlwiXSxcclxuICAgIFs5NDE3NiwgOTQxODAsIFwiV1wiXSxcclxuICAgIFs5NDE4MSwgOTQxOTEsIFwiTlwiXSxcclxuICAgIFs5NDE5MiwgOTQxOTMsIFwiV1wiXSxcclxuICAgIFs5NDE5NCwgOTQyMDcsIFwiTlwiXSxcclxuICAgIFs5NDIwOCwgMTAwMzQzLCBcIldcIl0sXHJcbiAgICBbMTAwMzQ0LCAxMDAzNTEsIFwiTlwiXSxcclxuICAgIFsxMDAzNTIsIDEwMTU4OSwgXCJXXCJdLFxyXG4gICAgWzEwMTU5MCwgMTAxNjMxLCBcIk5cIl0sXHJcbiAgICBbMTAxNjMyLCAxMDE2NDAsIFwiV1wiXSxcclxuICAgIFsxMDE2NDEsIDExMDU5MSwgXCJOXCJdLFxyXG4gICAgWzExMDU5MiwgMTEwODc4LCBcIldcIl0sXHJcbiAgICBbMTEwODc5LCAxMTA5MjcsIFwiTlwiXSxcclxuICAgIFsxMTA5MjgsIDExMDkzMCwgXCJXXCJdLFxyXG4gICAgWzExMDkzMSwgMTEwOTQ3LCBcIk5cIl0sXHJcbiAgICBbMTEwOTQ4LCAxMTA5NTEsIFwiV1wiXSxcclxuICAgIFsxMTA5NTIsIDExMDk1OSwgXCJOXCJdLFxyXG4gICAgWzExMDk2MCwgMTExMzU1LCBcIldcIl0sXHJcbiAgICBbMTExMzU2LCAxMjY5NzksIFwiTlwiXSxcclxuICAgIFsxMjY5ODAsIDEyNjk4MCwgXCJXXCJdLFxyXG4gICAgWzEyNjk4MSwgMTI3MTgyLCBcIk5cIl0sXHJcbiAgICBbMTI3MTgzLCAxMjcxODMsIFwiV1wiXSxcclxuICAgIFsxMjcxODQsIDEyNzIzMSwgXCJOXCJdLFxyXG4gICAgWzEyNzIzMiwgMTI3MjQyLCBcIkFcIl0sXHJcbiAgICBbMTI3MjQzLCAxMjcyNDcsIFwiTlwiXSxcclxuICAgIFsxMjcyNDgsIDEyNzI3NywgXCJBXCJdLFxyXG4gICAgWzEyNzI3OCwgMTI3Mjc5LCBcIk5cIl0sXHJcbiAgICBbMTI3MjgwLCAxMjczMzcsIFwiQVwiXSxcclxuICAgIFsxMjczMzgsIDEyNzM0MywgXCJOXCJdLFxyXG4gICAgWzEyNzM0NCwgMTI3MzczLCBcIkFcIl0sXHJcbiAgICBbMTI3Mzc0LCAxMjczNzQsIFwiV1wiXSxcclxuICAgIFsxMjczNzUsIDEyNzM3NiwgXCJBXCJdLFxyXG4gICAgWzEyNzM3NywgMTI3Mzg2LCBcIldcIl0sXHJcbiAgICBbMTI3Mzg3LCAxMjc0MDQsIFwiQVwiXSxcclxuICAgIFsxMjc0MDUsIDEyNzQ4NywgXCJOXCJdLFxyXG4gICAgWzEyNzQ4OCwgMTI3NDkwLCBcIldcIl0sXHJcbiAgICBbMTI3NDkxLCAxMjc1MDMsIFwiTlwiXSxcclxuICAgIFsxMjc1MDQsIDEyNzU0NywgXCJXXCJdLFxyXG4gICAgWzEyNzU0OCwgMTI3NTUxLCBcIk5cIl0sXHJcbiAgICBbMTI3NTUyLCAxMjc1NjAsIFwiV1wiXSxcclxuICAgIFsxMjc1NjEsIDEyNzU2NywgXCJOXCJdLFxyXG4gICAgWzEyNzU2OCwgMTI3NTY5LCBcIldcIl0sXHJcbiAgICBbMTI3NTcwLCAxMjc1ODMsIFwiTlwiXSxcclxuICAgIFsxMjc1ODQsIDEyNzU4OSwgXCJXXCJdLFxyXG4gICAgWzEyNzU5MCwgMTI3NzQzLCBcIk5cIl0sXHJcbiAgICBbMTI3NzQ0LCAxMjc3NzYsIFwiV1wiXSxcclxuICAgIFsxMjc3NzcsIDEyNzc4OCwgXCJOXCJdLFxyXG4gICAgWzEyNzc4OSwgMTI3Nzk3LCBcIldcIl0sXHJcbiAgICBbMTI3Nzk4LCAxMjc3OTgsIFwiTlwiXSxcclxuICAgIFsxMjc3OTksIDEyNzg2OCwgXCJXXCJdLFxyXG4gICAgWzEyNzg2OSwgMTI3ODY5LCBcIk5cIl0sXHJcbiAgICBbMTI3ODcwLCAxMjc4OTEsIFwiV1wiXSxcclxuICAgIFsxMjc4OTIsIDEyNzkwMywgXCJOXCJdLFxyXG4gICAgWzEyNzkwNCwgMTI3OTQ2LCBcIldcIl0sXHJcbiAgICBbMTI3OTQ3LCAxMjc5NTAsIFwiTlwiXSxcclxuICAgIFsxMjc5NTEsIDEyNzk1NSwgXCJXXCJdLFxyXG4gICAgWzEyNzk1NiwgMTI3OTY3LCBcIk5cIl0sXHJcbiAgICBbMTI3OTY4LCAxMjc5ODQsIFwiV1wiXSxcclxuICAgIFsxMjc5ODUsIDEyNzk4NywgXCJOXCJdLFxyXG4gICAgWzEyNzk4OCwgMTI3OTg4LCBcIldcIl0sXHJcbiAgICBbMTI3OTg5LCAxMjc5OTEsIFwiTlwiXSxcclxuICAgIFsxMjc5OTIsIDEyODA2MiwgXCJXXCJdLFxyXG4gICAgWzEyODA2MywgMTI4MDYzLCBcIk5cIl0sXHJcbiAgICBbMTI4MDY0LCAxMjgwNjQsIFwiV1wiXSxcclxuICAgIFsxMjgwNjUsIDEyODA2NSwgXCJOXCJdLFxyXG4gICAgWzEyODA2NiwgMTI4MjUyLCBcIldcIl0sXHJcbiAgICBbMTI4MjUzLCAxMjgyNTQsIFwiTlwiXSxcclxuICAgIFsxMjgyNTUsIDEyODMxNywgXCJXXCJdLFxyXG4gICAgWzEyODMxOCwgMTI4MzMwLCBcIk5cIl0sXHJcbiAgICBbMTI4MzMxLCAxMjgzMzQsIFwiV1wiXSxcclxuICAgIFsxMjgzMzUsIDEyODMzNSwgXCJOXCJdLFxyXG4gICAgWzEyODMzNiwgMTI4MzU5LCBcIldcIl0sXHJcbiAgICBbMTI4MzYwLCAxMjgzNzcsIFwiTlwiXSxcclxuICAgIFsxMjgzNzgsIDEyODM3OCwgXCJXXCJdLFxyXG4gICAgWzEyODM3OSwgMTI4NDA0LCBcIk5cIl0sXHJcbiAgICBbMTI4NDA1LCAxMjg0MDYsIFwiV1wiXSxcclxuICAgIFsxMjg0MDcsIDEyODQxOSwgXCJOXCJdLFxyXG4gICAgWzEyODQyMCwgMTI4NDIwLCBcIldcIl0sXHJcbiAgICBbMTI4NDIxLCAxMjg1MDYsIFwiTlwiXSxcclxuICAgIFsxMjg1MDcsIDEyODU5MSwgXCJXXCJdLFxyXG4gICAgWzEyODU5MiwgMTI4NjM5LCBcIk5cIl0sXHJcbiAgICBbMTI4NjQwLCAxMjg3MDksIFwiV1wiXSxcclxuICAgIFsxMjg3MTAsIDEyODcxNSwgXCJOXCJdLFxyXG4gICAgWzEyODcxNiwgMTI4NzE2LCBcIldcIl0sXHJcbiAgICBbMTI4NzE3LCAxMjg3MTksIFwiTlwiXSxcclxuICAgIFsxMjg3MjAsIDEyODcyMiwgXCJXXCJdLFxyXG4gICAgWzEyODcyMywgMTI4NzI0LCBcIk5cIl0sXHJcbiAgICBbMTI4NzI1LCAxMjg3MjcsIFwiV1wiXSxcclxuICAgIFsxMjg3MjgsIDEyODc0NiwgXCJOXCJdLFxyXG4gICAgWzEyODc0NywgMTI4NzQ4LCBcIldcIl0sXHJcbiAgICBbMTI4NzQ5LCAxMjg3NTUsIFwiTlwiXSxcclxuICAgIFsxMjg3NTYsIDEyODc2NCwgXCJXXCJdLFxyXG4gICAgWzEyODc2NSwgMTI4OTkxLCBcIk5cIl0sXHJcbiAgICBbMTI4OTkyLCAxMjkwMDMsIFwiV1wiXSxcclxuICAgIFsxMjkwMDQsIDEyOTI5MSwgXCJOXCJdLFxyXG4gICAgWzEyOTI5MiwgMTI5MzM4LCBcIldcIl0sXHJcbiAgICBbMTI5MzM5LCAxMjkzMzksIFwiTlwiXSxcclxuICAgIFsxMjkzNDAsIDEyOTM0OSwgXCJXXCJdLFxyXG4gICAgWzEyOTM1MCwgMTI5MzUwLCBcIk5cIl0sXHJcbiAgICBbMTI5MzUxLCAxMjk0MDAsIFwiV1wiXSxcclxuICAgIFsxMjk0MDEsIDEyOTQwMSwgXCJOXCJdLFxyXG4gICAgWzEyOTQwMiwgMTI5NDgzLCBcIldcIl0sXHJcbiAgICBbMTI5NDg0LCAxMjk0ODQsIFwiTlwiXSxcclxuICAgIFsxMjk0ODUsIDEyOTUzNSwgXCJXXCJdLFxyXG4gICAgWzEyOTUzNiwgMTI5NjQ3LCBcIk5cIl0sXHJcbiAgICBbMTI5NjQ4LCAxMjk2NTIsIFwiV1wiXSxcclxuICAgIFsxMjk2NTMsIDEyOTY1NSwgXCJOXCJdLFxyXG4gICAgWzEyOTY1NiwgMTI5NjU4LCBcIldcIl0sXHJcbiAgICBbMTI5NjU5LCAxMjk2NjMsIFwiTlwiXSxcclxuICAgIFsxMjk2NjQsIDEyOTY3MCwgXCJXXCJdLFxyXG4gICAgWzEyOTY3MSwgMTI5Njc5LCBcIk5cIl0sXHJcbiAgICBbMTI5NjgwLCAxMjk3MDQsIFwiV1wiXSxcclxuICAgIFsxMjk3MDUsIDEyOTcxMSwgXCJOXCJdLFxyXG4gICAgWzEyOTcxMiwgMTI5NzE4LCBcIldcIl0sXHJcbiAgICBbMTI5NzE5LCAxMjk3MjcsIFwiTlwiXSxcclxuICAgIFsxMjk3MjgsIDEyOTczMCwgXCJXXCJdLFxyXG4gICAgWzEyOTczMSwgMTI5NzQzLCBcIk5cIl0sXHJcbiAgICBbMTI5NzQ0LCAxMjk3NTAsIFwiV1wiXSxcclxuICAgIFsxMjk3NTEsIDEzMTA3MSwgXCJOXCJdLFxyXG4gICAgWzEzMTA3MiwgMTk2NjA1LCBcIldcIl0sXHJcbiAgICBbMTk2NjA2LCAxOTY2MDcsIFwiTlwiXSxcclxuICAgIFsxOTY2MDgsIDI2MjE0MSwgXCJXXCJdLFxyXG4gICAgWzI2MjE0MiwgOTE3NzU5LCBcIk5cIl0sXHJcbiAgICBbOTE3NzYwLCA5MTc5OTksIFwiQVwiXSxcclxuICAgIFs5MTgwMDAsIDk4MzAzOSwgXCJOXCJdLFxyXG4gICAgWzk4MzA0MCwgMTA0ODU3MywgXCJBXCJdLFxyXG4gICAgWzEwNDg1NzQsIDEwNDg1NzUsIFwiTlwiXSxcclxuICAgIFsxMDQ4NTc2LCAxMTE0MTA5LCBcIkFcIl0sXHJcbiAgICBbMTExNDExMCwgMTExNDExMSwgXCJOXCJdLFxyXG5dO1xyXG4vKiBFTkQgKi9cclxudmFyIHZlcnNpb24gPSBcIjEzLjAuMFwiO1xuXG4vKipcclxuICogR2V0cyB0aGUgRUFXIHByb3BlcnR5IG9mIGEgY29kZSBwb2ludC5cclxuICogQHBhcmFtIGNvZGVQb2ludCBDb2RlIHBvaW50XHJcbiAqIEByZXR1cm4gVGhlIEVBVyBwcm9wZXJ0eSBvZiB0aGUgY29kZSBwb2ludFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0RUFXT2ZDb2RlUG9pbnQoY29kZVBvaW50KSB7XHJcbiAgICB2YXIgbWluID0gMDtcclxuICAgIHZhciBtYXggPSBkZWZzLmxlbmd0aCAtIDE7XHJcbiAgICB3aGlsZSAobWluICE9PSBtYXgpIHtcclxuICAgICAgICB2YXIgaSA9IG1pbiArICgobWF4IC0gbWluKSA+PiAxKTtcclxuICAgICAgICB2YXIgX2EgPSBkZWZzW2ldLCBzdGFydCA9IF9hWzBdLCBlbmQgPSBfYVsxXSwgcHJvcCA9IF9hWzJdO1xyXG4gICAgICAgIGlmIChjb2RlUG9pbnQgPCBzdGFydCkge1xyXG4gICAgICAgICAgICBtYXggPSBpIC0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY29kZVBvaW50ID4gZW5kKSB7XHJcbiAgICAgICAgICAgIG1pbiA9IGkgKyAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3A7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRlZnNbbWluXVsyXTtcclxufVxyXG4vKipcclxuICogR2V0cyB0aGUgRUFXIHByb3BlcnR5IG9mIGEgY2hhcmFjdGVyLlxyXG4gKiBAcGFyYW0gc3RyIENoYXJhY3RlciBzdHJpbmdcclxuICogQHBhcmFtIHBvcyBDaGFyYWN0ZXIgcG9zaXRpb24gKGluIGNvZGUgdW5pdCkgKGRlZmF1bHQgPSAwKVxyXG4gKiBAcmV0dXJuIFRoZSBFQVcgcHJvcGVydHkgb2YgdGhlIGNoYXJhY3RlclxyXG4gKiBAZXhhbXBsZVxyXG4gKiBpbXBvcnQgeyBnZXRFQVcgfSBmcm9tIFwibWVhd1wiO1xyXG4gKlxyXG4gKiAvLyBOYXJyb3dcclxuICogYXNzZXJ0KGdldEVBVyhcIkFcIikgPT09IFwiTmFcIik7XHJcbiAqIC8vIFdpZGVcclxuICogYXNzZXJ0KGdldEVBVyhcIuOBglwiKSA9PT0gXCJXXCIpO1xyXG4gKiBhc3NlcnQoZ2V0RUFXKFwi5a6JXCIpID09PSBcIldcIik7XHJcbiAqIGFzc2VydChnZXRFQVcoXCLwn42jXCIpID09PSBcIldcIik7XHJcbiAqIC8vIEZ1bGx3aWR0aFxyXG4gKiBhc3NlcnQoZ2V0RUFXKFwi77yhXCIpID09PSBcIkZcIik7XHJcbiAqIC8vIEhhbGZ3aWR0aFxyXG4gKiBhc3NlcnQoZ2V0RUFXKFwi772xXCIpID09PSBcIkhcIik7XHJcbiAqIC8vIEFtYmlndW91c1xyXG4gKiBhc3NlcnQoZ2V0RUFXKFwi4oiAXCIpID09PSBcIkFcIik7XHJcbiAqIGFzc2VydChnZXRFQVcoXCLihpJcIikgPT09IFwiQVwiKTtcclxuICogYXNzZXJ0KGdldEVBVyhcIs6pXCIpID09PSBcIkFcIik7XHJcbiAqIGFzc2VydChnZXRFQVcoXCLQr1wiKSA9PT0gXCJBXCIpO1xyXG4gKiAvLyBOZXV0cmFsXHJcbiAqIGFzc2VydChnZXRFQVcoXCLihLVcIikgPT09IFwiTlwiKTtcclxuICpcclxuICogLy8gY2hhcmFjdGVyIHBvc2l0aW9uIChpbiBjb2RlIHVuaXQpIGNhbiBiZSBzcGVjaWZpZWRcclxuICogYXNzZXJ0KGdldEVBVyhcIuKEtUHjgYLvvKHvvbHiiIBcIiwgMikgPT09IFwiV1wiKTtcclxuICovXHJcbmZ1bmN0aW9uIGdldEVBVyhzdHIsIHBvcykge1xyXG4gICAgaWYgKHBvcyA9PT0gdm9pZCAwKSB7IHBvcyA9IDA7IH1cclxuICAgIHZhciBjb2RlUG9pbnQgPSBzdHIuY29kZVBvaW50QXQocG9zKTtcclxuICAgIGlmIChjb2RlUG9pbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ2V0RUFXT2ZDb2RlUG9pbnQoY29kZVBvaW50KTtcclxufVxuXG52YXIgZGVmYXVsdFdpZHRocyA9IHtcclxuICAgIE46IDEsXHJcbiAgICBOYTogMSxcclxuICAgIFc6IDIsXHJcbiAgICBGOiAyLFxyXG4gICAgSDogMSxcclxuICAgIEE6IDEsXHJcbn07XHJcbi8qKlxyXG4gKiBDb21wdXRlcyB0aGUgd2lkdGggb2YgYSBzdHJpbmcgYmFzZWQgb24gdGhlIEVBVyBwcm9wZXJ0aWVzIG9mIHRoZSBjaGFyYWN0ZXJzLlxyXG4gKiBCeSBkZWZhdWx0LCBjaGFyYWN0ZXJzIHdpdGggcHJvcGVydHkgV2lkZSAoVykgb3IgRnVsbHdpZHRoIChGKSBhcmUgdHJlYXRlZCBhcyB3aWRlICg9IDIpXHJcbiAqIGFuZCBvdGhlcnMgYXJlIGFzIG5hcnJvdyAoPSAxKS5cclxuICogQHBhcmFtIHN0ciBDaGFyYWN0ZXIgc3RyaW5nXHJcbiAqIEBwYXJhbSB3aWR0aHMgQW4gb2JqZWN0IHRoYXQgbWFwcyBFQVcgcHJvcGVydGllcyB0byBjaGFyYWN0ZXIgd2lkdGhzXHJcbiAqIEByZXR1cm4gVGhlIGNvbXB1dGVkIHdpZHRoXHJcbiAqIEBleGFtcGxlXHJcbiAqIGltcG9ydCB7IGNvbXB1dGVXaWR0aCB9IGZyb20gXCJtZWF3XCI7XHJcbiAqXHJcbiAqIGFzc2VydChjb21wdXRlV2lkdGgoXCJB44GC8J+No86pXCIpID09PSA2KTtcclxuICogLy8gY2hhcmFjdGVyIHdpZHRoIGZvciBlYWNoIEVBVyBwcm9wZXJ0eSBjYW4gYmUgY3VzdG9taXplZFxyXG4gKiBhc3NlcnQoY29tcHV0ZVdpZHRoKFwiQeOBgvCfjaPOqVwiLCB7IFwiQVwiOiAyIH0pID09PSA3KTtcclxuICovXHJcbmZ1bmN0aW9uIGNvbXB1dGVXaWR0aChzdHIsIHdpZHRocykge1xyXG4gICAgdmFyIHdpZHRoID0gMDtcclxuICAgIGZvciAodmFyIF9pID0gMCwgc3RyXzEgPSBzdHI7IF9pIDwgc3RyXzEubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgdmFyIGNoYXIgPSBzdHJfMVtfaV07XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb24gLS0gY2hhciBjYW5ub3QgYmUgZW1wdHlcclxuICAgICAgICB2YXIgZWF3ID0gZ2V0RUFXKGNoYXIpO1xyXG4gICAgICAgIHdpZHRoICs9ICh3aWR0aHMgJiYgd2lkdGhzW2Vhd10pIHx8IGRlZmF1bHRXaWR0aHNbZWF3XTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWR0aDtcclxufVxuXG5leHBvcnQgeyBjb21wdXRlV2lkdGgsIHZlcnNpb24gYXMgZWF3VmVyc2lvbiwgZ2V0RUFXIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubW92ZUNvbHVtbiA9IGV4cG9ydHMuZGVsZXRlQ29sdW1uID0gZXhwb3J0cy5pbnNlcnRDb2x1bW4gPSBleHBvcnRzLm1vdmVSb3cgPSBleHBvcnRzLmRlbGV0ZVJvdyA9IGV4cG9ydHMuaW5zZXJ0Um93ID0gZXhwb3J0cy5hbHRlckFsaWdubWVudCA9IGV4cG9ydHMuZm9ybWF0VGFibGUgPSBleHBvcnRzLkZvcm1hdFR5cGUgPSBleHBvcnRzLl93ZWFrRm9ybWF0VGFibGUgPSBleHBvcnRzLl9mb3JtYXRUYWJsZSA9IGV4cG9ydHMuX3BhZFRleHQgPSBleHBvcnRzLl9hbGlnblRleHQgPSBleHBvcnRzLl9jb21wdXRlVGV4dFdpZHRoID0gZXhwb3J0cy5jb21wbGV0ZVRhYmxlID0gZXhwb3J0cy5fZXh0ZW5kQXJyYXkgPSBleHBvcnRzLl9kZWxpbWl0ZXJUZXh0ID0gdm9pZCAwO1xuY29uc3QgYWxpZ25tZW50XzEgPSByZXF1aXJlKFwiLi9hbGlnbm1lbnRcIik7XG5jb25zdCB0YWJsZV8xID0gcmVxdWlyZShcIi4vdGFibGVcIik7XG5jb25zdCB0YWJsZV9jZWxsXzEgPSByZXF1aXJlKFwiLi90YWJsZS1jZWxsXCIpO1xuY29uc3QgdGFibGVfcm93XzEgPSByZXF1aXJlKFwiLi90YWJsZS1yb3dcIik7XG5jb25zdCBtZWF3XzEgPSByZXF1aXJlKFwibWVhd1wiKTtcbi8qKlxuICogQ3JlYXRlcyBhIGRlbGltaXRlciB0ZXh0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gd2lkdGggLSBXaWR0aCBvZiB0aGUgaG9yaXpvbnRhbCBiYXIgb2YgZGVsaW1pdGVyLlxuICogQHRocm93cyB7RXJyb3J9IFVua25vd24gYWxpZ25tZW50LlxuICovXG5jb25zdCBfZGVsaW1pdGVyVGV4dCA9IChhbGlnbm1lbnQsIHdpZHRoKSA9PiB7XG4gICAgY29uc3QgYmFyID0gJy0nLnJlcGVhdCh3aWR0aCk7XG4gICAgc3dpdGNoIChhbGlnbm1lbnQpIHtcbiAgICAgICAgY2FzZSBhbGlnbm1lbnRfMS5BbGlnbm1lbnQuTk9ORTpcbiAgICAgICAgICAgIHJldHVybiBgICR7YmFyfSBgO1xuICAgICAgICBjYXNlIGFsaWdubWVudF8xLkFsaWdubWVudC5MRUZUOlxuICAgICAgICAgICAgcmV0dXJuIGA6JHtiYXJ9IGA7XG4gICAgICAgIGNhc2UgYWxpZ25tZW50XzEuQWxpZ25tZW50LlJJR0hUOlxuICAgICAgICAgICAgcmV0dXJuIGAgJHtiYXJ9OmA7XG4gICAgICAgIGNhc2UgYWxpZ25tZW50XzEuQWxpZ25tZW50LkNFTlRFUjpcbiAgICAgICAgICAgIHJldHVybiBgOiR7YmFyfTpgO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGFsaWdubWVudDogJyArIGFsaWdubWVudCk7XG4gICAgfVxufTtcbmV4cG9ydHMuX2RlbGltaXRlclRleHQgPSBfZGVsaW1pdGVyVGV4dDtcbi8qKlxuICogRXh0ZW5kcyBhcnJheSBzaXplLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gY2FsbGJhY2sgLSBDYWxsYmFjayBmdW5jdGlvbiB0byBmaWxsIG5ld2x5IGNyZWF0ZWQgY2VsbHMuXG4gKiBAcmV0dXJucyBFeHRlbmRlZCBhcnJheS5cbiAqL1xuY29uc3QgX2V4dGVuZEFycmF5ID0gKGFyciwgc2l6ZSwgY2FsbGJhY2spID0+IHtcbiAgICBjb25zdCBleHRlbmRlZCA9IGFyci5zbGljZSgpO1xuICAgIGZvciAobGV0IGkgPSBhcnIubGVuZ3RoOyBpIDwgc2l6ZTsgaSsrKSB7XG4gICAgICAgIGV4dGVuZGVkLnB1c2goY2FsbGJhY2soaSwgYXJyKSk7XG4gICAgfVxuICAgIHJldHVybiBleHRlbmRlZDtcbn07XG5leHBvcnRzLl9leHRlbmRBcnJheSA9IF9leHRlbmRBcnJheTtcbi8qKlxuICogQ29tcGxldGVzIGEgdGFibGUgYnkgYWRkaW5nIG1pc3NpbmcgZGVsaW1pdGVyIGFuZCBjZWxscy5cbiAqIEFmdGVyIGNvbXBsZXRpb24sIGFsbCByb3dzIGluIHRoZSB0YWJsZSBoYXZlIHRoZSBzYW1lIHdpZHRoLlxuICpcbiAqIEBwcml2YXRlXG4gKlxuICogQHRocm93cyB7RXJyb3J9IEVtcHR5IHRhYmxlLlxuICovXG5jb25zdCBjb21wbGV0ZVRhYmxlID0gKHRhYmxlLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgdGFibGVIZWlnaHQgPSB0YWJsZS5nZXRIZWlnaHQoKTtcbiAgICBjb25zdCB0YWJsZVdpZHRoID0gdGFibGUuZ2V0V2lkdGgoKTtcbiAgICBpZiAodGFibGVIZWlnaHQgPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbXB0eSB0YWJsZScpO1xuICAgIH1cbiAgICBjb25zdCByb3dzID0gdGFibGUuZ2V0Um93cygpO1xuICAgIGNvbnN0IG5ld1Jvd3MgPSBbXTtcbiAgICAvLyBoZWFkZXJcbiAgICBjb25zdCBoZWFkZXJSb3cgPSByb3dzWzBdO1xuICAgIGNvbnN0IGhlYWRlckNlbGxzID0gaGVhZGVyUm93LmdldENlbGxzKCk7XG4gICAgbmV3Um93cy5wdXNoKG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhleHBvcnRzLl9leHRlbmRBcnJheShoZWFkZXJDZWxscywgdGFibGVXaWR0aCwgKGopID0+IG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKGogPT09IGhlYWRlckNlbGxzLmxlbmd0aCA/IGhlYWRlclJvdy5tYXJnaW5SaWdodCA6ICcnKSksIGhlYWRlclJvdy5tYXJnaW5MZWZ0LCBoZWFkZXJDZWxscy5sZW5ndGggPCB0YWJsZVdpZHRoID8gJycgOiBoZWFkZXJSb3cubWFyZ2luUmlnaHQpKTtcbiAgICAvLyBkZWxpbWl0ZXJcbiAgICBjb25zdCBkZWxpbWl0ZXJSb3cgPSB0YWJsZS5nZXREZWxpbWl0ZXJSb3coKTtcbiAgICBpZiAoZGVsaW1pdGVyUm93ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgZGVsaW1pdGVyQ2VsbHMgPSBkZWxpbWl0ZXJSb3cuZ2V0Q2VsbHMoKTtcbiAgICAgICAgbmV3Um93cy5wdXNoKG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhleHBvcnRzLl9leHRlbmRBcnJheShkZWxpbWl0ZXJDZWxscywgdGFibGVXaWR0aCwgKGopID0+IG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKGV4cG9ydHMuX2RlbGltaXRlclRleHQoYWxpZ25tZW50XzEuQWxpZ25tZW50Lk5PTkUsIGogPT09IGRlbGltaXRlckNlbGxzLmxlbmd0aFxuICAgICAgICAgICAgPyBNYXRoLm1heChvcHRpb25zLm1pbkRlbGltaXRlcldpZHRoLCBkZWxpbWl0ZXJSb3cubWFyZ2luUmlnaHQubGVuZ3RoIC0gMilcbiAgICAgICAgICAgIDogb3B0aW9ucy5taW5EZWxpbWl0ZXJXaWR0aCkpKSwgZGVsaW1pdGVyUm93Lm1hcmdpbkxlZnQsIGRlbGltaXRlckNlbGxzLmxlbmd0aCA8IHRhYmxlV2lkdGggPyAnJyA6IGRlbGltaXRlclJvdy5tYXJnaW5SaWdodCkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgbmV3Um93cy5wdXNoKG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhleHBvcnRzLl9leHRlbmRBcnJheShbXSwgdGFibGVXaWR0aCwgKCkgPT4gbmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoZXhwb3J0cy5fZGVsaW1pdGVyVGV4dChhbGlnbm1lbnRfMS5BbGlnbm1lbnQuTk9ORSwgb3B0aW9ucy5taW5EZWxpbWl0ZXJXaWR0aCkpKSwgJycsICcnKSk7XG4gICAgfVxuICAgIC8vIGJvZHlcbiAgICBmb3IgKGxldCBpID0gZGVsaW1pdGVyUm93ICE9PSB1bmRlZmluZWQgPyAyIDogMTsgaSA8IHRhYmxlSGVpZ2h0OyBpKyspIHtcbiAgICAgICAgY29uc3Qgcm93ID0gcm93c1tpXTtcbiAgICAgICAgY29uc3QgY2VsbHMgPSByb3cuZ2V0Q2VsbHMoKTtcbiAgICAgICAgbmV3Um93cy5wdXNoKG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhleHBvcnRzLl9leHRlbmRBcnJheShjZWxscywgdGFibGVXaWR0aCwgKGopID0+IG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKGogPT09IGNlbGxzLmxlbmd0aCA/IHJvdy5tYXJnaW5SaWdodCA6ICcnKSksIHJvdy5tYXJnaW5MZWZ0LCBjZWxscy5sZW5ndGggPCB0YWJsZVdpZHRoID8gJycgOiByb3cubWFyZ2luUmlnaHQpKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGFibGU6IG5ldyB0YWJsZV8xLlRhYmxlKG5ld1Jvd3MpLFxuICAgICAgICBkZWxpbWl0ZXJJbnNlcnRlZDogZGVsaW1pdGVyUm93ID09PSB1bmRlZmluZWQsXG4gICAgfTtcbn07XG5leHBvcnRzLmNvbXBsZXRlVGFibGUgPSBjb21wbGV0ZVRhYmxlO1xuLyoqXG4gKiBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiBhIHRleHQgYmFzZWQgb24gY2hhcmFjdGVycycgRUFXIHByb3BlcnRpZXMuXG4gKlxuICogQHByaXZhdGVcbiAqXG4gKiBAcmV0dXJucyBDYWxjdWxhdGVkIHdpZHRoIG9mIHRoZSB0ZXh0LlxuICovXG5jb25zdCBfY29tcHV0ZVRleHRXaWR0aCA9ICh0ZXh0LCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IG9wdGlvbnMubm9ybWFsaXplID8gdGV4dC5ub3JtYWxpemUoJ05GQycpIDogdGV4dDtcbiAgICBsZXQgdyA9IDA7XG4gICAgZm9yIChjb25zdCBjaGFyIG9mIG5vcm1hbGl6ZWQpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMud2lkZUNoYXJzLmhhcyhjaGFyKSkge1xuICAgICAgICAgICAgdyArPSAyO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMubmFycm93Q2hhcnMuaGFzKGNoYXIpKSB7XG4gICAgICAgICAgICB3ICs9IDE7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKG1lYXdfMS5nZXRFQVcoY2hhcikpIHtcbiAgICAgICAgICAgIGNhc2UgJ0YnOlxuICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgdyArPSAyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQSc6XG4gICAgICAgICAgICAgICAgdyArPSBvcHRpb25zLmFtYmlndW91c0FzV2lkZSA/IDIgOiAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3ICs9IDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHc7XG59O1xuZXhwb3J0cy5fY29tcHV0ZVRleHRXaWR0aCA9IF9jb21wdXRlVGV4dFdpZHRoO1xuLyoqXG4gKiBSZXR1cm5zIGEgYWxpZ25lZCBjZWxsIGNvbnRlbnQuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IFVua25vd24gYWxpZ25tZW50LlxuICogQHRocm93cyB7RXJyb3J9IFVuZXhwZWN0ZWQgZGVmYXVsdCBhbGlnbm1lbnQuXG4gKi9cbmNvbnN0IF9hbGlnblRleHQgPSAodGV4dCwgd2lkdGgsIGFsaWdubWVudCwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHNwYWNlID0gd2lkdGggLSBleHBvcnRzLl9jb21wdXRlVGV4dFdpZHRoKHRleHQsIG9wdGlvbnMpO1xuICAgIGlmIChzcGFjZSA8IDApIHtcbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuICAgIHN3aXRjaCAoYWxpZ25tZW50KSB7XG4gICAgICAgIGNhc2UgYWxpZ25tZW50XzEuQWxpZ25tZW50Lk5PTkU6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgZGVmYXVsdCBhbGlnbm1lbnQnKTtcbiAgICAgICAgY2FzZSBhbGlnbm1lbnRfMS5BbGlnbm1lbnQuTEVGVDpcbiAgICAgICAgICAgIHJldHVybiB0ZXh0ICsgJyAnLnJlcGVhdChzcGFjZSk7XG4gICAgICAgIGNhc2UgYWxpZ25tZW50XzEuQWxpZ25tZW50LlJJR0hUOlxuICAgICAgICAgICAgcmV0dXJuICcgJy5yZXBlYXQoc3BhY2UpICsgdGV4dDtcbiAgICAgICAgY2FzZSBhbGlnbm1lbnRfMS5BbGlnbm1lbnQuQ0VOVEVSOlxuICAgICAgICAgICAgcmV0dXJuICgnICcucmVwZWF0KE1hdGguZmxvb3Ioc3BhY2UgLyAyKSkgK1xuICAgICAgICAgICAgICAgIHRleHQgK1xuICAgICAgICAgICAgICAgICcgJy5yZXBlYXQoTWF0aC5jZWlsKHNwYWNlIC8gMikpKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBhbGlnbm1lbnQ6ICcgKyBhbGlnbm1lbnQpO1xuICAgIH1cbn07XG5leHBvcnRzLl9hbGlnblRleHQgPSBfYWxpZ25UZXh0O1xuLyoqXG4gKiBKdXN0IGFkZHMgb25lIHNwYWNlIHBhZGRpbmdzIHRvIGJvdGggc2lkZXMgb2YgYSB0ZXh0LlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IF9wYWRUZXh0ID0gKHRleHQpID0+IGAgJHt0ZXh0fSBgO1xuZXhwb3J0cy5fcGFkVGV4dCA9IF9wYWRUZXh0O1xuLyoqXG4gKiBGb3JtYXRzIGEgdGFibGUuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgX2Zvcm1hdFRhYmxlID0gKHRhYmxlLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgdGFibGVIZWlnaHQgPSB0YWJsZS5nZXRIZWlnaHQoKTtcbiAgICBjb25zdCB0YWJsZVdpZHRoID0gdGFibGUuZ2V0V2lkdGgoKTtcbiAgICBpZiAodGFibGVIZWlnaHQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRhYmxlLFxuICAgICAgICAgICAgbWFyZ2luTGVmdDogJycsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IG1hcmdpbkxlZnQgPSB0YWJsZS5nZXRSb3dzKClbMF0ubWFyZ2luTGVmdDtcbiAgICBpZiAodGFibGVXaWR0aCA9PT0gMCkge1xuICAgICAgICBjb25zdCByb3dzID0gbmV3IEFycmF5KHRhYmxlSGVpZ2h0KS5maWxsKG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhbXSwgbWFyZ2luTGVmdCwgJycpKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRhYmxlOiBuZXcgdGFibGVfMS5UYWJsZShyb3dzKSxcbiAgICAgICAgICAgIG1hcmdpbkxlZnQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8vIGNvbXB1dGUgY29sdW1uIHdpZHRoc1xuICAgIGNvbnN0IGRlbGltaXRlclJvdyA9IHRhYmxlLmdldERlbGltaXRlclJvdygpO1xuICAgIGNvbnN0IGNvbHVtbldpZHRocyA9IG5ldyBBcnJheSh0YWJsZVdpZHRoKS5maWxsKDApO1xuICAgIGlmIChkZWxpbWl0ZXJSb3cgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBkZWxpbWl0ZXJSb3dXaWR0aCA9IGRlbGltaXRlclJvdy5nZXRXaWR0aCgpO1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGRlbGltaXRlclJvd1dpZHRoOyBqKyspIHtcbiAgICAgICAgICAgIGNvbHVtbldpZHRoc1tqXSA9IG9wdGlvbnMubWluRGVsaW1pdGVyV2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWJsZUhlaWdodDsgaSsrKSB7XG4gICAgICAgIGlmIChkZWxpbWl0ZXJSb3cgIT09IHVuZGVmaW5lZCAmJiBpID09PSAxKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3cgPSB0YWJsZS5nZXRSb3dzKClbaV07XG4gICAgICAgIGNvbnN0IHJvd1dpZHRoID0gcm93LmdldFdpZHRoKCk7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcm93V2lkdGg7IGorKykge1xuICAgICAgICAgICAgY29sdW1uV2lkdGhzW2pdID0gTWF0aC5tYXgoY29sdW1uV2lkdGhzW2pdLCBleHBvcnRzLl9jb21wdXRlVGV4dFdpZHRoKHJvdy5nZXRDZWxsQXQoaikuY29udGVudCwgb3B0aW9ucy50ZXh0V2lkdGhPcHRpb25zKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gZ2V0IGNvbHVtbiBhbGlnbm1lbnRzXG4gICAgY29uc3QgYWxpZ25tZW50cyA9IGRlbGltaXRlclJvdyAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gZXhwb3J0cy5fZXh0ZW5kQXJyYXkoZGVsaW1pdGVyUm93LmdldENlbGxzKCkubWFwKChjZWxsKSA9PiBjZWxsLmdldEFsaWdubWVudCgpKSwgdGFibGVXaWR0aCwgXG4gICAgICAgIC8vIFNhZmUgY29udmVyc2lvbiBiZWNhdXNlIERlZmF1bHRBbGlnbm1lbnQgaXMgYSBzdWJzZXQgb2YgQWxpZ25tZW50XG4gICAgICAgICgpID0+IG9wdGlvbnMuZGVmYXVsdEFsaWdubWVudClcbiAgICAgICAgOiBuZXcgQXJyYXkodGFibGVXaWR0aCkuZmlsbChvcHRpb25zLmRlZmF1bHRBbGlnbm1lbnQpO1xuICAgIC8vIGZvcm1hdFxuICAgIGNvbnN0IHJvd3MgPSBbXTtcbiAgICAvLyBoZWFkZXJcbiAgICBjb25zdCBoZWFkZXJSb3cgPSB0YWJsZS5nZXRSb3dzKClbMF07XG4gICAgcm93cy5wdXNoKG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhoZWFkZXJSb3dcbiAgICAgICAgLmdldENlbGxzKClcbiAgICAgICAgLm1hcCgoY2VsbCwgaikgPT4gbmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoZXhwb3J0cy5fcGFkVGV4dChleHBvcnRzLl9hbGlnblRleHQoY2VsbC5jb250ZW50LCBjb2x1bW5XaWR0aHNbal0sIG9wdGlvbnMuaGVhZGVyQWxpZ25tZW50ID09PSBhbGlnbm1lbnRfMS5IZWFkZXJBbGlnbm1lbnQuRk9MTE9XXG4gICAgICAgID8gYWxpZ25tZW50c1tqXSA9PT0gYWxpZ25tZW50XzEuQWxpZ25tZW50Lk5PTkVcbiAgICAgICAgICAgID8gb3B0aW9ucy5kZWZhdWx0QWxpZ25tZW50XG4gICAgICAgICAgICA6IGFsaWdubWVudHNbal1cbiAgICAgICAgOiBvcHRpb25zLmhlYWRlckFsaWdubWVudCwgb3B0aW9ucy50ZXh0V2lkdGhPcHRpb25zKSkpKSwgbWFyZ2luTGVmdCwgJycpKTtcbiAgICAvLyBkZWxpbWl0ZXJcbiAgICBpZiAoZGVsaW1pdGVyUm93ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcm93cy5wdXNoKG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhkZWxpbWl0ZXJSb3dcbiAgICAgICAgICAgIC5nZXRDZWxscygpXG4gICAgICAgICAgICAubWFwKChjZWxsLCBqKSA9PiBuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbChleHBvcnRzLl9kZWxpbWl0ZXJUZXh0KGFsaWdubWVudHNbal0sIGNvbHVtbldpZHRoc1tqXSkpKSwgbWFyZ2luTGVmdCwgJycpKTtcbiAgICB9XG4gICAgLy8gYm9keVxuICAgIGZvciAobGV0IGkgPSBkZWxpbWl0ZXJSb3cgIT09IHVuZGVmaW5lZCA/IDIgOiAxOyBpIDwgdGFibGVIZWlnaHQ7IGkrKykge1xuICAgICAgICBjb25zdCByb3cgPSB0YWJsZS5nZXRSb3dzKClbaV07XG4gICAgICAgIHJvd3MucHVzaChuZXcgdGFibGVfcm93XzEuVGFibGVSb3cocm93XG4gICAgICAgICAgICAuZ2V0Q2VsbHMoKVxuICAgICAgICAgICAgLm1hcCgoY2VsbCwgaikgPT4gbmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoZXhwb3J0cy5fcGFkVGV4dChleHBvcnRzLl9hbGlnblRleHQoY2VsbC5jb250ZW50LCBjb2x1bW5XaWR0aHNbal0sIGFsaWdubWVudHNbal0gPT09IGFsaWdubWVudF8xLkFsaWdubWVudC5OT05FXG4gICAgICAgICAgICA/IG9wdGlvbnMuZGVmYXVsdEFsaWdubWVudFxuICAgICAgICAgICAgOiBhbGlnbm1lbnRzW2pdLCBvcHRpb25zLnRleHRXaWR0aE9wdGlvbnMpKSkpLCBtYXJnaW5MZWZ0LCAnJykpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICB0YWJsZTogbmV3IHRhYmxlXzEuVGFibGUocm93cyksXG4gICAgICAgIG1hcmdpbkxlZnQsXG4gICAgfTtcbn07XG5leHBvcnRzLl9mb3JtYXRUYWJsZSA9IF9mb3JtYXRUYWJsZTtcbi8qKlxuICogRm9ybWF0cyBhIHRhYmxlIHdlYWtseS5cbiAqIFJvd3MgYXJlIGZvcm1hdHRlZCBpbmRlcGVuZGVudGx5IHRvIGVhY2ggb3RoZXIsIGNlbGwgY29udGVudHMgYXJlIGp1c3QgdHJpbW1lZCBhbmQgbm90IGFsaWduZWQuXG4gKiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHVzaW5nIGEgbm9uLW1vbm9zcGFjZWQgZm9udCBvciBkZWFsaW5nIHdpdGggd2lkZSB0YWJsZXMuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgX3dlYWtGb3JtYXRUYWJsZSA9ICh0YWJsZSwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHRhYmxlSGVpZ2h0ID0gdGFibGUuZ2V0SGVpZ2h0KCk7XG4gICAgY29uc3QgdGFibGVXaWR0aCA9IHRhYmxlLmdldFdpZHRoKCk7XG4gICAgaWYgKHRhYmxlSGVpZ2h0ID09PSAwKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0YWJsZSxcbiAgICAgICAgICAgIG1hcmdpbkxlZnQ6ICcnLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBtYXJnaW5MZWZ0ID0gdGFibGUuZ2V0Um93cygpWzBdLm1hcmdpbkxlZnQ7XG4gICAgaWYgKHRhYmxlV2lkdGggPT09IDApIHtcbiAgICAgICAgY29uc3Qgcm93cyA9IG5ldyBBcnJheSh0YWJsZUhlaWdodCkuZmlsbChuZXcgdGFibGVfcm93XzEuVGFibGVSb3coW10sIG1hcmdpbkxlZnQsICcnKSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0YWJsZTogbmV3IHRhYmxlXzEuVGFibGUocm93cyksXG4gICAgICAgICAgICBtYXJnaW5MZWZ0LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBkZWxpbWl0ZXJSb3cgPSB0YWJsZS5nZXREZWxpbWl0ZXJSb3coKTtcbiAgICAvLyBmb3JtYXRcbiAgICBjb25zdCByb3dzID0gW107XG4gICAgLy8gaGVhZGVyXG4gICAgY29uc3QgaGVhZGVyUm93ID0gdGFibGUuZ2V0Um93cygpWzBdO1xuICAgIHJvd3MucHVzaChuZXcgdGFibGVfcm93XzEuVGFibGVSb3coaGVhZGVyUm93LmdldENlbGxzKCkubWFwKChjZWxsKSA9PiBuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbChleHBvcnRzLl9wYWRUZXh0KGNlbGwuY29udGVudCkpKSwgbWFyZ2luTGVmdCwgJycpKTtcbiAgICAvLyBkZWxpbWl0ZXJcbiAgICBpZiAoZGVsaW1pdGVyUm93ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcm93cy5wdXNoKG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhkZWxpbWl0ZXJSb3dcbiAgICAgICAgICAgIC5nZXRDZWxscygpXG4gICAgICAgICAgICAubWFwKChjZWxsKSA9PiBuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbChleHBvcnRzLl9kZWxpbWl0ZXJUZXh0KGNlbGwuZ2V0QWxpZ25tZW50KCksIG9wdGlvbnMubWluRGVsaW1pdGVyV2lkdGgpKSksIG1hcmdpbkxlZnQsICcnKSk7XG4gICAgfVxuICAgIC8vIGJvZHlcbiAgICBmb3IgKGxldCBpID0gZGVsaW1pdGVyUm93ICE9PSB1bmRlZmluZWQgPyAyIDogMTsgaSA8IHRhYmxlSGVpZ2h0OyBpKyspIHtcbiAgICAgICAgY29uc3Qgcm93ID0gdGFibGUuZ2V0Um93cygpW2ldO1xuICAgICAgICByb3dzLnB1c2gobmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KHJvdy5nZXRDZWxscygpLm1hcCgoY2VsbCkgPT4gbmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoZXhwb3J0cy5fcGFkVGV4dChjZWxsLmNvbnRlbnQpKSksIG1hcmdpbkxlZnQsICcnKSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHRhYmxlOiBuZXcgdGFibGVfMS5UYWJsZShyb3dzKSxcbiAgICAgICAgbWFyZ2luTGVmdCxcbiAgICB9O1xufTtcbmV4cG9ydHMuX3dlYWtGb3JtYXRUYWJsZSA9IF93ZWFrRm9ybWF0VGFibGU7XG4vKipcbiAqIFJlcHJlc2VudHMgdGFibGUgZm9ybWF0IHR5cGUuXG4gKlxuICogLSBgRm9ybWF0VHlwZS5OT1JNQUxgIC0gRm9ybWF0cyB0YWJsZSBub3JtYWxseS5cbiAqIC0gYEZvcm1hdFR5cGUuV0VBS2AgLSBGb3JtYXRzIHRhYmxlIHdlYWtseSwgcm93cyBhcmUgZm9ybWF0dGVkIGluZGVwZW5kZW50bHkgdG8gZWFjaCBvdGhlciwgY2VsbFxuICogICBjb250ZW50cyBhcmUganVzdCB0cmltbWVkIGFuZCBub3QgYWxpZ25lZC5cbiAqL1xudmFyIEZvcm1hdFR5cGU7XG4oZnVuY3Rpb24gKEZvcm1hdFR5cGUpIHtcbiAgICBGb3JtYXRUeXBlW1wiTk9STUFMXCJdID0gXCJub3JtYWxcIjtcbiAgICBGb3JtYXRUeXBlW1wiV0VBS1wiXSA9IFwid2Vha1wiO1xufSkoRm9ybWF0VHlwZSA9IGV4cG9ydHMuRm9ybWF0VHlwZSB8fCAoZXhwb3J0cy5Gb3JtYXRUeXBlID0ge30pKTtcbi8qKlxuICogRm9ybWF0cyBhIHRhYmxlLlxuICpcbiAqIEBwcml2YXRlXG4gKlxuICogQHRocm93cyB7RXJyb3J9IFVua25vd24gZm9ybWF0IHR5cGUuXG4gKi9cbmNvbnN0IGZvcm1hdFRhYmxlID0gKHRhYmxlLCBvcHRpb25zKSA9PiB7XG4gICAgc3dpdGNoIChvcHRpb25zLmZvcm1hdFR5cGUpIHtcbiAgICAgICAgY2FzZSBGb3JtYXRUeXBlLk5PUk1BTDpcbiAgICAgICAgICAgIHJldHVybiBleHBvcnRzLl9mb3JtYXRUYWJsZSh0YWJsZSwgb3B0aW9ucyk7XG4gICAgICAgIGNhc2UgRm9ybWF0VHlwZS5XRUFLOlxuICAgICAgICAgICAgcmV0dXJuIGV4cG9ydHMuX3dlYWtGb3JtYXRUYWJsZSh0YWJsZSwgb3B0aW9ucyk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gZm9ybWF0IHR5cGU6ICcgKyBvcHRpb25zLmZvcm1hdFR5cGUpO1xuICAgIH1cbn07XG5leHBvcnRzLmZvcm1hdFRhYmxlID0gZm9ybWF0VGFibGU7XG4vKipcbiAqIEFsdGVycyBhIGNvbHVtbidzIGFsaWdubWVudCBvZiBhIHRhYmxlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gdGFibGUgLSBBIGNvbXBsZXRlZCBub24tZW1wdHkgdGFibGUuXG4gKiBAcGFyYW0gY29sdW1uSW5kZXggLSBBbiBpbmRleCBvZiB0aGUgY29sdW1uLlxuICogQHBhcmFtIGFsaWdubWVudCAtIEEgbmV3IGFsaWdubWVudCBvZiB0aGUgY29sdW1uLlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3QgY29udGFpbmluZyBvcHRpb25zIGZvciBjb21wbGV0aW9uLlxuICogQHJldHVybnMge1RhYmxlfSBBbiBhbHRlcmVkIHRhYmxlIG9iamVjdC5cbiAqIElmIHRoZSBjb2x1bW4gaW5kZXggaXMgb3V0IG9mIHJhbmdlLCByZXR1cm5zIHRoZSBvcmlnaW5hbCB0YWJsZS5cbiAqL1xuY29uc3QgYWx0ZXJBbGlnbm1lbnQgPSAodGFibGUsIGNvbHVtbkluZGV4LCBhbGlnbm1lbnQsIG9wdGlvbnMpID0+IHtcbiAgICBpZiAodGFibGUuZ2V0SGVpZ2h0KCkgPCAxKSB7XG4gICAgICAgIHJldHVybiB0YWJsZTtcbiAgICB9XG4gICAgY29uc3QgZGVsaW1pdGVyUm93ID0gdGFibGUuZ2V0Um93cygpWzFdO1xuICAgIGlmIChjb2x1bW5JbmRleCA8IDAgfHwgZGVsaW1pdGVyUm93LmdldFdpZHRoKCkgLSAxIDwgY29sdW1uSW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIHRhYmxlO1xuICAgIH1cbiAgICBjb25zdCBkZWxpbWl0ZXJDZWxscyA9IGRlbGltaXRlclJvdy5nZXRDZWxscygpO1xuICAgIGRlbGltaXRlckNlbGxzW2NvbHVtbkluZGV4XSA9IG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKGV4cG9ydHMuX2RlbGltaXRlclRleHQoYWxpZ25tZW50LCBvcHRpb25zLm1pbkRlbGltaXRlcldpZHRoKSk7XG4gICAgY29uc3Qgcm93cyA9IHRhYmxlLmdldFJvd3MoKTtcbiAgICByb3dzWzFdID0gbmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KGRlbGltaXRlckNlbGxzLCBkZWxpbWl0ZXJSb3cubWFyZ2luTGVmdCwgZGVsaW1pdGVyUm93Lm1hcmdpblJpZ2h0KTtcbiAgICByZXR1cm4gbmV3IHRhYmxlXzEuVGFibGUocm93cyk7XG59O1xuZXhwb3J0cy5hbHRlckFsaWdubWVudCA9IGFsdGVyQWxpZ25tZW50O1xuLyoqXG4gKiBJbnNlcnRzIGEgcm93IHRvIGEgdGFibGUuXG4gKiBUaGUgcm93IGlzIGFsd2F5cyBpbnNlcnRlZCBhZnRlciB0aGUgaGVhZGVyIGFuZCB0aGUgZGVsaW1pdGVyIHJvd3MsIGV2ZW4gaWYgdGhlIGluZGV4IHNwZWNpZmllc1xuICogdGhlIGhlYWRlciBvciB0aGUgZGVsaW1pdGVyLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gdGFibGUgLSBBIGNvbXBsZXRlZCBub24tZW1wdHkgdGFibGUuXG4gKiBAcGFyYW0gcm93SW5kZXggLSBBbiByb3cgaW5kZXggYXQgd2hpY2ggYSBuZXcgcm93IHdpbGwgYmUgaW5zZXJ0ZWQuXG4gKiBAcGFyYW0gcm93IC0gQSB0YWJsZSByb3cgdG8gYmUgaW5zZXJ0ZWQuXG4gKiBAcmV0dXJucyBBbiBhbHRlcmVkIHRhYmxlIG9iZWpjdC5cbiAqL1xuY29uc3QgaW5zZXJ0Um93ID0gKHRhYmxlLCByb3dJbmRleCwgcm93KSA9PiB7XG4gICAgY29uc3Qgcm93cyA9IHRhYmxlLmdldFJvd3MoKTtcbiAgICByb3dzLnNwbGljZShNYXRoLm1heChyb3dJbmRleCwgMiksIDAsIHJvdyk7XG4gICAgcmV0dXJuIG5ldyB0YWJsZV8xLlRhYmxlKHJvd3MpO1xufTtcbmV4cG9ydHMuaW5zZXJ0Um93ID0gaW5zZXJ0Um93O1xuLyoqXG4gKiBEZWxldGVzIGEgcm93IGluIGEgdGFibGUuXG4gKiBJZiB0aGUgaW5kZXggc3BlY2lmaWVzIHRoZSBoZWFkZXIgcm93LCB0aGUgY2VsbHMgYXJlIGVtcHRpZWQgYnV0IHRoZSByb3cgd2lsbCBub3QgYmUgcmVtb3ZlZC5cbiAqIElmIHRoZSBpbmRleCBzcGVjaWZpZXMgdGhlIGRlbGltaXRlciByb3csIGl0IGRvZXMgbm90aGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHRhYmxlIC0gQSBjb21wbGV0ZWQgbm9uLWVtcHR5IHRhYmxlLlxuICogQHBhcmFtIHJvd0luZGV4IC0gQW4gaW5kZXggb2YgdGhlIHJvdyB0byBiZSBkZWxldGVkLlxuICogQHJldHVybnMgQW4gYWx0ZXJlZCB0YWJsZSBvYmVqY3QuXG4gKi9cbmNvbnN0IGRlbGV0ZVJvdyA9ICh0YWJsZSwgcm93SW5kZXgpID0+IHtcbiAgICBpZiAocm93SW5kZXggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHRhYmxlO1xuICAgIH1cbiAgICBjb25zdCByb3dzID0gdGFibGUuZ2V0Um93cygpO1xuICAgIGlmIChyb3dJbmRleCA9PT0gMCkge1xuICAgICAgICBjb25zdCBoZWFkZXJSb3cgPSByb3dzWzBdO1xuICAgICAgICByb3dzWzBdID0gbmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KG5ldyBBcnJheShoZWFkZXJSb3cuZ2V0V2lkdGgoKSkuZmlsbChuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbCgnJykpLCBoZWFkZXJSb3cubWFyZ2luTGVmdCwgaGVhZGVyUm93Lm1hcmdpblJpZ2h0KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJvd3Muc3BsaWNlKHJvd0luZGV4LCAxKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyB0YWJsZV8xLlRhYmxlKHJvd3MpO1xufTtcbmV4cG9ydHMuZGVsZXRlUm93ID0gZGVsZXRlUm93O1xuLyoqXG4gKiBNb3ZlcyBhIHJvdyBhdCB0aGUgaW5kZXggdG8gdGhlIHNwZWNpZmllZCBkZXN0aW5hdGlvbi5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHRhYmxlIC0gQSBjb21wbGV0ZWQgbm9uLWVtcHR5IHRhYmxlLlxuICogQHBhcmFtIHJvd0luZGV4IC0gSW5kZXggb2YgdGhlIHJvdyB0byBiZSBtb3ZlZC5cbiAqIEBwYXJhbSBkZXN0SW5kZXggLSBJbmRleCBvZiB0aGUgZGVzdGluYXRpb24uXG4gKiBAcmV0dXJucyBBbiBhbHRlcmVkIHRhYmxlIG9iamVjdC5cbiAqL1xuY29uc3QgbW92ZVJvdyA9ICh0YWJsZSwgcm93SW5kZXgsIGRlc3RJbmRleCkgPT4ge1xuICAgIGlmIChyb3dJbmRleCA8PSAxIHx8IGRlc3RJbmRleCA8PSAxIHx8IHJvd0luZGV4ID09PSBkZXN0SW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIHRhYmxlO1xuICAgIH1cbiAgICBjb25zdCByb3dzID0gdGFibGUuZ2V0Um93cygpO1xuICAgIGNvbnN0IHJvdyA9IHJvd3Nbcm93SW5kZXhdO1xuICAgIHJvd3Muc3BsaWNlKHJvd0luZGV4LCAxKTtcbiAgICByb3dzLnNwbGljZShkZXN0SW5kZXgsIDAsIHJvdyk7XG4gICAgcmV0dXJuIG5ldyB0YWJsZV8xLlRhYmxlKHJvd3MpO1xufTtcbmV4cG9ydHMubW92ZVJvdyA9IG1vdmVSb3c7XG4vKipcbiAqIEluc2VydHMgYSBjb2x1bW4gdG8gYSB0YWJsZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHRhYmxlIC0gQSBjb21wbGV0ZWQgbm9uLWVtcHR5IHRhYmxlLlxuICogQHBhcmFtIGNvbHVtbkluZGV4IC0gQW4gY29sdW1uIGluZGV4IGF0IHdoaWNoIHRoZSBuZXcgY29sdW1uIHdpbGwgYmUgaW5zZXJ0ZWQuXG4gKiBAcGFyYW0gY29sdW1uIC0gQW4gYXJyYXkgb2YgY2VsbHMuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCBjb250YWluaW5nIG9wdGlvbnMgZm9yIGNvbXBsZXRpb24uXG4gKiBAcmV0dXJucyBBbiBhbHRlcmVkIHRhYmxlIG9iZWpjdC5cbiAqL1xuY29uc3QgaW5zZXJ0Q29sdW1uID0gKHRhYmxlLCBjb2x1bW5JbmRleCwgY29sdW1uLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3Qgcm93cyA9IHRhYmxlLmdldFJvd3MoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgcm93ID0gcm93c1tpXTtcbiAgICAgICAgY29uc3QgY2VsbHMgPSByb3dzW2ldLmdldENlbGxzKCk7XG4gICAgICAgIGNvbnN0IGNlbGwgPSBpID09PSAxXG4gICAgICAgICAgICA/IG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKGV4cG9ydHMuX2RlbGltaXRlclRleHQoYWxpZ25tZW50XzEuQWxpZ25tZW50Lk5PTkUsIG9wdGlvbnMubWluRGVsaW1pdGVyV2lkdGgpKVxuICAgICAgICAgICAgOiBjb2x1bW5baSA+IDEgPyBpIC0gMSA6IGldO1xuICAgICAgICBjZWxscy5zcGxpY2UoY29sdW1uSW5kZXgsIDAsIGNlbGwpO1xuICAgICAgICByb3dzW2ldID0gbmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KGNlbGxzLCByb3cubWFyZ2luTGVmdCwgcm93Lm1hcmdpblJpZ2h0KTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyB0YWJsZV8xLlRhYmxlKHJvd3MpO1xufTtcbmV4cG9ydHMuaW5zZXJ0Q29sdW1uID0gaW5zZXJ0Q29sdW1uO1xuLyoqXG4gKiBEZWxldGVzIGEgY29sdW1uIGluIGEgdGFibGUuXG4gKiBJZiB0aGVyZSB3aWxsIGJlIG5vIGNvbHVtbnMgYWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUgY2VsbHMgYXJlIGVtcHRpZWQgYnV0IHRoZSBjb2x1bW4gd2lsbCBub3QgYmVcbiAqIHJlbW92ZWQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB0YWJsZSAtIEEgY29tcGxldGVkIG5vbi1lbXB0eSB0YWJsZS5cbiAqIEBwYXJhbSBjb2x1bW5JbmRleCAtIEFuIGluZGV4IG9mIHRoZSBjb2x1bW4gdG8gYmUgZGVsZXRlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgb3B0aW9ucyBmb3IgY29tcGxldGlvbi5cbiAqIEByZXR1cm5zIEFuIGFsdGVyZWQgdGFibGUgb2JqZWN0LlxuICovXG5jb25zdCBkZWxldGVDb2x1bW4gPSAodGFibGUsIGNvbHVtbkluZGV4LCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3Qgcm93cyA9IHRhYmxlLmdldFJvd3MoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgcm93ID0gcm93c1tpXTtcbiAgICAgICAgbGV0IGNlbGxzID0gcm93LmdldENlbGxzKCk7XG4gICAgICAgIGlmIChjZWxscy5sZW5ndGggPD0gMSkge1xuICAgICAgICAgICAgY2VsbHMgPSBbXG4gICAgICAgICAgICAgICAgbmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoaSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICA/IGV4cG9ydHMuX2RlbGltaXRlclRleHQoYWxpZ25tZW50XzEuQWxpZ25tZW50Lk5PTkUsIG9wdGlvbnMubWluRGVsaW1pdGVyV2lkdGgpXG4gICAgICAgICAgICAgICAgICAgIDogJycpLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNlbGxzLnNwbGljZShjb2x1bW5JbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgcm93c1tpXSA9IG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhjZWxscywgcm93Lm1hcmdpbkxlZnQsIHJvdy5tYXJnaW5SaWdodCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgdGFibGVfMS5UYWJsZShyb3dzKTtcbn07XG5leHBvcnRzLmRlbGV0ZUNvbHVtbiA9IGRlbGV0ZUNvbHVtbjtcbi8qKlxuICogTW92ZXMgYSBjb2x1bW4gYXQgdGhlIGluZGV4IHRvIHRoZSBzcGVjaWZpZWQgZGVzdGluYXRpb24uXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB0YWJsZSAtIEEgY29tcGxldGVkIG5vbi1lbXB0eSB0YWJsZS5cbiAqIEBwYXJhbSBjb2x1bW5JbmRleCAtIEluZGV4IG9mIHRoZSBjb2x1bW4gdG8gYmUgbW92ZWQuXG4gKiBAcGFyYW0gZGVzdEluZGV4IC0gSW5kZXggb2YgdGhlIGRlc3RpbmF0aW9uLlxuICogQHJldHVybnMgQW4gYWx0ZXJlZCB0YWJsZSBvYmplY3QuXG4gKi9cbmNvbnN0IG1vdmVDb2x1bW4gPSAodGFibGUsIGNvbHVtbkluZGV4LCBkZXN0SW5kZXgpID0+IHtcbiAgICBpZiAoY29sdW1uSW5kZXggPT09IGRlc3RJbmRleCkge1xuICAgICAgICByZXR1cm4gdGFibGU7XG4gICAgfVxuICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5nZXRSb3dzKCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHJvdyA9IHJvd3NbaV07XG4gICAgICAgIGNvbnN0IGNlbGxzID0gcm93LmdldENlbGxzKCk7XG4gICAgICAgIGNvbnN0IGNlbGwgPSBjZWxsc1tjb2x1bW5JbmRleF07XG4gICAgICAgIGNlbGxzLnNwbGljZShjb2x1bW5JbmRleCwgMSk7XG4gICAgICAgIGNlbGxzLnNwbGljZShkZXN0SW5kZXgsIDAsIGNlbGwpO1xuICAgICAgICByb3dzW2ldID0gbmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KGNlbGxzLCByb3cubWFyZ2luTGVmdCwgcm93Lm1hcmdpblJpZ2h0KTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyB0YWJsZV8xLlRhYmxlKHJvd3MpO1xufTtcbmV4cG9ydHMubW92ZUNvbHVtbiA9IG1vdmVDb2x1bW47XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuc2hvcnRlc3RFZGl0U2NyaXB0ID0gZXhwb3J0cy5hcHBseUVkaXRTY3JpcHQgPSBleHBvcnRzLl9hcHBseUNvbW1hbmQgPSBleHBvcnRzLkRlbGV0ZSA9IGV4cG9ydHMuSW5zZXJ0ID0gdm9pZCAwO1xuLyoqXG4gKiBUaGUgYEluc2VydGAgY2xhc3MgcmVwcmVzZW50cyBhbiBpbnNlcnRpb24gb2YgYSBsaW5lLlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIEluc2VydCB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRzIGEgbmV3IGBJbnNlcnRgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb3cgLSBSb3cgaW5kZXgsIHN0YXJ0cyBmcm9tIGAwYC5cbiAgICAgKiBAcGFyYW0gbGluZSAtIEEgc3RyaW5nIHRvIGJlIGluc2VydGVkIGF0IHRoZSByb3cuXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iocm93LCBsaW5lKSB7XG4gICAgICAgIHRoaXMucm93ID0gcm93O1xuICAgICAgICB0aGlzLmxpbmUgPSBsaW5lO1xuICAgIH1cbn1cbmV4cG9ydHMuSW5zZXJ0ID0gSW5zZXJ0O1xuLyoqXG4gKiBUaGUgYERlbGV0ZWAgY2xhc3MgcmVwcmVzZW50cyBhIGRlbGV0aW9uIG9mIGEgbGluZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBEZWxldGUge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgYERlbGV0ZWAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvdyAtIFJvdyBpbmRleCwgc3RhcnRzIGZyb20gYDBgLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHJvdykge1xuICAgICAgICB0aGlzLnJvdyA9IHJvdztcbiAgICB9XG59XG5leHBvcnRzLkRlbGV0ZSA9IERlbGV0ZTtcbi8qKlxuICogQXBwbGllcyBhIGNvbW1hbmQgdG8gdGhlIHRleHQgZWRpdG9yLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gdGV4dEVkaXRvciAtIEFuIGludGVyZmFjZSB0byB0aGUgdGV4dCBlZGl0b3IuXG4gKiBAcGFyYW0gY29tbWFuZCAtIEEgY29tbWFuZC5cbiAqIEBwYXJhbSByb3dPZmZzZXQgLSBPZmZzZXQgdG8gdGhlIHJvdyBpbmRleCBvZiB0aGUgY29tbWFuZC5cbiAqL1xuY29uc3QgX2FwcGx5Q29tbWFuZCA9ICh0ZXh0RWRpdG9yLCBjb21tYW5kLCByb3dPZmZzZXQpID0+IHtcbiAgICBpZiAoY29tbWFuZCBpbnN0YW5jZW9mIEluc2VydCkge1xuICAgICAgICB0ZXh0RWRpdG9yLmluc2VydExpbmUocm93T2Zmc2V0ICsgY29tbWFuZC5yb3csIGNvbW1hbmQubGluZSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbW1hbmQgaW5zdGFuY2VvZiBEZWxldGUpIHtcbiAgICAgICAgdGV4dEVkaXRvci5kZWxldGVMaW5lKHJvd09mZnNldCArIGNvbW1hbmQucm93KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBjb21tYW5kJyk7XG4gICAgfVxufTtcbmV4cG9ydHMuX2FwcGx5Q29tbWFuZCA9IF9hcHBseUNvbW1hbmQ7XG4vKipcbiAqIEFwcGx5IGFuIGVkaXQgc2NyaXB0IChhcnJheSBvZiBjb21tYW5kcykgdG8gdGhlIHRleHQgZWRpdG9yLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gdGV4dEVkaXRvciAtIEFuIGludGVyZmFjZSB0byB0aGUgdGV4dCBlZGl0b3IuXG4gKiBAcGFyYW0gc2NyaXB0IC0gQW4gYXJyYXkgb2YgY29tbWFuZHMuXG4gKiBUaGUgY29tbWFuZHMgYXJlIGFwcGxpZWQgc2VxdWVudGlhbGx5IGluIHRoZSBvcmRlciBvZiB0aGUgYXJyYXkuXG4gKiBAcGFyYW0gcm93T2Zmc2V0IC0gT2Zmc2V0IHRvIHRoZSByb3cgaW5kZXggb2YgdGhlIGNvbW1hbmRzLlxuICovXG5jb25zdCBhcHBseUVkaXRTY3JpcHQgPSAodGV4dEVkaXRvciwgc2NyaXB0LCByb3dPZmZzZXQpID0+IHtcbiAgICBmb3IgKGNvbnN0IGNvbW1hbmQgb2Ygc2NyaXB0KSB7XG4gICAgICAgIGV4cG9ydHMuX2FwcGx5Q29tbWFuZCh0ZXh0RWRpdG9yLCBjb21tYW5kLCByb3dPZmZzZXQpO1xuICAgIH1cbn07XG5leHBvcnRzLmFwcGx5RWRpdFNjcmlwdCA9IGFwcGx5RWRpdFNjcmlwdDtcbi8qKlxuICogTGlua2VkIGxpc3QgdXNlZCB0byByZW1lbWJlciBlZGl0IHNjcmlwdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBJTGlzdCB7XG4gICAgZ2V0IGNhcigpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgICB9XG4gICAgZ2V0IGNkcigpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgICB9XG4gICAgaXNFbXB0eSgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgICB9XG4gICAgdW5zaGlmdCh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gbmV3IENvbnModmFsdWUsIHRoaXMpO1xuICAgIH1cbiAgICB0b0FycmF5KCkge1xuICAgICAgICBjb25zdCBhcnIgPSBbXTtcbiAgICAgICAgbGV0IHJlc3QgPSB0aGlzO1xuICAgICAgICB3aGlsZSAoIXJlc3QuaXNFbXB0eSgpKSB7XG4gICAgICAgICAgICBhcnIucHVzaChyZXN0LmNhcik7XG4gICAgICAgICAgICByZXN0ID0gcmVzdC5jZHI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFycjtcbiAgICB9XG59XG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIE5pbCBleHRlbmRzIElMaXN0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgZ2V0IGNhcigpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbXB0eSBsaXN0Jyk7XG4gICAgfVxuICAgIGdldCBjZHIoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRW1wdHkgbGlzdCcpO1xuICAgIH1cbiAgICBpc0VtcHR5KCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIENvbnMgZXh0ZW5kcyBJTGlzdCB7XG4gICAgY29uc3RydWN0b3IoY2FyLCBjZHIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fY2FyID0gY2FyO1xuICAgICAgICB0aGlzLl9jZHIgPSBjZHI7XG4gICAgfVxuICAgIGdldCBjYXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jYXI7XG4gICAgfVxuICAgIGdldCBjZHIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jZHI7XG4gICAgfVxuICAgIGlzRW1wdHkoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4vKipcbiAqIENvbXB1dGVzIHRoZSBzaG9ydGVzdCBlZGl0IHNjcmlwdCBiZXR3ZWVuIHR3byBhcnJheXMgb2Ygc3RyaW5ncy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIGZyb20gLSBBbiBhcnJheSBvZiBzdHJpbmcgdGhlIGVkaXQgc3RhcnRzIGZyb20uXG4gKiBAcGFyYW0gdG8gLSBBbiBhcnJheSBvZiBzdHJpbmcgdGhlIGVkaXQgZ29lcyB0by5cbiAqIEBwYXJhbSBbbGltaXQ9LTFdIC0gVXBwZXIgbGltaXQgb2YgZWRpdCBkaXN0YW5jZSB0byBiZSBzZWFyY2hlZC5cbiAqIElmIG5lZ2F0aXZlLCB0aGVyZSBpcyBubyBsaW1pdC5cbiAqIEByZXR1cm5zIFRoZSBzaG9ydGVzdCBlZGl0IHNjcmlwdCB0aGF0IHR1cm5zIGBmcm9tYCBpbnRvIGB0b2A7XG4gKiBgdW5kZWZpbmVkYCBpZiBubyBlZGl0IHNjcmlwdCBpcyBmb3VuZCBpbiB0aGUgZ2l2ZW4gcmFuZ2UuXG4gKi9cbmNvbnN0IHNob3J0ZXN0RWRpdFNjcmlwdCA9IChmcm9tLCB0bywgbGltaXQgPSAtMSkgPT4ge1xuICAgIGNvbnN0IGZyb21MZW4gPSBmcm9tLmxlbmd0aDtcbiAgICBjb25zdCB0b0xlbiA9IHRvLmxlbmd0aDtcbiAgICBjb25zdCBtYXhkID0gbGltaXQgPj0gMCA/IE1hdGgubWluKGxpbWl0LCBmcm9tTGVuICsgdG9MZW4pIDogZnJvbUxlbiArIHRvTGVuO1xuICAgIGNvbnN0IG1lbSA9IG5ldyBBcnJheShNYXRoLm1pbihtYXhkLCBmcm9tTGVuKSArIE1hdGgubWluKG1heGQsIHRvTGVuKSArIDEpO1xuICAgIGNvbnN0IG9mZnNldCA9IE1hdGgubWluKG1heGQsIGZyb21MZW4pO1xuICAgIGZvciAobGV0IGQgPSAwOyBkIDw9IG1heGQ7IGQrKykge1xuICAgICAgICBjb25zdCBtaW5rID0gZCA8PSBmcm9tTGVuID8gLWQgOiBkIC0gMiAqIGZyb21MZW47XG4gICAgICAgIGNvbnN0IG1heGsgPSBkIDw9IHRvTGVuID8gZCA6IC1kICsgMiAqIHRvTGVuO1xuICAgICAgICBmb3IgKGxldCBrID0gbWluazsgayA8PSBtYXhrOyBrICs9IDIpIHtcbiAgICAgICAgICAgIGxldCBpO1xuICAgICAgICAgICAgbGV0IHNjcmlwdDtcbiAgICAgICAgICAgIGlmIChkID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaSA9IDA7XG4gICAgICAgICAgICAgICAgc2NyaXB0ID0gbmV3IE5pbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoayA9PT0gLWQpIHtcbiAgICAgICAgICAgICAgICBpID0gbWVtW29mZnNldCArIGsgKyAxXS5pICsgMTtcbiAgICAgICAgICAgICAgICBzY3JpcHQgPSBtZW1bb2Zmc2V0ICsgayArIDFdLnNjcmlwdC51bnNoaWZ0KG5ldyBEZWxldGUoaSArIGspKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGsgPT09IGQpIHtcbiAgICAgICAgICAgICAgICBpID0gbWVtW29mZnNldCArIGsgLSAxXS5pO1xuICAgICAgICAgICAgICAgIHNjcmlwdCA9IG1lbVtvZmZzZXQgKyBrIC0gMV0uc2NyaXB0LnVuc2hpZnQobmV3IEluc2VydChpICsgayAtIDEsIHRvW2kgKyBrIC0gMV0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZpID0gbWVtW29mZnNldCArIGsgKyAxXS5pICsgMTtcbiAgICAgICAgICAgICAgICBjb25zdCBoaSA9IG1lbVtvZmZzZXQgKyBrIC0gMV0uaTtcbiAgICAgICAgICAgICAgICBpZiAodmkgPiBoaSkge1xuICAgICAgICAgICAgICAgICAgICBpID0gdmk7XG4gICAgICAgICAgICAgICAgICAgIHNjcmlwdCA9IG1lbVtvZmZzZXQgKyBrICsgMV0uc2NyaXB0LnVuc2hpZnQobmV3IERlbGV0ZShpICsgaykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaSA9IGhpO1xuICAgICAgICAgICAgICAgICAgICBzY3JpcHQgPSBtZW1bb2Zmc2V0ICsgayAtIDFdLnNjcmlwdC51bnNoaWZ0KG5ldyBJbnNlcnQoaSArIGsgLSAxLCB0b1tpICsgayAtIDFdKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2hpbGUgKGkgPCBmcm9tTGVuICYmIGkgKyBrIDwgdG9MZW4gJiYgZnJvbVtpXSA9PT0gdG9baSArIGtdKSB7XG4gICAgICAgICAgICAgICAgaSArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGsgPT09IHRvTGVuIC0gZnJvbUxlbiAmJiBpID09PSBmcm9tTGVuKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjcmlwdC50b0FycmF5KCkucmV2ZXJzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWVtW29mZnNldCArIGtdID0geyBpLCBzY3JpcHQgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufTtcbmV4cG9ydHMuc2hvcnRlc3RFZGl0U2NyaXB0ID0gc2hvcnRlc3RFZGl0U2NyaXB0O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLklUZXh0RWRpdG9yID0gdm9pZCAwO1xuLyoqXG4gKiBUaGUgYElUZXh0RWRpdG9yYCByZXByZXNlbnRzIGFuIGludGVyZmFjZSB0byBhIHRleHQgZWRpdG9yLlxuICpcbiAqIEBpbnRlcmZhY2VcbiAqL1xuY2xhc3MgSVRleHRFZGl0b3Ige1xuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQSBwb2ludCBvYmplY3QgdGhhdCByZXByZXNlbnRzIHRoZSBjdXJzb3IgcG9zaXRpb24uXG4gICAgICovXG4gICAgZ2V0Q3Vyc29yUG9zaXRpb24oKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkOiBnZXRDdXJzb3JQb3NpdGlvbicpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjdXJzb3IgcG9zaXRpb24gdG8gYSBzcGVjaWZpZWQgb25lLlxuICAgICAqL1xuICAgIHNldEN1cnNvclBvc2l0aW9uKHBvcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZDogc2V0Q3Vyc29yUG9zaXRpb24nKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgc2VsZWN0aW9uIHJhbmdlLlxuICAgICAqIFRoaXMgbWV0aG9kIGFsc28gZXhwZWN0cyB0aGUgY3Vyc29yIHBvc2l0aW9uIHRvIGJlIG1vdmVkIGFzIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS5cbiAgICAgKi9cbiAgICBzZXRTZWxlY3Rpb25SYW5nZShyYW5nZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZDogc2V0U2VsZWN0aW9uUmFuZ2UnKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbGFzdCByb3cgaW5kZXggb2YgdGhlIHRleHQgZWRpdG9yLlxuICAgICAqL1xuICAgIGdldExhc3RSb3coKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkOiBnZXRMYXN0Um93Jyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgZWRpdG9yIGFjY2VwdHMgYSB0YWJsZSBhdCBhIHJvdyB0byBiZSBlZGl0dGVkLlxuICAgICAqIEl0IHNob3VsZCByZXR1cm4gYGZhbHNlYCBpZiwgZm9yIGV4YW1wbGUsIHRoZSByb3cgaXMgaW4gYSBjb2RlIGJsb2NrIChub3QgTWFya2Rvd24pLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvdyAtIEEgcm93IGluZGV4IGluIHRoZSB0ZXh0IGVkaXRvci5cbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHRhYmxlIGF0IHRoZSByb3cgY2FuIGJlIGVkaXR0ZWQuXG4gICAgICovXG4gICAgYWNjZXB0c1RhYmxlRWRpdChyb3cpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQ6IGFjY2VwdHNUYWJsZUVkaXQnKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyBhIGxpbmUgc3RyaW5nIGF0IGEgcm93LlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvdyAtIFJvdyBpbmRleCwgc3RhcnRzIGZyb20gYDBgLlxuICAgICAqIEByZXR1cm5zIFRoZSBsaW5lIGF0IHRoZSBzcGVjaWZpZWQgcm93LlxuICAgICAqIFRoZSBsaW5lIG11c3Qgbm90IGNvbnRhaW4gYW4gRU9MIGxpa2UgYFwiXFxuXCJgIG9yIGBcIlxcclwiYC5cbiAgICAgKi9cbiAgICBnZXRMaW5lKHJvdykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZDogZ2V0TGluZScpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbnNlcnRzIGEgbGluZSBhdCBhIHNwZWNpZmllZCByb3cuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm93IC0gUm93IGluZGV4LCBzdGFydHMgZnJvbSBgMGAuXG4gICAgICogQHBhcmFtIGxpbmUgLSBBIHN0cmluZyB0byBiZSBpbnNlcnRlZC5cbiAgICAgKiBUaGlzIG11c3Qgbm90IGNvbnRhaW4gYW4gRU9MIGxpa2UgYFwiXFxuXCJgIG9yIGBcIlxcclwiYC5cbiAgICAgKi9cbiAgICBpbnNlcnRMaW5lKHJvdywgbGluZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZDogaW5zZXJ0TGluZScpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGEgbGluZSBhdCBhIHNwZWNpZmllZCByb3cuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm93IC0gUm93IGluZGV4LCBzdGFydHMgZnJvbSBgMGAuXG4gICAgICovXG4gICAgZGVsZXRlTGluZShyb3cpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQ6IGRlbGV0ZUxpbmUnKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVwbGFjZSBsaW5lcyBpbiBhIHNwZWNpZmllZCByYW5nZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGFydFJvdyAtIFN0YXJ0IHJvdyBpbmRleCwgc3RhcnRzIGZyb20gYDBgLlxuICAgICAqIEBwYXJhbSBlbmRSb3cgLSBFbmQgcm93IGluZGV4LlxuICAgICAqIExpbmVzIGZyb20gYHN0YXJ0Um93YCB0byBgZW5kUm93IC0gMWAgaXMgcmVwbGFjZWQuXG4gICAgICogQHBhcmFtIGxpbmVzIC0gQW4gYXJyYXkgb2Ygc3RyaW5nLlxuICAgICAqIEVhY2ggc3RyaW5ncyBtdXN0IG5vdCBjb250YWluIGFuIEVPTCBsaWtlIGBcIlxcblwiYCBvciBgXCJcXHJcImAuXG4gICAgICovXG4gICAgcmVwbGFjZUxpbmVzKHN0YXJ0Um93LCBlbmRSb3csIGxpbmVzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkOiByZXBsYWNlTGluZXMnKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQmF0Y2hlcyBtdWx0aXBsZSBvcGVyYXRpb25zIGFzIGEgc2luZ2xlIHVuZG8vcmVkbyBzdGVwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZ1bmMgLSBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgZXhlY3V0ZXMgc29tZSBvcGVyYXRpb25zIG9uIHRoZSB0ZXh0IGVkaXRvci5cbiAgICAgKi9cbiAgICB0cmFuc2FjdChmdW5jKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkOiB0cmFuc2FjdCcpO1xuICAgIH1cbn1cbmV4cG9ydHMuSVRleHRFZGl0b3IgPSBJVGV4dEVkaXRvcjtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0T3B0aW9ucyA9IGV4cG9ydHMub3B0aW9uc1dpdGhEZWZhdWx0cyA9IHZvaWQgMDtcbmNvbnN0IGFsaWdubWVudF8xID0gcmVxdWlyZShcIi4vYWxpZ25tZW50XCIpO1xuY29uc3QgZm9ybWF0dGVyXzEgPSByZXF1aXJlKFwiLi9mb3JtYXR0ZXJcIik7XG5jb25zdCBERUZBVUxUX1RFWFRfV0lEVEhfT1BUSU9OUyA9IHtcbiAgICBub3JtYWxpemU6IHRydWUsXG4gICAgd2lkZUNoYXJzOiBuZXcgU2V0KCksXG4gICAgbmFycm93Q2hhcnM6IG5ldyBTZXQoKSxcbiAgICBhbWJpZ3VvdXNBc1dpZGU6IGZhbHNlLFxufTtcbmNvbnN0IERFRkFVTFRfT1BUSU9OUyA9IHtcbiAgICBsZWZ0TWFyZ2luQ2hhcnM6IG5ldyBTZXQoKSxcbiAgICBmb3JtYXRUeXBlOiBmb3JtYXR0ZXJfMS5Gb3JtYXRUeXBlLk5PUk1BTCxcbiAgICBtaW5EZWxpbWl0ZXJXaWR0aDogMyxcbiAgICBkZWZhdWx0QWxpZ25tZW50OiBhbGlnbm1lbnRfMS5EZWZhdWx0QWxpZ25tZW50LkxFRlQsXG4gICAgaGVhZGVyQWxpZ25tZW50OiBhbGlnbm1lbnRfMS5IZWFkZXJBbGlnbm1lbnQuRk9MTE9XLFxuICAgIHNtYXJ0Q3Vyc29yOiBmYWxzZSxcbn07XG4vKipcbiAqIENyZWF0ZSBhbiBPcHRpb25zIG9iamVjdCBmb3IgdGhlIGZvcm1hdHRlci5cbiAqIFRoZSBkZWZhdWx0IHZhbHVlcyBhcmUgdXNlZCBmb3Igb3B0aW9ucyB0aGF0IGFyZSBub3Qgc3BlY2lmaWVkLlxuICpcbiAqIFRoZSBhdmFpbGFibGUgb3B0aW9ucyBhbmQgZGVmYXVsdCB2YWx1ZXMgYXJlIGxpc3RlZCBiZWxvdy5cbiAqXG4gKiB8IHByb3BlcnR5IG5hbWUgICAgICAgfCB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZGVmYXVsdCB2YWx1ZSAgICAgICAgICAgIHxcbiAqIHwgLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfFxuICogfCBgbGVmdE1hcmdpbkNoYXJzYCAgIHwge0BsaW5rIFNldH0mbHQ7e0BsaW5rIHN0cmluZ30mZ3Q7IHwgQSBzZXQgb2YgYWRkaXRpb25hbCBsZWZ0IG1hcmdpbiBjaGFyYWN0ZXJzLiAgICAgICAgICAgICB8IGBuZXcgU2V0KClgICAgICAgICAgICAgICB8XG4gKiB8IGBmb3JtYXRUeXBlYCAgICAgICAgfCB7QGxpbmsgRm9ybWF0VHlwZX0gICAgICAgICAgICAgICAgfCBGb3JtYXQgdHlwZSwgbm9ybWFsIG9yIHdlYWsuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYEZvcm1hdFR5cGUuTk9STUFMYCAgICAgIHxcbiAqIHwgYG1pbkRlbGltaXRlcldpZHRoYCB8IHtAbGluayBudW1iZXJ9ICAgICAgICAgICAgICAgICAgICB8IE1pbmltdW0gd2lkdGggb2YgZGVsaW1pdGVycy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgM2AgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgZGVmYXVsdEFsaWdubWVudGAgIHwge0BsaW5rIERlZmF1bHRBbGlnbm1lbnR9ICAgICAgICAgIHwgRGVmYXVsdCBhbGlnbm1lbnQgb2YgY29sdW1ucy4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBEZWZhdWx0QWxpZ25tZW50LkxFRlRgICB8XG4gKiB8IGBoZWFkZXJBbGlnbm1lbnRgICAgfCB7QGxpbmsgSGVhZGVyQWxpZ25tZW50fSAgICAgICAgICAgfCBBbGlnbm1lbnQgb2YgaGVhZGVyIGNlbGxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYEhlYWRlckFsaWdubWVudC5GT0xMT1dgIHxcbiAqIHwgYHRleHRXaWR0aE9wdGlvbnNgICB8IHtAbGluayBUZXh0V2lkdGhPcHRpb25zfSAgICAgICAgICB8IEFuIG9iamVjdCBjb250YWluaW5nIG9wdGlvbnMgZm9yIGNvbXB1dGluZyB0ZXh0IHdpZHRocy4gfCAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgc21hcnRDdXJzb3JgICAgICAgIHwge0BsaW5rIGJvb2xlYW59ICAgICAgICAgICAgICAgICAgIHwgRW5hYmxlcyBcIlNtYXJ0IEN1cnNvclwiIGZlYXR1cmUuICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGZhbHNlYCAgICAgICAgICAgICAgICAgIHxcbiAqXG4gKiBUaGUgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIGB0ZXh0V2lkdGhPcHRpb25zYCBhcmUgdGhlIGZvbGxvd2luZyBvbmVzLlxuICpcbiAqIHwgcHJvcGVydHkgbmFtZSAgICAgfCB0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGRlZmF1bHQgdmFsdWUgfFxuICogfCAtLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8XG4gKiB8IGBub3JtYWxpemVgICAgICAgIHwge0BsaW5rIGJvb2xlYW59ICAgICAgICAgICAgICAgICAgIHwgTm9ybWFsaXplcyB0ZXh0cyBiZWZvcmUgY29tcHV0aW5nIHRleHQgd2lkdGhzLiAgICAgICAgfCBgdHJ1ZWAgICAgICAgIHxcbiAqIHwgYHdpZGVDaGFyc2AgICAgICAgfCB7QGxpbmsgU2V0fSZsdDt7QGxpbmsgc3RyaW5nfSZndDsgfCBBIHNldCBvZiBjaGFyYWN0ZXJzIHRoYXQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgd2lkZS4gICB8IGBuZXcgU2V0KClgICAgfFxuICogfCBgbmFycm93Q2hhcnNgICAgICB8IHtAbGluayBTZXR9Jmx0O3tAbGluayBzdHJpbmd9Jmd0OyB8IEEgc2V0IG9mIGNoYXJhY3RlcnMgdGhhdCBzaG91bGQgYmUgdHJlYXRlZCBhcyBuYXJyb3cuIHwgYG5ldyBTZXQoKWAgICB8XG4gKiB8IGBhbWJpZ3VvdXNBc1dpZGVgIHwge0BsaW5rIGJvb2xlYW59ICAgICAgICAgICAgICAgICAgIHwgVHJlYXRzIEVhc3QgQXNpYW4gQW1iaWd1b3VzIGNoYXJhY3RlcnMgYXMgd2lkZS4gICAgICAgfCBgZmFsc2VgICAgICAgIHxcbiAqXG4gKi9cbmNvbnN0IG9wdGlvbnNXaXRoRGVmYXVsdHMgPSAob3B0aW9ucykgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX09QVElPTlMpLCBvcHRpb25zKSwgeyB0ZXh0V2lkdGhPcHRpb25zOiBvcHRpb25zLnRleHRXaWR0aE9wdGlvbnNcbiAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfVEVYVF9XSURUSF9PUFRJT05TKSwgb3B0aW9ucy50ZXh0V2lkdGhPcHRpb25zKSA6IERFRkFVTFRfVEVYVF9XSURUSF9PUFRJT05TIH0pKTtcbmV4cG9ydHMub3B0aW9uc1dpdGhEZWZhdWx0cyA9IG9wdGlvbnNXaXRoRGVmYXVsdHM7XG5leHBvcnRzLmRlZmF1bHRPcHRpb25zID0gZXhwb3J0cy5vcHRpb25zV2l0aERlZmF1bHRzKHt9KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UYWJsZUVkaXRvciA9IGV4cG9ydHMuX2NvbXB1dGVOZXdPZmZzZXQgPSBleHBvcnRzLl9jcmVhdGVJc1RhYmxlRm9ybXVsYVJlZ2V4ID0gZXhwb3J0cy5fY3JlYXRlSXNUYWJsZVJvd1JlZ2V4ID0gZXhwb3J0cy5Tb3J0T3JkZXIgPSB2b2lkIDA7XG5jb25zdCBlZGl0X3NjcmlwdF8xID0gcmVxdWlyZShcIi4vZWRpdC1zY3JpcHRcIik7XG5jb25zdCBmb2N1c18xID0gcmVxdWlyZShcIi4vZm9jdXNcIik7XG5jb25zdCBmb3JtYXR0ZXJfMSA9IHJlcXVpcmUoXCIuL2Zvcm1hdHRlclwiKTtcbmNvbnN0IHBhcnNlcl8xID0gcmVxdWlyZShcIi4vcGFyc2VyXCIpO1xuY29uc3QgcG9pbnRfMSA9IHJlcXVpcmUoXCIuL3BvaW50XCIpO1xuY29uc3QgcmFuZ2VfMSA9IHJlcXVpcmUoXCIuL3JhbmdlXCIpO1xuY29uc3QgdGFibGVfMSA9IHJlcXVpcmUoXCIuL3RhYmxlXCIpO1xuY29uc3QgdGFibGVfY2VsbF8xID0gcmVxdWlyZShcIi4vdGFibGUtY2VsbFwiKTtcbmNvbnN0IHRhYmxlX3Jvd18xID0gcmVxdWlyZShcIi4vdGFibGUtcm93XCIpO1xudmFyIFNvcnRPcmRlcjtcbihmdW5jdGlvbiAoU29ydE9yZGVyKSB7XG4gICAgU29ydE9yZGVyW1wiQXNjZW5kaW5nXCJdID0gXCJhc2NlbmRpbmdcIjtcbiAgICBTb3J0T3JkZXJbXCJEZXNjZW5kaW5nXCJdID0gXCJkZXNjZW5kaW5nXCI7XG59KShTb3J0T3JkZXIgPSBleHBvcnRzLlNvcnRPcmRlciB8fCAoZXhwb3J0cy5Tb3J0T3JkZXIgPSB7fSkpO1xuLyoqXG4gKiBDcmVhdGVzIGEgcmVndWxhciBleHByZXNzaW9uIG9iamVjdCB0aGF0IG1hdGNoZXMgYSB0YWJsZSByb3cuXG4gKlxuICogQHBhcmFtIGxlZnRNYXJnaW5DaGFycyAtIEEgc2V0IG9mIGFkZGl0aW9uYWwgbGVmdCBtYXJnaW4gY2hhcmFjdGVycy5cbiAqIEEgcGlwZSBgfGAsIGEgYmFja3NsYXNoIGBcXGAsIGFuZCBhIGJhY2txdW90ZSB3aWxsIGJlIGlnbm9yZWQuXG4gKiBAcmV0dXJucyBBIHJlZ3VsYXIgZXhwcmVzc2lvbiBvYmplY3QgdGhhdCBtYXRjaGVzIGEgdGFibGUgcm93LlxuICovXG5jb25zdCBfY3JlYXRlSXNUYWJsZVJvd1JlZ2V4ID0gKGxlZnRNYXJnaW5DaGFycykgPT4gbmV3IFJlZ0V4cChgXiR7cGFyc2VyXzEubWFyZ2luUmVnZXhTcmMobGVmdE1hcmdpbkNoYXJzKX1cXFxcfGAsICd1Jyk7XG5leHBvcnRzLl9jcmVhdGVJc1RhYmxlUm93UmVnZXggPSBfY3JlYXRlSXNUYWJsZVJvd1JlZ2V4O1xuY29uc3QgX2NyZWF0ZUlzVGFibGVGb3JtdWxhUmVnZXggPSAobGVmdE1hcmdpbkNoYXJzKSA9PiBuZXcgUmVnRXhwKGBeJHtwYXJzZXJfMS5tYXJnaW5SZWdleFNyYyhsZWZ0TWFyZ2luQ2hhcnMpfTwhLS0gPy4rLS0+JGAsICd1Jyk7XG5leHBvcnRzLl9jcmVhdGVJc1RhYmxlRm9ybXVsYVJlZ2V4ID0gX2NyZWF0ZUlzVGFibGVGb3JtdWxhUmVnZXg7XG4vKipcbiAqIENvbXB1dGVzIG5ldyBmb2N1cyBvZmZzZXQgZnJvbSBpbmZvcm1hdGlvbiBvZiBjb21wbGV0ZWQgYW5kIGZvcm1hdHRlZCB0YWJsZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBmb2N1cyAtIEEgZm9jdXMuXG4gKiBAcGFyYW0gdGFibGUgLSBBIGNvbXBsZXRlZCBidXQgbm90IGZvcm1hdHRlZCB0YWJsZSB3aXRoIG9yaWdpbmFsIGNlbGwgY29udGVudHMuXG4gKiBAcGFyYW0gZm9ybWF0dGVkIC0gSW5mb3JtYXRpb24gb2YgdGhlIGZvcm1hdHRlZCB0YWJsZS5cbiAqIEBwYXJhbSBtb3ZlZCAtIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmb2N1cyBwb3NpdGlvbiBpcyBtb3ZlZCBieSBhIGNvbW1hbmQgb3Igbm90LlxuICovXG5jb25zdCBfY29tcHV0ZU5ld09mZnNldCA9IChmb2N1cywgdGFibGUsIGZvcm1hdHRlZCwgbW92ZWQpID0+IHtcbiAgICBpZiAobW92ZWQpIHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkRm9jdXNlZENlbGwgPSBmb3JtYXR0ZWQudGFibGUuZ2V0Rm9jdXNlZENlbGwoZm9jdXMpO1xuICAgICAgICBpZiAoZm9ybWF0dGVkRm9jdXNlZENlbGwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdHRlZEZvY3VzZWRDZWxsLmNvbXB1dGVSYXdPZmZzZXQoMCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvY3VzLmNvbHVtbiA8IDAgPyBmb3JtYXR0ZWQubWFyZ2luTGVmdC5sZW5ndGggOiAwO1xuICAgIH1cbiAgICBjb25zdCBmb2N1c2VkQ2VsbCA9IHRhYmxlLmdldEZvY3VzZWRDZWxsKGZvY3VzKTtcbiAgICBjb25zdCBmb3JtYXR0ZWRGb2N1c2VkQ2VsbCA9IGZvcm1hdHRlZC50YWJsZS5nZXRGb2N1c2VkQ2VsbChmb2N1cyk7XG4gICAgaWYgKGZvY3VzZWRDZWxsICE9PSB1bmRlZmluZWQgJiYgZm9ybWF0dGVkRm9jdXNlZENlbGwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBjb250ZW50T2Zmc2V0ID0gTWF0aC5taW4oZm9jdXNlZENlbGwuY29tcHV0ZUNvbnRlbnRPZmZzZXQoZm9jdXMub2Zmc2V0KSwgZm9ybWF0dGVkRm9jdXNlZENlbGwuY29udGVudC5sZW5ndGgpO1xuICAgICAgICByZXR1cm4gZm9ybWF0dGVkRm9jdXNlZENlbGwuY29tcHV0ZVJhd09mZnNldChjb250ZW50T2Zmc2V0KTtcbiAgICB9XG4gICAgcmV0dXJuIGZvY3VzLmNvbHVtbiA8IDAgPyBmb3JtYXR0ZWQubWFyZ2luTGVmdC5sZW5ndGggOiAwO1xufTtcbmV4cG9ydHMuX2NvbXB1dGVOZXdPZmZzZXQgPSBfY29tcHV0ZU5ld09mZnNldDtcbi8qKlxuICogVGhlIGBUYWJsZUVkaXRvcmAgY2xhc3MgaXMgYXQgdGhlIGNlbnRlciBvZiB0aGUgbWFya2Rvd24tdGFibGUtZWRpdG9yLlxuICogV2hlbiBhIGNvbW1hbmQgaXMgZXhlY3V0ZWQsIGl0IHJlYWRzIGEgdGFibGUgZnJvbSB0aGUgdGV4dCBlZGl0b3IsIGRvZXMgc29tZSBvcGVyYXRpb24gb24gdGhlXG4gKiB0YWJsZSwgYW5kIHRoZW4gYXBwbHkgdGhlIHJlc3VsdCB0byB0aGUgdGV4dCBlZGl0b3IuXG4gKlxuICogVG8gdXNlIHRoaXMgY2xhc3MsIHRoZSB0ZXh0IGVkaXRvciAob3IgYW4gaW50ZXJmYWNlIHRvIGl0KSBtdXN0IGltcGxlbWVudCB7QGxpbmsgSVRleHRFZGl0b3J9LlxuICovXG5jbGFzcyBUYWJsZUVkaXRvciB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyB0YWJsZSBlZGl0b3IgaW5zdGFuY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGV4dEVkaXRvciAtIEEgdGV4dCBlZGl0b3IgaW50ZXJmYWNlLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHRleHRFZGl0b3IpIHtcbiAgICAgICAgdGhpcy5fdGV4dEVkaXRvciA9IHRleHRFZGl0b3I7XG4gICAgICAgIC8vIHNtYXJ0IGN1cnNvclxuICAgICAgICB0aGlzLl9zY0FjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXNldHMgdGhlIHNtYXJ0IGN1cnNvci5cbiAgICAgKiBDYWxsIHRoaXMgbWV0aG9kIHdoZW4gdGhlIHRhYmxlIGVkaXRvciBpcyBpbmFjdGl2YXRlZC5cbiAgICAgKi9cbiAgICByZXNldFNtYXJ0Q3Vyc29yKCkge1xuICAgICAgICB0aGlzLl9zY0FjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIGN1cnNvciBpcyBpbiBhIHRhYmxlIHJvdy4gUmV0dXJucyBmYWxzZSBpZiB0aGUgY3Vyc29yIGlzIGluIGFcbiAgICAgKiB0YWJsZSBmb3JtdWxhIHJvdyAoc2VlIGN1cnNvcklzSW5UYWJsZUZvcm11bGEpLlxuICAgICAqIFRoaXMgaXMgdXNlZnVsIHRvIGNoZWNrIHdoZXRoZXIgdGhlIHRhYmxlIGVkaXRvciBzaG91bGQgYmUgYWN0aXZhdGVkIG9yIG5vdC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgY3Vyc29yIGlzIGluIGEgdGFibGUgcm93LlxuICAgICAqL1xuICAgIGN1cnNvcklzSW5UYWJsZShvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJlID0gZXhwb3J0cy5fY3JlYXRlSXNUYWJsZVJvd1JlZ2V4KG9wdGlvbnMubGVmdE1hcmdpbkNoYXJzKTtcbiAgICAgICAgY29uc3QgcG9zID0gdGhpcy5fdGV4dEVkaXRvci5nZXRDdXJzb3JQb3NpdGlvbigpO1xuICAgICAgICByZXR1cm4gKHRoaXMuX3RleHRFZGl0b3IuYWNjZXB0c1RhYmxlRWRpdChwb3Mucm93KSAmJlxuICAgICAgICAgICAgcmUudGVzdCh0aGlzLl90ZXh0RWRpdG9yLmdldExpbmUocG9zLnJvdykpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBjdXJzb3IgaXMgaW4gYSBmb3JtdWxhIHJvdyBiZWxvdyBhIHRhYmxlLlxuICAgICAqIFRoaXMgaXMgdXNlZnVsIHRvIGNoZWNrIHdoZXRoZXIgdGhlIHRhYmxlIGVkaXRvciBzaG91bGQgYmUgYWN0aXZhdGVkIG9yIG5vdC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgY3Vyc29yIGlzIGluIGEgZm9ybXVsYSByb3cuXG4gICAgICovXG4gICAgY3Vyc29ySXNJblRhYmxlRm9ybXVsYShvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGZvcm11bGFSZSA9IGV4cG9ydHMuX2NyZWF0ZUlzVGFibGVGb3JtdWxhUmVnZXgob3B0aW9ucy5sZWZ0TWFyZ2luQ2hhcnMpO1xuICAgICAgICBjb25zdCBwb3MgPSB0aGlzLl90ZXh0RWRpdG9yLmdldEN1cnNvclBvc2l0aW9uKCk7XG4gICAgICAgIHJldHVybiAodGhpcy5fdGV4dEVkaXRvci5hY2NlcHRzVGFibGVFZGl0KHBvcy5yb3cpICYmXG4gICAgICAgICAgICBmb3JtdWxhUmUudGVzdCh0aGlzLl90ZXh0RWRpdG9yLmdldExpbmUocG9zLnJvdykpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRmluZHMgYSB0YWJsZSB1bmRlciB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm8gdGFibGUgb3IgdGhlIGRldGVybWluZWQgZm9jdXMgaXMgaW52YWxpZC5cbiAgICAgKi9cbiAgICBfZmluZFRhYmxlKG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcmUgPSBleHBvcnRzLl9jcmVhdGVJc1RhYmxlUm93UmVnZXgob3B0aW9ucy5sZWZ0TWFyZ2luQ2hhcnMpO1xuICAgICAgICBjb25zdCBmb3JtdWxhUmUgPSBleHBvcnRzLl9jcmVhdGVJc1RhYmxlRm9ybXVsYVJlZ2V4KG9wdGlvbnMubGVmdE1hcmdpbkNoYXJzKTtcbiAgICAgICAgbGV0IHBvcyA9IHRoaXMuX3RleHRFZGl0b3IuZ2V0Q3Vyc29yUG9zaXRpb24oKTtcbiAgICAgICAgY29uc3QgbGFzdFJvdyA9IHRoaXMuX3RleHRFZGl0b3IuZ2V0TGFzdFJvdygpO1xuICAgICAgICBjb25zdCBsaW5lcyA9IFtdO1xuICAgICAgICBjb25zdCBmb3JtdWxhTGluZXMgPSBbXTtcbiAgICAgICAgbGV0IHN0YXJ0Um93ID0gcG9zLnJvdztcbiAgICAgICAgbGV0IGVuZFJvdyA9IHBvcy5yb3c7IC8vIGVuZFJvdyBpcyBsYXN0IGxpbmUgYmVmb3JlIGZvbXVsYXNcbiAgICAgICAgLy8gaWYgdGhlIGN1cnNvciBpcyBvbiBmb3JtdWxhIGxpbmUsIHdvcmsgdXAgdW50aWwgd2UgZmluZCB0aGUgbGFzdCByb3cgb2YgdGhlIHRhYmxlXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxldCBsaW5lID0gdGhpcy5fdGV4dEVkaXRvci5nZXRMaW5lKHBvcy5yb3cpO1xuICAgICAgICAgICAgd2hpbGUgKGZvcm11bGFSZS50ZXN0KGxpbmUpICYmIHBvcy5yb3cgPj0gMCkge1xuICAgICAgICAgICAgICAgIHBvcyA9IG5ldyBwb2ludF8xLlBvaW50KHBvcy5yb3cgLSAxLCBwb3MuY29sdW1uKTtcbiAgICAgICAgICAgICAgICBlbmRSb3ctLTtcbiAgICAgICAgICAgICAgICBsaW5lID0gdGhpcy5fdGV4dEVkaXRvci5nZXRMaW5lKHBvcy5yb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGN1cnJlbnQgbGluZVxuICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBsaW5lID0gdGhpcy5fdGV4dEVkaXRvci5nZXRMaW5lKHBvcy5yb3cpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl90ZXh0RWRpdG9yLmFjY2VwdHNUYWJsZUVkaXQocG9zLnJvdykgfHwgIXJlLnRlc3QobGluZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGluZXMucHVzaChsaW5lKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBwcmV2aW91cyBsaW5lc1xuICAgICAgICBmb3IgKGxldCByb3cgPSBwb3Mucm93IC0gMTsgcm93ID49IDA7IHJvdy0tKSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lID0gdGhpcy5fdGV4dEVkaXRvci5nZXRMaW5lKHJvdyk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3RleHRFZGl0b3IuYWNjZXB0c1RhYmxlRWRpdChyb3cpIHx8ICFyZS50ZXN0KGxpbmUpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5lcy51bnNoaWZ0KGxpbmUpO1xuICAgICAgICAgICAgc3RhcnRSb3cgPSByb3c7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbmV4dCBsaW5lc1xuICAgICAgICBmb3IgKGxldCByb3cgPSBwb3Mucm93ICsgMTsgcm93IDw9IGxhc3RSb3c7IHJvdysrKSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lID0gdGhpcy5fdGV4dEVkaXRvci5nZXRMaW5lKHJvdyk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3RleHRFZGl0b3IuYWNjZXB0c1RhYmxlRWRpdChyb3cpIHx8ICFyZS50ZXN0KGxpbmUpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5lcy5wdXNoKGxpbmUpO1xuICAgICAgICAgICAgZW5kUm93ID0gcm93O1xuICAgICAgICB9XG4gICAgICAgIC8vIGZvcm11bGEgbGluZXNcbiAgICAgICAgZm9yIChsZXQgcm93ID0gZW5kUm93ICsgMTsgcm93IDw9IGxhc3RSb3c7IHJvdysrKSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lID0gdGhpcy5fdGV4dEVkaXRvci5nZXRMaW5lKHJvdyk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3RleHRFZGl0b3IuYWNjZXB0c1RhYmxlRWRpdChyb3cpIHx8ICFmb3JtdWxhUmUudGVzdChsaW5lKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9ybXVsYUxpbmVzLnB1c2gobGluZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmFuZ2UgPSBuZXcgcmFuZ2VfMS5SYW5nZShuZXcgcG9pbnRfMS5Qb2ludChzdGFydFJvdywgMCksIG5ldyBwb2ludF8xLlBvaW50KGVuZFJvdywgbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubGVuZ3RoKSk7XG4gICAgICAgIGNvbnN0IHRhYmxlID0gcGFyc2VyXzEucmVhZFRhYmxlKGxpbmVzLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgZm9jdXMgPSB0YWJsZS5mb2N1c09mUG9zaXRpb24ocG9zLCBzdGFydFJvdyk7XG4gICAgICAgIGlmIChmb2N1cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBWYWxpZGF0ZSB0aGlzIGZvciBjb3JyZWN0bmVzc1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyByYW5nZSwgbGluZXMsIGZvcm11bGFMaW5lcywgdGFibGUsIGZvY3VzIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEZpbmRzIGEgdGFibGUgYW5kIGRvZXMgYW4gb3BlcmF0aW9uIHdpdGggaXQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSBmdW5jIC0gQSBmdW5jdGlvbiB0aGF0IGRvZXMgc29tZSBvcGVyYXRpb24gb24gdGFibGUgaW5mb3JtYXRpb24gb2J0YWluZWQgYnlcbiAgICAgKiB7QGxpbmsgVGFibGVFZGl0b3IjX2ZpbmRUYWJsZX0uXG4gICAgICovXG4gICAgX3dpdGhUYWJsZShvcHRpb25zLCBmdW5jKSB7XG4gICAgICAgIGNvbnN0IGluZm8gPSB0aGlzLl9maW5kVGFibGUob3B0aW9ucyk7XG4gICAgICAgIGlmIChpbmZvID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuYyhpbmZvKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXBkYXRlcyBsaW5lcyBpbiBhIGdpdmVuIHJhbmdlIGluIHRoZSB0ZXh0IGVkaXRvci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHN0YXJ0Um93IC0gU3RhcnQgcm93IGluZGV4LCBzdGFydHMgZnJvbSBgMGAuXG4gICAgICogQHBhcmFtIGVuZFJvdyAtIEVuZCByb3cgaW5kZXguXG4gICAgICogTGluZXMgZnJvbSBgc3RhcnRSb3dgIHRvIGBlbmRSb3cgLSAxYCBhcmUgcmVwbGFjZWQuXG4gICAgICogQHBhcmFtIG5ld0xpbmVzIC0gTmV3IGxpbmVzLlxuICAgICAqIEBwYXJhbSBbb2xkTGluZXM9dW5kZWZpbmVkXSAtIE9sZCBsaW5lcyB0byBiZSByZXBsYWNlZC5cbiAgICAgKi9cbiAgICBfdXBkYXRlTGluZXMoc3RhcnRSb3csIGVuZFJvdywgbmV3TGluZXMsIG9sZExpbmVzID0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChvbGRMaW5lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBhcHBseSB0aGUgc2hvcnRlc3QgZWRpdCBzY3JpcHRcbiAgICAgICAgICAgIC8vIGlmIGEgdGFibGUgaXMgZWRpdGVkIGluIGEgbm9ybWFsIG1hbm5lciwgdGhlIGVkaXQgZGlzdGFuY2UgbmV2ZXIgZXhjZWVkcyAzXG4gICAgICAgICAgICBjb25zdCBzZXMgPSBlZGl0X3NjcmlwdF8xLnNob3J0ZXN0RWRpdFNjcmlwdChvbGRMaW5lcywgbmV3TGluZXMsIDMpO1xuICAgICAgICAgICAgaWYgKHNlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZWRpdF9zY3JpcHRfMS5hcHBseUVkaXRTY3JpcHQodGhpcy5fdGV4dEVkaXRvciwgc2VzLCBzdGFydFJvdyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3RleHRFZGl0b3IucmVwbGFjZUxpbmVzKHN0YXJ0Um93LCBlbmRSb3csIG5ld0xpbmVzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTW92ZXMgdGhlIGN1cnNvciBwb3NpdGlvbiB0byB0aGUgZm9jdXNlZCBjZWxsLFxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0gc3RhcnRSb3cgLSBSb3cgaW5kZXggd2hlcmUgdGhlIHRhYmxlIHN0YXJ0cyBpbiB0aGUgdGV4dCBlZGl0b3IuXG4gICAgICogQHBhcmFtIHRhYmxlIC0gQSB0YWJsZS5cbiAgICAgKiBAcGFyYW0gZm9jdXMgLSBBIGZvY3VzIHRvIHdoaWNoIHRoZSBjdXJzb3Igd2lsbCBiZSBtb3ZlZC5cbiAgICAgKi9cbiAgICBfbW92ZVRvRm9jdXMoc3RhcnRSb3csIHRhYmxlLCBmb2N1cykge1xuICAgICAgICBjb25zdCBwb3MgPSB0YWJsZS5wb3NpdGlvbk9mRm9jdXMoZm9jdXMsIHN0YXJ0Um93KTtcbiAgICAgICAgaWYgKHBvcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnNldEN1cnNvclBvc2l0aW9uKHBvcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogU2VsZWN0cyB0aGUgZm9jdXNlZCBjZWxsLlxuICAgICAqIElmIHRoZSBjZWxsIGhhcyBubyBjb250ZW50IHRvIGJlIHNlbGVjdGVkLCB0aGVuIGp1c3QgbW92ZXMgdGhlIGN1cnNvciBwb3NpdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHN0YXJ0Um93IC0gUm93IGluZGV4IHdoZXJlIHRoZSB0YWJsZSBzdGFydHMgaW4gdGhlIHRleHQgZWRpdG9yLlxuICAgICAqIEBwYXJhbSB0YWJsZSAtIEEgdGFibGUuXG4gICAgICogQHBhcmFtIGZvY3VzIC0gQSBmb2N1cyB0byBiZSBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBfc2VsZWN0Rm9jdXMoc3RhcnRSb3csIHRhYmxlLCBmb2N1cykge1xuICAgICAgICBjb25zdCByYW5nZSA9IHRhYmxlLnNlbGVjdGlvblJhbmdlT2ZGb2N1cyhmb2N1cywgc3RhcnRSb3cpO1xuICAgICAgICBpZiAocmFuZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fdGV4dEVkaXRvci5zZXRTZWxlY3Rpb25SYW5nZShyYW5nZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9tb3ZlVG9Gb2N1cyhzdGFydFJvdywgdGFibGUsIGZvY3VzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBGb3JtYXRzIHRoZSB0YWJsZSB1bmRlciB0aGUgY3Vyc29yLlxuICAgICAqL1xuICAgIGZvcm1hdChvcHRpb25zKSB7XG4gICAgICAgIHRoaXMud2l0aENvbXBsZXRlZFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgdGFibGUsIGZvY3VzIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0ZvY3VzID0gZm9jdXM7XG4gICAgICAgICAgICAvLyBhcHBseVxuICAgICAgICAgICAgdGhpcy5fdGV4dEVkaXRvci50cmFuc2FjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTGluZXMocmFuZ2Uuc3RhcnQucm93LCByYW5nZS5lbmQucm93ICsgMSwgdGFibGUudG9MaW5lcygpLCBsaW5lcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW92ZVRvRm9jdXMocmFuZ2Uuc3RhcnQucm93LCB0YWJsZSwgbmV3Rm9jdXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBGb3JtYXRzIGFuZCBlc2NhcGVzIGZyb20gdGhlIHRhYmxlLlxuICAgICAqL1xuICAgIGVzY2FwZShvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuX3dpdGhUYWJsZShvcHRpb25zLCAoeyByYW5nZSwgbGluZXMsIHRhYmxlLCBmb2N1cyB9KSA9PiB7XG4gICAgICAgICAgICAvLyBjb21wbGV0ZVxuICAgICAgICAgICAgY29uc3QgY29tcGxldGVkID0gZm9ybWF0dGVyXzEuY29tcGxldGVUYWJsZSh0YWJsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAvLyBmb3JtYXRcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdHRlcl8xLmZvcm1hdFRhYmxlKGNvbXBsZXRlZC50YWJsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAvLyBhcHBseVxuICAgICAgICAgICAgY29uc3QgbmV3Um93ID0gcmFuZ2UuZW5kLnJvdyArIChjb21wbGV0ZWQuZGVsaW1pdGVySW5zZXJ0ZWQgPyAyIDogMSk7XG4gICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnRyYW5zYWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVMaW5lcyhyYW5nZS5zdGFydC5yb3csIHJhbmdlLmVuZC5yb3cgKyAxLCBmb3JtYXR0ZWQudGFibGUudG9MaW5lcygpLCBsaW5lcyk7XG4gICAgICAgICAgICAgICAgbGV0IG5ld1BvcztcbiAgICAgICAgICAgICAgICBpZiAobmV3Um93ID4gdGhpcy5fdGV4dEVkaXRvci5nZXRMYXN0Um93KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGV4dEVkaXRvci5pbnNlcnRMaW5lKG5ld1JvdywgJycpO1xuICAgICAgICAgICAgICAgICAgICBuZXdQb3MgPSBuZXcgcG9pbnRfMS5Qb2ludChuZXdSb3csIDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmUgPSBuZXcgUmVnRXhwKGBeJHtwYXJzZXJfMS5tYXJnaW5SZWdleFNyYyhvcHRpb25zLmxlZnRNYXJnaW5DaGFycyl9YCwgJ3UnKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dExpbmUgPSB0aGlzLl90ZXh0RWRpdG9yLmdldExpbmUobmV3Um93KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hcmdpbiA9IHJlLmV4ZWMobmV4dExpbmUpWzBdO1xuICAgICAgICAgICAgICAgICAgICBuZXdQb3MgPSBuZXcgcG9pbnRfMS5Qb2ludChuZXdSb3csIG1hcmdpbi5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnNldEN1cnNvclBvc2l0aW9uKG5ld1Bvcyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRTbWFydEN1cnNvcigpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWx0ZXJzIHRoZSBhbGlnbm1lbnQgb2YgdGhlIGZvY3VzZWQgY29sdW1uLlxuICAgICAqL1xuICAgIGFsaWduQ29sdW1uKGFsaWdubWVudCwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLndpdGhDb21wbGV0ZWRUYWJsZShvcHRpb25zLCAoeyByYW5nZSwgbGluZXMsIHRhYmxlLCBmb2N1cyB9KSA9PiB7XG4gICAgICAgICAgICBsZXQgbmV3Rm9jdXMgPSBmb2N1cztcbiAgICAgICAgICAgIC8vIGFsdGVyIGFsaWdubWVudFxuICAgICAgICAgICAgbGV0IGFsdGVyZWQgPSB0YWJsZTtcbiAgICAgICAgICAgIGlmICgwIDw9IG5ld0ZvY3VzLmNvbHVtbiAmJlxuICAgICAgICAgICAgICAgIG5ld0ZvY3VzLmNvbHVtbiA8PSBhbHRlcmVkLmdldEhlYWRlcldpZHRoKCkgLSAxKSB7XG4gICAgICAgICAgICAgICAgYWx0ZXJlZCA9IGZvcm1hdHRlcl8xLmFsdGVyQWxpZ25tZW50KHRhYmxlLCBuZXdGb2N1cy5jb2x1bW4sIGFsaWdubWVudCwgb3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBmb3JtYXRcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdHRlcl8xLmZvcm1hdFRhYmxlKGFsdGVyZWQsIG9wdGlvbnMpO1xuICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRPZmZzZXQoZXhwb3J0cy5fY29tcHV0ZU5ld09mZnNldChuZXdGb2N1cywgdGFibGUsIGZvcm1hdHRlZCwgZmFsc2UpKTtcbiAgICAgICAgICAgIC8vIGFwcGx5XG4gICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnRyYW5zYWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVMaW5lcyhyYW5nZS5zdGFydC5yb3csIHJhbmdlLmVuZC5yb3cgKyAxLCBmb3JtYXR0ZWQudGFibGUudG9MaW5lcygpLCBsaW5lcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW92ZVRvRm9jdXMocmFuZ2Uuc3RhcnQucm93LCBmb3JtYXR0ZWQudGFibGUsIG5ld0ZvY3VzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2VsZWN0cyB0aGUgZm9jdXNlZCBjZWxsIGNvbnRlbnQuXG4gICAgICovXG4gICAgc2VsZWN0Q2VsbChvcHRpb25zKSB7XG4gICAgICAgIHRoaXMud2l0aENvbXBsZXRlZFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgdGFibGUsIGZvY3VzIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0ZvY3VzID0gZm9jdXM7XG4gICAgICAgICAgICAvLyBhcHBseVxuICAgICAgICAgICAgdGhpcy5fdGV4dEVkaXRvci50cmFuc2FjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTGluZXMocmFuZ2Uuc3RhcnQucm93LCByYW5nZS5lbmQucm93ICsgMSwgdGFibGUudG9MaW5lcygpLCBsaW5lcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0Rm9jdXMocmFuZ2Uuc3RhcnQucm93LCB0YWJsZSwgbmV3Rm9jdXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNb3ZlcyB0aGUgZm9jdXMgdG8gYW5vdGhlciBjZWxsLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvd09mZnNldCAtIE9mZnNldCBpbiByb3cuXG4gICAgICogQHBhcmFtIGNvbHVtbk9mZnNldCAtIE9mZnNldCBpbiBjb2x1bW4uXG4gICAgICovXG4gICAgbW92ZUZvY3VzKHJvd09mZnNldCwgY29sdW1uT2Zmc2V0LCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMud2l0aENvbXBsZXRlZFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgdGFibGUsIGZvY3VzIH0pID0+IHtcbiAgICAgICAgICAgIGxldCBuZXdGb2N1cyA9IGZvY3VzO1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRGb2N1cyA9IG5ld0ZvY3VzO1xuICAgICAgICAgICAgLy8gbW92ZSBmb2N1c1xuICAgICAgICAgICAgaWYgKHJvd09mZnNldCAhPT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHRhYmxlLmdldEhlaWdodCgpO1xuICAgICAgICAgICAgICAgIC8vIHNraXAgZGVsaW1pdGVyIHJvd1xuICAgICAgICAgICAgICAgIGNvbnN0IHNraXAgPSBuZXdGb2N1cy5yb3cgPCAxICYmIG5ld0ZvY3VzLnJvdyArIHJvd09mZnNldCA+PSAxXG4gICAgICAgICAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgICAgICAgICA6IG5ld0ZvY3VzLnJvdyA+IDEgJiYgbmV3Rm9jdXMucm93ICsgcm93T2Zmc2V0IDw9IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gLTFcbiAgICAgICAgICAgICAgICAgICAgICAgIDogMDtcbiAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldFJvdyhNYXRoLm1pbihNYXRoLm1heChuZXdGb2N1cy5yb3cgKyByb3dPZmZzZXQgKyBza2lwLCAwKSwgaGVpZ2h0IDw9IDIgPyAwIDogaGVpZ2h0IC0gMSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbHVtbk9mZnNldCAhPT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gdGFibGUuZ2V0SGVhZGVyV2lkdGgoKTtcbiAgICAgICAgICAgICAgICBpZiAoIShuZXdGb2N1cy5jb2x1bW4gPCAwICYmIGNvbHVtbk9mZnNldCA8IDApICYmXG4gICAgICAgICAgICAgICAgICAgICEobmV3Rm9jdXMuY29sdW1uID4gd2lkdGggLSAxICYmIGNvbHVtbk9mZnNldCA+IDApKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Q29sdW1uKE1hdGgubWluKE1hdGgubWF4KG5ld0ZvY3VzLmNvbHVtbiArIGNvbHVtbk9mZnNldCwgMCksIHdpZHRoIC0gMSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1vdmVkID0gIW5ld0ZvY3VzLnBvc0VxdWFscyhzdGFydEZvY3VzKTtcbiAgICAgICAgICAgIC8vIGZvcm1hdFxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0dGVyXzEuZm9ybWF0VGFibGUodGFibGUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRPZmZzZXQoZXhwb3J0cy5fY29tcHV0ZU5ld09mZnNldChuZXdGb2N1cywgdGFibGUsIGZvcm1hdHRlZCwgbW92ZWQpKTtcbiAgICAgICAgICAgIC8vIGFwcGx5XG4gICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnRyYW5zYWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVMaW5lcyhyYW5nZS5zdGFydC5yb3csIHJhbmdlLmVuZC5yb3cgKyAxLCBmb3JtYXR0ZWQudGFibGUudG9MaW5lcygpLCBsaW5lcyk7XG4gICAgICAgICAgICAgICAgaWYgKG1vdmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEZvY3VzKHJhbmdlLnN0YXJ0LnJvdywgZm9ybWF0dGVkLnRhYmxlLCBuZXdGb2N1cyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb3ZlVG9Gb2N1cyhyYW5nZS5zdGFydC5yb3csIGZvcm1hdHRlZC50YWJsZSwgbmV3Rm9jdXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKG1vdmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldFNtYXJ0Q3Vyc29yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNb3ZlcyB0aGUgZm9jdXMgdG8gdGhlIG5leHQgY2VsbC5cbiAgICAgKi9cbiAgICBuZXh0Q2VsbChvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuX3dpdGhUYWJsZShvcHRpb25zLCAoeyByYW5nZSwgbGluZXMsIHRhYmxlLCBmb2N1cyB9KSA9PiB7XG4gICAgICAgICAgICAvLyByZXNldCBzbWFydCBjdXJzb3IgaWYgbW92ZWRcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzTW92ZWQgPSAodGhpcy5fc2NUYWJsZVBvcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgIXJhbmdlLnN0YXJ0LmVxdWFscyh0aGlzLl9zY1RhYmxlUG9zKSkgfHxcbiAgICAgICAgICAgICAgICAodGhpcy5fc2NMYXN0Rm9jdXMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICAhZm9jdXMucG9zRXF1YWxzKHRoaXMuX3NjTGFzdEZvY3VzKSk7XG4gICAgICAgICAgICBpZiAodGhpcy5fc2NBY3RpdmUgJiYgZm9jdXNNb3ZlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRTbWFydEN1cnNvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IG5ld0ZvY3VzID0gZm9jdXM7XG4gICAgICAgICAgICAvLyBjb21wbGV0ZVxuICAgICAgICAgICAgY29uc3QgY29tcGxldGVkID0gZm9ybWF0dGVyXzEuY29tcGxldGVUYWJsZSh0YWJsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICBpZiAoY29tcGxldGVkLmRlbGltaXRlckluc2VydGVkICYmIG5ld0ZvY3VzLnJvdyA+IDApIHtcbiAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldFJvdyhuZXdGb2N1cy5yb3cgKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0Rm9jdXMgPSBuZXdGb2N1cztcbiAgICAgICAgICAgIGxldCBhbHRlcmVkID0gY29tcGxldGVkLnRhYmxlO1xuICAgICAgICAgICAgLy8gbW92ZSBmb2N1c1xuICAgICAgICAgICAgaWYgKG5ld0ZvY3VzLnJvdyA9PT0gMSkge1xuICAgICAgICAgICAgICAgIC8vIG1vdmUgdG8gbmV4dCByb3dcbiAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldFJvdygyKTtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5zbWFydEN1cnNvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV3Rm9jdXMuY29sdW1uIDwgMCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJlZC5nZXRIZWFkZXJXaWR0aCgpIC0gMSA8IG5ld0ZvY3VzLmNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRDb2x1bW4oMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Q29sdW1uKDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBpbnNlcnQgYW4gZW1wdHkgcm93IGlmIG5lZWRlZFxuICAgICAgICAgICAgICAgIGlmIChuZXdGb2N1cy5yb3cgPiBhbHRlcmVkLmdldEhlaWdodCgpIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3cgPSBuZXcgQXJyYXkoYWx0ZXJlZC5nZXRIZWFkZXJXaWR0aCgpKS5maWxsKG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKCcnKSk7XG4gICAgICAgICAgICAgICAgICAgIGFsdGVyZWQgPSBmb3JtYXR0ZXJfMS5pbnNlcnRSb3coYWx0ZXJlZCwgYWx0ZXJlZC5nZXRIZWlnaHQoKSwgbmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KHJvdywgJycsICcnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gaW5zZXJ0IGFuIGVtcHR5IGNvbHVtbiBpZiBuZWVkZWRcbiAgICAgICAgICAgICAgICBpZiAobmV3Rm9jdXMuY29sdW1uID4gYWx0ZXJlZC5nZXRIZWFkZXJXaWR0aCgpIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQXJyYXkoYWx0ZXJlZC5nZXRIZWlnaHQoKSAtIDEpLmZpbGwobmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoJycpKTtcbiAgICAgICAgICAgICAgICAgICAgYWx0ZXJlZCA9IGZvcm1hdHRlcl8xLmluc2VydENvbHVtbihhbHRlcmVkLCBhbHRlcmVkLmdldEhlYWRlcldpZHRoKCksIGNvbHVtbiwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIG1vdmUgdG8gbmV4dCBjb2x1bW5cbiAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldENvbHVtbihuZXdGb2N1cy5jb2x1bW4gKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGZvcm1hdFxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0dGVyXzEuZm9ybWF0VGFibGUoYWx0ZXJlZCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldE9mZnNldChleHBvcnRzLl9jb21wdXRlTmV3T2Zmc2V0KG5ld0ZvY3VzLCBhbHRlcmVkLCBmb3JtYXR0ZWQsIHRydWUpKTtcbiAgICAgICAgICAgIC8vIGFwcGx5XG4gICAgICAgICAgICBjb25zdCBuZXdMaW5lcyA9IGZvcm1hdHRlZC50YWJsZS50b0xpbmVzKCk7XG4gICAgICAgICAgICBpZiAobmV3Rm9jdXMuY29sdW1uID4gZm9ybWF0dGVkLnRhYmxlLmdldEhlYWRlcldpZHRoKCkgLSAxKSB7XG4gICAgICAgICAgICAgICAgLy8gYWRkIG1hcmdpblxuICAgICAgICAgICAgICAgIG5ld0xpbmVzW25ld0ZvY3VzLnJvd10gKz0gJyAnO1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0T2Zmc2V0KDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fdGV4dEVkaXRvci50cmFuc2FjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTGluZXMocmFuZ2Uuc3RhcnQucm93LCByYW5nZS5lbmQucm93ICsgMSwgbmV3TGluZXMsIGxpbmVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RGb2N1cyhyYW5nZS5zdGFydC5yb3csIGZvcm1hdHRlZC50YWJsZSwgbmV3Rm9jdXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zbWFydEN1cnNvcikge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fc2NBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWN0aXZhdGUgc21hcnQgY3Vyc29yXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NjQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2NUYWJsZVBvcyA9IHJhbmdlLnN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRGb2N1cy5jb2x1bW4gPCAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWQudGFibGUuZ2V0SGVhZGVyV2lkdGgoKSAtIDEgPCBzdGFydEZvY3VzLmNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2NTdGFydEZvY3VzID0gbmV3IGZvY3VzXzEuRm9jdXMoc3RhcnRGb2N1cy5yb3csIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2NTdGFydEZvY3VzID0gc3RhcnRGb2N1cztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9zY0xhc3RGb2N1cyA9IG5ld0ZvY3VzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTW92ZXMgdGhlIGZvY3VzIHRvIHRoZSBwcmV2aW91cyBjZWxsLlxuICAgICAqL1xuICAgIHByZXZpb3VzQ2VsbChvcHRpb25zKSB7XG4gICAgICAgIHRoaXMud2l0aENvbXBsZXRlZFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgdGFibGUsIGZvY3VzIH0pID0+IHtcbiAgICAgICAgICAgIGxldCBuZXdGb2N1cyA9IGZvY3VzO1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRGb2N1cyA9IG5ld0ZvY3VzO1xuICAgICAgICAgICAgLy8gbW92ZSBmb2N1c1xuICAgICAgICAgICAgaWYgKG5ld0ZvY3VzLnJvdyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXdGb2N1cy5jb2x1bW4gPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Q29sdW1uKG5ld0ZvY3VzLmNvbHVtbiAtIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5ld0ZvY3VzLnJvdyA9PT0gMSkge1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3IGZvY3VzXzEuRm9jdXMoMCwgdGFibGUuZ2V0SGVhZGVyV2lkdGgoKSAtIDEsIG5ld0ZvY3VzLm9mZnNldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAobmV3Rm9jdXMuY29sdW1uID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldENvbHVtbihuZXdGb2N1cy5jb2x1bW4gLSAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3IGZvY3VzXzEuRm9jdXMobmV3Rm9jdXMucm93ID09PSAyID8gMCA6IG5ld0ZvY3VzLnJvdyAtIDEsIHRhYmxlLmdldEhlYWRlcldpZHRoKCkgLSAxLCBuZXdGb2N1cy5vZmZzZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1vdmVkID0gIW5ld0ZvY3VzLnBvc0VxdWFscyhzdGFydEZvY3VzKTtcbiAgICAgICAgICAgIC8vIGZvcm1hdFxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0dGVyXzEuZm9ybWF0VGFibGUodGFibGUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRPZmZzZXQoZXhwb3J0cy5fY29tcHV0ZU5ld09mZnNldChuZXdGb2N1cywgdGFibGUsIGZvcm1hdHRlZCwgbW92ZWQpKTtcbiAgICAgICAgICAgIC8vIGFwcGx5XG4gICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnRyYW5zYWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVMaW5lcyhyYW5nZS5zdGFydC5yb3csIHJhbmdlLmVuZC5yb3cgKyAxLCBmb3JtYXR0ZWQudGFibGUudG9MaW5lcygpLCBsaW5lcyk7XG4gICAgICAgICAgICAgICAgaWYgKG1vdmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEZvY3VzKHJhbmdlLnN0YXJ0LnJvdywgZm9ybWF0dGVkLnRhYmxlLCBuZXdGb2N1cyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb3ZlVG9Gb2N1cyhyYW5nZS5zdGFydC5yb3csIGZvcm1hdHRlZC50YWJsZSwgbmV3Rm9jdXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKG1vdmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldFNtYXJ0Q3Vyc29yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNb3ZlcyB0aGUgZm9jdXMgdG8gdGhlIG5leHQgcm93LlxuICAgICAqL1xuICAgIG5leHRSb3cob3B0aW9ucykge1xuICAgICAgICB0aGlzLl93aXRoVGFibGUob3B0aW9ucywgKHsgcmFuZ2UsIGxpbmVzLCB0YWJsZSwgZm9jdXMgfSkgPT4ge1xuICAgICAgICAgICAgLy8gcmVzZXQgc21hcnQgY3Vyc29yIGlmIG1vdmVkXG4gICAgICAgICAgICBjb25zdCBmb2N1c01vdmVkID0gKHRoaXMuX3NjVGFibGVQb3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICFyYW5nZS5zdGFydC5lcXVhbHModGhpcy5fc2NUYWJsZVBvcykpIHx8XG4gICAgICAgICAgICAgICAgKHRoaXMuX3NjTGFzdEZvY3VzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgIWZvY3VzLnBvc0VxdWFscyh0aGlzLl9zY0xhc3RGb2N1cykpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX3NjQWN0aXZlICYmIGZvY3VzTW92ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0U21hcnRDdXJzb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBuZXdGb2N1cyA9IGZvY3VzO1xuICAgICAgICAgICAgLy8gY29tcGxldGVcbiAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlZCA9IGZvcm1hdHRlcl8xLmNvbXBsZXRlVGFibGUodGFibGUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgaWYgKGNvbXBsZXRlZC5kZWxpbWl0ZXJJbnNlcnRlZCAmJiBuZXdGb2N1cy5yb3cgPiAwKSB7XG4gICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRSb3cobmV3Rm9jdXMucm93ICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzdGFydEZvY3VzID0gbmV3Rm9jdXM7XG4gICAgICAgICAgICBsZXQgYWx0ZXJlZCA9IGNvbXBsZXRlZC50YWJsZTtcbiAgICAgICAgICAgIC8vIG1vdmUgZm9jdXNcbiAgICAgICAgICAgIGlmIChuZXdGb2N1cy5yb3cgPT09IDApIHtcbiAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldFJvdygyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Um93KG5ld0ZvY3VzLnJvdyArIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc21hcnRDdXJzb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fc2NBY3RpdmUgJiYgdGhpcy5fc2NTdGFydEZvY3VzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRDb2x1bW4odGhpcy5fc2NTdGFydEZvY3VzLmNvbHVtbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG5ld0ZvY3VzLmNvbHVtbiA8IDAgfHxcbiAgICAgICAgICAgICAgICAgICAgYWx0ZXJlZC5nZXRIZWFkZXJXaWR0aCgpIC0gMSA8IG5ld0ZvY3VzLmNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldENvbHVtbigwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldENvbHVtbigwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGluc2VydCBlbXB0eSByb3cgaWYgbmVlZGVkXG4gICAgICAgICAgICBpZiAobmV3Rm9jdXMucm93ID4gYWx0ZXJlZC5nZXRIZWlnaHQoKSAtIDEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3cgPSBuZXcgQXJyYXkoYWx0ZXJlZC5nZXRIZWFkZXJXaWR0aCgpKS5maWxsKG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKCcnKSk7XG4gICAgICAgICAgICAgICAgYWx0ZXJlZCA9IGZvcm1hdHRlcl8xLmluc2VydFJvdyhhbHRlcmVkLCBhbHRlcmVkLmdldEhlaWdodCgpLCBuZXcgdGFibGVfcm93XzEuVGFibGVSb3cocm93LCAnJywgJycpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGZvcm1hdFxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0dGVyXzEuZm9ybWF0VGFibGUoYWx0ZXJlZCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldE9mZnNldChleHBvcnRzLl9jb21wdXRlTmV3T2Zmc2V0KG5ld0ZvY3VzLCBhbHRlcmVkLCBmb3JtYXR0ZWQsIHRydWUpKTtcbiAgICAgICAgICAgIC8vIGFwcGx5XG4gICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnRyYW5zYWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVMaW5lcyhyYW5nZS5zdGFydC5yb3csIHJhbmdlLmVuZC5yb3cgKyAxLCBmb3JtYXR0ZWQudGFibGUudG9MaW5lcygpLCBsaW5lcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0Rm9jdXMocmFuZ2Uuc3RhcnQucm93LCBmb3JtYXR0ZWQudGFibGUsIG5ld0ZvY3VzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc21hcnRDdXJzb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX3NjQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFjdGl2YXRlIHNtYXJ0IGN1cnNvclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY0FjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NjVGFibGVQb3MgPSByYW5nZS5zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0Rm9jdXMuY29sdW1uIDwgMCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkLnRhYmxlLmdldEhlYWRlcldpZHRoKCkgLSAxIDwgc3RhcnRGb2N1cy5jb2x1bW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NjU3RhcnRGb2N1cyA9IG5ldyBmb2N1c18xLkZvY3VzKHN0YXJ0Rm9jdXMucm93LCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NjU3RhcnRGb2N1cyA9IHN0YXJ0Rm9jdXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fc2NMYXN0Rm9jdXMgPSBuZXdGb2N1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluc2VydHMgYW4gZW1wdHkgcm93IGF0IHRoZSBjdXJyZW50IGZvY3VzLlxuICAgICAqL1xuICAgIGluc2VydFJvdyhvcHRpb25zKSB7XG4gICAgICAgIHRoaXMud2l0aENvbXBsZXRlZFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgZm9ybXVsYUxpbmVzLCB0YWJsZSwgZm9jdXMgfSkgPT4ge1xuICAgICAgICAgICAgbGV0IG5ld0ZvY3VzID0gZm9jdXM7XG4gICAgICAgICAgICAvLyBtb3ZlIGZvY3VzXG4gICAgICAgICAgICBpZiAobmV3Rm9jdXMucm93IDw9IDEpIHtcbiAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldFJvdygyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Q29sdW1uKDApO1xuICAgICAgICAgICAgLy8gaW5zZXJ0IGFuIGVtcHR5IHJvd1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gbmV3IEFycmF5KHRhYmxlLmdldEhlYWRlcldpZHRoKCkpLmZpbGwobmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoJycpKTtcbiAgICAgICAgICAgIGNvbnN0IGFsdGVyZWQgPSBmb3JtYXR0ZXJfMS5pbnNlcnRSb3codGFibGUsIG5ld0ZvY3VzLnJvdywgbmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KHJvdywgJycsICcnKSk7XG4gICAgICAgICAgICB0aGlzLmZvcm1hdEFuZEFwcGx5KG9wdGlvbnMsIHJhbmdlLCBsaW5lcywgZm9ybXVsYUxpbmVzLCBhbHRlcmVkLCBuZXdGb2N1cyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGEgcm93IGF0IHRoZSBjdXJyZW50IGZvY3VzLlxuICAgICAqL1xuICAgIGRlbGV0ZVJvdyhvcHRpb25zKSB7XG4gICAgICAgIHRoaXMud2l0aENvbXBsZXRlZFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgZm9ybXVsYUxpbmVzLCB0YWJsZSwgZm9jdXMgfSkgPT4ge1xuICAgICAgICAgICAgbGV0IG5ld0ZvY3VzID0gZm9jdXM7XG4gICAgICAgICAgICAvLyBkZWxldGUgYSByb3dcbiAgICAgICAgICAgIGxldCBhbHRlcmVkID0gdGFibGU7XG4gICAgICAgICAgICBsZXQgbW92ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChuZXdGb2N1cy5yb3cgIT09IDEpIHtcbiAgICAgICAgICAgICAgICBhbHRlcmVkID0gZm9ybWF0dGVyXzEuZGVsZXRlUm93KGFsdGVyZWQsIG5ld0ZvY3VzLnJvdyk7XG4gICAgICAgICAgICAgICAgbW92ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChuZXdGb2N1cy5yb3cgPiBhbHRlcmVkLmdldEhlaWdodCgpIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldFJvdyhuZXdGb2N1cy5yb3cgPT09IDIgPyAwIDogbmV3Rm9jdXMucm93IC0gMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5mb3JtYXRBbmRBcHBseShvcHRpb25zLCByYW5nZSwgbGluZXMsIGZvcm11bGFMaW5lcywgYWx0ZXJlZCwgbmV3Rm9jdXMsIG1vdmVkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1vdmVzIHRoZSBmb2N1c2VkIHJvdyBieSB0aGUgc3BlY2lmaWVkIG9mZnNldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZmZzZXQgLSBBbiBvZmZzZXQgdGhlIHJvdyBpcyBtb3ZlZCBieS5cbiAgICAgKi9cbiAgICBtb3ZlUm93KG9mZnNldCwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLndpdGhDb21wbGV0ZWRUYWJsZShvcHRpb25zLCAoeyByYW5nZSwgbGluZXMsIGZvcm11bGFMaW5lcywgdGFibGUsIGZvY3VzIH0pID0+IHtcbiAgICAgICAgICAgIGxldCBuZXdGb2N1cyA9IGZvY3VzO1xuICAgICAgICAgICAgLy8gbW92ZSByb3dcbiAgICAgICAgICAgIGxldCBhbHRlcmVkID0gdGFibGU7XG4gICAgICAgICAgICBpZiAobmV3Rm9jdXMucm93ID4gMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlc3QgPSBNYXRoLm1pbihNYXRoLm1heChuZXdGb2N1cy5yb3cgKyBvZmZzZXQsIDIpLCBhbHRlcmVkLmdldEhlaWdodCgpIC0gMSk7XG4gICAgICAgICAgICAgICAgYWx0ZXJlZCA9IGZvcm1hdHRlcl8xLm1vdmVSb3coYWx0ZXJlZCwgbmV3Rm9jdXMucm93LCBkZXN0KTtcbiAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldFJvdyhkZXN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QW5kQXBwbHkob3B0aW9ucywgcmFuZ2UsIGxpbmVzLCBmb3JtdWxhTGluZXMsIGFsdGVyZWQsIG5ld0ZvY3VzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGV2YWx1YXRlRm9ybXVsYXMob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy53aXRoQ29tcGxldGVkVGFibGUob3B0aW9ucywgKHsgcmFuZ2UsIGxpbmVzLCBmb3JtdWxhTGluZXMsIHRhYmxlLCBmb2N1cywgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGFibGUuYXBwbHlGb3JtdWxhcyhmb3JtdWxhTGluZXMpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0VycigpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5lcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgdGFibGU6IGZvcm1hdHRlZFRhYmxlLCBmb2N1czogbmV3Rm9jdXMgfSA9IHRoaXMuZm9ybWF0QW5kQXBwbHkob3B0aW9ucywgcmFuZ2UsIGxpbmVzLCBmb3JtdWxhTGluZXMsIHJlc3VsdC52YWx1ZSwgZm9jdXMsIGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNvcnRzIHJvd3MgYWxwaGFudW1lcmljYWxseSB1c2luZyB0aGUgY29sdW1uIGF0IHRoZSBjdXJyZW50IGZvY3VzLlxuICAgICAqIElmIGFsbCBjZWxscyBpbiB0aGUgc29ydGluZyBjb2x1bW4gYXJlIG51bWJlcnMsIHRoZSBjb2x1bW4gaXMgc29ydGVkXG4gICAgICogbnVtZXJpY2FsbHkuXG4gICAgICovXG4gICAgc29ydFJvd3Moc29ydE9yZGVyLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMud2l0aENvbXBsZXRlZFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgZm9ybXVsYUxpbmVzLCB0YWJsZSwgZm9jdXMgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYm9keVJvd3MgPSB0YWJsZS5nZXRSb3dzKCkuc2xpY2UoMik7XG4gICAgICAgICAgICBjb25zdCBpc051bWJlciA9IChzKSA9PiAvXlxccypbLStdPygoXFxkKyhcXC5cXGQrKT8pfChcXGQrXFwuKXwoXFwuXFxkKykpKFtlRV1bLStdP1xcZCspP1xccyokLy50ZXN0KHMpO1xuICAgICAgICAgICAgY29uc3Qgbm90QWxsTnVtcyA9IGJvZHlSb3dzXG4gICAgICAgICAgICAgICAgLm1hcCgocm93KSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IHJvdy5nZXRDZWxsQXQoZm9jdXMuY29sdW1uKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbnRlbnQ7IH0pXG4gICAgICAgICAgICAgICAgLnNvbWUoKGNlbGwpID0+IGNlbGwgIT09IHVuZGVmaW5lZCAmJiBjZWxsICE9PSAnJyAmJiAhaXNOdW1iZXIoY2VsbCkpO1xuICAgICAgICAgICAgYm9keVJvd3Muc29ydCgocm93QSwgcm93QikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxBID0gcm93QS5nZXRDZWxsQXQoZm9jdXMuY29sdW1uKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsQiA9IHJvd0IuZ2V0Q2VsbEF0KGZvY3VzLmNvbHVtbik7XG4gICAgICAgICAgICAgICAgaWYgKGNlbGxBID09PSB1bmRlZmluZWQgfHwgY2VsbEEuY29udGVudCA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxCID09PSB1bmRlZmluZWQgfHwgY2VsbEIuY29udGVudCA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2VsbEIgPT09IHVuZGVmaW5lZCB8fCBjZWxsQi5jb250ZW50ID09PSAnJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudEEgPSBub3RBbGxOdW1zXG4gICAgICAgICAgICAgICAgICAgID8gY2VsbEEuY29udGVudC5yZXBsYWNlKC9bKn5fJF0vZywgJycpXG4gICAgICAgICAgICAgICAgICAgIDogcGFyc2VGbG9hdChjZWxsQS5jb250ZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50QiA9IG5vdEFsbE51bXNcbiAgICAgICAgICAgICAgICAgICAgPyBjZWxsQi5jb250ZW50LnJlcGxhY2UoL1sqfl8kXS9nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgOiBwYXJzZUZsb2F0KGNlbGxCLmNvbnRlbnQpO1xuICAgICAgICAgICAgICAgIGlmIChjb250ZW50QSA9PT0gY29udGVudEIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvbnRlbnRBID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjb250ZW50QiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudEEgPCBjb250ZW50QiA/IC0xIDogMTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHNvcnRPcmRlciA9PT0gU29ydE9yZGVyLkRlc2NlbmRpbmcpIHtcbiAgICAgICAgICAgICAgICBib2R5Um93cy5yZXZlcnNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhbGxSb3dzID0gdGFibGUuZ2V0Um93cygpLnNsaWNlKDAsIDIpLmNvbmNhdChib2R5Um93cyk7XG4gICAgICAgICAgICBjb25zdCBuZXdUYWJsZSA9IG5ldyB0YWJsZV8xLlRhYmxlKGFsbFJvd3MpO1xuICAgICAgICAgICAgY29uc3QgeyB0YWJsZTogZm9ybWF0dGVkVGFibGUsIGZvY3VzOiBuZXdGb2N1cyB9ID0gdGhpcy5mb3JtYXRBbmRBcHBseShvcHRpb25zLCByYW5nZSwgbGluZXMsIGZvcm11bGFMaW5lcywgbmV3VGFibGUsIGZvY3VzLCB0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuX21vdmVUb0ZvY3VzKHJhbmdlLnN0YXJ0LnJvdywgZm9ybWF0dGVkVGFibGUsIG5ld0ZvY3VzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluc2VydHMgYW4gZW1wdHkgY29sdW1uIGF0IHRoZSBjdXJyZW50IGZvY3VzLlxuICAgICAqL1xuICAgIGluc2VydENvbHVtbihvcHRpb25zKSB7XG4gICAgICAgIHRoaXMud2l0aENvbXBsZXRlZFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgZm9ybXVsYUxpbmVzLCB0YWJsZSwgZm9jdXMgfSkgPT4ge1xuICAgICAgICAgICAgbGV0IG5ld0ZvY3VzID0gZm9jdXM7XG4gICAgICAgICAgICAvLyBtb3ZlIGZvY3VzXG4gICAgICAgICAgICBpZiAobmV3Rm9jdXMucm93ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRSb3coMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobmV3Rm9jdXMuY29sdW1uIDwgMCkge1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Q29sdW1uKDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaW5zZXJ0IGFuIGVtcHR5IGNvbHVtblxuICAgICAgICAgICAgY29uc3QgY29sdW1uID0gbmV3IEFycmF5KHRhYmxlLmdldEhlaWdodCgpIC0gMSkuZmlsbChuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbCgnJykpO1xuICAgICAgICAgICAgY29uc3QgYWx0ZXJlZCA9IGZvcm1hdHRlcl8xLmluc2VydENvbHVtbih0YWJsZSwgbmV3Rm9jdXMuY29sdW1uLCBjb2x1bW4sIG9wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy5mb3JtYXRBbmRBcHBseShvcHRpb25zLCByYW5nZSwgbGluZXMsIGZvcm11bGFMaW5lcywgYWx0ZXJlZCwgbmV3Rm9jdXMpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIGNvbHVtbiBhdCB0aGUgY3VycmVudCBmb2N1cy5cbiAgICAgKi9cbiAgICBkZWxldGVDb2x1bW4ob3B0aW9ucykge1xuICAgICAgICB0aGlzLndpdGhDb21wbGV0ZWRUYWJsZShvcHRpb25zLCAoeyByYW5nZSwgbGluZXMsIGZvcm11bGFMaW5lcywgdGFibGUsIGZvY3VzIH0pID0+IHtcbiAgICAgICAgICAgIGxldCBuZXdGb2N1cyA9IGZvY3VzO1xuICAgICAgICAgICAgLy8gbW92ZSBmb2N1c1xuICAgICAgICAgICAgaWYgKG5ld0ZvY3VzLnJvdyA9PT0gMSkge1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Um93KDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZGVsZXRlIGEgY29sdW1uXG4gICAgICAgICAgICBsZXQgYWx0ZXJlZCA9IHRhYmxlO1xuICAgICAgICAgICAgbGV0IG1vdmVkID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoMCA8PSBuZXdGb2N1cy5jb2x1bW4gJiZcbiAgICAgICAgICAgICAgICBuZXdGb2N1cy5jb2x1bW4gPD0gYWx0ZXJlZC5nZXRIZWFkZXJXaWR0aCgpIC0gMSkge1xuICAgICAgICAgICAgICAgIGFsdGVyZWQgPSBmb3JtYXR0ZXJfMS5kZWxldGVDb2x1bW4odGFibGUsIG5ld0ZvY3VzLmNvbHVtbiwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgbW92ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChuZXdGb2N1cy5jb2x1bW4gPiBhbHRlcmVkLmdldEhlYWRlcldpZHRoKCkgLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Q29sdW1uKGFsdGVyZWQuZ2V0SGVhZGVyV2lkdGgoKSAtIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QW5kQXBwbHkob3B0aW9ucywgcmFuZ2UsIGxpbmVzLCBmb3JtdWxhTGluZXMsIGFsdGVyZWQsIG5ld0ZvY3VzLCBtb3ZlZCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNb3ZlcyB0aGUgZm9jdXNlZCBjb2x1bW4gYnkgdGhlIHNwZWNpZmllZCBvZmZzZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2Zmc2V0IC0gQW4gb2Zmc2V0IHRoZSBjb2x1bW4gaXMgbW92ZWQgYnkuXG4gICAgICovXG4gICAgbW92ZUNvbHVtbihvZmZzZXQsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy53aXRoQ29tcGxldGVkVGFibGUob3B0aW9ucywgKHsgcmFuZ2UsIGxpbmVzLCBmb3JtdWxhTGluZXMsIHRhYmxlLCBmb2N1cyB9KSA9PiB7XG4gICAgICAgICAgICBsZXQgbmV3Rm9jdXMgPSBmb2N1cztcbiAgICAgICAgICAgIC8vIG1vdmUgY29sdW1uXG4gICAgICAgICAgICBsZXQgYWx0ZXJlZCA9IHRhYmxlO1xuICAgICAgICAgICAgaWYgKDAgPD0gbmV3Rm9jdXMuY29sdW1uICYmXG4gICAgICAgICAgICAgICAgbmV3Rm9jdXMuY29sdW1uIDw9IGFsdGVyZWQuZ2V0SGVhZGVyV2lkdGgoKSAtIDEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZXN0ID0gTWF0aC5taW4oTWF0aC5tYXgobmV3Rm9jdXMuY29sdW1uICsgb2Zmc2V0LCAwKSwgYWx0ZXJlZC5nZXRIZWFkZXJXaWR0aCgpIC0gMSk7XG4gICAgICAgICAgICAgICAgYWx0ZXJlZCA9IGZvcm1hdHRlcl8xLm1vdmVDb2x1bW4oYWx0ZXJlZCwgbmV3Rm9jdXMuY29sdW1uLCBkZXN0KTtcbiAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldENvbHVtbihkZXN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QW5kQXBwbHkob3B0aW9ucywgcmFuZ2UsIGxpbmVzLCBmb3JtdWxhTGluZXMsIGFsdGVyZWQsIG5ld0ZvY3VzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEZvcm1hdHMgYWxsIHRoZSB0YWJsZXMgaW4gdGhlIHRleHQgZWRpdG9yLlxuICAgICAqL1xuICAgIGZvcm1hdEFsbChvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuX3RleHRFZGl0b3IudHJhbnNhY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmUgPSBleHBvcnRzLl9jcmVhdGVJc1RhYmxlUm93UmVnZXgob3B0aW9ucy5sZWZ0TWFyZ2luQ2hhcnMpO1xuICAgICAgICAgICAgbGV0IHBvcyA9IHRoaXMuX3RleHRFZGl0b3IuZ2V0Q3Vyc29yUG9zaXRpb24oKTtcbiAgICAgICAgICAgIGxldCBsaW5lcyA9IFtdO1xuICAgICAgICAgICAgbGV0IHN0YXJ0Um93ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgbGV0IGxhc3RSb3cgPSB0aGlzLl90ZXh0RWRpdG9yLmdldExhc3RSb3coKTtcbiAgICAgICAgICAgIC8vIGZpbmQgdGFibGVzXG4gICAgICAgICAgICBmb3IgKGxldCByb3cgPSAwOyByb3cgPD0gbGFzdFJvdzsgcm93KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gdGhpcy5fdGV4dEVkaXRvci5nZXRMaW5lKHJvdyk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RleHRFZGl0b3IuYWNjZXB0c1RhYmxlRWRpdChyb3cpICYmIHJlLnRlc3QobGluZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGluZXMucHVzaChsaW5lKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0Um93ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0Um93ID0gcm93O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXJ0Um93ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IHRhYmxlIGluZm9cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kUm93ID0gcm93IC0gMTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBuZXcgcmFuZ2VfMS5SYW5nZShuZXcgcG9pbnRfMS5Qb2ludChzdGFydFJvdywgMCksIG5ldyBwb2ludF8xLlBvaW50KGVuZFJvdywgbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubGVuZ3RoKSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGZvcm11bGFMaW5lcyBlbXB0eSBiZWNhdXNlIGZvcm1hdHRpbmcgZG9lcyBub3QgaW52b2x2ZSBmb3JtdWxhc1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWJsZSA9IHBhcnNlcl8xLnJlYWRUYWJsZShsaW5lcywgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvY3VzID0gdGFibGUuZm9jdXNPZlBvc2l0aW9uKHBvcywgc3RhcnRSb3cpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgZGlmZjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvY3VzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvcm1hdFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld0ZvY3VzID0gZm9jdXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wbGV0ZWQgPSBmb3JtYXR0ZXJfMS5jb21wbGV0ZVRhYmxlKHRhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb21wbGV0ZWQuZGVsaW1pdGVySW5zZXJ0ZWQgJiYgbmV3Rm9jdXMucm93ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Um93KG5ld0ZvY3VzLnJvdyArIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0dGVyXzEuZm9ybWF0VGFibGUoY29tcGxldGVkLnRhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0T2Zmc2V0KGV4cG9ydHMuX2NvbXB1dGVOZXdPZmZzZXQobmV3Rm9jdXMsIGNvbXBsZXRlZC50YWJsZSwgZm9ybWF0dGVkLCBmYWxzZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXBwbHlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0xpbmVzID0gZm9ybWF0dGVkLnRhYmxlLnRvTGluZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUxpbmVzKHJhbmdlLnN0YXJ0LnJvdywgcmFuZ2UuZW5kLnJvdyArIDEsIG5ld0xpbmVzLCBsaW5lcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGUgY3Vyc29yIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBkaWZmID0gbmV3TGluZXMubGVuZ3RoIC0gbGluZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gZm9ybWF0dGVkLnRhYmxlLnBvc2l0aW9uT2ZGb2N1cyhuZXdGb2N1cywgc3RhcnRSb3cpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9ybWF0XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wbGV0ZWQgPSBmb3JtYXR0ZXJfMS5jb21wbGV0ZVRhYmxlKHRhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdHRlcl8xLmZvcm1hdFRhYmxlKGNvbXBsZXRlZC50YWJsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhcHBseVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3TGluZXMgPSBmb3JtYXR0ZWQudGFibGUudG9MaW5lcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTGluZXMocmFuZ2Uuc3RhcnQucm93LCByYW5nZS5lbmQucm93ICsgMSwgbmV3TGluZXMsIGxpbmVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBjdXJzb3IgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpZmYgPSBuZXdMaW5lcy5sZW5ndGggLSBsaW5lcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zLnJvdyA+IGVuZFJvdykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IG5ldyBwb2ludF8xLlBvaW50KHBvcy5yb3cgKyBkaWZmLCBwb3MuY29sdW1uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyByZXNldFxuICAgICAgICAgICAgICAgICAgICBsaW5lcyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBzdGFydFJvdyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlXG4gICAgICAgICAgICAgICAgICAgIGxhc3RSb3cgKz0gZGlmZjtcbiAgICAgICAgICAgICAgICAgICAgcm93ICs9IGRpZmY7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHN0YXJ0Um93ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBnZXQgdGFibGUgaW5mb1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZFJvdyA9IGxhc3RSb3c7XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBuZXcgcmFuZ2VfMS5SYW5nZShuZXcgcG9pbnRfMS5Qb2ludChzdGFydFJvdywgMCksIG5ldyBwb2ludF8xLlBvaW50KGVuZFJvdywgbGluZXNbbGluZXMubGVuZ3RoIC0gMV0ubGVuZ3RoKSk7XG4gICAgICAgICAgICAgICAgLy8gZm9ybXVsYUxpbmVzIGVtcHR5IGJlY2F1c2UgZm9ybWF0dGluZyBkb2VzIG5vdCBpbnZvbHZlIGZvcm11bGFzXG4gICAgICAgICAgICAgICAgY29uc3QgdGFibGUgPSBwYXJzZXJfMS5yZWFkVGFibGUobGluZXMsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvY3VzID0gdGFibGUuZm9jdXNPZlBvc2l0aW9uKHBvcywgc3RhcnRSb3cpO1xuICAgICAgICAgICAgICAgIC8vIGZvcm1hdFxuICAgICAgICAgICAgICAgIGxldCBuZXdGb2N1cyA9IGZvY3VzO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlZCA9IGZvcm1hdHRlcl8xLmNvbXBsZXRlVGFibGUodGFibGUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ET1xuICAgICAgICAgICAgICAgIGlmIChjb21wbGV0ZWQuZGVsaW1pdGVySW5zZXJ0ZWQgJiYgbmV3Rm9jdXMucm93ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE9cbiAgICAgICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRSb3cobmV3Rm9jdXMucm93ICsgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdHRlcl8xLmZvcm1hdFRhYmxlKGNvbXBsZXRlZC50YWJsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPXG4gICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRPZmZzZXQoXG4gICAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPXG4gICAgICAgICAgICAgICAgZXhwb3J0cy5fY29tcHV0ZU5ld09mZnNldChuZXdGb2N1cywgY29tcGxldGVkLnRhYmxlLCBmb3JtYXR0ZWQsIGZhbHNlKSk7XG4gICAgICAgICAgICAgICAgLy8gYXBwbHlcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdMaW5lcyA9IGZvcm1hdHRlZC50YWJsZS50b0xpbmVzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTGluZXMocmFuZ2Uuc3RhcnQucm93LCByYW5nZS5lbmQucm93ICsgMSwgbmV3TGluZXMsIGxpbmVzKTtcbiAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE9cbiAgICAgICAgICAgICAgICBwb3MgPSBmb3JtYXR0ZWQudGFibGUucG9zaXRpb25PZkZvY3VzKG5ld0ZvY3VzLCBzdGFydFJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnNldEN1cnNvclBvc2l0aW9uKHBvcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFeHBvcnRzIHRoZSB0YWJsZSBhcyBhIHR3byBkaW1lbnNpb25hbCBzdHJpbmcgYXJyYXlcbiAgICAgKi9cbiAgICBleHBvcnRUYWJsZSh3aXRodEhlYWRlcnMsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2l0aENvbXBsZXRlZFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgZm9ybXVsYUxpbmVzLCB0YWJsZSwgZm9jdXMgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYm9keVJvd3MgPSB0YWJsZS5nZXRSb3dzKCk7XG4gICAgICAgICAgICBpZiAoYm9keVJvd3MubGVuZ3RoID4gMCAmJiAhd2l0aHRIZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgYm9keVJvd3Muc3BsaWNlKDAsIDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZWxzZSBpZihib2R5Um93cy5sZW5ndGggPiAxKSBib2R5Um93cy5zcGxpY2UoMSwgMSk7XG4gICAgICAgICAgICByZXR1cm4gYm9keVJvd3MubWFwKChyb3cpID0+IHJvdy5nZXRDZWxscygpLm1hcCgoY2VsbCkgPT4gY2VsbC5jb250ZW50KSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFeHBvcnRzIHRoZSB0YWJsZSBhcyBhIHR3byBkaW1lbnNpb25hbCBzdHJpbmcgYXJyYXlcbiAgICAgKi9cbiAgICBleHBvcnRDU1Yod2l0aHRIZWFkZXJzLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmV4cG9ydFRhYmxlKHdpdGh0SGVhZGVycywgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiAhciA/IHVuZGVmaW5lZCA6IHIubWFwKChyb3cpID0+IHJvdy5qb2luKCdcXHQnKSkuam9pbignXFxuJyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEZpbmRzIGEgdGFibGUsIGNvbXBsZXRlcyBpdCwgdGhlbiBkb2VzIGFuIG9wZXJhdGlvbiB3aXRoIGl0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGZ1bmMgLSBBIGZ1bmN0aW9uIHRoYXQgZG9lcyBzb21lIG9wZXJhdGlvbiBvbiB0YWJsZSBpbmZvcm1hdGlvbiBvYnRhaW5lZCBieVxuICAgICAqIHtAbGluayBUYWJsZUVkaXRvciNfZmluZFRhYmxlfS5cbiAgICAgKi9cbiAgICB3aXRoQ29tcGxldGVkVGFibGUob3B0aW9ucywgZnVuYykge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2l0aFRhYmxlKG9wdGlvbnMsICh0YWJsZUluZm8pID0+IHtcbiAgICAgICAgICAgIGxldCBuZXdGb2N1cyA9IHRhYmxlSW5mby5mb2N1cztcbiAgICAgICAgICAgIC8vIGNvbXBsZXRlXG4gICAgICAgICAgICBjb25zdCBjb21wbGV0ZWQgPSBmb3JtYXR0ZXJfMS5jb21wbGV0ZVRhYmxlKHRhYmxlSW5mby50YWJsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICBpZiAoY29tcGxldGVkLmRlbGltaXRlckluc2VydGVkICYmIG5ld0ZvY3VzLnJvdyA+IDApIHtcbiAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldFJvdyhuZXdGb2N1cy5yb3cgKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGZvcm1hdFxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0dGVyXzEuZm9ybWF0VGFibGUoY29tcGxldGVkLnRhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0T2Zmc2V0KGV4cG9ydHMuX2NvbXB1dGVOZXdPZmZzZXQobmV3Rm9jdXMsIGNvbXBsZXRlZC50YWJsZSwgZm9ybWF0dGVkLCBmYWxzZSkpO1xuICAgICAgICAgICAgdGFibGVJbmZvLnRhYmxlID0gZm9ybWF0dGVkLnRhYmxlO1xuICAgICAgICAgICAgdGFibGVJbmZvLmZvY3VzID0gbmV3Rm9jdXM7XG4gICAgICAgICAgICByZXR1cm4gZnVuYyh0YWJsZUluZm8pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRm9ybWF0cyB0aGUgdGFibGUgYW5kIGFwcGxpZXMgYW55IGNoYW5nZXMgYmFzZWQgb24gdGhlIGRpZmZlcmVuY2UgYmV0d2VlblxuICAgICAqIG9yaWdpbmFsTGluZXMgYW5kIHRoZSBuZXdUYWJsZS4gU2hvdWxkIGdlbmVyYWxseSBiZSB0aGUgbGFzdCBmdW5jdGlvbiBjYWxsXG4gICAgICogaW4gYSBUYWJsZUVkaXRvciBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmb3JtYXRBbmRBcHBseShvcHRpb25zLCByYW5nZSwgb3JpZ2luYWxMaW5lcywgZm9ybXVsYUxpbmVzLCBuZXdUYWJsZSwgbmV3Rm9jdXMsIG1vdmVkID0gZmFsc2UpIHtcbiAgICAgICAgLy8gZm9ybWF0XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdHRlcl8xLmZvcm1hdFRhYmxlKG5ld1RhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRPZmZzZXQoZXhwb3J0cy5fY29tcHV0ZU5ld09mZnNldChuZXdGb2N1cywgbmV3VGFibGUsIGZvcm1hdHRlZCwgbW92ZWQpKTtcbiAgICAgICAgLy8gYXBwbHlcbiAgICAgICAgdGhpcy5fdGV4dEVkaXRvci50cmFuc2FjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVMaW5lcyhyYW5nZS5zdGFydC5yb3csIHJhbmdlLmVuZC5yb3cgKyAxLCBmb3JtYXR0ZWQudGFibGUudG9MaW5lcygpLCBvcmlnaW5hbExpbmVzKTtcbiAgICAgICAgICAgIGlmIChtb3ZlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEZvY3VzKHJhbmdlLnN0YXJ0LnJvdywgZm9ybWF0dGVkLnRhYmxlLCBuZXdGb2N1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb3ZlVG9Gb2N1cyhyYW5nZS5zdGFydC5yb3csIGZvcm1hdHRlZC50YWJsZSwgbmV3Rm9jdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZXNldFNtYXJ0Q3Vyc29yKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByYW5nZSxcbiAgICAgICAgICAgIGxpbmVzOiBvcmlnaW5hbExpbmVzLFxuICAgICAgICAgICAgZm9ybXVsYUxpbmVzLFxuICAgICAgICAgICAgdGFibGU6IGZvcm1hdHRlZC50YWJsZSxcbiAgICAgICAgICAgIGZvY3VzOiBuZXdGb2N1cyxcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnRzLlRhYmxlRWRpdG9yID0gVGFibGVFZGl0b3I7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU29ydE9yZGVyID0gZXhwb3J0cy5UYWJsZUVkaXRvciA9IGV4cG9ydHMub3B0aW9uc1dpdGhEZWZhdWx0cyA9IGV4cG9ydHMuZGVmYXVsdE9wdGlvbnMgPSBleHBvcnRzLklUZXh0RWRpdG9yID0gZXhwb3J0cy5zaG9ydGVzdEVkaXRTY3JpcHQgPSBleHBvcnRzLmFwcGx5RWRpdFNjcmlwdCA9IGV4cG9ydHMuRGVsZXRlID0gZXhwb3J0cy5JbnNlcnQgPSBleHBvcnRzLm1vdmVDb2x1bW4gPSBleHBvcnRzLmRlbGV0ZUNvbHVtbiA9IGV4cG9ydHMuaW5zZXJ0Q29sdW1uID0gZXhwb3J0cy5tb3ZlUm93ID0gZXhwb3J0cy5kZWxldGVSb3cgPSBleHBvcnRzLmluc2VydFJvdyA9IGV4cG9ydHMuYWx0ZXJBbGlnbm1lbnQgPSBleHBvcnRzLmZvcm1hdFRhYmxlID0gZXhwb3J0cy5jb21wbGV0ZVRhYmxlID0gZXhwb3J0cy5Gb3JtYXRUeXBlID0gZXhwb3J0cy5yZWFkVGFibGUgPSBleHBvcnRzLlRhYmxlID0gZXhwb3J0cy5UYWJsZVJvdyA9IGV4cG9ydHMuVGFibGVDZWxsID0gZXhwb3J0cy5IZWFkZXJBbGlnbm1lbnQgPSBleHBvcnRzLkRlZmF1bHRBbGlnbm1lbnQgPSBleHBvcnRzLkFsaWdubWVudCA9IGV4cG9ydHMuRm9jdXMgPSBleHBvcnRzLlJhbmdlID0gZXhwb3J0cy5Qb2ludCA9IHZvaWQgMDtcbnZhciBwb2ludF8xID0gcmVxdWlyZShcIi4vcG9pbnRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJQb2ludFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gcG9pbnRfMS5Qb2ludDsgfSB9KTtcbnZhciByYW5nZV8xID0gcmVxdWlyZShcIi4vcmFuZ2VcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSYW5nZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gcmFuZ2VfMS5SYW5nZTsgfSB9KTtcbnZhciBmb2N1c18xID0gcmVxdWlyZShcIi4vZm9jdXNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJGb2N1c1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZm9jdXNfMS5Gb2N1czsgfSB9KTtcbnZhciBhbGlnbm1lbnRfMSA9IHJlcXVpcmUoXCIuL2FsaWdubWVudFwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkFsaWdubWVudFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gYWxpZ25tZW50XzEuQWxpZ25tZW50OyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRGVmYXVsdEFsaWdubWVudFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gYWxpZ25tZW50XzEuRGVmYXVsdEFsaWdubWVudDsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkhlYWRlckFsaWdubWVudFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gYWxpZ25tZW50XzEuSGVhZGVyQWxpZ25tZW50OyB9IH0pO1xudmFyIHRhYmxlX2NlbGxfMSA9IHJlcXVpcmUoXCIuL3RhYmxlLWNlbGxcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUYWJsZUNlbGxcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRhYmxlX2NlbGxfMS5UYWJsZUNlbGw7IH0gfSk7XG52YXIgdGFibGVfcm93XzEgPSByZXF1aXJlKFwiLi90YWJsZS1yb3dcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUYWJsZVJvd1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGFibGVfcm93XzEuVGFibGVSb3c7IH0gfSk7XG52YXIgdGFibGVfMSA9IHJlcXVpcmUoXCIuL3RhYmxlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVGFibGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRhYmxlXzEuVGFibGU7IH0gfSk7XG52YXIgcGFyc2VyXzEgPSByZXF1aXJlKFwiLi9wYXJzZXJcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJyZWFkVGFibGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHBhcnNlcl8xLnJlYWRUYWJsZTsgfSB9KTtcbnZhciBmb3JtYXR0ZXJfanNfMSA9IHJlcXVpcmUoXCIuL2Zvcm1hdHRlci5qc1wiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkZvcm1hdFR5cGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZvcm1hdHRlcl9qc18xLkZvcm1hdFR5cGU7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJjb21wbGV0ZVRhYmxlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBmb3JtYXR0ZXJfanNfMS5jb21wbGV0ZVRhYmxlOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZm9ybWF0VGFibGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZvcm1hdHRlcl9qc18xLmZvcm1hdFRhYmxlOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiYWx0ZXJBbGlnbm1lbnRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZvcm1hdHRlcl9qc18xLmFsdGVyQWxpZ25tZW50OyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaW5zZXJ0Um93XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBmb3JtYXR0ZXJfanNfMS5pbnNlcnRSb3c7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWxldGVSb3dcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZvcm1hdHRlcl9qc18xLmRlbGV0ZVJvdzsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIm1vdmVSb3dcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZvcm1hdHRlcl9qc18xLm1vdmVSb3c7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpbnNlcnRDb2x1bW5cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZvcm1hdHRlcl9qc18xLmluc2VydENvbHVtbjsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlbGV0ZUNvbHVtblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZm9ybWF0dGVyX2pzXzEuZGVsZXRlQ29sdW1uOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwibW92ZUNvbHVtblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZm9ybWF0dGVyX2pzXzEubW92ZUNvbHVtbjsgfSB9KTtcbnZhciBlZGl0X3NjcmlwdF8xID0gcmVxdWlyZShcIi4vZWRpdC1zY3JpcHRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJJbnNlcnRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGVkaXRfc2NyaXB0XzEuSW5zZXJ0OyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRGVsZXRlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBlZGl0X3NjcmlwdF8xLkRlbGV0ZTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImFwcGx5RWRpdFNjcmlwdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZWRpdF9zY3JpcHRfMS5hcHBseUVkaXRTY3JpcHQ7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJzaG9ydGVzdEVkaXRTY3JpcHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGVkaXRfc2NyaXB0XzEuc2hvcnRlc3RFZGl0U2NyaXB0OyB9IH0pO1xudmFyIHRleHRfZWRpdG9yXzEgPSByZXF1aXJlKFwiLi90ZXh0LWVkaXRvclwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIklUZXh0RWRpdG9yXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0ZXh0X2VkaXRvcl8xLklUZXh0RWRpdG9yOyB9IH0pO1xudmFyIG9wdGlvbnNfMSA9IHJlcXVpcmUoXCIuL29wdGlvbnNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWZhdWx0T3B0aW9uc1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gb3B0aW9uc18xLmRlZmF1bHRPcHRpb25zOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwib3B0aW9uc1dpdGhEZWZhdWx0c1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gb3B0aW9uc18xLm9wdGlvbnNXaXRoRGVmYXVsdHM7IH0gfSk7XG52YXIgdGFibGVfZWRpdG9yXzEgPSByZXF1aXJlKFwiLi90YWJsZS1lZGl0b3JcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUYWJsZUVkaXRvclwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGFibGVfZWRpdG9yXzEuVGFibGVFZGl0b3I7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJTb3J0T3JkZXJcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRhYmxlX2VkaXRvcl8xLlNvcnRPcmRlcjsgfSB9KTtcbiIsImltcG9ydCB7XG4gIEZvcm1hdFR5cGUsXG4gIE9wdGlvbnMsXG4gIG9wdGlvbnNXaXRoRGVmYXVsdHMsXG59IGZyb20gJ0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcyc7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0U2V0dGluZ3M6IFBhcnRpYWw8SVNldHRpbmdzPiA9IHtcbiAgZm9ybWF0VHlwZTogRm9ybWF0VHlwZS5OT1JNQUwsXG4gIHNob3dSaWJib25JY29uOiB0cnVlLFxuICBiaW5kRW50ZXI6IHRydWUsXG4gIGJpbmRUYWI6IHRydWUsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElTZXR0aW5ncyB7XG4gIGZvcm1hdFR5cGU6IEZvcm1hdFR5cGU7XG4gIHNob3dSaWJib25JY29uOiBib29sZWFuO1xuICBiaW5kRW50ZXI6IGJvb2xlYW47XG4gIGJpbmRUYWI6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUVkaXRvclBsdWdpblNldHRpbmdzIGltcGxlbWVudHMgSVNldHRpbmdzIHtcbiAgcHVibGljIGZvcm1hdFR5cGU6IEZvcm1hdFR5cGU7XG4gIHB1YmxpYyBzaG93UmliYm9uSWNvbjogYm9vbGVhbjtcblxuICBwdWJsaWMgYmluZEVudGVyOiBib29sZWFuO1xuICBwdWJsaWMgYmluZFRhYjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihsb2FkZWREYXRhOiBQYXJ0aWFsPElTZXR0aW5ncz4pIHtcbiAgICBjb25zdCBhbGxGaWVsZHMgPSB7IC4uLmRlZmF1bHRTZXR0aW5ncywgLi4ubG9hZGVkRGF0YSB9O1xuICAgIHRoaXMuZm9ybWF0VHlwZSA9IGFsbEZpZWxkcy5mb3JtYXRUeXBlO1xuICAgIHRoaXMuc2hvd1JpYmJvbkljb24gPSBhbGxGaWVsZHMuc2hvd1JpYmJvbkljb247XG4gICAgdGhpcy5iaW5kRW50ZXIgPSBhbGxGaWVsZHMuYmluZEVudGVyO1xuICAgIHRoaXMuYmluZFRhYiA9IGFsbEZpZWxkcy5iaW5kVGFiO1xuICB9XG5cbiAgcHVibGljIGFzT3B0aW9ucygpOiBPcHRpb25zIHtcbiAgICByZXR1cm4gb3B0aW9uc1dpdGhEZWZhdWx0cyh7IGZvcm1hdFR5cGU6IHRoaXMuZm9ybWF0VHlwZSB9KTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUG9pbnQsIFJhbmdlIH0gZnJvbSAnQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzJztcbmltcG9ydCB7IEFwcCwgRWRpdG9yLCBURmlsZSB9IGZyb20gJ29ic2lkaWFuJztcblxuLyoqXG4gKiBPYnNpZGlhblRleHRFZGl0b3IgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIElUZXh0RWRpdG9yIGludGVyZmFjZSBmcm9tXG4gKiB0aGUgbXRlLWtlcm5lbCBsaWJyYXJ5LiBJdCB0ZWFjaGVzIHRoZSB0YWJsZSBlZGl0b3IgbGlicmFyeSBob3cgdG8gaW50ZXJmYWNlXG4gKiB3aXRoIE9ic2lkaWFuLlxuICovXG5leHBvcnQgY2xhc3MgT2JzaWRpYW5UZXh0RWRpdG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHA6IEFwcDtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWxlOiBURmlsZTtcbiAgcHJpdmF0ZSByZWFkb25seSBlZGl0b3I6IEVkaXRvcjtcblxuICBjb25zdHJ1Y3RvcihhcHA6IEFwcCwgZmlsZTogVEZpbGUsIGVkaXRvcjogRWRpdG9yKSB7XG4gICAgdGhpcy5hcHAgPSBhcHA7XG4gICAgdGhpcy5maWxlID0gZmlsZTtcbiAgICB0aGlzLmVkaXRvciA9IGVkaXRvcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXJzb3JQb3NpdGlvbiA9ICgpOiBQb2ludCA9PiB7XG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmVkaXRvci5nZXRDdXJzb3IoKTtcbiAgICBjb25zb2xlLmRlYnVnKFxuICAgICAgYGdldEN1cnNvclBvc2l0aW9uIHdhcyBjYWxsZWQ6IGxpbmUgJHtwb3NpdGlvbi5saW5lfSwgY2ggJHtwb3NpdGlvbi5jaH1gLFxuICAgICk7XG4gICAgcmV0dXJuIG5ldyBQb2ludChwb3NpdGlvbi5saW5lLCBwb3NpdGlvbi5jaCk7XG4gIH07XG5cbiAgcHVibGljIHNldEN1cnNvclBvc2l0aW9uID0gKHBvczogUG9pbnQpOiB2b2lkID0+IHtcbiAgICBjb25zb2xlLmRlYnVnKFxuICAgICAgYHNldEN1cnNvclBvc2l0aW9uIHdhcyBjYWxsZWQ6IGxpbmUgJHtwb3Mucm93fSwgY2ggJHtwb3MuY29sdW1ufWAsXG4gICAgKTtcbiAgICB0aGlzLmVkaXRvci5zZXRDdXJzb3IoeyBsaW5lOiBwb3Mucm93LCBjaDogcG9zLmNvbHVtbiB9KTtcbiAgfTtcblxuICBwdWJsaWMgc2V0U2VsZWN0aW9uUmFuZ2UgPSAocmFuZ2U6IFJhbmdlKTogdm9pZCA9PiB7XG4gICAgY29uc29sZS5kZWJ1Zygnc2V0U2VsZWN0aW9uUmFuZ2Ugd2FzIGNhbGxlZCcpO1xuICAgIHRoaXMuZWRpdG9yLnNldFNlbGVjdGlvbihcbiAgICAgIHsgbGluZTogcmFuZ2Uuc3RhcnQucm93LCBjaDogcmFuZ2Uuc3RhcnQuY29sdW1uIH0sXG4gICAgICB7IGxpbmU6IHJhbmdlLmVuZC5yb3csIGNoOiByYW5nZS5lbmQuY29sdW1uIH0sXG4gICAgKTtcbiAgfTtcblxuICBwdWJsaWMgZ2V0TGFzdFJvdyA9ICgpOiBudW1iZXIgPT4ge1xuICAgIGNvbnNvbGUuZGVidWcoJ2dldExhc3RSb3cgd2FzIGNhbGxlZCcpO1xuICAgIHJldHVybiB0aGlzLmVkaXRvci5sYXN0TGluZSgpO1xuICB9O1xuXG4gIHB1YmxpYyBhY2NlcHRzVGFibGVFZGl0ID0gKHJvdzogbnVtYmVyKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc29sZS5kZWJ1ZyhgYWNjZXB0c1RhYmxlRWRpdCB3YXMgY2FsbGVkIG9uIHJvdyAke3Jvd31gKTtcblxuICAgIGNvbnN0IGNhY2hlID0gdGhpcy5hcHAubWV0YWRhdGFDYWNoZS5nZXRGaWxlQ2FjaGUodGhpcy5maWxlKTtcbiAgICBpZiAoIWNhY2hlLnNlY3Rpb25zKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCB0YWJsZSA9IGNhY2hlLnNlY3Rpb25zLmZpbmQoXG4gICAgICAoc2VjdGlvbik6IGJvb2xlYW4gPT5cbiAgICAgICAgc2VjdGlvbi5wb3NpdGlvbi5zdGFydC5saW5lIDw9IHJvdyAmJlxuICAgICAgICBzZWN0aW9uLnBvc2l0aW9uLmVuZC5saW5lID49IHJvdyAmJlxuICAgICAgICBzZWN0aW9uLnR5cGUgIT09ICdjb2RlJyAmJlxuICAgICAgICBzZWN0aW9uLnR5cGUgIT09ICdtYXRoJyxcbiAgICApO1xuICAgIGlmICh0YWJsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKCdhY2NlcHRzVGFibGVFZGl0IHJldHVybmluZyBmYWxzZSwgdGFibGUgbm90IGZvdW5kJyk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGV4dCBgLXR4LWAgaXMgbm90IG9uIHRoZSBsaW5lIGltbWVkaWF0ZWx5IHByZWNlZWRpbmcgdGhlXG4gICAgLy8gdGFibGUgZm91bmQgaW4gdGhlIHByZXZpb3VzIGNoZWNrLlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90Z3Jvc2luZ2VyL2FkdmFuY2VkLXRhYmxlcy1vYnNpZGlhbi9pc3N1ZXMvMTMzXG4gICAgY29uc3QgcHJlY2VlZGluZ0xpbmVJbmRleCA9IHRhYmxlLnBvc2l0aW9uLnN0YXJ0LmxpbmU7XG4gICAgaWYgKHByZWNlZWRpbmdMaW5lSW5kZXggPj0gMCkge1xuICAgICAgY29uc3QgcHJlY2VlZGluZ0xpbmUgPSB0aGlzLmdldExpbmUocHJlY2VlZGluZ0xpbmVJbmRleCk7XG4gICAgICBpZiAocHJlY2VlZGluZ0xpbmUgPT09ICctdHgtJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgcHVibGljIGdldExpbmUgPSAocm93OiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICAgIGNvbnNvbGUuZGVidWcoYGdldExpbmUgd2FzIGNhbGxlZCBvbiBsaW5lICR7cm93fWApO1xuICAgIHJldHVybiB0aGlzLmVkaXRvci5nZXRMaW5lKHJvdyk7XG4gIH07XG5cbiAgcHVibGljIGluc2VydExpbmUgPSAocm93OiBudW1iZXIsIGxpbmU6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgIGNvbnNvbGUuZGVidWcoYGluc2VydExpbmUgd2FzIGNhbGxlZCBhdCBsaW5lICR7cm93fWApO1xuICAgIGNvbnNvbGUuZGVidWcoYE5ldyBsaW5lOiAke2xpbmV9YCk7XG5cbiAgICBpZiAocm93ID4gdGhpcy5nZXRMYXN0Um93KCkpIHtcbiAgICAgIHRoaXMuZWRpdG9yLnJlcGxhY2VSYW5nZSgnXFxuJyArIGxpbmUsIHsgbGluZTogcm93LCBjaDogMCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lZGl0b3IucmVwbGFjZVJhbmdlKGxpbmUgKyAnXFxuJywgeyBsaW5lOiByb3csIGNoOiAwIH0pO1xuICAgIH1cbiAgfTtcblxuICBwdWJsaWMgZGVsZXRlTGluZSA9IChyb3c6IG51bWJlcik6IHZvaWQgPT4ge1xuICAgIGNvbnNvbGUuZGVidWcoYGRlbGV0ZUxpbmUgd2FzIGNhbGxlZCBvbiBsaW5lICR7cm93fWApO1xuXG4gICAgLy8gSWYgb24gdGhlIGxhc3QgbGluZSBvZiB0aGUgZmlsZSwgd2UgY2Fubm90IHJlcGxhY2UgdG8gdGhlIG5leHQgcm93LlxuICAgIC8vIEluc3RlYWQsIHJlcGxhY2UgYWxsIHRoZSBjb250ZW50cyBvZiB0aGlzIGxpbmUuXG4gICAgaWYgKHJvdyA9PT0gdGhpcy5nZXRMYXN0Um93KCkpIHtcbiAgICAgIGNvbnN0IHJvd0NvbnRlbnRzID0gdGhpcy5nZXRMaW5lKHJvdyk7XG4gICAgICB0aGlzLmVkaXRvci5yZXBsYWNlUmFuZ2UoXG4gICAgICAgICcnLFxuICAgICAgICB7IGxpbmU6IHJvdywgY2g6IDAgfSxcbiAgICAgICAgeyBsaW5lOiByb3csIGNoOiByb3dDb250ZW50cy5sZW5ndGggfSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWRpdG9yLnJlcGxhY2VSYW5nZShcbiAgICAgICAgJycsXG4gICAgICAgIHsgbGluZTogcm93LCBjaDogMCB9LFxuICAgICAgICB7IGxpbmU6IHJvdyArIDEsIGNoOiAwIH0sXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICBwdWJsaWMgcmVwbGFjZUxpbmVzID0gKFxuICAgIHN0YXJ0Um93OiBudW1iZXIsXG4gICAgZW5kUm93OiBudW1iZXIsXG4gICAgbGluZXM6IHN0cmluZ1tdLFxuICApOiB2b2lkID0+IHtcbiAgICAvLyBUYWtlIG9uZSBvZmYgdGhlIGVuZFJvdyBhbmQgaW5zdGVhZCBnbyB0byB0aGUgZW5kIG9mIHRoYXQgbGluZVxuICAgIGNvbnN0IHJlYWxFbmRSb3cgPSBlbmRSb3cgLSAxO1xuICAgIGNvbnN0IGVuZFJvd0NvbnRlbnRzID0gdGhpcy5lZGl0b3IuZ2V0TGluZShyZWFsRW5kUm93KTtcbiAgICBjb25zdCBlbmRSb3dGaW5hbEluZGV4ID0gZW5kUm93Q29udGVudHMubGVuZ3RoO1xuXG4gICAgdGhpcy5lZGl0b3IucmVwbGFjZVJhbmdlKFxuICAgICAgbGluZXMuam9pbignXFxuJyksXG4gICAgICB7IGxpbmU6IHN0YXJ0Um93LCBjaDogMCB9LFxuICAgICAgeyBsaW5lOiByZWFsRW5kUm93LCBjaDogZW5kUm93RmluYWxJbmRleCB9LFxuICAgICk7XG4gIH07XG5cbiAgcHVibGljIHRyYW5zYWN0ID0gKGZ1bmM6IEZ1bmN0aW9uKTogdm9pZCA9PiB7XG4gICAgLypcbiAgICB0aGlzLmVkaXRvci5vcGVyYXRpb24oKCkgPT4ge1xuICAgICAgZnVuYygpO1xuICAgIH0pO1xuICAgICovXG4gICAgZnVuYygpO1xuICB9O1xufVxuIiwiaW1wb3J0IHsgT2JzaWRpYW5UZXh0RWRpdG9yIH0gZnJvbSAnLi9vYnNpZGlhbi10ZXh0LWVkaXRvcic7XG5pbXBvcnQgeyBUYWJsZUVkaXRvclBsdWdpblNldHRpbmdzIH0gZnJvbSAnLi9zZXR0aW5ncyc7XG5pbXBvcnQge1xuICBBbGlnbm1lbnQsXG4gIFNvcnRPcmRlcixcbiAgVGFibGVFZGl0b3IgYXMgTVRFRWRpdG9yLFxufSBmcm9tICdAdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMnO1xuaW1wb3J0IHsgQXBwLCBFZGl0b3IsIE1vZGFsLCBOb3RpY2UsIFRGaWxlIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5leHBvcnQgY2xhc3MgVGFibGVFZGl0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcDogQXBwO1xuICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzOiBUYWJsZUVkaXRvclBsdWdpblNldHRpbmdzO1xuICBwcml2YXRlIHJlYWRvbmx5IG10ZTogTVRFRWRpdG9yO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFwcDogQXBwLFxuICAgIGZpbGU6IFRGaWxlLFxuICAgIGVkaXRvcjogRWRpdG9yLFxuICAgIHNldHRpbmdzOiBUYWJsZUVkaXRvclBsdWdpblNldHRpbmdzLFxuICApIHtcbiAgICB0aGlzLmFwcCA9IGFwcDtcbiAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG5cbiAgICBjb25zdCBvdGUgPSBuZXcgT2JzaWRpYW5UZXh0RWRpdG9yKGFwcCwgZmlsZSwgZWRpdG9yKTtcbiAgICB0aGlzLm10ZSA9IG5ldyBNVEVFZGl0b3Iob3RlKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBjdXJzb3JJc0luVGFibGVGb3JtdWxhID0gKCk6IGJvb2xlYW4gPT5cbiAgICB0aGlzLm10ZS5jdXJzb3JJc0luVGFibGVGb3JtdWxhKHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuXG4gIHB1YmxpYyByZWFkb25seSBjdXJzb3JJc0luVGFibGUgPSAoKTogYm9vbGVhbiA9PlxuICAgIHRoaXMubXRlLmN1cnNvcklzSW5UYWJsZSh0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbmV4dENlbGwgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5tdGUubmV4dENlbGwodGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IHByZXZpb3VzQ2VsbCA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5wcmV2aW91c0NlbGwodGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IG5leHRSb3cgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5tdGUubmV4dFJvdyh0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZm9ybWF0VGFibGUgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5tdGUuZm9ybWF0KHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtYXRBbGxUYWJsZXMgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5tdGUuZm9ybWF0QWxsKHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSBpbnNlcnRDb2x1bW4gPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5tdGUuaW5zZXJ0Q29sdW1uKHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSBpbnNlcnRSb3cgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5tdGUuaW5zZXJ0Um93KHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSBsZWZ0QWxpZ25Db2x1bW4gPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5tdGUuYWxpZ25Db2x1bW4oQWxpZ25tZW50LkxFRlQsIHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSBjZW50ZXJBbGlnbkNvbHVtbiA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5hbGlnbkNvbHVtbihBbGlnbm1lbnQuQ0VOVEVSLCB0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcmlnaHRBbGlnbkNvbHVtbiA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5hbGlnbkNvbHVtbihBbGlnbm1lbnQuUklHSFQsIHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSBtb3ZlQ29sdW1uTGVmdCA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5tb3ZlQ29sdW1uKC0xLCB0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbW92ZUNvbHVtblJpZ2h0ID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMubXRlLm1vdmVDb2x1bW4oMSwgdGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IG1vdmVSb3dVcCA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5tb3ZlUm93KC0xLCB0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbW92ZVJvd0Rvd24gPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5tdGUubW92ZVJvdygxLCB0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGVsZXRlQ29sdW1uID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMubXRlLmRlbGV0ZUNvbHVtbih0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGVsZXRlUm93ID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMubXRlLmRlbGV0ZVJvdyh0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc29ydFJvd3NBc2MgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5tdGUuc29ydFJvd3MoU29ydE9yZGVyLkFzY2VuZGluZywgdGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IHNvcnRSb3dzRGVzYyA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5zb3J0Um93cyhTb3J0T3JkZXIuRGVzY2VuZGluZywgdGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IGVzY2FwZSA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5lc2NhcGUodGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IGV2YWx1YXRlRm9ybXVsYXMgPSAoKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZXJyID0gdGhpcy5tdGUuZXZhbHVhdGVGb3JtdWxhcyh0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgICBpZiAoZXJyKSB7XG4gICAgICBuZXcgTm90aWNlKGVyci5tZXNzYWdlKTtcbiAgICB9XG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IGV4cG9ydENTVk1vZGFsID0gKCk6IHZvaWQgPT4ge1xuICAgIG5ldyBDU1ZNb2RhbCh0aGlzLmFwcCwgdGhpcy5tdGUsIHRoaXMuc2V0dGluZ3MpLm9wZW4oKTtcbiAgfTtcbn1cblxuY2xhc3MgQ1NWTW9kYWwgZXh0ZW5kcyBNb2RhbCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbXRlOiBNVEVFZGl0b3I7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3M6IFRhYmxlRWRpdG9yUGx1Z2luU2V0dGluZ3M7XG5cbiAgY29uc3RydWN0b3IoYXBwOiBBcHAsIG10ZTogTVRFRWRpdG9yLCBzZXR0aW5nczogVGFibGVFZGl0b3JQbHVnaW5TZXR0aW5ncykge1xuICAgIHN1cGVyKGFwcCk7XG4gICAgdGhpcy5tdGUgPSBtdGU7XG4gICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICB9XG5cbiAgcHVibGljIG9uT3BlbigpOiB2b2lkIHtcbiAgICBjb25zdCB7IGNvbnRlbnRFbCB9ID0gdGhpcztcbiAgICBjb25zdCBkaXYgPSBjb250ZW50RWwuY3JlYXRlRGl2KHtcbiAgICAgIGNsczogJ2FkdmFuY2VkLXRhYmxlcy1jc3YtZXhwb3J0JyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHRhID0gZGl2LmNyZWF0ZUVsKCd0ZXh0YXJlYScsIHtcbiAgICAgIGF0dHI6IHtcbiAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRhLnZhbHVlID0gdGhpcy5tdGUuZXhwb3J0Q1NWKHRydWUsIHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICAgIHRhLm9uQ2xpY2tFdmVudCgoKSA9PiB0YS5zZWxlY3QoKSk7XG5cbiAgICBjb25zdCBsYiA9IGRpdi5jcmVhdGVFbCgnbGFiZWwnKTtcbiAgICBjb25zdCBjYiA9IGxiLmNyZWF0ZUVsKCdpbnB1dCcsIHtcbiAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICBhdHRyOiB7XG4gICAgICAgIGNoZWNrZWQ6IHRydWUsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGxiLmNyZWF0ZVNwYW4oKS5zZXRUZXh0KCdJbmNsdWRlIHRhYmxlIGhlYWRlcnMnKTtcbiAgICBjYi5vbkNsaWNrRXZlbnQoKCkgPT4ge1xuICAgICAgdGEudmFsdWUgPSB0aGlzLm10ZS5leHBvcnRDU1YoY2IuY2hlY2tlZCwgdGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZSgpOiB2b2lkIHtcbiAgICBjb25zdCB7IGNvbnRlbnRFbCB9ID0gdGhpcztcbiAgICBjb250ZW50RWwuZW1wdHkoKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgaWNvbnMgfSBmcm9tICcuL2ljb25zJztcbmltcG9ydCB7IFRhYmxlRWRpdG9yUGx1Z2luU2V0dGluZ3MgfSBmcm9tICcuL3NldHRpbmdzJztcbmltcG9ydCB7IFRhYmxlRWRpdG9yIH0gZnJvbSAnLi90YWJsZS1lZGl0b3InO1xuaW1wb3J0IHtcbiAgRWRpdG9yLFxuICBJdGVtVmlldyxcbiAgTWFya2Rvd25WaWV3LFxuICBOb3RpY2UsXG4gIFdvcmtzcGFjZUxlYWYsXG59IGZyb20gJ29ic2lkaWFuJztcblxuZXhwb3J0IGNvbnN0IFRhYmxlQ29udHJvbHNWaWV3VHlwZSA9ICdhZHZhbmNlZC10YWJsZXMtdG9vbGJhcic7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUNvbnRyb2xzVmlldyBleHRlbmRzIEl0ZW1WaWV3IHtcbiAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nczogVGFibGVFZGl0b3JQbHVnaW5TZXR0aW5ncztcblxuICBjb25zdHJ1Y3RvcihsZWFmOiBXb3Jrc3BhY2VMZWFmLCBzZXR0aW5nczogVGFibGVFZGl0b3JQbHVnaW5TZXR0aW5ncykge1xuICAgIHN1cGVyKGxlYWYpO1xuICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgfVxuXG4gIHB1YmxpYyBnZXRWaWV3VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBUYWJsZUNvbnRyb2xzVmlld1R5cGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGlzcGxheVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ0FkdmFuY2VkIFRhYmxlcyc7XG4gIH1cblxuICBwdWJsaWMgZ2V0SWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAnc3ByZWFkc2hlZXQnO1xuICB9XG5cbiAgcHVibGljIGxvYWQoKTogdm9pZCB7XG4gICAgc3VwZXIubG9hZCgpO1xuICAgIHRoaXMuZHJhdygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkcmF3ID0gKCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyRWwuY2hpbGRyZW5bMV07XG5cbiAgICBjb25zdCByb290RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICByb290RWwuYWRkQ2xhc3MoXCJhZHZhbmNlZC10YWJsZXMtYnV0dG9uc1wiKTtcblxuICAgIHJvb3RFbC5jcmVhdGVEaXYoKS5cbiAgICAgIGNyZWF0ZVNwYW4oeyBjbHM6ICd0aXRsZScgfSkuXG4gICAgICBzZXRUZXh0KFwiQWR2YW5jZWQgVGFibGVzXCIpXG5cbiAgICBjb25zdCBuYXZIZWFkZXIgPSByb290RWwuY3JlYXRlRGl2KHsgY2xzOiAnbmF2LWhlYWRlcicgfSk7XG4gICAgY29uc3Qgcm93T25lQnRucyA9IG5hdkhlYWRlci5jcmVhdGVEaXYoeyBjbHM6ICduYXYtYnV0dG9ucy1jb250YWluZXInIH0pO1xuICAgIHJvd09uZUJ0bnMuY3JlYXRlU3Bhbih7IGNsczogJ2FkdmFuY2VkLXRhYmxlcy1yb3ctbGFiZWwnIH0pLnNldFRleHQoXCJBbGlnbjpcIik7XG4gICAgdGhpcy5kcmF3QnRuKHJvd09uZUJ0bnMsICdhbGlnbkxlZnQnLCAnbGVmdCBhbGlnbiBjb2x1bW4nLCAodGUpID0+XG4gICAgICB0ZS5sZWZ0QWxpZ25Db2x1bW4oKSxcbiAgICApO1xuICAgIHRoaXMuZHJhd0J0bihyb3dPbmVCdG5zLCAnYWxpZ25DZW50ZXInLCAnY2VudGVyIGFsaWduIGNvbHVtbicsICh0ZSkgPT5cbiAgICAgIHRlLmNlbnRlckFsaWduQ29sdW1uKCksXG4gICAgKTtcbiAgICB0aGlzLmRyYXdCdG4ocm93T25lQnRucywgJ2FsaWduUmlnaHQnLCAncmlnaHQgYWxpZ24gY29sdW1uJywgKHRlKSA9PlxuICAgICAgdGUucmlnaHRBbGlnbkNvbHVtbigpLFxuICAgICk7XG5cbiAgICBjb25zdCByb3dUd29CdG5zID0gbmF2SGVhZGVyLmNyZWF0ZURpdih7IGNsczogJ25hdi1idXR0b25zLWNvbnRhaW5lcicgfSk7XG4gICAgcm93VHdvQnRucy5jcmVhdGVTcGFuKHsgY2xzOiAnYWR2YW5jZWQtdGFibGVzLXJvdy1sYWJlbCcgfSkuc2V0VGV4dChcIk1vdmU6XCIpO1xuICAgIHRoaXMuZHJhd0J0bihyb3dUd29CdG5zLCAnbW92ZVJvd0Rvd24nLCAnbW92ZSByb3cgZG93bicsICh0ZSkgPT5cbiAgICAgIHRlLm1vdmVSb3dEb3duKCksXG4gICAgKTtcbiAgICB0aGlzLmRyYXdCdG4ocm93VHdvQnRucywgJ21vdmVSb3dVcCcsICdtb3ZlIHJvdyB1cCcsICh0ZSkgPT5cbiAgICAgIHRlLm1vdmVSb3dVcCgpLFxuICAgICk7XG4gICAgdGhpcy5kcmF3QnRuKHJvd1R3b0J0bnMsICdtb3ZlQ29sdW1uUmlnaHQnLCAnbW92ZSBjb2x1bW4gcmlnaHQnLCAodGUpID0+XG4gICAgICB0ZS5tb3ZlQ29sdW1uUmlnaHQoKSxcbiAgICApO1xuICAgIHRoaXMuZHJhd0J0bihyb3dUd29CdG5zLCAnbW92ZUNvbHVtbkxlZnQnLCAnbW92ZSBjb2x1bW4gbGVmdCcsICh0ZSkgPT5cbiAgICAgIHRlLm1vdmVDb2x1bW5MZWZ0KCksXG4gICAgKTtcblxuICAgIGNvbnN0IHJvd1RocmVlQnRucyA9IG5hdkhlYWRlci5jcmVhdGVEaXYoeyBjbHM6ICduYXYtYnV0dG9ucy1jb250YWluZXInIH0pO1xuICAgIHJvd1RocmVlQnRucy5jcmVhdGVTcGFuKHsgY2xzOiAnYWR2YW5jZWQtdGFibGVzLXJvdy1sYWJlbCcgfSkuc2V0VGV4dChcIkVkaXQ6XCIpO1xuICAgIHRoaXMuZHJhd0J0bihyb3dUaHJlZUJ0bnMsICdpbnNlcnRSb3cnLCAnaW5zZXJ0IHJvdyBhYm92ZScsICh0ZSkgPT5cbiAgICAgIHRlLmluc2VydFJvdygpLFxuICAgICk7XG4gICAgdGhpcy5kcmF3QnRuKHJvd1RocmVlQnRucywgJ2luc2VydENvbHVtbicsICdpbnNlcnQgY29sdW1uIGxlZnQnLCAodGUpID0+XG4gICAgICB0ZS5pbnNlcnRDb2x1bW4oKSxcbiAgICApO1xuICAgIHRoaXMuZHJhd0J0bihyb3dUaHJlZUJ0bnMsICdkZWxldGVSb3cnLCAnZGVsZXRlIHJvdycsICh0ZSkgPT5cbiAgICAgIHRlLmRlbGV0ZVJvdygpLFxuICAgICk7XG4gICAgdGhpcy5kcmF3QnRuKHJvd1RocmVlQnRucywgJ2RlbGV0ZUNvbHVtbicsICdkZWxldGUgY29sdW1uJywgKHRlKSA9PlxuICAgICAgdGUuZGVsZXRlQ29sdW1uKCksXG4gICAgKTtcblxuICAgIGNvbnN0IHJvd0ZvdXJCdG5zID0gbmF2SGVhZGVyLmNyZWF0ZURpdih7IGNsczogJ25hdi1idXR0b25zLWNvbnRhaW5lcicgfSk7XG4gICAgcm93Rm91ckJ0bnMuY3JlYXRlU3Bhbih7IGNsczogJ2FkdmFuY2VkLXRhYmxlcy1yb3ctbGFiZWwnIH0pLnNldFRleHQoXCJTb3J0L0Y6XCIpO1xuICAgIHRoaXMuZHJhd0J0bihyb3dGb3VyQnRucywgJ3NvcnRBc2MnLCAnc29ydCBieSBjb2x1bW4gYXNjZW5kaW5nJywgKHRlKSA9PlxuICAgICAgdGUuc29ydFJvd3NBc2MoKSxcbiAgICApO1xuICAgIHRoaXMuZHJhd0J0bihyb3dGb3VyQnRucywgJ3NvcnREZXNjJywgJ3NvcnQgYnkgY29sdW1uIGRlc2NlbmRpbmcnLCAodGUpID0+XG4gICAgICB0ZS5zb3J0Um93c0Rlc2MoKSxcbiAgICApO1xuICAgIHRoaXMuZHJhd0J0bihyb3dGb3VyQnRucywgJ2Zvcm11bGEnLCAnZXZhbHVhdGUgZm9ybXVsYXMnLCAodGUpID0+XG4gICAgICB0ZS5ldmFsdWF0ZUZvcm11bGFzKCksXG4gICAgKTtcblxuICAgIGNvbnN0IHJvd0ZpdmVCdG5zID0gbmF2SGVhZGVyLmNyZWF0ZURpdih7IGNsczogJ25hdi1idXR0b25zLWNvbnRhaW5lcicgfSk7XG4gICAgcm93Rml2ZUJ0bnMuY3JlYXRlU3Bhbih7IGNsczogJ2FkdmFuY2VkLXRhYmxlcy1yb3ctbGFiZWwnIH0pLnNldFRleHQoXCJNaXNjOlwiKTtcbiAgICB0aGlzLmRyYXdCdG4ocm93Rml2ZUJ0bnMsICdjc3YnLCAnZXhwb3J0IGFzIGNzdicsICh0ZSkgPT5cbiAgICAgIHRlLmV4cG9ydENTVk1vZGFsKCksXG4gICAgKTtcbiAgICB0aGlzLmRyYXdCdG4ocm93Rml2ZUJ0bnMsICdoZWxwJywgJ2hlbHAnLCAoKSA9PlxuICAgICAgd2luZG93Lm9wZW4oXG4gICAgICAgICdodHRwczovL2dpdGh1Yi5jb20vdGdyb3Npbmdlci9hZHZhbmNlZC10YWJsZXMtb2JzaWRpYW4vYmxvYi9tYWluL2RvY3MvaGVscC5tZCcsXG4gICAgICApLFxuICAgICk7XG5cbiAgICBjb250YWluZXIuZW1wdHkoKTtcbiAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQocm9vdEVsKTtcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRyYXdCdG4gPSAoXG4gICAgcGFyZW50OiBIVE1MRGl2RWxlbWVudCxcbiAgICBpY29uTmFtZTogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgZm46ICh0ZTogVGFibGVFZGl0b3IpID0+IHZvaWQsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGN1cnNvckNoZWNrID0gKHRlOiBUYWJsZUVkaXRvcik6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKHRpdGxlID09PSAnZXZhbHVhdGUgZm9ybXVsYXMnKSB7XG4gICAgICAgIHJldHVybiB0ZS5jdXJzb3JJc0luVGFibGUoKSB8fCB0ZS5jdXJzb3JJc0luVGFibGVGb3JtdWxhKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGUuY3Vyc29ySXNJblRhYmxlKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGJ1dHRvbiA9IHBhcmVudC5jcmVhdGVEaXYoeyBjbHM6ICdhZHZhbmNlZC10YWJsZXMtYnV0dG9uIG5hdi1hY3Rpb24tYnV0dG9uJywgdGl0bGUgfSk7XG4gICAgYnV0dG9uLm9uQ2xpY2tFdmVudCgoKSA9PiB0aGlzLndpdGhURShmbiwgY3Vyc29yQ2hlY2spKTtcbiAgICBidXR0b24uYXBwZW5kQ2hpbGQoRWxlbWVudChpY29uc1tpY29uTmFtZV0pKTtcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHdpdGhURSA9IChcbiAgICBmbjogKHRlOiBUYWJsZUVkaXRvcikgPT4gdm9pZCxcbiAgICBjdXJzb3JDaGVjazogKHRlOiBUYWJsZUVkaXRvcikgPT4gYm9vbGVhbixcbiAgICBhbGVydE9uTm9UYWJsZSA9IHRydWUsXG4gICk6IHZvaWQgPT4ge1xuICAgIGxldCBlZGl0b3I6IEVkaXRvcjtcbiAgICBjb25zdCBsZWFmID0gdGhpcy5hcHAud29ya3NwYWNlLmdldE1vc3RSZWNlbnRMZWFmKCk7XG4gICAgaWYgKGxlYWYudmlldyBpbnN0YW5jZW9mIE1hcmtkb3duVmlldykge1xuICAgICAgZWRpdG9yID0gbGVhZi52aWV3LmVkaXRvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdBZHZhbmNlZCBUYWJsZXM6IFVuYWJsZSB0byBkZXRlcm1pbmUgY3VycmVudCBlZGl0b3IuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGUgPSBuZXcgVGFibGVFZGl0b3IodGhpcy5hcHAsIGxlYWYudmlldy5maWxlLCBlZGl0b3IsIHRoaXMuc2V0dGluZ3MpO1xuICAgIGlmICghY3Vyc29yQ2hlY2sodGUpKSB7XG4gICAgICBpZiAoYWxlcnRPbk5vVGFibGUpIHtcbiAgICAgICAgbmV3IE5vdGljZSgnQWR2YW5jZWQgVGFibGVzOiBDdXJzb3IgbXVzdCBiZSBpbiBhIHRhYmxlLicpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZuKHRlKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGFuIHN2ZyBzdHJpbmcgaW50byBhbiBIVE1MIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHN2Z1RleHQgc3ZnIGltYWdlIGFzIGEgc3RyaW5nXG4gKi9cbmNvbnN0IEVsZW1lbnQgPSAoc3ZnVGV4dDogc3RyaW5nKTogSFRNTEVsZW1lbnQgPT4ge1xuICBjb25zdCBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG4gIHJldHVybiBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKHN2Z1RleHQsICd0ZXh0L3htbCcpLmRvY3VtZW50RWxlbWVudDtcbn07XG4iLCJpbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJy4vaWNvbnMnO1xuaW1wb3J0IHsgZGVmYXVsdFNldHRpbmdzLCBUYWJsZUVkaXRvclBsdWdpblNldHRpbmdzIH0gZnJvbSAnLi9zZXR0aW5ncyc7XG5pbXBvcnQge1xuICBUYWJsZUNvbnRyb2xzVmlldyxcbiAgVGFibGVDb250cm9sc1ZpZXdUeXBlLFxufSBmcm9tICcuL3RhYmxlLWNvbnRyb2xzLXZpZXcnO1xuaW1wb3J0IHsgVGFibGVFZGl0b3IgfSBmcm9tICcuL3RhYmxlLWVkaXRvcic7XG5pbXBvcnQgeyBFeHRlbnNpb24sIFByZWMgfSBmcm9tICdAY29kZW1pcnJvci9zdGF0ZSc7XG5pbXBvcnQgeyBLZXlCaW5kaW5nLCBrZXltYXAgfSBmcm9tICdAY29kZW1pcnJvci92aWV3JztcbmltcG9ydCB7IEZvcm1hdFR5cGUgfSBmcm9tICdAdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMnO1xuaW1wb3J0IHtcbiAgQXBwLFxuICBFZGl0b3IsXG4gIE1hcmtkb3duVmlldyxcbiAgTm90aWNlLFxuICBQbHVnaW4sXG4gIFBsdWdpblNldHRpbmdUYWIsXG4gIFNldHRpbmcsXG59IGZyb20gJ29ic2lkaWFuJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGFibGVFZGl0b3JQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuICBwdWJsaWMgc2V0dGluZ3M6IFRhYmxlRWRpdG9yUGx1Z2luU2V0dGluZ3M7XG5cbiAgLy8gY21FZGl0b3JzIGlzIHVzZWQgZHVyaW5nIHVubG9hZCB0byByZW1vdmUgb3VyIGV2ZW50IGhhbmRsZXJzLlxuICBwcml2YXRlIGNtRWRpdG9yczogQ29kZU1pcnJvci5FZGl0b3JbXTtcblxuICBwcml2YXRlIHRhYmxlQ29udHJvbHNWaWV3OiBUYWJsZUNvbnRyb2xzVmlldztcblxuICBwdWJsaWMgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnNvbGUubG9nKCdsb2FkaW5nIG1hcmtkb3duLXRhYmxlLWVkaXRvciBwbHVnaW4nKTtcblxuICAgIGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyVmlldyhcbiAgICAgIFRhYmxlQ29udHJvbHNWaWV3VHlwZSxcbiAgICAgIChsZWFmKSA9PlxuICAgICAgICAodGhpcy50YWJsZUNvbnRyb2xzVmlldyA9IG5ldyBUYWJsZUNvbnRyb2xzVmlldyhsZWFmLCB0aGlzLnNldHRpbmdzKSksXG4gICAgKTtcblxuICAgIGFkZEljb25zKCk7XG5cbiAgICBpZiAodGhpcy5zZXR0aW5ncy5zaG93UmliYm9uSWNvbikge1xuICAgICAgdGhpcy5hZGRSaWJib25JY29uKCdzcHJlYWRzaGVldCcsICdBZHZhbmNlZCBUYWJsZXMgVG9vbGJhcicsICgpID0+IHtcbiAgICAgICAgdGhpcy50b2dnbGVUYWJsZUNvbnRyb2xzVmlldygpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5jbUVkaXRvcnMgPSBbXTtcbiAgICB0aGlzLnJlZ2lzdGVyQ29kZU1pcnJvcigoY20pID0+IHtcbiAgICAgIHRoaXMuY21FZGl0b3JzLnB1c2goY20pO1xuICAgICAgY20ub24oJ2tleWRvd24nLCB0aGlzLmhhbmRsZUtleURvd24pO1xuICAgIH0pO1xuXG4gICAgLy8gQ002IGVkaXRvciBleHRlbnNpb24gZm9yIHJlbWFwcGluZyBrZXlzXG4gICAgdGhpcy5yZWdpc3RlckVkaXRvckV4dGVuc2lvbih0aGlzLm1ha2VFZGl0b3JFeHRlbnNpb24oKSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICduZXh0LXJvdycsXG4gICAgICBuYW1lOiAnR28gdG8gbmV4dCByb3cnLFxuICAgICAgaWNvbjogJ2Fycm93ZW50ZXInLFxuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogdGhpcy5uZXdQZXJmb3JtVGFibGVBY3Rpb24oKHRlOiBUYWJsZUVkaXRvcikgPT4ge1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5iaW5kRW50ZXIgJiYgIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICBuZXcgTm90aWNlKFxuICAgICAgICAgICAgJ0FkdmFuY2VkIFRhYmxlczogTmV4dCByb3cgYWxzbyBib3VuZCB0byBlbnRlci4gJyArXG4gICAgICAgICAgICAgICdQb3NzaWJseSBwcm9kdWNpbmcgZG91YmxlIGFjdGlvbnMuIFNlZSBBZHZhbmNlZCBUYWJsZXMgc2V0dGluZ3MuJyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRlLm5leHRSb3coKTtcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAnbmV4dC1jZWxsJyxcbiAgICAgIG5hbWU6ICdHbyB0byBuZXh0IGNlbGwnLFxuICAgICAgaWNvbjogJ2Fycm93dGFiJyxcbiAgICAgIGVkaXRvckNoZWNrQ2FsbGJhY2s6IHRoaXMubmV3UGVyZm9ybVRhYmxlQWN0aW9uKCh0ZTogVGFibGVFZGl0b3IpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuYmluZFRhYiAmJiAhdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgIG5ldyBOb3RpY2UoXG4gICAgICAgICAgICAnQWR2YW5jZWQgVGFibGVzOiBOZXh0IGNlbGwgYWxzbyBib3VuZCB0byB0YWIuICcgK1xuICAgICAgICAgICAgICAnUG9zc2libHkgcHJvZHVjaW5nIGRvdWJsZSBhY3Rpb25zLiBTZWUgQWR2YW5jZWQgVGFibGVzIHNldHRpbmdzLicsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0ZS5uZXh0Q2VsbCgpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdwcmV2aW91cy1jZWxsJyxcbiAgICAgIG5hbWU6ICdHbyB0byBwcmV2aW91cyBjZWxsJyxcbiAgICAgIGVkaXRvckNoZWNrQ2FsbGJhY2s6IHRoaXMubmV3UGVyZm9ybVRhYmxlQWN0aW9uKCh0ZTogVGFibGVFZGl0b3IpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuYmluZFRhYiAmJiAhdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgIG5ldyBOb3RpY2UoXG4gICAgICAgICAgICAnQWR2YW5jZWQgVGFibGVzOiBQcmV2aW91cyBjZWxsIGFsc28gYm91bmQgdG8gc2hpZnQrdGFiLiAnICtcbiAgICAgICAgICAgICAgJ1Bvc3NpYmx5IHByb2R1Y2luZyBkb3VibGUgYWN0aW9ucy4gU2VlIEFkdmFuY2VkIFRhYmxlcyBzZXR0aW5ncy4nLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGUucHJldmlvdXNDZWxsKCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ2Zvcm1hdC10YWJsZScsXG4gICAgICBuYW1lOiAnRm9ybWF0IHRhYmxlIGF0IHRoZSBjdXJzb3InLFxuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogdGhpcy5uZXdQZXJmb3JtVGFibGVBY3Rpb24oKHRlOiBUYWJsZUVkaXRvcikgPT4ge1xuICAgICAgICB0ZS5mb3JtYXRUYWJsZSgpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdmb3JtYXQtYWxsLXRhYmxlcycsXG4gICAgICBuYW1lOiAnRm9ybWF0IGFsbCB0YWJsZXMgaW4gdGhpcyBmaWxlJyxcbiAgICAgIGVkaXRvckNoZWNrQ2FsbGJhY2s6IHRoaXMubmV3UGVyZm9ybVRhYmxlQWN0aW9uKCh0ZTogVGFibGVFZGl0b3IpID0+IHtcbiAgICAgICAgdGUuZm9ybWF0QWxsVGFibGVzKCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ2luc2VydC1jb2x1bW4nLFxuICAgICAgbmFtZTogJ0luc2VydCBjb2x1bW4gYmVmb3JlIGN1cnJlbnQnLFxuICAgICAgaWNvbjogJ2luc2VydENvbHVtbicsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLmluc2VydENvbHVtbigpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdpbnNlcnQtcm93JyxcbiAgICAgIG5hbWU6ICdJbnNlcnQgcm93IGJlZm9yZSBjdXJyZW50JyxcbiAgICAgIGljb246ICdpbnNlcnRSb3cnLFxuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogdGhpcy5uZXdQZXJmb3JtVGFibGVBY3Rpb24oKHRlOiBUYWJsZUVkaXRvcikgPT4ge1xuICAgICAgICB0ZS5pbnNlcnRSb3coKTtcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAnZXNjYXBlLXRhYmxlJyxcbiAgICAgIG5hbWU6ICdNb3ZlIGN1cnNvciBvdXQgb2YgdGFibGUnLFxuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogdGhpcy5uZXdQZXJmb3JtVGFibGVBY3Rpb24oKHRlOiBUYWJsZUVkaXRvcikgPT4ge1xuICAgICAgICB0ZS5lc2NhcGUoKTtcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAnbGVmdC1hbGlnbi1jb2x1bW4nLFxuICAgICAgbmFtZTogJ0xlZnQgYWxpZ24gY29sdW1uJyxcbiAgICAgIGljb246ICdhbGlnbkxlZnQnLFxuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogdGhpcy5uZXdQZXJmb3JtVGFibGVBY3Rpb24oKHRlOiBUYWJsZUVkaXRvcikgPT4ge1xuICAgICAgICB0ZS5sZWZ0QWxpZ25Db2x1bW4oKTtcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAnY2VudGVyLWFsaWduLWNvbHVtbicsXG4gICAgICBuYW1lOiAnQ2VudGVyIGFsaWduIGNvbHVtbicsXG4gICAgICBpY29uOiAnYWxpZ25DZW50ZXInLFxuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogdGhpcy5uZXdQZXJmb3JtVGFibGVBY3Rpb24oKHRlOiBUYWJsZUVkaXRvcikgPT4ge1xuICAgICAgICB0ZS5jZW50ZXJBbGlnbkNvbHVtbigpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdyaWdodC1hbGlnbi1jb2x1bW4nLFxuICAgICAgbmFtZTogJ1JpZ2h0IGFsaWduIGNvbHVtbicsXG4gICAgICBpY29uOiAnYWxpZ25SaWdodCcsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLnJpZ2h0QWxpZ25Db2x1bW4oKTtcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAnbW92ZS1jb2x1bW4tbGVmdCcsXG4gICAgICBuYW1lOiAnTW92ZSBjb2x1bW4gbGVmdCcsXG4gICAgICBpY29uOiAnbW92ZUNvbHVtbkxlZnQnLFxuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogdGhpcy5uZXdQZXJmb3JtVGFibGVBY3Rpb24oKHRlOiBUYWJsZUVkaXRvcikgPT4ge1xuICAgICAgICB0ZS5tb3ZlQ29sdW1uTGVmdCgpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdtb3ZlLWNvbHVtbi1yaWdodCcsXG4gICAgICBuYW1lOiAnTW92ZSBjb2x1bW4gcmlnaHQnLFxuICAgICAgaWNvbjogJ21vdmVDb2x1bW5SaWdodCcsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLm1vdmVDb2x1bW5SaWdodCgpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdtb3ZlLXJvdy11cCcsXG4gICAgICBuYW1lOiAnTW92ZSByb3cgdXAnLFxuICAgICAgaWNvbjogJ21vdmVSb3dVcCcsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLm1vdmVSb3dVcCgpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdtb3ZlLXJvdy1kb3duJyxcbiAgICAgIG5hbWU6ICdNb3ZlIHJvdyBkb3duJyxcbiAgICAgIGljb246ICdtb3ZlUm93RG93bicsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLm1vdmVSb3dEb3duKCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ2RlbGV0ZS1jb2x1bW4nLFxuICAgICAgbmFtZTogJ0RlbGV0ZSBjb2x1bW4nLFxuICAgICAgaWNvbjogJ2RlbGV0ZUNvbHVtbicsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLmRlbGV0ZUNvbHVtbigpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdkZWxldGUtcm93JyxcbiAgICAgIG5hbWU6ICdEZWxldGUgcm93JyxcbiAgICAgIGljb246ICdkZWxldGVSb3cnLFxuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogdGhpcy5uZXdQZXJmb3JtVGFibGVBY3Rpb24oKHRlOiBUYWJsZUVkaXRvcikgPT4ge1xuICAgICAgICB0ZS5kZWxldGVSb3coKTtcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAnc29ydC1yb3dzLWFzY2VuZGluZycsXG4gICAgICBuYW1lOiAnU29ydCByb3dzIGFzY2VuZGluZycsXG4gICAgICBpY29uOiAnc29ydEFzYycsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLnNvcnRSb3dzQXNjKCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ3NvcnQtcm93cy1kZXNjZW5kaW5nJyxcbiAgICAgIG5hbWU6ICdTb3J0IHJvd3MgZGVzY2VuZGluZycsXG4gICAgICBpY29uOiAnc29ydERlc2MnLFxuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogdGhpcy5uZXdQZXJmb3JtVGFibGVBY3Rpb24oKHRlOiBUYWJsZUVkaXRvcikgPT4ge1xuICAgICAgICB0ZS5zb3J0Um93c0Rlc2MoKTtcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAnZXZhbHVhdGUtZm9ybXVsYXMnLFxuICAgICAgbmFtZTogJ0V2YWx1YXRlIHRhYmxlIGZvcm11bGFzJyxcbiAgICAgIGljb246ICdmb3JtdWxhJyxcbiAgICAgIGVkaXRvckNoZWNrQ2FsbGJhY2s6IChcbiAgICAgICAgY2hlY2tpbmc6IGJvb2xlYW4sXG4gICAgICAgIGVkaXRvcjogRWRpdG9yLFxuICAgICAgICB2aWV3OiBNYXJrZG93blZpZXcsXG4gICAgICApOiBib29sZWFuIHwgdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHRlID0gbmV3IFRhYmxlRWRpdG9yKHRoaXMuYXBwLCB2aWV3LmZpbGUsIGVkaXRvciwgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGlmIChjaGVja2luZykge1xuICAgICAgICAgIHJldHVybiB0ZS5jdXJzb3JJc0luVGFibGUoKSB8fCB0ZS5jdXJzb3JJc0luVGFibGVGb3JtdWxhKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGUuZXZhbHVhdGVGb3JtdWxhcygpO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ3RhYmxlLWNvbnRyb2wtYmFyJyxcbiAgICAgIG5hbWU6ICdPcGVuIHRhYmxlIGNvbnRyb2xzIHRvb2xiYXInLFxuICAgICAgaG90a2V5czogW1xuICAgICAgICB7XG4gICAgICAgICAgbW9kaWZpZXJzOiBbJ01vZCcsICdTaGlmdCddLFxuICAgICAgICAgIGtleTogJ2QnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMudG9nZ2xlVGFibGVDb250cm9sc1ZpZXcoKTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZFNldHRpbmdUYWIobmV3IFRhYmxlRWRpdG9yU2V0dGluZ3NUYWIodGhpcy5hcHAsIHRoaXMpKTtcbiAgfVxuXG4gIHB1YmxpYyBvbnVubG9hZCgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygndW5sb2FkaW5nIG1hcmtkb3duLXRhYmxlLWVkaXRvciBwbHVnaW4nKTtcblxuICAgIHRoaXMuY21FZGl0b3JzLmZvckVhY2goKGNtKSA9PiB7XG4gICAgICBjbS5vZmYoJ2tleWRvd24nLCB0aGlzLmhhbmRsZUtleURvd24pO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gbWFrZUVkaXRvckV4dGVuc2lvbiBpcyB1c2VkIHRvIGJpbmQgVGFiIGFuZCBFbnRlciBpbiB0aGUgbmV3IENNNiBMaXZlIFByZXZpZXcgZWRpdG9yLlxuICBwcml2YXRlIHJlYWRvbmx5IG1ha2VFZGl0b3JFeHRlbnNpb24gPSAoKTogRXh0ZW5zaW9uID0+IHtcbiAgICBjb25zdCBrZXltYXBzOiBLZXlCaW5kaW5nW10gPSBbXTtcblxuICAgIGlmICh0aGlzLnNldHRpbmdzLmJpbmRFbnRlcikge1xuICAgICAga2V5bWFwcy5wdXNoKHtcbiAgICAgICAga2V5OiAnRW50ZXInLFxuICAgICAgICBydW46ICgpOiBib29sZWFuID0+XG4gICAgICAgICAgdGhpcy5uZXdQZXJmb3JtVGFibGVBY3Rpb25DTTYoKHRlOiBUYWJsZUVkaXRvcikgPT4gdGUubmV4dFJvdygpKSgpLFxuICAgICAgICBwcmV2ZW50RGVmYXVsdDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNldHRpbmdzLmJpbmRUYWIpIHtcbiAgICAgIGtleW1hcHMucHVzaCh7XG4gICAgICAgIGtleTogJ1RhYicsXG4gICAgICAgIHJ1bjogKCk6IGJvb2xlYW4gPT5cbiAgICAgICAgICB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbkNNNigodGU6IFRhYmxlRWRpdG9yKSA9PiB0ZS5uZXh0Q2VsbCgpKSgpLFxuICAgICAgICBzaGlmdDogKCk6IGJvb2xlYW4gPT5cbiAgICAgICAgICB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbkNNNigodGU6IFRhYmxlRWRpdG9yKSA9PlxuICAgICAgICAgICAgdGUucHJldmlvdXNDZWxsKCksXG4gICAgICAgICAgKSgpLFxuICAgICAgICBwcmV2ZW50RGVmYXVsdDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBQcmVjLm92ZXJyaWRlKGtleW1hcC5vZihrZXltYXBzKSk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBuZXdQZXJmb3JtVGFibGVBY3Rpb25DTTYgPVxuICAgIChmbjogKHRlOiBUYWJsZUVkaXRvcikgPT4gdm9pZCk6ICgoKSA9PiBib29sZWFuKSA9PlxuICAgICgpOiBib29sZWFuID0+IHtcbiAgICAgIGNvbnN0IGxlYWYgPSB0aGlzLmFwcC53b3Jrc3BhY2UuYWN0aXZlTGVhZjtcbiAgICAgIGlmIChsZWFmLnZpZXcgaW5zdGFuY2VvZiBNYXJrZG93blZpZXcpIHtcbiAgICAgICAgY29uc3QgdGUgPSBuZXcgVGFibGVFZGl0b3IoXG4gICAgICAgICAgdGhpcy5hcHAsXG4gICAgICAgICAgbGVhZi52aWV3LmZpbGUsXG4gICAgICAgICAgbGVhZi52aWV3LmVkaXRvcixcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0ZS5jdXJzb3JJc0luVGFibGUoKSkge1xuICAgICAgICAgIGZuKHRlKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBuZXdQZXJmb3JtVGFibGVBY3Rpb24gPVxuICAgIChmbjogKHRlOiBUYWJsZUVkaXRvcikgPT4gdm9pZCwgYWxlcnRPbk5vVGFibGUgPSB0cnVlKSA9PlxuICAgIChjaGVja2luZzogYm9vbGVhbiwgZWRpdG9yOiBFZGl0b3IsIHZpZXc6IE1hcmtkb3duVmlldyk6IGJvb2xlYW4gfCB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHRlID0gbmV3IFRhYmxlRWRpdG9yKHRoaXMuYXBwLCB2aWV3LmZpbGUsIGVkaXRvciwgdGhpcy5zZXR0aW5ncyk7XG5cbiAgICAgIGlmIChjaGVja2luZykge1xuICAgICAgICByZXR1cm4gdGUuY3Vyc29ySXNJblRhYmxlKCk7XG4gICAgICB9XG5cbiAgICAgIGZuKHRlKTtcbiAgICB9O1xuXG4gIC8vIGhhbmRsZUtleURvd24gaXMgdXNlZCB0byBiaW5kIHRoZSB0YWIgYW5kIGVudGVyIGtleXMgaW4gdGhlIGxlZ2FjeSBDTTUgZWRpdG9yLlxuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZUtleURvd24gPSAoXG4gICAgY206IENvZGVNaXJyb3IuRWRpdG9yLFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50LFxuICApOiB2b2lkID0+IHtcbiAgICBpZiAoWydUYWInLCAnRW50ZXInXS5jb250YWlucyhldmVudC5rZXkpKSB7XG4gICAgICBsZXQgZWRpdG9yOiBFZGl0b3I7XG4gICAgICBsZXQgdmlldzogTWFya2Rvd25WaWV3O1xuICAgICAgY29uc3QgYWN0aXZlTGVhZiA9IHRoaXMuYXBwLndvcmtzcGFjZS5hY3RpdmVMZWFmO1xuICAgICAgaWYgKGFjdGl2ZUxlYWYudmlldyBpbnN0YW5jZW9mIE1hcmtkb3duVmlldykge1xuICAgICAgICBlZGl0b3IgPSBhY3RpdmVMZWFmLnZpZXcuZWRpdG9yO1xuICAgICAgICB2aWV3ID0gYWN0aXZlTGVhZi52aWV3O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhY3Rpb24gPSB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgY2FzZSAnVGFiJzpcbiAgICAgICAgICAgIGlmICghdGhpcy5zZXR0aW5ncy5iaW5kVGFiKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIHRlLnByZXZpb3VzQ2VsbCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGUubmV4dENlbGwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgICAgIGlmICghdGhpcy5zZXR0aW5ncy5iaW5kRW50ZXIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgdGUuZXNjYXBlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGUubmV4dFJvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH0sIGZhbHNlKTtcblxuICAgICAgLy8gQ2hlY2sgZmlyc3QgaWYgd2UgYXJlIGluIGEgdGFibGUsIGlmIHNvLCB0aGVuIGV4ZWN1dGUuXG4gICAgICBpZiAoYWN0aW9uKHRydWUsIGVkaXRvciwgdmlldykpIHtcbiAgICAgICAgYWN0aW9uKGZhbHNlLCBlZGl0b3IsIHZpZXcpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRvZ2dsZVRhYmxlQ29udHJvbHNWaWV3ID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5hcHAud29ya3NwYWNlLmdldExlYXZlc09mVHlwZShUYWJsZUNvbnRyb2xzVmlld1R5cGUpO1xuICAgIGlmIChleGlzdGluZy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYXBwLndvcmtzcGFjZS5yZXZlYWxMZWFmKGV4aXN0aW5nWzBdKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0UmlnaHRMZWFmKGZhbHNlKS5zZXRWaWV3U3RhdGUoe1xuICAgICAgdHlwZTogVGFibGVDb250cm9sc1ZpZXdUeXBlLFxuICAgICAgYWN0aXZlOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hcHAud29ya3NwYWNlLnJldmVhbExlYWYoXG4gICAgICB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0TGVhdmVzT2ZUeXBlKFRhYmxlQ29udHJvbHNWaWV3VHlwZSlbMF0sXG4gICAgKTtcbiAgfTtcblxuICBwcml2YXRlIGFzeW5jIGxvYWRTZXR0aW5ncygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzZXR0aW5nc09wdGlvbnMgPSBPYmplY3QuYXNzaWduKFxuICAgICAgZGVmYXVsdFNldHRpbmdzLFxuICAgICAgYXdhaXQgdGhpcy5sb2FkRGF0YSgpLFxuICAgICk7XG4gICAgdGhpcy5zZXR0aW5ncyA9IG5ldyBUYWJsZUVkaXRvclBsdWdpblNldHRpbmdzKHNldHRpbmdzT3B0aW9ucyk7XG4gICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGUgPSAoKTogYm9vbGVhbiA9PiAodGhpcy5hcHAgYXMgYW55KS5pc01vYmlsZTtcbn1cblxuY2xhc3MgVGFibGVFZGl0b3JTZXR0aW5nc1RhYiBleHRlbmRzIFBsdWdpblNldHRpbmdUYWIge1xuICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpbjogVGFibGVFZGl0b3JQbHVnaW47XG5cbiAgY29uc3RydWN0b3IoYXBwOiBBcHAsIHBsdWdpbjogVGFibGVFZGl0b3JQbHVnaW4pIHtcbiAgICBzdXBlcihhcHAsIHBsdWdpbik7XG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheSgpOiB2b2lkIHtcbiAgICBjb25zdCB7IGNvbnRhaW5lckVsIH0gPSB0aGlzO1xuICAgIGNvbnRhaW5lckVsLmVtcHR5KCk7XG5cbiAgICBjb250YWluZXJFbC5jcmVhdGVFbCgnaDInLCB7IHRleHQ6ICdBZHZhbmNlZCBUYWJsZXMgUGx1Z2luIC0gU2V0dGluZ3MnIH0pO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZSgnQmluZCBlbnRlciB0byB0YWJsZSBuYXZpZ2F0aW9uJylcbiAgICAgIC5zZXREZXNjKFxuICAgICAgICAnUmVxdWlyZXMgcmVzdGFydCBvZiBPYnNpZGlhbi4gSWYgZW5hYmxlZCwgd2hlbiB0aGUgY3Vyc29yIGlzIGluIGEgdGFibGUsIGVudGVyIGFkdmFuY2VzIHRvIHRoZSBuZXh0ICcgK1xuICAgICAgICAgICdyb3cuIERpc2FibGluZyB0aGlzIGNhbiBoZWxwIGF2b2lkIGNvbmZsaWN0aW5nIHdpdGggdGFnIG9yIENKSyAnICtcbiAgICAgICAgICAnYXV0b2NvbXBsZXRpb24uIElmIGRpc2FibGluZywgYmluZCBcIkdvIHRvIC4uLlwiIGluIHRoZSBPYnNpZGlhbiBIb3RrZXlzIHNldHRpbmdzLicsXG4gICAgICApXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XG4gICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5iaW5kRW50ZXIpLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmJpbmRFbnRlciA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcbiAgICAgICAgICB0aGlzLmRpc3BsYXkoKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZSgnQmluZCB0YWIgdG8gdGFibGUgbmF2aWdhdGlvbicpXG4gICAgICAuc2V0RGVzYyhcbiAgICAgICAgJ1JlcXVpcmVzIHJlc3RhcnQgb2YgT2JzaWRpYW4uIElmIGVuYWJsZWQsIHdoZW4gdGhlIGN1cnNvciBpcyBpbiBhIHRhYmxlLCB0YWIvc2hpZnQrdGFiIG5hdmlnYXRlICcgK1xuICAgICAgICAgICdiZXR3ZWVuIGNlbGxzLiBEaXNhYmxpbmcgdGhpcyBjYW4gaGVscCBhdm9pZCBjb25mbGljdGluZyB3aXRoIHRhZyAnICtcbiAgICAgICAgICAnb3IgQ0pLIGF1dG9jb21wbGV0aW9uLiBJZiBkaXNhYmxpbmcsIGJpbmQgXCJHbyB0byAuLi5cIiBpbiB0aGUgT2JzaWRpYW4gSG90a2V5cyBzZXR0aW5ncy4nLFxuICAgICAgKVxuICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuYmluZFRhYikub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuYmluZFRhYiA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcbiAgICAgICAgICB0aGlzLmRpc3BsYXkoKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZSgnUGFkIGNlbGwgd2lkdGggdXNpbmcgc3BhY2VzJylcbiAgICAgIC5zZXREZXNjKFxuICAgICAgICAnSWYgZW5hYmxlZCwgdGFibGUgY2VsbHMgd2lsbCBoYXZlIHNwYWNlcyBhZGRlZCB0byBtYXRjaCB0aGUgd2lkdGggb2YgdGhlICcgK1xuICAgICAgICAgICdsb25nZXN0IGNlbGwgaW4gdGhlIGNvbHVtbi4nLFxuICAgICAgKVxuICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxuICAgICAgICB0b2dnbGVcbiAgICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZm9ybWF0VHlwZSA9PT0gRm9ybWF0VHlwZS5OT1JNQUwpXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuZm9ybWF0VHlwZSA9IHZhbHVlXG4gICAgICAgICAgICAgID8gRm9ybWF0VHlwZS5OT1JNQUxcbiAgICAgICAgICAgICAgOiBGb3JtYXRUeXBlLldFQUs7XG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXkoKTtcbiAgICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdTaG93IGljb24gaW4gc2lkZWJhcicpXG4gICAgICAuc2V0RGVzYyhcbiAgICAgICAgJ0lmIGVuYWJsZWQsIGEgYnV0dG9uIHdoaWNoIG9wZW5zIHRoZSB0YWJsZSBjb250cm9scyB0b29sYmFyIHdpbGwgYmUgYWRkZWQgdG8gdGhlIE9ic2lkaWFuIHNpZGViYXIuICcgK1xuICAgICAgICAgICdUaGUgdG9vbGJhciBjYW4gYWxzbyBiZSBvcGVuZWQgd2l0aCBhIEhvdGtleS4gQ2hhbmdlcyBvbmx5IHRha2UgZWZmZWN0IG9uIHJlbG9hZC4nLFxuICAgICAgKVxuICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxuICAgICAgICB0b2dnbGVcbiAgICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3Muc2hvd1JpYmJvbkljb24pXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2hvd1JpYmJvbkljb24gPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheSgpO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgIGNvbnN0IGRpdiA9IGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdkaXYnLCB7XG4gICAgICBjbHM6ICdhZHZhbmNlZC10YWJsZXMtZG9uYXRpb24nLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZG9uYXRlVGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcbiAgICBkb25hdGVUZXh0LmFwcGVuZFRleHQoXG4gICAgICAnSWYgdGhpcyBwbHVnaW4gYWRkcyB2YWx1ZSBmb3IgeW91IGFuZCB5b3Ugd291bGQgbGlrZSB0byBoZWxwIHN1cHBvcnQgJyArXG4gICAgICAgICdjb250aW51ZWQgZGV2ZWxvcG1lbnQsIHBsZWFzZSB1c2UgdGhlIGJ1dHRvbnMgYmVsb3c6JyxcbiAgICApO1xuICAgIGRpdi5hcHBlbmRDaGlsZChkb25hdGVUZXh0KTtcblxuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcblxuICAgIGRpdi5hcHBlbmRDaGlsZChcbiAgICAgIGNyZWF0ZURvbmF0ZUJ1dHRvbihcbiAgICAgICAgJ2h0dHBzOi8vcGF5cGFsLm1lL3Rncm9zaW5nZXInLFxuICAgICAgICBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKHBheXBhbCwgJ3RleHQveG1sJykuZG9jdW1lbnRFbGVtZW50LFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgZGl2LmFwcGVuZENoaWxkKFxuICAgICAgY3JlYXRlRG9uYXRlQnV0dG9uKFxuICAgICAgICAnaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS90Z3Jvc2luZ2VyJyxcbiAgICAgICAgcGFyc2VyLnBhcnNlRnJvbVN0cmluZyhidXlNZUFDb2ZmZWUsICd0ZXh0L3htbCcpLmRvY3VtZW50RWxlbWVudCxcbiAgICAgICksXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBjcmVhdGVEb25hdGVCdXR0b24gPSAobGluazogc3RyaW5nLCBpbWc6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgPT4ge1xuICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICBhLnNldEF0dHJpYnV0ZSgnaHJlZicsIGxpbmspO1xuICBhLmFkZENsYXNzKCdhZHZhbmNlZC10YWJsZXMtZG9uYXRlLWJ1dHRvbicpO1xuICBhLmFwcGVuZENoaWxkKGltZyk7XG4gIHJldHVybiBhO1xufTtcblxuY29uc3QgYnV5TWVBQ29mZmVlID0gYFxuPHN2ZyB3aWR0aD1cIjE1MFwiIGhlaWdodD1cIjQyXCIgdmlld0JveD1cIjAgMCAyNjAgNzNcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbjxwYXRoIGQ9XCJNMCAxMS42OEMwIDUuMjI5MzIgNS4yMjkzMSAwIDExLjY4IDBIMjQ4LjJDMjU0LjY1MSAwIDI1OS44OCA1LjIyOTMxIDI1OS44OCAxMS42OFY2MS4zMkMyNTkuODggNjcuNzcwNyAyNTQuNjUxIDczIDI0OC4yIDczSDExLjY4QzUuMjI5MzEgNzMgMCA2Ny43NzA3IDAgNjEuMzJWMTEuNjhaXCIgZmlsbD1cIiNGRkREMDBcIi8+XG48cGF0aCBkPVwiTTUyLjI1NjYgMjQuMDA3OEw1Mi4yMjQ2IDIzLjk4ODlMNTIuMTUwNCAyMy45NjYzQzUyLjE4MDIgMjMuOTkxNSA1Mi4yMTc2IDI0LjAwNjEgNTIuMjU2NiAyNC4wMDc4WlwiIGZpbGw9XCIjMEQwQzIyXCIvPlxuPHBhdGggZD1cIk01Mi43MjQ4IDI3LjM0NTdMNTIuNjg5NSAyNy4zNTU2TDUyLjcyNDggMjcuMzQ1N1pcIiBmaWxsPVwiIzBEMEMyMlwiLz5cbjxwYXRoIGQ9XCJNNTIuMjcwMSAyNC4wMDI0QzUyLjI2NiAyNC4wMDE5IDUyLjI2MTkgMjQuMDAwOSA1Mi4yNTggMjMuOTk5NUM1Mi4yNTc4IDI0LjAwMjIgNTIuMjU3OCAyNC4wMDQ5IDUyLjI1OCAyNC4wMDc2QzUyLjI2MjQgMjQuMDA3IDUyLjI2NjYgMjQuMDA1MiA1Mi4yNzAxIDI0LjAwMjRaXCIgZmlsbD1cIiMwRDBDMjJcIi8+XG48cGF0aCBkPVwiTTUyLjI1NzggMjQuMDA5NEg1Mi4yNjQzVjI0LjAwNTRMNTIuMjU3OCAyNC4wMDk0WlwiIGZpbGw9XCIjMEQwQzIyXCIvPlxuPHBhdGggZD1cIk01Mi42OTczIDI3LjMzOTRMNTIuNzUxMyAyNy4zMDg2TDUyLjc3MTQgMjcuMjk3M0w1Mi43ODk3IDI3LjI3NzhDNTIuNzU1NCAyNy4yOTI2IDUyLjcyNDEgMjcuMzEzNSA1Mi42OTczIDI3LjMzOTRaXCIgZmlsbD1cIiMwRDBDMjJcIi8+XG48cGF0aCBkPVwiTTUyLjM0ODQgMjQuMDgxMkw1Mi4yOTU2IDI0LjAzMUw1Mi4yNTk4IDI0LjAxMTVDNTIuMjc5IDI0LjA0NTQgNTIuMzEwOCAyNC4wNzA1IDUyLjM0ODQgMjQuMDgxMlpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cbjxwYXRoIGQ9XCJNMzkuMDY4NCA1Ni40NjlDMzkuMDI2MiA1Ni40ODcyIDM4Ljk4OTMgNTYuNTE1OCAzOC45NjA5IDU2LjU1MkwzOC45OTQzIDU2LjUzMDZDMzkuMDE2OSA1Ni41MDk4IDM5LjA0ODkgNTYuNDg1MyAzOS4wNjg0IDU2LjQ2OVpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cbjxwYXRoIGQ9XCJNNDYuNzgwMiA1NC45NTE4QzQ2Ljc4MDIgNTQuOTA0MSA0Ni43NTY5IDU0LjkxMjkgNDYuNzYyNiA1NS4wODI2QzQ2Ljc2MjYgNTUuMDY4NyA0Ni43NjgzIDU1LjA1NDkgNDYuNzcwOCA1NS4wNDE3QzQ2Ljc3MzkgNTUuMDExNSA0Ni43NzY0IDU0Ljk4MiA0Ni43ODAyIDU0Ljk1MThaXCIgZmlsbD1cIiMwRDBDMjJcIi8+XG48cGF0aCBkPVwiTTQ1Ljk4NDQgNTYuNDY5QzQ1Ljk0MjIgNTYuNDg3MiA0NS45MDUzIDU2LjUxNTggNDUuODc3IDU2LjU1Mkw0NS45MTAzIDU2LjUzMDZDNDUuOTMyOSA1Ni41MDk4IDQ1Ljk2NDkgNTYuNDg1MyA0NS45ODQ0IDU2LjQ2OVpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cbjxwYXRoIGQ9XCJNMzMuNjMwNyA1Ni44MzAxQzMzLjU5ODcgNTYuODAyMyAzMy41NTk1IDU2Ljc4NCAzMy41MTc2IDU2Ljc3NzNDMzMuNTUxNSA1Ni43OTM3IDMzLjU4NTUgNTYuODEgMzMuNjA4MSA1Ni44MjI2TDMzLjYzMDcgNTYuODMwMVpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cbjxwYXRoIGQ9XCJNMzIuNDExOCA1NS42NTk4QzMyLjQwNjggNTUuNjEwMyAzMi4zOTE2IDU1LjU2MjQgMzIuMzY3MiA1NS41MTlDMzIuMzg0NSA1NS41NjQyIDMyLjM5OSA1NS42MTA0IDMyLjQxMDYgNTUuNjU3M0wzMi40MTE4IDU1LjY1OThaXCIgZmlsbD1cIiMwRDBDMjJcIi8+XG48cGF0aCBkPVwiTTQwLjYyMyAzNC43MjIxQzM4Ljk0NDkgMzUuNDQwNSAzNy4wNDA0IDM2LjI1NTEgMzQuNTcyMiAzNi4yNTUxQzMzLjUzOTcgMzYuMjUzMSAzMi41MTIyIDM2LjExMTQgMzEuNTE3NiAzNS44MzRMMzMuMjI0NyA1My4zNjA1QzMzLjI4NTEgNTQuMDkzIDMzLjYxODggNTQuNzc2MSAzNC4xNTk1IDU1LjI3MzlDMzQuNzAwMyA1NS43NzE4IDM1LjQwODUgNTYuMDQ4MiAzNi4xNDM1IDU2LjA0OEMzNi4xNDM1IDU2LjA0OCAzOC41NjQgNTYuMTczNyAzOS4zNzE2IDU2LjE3MzdDNDAuMjQwOSA1Ni4xNzM3IDQyLjg0NzQgNTYuMDQ4IDQyLjg0NzQgNTYuMDQ4QzQzLjU4MjMgNTYuMDQ4IDQ0LjI5MDQgNTUuNzcxNiA0NC44MzEgNTUuMjczN0M0NS4zNzE2IDU0Ljc3NTkgNDUuNzA1MiA1NC4wOTI5IDQ1Ljc2NTYgNTMuMzYwNUw0Ny41OTQgMzMuOTkzQzQ2Ljc3NjkgMzMuNzE0IDQ1Ljk1MjMgMzMuNTI4NiA0NS4wMjI3IDMzLjUyODZDNDMuNDE1IDMzLjUyNzkgNDIuMTE5NiAzNC4wODE3IDQwLjYyMyAzNC43MjIxWlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbjxwYXRoIGQ9XCJNMjYuMjM0NCAyNy4yNDQ5TDI2LjI2MzMgMjcuMjcxOUwyNi4yODIxIDI3LjI4MzJDMjYuMjY3NiAyNy4yNjg4IDI2LjI1MTYgMjcuMjU1OSAyNi4yMzQ0IDI3LjI0NDlaXCIgZmlsbD1cIiMwRDBDMjJcIi8+XG48cGF0aCBkPVwiTTU1LjQ5MDYgMjUuNjI3NEw1NS4yMzM2IDI0LjMzMDdDNTUuMDAyOSAyMy4xNjczIDU0LjQ3OTMgMjIuMDY4IDUzLjI4NTEgMjEuNjQ3NUM1Mi45MDI0IDIxLjUxMyA1Mi40NjggMjEuNDU1MiA1Mi4xNzQ1IDIxLjE3NjhDNTEuODgxIDIwLjg5ODMgNTEuNzk0MyAyMC40NjU5IDUxLjcyNjQgMjAuMDY0OUM1MS42MDA3IDE5LjMyODkgNTEuNDgyNSAxOC41OTIzIDUxLjM1MzcgMTcuODU3NUM1MS4yNDI0IDE3LjIyNTkgNTEuMTU0NCAxNi41MTYzIDUwLjg2NDcgMTUuOTM2OEM1MC40ODc2IDE1LjE1ODYgNDkuNzA1IDE0LjcwMzYgNDguOTI2OSAxNC40MDI1QzQ4LjUyODIgMTQuMjUzNyA0OC4xMjEzIDE0LjEyNzggNDcuNzA4MiAxNC4wMjU0QzQ1Ljc2NDIgMTMuNTEyNSA0My43MjAyIDEzLjMyNCA0MS43MjAyIDEzLjIxNjVDMzkuMzE5NyAxMy4wODQgMzYuOTEyOCAxMy4xMjM5IDM0LjUxOCAxMy4zMzU5QzMyLjczNTUgMTMuNDk4MSAzMC44NTgxIDEzLjY5NDIgMjkuMTY0MiAxNC4zMTA4QzI4LjU0NTEgMTQuNTM2NCAyNy45MDcxIDE0LjgwNzMgMjcuNDM2NCAxNS4yODU2QzI2Ljg1ODcgMTUuODczMyAyNi42NzAyIDE2Ljc4MjEgMjcuMDkxOSAxNy41MTVDMjcuMzkxNyAxOC4wMzU0IDI3Ljg5OTYgMTguNDAzMSAyOC40MzgyIDE4LjY0NjNDMjkuMTM5OCAxOC45NTk3IDI5Ljg3MjYgMTkuMTk4MiAzMC42MjQyIDE5LjM1NzhDMzIuNzE3MiAxOS44MjA0IDM0Ljg4NSAyMC4wMDIxIDM3LjAyMzMgMjAuMDc5NEMzOS4zOTMyIDIwLjE3NSA0MS43NjcgMjAuMDk3NSA0NC4xMjU2IDE5Ljg0NzRDNDQuNzA4OSAxOS43ODMzIDQ1LjI5MTEgMTkuNzA2NCA0NS44NzIzIDE5LjYxNjhDNDYuNTU2OCAxOS41MTE4IDQ2Ljk5NjEgMTguNjE2OCA0Ni43OTQzIDE3Ljk5MzNDNDYuNTUzIDE3LjI0NzkgNDUuOTA0NCAxNi45NTg3IDQ1LjE3MDkgMTcuMDcxMkM0NS4wNjI4IDE3LjA4ODIgNDQuOTU1MyAxNy4xMDM5IDQ0Ljg0NzIgMTcuMTE5Nkw0NC43NjkyIDE3LjEzMUM0NC41MjA4IDE3LjE2MjQgNDQuMjcyMyAxNy4xOTE3IDQ0LjAyMzggMTcuMjE5QzQzLjUxMDUgMTcuMjc0MyA0Mi45OTU5IDE3LjMxOTUgNDIuNDgwMSAxNy4zNTQ3QzQxLjMyNDkgMTcuNDM1MiA0MC4xNjY1IDE3LjQ3MjIgMzkuMDA4OCAxNy40NzQxQzM3Ljg3MTIgMTcuNDc0MSAzNi43MzI5IDE3LjQ0MjEgMzUuNTk3OCAxNy4zNjczQzM1LjA3OTkgMTcuMzMzMyAzNC41NjMyIDE3LjI5MDIgMzQuMDQ3OCAxNy4yMzc4QzMzLjgxMzQgMTcuMjEzMyAzMy41Nzk2IDE3LjE4NzUgMzMuMzQ1OCAxNy4xNTg2TDMzLjEyMzMgMTcuMTMwM0wzMy4wNzQ5IDE3LjEyMzRMMzIuODQ0MiAxNy4wOTAxQzMyLjM3MjggMTcuMDE5MSAzMS45MDE0IDE2LjkzNzQgMzEuNDM1IDE2LjgzODdDMzEuMzg4IDE2LjgyODMgMzEuMzQ1OSAxNi44MDIxIDMxLjMxNTcgMTYuNzY0NUMzMS4yODU2IDE2LjcyNjkgMzEuMjY5MSAxNi42ODAxIDMxLjI2OTEgMTYuNjMxOUMzMS4yNjkxIDE2LjU4MzcgMzEuMjg1NiAxNi41MzY5IDMxLjMxNTcgMTYuNDk5M0MzMS4zNDU5IDE2LjQ2MTcgMzEuMzg4IDE2LjQzNTYgMzEuNDM1IDE2LjQyNTFIMzEuNDQzOEMzMS44NDggMTYuMzM5IDMyLjI1NTMgMTYuMjY1NSAzMi42NjM4IDE2LjIwMTRDMzIuOCAxNi4xOCAzMi45MzY2IDE2LjE1OSAzMy4wNzM2IDE2LjEzODVIMzMuMDc3NEMzMy4zMzMyIDE2LjEyMTUgMzMuNTkwMyAxNi4wNzU3IDMzLjg0NDggMTYuMDQ1NUMzNi4wNTk1IDE1LjgxNTEgMzguMjg3NCAxNS43MzY2IDQwLjUxMjggMTUuODEwNEM0MS41OTMzIDE1Ljg0MTkgNDIuNjczMSAxNS45MDUzIDQzLjc0ODUgMTYuMDE0N0M0My45Nzk4IDE2LjAzODYgNDQuMjA5OCAxNi4wNjM3IDQ0LjQzOTkgMTYuMDkyQzQ0LjUyNzkgMTYuMTAyNyA0NC42MTY1IDE2LjExNTMgNDQuNzA1MSAxNi4xMjU5TDQ0Ljg4MzYgMTYuMTUxN0M0NS40MDQgMTYuMjI5MiA0NS45MjE3IDE2LjMyMzMgNDYuNDM2NyAxNi40MzM5QzQ3LjE5OTcgMTYuNTk5OSA0OC4xNzk2IDE2LjY1MzkgNDguNTE5IDE3LjQ4OThDNDguNjI3MSAxNy43NTUxIDQ4LjY3NjEgMTguMDQ5OSA0OC43MzU5IDE4LjMyODNMNDguODExOSAxOC42ODM0QzQ4LjgxMzkgMTguNjg5OCA0OC44MTU0IDE4LjY5NjMgNDguODE2MyAxOC43MDI5QzQ4Ljk5NjEgMTkuNTQwOSA0OS4xNzYgMjAuMzc5IDQ5LjM1NjIgMjEuMjE3QzQ5LjM2OTQgMjEuMjc4OSA0OS4zNjk3IDIxLjM0MjkgNDkuMzU3MSAyMS40MDQ5QzQ5LjM0NDUgMjEuNDY2OSA0OS4zMTkzIDIxLjUyNTcgNDkuMjgyOSAyMS41Nzc2QzQ5LjI0NjYgMjEuNjI5NCA0OS4yIDIxLjY3MzIgNDkuMTQ2IDIxLjcwNjJDNDkuMDkyIDIxLjczOTIgNDkuMDMxNyAyMS43NjA4IDQ4Ljk2OSAyMS43Njk1SDQ4Ljk2NEw0OC44NTQgMjEuNzg0Nkw0OC43NDUzIDIxLjc5OUM0OC40MDA5IDIxLjg0MzkgNDguMDU2IDIxLjg4NTggNDcuNzEwNyAyMS45MjQ3QzQ3LjAzMDcgMjIuMDAyMiA0Ni4zNDk2IDIyLjA2OTMgNDUuNjY3NCAyMi4xMjU5QzQ0LjMxMTkgMjIuMjM4NiA0Mi45NTM2IDIyLjMxMjUgNDEuNTkyNyAyMi4zNDc3QzQwLjg5OTIgMjIuMzY2MiA0MC4yMDU5IDIyLjM3NDggMzkuNTEyOSAyMi4zNzM1QzM2Ljc1NDMgMjIuMzcxMyAzMy45OTgxIDIyLjIxMSAzMS4yNTc4IDIxLjg5MzNDMzAuOTYxMSAyMS44NTgxIDMwLjY2NDUgMjEuODIwNCAzMC4zNjc4IDIxLjc4MjFDMzAuNTk3OCAyMS44MTE2IDMwLjIwMDYgMjEuNzU5NCAzMC4xMjAyIDIxLjc0ODFDMjkuOTMxNiAyMS43MjE3IDI5Ljc0MzEgMjEuNjk0MyAyOS41NTQ1IDIxLjY2NThDMjguOTIxNiAyMS41NzA5IDI4LjI5MjQgMjEuNDU0IDI3LjY2MDcgMjEuMzUxNUMyNi44OTcxIDIxLjIyNTggMjYuMTY2NyAyMS4yODg3IDI1LjQ3NiAyMS42NjU4QzI0LjkwOSAyMS45NzYgMjQuNDUwMSAyMi40NTE4IDI0LjE2MDUgMjMuMDI5N0MyMy44NjI2IDIzLjY0NTYgMjMuNzczOSAyNC4zMTYzIDIzLjY0MDcgMjQuOTc4MUMyMy41MDc0IDI1LjYzOTkgMjMuMyAyNi4zNTIxIDIzLjM3ODYgMjcuMDMxNUMyMy41NDc3IDI4LjQ5NzkgMjQuNTcyOCAyOS42ODk1IDI2LjA0NzMgMjkuOTU2QzI3LjQzNDUgMzAuMjA3NCAyOC44MjkyIDMwLjQxMTEgMzAuMjI3NiAzMC41ODQ2QzM1LjcyMTIgMzEuMjU3NCA0MS4yNzExIDMxLjMzNzkgNDYuNzgxOCAzMC44MjQ3QzQ3LjIzMDUgMzAuNzgyOCA0Ny42Nzg3IDMwLjczNzEgNDguMTI2MiAzMC42ODc2QzQ4LjI2NiAzMC42NzIzIDQ4LjQwNzQgMzAuNjg4NCA0OC41NDAxIDMwLjczNDhDNDguNjcyOSAzMC43ODEyIDQ4Ljc5MzYgMzAuODU2NiA0OC44OTM0IDMwLjk1NTdDNDguOTkzMiAzMS4wNTQ4IDQ5LjA2OTUgMzEuMTc0OSA0OS4xMTY5IDMxLjMwNzNDNDkuMTY0MiAzMS40Mzk3IDQ5LjE4MTQgMzEuNTgxMSA0OS4xNjcgMzEuNzIwOUw0OS4wMjc1IDMzLjA3NzNDNDguNzQ2MyAzNS44MTgxIDQ4LjQ2NTIgMzguNTU4NyA0OC4xODQgNDEuMjk5QzQ3Ljg5MDcgNDQuMTc2OSA0Ny41OTU1IDQ3LjA1NDUgNDcuMjk4NCA0OS45MzE5QzQ3LjIxNDYgNTAuNzQyMiA0Ny4xMzA4IDUxLjU1MjQgNDcuMDQ3IDUyLjM2MjRDNDYuOTY2NiA1My4xNiA0Ni45NTUyIDUzLjk4MjcgNDYuODAzOCA1NC43NzA5QzQ2LjU2NDkgNTYuMDEwMyA0NS43MjU4IDU2Ljc3MTUgNDQuNTAxNSA1Ny4wNDk5QzQzLjM3OTggNTcuMzA1MiA0Mi4yMzM5IDU3LjQzOTIgNDEuMDgzNiA1Ny40NDk3QzM5LjgwODMgNTcuNDU2NiAzOC41MzM2IDU3LjQgMzcuMjU4MyA1Ny40MDY5QzM1Ljg5NyA1Ny40MTQ1IDM0LjIyOTUgNTcuMjg4NyAzMy4xNzg2IDU2LjI3NTZDMzIuMjU1MyA1NS4zODU2IDMyLjEyNzcgNTMuOTkyMSAzMi4wMDIgNTIuNzg3MkMzMS44MzQ0IDUxLjE5MiAzMS42NjgyIDQ5LjU5NzEgMzEuNTAzNiA0OC4wMDIzTDMwLjU3OTYgMzkuMTM0NEwyOS45ODE5IDMzLjM5NjZDMjkuOTcxOCAzMy4zMDE3IDI5Ljk2MTggMzMuMjA4IDI5Ljk1MjQgMzMuMTEyNUMyOS44ODA3IDMyLjQyOCAyOS4zOTYxIDMxLjc1OCAyOC42MzI0IDMxLjc5MjZDMjcuOTc4OCAzMS44MjE1IDI3LjIzNTkgMzIuMzc3MSAyNy4zMTI1IDMzLjExMjVMMjcuNzU1NyAzNy4zNjY0TDI4LjY3MiA0Ni4xNjU3QzI4LjkzMzEgNDguNjY1MiAyOS4xOTM1IDUxLjE2NSAyOS40NTMzIDUzLjY2NTNDMjkuNTAzNiA1NC4xNDQyIDI5LjU1MDcgNTQuNjI0NCAyOS42MDM1IDU1LjEwMzRDMjkuODkwOCA1Ny43MjA1IDMxLjg4OTUgNTkuMTMxIDM0LjM2NDYgNTkuNTI4MkMzNS44MTAyIDU5Ljc2MDcgMzcuMjkxIDU5LjgwODUgMzguNzU4IDU5LjgzMjRDNDAuNjM4NiA1OS44NjI2IDQyLjUzOCA1OS45MzQ4IDQ0LjM4NzcgNTkuNTk0MkM0Ny4xMjg3IDU5LjA5MTQgNDkuMTg1MyA1Ny4yNjExIDQ5LjQ3ODggNTQuNDIyQzQ5LjU2MjYgNTMuNjAyNCA0OS42NDY0IDUyLjc4MjYgNDkuNzMwMiA1MS45NjI2QzUwLjAwODggNDkuMjUwNyA1MC4yODcxIDQ2LjUzODYgNTAuNTY0OSA0My44MjYzTDUxLjQ3MzcgMzQuOTY0MUw1MS44OTA0IDMwLjkwMjZDNTEuOTExMiAzMC43MDEyIDUxLjk5NjIgMzAuNTExOCA1Mi4xMzMgMzAuMzYyNUM1Mi4yNjk3IDMwLjIxMzIgNTIuNDUwOSAzMC4xMTE5IDUyLjY0OTcgMzAuMDczNkM1My40MzM1IDI5LjkyMDggNTQuMTgyNyAyOS42NiA1NC43NDAyIDI5LjA2MzVDNTUuNjI3NyAyOC4xMTM4IDU1LjgwNDMgMjYuODc1NiA1NS40OTA2IDI1LjYyNzRaTTI2LjAwNzEgMjYuNTAzNUMyNi4wMTkgMjYuNDk3OSAyNS45OTcgMjYuNjAwMyAyNS45ODc2IDI2LjY0ODFDMjUuOTg1NyAyNi41NzU4IDI1Ljk4OTUgMjYuNTExNyAyNi4wMDcxIDI2LjUwMzVaTTI2LjA4MzEgMjcuMDkxOEMyNi4wODk0IDI3LjA4NzQgMjYuMTA4MyAyNy4xMTI2IDI2LjEyNzggMjcuMTQyOEMyNi4wOTgyIDI3LjExNTEgMjYuMDc5NCAyNy4wOTQ0IDI2LjA4MjUgMjcuMDkxOEgyNi4wODMxWk0yNi4xNTc5IDI3LjE5MDVDMjYuMTg1IDI3LjIzNjQgMjYuMTk5NCAyNy4yNjUzIDI2LjE1NzkgMjcuMTkwNVYyNy4xOTA1Wk0yNi4zMDgyIDI3LjMxMjVIMjYuMzExOUMyNi4zMTE5IDI3LjMxNjkgMjYuMzE4OCAyNy4zMjEzIDI2LjMyMTQgMjcuMzI1N0MyNi4zMTcyIDI3LjMyMDggMjYuMzEyNiAyNy4zMTY0IDI2LjMwNzUgMjcuMzEyNUgyNi4zMDgyWk01Mi42MTMyIDI3LjEzMDJDNTIuMzMxNyAyNy4zOTc5IDUxLjkwNzQgMjcuNTIyNCA1MS40ODgyIDI3LjU4NDZDNDYuNzg2OCAyOC4yODIzIDQyLjAxNjkgMjguNjM1NSAzNy4yNjQgMjguNDc5NkMzMy44NjI0IDI4LjM2MzMgMzAuNDk2NyAyNy45ODU2IDI3LjEyOSAyNy41MDk4QzI2Ljc5OSAyNy40NjMzIDI2LjQ0MTQgMjcuNDAzIDI2LjIxNDUgMjcuMTU5N0MyNS43ODcxIDI2LjcwMDkgMjUuOTk3IDI1Ljc3NyAyNi4xMDgzIDI1LjIyMjZDMjYuMjEwMSAyNC43MTQ4IDI2LjQwNSAyNC4wMzc4IDI3LjAwOSAyMy45NjU2QzI3Ljk1MTggMjMuODU0OSAyOS4wNDY2IDI0LjI1MjggMjkuOTc5NCAyNC4zOTQyQzMxLjEwMjMgMjQuNTY1NiAzMi4yMjk1IDI0LjcwMjggMzMuMzYwOSAyNC44MDU5QzM4LjE4OTIgMjUuMjQ1OSA0My4wOTg2IDI1LjE3NzQgNDcuOTA1NiAyNC41MzM3QzQ4Ljc4MTcgMjQuNDE2IDQ5LjY1NDggMjQuMjc5MiA1MC41MjQ2IDI0LjEyMzNDNTEuMjk5NiAyMy45ODQ0IDUyLjE1ODggMjMuNzIzNiA1Mi42MjcxIDI0LjUyNjJDNTIuOTQ4MiAyNS4wNzMgNTIuOTkxIDI1LjgwNDYgNTIuOTQxMyAyNi40MjI1QzUyLjkyNiAyNi42OTE3IDUyLjgwODQgMjYuOTQ0OCA1Mi42MTI2IDI3LjEzMDJINTIuNjEzMlpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cbjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04MS4xMzAyIDQwLjE5MjlDODAuODU1NiA0MC43MTY5IDgwLjQ3ODEgNDEuMTczMiA3OS45OTc4IDQxLjU2MDRDNzkuNTE3NSA0MS45NDc5IDc4Ljk1NzEgNDIuMjYzMyA3OC4zMTY2IDQyLjUwNjJDNzcuNjc2MSA0Mi43NDk3IDc3LjAzMTUgNDIuOTEzMSA3Ni4zODM1IDQyLjk5NjRDNzUuNzM1MiA0My4wNzk5IDc1LjEwNiA0My4wNzI3IDc0LjQ5NjMgNDIuOTczNUM3My44ODYzIDQyLjg3NDkgNzMuMzY3NCA0Mi42NzM3IDcyLjk0MDggNDIuMzY5NUw3My40MjE0IDM3LjM3NzlDNzMuODYzMyAzNy4yMjYxIDc0LjQxOTcgMzcuMDcwMyA3NS4wOTA5IDM2LjkxMDdDNzUuNzYxOSAzNi43NTEzIDc2LjQ1MiAzNi42MzcxIDc3LjE2MTMgMzYuNTY4OUM3Ny44NzA1IDM2LjUwMDMgNzguNTQxMiAzNi41MDg0IDc5LjE3NDQgMzYuNTkxN0M3OS44MDY4IDM2LjY3NTMgODAuMzA2NSAzNi44NzY1IDgwLjY3MjUgMzcuMTk1OEM4MC44NzA3IDM3LjM3OCA4MS4wMzg3IDM3LjU3NTQgODEuMTc2IDM3Ljc4ODNDODEuMzEzIDM4LjAwMTEgODEuMzk2OSAzOC4yMjE0IDgxLjQyNzYgMzguNDQ5M0M4MS41MDM3IDM5LjA4NzUgODEuNDA0NyAzOS42Njg3IDgxLjEzMDIgNDAuMTkyOVpNNzQuMTUzIDI5LjU2MDJDNzQuNDczNCAyOS4zNjI3IDc0Ljg1ODUgMjkuMTg3NyA3NS4zMDgzIDI5LjAzNTZDNzUuNzU4MSAyOC44ODQxIDc2LjIxOTUgMjguNzc3NCA3Ni42OTIzIDI4LjcxNjdDNzcuMTY0OCAyOC42NTYyIDc3LjYyNjIgMjguNjQ4MSA3OC4wNzYzIDI4LjY5MzhDNzguNTI1OCAyOC43Mzk1IDc4LjkyMjggMjguODY0NyA3OS4yNjU5IDI5LjA2OTdDNzkuNjA4OSAyOS4yNzUxIDc5Ljg2NDMgMjkuNTcxNCA4MC4wMzIgMjkuOTU4NkM4MC4xOTk3IDMwLjM0NjQgODAuMjQ1NiAzMC44MzY1IDgwLjE2OTMgMzEuNDI5QzgwLjEwODMgMzEuOTAwMSA3OS45MjExIDMyLjI5OTEgNzkuNjA4OSAzMi42MjU2Qzc5LjI5NjMgMzIuOTUyNiA3OC45MTQ3IDMzLjIyNTkgNzguNDY1MiAzMy40NDYyQzc4LjAxNTQgMzMuNjY2OCA3Ny41Mzg4IDMzLjg0MTUgNzcuMDM1NiAzMy45NzAyQzc2LjUzMjEgMzQuMDk5NyA3Ni4wNDc3IDM0LjE5NDkgNzUuNTgyOCAzNC4yNTUzQzc1LjExNzYgMzQuMzE2MyA3NC43MTM3IDM0LjM1NDUgNzQuMzcwNiAzNC4zNjkyQzc0LjAyNzMgMzQuMzg0NSA3My44MDIxIDM0LjM5MjEgNzMuNjk1NiAzNC4zOTIxTDc0LjE1MyAyOS41NjAyWk04My42MDA3IDM2Ljk2NzZDODMuMzU2NiAzNi40MzYxIDgzLjAyODcgMzUuOTY4OSA4Mi42MTcyIDM1LjU2NThDODIuMjA1NCAzNS4xNjMzIDgxLjcxNyAzNC44NzA5IDgxLjE1MzEgMzQuNjg4NUM4MS4zOTY5IDM0LjQ5MSA4MS42MzcxIDM0LjE3OTUgODEuODczNyAzMy43NTM5QzgyLjEwOTkgMzMuMzI4OCA4Mi4zMTE5IDMyLjg2NSA4Mi40Nzk2IDMyLjM2MzZDODIuNjQ3NCAzMS44NjE5IDgyLjc2MiAzMS4zNTcgODIuODIyOSAzMC44NDc4QzgyLjg4MzYgMzAuMzM4OSA4Mi44NjA3IDI5LjkwMiA4Mi43NTQ0IDI5LjUzN0M4Mi40OTQ3IDI4LjYyNTYgODIuMDg3IDI3LjkxMTQgODEuNTMwMyAyNy4zOTQ2QzgwLjk3MzQgMjYuODc4MiA4MC4zMjU3IDI2LjUyMTEgNzkuNTg2IDI2LjMyMzNDNzguODQ2MiAyNi4xMjY0IDc4LjAzMDQgMjYuMDg0MiA3Ny4xMzgzIDI2LjE5ODFDNzYuMjQ2MiAyNi4zMTIgNzUuMzM0NyAyNi41MzYxIDc0LjQwNDkgMjYuODcwNEM3NC40MDQ5IDI2Ljc5NDYgNzQuNDEyNCAyNi43MTQ4IDc0LjQyNzggMjYuNjMxMkM3NC40NDI2IDI2LjU0OCA3NC40NTA0IDI2LjQ2MDQgNzQuNDUwNCAyNi4zNjlDNzQuNDUwNCAyNi4xNDExIDc0LjMzNjEgMjUuOTQzOSA3NC4xMDc0IDI1Ljc3NjVDNzMuODc4NyAyNS42MDkzIDczLjYxNTUgMjUuNTEwNyA3My4zMTgzIDI1LjQ4MDFDNzMuMDIwOSAyNS40NSA3Mi43MzEgMjUuNTE0MiA3Mi40NDg5IDI1LjY3MzhDNzIuMTY2NSAyNS44MzM0IDcxLjk3MjEgMjYuMTI2NCA3MS44NjU2IDI2LjU1MTFDNzEuNzQzNCAyNy45MTg5IDcxLjYyMTUgMjkuMzM5OCA3MS40OTk2IDMwLjgxMzRDNzEuMzc3NCAzMi4yODc1IDcxLjI0OCAzMy43NzY3IDcxLjExMDcgMzUuMjgxMkM3MC45NzM1IDM2Ljc4NTUgNzAuODM2MiAzOC4yNzg0IDcwLjY5ODkgMzkuNzU5OEM3MC41NjE2IDQxLjI0MTQgNzAuNDI0NCA0Mi42NjU5IDcwLjI4NzEgNDQuMDMzM0M3MC4zMzMgNDQuNDQzNiA3MC40NDczIDQ0Ljc2MjkgNzAuNjMwNCA0NC45OTA3QzcwLjgxMzMgNDUuMjE4OSA3MS4wMjY4IDQ1LjM1NTYgNzEuMjcwOSA0NS40MDFDNzEuNTE0NyA0NS40NDY3IDcxLjc3MDQgNDUuNDA0NSA3Mi4wMzcxIDQ1LjI3NTVDNzIuMzAzOCA0NS4xNDY5IDcyLjUzNjUgNDQuOTIyMiA3Mi43MzUgNDQuNjAzMkM3My4zNDQ3IDQ0LjkzNzUgNzQuMDMxMSA0NS4xNTQxIDc0Ljc5MzggNDUuMjUzQzc1LjU1NjEgNDUuMzUxNiA3Ni4zMjk4IDQ1LjM1MTYgNzcuMTE1NyA0NS4yNTNDNzcuOTAwNyA0NS4xNTQxIDc4LjY3NDcgNDQuOTY4MiA3OS40Mzc0IDQ0LjY5NDNDODAuMTk5NyA0NC40MjExIDgwLjg5MzYgNDQuMDc5IDgxLjUxOSA0My42NjlDODIuMTQ0MSA0My4yNTg2IDgyLjY3MDMgNDIuNzkxMSA4My4wOTc1IDQyLjI2NzFDODMuNTI0NCA0MS43NDI2IDgzLjgwNjUgNDEuMTc2NyA4My45NDM3IDQwLjU2OTFDODQuMDgxIDM5Ljk0NiA4NC4xMTkgMzkuMzIzMSA4NC4wNTgxIDM4LjdDODMuOTk3MSAzOC4wNzcxIDgzLjg0NDUgMzcuNSA4My42MDA3IDM2Ljk2NzZaXCIgZmlsbD1cIiMwRDBDMjNcIi8+XG48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTA1LjkxNSA0OS4wMDE3QzEwNS44MzIgNDkuNTAzMSAxMDUuNzEzIDUwLjAzMTEgMTA1LjU2MSA1MC41ODZDMTA1LjQwOCA1MS4xNDAzIDEwNS4yMjkgNTEuNjQ1OCAxMDUuMDIzIDUyLjEwMThDMTA0LjgxOCA1Mi41NTc1IDEwNC41ODkgNTIuOTI1NiAxMDQuMzM3IDUzLjIwN0MxMDQuMDg1IDUzLjQ4OCAxMDMuODE1IDUzLjYwNiAxMDMuNTI1IDUzLjU2MDZDMTAzLjI5NiA1My41Mjk3IDEwMy4xNTEgNTMuMzg1NCAxMDMuMDkxIDUzLjEyNzRDMTAzLjAyOSA1Mi44Njg2IDEwMy4wMjkgNTIuNTQ5NyAxMDMuMDkxIDUyLjE3QzEwMy4xNTEgNTEuNzkwMSAxMDMuMjY5IDUxLjM2MDcgMTAzLjQ0NSA1MC44ODIxQzEwMy42MiA1MC40MDM1IDEwMy44MzQgNDkuOTI4NCAxMDQuMDg1IDQ5LjQ1NzdDMTA0LjMzNyA0OC45ODY0IDEwNC42MjMgNDguNTM0NyAxMDQuOTQzIDQ4LjEwMTVDMTA1LjI2NCA0Ny42Njg2IDEwNS41OTkgNDcuMzA3NSAxMDUuOTUgNDcuMDE4OUMxMDYuMDI2IDQ3LjExIDEwNi4wNiA0Ny4zMzc4IDEwNi4wNTMgNDcuNzAyOEMxMDYuMDQ1IDQ4LjA2NzQgMTA1Ljk5OSA0OC41MDA2IDEwNS45MTUgNDkuMDAxN1pNMTEzLjY3IDM5LjEwOTdDMTEzLjQ2NCAzOC44ODE5IDExMy4yMTMgMzguNzUyOSAxMTIuOTE1IDM4LjcyMjNDMTEyLjYxOCAzOC42OTE5IDExMi4zMTcgMzguODU5IDExMi4wMTIgMzkuMjIzN0MxMTEuODEzIDM5LjU4ODMgMTExLjU2MiAzOS45Mzc5IDExMS4yNTcgNDAuMjcyMkMxMTAuOTUyIDQwLjYwNjcgMTEwLjYzNSA0MC45MTAzIDExMC4zMDcgNDEuMTgzOUMxMDkuOTggNDEuNDU3MiAxMDkuNjY3IDQxLjY5MzEgMTA5LjM3IDQxLjg5MDNDMTA5LjA3MiA0Mi4wODgxIDEwOC44NCA0Mi4yMzI0IDEwOC42NzIgNDIuMzIzNUMxMDguNjExIDQxLjgzNzQgMTA4LjU3NiA0MS4zMTMyIDEwOC41NjkgNDAuNzUwN0MxMDguNTYxIDQwLjE4ODYgMTA4LjU3MyAzOS42MTkgMTA4LjYwMyAzOS4wNDE1QzEwOC42NDkgMzguMjIwOSAxMDguNzQ0IDM3LjM5MyAxMDguODg5IDM2LjU1N0MxMDkuMDM0IDM1LjcyMTMgMTA5LjI0NCAzNC45MDA3IDEwOS41MTggMzQuMDk1MUMxMDkuNTE4IDMzLjY3IDEwOS40MTkgMzMuMzI0MiAxMDkuMjIxIDMzLjA1ODJDMTA5LjAyMiAzMi43OTI0IDEwOC43ODIgMzIuNjI1IDEwOC41IDMyLjU1NjdDMTA4LjIxOCAzMi40ODg1IDEwNy45MjkgMzIuNTI2NCAxMDcuNjMxIDMyLjY3MDdDMTA3LjMzNCAzMi44MTUzIDEwNy4wNzggMzMuMDc3NSAxMDYuODY1IDMzLjQ1NjlDMTA2LjY4MiAzMy45NTg2IDEwNi40NzIgMzQuNTIwNyAxMDYuMjM2IDM1LjE0MzZDMTA1Ljk5OSAzNS43NjY3IDEwNS43MzIgMzYuNDAxMiAxMDUuNDM1IDM3LjA0NjlDMTA1LjEzOCAzNy42OTMxIDEwNC44MDYgMzguMzE5NyAxMDQuNDQgMzguOTI3M0MxMDQuMDc0IDM5LjUzNTQgMTAzLjY3NCA0MC4wNzUgMTAzLjIzOSA0MC41NDU3QzEwMi44MDQgNDEuMDE2OCAxMDIuMzMxIDQxLjM4NTQgMTAxLjgyMSA0MS42NTEyQzEwMS4zMSA0MS45MTcyIDEwMC43NTcgNDIuMDM0OSAxMDAuMTYyIDQyLjAwNDVDOTkuODg3NiA0MS45Mjg1IDk5LjY4OTMgNDEuNzIzNSA5OS41Njc1IDQxLjM4ODlDOTkuNDQ1MyA0MS4wNTQ5IDk5LjM3MyA0MC42MzY4IDk5LjM1MDQgNDAuMTM1NEM5OS4zMjc1IDM5LjYzNCA5OS4zNTA0IDM5LjA4MzEgOTkuNDE4OSAzOC40ODI4Qzk5LjQ4NzcgMzcuODgyOCA5OS41NzkxIDM3LjI4NjMgOTkuNjkzNCAzNi42OTM4Qzk5LjgwNzggMzYuMTAxIDk5LjkzMzcgMzUuNTM4OSAxMDAuMDcxIDM1LjAwNzFDMTAwLjIwOCAzNC40NzUzIDEwMC4zMzcgMzQuMDI2OCAxMDAuNDYgMzMuNjYyMkMxMDAuNjQzIDMzLjIyMTggMTAwLjY0MyAzMi44NTI5IDEwMC40NiAzMi41NTY3QzEwMC4yNzcgMzIuMjYwNCAxMDAuMDI1IDMyLjA2MzEgOTkuNzA1IDMxLjk2NEM5OS4zODQ2IDMxLjg2NTQgOTkuMDQ4OSAzMS44Njk0IDk4LjY5ODMgMzEuOTc1NUM5OC4zNDc0IDMyLjA4MTkgOTguMDk1OCAzMi4zMTczIDk3Ljk0MzUgMzIuNjgyQzk3LjY4NCAzMy4zMDU0IDk3LjQ0NzUgMzQuMDA0IDk3LjIzNDIgMzQuNzc5Qzk3LjAyMDYgMzUuNTUzOSA5Ni44NDkxIDM2LjM1NTggOTYuNzE5NyAzNy4xODM2Qzk2LjU4OTYgMzguMDEyMSA5Ni41MTcxIDM4LjgzMjcgOTYuNTAyIDM5LjY0NTZDOTYuNTAxMSAzOS42OTg1IDk2LjUwMzcgMzkuNzQ4OCA5Ni41MDM0IDM5LjgwMTRDOTYuMTcwOSA0MC42ODQ4IDk1Ljg1NCA0MS4zNTI1IDk1LjU1MyA0MS43OTkyQzk1LjE2NDEgNDIuMzc3IDk0LjcyNTMgNDIuNjI3NyA5NC4yMzc1IDQyLjU1MTNDOTQuMDIzNiA0Mi40NjAzIDkzLjg4MzIgNDIuMjQ3NyA5My44MTQ3IDQxLjkxMzJDOTMuNzQ1MyA0MS41NzkyIDkzLjcyMjcgNDEuMTY4OSA5My43NDUzIDQwLjY4MjJDOTMuNzY4OCA0MC4xOTY0IDkzLjgyNiAzOS42NDU2IDkzLjkxNzEgMzkuMDI5OUM5NC4wMDkxIDM4LjQxNDYgOTQuMTIyOSAzNy43NzY0IDk0LjI2MDEgMzcuMTE1NEM5NC4zOTc3IDM2LjQ1NDEgOTQuNTQyNSAzNS43ODk5IDk0LjY5NDkgMzUuMTIxQzk0Ljg0NzIgMzQuNDUyNSA5NC45ODQ1IDMzLjgyMTggOTUuMTA3IDMzLjIyOTFDOTUuMDkxNiAzMi42OTczIDk0LjkzNTIgMzIuMjkxIDk0LjYzNzcgMzIuMDA5N0M5NC4zNDA1IDMxLjcyODkgOTMuOTI0NyAzMS42MTg3IDkzLjM5MTMgMzEuNjc5MUM5My4wMjUzIDMxLjgzMTIgOTIuNzU0MiAzMi4wMjkgOTIuNTc5IDMyLjI3MTlDOTIuNDAzNCAzMi41MTQ4IDkyLjI2MjMgMzIuODI2NSA5Mi4xNTU4IDMzLjIwNjJDOTIuMDk0NiAzMy40MDQgOTIuMDAzMiAzMy43OTkgOTEuODgxMyAzNC4zOTE4QzkxLjc1OTEgMzQuOTg0IDkxLjYwMyAzNS42NjQ0IDkxLjQxMjMgMzYuNDMxNUM5MS4yMjE3IDM3LjE5OTIgOTAuOTk2NyAzOC4wMDA1IDkwLjczNzYgMzguODM2MkM5MC40NzgxIDM5LjY3MTkgOTAuMTg4NSA0MC40MjgzIDg5Ljg2ODQgNDEuMTA0MUM4OS41NDggNDEuNzgwMSA4OS4xOTcyIDQyLjMyMzUgODguODE2MSA0Mi43MzM4Qzg4LjQzNDggNDMuMTQzOCA4OC4wMjMgNDMuMzExMyA4Ny41ODA3IDQzLjIzNTJDODcuMzM2NiA0My4xODk1IDg3LjE4MDUgNDIuOTM4OCA4Ny4xMTIgNDIuNDgzMUM4Ny4wNDMyIDQyLjAyNzEgODcuMDMxOSA0MS40NjUzIDg3LjA3NzUgNDAuNzk2NEM4Ny4xMjMzIDQwLjEyNzkgODcuMjE0OCAzOS4zOTQ2IDg3LjM1MiAzOC41OTcxQzg3LjQ4OTMgMzcuNzk5MyA4Ny42MyAzNy4wNDM0IDg3Ljc3NTIgMzYuMzI4OUM4Ny45MiAzNS42MTQ5IDg4LjA1MzUgMzQuOTg0IDg4LjE3NTYgMzQuNDM3MkM4OC4yOTc1IDMzLjg5MDEgODguMzgxNCAzMy41MjU0IDg4LjQyNzIgMzMuMzQzM0M4OC40MjcyIDMyLjkwMjYgODguMzI3NyAzMi41NDk1IDg4LjEyOTggMzIuMjgzMkM4Ny45MzEzIDMyLjAxNzggODcuNjkxMyAzMS44NTAzIDg3LjQwOTIgMzEuNzgxOEM4Ny4xMjY4IDMxLjcxMzYgODYuODM3MiAzMS43NTE0IDg2LjU0IDMxLjg5NTdDODYuMjQyNiAzMi4wNDAzIDg1Ljk4NzIgMzIuMzAyNiA4NS43NzM2IDMyLjY4MkM4NS42OTczIDMzLjA5MjMgODUuNTk4IDMzLjU2NzQgODUuNDc2MSAzNC4xMDY3Qzg1LjM1MzkgMzQuNjQ1OSA4NS4yMzYxIDM1LjIwMDYgODUuMTIxOCAzNS43NzA1Qzg1LjAwNzQgMzYuMzQwNCA4NC45MDAzIDM2Ljg5ODggODQuODAxNCAzNy40NDU5Qzg0LjcwMjEgMzcuOTkzIDg0LjYyOTkgMzguNDcxNiA4NC41ODQgMzguODgxOUM4NC41NTM2IDM5LjIwMDggODQuNTE5IDM5LjU5MjMgODQuNDgxMyA0MC4wNTU2Qzg0LjQ0MyA0MC41MTk0IDg0LjQyMzggNDEuMDA5MiA4NC40MjM4IDQxLjUyNTdDODQuNDIzOCA0Mi4wNDI3IDg0LjQ2MTggNDIuNTU1NCA4NC41Mzg1IDQzLjA2NDNDODQuNjE0NSA0My41NzM1IDg0Ljc1MTggNDQuMDQwOCA4NC45NSA0NC40NjU5Qzg1LjE0ODIgNDQuODkxNSA4NS40MjY1IDQ1LjI0MDggODUuNzg1MiA0NS41MTQ0Qzg2LjE0MzMgNDUuNzg3OSA4Ni41OTcyIDQ1LjkzOTcgODcuMTQ2MyA0NS45NzA0Qzg3LjcxMDEgNDYuMDAwNSA4OC4yMDIgNDUuOTU5MSA4OC42MjE3IDQ1Ljg0NDlDODkuMDQxIDQ1LjczMSA4OS40MjIxIDQ1LjU1MjMgODkuNzY1NCA0NS4zMDkxQzkwLjEwODQgNDUuMDY2NSA5MC40MjEgNDQuNzc3NiA5MC43MDMzIDQ0LjQ0M0M5MC45ODUxIDQ0LjEwOTEgOTEuMjYzNyA0My43NDQ0IDkxLjUzODMgNDMuMzQ5MUM5MS43OTc0IDQzLjkyNjkgOTIuMTMyOSA0NC4zNzQ4IDkyLjU0NDcgNDQuNjk0QzkyLjk1NjUgNDUuMDEzIDkzLjM5MTMgNDUuMjAzMiA5My44NDg2IDQ1LjI2MzdDOTQuMzA2IDQ1LjMyNDEgOTQuNzcxNSA0NS4yNjAyIDk1LjI0NDIgNDUuMDY5OUM5NS43MTY3IDQ0Ljg4MDMgOTYuMTQzNiA0NC41NTczIDk2LjUyNTIgNDQuMTAxMkM5Ni43NzYyIDQzLjgyMTYgOTcuMDEzMSA0My41MDM4IDk3LjIzNTQgNDMuMTUyNUM5Ny4zMjk3IDQzLjMxNyA5Ny40MzAxIDQzLjQ3NTggOTcuNTQzIDQzLjYyMjRDOTcuOTE2OCA0NC4xMDkxIDk4LjQyNCA0NC40NDMgOTkuMDY0NSA0NC42MjU1Qzk5Ljc1MDYgNDQuODA4IDEwMC40MjEgNDQuODM4NiAxMDEuMDc3IDQ0LjcxNjlDMTAxLjczMyA0NC41OTU0IDEwMi4zNTggNDQuMzc0OCAxMDIuOTUzIDQ0LjA1NTlDMTAzLjU0OCA0My43MzY2IDEwNC4xMDEgNDMuMzUzMiAxMDQuNjEyIDQyLjkwNDdDMTA1LjEyMiA0Mi40NTY1IDEwNS41NjggNDEuOTg5NSAxMDUuOTUgNDEuNTAyOEMxMDUuOTM0IDQxLjg1MjQgMTA1LjkyNyA0Mi4xODMyIDEwNS45MjcgNDIuNDk0NEMxMDUuOTI3IDQyLjgwNjEgMTA1LjkxOSA0My4xNDM4IDEwNS45MDQgNDMuNTA4OEMxMDUuMTQxIDQ0LjA0MDggMTA0LjQyMSA0NC42NzkgMTAzLjc0MiA0NS40MjMzQzEwMy4wNjQgNDYuMTY3NiAxMDIuNDY5IDQ2Ljk2MTYgMTAxLjk1OCA0Ny44MDUxQzEwMS40NDcgNDguNjQ4MyAxMDEuMDQ3IDQ5LjUwMzEgMTAwLjc1NyA1MC4zNjkxQzEwMC40NjcgNTEuMjM1NyAxMDAuMzI2IDUyLjA0NDUgMTAwLjMzNCA1Mi43OTY5QzEwMC4zNDEgNTMuNTQ5IDEwMC41MjEgNTQuMjA2IDEwMC44NzEgNTQuNzY4MUMxMDEuMjIyIDU1LjMzMDYgMTAxLjc5NCA1NS43MzMxIDEwMi41ODcgNTUuOTc2M0MxMDMuNDExIDU2LjIzNDggMTA0LjEzNSA1Ni4yNDIgMTA0Ljc2IDU1Ljk5OTFDMTA1LjM4NiA1NS43NTU5IDEwNS45MzEgNTUuMzUzMSAxMDYuMzk2IDU0Ljc5MUMxMDYuODYxIDU0LjIyODkgMTA3LjI0MiA1My41NDkgMTA3LjU0IDUyLjc1MTJDMTA3LjgzNyA1MS45NTM0IDEwOC4wNzMgNTEuMTIxNSAxMDguMjQ5IDUwLjI1NTVDMTA4LjQyNCA0OS4zODk0IDEwOC41MzUgNDguNTM3OSAxMDguNTggNDcuNzAyOEMxMDguNjI2IDQ2Ljg2NjggMTA4LjYyNiA0Ni4xMjE5IDEwOC41OCA0NS40Njg3QzEwOS44OTIgNDQuOTIxOSAxMTAuOTY3IDQ0LjIzMDUgMTExLjgwNiA0My4zOTQ1QzExMi42NDUgNDIuNTU5NCAxMTMuMzM4IDQxLjY3NzggMTEzLjg4NyA0MC43NTA3QzExNC4wNTUgNDAuNTIyOSAxMTQuMTEyIDQwLjI0OTMgMTE0LjA1OSAzOS45MzA0QzExNC4wMDYgMzkuNjExMSAxMTMuODc2IDM5LjMzNzYgMTEzLjY3IDM5LjEwOTdaXCIgZmlsbD1cIiMwRDBDMjNcIi8+XG48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTQyLjUzIDM3LjY1MTVDMTQyLjU3NSAzNy4zMDIyIDE0Mi42NDQgMzYuOTMzNSAxNDIuNzM1IDM2LjU0NkMxNDIuODI3IDM2LjE1ODUgMTQyLjk0MSAzNS43ODIzIDE0My4wNzkgMzUuNDE3N0MxNDMuMjE2IDM1LjA1MzEgMTQzLjM3NiAzNC43Mzc5IDE0My41NTkgMzQuNDcxOEMxNDMuNzQyIDM0LjIwNjEgMTQzLjkzNyAzNC4wMTYxIDE0NC4xNDIgMzMuOTAxOUMxNDQuMzQ4IDMzLjc4ODMgMTQ0LjU1OCAzMy43OTk1IDE0NC43NzEgMzMuOTM2QzE0NSAzNC4wNzMxIDE0NS4xNDEgMzQuMzYxNyAxNDUuMTk1IDM0LjgwMjFDMTQ1LjI0OCAzNS4yNDMzIDE0NS4xOTUgMzUuNzE0MSAxNDUuMDM0IDM2LjIxNTVDMTQ0Ljg3NCAzNi43MTcyIDE0NC41ODggMzcuMTg3OSAxNDQuMTc3IDM3LjYyODZDMTQzLjc2NSAzOC4wNjk2IDE0My4yMDggMzguMzU3OSAxNDIuNTA3IDM4LjQ5NDdDMTQyLjQ3NiAzOC4yODI0IDE0Mi40ODQgMzguMDAxMSAxNDIuNTMgMzcuNjUxNVpNMTUwLjQ1NiAzOC41ODU3QzE1MC4yMDQgMzguNTEwMyAxNDkuOTY0IDM4LjUwMjUgMTQ5LjczNSAzOC41NjMyQzE0OS41MDYgMzguNjIzOSAxNDkuMzYxIDM4Ljc4MzUgMTQ5LjMwMSAzOS4wNDJDMTQ5LjE3OCAzOS41MjgxIDE0OC45ODQgNDAuMDI1OCAxNDguNzE3IDQwLjUzNDdDMTQ4LjQ1IDQxLjA0MzkgMTQ4LjEyMiA0MS41MjYyIDE0Ny43MzQgNDEuOTgyMkMxNDcuMzQ1IDQyLjQzOCAxNDYuOTA2IDQyLjg0MDggMTQ2LjQxOCA0My4xOTAxQzE0NS45MyA0My41Mzk3IDE0NS40MTkgNDMuNzkwNCAxNDQuODg2IDQzLjk0MjJDMTQ0LjM1MSA0NC4xMDk2IDE0My45MSA0NC4xMjg0IDE0My41NTkgNDMuOTk5MUMxNDMuMjA4IDQzLjg3MDUgMTQyLjkzIDQzLjY0OTggMTQyLjcyNCA0My4zMzg0QzE0Mi41MTggNDMuMDI3IDE0Mi4zNjkgNDIuNjUwOCAxNDIuMjc4IDQyLjIxMDFDMTQyLjE4NiA0MS43Njk0IDE0Mi4xMzMgNDEuMzEzNyAxNDIuMTE4IDQwLjg0MjRDMTQyLjk4NyA0MC45MDM0IDE0My43NjEgNDAuNzQ3OCAxNDQuNDQgNDAuMzc1MUMxNDUuMTE4IDQwLjAwMzIgMTQ1LjY5NCAzOS41MDkgMTQ2LjE2NyAzOC44OTM3QzE0Ni42MzkgMzguMjc4NCAxNDYuOTk4IDM3LjU4NyAxNDcuMjQyIDM2LjgxOTVDMTQ3LjQ4NSAzNi4wNTI0IDE0Ny42MjMgMzUuMjg4NyAxNDcuNjUzIDM0LjUyODhDMTQ3LjY2OSAzMy44MTQ2IDE0Ny41NjIgMzMuMjEwOCAxNDcuMzMzIDMyLjcxNjlDMTQ3LjEwNSAzMi4yMjMzIDE0Ni43OTYgMzEuODM5IDE0Ni40MDcgMzEuNTY1OEMxNDYuMDE4IDMxLjI5MjIgMTQ1LjU3MiAzMS4xMzI2IDE0NS4wNjkgMzEuMDg3MkMxNDQuNTY2IDMxLjA0MTUgMTQ0LjA1NCAzMS4xMSAxNDMuNTM2IDMxLjI5MjJDMTQyLjkxIDMxLjUwNSAxNDIuMzgxIDMxLjg1MDYgMTQxLjk0NiAzMi4zMjk0QzE0MS41MTIgMzIuODA4IDE0MS4xNDkgMzMuMzYyOSAxNDAuODYgMzMuOTkzM0MxNDAuNTcgMzQuNjIzOSAxNDAuMzQxIDM1LjMwMzggMTQwLjE3MyAzNi4wMzNDMTQwLjAwNSAzNi43NjI2IDEzOS44ODMgMzcuNDgwNiAxMzkuODA3IDM4LjE4NzNDMTM5LjczOSAzOC44MjE0IDEzOS43MDIgMzkuNDI3OCAxMzkuNjg5IDQwLjAxM0MxMzkuNjU3IDQwLjA4NzQgMTM5LjYyNSA0MC4xNTg4IDEzOS41OSA0MC4yMzgzQzEzOS4zNTQgNDAuNzc4MiAxMzkuMDc5IDQxLjMwNjIgMTM4Ljc2NiA0MS44MjI2QzEzOC40NTQgNDIuMzM5NCAxMzguMTA3IDQyLjc3MjUgMTM3LjcyNiA0My4xMjE4QzEzNy4zNDQgNDMuNDcxNCAxMzYuOTQ4IDQzLjU5MjkgMTM2LjUzNiA0My40ODY1QzEzNi4yOTIgNDMuNDI2IDEzNi4xNTkgNDMuMTQ0NCAxMzYuMTM2IDQyLjY0MzNDMTM2LjExMyA0Mi4xNDE2IDEzNi4xMzkgNDEuNTE4NyAxMzYuMjE2IDQwLjc3NDFDMTM2LjI5MiA0MC4wMjk4IDEzNi4zOCAzOS4yMjM5IDEzNi40NzkgMzguMzU3OUMxMzYuNTc4IDM3LjQ5MTggMTM2LjYyOCAzNi42NjQgMTM2LjYyOCAzNS44NzM3QzEzNi42MjggMzUuMTg5OCAxMzYuNDk4IDM0LjUzMjkgMTM2LjIzOSAzMy45MDE5QzEzNS45NzkgMzMuMjcxOCAxMzUuNjI1IDMyLjc0NzMgMTM1LjE3NSAzMi4zMjk0QzEzNC43MjUgMzEuOTExMyAxMzQuMjAzIDMxLjYzNCAxMzMuNjA4IDMxLjQ5NzVDMTMzLjAxMyAzMS4zNjA1IDEzMi4zNzMgMzEuNDUxOCAxMzEuNjg3IDMxLjc3MDhDMTMxIDMyLjA5IDEzMC40NTUgMzIuNTM4MiAxMzAuMDUxIDMzLjExNTdDMTI5LjY0NyAzMy42OTM0IDEyOS4yNzcgMzQuMzAwOSAxMjguOTQyIDM0LjkzOTFDMTI4LjgxOSAzNC40NTI4IDEyOC42NDEgMzQuMDAxMSAxMjguNDA0IDMzLjU4M0MxMjguMTY3IDMzLjE2NTEgMTI3Ljg3OCAzMi44MDA1IDEyNy41MzUgMzIuNDg4OEMxMjcuMTkxIDMyLjE3NzYgMTI2LjgwNiAzMS45MzQ0IDEyNi4zOCAzMS43NTk1QzEyNS45NTMgMzEuNTg1MSAxMjUuNTAyIDMxLjQ5NzUgMTI1LjAzIDMxLjQ5NzVDMTI0LjU3MiAzMS40OTc1IDEyNC4xNDkgMzEuNTg1MSAxMjMuNzYgMzEuNzU5NUMxMjMuMzcxIDMxLjkzNDQgMTIzLjAxNyAzMi4xNTgzIDEyMi42OTYgMzIuNDMxOEMxMjIuMzc2IDMyLjcwNTYgMTIyLjA4NyAzMy4wMTMgMTIxLjgyNyAzMy4zNTUxQzEyMS41NjggMzMuNjk2OSAxMjEuMzM5IDM0LjAzNTIgMTIxLjE0MSAzNC4zNjkyQzEyMS4xMSAzMy45NzQyIDEyMS4wNzYgMzMuNjI4NiAxMjEuMDM4IDMzLjMzMkMxMjEgMzMuMDM1OSAxMjAuOTMxIDMyLjc4NTIgMTIwLjgzMiAzMi41ODAxQzEyMC43MzMgMzIuMzc0OCAxMjAuNTkyIDMyLjIxOTMgMTIwLjQwOSAzMi4xMTI5QzEyMC4yMjYgMzIuMDA2NyAxMTkuOTY3IDMxLjk1MzIgMTE5LjYzMiAzMS45NTMyQzExOS40NjQgMzEuOTUzMiAxMTkuMjk2IDMxLjk4NzQgMTE5LjEyOCAzMi4wNTU2QzExOC45NiAzMi4xMjQxIDExOC44MTEgMzIuMjE5MyAxMTguNjgyIDMyLjM0MDdDMTE4LjU1MiAzMi40NjI3IDExOC40NTMgMzIuNjEwNSAxMTguMzg1IDMyLjc4NTJDMTE4LjMxNiAzMi45NTk4IDExOC4yOTcgMzMuMTYxNCAxMTguMzI3IDMzLjM4OTJDMTE4LjM0MiAzMy41NTY2IDExOC4zODUgMzMuNzU3NiAxMTguNDUzIDMzLjk5MzNDMTE4LjUyMiAzNC4yMjg5IDExOC41ODcgMzQuNTM2OSAxMTguNjQ4IDM0LjkxNjNDMTE4LjcwOCAzNS4yOTYyIDExOC43NTggMzUuNzU2IDExOC43OTYgMzYuMjk1M0MxMTguODM0IDM2LjgzNDkgMTE4Ljg0NiAzNy40OTU5IDExOC44MzEgMzguMjc4NEMxMTguODE1IDM5LjA2MTEgMTE4Ljc1OCAzOS45NzYzIDExOC42NTkgNDEuMDI0OEMxMTguNTYgNDIuMDczMyAxMTguNDAzIDQzLjI4OSAxMTguMTkgNDQuNjcxNEMxMTguMTYgNDQuOTkwNyAxMTguMjgyIDQ1LjI0OTIgMTE4LjU1NiA0NS40NDY3QzExOC44MzEgNDUuNjQzOSAxMTkuMTQzIDQ1Ljc1NzggMTE5LjQ5NCA0NS43ODg1QzExOS44NDUgNDUuODE4OCAxMjAuMTc3IDQ1Ljc1NzggMTIwLjQ4OSA0NS42MDYzQzEyMC44MDIgNDUuNDUzOSAxMjAuOTgxIDQ1LjE4ODIgMTIxLjAyNyA0NC44MDg1QzEyMS4wNzIgNDQuMDk0MyAxMjEuMTYgNDMuMzM0NyAxMjEuMjkgNDIuNTI5QzEyMS40MTkgNDEuNzI0IDEyMS41NzkgNDAuOTI2MiAxMjEuNzcgNDAuMTM1OUMxMjEuOTYxIDM5LjM0NiAxMjIuMTc4IDM4LjU5MzggMTIyLjQyMiAzNy44NzkzQzEyMi42NjYgMzcuMTY1MSAxMjIuOTM3IDM2LjUzNDcgMTIzLjIzNCAzNS45ODc2QzEyMy41MzIgMzUuNDQwNSAxMjMuODQgMzUuMDAzOSAxMjQuMTYxIDM0LjY3NzFDMTI0LjQ4MSAzNC4zNTA0IDEyNC44MTYgMzQuMTg3IDEyNS4xNjcgMzQuMTg3QzEyNS41OTQgMzQuMTg3IDEyNS45MjYgMzQuMzgwNSAxMjYuMTYyIDM0Ljc2NzlDMTI2LjM5OCAzNS4xNTU3IDEyNi41NjYgMzUuNjUzNiAxMjYuNjY2IDM2LjI2MDlDMTI2Ljc2NSAzNi44NjkgMTI2LjgxIDM3LjUzNDEgMTI2LjgwMyAzOC4yNTU1QzEyNi43OTUgMzguOTc3MyAxMjYuNzY1IDM5LjY3MjQgMTI2LjcxMSA0MC4zNDFDMTI2LjY1OCA0MS4wMDk4IDEyNi41OTcgNDEuNjA2IDEyNi41MjggNDIuMTMwM0MxMjYuNDYgNDIuNjU0NSAxMjYuNDEgNDMuMDE1NyAxMjYuMzggNDMuMjEyOUMxMjYuMzggNDMuNTYyNSAxMjYuNTEzIDQzLjgzOTUgMTI2Ljc4IDQ0LjA0NDhDMTI3LjA0NiA0NC4yNDk4IDEyNy4zNDQgNDQuMzcxNiAxMjcuNjcyIDQ0LjQwOTVDMTI4IDQ0LjQ0NzYgMTI4LjMwOSA0NC4zODY2IDEyOC41OTggNDQuMjI3QzEyOC44ODggNDQuMDY3NCAxMjkuMDU2IDQzLjc5ODIgMTI5LjEwMiA0My40MTc5QzEyOS4yNTQgNDIuMzI0IDEyOS40NjQgNDEuMjI2NCAxMjkuNzMxIDQwLjEyNDdDMTI5Ljk5NyAzOS4wMjMgMTMwLjMwMyAzOC4wMzU1IDEzMC42NDYgMzcuMTYxNkMxMzAuOTg5IDM2LjI4NzggMTMxLjM3IDM1LjU3MzUgMTMxLjc5IDM1LjAxODlDMTMyLjIwOSAzNC40NjQ2IDEzMi42NTUgMzQuMTg3IDEzMy4xMjggMzQuMTg3QzEzMy4zNzEgMzQuMTg3IDEzMy41NTkgMzQuMzU0NCAxMzMuNjg4IDM0LjY4ODRDMTMzLjgxOCAzNS4wMjI3IDEzMy44ODMgMzUuNDc4NCAxMzMuODgzIDM2LjA1NTlDMTMzLjg4MyAzNi40ODE1IDEzMy44NDggMzYuOTE4NCAxMzMuNzggMzcuMzY2NkMxMzMuNzExIDM3LjgxNDggMTMzLjYzMSAzOC4yNzg0IDEzMy41NCAzOC43NTY5QzEzMy40NDggMzkuMjM1OCAxMzMuMzY4IDM5LjcyNTYgMTMzLjI5OSA0MC4yMjdDMTMzLjIzMSA0MC43Mjg3IDEzMy4xOTYgNDEuMjUyNyAxMzMuMTk2IDQxLjc5OThDMTMzLjE5NiA0Mi4xNzk3IDEzMy4yMzUgNDIuNjIwNCAxMzMuMzExIDQzLjEyMThDMTMzLjM4NyA0My42MjI5IDEzMy41MzIgNDQuMDk4MyAxMzMuNzQ1IDQ0LjU0NjJDMTMzLjk1OSA0NC45OTQ3IDEzNC4yNTIgNDUuMzc0NCAxMzQuNjI2IDQ1LjY4NThDMTM1IDQ1Ljk5NzMgMTM1LjQ3NiA0Ni4xNTMxIDEzNi4wNTYgNDYuMTUzMUMxMzYuOTI1IDQ2LjE1MzEgMTM3LjY5NSA0NS45NjY5IDEzOC4zNjYgNDUuNTk0N0MxMzkuMDM3IDQ1LjIyMjYgMTM5LjYxMyA0NC43MzY1IDE0MC4wOTMgNDQuMTM2MkMxNDAuMTE4IDQ0LjEwNDcgMTQwLjE0MSA0NC4wNzExIDE0MC4xNjUgNDQuMDM5OUMxNDAuMjAyIDQ0LjEyODcgMTQwLjIzNSA0NC4yMjI3IDE0MC4yNzYgNDQuMzA3MUMxNDAuNjA0IDQ0Ljk3NTYgMTQxLjA1IDQ1LjQ5MjEgMTQxLjYxNSA0NS44NTdDMTQyLjE3OCA0Ni4yMjE2IDE0Mi44NDIgNDYuNDIyOSAxNDMuNjA1IDQ2LjQ2MTFDMTQ0LjM2NyA0Ni40OTg3IDE0NS4xOTggNDYuMzU4MSAxNDYuMDk4IDQ2LjAzOTJDMTQ2Ljc2OSA0NS43OTYgMTQ3LjM1MiA0NS40OTIxIDE0Ny44NDggNDUuMTI3NUMxNDguMzQzIDQ0Ljc2MjggMTQ4Ljc4OSA0NC4zMTg0IDE0OS4xODYgNDMuNzk0MUMxNDkuNTgzIDQzLjI2OTkgMTQ5Ljk0NSA0Mi42NjU4IDE1MC4yNzMgNDEuOTgyMkMxNTAuNjAxIDQxLjI5ODEgMTUwLjkzMiA0MC41MTU5IDE1MS4yNjggMzkuNjM0MkMxNTEuMzI5IDM5LjM5MTYgMTUxLjI3MiAzOS4xNzUxIDE1MS4wOTcgMzguOTg0OEMxNTAuOTIxIDM4Ljc5NTEgMTUwLjcwOCAzOC42NjIxIDE1MC40NTYgMzguNTg1N1pcIiBmaWxsPVwiIzBEMEMyM1wiLz5cbjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNjIuODg3IDM2LjA0MzRDMTYyLjgxIDM2LjQ5MTggMTYyLjcwNyAzNi45ODYgMTYyLjU3OCAzNy41MjVDMTYyLjQ0OCAzOC4wNjQ2IDE2Mi4yODQgMzguNjIzIDE2Mi4wODYgMzkuMjAwNEMxNjEuODg4IDM5Ljc3NzkgMTYxLjY0NCA0MC4yOTg0IDE2MS4zNTQgNDAuNzYxNkMxNjEuMDY0IDQxLjIyNTQgMTYwLjczMyA0MS41OTM1IDE2MC4zNTkgNDEuODY3MUMxNTkuOTg1IDQyLjE0MDYgMTU5LjU1NSA0Mi4yNTQ2IDE1OS4wNjYgNDIuMjA4OUMxNTguODIyIDQyLjE3ODggMTU4LjYzNSA0Mi4wMTE3IDE1OC41MDYgNDEuNzA3NUMxNTguMzc2IDQxLjQwMzggMTU4LjMwOCA0MS4wMTYxIDE1OC4zIDQwLjU0NUMxNTguMjkyIDQwLjA3NDMgMTU4LjMzNCAzOS41NTc1IDE1OC40MjYgMzguOTk1MUMxNTguNTE3IDM4LjQzMzMgMTU4LjY1OCAzNy44ODIxIDE1OC44NDkgMzcuMzQyNkMxNTkuMDQgMzYuODAzNiAxNTkuMjcyIDM2LjMwNTYgMTU5LjU0NyAzNS44NDk2QzE1OS44MjEgMzUuMzkzOSAxNjAuMTM4IDM1LjA0MDUgMTYwLjQ5NiAzNC43ODk4QzE2MC44NTQgMzQuNTM5MSAxNjEuMjQ3IDM0LjQyMTcgMTYxLjY3NCAzNC40MzY1QzE2Mi4xMDEgMzQuNDUxOCAxNjIuNTU5IDM0LjY2NDMgMTYzLjA0NyAzNS4wNzQ3QzE2My4wMTYgMzUuMjcyNSAxNjIuOTYzIDM1LjU5NTQgMTYyLjg4NyAzNi4wNDM0Wk0xNzEuMDE5IDM3Ljc4N0MxNzAuNzgyIDM3LjY2NTYgMTcwLjUzOCAzNy42MzkyIDE3MC4yODcgMzcuNzA3NUMxNzAuMDM1IDM3Ljc3NTcgMTY5Ljg1NiAzOC4wMDc2IDE2OS43NDkgMzguNDAyNkMxNjkuNjg4IDM4LjgyODMgMTY5LjU1MSAzOS4zMjk0IDE2OS4zMzggMzkuOTA2OUMxNjkuMTI0IDQwLjQ4NDMgMTY4Ljg2MSA0MS4wMzE3IDE2OC41NDggNDEuNTQ3OEMxNjguMjM2IDQyLjA2NDYgMTY3Ljg3NyA0Mi40OTQgMTY3LjQ3MyA0Mi44MzU4QzE2Ny4wNjkgNDMuMTc3OCAxNjYuNjM4IDQzLjMzMzcgMTY2LjE4MSA0My4zMDI4QzE2NS43OTkgNDMuMjcyNyAxNjUuNTMyIDQzLjA3OSAxNjUuMzggNDIuNzIxOEMxNjUuMjI3IDQyLjM2NDcgMTY1LjE0NyA0MS45MTY4IDE2NS4xNCA0MS4zNzY5QzE2NS4xMzIgNDAuODM4IDE2NS4xODYgNDAuMjMwMSAxNjUuMyAzOS41NTM4QzE2NS40MTQgMzguODc3NyAxNjUuNTUyIDM4LjIwNTQgMTY1LjcxMiAzNy41MzYzQzE2NS44NzIgMzYuODY4IDE2Ni4wMzYgMzYuMjI1OCAxNjYuMjA0IDM1LjYxMDVDMTY2LjM3MSAzNC45OTUxIDE2Ni41MDggMzQuNDc0NyAxNjYuNjE2IDM0LjA0OTNDMTY2LjczOCAzMy42NjkzIDE2Ni42OTkgMzMuMzQ2NiAxNjYuNTAxIDMzLjA4MDNDMTY2LjMwMyAzMi44MTQ5IDE2Ni4wNTUgMzIuNjI0NiAxNjUuNzU4IDMyLjUxMDdDMTY1LjQ2IDMyLjM5NjcgMTY1LjE1OSAzMi4zNjY0IDE2NC44NTQgMzIuNDE5NkMxNjQuNTQ5IDMyLjQ3MjggMTY0LjM1MSAzMi42MzYyIDE2NC4yNTkgMzIuOTA5NEMxNjMuMzU5IDMyLjEzNDUgMTYyLjQ5NCAzMS43MTY2IDE2MS42NjMgMzEuNjU1OUMxNjAuODMxIDMxLjU5NTIgMTYwLjA2NSAzMS43Nzc2IDE1OS4zNjQgMzIuMjAzQzE1OC42NjIgMzIuNjI4NCAxNTguMDQxIDMzLjI0MzcgMTU3LjUgMzQuMDQ5M0MxNTYuOTU4IDM0Ljg1NDkgMTU2LjUyIDM1LjczMjIgMTU2LjE4NCAzNi42ODE4QzE1NS44NDkgMzcuNjMxNCAxNTUuNjM5IDM4LjYwMDQgMTU1LjU1NSAzOS41ODc5QzE1NS40NzEgNDAuNTc1NyAxNTUuNTM2IDQxLjQ3NjEgMTU1Ljc1IDQyLjI4OUMxNTUuOTYzIDQzLjEwMTggMTU2LjM0IDQzLjc2NjkgMTU2Ljg4MiA0NC4yODNDMTU3LjQyMyA0NC43OTk4IDE1OC4xNTkgNDUuMDU4MyAxNTkuMDg5IDQ1LjA1ODNDMTU5LjUwMSA0NS4wNTgzIDE1OS44OTggNDQuOTc0NyAxNjAuMjc5IDQ0LjgwNzZDMTYwLjY2IDQ0LjY0MDEgMTYxLjAxMSA0NC40NDI2IDE2MS4zMzEgNDQuMjE0OEMxNjEuNjUxIDQzLjk4NjkgMTYxLjkzMyA0My43NDc1IDE2Mi4xNzggNDMuNDk2OEMxNjIuNDIxIDQzLjI0NjEgMTYyLjYxMiA0My4wMzczIDE2Mi43NDkgNDIuODY5OUMxNjIuODU2IDQzLjQxNyAxNjMuMDMyIDQzLjg4MDggMTYzLjI3NiA0NC4yNjA1QzE2My41MTkgNDQuNjQwMSAxNjMuNzk4IDQ0Ljk1MjEgMTY0LjExMSA0NS4xOTQ4QzE2NC40MjMgNDUuNDM3NiAxNjQuNzUxIDQ1LjYxNjQgMTY1LjA5NCA0NS43MzA2QzE2NS40MzcgNDUuODQ0NSAxNjUuNzY5IDQ1LjkwMTUgMTY2LjA4OSA0NS45MDE1QzE2Ni44MDYgNDUuOTAxNSAxNjcuNDc3IDQ1LjY1ODMgMTY4LjEwMiA0NS4xNzE5QzE2OC43MjcgNDQuNjg2MSAxNjkuMjg4IDQ0LjA4OTMgMTY5Ljc4NCA0My4zODI5QzE3MC4yNzkgNDIuNjc2MiAxNzAuNjg3IDQxLjkzMTkgMTcxLjAwNyA0MS4xNDkxQzE3MS4zMjggNDAuMzY2NiAxNzEuNTQxIDM5LjY3MTUgMTcxLjY0OCAzOS4wNjM0QzE3MS43NTUgMzguODM1NSAxNzEuNzM1IDM4LjU5NjQgMTcxLjU5MSAzOC4zNDU3QzE3MS40NDYgMzguMDk1IDE3MS4yNTUgMzcuOTA5IDE3MS4wMTkgMzcuNzg3WlwiIGZpbGw9XCIjMEQwQzIzXCIvPlxuPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIxMi4xOTQgNTAuMzcwMUMyMTIuMDY0IDUwLjg4NjYgMjExLjg2MiA1MS4zMjM4IDIxMS41ODcgNTEuNjgwNkMyMTEuMzEzIDUyLjAzNzcgMjEwLjk3IDUyLjIyMzkgMjEwLjU1OCA1Mi4yMzkzQzIxMC4yOTkgNTIuMjU0MyAyMTAuMTAxIDUyLjExNzUgMjA5Ljk2MyA1MS44Mjg5QzIwOS44MjYgNTEuNTQwMSAyMDkuNzMxIDUxLjE2NzkgMjA5LjY3OCA1MC43MTIyQzIwOS42MjQgNTAuMjU2MiAyMDkuNjAxIDQ5Ljc0NyAyMDkuNjA5IDQ5LjE4NDlDMjA5LjYxNiA0OC42MjI3IDIwOS42MzkgNDguMDY4MSAyMDkuNjc4IDQ3LjUyMUMyMDkuNzE1IDQ2Ljk3NDIgMjA5Ljc2MSA0Ni40NjQ3IDIwOS44MTUgNDUuOTkzOUMyMDkuODY4IDQ1LjUyMjYgMjA5LjkxIDQ1LjE1ODYgMjA5Ljk0IDQ0LjlDMjEwLjQ1OSA0NC45NjA4IDIxMC44OSA0NS4xODQ2IDIxMS4yMzMgNDUuNTcyM0MyMTEuNTc2IDQ1Ljk1OTggMjExLjgzOSA0Ni40MTkzIDIxMi4wMjIgNDYuOTUxNEMyMTIuMjA1IDQ3LjQ4MzEgMjEyLjMxMiA0OC4wNTY4IDIxMi4zNDMgNDguNjcyMkMyMTIuMzczIDQ5LjI4NzUgMjEyLjMyMyA0OS44NTM0IDIxMi4xOTQgNTAuMzcwMVpNMjAzLjkxMyA1MC4zNzAxQzIwMy43ODMgNTAuODg2NiAyMDMuNTgxIDUxLjMyMzggMjAzLjMwNyA1MS42ODA2QzIwMy4wMzIgNTIuMDM3NyAyMDIuNjg5IDUyLjIyMzkgMjAyLjI3NyA1Mi4yMzkzQzIwMi4wMTggNTIuMjU0MyAyMDEuODIgNTIuMTE3NSAyMDEuNjgzIDUxLjgyODlDMjAxLjU0NSA1MS41NDAxIDIwMS40NSA1MS4xNjc5IDIwMS4zOTcgNTAuNzEyMkMyMDEuMzQzIDUwLjI1NjIgMjAxLjMyIDQ5Ljc0NyAyMDEuMzI4IDQ5LjE4NDlDMjAxLjMzNiA0OC42MjI3IDIwMS4zNTggNDguMDY4MSAyMDEuMzk3IDQ3LjUyMUMyMDEuNDM0IDQ2Ljk3NDIgMjAxLjQ4IDQ2LjQ2NDcgMjAxLjUzNCA0NS45OTM5QzIwMS41ODcgNDUuNTIyNiAyMDEuNjI5IDQ1LjE1ODYgMjAxLjY2IDQ0LjlDMjAyLjE3OCA0NC45NjA4IDIwMi42MDkgNDUuMTg0NiAyMDIuOTUyIDQ1LjU3MjNDMjAzLjI5NSA0NS45NTk4IDIwMy41NTggNDYuNDE5MyAyMDMuNzQxIDQ2Ljk1MTRDMjAzLjkyNCA0Ny40ODMxIDIwNC4wMzEgNDguMDU2OCAyMDQuMDYyIDQ4LjY3MjJDMjA0LjA5MiA0OS4yODc1IDIwNC4wNDIgNDkuODUzNCAyMDMuOTEzIDUwLjM3MDFaTTE5NS40MTUgMzcuNDI0MUMxOTUuMzk5IDM3Ljc4ODQgMTk1LjM2NSAzOC4xMTE0IDE5NS4zMTIgMzguMzkyNUMxOTUuMjU4IDM4LjY3NDEgMTk1LjE4NiAzOC44NTIyIDE5NS4wOTUgMzguOTI4M0MxOTQuOTI3IDM4LjgzNjkgMTk0LjcyMSAzOC42MDE4IDE5NC40NzcgMzguMjIxNkMxOTQuMjMzIDM3Ljg0MTkgMTk0LjA0MiAzNy40MTIyIDE5My45MDUgMzYuOTMzNkMxOTMuNzY4IDM2LjQ1NTEgMTkzLjcyNSAzNS45ODQzIDE5My43NzkgMzUuNTIwNUMxOTMuODMyIDM1LjA1NzMgMTk0LjA3MyAzNC42OTY3IDE5NC41IDM0LjQzNzlDMTk0LjY2NyAzNC4zNDY4IDE5NC44MTIgMzQuMzgwOSAxOTQuOTM0IDM0LjU0MDVDMTk1LjA1NiAzNC43MDAxIDE5NS4xNTUgMzQuOTMxOCAxOTUuMjMyIDM1LjIzNTdDMTk1LjMwOCAzNS41Mzk5IDE5NS4zNjEgMzUuODg5MiAxOTUuMzkyIDM2LjI4NDJDMTk1LjQyMiAzNi42Nzk1IDE5NS40MyAzNy4wNTkxIDE5NS40MTUgMzcuNDI0MVpNMTkzLjM5IDQxLjk3MTFDMTkzLjE1NCA0Mi4yMjE1IDE5Mi44OSA0Mi40MzgxIDE5Mi42MDEgNDIuNjIwNkMxOTIuMzExIDQyLjgwMyAxOTIuMDE0IDQyLjkzOTggMTkxLjcwOSA0My4wMzA5QzE5MS40MDQgNDMuMTIyMyAxOTEuMTI5IDQzLjE0NDggMTkwLjg4NSA0My4wOTkxQzE5MC4xOTkgNDIuOTYyNyAxODkuNjczIDQyLjY2NiAxODkuMzA3IDQyLjIxMDNDMTg4Ljk0MSA0MS43NTQ1IDE4OC43MDggNDEuMjE5IDE4OC42MDkgNDAuNjAzN0MxODguNTEgMzkuOTg4MSAxODguNTIxIDM5LjMzMDggMTg4LjY0NCAzOC42MzE5QzE4OC43NjUgMzcuOTMzIDE4OC45NzEgMzcuMjgzNSAxODkuMjYxIDM2LjY4MzJDMTg5LjU1MSAzNi4wODI5IDE4OS45MDIgMzUuNTY2MiAxOTAuMzEzIDM1LjEzMzNDMTkwLjcyNSAzNC43MDAxIDE5MS4xNzUgMzQuNDMwNiAxOTEuNjYzIDM0LjMyMzlDMTkxLjQ4IDM1LjA5ODkgMTkxLjQxOSAzNS45MDA3IDE5MS40OCAzNi43Mjg2QzE5MS41NDEgMzcuNTU2OCAxOTEuNzM5IDM4LjMzNTUgMTkyLjA3NSAzOS4wNjQ4QzE5Mi4yODggMzkuNTA2IDE5Mi41NDQgMzkuOTA4MiAxOTIuODQxIDQwLjI3MjlDMTkzLjEzOSA0MC42Mzc4IDE5My41MDEgNDAuOTQ5MiAxOTMuOTI4IDQxLjIwNzVDMTkzLjgwNiA0MS40NjYgMTkzLjYyNiA0MS43MjA0IDE5My4zOSA0MS45NzExWk0yMTguNzAyIDM3LjY1MTlDMjE4Ljc0NyAzNy4zMDI2IDIxOC44MTYgMzYuOTMzNiAyMTguOTA4IDM2LjU0NjJDMjE4Ljk5OSAzNi4xNTkgMjE5LjExNCAzNS43ODI4IDIxOS4yNTEgMzUuNDE4MUMyMTkuMzg4IDM1LjA1MzIgMjE5LjU0OCAzNC43MzggMjE5LjczMSAzNC40NzIzQzIxOS45MTQgMzQuMjA2NSAyMjAuMTA4IDM0LjAxNjMgMjIwLjMxNCAzMy45MDI0QzIyMC41MiAzMy43ODg0IDIyMC43MyAzMy43OTk3IDIyMC45NDMgMzMuOTM2NUMyMjEuMTcyIDM0LjA3MzUgMjIxLjMxMyAzNC4zNjIxIDIyMS4zNjcgMzQuODAyNUMyMjEuNDIgMzUuMjQzNSAyMjEuMzY3IDM1LjcxNDIgMjIxLjIwNyAzNi4yMTU5QzIyMS4wNDYgMzYuNzE3MyAyMjAuNzYxIDM3LjE4ODQgMjIwLjM0OSAzNy42Mjg4QzIxOS45MzcgMzguMDcgMjE5LjM4IDM4LjM1ODMgMjE4LjY3OSAzOC40OTUxQzIxOC42NDggMzguMjgyNiAyMTguNjU2IDM4LjAwMTUgMjE4LjcwMiAzNy42NTE5Wk0yMjcuOTIxIDM3LjY1MTlDMjI3Ljk2NiAzNy4zMDI2IDIyOC4wMzUgMzYuOTMzNiAyMjguMTI2IDM2LjU0NjJDMjI4LjIxOCAzNi4xNTkgMjI4LjMzMiAzNS43ODI4IDIyOC40NyAzNS40MTgxQzIyOC42MDcgMzUuMDUzMiAyMjguNzY3IDM0LjczOCAyMjguOTUgMzQuNDcyM0MyMjkuMTMzIDM0LjIwNjUgMjI5LjMyOCAzNC4wMTYzIDIyOS41MzMgMzMuOTAyNEMyMjkuNzM5IDMzLjc4ODQgMjI5Ljk0OSAzMy43OTk3IDIzMC4xNjIgMzMuOTM2NUMyMzAuMzkxIDM0LjA3MzUgMjMwLjUzMiAzNC4zNjIxIDIzMC41ODYgMzQuODAyNUMyMzAuNjM5IDM1LjI0MzUgMjMwLjU4NiAzNS43MTQyIDIzMC40MjUgMzYuMjE1OUMyMzAuMjY1IDM2LjcxNzMgMjI5Ljk3OSAzNy4xODg0IDIyOS41NjggMzcuNjI4OEMyMjkuMTU2IDM4LjA3IDIyOC41OTkgMzguMzU4MyAyMjcuODk4IDM4LjQ5NTFDMjI3Ljg2NyAzOC4yODI2IDIyNy44NzUgMzguMDAxNSAyMjcuOTIxIDM3LjY1MTlaTTIzNi40ODggMzguOTg1MkMyMzYuMzEyIDM4Ljc5NTUgMjM2LjA5OSAzOC42NjI1IDIzNS44NDcgMzguNTg2MkMyMzUuNTk1IDM4LjUxMDQgMjM1LjM1NSAzOC41MDI5IDIzNS4xMjYgMzguNTYzNkMyMzQuODk3IDM4LjYyNDQgMjM0Ljc1MiAzOC43ODQgMjM0LjY5MiAzOS4wNDIyQzIzNC41NyAzOS41Mjg2IDIzNC4zNzUgNDAuMDI2MiAyMzQuMTA4IDQwLjUzNDlDMjMzLjg0MSA0MS4wNDQ0IDIzMy41MTQgNDEuNTI2NyAyMzMuMTI1IDQxLjk4MjRDMjMyLjczNiA0Mi40MzgxIDIzMi4yOTcgNDIuODQxMiAyMzEuODEgNDMuMTkwNUMyMzEuMzIxIDQzLjU0MDEgMjMwLjgxIDQzLjc5MDggMjMwLjI3NyA0My45NDIzQzIyOS43NDMgNDQuMTEwMSAyMjkuMzAxIDQ0LjEyODkgMjI4Ljk1IDQzLjk5OTZDMjI4LjU5OSA0My44NzA2IDIyOC4zMjEgNDMuNjUwMyAyMjguMTE1IDQzLjMzODlDMjI3LjkwOSA0My4wMjcxIDIyNy43NjEgNDIuNjUxMiAyMjcuNjY5IDQyLjIxMDNDMjI3LjU3OCA0MS43Njk5IDIyNy41MjQgNDEuMzE0MiAyMjcuNTA5IDQwLjg0MjhDMjI4LjM3OCA0MC45MDM4IDIyOS4xNTIgNDAuNzQ4MyAyMjkuODMxIDQwLjM3NTVDMjMwLjUwOSA0MC4wMDM0IDIzMS4wODUgMzkuNTA5MiAyMzEuNTU4IDM4Ljg5MzlDMjMyLjAzMSAzOC4yNzg4IDIzMi4zODkgMzcuNTg3NCAyMzIuNjMzIDM2LjgyQzIzMi44NzcgMzYuMDUyNiAyMzMuMDE0IDM1LjI4OTIgMjMzLjA0NSAzNC41MjkzQzIzMy4wNiAzMy44MTUgMjMyLjk1MyAzMy4yMTEgMjMyLjcyNCAzMi43MTcxQzIzMi40OTYgMzIuMjIzNSAyMzIuMTg3IDMxLjgzOTUgMjMxLjc5OCAzMS41NjYyQzIzMS40MDkgMzEuMjkyNCAyMzAuOTYzIDMxLjEzMyAyMzAuNDYgMzEuMDg3NEMyMjkuOTU3IDMxLjA0MTcgMjI5LjQ0NSAzMS4xMTA1IDIyOC45MjcgMzEuMjkyNEMyMjguMzAyIDMxLjUwNTUgMjI3Ljc3MiAzMS44NTEgMjI3LjMzOCAzMi4zMjk2QzIyNi45MDMgMzIuODA4NSAyMjYuNTQgMzMuMzYzNCAyMjYuMjUxIDMzLjk5MzRDMjI1Ljk2MSAzNC42MjQ0IDIyNS43MzIgMzUuMzAzOSAyMjUuNTY0IDM2LjAzMzVDMjI1LjM5NiAzNi43NjI3IDIyNS4yNzQgMzcuNDgxIDIyNS4xOTkgMzguMTg3NEMyMjUuMTI0IDM4Ljg3MyAyMjUuMDg0IDM5LjUyOTIgMjI1LjA3NSA0MC4xNTcyQzIyNS4wMTcgNDAuMjgyNCAyMjQuOTU2IDQwLjQwODIgMjI0Ljg4OSA0MC41MzQ5QzIyNC42MjIgNDEuMDQ0NCAyMjQuMjk1IDQxLjUyNjcgMjIzLjkwNiA0MS45ODI0QzIyMy41MTcgNDIuNDM4MSAyMjMuMDc4IDQyLjg0MTIgMjIyLjU5MSA0My4xOTA1QzIyMi4xMDIgNDMuNTQwMSAyMjEuNTkyIDQzLjc5MDggMjIxLjA1OCA0My45NDIzQzIyMC41MjQgNDQuMTEwMSAyMjAuMDgyIDQ0LjEyODkgMjE5LjczMSA0My45OTk2QzIxOS4zOCA0My44NzA2IDIxOS4xMDIgNDMuNjUwMyAyMTguODk2IDQzLjMzODlDMjE4LjY5MSA0My4wMjcxIDIxOC41NDIgNDIuNjUxMiAyMTguNDUgNDIuMjEwM0MyMTguMzU5IDQxLjc2OTkgMjE4LjMwNSA0MS4zMTQyIDIxOC4yOSA0MC44NDI4QzIxOS4xNTkgNDAuOTAzOCAyMTkuOTMzIDQwLjc0ODMgMjIwLjYxMiA0MC4zNzU1QzIyMS4yOSA0MC4wMDM0IDIyMS44NjYgMzkuNTA5MiAyMjIuMzM5IDM4Ljg5MzlDMjIyLjgxMSAzOC4yNzg4IDIyMy4xNyAzNy41ODc0IDIyMy40MTQgMzYuODJDMjIzLjY1OCAzNi4wNTI2IDIyMy43OTUgMzUuMjg5MiAyMjMuODI2IDM0LjUyOTNDMjIzLjg0MSAzMy44MTUgMjIzLjczNCAzMy4yMTEgMjIzLjUwNiAzMi43MTcxQzIyMy4yNzcgMzIuMjIzNSAyMjIuOTY4IDMxLjgzOTUgMjIyLjU3OSAzMS41NjYyQzIyMi4xOSAzMS4yOTI0IDIyMS43NDQgMzEuMTMzIDIyMS4yNDEgMzEuMDg3NEMyMjAuNzM4IDMxLjA0MTcgMjIwLjIyNyAzMS4xMTA1IDIxOS43MDggMzEuMjkyNEMyMTkuMDgzIDMxLjUwNTUgMjE4LjU1MyAzMS44NTEgMjE4LjExOSAzMi4zMjk2QzIxNy42ODQgMzIuODA4NSAyMTcuMzIxIDMzLjM2MzQgMjE3LjAzMiAzMy45OTM0QzIxNi43NDIgMzQuNjI0NCAyMTYuNTEzIDM1LjMwMzkgMjE2LjM0NiAzNi4wMzM1QzIxNi4xNzggMzYuNzYyNyAyMTYuMDU2IDM3LjQ4MSAyMTUuOTggMzguMTg3NEMyMTUuOTM2IDM4LjU4NTkgMjE1LjkwNyAzOC45NzIyIDIxNS44ODYgMzkuMzUxNkMyMTUuNzM5IDM5LjQ3NjUgMjE1LjU5NSAzOS42MDIzIDIxNS40NDIgMzkuNzI1OEMyMTQuOTE2IDQwLjE1MTQgMjE0LjM2MyA0MC41MzQ5IDIxMy43ODQgNDAuODc2OUMyMTMuMjA0IDQxLjIxOSAyMTIuNjAxIDQxLjUwMDEgMjExLjk3NyA0MS43MjA0QzIxMS4zNTEgNDEuOTQwOCAyMTAuNzEgNDIuMDczOCAyMTAuMDU1IDQyLjExOTJMMjExLjQ3MyAyNi45ODQ3QzIxMS41NjUgMjYuNjY1NSAyMTEuNTE5IDI2LjM4NDcgMjExLjMzNiAyNi4xNDE1QzIxMS4xNTMgMjUuODk4MyAyMTAuOTE2IDI1LjczMTIgMjEwLjYyNyAyNS42NDAxQzIxMC4zMzcgMjUuNTQ4OCAyMTAuMDI4IDI1LjU1NjYgMjA5LjcgMjUuNjYyN0MyMDkuMzcyIDI1Ljc2OTQgMjA5LjEwMiAyNi4wMTI2IDIwOC44ODggMjYuMzkxOUMyMDguNzgxIDI2Ljk2OTcgMjA4LjY3MSAyNy43NTk3IDIwOC41NTcgMjguNzYyNUMyMDguNDQyIDI5Ljc2NTMgMjA4LjMyOCAzMC44NTk1IDIwOC4yMTMgMzIuMDQ0OEMyMDguMDk5IDMzLjIzIDIwNy45ODUgMzQuNDUzMiAyMDcuODcgMzUuNzE0MkMyMDcuNzU2IDM2Ljk3NTkgMjA3LjY1NyAzOC4xNTMzIDIwNy41NzMgMzkuMjQ3MkMyMDcuNTY5IDM5LjI5NTggMjA3LjU2NiAzOS4zMzk4IDIwNy41NjIgMzkuMzg3OEMyMDcuNDI5IDM5LjUwMDUgMjA3LjI5OSAzOS42MTQyIDIwNy4xNjEgMzkuNzI1OEMyMDYuNjM1IDQwLjE1MTQgMjA2LjA4MiA0MC41MzQ5IDIwNS41MDMgNDAuODc2OUMyMDQuOTIzIDQxLjIxOSAyMDQuMzIxIDQxLjUwMDEgMjAzLjY5NiA0MS43MjA0QzIwMy4wNyA0MS45NDA4IDIwMi40MjkgNDIuMDczOCAyMDEuNzc0IDQyLjExOTJMMjAzLjE5MiAyNi45ODQ3QzIwMy4yODQgMjYuNjY1NSAyMDMuMjM4IDI2LjM4NDcgMjAzLjA1NSAyNi4xNDE1QzIwMi44NzIgMjUuODk4MyAyMDIuNjM1IDI1LjczMTIgMjAyLjM0NiAyNS42NDAxQzIwMi4wNTYgMjUuNTQ4OCAyMDEuNzQ3IDI1LjU1NjYgMjAxLjQxOSAyNS42NjI3QzIwMS4wOTEgMjUuNzY5NCAyMDAuODIxIDI2LjAxMjYgMjAwLjYwNyAyNi4zOTE5QzIwMC41MDEgMjYuOTY5NyAyMDAuMzkgMjcuNzU5NyAyMDAuMjc2IDI4Ljc2MjVDMjAwLjE2MSAyOS43NjUzIDIwMC4wNDcgMzAuODU5NSAxOTkuOTMzIDMyLjA0NDhDMTk5LjgxOCAzMy4yMyAxOTkuNzA0IDM0LjQ1MzIgMTk5LjU4OSAzNS43MTQyQzE5OS40NzUgMzYuOTc1OSAxOTkuMzc2IDM4LjE1MzMgMTk5LjI5MiAzOS4yNDcyQzE5OS4yOSAzOS4yNjkyIDE5OS4yODkgMzkuMjg5MSAxOTkuMjg3IDM5LjMxMTFDMTk5LjA0OCAzOS40MjE5IDE5OC43ODYgMzkuNTE5IDE5OC41MDMgMzkuNjAwNkMxOTguMjEzIDM5LjY4NDQgMTk3Ljg4NSAzOS43MzM5IDE5Ny41MTkgMzkuNzQ4OUMxOTcuNTggMzkuNDc1MSAxOTcuNjMgMzkuMTcxMiAxOTcuNjY4IDM4LjgzNjlDMTk3LjcwNiAzOC41MDI5IDE5Ny43MzcgMzguMTUzMyAxOTcuNzYgMzcuNzg4NEMxOTcuNzgyIDM3LjQyNDEgMTk3Ljc5IDM3LjA1OTEgMTk3Ljc4MiAzNi42OTQ1QzE5Ny43NzQgMzYuMzI5NiAxOTcuNzU1IDM1Ljk5NTYgMTk3LjcyNSAzNS42OTE0QzE5Ny42NDkgMzUuMDM4NSAxOTcuNTA4IDM0LjQxOTEgMTk3LjMwMiAzMy44MzM4QzE5Ny4wOTYgMzMuMjQ5MSAxOTYuODE4IDMyLjc1OTMgMTk2LjQ2NyAzMi4zNjM3QzE5Ni4xMTYgMzEuOTY4NyAxOTUuNjc4IDMxLjcwMjcgMTk1LjE1MSAzMS41NjYyQzE5NC42MjYgMzEuNDI5NCAxOTQuMDEyIDMxLjQ3NDggMTkzLjMxIDMxLjcwMjdDMTkyLjI3MyAzMS41NjYyIDE5MS4zMzkgMzEuNjYxMyAxOTAuNTA4IDMxLjk4NzhDMTg5LjY3NyAzMi4zMTQ5IDE4OC45NTYgMzIuNzg5NCAxODguMzQ2IDMzLjQxMjJDMTg3LjczNiAzNC4wMzU3IDE4Ny4yMzcgMzQuNzY4NCAxODYuODQ4IDM1LjYxMTlDMTg2LjQ1OSAzNi40NTUxIDE4Ni4yIDM3LjMyMTQgMTg2LjA3IDM4LjIxQzE4Ni4wMTUgMzguNTg2OCAxODUuOTg4IDM4Ljk2MTggMTg1Ljk4IDM5LjMzNkMxODUuNzQ0IDM5LjgxNzcgMTg1LjQ4NiA0MC4yMzg4IDE4NS4yMDEgNDAuNTkyMUMxODQuNzk3IDQxLjA5MzUgMTg0LjM3NyA0MS41MDM4IDE4My45NDMgNDEuODIyOEMxODMuNTA4IDQyLjE0MiAxODMuMDc3IDQyLjM4NTIgMTgyLjY1IDQyLjU1MjNDMTgyLjIyMyA0Mi43MTk4IDE4MS44NDIgNDIuODMzNyAxODEuNTA3IDQyLjg5NDFDMTgxLjExIDQyLjk3MDIgMTgwLjcyOSA0Mi45NzggMTgwLjM2MyA0Mi45MTdDMTc5Ljk5NyA0Mi44NTY1IDE3OS42NjEgNDIuNjgxNiAxNzkuMzU3IDQyLjM5MjdDMTc5LjExMiA0Mi4xODAyIDE3OC45MjUgNDEuODM4MSAxNzguNzk2IDQxLjM2NzFDMTc4LjY2NiA0MC44OTYgMTc4LjU5IDQwLjM2MDggMTc4LjU2NyAzOS43NjAyQzE3OC41NDQgMzkuMTU5OSAxNzguNTY3IDM4LjUzMyAxNzguNjM2IDM3Ljg3OThDMTc4LjcwNSAzNy4yMjY2IDE3OC44MjIgMzYuNjA3MiAxNzguOTkgMzYuMDIyMkMxNzkuMTU4IDM1LjQzNzIgMTc5LjM3MSAzNC45MTMgMTc5LjYzMSAzNC40NDkyQzE3OS44OSAzMy45ODYyIDE4MC4xOTUgMzMuNjU1NCAxODAuNTQ2IDMzLjQ1NzlDMTgwLjc0NCAzMy40ODg2IDE4MC44NjYgMzMuNjA2IDE4MC45MTIgMzMuODExQzE4MC45NTggMzQuMDE2MyAxODAuOTY5IDM0LjI1OTUgMTgwLjk0NiAzNC41NDA1QzE4MC45MjMgMzQuODIxOSAxODAuODg5IDM1LjExMDUgMTgwLjg0MyAzNS40MDY2QzE4MC43OTcgMzUuNzAzIDE4MC43NzUgMzUuOTUwMiAxODAuNzc1IDM2LjE0NzRDMTgwLjg1MSAzNi41NTc3IDE4MC45OTkgMzYuODc3IDE4MS4yMjEgMzcuMTA0OEMxODEuNDQxIDM3LjMzMjcgMTgxLjY5IDM3LjQ2NiAxODEuOTY0IDM3LjUwMzZDMTgyLjIzOSAzNy41NDE3IDE4Mi41MDkgMzcuNDc3MyAxODIuNzc2IDM3LjMwOThDMTgzLjA0MyAzNy4xNDMgMTgzLjI2IDM2Ljg3NyAxODMuNDI4IDM2LjUxMkMxODMuNDQzIDM2LjUyNzQgMTgzLjQ2NiAzNi41MzQ5IDE4My40OTcgMzYuNTM0OUwxODMuODE3IDMzLjY0MDRDMTgzLjkwOSAzMy4yNDUxIDE4My44NDcgMzIuODk1OCAxODMuNjM0IDMyLjU5MTlDMTgzLjQyIDMyLjI4OCAxODMuMTM4IDMyLjExMyAxODIuNzg4IDMyLjA2NzZDMTgyLjM0NSAzMS40Mjk0IDE4MS43NDcgMzEuMDkxNCAxODAuOTkyIDMxLjA1MzJDMTgwLjIzNyAzMS4wMTU0IDE3OS40NjMgMzEuMjYyMyAxNzguNjcgMzEuNzk0MUMxNzguMTgyIDMyLjE0NCAxNzcuNzUxIDMyLjYyNiAxNzcuMzc4IDMzLjI0MTNDMTc3LjAwNCAzMy44NTcgMTc2LjY5OSAzNC41NDA1IDE3Ni40NjMgMzUuMjkyNkMxNzYuMjI2IDM2LjA0NDggMTc2LjA1OCAzNi44MzkxIDE3NS45NTkgMzcuNjc0OEMxNzUuODYgMzguNTEwNCAxNzUuODQxIDM5LjMyMzYgMTc1LjkwMiA0MC4xMTMzQzE3NS45NjMgNDAuOTAzOCAxNzYuMTA0IDQxLjY0ODQgMTc2LjMyNSA0Mi4zNDdDMTc2LjU0NiA0My4wNDYyIDE3Ni44NTUgNDMuNjMxMiAxNzcuMjUyIDQ0LjEwMkMxNzcuNTg3IDQ0LjUxMjMgMTc3Ljk2OCA0NC44MTI3IDE3OC4zOTUgNDUuMDAyN0MxNzguODIyIDQ1LjE5MjcgMTc5LjI2OCA0NS4zMTAxIDE3OS43MzQgNDUuMzU1OEMxODAuMTk5IDQ1LjQwMTIgMTgwLjY2IDQ1LjM4MjEgMTgxLjExOCA0NS4yOTg4QzE4MS41NzUgNDUuMjE1NSAxODIuMDEgNDUuMDk3OCAxODIuNDIxIDQ0Ljk0NTRDMTgyLjk1NSA0NC43NDgyIDE4My41MDUgNDQuNDk3MiAxODQuMDY5IDQ0LjE5MzNDMTg0LjYzMyA0My44ODk3IDE4NS4xNzQgNDMuNTI0OCAxODUuNjkzIDQzLjA5OTFDMTg1Ljk2NiA0Mi44NzUzIDE4Ni4yMjggNDIuNjMxMyAxODYuNDgyIDQyLjM2OTZDMTg2LjU5OCA0Mi42NTUzIDE4Ni43MjcgNDIuOTMxNyAxODYuODgyIDQzLjE5MDVDMTg3LjI5NCA0My44NzQxIDE4Ny44NSA0NC40MjkgMTg4LjU1MiA0NC44NTQ0QzE4OS4yNTMgNDUuMjc5NyAxOTAuMTE1IDQ1LjQ4NDQgMTkxLjEzNyA0NS40Njk3QzE5Mi4yMzUgNDUuNDU0NCAxOTMuMjQ5IDQ1LjE3NzQgMTk0LjE4IDQ0LjYzNzhDMTk1LjExIDQ0LjA5ODggMTk1Ljg3MiA0My4zMDQyIDE5Ni40NjcgNDIuMjU2QzE5Ny4zNTggNDIuMjU2IDE5OC4yMzQgNDIuMTA5NiAxOTkuMDk2IDQxLjgxOUMxOTkuMDg5IDQxLjkxMSAxOTkuMDgxIDQyLjAwNzkgMTk5LjA3NSA0Mi4wOTY2QzE5OS4wMTQgNDIuOTAxOSAxOTguOTgzIDQzLjQ0ODcgMTk4Ljk4MyA0My43Mzc2QzE5OC45NjggNDQuMjM5IDE5OC45MzQgNDQuODU4MSAxOTguODggNDUuNTk0OUMxOTguODI3IDQ2LjMzMiAxOTguNzkzIDQ3LjEwNjkgMTk4Ljc3OCA0Ny45MTk4QzE5OC43NjMgNDguNzMyNiAxOTguNzkzIDQ5LjU1MzIgMTk4Ljg2OSA1MC4zODE3QzE5OC45NDUgNTEuMjA5NiAxOTkuMTA1IDUxLjk2MiAxOTkuMzQ5IDUyLjYzODNDMTk5LjU5MyA1My4zMTQxIDE5OS45NCA1My44ODc4IDIwMC4zOSA1NC4zNTkxQzIwMC44NCA1NC44Mjk5IDIwMS40MzEgNTUuMTExMiAyMDIuMTYzIDU1LjIwMjNDMjAyLjk0MSA1NS4zMDg0IDIwMy42MTIgNTUuMTcxNyAyMDQuMTc2IDU0Ljc5MkMyMDQuNzQgNTQuNDEyIDIwNS4xOTggNTMuODkxOCAyMDUuNTQ5IDUzLjIzMDhDMjA1Ljg5OSA1Mi41Njk1IDIwNi4xNDcgNTEuODA2MSAyMDYuMjkyIDUwLjk0MDFDMjA2LjQzNyA1MC4wNzQgMjA2LjQ3OSA0OS4yMDM5IDIwNi40MTggNDguMzMwMUMyMDYuMzU3IDQ3LjQ1NjIgMjA2LjE5NiA0Ni42MzIxIDIwNS45MzcgNDUuODU3NUMyMDUuNjc4IDQ1LjA4MjIgMjA1LjMxOSA0NC40NDQgMjA0Ljg2MiA0My45NDIzQzIwNS4xMzcgNDMuODY2OSAyMDUuNDY1IDQzLjcyMjYgMjA1Ljg0NiA0My41MDk1QzIwNi4yMjcgNDMuMjk2OSAyMDYuNjIgNDMuMDU3NSAyMDcuMDI0IDQyLjc5MTVDMjA3LjEyMyA0Mi43MjYxIDIwNy4yMjEgNDIuNjU3MyAyMDcuMzIgNDIuNTkwMkMyMDcuMjgzIDQzLjEyODYgMjA3LjI2NCA0My41MTI2IDIwNy4yNjQgNDMuNzM3NkMyMDcuMjQ5IDQ0LjIzOSAyMDcuMjE1IDQ0Ljg1ODEgMjA3LjE2MSA0NS41OTQ5QzIwNy4xMDggNDYuMzMyIDIwNy4wNzMgNDcuMTA2OSAyMDcuMDU4IDQ3LjkxOThDMjA3LjA0MyA0OC43MzI2IDIwNy4wNzMgNDkuNTUzMiAyMDcuMTUgNTAuMzgxN0MyMDcuMjI2IDUxLjIwOTYgMjA3LjM4NiA1MS45NjIgMjA3LjYzIDUyLjYzODNDMjA3Ljg3NCA1My4zMTQxIDIwOC4yMjEgNTMuODg3OCAyMDguNjcxIDU0LjM1OTFDMjA5LjEyMSA1NC44Mjk5IDIwOS43MTIgNTUuMTExMiAyMTAuNDQ0IDU1LjIwMjNDMjExLjIyMSA1NS4zMDg0IDIxMS44OTIgNTUuMTcxNyAyMTIuNDU3IDU0Ljc5MkMyMTMuMDIxIDU0LjQxMiAyMTMuNDc4IDUzLjg5MTggMjEzLjgzIDUzLjIzMDhDMjE0LjE4IDUyLjU2OTUgMjE0LjQyOCA1MS44MDYxIDIxNC41NzMgNTAuOTQwMUMyMTQuNzE4IDUwLjA3NCAyMTQuNzU5IDQ5LjIwMzkgMjE0LjY5OSA0OC4zMzAxQzIxNC42MzcgNDcuNDU2MiAyMTQuNDc3IDQ2LjYzMjEgMjE0LjIxOCA0NS44NTc1QzIxMy45NTkgNDUuMDgyMiAyMTMuNjAxIDQ0LjQ0NCAyMTMuMTQzIDQzLjk0MjNDMjEzLjQxOCA0My44NjY5IDIxMy43NDUgNDMuNzIyNiAyMTQuMTI3IDQzLjUwOTVDMjE0LjUwOCA0My4yOTY5IDIxNC45IDQzLjA1NzUgMjE1LjMwNSA0Mi43OTE1QzIxNS41MTUgNDIuNjUzMyAyMTUuNzI0IDQyLjUxMDcgMjE1LjkzMiA0Mi4zNjQxQzIxNi4wMSA0My4xMDcyIDIxNi4xNzkgNDMuNzU5IDIxNi40NDggNDQuMzA3M0MyMTYuNzc2IDQ0Ljk3NjEgMjE3LjIyMiA0NS40OTI1IDIxNy43ODcgNDUuODU3NUMyMTguMzUxIDQ2LjIyMTggMjE5LjAxNCA0Ni40MjM0IDIxOS43NzcgNDYuNDYxMkMyMjAuNTM5IDQ2LjQ5ODggMjIxLjM3IDQ2LjM1ODYgMjIyLjI3MSA0Ni4wMzkzQzIyMi45NDEgNDUuNzk2NSAyMjMuNTI1IDQ1LjQ5MjUgMjI0LjAyIDQ1LjEyNzlDMjI0LjUxNiA0NC43NjMgMjI0Ljk2MiA0NC4zMTg1IDIyNS4zNTggNDMuNzk0NkMyMjUuMzgxIDQzLjc2NDIgMjI1LjQwMyA0My43MzEzIDIyNS40MjUgNDMuNzAwNkMyMjUuNDk2IDQzLjkxMzQgMjI1LjU3NCA0NC4xMTc5IDIyNS42NjcgNDQuMzA3M0MyMjUuOTk1IDQ0Ljk3NjEgMjI2LjQ0MSA0NS40OTI1IDIyNy4wMDYgNDUuODU3NUMyMjcuNTY5IDQ2LjIyMTggMjI4LjIzMyA0Ni40MjM0IDIyOC45OTYgNDYuNDYxMkMyMjkuNzU4IDQ2LjQ5ODggMjMwLjU4OSA0Ni4zNTg2IDIzMS40ODkgNDYuMDM5M0MyMzIuMTYgNDUuNzk2NSAyMzIuNzQ0IDQ1LjQ5MjUgMjMzLjIzOSA0NS4xMjc5QzIzMy43MzUgNDQuNzYzIDIzNC4xODEgNDQuMzE4NSAyMzQuNTc3IDQzLjc5NDZDMjM0Ljk3NCA0My4yNyAyMzUuMzM2IDQyLjY2NiAyMzUuNjY0IDQxLjk4MjRDMjM1Ljk5MiA0MS4yOTg1IDIzNi4zMjMgNDAuNTE2NCAyMzYuNjU5IDM5LjYzNDdDMjM2LjcyIDM5LjM5MTggMjM2LjY2MyAzOS4xNzUyIDIzNi40ODggMzguOTg1MlpcIiBmaWxsPVwiIzBEMEMyM1wiLz5cbjwvc3ZnPmA7XG5cbmNvbnN0IHBheXBhbCA9IGBcbjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTUwXCIgaGVpZ2h0PVwiNDBcIj5cbjxwYXRoIGZpbGw9XCIjMjUzQjgwXCIgZD1cIk00Ni4yMTEgNi43NDloLTYuODM5YS45NS45NSAwIDAgMC0uOTM5LjgwMmwtMi43NjYgMTcuNTM3YS41Ny41NyAwIDAgMCAuNTY0LjY1OGgzLjI2NWEuOTUuOTUgMCAwIDAgLjkzOS0uODAzbC43NDYtNC43M2EuOTUuOTUgMCAwIDEgLjkzOC0uODAzaDIuMTY1YzQuNTA1IDAgNy4xMDUtMi4xOCA3Ljc4NC02LjUuMzA2LTEuODkuMDEzLTMuMzc1LS44NzItNC40MTUtLjk3Mi0xLjE0Mi0yLjY5Ni0xLjc0Ni00Ljk4NS0xLjc0NnpNNDcgMTMuMTU0Yy0uMzc0IDIuNDU0LTIuMjQ5IDIuNDU0LTQuMDYyIDIuNDU0aC0xLjAzMmwuNzI0LTQuNTgzYS41Ny41NyAwIDAgMSAuNTYzLS40ODFoLjQ3M2MxLjIzNSAwIDIuNCAwIDMuMDAyLjcwNC4zNTkuNDIuNDY5IDEuMDQ0LjMzMiAxLjkwNnpNNjYuNjU0IDEzLjA3NWgtMy4yNzVhLjU3LjU3IDAgMCAwLS41NjMuNDgxbC0uMTQ1LjkxNi0uMjI5LS4zMzJjLS43MDktMS4wMjktMi4yOS0xLjM3My0zLjg2OC0xLjM3My0zLjYxOSAwLTYuNzEgMi43NDEtNy4zMTIgNi41ODYtLjMxMyAxLjkxOC4xMzIgMy43NTIgMS4yMiA1LjAzMS45OTggMS4xNzYgMi40MjYgMS42NjYgNC4xMjUgMS42NjYgMi45MTYgMCA0LjUzMy0xLjg3NSA0LjUzMy0xLjg3NWwtLjE0Ni45MWEuNTcuNTcgMCAwIDAgLjU2Mi42NmgyLjk1YS45NS45NSAwIDAgMCAuOTM5LS44MDNsMS43Ny0xMS4yMDlhLjU2OC41NjggMCAwIDAtLjU2MS0uNjU4em0tNC41NjUgNi4zNzRjLS4zMTYgMS44NzEtMS44MDEgMy4xMjctMy42OTUgMy4xMjctLjk1MSAwLTEuNzExLS4zMDUtMi4xOTktLjg4My0uNDg0LS41NzQtLjY2OC0xLjM5MS0uNTE0LTIuMzAxLjI5NS0xLjg1NSAxLjgwNS0zLjE1MiAzLjY3LTMuMTUyLjkzIDAgMS42ODYuMzA5IDIuMTg0Ljg5Mi40OTkuNTg5LjY5NyAxLjQxMS41NTQgMi4zMTd6TTg0LjA5NiAxMy4wNzVoLTMuMjkxYS45NTQuOTU0IDAgMCAwLS43ODcuNDE3bC00LjUzOSA2LjY4Ni0xLjkyNC02LjQyNWEuOTUzLjk1MyAwIDAgMC0uOTEyLS42NzhoLTMuMjM0YS41Ny41NyAwIDAgMC0uNTQxLjc1NGwzLjYyNSAxMC42MzgtMy40MDggNC44MTFhLjU3LjU3IDAgMCAwIC40NjUuOWgzLjI4N2EuOTQ5Ljk0OSAwIDAgMCAuNzgxLS40MDhsMTAuOTQ2LTE1LjhhLjU3LjU3IDAgMCAwLS40NjgtLjg5NXpcIi8+XG48cGF0aCBmaWxsPVwiIzE3OUJEN1wiIGQ9XCJNOTQuOTkyIDYuNzQ5aC02Ljg0YS45NS45NSAwIDAgMC0uOTM4LjgwMmwtMi43NjYgMTcuNTM3YS41NjkuNTY5IDAgMCAwIC41NjIuNjU4aDMuNTFhLjY2NS42NjUgMCAwIDAgLjY1Ni0uNTYybC43ODUtNC45NzFhLjk1Ljk1IDAgMCAxIC45MzgtLjgwM2gyLjE2NGM0LjUwNiAwIDcuMTA1LTIuMTggNy43ODUtNi41LjMwNy0xLjg5LjAxMi0zLjM3NS0uODczLTQuNDE1LS45NzEtMS4xNDItMi42OTQtMS43NDYtNC45ODMtMS43NDZ6bS43ODkgNi40MDVjLS4zNzMgMi40NTQtMi4yNDggMi40NTQtNC4wNjIgMi40NTRoLTEuMDMxbC43MjUtNC41ODNhLjU2OC41NjggMCAwIDEgLjU2Mi0uNDgxaC40NzNjMS4yMzQgMCAyLjQgMCAzLjAwMi43MDQuMzU5LjQyLjQ2OCAxLjA0NC4zMzEgMS45MDZ6TTExNS40MzQgMTMuMDc1aC0zLjI3M2EuNTY3LjU2NyAwIDAgMC0uNTYyLjQ4MWwtLjE0NS45MTYtLjIzLS4zMzJjLS43MDktMS4wMjktMi4yODktMS4zNzMtMy44NjctMS4zNzMtMy42MTkgMC02LjcwOSAyLjc0MS03LjMxMSA2LjU4Ni0uMzEyIDEuOTE4LjEzMSAzLjc1MiAxLjIxOSA1LjAzMSAxIDEuMTc2IDIuNDI2IDEuNjY2IDQuMTI1IDEuNjY2IDIuOTE2IDAgNC41MzMtMS44NzUgNC41MzMtMS44NzVsLS4xNDYuOTFhLjU3LjU3IDAgMCAwIC41NjQuNjZoMi45NDlhLjk1Ljk1IDAgMCAwIC45MzgtLjgwM2wxLjc3MS0xMS4yMDlhLjU3MS41NzEgMCAwIDAtLjU2NS0uNjU4em0tNC41NjUgNi4zNzRjLS4zMTQgMS44NzEtMS44MDEgMy4xMjctMy42OTUgMy4xMjctLjk0OSAwLTEuNzExLS4zMDUtMi4xOTktLjg4My0uNDg0LS41NzQtLjY2Ni0xLjM5MS0uNTE0LTIuMzAxLjI5Ny0xLjg1NSAxLjgwNS0zLjE1MiAzLjY3LTMuMTUyLjkzIDAgMS42ODYuMzA5IDIuMTg0Ljg5Mi41MDEuNTg5LjY5OSAxLjQxMS41NTQgMi4zMTd6TTExOS4yOTUgNy4yM2wtMi44MDcgMTcuODU4YS41NjkuNTY5IDAgMCAwIC41NjIuNjU4aDIuODIyYy40NjkgMCAuODY3LS4zNC45MzktLjgwM2wyLjc2OC0xNy41MzZhLjU3LjU3IDAgMCAwLS41NjItLjY1OWgtMy4xNmEuNTcxLjU3MSAwIDAgMC0uNTYyLjQ4MnpcIi8+XG48cGF0aCBmaWxsPVwiIzI1M0I4MFwiIGQ9XCJNNy4yNjYgMjkuMTU0bC41MjMtMy4zMjItMS4xNjUtLjAyN0gxLjA2MUw0LjkyNyAxLjI5MmEuMzE2LjMxNiAwIDAgMSAuMzE0LS4yNjhoOS4zOGMzLjExNCAwIDUuMjYzLjY0OCA2LjM4NSAxLjkyNy41MjYuNi44NjEgMS4yMjcgMS4wMjMgMS45MTcuMTcuNzI0LjE3MyAxLjU4OS4wMDcgMi42NDRsLS4wMTIuMDc3di42NzZsLjUyNi4yOThhMy42OSAzLjY5IDAgMCAxIDEuMDY1LjgxMmMuNDUuNTEzLjc0MSAxLjE2NS44NjQgMS45MzguMTI3Ljc5NS4wODUgMS43NDEtLjEyMyAyLjgxMi0uMjQgMS4yMzItLjYyOCAyLjMwNS0xLjE1MiAzLjE4M2E2LjU0NyA2LjU0NyAwIDAgMS0xLjgyNSAyYy0uNjk2LjQ5NC0xLjUyMy44NjktMi40NTggMS4xMDktLjkwNi4yMzYtMS45MzkuMzU1LTMuMDcyLjM1NWgtLjczYy0uNTIyIDAtMS4wMjkuMTg4LTEuNDI3LjUyNWEyLjIxIDIuMjEgMCAwIDAtLjc0NCAxLjMyOGwtLjA1NS4yOTktLjkyNCA1Ljg1NS0uMDQyLjIxNWMtLjAxMS4wNjgtLjAzLjEwMi0uMDU4LjEyNWEuMTU1LjE1NSAwIDAgMS0uMDk2LjAzNUg3LjI2NnpcIi8+XG48cGF0aCBmaWxsPVwiIzE3OUJEN1wiIGQ9XCJNMjMuMDQ4IDcuNjY3Yy0uMDI4LjE3OS0uMDYuMzYyLS4wOTYuNTUtMS4yMzcgNi4zNTEtNS40NjkgOC41NDUtMTAuODc0IDguNTQ1SDkuMzI2Yy0uNjYxIDAtMS4yMTguNDgtMS4zMjEgMS4xMzJMNi41OTYgMjYuODNsLS4zOTkgMi41MzNhLjcwNC43MDQgMCAwIDAgLjY5NS44MTRoNC44ODFjLjU3OCAwIDEuMDY5LS40MiAxLjE2LS45OWwuMDQ4LS4yNDguOTE5LTUuODMyLjA1OS0uMzJjLjA5LS41NzIuNTgyLS45OTIgMS4xNi0uOTkyaC43M2M0LjcyOSAwIDguNDMxLTEuOTIgOS41MTMtNy40NzYuNDUyLTIuMzIxLjIxOC00LjI1OS0uOTc4LTUuNjIyYTQuNjY3IDQuNjY3IDAgMCAwLTEuMzM2LTEuMDN6XCIvPlxuPHBhdGggZmlsbD1cIiMyMjJENjVcIiBkPVwiTTIxLjc1NCA3LjE1MWE5Ljc1NyA5Ljc1NyAwIDAgMC0xLjIwMy0uMjY3IDE1LjI4NCAxNS4yODQgMCAwIDAtMi40MjYtLjE3N2gtNy4zNTJhMS4xNzIgMS4xNzIgMCAwIDAtMS4xNTkuOTkyTDguMDUgMTcuNjA1bC0uMDQ1LjI4OWExLjMzNiAxLjMzNiAwIDAgMSAxLjMyMS0xLjEzMmgyLjc1MmM1LjQwNSAwIDkuNjM3LTIuMTk1IDEwLjg3NC04LjU0NS4wMzctLjE4OC4wNjgtLjM3MS4wOTYtLjU1YTYuNTk0IDYuNTk0IDAgMCAwLTEuMDE3LS40MjkgOS4wNDUgOS4wNDUgMCAwIDAtLjI3Ny0uMDg3elwiLz5cbjxwYXRoIGZpbGw9XCIjMjUzQjgwXCIgZD1cIk05LjYxNCA3LjY5OWExLjE2OSAxLjE2OSAwIDAgMSAxLjE1OS0uOTkxaDcuMzUyYy44NzEgMCAxLjY4NC4wNTcgMi40MjYuMTc3YTkuNzU3IDkuNzU3IDAgMCAxIDEuNDgxLjM1M2MuMzY1LjEyMS43MDQuMjY0IDEuMDE3LjQyOS4zNjgtMi4zNDctLjAwMy0zLjk0NS0xLjI3Mi01LjM5MkMyMC4zNzguNjgyIDE3Ljg1MyAwIDE0LjYyMiAwaC05LjM4Yy0uNjYgMC0xLjIyMy40OC0xLjMyNSAxLjEzM0wuMDEgMjUuODk4YS44MDYuODA2IDAgMCAwIC43OTUuOTMyaDUuNzkxbDEuNDU0LTkuMjI1IDEuNTY0LTkuOTA2elwiLz5cbjwvc3ZnPmA7XG4iXSwibmFtZXMiOlsiYWRkSWNvbiIsImFsaWdubWVudF8xIiwidGFibGVfY2VsbF8xIiwidW5kZWZpbmVkIiwiZ2xvYmFsIiwidGhpcyIsImxvZGFzaF8xIiwibmV2ZXJ0aHJvd18xIiwicmVzdWx0c18xIiwiYXN0X3V0aWxzXzEiLCJjYWxjXzEiLCJyb3dfMSIsImNvbHVtbl8xIiwicmVmZXJlbmNlXzEiLCJyYW5nZV8xIiwiU2VtYW50aWNIZWxwZXJzXzEiLCJXM0NFQk5GXzEiLCJDdXN0b21fMSIsInJlcXVpcmUkJDAiLCJkaXNwbGF5X2RpcmVjdGl2ZV8xIiwiZGVzdGluYXRpb24iLCJkZXN0aW5hdGlvbl8xIiwic2luZ2xlX3BhcmFtX2Z1bmN0aW9uXzEiLCJjb25kaXRpb25hbF9mdW5jdGlvbl8xIiwiYWxnZWJyYWljX29wZXJhdGlvbl8xIiwiY29uc3RhbnRfMSIsImVibmZfMSIsImZvY3VzXzEiLCJwb2ludF8xIiwidGFibGVfcm93XzEiLCJ0YWJsZV8xIiwiYWxpZ25tZW50IiwidGFibGUiLCJmb3JtYXR0ZXJfMSIsInBhcnNlcl8xIiwicmFuZ2UiLCJlZGl0X3NjcmlwdF8xIiwiZm9jdXMiLCJmb3JtYXR0ZXJfanNfMSIsInRleHRfZWRpdG9yXzEiLCJvcHRpb25zXzEiLCJ0YWJsZV9lZGl0b3JfMSIsIkZvcm1hdFR5cGUiLCJvcHRpb25zV2l0aERlZmF1bHRzIiwiUG9pbnQiLCJBbGlnbm1lbnQiLCJTb3J0T3JkZXIiLCJOb3RpY2UiLCJNVEVFZGl0b3IiLCJNb2RhbCIsIk1hcmtkb3duVmlldyIsIkl0ZW1WaWV3IiwiUHJlYyIsImtleW1hcCIsIlBsdWdpbiIsIlNldHRpbmciLCJQbHVnaW5TZXR0aW5nVGFiIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksYUFBYSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUNuQyxJQUFJLGFBQWEsR0FBRyxNQUFNLENBQUMsY0FBYztBQUN6QyxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxZQUFZLEtBQUssSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDcEYsUUFBUSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDMUcsSUFBSSxPQUFPLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDO0FBQ0Y7QUFDTyxTQUFTLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ2hDLElBQUksYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN4QixJQUFJLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFBRTtBQUMzQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDekYsQ0FBQztBQUNEO0FBQ08sSUFBSSxRQUFRLEdBQUcsV0FBVztBQUNqQyxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLFNBQVMsUUFBUSxDQUFDLENBQUMsRUFBRTtBQUNyRCxRQUFRLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzdELFlBQVksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QixZQUFZLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pGLFNBQVM7QUFDVCxRQUFRLE9BQU8sQ0FBQyxDQUFDO0FBQ2pCLE1BQUs7QUFDTCxJQUFJLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDM0MsRUFBQztBQTRCRDtBQUNPLFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRTtBQUM3RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxZQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNoSCxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUMvRCxRQUFRLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDbkcsUUFBUSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDdEcsUUFBUSxTQUFTLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUU7QUFDdEgsUUFBUSxJQUFJLENBQUMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDOUUsS0FBSyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBQ0Q7QUFDTyxTQUFTLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFO0FBQzNDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNySCxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLE1BQU0sS0FBSyxVQUFVLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLEVBQUUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzdKLElBQUksU0FBUyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxVQUFVLENBQUMsRUFBRSxFQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDdEUsSUFBSSxTQUFTLElBQUksQ0FBQyxFQUFFLEVBQUU7QUFDdEIsUUFBUSxJQUFJLENBQUMsRUFBRSxNQUFNLElBQUksU0FBUyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7QUFDdEUsUUFBUSxPQUFPLENBQUMsRUFBRSxJQUFJO0FBQ3RCLFlBQVksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENB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akYsSUFBSSxNQUFNLEVBQUUsR0FBRyxHQUFHLE1BQU0sRUFBRSxHQUFHO0FBQzdCLElBQUksTUFBTSxFQUFFLEdBQUcsR0FBRyxNQUFNLEVBQUUsR0FBRztBQUM3QixJQUFJLE1BQU0sRUFBRSxHQUFHLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHO0FBQ3ZELElBQUksTUFBTSxFQUFFLEdBQUcsR0FBRyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUc7QUFDdkQsSUFBSSxNQUFNLEVBQUUsR0FBRyxHQUFHLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRztBQUN2RCxJQUFJLE1BQU0sRUFBRSxHQUFHLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHO0FBQ3ZELElBQUksTUFBTSxFQUFFLEdBQUcsR0FBRyxNQUFNLEVBQUUsR0FBRztBQUM3QixJQUFJLE1BQU0sRUFBRSxHQUFHLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRztBQUNqRixJQUFJLE1BQU0sRUFBRSxHQUFHLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRztBQUNqRixJQUFJLE1BQU0sRUFBRSxHQUFHLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHO0FBQ3ZELElBQUksTUFBTSxFQUFFLEdBQUcsR0FBRyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUc7QUFDdkQsSUFBSSxNQUFNLEVBQUUsR0FBRyxHQUFHLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUc7QUFDMUMsSUFBSSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJO0FBQzlCLElBQUksTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSTtBQUM5QixJQUFJLE1BQU0sRUFBRSxJQUFJO0FBQ2hCO0FBQ0EsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDaEQsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDaEQsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUMvRCxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQy9ELElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDL0QsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQzlFLElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUM5RSxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQy9ELElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDL0QsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUMvRCxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDOUUsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQzlFLElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRztBQUNqQyxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUNoRCxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDOUUsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQzlFLElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDL0QsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUMvRCxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUNoRCxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUNoRCxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUNoRCxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUNoRCxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQy9ELElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDL0QsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDaEQsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDaEQsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDN0YsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDN0YsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHO0FBQ2pDLElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQ2hELElB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LEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO0FBQ3ZELElBQUksSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ2xCLFFBQVEsTUFBTSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDbEQ7QUFDQSxJQUFJLE9BQU8sRUFBRSxLQUFLLEdBQUcsTUFBTSxFQUFFO0FBQzdCLE1BQU0sSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO0FBQzNDLFFBQVEsT0FBTyxJQUFJLENBQUM7QUFDcEIsT0FBTztBQUNQLEtBQUs7QUFDTCxJQUFJLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtBQUNyQyxJQUFJLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztBQUNsQixRQUFRLE1BQU0sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTTtBQUNqRCxRQUFRLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDL0I7QUFDQSxJQUFJLE9BQU8sRUFBRSxLQUFLLEdBQUcsTUFBTSxFQUFFO0FBQzdCLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzNELEtBQUs7QUFDTCxJQUFJLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7QUFDcEMsSUFBSSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDbEIsUUFB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QUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUdBLFdBQVM7QUFDM0QsUUFBUSxhQUFhLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLEdBQUdBLFdBQVM7QUFDckUsUUFBUSxjQUFjLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FBQyxRQUFRLEdBQUdBLFdBQVMsQ0FBQztBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsTUFBTSxDQUFDLEtBQUssRUFBRTtBQUMzQixNQUFNLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxZQUFZLFdBQVcsQ0FBQyxFQUFFO0FBQ3JGLFFBQVEsSUFB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QUM3QixNQUFNLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0FBQ3BCLE1BQU0sSUFBSSxDQUFDLFFBQVEsR0FBRztBQUN0QixRQUFRLE1BQU0sRUFBRSxJQUFJLElBQUk7QUFDeEIsUUFBUSxLQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDO0FBQ3JDLFFBQVEsUUFBUSxFQUFFLElBQUksSUFBSTtBQUMxQixPQUFPLENBQUM7QUFDUixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsY0FBYyxDQUFDLEdBQUcsRUFBRTtBQUNqQyxNQUFNLElBQUksTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEQsTUFBTSxJQUFJLENBQUMsSUFBSSxJQUFJLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xDLE1BQU0sT0FBTyxNQUFNLENBQUM7QUFDcEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFdBQVcsQ0FBQyxHQUFHLEVBQUU7QUFDOUIsTUFBTSxPQUFPLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzVDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxXQUFXLENBQUMsR0FBRyxFQUFFO0FBQzlCLE1BQU0sT0FBTyxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM1QyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxXQUFXLENB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QUcsQ0FBQyxDQUFDLEVBQUU7QUFDM0QsVUFBVSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbkMsVUFBVSxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztBQUNsQyxVQUFVLE9BQU8sSUFBSSxDQUFDO0FBQ3RCLFNBQVM7QUFDVCxRQUFRLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25ELE9BQU87QUFDUCxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzNCLE1BQU0sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQzVCLE1BQU0sT0FBTyxJQUFJLENBQUM7QUFDbEIsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztBQUN2QyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsV0FBVyxDQUFDO0FBQzVDLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDO0FBQ25DLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDO0FBQ25DLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUU7QUFDN0MsTUFBTSxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0FBQ2hDLFVBQVUsS0FBSyxHQUFHLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUM7QUFDOUMsVUFBVSxNQUFNLEdBQUcsQ0FBQyxL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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFO0FBQ3JDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDcEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNwQyxNQUFNLE9BQU8sTUFBTSxJQUFJLElBQUksSUFBSSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO0FBQzNELE1BQU0sT0FBTyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQy9FLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtBQUM1RCxNQUFNLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNO0FBQy9CLFVBQVUsS0FBSyxHQUFHLFNBQVMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDMUM7QUFDQSxNQUFNLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsTUFBTTtBQUNwRCxRQUFRLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7QUFD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QzNCLFVBQVUsS0FBSyxDQUFDLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQztBQUNsQyxVQUFVLEtBQUssQ0FBQyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0MsVUFBVSxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxVQUFVLEtBQUssQ0FBQyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3RCxVQUFVLEtBQUssQ0FBQyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEUsVUFBVSxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRSxVQUFVLEtBQUssQ0FBQyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RixVQUFVLEtBQUssQ0FBQyxFQUFF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LENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsR0FBRyxJQUFJLEdBQUcsU0FBUyxNQUFNLEVBQUU7QUFDeEcsTUFBTSxPQUFPLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzdCLEtBQUssQ0FBQztBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsYUFBYSxDQUFDLFFBQVEsRUFBRTtBQUNyQyxNQUFNLE9BQU8sU0FBUyxNQUFNLEVBQUU7QUFDOUIsUUFBUSxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakMsUUFBUSxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUU7QUFDM0IsVUFBVSxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwQyxTQUFTO0FBQ1QsUUFBUSxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUU7QUFDM0IsVUFBVSxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwQyxTQUFTO0FBQ1QsUUFBUSxPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDckQsT0FBTyxDQUFDO0FBQ1IsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7QUFDdkYsTUFBTSxJQUFJLFNBQVMsR0FBRyxPQUFPLEdBQUcsa0JBQWtCLENBQUM7QUFDbkQs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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsY0FBYyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUU7QUFDOUMsTUFBTSxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNO0FBQ25DLFVBQVUsU0FBUyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7QUFDakUsVUFBVSxFQUFFLENBQUM7QUFDYixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFO0FBQ3pDLE1BQU0sT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTTtBQUNuQyxVQUFVLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUM7QUFDM0QsVUFBVSxFQUFFLENBQUM7QUFDYixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDNUMsTUFBTSxJQUFJLE1BQU0s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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO0FBQzNCLE1BQU0sT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUdBLFdBQVMsQ0FBQztBQUNoRixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFO0FBQ3BDLE1BQU0sT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTTtBQUM5RCxVQUFVLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO0FBQ3BDLFVBQVUsS0FBSyxDQUFDO0FBQ2hCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQ2hELE1BQU0sT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTTtBQUM5RCxVQUFVLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDOUQsVUFBVSxLQUFLLENBQUM7QUFDaEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUU7QUFDcEQsTUFBTSxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNO0FBQzlELFVBQVUsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUVBLFdBQVMsRUFBRSxVQUFVLENBQUM7QUFDM0QsVUFBVSxLQUFLLENBQUM7QUFDaEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsU0FBUyxLQUFLLEVBQUUsT0FBTyxFQUFFO0FBQ25ELE1BQU0sSUFBSSxNQUFNLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU07QUFDbkQsVUFBVSxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxQztBQUNBLE1BQU0sVUFBVSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLFNBQVMsS0FBSyxFQUFFO0FBQzFELFFBQVEs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S0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUNwRCxNQUFNLE9BQU8sTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN2RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDbkMsTUFBTSxJQUFJLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUNwQyxRQUFRLE9BQU8sRUFBRSxDQUFDO0FBQ2xCLE9BQU87QUFDUCxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUtBLFdBQVMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hELE1BQU0sT0FBTyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDeEMsTUFBTSxJQUFJLE1BQU0sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ3BELE1BQU0sSUFBSSxDQUFDLE1BQU0s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QU0sR0FBRyxDQUFDLENBQUMsR0FBR0EsV0FBUyxDQUFDO0FBQ2pFO0FBQ0EsTUFBTSxRQUFRLEdBQUcsT0FBTyxRQUFRLElBQUksVUFBVSxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLElBQUlBLFdBQVMsQ0FBQztBQUN0RixNQUFNLE9BQU8sU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN6QyxLQUFLLENBQUMsQ0FBQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRTtBQUMxQixNQUFNLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxNQUFNLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQzlCLE1BQU0sT0FBTyxNQUFNLENBQUM7QUFDcEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRTtBQUNyQyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QixNQUFNLE9BQU8sS0FBSyxDQUFDO0FBQ25CLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMs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SUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksUUFBUSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxPQUFPLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRTtBQUMzQyxNQUFNLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdkQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxXQUFXLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRTtBQUMvQyxNQUFNLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDOUQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtBQUN2RCxNQUFNLEtBQUssR0FBRyxLQUFLLEtBQUtBLFdBQVMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pELE1BQU0sT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzRCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsT0FBTyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUU7QUFDM0MsTUFBTSxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsU0FBUyxHQUFHLFFBQVEsQ0FBQztBQUM1RCxNQUFNLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRTtBQUNoRCxNQUFNLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxjQUFjLEdBQUcsYUFBYSxDQUFDO0FBQ3RFLE1BQU0sT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0FBQ2hFLE1BQU0sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRTtBQUM1QyxRQUFRLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDaEMsT0FBTyxNQUFNO0FBQ2IsUUFBUSxlQUFlLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDOUMsT0FBTztBQUNQLEtBQUssQ0FBQyxDQUFDO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsUUFBUSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRTtBQUMzRCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM3RSxNQUFNLFNBQVMsR0FBRyxDQUFDLFNBQVMsSUFBSSxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25FO0FBQ0EsTUFBTSxJQUFJLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO0FBQ3JDLE1BQU0sSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFO0FBQ3pCLFFBQVEsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3JELE9BQU87QUFDUCxNQUFNLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQztBQUNqQyxXQUFXLFNBQVMsSUFBSSxNQUFNLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzNFLFdBQVcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxXQUFXLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQzlELE1BQU0sSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ3BCLFVBQVUsTUFBTSxHQUFHLE9BQU8sSUFBSSxJQUFJLFVBQVU7QUFDNUMsVUFBVSxNQUFNLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzNFO0FBQ0EsTUFBTSxRQUFRLENBQUMsVUFBVSxFQUFFLFNBQVMsS0FBSyxFQUFFO0FBQzNDLFFBQVEsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzVGLE9BQU8sQ0FBQyxDQUFDO0FBQ1QsTUFBTSxPQUFPLE1BQU0sQ0FBQztBQUNwQixLQUFLLENBQUMsQ0FBQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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V0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ25ILE1BQU0sTUFBTSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO0FBQzdDLE1BQU0sT0FBTyxNQUFNLENBQUM7QUFDcEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDNUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxHQUFHQSxXQUFTLEdBQUcsS0FBSyxDQUFDO0FBQ3hDLE1BQU0sSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRUEsV0FBUyxFQUFFQSxXQUFTLEVBQUVBLFdBQVMsRUFBRUEsV0FBUyxFQUFFQSxXQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDekgsTUFBTSxNQUFNLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7QUFDbEQsTUFBTSxPQUFPLE1BQU0sQ0FBQztBQUNwQixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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QU0sT0FBTyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN0QyxLQUFLLENBQUMsQ0FBQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQ3BELE1BQU0sT0FBTyxTQUFTLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDeEQsS0FBSyxDQUFDLENBQUM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFO0FBQ3hCLE1BQU0sT0FBTyxVQUFVLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQzlDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDckMsTUFBTSxJQUFJLE9BQU8sSUFBSSxJQUFJLFVBQVUsS0FBSyxRQUFRLElBQUksSUFBSSxJQUFJLE9BQU8sUUFBUSxJQUFJLFVBQVUsQ0FBQyxFQUFFO0FBQzVGLFFBQVEsTUFBTSxJQUFJLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUM3QyxPQUFPO0FBQ1AsTUFBTSxJQUFJLFFBQVEsR0FBRyxXQUFXO0FBQ2hDLFFBQVEsSUFBSSxJQUFJLEdBQUcsU0FBUztBQUM1QixZQUFZLEdBQUcsR0FBRyxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNqRSxZQUFZLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO0FBQ25DO0FBQ0EsUUFBUSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDNUIsVUFBVSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEMsU0FBUztBQUNULFFBQVEsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDNUMsUUFBUSxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQztBQUN6RCxRQUFRLE9BQU8sTUFBTSxDQUFDO0FBQ3RCLE9BQU8sQ0FBQztBQUNSLE1BQU0sUUFBUSxDQUFDLEtBQUssR0FBRyxLQUFLLE9BQU8sQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLENBQUM7QUFDdkQsTUFBTSxPQUFPLFFBQVEsQ0FBQztBQUN0QixLQUFLO0FBQ0w7QUFDQTtBQUNBLElBQUksT0FBTyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE1BQU0sQ0FBQyxTQUFTLEVBQUU7QUFDL0IsTUFBTSxJQUFJLE9BQU8sU0FBUyxJQUFJLFVBQVUsRUFBRTtBQUMxQyxRQUFRLE1BQU0sSUFBSSxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDN0MsT0FBTztBQUNQLE1BQU0sT0FBTyxXQUFXO0FBQ3hCLFFBQVEsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDO0FBQzdCLFFBQVEsUUFBUSxJQUFJLENBQUMsTUFBTTtBQUMzQixVQUFVLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9DLFVBQVUsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hELFVBQVUsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRSxVQUFVLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFFLFNBQVM7QUFDVCxRQUFRLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM1QyxPQUFPLENBQUM7QUFDUixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsSUFBSSxDQUFDLElBQUksRUFBRTtBQUN4QixNQUFNLE9BQU8sTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3QixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLFNBQVMsSUFBSSxFQUFFLFVBQVUsRUFBRTtBQUN2RCxNQUFNLFVBQVUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEUsVUFBVSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQzNELFVBQVUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN6RTtBQUNBLE1BQU0sSUFBSSxXQUFXLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztBQUMxQyxNQUFNLE9BQU8sUUFBUSxDQUFDLFNBQVMsSUFBSSxFQUFFO0FBQ3JDLFFBQVEsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLFlBQVksTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3pEO0FBQ0EsUUFBUSxPQUFPLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRTtBQUNqQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNsRSxTQUFTO0FBQ1QsUUFBUSxPQUFPLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLE9BQU8sQ0FB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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxTQUFTLEdBQUc7QUFDekIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtBQUM3QixRQUFRLE9BQU8sRUFBRSxDQUFDO0FBQ2xCLE9BQU87QUFDUCxNQUFNLElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixNQUFNLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRTtBQUMxQixNQUFNLE9BQU8sU0FBUyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0FBQ2xELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFO0FBQzFDLE1BQU0sVUFBVSxHQUFHLE9BQU8sVUFBVSxJQUFJLFVBQVUsR0FBRyxVQUFVLEdBQUdBLFdBQVMsQ0FBQztBQUM1RSxNQUFNLE9BQU8sU0FBUyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxVQUFVLENBQUMs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QztBQUN2QixTQUFTO0FBQ1QsT0FBTztBQUNQLE1BQU0sT0FBTyxJQUFJLENBQUM7QUFDbEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDbkMsTUFBTSxPQUFPLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdkMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7QUFDbkQsTUFBTSxVQUFVLEdBQUcsT0FBTyxVQUFVLElBQUksVUFBVSxHQUFHLFVBQVUsR0FBR0EsV0FBUyxDQUFDO0FBQzVFLE1BQU0sSUFBSSxNQUFNLEdBQUcsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUdBLFdBQVMsQ0FBQztBQUNyRSxNQUFNLE9BQU8sTUFBTSxLQUFLQSxXQUFTLEdBQUcsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUVBLFdBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ2hHLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxPQUFPLENBQUMsS0FBSyxFQUFFO0FBQzVCLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUNoQyxRQUFRLE9BQU8sS0FBSyxDQUFDO0FBQ3JCLE9BQU87QUFDUCxNQUFNLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFFBQVEsSUFBSSxHQUFHLElBQUksU0FBUztBQUNoRCxTQUFTLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxRQUFRLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxJQUFJLFFBQVEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3JHLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRTtBQUM3QixNQUFNLE9BQU8sT0FBTyxLQUFLLElBQUksUUFBUSxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvRCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFVBQVUsQ0FBQyxLQUFLLEVBQUU7QUFDL0IsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzVCLFFBQVEsT0FBTyxLQUFLLENBQUM7QUFDckIsT0FBTztBQUNQO0FBQ0E7QUFDQSxNQUFNLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sSUFBSSxHQUFHLElBQUksTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FBQztBQUNuRixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUU7QUFDOUIsTUFBTSxPQUFPLE9BQU8sS0FBSyxJQUFJLFFBQVEsSUFBSSxLQUFLLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25FLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRTtBQUM3QixNQUFNLE9BQU8sT0FBTyxLQUFLLElBQUksUUFBUTtBQUNyQyxRQUFRLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksZ0JBQWdCLENBQUM7QUFDbEUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRTtBQUM3QixNQUFNLElBQUksSUFBSSxHQUFHLE9BQU8sS0FBSyxDQUFDO0FBQzlCLE1BQU0sT0FBTyxLQUFLLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxRQUFRLElBQUksSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDO0FBQ3ZFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxZQUFZLENBQUMsS0FBSyxFQUFFO0FBQ2pDLE1BQU0sT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVEsQ0FBQztBQUN2RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLEtBQUssR0FBRyxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFO0FBQ3JDLE1BQU0sT0FBTyxNQUFNLEtBQUssTUFBTSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFO0FBQ3JELE1BQU0sVUFBVSxHQUFHLE9BQU8sVUFBVSxJQUFJLFVBQVUsR0FBRyxVQUFVLEdBQUdBLFdBQVMsQ0FBQztBQUM1RSxNQUFNLE9BQU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzNFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUU7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsTUFBTSxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDaEQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxRQUFRLENBQUMsS0FBSyxFQUFFO0FBQzdCLE1BQU0sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDN0IsUUFBUSxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3pDLE9BQU87QUFDUCxNQUFNLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsTUFBTSxDQUFDLEtBQUssRUFBRTtBQUMzQixNQUFNLE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQztBQUM1QixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUU7QUFDMUIsTUFBTSxPQUFPLEtBQUssSUFBSSxJQUFJLENBQUM7QUFDM0IsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxRQUFRLENBQUMsS0FBSyxFQUFFO0FBQzdCLE1BQU0sT0FBTyxPQUFPLEtBQUssSUFBSSxRQUFRO0FBQ3JDLFNBQVMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQztBQUNoRSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxhQUFhLENBQUMsS0FBSyxFQUFFO0FBQ2xDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksU0FBUyxFQUFFO0FBQ2xFLFFBQVEsT0FBTyxLQUFLLENBQUM7QUFDckIsT0FBTztBQUNQLE1BQU0sSUFBSSxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RDLE1B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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUU7QUFDOUIsTUFBTSxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDO0FBQ2hFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRTtBQUM5QixNQUFNLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUM7QUFDcEUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxFQUFFLEdBQUcseUJBQXlCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQyxTQUFTLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDL0QsTUFBTSxPQUFPLEtBQUssSUFBSSxLQUFLLENBQUM7QUFDNUIsS0FBSyxDQUFDLENBQUM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLFlBQVksR0FBRyxjQUFjLENBQUMsU0FBUyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDckYsTUFBTSxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDN0QsS0FBSyxDQUFDLENBQUM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLFVBQVUsR0FBRyxjQUFjLENBQUMsU0FBUyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkYsTUFBTSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDM0QsS0FBSyxDQUFDLENBQUM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxPQUFPLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRTtBQUN4QyxNQUFNLE9BQU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3hFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsV0FBVyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUU7QUFDNUMsTUFBTSxPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUM3RSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUNyQyxNQUFNLE9BQU8sTUFBTSxJQUFJLElBQUk7QUFDM0IsVUFBVSxNQUFNO0FBQ2hCLFVBQVUsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzVELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUU7QUFDMUMsTUFBTSxPQUFPLE1BQU0sSUFBSSxJQUFJO0FBQzNCLFVBQVUsTUFBTTtBQUNoQixVQUFVLFlBQVksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNqRSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUN0QyxNQUFNLE9BQU8sTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsV0FBVyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUU7QUFDM0MsTUFBTSxPQUFPLE1BQU0sSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUU7QUFDL0IsTUFBTSxPQUFPLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDdkUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2pDLE1BQU0sT0FBTyxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtBQUM3QyxNQUFNLElBQUksTUFBTSxHQUFHLE1BQU0sSUFBSSxJQUFJLEdBQUdBLFdBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RFLE1BQU0sT0FBTyxNQUFNLEtBQUtBLFdBQVMsR0FBRyxZQUFZLEdBQUcsTUFBTSxDQUFDO0FBQzFELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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QUFDQTtBQUNBLElBQUksU0FBUyxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQzFCLE1BQU0sT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM1RSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE1BQU0sQ0FBQyxNQUFNLEVBQUU7QUFDNUIsTUFBTSxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwRixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUU7QUFDdkMsTUFBTSxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxQztBQUNBLE1BQU0sVUFBVSxDQUFDLE1BQU0sRUFBRSxTQUFTLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO0FBQ3RELFFBQVEsZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNyRSxPQUFPLENBQUMsQ0FBQztBQUNULE1BQU0sT0FBTyxNQUFNLENBQUM7QUFDcEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUU7QUFDekMsTUFBTSxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxQztBQUNBLE1BQU0sVUFBVSxDQUFDLE1BQU0sRUFBRSxTQUFTLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO0FBQ3RELFFBQVEsZUFBZSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNuRSxPQUFPLENBQUMsQ0FBQztBQUNULE1BQU0sT0FBTyxNQUFNLENBQUM7QUFDcEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksS0FBSyxHQUFHLGNBQWMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQ2xFLE1BQU0sU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDMUMsS0FBSyxDQUFDLENBQUM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QUFLLEdBQUcsTUFBTSxJQUFJLElBQUksR0FBR0EsV0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1RSxRQUFRLElBQUksS0FBSyxLQUFLQSxXQUFTLEVBQUU7QUFDakMsVUFBVSxLQUFLLEdBQUcsTUFBTSxDQUFDO0FBQ3pCLFVBQVUsS0FBSyxHQUFHLFlBQVksQ0FBQztBQUMvQixTQUFTO0FBQ1QsUUFBUSxNQUFNLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQ2hFLE9BQU87QUFDUCxNQUFNLE9BQU8sTUFBTSxDQUFDO0FBQ3BCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUN0QyxNQUFNLE9BQU8sTUFBTSxJQUFJLElBQUksR0FBRyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDcEUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7QUFDdEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxVQUFVLElBQUksVUFBVSxHQUFHLFVBQVUsR0FBR0EsV0FBUyxDQUFD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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtBQUMzQyxNQUFNLE9BQU8sTUFBTSxJQUFJLElBQUksR0FBRyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDdkYsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUU7QUFDM0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxVQUFVLElBQUksVUFBVSxHQUFHLFVBQVUsR0FBR0EsV0FBUyxDQUFDO0FBQzVFLE1BQU0sT0FBTyxNQUFNLElBQUksSUFBSSxHQUFHLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDbkcsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzVCLE1BQU0sT0FBTyxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3BFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxRQUFRLENBQUMsTUFBTSxFQUFFO0FBQzlCLE1BQU0sT0FBTyxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDekMsTUFBTSxJQUFJLEtBQUssS0FBS0EsV0FBUyxFQUFFO0FBQy9CLFFBQVEsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUN0QixRQUFRLEtBQUssR0FBR0EsV0FBUyxDQUFDO0FBQzFCLE9BQU87QUFDUCxNQUFNLElBQUksS0FBSyxLQUFLQSxXQUFTLEVBQUU7QUFDL0IsUUFBUSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLFFBQVEsS0FBSyxHQUFHLEtBQUssS0FBSyxLQUFLLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUM1QyxPQUFPO0FBQ1AsTUFBTSxJQUFJLEtBQUssS0FBS0EsV0FBUyxFQUFFO0FBQy9CLFFBQVEsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxRQUFRLEtBQUssR0FBRyxLQUFLLEtBQUssS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDNUMsT0FBTztBQUNQLE1BQU0sT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN2RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUN6QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUIsTUFBTSxJQUFJLEdBQUcsS0FBS0EsV0FBUyxFQUFFO0FBQzdCLFFBQVEsR0FBRyxHQUFHLEtBQUssQ0FBQztBQUNwQixRQUFRLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDbEIsT0FBTyxNQUFNO0FBQ2IsUUFBUSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzVCLE9BQU87QUFDUCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDaEMsTUFBTSxPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzdDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtBQUM1QyxNQUFNLElBQUksUUFBUSxJQUFJLE9BQU8sUUFBUSxJQUFJ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LENBQUMsS0FBSyxFQUFFLFNBQVMsSUFBSSxFQUFFO0FBQzVELFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUU7QUFDMUMsVUFBVSxNQUFNLElBQUksU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQy9DLFNBQVM7QUFDVCxRQUFRLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUMsT0FBTyxDQUFDLENBQUM7QUFDVDtBQUNBLE1BQU0sT0FBTyxRQUFRLENBQUMsU0FBUyxJQUFJLEVBQUU7QUFDckMsUUFBUSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2QixRQUFRLE9BQU8sRUFBRSxLQUFLLEdBQUcsTUFBTSxFQUFFO0FBQ2pDLFVBQVUsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xDLFVBQVUsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRTtBQUMxQyxZQUFZLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDOUMsV0FBVztBQUNYLFNBQVM7QUFDVCxPQUFPLENBQUMsQ0FBQztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxRQUFRLENBQUMsTUFBTSxFQUFFO0FBQzlCLE1BQU0sT0FBTyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0FBQzlELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBTSxPQUFPLFdBQVc7QUFDeEIsUUFBUSxPQUFPLEtBQUssQ0FBQztBQUNyQixPQUFPLENBQUM7QUFDUixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFO0FBQzVDLE1BQU0sT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO0FBQ3ZFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLElBQUksR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRTtBQUM3QixNQUFNLE9BQU8sS0FBSyxDQUFDO0FBQ25CLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxRQUFRLENBQUMsSUFBSSxFQUFFO0FBQzVCLE1BQU0sT0FBTyxZQUFZLENBQUMsT0FBTyxJQUFJLElBQUksVUFBVSxHQUFHLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7QUFDL0YsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxPQUFPLENBQUMsTUFBTSxFQUFFO0FBQzdCLE1BQU0sT0FBTyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0FBQzdELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxlQUFlLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtBQUM3QyxNQUFNLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxF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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE1BQU0sQ0FBQyxDQUFDLEVBQUU7QUFDdkIsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sT0FBTyxRQUFRLENBQUMsU0FBUyxJQUFJLEVBQUU7QUFDckMsUUFBUSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEMsT0FBTyxDQUFDLENBQUM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsUUFBUSxDQUFDLElBQUksRUFBRTtBQUM1QixNQUFNLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM5RSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsVUFBVSxDQUFDLE1BQU0sRUFBRTtBQUNoQyxNQUFNLE9BQU8sU0FBUyxJQUFJLEVBQUU7QUFDNUIsUUFBUSxPQUFPLE1BQU0sSUFBSSxJQUFJLEdBQUdBLFdBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2xFLE9BQU8sQ0FBQztBQUNSLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsU0FBUyxHQUFHO0FBQ3pCLE1BQU0sT0FBTyxFQUFFLENBQUM7QUFDaEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsU0FBUyxHQUFHO0FBQ3pCLE1BQU0sT0FBTyxLQUFLLENBQUM7QUFDbkIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFVBQVUsR0FBRztBQUMxQixNQUFNLE9BQU8sRUFBRSxDQUFDO0FBQ2hCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFVBQVUsR0FBRztBQUMxQixNQUFNLE9BQU8sRUFBRSxDQUFDO0FBQ2hCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFFBQVEsR0FBRztBQUN4QixNQUFNLE9BQU8sSUFBSSxDQUFDO0FBQ2xCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFO0FBQ2hD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SyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGFBQWE7QUFDYixTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFlBQVk7QUFDOUIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNHLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsYUFBYTtBQUMvQixZQUFZLEdBQUcsRUFBRTtBQUNqQixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztBQUN4QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGFBQWE7QUFDYixTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLGlCQUFpQjtBQUNuQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5QyxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLGlCQUFpQjtBQUNuQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5QyxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFdBQVc7QUFDN0IsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNoRCxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFdBQVc7QUFDN0IsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BFLFNBQVM7QUFDVCxLQUFLLENBQUM7QUFDTixJQUFJLEdBQUcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUN6RSxJQUFJLFNBQVMsV0FBVyxDQUFDLElBQUksRUFBRTtBQUMvQixRQUFRLElBQUksS0FBSyxHQUFHTyxlQUFpQixDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJO0FBQ25GLFlBQVksT0FBT0EsZUFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDQSxlQUFpQixDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNqSixTQUFTLENBQUMsQ0FBQztBQUNYLFFBQVFBLGVBQWlCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUk7QUFDM0UsWUFBWSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNwRCxTQUFTLENBQUMsQ0FBQztBQUNYLFFBQVEsT0FBTyxLQUFLLENBQUM7QUFDckIsS0FBSztBQUNMLElBQUksU0FBUyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxHQUFHLENBQUMsYUFBYSxFQUFFO0FBQzFELFFBQVEsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4QyxRQUFRLElBQUksQ0FBQyxHQUFHO0FBQ2hCLFlBQVksTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsQ0FBQztBQUN6RCxRQUFRLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtBQUM3QyxZQUFZLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoQyxTQUFTO0FBQ1QsUUFBUSxJQUFJLEtBQUssR0FBR0EsZUFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEUsUUFBUSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLO0FBQ3RDLFlBQVksSUFBSSxJQUFJLEdBQUdBLGVBQWlCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN2RixZQUFZLElBQUksV0FBVyxHQUFHQSxlQUFpQixDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQ0EsZUFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0FBQ2xLLFlBQVksSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ3pCLFlBQVksV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUk7QUFDeEMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUMsYUFBYSxDQUFDLENBQUM7QUFDZixZQUFZLE9BQU87QUFDbkIsZ0JBQWdCLElBQUksRUFBRSxJQUFJO0FBQzFCLGdCQUFnQixHQUFHO0FBQ25CLGFBQWEsQ0FBQztBQUNkLFNBQVMsQ0FBQyxDQUFDO0FBQ1gsUUFBUSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtBQUM3QyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDckIsZ0JBQWdCLElBQUksRUFBRSxLQUFLO0FBQzNCLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckQsYUFBYSxDQUFDLENBQUM7QUFDZixTQUFTO0FBQ1QsUUFBUSxPQUFPLEdBQUcsQ0FBQztBQUNuQixLQUFLO0FBQ0wsSUFBSSxHQUFHLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM1QixJQUFJLFNBQVMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLEdBQUcsR0FBRyxDQUFDLGFBQWEsRUFBRTtBQUM5RCxRQUFRLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDcEQsS0FBSztBQUNMLElBQUksR0FBRyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7QUFDOUIsSUFBSSxNQUFNLE1BQU0sU0FBUyxRQUFRLENBQUMsTUFBTSxDQUFDO0FBQ3pDLFFBQVEsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDckMsWUFBWSxNQUFNLFNBQVMsR0FBRyxPQUFPLElBQUksT0FBTyxDQUFDLGdCQUFnQixLQUFLLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUM7QUFDakosWUFBWSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RCxZQUFZLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0FBQ2pDLFNBQVM7QUFDVCxRQUFRLFVBQVUsR0FBRztBQUNyQixZQUFZLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUMvQixTQUFTO0FBQ1QsS0FBSztBQUNMLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDeEIsQ0FBQyxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN0QixlQUFlLEdBQUcsR0FBRyxDQUFDOzs7OztBQ3JQdEI7QUFDQTtBQUNBLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ3NDO0FBQ3RDLElBQUksR0FBRyxDQUFDO0FBQ1IsQ0FBQyxVQUFVLEdBQUcsRUFBRTtBQUNoQixJQUFJLEdBQUcsQ0FBQyxLQUFLLEdBQUc7QUFDaEIsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFNBQVM7QUFDM0IsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDakQsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxTQUFTO0FBQzNCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDNUMsWUFBWSxRQUFRLEVBQUUsSUFBSTtBQUMxQixTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFlBQVk7QUFDOUIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDM0gsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxRQUFRO0FBQzFCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQzVDLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsUUFBUTtBQUMxQixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsc0JBQXNCLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDMUQsWUFBWSxRQUFRLEVBQUUsSUFBSTtBQUMxQixTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFlBQVk7QUFDOUIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBQzFGLFlBQVksUUFBUSxFQUFFLElBQUk7QUFDMUIsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxzQkFBc0I7QUFDeEMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUM1RCxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFVBQVU7QUFDNUIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQy9DLFlBQVksUUFBUSxFQUFFLElBQUk7QUFDMUIsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxPQUFPO0FBQ3pCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxQixTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLE1BQU07QUFDeEIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBQ3pFLFlBQVksUUFBUSxFQUFFLElBQUk7QUFDMUIsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxtQkFBbUI7QUFDckMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QyxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLGdCQUFnQjtBQUNsQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzdDLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsVUFBVTtBQUM1QixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxRixZQUFZLFFBQVEsRUFBRSxJQUFJO0FBQzFCLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsU0FBUztBQUMzQixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNuRixTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLGVBQWU7QUFDakMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuRSxZQUFZLE1BQU0sRUFBRSxDQUFDO0FBQ3JCLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsVUFBVTtBQUM1QixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQzNDLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsV0FBVztBQUM3QixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMvRCxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLG1CQUFtQjtBQUNyQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDaEYsWUFBWSxRQUFRLEVBQUUsSUFBSTtBQUMxQixTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFdBQVc7QUFDN0IsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3hHLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsV0FBVztBQUM3QixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNwRCxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLGVBQWU7QUFDakMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDbEQsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxpQkFBaUI7QUFDbkMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztBQUM5RSxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFFBQVE7QUFDMUIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzFFLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsdUJBQXVCO0FBQ3pDLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3JDLFlBQVksUUFBUSxFQUFFLElBQUk7QUFDMUIsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxTQUFTO0FBQzNCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMUQsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxvQkFBb0I7QUFDdEMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwQyxZQUFZLFFBQVEsRUFBRSxJQUFJO0FBQzFCLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsVUFBVTtBQUM1QixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2RCxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLE1BQU07QUFDeEIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDeEMsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxLQUFLO0FBQ3ZCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsRSxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLE9BQU87QUFDekIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNwQyxZQUFZLFFBQVEsRUFBRSxJQUFJO0FBQzFCLFNBQVM7QUFDVCxLQUFLLENBQUM7QUFDTixJQUFJLEdBQUcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUN6RSxJQUFJLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQztBQUNyQyxJQUFJLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQztBQUN2QyxJQUFJLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQztBQUNqQyxJQUFJLFNBQVMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7QUFDdEMsUUFBUSxJQUFJLE9BQU8sSUFBSSxJQUFJLFFBQVEsRUFBRTtBQUNyQyxZQUFZLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDMUMsZ0JBQWdCLE9BQU8sRUFBRSxDQUFDO0FBQzFCLFlBQVksSUFBSSxhQUFhLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzRCxZQUFZLElBQUksYUFBYSxFQUFFO0FBQy9CLGdCQUFnQixJQUFJLFVBQVUsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pELGdCQUFnQixJQUFJLGNBQWMsR0FBRyxVQUFVLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7QUFDM0UsZ0JBQWdCLElBQUksTUFBTSxHQUFHLFlBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEQsZ0JBQWdCLElBQUksTUFBTTtBQUMxQixvQkFBb0IsT0FBTyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLGNBQWMsQ0FBQztBQUNyRSxnQkFBZ0IsT0FBTyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsY0FBYyxDQUFDO0FBQzdFLGFBQWE7QUFDYixZQUFZLE9BQU8sSUFBSSxDQUFDO0FBQ3hCLFNBQVM7QUFDVCxhQUFhO0FBQ2IsWUFBWSxPQUFPLElBQUksQ0FBQyxNQUFNO0FBQzlCLGlCQUFpQixPQUFPLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO0FBQzVELGlCQUFpQixPQUFPLENBQUMsc0RBQXNELEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDaEcsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBLElBQUksU0FBUyxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtBQUN4QyxRQUFRLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3pELFFBQVEsUUFBUSxJQUFJO0FBQ3BCLFlBQVksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQztBQUNoQyxZQUFZLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUM7QUFDbkMsYUFBYSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFO0FBQ3hHLEtBQUs7QUFDTCxJQUFJLFNBQVMsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7QUFDekMsUUFBUSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0QsS0FBSztBQUNMLElBQUksU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtBQUN0QyxRQUFRLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3pELFFBQVEsSUFBSSxJQUFJO0FBQ2hCLFlBQVksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksWUFBWSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxRSxRQUFRLE9BQU8sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQztBQUMvQyxLQUFLO0FBQ0wsSUFBSSxTQUFTLElBQUksQ0FBQyxNQUFNLEVBQUU7QUFDMUIsUUFBUSxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDNUIsUUFBUSxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUk7QUFDekMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDcEMsZ0JBQWdCLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBQzNGLGdCQUFnQixVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQ3pGLGFBQWE7QUFDYixTQUFTLENBQUMsQ0FBQztBQUNYLFFBQVEsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JDLEtBQUs7QUFDTCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLElBQUksSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLElBQUksU0FBUyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtBQUNsQyxRQUFRLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQztBQUMvRCxRQUFRLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUN4RCxLQUFLO0FBQ0wsSUFBSSxTQUFTLFlBQVksQ0FBQyxHQUFHLEVBQUU7QUFDL0IsUUFBUSxPQUFPLElBQUksTUFBTSxDQUFDLEdBQUc7QUFDN0IsYUFBYSxPQUFPLENBQUMscUJBQXFCLEVBQUUsT0FBTyxDQUFDO0FBQ3BELGFBQWEsT0FBTyxDQUFDLHFCQUFxQixFQUFFLFFBQVEsQ0FBQztBQUNyRCxhQUFhLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUM7QUFDcEQsYUFBYSxPQUFPLENBQUMscUJBQXFCLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUN2RCxLQUFLO0FBQ0wsSUFBSSxTQUFTLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRTtBQUNwRCxRQUFRLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQztBQUM1QixRQUFRLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUN4QixRQUFRLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSztBQUN2QyxZQUFZLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxPQUFPLEVBQUU7QUFDbkMsZ0JBQWdCLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEMsYUFFYTtBQUNiLFlBQVksSUFBSSxVQUFVLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDakQsWUFBWSxVQUFVLEdBQUcsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxtQkFBbUIsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUN6RyxZQUFZLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUNuQyxZQUFZLFFBQVEsQ0FBQyxDQUFDLElBQUk7QUFDMUIsZ0JBQWdCLEtBQUssU0FBUztBQUM5QixvQkFBb0IsSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLFVBQVUsR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELG9CQUFvQixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNsRCxvQkFBb0IsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDO0FBQ25FLG9CQUFvQixNQUFNO0FBQzFCLGdCQUFnQixLQUFLLFFBQVEsQ0FBQztBQUM5QixnQkFBZ0IsS0FBSyxlQUFlO0FBQ3BDLG9CQUFvQixNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDO0FBQ3JFLG9CQUFvQixNQUFNO0FBQzFCLGdCQUFnQixLQUFLLFVBQVUsQ0FBQztBQUNoQyxnQkFBZ0IsS0FBSyxXQUFXO0FBQ2hDLG9CQUFvQixJQUFJLFVBQVUsSUFBSSxhQUFhLEVBQUU7QUFDckQsd0JBQXdCLElBQUksT0FBTyxHQUFHO0FBQ3RDLDRCQUE0QixJQUFJLEVBQUUsR0FBRyxJQUFJLFVBQVUsR0FBRyxRQUFRLEVBQUUsQ0FBQztBQUNqRSw0QkFBNEIsR0FBRyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDekQseUJBQXlCLENBQUM7QUFDMUIsd0JBQXdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDL0Msd0JBQXdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUM7QUFDL0UscUJBQXFCO0FBQ3JCLHlCQUF5QjtBQUN6Qix3QkFBd0IsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDMUQscUJBQXFCO0FBQ3JCLG9CQUFvQixNQUFNO0FBQzFCLGdCQUFnQixLQUFLLG1CQUFtQjtBQUN4QyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0I7QUFDaEIsb0JBQW9CLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM3RyxhQUFhO0FBQ2IsWUFBWSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLFNBQVMsQ0FBQyxDQUFDO0FBQ1gsUUFBUSxPQUFPLE1BQU0sQ0FBQztBQUN0QixLQUFLO0FBQ0wsSUFBSSxTQUFTLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtBQUMvQyxRQUFRLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLHNCQUFzQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3hILFFBQVEsSUFBSSxJQUFJLEdBQUc7QUFDbkIsWUFBWSxJQUFJO0FBQ2hCLFlBQVksR0FBRztBQUNmLFNBQVMsQ0FBQztBQUNWLFFBQVEsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQzNCLFFBQVEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUk7QUFDekIsWUFBWSxPQUFPLEdBQUcsT0FBTyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM5QyxZQUFZLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ2hDLFNBQVMsQ0FBQyxDQUFDO0FBQ1gsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztBQUNsQyxZQUFZLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQ2pDLFFBQVEsSUFBSSxPQUFPO0FBQ25CLFlBQVksSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFDbkMsUUFBUSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVCLEtBQUs7QUFDTCxJQUFJLFNBQVMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsR0FBRyxDQUFDLGFBQWEsRUFBRTtBQUMxRCxRQUFRLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEMsUUFBUSxJQUFJLENBQUMsR0FBRztBQUNoQixZQUFZLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLENBQUM7QUFDekQsUUFBUSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7QUFDN0MsWUFBWSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEMsU0FBUztBQUNULFFBQVEsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQzFCLFFBQVEsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLO0FBQ3BFLFlBQVksSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzFFLFlBQVksVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDMUMsU0FBUyxDQUFDLENBQUM7QUFDWCxRQUFRLE9BQU8sUUFBUSxDQUFDO0FBQ3hCLEtBQUs7QUFDTCxJQUFJLEdBQUcsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQzVCLElBQUksU0FBUyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsR0FBRyxHQUFHLENBQUMsYUFBYSxFQUFFO0FBQzlELFFBQVEsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNwRCxLQUFLO0FBQ0wsSUFBSSxHQUFHLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztBQUM5QixJQUFJLE1BQU0sTUFBTSxTQUFTLFFBQVEsQ0FBQyxNQUFNLENBQUM7QUFDekMsUUFBUSxXQUFXLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNyQyxZQUFZLE1BQU0sU0FBUyxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztBQUNqSixZQUFZLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hELFNBQVM7QUFDVCxRQUFRLFVBQVUsR0FBRztBQUNyQixZQUFZLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlCLFNBQVM7QUFDVCxLQUFLO0FBQ0wsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUN4QixDQUFDLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3RCLGVBQWUsR0FBRyxHQUFHLENBQUM7Ozs7O0FDeFR0QjtBQUNBO0FBQ0EsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDOEM7QUFDUjtBQUN0QyxJQUFJLEdBQUcsQ0FBQztBQUNSLENBQUMsVUFBVSxHQUFHLEVBQUU7QUFDaEIsSUFBSSxHQUFHLENBQUMsS0FBSyxHQUFHO0FBQ2hCLFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxTQUFTO0FBQzNCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDM0UsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxTQUFTO0FBQzNCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDNUMsWUFBWSxRQUFRLEVBQUUsSUFBSTtBQUMxQixTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFlBQVk7QUFDOUIsWUFBWSxHQUFHLEVBQUU7QUFDakIsZ0JBQWdCO0FBQ2hCLG9CQUFvQixRQUFRO0FBQzVCLG9CQUFvQixTQUFTO0FBQzdCLG9CQUFvQixPQUFPO0FBQzNCLG9CQUFvQixrQkFBa0I7QUFDdEMsb0JBQW9CLFNBQVM7QUFDN0Isb0JBQW9CLGtCQUFrQjtBQUN0QyxvQkFBb0IsYUFBYTtBQUNqQyxvQkFBb0IsV0FBVztBQUMvQixvQkFBb0IsU0FBUztBQUM3QixpQkFBaUI7QUFDakIsYUFBYTtBQUNiLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsUUFBUTtBQUMxQixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUM1QyxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFlBQVk7QUFDOUIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN6RSxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLGFBQWE7QUFDL0IsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDbEQsWUFBWSxRQUFRLEVBQUUsSUFBSTtBQUMxQixTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFdBQVc7QUFDN0IsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDekcsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxnQkFBZ0I7QUFDbEMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDOUMsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxTQUFTO0FBQzNCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUMxRCxZQUFZLFFBQVEsRUFBRSxJQUFJO0FBQzFCLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsWUFBWTtBQUM5QixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztBQUN4RSxZQUFZLFFBQVEsRUFBRSxJQUFJO0FBQzFCLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsc0JBQXNCO0FBQ3hDLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDN0QsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxVQUFVO0FBQzVCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqRCxZQUFZLFFBQVEsRUFBRSxJQUFJO0FBQzFCLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsT0FBTztBQUN6QixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUIsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxPQUFPO0FBQ3pCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztBQUNsRyxZQUFZLFFBQVEsRUFBRSxJQUFJO0FBQzFCLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsbUJBQW1CO0FBQ3JDLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUMsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxzQkFBc0I7QUFDeEMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QyxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFVBQVU7QUFDNUIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUYsWUFBWSxRQUFRLEVBQUUsSUFBSTtBQUMxQixTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFNBQVM7QUFDM0IsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNsRSxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLGVBQWU7QUFDakMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuRSxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFVBQVU7QUFDNUIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztBQUMzQyxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFdBQVc7QUFDN0IsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0QsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxtQkFBbUI7QUFDckMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2hGLFlBQVksUUFBUSxFQUFFLElBQUk7QUFDMUIsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxXQUFXO0FBQzdCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN4RyxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLFdBQVc7QUFDN0IsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDcEQsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxlQUFlO0FBQ2pDLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2xELFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsaUJBQWlCO0FBQ25DLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFDOUUsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxRQUFRO0FBQzFCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMxRSxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLHVCQUF1QjtBQUN6QyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNyQyxZQUFZLFFBQVEsRUFBRSxJQUFJO0FBQzFCLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsU0FBUztBQUMzQixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFELFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsb0JBQW9CO0FBQ3RDLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM5QyxZQUFZLFFBQVEsRUFBRSxJQUFJO0FBQzFCLFNBQVM7QUFDVCxRQUFRO0FBQ1IsWUFBWSxJQUFJLEVBQUUsVUFBVTtBQUM1QixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2RCxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLE1BQU07QUFDeEIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDeEMsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxLQUFLO0FBQ3ZCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsRSxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLE9BQU87QUFDekIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNwQyxZQUFZLFFBQVEsRUFBRSxJQUFJO0FBQzFCLFNBQVM7QUFDVCxLQUFLLENBQUM7QUFDTixJQUFJLEdBQUcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUN6RSxJQUFJLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQztBQUNyQyxJQUFJLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQztBQUN2QyxJQUFJLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQztBQUNqQyxJQUFJLFNBQVMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7QUFDdEMsUUFBUSxJQUFJLE9BQU8sSUFBSSxJQUFJLFFBQVEsRUFBRTtBQUNyQyxZQUFZLElBQUksVUFBVSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckQsWUFBWSxJQUFJLGFBQWEsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNELFlBQVksSUFBSSxpQkFBaUIsR0FBRyxhQUFhLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMxRSxZQUFZLElBQUksY0FBYyxHQUFHLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUN2RSxZQUFZLElBQUksYUFBYSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0QsWUFBWSxJQUFJLGFBQWEsRUFBRTtBQUMvQixnQkFBZ0IsSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN4RCxnQkFBZ0IsSUFBSSxNQUFNO0FBQzFCLG9CQUFvQixPQUFPLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDO0FBQ3pGLGdCQUFnQixPQUFPLGlCQUFpQixHQUFHLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxjQUFjLENBQUM7QUFDakcsYUFBYTtBQUNiLFlBQVksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3BFLFNBQVM7QUFDVCxhQUFhO0FBQ2IsWUFBWSxPQUFPLElBQUksQ0FBQyxNQUFNO0FBQzlCLGlCQUFpQixPQUFPLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO0FBQzVELGlCQUFpQixPQUFPLENBQUMsc0RBQXNELEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDaEcsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBLElBQUksU0FBUyxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtBQUN4QyxRQUFRLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3pELFFBQVEsUUFBUSxJQUFJO0FBQ3BCLFlBQVksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQztBQUNoQyxZQUFZLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUM7QUFDbkMsYUFBYSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFO0FBQ3hHLEtBQUs7QUFDTCxJQUFJLFNBQVMsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7QUFDekMsUUFBUSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0QsS0FBSztBQUNMLElBQUksU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtBQUN0QyxRQUFRLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3pELFFBQVEsSUFBSSxJQUFJO0FBQ2hCLFlBQVksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksWUFBWSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxRSxRQUFRLE9BQU8sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQztBQUMvQyxLQUFLO0FBQ0wsSUFBSSxTQUFTLElBQUksQ0FBQyxNQUFNLEVBQUU7QUFDMUIsUUFBUSxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDNUIsUUFBUSxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUk7QUFDekMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDcEMsZ0JBQWdCLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ3JGLGdCQUFnQixVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQ3pGLGFBQWE7QUFDYixTQUFTLENBQUMsQ0FBQztBQUNYLFFBQVEsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JDLEtBQUs7QUFDTCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLElBQUksSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLElBQUksU0FBUyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtBQUNsQyxRQUFRLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQztBQUMvRCxRQUFRLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUN4RCxLQUFLO0FBQ0wsSUFBSSxTQUFTLFlBQVksQ0FBQyxHQUFHLEVBQUU7QUFDL0IsUUFBUSxPQUFPLElBQUksTUFBTSxDQUFDLEdBQUc7QUFDN0IsYUFBYSxPQUFPLENBQUMscUJBQXFCLEVBQUUsT0FBTyxDQUFDO0FBQ3BELGFBQWEsT0FBTyxDQUFDLHFCQUFxQixFQUFFLFFBQVEsQ0FBQztBQUNyRCxhQUFhLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUM7QUFDcEQsYUFBYSxPQUFPLENBQUMscUJBQXFCLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUN2RCxLQUFLO0FBQ0wsSUFBSSxTQUFTLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRTtBQUN0RSxRQUFRLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQztBQUM1QixRQUFRLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUN4QixRQUFRLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSztBQUN2QyxZQUFZLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxPQUFPLEVBQUU7QUFDbkMsZ0JBQWdCLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEMsYUFFYTtBQUNiLFlBQVksSUFBSSxVQUFVLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDakQsWUFBWSxVQUFVLEdBQUcsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxtQkFBbUIsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUN6RyxZQUFZLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUNuQyxZQUFZLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksc0JBQXNCLEVBQUU7QUFDckUsZ0JBQWdCLGFBQWEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO0FBQzlDLGFBQWE7QUFDYixZQUFZLElBQUksTUFBTSxHQUFHLGFBQWEsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQztBQUM5RCxZQUFZLElBQUksTUFBTSxFQUFFO0FBQ3hCLGdCQUFnQixhQUFhLEdBQUcsRUFBRSxDQUFDO0FBQ25DLGFBQWE7QUFDYixZQUFZLFFBQVEsQ0FBQyxDQUFDLElBQUk7QUFDMUIsZ0JBQWdCLEtBQUssU0FBUztBQUM5QixvQkFBb0IsSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLFVBQVUsR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELG9CQUFvQixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUNwRSxvQkFBb0IsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDO0FBQ25FLG9CQUFvQixNQUFNO0FBQzFCLGdCQUFnQixLQUFLLFFBQVE7QUFDN0Isb0JBQW9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUM7QUFDckUsb0JBQW9CLE1BQU07QUFDMUIsZ0JBQWdCLEtBQUssZUFBZTtBQUNwQyxvQkFBb0IsSUFBSSxVQUFVLElBQUksYUFBYSxJQUFJLENBQUMsbUNBQW1DLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUMxRyx3QkFBd0IsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQztBQUN6RSxxQkFBcUI7QUFDckIseUJBQXlCO0FBQ3pCLHdCQUF3QixLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQzdELDRCQUE0QixJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxJQUFJLE1BQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ3BILGdDQUFnQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkcsNkJBQTZCO0FBQzdCLGlDQUFpQztBQUNqQyxnQ0FBZ0MsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRiw2QkFBNkI7QUFDN0IseUJBQXlCO0FBQ3pCLHFCQUFxQjtBQUNyQixvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxVQUFVLENBQUM7QUFDaEMsZ0JBQWdCLEtBQUssV0FBVztBQUNoQyxvQkFBb0IsSUFBSSxVQUFVLElBQUksYUFBYSxFQUFFO0FBQ3JELHdCQUF3QixJQUFJLE9BQU8sR0FBRztBQUN0Qyw0QkFBNEIsSUFBSSxFQUFFLEdBQUcsSUFBSSxVQUFVLEdBQUcsUUFBUSxFQUFFLENBQUM7QUFDakUsNEJBQTRCLEdBQUcsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3pELDRCQUE0QixNQUFNO0FBQ2xDLHlCQUF5QixDQUFDO0FBQzFCLHdCQUF3QixRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQy9DLHdCQUF3QixNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDO0FBQy9FLHFCQUFxQjtBQUNyQix5QkFBeUI7QUFDekIsd0JBQXdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzFELHFCQUFxQjtBQUNyQixvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxzQkFBc0IsQ0FBQztBQUM1QyxnQkFBZ0IsS0FBSyxtQkFBbUI7QUFDeEMsb0JBQW9CLE1BQU07QUFDMUIsZ0JBQWdCO0FBQ2hCLG9CQUFvQixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDN0csYUFBYTtBQUNiLFlBQVksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUN6QixTQUFTLENBQUMsQ0FBQztBQUNYLFFBQVEsT0FBTyxNQUFNLENBQUM7QUFDdEIsS0FBSztBQUNMLElBQUksU0FBUyxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEdBQUcsU0FBUyxFQUFFO0FBQzdFLFFBQVEsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0UsUUFBUSxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDNUIsUUFBUSxJQUFJLFFBQVEsRUFBRTtBQUN0QixZQUFZLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSTtBQUMzQyxnQkFBZ0IsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzlFLGdCQUFnQixJQUFJLElBQUksSUFBSSxVQUFVLEVBQUU7QUFDeEMsb0JBQW9CLE1BQU0sSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLHVCQUF1QixHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN6RixpQkFBaUI7QUFDakIscUJBQXFCO0FBQ3JCLG9CQUFvQixVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbEcsaUJBQWlCO0FBQ2pCLGFBQWEsQ0FBQyxDQUFDO0FBQ2YsU0FBUztBQUNULFFBQVEsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksc0JBQXNCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsR0FBRyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQzFLLFFBQVEsSUFBSSxJQUFJLEdBQUc7QUFDbkIsWUFBWSxJQUFJO0FBQ2hCLFlBQVksR0FBRztBQUNmLFNBQVMsQ0FBQztBQUNWLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDbEMsWUFBWSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztBQUNqQyxRQUFRLElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFO0FBQ3hDLFlBQVksSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDdEQsWUFBWSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUM7QUFDbkMsZ0JBQWdCLE1BQU0sSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLCtEQUErRCxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFILFNBQVM7QUFDVCxRQUFRLElBQUksS0FBSyxJQUFJLFVBQVUsRUFBRTtBQUNqQyxZQUFZLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNsRCxZQUFZLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDN0IsZ0JBQWdCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO0FBQ2xDLGFBQWE7QUFDYixZQUFZLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztBQUNuQyxnQkFBZ0IsTUFBTSxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsc0RBQXNELEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDakgsU0FBUztBQUNULFFBQVEsSUFBSSxJQUFJLElBQUksVUFBVSxFQUFFO0FBQ2hDLFlBQVksSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDO0FBQzdELFNBQVM7QUFDVCxhQUFhO0FBQ2IsWUFBWSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztBQUNuQyxTQUFTO0FBQ1QsUUFBUSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQztBQUMxRSxRQUFRLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxVQUFVLENBQUMseUJBQXlCLENBQUMsSUFBSSxNQUFNLENBQUM7QUFDdkYsUUFBUSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVCLEtBQUs7QUFDTCxJQUFJLFNBQVMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsR0FBRyxDQUFDLGFBQWEsRUFBRTtBQUMxRCxRQUFRLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEMsUUFBUSxJQUFJLENBQUMsR0FBRztBQUNoQixZQUFZLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLENBQUM7QUFDekQsUUFBUSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7QUFDN0MsWUFBWSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEMsU0FBUztBQUNULFFBQVEsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQzlCLFFBQVEsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0UsUUFBUSxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDNUIsUUFBUSxJQUFJLFFBQVEsRUFBRTtBQUN0QixZQUFZLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSTtBQUMzQyxnQkFBZ0IsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzlFLGdCQUFnQixJQUFJLElBQUksSUFBSSxVQUFVLEVBQUU7QUFDeEMsb0JBQW9CLE1BQU0sSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLHVCQUF1QixHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN6RixpQkFBaUI7QUFDakIscUJBQXFCO0FBQ3JCLG9CQUFvQixVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbEcsaUJBQWlCO0FBQ2pCLGFBQWEsQ0FBQyxDQUFDO0FBQ2YsU0FBUztBQUNULFFBQVEsVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUM7QUFDcEQsUUFBUSxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDMUIsUUFBUSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUs7QUFDcEUsWUFBWSxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDMUUsWUFBWSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMxQyxTQUFTLENBQUMsQ0FBQztBQUNYLFFBQVEsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUk7QUFDakMsWUFBWSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSTtBQUN4QyxnQkFBZ0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7QUFDN0MsU0FBUyxDQUFDLENBQUM7QUFDWCxRQUFRLE9BQU8sUUFBUSxDQUFDO0FBQ3hCLEtBQUs7QUFDTCxJQUFJLEdBQUcsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQzVCLElBQUksU0FBUyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsR0FBRyxHQUFHLENBQUMsYUFBYSxFQUFFO0FBQzlELFFBQVEsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNwRCxLQUFLO0FBQ0wsSUFBSSxHQUFHLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztBQUM5QixJQUFJLE1BQU0sTUFBTSxTQUFTLFFBQVEsQ0FBQyxNQUFNLENBQUM7QUFDekMsUUFBUSxXQUFXLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNyQyxZQUFZLE1BQU0sU0FBUyxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztBQUNqSixZQUFZLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hELFNBQVM7QUFDVCxRQUFRLFVBQVUsR0FBRztBQUNyQixZQUFZLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlCLFNBQVM7QUFDVCxLQUFLO0FBQ0wsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUN4QixDQUFDLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3RCLGVBQWUsR0FBRyxHQUFHLENBQUM7Ozs7O0FDMVp0QixNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNqQztBQUM3QixNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbkU7QUFDckMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLE9BQU9DLE9BQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN6RTtBQUNuQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsT0FBT0MsTUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDOzs7OztBQ045RyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMzQjtBQUNuQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbEU7QUFDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLE9BQU8sWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pILGdCQUFnQixHQUFHQyxRQUFxQixDQUFDOzs7OztBQ0x6QyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM5RCxvQkFBb0IsR0FBRyxxQkFBcUIsR0FBRyxjQUFjLEdBQUcsZUFBZSxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ2hDO0FBQ007QUFDcEI7QUFDc0I7QUFDeEI7QUFDTTtBQUNZO0FBQ3hCO0FBQ1E7QUFDd0I7QUFDcEM7QUFDSTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sYUFBYSxHQUFHLENBQUM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsQ0FBQztBQUNGLE1BQU0sT0FBTyxDQUFDO0FBQ2QsSUFBSSxXQUFXLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRTtBQUM1QixRQUFRLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzRSxRQUFRLElBQUksU0FBUyxHQUFHLElBQUlDLGlCQUFtQixDQUFDLGdCQUFnQixFQUFFLENBQUM7QUFDbkUsUUFBUSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUN2QyxZQUFZLFNBQVMsR0FBRyxJQUFJQSxpQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEYsU0FBUztBQUNULFFBQVEsTUFBTUMsYUFBVyxHQUFHQyxXQUFhLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzVGLFFBQVEsSUFBSUQsYUFBVyxDQUFDLEtBQUssRUFBRSxFQUFFO0FBQ2pDLFlBQVksTUFBTUEsYUFBVyxDQUFDLEtBQUssQ0FBQztBQUNwQyxTQUFTO0FBQ1QsUUFBUSxJQUFJLENBQUMsV0FBVyxHQUFHQSxhQUFXLENBQUMsS0FBSyxDQUFDO0FBQzdDLFFBQVEsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3pELEtBQUs7QUFDTCxDQUFDO0FBQ0QsZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUMxQixNQUFNLE1BQU0sQ0FBQztBQUNiLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUU7QUFDNUI7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsS0FBSyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNyRyxRQUFRLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxzQkFBc0IsRUFBRTtBQUMxRSxZQUFZLE1BQU0sS0FBSyxDQUFDLDRCQUE0QixHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqRSxTQUFTO0FBQ1QsUUFBUSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUN2QyxZQUFZLE1BQU0sS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7QUFDaEUsU0FBUztBQUNULFFBQVEsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQyxRQUFRLE1BQU0sRUFBRSxHQUFHLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN2RCxRQUFRLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO0FBQ3hCLFlBQVksTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO0FBQzNCLFNBQVM7QUFDVCxRQUFRLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO0FBQzNDLEtBQUs7QUFDTCxDQUFDO0FBQ0QsY0FBYyxHQUFHLE1BQU0sQ0FBQztBQUN4QixNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssS0FBSztBQUN6QyxJQUFJLElBQUk7QUFDUixRQUFRLFFBQVEsR0FBRyxDQUFDLElBQUk7QUFDeEIsWUFBWSxLQUFLLE9BQU87QUFDeEIsZ0JBQWdCLE9BQU9iLFVBQVksQ0FBQyxFQUFFLENBQUMsSUFBSU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN0RSxZQUFZLEtBQUssa0JBQWtCO0FBQ25DLGdCQUFnQixNQUFNLFdBQVcsR0FBR0wsU0FBVyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN6RSxnQkFBZ0IsSUFBSSxXQUFXLEVBQUU7QUFDakMsb0JBQW9CLE9BQU9GLFVBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDekQsaUJBQWlCO0FBQ2pCLGdCQUFnQixPQUFPQSxVQUFZLENBQUMsRUFBRSxDQUFDLElBQUlNLFNBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFGLFlBQVksS0FBSyw0QkFBNEI7QUFDN0MsZ0JBQWdCLE9BQU9OLFVBQVksQ0FBQyxFQUFFLENBQUMsSUFBSWUscUJBQXVCLENBQUMsdUJBQXVCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDeEcsWUFBWSxLQUFLLDJCQUEyQjtBQUM1QyxnQkFBZ0IsT0FBT2YsVUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJZ0Isb0JBQXNCLENBQUMsdUJBQXVCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDdkcsWUFBWSxLQUFLLHFCQUFxQjtBQUN0QyxnQkFBZ0IsT0FBT2hCLFVBQVksQ0FBQyxFQUFFLENBQUMsSUFBSWlCLG1CQUFxQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2pHLFlBQVksS0FBSyxNQUFNO0FBQ3ZCLGdCQUFnQixPQUFPakIsVUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJa0IsUUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM1RSxZQUFZLEtBQUssT0FBTztBQUN4QixnQkFBZ0IsT0FBT2xCLFVBQVksQ0FBQyxFQUFFLENBQUMsSUFBSWtCLFFBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDNUUsWUFBWTtBQUNaLGdCQUFnQixNQUFNLEtBQUssQ0FBQyxrQ0FBa0MsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0UsU0FBUztBQUNULEtBQUs7QUFDTCxJQUFJLE9BQU8sS0FBSyxFQUFFO0FBQ2xCLFFBQVEsT0FBT2xCLFVBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkMsS0FBSztBQUNMLENBQUMsQ0FBQztBQUNGLE1BQU0sYUFBYSxHQUFHLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSztBQUMvQztBQUNBO0FBQ0EsSUFBSSxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxLQUFLO0FBQ2xHLFFBQVEsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDckUsUUFBUSxJQUFJLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtBQUNqQyxZQUFZLE9BQU8sV0FBVyxDQUFDO0FBQy9CLFNBQVM7QUFDVCxRQUFRLE9BQU9BLFVBQVksQ0FBQyxFQUFFLENBQUNELE1BQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLEtBQUssQ0FBQyxFQUFFQyxVQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDN0I7QUFDQSxJQUFJLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWE7QUFDMUM7QUFDQSxJQUFJLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLEVBQUUsT0FBTztBQUNqRDtBQUNBLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVM7QUFDaEM7QUFDQSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0I7QUFDQSxJQUFJQSxVQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUM7QUFDRixxQkFBcUIsR0FBRyxhQUFhLENBQUM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxLQUFLO0FBQ3RDLElBQUksTUFBTSxNQUFNLEdBQUcsSUFBSW1CLElBQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNqRSxJQUFJLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEM7QUFDQTtBQUNBLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNkLFFBQVEsT0FBT25CLFVBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLEtBQUs7QUFDTCxJQUFJLE1BQU0sU0FBUyxHQUFHRSxTQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUMvRCxJQUFJLElBQUksU0FBUyxFQUFFO0FBQ25CLFFBQVEsT0FBT0YsVUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMzQyxLQUFLO0FBQ0wsSUFBSSxNQUFNLFdBQVcsR0FBR0UsU0FBVyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3RCxJQUFJLElBQUksV0FBVyxFQUFFO0FBQ3JCLFFBQVEsT0FBT0YsVUFBWSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM3QyxLQUFLO0FBQ0wsSUFBSSxJQUFJLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQ3BELElBQUksTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLElBQUksSUFBSTtBQUNSLFFBQVEsR0FBRztBQUNYLFlBQVksUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ25FLFlBQVksSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxjQUFjLEVBQUU7QUFDNUYsZ0JBQWdCLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUNoRSxhQUFhO0FBQ2IsaUJBQWlCO0FBQ2pCLGdCQUFnQixnQkFBZ0IsR0FBRyxFQUFFLENBQUM7QUFDdEMsYUFBYTtBQUNiLFNBQVMsUUFBUSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQzlDLFFBQVEsT0FBT0EsVUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN6QyxLQUFLO0FBQ0wsSUFBSSxPQUFPLEtBQUssRUFBRTtBQUNsQixRQUFRLE9BQU9BLFVBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkMsS0FBSztBQUNMLENBQUMsQ0FBQztBQUNGLG9CQUFvQixHQUFHLFlBQVk7Ozs7QUM3TG5DLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzlELGFBQWEsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUNlO0FBQ0g7QUFDQTtBQUNBO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLEtBQUssQ0FBQztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksV0FBVyxDQUFDLElBQUksRUFBRTtBQUN0QixRQUFRLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2xDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLEdBQUc7QUFDaEIsUUFBUSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ2pDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxRQUFRLEdBQUc7QUFDZixRQUFRLE9BQU8sSUFBSSxDQUFDLEtBQUs7QUFDekIsYUFBYSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ3pDLGFBQWEsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNqRCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxjQUFjLEdBQUc7QUFDckIsUUFBUSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDeEMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLE9BQU8sR0FBRztBQUNkLFFBQVEsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2xDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxlQUFlLEdBQUc7QUFDdEIsUUFBUSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLFFBQVEsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO0FBQy9CLFlBQVksT0FBTyxTQUFTLENBQUM7QUFDN0IsU0FBUztBQUNULFFBQVEsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLEVBQUU7QUFDL0IsWUFBWSxPQUFPLEdBQUcsQ0FBQztBQUN2QixTQUFTO0FBQ1QsUUFBUSxPQUFPLFNBQVMsQ0FBQztBQUN6QixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFO0FBQ3JDLFFBQVEsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN6QyxRQUFRLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtBQUMvQixZQUFZLE9BQU8sU0FBUyxDQUFDO0FBQzdCLFNBQVM7QUFDVCxRQUFRLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUMxQyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFO0FBQzFCLFFBQVEsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxPQUFPLEdBQUc7QUFDZCxRQUFRLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDckQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO0FBQzVDLFFBQVEsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ3BDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3RFLFFBQVEsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksZUFBZSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUU7QUFDcEMsUUFBUSxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQztBQUM3QyxRQUFRLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDekMsUUFBUSxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7QUFDL0IsWUFBWSxPQUFPLFNBQVMsQ0FBQztBQUM3QixTQUFTO0FBQ1QsUUFBUSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3BELFlBQVksT0FBTyxJQUFJb0IsS0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQy9ELFNBQVM7QUFDVCxRQUFRLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoRixRQUFRLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNsRCxRQUFRLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztBQUM1QixRQUFRLE9BQU8sV0FBVyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEVBQUU7QUFDL0QsWUFBWSxJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUU7QUFDdEUsZ0JBQWdCLE1BQU07QUFDdEIsYUFBYTtBQUNiLFlBQVksU0FBUyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDckQsU0FBUztBQUNULFFBQVEsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7QUFDOUMsUUFBUSxPQUFPLElBQUlBLEtBQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoRSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksZUFBZSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUU7QUFDdEMsUUFBUSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQyxRQUFRLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtBQUMvQixZQUFZLE9BQU8sU0FBUyxDQUFDO0FBQzdCLFNBQVM7QUFDVCxRQUFRLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO0FBQzdDLFFBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtBQUM5QixZQUFZLE9BQU8sSUFBSUMsS0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzNELFNBQVM7QUFDVCxRQUFRLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoRixRQUFRLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkUsUUFBUSxJQUFJLFNBQVMsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDbEQsUUFBUSxLQUFLLElBQUksV0FBVyxHQUFHLENBQUMsRUFBRSxXQUFXLEdBQUcsUUFBUSxFQUFFLFdBQVcsRUFBRSxFQUFFO0FBQ3pFLFlBQVksU0FBUyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDckQsU0FBUztBQUNULFFBQVEsT0FBTyxJQUFJQSxLQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25FLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFO0FBQzVDLFFBQVEsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUMsUUFBUSxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7QUFDL0IsWUFBWSxPQUFPLFNBQVMsQ0FBQztBQUM3QixTQUFTO0FBQ1QsUUFBUSxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNqRCxRQUFRLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtBQUNoQyxZQUFZLE9BQU8sU0FBUyxDQUFDO0FBQzdCLFNBQVM7QUFDVCxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUU7QUFDakMsWUFBWSxPQUFPLFNBQVMsQ0FBQztBQUM3QixTQUFTO0FBQ1QsUUFBUSxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQztBQUM3QyxRQUFRLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoRixRQUFRLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNsRCxRQUFRLEtBQUssSUFBSSxXQUFXLEdBQUcsQ0FBQyxFQUFFLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFFO0FBQzdFLFlBQVksU0FBUyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDckQsU0FBUztBQUNULFFBQVEsU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7QUFDdEMsUUFBUSxPQUFPLElBQUlkLEtBQU8sQ0FBQyxLQUFLLENBQUMsSUFBSWMsS0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsSUFBSUEsS0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNuSSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGFBQWEsQ0FBQyxZQUFZLEVBQUU7QUFDaEMsUUFBUSxPQUFPbEIsSUFBTSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDeEQsS0FBSztBQUNMLENBQUM7QUFDRCxhQUFhLEdBQUcsS0FBSzs7OztBQzVNckIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDOUQsaUJBQWlCLEdBQUcsb0JBQW9CLEdBQUcsc0JBQXNCLEdBQUcsZ0JBQWdCLEdBQUcsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDakY7QUFDVTtBQUNGO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksS0FBSztBQUM5QixJQUFJLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUNyQixJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNqQixJQUFJLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztBQUNwQixJQUFJLE9BQU8sSUFBSSxLQUFLLEVBQUUsRUFBRTtBQUN4QixRQUFRLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN2QixZQUFZLEtBQUssR0FBRztBQUNwQjtBQUNBLGdCQUFnQjtBQUNoQixvQkFBb0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6RCxvQkFBb0IsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFO0FBQzdDO0FBQ0E7QUFDQSx3QkFBd0IsTUFBTTtBQUM5QixxQkFBcUI7QUFDckIsb0JBQW9CLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRCxvQkFBb0IsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO0FBQ3JDLG9CQUFvQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMxRCxvQkFBb0IsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO0FBQ3ZDLG9CQUFvQixPQUFPLEtBQUssS0FBSyxFQUFFLEVBQUU7QUFDekMsd0JBQXdCLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtBQUM5Qyw0QkFBNEIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRSw0QkFBNEIsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFO0FBQ25EO0FBQ0E7QUFDQSxnQ0FBZ0MsTUFBTTtBQUN0Qyw2QkFBNkI7QUFDN0IsNEJBQTRCLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCw0QkFBNEIsSUFBSSxJQUFJLEdBQUcsQ0FBQztBQUN4Qyw0QkFBNEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzdELDRCQUE0QixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU0sRUFBRTtBQUM3RCxnQ0FBZ0MsTUFBTSxHQUFHLElBQUksQ0FBQztBQUM5QyxnQ0FBZ0MsTUFBTTtBQUN0Qyw2QkFBNkI7QUFDN0IseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3Qiw0QkFBNEIsSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3Qyw0QkFBNEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEQseUJBQXlCO0FBQ3pCLHFCQUFxQjtBQUNyQixvQkFBb0IsSUFBSSxNQUFNLEVBQUU7QUFDaEMsd0JBQXdCLEdBQUcsSUFBSSxJQUFJLENBQUM7QUFDcEMsd0JBQXdCLElBQUksR0FBRyxLQUFLLENBQUM7QUFDckMscUJBQXFCO0FBQ3JCLHlCQUF5QjtBQUN6Qix3QkFBd0IsR0FBRyxJQUFJLEdBQUcsQ0FBQztBQUNuQyx3QkFBd0IsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUMscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQixnQkFBZ0IsTUFBTTtBQUN0QixZQUFZLEtBQUssSUFBSTtBQUNyQjtBQUNBLGdCQUFnQixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3RDLG9CQUFvQixHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDN0Msb0JBQW9CLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFDLGlCQUFpQjtBQUNqQixxQkFBcUI7QUFDckIsb0JBQW9CLEdBQUcsSUFBSSxJQUFJLENBQUM7QUFDaEMsb0JBQW9CLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFDLGlCQUFpQjtBQUNqQixnQkFBZ0IsTUFBTTtBQUN0QixZQUFZLEtBQUssR0FBRztBQUNwQjtBQUNBLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUFDO0FBQzNCLGdCQUFnQixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxnQkFBZ0IsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDekQsb0JBQW9CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEQsb0JBQW9CLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM5QyxvQkFBb0IsR0FBRyxJQUFJLEtBQUssQ0FBQztBQUNqQyxvQkFBb0IsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2hELGlCQUFpQjtBQUNqQixnQkFBZ0IsTUFBTTtBQUN0QixZQUFZLEtBQUssR0FBRztBQUNwQjtBQUNBLGdCQUFnQixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLGdCQUFnQixHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ3pCLGdCQUFnQixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxnQkFBZ0IsTUFBTTtBQUN0QixZQUFZO0FBQ1osZ0JBQWdCLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0IsZ0JBQWdCLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLFNBQVM7QUFDVCxLQUFLO0FBQ0wsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BCLElBQUksT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBQ0YsbUJBQW1CLEdBQUcsV0FBVyxDQUFDO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUUsZUFBZSxHQUFHLE9BQU8sS0FBSztBQUN0RCxJQUFJLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUMsSUFBSSxJQUFJLFVBQVUsQ0FBQztBQUNuQixJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1RCxRQUFRLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsUUFBUSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixLQUFLO0FBQ0wsU0FBUztBQUNULFFBQVEsVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUN4QixLQUFLO0FBQ0wsSUFBSSxJQUFJLFdBQVcsQ0FBQztBQUNwQixJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ25FLFFBQVEsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzlDLFFBQVEsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDakQsS0FBSztBQUNMLFNBQVM7QUFDVCxRQUFRLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDekIsS0FBSztBQUNMLElBQUksT0FBTyxJQUFJbUIsUUFBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUkzQixTQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3BILENBQUMsQ0FBQztBQUNGLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFLLEtBQUs7QUFDbEMsSUFBSSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDaEI7QUFDQSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUs7QUFDekIsUUFBUSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFO0FBQ2xELFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFELFNBQVM7QUFDVCxLQUFLLENBQUMsQ0FBQztBQUNQLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDO0FBQ0Ysc0JBQXNCLEdBQUcsY0FBYyxDQUFDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3RGLG9CQUFvQixHQUFHLFlBQVksQ0FBQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxLQUFLO0FBQ3RDLElBQUksTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDMUUsSUFBSSxPQUFPLElBQUk0QixLQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNGLENBQUMsQ0FBQztBQUNGLGlCQUFpQixHQUFHLFNBQVM7OztBQ3ZLN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksR0FBRztBQUNYLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQztBQUNoQixJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7QUFDcEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQztBQUNwQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7QUFDcEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3BCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztBQUN4QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDO0FBQ3hCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDeEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxH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QUNiO0FBQ0EsWUFBWSxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNyRixTQUFTLENBQUMsQ0FBQztBQUNYLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFO0FBQ3JDLFFBQVEsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUQsUUFBUSxPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksa0JBQWtCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUN0QyxRQUFRLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLEtBQUs7QUFDdkQsWUFBWSxJQUFJLFFBQVEsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO0FBQzNDO0FBQ0EsWUFBWSxNQUFNLFNBQVMsR0FBR0YsU0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xGLFlBQVksSUFBSSxTQUFTLENBQUMsaUJBQWlCLElBQUksUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7QUFDakUsZ0JBQWdCLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDN0QsYUFBYTtBQUNiO0FBQ0EsWUFBWSxNQUFNLFNBQVMsR0FBR0EsU0FB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 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9pY29ucy50cyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL3BvaW50LmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvcmFuZ2UuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9mb2N1cy5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL2FsaWdubWVudC5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL3RhYmxlLWNlbGwuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi90YWJsZS1yb3cuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9uZXZlcnRocm93L25ldmVydGhyb3cuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9jYWxjL2FzdF91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9kZWNpbWFsLmpzL2RlY2ltYWwuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoL2xvZGFzaC5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL2NhbGMvcmVzdWx0cy5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL2NhbGMvYWxnZWJyYWljX29wZXJhdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL2NhbGMvY29uZGl0aW9uYWxfZnVuY3Rpb24uanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9jYWxjL2NvbnN0YW50LmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvY2FsYy9jb2x1bW4uanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9jYWxjL3Jvdy5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL2NhbGMvcmVmZXJlbmNlLmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvY2FsYy9yYW5nZS5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL2NhbGMvZGVzdGluYXRpb24uanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9jYWxjL2Rpc3BsYXlfZGlyZWN0aXZlLmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvY2FsYy9zaW5nbGVfcGFyYW1fZnVuY3Rpb24uanMiLCJub2RlX21vZHVsZXMvZWJuZi9kaXN0L1Rva2VuRXJyb3IuanMiLCJub2RlX21vZHVsZXMvZWJuZi9kaXN0L1BhcnNlci5qcyIsIm5vZGVfbW9kdWxlcy9lYm5mL2Rpc3QvU2VtYW50aWNIZWxwZXJzLmpzIiwibm9kZV9tb2R1bGVzL2VibmYvZGlzdC9HcmFtbWFycy9CTkYuanMiLCJub2RlX21vZHVsZXMvZWJuZi9kaXN0L0dyYW1tYXJzL1czQ0VCTkYuanMiLCJub2RlX21vZHVsZXMvZWJuZi9kaXN0L0dyYW1tYXJzL0N1c3RvbS5qcyIsIm5vZGVfbW9kdWxlcy9lYm5mL2Rpc3QvR3JhbW1hcnMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZWJuZi9kaXN0L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvY2FsYy9jYWxjLmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvdGFibGUuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9wYXJzZXIuanMiLCJub2RlX21vZHVsZXMvbWVhdy9saWIvaW5kZXgubWpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvZm9ybWF0dGVyLmpzIiwibm9kZV9tb2R1bGVzL0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcy9saWIvZWRpdC1zY3JpcHQuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi90ZXh0LWVkaXRvci5qcyIsIm5vZGVfbW9kdWxlcy9AdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMvbGliL29wdGlvbnMuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi90YWJsZS1lZGl0b3IuanMiLCJub2RlX21vZHVsZXMvQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzL2xpYi9pbmRleC5qcyIsInNyYy9zZXR0aW5ncy50cyIsInNyYy9vYnNpZGlhbi10ZXh0LWVkaXRvci50cyIsInNyYy90YWJsZS1lZGl0b3IudHMiLCJzcmMvdGFibGUtY29udHJvbHMtdmlldy50cyIsInNyYy9tYWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxyXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2RlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XHJcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcclxuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XHJcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSkge1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2dlbmVyYXRvcih0aGlzQXJnLCBib2R5KSB7XHJcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xyXG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcclxuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XHJcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcclxuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cclxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xyXG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIG9bazJdID0gbVtrXTtcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIG8pIHtcclxuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgcCkpIF9fY3JlYXRlQmluZGluZyhvLCBtLCBwKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fdmFsdWVzKG8pIHtcclxuICAgIHZhciBzID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7XHJcbiAgICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcclxuICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gXCJudW1iZXJcIikgcmV0dXJuIHtcclxuICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZWFkKG8sIG4pIHtcclxuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcclxuICAgIGlmICghbSkgcmV0dXJuIG87XHJcbiAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cclxuICAgIGZpbmFsbHkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cclxuICAgIH1cclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xyXG4gICAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheXMoKSB7XHJcbiAgICBmb3IgKHZhciBzID0gMCwgaSA9IDAsIGlsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGlsOyBpKyspIHMgKz0gYXJndW1lbnRzW2ldLmxlbmd0aDtcclxuICAgIGZvciAodmFyIHIgPSBBcnJheShzKSwgayA9IDAsIGkgPSAwOyBpIDwgaWw7IGkrKylcclxuICAgICAgICBmb3IgKHZhciBhID0gYXJndW1lbnRzW2ldLCBqID0gMCwgamwgPSBhLmxlbmd0aDsgaiA8IGpsOyBqKyssIGsrKylcclxuICAgICAgICAgICAgcltrXSA9IGFbal07XHJcbiAgICByZXR1cm4gcjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0KHYpIHtcclxuICAgIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlmIChnW25dKSBpW25dID0gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChhLCBiKSB7IHEucHVzaChbbiwgdiwgYSwgYl0pID4gMSB8fCByZXN1bWUobiwgdik7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7IH1cclxuICAgIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgeyByZXN1bWUoXCJ0aHJvd1wiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShmLCB2KSB7IGlmIChmKHYpLCBxLnNoaWZ0KCksIHEubGVuZ3RoKSByZXN1bWUocVswXVswXSwgcVswXVsxXSk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNEZWxlZ2F0b3Iobykge1xyXG4gICAgdmFyIGksIHA7XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIsIGZ1bmN0aW9uIChlKSB7IHRocm93IGU7IH0pLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlbbl0gPSBvW25dID8gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIChwID0gIXApID8geyB2YWx1ZTogX19hd2FpdChvW25dKHYpKSwgZG9uZTogbiA9PT0gXCJyZXR1cm5cIiB9IDogZiA/IGYodikgOiB2OyB9IDogZjsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY1ZhbHVlcyhvKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIG0gPSBvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSwgaTtcclxuICAgIHJldHVybiBtID8gbS5jYWxsKG8pIDogKG8gPSB0eXBlb2YgX192YWx1ZXMgPT09IFwiZnVuY3Rpb25cIiA/IF9fdmFsdWVzKG8pIDogb1tTeW1ib2wuaXRlcmF0b3JdKCksIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpKTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyBpW25dID0gb1tuXSAmJiBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeyB2ID0gb1tuXSh2KSwgc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgdi5kb25lLCB2LnZhbHVlKTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShyZXNvbHZlLCByZWplY3QsIGQsIHYpIHsgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odikgeyByZXNvbHZlKHsgdmFsdWU6IHYsIGRvbmU6IGQgfSk7IH0sIHJlamVjdCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWFrZVRlbXBsYXRlT2JqZWN0KGNvb2tlZCwgcmF3KSB7XHJcbiAgICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxyXG4gICAgcmV0dXJuIGNvb2tlZDtcclxufTtcclxuXHJcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcclxufSkgOiBmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnRTdGFyKG1vZCkge1xyXG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcclxuICAgIHZhciByZXN1bHQgPSB7fTtcclxuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcclxuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRHZXQocmVjZWl2ZXIsIHByaXZhdGVNYXApIHtcclxuICAgIGlmICghcHJpdmF0ZU1hcC5oYXMocmVjZWl2ZXIpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImF0dGVtcHRlZCB0byBnZXQgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2VcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcHJpdmF0ZU1hcC5nZXQocmVjZWl2ZXIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZFNldChyZWNlaXZlciwgcHJpdmF0ZU1hcCwgdmFsdWUpIHtcclxuICAgIGlmICghcHJpdmF0ZU1hcC5oYXMocmVjZWl2ZXIpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImF0dGVtcHRlZCB0byBzZXQgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2VcIik7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlTWFwLnNldChyZWNlaXZlciwgdmFsdWUpO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59XHJcbiIsImltcG9ydCB7IGFkZEljb24gfSBmcm9tICdvYnNpZGlhbic7XG5cbmV4cG9ydCBjb25zdCBpY29uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgc3ByZWFkc2hlZXQ6IGBcbjxzdmcgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgNDgyLjgxIDQ4Mi44MVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJtNDU3LjU4IDI1LjQ2NC00MzIuODMgMC40MjE1MWMtMTMuNjU4IDAuMDEzMzE0LTI0Ljc1OCAxMS4xMTUtMjQuNzU3IDI0Ljc1N2wwLjAzMTAyNCAzNDcuNDVjNy40ODMzZS00IDguMzgwOCA0LjIxMSAxNS43NzIgMTAuNjA4IDIwLjI1OSAzLjQ1MzMgMi40NDk5IDUuMDcxNiAzLjI5MDEgOC44NzkgMy45MDIyIDEuNzAzMyAwLjM3MzMzIDMuNDU2MSAwLjU5NDcxIDUuMjY5MiAwLjU5Mjk0bDQzMi44NC0wLjQyMTUxYzEuODA5LTFlLTMgMy41NjE4LTAuMjE4MjMgNS4yNTY4LTAuNTkyOTRoMS4yMTc0di0wLjM3MTk2YzEwLjUwNS0yLjg3MjcgMTguMjc5LTEyLjM5NyAxOC4yNzgtMjMuNzg4bC0wLjAzMS0zNDcuNDNjMWUtMyAtMTMuNjQ5LTExLjEwNy0yNC43NjMtMjQuNzY4LTI0Ljc2M3ptMy41NDUzIDI0Ljc2M3Y3MS4zNDRoLTE2My4zMXYtNzQuODg2aDE1OS43NmMxLjk2NDEgMC4wMDE0IDMuNTQ2NyAxLjU5MjIgMy41NDY3IDMuNTQyNXptLTEuNjczNyAzNTAuMzdoLTE2MS42di02Ny4yMDdoMTYzLjMxdjY0LjI2OGMxZS0zIDEuMjU3Mi0wLjcwNTQ5IDIuMzIxLTEuNzAzMyAyLjkzODZ6bS00MzguMjEtMi41MTcxdi02NC4yNjhoNzYuNjQ2djY3LjIwN2gtNzQuOTQyYy0wLjk5Nzg0LTAuNjE3NjUtMS43MDMzLTEuNjgxNC0xLjcwMzMtMi45Mzg2em0yNTUuMjgtMTU1LjE4djY5LjY4OGgtMTU3LjQydi02OS42ODh6bTAgOTAuOTEzdjY3LjIwN2gtMTU3LjQydi02Ny4yMDd6bS0wLjAzMS0yMTEuODNoLTE1Ny40MnYtNzQuODg2aDE1Ny40MnptMCAyMS4yMjZ2NzcuODI2aC0xNTcuNDJ2LTc3LjgyNnptLTE3OC42NCA3Ny44MjZoLTc2LjY0NnYtNzcuODI2aDc2LjY0NnptMC4wMzEwMiAyMS44NjJ2NjkuNjg4aC03Ni42NDZ2LTY5LjY4OHptMTk5Ljk1IDY5LjI2OHYtNjkuNjk3aDE2My4zMXY2OS42OTd6bS0wLjAzMS05MS41NTJ2LTc3LjgyNmgxNjMuMzF2NzcuODI2elwiIHN0cm9rZS13aWR0aD1cIjEuMzcyNVwiLz5cbjwvc3ZnPmAsXG4gIGFsaWduTGVmdDogYFxuPHN2ZyBjbGFzcz1cIndpZGdldC1pY29uXCIgZW5hYmxlLWJhY2tncm91bmQ9XCJuZXcgMCAwIDUxMiA1MTJcIiB2ZXJzaW9uPVwiMS4xXCIgdmlld0JveD1cIjAgMCA1MTIgNTEyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8ZyB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgNTEyIDApXCI+XG4gICAgPHBhdGggZD1cIm01MDEuMzMgMTcwLjY3aC0zMjBjLTUuODk2IDAtMTAuNjY3IDQuNzcxLTEwLjY2NyAxMC42Njd2MjEuMzMzYzAgNS44OTYgNC43NzEgMTAuNjY3IDEwLjY2NyAxMC42NjdoMzIwYzUuODk2IDAgMTAuNjY3LTQuNzcxIDEwLjY2Ny0xMC42Njd2LTIxLjMzM2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3elwiLz5cbiAgICA8cGF0aCBkPVwibTUwMS4zMyAyOTguNjdoLTQ5MC42N2MtNS44OTYgMC0xMC42NjcgNC43NzEtMTAuNjY3IDEwLjY2NnYyMS4zMzNjMCA1Ljg5NiA0Ljc3MSAxMC42NjcgMTAuNjY3IDEwLjY2N2g0OTAuNjdjNS44OTYgMCAxMC42NjctNC43NzEgMTAuNjY3LTEwLjY2N3YtMjEuMzMzYy0xZS0zIC01Ljg5NS00Ljc3Mi0xMC42NjYtMTAuNjY4LTEwLjY2NnpcIi8+XG4gICAgPHBhdGggZD1cIm01MDEuMzMgNDI2LjY3aC0zMjBjLTUuODk2IDAtMTAuNjY3IDQuNzcxLTEwLjY2NyAxMC42Njd2MjEuMzMzYzAgNS44OTYgNC43NzEgMTAuNjY3IDEwLjY2NyAxMC42NjdoMzIwYzUuODk2IDAgMTAuNjY3LTQuNzcxIDEwLjY2Ny0xMC42Njd2LTIxLjMzM2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3elwiLz5cbiAgICA8cGF0aCBkPVwibTUwMS4zMyA0Mi42NjdoLTQ5MC42N2MtNS44OTYgMC0xMC42NjcgNC43NzEtMTAuNjY3IDEwLjY2NnYyMS4zMzNjMCA1Ljg5NiA0Ljc3MSAxMC42NjcgMTAuNjY3IDEwLjY2N2g0OTAuNjdjNS44OTYgMCAxMC42NjctNC43NzEgMTAuNjY3LTEwLjY2N3YtMjEuMzMzYy0xZS0zIC01Ljg5NS00Ljc3Mi0xMC42NjYtMTAuNjY4LTEwLjY2NnpcIi8+XG4gIDwvZz5cbjwvc3ZnPmAsXG4gIGFsaWduQ2VudGVyOiBgXG48c3ZnIGNsYXNzPVwid2lkZ2V0LWljb25cIiBlbmFibGUtYmFja2dyb3VuZD1cIm5ldyAwIDAgNTEyIDUxMlwiIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxnIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA1MTIgMClcIj5cbiAgICA8cGF0aCBkPVwibTQxNiAxNzAuNjdoLTMyMGMtNS44OTYgMC0xMC42NjcgNC43NzEtMTAuNjY3IDEwLjY2N3YyMS4zMzNjMCA1Ljg5NiA0Ljc3MSAxMC42NjcgMTAuNjY3IDEwLjY2N2gzMjBjNS44OTYgMCAxMC42NjctNC43NzEgMTAuNjY3LTEwLjY2N3YtMjEuMzMzYzAtNS44OTYtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42Njd6XCIvPlxuICAgIDxwYXRoIGQ9XCJtNTAxLjMzIDI5OC42N2gtNDkwLjY3Yy01Ljg5NiAwLTEwLjY2NyA0Ljc3MS0xMC42NjcgMTAuNjY2djIxLjMzM2MwIDUuODk2IDQuNzcxIDEwLjY2NyAxMC42NjcgMTAuNjY3aDQ5MC42N2M1Ljg5NiAwIDEwLjY2Ny00Ljc3MSAxMC42NjctMTAuNjY3di0yMS4zMzNjLTFlLTMgLTUuODk1LTQuNzcyLTEwLjY2Ni0xMC42NjgtMTAuNjY2elwiLz5cbiAgICA8cGF0aCBkPVwibTQxNiA0MjYuNjdoLTMyMGMtNS44OTYgMC0xMC42NjcgNC43NzEtMTAuNjY3IDEwLjY2N3YyMS4zMzNjMCA1Ljg5NiA0Ljc3MSAxMC42NjcgMTAuNjY3IDEwLjY2N2gzMjBjNS44OTYgMCAxMC42NjctNC43NzEgMTAuNjY3LTEwLjY2N3YtMjEuMzMzYzAtNS44OTYtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42Njd6XCIvPlxuICAgIDxwYXRoIGQ9XCJtNTAxLjMzIDQyLjY2N2gtNDkwLjY3Yy01Ljg5NiAwLTEwLjY2NyA0Ljc3MS0xMC42NjcgMTAuNjY2djIxLjMzM2MwIDUuODk2IDQuNzcxIDEwLjY2NyAxMC42NjcgMTAuNjY3aDQ5MC42N2M1Ljg5NiAwIDEwLjY2Ny00Ljc3MSAxMC42NjctMTAuNjY3di0yMS4zMzNjLTFlLTMgLTUuODk1LTQuNzcyLTEwLjY2Ni0xMC42NjgtMTAuNjY2elwiLz5cbiAgPC9nPlxuPC9zdmc+YCxcbiAgYWxpZ25SaWdodDogYFxuPHN2ZyBjbGFzcz1cIndpZGdldC1pY29uXCIgZW5hYmxlLWJhY2tncm91bmQ9XCJuZXcgMCAwIDUxMiA1MTJcIiB2ZXJzaW9uPVwiMS4xXCIgdmlld0JveD1cIjAgMCA1MTIgNTEyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8cGF0aCBkPVwibTUwMS4zMyAxNzAuNjdoLTMyMGMtNS44OTYgMC0xMC42NjcgNC43NzEtMTAuNjY3IDEwLjY2N3YyMS4zMzNjMCA1Ljg5NiA0Ljc3MSAxMC42NjcgMTAuNjY3IDEwLjY2N2gzMjBjNS44OTYgMCAxMC42NjctNC43NzEgMTAuNjY3LTEwLjY2N3YtMjEuMzMzYzAtNS44OTYtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42Njd6XCIvPlxuICA8cGF0aCBkPVwibTUwMS4zMyAyOTguNjdoLTQ5MC42N2MtNS44OTYgMC0xMC42NjcgNC43NzEtMTAuNjY3IDEwLjY2NnYyMS4zMzNjMCA1Ljg5NiA0Ljc3MSAxMC42NjcgMTAuNjY3IDEwLjY2N2g0OTAuNjdjNS44OTYgMCAxMC42NjctNC43NzEgMTAuNjY3LTEwLjY2N3YtMjEuMzMzYy0xZS0zIC01Ljg5NS00Ljc3Mi0xMC42NjYtMTAuNjY4LTEwLjY2NnpcIi8+XG4gIDxwYXRoIGQ9XCJtNTAxLjMzIDQyNi42N2gtMzIwYy01Ljg5NiAwLTEwLjY2NyA0Ljc3MS0xMC42NjcgMTAuNjY3djIxLjMzM2MwIDUuODk2IDQuNzcxIDEwLjY2NyAxMC42NjcgMTAuNjY3aDMyMGM1Ljg5NiAwIDEwLjY2Ny00Ljc3MSAxMC42NjctMTAuNjY3di0yMS4zMzNjMC01Ljg5Ni00Ljc3MS0xMC42NjctMTAuNjY3LTEwLjY2N3pcIi8+XG4gIDxwYXRoIGQ9XCJtNTAxLjMzIDQyLjY2N2gtNDkwLjY3Yy01Ljg5NiAwLTEwLjY2NyA0Ljc3MS0xMC42NjcgMTAuNjY2djIxLjMzM2MwIDUuODk2IDQuNzcxIDEwLjY2NyAxMC42NjcgMTAuNjY3aDQ5MC42N2M1Ljg5NiAwIDEwLjY2Ny00Ljc3MSAxMC42NjctMTAuNjY3di0yMS4zMzNjLTFlLTMgLTUuODk1LTQuNzcyLTEwLjY2Ni0xMC42NjgtMTAuNjY2elwiLz5cbjwvc3ZnPmAsXG4gIGRlbGV0ZUNvbHVtbjogYFxuPHN2ZyBjbGFzcz1cIndpZGdldC1pY29uXCIgZW5hYmxlLWJhY2tncm91bmQ9XCJuZXcgMCAwIDI2IDI2XCIgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgMjYgMjZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxwYXRoIGQ9XCJtMTMuNTk0IDIwLjg1djMuMTVoLTEwdi0yMmgxMHYzLjE1YzAuNjMzLTAuMzIzIDEuMzA0LTAuNTY1IDItMC43Mjd2LTMuNDIzYzAtMC41NTEtMC40NDgtMS0xLTFoLTEyYy0wLjU1IDAtMSAwLjQ0OS0xIDF2MjRjMCAwLjU1MSAwLjQ0OSAxIDEgMWgxMmMwLjU1MiAwIDEtMC40NDkgMS0xdi0zLjQyNGMtMC42OTYtMC4xNjEtMS4zNjctMC40MDMtMi0wLjcyNnpcIi8+XG4gIDxwYXRoIGQ9XCJtMTcuNTk0IDYuMTg4Yy0zLjc2MiAwLTYuODEzIDMuMDUxLTYuODEyIDYuODEzLTFlLTMgMy43NjEgMy4wNSA2LjgxMiA2LjgxMiA2LjgxMnM2LjgxMy0zLjA1MSA2LjgxMy02LjgxMy0zLjA1Mi02LjgxMi02LjgxMy02LjgxMnptMy42MzIgNy44MDItNy4yNjcgMWUtM3YtMS45ODJoNy4yNjhsLTFlLTMgMS45ODF6XCIvPlxuPC9zdmc+YCxcbiAgZGVsZXRlUm93OiBgXG48c3ZnIGNsYXNzPVwid2lkZ2V0LWljb25cIiBlbmFibGUtYmFja2dyb3VuZD1cIm5ldyAwIDAgMTUuMzgxIDE1LjM4MVwiIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiMCAwIDE1LjM4MSAxNS4zODFcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxwYXRoIGQ9XCJNMCwxLjczMnY3LjczMmg2LjA1M2MwLTAuMDM1LTAuMDA0LTAuMDctMC4wMDQtMC4xMDRjMC0wLjQzNCwwLjA2MS0wLjg1NCwwLjE2NS0xLjI1NUgxLjM2VjMuMDkyICAgIGgxMi42NjJ2Mi4xOTJjMC41NDYsMC4zOTYsMS4wMSwwLjg5NywxLjM1OSwxLjQ3N1YxLjczMkgwelwiLz5cbiAgPHBhdGggZD1cIm0xMS4xOTYgNS4yOGMtMi4zMDcgMC00LjE4MyAxLjg3Ny00LjE4MyA0LjE4NCAwIDIuMzA4IDEuODc2IDQuMTg1IDQuMTgzIDQuMTg1IDIuMzA5IDAgNC4xODUtMS44NzcgNC4xODUtNC4xODUgMC0yLjMwNy0xLjg3Ni00LjE4NC00LjE4NS00LjE4NHptMCA3LjIzM2MtMS42NzkgMC0zLjA0Ny0xLjM2Ny0zLjA0Ny0zLjA0OSAwLTEuNjggMS4zNjgtMy4wNDkgMy4wNDctMy4wNDkgMS42ODQgMCAzLjA1IDEuMzY5IDMuMDUgMy4wNDkgMCAxLjY4Mi0xLjM2NiAzLjA0OS0zLjA1IDMuMDQ5elwiLz5cbiAgPHJlY3QgeD1cIjkuMzEyXCIgeT1cIjguNzU5XCIgd2lkdGg9XCIzLjg0NFwiIGhlaWdodD1cIjEuMTA0XCIvPlxuPC9zdmc+YCxcbiAgaW5zZXJ0Q29sdW1uOiBgXG48c3ZnIGNsYXNzPVwid2lkZ2V0LWljb25cIiB2ZXJzaW9uPVwiMS4xXCIgdmlld0JveD1cIi0yMSAwIDUxMiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxwYXRoIGQ9XCJtMjg4IDEwNi42N2MtMy45MjU4IDAtNy44NTE2LTEuNDI5Ny0xMC45MjItNC4zMTI1bC04MC03NC42NjRjLTQuODAwOC00LjQ4MDUtNi4zNzg5LTExLjQ1Ny0zLjk2ODgtMTcuNTU5IDIuNDEwMi02LjEwMTYgOC4zMjAzLTEwLjEzMyAxNC44OTEtMTAuMTMzaDE2MGM2LjU3MDMgMCAxMi40OCA0LjAxMTcgMTQuODkxIDEwLjEzMyAyLjQxMDIgNi4xMjUgMC44MzIwMyAxMy4wNzgtMy45Njg4IDE3LjU1OWwtODAgNzQuNjY0Yy0zLjA3MDMgMi44ODI4LTYuOTk2MSA0LjMxMjUtMTAuOTIyIDQuMzEyNXptLTM5LjQwMi03NC42NjggMzkuNDAyIDM2Ljc3NyAzOS40MDItMzYuNzc3elwiLz5cbiAgPHBhdGggZD1cIm00MzIgNTEyaC01My4zMzJjLTIwLjU5IDAtMzcuMzM2LTE2Ljc0Ni0zNy4zMzYtMzcuMzMydi0zMzAuNjdjMC0yMC41ODYgMTYuNzQ2LTM3LjMzMiAzNy4zMzYtMzcuMzMyaDUzLjMzMmMyMC41ODYgMCAzNy4zMzIgMTYuNzQ2IDM3LjMzMiAzNy4zMzJ2MzMwLjY3YzAgMjAuNTg2LTE2Ljc0NiAzNy4zMzItMzcuMzMyIDM3LjMzMnptLTUzLjMzMi0zNzMuMzNjLTIuOTQ1MyAwLTUuMzM1OSAyLjM4NjctNS4zMzU5IDUuMzMydjMzMC42N2MwIDIuOTQxNCAyLjM5MDYgNS4zMzIgNS4zMzU5IDUuMzMyaDUzLjMzMmMyLjk0NTMgMCA1LjMzMi0yLjM5MDYgNS4zMzItNS4zMzJ2LTMzMC42N2MwLTIuOTQ1My0yLjM4NjctNS4zMzItNS4zMzItNS4zMzJ6XCIvPlxuICA8cGF0aCBkPVwibTE5Ny4zMyA1MTJoLTE2MGMtMjAuNTg2IDAtMzcuMzMyLTE2Ljc0Ni0zNy4zMzItMzcuMzMydi0zMzAuNjdjMC0yMC41ODYgMTYuNzQ2LTM3LjMzMiAzNy4zMzItMzcuMzMyaDE2MGMyMC41OSAwIDM3LjMzNiAxNi43NDYgMzcuMzM2IDM3LjMzMnYzMzAuNjdjMCAyMC41ODYtMTYuNzQ2IDM3LjMzMi0zNy4zMzYgMzcuMzMyem0tMTYwLTM3My4zM2MtMi45NDE0IDAtNS4zMzIgMi4zODY3LTUuMzMyIDUuMzMydjMzMC42N2MwIDIuOTQxNCAyLjM5MDYgNS4zMzIgNS4zMzIgNS4zMzJoMTYwYzIuOTQ1MyAwIDUuMzM1OS0yLjM5MDYgNS4zMzU5LTUuMzMydi0zMzAuNjdjMC0yLjk0NTMtMi4zOTA2LTUuMzMyLTUuMzM1OS01LjMzMnpcIi8+XG4gIDxwYXRoIGQ9XCJtNDUzLjMzIDMyNS4zM2gtOTZjLTguODMyIDAtMTYtNy4xNjgtMTYtMTZzNy4xNjgtMTYgMTYtMTZoOTZjOC44MzIgMCAxNiA3LjE2OCAxNiAxNnMtNy4xNjggMTYtMTYgMTZ6XCIvPlxuICA8cGF0aCBkPVwibTIxOC42NyAzMjUuMzNoLTIwMi42N2MtOC44MzIgMC0xNi03LjE2OC0xNi0xNnM3LjE2OC0xNiAxNi0xNmgyMDIuNjdjOC44MzIgMCAxNiA3LjE2OCAxNiAxNnMtNy4xNjggMTYtMTYgMTZ6XCIvPlxuICA8cGF0aCBkPVwibTExNy4zMyA1MTJjLTguODMyIDAtMTYtNy4xNjgtMTYtMTZ2LTM3My4zM2MwLTguODMyIDcuMTY4LTE2IDE2LTE2czE2IDcuMTY4IDE2IDE2djM3My4zM2MwIDguODMyLTcuMTY4IDE2LTE2IDE2elwiLz5cbjwvc3ZnPmAsXG4gIGluc2VydFJvdzogYFxuPHN2ZyBjbGFzcz1cIndpZGdldC1pY29uXCIgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIC0yMSA1MTIgNTEyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8cGF0aCBkPVwibTE2IDI3Ny4zM2MtMS45ODQ0IDAtMy45Njg4LTAuMzYzMjgtNS44NjcyLTEuMTA5NC02LjEyMTEtMi40MTAyLTEwLjEzMy04LjMyMDMtMTAuMTMzLTE0Ljg5MXYtMTYwYzAtNi41NzAzIDQuMDExNy0xMi40OCAxMC4xMzMtMTQuODkxIDYuMTQ0NS0yLjQxMDIgMTMuMDc4LTAuODUxNTYgMTcuNTU5IDMuOTY4OGw3NC42NjQgODBjNS43NjE3IDYuMTQ0NSA1Ljc2MTcgMTUuNjggMCAyMS44MjRsLTc0LjY2NCA4MGMtMy4wOTM4IDMuMzI4MS03LjMzOTggNS4wOTc3LTExLjY5MSA1LjA5Nzd6bTE2LTEzNS40djc4LjgwNWwzNi43NzctMzkuNDAyelwiLz5cbiAgPHBhdGggZD1cIm00NzQuNjcgMTI4aC0zMzAuNjdjLTIwLjU4NiAwLTM3LjMzMi0xNi43NDYtMzcuMzMyLTM3LjMzMnYtNTMuMzM2YzAtMjAuNTg2IDE2Ljc0Ni0zNy4zMzIgMzcuMzMyLTM3LjMzMmgzMzAuNjdjMjAuNTg2IDAgMzcuMzMyIDE2Ljc0NiAzNy4zMzIgMzcuMzMydjUzLjMzNmMwIDIwLjU4Ni0xNi43NDYgMzcuMzMyLTM3LjMzMiAzNy4zMzJ6bS0zMzAuNjctOTZjLTIuOTQ1MyAwLTUuMzMyIDIuMzkwNi01LjMzMiA1LjMzMnY1My4zMzZjMCAyLjk0MTQgMi4zODY3IDUuMzMyIDUuMzMyIDUuMzMyaDMzMC42N2MyLjk0MTQgMCA1LjMzMi0yLjM5MDYgNS4zMzItNS4zMzJ2LTUzLjMzNmMwLTIuOTQxNC0yLjM5MDYtNS4zMzItNS4zMzItNS4zMzJ6XCIvPlxuICA8cGF0aCBkPVwibTQ3NC42NyA0NjkuMzNoLTMzMC42N2MtMjAuNTg2IDAtMzcuMzMyLTE2Ljc0Ni0zNy4zMzItMzcuMzMydi0xNjBjMC0yMC41ODYgMTYuNzQ2LTM3LjMzMiAzNy4zMzItMzcuMzMyaDMzMC42N2MyMC41ODYgMCAzNy4zMzIgMTYuNzQ2IDM3LjMzMiAzNy4zMzJ2MTYwYzAgMjAuNTg2LTE2Ljc0NiAzNy4zMzItMzcuMzMyIDM3LjMzMnptLTMzMC42Ny0yMDIuNjZjLTIuOTQ1MyAwLTUuMzMyIDIuMzg2Ny01LjMzMiA1LjMzMnYxNjBjMCAyLjk0NTMgMi4zODY3IDUuMzMyIDUuMzMyIDUuMzMyaDMzMC42N2MyLjk0MTQgMCA1LjMzMi0yLjM4NjcgNS4zMzItNS4zMzJ2LTE2MGMwLTIuOTQ1My0yLjM5MDYtNS4zMzItNS4zMzItNS4zMzJ6XCIvPlxuICA8cGF0aCBkPVwibTMwOS4zMyAxMjhjLTguODMyIDAtMTYtNy4xNjgtMTYtMTZ2LTk2YzAtOC44MzIgNy4xNjgtMTYgMTYtMTZzMTYgNy4xNjggMTYgMTZ2OTZjMCA4LjgzMi03LjE2OCAxNi0xNiAxNnpcIi8+XG4gIDxwYXRoIGQ9XCJtMzA5LjMzIDQ2OS4zM2MtOC44MzIgMC0xNi03LjE2OC0xNi0xNnYtMjAyLjY2YzAtOC44MzIgNy4xNjgtMTYgMTYtMTZzMTYgNy4xNjggMTYgMTZ2MjAyLjY2YzAgOC44MzItNy4xNjggMTYtMTYgMTZ6XCIvPlxuICA8cGF0aCBkPVwibTQ5NiAzNjhoLTM3My4zM2MtOC44MzIgMC0xNi03LjE2OC0xNi0xNnM3LjE2OC0xNiAxNi0xNmgzNzMuMzNjOC44MzIgMCAxNiA3LjE2OCAxNiAxNnMtNy4xNjggMTYtMTYgMTZ6XCIvPlxuPC9zdmc+YCxcbiAgbW92ZUNvbHVtbkxlZnQ6IGBcbjxzdmcgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiMCAwIDUxMi4wMiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxwYXRoIGQ9XCJtMzU3LjM1IDUxMi4wMWg5NmMzMi4zNjMgMCA1OC42NjgtMjYuMzA1IDU4LjY2OC01OC42Njh2LTM5NC42NmMwLTMyLjM2My0yNi4zMDUtNTguNjY4LTU4LjY2OC01OC42NjhoLTk2Yy0zMi4zNjMgMC01OC42NjQgMjYuMzA1LTU4LjY2NCA1OC42Njh2Mzk0LjY2YzAgMzIuMzYzIDI2LjMwMSA1OC42NjggNTguNjY0IDU4LjY2OHptOTYtNDgwYzE0LjY5OSAwIDI2LjY2OCAxMS45NjkgMjYuNjY4IDI2LjY2OHYzOTQuNjZjMCAxNC42OTktMTEuOTY5IDI2LjY2OC0yNi42NjggMjYuNjY4aC05NmMtMTQuNjk5IDAtMjYuNjY0LTExLjk2OS0yNi42NjQtMjYuNjY4di0zOTQuNjZjMC0xNC42OTkgMTEuOTY1LTI2LjY2OCAyNi42NjQtMjYuNjY4elwiLz5cbiAgPHBhdGggZD1cIm0xNi4wMTYgMjcyLjAxaDIyNGM4LjgzMiAwIDE2LTcuMTY4IDE2LTE2cy03LjE2OC0xNi0xNi0xNmgtMjI0Yy04LjgzMiAwLTE2IDcuMTY4LTE2IDE2czcuMTY4IDE2IDE2IDE2elwiLz5cbiAgPHBhdGggZD1cIm0xMDEuMzUgMzU3LjM0YzQuMDk3NiAwIDguMTkxNC0xLjU1NDcgMTEuMzA5LTQuNjkxNCA2LjI1LTYuMjUgNi4yNS0xNi4zODMgMC0yMi42MzdsLTc0LjAyNy03NC4wMjMgNzQuMDI3LTc0LjAyN2M2LjI1LTYuMjUgNi4yNS0xNi4zODcgMC0yMi42MzdzLTE2LjM4My02LjI1LTIyLjYzNyAwbC04NS4zMzIgODUuMzM2Yy02LjI1IDYuMjUtNi4yNSAxNi4zODMgMCAyMi42MzNsODUuMzMyIDg1LjMzMmMzLjEzNjcgMy4xNjAyIDcuMjM0NCA0LjcxNDggMTEuMzI4IDQuNzE0OHpcIi8+XG48L3N2Zz5gLFxuICBtb3ZlQ29sdW1uUmlnaHQ6IGBcbjxzdmcgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiMCAwIDUxMi4wMiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxwYXRoIGQ9XCJtMTU0LjY3IDUxMi4wMWgtOTZjLTMyLjM2MyAwLTU4LjY2OC0yNi4zMDUtNTguNjY4LTU4LjY2OHYtMzk0LjY2YzAtMzIuMzYzIDI2LjMwNS01OC42NjggNTguNjY4LTU4LjY2OGg5NmMzMi4zNjMgMCA1OC42NjQgMjYuMzA1IDU4LjY2NCA1OC42Njh2Mzk0LjY2YzAgMzIuMzYzLTI2LjMwMSA1OC42NjgtNTguNjY0IDU4LjY2OHptLTk2LTQ4MGMtMTQuNjk5IDAtMjYuNjY4IDExLjk2OS0yNi42NjggMjYuNjY4djM5NC42NmMwIDE0LjY5OSAxMS45NjkgMjYuNjY4IDI2LjY2OCAyNi42NjhoOTZjMTQuNjk5IDAgMjYuNjY0LTExLjk2OSAyNi42NjQtMjYuNjY4di0zOTQuNjZjMC0xNC42OTktMTEuOTY1LTI2LjY2OC0yNi42NjQtMjYuNjY4elwiLz5cbiAgPHBhdGggZD1cIm00OTYgMjcyLjAxaC0yMjRjLTguODMyIDAtMTYtNy4xNjgtMTYtMTYgMC04LjgzMiA3LjE2OC0xNiAxNi0xNmgyMjRjOC44MzIgMCAxNiA3LjE2OCAxNiAxNiAwIDguODMyLTcuMTY4IDE2LTE2IDE2elwiLz5cbiAgPHBhdGggZD1cIm00MTAuNjcgMzU3LjM0Yy00LjA5NzcgMC04LjE5MTQtMS41NTQ3LTExLjMwOS00LjY5MTQtNi4yNS02LjI1LTYuMjUtMTYuMzgzIDAtMjIuNjM3bDc0LjAyNy03NC4wMjMtNzQuMDI3LTc0LjAyN2MtNi4yNS02LjI1LTYuMjUtMTYuMzg3IDAtMjIuNjM3czE2LjM4My02LjI1IDIyLjYzNyAwbDg1LjMzMiA4NS4zMzZjNi4yNSA2LjI1IDYuMjUgMTYuMzgzIDAgMjIuNjMzbC04NS4zMzIgODUuMzMyYy0zLjEzNjcgMy4xNjAyLTcuMjM0NCA0LjcxNDgtMTEuMzI4IDQuNzE0OHpcIi8+XG48L3N2Zz5gLFxuICBtb3ZlUm93RG93bjogYFxuPHN2ZyBjbGFzcz1cIndpZGdldC1pY29uXCIgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPHBhdGggZD1cIm00NTMuMzMgMjEzLjMzaC0zOTQuNjZjLTMyLjM2MyAwLTU4LjY2OC0yNi4zMDEtNTguNjY4LTU4LjY2NHYtOTZjMC0zMi4zNjMgMjYuMzA1LTU4LjY2OCA1OC42NjgtNTguNjY4aDM5NC42NmMzMi4zNjMgMCA1OC42NjggMjYuMzA1IDU4LjY2OCA1OC42Njh2OTZjMCAzMi4zNjMtMjYuMzA1IDU4LjY2NC01OC42NjggNTguNjY0em0tMzk0LjY2LTE4MS4zM2MtMTQuNjk5IDAtMjYuNjY4IDExLjk2OS0yNi42NjggMjYuNjY4djk2YzAgMTQuNjk5IDExLjk2OSAyNi42NjQgMjYuNjY4IDI2LjY2NGgzOTQuNjZjMTQuNjk5IDAgMjYuNjY4LTExLjk2NSAyNi42NjgtMjYuNjY0di05NmMwLTE0LjY5OS0xMS45NjktMjYuNjY4LTI2LjY2OC0yNi42Njh6XCIvPlxuICA8cGF0aCBkPVwibTI1NiA1MTJjLTguODMyIDAtMTYtNy4xNjgtMTYtMTZ2LTIyNGMwLTguODMyIDcuMTY4LTE2IDE2LTE2czE2IDcuMTY4IDE2IDE2djIyNGMwIDguODMyLTcuMTY4IDE2LTE2IDE2elwiLz5cbiAgPHBhdGggZD1cIm0yNTYgNTEyYy00LjA5NzcgMC04LjE5MTQtMS41NTg2LTExLjMwOS00LjY5MTRsLTg1LjMzMi04NS4zMzZjLTYuMjUtNi4yNS02LjI1LTE2LjM4MyAwLTIyLjYzM3MxNi4zODMtNi4yNSAyMi42MzcgMGw3NC4wMjMgNzQuMDI3IDc0LjAyNy03NC4wMjdjNi4yNS02LjI1IDE2LjM4Ny02LjI1IDIyLjYzNyAwczYuMjUgMTYuMzgzIDAgMjIuNjMzbC04NS4zMzYgODUuMzM2Yy0zLjE1NjIgMy4xMzI4LTcuMjUgNC42OTE0LTExLjM0OCA0LjY5MTR6XCIvPlxuPC9zdmc+YCxcbiAgbW92ZVJvd1VwOiBgXG48c3ZnIGNsYXNzPVwid2lkZ2V0LWljb25cIiB2ZXJzaW9uPVwiMS4xXCIgdmlld0JveD1cIjAgMCA1MTIgNTEyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8cGF0aCBkPVwibTQ1My4zMyAyOTguNjdoLTM5NC42NmMtMzIuMzYzIDAtNTguNjY4IDI2LjMwMS01OC42NjggNTguNjY0djk2YzAgMzIuMzYzIDI2LjMwNSA1OC42NjggNTguNjY4IDU4LjY2OGgzOTQuNjZjMzIuMzYzIDAgNTguNjY4LTI2LjMwNSA1OC42NjgtNTguNjY4di05NmMwLTMyLjM2My0yNi4zMDUtNTguNjY0LTU4LjY2OC01OC42NjR6bS0zOTQuNjYgMTgxLjMzYy0xNC42OTkgMC0yNi42NjgtMTEuOTY5LTI2LjY2OC0yNi42Njh2LTk2YzAtMTQuNjk5IDExLjk2OS0yNi42NjQgMjYuNjY4LTI2LjY2NGgzOTQuNjZjMTQuNjk5IDAgMjYuNjY4IDExLjk2NSAyNi42NjggMjYuNjY0djk2YzAgMTQuNjk5LTExLjk2OSAyNi42NjgtMjYuNjY4IDI2LjY2OHpcIi8+XG4gIDxwYXRoIGQ9XCJtMjU2IDBjLTguODMyIDAtMTYgNy4xNjgtMTYgMTZ2MjI0YzAgOC44MzIgNy4xNjggMTYgMTYgMTZzMTYtNy4xNjggMTYtMTZ2LTIyNGMwLTguODMyLTcuMTY4LTE2LTE2LTE2elwiLz5cbiAgPHBhdGggZD1cIm0yNTYgMGMtNC4wOTc3IDAtOC4xOTE0IDEuNTU4Ni0xMS4zMDkgNC42OTE0bC04NS4zMzIgODUuMzM2Yy02LjI1IDYuMjUtNi4yNSAxNi4zODMgMCAyMi42MzNzMTYuMzgzIDYuMjUgMjIuNjM3IDBsNzQuMDIzLTc0LjAyNyA3NC4wMjcgNzQuMDI3YzYuMjUgNi4yNSAxNi4zODcgNi4yNSAyMi42MzcgMHM2LjI1LTE2LjM4MyAwLTIyLjYzM2wtODUuMzM2LTg1LjMzNmMtMy4xNTYyLTMuMTMyOC03LjI1LTQuNjkxNC0xMS4zNDgtNC42OTE0elwiLz5cbjwvc3ZnPmAsXG4gIHNvcnRBc2M6IGBcbjxzdmcgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxnIHRyYW5zZm9ybT1cIm1hdHJpeCgxIDAgMCAtMSAwIDUwMS4xNSlcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzNcIj5cbiAgICA8cGF0aCBkPVwibTM1My42IDc0LjQ4NmMtMTEuNzc2IDAtMjEuMzMzIDkuNTU3My0yMS4zMzMgMjEuMzMzdjI5OC42N2MwIDExLjc3NiA5LjU1NzMgMjEuMzMzIDIxLjMzMyAyMS4zMzNzMjEuMzMzLTkuNTU3MyAyMS4zMzMtMjEuMzMzdi0yOTguNjdjMC0xMS43NzYtOS41NTczLTIxLjMzMy0yMS4zMzMtMjEuMzMzelwiLz5cbiAgICA8cGF0aCBkPVwibTM1My42IDc0LjQ4NmMtNS40NjM2IDAtMTAuOTIyIDIuMDc4MS0xNS4wNzkgNi4yNTUybC0xMTMuNzggMTEzLjc4Yy04LjMzMzMgOC4zMzMzLTguMzMzMyAyMS44NDQgMCAzMC4xNzcgOC4zMzMzIDguMzMzMyAyMS44NDQgOC4zMzMzIDMwLjE4MyAwbDk4LjY5Ny05OC43MDMgOTguNzAzIDk4LjcwM2M4LjMzMzMgOC4zMzMzIDIxLjg0OSA4LjMzMzMgMzAuMTgzIDAgOC4zMzMzLTguMzMzMyA4LjMzMzMtMjEuODQ0IDAtMzAuMTc3bC0xMTMuNzgtMTEzLjc4Yy00LjIwODMtNC4xNzcxLTkuNjY2Ny02LjI1NTItMTUuMTMxLTYuMjU1MnpcIi8+XG4gIDwvZz5cbiAgPHBhdGggZD1cIm0xNjYuMDQgMjEwLjExcS01LjA5NzEtMTMuNDkyLTkuNTk0NS0yNi4zODUtNC40OTc0LTEzLjE5Mi05LjI5NDctMjYuNjg1aC05NC4xNDZsLTE4Ljg4OSA1My4wN2gtMzAuMjgzcTExLjk5My0zMi45ODEgMjIuNDg3LTYwLjg2NSAxMC40OTQtMjguMTg0IDIwLjM4OC01My4zNjkgMTAuMTk0LTI1LjE4NiAyMC4wODktNDcuOTczIDkuODk0My0yMy4wODcgMjAuNjg4LTQ1LjU3NGgyNi42ODVxMTAuNzk0IDIyLjQ4NyAyMC42ODggNDUuNTc0IDkuODk0MyAyMi43ODcgMTkuNzg5IDQ3Ljk3MyAxMC4xOTQgMjUuMTg2IDIwLjY4OCA1My4zNjkgMTAuNDk0IDI3Ljg4NCAyMi40ODcgNjAuODY1em0tMjcuMjg0LTc3LjA1NnEtOS41OTQ1LTI2LjA4NS0xOS4xODktNTAuMzcxLTkuMjk0Ny0yNC41ODYtMTkuNDg5LTQ3LjA3My0xMC40OTQgMjIuNDg3LTIwLjA4OSA0Ny4wNzMtOS4yOTQ3IDI0LjI4Ni0xOC41ODkgNTAuMzcxelwiLz5cbiAgPHBhdGggZD1cIm0xNzMuMjQgMzI1LjI1cS02Ljg5NiA3Ljc5NTUtMTYuMTkxIDE4Ljg4OS04Ljk5NDggMTAuNzk0LTE5LjE4OSAyNC4yODYtMTAuMTk0IDEzLjE5Mi0yMC45ODggMjguMTg0LTEwLjc5NCAxNC42OTItMjEuMjg4IDI5Ljk4My0xMC4xOTQgMTQuOTkxLTE5LjQ4OSAyOS45ODMtOS4yOTQ3IDE0Ljk5MS0xNi43OSAyOC40ODRoMTE2LjkzdjI0Ljg4NmgtMTUwLjgxdi0xOS40ODlxNi4yOTY0LTExLjk5MyAxNC42OTItMjYuMzg1IDguNjk1LTE0LjM5MiAxOC4yOS0yOS4zODMgOS44OTQzLTE0Ljk5MSAyMC4zODgtMzAuMjgzdDIwLjY4OC0yOS4zODNxMTAuNDk0LTE0LjA5MiAyMC4wODgtMjYuMzg1IDkuODk0My0xMi4yOTMgMTcuOTktMjEuNTg4aC0xMDYuNzR2LTI0Ljg4NmgxNDIuNDJ6XCIvPlxuPC9zdmc+YCxcbiAgc29ydERlc2M6IGBcbjxzdmcgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxnIHRyYW5zZm9ybT1cIm1hdHJpeCgxIDAgMCAtMSAwIDUwMS4xNSlcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzNcIj5cbiAgICA8cGF0aCBkPVwibTM1My42IDc0LjQ4NmMtMTEuNzc2IDAtMjEuMzMzIDkuNTU3My0yMS4zMzMgMjEuMzMzdjI5OC42N2MwIDExLjc3NiA5LjU1NzMgMjEuMzMzIDIxLjMzMyAyMS4zMzNzMjEuMzMzLTkuNTU3MyAyMS4zMzMtMjEuMzMzdi0yOTguNjdjMC0xMS43NzYtOS41NTczLTIxLjMzMy0yMS4zMzMtMjEuMzMzelwiLz5cbiAgICA8cGF0aCBkPVwibTM1My42IDc0LjQ4NmMtNS40NjM2IDAtMTAuOTIyIDIuMDc4MS0xNS4wNzkgNi4yNTUybC0xMTMuNzggMTEzLjc4Yy04LjMzMzMgOC4zMzMzLTguMzMzMyAyMS44NDQgMCAzMC4xNzcgOC4zMzMzIDguMzMzMyAyMS44NDQgOC4zMzMzIDMwLjE4MyAwbDk4LjY5Ny05OC43MDMgOTguNzAzIDk4LjcwM2M4LjMzMzMgOC4zMzMzIDIxLjg0OSA4LjMzMzMgMzAuMTgzIDAgOC4zMzMzLTguMzMzMyA4LjMzMzMtMjEuODQ0IDAtMzAuMTc3bC0xMTMuNzgtMTEzLjc4Yy00LjIwODMtNC4xNzcxLTkuNjY2Ny02LjI1NTItMTUuMTMxLTYuMjU1MnpcIi8+XG4gIDwvZz5cbiAgPHBhdGggZD1cIm0xNjkuMTEgNTA3LjcycS01LjA5NzEtMTMuNDkyLTkuNTk0NS0yNi4zODUtNC40OTc0LTEzLjE5Mi05LjI5NDctMjYuNjg1aC05NC4xNDZsLTE4Ljg4OSA1My4wN2gtMzAuMjgzcTExLjk5My0zMi45ODEgMjIuNDg3LTYwLjg2NSAxMC40OTQtMjguMTg0IDIwLjM4OC01My4zNjkgMTAuMTk0LTI1LjE4NiAyMC4wODgtNDcuOTczIDkuODk0My0yMy4wODcgMjAuNjg4LTQ1LjU3NGgyNi42ODVxMTAuNzk0IDIyLjQ4NyAyMC42ODggNDUuNTc0IDkuODk0MyAyMi43ODcgMTkuNzg5IDQ3Ljk3MyAxMC4xOTQgMjUuMTg2IDIwLjY4OCA1My4zNjkgMTAuNDk0IDI3Ljg4NCAyMi40ODcgNjAuODY1em0tMjcuMjg0LTc3LjA1NnEtOS41OTQ1LTI2LjA4NS0xOS4xODktNTAuMzcxLTkuMjk0Ny0yNC41ODYtMTkuNDg5LTQ3LjA3My0xMC40OTQgMjIuNDg3LTIwLjA4OSA0Ny4wNzMtOS4yOTQ3IDI0LjI4Ni0xOC41ODkgNTAuMzcxelwiLz5cbiAgPHBhdGggZD1cIm0xNzYuMzEgMjcuNjM5cS02Ljg5NiA3Ljc5NTUtMTYuMTkxIDE4Ljg4OS04Ljk5NDggMTAuNzk0LTE5LjE4OSAyNC4yODYtMTAuMTk0IDEzLjE5Mi0yMC45ODggMjguMTg0LTEwLjc5NCAxNC42OTItMjEuMjg4IDI5Ljk4My0xMC4xOTQgMTQuOTkxLTE5LjQ4OSAyOS45ODMtOS4yOTQ3IDE0Ljk5MS0xNi43OSAyOC40ODRoMTE2LjkzdjI0Ljg4NmgtMTUwLjgxdi0xOS40ODlxNi4yOTY0LTExLjk5MyAxNC42OTItMjYuMzg1IDguNjk1LTE0LjM5MiAxOC4yOS0yOS4zODMgOS44OTQzLTE0Ljk5MSAyMC4zODgtMzAuMjgzIDEwLjQ5NC0xNS4yOTEgMjAuNjg4LTI5LjM4MyAxMC40OTQtMTQuMDkyIDIwLjA4OC0yNi4zODUgOS44OTQzLTEyLjI5MyAxNy45OS0yMS41ODhoLTEwNi43NHYtMjQuODg2aDE0Mi40MnpcIi8+XG48L3N2Zz5gLFxuICBmb3JtdWxhOiBgXG48c3ZnIGNsYXNzPVwid2lkZ2V0LWljb25cIiB2ZXJzaW9uPVwiMS4xXCIgdmlld0JveD1cIjAgMCA1MTIgNTEyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8cGF0aCBkPVwibTI2My41MSA2Mi45NjdjMS42NzItMTEuMTM0IDkuMzI2LTIyLjk2NyAyMC4yMjItMjIuOTY3IDExLjAyOCAwIDIwIDguOTcyIDIwIDIwaDQwYzAtMzMuMDg0LTI2LjkxNi02MC02MC02MC0zMy42MjkgMC01NS41MjcgMjguNjkxLTU5Ljc4NCA1Ny4wNzNsLTEyLjg2MiA4Ni45MjdoLTYxLjM1NHY0MGg1NS40MzZsLTM5LjIyIDI2NS4wNy0wLjExNiAwLjkzN2MtMS4wNjMgMTAuNjItOS4zOTMgMjEuOTktMjAuMSAyMS45OS0xMS4wMjggMC0yMC04Ljk3Mi0yMC0yMGgtNDBjMCAzMy4wODQgMjYuOTE2IDYwIDYwIDYwIDMzLjY2MSAwIDU2Ljc3MS0yOS4xNDEgNTkuODQ4LTU3LjQ5Nmw0MC4wMjMtMjcwLjVoNjAuMTI5di00MGgtNTQuMjExbDExLjk4OS04MS4wMzN6XCIvPlxuICA8cG9seWdvbiBwb2ludHM9XCI0MjYuMjcgMjQ4IDM3OC4yNCAyNDggMzUyLjI1IDI4Ny4wOCAzMzQuOTIgMjQ4IDI5MS4xNyAyNDggMzI2IDMyNi41NyAyNzAuNTIgNDEwIDMxOC41NiA0MTAgMzQ1LjIxIDM2OS45MiAzNjIuOTggNDEwIDQwNi43MyA0MTAgMzcxLjQ2IDMzMC40M1wiLz5cbjwvc3ZnPmAsXG4gIGhlbHA6IGBcbjxzdmcgY2xhc3M9XCJ3aWRnZXQtaWNvblwiIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxwYXRoIGQ9XCJtMjQ4LjE2IDM0My4yMmMtMTQuNjM5IDAtMjYuNDkxIDEyLjItMjYuNDkxIDI2Ljg0IDAgMTQuMjkxIDExLjUwMyAyNi44NCAyNi40OTEgMjYuODRzMjYuODQtMTIuNTQ4IDI2Ljg0LTI2Ljg0YzAtMTQuNjQtMTIuMTk5LTI2Ljg0LTI2Ljg0LTI2Ljg0elwiLz5cbiAgPHBhdGggZD1cIm0yNTIuNjkgMTQwYy00Ny4wNTcgMC02OC42NjggMjcuODg1LTY4LjY2OCA0Ni43MDggMCAxMy41OTUgMTEuNTAyIDE5Ljg2OSAyMC45MTQgMTkuODY5IDE4LjgyMiAwIDExLjE1NC0yNi44NCA0Ni43MDgtMjYuODQgMTcuNDI5IDAgMzEuMzcyIDcuNjY5IDMxLjM3MiAyMy43MDMgMCAxOC44MjQtMTkuNTIgMjkuNjI5LTMxLjAyMyAzOS4zODktMTAuMTA4IDguNzE0LTIzLjM1NCAyMy4wMDYtMjMuMzU0IDUyLjk4MyAwIDE4LjEyNSA0Ljg3OSAyMy4zNTQgMTkuMTcxIDIzLjM1NCAxNy4wOCAwIDIwLjU2NS03LjY2OCAyMC41NjUtMTQuMjkxIDAtMTguMTI2IDAuMzUtMjguNTgzIDE5LjUyMS00My41NzEgOS40MTEtNy4zMiAzOS4wNC0zMS4wMjMgMzkuMDQtNjMuNzg5cy0yOS42MjktNTcuNTE1LTc0LjI0Ni01Ny41MTV6XCIvPlxuICA8cGF0aCBkPVwibTI1NiAwYy0xNDEuNDggMC0yNTYgMTE0LjUtMjU2IDI1NnYyMzZjMCAxMS4wNDYgOC45NTQgMjAgMjAgMjBoMjM2YzE0MS40OCAwIDI1Ni0xMTQuNSAyNTYtMjU2IDAtMTQxLjQ4LTExNC41LTI1Ni0yNTYtMjU2em0wIDQ3MmgtMjE2di0yMTZjMC0xMTkuMzggOTYuNjA3LTIxNiAyMTYtMjE2IDExOS4zOCAwIDIxNiA5Ni42MDcgMjE2IDIxNiAwIDExOS4zOC05Ni42MDcgMjE2LTIxNiAyMTZ6XCIvPlxuPC9zdmc+YCxcbiAgY3N2OiBgXG48c3ZnIGNsYXNzPVwid2lkZ2V0LWljb25cIiB2ZXJzaW9uPVwiMS4xXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiA8cGF0aCBkPVwibTQuOTk3OSA5di04aDE0LjUwMmwzLjUgMy41IDJlLTcgMTguNWgtMTltMTQtMjJ2NWg1bS0xNiA3aC0yYy0xIDAtMiAwLjUtMiAxLjV2MS41czFlLTggMC41IDAgMS41IDEgMS41IDIgMS41aDJtNi4yNS02aC0yLjVjLTEuNSAwLTIgMC41LTIgMS41czAuNSAxLjUgMiAxLjUgMiAwLjUgMiAxLjUtMC41IDEuNS0yIDEuNWgtMi41bTEyLjI1LTd2MC41YzAgMC41LTIuNSA2LjUtMi41IDYuNWgtMC41cy0yLjUtNi0yLjUtNi41di0wLjVcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cInZhcigtLXRleHQtbXV0ZWQpXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIvPlxuPC9zdmc+YCxcbiAgYXJyb3dlbnRlcjogYFxuPHN2ZyB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIm00LjY0MTE5IDEyLjUgMi44NzI4MyAyLjcwMzhjLjMwMTYzLjI4MzkuMzE2MDIuNzU4Ni4wMzIxMyAxLjA2MDItLjI4Mzg5LjMwMTctLjc1ODU0LjMxNi0xLjA2MDE3LjAzMjFsLTQuMjUtNGMtLjE1MDU5LS4xNDE3LS4yMzU5OC0uMzM5My0uMjM1OTgtLjU0NjFzLjA4NTM5LS40MDQ0LjIzNTk4LS41NDYybDQuMjUtMy45OTk5NWMuMzAxNjMtLjI4Mzg5Ljc3NjI4LS4yNjk1IDEuMDYwMTcuMDMyMTNzLjI2OTUuNzc2MjgtLjAzMjEzIDEuMDYwMTdsLTIuODcyODQgMi43MDM4NWgxMC4xMDg4MmMuOTY2NSAwIDEuNzUtLjc4MzUgMS43NS0xLjc1di00LjVjMC0uNDE0MjEuMzM1OC0uNzUuNzUtLjc1cy43NS4zMzU3OS43NS43NXY0LjVjMCAxLjc5NDktMS40NTUxIDMuMjUtMy4yNSAzLjI1elwiLz5cbjwvc3ZnPmAsXG4gIGFycm93dGFiOiBgXG48c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwibTE4LjIwNzEwNjggMTEuMjkyODkzMi02LjUtNi40OTk5OTk5OGMtLjM5MDUyNDMtLjM5MDUyNDI5LTEuMDIzNjg5My0uMzkwNTI0MjktMS40MTQyMTM2IDAtLjM2MDQ4Mzk0LjM2MDQ4Mzk2LS4zODgyMTM0OC45Mjc3MTUwMi0uMDgzMTg4NiAxLjMyMDAwNjIybC4wODMxODg2LjA5NDIwNzM0IDQuNzkzMTA2OCA0Ljc5Mjg5MzIyaC0xMS4wODZjLS41MTI4MzU4NCAwLS45MzU1MDcxNi4zODYwNDAyLS45OTMyNzIyNy44ODMzNzg5bC0uMDA2NzI3NzMuMTE2NjIxMWMwIC41MTI4MzU4LjM4NjA0MDE5LjkzNTUwNzIuODgzMzc4ODcuOTkzMjcyM2wuMTE2NjIxMTMuMDA2NzI3N2gxMS4wODZsLTQuNzkzMTA2OCA0Ljc5Mjg5MzJjLS4zNjA0ODM5NC4zNjA0ODQtLjM4ODIxMzQ4LjkyNzcxNS0uMDgzMTg4NiAxLjMyMDAwNjJsLjA4MzE4ODYuMDk0MjA3NGMuMzYwNDg0LjM2MDQ4MzkuOTI3NzE1LjM4ODIxMzUgMS4zMjAwMDYyLjA4MzE4ODZsLjA5NDIwNzQtLjA4MzE4ODYgNi41LTYuNWMuMzYwNDgzOS0uMzYwNDg0LjM4ODIxMzUtLjkyNzcxNS4wODMxODg2LTEuMzIwMDA2MmwtLjA4MzE4ODYtLjA5NDIwNzQtNi41LTYuNDk5OTk5OTh6bTIuNzkyODkzMiA3LjIwNzEwNjh2LTEzYzAtLjU1MjI4NDc1LS40NDc3MTUzLTEtMS0xcy0xIC40NDc3MTUyNS0xIDF2MTNjMCAuNTUyMjg0Ny40NDc3MTUzIDEgMSAxczEtLjQ0NzcxNTMgMS0xelwiIGZpbGw9XCIjMjEyMTIxXCIvPlxuPC9zdmc+YCxcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRJY29ucyA9ICgpOiB2b2lkID0+IHtcbiAgT2JqZWN0LmtleXMoaWNvbnMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIC8vIERvbid0IGFkZCB0aGUgJ2hlbHAnIGljb24gaGVyZSBhcyBpdCB3aWxsIG92ZXJ3cml0ZSB0aGUgbmF0aXZlIG9uZS5cbiAgICBpZiAoa2V5ICE9PSAnaGVscCcpIHtcbiAgICAgIGFkZEljb24oa2V5LCBpY29uc1trZXldKTtcbiAgICB9XG4gIH0pO1xufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Qb2ludCA9IHZvaWQgMDtcbi8qKlxuICogQSBgUG9pbnRgIHJlcHJlc2VudHMgYSBwb2ludCBpbiB0aGUgdGV4dCBlZGl0b3IuXG4gKi9cbmNsYXNzIFBvaW50IHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGBQb2ludGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvdyAtIFJvdyBvZiB0aGUgcG9pbnQsIHN0YXJ0cyBmcm9tIDAuXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIENvbHVtbiBvZiB0aGUgcG9pbnQsIHN0YXJ0cyBmcm9tIDAuXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iocm93LCBjb2x1bW4pIHtcbiAgICAgICAgdGhpcy5yb3cgPSByb3c7XG4gICAgICAgIHRoaXMuY29sdW1uID0gY29sdW1uO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIHBvaW50IGlzIGVxdWFsIHRvIGFub3RoZXIgcG9pbnQuXG4gICAgICovXG4gICAgZXF1YWxzKHBvaW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdyA9PT0gcG9pbnQucm93ICYmIHRoaXMuY29sdW1uID09PSBwb2ludC5jb2x1bW47XG4gICAgfVxufVxuZXhwb3J0cy5Qb2ludCA9IFBvaW50O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJhbmdlID0gdm9pZCAwO1xuLyoqXG4gKiBBIGBSYW5nZWAgb2JqZWN0IHJlcHJlc2VudHMgYSByYW5nZSBpbiB0aGUgdGV4dCBlZGl0b3IuXG4gKi9cbmNsYXNzIFJhbmdlIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGBSYW5nZWAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0YXJ0IC0gVGhlIHN0YXJ0IHBvaW50IG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcGFyYW0gZW5kIC0gVGhlIGVuZCBwb2ludCBvZiB0aGUgcmFuZ2UuXG4gICAgICovXG4gICAgY29uc3RydWN0b3Ioc3RhcnQsIGVuZCkge1xuICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7XG4gICAgICAgIHRoaXMuZW5kID0gZW5kO1xuICAgIH1cbn1cbmV4cG9ydHMuUmFuZ2UgPSBSYW5nZTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Gb2N1cyA9IHZvaWQgMDtcbi8qKlxuICogQSBgRm9jdXNgIG9iamVjdCByZXByZXNlbnRzIHdoaWNoIGNlbGwgaXMgZm9jdXNlZCBpbiB0aGUgdGFibGUuXG4gKlxuICogTm90ZSB0aGF0IGByb3dgIGFuZCBgY29sdW1uYCBwcm9wZXJ0aWVzIHNwZWNpZml5IGEgY2VsbCdzIHBvc2l0aW9uIGluIHRoZVxuICogdGFibGUsIG5vdCB0aGUgY3Vyc29yJ3MgcG9zaXRpb24gaW4gdGhlIHRleHQgZWRpdG9yIGFzIHtAbGluayBQb2ludH0gY2xhc3MuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgRm9jdXMge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgYEZvY3VzYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm93IC0gUm93IG9mIHRoZSBmb2N1c2VkIGNlbGwuXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIENvbHVtbiBvZiB0aGUgZm9jdXNlZCBjZWxsLlxuICAgICAqIEBwYXJhbSBvZmZzZXQgLSBSYXcgb2Zmc2V0IGluIHRoZSBjZWxsLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHJvdywgY29sdW1uLCBvZmZzZXQpIHtcbiAgICAgICAgdGhpcy5yb3cgPSByb3c7XG4gICAgICAgIHRoaXMuY29sdW1uID0gY29sdW1uO1xuICAgICAgICB0aGlzLm9mZnNldCA9IG9mZnNldDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHR3byBmb2N1c2VzIHBvaW50IHRoZSBzYW1lIGNlbGwuXG4gICAgICogT2Zmc2V0cyBhcmUgaWdub3JlZC5cbiAgICAgKi9cbiAgICBwb3NFcXVhbHMoZm9jdXMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm93ID09PSBmb2N1cy5yb3cgJiYgdGhpcy5jb2x1bW4gPT09IGZvY3VzLmNvbHVtbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhlIGZvY3VzIG9iamVjdCBieSBzZXR0aW5nIGl0cyByb3cgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb3cgLSBSb3cgb2YgdGhlIGZvY3VzZWQgY2VsbC5cbiAgICAgKiBAcmV0dXJucyBBIG5ldyBmb2N1cyBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVkIHJvdy5cbiAgICAgKi9cbiAgICBzZXRSb3cocm93KSB7XG4gICAgICAgIHJldHVybiBuZXcgRm9jdXMocm93LCB0aGlzLmNvbHVtbiwgdGhpcy5vZmZzZXQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGUgZm9jdXMgb2JqZWN0IGJ5IHNldHRpbmcgaXRzIGNvbHVtbiB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbHVtbiAtIENvbHVtbiBvZiB0aGUgZm9jdXNlZCBjZWxsLlxuICAgICAqIEByZXR1cm5zIEEgbmV3IGZvY3VzIG9iamVjdCB3aXRoIHRoZSBzcGVjaWZpZWQgY29sdW1uLlxuICAgICAqL1xuICAgIHNldENvbHVtbihjb2x1bW4pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGb2N1cyh0aGlzLnJvdywgY29sdW1uLCB0aGlzLm9mZnNldCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoZSBmb2N1cyBvYmplY3QgYnkgc2V0dGluZyBpdHMgb2Zmc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2Zmc2V0IC0gT2Zmc2V0IGluIHRoZSBmb2N1c2VkIGNlbGwuXG4gICAgICogQHJldHVybnMgQSBuZXcgZm9jdXMgb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCBvZmZzZXQuXG4gICAgICovXG4gICAgc2V0T2Zmc2V0KG9mZnNldCkge1xuICAgICAgICByZXR1cm4gbmV3IEZvY3VzKHRoaXMucm93LCB0aGlzLmNvbHVtbiwgb2Zmc2V0KTtcbiAgICB9XG59XG5leHBvcnRzLkZvY3VzID0gRm9jdXM7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuSGVhZGVyQWxpZ25tZW50ID0gZXhwb3J0cy5EZWZhdWx0QWxpZ25tZW50ID0gZXhwb3J0cy5BbGlnbm1lbnQgPSB2b2lkIDA7XG4vKipcbiAqIFJlcHJlc2VudHMgY29sdW1uIGFsaWdubWVudC5cbiAqXG4gKiAtIGBBbGlnbm1lbnQuTk9ORWAgLSBVc2UgZGVmYXVsdCBhbGlnbm1lbnQuXG4gKiAtIGBBbGlnbm1lbnQuTEVGVGAgLSBBbGlnbiBsZWZ0LlxuICogLSBgQWxpZ25tZW50LlJJR0hUYCAtIEFsaWduIHJpZ2h0LlxuICogLSBgQWxpZ25tZW50LkNFTlRFUmAgLSBBbGlnbiBjZW50ZXIuXG4gKlxuICovXG52YXIgQWxpZ25tZW50O1xuKGZ1bmN0aW9uIChBbGlnbm1lbnQpIHtcbiAgICBBbGlnbm1lbnRbXCJOT05FXCJdID0gXCJub25lXCI7XG4gICAgQWxpZ25tZW50W1wiTEVGVFwiXSA9IFwibGVmdFwiO1xuICAgIEFsaWdubWVudFtcIlJJR0hUXCJdID0gXCJyaWdodFwiO1xuICAgIEFsaWdubWVudFtcIkNFTlRFUlwiXSA9IFwiY2VudGVyXCI7XG59KShBbGlnbm1lbnQgPSBleHBvcnRzLkFsaWdubWVudCB8fCAoZXhwb3J0cy5BbGlnbm1lbnQgPSB7fSkpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGRlZmF1bHQgY29sdW1uIGFsaWdubWVudFxuICpcbiAqIC0gYERlZmF1bHRBbGlnbm1lbnQuTEVGVGAgLSBBbGlnbiBsZWZ0LlxuICogLSBgRGVmYXVsdEFsaWdubWVudC5SSUdIVGAgLSBBbGlnbiByaWdodC5cbiAqIC0gYERlZmF1bHRBbGlnbm1lbnQuQ0VOVEVSYCAtIEFsaWduIGNlbnRlci5cbiAqXG4gKi9cbnZhciBEZWZhdWx0QWxpZ25tZW50O1xuKGZ1bmN0aW9uIChEZWZhdWx0QWxpZ25tZW50KSB7XG4gICAgRGVmYXVsdEFsaWdubWVudFtcIkxFRlRcIl0gPSBcImxlZnRcIjtcbiAgICBEZWZhdWx0QWxpZ25tZW50W1wiUklHSFRcIl0gPSBcInJpZ2h0XCI7XG4gICAgRGVmYXVsdEFsaWdubWVudFtcIkNFTlRFUlwiXSA9IFwiY2VudGVyXCI7XG59KShEZWZhdWx0QWxpZ25tZW50ID0gZXhwb3J0cy5EZWZhdWx0QWxpZ25tZW50IHx8IChleHBvcnRzLkRlZmF1bHRBbGlnbm1lbnQgPSB7fSkpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGFsaWdubWVudCBvZiBoZWFkZXIgY2VsbHMuXG4gKlxuICogLSBgSGVhZGVyQWxpZ25tZW50LkZPTExPV2AgLSBGb2xsb3cgY29sdW1uJ3MgYWxpZ25tZW50LlxuICogLSBgSGVhZGVyQWxpZ25tZW50LkxFRlRgIC0gQWxpZ24gbGVmdC5cbiAqIC0gYEhlYWRlckFsaWdubWVudC5SSUdIVGAgLSBBbGlnbiByaWdodC5cbiAqIC0gYEhlYWRlckFsaWdubWVudC5DRU5URVJgIC0gQWxpZ24gY2VudGVyLlxuICpcbiAqL1xudmFyIEhlYWRlckFsaWdubWVudDtcbihmdW5jdGlvbiAoSGVhZGVyQWxpZ25tZW50KSB7XG4gICAgSGVhZGVyQWxpZ25tZW50W1wiRk9MTE9XXCJdID0gXCJmb2xsb3dcIjtcbiAgICBIZWFkZXJBbGlnbm1lbnRbXCJMRUZUXCJdID0gXCJsZWZ0XCI7XG4gICAgSGVhZGVyQWxpZ25tZW50W1wiUklHSFRcIl0gPSBcInJpZ2h0XCI7XG4gICAgSGVhZGVyQWxpZ25tZW50W1wiQ0VOVEVSXCJdID0gXCJjZW50ZXJcIjtcbn0pKEhlYWRlckFsaWdubWVudCA9IGV4cG9ydHMuSGVhZGVyQWxpZ25tZW50IHx8IChleHBvcnRzLkhlYWRlckFsaWdubWVudCA9IHt9KSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuVGFibGVDZWxsID0gdm9pZCAwO1xuY29uc3QgYWxpZ25tZW50XzEgPSByZXF1aXJlKFwiLi9hbGlnbm1lbnRcIik7XG4vKipcbiAqIEEgYFRhYmxlQ2VsbGAgb2JqZWN0IHJlcHJlc2VudHMgYSB0YWJsZSBjZWxsLlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIFRhYmxlQ2VsbCB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBgVGFibGVDZWxsYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmF3Q29udGVudCAtIFJhdyBjb250ZW50IG9mIHRoZSBjZWxsLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHJhd0NvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5yYXdDb250ZW50ID0gcmF3Q29udGVudDtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gcmF3Q29udGVudC50cmltKCk7XG4gICAgICAgIHRoaXMucGFkZGluZ0xlZnQgPVxuICAgICAgICAgICAgdGhpcy5jb250ZW50ID09PSAnJ1xuICAgICAgICAgICAgICAgID8gdGhpcy5yYXdDb250ZW50ID09PSAnJ1xuICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgOiAxXG4gICAgICAgICAgICAgICAgOiB0aGlzLnJhd0NvbnRlbnQubGVuZ3RoIC0gdGhpcy5yYXdDb250ZW50LnRyaW1MZWZ0KCkubGVuZ3RoO1xuICAgICAgICB0aGlzLnBhZGRpbmdSaWdodCA9XG4gICAgICAgICAgICB0aGlzLnJhd0NvbnRlbnQubGVuZ3RoIC0gdGhpcy5jb250ZW50Lmxlbmd0aCAtIHRoaXMucGFkZGluZ0xlZnQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnZlcnMgdGhlIGNlbGwgdG8gYSB0ZXh0IHJlcHJlc2VudGF0aW9uLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIHJhdyBjb250ZW50IG9mIHRoZSBjZWxsLlxuICAgICAqL1xuICAgIHRvVGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3Q29udGVudDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBjZWxsIGlzIGEgZGVsaW1pdGVyIGkuZS4gaXQgb25seSBjb250YWlucyBoeXBoZW5zIGAtYCB3aXRoIG9wdGlvbmFsIG9uZVxuICAgICAqIGxlYWRpbmcgYW5kIHRyYWlsaW5nIGNvbG9ucyBgOmAuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGNlbGwgaXMgYSBkZWxpbWl0ZXIuXG4gICAgICovXG4gICAgaXNEZWxpbWl0ZXIoKSB7XG4gICAgICAgIHJldHVybiAvXlxccyo6Py0rOj9cXHMqJC8udGVzdCh0aGlzLnJhd0NvbnRlbnQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBhbGlnbm1lbnQgdGhlIGNlbGwgcmVwcmVzZW50cy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSBhbGlnbm1lbnQgdGhlIGNlbGwgcmVwcmVzZW50czsgYHVuZGVmaW5lZGAgaWYgdGhlIGNlbGwgaXMgbm90IGEgZGVsaW1pdGVyLlxuICAgICAqL1xuICAgIGdldEFsaWdubWVudCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRGVsaW1pdGVyKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29udGVudFswXSA9PT0gJzonKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jb250ZW50W3RoaXMuY29udGVudC5sZW5ndGggLSAxXSA9PT0gJzonKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFsaWdubWVudF8xLkFsaWdubWVudC5DRU5URVI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYWxpZ25tZW50XzEuQWxpZ25tZW50LkxFRlQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29udGVudFt0aGlzLmNvbnRlbnQubGVuZ3RoIC0gMV0gPT09ICc6Jykge1xuICAgICAgICAgICAgcmV0dXJuIGFsaWdubWVudF8xLkFsaWdubWVudC5SSUdIVDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWxpZ25tZW50XzEuQWxpZ25tZW50Lk5PTkU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIGEgcmVsYXRpdmUgcG9zaXRpb24gaW4gdGhlIHRyaW1tZWQgY29udGVudCBmcm9tIHRoYXQgaW4gdGhlIHJhdyBjb250ZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHJhd09mZnNldCAtIFJlbGF0aXZlIHBvc2l0aW9uIGluIHRoZSByYXcgY29udGVudC5cbiAgICAgKiBAcmV0dXJucyAtIFJlbGF0aXZlIHBvc2l0aW9uIGluIHRoZSB0cmltbWVkIGNvbnRlbnQuXG4gICAgICovXG4gICAgY29tcHV0ZUNvbnRlbnRPZmZzZXQocmF3T2Zmc2V0KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnQgPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmF3T2Zmc2V0IDwgdGhpcy5wYWRkaW5nTGVmdCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJhd09mZnNldCA8IHRoaXMucGFkZGluZ0xlZnQgKyB0aGlzLmNvbnRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gcmF3T2Zmc2V0IC0gdGhpcy5wYWRkaW5nTGVmdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50Lmxlbmd0aDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgYSByZWxhdGl2ZSBwb3NpdGlvbiBpbiB0aGUgcmF3IGNvbnRlbnQgZnJvbSB0aGF0IGluIHRoZSB0cmltbWVkIGNvbnRlbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGVudE9mZnNldCAtIFJlbGF0aXZlIHBvc2l0aW9uIGluIHRoZSB0cmltbWVkIGNvbnRlbnQuXG4gICAgICogQHJldHVybnMgLSBSZWxhdGl2ZSBwb3NpdGlvbiBpbiB0aGUgcmF3IGNvbnRlbnQuXG4gICAgICovXG4gICAgY29tcHV0ZVJhd09mZnNldChjb250ZW50T2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiBjb250ZW50T2Zmc2V0ICsgdGhpcy5wYWRkaW5nTGVmdDtcbiAgICB9XG59XG5leHBvcnRzLlRhYmxlQ2VsbCA9IFRhYmxlQ2VsbDtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UYWJsZVJvdyA9IHZvaWQgMDtcbmNvbnN0IHRhYmxlX2NlbGxfMSA9IHJlcXVpcmUoXCIuL3RhYmxlLWNlbGxcIik7XG4vKipcbiAqIEEgYFRhYmxlUm93YCBvYmplY3QgcmVwcmVzZW50cyBhIHRhYmxlIHJvdy5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBUYWJsZVJvdyB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBgVGFibGVSb3dgIG9iamVjLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNlbGxzIC0gQ2VsbHMgdGhhdCB0aGUgcm93IGNvbnRhaW5zLlxuICAgICAqIEBwYXJhbSBtYXJnaW5MZWZ0IC0gTWFyZ2luIHN0cmluZyBhdCB0aGUgbGVmdCBvZiB0aGUgcm93LlxuICAgICAqIEBwYXJhbSBtYXJnaW5SaWdodCAtIE1hcmdpbiBzdHJpbmcgYXQgdGhlIHJpZ2h0IG9mIHRoZSByb3cuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoY2VsbHMsIG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0KSB7XG4gICAgICAgIHRoaXMuX2NlbGxzID0gY2VsbHMuc2xpY2UoKTtcbiAgICAgICAgdGhpcy5tYXJnaW5MZWZ0ID0gbWFyZ2luTGVmdDtcbiAgICAgICAgdGhpcy5tYXJnaW5SaWdodCA9IG1hcmdpblJpZ2h0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgdGhlIGNlbGxzIGluIHRoZSByb3cuXG4gICAgICovXG4gICAgZ2V0V2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jZWxscy5sZW5ndGg7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGNlbGxzIHRoYXQgdGhlIHJvdyBjb250YWlucy5cbiAgICAgKi9cbiAgICBnZXRDZWxscygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NlbGxzLnNsaWNlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgYSBjZWxsIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaW5kZXggLSBJbmRleC5cbiAgICAgKiBAcmV0dXJucyBUaGUgY2VsbCBhdCB0aGUgc3BlY2lmaWVkIGluZGV4IGlmIGV4aXN0czsgYHVuZGVmaW5lZGAgaWYgbm8gY2VsbCBpcyBmb3VuZC5cbiAgICAgKi9cbiAgICBnZXRDZWxsQXQoaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NlbGxzW2luZGV4XTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyBhIGNlbGwgaW4gdGhlIHJvdyB0byBhIG5ldyB2YWx1ZSwgcmV0dXJuaW5nIGEgY29weSBvZiB0aGUgcm93XG4gICAgICogd2l0aCB0aGUgbW9kaWZpZWQgdmFsdWUuXG4gICAgICpcbiAgICAgKiBJZiBhbiBpbnZhbGlkIGluZGV4IGlzIHByb3ZpZGVkLCB0aGUgcm93IHdpbGwgYmUgdW5jaGFuZ2VkLlxuICAgICAqL1xuICAgIHNldENlbGxBdChpbmRleCwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgY2VsbHMgPSB0aGlzLmdldENlbGxzKCk7IC8vIGEgY29weVxuICAgICAgICBjZWxsc1tpbmRleF0gPSBuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBuZXcgVGFibGVSb3coY2VsbHMsIHRoaXMubWFyZ2luTGVmdCwgdGhpcy5tYXJnaW5SaWdodCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnZlcnMgdGhlIHJvdyB0byBhIHRleHQgcmVwcmVzZW50YXRpb24uXG4gICAgICovXG4gICAgdG9UZXh0KCkge1xuICAgICAgICBpZiAodGhpcy5fY2VsbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tYXJnaW5MZWZ0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNlbGxzID0gdGhpcy5fY2VsbHMubWFwKChjZWxsKSA9PiBjZWxsLnRvVGV4dCgpKS5qb2luKCd8Jyk7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLm1hcmdpbkxlZnR9fCR7Y2VsbHN9fCR7dGhpcy5tYXJnaW5SaWdodH1gO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIHJvdyBpcyBhIGRlbGltaXRlciBvciBub3QuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHJvdyBpcyBhIGRlbGltaXRlciBpLmUuIGFsbCB0aGUgY2VsbHMgY29udGFpbmVkIGFyZSBkZWxpbWl0ZXJzLlxuICAgICAqL1xuICAgIGlzRGVsaW1pdGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2VsbHMuZXZlcnkoKGNlbGwpID0+IGNlbGwuaXNEZWxpbWl0ZXIoKSk7XG4gICAgfVxufVxuZXhwb3J0cy5UYWJsZVJvdyA9IFRhYmxlUm93O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vKipcbiAqIFJldHJpZXZlZCBmcm9tXG4gKiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9zdXBlcm1hY3JvL25ldmVydGhyb3dcbiAqXG4gKiBNSVQgTGljZW5zZVxuICogQ29weXJpZ2h0IChjKSAyMDE5IEdpb3JnaW8gRGVsZ2Fkb1xuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkVyciA9IGV4cG9ydHMuT2sgPSBleHBvcnRzLmVyciA9IGV4cG9ydHMub2sgPSB2b2lkIDA7XG5jb25zdCBvayA9ICh2YWx1ZSkgPT4gbmV3IE9rKHZhbHVlKTtcbmV4cG9ydHMub2sgPSBvaztcbmNvbnN0IGVyciA9IChlcnIpID0+IG5ldyBFcnIoZXJyKTtcbmV4cG9ydHMuZXJyID0gZXJyO1xuY2xhc3MgT2sge1xuICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5tYXRjaCA9IChvaywgX2VycikgPT4gb2sodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIGlzT2soKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpc0VycigpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzT2soKTtcbiAgICB9XG4gICAgbWFwKGYpIHtcbiAgICAgICAgcmV0dXJuIGV4cG9ydHMub2soZih0aGlzLnZhbHVlKSk7XG4gICAgfVxuICAgIG1hcEVycihfZikge1xuICAgICAgICByZXR1cm4gZXhwb3J0cy5vayh0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgLy8gYWRkIGluZm8gb24gaG93IHRoaXMgaXMgcmVhbGx5IHVzZWZ1bCBmb3IgY29udmVydGluZyBhXG4gICAgLy8gUmVzdWx0PFJlc3VsdDxULCBFMj4sIEUxPlxuICAgIC8vIGludG8gYSBSZXN1bHQ8VCwgRTI+XG4gICAgYW5kVGhlbihmKSB7XG4gICAgICAgIHJldHVybiBmKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICB1bndyYXBPcihfdikge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG4gICAgX3Vuc2FmZVVud3JhcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuICAgIF91bnNhZmVVbndyYXBFcnIoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ2FsbGVkIGBfdW5zYWZlVW53cmFwRXJyYCBvbiBhbiBPaycpO1xuICAgIH1cbn1cbmV4cG9ydHMuT2sgPSBPaztcbmNsYXNzIEVyciB7XG4gICAgY29uc3RydWN0b3IoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yO1xuICAgICAgICB0aGlzLm1hdGNoID0gKF9vaywgZXJyKSA9PiBlcnIodGhpcy5lcnJvcik7XG4gICAgfVxuICAgIGlzT2soKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaXNFcnIoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc09rKCk7XG4gICAgfVxuICAgIG1hcChfZikge1xuICAgICAgICByZXR1cm4gZXhwb3J0cy5lcnIodGhpcy5lcnJvcik7XG4gICAgfVxuICAgIG1hcEVycihmKSB7XG4gICAgICAgIHJldHVybiBleHBvcnRzLmVycihmKHRoaXMuZXJyb3IpKTtcbiAgICB9XG4gICAgYW5kVGhlbihfZikge1xuICAgICAgICByZXR1cm4gZXhwb3J0cy5lcnIodGhpcy5lcnJvcik7XG4gICAgfVxuICAgIHVud3JhcE9yKHYpIHtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuICAgIF91bnNhZmVVbndyYXAoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ2FsbGVkIGBfdW5zYWZlVW53cmFwYCBvbiBhbiBFcnInKTtcbiAgICB9XG4gICAgX3Vuc2FmZVVud3JhcEVycigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3I7XG4gICAgfVxufVxuZXhwb3J0cy5FcnIgPSBFcnI7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucHJldHR5UHJpbnRBU1QgPSBleHBvcnRzLmNoZWNrQ2hpbGRMZW5ndGggPSBleHBvcnRzLmNoZWNrVHlwZSA9IGV4cG9ydHMuZXJyUmVsYXRpdmVSZWZlcmVuY2VJbmRleCA9IGV4cG9ydHMuZXJySW5kZXgwID0gdm9pZCAwO1xuZXhwb3J0cy5lcnJJbmRleDAgPSBuZXcgRXJyb3IoJ0luZGV4IDAgdXNlZCB0byBjcmVhdGUgYSByZWZlcmVuY2UnKTtcbmV4cG9ydHMuZXJyUmVsYXRpdmVSZWZlcmVuY2VJbmRleCA9IG5ldyBFcnJvcignQ2FuIG5vdCB1c2UgcmVsYXRpdmUgcmVmZXJlbmNlIHdoZXJlIGFic29sdXRlIHJlZmVyZW5jZSBpcyByZXF1aXJlZCcpO1xuY29uc3QgY2hlY2tUeXBlID0gKGFzdCwgLi4uZXhwZWN0ZWRUeXBlcykgPT4ge1xuICAgIGlmIChleHBlY3RlZFR5cGVzLmluZGV4T2YoYXN0LnR5cGUpID49IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEVycm9yKGBGb3JtdWxhIGVsZW1lbnQgJyR7YXN0LnRleHR9JyBpcyBhICR7YXN0LnR5cGV9IGJ1dCBleHBlY3RlZCBgICtcbiAgICAgICAgYG9uZSBvZiAke2V4cGVjdGVkVHlwZXN9IGluIHRoaXMgcG9zaXRpb24uYCk7XG59O1xuZXhwb3J0cy5jaGVja1R5cGUgPSBjaGVja1R5cGU7XG5jb25zdCBjaGVja0NoaWxkTGVuZ3RoID0gKGFzdCwgbGVuKSA9PiB7XG4gICAgaWYgKGFzdC5jaGlsZHJlbi5sZW5ndGggPT09IGxlbikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiBuZXcgRXJyb3IoYEZvcm11bGEgZWxlbWVudCAnJHthc3QudGV4dH0nIHdhcyBleHBlY3RlZCB0byBoYXZlICR7bGVufSBgICtcbiAgICAgICAgYGVsZW1lbnRzLCBidXQgaGFkICR7YXN0LmNoaWxkcmVuLmxlbmd0aH1gKTtcbn07XG5leHBvcnRzLmNoZWNrQ2hpbGRMZW5ndGggPSBjaGVja0NoaWxkTGVuZ3RoO1xuY29uc3QgcHJldHR5UHJpbnRBU1QgPSAodG9rZW4sIGxldmVsID0gMCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKCcgICcucmVwZWF0KGxldmVsKSArXG4gICAgICAgIGB8LSR7dG9rZW4udHlwZX0ke3Rva2VuLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCA/ICc9JyArIHRva2VuLnRleHQgOiAnJ31gKTtcbiAgICBpZiAodG9rZW4uY2hpbGRyZW4pIHtcbiAgICAgICAgdG9rZW4uY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgICAgZXhwb3J0cy5wcmV0dHlQcmludEFTVChjLCBsZXZlbCArIDEpO1xuICAgICAgICB9KTtcbiAgICB9XG59O1xuZXhwb3J0cy5wcmV0dHlQcmludEFTVCA9IHByZXR0eVByaW50QVNUO1xuIiwiOyhmdW5jdGlvbiAoZ2xvYmFsU2NvcGUpIHtcclxuICAndXNlIHN0cmljdCc7XHJcblxyXG5cclxuICAvKiFcclxuICAgKiAgZGVjaW1hbC5qcyB2MTAuNC4zXHJcbiAgICogIEFuIGFyYml0cmFyeS1wcmVjaXNpb24gRGVjaW1hbCB0eXBlIGZvciBKYXZhU2NyaXB0LlxyXG4gICAqICBodHRwczovL2dpdGh1Yi5jb20vTWlrZU1jbC9kZWNpbWFsLmpzXHJcbiAgICogIENvcHlyaWdodCAoYykgMjAyMiBNaWNoYWVsIE1jbGF1Z2hsaW4gPE04Y2g4OGxAZ21haWwuY29tPlxyXG4gICAqICBNSVQgTGljZW5jZVxyXG4gICAqL1xyXG5cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIEVESVRBQkxFIERFRkFVTFRTICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLy9cclxuXHJcblxyXG4gICAgLy8gVGhlIG1heGltdW0gZXhwb25lbnQgbWFnbml0dWRlLlxyXG4gICAgLy8gVGhlIGxpbWl0IG9uIHRoZSB2YWx1ZSBvZiBgdG9FeHBOZWdgLCBgdG9FeHBQb3NgLCBgbWluRWAgYW5kIGBtYXhFYC5cclxuICB2YXIgRVhQX0xJTUlUID0gOWUxNSwgICAgICAgICAgICAgICAgICAgICAgLy8gMCB0byA5ZTE1XHJcblxyXG4gICAgLy8gVGhlIGxpbWl0IG9uIHRoZSB2YWx1ZSBvZiBgcHJlY2lzaW9uYCwgYW5kIG9uIHRoZSB2YWx1ZSBvZiB0aGUgZmlyc3QgYXJndW1lbnQgdG9cclxuICAgIC8vIGB0b0RlY2ltYWxQbGFjZXNgLCBgdG9FeHBvbmVudGlhbGAsIGB0b0ZpeGVkYCwgYHRvUHJlY2lzaW9uYCBhbmQgYHRvU2lnbmlmaWNhbnREaWdpdHNgLlxyXG4gICAgTUFYX0RJR0lUUyA9IDFlOSwgICAgICAgICAgICAgICAgICAgICAgICAvLyAwIHRvIDFlOVxyXG5cclxuICAgIC8vIEJhc2UgY29udmVyc2lvbiBhbHBoYWJldC5cclxuICAgIE5VTUVSQUxTID0gJzAxMjM0NTY3ODlhYmNkZWYnLFxyXG5cclxuICAgIC8vIFRoZSBuYXR1cmFsIGxvZ2FyaXRobSBvZiAxMCAoMTAyNSBkaWdpdHMpLlxyXG4gICAgTE4xMCA9ICcyLjMwMjU4NTA5Mjk5NDA0NTY4NDAxNzk5MTQ1NDY4NDM2NDIwNzYwMTEwMTQ4ODYyODc3Mjk3NjAzMzMyNzkwMDk2NzU3MjYwOTY3NzM1MjQ4MDIzNTk5NzIwNTA4OTU5ODI5ODM0MTk2Nzc4NDA0MjI4NjI0ODYzMzQwOTUyNTQ2NTA4MjgwNjc1NjY2NjI4NzM2OTA5ODc4MTY4OTQ4MjkwNzIwODMyNTU1NDY4MDg0Mzc5OTg5NDgyNjIzMzE5ODUyODM5MzUwNTMwODk2NTM3NzczMjYyODg0NjE2MzM2NjIyMjI4NzY5ODIxOTg4Njc0NjU0MzY2NzQ3NDQwNDI0MzI3NDM2NTE1NTA0ODkzNDMxNDkzOTM5MTQ3OTYxOTQwNDQwMDIyMjEwNTEwMTcxNDE3NDgwMDM2ODgwODQwMTI2NDcwODA2ODU1Njc3NDMyMTYyMjgzNTUyMjAxMTQ4MDQ2NjM3MTU2NTkxMjEzNzM0NTA3NDc4NTY5NDc2ODM0NjM2MTY3OTIxMDE4MDY0NDUwNzA2NDgwMDAyNzc1MDI2ODQ5MTY3NDY1NTA1ODY4NTY5MzU2NzM0MjA2NzA1ODExMzY0MjkyMjQ1NTQ0MDU3NTg5MjU3MjQyMDgyNDEzMTQ2OTU2ODkwMTY3NTg5NDAyNTY3NzYzMTEzNTY5MTkyOTIwMzMzNzY1ODcxNDE2NjAyMzAxMDU3MDMwODk2MzQ1NzIwNzU0NDAzNzA4NDc0Njk5NDAxNjgyNjkyODI4MDg0ODExODQyODkzMTQ4NDg1MjQ5NDg2NDQ4NzE5Mjc4MDk2NzYyNzEyNzU3NzUzOTcwMjc2Njg2MDU5NTI0OTY3MTY2NzQxODM0ODU3MDQ0MjI1MDcxOTc5NjUwMDQ3MTQ5NTEwNTA0OTIyMTQ3NzY1Njc2MzY5Mzg2NjI5NzY5Nzk1MjIxMTA3MTgyNjQ1NDk3MzQ3NzI2NjI0MjU3MDk0MjkzMjI1ODI3OTg1MDI1ODU1MDk3ODUyNjUzODMyMDc2MDY3MjYzMTcxNjQzMDk1MDU5OTUwODc4MDc1MjM3MTAzMzMxMDExOTc4NTc1NDczMzE1NDE0MjE4MDg0Mjc1NDM4NjM1OTE3NzgxMTcwNTQzMDk4Mjc0ODIzODUwNDU2NDgwMTkwOTU2MTAyOTkyOTE4MjQzMTgyMzc1MjUzNTc3MDk3NTA1Mzk1NjUxODc2OTc1MTAzNzQ5NzA4ODg2OTIxODAyMDUxODkzMzk1MDcyMzg1MzkyMDUxNDQ2MzQxOTcyNjUyODcyODY5NjUxMTA4NjI1NzE0OTIxOTg4NDk5Nzg3NDg4NzM3NzEzNDU2ODYyMDkxNjcwNTgnLFxyXG5cclxuICAgIC8vIFBpICgxMDI1IGRpZ2l0cykuXHJcbiAgICBQSSA9ICczLjE0MTU5MjY1MzU4OTc5MzIzODQ2MjY0MzM4MzI3OTUwMjg4NDE5NzE2OTM5OTM3NTEwNTgyMDk3NDk0NDU5MjMwNzgxNjQwNjI4NjIwODk5ODYyODAzNDgyNTM0MjExNzA2Nzk4MjE0ODA4NjUxMzI4MjMwNjY0NzA5Mzg0NDYwOTU1MDU4MjIzMTcyNTM1OTQwODEyODQ4MTExNzQ1MDI4NDEwMjcwMTkzODUyMTEwNTU1OTY0NDYyMjk0ODk1NDkzMDM4MTk2NDQyODgxMDk3NTY2NTkzMzQ0NjEyODQ3NTY0ODIzMzc4Njc4MzE2NTI3MTIwMTkwOTE0NTY0ODU2NjkyMzQ2MDM0ODYxMDQ1NDMyNjY0ODIxMzM5MzYwNzI2MDI0OTE0MTI3MzcyNDU4NzAwNjYwNjMxNTU4ODE3NDg4MTUyMDkyMDk2MjgyOTI1NDA5MTcxNTM2NDM2Nzg5MjU5MDM2MDAxMTMzMDUzMDU0ODgyMDQ2NjUyMTM4NDE0Njk1MTk0MTUxMTYwOTQzMzA1NzI3MDM2NTc1OTU5MTk1MzA5MjE4NjExNzM4MTkzMjYxMTc5MzEwNTExODU0ODA3NDQ2MjM3OTk2Mjc0OTU2NzM1MTg4NTc1MjcyNDg5MTIyNzkzODE4MzAxMTk0OTEyOTgzMzY3MzM2MjQ0MDY1NjY0MzA4NjAyMTM5NDk0NjM5NTIyNDczNzE5MDcwMjE3OTg2MDk0MzcwMjc3MDUzOTIxNzE3NjI5MzE3Njc1MjM4NDY3NDgxODQ2NzY2OTQwNTEzMjAwMDU2ODEyNzE0NTI2MzU2MDgyNzc4NTc3MTM0Mjc1Nzc4OTYwOTE3MzYzNzE3ODcyMTQ2ODQ0MDkwMTIyNDk1MzQzMDE0NjU0OTU4NTM3MTA1MDc5MjI3OTY4OTI1ODkyMzU0MjAxOTk1NjExMjEyOTAyMTk2MDg2NDAzNDQxODE1OTgxMzYyOTc3NDc3MTMwOTk2MDUxODcwNzIxMTM0OTk5OTk5ODM3Mjk3ODA0OTk1MTA1OTczMTczMjgxNjA5NjMxODU5NTAyNDQ1OTQ1NTM0NjkwODMwMjY0MjUyMjMwODI1MzM0NDY4NTAzNTI2MTkzMTE4ODE3MTAxMDAwMzEzNzgzODc1Mjg4NjU4NzUzMzIwODM4MTQyMDYxNzE3NzY2OTE0NzMwMzU5ODI1MzQ5MDQyODc1NTQ2ODczMTE1OTU2Mjg2Mzg4MjM1Mzc4NzU5Mzc1MTk1Nzc4MTg1Nzc4MDUzMjE3MTIyNjgwNjYxMzAwMTkyNzg3NjYxMTE5NTkwOTIxNjQyMDE5ODkzODA5NTI1NzIwMTA2NTQ4NTg2MzI3ODknLFxyXG5cclxuXHJcbiAgICAvLyBUaGUgaW5pdGlhbCBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgb2YgdGhlIERlY2ltYWwgY29uc3RydWN0b3IuXHJcbiAgICBERUZBVUxUUyA9IHtcclxuXHJcbiAgICAgIC8vIFRoZXNlIHZhbHVlcyBtdXN0IGJlIGludGVnZXJzIHdpdGhpbiB0aGUgc3RhdGVkIHJhbmdlcyAoaW5jbHVzaXZlKS5cclxuICAgICAgLy8gTW9zdCBvZiB0aGVzZSB2YWx1ZXMgY2FuIGJlIGNoYW5nZWQgYXQgcnVuLXRpbWUgdXNpbmcgdGhlIGBEZWNpbWFsLmNvbmZpZ2AgbWV0aG9kLlxyXG5cclxuICAgICAgLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBvZiB0aGUgcmVzdWx0IG9mIGEgY2FsY3VsYXRpb24gb3IgYmFzZSBjb252ZXJzaW9uLlxyXG4gICAgICAvLyBFLmcuIGBEZWNpbWFsLmNvbmZpZyh7IHByZWNpc2lvbjogMjAgfSk7YFxyXG4gICAgICBwcmVjaXNpb246IDIwLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxIHRvIE1BWF9ESUdJVFNcclxuXHJcbiAgICAgIC8vIFRoZSByb3VuZGluZyBtb2RlIHVzZWQgd2hlbiByb3VuZGluZyB0byBgcHJlY2lzaW9uYC5cclxuICAgICAgLy9cclxuICAgICAgLy8gUk9VTkRfVVAgICAgICAgICAwIEF3YXkgZnJvbSB6ZXJvLlxyXG4gICAgICAvLyBST1VORF9ET1dOICAgICAgIDEgVG93YXJkcyB6ZXJvLlxyXG4gICAgICAvLyBST1VORF9DRUlMICAgICAgIDIgVG93YXJkcyArSW5maW5pdHkuXHJcbiAgICAgIC8vIFJPVU5EX0ZMT09SICAgICAgMyBUb3dhcmRzIC1JbmZpbml0eS5cclxuICAgICAgLy8gUk9VTkRfSEFMRl9VUCAgICA0IFRvd2FyZHMgbmVhcmVzdCBuZWlnaGJvdXIuIElmIGVxdWlkaXN0YW50LCB1cC5cclxuICAgICAgLy8gUk9VTkRfSEFMRl9ET1dOICA1IFRvd2FyZHMgbmVhcmVzdCBuZWlnaGJvdXIuIElmIGVxdWlkaXN0YW50LCBkb3duLlxyXG4gICAgICAvLyBST1VORF9IQUxGX0VWRU4gIDYgVG93YXJkcyBuZWFyZXN0IG5laWdoYm91ci4gSWYgZXF1aWRpc3RhbnQsIHRvd2FyZHMgZXZlbiBuZWlnaGJvdXIuXHJcbiAgICAgIC8vIFJPVU5EX0hBTEZfQ0VJTCAgNyBUb3dhcmRzIG5lYXJlc3QgbmVpZ2hib3VyLiBJZiBlcXVpZGlzdGFudCwgdG93YXJkcyArSW5maW5pdHkuXHJcbiAgICAgIC8vIFJPVU5EX0hBTEZfRkxPT1IgOCBUb3dhcmRzIG5lYXJlc3QgbmVpZ2hib3VyLiBJZiBlcXVpZGlzdGFudCwgdG93YXJkcyAtSW5maW5pdHkuXHJcbiAgICAgIC8vXHJcbiAgICAgIC8vIEUuZy5cclxuICAgICAgLy8gYERlY2ltYWwucm91bmRpbmcgPSA0O2BcclxuICAgICAgLy8gYERlY2ltYWwucm91bmRpbmcgPSBEZWNpbWFsLlJPVU5EX0hBTEZfVVA7YFxyXG4gICAgICByb3VuZGluZzogNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAwIHRvIDhcclxuXHJcbiAgICAgIC8vIFRoZSBtb2R1bG8gbW9kZSB1c2VkIHdoZW4gY2FsY3VsYXRpbmcgdGhlIG1vZHVsdXM6IGEgbW9kIG4uXHJcbiAgICAgIC8vIFRoZSBxdW90aWVudCAocSA9IGEgLyBuKSBpcyBjYWxjdWxhdGVkIGFjY29yZGluZyB0byB0aGUgY29ycmVzcG9uZGluZyByb3VuZGluZyBtb2RlLlxyXG4gICAgICAvLyBUaGUgcmVtYWluZGVyIChyKSBpcyBjYWxjdWxhdGVkIGFzOiByID0gYSAtIG4gKiBxLlxyXG4gICAgICAvL1xyXG4gICAgICAvLyBVUCAgICAgICAgIDAgVGhlIHJlbWFpbmRlciBpcyBwb3NpdGl2ZSBpZiB0aGUgZGl2aWRlbmQgaXMgbmVnYXRpdmUsIGVsc2UgaXMgbmVnYXRpdmUuXHJcbiAgICAgIC8vIERPV04gICAgICAgMSBUaGUgcmVtYWluZGVyIGhhcyB0aGUgc2FtZSBzaWduIGFzIHRoZSBkaXZpZGVuZCAoSmF2YVNjcmlwdCAlKS5cclxuICAgICAgLy8gRkxPT1IgICAgICAzIFRoZSByZW1haW5kZXIgaGFzIHRoZSBzYW1lIHNpZ24gYXMgdGhlIGRpdmlzb3IgKFB5dGhvbiAlKS5cclxuICAgICAgLy8gSEFMRl9FVkVOICA2IFRoZSBJRUVFIDc1NCByZW1haW5kZXIgZnVuY3Rpb24uXHJcbiAgICAgIC8vIEVVQ0xJRCAgICAgOSBFdWNsaWRpYW4gZGl2aXNpb24uIHEgPSBzaWduKG4pICogZmxvb3IoYSAvIGFicyhuKSkuIEFsd2F5cyBwb3NpdGl2ZS5cclxuICAgICAgLy9cclxuICAgICAgLy8gVHJ1bmNhdGVkIGRpdmlzaW9uICgxKSwgZmxvb3JlZCBkaXZpc2lvbiAoMyksIHRoZSBJRUVFIDc1NCByZW1haW5kZXIgKDYpLCBhbmQgRXVjbGlkaWFuXHJcbiAgICAgIC8vIGRpdmlzaW9uICg5KSBhcmUgY29tbW9ubHkgdXNlZCBmb3IgdGhlIG1vZHVsdXMgb3BlcmF0aW9uLiBUaGUgb3RoZXIgcm91bmRpbmcgbW9kZXMgY2FuIGFsc29cclxuICAgICAgLy8gYmUgdXNlZCwgYnV0IHRoZXkgbWF5IG5vdCBnaXZlIHVzZWZ1bCByZXN1bHRzLlxyXG4gICAgICBtb2R1bG86IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAwIHRvIDlcclxuXHJcbiAgICAgIC8vIFRoZSBleHBvbmVudCB2YWx1ZSBhdCBhbmQgYmVuZWF0aCB3aGljaCBgdG9TdHJpbmdgIHJldHVybnMgZXhwb25lbnRpYWwgbm90YXRpb24uXHJcbiAgICAgIC8vIEphdmFTY3JpcHQgbnVtYmVyczogLTdcclxuICAgICAgdG9FeHBOZWc6IC03LCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMCB0byAtRVhQX0xJTUlUXHJcblxyXG4gICAgICAvLyBUaGUgZXhwb25lbnQgdmFsdWUgYXQgYW5kIGFib3ZlIHdoaWNoIGB0b1N0cmluZ2AgcmV0dXJucyBleHBvbmVudGlhbCBub3RhdGlvbi5cclxuICAgICAgLy8gSmF2YVNjcmlwdCBudW1iZXJzOiAyMVxyXG4gICAgICB0b0V4cFBvczogIDIxLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyAwIHRvIEVYUF9MSU1JVFxyXG5cclxuICAgICAgLy8gVGhlIG1pbmltdW0gZXhwb25lbnQgdmFsdWUsIGJlbmVhdGggd2hpY2ggdW5kZXJmbG93IHRvIHplcm8gb2NjdXJzLlxyXG4gICAgICAvLyBKYXZhU2NyaXB0IG51bWJlcnM6IC0zMjQgICg1ZS0zMjQpXHJcbiAgICAgIG1pbkU6IC1FWFBfTElNSVQsICAgICAgICAgICAgICAgICAgICAgIC8vIC0xIHRvIC1FWFBfTElNSVRcclxuXHJcbiAgICAgIC8vIFRoZSBtYXhpbXVtIGV4cG9uZW50IHZhbHVlLCBhYm92ZSB3aGljaCBvdmVyZmxvdyB0byBJbmZpbml0eSBvY2N1cnMuXHJcbiAgICAgIC8vIEphdmFTY3JpcHQgbnVtYmVyczogMzA4ICAoMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDgpXHJcbiAgICAgIG1heEU6IEVYUF9MSU1JVCwgICAgICAgICAgICAgICAgICAgICAgIC8vIDEgdG8gRVhQX0xJTUlUXHJcblxyXG4gICAgICAvLyBXaGV0aGVyIHRvIHVzZSBjcnlwdG9ncmFwaGljYWxseS1zZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uLCBpZiBhdmFpbGFibGUuXHJcbiAgICAgIGNyeXB0bzogZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRydWUvZmFsc2VcclxuICAgIH0sXHJcblxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBFTkQgT0YgRURJVEFCTEUgREVGQVVMVFMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvL1xyXG5cclxuXHJcbiAgICBEZWNpbWFsLCBpbmV4YWN0LCBub0NvbmZsaWN0LCBxdWFkcmFudCxcclxuICAgIGV4dGVybmFsID0gdHJ1ZSxcclxuXHJcbiAgICBkZWNpbWFsRXJyb3IgPSAnW0RlY2ltYWxFcnJvcl0gJyxcclxuICAgIGludmFsaWRBcmd1bWVudCA9IGRlY2ltYWxFcnJvciArICdJbnZhbGlkIGFyZ3VtZW50OiAnLFxyXG4gICAgcHJlY2lzaW9uTGltaXRFeGNlZWRlZCA9IGRlY2ltYWxFcnJvciArICdQcmVjaXNpb24gbGltaXQgZXhjZWVkZWQnLFxyXG4gICAgY3J5cHRvVW5hdmFpbGFibGUgPSBkZWNpbWFsRXJyb3IgKyAnY3J5cHRvIHVuYXZhaWxhYmxlJyxcclxuICAgIHRhZyA9ICdbb2JqZWN0IERlY2ltYWxdJyxcclxuXHJcbiAgICBtYXRoZmxvb3IgPSBNYXRoLmZsb29yLFxyXG4gICAgbWF0aHBvdyA9IE1hdGgucG93LFxyXG5cclxuICAgIGlzQmluYXJ5ID0gL14wYihbMDFdKyhcXC5bMDFdKik/fFxcLlswMV0rKShwWystXT9cXGQrKT8kL2ksXHJcbiAgICBpc0hleCA9IC9eMHgoWzAtOWEtZl0rKFxcLlswLTlhLWZdKik/fFxcLlswLTlhLWZdKykocFsrLV0/XFxkKyk/JC9pLFxyXG4gICAgaXNPY3RhbCA9IC9eMG8oWzAtN10rKFxcLlswLTddKik/fFxcLlswLTddKykocFsrLV0/XFxkKyk/JC9pLFxyXG4gICAgaXNEZWNpbWFsID0gL14oXFxkKyhcXC5cXGQqKT98XFwuXFxkKykoZVsrLV0/XFxkKyk/JC9pLFxyXG5cclxuICAgIEJBU0UgPSAxZTcsXHJcbiAgICBMT0dfQkFTRSA9IDcsXHJcbiAgICBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MSxcclxuXHJcbiAgICBMTjEwX1BSRUNJU0lPTiA9IExOMTAubGVuZ3RoIC0gMSxcclxuICAgIFBJX1BSRUNJU0lPTiA9IFBJLmxlbmd0aCAtIDEsXHJcblxyXG4gICAgLy8gRGVjaW1hbC5wcm90b3R5cGUgb2JqZWN0XHJcbiAgICBQID0geyB0b1N0cmluZ1RhZzogdGFnIH07XHJcblxyXG5cclxuICAvLyBEZWNpbWFsIHByb3RvdHlwZSBtZXRob2RzXHJcblxyXG5cclxuICAvKlxyXG4gICAqICBhYnNvbHV0ZVZhbHVlICAgICAgICAgICAgIGFic1xyXG4gICAqICBjZWlsXHJcbiAgICogIGNsYW1wZWRUbyAgICAgICAgICAgICAgICAgY2xhbXBcclxuICAgKiAgY29tcGFyZWRUbyAgICAgICAgICAgICAgICBjbXBcclxuICAgKiAgY29zaW5lICAgICAgICAgICAgICAgICAgICBjb3NcclxuICAgKiAgY3ViZVJvb3QgICAgICAgICAgICAgICAgICBjYnJ0XHJcbiAgICogIGRlY2ltYWxQbGFjZXMgICAgICAgICAgICAgZHBcclxuICAgKiAgZGl2aWRlZEJ5ICAgICAgICAgICAgICAgICBkaXZcclxuICAgKiAgZGl2aWRlZFRvSW50ZWdlckJ5ICAgICAgICBkaXZUb0ludFxyXG4gICAqICBlcXVhbHMgICAgICAgICAgICAgICAgICAgIGVxXHJcbiAgICogIGZsb29yXHJcbiAgICogIGdyZWF0ZXJUaGFuICAgICAgICAgICAgICAgZ3RcclxuICAgKiAgZ3JlYXRlclRoYW5PckVxdWFsVG8gICAgICBndGVcclxuICAgKiAgaHlwZXJib2xpY0Nvc2luZSAgICAgICAgICBjb3NoXHJcbiAgICogIGh5cGVyYm9saWNTaW5lICAgICAgICAgICAgc2luaFxyXG4gICAqICBoeXBlcmJvbGljVGFuZ2VudCAgICAgICAgIHRhbmhcclxuICAgKiAgaW52ZXJzZUNvc2luZSAgICAgICAgICAgICBhY29zXHJcbiAgICogIGludmVyc2VIeXBlcmJvbGljQ29zaW5lICAgYWNvc2hcclxuICAgKiAgaW52ZXJzZUh5cGVyYm9saWNTaW5lICAgICBhc2luaFxyXG4gICAqICBpbnZlcnNlSHlwZXJib2xpY1RhbmdlbnQgIGF0YW5oXHJcbiAgICogIGludmVyc2VTaW5lICAgICAgICAgICAgICAgYXNpblxyXG4gICAqICBpbnZlcnNlVGFuZ2VudCAgICAgICAgICAgIGF0YW5cclxuICAgKiAgaXNGaW5pdGVcclxuICAgKiAgaXNJbnRlZ2VyICAgICAgICAgICAgICAgICBpc0ludFxyXG4gICAqICBpc05hTlxyXG4gICAqICBpc05lZ2F0aXZlICAgICAgICAgICAgICAgIGlzTmVnXHJcbiAgICogIGlzUG9zaXRpdmUgICAgICAgICAgICAgICAgaXNQb3NcclxuICAgKiAgaXNaZXJvXHJcbiAgICogIGxlc3NUaGFuICAgICAgICAgICAgICAgICAgbHRcclxuICAgKiAgbGVzc1RoYW5PckVxdWFsVG8gICAgICAgICBsdGVcclxuICAgKiAgbG9nYXJpdGhtICAgICAgICAgICAgICAgICBsb2dcclxuICAgKiAgW21heGltdW1dICAgICAgICAgICAgICAgICBbbWF4XVxyXG4gICAqICBbbWluaW11bV0gICAgICAgICAgICAgICAgIFttaW5dXHJcbiAgICogIG1pbnVzICAgICAgICAgICAgICAgICAgICAgc3ViXHJcbiAgICogIG1vZHVsbyAgICAgICAgICAgICAgICAgICAgbW9kXHJcbiAgICogIG5hdHVyYWxFeHBvbmVudGlhbCAgICAgICAgZXhwXHJcbiAgICogIG5hdHVyYWxMb2dhcml0aG0gICAgICAgICAgbG5cclxuICAgKiAgbmVnYXRlZCAgICAgICAgICAgICAgICAgICBuZWdcclxuICAgKiAgcGx1cyAgICAgICAgICAgICAgICAgICAgICBhZGRcclxuICAgKiAgcHJlY2lzaW9uICAgICAgICAgICAgICAgICBzZFxyXG4gICAqICByb3VuZFxyXG4gICAqICBzaW5lICAgICAgICAgICAgICAgICAgICAgIHNpblxyXG4gICAqICBzcXVhcmVSb290ICAgICAgICAgICAgICAgIHNxcnRcclxuICAgKiAgdGFuZ2VudCAgICAgICAgICAgICAgICAgICB0YW5cclxuICAgKiAgdGltZXMgICAgICAgICAgICAgICAgICAgICBtdWxcclxuICAgKiAgdG9CaW5hcnlcclxuICAgKiAgdG9EZWNpbWFsUGxhY2VzICAgICAgICAgICB0b0RQXHJcbiAgICogIHRvRXhwb25lbnRpYWxcclxuICAgKiAgdG9GaXhlZFxyXG4gICAqICB0b0ZyYWN0aW9uXHJcbiAgICogIHRvSGV4YWRlY2ltYWwgICAgICAgICAgICAgdG9IZXhcclxuICAgKiAgdG9OZWFyZXN0XHJcbiAgICogIHRvTnVtYmVyXHJcbiAgICogIHRvT2N0YWxcclxuICAgKiAgdG9Qb3dlciAgICAgICAgICAgICAgICAgICBwb3dcclxuICAgKiAgdG9QcmVjaXNpb25cclxuICAgKiAgdG9TaWduaWZpY2FudERpZ2l0cyAgICAgICB0b1NEXHJcbiAgICogIHRvU3RyaW5nXHJcbiAgICogIHRydW5jYXRlZCAgICAgICAgICAgICAgICAgdHJ1bmNcclxuICAgKiAgdmFsdWVPZiAgICAgICAgICAgICAgICAgICB0b0pTT05cclxuICAgKi9cclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIGFic29sdXRlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbC5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAuYWJzb2x1dGVWYWx1ZSA9IFAuYWJzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIHggPSBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzKTtcclxuICAgIGlmICh4LnMgPCAwKSB4LnMgPSAxO1xyXG4gICAgcmV0dXJuIGZpbmFsaXNlKHgpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwgcm91bmRlZCB0byBhIHdob2xlIG51bWJlciBpbiB0aGVcclxuICAgKiBkaXJlY3Rpb24gb2YgcG9zaXRpdmUgSW5maW5pdHkuXHJcbiAgICpcclxuICAgKi9cclxuICBQLmNlaWwgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gZmluYWxpc2UobmV3IHRoaXMuY29uc3RydWN0b3IodGhpcyksIHRoaXMuZSArIDEsIDIpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwgY2xhbXBlZCB0byB0aGUgcmFuZ2VcclxuICAgKiBkZWxpbmVhdGVkIGJ5IGBtaW5gIGFuZCBgbWF4YC5cclxuICAgKlxyXG4gICAqIG1pbiB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqIG1heCB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqXHJcbiAgICovXHJcbiAgUC5jbGFtcGVkVG8gPSBQLmNsYW1wID0gZnVuY3Rpb24gKG1pbiwgbWF4KSB7XHJcbiAgICB2YXIgayxcclxuICAgICAgeCA9IHRoaXMsXHJcbiAgICAgIEN0b3IgPSB4LmNvbnN0cnVjdG9yO1xyXG4gICAgbWluID0gbmV3IEN0b3IobWluKTtcclxuICAgIG1heCA9IG5ldyBDdG9yKG1heCk7XHJcbiAgICBpZiAoIW1pbi5zIHx8ICFtYXgucykgcmV0dXJuIG5ldyBDdG9yKE5hTik7XHJcbiAgICBpZiAobWluLmd0KG1heCkpIHRocm93IEVycm9yKGludmFsaWRBcmd1bWVudCArIG1heCk7XHJcbiAgICBrID0geC5jbXAobWluKTtcclxuICAgIHJldHVybiBrIDwgMCA/IG1pbiA6IHguY21wKG1heCkgPiAwID8gbWF4IDogbmV3IEN0b3IoeCk7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuXHJcbiAgICogICAxICAgIGlmIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwgaXMgZ3JlYXRlciB0aGFuIHRoZSB2YWx1ZSBvZiBgeWAsXHJcbiAgICogIC0xICAgIGlmIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwgaXMgbGVzcyB0aGFuIHRoZSB2YWx1ZSBvZiBgeWAsXHJcbiAgICogICAwICAgIGlmIHRoZXkgaGF2ZSB0aGUgc2FtZSB2YWx1ZSxcclxuICAgKiAgIE5hTiAgaWYgdGhlIHZhbHVlIG9mIGVpdGhlciBEZWNpbWFsIGlzIE5hTi5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAuY29tcGFyZWRUbyA9IFAuY21wID0gZnVuY3Rpb24gKHkpIHtcclxuICAgIHZhciBpLCBqLCB4ZEwsIHlkTCxcclxuICAgICAgeCA9IHRoaXMsXHJcbiAgICAgIHhkID0geC5kLFxyXG4gICAgICB5ZCA9ICh5ID0gbmV3IHguY29uc3RydWN0b3IoeSkpLmQsXHJcbiAgICAgIHhzID0geC5zLFxyXG4gICAgICB5cyA9IHkucztcclxuXHJcbiAgICAvLyBFaXRoZXIgTmFOIG9yIMKxSW5maW5pdHk/XHJcbiAgICBpZiAoIXhkIHx8ICF5ZCkge1xyXG4gICAgICByZXR1cm4gIXhzIHx8ICF5cyA/IE5hTiA6IHhzICE9PSB5cyA/IHhzIDogeGQgPT09IHlkID8gMCA6ICF4ZCBeIHhzIDwgMCA/IDEgOiAtMTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBFaXRoZXIgemVybz9cclxuICAgIGlmICgheGRbMF0gfHwgIXlkWzBdKSByZXR1cm4geGRbMF0gPyB4cyA6IHlkWzBdID8gLXlzIDogMDtcclxuXHJcbiAgICAvLyBTaWducyBkaWZmZXI/XHJcbiAgICBpZiAoeHMgIT09IHlzKSByZXR1cm4geHM7XHJcblxyXG4gICAgLy8gQ29tcGFyZSBleHBvbmVudHMuXHJcbiAgICBpZiAoeC5lICE9PSB5LmUpIHJldHVybiB4LmUgPiB5LmUgXiB4cyA8IDAgPyAxIDogLTE7XHJcblxyXG4gICAgeGRMID0geGQubGVuZ3RoO1xyXG4gICAgeWRMID0geWQubGVuZ3RoO1xyXG5cclxuICAgIC8vIENvbXBhcmUgZGlnaXQgYnkgZGlnaXQuXHJcbiAgICBmb3IgKGkgPSAwLCBqID0geGRMIDwgeWRMID8geGRMIDogeWRMOyBpIDwgajsgKytpKSB7XHJcbiAgICAgIGlmICh4ZFtpXSAhPT0geWRbaV0pIHJldHVybiB4ZFtpXSA+IHlkW2ldIF4geHMgPCAwID8gMSA6IC0xO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENvbXBhcmUgbGVuZ3Rocy5cclxuICAgIHJldHVybiB4ZEwgPT09IHlkTCA/IDAgOiB4ZEwgPiB5ZEwgXiB4cyA8IDAgPyAxIDogLTE7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIGNvc2luZSBvZiB0aGUgdmFsdWUgaW4gcmFkaWFucyBvZiB0aGlzIERlY2ltYWwuXHJcbiAgICpcclxuICAgKiBEb21haW46IFstSW5maW5pdHksIEluZmluaXR5XVxyXG4gICAqIFJhbmdlOiBbLTEsIDFdXHJcbiAgICpcclxuICAgKiBjb3MoMCkgICAgICAgICA9IDFcclxuICAgKiBjb3MoLTApICAgICAgICA9IDFcclxuICAgKiBjb3MoSW5maW5pdHkpICA9IE5hTlxyXG4gICAqIGNvcygtSW5maW5pdHkpID0gTmFOXHJcbiAgICogY29zKE5hTikgICAgICAgPSBOYU5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAuY29zaW5lID0gUC5jb3MgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgcHIsIHJtLFxyXG4gICAgICB4ID0gdGhpcyxcclxuICAgICAgQ3RvciA9IHguY29uc3RydWN0b3I7XHJcblxyXG4gICAgaWYgKCF4LmQpIHJldHVybiBuZXcgQ3RvcihOYU4pO1xyXG5cclxuICAgIC8vIGNvcygwKSA9IGNvcygtMCkgPSAxXHJcbiAgICBpZiAoIXguZFswXSkgcmV0dXJuIG5ldyBDdG9yKDEpO1xyXG5cclxuICAgIHByID0gQ3Rvci5wcmVjaXNpb247XHJcbiAgICBybSA9IEN0b3Iucm91bmRpbmc7XHJcbiAgICBDdG9yLnByZWNpc2lvbiA9IHByICsgTWF0aC5tYXgoeC5lLCB4LnNkKCkpICsgTE9HX0JBU0U7XHJcbiAgICBDdG9yLnJvdW5kaW5nID0gMTtcclxuXHJcbiAgICB4ID0gY29zaW5lKEN0b3IsIHRvTGVzc1RoYW5IYWxmUGkoQ3RvciwgeCkpO1xyXG5cclxuICAgIEN0b3IucHJlY2lzaW9uID0gcHI7XHJcbiAgICBDdG9yLnJvdW5kaW5nID0gcm07XHJcblxyXG4gICAgcmV0dXJuIGZpbmFsaXNlKHF1YWRyYW50ID09IDIgfHwgcXVhZHJhbnQgPT0gMyA/IHgubmVnKCkgOiB4LCBwciwgcm0sIHRydWUpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIGN1YmUgcm9vdCBvZiB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsLCByb3VuZGVkIHRvXHJcbiAgICogYHByZWNpc2lvbmAgc2lnbmlmaWNhbnQgZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqICBjYnJ0KDApICA9ICAwXHJcbiAgICogIGNicnQoLTApID0gLTBcclxuICAgKiAgY2JydCgxKSAgPSAgMVxyXG4gICAqICBjYnJ0KC0xKSA9IC0xXHJcbiAgICogIGNicnQoTikgID0gIE5cclxuICAgKiAgY2JydCgtSSkgPSAtSVxyXG4gICAqICBjYnJ0KEkpICA9ICBJXHJcbiAgICpcclxuICAgKiBNYXRoLmNicnQoeCkgPSAoeCA8IDAgPyAtTWF0aC5wb3coLXgsIDEvMykgOiBNYXRoLnBvdyh4LCAxLzMpKVxyXG4gICAqXHJcbiAgICovXHJcbiAgUC5jdWJlUm9vdCA9IFAuY2JydCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBlLCBtLCBuLCByLCByZXAsIHMsIHNkLCB0LCB0MywgdDNwbHVzeCxcclxuICAgICAgeCA9IHRoaXMsXHJcbiAgICAgIEN0b3IgPSB4LmNvbnN0cnVjdG9yO1xyXG5cclxuICAgIGlmICgheC5pc0Zpbml0ZSgpIHx8IHguaXNaZXJvKCkpIHJldHVybiBuZXcgQ3Rvcih4KTtcclxuICAgIGV4dGVybmFsID0gZmFsc2U7XHJcblxyXG4gICAgLy8gSW5pdGlhbCBlc3RpbWF0ZS5cclxuICAgIHMgPSB4LnMgKiBtYXRocG93KHgucyAqIHgsIDEgLyAzKTtcclxuXHJcbiAgICAgLy8gTWF0aC5jYnJ0IHVuZGVyZmxvdy9vdmVyZmxvdz9cclxuICAgICAvLyBQYXNzIHggdG8gTWF0aC5wb3cgYXMgaW50ZWdlciwgdGhlbiBhZGp1c3QgdGhlIGV4cG9uZW50IG9mIHRoZSByZXN1bHQuXHJcbiAgICBpZiAoIXMgfHwgTWF0aC5hYnMocykgPT0gMSAvIDApIHtcclxuICAgICAgbiA9IGRpZ2l0c1RvU3RyaW5nKHguZCk7XHJcbiAgICAgIGUgPSB4LmU7XHJcblxyXG4gICAgICAvLyBBZGp1c3QgbiBleHBvbmVudCBzbyBpdCBpcyBhIG11bHRpcGxlIG9mIDMgYXdheSBmcm9tIHggZXhwb25lbnQuXHJcbiAgICAgIGlmIChzID0gKGUgLSBuLmxlbmd0aCArIDEpICUgMykgbiArPSAocyA9PSAxIHx8IHMgPT0gLTIgPyAnMCcgOiAnMDAnKTtcclxuICAgICAgcyA9IG1hdGhwb3cobiwgMSAvIDMpO1xyXG5cclxuICAgICAgLy8gUmFyZWx5LCBlIG1heSBiZSBvbmUgbGVzcyB0aGFuIHRoZSByZXN1bHQgZXhwb25lbnQgdmFsdWUuXHJcbiAgICAgIGUgPSBtYXRoZmxvb3IoKGUgKyAxKSAvIDMpIC0gKGUgJSAzID09IChlIDwgMCA/IC0xIDogMikpO1xyXG5cclxuICAgICAgaWYgKHMgPT0gMSAvIDApIHtcclxuICAgICAgICBuID0gJzVlJyArIGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbiA9IHMudG9FeHBvbmVudGlhbCgpO1xyXG4gICAgICAgIG4gPSBuLnNsaWNlKDAsIG4uaW5kZXhPZignZScpICsgMSkgKyBlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByID0gbmV3IEN0b3Iobik7XHJcbiAgICAgIHIucyA9IHgucztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHIgPSBuZXcgQ3RvcihzLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHNkID0gKGUgPSBDdG9yLnByZWNpc2lvbikgKyAzO1xyXG5cclxuICAgIC8vIEhhbGxleSdzIG1ldGhvZC5cclxuICAgIC8vIFRPRE8/IENvbXBhcmUgTmV3dG9uJ3MgbWV0aG9kLlxyXG4gICAgZm9yICg7Oykge1xyXG4gICAgICB0ID0gcjtcclxuICAgICAgdDMgPSB0LnRpbWVzKHQpLnRpbWVzKHQpO1xyXG4gICAgICB0M3BsdXN4ID0gdDMucGx1cyh4KTtcclxuICAgICAgciA9IGRpdmlkZSh0M3BsdXN4LnBsdXMoeCkudGltZXModCksIHQzcGx1c3gucGx1cyh0MyksIHNkICsgMiwgMSk7XHJcblxyXG4gICAgICAvLyBUT0RPPyBSZXBsYWNlIHdpdGggZm9yLWxvb3AgYW5kIGNoZWNrUm91bmRpbmdEaWdpdHMuXHJcbiAgICAgIGlmIChkaWdpdHNUb1N0cmluZyh0LmQpLnNsaWNlKDAsIHNkKSA9PT0gKG4gPSBkaWdpdHNUb1N0cmluZyhyLmQpKS5zbGljZSgwLCBzZCkpIHtcclxuICAgICAgICBuID0gbi5zbGljZShzZCAtIDMsIHNkICsgMSk7XHJcblxyXG4gICAgICAgIC8vIFRoZSA0dGggcm91bmRpbmcgZGlnaXQgbWF5IGJlIGluIGVycm9yIGJ5IC0xIHNvIGlmIHRoZSA0IHJvdW5kaW5nIGRpZ2l0cyBhcmUgOTk5OSBvciA0OTk5XHJcbiAgICAgICAgLy8gLCBpLmUuIGFwcHJvYWNoaW5nIGEgcm91bmRpbmcgYm91bmRhcnksIGNvbnRpbnVlIHRoZSBpdGVyYXRpb24uXHJcbiAgICAgICAgaWYgKG4gPT0gJzk5OTknIHx8ICFyZXAgJiYgbiA9PSAnNDk5OScpIHtcclxuXHJcbiAgICAgICAgICAvLyBPbiB0aGUgZmlyc3QgaXRlcmF0aW9uIG9ubHksIGNoZWNrIHRvIHNlZSBpZiByb3VuZGluZyB1cCBnaXZlcyB0aGUgZXhhY3QgcmVzdWx0IGFzIHRoZVxyXG4gICAgICAgICAgLy8gbmluZXMgbWF5IGluZmluaXRlbHkgcmVwZWF0LlxyXG4gICAgICAgICAgaWYgKCFyZXApIHtcclxuICAgICAgICAgICAgZmluYWxpc2UodCwgZSArIDEsIDApO1xyXG5cclxuICAgICAgICAgICAgaWYgKHQudGltZXModCkudGltZXModCkuZXEoeCkpIHtcclxuICAgICAgICAgICAgICByID0gdDtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHNkICs9IDQ7XHJcbiAgICAgICAgICByZXAgPSAxO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgICAgLy8gSWYgdGhlIHJvdW5kaW5nIGRpZ2l0cyBhcmUgbnVsbCwgMHswLDR9IG9yIDUwezAsM30sIGNoZWNrIGZvciBhbiBleGFjdCByZXN1bHQuXHJcbiAgICAgICAgICAvLyBJZiBub3QsIHRoZW4gdGhlcmUgYXJlIGZ1cnRoZXIgZGlnaXRzIGFuZCBtIHdpbGwgYmUgdHJ1dGh5LlxyXG4gICAgICAgICAgaWYgKCErbiB8fCAhK24uc2xpY2UoMSkgJiYgbi5jaGFyQXQoMCkgPT0gJzUnKSB7XHJcblxyXG4gICAgICAgICAgICAvLyBUcnVuY2F0ZSB0byB0aGUgZmlyc3Qgcm91bmRpbmcgZGlnaXQuXHJcbiAgICAgICAgICAgIGZpbmFsaXNlKHIsIGUgKyAxLCAxKTtcclxuICAgICAgICAgICAgbSA9ICFyLnRpbWVzKHIpLnRpbWVzKHIpLmVxKHgpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGV4dGVybmFsID0gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4gZmluYWxpc2UociwgZSwgQ3Rvci5yb3VuZGluZywgbSk7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgb2YgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbC5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAuZGVjaW1hbFBsYWNlcyA9IFAuZHAgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgdyxcclxuICAgICAgZCA9IHRoaXMuZCxcclxuICAgICAgbiA9IE5hTjtcclxuXHJcbiAgICBpZiAoZCkge1xyXG4gICAgICB3ID0gZC5sZW5ndGggLSAxO1xyXG4gICAgICBuID0gKHcgLSBtYXRoZmxvb3IodGhpcy5lIC8gTE9HX0JBU0UpKSAqIExPR19CQVNFO1xyXG5cclxuICAgICAgLy8gU3VidHJhY3QgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvcyBvZiB0aGUgbGFzdCB3b3JkLlxyXG4gICAgICB3ID0gZFt3XTtcclxuICAgICAgaWYgKHcpIGZvciAoOyB3ICUgMTAgPT0gMDsgdyAvPSAxMCkgbi0tO1xyXG4gICAgICBpZiAobiA8IDApIG4gPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqICBuIC8gMCA9IElcclxuICAgKiAgbiAvIE4gPSBOXHJcbiAgICogIG4gLyBJID0gMFxyXG4gICAqICAwIC8gbiA9IDBcclxuICAgKiAgMCAvIDAgPSBOXHJcbiAgICogIDAgLyBOID0gTlxyXG4gICAqICAwIC8gSSA9IDBcclxuICAgKiAgTiAvIG4gPSBOXHJcbiAgICogIE4gLyAwID0gTlxyXG4gICAqICBOIC8gTiA9IE5cclxuICAgKiAgTiAvIEkgPSBOXHJcbiAgICogIEkgLyBuID0gSVxyXG4gICAqICBJIC8gMCA9IElcclxuICAgKiAgSSAvIE4gPSBOXHJcbiAgICogIEkgLyBJID0gTlxyXG4gICAqXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbCBkaXZpZGVkIGJ5IGB5YCwgcm91bmRlZCB0b1xyXG4gICAqIGBwcmVjaXNpb25gIHNpZ25pZmljYW50IGRpZ2l0cyB1c2luZyByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKi9cclxuICBQLmRpdmlkZWRCeSA9IFAuZGl2ID0gZnVuY3Rpb24gKHkpIHtcclxuICAgIHJldHVybiBkaXZpZGUodGhpcywgbmV3IHRoaXMuY29uc3RydWN0b3IoeSkpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBpbnRlZ2VyIHBhcnQgb2YgZGl2aWRpbmcgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbFxyXG4gICAqIGJ5IHRoZSB2YWx1ZSBvZiBgeWAsIHJvdW5kZWQgdG8gYHByZWNpc2lvbmAgc2lnbmlmaWNhbnQgZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAuZGl2aWRlZFRvSW50ZWdlckJ5ID0gUC5kaXZUb0ludCA9IGZ1bmN0aW9uICh5KSB7XHJcbiAgICB2YXIgeCA9IHRoaXMsXHJcbiAgICAgIEN0b3IgPSB4LmNvbnN0cnVjdG9yO1xyXG4gICAgcmV0dXJuIGZpbmFsaXNlKGRpdmlkZSh4LCBuZXcgQ3Rvcih5KSwgMCwgMSwgMSksIEN0b3IucHJlY2lzaW9uLCBDdG9yLnJvdW5kaW5nKTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsIGlzIGVxdWFsIHRvIHRoZSB2YWx1ZSBvZiBgeWAsIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuXHJcbiAgICpcclxuICAgKi9cclxuICBQLmVxdWFscyA9IFAuZXEgPSBmdW5jdGlvbiAoeSkge1xyXG4gICAgcmV0dXJuIHRoaXMuY21wKHkpID09PSAwO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwgcm91bmRlZCB0byBhIHdob2xlIG51bWJlciBpbiB0aGVcclxuICAgKiBkaXJlY3Rpb24gb2YgbmVnYXRpdmUgSW5maW5pdHkuXHJcbiAgICpcclxuICAgKi9cclxuICBQLmZsb29yID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIGZpbmFsaXNlKG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMpLCB0aGlzLmUgKyAxLCAzKTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsIGlzIGdyZWF0ZXIgdGhhbiB0aGUgdmFsdWUgb2YgYHlgLCBvdGhlcndpc2UgcmV0dXJuXHJcbiAgICogZmFsc2UuXHJcbiAgICpcclxuICAgKi9cclxuICBQLmdyZWF0ZXJUaGFuID0gUC5ndCA9IGZ1bmN0aW9uICh5KSB7XHJcbiAgICByZXR1cm4gdGhpcy5jbXAoeSkgPiAwO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiB0cnVlIGlmIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSB2YWx1ZSBvZiBgeWAsXHJcbiAgICogb3RoZXJ3aXNlIHJldHVybiBmYWxzZS5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAuZ3JlYXRlclRoYW5PckVxdWFsVG8gPSBQLmd0ZSA9IGZ1bmN0aW9uICh5KSB7XHJcbiAgICB2YXIgayA9IHRoaXMuY21wKHkpO1xyXG4gICAgcmV0dXJuIGsgPT0gMSB8fCBrID09PSAwO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBoeXBlcmJvbGljIGNvc2luZSBvZiB0aGUgdmFsdWUgaW4gcmFkaWFucyBvZiB0aGlzXHJcbiAgICogRGVjaW1hbC5cclxuICAgKlxyXG4gICAqIERvbWFpbjogWy1JbmZpbml0eSwgSW5maW5pdHldXHJcbiAgICogUmFuZ2U6IFsxLCBJbmZpbml0eV1cclxuICAgKlxyXG4gICAqIGNvc2goeCkgPSAxICsgeF4yLzIhICsgeF40LzQhICsgeF42LzYhICsgLi4uXHJcbiAgICpcclxuICAgKiBjb3NoKDApICAgICAgICAgPSAxXHJcbiAgICogY29zaCgtMCkgICAgICAgID0gMVxyXG4gICAqIGNvc2goSW5maW5pdHkpICA9IEluZmluaXR5XHJcbiAgICogY29zaCgtSW5maW5pdHkpID0gSW5maW5pdHlcclxuICAgKiBjb3NoKE5hTikgICAgICAgPSBOYU5cclxuICAgKlxyXG4gICAqICB4ICAgICAgICB0aW1lIHRha2VuIChtcykgICByZXN1bHRcclxuICAgKiAxMDAwICAgICAgOSAgICAgICAgICAgICAgICAgOS44NTAzNTU1NzAwODUyMzQ5Njk0ZSs0MzNcclxuICAgKiAxMDAwMCAgICAgMjUgICAgICAgICAgICAgICAgNC40MDM0MDkxMTI4MzE0NjA3OTM2ZSs0MzQyXHJcbiAgICogMTAwMDAwICAgIDE3MSAgICAgICAgICAgICAgIDEuNDAzMzMxNjgwMjEzMDYxNTg5N2UrNDM0MjlcclxuICAgKiAxMDAwMDAwICAgMzgxNyAgICAgICAgICAgICAgMS41MTY2MDc2OTg0MDEwNDM3NzI1ZSs0MzQyOTRcclxuICAgKiAxMDAwMDAwMCAgYWJhbmRvbmVkIGFmdGVyIDIgbWludXRlIHdhaXRcclxuICAgKlxyXG4gICAqIFRPRE8/IENvbXBhcmUgcGVyZm9ybWFuY2Ugb2YgY29zaCh4KSA9IDAuNSAqIChleHAoeCkgKyBleHAoLXgpKVxyXG4gICAqXHJcbiAgICovXHJcbiAgUC5oeXBlcmJvbGljQ29zaW5lID0gUC5jb3NoID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIGssIG4sIHByLCBybSwgbGVuLFxyXG4gICAgICB4ID0gdGhpcyxcclxuICAgICAgQ3RvciA9IHguY29uc3RydWN0b3IsXHJcbiAgICAgIG9uZSA9IG5ldyBDdG9yKDEpO1xyXG5cclxuICAgIGlmICgheC5pc0Zpbml0ZSgpKSByZXR1cm4gbmV3IEN0b3IoeC5zID8gMSAvIDAgOiBOYU4pO1xyXG4gICAgaWYgKHguaXNaZXJvKCkpIHJldHVybiBvbmU7XHJcblxyXG4gICAgcHIgPSBDdG9yLnByZWNpc2lvbjtcclxuICAgIHJtID0gQ3Rvci5yb3VuZGluZztcclxuICAgIEN0b3IucHJlY2lzaW9uID0gcHIgKyBNYXRoLm1heCh4LmUsIHguc2QoKSkgKyA0O1xyXG4gICAgQ3Rvci5yb3VuZGluZyA9IDE7XHJcbiAgICBsZW4gPSB4LmQubGVuZ3RoO1xyXG5cclxuICAgIC8vIEFyZ3VtZW50IHJlZHVjdGlvbjogY29zKDR4KSA9IDEgLSA4Y29zXjIoeCkgKyA4Y29zXjQoeCkgKyAxXHJcbiAgICAvLyBpLmUuIGNvcyh4KSA9IDEgLSBjb3NeMih4LzQpKDggLSA4Y29zXjIoeC80KSlcclxuXHJcbiAgICAvLyBFc3RpbWF0ZSB0aGUgb3B0aW11bSBudW1iZXIgb2YgdGltZXMgdG8gdXNlIHRoZSBhcmd1bWVudCByZWR1Y3Rpb24uXHJcbiAgICAvLyBUT0RPPyBFc3RpbWF0aW9uIHJldXNlZCBmcm9tIGNvc2luZSgpIGFuZCBtYXkgbm90IGJlIG9wdGltYWwgaGVyZS5cclxuICAgIGlmIChsZW4gPCAzMikge1xyXG4gICAgICBrID0gTWF0aC5jZWlsKGxlbiAvIDMpO1xyXG4gICAgICBuID0gKDEgLyB0aW55UG93KDQsIGspKS50b1N0cmluZygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgayA9IDE2O1xyXG4gICAgICBuID0gJzIuMzI4MzA2NDM2NTM4Njk2Mjg5MDYyNWUtMTAnO1xyXG4gICAgfVxyXG5cclxuICAgIHggPSB0YXlsb3JTZXJpZXMoQ3RvciwgMSwgeC50aW1lcyhuKSwgbmV3IEN0b3IoMSksIHRydWUpO1xyXG5cclxuICAgIC8vIFJldmVyc2UgYXJndW1lbnQgcmVkdWN0aW9uXHJcbiAgICB2YXIgY29zaDJfeCxcclxuICAgICAgaSA9IGssXHJcbiAgICAgIGQ4ID0gbmV3IEN0b3IoOCk7XHJcbiAgICBmb3IgKDsgaS0tOykge1xyXG4gICAgICBjb3NoMl94ID0geC50aW1lcyh4KTtcclxuICAgICAgeCA9IG9uZS5taW51cyhjb3NoMl94LnRpbWVzKGQ4Lm1pbnVzKGNvc2gyX3gudGltZXMoZDgpKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmaW5hbGlzZSh4LCBDdG9yLnByZWNpc2lvbiA9IHByLCBDdG9yLnJvdW5kaW5nID0gcm0sIHRydWUpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBoeXBlcmJvbGljIHNpbmUgb2YgdGhlIHZhbHVlIGluIHJhZGlhbnMgb2YgdGhpc1xyXG4gICAqIERlY2ltYWwuXHJcbiAgICpcclxuICAgKiBEb21haW46IFstSW5maW5pdHksIEluZmluaXR5XVxyXG4gICAqIFJhbmdlOiBbLUluZmluaXR5LCBJbmZpbml0eV1cclxuICAgKlxyXG4gICAqIHNpbmgoeCkgPSB4ICsgeF4zLzMhICsgeF41LzUhICsgeF43LzchICsgLi4uXHJcbiAgICpcclxuICAgKiBzaW5oKDApICAgICAgICAgPSAwXHJcbiAgICogc2luaCgtMCkgICAgICAgID0gLTBcclxuICAgKiBzaW5oKEluZmluaXR5KSAgPSBJbmZpbml0eVxyXG4gICAqIHNpbmgoLUluZmluaXR5KSA9IC1JbmZpbml0eVxyXG4gICAqIHNpbmgoTmFOKSAgICAgICA9IE5hTlxyXG4gICAqXHJcbiAgICogeCAgICAgICAgdGltZSB0YWtlbiAobXMpXHJcbiAgICogMTAgICAgICAgMiBtc1xyXG4gICAqIDEwMCAgICAgIDUgbXNcclxuICAgKiAxMDAwICAgICAxNCBtc1xyXG4gICAqIDEwMDAwICAgIDgyIG1zXHJcbiAgICogMTAwMDAwICAgODg2IG1zICAgICAgICAgICAgMS40MDMzMzE2ODAyMTMwNjE1ODk3ZSs0MzQyOVxyXG4gICAqIDIwMDAwMCAgIDI2MTMgbXNcclxuICAgKiAzMDAwMDAgICA1NDA3IG1zXHJcbiAgICogNDAwMDAwICAgODgyNCBtc1xyXG4gICAqIDUwMDAwMCAgIDEzMDI2IG1zICAgICAgICAgIDguNzA4MDY0MzYxMjcxODA4NDEyOWUrMjE3MTQ2XHJcbiAgICogMTAwMDAwMCAgNDg1NDMgbXNcclxuICAgKlxyXG4gICAqIFRPRE8/IENvbXBhcmUgcGVyZm9ybWFuY2Ugb2Ygc2luaCh4KSA9IDAuNSAqIChleHAoeCkgLSBleHAoLXgpKVxyXG4gICAqXHJcbiAgICovXHJcbiAgUC5oeXBlcmJvbGljU2luZSA9IFAuc2luaCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBrLCBwciwgcm0sIGxlbixcclxuICAgICAgeCA9IHRoaXMsXHJcbiAgICAgIEN0b3IgPSB4LmNvbnN0cnVjdG9yO1xyXG5cclxuICAgIGlmICgheC5pc0Zpbml0ZSgpIHx8IHguaXNaZXJvKCkpIHJldHVybiBuZXcgQ3Rvcih4KTtcclxuXHJcbiAgICBwciA9IEN0b3IucHJlY2lzaW9uO1xyXG4gICAgcm0gPSBDdG9yLnJvdW5kaW5nO1xyXG4gICAgQ3Rvci5wcmVjaXNpb24gPSBwciArIE1hdGgubWF4KHguZSwgeC5zZCgpKSArIDQ7XHJcbiAgICBDdG9yLnJvdW5kaW5nID0gMTtcclxuICAgIGxlbiA9IHguZC5sZW5ndGg7XHJcblxyXG4gICAgaWYgKGxlbiA8IDMpIHtcclxuICAgICAgeCA9IHRheWxvclNlcmllcyhDdG9yLCAyLCB4LCB4LCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAvLyBBbHRlcm5hdGl2ZSBhcmd1bWVudCByZWR1Y3Rpb246IHNpbmgoM3gpID0gc2luaCh4KSgzICsgNHNpbmheMih4KSlcclxuICAgICAgLy8gaS5lLiBzaW5oKHgpID0gc2luaCh4LzMpKDMgKyA0c2luaF4yKHgvMykpXHJcbiAgICAgIC8vIDMgbXVsdGlwbGljYXRpb25zIGFuZCAxIGFkZGl0aW9uXHJcblxyXG4gICAgICAvLyBBcmd1bWVudCByZWR1Y3Rpb246IHNpbmgoNXgpID0gc2luaCh4KSg1ICsgc2luaF4yKHgpKDIwICsgMTZzaW5oXjIoeCkpKVxyXG4gICAgICAvLyBpLmUuIHNpbmgoeCkgPSBzaW5oKHgvNSkoNSArIHNpbmheMih4LzUpKDIwICsgMTZzaW5oXjIoeC81KSkpXHJcbiAgICAgIC8vIDQgbXVsdGlwbGljYXRpb25zIGFuZCAyIGFkZGl0aW9uc1xyXG5cclxuICAgICAgLy8gRXN0aW1hdGUgdGhlIG9wdGltdW0gbnVtYmVyIG9mIHRpbWVzIHRvIHVzZSB0aGUgYXJndW1lbnQgcmVkdWN0aW9uLlxyXG4gICAgICBrID0gMS40ICogTWF0aC5zcXJ0KGxlbik7XHJcbiAgICAgIGsgPSBrID4gMTYgPyAxNiA6IGsgfCAwO1xyXG5cclxuICAgICAgeCA9IHgudGltZXMoMSAvIHRpbnlQb3coNSwgaykpO1xyXG4gICAgICB4ID0gdGF5bG9yU2VyaWVzKEN0b3IsIDIsIHgsIHgsIHRydWUpO1xyXG5cclxuICAgICAgLy8gUmV2ZXJzZSBhcmd1bWVudCByZWR1Y3Rpb25cclxuICAgICAgdmFyIHNpbmgyX3gsXHJcbiAgICAgICAgZDUgPSBuZXcgQ3Rvcig1KSxcclxuICAgICAgICBkMTYgPSBuZXcgQ3RvcigxNiksXHJcbiAgICAgICAgZDIwID0gbmV3IEN0b3IoMjApO1xyXG4gICAgICBmb3IgKDsgay0tOykge1xyXG4gICAgICAgIHNpbmgyX3ggPSB4LnRpbWVzKHgpO1xyXG4gICAgICAgIHggPSB4LnRpbWVzKGQ1LnBsdXMoc2luaDJfeC50aW1lcyhkMTYudGltZXMoc2luaDJfeCkucGx1cyhkMjApKSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQ3Rvci5wcmVjaXNpb24gPSBwcjtcclxuICAgIEN0b3Iucm91bmRpbmcgPSBybTtcclxuXHJcbiAgICByZXR1cm4gZmluYWxpc2UoeCwgcHIsIHJtLCB0cnVlKTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgaHlwZXJib2xpYyB0YW5nZW50IG9mIHRoZSB2YWx1ZSBpbiByYWRpYW5zIG9mIHRoaXNcclxuICAgKiBEZWNpbWFsLlxyXG4gICAqXHJcbiAgICogRG9tYWluOiBbLUluZmluaXR5LCBJbmZpbml0eV1cclxuICAgKiBSYW5nZTogWy0xLCAxXVxyXG4gICAqXHJcbiAgICogdGFuaCh4KSA9IHNpbmgoeCkgLyBjb3NoKHgpXHJcbiAgICpcclxuICAgKiB0YW5oKDApICAgICAgICAgPSAwXHJcbiAgICogdGFuaCgtMCkgICAgICAgID0gLTBcclxuICAgKiB0YW5oKEluZmluaXR5KSAgPSAxXHJcbiAgICogdGFuaCgtSW5maW5pdHkpID0gLTFcclxuICAgKiB0YW5oKE5hTikgICAgICAgPSBOYU5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAuaHlwZXJib2xpY1RhbmdlbnQgPSBQLnRhbmggPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgcHIsIHJtLFxyXG4gICAgICB4ID0gdGhpcyxcclxuICAgICAgQ3RvciA9IHguY29uc3RydWN0b3I7XHJcblxyXG4gICAgaWYgKCF4LmlzRmluaXRlKCkpIHJldHVybiBuZXcgQ3Rvcih4LnMpO1xyXG4gICAgaWYgKHguaXNaZXJvKCkpIHJldHVybiBuZXcgQ3Rvcih4KTtcclxuXHJcbiAgICBwciA9IEN0b3IucHJlY2lzaW9uO1xyXG4gICAgcm0gPSBDdG9yLnJvdW5kaW5nO1xyXG4gICAgQ3Rvci5wcmVjaXNpb24gPSBwciArIDc7XHJcbiAgICBDdG9yLnJvdW5kaW5nID0gMTtcclxuXHJcbiAgICByZXR1cm4gZGl2aWRlKHguc2luaCgpLCB4LmNvc2goKSwgQ3Rvci5wcmVjaXNpb24gPSBwciwgQ3Rvci5yb3VuZGluZyA9IHJtKTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgYXJjY29zaW5lIChpbnZlcnNlIGNvc2luZSkgaW4gcmFkaWFucyBvZiB0aGUgdmFsdWUgb2ZcclxuICAgKiB0aGlzIERlY2ltYWwuXHJcbiAgICpcclxuICAgKiBEb21haW46IFstMSwgMV1cclxuICAgKiBSYW5nZTogWzAsIHBpXVxyXG4gICAqXHJcbiAgICogYWNvcyh4KSA9IHBpLzIgLSBhc2luKHgpXHJcbiAgICpcclxuICAgKiBhY29zKDApICAgICAgID0gcGkvMlxyXG4gICAqIGFjb3MoLTApICAgICAgPSBwaS8yXHJcbiAgICogYWNvcygxKSAgICAgICA9IDBcclxuICAgKiBhY29zKC0xKSAgICAgID0gcGlcclxuICAgKiBhY29zKDEvMikgICAgID0gcGkvM1xyXG4gICAqIGFjb3MoLTEvMikgICAgPSAyKnBpLzNcclxuICAgKiBhY29zKHx4fCA+IDEpID0gTmFOXHJcbiAgICogYWNvcyhOYU4pICAgICA9IE5hTlxyXG4gICAqXHJcbiAgICovXHJcbiAgUC5pbnZlcnNlQ29zaW5lID0gUC5hY29zID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIGhhbGZQaSxcclxuICAgICAgeCA9IHRoaXMsXHJcbiAgICAgIEN0b3IgPSB4LmNvbnN0cnVjdG9yLFxyXG4gICAgICBrID0geC5hYnMoKS5jbXAoMSksXHJcbiAgICAgIHByID0gQ3Rvci5wcmVjaXNpb24sXHJcbiAgICAgIHJtID0gQ3Rvci5yb3VuZGluZztcclxuXHJcbiAgICBpZiAoayAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIGsgPT09IDBcclxuICAgICAgICAvLyB8eHwgaXMgMVxyXG4gICAgICAgID8geC5pc05lZygpID8gZ2V0UGkoQ3RvciwgcHIsIHJtKSA6IG5ldyBDdG9yKDApXHJcbiAgICAgICAgLy8gfHh8ID4gMSBvciB4IGlzIE5hTlxyXG4gICAgICAgIDogbmV3IEN0b3IoTmFOKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoeC5pc1plcm8oKSkgcmV0dXJuIGdldFBpKEN0b3IsIHByICsgNCwgcm0pLnRpbWVzKDAuNSk7XHJcblxyXG4gICAgLy8gVE9ETz8gU3BlY2lhbCBjYXNlIGFjb3MoMC41KSA9IHBpLzMgYW5kIGFjb3MoLTAuNSkgPSAyKnBpLzNcclxuXHJcbiAgICBDdG9yLnByZWNpc2lvbiA9IHByICsgNjtcclxuICAgIEN0b3Iucm91bmRpbmcgPSAxO1xyXG5cclxuICAgIHggPSB4LmFzaW4oKTtcclxuICAgIGhhbGZQaSA9IGdldFBpKEN0b3IsIHByICsgNCwgcm0pLnRpbWVzKDAuNSk7XHJcblxyXG4gICAgQ3Rvci5wcmVjaXNpb24gPSBwcjtcclxuICAgIEN0b3Iucm91bmRpbmcgPSBybTtcclxuXHJcbiAgICByZXR1cm4gaGFsZlBpLm1pbnVzKHgpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBpbnZlcnNlIG9mIHRoZSBoeXBlcmJvbGljIGNvc2luZSBpbiByYWRpYW5zIG9mIHRoZVxyXG4gICAqIHZhbHVlIG9mIHRoaXMgRGVjaW1hbC5cclxuICAgKlxyXG4gICAqIERvbWFpbjogWzEsIEluZmluaXR5XVxyXG4gICAqIFJhbmdlOiBbMCwgSW5maW5pdHldXHJcbiAgICpcclxuICAgKiBhY29zaCh4KSA9IGxuKHggKyBzcXJ0KHheMiAtIDEpKVxyXG4gICAqXHJcbiAgICogYWNvc2goeCA8IDEpICAgICA9IE5hTlxyXG4gICAqIGFjb3NoKE5hTikgICAgICAgPSBOYU5cclxuICAgKiBhY29zaChJbmZpbml0eSkgID0gSW5maW5pdHlcclxuICAgKiBhY29zaCgtSW5maW5pdHkpID0gTmFOXHJcbiAgICogYWNvc2goMCkgICAgICAgICA9IE5hTlxyXG4gICAqIGFjb3NoKC0wKSAgICAgICAgPSBOYU5cclxuICAgKiBhY29zaCgxKSAgICAgICAgID0gMFxyXG4gICAqIGFjb3NoKC0xKSAgICAgICAgPSBOYU5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAuaW52ZXJzZUh5cGVyYm9saWNDb3NpbmUgPSBQLmFjb3NoID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIHByLCBybSxcclxuICAgICAgeCA9IHRoaXMsXHJcbiAgICAgIEN0b3IgPSB4LmNvbnN0cnVjdG9yO1xyXG5cclxuICAgIGlmICh4Lmx0ZSgxKSkgcmV0dXJuIG5ldyBDdG9yKHguZXEoMSkgPyAwIDogTmFOKTtcclxuICAgIGlmICgheC5pc0Zpbml0ZSgpKSByZXR1cm4gbmV3IEN0b3IoeCk7XHJcblxyXG4gICAgcHIgPSBDdG9yLnByZWNpc2lvbjtcclxuICAgIHJtID0gQ3Rvci5yb3VuZGluZztcclxuICAgIEN0b3IucHJlY2lzaW9uID0gcHIgKyBNYXRoLm1heChNYXRoLmFicyh4LmUpLCB4LnNkKCkpICsgNDtcclxuICAgIEN0b3Iucm91bmRpbmcgPSAxO1xyXG4gICAgZXh0ZXJuYWwgPSBmYWxzZTtcclxuXHJcbiAgICB4ID0geC50aW1lcyh4KS5taW51cygxKS5zcXJ0KCkucGx1cyh4KTtcclxuXHJcbiAgICBleHRlcm5hbCA9IHRydWU7XHJcbiAgICBDdG9yLnByZWNpc2lvbiA9IHByO1xyXG4gICAgQ3Rvci5yb3VuZGluZyA9IHJtO1xyXG5cclxuICAgIHJldHVybiB4LmxuKCk7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIGludmVyc2Ugb2YgdGhlIGh5cGVyYm9saWMgc2luZSBpbiByYWRpYW5zIG9mIHRoZSB2YWx1ZVxyXG4gICAqIG9mIHRoaXMgRGVjaW1hbC5cclxuICAgKlxyXG4gICAqIERvbWFpbjogWy1JbmZpbml0eSwgSW5maW5pdHldXHJcbiAgICogUmFuZ2U6IFstSW5maW5pdHksIEluZmluaXR5XVxyXG4gICAqXHJcbiAgICogYXNpbmgoeCkgPSBsbih4ICsgc3FydCh4XjIgKyAxKSlcclxuICAgKlxyXG4gICAqIGFzaW5oKE5hTikgICAgICAgPSBOYU5cclxuICAgKiBhc2luaChJbmZpbml0eSkgID0gSW5maW5pdHlcclxuICAgKiBhc2luaCgtSW5maW5pdHkpID0gLUluZmluaXR5XHJcbiAgICogYXNpbmgoMCkgICAgICAgICA9IDBcclxuICAgKiBhc2luaCgtMCkgICAgICAgID0gLTBcclxuICAgKlxyXG4gICAqL1xyXG4gIFAuaW52ZXJzZUh5cGVyYm9saWNTaW5lID0gUC5hc2luaCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBwciwgcm0sXHJcbiAgICAgIHggPSB0aGlzLFxyXG4gICAgICBDdG9yID0geC5jb25zdHJ1Y3RvcjtcclxuXHJcbiAgICBpZiAoIXguaXNGaW5pdGUoKSB8fCB4LmlzWmVybygpKSByZXR1cm4gbmV3IEN0b3IoeCk7XHJcblxyXG4gICAgcHIgPSBDdG9yLnByZWNpc2lvbjtcclxuICAgIHJtID0gQ3Rvci5yb3VuZGluZztcclxuICAgIEN0b3IucHJlY2lzaW9uID0gcHIgKyAyICogTWF0aC5tYXgoTWF0aC5hYnMoeC5lKSwgeC5zZCgpKSArIDY7XHJcbiAgICBDdG9yLnJvdW5kaW5nID0gMTtcclxuICAgIGV4dGVybmFsID0gZmFsc2U7XHJcblxyXG4gICAgeCA9IHgudGltZXMoeCkucGx1cygxKS5zcXJ0KCkucGx1cyh4KTtcclxuXHJcbiAgICBleHRlcm5hbCA9IHRydWU7XHJcbiAgICBDdG9yLnByZWNpc2lvbiA9IHByO1xyXG4gICAgQ3Rvci5yb3VuZGluZyA9IHJtO1xyXG5cclxuICAgIHJldHVybiB4LmxuKCk7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIGludmVyc2Ugb2YgdGhlIGh5cGVyYm9saWMgdGFuZ2VudCBpbiByYWRpYW5zIG9mIHRoZVxyXG4gICAqIHZhbHVlIG9mIHRoaXMgRGVjaW1hbC5cclxuICAgKlxyXG4gICAqIERvbWFpbjogWy0xLCAxXVxyXG4gICAqIFJhbmdlOiBbLUluZmluaXR5LCBJbmZpbml0eV1cclxuICAgKlxyXG4gICAqIGF0YW5oKHgpID0gMC41ICogbG4oKDEgKyB4KSAvICgxIC0geCkpXHJcbiAgICpcclxuICAgKiBhdGFuaCh8eHwgPiAxKSAgID0gTmFOXHJcbiAgICogYXRhbmgoTmFOKSAgICAgICA9IE5hTlxyXG4gICAqIGF0YW5oKEluZmluaXR5KSAgPSBOYU5cclxuICAgKiBhdGFuaCgtSW5maW5pdHkpID0gTmFOXHJcbiAgICogYXRhbmgoMCkgICAgICAgICA9IDBcclxuICAgKiBhdGFuaCgtMCkgICAgICAgID0gLTBcclxuICAgKiBhdGFuaCgxKSAgICAgICAgID0gSW5maW5pdHlcclxuICAgKiBhdGFuaCgtMSkgICAgICAgID0gLUluZmluaXR5XHJcbiAgICpcclxuICAgKi9cclxuICBQLmludmVyc2VIeXBlcmJvbGljVGFuZ2VudCA9IFAuYXRhbmggPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgcHIsIHJtLCB3cHIsIHhzZCxcclxuICAgICAgeCA9IHRoaXMsXHJcbiAgICAgIEN0b3IgPSB4LmNvbnN0cnVjdG9yO1xyXG5cclxuICAgIGlmICgheC5pc0Zpbml0ZSgpKSByZXR1cm4gbmV3IEN0b3IoTmFOKTtcclxuICAgIGlmICh4LmUgPj0gMCkgcmV0dXJuIG5ldyBDdG9yKHguYWJzKCkuZXEoMSkgPyB4LnMgLyAwIDogeC5pc1plcm8oKSA/IHggOiBOYU4pO1xyXG5cclxuICAgIHByID0gQ3Rvci5wcmVjaXNpb247XHJcbiAgICBybSA9IEN0b3Iucm91bmRpbmc7XHJcbiAgICB4c2QgPSB4LnNkKCk7XHJcblxyXG4gICAgaWYgKE1hdGgubWF4KHhzZCwgcHIpIDwgMiAqIC14LmUgLSAxKSByZXR1cm4gZmluYWxpc2UobmV3IEN0b3IoeCksIHByLCBybSwgdHJ1ZSk7XHJcblxyXG4gICAgQ3Rvci5wcmVjaXNpb24gPSB3cHIgPSB4c2QgLSB4LmU7XHJcblxyXG4gICAgeCA9IGRpdmlkZSh4LnBsdXMoMSksIG5ldyBDdG9yKDEpLm1pbnVzKHgpLCB3cHIgKyBwciwgMSk7XHJcblxyXG4gICAgQ3Rvci5wcmVjaXNpb24gPSBwciArIDQ7XHJcbiAgICBDdG9yLnJvdW5kaW5nID0gMTtcclxuXHJcbiAgICB4ID0geC5sbigpO1xyXG5cclxuICAgIEN0b3IucHJlY2lzaW9uID0gcHI7XHJcbiAgICBDdG9yLnJvdW5kaW5nID0gcm07XHJcblxyXG4gICAgcmV0dXJuIHgudGltZXMoMC41KTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgYXJjc2luZSAoaW52ZXJzZSBzaW5lKSBpbiByYWRpYW5zIG9mIHRoZSB2YWx1ZSBvZiB0aGlzXHJcbiAgICogRGVjaW1hbC5cclxuICAgKlxyXG4gICAqIERvbWFpbjogWy1JbmZpbml0eSwgSW5maW5pdHldXHJcbiAgICogUmFuZ2U6IFstcGkvMiwgcGkvMl1cclxuICAgKlxyXG4gICAqIGFzaW4oeCkgPSAyKmF0YW4oeC8oMSArIHNxcnQoMSAtIHheMikpKVxyXG4gICAqXHJcbiAgICogYXNpbigwKSAgICAgICA9IDBcclxuICAgKiBhc2luKC0wKSAgICAgID0gLTBcclxuICAgKiBhc2luKDEvMikgICAgID0gcGkvNlxyXG4gICAqIGFzaW4oLTEvMikgICAgPSAtcGkvNlxyXG4gICAqIGFzaW4oMSkgICAgICAgPSBwaS8yXHJcbiAgICogYXNpbigtMSkgICAgICA9IC1waS8yXHJcbiAgICogYXNpbih8eHwgPiAxKSA9IE5hTlxyXG4gICAqIGFzaW4oTmFOKSAgICAgPSBOYU5cclxuICAgKlxyXG4gICAqIFRPRE8/IENvbXBhcmUgcGVyZm9ybWFuY2Ugb2YgVGF5bG9yIHNlcmllcy5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAuaW52ZXJzZVNpbmUgPSBQLmFzaW4gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgaGFsZlBpLCBrLFxyXG4gICAgICBwciwgcm0sXHJcbiAgICAgIHggPSB0aGlzLFxyXG4gICAgICBDdG9yID0geC5jb25zdHJ1Y3RvcjtcclxuXHJcbiAgICBpZiAoeC5pc1plcm8oKSkgcmV0dXJuIG5ldyBDdG9yKHgpO1xyXG5cclxuICAgIGsgPSB4LmFicygpLmNtcCgxKTtcclxuICAgIHByID0gQ3Rvci5wcmVjaXNpb247XHJcbiAgICBybSA9IEN0b3Iucm91bmRpbmc7XHJcblxyXG4gICAgaWYgKGsgIT09IC0xKSB7XHJcblxyXG4gICAgICAvLyB8eHwgaXMgMVxyXG4gICAgICBpZiAoayA9PT0gMCkge1xyXG4gICAgICAgIGhhbGZQaSA9IGdldFBpKEN0b3IsIHByICsgNCwgcm0pLnRpbWVzKDAuNSk7XHJcbiAgICAgICAgaGFsZlBpLnMgPSB4LnM7XHJcbiAgICAgICAgcmV0dXJuIGhhbGZQaTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gfHh8ID4gMSBvciB4IGlzIE5hTlxyXG4gICAgICByZXR1cm4gbmV3IEN0b3IoTmFOKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUT0RPPyBTcGVjaWFsIGNhc2UgYXNpbigxLzIpID0gcGkvNiBhbmQgYXNpbigtMS8yKSA9IC1waS82XHJcblxyXG4gICAgQ3Rvci5wcmVjaXNpb24gPSBwciArIDY7XHJcbiAgICBDdG9yLnJvdW5kaW5nID0gMTtcclxuXHJcbiAgICB4ID0geC5kaXYobmV3IEN0b3IoMSkubWludXMoeC50aW1lcyh4KSkuc3FydCgpLnBsdXMoMSkpLmF0YW4oKTtcclxuXHJcbiAgICBDdG9yLnByZWNpc2lvbiA9IHByO1xyXG4gICAgQ3Rvci5yb3VuZGluZyA9IHJtO1xyXG5cclxuICAgIHJldHVybiB4LnRpbWVzKDIpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBhcmN0YW5nZW50IChpbnZlcnNlIHRhbmdlbnQpIGluIHJhZGlhbnMgb2YgdGhlIHZhbHVlXHJcbiAgICogb2YgdGhpcyBEZWNpbWFsLlxyXG4gICAqXHJcbiAgICogRG9tYWluOiBbLUluZmluaXR5LCBJbmZpbml0eV1cclxuICAgKiBSYW5nZTogWy1waS8yLCBwaS8yXVxyXG4gICAqXHJcbiAgICogYXRhbih4KSA9IHggLSB4XjMvMyArIHheNS81IC0geF43LzcgKyAuLi5cclxuICAgKlxyXG4gICAqIGF0YW4oMCkgICAgICAgICA9IDBcclxuICAgKiBhdGFuKC0wKSAgICAgICAgPSAtMFxyXG4gICAqIGF0YW4oMSkgICAgICAgICA9IHBpLzRcclxuICAgKiBhdGFuKC0xKSAgICAgICAgPSAtcGkvNFxyXG4gICAqIGF0YW4oSW5maW5pdHkpICA9IHBpLzJcclxuICAgKiBhdGFuKC1JbmZpbml0eSkgPSAtcGkvMlxyXG4gICAqIGF0YW4oTmFOKSAgICAgICA9IE5hTlxyXG4gICAqXHJcbiAgICovXHJcbiAgUC5pbnZlcnNlVGFuZ2VudCA9IFAuYXRhbiA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBpLCBqLCBrLCBuLCBweCwgdCwgciwgd3ByLCB4MixcclxuICAgICAgeCA9IHRoaXMsXHJcbiAgICAgIEN0b3IgPSB4LmNvbnN0cnVjdG9yLFxyXG4gICAgICBwciA9IEN0b3IucHJlY2lzaW9uLFxyXG4gICAgICBybSA9IEN0b3Iucm91bmRpbmc7XHJcblxyXG4gICAgaWYgKCF4LmlzRmluaXRlKCkpIHtcclxuICAgICAgaWYgKCF4LnMpIHJldHVybiBuZXcgQ3RvcihOYU4pO1xyXG4gICAgICBpZiAocHIgKyA0IDw9IFBJX1BSRUNJU0lPTikge1xyXG4gICAgICAgIHIgPSBnZXRQaShDdG9yLCBwciArIDQsIHJtKS50aW1lcygwLjUpO1xyXG4gICAgICAgIHIucyA9IHgucztcclxuICAgICAgICByZXR1cm4gcjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh4LmlzWmVybygpKSB7XHJcbiAgICAgIHJldHVybiBuZXcgQ3Rvcih4KTtcclxuICAgIH0gZWxzZSBpZiAoeC5hYnMoKS5lcSgxKSAmJiBwciArIDQgPD0gUElfUFJFQ0lTSU9OKSB7XHJcbiAgICAgIHIgPSBnZXRQaShDdG9yLCBwciArIDQsIHJtKS50aW1lcygwLjI1KTtcclxuICAgICAgci5zID0geC5zO1xyXG4gICAgICByZXR1cm4gcjtcclxuICAgIH1cclxuXHJcbiAgICBDdG9yLnByZWNpc2lvbiA9IHdwciA9IHByICsgMTA7XHJcbiAgICBDdG9yLnJvdW5kaW5nID0gMTtcclxuXHJcbiAgICAvLyBUT0RPPyBpZiAoeCA+PSAxICYmIHByIDw9IFBJX1BSRUNJU0lPTikgYXRhbih4KSA9IGhhbGZQaSAqIHgucyAtIGF0YW4oMSAvIHgpO1xyXG5cclxuICAgIC8vIEFyZ3VtZW50IHJlZHVjdGlvblxyXG4gICAgLy8gRW5zdXJlIHx4fCA8IDAuNDJcclxuICAgIC8vIGF0YW4oeCkgPSAyICogYXRhbih4IC8gKDEgKyBzcXJ0KDEgKyB4XjIpKSlcclxuXHJcbiAgICBrID0gTWF0aC5taW4oMjgsIHdwciAvIExPR19CQVNFICsgMiB8IDApO1xyXG5cclxuICAgIGZvciAoaSA9IGs7IGk7IC0taSkgeCA9IHguZGl2KHgudGltZXMoeCkucGx1cygxKS5zcXJ0KCkucGx1cygxKSk7XHJcblxyXG4gICAgZXh0ZXJuYWwgPSBmYWxzZTtcclxuXHJcbiAgICBqID0gTWF0aC5jZWlsKHdwciAvIExPR19CQVNFKTtcclxuICAgIG4gPSAxO1xyXG4gICAgeDIgPSB4LnRpbWVzKHgpO1xyXG4gICAgciA9IG5ldyBDdG9yKHgpO1xyXG4gICAgcHggPSB4O1xyXG5cclxuICAgIC8vIGF0YW4oeCkgPSB4IC0geF4zLzMgKyB4XjUvNSAtIHheNy83ICsgLi4uXHJcbiAgICBmb3IgKDsgaSAhPT0gLTE7KSB7XHJcbiAgICAgIHB4ID0gcHgudGltZXMoeDIpO1xyXG4gICAgICB0ID0gci5taW51cyhweC5kaXYobiArPSAyKSk7XHJcblxyXG4gICAgICBweCA9IHB4LnRpbWVzKHgyKTtcclxuICAgICAgciA9IHQucGx1cyhweC5kaXYobiArPSAyKSk7XHJcblxyXG4gICAgICBpZiAoci5kW2pdICE9PSB2b2lkIDApIGZvciAoaSA9IGo7IHIuZFtpXSA9PT0gdC5kW2ldICYmIGktLTspO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChrKSByID0gci50aW1lcygyIDw8IChrIC0gMSkpO1xyXG5cclxuICAgIGV4dGVybmFsID0gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4gZmluYWxpc2UociwgQ3Rvci5wcmVjaXNpb24gPSBwciwgQ3Rvci5yb3VuZGluZyA9IHJtLCB0cnVlKTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsIGlzIGEgZmluaXRlIG51bWJlciwgb3RoZXJ3aXNlIHJldHVybiBmYWxzZS5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAuaXNGaW5pdGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gISF0aGlzLmQ7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIHRydWUgaWYgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbCBpcyBhbiBpbnRlZ2VyLCBvdGhlcndpc2UgcmV0dXJuIGZhbHNlLlxyXG4gICAqXHJcbiAgICovXHJcbiAgUC5pc0ludGVnZXIgPSBQLmlzSW50ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuICEhdGhpcy5kICYmIG1hdGhmbG9vcih0aGlzLmUgLyBMT0dfQkFTRSkgPiB0aGlzLmQubGVuZ3RoIC0gMjtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsIGlzIE5hTiwgb3RoZXJ3aXNlIHJldHVybiBmYWxzZS5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAuaXNOYU4gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMucztcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsIGlzIG5lZ2F0aXZlLCBvdGhlcndpc2UgcmV0dXJuIGZhbHNlLlxyXG4gICAqXHJcbiAgICovXHJcbiAgUC5pc05lZ2F0aXZlID0gUC5pc05lZyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLnMgPCAwO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiB0cnVlIGlmIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwgaXMgcG9zaXRpdmUsIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuXHJcbiAgICpcclxuICAgKi9cclxuICBQLmlzUG9zaXRpdmUgPSBQLmlzUG9zID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucyA+IDA7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIHRydWUgaWYgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbCBpcyAwIG9yIC0wLCBvdGhlcndpc2UgcmV0dXJuIGZhbHNlLlxyXG4gICAqXHJcbiAgICovXHJcbiAgUC5pc1plcm8gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gISF0aGlzLmQgJiYgdGhpcy5kWzBdID09PSAwO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiB0cnVlIGlmIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwgaXMgbGVzcyB0aGFuIGB5YCwgb3RoZXJ3aXNlIHJldHVybiBmYWxzZS5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAubGVzc1RoYW4gPSBQLmx0ID0gZnVuY3Rpb24gKHkpIHtcclxuICAgIHJldHVybiB0aGlzLmNtcCh5KSA8IDA7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIHRydWUgaWYgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYHlgLCBvdGhlcndpc2UgcmV0dXJuIGZhbHNlLlxyXG4gICAqXHJcbiAgICovXHJcbiAgUC5sZXNzVGhhbk9yRXF1YWxUbyA9IFAubHRlID0gZnVuY3Rpb24gKHkpIHtcclxuICAgIHJldHVybiB0aGlzLmNtcCh5KSA8IDE7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIHRoZSBsb2dhcml0aG0gb2YgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbCB0byB0aGUgc3BlY2lmaWVkIGJhc2UsIHJvdW5kZWQgdG8gYHByZWNpc2lvbmBcclxuICAgKiBzaWduaWZpY2FudCBkaWdpdHMgdXNpbmcgcm91bmRpbmcgbW9kZSBgcm91bmRpbmdgLlxyXG4gICAqXHJcbiAgICogSWYgbm8gYmFzZSBpcyBzcGVjaWZpZWQsIHJldHVybiBsb2dbMTBdKGFyZykuXHJcbiAgICpcclxuICAgKiBsb2dbYmFzZV0oYXJnKSA9IGxuKGFyZykgLyBsbihiYXNlKVxyXG4gICAqXHJcbiAgICogVGhlIHJlc3VsdCB3aWxsIGFsd2F5cyBiZSBjb3JyZWN0bHkgcm91bmRlZCBpZiB0aGUgYmFzZSBvZiB0aGUgbG9nIGlzIDEwLCBhbmQgJ2FsbW9zdCBhbHdheXMnXHJcbiAgICogb3RoZXJ3aXNlOlxyXG4gICAqXHJcbiAgICogRGVwZW5kaW5nIG9uIHRoZSByb3VuZGluZyBtb2RlLCB0aGUgcmVzdWx0IG1heSBiZSBpbmNvcnJlY3RseSByb3VuZGVkIGlmIHRoZSBmaXJzdCBmaWZ0ZWVuXHJcbiAgICogcm91bmRpbmcgZGlnaXRzIGFyZSBbNDldOTk5OTk5OTk5OTk5OTkgb3IgWzUwXTAwMDAwMDAwMDAwMDAwLiBJbiB0aGF0IGNhc2UsIHRoZSBtYXhpbXVtIGVycm9yXHJcbiAgICogYmV0d2VlbiB0aGUgcmVzdWx0IGFuZCB0aGUgY29ycmVjdGx5IHJvdW5kZWQgcmVzdWx0IHdpbGwgYmUgb25lIHVscCAodW5pdCBpbiB0aGUgbGFzdCBwbGFjZSkuXHJcbiAgICpcclxuICAgKiBsb2dbLWJdKGEpICAgICAgID0gTmFOXHJcbiAgICogbG9nWzBdKGEpICAgICAgICA9IE5hTlxyXG4gICAqIGxvZ1sxXShhKSAgICAgICAgPSBOYU5cclxuICAgKiBsb2dbTmFOXShhKSAgICAgID0gTmFOXHJcbiAgICogbG9nW0luZmluaXR5XShhKSA9IE5hTlxyXG4gICAqIGxvZ1tiXSgwKSAgICAgICAgPSAtSW5maW5pdHlcclxuICAgKiBsb2dbYl0oLTApICAgICAgID0gLUluZmluaXR5XHJcbiAgICogbG9nW2JdKC1hKSAgICAgICA9IE5hTlxyXG4gICAqIGxvZ1tiXSgxKSAgICAgICAgPSAwXHJcbiAgICogbG9nW2JdKEluZmluaXR5KSA9IEluZmluaXR5XHJcbiAgICogbG9nW2JdKE5hTikgICAgICA9IE5hTlxyXG4gICAqXHJcbiAgICogW2Jhc2VdIHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9IFRoZSBiYXNlIG9mIHRoZSBsb2dhcml0aG0uXHJcbiAgICpcclxuICAgKi9cclxuICBQLmxvZ2FyaXRobSA9IFAubG9nID0gZnVuY3Rpb24gKGJhc2UpIHtcclxuICAgIHZhciBpc0Jhc2UxMCwgZCwgZGVub21pbmF0b3IsIGssIGluZiwgbnVtLCBzZCwgcixcclxuICAgICAgYXJnID0gdGhpcyxcclxuICAgICAgQ3RvciA9IGFyZy5jb25zdHJ1Y3RvcixcclxuICAgICAgcHIgPSBDdG9yLnByZWNpc2lvbixcclxuICAgICAgcm0gPSBDdG9yLnJvdW5kaW5nLFxyXG4gICAgICBndWFyZCA9IDU7XHJcblxyXG4gICAgLy8gRGVmYXVsdCBiYXNlIGlzIDEwLlxyXG4gICAgaWYgKGJhc2UgPT0gbnVsbCkge1xyXG4gICAgICBiYXNlID0gbmV3IEN0b3IoMTApO1xyXG4gICAgICBpc0Jhc2UxMCA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBiYXNlID0gbmV3IEN0b3IoYmFzZSk7XHJcbiAgICAgIGQgPSBiYXNlLmQ7XHJcblxyXG4gICAgICAvLyBSZXR1cm4gTmFOIGlmIGJhc2UgaXMgbmVnYXRpdmUsIG9yIG5vbi1maW5pdGUsIG9yIGlzIDAgb3IgMS5cclxuICAgICAgaWYgKGJhc2UucyA8IDAgfHwgIWQgfHwgIWRbMF0gfHwgYmFzZS5lcSgxKSkgcmV0dXJuIG5ldyBDdG9yKE5hTik7XHJcblxyXG4gICAgICBpc0Jhc2UxMCA9IGJhc2UuZXEoMTApO1xyXG4gICAgfVxyXG5cclxuICAgIGQgPSBhcmcuZDtcclxuXHJcbiAgICAvLyBJcyBhcmcgbmVnYXRpdmUsIG5vbi1maW5pdGUsIDAgb3IgMT9cclxuICAgIGlmIChhcmcucyA8IDAgfHwgIWQgfHwgIWRbMF0gfHwgYXJnLmVxKDEpKSB7XHJcbiAgICAgIHJldHVybiBuZXcgQ3RvcihkICYmICFkWzBdID8gLTEgLyAwIDogYXJnLnMgIT0gMSA/IE5hTiA6IGQgPyAwIDogMSAvIDApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoZSByZXN1bHQgd2lsbCBoYXZlIGEgbm9uLXRlcm1pbmF0aW5nIGRlY2ltYWwgZXhwYW5zaW9uIGlmIGJhc2UgaXMgMTAgYW5kIGFyZyBpcyBub3QgYW5cclxuICAgIC8vIGludGVnZXIgcG93ZXIgb2YgMTAuXHJcbiAgICBpZiAoaXNCYXNlMTApIHtcclxuICAgICAgaWYgKGQubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIGluZiA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZm9yIChrID0gZFswXTsgayAlIDEwID09PSAwOykgayAvPSAxMDtcclxuICAgICAgICBpbmYgPSBrICE9PSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZXh0ZXJuYWwgPSBmYWxzZTtcclxuICAgIHNkID0gcHIgKyBndWFyZDtcclxuICAgIG51bSA9IG5hdHVyYWxMb2dhcml0aG0oYXJnLCBzZCk7XHJcbiAgICBkZW5vbWluYXRvciA9IGlzQmFzZTEwID8gZ2V0TG4xMChDdG9yLCBzZCArIDEwKSA6IG5hdHVyYWxMb2dhcml0aG0oYmFzZSwgc2QpO1xyXG5cclxuICAgIC8vIFRoZSByZXN1bHQgd2lsbCBoYXZlIDUgcm91bmRpbmcgZGlnaXRzLlxyXG4gICAgciA9IGRpdmlkZShudW0sIGRlbm9taW5hdG9yLCBzZCwgMSk7XHJcblxyXG4gICAgLy8gSWYgYXQgYSByb3VuZGluZyBib3VuZGFyeSwgaS5lLiB0aGUgcmVzdWx0J3Mgcm91bmRpbmcgZGlnaXRzIGFyZSBbNDldOTk5OSBvciBbNTBdMDAwMCxcclxuICAgIC8vIGNhbGN1bGF0ZSAxMCBmdXJ0aGVyIGRpZ2l0cy5cclxuICAgIC8vXHJcbiAgICAvLyBJZiB0aGUgcmVzdWx0IGlzIGtub3duIHRvIGhhdmUgYW4gaW5maW5pdGUgZGVjaW1hbCBleHBhbnNpb24sIHJlcGVhdCB0aGlzIHVudGlsIGl0IGlzIGNsZWFyXHJcbiAgICAvLyB0aGF0IHRoZSByZXN1bHQgaXMgYWJvdmUgb3IgYmVsb3cgdGhlIGJvdW5kYXJ5LiBPdGhlcndpc2UsIGlmIGFmdGVyIGNhbGN1bGF0aW5nIHRoZSAxMFxyXG4gICAgLy8gZnVydGhlciBkaWdpdHMsIHRoZSBsYXN0IDE0IGFyZSBuaW5lcywgcm91bmQgdXAgYW5kIGFzc3VtZSB0aGUgcmVzdWx0IGlzIGV4YWN0LlxyXG4gICAgLy8gQWxzbyBhc3N1bWUgdGhlIHJlc3VsdCBpcyBleGFjdCBpZiB0aGUgbGFzdCAxNCBhcmUgemVyby5cclxuICAgIC8vXHJcbiAgICAvLyBFeGFtcGxlIG9mIGEgcmVzdWx0IHRoYXQgd2lsbCBiZSBpbmNvcnJlY3RseSByb3VuZGVkOlxyXG4gICAgLy8gbG9nWzEwNDg1NzZdKDQ1MDM1OTk2MjczNzA1MDIpID0gMi42MDAwMDAwMDAwMDAwMDAwOTYxMDI3OTUxMTQ0NDc0Ni4uLlxyXG4gICAgLy8gVGhlIGFib3ZlIHJlc3VsdCBjb3JyZWN0bHkgcm91bmRlZCB1c2luZyBST1VORF9DRUlMIHRvIDEgZGVjaW1hbCBwbGFjZSBzaG91bGQgYmUgMi43LCBidXQgaXRcclxuICAgIC8vIHdpbGwgYmUgZ2l2ZW4gYXMgMi42IGFzIHRoZXJlIGFyZSAxNSB6ZXJvcyBpbW1lZGlhdGVseSBhZnRlciB0aGUgcmVxdWVzdGVkIGRlY2ltYWwgcGxhY2UsIHNvXHJcbiAgICAvLyB0aGUgZXhhY3QgcmVzdWx0IHdvdWxkIGJlIGFzc3VtZWQgdG8gYmUgMi42LCB3aGljaCByb3VuZGVkIHVzaW5nIFJPVU5EX0NFSUwgdG8gMSBkZWNpbWFsXHJcbiAgICAvLyBwbGFjZSBpcyBzdGlsbCAyLjYuXHJcbiAgICBpZiAoY2hlY2tSb3VuZGluZ0RpZ2l0cyhyLmQsIGsgPSBwciwgcm0pKSB7XHJcblxyXG4gICAgICBkbyB7XHJcbiAgICAgICAgc2QgKz0gMTA7XHJcbiAgICAgICAgbnVtID0gbmF0dXJhbExvZ2FyaXRobShhcmcsIHNkKTtcclxuICAgICAgICBkZW5vbWluYXRvciA9IGlzQmFzZTEwID8gZ2V0TG4xMChDdG9yLCBzZCArIDEwKSA6IG5hdHVyYWxMb2dhcml0aG0oYmFzZSwgc2QpO1xyXG4gICAgICAgIHIgPSBkaXZpZGUobnVtLCBkZW5vbWluYXRvciwgc2QsIDEpO1xyXG5cclxuICAgICAgICBpZiAoIWluZikge1xyXG5cclxuICAgICAgICAgIC8vIENoZWNrIGZvciAxNCBuaW5lcyBmcm9tIHRoZSAybmQgcm91bmRpbmcgZGlnaXQsIGFzIHRoZSBmaXJzdCBtYXkgYmUgNC5cclxuICAgICAgICAgIGlmICgrZGlnaXRzVG9TdHJpbmcoci5kKS5zbGljZShrICsgMSwgayArIDE1KSArIDEgPT0gMWUxNCkge1xyXG4gICAgICAgICAgICByID0gZmluYWxpc2UociwgcHIgKyAxLCAwKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0gd2hpbGUgKGNoZWNrUm91bmRpbmdEaWdpdHMoci5kLCBrICs9IDEwLCBybSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGV4dGVybmFsID0gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4gZmluYWxpc2UociwgcHIsIHJtKTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgbWF4aW11bSBvZiB0aGUgYXJndW1lbnRzIGFuZCB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsLlxyXG4gICAqXHJcbiAgICogYXJndW1lbnRzIHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9XHJcbiAgICpcclxuICBQLm1heCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmNhbGwoYXJndW1lbnRzLCB0aGlzKTtcclxuICAgIHJldHVybiBtYXhPck1pbih0aGlzLmNvbnN0cnVjdG9yLCBhcmd1bWVudHMsICdsdCcpO1xyXG4gIH07XHJcbiAgICovXHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBtaW5pbXVtIG9mIHRoZSBhcmd1bWVudHMgYW5kIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwuXHJcbiAgICpcclxuICAgKiBhcmd1bWVudHMge251bWJlcnxzdHJpbmd8RGVjaW1hbH1cclxuICAgKlxyXG4gIFAubWluID0gZnVuY3Rpb24gKCkge1xyXG4gICAgQXJyYXkucHJvdG90eXBlLnB1c2guY2FsbChhcmd1bWVudHMsIHRoaXMpO1xyXG4gICAgcmV0dXJuIG1heE9yTWluKHRoaXMuY29uc3RydWN0b3IsIGFyZ3VtZW50cywgJ2d0Jyk7XHJcbiAgfTtcclxuICAgKi9cclxuXHJcblxyXG4gIC8qXHJcbiAgICogIG4gLSAwID0gblxyXG4gICAqICBuIC0gTiA9IE5cclxuICAgKiAgbiAtIEkgPSAtSVxyXG4gICAqICAwIC0gbiA9IC1uXHJcbiAgICogIDAgLSAwID0gMFxyXG4gICAqICAwIC0gTiA9IE5cclxuICAgKiAgMCAtIEkgPSAtSVxyXG4gICAqICBOIC0gbiA9IE5cclxuICAgKiAgTiAtIDAgPSBOXHJcbiAgICogIE4gLSBOID0gTlxyXG4gICAqICBOIC0gSSA9IE5cclxuICAgKiAgSSAtIG4gPSBJXHJcbiAgICogIEkgLSAwID0gSVxyXG4gICAqICBJIC0gTiA9IE5cclxuICAgKiAgSSAtIEkgPSBOXHJcbiAgICpcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsIG1pbnVzIGB5YCwgcm91bmRlZCB0byBgcHJlY2lzaW9uYFxyXG4gICAqIHNpZ25pZmljYW50IGRpZ2l0cyB1c2luZyByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKi9cclxuICBQLm1pbnVzID0gUC5zdWIgPSBmdW5jdGlvbiAoeSkge1xyXG4gICAgdmFyIGQsIGUsIGksIGosIGssIGxlbiwgcHIsIHJtLCB4ZCwgeGUsIHhMVHksIHlkLFxyXG4gICAgICB4ID0gdGhpcyxcclxuICAgICAgQ3RvciA9IHguY29uc3RydWN0b3I7XHJcblxyXG4gICAgeSA9IG5ldyBDdG9yKHkpO1xyXG5cclxuICAgIC8vIElmIGVpdGhlciBpcyBub3QgZmluaXRlLi4uXHJcbiAgICBpZiAoIXguZCB8fCAheS5kKSB7XHJcblxyXG4gICAgICAvLyBSZXR1cm4gTmFOIGlmIGVpdGhlciBpcyBOYU4uXHJcbiAgICAgIGlmICgheC5zIHx8ICF5LnMpIHkgPSBuZXcgQ3RvcihOYU4pO1xyXG5cclxuICAgICAgLy8gUmV0dXJuIHkgbmVnYXRlZCBpZiB4IGlzIGZpbml0ZSBhbmQgeSBpcyDCsUluZmluaXR5LlxyXG4gICAgICBlbHNlIGlmICh4LmQpIHkucyA9IC15LnM7XHJcblxyXG4gICAgICAvLyBSZXR1cm4geCBpZiB5IGlzIGZpbml0ZSBhbmQgeCBpcyDCsUluZmluaXR5LlxyXG4gICAgICAvLyBSZXR1cm4geCBpZiBib3RoIGFyZSDCsUluZmluaXR5IHdpdGggZGlmZmVyZW50IHNpZ25zLlxyXG4gICAgICAvLyBSZXR1cm4gTmFOIGlmIGJvdGggYXJlIMKxSW5maW5pdHkgd2l0aCB0aGUgc2FtZSBzaWduLlxyXG4gICAgICBlbHNlIHkgPSBuZXcgQ3Rvcih5LmQgfHwgeC5zICE9PSB5LnMgPyB4IDogTmFOKTtcclxuXHJcbiAgICAgIHJldHVybiB5O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHNpZ25zIGRpZmZlci4uLlxyXG4gICAgaWYgKHgucyAhPSB5LnMpIHtcclxuICAgICAgeS5zID0gLXkucztcclxuICAgICAgcmV0dXJuIHgucGx1cyh5KTtcclxuICAgIH1cclxuXHJcbiAgICB4ZCA9IHguZDtcclxuICAgIHlkID0geS5kO1xyXG4gICAgcHIgPSBDdG9yLnByZWNpc2lvbjtcclxuICAgIHJtID0gQ3Rvci5yb3VuZGluZztcclxuXHJcbiAgICAvLyBJZiBlaXRoZXIgaXMgemVyby4uLlxyXG4gICAgaWYgKCF4ZFswXSB8fCAheWRbMF0pIHtcclxuXHJcbiAgICAgIC8vIFJldHVybiB5IG5lZ2F0ZWQgaWYgeCBpcyB6ZXJvIGFuZCB5IGlzIG5vbi16ZXJvLlxyXG4gICAgICBpZiAoeWRbMF0pIHkucyA9IC15LnM7XHJcblxyXG4gICAgICAvLyBSZXR1cm4geCBpZiB5IGlzIHplcm8gYW5kIHggaXMgbm9uLXplcm8uXHJcbiAgICAgIGVsc2UgaWYgKHhkWzBdKSB5ID0gbmV3IEN0b3IoeCk7XHJcblxyXG4gICAgICAvLyBSZXR1cm4gemVybyBpZiBib3RoIGFyZSB6ZXJvLlxyXG4gICAgICAvLyBGcm9tIElFRUUgNzU0ICgyMDA4KSA2LjM6IDAgLSAwID0gLTAgLSAtMCA9IC0wIHdoZW4gcm91bmRpbmcgdG8gLUluZmluaXR5LlxyXG4gICAgICBlbHNlIHJldHVybiBuZXcgQ3RvcihybSA9PT0gMyA/IC0wIDogMCk7XHJcblxyXG4gICAgICByZXR1cm4gZXh0ZXJuYWwgPyBmaW5hbGlzZSh5LCBwciwgcm0pIDogeTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB4IGFuZCB5IGFyZSBmaW5pdGUsIG5vbi16ZXJvIG51bWJlcnMgd2l0aCB0aGUgc2FtZSBzaWduLlxyXG5cclxuICAgIC8vIENhbGN1bGF0ZSBiYXNlIDFlNyBleHBvbmVudHMuXHJcbiAgICBlID0gbWF0aGZsb29yKHkuZSAvIExPR19CQVNFKTtcclxuICAgIHhlID0gbWF0aGZsb29yKHguZSAvIExPR19CQVNFKTtcclxuXHJcbiAgICB4ZCA9IHhkLnNsaWNlKCk7XHJcbiAgICBrID0geGUgLSBlO1xyXG5cclxuICAgIC8vIElmIGJhc2UgMWU3IGV4cG9uZW50cyBkaWZmZXIuLi5cclxuICAgIGlmIChrKSB7XHJcbiAgICAgIHhMVHkgPSBrIDwgMDtcclxuXHJcbiAgICAgIGlmICh4TFR5KSB7XHJcbiAgICAgICAgZCA9IHhkO1xyXG4gICAgICAgIGsgPSAtaztcclxuICAgICAgICBsZW4gPSB5ZC5sZW5ndGg7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZCA9IHlkO1xyXG4gICAgICAgIGUgPSB4ZTtcclxuICAgICAgICBsZW4gPSB4ZC5sZW5ndGg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIE51bWJlcnMgd2l0aCBtYXNzaXZlbHkgZGlmZmVyZW50IGV4cG9uZW50cyB3b3VsZCByZXN1bHQgaW4gYSB2ZXJ5IGhpZ2ggbnVtYmVyIG9mXHJcbiAgICAgIC8vIHplcm9zIG5lZWRpbmcgdG8gYmUgcHJlcGVuZGVkLCBidXQgdGhpcyBjYW4gYmUgYXZvaWRlZCB3aGlsZSBzdGlsbCBlbnN1cmluZyBjb3JyZWN0XHJcbiAgICAgIC8vIHJvdW5kaW5nIGJ5IGxpbWl0aW5nIHRoZSBudW1iZXIgb2YgemVyb3MgdG8gYE1hdGguY2VpbChwciAvIExPR19CQVNFKSArIDJgLlxyXG4gICAgICBpID0gTWF0aC5tYXgoTWF0aC5jZWlsKHByIC8gTE9HX0JBU0UpLCBsZW4pICsgMjtcclxuXHJcbiAgICAgIGlmIChrID4gaSkge1xyXG4gICAgICAgIGsgPSBpO1xyXG4gICAgICAgIGQubGVuZ3RoID0gMTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gUHJlcGVuZCB6ZXJvcyB0byBlcXVhbGlzZSBleHBvbmVudHMuXHJcbiAgICAgIGQucmV2ZXJzZSgpO1xyXG4gICAgICBmb3IgKGkgPSBrOyBpLS07KSBkLnB1c2goMCk7XHJcbiAgICAgIGQucmV2ZXJzZSgpO1xyXG5cclxuICAgIC8vIEJhc2UgMWU3IGV4cG9uZW50cyBlcXVhbC5cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAvLyBDaGVjayBkaWdpdHMgdG8gZGV0ZXJtaW5lIHdoaWNoIGlzIHRoZSBiaWdnZXIgbnVtYmVyLlxyXG5cclxuICAgICAgaSA9IHhkLmxlbmd0aDtcclxuICAgICAgbGVuID0geWQubGVuZ3RoO1xyXG4gICAgICB4TFR5ID0gaSA8IGxlbjtcclxuICAgICAgaWYgKHhMVHkpIGxlbiA9IGk7XHJcblxyXG4gICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICBpZiAoeGRbaV0gIT0geWRbaV0pIHtcclxuICAgICAgICAgIHhMVHkgPSB4ZFtpXSA8IHlkW2ldO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBrID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoeExUeSkge1xyXG4gICAgICBkID0geGQ7XHJcbiAgICAgIHhkID0geWQ7XHJcbiAgICAgIHlkID0gZDtcclxuICAgICAgeS5zID0gLXkucztcclxuICAgIH1cclxuXHJcbiAgICBsZW4gPSB4ZC5sZW5ndGg7XHJcblxyXG4gICAgLy8gQXBwZW5kIHplcm9zIHRvIGB4ZGAgaWYgc2hvcnRlci5cclxuICAgIC8vIERvbid0IGFkZCB6ZXJvcyB0byBgeWRgIGlmIHNob3J0ZXIgYXMgc3VidHJhY3Rpb24gb25seSBuZWVkcyB0byBzdGFydCBhdCBgeWRgIGxlbmd0aC5cclxuICAgIGZvciAoaSA9IHlkLmxlbmd0aCAtIGxlbjsgaSA+IDA7IC0taSkgeGRbbGVuKytdID0gMDtcclxuXHJcbiAgICAvLyBTdWJ0cmFjdCB5ZCBmcm9tIHhkLlxyXG4gICAgZm9yIChpID0geWQubGVuZ3RoOyBpID4gazspIHtcclxuXHJcbiAgICAgIGlmICh4ZFstLWldIDwgeWRbaV0pIHtcclxuICAgICAgICBmb3IgKGogPSBpOyBqICYmIHhkWy0tal0gPT09IDA7KSB4ZFtqXSA9IEJBU0UgLSAxO1xyXG4gICAgICAgIC0teGRbal07XHJcbiAgICAgICAgeGRbaV0gKz0gQkFTRTtcclxuICAgICAgfVxyXG5cclxuICAgICAgeGRbaV0gLT0geWRbaV07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHplcm9zLlxyXG4gICAgZm9yICg7IHhkWy0tbGVuXSA9PT0gMDspIHhkLnBvcCgpO1xyXG5cclxuICAgIC8vIFJlbW92ZSBsZWFkaW5nIHplcm9zIGFuZCBhZGp1c3QgZXhwb25lbnQgYWNjb3JkaW5nbHkuXHJcbiAgICBmb3IgKDsgeGRbMF0gPT09IDA7IHhkLnNoaWZ0KCkpIC0tZTtcclxuXHJcbiAgICAvLyBaZXJvP1xyXG4gICAgaWYgKCF4ZFswXSkgcmV0dXJuIG5ldyBDdG9yKHJtID09PSAzID8gLTAgOiAwKTtcclxuXHJcbiAgICB5LmQgPSB4ZDtcclxuICAgIHkuZSA9IGdldEJhc2UxMEV4cG9uZW50KHhkLCBlKTtcclxuXHJcbiAgICByZXR1cm4gZXh0ZXJuYWwgPyBmaW5hbGlzZSh5LCBwciwgcm0pIDogeTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiAgIG4gJSAwID0gIE5cclxuICAgKiAgIG4gJSBOID0gIE5cclxuICAgKiAgIG4gJSBJID0gIG5cclxuICAgKiAgIDAgJSBuID0gIDBcclxuICAgKiAgLTAgJSBuID0gLTBcclxuICAgKiAgIDAgJSAwID0gIE5cclxuICAgKiAgIDAgJSBOID0gIE5cclxuICAgKiAgIDAgJSBJID0gIDBcclxuICAgKiAgIE4gJSBuID0gIE5cclxuICAgKiAgIE4gJSAwID0gIE5cclxuICAgKiAgIE4gJSBOID0gIE5cclxuICAgKiAgIE4gJSBJID0gIE5cclxuICAgKiAgIEkgJSBuID0gIE5cclxuICAgKiAgIEkgJSAwID0gIE5cclxuICAgKiAgIEkgJSBOID0gIE5cclxuICAgKiAgIEkgJSBJID0gIE5cclxuICAgKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwgbW9kdWxvIGB5YCwgcm91bmRlZCB0b1xyXG4gICAqIGBwcmVjaXNpb25gIHNpZ25pZmljYW50IGRpZ2l0cyB1c2luZyByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKiBUaGUgcmVzdWx0IGRlcGVuZHMgb24gdGhlIG1vZHVsbyBtb2RlLlxyXG4gICAqXHJcbiAgICovXHJcbiAgUC5tb2R1bG8gPSBQLm1vZCA9IGZ1bmN0aW9uICh5KSB7XHJcbiAgICB2YXIgcSxcclxuICAgICAgeCA9IHRoaXMsXHJcbiAgICAgIEN0b3IgPSB4LmNvbnN0cnVjdG9yO1xyXG5cclxuICAgIHkgPSBuZXcgQ3Rvcih5KTtcclxuXHJcbiAgICAvLyBSZXR1cm4gTmFOIGlmIHggaXMgwrFJbmZpbml0eSBvciBOYU4sIG9yIHkgaXMgTmFOIG9yIMKxMC5cclxuICAgIGlmICgheC5kIHx8ICF5LnMgfHwgeS5kICYmICF5LmRbMF0pIHJldHVybiBuZXcgQ3RvcihOYU4pO1xyXG5cclxuICAgIC8vIFJldHVybiB4IGlmIHkgaXMgwrFJbmZpbml0eSBvciB4IGlzIMKxMC5cclxuICAgIGlmICgheS5kIHx8IHguZCAmJiAheC5kWzBdKSB7XHJcbiAgICAgIHJldHVybiBmaW5hbGlzZShuZXcgQ3Rvcih4KSwgQ3Rvci5wcmVjaXNpb24sIEN0b3Iucm91bmRpbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFByZXZlbnQgcm91bmRpbmcgb2YgaW50ZXJtZWRpYXRlIGNhbGN1bGF0aW9ucy5cclxuICAgIGV4dGVybmFsID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKEN0b3IubW9kdWxvID09IDkpIHtcclxuXHJcbiAgICAgIC8vIEV1Y2xpZGlhbiBkaXZpc2lvbjogcSA9IHNpZ24oeSkgKiBmbG9vcih4IC8gYWJzKHkpKVxyXG4gICAgICAvLyByZXN1bHQgPSB4IC0gcSAqIHkgICAgd2hlcmUgIDAgPD0gcmVzdWx0IDwgYWJzKHkpXHJcbiAgICAgIHEgPSBkaXZpZGUoeCwgeS5hYnMoKSwgMCwgMywgMSk7XHJcbiAgICAgIHEucyAqPSB5LnM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBxID0gZGl2aWRlKHgsIHksIDAsIEN0b3IubW9kdWxvLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBxID0gcS50aW1lcyh5KTtcclxuXHJcbiAgICBleHRlcm5hbCA9IHRydWU7XHJcblxyXG4gICAgcmV0dXJuIHgubWludXMocSk7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIG5hdHVyYWwgZXhwb25lbnRpYWwgb2YgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbCxcclxuICAgKiBpLmUuIHRoZSBiYXNlIGUgcmFpc2VkIHRvIHRoZSBwb3dlciB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsLCByb3VuZGVkIHRvIGBwcmVjaXNpb25gXHJcbiAgICogc2lnbmlmaWNhbnQgZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAubmF0dXJhbEV4cG9uZW50aWFsID0gUC5leHAgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gbmF0dXJhbEV4cG9uZW50aWFsKHRoaXMpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBuYXR1cmFsIGxvZ2FyaXRobSBvZiB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsLFxyXG4gICAqIHJvdW5kZWQgdG8gYHByZWNpc2lvbmAgc2lnbmlmaWNhbnQgZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAubmF0dXJhbExvZ2FyaXRobSA9IFAubG4gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gbmF0dXJhbExvZ2FyaXRobSh0aGlzKTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsIG5lZ2F0ZWQsIGkuZS4gYXMgaWYgbXVsdGlwbGllZCBieVxyXG4gICAqIC0xLlxyXG4gICAqXHJcbiAgICovXHJcbiAgUC5uZWdhdGVkID0gUC5uZWcgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgeCA9IG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMpO1xyXG4gICAgeC5zID0gLXgucztcclxuICAgIHJldHVybiBmaW5hbGlzZSh4KTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiAgbiArIDAgPSBuXHJcbiAgICogIG4gKyBOID0gTlxyXG4gICAqICBuICsgSSA9IElcclxuICAgKiAgMCArIG4gPSBuXHJcbiAgICogIDAgKyAwID0gMFxyXG4gICAqICAwICsgTiA9IE5cclxuICAgKiAgMCArIEkgPSBJXHJcbiAgICogIE4gKyBuID0gTlxyXG4gICAqICBOICsgMCA9IE5cclxuICAgKiAgTiArIE4gPSBOXHJcbiAgICogIE4gKyBJID0gTlxyXG4gICAqICBJICsgbiA9IElcclxuICAgKiAgSSArIDAgPSBJXHJcbiAgICogIEkgKyBOID0gTlxyXG4gICAqICBJICsgSSA9IElcclxuICAgKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwgcGx1cyBgeWAsIHJvdW5kZWQgdG8gYHByZWNpc2lvbmBcclxuICAgKiBzaWduaWZpY2FudCBkaWdpdHMgdXNpbmcgcm91bmRpbmcgbW9kZSBgcm91bmRpbmdgLlxyXG4gICAqXHJcbiAgICovXHJcbiAgUC5wbHVzID0gUC5hZGQgPSBmdW5jdGlvbiAoeSkge1xyXG4gICAgdmFyIGNhcnJ5LCBkLCBlLCBpLCBrLCBsZW4sIHByLCBybSwgeGQsIHlkLFxyXG4gICAgICB4ID0gdGhpcyxcclxuICAgICAgQ3RvciA9IHguY29uc3RydWN0b3I7XHJcblxyXG4gICAgeSA9IG5ldyBDdG9yKHkpO1xyXG5cclxuICAgIC8vIElmIGVpdGhlciBpcyBub3QgZmluaXRlLi4uXHJcbiAgICBpZiAoIXguZCB8fCAheS5kKSB7XHJcblxyXG4gICAgICAvLyBSZXR1cm4gTmFOIGlmIGVpdGhlciBpcyBOYU4uXHJcbiAgICAgIGlmICgheC5zIHx8ICF5LnMpIHkgPSBuZXcgQ3RvcihOYU4pO1xyXG5cclxuICAgICAgLy8gUmV0dXJuIHggaWYgeSBpcyBmaW5pdGUgYW5kIHggaXMgwrFJbmZpbml0eS5cclxuICAgICAgLy8gUmV0dXJuIHggaWYgYm90aCBhcmUgwrFJbmZpbml0eSB3aXRoIHRoZSBzYW1lIHNpZ24uXHJcbiAgICAgIC8vIFJldHVybiBOYU4gaWYgYm90aCBhcmUgwrFJbmZpbml0eSB3aXRoIGRpZmZlcmVudCBzaWducy5cclxuICAgICAgLy8gUmV0dXJuIHkgaWYgeCBpcyBmaW5pdGUgYW5kIHkgaXMgwrFJbmZpbml0eS5cclxuICAgICAgZWxzZSBpZiAoIXguZCkgeSA9IG5ldyBDdG9yKHkuZCB8fCB4LnMgPT09IHkucyA/IHggOiBOYU4pO1xyXG5cclxuICAgICAgcmV0dXJuIHk7XHJcbiAgICB9XHJcblxyXG4gICAgIC8vIElmIHNpZ25zIGRpZmZlci4uLlxyXG4gICAgaWYgKHgucyAhPSB5LnMpIHtcclxuICAgICAgeS5zID0gLXkucztcclxuICAgICAgcmV0dXJuIHgubWludXMoeSk7XHJcbiAgICB9XHJcblxyXG4gICAgeGQgPSB4LmQ7XHJcbiAgICB5ZCA9IHkuZDtcclxuICAgIHByID0gQ3Rvci5wcmVjaXNpb247XHJcbiAgICBybSA9IEN0b3Iucm91bmRpbmc7XHJcblxyXG4gICAgLy8gSWYgZWl0aGVyIGlzIHplcm8uLi5cclxuICAgIGlmICgheGRbMF0gfHwgIXlkWzBdKSB7XHJcblxyXG4gICAgICAvLyBSZXR1cm4geCBpZiB5IGlzIHplcm8uXHJcbiAgICAgIC8vIFJldHVybiB5IGlmIHkgaXMgbm9uLXplcm8uXHJcbiAgICAgIGlmICgheWRbMF0pIHkgPSBuZXcgQ3Rvcih4KTtcclxuXHJcbiAgICAgIHJldHVybiBleHRlcm5hbCA/IGZpbmFsaXNlKHksIHByLCBybSkgOiB5O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHggYW5kIHkgYXJlIGZpbml0ZSwgbm9uLXplcm8gbnVtYmVycyB3aXRoIHRoZSBzYW1lIHNpZ24uXHJcblxyXG4gICAgLy8gQ2FsY3VsYXRlIGJhc2UgMWU3IGV4cG9uZW50cy5cclxuICAgIGsgPSBtYXRoZmxvb3IoeC5lIC8gTE9HX0JBU0UpO1xyXG4gICAgZSA9IG1hdGhmbG9vcih5LmUgLyBMT0dfQkFTRSk7XHJcblxyXG4gICAgeGQgPSB4ZC5zbGljZSgpO1xyXG4gICAgaSA9IGsgLSBlO1xyXG5cclxuICAgIC8vIElmIGJhc2UgMWU3IGV4cG9uZW50cyBkaWZmZXIuLi5cclxuICAgIGlmIChpKSB7XHJcblxyXG4gICAgICBpZiAoaSA8IDApIHtcclxuICAgICAgICBkID0geGQ7XHJcbiAgICAgICAgaSA9IC1pO1xyXG4gICAgICAgIGxlbiA9IHlkLmxlbmd0aDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkID0geWQ7XHJcbiAgICAgICAgZSA9IGs7XHJcbiAgICAgICAgbGVuID0geGQubGVuZ3RoO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBMaW1pdCBudW1iZXIgb2YgemVyb3MgcHJlcGVuZGVkIHRvIG1heChjZWlsKHByIC8gTE9HX0JBU0UpLCBsZW4pICsgMS5cclxuICAgICAgayA9IE1hdGguY2VpbChwciAvIExPR19CQVNFKTtcclxuICAgICAgbGVuID0gayA+IGxlbiA/IGsgKyAxIDogbGVuICsgMTtcclxuXHJcbiAgICAgIGlmIChpID4gbGVuKSB7XHJcbiAgICAgICAgaSA9IGxlbjtcclxuICAgICAgICBkLmxlbmd0aCA9IDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFByZXBlbmQgemVyb3MgdG8gZXF1YWxpc2UgZXhwb25lbnRzLiBOb3RlOiBGYXN0ZXIgdG8gdXNlIHJldmVyc2UgdGhlbiBkbyB1bnNoaWZ0cy5cclxuICAgICAgZC5yZXZlcnNlKCk7XHJcbiAgICAgIGZvciAoOyBpLS07KSBkLnB1c2goMCk7XHJcbiAgICAgIGQucmV2ZXJzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGxlbiA9IHhkLmxlbmd0aDtcclxuICAgIGkgPSB5ZC5sZW5ndGg7XHJcblxyXG4gICAgLy8gSWYgeWQgaXMgbG9uZ2VyIHRoYW4geGQsIHN3YXAgeGQgYW5kIHlkIHNvIHhkIHBvaW50cyB0byB0aGUgbG9uZ2VyIGFycmF5LlxyXG4gICAgaWYgKGxlbiAtIGkgPCAwKSB7XHJcbiAgICAgIGkgPSBsZW47XHJcbiAgICAgIGQgPSB5ZDtcclxuICAgICAgeWQgPSB4ZDtcclxuICAgICAgeGQgPSBkO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIE9ubHkgc3RhcnQgYWRkaW5nIGF0IHlkLmxlbmd0aCAtIDEgYXMgdGhlIGZ1cnRoZXIgZGlnaXRzIG9mIHhkIGNhbiBiZSBsZWZ0IGFzIHRoZXkgYXJlLlxyXG4gICAgZm9yIChjYXJyeSA9IDA7IGk7KSB7XHJcbiAgICAgIGNhcnJ5ID0gKHhkWy0taV0gPSB4ZFtpXSArIHlkW2ldICsgY2FycnkpIC8gQkFTRSB8IDA7XHJcbiAgICAgIHhkW2ldICU9IEJBU0U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNhcnJ5KSB7XHJcbiAgICAgIHhkLnVuc2hpZnQoY2FycnkpO1xyXG4gICAgICArK2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHplcm9zLlxyXG4gICAgLy8gTm8gbmVlZCB0byBjaGVjayBmb3IgemVybywgYXMgK3ggKyAreSAhPSAwICYmIC14ICsgLXkgIT0gMFxyXG4gICAgZm9yIChsZW4gPSB4ZC5sZW5ndGg7IHhkWy0tbGVuXSA9PSAwOykgeGQucG9wKCk7XHJcblxyXG4gICAgeS5kID0geGQ7XHJcbiAgICB5LmUgPSBnZXRCYXNlMTBFeHBvbmVudCh4ZCwgZSk7XHJcblxyXG4gICAgcmV0dXJuIGV4dGVybmFsID8gZmluYWxpc2UoeSwgcHIsIHJtKSA6IHk7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIG9mIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwuXHJcbiAgICpcclxuICAgKiBbel0ge2Jvb2xlYW58bnVtYmVyfSBXaGV0aGVyIHRvIGNvdW50IGludGVnZXItcGFydCB0cmFpbGluZyB6ZXJvczogdHJ1ZSwgZmFsc2UsIDEgb3IgMC5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAucHJlY2lzaW9uID0gUC5zZCA9IGZ1bmN0aW9uICh6KSB7XHJcbiAgICB2YXIgayxcclxuICAgICAgeCA9IHRoaXM7XHJcblxyXG4gICAgaWYgKHogIT09IHZvaWQgMCAmJiB6ICE9PSAhIXogJiYgeiAhPT0gMSAmJiB6ICE9PSAwKSB0aHJvdyBFcnJvcihpbnZhbGlkQXJndW1lbnQgKyB6KTtcclxuXHJcbiAgICBpZiAoeC5kKSB7XHJcbiAgICAgIGsgPSBnZXRQcmVjaXNpb24oeC5kKTtcclxuICAgICAgaWYgKHogJiYgeC5lICsgMSA+IGspIGsgPSB4LmUgKyAxO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgayA9IE5hTjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaztcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsIHJvdW5kZWQgdG8gYSB3aG9sZSBudW1iZXIgdXNpbmdcclxuICAgKiByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKi9cclxuICBQLnJvdW5kID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIHggPSB0aGlzLFxyXG4gICAgICBDdG9yID0geC5jb25zdHJ1Y3RvcjtcclxuXHJcbiAgICByZXR1cm4gZmluYWxpc2UobmV3IEN0b3IoeCksIHguZSArIDEsIEN0b3Iucm91bmRpbmcpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBzaW5lIG9mIHRoZSB2YWx1ZSBpbiByYWRpYW5zIG9mIHRoaXMgRGVjaW1hbC5cclxuICAgKlxyXG4gICAqIERvbWFpbjogWy1JbmZpbml0eSwgSW5maW5pdHldXHJcbiAgICogUmFuZ2U6IFstMSwgMV1cclxuICAgKlxyXG4gICAqIHNpbih4KSA9IHggLSB4XjMvMyEgKyB4XjUvNSEgLSAuLi5cclxuICAgKlxyXG4gICAqIHNpbigwKSAgICAgICAgID0gMFxyXG4gICAqIHNpbigtMCkgICAgICAgID0gLTBcclxuICAgKiBzaW4oSW5maW5pdHkpICA9IE5hTlxyXG4gICAqIHNpbigtSW5maW5pdHkpID0gTmFOXHJcbiAgICogc2luKE5hTikgICAgICAgPSBOYU5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAuc2luZSA9IFAuc2luID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIHByLCBybSxcclxuICAgICAgeCA9IHRoaXMsXHJcbiAgICAgIEN0b3IgPSB4LmNvbnN0cnVjdG9yO1xyXG5cclxuICAgIGlmICgheC5pc0Zpbml0ZSgpKSByZXR1cm4gbmV3IEN0b3IoTmFOKTtcclxuICAgIGlmICh4LmlzWmVybygpKSByZXR1cm4gbmV3IEN0b3IoeCk7XHJcblxyXG4gICAgcHIgPSBDdG9yLnByZWNpc2lvbjtcclxuICAgIHJtID0gQ3Rvci5yb3VuZGluZztcclxuICAgIEN0b3IucHJlY2lzaW9uID0gcHIgKyBNYXRoLm1heCh4LmUsIHguc2QoKSkgKyBMT0dfQkFTRTtcclxuICAgIEN0b3Iucm91bmRpbmcgPSAxO1xyXG5cclxuICAgIHggPSBzaW5lKEN0b3IsIHRvTGVzc1RoYW5IYWxmUGkoQ3RvciwgeCkpO1xyXG5cclxuICAgIEN0b3IucHJlY2lzaW9uID0gcHI7XHJcbiAgICBDdG9yLnJvdW5kaW5nID0gcm07XHJcblxyXG4gICAgcmV0dXJuIGZpbmFsaXNlKHF1YWRyYW50ID4gMiA/IHgubmVnKCkgOiB4LCBwciwgcm0sIHRydWUpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBzcXVhcmUgcm9vdCBvZiB0aGlzIERlY2ltYWwsIHJvdW5kZWQgdG8gYHByZWNpc2lvbmBcclxuICAgKiBzaWduaWZpY2FudCBkaWdpdHMgdXNpbmcgcm91bmRpbmcgbW9kZSBgcm91bmRpbmdgLlxyXG4gICAqXHJcbiAgICogIHNxcnQoLW4pID0gIE5cclxuICAgKiAgc3FydChOKSAgPSAgTlxyXG4gICAqICBzcXJ0KC1JKSA9ICBOXHJcbiAgICogIHNxcnQoSSkgID0gIElcclxuICAgKiAgc3FydCgwKSAgPSAgMFxyXG4gICAqICBzcXJ0KC0wKSA9IC0wXHJcbiAgICpcclxuICAgKi9cclxuICBQLnNxdWFyZVJvb3QgPSBQLnNxcnQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgbSwgbiwgc2QsIHIsIHJlcCwgdCxcclxuICAgICAgeCA9IHRoaXMsXHJcbiAgICAgIGQgPSB4LmQsXHJcbiAgICAgIGUgPSB4LmUsXHJcbiAgICAgIHMgPSB4LnMsXHJcbiAgICAgIEN0b3IgPSB4LmNvbnN0cnVjdG9yO1xyXG5cclxuICAgIC8vIE5lZ2F0aXZlL05hTi9JbmZpbml0eS96ZXJvP1xyXG4gICAgaWYgKHMgIT09IDEgfHwgIWQgfHwgIWRbMF0pIHtcclxuICAgICAgcmV0dXJuIG5ldyBDdG9yKCFzIHx8IHMgPCAwICYmICghZCB8fCBkWzBdKSA/IE5hTiA6IGQgPyB4IDogMSAvIDApO1xyXG4gICAgfVxyXG5cclxuICAgIGV4dGVybmFsID0gZmFsc2U7XHJcblxyXG4gICAgLy8gSW5pdGlhbCBlc3RpbWF0ZS5cclxuICAgIHMgPSBNYXRoLnNxcnQoK3gpO1xyXG5cclxuICAgIC8vIE1hdGguc3FydCB1bmRlcmZsb3cvb3ZlcmZsb3c/XHJcbiAgICAvLyBQYXNzIHggdG8gTWF0aC5zcXJ0IGFzIGludGVnZXIsIHRoZW4gYWRqdXN0IHRoZSBleHBvbmVudCBvZiB0aGUgcmVzdWx0LlxyXG4gICAgaWYgKHMgPT0gMCB8fCBzID09IDEgLyAwKSB7XHJcbiAgICAgIG4gPSBkaWdpdHNUb1N0cmluZyhkKTtcclxuXHJcbiAgICAgIGlmICgobi5sZW5ndGggKyBlKSAlIDIgPT0gMCkgbiArPSAnMCc7XHJcbiAgICAgIHMgPSBNYXRoLnNxcnQobik7XHJcbiAgICAgIGUgPSBtYXRoZmxvb3IoKGUgKyAxKSAvIDIpIC0gKGUgPCAwIHx8IGUgJSAyKTtcclxuXHJcbiAgICAgIGlmIChzID09IDEgLyAwKSB7XHJcbiAgICAgICAgbiA9ICc1ZScgKyBlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG4gPSBzLnRvRXhwb25lbnRpYWwoKTtcclxuICAgICAgICBuID0gbi5zbGljZSgwLCBuLmluZGV4T2YoJ2UnKSArIDEpICsgZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgciA9IG5ldyBDdG9yKG4pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgciA9IG5ldyBDdG9yKHMudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2QgPSAoZSA9IEN0b3IucHJlY2lzaW9uKSArIDM7XHJcblxyXG4gICAgLy8gTmV3dG9uLVJhcGhzb24gaXRlcmF0aW9uLlxyXG4gICAgZm9yICg7Oykge1xyXG4gICAgICB0ID0gcjtcclxuICAgICAgciA9IHQucGx1cyhkaXZpZGUoeCwgdCwgc2QgKyAyLCAxKSkudGltZXMoMC41KTtcclxuXHJcbiAgICAgIC8vIFRPRE8/IFJlcGxhY2Ugd2l0aCBmb3ItbG9vcCBhbmQgY2hlY2tSb3VuZGluZ0RpZ2l0cy5cclxuICAgICAgaWYgKGRpZ2l0c1RvU3RyaW5nKHQuZCkuc2xpY2UoMCwgc2QpID09PSAobiA9IGRpZ2l0c1RvU3RyaW5nKHIuZCkpLnNsaWNlKDAsIHNkKSkge1xyXG4gICAgICAgIG4gPSBuLnNsaWNlKHNkIC0gMywgc2QgKyAxKTtcclxuXHJcbiAgICAgICAgLy8gVGhlIDR0aCByb3VuZGluZyBkaWdpdCBtYXkgYmUgaW4gZXJyb3IgYnkgLTEgc28gaWYgdGhlIDQgcm91bmRpbmcgZGlnaXRzIGFyZSA5OTk5IG9yXHJcbiAgICAgICAgLy8gNDk5OSwgaS5lLiBhcHByb2FjaGluZyBhIHJvdW5kaW5nIGJvdW5kYXJ5LCBjb250aW51ZSB0aGUgaXRlcmF0aW9uLlxyXG4gICAgICAgIGlmIChuID09ICc5OTk5JyB8fCAhcmVwICYmIG4gPT0gJzQ5OTknKSB7XHJcblxyXG4gICAgICAgICAgLy8gT24gdGhlIGZpcnN0IGl0ZXJhdGlvbiBvbmx5LCBjaGVjayB0byBzZWUgaWYgcm91bmRpbmcgdXAgZ2l2ZXMgdGhlIGV4YWN0IHJlc3VsdCBhcyB0aGVcclxuICAgICAgICAgIC8vIG5pbmVzIG1heSBpbmZpbml0ZWx5IHJlcGVhdC5cclxuICAgICAgICAgIGlmICghcmVwKSB7XHJcbiAgICAgICAgICAgIGZpbmFsaXNlKHQsIGUgKyAxLCAwKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0LnRpbWVzKHQpLmVxKHgpKSB7XHJcbiAgICAgICAgICAgICAgciA9IHQ7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBzZCArPSA0O1xyXG4gICAgICAgICAgcmVwID0gMTtcclxuICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICAgIC8vIElmIHRoZSByb3VuZGluZyBkaWdpdHMgYXJlIG51bGwsIDB7MCw0fSBvciA1MHswLDN9LCBjaGVjayBmb3IgYW4gZXhhY3QgcmVzdWx0LlxyXG4gICAgICAgICAgLy8gSWYgbm90LCB0aGVuIHRoZXJlIGFyZSBmdXJ0aGVyIGRpZ2l0cyBhbmQgbSB3aWxsIGJlIHRydXRoeS5cclxuICAgICAgICAgIGlmICghK24gfHwgIStuLnNsaWNlKDEpICYmIG4uY2hhckF0KDApID09ICc1Jykge1xyXG5cclxuICAgICAgICAgICAgLy8gVHJ1bmNhdGUgdG8gdGhlIGZpcnN0IHJvdW5kaW5nIGRpZ2l0LlxyXG4gICAgICAgICAgICBmaW5hbGlzZShyLCBlICsgMSwgMSk7XHJcbiAgICAgICAgICAgIG0gPSAhci50aW1lcyhyKS5lcSh4KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleHRlcm5hbCA9IHRydWU7XHJcblxyXG4gICAgcmV0dXJuIGZpbmFsaXNlKHIsIGUsIEN0b3Iucm91bmRpbmcsIG0pO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSB0YW5nZW50IG9mIHRoZSB2YWx1ZSBpbiByYWRpYW5zIG9mIHRoaXMgRGVjaW1hbC5cclxuICAgKlxyXG4gICAqIERvbWFpbjogWy1JbmZpbml0eSwgSW5maW5pdHldXHJcbiAgICogUmFuZ2U6IFstSW5maW5pdHksIEluZmluaXR5XVxyXG4gICAqXHJcbiAgICogdGFuKDApICAgICAgICAgPSAwXHJcbiAgICogdGFuKC0wKSAgICAgICAgPSAtMFxyXG4gICAqIHRhbihJbmZpbml0eSkgID0gTmFOXHJcbiAgICogdGFuKC1JbmZpbml0eSkgPSBOYU5cclxuICAgKiB0YW4oTmFOKSAgICAgICA9IE5hTlxyXG4gICAqXHJcbiAgICovXHJcbiAgUC50YW5nZW50ID0gUC50YW4gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgcHIsIHJtLFxyXG4gICAgICB4ID0gdGhpcyxcclxuICAgICAgQ3RvciA9IHguY29uc3RydWN0b3I7XHJcblxyXG4gICAgaWYgKCF4LmlzRmluaXRlKCkpIHJldHVybiBuZXcgQ3RvcihOYU4pO1xyXG4gICAgaWYgKHguaXNaZXJvKCkpIHJldHVybiBuZXcgQ3Rvcih4KTtcclxuXHJcbiAgICBwciA9IEN0b3IucHJlY2lzaW9uO1xyXG4gICAgcm0gPSBDdG9yLnJvdW5kaW5nO1xyXG4gICAgQ3Rvci5wcmVjaXNpb24gPSBwciArIDEwO1xyXG4gICAgQ3Rvci5yb3VuZGluZyA9IDE7XHJcblxyXG4gICAgeCA9IHguc2luKCk7XHJcbiAgICB4LnMgPSAxO1xyXG4gICAgeCA9IGRpdmlkZSh4LCBuZXcgQ3RvcigxKS5taW51cyh4LnRpbWVzKHgpKS5zcXJ0KCksIHByICsgMTAsIDApO1xyXG5cclxuICAgIEN0b3IucHJlY2lzaW9uID0gcHI7XHJcbiAgICBDdG9yLnJvdW5kaW5nID0gcm07XHJcblxyXG4gICAgcmV0dXJuIGZpbmFsaXNlKHF1YWRyYW50ID09IDIgfHwgcXVhZHJhbnQgPT0gNCA/IHgubmVnKCkgOiB4LCBwciwgcm0sIHRydWUpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqICBuICogMCA9IDBcclxuICAgKiAgbiAqIE4gPSBOXHJcbiAgICogIG4gKiBJID0gSVxyXG4gICAqICAwICogbiA9IDBcclxuICAgKiAgMCAqIDAgPSAwXHJcbiAgICogIDAgKiBOID0gTlxyXG4gICAqICAwICogSSA9IE5cclxuICAgKiAgTiAqIG4gPSBOXHJcbiAgICogIE4gKiAwID0gTlxyXG4gICAqICBOICogTiA9IE5cclxuICAgKiAgTiAqIEkgPSBOXHJcbiAgICogIEkgKiBuID0gSVxyXG4gICAqICBJICogMCA9IE5cclxuICAgKiAgSSAqIE4gPSBOXHJcbiAgICogIEkgKiBJID0gSVxyXG4gICAqXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhpcyBEZWNpbWFsIHRpbWVzIGB5YCwgcm91bmRlZCB0byBgcHJlY2lzaW9uYCBzaWduaWZpY2FudFxyXG4gICAqIGRpZ2l0cyB1c2luZyByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKi9cclxuICBQLnRpbWVzID0gUC5tdWwgPSBmdW5jdGlvbiAoeSkge1xyXG4gICAgdmFyIGNhcnJ5LCBlLCBpLCBrLCByLCByTCwgdCwgeGRMLCB5ZEwsXHJcbiAgICAgIHggPSB0aGlzLFxyXG4gICAgICBDdG9yID0geC5jb25zdHJ1Y3RvcixcclxuICAgICAgeGQgPSB4LmQsXHJcbiAgICAgIHlkID0gKHkgPSBuZXcgQ3Rvcih5KSkuZDtcclxuXHJcbiAgICB5LnMgKj0geC5zO1xyXG5cclxuICAgICAvLyBJZiBlaXRoZXIgaXMgTmFOLCDCsUluZmluaXR5IG9yIMKxMC4uLlxyXG4gICAgaWYgKCF4ZCB8fCAheGRbMF0gfHwgIXlkIHx8ICF5ZFswXSkge1xyXG5cclxuICAgICAgcmV0dXJuIG5ldyBDdG9yKCF5LnMgfHwgeGQgJiYgIXhkWzBdICYmICF5ZCB8fCB5ZCAmJiAheWRbMF0gJiYgIXhkXHJcblxyXG4gICAgICAgIC8vIFJldHVybiBOYU4gaWYgZWl0aGVyIGlzIE5hTi5cclxuICAgICAgICAvLyBSZXR1cm4gTmFOIGlmIHggaXMgwrEwIGFuZCB5IGlzIMKxSW5maW5pdHksIG9yIHkgaXMgwrEwIGFuZCB4IGlzIMKxSW5maW5pdHkuXHJcbiAgICAgICAgPyBOYU5cclxuXHJcbiAgICAgICAgLy8gUmV0dXJuIMKxSW5maW5pdHkgaWYgZWl0aGVyIGlzIMKxSW5maW5pdHkuXHJcbiAgICAgICAgLy8gUmV0dXJuIMKxMCBpZiBlaXRoZXIgaXMgwrEwLlxyXG4gICAgICAgIDogIXhkIHx8ICF5ZCA/IHkucyAvIDAgOiB5LnMgKiAwKTtcclxuICAgIH1cclxuXHJcbiAgICBlID0gbWF0aGZsb29yKHguZSAvIExPR19CQVNFKSArIG1hdGhmbG9vcih5LmUgLyBMT0dfQkFTRSk7XHJcbiAgICB4ZEwgPSB4ZC5sZW5ndGg7XHJcbiAgICB5ZEwgPSB5ZC5sZW5ndGg7XHJcblxyXG4gICAgLy8gRW5zdXJlIHhkIHBvaW50cyB0byB0aGUgbG9uZ2VyIGFycmF5LlxyXG4gICAgaWYgKHhkTCA8IHlkTCkge1xyXG4gICAgICByID0geGQ7XHJcbiAgICAgIHhkID0geWQ7XHJcbiAgICAgIHlkID0gcjtcclxuICAgICAgckwgPSB4ZEw7XHJcbiAgICAgIHhkTCA9IHlkTDtcclxuICAgICAgeWRMID0gckw7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSW5pdGlhbGlzZSB0aGUgcmVzdWx0IGFycmF5IHdpdGggemVyb3MuXHJcbiAgICByID0gW107XHJcbiAgICByTCA9IHhkTCArIHlkTDtcclxuICAgIGZvciAoaSA9IHJMOyBpLS07KSByLnB1c2goMCk7XHJcblxyXG4gICAgLy8gTXVsdGlwbHkhXHJcbiAgICBmb3IgKGkgPSB5ZEw7IC0taSA+PSAwOykge1xyXG4gICAgICBjYXJyeSA9IDA7XHJcbiAgICAgIGZvciAoayA9IHhkTCArIGk7IGsgPiBpOykge1xyXG4gICAgICAgIHQgPSByW2tdICsgeWRbaV0gKiB4ZFtrIC0gaSAtIDFdICsgY2Fycnk7XHJcbiAgICAgICAgcltrLS1dID0gdCAlIEJBU0UgfCAwO1xyXG4gICAgICAgIGNhcnJ5ID0gdCAvIEJBU0UgfCAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByW2tdID0gKHJba10gKyBjYXJyeSkgJSBCQVNFIHwgMDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZW1vdmUgdHJhaWxpbmcgemVyb3MuXHJcbiAgICBmb3IgKDsgIXJbLS1yTF07KSByLnBvcCgpO1xyXG5cclxuICAgIGlmIChjYXJyeSkgKytlO1xyXG4gICAgZWxzZSByLnNoaWZ0KCk7XHJcblxyXG4gICAgeS5kID0gcjtcclxuICAgIHkuZSA9IGdldEJhc2UxMEV4cG9uZW50KHIsIGUpO1xyXG5cclxuICAgIHJldHVybiBleHRlcm5hbCA/IGZpbmFsaXNlKHksIEN0b3IucHJlY2lzaW9uLCBDdG9yLnJvdW5kaW5nKSA6IHk7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsIGluIGJhc2UgMiwgcm91bmQgdG8gYHNkYCBzaWduaWZpY2FudFxyXG4gICAqIGRpZ2l0cyB1c2luZyByb3VuZGluZyBtb2RlIGBybWAuXHJcbiAgICpcclxuICAgKiBJZiB0aGUgb3B0aW9uYWwgYHNkYCBhcmd1bWVudCBpcyBwcmVzZW50IHRoZW4gcmV0dXJuIGJpbmFyeSBleHBvbmVudGlhbCBub3RhdGlvbi5cclxuICAgKlxyXG4gICAqIFtzZF0ge251bWJlcn0gU2lnbmlmaWNhbnQgZGlnaXRzLiBJbnRlZ2VyLCAxIHRvIE1BWF9ESUdJVFMgaW5jbHVzaXZlLlxyXG4gICAqIFtybV0ge251bWJlcn0gUm91bmRpbmcgbW9kZS4gSW50ZWdlciwgMCB0byA4IGluY2x1c2l2ZS5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAudG9CaW5hcnkgPSBmdW5jdGlvbiAoc2QsIHJtKSB7XHJcbiAgICByZXR1cm4gdG9TdHJpbmdCaW5hcnkodGhpcywgMiwgc2QsIHJtKTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsIHJvdW5kZWQgdG8gYSBtYXhpbXVtIG9mIGBkcGBcclxuICAgKiBkZWNpbWFsIHBsYWNlcyB1c2luZyByb3VuZGluZyBtb2RlIGBybWAgb3IgYHJvdW5kaW5nYCBpZiBgcm1gIGlzIG9taXR0ZWQuXHJcbiAgICpcclxuICAgKiBJZiBgZHBgIGlzIG9taXR0ZWQsIHJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwuXHJcbiAgICpcclxuICAgKiBbZHBdIHtudW1iZXJ9IERlY2ltYWwgcGxhY2VzLiBJbnRlZ2VyLCAwIHRvIE1BWF9ESUdJVFMgaW5jbHVzaXZlLlxyXG4gICAqIFtybV0ge251bWJlcn0gUm91bmRpbmcgbW9kZS4gSW50ZWdlciwgMCB0byA4IGluY2x1c2l2ZS5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAudG9EZWNpbWFsUGxhY2VzID0gUC50b0RQID0gZnVuY3Rpb24gKGRwLCBybSkge1xyXG4gICAgdmFyIHggPSB0aGlzLFxyXG4gICAgICBDdG9yID0geC5jb25zdHJ1Y3RvcjtcclxuXHJcbiAgICB4ID0gbmV3IEN0b3IoeCk7XHJcbiAgICBpZiAoZHAgPT09IHZvaWQgMCkgcmV0dXJuIHg7XHJcblxyXG4gICAgY2hlY2tJbnQzMihkcCwgMCwgTUFYX0RJR0lUUyk7XHJcblxyXG4gICAgaWYgKHJtID09PSB2b2lkIDApIHJtID0gQ3Rvci5yb3VuZGluZztcclxuICAgIGVsc2UgY2hlY2tJbnQzMihybSwgMCwgOCk7XHJcblxyXG4gICAgcmV0dXJuIGZpbmFsaXNlKHgsIGRwICsgeC5lICsgMSwgcm0pO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbCBpbiBleHBvbmVudGlhbCBub3RhdGlvbiByb3VuZGVkIHRvXHJcbiAgICogYGRwYCBmaXhlZCBkZWNpbWFsIHBsYWNlcyB1c2luZyByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKiBbZHBdIHtudW1iZXJ9IERlY2ltYWwgcGxhY2VzLiBJbnRlZ2VyLCAwIHRvIE1BWF9ESUdJVFMgaW5jbHVzaXZlLlxyXG4gICAqIFtybV0ge251bWJlcn0gUm91bmRpbmcgbW9kZS4gSW50ZWdlciwgMCB0byA4IGluY2x1c2l2ZS5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAudG9FeHBvbmVudGlhbCA9IGZ1bmN0aW9uIChkcCwgcm0pIHtcclxuICAgIHZhciBzdHIsXHJcbiAgICAgIHggPSB0aGlzLFxyXG4gICAgICBDdG9yID0geC5jb25zdHJ1Y3RvcjtcclxuXHJcbiAgICBpZiAoZHAgPT09IHZvaWQgMCkge1xyXG4gICAgICBzdHIgPSBmaW5pdGVUb1N0cmluZyh4LCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNoZWNrSW50MzIoZHAsIDAsIE1BWF9ESUdJVFMpO1xyXG5cclxuICAgICAgaWYgKHJtID09PSB2b2lkIDApIHJtID0gQ3Rvci5yb3VuZGluZztcclxuICAgICAgZWxzZSBjaGVja0ludDMyKHJtLCAwLCA4KTtcclxuXHJcbiAgICAgIHggPSBmaW5hbGlzZShuZXcgQ3Rvcih4KSwgZHAgKyAxLCBybSk7XHJcbiAgICAgIHN0ciA9IGZpbml0ZVRvU3RyaW5nKHgsIHRydWUsIGRwICsgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHguaXNOZWcoKSAmJiAheC5pc1plcm8oKSA/ICctJyArIHN0ciA6IHN0cjtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwgaW4gbm9ybWFsIChmaXhlZC1wb2ludCkgbm90YXRpb24gdG9cclxuICAgKiBgZHBgIGZpeGVkIGRlY2ltYWwgcGxhY2VzIGFuZCByb3VuZGVkIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJtYCBvciBgcm91bmRpbmdgIGlmIGBybWAgaXNcclxuICAgKiBvbWl0dGVkLlxyXG4gICAqXHJcbiAgICogQXMgd2l0aCBKYXZhU2NyaXB0IG51bWJlcnMsICgtMCkudG9GaXhlZCgwKSBpcyAnMCcsIGJ1dCBlLmcuICgtMC4wMDAwMSkudG9GaXhlZCgwKSBpcyAnLTAnLlxyXG4gICAqXHJcbiAgICogW2RwXSB7bnVtYmVyfSBEZWNpbWFsIHBsYWNlcy4gSW50ZWdlciwgMCB0byBNQVhfRElHSVRTIGluY2x1c2l2ZS5cclxuICAgKiBbcm1dIHtudW1iZXJ9IFJvdW5kaW5nIG1vZGUuIEludGVnZXIsIDAgdG8gOCBpbmNsdXNpdmUuXHJcbiAgICpcclxuICAgKiAoLTApLnRvRml4ZWQoMCkgaXMgJzAnLCBidXQgKC0wLjEpLnRvRml4ZWQoMCkgaXMgJy0wJy5cclxuICAgKiAoLTApLnRvRml4ZWQoMSkgaXMgJzAuMCcsIGJ1dCAoLTAuMDEpLnRvRml4ZWQoMSkgaXMgJy0wLjAnLlxyXG4gICAqICgtMCkudG9GaXhlZCgzKSBpcyAnMC4wMDAnLlxyXG4gICAqICgtMC41KS50b0ZpeGVkKDApIGlzICctMCcuXHJcbiAgICpcclxuICAgKi9cclxuICBQLnRvRml4ZWQgPSBmdW5jdGlvbiAoZHAsIHJtKSB7XHJcbiAgICB2YXIgc3RyLCB5LFxyXG4gICAgICB4ID0gdGhpcyxcclxuICAgICAgQ3RvciA9IHguY29uc3RydWN0b3I7XHJcblxyXG4gICAgaWYgKGRwID09PSB2b2lkIDApIHtcclxuICAgICAgc3RyID0gZmluaXRlVG9TdHJpbmcoeCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjaGVja0ludDMyKGRwLCAwLCBNQVhfRElHSVRTKTtcclxuXHJcbiAgICAgIGlmIChybSA9PT0gdm9pZCAwKSBybSA9IEN0b3Iucm91bmRpbmc7XHJcbiAgICAgIGVsc2UgY2hlY2tJbnQzMihybSwgMCwgOCk7XHJcblxyXG4gICAgICB5ID0gZmluYWxpc2UobmV3IEN0b3IoeCksIGRwICsgeC5lICsgMSwgcm0pO1xyXG4gICAgICBzdHIgPSBmaW5pdGVUb1N0cmluZyh5LCBmYWxzZSwgZHAgKyB5LmUgKyAxKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUbyBkZXRlcm1pbmUgd2hldGhlciB0byBhZGQgdGhlIG1pbnVzIHNpZ24gbG9vayBhdCB0aGUgdmFsdWUgYmVmb3JlIGl0IHdhcyByb3VuZGVkLFxyXG4gICAgLy8gaS5lLiBsb29rIGF0IGB4YCByYXRoZXIgdGhhbiBgeWAuXHJcbiAgICByZXR1cm4geC5pc05lZygpICYmICF4LmlzWmVybygpID8gJy0nICsgc3RyIDogc3RyO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhbiBhcnJheSByZXByZXNlbnRpbmcgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbCBhcyBhIHNpbXBsZSBmcmFjdGlvbiB3aXRoIGFuIGludGVnZXJcclxuICAgKiBudW1lcmF0b3IgYW5kIGFuIGludGVnZXIgZGVub21pbmF0b3IuXHJcbiAgICpcclxuICAgKiBUaGUgZGVub21pbmF0b3Igd2lsbCBiZSBhIHBvc2l0aXZlIG5vbi16ZXJvIHZhbHVlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIG1heGltdW1cclxuICAgKiBkZW5vbWluYXRvci4gSWYgYSBtYXhpbXVtIGRlbm9taW5hdG9yIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBkZW5vbWluYXRvciB3aWxsIGJlIHRoZSBsb3dlc3RcclxuICAgKiB2YWx1ZSBuZWNlc3NhcnkgdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgZXhhY3RseS5cclxuICAgKlxyXG4gICAqIFttYXhEXSB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfSBNYXhpbXVtIGRlbm9taW5hdG9yLiBJbnRlZ2VyID49IDEgYW5kIDwgSW5maW5pdHkuXHJcbiAgICpcclxuICAgKi9cclxuICBQLnRvRnJhY3Rpb24gPSBmdW5jdGlvbiAobWF4RCkge1xyXG4gICAgdmFyIGQsIGQwLCBkMSwgZDIsIGUsIGssIG4sIG4wLCBuMSwgcHIsIHEsIHIsXHJcbiAgICAgIHggPSB0aGlzLFxyXG4gICAgICB4ZCA9IHguZCxcclxuICAgICAgQ3RvciA9IHguY29uc3RydWN0b3I7XHJcblxyXG4gICAgaWYgKCF4ZCkgcmV0dXJuIG5ldyBDdG9yKHgpO1xyXG5cclxuICAgIG4xID0gZDAgPSBuZXcgQ3RvcigxKTtcclxuICAgIGQxID0gbjAgPSBuZXcgQ3RvcigwKTtcclxuXHJcbiAgICBkID0gbmV3IEN0b3IoZDEpO1xyXG4gICAgZSA9IGQuZSA9IGdldFByZWNpc2lvbih4ZCkgLSB4LmUgLSAxO1xyXG4gICAgayA9IGUgJSBMT0dfQkFTRTtcclxuICAgIGQuZFswXSA9IG1hdGhwb3coMTAsIGsgPCAwID8gTE9HX0JBU0UgKyBrIDogayk7XHJcblxyXG4gICAgaWYgKG1heEQgPT0gbnVsbCkge1xyXG5cclxuICAgICAgLy8gZCBpcyAxMCoqZSwgdGhlIG1pbmltdW0gbWF4LWRlbm9taW5hdG9yIG5lZWRlZC5cclxuICAgICAgbWF4RCA9IGUgPiAwID8gZCA6IG4xO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbiA9IG5ldyBDdG9yKG1heEQpO1xyXG4gICAgICBpZiAoIW4uaXNJbnQoKSB8fCBuLmx0KG4xKSkgdGhyb3cgRXJyb3IoaW52YWxpZEFyZ3VtZW50ICsgbik7XHJcbiAgICAgIG1heEQgPSBuLmd0KGQpID8gKGUgPiAwID8gZCA6IG4xKSA6IG47XHJcbiAgICB9XHJcblxyXG4gICAgZXh0ZXJuYWwgPSBmYWxzZTtcclxuICAgIG4gPSBuZXcgQ3RvcihkaWdpdHNUb1N0cmluZyh4ZCkpO1xyXG4gICAgcHIgPSBDdG9yLnByZWNpc2lvbjtcclxuICAgIEN0b3IucHJlY2lzaW9uID0gZSA9IHhkLmxlbmd0aCAqIExPR19CQVNFICogMjtcclxuXHJcbiAgICBmb3IgKDs7KSAge1xyXG4gICAgICBxID0gZGl2aWRlKG4sIGQsIDAsIDEsIDEpO1xyXG4gICAgICBkMiA9IGQwLnBsdXMocS50aW1lcyhkMSkpO1xyXG4gICAgICBpZiAoZDIuY21wKG1heEQpID09IDEpIGJyZWFrO1xyXG4gICAgICBkMCA9IGQxO1xyXG4gICAgICBkMSA9IGQyO1xyXG4gICAgICBkMiA9IG4xO1xyXG4gICAgICBuMSA9IG4wLnBsdXMocS50aW1lcyhkMikpO1xyXG4gICAgICBuMCA9IGQyO1xyXG4gICAgICBkMiA9IGQ7XHJcbiAgICAgIGQgPSBuLm1pbnVzKHEudGltZXMoZDIpKTtcclxuICAgICAgbiA9IGQyO1xyXG4gICAgfVxyXG5cclxuICAgIGQyID0gZGl2aWRlKG1heEQubWludXMoZDApLCBkMSwgMCwgMSwgMSk7XHJcbiAgICBuMCA9IG4wLnBsdXMoZDIudGltZXMobjEpKTtcclxuICAgIGQwID0gZDAucGx1cyhkMi50aW1lcyhkMSkpO1xyXG4gICAgbjAucyA9IG4xLnMgPSB4LnM7XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIHdoaWNoIGZyYWN0aW9uIGlzIGNsb3NlciB0byB4LCBuMC9kMCBvciBuMS9kMT9cclxuICAgIHIgPSBkaXZpZGUobjEsIGQxLCBlLCAxKS5taW51cyh4KS5hYnMoKS5jbXAoZGl2aWRlKG4wLCBkMCwgZSwgMSkubWludXMoeCkuYWJzKCkpIDwgMVxyXG4gICAgICAgID8gW24xLCBkMV0gOiBbbjAsIGQwXTtcclxuXHJcbiAgICBDdG9yLnByZWNpc2lvbiA9IHByO1xyXG4gICAgZXh0ZXJuYWwgPSB0cnVlO1xyXG5cclxuICAgIHJldHVybiByO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbCBpbiBiYXNlIDE2LCByb3VuZCB0byBgc2RgIHNpZ25pZmljYW50XHJcbiAgICogZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJtYC5cclxuICAgKlxyXG4gICAqIElmIHRoZSBvcHRpb25hbCBgc2RgIGFyZ3VtZW50IGlzIHByZXNlbnQgdGhlbiByZXR1cm4gYmluYXJ5IGV4cG9uZW50aWFsIG5vdGF0aW9uLlxyXG4gICAqXHJcbiAgICogW3NkXSB7bnVtYmVyfSBTaWduaWZpY2FudCBkaWdpdHMuIEludGVnZXIsIDEgdG8gTUFYX0RJR0lUUyBpbmNsdXNpdmUuXHJcbiAgICogW3JtXSB7bnVtYmVyfSBSb3VuZGluZyBtb2RlLiBJbnRlZ2VyLCAwIHRvIDggaW5jbHVzaXZlLlxyXG4gICAqXHJcbiAgICovXHJcbiAgUC50b0hleGFkZWNpbWFsID0gUC50b0hleCA9IGZ1bmN0aW9uIChzZCwgcm0pIHtcclxuICAgIHJldHVybiB0b1N0cmluZ0JpbmFyeSh0aGlzLCAxNiwgc2QsIHJtKTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm5zIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIG5lYXJlc3QgbXVsdGlwbGUgb2YgYHlgIGluIHRoZSBkaXJlY3Rpb24gb2Ygcm91bmRpbmdcclxuICAgKiBtb2RlIGBybWAsIG9yIGBEZWNpbWFsLnJvdW5kaW5nYCBpZiBgcm1gIGlzIG9taXR0ZWQsIHRvIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwuXHJcbiAgICpcclxuICAgKiBUaGUgcmV0dXJuIHZhbHVlIHdpbGwgYWx3YXlzIGhhdmUgdGhlIHNhbWUgc2lnbiBhcyB0aGlzIERlY2ltYWwsIHVubGVzcyBlaXRoZXIgdGhpcyBEZWNpbWFsXHJcbiAgICogb3IgYHlgIGlzIE5hTiwgaW4gd2hpY2ggY2FzZSB0aGUgcmV0dXJuIHZhbHVlIHdpbGwgYmUgYWxzbyBiZSBOYU4uXHJcbiAgICpcclxuICAgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIG5vdCBhZmZlY3RlZCBieSB0aGUgdmFsdWUgb2YgYHByZWNpc2lvbmAuXHJcbiAgICpcclxuICAgKiB5IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9IFRoZSBtYWduaXR1ZGUgdG8gcm91bmQgdG8gYSBtdWx0aXBsZSBvZi5cclxuICAgKiBbcm1dIHtudW1iZXJ9IFJvdW5kaW5nIG1vZGUuIEludGVnZXIsIDAgdG8gOCBpbmNsdXNpdmUuXHJcbiAgICpcclxuICAgKiAndG9OZWFyZXN0KCkgcm91bmRpbmcgbW9kZSBub3QgYW4gaW50ZWdlcjoge3JtfSdcclxuICAgKiAndG9OZWFyZXN0KCkgcm91bmRpbmcgbW9kZSBvdXQgb2YgcmFuZ2U6IHtybX0nXHJcbiAgICpcclxuICAgKi9cclxuICBQLnRvTmVhcmVzdCA9IGZ1bmN0aW9uICh5LCBybSkge1xyXG4gICAgdmFyIHggPSB0aGlzLFxyXG4gICAgICBDdG9yID0geC5jb25zdHJ1Y3RvcjtcclxuXHJcbiAgICB4ID0gbmV3IEN0b3IoeCk7XHJcblxyXG4gICAgaWYgKHkgPT0gbnVsbCkge1xyXG5cclxuICAgICAgLy8gSWYgeCBpcyBub3QgZmluaXRlLCByZXR1cm4geC5cclxuICAgICAgaWYgKCF4LmQpIHJldHVybiB4O1xyXG5cclxuICAgICAgeSA9IG5ldyBDdG9yKDEpO1xyXG4gICAgICBybSA9IEN0b3Iucm91bmRpbmc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB5ID0gbmV3IEN0b3IoeSk7XHJcbiAgICAgIGlmIChybSA9PT0gdm9pZCAwKSB7XHJcbiAgICAgICAgcm0gPSBDdG9yLnJvdW5kaW5nO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNoZWNrSW50MzIocm0sIDAsIDgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBJZiB4IGlzIG5vdCBmaW5pdGUsIHJldHVybiB4IGlmIHkgaXMgbm90IE5hTiwgZWxzZSBOYU4uXHJcbiAgICAgIGlmICgheC5kKSByZXR1cm4geS5zID8geCA6IHk7XHJcblxyXG4gICAgICAvLyBJZiB5IGlzIG5vdCBmaW5pdGUsIHJldHVybiBJbmZpbml0eSB3aXRoIHRoZSBzaWduIG9mIHggaWYgeSBpcyBJbmZpbml0eSwgZWxzZSBOYU4uXHJcbiAgICAgIGlmICgheS5kKSB7XHJcbiAgICAgICAgaWYgKHkucykgeS5zID0geC5zO1xyXG4gICAgICAgIHJldHVybiB5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgeSBpcyBub3QgemVybywgY2FsY3VsYXRlIHRoZSBuZWFyZXN0IG11bHRpcGxlIG9mIHkgdG8geC5cclxuICAgIGlmICh5LmRbMF0pIHtcclxuICAgICAgZXh0ZXJuYWwgPSBmYWxzZTtcclxuICAgICAgeCA9IGRpdmlkZSh4LCB5LCAwLCBybSwgMSkudGltZXMoeSk7XHJcbiAgICAgIGV4dGVybmFsID0gdHJ1ZTtcclxuICAgICAgZmluYWxpc2UoeCk7XHJcblxyXG4gICAgLy8gSWYgeSBpcyB6ZXJvLCByZXR1cm4gemVybyB3aXRoIHRoZSBzaWduIG9mIHguXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB5LnMgPSB4LnM7XHJcbiAgICAgIHggPSB5O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB4O1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsIGNvbnZlcnRlZCB0byBhIG51bWJlciBwcmltaXRpdmUuXHJcbiAgICogWmVybyBrZWVwcyBpdHMgc2lnbi5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAudG9OdW1iZXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gK3RoaXM7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgdmFsdWUgb2YgdGhpcyBEZWNpbWFsIGluIGJhc2UgOCwgcm91bmQgdG8gYHNkYCBzaWduaWZpY2FudFxyXG4gICAqIGRpZ2l0cyB1c2luZyByb3VuZGluZyBtb2RlIGBybWAuXHJcbiAgICpcclxuICAgKiBJZiB0aGUgb3B0aW9uYWwgYHNkYCBhcmd1bWVudCBpcyBwcmVzZW50IHRoZW4gcmV0dXJuIGJpbmFyeSBleHBvbmVudGlhbCBub3RhdGlvbi5cclxuICAgKlxyXG4gICAqIFtzZF0ge251bWJlcn0gU2lnbmlmaWNhbnQgZGlnaXRzLiBJbnRlZ2VyLCAxIHRvIE1BWF9ESUdJVFMgaW5jbHVzaXZlLlxyXG4gICAqIFtybV0ge251bWJlcn0gUm91bmRpbmcgbW9kZS4gSW50ZWdlciwgMCB0byA4IGluY2x1c2l2ZS5cclxuICAgKlxyXG4gICAqL1xyXG4gIFAudG9PY3RhbCA9IGZ1bmN0aW9uIChzZCwgcm0pIHtcclxuICAgIHJldHVybiB0b1N0cmluZ0JpbmFyeSh0aGlzLCA4LCBzZCwgcm0pO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwgcmFpc2VkIHRvIHRoZSBwb3dlciBgeWAsIHJvdW5kZWRcclxuICAgKiB0byBgcHJlY2lzaW9uYCBzaWduaWZpY2FudCBkaWdpdHMgdXNpbmcgcm91bmRpbmcgbW9kZSBgcm91bmRpbmdgLlxyXG4gICAqXHJcbiAgICogRUNNQVNjcmlwdCBjb21wbGlhbnQuXHJcbiAgICpcclxuICAgKiAgIHBvdyh4LCBOYU4pICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBOYU5cclxuICAgKiAgIHBvdyh4LCDCsTApICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMVxyXG5cclxuICAgKiAgIHBvdyhOYU4sIG5vbi16ZXJvKSAgICAgICAgICAgICAgICAgICAgPSBOYU5cclxuICAgKiAgIHBvdyhhYnMoeCkgPiAxLCArSW5maW5pdHkpICAgICAgICAgICAgPSArSW5maW5pdHlcclxuICAgKiAgIHBvdyhhYnMoeCkgPiAxLCAtSW5maW5pdHkpICAgICAgICAgICAgPSArMFxyXG4gICAqICAgcG93KGFicyh4KSA9PSAxLCDCsUluZmluaXR5KSAgICAgICAgICAgPSBOYU5cclxuICAgKiAgIHBvdyhhYnMoeCkgPCAxLCArSW5maW5pdHkpICAgICAgICAgICAgPSArMFxyXG4gICAqICAgcG93KGFicyh4KSA8IDEsIC1JbmZpbml0eSkgICAgICAgICAgICA9ICtJbmZpbml0eVxyXG4gICAqICAgcG93KCtJbmZpbml0eSwgeSA+IDApICAgICAgICAgICAgICAgICA9ICtJbmZpbml0eVxyXG4gICAqICAgcG93KCtJbmZpbml0eSwgeSA8IDApICAgICAgICAgICAgICAgICA9ICswXHJcbiAgICogICBwb3coLUluZmluaXR5LCBvZGQgaW50ZWdlciA+IDApICAgICAgID0gLUluZmluaXR5XHJcbiAgICogICBwb3coLUluZmluaXR5LCBldmVuIGludGVnZXIgPiAwKSAgICAgID0gK0luZmluaXR5XHJcbiAgICogICBwb3coLUluZmluaXR5LCBvZGQgaW50ZWdlciA8IDApICAgICAgID0gLTBcclxuICAgKiAgIHBvdygtSW5maW5pdHksIGV2ZW4gaW50ZWdlciA8IDApICAgICAgPSArMFxyXG4gICAqICAgcG93KCswLCB5ID4gMCkgICAgICAgICAgICAgICAgICAgICAgICA9ICswXHJcbiAgICogICBwb3coKzAsIHkgPCAwKSAgICAgICAgICAgICAgICAgICAgICAgID0gK0luZmluaXR5XHJcbiAgICogICBwb3coLTAsIG9kZCBpbnRlZ2VyID4gMCkgICAgICAgICAgICAgID0gLTBcclxuICAgKiAgIHBvdygtMCwgZXZlbiBpbnRlZ2VyID4gMCkgICAgICAgICAgICAgPSArMFxyXG4gICAqICAgcG93KC0wLCBvZGQgaW50ZWdlciA8IDApICAgICAgICAgICAgICA9IC1JbmZpbml0eVxyXG4gICAqICAgcG93KC0wLCBldmVuIGludGVnZXIgPCAwKSAgICAgICAgICAgICA9ICtJbmZpbml0eVxyXG4gICAqICAgcG93KGZpbml0ZSB4IDwgMCwgZmluaXRlIG5vbi1pbnRlZ2VyKSA9IE5hTlxyXG4gICAqXHJcbiAgICogRm9yIG5vbi1pbnRlZ2VyIG9yIHZlcnkgbGFyZ2UgZXhwb25lbnRzIHBvdyh4LCB5KSBpcyBjYWxjdWxhdGVkIHVzaW5nXHJcbiAgICpcclxuICAgKiAgIHheeSA9IGV4cCh5KmxuKHgpKVxyXG4gICAqXHJcbiAgICogQXNzdW1pbmcgdGhlIGZpcnN0IDE1IHJvdW5kaW5nIGRpZ2l0cyBhcmUgZWFjaCBlcXVhbGx5IGxpa2VseSB0byBiZSBhbnkgZGlnaXQgMC05LCB0aGVcclxuICAgKiBwcm9iYWJpbGl0eSBvZiBhbiBpbmNvcnJlY3RseSByb3VuZGVkIHJlc3VsdFxyXG4gICAqIFAoWzQ5XTl7MTR9IHwgWzUwXTB7MTR9KSA9IDIgKiAwLjIgKiAxMF4tMTQgPSA0ZS0xNSA9IDEvMi41ZSsxNFxyXG4gICAqIGkuZS4gMSBpbiAyNTAsMDAwLDAwMCwwMDAsMDAwXHJcbiAgICpcclxuICAgKiBJZiBhIHJlc3VsdCBpcyBpbmNvcnJlY3RseSByb3VuZGVkIHRoZSBtYXhpbXVtIGVycm9yIHdpbGwgYmUgMSB1bHAgKHVuaXQgaW4gbGFzdCBwbGFjZSkuXHJcbiAgICpcclxuICAgKiB5IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9IFRoZSBwb3dlciB0byB3aGljaCB0byByYWlzZSB0aGlzIERlY2ltYWwuXHJcbiAgICpcclxuICAgKi9cclxuICBQLnRvUG93ZXIgPSBQLnBvdyA9IGZ1bmN0aW9uICh5KSB7XHJcbiAgICB2YXIgZSwgaywgcHIsIHIsIHJtLCBzLFxyXG4gICAgICB4ID0gdGhpcyxcclxuICAgICAgQ3RvciA9IHguY29uc3RydWN0b3IsXHJcbiAgICAgIHluID0gKyh5ID0gbmV3IEN0b3IoeSkpO1xyXG5cclxuICAgIC8vIEVpdGhlciDCsUluZmluaXR5LCBOYU4gb3IgwrEwP1xyXG4gICAgaWYgKCF4LmQgfHwgIXkuZCB8fCAheC5kWzBdIHx8ICF5LmRbMF0pIHJldHVybiBuZXcgQ3RvcihtYXRocG93KCt4LCB5bikpO1xyXG5cclxuICAgIHggPSBuZXcgQ3Rvcih4KTtcclxuXHJcbiAgICBpZiAoeC5lcSgxKSkgcmV0dXJuIHg7XHJcblxyXG4gICAgcHIgPSBDdG9yLnByZWNpc2lvbjtcclxuICAgIHJtID0gQ3Rvci5yb3VuZGluZztcclxuXHJcbiAgICBpZiAoeS5lcSgxKSkgcmV0dXJuIGZpbmFsaXNlKHgsIHByLCBybSk7XHJcblxyXG4gICAgLy8geSBleHBvbmVudFxyXG4gICAgZSA9IG1hdGhmbG9vcih5LmUgLyBMT0dfQkFTRSk7XHJcblxyXG4gICAgLy8gSWYgeSBpcyBhIHNtYWxsIGludGVnZXIgdXNlIHRoZSAnZXhwb25lbnRpYXRpb24gYnkgc3F1YXJpbmcnIGFsZ29yaXRobS5cclxuICAgIGlmIChlID49IHkuZC5sZW5ndGggLSAxICYmIChrID0geW4gPCAwID8gLXluIDogeW4pIDw9IE1BWF9TQUZFX0lOVEVHRVIpIHtcclxuICAgICAgciA9IGludFBvdyhDdG9yLCB4LCBrLCBwcik7XHJcbiAgICAgIHJldHVybiB5LnMgPCAwID8gbmV3IEN0b3IoMSkuZGl2KHIpIDogZmluYWxpc2UociwgcHIsIHJtKTtcclxuICAgIH1cclxuXHJcbiAgICBzID0geC5zO1xyXG5cclxuICAgIC8vIGlmIHggaXMgbmVnYXRpdmVcclxuICAgIGlmIChzIDwgMCkge1xyXG5cclxuICAgICAgLy8gaWYgeSBpcyBub3QgYW4gaW50ZWdlclxyXG4gICAgICBpZiAoZSA8IHkuZC5sZW5ndGggLSAxKSByZXR1cm4gbmV3IEN0b3IoTmFOKTtcclxuXHJcbiAgICAgIC8vIFJlc3VsdCBpcyBwb3NpdGl2ZSBpZiB4IGlzIG5lZ2F0aXZlIGFuZCB0aGUgbGFzdCBkaWdpdCBvZiBpbnRlZ2VyIHkgaXMgZXZlbi5cclxuICAgICAgaWYgKCh5LmRbZV0gJiAxKSA9PSAwKSBzID0gMTtcclxuXHJcbiAgICAgIC8vIGlmIHguZXEoLTEpXHJcbiAgICAgIGlmICh4LmUgPT0gMCAmJiB4LmRbMF0gPT0gMSAmJiB4LmQubGVuZ3RoID09IDEpIHtcclxuICAgICAgICB4LnMgPSBzO1xyXG4gICAgICAgIHJldHVybiB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRXN0aW1hdGUgcmVzdWx0IGV4cG9uZW50LlxyXG4gICAgLy8geF55ID0gMTBeZSwgIHdoZXJlIGUgPSB5ICogbG9nMTAoeClcclxuICAgIC8vIGxvZzEwKHgpID0gbG9nMTAoeF9zaWduaWZpY2FuZCkgKyB4X2V4cG9uZW50XHJcbiAgICAvLyBsb2cxMCh4X3NpZ25pZmljYW5kKSA9IGxuKHhfc2lnbmlmaWNhbmQpIC8gbG4oMTApXHJcbiAgICBrID0gbWF0aHBvdygreCwgeW4pO1xyXG4gICAgZSA9IGsgPT0gMCB8fCAhaXNGaW5pdGUoaylcclxuICAgICAgPyBtYXRoZmxvb3IoeW4gKiAoTWF0aC5sb2coJzAuJyArIGRpZ2l0c1RvU3RyaW5nKHguZCkpIC8gTWF0aC5MTjEwICsgeC5lICsgMSkpXHJcbiAgICAgIDogbmV3IEN0b3IoayArICcnKS5lO1xyXG5cclxuICAgIC8vIEV4cG9uZW50IGVzdGltYXRlIG1heSBiZSBpbmNvcnJlY3QgZS5nLiB4OiAwLjk5OTk5OTk5OTk5OTk5OTk5OSwgeTogMi4yOSwgZTogMCwgci5lOiAtMS5cclxuXHJcbiAgICAvLyBPdmVyZmxvdy91bmRlcmZsb3c/XHJcbiAgICBpZiAoZSA+IEN0b3IubWF4RSArIDEgfHwgZSA8IEN0b3IubWluRSAtIDEpIHJldHVybiBuZXcgQ3RvcihlID4gMCA/IHMgLyAwIDogMCk7XHJcblxyXG4gICAgZXh0ZXJuYWwgPSBmYWxzZTtcclxuICAgIEN0b3Iucm91bmRpbmcgPSB4LnMgPSAxO1xyXG5cclxuICAgIC8vIEVzdGltYXRlIHRoZSBleHRyYSBndWFyZCBkaWdpdHMgbmVlZGVkIHRvIGVuc3VyZSBmaXZlIGNvcnJlY3Qgcm91bmRpbmcgZGlnaXRzIGZyb21cclxuICAgIC8vIG5hdHVyYWxMb2dhcml0aG0oeCkuIEV4YW1wbGUgb2YgZmFpbHVyZSB3aXRob3V0IHRoZXNlIGV4dHJhIGRpZ2l0cyAocHJlY2lzaW9uOiAxMCk6XHJcbiAgICAvLyBuZXcgRGVjaW1hbCgyLjMyNDU2KS5wb3coJzIwODc5ODc0MzY1MzQ1NjYuNDY0MTEnKVxyXG4gICAgLy8gc2hvdWxkIGJlIDEuMTYyMzc3ODIzZSs3NjQ5MTQ5MDUxNzM4MTUsIGJ1dCBpcyAxLjE2MjM1NTgyM2UrNzY0OTE0OTA1MTczODE1XHJcbiAgICBrID0gTWF0aC5taW4oMTIsIChlICsgJycpLmxlbmd0aCk7XHJcblxyXG4gICAgLy8gciA9IHheeSA9IGV4cCh5KmxuKHgpKVxyXG4gICAgciA9IG5hdHVyYWxFeHBvbmVudGlhbCh5LnRpbWVzKG5hdHVyYWxMb2dhcml0aG0oeCwgcHIgKyBrKSksIHByKTtcclxuXHJcbiAgICAvLyByIG1heSBiZSBJbmZpbml0eSwgZS5nLiAoMC45OTk5OTk5OTk5OTk5OTk5KS5wb3coLTFlKzQwKVxyXG4gICAgaWYgKHIuZCkge1xyXG5cclxuICAgICAgLy8gVHJ1bmNhdGUgdG8gdGhlIHJlcXVpcmVkIHByZWNpc2lvbiBwbHVzIGZpdmUgcm91bmRpbmcgZGlnaXRzLlxyXG4gICAgICByID0gZmluYWxpc2UociwgcHIgKyA1LCAxKTtcclxuXHJcbiAgICAgIC8vIElmIHRoZSByb3VuZGluZyBkaWdpdHMgYXJlIFs0OV05OTk5IG9yIFs1MF0wMDAwIGluY3JlYXNlIHRoZSBwcmVjaXNpb24gYnkgMTAgYW5kIHJlY2FsY3VsYXRlXHJcbiAgICAgIC8vIHRoZSByZXN1bHQuXHJcbiAgICAgIGlmIChjaGVja1JvdW5kaW5nRGlnaXRzKHIuZCwgcHIsIHJtKSkge1xyXG4gICAgICAgIGUgPSBwciArIDEwO1xyXG5cclxuICAgICAgICAvLyBUcnVuY2F0ZSB0byB0aGUgaW5jcmVhc2VkIHByZWNpc2lvbiBwbHVzIGZpdmUgcm91bmRpbmcgZGlnaXRzLlxyXG4gICAgICAgIHIgPSBmaW5hbGlzZShuYXR1cmFsRXhwb25lbnRpYWwoeS50aW1lcyhuYXR1cmFsTG9nYXJpdGhtKHgsIGUgKyBrKSksIGUpLCBlICsgNSwgMSk7XHJcblxyXG4gICAgICAgIC8vIENoZWNrIGZvciAxNCBuaW5lcyBmcm9tIHRoZSAybmQgcm91bmRpbmcgZGlnaXQgKHRoZSBmaXJzdCByb3VuZGluZyBkaWdpdCBtYXkgYmUgNCBvciA5KS5cclxuICAgICAgICBpZiAoK2RpZ2l0c1RvU3RyaW5nKHIuZCkuc2xpY2UocHIgKyAxLCBwciArIDE1KSArIDEgPT0gMWUxNCkge1xyXG4gICAgICAgICAgciA9IGZpbmFsaXNlKHIsIHByICsgMSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgci5zID0gcztcclxuICAgIGV4dGVybmFsID0gdHJ1ZTtcclxuICAgIEN0b3Iucm91bmRpbmcgPSBybTtcclxuXHJcbiAgICByZXR1cm4gZmluYWxpc2UociwgcHIsIHJtKTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwgcm91bmRlZCB0byBgc2RgIHNpZ25pZmljYW50IGRpZ2l0c1xyXG4gICAqIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqIFJldHVybiBleHBvbmVudGlhbCBub3RhdGlvbiBpZiBgc2RgIGlzIGxlc3MgdGhhbiB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBuZWNlc3NhcnkgdG8gcmVwcmVzZW50XHJcbiAgICogdGhlIGludGVnZXIgcGFydCBvZiB0aGUgdmFsdWUgaW4gbm9ybWFsIG5vdGF0aW9uLlxyXG4gICAqXHJcbiAgICogW3NkXSB7bnVtYmVyfSBTaWduaWZpY2FudCBkaWdpdHMuIEludGVnZXIsIDEgdG8gTUFYX0RJR0lUUyBpbmNsdXNpdmUuXHJcbiAgICogW3JtXSB7bnVtYmVyfSBSb3VuZGluZyBtb2RlLiBJbnRlZ2VyLCAwIHRvIDggaW5jbHVzaXZlLlxyXG4gICAqXHJcbiAgICovXHJcbiAgUC50b1ByZWNpc2lvbiA9IGZ1bmN0aW9uIChzZCwgcm0pIHtcclxuICAgIHZhciBzdHIsXHJcbiAgICAgIHggPSB0aGlzLFxyXG4gICAgICBDdG9yID0geC5jb25zdHJ1Y3RvcjtcclxuXHJcbiAgICBpZiAoc2QgPT09IHZvaWQgMCkge1xyXG4gICAgICBzdHIgPSBmaW5pdGVUb1N0cmluZyh4LCB4LmUgPD0gQ3Rvci50b0V4cE5lZyB8fCB4LmUgPj0gQ3Rvci50b0V4cFBvcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjaGVja0ludDMyKHNkLCAxLCBNQVhfRElHSVRTKTtcclxuXHJcbiAgICAgIGlmIChybSA9PT0gdm9pZCAwKSBybSA9IEN0b3Iucm91bmRpbmc7XHJcbiAgICAgIGVsc2UgY2hlY2tJbnQzMihybSwgMCwgOCk7XHJcblxyXG4gICAgICB4ID0gZmluYWxpc2UobmV3IEN0b3IoeCksIHNkLCBybSk7XHJcbiAgICAgIHN0ciA9IGZpbml0ZVRvU3RyaW5nKHgsIHNkIDw9IHguZSB8fCB4LmUgPD0gQ3Rvci50b0V4cE5lZywgc2QpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB4LmlzTmVnKCkgJiYgIXguaXNaZXJvKCkgPyAnLScgKyBzdHIgOiBzdHI7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbCByb3VuZGVkIHRvIGEgbWF4aW11bSBvZiBgc2RgXHJcbiAgICogc2lnbmlmaWNhbnQgZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJtYCwgb3IgdG8gYHByZWNpc2lvbmAgYW5kIGByb3VuZGluZ2AgcmVzcGVjdGl2ZWx5IGlmXHJcbiAgICogb21pdHRlZC5cclxuICAgKlxyXG4gICAqIFtzZF0ge251bWJlcn0gU2lnbmlmaWNhbnQgZGlnaXRzLiBJbnRlZ2VyLCAxIHRvIE1BWF9ESUdJVFMgaW5jbHVzaXZlLlxyXG4gICAqIFtybV0ge251bWJlcn0gUm91bmRpbmcgbW9kZS4gSW50ZWdlciwgMCB0byA4IGluY2x1c2l2ZS5cclxuICAgKlxyXG4gICAqICd0b1NEKCkgZGlnaXRzIG91dCBvZiByYW5nZToge3NkfSdcclxuICAgKiAndG9TRCgpIGRpZ2l0cyBub3QgYW4gaW50ZWdlcjoge3NkfSdcclxuICAgKiAndG9TRCgpIHJvdW5kaW5nIG1vZGUgbm90IGFuIGludGVnZXI6IHtybX0nXHJcbiAgICogJ3RvU0QoKSByb3VuZGluZyBtb2RlIG91dCBvZiByYW5nZToge3JtfSdcclxuICAgKlxyXG4gICAqL1xyXG4gIFAudG9TaWduaWZpY2FudERpZ2l0cyA9IFAudG9TRCA9IGZ1bmN0aW9uIChzZCwgcm0pIHtcclxuICAgIHZhciB4ID0gdGhpcyxcclxuICAgICAgQ3RvciA9IHguY29uc3RydWN0b3I7XHJcblxyXG4gICAgaWYgKHNkID09PSB2b2lkIDApIHtcclxuICAgICAgc2QgPSBDdG9yLnByZWNpc2lvbjtcclxuICAgICAgcm0gPSBDdG9yLnJvdW5kaW5nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2hlY2tJbnQzMihzZCwgMSwgTUFYX0RJR0lUUyk7XHJcblxyXG4gICAgICBpZiAocm0gPT09IHZvaWQgMCkgcm0gPSBDdG9yLnJvdW5kaW5nO1xyXG4gICAgICBlbHNlIGNoZWNrSW50MzIocm0sIDAsIDgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmaW5hbGlzZShuZXcgQ3Rvcih4KSwgc2QsIHJtKTtcclxuICB9O1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSBvZiB0aGlzIERlY2ltYWwuXHJcbiAgICpcclxuICAgKiBSZXR1cm4gZXhwb25lbnRpYWwgbm90YXRpb24gaWYgdGhpcyBEZWNpbWFsIGhhcyBhIHBvc2l0aXZlIGV4cG9uZW50IGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhblxyXG4gICAqIGB0b0V4cFBvc2AsIG9yIGEgbmVnYXRpdmUgZXhwb25lbnQgZXF1YWwgdG8gb3IgbGVzcyB0aGFuIGB0b0V4cE5lZ2AuXHJcbiAgICpcclxuICAgKi9cclxuICBQLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIHggPSB0aGlzLFxyXG4gICAgICBDdG9yID0geC5jb25zdHJ1Y3RvcixcclxuICAgICAgc3RyID0gZmluaXRlVG9TdHJpbmcoeCwgeC5lIDw9IEN0b3IudG9FeHBOZWcgfHwgeC5lID49IEN0b3IudG9FeHBQb3MpO1xyXG5cclxuICAgIHJldHVybiB4LmlzTmVnKCkgJiYgIXguaXNaZXJvKCkgPyAnLScgKyBzdHIgOiBzdHI7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbCB0cnVuY2F0ZWQgdG8gYSB3aG9sZSBudW1iZXIuXHJcbiAgICpcclxuICAgKi9cclxuICBQLnRydW5jYXRlZCA9IFAudHJ1bmMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gZmluYWxpc2UobmV3IHRoaXMuY29uc3RydWN0b3IodGhpcyksIHRoaXMuZSArIDEsIDEpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHZhbHVlIG9mIHRoaXMgRGVjaW1hbC5cclxuICAgKiBVbmxpa2UgYHRvU3RyaW5nYCwgbmVnYXRpdmUgemVybyB3aWxsIGluY2x1ZGUgdGhlIG1pbnVzIHNpZ24uXHJcbiAgICpcclxuICAgKi9cclxuICBQLnZhbHVlT2YgPSBQLnRvSlNPTiA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciB4ID0gdGhpcyxcclxuICAgICAgQ3RvciA9IHguY29uc3RydWN0b3IsXHJcbiAgICAgIHN0ciA9IGZpbml0ZVRvU3RyaW5nKHgsIHguZSA8PSBDdG9yLnRvRXhwTmVnIHx8IHguZSA+PSBDdG9yLnRvRXhwUG9zKTtcclxuXHJcbiAgICByZXR1cm4geC5pc05lZygpID8gJy0nICsgc3RyIDogc3RyO1xyXG4gIH07XHJcblxyXG5cclxuICAvLyBIZWxwZXIgZnVuY3Rpb25zIGZvciBEZWNpbWFsLnByb3RvdHlwZSAoUCkgYW5kL29yIERlY2ltYWwgbWV0aG9kcywgYW5kIHRoZWlyIGNhbGxlcnMuXHJcblxyXG5cclxuICAvKlxyXG4gICAqICBkaWdpdHNUb1N0cmluZyAgICAgICAgICAgUC5jdWJlUm9vdCwgUC5sb2dhcml0aG0sIFAuc3F1YXJlUm9vdCwgUC50b0ZyYWN0aW9uLCBQLnRvUG93ZXIsXHJcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5pdGVUb1N0cmluZywgbmF0dXJhbEV4cG9uZW50aWFsLCBuYXR1cmFsTG9nYXJpdGhtXHJcbiAgICogIGNoZWNrSW50MzIgICAgICAgICAgICAgICBQLnRvRGVjaW1hbFBsYWNlcywgUC50b0V4cG9uZW50aWFsLCBQLnRvRml4ZWQsIFAudG9OZWFyZXN0LFxyXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgUC50b1ByZWNpc2lvbiwgUC50b1NpZ25pZmljYW50RGlnaXRzLCB0b1N0cmluZ0JpbmFyeSwgcmFuZG9tXHJcbiAgICogIGNoZWNrUm91bmRpbmdEaWdpdHMgICAgICBQLmxvZ2FyaXRobSwgUC50b1Bvd2VyLCBuYXR1cmFsRXhwb25lbnRpYWwsIG5hdHVyYWxMb2dhcml0aG1cclxuICAgKiAgY29udmVydEJhc2UgICAgICAgICAgICAgIHRvU3RyaW5nQmluYXJ5LCBwYXJzZU90aGVyXHJcbiAgICogIGNvcyAgICAgICAgICAgICAgICAgICAgICBQLmNvc1xyXG4gICAqICBkaXZpZGUgICAgICAgICAgICAgICAgICAgUC5hdGFuaCwgUC5jdWJlUm9vdCwgUC5kaXZpZGVkQnksIFAuZGl2aWRlZFRvSW50ZWdlckJ5LFxyXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgUC5sb2dhcml0aG0sIFAubW9kdWxvLCBQLnNxdWFyZVJvb3QsIFAudGFuLCBQLnRhbmgsIFAudG9GcmFjdGlvbixcclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFAudG9OZWFyZXN0LCB0b1N0cmluZ0JpbmFyeSwgbmF0dXJhbEV4cG9uZW50aWFsLCBuYXR1cmFsTG9nYXJpdGhtLFxyXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF5bG9yU2VyaWVzLCBhdGFuMiwgcGFyc2VPdGhlclxyXG4gICAqICBmaW5hbGlzZSAgICAgICAgICAgICAgICAgUC5hYnNvbHV0ZVZhbHVlLCBQLmF0YW4sIFAuYXRhbmgsIFAuY2VpbCwgUC5jb3MsIFAuY29zaCxcclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFAuY3ViZVJvb3QsIFAuZGl2aWRlZFRvSW50ZWdlckJ5LCBQLmZsb29yLCBQLmxvZ2FyaXRobSwgUC5taW51cyxcclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFAubW9kdWxvLCBQLm5lZ2F0ZWQsIFAucGx1cywgUC5yb3VuZCwgUC5zaW4sIFAuc2luaCwgUC5zcXVhcmVSb290LFxyXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgUC50YW4sIFAudGltZXMsIFAudG9EZWNpbWFsUGxhY2VzLCBQLnRvRXhwb25lbnRpYWwsIFAudG9GaXhlZCxcclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFAudG9OZWFyZXN0LCBQLnRvUG93ZXIsIFAudG9QcmVjaXNpb24sIFAudG9TaWduaWZpY2FudERpZ2l0cyxcclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFAudHJ1bmNhdGVkLCBkaXZpZGUsIGdldExuMTAsIGdldFBpLCBuYXR1cmFsRXhwb25lbnRpYWwsXHJcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBuYXR1cmFsTG9nYXJpdGhtLCBjZWlsLCBmbG9vciwgcm91bmQsIHRydW5jXHJcbiAgICogIGZpbml0ZVRvU3RyaW5nICAgICAgICAgICBQLnRvRXhwb25lbnRpYWwsIFAudG9GaXhlZCwgUC50b1ByZWNpc2lvbiwgUC50b1N0cmluZywgUC52YWx1ZU9mLFxyXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9TdHJpbmdCaW5hcnlcclxuICAgKiAgZ2V0QmFzZTEwRXhwb25lbnQgICAgICAgIFAubWludXMsIFAucGx1cywgUC50aW1lcywgcGFyc2VPdGhlclxyXG4gICAqICBnZXRMbjEwICAgICAgICAgICAgICAgICAgUC5sb2dhcml0aG0sIG5hdHVyYWxMb2dhcml0aG1cclxuICAgKiAgZ2V0UGkgICAgICAgICAgICAgICAgICAgIFAuYWNvcywgUC5hc2luLCBQLmF0YW4sIHRvTGVzc1RoYW5IYWxmUGksIGF0YW4yXHJcbiAgICogIGdldFByZWNpc2lvbiAgICAgICAgICAgICBQLnByZWNpc2lvbiwgUC50b0ZyYWN0aW9uXHJcbiAgICogIGdldFplcm9TdHJpbmcgICAgICAgICAgICBkaWdpdHNUb1N0cmluZywgZmluaXRlVG9TdHJpbmdcclxuICAgKiAgaW50UG93ICAgICAgICAgICAgICAgICAgIFAudG9Qb3dlciwgcGFyc2VPdGhlclxyXG4gICAqICBpc09kZCAgICAgICAgICAgICAgICAgICAgdG9MZXNzVGhhbkhhbGZQaVxyXG4gICAqICBtYXhPck1pbiAgICAgICAgICAgICAgICAgbWF4LCBtaW5cclxuICAgKiAgbmF0dXJhbEV4cG9uZW50aWFsICAgICAgIFAubmF0dXJhbEV4cG9uZW50aWFsLCBQLnRvUG93ZXJcclxuICAgKiAgbmF0dXJhbExvZ2FyaXRobSAgICAgICAgIFAuYWNvc2gsIFAuYXNpbmgsIFAuYXRhbmgsIFAubG9nYXJpdGhtLCBQLm5hdHVyYWxMb2dhcml0aG0sXHJcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBQLnRvUG93ZXIsIG5hdHVyYWxFeHBvbmVudGlhbFxyXG4gICAqICBub25GaW5pdGVUb1N0cmluZyAgICAgICAgZmluaXRlVG9TdHJpbmcsIHRvU3RyaW5nQmluYXJ5XHJcbiAgICogIHBhcnNlRGVjaW1hbCAgICAgICAgICAgICBEZWNpbWFsXHJcbiAgICogIHBhcnNlT3RoZXIgICAgICAgICAgICAgICBEZWNpbWFsXHJcbiAgICogIHNpbiAgICAgICAgICAgICAgICAgICAgICBQLnNpblxyXG4gICAqICB0YXlsb3JTZXJpZXMgICAgICAgICAgICAgUC5jb3NoLCBQLnNpbmgsIGNvcywgc2luXHJcbiAgICogIHRvTGVzc1RoYW5IYWxmUGkgICAgICAgICBQLmNvcywgUC5zaW5cclxuICAgKiAgdG9TdHJpbmdCaW5hcnkgICAgICAgICAgIFAudG9CaW5hcnksIFAudG9IZXhhZGVjaW1hbCwgUC50b09jdGFsXHJcbiAgICogIHRydW5jYXRlICAgICAgICAgICAgICAgICBpbnRQb3dcclxuICAgKlxyXG4gICAqICBUaHJvd3M6ICAgICAgICAgICAgICAgICAgUC5sb2dhcml0aG0sIFAucHJlY2lzaW9uLCBQLnRvRnJhY3Rpb24sIGNoZWNrSW50MzIsIGdldExuMTAsIGdldFBpLFxyXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0dXJhbExvZ2FyaXRobSwgY29uZmlnLCBwYXJzZU90aGVyLCByYW5kb20sIERlY2ltYWxcclxuICAgKi9cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGRpZ2l0c1RvU3RyaW5nKGQpIHtcclxuICAgIHZhciBpLCBrLCB3cyxcclxuICAgICAgaW5kZXhPZkxhc3RXb3JkID0gZC5sZW5ndGggLSAxLFxyXG4gICAgICBzdHIgPSAnJyxcclxuICAgICAgdyA9IGRbMF07XHJcblxyXG4gICAgaWYgKGluZGV4T2ZMYXN0V29yZCA+IDApIHtcclxuICAgICAgc3RyICs9IHc7XHJcbiAgICAgIGZvciAoaSA9IDE7IGkgPCBpbmRleE9mTGFzdFdvcmQ7IGkrKykge1xyXG4gICAgICAgIHdzID0gZFtpXSArICcnO1xyXG4gICAgICAgIGsgPSBMT0dfQkFTRSAtIHdzLmxlbmd0aDtcclxuICAgICAgICBpZiAoaykgc3RyICs9IGdldFplcm9TdHJpbmcoayk7XHJcbiAgICAgICAgc3RyICs9IHdzO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB3ID0gZFtpXTtcclxuICAgICAgd3MgPSB3ICsgJyc7XHJcbiAgICAgIGsgPSBMT0dfQkFTRSAtIHdzLmxlbmd0aDtcclxuICAgICAgaWYgKGspIHN0ciArPSBnZXRaZXJvU3RyaW5nKGspO1xyXG4gICAgfSBlbHNlIGlmICh3ID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAnMCc7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHplcm9zIG9mIGxhc3Qgdy5cclxuICAgIGZvciAoOyB3ICUgMTAgPT09IDA7KSB3IC89IDEwO1xyXG5cclxuICAgIHJldHVybiBzdHIgKyB3O1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNoZWNrSW50MzIoaSwgbWluLCBtYXgpIHtcclxuICAgIGlmIChpICE9PSB+fmkgfHwgaSA8IG1pbiB8fCBpID4gbWF4KSB7XHJcbiAgICAgIHRocm93IEVycm9yKGludmFsaWRBcmd1bWVudCArIGkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICogQ2hlY2sgNSByb3VuZGluZyBkaWdpdHMgaWYgYHJlcGVhdGluZ2AgaXMgbnVsbCwgNCBvdGhlcndpc2UuXHJcbiAgICogYHJlcGVhdGluZyA9PSBudWxsYCBpZiBjYWxsZXIgaXMgYGxvZ2Agb3IgYHBvd2AsXHJcbiAgICogYHJlcGVhdGluZyAhPSBudWxsYCBpZiBjYWxsZXIgaXMgYG5hdHVyYWxMb2dhcml0aG1gIG9yIGBuYXR1cmFsRXhwb25lbnRpYWxgLlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNoZWNrUm91bmRpbmdEaWdpdHMoZCwgaSwgcm0sIHJlcGVhdGluZykge1xyXG4gICAgdmFyIGRpLCBrLCByLCByZDtcclxuXHJcbiAgICAvLyBHZXQgdGhlIGxlbmd0aCBvZiB0aGUgZmlyc3Qgd29yZCBvZiB0aGUgYXJyYXkgZC5cclxuICAgIGZvciAoayA9IGRbMF07IGsgPj0gMTA7IGsgLz0gMTApIC0taTtcclxuXHJcbiAgICAvLyBJcyB0aGUgcm91bmRpbmcgZGlnaXQgaW4gdGhlIGZpcnN0IHdvcmQgb2YgZD9cclxuICAgIGlmICgtLWkgPCAwKSB7XHJcbiAgICAgIGkgKz0gTE9HX0JBU0U7XHJcbiAgICAgIGRpID0gMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRpID0gTWF0aC5jZWlsKChpICsgMSkgLyBMT0dfQkFTRSk7XHJcbiAgICAgIGkgJT0gTE9HX0JBU0U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaSBpcyB0aGUgaW5kZXggKDAgLSA2KSBvZiB0aGUgcm91bmRpbmcgZGlnaXQuXHJcbiAgICAvLyBFLmcuIGlmIHdpdGhpbiB0aGUgd29yZCAzNDg3NTYzIHRoZSBmaXJzdCByb3VuZGluZyBkaWdpdCBpcyA1LFxyXG4gICAgLy8gdGhlbiBpID0gNCwgayA9IDEwMDAsIHJkID0gMzQ4NzU2MyAlIDEwMDAgPSA1NjNcclxuICAgIGsgPSBtYXRocG93KDEwLCBMT0dfQkFTRSAtIGkpO1xyXG4gICAgcmQgPSBkW2RpXSAlIGsgfCAwO1xyXG5cclxuICAgIGlmIChyZXBlYXRpbmcgPT0gbnVsbCkge1xyXG4gICAgICBpZiAoaSA8IDMpIHtcclxuICAgICAgICBpZiAoaSA9PSAwKSByZCA9IHJkIC8gMTAwIHwgMDtcclxuICAgICAgICBlbHNlIGlmIChpID09IDEpIHJkID0gcmQgLyAxMCB8IDA7XHJcbiAgICAgICAgciA9IHJtIDwgNCAmJiByZCA9PSA5OTk5OSB8fCBybSA+IDMgJiYgcmQgPT0gNDk5OTkgfHwgcmQgPT0gNTAwMDAgfHwgcmQgPT0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByID0gKHJtIDwgNCAmJiByZCArIDEgPT0gayB8fCBybSA+IDMgJiYgcmQgKyAxID09IGsgLyAyKSAmJlxyXG4gICAgICAgICAgKGRbZGkgKyAxXSAvIGsgLyAxMDAgfCAwKSA9PSBtYXRocG93KDEwLCBpIC0gMikgLSAxIHx8XHJcbiAgICAgICAgICAgIChyZCA9PSBrIC8gMiB8fCByZCA9PSAwKSAmJiAoZFtkaSArIDFdIC8gayAvIDEwMCB8IDApID09IDA7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChpIDwgNCkge1xyXG4gICAgICAgIGlmIChpID09IDApIHJkID0gcmQgLyAxMDAwIHwgMDtcclxuICAgICAgICBlbHNlIGlmIChpID09IDEpIHJkID0gcmQgLyAxMDAgfCAwO1xyXG4gICAgICAgIGVsc2UgaWYgKGkgPT0gMikgcmQgPSByZCAvIDEwIHwgMDtcclxuICAgICAgICByID0gKHJlcGVhdGluZyB8fCBybSA8IDQpICYmIHJkID09IDk5OTkgfHwgIXJlcGVhdGluZyAmJiBybSA+IDMgJiYgcmQgPT0gNDk5OTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByID0gKChyZXBlYXRpbmcgfHwgcm0gPCA0KSAmJiByZCArIDEgPT0gayB8fFxyXG4gICAgICAgICghcmVwZWF0aW5nICYmIHJtID4gMykgJiYgcmQgKyAxID09IGsgLyAyKSAmJlxyXG4gICAgICAgICAgKGRbZGkgKyAxXSAvIGsgLyAxMDAwIHwgMCkgPT0gbWF0aHBvdygxMCwgaSAtIDMpIC0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIENvbnZlcnQgc3RyaW5nIG9mIGBiYXNlSW5gIHRvIGFuIGFycmF5IG9mIG51bWJlcnMgb2YgYGJhc2VPdXRgLlxyXG4gIC8vIEVnLiBjb252ZXJ0QmFzZSgnMjU1JywgMTAsIDE2KSByZXR1cm5zIFsxNSwgMTVdLlxyXG4gIC8vIEVnLiBjb252ZXJ0QmFzZSgnZmYnLCAxNiwgMTApIHJldHVybnMgWzIsIDUsIDVdLlxyXG4gIGZ1bmN0aW9uIGNvbnZlcnRCYXNlKHN0ciwgYmFzZUluLCBiYXNlT3V0KSB7XHJcbiAgICB2YXIgaixcclxuICAgICAgYXJyID0gWzBdLFxyXG4gICAgICBhcnJMLFxyXG4gICAgICBpID0gMCxcclxuICAgICAgc3RyTCA9IHN0ci5sZW5ndGg7XHJcblxyXG4gICAgZm9yICg7IGkgPCBzdHJMOykge1xyXG4gICAgICBmb3IgKGFyckwgPSBhcnIubGVuZ3RoOyBhcnJMLS07KSBhcnJbYXJyTF0gKj0gYmFzZUluO1xyXG4gICAgICBhcnJbMF0gKz0gTlVNRVJBTFMuaW5kZXhPZihzdHIuY2hhckF0KGkrKykpO1xyXG4gICAgICBmb3IgKGogPSAwOyBqIDwgYXJyLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKGFycltqXSA+IGJhc2VPdXQgLSAxKSB7XHJcbiAgICAgICAgICBpZiAoYXJyW2ogKyAxXSA9PT0gdm9pZCAwKSBhcnJbaiArIDFdID0gMDtcclxuICAgICAgICAgIGFycltqICsgMV0gKz0gYXJyW2pdIC8gYmFzZU91dCB8IDA7XHJcbiAgICAgICAgICBhcnJbal0gJT0gYmFzZU91dDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYXJyLnJldmVyc2UoKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIGNvcyh4KSA9IDEgLSB4XjIvMiEgKyB4XjQvNCEgLSAuLi5cclxuICAgKiB8eHwgPCBwaS8yXHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiBjb3NpbmUoQ3RvciwgeCkge1xyXG4gICAgdmFyIGssIGxlbiwgeTtcclxuXHJcbiAgICBpZiAoeC5pc1plcm8oKSkgcmV0dXJuIHg7XHJcblxyXG4gICAgLy8gQXJndW1lbnQgcmVkdWN0aW9uOiBjb3MoNHgpID0gOCooY29zXjQoeCkgLSBjb3NeMih4KSkgKyAxXHJcbiAgICAvLyBpLmUuIGNvcyh4KSA9IDgqKGNvc140KHgvNCkgLSBjb3NeMih4LzQpKSArIDFcclxuXHJcbiAgICAvLyBFc3RpbWF0ZSB0aGUgb3B0aW11bSBudW1iZXIgb2YgdGltZXMgdG8gdXNlIHRoZSBhcmd1bWVudCByZWR1Y3Rpb24uXHJcbiAgICBsZW4gPSB4LmQubGVuZ3RoO1xyXG4gICAgaWYgKGxlbiA8IDMyKSB7XHJcbiAgICAgIGsgPSBNYXRoLmNlaWwobGVuIC8gMyk7XHJcbiAgICAgIHkgPSAoMSAvIHRpbnlQb3coNCwgaykpLnRvU3RyaW5nKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBrID0gMTY7XHJcbiAgICAgIHkgPSAnMi4zMjgzMDY0MzY1Mzg2OTYyODkwNjI1ZS0xMCc7XHJcbiAgICB9XHJcblxyXG4gICAgQ3Rvci5wcmVjaXNpb24gKz0gaztcclxuXHJcbiAgICB4ID0gdGF5bG9yU2VyaWVzKEN0b3IsIDEsIHgudGltZXMoeSksIG5ldyBDdG9yKDEpKTtcclxuXHJcbiAgICAvLyBSZXZlcnNlIGFyZ3VtZW50IHJlZHVjdGlvblxyXG4gICAgZm9yICh2YXIgaSA9IGs7IGktLTspIHtcclxuICAgICAgdmFyIGNvczJ4ID0geC50aW1lcyh4KTtcclxuICAgICAgeCA9IGNvczJ4LnRpbWVzKGNvczJ4KS5taW51cyhjb3MyeCkudGltZXMoOCkucGx1cygxKTtcclxuICAgIH1cclxuXHJcbiAgICBDdG9yLnByZWNpc2lvbiAtPSBrO1xyXG5cclxuICAgIHJldHVybiB4O1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICogUGVyZm9ybSBkaXZpc2lvbiBpbiB0aGUgc3BlY2lmaWVkIGJhc2UuXHJcbiAgICovXHJcbiAgdmFyIGRpdmlkZSA9IChmdW5jdGlvbiAoKSB7XHJcblxyXG4gICAgLy8gQXNzdW1lcyBub24temVybyB4IGFuZCBrLCBhbmQgaGVuY2Ugbm9uLXplcm8gcmVzdWx0LlxyXG4gICAgZnVuY3Rpb24gbXVsdGlwbHlJbnRlZ2VyKHgsIGssIGJhc2UpIHtcclxuICAgICAgdmFyIHRlbXAsXHJcbiAgICAgICAgY2FycnkgPSAwLFxyXG4gICAgICAgIGkgPSB4Lmxlbmd0aDtcclxuXHJcbiAgICAgIGZvciAoeCA9IHguc2xpY2UoKTsgaS0tOykge1xyXG4gICAgICAgIHRlbXAgPSB4W2ldICogayArIGNhcnJ5O1xyXG4gICAgICAgIHhbaV0gPSB0ZW1wICUgYmFzZSB8IDA7XHJcbiAgICAgICAgY2FycnkgPSB0ZW1wIC8gYmFzZSB8IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjYXJyeSkgeC51bnNoaWZ0KGNhcnJ5KTtcclxuXHJcbiAgICAgIHJldHVybiB4O1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGNvbXBhcmUoYSwgYiwgYUwsIGJMKSB7XHJcbiAgICAgIHZhciBpLCByO1xyXG5cclxuICAgICAgaWYgKGFMICE9IGJMKSB7XHJcbiAgICAgICAgciA9IGFMID4gYkwgPyAxIDogLTE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZm9yIChpID0gciA9IDA7IGkgPCBhTDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAoYVtpXSAhPSBiW2ldKSB7XHJcbiAgICAgICAgICAgIHIgPSBhW2ldID4gYltpXSA/IDEgOiAtMTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gcjtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBzdWJ0cmFjdChhLCBiLCBhTCwgYmFzZSkge1xyXG4gICAgICB2YXIgaSA9IDA7XHJcblxyXG4gICAgICAvLyBTdWJ0cmFjdCBiIGZyb20gYS5cclxuICAgICAgZm9yICg7IGFMLS07KSB7XHJcbiAgICAgICAgYVthTF0gLT0gaTtcclxuICAgICAgICBpID0gYVthTF0gPCBiW2FMXSA/IDEgOiAwO1xyXG4gICAgICAgIGFbYUxdID0gaSAqIGJhc2UgKyBhW2FMXSAtIGJbYUxdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBSZW1vdmUgbGVhZGluZyB6ZXJvcy5cclxuICAgICAgZm9yICg7ICFhWzBdICYmIGEubGVuZ3RoID4gMTspIGEuc2hpZnQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHgsIHksIHByLCBybSwgZHAsIGJhc2UpIHtcclxuICAgICAgdmFyIGNtcCwgZSwgaSwgaywgbG9nQmFzZSwgbW9yZSwgcHJvZCwgcHJvZEwsIHEsIHFkLCByZW0sIHJlbUwsIHJlbTAsIHNkLCB0LCB4aSwgeEwsIHlkMCxcclxuICAgICAgICB5TCwgeXosXHJcbiAgICAgICAgQ3RvciA9IHguY29uc3RydWN0b3IsXHJcbiAgICAgICAgc2lnbiA9IHgucyA9PSB5LnMgPyAxIDogLTEsXHJcbiAgICAgICAgeGQgPSB4LmQsXHJcbiAgICAgICAgeWQgPSB5LmQ7XHJcblxyXG4gICAgICAvLyBFaXRoZXIgTmFOLCBJbmZpbml0eSBvciAwP1xyXG4gICAgICBpZiAoIXhkIHx8ICF4ZFswXSB8fCAheWQgfHwgIXlkWzBdKSB7XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgQ3RvcigvLyBSZXR1cm4gTmFOIGlmIGVpdGhlciBOYU4sIG9yIGJvdGggSW5maW5pdHkgb3IgMC5cclxuICAgICAgICAgICF4LnMgfHwgIXkucyB8fCAoeGQgPyB5ZCAmJiB4ZFswXSA9PSB5ZFswXSA6ICF5ZCkgPyBOYU4gOlxyXG5cclxuICAgICAgICAgIC8vIFJldHVybiDCsTAgaWYgeCBpcyAwIG9yIHkgaXMgwrFJbmZpbml0eSwgb3IgcmV0dXJuIMKxSW5maW5pdHkgYXMgeSBpcyAwLlxyXG4gICAgICAgICAgeGQgJiYgeGRbMF0gPT0gMCB8fCAheWQgPyBzaWduICogMCA6IHNpZ24gLyAwKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGJhc2UpIHtcclxuICAgICAgICBsb2dCYXNlID0gMTtcclxuICAgICAgICBlID0geC5lIC0geS5lO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGJhc2UgPSBCQVNFO1xyXG4gICAgICAgIGxvZ0Jhc2UgPSBMT0dfQkFTRTtcclxuICAgICAgICBlID0gbWF0aGZsb29yKHguZSAvIGxvZ0Jhc2UpIC0gbWF0aGZsb29yKHkuZSAvIGxvZ0Jhc2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB5TCA9IHlkLmxlbmd0aDtcclxuICAgICAgeEwgPSB4ZC5sZW5ndGg7XHJcbiAgICAgIHEgPSBuZXcgQ3RvcihzaWduKTtcclxuICAgICAgcWQgPSBxLmQgPSBbXTtcclxuXHJcbiAgICAgIC8vIFJlc3VsdCBleHBvbmVudCBtYXkgYmUgb25lIGxlc3MgdGhhbiBlLlxyXG4gICAgICAvLyBUaGUgZGlnaXQgYXJyYXkgb2YgYSBEZWNpbWFsIGZyb20gdG9TdHJpbmdCaW5hcnkgbWF5IGhhdmUgdHJhaWxpbmcgemVyb3MuXHJcbiAgICAgIGZvciAoaSA9IDA7IHlkW2ldID09ICh4ZFtpXSB8fCAwKTsgaSsrKTtcclxuXHJcbiAgICAgIGlmICh5ZFtpXSA+ICh4ZFtpXSB8fCAwKSkgZS0tO1xyXG5cclxuICAgICAgaWYgKHByID09IG51bGwpIHtcclxuICAgICAgICBzZCA9IHByID0gQ3Rvci5wcmVjaXNpb247XHJcbiAgICAgICAgcm0gPSBDdG9yLnJvdW5kaW5nO1xyXG4gICAgICB9IGVsc2UgaWYgKGRwKSB7XHJcbiAgICAgICAgc2QgPSBwciArICh4LmUgLSB5LmUpICsgMTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzZCA9IHByO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoc2QgPCAwKSB7XHJcbiAgICAgICAgcWQucHVzaCgxKTtcclxuICAgICAgICBtb3JlID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgLy8gQ29udmVydCBwcmVjaXNpb24gaW4gbnVtYmVyIG9mIGJhc2UgMTAgZGlnaXRzIHRvIGJhc2UgMWU3IGRpZ2l0cy5cclxuICAgICAgICBzZCA9IHNkIC8gbG9nQmFzZSArIDIgfCAwO1xyXG4gICAgICAgIGkgPSAwO1xyXG5cclxuICAgICAgICAvLyBkaXZpc29yIDwgMWU3XHJcbiAgICAgICAgaWYgKHlMID09IDEpIHtcclxuICAgICAgICAgIGsgPSAwO1xyXG4gICAgICAgICAgeWQgPSB5ZFswXTtcclxuICAgICAgICAgIHNkKys7XHJcblxyXG4gICAgICAgICAgLy8gayBpcyB0aGUgY2FycnkuXHJcbiAgICAgICAgICBmb3IgKDsgKGkgPCB4TCB8fCBrKSAmJiBzZC0tOyBpKyspIHtcclxuICAgICAgICAgICAgdCA9IGsgKiBiYXNlICsgKHhkW2ldIHx8IDApO1xyXG4gICAgICAgICAgICBxZFtpXSA9IHQgLyB5ZCB8IDA7XHJcbiAgICAgICAgICAgIGsgPSB0ICUgeWQgfCAwO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIG1vcmUgPSBrIHx8IGkgPCB4TDtcclxuXHJcbiAgICAgICAgLy8gZGl2aXNvciA+PSAxZTdcclxuICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICAgIC8vIE5vcm1hbGlzZSB4ZCBhbmQgeWQgc28gaGlnaGVzdCBvcmRlciBkaWdpdCBvZiB5ZCBpcyA+PSBiYXNlLzJcclxuICAgICAgICAgIGsgPSBiYXNlIC8gKHlkWzBdICsgMSkgfCAwO1xyXG5cclxuICAgICAgICAgIGlmIChrID4gMSkge1xyXG4gICAgICAgICAgICB5ZCA9IG11bHRpcGx5SW50ZWdlcih5ZCwgaywgYmFzZSk7XHJcbiAgICAgICAgICAgIHhkID0gbXVsdGlwbHlJbnRlZ2VyKHhkLCBrLCBiYXNlKTtcclxuICAgICAgICAgICAgeUwgPSB5ZC5sZW5ndGg7XHJcbiAgICAgICAgICAgIHhMID0geGQubGVuZ3RoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHhpID0geUw7XHJcbiAgICAgICAgICByZW0gPSB4ZC5zbGljZSgwLCB5TCk7XHJcbiAgICAgICAgICByZW1MID0gcmVtLmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAvLyBBZGQgemVyb3MgdG8gbWFrZSByZW1haW5kZXIgYXMgbG9uZyBhcyBkaXZpc29yLlxyXG4gICAgICAgICAgZm9yICg7IHJlbUwgPCB5TDspIHJlbVtyZW1MKytdID0gMDtcclxuXHJcbiAgICAgICAgICB5eiA9IHlkLnNsaWNlKCk7XHJcbiAgICAgICAgICB5ei51bnNoaWZ0KDApO1xyXG4gICAgICAgICAgeWQwID0geWRbMF07XHJcblxyXG4gICAgICAgICAgaWYgKHlkWzFdID49IGJhc2UgLyAyKSArK3lkMDtcclxuXHJcbiAgICAgICAgICBkbyB7XHJcbiAgICAgICAgICAgIGsgPSAwO1xyXG5cclxuICAgICAgICAgICAgLy8gQ29tcGFyZSBkaXZpc29yIGFuZCByZW1haW5kZXIuXHJcbiAgICAgICAgICAgIGNtcCA9IGNvbXBhcmUoeWQsIHJlbSwgeUwsIHJlbUwpO1xyXG5cclxuICAgICAgICAgICAgLy8gSWYgZGl2aXNvciA8IHJlbWFpbmRlci5cclxuICAgICAgICAgICAgaWYgKGNtcCA8IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRyaWFsIGRpZ2l0LCBrLlxyXG4gICAgICAgICAgICAgIHJlbTAgPSByZW1bMF07XHJcbiAgICAgICAgICAgICAgaWYgKHlMICE9IHJlbUwpIHJlbTAgPSByZW0wICogYmFzZSArIChyZW1bMV0gfHwgMCk7XHJcblxyXG4gICAgICAgICAgICAgIC8vIGsgd2lsbCBiZSBob3cgbWFueSB0aW1lcyB0aGUgZGl2aXNvciBnb2VzIGludG8gdGhlIGN1cnJlbnQgcmVtYWluZGVyLlxyXG4gICAgICAgICAgICAgIGsgPSByZW0wIC8geWQwIHwgMDtcclxuXHJcbiAgICAgICAgICAgICAgLy8gIEFsZ29yaXRobTpcclxuICAgICAgICAgICAgICAvLyAgMS4gcHJvZHVjdCA9IGRpdmlzb3IgKiB0cmlhbCBkaWdpdCAoaylcclxuICAgICAgICAgICAgICAvLyAgMi4gaWYgcHJvZHVjdCA+IHJlbWFpbmRlcjogcHJvZHVjdCAtPSBkaXZpc29yLCBrLS1cclxuICAgICAgICAgICAgICAvLyAgMy4gcmVtYWluZGVyIC09IHByb2R1Y3RcclxuICAgICAgICAgICAgICAvLyAgNC4gaWYgcHJvZHVjdCB3YXMgPCByZW1haW5kZXIgYXQgMjpcclxuICAgICAgICAgICAgICAvLyAgICA1LiBjb21wYXJlIG5ldyByZW1haW5kZXIgYW5kIGRpdmlzb3JcclxuICAgICAgICAgICAgICAvLyAgICA2LiBJZiByZW1haW5kZXIgPiBkaXZpc29yOiByZW1haW5kZXIgLT0gZGl2aXNvciwgaysrXHJcblxyXG4gICAgICAgICAgICAgIGlmIChrID4gMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGsgPj0gYmFzZSkgayA9IGJhc2UgLSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIHByb2R1Y3QgPSBkaXZpc29yICogdHJpYWwgZGlnaXQuXHJcbiAgICAgICAgICAgICAgICBwcm9kID0gbXVsdGlwbHlJbnRlZ2VyKHlkLCBrLCBiYXNlKTtcclxuICAgICAgICAgICAgICAgIHByb2RMID0gcHJvZC5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICByZW1MID0gcmVtLmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBDb21wYXJlIHByb2R1Y3QgYW5kIHJlbWFpbmRlci5cclxuICAgICAgICAgICAgICAgIGNtcCA9IGNvbXBhcmUocHJvZCwgcmVtLCBwcm9kTCwgcmVtTCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gcHJvZHVjdCA+IHJlbWFpbmRlci5cclxuICAgICAgICAgICAgICAgIGlmIChjbXAgPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICBrLS07XHJcblxyXG4gICAgICAgICAgICAgICAgICAvLyBTdWJ0cmFjdCBkaXZpc29yIGZyb20gcHJvZHVjdC5cclxuICAgICAgICAgICAgICAgICAgc3VidHJhY3QocHJvZCwgeUwgPCBwcm9kTCA/IHl6IDogeWQsIHByb2RMLCBiYXNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIGNtcCBpcyAtMS5cclxuICAgICAgICAgICAgICAgIC8vIElmIGsgaXMgMCwgdGhlcmUgaXMgbm8gbmVlZCB0byBjb21wYXJlIHlkIGFuZCByZW0gYWdhaW4gYmVsb3csIHNvIGNoYW5nZSBjbXAgdG8gMVxyXG4gICAgICAgICAgICAgICAgLy8gdG8gYXZvaWQgaXQuIElmIGsgaXMgMSB0aGVyZSBpcyBhIG5lZWQgdG8gY29tcGFyZSB5ZCBhbmQgcmVtIGFnYWluIGJlbG93LlxyXG4gICAgICAgICAgICAgICAgaWYgKGsgPT0gMCkgY21wID0gayA9IDE7XHJcbiAgICAgICAgICAgICAgICBwcm9kID0geWQuc2xpY2UoKTtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIHByb2RMID0gcHJvZC5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgaWYgKHByb2RMIDwgcmVtTCkgcHJvZC51bnNoaWZ0KDApO1xyXG5cclxuICAgICAgICAgICAgICAvLyBTdWJ0cmFjdCBwcm9kdWN0IGZyb20gcmVtYWluZGVyLlxyXG4gICAgICAgICAgICAgIHN1YnRyYWN0KHJlbSwgcHJvZCwgcmVtTCwgYmFzZSk7XHJcblxyXG4gICAgICAgICAgICAgIC8vIElmIHByb2R1Y3Qgd2FzIDwgcHJldmlvdXMgcmVtYWluZGVyLlxyXG4gICAgICAgICAgICAgIGlmIChjbXAgPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJlbUwgPSByZW0ubGVuZ3RoO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIENvbXBhcmUgZGl2aXNvciBhbmQgbmV3IHJlbWFpbmRlci5cclxuICAgICAgICAgICAgICAgIGNtcCA9IGNvbXBhcmUoeWQsIHJlbSwgeUwsIHJlbUwpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIElmIGRpdmlzb3IgPCBuZXcgcmVtYWluZGVyLCBzdWJ0cmFjdCBkaXZpc29yIGZyb20gcmVtYWluZGVyLlxyXG4gICAgICAgICAgICAgICAgaWYgKGNtcCA8IDEpIHtcclxuICAgICAgICAgICAgICAgICAgaysrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgLy8gU3VidHJhY3QgZGl2aXNvciBmcm9tIHJlbWFpbmRlci5cclxuICAgICAgICAgICAgICAgICAgc3VidHJhY3QocmVtLCB5TCA8IHJlbUwgPyB5eiA6IHlkLCByZW1MLCBiYXNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIHJlbUwgPSByZW0ubGVuZ3RoO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNtcCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgIGsrKztcclxuICAgICAgICAgICAgICByZW0gPSBbMF07XHJcbiAgICAgICAgICAgIH0gICAgLy8gaWYgY21wID09PSAxLCBrIHdpbGwgYmUgMFxyXG5cclxuICAgICAgICAgICAgLy8gQWRkIHRoZSBuZXh0IGRpZ2l0LCBrLCB0byB0aGUgcmVzdWx0IGFycmF5LlxyXG4gICAgICAgICAgICBxZFtpKytdID0gaztcclxuXHJcbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgcmVtYWluZGVyLlxyXG4gICAgICAgICAgICBpZiAoY21wICYmIHJlbVswXSkge1xyXG4gICAgICAgICAgICAgIHJlbVtyZW1MKytdID0geGRbeGldIHx8IDA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmVtID0gW3hkW3hpXV07XHJcbiAgICAgICAgICAgICAgcmVtTCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9IHdoaWxlICgoeGkrKyA8IHhMIHx8IHJlbVswXSAhPT0gdm9pZCAwKSAmJiBzZC0tKTtcclxuXHJcbiAgICAgICAgICBtb3JlID0gcmVtWzBdICE9PSB2b2lkIDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBMZWFkaW5nIHplcm8/XHJcbiAgICAgICAgaWYgKCFxZFswXSkgcWQuc2hpZnQoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gbG9nQmFzZSBpcyAxIHdoZW4gZGl2aWRlIGlzIGJlaW5nIHVzZWQgZm9yIGJhc2UgY29udmVyc2lvbi5cclxuICAgICAgaWYgKGxvZ0Jhc2UgPT0gMSkge1xyXG4gICAgICAgIHEuZSA9IGU7XHJcbiAgICAgICAgaW5leGFjdCA9IG1vcmU7XHJcbiAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgIC8vIFRvIGNhbGN1bGF0ZSBxLmUsIGZpcnN0IGdldCB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBvZiBxZFswXS5cclxuICAgICAgICBmb3IgKGkgPSAxLCBrID0gcWRbMF07IGsgPj0gMTA7IGsgLz0gMTApIGkrKztcclxuICAgICAgICBxLmUgPSBpICsgZSAqIGxvZ0Jhc2UgLSAxO1xyXG5cclxuICAgICAgICBmaW5hbGlzZShxLCBkcCA/IHByICsgcS5lICsgMSA6IHByLCBybSwgbW9yZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBxO1xyXG4gICAgfTtcclxuICB9KSgpO1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSb3VuZCBgeGAgdG8gYHNkYCBzaWduaWZpY2FudCBkaWdpdHMgdXNpbmcgcm91bmRpbmcgbW9kZSBgcm1gLlxyXG4gICAqIENoZWNrIGZvciBvdmVyL3VuZGVyLWZsb3cuXHJcbiAgICovXHJcbiAgIGZ1bmN0aW9uIGZpbmFsaXNlKHgsIHNkLCBybSwgaXNUcnVuY2F0ZWQpIHtcclxuICAgIHZhciBkaWdpdHMsIGksIGosIGssIHJkLCByb3VuZFVwLCB3LCB4ZCwgeGRpLFxyXG4gICAgICBDdG9yID0geC5jb25zdHJ1Y3RvcjtcclxuXHJcbiAgICAvLyBEb24ndCByb3VuZCBpZiBzZCBpcyBudWxsIG9yIHVuZGVmaW5lZC5cclxuICAgIG91dDogaWYgKHNkICE9IG51bGwpIHtcclxuICAgICAgeGQgPSB4LmQ7XHJcblxyXG4gICAgICAvLyBJbmZpbml0eS9OYU4uXHJcbiAgICAgIGlmICgheGQpIHJldHVybiB4O1xyXG5cclxuICAgICAgLy8gcmQ6IHRoZSByb3VuZGluZyBkaWdpdCwgaS5lLiB0aGUgZGlnaXQgYWZ0ZXIgdGhlIGRpZ2l0IHRoYXQgbWF5IGJlIHJvdW5kZWQgdXAuXHJcbiAgICAgIC8vIHc6IHRoZSB3b3JkIG9mIHhkIGNvbnRhaW5pbmcgcmQsIGEgYmFzZSAxZTcgbnVtYmVyLlxyXG4gICAgICAvLyB4ZGk6IHRoZSBpbmRleCBvZiB3IHdpdGhpbiB4ZC5cclxuICAgICAgLy8gZGlnaXRzOiB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBvZiB3LlxyXG4gICAgICAvLyBpOiB3aGF0IHdvdWxkIGJlIHRoZSBpbmRleCBvZiByZCB3aXRoaW4gdyBpZiBhbGwgdGhlIG51bWJlcnMgd2VyZSA3IGRpZ2l0cyBsb25nIChpLmUuIGlmXHJcbiAgICAgIC8vIHRoZXkgaGFkIGxlYWRpbmcgemVyb3MpXHJcbiAgICAgIC8vIGo6IGlmID4gMCwgdGhlIGFjdHVhbCBpbmRleCBvZiByZCB3aXRoaW4gdyAoaWYgPCAwLCByZCBpcyBhIGxlYWRpbmcgemVybykuXHJcblxyXG4gICAgICAvLyBHZXQgdGhlIGxlbmd0aCBvZiB0aGUgZmlyc3Qgd29yZCBvZiB0aGUgZGlnaXRzIGFycmF5IHhkLlxyXG4gICAgICBmb3IgKGRpZ2l0cyA9IDEsIGsgPSB4ZFswXTsgayA+PSAxMDsgayAvPSAxMCkgZGlnaXRzKys7XHJcbiAgICAgIGkgPSBzZCAtIGRpZ2l0cztcclxuXHJcbiAgICAgIC8vIElzIHRoZSByb3VuZGluZyBkaWdpdCBpbiB0aGUgZmlyc3Qgd29yZCBvZiB4ZD9cclxuICAgICAgaWYgKGkgPCAwKSB7XHJcbiAgICAgICAgaSArPSBMT0dfQkFTRTtcclxuICAgICAgICBqID0gc2Q7XHJcbiAgICAgICAgdyA9IHhkW3hkaSA9IDBdO1xyXG5cclxuICAgICAgICAvLyBHZXQgdGhlIHJvdW5kaW5nIGRpZ2l0IGF0IGluZGV4IGogb2Ygdy5cclxuICAgICAgICByZCA9IHcgLyBtYXRocG93KDEwLCBkaWdpdHMgLSBqIC0gMSkgJSAxMCB8IDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgeGRpID0gTWF0aC5jZWlsKChpICsgMSkgLyBMT0dfQkFTRSk7XHJcbiAgICAgICAgayA9IHhkLmxlbmd0aDtcclxuICAgICAgICBpZiAoeGRpID49IGspIHtcclxuICAgICAgICAgIGlmIChpc1RydW5jYXRlZCkge1xyXG5cclxuICAgICAgICAgICAgLy8gTmVlZGVkIGJ5IGBuYXR1cmFsRXhwb25lbnRpYWxgLCBgbmF0dXJhbExvZ2FyaXRobWAgYW5kIGBzcXVhcmVSb290YC5cclxuICAgICAgICAgICAgZm9yICg7IGsrKyA8PSB4ZGk7KSB4ZC5wdXNoKDApO1xyXG4gICAgICAgICAgICB3ID0gcmQgPSAwO1xyXG4gICAgICAgICAgICBkaWdpdHMgPSAxO1xyXG4gICAgICAgICAgICBpICU9IExPR19CQVNFO1xyXG4gICAgICAgICAgICBqID0gaSAtIExPR19CQVNFICsgMTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGJyZWFrIG91dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdyA9IGsgPSB4ZFt4ZGldO1xyXG5cclxuICAgICAgICAgIC8vIEdldCB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBvZiB3LlxyXG4gICAgICAgICAgZm9yIChkaWdpdHMgPSAxOyBrID49IDEwOyBrIC89IDEwKSBkaWdpdHMrKztcclxuXHJcbiAgICAgICAgICAvLyBHZXQgdGhlIGluZGV4IG9mIHJkIHdpdGhpbiB3LlxyXG4gICAgICAgICAgaSAlPSBMT0dfQkFTRTtcclxuXHJcbiAgICAgICAgICAvLyBHZXQgdGhlIGluZGV4IG9mIHJkIHdpdGhpbiB3LCBhZGp1c3RlZCBmb3IgbGVhZGluZyB6ZXJvcy5cclxuICAgICAgICAgIC8vIFRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvcyBvZiB3IGlzIGdpdmVuIGJ5IExPR19CQVNFIC0gZGlnaXRzLlxyXG4gICAgICAgICAgaiA9IGkgLSBMT0dfQkFTRSArIGRpZ2l0cztcclxuXHJcbiAgICAgICAgICAvLyBHZXQgdGhlIHJvdW5kaW5nIGRpZ2l0IGF0IGluZGV4IGogb2Ygdy5cclxuICAgICAgICAgIHJkID0gaiA8IDAgPyAwIDogdyAvIG1hdGhwb3coMTAsIGRpZ2l0cyAtIGogLSAxKSAlIDEwIHwgMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEFyZSB0aGVyZSBhbnkgbm9uLXplcm8gZGlnaXRzIGFmdGVyIHRoZSByb3VuZGluZyBkaWdpdD9cclxuICAgICAgaXNUcnVuY2F0ZWQgPSBpc1RydW5jYXRlZCB8fCBzZCA8IDAgfHxcclxuICAgICAgICB4ZFt4ZGkgKyAxXSAhPT0gdm9pZCAwIHx8IChqIDwgMCA/IHcgOiB3ICUgbWF0aHBvdygxMCwgZGlnaXRzIC0gaiAtIDEpKTtcclxuXHJcbiAgICAgIC8vIFRoZSBleHByZXNzaW9uIGB3ICUgbWF0aHBvdygxMCwgZGlnaXRzIC0gaiAtIDEpYCByZXR1cm5zIGFsbCB0aGUgZGlnaXRzIG9mIHcgdG8gdGhlIHJpZ2h0XHJcbiAgICAgIC8vIG9mIHRoZSBkaWdpdCBhdCAobGVmdC10by1yaWdodCkgaW5kZXggaiwgZS5nLiBpZiB3IGlzIDkwODcxNCBhbmQgaiBpcyAyLCB0aGUgZXhwcmVzc2lvblxyXG4gICAgICAvLyB3aWxsIGdpdmUgNzE0LlxyXG5cclxuICAgICAgcm91bmRVcCA9IHJtIDwgNFxyXG4gICAgICAgID8gKHJkIHx8IGlzVHJ1bmNhdGVkKSAmJiAocm0gPT0gMCB8fCBybSA9PSAoeC5zIDwgMCA/IDMgOiAyKSlcclxuICAgICAgICA6IHJkID4gNSB8fCByZCA9PSA1ICYmIChybSA9PSA0IHx8IGlzVHJ1bmNhdGVkIHx8IHJtID09IDYgJiZcclxuXHJcbiAgICAgICAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSBkaWdpdCB0byB0aGUgbGVmdCBvZiB0aGUgcm91bmRpbmcgZGlnaXQgaXMgb2RkLlxyXG4gICAgICAgICAgKChpID4gMCA/IGogPiAwID8gdyAvIG1hdGhwb3coMTAsIGRpZ2l0cyAtIGopIDogMCA6IHhkW3hkaSAtIDFdKSAlIDEwKSAmIDEgfHxcclxuICAgICAgICAgICAgcm0gPT0gKHgucyA8IDAgPyA4IDogNykpO1xyXG5cclxuICAgICAgaWYgKHNkIDwgMSB8fCAheGRbMF0pIHtcclxuICAgICAgICB4ZC5sZW5ndGggPSAwO1xyXG4gICAgICAgIGlmIChyb3VuZFVwKSB7XHJcblxyXG4gICAgICAgICAgLy8gQ29udmVydCBzZCB0byBkZWNpbWFsIHBsYWNlcy5cclxuICAgICAgICAgIHNkIC09IHguZSArIDE7XHJcblxyXG4gICAgICAgICAgLy8gMSwgMC4xLCAwLjAxLCAwLjAwMSwgMC4wMDAxIGV0Yy5cclxuICAgICAgICAgIHhkWzBdID0gbWF0aHBvdygxMCwgKExPR19CQVNFIC0gc2QgJSBMT0dfQkFTRSkgJSBMT0dfQkFTRSk7XHJcbiAgICAgICAgICB4LmUgPSAtc2QgfHwgMDtcclxuICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICAgIC8vIFplcm8uXHJcbiAgICAgICAgICB4ZFswXSA9IHguZSA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4geDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gUmVtb3ZlIGV4Y2VzcyBkaWdpdHMuXHJcbiAgICAgIGlmIChpID09IDApIHtcclxuICAgICAgICB4ZC5sZW5ndGggPSB4ZGk7XHJcbiAgICAgICAgayA9IDE7XHJcbiAgICAgICAgeGRpLS07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgeGQubGVuZ3RoID0geGRpICsgMTtcclxuICAgICAgICBrID0gbWF0aHBvdygxMCwgTE9HX0JBU0UgLSBpKTtcclxuXHJcbiAgICAgICAgLy8gRS5nLiA1NjcwMCBiZWNvbWVzIDU2MDAwIGlmIDcgaXMgdGhlIHJvdW5kaW5nIGRpZ2l0LlxyXG4gICAgICAgIC8vIGogPiAwIG1lYW5zIGkgPiBudW1iZXIgb2YgbGVhZGluZyB6ZXJvcyBvZiB3LlxyXG4gICAgICAgIHhkW3hkaV0gPSBqID4gMCA/ICh3IC8gbWF0aHBvdygxMCwgZGlnaXRzIC0gaikgJSBtYXRocG93KDEwLCBqKSB8IDApICogayA6IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChyb3VuZFVwKSB7XHJcbiAgICAgICAgZm9yICg7Oykge1xyXG5cclxuICAgICAgICAgIC8vIElzIHRoZSBkaWdpdCB0byBiZSByb3VuZGVkIHVwIGluIHRoZSBmaXJzdCB3b3JkIG9mIHhkP1xyXG4gICAgICAgICAgaWYgKHhkaSA9PSAwKSB7XHJcblxyXG4gICAgICAgICAgICAvLyBpIHdpbGwgYmUgdGhlIGxlbmd0aCBvZiB4ZFswXSBiZWZvcmUgayBpcyBhZGRlZC5cclxuICAgICAgICAgICAgZm9yIChpID0gMSwgaiA9IHhkWzBdOyBqID49IDEwOyBqIC89IDEwKSBpKys7XHJcbiAgICAgICAgICAgIGogPSB4ZFswXSArPSBrO1xyXG4gICAgICAgICAgICBmb3IgKGsgPSAxOyBqID49IDEwOyBqIC89IDEwKSBrKys7XHJcblxyXG4gICAgICAgICAgICAvLyBpZiBpICE9IGsgdGhlIGxlbmd0aCBoYXMgaW5jcmVhc2VkLlxyXG4gICAgICAgICAgICBpZiAoaSAhPSBrKSB7XHJcbiAgICAgICAgICAgICAgeC5lKys7XHJcbiAgICAgICAgICAgICAgaWYgKHhkWzBdID09IEJBU0UpIHhkWzBdID0gMTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB4ZFt4ZGldICs9IGs7XHJcbiAgICAgICAgICAgIGlmICh4ZFt4ZGldICE9IEJBU0UpIGJyZWFrO1xyXG4gICAgICAgICAgICB4ZFt4ZGktLV0gPSAwO1xyXG4gICAgICAgICAgICBrID0gMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFJlbW92ZSB0cmFpbGluZyB6ZXJvcy5cclxuICAgICAgZm9yIChpID0geGQubGVuZ3RoOyB4ZFstLWldID09PSAwOykgeGQucG9wKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV4dGVybmFsKSB7XHJcblxyXG4gICAgICAvLyBPdmVyZmxvdz9cclxuICAgICAgaWYgKHguZSA+IEN0b3IubWF4RSkge1xyXG5cclxuICAgICAgICAvLyBJbmZpbml0eS5cclxuICAgICAgICB4LmQgPSBudWxsO1xyXG4gICAgICAgIHguZSA9IE5hTjtcclxuXHJcbiAgICAgIC8vIFVuZGVyZmxvdz9cclxuICAgICAgfSBlbHNlIGlmICh4LmUgPCBDdG9yLm1pbkUpIHtcclxuXHJcbiAgICAgICAgLy8gWmVyby5cclxuICAgICAgICB4LmUgPSAwO1xyXG4gICAgICAgIHguZCA9IFswXTtcclxuICAgICAgICAvLyBDdG9yLnVuZGVyZmxvdyA9IHRydWU7XHJcbiAgICAgIH0gLy8gZWxzZSBDdG9yLnVuZGVyZmxvdyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB4O1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGZpbml0ZVRvU3RyaW5nKHgsIGlzRXhwLCBzZCkge1xyXG4gICAgaWYgKCF4LmlzRmluaXRlKCkpIHJldHVybiBub25GaW5pdGVUb1N0cmluZyh4KTtcclxuICAgIHZhciBrLFxyXG4gICAgICBlID0geC5lLFxyXG4gICAgICBzdHIgPSBkaWdpdHNUb1N0cmluZyh4LmQpLFxyXG4gICAgICBsZW4gPSBzdHIubGVuZ3RoO1xyXG5cclxuICAgIGlmIChpc0V4cCkge1xyXG4gICAgICBpZiAoc2QgJiYgKGsgPSBzZCAtIGxlbikgPiAwKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLmNoYXJBdCgwKSArICcuJyArIHN0ci5zbGljZSgxKSArIGdldFplcm9TdHJpbmcoayk7XHJcbiAgICAgIH0gZWxzZSBpZiAobGVuID4gMSkge1xyXG4gICAgICAgIHN0ciA9IHN0ci5jaGFyQXQoMCkgKyAnLicgKyBzdHIuc2xpY2UoMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0ciA9IHN0ciArICh4LmUgPCAwID8gJ2UnIDogJ2UrJykgKyB4LmU7XHJcbiAgICB9IGVsc2UgaWYgKGUgPCAwKSB7XHJcbiAgICAgIHN0ciA9ICcwLicgKyBnZXRaZXJvU3RyaW5nKC1lIC0gMSkgKyBzdHI7XHJcbiAgICAgIGlmIChzZCAmJiAoayA9IHNkIC0gbGVuKSA+IDApIHN0ciArPSBnZXRaZXJvU3RyaW5nKGspO1xyXG4gICAgfSBlbHNlIGlmIChlID49IGxlbikge1xyXG4gICAgICBzdHIgKz0gZ2V0WmVyb1N0cmluZyhlICsgMSAtIGxlbik7XHJcbiAgICAgIGlmIChzZCAmJiAoayA9IHNkIC0gZSAtIDEpID4gMCkgc3RyID0gc3RyICsgJy4nICsgZ2V0WmVyb1N0cmluZyhrKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICgoayA9IGUgKyAxKSA8IGxlbikgc3RyID0gc3RyLnNsaWNlKDAsIGspICsgJy4nICsgc3RyLnNsaWNlKGspO1xyXG4gICAgICBpZiAoc2QgJiYgKGsgPSBzZCAtIGxlbikgPiAwKSB7XHJcbiAgICAgICAgaWYgKGUgKyAxID09PSBsZW4pIHN0ciArPSAnLic7XHJcbiAgICAgICAgc3RyICs9IGdldFplcm9TdHJpbmcoayk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3RyO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIENhbGN1bGF0ZSB0aGUgYmFzZSAxMCBleHBvbmVudCBmcm9tIHRoZSBiYXNlIDFlNyBleHBvbmVudC5cclxuICBmdW5jdGlvbiBnZXRCYXNlMTBFeHBvbmVudChkaWdpdHMsIGUpIHtcclxuICAgIHZhciB3ID0gZGlnaXRzWzBdO1xyXG5cclxuICAgIC8vIEFkZCB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBvZiB0aGUgZmlyc3Qgd29yZCBvZiB0aGUgZGlnaXRzIGFycmF5LlxyXG4gICAgZm9yICggZSAqPSBMT0dfQkFTRTsgdyA+PSAxMDsgdyAvPSAxMCkgZSsrO1xyXG4gICAgcmV0dXJuIGU7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gZ2V0TG4xMChDdG9yLCBzZCwgcHIpIHtcclxuICAgIGlmIChzZCA+IExOMTBfUFJFQ0lTSU9OKSB7XHJcblxyXG4gICAgICAvLyBSZXNldCBnbG9iYWwgc3RhdGUgaW4gY2FzZSB0aGUgZXhjZXB0aW9uIGlzIGNhdWdodC5cclxuICAgICAgZXh0ZXJuYWwgPSB0cnVlO1xyXG4gICAgICBpZiAocHIpIEN0b3IucHJlY2lzaW9uID0gcHI7XHJcbiAgICAgIHRocm93IEVycm9yKHByZWNpc2lvbkxpbWl0RXhjZWVkZWQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbmFsaXNlKG5ldyBDdG9yKExOMTApLCBzZCwgMSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gZ2V0UGkoQ3Rvciwgc2QsIHJtKSB7XHJcbiAgICBpZiAoc2QgPiBQSV9QUkVDSVNJT04pIHRocm93IEVycm9yKHByZWNpc2lvbkxpbWl0RXhjZWVkZWQpO1xyXG4gICAgcmV0dXJuIGZpbmFsaXNlKG5ldyBDdG9yKFBJKSwgc2QsIHJtLCB0cnVlKTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBnZXRQcmVjaXNpb24oZGlnaXRzKSB7XHJcbiAgICB2YXIgdyA9IGRpZ2l0cy5sZW5ndGggLSAxLFxyXG4gICAgICBsZW4gPSB3ICogTE9HX0JBU0UgKyAxO1xyXG5cclxuICAgIHcgPSBkaWdpdHNbd107XHJcblxyXG4gICAgLy8gSWYgbm9uLXplcm8uLi5cclxuICAgIGlmICh3KSB7XHJcblxyXG4gICAgICAvLyBTdWJ0cmFjdCB0aGUgbnVtYmVyIG9mIHRyYWlsaW5nIHplcm9zIG9mIHRoZSBsYXN0IHdvcmQuXHJcbiAgICAgIGZvciAoOyB3ICUgMTAgPT0gMDsgdyAvPSAxMCkgbGVuLS07XHJcblxyXG4gICAgICAvLyBBZGQgdGhlIG51bWJlciBvZiBkaWdpdHMgb2YgdGhlIGZpcnN0IHdvcmQuXHJcbiAgICAgIGZvciAodyA9IGRpZ2l0c1swXTsgdyA+PSAxMDsgdyAvPSAxMCkgbGVuKys7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxlbjtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBnZXRaZXJvU3RyaW5nKGspIHtcclxuICAgIHZhciB6cyA9ICcnO1xyXG4gICAgZm9yICg7IGstLTspIHpzICs9ICcwJztcclxuICAgIHJldHVybiB6cztcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSB2YWx1ZSBvZiBEZWNpbWFsIGB4YCB0byB0aGUgcG93ZXIgYG5gLCB3aGVyZSBgbmAgaXMgYW5cclxuICAgKiBpbnRlZ2VyIG9mIHR5cGUgbnVtYmVyLlxyXG4gICAqXHJcbiAgICogSW1wbGVtZW50cyAnZXhwb25lbnRpYXRpb24gYnkgc3F1YXJpbmcnLiBDYWxsZWQgYnkgYHBvd2AgYW5kIGBwYXJzZU90aGVyYC5cclxuICAgKlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGludFBvdyhDdG9yLCB4LCBuLCBwcikge1xyXG4gICAgdmFyIGlzVHJ1bmNhdGVkLFxyXG4gICAgICByID0gbmV3IEN0b3IoMSksXHJcblxyXG4gICAgICAvLyBNYXggbiBvZiA5MDA3MTk5MjU0NzQwOTkxIHRha2VzIDUzIGxvb3AgaXRlcmF0aW9ucy5cclxuICAgICAgLy8gTWF4aW11bSBkaWdpdHMgYXJyYXkgbGVuZ3RoOyBsZWF2ZXMgWzI4LCAzNF0gZ3VhcmQgZGlnaXRzLlxyXG4gICAgICBrID0gTWF0aC5jZWlsKHByIC8gTE9HX0JBU0UgKyA0KTtcclxuXHJcbiAgICBleHRlcm5hbCA9IGZhbHNlO1xyXG5cclxuICAgIGZvciAoOzspIHtcclxuICAgICAgaWYgKG4gJSAyKSB7XHJcbiAgICAgICAgciA9IHIudGltZXMoeCk7XHJcbiAgICAgICAgaWYgKHRydW5jYXRlKHIuZCwgaykpIGlzVHJ1bmNhdGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbiA9IG1hdGhmbG9vcihuIC8gMik7XHJcbiAgICAgIGlmIChuID09PSAwKSB7XHJcblxyXG4gICAgICAgIC8vIFRvIGVuc3VyZSBjb3JyZWN0IHJvdW5kaW5nIHdoZW4gci5kIGlzIHRydW5jYXRlZCwgaW5jcmVtZW50IHRoZSBsYXN0IHdvcmQgaWYgaXQgaXMgemVyby5cclxuICAgICAgICBuID0gci5kLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgaWYgKGlzVHJ1bmNhdGVkICYmIHIuZFtuXSA9PT0gMCkgKytyLmRbbl07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHggPSB4LnRpbWVzKHgpO1xyXG4gICAgICB0cnVuY2F0ZSh4LmQsIGspO1xyXG4gICAgfVxyXG5cclxuICAgIGV4dGVybmFsID0gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4gcjtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBpc09kZChuKSB7XHJcbiAgICByZXR1cm4gbi5kW24uZC5sZW5ndGggLSAxXSAmIDE7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBIYW5kbGUgYG1heGAgYW5kIGBtaW5gLiBgbHRndGAgaXMgJ2x0JyBvciAnZ3QnLlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIG1heE9yTWluKEN0b3IsIGFyZ3MsIGx0Z3QpIHtcclxuICAgIHZhciB5LFxyXG4gICAgICB4ID0gbmV3IEN0b3IoYXJnc1swXSksXHJcbiAgICAgIGkgPSAwO1xyXG5cclxuICAgIGZvciAoOyArK2kgPCBhcmdzLmxlbmd0aDspIHtcclxuICAgICAgeSA9IG5ldyBDdG9yKGFyZ3NbaV0pO1xyXG4gICAgICBpZiAoIXkucykge1xyXG4gICAgICAgIHggPSB5O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9IGVsc2UgaWYgKHhbbHRndF0oeSkpIHtcclxuICAgICAgICB4ID0geTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB4O1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIG5hdHVyYWwgZXhwb25lbnRpYWwgb2YgYHhgIHJvdW5kZWQgdG8gYHNkYCBzaWduaWZpY2FudFxyXG4gICAqIGRpZ2l0cy5cclxuICAgKlxyXG4gICAqIFRheWxvci9NYWNsYXVyaW4gc2VyaWVzLlxyXG4gICAqXHJcbiAgICogZXhwKHgpID0geF4wLzAhICsgeF4xLzEhICsgeF4yLzIhICsgeF4zLzMhICsgLi4uXHJcbiAgICpcclxuICAgKiBBcmd1bWVudCByZWR1Y3Rpb246XHJcbiAgICogICBSZXBlYXQgeCA9IHggLyAzMiwgayArPSA1LCB1bnRpbCB8eHwgPCAwLjFcclxuICAgKiAgIGV4cCh4KSA9IGV4cCh4IC8gMl5rKV4oMl5rKVxyXG4gICAqXHJcbiAgICogUHJldmlvdXNseSwgdGhlIGFyZ3VtZW50IHdhcyBpbml0aWFsbHkgcmVkdWNlZCBieVxyXG4gICAqIGV4cCh4KSA9IGV4cChyKSAqIDEwXmsgIHdoZXJlIHIgPSB4IC0gayAqIGxuMTAsIGsgPSBmbG9vcih4IC8gbG4xMClcclxuICAgKiB0byBmaXJzdCBwdXQgciBpbiB0aGUgcmFuZ2UgWzAsIGxuMTBdLCBiZWZvcmUgZGl2aWRpbmcgYnkgMzIgdW50aWwgfHh8IDwgMC4xLCBidXQgdGhpcyB3YXNcclxuICAgKiBmb3VuZCB0byBiZSBzbG93ZXIgdGhhbiBqdXN0IGRpdmlkaW5nIHJlcGVhdGVkbHkgYnkgMzIgYXMgYWJvdmUuXHJcbiAgICpcclxuICAgKiBNYXggaW50ZWdlciBhcmd1bWVudDogZXhwKCcyMDcyMzI2NTgzNjk0NjQxMycpID0gNi4zZSs5MDAwMDAwMDAwMDAwMDAwXHJcbiAgICogTWluIGludGVnZXIgYXJndW1lbnQ6IGV4cCgnLTIwNzIzMjY1ODM2OTQ2NDExJykgPSAxLjJlLTkwMDAwMDAwMDAwMDAwMDBcclxuICAgKiAoTWF0aCBvYmplY3QgaW50ZWdlciBtaW4vbWF4OiBNYXRoLmV4cCg3MDkpID0gOC4yZSszMDcsIE1hdGguZXhwKC03NDUpID0gNWUtMzI0KVxyXG4gICAqXHJcbiAgICogIGV4cChJbmZpbml0eSkgID0gSW5maW5pdHlcclxuICAgKiAgZXhwKC1JbmZpbml0eSkgPSAwXHJcbiAgICogIGV4cChOYU4pICAgICAgID0gTmFOXHJcbiAgICogIGV4cCjCsTApICAgICAgICA9IDFcclxuICAgKlxyXG4gICAqICBleHAoeCkgaXMgbm9uLXRlcm1pbmF0aW5nIGZvciBhbnkgZmluaXRlLCBub24temVybyB4LlxyXG4gICAqXHJcbiAgICogIFRoZSByZXN1bHQgd2lsbCBhbHdheXMgYmUgY29ycmVjdGx5IHJvdW5kZWQuXHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiBuYXR1cmFsRXhwb25lbnRpYWwoeCwgc2QpIHtcclxuICAgIHZhciBkZW5vbWluYXRvciwgZ3VhcmQsIGosIHBvdywgc3VtLCB0LCB3cHIsXHJcbiAgICAgIHJlcCA9IDAsXHJcbiAgICAgIGkgPSAwLFxyXG4gICAgICBrID0gMCxcclxuICAgICAgQ3RvciA9IHguY29uc3RydWN0b3IsXHJcbiAgICAgIHJtID0gQ3Rvci5yb3VuZGluZyxcclxuICAgICAgcHIgPSBDdG9yLnByZWNpc2lvbjtcclxuXHJcbiAgICAvLyAwL05hTi9JbmZpbml0eT9cclxuICAgIGlmICgheC5kIHx8ICF4LmRbMF0gfHwgeC5lID4gMTcpIHtcclxuXHJcbiAgICAgIHJldHVybiBuZXcgQ3Rvcih4LmRcclxuICAgICAgICA/ICF4LmRbMF0gPyAxIDogeC5zIDwgMCA/IDAgOiAxIC8gMFxyXG4gICAgICAgIDogeC5zID8geC5zIDwgMCA/IDAgOiB4IDogMCAvIDApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzZCA9PSBudWxsKSB7XHJcbiAgICAgIGV4dGVybmFsID0gZmFsc2U7XHJcbiAgICAgIHdwciA9IHByO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd3ByID0gc2Q7XHJcbiAgICB9XHJcblxyXG4gICAgdCA9IG5ldyBDdG9yKDAuMDMxMjUpO1xyXG5cclxuICAgIC8vIHdoaWxlIGFicyh4KSA+PSAwLjFcclxuICAgIHdoaWxlICh4LmUgPiAtMikge1xyXG5cclxuICAgICAgLy8geCA9IHggLyAyXjVcclxuICAgICAgeCA9IHgudGltZXModCk7XHJcbiAgICAgIGsgKz0gNTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBVc2UgMiAqIGxvZzEwKDJeaykgKyA1IChlbXBpcmljYWxseSBkZXJpdmVkKSB0byBlc3RpbWF0ZSB0aGUgaW5jcmVhc2UgaW4gcHJlY2lzaW9uXHJcbiAgICAvLyBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoZSBmaXJzdCA0IHJvdW5kaW5nIGRpZ2l0cyBhcmUgY29ycmVjdC5cclxuICAgIGd1YXJkID0gTWF0aC5sb2cobWF0aHBvdygyLCBrKSkgLyBNYXRoLkxOMTAgKiAyICsgNSB8IDA7XHJcbiAgICB3cHIgKz0gZ3VhcmQ7XHJcbiAgICBkZW5vbWluYXRvciA9IHBvdyA9IHN1bSA9IG5ldyBDdG9yKDEpO1xyXG4gICAgQ3Rvci5wcmVjaXNpb24gPSB3cHI7XHJcblxyXG4gICAgZm9yICg7Oykge1xyXG4gICAgICBwb3cgPSBmaW5hbGlzZShwb3cudGltZXMoeCksIHdwciwgMSk7XHJcbiAgICAgIGRlbm9taW5hdG9yID0gZGVub21pbmF0b3IudGltZXMoKytpKTtcclxuICAgICAgdCA9IHN1bS5wbHVzKGRpdmlkZShwb3csIGRlbm9taW5hdG9yLCB3cHIsIDEpKTtcclxuXHJcbiAgICAgIGlmIChkaWdpdHNUb1N0cmluZyh0LmQpLnNsaWNlKDAsIHdwcikgPT09IGRpZ2l0c1RvU3RyaW5nKHN1bS5kKS5zbGljZSgwLCB3cHIpKSB7XHJcbiAgICAgICAgaiA9IGs7XHJcbiAgICAgICAgd2hpbGUgKGotLSkgc3VtID0gZmluYWxpc2Uoc3VtLnRpbWVzKHN1bSksIHdwciwgMSk7XHJcblxyXG4gICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgZmlyc3QgNCByb3VuZGluZyBkaWdpdHMgYXJlIFs0OV05OTkuXHJcbiAgICAgICAgLy8gSWYgc28sIHJlcGVhdCB0aGUgc3VtbWF0aW9uIHdpdGggYSBoaWdoZXIgcHJlY2lzaW9uLCBvdGhlcndpc2VcclxuICAgICAgICAvLyBlLmcuIHdpdGggcHJlY2lzaW9uOiAxOCwgcm91bmRpbmc6IDFcclxuICAgICAgICAvLyBleHAoMTguNDA0MjcyNDYyNTk1MDM0MDgzNTY3NzkzOTE5ODQzNzYxKSA9IDk4MzcyNTYwLjEyMjk5OTk5OTkgKHNob3VsZCBiZSA5ODM3MjU2MC4xMjMpXHJcbiAgICAgICAgLy8gYHdwciAtIGd1YXJkYCBpcyB0aGUgaW5kZXggb2YgZmlyc3Qgcm91bmRpbmcgZGlnaXQuXHJcbiAgICAgICAgaWYgKHNkID09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICBpZiAocmVwIDwgMyAmJiBjaGVja1JvdW5kaW5nRGlnaXRzKHN1bS5kLCB3cHIgLSBndWFyZCwgcm0sIHJlcCkpIHtcclxuICAgICAgICAgICAgQ3Rvci5wcmVjaXNpb24gPSB3cHIgKz0gMTA7XHJcbiAgICAgICAgICAgIGRlbm9taW5hdG9yID0gcG93ID0gdCA9IG5ldyBDdG9yKDEpO1xyXG4gICAgICAgICAgICBpID0gMDtcclxuICAgICAgICAgICAgcmVwKys7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gZmluYWxpc2Uoc3VtLCBDdG9yLnByZWNpc2lvbiA9IHByLCBybSwgZXh0ZXJuYWwgPSB0cnVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgQ3Rvci5wcmVjaXNpb24gPSBwcjtcclxuICAgICAgICAgIHJldHVybiBzdW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBzdW0gPSB0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIG5hdHVyYWwgbG9nYXJpdGhtIG9mIGB4YCByb3VuZGVkIHRvIGBzZGAgc2lnbmlmaWNhbnRcclxuICAgKiBkaWdpdHMuXHJcbiAgICpcclxuICAgKiAgbG4oLW4pICAgICAgICA9IE5hTlxyXG4gICAqICBsbigwKSAgICAgICAgID0gLUluZmluaXR5XHJcbiAgICogIGxuKC0wKSAgICAgICAgPSAtSW5maW5pdHlcclxuICAgKiAgbG4oMSkgICAgICAgICA9IDBcclxuICAgKiAgbG4oSW5maW5pdHkpICA9IEluZmluaXR5XHJcbiAgICogIGxuKC1JbmZpbml0eSkgPSBOYU5cclxuICAgKiAgbG4oTmFOKSAgICAgICA9IE5hTlxyXG4gICAqXHJcbiAgICogIGxuKG4pIChuICE9IDEpIGlzIG5vbi10ZXJtaW5hdGluZy5cclxuICAgKlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIG5hdHVyYWxMb2dhcml0aG0oeSwgc2QpIHtcclxuICAgIHZhciBjLCBjMCwgZGVub21pbmF0b3IsIGUsIG51bWVyYXRvciwgcmVwLCBzdW0sIHQsIHdwciwgeDEsIHgyLFxyXG4gICAgICBuID0gMSxcclxuICAgICAgZ3VhcmQgPSAxMCxcclxuICAgICAgeCA9IHksXHJcbiAgICAgIHhkID0geC5kLFxyXG4gICAgICBDdG9yID0geC5jb25zdHJ1Y3RvcixcclxuICAgICAgcm0gPSBDdG9yLnJvdW5kaW5nLFxyXG4gICAgICBwciA9IEN0b3IucHJlY2lzaW9uO1xyXG5cclxuICAgIC8vIElzIHggbmVnYXRpdmUgb3IgSW5maW5pdHksIE5hTiwgMCBvciAxP1xyXG4gICAgaWYgKHgucyA8IDAgfHwgIXhkIHx8ICF4ZFswXSB8fCAheC5lICYmIHhkWzBdID09IDEgJiYgeGQubGVuZ3RoID09IDEpIHtcclxuICAgICAgcmV0dXJuIG5ldyBDdG9yKHhkICYmICF4ZFswXSA/IC0xIC8gMCA6IHgucyAhPSAxID8gTmFOIDogeGQgPyAwIDogeCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNkID09IG51bGwpIHtcclxuICAgICAgZXh0ZXJuYWwgPSBmYWxzZTtcclxuICAgICAgd3ByID0gcHI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB3cHIgPSBzZDtcclxuICAgIH1cclxuXHJcbiAgICBDdG9yLnByZWNpc2lvbiA9IHdwciArPSBndWFyZDtcclxuICAgIGMgPSBkaWdpdHNUb1N0cmluZyh4ZCk7XHJcbiAgICBjMCA9IGMuY2hhckF0KDApO1xyXG5cclxuICAgIGlmIChNYXRoLmFicyhlID0geC5lKSA8IDEuNWUxNSkge1xyXG5cclxuICAgICAgLy8gQXJndW1lbnQgcmVkdWN0aW9uLlxyXG4gICAgICAvLyBUaGUgc2VyaWVzIGNvbnZlcmdlcyBmYXN0ZXIgdGhlIGNsb3NlciB0aGUgYXJndW1lbnQgaXMgdG8gMSwgc28gdXNpbmdcclxuICAgICAgLy8gbG4oYV5iKSA9IGIgKiBsbihhKSwgICBsbihhKSA9IGxuKGFeYikgLyBiXHJcbiAgICAgIC8vIG11bHRpcGx5IHRoZSBhcmd1bWVudCBieSBpdHNlbGYgdW50aWwgdGhlIGxlYWRpbmcgZGlnaXRzIG9mIHRoZSBzaWduaWZpY2FuZCBhcmUgNywgOCwgOSxcclxuICAgICAgLy8gMTAsIDExLCAxMiBvciAxMywgcmVjb3JkaW5nIHRoZSBudW1iZXIgb2YgbXVsdGlwbGljYXRpb25zIHNvIHRoZSBzdW0gb2YgdGhlIHNlcmllcyBjYW5cclxuICAgICAgLy8gbGF0ZXIgYmUgZGl2aWRlZCBieSB0aGlzIG51bWJlciwgdGhlbiBzZXBhcmF0ZSBvdXQgdGhlIHBvd2VyIG9mIDEwIHVzaW5nXHJcbiAgICAgIC8vIGxuKGEqMTBeYikgPSBsbihhKSArIGIqbG4oMTApLlxyXG5cclxuICAgICAgLy8gbWF4IG4gaXMgMjEgKGdpdmVzIDAuOSwgMS4wIG9yIDEuMSkgKDllMTUgLyAyMSA9IDQuMmUxNCkuXHJcbiAgICAgIC8vd2hpbGUgKGMwIDwgOSAmJiBjMCAhPSAxIHx8IGMwID09IDEgJiYgYy5jaGFyQXQoMSkgPiAxKSB7XHJcbiAgICAgIC8vIG1heCBuIGlzIDYgKGdpdmVzIDAuNyAtIDEuMylcclxuICAgICAgd2hpbGUgKGMwIDwgNyAmJiBjMCAhPSAxIHx8IGMwID09IDEgJiYgYy5jaGFyQXQoMSkgPiAzKSB7XHJcbiAgICAgICAgeCA9IHgudGltZXMoeSk7XHJcbiAgICAgICAgYyA9IGRpZ2l0c1RvU3RyaW5nKHguZCk7XHJcbiAgICAgICAgYzAgPSBjLmNoYXJBdCgwKTtcclxuICAgICAgICBuKys7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGUgPSB4LmU7XHJcblxyXG4gICAgICBpZiAoYzAgPiAxKSB7XHJcbiAgICAgICAgeCA9IG5ldyBDdG9yKCcwLicgKyBjKTtcclxuICAgICAgICBlKys7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgeCA9IG5ldyBDdG9yKGMwICsgJy4nICsgYy5zbGljZSgxKSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAvLyBUaGUgYXJndW1lbnQgcmVkdWN0aW9uIG1ldGhvZCBhYm92ZSBtYXkgcmVzdWx0IGluIG92ZXJmbG93IGlmIHRoZSBhcmd1bWVudCB5IGlzIGEgbWFzc2l2ZVxyXG4gICAgICAvLyBudW1iZXIgd2l0aCBleHBvbmVudCA+PSAxNTAwMDAwMDAwMDAwMDAwICg5ZTE1IC8gNiA9IDEuNWUxNSksIHNvIGluc3RlYWQgcmVjYWxsIHRoaXNcclxuICAgICAgLy8gZnVuY3Rpb24gdXNpbmcgbG4oeCoxMF5lKSA9IGxuKHgpICsgZSpsbigxMCkuXHJcbiAgICAgIHQgPSBnZXRMbjEwKEN0b3IsIHdwciArIDIsIHByKS50aW1lcyhlICsgJycpO1xyXG4gICAgICB4ID0gbmF0dXJhbExvZ2FyaXRobShuZXcgQ3RvcihjMCArICcuJyArIGMuc2xpY2UoMSkpLCB3cHIgLSBndWFyZCkucGx1cyh0KTtcclxuICAgICAgQ3Rvci5wcmVjaXNpb24gPSBwcjtcclxuXHJcbiAgICAgIHJldHVybiBzZCA9PSBudWxsID8gZmluYWxpc2UoeCwgcHIsIHJtLCBleHRlcm5hbCA9IHRydWUpIDogeDtcclxuICAgIH1cclxuXHJcbiAgICAvLyB4MSBpcyB4IHJlZHVjZWQgdG8gYSB2YWx1ZSBuZWFyIDEuXHJcbiAgICB4MSA9IHg7XHJcblxyXG4gICAgLy8gVGF5bG9yIHNlcmllcy5cclxuICAgIC8vIGxuKHkpID0gbG4oKDEgKyB4KS8oMSAtIHgpKSA9IDIoeCArIHheMy8zICsgeF41LzUgKyB4XjcvNyArIC4uLilcclxuICAgIC8vIHdoZXJlIHggPSAoeSAtIDEpLyh5ICsgMSkgICAgKHx4fCA8IDEpXHJcbiAgICBzdW0gPSBudW1lcmF0b3IgPSB4ID0gZGl2aWRlKHgubWludXMoMSksIHgucGx1cygxKSwgd3ByLCAxKTtcclxuICAgIHgyID0gZmluYWxpc2UoeC50aW1lcyh4KSwgd3ByLCAxKTtcclxuICAgIGRlbm9taW5hdG9yID0gMztcclxuXHJcbiAgICBmb3IgKDs7KSB7XHJcbiAgICAgIG51bWVyYXRvciA9IGZpbmFsaXNlKG51bWVyYXRvci50aW1lcyh4MiksIHdwciwgMSk7XHJcbiAgICAgIHQgPSBzdW0ucGx1cyhkaXZpZGUobnVtZXJhdG9yLCBuZXcgQ3RvcihkZW5vbWluYXRvciksIHdwciwgMSkpO1xyXG5cclxuICAgICAgaWYgKGRpZ2l0c1RvU3RyaW5nKHQuZCkuc2xpY2UoMCwgd3ByKSA9PT0gZGlnaXRzVG9TdHJpbmcoc3VtLmQpLnNsaWNlKDAsIHdwcikpIHtcclxuICAgICAgICBzdW0gPSBzdW0udGltZXMoMik7XHJcblxyXG4gICAgICAgIC8vIFJldmVyc2UgdGhlIGFyZ3VtZW50IHJlZHVjdGlvbi4gQ2hlY2sgdGhhdCBlIGlzIG5vdCAwIGJlY2F1c2UsIGJlc2lkZXMgcHJldmVudGluZyBhblxyXG4gICAgICAgIC8vIHVubmVjZXNzYXJ5IGNhbGN1bGF0aW9uLCAtMCArIDAgPSArMCBhbmQgdG8gZW5zdXJlIGNvcnJlY3Qgcm91bmRpbmcgLTAgbmVlZHMgdG8gc3RheSAtMC5cclxuICAgICAgICBpZiAoZSAhPT0gMCkgc3VtID0gc3VtLnBsdXMoZ2V0TG4xMChDdG9yLCB3cHIgKyAyLCBwcikudGltZXMoZSArICcnKSk7XHJcbiAgICAgICAgc3VtID0gZGl2aWRlKHN1bSwgbmV3IEN0b3IobiksIHdwciwgMSk7XHJcblxyXG4gICAgICAgIC8vIElzIHJtID4gMyBhbmQgdGhlIGZpcnN0IDQgcm91bmRpbmcgZGlnaXRzIDQ5OTksIG9yIHJtIDwgNCAob3IgdGhlIHN1bW1hdGlvbiBoYXNcclxuICAgICAgICAvLyBiZWVuIHJlcGVhdGVkIHByZXZpb3VzbHkpIGFuZCB0aGUgZmlyc3QgNCByb3VuZGluZyBkaWdpdHMgOTk5OT9cclxuICAgICAgICAvLyBJZiBzbywgcmVzdGFydCB0aGUgc3VtbWF0aW9uIHdpdGggYSBoaWdoZXIgcHJlY2lzaW9uLCBvdGhlcndpc2VcclxuICAgICAgICAvLyBlLmcuIHdpdGggcHJlY2lzaW9uOiAxMiwgcm91bmRpbmc6IDFcclxuICAgICAgICAvLyBsbigxMzU1MjAwMjguNjEyNjA5MTcxNDI2NTM4MTUzMykgPSAxOC43MjQ2Mjk5OTk5IHdoZW4gaXQgc2hvdWxkIGJlIDE4LjcyNDYzLlxyXG4gICAgICAgIC8vIGB3cHIgLSBndWFyZGAgaXMgdGhlIGluZGV4IG9mIGZpcnN0IHJvdW5kaW5nIGRpZ2l0LlxyXG4gICAgICAgIGlmIChzZCA9PSBudWxsKSB7XHJcbiAgICAgICAgICBpZiAoY2hlY2tSb3VuZGluZ0RpZ2l0cyhzdW0uZCwgd3ByIC0gZ3VhcmQsIHJtLCByZXApKSB7XHJcbiAgICAgICAgICAgIEN0b3IucHJlY2lzaW9uID0gd3ByICs9IGd1YXJkO1xyXG4gICAgICAgICAgICB0ID0gbnVtZXJhdG9yID0geCA9IGRpdmlkZSh4MS5taW51cygxKSwgeDEucGx1cygxKSwgd3ByLCAxKTtcclxuICAgICAgICAgICAgeDIgPSBmaW5hbGlzZSh4LnRpbWVzKHgpLCB3cHIsIDEpO1xyXG4gICAgICAgICAgICBkZW5vbWluYXRvciA9IHJlcCA9IDE7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gZmluYWxpc2Uoc3VtLCBDdG9yLnByZWNpc2lvbiA9IHByLCBybSwgZXh0ZXJuYWwgPSB0cnVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgQ3Rvci5wcmVjaXNpb24gPSBwcjtcclxuICAgICAgICAgIHJldHVybiBzdW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBzdW0gPSB0O1xyXG4gICAgICBkZW5vbWluYXRvciArPSAyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8vIMKxSW5maW5pdHksIE5hTi5cclxuICBmdW5jdGlvbiBub25GaW5pdGVUb1N0cmluZyh4KSB7XHJcbiAgICAvLyBVbnNpZ25lZC5cclxuICAgIHJldHVybiBTdHJpbmcoeC5zICogeC5zIC8gMCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBQYXJzZSB0aGUgdmFsdWUgb2YgYSBuZXcgRGVjaW1hbCBgeGAgZnJvbSBzdHJpbmcgYHN0cmAuXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcGFyc2VEZWNpbWFsKHgsIHN0cikge1xyXG4gICAgdmFyIGUsIGksIGxlbjtcclxuXHJcbiAgICAvLyBEZWNpbWFsIHBvaW50P1xyXG4gICAgaWYgKChlID0gc3RyLmluZGV4T2YoJy4nKSkgPiAtMSkgc3RyID0gc3RyLnJlcGxhY2UoJy4nLCAnJyk7XHJcblxyXG4gICAgLy8gRXhwb25lbnRpYWwgZm9ybT9cclxuICAgIGlmICgoaSA9IHN0ci5zZWFyY2goL2UvaSkpID4gMCkge1xyXG5cclxuICAgICAgLy8gRGV0ZXJtaW5lIGV4cG9uZW50LlxyXG4gICAgICBpZiAoZSA8IDApIGUgPSBpO1xyXG4gICAgICBlICs9ICtzdHIuc2xpY2UoaSArIDEpO1xyXG4gICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIGkpO1xyXG4gICAgfSBlbHNlIGlmIChlIDwgMCkge1xyXG5cclxuICAgICAgLy8gSW50ZWdlci5cclxuICAgICAgZSA9IHN0ci5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIGxlYWRpbmcgemVyb3MuXHJcbiAgICBmb3IgKGkgPSAwOyBzdHIuY2hhckNvZGVBdChpKSA9PT0gNDg7IGkrKyk7XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIHRyYWlsaW5nIHplcm9zLlxyXG4gICAgZm9yIChsZW4gPSBzdHIubGVuZ3RoOyBzdHIuY2hhckNvZGVBdChsZW4gLSAxKSA9PT0gNDg7IC0tbGVuKTtcclxuICAgIHN0ciA9IHN0ci5zbGljZShpLCBsZW4pO1xyXG5cclxuICAgIGlmIChzdHIpIHtcclxuICAgICAgbGVuIC09IGk7XHJcbiAgICAgIHguZSA9IGUgPSBlIC0gaSAtIDE7XHJcbiAgICAgIHguZCA9IFtdO1xyXG5cclxuICAgICAgLy8gVHJhbnNmb3JtIGJhc2VcclxuXHJcbiAgICAgIC8vIGUgaXMgdGhlIGJhc2UgMTAgZXhwb25lbnQuXHJcbiAgICAgIC8vIGkgaXMgd2hlcmUgdG8gc2xpY2Ugc3RyIHRvIGdldCB0aGUgZmlyc3Qgd29yZCBvZiB0aGUgZGlnaXRzIGFycmF5LlxyXG4gICAgICBpID0gKGUgKyAxKSAlIExPR19CQVNFO1xyXG4gICAgICBpZiAoZSA8IDApIGkgKz0gTE9HX0JBU0U7XHJcblxyXG4gICAgICBpZiAoaSA8IGxlbikge1xyXG4gICAgICAgIGlmIChpKSB4LmQucHVzaCgrc3RyLnNsaWNlKDAsIGkpKTtcclxuICAgICAgICBmb3IgKGxlbiAtPSBMT0dfQkFTRTsgaSA8IGxlbjspIHguZC5wdXNoKCtzdHIuc2xpY2UoaSwgaSArPSBMT0dfQkFTRSkpO1xyXG4gICAgICAgIHN0ciA9IHN0ci5zbGljZShpKTtcclxuICAgICAgICBpID0gTE9HX0JBU0UgLSBzdHIubGVuZ3RoO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGkgLT0gbGVuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3IgKDsgaS0tOykgc3RyICs9ICcwJztcclxuICAgICAgeC5kLnB1c2goK3N0cik7XHJcblxyXG4gICAgICBpZiAoZXh0ZXJuYWwpIHtcclxuXHJcbiAgICAgICAgLy8gT3ZlcmZsb3c/XHJcbiAgICAgICAgaWYgKHguZSA+IHguY29uc3RydWN0b3IubWF4RSkge1xyXG5cclxuICAgICAgICAgIC8vIEluZmluaXR5LlxyXG4gICAgICAgICAgeC5kID0gbnVsbDtcclxuICAgICAgICAgIHguZSA9IE5hTjtcclxuXHJcbiAgICAgICAgLy8gVW5kZXJmbG93P1xyXG4gICAgICAgIH0gZWxzZSBpZiAoeC5lIDwgeC5jb25zdHJ1Y3Rvci5taW5FKSB7XHJcblxyXG4gICAgICAgICAgLy8gWmVyby5cclxuICAgICAgICAgIHguZSA9IDA7XHJcbiAgICAgICAgICB4LmQgPSBbMF07XHJcbiAgICAgICAgICAvLyB4LmNvbnN0cnVjdG9yLnVuZGVyZmxvdyA9IHRydWU7XHJcbiAgICAgICAgfSAvLyBlbHNlIHguY29uc3RydWN0b3IudW5kZXJmbG93ID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAvLyBaZXJvLlxyXG4gICAgICB4LmUgPSAwO1xyXG4gICAgICB4LmQgPSBbMF07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHg7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBQYXJzZSB0aGUgdmFsdWUgb2YgYSBuZXcgRGVjaW1hbCBgeGAgZnJvbSBhIHN0cmluZyBgc3RyYCwgd2hpY2ggaXMgbm90IGEgZGVjaW1hbCB2YWx1ZS5cclxuICAgKi9cclxuICBmdW5jdGlvbiBwYXJzZU90aGVyKHgsIHN0cikge1xyXG4gICAgdmFyIGJhc2UsIEN0b3IsIGRpdmlzb3IsIGksIGlzRmxvYXQsIGxlbiwgcCwgeGQsIHhlO1xyXG5cclxuICAgIGlmIChzdHIuaW5kZXhPZignXycpID4gLTEpIHtcclxuICAgICAgc3RyID0gc3RyLnJlcGxhY2UoLyhcXGQpXyg/PVxcZCkvZywgJyQxJyk7XHJcbiAgICAgIGlmIChpc0RlY2ltYWwudGVzdChzdHIpKSByZXR1cm4gcGFyc2VEZWNpbWFsKHgsIHN0cik7XHJcbiAgICB9IGVsc2UgaWYgKHN0ciA9PT0gJ0luZmluaXR5JyB8fCBzdHIgPT09ICdOYU4nKSB7XHJcbiAgICAgIGlmICghK3N0cikgeC5zID0gTmFOO1xyXG4gICAgICB4LmUgPSBOYU47XHJcbiAgICAgIHguZCA9IG51bGw7XHJcbiAgICAgIHJldHVybiB4O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc0hleC50ZXN0KHN0cikpICB7XHJcbiAgICAgIGJhc2UgPSAxNjtcclxuICAgICAgc3RyID0gc3RyLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9IGVsc2UgaWYgKGlzQmluYXJ5LnRlc3Qoc3RyKSkgIHtcclxuICAgICAgYmFzZSA9IDI7XHJcbiAgICB9IGVsc2UgaWYgKGlzT2N0YWwudGVzdChzdHIpKSAge1xyXG4gICAgICBiYXNlID0gODtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IEVycm9yKGludmFsaWRBcmd1bWVudCArIHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSXMgdGhlcmUgYSBiaW5hcnkgZXhwb25lbnQgcGFydD9cclxuICAgIGkgPSBzdHIuc2VhcmNoKC9wL2kpO1xyXG5cclxuICAgIGlmIChpID4gMCkge1xyXG4gICAgICBwID0gK3N0ci5zbGljZShpICsgMSk7XHJcbiAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMiwgaSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzdHIgPSBzdHIuc2xpY2UoMik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ29udmVydCBgc3RyYCBhcyBhbiBpbnRlZ2VyIHRoZW4gZGl2aWRlIHRoZSByZXN1bHQgYnkgYGJhc2VgIHJhaXNlZCB0byBhIHBvd2VyIHN1Y2ggdGhhdCB0aGVcclxuICAgIC8vIGZyYWN0aW9uIHBhcnQgd2lsbCBiZSByZXN0b3JlZC5cclxuICAgIGkgPSBzdHIuaW5kZXhPZignLicpO1xyXG4gICAgaXNGbG9hdCA9IGkgPj0gMDtcclxuICAgIEN0b3IgPSB4LmNvbnN0cnVjdG9yO1xyXG5cclxuICAgIGlmIChpc0Zsb2F0KSB7XHJcbiAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKCcuJywgJycpO1xyXG4gICAgICBsZW4gPSBzdHIubGVuZ3RoO1xyXG4gICAgICBpID0gbGVuIC0gaTtcclxuXHJcbiAgICAgIC8vIGxvZ1sxMF0oMTYpID0gMS4yMDQxLi4uICwgbG9nWzEwXSg4OCkgPSAxLjk0NDQuLi4uXHJcbiAgICAgIGRpdmlzb3IgPSBpbnRQb3coQ3RvciwgbmV3IEN0b3IoYmFzZSksIGksIGkgKiAyKTtcclxuICAgIH1cclxuXHJcbiAgICB4ZCA9IGNvbnZlcnRCYXNlKHN0ciwgYmFzZSwgQkFTRSk7XHJcbiAgICB4ZSA9IHhkLmxlbmd0aCAtIDE7XHJcblxyXG4gICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHplcm9zLlxyXG4gICAgZm9yIChpID0geGU7IHhkW2ldID09PSAwOyAtLWkpIHhkLnBvcCgpO1xyXG4gICAgaWYgKGkgPCAwKSByZXR1cm4gbmV3IEN0b3IoeC5zICogMCk7XHJcbiAgICB4LmUgPSBnZXRCYXNlMTBFeHBvbmVudCh4ZCwgeGUpO1xyXG4gICAgeC5kID0geGQ7XHJcbiAgICBleHRlcm5hbCA9IGZhbHNlO1xyXG5cclxuICAgIC8vIEF0IHdoYXQgcHJlY2lzaW9uIHRvIHBlcmZvcm0gdGhlIGRpdmlzaW9uIHRvIGVuc3VyZSBleGFjdCBjb252ZXJzaW9uP1xyXG4gICAgLy8gbWF4RGVjaW1hbEludGVnZXJQYXJ0RGlnaXRDb3VudCA9IGNlaWwobG9nWzEwXShiKSAqIG90aGVyQmFzZUludGVnZXJQYXJ0RGlnaXRDb3VudClcclxuICAgIC8vIGxvZ1sxMF0oMikgPSAwLjMwMTAzLCBsb2dbMTBdKDgpID0gMC45MDMwOSwgbG9nWzEwXSgxNikgPSAxLjIwNDEyXHJcbiAgICAvLyBFLmcuIGNlaWwoMS4yICogMykgPSA0LCBzbyB1cCB0byA0IGRlY2ltYWwgZGlnaXRzIGFyZSBuZWVkZWQgdG8gcmVwcmVzZW50IDMgaGV4IGludCBkaWdpdHMuXHJcbiAgICAvLyBtYXhEZWNpbWFsRnJhY3Rpb25QYXJ0RGlnaXRDb3VudCA9IHtIZXg6NHxPY3Q6M3xCaW46MX0gKiBvdGhlckJhc2VGcmFjdGlvblBhcnREaWdpdENvdW50XHJcbiAgICAvLyBUaGVyZWZvcmUgdXNpbmcgNCAqIHRoZSBudW1iZXIgb2YgZGlnaXRzIG9mIHN0ciB3aWxsIGFsd2F5cyBiZSBlbm91Z2guXHJcbiAgICBpZiAoaXNGbG9hdCkgeCA9IGRpdmlkZSh4LCBkaXZpc29yLCBsZW4gKiA0KTtcclxuXHJcbiAgICAvLyBNdWx0aXBseSBieSB0aGUgYmluYXJ5IGV4cG9uZW50IHBhcnQgaWYgcHJlc2VudC5cclxuICAgIGlmIChwKSB4ID0geC50aW1lcyhNYXRoLmFicyhwKSA8IDU0ID8gbWF0aHBvdygyLCBwKSA6IERlY2ltYWwucG93KDIsIHApKTtcclxuICAgIGV4dGVybmFsID0gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4geDtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIHNpbih4KSA9IHggLSB4XjMvMyEgKyB4XjUvNSEgLSAuLi5cclxuICAgKiB8eHwgPCBwaS8yXHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiBzaW5lKEN0b3IsIHgpIHtcclxuICAgIHZhciBrLFxyXG4gICAgICBsZW4gPSB4LmQubGVuZ3RoO1xyXG5cclxuICAgIGlmIChsZW4gPCAzKSB7XHJcbiAgICAgIHJldHVybiB4LmlzWmVybygpID8geCA6IHRheWxvclNlcmllcyhDdG9yLCAyLCB4LCB4KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBBcmd1bWVudCByZWR1Y3Rpb246IHNpbig1eCkgPSAxNipzaW5eNSh4KSAtIDIwKnNpbl4zKHgpICsgNSpzaW4oeClcclxuICAgIC8vIGkuZS4gc2luKHgpID0gMTYqc2luXjUoeC81KSAtIDIwKnNpbl4zKHgvNSkgKyA1KnNpbih4LzUpXHJcbiAgICAvLyBhbmQgIHNpbih4KSA9IHNpbih4LzUpKDUgKyBzaW5eMih4LzUpKDE2c2luXjIoeC81KSAtIDIwKSlcclxuXHJcbiAgICAvLyBFc3RpbWF0ZSB0aGUgb3B0aW11bSBudW1iZXIgb2YgdGltZXMgdG8gdXNlIHRoZSBhcmd1bWVudCByZWR1Y3Rpb24uXHJcbiAgICBrID0gMS40ICogTWF0aC5zcXJ0KGxlbik7XHJcbiAgICBrID0gayA+IDE2ID8gMTYgOiBrIHwgMDtcclxuXHJcbiAgICB4ID0geC50aW1lcygxIC8gdGlueVBvdyg1LCBrKSk7XHJcbiAgICB4ID0gdGF5bG9yU2VyaWVzKEN0b3IsIDIsIHgsIHgpO1xyXG5cclxuICAgIC8vIFJldmVyc2UgYXJndW1lbnQgcmVkdWN0aW9uXHJcbiAgICB2YXIgc2luMl94LFxyXG4gICAgICBkNSA9IG5ldyBDdG9yKDUpLFxyXG4gICAgICBkMTYgPSBuZXcgQ3RvcigxNiksXHJcbiAgICAgIGQyMCA9IG5ldyBDdG9yKDIwKTtcclxuICAgIGZvciAoOyBrLS07KSB7XHJcbiAgICAgIHNpbjJfeCA9IHgudGltZXMoeCk7XHJcbiAgICAgIHggPSB4LnRpbWVzKGQ1LnBsdXMoc2luMl94LnRpbWVzKGQxNi50aW1lcyhzaW4yX3gpLm1pbnVzKGQyMCkpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHg7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gQ2FsY3VsYXRlIFRheWxvciBzZXJpZXMgZm9yIGBjb3NgLCBgY29zaGAsIGBzaW5gIGFuZCBgc2luaGAuXHJcbiAgZnVuY3Rpb24gdGF5bG9yU2VyaWVzKEN0b3IsIG4sIHgsIHksIGlzSHlwZXJib2xpYykge1xyXG4gICAgdmFyIGosIHQsIHUsIHgyLFxyXG4gICAgICBpID0gMSxcclxuICAgICAgcHIgPSBDdG9yLnByZWNpc2lvbixcclxuICAgICAgayA9IE1hdGguY2VpbChwciAvIExPR19CQVNFKTtcclxuXHJcbiAgICBleHRlcm5hbCA9IGZhbHNlO1xyXG4gICAgeDIgPSB4LnRpbWVzKHgpO1xyXG4gICAgdSA9IG5ldyBDdG9yKHkpO1xyXG5cclxuICAgIGZvciAoOzspIHtcclxuICAgICAgdCA9IGRpdmlkZSh1LnRpbWVzKHgyKSwgbmV3IEN0b3IobisrICogbisrKSwgcHIsIDEpO1xyXG4gICAgICB1ID0gaXNIeXBlcmJvbGljID8geS5wbHVzKHQpIDogeS5taW51cyh0KTtcclxuICAgICAgeSA9IGRpdmlkZSh0LnRpbWVzKHgyKSwgbmV3IEN0b3IobisrICogbisrKSwgcHIsIDEpO1xyXG4gICAgICB0ID0gdS5wbHVzKHkpO1xyXG5cclxuICAgICAgaWYgKHQuZFtrXSAhPT0gdm9pZCAwKSB7XHJcbiAgICAgICAgZm9yIChqID0gazsgdC5kW2pdID09PSB1LmRbal0gJiYgai0tOyk7XHJcbiAgICAgICAgaWYgKGogPT0gLTEpIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBqID0gdTtcclxuICAgICAgdSA9IHk7XHJcbiAgICAgIHkgPSB0O1xyXG4gICAgICB0ID0gajtcclxuICAgICAgaSsrO1xyXG4gICAgfVxyXG5cclxuICAgIGV4dGVybmFsID0gdHJ1ZTtcclxuICAgIHQuZC5sZW5ndGggPSBrICsgMTtcclxuXHJcbiAgICByZXR1cm4gdDtcclxuICB9XHJcblxyXG5cclxuICAvLyBFeHBvbmVudCBlIG11c3QgYmUgcG9zaXRpdmUgYW5kIG5vbi16ZXJvLlxyXG4gIGZ1bmN0aW9uIHRpbnlQb3coYiwgZSkge1xyXG4gICAgdmFyIG4gPSBiO1xyXG4gICAgd2hpbGUgKC0tZSkgbiAqPSBiO1xyXG4gICAgcmV0dXJuIG47XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gUmV0dXJuIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiBgeGAgcmVkdWNlZCB0byBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gaGFsZiBwaS5cclxuICBmdW5jdGlvbiB0b0xlc3NUaGFuSGFsZlBpKEN0b3IsIHgpIHtcclxuICAgIHZhciB0LFxyXG4gICAgICBpc05lZyA9IHgucyA8IDAsXHJcbiAgICAgIHBpID0gZ2V0UGkoQ3RvciwgQ3Rvci5wcmVjaXNpb24sIDEpLFxyXG4gICAgICBoYWxmUGkgPSBwaS50aW1lcygwLjUpO1xyXG5cclxuICAgIHggPSB4LmFicygpO1xyXG5cclxuICAgIGlmICh4Lmx0ZShoYWxmUGkpKSB7XHJcbiAgICAgIHF1YWRyYW50ID0gaXNOZWcgPyA0IDogMTtcclxuICAgICAgcmV0dXJuIHg7XHJcbiAgICB9XHJcblxyXG4gICAgdCA9IHguZGl2VG9JbnQocGkpO1xyXG5cclxuICAgIGlmICh0LmlzWmVybygpKSB7XHJcbiAgICAgIHF1YWRyYW50ID0gaXNOZWcgPyAzIDogMjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHggPSB4Lm1pbnVzKHQudGltZXMocGkpKTtcclxuXHJcbiAgICAgIC8vIDAgPD0geCA8IHBpXHJcbiAgICAgIGlmICh4Lmx0ZShoYWxmUGkpKSB7XHJcbiAgICAgICAgcXVhZHJhbnQgPSBpc09kZCh0KSA/IChpc05lZyA/IDIgOiAzKSA6IChpc05lZyA/IDQgOiAxKTtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgICAgfVxyXG5cclxuICAgICAgcXVhZHJhbnQgPSBpc09kZCh0KSA/IChpc05lZyA/IDEgOiA0KSA6IChpc05lZyA/IDMgOiAyKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4geC5taW51cyhwaSkuYWJzKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIERlY2ltYWwgYHhgIGFzIGEgc3RyaW5nIGluIGJhc2UgYGJhc2VPdXRgLlxyXG4gICAqXHJcbiAgICogSWYgdGhlIG9wdGlvbmFsIGBzZGAgYXJndW1lbnQgaXMgcHJlc2VudCBpbmNsdWRlIGEgYmluYXJ5IGV4cG9uZW50IHN1ZmZpeC5cclxuICAgKi9cclxuICBmdW5jdGlvbiB0b1N0cmluZ0JpbmFyeSh4LCBiYXNlT3V0LCBzZCwgcm0pIHtcclxuICAgIHZhciBiYXNlLCBlLCBpLCBrLCBsZW4sIHJvdW5kVXAsIHN0ciwgeGQsIHksXHJcbiAgICAgIEN0b3IgPSB4LmNvbnN0cnVjdG9yLFxyXG4gICAgICBpc0V4cCA9IHNkICE9PSB2b2lkIDA7XHJcblxyXG4gICAgaWYgKGlzRXhwKSB7XHJcbiAgICAgIGNoZWNrSW50MzIoc2QsIDEsIE1BWF9ESUdJVFMpO1xyXG4gICAgICBpZiAocm0gPT09IHZvaWQgMCkgcm0gPSBDdG9yLnJvdW5kaW5nO1xyXG4gICAgICBlbHNlIGNoZWNrSW50MzIocm0sIDAsIDgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2QgPSBDdG9yLnByZWNpc2lvbjtcclxuICAgICAgcm0gPSBDdG9yLnJvdW5kaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICgheC5pc0Zpbml0ZSgpKSB7XHJcbiAgICAgIHN0ciA9IG5vbkZpbml0ZVRvU3RyaW5nKHgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3RyID0gZmluaXRlVG9TdHJpbmcoeCk7XHJcbiAgICAgIGkgPSBzdHIuaW5kZXhPZignLicpO1xyXG5cclxuICAgICAgLy8gVXNlIGV4cG9uZW50aWFsIG5vdGF0aW9uIGFjY29yZGluZyB0byBgdG9FeHBQb3NgIGFuZCBgdG9FeHBOZWdgPyBObywgYnV0IGlmIHJlcXVpcmVkOlxyXG4gICAgICAvLyBtYXhCaW5hcnlFeHBvbmVudCA9IGZsb29yKChkZWNpbWFsRXhwb25lbnQgKyAxKSAqIGxvZ1syXSgxMCkpXHJcbiAgICAgIC8vIG1pbkJpbmFyeUV4cG9uZW50ID0gZmxvb3IoZGVjaW1hbEV4cG9uZW50ICogbG9nWzJdKDEwKSlcclxuICAgICAgLy8gbG9nWzJdKDEwKSA9IDMuMzIxOTI4MDk0ODg3MzYyMzQ3ODcwMzE5NDI5NDg5MzkwMTc1ODY0XHJcblxyXG4gICAgICBpZiAoaXNFeHApIHtcclxuICAgICAgICBiYXNlID0gMjtcclxuICAgICAgICBpZiAoYmFzZU91dCA9PSAxNikge1xyXG4gICAgICAgICAgc2QgPSBzZCAqIDQgLSAzO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYmFzZU91dCA9PSA4KSB7XHJcbiAgICAgICAgICBzZCA9IHNkICogMyAtIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGJhc2UgPSBiYXNlT3V0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBDb252ZXJ0IHRoZSBudW1iZXIgYXMgYW4gaW50ZWdlciB0aGVuIGRpdmlkZSB0aGUgcmVzdWx0IGJ5IGl0cyBiYXNlIHJhaXNlZCB0byBhIHBvd2VyIHN1Y2hcclxuICAgICAgLy8gdGhhdCB0aGUgZnJhY3Rpb24gcGFydCB3aWxsIGJlIHJlc3RvcmVkLlxyXG5cclxuICAgICAgLy8gTm9uLWludGVnZXIuXHJcbiAgICAgIGlmIChpID49IDApIHtcclxuICAgICAgICBzdHIgPSBzdHIucmVwbGFjZSgnLicsICcnKTtcclxuICAgICAgICB5ID0gbmV3IEN0b3IoMSk7XHJcbiAgICAgICAgeS5lID0gc3RyLmxlbmd0aCAtIGk7XHJcbiAgICAgICAgeS5kID0gY29udmVydEJhc2UoZmluaXRlVG9TdHJpbmcoeSksIDEwLCBiYXNlKTtcclxuICAgICAgICB5LmUgPSB5LmQubGVuZ3RoO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB4ZCA9IGNvbnZlcnRCYXNlKHN0ciwgMTAsIGJhc2UpO1xyXG4gICAgICBlID0gbGVuID0geGQubGVuZ3RoO1xyXG5cclxuICAgICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHplcm9zLlxyXG4gICAgICBmb3IgKDsgeGRbLS1sZW5dID09IDA7KSB4ZC5wb3AoKTtcclxuXHJcbiAgICAgIGlmICgheGRbMF0pIHtcclxuICAgICAgICBzdHIgPSBpc0V4cCA/ICcwcCswJyA6ICcwJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaSA8IDApIHtcclxuICAgICAgICAgIGUtLTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgeCA9IG5ldyBDdG9yKHgpO1xyXG4gICAgICAgICAgeC5kID0geGQ7XHJcbiAgICAgICAgICB4LmUgPSBlO1xyXG4gICAgICAgICAgeCA9IGRpdmlkZSh4LCB5LCBzZCwgcm0sIDAsIGJhc2UpO1xyXG4gICAgICAgICAgeGQgPSB4LmQ7XHJcbiAgICAgICAgICBlID0geC5lO1xyXG4gICAgICAgICAgcm91bmRVcCA9IGluZXhhY3Q7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBUaGUgcm91bmRpbmcgZGlnaXQsIGkuZS4gdGhlIGRpZ2l0IGFmdGVyIHRoZSBkaWdpdCB0aGF0IG1heSBiZSByb3VuZGVkIHVwLlxyXG4gICAgICAgIGkgPSB4ZFtzZF07XHJcbiAgICAgICAgayA9IGJhc2UgLyAyO1xyXG4gICAgICAgIHJvdW5kVXAgPSByb3VuZFVwIHx8IHhkW3NkICsgMV0gIT09IHZvaWQgMDtcclxuXHJcbiAgICAgICAgcm91bmRVcCA9IHJtIDwgNFxyXG4gICAgICAgICAgPyAoaSAhPT0gdm9pZCAwIHx8IHJvdW5kVXApICYmIChybSA9PT0gMCB8fCBybSA9PT0gKHgucyA8IDAgPyAzIDogMikpXHJcbiAgICAgICAgICA6IGkgPiBrIHx8IGkgPT09IGsgJiYgKHJtID09PSA0IHx8IHJvdW5kVXAgfHwgcm0gPT09IDYgJiYgeGRbc2QgLSAxXSAmIDEgfHxcclxuICAgICAgICAgICAgcm0gPT09ICh4LnMgPCAwID8gOCA6IDcpKTtcclxuXHJcbiAgICAgICAgeGQubGVuZ3RoID0gc2Q7XHJcblxyXG4gICAgICAgIGlmIChyb3VuZFVwKSB7XHJcblxyXG4gICAgICAgICAgLy8gUm91bmRpbmcgdXAgbWF5IG1lYW4gdGhlIHByZXZpb3VzIGRpZ2l0IGhhcyB0byBiZSByb3VuZGVkIHVwIGFuZCBzbyBvbi5cclxuICAgICAgICAgIGZvciAoOyArK3hkWy0tc2RdID4gYmFzZSAtIDE7KSB7XHJcbiAgICAgICAgICAgIHhkW3NkXSA9IDA7XHJcbiAgICAgICAgICAgIGlmICghc2QpIHtcclxuICAgICAgICAgICAgICArK2U7XHJcbiAgICAgICAgICAgICAgeGQudW5zaGlmdCgxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRGV0ZXJtaW5lIHRyYWlsaW5nIHplcm9zLlxyXG4gICAgICAgIGZvciAobGVuID0geGQubGVuZ3RoOyAheGRbbGVuIC0gMV07IC0tbGVuKTtcclxuXHJcbiAgICAgICAgLy8gRS5nLiBbNCwgMTEsIDE1XSBiZWNvbWVzIDRiZi5cclxuICAgICAgICBmb3IgKGkgPSAwLCBzdHIgPSAnJzsgaSA8IGxlbjsgaSsrKSBzdHIgKz0gTlVNRVJBTFMuY2hhckF0KHhkW2ldKTtcclxuXHJcbiAgICAgICAgLy8gQWRkIGJpbmFyeSBleHBvbmVudCBzdWZmaXg/XHJcbiAgICAgICAgaWYgKGlzRXhwKSB7XHJcbiAgICAgICAgICBpZiAobGVuID4gMSkge1xyXG4gICAgICAgICAgICBpZiAoYmFzZU91dCA9PSAxNiB8fCBiYXNlT3V0ID09IDgpIHtcclxuICAgICAgICAgICAgICBpID0gYmFzZU91dCA9PSAxNiA/IDQgOiAzO1xyXG4gICAgICAgICAgICAgIGZvciAoLS1sZW47IGxlbiAlIGk7IGxlbisrKSBzdHIgKz0gJzAnO1xyXG4gICAgICAgICAgICAgIHhkID0gY29udmVydEJhc2Uoc3RyLCBiYXNlLCBiYXNlT3V0KTtcclxuICAgICAgICAgICAgICBmb3IgKGxlbiA9IHhkLmxlbmd0aDsgIXhkW2xlbiAtIDFdOyAtLWxlbik7XHJcblxyXG4gICAgICAgICAgICAgIC8vIHhkWzBdIHdpbGwgYWx3YXlzIGJlIGJlIDFcclxuICAgICAgICAgICAgICBmb3IgKGkgPSAxLCBzdHIgPSAnMS4nOyBpIDwgbGVuOyBpKyspIHN0ciArPSBOVU1FUkFMUy5jaGFyQXQoeGRbaV0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHN0ciA9IHN0ci5jaGFyQXQoMCkgKyAnLicgKyBzdHIuc2xpY2UoMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBzdHIgPSAgc3RyICsgKGUgPCAwID8gJ3AnIDogJ3ArJykgKyBlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZSA8IDApIHtcclxuICAgICAgICAgIGZvciAoOyArK2U7KSBzdHIgPSAnMCcgKyBzdHI7XHJcbiAgICAgICAgICBzdHIgPSAnMC4nICsgc3RyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoKytlID4gbGVuKSBmb3IgKGUgLT0gbGVuOyBlLS0gOykgc3RyICs9ICcwJztcclxuICAgICAgICAgIGVsc2UgaWYgKGUgPCBsZW4pIHN0ciA9IHN0ci5zbGljZSgwLCBlKSArICcuJyArIHN0ci5zbGljZShlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0ciA9IChiYXNlT3V0ID09IDE2ID8gJzB4JyA6IGJhc2VPdXQgPT0gMiA/ICcwYicgOiBiYXNlT3V0ID09IDggPyAnMG8nIDogJycpICsgc3RyO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB4LnMgPCAwID8gJy0nICsgc3RyIDogc3RyO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIERvZXMgbm90IHN0cmlwIHRyYWlsaW5nIHplcm9zLlxyXG4gIGZ1bmN0aW9uIHRydW5jYXRlKGFyciwgbGVuKSB7XHJcbiAgICBpZiAoYXJyLmxlbmd0aCA+IGxlbikge1xyXG4gICAgICBhcnIubGVuZ3RoID0gbGVuO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvLyBEZWNpbWFsIG1ldGhvZHNcclxuXHJcblxyXG4gIC8qXHJcbiAgICogIGFic1xyXG4gICAqICBhY29zXHJcbiAgICogIGFjb3NoXHJcbiAgICogIGFkZFxyXG4gICAqICBhc2luXHJcbiAgICogIGFzaW5oXHJcbiAgICogIGF0YW5cclxuICAgKiAgYXRhbmhcclxuICAgKiAgYXRhbjJcclxuICAgKiAgY2JydFxyXG4gICAqICBjZWlsXHJcbiAgICogIGNsYW1wXHJcbiAgICogIGNsb25lXHJcbiAgICogIGNvbmZpZ1xyXG4gICAqICBjb3NcclxuICAgKiAgY29zaFxyXG4gICAqICBkaXZcclxuICAgKiAgZXhwXHJcbiAgICogIGZsb29yXHJcbiAgICogIGh5cG90XHJcbiAgICogIGxuXHJcbiAgICogIGxvZ1xyXG4gICAqICBsb2cyXHJcbiAgICogIGxvZzEwXHJcbiAgICogIG1heFxyXG4gICAqICBtaW5cclxuICAgKiAgbW9kXHJcbiAgICogIG11bFxyXG4gICAqICBwb3dcclxuICAgKiAgcmFuZG9tXHJcbiAgICogIHJvdW5kXHJcbiAgICogIHNldFxyXG4gICAqICBzaWduXHJcbiAgICogIHNpblxyXG4gICAqICBzaW5oXHJcbiAgICogIHNxcnRcclxuICAgKiAgc3ViXHJcbiAgICogIHN1bVxyXG4gICAqICB0YW5cclxuICAgKiAgdGFuaFxyXG4gICAqICB0cnVuY1xyXG4gICAqL1xyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgYHhgLlxyXG4gICAqXHJcbiAgICogeCB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gYWJzKHgpIHtcclxuICAgIHJldHVybiBuZXcgdGhpcyh4KS5hYnMoKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBhcmNjb3NpbmUgaW4gcmFkaWFucyBvZiBgeGAuXHJcbiAgICpcclxuICAgKiB4IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9XHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiBhY29zKHgpIHtcclxuICAgIHJldHVybiBuZXcgdGhpcyh4KS5hY29zKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgaW52ZXJzZSBvZiB0aGUgaHlwZXJib2xpYyBjb3NpbmUgb2YgYHhgLCByb3VuZGVkIHRvXHJcbiAgICogYHByZWNpc2lvbmAgc2lnbmlmaWNhbnQgZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqIHgge251bWJlcnxzdHJpbmd8RGVjaW1hbH0gQSB2YWx1ZSBpbiByYWRpYW5zLlxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gYWNvc2goeCkge1xyXG4gICAgcmV0dXJuIG5ldyB0aGlzKHgpLmFjb3NoKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgc3VtIG9mIGB4YCBhbmQgYHlgLCByb3VuZGVkIHRvIGBwcmVjaXNpb25gIHNpZ25pZmljYW50XHJcbiAgICogZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqIHgge251bWJlcnxzdHJpbmd8RGVjaW1hbH1cclxuICAgKiB5IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9XHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiBhZGQoeCwgeSkge1xyXG4gICAgcmV0dXJuIG5ldyB0aGlzKHgpLnBsdXMoeSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgYXJjc2luZSBpbiByYWRpYW5zIG9mIGB4YCwgcm91bmRlZCB0byBgcHJlY2lzaW9uYFxyXG4gICAqIHNpZ25pZmljYW50IGRpZ2l0cyB1c2luZyByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKiB4IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9XHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiBhc2luKHgpIHtcclxuICAgIHJldHVybiBuZXcgdGhpcyh4KS5hc2luKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgaW52ZXJzZSBvZiB0aGUgaHlwZXJib2xpYyBzaW5lIG9mIGB4YCwgcm91bmRlZCB0b1xyXG4gICAqIGBwcmVjaXNpb25gIHNpZ25pZmljYW50IGRpZ2l0cyB1c2luZyByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKiB4IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9IEEgdmFsdWUgaW4gcmFkaWFucy5cclxuICAgKlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGFzaW5oKHgpIHtcclxuICAgIHJldHVybiBuZXcgdGhpcyh4KS5hc2luaCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIGFyY3RhbmdlbnQgaW4gcmFkaWFucyBvZiBgeGAsIHJvdW5kZWQgdG8gYHByZWNpc2lvbmBcclxuICAgKiBzaWduaWZpY2FudCBkaWdpdHMgdXNpbmcgcm91bmRpbmcgbW9kZSBgcm91bmRpbmdgLlxyXG4gICAqXHJcbiAgICogeCB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gYXRhbih4KSB7XHJcbiAgICByZXR1cm4gbmV3IHRoaXMoeCkuYXRhbigpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIGludmVyc2Ugb2YgdGhlIGh5cGVyYm9saWMgdGFuZ2VudCBvZiBgeGAsIHJvdW5kZWQgdG9cclxuICAgKiBgcHJlY2lzaW9uYCBzaWduaWZpY2FudCBkaWdpdHMgdXNpbmcgcm91bmRpbmcgbW9kZSBgcm91bmRpbmdgLlxyXG4gICAqXHJcbiAgICogeCB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfSBBIHZhbHVlIGluIHJhZGlhbnMuXHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiBhdGFuaCh4KSB7XHJcbiAgICByZXR1cm4gbmV3IHRoaXMoeCkuYXRhbmgoKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBhcmN0YW5nZW50IGluIHJhZGlhbnMgb2YgYHkveGAgaW4gdGhlIHJhbmdlIC1waSB0byBwaVxyXG4gICAqIChpbmNsdXNpdmUpLCByb3VuZGVkIHRvIGBwcmVjaXNpb25gIHNpZ25pZmljYW50IGRpZ2l0cyB1c2luZyByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKiBEb21haW46IFstSW5maW5pdHksIEluZmluaXR5XVxyXG4gICAqIFJhbmdlOiBbLXBpLCBwaV1cclxuICAgKlxyXG4gICAqIHkge251bWJlcnxzdHJpbmd8RGVjaW1hbH0gVGhlIHktY29vcmRpbmF0ZS5cclxuICAgKiB4IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9IFRoZSB4LWNvb3JkaW5hdGUuXHJcbiAgICpcclxuICAgKiBhdGFuMijCsTAsIC0wKSAgICAgICAgICAgICAgID0gwrFwaVxyXG4gICAqIGF0YW4yKMKxMCwgKzApICAgICAgICAgICAgICAgPSDCsTBcclxuICAgKiBhdGFuMijCsTAsIC14KSAgICAgICAgICAgICAgID0gwrFwaSBmb3IgeCA+IDBcclxuICAgKiBhdGFuMijCsTAsIHgpICAgICAgICAgICAgICAgID0gwrEwIGZvciB4ID4gMFxyXG4gICAqIGF0YW4yKC15LCDCsTApICAgICAgICAgICAgICAgPSAtcGkvMiBmb3IgeSA+IDBcclxuICAgKiBhdGFuMih5LCDCsTApICAgICAgICAgICAgICAgID0gcGkvMiBmb3IgeSA+IDBcclxuICAgKiBhdGFuMijCsXksIC1JbmZpbml0eSkgICAgICAgID0gwrFwaSBmb3IgZmluaXRlIHkgPiAwXHJcbiAgICogYXRhbjIowrF5LCArSW5maW5pdHkpICAgICAgICA9IMKxMCBmb3IgZmluaXRlIHkgPiAwXHJcbiAgICogYXRhbjIowrFJbmZpbml0eSwgeCkgICAgICAgICA9IMKxcGkvMiBmb3IgZmluaXRlIHhcclxuICAgKiBhdGFuMijCsUluZmluaXR5LCAtSW5maW5pdHkpID0gwrEzKnBpLzRcclxuICAgKiBhdGFuMijCsUluZmluaXR5LCArSW5maW5pdHkpID0gwrFwaS80XHJcbiAgICogYXRhbjIoTmFOLCB4KSA9IE5hTlxyXG4gICAqIGF0YW4yKHksIE5hTikgPSBOYU5cclxuICAgKlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGF0YW4yKHksIHgpIHtcclxuICAgIHkgPSBuZXcgdGhpcyh5KTtcclxuICAgIHggPSBuZXcgdGhpcyh4KTtcclxuICAgIHZhciByLFxyXG4gICAgICBwciA9IHRoaXMucHJlY2lzaW9uLFxyXG4gICAgICBybSA9IHRoaXMucm91bmRpbmcsXHJcbiAgICAgIHdwciA9IHByICsgNDtcclxuXHJcbiAgICAvLyBFaXRoZXIgTmFOXHJcbiAgICBpZiAoIXkucyB8fCAheC5zKSB7XHJcbiAgICAgIHIgPSBuZXcgdGhpcyhOYU4pO1xyXG5cclxuICAgIC8vIEJvdGggwrFJbmZpbml0eVxyXG4gICAgfSBlbHNlIGlmICgheS5kICYmICF4LmQpIHtcclxuICAgICAgciA9IGdldFBpKHRoaXMsIHdwciwgMSkudGltZXMoeC5zID4gMCA/IDAuMjUgOiAwLjc1KTtcclxuICAgICAgci5zID0geS5zO1xyXG5cclxuICAgIC8vIHggaXMgwrFJbmZpbml0eSBvciB5IGlzIMKxMFxyXG4gICAgfSBlbHNlIGlmICgheC5kIHx8IHkuaXNaZXJvKCkpIHtcclxuICAgICAgciA9IHgucyA8IDAgPyBnZXRQaSh0aGlzLCBwciwgcm0pIDogbmV3IHRoaXMoMCk7XHJcbiAgICAgIHIucyA9IHkucztcclxuXHJcbiAgICAvLyB5IGlzIMKxSW5maW5pdHkgb3IgeCBpcyDCsTBcclxuICAgIH0gZWxzZSBpZiAoIXkuZCB8fCB4LmlzWmVybygpKSB7XHJcbiAgICAgIHIgPSBnZXRQaSh0aGlzLCB3cHIsIDEpLnRpbWVzKDAuNSk7XHJcbiAgICAgIHIucyA9IHkucztcclxuXHJcbiAgICAvLyBCb3RoIG5vbi16ZXJvIGFuZCBmaW5pdGVcclxuICAgIH0gZWxzZSBpZiAoeC5zIDwgMCkge1xyXG4gICAgICB0aGlzLnByZWNpc2lvbiA9IHdwcjtcclxuICAgICAgdGhpcy5yb3VuZGluZyA9IDE7XHJcbiAgICAgIHIgPSB0aGlzLmF0YW4oZGl2aWRlKHksIHgsIHdwciwgMSkpO1xyXG4gICAgICB4ID0gZ2V0UGkodGhpcywgd3ByLCAxKTtcclxuICAgICAgdGhpcy5wcmVjaXNpb24gPSBwcjtcclxuICAgICAgdGhpcy5yb3VuZGluZyA9IHJtO1xyXG4gICAgICByID0geS5zIDwgMCA/IHIubWludXMoeCkgOiByLnBsdXMoeCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByID0gdGhpcy5hdGFuKGRpdmlkZSh5LCB4LCB3cHIsIDEpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcjtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBjdWJlIHJvb3Qgb2YgYHhgLCByb3VuZGVkIHRvIGBwcmVjaXNpb25gIHNpZ25pZmljYW50XHJcbiAgICogZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqIHgge251bWJlcnxzdHJpbmd8RGVjaW1hbH1cclxuICAgKlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNicnQoeCkge1xyXG4gICAgcmV0dXJuIG5ldyB0aGlzKHgpLmNicnQoKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIGB4YCByb3VuZGVkIHRvIGFuIGludGVnZXIgdXNpbmcgYFJPVU5EX0NFSUxgLlxyXG4gICAqXHJcbiAgICogeCB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gY2VpbCh4KSB7XHJcbiAgICByZXR1cm4gZmluYWxpc2UoeCA9IG5ldyB0aGlzKHgpLCB4LmUgKyAxLCAyKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIGB4YCBjbGFtcGVkIHRvIHRoZSByYW5nZSBkZWxpbmVhdGVkIGJ5IGBtaW5gIGFuZCBgbWF4YC5cclxuICAgKlxyXG4gICAqIHgge251bWJlcnxzdHJpbmd8RGVjaW1hbH1cclxuICAgKiBtaW4ge251bWJlcnxzdHJpbmd8RGVjaW1hbH1cclxuICAgKiBtYXgge251bWJlcnxzdHJpbmd8RGVjaW1hbH1cclxuICAgKlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNsYW1wKHgsIG1pbiwgbWF4KSB7XHJcbiAgICByZXR1cm4gbmV3IHRoaXMoeCkuY2xhbXAobWluLCBtYXgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICogQ29uZmlndXJlIGdsb2JhbCBzZXR0aW5ncyBmb3IgYSBEZWNpbWFsIGNvbnN0cnVjdG9yLlxyXG4gICAqXHJcbiAgICogYG9iamAgaXMgYW4gb2JqZWN0IHdpdGggb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzLFxyXG4gICAqXHJcbiAgICogICBwcmVjaXNpb24gIHtudW1iZXJ9XHJcbiAgICogICByb3VuZGluZyAgIHtudW1iZXJ9XHJcbiAgICogICB0b0V4cE5lZyAgIHtudW1iZXJ9XHJcbiAgICogICB0b0V4cFBvcyAgIHtudW1iZXJ9XHJcbiAgICogICBtYXhFICAgICAgIHtudW1iZXJ9XHJcbiAgICogICBtaW5FICAgICAgIHtudW1iZXJ9XHJcbiAgICogICBtb2R1bG8gICAgIHtudW1iZXJ9XHJcbiAgICogICBjcnlwdG8gICAgIHtib29sZWFufG51bWJlcn1cclxuICAgKiAgIGRlZmF1bHRzICAge3RydWV9XHJcbiAgICpcclxuICAgKiBFLmcuIERlY2ltYWwuY29uZmlnKHsgcHJlY2lzaW9uOiAyMCwgcm91bmRpbmc6IDQgfSlcclxuICAgKlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNvbmZpZyhvYmopIHtcclxuICAgIGlmICghb2JqIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB0aHJvdyBFcnJvcihkZWNpbWFsRXJyb3IgKyAnT2JqZWN0IGV4cGVjdGVkJyk7XHJcbiAgICB2YXIgaSwgcCwgdixcclxuICAgICAgdXNlRGVmYXVsdHMgPSBvYmouZGVmYXVsdHMgPT09IHRydWUsXHJcbiAgICAgIHBzID0gW1xyXG4gICAgICAgICdwcmVjaXNpb24nLCAxLCBNQVhfRElHSVRTLFxyXG4gICAgICAgICdyb3VuZGluZycsIDAsIDgsXHJcbiAgICAgICAgJ3RvRXhwTmVnJywgLUVYUF9MSU1JVCwgMCxcclxuICAgICAgICAndG9FeHBQb3MnLCAwLCBFWFBfTElNSVQsXHJcbiAgICAgICAgJ21heEUnLCAwLCBFWFBfTElNSVQsXHJcbiAgICAgICAgJ21pbkUnLCAtRVhQX0xJTUlULCAwLFxyXG4gICAgICAgICdtb2R1bG8nLCAwLCA5XHJcbiAgICAgIF07XHJcblxyXG4gICAgZm9yIChpID0gMDsgaSA8IHBzLmxlbmd0aDsgaSArPSAzKSB7XHJcbiAgICAgIGlmIChwID0gcHNbaV0sIHVzZURlZmF1bHRzKSB0aGlzW3BdID0gREVGQVVMVFNbcF07XHJcbiAgICAgIGlmICgodiA9IG9ialtwXSkgIT09IHZvaWQgMCkge1xyXG4gICAgICAgIGlmIChtYXRoZmxvb3IodikgPT09IHYgJiYgdiA+PSBwc1tpICsgMV0gJiYgdiA8PSBwc1tpICsgMl0pIHRoaXNbcF0gPSB2O1xyXG4gICAgICAgIGVsc2UgdGhyb3cgRXJyb3IoaW52YWxpZEFyZ3VtZW50ICsgcCArICc6ICcgKyB2KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChwID0gJ2NyeXB0bycsIHVzZURlZmF1bHRzKSB0aGlzW3BdID0gREVGQVVMVFNbcF07XHJcbiAgICBpZiAoKHYgPSBvYmpbcF0pICE9PSB2b2lkIDApIHtcclxuICAgICAgaWYgKHYgPT09IHRydWUgfHwgdiA9PT0gZmFsc2UgfHwgdiA9PT0gMCB8fCB2ID09PSAxKSB7XHJcbiAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgY3J5cHRvICE9ICd1bmRlZmluZWQnICYmIGNyeXB0byAmJlxyXG4gICAgICAgICAgICAoY3J5cHRvLmdldFJhbmRvbVZhbHVlcyB8fCBjcnlwdG8ucmFuZG9tQnl0ZXMpKSB7XHJcbiAgICAgICAgICAgIHRoaXNbcF0gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoY3J5cHRvVW5hdmFpbGFibGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzW3BdID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRocm93IEVycm9yKGludmFsaWRBcmd1bWVudCArIHAgKyAnOiAnICsgdik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBjb3NpbmUgb2YgYHhgLCByb3VuZGVkIHRvIGBwcmVjaXNpb25gIHNpZ25pZmljYW50XHJcbiAgICogZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqIHgge251bWJlcnxzdHJpbmd8RGVjaW1hbH0gQSB2YWx1ZSBpbiByYWRpYW5zLlxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gY29zKHgpIHtcclxuICAgIHJldHVybiBuZXcgdGhpcyh4KS5jb3MoKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBoeXBlcmJvbGljIGNvc2luZSBvZiBgeGAsIHJvdW5kZWQgdG8gcHJlY2lzaW9uXHJcbiAgICogc2lnbmlmaWNhbnQgZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqIHgge251bWJlcnxzdHJpbmd8RGVjaW1hbH0gQSB2YWx1ZSBpbiByYWRpYW5zLlxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gY29zaCh4KSB7XHJcbiAgICByZXR1cm4gbmV3IHRoaXMoeCkuY29zaCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICogQ3JlYXRlIGFuZCByZXR1cm4gYSBEZWNpbWFsIGNvbnN0cnVjdG9yIHdpdGggdGhlIHNhbWUgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGFzIHRoaXMgRGVjaW1hbFxyXG4gICAqIGNvbnN0cnVjdG9yLlxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gY2xvbmUob2JqKSB7XHJcbiAgICB2YXIgaSwgcCwgcHM7XHJcblxyXG4gICAgLypcclxuICAgICAqIFRoZSBEZWNpbWFsIGNvbnN0cnVjdG9yIGFuZCBleHBvcnRlZCBmdW5jdGlvbi5cclxuICAgICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIGluc3RhbmNlLlxyXG4gICAgICpcclxuICAgICAqIHYge251bWJlcnxzdHJpbmd8RGVjaW1hbH0gQSBudW1lcmljIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gRGVjaW1hbCh2KSB7XHJcbiAgICAgIHZhciBlLCBpLCB0LFxyXG4gICAgICAgIHggPSB0aGlzO1xyXG5cclxuICAgICAgLy8gRGVjaW1hbCBjYWxsZWQgd2l0aG91dCBuZXcuXHJcbiAgICAgIGlmICghKHggaW5zdGFuY2VvZiBEZWNpbWFsKSkgcmV0dXJuIG5ldyBEZWNpbWFsKHYpO1xyXG5cclxuICAgICAgLy8gUmV0YWluIGEgcmVmZXJlbmNlIHRvIHRoaXMgRGVjaW1hbCBjb25zdHJ1Y3RvciwgYW5kIHNoYWRvdyBEZWNpbWFsLnByb3RvdHlwZS5jb25zdHJ1Y3RvclxyXG4gICAgICAvLyB3aGljaCBwb2ludHMgdG8gT2JqZWN0LlxyXG4gICAgICB4LmNvbnN0cnVjdG9yID0gRGVjaW1hbDtcclxuXHJcbiAgICAgIC8vIER1cGxpY2F0ZS5cclxuICAgICAgaWYgKGlzRGVjaW1hbEluc3RhbmNlKHYpKSB7XHJcbiAgICAgICAgeC5zID0gdi5zO1xyXG5cclxuICAgICAgICBpZiAoZXh0ZXJuYWwpIHtcclxuICAgICAgICAgIGlmICghdi5kIHx8IHYuZSA+IERlY2ltYWwubWF4RSkge1xyXG5cclxuICAgICAgICAgICAgLy8gSW5maW5pdHkuXHJcbiAgICAgICAgICAgIHguZSA9IE5hTjtcclxuICAgICAgICAgICAgeC5kID0gbnVsbDtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodi5lIDwgRGVjaW1hbC5taW5FKSB7XHJcblxyXG4gICAgICAgICAgICAvLyBaZXJvLlxyXG4gICAgICAgICAgICB4LmUgPSAwO1xyXG4gICAgICAgICAgICB4LmQgPSBbMF07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB4LmUgPSB2LmU7XHJcbiAgICAgICAgICAgIHguZCA9IHYuZC5zbGljZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB4LmUgPSB2LmU7XHJcbiAgICAgICAgICB4LmQgPSB2LmQgPyB2LmQuc2xpY2UoKSA6IHYuZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdCA9IHR5cGVvZiB2O1xyXG5cclxuICAgICAgaWYgKHQgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgaWYgKHYgPT09IDApIHtcclxuICAgICAgICAgIHgucyA9IDEgLyB2IDwgMCA/IC0xIDogMTtcclxuICAgICAgICAgIHguZSA9IDA7XHJcbiAgICAgICAgICB4LmQgPSBbMF07XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodiA8IDApIHtcclxuICAgICAgICAgIHYgPSAtdjtcclxuICAgICAgICAgIHgucyA9IC0xO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB4LnMgPSAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRmFzdCBwYXRoIGZvciBzbWFsbCBpbnRlZ2Vycy5cclxuICAgICAgICBpZiAodiA9PT0gfn52ICYmIHYgPCAxZTcpIHtcclxuICAgICAgICAgIGZvciAoZSA9IDAsIGkgPSB2OyBpID49IDEwOyBpIC89IDEwKSBlKys7XHJcblxyXG4gICAgICAgICAgaWYgKGV4dGVybmFsKSB7XHJcbiAgICAgICAgICAgIGlmIChlID4gRGVjaW1hbC5tYXhFKSB7XHJcbiAgICAgICAgICAgICAgeC5lID0gTmFOO1xyXG4gICAgICAgICAgICAgIHguZCA9IG51bGw7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZSA8IERlY2ltYWwubWluRSkge1xyXG4gICAgICAgICAgICAgIHguZSA9IDA7XHJcbiAgICAgICAgICAgICAgeC5kID0gWzBdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHguZSA9IGU7XHJcbiAgICAgICAgICAgICAgeC5kID0gW3ZdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB4LmUgPSBlO1xyXG4gICAgICAgICAgICB4LmQgPSBbdl07XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAvLyBJbmZpbml0eSwgTmFOLlxyXG4gICAgICAgIH0gZWxzZSBpZiAodiAqIDAgIT09IDApIHtcclxuICAgICAgICAgIGlmICghdikgeC5zID0gTmFOO1xyXG4gICAgICAgICAgeC5lID0gTmFOO1xyXG4gICAgICAgICAgeC5kID0gbnVsbDtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBwYXJzZURlY2ltYWwoeCwgdi50b1N0cmluZygpKTtcclxuXHJcbiAgICAgIH0gZWxzZSBpZiAodCAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgICB0aHJvdyBFcnJvcihpbnZhbGlkQXJndW1lbnQgKyB2KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gTWludXMgc2lnbj9cclxuICAgICAgaWYgKChpID0gdi5jaGFyQ29kZUF0KDApKSA9PT0gNDUpIHtcclxuICAgICAgICB2ID0gdi5zbGljZSgxKTtcclxuICAgICAgICB4LnMgPSAtMTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBQbHVzIHNpZ24/XHJcbiAgICAgICAgaWYgKGkgPT09IDQzKSB2ID0gdi5zbGljZSgxKTtcclxuICAgICAgICB4LnMgPSAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gaXNEZWNpbWFsLnRlc3QodikgPyBwYXJzZURlY2ltYWwoeCwgdikgOiBwYXJzZU90aGVyKHgsIHYpO1xyXG4gICAgfVxyXG5cclxuICAgIERlY2ltYWwucHJvdG90eXBlID0gUDtcclxuXHJcbiAgICBEZWNpbWFsLlJPVU5EX1VQID0gMDtcclxuICAgIERlY2ltYWwuUk9VTkRfRE9XTiA9IDE7XHJcbiAgICBEZWNpbWFsLlJPVU5EX0NFSUwgPSAyO1xyXG4gICAgRGVjaW1hbC5ST1VORF9GTE9PUiA9IDM7XHJcbiAgICBEZWNpbWFsLlJPVU5EX0hBTEZfVVAgPSA0O1xyXG4gICAgRGVjaW1hbC5ST1VORF9IQUxGX0RPV04gPSA1O1xyXG4gICAgRGVjaW1hbC5ST1VORF9IQUxGX0VWRU4gPSA2O1xyXG4gICAgRGVjaW1hbC5ST1VORF9IQUxGX0NFSUwgPSA3O1xyXG4gICAgRGVjaW1hbC5ST1VORF9IQUxGX0ZMT09SID0gODtcclxuICAgIERlY2ltYWwuRVVDTElEID0gOTtcclxuXHJcbiAgICBEZWNpbWFsLmNvbmZpZyA9IERlY2ltYWwuc2V0ID0gY29uZmlnO1xyXG4gICAgRGVjaW1hbC5jbG9uZSA9IGNsb25lO1xyXG4gICAgRGVjaW1hbC5pc0RlY2ltYWwgPSBpc0RlY2ltYWxJbnN0YW5jZTtcclxuXHJcbiAgICBEZWNpbWFsLmFicyA9IGFicztcclxuICAgIERlY2ltYWwuYWNvcyA9IGFjb3M7XHJcbiAgICBEZWNpbWFsLmFjb3NoID0gYWNvc2g7ICAgICAgICAvLyBFUzZcclxuICAgIERlY2ltYWwuYWRkID0gYWRkO1xyXG4gICAgRGVjaW1hbC5hc2luID0gYXNpbjtcclxuICAgIERlY2ltYWwuYXNpbmggPSBhc2luaDsgICAgICAgIC8vIEVTNlxyXG4gICAgRGVjaW1hbC5hdGFuID0gYXRhbjtcclxuICAgIERlY2ltYWwuYXRhbmggPSBhdGFuaDsgICAgICAgIC8vIEVTNlxyXG4gICAgRGVjaW1hbC5hdGFuMiA9IGF0YW4yO1xyXG4gICAgRGVjaW1hbC5jYnJ0ID0gY2JydDsgICAgICAgICAgLy8gRVM2XHJcbiAgICBEZWNpbWFsLmNlaWwgPSBjZWlsO1xyXG4gICAgRGVjaW1hbC5jbGFtcCA9IGNsYW1wO1xyXG4gICAgRGVjaW1hbC5jb3MgPSBjb3M7XHJcbiAgICBEZWNpbWFsLmNvc2ggPSBjb3NoOyAgICAgICAgICAvLyBFUzZcclxuICAgIERlY2ltYWwuZGl2ID0gZGl2O1xyXG4gICAgRGVjaW1hbC5leHAgPSBleHA7XHJcbiAgICBEZWNpbWFsLmZsb29yID0gZmxvb3I7XHJcbiAgICBEZWNpbWFsLmh5cG90ID0gaHlwb3Q7ICAgICAgICAvLyBFUzZcclxuICAgIERlY2ltYWwubG4gPSBsbjtcclxuICAgIERlY2ltYWwubG9nID0gbG9nO1xyXG4gICAgRGVjaW1hbC5sb2cxMCA9IGxvZzEwOyAgICAgICAgLy8gRVM2XHJcbiAgICBEZWNpbWFsLmxvZzIgPSBsb2cyOyAgICAgICAgICAvLyBFUzZcclxuICAgIERlY2ltYWwubWF4ID0gbWF4O1xyXG4gICAgRGVjaW1hbC5taW4gPSBtaW47XHJcbiAgICBEZWNpbWFsLm1vZCA9IG1vZDtcclxuICAgIERlY2ltYWwubXVsID0gbXVsO1xyXG4gICAgRGVjaW1hbC5wb3cgPSBwb3c7XHJcbiAgICBEZWNpbWFsLnJhbmRvbSA9IHJhbmRvbTtcclxuICAgIERlY2ltYWwucm91bmQgPSByb3VuZDtcclxuICAgIERlY2ltYWwuc2lnbiA9IHNpZ247ICAgICAgICAgIC8vIEVTNlxyXG4gICAgRGVjaW1hbC5zaW4gPSBzaW47XHJcbiAgICBEZWNpbWFsLnNpbmggPSBzaW5oOyAgICAgICAgICAvLyBFUzZcclxuICAgIERlY2ltYWwuc3FydCA9IHNxcnQ7XHJcbiAgICBEZWNpbWFsLnN1YiA9IHN1YjtcclxuICAgIERlY2ltYWwuc3VtID0gc3VtO1xyXG4gICAgRGVjaW1hbC50YW4gPSB0YW47XHJcbiAgICBEZWNpbWFsLnRhbmggPSB0YW5oOyAgICAgICAgICAvLyBFUzZcclxuICAgIERlY2ltYWwudHJ1bmMgPSB0cnVuYzsgICAgICAgIC8vIEVTNlxyXG5cclxuICAgIGlmIChvYmogPT09IHZvaWQgMCkgb2JqID0ge307XHJcbiAgICBpZiAob2JqKSB7XHJcbiAgICAgIGlmIChvYmouZGVmYXVsdHMgIT09IHRydWUpIHtcclxuICAgICAgICBwcyA9IFsncHJlY2lzaW9uJywgJ3JvdW5kaW5nJywgJ3RvRXhwTmVnJywgJ3RvRXhwUG9zJywgJ21heEUnLCAnbWluRScsICdtb2R1bG8nLCAnY3J5cHRvJ107XHJcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHBzLmxlbmd0aDspIGlmICghb2JqLmhhc093blByb3BlcnR5KHAgPSBwc1tpKytdKSkgb2JqW3BdID0gdGhpc1twXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIERlY2ltYWwuY29uZmlnKG9iaik7XHJcblxyXG4gICAgcmV0dXJuIERlY2ltYWw7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyBgeGAgZGl2aWRlZCBieSBgeWAsIHJvdW5kZWQgdG8gYHByZWNpc2lvbmAgc2lnbmlmaWNhbnRcclxuICAgKiBkaWdpdHMgdXNpbmcgcm91bmRpbmcgbW9kZSBgcm91bmRpbmdgLlxyXG4gICAqXHJcbiAgICogeCB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqIHkge251bWJlcnxzdHJpbmd8RGVjaW1hbH1cclxuICAgKlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGRpdih4LCB5KSB7XHJcbiAgICByZXR1cm4gbmV3IHRoaXMoeCkuZGl2KHkpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIG5hdHVyYWwgZXhwb25lbnRpYWwgb2YgYHhgLCByb3VuZGVkIHRvIGBwcmVjaXNpb25gXHJcbiAgICogc2lnbmlmaWNhbnQgZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqIHgge251bWJlcnxzdHJpbmd8RGVjaW1hbH0gVGhlIHBvd2VyIHRvIHdoaWNoIHRvIHJhaXNlIHRoZSBiYXNlIG9mIHRoZSBuYXR1cmFsIGxvZy5cclxuICAgKlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGV4cCh4KSB7XHJcbiAgICByZXR1cm4gbmV3IHRoaXMoeCkuZXhwKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyBgeGAgcm91bmQgdG8gYW4gaW50ZWdlciB1c2luZyBgUk9VTkRfRkxPT1JgLlxyXG4gICAqXHJcbiAgICogeCB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gZmxvb3IoeCkge1xyXG4gICAgcmV0dXJuIGZpbmFsaXNlKHggPSBuZXcgdGhpcyh4KSwgeC5lICsgMSwgMyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgc3F1YXJlIHJvb3Qgb2YgdGhlIHN1bSBvZiB0aGUgc3F1YXJlcyBvZiB0aGUgYXJndW1lbnRzLFxyXG4gICAqIHJvdW5kZWQgdG8gYHByZWNpc2lvbmAgc2lnbmlmaWNhbnQgZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqIGh5cG90KGEsIGIsIC4uLikgPSBzcXJ0KGFeMiArIGJeMiArIC4uLilcclxuICAgKlxyXG4gICAqIGFyZ3VtZW50cyB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gaHlwb3QoKSB7XHJcbiAgICB2YXIgaSwgbixcclxuICAgICAgdCA9IG5ldyB0aGlzKDApO1xyXG5cclxuICAgIGV4dGVybmFsID0gZmFsc2U7XHJcblxyXG4gICAgZm9yIChpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7KSB7XHJcbiAgICAgIG4gPSBuZXcgdGhpcyhhcmd1bWVudHNbaSsrXSk7XHJcbiAgICAgIGlmICghbi5kKSB7XHJcbiAgICAgICAgaWYgKG4ucykge1xyXG4gICAgICAgICAgZXh0ZXJuYWwgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuIG5ldyB0aGlzKDEgLyAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdCA9IG47XHJcbiAgICAgIH0gZWxzZSBpZiAodC5kKSB7XHJcbiAgICAgICAgdCA9IHQucGx1cyhuLnRpbWVzKG4pKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGV4dGVybmFsID0gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4gdC5zcXJ0KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gdHJ1ZSBpZiBvYmplY3QgaXMgYSBEZWNpbWFsIGluc3RhbmNlICh3aGVyZSBEZWNpbWFsIGlzIGFueSBEZWNpbWFsIGNvbnN0cnVjdG9yKSxcclxuICAgKiBvdGhlcndpc2UgcmV0dXJuIGZhbHNlLlxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gaXNEZWNpbWFsSW5zdGFuY2Uob2JqKSB7XHJcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRGVjaW1hbCB8fCBvYmogJiYgb2JqLnRvU3RyaW5nVGFnID09PSB0YWcgfHwgZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgbmF0dXJhbCBsb2dhcml0aG0gb2YgYHhgLCByb3VuZGVkIHRvIGBwcmVjaXNpb25gXHJcbiAgICogc2lnbmlmaWNhbnQgZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqIHgge251bWJlcnxzdHJpbmd8RGVjaW1hbH1cclxuICAgKlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGxuKHgpIHtcclxuICAgIHJldHVybiBuZXcgdGhpcyh4KS5sbigpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIGxvZyBvZiBgeGAgdG8gdGhlIGJhc2UgYHlgLCBvciB0byBiYXNlIDEwIGlmIG5vIGJhc2VcclxuICAgKiBpcyBzcGVjaWZpZWQsIHJvdW5kZWQgdG8gYHByZWNpc2lvbmAgc2lnbmlmaWNhbnQgZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqIGxvZ1t5XSh4KVxyXG4gICAqXHJcbiAgICogeCB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfSBUaGUgYXJndW1lbnQgb2YgdGhlIGxvZ2FyaXRobS5cclxuICAgKiB5IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9IFRoZSBiYXNlIG9mIHRoZSBsb2dhcml0aG0uXHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiBsb2coeCwgeSkge1xyXG4gICAgcmV0dXJuIG5ldyB0aGlzKHgpLmxvZyh5KTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBiYXNlIDIgbG9nYXJpdGhtIG9mIGB4YCwgcm91bmRlZCB0byBgcHJlY2lzaW9uYFxyXG4gICAqIHNpZ25pZmljYW50IGRpZ2l0cyB1c2luZyByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKiB4IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9XHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiBsb2cyKHgpIHtcclxuICAgIHJldHVybiBuZXcgdGhpcyh4KS5sb2coMik7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgYmFzZSAxMCBsb2dhcml0aG0gb2YgYHhgLCByb3VuZGVkIHRvIGBwcmVjaXNpb25gXHJcbiAgICogc2lnbmlmaWNhbnQgZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqIHgge251bWJlcnxzdHJpbmd8RGVjaW1hbH1cclxuICAgKlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGxvZzEwKHgpIHtcclxuICAgIHJldHVybiBuZXcgdGhpcyh4KS5sb2coMTApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIG1heGltdW0gb2YgdGhlIGFyZ3VtZW50cy5cclxuICAgKlxyXG4gICAqIGFyZ3VtZW50cyB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gbWF4KCkge1xyXG4gICAgcmV0dXJuIG1heE9yTWluKHRoaXMsIGFyZ3VtZW50cywgJ2x0Jyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgbWluaW11bSBvZiB0aGUgYXJndW1lbnRzLlxyXG4gICAqXHJcbiAgICogYXJndW1lbnRzIHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9XHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiBtaW4oKSB7XHJcbiAgICByZXR1cm4gbWF4T3JNaW4odGhpcywgYXJndW1lbnRzLCAnZ3QnKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIGB4YCBtb2R1bG8gYHlgLCByb3VuZGVkIHRvIGBwcmVjaXNpb25gIHNpZ25pZmljYW50IGRpZ2l0c1xyXG4gICAqIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqIHgge251bWJlcnxzdHJpbmd8RGVjaW1hbH1cclxuICAgKiB5IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9XHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiBtb2QoeCwgeSkge1xyXG4gICAgcmV0dXJuIG5ldyB0aGlzKHgpLm1vZCh5KTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIGB4YCBtdWx0aXBsaWVkIGJ5IGB5YCwgcm91bmRlZCB0byBgcHJlY2lzaW9uYCBzaWduaWZpY2FudFxyXG4gICAqIGRpZ2l0cyB1c2luZyByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKiB4IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9XHJcbiAgICogeSB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gbXVsKHgsIHkpIHtcclxuICAgIHJldHVybiBuZXcgdGhpcyh4KS5tdWwoeSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyBgeGAgcmFpc2VkIHRvIHRoZSBwb3dlciBgeWAsIHJvdW5kZWQgdG8gcHJlY2lzaW9uXHJcbiAgICogc2lnbmlmaWNhbnQgZGlnaXRzIHVzaW5nIHJvdW5kaW5nIG1vZGUgYHJvdW5kaW5nYC5cclxuICAgKlxyXG4gICAqIHgge251bWJlcnxzdHJpbmd8RGVjaW1hbH0gVGhlIGJhc2UuXHJcbiAgICogeSB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfSBUaGUgZXhwb25lbnQuXHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiBwb3coeCwgeSkge1xyXG4gICAgcmV0dXJuIG5ldyB0aGlzKHgpLnBvdyh5KTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybnMgYSBuZXcgRGVjaW1hbCB3aXRoIGEgcmFuZG9tIHZhbHVlIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiAwIGFuZCBsZXNzIHRoYW4gMSwgYW5kIHdpdGhcclxuICAgKiBgc2RgLCBvciBgRGVjaW1hbC5wcmVjaXNpb25gIGlmIGBzZGAgaXMgb21pdHRlZCwgc2lnbmlmaWNhbnQgZGlnaXRzIChvciBsZXNzIGlmIHRyYWlsaW5nIHplcm9zXHJcbiAgICogYXJlIHByb2R1Y2VkKS5cclxuICAgKlxyXG4gICAqIFtzZF0ge251bWJlcn0gU2lnbmlmaWNhbnQgZGlnaXRzLiBJbnRlZ2VyLCAwIHRvIE1BWF9ESUdJVFMgaW5jbHVzaXZlLlxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmFuZG9tKHNkKSB7XHJcbiAgICB2YXIgZCwgZSwgaywgbixcclxuICAgICAgaSA9IDAsXHJcbiAgICAgIHIgPSBuZXcgdGhpcygxKSxcclxuICAgICAgcmQgPSBbXTtcclxuXHJcbiAgICBpZiAoc2QgPT09IHZvaWQgMCkgc2QgPSB0aGlzLnByZWNpc2lvbjtcclxuICAgIGVsc2UgY2hlY2tJbnQzMihzZCwgMSwgTUFYX0RJR0lUUyk7XHJcblxyXG4gICAgayA9IE1hdGguY2VpbChzZCAvIExPR19CQVNFKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuY3J5cHRvKSB7XHJcbiAgICAgIGZvciAoOyBpIDwgazspIHJkW2krK10gPSBNYXRoLnJhbmRvbSgpICogMWU3IHwgMDtcclxuXHJcbiAgICAvLyBCcm93c2VycyBzdXBwb3J0aW5nIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMuXHJcbiAgICB9IGVsc2UgaWYgKGNyeXB0by5nZXRSYW5kb21WYWx1ZXMpIHtcclxuICAgICAgZCA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KGspKTtcclxuXHJcbiAgICAgIGZvciAoOyBpIDwgazspIHtcclxuICAgICAgICBuID0gZFtpXTtcclxuXHJcbiAgICAgICAgLy8gMCA8PSBuIDwgNDI5NDk2NzI5NlxyXG4gICAgICAgIC8vIFByb2JhYmlsaXR5IG4gPj0gNC4yOWU5LCBpcyA0OTY3Mjk2IC8gNDI5NDk2NzI5NiA9IDAuMDAxMTYgKDEgaW4gODY1KS5cclxuICAgICAgICBpZiAobiA+PSA0LjI5ZTkpIHtcclxuICAgICAgICAgIGRbaV0gPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50MzJBcnJheSgxKSlbMF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICAvLyAwIDw9IG4gPD0gNDI4OTk5OTk5OVxyXG4gICAgICAgICAgLy8gMCA8PSAobiAlIDFlNykgPD0gOTk5OTk5OVxyXG4gICAgICAgICAgcmRbaSsrXSA9IG4gJSAxZTc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgLy8gTm9kZS5qcyBzdXBwb3J0aW5nIGNyeXB0by5yYW5kb21CeXRlcy5cclxuICAgIH0gZWxzZSBpZiAoY3J5cHRvLnJhbmRvbUJ5dGVzKSB7XHJcblxyXG4gICAgICAvLyBidWZmZXJcclxuICAgICAgZCA9IGNyeXB0by5yYW5kb21CeXRlcyhrICo9IDQpO1xyXG5cclxuICAgICAgZm9yICg7IGkgPCBrOykge1xyXG5cclxuICAgICAgICAvLyAwIDw9IG4gPCAyMTQ3NDgzNjQ4XHJcbiAgICAgICAgbiA9IGRbaV0gKyAoZFtpICsgMV0gPDwgOCkgKyAoZFtpICsgMl0gPDwgMTYpICsgKChkW2kgKyAzXSAmIDB4N2YpIDw8IDI0KTtcclxuXHJcbiAgICAgICAgLy8gUHJvYmFiaWxpdHkgbiA+PSAyLjE0ZTksIGlzIDc0ODM2NDggLyAyMTQ3NDgzNjQ4ID0gMC4wMDM1ICgxIGluIDI4NikuXHJcbiAgICAgICAgaWYgKG4gPj0gMi4xNGU5KSB7XHJcbiAgICAgICAgICBjcnlwdG8ucmFuZG9tQnl0ZXMoNCkuY29weShkLCBpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICAgIC8vIDAgPD0gbiA8PSAyMTM5OTk5OTk5XHJcbiAgICAgICAgICAvLyAwIDw9IChuICUgMWU3KSA8PSA5OTk5OTk5XHJcbiAgICAgICAgICByZC5wdXNoKG4gJSAxZTcpO1xyXG4gICAgICAgICAgaSArPSA0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaSA9IGsgLyA0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhyb3cgRXJyb3IoY3J5cHRvVW5hdmFpbGFibGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGsgPSByZFstLWldO1xyXG4gICAgc2QgJT0gTE9HX0JBU0U7XHJcblxyXG4gICAgLy8gQ29udmVydCB0cmFpbGluZyBkaWdpdHMgdG8gemVyb3MgYWNjb3JkaW5nIHRvIHNkLlxyXG4gICAgaWYgKGsgJiYgc2QpIHtcclxuICAgICAgbiA9IG1hdGhwb3coMTAsIExPR19CQVNFIC0gc2QpO1xyXG4gICAgICByZFtpXSA9IChrIC8gbiB8IDApICogbjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZW1vdmUgdHJhaWxpbmcgd29yZHMgd2hpY2ggYXJlIHplcm8uXHJcbiAgICBmb3IgKDsgcmRbaV0gPT09IDA7IGktLSkgcmQucG9wKCk7XHJcblxyXG4gICAgLy8gWmVybz9cclxuICAgIGlmIChpIDwgMCkge1xyXG4gICAgICBlID0gMDtcclxuICAgICAgcmQgPSBbMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBlID0gLTE7XHJcblxyXG4gICAgICAvLyBSZW1vdmUgbGVhZGluZyB3b3JkcyB3aGljaCBhcmUgemVybyBhbmQgYWRqdXN0IGV4cG9uZW50IGFjY29yZGluZ2x5LlxyXG4gICAgICBmb3IgKDsgcmRbMF0gPT09IDA7IGUgLT0gTE9HX0JBU0UpIHJkLnNoaWZ0KCk7XHJcblxyXG4gICAgICAvLyBDb3VudCB0aGUgZGlnaXRzIG9mIHRoZSBmaXJzdCB3b3JkIG9mIHJkIHRvIGRldGVybWluZSBsZWFkaW5nIHplcm9zLlxyXG4gICAgICBmb3IgKGsgPSAxLCBuID0gcmRbMF07IG4gPj0gMTA7IG4gLz0gMTApIGsrKztcclxuXHJcbiAgICAgIC8vIEFkanVzdCB0aGUgZXhwb25lbnQgZm9yIGxlYWRpbmcgemVyb3Mgb2YgdGhlIGZpcnN0IHdvcmQgb2YgcmQuXHJcbiAgICAgIGlmIChrIDwgTE9HX0JBU0UpIGUgLT0gTE9HX0JBU0UgLSBrO1xyXG4gICAgfVxyXG5cclxuICAgIHIuZSA9IGU7XHJcbiAgICByLmQgPSByZDtcclxuXHJcbiAgICByZXR1cm4gcjtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIGB4YCByb3VuZGVkIHRvIGFuIGludGVnZXIgdXNpbmcgcm91bmRpbmcgbW9kZSBgcm91bmRpbmdgLlxyXG4gICAqXHJcbiAgICogVG8gZW11bGF0ZSBgTWF0aC5yb3VuZGAsIHNldCByb3VuZGluZyB0byA3IChST1VORF9IQUxGX0NFSUwpLlxyXG4gICAqXHJcbiAgICogeCB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcm91bmQoeCkge1xyXG4gICAgcmV0dXJuIGZpbmFsaXNlKHggPSBuZXcgdGhpcyh4KSwgeC5lICsgMSwgdGhpcy5yb3VuZGluZyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm5cclxuICAgKiAgIDEgICAgaWYgeCA+IDAsXHJcbiAgICogIC0xICAgIGlmIHggPCAwLFxyXG4gICAqICAgMCAgICBpZiB4IGlzIDAsXHJcbiAgICogIC0wICAgIGlmIHggaXMgLTAsXHJcbiAgICogICBOYU4gIG90aGVyd2lzZVxyXG4gICAqXHJcbiAgICogeCB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gc2lnbih4KSB7XHJcbiAgICB4ID0gbmV3IHRoaXMoeCk7XHJcbiAgICByZXR1cm4geC5kID8gKHguZFswXSA/IHgucyA6IDAgKiB4LnMpIDogeC5zIHx8IE5hTjtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBzaW5lIG9mIGB4YCwgcm91bmRlZCB0byBgcHJlY2lzaW9uYCBzaWduaWZpY2FudCBkaWdpdHNcclxuICAgKiB1c2luZyByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKiB4IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9IEEgdmFsdWUgaW4gcmFkaWFucy5cclxuICAgKlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIHNpbih4KSB7XHJcbiAgICByZXR1cm4gbmV3IHRoaXMoeCkuc2luKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgaHlwZXJib2xpYyBzaW5lIG9mIGB4YCwgcm91bmRlZCB0byBgcHJlY2lzaW9uYFxyXG4gICAqIHNpZ25pZmljYW50IGRpZ2l0cyB1c2luZyByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKiB4IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9IEEgdmFsdWUgaW4gcmFkaWFucy5cclxuICAgKlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIHNpbmgoeCkge1xyXG4gICAgcmV0dXJuIG5ldyB0aGlzKHgpLnNpbmgoKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybiBhIG5ldyBEZWNpbWFsIHdob3NlIHZhbHVlIGlzIHRoZSBzcXVhcmUgcm9vdCBvZiBgeGAsIHJvdW5kZWQgdG8gYHByZWNpc2lvbmAgc2lnbmlmaWNhbnRcclxuICAgKiBkaWdpdHMgdXNpbmcgcm91bmRpbmcgbW9kZSBgcm91bmRpbmdgLlxyXG4gICAqXHJcbiAgICogeCB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gc3FydCh4KSB7XHJcbiAgICByZXR1cm4gbmV3IHRoaXMoeCkuc3FydCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgYHhgIG1pbnVzIGB5YCwgcm91bmRlZCB0byBgcHJlY2lzaW9uYCBzaWduaWZpY2FudCBkaWdpdHNcclxuICAgKiB1c2luZyByb3VuZGluZyBtb2RlIGByb3VuZGluZ2AuXHJcbiAgICpcclxuICAgKiB4IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9XHJcbiAgICogeSB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gc3ViKHgsIHkpIHtcclxuICAgIHJldHVybiBuZXcgdGhpcyh4KS5zdWIoeSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgc3VtIG9mIHRoZSBhcmd1bWVudHMsIHJvdW5kZWQgdG8gYHByZWNpc2lvbmBcclxuICAgKiBzaWduaWZpY2FudCBkaWdpdHMgdXNpbmcgcm91bmRpbmcgbW9kZSBgcm91bmRpbmdgLlxyXG4gICAqXHJcbiAgICogT25seSB0aGUgcmVzdWx0IGlzIHJvdW5kZWQsIG5vdCB0aGUgaW50ZXJtZWRpYXRlIGNhbGN1bGF0aW9ucy5cclxuICAgKlxyXG4gICAqIGFyZ3VtZW50cyB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfVxyXG4gICAqXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gc3VtKCkge1xyXG4gICAgdmFyIGkgPSAwLFxyXG4gICAgICBhcmdzID0gYXJndW1lbnRzLFxyXG4gICAgICB4ID0gbmV3IHRoaXMoYXJnc1tpXSk7XHJcblxyXG4gICAgZXh0ZXJuYWwgPSBmYWxzZTtcclxuICAgIGZvciAoOyB4LnMgJiYgKytpIDwgYXJncy5sZW5ndGg7KSB4ID0geC5wbHVzKGFyZ3NbaV0pO1xyXG4gICAgZXh0ZXJuYWwgPSB0cnVlO1xyXG5cclxuICAgIHJldHVybiBmaW5hbGlzZSh4LCB0aGlzLnByZWNpc2lvbiwgdGhpcy5yb3VuZGluZyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyB0aGUgdGFuZ2VudCBvZiBgeGAsIHJvdW5kZWQgdG8gYHByZWNpc2lvbmAgc2lnbmlmaWNhbnRcclxuICAgKiBkaWdpdHMgdXNpbmcgcm91bmRpbmcgbW9kZSBgcm91bmRpbmdgLlxyXG4gICAqXHJcbiAgICogeCB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfSBBIHZhbHVlIGluIHJhZGlhbnMuXHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiB0YW4oeCkge1xyXG4gICAgcmV0dXJuIG5ldyB0aGlzKHgpLnRhbigpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJuIGEgbmV3IERlY2ltYWwgd2hvc2UgdmFsdWUgaXMgdGhlIGh5cGVyYm9saWMgdGFuZ2VudCBvZiBgeGAsIHJvdW5kZWQgdG8gYHByZWNpc2lvbmBcclxuICAgKiBzaWduaWZpY2FudCBkaWdpdHMgdXNpbmcgcm91bmRpbmcgbW9kZSBgcm91bmRpbmdgLlxyXG4gICAqXHJcbiAgICogeCB7bnVtYmVyfHN0cmluZ3xEZWNpbWFsfSBBIHZhbHVlIGluIHJhZGlhbnMuXHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiB0YW5oKHgpIHtcclxuICAgIHJldHVybiBuZXcgdGhpcyh4KS50YW5oKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm4gYSBuZXcgRGVjaW1hbCB3aG9zZSB2YWx1ZSBpcyBgeGAgdHJ1bmNhdGVkIHRvIGFuIGludGVnZXIuXHJcbiAgICpcclxuICAgKiB4IHtudW1iZXJ8c3RyaW5nfERlY2ltYWx9XHJcbiAgICpcclxuICAgKi9cclxuICBmdW5jdGlvbiB0cnVuYyh4KSB7XHJcbiAgICByZXR1cm4gZmluYWxpc2UoeCA9IG5ldyB0aGlzKHgpLCB4LmUgKyAxLCAxKTtcclxuICB9XHJcblxyXG5cclxuICAvLyBDcmVhdGUgYW5kIGNvbmZpZ3VyZSBpbml0aWFsIERlY2ltYWwgY29uc3RydWN0b3IuXHJcbiAgRGVjaW1hbCA9IGNsb25lKERFRkFVTFRTKTtcclxuICBEZWNpbWFsLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IERlY2ltYWw7XHJcbiAgRGVjaW1hbFsnZGVmYXVsdCddID0gRGVjaW1hbC5EZWNpbWFsID0gRGVjaW1hbDtcclxuXHJcbiAgLy8gQ3JlYXRlIHRoZSBpbnRlcm5hbCBjb25zdGFudHMgZnJvbSB0aGVpciBzdHJpbmcgdmFsdWVzLlxyXG4gIExOMTAgPSBuZXcgRGVjaW1hbChMTjEwKTtcclxuICBQSSA9IG5ldyBEZWNpbWFsKFBJKTtcclxuXHJcblxyXG4gIC8vIEV4cG9ydC5cclxuXHJcblxyXG4gIC8vIEFNRC5cclxuICBpZiAodHlwZW9mIGRlZmluZSA9PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuICAgIGRlZmluZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHJldHVybiBEZWNpbWFsO1xyXG4gICAgfSk7XHJcblxyXG4gIC8vIE5vZGUgYW5kIG90aGVyIGVudmlyb25tZW50cyB0aGF0IHN1cHBvcnQgbW9kdWxlLmV4cG9ydHMuXHJcbiAgfSBlbHNlIGlmICh0eXBlb2YgbW9kdWxlICE9ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XHJcbiAgICBpZiAodHlwZW9mIFN5bWJvbCA9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gJ3N5bWJvbCcpIHtcclxuICAgICAgUFtTeW1ib2xbJ2ZvciddKCdub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbScpXSA9IFAudG9TdHJpbmc7XHJcbiAgICAgIFBbU3ltYm9sLnRvU3RyaW5nVGFnXSA9ICdEZWNpbWFsJztcclxuICAgIH1cclxuXHJcbiAgICBtb2R1bGUuZXhwb3J0cyA9IERlY2ltYWw7XHJcblxyXG4gIC8vIEJyb3dzZXIuXHJcbiAgfSBlbHNlIHtcclxuICAgIGlmICghZ2xvYmFsU2NvcGUpIHtcclxuICAgICAgZ2xvYmFsU2NvcGUgPSB0eXBlb2Ygc2VsZiAhPSAndW5kZWZpbmVkJyAmJiBzZWxmICYmIHNlbGYuc2VsZiA9PSBzZWxmID8gc2VsZiA6IHdpbmRvdztcclxuICAgIH1cclxuXHJcbiAgICBub0NvbmZsaWN0ID0gZ2xvYmFsU2NvcGUuRGVjaW1hbDtcclxuICAgIERlY2ltYWwubm9Db25mbGljdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgZ2xvYmFsU2NvcGUuRGVjaW1hbCA9IG5vQ29uZmxpY3Q7XHJcbiAgICAgIHJldHVybiBEZWNpbWFsO1xyXG4gICAgfTtcclxuXHJcbiAgICBnbG9iYWxTY29wZS5EZWNpbWFsID0gRGVjaW1hbDtcclxuICB9XHJcbn0pKHRoaXMpO1xyXG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBMb2Rhc2ggPGh0dHBzOi8vbG9kYXNoLmNvbS8+XG4gKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyA8aHR0cHM6Ly9vcGVuanNmLm9yZy8+XG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxuICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzXG4gKi9cbjsoZnVuY3Rpb24oKSB7XG5cbiAgLyoqIFVzZWQgYXMgYSBzYWZlIHJlZmVyZW5jZSBmb3IgYHVuZGVmaW5lZGAgaW4gcHJlLUVTNSBlbnZpcm9ubWVudHMuICovXG4gIHZhciB1bmRlZmluZWQ7XG5cbiAgLyoqIFVzZWQgYXMgdGhlIHNlbWFudGljIHZlcnNpb24gbnVtYmVyLiAqL1xuICB2YXIgVkVSU0lPTiA9ICc0LjE3LjIwJztcblxuICAvKiogVXNlZCBhcyB0aGUgc2l6ZSB0byBlbmFibGUgbGFyZ2UgYXJyYXkgb3B0aW1pemF0aW9ucy4gKi9cbiAgdmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XG5cbiAgLyoqIEVycm9yIG1lc3NhZ2UgY29uc3RhbnRzLiAqL1xuICB2YXIgQ09SRV9FUlJPUl9URVhUID0gJ1Vuc3VwcG9ydGVkIGNvcmUtanMgdXNlLiBUcnkgaHR0cHM6Ly9ucG1zLmlvL3NlYXJjaD9xPXBvbnlmaWxsLicsXG4gICAgICBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbiAgLyoqIFVzZWQgdG8gc3RhbmQtaW4gZm9yIGB1bmRlZmluZWRgIGhhc2ggdmFsdWVzLiAqL1xuICB2YXIgSEFTSF9VTkRFRklORUQgPSAnX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyc7XG5cbiAgLyoqIFVzZWQgYXMgdGhlIG1heGltdW0gbWVtb2l6ZSBjYWNoZSBzaXplLiAqL1xuICB2YXIgTUFYX01FTU9JWkVfU0laRSA9IDUwMDtcblxuICAvKiogVXNlZCBhcyB0aGUgaW50ZXJuYWwgYXJndW1lbnQgcGxhY2Vob2xkZXIuICovXG4gIHZhciBQTEFDRUhPTERFUiA9ICdfX2xvZGFzaF9wbGFjZWhvbGRlcl9fJztcblxuICAvKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciBjbG9uaW5nLiAqL1xuICB2YXIgQ0xPTkVfREVFUF9GTEFHID0gMSxcbiAgICAgIENMT05FX0ZMQVRfRkxBRyA9IDIsXG4gICAgICBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xuXG4gIC8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHZhbHVlIGNvbXBhcmlzb25zLiAqL1xuICB2YXIgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgPSAxLFxuICAgICAgQ09NUEFSRV9VTk9SREVSRURfRkxBRyA9IDI7XG5cbiAgLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgZnVuY3Rpb24gbWV0YWRhdGEuICovXG4gIHZhciBXUkFQX0JJTkRfRkxBRyA9IDEsXG4gICAgICBXUkFQX0JJTkRfS0VZX0ZMQUcgPSAyLFxuICAgICAgV1JBUF9DVVJSWV9CT1VORF9GTEFHID0gNCxcbiAgICAgIFdSQVBfQ1VSUllfRkxBRyA9IDgsXG4gICAgICBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcgPSAxNixcbiAgICAgIFdSQVBfUEFSVElBTF9GTEFHID0gMzIsXG4gICAgICBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRyA9IDY0LFxuICAgICAgV1JBUF9BUllfRkxBRyA9IDEyOCxcbiAgICAgIFdSQVBfUkVBUkdfRkxBRyA9IDI1NixcbiAgICAgIFdSQVBfRkxJUF9GTEFHID0gNTEyO1xuXG4gIC8qKiBVc2VkIGFzIGRlZmF1bHQgb3B0aW9ucyBmb3IgYF8udHJ1bmNhdGVgLiAqL1xuICB2YXIgREVGQVVMVF9UUlVOQ19MRU5HVEggPSAzMCxcbiAgICAgIERFRkFVTFRfVFJVTkNfT01JU1NJT04gPSAnLi4uJztcblxuICAvKiogVXNlZCB0byBkZXRlY3QgaG90IGZ1bmN0aW9ucyBieSBudW1iZXIgb2YgY2FsbHMgd2l0aGluIGEgc3BhbiBvZiBtaWxsaXNlY29uZHMuICovXG4gIHZhciBIT1RfQ09VTlQgPSA4MDAsXG4gICAgICBIT1RfU1BBTiA9IDE2O1xuXG4gIC8qKiBVc2VkIHRvIGluZGljYXRlIHRoZSB0eXBlIG9mIGxhenkgaXRlcmF0ZWVzLiAqL1xuICB2YXIgTEFaWV9GSUxURVJfRkxBRyA9IDEsXG4gICAgICBMQVpZX01BUF9GTEFHID0gMixcbiAgICAgIExBWllfV0hJTEVfRkxBRyA9IDM7XG5cbiAgLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG4gIHZhciBJTkZJTklUWSA9IDEgLyAwLFxuICAgICAgTUFYX1NBRkVfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTEsXG4gICAgICBNQVhfSU5URUdFUiA9IDEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4LFxuICAgICAgTkFOID0gMCAvIDA7XG5cbiAgLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdGhlIG1heGltdW0gbGVuZ3RoIGFuZCBpbmRleCBvZiBhbiBhcnJheS4gKi9cbiAgdmFyIE1BWF9BUlJBWV9MRU5HVEggPSA0Mjk0OTY3Mjk1LFxuICAgICAgTUFYX0FSUkFZX0lOREVYID0gTUFYX0FSUkFZX0xFTkdUSCAtIDEsXG4gICAgICBIQUxGX01BWF9BUlJBWV9MRU5HVEggPSBNQVhfQVJSQVlfTEVOR1RIID4+PiAxO1xuXG4gIC8qKiBVc2VkIHRvIGFzc29jaWF0ZSB3cmFwIG1ldGhvZHMgd2l0aCB0aGVpciBiaXQgZmxhZ3MuICovXG4gIHZhciB3cmFwRmxhZ3MgPSBbXG4gICAgWydhcnknLCBXUkFQX0FSWV9GTEFHXSxcbiAgICBbJ2JpbmQnLCBXUkFQX0JJTkRfRkxBR10sXG4gICAgWydiaW5kS2V5JywgV1JBUF9CSU5EX0tFWV9GTEFHXSxcbiAgICBbJ2N1cnJ5JywgV1JBUF9DVVJSWV9GTEFHXSxcbiAgICBbJ2N1cnJ5UmlnaHQnLCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUddLFxuICAgIFsnZmxpcCcsIFdSQVBfRkxJUF9GTEFHXSxcbiAgICBbJ3BhcnRpYWwnLCBXUkFQX1BBUlRJQUxfRkxBR10sXG4gICAgWydwYXJ0aWFsUmlnaHQnLCBXUkFQX1BBUlRJQUxfUklHSFRfRkxBR10sXG4gICAgWydyZWFyZycsIFdSQVBfUkVBUkdfRkxBR11cbiAgXTtcblxuICAvKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG4gIHZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXScsXG4gICAgICBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XScsXG4gICAgICBhc3luY1RhZyA9ICdbb2JqZWN0IEFzeW5jRnVuY3Rpb25dJyxcbiAgICAgIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgICAgZG9tRXhjVGFnID0gJ1tvYmplY3QgRE9NRXhjZXB0aW9uXScsXG4gICAgICBlcnJvclRhZyA9ICdbb2JqZWN0IEVycm9yXScsXG4gICAgICBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcbiAgICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgICBtYXBUYWcgPSAnW29iamVjdCBNYXBdJyxcbiAgICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgICAgbnVsbFRhZyA9ICdbb2JqZWN0IE51bGxdJyxcbiAgICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgICAgcHJvbWlzZVRhZyA9ICdbb2JqZWN0IFByb21pc2VdJyxcbiAgICAgIHByb3h5VGFnID0gJ1tvYmplY3QgUHJveHldJyxcbiAgICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgICBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJyxcbiAgICAgIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nLFxuICAgICAgdW5kZWZpbmVkVGFnID0gJ1tvYmplY3QgVW5kZWZpbmVkXScsXG4gICAgICB3ZWFrTWFwVGFnID0gJ1tvYmplY3QgV2Vha01hcF0nLFxuICAgICAgd2Vha1NldFRhZyA9ICdbb2JqZWN0IFdlYWtTZXRdJztcblxuICB2YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgICAgZGF0YVZpZXdUYWcgPSAnW29iamVjdCBEYXRhVmlld10nLFxuICAgICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGVtcHR5IHN0cmluZyBsaXRlcmFscyBpbiBjb21waWxlZCB0ZW1wbGF0ZSBzb3VyY2UuICovXG4gIHZhciByZUVtcHR5U3RyaW5nTGVhZGluZyA9IC9cXGJfX3AgXFwrPSAnJzsvZyxcbiAgICAgIHJlRW1wdHlTdHJpbmdNaWRkbGUgPSAvXFxiKF9fcCBcXCs9KSAnJyBcXCsvZyxcbiAgICAgIHJlRW1wdHlTdHJpbmdUcmFpbGluZyA9IC8oX19lXFwoLio/XFwpfFxcYl9fdFxcKSkgXFwrXFxuJyc7L2c7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggSFRNTCBlbnRpdGllcyBhbmQgSFRNTCBjaGFyYWN0ZXJzLiAqL1xuICB2YXIgcmVFc2NhcGVkSHRtbCA9IC8mKD86YW1wfGx0fGd0fHF1b3R8IzM5KTsvZyxcbiAgICAgIHJlVW5lc2NhcGVkSHRtbCA9IC9bJjw+XCInXS9nLFxuICAgICAgcmVIYXNFc2NhcGVkSHRtbCA9IFJlZ0V4cChyZUVzY2FwZWRIdG1sLnNvdXJjZSksXG4gICAgICByZUhhc1VuZXNjYXBlZEh0bWwgPSBSZWdFeHAocmVVbmVzY2FwZWRIdG1sLnNvdXJjZSk7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cbiAgdmFyIHJlRXNjYXBlID0gLzwlLShbXFxzXFxTXSs/KSU+L2csXG4gICAgICByZUV2YWx1YXRlID0gLzwlKFtcXHNcXFNdKz8pJT4vZyxcbiAgICAgIHJlSW50ZXJwb2xhdGUgPSAvPCU9KFtcXHNcXFNdKz8pJT4vZztcblxuICAvKiogVXNlZCB0byBtYXRjaCBwcm9wZXJ0eSBuYW1lcyB3aXRoaW4gcHJvcGVydHkgcGF0aHMuICovXG4gIHZhciByZUlzRGVlcFByb3AgPSAvXFwufFxcWyg/OlteW1xcXV0qfChbXCInXSkoPzooPyFcXDEpW15cXFxcXXxcXFxcLikqP1xcMSlcXF0vLFxuICAgICAgcmVJc1BsYWluUHJvcCA9IC9eXFx3KiQvLFxuICAgICAgcmVQcm9wTmFtZSA9IC9bXi5bXFxdXSt8XFxbKD86KC0/XFxkKyg/OlxcLlxcZCspPyl8KFtcIiddKSgoPzooPyFcXDIpW15cXFxcXXxcXFxcLikqPylcXDIpXFxdfCg/PSg/OlxcLnxcXFtcXF0pKD86XFwufFxcW1xcXXwkKSkvZztcblxuICAvKipcbiAgICogVXNlZCB0byBtYXRjaCBgUmVnRXhwYFxuICAgKiBbc3ludGF4IGNoYXJhY3RlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXBhdHRlcm5zKS5cbiAgICovXG4gIHZhciByZVJlZ0V4cENoYXIgPSAvW1xcXFxeJC4qKz8oKVtcXF17fXxdL2csXG4gICAgICByZUhhc1JlZ0V4cENoYXIgPSBSZWdFeHAocmVSZWdFeHBDaGFyLnNvdXJjZSk7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZS4gKi9cbiAgdmFyIHJlVHJpbSA9IC9eXFxzK3xcXHMrJC9nLFxuICAgICAgcmVUcmltU3RhcnQgPSAvXlxccysvLFxuICAgICAgcmVUcmltRW5kID0gL1xccyskLztcblxuICAvKiogVXNlZCB0byBtYXRjaCB3cmFwIGRldGFpbCBjb21tZW50cy4gKi9cbiAgdmFyIHJlV3JhcENvbW1lbnQgPSAvXFx7KD86XFxuXFwvXFwqIFxcW3dyYXBwZWQgd2l0aCAuK1xcXSBcXCpcXC8pP1xcbj8vLFxuICAgICAgcmVXcmFwRGV0YWlscyA9IC9cXHtcXG5cXC9cXCogXFxbd3JhcHBlZCB3aXRoICguKylcXF0gXFwqLyxcbiAgICAgIHJlU3BsaXREZXRhaWxzID0gLyw/ICYgLztcblxuICAvKiogVXNlZCB0byBtYXRjaCB3b3JkcyBjb21wb3NlZCBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4gKi9cbiAgdmFyIHJlQXNjaWlXb3JkID0gL1teXFx4MDAtXFx4MmZcXHgzYS1cXHg0MFxceDViLVxceDYwXFx4N2ItXFx4N2ZdKy9nO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGJhY2tzbGFzaGVzIGluIHByb3BlcnR5IHBhdGhzLiAqL1xuICB2YXIgcmVFc2NhcGVDaGFyID0gL1xcXFwoXFxcXCk/L2c7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gbWF0Y2hcbiAgICogW0VTIHRlbXBsYXRlIGRlbGltaXRlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRlbXBsYXRlLWxpdGVyYWwtbGV4aWNhbC1jb21wb25lbnRzKS5cbiAgICovXG4gIHZhciByZUVzVGVtcGxhdGUgPSAvXFwkXFx7KFteXFxcXH1dKig/OlxcXFwuW15cXFxcfV0qKSopXFx9L2c7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggYFJlZ0V4cGAgZmxhZ3MgZnJvbSB0aGVpciBjb2VyY2VkIHN0cmluZyB2YWx1ZXMuICovXG4gIHZhciByZUZsYWdzID0gL1xcdyokLztcblxuICAvKiogVXNlZCB0byBkZXRlY3QgYmFkIHNpZ25lZCBoZXhhZGVjaW1hbCBzdHJpbmcgdmFsdWVzLiAqL1xuICB2YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4gIC8qKiBVc2VkIHRvIGRldGVjdCBiaW5hcnkgc3RyaW5nIHZhbHVlcy4gKi9cbiAgdmFyIHJlSXNCaW5hcnkgPSAvXjBiWzAxXSskL2k7XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xuICB2YXIgcmVJc0hvc3RDdG9yID0gL15cXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXF0kLztcblxuICAvKiogVXNlZCB0byBkZXRlY3Qgb2N0YWwgc3RyaW5nIHZhbHVlcy4gKi9cbiAgdmFyIHJlSXNPY3RhbCA9IC9eMG9bMC03XSskL2k7XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xuICB2YXIgcmVJc1VpbnQgPSAvXig/OjB8WzEtOV1cXGQqKSQvO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIExhdGluIFVuaWNvZGUgbGV0dGVycyAoZXhjbHVkaW5nIG1hdGhlbWF0aWNhbCBvcGVyYXRvcnMpLiAqL1xuICB2YXIgcmVMYXRpbiA9IC9bXFx4YzAtXFx4ZDZcXHhkOC1cXHhmNlxceGY4LVxceGZmXFx1MDEwMC1cXHUwMTdmXS9nO1xuXG4gIC8qKiBVc2VkIHRvIGVuc3VyZSBjYXB0dXJpbmcgb3JkZXIgb2YgdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cbiAgdmFyIHJlTm9NYXRjaCA9IC8oJF4pLztcblxuICAvKiogVXNlZCB0byBtYXRjaCB1bmVzY2FwZWQgY2hhcmFjdGVycyBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG4gIHZhciByZVVuZXNjYXBlZFN0cmluZyA9IC9bJ1xcblxcclxcdTIwMjhcXHUyMDI5XFxcXF0vZztcblxuICAvKiogVXNlZCB0byBjb21wb3NlIHVuaWNvZGUgY2hhcmFjdGVyIGNsYXNzZXMuICovXG4gIHZhciByc0FzdHJhbFJhbmdlID0gJ1xcXFx1ZDgwMC1cXFxcdWRmZmYnLFxuICAgICAgcnNDb21ib01hcmtzUmFuZ2UgPSAnXFxcXHUwMzAwLVxcXFx1MDM2ZicsXG4gICAgICByZUNvbWJvSGFsZk1hcmtzUmFuZ2UgPSAnXFxcXHVmZTIwLVxcXFx1ZmUyZicsXG4gICAgICByc0NvbWJvU3ltYm9sc1JhbmdlID0gJ1xcXFx1MjBkMC1cXFxcdTIwZmYnLFxuICAgICAgcnNDb21ib1JhbmdlID0gcnNDb21ib01hcmtzUmFuZ2UgKyByZUNvbWJvSGFsZk1hcmtzUmFuZ2UgKyByc0NvbWJvU3ltYm9sc1JhbmdlLFxuICAgICAgcnNEaW5nYmF0UmFuZ2UgPSAnXFxcXHUyNzAwLVxcXFx1MjdiZicsXG4gICAgICByc0xvd2VyUmFuZ2UgPSAnYS16XFxcXHhkZi1cXFxceGY2XFxcXHhmOC1cXFxceGZmJyxcbiAgICAgIHJzTWF0aE9wUmFuZ2UgPSAnXFxcXHhhY1xcXFx4YjFcXFxceGQ3XFxcXHhmNycsXG4gICAgICByc05vbkNoYXJSYW5nZSA9ICdcXFxceDAwLVxcXFx4MmZcXFxceDNhLVxcXFx4NDBcXFxceDViLVxcXFx4NjBcXFxceDdiLVxcXFx4YmYnLFxuICAgICAgcnNQdW5jdHVhdGlvblJhbmdlID0gJ1xcXFx1MjAwMC1cXFxcdTIwNmYnLFxuICAgICAgcnNTcGFjZVJhbmdlID0gJyBcXFxcdFxcXFx4MGJcXFxcZlxcXFx4YTBcXFxcdWZlZmZcXFxcblxcXFxyXFxcXHUyMDI4XFxcXHUyMDI5XFxcXHUxNjgwXFxcXHUxODBlXFxcXHUyMDAwXFxcXHUyMDAxXFxcXHUyMDAyXFxcXHUyMDAzXFxcXHUyMDA0XFxcXHUyMDA1XFxcXHUyMDA2XFxcXHUyMDA3XFxcXHUyMDA4XFxcXHUyMDA5XFxcXHUyMDBhXFxcXHUyMDJmXFxcXHUyMDVmXFxcXHUzMDAwJyxcbiAgICAgIHJzVXBwZXJSYW5nZSA9ICdBLVpcXFxceGMwLVxcXFx4ZDZcXFxceGQ4LVxcXFx4ZGUnLFxuICAgICAgcnNWYXJSYW5nZSA9ICdcXFxcdWZlMGVcXFxcdWZlMGYnLFxuICAgICAgcnNCcmVha1JhbmdlID0gcnNNYXRoT3BSYW5nZSArIHJzTm9uQ2hhclJhbmdlICsgcnNQdW5jdHVhdGlvblJhbmdlICsgcnNTcGFjZVJhbmdlO1xuXG4gIC8qKiBVc2VkIHRvIGNvbXBvc2UgdW5pY29kZSBjYXB0dXJlIGdyb3Vwcy4gKi9cbiAgdmFyIHJzQXBvcyA9IFwiWydcXHUyMDE5XVwiLFxuICAgICAgcnNBc3RyYWwgPSAnWycgKyByc0FzdHJhbFJhbmdlICsgJ10nLFxuICAgICAgcnNCcmVhayA9ICdbJyArIHJzQnJlYWtSYW5nZSArICddJyxcbiAgICAgIHJzQ29tYm8gPSAnWycgKyByc0NvbWJvUmFuZ2UgKyAnXScsXG4gICAgICByc0RpZ2l0cyA9ICdcXFxcZCsnLFxuICAgICAgcnNEaW5nYmF0ID0gJ1snICsgcnNEaW5nYmF0UmFuZ2UgKyAnXScsXG4gICAgICByc0xvd2VyID0gJ1snICsgcnNMb3dlclJhbmdlICsgJ10nLFxuICAgICAgcnNNaXNjID0gJ1teJyArIHJzQXN0cmFsUmFuZ2UgKyByc0JyZWFrUmFuZ2UgKyByc0RpZ2l0cyArIHJzRGluZ2JhdFJhbmdlICsgcnNMb3dlclJhbmdlICsgcnNVcHBlclJhbmdlICsgJ10nLFxuICAgICAgcnNGaXR6ID0gJ1xcXFx1ZDgzY1tcXFxcdWRmZmItXFxcXHVkZmZmXScsXG4gICAgICByc01vZGlmaWVyID0gJyg/OicgKyByc0NvbWJvICsgJ3wnICsgcnNGaXR6ICsgJyknLFxuICAgICAgcnNOb25Bc3RyYWwgPSAnW14nICsgcnNBc3RyYWxSYW5nZSArICddJyxcbiAgICAgIHJzUmVnaW9uYWwgPSAnKD86XFxcXHVkODNjW1xcXFx1ZGRlNi1cXFxcdWRkZmZdKXsyfScsXG4gICAgICByc1N1cnJQYWlyID0gJ1tcXFxcdWQ4MDAtXFxcXHVkYmZmXVtcXFxcdWRjMDAtXFxcXHVkZmZmXScsXG4gICAgICByc1VwcGVyID0gJ1snICsgcnNVcHBlclJhbmdlICsgJ10nLFxuICAgICAgcnNaV0ogPSAnXFxcXHUyMDBkJztcblxuICAvKiogVXNlZCB0byBjb21wb3NlIHVuaWNvZGUgcmVnZXhlcy4gKi9cbiAgdmFyIHJzTWlzY0xvd2VyID0gJyg/OicgKyByc0xvd2VyICsgJ3wnICsgcnNNaXNjICsgJyknLFxuICAgICAgcnNNaXNjVXBwZXIgPSAnKD86JyArIHJzVXBwZXIgKyAnfCcgKyByc01pc2MgKyAnKScsXG4gICAgICByc09wdENvbnRyTG93ZXIgPSAnKD86JyArIHJzQXBvcyArICcoPzpkfGxsfG18cmV8c3x0fHZlKSk/JyxcbiAgICAgIHJzT3B0Q29udHJVcHBlciA9ICcoPzonICsgcnNBcG9zICsgJyg/OkR8TEx8TXxSRXxTfFR8VkUpKT8nLFxuICAgICAgcmVPcHRNb2QgPSByc01vZGlmaWVyICsgJz8nLFxuICAgICAgcnNPcHRWYXIgPSAnWycgKyByc1ZhclJhbmdlICsgJ10/JyxcbiAgICAgIHJzT3B0Sm9pbiA9ICcoPzonICsgcnNaV0ogKyAnKD86JyArIFtyc05vbkFzdHJhbCwgcnNSZWdpb25hbCwgcnNTdXJyUGFpcl0uam9pbignfCcpICsgJyknICsgcnNPcHRWYXIgKyByZU9wdE1vZCArICcpKicsXG4gICAgICByc09yZExvd2VyID0gJ1xcXFxkKig/OjFzdHwybmR8M3JkfCg/IVsxMjNdKVxcXFxkdGgpKD89XFxcXGJ8W0EtWl9dKScsXG4gICAgICByc09yZFVwcGVyID0gJ1xcXFxkKig/OjFTVHwyTkR8M1JEfCg/IVsxMjNdKVxcXFxkVEgpKD89XFxcXGJ8W2Etel9dKScsXG4gICAgICByc1NlcSA9IHJzT3B0VmFyICsgcmVPcHRNb2QgKyByc09wdEpvaW4sXG4gICAgICByc0Vtb2ppID0gJyg/OicgKyBbcnNEaW5nYmF0LCByc1JlZ2lvbmFsLCByc1N1cnJQYWlyXS5qb2luKCd8JykgKyAnKScgKyByc1NlcSxcbiAgICAgIHJzU3ltYm9sID0gJyg/OicgKyBbcnNOb25Bc3RyYWwgKyByc0NvbWJvICsgJz8nLCByc0NvbWJvLCByc1JlZ2lvbmFsLCByc1N1cnJQYWlyLCByc0FzdHJhbF0uam9pbignfCcpICsgJyknO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGFwb3N0cm9waGVzLiAqL1xuICB2YXIgcmVBcG9zID0gUmVnRXhwKHJzQXBvcywgJ2cnKTtcblxuICAvKipcbiAgICogVXNlZCB0byBtYXRjaCBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3MpIGFuZFxuICAgKiBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzIGZvciBzeW1ib2xzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3NfZm9yX1N5bWJvbHMpLlxuICAgKi9cbiAgdmFyIHJlQ29tYm9NYXJrID0gUmVnRXhwKHJzQ29tYm8sICdnJyk7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggW3N0cmluZyBzeW1ib2xzXShodHRwczovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvamF2YXNjcmlwdC11bmljb2RlKS4gKi9cbiAgdmFyIHJlVW5pY29kZSA9IFJlZ0V4cChyc0ZpdHogKyAnKD89JyArIHJzRml0eiArICcpfCcgKyByc1N5bWJvbCArIHJzU2VxLCAnZycpO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGNvbXBsZXggb3IgY29tcG91bmQgd29yZHMuICovXG4gIHZhciByZVVuaWNvZGVXb3JkID0gUmVnRXhwKFtcbiAgICByc1VwcGVyICsgJz8nICsgcnNMb3dlciArICcrJyArIHJzT3B0Q29udHJMb3dlciArICcoPz0nICsgW3JzQnJlYWssIHJzVXBwZXIsICckJ10uam9pbignfCcpICsgJyknLFxuICAgIHJzTWlzY1VwcGVyICsgJysnICsgcnNPcHRDb250clVwcGVyICsgJyg/PScgKyBbcnNCcmVhaywgcnNVcHBlciArIHJzTWlzY0xvd2VyLCAnJCddLmpvaW4oJ3wnKSArICcpJyxcbiAgICByc1VwcGVyICsgJz8nICsgcnNNaXNjTG93ZXIgKyAnKycgKyByc09wdENvbnRyTG93ZXIsXG4gICAgcnNVcHBlciArICcrJyArIHJzT3B0Q29udHJVcHBlcixcbiAgICByc09yZFVwcGVyLFxuICAgIHJzT3JkTG93ZXIsXG4gICAgcnNEaWdpdHMsXG4gICAgcnNFbW9qaVxuICBdLmpvaW4oJ3wnKSwgJ2cnKTtcblxuICAvKiogVXNlZCB0byBkZXRlY3Qgc3RyaW5ncyB3aXRoIFt6ZXJvLXdpZHRoIGpvaW5lcnMgb3IgY29kZSBwb2ludHMgZnJvbSB0aGUgYXN0cmFsIHBsYW5lc10oaHR0cDovL2Vldi5lZS9ibG9nLzIwMTUvMDkvMTIvZGFyay1jb3JuZXJzLW9mLXVuaWNvZGUvKS4gKi9cbiAgdmFyIHJlSGFzVW5pY29kZSA9IFJlZ0V4cCgnWycgKyByc1pXSiArIHJzQXN0cmFsUmFuZ2UgICsgcnNDb21ib1JhbmdlICsgcnNWYXJSYW5nZSArICddJyk7XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IHN0cmluZ3MgdGhhdCBuZWVkIGEgbW9yZSByb2J1c3QgcmVnZXhwIHRvIG1hdGNoIHdvcmRzLiAqL1xuICB2YXIgcmVIYXNVbmljb2RlV29yZCA9IC9bYS16XVtBLVpdfFtBLVpdezJ9W2Etel18WzAtOV1bYS16QS1aXXxbYS16QS1aXVswLTldfFteYS16QS1aMC05IF0vO1xuXG4gIC8qKiBVc2VkIHRvIGFzc2lnbiBkZWZhdWx0IGBjb250ZXh0YCBvYmplY3QgcHJvcGVydGllcy4gKi9cbiAgdmFyIGNvbnRleHRQcm9wcyA9IFtcbiAgICAnQXJyYXknLCAnQnVmZmVyJywgJ0RhdGFWaWV3JywgJ0RhdGUnLCAnRXJyb3InLCAnRmxvYXQzMkFycmF5JywgJ0Zsb2F0NjRBcnJheScsXG4gICAgJ0Z1bmN0aW9uJywgJ0ludDhBcnJheScsICdJbnQxNkFycmF5JywgJ0ludDMyQXJyYXknLCAnTWFwJywgJ01hdGgnLCAnT2JqZWN0JyxcbiAgICAnUHJvbWlzZScsICdSZWdFeHAnLCAnU2V0JywgJ1N0cmluZycsICdTeW1ib2wnLCAnVHlwZUVycm9yJywgJ1VpbnQ4QXJyYXknLFxuICAgICdVaW50OENsYW1wZWRBcnJheScsICdVaW50MTZBcnJheScsICdVaW50MzJBcnJheScsICdXZWFrTWFwJyxcbiAgICAnXycsICdjbGVhclRpbWVvdXQnLCAnaXNGaW5pdGUnLCAncGFyc2VJbnQnLCAnc2V0VGltZW91dCdcbiAgXTtcblxuICAvKiogVXNlZCB0byBtYWtlIHRlbXBsYXRlIHNvdXJjZVVSTHMgZWFzaWVyIHRvIGlkZW50aWZ5LiAqL1xuICB2YXIgdGVtcGxhdGVDb3VudGVyID0gLTE7XG5cbiAgLyoqIFVzZWQgdG8gaWRlbnRpZnkgYHRvU3RyaW5nVGFnYCB2YWx1ZXMgb2YgdHlwZWQgYXJyYXlzLiAqL1xuICB2YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcbiAgdHlwZWRBcnJheVRhZ3NbZmxvYXQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1tmbG9hdDY0VGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW2ludDhUYWddID0gdHlwZWRBcnJheVRhZ3NbaW50MTZUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQxNlRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1t1aW50MzJUYWddID0gdHJ1ZTtcbiAgdHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1thcnJheUJ1ZmZlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tib29sVGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW2RhdGFWaWV3VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2RhdGVUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPVxuICB0eXBlZEFycmF5VGFnc1ttYXBUYWddID0gdHlwZWRBcnJheVRhZ3NbbnVtYmVyVGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW29iamVjdFRhZ10gPSB0eXBlZEFycmF5VGFnc1tyZWdleHBUYWddID1cbiAgdHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPVxuICB0eXBlZEFycmF5VGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4gIC8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIHN1cHBvcnRlZCBieSBgXy5jbG9uZWAuICovXG4gIHZhciBjbG9uZWFibGVUYWdzID0ge307XG4gIGNsb25lYWJsZVRhZ3NbYXJnc1RhZ10gPSBjbG9uZWFibGVUYWdzW2FycmF5VGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRhVmlld1RhZ10gPVxuICBjbG9uZWFibGVUYWdzW2Jvb2xUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRlVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbZmxvYXQzMlRhZ10gPSBjbG9uZWFibGVUYWdzW2Zsb2F0NjRUYWddID1cbiAgY2xvbmVhYmxlVGFnc1tpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MTZUYWddID1cbiAgY2xvbmVhYmxlVGFnc1tpbnQzMlRhZ10gPSBjbG9uZWFibGVUYWdzW21hcFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW251bWJlclRhZ10gPSBjbG9uZWFibGVUYWdzW29iamVjdFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3JlZ2V4cFRhZ10gPSBjbG9uZWFibGVUYWdzW3NldFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3N0cmluZ1RhZ10gPSBjbG9uZWFibGVUYWdzW3N5bWJvbFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3VpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbdWludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG4gIGNsb25lYWJsZVRhZ3NbZXJyb3JUYWddID0gY2xvbmVhYmxlVGFnc1tmdW5jVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuICAvKiogVXNlZCB0byBtYXAgTGF0aW4gVW5pY29kZSBsZXR0ZXJzIHRvIGJhc2ljIExhdGluIGxldHRlcnMuICovXG4gIHZhciBkZWJ1cnJlZExldHRlcnMgPSB7XG4gICAgLy8gTGF0aW4tMSBTdXBwbGVtZW50IGJsb2NrLlxuICAgICdcXHhjMCc6ICdBJywgICdcXHhjMSc6ICdBJywgJ1xceGMyJzogJ0EnLCAnXFx4YzMnOiAnQScsICdcXHhjNCc6ICdBJywgJ1xceGM1JzogJ0EnLFxuICAgICdcXHhlMCc6ICdhJywgICdcXHhlMSc6ICdhJywgJ1xceGUyJzogJ2EnLCAnXFx4ZTMnOiAnYScsICdcXHhlNCc6ICdhJywgJ1xceGU1JzogJ2EnLFxuICAgICdcXHhjNyc6ICdDJywgICdcXHhlNyc6ICdjJyxcbiAgICAnXFx4ZDAnOiAnRCcsICAnXFx4ZjAnOiAnZCcsXG4gICAgJ1xceGM4JzogJ0UnLCAgJ1xceGM5JzogJ0UnLCAnXFx4Y2EnOiAnRScsICdcXHhjYic6ICdFJyxcbiAgICAnXFx4ZTgnOiAnZScsICAnXFx4ZTknOiAnZScsICdcXHhlYSc6ICdlJywgJ1xceGViJzogJ2UnLFxuICAgICdcXHhjYyc6ICdJJywgICdcXHhjZCc6ICdJJywgJ1xceGNlJzogJ0knLCAnXFx4Y2YnOiAnSScsXG4gICAgJ1xceGVjJzogJ2knLCAgJ1xceGVkJzogJ2knLCAnXFx4ZWUnOiAnaScsICdcXHhlZic6ICdpJyxcbiAgICAnXFx4ZDEnOiAnTicsICAnXFx4ZjEnOiAnbicsXG4gICAgJ1xceGQyJzogJ08nLCAgJ1xceGQzJzogJ08nLCAnXFx4ZDQnOiAnTycsICdcXHhkNSc6ICdPJywgJ1xceGQ2JzogJ08nLCAnXFx4ZDgnOiAnTycsXG4gICAgJ1xceGYyJzogJ28nLCAgJ1xceGYzJzogJ28nLCAnXFx4ZjQnOiAnbycsICdcXHhmNSc6ICdvJywgJ1xceGY2JzogJ28nLCAnXFx4ZjgnOiAnbycsXG4gICAgJ1xceGQ5JzogJ1UnLCAgJ1xceGRhJzogJ1UnLCAnXFx4ZGInOiAnVScsICdcXHhkYyc6ICdVJyxcbiAgICAnXFx4ZjknOiAndScsICAnXFx4ZmEnOiAndScsICdcXHhmYic6ICd1JywgJ1xceGZjJzogJ3UnLFxuICAgICdcXHhkZCc6ICdZJywgICdcXHhmZCc6ICd5JywgJ1xceGZmJzogJ3knLFxuICAgICdcXHhjNic6ICdBZScsICdcXHhlNic6ICdhZScsXG4gICAgJ1xceGRlJzogJ1RoJywgJ1xceGZlJzogJ3RoJyxcbiAgICAnXFx4ZGYnOiAnc3MnLFxuICAgIC8vIExhdGluIEV4dGVuZGVkLUEgYmxvY2suXG4gICAgJ1xcdTAxMDAnOiAnQScsICAnXFx1MDEwMic6ICdBJywgJ1xcdTAxMDQnOiAnQScsXG4gICAgJ1xcdTAxMDEnOiAnYScsICAnXFx1MDEwMyc6ICdhJywgJ1xcdTAxMDUnOiAnYScsXG4gICAgJ1xcdTAxMDYnOiAnQycsICAnXFx1MDEwOCc6ICdDJywgJ1xcdTAxMGEnOiAnQycsICdcXHUwMTBjJzogJ0MnLFxuICAgICdcXHUwMTA3JzogJ2MnLCAgJ1xcdTAxMDknOiAnYycsICdcXHUwMTBiJzogJ2MnLCAnXFx1MDEwZCc6ICdjJyxcbiAgICAnXFx1MDEwZSc6ICdEJywgICdcXHUwMTEwJzogJ0QnLCAnXFx1MDEwZic6ICdkJywgJ1xcdTAxMTEnOiAnZCcsXG4gICAgJ1xcdTAxMTInOiAnRScsICAnXFx1MDExNCc6ICdFJywgJ1xcdTAxMTYnOiAnRScsICdcXHUwMTE4JzogJ0UnLCAnXFx1MDExYSc6ICdFJyxcbiAgICAnXFx1MDExMyc6ICdlJywgICdcXHUwMTE1JzogJ2UnLCAnXFx1MDExNyc6ICdlJywgJ1xcdTAxMTknOiAnZScsICdcXHUwMTFiJzogJ2UnLFxuICAgICdcXHUwMTFjJzogJ0cnLCAgJ1xcdTAxMWUnOiAnRycsICdcXHUwMTIwJzogJ0cnLCAnXFx1MDEyMic6ICdHJyxcbiAgICAnXFx1MDExZCc6ICdnJywgICdcXHUwMTFmJzogJ2cnLCAnXFx1MDEyMSc6ICdnJywgJ1xcdTAxMjMnOiAnZycsXG4gICAgJ1xcdTAxMjQnOiAnSCcsICAnXFx1MDEyNic6ICdIJywgJ1xcdTAxMjUnOiAnaCcsICdcXHUwMTI3JzogJ2gnLFxuICAgICdcXHUwMTI4JzogJ0knLCAgJ1xcdTAxMmEnOiAnSScsICdcXHUwMTJjJzogJ0knLCAnXFx1MDEyZSc6ICdJJywgJ1xcdTAxMzAnOiAnSScsXG4gICAgJ1xcdTAxMjknOiAnaScsICAnXFx1MDEyYic6ICdpJywgJ1xcdTAxMmQnOiAnaScsICdcXHUwMTJmJzogJ2knLCAnXFx1MDEzMSc6ICdpJyxcbiAgICAnXFx1MDEzNCc6ICdKJywgICdcXHUwMTM1JzogJ2onLFxuICAgICdcXHUwMTM2JzogJ0snLCAgJ1xcdTAxMzcnOiAnaycsICdcXHUwMTM4JzogJ2snLFxuICAgICdcXHUwMTM5JzogJ0wnLCAgJ1xcdTAxM2InOiAnTCcsICdcXHUwMTNkJzogJ0wnLCAnXFx1MDEzZic6ICdMJywgJ1xcdTAxNDEnOiAnTCcsXG4gICAgJ1xcdTAxM2EnOiAnbCcsICAnXFx1MDEzYyc6ICdsJywgJ1xcdTAxM2UnOiAnbCcsICdcXHUwMTQwJzogJ2wnLCAnXFx1MDE0Mic6ICdsJyxcbiAgICAnXFx1MDE0Myc6ICdOJywgICdcXHUwMTQ1JzogJ04nLCAnXFx1MDE0Nyc6ICdOJywgJ1xcdTAxNGEnOiAnTicsXG4gICAgJ1xcdTAxNDQnOiAnbicsICAnXFx1MDE0Nic6ICduJywgJ1xcdTAxNDgnOiAnbicsICdcXHUwMTRiJzogJ24nLFxuICAgICdcXHUwMTRjJzogJ08nLCAgJ1xcdTAxNGUnOiAnTycsICdcXHUwMTUwJzogJ08nLFxuICAgICdcXHUwMTRkJzogJ28nLCAgJ1xcdTAxNGYnOiAnbycsICdcXHUwMTUxJzogJ28nLFxuICAgICdcXHUwMTU0JzogJ1InLCAgJ1xcdTAxNTYnOiAnUicsICdcXHUwMTU4JzogJ1InLFxuICAgICdcXHUwMTU1JzogJ3InLCAgJ1xcdTAxNTcnOiAncicsICdcXHUwMTU5JzogJ3InLFxuICAgICdcXHUwMTVhJzogJ1MnLCAgJ1xcdTAxNWMnOiAnUycsICdcXHUwMTVlJzogJ1MnLCAnXFx1MDE2MCc6ICdTJyxcbiAgICAnXFx1MDE1Yic6ICdzJywgICdcXHUwMTVkJzogJ3MnLCAnXFx1MDE1Zic6ICdzJywgJ1xcdTAxNjEnOiAncycsXG4gICAgJ1xcdTAxNjInOiAnVCcsICAnXFx1MDE2NCc6ICdUJywgJ1xcdTAxNjYnOiAnVCcsXG4gICAgJ1xcdTAxNjMnOiAndCcsICAnXFx1MDE2NSc6ICd0JywgJ1xcdTAxNjcnOiAndCcsXG4gICAgJ1xcdTAxNjgnOiAnVScsICAnXFx1MDE2YSc6ICdVJywgJ1xcdTAxNmMnOiAnVScsICdcXHUwMTZlJzogJ1UnLCAnXFx1MDE3MCc6ICdVJywgJ1xcdTAxNzInOiAnVScsXG4gICAgJ1xcdTAxNjknOiAndScsICAnXFx1MDE2Yic6ICd1JywgJ1xcdTAxNmQnOiAndScsICdcXHUwMTZmJzogJ3UnLCAnXFx1MDE3MSc6ICd1JywgJ1xcdTAxNzMnOiAndScsXG4gICAgJ1xcdTAxNzQnOiAnVycsICAnXFx1MDE3NSc6ICd3JyxcbiAgICAnXFx1MDE3Nic6ICdZJywgICdcXHUwMTc3JzogJ3knLCAnXFx1MDE3OCc6ICdZJyxcbiAgICAnXFx1MDE3OSc6ICdaJywgICdcXHUwMTdiJzogJ1onLCAnXFx1MDE3ZCc6ICdaJyxcbiAgICAnXFx1MDE3YSc6ICd6JywgICdcXHUwMTdjJzogJ3onLCAnXFx1MDE3ZSc6ICd6JyxcbiAgICAnXFx1MDEzMic6ICdJSicsICdcXHUwMTMzJzogJ2lqJyxcbiAgICAnXFx1MDE1Mic6ICdPZScsICdcXHUwMTUzJzogJ29lJyxcbiAgICAnXFx1MDE0OSc6IFwiJ25cIiwgJ1xcdTAxN2YnOiAncydcbiAgfTtcblxuICAvKiogVXNlZCB0byBtYXAgY2hhcmFjdGVycyB0byBIVE1MIGVudGl0aWVzLiAqL1xuICB2YXIgaHRtbEVzY2FwZXMgPSB7XG4gICAgJyYnOiAnJmFtcDsnLFxuICAgICc8JzogJyZsdDsnLFxuICAgICc+JzogJyZndDsnLFxuICAgICdcIic6ICcmcXVvdDsnLFxuICAgIFwiJ1wiOiAnJiMzOTsnXG4gIH07XG5cbiAgLyoqIFVzZWQgdG8gbWFwIEhUTUwgZW50aXRpZXMgdG8gY2hhcmFjdGVycy4gKi9cbiAgdmFyIGh0bWxVbmVzY2FwZXMgPSB7XG4gICAgJyZhbXA7JzogJyYnLFxuICAgICcmbHQ7JzogJzwnLFxuICAgICcmZ3Q7JzogJz4nLFxuICAgICcmcXVvdDsnOiAnXCInLFxuICAgICcmIzM5Oyc6IFwiJ1wiXG4gIH07XG5cbiAgLyoqIFVzZWQgdG8gZXNjYXBlIGNoYXJhY3RlcnMgZm9yIGluY2x1c2lvbiBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG4gIHZhciBzdHJpbmdFc2NhcGVzID0ge1xuICAgICdcXFxcJzogJ1xcXFwnLFxuICAgIFwiJ1wiOiBcIidcIixcbiAgICAnXFxuJzogJ24nLFxuICAgICdcXHInOiAncicsXG4gICAgJ1xcdTIwMjgnOiAndTIwMjgnLFxuICAgICdcXHUyMDI5JzogJ3UyMDI5J1xuICB9O1xuXG4gIC8qKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB3aXRob3V0IGEgZGVwZW5kZW5jeSBvbiBgcm9vdGAuICovXG4gIHZhciBmcmVlUGFyc2VGbG9hdCA9IHBhcnNlRmxvYXQsXG4gICAgICBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuICAvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGdsb2JhbGAgZnJvbSBOb2RlLmpzLiAqL1xuICB2YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbiAgdmFyIGZyZWVTZWxmID0gdHlwZW9mIHNlbGYgPT0gJ29iamVjdCcgJiYgc2VsZiAmJiBzZWxmLk9iamVjdCA9PT0gT2JqZWN0ICYmIHNlbGY7XG5cbiAgLyoqIFVzZWQgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBvYmplY3QuICovXG4gIHZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4gIC8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG4gIHZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiYgIWV4cG9ydHMubm9kZVR5cGUgJiYgZXhwb3J0cztcblxuICAvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG4gIHZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbiAgLyoqIERldGVjdCB0aGUgcG9wdWxhciBDb21tb25KUyBleHRlbnNpb24gYG1vZHVsZS5leHBvcnRzYC4gKi9cbiAgdmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBwcm9jZXNzYCBmcm9tIE5vZGUuanMuICovXG4gIHZhciBmcmVlUHJvY2VzcyA9IG1vZHVsZUV4cG9ydHMgJiYgZnJlZUdsb2JhbC5wcm9jZXNzO1xuXG4gIC8qKiBVc2VkIHRvIGFjY2VzcyBmYXN0ZXIgTm9kZS5qcyBoZWxwZXJzLiAqL1xuICB2YXIgbm9kZVV0aWwgPSAoZnVuY3Rpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFVzZSBgdXRpbC50eXBlc2AgZm9yIE5vZGUuanMgMTArLlxuICAgICAgdmFyIHR5cGVzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlKCd1dGlsJykudHlwZXM7XG5cbiAgICAgIGlmICh0eXBlcykge1xuICAgICAgICByZXR1cm4gdHlwZXM7XG4gICAgICB9XG5cbiAgICAgIC8vIExlZ2FjeSBgcHJvY2Vzcy5iaW5kaW5nKCd1dGlsJylgIGZvciBOb2RlLmpzIDwgMTAuXG4gICAgICByZXR1cm4gZnJlZVByb2Nlc3MgJiYgZnJlZVByb2Nlc3MuYmluZGluZyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nKCd1dGlsJyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgfSgpKTtcblxuICAvKiBOb2RlLmpzIGhlbHBlciByZWZlcmVuY2VzLiAqL1xuICB2YXIgbm9kZUlzQXJyYXlCdWZmZXIgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc0FycmF5QnVmZmVyLFxuICAgICAgbm9kZUlzRGF0ZSA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzRGF0ZSxcbiAgICAgIG5vZGVJc01hcCA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzTWFwLFxuICAgICAgbm9kZUlzUmVnRXhwID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNSZWdFeHAsXG4gICAgICBub2RlSXNTZXQgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1NldCxcbiAgICAgIG5vZGVJc1R5cGVkQXJyYXkgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1R5cGVkQXJyYXk7XG5cbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgLyoqXG4gICAqIEEgZmFzdGVyIGFsdGVybmF0aXZlIHRvIGBGdW5jdGlvbiNhcHBseWAsIHRoaXMgZnVuY3Rpb24gaW52b2tlcyBgZnVuY2BcbiAgICogd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgYHRoaXNBcmdgIGFuZCB0aGUgYXJndW1lbnRzIG9mIGBhcmdzYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaW52b2tlLlxuICAgKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgYXJndW1lbnRzIHRvIGludm9rZSBgZnVuY2Agd2l0aC5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc3VsdCBvZiBgZnVuY2AuXG4gICAqL1xuICBmdW5jdGlvbiBhcHBseShmdW5jLCB0aGlzQXJnLCBhcmdzKSB7XG4gICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgY2FzZSAwOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcpO1xuICAgICAgY2FzZSAxOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0pO1xuICAgICAgY2FzZSAyOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgICAgY2FzZSAzOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pO1xuICAgIH1cbiAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VBZ2dyZWdhdG9yYCBmb3IgYXJyYXlzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHNldHRlciBUaGUgZnVuY3Rpb24gdG8gc2V0IGBhY2N1bXVsYXRvcmAgdmFsdWVzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIGtleXMuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBhY2N1bXVsYXRvciBUaGUgaW5pdGlhbCBhZ2dyZWdhdGVkIG9iamVjdC5cbiAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBhY2N1bXVsYXRvcmAuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheUFnZ3JlZ2F0b3IoYXJyYXksIHNldHRlciwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgIHNldHRlcihhY2N1bXVsYXRvciwgdmFsdWUsIGl0ZXJhdGVlKHZhbHVlKSwgYXJyYXkpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZvckVhY2hgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlFYWNoKGFycmF5LCBpdGVyYXRlZSkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAoaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpID09PSBmYWxzZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5mb3JFYWNoUmlnaHRgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlFYWNoUmlnaHQoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICBpZiAoaXRlcmF0ZWUoYXJyYXlbbGVuZ3RoXSwgbGVuZ3RoLCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXk7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmV2ZXJ5YCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFsbCBlbGVtZW50cyBwYXNzIHRoZSBwcmVkaWNhdGUgY2hlY2ssXG4gICAqICBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheUV2ZXJ5KGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKCFwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZpbHRlcmAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAqIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlGaWx0ZXIoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgcmVzSW5kZXggPSAwLFxuICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5pbmNsdWRlc2AgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAqIHNwZWNpZnlpbmcgYW4gaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7Kn0gdGFyZ2V0IFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHRhcmdldGAgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAgICovXG4gIGZ1bmN0aW9uIGFycmF5SW5jbHVkZXMoYXJyYXksIHZhbHVlKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgIHJldHVybiAhIWxlbmd0aCAmJiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIDApID4gLTE7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBhcnJheUluY2x1ZGVzYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGEgY29tcGFyYXRvci5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB0YXJnZXQgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbXBhcmF0b3IgVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB0YXJnZXRgIGlzIGZvdW5kLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheUluY2x1ZGVzV2l0aChhcnJheSwgdmFsdWUsIGNvbXBhcmF0b3IpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKGNvbXBhcmF0b3IodmFsdWUsIGFycmF5W2luZGV4XSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubWFwYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVcbiAgICogc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgYXJyYXkuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheU1hcChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmRzIHRoZSBlbGVtZW50cyBvZiBgdmFsdWVzYCB0byBgYXJyYXlgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBhcHBlbmQuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlQdXNoKGFycmF5LCB2YWx1ZXMpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aCxcbiAgICAgICAgb2Zmc2V0ID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGFycmF5W29mZnNldCArIGluZGV4XSA9IHZhbHVlc1tpbmRleF07XG4gICAgfVxuICAgIHJldHVybiBhcnJheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ucmVkdWNlYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luaXRBY2N1bV0gU3BlY2lmeSB1c2luZyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgIGFzXG4gICAqICB0aGUgaW5pdGlhbCB2YWx1ZS5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlSZWR1Y2UoYXJyYXksIGl0ZXJhdGVlLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gICAgaWYgKGluaXRBY2N1bSAmJiBsZW5ndGgpIHtcbiAgICAgIGFjY3VtdWxhdG9yID0gYXJyYXlbKytpbmRleF07XG4gICAgfVxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCBhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSk7XG4gICAgfVxuICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ucmVkdWNlUmlnaHRgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAgICogQHBhcmFtIHtib29sZWFufSBbaW5pdEFjY3VtXSBTcGVjaWZ5IHVzaW5nIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YCBhc1xuICAgKiAgdGhlIGluaXRpYWwgdmFsdWUuXG4gICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICovXG4gIGZ1bmN0aW9uIGFycmF5UmVkdWNlUmlnaHQoYXJyYXksIGl0ZXJhdGVlLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgIGlmIChpbml0QWNjdW0gJiYgbGVuZ3RoKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGFycmF5Wy0tbGVuZ3RoXTtcbiAgICB9XG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCBhcnJheVtsZW5ndGhdLCBsZW5ndGgsIGFycmF5KTtcbiAgICB9XG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zb21lYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVcbiAgICogc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFueSBlbGVtZW50IHBhc3NlcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlTb21lKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzaXplIG9mIGFuIEFTQ0lJIGBzdHJpbmdgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgaW5zcGVjdC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3RyaW5nIHNpemUuXG4gICAqL1xuICB2YXIgYXNjaWlTaXplID0gYmFzZVByb3BlcnR5KCdsZW5ndGgnKTtcblxuICAvKipcbiAgICogQ29udmVydHMgYW4gQVNDSUkgYHN0cmluZ2AgdG8gYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBhcnJheS5cbiAgICovXG4gIGZ1bmN0aW9uIGFzY2lpVG9BcnJheShzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyaW5nLnNwbGl0KCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdHMgYW4gQVNDSUkgYHN0cmluZ2AgaW50byBhbiBhcnJheSBvZiBpdHMgd29yZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgd29yZHMgb2YgYHN0cmluZ2AuXG4gICAqL1xuICBmdW5jdGlvbiBhc2NpaVdvcmRzKHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmcubWF0Y2gocmVBc2NpaVdvcmQpIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5maW5kS2V5YCBhbmQgYF8uZmluZExhc3RLZXlgLFxuICAgKiB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMsIHdoaWNoIGl0ZXJhdGVzIG92ZXIgYGNvbGxlY3Rpb25gXG4gICAqIHVzaW5nIGBlYWNoRnVuY2AuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGBjb2xsZWN0aW9uYC5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZvdW5kIGVsZW1lbnQgb3IgaXRzIGtleSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VGaW5kS2V5KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZWFjaEZ1bmMpIHtcbiAgICB2YXIgcmVzdWx0O1xuICAgIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGtleSwgY29sbGVjdGlvbikpIHtcbiAgICAgICAgcmVzdWx0ID0ga2V5O1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maW5kSW5kZXhgIGFuZCBgXy5maW5kTGFzdEluZGV4YCB3aXRob3V0XG4gICAqIHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZUZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tSW5kZXgsIGZyb21SaWdodCkge1xuICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgIGluZGV4ID0gZnJvbUluZGV4ICsgKGZyb21SaWdodCA/IDEgOiAtMSk7XG5cbiAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgaWYgKHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW5kZXhPZmAgd2l0aG91dCBgZnJvbUluZGV4YCBib3VuZHMgY2hlY2tzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWVcbiAgICAgID8gc3RyaWN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleClcbiAgICAgIDogYmFzZUZpbmRJbmRleChhcnJheSwgYmFzZUlzTmFOLCBmcm9tSW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgYmFzZUluZGV4T2ZgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYSBjb21wYXJhdG9yLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbXBhcmF0b3IgVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VJbmRleE9mV2l0aChhcnJheSwgdmFsdWUsIGZyb21JbmRleCwgY29tcGFyYXRvcikge1xuICAgIHZhciBpbmRleCA9IGZyb21JbmRleCAtIDEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAoY29tcGFyYXRvcihhcnJheVtpbmRleF0sIHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc05hTmAgd2l0aG91dCBzdXBwb3J0IGZvciBudW1iZXIgb2JqZWN0cy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGBOYU5gLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlSXNOYU4odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1lYW5gIGFuZCBgXy5tZWFuQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbWVhbi5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VNZWFuKGFycmF5LCBpdGVyYXRlZSkge1xuICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICByZXR1cm4gbGVuZ3RoID8gKGJhc2VTdW0oYXJyYXksIGl0ZXJhdGVlKSAvIGxlbmd0aCkgOiBOQU47XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVByb3BlcnR5KGtleSkge1xuICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdFtrZXldO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlPZmAgd2l0aG91dCBzdXBwb3J0IGZvciBkZWVwIHBhdGhzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVByb3BlcnR5T2Yob2JqZWN0KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGtleSkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yZWR1Y2VgIGFuZCBgXy5yZWR1Y2VSaWdodGAsIHdpdGhvdXQgc3VwcG9ydFxuICAgKiBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcywgd2hpY2ggaXRlcmF0ZXMgb3ZlciBgY29sbGVjdGlvbmAgdXNpbmcgYGVhY2hGdW5jYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcGFyYW0geyp9IGFjY3VtdWxhdG9yIFRoZSBpbml0aWFsIHZhbHVlLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGluaXRBY2N1bSBTcGVjaWZ5IHVzaW5nIHRoZSBmaXJzdCBvciBsYXN0IGVsZW1lbnQgb2ZcbiAgICogIGBjb2xsZWN0aW9uYCBhcyB0aGUgaW5pdGlhbCB2YWx1ZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZWFjaEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBgY29sbGVjdGlvbmAuXG4gICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VSZWR1Y2UoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0sIGVhY2hGdW5jKSB7XG4gICAgZWFjaEZ1bmMoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGluaXRBY2N1bVxuICAgICAgICA/IChpbml0QWNjdW0gPSBmYWxzZSwgdmFsdWUpXG4gICAgICAgIDogaXRlcmF0ZWUoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvcnRCeWAgd2hpY2ggdXNlcyBgY29tcGFyZXJgIHRvIGRlZmluZSB0aGVcbiAgICogc29ydCBvcmRlciBvZiBgYXJyYXlgIGFuZCByZXBsYWNlcyBjcml0ZXJpYSBvYmplY3RzIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZ1xuICAgKiB2YWx1ZXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzb3J0LlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJlciBUaGUgZnVuY3Rpb24gdG8gZGVmaW5lIHNvcnQgb3JkZXIuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVNvcnRCeShhcnJheSwgY29tcGFyZXIpIHtcbiAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgYXJyYXkuc29ydChjb21wYXJlcik7XG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICBhcnJheVtsZW5ndGhdID0gYXJyYXlbbGVuZ3RoXS52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnN1bWAgYW5kIGBfLnN1bUJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAqIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHN1bS5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VTdW0oYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgdmFyIHJlc3VsdCxcbiAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBjdXJyZW50ID0gaXRlcmF0ZWUoYXJyYXlbaW5kZXhdKTtcbiAgICAgIGlmIChjdXJyZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ID09PSB1bmRlZmluZWQgPyBjdXJyZW50IDogKHJlc3VsdCArIGN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRpbWVzYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHNcbiAgICogb3IgbWF4IGFycmF5IGxlbmd0aCBjaGVja3MuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gaW52b2tlIGBpdGVyYXRlZWAuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VUaW1lcyhuLCBpdGVyYXRlZSkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICByZXN1bHQgPSBBcnJheShuKTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGluZGV4KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50b1BhaXJzYCBhbmQgYF8udG9QYWlyc0luYCB3aGljaCBjcmVhdGVzIGFuIGFycmF5XG4gICAqIG9mIGtleS12YWx1ZSBwYWlycyBmb3IgYG9iamVjdGAgY29ycmVzcG9uZGluZyB0byB0aGUgcHJvcGVydHkgbmFtZXMgb2YgYHByb3BzYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gZ2V0IHZhbHVlcyBmb3IuXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGtleS12YWx1ZSBwYWlycy5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VUb1BhaXJzKG9iamVjdCwgcHJvcHMpIHtcbiAgICByZXR1cm4gYXJyYXlNYXAocHJvcHMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgcmV0dXJuIFtrZXksIG9iamVjdFtrZXldXTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy51bmFyeWAgd2l0aG91dCBzdXBwb3J0IGZvciBzdG9yaW5nIG1ldGFkYXRhLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjYXAgYXJndW1lbnRzIGZvci5cbiAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FwcGVkIGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVVuYXJ5KGZ1bmMpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiBmdW5jKHZhbHVlKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnZhbHVlc2AgYW5kIGBfLnZhbHVlc0luYCB3aGljaCBjcmVhdGVzIGFuXG4gICAqIGFycmF5IG9mIGBvYmplY3RgIHByb3BlcnR5IHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwcm9wZXJ0eSBuYW1lc1xuICAgKiBvZiBgcHJvcHNgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBwcm9wZXJ0eSBuYW1lcyB0byBnZXQgdmFsdWVzIGZvci5cbiAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgdmFsdWVzLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVZhbHVlcyhvYmplY3QsIHByb3BzKSB7XG4gICAgcmV0dXJuIGFycmF5TWFwKHByb3BzLCBmdW5jdGlvbihrZXkpIHtcbiAgICAgIHJldHVybiBvYmplY3Rba2V5XTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBgY2FjaGVgIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjYWNoZSBUaGUgY2FjaGUgdG8gcXVlcnkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBjYWNoZUhhcyhjYWNoZSwga2V5KSB7XG4gICAgcmV0dXJuIGNhY2hlLmhhcyhrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8udHJpbWAgYW5kIGBfLnRyaW1TdGFydGAgdG8gZ2V0IHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgc3RyaW5nIHN5bWJvbFxuICAgKiB0aGF0IGlzIG5vdCBmb3VuZCBpbiB0aGUgY2hhcmFjdGVyIHN5bWJvbHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IHN0clN5bWJvbHMgVGhlIHN0cmluZyBzeW1ib2xzIHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7QXJyYXl9IGNoclN5bWJvbHMgVGhlIGNoYXJhY3RlciBzeW1ib2xzIHRvIGZpbmQuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCB1bm1hdGNoZWQgc3RyaW5nIHN5bWJvbC5cbiAgICovXG4gIGZ1bmN0aW9uIGNoYXJzU3RhcnRJbmRleChzdHJTeW1ib2xzLCBjaHJTeW1ib2xzKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IHN0clN5bWJvbHMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGggJiYgYmFzZUluZGV4T2YoY2hyU3ltYm9scywgc3RyU3ltYm9sc1tpbmRleF0sIDApID4gLTEpIHt9XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8udHJpbWAgYW5kIGBfLnRyaW1FbmRgIHRvIGdldCB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgc3RyaW5nIHN5bWJvbFxuICAgKiB0aGF0IGlzIG5vdCBmb3VuZCBpbiB0aGUgY2hhcmFjdGVyIHN5bWJvbHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IHN0clN5bWJvbHMgVGhlIHN0cmluZyBzeW1ib2xzIHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7QXJyYXl9IGNoclN5bWJvbHMgVGhlIGNoYXJhY3RlciBzeW1ib2xzIHRvIGZpbmQuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IHVubWF0Y2hlZCBzdHJpbmcgc3ltYm9sLlxuICAgKi9cbiAgZnVuY3Rpb24gY2hhcnNFbmRJbmRleChzdHJTeW1ib2xzLCBjaHJTeW1ib2xzKSB7XG4gICAgdmFyIGluZGV4ID0gc3RyU3ltYm9scy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaW5kZXgtLSAmJiBiYXNlSW5kZXhPZihjaHJTeW1ib2xzLCBzdHJTeW1ib2xzW2luZGV4XSwgMCkgPiAtMSkge31cbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGBwbGFjZWhvbGRlcmAgb2NjdXJyZW5jZXMgaW4gYGFycmF5YC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7Kn0gcGxhY2Vob2xkZXIgVGhlIHBsYWNlaG9sZGVyIHRvIHNlYXJjaCBmb3IuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHBsYWNlaG9sZGVyIGNvdW50LlxuICAgKi9cbiAgZnVuY3Rpb24gY291bnRIb2xkZXJzKGFycmF5LCBwbGFjZWhvbGRlcikge1xuICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgIHJlc3VsdCA9IDA7XG5cbiAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgIGlmIChhcnJheVtsZW5ndGhdID09PSBwbGFjZWhvbGRlcikge1xuICAgICAgICArK3Jlc3VsdDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IGBfLmRlYnVycmAgdG8gY29udmVydCBMYXRpbi0xIFN1cHBsZW1lbnQgYW5kIExhdGluIEV4dGVuZGVkLUFcbiAgICogbGV0dGVycyB0byBiYXNpYyBMYXRpbiBsZXR0ZXJzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbGV0dGVyIFRoZSBtYXRjaGVkIGxldHRlciB0byBkZWJ1cnIuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGRlYnVycmVkIGxldHRlci5cbiAgICovXG4gIHZhciBkZWJ1cnJMZXR0ZXIgPSBiYXNlUHJvcGVydHlPZihkZWJ1cnJlZExldHRlcnMpO1xuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IGBfLmVzY2FwZWAgdG8gY29udmVydCBjaGFyYWN0ZXJzIHRvIEhUTUwgZW50aXRpZXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaHIgVGhlIG1hdGNoZWQgY2hhcmFjdGVyIHRvIGVzY2FwZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBjaGFyYWN0ZXIuXG4gICAqL1xuICB2YXIgZXNjYXBlSHRtbENoYXIgPSBiYXNlUHJvcGVydHlPZihodG1sRXNjYXBlcyk7XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8udGVtcGxhdGVgIHRvIGVzY2FwZSBjaGFyYWN0ZXJzIGZvciBpbmNsdXNpb24gaW4gY29tcGlsZWQgc3RyaW5nIGxpdGVyYWxzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hyIFRoZSBtYXRjaGVkIGNoYXJhY3RlciB0byBlc2NhcGUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGVzY2FwZWQgY2hhcmFjdGVyLlxuICAgKi9cbiAgZnVuY3Rpb24gZXNjYXBlU3RyaW5nQ2hhcihjaHIpIHtcbiAgICByZXR1cm4gJ1xcXFwnICsgc3RyaW5nRXNjYXBlc1tjaHJdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZhbHVlIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZS5cbiAgICovXG4gIGZ1bmN0aW9uIGdldFZhbHVlKG9iamVjdCwga2V5KSB7XG4gICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGBzdHJpbmdgIGNvbnRhaW5zIFVuaWNvZGUgc3ltYm9scy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhIHN5bWJvbCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxuICAgKi9cbiAgZnVuY3Rpb24gaGFzVW5pY29kZShzdHJpbmcpIHtcbiAgICByZXR1cm4gcmVIYXNVbmljb2RlLnRlc3Qoc3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYHN0cmluZ2AgY29udGFpbnMgYSB3b3JkIGNvbXBvc2VkIG9mIFVuaWNvZGUgc3ltYm9scy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhIHdvcmQgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAgICovXG4gIGZ1bmN0aW9uIGhhc1VuaWNvZGVXb3JkKHN0cmluZykge1xuICAgIHJldHVybiByZUhhc1VuaWNvZGVXb3JkLnRlc3Qoc3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBgaXRlcmF0b3JgIHRvIGFuIGFycmF5LlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gaXRlcmF0b3IgVGhlIGl0ZXJhdG9yIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY29udmVydGVkIGFycmF5LlxuICAgKi9cbiAgZnVuY3Rpb24gaXRlcmF0b3JUb0FycmF5KGl0ZXJhdG9yKSB7XG4gICAgdmFyIGRhdGEsXG4gICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgd2hpbGUgKCEoZGF0YSA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgcmVzdWx0LnB1c2goZGF0YS52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYG1hcGAgdG8gaXRzIGtleS12YWx1ZSBwYWlycy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG1hcCBUaGUgbWFwIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUga2V5LXZhbHVlIHBhaXJzLlxuICAgKi9cbiAgZnVuY3Rpb24gbWFwVG9BcnJheShtYXApIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgcmVzdWx0ID0gQXJyYXkobWFwLnNpemUpO1xuXG4gICAgbWFwLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAgcmVzdWx0WysraW5kZXhdID0gW2tleSwgdmFsdWVdO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHVuYXJ5IGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBpdHMgYXJndW1lbnQgdHJhbnNmb3JtZWQuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHRyYW5zZm9ybSBUaGUgYXJndW1lbnQgdHJhbnNmb3JtLlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICovXG4gIGZ1bmN0aW9uIG92ZXJBcmcoZnVuYywgdHJhbnNmb3JtKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGFyZykge1xuICAgICAgcmV0dXJuIGZ1bmModHJhbnNmb3JtKGFyZykpO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgYWxsIGBwbGFjZWhvbGRlcmAgZWxlbWVudHMgaW4gYGFycmF5YCB3aXRoIGFuIGludGVybmFsIHBsYWNlaG9sZGVyXG4gICAqIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIHRoZWlyIGluZGV4ZXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAqIEBwYXJhbSB7Kn0gcGxhY2Vob2xkZXIgVGhlIHBsYWNlaG9sZGVyIHRvIHJlcGxhY2UuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gICAqL1xuICBmdW5jdGlvbiByZXBsYWNlSG9sZGVycyhhcnJheSwgcGxhY2Vob2xkZXIpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICByZXNJbmRleCA9IDAsXG4gICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gcGxhY2Vob2xkZXIgfHwgdmFsdWUgPT09IFBMQUNFSE9MREVSKSB7XG4gICAgICAgIGFycmF5W2luZGV4XSA9IFBMQUNFSE9MREVSO1xuICAgICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSBpbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBgc2V0YCB0byBhbiBhcnJheSBvZiBpdHMgdmFsdWVzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gc2V0IFRoZSBzZXQgdG8gY29udmVydC5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSB2YWx1ZXMuXG4gICAqL1xuICBmdW5jdGlvbiBzZXRUb0FycmF5KHNldCkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICByZXN1bHQgPSBBcnJheShzZXQuc2l6ZSk7XG5cbiAgICBzZXQuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgcmVzdWx0WysraW5kZXhdID0gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBgc2V0YCB0byBpdHMgdmFsdWUtdmFsdWUgcGFpcnMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBzZXQgVGhlIHNldCB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHZhbHVlLXZhbHVlIHBhaXJzLlxuICAgKi9cbiAgZnVuY3Rpb24gc2V0VG9QYWlycyhzZXQpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgcmVzdWx0ID0gQXJyYXkoc2V0LnNpemUpO1xuXG4gICAgc2V0LmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHJlc3VsdFsrK2luZGV4XSA9IFt2YWx1ZSwgdmFsdWVdO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmluZGV4T2ZgIHdoaWNoIHBlcmZvcm1zIHN0cmljdCBlcXVhbGl0eVxuICAgKiBjb21wYXJpc29ucyBvZiB2YWx1ZXMsIGkuZS4gYD09PWAuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICovXG4gIGZ1bmN0aW9uIHN0cmljdEluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgaW5kZXggPSBmcm9tSW5kZXggLSAxLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKGFycmF5W2luZGV4XSA9PT0gdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmxhc3RJbmRleE9mYCB3aGljaCBwZXJmb3JtcyBzdHJpY3QgZXF1YWxpdHlcbiAgICogY29tcGFyaXNvbnMgb2YgdmFsdWVzLCBpLmUuIGA9PT1gLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAqL1xuICBmdW5jdGlvbiBzdHJpY3RMYXN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgIHZhciBpbmRleCA9IGZyb21JbmRleCArIDE7XG4gICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgIGlmIChhcnJheVtpbmRleF0gPT09IHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIG51bWJlciBvZiBzeW1ib2xzIGluIGBzdHJpbmdgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3RyaW5nIHNpemUuXG4gICAqL1xuICBmdW5jdGlvbiBzdHJpbmdTaXplKHN0cmluZykge1xuICAgIHJldHVybiBoYXNVbmljb2RlKHN0cmluZylcbiAgICAgID8gdW5pY29kZVNpemUoc3RyaW5nKVxuICAgICAgOiBhc2NpaVNpemUoc3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBhbiBhcnJheS5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY29udmVydGVkIGFycmF5LlxuICAgKi9cbiAgZnVuY3Rpb24gc3RyaW5nVG9BcnJheShzdHJpbmcpIHtcbiAgICByZXR1cm4gaGFzVW5pY29kZShzdHJpbmcpXG4gICAgICA/IHVuaWNvZGVUb0FycmF5KHN0cmluZylcbiAgICAgIDogYXNjaWlUb0FycmF5KHN0cmluZyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy51bmVzY2FwZWAgdG8gY29udmVydCBIVE1MIGVudGl0aWVzIHRvIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaHIgVGhlIG1hdGNoZWQgY2hhcmFjdGVyIHRvIHVuZXNjYXBlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB1bmVzY2FwZWQgY2hhcmFjdGVyLlxuICAgKi9cbiAgdmFyIHVuZXNjYXBlSHRtbENoYXIgPSBiYXNlUHJvcGVydHlPZihodG1sVW5lc2NhcGVzKTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgc2l6ZSBvZiBhIFVuaWNvZGUgYHN0cmluZ2AuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyBpbnNwZWN0LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdHJpbmcgc2l6ZS5cbiAgICovXG4gIGZ1bmN0aW9uIHVuaWNvZGVTaXplKHN0cmluZykge1xuICAgIHZhciByZXN1bHQgPSByZVVuaWNvZGUubGFzdEluZGV4ID0gMDtcbiAgICB3aGlsZSAocmVVbmljb2RlLnRlc3Qoc3RyaW5nKSkge1xuICAgICAgKytyZXN1bHQ7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBVbmljb2RlIGBzdHJpbmdgIHRvIGFuIGFycmF5LlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgYXJyYXkuXG4gICAqL1xuICBmdW5jdGlvbiB1bmljb2RlVG9BcnJheShzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyaW5nLm1hdGNoKHJlVW5pY29kZSkgfHwgW107XG4gIH1cblxuICAvKipcbiAgICogU3BsaXRzIGEgVW5pY29kZSBgc3RyaW5nYCBpbnRvIGFuIGFycmF5IG9mIGl0cyB3b3Jkcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSB3b3JkcyBvZiBgc3RyaW5nYC5cbiAgICovXG4gIGZ1bmN0aW9uIHVuaWNvZGVXb3JkcyhzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyaW5nLm1hdGNoKHJlVW5pY29kZVdvcmQpIHx8IFtdO1xuICB9XG5cbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBwcmlzdGluZSBgbG9kYXNoYCBmdW5jdGlvbiB1c2luZyB0aGUgYGNvbnRleHRgIG9iamVjdC5cbiAgICpcbiAgICogQHN0YXRpY1xuICAgKiBAbWVtYmVyT2YgX1xuICAgKiBAc2luY2UgMS4xLjBcbiAgICogQGNhdGVnb3J5IFV0aWxcbiAgICogQHBhcmFtIHtPYmplY3R9IFtjb250ZXh0PXJvb3RdIFRoZSBjb250ZXh0IG9iamVjdC5cbiAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGEgbmV3IGBsb2Rhc2hgIGZ1bmN0aW9uLlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBfLm1peGluKHsgJ2Zvbyc6IF8uY29uc3RhbnQoJ2ZvbycpIH0pO1xuICAgKlxuICAgKiB2YXIgbG9kYXNoID0gXy5ydW5JbkNvbnRleHQoKTtcbiAgICogbG9kYXNoLm1peGluKHsgJ2Jhcic6IGxvZGFzaC5jb25zdGFudCgnYmFyJykgfSk7XG4gICAqXG4gICAqIF8uaXNGdW5jdGlvbihfLmZvbyk7XG4gICAqIC8vID0+IHRydWVcbiAgICogXy5pc0Z1bmN0aW9uKF8uYmFyKTtcbiAgICogLy8gPT4gZmFsc2VcbiAgICpcbiAgICogbG9kYXNoLmlzRnVuY3Rpb24obG9kYXNoLmZvbyk7XG4gICAqIC8vID0+IGZhbHNlXG4gICAqIGxvZGFzaC5pc0Z1bmN0aW9uKGxvZGFzaC5iYXIpO1xuICAgKiAvLyA9PiB0cnVlXG4gICAqXG4gICAqIC8vIENyZWF0ZSBhIHN1cGVkLXVwIGBkZWZlcmAgaW4gTm9kZS5qcy5cbiAgICogdmFyIGRlZmVyID0gXy5ydW5JbkNvbnRleHQoeyAnc2V0VGltZW91dCc6IHNldEltbWVkaWF0ZSB9KS5kZWZlcjtcbiAgICovXG4gIHZhciBydW5JbkNvbnRleHQgPSAoZnVuY3Rpb24gcnVuSW5Db250ZXh0KGNvbnRleHQpIHtcbiAgICBjb250ZXh0ID0gY29udGV4dCA9PSBudWxsID8gcm9vdCA6IF8uZGVmYXVsdHMocm9vdC5PYmplY3QoKSwgY29udGV4dCwgXy5waWNrKHJvb3QsIGNvbnRleHRQcm9wcykpO1xuXG4gICAgLyoqIEJ1aWx0LWluIGNvbnN0cnVjdG9yIHJlZmVyZW5jZXMuICovXG4gICAgdmFyIEFycmF5ID0gY29udGV4dC5BcnJheSxcbiAgICAgICAgRGF0ZSA9IGNvbnRleHQuRGF0ZSxcbiAgICAgICAgRXJyb3IgPSBjb250ZXh0LkVycm9yLFxuICAgICAgICBGdW5jdGlvbiA9IGNvbnRleHQuRnVuY3Rpb24sXG4gICAgICAgIE1hdGggPSBjb250ZXh0Lk1hdGgsXG4gICAgICAgIE9iamVjdCA9IGNvbnRleHQuT2JqZWN0LFxuICAgICAgICBSZWdFeHAgPSBjb250ZXh0LlJlZ0V4cCxcbiAgICAgICAgU3RyaW5nID0gY29udGV4dC5TdHJpbmcsXG4gICAgICAgIFR5cGVFcnJvciA9IGNvbnRleHQuVHlwZUVycm9yO1xuXG4gICAgLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xuICAgIHZhciBhcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlLFxuICAgICAgICBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgICAgIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuICAgIC8qKiBVc2VkIHRvIGRldGVjdCBvdmVycmVhY2hpbmcgY29yZS1qcyBzaGltcy4gKi9cbiAgICB2YXIgY29yZUpzRGF0YSA9IGNvbnRleHRbJ19fY29yZS1qc19zaGFyZWRfXyddO1xuXG4gICAgLyoqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgZGVjb21waWxlZCBzb3VyY2Ugb2YgZnVuY3Rpb25zLiAqL1xuICAgIHZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbiAgICAvKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbiAgICB2YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuICAgIC8qKiBVc2VkIHRvIGdlbmVyYXRlIHVuaXF1ZSBJRHMuICovXG4gICAgdmFyIGlkQ291bnRlciA9IDA7XG5cbiAgICAvKiogVXNlZCB0byBkZXRlY3QgbWV0aG9kcyBtYXNxdWVyYWRpbmcgYXMgbmF0aXZlLiAqL1xuICAgIHZhciBtYXNrU3JjS2V5ID0gKGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHVpZCA9IC9bXi5dKyQvLmV4ZWMoY29yZUpzRGF0YSAmJiBjb3JlSnNEYXRhLmtleXMgJiYgY29yZUpzRGF0YS5rZXlzLklFX1BST1RPIHx8ICcnKTtcbiAgICAgIHJldHVybiB1aWQgPyAoJ1N5bWJvbChzcmMpXzEuJyArIHVpZCkgOiAnJztcbiAgICB9KCkpO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byByZXNvbHZlIHRoZVxuICAgICAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICAgICAqIG9mIHZhbHVlcy5cbiAgICAgKi9cbiAgICB2YXIgbmF0aXZlT2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuICAgIC8qKiBVc2VkIHRvIGluZmVyIHRoZSBgT2JqZWN0YCBjb25zdHJ1Y3Rvci4gKi9cbiAgICB2YXIgb2JqZWN0Q3RvclN0cmluZyA9IGZ1bmNUb1N0cmluZy5jYWxsKE9iamVjdCk7XG5cbiAgICAvKiogVXNlZCB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBgX2AgcmVmZXJlbmNlIGluIGBfLm5vQ29uZmxpY3RgLiAqL1xuICAgIHZhciBvbGREYXNoID0gcm9vdC5fO1xuXG4gICAgLyoqIFVzZWQgdG8gZGV0ZWN0IGlmIGEgbWV0aG9kIGlzIG5hdGl2ZS4gKi9cbiAgICB2YXIgcmVJc05hdGl2ZSA9IFJlZ0V4cCgnXicgK1xuICAgICAgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgICAgIC5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcXFxcKCl8IGZvciAuKz8oPz1cXFxcXFxdKS9nLCAnJDEuKj8nKSArICckJ1xuICAgICk7XG5cbiAgICAvKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbiAgICB2YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IGNvbnRleHQuQnVmZmVyIDogdW5kZWZpbmVkLFxuICAgICAgICBTeW1ib2wgPSBjb250ZXh0LlN5bWJvbCxcbiAgICAgICAgVWludDhBcnJheSA9IGNvbnRleHQuVWludDhBcnJheSxcbiAgICAgICAgYWxsb2NVbnNhZmUgPSBCdWZmZXIgPyBCdWZmZXIuYWxsb2NVbnNhZmUgOiB1bmRlZmluZWQsXG4gICAgICAgIGdldFByb3RvdHlwZSA9IG92ZXJBcmcoT2JqZWN0LmdldFByb3RvdHlwZU9mLCBPYmplY3QpLFxuICAgICAgICBvYmplY3RDcmVhdGUgPSBPYmplY3QuY3JlYXRlLFxuICAgICAgICBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IG9iamVjdFByb3RvLnByb3BlcnR5SXNFbnVtZXJhYmxlLFxuICAgICAgICBzcGxpY2UgPSBhcnJheVByb3RvLnNwbGljZSxcbiAgICAgICAgc3ByZWFkYWJsZVN5bWJvbCA9IFN5bWJvbCA/IFN5bWJvbC5pc0NvbmNhdFNwcmVhZGFibGUgOiB1bmRlZmluZWQsXG4gICAgICAgIHN5bUl0ZXJhdG9yID0gU3ltYm9sID8gU3ltYm9sLml0ZXJhdG9yIDogdW5kZWZpbmVkLFxuICAgICAgICBzeW1Ub1N0cmluZ1RhZyA9IFN5bWJvbCA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuICAgIHZhciBkZWZpbmVQcm9wZXJ0eSA9IChmdW5jdGlvbigpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBmdW5jID0gZ2V0TmF0aXZlKE9iamVjdCwgJ2RlZmluZVByb3BlcnR5Jyk7XG4gICAgICAgIGZ1bmMoe30sICcnLCB7fSk7XG4gICAgICAgIHJldHVybiBmdW5jO1xuICAgICAgfSBjYXRjaCAoZSkge31cbiAgICB9KCkpO1xuXG4gICAgLyoqIE1vY2tlZCBidWlsdC1pbnMuICovXG4gICAgdmFyIGN0eENsZWFyVGltZW91dCA9IGNvbnRleHQuY2xlYXJUaW1lb3V0ICE9PSByb290LmNsZWFyVGltZW91dCAmJiBjb250ZXh0LmNsZWFyVGltZW91dCxcbiAgICAgICAgY3R4Tm93ID0gRGF0ZSAmJiBEYXRlLm5vdyAhPT0gcm9vdC5EYXRlLm5vdyAmJiBEYXRlLm5vdyxcbiAgICAgICAgY3R4U2V0VGltZW91dCA9IGNvbnRleHQuc2V0VGltZW91dCAhPT0gcm9vdC5zZXRUaW1lb3V0ICYmIGNvbnRleHQuc2V0VGltZW91dDtcblxuICAgIC8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbiAgICB2YXIgbmF0aXZlQ2VpbCA9IE1hdGguY2VpbCxcbiAgICAgICAgbmF0aXZlRmxvb3IgPSBNYXRoLmZsb29yLFxuICAgICAgICBuYXRpdmVHZXRTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxcbiAgICAgICAgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIgPyBCdWZmZXIuaXNCdWZmZXIgOiB1bmRlZmluZWQsXG4gICAgICAgIG5hdGl2ZUlzRmluaXRlID0gY29udGV4dC5pc0Zpbml0ZSxcbiAgICAgICAgbmF0aXZlSm9pbiA9IGFycmF5UHJvdG8uam9pbixcbiAgICAgICAgbmF0aXZlS2V5cyA9IG92ZXJBcmcoT2JqZWN0LmtleXMsIE9iamVjdCksXG4gICAgICAgIG5hdGl2ZU1heCA9IE1hdGgubWF4LFxuICAgICAgICBuYXRpdmVNaW4gPSBNYXRoLm1pbixcbiAgICAgICAgbmF0aXZlTm93ID0gRGF0ZS5ub3csXG4gICAgICAgIG5hdGl2ZVBhcnNlSW50ID0gY29udGV4dC5wYXJzZUludCxcbiAgICAgICAgbmF0aXZlUmFuZG9tID0gTWF0aC5yYW5kb20sXG4gICAgICAgIG5hdGl2ZVJldmVyc2UgPSBhcnJheVByb3RvLnJldmVyc2U7XG5cbiAgICAvKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG4gICAgdmFyIERhdGFWaWV3ID0gZ2V0TmF0aXZlKGNvbnRleHQsICdEYXRhVmlldycpLFxuICAgICAgICBNYXAgPSBnZXROYXRpdmUoY29udGV4dCwgJ01hcCcpLFxuICAgICAgICBQcm9taXNlID0gZ2V0TmF0aXZlKGNvbnRleHQsICdQcm9taXNlJyksXG4gICAgICAgIFNldCA9IGdldE5hdGl2ZShjb250ZXh0LCAnU2V0JyksXG4gICAgICAgIFdlYWtNYXAgPSBnZXROYXRpdmUoY29udGV4dCwgJ1dlYWtNYXAnKSxcbiAgICAgICAgbmF0aXZlQ3JlYXRlID0gZ2V0TmF0aXZlKE9iamVjdCwgJ2NyZWF0ZScpO1xuXG4gICAgLyoqIFVzZWQgdG8gc3RvcmUgZnVuY3Rpb24gbWV0YWRhdGEuICovXG4gICAgdmFyIG1ldGFNYXAgPSBXZWFrTWFwICYmIG5ldyBXZWFrTWFwO1xuXG4gICAgLyoqIFVzZWQgdG8gbG9va3VwIHVubWluaWZpZWQgZnVuY3Rpb24gbmFtZXMuICovXG4gICAgdmFyIHJlYWxOYW1lcyA9IHt9O1xuXG4gICAgLyoqIFVzZWQgdG8gZGV0ZWN0IG1hcHMsIHNldHMsIGFuZCB3ZWFrbWFwcy4gKi9cbiAgICB2YXIgZGF0YVZpZXdDdG9yU3RyaW5nID0gdG9Tb3VyY2UoRGF0YVZpZXcpLFxuICAgICAgICBtYXBDdG9yU3RyaW5nID0gdG9Tb3VyY2UoTWFwKSxcbiAgICAgICAgcHJvbWlzZUN0b3JTdHJpbmcgPSB0b1NvdXJjZShQcm9taXNlKSxcbiAgICAgICAgc2V0Q3RvclN0cmluZyA9IHRvU291cmNlKFNldCksXG4gICAgICAgIHdlYWtNYXBDdG9yU3RyaW5nID0gdG9Tb3VyY2UoV2Vha01hcCk7XG5cbiAgICAvKiogVXNlZCB0byBjb252ZXJ0IHN5bWJvbHMgdG8gcHJpbWl0aXZlcyBhbmQgc3RyaW5ncy4gKi9cbiAgICB2YXIgc3ltYm9sUHJvdG8gPSBTeW1ib2wgPyBTeW1ib2wucHJvdG90eXBlIDogdW5kZWZpbmVkLFxuICAgICAgICBzeW1ib2xWYWx1ZU9mID0gc3ltYm9sUHJvdG8gPyBzeW1ib2xQcm90by52YWx1ZU9mIDogdW5kZWZpbmVkLFxuICAgICAgICBzeW1ib2xUb1N0cmluZyA9IHN5bWJvbFByb3RvID8gc3ltYm9sUHJvdG8udG9TdHJpbmcgOiB1bmRlZmluZWQ7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYGxvZGFzaGAgb2JqZWN0IHdoaWNoIHdyYXBzIGB2YWx1ZWAgdG8gZW5hYmxlIGltcGxpY2l0IG1ldGhvZFxuICAgICAqIGNoYWluIHNlcXVlbmNlcy4gTWV0aG9kcyB0aGF0IG9wZXJhdGUgb24gYW5kIHJldHVybiBhcnJheXMsIGNvbGxlY3Rpb25zLFxuICAgICAqIGFuZCBmdW5jdGlvbnMgY2FuIGJlIGNoYWluZWQgdG9nZXRoZXIuIE1ldGhvZHMgdGhhdCByZXRyaWV2ZSBhIHNpbmdsZSB2YWx1ZVxuICAgICAqIG9yIG1heSByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUgd2lsbCBhdXRvbWF0aWNhbGx5IGVuZCB0aGUgY2hhaW4gc2VxdWVuY2VcbiAgICAgKiBhbmQgcmV0dXJuIHRoZSB1bndyYXBwZWQgdmFsdWUuIE90aGVyd2lzZSwgdGhlIHZhbHVlIG11c3QgYmUgdW53cmFwcGVkXG4gICAgICogd2l0aCBgXyN2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBFeHBsaWNpdCBjaGFpbiBzZXF1ZW5jZXMsIHdoaWNoIG11c3QgYmUgdW53cmFwcGVkIHdpdGggYF8jdmFsdWVgLCBtYXkgYmVcbiAgICAgKiBlbmFibGVkIHVzaW5nIGBfLmNoYWluYC5cbiAgICAgKlxuICAgICAqIFRoZSBleGVjdXRpb24gb2YgY2hhaW5lZCBtZXRob2RzIGlzIGxhenksIHRoYXQgaXMsIGl0J3MgZGVmZXJyZWQgdW50aWxcbiAgICAgKiBgXyN2YWx1ZWAgaXMgaW1wbGljaXRseSBvciBleHBsaWNpdGx5IGNhbGxlZC5cbiAgICAgKlxuICAgICAqIExhenkgZXZhbHVhdGlvbiBhbGxvd3Mgc2V2ZXJhbCBtZXRob2RzIHRvIHN1cHBvcnQgc2hvcnRjdXQgZnVzaW9uLlxuICAgICAqIFNob3J0Y3V0IGZ1c2lvbiBpcyBhbiBvcHRpbWl6YXRpb24gdG8gbWVyZ2UgaXRlcmF0ZWUgY2FsbHM7IHRoaXMgYXZvaWRzXG4gICAgICogdGhlIGNyZWF0aW9uIG9mIGludGVybWVkaWF0ZSBhcnJheXMgYW5kIGNhbiBncmVhdGx5IHJlZHVjZSB0aGUgbnVtYmVyIG9mXG4gICAgICogaXRlcmF0ZWUgZXhlY3V0aW9ucy4gU2VjdGlvbnMgb2YgYSBjaGFpbiBzZXF1ZW5jZSBxdWFsaWZ5IGZvciBzaG9ydGN1dFxuICAgICAqIGZ1c2lvbiBpZiB0aGUgc2VjdGlvbiBpcyBhcHBsaWVkIHRvIGFuIGFycmF5IGFuZCBpdGVyYXRlZXMgYWNjZXB0IG9ubHlcbiAgICAgKiBvbmUgYXJndW1lbnQuIFRoZSBoZXVyaXN0aWMgZm9yIHdoZXRoZXIgYSBzZWN0aW9uIHF1YWxpZmllcyBmb3Igc2hvcnRjdXRcbiAgICAgKiBmdXNpb24gaXMgc3ViamVjdCB0byBjaGFuZ2UuXG4gICAgICpcbiAgICAgKiBDaGFpbmluZyBpcyBzdXBwb3J0ZWQgaW4gY3VzdG9tIGJ1aWxkcyBhcyBsb25nIGFzIHRoZSBgXyN2YWx1ZWAgbWV0aG9kIGlzXG4gICAgICogZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuXG4gICAgICpcbiAgICAgKiBJbiBhZGRpdGlvbiB0byBsb2Rhc2ggbWV0aG9kcywgd3JhcHBlcnMgaGF2ZSBgQXJyYXlgIGFuZCBgU3RyaW5nYCBtZXRob2RzLlxuICAgICAqXG4gICAgICogVGhlIHdyYXBwZXIgYEFycmF5YCBtZXRob2RzIGFyZTpcbiAgICAgKiBgY29uY2F0YCwgYGpvaW5gLCBgcG9wYCwgYHB1c2hgLCBgc2hpZnRgLCBgc29ydGAsIGBzcGxpY2VgLCBhbmQgYHVuc2hpZnRgXG4gICAgICpcbiAgICAgKiBUaGUgd3JhcHBlciBgU3RyaW5nYCBtZXRob2RzIGFyZTpcbiAgICAgKiBgcmVwbGFjZWAgYW5kIGBzcGxpdGBcbiAgICAgKlxuICAgICAqIFRoZSB3cmFwcGVyIG1ldGhvZHMgdGhhdCBzdXBwb3J0IHNob3J0Y3V0IGZ1c2lvbiBhcmU6XG4gICAgICogYGF0YCwgYGNvbXBhY3RgLCBgZHJvcGAsIGBkcm9wUmlnaHRgLCBgZHJvcFdoaWxlYCwgYGZpbHRlcmAsIGBmaW5kYCxcbiAgICAgKiBgZmluZExhc3RgLCBgaGVhZGAsIGBpbml0aWFsYCwgYGxhc3RgLCBgbWFwYCwgYHJlamVjdGAsIGByZXZlcnNlYCwgYHNsaWNlYCxcbiAgICAgKiBgdGFpbGAsIGB0YWtlYCwgYHRha2VSaWdodGAsIGB0YWtlUmlnaHRXaGlsZWAsIGB0YWtlV2hpbGVgLCBhbmQgYHRvQXJyYXlgXG4gICAgICpcbiAgICAgKiBUaGUgY2hhaW5hYmxlIHdyYXBwZXIgbWV0aG9kcyBhcmU6XG4gICAgICogYGFmdGVyYCwgYGFyeWAsIGBhc3NpZ25gLCBgYXNzaWduSW5gLCBgYXNzaWduSW5XaXRoYCwgYGFzc2lnbldpdGhgLCBgYXRgLFxuICAgICAqIGBiZWZvcmVgLCBgYmluZGAsIGBiaW5kQWxsYCwgYGJpbmRLZXlgLCBgY2FzdEFycmF5YCwgYGNoYWluYCwgYGNodW5rYCxcbiAgICAgKiBgY29tbWl0YCwgYGNvbXBhY3RgLCBgY29uY2F0YCwgYGNvbmZvcm1zYCwgYGNvbnN0YW50YCwgYGNvdW50QnlgLCBgY3JlYXRlYCxcbiAgICAgKiBgY3VycnlgLCBgZGVib3VuY2VgLCBgZGVmYXVsdHNgLCBgZGVmYXVsdHNEZWVwYCwgYGRlZmVyYCwgYGRlbGF5YCxcbiAgICAgKiBgZGlmZmVyZW5jZWAsIGBkaWZmZXJlbmNlQnlgLCBgZGlmZmVyZW5jZVdpdGhgLCBgZHJvcGAsIGBkcm9wUmlnaHRgLFxuICAgICAqIGBkcm9wUmlnaHRXaGlsZWAsIGBkcm9wV2hpbGVgLCBgZXh0ZW5kYCwgYGV4dGVuZFdpdGhgLCBgZmlsbGAsIGBmaWx0ZXJgLFxuICAgICAqIGBmbGF0TWFwYCwgYGZsYXRNYXBEZWVwYCwgYGZsYXRNYXBEZXB0aGAsIGBmbGF0dGVuYCwgYGZsYXR0ZW5EZWVwYCxcbiAgICAgKiBgZmxhdHRlbkRlcHRoYCwgYGZsaXBgLCBgZmxvd2AsIGBmbG93UmlnaHRgLCBgZnJvbVBhaXJzYCwgYGZ1bmN0aW9uc2AsXG4gICAgICogYGZ1bmN0aW9uc0luYCwgYGdyb3VwQnlgLCBgaW5pdGlhbGAsIGBpbnRlcnNlY3Rpb25gLCBgaW50ZXJzZWN0aW9uQnlgLFxuICAgICAqIGBpbnRlcnNlY3Rpb25XaXRoYCwgYGludmVydGAsIGBpbnZlcnRCeWAsIGBpbnZva2VNYXBgLCBgaXRlcmF0ZWVgLCBga2V5QnlgLFxuICAgICAqIGBrZXlzYCwgYGtleXNJbmAsIGBtYXBgLCBgbWFwS2V5c2AsIGBtYXBWYWx1ZXNgLCBgbWF0Y2hlc2AsIGBtYXRjaGVzUHJvcGVydHlgLFxuICAgICAqIGBtZW1vaXplYCwgYG1lcmdlYCwgYG1lcmdlV2l0aGAsIGBtZXRob2RgLCBgbWV0aG9kT2ZgLCBgbWl4aW5gLCBgbmVnYXRlYCxcbiAgICAgKiBgbnRoQXJnYCwgYG9taXRgLCBgb21pdEJ5YCwgYG9uY2VgLCBgb3JkZXJCeWAsIGBvdmVyYCwgYG92ZXJBcmdzYCxcbiAgICAgKiBgb3ZlckV2ZXJ5YCwgYG92ZXJTb21lYCwgYHBhcnRpYWxgLCBgcGFydGlhbFJpZ2h0YCwgYHBhcnRpdGlvbmAsIGBwaWNrYCxcbiAgICAgKiBgcGlja0J5YCwgYHBsYW50YCwgYHByb3BlcnR5YCwgYHByb3BlcnR5T2ZgLCBgcHVsbGAsIGBwdWxsQWxsYCwgYHB1bGxBbGxCeWAsXG4gICAgICogYHB1bGxBbGxXaXRoYCwgYHB1bGxBdGAsIGBwdXNoYCwgYHJhbmdlYCwgYHJhbmdlUmlnaHRgLCBgcmVhcmdgLCBgcmVqZWN0YCxcbiAgICAgKiBgcmVtb3ZlYCwgYHJlc3RgLCBgcmV2ZXJzZWAsIGBzYW1wbGVTaXplYCwgYHNldGAsIGBzZXRXaXRoYCwgYHNodWZmbGVgLFxuICAgICAqIGBzbGljZWAsIGBzb3J0YCwgYHNvcnRCeWAsIGBzcGxpY2VgLCBgc3ByZWFkYCwgYHRhaWxgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLFxuICAgICAqIGB0YWtlUmlnaHRXaGlsZWAsIGB0YWtlV2hpbGVgLCBgdGFwYCwgYHRocm90dGxlYCwgYHRocnVgLCBgdG9BcnJheWAsXG4gICAgICogYHRvUGFpcnNgLCBgdG9QYWlyc0luYCwgYHRvUGF0aGAsIGB0b1BsYWluT2JqZWN0YCwgYHRyYW5zZm9ybWAsIGB1bmFyeWAsXG4gICAgICogYHVuaW9uYCwgYHVuaW9uQnlgLCBgdW5pb25XaXRoYCwgYHVuaXFgLCBgdW5pcUJ5YCwgYHVuaXFXaXRoYCwgYHVuc2V0YCxcbiAgICAgKiBgdW5zaGlmdGAsIGB1bnppcGAsIGB1bnppcFdpdGhgLCBgdXBkYXRlYCwgYHVwZGF0ZVdpdGhgLCBgdmFsdWVzYCxcbiAgICAgKiBgdmFsdWVzSW5gLCBgd2l0aG91dGAsIGB3cmFwYCwgYHhvcmAsIGB4b3JCeWAsIGB4b3JXaXRoYCwgYHppcGAsXG4gICAgICogYHppcE9iamVjdGAsIGB6aXBPYmplY3REZWVwYCwgYW5kIGB6aXBXaXRoYFxuICAgICAqXG4gICAgICogVGhlIHdyYXBwZXIgbWV0aG9kcyB0aGF0IGFyZSAqKm5vdCoqIGNoYWluYWJsZSBieSBkZWZhdWx0IGFyZTpcbiAgICAgKiBgYWRkYCwgYGF0dGVtcHRgLCBgY2FtZWxDYXNlYCwgYGNhcGl0YWxpemVgLCBgY2VpbGAsIGBjbGFtcGAsIGBjbG9uZWAsXG4gICAgICogYGNsb25lRGVlcGAsIGBjbG9uZURlZXBXaXRoYCwgYGNsb25lV2l0aGAsIGBjb25mb3Jtc1RvYCwgYGRlYnVycmAsXG4gICAgICogYGRlZmF1bHRUb2AsIGBkaXZpZGVgLCBgZWFjaGAsIGBlYWNoUmlnaHRgLCBgZW5kc1dpdGhgLCBgZXFgLCBgZXNjYXBlYCxcbiAgICAgKiBgZXNjYXBlUmVnRXhwYCwgYGV2ZXJ5YCwgYGZpbmRgLCBgZmluZEluZGV4YCwgYGZpbmRLZXlgLCBgZmluZExhc3RgLFxuICAgICAqIGBmaW5kTGFzdEluZGV4YCwgYGZpbmRMYXN0S2V5YCwgYGZpcnN0YCwgYGZsb29yYCwgYGZvckVhY2hgLCBgZm9yRWFjaFJpZ2h0YCxcbiAgICAgKiBgZm9ySW5gLCBgZm9ySW5SaWdodGAsIGBmb3JPd25gLCBgZm9yT3duUmlnaHRgLCBgZ2V0YCwgYGd0YCwgYGd0ZWAsIGBoYXNgLFxuICAgICAqIGBoYXNJbmAsIGBoZWFkYCwgYGlkZW50aXR5YCwgYGluY2x1ZGVzYCwgYGluZGV4T2ZgLCBgaW5SYW5nZWAsIGBpbnZva2VgLFxuICAgICAqIGBpc0FyZ3VtZW50c2AsIGBpc0FycmF5YCwgYGlzQXJyYXlCdWZmZXJgLCBgaXNBcnJheUxpa2VgLCBgaXNBcnJheUxpa2VPYmplY3RgLFxuICAgICAqIGBpc0Jvb2xlYW5gLCBgaXNCdWZmZXJgLCBgaXNEYXRlYCwgYGlzRWxlbWVudGAsIGBpc0VtcHR5YCwgYGlzRXF1YWxgLFxuICAgICAqIGBpc0VxdWFsV2l0aGAsIGBpc0Vycm9yYCwgYGlzRmluaXRlYCwgYGlzRnVuY3Rpb25gLCBgaXNJbnRlZ2VyYCwgYGlzTGVuZ3RoYCxcbiAgICAgKiBgaXNNYXBgLCBgaXNNYXRjaGAsIGBpc01hdGNoV2l0aGAsIGBpc05hTmAsIGBpc05hdGl2ZWAsIGBpc05pbGAsIGBpc051bGxgLFxuICAgICAqIGBpc051bWJlcmAsIGBpc09iamVjdGAsIGBpc09iamVjdExpa2VgLCBgaXNQbGFpbk9iamVjdGAsIGBpc1JlZ0V4cGAsXG4gICAgICogYGlzU2FmZUludGVnZXJgLCBgaXNTZXRgLCBgaXNTdHJpbmdgLCBgaXNVbmRlZmluZWRgLCBgaXNUeXBlZEFycmF5YCxcbiAgICAgKiBgaXNXZWFrTWFwYCwgYGlzV2Vha1NldGAsIGBqb2luYCwgYGtlYmFiQ2FzZWAsIGBsYXN0YCwgYGxhc3RJbmRleE9mYCxcbiAgICAgKiBgbG93ZXJDYXNlYCwgYGxvd2VyRmlyc3RgLCBgbHRgLCBgbHRlYCwgYG1heGAsIGBtYXhCeWAsIGBtZWFuYCwgYG1lYW5CeWAsXG4gICAgICogYG1pbmAsIGBtaW5CeWAsIGBtdWx0aXBseWAsIGBub0NvbmZsaWN0YCwgYG5vb3BgLCBgbm93YCwgYG50aGAsIGBwYWRgLFxuICAgICAqIGBwYWRFbmRgLCBgcGFkU3RhcnRgLCBgcGFyc2VJbnRgLCBgcG9wYCwgYHJhbmRvbWAsIGByZWR1Y2VgLCBgcmVkdWNlUmlnaHRgLFxuICAgICAqIGByZXBlYXRgLCBgcmVzdWx0YCwgYHJvdW5kYCwgYHJ1bkluQ29udGV4dGAsIGBzYW1wbGVgLCBgc2hpZnRgLCBgc2l6ZWAsXG4gICAgICogYHNuYWtlQ2FzZWAsIGBzb21lYCwgYHNvcnRlZEluZGV4YCwgYHNvcnRlZEluZGV4QnlgLCBgc29ydGVkTGFzdEluZGV4YCxcbiAgICAgKiBgc29ydGVkTGFzdEluZGV4QnlgLCBgc3RhcnRDYXNlYCwgYHN0YXJ0c1dpdGhgLCBgc3R1YkFycmF5YCwgYHN0dWJGYWxzZWAsXG4gICAgICogYHN0dWJPYmplY3RgLCBgc3R1YlN0cmluZ2AsIGBzdHViVHJ1ZWAsIGBzdWJ0cmFjdGAsIGBzdW1gLCBgc3VtQnlgLFxuICAgICAqIGB0ZW1wbGF0ZWAsIGB0aW1lc2AsIGB0b0Zpbml0ZWAsIGB0b0ludGVnZXJgLCBgdG9KU09OYCwgYHRvTGVuZ3RoYCxcbiAgICAgKiBgdG9Mb3dlcmAsIGB0b051bWJlcmAsIGB0b1NhZmVJbnRlZ2VyYCwgYHRvU3RyaW5nYCwgYHRvVXBwZXJgLCBgdHJpbWAsXG4gICAgICogYHRyaW1FbmRgLCBgdHJpbVN0YXJ0YCwgYHRydW5jYXRlYCwgYHVuZXNjYXBlYCwgYHVuaXF1ZUlkYCwgYHVwcGVyQ2FzZWAsXG4gICAgICogYHVwcGVyRmlyc3RgLCBgdmFsdWVgLCBhbmQgYHdvcmRzYFxuICAgICAqXG4gICAgICogQG5hbWUgX1xuICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byB3cmFwIGluIGEgYGxvZGFzaGAgaW5zdGFuY2UuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIHNxdWFyZShuKSB7XG4gICAgICogICByZXR1cm4gbiAqIG47XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIHdyYXBwZWQgPSBfKFsxLCAyLCAzXSk7XG4gICAgICpcbiAgICAgKiAvLyBSZXR1cm5zIGFuIHVud3JhcHBlZCB2YWx1ZS5cbiAgICAgKiB3cmFwcGVkLnJlZHVjZShfLmFkZCk7XG4gICAgICogLy8gPT4gNlxuICAgICAqXG4gICAgICogLy8gUmV0dXJucyBhIHdyYXBwZWQgdmFsdWUuXG4gICAgICogdmFyIHNxdWFyZXMgPSB3cmFwcGVkLm1hcChzcXVhcmUpO1xuICAgICAqXG4gICAgICogXy5pc0FycmF5KHNxdWFyZXMpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoc3F1YXJlcy52YWx1ZSgpKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gbG9kYXNoKHZhbHVlKSB7XG4gICAgICBpZiAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiAhaXNBcnJheSh2YWx1ZSkgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSkge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBMb2Rhc2hXcmFwcGVyKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnX193cmFwcGVkX18nKSkge1xuICAgICAgICAgIHJldHVybiB3cmFwcGVyQ2xvbmUodmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNyZWF0ZWAgd2l0aG91dCBzdXBwb3J0IGZvciBhc3NpZ25pbmdcbiAgICAgKiBwcm9wZXJ0aWVzIHRvIHRoZSBjcmVhdGVkIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHByb3RvIFRoZSBvYmplY3QgdG8gaW5oZXJpdCBmcm9tLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gICAgICovXG4gICAgdmFyIGJhc2VDcmVhdGUgPSAoZnVuY3Rpb24oKSB7XG4gICAgICBmdW5jdGlvbiBvYmplY3QoKSB7fVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHByb3RvKSB7XG4gICAgICAgIGlmICghaXNPYmplY3QocHJvdG8pKSB7XG4gICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChvYmplY3RDcmVhdGUpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0Q3JlYXRlKHByb3RvKTtcbiAgICAgICAgfVxuICAgICAgICBvYmplY3QucHJvdG90eXBlID0gcHJvdG87XG4gICAgICAgIHZhciByZXN1bHQgPSBuZXcgb2JqZWN0O1xuICAgICAgICBvYmplY3QucHJvdG90eXBlID0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9KCkpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGZ1bmN0aW9uIHdob3NlIHByb3RvdHlwZSBjaGFpbiBzZXF1ZW5jZSB3cmFwcGVycyBpbmhlcml0IGZyb20uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VMb2Rhc2goKSB7XG4gICAgICAvLyBObyBvcGVyYXRpb24gcGVyZm9ybWVkLlxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGNvbnN0cnVjdG9yIGZvciBjcmVhdGluZyBgbG9kYXNoYCB3cmFwcGVyIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbY2hhaW5BbGxdIEVuYWJsZSBleHBsaWNpdCBtZXRob2QgY2hhaW4gc2VxdWVuY2VzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIExvZGFzaFdyYXBwZXIodmFsdWUsIGNoYWluQWxsKSB7XG4gICAgICB0aGlzLl9fd3JhcHBlZF9fID0gdmFsdWU7XG4gICAgICB0aGlzLl9fYWN0aW9uc19fID0gW107XG4gICAgICB0aGlzLl9fY2hhaW5fXyA9ICEhY2hhaW5BbGw7XG4gICAgICB0aGlzLl9faW5kZXhfXyA9IDA7XG4gICAgICB0aGlzLl9fdmFsdWVzX18gPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQnkgZGVmYXVsdCwgdGhlIHRlbXBsYXRlIGRlbGltaXRlcnMgdXNlZCBieSBsb2Rhc2ggYXJlIGxpa2UgdGhvc2UgaW5cbiAgICAgKiBlbWJlZGRlZCBSdWJ5IChFUkIpIGFzIHdlbGwgYXMgRVMyMDE1IHRlbXBsYXRlIHN0cmluZ3MuIENoYW5nZSB0aGVcbiAgICAgKiBmb2xsb3dpbmcgdGVtcGxhdGUgc2V0dGluZ3MgdG8gdXNlIGFsdGVybmF0aXZlIGRlbGltaXRlcnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgICAqL1xuICAgIGxvZGFzaC50ZW1wbGF0ZVNldHRpbmdzID0ge1xuXG4gICAgICAvKipcbiAgICAgICAqIFVzZWQgdG8gZGV0ZWN0IGBkYXRhYCBwcm9wZXJ0eSB2YWx1ZXMgdG8gYmUgSFRNTC1lc2NhcGVkLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAqIEB0eXBlIHtSZWdFeHB9XG4gICAgICAgKi9cbiAgICAgICdlc2NhcGUnOiByZUVzY2FwZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBVc2VkIHRvIGRldGVjdCBjb2RlIHRvIGJlIGV2YWx1YXRlZC5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAgICAgKiBAdHlwZSB7UmVnRXhwfVxuICAgICAgICovXG4gICAgICAnZXZhbHVhdGUnOiByZUV2YWx1YXRlLFxuXG4gICAgICAvKipcbiAgICAgICAqIFVzZWQgdG8gZGV0ZWN0IGBkYXRhYCBwcm9wZXJ0eSB2YWx1ZXMgdG8gaW5qZWN0LlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAqIEB0eXBlIHtSZWdFeHB9XG4gICAgICAgKi9cbiAgICAgICdpbnRlcnBvbGF0ZSc6IHJlSW50ZXJwb2xhdGUsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlZCB0byByZWZlcmVuY2UgdGhlIGRhdGEgb2JqZWN0IGluIHRoZSB0ZW1wbGF0ZSB0ZXh0LlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICAgKi9cbiAgICAgICd2YXJpYWJsZSc6ICcnLFxuXG4gICAgICAvKipcbiAgICAgICAqIFVzZWQgdG8gaW1wb3J0IHZhcmlhYmxlcyBpbnRvIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAgICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgICAgICovXG4gICAgICAnaW1wb3J0cyc6IHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIGBsb2Rhc2hgIGZ1bmN0aW9uLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzLmltcG9ydHNcbiAgICAgICAgICogQHR5cGUge0Z1bmN0aW9ufVxuICAgICAgICAgKi9cbiAgICAgICAgJ18nOiBsb2Rhc2hcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gRW5zdXJlIHdyYXBwZXJzIGFyZSBpbnN0YW5jZXMgb2YgYGJhc2VMb2Rhc2hgLlxuICAgIGxvZGFzaC5wcm90b3R5cGUgPSBiYXNlTG9kYXNoLnByb3RvdHlwZTtcbiAgICBsb2Rhc2gucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gbG9kYXNoO1xuXG4gICAgTG9kYXNoV3JhcHBlci5wcm90b3R5cGUgPSBiYXNlQ3JlYXRlKGJhc2VMb2Rhc2gucHJvdG90eXBlKTtcbiAgICBMb2Rhc2hXcmFwcGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IExvZGFzaFdyYXBwZXI7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbGF6eSB3cmFwcGVyIG9iamVjdCB3aGljaCB3cmFwcyBgdmFsdWVgIHRvIGVuYWJsZSBsYXp5IGV2YWx1YXRpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gTGF6eVdyYXBwZXIodmFsdWUpIHtcbiAgICAgIHRoaXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgICAgIHRoaXMuX19hY3Rpb25zX18gPSBbXTtcbiAgICAgIHRoaXMuX19kaXJfXyA9IDE7XG4gICAgICB0aGlzLl9fZmlsdGVyZWRfXyA9IGZhbHNlO1xuICAgICAgdGhpcy5fX2l0ZXJhdGVlc19fID0gW107XG4gICAgICB0aGlzLl9fdGFrZUNvdW50X18gPSBNQVhfQVJSQVlfTEVOR1RIO1xuICAgICAgdGhpcy5fX3ZpZXdzX18gPSBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgdGhlIGxhenkgd3JhcHBlciBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGNsb25lXG4gICAgICogQG1lbWJlck9mIExhenlXcmFwcGVyXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIGBMYXp5V3JhcHBlcmAgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxhenlDbG9uZSgpIHtcbiAgICAgIHZhciByZXN1bHQgPSBuZXcgTGF6eVdyYXBwZXIodGhpcy5fX3dyYXBwZWRfXyk7XG4gICAgICByZXN1bHQuX19hY3Rpb25zX18gPSBjb3B5QXJyYXkodGhpcy5fX2FjdGlvbnNfXyk7XG4gICAgICByZXN1bHQuX19kaXJfXyA9IHRoaXMuX19kaXJfXztcbiAgICAgIHJlc3VsdC5fX2ZpbHRlcmVkX18gPSB0aGlzLl9fZmlsdGVyZWRfXztcbiAgICAgIHJlc3VsdC5fX2l0ZXJhdGVlc19fID0gY29weUFycmF5KHRoaXMuX19pdGVyYXRlZXNfXyk7XG4gICAgICByZXN1bHQuX190YWtlQ291bnRfXyA9IHRoaXMuX190YWtlQ291bnRfXztcbiAgICAgIHJlc3VsdC5fX3ZpZXdzX18gPSBjb3B5QXJyYXkodGhpcy5fX3ZpZXdzX18pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXZlcnNlcyB0aGUgZGlyZWN0aW9uIG9mIGxhenkgaXRlcmF0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSByZXZlcnNlXG4gICAgICogQG1lbWJlck9mIExhenlXcmFwcGVyXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IHJldmVyc2VkIGBMYXp5V3JhcHBlcmAgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxhenlSZXZlcnNlKCkge1xuICAgICAgaWYgKHRoaXMuX19maWx0ZXJlZF9fKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBuZXcgTGF6eVdyYXBwZXIodGhpcyk7XG4gICAgICAgIHJlc3VsdC5fX2Rpcl9fID0gLTE7XG4gICAgICAgIHJlc3VsdC5fX2ZpbHRlcmVkX18gPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5jbG9uZSgpO1xuICAgICAgICByZXN1bHQuX19kaXJfXyAqPSAtMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXh0cmFjdHMgdGhlIHVud3JhcHBlZCB2YWx1ZSBmcm9tIGl0cyBsYXp5IHdyYXBwZXIuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIHZhbHVlXG4gICAgICogQG1lbWJlck9mIExhenlXcmFwcGVyXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHVud3JhcHBlZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsYXp5VmFsdWUoKSB7XG4gICAgICB2YXIgYXJyYXkgPSB0aGlzLl9fd3JhcHBlZF9fLnZhbHVlKCksXG4gICAgICAgICAgZGlyID0gdGhpcy5fX2Rpcl9fLFxuICAgICAgICAgIGlzQXJyID0gaXNBcnJheShhcnJheSksXG4gICAgICAgICAgaXNSaWdodCA9IGRpciA8IDAsXG4gICAgICAgICAgYXJyTGVuZ3RoID0gaXNBcnIgPyBhcnJheS5sZW5ndGggOiAwLFxuICAgICAgICAgIHZpZXcgPSBnZXRWaWV3KDAsIGFyckxlbmd0aCwgdGhpcy5fX3ZpZXdzX18pLFxuICAgICAgICAgIHN0YXJ0ID0gdmlldy5zdGFydCxcbiAgICAgICAgICBlbmQgPSB2aWV3LmVuZCxcbiAgICAgICAgICBsZW5ndGggPSBlbmQgLSBzdGFydCxcbiAgICAgICAgICBpbmRleCA9IGlzUmlnaHQgPyBlbmQgOiAoc3RhcnQgLSAxKSxcbiAgICAgICAgICBpdGVyYXRlZXMgPSB0aGlzLl9faXRlcmF0ZWVzX18sXG4gICAgICAgICAgaXRlckxlbmd0aCA9IGl0ZXJhdGVlcy5sZW5ndGgsXG4gICAgICAgICAgcmVzSW5kZXggPSAwLFxuICAgICAgICAgIHRha2VDb3VudCA9IG5hdGl2ZU1pbihsZW5ndGgsIHRoaXMuX190YWtlQ291bnRfXyk7XG5cbiAgICAgIGlmICghaXNBcnIgfHwgKCFpc1JpZ2h0ICYmIGFyckxlbmd0aCA9PSBsZW5ndGggJiYgdGFrZUNvdW50ID09IGxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VXcmFwcGVyVmFsdWUoYXJyYXksIHRoaXMuX19hY3Rpb25zX18pO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuXG4gICAgICBvdXRlcjpcbiAgICAgIHdoaWxlIChsZW5ndGgtLSAmJiByZXNJbmRleCA8IHRha2VDb3VudCkge1xuICAgICAgICBpbmRleCArPSBkaXI7XG5cbiAgICAgICAgdmFyIGl0ZXJJbmRleCA9IC0xLFxuICAgICAgICAgICAgdmFsdWUgPSBhcnJheVtpbmRleF07XG5cbiAgICAgICAgd2hpbGUgKCsraXRlckluZGV4IDwgaXRlckxlbmd0aCkge1xuICAgICAgICAgIHZhciBkYXRhID0gaXRlcmF0ZWVzW2l0ZXJJbmRleF0sXG4gICAgICAgICAgICAgIGl0ZXJhdGVlID0gZGF0YS5pdGVyYXRlZSxcbiAgICAgICAgICAgICAgdHlwZSA9IGRhdGEudHlwZSxcbiAgICAgICAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZSh2YWx1ZSk7XG5cbiAgICAgICAgICBpZiAodHlwZSA9PSBMQVpZX01BUF9GTEFHKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGNvbXB1dGVkO1xuICAgICAgICAgIH0gZWxzZSBpZiAoIWNvbXB1dGVkKSB7XG4gICAgICAgICAgICBpZiAodHlwZSA9PSBMQVpZX0ZJTFRFUl9GTEFHKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYnJlYWsgb3V0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvLyBFbnN1cmUgYExhenlXcmFwcGVyYCBpcyBhbiBpbnN0YW5jZSBvZiBgYmFzZUxvZGFzaGAuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlID0gYmFzZUNyZWF0ZShiYXNlTG9kYXNoLnByb3RvdHlwZSk7XG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTGF6eVdyYXBwZXI7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgaGFzaCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIEhhc2goZW50cmllcykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gZW50cmllcyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuXG4gICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgZW50cnkgPSBlbnRyaWVzW2luZGV4XTtcbiAgICAgICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBoYXNoLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBjbGVhclxuICAgICAqIEBtZW1iZXJPZiBIYXNoXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFzaENsZWFyKCkge1xuICAgICAgdGhpcy5fX2RhdGFfXyA9IG5hdGl2ZUNyZWF0ZSA/IG5hdGl2ZUNyZWF0ZShudWxsKSA6IHt9O1xuICAgICAgdGhpcy5zaXplID0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgaGFzaC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgZGVsZXRlXG4gICAgICogQG1lbWJlck9mIEhhc2hcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gaGFzaCBUaGUgaGFzaCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhhc2hEZWxldGUoa2V5KSB7XG4gICAgICB2YXIgcmVzdWx0ID0gdGhpcy5oYXMoa2V5KSAmJiBkZWxldGUgdGhpcy5fX2RhdGFfX1trZXldO1xuICAgICAgdGhpcy5zaXplIC09IHJlc3VsdCA/IDEgOiAwO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBoYXNoIHZhbHVlIGZvciBga2V5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgZ2V0XG4gICAgICogQG1lbWJlck9mIEhhc2hcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFzaEdldChrZXkpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICAgIGlmIChuYXRpdmVDcmVhdGUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGRhdGFba2V5XTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gSEFTSF9VTkRFRklORUQgPyB1bmRlZmluZWQgOiByZXN1bHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpID8gZGF0YVtrZXldIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhIGhhc2ggdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgaGFzXG4gICAgICogQG1lbWJlck9mIEhhc2hcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFzaEhhcyhrZXkpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICAgIHJldHVybiBuYXRpdmVDcmVhdGUgPyAoZGF0YVtrZXldICE9PSB1bmRlZmluZWQpIDogaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGhhc2ggYGtleWAgdG8gYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgc2V0XG4gICAgICogQG1lbWJlck9mIEhhc2hcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaGFzaCBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXNoU2V0KGtleSwgdmFsdWUpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICAgIHRoaXMuc2l6ZSArPSB0aGlzLmhhcyhrZXkpID8gMCA6IDE7XG4gICAgICBkYXRhW2tleV0gPSAobmF0aXZlQ3JlYXRlICYmIHZhbHVlID09PSB1bmRlZmluZWQpID8gSEFTSF9VTkRFRklORUQgOiB2YWx1ZTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8vIEFkZCBtZXRob2RzIHRvIGBIYXNoYC5cbiAgICBIYXNoLnByb3RvdHlwZS5jbGVhciA9IGhhc2hDbGVhcjtcbiAgICBIYXNoLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBoYXNoRGVsZXRlO1xuICAgIEhhc2gucHJvdG90eXBlLmdldCA9IGhhc2hHZXQ7XG4gICAgSGFzaC5wcm90b3R5cGUuaGFzID0gaGFzaEhhcztcbiAgICBIYXNoLnByb3RvdHlwZS5zZXQgPSBoYXNoU2V0O1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBsaXN0IGNhY2hlIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gTGlzdENhY2hlKGVudHJpZXMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcblxuICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgbGlzdCBjYWNoZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgY2xlYXJcbiAgICAgKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGlzdENhY2hlQ2xlYXIoKSB7XG4gICAgICB0aGlzLl9fZGF0YV9fID0gW107XG4gICAgICB0aGlzLnNpemUgPSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBsaXN0IGNhY2hlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBkZWxldGVcbiAgICAgKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxpc3RDYWNoZURlbGV0ZShrZXkpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgICAgICBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuXG4gICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBsYXN0SW5kZXggPSBkYXRhLmxlbmd0aCAtIDE7XG4gICAgICBpZiAoaW5kZXggPT0gbGFzdEluZGV4KSB7XG4gICAgICAgIGRhdGEucG9wKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzcGxpY2UuY2FsbChkYXRhLCBpbmRleCwgMSk7XG4gICAgICB9XG4gICAgICAtLXRoaXMuc2l6ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGxpc3QgY2FjaGUgdmFsdWUgZm9yIGBrZXlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBnZXRcbiAgICAgKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxpc3RDYWNoZUdldChrZXkpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgICAgICBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuXG4gICAgICByZXR1cm4gaW5kZXggPCAwID8gdW5kZWZpbmVkIDogZGF0YVtpbmRleF1bMV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGEgbGlzdCBjYWNoZSB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBoYXNcbiAgICAgKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxpc3RDYWNoZUhhcyhrZXkpIHtcbiAgICAgIHJldHVybiBhc3NvY0luZGV4T2YodGhpcy5fX2RhdGFfXywga2V5KSA+IC0xO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGxpc3QgY2FjaGUgYGtleWAgdG8gYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgc2V0XG4gICAgICogQG1lbWJlck9mIExpc3RDYWNoZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBsaXN0IGNhY2hlIGluc3RhbmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxpc3RDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXG4gICAgICAgICAgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcblxuICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICArK3RoaXMuc2l6ZTtcbiAgICAgICAgZGF0YS5wdXNoKFtrZXksIHZhbHVlXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhW2luZGV4XVsxXSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gQWRkIG1ldGhvZHMgdG8gYExpc3RDYWNoZWAuXG4gICAgTGlzdENhY2hlLnByb3RvdHlwZS5jbGVhciA9IGxpc3RDYWNoZUNsZWFyO1xuICAgIExpc3RDYWNoZS5wcm90b3R5cGVbJ2RlbGV0ZSddID0gbGlzdENhY2hlRGVsZXRlO1xuICAgIExpc3RDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbGlzdENhY2hlR2V0O1xuICAgIExpc3RDYWNoZS5wcm90b3R5cGUuaGFzID0gbGlzdENhY2hlSGFzO1xuICAgIExpc3RDYWNoZS5wcm90b3R5cGUuc2V0ID0gbGlzdENhY2hlU2V0O1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG1hcCBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBNYXBDYWNoZShlbnRyaWVzKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgICAgICB0aGlzLnNldChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIG1hcC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgY2xlYXJcbiAgICAgKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXBDYWNoZUNsZWFyKCkge1xuICAgICAgdGhpcy5zaXplID0gMDtcbiAgICAgIHRoaXMuX19kYXRhX18gPSB7XG4gICAgICAgICdoYXNoJzogbmV3IEhhc2gsXG4gICAgICAgICdtYXAnOiBuZXcgKE1hcCB8fCBMaXN0Q2FjaGUpLFxuICAgICAgICAnc3RyaW5nJzogbmV3IEhhc2hcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIG1hcC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgZGVsZXRlXG4gICAgICogQG1lbWJlck9mIE1hcENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcENhY2hlRGVsZXRlKGtleSkge1xuICAgICAgdmFyIHJlc3VsdCA9IGdldE1hcERhdGEodGhpcywga2V5KVsnZGVsZXRlJ10oa2V5KTtcbiAgICAgIHRoaXMuc2l6ZSAtPSByZXN1bHQgPyAxIDogMDtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbWFwIHZhbHVlIGZvciBga2V5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgZ2V0XG4gICAgICogQG1lbWJlck9mIE1hcENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcENhY2hlR2V0KGtleSkge1xuICAgICAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KS5nZXQoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYSBtYXAgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgaGFzXG4gICAgICogQG1lbWJlck9mIE1hcENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcENhY2hlSGFzKGtleSkge1xuICAgICAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KS5oYXMoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBtYXAgYGtleWAgdG8gYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgc2V0XG4gICAgICogQG1lbWJlck9mIE1hcENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG1hcCBjYWNoZSBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXBDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gICAgICB2YXIgZGF0YSA9IGdldE1hcERhdGEodGhpcywga2V5KSxcbiAgICAgICAgICBzaXplID0gZGF0YS5zaXplO1xuXG4gICAgICBkYXRhLnNldChrZXksIHZhbHVlKTtcbiAgICAgIHRoaXMuc2l6ZSArPSBkYXRhLnNpemUgPT0gc2l6ZSA/IDAgOiAxO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gQWRkIG1ldGhvZHMgdG8gYE1hcENhY2hlYC5cbiAgICBNYXBDYWNoZS5wcm90b3R5cGUuY2xlYXIgPSBtYXBDYWNoZUNsZWFyO1xuICAgIE1hcENhY2hlLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBtYXBDYWNoZURlbGV0ZTtcbiAgICBNYXBDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbWFwQ2FjaGVHZXQ7XG4gICAgTWFwQ2FjaGUucHJvdG90eXBlLmhhcyA9IG1hcENhY2hlSGFzO1xuICAgIE1hcENhY2hlLnByb3RvdHlwZS5zZXQgPSBtYXBDYWNoZVNldDtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBjYWNoZSBvYmplY3QgdG8gc3RvcmUgdW5pcXVlIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBjYWNoZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBTZXRDYWNoZSh2YWx1ZXMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHZhbHVlcyA9PSBudWxsID8gMCA6IHZhbHVlcy5sZW5ndGg7XG5cbiAgICAgIHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGU7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB0aGlzLmFkZCh2YWx1ZXNbaW5kZXhdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGB2YWx1ZWAgdG8gdGhlIGFycmF5IGNhY2hlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBhZGRcbiAgICAgKiBAbWVtYmVyT2YgU2V0Q2FjaGVcbiAgICAgKiBAYWxpYXMgcHVzaFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNhY2hlLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNhY2hlIGluc3RhbmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNldENhY2hlQWRkKHZhbHVlKSB7XG4gICAgICB0aGlzLl9fZGF0YV9fLnNldCh2YWx1ZSwgSEFTSF9VTkRFRklORUQpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgaW4gdGhlIGFycmF5IGNhY2hlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBoYXNcbiAgICAgKiBAbWVtYmVyT2YgU2V0Q2FjaGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXRDYWNoZUhhcyh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgbWV0aG9kcyB0byBgU2V0Q2FjaGVgLlxuICAgIFNldENhY2hlLnByb3RvdHlwZS5hZGQgPSBTZXRDYWNoZS5wcm90b3R5cGUucHVzaCA9IHNldENhY2hlQWRkO1xuICAgIFNldENhY2hlLnByb3RvdHlwZS5oYXMgPSBzZXRDYWNoZUhhcztcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzdGFjayBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBTdGFjayhlbnRyaWVzKSB7XG4gICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18gPSBuZXcgTGlzdENhY2hlKGVudHJpZXMpO1xuICAgICAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIHN0YWNrLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBjbGVhclxuICAgICAqIEBtZW1iZXJPZiBTdGFja1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0YWNrQ2xlYXIoKSB7XG4gICAgICB0aGlzLl9fZGF0YV9fID0gbmV3IExpc3RDYWNoZTtcbiAgICAgIHRoaXMuc2l6ZSA9IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIHN0YWNrLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBkZWxldGVcbiAgICAgKiBAbWVtYmVyT2YgU3RhY2tcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3RhY2tEZWxldGUoa2V5KSB7XG4gICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXG4gICAgICAgICAgcmVzdWx0ID0gZGF0YVsnZGVsZXRlJ10oa2V5KTtcblxuICAgICAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBzdGFjayB2YWx1ZSBmb3IgYGtleWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGdldFxuICAgICAqIEBtZW1iZXJPZiBTdGFja1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdGFja0dldChrZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9fZGF0YV9fLmdldChrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhIHN0YWNrIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGhhc1xuICAgICAqIEBtZW1iZXJPZiBTdGFja1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdGFja0hhcyhrZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHN0YWNrIGBrZXlgIHRvIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIHNldFxuICAgICAqIEBtZW1iZXJPZiBTdGFja1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBzdGFjayBjYWNoZSBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdGFja1NldChrZXksIHZhbHVlKSB7XG4gICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX187XG4gICAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIExpc3RDYWNoZSkge1xuICAgICAgICB2YXIgcGFpcnMgPSBkYXRhLl9fZGF0YV9fO1xuICAgICAgICBpZiAoIU1hcCB8fCAocGFpcnMubGVuZ3RoIDwgTEFSR0VfQVJSQVlfU0laRSAtIDEpKSB7XG4gICAgICAgICAgcGFpcnMucHVzaChba2V5LCB2YWx1ZV0pO1xuICAgICAgICAgIHRoaXMuc2l6ZSA9ICsrZGF0YS5zaXplO1xuICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIGRhdGEgPSB0aGlzLl9fZGF0YV9fID0gbmV3IE1hcENhY2hlKHBhaXJzKTtcbiAgICAgIH1cbiAgICAgIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gQWRkIG1ldGhvZHMgdG8gYFN0YWNrYC5cbiAgICBTdGFjay5wcm90b3R5cGUuY2xlYXIgPSBzdGFja0NsZWFyO1xuICAgIFN0YWNrLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBzdGFja0RlbGV0ZTtcbiAgICBTdGFjay5wcm90b3R5cGUuZ2V0ID0gc3RhY2tHZXQ7XG4gICAgU3RhY2sucHJvdG90eXBlLmhhcyA9IHN0YWNrSGFzO1xuICAgIFN0YWNrLnByb3RvdHlwZS5zZXQgPSBzdGFja1NldDtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgdGhlIGFycmF5LWxpa2UgYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBpbmhlcml0ZWQgU3BlY2lmeSByZXR1cm5pbmcgaW5oZXJpdGVkIHByb3BlcnR5IG5hbWVzLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlMaWtlS2V5cyh2YWx1ZSwgaW5oZXJpdGVkKSB7XG4gICAgICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKSxcbiAgICAgICAgICBpc0FyZyA9ICFpc0FyciAmJiBpc0FyZ3VtZW50cyh2YWx1ZSksXG4gICAgICAgICAgaXNCdWZmID0gIWlzQXJyICYmICFpc0FyZyAmJiBpc0J1ZmZlcih2YWx1ZSksXG4gICAgICAgICAgaXNUeXBlID0gIWlzQXJyICYmICFpc0FyZyAmJiAhaXNCdWZmICYmIGlzVHlwZWRBcnJheSh2YWx1ZSksXG4gICAgICAgICAgc2tpcEluZGV4ZXMgPSBpc0FyciB8fCBpc0FyZyB8fCBpc0J1ZmYgfHwgaXNUeXBlLFxuICAgICAgICAgIHJlc3VsdCA9IHNraXBJbmRleGVzID8gYmFzZVRpbWVzKHZhbHVlLmxlbmd0aCwgU3RyaW5nKSA6IFtdLFxuICAgICAgICAgIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgICAgICBpZiAoKGluaGVyaXRlZCB8fCBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBrZXkpKSAmJlxuICAgICAgICAgICAgIShza2lwSW5kZXhlcyAmJiAoXG4gICAgICAgICAgICAgICAvLyBTYWZhcmkgOSBoYXMgZW51bWVyYWJsZSBgYXJndW1lbnRzLmxlbmd0aGAgaW4gc3RyaWN0IG1vZGUuXG4gICAgICAgICAgICAgICBrZXkgPT0gJ2xlbmd0aCcgfHxcbiAgICAgICAgICAgICAgIC8vIE5vZGUuanMgMC4xMCBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiBidWZmZXJzLlxuICAgICAgICAgICAgICAgKGlzQnVmZiAmJiAoa2V5ID09ICdvZmZzZXQnIHx8IGtleSA9PSAncGFyZW50JykpIHx8XG4gICAgICAgICAgICAgICAvLyBQaGFudG9tSlMgMiBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiB0eXBlZCBhcnJheXMuXG4gICAgICAgICAgICAgICAoaXNUeXBlICYmIChrZXkgPT0gJ2J1ZmZlcicgfHwga2V5ID09ICdieXRlTGVuZ3RoJyB8fCBrZXkgPT0gJ2J5dGVPZmZzZXQnKSkgfHxcbiAgICAgICAgICAgICAgIC8vIFNraXAgaW5kZXggcHJvcGVydGllcy5cbiAgICAgICAgICAgICAgIGlzSW5kZXgoa2V5LCBsZW5ndGgpXG4gICAgICAgICAgICApKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnNhbXBsZWAgZm9yIGFycmF5cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNhbXBsZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmFuZG9tIGVsZW1lbnQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlTYW1wbGUoYXJyYXkpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYXJyYXlbYmFzZVJhbmRvbSgwLCBsZW5ndGggLSAxKV0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnNhbXBsZVNpemVgIGZvciBhcnJheXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzYW1wbGUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byBzYW1wbGUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSByYW5kb20gZWxlbWVudHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJyYXlTYW1wbGVTaXplKGFycmF5LCBuKSB7XG4gICAgICByZXR1cm4gc2h1ZmZsZVNlbGYoY29weUFycmF5KGFycmF5KSwgYmFzZUNsYW1wKG4sIDAsIGFycmF5Lmxlbmd0aCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zaHVmZmxlYCBmb3IgYXJyYXlzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2h1ZmZsZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzaHVmZmxlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheVNodWZmbGUoYXJyYXkpIHtcbiAgICAgIHJldHVybiBzaHVmZmxlU2VsZihjb3B5QXJyYXkoYXJyYXkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGFzc2lnblZhbHVlYCBleGNlcHQgdGhhdCBpdCBkb2Vzbid0IGFzc2lnblxuICAgICAqIGB1bmRlZmluZWRgIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgICAgIGlmICgodmFsdWUgIT09IHVuZGVmaW5lZCAmJiAhZXEob2JqZWN0W2tleV0sIHZhbHVlKSkgfHxcbiAgICAgICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSkge1xuICAgICAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBc3NpZ25zIGB2YWx1ZWAgdG8gYGtleWAgb2YgYG9iamVjdGAgaWYgdGhlIGV4aXN0aW5nIHZhbHVlIGlzIG5vdCBlcXVpdmFsZW50XG4gICAgICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICAgICAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV07XG4gICAgICBpZiAoIShoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBlcShvYmpWYWx1ZSwgdmFsdWUpKSB8fFxuICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBga2V5YCBpcyBmb3VuZCBpbiBgYXJyYXlgIG9mIGtleS12YWx1ZSBwYWlycy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXNzb2NJbmRleE9mKGFycmF5LCBrZXkpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgaWYgKGVxKGFycmF5W2xlbmd0aF1bMF0sIGtleSkpIHtcbiAgICAgICAgICByZXR1cm4gbGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWdncmVnYXRlcyBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAgb24gYGFjY3VtdWxhdG9yYCB3aXRoIGtleXMgdHJhbnNmb3JtZWRcbiAgICAgKiBieSBgaXRlcmF0ZWVgIGFuZCB2YWx1ZXMgc2V0IGJ5IGBzZXR0ZXJgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gc2V0dGVyIFRoZSBmdW5jdGlvbiB0byBzZXQgYGFjY3VtdWxhdG9yYCB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGl0ZXJhdGVlIHRvIHRyYW5zZm9ybSBrZXlzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBhY2N1bXVsYXRvciBUaGUgaW5pdGlhbCBhZ2dyZWdhdGVkIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGFjY3VtdWxhdG9yYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQWdncmVnYXRvcihjb2xsZWN0aW9uLCBzZXR0ZXIsIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xuICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGtleSwgY29sbGVjdGlvbikge1xuICAgICAgICBzZXR0ZXIoYWNjdW11bGF0b3IsIHZhbHVlLCBpdGVyYXRlZSh2YWx1ZSksIGNvbGxlY3Rpb24pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uYXNzaWduYCB3aXRob3V0IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNvdXJjZXNcbiAgICAgKiBvciBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VBc3NpZ24ob2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgIHJldHVybiBvYmplY3QgJiYgY29weU9iamVjdChzb3VyY2UsIGtleXMoc291cmNlKSwgb2JqZWN0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hc3NpZ25JbmAgd2l0aG91dCBzdXBwb3J0IGZvciBtdWx0aXBsZSBzb3VyY2VzXG4gICAgICogb3IgYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQXNzaWduSW4ob2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgIHJldHVybiBvYmplY3QgJiYgY29weU9iamVjdChzb3VyY2UsIGtleXNJbihzb3VyY2UpLCBvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBhc3NpZ25WYWx1ZWAgYW5kIGBhc3NpZ25NZXJnZVZhbHVlYCB3aXRob3V0XG4gICAgICogdmFsdWUgY2hlY2tzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoa2V5ID09ICdfX3Byb3RvX18nICYmIGRlZmluZVByb3BlcnR5KSB7XG4gICAgICAgIGRlZmluZVByb3BlcnR5KG9iamVjdCwga2V5LCB7XG4gICAgICAgICAgJ2NvbmZpZ3VyYWJsZSc6IHRydWUsXG4gICAgICAgICAgJ2VudW1lcmFibGUnOiB0cnVlLFxuICAgICAgICAgICd2YWx1ZSc6IHZhbHVlLFxuICAgICAgICAgICd3cml0YWJsZSc6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmF0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGluZGl2aWR1YWwgcGF0aHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aHMgVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBwaWNrZWQgZWxlbWVudHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUF0KG9iamVjdCwgcGF0aHMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHBhdGhzLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpLFxuICAgICAgICAgIHNraXAgPSBvYmplY3QgPT0gbnVsbDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0W2luZGV4XSA9IHNraXAgPyB1bmRlZmluZWQgOiBnZXQob2JqZWN0LCBwYXRoc1tpbmRleF0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5jbGFtcGAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyIFRoZSBudW1iZXIgdG8gY2xhbXAuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsb3dlcl0gVGhlIGxvd2VyIGJvdW5kLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1cHBlciBUaGUgdXBwZXIgYm91bmQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY2xhbXBlZCBudW1iZXIuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUNsYW1wKG51bWJlciwgbG93ZXIsIHVwcGVyKSB7XG4gICAgICBpZiAobnVtYmVyID09PSBudW1iZXIpIHtcbiAgICAgICAgaWYgKHVwcGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBudW1iZXIgPSBudW1iZXIgPD0gdXBwZXIgPyBudW1iZXIgOiB1cHBlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG51bWJlciA9IG51bWJlciA+PSBsb3dlciA/IG51bWJlciA6IGxvd2VyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVtYmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNsb25lYCBhbmQgYF8uY2xvbmVEZWVwYCB3aGljaCB0cmFja3NcbiAgICAgKiB0cmF2ZXJzZWQgb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLlxuICAgICAqICAxIC0gRGVlcCBjbG9uZVxuICAgICAqICAyIC0gRmxhdHRlbiBpbmhlcml0ZWQgcHJvcGVydGllc1xuICAgICAqICA0IC0gQ2xvbmUgc3ltYm9sc1xuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNsb25pbmcuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtrZXldIFRoZSBrZXkgb2YgYHZhbHVlYC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIHBhcmVudCBvYmplY3Qgb2YgYHZhbHVlYC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIG9iamVjdHMgYW5kIHRoZWlyIGNsb25lIGNvdW50ZXJwYXJ0cy5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgY2xvbmVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VDbG9uZSh2YWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwga2V5LCBvYmplY3QsIHN0YWNrKSB7XG4gICAgICB2YXIgcmVzdWx0LFxuICAgICAgICAgIGlzRGVlcCA9IGJpdG1hc2sgJiBDTE9ORV9ERUVQX0ZMQUcsXG4gICAgICAgICAgaXNGbGF0ID0gYml0bWFzayAmIENMT05FX0ZMQVRfRkxBRyxcbiAgICAgICAgICBpc0Z1bGwgPSBiaXRtYXNrICYgQ0xPTkVfU1lNQk9MU19GTEFHO1xuXG4gICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICByZXN1bHQgPSBvYmplY3QgPyBjdXN0b21pemVyKHZhbHVlLCBrZXksIG9iamVjdCwgc3RhY2spIDogY3VzdG9taXplcih2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpO1xuICAgICAgaWYgKGlzQXJyKSB7XG4gICAgICAgIHJlc3VsdCA9IGluaXRDbG9uZUFycmF5KHZhbHVlKTtcbiAgICAgICAgaWYgKCFpc0RlZXApIHtcbiAgICAgICAgICByZXR1cm4gY29weUFycmF5KHZhbHVlLCByZXN1bHQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgdGFnID0gZ2V0VGFnKHZhbHVlKSxcbiAgICAgICAgICAgIGlzRnVuYyA9IHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWc7XG5cbiAgICAgICAgaWYgKGlzQnVmZmVyKHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBjbG9uZUJ1ZmZlcih2YWx1ZSwgaXNEZWVwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFnID09IG9iamVjdFRhZyB8fCB0YWcgPT0gYXJnc1RhZyB8fCAoaXNGdW5jICYmICFvYmplY3QpKSB7XG4gICAgICAgICAgcmVzdWx0ID0gKGlzRmxhdCB8fCBpc0Z1bmMpID8ge30gOiBpbml0Q2xvbmVPYmplY3QodmFsdWUpO1xuICAgICAgICAgIGlmICghaXNEZWVwKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNGbGF0XG4gICAgICAgICAgICAgID8gY29weVN5bWJvbHNJbih2YWx1ZSwgYmFzZUFzc2lnbkluKHJlc3VsdCwgdmFsdWUpKVxuICAgICAgICAgICAgICA6IGNvcHlTeW1ib2xzKHZhbHVlLCBiYXNlQXNzaWduKHJlc3VsdCwgdmFsdWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFjbG9uZWFibGVUYWdzW3RhZ10pIHtcbiAgICAgICAgICAgIHJldHVybiBvYmplY3QgPyB2YWx1ZSA6IHt9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQgPSBpbml0Q2xvbmVCeVRhZyh2YWx1ZSwgdGFnLCBpc0RlZXApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBDaGVjayBmb3IgY2lyY3VsYXIgcmVmZXJlbmNlcyBhbmQgcmV0dXJuIGl0cyBjb3JyZXNwb25kaW5nIGNsb25lLlxuICAgICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKTtcbiAgICAgIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KHZhbHVlKTtcbiAgICAgIGlmIChzdGFja2VkKSB7XG4gICAgICAgIHJldHVybiBzdGFja2VkO1xuICAgICAgfVxuICAgICAgc3RhY2suc2V0KHZhbHVlLCByZXN1bHQpO1xuXG4gICAgICBpZiAoaXNTZXQodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goZnVuY3Rpb24oc3ViVmFsdWUpIHtcbiAgICAgICAgICByZXN1bHQuYWRkKGJhc2VDbG9uZShzdWJWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3ViVmFsdWUsIHZhbHVlLCBzdGFjaykpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoaXNNYXAodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goZnVuY3Rpb24oc3ViVmFsdWUsIGtleSkge1xuICAgICAgICAgIHJlc3VsdC5zZXQoa2V5LCBiYXNlQ2xvbmUoc3ViVmFsdWUsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGtleSwgdmFsdWUsIHN0YWNrKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB2YXIga2V5c0Z1bmMgPSBpc0Z1bGxcbiAgICAgICAgPyAoaXNGbGF0ID8gZ2V0QWxsS2V5c0luIDogZ2V0QWxsS2V5cylcbiAgICAgICAgOiAoaXNGbGF0ID8ga2V5c0luIDoga2V5cyk7XG5cbiAgICAgIHZhciBwcm9wcyA9IGlzQXJyID8gdW5kZWZpbmVkIDoga2V5c0Z1bmModmFsdWUpO1xuICAgICAgYXJyYXlFYWNoKHByb3BzIHx8IHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgICAgIGlmIChwcm9wcykge1xuICAgICAgICAgIGtleSA9IHN1YlZhbHVlO1xuICAgICAgICAgIHN1YlZhbHVlID0gdmFsdWVba2V5XTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZWN1cnNpdmVseSBwb3B1bGF0ZSBjbG9uZSAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgICAgICBhc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFjaykpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNvbmZvcm1zYCB3aGljaCBkb2Vzbid0IGNsb25lIGBzb3VyY2VgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgcHJlZGljYXRlcyB0byBjb25mb3JtIHRvLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNwZWMgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUNvbmZvcm1zKHNvdXJjZSkge1xuICAgICAgdmFyIHByb3BzID0ga2V5cyhzb3VyY2UpO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICByZXR1cm4gYmFzZUNvbmZvcm1zVG8ob2JqZWN0LCBzb3VyY2UsIHByb3BzKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY29uZm9ybXNUb2Agd2hpY2ggYWNjZXB0cyBgcHJvcHNgIHRvIGNoZWNrLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgcHJlZGljYXRlcyB0byBjb25mb3JtIHRvLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBjb25mb3JtcywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VDb25mb3Jtc1RvKG9iamVjdCwgc291cmNlLCBwcm9wcykge1xuICAgICAgdmFyIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcbiAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gIWxlbmd0aDtcbiAgICAgIH1cbiAgICAgIG9iamVjdCA9IE9iamVjdChvYmplY3QpO1xuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIHZhciBrZXkgPSBwcm9wc1tsZW5ndGhdLFxuICAgICAgICAgICAgcHJlZGljYXRlID0gc291cmNlW2tleV0sXG4gICAgICAgICAgICB2YWx1ZSA9IG9iamVjdFtrZXldO1xuXG4gICAgICAgIGlmICgodmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSB8fCAhcHJlZGljYXRlKHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZGVsYXlgIGFuZCBgXy5kZWZlcmAgd2hpY2ggYWNjZXB0cyBgYXJnc2BcbiAgICAgKiB0byBwcm92aWRlIHRvIGBmdW5jYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZGVsYXkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHdhaXQgVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gZGVsYXkgaW52b2NhdGlvbi5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcmdzIFRoZSBhcmd1bWVudHMgdG8gcHJvdmlkZSB0byBgZnVuY2AuXG4gICAgICogQHJldHVybnMge251bWJlcnxPYmplY3R9IFJldHVybnMgdGhlIHRpbWVyIGlkIG9yIHRpbWVvdXQgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VEZWxheShmdW5jLCB3YWl0LCBhcmdzKSB7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpIHsgZnVuYy5hcHBseSh1bmRlZmluZWQsIGFyZ3MpOyB9LCB3YWl0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2RzIGxpa2UgYF8uZGlmZmVyZW5jZWAgd2l0aG91dCBzdXBwb3J0XG4gICAgICogZm9yIGV4Y2x1ZGluZyBtdWx0aXBsZSBhcnJheXMgb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gZXhjbHVkZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWVdIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRGlmZmVyZW5jZShhcnJheSwgdmFsdWVzLCBpdGVyYXRlZSwgY29tcGFyYXRvcikge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgaW5jbHVkZXMgPSBhcnJheUluY2x1ZGVzLFxuICAgICAgICAgIGlzQ29tbW9uID0gdHJ1ZSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgICAgdmFsdWVzTGVuZ3RoID0gdmFsdWVzLmxlbmd0aDtcblxuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVyYXRlZSkge1xuICAgICAgICB2YWx1ZXMgPSBhcnJheU1hcCh2YWx1ZXMsIGJhc2VVbmFyeShpdGVyYXRlZSkpO1xuICAgICAgfVxuICAgICAgaWYgKGNvbXBhcmF0b3IpIHtcbiAgICAgICAgaW5jbHVkZXMgPSBhcnJheUluY2x1ZGVzV2l0aDtcbiAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHZhbHVlcy5sZW5ndGggPj0gTEFSR0VfQVJSQVlfU0laRSkge1xuICAgICAgICBpbmNsdWRlcyA9IGNhY2hlSGFzO1xuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICB2YWx1ZXMgPSBuZXcgU2V0Q2FjaGUodmFsdWVzKTtcbiAgICAgIH1cbiAgICAgIG91dGVyOlxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZSA9PSBudWxsID8gdmFsdWUgOiBpdGVyYXRlZSh2YWx1ZSk7XG5cbiAgICAgICAgdmFsdWUgPSAoY29tcGFyYXRvciB8fCB2YWx1ZSAhPT0gMCkgPyB2YWx1ZSA6IDA7XG4gICAgICAgIGlmIChpc0NvbW1vbiAmJiBjb21wdXRlZCA9PT0gY29tcHV0ZWQpIHtcbiAgICAgICAgICB2YXIgdmFsdWVzSW5kZXggPSB2YWx1ZXNMZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKHZhbHVlc0luZGV4LS0pIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZXNbdmFsdWVzSW5kZXhdID09PSBjb21wdXRlZCkge1xuICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFpbmNsdWRlcyh2YWx1ZXMsIGNvbXB1dGVkLCBjb21wYXJhdG9yKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JFYWNoYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxuICAgICAqL1xuICAgIHZhciBiYXNlRWFjaCA9IGNyZWF0ZUJhc2VFYWNoKGJhc2VGb3JPd24pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yRWFjaFJpZ2h0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxuICAgICAqL1xuICAgIHZhciBiYXNlRWFjaFJpZ2h0ID0gY3JlYXRlQmFzZUVhY2goYmFzZUZvck93blJpZ2h0LCB0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmV2ZXJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYWxsIGVsZW1lbnRzIHBhc3MgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAgICAgKiAgZWxzZSBgZmFsc2VgXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUV2ZXJ5KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IHRydWU7XG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgcmVzdWx0ID0gISFwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2RzIGxpa2UgYF8ubWF4YCBhbmQgYF8ubWluYCB3aGljaCBhY2NlcHRzIGFcbiAgICAgKiBgY29tcGFyYXRvcmAgdG8gZGV0ZXJtaW5lIHRoZSBleHRyZW11bSB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbXBhcmF0b3IgVGhlIGNvbXBhcmF0b3IgdXNlZCB0byBjb21wYXJlIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZXh0cmVtdW0gdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUV4dHJlbXVtKGFycmF5LCBpdGVyYXRlZSwgY29tcGFyYXRvcikge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgICBjdXJyZW50ID0gaXRlcmF0ZWUodmFsdWUpO1xuXG4gICAgICAgIGlmIChjdXJyZW50ICE9IG51bGwgJiYgKGNvbXB1dGVkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPyAoY3VycmVudCA9PT0gY3VycmVudCAmJiAhaXNTeW1ib2woY3VycmVudCkpXG4gICAgICAgICAgICAgIDogY29tcGFyYXRvcihjdXJyZW50LCBjb21wdXRlZClcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICB2YXIgY29tcHV0ZWQgPSBjdXJyZW50LFxuICAgICAgICAgICAgICByZXN1bHQgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maWxsYCB3aXRob3V0IGFuIGl0ZXJhdGVlIGNhbGwgZ3VhcmQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmaWxsLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGZpbGwgYGFycmF5YCB3aXRoLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IHBvc2l0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZW5kPWFycmF5Lmxlbmd0aF0gVGhlIGVuZCBwb3NpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRmlsbChhcnJheSwgdmFsdWUsIHN0YXJ0LCBlbmQpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgICAgIHN0YXJ0ID0gdG9JbnRlZ2VyKHN0YXJ0KTtcbiAgICAgIGlmIChzdGFydCA8IDApIHtcbiAgICAgICAgc3RhcnQgPSAtc3RhcnQgPiBsZW5ndGggPyAwIDogKGxlbmd0aCArIHN0YXJ0KTtcbiAgICAgIH1cbiAgICAgIGVuZCA9IChlbmQgPT09IHVuZGVmaW5lZCB8fCBlbmQgPiBsZW5ndGgpID8gbGVuZ3RoIDogdG9JbnRlZ2VyKGVuZCk7XG4gICAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgICBlbmQgKz0gbGVuZ3RoO1xuICAgICAgfVxuICAgICAgZW5kID0gc3RhcnQgPiBlbmQgPyAwIDogdG9MZW5ndGgoZW5kKTtcbiAgICAgIHdoaWxlIChzdGFydCA8IGVuZCkge1xuICAgICAgICBhcnJheVtzdGFydCsrXSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZpbHRlcmAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZpbHRlcihjb2xsZWN0aW9uLCBwcmVkaWNhdGUpIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xuICAgICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikpIHtcbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mbGF0dGVuYCB3aXRoIHN1cHBvcnQgZm9yIHJlc3RyaWN0aW5nIGZsYXR0ZW5pbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmbGF0dGVuLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZXB0aCBUaGUgbWF4aW11bSByZWN1cnNpb24gZGVwdGguXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbcHJlZGljYXRlPWlzRmxhdHRlbmFibGVdIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNTdHJpY3RdIFJlc3RyaWN0IHRvIHZhbHVlcyB0aGF0IHBhc3MgYHByZWRpY2F0ZWAgY2hlY2tzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtyZXN1bHQ9W11dIFRoZSBpbml0aWFsIHJlc3VsdCB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZsYXR0ZW4oYXJyYXksIGRlcHRoLCBwcmVkaWNhdGUsIGlzU3RyaWN0LCByZXN1bHQpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgcHJlZGljYXRlIHx8IChwcmVkaWNhdGUgPSBpc0ZsYXR0ZW5hYmxlKTtcbiAgICAgIHJlc3VsdCB8fCAocmVzdWx0ID0gW10pO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICAgIGlmIChkZXB0aCA+IDAgJiYgcHJlZGljYXRlKHZhbHVlKSkge1xuICAgICAgICAgIGlmIChkZXB0aCA+IDEpIHtcbiAgICAgICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGZsYXR0ZW4gYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgICAgICBiYXNlRmxhdHRlbih2YWx1ZSwgZGVwdGggLSAxLCBwcmVkaWNhdGUsIGlzU3RyaWN0LCByZXN1bHQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcnJheVB1c2gocmVzdWx0LCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFpc1N0cmljdCkge1xuICAgICAgICAgIHJlc3VsdFtyZXN1bHQubGVuZ3RoXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBiYXNlRm9yT3duYCB3aGljaCBpdGVyYXRlcyBvdmVyIGBvYmplY3RgXG4gICAgICogcHJvcGVydGllcyByZXR1cm5lZCBieSBga2V5c0Z1bmNgIGFuZCBpbnZva2VzIGBpdGVyYXRlZWAgZm9yIGVhY2ggcHJvcGVydHkuXG4gICAgICogSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0ga2V5c0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUga2V5cyBvZiBgb2JqZWN0YC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIHZhciBiYXNlRm9yID0gY3JlYXRlQmFzZUZvcigpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBiYXNlRm9yYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIHByb3BlcnRpZXNcbiAgICAgKiBpbiB0aGUgb3Bwb3NpdGUgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgdmFyIGJhc2VGb3JSaWdodCA9IGNyZWF0ZUJhc2VGb3IodHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JPd25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZvck93bihvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ICYmIGJhc2VGb3Iob2JqZWN0LCBpdGVyYXRlZSwga2V5cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yT3duUmlnaHRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZvck93blJpZ2h0KG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBvYmplY3QgJiYgYmFzZUZvclJpZ2h0KG9iamVjdCwgaXRlcmF0ZWUsIGtleXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZ1bmN0aW9uc2Agd2hpY2ggY3JlYXRlcyBhbiBhcnJheSBvZlxuICAgICAqIGBvYmplY3RgIGZ1bmN0aW9uIHByb3BlcnR5IG5hbWVzIGZpbHRlcmVkIGZyb20gYHByb3BzYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzIHRvIGZpbHRlci5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGZ1bmN0aW9uIG5hbWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VGdW5jdGlvbnMob2JqZWN0LCBwcm9wcykge1xuICAgICAgcmV0dXJuIGFycmF5RmlsdGVyKHByb3BzLCBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24ob2JqZWN0W2tleV0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZ2V0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZmF1bHQgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUdldChvYmplY3QsIHBhdGgpIHtcbiAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuXG4gICAgICB2YXIgaW5kZXggPSAwLFxuICAgICAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAob2JqZWN0ICE9IG51bGwgJiYgaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgb2JqZWN0ID0gb2JqZWN0W3RvS2V5KHBhdGhbaW5kZXgrK10pXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoaW5kZXggJiYgaW5kZXggPT0gbGVuZ3RoKSA/IG9iamVjdCA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0QWxsS2V5c2AgYW5kIGBnZXRBbGxLZXlzSW5gIHdoaWNoIHVzZXNcbiAgICAgKiBga2V5c0Z1bmNgIGFuZCBgc3ltYm9sc0Z1bmNgIHRvIGdldCB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcbiAgICAgKiBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0ga2V5c0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUga2V5cyBvZiBgb2JqZWN0YC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzeW1ib2xzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgYW5kIHN5bWJvbHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzRnVuYywgc3ltYm9sc0Z1bmMpIHtcbiAgICAgIHZhciByZXN1bHQgPSBrZXlzRnVuYyhvYmplY3QpO1xuICAgICAgcmV0dXJuIGlzQXJyYXkob2JqZWN0KSA/IHJlc3VsdCA6IGFycmF5UHVzaChyZXN1bHQsIHN5bWJvbHNGdW5jKG9iamVjdCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRUYWdgIHdpdGhvdXQgZmFsbGJhY2tzIGZvciBidWdneSBlbnZpcm9ubWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUdldFRhZyh2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWRUYWcgOiBudWxsVGFnO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKVxuICAgICAgICA/IGdldFJhd1RhZyh2YWx1ZSlcbiAgICAgICAgOiBvYmplY3RUb1N0cmluZyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZ3RgIHdoaWNoIGRvZXNuJ3QgY29lcmNlIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGdyZWF0ZXIgdGhhbiBgb3RoZXJgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUd0KHZhbHVlLCBvdGhlcikge1xuICAgICAgcmV0dXJuIHZhbHVlID4gb3RoZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaGFzYCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZXAgcGF0aHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBrZXkgVGhlIGtleSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUhhcyhvYmplY3QsIGtleSkge1xuICAgICAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmhhc0luYCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZXAgcGF0aHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBrZXkgVGhlIGtleSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUhhc0luKG9iamVjdCwga2V5KSB7XG4gICAgICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYga2V5IGluIE9iamVjdChvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmluUmFuZ2VgIHdoaWNoIGRvZXNuJ3QgY29lcmNlIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlciBUaGUgbnVtYmVyIHRvIGNoZWNrLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydCBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgVGhlIGVuZCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBudW1iZXJgIGlzIGluIHRoZSByYW5nZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJblJhbmdlKG51bWJlciwgc3RhcnQsIGVuZCkge1xuICAgICAgcmV0dXJuIG51bWJlciA+PSBuYXRpdmVNaW4oc3RhcnQsIGVuZCkgJiYgbnVtYmVyIDwgbmF0aXZlTWF4KHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5pbnRlcnNlY3Rpb25gLCB3aXRob3V0IHN1cHBvcnRcbiAgICAgKiBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcywgdGhhdCBhY2NlcHRzIGFuIGFycmF5IG9mIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheXMgVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2Ygc2hhcmVkIHZhbHVlcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSW50ZXJzZWN0aW9uKGFycmF5cywgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpIHtcbiAgICAgIHZhciBpbmNsdWRlcyA9IGNvbXBhcmF0b3IgPyBhcnJheUluY2x1ZGVzV2l0aCA6IGFycmF5SW5jbHVkZXMsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXlzWzBdLmxlbmd0aCxcbiAgICAgICAgICBvdGhMZW5ndGggPSBhcnJheXMubGVuZ3RoLFxuICAgICAgICAgIG90aEluZGV4ID0gb3RoTGVuZ3RoLFxuICAgICAgICAgIGNhY2hlcyA9IEFycmF5KG90aExlbmd0aCksXG4gICAgICAgICAgbWF4TGVuZ3RoID0gSW5maW5pdHksXG4gICAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICAgIHdoaWxlIChvdGhJbmRleC0tKSB7XG4gICAgICAgIHZhciBhcnJheSA9IGFycmF5c1tvdGhJbmRleF07XG4gICAgICAgIGlmIChvdGhJbmRleCAmJiBpdGVyYXRlZSkge1xuICAgICAgICAgIGFycmF5ID0gYXJyYXlNYXAoYXJyYXksIGJhc2VVbmFyeShpdGVyYXRlZSkpO1xuICAgICAgICB9XG4gICAgICAgIG1heExlbmd0aCA9IG5hdGl2ZU1pbihhcnJheS5sZW5ndGgsIG1heExlbmd0aCk7XG4gICAgICAgIGNhY2hlc1tvdGhJbmRleF0gPSAhY29tcGFyYXRvciAmJiAoaXRlcmF0ZWUgfHwgKGxlbmd0aCA+PSAxMjAgJiYgYXJyYXkubGVuZ3RoID49IDEyMCkpXG4gICAgICAgICAgPyBuZXcgU2V0Q2FjaGUob3RoSW5kZXggJiYgYXJyYXkpXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBhcnJheSA9IGFycmF5c1swXTtcblxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgc2VlbiA9IGNhY2hlc1swXTtcblxuICAgICAgb3V0ZXI6XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCAmJiByZXN1bHQubGVuZ3RoIDwgbWF4TGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSkgOiB2YWx1ZTtcblxuICAgICAgICB2YWx1ZSA9IChjb21wYXJhdG9yIHx8IHZhbHVlICE9PSAwKSA/IHZhbHVlIDogMDtcbiAgICAgICAgaWYgKCEoc2VlblxuICAgICAgICAgICAgICA/IGNhY2hlSGFzKHNlZW4sIGNvbXB1dGVkKVxuICAgICAgICAgICAgICA6IGluY2x1ZGVzKHJlc3VsdCwgY29tcHV0ZWQsIGNvbXBhcmF0b3IpXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgb3RoSW5kZXggPSBvdGhMZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKC0tb3RoSW5kZXgpIHtcbiAgICAgICAgICAgIHZhciBjYWNoZSA9IGNhY2hlc1tvdGhJbmRleF07XG4gICAgICAgICAgICBpZiAoIShjYWNoZVxuICAgICAgICAgICAgICAgICAgPyBjYWNoZUhhcyhjYWNoZSwgY29tcHV0ZWQpXG4gICAgICAgICAgICAgICAgICA6IGluY2x1ZGVzKGFycmF5c1tvdGhJbmRleF0sIGNvbXB1dGVkLCBjb21wYXJhdG9yKSlcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzZWVuKSB7XG4gICAgICAgICAgICBzZWVuLnB1c2goY29tcHV0ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW52ZXJ0YCBhbmQgYF8uaW52ZXJ0QnlgIHdoaWNoIGludmVydHNcbiAgICAgKiBgb2JqZWN0YCB3aXRoIHZhbHVlcyB0cmFuc2Zvcm1lZCBieSBgaXRlcmF0ZWVgIGFuZCBzZXQgYnkgYHNldHRlcmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gc2V0dGVyIFRoZSBmdW5jdGlvbiB0byBzZXQgYGFjY3VtdWxhdG9yYCB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGl0ZXJhdGVlIHRvIHRyYW5zZm9ybSB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGFjY3VtdWxhdG9yIFRoZSBpbml0aWFsIGludmVydGVkIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGFjY3VtdWxhdG9yYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSW52ZXJ0ZXIob2JqZWN0LCBzZXR0ZXIsIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xuICAgICAgYmFzZUZvck93bihvYmplY3QsIGZ1bmN0aW9uKHZhbHVlLCBrZXksIG9iamVjdCkge1xuICAgICAgICBzZXR0ZXIoYWNjdW11bGF0b3IsIGl0ZXJhdGVlKHZhbHVlKSwga2V5LCBvYmplY3QpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW52b2tlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGluZGl2aWR1YWxcbiAgICAgKiBtZXRob2QgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIG1ldGhvZCB0byBpbnZva2UuXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgYXJndW1lbnRzIHRvIGludm9rZSB0aGUgbWV0aG9kIHdpdGguXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgaW52b2tlZCBtZXRob2QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUludm9rZShvYmplY3QsIHBhdGgsIGFyZ3MpIHtcbiAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuICAgICAgb2JqZWN0ID0gcGFyZW50KG9iamVjdCwgcGF0aCk7XG4gICAgICB2YXIgZnVuYyA9IG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogb2JqZWN0W3RvS2V5KGxhc3QocGF0aCkpXTtcbiAgICAgIHJldHVybiBmdW5jID09IG51bGwgPyB1bmRlZmluZWQgOiBhcHBseShmdW5jLCBvYmplY3QsIGFyZ3MpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzQXJndW1lbnRzYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc0FyZ3VtZW50cyh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0FycmF5QnVmZmVyYCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXkgYnVmZmVyLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzQXJyYXlCdWZmZXIodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IGFycmF5QnVmZmVyVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzRGF0ZWAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZGF0ZSBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNEYXRlKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBkYXRlVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzRXF1YWxgIHdoaWNoIHN1cHBvcnRzIHBhcnRpYWwgY29tcGFyaXNvbnNcbiAgICAgKiBhbmQgdHJhY2tzIHRyYXZlcnNlZCBvYmplY3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLlxuICAgICAqICAxIC0gVW5vcmRlcmVkIGNvbXBhcmlzb25cbiAgICAgKiAgMiAtIFBhcnRpYWwgY29tcGFyaXNvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgYHZhbHVlYCBhbmQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzRXF1YWwodmFsdWUsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaykge1xuICAgICAgaWYgKHZhbHVlID09PSBvdGhlcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IG90aGVyID09IG51bGwgfHwgKCFpc09iamVjdExpa2UodmFsdWUpICYmICFpc09iamVjdExpa2Uob3RoZXIpKSkge1xuICAgICAgICByZXR1cm4gdmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlSXNFcXVhbERlZXAodmFsdWUsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBiYXNlSXNFcXVhbCwgc3RhY2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxgIGZvciBhcnJheXMgYW5kIG9iamVjdHMgd2hpY2ggcGVyZm9ybXNcbiAgICAgKiBkZWVwIGNvbXBhcmlzb25zIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMgZW5hYmxpbmcgb2JqZWN0cyB3aXRoIGNpcmN1bGFyXG4gICAgICogcmVmZXJlbmNlcyB0byBiZSBjb21wYXJlZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBiYXNlSXNFcXVhbGAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZXF1YWxGdW5jIFRoZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1aXZhbGVudHMgb2YgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgYG9iamVjdGAgYW5kIGBvdGhlcmAgb2JqZWN0cy5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG9iamVjdHMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNFcXVhbERlZXAob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaykge1xuICAgICAgdmFyIG9iaklzQXJyID0gaXNBcnJheShvYmplY3QpLFxuICAgICAgICAgIG90aElzQXJyID0gaXNBcnJheShvdGhlciksXG4gICAgICAgICAgb2JqVGFnID0gb2JqSXNBcnIgPyBhcnJheVRhZyA6IGdldFRhZyhvYmplY3QpLFxuICAgICAgICAgIG90aFRhZyA9IG90aElzQXJyID8gYXJyYXlUYWcgOiBnZXRUYWcob3RoZXIpO1xuXG4gICAgICBvYmpUYWcgPSBvYmpUYWcgPT0gYXJnc1RhZyA/IG9iamVjdFRhZyA6IG9ialRhZztcbiAgICAgIG90aFRhZyA9IG90aFRhZyA9PSBhcmdzVGFnID8gb2JqZWN0VGFnIDogb3RoVGFnO1xuXG4gICAgICB2YXIgb2JqSXNPYmogPSBvYmpUYWcgPT0gb2JqZWN0VGFnLFxuICAgICAgICAgIG90aElzT2JqID0gb3RoVGFnID09IG9iamVjdFRhZyxcbiAgICAgICAgICBpc1NhbWVUYWcgPSBvYmpUYWcgPT0gb3RoVGFnO1xuXG4gICAgICBpZiAoaXNTYW1lVGFnICYmIGlzQnVmZmVyKG9iamVjdCkpIHtcbiAgICAgICAgaWYgKCFpc0J1ZmZlcihvdGhlcikpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgb2JqSXNBcnIgPSB0cnVlO1xuICAgICAgICBvYmpJc09iaiA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGlzU2FtZVRhZyAmJiAhb2JqSXNPYmopIHtcbiAgICAgICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKTtcbiAgICAgICAgcmV0dXJuIChvYmpJc0FyciB8fCBpc1R5cGVkQXJyYXkob2JqZWN0KSlcbiAgICAgICAgICA/IGVxdWFsQXJyYXlzKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spXG4gICAgICAgICAgOiBlcXVhbEJ5VGFnKG9iamVjdCwgb3RoZXIsIG9ialRhZywgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjayk7XG4gICAgICB9XG4gICAgICBpZiAoIShiaXRtYXNrICYgQ09NUEFSRV9QQVJUSUFMX0ZMQUcpKSB7XG4gICAgICAgIHZhciBvYmpJc1dyYXBwZWQgPSBvYmpJc09iaiAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgJ19fd3JhcHBlZF9fJyksXG4gICAgICAgICAgICBvdGhJc1dyYXBwZWQgPSBvdGhJc09iaiAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG90aGVyLCAnX193cmFwcGVkX18nKTtcblxuICAgICAgICBpZiAob2JqSXNXcmFwcGVkIHx8IG90aElzV3JhcHBlZCkge1xuICAgICAgICAgIHZhciBvYmpVbndyYXBwZWQgPSBvYmpJc1dyYXBwZWQgPyBvYmplY3QudmFsdWUoKSA6IG9iamVjdCxcbiAgICAgICAgICAgICAgb3RoVW53cmFwcGVkID0gb3RoSXNXcmFwcGVkID8gb3RoZXIudmFsdWUoKSA6IG90aGVyO1xuXG4gICAgICAgICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKTtcbiAgICAgICAgICByZXR1cm4gZXF1YWxGdW5jKG9ialVud3JhcHBlZCwgb3RoVW53cmFwcGVkLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghaXNTYW1lVGFnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gICAgICByZXR1cm4gZXF1YWxPYmplY3RzKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTWFwYCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBtYXAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNNYXAodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gbWFwVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTWF0Y2hgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBtYXRjaERhdGEgVGhlIHByb3BlcnR5IG5hbWVzLCB2YWx1ZXMsIGFuZCBjb21wYXJlIGZsYWdzIHRvIG1hdGNoLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBpcyBhIG1hdGNoLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzTWF0Y2gob2JqZWN0LCBzb3VyY2UsIG1hdGNoRGF0YSwgY3VzdG9taXplcikge1xuICAgICAgdmFyIGluZGV4ID0gbWF0Y2hEYXRhLmxlbmd0aCxcbiAgICAgICAgICBsZW5ndGggPSBpbmRleCxcbiAgICAgICAgICBub0N1c3RvbWl6ZXIgPSAhY3VzdG9taXplcjtcblxuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAhbGVuZ3RoO1xuICAgICAgfVxuICAgICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICB2YXIgZGF0YSA9IG1hdGNoRGF0YVtpbmRleF07XG4gICAgICAgIGlmICgobm9DdXN0b21pemVyICYmIGRhdGFbMl0pXG4gICAgICAgICAgICAgID8gZGF0YVsxXSAhPT0gb2JqZWN0W2RhdGFbMF1dXG4gICAgICAgICAgICAgIDogIShkYXRhWzBdIGluIG9iamVjdClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgZGF0YSA9IG1hdGNoRGF0YVtpbmRleF07XG4gICAgICAgIHZhciBrZXkgPSBkYXRhWzBdLFxuICAgICAgICAgICAgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgICAgIHNyY1ZhbHVlID0gZGF0YVsxXTtcblxuICAgICAgICBpZiAobm9DdXN0b21pemVyICYmIGRhdGFbMl0pIHtcbiAgICAgICAgICBpZiAob2JqVmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBzdGFjayA9IG5ldyBTdGFjaztcbiAgICAgICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlLCBzdGFjayk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghKHJlc3VsdCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyBiYXNlSXNFcXVhbChzcmNWYWx1ZSwgb2JqVmFsdWUsIENPTVBBUkVfUEFSVElBTF9GTEFHIHwgQ09NUEFSRV9VTk9SREVSRURfRkxBRywgY3VzdG9taXplciwgc3RhY2spXG4gICAgICAgICAgICAgICAgOiByZXN1bHRcbiAgICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNOYXRpdmVgIHdpdGhvdXQgYmFkIHNoaW0gY2hlY2tzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICAgICAgaWYgKCFpc09iamVjdCh2YWx1ZSkgfHwgaXNNYXNrZWQodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBwYXR0ZXJuID0gaXNGdW5jdGlvbih2YWx1ZSkgPyByZUlzTmF0aXZlIDogcmVJc0hvc3RDdG9yO1xuICAgICAgcmV0dXJuIHBhdHRlcm4udGVzdCh0b1NvdXJjZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzUmVnRXhwYCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSByZWdleHAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNSZWdFeHAodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHJlZ2V4cFRhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1NldGAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc2V0LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzU2V0KHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBnZXRUYWcodmFsdWUpID09IHNldFRhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1R5cGVkQXJyYXlgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHR5cGVkIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiZcbiAgICAgICAgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhIXR5cGVkQXJyYXlUYWdzW2Jhc2VHZXRUYWcodmFsdWUpXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pdGVyYXRlZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gW3ZhbHVlPV8uaWRlbnRpdHldIFRoZSB2YWx1ZSB0byBjb252ZXJ0IHRvIGFuIGl0ZXJhdGVlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgaXRlcmF0ZWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUl0ZXJhdGVlKHZhbHVlKSB7XG4gICAgICAvLyBEb24ndCBzdG9yZSB0aGUgYHR5cGVvZmAgcmVzdWx0IGluIGEgdmFyaWFibGUgdG8gYXZvaWQgYSBKSVQgYnVnIGluIFNhZmFyaSA5LlxuICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYwMzQgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gaWRlbnRpdHk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBpc0FycmF5KHZhbHVlKVxuICAgICAgICAgID8gYmFzZU1hdGNoZXNQcm9wZXJ0eSh2YWx1ZVswXSwgdmFsdWVbMV0pXG4gICAgICAgICAgOiBiYXNlTWF0Y2hlcyh2YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmtleXNgIHdoaWNoIGRvZXNuJ3QgdHJlYXQgc3BhcnNlIGFycmF5cyBhcyBkZW5zZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUtleXMob2JqZWN0KSB7XG4gICAgICBpZiAoIWlzUHJvdG90eXBlKG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIG5hdGl2ZUtleXMob2JqZWN0KTtcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYga2V5ICE9ICdjb25zdHJ1Y3RvcicpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmtleXNJbmAgd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlS2V5c0luKG9iamVjdCkge1xuICAgICAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgICAgIHJldHVybiBuYXRpdmVLZXlzSW4ob2JqZWN0KTtcbiAgICAgIH1cbiAgICAgIHZhciBpc1Byb3RvID0gaXNQcm90b3R5cGUob2JqZWN0KSxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgICAgICBpZiAoIShrZXkgPT0gJ2NvbnN0cnVjdG9yJyAmJiAoaXNQcm90byB8fCAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubHRgIHdoaWNoIGRvZXNuJ3QgY29lcmNlIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGxlc3MgdGhhbiBgb3RoZXJgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUx0KHZhbHVlLCBvdGhlcikge1xuICAgICAgcmV0dXJuIHZhbHVlIDwgb3RoZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWFwYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICByZXN1bHQgPSBpc0FycmF5TGlrZShjb2xsZWN0aW9uKSA/IEFycmF5KGNvbGxlY3Rpb24ubGVuZ3RoKSA6IFtdO1xuXG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIHJlc3VsdFsrK2luZGV4XSA9IGl0ZXJhdGVlKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1hdGNoZXNgIHdoaWNoIGRvZXNuJ3QgY2xvbmUgYHNvdXJjZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgdG8gbWF0Y2guXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc3BlYyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWF0Y2hlcyhzb3VyY2UpIHtcbiAgICAgIHZhciBtYXRjaERhdGEgPSBnZXRNYXRjaERhdGEoc291cmNlKTtcbiAgICAgIGlmIChtYXRjaERhdGEubGVuZ3RoID09IDEgJiYgbWF0Y2hEYXRhWzBdWzJdKSB7XG4gICAgICAgIHJldHVybiBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZShtYXRjaERhdGFbMF1bMF0sIG1hdGNoRGF0YVswXVsxXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3QgPT09IHNvdXJjZSB8fCBiYXNlSXNNYXRjaChvYmplY3QsIHNvdXJjZSwgbWF0Y2hEYXRhKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc1Byb3BlcnR5YCB3aGljaCBkb2Vzbid0IGNsb25lIGBzcmNWYWx1ZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAgICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgdmFsdWUgdG8gbWF0Y2guXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc3BlYyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWF0Y2hlc1Byb3BlcnR5KHBhdGgsIHNyY1ZhbHVlKSB7XG4gICAgICBpZiAoaXNLZXkocGF0aCkgJiYgaXNTdHJpY3RDb21wYXJhYmxlKHNyY1ZhbHVlKSkge1xuICAgICAgICByZXR1cm4gbWF0Y2hlc1N0cmljdENvbXBhcmFibGUodG9LZXkocGF0aCksIHNyY1ZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgdmFyIG9ialZhbHVlID0gZ2V0KG9iamVjdCwgcGF0aCk7XG4gICAgICAgIHJldHVybiAob2JqVmFsdWUgPT09IHVuZGVmaW5lZCAmJiBvYmpWYWx1ZSA9PT0gc3JjVmFsdWUpXG4gICAgICAgICAgPyBoYXNJbihvYmplY3QsIHBhdGgpXG4gICAgICAgICAgOiBiYXNlSXNFcXVhbChzcmNWYWx1ZSwgb2JqVmFsdWUsIENPTVBBUkVfUEFSVElBTF9GTEFHIHwgQ09NUEFSRV9VTk9SREVSRURfRkxBRyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1lcmdlYCB3aXRob3V0IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNvdXJjZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzcmNJbmRleCBUaGUgaW5kZXggb2YgYHNvdXJjZWAuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgbWVyZ2VkIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSB2YWx1ZXMgYW5kIHRoZWlyIG1lcmdlZFxuICAgICAqICBjb3VudGVycGFydHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZU1lcmdlKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplciwgc3RhY2spIHtcbiAgICAgIGlmIChvYmplY3QgPT09IHNvdXJjZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBiYXNlRm9yKHNvdXJjZSwgZnVuY3Rpb24oc3JjVmFsdWUsIGtleSkge1xuICAgICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICAgICAgICBpZiAoaXNPYmplY3Qoc3JjVmFsdWUpKSB7XG4gICAgICAgICAgYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgYmFzZU1lcmdlLCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxuICAgICAgICAgICAgPyBjdXN0b21pemVyKHNhZmVHZXQob2JqZWN0LCBrZXkpLCBzcmNWYWx1ZSwgKGtleSArICcnKSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSBzcmNWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9LCBrZXlzSW4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZU1lcmdlYCBmb3IgYXJyYXlzIGFuZCBvYmplY3RzIHdoaWNoIHBlcmZvcm1zXG4gICAgICogZGVlcCBtZXJnZXMgYW5kIHRyYWNrcyB0cmF2ZXJzZWQgb2JqZWN0cyBlbmFibGluZyBvYmplY3RzIHdpdGggY2lyY3VsYXJcbiAgICAgKiByZWZlcmVuY2VzIHRvIGJlIG1lcmdlZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBtZXJnZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3JjSW5kZXggVGhlIGluZGV4IG9mIGBzb3VyY2VgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IG1lcmdlRnVuYyBUaGUgZnVuY3Rpb24gdG8gbWVyZ2UgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSB2YWx1ZXMgYW5kIHRoZWlyIG1lcmdlZFxuICAgICAqICBjb3VudGVycGFydHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgbWVyZ2VGdW5jLCBjdXN0b21pemVyLCBzdGFjaykge1xuICAgICAgdmFyIG9ialZhbHVlID0gc2FmZUdldChvYmplY3QsIGtleSksXG4gICAgICAgICAgc3JjVmFsdWUgPSBzYWZlR2V0KHNvdXJjZSwga2V5KSxcbiAgICAgICAgICBzdGFja2VkID0gc3RhY2suZ2V0KHNyY1ZhbHVlKTtcblxuICAgICAgaWYgKHN0YWNrZWQpIHtcbiAgICAgICAgYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgc3RhY2tlZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXJcbiAgICAgICAgPyBjdXN0b21pemVyKG9ialZhbHVlLCBzcmNWYWx1ZSwgKGtleSArICcnKSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgdmFyIGlzQ29tbW9uID0gbmV3VmFsdWUgPT09IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKGlzQ29tbW9uKSB7XG4gICAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkoc3JjVmFsdWUpLFxuICAgICAgICAgICAgaXNCdWZmID0gIWlzQXJyICYmIGlzQnVmZmVyKHNyY1ZhbHVlKSxcbiAgICAgICAgICAgIGlzVHlwZWQgPSAhaXNBcnIgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkoc3JjVmFsdWUpO1xuXG4gICAgICAgIG5ld1ZhbHVlID0gc3JjVmFsdWU7XG4gICAgICAgIGlmIChpc0FyciB8fCBpc0J1ZmYgfHwgaXNUeXBlZCkge1xuICAgICAgICAgIGlmIChpc0FycmF5KG9ialZhbHVlKSkge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSBvYmpWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSBpZiAoaXNBcnJheUxpa2VPYmplY3Qob2JqVmFsdWUpKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IGNvcHlBcnJheShvYmpWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2UgaWYgKGlzQnVmZikge1xuICAgICAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gY2xvbmVCdWZmZXIoc3JjVmFsdWUsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIGlmIChpc1R5cGVkKSB7XG4gICAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICAgICAgbmV3VmFsdWUgPSBjbG9uZVR5cGVkQXJyYXkoc3JjVmFsdWUsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gW107XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzUGxhaW5PYmplY3Qoc3JjVmFsdWUpIHx8IGlzQXJndW1lbnRzKHNyY1ZhbHVlKSkge1xuICAgICAgICAgIG5ld1ZhbHVlID0gb2JqVmFsdWU7XG4gICAgICAgICAgaWYgKGlzQXJndW1lbnRzKG9ialZhbHVlKSkge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSB0b1BsYWluT2JqZWN0KG9ialZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSBpZiAoIWlzT2JqZWN0KG9ialZhbHVlKSB8fCBpc0Z1bmN0aW9uKG9ialZhbHVlKSkge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSBpbml0Q2xvbmVPYmplY3Qoc3JjVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXNDb21tb24pIHtcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgbWVyZ2Ugb2JqZWN0cyBhbmQgYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgIHN0YWNrLnNldChzcmNWYWx1ZSwgbmV3VmFsdWUpO1xuICAgICAgICBtZXJnZUZ1bmMobmV3VmFsdWUsIHNyY1ZhbHVlLCBzcmNJbmRleCwgY3VzdG9taXplciwgc3RhY2spO1xuICAgICAgICBzdGFja1snZGVsZXRlJ10oc3JjVmFsdWUpO1xuICAgICAgfVxuICAgICAgYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm50aGAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIGluZGV4IG9mIHRoZSBlbGVtZW50IHRvIHJldHVybi5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbnRoIGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTnRoKGFycmF5LCBuKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbiArPSBuIDwgMCA/IGxlbmd0aCA6IDA7XG4gICAgICByZXR1cm4gaXNJbmRleChuLCBsZW5ndGgpID8gYXJyYXlbbl0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ub3JkZXJCeWAgd2l0aG91dCBwYXJhbSBndWFyZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9uW118T2JqZWN0W118c3RyaW5nW119IGl0ZXJhdGVlcyBUaGUgaXRlcmF0ZWVzIHRvIHNvcnQgYnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gb3JkZXJzIFRoZSBzb3J0IG9yZGVycyBvZiBgaXRlcmF0ZWVzYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzb3J0ZWQgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZU9yZGVyQnkoY29sbGVjdGlvbiwgaXRlcmF0ZWVzLCBvcmRlcnMpIHtcbiAgICAgIGlmIChpdGVyYXRlZXMubGVuZ3RoKSB7XG4gICAgICAgIGl0ZXJhdGVlcyA9IGFycmF5TWFwKGl0ZXJhdGVlcywgZnVuY3Rpb24oaXRlcmF0ZWUpIHtcbiAgICAgICAgICBpZiAoaXNBcnJheShpdGVyYXRlZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgICAgICByZXR1cm4gYmFzZUdldCh2YWx1ZSwgaXRlcmF0ZWUubGVuZ3RoID09PSAxID8gaXRlcmF0ZWVbMF0gOiBpdGVyYXRlZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpdGVyYXRlZTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVyYXRlZXMgPSBbaWRlbnRpdHldO1xuICAgICAgfVxuXG4gICAgICB2YXIgaW5kZXggPSAtMTtcbiAgICAgIGl0ZXJhdGVlcyA9IGFycmF5TWFwKGl0ZXJhdGVlcywgYmFzZVVuYXJ5KGdldEl0ZXJhdGVlKCkpKTtcblxuICAgICAgdmFyIHJlc3VsdCA9IGJhc2VNYXAoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGtleSwgY29sbGVjdGlvbikge1xuICAgICAgICB2YXIgY3JpdGVyaWEgPSBhcnJheU1hcChpdGVyYXRlZXMsIGZ1bmN0aW9uKGl0ZXJhdGVlKSB7XG4gICAgICAgICAgcmV0dXJuIGl0ZXJhdGVlKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7ICdjcml0ZXJpYSc6IGNyaXRlcmlhLCAnaW5kZXgnOiArK2luZGV4LCAndmFsdWUnOiB2YWx1ZSB9O1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBiYXNlU29ydEJ5KHJlc3VsdCwgZnVuY3Rpb24ob2JqZWN0LCBvdGhlcikge1xuICAgICAgICByZXR1cm4gY29tcGFyZU11bHRpcGxlKG9iamVjdCwgb3RoZXIsIG9yZGVycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5waWNrYCB3aXRob3V0IHN1cHBvcnQgZm9yIGluZGl2aWR1YWxcbiAgICAgKiBwcm9wZXJ0eSBpZGVudGlmaWVycy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRocyBUaGUgcHJvcGVydHkgcGF0aHMgdG8gcGljay5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VQaWNrKG9iamVjdCwgcGF0aHMpIHtcbiAgICAgIHJldHVybiBiYXNlUGlja0J5KG9iamVjdCwgcGF0aHMsIGZ1bmN0aW9uKHZhbHVlLCBwYXRoKSB7XG4gICAgICAgIHJldHVybiBoYXNJbihvYmplY3QsIHBhdGgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgIGBfLnBpY2tCeWAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nW119IHBhdGhzIFRoZSBwcm9wZXJ0eSBwYXRocyB0byBwaWNrLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgcHJvcGVydHkuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUGlja0J5KG9iamVjdCwgcGF0aHMsIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcGF0aHMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IHt9O1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgcGF0aCA9IHBhdGhzW2luZGV4XSxcbiAgICAgICAgICAgIHZhbHVlID0gYmFzZUdldChvYmplY3QsIHBhdGgpO1xuXG4gICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIHBhdGgpKSB7XG4gICAgICAgICAgYmFzZVNldChyZXN1bHQsIGNhc3RQYXRoKHBhdGgsIG9iamVjdCksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VQcm9wZXJ0eWAgd2hpY2ggc3VwcG9ydHMgZGVlcCBwYXRocy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUHJvcGVydHlEZWVwKHBhdGgpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VHZXQob2JqZWN0LCBwYXRoKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHVsbEFsbEJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlXG4gICAgICogc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byByZW1vdmUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUHVsbEFsbChhcnJheSwgdmFsdWVzLCBpdGVyYXRlZSwgY29tcGFyYXRvcikge1xuICAgICAgdmFyIGluZGV4T2YgPSBjb21wYXJhdG9yID8gYmFzZUluZGV4T2ZXaXRoIDogYmFzZUluZGV4T2YsXG4gICAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSB2YWx1ZXMubGVuZ3RoLFxuICAgICAgICAgIHNlZW4gPSBhcnJheTtcblxuICAgICAgaWYgKGFycmF5ID09PSB2YWx1ZXMpIHtcbiAgICAgICAgdmFsdWVzID0gY29weUFycmF5KHZhbHVlcyk7XG4gICAgICB9XG4gICAgICBpZiAoaXRlcmF0ZWUpIHtcbiAgICAgICAgc2VlbiA9IGFycmF5TWFwKGFycmF5LCBiYXNlVW5hcnkoaXRlcmF0ZWUpKTtcbiAgICAgIH1cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBmcm9tSW5kZXggPSAwLFxuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZXNbaW5kZXhdLFxuICAgICAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZSA/IGl0ZXJhdGVlKHZhbHVlKSA6IHZhbHVlO1xuXG4gICAgICAgIHdoaWxlICgoZnJvbUluZGV4ID0gaW5kZXhPZihzZWVuLCBjb21wdXRlZCwgZnJvbUluZGV4LCBjb21wYXJhdG9yKSkgPiAtMSkge1xuICAgICAgICAgIGlmIChzZWVuICE9PSBhcnJheSkge1xuICAgICAgICAgICAgc3BsaWNlLmNhbGwoc2VlbiwgZnJvbUluZGV4LCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3BsaWNlLmNhbGwoYXJyYXksIGZyb21JbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5wdWxsQXRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaW5kaXZpZHVhbFxuICAgICAqIGluZGV4ZXMgb3IgY2FwdHVyaW5nIHRoZSByZW1vdmVkIGVsZW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyW119IGluZGV4ZXMgVGhlIGluZGV4ZXMgb2YgZWxlbWVudHMgdG8gcmVtb3ZlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VQdWxsQXQoYXJyYXksIGluZGV4ZXMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA/IGluZGV4ZXMubGVuZ3RoIDogMCxcbiAgICAgICAgICBsYXN0SW5kZXggPSBsZW5ndGggLSAxO1xuXG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgdmFyIGluZGV4ID0gaW5kZXhlc1tsZW5ndGhdO1xuICAgICAgICBpZiAobGVuZ3RoID09IGxhc3RJbmRleCB8fCBpbmRleCAhPT0gcHJldmlvdXMpIHtcbiAgICAgICAgICB2YXIgcHJldmlvdXMgPSBpbmRleDtcbiAgICAgICAgICBpZiAoaXNJbmRleChpbmRleCkpIHtcbiAgICAgICAgICAgIHNwbGljZS5jYWxsKGFycmF5LCBpbmRleCwgMSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJhc2VVbnNldChhcnJheSwgaW5kZXgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJhbmRvbWAgd2l0aG91dCBzdXBwb3J0IGZvciByZXR1cm5pbmdcbiAgICAgKiBmbG9hdGluZy1wb2ludCBudW1iZXJzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbG93ZXIgVGhlIGxvd2VyIGJvdW5kLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1cHBlciBUaGUgdXBwZXIgYm91bmQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgcmFuZG9tIG51bWJlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUmFuZG9tKGxvd2VyLCB1cHBlcikge1xuICAgICAgcmV0dXJuIGxvd2VyICsgbmF0aXZlRmxvb3IobmF0aXZlUmFuZG9tKCkgKiAodXBwZXIgLSBsb3dlciArIDEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yYW5nZWAgYW5kIGBfLnJhbmdlUmlnaHRgIHdoaWNoIGRvZXNuJ3RcbiAgICAgKiBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kIFRoZSBlbmQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGVwIFRoZSB2YWx1ZSB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IGJ5LlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcmFuZ2Ugb2YgbnVtYmVycy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlUmFuZ2Uoc3RhcnQsIGVuZCwgc3RlcCwgZnJvbVJpZ2h0KSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBuYXRpdmVNYXgobmF0aXZlQ2VpbCgoZW5kIC0gc3RhcnQpIC8gKHN0ZXAgfHwgMSkpLCAwKSxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgcmVzdWx0W2Zyb21SaWdodCA/IGxlbmd0aCA6ICsraW5kZXhdID0gc3RhcnQ7XG4gICAgICAgIHN0YXJ0ICs9IHN0ZXA7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJlcGVhdGAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gcmVwZWF0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gcmVwZWF0IHRoZSBzdHJpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmVwZWF0ZWQgc3RyaW5nLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VSZXBlYXQoc3RyaW5nLCBuKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gJyc7XG4gICAgICBpZiAoIXN0cmluZyB8fCBuIDwgMSB8fCBuID4gTUFYX1NBRkVfSU5URUdFUikge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgLy8gTGV2ZXJhZ2UgdGhlIGV4cG9uZW50aWF0aW9uIGJ5IHNxdWFyaW5nIGFsZ29yaXRobSBmb3IgYSBmYXN0ZXIgcmVwZWF0LlxuICAgICAgLy8gU2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0V4cG9uZW50aWF0aW9uX2J5X3NxdWFyaW5nIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICBkbyB7XG4gICAgICAgIGlmIChuICUgMikge1xuICAgICAgICAgIHJlc3VsdCArPSBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgbiA9IG5hdGl2ZUZsb29yKG4gLyAyKTtcbiAgICAgICAgaWYgKG4pIHtcbiAgICAgICAgICBzdHJpbmcgKz0gc3RyaW5nO1xuICAgICAgICB9XG4gICAgICB9IHdoaWxlIChuKTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yZXN0YCB3aGljaCBkb2Vzbid0IHZhbGlkYXRlIG9yIGNvZXJjZSBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD1mdW5jLmxlbmd0aC0xXSBUaGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIHJlc3QgcGFyYW1ldGVyLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VSZXN0KGZ1bmMsIHN0YXJ0KSB7XG4gICAgICByZXR1cm4gc2V0VG9TdHJpbmcob3ZlclJlc3QoZnVuYywgc3RhcnQsIGlkZW50aXR5KSwgZnVuYyArICcnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zYW1wbGVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzYW1wbGUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJhbmRvbSBlbGVtZW50LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTYW1wbGUoY29sbGVjdGlvbikge1xuICAgICAgcmV0dXJuIGFycmF5U2FtcGxlKHZhbHVlcyhjb2xsZWN0aW9uKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc2FtcGxlU2l6ZWAgd2l0aG91dCBwYXJhbSBndWFyZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIHNhbXBsZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNhbXBsZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHJhbmRvbSBlbGVtZW50cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU2FtcGxlU2l6ZShjb2xsZWN0aW9uLCBuKSB7XG4gICAgICB2YXIgYXJyYXkgPSB2YWx1ZXMoY29sbGVjdGlvbik7XG4gICAgICByZXR1cm4gc2h1ZmZsZVNlbGYoYXJyYXksIGJhc2VDbGFtcChuLCAwLCBhcnJheS5sZW5ndGgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zZXRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXQuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIHBhdGggY3JlYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU2V0KG9iamVjdCwgcGF0aCwgdmFsdWUsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgfVxuICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoLFxuICAgICAgICAgIGxhc3RJbmRleCA9IGxlbmd0aCAtIDEsXG4gICAgICAgICAgbmVzdGVkID0gb2JqZWN0O1xuXG4gICAgICB3aGlsZSAobmVzdGVkICE9IG51bGwgJiYgKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gdG9LZXkocGF0aFtpbmRleF0pLFxuICAgICAgICAgICAgbmV3VmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICBpZiAoa2V5ID09PSAnX19wcm90b19fJyB8fCBrZXkgPT09ICdjb25zdHJ1Y3RvcicgfHwga2V5ID09PSAncHJvdG90eXBlJykge1xuICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW5kZXggIT0gbGFzdEluZGV4KSB7XG4gICAgICAgICAgdmFyIG9ialZhbHVlID0gbmVzdGVkW2tleV07XG4gICAgICAgICAgbmV3VmFsdWUgPSBjdXN0b21pemVyID8gY3VzdG9taXplcihvYmpWYWx1ZSwga2V5LCBuZXN0ZWQpIDogdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IGlzT2JqZWN0KG9ialZhbHVlKVxuICAgICAgICAgICAgICA/IG9ialZhbHVlXG4gICAgICAgICAgICAgIDogKGlzSW5kZXgocGF0aFtpbmRleCArIDFdKSA/IFtdIDoge30pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhc3NpZ25WYWx1ZShuZXN0ZWQsIGtleSwgbmV3VmFsdWUpO1xuICAgICAgICBuZXN0ZWQgPSBuZXN0ZWRba2V5XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHNldERhdGFgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaG90IGxvb3Agc2hvcnRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFzc29jaWF0ZSBtZXRhZGF0YSB3aXRoLlxuICAgICAqIEBwYXJhbSB7Kn0gZGF0YSBUaGUgbWV0YWRhdGEuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAgICAgKi9cbiAgICB2YXIgYmFzZVNldERhdGEgPSAhbWV0YU1hcCA/IGlkZW50aXR5IDogZnVuY3Rpb24oZnVuYywgZGF0YSkge1xuICAgICAgbWV0YU1hcC5zZXQoZnVuYywgZGF0YSk7XG4gICAgICByZXR1cm4gZnVuYztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHNldFRvU3RyaW5nYCB3aXRob3V0IHN1cHBvcnQgZm9yIGhvdCBsb29wIHNob3J0aW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICAgICAqL1xuICAgIHZhciBiYXNlU2V0VG9TdHJpbmcgPSAhZGVmaW5lUHJvcGVydHkgPyBpZGVudGl0eSA6IGZ1bmN0aW9uKGZ1bmMsIHN0cmluZykge1xuICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5KGZ1bmMsICd0b1N0cmluZycsIHtcbiAgICAgICAgJ2NvbmZpZ3VyYWJsZSc6IHRydWUsXG4gICAgICAgICdlbnVtZXJhYmxlJzogZmFsc2UsXG4gICAgICAgICd2YWx1ZSc6IGNvbnN0YW50KHN0cmluZyksXG4gICAgICAgICd3cml0YWJsZSc6IHRydWVcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zaHVmZmxlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2h1ZmZsZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzaHVmZmxlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU2h1ZmZsZShjb2xsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gc2h1ZmZsZVNlbGYodmFsdWVzKGNvbGxlY3Rpb24pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zbGljZWAgd2l0aG91dCBhbiBpdGVyYXRlZSBjYWxsIGd1YXJkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2xpY2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmQ9YXJyYXkubGVuZ3RoXSBUaGUgZW5kIHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgaWYgKHN0YXJ0IDwgMCkge1xuICAgICAgICBzdGFydCA9IC1zdGFydCA+IGxlbmd0aCA/IDAgOiAobGVuZ3RoICsgc3RhcnQpO1xuICAgICAgfVxuICAgICAgZW5kID0gZW5kID4gbGVuZ3RoID8gbGVuZ3RoIDogZW5kO1xuICAgICAgaWYgKGVuZCA8IDApIHtcbiAgICAgICAgZW5kICs9IGxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGxlbmd0aCA9IHN0YXJ0ID4gZW5kID8gMCA6ICgoZW5kIC0gc3RhcnQpID4+PiAwKTtcbiAgICAgIHN0YXJ0ID4+Pj0gMDtcblxuICAgICAgdmFyIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICByZXN1bHRbaW5kZXhdID0gYXJyYXlbaW5kZXggKyBzdGFydF07XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvbWVgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbnkgZWxlbWVudCBwYXNzZXMgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTb21lKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIHJlc3VsdDtcblxuICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIHJlc3VsdCA9IHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pO1xuICAgICAgICByZXR1cm4gIXJlc3VsdDtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuICEhcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvcnRlZEluZGV4YCBhbmQgYF8uc29ydGVkTGFzdEluZGV4YCB3aGljaFxuICAgICAqIHBlcmZvcm1zIGEgYmluYXJ5IHNlYXJjaCBvZiBgYXJyYXlgIHRvIGRldGVybWluZSB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYFxuICAgICAqIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIGBhcnJheWAgaW4gb3JkZXIgdG8gbWFpbnRhaW4gaXRzIHNvcnQgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXRIaWdoZXN0XSBTcGVjaWZ5IHJldHVybmluZyB0aGUgaGlnaGVzdCBxdWFsaWZpZWQgaW5kZXguXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgKiAgaW50byBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTb3J0ZWRJbmRleChhcnJheSwgdmFsdWUsIHJldEhpZ2hlc3QpIHtcbiAgICAgIHZhciBsb3cgPSAwLFxuICAgICAgICAgIGhpZ2ggPSBhcnJheSA9PSBudWxsID8gbG93IDogYXJyYXkubGVuZ3RoO1xuXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmIHZhbHVlID09PSB2YWx1ZSAmJiBoaWdoIDw9IEhBTEZfTUFYX0FSUkFZX0xFTkdUSCkge1xuICAgICAgICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgICAgICAgIHZhciBtaWQgPSAobG93ICsgaGlnaCkgPj4+IDEsXG4gICAgICAgICAgICAgIGNvbXB1dGVkID0gYXJyYXlbbWlkXTtcblxuICAgICAgICAgIGlmIChjb21wdXRlZCAhPT0gbnVsbCAmJiAhaXNTeW1ib2woY29tcHV0ZWQpICYmXG4gICAgICAgICAgICAgIChyZXRIaWdoZXN0ID8gKGNvbXB1dGVkIDw9IHZhbHVlKSA6IChjb21wdXRlZCA8IHZhbHVlKSkpIHtcbiAgICAgICAgICAgIGxvdyA9IG1pZCArIDE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhpZ2ggPSBtaWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoaWdoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VTb3J0ZWRJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaWRlbnRpdHksIHJldEhpZ2hlc3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvcnRlZEluZGV4QnlgIGFuZCBgXy5zb3J0ZWRMYXN0SW5kZXhCeWBcbiAgICAgKiB3aGljaCBpbnZva2VzIGBpdGVyYXRlZWAgZm9yIGB2YWx1ZWAgYW5kIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgIHRvIGNvbXB1dGVcbiAgICAgKiB0aGVpciBzb3J0IHJhbmtpbmcuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OyAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbcmV0SGlnaGVzdF0gU3BlY2lmeSByZXR1cm5pbmcgdGhlIGhpZ2hlc3QgcXVhbGlmaWVkIGluZGV4LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICogIGludG8gYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU29ydGVkSW5kZXhCeShhcnJheSwgdmFsdWUsIGl0ZXJhdGVlLCByZXRIaWdoZXN0KSB7XG4gICAgICB2YXIgbG93ID0gMCxcbiAgICAgICAgICBoaWdoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoaGlnaCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cblxuICAgICAgdmFsdWUgPSBpdGVyYXRlZSh2YWx1ZSk7XG4gICAgICB2YXIgdmFsSXNOYU4gPSB2YWx1ZSAhPT0gdmFsdWUsXG4gICAgICAgICAgdmFsSXNOdWxsID0gdmFsdWUgPT09IG51bGwsXG4gICAgICAgICAgdmFsSXNTeW1ib2wgPSBpc1N5bWJvbCh2YWx1ZSksXG4gICAgICAgICAgdmFsSXNVbmRlZmluZWQgPSB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuXG4gICAgICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgICAgICB2YXIgbWlkID0gbmF0aXZlRmxvb3IoKGxvdyArIGhpZ2gpIC8gMiksXG4gICAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlKGFycmF5W21pZF0pLFxuICAgICAgICAgICAgb3RoSXNEZWZpbmVkID0gY29tcHV0ZWQgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG90aElzTnVsbCA9IGNvbXB1dGVkID09PSBudWxsLFxuICAgICAgICAgICAgb3RoSXNSZWZsZXhpdmUgPSBjb21wdXRlZCA9PT0gY29tcHV0ZWQsXG4gICAgICAgICAgICBvdGhJc1N5bWJvbCA9IGlzU3ltYm9sKGNvbXB1dGVkKTtcblxuICAgICAgICBpZiAodmFsSXNOYU4pIHtcbiAgICAgICAgICB2YXIgc2V0TG93ID0gcmV0SGlnaGVzdCB8fCBvdGhJc1JlZmxleGl2ZTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWxJc1VuZGVmaW5lZCkge1xuICAgICAgICAgIHNldExvdyA9IG90aElzUmVmbGV4aXZlICYmIChyZXRIaWdoZXN0IHx8IG90aElzRGVmaW5lZCk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsSXNOdWxsKSB7XG4gICAgICAgICAgc2V0TG93ID0gb3RoSXNSZWZsZXhpdmUgJiYgb3RoSXNEZWZpbmVkICYmIChyZXRIaWdoZXN0IHx8ICFvdGhJc051bGwpO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbElzU3ltYm9sKSB7XG4gICAgICAgICAgc2V0TG93ID0gb3RoSXNSZWZsZXhpdmUgJiYgb3RoSXNEZWZpbmVkICYmICFvdGhJc051bGwgJiYgKHJldEhpZ2hlc3QgfHwgIW90aElzU3ltYm9sKTtcbiAgICAgICAgfSBlbHNlIGlmIChvdGhJc051bGwgfHwgb3RoSXNTeW1ib2wpIHtcbiAgICAgICAgICBzZXRMb3cgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRMb3cgPSByZXRIaWdoZXN0ID8gKGNvbXB1dGVkIDw9IHZhbHVlKSA6IChjb21wdXRlZCA8IHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2V0TG93KSB7XG4gICAgICAgICAgbG93ID0gbWlkICsgMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoaWdoID0gbWlkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmF0aXZlTWluKGhpZ2gsIE1BWF9BUlJBWV9JTkRFWCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc29ydGVkVW5pcWAgYW5kIGBfLnNvcnRlZFVuaXFCeWAgd2l0aG91dFxuICAgICAqIHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVNvcnRlZFVuaXEoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgcmVzSW5kZXggPSAwLFxuICAgICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlID8gaXRlcmF0ZWUodmFsdWUpIDogdmFsdWU7XG5cbiAgICAgICAgaWYgKCFpbmRleCB8fCAhZXEoY29tcHV0ZWQsIHNlZW4pKSB7XG4gICAgICAgICAgdmFyIHNlZW4gPSBjb21wdXRlZDtcbiAgICAgICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSB2YWx1ZSA9PT0gMCA/IDAgOiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50b051bWJlcmAgd2hpY2ggZG9lc24ndCBlbnN1cmUgY29ycmVjdFxuICAgICAqIGNvbnZlcnNpb25zIG9mIGJpbmFyeSwgaGV4YWRlY2ltYWwsIG9yIG9jdGFsIHN0cmluZyB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VUb051bWJlcih2YWx1ZSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJykge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBOQU47XG4gICAgICB9XG4gICAgICByZXR1cm4gK3ZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRvU3RyaW5nYCB3aGljaCBkb2Vzbid0IGNvbnZlcnQgbnVsbGlzaFxuICAgICAqIHZhbHVlcyB0byBlbXB0eSBzdHJpbmdzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0cmluZy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlVG9TdHJpbmcodmFsdWUpIHtcbiAgICAgIC8vIEV4aXQgZWFybHkgZm9yIHN0cmluZ3MgdG8gYXZvaWQgYSBwZXJmb3JtYW5jZSBoaXQgaW4gc29tZSBlbnZpcm9ubWVudHMuXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBjb252ZXJ0IHZhbHVlcyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgICAgICByZXR1cm4gYXJyYXlNYXAodmFsdWUsIGJhc2VUb1N0cmluZykgKyAnJztcbiAgICAgIH1cbiAgICAgIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHN5bWJvbFRvU3RyaW5nID8gc3ltYm9sVG9TdHJpbmcuY2FsbCh2YWx1ZSkgOiAnJztcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSAodmFsdWUgKyAnJyk7XG4gICAgICByZXR1cm4gKHJlc3VsdCA9PSAnMCcgJiYgKDEgLyB2YWx1ZSkgPT0gLUlORklOSVRZKSA/ICctMCcgOiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udW5pcUJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVVuaXEoYXJyYXksIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBpbmNsdWRlcyA9IGFycmF5SW5jbHVkZXMsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIGlzQ29tbW9uID0gdHJ1ZSxcbiAgICAgICAgICByZXN1bHQgPSBbXSxcbiAgICAgICAgICBzZWVuID0gcmVzdWx0O1xuXG4gICAgICBpZiAoY29tcGFyYXRvcikge1xuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICBpbmNsdWRlcyA9IGFycmF5SW5jbHVkZXNXaXRoO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAobGVuZ3RoID49IExBUkdFX0FSUkFZX1NJWkUpIHtcbiAgICAgICAgdmFyIHNldCA9IGl0ZXJhdGVlID8gbnVsbCA6IGNyZWF0ZVNldChhcnJheSk7XG4gICAgICAgIGlmIChzZXQpIHtcbiAgICAgICAgICByZXR1cm4gc2V0VG9BcnJheShzZXQpO1xuICAgICAgICB9XG4gICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgIGluY2x1ZGVzID0gY2FjaGVIYXM7XG4gICAgICAgIHNlZW4gPSBuZXcgU2V0Q2FjaGU7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgc2VlbiA9IGl0ZXJhdGVlID8gW10gOiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBvdXRlcjpcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSkgOiB2YWx1ZTtcblxuICAgICAgICB2YWx1ZSA9IChjb21wYXJhdG9yIHx8IHZhbHVlICE9PSAwKSA/IHZhbHVlIDogMDtcbiAgICAgICAgaWYgKGlzQ29tbW9uICYmIGNvbXB1dGVkID09PSBjb21wdXRlZCkge1xuICAgICAgICAgIHZhciBzZWVuSW5kZXggPSBzZWVuLmxlbmd0aDtcbiAgICAgICAgICB3aGlsZSAoc2VlbkluZGV4LS0pIHtcbiAgICAgICAgICAgIGlmIChzZWVuW3NlZW5JbmRleF0gPT09IGNvbXB1dGVkKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXRlcmF0ZWUpIHtcbiAgICAgICAgICAgIHNlZW4ucHVzaChjb21wdXRlZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghaW5jbHVkZXMoc2VlbiwgY29tcHV0ZWQsIGNvbXBhcmF0b3IpKSB7XG4gICAgICAgICAgaWYgKHNlZW4gIT09IHJlc3VsdCkge1xuICAgICAgICAgICAgc2Vlbi5wdXNoKGNvbXB1dGVkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuc2V0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcHJvcGVydHkgcGF0aCB0byB1bnNldC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHByb3BlcnR5IGlzIGRlbGV0ZWQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlVW5zZXQob2JqZWN0LCBwYXRoKSB7XG4gICAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcbiAgICAgIG9iamVjdCA9IHBhcmVudChvYmplY3QsIHBhdGgpO1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsIHx8IGRlbGV0ZSBvYmplY3RbdG9LZXkobGFzdChwYXRoKSldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVwZGF0ZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHVwZGF0ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB1cGRhdGVyIFRoZSBmdW5jdGlvbiB0byBwcm9kdWNlIHRoZSB1cGRhdGVkIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIHBhdGggY3JlYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlVXBkYXRlKG9iamVjdCwgcGF0aCwgdXBkYXRlciwgY3VzdG9taXplcikge1xuICAgICAgcmV0dXJuIGJhc2VTZXQob2JqZWN0LCBwYXRoLCB1cGRhdGVyKGJhc2VHZXQob2JqZWN0LCBwYXRoKSksIGN1c3RvbWl6ZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5kcm9wV2hpbGVgIGFuZCBgXy50YWtlV2hpbGVgXG4gICAgICogd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEcm9wXSBTcGVjaWZ5IGRyb3BwaW5nIGVsZW1lbnRzIGluc3RlYWQgb2YgdGFraW5nIHRoZW0uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VXaGlsZShhcnJheSwgcHJlZGljYXRlLCBpc0Ryb3AsIGZyb21SaWdodCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICBpbmRleCA9IGZyb21SaWdodCA/IGxlbmd0aCA6IC0xO1xuXG4gICAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSAmJlxuICAgICAgICBwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7fVxuXG4gICAgICByZXR1cm4gaXNEcm9wXG4gICAgICAgID8gYmFzZVNsaWNlKGFycmF5LCAoZnJvbVJpZ2h0ID8gMCA6IGluZGV4KSwgKGZyb21SaWdodCA/IGluZGV4ICsgMSA6IGxlbmd0aCkpXG4gICAgICAgIDogYmFzZVNsaWNlKGFycmF5LCAoZnJvbVJpZ2h0ID8gaW5kZXggKyAxIDogMCksIChmcm9tUmlnaHQgPyBsZW5ndGggOiBpbmRleCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGB3cmFwcGVyVmFsdWVgIHdoaWNoIHJldHVybnMgdGhlIHJlc3VsdCBvZlxuICAgICAqIHBlcmZvcm1pbmcgYSBzZXF1ZW5jZSBvZiBhY3Rpb25zIG9uIHRoZSB1bndyYXBwZWQgYHZhbHVlYCwgd2hlcmUgZWFjaFxuICAgICAqIHN1Y2Nlc3NpdmUgYWN0aW9uIGlzIHN1cHBsaWVkIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHByZXZpb3VzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB1bndyYXBwZWQgdmFsdWUuXG4gICAgICogQHBhcmFtIHtBcnJheX0gYWN0aW9ucyBBY3Rpb25zIHRvIHBlcmZvcm0gdG8gcmVzb2x2ZSB0aGUgdW53cmFwcGVkIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlV3JhcHBlclZhbHVlKHZhbHVlLCBhY3Rpb25zKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gdmFsdWU7XG4gICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgTGF6eVdyYXBwZXIpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnZhbHVlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXlSZWR1Y2UoYWN0aW9ucywgZnVuY3Rpb24ocmVzdWx0LCBhY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbi5mdW5jLmFwcGx5KGFjdGlvbi50aGlzQXJnLCBhcnJheVB1c2goW3Jlc3VsdF0sIGFjdGlvbi5hcmdzKSk7XG4gICAgICB9LCByZXN1bHQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy54b3JgLCB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcywgdGhhdCBhY2NlcHRzIGFuIGFycmF5IG9mIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheXMgVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgdmFsdWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VYb3IoYXJyYXlzLCBpdGVyYXRlZSwgY29tcGFyYXRvcikge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5cy5sZW5ndGg7XG4gICAgICBpZiAobGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZVVuaXEoYXJyYXlzWzBdKSA6IFtdO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGFycmF5ID0gYXJyYXlzW2luZGV4XSxcbiAgICAgICAgICAgIG90aEluZGV4ID0gLTE7XG5cbiAgICAgICAgd2hpbGUgKCsrb3RoSW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBpZiAob3RoSW5kZXggIT0gaW5kZXgpIHtcbiAgICAgICAgICAgIHJlc3VsdFtpbmRleF0gPSBiYXNlRGlmZmVyZW5jZShyZXN1bHRbaW5kZXhdIHx8IGFycmF5LCBhcnJheXNbb3RoSW5kZXhdLCBpdGVyYXRlZSwgY29tcGFyYXRvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZVVuaXEoYmFzZUZsYXR0ZW4ocmVzdWx0LCAxKSwgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy56aXBPYmplY3RgIHdoaWNoIGFzc2lnbnMgdmFsdWVzIHVzaW5nIGBhc3NpZ25GdW5jYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgcHJvcGVydHkgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGFzc2lnbkZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlWmlwT2JqZWN0KHByb3BzLCB2YWx1ZXMsIGFzc2lnbkZ1bmMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgICAgICB2YWxzTGVuZ3RoID0gdmFsdWVzLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSB7fTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gaW5kZXggPCB2YWxzTGVuZ3RoID8gdmFsdWVzW2luZGV4XSA6IHVuZGVmaW5lZDtcbiAgICAgICAgYXNzaWduRnVuYyhyZXN1bHQsIHByb3BzW2luZGV4XSwgdmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYXN0cyBgdmFsdWVgIHRvIGFuIGVtcHR5IGFycmF5IGlmIGl0J3Mgbm90IGFuIGFycmF5IGxpa2Ugb2JqZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9IFJldHVybnMgdGhlIGNhc3QgYXJyYXktbGlrZSBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2FzdEFycmF5TGlrZU9iamVjdCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlT2JqZWN0KHZhbHVlKSA/IHZhbHVlIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FzdHMgYHZhbHVlYCB0byBgaWRlbnRpdHlgIGlmIGl0J3Mgbm90IGEgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGNhc3QgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2FzdEZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdmdW5jdGlvbicgPyB2YWx1ZSA6IGlkZW50aXR5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhc3RzIGB2YWx1ZWAgdG8gYSBwYXRoIGFycmF5IGlmIGl0J3Mgbm90IG9uZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeSBrZXlzIG9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY2FzdCBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNhc3RQYXRoKHZhbHVlLCBvYmplY3QpIHtcbiAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNLZXkodmFsdWUsIG9iamVjdCkgPyBbdmFsdWVdIDogc3RyaW5nVG9QYXRoKHRvU3RyaW5nKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBgYmFzZVJlc3RgIGFsaWFzIHdoaWNoIGNhbiBiZSByZXBsYWNlZCB3aXRoIGBpZGVudGl0eWAgYnkgbW9kdWxlXG4gICAgICogcmVwbGFjZW1lbnQgcGx1Z2lucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHR5cGUge0Z1bmN0aW9ufVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICovXG4gICAgdmFyIGNhc3RSZXN0ID0gYmFzZVJlc3Q7XG5cbiAgICAvKipcbiAgICAgKiBDYXN0cyBgYXJyYXlgIHRvIGEgc2xpY2UgaWYgaXQncyBuZWVkZWQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydCBUaGUgc3RhcnQgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmQ9YXJyYXkubGVuZ3RoXSBUaGUgZW5kIHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY2FzdCBzbGljZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjYXN0U2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCA/IGxlbmd0aCA6IGVuZDtcbiAgICAgIHJldHVybiAoIXN0YXJ0ICYmIGVuZCA+PSBsZW5ndGgpID8gYXJyYXkgOiBiYXNlU2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc2ltcGxlIHdyYXBwZXIgYXJvdW5kIHRoZSBnbG9iYWwgW2BjbGVhclRpbWVvdXRgXShodHRwczovL21kbi5pby9jbGVhclRpbWVvdXQpLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcnxPYmplY3R9IGlkIFRoZSB0aW1lciBpZCBvciB0aW1lb3V0IG9iamVjdCBvZiB0aGUgdGltZXIgdG8gY2xlYXIuXG4gICAgICovXG4gICAgdmFyIGNsZWFyVGltZW91dCA9IGN0eENsZWFyVGltZW91dCB8fCBmdW5jdGlvbihpZCkge1xuICAgICAgcmV0dXJuIHJvb3QuY2xlYXJUaW1lb3V0KGlkKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mICBgYnVmZmVyYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtCdWZmZXJ9IGJ1ZmZlciBUaGUgYnVmZmVyIHRvIGNsb25lLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gICAgICogQHJldHVybnMge0J1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGJ1ZmZlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZUJ1ZmZlcihidWZmZXIsIGlzRGVlcCkge1xuICAgICAgaWYgKGlzRGVlcCkge1xuICAgICAgICByZXR1cm4gYnVmZmVyLnNsaWNlKCk7XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gYnVmZmVyLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBhbGxvY1Vuc2FmZSA/IGFsbG9jVW5zYWZlKGxlbmd0aCkgOiBuZXcgYnVmZmVyLmNvbnN0cnVjdG9yKGxlbmd0aCk7XG5cbiAgICAgIGJ1ZmZlci5jb3B5KHJlc3VsdCk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgYXJyYXlCdWZmZXJgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5QnVmZmVyfSBhcnJheUJ1ZmZlciBUaGUgYXJyYXkgYnVmZmVyIHRvIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHtBcnJheUJ1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGFycmF5IGJ1ZmZlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZUFycmF5QnVmZmVyKGFycmF5QnVmZmVyKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gbmV3IGFycmF5QnVmZmVyLmNvbnN0cnVjdG9yKGFycmF5QnVmZmVyLmJ5dGVMZW5ndGgpO1xuICAgICAgbmV3IFVpbnQ4QXJyYXkocmVzdWx0KS5zZXQobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIGBkYXRhVmlld2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhVmlldyBUaGUgZGF0YSB2aWV3IHRvIGNsb25lLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIGRhdGEgdmlldy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZURhdGFWaWV3KGRhdGFWaWV3LCBpc0RlZXApIHtcbiAgICAgIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKGRhdGFWaWV3LmJ1ZmZlcikgOiBkYXRhVmlldy5idWZmZXI7XG4gICAgICByZXR1cm4gbmV3IGRhdGFWaWV3LmNvbnN0cnVjdG9yKGJ1ZmZlciwgZGF0YVZpZXcuYnl0ZU9mZnNldCwgZGF0YVZpZXcuYnl0ZUxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIGByZWdleHBgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gcmVnZXhwIFRoZSByZWdleHAgdG8gY2xvbmUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHJlZ2V4cC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZVJlZ0V4cChyZWdleHApIHtcbiAgICAgIHZhciByZXN1bHQgPSBuZXcgcmVnZXhwLmNvbnN0cnVjdG9yKHJlZ2V4cC5zb3VyY2UsIHJlRmxhZ3MuZXhlYyhyZWdleHApKTtcbiAgICAgIHJlc3VsdC5sYXN0SW5kZXggPSByZWdleHAubGFzdEluZGV4O1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgdGhlIGBzeW1ib2xgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHN5bWJvbCBUaGUgc3ltYm9sIG9iamVjdCB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgc3ltYm9sIG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZVN5bWJvbChzeW1ib2wpIHtcbiAgICAgIHJldHVybiBzeW1ib2xWYWx1ZU9mID8gT2JqZWN0KHN5bWJvbFZhbHVlT2YuY2FsbChzeW1ib2wpKSA6IHt9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgdHlwZWRBcnJheWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSB0eXBlZEFycmF5IFRoZSB0eXBlZCBhcnJheSB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCB0eXBlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZVR5cGVkQXJyYXkodHlwZWRBcnJheSwgaXNEZWVwKSB7XG4gICAgICB2YXIgYnVmZmVyID0gaXNEZWVwID8gY2xvbmVBcnJheUJ1ZmZlcih0eXBlZEFycmF5LmJ1ZmZlcikgOiB0eXBlZEFycmF5LmJ1ZmZlcjtcbiAgICAgIHJldHVybiBuZXcgdHlwZWRBcnJheS5jb25zdHJ1Y3RvcihidWZmZXIsIHR5cGVkQXJyYXkuYnl0ZU9mZnNldCwgdHlwZWRBcnJheS5sZW5ndGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXBhcmVzIHZhbHVlcyB0byBzb3J0IHRoZW0gaW4gYXNjZW5kaW5nIG9yZGVyLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc29ydCBvcmRlciBpbmRpY2F0b3IgZm9yIGB2YWx1ZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29tcGFyZUFzY2VuZGluZyh2YWx1ZSwgb3RoZXIpIHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gb3RoZXIpIHtcbiAgICAgICAgdmFyIHZhbElzRGVmaW5lZCA9IHZhbHVlICE9PSB1bmRlZmluZWQsXG4gICAgICAgICAgICB2YWxJc051bGwgPSB2YWx1ZSA9PT0gbnVsbCxcbiAgICAgICAgICAgIHZhbElzUmVmbGV4aXZlID0gdmFsdWUgPT09IHZhbHVlLFxuICAgICAgICAgICAgdmFsSXNTeW1ib2wgPSBpc1N5bWJvbCh2YWx1ZSk7XG5cbiAgICAgICAgdmFyIG90aElzRGVmaW5lZCA9IG90aGVyICE9PSB1bmRlZmluZWQsXG4gICAgICAgICAgICBvdGhJc051bGwgPSBvdGhlciA9PT0gbnVsbCxcbiAgICAgICAgICAgIG90aElzUmVmbGV4aXZlID0gb3RoZXIgPT09IG90aGVyLFxuICAgICAgICAgICAgb3RoSXNTeW1ib2wgPSBpc1N5bWJvbChvdGhlcik7XG5cbiAgICAgICAgaWYgKCghb3RoSXNOdWxsICYmICFvdGhJc1N5bWJvbCAmJiAhdmFsSXNTeW1ib2wgJiYgdmFsdWUgPiBvdGhlcikgfHxcbiAgICAgICAgICAgICh2YWxJc1N5bWJvbCAmJiBvdGhJc0RlZmluZWQgJiYgb3RoSXNSZWZsZXhpdmUgJiYgIW90aElzTnVsbCAmJiAhb3RoSXNTeW1ib2wpIHx8XG4gICAgICAgICAgICAodmFsSXNOdWxsICYmIG90aElzRGVmaW5lZCAmJiBvdGhJc1JlZmxleGl2ZSkgfHxcbiAgICAgICAgICAgICghdmFsSXNEZWZpbmVkICYmIG90aElzUmVmbGV4aXZlKSB8fFxuICAgICAgICAgICAgIXZhbElzUmVmbGV4aXZlKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCghdmFsSXNOdWxsICYmICF2YWxJc1N5bWJvbCAmJiAhb3RoSXNTeW1ib2wgJiYgdmFsdWUgPCBvdGhlcikgfHxcbiAgICAgICAgICAgIChvdGhJc1N5bWJvbCAmJiB2YWxJc0RlZmluZWQgJiYgdmFsSXNSZWZsZXhpdmUgJiYgIXZhbElzTnVsbCAmJiAhdmFsSXNTeW1ib2wpIHx8XG4gICAgICAgICAgICAob3RoSXNOdWxsICYmIHZhbElzRGVmaW5lZCAmJiB2YWxJc1JlZmxleGl2ZSkgfHxcbiAgICAgICAgICAgICghb3RoSXNEZWZpbmVkICYmIHZhbElzUmVmbGV4aXZlKSB8fFxuICAgICAgICAgICAgIW90aElzUmVmbGV4aXZlKSB7XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIGJ5IGBfLm9yZGVyQnlgIHRvIGNvbXBhcmUgbXVsdGlwbGUgcHJvcGVydGllcyBvZiBhIHZhbHVlIHRvIGFub3RoZXJcbiAgICAgKiBhbmQgc3RhYmxlIHNvcnQgdGhlbS5cbiAgICAgKlxuICAgICAqIElmIGBvcmRlcnNgIGlzIHVuc3BlY2lmaWVkLCBhbGwgdmFsdWVzIGFyZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyLiBPdGhlcndpc2UsXG4gICAgICogc3BlY2lmeSBhbiBvcmRlciBvZiBcImRlc2NcIiBmb3IgZGVzY2VuZGluZyBvciBcImFzY1wiIGZvciBhc2NlbmRpbmcgc29ydCBvcmRlclxuICAgICAqIG9mIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbltdfHN0cmluZ1tdfSBvcmRlcnMgVGhlIG9yZGVyIHRvIHNvcnQgYnkgZm9yIGVhY2ggcHJvcGVydHkuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc29ydCBvcmRlciBpbmRpY2F0b3IgZm9yIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbXBhcmVNdWx0aXBsZShvYmplY3QsIG90aGVyLCBvcmRlcnMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIG9iakNyaXRlcmlhID0gb2JqZWN0LmNyaXRlcmlhLFxuICAgICAgICAgIG90aENyaXRlcmlhID0gb3RoZXIuY3JpdGVyaWEsXG4gICAgICAgICAgbGVuZ3RoID0gb2JqQ3JpdGVyaWEubGVuZ3RoLFxuICAgICAgICAgIG9yZGVyc0xlbmd0aCA9IG9yZGVycy5sZW5ndGg7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBjb21wYXJlQXNjZW5kaW5nKG9iakNyaXRlcmlhW2luZGV4XSwgb3RoQ3JpdGVyaWFbaW5kZXhdKTtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIGlmIChpbmRleCA+PSBvcmRlcnNMZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBvcmRlciA9IG9yZGVyc1tpbmRleF07XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdCAqIChvcmRlciA9PSAnZGVzYycgPyAtMSA6IDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBGaXhlcyBhbiBgQXJyYXkjc29ydGAgYnVnIGluIHRoZSBKUyBlbmdpbmUgZW1iZWRkZWQgaW4gQWRvYmUgYXBwbGljYXRpb25zXG4gICAgICAvLyB0aGF0IGNhdXNlcyBpdCwgdW5kZXIgY2VydGFpbiBjaXJjdW1zdGFuY2VzLCB0byBwcm92aWRlIHRoZSBzYW1lIHZhbHVlIGZvclxuICAgICAgLy8gYG9iamVjdGAgYW5kIGBvdGhlcmAuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vamFzaGtlbmFzL3VuZGVyc2NvcmUvcHVsbC8xMjQ3XG4gICAgICAvLyBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgLy9cbiAgICAgIC8vIFRoaXMgYWxzbyBlbnN1cmVzIGEgc3RhYmxlIHNvcnQgaW4gVjggYW5kIG90aGVyIGVuZ2luZXMuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9OTAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgIHJldHVybiBvYmplY3QuaW5kZXggLSBvdGhlci5pbmRleDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IHRoYXQgaXMgdGhlIGNvbXBvc2l0aW9uIG9mIHBhcnRpYWxseSBhcHBsaWVkIGFyZ3VtZW50cyxcbiAgICAgKiBwbGFjZWhvbGRlcnMsIGFuZCBwcm92aWRlZCBhcmd1bWVudHMgaW50byBhIHNpbmdsZSBhcnJheSBvZiBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFyZ3MgVGhlIHByb3ZpZGVkIGFyZ3VtZW50cy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYXJ0aWFscyBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQuXG4gICAgICogQHBhcmFtIHtBcnJheX0gaG9sZGVycyBUaGUgYHBhcnRpYWxzYCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICAgICAqIEBwYXJhbXMge2Jvb2xlYW59IFtpc0N1cnJpZWRdIFNwZWNpZnkgY29tcG9zaW5nIGZvciBhIGN1cnJpZWQgZnVuY3Rpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY29tcG9zZWQgYXJndW1lbnRzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzLCBpc0N1cnJpZWQpIHtcbiAgICAgIHZhciBhcmdzSW5kZXggPSAtMSxcbiAgICAgICAgICBhcmdzTGVuZ3RoID0gYXJncy5sZW5ndGgsXG4gICAgICAgICAgaG9sZGVyc0xlbmd0aCA9IGhvbGRlcnMubGVuZ3RoLFxuICAgICAgICAgIGxlZnRJbmRleCA9IC0xLFxuICAgICAgICAgIGxlZnRMZW5ndGggPSBwYXJ0aWFscy5sZW5ndGgsXG4gICAgICAgICAgcmFuZ2VMZW5ndGggPSBuYXRpdmVNYXgoYXJnc0xlbmd0aCAtIGhvbGRlcnNMZW5ndGgsIDApLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGxlZnRMZW5ndGggKyByYW5nZUxlbmd0aCksXG4gICAgICAgICAgaXNVbmN1cnJpZWQgPSAhaXNDdXJyaWVkO1xuXG4gICAgICB3aGlsZSAoKytsZWZ0SW5kZXggPCBsZWZ0TGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtsZWZ0SW5kZXhdID0gcGFydGlhbHNbbGVmdEluZGV4XTtcbiAgICAgIH1cbiAgICAgIHdoaWxlICgrK2FyZ3NJbmRleCA8IGhvbGRlcnNMZW5ndGgpIHtcbiAgICAgICAgaWYgKGlzVW5jdXJyaWVkIHx8IGFyZ3NJbmRleCA8IGFyZ3NMZW5ndGgpIHtcbiAgICAgICAgICByZXN1bHRbaG9sZGVyc1thcmdzSW5kZXhdXSA9IGFyZ3NbYXJnc0luZGV4XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgd2hpbGUgKHJhbmdlTGVuZ3RoLS0pIHtcbiAgICAgICAgcmVzdWx0W2xlZnRJbmRleCsrXSA9IGFyZ3NbYXJnc0luZGV4KytdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGNvbXBvc2VBcmdzYCBleGNlcHQgdGhhdCB0aGUgYXJndW1lbnRzIGNvbXBvc2l0aW9uXG4gICAgICogaXMgdGFpbG9yZWQgZm9yIGBfLnBhcnRpYWxSaWdodGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFyZ3MgVGhlIHByb3ZpZGVkIGFyZ3VtZW50cy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYXJ0aWFscyBUaGUgYXJndW1lbnRzIHRvIGFwcGVuZCB0byB0aG9zZSBwcm92aWRlZC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBob2xkZXJzIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gICAgICogQHBhcmFtcyB7Ym9vbGVhbn0gW2lzQ3VycmllZF0gU3BlY2lmeSBjb21wb3NpbmcgZm9yIGEgY3VycmllZCBmdW5jdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21wb3NlZCBhcmd1bWVudHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29tcG9zZUFyZ3NSaWdodChhcmdzLCBwYXJ0aWFscywgaG9sZGVycywgaXNDdXJyaWVkKSB7XG4gICAgICB2YXIgYXJnc0luZGV4ID0gLTEsXG4gICAgICAgICAgYXJnc0xlbmd0aCA9IGFyZ3MubGVuZ3RoLFxuICAgICAgICAgIGhvbGRlcnNJbmRleCA9IC0xLFxuICAgICAgICAgIGhvbGRlcnNMZW5ndGggPSBob2xkZXJzLmxlbmd0aCxcbiAgICAgICAgICByaWdodEluZGV4ID0gLTEsXG4gICAgICAgICAgcmlnaHRMZW5ndGggPSBwYXJ0aWFscy5sZW5ndGgsXG4gICAgICAgICAgcmFuZ2VMZW5ndGggPSBuYXRpdmVNYXgoYXJnc0xlbmd0aCAtIGhvbGRlcnNMZW5ndGgsIDApLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KHJhbmdlTGVuZ3RoICsgcmlnaHRMZW5ndGgpLFxuICAgICAgICAgIGlzVW5jdXJyaWVkID0gIWlzQ3VycmllZDtcblxuICAgICAgd2hpbGUgKCsrYXJnc0luZGV4IDwgcmFuZ2VMZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0W2FyZ3NJbmRleF0gPSBhcmdzW2FyZ3NJbmRleF07XG4gICAgICB9XG4gICAgICB2YXIgb2Zmc2V0ID0gYXJnc0luZGV4O1xuICAgICAgd2hpbGUgKCsrcmlnaHRJbmRleCA8IHJpZ2h0TGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtvZmZzZXQgKyByaWdodEluZGV4XSA9IHBhcnRpYWxzW3JpZ2h0SW5kZXhdO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCsraG9sZGVyc0luZGV4IDwgaG9sZGVyc0xlbmd0aCkge1xuICAgICAgICBpZiAoaXNVbmN1cnJpZWQgfHwgYXJnc0luZGV4IDwgYXJnc0xlbmd0aCkge1xuICAgICAgICAgIHJlc3VsdFtvZmZzZXQgKyBob2xkZXJzW2hvbGRlcnNJbmRleF1dID0gYXJnc1thcmdzSW5kZXgrK107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29waWVzIHRoZSB2YWx1ZXMgb2YgYHNvdXJjZWAgdG8gYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gc291cmNlIFRoZSBhcnJheSB0byBjb3B5IHZhbHVlcyBmcm9tLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFthcnJheT1bXV0gVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIHRvLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvcHlBcnJheShzb3VyY2UsIGFycmF5KSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBzb3VyY2UubGVuZ3RoO1xuXG4gICAgICBhcnJheSB8fCAoYXJyYXkgPSBBcnJheShsZW5ndGgpKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIGFycmF5W2luZGV4XSA9IHNvdXJjZVtpbmRleF07XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29waWVzIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgZnJvbS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMgdG8gY29weS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgdG8uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29waWVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvcHlPYmplY3Qoc291cmNlLCBwcm9wcywgb2JqZWN0LCBjdXN0b21pemVyKSB7XG4gICAgICB2YXIgaXNOZXcgPSAhb2JqZWN0O1xuICAgICAgb2JqZWN0IHx8IChvYmplY3QgPSB7fSk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcblxuICAgICAgICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyXG4gICAgICAgICAgPyBjdXN0b21pemVyKG9iamVjdFtrZXldLCBzb3VyY2Vba2V5XSwga2V5LCBvYmplY3QsIHNvdXJjZSlcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG5ld1ZhbHVlID0gc291cmNlW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzTmV3KSB7XG4gICAgICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgb3duIHN5bWJvbHMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgZnJvbS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgdG8uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb3B5U3ltYm9scyhzb3VyY2UsIG9iamVjdCkge1xuICAgICAgcmV0dXJuIGNvcHlPYmplY3Qoc291cmNlLCBnZXRTeW1ib2xzKHNvdXJjZSksIG9iamVjdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29waWVzIG93biBhbmQgaW5oZXJpdGVkIHN5bWJvbHMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgZnJvbS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgdG8uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb3B5U3ltYm9sc0luKHNvdXJjZSwgb2JqZWN0KSB7XG4gICAgICByZXR1cm4gY29weU9iamVjdChzb3VyY2UsIGdldFN5bWJvbHNJbihzb3VyY2UpLCBvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLmdyb3VwQnlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzZXR0ZXIgVGhlIGZ1bmN0aW9uIHRvIHNldCBhY2N1bXVsYXRvciB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2luaXRpYWxpemVyXSBUaGUgYWNjdW11bGF0b3Igb2JqZWN0IGluaXRpYWxpemVyLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFnZ3JlZ2F0b3IgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQWdncmVnYXRvcihzZXR0ZXIsIGluaXRpYWxpemVyKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlBZ2dyZWdhdG9yIDogYmFzZUFnZ3JlZ2F0b3IsXG4gICAgICAgICAgICBhY2N1bXVsYXRvciA9IGluaXRpYWxpemVyID8gaW5pdGlhbGl6ZXIoKSA6IHt9O1xuXG4gICAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIHNldHRlciwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpLCBhY2N1bXVsYXRvcik7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLmFzc2lnbmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGFzc2lnbmVyIFRoZSBmdW5jdGlvbiB0byBhc3NpZ24gdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFzc2lnbmVyIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUFzc2lnbmVyKGFzc2lnbmVyKSB7XG4gICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2VzKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgICAgbGVuZ3RoID0gc291cmNlcy5sZW5ndGgsXG4gICAgICAgICAgICBjdXN0b21pemVyID0gbGVuZ3RoID4gMSA/IHNvdXJjZXNbbGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBndWFyZCA9IGxlbmd0aCA+IDIgPyBzb3VyY2VzWzJdIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGN1c3RvbWl6ZXIgPSAoYXNzaWduZXIubGVuZ3RoID4gMyAmJiB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nKVxuICAgICAgICAgID8gKGxlbmd0aC0tLCBjdXN0b21pemVyKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzb3VyY2VzWzBdLCBzb3VyY2VzWzFdLCBndWFyZCkpIHtcbiAgICAgICAgICBjdXN0b21pemVyID0gbGVuZ3RoIDwgMyA/IHVuZGVmaW5lZCA6IGN1c3RvbWl6ZXI7XG4gICAgICAgICAgbGVuZ3RoID0gMTtcbiAgICAgICAgfVxuICAgICAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICB2YXIgc291cmNlID0gc291cmNlc1tpbmRleF07XG4gICAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgYXNzaWduZXIob2JqZWN0LCBzb3VyY2UsIGluZGV4LCBjdXN0b21pemVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgYmFzZUVhY2hgIG9yIGBiYXNlRWFjaFJpZ2h0YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZWFjaEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhIGNvbGxlY3Rpb24uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYmFzZSBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVCYXNlRWFjaChlYWNoRnVuYywgZnJvbVJpZ2h0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNBcnJheUxpa2UoY29sbGVjdGlvbikpIHtcbiAgICAgICAgICByZXR1cm4gZWFjaEZ1bmMoY29sbGVjdGlvbiwgaXRlcmF0ZWUpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBsZW5ndGggPSBjb2xsZWN0aW9uLmxlbmd0aCxcbiAgICAgICAgICAgIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTEsXG4gICAgICAgICAgICBpdGVyYWJsZSA9IE9iamVjdChjb2xsZWN0aW9uKTtcblxuICAgICAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgICAgIGlmIChpdGVyYXRlZShpdGVyYWJsZVtpbmRleF0sIGluZGV4LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBiYXNlIGZ1bmN0aW9uIGZvciBtZXRob2RzIGxpa2UgYF8uZm9ySW5gIGFuZCBgXy5mb3JPd25gLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBiYXNlIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUJhc2VGb3IoZnJvbVJpZ2h0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0LCBpdGVyYXRlZSwga2V5c0Z1bmMpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgICBpdGVyYWJsZSA9IE9iamVjdChvYmplY3QpLFxuICAgICAgICAgICAgcHJvcHMgPSBrZXlzRnVuYyhvYmplY3QpLFxuICAgICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gICAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICAgIHZhciBrZXkgPSBwcm9wc1tmcm9tUmlnaHQgPyBsZW5ndGggOiArK2luZGV4XTtcbiAgICAgICAgICBpZiAoaXRlcmF0ZWUoaXRlcmFibGVba2V5XSwga2V5LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIHRvIGludm9rZSBpdCB3aXRoIHRoZSBvcHRpb25hbCBgdGhpc2BcbiAgICAgKiBiaW5kaW5nIG9mIGB0aGlzQXJnYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVCaW5kKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcpIHtcbiAgICAgIHZhciBpc0JpbmQgPSBiaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcsXG4gICAgICAgICAgQ3RvciA9IGNyZWF0ZUN0b3IoZnVuYyk7XG5cbiAgICAgIGZ1bmN0aW9uIHdyYXBwZXIoKSB7XG4gICAgICAgIHZhciBmbiA9ICh0aGlzICYmIHRoaXMgIT09IHJvb3QgJiYgdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXIpID8gQ3RvciA6IGZ1bmM7XG4gICAgICAgIHJldHVybiBmbi5hcHBseShpc0JpbmQgPyB0aGlzQXJnIDogdGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB3cmFwcGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLmxvd2VyRmlyc3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kTmFtZSBUaGUgbmFtZSBvZiB0aGUgYFN0cmluZ2AgY2FzZSBtZXRob2QgdG8gdXNlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNhc2UgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQ2FzZUZpcnN0KG1ldGhvZE5hbWUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcblxuICAgICAgICB2YXIgc3RyU3ltYm9scyA9IGhhc1VuaWNvZGUoc3RyaW5nKVxuICAgICAgICAgID8gc3RyaW5nVG9BcnJheShzdHJpbmcpXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgdmFyIGNociA9IHN0clN5bWJvbHNcbiAgICAgICAgICA/IHN0clN5bWJvbHNbMF1cbiAgICAgICAgICA6IHN0cmluZy5jaGFyQXQoMCk7XG5cbiAgICAgICAgdmFyIHRyYWlsaW5nID0gc3RyU3ltYm9sc1xuICAgICAgICAgID8gY2FzdFNsaWNlKHN0clN5bWJvbHMsIDEpLmpvaW4oJycpXG4gICAgICAgICAgOiBzdHJpbmcuc2xpY2UoMSk7XG5cbiAgICAgICAgcmV0dXJuIGNoclttZXRob2ROYW1lXSgpICsgdHJhaWxpbmc7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLmNhbWVsQ2FzZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0byBjb21iaW5lIGVhY2ggd29yZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjb21wb3VuZGVyIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUNvbXBvdW5kZXIoY2FsbGJhY2spIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGFycmF5UmVkdWNlKHdvcmRzKGRlYnVycihzdHJpbmcpLnJlcGxhY2UocmVBcG9zLCAnJykpLCBjYWxsYmFjaywgJycpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwcm9kdWNlcyBhbiBpbnN0YW5jZSBvZiBgQ3RvcmAgcmVnYXJkbGVzcyBvZlxuICAgICAqIHdoZXRoZXIgaXQgd2FzIGludm9rZWQgYXMgcGFydCBvZiBhIGBuZXdgIGV4cHJlc3Npb24gb3IgYnkgYGNhbGxgIG9yIGBhcHBseWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IEN0b3IgVGhlIGNvbnN0cnVjdG9yIHRvIHdyYXAuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVDdG9yKEN0b3IpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgLy8gVXNlIGEgYHN3aXRjaGAgc3RhdGVtZW50IHRvIHdvcmsgd2l0aCBjbGFzcyBjb25zdHJ1Y3RvcnMuIFNlZVxuICAgICAgICAvLyBodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWZ1bmN0aW9uLW9iamVjdHMtY2FsbC10aGlzYXJndW1lbnQtYXJndW1lbnRzbGlzdFxuICAgICAgICAvLyBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgICAgIGNhc2UgMDogcmV0dXJuIG5ldyBDdG9yO1xuICAgICAgICAgIGNhc2UgMTogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0pO1xuICAgICAgICAgIGNhc2UgMjogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgICAgICAgIGNhc2UgMzogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pO1xuICAgICAgICAgIGNhc2UgNDogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0sIGFyZ3NbM10pO1xuICAgICAgICAgIGNhc2UgNTogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0sIGFyZ3NbM10sIGFyZ3NbNF0pO1xuICAgICAgICAgIGNhc2UgNjogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0sIGFyZ3NbM10sIGFyZ3NbNF0sIGFyZ3NbNV0pO1xuICAgICAgICAgIGNhc2UgNzogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0sIGFyZ3NbM10sIGFyZ3NbNF0sIGFyZ3NbNV0sIGFyZ3NbNl0pO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0aGlzQmluZGluZyA9IGJhc2VDcmVhdGUoQ3Rvci5wcm90b3R5cGUpLFxuICAgICAgICAgICAgcmVzdWx0ID0gQ3Rvci5hcHBseSh0aGlzQmluZGluZywgYXJncyk7XG5cbiAgICAgICAgLy8gTWltaWMgdGhlIGNvbnN0cnVjdG9yJ3MgYHJldHVybmAgYmVoYXZpb3IuXG4gICAgICAgIC8vIFNlZSBodHRwczovL2VzNS5naXRodWIuaW8vI3gxMy4yLjIgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgICAgcmV0dXJuIGlzT2JqZWN0KHJlc3VsdCkgPyByZXN1bHQgOiB0aGlzQmluZGluZztcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIHRvIGVuYWJsZSBjdXJyeWluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBhcml0eSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQ3VycnkoZnVuYywgYml0bWFzaywgYXJpdHkpIHtcbiAgICAgIHZhciBDdG9yID0gY3JlYXRlQ3RvcihmdW5jKTtcblxuICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgICAgICBhcmdzID0gQXJyYXkobGVuZ3RoKSxcbiAgICAgICAgICAgIGluZGV4ID0gbGVuZ3RoLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXIgPSBnZXRIb2xkZXIod3JhcHBlcik7XG5cbiAgICAgICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgICAgICBhcmdzW2luZGV4XSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGhvbGRlcnMgPSAobGVuZ3RoIDwgMyAmJiBhcmdzWzBdICE9PSBwbGFjZWhvbGRlciAmJiBhcmdzW2xlbmd0aCAtIDFdICE9PSBwbGFjZWhvbGRlcilcbiAgICAgICAgICA/IFtdXG4gICAgICAgICAgOiByZXBsYWNlSG9sZGVycyhhcmdzLCBwbGFjZWhvbGRlcik7XG5cbiAgICAgICAgbGVuZ3RoIC09IGhvbGRlcnMubGVuZ3RoO1xuICAgICAgICBpZiAobGVuZ3RoIDwgYXJpdHkpIHtcbiAgICAgICAgICByZXR1cm4gY3JlYXRlUmVjdXJyeShcbiAgICAgICAgICAgIGZ1bmMsIGJpdG1hc2ssIGNyZWF0ZUh5YnJpZCwgd3JhcHBlci5wbGFjZWhvbGRlciwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgYXJncywgaG9sZGVycywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGFyaXR5IC0gbGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZm4gPSAodGhpcyAmJiB0aGlzICE9PSByb290ICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSA/IEN0b3IgOiBmdW5jO1xuICAgICAgICByZXR1cm4gYXBwbHkoZm4sIHRoaXMsIGFyZ3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBfLmZpbmRgIG9yIGBfLmZpbmRMYXN0YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZmluZEluZGV4RnVuYyBUaGUgZnVuY3Rpb24gdG8gZmluZCB0aGUgY29sbGVjdGlvbiBpbmRleC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmaW5kIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUZpbmQoZmluZEluZGV4RnVuYykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZnJvbUluZGV4KSB7XG4gICAgICAgIHZhciBpdGVyYWJsZSA9IE9iamVjdChjb2xsZWN0aW9uKTtcbiAgICAgICAgaWYgKCFpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xuICAgICAgICAgIHZhciBpdGVyYXRlZSA9IGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyk7XG4gICAgICAgICAgY29sbGVjdGlvbiA9IGtleXMoY29sbGVjdGlvbik7XG4gICAgICAgICAgcHJlZGljYXRlID0gZnVuY3Rpb24oa2V5KSB7IHJldHVybiBpdGVyYXRlZShpdGVyYWJsZVtrZXldLCBrZXksIGl0ZXJhYmxlKTsgfTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaW5kZXggPSBmaW5kSW5kZXhGdW5jKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZnJvbUluZGV4KTtcbiAgICAgICAgcmV0dXJuIGluZGV4ID4gLTEgPyBpdGVyYWJsZVtpdGVyYXRlZSA/IGNvbGxlY3Rpb25baW5kZXhdIDogaW5kZXhdIDogdW5kZWZpbmVkO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8uZmxvd2Agb3IgYF8uZmxvd1JpZ2h0YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZmxvdyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVGbG93KGZyb21SaWdodCkge1xuICAgICAgcmV0dXJuIGZsYXRSZXN0KGZ1bmN0aW9uKGZ1bmNzKSB7XG4gICAgICAgIHZhciBsZW5ndGggPSBmdW5jcy5sZW5ndGgsXG4gICAgICAgICAgICBpbmRleCA9IGxlbmd0aCxcbiAgICAgICAgICAgIHByZXJlcSA9IExvZGFzaFdyYXBwZXIucHJvdG90eXBlLnRocnU7XG5cbiAgICAgICAgaWYgKGZyb21SaWdodCkge1xuICAgICAgICAgIGZ1bmNzLnJldmVyc2UoKTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICAgIHZhciBmdW5jID0gZnVuY3NbaW5kZXhdO1xuICAgICAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwcmVyZXEgJiYgIXdyYXBwZXIgJiYgZ2V0RnVuY05hbWUoZnVuYykgPT0gJ3dyYXBwZXInKSB7XG4gICAgICAgICAgICB2YXIgd3JhcHBlciA9IG5ldyBMb2Rhc2hXcmFwcGVyKFtdLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaW5kZXggPSB3cmFwcGVyID8gaW5kZXggOiBsZW5ndGg7XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgZnVuYyA9IGZ1bmNzW2luZGV4XTtcblxuICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGdldEZ1bmNOYW1lKGZ1bmMpLFxuICAgICAgICAgICAgICBkYXRhID0gZnVuY05hbWUgPT0gJ3dyYXBwZXInID8gZ2V0RGF0YShmdW5jKSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgIGlmIChkYXRhICYmIGlzTGF6aWFibGUoZGF0YVswXSkgJiZcbiAgICAgICAgICAgICAgICBkYXRhWzFdID09IChXUkFQX0FSWV9GTEFHIHwgV1JBUF9DVVJSWV9GTEFHIHwgV1JBUF9QQVJUSUFMX0ZMQUcgfCBXUkFQX1JFQVJHX0ZMQUcpICYmXG4gICAgICAgICAgICAgICAgIWRhdGFbNF0ubGVuZ3RoICYmIGRhdGFbOV0gPT0gMVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgIHdyYXBwZXIgPSB3cmFwcGVyW2dldEZ1bmNOYW1lKGRhdGFbMF0pXS5hcHBseSh3cmFwcGVyLCBkYXRhWzNdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd3JhcHBlciA9IChmdW5jLmxlbmd0aCA9PSAxICYmIGlzTGF6aWFibGUoZnVuYykpXG4gICAgICAgICAgICAgID8gd3JhcHBlcltmdW5jTmFtZV0oKVxuICAgICAgICAgICAgICA6IHdyYXBwZXIudGhydShmdW5jKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzLFxuICAgICAgICAgICAgICB2YWx1ZSA9IGFyZ3NbMF07XG5cbiAgICAgICAgICBpZiAod3JhcHBlciAmJiBhcmdzLmxlbmd0aCA9PSAxICYmIGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcHBlci5wbGFudCh2YWx1ZSkudmFsdWUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGluZGV4ID0gMCxcbiAgICAgICAgICAgICAgcmVzdWx0ID0gbGVuZ3RoID8gZnVuY3NbaW5kZXhdLmFwcGx5KHRoaXMsIGFyZ3MpIDogdmFsdWU7XG5cbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gZnVuY3NbaW5kZXhdLmNhbGwodGhpcywgcmVzdWx0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHdyYXBzIGBmdW5jYCB0byBpbnZva2UgaXQgd2l0aCBvcHRpb25hbCBgdGhpc2BcbiAgICAgKiBiaW5kaW5nIG9mIGB0aGlzQXJnYCwgcGFydGlhbCBhcHBsaWNhdGlvbiwgYW5kIGN1cnJ5aW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufHN0cmluZ30gZnVuYyBUaGUgZnVuY3Rpb24gb3IgbWV0aG9kIG5hbWUgdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQgdG9cbiAgICAgKiAgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbcGFydGlhbHNSaWdodF0gVGhlIGFyZ3VtZW50cyB0byBhcHBlbmQgdG8gdGhvc2UgcHJvdmlkZWRcbiAgICAgKiAgdG8gdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc1JpZ2h0XSBUaGUgYHBhcnRpYWxzUmlnaHRgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2FyZ1Bvc10gVGhlIGFyZ3VtZW50IHBvc2l0aW9ucyBvZiB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJ5XSBUaGUgYXJpdHkgY2FwIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5XSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlSHlicmlkKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBwYXJ0aWFsc1JpZ2h0LCBob2xkZXJzUmlnaHQsIGFyZ1BvcywgYXJ5LCBhcml0eSkge1xuICAgICAgdmFyIGlzQXJ5ID0gYml0bWFzayAmIFdSQVBfQVJZX0ZMQUcsXG4gICAgICAgICAgaXNCaW5kID0gYml0bWFzayAmIFdSQVBfQklORF9GTEFHLFxuICAgICAgICAgIGlzQmluZEtleSA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfS0VZX0ZMQUcsXG4gICAgICAgICAgaXNDdXJyaWVkID0gYml0bWFzayAmIChXUkFQX0NVUlJZX0ZMQUcgfCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcpLFxuICAgICAgICAgIGlzRmxpcCA9IGJpdG1hc2sgJiBXUkFQX0ZMSVBfRkxBRyxcbiAgICAgICAgICBDdG9yID0gaXNCaW5kS2V5ID8gdW5kZWZpbmVkIDogY3JlYXRlQ3RvcihmdW5jKTtcblxuICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgICAgICBhcmdzID0gQXJyYXkobGVuZ3RoKSxcbiAgICAgICAgICAgIGluZGV4ID0gbGVuZ3RoO1xuXG4gICAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgICAgYXJnc1tpbmRleF0gPSBhcmd1bWVudHNbaW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0N1cnJpZWQpIHtcbiAgICAgICAgICB2YXIgcGxhY2Vob2xkZXIgPSBnZXRIb2xkZXIod3JhcHBlciksXG4gICAgICAgICAgICAgIGhvbGRlcnNDb3VudCA9IGNvdW50SG9sZGVycyhhcmdzLCBwbGFjZWhvbGRlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcnRpYWxzKSB7XG4gICAgICAgICAgYXJncyA9IGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzLCBpc0N1cnJpZWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJ0aWFsc1JpZ2h0KSB7XG4gICAgICAgICAgYXJncyA9IGNvbXBvc2VBcmdzUmlnaHQoYXJncywgcGFydGlhbHNSaWdodCwgaG9sZGVyc1JpZ2h0LCBpc0N1cnJpZWQpO1xuICAgICAgICB9XG4gICAgICAgIGxlbmd0aCAtPSBob2xkZXJzQ291bnQ7XG4gICAgICAgIGlmIChpc0N1cnJpZWQgJiYgbGVuZ3RoIDwgYXJpdHkpIHtcbiAgICAgICAgICB2YXIgbmV3SG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKGFyZ3MsIHBsYWNlaG9sZGVyKTtcbiAgICAgICAgICByZXR1cm4gY3JlYXRlUmVjdXJyeShcbiAgICAgICAgICAgIGZ1bmMsIGJpdG1hc2ssIGNyZWF0ZUh5YnJpZCwgd3JhcHBlci5wbGFjZWhvbGRlciwgdGhpc0FyZyxcbiAgICAgICAgICAgIGFyZ3MsIG5ld0hvbGRlcnMsIGFyZ1BvcywgYXJ5LCBhcml0eSAtIGxlbmd0aFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRoaXNCaW5kaW5nID0gaXNCaW5kID8gdGhpc0FyZyA6IHRoaXMsXG4gICAgICAgICAgICBmbiA9IGlzQmluZEtleSA/IHRoaXNCaW5kaW5nW2Z1bmNdIDogZnVuYztcblxuICAgICAgICBsZW5ndGggPSBhcmdzLmxlbmd0aDtcbiAgICAgICAgaWYgKGFyZ1Bvcykge1xuICAgICAgICAgIGFyZ3MgPSByZW9yZGVyKGFyZ3MsIGFyZ1Bvcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNGbGlwICYmIGxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBhcmdzLnJldmVyc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNBcnkgJiYgYXJ5IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgYXJncy5sZW5ndGggPSBhcnk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcikge1xuICAgICAgICAgIGZuID0gQ3RvciB8fCBjcmVhdGVDdG9yKGZuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpc0JpbmRpbmcsIGFyZ3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uaW52ZXJ0QnlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzZXR0ZXIgVGhlIGZ1bmN0aW9uIHRvIHNldCBhY2N1bXVsYXRvciB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gdG9JdGVyYXRlZSBUaGUgZnVuY3Rpb24gdG8gcmVzb2x2ZSBpdGVyYXRlZXMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgaW52ZXJ0ZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlSW52ZXJ0ZXIoc2V0dGVyLCB0b0l0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0LCBpdGVyYXRlZSkge1xuICAgICAgICByZXR1cm4gYmFzZUludmVydGVyKG9iamVjdCwgc2V0dGVyLCB0b0l0ZXJhdGVlKGl0ZXJhdGVlKSwge30pO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBhIG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gb24gdHdvIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3BlcmF0b3IgVGhlIGZ1bmN0aW9uIHRvIHBlcmZvcm0gdGhlIG9wZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2RlZmF1bHRWYWx1ZV0gVGhlIHZhbHVlIHVzZWQgZm9yIGB1bmRlZmluZWRgIGFyZ3VtZW50cy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZU1hdGhPcGVyYXRpb24ob3BlcmF0b3IsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBvdGhlcikge1xuICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiBvdGhlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJlc3VsdCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvdGhlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gb3RoZXI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgdHlwZW9mIG90aGVyID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGJhc2VUb1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICBvdGhlciA9IGJhc2VUb1N0cmluZyhvdGhlcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbHVlID0gYmFzZVRvTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgICAgIG90aGVyID0gYmFzZVRvTnVtYmVyKG90aGVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0ID0gb3BlcmF0b3IodmFsdWUsIG90aGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gbGlrZSBgXy5vdmVyYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gYXJyYXlGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgaXRlcmF0ZWVzLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG92ZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlT3ZlcihhcnJheUZ1bmMpIHtcbiAgICAgIHJldHVybiBmbGF0UmVzdChmdW5jdGlvbihpdGVyYXRlZXMpIHtcbiAgICAgICAgaXRlcmF0ZWVzID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBiYXNlVW5hcnkoZ2V0SXRlcmF0ZWUoKSkpO1xuICAgICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xuICAgICAgICAgIHZhciB0aGlzQXJnID0gdGhpcztcbiAgICAgICAgICByZXR1cm4gYXJyYXlGdW5jKGl0ZXJhdGVlcywgZnVuY3Rpb24oaXRlcmF0ZWUpIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBseShpdGVyYXRlZSwgdGhpc0FyZywgYXJncyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgcGFkZGluZyBmb3IgYHN0cmluZ2AgYmFzZWQgb24gYGxlbmd0aGAuIFRoZSBgY2hhcnNgIHN0cmluZ1xuICAgICAqIGlzIHRydW5jYXRlZCBpZiB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgZXhjZWVkcyBgbGVuZ3RoYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aCBUaGUgcGFkZGluZyBsZW5ndGguXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz0nICddIFRoZSBzdHJpbmcgdXNlZCBhcyBwYWRkaW5nLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHBhZGRpbmcgZm9yIGBzdHJpbmdgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVBhZGRpbmcobGVuZ3RoLCBjaGFycykge1xuICAgICAgY2hhcnMgPSBjaGFycyA9PT0gdW5kZWZpbmVkID8gJyAnIDogYmFzZVRvU3RyaW5nKGNoYXJzKTtcblxuICAgICAgdmFyIGNoYXJzTGVuZ3RoID0gY2hhcnMubGVuZ3RoO1xuICAgICAgaWYgKGNoYXJzTGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm4gY2hhcnNMZW5ndGggPyBiYXNlUmVwZWF0KGNoYXJzLCBsZW5ndGgpIDogY2hhcnM7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gYmFzZVJlcGVhdChjaGFycywgbmF0aXZlQ2VpbChsZW5ndGggLyBzdHJpbmdTaXplKGNoYXJzKSkpO1xuICAgICAgcmV0dXJuIGhhc1VuaWNvZGUoY2hhcnMpXG4gICAgICAgID8gY2FzdFNsaWNlKHN0cmluZ1RvQXJyYXkocmVzdWx0KSwgMCwgbGVuZ3RoKS5qb2luKCcnKVxuICAgICAgICA6IHJlc3VsdC5zbGljZSgwLCBsZW5ndGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHdyYXBzIGBmdW5jYCB0byBpbnZva2UgaXQgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmdcbiAgICAgKiBvZiBgdGhpc0FyZ2AgYW5kIGBwYXJ0aWFsc2AgcHJlcGVuZGVkIHRvIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgY3JlYXRlV3JhcGAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYXJ0aWFscyBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQgdG9cbiAgICAgKiAgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVBhcnRpYWwoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMpIHtcbiAgICAgIHZhciBpc0JpbmQgPSBiaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcsXG4gICAgICAgICAgQ3RvciA9IGNyZWF0ZUN0b3IoZnVuYyk7XG5cbiAgICAgIGZ1bmN0aW9uIHdyYXBwZXIoKSB7XG4gICAgICAgIHZhciBhcmdzSW5kZXggPSAtMSxcbiAgICAgICAgICAgIGFyZ3NMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICAgICAgbGVmdEluZGV4ID0gLTEsXG4gICAgICAgICAgICBsZWZ0TGVuZ3RoID0gcGFydGlhbHMubGVuZ3RoLFxuICAgICAgICAgICAgYXJncyA9IEFycmF5KGxlZnRMZW5ndGggKyBhcmdzTGVuZ3RoKSxcbiAgICAgICAgICAgIGZuID0gKHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcikgPyBDdG9yIDogZnVuYztcblxuICAgICAgICB3aGlsZSAoKytsZWZ0SW5kZXggPCBsZWZ0TGVuZ3RoKSB7XG4gICAgICAgICAgYXJnc1tsZWZ0SW5kZXhdID0gcGFydGlhbHNbbGVmdEluZGV4XTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoYXJnc0xlbmd0aC0tKSB7XG4gICAgICAgICAgYXJnc1tsZWZ0SW5kZXgrK10gPSBhcmd1bWVudHNbKythcmdzSW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcHBseShmbiwgaXNCaW5kID8gdGhpc0FyZyA6IHRoaXMsIGFyZ3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBfLnJhbmdlYCBvciBgXy5yYW5nZVJpZ2h0YCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcmFuZ2UgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUmFuZ2UoZnJvbVJpZ2h0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oc3RhcnQsIGVuZCwgc3RlcCkge1xuICAgICAgICBpZiAoc3RlcCAmJiB0eXBlb2Ygc3RlcCAhPSAnbnVtYmVyJyAmJiBpc0l0ZXJhdGVlQ2FsbChzdGFydCwgZW5kLCBzdGVwKSkge1xuICAgICAgICAgIGVuZCA9IHN0ZXAgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRW5zdXJlIHRoZSBzaWduIG9mIGAtMGAgaXMgcHJlc2VydmVkLlxuICAgICAgICBzdGFydCA9IHRvRmluaXRlKHN0YXJ0KTtcbiAgICAgICAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZW5kID0gc3RhcnQ7XG4gICAgICAgICAgc3RhcnQgPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVuZCA9IHRvRmluaXRlKGVuZCk7XG4gICAgICAgIH1cbiAgICAgICAgc3RlcCA9IHN0ZXAgPT09IHVuZGVmaW5lZCA/IChzdGFydCA8IGVuZCA/IDEgOiAtMSkgOiB0b0Zpbml0ZShzdGVwKTtcbiAgICAgICAgcmV0dXJuIGJhc2VSYW5nZShzdGFydCwgZW5kLCBzdGVwLCBmcm9tUmlnaHQpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBhIHJlbGF0aW9uYWwgb3BlcmF0aW9uIG9uIHR3byB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wZXJhdG9yIFRoZSBmdW5jdGlvbiB0byBwZXJmb3JtIHRoZSBvcGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcmVsYXRpb25hbCBvcGVyYXRpb24gZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihvcGVyYXRvcikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBvdGhlcikge1xuICAgICAgICBpZiAoISh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgJiYgdHlwZW9mIG90aGVyID09ICdzdHJpbmcnKSkge1xuICAgICAgICAgIHZhbHVlID0gdG9OdW1iZXIodmFsdWUpO1xuICAgICAgICAgIG90aGVyID0gdG9OdW1iZXIob3RoZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcGVyYXRvcih2YWx1ZSwgb3RoZXIpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB3cmFwcyBgZnVuY2AgdG8gY29udGludWUgY3VycnlpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgY3JlYXRlV3JhcGAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB3cmFwRnVuYyBUaGUgZnVuY3Rpb24gdG8gY3JlYXRlIHRoZSBgZnVuY2Agd3JhcHBlci5cbiAgICAgKiBAcGFyYW0geyp9IHBsYWNlaG9sZGVyIFRoZSBwbGFjZWhvbGRlciB2YWx1ZS5cbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBwcmVwZW5kIHRvIHRob3NlIHByb3ZpZGVkIHRvXG4gICAgICogIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2hvbGRlcnNdIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2FyZ1Bvc10gVGhlIGFyZ3VtZW50IHBvc2l0aW9ucyBvZiB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJ5XSBUaGUgYXJpdHkgY2FwIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5XSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUmVjdXJyeShmdW5jLCBiaXRtYXNrLCB3cmFwRnVuYywgcGxhY2Vob2xkZXIsIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBhcmdQb3MsIGFyeSwgYXJpdHkpIHtcbiAgICAgIHZhciBpc0N1cnJ5ID0gYml0bWFzayAmIFdSQVBfQ1VSUllfRkxBRyxcbiAgICAgICAgICBuZXdIb2xkZXJzID0gaXNDdXJyeSA/IGhvbGRlcnMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmV3SG9sZGVyc1JpZ2h0ID0gaXNDdXJyeSA/IHVuZGVmaW5lZCA6IGhvbGRlcnMsXG4gICAgICAgICAgbmV3UGFydGlhbHMgPSBpc0N1cnJ5ID8gcGFydGlhbHMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmV3UGFydGlhbHNSaWdodCA9IGlzQ3VycnkgPyB1bmRlZmluZWQgOiBwYXJ0aWFscztcblxuICAgICAgYml0bWFzayB8PSAoaXNDdXJyeSA/IFdSQVBfUEFSVElBTF9GTEFHIDogV1JBUF9QQVJUSUFMX1JJR0hUX0ZMQUcpO1xuICAgICAgYml0bWFzayAmPSB+KGlzQ3VycnkgPyBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRyA6IFdSQVBfUEFSVElBTF9GTEFHKTtcblxuICAgICAgaWYgKCEoYml0bWFzayAmIFdSQVBfQ1VSUllfQk9VTkRfRkxBRykpIHtcbiAgICAgICAgYml0bWFzayAmPSB+KFdSQVBfQklORF9GTEFHIHwgV1JBUF9CSU5EX0tFWV9GTEFHKTtcbiAgICAgIH1cbiAgICAgIHZhciBuZXdEYXRhID0gW1xuICAgICAgICBmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBuZXdQYXJ0aWFscywgbmV3SG9sZGVycywgbmV3UGFydGlhbHNSaWdodCxcbiAgICAgICAgbmV3SG9sZGVyc1JpZ2h0LCBhcmdQb3MsIGFyeSwgYXJpdHlcbiAgICAgIF07XG5cbiAgICAgIHZhciByZXN1bHQgPSB3cmFwRnVuYy5hcHBseSh1bmRlZmluZWQsIG5ld0RhdGEpO1xuICAgICAgaWYgKGlzTGF6aWFibGUoZnVuYykpIHtcbiAgICAgICAgc2V0RGF0YShyZXN1bHQsIG5ld0RhdGEpO1xuICAgICAgfVxuICAgICAgcmVzdWx0LnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XG4gICAgICByZXR1cm4gc2V0V3JhcFRvU3RyaW5nKHJlc3VsdCwgZnVuYywgYml0bWFzayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8ucm91bmRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kTmFtZSBUaGUgbmFtZSBvZiB0aGUgYE1hdGhgIG1ldGhvZCB0byB1c2Ugd2hlbiByb3VuZGluZy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByb3VuZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVSb3VuZChtZXRob2ROYW1lKSB7XG4gICAgICB2YXIgZnVuYyA9IE1hdGhbbWV0aG9kTmFtZV07XG4gICAgICByZXR1cm4gZnVuY3Rpb24obnVtYmVyLCBwcmVjaXNpb24pIHtcbiAgICAgICAgbnVtYmVyID0gdG9OdW1iZXIobnVtYmVyKTtcbiAgICAgICAgcHJlY2lzaW9uID0gcHJlY2lzaW9uID09IG51bGwgPyAwIDogbmF0aXZlTWluKHRvSW50ZWdlcihwcmVjaXNpb24pLCAyOTIpO1xuICAgICAgICBpZiAocHJlY2lzaW9uICYmIG5hdGl2ZUlzRmluaXRlKG51bWJlcikpIHtcbiAgICAgICAgICAvLyBTaGlmdCB3aXRoIGV4cG9uZW50aWFsIG5vdGF0aW9uIHRvIGF2b2lkIGZsb2F0aW5nLXBvaW50IGlzc3Vlcy5cbiAgICAgICAgICAvLyBTZWUgW01ETl0oaHR0cHM6Ly9tZG4uaW8vcm91bmQjRXhhbXBsZXMpIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICAgICAgdmFyIHBhaXIgPSAodG9TdHJpbmcobnVtYmVyKSArICdlJykuc3BsaXQoJ2UnKSxcbiAgICAgICAgICAgICAgdmFsdWUgPSBmdW5jKHBhaXJbMF0gKyAnZScgKyAoK3BhaXJbMV0gKyBwcmVjaXNpb24pKTtcblxuICAgICAgICAgIHBhaXIgPSAodG9TdHJpbmcodmFsdWUpICsgJ2UnKS5zcGxpdCgnZScpO1xuICAgICAgICAgIHJldHVybiArKHBhaXJbMF0gKyAnZScgKyAoK3BhaXJbMV0gLSBwcmVjaXNpb24pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuYyhudW1iZXIpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2V0IG9iamVjdCBvZiBgdmFsdWVzYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gYWRkIHRvIHRoZSBzZXQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IHNldC5cbiAgICAgKi9cbiAgICB2YXIgY3JlYXRlU2V0ID0gIShTZXQgJiYgKDEgLyBzZXRUb0FycmF5KG5ldyBTZXQoWywtMF0pKVsxXSkgPT0gSU5GSU5JVFkpID8gbm9vcCA6IGZ1bmN0aW9uKHZhbHVlcykge1xuICAgICAgcmV0dXJuIG5ldyBTZXQodmFsdWVzKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBfLnRvUGFpcnNgIG9yIGBfLnRvUGFpcnNJbmAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYSBnaXZlbiBvYmplY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcGFpcnMgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlVG9QYWlycyhrZXlzRnVuYykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICB2YXIgdGFnID0gZ2V0VGFnKG9iamVjdCk7XG4gICAgICAgIGlmICh0YWcgPT0gbWFwVGFnKSB7XG4gICAgICAgICAgcmV0dXJuIG1hcFRvQXJyYXkob2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFnID09IHNldFRhZykge1xuICAgICAgICAgIHJldHVybiBzZXRUb1BhaXJzKG9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJhc2VUb1BhaXJzKG9iamVjdCwga2V5c0Z1bmMob2JqZWN0KSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGVpdGhlciBjdXJyaWVzIG9yIGludm9rZXMgYGZ1bmNgIHdpdGggb3B0aW9uYWxcbiAgICAgKiBgdGhpc2AgYmluZGluZyBhbmQgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufHN0cmluZ30gZnVuYyBUaGUgZnVuY3Rpb24gb3IgbWV0aG9kIG5hbWUgdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy5cbiAgICAgKiAgICAxIC0gYF8uYmluZGBcbiAgICAgKiAgICAyIC0gYF8uYmluZEtleWBcbiAgICAgKiAgICA0IC0gYF8uY3VycnlgIG9yIGBfLmN1cnJ5UmlnaHRgIG9mIGEgYm91bmQgZnVuY3Rpb25cbiAgICAgKiAgICA4IC0gYF8uY3VycnlgXG4gICAgICogICAxNiAtIGBfLmN1cnJ5UmlnaHRgXG4gICAgICogICAzMiAtIGBfLnBhcnRpYWxgXG4gICAgICogICA2NCAtIGBfLnBhcnRpYWxSaWdodGBcbiAgICAgKiAgMTI4IC0gYF8ucmVhcmdgXG4gICAgICogIDI1NiAtIGBfLmFyeWBcbiAgICAgKiAgNTEyIC0gYF8uZmxpcGBcbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbYXJnUG9zXSBUaGUgYXJndW1lbnQgcG9zaXRpb25zIG9mIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJpdHldIFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVXcmFwKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBhcmdQb3MsIGFyeSwgYXJpdHkpIHtcbiAgICAgIHZhciBpc0JpbmRLZXkgPSBiaXRtYXNrICYgV1JBUF9CSU5EX0tFWV9GTEFHO1xuICAgICAgaWYgKCFpc0JpbmRLZXkgJiYgdHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gcGFydGlhbHMgPyBwYXJ0aWFscy5sZW5ndGggOiAwO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgYml0bWFzayAmPSB+KFdSQVBfUEFSVElBTF9GTEFHIHwgV1JBUF9QQVJUSUFMX1JJR0hUX0ZMQUcpO1xuICAgICAgICBwYXJ0aWFscyA9IGhvbGRlcnMgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBhcnkgPSBhcnkgPT09IHVuZGVmaW5lZCA/IGFyeSA6IG5hdGl2ZU1heCh0b0ludGVnZXIoYXJ5KSwgMCk7XG4gICAgICBhcml0eSA9IGFyaXR5ID09PSB1bmRlZmluZWQgPyBhcml0eSA6IHRvSW50ZWdlcihhcml0eSk7XG4gICAgICBsZW5ndGggLT0gaG9sZGVycyA/IGhvbGRlcnMubGVuZ3RoIDogMDtcblxuICAgICAgaWYgKGJpdG1hc2sgJiBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRykge1xuICAgICAgICB2YXIgcGFydGlhbHNSaWdodCA9IHBhcnRpYWxzLFxuICAgICAgICAgICAgaG9sZGVyc1JpZ2h0ID0gaG9sZGVycztcblxuICAgICAgICBwYXJ0aWFscyA9IGhvbGRlcnMgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB2YXIgZGF0YSA9IGlzQmluZEtleSA/IHVuZGVmaW5lZCA6IGdldERhdGEoZnVuYyk7XG5cbiAgICAgIHZhciBuZXdEYXRhID0gW1xuICAgICAgICBmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscywgaG9sZGVycywgcGFydGlhbHNSaWdodCwgaG9sZGVyc1JpZ2h0LFxuICAgICAgICBhcmdQb3MsIGFyeSwgYXJpdHlcbiAgICAgIF07XG5cbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIG1lcmdlRGF0YShuZXdEYXRhLCBkYXRhKTtcbiAgICAgIH1cbiAgICAgIGZ1bmMgPSBuZXdEYXRhWzBdO1xuICAgICAgYml0bWFzayA9IG5ld0RhdGFbMV07XG4gICAgICB0aGlzQXJnID0gbmV3RGF0YVsyXTtcbiAgICAgIHBhcnRpYWxzID0gbmV3RGF0YVszXTtcbiAgICAgIGhvbGRlcnMgPSBuZXdEYXRhWzRdO1xuICAgICAgYXJpdHkgPSBuZXdEYXRhWzldID0gbmV3RGF0YVs5XSA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gKGlzQmluZEtleSA/IDAgOiBmdW5jLmxlbmd0aClcbiAgICAgICAgOiBuYXRpdmVNYXgobmV3RGF0YVs5XSAtIGxlbmd0aCwgMCk7XG5cbiAgICAgIGlmICghYXJpdHkgJiYgYml0bWFzayAmIChXUkFQX0NVUlJZX0ZMQUcgfCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcpKSB7XG4gICAgICAgIGJpdG1hc2sgJj0gfihXUkFQX0NVUlJZX0ZMQUcgfCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcpO1xuICAgICAgfVxuICAgICAgaWYgKCFiaXRtYXNrIHx8IGJpdG1hc2sgPT0gV1JBUF9CSU5EX0ZMQUcpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGNyZWF0ZUJpbmQoZnVuYywgYml0bWFzaywgdGhpc0FyZyk7XG4gICAgICB9IGVsc2UgaWYgKGJpdG1hc2sgPT0gV1JBUF9DVVJSWV9GTEFHIHx8IGJpdG1hc2sgPT0gV1JBUF9DVVJSWV9SSUdIVF9GTEFHKSB7XG4gICAgICAgIHJlc3VsdCA9IGNyZWF0ZUN1cnJ5KGZ1bmMsIGJpdG1hc2ssIGFyaXR5KTtcbiAgICAgIH0gZWxzZSBpZiAoKGJpdG1hc2sgPT0gV1JBUF9QQVJUSUFMX0ZMQUcgfHwgYml0bWFzayA9PSAoV1JBUF9CSU5EX0ZMQUcgfCBXUkFQX1BBUlRJQUxfRkxBRykpICYmICFob2xkZXJzLmxlbmd0aCkge1xuICAgICAgICByZXN1bHQgPSBjcmVhdGVQYXJ0aWFsKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IGNyZWF0ZUh5YnJpZC5hcHBseSh1bmRlZmluZWQsIG5ld0RhdGEpO1xuICAgICAgfVxuICAgICAgdmFyIHNldHRlciA9IGRhdGEgPyBiYXNlU2V0RGF0YSA6IHNldERhdGE7XG4gICAgICByZXR1cm4gc2V0V3JhcFRvU3RyaW5nKHNldHRlcihyZXN1bHQsIG5ld0RhdGEpLCBmdW5jLCBiaXRtYXNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIGJ5IGBfLmRlZmF1bHRzYCB0byBjdXN0b21pemUgaXRzIGBfLmFzc2lnbkluYCB1c2UgdG8gYXNzaWduIHByb3BlcnRpZXNcbiAgICAgKiBvZiBzb3VyY2Ugb2JqZWN0cyB0byB0aGUgZGVzdGluYXRpb24gb2JqZWN0IGZvciBhbGwgZGVzdGluYXRpb24gcHJvcGVydGllc1xuICAgICAqIHRoYXQgcmVzb2x2ZSB0byBgdW5kZWZpbmVkYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSBvYmpWYWx1ZSBUaGUgZGVzdGluYXRpb24gdmFsdWUuXG4gICAgICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgc291cmNlIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHBhcmVudCBvYmplY3Qgb2YgYG9ialZhbHVlYC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgdmFsdWUgdG8gYXNzaWduLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGN1c3RvbURlZmF1bHRzQXNzaWduSW4ob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCkge1xuICAgICAgaWYgKG9ialZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAoZXEob2JqVmFsdWUsIG9iamVjdFByb3RvW2tleV0pICYmICFoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkpIHtcbiAgICAgICAgcmV0dXJuIHNyY1ZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9ialZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZWQgYnkgYF8uZGVmYXVsdHNEZWVwYCB0byBjdXN0b21pemUgaXRzIGBfLm1lcmdlYCB1c2UgdG8gbWVyZ2Ugc291cmNlXG4gICAgICogb2JqZWN0cyBpbnRvIGRlc3RpbmF0aW9uIG9iamVjdHMgdGhhdCBhcmUgcGFzc2VkIHRocnUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gb2JqVmFsdWUgVGhlIGRlc3RpbmF0aW9uIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7Kn0gc3JjVmFsdWUgVGhlIHNvdXJjZSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIG1lcmdlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHBhcmVudCBvYmplY3Qgb2YgYG9ialZhbHVlYC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBwYXJlbnQgb2JqZWN0IG9mIGBzcmNWYWx1ZWAuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtzdGFja10gVHJhY2tzIHRyYXZlcnNlZCBzb3VyY2UgdmFsdWVzIGFuZCB0aGVpciBtZXJnZWRcbiAgICAgKiAgY291bnRlcnBhcnRzLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3VzdG9tRGVmYXVsdHNNZXJnZShvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKSB7XG4gICAgICBpZiAoaXNPYmplY3Qob2JqVmFsdWUpICYmIGlzT2JqZWN0KHNyY1ZhbHVlKSkge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBtZXJnZSBvYmplY3RzIGFuZCBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgc3RhY2suc2V0KHNyY1ZhbHVlLCBvYmpWYWx1ZSk7XG4gICAgICAgIGJhc2VNZXJnZShvYmpWYWx1ZSwgc3JjVmFsdWUsIHVuZGVmaW5lZCwgY3VzdG9tRGVmYXVsdHNNZXJnZSwgc3RhY2spO1xuICAgICAgICBzdGFja1snZGVsZXRlJ10oc3JjVmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9ialZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZWQgYnkgYF8ub21pdGAgdG8gY3VzdG9taXplIGl0cyBgXy5jbG9uZURlZXBgIHVzZSB0byBvbmx5IGNsb25lIHBsYWluXG4gICAgICogb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHVuY2xvbmVkIHZhbHVlIG9yIGB1bmRlZmluZWRgIHRvIGRlZmVyIGNsb25pbmcgdG8gYF8uY2xvbmVEZWVwYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjdXN0b21PbWl0Q2xvbmUodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc1BsYWluT2JqZWN0KHZhbHVlKSA/IHVuZGVmaW5lZCA6IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxEZWVwYCBmb3IgYXJyYXlzIHdpdGggc3VwcG9ydCBmb3JcbiAgICAgKiBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IG90aGVyIFRoZSBvdGhlciBhcnJheSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGJhc2VJc0VxdWFsYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGN1c3RvbWl6ZXIgVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHN0YWNrIFRyYWNrcyB0cmF2ZXJzZWQgYGFycmF5YCBhbmQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYXJyYXlzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXF1YWxBcnJheXMoYXJyYXksIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gICAgICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHLFxuICAgICAgICAgIGFyckxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICBvdGhMZW5ndGggPSBvdGhlci5sZW5ndGg7XG5cbiAgICAgIGlmIChhcnJMZW5ndGggIT0gb3RoTGVuZ3RoICYmICEoaXNQYXJ0aWFsICYmIG90aExlbmd0aCA+IGFyckxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgLy8gQ2hlY2sgdGhhdCBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgICAgIHZhciBhcnJTdGFja2VkID0gc3RhY2suZ2V0KGFycmF5KTtcbiAgICAgIHZhciBvdGhTdGFja2VkID0gc3RhY2suZ2V0KG90aGVyKTtcbiAgICAgIGlmIChhcnJTdGFja2VkICYmIG90aFN0YWNrZWQpIHtcbiAgICAgICAgcmV0dXJuIGFyclN0YWNrZWQgPT0gb3RoZXIgJiYgb3RoU3RhY2tlZCA9PSBhcnJheTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIHJlc3VsdCA9IHRydWUsXG4gICAgICAgICAgc2VlbiA9IChiaXRtYXNrICYgQ09NUEFSRV9VTk9SREVSRURfRkxBRykgPyBuZXcgU2V0Q2FjaGUgOiB1bmRlZmluZWQ7XG5cbiAgICAgIHN0YWNrLnNldChhcnJheSwgb3RoZXIpO1xuICAgICAgc3RhY2suc2V0KG90aGVyLCBhcnJheSk7XG5cbiAgICAgIC8vIElnbm9yZSBub24taW5kZXggcHJvcGVydGllcy5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgYXJyTGVuZ3RoKSB7XG4gICAgICAgIHZhciBhcnJWYWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICAgIG90aFZhbHVlID0gb3RoZXJbaW5kZXhdO1xuXG4gICAgICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICAgICAgdmFyIGNvbXBhcmVkID0gaXNQYXJ0aWFsXG4gICAgICAgICAgICA/IGN1c3RvbWl6ZXIob3RoVmFsdWUsIGFyclZhbHVlLCBpbmRleCwgb3RoZXIsIGFycmF5LCBzdGFjaylcbiAgICAgICAgICAgIDogY3VzdG9taXplcihhcnJWYWx1ZSwgb3RoVmFsdWUsIGluZGV4LCBhcnJheSwgb3RoZXIsIHN0YWNrKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29tcGFyZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmIChjb21wYXJlZCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbXBhcmUgYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgIGlmIChzZWVuKSB7XG4gICAgICAgICAgaWYgKCFhcnJheVNvbWUob3RoZXIsIGZ1bmN0aW9uKG90aFZhbHVlLCBvdGhJbmRleCkge1xuICAgICAgICAgICAgICAgIGlmICghY2FjaGVIYXMoc2Vlbiwgb3RoSW5kZXgpICYmXG4gICAgICAgICAgICAgICAgICAgIChhcnJWYWx1ZSA9PT0gb3RoVmFsdWUgfHwgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlZW4ucHVzaChvdGhJbmRleCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KSkge1xuICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIShcbiAgICAgICAgICAgICAgYXJyVmFsdWUgPT09IG90aFZhbHVlIHx8XG4gICAgICAgICAgICAgICAgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHN0YWNrWydkZWxldGUnXShhcnJheSk7XG4gICAgICBzdGFja1snZGVsZXRlJ10ob3RoZXIpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsRGVlcGAgZm9yIGNvbXBhcmluZyBvYmplY3RzIG9mXG4gICAgICogdGhlIHNhbWUgYHRvU3RyaW5nVGFnYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIG9ubHkgc3VwcG9ydHMgY29tcGFyaW5nIHZhbHVlcyB3aXRoIHRhZ3Mgb2ZcbiAgICAgKiBgQm9vbGVhbmAsIGBEYXRlYCwgYEVycm9yYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBvciBgU3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBgdG9TdHJpbmdUYWdgIG9mIHRoZSBvYmplY3RzIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgYmFzZUlzRXF1YWxgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc3RhY2sgVHJhY2tzIHRyYXZlcnNlZCBgb2JqZWN0YCBhbmQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVxdWFsQnlUYWcob2JqZWN0LCBvdGhlciwgdGFnLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gICAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgICBjYXNlIGRhdGFWaWV3VGFnOlxuICAgICAgICAgIGlmICgob2JqZWN0LmJ5dGVMZW5ndGggIT0gb3RoZXIuYnl0ZUxlbmd0aCkgfHxcbiAgICAgICAgICAgICAgKG9iamVjdC5ieXRlT2Zmc2V0ICE9IG90aGVyLmJ5dGVPZmZzZXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9iamVjdCA9IG9iamVjdC5idWZmZXI7XG4gICAgICAgICAgb3RoZXIgPSBvdGhlci5idWZmZXI7XG5cbiAgICAgICAgY2FzZSBhcnJheUJ1ZmZlclRhZzpcbiAgICAgICAgICBpZiAoKG9iamVjdC5ieXRlTGVuZ3RoICE9IG90aGVyLmJ5dGVMZW5ndGgpIHx8XG4gICAgICAgICAgICAgICFlcXVhbEZ1bmMobmV3IFVpbnQ4QXJyYXkob2JqZWN0KSwgbmV3IFVpbnQ4QXJyYXkob3RoZXIpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBjYXNlIGJvb2xUYWc6XG4gICAgICAgIGNhc2UgZGF0ZVRhZzpcbiAgICAgICAgY2FzZSBudW1iZXJUYWc6XG4gICAgICAgICAgLy8gQ29lcmNlIGJvb2xlYW5zIHRvIGAxYCBvciBgMGAgYW5kIGRhdGVzIHRvIG1pbGxpc2Vjb25kcy5cbiAgICAgICAgICAvLyBJbnZhbGlkIGRhdGVzIGFyZSBjb2VyY2VkIHRvIGBOYU5gLlxuICAgICAgICAgIHJldHVybiBlcSgrb2JqZWN0LCArb3RoZXIpO1xuXG4gICAgICAgIGNhc2UgZXJyb3JUYWc6XG4gICAgICAgICAgcmV0dXJuIG9iamVjdC5uYW1lID09IG90aGVyLm5hbWUgJiYgb2JqZWN0Lm1lc3NhZ2UgPT0gb3RoZXIubWVzc2FnZTtcblxuICAgICAgICBjYXNlIHJlZ2V4cFRhZzpcbiAgICAgICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICAgICAgLy8gQ29lcmNlIHJlZ2V4ZXMgdG8gc3RyaW5ncyBhbmQgdHJlYXQgc3RyaW5ncywgcHJpbWl0aXZlcyBhbmQgb2JqZWN0cyxcbiAgICAgICAgICAvLyBhcyBlcXVhbC4gU2VlIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1yZWdleHAucHJvdG90eXBlLnRvc3RyaW5nXG4gICAgICAgICAgLy8gZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IChvdGhlciArICcnKTtcblxuICAgICAgICBjYXNlIG1hcFRhZzpcbiAgICAgICAgICB2YXIgY29udmVydCA9IG1hcFRvQXJyYXk7XG5cbiAgICAgICAgY2FzZSBzZXRUYWc6XG4gICAgICAgICAgdmFyIGlzUGFydGlhbCA9IGJpdG1hc2sgJiBDT01QQVJFX1BBUlRJQUxfRkxBRztcbiAgICAgICAgICBjb252ZXJ0IHx8IChjb252ZXJ0ID0gc2V0VG9BcnJheSk7XG5cbiAgICAgICAgICBpZiAob2JqZWN0LnNpemUgIT0gb3RoZXIuc2l6ZSAmJiAhaXNQYXJ0aWFsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEFzc3VtZSBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgICAgICAgICB2YXIgc3RhY2tlZCA9IHN0YWNrLmdldChvYmplY3QpO1xuICAgICAgICAgIGlmIChzdGFja2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RhY2tlZCA9PSBvdGhlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgYml0bWFzayB8PSBDT01QQVJFX1VOT1JERVJFRF9GTEFHO1xuXG4gICAgICAgICAgLy8gUmVjdXJzaXZlbHkgY29tcGFyZSBvYmplY3RzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgICAgc3RhY2suc2V0KG9iamVjdCwgb3RoZXIpO1xuICAgICAgICAgIHZhciByZXN1bHQgPSBlcXVhbEFycmF5cyhjb252ZXJ0KG9iamVjdCksIGNvbnZlcnQob3RoZXIpLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKTtcbiAgICAgICAgICBzdGFja1snZGVsZXRlJ10ob2JqZWN0KTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuXG4gICAgICAgIGNhc2Ugc3ltYm9sVGFnOlxuICAgICAgICAgIGlmIChzeW1ib2xWYWx1ZU9mKSB7XG4gICAgICAgICAgICByZXR1cm4gc3ltYm9sVmFsdWVPZi5jYWxsKG9iamVjdCkgPT0gc3ltYm9sVmFsdWVPZi5jYWxsKG90aGVyKTtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBvYmplY3RzIHdpdGggc3VwcG9ydCBmb3JcbiAgICAgKiBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgYmFzZUlzRXF1YWxgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc3RhY2sgVHJhY2tzIHRyYXZlcnNlZCBgb2JqZWN0YCBhbmQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVxdWFsT2JqZWN0cyhvYmplY3QsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gICAgICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHLFxuICAgICAgICAgIG9ialByb3BzID0gZ2V0QWxsS2V5cyhvYmplY3QpLFxuICAgICAgICAgIG9iakxlbmd0aCA9IG9ialByb3BzLmxlbmd0aCxcbiAgICAgICAgICBvdGhQcm9wcyA9IGdldEFsbEtleXMob3RoZXIpLFxuICAgICAgICAgIG90aExlbmd0aCA9IG90aFByb3BzLmxlbmd0aDtcblxuICAgICAgaWYgKG9iakxlbmd0aCAhPSBvdGhMZW5ndGggJiYgIWlzUGFydGlhbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSBvYmpMZW5ndGg7XG4gICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICB2YXIga2V5ID0gb2JqUHJvcHNbaW5kZXhdO1xuICAgICAgICBpZiAoIShpc1BhcnRpYWwgPyBrZXkgaW4gb3RoZXIgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG90aGVyLCBrZXkpKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gQ2hlY2sgdGhhdCBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgICAgIHZhciBvYmpTdGFja2VkID0gc3RhY2suZ2V0KG9iamVjdCk7XG4gICAgICB2YXIgb3RoU3RhY2tlZCA9IHN0YWNrLmdldChvdGhlcik7XG4gICAgICBpZiAob2JqU3RhY2tlZCAmJiBvdGhTdGFja2VkKSB7XG4gICAgICAgIHJldHVybiBvYmpTdGFja2VkID09IG90aGVyICYmIG90aFN0YWNrZWQgPT0gb2JqZWN0O1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IHRydWU7XG4gICAgICBzdGFjay5zZXQob2JqZWN0LCBvdGhlcik7XG4gICAgICBzdGFjay5zZXQob3RoZXIsIG9iamVjdCk7XG5cbiAgICAgIHZhciBza2lwQ3RvciA9IGlzUGFydGlhbDtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgb2JqTGVuZ3RoKSB7XG4gICAgICAgIGtleSA9IG9ialByb3BzW2luZGV4XTtcbiAgICAgICAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV0sXG4gICAgICAgICAgICBvdGhWYWx1ZSA9IG90aGVyW2tleV07XG5cbiAgICAgICAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICB2YXIgY29tcGFyZWQgPSBpc1BhcnRpYWxcbiAgICAgICAgICAgID8gY3VzdG9taXplcihvdGhWYWx1ZSwgb2JqVmFsdWUsIGtleSwgb3RoZXIsIG9iamVjdCwgc3RhY2spXG4gICAgICAgICAgICA6IGN1c3RvbWl6ZXIob2JqVmFsdWUsIG90aFZhbHVlLCBrZXksIG9iamVjdCwgb3RoZXIsIHN0YWNrKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIG9iamVjdHMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgaWYgKCEoY29tcGFyZWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IChvYmpWYWx1ZSA9PT0gb3RoVmFsdWUgfHwgZXF1YWxGdW5jKG9ialZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spKVxuICAgICAgICAgICAgICA6IGNvbXBhcmVkXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgc2tpcEN0b3IgfHwgKHNraXBDdG9yID0ga2V5ID09ICdjb25zdHJ1Y3RvcicpO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdCAmJiAhc2tpcEN0b3IpIHtcbiAgICAgICAgdmFyIG9iakN0b3IgPSBvYmplY3QuY29uc3RydWN0b3IsXG4gICAgICAgICAgICBvdGhDdG9yID0gb3RoZXIuY29uc3RydWN0b3I7XG5cbiAgICAgICAgLy8gTm9uIGBPYmplY3RgIG9iamVjdCBpbnN0YW5jZXMgd2l0aCBkaWZmZXJlbnQgY29uc3RydWN0b3JzIGFyZSBub3QgZXF1YWwuXG4gICAgICAgIGlmIChvYmpDdG9yICE9IG90aEN0b3IgJiZcbiAgICAgICAgICAgICgnY29uc3RydWN0b3InIGluIG9iamVjdCAmJiAnY29uc3RydWN0b3InIGluIG90aGVyKSAmJlxuICAgICAgICAgICAgISh0eXBlb2Ygb2JqQ3RvciA9PSAnZnVuY3Rpb24nICYmIG9iakN0b3IgaW5zdGFuY2VvZiBvYmpDdG9yICYmXG4gICAgICAgICAgICAgIHR5cGVvZiBvdGhDdG9yID09ICdmdW5jdGlvbicgJiYgb3RoQ3RvciBpbnN0YW5jZW9mIG90aEN0b3IpKSB7XG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHN0YWNrWydkZWxldGUnXShvYmplY3QpO1xuICAgICAgc3RhY2tbJ2RlbGV0ZSddKG90aGVyKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUmVzdGAgd2hpY2ggZmxhdHRlbnMgdGhlIHJlc3QgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmxhdFJlc3QoZnVuYykge1xuICAgICAgcmV0dXJuIHNldFRvU3RyaW5nKG92ZXJSZXN0KGZ1bmMsIHVuZGVmaW5lZCwgZmxhdHRlbiksIGZ1bmMgKyAnJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgYW5kIHN5bWJvbHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0QWxsS2V5cyhvYmplY3QpIHtcbiAgICAgIHJldHVybiBiYXNlR2V0QWxsS2V5cyhvYmplY3QsIGtleXMsIGdldFN5bWJvbHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcbiAgICAgKiBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRBbGxLZXlzSW4ob2JqZWN0KSB7XG4gICAgICByZXR1cm4gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzSW4sIGdldFN5bWJvbHNJbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBtZXRhZGF0YSBmb3IgYGZ1bmNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWV0YWRhdGEgZm9yIGBmdW5jYC5cbiAgICAgKi9cbiAgICB2YXIgZ2V0RGF0YSA9ICFtZXRhTWFwID8gbm9vcCA6IGZ1bmN0aW9uKGZ1bmMpIHtcbiAgICAgIHJldHVybiBtZXRhTWFwLmdldChmdW5jKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbmFtZSBvZiBgZnVuY2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGZ1bmN0aW9uIG5hbWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0RnVuY05hbWUoZnVuYykge1xuICAgICAgdmFyIHJlc3VsdCA9IChmdW5jLm5hbWUgKyAnJyksXG4gICAgICAgICAgYXJyYXkgPSByZWFsTmFtZXNbcmVzdWx0XSxcbiAgICAgICAgICBsZW5ndGggPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlYWxOYW1lcywgcmVzdWx0KSA/IGFycmF5Lmxlbmd0aCA6IDA7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICB2YXIgZGF0YSA9IGFycmF5W2xlbmd0aF0sXG4gICAgICAgICAgICBvdGhlckZ1bmMgPSBkYXRhLmZ1bmM7XG4gICAgICAgIGlmIChvdGhlckZ1bmMgPT0gbnVsbCB8fCBvdGhlckZ1bmMgPT0gZnVuYykge1xuICAgICAgICAgIHJldHVybiBkYXRhLm5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgYXJndW1lbnQgcGxhY2Vob2xkZXIgdmFsdWUgZm9yIGBmdW5jYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcGxhY2Vob2xkZXIgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0SG9sZGVyKGZ1bmMpIHtcbiAgICAgIHZhciBvYmplY3QgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKGxvZGFzaCwgJ3BsYWNlaG9sZGVyJykgPyBsb2Rhc2ggOiBmdW5jO1xuICAgICAgcmV0dXJuIG9iamVjdC5wbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBhcHByb3ByaWF0ZSBcIml0ZXJhdGVlXCIgZnVuY3Rpb24uIElmIGBfLml0ZXJhdGVlYCBpcyBjdXN0b21pemVkLFxuICAgICAqIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgY3VzdG9tIG1ldGhvZCwgb3RoZXJ3aXNlIGl0IHJldHVybnMgYGJhc2VJdGVyYXRlZWAuXG4gICAgICogSWYgYXJndW1lbnRzIGFyZSBwcm92aWRlZCwgdGhlIGNob3NlbiBmdW5jdGlvbiBpcyBpbnZva2VkIHdpdGggdGhlbSBhbmRcbiAgICAgKiBpdHMgcmVzdWx0IGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IFt2YWx1ZV0gVGhlIHZhbHVlIHRvIGNvbnZlcnQgdG8gYW4gaXRlcmF0ZWUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcml0eV0gVGhlIGFyaXR5IG9mIHRoZSBjcmVhdGVkIGl0ZXJhdGVlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgY2hvc2VuIGZ1bmN0aW9uIG9yIGl0cyByZXN1bHQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0SXRlcmF0ZWUoKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gbG9kYXNoLml0ZXJhdGVlIHx8IGl0ZXJhdGVlO1xuICAgICAgcmVzdWx0ID0gcmVzdWx0ID09PSBpdGVyYXRlZSA/IGJhc2VJdGVyYXRlZSA6IHJlc3VsdDtcbiAgICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gcmVzdWx0KGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdKSA6IHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBkYXRhIGZvciBgbWFwYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG1hcCBUaGUgbWFwIHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIHJlZmVyZW5jZSBrZXkuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1hcCBkYXRhLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldE1hcERhdGEobWFwLCBrZXkpIHtcbiAgICAgIHZhciBkYXRhID0gbWFwLl9fZGF0YV9fO1xuICAgICAgcmV0dXJuIGlzS2V5YWJsZShrZXkpXG4gICAgICAgID8gZGF0YVt0eXBlb2Yga2V5ID09ICdzdHJpbmcnID8gJ3N0cmluZycgOiAnaGFzaCddXG4gICAgICAgIDogZGF0YS5tYXA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcHJvcGVydHkgbmFtZXMsIHZhbHVlcywgYW5kIGNvbXBhcmUgZmxhZ3Mgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG1hdGNoIGRhdGEgb2YgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0TWF0Y2hEYXRhKG9iamVjdCkge1xuICAgICAgdmFyIHJlc3VsdCA9IGtleXMob2JqZWN0KSxcbiAgICAgICAgICBsZW5ndGggPSByZXN1bHQubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgdmFyIGtleSA9IHJlc3VsdFtsZW5ndGhdLFxuICAgICAgICAgICAgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuICAgICAgICByZXN1bHRbbGVuZ3RoXSA9IFtrZXksIHZhbHVlLCBpc1N0cmljdENvbXBhcmFibGUodmFsdWUpXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbmF0aXZlIGZ1bmN0aW9uIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBtZXRob2QgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXROYXRpdmUob2JqZWN0LCBrZXkpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGdldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgICAgIHJldHVybiBiYXNlSXNOYXRpdmUodmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlR2V0VGFnYCB3aGljaCBpZ25vcmVzIGBTeW1ib2wudG9TdHJpbmdUYWdgIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmF3IGB0b1N0cmluZ1RhZ2AuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0UmF3VGFnKHZhbHVlKSB7XG4gICAgICB2YXIgaXNPd24gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBzeW1Ub1N0cmluZ1RhZyksXG4gICAgICAgICAgdGFnID0gdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuXG4gICAgICB0cnkge1xuICAgICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciB1bm1hc2tlZCA9IHRydWU7XG4gICAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgICB2YXIgcmVzdWx0ID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgICBpZiAodW5tYXNrZWQpIHtcbiAgICAgICAgaWYgKGlzT3duKSB7XG4gICAgICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2Ygc3ltYm9scy5cbiAgICAgKi9cbiAgICB2YXIgZ2V0U3ltYm9scyA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgICByZXR1cm4gYXJyYXlGaWx0ZXIobmF0aXZlR2V0U3ltYm9scyhvYmplY3QpLCBmdW5jdGlvbihzeW1ib2wpIHtcbiAgICAgICAgcmV0dXJuIHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwob2JqZWN0LCBzeW1ib2wpO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2Ygc3ltYm9scy5cbiAgICAgKi9cbiAgICB2YXIgZ2V0U3ltYm9sc0luID0gIW5hdGl2ZUdldFN5bWJvbHMgPyBzdHViQXJyYXkgOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIHdoaWxlIChvYmplY3QpIHtcbiAgICAgICAgYXJyYXlQdXNoKHJlc3VsdCwgZ2V0U3ltYm9scyhvYmplY3QpKTtcbiAgICAgICAgb2JqZWN0ID0gZ2V0UHJvdG90eXBlKG9iamVjdCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBgdG9TdHJpbmdUYWdgIG9mIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gICAgICovXG4gICAgdmFyIGdldFRhZyA9IGJhc2VHZXRUYWc7XG5cbiAgICAvLyBGYWxsYmFjayBmb3IgZGF0YSB2aWV3cywgbWFwcywgc2V0cywgYW5kIHdlYWsgbWFwcyBpbiBJRSAxMSBhbmQgcHJvbWlzZXMgaW4gTm9kZS5qcyA8IDYuXG4gICAgaWYgKChEYXRhVmlldyAmJiBnZXRUYWcobmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigxKSkpICE9IGRhdGFWaWV3VGFnKSB8fFxuICAgICAgICAoTWFwICYmIGdldFRhZyhuZXcgTWFwKSAhPSBtYXBUYWcpIHx8XG4gICAgICAgIChQcm9taXNlICYmIGdldFRhZyhQcm9taXNlLnJlc29sdmUoKSkgIT0gcHJvbWlzZVRhZykgfHxcbiAgICAgICAgKFNldCAmJiBnZXRUYWcobmV3IFNldCkgIT0gc2V0VGFnKSB8fFxuICAgICAgICAoV2Vha01hcCAmJiBnZXRUYWcobmV3IFdlYWtNYXApICE9IHdlYWtNYXBUYWcpKSB7XG4gICAgICBnZXRUYWcgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gYmFzZUdldFRhZyh2YWx1ZSksXG4gICAgICAgICAgICBDdG9yID0gcmVzdWx0ID09IG9iamVjdFRhZyA/IHZhbHVlLmNvbnN0cnVjdG9yIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY3RvclN0cmluZyA9IEN0b3IgPyB0b1NvdXJjZShDdG9yKSA6ICcnO1xuXG4gICAgICAgIGlmIChjdG9yU3RyaW5nKSB7XG4gICAgICAgICAgc3dpdGNoIChjdG9yU3RyaW5nKSB7XG4gICAgICAgICAgICBjYXNlIGRhdGFWaWV3Q3RvclN0cmluZzogcmV0dXJuIGRhdGFWaWV3VGFnO1xuICAgICAgICAgICAgY2FzZSBtYXBDdG9yU3RyaW5nOiByZXR1cm4gbWFwVGFnO1xuICAgICAgICAgICAgY2FzZSBwcm9taXNlQ3RvclN0cmluZzogcmV0dXJuIHByb21pc2VUYWc7XG4gICAgICAgICAgICBjYXNlIHNldEN0b3JTdHJpbmc6IHJldHVybiBzZXRUYWc7XG4gICAgICAgICAgICBjYXNlIHdlYWtNYXBDdG9yU3RyaW5nOiByZXR1cm4gd2Vha01hcFRhZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgdmlldywgYXBwbHlpbmcgYW55IGB0cmFuc2Zvcm1zYCB0byB0aGUgYHN0YXJ0YCBhbmQgYGVuZGAgcG9zaXRpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSB2aWV3LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgVGhlIGVuZCBvZiB0aGUgdmlldy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSB0cmFuc2Zvcm1zIFRoZSB0cmFuc2Zvcm1hdGlvbnMgdG8gYXBwbHkgdG8gdGhlIHZpZXcuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgYHN0YXJ0YCBhbmQgYGVuZGBcbiAgICAgKiAgcG9zaXRpb25zIG9mIHRoZSB2aWV3LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldFZpZXcoc3RhcnQsIGVuZCwgdHJhbnNmb3Jtcykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gdHJhbnNmb3Jtcy5sZW5ndGg7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBkYXRhID0gdHJhbnNmb3Jtc1tpbmRleF0sXG4gICAgICAgICAgICBzaXplID0gZGF0YS5zaXplO1xuXG4gICAgICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnZHJvcCc6ICAgICAgc3RhcnQgKz0gc2l6ZTsgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZHJvcFJpZ2h0JzogZW5kIC09IHNpemU7IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Rha2UnOiAgICAgIGVuZCA9IG5hdGl2ZU1pbihlbmQsIHN0YXJ0ICsgc2l6ZSk7IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Rha2VSaWdodCc6IHN0YXJ0ID0gbmF0aXZlTWF4KHN0YXJ0LCBlbmQgLSBzaXplKTsgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7ICdzdGFydCc6IHN0YXJ0LCAnZW5kJzogZW5kIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXh0cmFjdHMgd3JhcHBlciBkZXRhaWxzIGZyb20gdGhlIGBzb3VyY2VgIGJvZHkgY29tbWVudC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZSBUaGUgc291cmNlIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSB3cmFwcGVyIGRldGFpbHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0V3JhcERldGFpbHMoc291cmNlKSB7XG4gICAgICB2YXIgbWF0Y2ggPSBzb3VyY2UubWF0Y2gocmVXcmFwRGV0YWlscyk7XG4gICAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsxXS5zcGxpdChyZVNwbGl0RGV0YWlscykgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHBhdGhgIGV4aXN0cyBvbiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIHRvIGNoZWNrLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGhhc0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGNoZWNrIHByb3BlcnRpZXMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBwYXRoYCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXNQYXRoKG9iamVjdCwgcGF0aCwgaGFzRnVuYykge1xuICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gdG9LZXkocGF0aFtpbmRleF0pO1xuICAgICAgICBpZiAoIShyZXN1bHQgPSBvYmplY3QgIT0gbnVsbCAmJiBoYXNGdW5jKG9iamVjdCwga2V5KSkpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBvYmplY3QgPSBvYmplY3Rba2V5XTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXN1bHQgfHwgKytpbmRleCAhPSBsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGxlbmd0aCA9IG9iamVjdCA9PSBudWxsID8gMCA6IG9iamVjdC5sZW5ndGg7XG4gICAgICByZXR1cm4gISFsZW5ndGggJiYgaXNMZW5ndGgobGVuZ3RoKSAmJiBpc0luZGV4KGtleSwgbGVuZ3RoKSAmJlxuICAgICAgICAoaXNBcnJheShvYmplY3QpIHx8IGlzQXJndW1lbnRzKG9iamVjdCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGFuIGFycmF5IGNsb25lLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY2xvbmUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbml0Q2xvbmVBcnJheShhcnJheSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBuZXcgYXJyYXkuY29uc3RydWN0b3IobGVuZ3RoKTtcblxuICAgICAgLy8gQWRkIHByb3BlcnRpZXMgYXNzaWduZWQgYnkgYFJlZ0V4cCNleGVjYC5cbiAgICAgIGlmIChsZW5ndGggJiYgdHlwZW9mIGFycmF5WzBdID09ICdzdHJpbmcnICYmIGhhc093blByb3BlcnR5LmNhbGwoYXJyYXksICdpbmRleCcpKSB7XG4gICAgICAgIHJlc3VsdC5pbmRleCA9IGFycmF5LmluZGV4O1xuICAgICAgICByZXN1bHQuaW5wdXQgPSBhcnJheS5pbnB1dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xvbmUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5pdENsb25lT2JqZWN0KG9iamVjdCkge1xuICAgICAgcmV0dXJuICh0eXBlb2Ygb2JqZWN0LmNvbnN0cnVjdG9yID09ICdmdW5jdGlvbicgJiYgIWlzUHJvdG90eXBlKG9iamVjdCkpXG4gICAgICAgID8gYmFzZUNyZWF0ZShnZXRQcm90b3R5cGUob2JqZWN0KSlcbiAgICAgICAgOiB7fTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUgYmFzZWQgb24gaXRzIGB0b1N0cmluZ1RhZ2AuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNsb25pbmcgdmFsdWVzIHdpdGggdGFncyBvZlxuICAgICAqIGBCb29sZWFuYCwgYERhdGVgLCBgRXJyb3JgLCBgTWFwYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBgU2V0YCwgb3IgYFN0cmluZ2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBgdG9TdHJpbmdUYWdgIG9mIHRoZSBvYmplY3QgdG8gY2xvbmUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbml0Q2xvbmVCeVRhZyhvYmplY3QsIHRhZywgaXNEZWVwKSB7XG4gICAgICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgYXJyYXlCdWZmZXJUYWc6XG4gICAgICAgICAgcmV0dXJuIGNsb25lQXJyYXlCdWZmZXIob2JqZWN0KTtcblxuICAgICAgICBjYXNlIGJvb2xUYWc6XG4gICAgICAgIGNhc2UgZGF0ZVRhZzpcbiAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoK29iamVjdCk7XG5cbiAgICAgICAgY2FzZSBkYXRhVmlld1RhZzpcbiAgICAgICAgICByZXR1cm4gY2xvbmVEYXRhVmlldyhvYmplY3QsIGlzRGVlcCk7XG5cbiAgICAgICAgY2FzZSBmbG9hdDMyVGFnOiBjYXNlIGZsb2F0NjRUYWc6XG4gICAgICAgIGNhc2UgaW50OFRhZzogY2FzZSBpbnQxNlRhZzogY2FzZSBpbnQzMlRhZzpcbiAgICAgICAgY2FzZSB1aW50OFRhZzogY2FzZSB1aW50OENsYW1wZWRUYWc6IGNhc2UgdWludDE2VGFnOiBjYXNlIHVpbnQzMlRhZzpcbiAgICAgICAgICByZXR1cm4gY2xvbmVUeXBlZEFycmF5KG9iamVjdCwgaXNEZWVwKTtcblxuICAgICAgICBjYXNlIG1hcFRhZzpcbiAgICAgICAgICByZXR1cm4gbmV3IEN0b3I7XG5cbiAgICAgICAgY2FzZSBudW1iZXJUYWc6XG4gICAgICAgIGNhc2Ugc3RyaW5nVGFnOlxuICAgICAgICAgIHJldHVybiBuZXcgQ3RvcihvYmplY3QpO1xuXG4gICAgICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgICAgIHJldHVybiBjbG9uZVJlZ0V4cChvYmplY3QpO1xuXG4gICAgICAgIGNhc2Ugc2V0VGFnOlxuICAgICAgICAgIHJldHVybiBuZXcgQ3RvcjtcblxuICAgICAgICBjYXNlIHN5bWJvbFRhZzpcbiAgICAgICAgICByZXR1cm4gY2xvbmVTeW1ib2wob2JqZWN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnNlcnRzIHdyYXBwZXIgYGRldGFpbHNgIGluIGEgY29tbWVudCBhdCB0aGUgdG9wIG9mIHRoZSBgc291cmNlYCBib2R5LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlIFRoZSBzb3VyY2UgdG8gbW9kaWZ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gZGV0YWlscyBUaGUgZGV0YWlscyB0byBpbnNlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgbW9kaWZpZWQgc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluc2VydFdyYXBEZXRhaWxzKHNvdXJjZSwgZGV0YWlscykge1xuICAgICAgdmFyIGxlbmd0aCA9IGRldGFpbHMubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICAgIH1cbiAgICAgIHZhciBsYXN0SW5kZXggPSBsZW5ndGggLSAxO1xuICAgICAgZGV0YWlsc1tsYXN0SW5kZXhdID0gKGxlbmd0aCA+IDEgPyAnJiAnIDogJycpICsgZGV0YWlsc1tsYXN0SW5kZXhdO1xuICAgICAgZGV0YWlscyA9IGRldGFpbHMuam9pbihsZW5ndGggPiAyID8gJywgJyA6ICcgJyk7XG4gICAgICByZXR1cm4gc291cmNlLnJlcGxhY2UocmVXcmFwQ29tbWVudCwgJ3tcXG4vKiBbd3JhcHBlZCB3aXRoICcgKyBkZXRhaWxzICsgJ10gKi9cXG4nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGZsYXR0ZW5hYmxlIGBhcmd1bWVudHNgIG9iamVjdCBvciBhcnJheS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZmxhdHRlbmFibGUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0ZsYXR0ZW5hYmxlKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNBcnJheSh2YWx1ZSkgfHwgaXNBcmd1bWVudHModmFsdWUpIHx8XG4gICAgICAgICEhKHNwcmVhZGFibGVTeW1ib2wgJiYgdmFsdWUgJiYgdmFsdWVbc3ByZWFkYWJsZVN5bWJvbF0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBpbmRleC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgaW5kZXgsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgICAgIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgICAgbGVuZ3RoID0gbGVuZ3RoID09IG51bGwgPyBNQVhfU0FGRV9JTlRFR0VSIDogbGVuZ3RoO1xuXG4gICAgICByZXR1cm4gISFsZW5ndGggJiZcbiAgICAgICAgKHR5cGUgPT0gJ251bWJlcicgfHxcbiAgICAgICAgICAodHlwZSAhPSAnc3ltYm9sJyAmJiByZUlzVWludC50ZXN0KHZhbHVlKSkpICYmXG4gICAgICAgICAgICAodmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBhcmd1bWVudHMgYXJlIGZyb20gYW4gaXRlcmF0ZWUgY2FsbC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIHZhbHVlIGFyZ3VtZW50LlxuICAgICAqIEBwYXJhbSB7Kn0gaW5kZXggVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBpbmRleCBvciBrZXkgYXJndW1lbnQuXG4gICAgICogQHBhcmFtIHsqfSBvYmplY3QgVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBvYmplY3QgYXJndW1lbnQuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBhcmd1bWVudHMgYXJlIGZyb20gYW4gaXRlcmF0ZWUgY2FsbCxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzSXRlcmF0ZWVDYWxsKHZhbHVlLCBpbmRleCwgb2JqZWN0KSB7XG4gICAgICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgaW5kZXg7XG4gICAgICBpZiAodHlwZSA9PSAnbnVtYmVyJ1xuICAgICAgICAgICAgPyAoaXNBcnJheUxpa2Uob2JqZWN0KSAmJiBpc0luZGV4KGluZGV4LCBvYmplY3QubGVuZ3RoKSlcbiAgICAgICAgICAgIDogKHR5cGUgPT0gJ3N0cmluZycgJiYgaW5kZXggaW4gb2JqZWN0KVxuICAgICAgICAgICkge1xuICAgICAgICByZXR1cm4gZXEob2JqZWN0W2luZGV4XSwgdmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSBhbmQgbm90IGEgcHJvcGVydHkgcGF0aC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkga2V5cyBvbi5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3BlcnR5IG5hbWUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0tleSh2YWx1ZSwgb2JqZWN0KSB7XG4gICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgICBpZiAodHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nIHx8XG4gICAgICAgICAgdmFsdWUgPT0gbnVsbCB8fCBpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVJc1BsYWluUHJvcC50ZXN0KHZhbHVlKSB8fCAhcmVJc0RlZXBQcm9wLnRlc3QodmFsdWUpIHx8XG4gICAgICAgIChvYmplY3QgIT0gbnVsbCAmJiB2YWx1ZSBpbiBPYmplY3Qob2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUgZm9yIHVzZSBhcyB1bmlxdWUgb2JqZWN0IGtleS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0tleWFibGUodmFsdWUpIHtcbiAgICAgIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgICAgcmV0dXJuICh0eXBlID09ICdzdHJpbmcnIHx8IHR5cGUgPT0gJ251bWJlcicgfHwgdHlwZSA9PSAnc3ltYm9sJyB8fCB0eXBlID09ICdib29sZWFuJylcbiAgICAgICAgPyAodmFsdWUgIT09ICdfX3Byb3RvX18nKVxuICAgICAgICA6ICh2YWx1ZSA9PT0gbnVsbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBmdW5jYCBoYXMgYSBsYXp5IGNvdW50ZXJwYXJ0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGhhcyBhIGxhenkgY291bnRlcnBhcnQsXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0xhemlhYmxlKGZ1bmMpIHtcbiAgICAgIHZhciBmdW5jTmFtZSA9IGdldEZ1bmNOYW1lKGZ1bmMpLFxuICAgICAgICAgIG90aGVyID0gbG9kYXNoW2Z1bmNOYW1lXTtcblxuICAgICAgaWYgKHR5cGVvZiBvdGhlciAhPSAnZnVuY3Rpb24nIHx8ICEoZnVuY05hbWUgaW4gTGF6eVdyYXBwZXIucHJvdG90eXBlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoZnVuYyA9PT0gb3RoZXIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICB2YXIgZGF0YSA9IGdldERhdGEob3RoZXIpO1xuICAgICAgcmV0dXJuICEhZGF0YSAmJiBmdW5jID09PSBkYXRhWzBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgZnVuY2AgaGFzIGl0cyBzb3VyY2UgbWFza2VkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGlzIG1hc2tlZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTWFza2VkKGZ1bmMpIHtcbiAgICAgIHJldHVybiAhIW1hc2tTcmNLZXkgJiYgKG1hc2tTcmNLZXkgaW4gZnVuYyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBmdW5jYCBpcyBjYXBhYmxlIG9mIGJlaW5nIG1hc2tlZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBmdW5jYCBpcyBtYXNrYWJsZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIHZhciBpc01hc2thYmxlID0gY29yZUpzRGF0YSA/IGlzRnVuY3Rpb24gOiBzdHViRmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYSBwcm90b3R5cGUgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3RvdHlwZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzUHJvdG90eXBlKHZhbHVlKSB7XG4gICAgICB2YXIgQ3RvciA9IHZhbHVlICYmIHZhbHVlLmNvbnN0cnVjdG9yLFxuICAgICAgICAgIHByb3RvID0gKHR5cGVvZiBDdG9yID09ICdmdW5jdGlvbicgJiYgQ3Rvci5wcm90b3R5cGUpIHx8IG9iamVjdFByb3RvO1xuXG4gICAgICByZXR1cm4gdmFsdWUgPT09IHByb3RvO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlIGZvciBzdHJpY3QgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGkuZS4gYD09PWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlmIHN1aXRhYmxlIGZvciBzdHJpY3RcbiAgICAgKiAgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1N0cmljdENvbXBhcmFibGUodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgJiYgIWlzT2JqZWN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYG1hdGNoZXNQcm9wZXJ0eWAgZm9yIHNvdXJjZSB2YWx1ZXMgc3VpdGFibGVcbiAgICAgKiBmb3Igc3RyaWN0IGVxdWFsaXR5IGNvbXBhcmlzb25zLCBpLmUuIGA9PT1gLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlKGtleSwgc3JjVmFsdWUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmplY3Rba2V5XSA9PT0gc3JjVmFsdWUgJiZcbiAgICAgICAgICAoc3JjVmFsdWUgIT09IHVuZGVmaW5lZCB8fCAoa2V5IGluIE9iamVjdChvYmplY3QpKSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tZW1vaXplYCB3aGljaCBjbGVhcnMgdGhlIG1lbW9pemVkIGZ1bmN0aW9uJ3NcbiAgICAgKiBjYWNoZSB3aGVuIGl0IGV4Y2VlZHMgYE1BWF9NRU1PSVpFX1NJWkVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgbWVtb2l6ZWQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWVtb2l6ZUNhcHBlZChmdW5jKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gbWVtb2l6ZShmdW5jLCBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgaWYgKGNhY2hlLnNpemUgPT09IE1BWF9NRU1PSVpFX1NJWkUpIHtcbiAgICAgICAgICBjYWNoZS5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgICB9KTtcblxuICAgICAgdmFyIGNhY2hlID0gcmVzdWx0LmNhY2hlO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXJnZXMgdGhlIGZ1bmN0aW9uIG1ldGFkYXRhIG9mIGBzb3VyY2VgIGludG8gYGRhdGFgLlxuICAgICAqXG4gICAgICogTWVyZ2luZyBtZXRhZGF0YSByZWR1Y2VzIHRoZSBudW1iZXIgb2Ygd3JhcHBlcnMgdXNlZCB0byBpbnZva2UgYSBmdW5jdGlvbi5cbiAgICAgKiBUaGlzIGlzIHBvc3NpYmxlIGJlY2F1c2UgbWV0aG9kcyBsaWtlIGBfLmJpbmRgLCBgXy5jdXJyeWAsIGFuZCBgXy5wYXJ0aWFsYFxuICAgICAqIG1heSBiZSBhcHBsaWVkIHJlZ2FyZGxlc3Mgb2YgZXhlY3V0aW9uIG9yZGVyLiBNZXRob2RzIGxpa2UgYF8uYXJ5YCBhbmRcbiAgICAgKiBgXy5yZWFyZ2AgbW9kaWZ5IGZ1bmN0aW9uIGFyZ3VtZW50cywgbWFraW5nIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFyZVxuICAgICAqIGV4ZWN1dGVkIGltcG9ydGFudCwgcHJldmVudGluZyB0aGUgbWVyZ2luZyBvZiBtZXRhZGF0YS4gSG93ZXZlciwgd2UgbWFrZVxuICAgICAqIGFuIGV4Y2VwdGlvbiBmb3IgYSBzYWZlIGNvbWJpbmVkIGNhc2Ugd2hlcmUgY3VycmllZCBmdW5jdGlvbnMgaGF2ZSBgXy5hcnlgXG4gICAgICogYW5kIG9yIGBfLnJlYXJnYCBhcHBsaWVkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBkYXRhIFRoZSBkZXN0aW5hdGlvbiBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIHNvdXJjZSBtZXRhZGF0YS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGRhdGFgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1lcmdlRGF0YShkYXRhLCBzb3VyY2UpIHtcbiAgICAgIHZhciBiaXRtYXNrID0gZGF0YVsxXSxcbiAgICAgICAgICBzcmNCaXRtYXNrID0gc291cmNlWzFdLFxuICAgICAgICAgIG5ld0JpdG1hc2sgPSBiaXRtYXNrIHwgc3JjQml0bWFzayxcbiAgICAgICAgICBpc0NvbW1vbiA9IG5ld0JpdG1hc2sgPCAoV1JBUF9CSU5EX0ZMQUcgfCBXUkFQX0JJTkRfS0VZX0ZMQUcgfCBXUkFQX0FSWV9GTEFHKTtcblxuICAgICAgdmFyIGlzQ29tYm8gPVxuICAgICAgICAoKHNyY0JpdG1hc2sgPT0gV1JBUF9BUllfRkxBRykgJiYgKGJpdG1hc2sgPT0gV1JBUF9DVVJSWV9GTEFHKSkgfHxcbiAgICAgICAgKChzcmNCaXRtYXNrID09IFdSQVBfQVJZX0ZMQUcpICYmIChiaXRtYXNrID09IFdSQVBfUkVBUkdfRkxBRykgJiYgKGRhdGFbN10ubGVuZ3RoIDw9IHNvdXJjZVs4XSkpIHx8XG4gICAgICAgICgoc3JjQml0bWFzayA9PSAoV1JBUF9BUllfRkxBRyB8IFdSQVBfUkVBUkdfRkxBRykpICYmIChzb3VyY2VbN10ubGVuZ3RoIDw9IHNvdXJjZVs4XSkgJiYgKGJpdG1hc2sgPT0gV1JBUF9DVVJSWV9GTEFHKSk7XG5cbiAgICAgIC8vIEV4aXQgZWFybHkgaWYgbWV0YWRhdGEgY2FuJ3QgYmUgbWVyZ2VkLlxuICAgICAgaWYgKCEoaXNDb21tb24gfHwgaXNDb21ibykpIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgICAvLyBVc2Ugc291cmNlIGB0aGlzQXJnYCBpZiBhdmFpbGFibGUuXG4gICAgICBpZiAoc3JjQml0bWFzayAmIFdSQVBfQklORF9GTEFHKSB7XG4gICAgICAgIGRhdGFbMl0gPSBzb3VyY2VbMl07XG4gICAgICAgIC8vIFNldCB3aGVuIGN1cnJ5aW5nIGEgYm91bmQgZnVuY3Rpb24uXG4gICAgICAgIG5ld0JpdG1hc2sgfD0gYml0bWFzayAmIFdSQVBfQklORF9GTEFHID8gMCA6IFdSQVBfQ1VSUllfQk9VTkRfRkxBRztcbiAgICAgIH1cbiAgICAgIC8vIENvbXBvc2UgcGFydGlhbCBhcmd1bWVudHMuXG4gICAgICB2YXIgdmFsdWUgPSBzb3VyY2VbM107XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdmFyIHBhcnRpYWxzID0gZGF0YVszXTtcbiAgICAgICAgZGF0YVszXSA9IHBhcnRpYWxzID8gY29tcG9zZUFyZ3MocGFydGlhbHMsIHZhbHVlLCBzb3VyY2VbNF0pIDogdmFsdWU7XG4gICAgICAgIGRhdGFbNF0gPSBwYXJ0aWFscyA/IHJlcGxhY2VIb2xkZXJzKGRhdGFbM10sIFBMQUNFSE9MREVSKSA6IHNvdXJjZVs0XTtcbiAgICAgIH1cbiAgICAgIC8vIENvbXBvc2UgcGFydGlhbCByaWdodCBhcmd1bWVudHMuXG4gICAgICB2YWx1ZSA9IHNvdXJjZVs1XTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBwYXJ0aWFscyA9IGRhdGFbNV07XG4gICAgICAgIGRhdGFbNV0gPSBwYXJ0aWFscyA/IGNvbXBvc2VBcmdzUmlnaHQocGFydGlhbHMsIHZhbHVlLCBzb3VyY2VbNl0pIDogdmFsdWU7XG4gICAgICAgIGRhdGFbNl0gPSBwYXJ0aWFscyA/IHJlcGxhY2VIb2xkZXJzKGRhdGFbNV0sIFBMQUNFSE9MREVSKSA6IHNvdXJjZVs2XTtcbiAgICAgIH1cbiAgICAgIC8vIFVzZSBzb3VyY2UgYGFyZ1Bvc2AgaWYgYXZhaWxhYmxlLlxuICAgICAgdmFsdWUgPSBzb3VyY2VbN107XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgZGF0YVs3XSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgLy8gVXNlIHNvdXJjZSBgYXJ5YCBpZiBpdCdzIHNtYWxsZXIuXG4gICAgICBpZiAoc3JjQml0bWFzayAmIFdSQVBfQVJZX0ZMQUcpIHtcbiAgICAgICAgZGF0YVs4XSA9IGRhdGFbOF0gPT0gbnVsbCA/IHNvdXJjZVs4XSA6IG5hdGl2ZU1pbihkYXRhWzhdLCBzb3VyY2VbOF0pO1xuICAgICAgfVxuICAgICAgLy8gVXNlIHNvdXJjZSBgYXJpdHlgIGlmIG9uZSBpcyBub3QgcHJvdmlkZWQuXG4gICAgICBpZiAoZGF0YVs5XSA9PSBudWxsKSB7XG4gICAgICAgIGRhdGFbOV0gPSBzb3VyY2VbOV07XG4gICAgICB9XG4gICAgICAvLyBVc2Ugc291cmNlIGBmdW5jYCBhbmQgbWVyZ2UgYml0bWFza3MuXG4gICAgICBkYXRhWzBdID0gc291cmNlWzBdO1xuICAgICAgZGF0YVsxXSA9IG5ld0JpdG1hc2s7XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZVxuICAgICAqIFtgT2JqZWN0LmtleXNgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3Qua2V5cylcbiAgICAgKiBleGNlcHQgdGhhdCBpdCBpbmNsdWRlcyBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBuYXRpdmVLZXlzSW4ob2JqZWN0KSB7XG4gICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICBpZiAob2JqZWN0ICE9IG51bGwpIHtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIE9iamVjdChvYmplY3QpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIHVzaW5nIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG9iamVjdFRvU3RyaW5nKHZhbHVlKSB7XG4gICAgICByZXR1cm4gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUmVzdGAgd2hpY2ggdHJhbnNmb3JtcyB0aGUgcmVzdCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PWZ1bmMubGVuZ3RoLTFdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgcmVzdCBwYXJhbWV0ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNmb3JtIFRoZSByZXN0IGFycmF5IHRyYW5zZm9ybS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBvdmVyUmVzdChmdW5jLCBzdGFydCwgdHJhbnNmb3JtKSB7XG4gICAgICBzdGFydCA9IG5hdGl2ZU1heChzdGFydCA9PT0gdW5kZWZpbmVkID8gKGZ1bmMubGVuZ3RoIC0gMSkgOiBzdGFydCwgMCk7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzLFxuICAgICAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChhcmdzLmxlbmd0aCAtIHN0YXJ0LCAwKSxcbiAgICAgICAgICAgIGFycmF5ID0gQXJyYXkobGVuZ3RoKTtcblxuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIGFycmF5W2luZGV4XSA9IGFyZ3Nbc3RhcnQgKyBpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgaW5kZXggPSAtMTtcbiAgICAgICAgdmFyIG90aGVyQXJncyA9IEFycmF5KHN0YXJ0ICsgMSk7XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgc3RhcnQpIHtcbiAgICAgICAgICBvdGhlckFyZ3NbaW5kZXhdID0gYXJnc1tpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgb3RoZXJBcmdzW3N0YXJ0XSA9IHRyYW5zZm9ybShhcnJheSk7XG4gICAgICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzLCBvdGhlckFyZ3MpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBwYXJlbnQgdmFsdWUgYXQgYHBhdGhgIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGF0aCBUaGUgcGF0aCB0byBnZXQgdGhlIHBhcmVudCB2YWx1ZSBvZi5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcGFyZW50IHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHBhcmVudChvYmplY3QsIHBhdGgpIHtcbiAgICAgIHJldHVybiBwYXRoLmxlbmd0aCA8IDIgPyBvYmplY3QgOiBiYXNlR2V0KG9iamVjdCwgYmFzZVNsaWNlKHBhdGgsIDAsIC0xKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVvcmRlciBgYXJyYXlgIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGluZGV4ZXMgd2hlcmUgdGhlIGVsZW1lbnQgYXRcbiAgICAgKiB0aGUgZmlyc3QgaW5kZXggaXMgYXNzaWduZWQgYXMgdGhlIGZpcnN0IGVsZW1lbnQsIHRoZSBlbGVtZW50IGF0XG4gICAgICogdGhlIHNlY29uZCBpbmRleCBpcyBhc3NpZ25lZCBhcyB0aGUgc2Vjb25kIGVsZW1lbnQsIGFuZCBzbyBvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHJlb3JkZXIuXG4gICAgICogQHBhcmFtIHtBcnJheX0gaW5kZXhlcyBUaGUgYXJyYW5nZWQgYXJyYXkgaW5kZXhlcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZW9yZGVyKGFycmF5LCBpbmRleGVzKSB7XG4gICAgICB2YXIgYXJyTGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1pbihpbmRleGVzLmxlbmd0aCwgYXJyTGVuZ3RoKSxcbiAgICAgICAgICBvbGRBcnJheSA9IGNvcHlBcnJheShhcnJheSk7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICB2YXIgaW5kZXggPSBpbmRleGVzW2xlbmd0aF07XG4gICAgICAgIGFycmF5W2xlbmd0aF0gPSBpc0luZGV4KGluZGV4LCBhcnJMZW5ndGgpID8gb2xkQXJyYXlbaW5kZXhdIDogdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHZhbHVlIGF0IGBrZXlgLCB1bmxlc3MgYGtleWAgaXMgXCJfX3Byb3RvX19cIiBvciBcImNvbnN0cnVjdG9yXCIuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2FmZUdldChvYmplY3QsIGtleSkge1xuICAgICAgaWYgKGtleSA9PT0gJ2NvbnN0cnVjdG9yJyAmJiB0eXBlb2Ygb2JqZWN0W2tleV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoa2V5ID09ICdfX3Byb3RvX18nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9iamVjdFtrZXldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgbWV0YWRhdGEgZm9yIGBmdW5jYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBJZiB0aGlzIGZ1bmN0aW9uIGJlY29tZXMgaG90LCBpLmUuIGlzIGludm9rZWQgYSBsb3QgaW4gYSBzaG9ydFxuICAgICAqIHBlcmlvZCBvZiB0aW1lLCBpdCB3aWxsIHRyaXAgaXRzIGJyZWFrZXIgYW5kIHRyYW5zaXRpb24gdG8gYW4gaWRlbnRpdHlcbiAgICAgKiBmdW5jdGlvbiB0byBhdm9pZCBnYXJiYWdlIGNvbGxlY3Rpb24gcGF1c2VzIGluIFY4LiBTZWVcbiAgICAgKiBbVjggaXNzdWUgMjA3MF0oaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MjA3MClcbiAgICAgKiBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhc3NvY2lhdGUgbWV0YWRhdGEgd2l0aC5cbiAgICAgKiBAcGFyYW0geyp9IGRhdGEgVGhlIG1ldGFkYXRhLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gICAgICovXG4gICAgdmFyIHNldERhdGEgPSBzaG9ydE91dChiYXNlU2V0RGF0YSk7XG5cbiAgICAvKipcbiAgICAgKiBBIHNpbXBsZSB3cmFwcGVyIGFyb3VuZCB0aGUgZ2xvYmFsIFtgc2V0VGltZW91dGBdKGh0dHBzOi8vbWRuLmlvL3NldFRpbWVvdXQpLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWxheS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2FpdCBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheSBpbnZvY2F0aW9uLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ8T2JqZWN0fSBSZXR1cm5zIHRoZSB0aW1lciBpZCBvciB0aW1lb3V0IG9iamVjdC5cbiAgICAgKi9cbiAgICB2YXIgc2V0VGltZW91dCA9IGN0eFNldFRpbWVvdXQgfHwgZnVuY3Rpb24oZnVuYywgd2FpdCkge1xuICAgICAgcmV0dXJuIHJvb3Quc2V0VGltZW91dChmdW5jLCB3YWl0KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYHRvU3RyaW5nYCBtZXRob2Qgb2YgYGZ1bmNgIHRvIHJldHVybiBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHN0cmluZyBUaGUgYHRvU3RyaW5nYCByZXN1bHQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAgICAgKi9cbiAgICB2YXIgc2V0VG9TdHJpbmcgPSBzaG9ydE91dChiYXNlU2V0VG9TdHJpbmcpO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYHRvU3RyaW5nYCBtZXRob2Qgb2YgYHdyYXBwZXJgIHRvIG1pbWljIHRoZSBzb3VyY2Ugb2YgYHJlZmVyZW5jZWBcbiAgICAgKiB3aXRoIHdyYXBwZXIgZGV0YWlscyBpbiBhIGNvbW1lbnQgYXQgdGhlIHRvcCBvZiB0aGUgc291cmNlIGJvZHkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHdyYXBwZXIgVGhlIGZ1bmN0aW9uIHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSByZWZlcmVuY2UgVGhlIHJlZmVyZW5jZSBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgd3JhcHBlcmAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2V0V3JhcFRvU3RyaW5nKHdyYXBwZXIsIHJlZmVyZW5jZSwgYml0bWFzaykge1xuICAgICAgdmFyIHNvdXJjZSA9IChyZWZlcmVuY2UgKyAnJyk7XG4gICAgICByZXR1cm4gc2V0VG9TdHJpbmcod3JhcHBlciwgaW5zZXJ0V3JhcERldGFpbHMoc291cmNlLCB1cGRhdGVXcmFwRGV0YWlscyhnZXRXcmFwRGV0YWlscyhzb3VyY2UpLCBiaXRtYXNrKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0J2xsIHNob3J0IG91dCBhbmQgaW52b2tlIGBpZGVudGl0eWAgaW5zdGVhZFxuICAgICAqIG9mIGBmdW5jYCB3aGVuIGl0J3MgY2FsbGVkIGBIT1RfQ09VTlRgIG9yIG1vcmUgdGltZXMgaW4gYEhPVF9TUEFOYFxuICAgICAqIG1pbGxpc2Vjb25kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc2hvcnRhYmxlIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNob3J0T3V0KGZ1bmMpIHtcbiAgICAgIHZhciBjb3VudCA9IDAsXG4gICAgICAgICAgbGFzdENhbGxlZCA9IDA7XG5cbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHN0YW1wID0gbmF0aXZlTm93KCksXG4gICAgICAgICAgICByZW1haW5pbmcgPSBIT1RfU1BBTiAtIChzdGFtcCAtIGxhc3RDYWxsZWQpO1xuXG4gICAgICAgIGxhc3RDYWxsZWQgPSBzdGFtcDtcbiAgICAgICAgaWYgKHJlbWFpbmluZyA+IDApIHtcbiAgICAgICAgICBpZiAoKytjb3VudCA+PSBIT1RfQ09VTlQpIHtcbiAgICAgICAgICAgIHJldHVybiBhcmd1bWVudHNbMF07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvdW50ID0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuYy5hcHBseSh1bmRlZmluZWQsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zaHVmZmxlYCB3aGljaCBtdXRhdGVzIGFuZCBzZXRzIHRoZSBzaXplIG9mIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzaHVmZmxlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2l6ZT1hcnJheS5sZW5ndGhdIFRoZSBzaXplIG9mIGBhcnJheWAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2h1ZmZsZVNlbGYoYXJyYXksIHNpemUpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICBsYXN0SW5kZXggPSBsZW5ndGggLSAxO1xuXG4gICAgICBzaXplID0gc2l6ZSA9PT0gdW5kZWZpbmVkID8gbGVuZ3RoIDogc2l6ZTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgc2l6ZSkge1xuICAgICAgICB2YXIgcmFuZCA9IGJhc2VSYW5kb20oaW5kZXgsIGxhc3RJbmRleCksXG4gICAgICAgICAgICB2YWx1ZSA9IGFycmF5W3JhbmRdO1xuXG4gICAgICAgIGFycmF5W3JhbmRdID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICBhcnJheVtpbmRleF0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGFycmF5Lmxlbmd0aCA9IHNpemU7XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gYSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gICAgICovXG4gICAgdmFyIHN0cmluZ1RvUGF0aCA9IG1lbW9pemVDYXBwZWQoZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICBpZiAoc3RyaW5nLmNoYXJDb2RlQXQoMCkgPT09IDQ2IC8qIC4gKi8pIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJycpO1xuICAgICAgfVxuICAgICAgc3RyaW5nLnJlcGxhY2UocmVQcm9wTmFtZSwgZnVuY3Rpb24obWF0Y2gsIG51bWJlciwgcXVvdGUsIHN1YlN0cmluZykge1xuICAgICAgICByZXN1bHQucHVzaChxdW90ZSA/IHN1YlN0cmluZy5yZXBsYWNlKHJlRXNjYXBlQ2hhciwgJyQxJykgOiAobnVtYmVyIHx8IG1hdGNoKSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIGtleSBpZiBpdCdzIG5vdCBhIHN0cmluZyBvciBzeW1ib2wuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge3N0cmluZ3xzeW1ib2x9IFJldHVybnMgdGhlIGtleS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b0tleSh2YWx1ZSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fCBpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9ICh2YWx1ZSArICcnKTtcbiAgICAgIHJldHVybiAocmVzdWx0ID09ICcwJyAmJiAoMSAvIHZhbHVlKSA9PSAtSU5GSU5JVFkpID8gJy0wJyA6IHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgZnVuY2AgdG8gaXRzIHNvdXJjZSBjb2RlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNvdXJjZSBjb2RlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvU291cmNlKGZ1bmMpIHtcbiAgICAgIGlmIChmdW5jICE9IG51bGwpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gZnVuY1RvU3RyaW5nLmNhbGwoZnVuYyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIChmdW5jICsgJycpO1xuICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgfVxuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgd3JhcHBlciBgZGV0YWlsc2AgYmFzZWQgb24gYGJpdG1hc2tgIGZsYWdzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IGRldGFpbHMgVGhlIGRldGFpbHMgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBkZXRhaWxzYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1cGRhdGVXcmFwRGV0YWlscyhkZXRhaWxzLCBiaXRtYXNrKSB7XG4gICAgICBhcnJheUVhY2god3JhcEZsYWdzLCBmdW5jdGlvbihwYWlyKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9ICdfLicgKyBwYWlyWzBdO1xuICAgICAgICBpZiAoKGJpdG1hc2sgJiBwYWlyWzFdKSAmJiAhYXJyYXlJbmNsdWRlcyhkZXRhaWxzLCB2YWx1ZSkpIHtcbiAgICAgICAgICBkZXRhaWxzLnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBkZXRhaWxzLnNvcnQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgYHdyYXBwZXJgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gd3JhcHBlciBUaGUgd3JhcHBlciB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgd3JhcHBlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyQ2xvbmUod3JhcHBlcikge1xuICAgICAgaWYgKHdyYXBwZXIgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikge1xuICAgICAgICByZXR1cm4gd3JhcHBlci5jbG9uZSgpO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IG5ldyBMb2Rhc2hXcmFwcGVyKHdyYXBwZXIuX193cmFwcGVkX18sIHdyYXBwZXIuX19jaGFpbl9fKTtcbiAgICAgIHJlc3VsdC5fX2FjdGlvbnNfXyA9IGNvcHlBcnJheSh3cmFwcGVyLl9fYWN0aW9uc19fKTtcbiAgICAgIHJlc3VsdC5fX2luZGV4X18gID0gd3JhcHBlci5fX2luZGV4X187XG4gICAgICByZXN1bHQuX192YWx1ZXNfXyA9IHdyYXBwZXIuX192YWx1ZXNfXztcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBlbGVtZW50cyBzcGxpdCBpbnRvIGdyb3VwcyB0aGUgbGVuZ3RoIG9mIGBzaXplYC5cbiAgICAgKiBJZiBgYXJyYXlgIGNhbid0IGJlIHNwbGl0IGV2ZW5seSwgdGhlIGZpbmFsIGNodW5rIHdpbGwgYmUgdGhlIHJlbWFpbmluZ1xuICAgICAqIGVsZW1lbnRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHByb2Nlc3MuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzaXplPTFdIFRoZSBsZW5ndGggb2YgZWFjaCBjaHVua1xuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY2h1bmtzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNodW5rKFsnYScsICdiJywgJ2MnLCAnZCddLCAyKTtcbiAgICAgKiAvLyA9PiBbWydhJywgJ2InXSwgWydjJywgJ2QnXV1cbiAgICAgKlxuICAgICAqIF8uY2h1bmsoWydhJywgJ2InLCAnYycsICdkJ10sIDMpO1xuICAgICAqIC8vID0+IFtbJ2EnLCAnYicsICdjJ10sIFsnZCddXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNodW5rKGFycmF5LCBzaXplLCBndWFyZCkge1xuICAgICAgaWYgKChndWFyZCA/IGlzSXRlcmF0ZWVDYWxsKGFycmF5LCBzaXplLCBndWFyZCkgOiBzaXplID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIHNpemUgPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2l6ZSA9IG5hdGl2ZU1heCh0b0ludGVnZXIoc2l6ZSksIDApO1xuICAgICAgfVxuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGggfHwgc2l6ZSA8IDEpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gMCxcbiAgICAgICAgICByZXNJbmRleCA9IDAsXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkobmF0aXZlQ2VpbChsZW5ndGggLyBzaXplKSk7XG5cbiAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSBiYXNlU2xpY2UoYXJyYXksIGluZGV4LCAoaW5kZXggKz0gc2l6ZSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggYWxsIGZhbHNleSB2YWx1ZXMgcmVtb3ZlZC4gVGhlIHZhbHVlcyBgZmFsc2VgLCBgbnVsbGAsXG4gICAgICogYDBgLCBgXCJcImAsIGB1bmRlZmluZWRgLCBhbmQgYE5hTmAgYXJlIGZhbHNleS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjb21wYWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5jb21wYWN0KFswLCAxLCBmYWxzZSwgMiwgJycsIDNdKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb21wYWN0KGFycmF5KSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXNJbmRleCA9IDAsXG4gICAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgcmVzdWx0W3Jlc0luZGV4KytdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBhcnJheSBjb25jYXRlbmF0aW5nIGBhcnJheWAgd2l0aCBhbnkgYWRkaXRpb25hbCBhcnJheXNcbiAgICAgKiBhbmQvb3IgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNvbmNhdGVuYXRlLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBjb25jYXRlbmF0ZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBjb25jYXRlbmF0ZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsxXTtcbiAgICAgKiB2YXIgb3RoZXIgPSBfLmNvbmNhdChhcnJheSwgMiwgWzNdLCBbWzRdXSk7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhvdGhlcik7XG4gICAgICogLy8gPT4gWzEsIDIsIDMsIFs0XV1cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb25jYXQoKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHZhciBhcmdzID0gQXJyYXkobGVuZ3RoIC0gMSksXG4gICAgICAgICAgYXJyYXkgPSBhcmd1bWVudHNbMF0sXG4gICAgICAgICAgaW5kZXggPSBsZW5ndGg7XG5cbiAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgIGFyZ3NbaW5kZXggLSAxXSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXlQdXNoKGlzQXJyYXkoYXJyYXkpID8gY29weUFycmF5KGFycmF5KSA6IFthcnJheV0sIGJhc2VGbGF0dGVuKGFyZ3MsIDEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGBhcnJheWAgdmFsdWVzIG5vdCBpbmNsdWRlZCBpbiB0aGUgb3RoZXIgZ2l2ZW4gYXJyYXlzXG4gICAgICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuIFRoZSBvcmRlciBhbmQgcmVmZXJlbmNlcyBvZiByZXN1bHQgdmFsdWVzIGFyZVxuICAgICAqIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IGFycmF5LlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5wdWxsQWxsYCwgdGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBhcnJheS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gZXhjbHVkZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQHNlZSBfLndpdGhvdXQsIF8ueG9yXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGlmZmVyZW5jZShbMiwgMV0sIFsyLCAzXSk7XG4gICAgICogLy8gPT4gWzFdXG4gICAgICovXG4gICAgdmFyIGRpZmZlcmVuY2UgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheSwgdmFsdWVzKSB7XG4gICAgICByZXR1cm4gaXNBcnJheUxpa2VPYmplY3QoYXJyYXkpXG4gICAgICAgID8gYmFzZURpZmZlcmVuY2UoYXJyYXksIGJhc2VGbGF0dGVuKHZhbHVlcywgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5kaWZmZXJlbmNlYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCBhbmQgYHZhbHVlc2AgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvblxuICAgICAqIGJ5IHdoaWNoIHRoZXkncmUgY29tcGFyZWQuIFRoZSBvcmRlciBhbmQgcmVmZXJlbmNlcyBvZiByZXN1bHQgdmFsdWVzIGFyZVxuICAgICAqIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IGFycmF5LiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDpcbiAgICAgKiAodmFsdWUpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5wdWxsQWxsQnlgLCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBleGNsdWRlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGlmZmVyZW5jZUJ5KFsyLjEsIDEuMl0sIFsyLjMsIDMuNF0sIE1hdGguZmxvb3IpO1xuICAgICAqIC8vID0+IFsxLjJdXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmRpZmZlcmVuY2VCeShbeyAneCc6IDIgfSwgeyAneCc6IDEgfV0sIFt7ICd4JzogMSB9XSwgJ3gnKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDIgfV1cbiAgICAgKi9cbiAgICB2YXIgZGlmZmVyZW5jZUJ5ID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXksIHZhbHVlcykge1xuICAgICAgdmFyIGl0ZXJhdGVlID0gbGFzdCh2YWx1ZXMpO1xuICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGl0ZXJhdGVlKSkge1xuICAgICAgICBpdGVyYXRlZSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdChhcnJheSlcbiAgICAgICAgPyBiYXNlRGlmZmVyZW5jZShhcnJheSwgYmFzZUZsYXR0ZW4odmFsdWVzLCAxLCBpc0FycmF5TGlrZU9iamVjdCwgdHJ1ZSksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSlcbiAgICAgICAgOiBbXTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZGlmZmVyZW5jZWAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmBcbiAgICAgKiB3aGljaCBpcyBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5YCB0byBgdmFsdWVzYC4gVGhlIG9yZGVyIGFuZFxuICAgICAqIHJlZmVyZW5jZXMgb2YgcmVzdWx0IHZhbHVlcyBhcmUgZGV0ZXJtaW5lZCBieSB0aGUgZmlyc3QgYXJyYXkuIFRoZSBjb21wYXJhdG9yXG4gICAgICogaXMgaW52b2tlZCB3aXRoIHR3byBhcmd1bWVudHM6IChhcnJWYWwsIG90aFZhbCkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLnB1bGxBbGxXaXRoYCwgdGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBhcnJheS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gZXhjbHVkZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9XTtcbiAgICAgKlxuICAgICAqIF8uZGlmZmVyZW5jZVdpdGgob2JqZWN0cywgW3sgJ3gnOiAxLCAneSc6IDIgfV0sIF8uaXNFcXVhbCk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAyLCAneSc6IDEgfV1cbiAgICAgKi9cbiAgICB2YXIgZGlmZmVyZW5jZVdpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheSwgdmFsdWVzKSB7XG4gICAgICB2YXIgY29tcGFyYXRvciA9IGxhc3QodmFsdWVzKTtcbiAgICAgIGlmIChpc0FycmF5TGlrZU9iamVjdChjb21wYXJhdG9yKSkge1xuICAgICAgICBjb21wYXJhdG9yID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlT2JqZWN0KGFycmF5KVxuICAgICAgICA/IGJhc2VEaWZmZXJlbmNlKGFycmF5LCBiYXNlRmxhdHRlbih2YWx1ZXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSwgdW5kZWZpbmVkLCBjb21wYXJhdG9yKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBgbmAgZWxlbWVudHMgZHJvcHBlZCBmcm9tIHRoZSBiZWdpbm5pbmcuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC41LjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTFdIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gZHJvcC5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kcm9wKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gWzIsIDNdXG4gICAgICpcbiAgICAgKiBfLmRyb3AoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbM11cbiAgICAgKlxuICAgICAqIF8uZHJvcChbMSwgMiwgM10sIDUpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICpcbiAgICAgKiBfLmRyb3AoWzEsIDIsIDNdLCAwKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkcm9wKGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgbiA9IChndWFyZCB8fCBuID09PSB1bmRlZmluZWQpID8gMSA6IHRvSW50ZWdlcihuKTtcbiAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIG4gPCAwID8gMCA6IG4sIGxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBgbmAgZWxlbWVudHMgZHJvcHBlZCBmcm9tIHRoZSBlbmQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTFdIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gZHJvcC5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kcm9wUmlnaHQoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIF8uZHJvcFJpZ2h0KFsxLCAyLCAzXSwgMik7XG4gICAgICogLy8gPT4gWzFdXG4gICAgICpcbiAgICAgKiBfLmRyb3BSaWdodChbMSwgMiwgM10sIDUpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICpcbiAgICAgKiBfLmRyb3BSaWdodChbMSwgMiwgM10sIDApO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRyb3BSaWdodChhcnJheSwgbiwgZ3VhcmQpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIG4gPSAoZ3VhcmQgfHwgbiA9PT0gdW5kZWZpbmVkKSA/IDEgOiB0b0ludGVnZXIobik7XG4gICAgICBuID0gbGVuZ3RoIC0gbjtcbiAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIDAsIG4gPCAwID8gMCA6IG4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIGV4Y2x1ZGluZyBlbGVtZW50cyBkcm9wcGVkIGZyb20gdGhlIGVuZC5cbiAgICAgKiBFbGVtZW50cyBhcmUgZHJvcHBlZCB1bnRpbCBgcHJlZGljYXRlYCByZXR1cm5zIGZhbHNleS4gVGhlIHByZWRpY2F0ZSBpc1xuICAgICAqIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGFycmF5KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmRyb3BSaWdodFdoaWxlKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiAhby5hY3RpdmU7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5kcm9wUmlnaHRXaGlsZSh1c2VycywgeyAndXNlcic6ICdwZWJibGVzJywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5JywgJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZHJvcFJpZ2h0V2hpbGUodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leSddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmRyb3BSaWdodFdoaWxlKHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknLCAnZnJlZCcsICdwZWJibGVzJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkcm9wUmlnaHRXaGlsZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlV2hpbGUoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIHRydWUsIHRydWUpXG4gICAgICAgIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgZXhjbHVkaW5nIGVsZW1lbnRzIGRyb3BwZWQgZnJvbSB0aGUgYmVnaW5uaW5nLlxuICAgICAqIEVsZW1lbnRzIGFyZSBkcm9wcGVkIHVudGlsIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5LiBUaGUgcHJlZGljYXRlIGlzXG4gICAgICogaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgYXJyYXkpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogdHJ1ZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZHJvcFdoaWxlKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiAhby5hY3RpdmU7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZHJvcFdoaWxlKHVzZXJzLCB7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiBmYWxzZSB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnLCAncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5kcm9wV2hpbGUodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ3BlYmJsZXMnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5kcm9wV2hpbGUodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leScsICdmcmVkJywgJ3BlYmJsZXMnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRyb3BXaGlsZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlV2hpbGUoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIHRydWUpXG4gICAgICAgIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmlsbHMgZWxlbWVudHMgb2YgYGFycmF5YCB3aXRoIGB2YWx1ZWAgZnJvbSBgc3RhcnRgIHVwIHRvLCBidXQgbm90XG4gICAgICogaW5jbHVkaW5nLCBgZW5kYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4yLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmlsbC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBmaWxsIGBhcnJheWAgd2l0aC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsxLCAyLCAzXTtcbiAgICAgKlxuICAgICAqIF8uZmlsbChhcnJheSwgJ2EnKTtcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gWydhJywgJ2EnLCAnYSddXG4gICAgICpcbiAgICAgKiBfLmZpbGwoQXJyYXkoMyksIDIpO1xuICAgICAqIC8vID0+IFsyLCAyLCAyXVxuICAgICAqXG4gICAgICogXy5maWxsKFs0LCA2LCA4LCAxMF0sICcqJywgMSwgMyk7XG4gICAgICogLy8gPT4gWzQsICcqJywgJyonLCAxMF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKHN0YXJ0ICYmIHR5cGVvZiBzdGFydCAhPSAnbnVtYmVyJyAmJiBpc0l0ZXJhdGVlQ2FsbChhcnJheSwgdmFsdWUsIHN0YXJ0KSkge1xuICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgIGVuZCA9IGxlbmd0aDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlRmlsbChhcnJheSwgdmFsdWUsIHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZGAgZXhjZXB0IHRoYXQgaXQgcmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0XG4gICAgICogZWxlbWVudCBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgaW5zdGVhZCBvZiB0aGUgZWxlbWVudCBpdHNlbGYuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMS4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmcm9tSW5kZXg9MF0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmb3VuZCBlbGVtZW50LCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogdHJ1ZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmluZEluZGV4KHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLnVzZXIgPT0gJ2Jhcm5leSc7IH0pO1xuICAgICAqIC8vID0+IDBcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kSW5kZXgodXNlcnMsIHsgJ3VzZXInOiAnZnJlZCcsICdhY3RpdmUnOiBmYWxzZSB9KTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kSW5kZXgodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiAwXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRJbmRleCh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IDJcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaW5kSW5kZXgoYXJyYXksIHByZWRpY2F0ZSwgZnJvbUluZGV4KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSBmcm9tSW5kZXggPT0gbnVsbCA/IDAgOiB0b0ludGVnZXIoZnJvbUluZGV4KTtcbiAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgaW5kZXggPSBuYXRpdmVNYXgobGVuZ3RoICsgaW5kZXgsIDApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VGaW5kSW5kZXgoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGluZGV4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZpbmRJbmRleGAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50c1xuICAgICAqIG9mIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmcm9tSW5kZXg9YXJyYXkubGVuZ3RoLTFdIFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZm91bmQgZWxlbWVudCwgZWxzZSBgLTFgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmZpbmRMYXN0SW5kZXgodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8udXNlciA9PSAncGViYmxlcyc7IH0pO1xuICAgICAqIC8vID0+IDJcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kTGFzdEluZGV4KHVzZXJzLCB7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiB0cnVlIH0pO1xuICAgICAqIC8vID0+IDBcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRMYXN0SW5kZXgodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRMYXN0SW5kZXgodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiAwXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmluZExhc3RJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tSW5kZXgpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IGxlbmd0aCAtIDE7XG4gICAgICBpZiAoZnJvbUluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaW5kZXggPSB0b0ludGVnZXIoZnJvbUluZGV4KTtcbiAgICAgICAgaW5kZXggPSBmcm9tSW5kZXggPCAwXG4gICAgICAgICAgPyBuYXRpdmVNYXgobGVuZ3RoICsgaW5kZXgsIDApXG4gICAgICAgICAgOiBuYXRpdmVNaW4oaW5kZXgsIGxlbmd0aCAtIDEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VGaW5kSW5kZXgoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGluZGV4LCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGbGF0dGVucyBgYXJyYXlgIGEgc2luZ2xlIGxldmVsIGRlZXAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZmxhdHRlbihbMSwgWzIsIFszLCBbNF1dLCA1XV0pO1xuICAgICAqIC8vID0+IFsxLCAyLCBbMywgWzRdXSwgNV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmbGF0dGVuKGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZUZsYXR0ZW4oYXJyYXksIDEpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVjdXJzaXZlbHkgZmxhdHRlbnMgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmbGF0dGVuLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5mbGF0dGVuRGVlcChbMSwgWzIsIFszLCBbNF1dLCA1XV0pO1xuICAgICAqIC8vID0+IFsxLCAyLCAzLCA0LCA1XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZsYXR0ZW5EZWVwKGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZUZsYXR0ZW4oYXJyYXksIElORklOSVRZKSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlY3Vyc2l2ZWx5IGZsYXR0ZW4gYGFycmF5YCB1cCB0byBgZGVwdGhgIHRpbWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZsYXR0ZW4uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtkZXB0aD0xXSBUaGUgbWF4aW11bSByZWN1cnNpb24gZGVwdGguXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgWzIsIFszLCBbNF1dLCA1XV07XG4gICAgICpcbiAgICAgKiBfLmZsYXR0ZW5EZXB0aChhcnJheSwgMSk7XG4gICAgICogLy8gPT4gWzEsIDIsIFszLCBbNF1dLCA1XVxuICAgICAqXG4gICAgICogXy5mbGF0dGVuRGVwdGgoYXJyYXksIDIpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzLCBbNF0sIDVdXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmxhdHRlbkRlcHRoKGFycmF5LCBkZXB0aCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgZGVwdGggPSBkZXB0aCA9PT0gdW5kZWZpbmVkID8gMSA6IHRvSW50ZWdlcihkZXB0aCk7XG4gICAgICByZXR1cm4gYmFzZUZsYXR0ZW4oYXJyYXksIGRlcHRoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaW52ZXJzZSBvZiBgXy50b1BhaXJzYDsgdGhpcyBtZXRob2QgcmV0dXJucyBhbiBvYmplY3QgY29tcG9zZWRcbiAgICAgKiBmcm9tIGtleS12YWx1ZSBgcGFpcnNgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gcGFpcnMgVGhlIGtleS12YWx1ZSBwYWlycy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZyb21QYWlycyhbWydhJywgMV0sIFsnYicsIDJdXSk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gZnJvbVBhaXJzKHBhaXJzKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBwYWlycyA9PSBudWxsID8gMCA6IHBhaXJzLmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSB7fTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHBhaXIgPSBwYWlyc1tpbmRleF07XG4gICAgICAgIHJlc3VsdFtwYWlyWzBdXSA9IHBhaXJbMV07XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBhbGlhcyBmaXJzdFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmhlYWQoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICpcbiAgICAgKiBfLmhlYWQoW10pO1xuICAgICAqIC8vID0+IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhlYWQoYXJyYXkpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSA/IGFycmF5WzBdIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGB2YWx1ZWAgaXMgZm91bmQgaW4gYGFycmF5YFxuICAgICAqIHVzaW5nIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLiBJZiBgZnJvbUluZGV4YCBpcyBuZWdhdGl2ZSwgaXQncyB1c2VkIGFzIHRoZVxuICAgICAqIG9mZnNldCBmcm9tIHRoZSBlbmQgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmcm9tSW5kZXg9MF0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaW5kZXhPZihbMSwgMiwgMSwgMl0sIDIpO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIC8vIFNlYXJjaCBmcm9tIHRoZSBgZnJvbUluZGV4YC5cbiAgICAgKiBfLmluZGV4T2YoWzEsIDIsIDEsIDJdLCAyLCAyKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gZnJvbUluZGV4ID09IG51bGwgPyAwIDogdG9JbnRlZ2VyKGZyb21JbmRleCk7XG4gICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgIGluZGV4ID0gbmF0aXZlTWF4KGxlbmd0aCArIGluZGV4LCAwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIGluZGV4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBidXQgdGhlIGxhc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pbml0aWFsKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5pdGlhbChhcnJheSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgcmV0dXJuIGxlbmd0aCA/IGJhc2VTbGljZShhcnJheSwgMCwgLTEpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB1bmlxdWUgdmFsdWVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIGFsbCBnaXZlbiBhcnJheXNcbiAgICAgKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy4gVGhlIG9yZGVyIGFuZCByZWZlcmVuY2VzIG9mIHJlc3VsdCB2YWx1ZXMgYXJlXG4gICAgICogZGV0ZXJtaW5lZCBieSB0aGUgZmlyc3QgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgaW50ZXJzZWN0aW5nIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pbnRlcnNlY3Rpb24oWzIsIDFdLCBbMiwgM10pO1xuICAgICAqIC8vID0+IFsyXVxuICAgICAqL1xuICAgIHZhciBpbnRlcnNlY3Rpb24gPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBtYXBwZWQgPSBhcnJheU1hcChhcnJheXMsIGNhc3RBcnJheUxpa2VPYmplY3QpO1xuICAgICAgcmV0dXJuIChtYXBwZWQubGVuZ3RoICYmIG1hcHBlZFswXSA9PT0gYXJyYXlzWzBdKVxuICAgICAgICA/IGJhc2VJbnRlcnNlY3Rpb24obWFwcGVkKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbnRlcnNlY3Rpb25gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYFxuICAgICAqIHdoaWNoIGlzIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBvZiBlYWNoIGBhcnJheXNgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb25cbiAgICAgKiBieSB3aGljaCB0aGV5J3JlIGNvbXBhcmVkLiBUaGUgb3JkZXIgYW5kIHJlZmVyZW5jZXMgb2YgcmVzdWx0IHZhbHVlcyBhcmVcbiAgICAgKiBkZXRlcm1pbmVkIGJ5IHRoZSBmaXJzdCBhcnJheS4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6XG4gICAgICogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgaW50ZXJzZWN0aW5nIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pbnRlcnNlY3Rpb25CeShbMi4xLCAxLjJdLCBbMi4zLCAzLjRdLCBNYXRoLmZsb29yKTtcbiAgICAgKiAvLyA9PiBbMi4xXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5pbnRlcnNlY3Rpb25CeShbeyAneCc6IDEgfV0sIFt7ICd4JzogMiB9LCB7ICd4JzogMSB9XSwgJ3gnKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDEgfV1cbiAgICAgKi9cbiAgICB2YXIgaW50ZXJzZWN0aW9uQnkgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBpdGVyYXRlZSA9IGxhc3QoYXJyYXlzKSxcbiAgICAgICAgICBtYXBwZWQgPSBhcnJheU1hcChhcnJheXMsIGNhc3RBcnJheUxpa2VPYmplY3QpO1xuXG4gICAgICBpZiAoaXRlcmF0ZWUgPT09IGxhc3QobWFwcGVkKSkge1xuICAgICAgICBpdGVyYXRlZSA9IHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1hcHBlZC5wb3AoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAobWFwcGVkLmxlbmd0aCAmJiBtYXBwZWRbMF0gPT09IGFycmF5c1swXSlcbiAgICAgICAgPyBiYXNlSW50ZXJzZWN0aW9uKG1hcHBlZCwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbnRlcnNlY3Rpb25gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGNvbXBhcmF0b3JgXG4gICAgICogd2hpY2ggaXMgaW52b2tlZCB0byBjb21wYXJlIGVsZW1lbnRzIG9mIGBhcnJheXNgLiBUaGUgb3JkZXIgYW5kIHJlZmVyZW5jZXNcbiAgICAgKiBvZiByZXN1bHQgdmFsdWVzIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSBmaXJzdCBhcnJheS4gVGhlIGNvbXBhcmF0b3IgaXNcbiAgICAgKiBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50czogKGFyclZhbCwgb3RoVmFsKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBpbnRlcnNlY3RpbmcgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAyLCAneSc6IDEgfV07XG4gICAgICogdmFyIG90aGVycyA9IFt7ICd4JzogMSwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDIgfV07XG4gICAgICpcbiAgICAgKiBfLmludGVyc2VjdGlvbldpdGgob2JqZWN0cywgb3RoZXJzLCBfLmlzRXF1YWwpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSwgJ3knOiAyIH1dXG4gICAgICovXG4gICAgdmFyIGludGVyc2VjdGlvbldpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBjb21wYXJhdG9yID0gbGFzdChhcnJheXMpLFxuICAgICAgICAgIG1hcHBlZCA9IGFycmF5TWFwKGFycmF5cywgY2FzdEFycmF5TGlrZU9iamVjdCk7XG5cbiAgICAgIGNvbXBhcmF0b3IgPSB0eXBlb2YgY29tcGFyYXRvciA9PSAnZnVuY3Rpb24nID8gY29tcGFyYXRvciA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChjb21wYXJhdG9yKSB7XG4gICAgICAgIG1hcHBlZC5wb3AoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAobWFwcGVkLmxlbmd0aCAmJiBtYXBwZWRbMF0gPT09IGFycmF5c1swXSlcbiAgICAgICAgPyBiYXNlSW50ZXJzZWN0aW9uKG1hcHBlZCwgdW5kZWZpbmVkLCBjb21wYXJhdG9yKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYWxsIGVsZW1lbnRzIGluIGBhcnJheWAgaW50byBhIHN0cmluZyBzZXBhcmF0ZWQgYnkgYHNlcGFyYXRvcmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY29udmVydC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3NlcGFyYXRvcj0nLCddIFRoZSBlbGVtZW50IHNlcGFyYXRvci5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBqb2luZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmpvaW4oWydhJywgJ2InLCAnYyddLCAnficpO1xuICAgICAqIC8vID0+ICdhfmJ+YydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBqb2luKGFycmF5LCBzZXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiBhcnJheSA9PSBudWxsID8gJycgOiBuYXRpdmVKb2luLmNhbGwoYXJyYXksIHNlcGFyYXRvcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbGFzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGxhc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmxhc3QoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGFzdChhcnJheSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgcmV0dXJuIGxlbmd0aCA/IGFycmF5W2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaW5kZXhPZmAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGBhcnJheWAgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD1hcnJheS5sZW5ndGgtMV0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubGFzdEluZGV4T2YoWzEsIDIsIDEsIDJdLCAyKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiAvLyBTZWFyY2ggZnJvbSB0aGUgYGZyb21JbmRleGAuXG4gICAgICogXy5sYXN0SW5kZXhPZihbMSwgMiwgMSwgMl0sIDIsIDIpO1xuICAgICAqIC8vID0+IDFcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsYXN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gbGVuZ3RoO1xuICAgICAgaWYgKGZyb21JbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGluZGV4ID0gdG9JbnRlZ2VyKGZyb21JbmRleCk7XG4gICAgICAgIGluZGV4ID0gaW5kZXggPCAwID8gbmF0aXZlTWF4KGxlbmd0aCArIGluZGV4LCAwKSA6IG5hdGl2ZU1pbihpbmRleCwgbGVuZ3RoIC0gMSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWUgPT09IHZhbHVlXG4gICAgICAgID8gc3RyaWN0TGFzdEluZGV4T2YoYXJyYXksIHZhbHVlLCBpbmRleClcbiAgICAgICAgOiBiYXNlRmluZEluZGV4KGFycmF5LCBiYXNlSXNOYU4sIGluZGV4LCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBlbGVtZW50IGF0IGluZGV4IGBuYCBvZiBgYXJyYXlgLiBJZiBgbmAgaXMgbmVnYXRpdmUsIHRoZSBudGhcbiAgICAgKiBlbGVtZW50IGZyb20gdGhlIGVuZCBpcyByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjExLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTBdIFRoZSBpbmRleCBvZiB0aGUgZWxlbWVudCB0byByZXR1cm4uXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG50aCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsnYScsICdiJywgJ2MnLCAnZCddO1xuICAgICAqXG4gICAgICogXy5udGgoYXJyYXksIDEpO1xuICAgICAqIC8vID0+ICdiJ1xuICAgICAqXG4gICAgICogXy5udGgoYXJyYXksIC0yKTtcbiAgICAgKiAvLyA9PiAnYyc7XG4gICAgICovXG4gICAgZnVuY3Rpb24gbnRoKGFycmF5LCBuKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkgPyBiYXNlTnRoKGFycmF5LCB0b0ludGVnZXIobikpIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIGdpdmVuIHZhbHVlcyBmcm9tIGBhcnJheWAgdXNpbmdcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8ud2l0aG91dGAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC4gVXNlIGBfLnJlbW92ZWBcbiAgICAgKiB0byByZW1vdmUgZWxlbWVudHMgZnJvbSBhbiBhcnJheSBieSBwcmVkaWNhdGUuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsnYScsICdiJywgJ2MnLCAnYScsICdiJywgJ2MnXTtcbiAgICAgKlxuICAgICAqIF8ucHVsbChhcnJheSwgJ2EnLCAnYycpO1xuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbJ2InLCAnYiddXG4gICAgICovXG4gICAgdmFyIHB1bGwgPSBiYXNlUmVzdChwdWxsQWxsKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucHVsbGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBhbiBhcnJheSBvZiB2YWx1ZXMgdG8gcmVtb3ZlLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5kaWZmZXJlbmNlYCwgdGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsnYScsICdiJywgJ2MnLCAnYScsICdiJywgJ2MnXTtcbiAgICAgKlxuICAgICAqIF8ucHVsbEFsbChhcnJheSwgWydhJywgJ2MnXSk7XG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsnYicsICdiJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwdWxsQWxsKGFycmF5LCB2YWx1ZXMpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoICYmIHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoKVxuICAgICAgICA/IGJhc2VQdWxsQWxsKGFycmF5LCB2YWx1ZXMpXG4gICAgICAgIDogYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5wdWxsQWxsYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCBhbmQgYHZhbHVlc2AgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvblxuICAgICAqIGJ5IHdoaWNoIHRoZXkncmUgY29tcGFyZWQuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5kaWZmZXJlbmNlQnlgLCB0aGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFt7ICd4JzogMSB9LCB7ICd4JzogMiB9LCB7ICd4JzogMyB9LCB7ICd4JzogMSB9XTtcbiAgICAgKlxuICAgICAqIF8ucHVsbEFsbEJ5KGFycmF5LCBbeyAneCc6IDEgfSwgeyAneCc6IDMgfV0sICd4Jyk7XG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMiB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHB1bGxBbGxCeShhcnJheSwgdmFsdWVzLCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGggJiYgdmFsdWVzICYmIHZhbHVlcy5sZW5ndGgpXG4gICAgICAgID8gYmFzZVB1bGxBbGwoYXJyYXksIHZhbHVlcywgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKVxuICAgICAgICA6IGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucHVsbEFsbGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5YCB0byBgdmFsdWVzYC4gVGhlIGNvbXBhcmF0b3IgaXNcbiAgICAgKiBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50czogKGFyclZhbCwgb3RoVmFsKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8uZGlmZmVyZW5jZVdpdGhgLCB0aGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC42LjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDMsICd5JzogNCB9LCB7ICd4JzogNSwgJ3knOiA2IH1dO1xuICAgICAqXG4gICAgICogXy5wdWxsQWxsV2l0aChhcnJheSwgW3sgJ3gnOiAzLCAneSc6IDQgfV0sIF8uaXNFcXVhbCk7XG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiA1LCAneSc6IDYgfV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwdWxsQWxsV2l0aChhcnJheSwgdmFsdWVzLCBjb21wYXJhdG9yKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCAmJiB2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aClcbiAgICAgICAgPyBiYXNlUHVsbEFsbChhcnJheSwgdmFsdWVzLCB1bmRlZmluZWQsIGNvbXBhcmF0b3IpXG4gICAgICAgIDogYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBlbGVtZW50cyBmcm9tIGBhcnJheWAgY29ycmVzcG9uZGluZyB0byBgaW5kZXhlc2AgYW5kIHJldHVybnMgYW5cbiAgICAgKiBhcnJheSBvZiByZW1vdmVkIGVsZW1lbnRzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5hdGAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHsuLi4obnVtYmVyfG51bWJlcltdKX0gW2luZGV4ZXNdIFRoZSBpbmRleGVzIG9mIGVsZW1lbnRzIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiByZW1vdmVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbJ2EnLCAnYicsICdjJywgJ2QnXTtcbiAgICAgKiB2YXIgcHVsbGVkID0gXy5wdWxsQXQoYXJyYXksIFsxLCAzXSk7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gWydhJywgJ2MnXVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2cocHVsbGVkKTtcbiAgICAgKiAvLyA9PiBbJ2InLCAnZCddXG4gICAgICovXG4gICAgdmFyIHB1bGxBdCA9IGZsYXRSZXN0KGZ1bmN0aW9uKGFycmF5LCBpbmRleGVzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgcmVzdWx0ID0gYmFzZUF0KGFycmF5LCBpbmRleGVzKTtcblxuICAgICAgYmFzZVB1bGxBdChhcnJheSwgYXJyYXlNYXAoaW5kZXhlcywgZnVuY3Rpb24oaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGlzSW5kZXgoaW5kZXgsIGxlbmd0aCkgPyAraW5kZXggOiBpbmRleDtcbiAgICAgIH0pLnNvcnQoY29tcGFyZUFzY2VuZGluZykpO1xuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwgZWxlbWVudHMgZnJvbSBgYXJyYXlgIHRoYXQgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yXG4gICAgICogYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgdGhlIHJlbW92ZWQgZWxlbWVudHMuIFRoZSBwcmVkaWNhdGUgaXMgaW52b2tlZFxuICAgICAqIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBhcnJheSkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLmZpbHRlcmAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC4gVXNlIGBfLnB1bGxgXG4gICAgICogdG8gcHVsbCBlbGVtZW50cyBmcm9tIGFuIGFycmF5IGJ5IHZhbHVlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcmVtb3ZlZCBlbGVtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDIsIDMsIDRdO1xuICAgICAqIHZhciBldmVucyA9IF8ucmVtb3ZlKGFycmF5LCBmdW5jdGlvbihuKSB7XG4gICAgICogICByZXR1cm4gbiAlIDIgPT0gMDtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMSwgM11cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGV2ZW5zKTtcbiAgICAgKiAvLyA9PiBbMiwgNF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZW1vdmUoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgaW5kZXhlcyA9IFtdLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgcHJlZGljYXRlID0gZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgaWYgKHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgICBpbmRleGVzLnB1c2goaW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBiYXNlUHVsbEF0KGFycmF5LCBpbmRleGVzKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV2ZXJzZXMgYGFycmF5YCBzbyB0aGF0IHRoZSBmaXJzdCBlbGVtZW50IGJlY29tZXMgdGhlIGxhc3QsIHRoZSBzZWNvbmRcbiAgICAgKiBlbGVtZW50IGJlY29tZXMgdGhlIHNlY29uZCB0byBsYXN0LCBhbmQgc28gb24uXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgIGFuZCBpcyBiYXNlZCBvblxuICAgICAqIFtgQXJyYXkjcmV2ZXJzZWBdKGh0dHBzOi8vbWRuLmlvL0FycmF5L3JldmVyc2UpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDIsIDNdO1xuICAgICAqXG4gICAgICogXy5yZXZlcnNlKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMywgMiwgMV1cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMywgMiwgMV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXZlcnNlKGFycmF5KSB7XG4gICAgICByZXR1cm4gYXJyYXkgPT0gbnVsbCA/IGFycmF5IDogbmF0aXZlUmV2ZXJzZS5jYWxsKGFycmF5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCBmcm9tIGBzdGFydGAgdXAgdG8sIGJ1dCBub3QgaW5jbHVkaW5nLCBgZW5kYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGluc3RlYWQgb2ZcbiAgICAgKiBbYEFycmF5I3NsaWNlYF0oaHR0cHM6Ly9tZG4uaW8vQXJyYXkvc2xpY2UpIHRvIGVuc3VyZSBkZW5zZSBhcnJheXMgYXJlXG4gICAgICogcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2xpY2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmQ9YXJyYXkubGVuZ3RoXSBUaGUgZW5kIHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKGVuZCAmJiB0eXBlb2YgZW5kICE9ICdudW1iZXInICYmIGlzSXRlcmF0ZWVDYWxsKGFycmF5LCBzdGFydCwgZW5kKSkge1xuICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgIGVuZCA9IGxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBzdGFydCA9IHN0YXJ0ID09IG51bGwgPyAwIDogdG9JbnRlZ2VyKHN0YXJ0KTtcbiAgICAgICAgZW5kID0gZW5kID09PSB1bmRlZmluZWQgPyBsZW5ndGggOiB0b0ludGVnZXIoZW5kKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZXMgYSBiaW5hcnkgc2VhcmNoIHRvIGRldGVybWluZSB0aGUgbG93ZXN0IGluZGV4IGF0IHdoaWNoIGB2YWx1ZWBcbiAgICAgKiBzaG91bGQgYmUgaW5zZXJ0ZWQgaW50byBgYXJyYXlgIGluIG9yZGVyIHRvIG1haW50YWluIGl0cyBzb3J0IG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICogIGludG8gYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zb3J0ZWRJbmRleChbMzAsIDUwXSwgNDApO1xuICAgICAqIC8vID0+IDFcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb3J0ZWRJbmRleChhcnJheSwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnNvcnRlZEluZGV4YCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWBcbiAgICAgKiB3aGljaCBpcyBpbnZva2VkIGZvciBgdmFsdWVgIGFuZCBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCB0byBjb21wdXRlIHRoZWlyXG4gICAgICogc29ydCByYW5raW5nLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgKiAgaW50byBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICd4JzogNCB9LCB7ICd4JzogNSB9XTtcbiAgICAgKlxuICAgICAqIF8uc29ydGVkSW5kZXhCeShvYmplY3RzLCB7ICd4JzogNCB9LCBmdW5jdGlvbihvKSB7IHJldHVybiBvLng7IH0pO1xuICAgICAqIC8vID0+IDBcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uc29ydGVkSW5kZXhCeShvYmplY3RzLCB7ICd4JzogNCB9LCAneCcpO1xuICAgICAqIC8vID0+IDBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb3J0ZWRJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXhCeShhcnJheSwgdmFsdWUsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbmRleE9mYCBleGNlcHQgdGhhdCBpdCBwZXJmb3JtcyBhIGJpbmFyeVxuICAgICAqIHNlYXJjaCBvbiBhIHNvcnRlZCBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNvcnRlZEluZGV4T2YoWzQsIDUsIDUsIDUsIDZdLCA1KTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICovXG4gICAgZnVuY3Rpb24gc29ydGVkSW5kZXhPZihhcnJheSwgdmFsdWUpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGgpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gYmFzZVNvcnRlZEluZGV4KGFycmF5LCB2YWx1ZSk7XG4gICAgICAgIGlmIChpbmRleCA8IGxlbmd0aCAmJiBlcShhcnJheVtpbmRleF0sIHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc29ydGVkSW5kZXhgIGV4Y2VwdCB0aGF0IGl0IHJldHVybnMgdGhlIGhpZ2hlc3RcbiAgICAgKiBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIGBhcnJheWAgaW4gb3JkZXIgdG9cbiAgICAgKiBtYWludGFpbiBpdHMgc29ydCBvcmRlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICAgICAqICBpbnRvIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29ydGVkTGFzdEluZGV4KFs0LCA1LCA1LCA1LCA2XSwgNSk7XG4gICAgICogLy8gPT4gNFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRlZExhc3RJbmRleChhcnJheSwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnNvcnRlZExhc3RJbmRleGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgXG4gICAgICogd2hpY2ggaXMgaW52b2tlZCBmb3IgYHZhbHVlYCBhbmQgZWFjaCBlbGVtZW50IG9mIGBhcnJheWAgdG8gY29tcHV0ZSB0aGVpclxuICAgICAqIHNvcnQgcmFua2luZy4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICogIGludG8gYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAneCc6IDQgfSwgeyAneCc6IDUgfV07XG4gICAgICpcbiAgICAgKiBfLnNvcnRlZExhc3RJbmRleEJ5KG9iamVjdHMsIHsgJ3gnOiA0IH0sIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8ueDsgfSk7XG4gICAgICogLy8gPT4gMVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5zb3J0ZWRMYXN0SW5kZXhCeShvYmplY3RzLCB7ICd4JzogNCB9LCAneCcpO1xuICAgICAqIC8vID0+IDFcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb3J0ZWRMYXN0SW5kZXhCeShhcnJheSwgdmFsdWUsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gYmFzZVNvcnRlZEluZGV4QnkoYXJyYXksIHZhbHVlLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMiksIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ubGFzdEluZGV4T2ZgIGV4Y2VwdCB0aGF0IGl0IHBlcmZvcm1zIGEgYmluYXJ5XG4gICAgICogc2VhcmNoIG9uIGEgc29ydGVkIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29ydGVkTGFzdEluZGV4T2YoWzQsIDUsIDUsIDUsIDZdLCA1KTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICovXG4gICAgZnVuY3Rpb24gc29ydGVkTGFzdEluZGV4T2YoYXJyYXksIHZhbHVlKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAobGVuZ3RoKSB7XG4gICAgICAgIHZhciBpbmRleCA9IGJhc2VTb3J0ZWRJbmRleChhcnJheSwgdmFsdWUsIHRydWUpIC0gMTtcbiAgICAgICAgaWYgKGVxKGFycmF5W2luZGV4XSwgdmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51bmlxYCBleGNlcHQgdGhhdCBpdCdzIGRlc2lnbmVkIGFuZCBvcHRpbWl6ZWRcbiAgICAgKiBmb3Igc29ydGVkIGFycmF5cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNvcnRlZFVuaXEoWzEsIDEsIDJdKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb3J0ZWRVbmlxKGFycmF5KSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlU29ydGVkVW5pcShhcnJheSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuaXFCeWAgZXhjZXB0IHRoYXQgaXQncyBkZXNpZ25lZCBhbmQgb3B0aW1pemVkXG4gICAgICogZm9yIHNvcnRlZCBhcnJheXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWVdIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNvcnRlZFVuaXFCeShbMS4xLCAxLjIsIDIuMywgMi40XSwgTWF0aC5mbG9vcik7XG4gICAgICogLy8gPT4gWzEuMSwgMi4zXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRlZFVuaXFCeShhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VTb3J0ZWRVbmlxKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpXG4gICAgICAgIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgYnV0IHRoZSBmaXJzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRhaWwoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0YWlsKGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZVNsaWNlKGFycmF5LCAxLCBsZW5ndGgpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBgbmAgZWxlbWVudHMgdGFrZW4gZnJvbSB0aGUgYmVnaW5uaW5nLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHRha2UuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGFrZShbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IFsxXVxuICAgICAqXG4gICAgICogXy50YWtlKFsxLCAyLCAzXSwgMik7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICpcbiAgICAgKiBfLnRha2UoWzEsIDIsIDNdLCA1KTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIF8udGFrZShbMSwgMiwgM10sIDApO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGFrZShhcnJheSwgbiwgZ3VhcmQpIHtcbiAgICAgIGlmICghKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgbiA9IChndWFyZCB8fCBuID09PSB1bmRlZmluZWQpID8gMSA6IHRvSW50ZWdlcihuKTtcbiAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIDAsIG4gPCAwID8gMCA6IG4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIHdpdGggYG5gIGVsZW1lbnRzIHRha2VuIGZyb20gdGhlIGVuZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MV0gVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byB0YWtlLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRha2VSaWdodChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IFszXVxuICAgICAqXG4gICAgICogXy50YWtlUmlnaHQoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbMiwgM11cbiAgICAgKlxuICAgICAqIF8udGFrZVJpZ2h0KFsxLCAyLCAzXSwgNSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBfLnRha2VSaWdodChbMSwgMiwgM10sIDApO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGFrZVJpZ2h0KGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgbiA9IChndWFyZCB8fCBuID09PSB1bmRlZmluZWQpID8gMSA6IHRvSW50ZWdlcihuKTtcbiAgICAgIG4gPSBsZW5ndGggLSBuO1xuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgbiA8IDAgPyAwIDogbiwgbGVuZ3RoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGVsZW1lbnRzIHRha2VuIGZyb20gdGhlIGVuZC4gRWxlbWVudHMgYXJlXG4gICAgICogdGFrZW4gdW50aWwgYHByZWRpY2F0ZWAgcmV0dXJucyBmYWxzZXkuIFRoZSBwcmVkaWNhdGUgaXMgaW52b2tlZCB3aXRoXG4gICAgICogdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBhcnJheSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy50YWtlUmlnaHRXaGlsZSh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gIW8uYWN0aXZlOyB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnLCAncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8udGFrZVJpZ2h0V2hpbGUodXNlcnMsIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiBmYWxzZSB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ3BlYmJsZXMnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8udGFrZVJpZ2h0V2hpbGUodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnLCAncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnRha2VSaWdodFdoaWxlKHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0YWtlUmlnaHRXaGlsZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlV2hpbGUoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGZhbHNlLCB0cnVlKVxuICAgICAgICA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIHdpdGggZWxlbWVudHMgdGFrZW4gZnJvbSB0aGUgYmVnaW5uaW5nLiBFbGVtZW50c1xuICAgICAqIGFyZSB0YWtlbiB1bnRpbCBgcHJlZGljYXRlYCByZXR1cm5zIGZhbHNleS4gVGhlIHByZWRpY2F0ZSBpcyBpbnZva2VkIHdpdGhcbiAgICAgKiB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGFycmF5KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnRha2VXaGlsZSh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gIW8uYWN0aXZlOyB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leScsICdmcmVkJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy50YWtlV2hpbGUodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnRha2VXaGlsZSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5JywgJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy50YWtlV2hpbGUodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRha2VXaGlsZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlV2hpbGUoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMykpXG4gICAgICAgIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB1bmlxdWUgdmFsdWVzLCBpbiBvcmRlciwgZnJvbSBhbGwgZ2l2ZW4gYXJyYXlzIHVzaW5nXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY29tYmluZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuaW9uKFsyXSwgWzEsIDJdKTtcbiAgICAgKiAvLyA9PiBbMiwgMV1cbiAgICAgKi9cbiAgICB2YXIgdW5pb24gPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHJldHVybiBiYXNlVW5pcShiYXNlRmxhdHRlbihhcnJheXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuaW9uYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgb2YgZWFjaCBgYXJyYXlzYCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uIGJ5XG4gICAgICogd2hpY2ggdW5pcXVlbmVzcyBpcyBjb21wdXRlZC4gUmVzdWx0IHZhbHVlcyBhcmUgY2hvc2VuIGZyb20gdGhlIGZpcnN0XG4gICAgICogYXJyYXkgaW4gd2hpY2ggdGhlIHZhbHVlIG9jY3Vycy4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6XG4gICAgICogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY29tYmluZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuaW9uQnkoWzIuMV0sIFsxLjIsIDIuM10sIE1hdGguZmxvb3IpO1xuICAgICAqIC8vID0+IFsyLjEsIDEuMl1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8udW5pb25CeShbeyAneCc6IDEgfV0sIFt7ICd4JzogMiB9LCB7ICd4JzogMSB9XSwgJ3gnKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDEgfSwgeyAneCc6IDIgfV1cbiAgICAgKi9cbiAgICB2YXIgdW5pb25CeSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgdmFyIGl0ZXJhdGVlID0gbGFzdChhcnJheXMpO1xuICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGl0ZXJhdGVlKSkge1xuICAgICAgICBpdGVyYXRlZSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlVW5pcShiYXNlRmxhdHRlbihhcnJheXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udW5pb25gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGNvbXBhcmF0b3JgIHdoaWNoXG4gICAgICogaXMgaW52b2tlZCB0byBjb21wYXJlIGVsZW1lbnRzIG9mIGBhcnJheXNgLiBSZXN1bHQgdmFsdWVzIGFyZSBjaG9zZW4gZnJvbVxuICAgICAqIHRoZSBmaXJzdCBhcnJheSBpbiB3aGljaCB0aGUgdmFsdWUgb2NjdXJzLiBUaGUgY29tcGFyYXRvciBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGNvbWJpbmVkIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAneCc6IDEsICd5JzogMiB9LCB7ICd4JzogMiwgJ3knOiAxIH1dO1xuICAgICAqIHZhciBvdGhlcnMgPSBbeyAneCc6IDEsICd5JzogMSB9LCB7ICd4JzogMSwgJ3knOiAyIH1dO1xuICAgICAqXG4gICAgICogXy51bmlvbldpdGgob2JqZWN0cywgb3RoZXJzLCBfLmlzRXF1YWwpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAyLCAneSc6IDEgfSwgeyAneCc6IDEsICd5JzogMSB9XVxuICAgICAqL1xuICAgIHZhciB1bmlvbldpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBjb21wYXJhdG9yID0gbGFzdChhcnJheXMpO1xuICAgICAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09ICdmdW5jdGlvbicgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIGJhc2VVbmlxKGJhc2VGbGF0dGVuKGFycmF5cywgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpLCB1bmRlZmluZWQsIGNvbXBhcmF0b3IpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGR1cGxpY2F0ZS1mcmVlIHZlcnNpb24gb2YgYW4gYXJyYXksIHVzaW5nXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGluIHdoaWNoIG9ubHkgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgZWFjaCBlbGVtZW50XG4gICAgICogaXMga2VwdC4gVGhlIG9yZGVyIG9mIHJlc3VsdCB2YWx1ZXMgaXMgZGV0ZXJtaW5lZCBieSB0aGUgb3JkZXIgdGhleSBvY2N1clxuICAgICAqIGluIHRoZSBhcnJheS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuaXEoWzIsIDEsIDJdKTtcbiAgICAgKiAvLyA9PiBbMiwgMV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmlxKGFycmF5KSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkgPyBiYXNlVW5pcShhcnJheSkgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuaXFgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBpbiBgYXJyYXlgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnkgd2hpY2hcbiAgICAgKiB1bmlxdWVuZXNzIGlzIGNvbXB1dGVkLiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZVxuICAgICAqIG9yZGVyIHRoZXkgb2NjdXIgaW4gdGhlIGFycmF5LiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDpcbiAgICAgKiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuaXFCeShbMi4xLCAxLjIsIDIuM10sIE1hdGguZmxvb3IpO1xuICAgICAqIC8vID0+IFsyLjEsIDEuMl1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8udW5pcUJ5KFt7ICd4JzogMSB9LCB7ICd4JzogMiB9LCB7ICd4JzogMSB9XSwgJ3gnKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDEgfSwgeyAneCc6IDIgfV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmlxQnkoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkgPyBiYXNlVW5pcShhcnJheSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udW5pcWAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5YC4gVGhlIG9yZGVyIG9mIHJlc3VsdCB2YWx1ZXMgaXNcbiAgICAgKiBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlciB0aGV5IG9jY3VyIGluIHRoZSBhcnJheS5UaGUgY29tcGFyYXRvciBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9LCB7ICd4JzogMSwgJ3knOiAyIH1dO1xuICAgICAqXG4gICAgICogXy51bmlxV2l0aChvYmplY3RzLCBfLmlzRXF1YWwpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAyLCAneSc6IDEgfV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmlxV2l0aChhcnJheSwgY29tcGFyYXRvcikge1xuICAgICAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09ICdmdW5jdGlvbicgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpID8gYmFzZVVuaXEoYXJyYXksIHVuZGVmaW5lZCwgY29tcGFyYXRvcikgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnppcGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBhbiBhcnJheSBvZiBncm91cGVkXG4gICAgICogZWxlbWVudHMgYW5kIGNyZWF0ZXMgYW4gYXJyYXkgcmVncm91cGluZyB0aGUgZWxlbWVudHMgdG8gdGhlaXIgcHJlLXppcFxuICAgICAqIGNvbmZpZ3VyYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMS4yLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgb2YgZ3JvdXBlZCBlbGVtZW50cyB0byBwcm9jZXNzLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHJlZ3JvdXBlZCBlbGVtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHppcHBlZCA9IF8uemlwKFsnYScsICdiJ10sIFsxLCAyXSwgW3RydWUsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gW1snYScsIDEsIHRydWVdLCBbJ2InLCAyLCBmYWxzZV1dXG4gICAgICpcbiAgICAgKiBfLnVuemlwKHppcHBlZCk7XG4gICAgICogLy8gPT4gW1snYScsICdiJ10sIFsxLCAyXSwgW3RydWUsIGZhbHNlXV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bnppcChhcnJheSkge1xuICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gMDtcbiAgICAgIGFycmF5ID0gYXJyYXlGaWx0ZXIoYXJyYXksIGZ1bmN0aW9uKGdyb3VwKSB7XG4gICAgICAgIGlmIChpc0FycmF5TGlrZU9iamVjdChncm91cCkpIHtcbiAgICAgICAgICBsZW5ndGggPSBuYXRpdmVNYXgoZ3JvdXAubGVuZ3RoLCBsZW5ndGgpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBiYXNlVGltZXMobGVuZ3RoLCBmdW5jdGlvbihpbmRleCkge1xuICAgICAgICByZXR1cm4gYXJyYXlNYXAoYXJyYXksIGJhc2VQcm9wZXJ0eShpbmRleCkpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51bnppcGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgIHRvIHNwZWNpZnlcbiAgICAgKiBob3cgcmVncm91cGVkIHZhbHVlcyBzaG91bGQgYmUgY29tYmluZWQuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggdGhlXG4gICAgICogZWxlbWVudHMgb2YgZWFjaCBncm91cDogKC4uLmdyb3VwKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjguMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzIHRvIHByb2Nlc3MuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiB0byBjb21iaW5lXG4gICAgICogIHJlZ3JvdXBlZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcmVncm91cGVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgemlwcGVkID0gXy56aXAoWzEsIDJdLCBbMTAsIDIwXSwgWzEwMCwgMjAwXSk7XG4gICAgICogLy8gPT4gW1sxLCAxMCwgMTAwXSwgWzIsIDIwLCAyMDBdXVxuICAgICAqXG4gICAgICogXy51bnppcFdpdGgoemlwcGVkLCBfLmFkZCk7XG4gICAgICogLy8gPT4gWzMsIDMwLCAzMDBdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdW56aXBXaXRoKGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gdW56aXAoYXJyYXkpO1xuICAgICAgaWYgKGl0ZXJhdGVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheU1hcChyZXN1bHQsIGZ1bmN0aW9uKGdyb3VwKSB7XG4gICAgICAgIHJldHVybiBhcHBseShpdGVyYXRlZSwgdW5kZWZpbmVkLCBncm91cCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGV4Y2x1ZGluZyBhbGwgZ2l2ZW4gdmFsdWVzIHVzaW5nXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLnB1bGxgLCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGV4Y2x1ZGUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqIEBzZWUgXy5kaWZmZXJlbmNlLCBfLnhvclxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLndpdGhvdXQoWzIsIDEsIDIsIDNdLCAxLCAyKTtcbiAgICAgKiAvLyA9PiBbM11cbiAgICAgKi9cbiAgICB2YXIgd2l0aG91dCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5LCB2YWx1ZXMpIHtcbiAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdChhcnJheSlcbiAgICAgICAgPyBiYXNlRGlmZmVyZW5jZShhcnJheSwgdmFsdWVzKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB1bmlxdWUgdmFsdWVzIHRoYXQgaXMgdGhlXG4gICAgICogW3N5bW1ldHJpYyBkaWZmZXJlbmNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TeW1tZXRyaWNfZGlmZmVyZW5jZSlcbiAgICAgKiBvZiB0aGUgZ2l2ZW4gYXJyYXlzLiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlclxuICAgICAqIHRoZXkgb2NjdXIgaW4gdGhlIGFycmF5cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjQuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQHNlZSBfLmRpZmZlcmVuY2UsIF8ud2l0aG91dFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnhvcihbMiwgMV0sIFsyLCAzXSk7XG4gICAgICogLy8gPT4gWzEsIDNdXG4gICAgICovXG4gICAgdmFyIHhvciA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgcmV0dXJuIGJhc2VYb3IoYXJyYXlGaWx0ZXIoYXJyYXlzLCBpc0FycmF5TGlrZU9iamVjdCkpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy54b3JgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBvZiBlYWNoIGBhcnJheXNgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnlcbiAgICAgKiB3aGljaCBieSB3aGljaCB0aGV5J3JlIGNvbXBhcmVkLiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpcyBkZXRlcm1pbmVkXG4gICAgICogYnkgdGhlIG9yZGVyIHRoZXkgb2NjdXIgaW4gdGhlIGFycmF5cy4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmVcbiAgICAgKiBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnhvckJ5KFsyLjEsIDEuMl0sIFsyLjMsIDMuNF0sIE1hdGguZmxvb3IpO1xuICAgICAqIC8vID0+IFsxLjIsIDMuNF1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ueG9yQnkoW3sgJ3gnOiAxIH1dLCBbeyAneCc6IDIgfSwgeyAneCc6IDEgfV0sICd4Jyk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAyIH1dXG4gICAgICovXG4gICAgdmFyIHhvckJ5ID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XG4gICAgICB2YXIgaXRlcmF0ZWUgPSBsYXN0KGFycmF5cyk7XG4gICAgICBpZiAoaXNBcnJheUxpa2VPYmplY3QoaXRlcmF0ZWUpKSB7XG4gICAgICAgIGl0ZXJhdGVlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VYb3IoYXJyYXlGaWx0ZXIoYXJyYXlzLCBpc0FycmF5TGlrZU9iamVjdCksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnhvcmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5c2AuIFRoZSBvcmRlciBvZiByZXN1bHQgdmFsdWVzIGlzXG4gICAgICogZGV0ZXJtaW5lZCBieSB0aGUgb3JkZXIgdGhleSBvY2N1ciBpbiB0aGUgYXJyYXlzLiBUaGUgY29tcGFyYXRvciBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAneCc6IDEsICd5JzogMiB9LCB7ICd4JzogMiwgJ3knOiAxIH1dO1xuICAgICAqIHZhciBvdGhlcnMgPSBbeyAneCc6IDEsICd5JzogMSB9LCB7ICd4JzogMSwgJ3knOiAyIH1dO1xuICAgICAqXG4gICAgICogXy54b3JXaXRoKG9iamVjdHMsIG90aGVycywgXy5pc0VxdWFsKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDIsICd5JzogMSB9LCB7ICd4JzogMSwgJ3knOiAxIH1dXG4gICAgICovXG4gICAgdmFyIHhvcldpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBjb21wYXJhdG9yID0gbGFzdChhcnJheXMpO1xuICAgICAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09ICdmdW5jdGlvbicgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIGJhc2VYb3IoYXJyYXlGaWx0ZXIoYXJyYXlzLCBpc0FycmF5TGlrZU9iamVjdCksIHVuZGVmaW5lZCwgY29tcGFyYXRvcik7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGdyb3VwZWQgZWxlbWVudHMsIHRoZSBmaXJzdCBvZiB3aGljaCBjb250YWlucyB0aGVcbiAgICAgKiBmaXJzdCBlbGVtZW50cyBvZiB0aGUgZ2l2ZW4gYXJyYXlzLCB0aGUgc2Vjb25kIG9mIHdoaWNoIGNvbnRhaW5zIHRoZVxuICAgICAqIHNlY29uZCBlbGVtZW50cyBvZiB0aGUgZ2l2ZW4gYXJyYXlzLCBhbmQgc28gb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIHByb2Nlc3MuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZ3JvdXBlZCBlbGVtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy56aXAoWydhJywgJ2InXSwgWzEsIDJdLCBbdHJ1ZSwgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBbWydhJywgMSwgdHJ1ZV0sIFsnYicsIDIsIGZhbHNlXV1cbiAgICAgKi9cbiAgICB2YXIgemlwID0gYmFzZVJlc3QodW56aXApO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5mcm9tUGFpcnNgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgdHdvIGFycmF5cyxcbiAgICAgKiBvbmUgb2YgcHJvcGVydHkgaWRlbnRpZmllcnMgYW5kIG9uZSBvZiBjb3JyZXNwb25kaW5nIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjQuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwcm9wcz1bXV0gVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFt2YWx1ZXM9W11dIFRoZSBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy56aXBPYmplY3QoWydhJywgJ2InXSwgWzEsIDJdKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB6aXBPYmplY3QocHJvcHMsIHZhbHVlcykge1xuICAgICAgcmV0dXJuIGJhc2VaaXBPYmplY3QocHJvcHMgfHwgW10sIHZhbHVlcyB8fCBbXSwgYXNzaWduVmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uemlwT2JqZWN0YCBleGNlcHQgdGhhdCBpdCBzdXBwb3J0cyBwcm9wZXJ0eSBwYXRocy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwcm9wcz1bXV0gVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFt2YWx1ZXM9W11dIFRoZSBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy56aXBPYmplY3REZWVwKFsnYS5iWzBdLmMnLCAnYS5iWzFdLmQnXSwgWzEsIDJdKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogeyAnYic6IFt7ICdjJzogMSB9LCB7ICdkJzogMiB9XSB9IH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB6aXBPYmplY3REZWVwKHByb3BzLCB2YWx1ZXMpIHtcbiAgICAgIHJldHVybiBiYXNlWmlwT2JqZWN0KHByb3BzIHx8IFtdLCB2YWx1ZXMgfHwgW10sIGJhc2VTZXQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uemlwYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgdG8gc3BlY2lmeVxuICAgICAqIGhvdyBncm91cGVkIHZhbHVlcyBzaG91bGQgYmUgY29tYmluZWQuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggdGhlXG4gICAgICogZWxlbWVudHMgb2YgZWFjaCBncm91cDogKC4uLmdyb3VwKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjguMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIHRvIGNvbWJpbmVcbiAgICAgKiAgZ3JvdXBlZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZ3JvdXBlZCBlbGVtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy56aXBXaXRoKFsxLCAyXSwgWzEwLCAyMF0sIFsxMDAsIDIwMF0sIGZ1bmN0aW9uKGEsIGIsIGMpIHtcbiAgICAgKiAgIHJldHVybiBhICsgYiArIGM7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gWzExMSwgMjIyXVxuICAgICAqL1xuICAgIHZhciB6aXBXaXRoID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXlzLmxlbmd0aCxcbiAgICAgICAgICBpdGVyYXRlZSA9IGxlbmd0aCA+IDEgPyBhcnJheXNbbGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG5cbiAgICAgIGl0ZXJhdGVlID0gdHlwZW9mIGl0ZXJhdGVlID09ICdmdW5jdGlvbicgPyAoYXJyYXlzLnBvcCgpLCBpdGVyYXRlZSkgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gdW56aXBXaXRoKGFycmF5cywgaXRlcmF0ZWUpO1xuICAgIH0pO1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UgdGhhdCB3cmFwcyBgdmFsdWVgIHdpdGggZXhwbGljaXQgbWV0aG9kXG4gICAgICogY2hhaW4gc2VxdWVuY2VzIGVuYWJsZWQuIFRoZSByZXN1bHQgb2Ygc3VjaCBzZXF1ZW5jZXMgbXVzdCBiZSB1bndyYXBwZWRcbiAgICAgKiB3aXRoIGBfI3ZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjMuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byB3cmFwLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBgbG9kYXNoYCB3cmFwcGVyIGluc3RhbmNlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWdlJzogMzYgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhZ2UnOiA0MCB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FnZSc6IDEgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiB2YXIgeW91bmdlc3QgPSBfXG4gICAgICogICAuY2hhaW4odXNlcnMpXG4gICAgICogICAuc29ydEJ5KCdhZ2UnKVxuICAgICAqICAgLm1hcChmdW5jdGlvbihvKSB7XG4gICAgICogICAgIHJldHVybiBvLnVzZXIgKyAnIGlzICcgKyBvLmFnZTtcbiAgICAgKiAgIH0pXG4gICAgICogICAuaGVhZCgpXG4gICAgICogICAudmFsdWUoKTtcbiAgICAgKiAvLyA9PiAncGViYmxlcyBpcyAxJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNoYWluKHZhbHVlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gbG9kYXNoKHZhbHVlKTtcbiAgICAgIHJlc3VsdC5fX2NoYWluX18gPSB0cnVlO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpbnZva2VzIGBpbnRlcmNlcHRvcmAgYW5kIHJldHVybnMgYHZhbHVlYC4gVGhlIGludGVyY2VwdG9yXG4gICAgICogaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDsgKHZhbHVlKS4gVGhlIHB1cnBvc2Ugb2YgdGhpcyBtZXRob2QgaXMgdG9cbiAgICAgKiBcInRhcCBpbnRvXCIgYSBtZXRob2QgY2hhaW4gc2VxdWVuY2UgaW4gb3JkZXIgdG8gbW9kaWZ5IGludGVybWVkaWF0ZSByZXN1bHRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb3ZpZGUgdG8gYGludGVyY2VwdG9yYC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpbnRlcmNlcHRvciBUaGUgZnVuY3Rpb24gdG8gaW52b2tlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIGB2YWx1ZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8oWzEsIDIsIDNdKVxuICAgICAqICAudGFwKGZ1bmN0aW9uKGFycmF5KSB7XG4gICAgICogICAgLy8gTXV0YXRlIGlucHV0IGFycmF5LlxuICAgICAqICAgIGFycmF5LnBvcCgpO1xuICAgICAqICB9KVxuICAgICAqICAucmV2ZXJzZSgpXG4gICAgICogIC52YWx1ZSgpO1xuICAgICAqIC8vID0+IFsyLCAxXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRhcCh2YWx1ZSwgaW50ZXJjZXB0b3IpIHtcbiAgICAgIGludGVyY2VwdG9yKHZhbHVlKTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnRhcGAgZXhjZXB0IHRoYXQgaXQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIGBpbnRlcmNlcHRvcmAuXG4gICAgICogVGhlIHB1cnBvc2Ugb2YgdGhpcyBtZXRob2QgaXMgdG8gXCJwYXNzIHRocnVcIiB2YWx1ZXMgcmVwbGFjaW5nIGludGVybWVkaWF0ZVxuICAgICAqIHJlc3VsdHMgaW4gYSBtZXRob2QgY2hhaW4gc2VxdWVuY2UuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvdmlkZSB0byBgaW50ZXJjZXB0b3JgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGludGVyY2VwdG9yIFRoZSBmdW5jdGlvbiB0byBpbnZva2UuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc3VsdCBvZiBgaW50ZXJjZXB0b3JgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfKCcgIGFiYyAgJylcbiAgICAgKiAgLmNoYWluKClcbiAgICAgKiAgLnRyaW0oKVxuICAgICAqICAudGhydShmdW5jdGlvbih2YWx1ZSkge1xuICAgICAqICAgIHJldHVybiBbdmFsdWVdO1xuICAgICAqICB9KVxuICAgICAqICAudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbJ2FiYyddXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGhydSh2YWx1ZSwgaW50ZXJjZXB0b3IpIHtcbiAgICAgIHJldHVybiBpbnRlcmNlcHRvcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgdGhlIHdyYXBwZXIgdmVyc2lvbiBvZiBgXy5hdGAuXG4gICAgICpcbiAgICAgKiBAbmFtZSBhdFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMC4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEBwYXJhbSB7Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwYXRoc10gVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogMyB9IH0sIDRdIH07XG4gICAgICpcbiAgICAgKiBfKG9iamVjdCkuYXQoWydhWzBdLmIuYycsICdhWzFdJ10pLnZhbHVlKCk7XG4gICAgICogLy8gPT4gWzMsIDRdXG4gICAgICovXG4gICAgdmFyIHdyYXBwZXJBdCA9IGZsYXRSZXN0KGZ1bmN0aW9uKHBhdGhzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gcGF0aHMubGVuZ3RoLFxuICAgICAgICAgIHN0YXJ0ID0gbGVuZ3RoID8gcGF0aHNbMF0gOiAwLFxuICAgICAgICAgIHZhbHVlID0gdGhpcy5fX3dyYXBwZWRfXyxcbiAgICAgICAgICBpbnRlcmNlcHRvciA9IGZ1bmN0aW9uKG9iamVjdCkgeyByZXR1cm4gYmFzZUF0KG9iamVjdCwgcGF0aHMpOyB9O1xuXG4gICAgICBpZiAobGVuZ3RoID4gMSB8fCB0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCB8fFxuICAgICAgICAgICEodmFsdWUgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikgfHwgIWlzSW5kZXgoc3RhcnQpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRocnUoaW50ZXJjZXB0b3IpO1xuICAgICAgfVxuICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZShzdGFydCwgK3N0YXJ0ICsgKGxlbmd0aCA/IDEgOiAwKSk7XG4gICAgICB2YWx1ZS5fX2FjdGlvbnNfXy5wdXNoKHtcbiAgICAgICAgJ2Z1bmMnOiB0aHJ1LFxuICAgICAgICAnYXJncyc6IFtpbnRlcmNlcHRvcl0sXG4gICAgICAgICd0aGlzQXJnJzogdW5kZWZpbmVkXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgTG9kYXNoV3JhcHBlcih2YWx1ZSwgdGhpcy5fX2NoYWluX18pLnRocnUoZnVuY3Rpb24oYXJyYXkpIHtcbiAgICAgICAgaWYgKGxlbmd0aCAmJiAhYXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgYXJyYXkucHVzaCh1bmRlZmluZWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2Ugd2l0aCBleHBsaWNpdCBtZXRob2QgY2hhaW4gc2VxdWVuY2VzIGVuYWJsZWQuXG4gICAgICpcbiAgICAgKiBAbmFtZSBjaGFpblxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBgbG9kYXNoYCB3cmFwcGVyIGluc3RhbmNlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyBBIHNlcXVlbmNlIHdpdGhvdXQgZXhwbGljaXQgY2hhaW5pbmcuXG4gICAgICogXyh1c2VycykuaGVhZCgpO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH1cbiAgICAgKlxuICAgICAqIC8vIEEgc2VxdWVuY2Ugd2l0aCBleHBsaWNpdCBjaGFpbmluZy5cbiAgICAgKiBfKHVzZXJzKVxuICAgICAqICAgLmNoYWluKClcbiAgICAgKiAgIC5oZWFkKClcbiAgICAgKiAgIC5waWNrKCd1c2VyJylcbiAgICAgKiAgIC52YWx1ZSgpO1xuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnYmFybmV5JyB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcHBlckNoYWluKCkge1xuICAgICAgcmV0dXJuIGNoYWluKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIHRoZSBjaGFpbiBzZXF1ZW5jZSBhbmQgcmV0dXJucyB0aGUgd3JhcHBlZCByZXN1bHQuXG4gICAgICpcbiAgICAgKiBAbmFtZSBjb21taXRcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjIuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDJdO1xuICAgICAqIHZhciB3cmFwcGVkID0gXyhhcnJheSkucHVzaCgzKTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIHdyYXBwZWQgPSB3cmFwcGVkLmNvbW1pdCgpO1xuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIHdyYXBwZWQubGFzdCgpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyQ29tbWl0KCkge1xuICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHRoaXMudmFsdWUoKSwgdGhpcy5fX2NoYWluX18pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG5leHQgdmFsdWUgb24gYSB3cmFwcGVkIG9iamVjdCBmb2xsb3dpbmcgdGhlXG4gICAgICogW2l0ZXJhdG9yIHByb3RvY29sXShodHRwczovL21kbi5pby9pdGVyYXRpb25fcHJvdG9jb2xzI2l0ZXJhdG9yKS5cbiAgICAgKlxuICAgICAqIEBuYW1lIG5leHRcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXh0IGl0ZXJhdG9yIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgd3JhcHBlZCA9IF8oWzEsIDJdKTtcbiAgICAgKlxuICAgICAqIHdyYXBwZWQubmV4dCgpO1xuICAgICAqIC8vID0+IHsgJ2RvbmUnOiBmYWxzZSwgJ3ZhbHVlJzogMSB9XG4gICAgICpcbiAgICAgKiB3cmFwcGVkLm5leHQoKTtcbiAgICAgKiAvLyA9PiB7ICdkb25lJzogZmFsc2UsICd2YWx1ZSc6IDIgfVxuICAgICAqXG4gICAgICogd3JhcHBlZC5uZXh0KCk7XG4gICAgICogLy8gPT4geyAnZG9uZSc6IHRydWUsICd2YWx1ZSc6IHVuZGVmaW5lZCB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcHBlck5leHQoKSB7XG4gICAgICBpZiAodGhpcy5fX3ZhbHVlc19fID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fX3ZhbHVlc19fID0gdG9BcnJheSh0aGlzLnZhbHVlKCkpO1xuICAgICAgfVxuICAgICAgdmFyIGRvbmUgPSB0aGlzLl9faW5kZXhfXyA+PSB0aGlzLl9fdmFsdWVzX18ubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlID0gZG9uZSA/IHVuZGVmaW5lZCA6IHRoaXMuX192YWx1ZXNfX1t0aGlzLl9faW5kZXhfXysrXTtcblxuICAgICAgcmV0dXJuIHsgJ2RvbmUnOiBkb25lLCAndmFsdWUnOiB2YWx1ZSB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgdGhlIHdyYXBwZXIgdG8gYmUgaXRlcmFibGUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBTeW1ib2wuaXRlcmF0b3JcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSB3cmFwcGVyIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHdyYXBwZWQgPSBfKFsxLCAyXSk7XG4gICAgICpcbiAgICAgKiB3cmFwcGVkW1N5bWJvbC5pdGVyYXRvcl0oKSA9PT0gd3JhcHBlZDtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBBcnJheS5mcm9tKHdyYXBwZWQpO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJUb0l0ZXJhdG9yKCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIHRoZSBjaGFpbiBzZXF1ZW5jZSBwbGFudGluZyBgdmFsdWVgIGFzIHRoZSB3cmFwcGVkIHZhbHVlLlxuICAgICAqXG4gICAgICogQG5hbWUgcGxhbnRcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjIuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwbGFudC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgd3JhcHBlZCA9IF8oWzEsIDJdKS5tYXAoc3F1YXJlKTtcbiAgICAgKiB2YXIgb3RoZXIgPSB3cmFwcGVkLnBsYW50KFszLCA0XSk7XG4gICAgICpcbiAgICAgKiBvdGhlci52YWx1ZSgpO1xuICAgICAqIC8vID0+IFs5LCAxNl1cbiAgICAgKlxuICAgICAqIHdyYXBwZWQudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbMSwgNF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyUGxhbnQodmFsdWUpIHtcbiAgICAgIHZhciByZXN1bHQsXG4gICAgICAgICAgcGFyZW50ID0gdGhpcztcblxuICAgICAgd2hpbGUgKHBhcmVudCBpbnN0YW5jZW9mIGJhc2VMb2Rhc2gpIHtcbiAgICAgICAgdmFyIGNsb25lID0gd3JhcHBlckNsb25lKHBhcmVudCk7XG4gICAgICAgIGNsb25lLl9faW5kZXhfXyA9IDA7XG4gICAgICAgIGNsb25lLl9fdmFsdWVzX18gPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICBwcmV2aW91cy5fX3dyYXBwZWRfXyA9IGNsb25lO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IGNsb25lO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwcmV2aW91cyA9IGNsb25lO1xuICAgICAgICBwYXJlbnQgPSBwYXJlbnQuX193cmFwcGVkX187XG4gICAgICB9XG4gICAgICBwcmV2aW91cy5fX3dyYXBwZWRfXyA9IHZhbHVlO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUgd3JhcHBlciB2ZXJzaW9uIG9mIGBfLnJldmVyc2VgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgdGhlIHdyYXBwZWQgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAbmFtZSByZXZlcnNlXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsxLCAyLCAzXTtcbiAgICAgKlxuICAgICAqIF8oYXJyYXkpLnJldmVyc2UoKS52YWx1ZSgpXG4gICAgICogLy8gPT4gWzMsIDIsIDFdXG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gWzMsIDIsIDFdXG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcHBlclJldmVyc2UoKSB7XG4gICAgICB2YXIgdmFsdWUgPSB0aGlzLl9fd3JhcHBlZF9fO1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIpIHtcbiAgICAgICAgdmFyIHdyYXBwZWQgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX19hY3Rpb25zX18ubGVuZ3RoKSB7XG4gICAgICAgICAgd3JhcHBlZCA9IG5ldyBMYXp5V3JhcHBlcih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICB3cmFwcGVkID0gd3JhcHBlZC5yZXZlcnNlKCk7XG4gICAgICAgIHdyYXBwZWQuX19hY3Rpb25zX18ucHVzaCh7XG4gICAgICAgICAgJ2Z1bmMnOiB0aHJ1LFxuICAgICAgICAgICdhcmdzJzogW3JldmVyc2VdLFxuICAgICAgICAgICd0aGlzQXJnJzogdW5kZWZpbmVkXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIod3JhcHBlZCwgdGhpcy5fX2NoYWluX18pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMudGhydShyZXZlcnNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyB0aGUgY2hhaW4gc2VxdWVuY2UgdG8gcmVzb2x2ZSB0aGUgdW53cmFwcGVkIHZhbHVlLlxuICAgICAqXG4gICAgICogQG5hbWUgdmFsdWVcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBhbGlhcyB0b0pTT04sIHZhbHVlT2ZcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHVud3JhcHBlZCB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXyhbMSwgMiwgM10pLnZhbHVlKCk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcHBlclZhbHVlKCkge1xuICAgICAgcmV0dXJuIGJhc2VXcmFwcGVyVmFsdWUodGhpcy5fX3dyYXBwZWRfXywgdGhpcy5fX2FjdGlvbnNfXyk7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2Yga2V5cyBnZW5lcmF0ZWQgZnJvbSB0aGUgcmVzdWx0cyBvZiBydW5uaW5nXG4gICAgICogZWFjaCBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYCB0aHJ1IGBpdGVyYXRlZWAuIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIG9mXG4gICAgICogZWFjaCBrZXkgaXMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUga2V5IHdhcyByZXR1cm5lZCBieSBgaXRlcmF0ZWVgLiBUaGVcbiAgICAgKiBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuNS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSB0byB0cmFuc2Zvcm0ga2V5cy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb21wb3NlZCBhZ2dyZWdhdGUgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNvdW50QnkoWzYuMSwgNC4yLCA2LjNdLCBNYXRoLmZsb29yKTtcbiAgICAgKiAvLyA9PiB7ICc0JzogMSwgJzYnOiAyIH1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uY291bnRCeShbJ29uZScsICd0d28nLCAndGhyZWUnXSwgJ2xlbmd0aCcpO1xuICAgICAqIC8vID0+IHsgJzMnOiAyLCAnNSc6IDEgfVxuICAgICAqL1xuICAgIHZhciBjb3VudEJ5ID0gY3JlYXRlQWdncmVnYXRvcihmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlc3VsdCwga2V5KSkge1xuICAgICAgICArK3Jlc3VsdFtrZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmFzZUFzc2lnblZhbHVlKHJlc3VsdCwga2V5LCAxKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgKiphbGwqKiBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAuXG4gICAgICogSXRlcmF0aW9uIGlzIHN0b3BwZWQgb25jZSBgcHJlZGljYXRlYCByZXR1cm5zIGZhbHNleS4gVGhlIHByZWRpY2F0ZSBpc1xuICAgICAqIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCByZXR1cm5zIGB0cnVlYCBmb3JcbiAgICAgKiBbZW1wdHkgY29sbGVjdGlvbnNdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0VtcHR5X3NldCkgYmVjYXVzZVxuICAgICAqIFtldmVyeXRoaW5nIGlzIHRydWVdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZhY3VvdXNfdHJ1dGgpIG9mXG4gICAgICogZWxlbWVudHMgb2YgZW1wdHkgY29sbGVjdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYWxsIGVsZW1lbnRzIHBhc3MgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmV2ZXJ5KFt0cnVlLCAxLCBudWxsLCAneWVzJ10sIEJvb2xlYW4pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmV2ZXJ5KHVzZXJzLCB7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiBmYWxzZSB9KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZXZlcnkodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmV2ZXJ5KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBldmVyeShjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGd1YXJkKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUV2ZXJ5IDogYmFzZUV2ZXJ5O1xuICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZ3VhcmQpKSB7XG4gICAgICAgIHByZWRpY2F0ZSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gLCByZXR1cm5pbmcgYW4gYXJyYXkgb2YgYWxsIGVsZW1lbnRzXG4gICAgICogYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yLiBUaGUgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aCB0aHJlZVxuICAgICAqIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5yZW1vdmVgLCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxuICAgICAqIEBzZWUgXy5yZWplY3RcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5maWx0ZXIodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuICFvLmFjdGl2ZTsgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydmcmVkJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maWx0ZXIodXNlcnMsIHsgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leSddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maWx0ZXIodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maWx0ZXIodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leSddXG4gICAgICpcbiAgICAgKiAvLyBDb21iaW5pbmcgc2V2ZXJhbCBwcmVkaWNhdGVzIHVzaW5nIGBfLm92ZXJFdmVyeWAgb3IgYF8ub3ZlclNvbWVgLlxuICAgICAqIF8uZmlsdGVyKHVzZXJzLCBfLm92ZXJTb21lKFt7ICdhZ2UnOiAzNiB9LCBbJ2FnZScsIDQwXV0pKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnLCAnYmFybmV5J11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaWx0ZXIoY29sbGVjdGlvbiwgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUZpbHRlciA6IGJhc2VGaWx0ZXI7XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYCwgcmV0dXJuaW5nIHRoZSBmaXJzdCBlbGVtZW50XG4gICAgICogYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yLiBUaGUgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aCB0aHJlZVxuICAgICAqIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1hdGNoZWQgZWxlbWVudCwgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhZ2UnOiAxLCAgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmZpbmQodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8uYWdlIDwgNDA7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdCBmb3IgJ2Jhcm5leSdcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kKHVzZXJzLCB7ICdhZ2UnOiAxLCAnYWN0aXZlJzogdHJ1ZSB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3QgZm9yICdwZWJibGVzJ1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZCh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdCBmb3IgJ2ZyZWQnXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmQodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBvYmplY3QgZm9yICdiYXJuZXknXG4gICAgICovXG4gICAgdmFyIGZpbmQgPSBjcmVhdGVGaW5kKGZpbmRJbmRleCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZpbmRgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2ZcbiAgICAgKiBgY29sbGVjdGlvbmAgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD1jb2xsZWN0aW9uLmxlbmd0aC0xXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1hdGNoZWQgZWxlbWVudCwgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5maW5kTGFzdChbMSwgMiwgMywgNF0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICUgMiA9PSAxO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IDNcbiAgICAgKi9cbiAgICB2YXIgZmluZExhc3QgPSBjcmVhdGVGaW5kKGZpbmRMYXN0SW5kZXgpO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZsYXR0ZW5lZCBhcnJheSBvZiB2YWx1ZXMgYnkgcnVubmluZyBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gXG4gICAgICogdGhydSBgaXRlcmF0ZWVgIGFuZCBmbGF0dGVuaW5nIHRoZSBtYXBwZWQgcmVzdWx0cy4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBkdXBsaWNhdGUobikge1xuICAgICAqICAgcmV0dXJuIFtuLCBuXTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLmZsYXRNYXAoWzEsIDJdLCBkdXBsaWNhdGUpO1xuICAgICAqIC8vID0+IFsxLCAxLCAyLCAyXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZsYXRNYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBiYXNlRmxhdHRlbihtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpLCAxKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZsYXRNYXBgIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IGZsYXR0ZW5zIHRoZVxuICAgICAqIG1hcHBlZCByZXN1bHRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNy4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBkdXBsaWNhdGUobikge1xuICAgICAqICAgcmV0dXJuIFtbW24sIG5dXV07XG4gICAgICogfVxuICAgICAqXG4gICAgICogXy5mbGF0TWFwRGVlcChbMSwgMl0sIGR1cGxpY2F0ZSk7XG4gICAgICogLy8gPT4gWzEsIDEsIDIsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmxhdE1hcERlZXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBiYXNlRmxhdHRlbihtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpLCBJTkZJTklUWSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5mbGF0TWFwYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBmbGF0dGVucyB0aGVcbiAgICAgKiBtYXBwZWQgcmVzdWx0cyB1cCB0byBgZGVwdGhgIHRpbWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNy4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtkZXB0aD0xXSBUaGUgbWF4aW11bSByZWN1cnNpb24gZGVwdGguXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBkdXBsaWNhdGUobikge1xuICAgICAqICAgcmV0dXJuIFtbW24sIG5dXV07XG4gICAgICogfVxuICAgICAqXG4gICAgICogXy5mbGF0TWFwRGVwdGgoWzEsIDJdLCBkdXBsaWNhdGUsIDIpO1xuICAgICAqIC8vID0+IFtbMSwgMV0sIFsyLCAyXV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmbGF0TWFwRGVwdGgoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGRlcHRoKSB7XG4gICAgICBkZXB0aCA9IGRlcHRoID09PSB1bmRlZmluZWQgPyAxIDogdG9JbnRlZ2VyKGRlcHRoKTtcbiAgICAgIHJldHVybiBiYXNlRmxhdHRlbihtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpLCBkZXB0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAgYW5kIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgZWFjaCBlbGVtZW50LlxuICAgICAqIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICogSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIEFzIHdpdGggb3RoZXIgXCJDb2xsZWN0aW9uc1wiIG1ldGhvZHMsIG9iamVjdHMgd2l0aCBhIFwibGVuZ3RoXCJcbiAgICAgKiBwcm9wZXJ0eSBhcmUgaXRlcmF0ZWQgbGlrZSBhcnJheXMuIFRvIGF2b2lkIHRoaXMgYmVoYXZpb3IgdXNlIGBfLmZvckluYFxuICAgICAqIG9yIGBfLmZvck93bmAgZm9yIG9iamVjdCBpdGVyYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAYWxpYXMgZWFjaFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxuICAgICAqIEBzZWUgXy5mb3JFYWNoUmlnaHRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5mb3JFYWNoKFsxLCAyXSwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKHZhbHVlKTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBMb2dzIGAxYCB0aGVuIGAyYC5cbiAgICAgKlxuICAgICAqIF8uZm9yRWFjaCh7ICdhJzogMSwgJ2InOiAyIH0sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKGtleSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gTG9ncyAnYScgdGhlbiAnYicgKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZCkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZm9yRWFjaChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlFYWNoIDogYmFzZUVhY2g7XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZm9yRWFjaGAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAYWxpYXMgZWFjaFJpZ2h0XG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gICAgICogQHNlZSBfLmZvckVhY2hcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5mb3JFYWNoUmlnaHQoWzEsIDJdLCBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAqICAgY29uc29sZS5sb2codmFsdWUpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IExvZ3MgYDJgIHRoZW4gYDFgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZvckVhY2hSaWdodChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlFYWNoUmlnaHQgOiBiYXNlRWFjaFJpZ2h0O1xuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiBrZXlzIGdlbmVyYXRlZCBmcm9tIHRoZSByZXN1bHRzIG9mIHJ1bm5pbmdcbiAgICAgKiBlYWNoIGVsZW1lbnQgb2YgYGNvbGxlY3Rpb25gIHRocnUgYGl0ZXJhdGVlYC4gVGhlIG9yZGVyIG9mIGdyb3VwZWQgdmFsdWVzXG4gICAgICogaXMgZGV0ZXJtaW5lZCBieSB0aGUgb3JkZXIgdGhleSBvY2N1ciBpbiBgY29sbGVjdGlvbmAuIFRoZSBjb3JyZXNwb25kaW5nXG4gICAgICogdmFsdWUgb2YgZWFjaCBrZXkgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgdGhlXG4gICAgICoga2V5LiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIGtleXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY29tcG9zZWQgYWdncmVnYXRlIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5ncm91cEJ5KFs2LjEsIDQuMiwgNi4zXSwgTWF0aC5mbG9vcik7XG4gICAgICogLy8gPT4geyAnNCc6IFs0LjJdLCAnNic6IFs2LjEsIDYuM10gfVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5ncm91cEJ5KFsnb25lJywgJ3R3bycsICd0aHJlZSddLCAnbGVuZ3RoJyk7XG4gICAgICogLy8gPT4geyAnMyc6IFsnb25lJywgJ3R3byddLCAnNSc6IFsndGhyZWUnXSB9XG4gICAgICovXG4gICAgdmFyIGdyb3VwQnkgPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocmVzdWx0LCBrZXkpKSB7XG4gICAgICAgIHJlc3VsdFtrZXldLnB1c2godmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmFzZUFzc2lnblZhbHVlKHJlc3VsdCwga2V5LCBbdmFsdWVdKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGluIGBjb2xsZWN0aW9uYC4gSWYgYGNvbGxlY3Rpb25gIGlzIGEgc3RyaW5nLCBpdCdzXG4gICAgICogY2hlY2tlZCBmb3IgYSBzdWJzdHJpbmcgb2YgYHZhbHVlYCwgb3RoZXJ3aXNlXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBpcyB1c2VkIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy4gSWYgYGZyb21JbmRleGAgaXMgbmVnYXRpdmUsIGl0J3MgdXNlZCBhc1xuICAgICAqIHRoZSBvZmZzZXQgZnJvbSB0aGUgZW5kIG9mIGBjb2xsZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ucmVkdWNlYC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmluY2x1ZGVzKFsxLCAyLCAzXSwgMSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pbmNsdWRlcyhbMSwgMiwgM10sIDEsIDIpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmluY2x1ZGVzKHsgJ2EnOiAxLCAnYic6IDIgfSwgMSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pbmNsdWRlcygnYWJjZCcsICdiYycpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbmNsdWRlcyhjb2xsZWN0aW9uLCB2YWx1ZSwgZnJvbUluZGV4LCBndWFyZCkge1xuICAgICAgY29sbGVjdGlvbiA9IGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pID8gY29sbGVjdGlvbiA6IHZhbHVlcyhjb2xsZWN0aW9uKTtcbiAgICAgIGZyb21JbmRleCA9IChmcm9tSW5kZXggJiYgIWd1YXJkKSA/IHRvSW50ZWdlcihmcm9tSW5kZXgpIDogMDtcblxuICAgICAgdmFyIGxlbmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoO1xuICAgICAgaWYgKGZyb21JbmRleCA8IDApIHtcbiAgICAgICAgZnJvbUluZGV4ID0gbmF0aXZlTWF4KGxlbmd0aCArIGZyb21JbmRleCwgMCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNTdHJpbmcoY29sbGVjdGlvbilcbiAgICAgICAgPyAoZnJvbUluZGV4IDw9IGxlbmd0aCAmJiBjb2xsZWN0aW9uLmluZGV4T2YodmFsdWUsIGZyb21JbmRleCkgPiAtMSlcbiAgICAgICAgOiAoISFsZW5ndGggJiYgYmFzZUluZGV4T2YoY29sbGVjdGlvbiwgdmFsdWUsIGZyb21JbmRleCkgPiAtMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyB0aGUgbWV0aG9kIGF0IGBwYXRoYCBvZiBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gLCByZXR1cm5pbmdcbiAgICAgKiBhbiBhcnJheSBvZiB0aGUgcmVzdWx0cyBvZiBlYWNoIGludm9rZWQgbWV0aG9kLiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICAgKiBhcmUgcHJvdmlkZWQgdG8gZWFjaCBpbnZva2VkIG1ldGhvZC4gSWYgYHBhdGhgIGlzIGEgZnVuY3Rpb24sIGl0J3MgaW52b2tlZFxuICAgICAqIGZvciwgYW5kIGB0aGlzYCBib3VuZCB0bywgZWFjaCBlbGVtZW50IGluIGBjb2xsZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7QXJyYXl8RnVuY3Rpb258c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBtZXRob2QgdG8gaW52b2tlIG9yXG4gICAgICogIHRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgZWFjaCBtZXRob2Qgd2l0aC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaW52b2tlTWFwKFtbNSwgMSwgN10sIFszLCAyLCAxXV0sICdzb3J0Jyk7XG4gICAgICogLy8gPT4gW1sxLCA1LCA3XSwgWzEsIDIsIDNdXVxuICAgICAqXG4gICAgICogXy5pbnZva2VNYXAoWzEyMywgNDU2XSwgU3RyaW5nLnByb3RvdHlwZS5zcGxpdCwgJycpO1xuICAgICAqIC8vID0+IFtbJzEnLCAnMicsICczJ10sIFsnNCcsICc1JywgJzYnXV1cbiAgICAgKi9cbiAgICB2YXIgaW52b2tlTWFwID0gYmFzZVJlc3QoZnVuY3Rpb24oY29sbGVjdGlvbiwgcGF0aCwgYXJncykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgaXNGdW5jID0gdHlwZW9mIHBhdGggPT0gJ2Z1bmN0aW9uJyxcbiAgICAgICAgICByZXN1bHQgPSBpc0FycmF5TGlrZShjb2xsZWN0aW9uKSA/IEFycmF5KGNvbGxlY3Rpb24ubGVuZ3RoKSA6IFtdO1xuXG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICByZXN1bHRbKytpbmRleF0gPSBpc0Z1bmMgPyBhcHBseShwYXRoLCB2YWx1ZSwgYXJncykgOiBiYXNlSW52b2tlKHZhbHVlLCBwYXRoLCBhcmdzKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIGtleXMgZ2VuZXJhdGVkIGZyb20gdGhlIHJlc3VsdHMgb2YgcnVubmluZ1xuICAgICAqIGVhY2ggZWxlbWVudCBvZiBgY29sbGVjdGlvbmAgdGhydSBgaXRlcmF0ZWVgLiBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBvZlxuICAgICAqIGVhY2gga2V5IGlzIHRoZSBsYXN0IGVsZW1lbnQgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgdGhlIGtleS4gVGhlXG4gICAgICogaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIGtleXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY29tcG9zZWQgYWdncmVnYXRlIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gW1xuICAgICAqICAgeyAnZGlyJzogJ2xlZnQnLCAnY29kZSc6IDk3IH0sXG4gICAgICogICB7ICdkaXInOiAncmlnaHQnLCAnY29kZSc6IDEwMCB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ua2V5QnkoYXJyYXksIGZ1bmN0aW9uKG8pIHtcbiAgICAgKiAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKG8uY29kZSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4geyAnYSc6IHsgJ2Rpcic6ICdsZWZ0JywgJ2NvZGUnOiA5NyB9LCAnZCc6IHsgJ2Rpcic6ICdyaWdodCcsICdjb2RlJzogMTAwIH0gfVxuICAgICAqXG4gICAgICogXy5rZXlCeShhcnJheSwgJ2RpcicpO1xuICAgICAqIC8vID0+IHsgJ2xlZnQnOiB7ICdkaXInOiAnbGVmdCcsICdjb2RlJzogOTcgfSwgJ3JpZ2h0JzogeyAnZGlyJzogJ3JpZ2h0JywgJ2NvZGUnOiAxMDAgfSB9XG4gICAgICovXG4gICAgdmFyIGtleUJ5ID0gY3JlYXRlQWdncmVnYXRvcihmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgIGJhc2VBc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgdmFsdWUpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB2YWx1ZXMgYnkgcnVubmluZyBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gIHRocnVcbiAgICAgKiBgaXRlcmF0ZWVgLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czpcbiAgICAgKiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBNYW55IGxvZGFzaCBtZXRob2RzIGFyZSBndWFyZGVkIHRvIHdvcmsgYXMgaXRlcmF0ZWVzIGZvciBtZXRob2RzIGxpa2VcbiAgICAgKiBgXy5ldmVyeWAsIGBfLmZpbHRlcmAsIGBfLm1hcGAsIGBfLm1hcFZhbHVlc2AsIGBfLnJlamVjdGAsIGFuZCBgXy5zb21lYC5cbiAgICAgKlxuICAgICAqIFRoZSBndWFyZGVkIG1ldGhvZHMgYXJlOlxuICAgICAqIGBhcnlgLCBgY2h1bmtgLCBgY3VycnlgLCBgY3VycnlSaWdodGAsIGBkcm9wYCwgYGRyb3BSaWdodGAsIGBldmVyeWAsXG4gICAgICogYGZpbGxgLCBgaW52ZXJ0YCwgYHBhcnNlSW50YCwgYHJhbmRvbWAsIGByYW5nZWAsIGByYW5nZVJpZ2h0YCwgYHJlcGVhdGAsXG4gICAgICogYHNhbXBsZVNpemVgLCBgc2xpY2VgLCBgc29tZWAsIGBzb3J0QnlgLCBgc3BsaXRgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLFxuICAgICAqIGB0ZW1wbGF0ZWAsIGB0cmltYCwgYHRyaW1FbmRgLCBgdHJpbVN0YXJ0YCwgYW5kIGB3b3Jkc2BcbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLm1hcChbNCwgOF0sIHNxdWFyZSk7XG4gICAgICogLy8gPT4gWzE2LCA2NF1cbiAgICAgKlxuICAgICAqIF8ubWFwKHsgJ2EnOiA0LCAnYic6IDggfSwgc3F1YXJlKTtcbiAgICAgKiAvLyA9PiBbMTYsIDY0XSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5tYXAodXNlcnMsICd1c2VyJyk7XG4gICAgICogLy8gPT4gWydiYXJuZXknLCAnZnJlZCddXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheU1hcCA6IGJhc2VNYXA7XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc29ydEJ5YCBleGNlcHQgdGhhdCBpdCBhbGxvd3Mgc3BlY2lmeWluZyB0aGUgc29ydFxuICAgICAqIG9yZGVycyBvZiB0aGUgaXRlcmF0ZWVzIHRvIHNvcnQgYnkuIElmIGBvcmRlcnNgIGlzIHVuc3BlY2lmaWVkLCBhbGwgdmFsdWVzXG4gICAgICogYXJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuIE90aGVyd2lzZSwgc3BlY2lmeSBhbiBvcmRlciBvZiBcImRlc2NcIiBmb3JcbiAgICAgKiBkZXNjZW5kaW5nIG9yIFwiYXNjXCIgZm9yIGFzY2VuZGluZyBzb3J0IG9yZGVyIG9mIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBcnJheVtdfEZ1bmN0aW9uW118T2JqZWN0W118c3RyaW5nW119IFtpdGVyYXRlZXM9W18uaWRlbnRpdHldXVxuICAgICAqICBUaGUgaXRlcmF0ZWVzIHRvIHNvcnQgYnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gW29yZGVyc10gVGhlIHNvcnQgb3JkZXJzIG9mIGBpdGVyYXRlZXNgLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLnJlZHVjZWAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgc29ydGVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0OCB9LFxuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzQgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIC8vIFNvcnQgYnkgYHVzZXJgIGluIGFzY2VuZGluZyBvcmRlciBhbmQgYnkgYGFnZWAgaW4gZGVzY2VuZGluZyBvcmRlci5cbiAgICAgKiBfLm9yZGVyQnkodXNlcnMsIFsndXNlcicsICdhZ2UnXSwgWydhc2MnLCAnZGVzYyddKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbWydiYXJuZXknLCAzNl0sIFsnYmFybmV5JywgMzRdLCBbJ2ZyZWQnLCA0OF0sIFsnZnJlZCcsIDQwXV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBvcmRlckJ5KGNvbGxlY3Rpb24sIGl0ZXJhdGVlcywgb3JkZXJzLCBndWFyZCkge1xuICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAoIWlzQXJyYXkoaXRlcmF0ZWVzKSkge1xuICAgICAgICBpdGVyYXRlZXMgPSBpdGVyYXRlZXMgPT0gbnVsbCA/IFtdIDogW2l0ZXJhdGVlc107XG4gICAgICB9XG4gICAgICBvcmRlcnMgPSBndWFyZCA/IHVuZGVmaW5lZCA6IG9yZGVycztcbiAgICAgIGlmICghaXNBcnJheShvcmRlcnMpKSB7XG4gICAgICAgIG9yZGVycyA9IG9yZGVycyA9PSBudWxsID8gW10gOiBbb3JkZXJzXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlT3JkZXJCeShjb2xsZWN0aW9uLCBpdGVyYXRlZXMsIG9yZGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBlbGVtZW50cyBzcGxpdCBpbnRvIHR3byBncm91cHMsIHRoZSBmaXJzdCBvZiB3aGljaFxuICAgICAqIGNvbnRhaW5zIGVsZW1lbnRzIGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvciwgdGhlIHNlY29uZCBvZiB3aGljaFxuICAgICAqIGNvbnRhaW5zIGVsZW1lbnRzIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5IGZvci4gVGhlIHByZWRpY2F0ZSBpc1xuICAgICAqIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWdlJzogMzYsICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FnZSc6IDEsICAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnBhcnRpdGlvbih1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gby5hY3RpdmU7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2ZyZWQnXSwgWydiYXJuZXknLCAncGViYmxlcyddXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnBhcnRpdGlvbih1c2VycywgeyAnYWdlJzogMSwgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ3BlYmJsZXMnXSwgWydiYXJuZXknLCAnZnJlZCddXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ucGFydGl0aW9uKHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgW1snYmFybmV5JywgJ3BlYmJsZXMnXSwgWydmcmVkJ11dXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnBhcnRpdGlvbih1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2ZyZWQnXSwgWydiYXJuZXknLCAncGViYmxlcyddXVxuICAgICAqL1xuICAgIHZhciBwYXJ0aXRpb24gPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgcmVzdWx0W2tleSA/IDAgOiAxXS5wdXNoKHZhbHVlKTtcbiAgICB9LCBmdW5jdGlvbigpIHsgcmV0dXJuIFtbXSwgW11dOyB9KTtcblxuICAgIC8qKlxuICAgICAqIFJlZHVjZXMgYGNvbGxlY3Rpb25gIHRvIGEgdmFsdWUgd2hpY2ggaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCBvZiBydW5uaW5nXG4gICAgICogZWFjaCBlbGVtZW50IGluIGBjb2xsZWN0aW9uYCB0aHJ1IGBpdGVyYXRlZWAsIHdoZXJlIGVhY2ggc3VjY2Vzc2l2ZVxuICAgICAqIGludm9jYXRpb24gaXMgc3VwcGxpZWQgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgcHJldmlvdXMuIElmIGBhY2N1bXVsYXRvcmBcbiAgICAgKiBpcyBub3QgZ2l2ZW4sIHRoZSBmaXJzdCBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsXG4gICAgICogdmFsdWUuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggZm91ciBhcmd1bWVudHM6XG4gICAgICogKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIE1hbnkgbG9kYXNoIG1ldGhvZHMgYXJlIGd1YXJkZWQgdG8gd29yayBhcyBpdGVyYXRlZXMgZm9yIG1ldGhvZHMgbGlrZVxuICAgICAqIGBfLnJlZHVjZWAsIGBfLnJlZHVjZVJpZ2h0YCwgYW5kIGBfLnRyYW5zZm9ybWAuXG4gICAgICpcbiAgICAgKiBUaGUgZ3VhcmRlZCBtZXRob2RzIGFyZTpcbiAgICAgKiBgYXNzaWduYCwgYGRlZmF1bHRzYCwgYGRlZmF1bHRzRGVlcGAsIGBpbmNsdWRlc2AsIGBtZXJnZWAsIGBvcmRlckJ5YCxcbiAgICAgKiBhbmQgYHNvcnRCeWBcbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgYWNjdW11bGF0ZWQgdmFsdWUuXG4gICAgICogQHNlZSBfLnJlZHVjZVJpZ2h0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucmVkdWNlKFsxLCAyXSwgZnVuY3Rpb24oc3VtLCBuKSB7XG4gICAgICogICByZXR1cm4gc3VtICsgbjtcbiAgICAgKiB9LCAwKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiBfLnJlZHVjZSh7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDEgfSwgZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gICAgICogICAocmVzdWx0W3ZhbHVlXSB8fCAocmVzdWx0W3ZhbHVlXSA9IFtdKSkucHVzaChrZXkpO1xuICAgICAqICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgKiB9LCB7fSk7XG4gICAgICogLy8gPT4geyAnMSc6IFsnYScsICdjJ10sICcyJzogWydiJ10gfSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlZHVjZShjb2xsZWN0aW9uLCBpdGVyYXRlZSwgYWNjdW11bGF0b3IpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5UmVkdWNlIDogYmFzZVJlZHVjZSxcbiAgICAgICAgICBpbml0QWNjdW0gPSBhcmd1bWVudHMubGVuZ3RoIDwgMztcblxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDQpLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtLCBiYXNlRWFjaCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5yZWR1Y2VgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2ZcbiAgICAgKiBgY29sbGVjdGlvbmAgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbYWNjdW11bGF0b3JdIFRoZSBpbml0aWFsIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICAgKiBAc2VlIF8ucmVkdWNlXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFtbMCwgMV0sIFsyLCAzXSwgWzQsIDVdXTtcbiAgICAgKlxuICAgICAqIF8ucmVkdWNlUmlnaHQoYXJyYXksIGZ1bmN0aW9uKGZsYXR0ZW5lZCwgb3RoZXIpIHtcbiAgICAgKiAgIHJldHVybiBmbGF0dGVuZWQuY29uY2F0KG90aGVyKTtcbiAgICAgKiB9LCBbXSk7XG4gICAgICogLy8gPT4gWzQsIDUsIDIsIDMsIDAsIDFdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVkdWNlUmlnaHQoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheVJlZHVjZVJpZ2h0IDogYmFzZVJlZHVjZSxcbiAgICAgICAgICBpbml0QWNjdW0gPSBhcmd1bWVudHMubGVuZ3RoIDwgMztcblxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDQpLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtLCBiYXNlRWFjaFJpZ2h0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8uZmlsdGVyYDsgdGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gXG4gICAgICogdGhhdCBgcHJlZGljYXRlYCBkb2VzICoqbm90KiogcmV0dXJuIHRydXRoeSBmb3IuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXG4gICAgICogQHNlZSBfLmZpbHRlclxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnJlamVjdCh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gIW8uYWN0aXZlOyB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnJlamVjdCh1c2VycywgeyAnYWdlJzogNDAsICdhY3RpdmUnOiB0cnVlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnJlamVjdCh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnJlamVjdCh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZWplY3QoY29sbGVjdGlvbiwgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUZpbHRlciA6IGJhc2VGaWx0ZXI7XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBuZWdhdGUoZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSByYW5kb20gZWxlbWVudCBmcm9tIGBjb2xsZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjAuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2FtcGxlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByYW5kb20gZWxlbWVudC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zYW1wbGUoWzEsIDIsIDMsIDRdKTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2FtcGxlKGNvbGxlY3Rpb24pIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5U2FtcGxlIDogYmFzZVNhbXBsZTtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYG5gIHJhbmRvbSBlbGVtZW50cyBhdCB1bmlxdWUga2V5cyBmcm9tIGBjb2xsZWN0aW9uYCB1cCB0byB0aGVcbiAgICAgKiBzaXplIG9mIGBjb2xsZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2FtcGxlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNhbXBsZS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcmFuZG9tIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNhbXBsZVNpemUoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbMywgMV1cbiAgICAgKlxuICAgICAqIF8uc2FtcGxlU2l6ZShbMSwgMiwgM10sIDQpO1xuICAgICAqIC8vID0+IFsyLCAzLCAxXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNhbXBsZVNpemUoY29sbGVjdGlvbiwgbiwgZ3VhcmQpIHtcbiAgICAgIGlmICgoZ3VhcmQgPyBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBuLCBndWFyZCkgOiBuID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIG4gPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgIH1cbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5U2FtcGxlU2l6ZSA6IGJhc2VTYW1wbGVTaXplO1xuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBzaHVmZmxlZCB2YWx1ZXMsIHVzaW5nIGEgdmVyc2lvbiBvZiB0aGVcbiAgICAgKiBbRmlzaGVyLVlhdGVzIHNodWZmbGVdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0Zpc2hlci1ZYXRlc19zaHVmZmxlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2h1ZmZsZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzaHVmZmxlZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zaHVmZmxlKFsxLCAyLCAzLCA0XSk7XG4gICAgICogLy8gPT4gWzQsIDEsIDMsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2h1ZmZsZShjb2xsZWN0aW9uKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheVNodWZmbGUgOiBiYXNlU2h1ZmZsZTtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHNpemUgb2YgYGNvbGxlY3Rpb25gIGJ5IHJldHVybmluZyBpdHMgbGVuZ3RoIGZvciBhcnJheS1saWtlXG4gICAgICogdmFsdWVzIG9yIHRoZSBudW1iZXIgb2Ygb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgZm9yIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvbGxlY3Rpb24gc2l6ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zaXplKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogXy5zaXplKHsgJ2EnOiAxLCAnYic6IDIgfSk7XG4gICAgICogLy8gPT4gMlxuICAgICAqXG4gICAgICogXy5zaXplKCdwZWJibGVzJyk7XG4gICAgICogLy8gPT4gN1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNpemUoY29sbGVjdGlvbikge1xuICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICAgIGlmIChpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xuICAgICAgICByZXR1cm4gaXNTdHJpbmcoY29sbGVjdGlvbikgPyBzdHJpbmdTaXplKGNvbGxlY3Rpb24pIDogY29sbGVjdGlvbi5sZW5ndGg7XG4gICAgICB9XG4gICAgICB2YXIgdGFnID0gZ2V0VGFnKGNvbGxlY3Rpb24pO1xuICAgICAgaWYgKHRhZyA9PSBtYXBUYWcgfHwgdGFnID09IHNldFRhZykge1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5zaXplO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VLZXlzKGNvbGxlY3Rpb24pLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yICoqYW55KiogZWxlbWVudCBvZiBgY29sbGVjdGlvbmAuXG4gICAgICogSXRlcmF0aW9uIGlzIHN0b3BwZWQgb25jZSBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeS4gVGhlIHByZWRpY2F0ZSBpc1xuICAgICAqIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbnkgZWxlbWVudCBwYXNzZXMgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNvbWUoW251bGwsIDAsICd5ZXMnLCBmYWxzZV0sIEJvb2xlYW4pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnNvbWUodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5zb21lKHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5zb21lKHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvbWUoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBndWFyZCkge1xuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTb21lIDogYmFzZVNvbWU7XG4gICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBndWFyZCkpIHtcbiAgICAgICAgcHJlZGljYXRlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBlbGVtZW50cywgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciBieSB0aGUgcmVzdWx0cyBvZlxuICAgICAqIHJ1bm5pbmcgZWFjaCBlbGVtZW50IGluIGEgY29sbGVjdGlvbiB0aHJ1IGVhY2ggaXRlcmF0ZWUuIFRoaXMgbWV0aG9kXG4gICAgICogcGVyZm9ybXMgYSBzdGFibGUgc29ydCwgdGhhdCBpcywgaXQgcHJlc2VydmVzIHRoZSBvcmlnaW5hbCBzb3J0IG9yZGVyIG9mXG4gICAgICogZXF1YWwgZWxlbWVudHMuIFRoZSBpdGVyYXRlZXMgYXJlIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW2l0ZXJhdGVlcz1bXy5pZGVudGl0eV1dXG4gICAgICogIFRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzb3J0ZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQ4IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogMzAgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM0IH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5zb3J0QnkodXNlcnMsIFtmdW5jdGlvbihvKSB7IHJldHVybiBvLnVzZXI7IH1dKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbWydiYXJuZXknLCAzNl0sIFsnYmFybmV5JywgMzRdLCBbJ2ZyZWQnLCA0OF0sIFsnZnJlZCcsIDMwXV1cbiAgICAgKlxuICAgICAqIF8uc29ydEJ5KHVzZXJzLCBbJ3VzZXInLCAnYWdlJ10pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2Jhcm5leScsIDM0XSwgWydiYXJuZXknLCAzNl0sIFsnZnJlZCcsIDMwXSwgWydmcmVkJywgNDhdXVxuICAgICAqL1xuICAgIHZhciBzb3J0QnkgPSBiYXNlUmVzdChmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZXMpIHtcbiAgICAgIGlmIChjb2xsZWN0aW9uID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdmFyIGxlbmd0aCA9IGl0ZXJhdGVlcy5sZW5ndGg7XG4gICAgICBpZiAobGVuZ3RoID4gMSAmJiBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBpdGVyYXRlZXNbMF0sIGl0ZXJhdGVlc1sxXSkpIHtcbiAgICAgICAgaXRlcmF0ZWVzID0gW107XG4gICAgICB9IGVsc2UgaWYgKGxlbmd0aCA+IDIgJiYgaXNJdGVyYXRlZUNhbGwoaXRlcmF0ZWVzWzBdLCBpdGVyYXRlZXNbMV0sIGl0ZXJhdGVlc1syXSkpIHtcbiAgICAgICAgaXRlcmF0ZWVzID0gW2l0ZXJhdGVlc1swXV07XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZU9yZGVyQnkoY29sbGVjdGlvbiwgYmFzZUZsYXR0ZW4oaXRlcmF0ZWVzLCAxKSwgW10pO1xuICAgIH0pO1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgdGltZXN0YW1wIG9mIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRoYXQgaGF2ZSBlbGFwc2VkIHNpbmNlXG4gICAgICogdGhlIFVuaXggZXBvY2ggKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi40LjBcbiAgICAgKiBAY2F0ZWdvcnkgRGF0ZVxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVzdGFtcC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xuICAgICAqICAgY29uc29sZS5sb2coXy5ub3coKSAtIHN0YW1wKTtcbiAgICAgKiB9LCBfLm5vdygpKTtcbiAgICAgKiAvLyA9PiBMb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBpbnZvY2F0aW9uLlxuICAgICAqL1xuICAgIHZhciBub3cgPSBjdHhOb3cgfHwgZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gcm9vdC5EYXRlLm5vdygpO1xuICAgIH07XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8uYmVmb3JlYDsgdGhpcyBtZXRob2QgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlc1xuICAgICAqIGBmdW5jYCBvbmNlIGl0J3MgY2FsbGVkIGBuYCBvciBtb3JlIHRpbWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBjYWxscyBiZWZvcmUgYGZ1bmNgIGlzIGludm9rZWQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcmVzdHJpY3RlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHNhdmVzID0gWydwcm9maWxlJywgJ3NldHRpbmdzJ107XG4gICAgICpcbiAgICAgKiB2YXIgZG9uZSA9IF8uYWZ0ZXIoc2F2ZXMubGVuZ3RoLCBmdW5jdGlvbigpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKCdkb25lIHNhdmluZyEnKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIF8uZm9yRWFjaChzYXZlcywgZnVuY3Rpb24odHlwZSkge1xuICAgICAqICAgYXN5bmNTYXZlKHsgJ3R5cGUnOiB0eXBlLCAnY29tcGxldGUnOiBkb25lIH0pO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IExvZ3MgJ2RvbmUgc2F2aW5nIScgYWZ0ZXIgdGhlIHR3byBhc3luYyBzYXZlcyBoYXZlIGNvbXBsZXRlZC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhZnRlcihuLCBmdW5jKSB7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICBuID0gdG9JbnRlZ2VyKG4pO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoLS1uIDwgMSkge1xuICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2AsIHdpdGggdXAgdG8gYG5gIGFyZ3VtZW50cyxcbiAgICAgKiBpZ25vcmluZyBhbnkgYWRkaXRpb25hbCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjYXAgYXJndW1lbnRzIGZvci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249ZnVuYy5sZW5ndGhdIFRoZSBhcml0eSBjYXAuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjYXBwZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnNicsICc4JywgJzEwJ10sIF8uYXJ5KHBhcnNlSW50LCAxKSk7XG4gICAgICogLy8gPT4gWzYsIDgsIDEwXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFyeShmdW5jLCBuLCBndWFyZCkge1xuICAgICAgbiA9IGd1YXJkID8gdW5kZWZpbmVkIDogbjtcbiAgICAgIG4gPSAoZnVuYyAmJiBuID09IG51bGwpID8gZnVuYy5sZW5ndGggOiBuO1xuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9BUllfRkxBRywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCwgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgYW5kIGFyZ3VtZW50c1xuICAgICAqIG9mIHRoZSBjcmVhdGVkIGZ1bmN0aW9uLCB3aGlsZSBpdCdzIGNhbGxlZCBsZXNzIHRoYW4gYG5gIHRpbWVzLiBTdWJzZXF1ZW50XG4gICAgICogY2FsbHMgdG8gdGhlIGNyZWF0ZWQgZnVuY3Rpb24gcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgIGludm9jYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGNhbGxzIGF0IHdoaWNoIGBmdW5jYCBpcyBubyBsb25nZXIgaW52b2tlZC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZXN0cmljdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByZXN0cmljdGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBqUXVlcnkoZWxlbWVudCkub24oJ2NsaWNrJywgXy5iZWZvcmUoNSwgYWRkQ29udGFjdFRvTGlzdCkpO1xuICAgICAqIC8vID0+IEFsbG93cyBhZGRpbmcgdXAgdG8gNCBjb250YWN0cyB0byB0aGUgbGlzdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiZWZvcmUobiwgZnVuYykge1xuICAgICAgdmFyIHJlc3VsdDtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIG4gPSB0b0ludGVnZXIobik7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICgtLW4gPiAwKSB7XG4gICAgICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuIDw9IDEpIHtcbiAgICAgICAgICBmdW5jID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIGB0aGlzQXJnYFxuICAgICAqIGFuZCBgcGFydGlhbHNgIHByZXBlbmRlZCB0byB0aGUgYXJndW1lbnRzIGl0IHJlY2VpdmVzLlxuICAgICAqXG4gICAgICogVGhlIGBfLmJpbmQucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpYyBidWlsZHMsXG4gICAgICogbWF5IGJlIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBuYXRpdmUgYEZ1bmN0aW9uI2JpbmRgLCB0aGlzIG1ldGhvZCBkb2Vzbid0IHNldCB0aGUgXCJsZW5ndGhcIlxuICAgICAqIHByb3BlcnR5IG9mIGJvdW5kIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGJpbmQuXG4gICAgICogQHBhcmFtIHsqfSB0aGlzQXJnIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gYmUgcGFydGlhbGx5IGFwcGxpZWQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGdyZWV0KGdyZWV0aW5nLCBwdW5jdHVhdGlvbikge1xuICAgICAqICAgcmV0dXJuIGdyZWV0aW5nICsgJyAnICsgdGhpcy51c2VyICsgcHVuY3R1YXRpb247XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAgICAgKlxuICAgICAqIHZhciBib3VuZCA9IF8uYmluZChncmVldCwgb2JqZWN0LCAnaGknKTtcbiAgICAgKiBib3VuZCgnIScpO1xuICAgICAqIC8vID0+ICdoaSBmcmVkISdcbiAgICAgKlxuICAgICAqIC8vIEJvdW5kIHdpdGggcGxhY2Vob2xkZXJzLlxuICAgICAqIHZhciBib3VuZCA9IF8uYmluZChncmVldCwgb2JqZWN0LCBfLCAnIScpO1xuICAgICAqIGJvdW5kKCdoaScpO1xuICAgICAqIC8vID0+ICdoaSBmcmVkISdcbiAgICAgKi9cbiAgICB2YXIgYmluZCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIHRoaXNBcmcsIHBhcnRpYWxzKSB7XG4gICAgICB2YXIgYml0bWFzayA9IFdSQVBfQklORF9GTEFHO1xuICAgICAgaWYgKHBhcnRpYWxzLmxlbmd0aCkge1xuICAgICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBnZXRIb2xkZXIoYmluZCkpO1xuICAgICAgICBiaXRtYXNrIHw9IFdSQVBfUEFSVElBTF9GTEFHO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyB0aGUgbWV0aG9kIGF0IGBvYmplY3Rba2V5XWAgd2l0aCBgcGFydGlhbHNgXG4gICAgICogcHJlcGVuZGVkIHRvIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBUaGlzIG1ldGhvZCBkaWZmZXJzIGZyb20gYF8uYmluZGAgYnkgYWxsb3dpbmcgYm91bmQgZnVuY3Rpb25zIHRvIHJlZmVyZW5jZVxuICAgICAqIG1ldGhvZHMgdGhhdCBtYXkgYmUgcmVkZWZpbmVkIG9yIGRvbid0IHlldCBleGlzdC4gU2VlXG4gICAgICogW1BldGVyIE1pY2hhdXgncyBhcnRpY2xlXShodHRwOi8vcGV0ZXIubWljaGF1eC5jYS9hcnRpY2xlcy9sYXp5LWZ1bmN0aW9uLWRlZmluaXRpb24tcGF0dGVybilcbiAgICAgKiBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqXG4gICAgICogVGhlIGBfLmJpbmRLZXkucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpY1xuICAgICAqIGJ1aWxkcywgbWF5IGJlIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMTAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnZva2UgdGhlIG1ldGhvZCBvbi5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIG1ldGhvZC5cbiAgICAgKiBAcGFyYW0gey4uLip9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBib3VuZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHtcbiAgICAgKiAgICd1c2VyJzogJ2ZyZWQnLFxuICAgICAqICAgJ2dyZWV0JzogZnVuY3Rpb24oZ3JlZXRpbmcsIHB1bmN0dWF0aW9uKSB7XG4gICAgICogICAgIHJldHVybiBncmVldGluZyArICcgJyArIHRoaXMudXNlciArIHB1bmN0dWF0aW9uO1xuICAgICAqICAgfVxuICAgICAqIH07XG4gICAgICpcbiAgICAgKiB2YXIgYm91bmQgPSBfLmJpbmRLZXkob2JqZWN0LCAnZ3JlZXQnLCAnaGknKTtcbiAgICAgKiBib3VuZCgnIScpO1xuICAgICAqIC8vID0+ICdoaSBmcmVkISdcbiAgICAgKlxuICAgICAqIG9iamVjdC5ncmVldCA9IGZ1bmN0aW9uKGdyZWV0aW5nLCBwdW5jdHVhdGlvbikge1xuICAgICAqICAgcmV0dXJuIGdyZWV0aW5nICsgJ3lhICcgKyB0aGlzLnVzZXIgKyBwdW5jdHVhdGlvbjtcbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogYm91bmQoJyEnKTtcbiAgICAgKiAvLyA9PiAnaGl5YSBmcmVkISdcbiAgICAgKlxuICAgICAqIC8vIEJvdW5kIHdpdGggcGxhY2Vob2xkZXJzLlxuICAgICAqIHZhciBib3VuZCA9IF8uYmluZEtleShvYmplY3QsICdncmVldCcsIF8sICchJyk7XG4gICAgICogYm91bmQoJ2hpJyk7XG4gICAgICogLy8gPT4gJ2hpeWEgZnJlZCEnXG4gICAgICovXG4gICAgdmFyIGJpbmRLZXkgPSBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIGtleSwgcGFydGlhbHMpIHtcbiAgICAgIHZhciBiaXRtYXNrID0gV1JBUF9CSU5EX0ZMQUcgfCBXUkFQX0JJTkRfS0VZX0ZMQUc7XG4gICAgICBpZiAocGFydGlhbHMubGVuZ3RoKSB7XG4gICAgICAgIHZhciBob2xkZXJzID0gcmVwbGFjZUhvbGRlcnMocGFydGlhbHMsIGdldEhvbGRlcihiaW5kS2V5KSk7XG4gICAgICAgIGJpdG1hc2sgfD0gV1JBUF9QQVJUSUFMX0ZMQUc7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChrZXksIGJpdG1hc2ssIG9iamVjdCwgcGFydGlhbHMsIGhvbGRlcnMpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhcmd1bWVudHMgb2YgYGZ1bmNgIGFuZCBlaXRoZXIgaW52b2tlc1xuICAgICAqIGBmdW5jYCByZXR1cm5pbmcgaXRzIHJlc3VsdCwgaWYgYXQgbGVhc3QgYGFyaXR5YCBudW1iZXIgb2YgYXJndW1lbnRzIGhhdmVcbiAgICAgKiBiZWVuIHByb3ZpZGVkLCBvciByZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHRoZSByZW1haW5pbmcgYGZ1bmNgXG4gICAgICogYXJndW1lbnRzLCBhbmQgc28gb24uIFRoZSBhcml0eSBvZiBgZnVuY2AgbWF5IGJlIHNwZWNpZmllZCBpZiBgZnVuYy5sZW5ndGhgXG4gICAgICogaXMgbm90IHN1ZmZpY2llbnQuXG4gICAgICpcbiAgICAgKiBUaGUgYF8uY3VycnkucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpYyBidWlsZHMsXG4gICAgICogbWF5IGJlIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGRvZXNuJ3Qgc2V0IHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IG9mIGN1cnJpZWQgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY3VycnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcml0eT1mdW5jLmxlbmd0aF0gVGhlIGFyaXR5IG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGN1cnJpZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhYmMgPSBmdW5jdGlvbihhLCBiLCBjKSB7XG4gICAgICogICByZXR1cm4gW2EsIGIsIGNdO1xuICAgICAqIH07XG4gICAgICpcbiAgICAgKiB2YXIgY3VycmllZCA9IF8uY3VycnkoYWJjKTtcbiAgICAgKlxuICAgICAqIGN1cnJpZWQoMSkoMikoMyk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBjdXJyaWVkKDEsIDIpKDMpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogY3VycmllZCgxLCAyLCAzKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIC8vIEN1cnJpZWQgd2l0aCBwbGFjZWhvbGRlcnMuXG4gICAgICogY3VycmllZCgxKShfLCAzKSgyKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjdXJyeShmdW5jLCBhcml0eSwgZ3VhcmQpIHtcbiAgICAgIGFyaXR5ID0gZ3VhcmQgPyB1bmRlZmluZWQgOiBhcml0eTtcbiAgICAgIHZhciByZXN1bHQgPSBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfQ1VSUllfRkxBRywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGFyaXR5KTtcbiAgICAgIHJlc3VsdC5wbGFjZWhvbGRlciA9IGN1cnJ5LnBsYWNlaG9sZGVyO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmN1cnJ5YCBleGNlcHQgdGhhdCBhcmd1bWVudHMgYXJlIGFwcGxpZWQgdG8gYGZ1bmNgXG4gICAgICogaW4gdGhlIG1hbm5lciBvZiBgXy5wYXJ0aWFsUmlnaHRgIGluc3RlYWQgb2YgYF8ucGFydGlhbGAuXG4gICAgICpcbiAgICAgKiBUaGUgYF8uY3VycnlSaWdodC5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljXG4gICAgICogYnVpbGRzLCBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwcm92aWRlZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgZG9lc24ndCBzZXQgdGhlIFwibGVuZ3RoXCIgcHJvcGVydHkgb2YgY3VycmllZCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5PWZ1bmMubGVuZ3RoXSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY3VycmllZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFiYyA9IGZ1bmN0aW9uKGEsIGIsIGMpIHtcbiAgICAgKiAgIHJldHVybiBbYSwgYiwgY107XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBjdXJyaWVkID0gXy5jdXJyeVJpZ2h0KGFiYyk7XG4gICAgICpcbiAgICAgKiBjdXJyaWVkKDMpKDIpKDEpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogY3VycmllZCgyLCAzKSgxKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIGN1cnJpZWQoMSwgMiwgMyk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiAvLyBDdXJyaWVkIHdpdGggcGxhY2Vob2xkZXJzLlxuICAgICAqIGN1cnJpZWQoMykoMSwgXykoMik7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3VycnlSaWdodChmdW5jLCBhcml0eSwgZ3VhcmQpIHtcbiAgICAgIGFyaXR5ID0gZ3VhcmQgPyB1bmRlZmluZWQgOiBhcml0eTtcbiAgICAgIHZhciByZXN1bHQgPSBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfQ1VSUllfUklHSFRfRkxBRywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGFyaXR5KTtcbiAgICAgIHJlc3VsdC5wbGFjZWhvbGRlciA9IGN1cnJ5UmlnaHQucGxhY2Vob2xkZXI7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBkZWJvdW5jZWQgZnVuY3Rpb24gdGhhdCBkZWxheXMgaW52b2tpbmcgYGZ1bmNgIHVudGlsIGFmdGVyIGB3YWl0YFxuICAgICAqIG1pbGxpc2Vjb25kcyBoYXZlIGVsYXBzZWQgc2luY2UgdGhlIGxhc3QgdGltZSB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIHdhc1xuICAgICAqIGludm9rZWQuIFRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gY29tZXMgd2l0aCBhIGBjYW5jZWxgIG1ldGhvZCB0byBjYW5jZWxcbiAgICAgKiBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0byBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS5cbiAgICAgKiBQcm92aWRlIGBvcHRpb25zYCB0byBpbmRpY2F0ZSB3aGV0aGVyIGBmdW5jYCBzaG91bGQgYmUgaW52b2tlZCBvbiB0aGVcbiAgICAgKiBsZWFkaW5nIGFuZC9vciB0cmFpbGluZyBlZGdlIG9mIHRoZSBgd2FpdGAgdGltZW91dC4gVGhlIGBmdW5jYCBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbi4gU3Vic2VxdWVudFxuICAgICAqIGNhbGxzIHRvIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgXG4gICAgICogaW52b2NhdGlvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBJZiBgbGVhZGluZ2AgYW5kIGB0cmFpbGluZ2Agb3B0aW9ucyBhcmUgYHRydWVgLCBgZnVuY2AgaXNcbiAgICAgKiBpbnZva2VkIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0IG9ubHkgaWYgdGhlIGRlYm91bmNlZCBmdW5jdGlvblxuICAgICAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAgICAgKlxuICAgICAqIElmIGB3YWl0YCBpcyBgMGAgYW5kIGBsZWFkaW5nYCBpcyBgZmFsc2VgLCBgZnVuY2AgaW52b2NhdGlvbiBpcyBkZWZlcnJlZFxuICAgICAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAgICAgKlxuICAgICAqIFNlZSBbRGF2aWQgQ29yYmFjaG8ncyBhcnRpY2xlXShodHRwczovL2Nzcy10cmlja3MuY29tL2RlYm91bmNpbmctdGhyb3R0bGluZy1leHBsYWluZWQtZXhhbXBsZXMvKVxuICAgICAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8uZGVib3VuY2VgIGFuZCBgXy50aHJvdHRsZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWJvdW5jZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3dhaXQ9MF0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gZGVsYXkuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBUaGUgb3B0aW9ucyBvYmplY3QuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPWZhbHNlXVxuICAgICAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSBsZWFkaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1heFdhaXRdXG4gICAgICogIFRoZSBtYXhpbXVtIHRpbWUgYGZ1bmNgIGlzIGFsbG93ZWQgdG8gYmUgZGVsYXllZCBiZWZvcmUgaXQncyBpbnZva2VkLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudHJhaWxpbmc9dHJ1ZV1cbiAgICAgKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vIEF2b2lkIGNvc3RseSBjYWxjdWxhdGlvbnMgd2hpbGUgdGhlIHdpbmRvdyBzaXplIGlzIGluIGZsdXguXG4gICAgICogalF1ZXJ5KHdpbmRvdykub24oJ3Jlc2l6ZScsIF8uZGVib3VuY2UoY2FsY3VsYXRlTGF5b3V0LCAxNTApKTtcbiAgICAgKlxuICAgICAqIC8vIEludm9rZSBgc2VuZE1haWxgIHdoZW4gY2xpY2tlZCwgZGVib3VuY2luZyBzdWJzZXF1ZW50IGNhbGxzLlxuICAgICAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCBfLmRlYm91bmNlKHNlbmRNYWlsLCAzMDAsIHtcbiAgICAgKiAgICdsZWFkaW5nJzogdHJ1ZSxcbiAgICAgKiAgICd0cmFpbGluZyc6IGZhbHNlXG4gICAgICogfSkpO1xuICAgICAqXG4gICAgICogLy8gRW5zdXJlIGBiYXRjaExvZ2AgaXMgaW52b2tlZCBvbmNlIGFmdGVyIDEgc2Vjb25kIG9mIGRlYm91bmNlZCBjYWxscy5cbiAgICAgKiB2YXIgZGVib3VuY2VkID0gXy5kZWJvdW5jZShiYXRjaExvZywgMjUwLCB7ICdtYXhXYWl0JzogMTAwMCB9KTtcbiAgICAgKiB2YXIgc291cmNlID0gbmV3IEV2ZW50U291cmNlKCcvc3RyZWFtJyk7XG4gICAgICogalF1ZXJ5KHNvdXJjZSkub24oJ21lc3NhZ2UnLCBkZWJvdW5jZWQpO1xuICAgICAqXG4gICAgICogLy8gQ2FuY2VsIHRoZSB0cmFpbGluZyBkZWJvdW5jZWQgaW52b2NhdGlvbi5cbiAgICAgKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCBkZWJvdW5jZWQuY2FuY2VsKTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkZWJvdW5jZShmdW5jLCB3YWl0LCBvcHRpb25zKSB7XG4gICAgICB2YXIgbGFzdEFyZ3MsXG4gICAgICAgICAgbGFzdFRoaXMsXG4gICAgICAgICAgbWF4V2FpdCxcbiAgICAgICAgICByZXN1bHQsXG4gICAgICAgICAgdGltZXJJZCxcbiAgICAgICAgICBsYXN0Q2FsbFRpbWUsXG4gICAgICAgICAgbGFzdEludm9rZVRpbWUgPSAwLFxuICAgICAgICAgIGxlYWRpbmcgPSBmYWxzZSxcbiAgICAgICAgICBtYXhpbmcgPSBmYWxzZSxcbiAgICAgICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHdhaXQgPSB0b051bWJlcih3YWl0KSB8fCAwO1xuICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgIGxlYWRpbmcgPSAhIW9wdGlvbnMubGVhZGluZztcbiAgICAgICAgbWF4aW5nID0gJ21heFdhaXQnIGluIG9wdGlvbnM7XG4gICAgICAgIG1heFdhaXQgPSBtYXhpbmcgPyBuYXRpdmVNYXgodG9OdW1iZXIob3B0aW9ucy5tYXhXYWl0KSB8fCAwLCB3YWl0KSA6IG1heFdhaXQ7XG4gICAgICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGludm9rZUZ1bmModGltZSkge1xuICAgICAgICB2YXIgYXJncyA9IGxhc3RBcmdzLFxuICAgICAgICAgICAgdGhpc0FyZyA9IGxhc3RUaGlzO1xuXG4gICAgICAgIGxhc3RBcmdzID0gbGFzdFRoaXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gbGVhZGluZ0VkZ2UodGltZSkge1xuICAgICAgICAvLyBSZXNldCBhbnkgYG1heFdhaXRgIHRpbWVyLlxuICAgICAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgICAgIC8vIFN0YXJ0IHRoZSB0aW1lciBmb3IgdGhlIHRyYWlsaW5nIGVkZ2UuXG4gICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgICAgIC8vIEludm9rZSB0aGUgbGVhZGluZyBlZGdlLlxuICAgICAgICByZXR1cm4gbGVhZGluZyA/IGludm9rZUZ1bmModGltZSkgOiByZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQodGltZSkge1xuICAgICAgICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLFxuICAgICAgICAgICAgdGltZVNpbmNlTGFzdEludm9rZSA9IHRpbWUgLSBsYXN0SW52b2tlVGltZSxcbiAgICAgICAgICAgIHRpbWVXYWl0aW5nID0gd2FpdCAtIHRpbWVTaW5jZUxhc3RDYWxsO1xuXG4gICAgICAgIHJldHVybiBtYXhpbmdcbiAgICAgICAgICA/IG5hdGl2ZU1pbih0aW1lV2FpdGluZywgbWF4V2FpdCAtIHRpbWVTaW5jZUxhc3RJbnZva2UpXG4gICAgICAgICAgOiB0aW1lV2FpdGluZztcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gc2hvdWxkSW52b2tlKHRpbWUpIHtcbiAgICAgICAgdmFyIHRpbWVTaW5jZUxhc3RDYWxsID0gdGltZSAtIGxhc3RDYWxsVGltZSxcbiAgICAgICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWU7XG5cbiAgICAgICAgLy8gRWl0aGVyIHRoaXMgaXMgdGhlIGZpcnN0IGNhbGwsIGFjdGl2aXR5IGhhcyBzdG9wcGVkIGFuZCB3ZSdyZSBhdCB0aGVcbiAgICAgICAgLy8gdHJhaWxpbmcgZWRnZSwgdGhlIHN5c3RlbSB0aW1lIGhhcyBnb25lIGJhY2t3YXJkcyBhbmQgd2UncmUgdHJlYXRpbmdcbiAgICAgICAgLy8gaXQgYXMgdGhlIHRyYWlsaW5nIGVkZ2UsIG9yIHdlJ3ZlIGhpdCB0aGUgYG1heFdhaXRgIGxpbWl0LlxuICAgICAgICByZXR1cm4gKGxhc3RDYWxsVGltZSA9PT0gdW5kZWZpbmVkIHx8ICh0aW1lU2luY2VMYXN0Q2FsbCA+PSB3YWl0KSB8fFxuICAgICAgICAgICh0aW1lU2luY2VMYXN0Q2FsbCA8IDApIHx8IChtYXhpbmcgJiYgdGltZVNpbmNlTGFzdEludm9rZSA+PSBtYXhXYWl0KSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIHRpbWVyRXhwaXJlZCgpIHtcbiAgICAgICAgdmFyIHRpbWUgPSBub3coKTtcbiAgICAgICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xuICAgICAgICAgIHJldHVybiB0cmFpbGluZ0VkZ2UodGltZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVzdGFydCB0aGUgdGltZXIuXG4gICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgcmVtYWluaW5nV2FpdCh0aW1lKSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIHRyYWlsaW5nRWRnZSh0aW1lKSB7XG4gICAgICAgIHRpbWVySWQgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgLy8gT25seSBpbnZva2UgaWYgd2UgaGF2ZSBgbGFzdEFyZ3NgIHdoaWNoIG1lYW5zIGBmdW5jYCBoYXMgYmVlblxuICAgICAgICAvLyBkZWJvdW5jZWQgYXQgbGVhc3Qgb25jZS5cbiAgICAgICAgaWYgKHRyYWlsaW5nICYmIGxhc3RBcmdzKSB7XG4gICAgICAgICAgcmV0dXJuIGludm9rZUZ1bmModGltZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gY2FuY2VsKCkge1xuICAgICAgICBpZiAodGltZXJJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RJbnZva2VUaW1lID0gMDtcbiAgICAgICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGZsdXNoKCkge1xuICAgICAgICByZXR1cm4gdGltZXJJZCA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogdHJhaWxpbmdFZGdlKG5vdygpKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gZGVib3VuY2VkKCkge1xuICAgICAgICB2YXIgdGltZSA9IG5vdygpLFxuICAgICAgICAgICAgaXNJbnZva2luZyA9IHNob3VsZEludm9rZSh0aW1lKTtcblxuICAgICAgICBsYXN0QXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgbGFzdFRoaXMgPSB0aGlzO1xuICAgICAgICBsYXN0Q2FsbFRpbWUgPSB0aW1lO1xuXG4gICAgICAgIGlmIChpc0ludm9raW5nKSB7XG4gICAgICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGxlYWRpbmdFZGdlKGxhc3RDYWxsVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBpbnZvY2F0aW9ucyBpbiBhIHRpZ2h0IGxvb3AuXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgICAgICAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgICAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGRlYm91bmNlZC5jYW5jZWwgPSBjYW5jZWw7XG4gICAgICBkZWJvdW5jZWQuZmx1c2ggPSBmbHVzaDtcbiAgICAgIHJldHVybiBkZWJvdW5jZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmZXJzIGludm9raW5nIHRoZSBgZnVuY2AgdW50aWwgdGhlIGN1cnJlbnQgY2FsbCBzdGFjayBoYXMgY2xlYXJlZC4gQW55XG4gICAgICogYWRkaXRpb25hbCBhcmd1bWVudHMgYXJlIHByb3ZpZGVkIHRvIGBmdW5jYCB3aGVuIGl0J3MgaW52b2tlZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlZmVyLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIGBmdW5jYCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVyIGlkLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRlZmVyKGZ1bmN0aW9uKHRleHQpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKHRleHQpO1xuICAgICAqIH0sICdkZWZlcnJlZCcpO1xuICAgICAqIC8vID0+IExvZ3MgJ2RlZmVycmVkJyBhZnRlciBvbmUgbWlsbGlzZWNvbmQuXG4gICAgICovXG4gICAgdmFyIGRlZmVyID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgYXJncykge1xuICAgICAgcmV0dXJuIGJhc2VEZWxheShmdW5jLCAxLCBhcmdzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEludm9rZXMgYGZ1bmNgIGFmdGVyIGB3YWl0YCBtaWxsaXNlY29uZHMuIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmVcbiAgICAgKiBwcm92aWRlZCB0byBgZnVuY2Agd2hlbiBpdCdzIGludm9rZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWxheS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2FpdCBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheSBpbnZvY2F0aW9uLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIGBmdW5jYCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVyIGlkLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRlbGF5KGZ1bmN0aW9uKHRleHQpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKHRleHQpO1xuICAgICAqIH0sIDEwMDAsICdsYXRlcicpO1xuICAgICAqIC8vID0+IExvZ3MgJ2xhdGVyJyBhZnRlciBvbmUgc2Vjb25kLlxuICAgICAqL1xuICAgIHZhciBkZWxheSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIHdhaXQsIGFyZ3MpIHtcbiAgICAgIHJldHVybiBiYXNlRGVsYXkoZnVuYywgdG9OdW1iZXIod2FpdCkgfHwgMCwgYXJncyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIGFyZ3VtZW50cyByZXZlcnNlZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGZsaXAgYXJndW1lbnRzIGZvci5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmbGlwcGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgZmxpcHBlZCA9IF8uZmxpcChmdW5jdGlvbigpIHtcbiAgICAgKiAgIHJldHVybiBfLnRvQXJyYXkoYXJndW1lbnRzKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIGZsaXBwZWQoJ2EnLCAnYicsICdjJywgJ2QnKTtcbiAgICAgKiAvLyA9PiBbJ2QnLCAnYycsICdiJywgJ2EnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZsaXAoZnVuYykge1xuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9GTElQX0ZMQUcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IG1lbW9pemVzIHRoZSByZXN1bHQgb2YgYGZ1bmNgLiBJZiBgcmVzb2x2ZXJgIGlzXG4gICAgICogcHJvdmlkZWQsIGl0IGRldGVybWluZXMgdGhlIGNhY2hlIGtleSBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IGJhc2VkIG9uIHRoZVxuICAgICAqIGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgbWVtb2l6ZWQgZnVuY3Rpb24uIEJ5IGRlZmF1bHQsIHRoZSBmaXJzdCBhcmd1bWVudFxuICAgICAqIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbiBpcyB1c2VkIGFzIHRoZSBtYXAgY2FjaGUga2V5LiBUaGUgYGZ1bmNgXG4gICAgICogaXMgaW52b2tlZCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiB0aGUgbWVtb2l6ZWQgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhlIGNhY2hlIGlzIGV4cG9zZWQgYXMgdGhlIGBjYWNoZWAgcHJvcGVydHkgb24gdGhlIG1lbW9pemVkXG4gICAgICogZnVuY3Rpb24uIEl0cyBjcmVhdGlvbiBtYXkgYmUgY3VzdG9taXplZCBieSByZXBsYWNpbmcgdGhlIGBfLm1lbW9pemUuQ2FjaGVgXG4gICAgICogY29uc3RydWN0b3Igd2l0aCBvbmUgd2hvc2UgaW5zdGFuY2VzIGltcGxlbWVudCB0aGVcbiAgICAgKiBbYE1hcGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXByb3BlcnRpZXMtb2YtdGhlLW1hcC1wcm90b3R5cGUtb2JqZWN0KVxuICAgICAqIG1ldGhvZCBpbnRlcmZhY2Ugb2YgYGNsZWFyYCwgYGRlbGV0ZWAsIGBnZXRgLCBgaGFzYCwgYW5kIGBzZXRgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaGF2ZSBpdHMgb3V0cHV0IG1lbW9pemVkLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtyZXNvbHZlcl0gVGhlIGZ1bmN0aW9uIHRvIHJlc29sdmUgdGhlIGNhY2hlIGtleS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIgfTtcbiAgICAgKiB2YXIgb3RoZXIgPSB7ICdjJzogMywgJ2QnOiA0IH07XG4gICAgICpcbiAgICAgKiB2YXIgdmFsdWVzID0gXy5tZW1vaXplKF8udmFsdWVzKTtcbiAgICAgKiB2YWx1ZXMob2JqZWN0KTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIHZhbHVlcyhvdGhlcik7XG4gICAgICogLy8gPT4gWzMsIDRdXG4gICAgICpcbiAgICAgKiBvYmplY3QuYSA9IDI7XG4gICAgICogdmFsdWVzKG9iamVjdCk7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICpcbiAgICAgKiAvLyBNb2RpZnkgdGhlIHJlc3VsdCBjYWNoZS5cbiAgICAgKiB2YWx1ZXMuY2FjaGUuc2V0KG9iamVjdCwgWydhJywgJ2InXSk7XG4gICAgICogdmFsdWVzKG9iamVjdCk7XG4gICAgICogLy8gPT4gWydhJywgJ2InXVxuICAgICAqXG4gICAgICogLy8gUmVwbGFjZSBgXy5tZW1vaXplLkNhY2hlYC5cbiAgICAgKiBfLm1lbW9pemUuQ2FjaGUgPSBXZWFrTWFwO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1lbW9pemUoZnVuYywgcmVzb2x2ZXIpIHtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nIHx8IChyZXNvbHZlciAhPSBudWxsICYmIHR5cGVvZiByZXNvbHZlciAhPSAnZnVuY3Rpb24nKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICB2YXIgbWVtb2l6ZWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgICBrZXkgPSByZXNvbHZlciA/IHJlc29sdmVyLmFwcGx5KHRoaXMsIGFyZ3MpIDogYXJnc1swXSxcbiAgICAgICAgICAgIGNhY2hlID0gbWVtb2l6ZWQuY2FjaGU7XG5cbiAgICAgICAgaWYgKGNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICAgICAgcmV0dXJuIGNhY2hlLmdldChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHZhciByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICBtZW1vaXplZC5jYWNoZSA9IGNhY2hlLnNldChrZXksIHJlc3VsdCkgfHwgY2FjaGU7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgICAgbWVtb2l6ZWQuY2FjaGUgPSBuZXcgKG1lbW9pemUuQ2FjaGUgfHwgTWFwQ2FjaGUpO1xuICAgICAgcmV0dXJuIG1lbW9pemVkO1xuICAgIH1cblxuICAgIC8vIEV4cG9zZSBgTWFwQ2FjaGVgLlxuICAgIG1lbW9pemUuQ2FjaGUgPSBNYXBDYWNoZTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IG5lZ2F0ZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJlZGljYXRlIGBmdW5jYC4gVGhlXG4gICAgICogYGZ1bmNgIHByZWRpY2F0ZSBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIGFuZCBhcmd1bWVudHMgb2YgdGhlXG4gICAgICogY3JlYXRlZCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgcHJlZGljYXRlIHRvIG5lZ2F0ZS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBuZWdhdGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBpc0V2ZW4obikge1xuICAgICAqICAgcmV0dXJuIG4gJSAyID09IDA7XG4gICAgICogfVxuICAgICAqXG4gICAgICogXy5maWx0ZXIoWzEsIDIsIDMsIDQsIDUsIDZdLCBfLm5lZ2F0ZShpc0V2ZW4pKTtcbiAgICAgKiAvLyA9PiBbMSwgMywgNV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBuZWdhdGUocHJlZGljYXRlKSB7XG4gICAgICBpZiAodHlwZW9mIHByZWRpY2F0ZSAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgIHN3aXRjaCAoYXJncy5sZW5ndGgpIHtcbiAgICAgICAgICBjYXNlIDA6IHJldHVybiAhcHJlZGljYXRlLmNhbGwodGhpcyk7XG4gICAgICAgICAgY2FzZSAxOiByZXR1cm4gIXByZWRpY2F0ZS5jYWxsKHRoaXMsIGFyZ3NbMF0pO1xuICAgICAgICAgIGNhc2UgMjogcmV0dXJuICFwcmVkaWNhdGUuY2FsbCh0aGlzLCBhcmdzWzBdLCBhcmdzWzFdKTtcbiAgICAgICAgICBjYXNlIDM6IHJldHVybiAhcHJlZGljYXRlLmNhbGwodGhpcywgYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICFwcmVkaWNhdGUuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGlzIHJlc3RyaWN0ZWQgdG8gaW52b2tpbmcgYGZ1bmNgIG9uY2UuIFJlcGVhdCBjYWxsc1xuICAgICAqIHRvIHRoZSBmdW5jdGlvbiByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBmaXJzdCBpbnZvY2F0aW9uLiBUaGUgYGZ1bmNgIGlzXG4gICAgICogaW52b2tlZCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBhbmQgYXJndW1lbnRzIG9mIHRoZSBjcmVhdGVkIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcmVzdHJpY3RlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGluaXRpYWxpemUgPSBfLm9uY2UoY3JlYXRlQXBwbGljYXRpb24pO1xuICAgICAqIGluaXRpYWxpemUoKTtcbiAgICAgKiBpbml0aWFsaXplKCk7XG4gICAgICogLy8gPT4gYGNyZWF0ZUFwcGxpY2F0aW9uYCBpcyBpbnZva2VkIG9uY2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBvbmNlKGZ1bmMpIHtcbiAgICAgIHJldHVybiBiZWZvcmUoMiwgZnVuYyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBpdHMgYXJndW1lbnRzIHRyYW5zZm9ybWVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW3RyYW5zZm9ybXM9W18uaWRlbnRpdHldXVxuICAgICAqICBUaGUgYXJndW1lbnQgdHJhbnNmb3Jtcy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gZG91YmxlZChuKSB7XG4gICAgICogICByZXR1cm4gbiAqIDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgZnVuYyA9IF8ub3ZlckFyZ3MoZnVuY3Rpb24oeCwgeSkge1xuICAgICAqICAgcmV0dXJuIFt4LCB5XTtcbiAgICAgKiB9LCBbc3F1YXJlLCBkb3VibGVkXSk7XG4gICAgICpcbiAgICAgKiBmdW5jKDksIDMpO1xuICAgICAqIC8vID0+IFs4MSwgNl1cbiAgICAgKlxuICAgICAqIGZ1bmMoMTAsIDUpO1xuICAgICAqIC8vID0+IFsxMDAsIDEwXVxuICAgICAqL1xuICAgIHZhciBvdmVyQXJncyA9IGNhc3RSZXN0KGZ1bmN0aW9uKGZ1bmMsIHRyYW5zZm9ybXMpIHtcbiAgICAgIHRyYW5zZm9ybXMgPSAodHJhbnNmb3Jtcy5sZW5ndGggPT0gMSAmJiBpc0FycmF5KHRyYW5zZm9ybXNbMF0pKVxuICAgICAgICA/IGFycmF5TWFwKHRyYW5zZm9ybXNbMF0sIGJhc2VVbmFyeShnZXRJdGVyYXRlZSgpKSlcbiAgICAgICAgOiBhcnJheU1hcChiYXNlRmxhdHRlbih0cmFuc2Zvcm1zLCAxKSwgYmFzZVVuYXJ5KGdldEl0ZXJhdGVlKCkpKTtcblxuICAgICAgdmFyIGZ1bmNzTGVuZ3RoID0gdHJhbnNmb3Jtcy5sZW5ndGg7XG4gICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1pbihhcmdzLmxlbmd0aCwgZnVuY3NMZW5ndGgpO1xuXG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgYXJnc1tpbmRleF0gPSB0cmFuc2Zvcm1zW2luZGV4XS5jYWxsKHRoaXMsIGFyZ3NbaW5kZXhdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXBwbHkoZnVuYywgdGhpcywgYXJncyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggYHBhcnRpYWxzYCBwcmVwZW5kZWQgdG8gdGhlXG4gICAgICogYXJndW1lbnRzIGl0IHJlY2VpdmVzLiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmJpbmRgIGV4Y2VwdCBpdCBkb2VzICoqbm90KipcbiAgICAgKiBhbHRlciB0aGUgYHRoaXNgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBUaGUgYF8ucGFydGlhbC5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljXG4gICAgICogYnVpbGRzLCBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgZG9lc24ndCBzZXQgdGhlIFwibGVuZ3RoXCIgcHJvcGVydHkgb2YgcGFydGlhbGx5XG4gICAgICogYXBwbGllZCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4yLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBwYXJ0aWFsbHkgYXBwbHkgYXJndW1lbnRzIHRvLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIGJlIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHBhcnRpYWxseSBhcHBsaWVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBncmVldChncmVldGluZywgbmFtZSkge1xuICAgICAqICAgcmV0dXJuIGdyZWV0aW5nICsgJyAnICsgbmFtZTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgc2F5SGVsbG9UbyA9IF8ucGFydGlhbChncmVldCwgJ2hlbGxvJyk7XG4gICAgICogc2F5SGVsbG9UbygnZnJlZCcpO1xuICAgICAqIC8vID0+ICdoZWxsbyBmcmVkJ1xuICAgICAqXG4gICAgICogLy8gUGFydGlhbGx5IGFwcGxpZWQgd2l0aCBwbGFjZWhvbGRlcnMuXG4gICAgICogdmFyIGdyZWV0RnJlZCA9IF8ucGFydGlhbChncmVldCwgXywgJ2ZyZWQnKTtcbiAgICAgKiBncmVldEZyZWQoJ2hpJyk7XG4gICAgICogLy8gPT4gJ2hpIGZyZWQnXG4gICAgICovXG4gICAgdmFyIHBhcnRpYWwgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCBwYXJ0aWFscykge1xuICAgICAgdmFyIGhvbGRlcnMgPSByZXBsYWNlSG9sZGVycyhwYXJ0aWFscywgZ2V0SG9sZGVyKHBhcnRpYWwpKTtcbiAgICAgIHJldHVybiBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfUEFSVElBTF9GTEFHLCB1bmRlZmluZWQsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucGFydGlhbGAgZXhjZXB0IHRoYXQgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzXG4gICAgICogYXJlIGFwcGVuZGVkIHRvIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBUaGUgYF8ucGFydGlhbFJpZ2h0LnBsYWNlaG9sZGVyYCB2YWx1ZSwgd2hpY2ggZGVmYXVsdHMgdG8gYF9gIGluIG1vbm9saXRoaWNcbiAgICAgKiBidWlsZHMsIG1heSBiZSB1c2VkIGFzIGEgcGxhY2Vob2xkZXIgZm9yIHBhcnRpYWxseSBhcHBsaWVkIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBkb2Vzbid0IHNldCB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSBvZiBwYXJ0aWFsbHlcbiAgICAgKiBhcHBsaWVkIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHBhcnRpYWxseSBhcHBseSBhcmd1bWVudHMgdG8uXG4gICAgICogQHBhcmFtIHsuLi4qfSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gYmUgcGFydGlhbGx5IGFwcGxpZWQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcGFydGlhbGx5IGFwcGxpZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGdyZWV0KGdyZWV0aW5nLCBuYW1lKSB7XG4gICAgICogICByZXR1cm4gZ3JlZXRpbmcgKyAnICcgKyBuYW1lO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBncmVldEZyZWQgPSBfLnBhcnRpYWxSaWdodChncmVldCwgJ2ZyZWQnKTtcbiAgICAgKiBncmVldEZyZWQoJ2hpJyk7XG4gICAgICogLy8gPT4gJ2hpIGZyZWQnXG4gICAgICpcbiAgICAgKiAvLyBQYXJ0aWFsbHkgYXBwbGllZCB3aXRoIHBsYWNlaG9sZGVycy5cbiAgICAgKiB2YXIgc2F5SGVsbG9UbyA9IF8ucGFydGlhbFJpZ2h0KGdyZWV0LCAnaGVsbG8nLCBfKTtcbiAgICAgKiBzYXlIZWxsb1RvKCdmcmVkJyk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGZyZWQnXG4gICAgICovXG4gICAgdmFyIHBhcnRpYWxSaWdodCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIHBhcnRpYWxzKSB7XG4gICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBnZXRIb2xkZXIocGFydGlhbFJpZ2h0KSk7XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRywgdW5kZWZpbmVkLCBwYXJ0aWFscywgaG9sZGVycyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIGFyZ3VtZW50cyBhcnJhbmdlZCBhY2NvcmRpbmdcbiAgICAgKiB0byB0aGUgc3BlY2lmaWVkIGBpbmRleGVzYCB3aGVyZSB0aGUgYXJndW1lbnQgdmFsdWUgYXQgdGhlIGZpcnN0IGluZGV4IGlzXG4gICAgICogcHJvdmlkZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LCB0aGUgYXJndW1lbnQgdmFsdWUgYXQgdGhlIHNlY29uZCBpbmRleCBpc1xuICAgICAqIHByb3ZpZGVkIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQsIGFuZCBzbyBvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHJlYXJyYW5nZSBhcmd1bWVudHMgZm9yLlxuICAgICAqIEBwYXJhbSB7Li4uKG51bWJlcnxudW1iZXJbXSl9IGluZGV4ZXMgVGhlIGFycmFuZ2VkIGFyZ3VtZW50IGluZGV4ZXMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciByZWFyZ2VkID0gXy5yZWFyZyhmdW5jdGlvbihhLCBiLCBjKSB7XG4gICAgICogICByZXR1cm4gW2EsIGIsIGNdO1xuICAgICAqIH0sIFsyLCAwLCAxXSk7XG4gICAgICpcbiAgICAgKiByZWFyZ2VkKCdiJywgJ2MnLCAnYScpXG4gICAgICogLy8gPT4gWydhJywgJ2InLCAnYyddXG4gICAgICovXG4gICAgdmFyIHJlYXJnID0gZmxhdFJlc3QoZnVuY3Rpb24oZnVuYywgaW5kZXhlcykge1xuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9SRUFSR19GTEFHLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBpbmRleGVzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZVxuICAgICAqIGNyZWF0ZWQgZnVuY3Rpb24gYW5kIGFyZ3VtZW50cyBmcm9tIGBzdGFydGAgYW5kIGJleW9uZCBwcm92aWRlZCBhc1xuICAgICAqIGFuIGFycmF5LlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGJhc2VkIG9uIHRoZVxuICAgICAqIFtyZXN0IHBhcmFtZXRlcl0oaHR0cHM6Ly9tZG4uaW8vcmVzdF9wYXJhbWV0ZXJzKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD1mdW5jLmxlbmd0aC0xXSBUaGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIHJlc3QgcGFyYW1ldGVyLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgc2F5ID0gXy5yZXN0KGZ1bmN0aW9uKHdoYXQsIG5hbWVzKSB7XG4gICAgICogICByZXR1cm4gd2hhdCArICcgJyArIF8uaW5pdGlhbChuYW1lcykuam9pbignLCAnKSArXG4gICAgICogICAgIChfLnNpemUobmFtZXMpID4gMSA/ICcsICYgJyA6ICcnKSArIF8ubGFzdChuYW1lcyk7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBzYXkoJ2hlbGxvJywgJ2ZyZWQnLCAnYmFybmV5JywgJ3BlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiAnaGVsbG8gZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVzdChmdW5jLCBzdGFydCkge1xuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgc3RhcnQgPSBzdGFydCA9PT0gdW5kZWZpbmVkID8gc3RhcnQgOiB0b0ludGVnZXIoc3RhcnQpO1xuICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmMsIHN0YXJ0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiB0aGVcbiAgICAgKiBjcmVhdGUgZnVuY3Rpb24gYW5kIGFuIGFycmF5IG9mIGFyZ3VtZW50cyBtdWNoIGxpa2VcbiAgICAgKiBbYEZ1bmN0aW9uI2FwcGx5YF0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLWZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb24gdGhlXG4gICAgICogW3NwcmVhZCBvcGVyYXRvcl0oaHR0cHM6Ly9tZG4uaW8vc3ByZWFkX29wZXJhdG9yKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjIuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHNwcmVhZCBhcmd1bWVudHMgb3Zlci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgc3ByZWFkLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgc2F5ID0gXy5zcHJlYWQoZnVuY3Rpb24od2hvLCB3aGF0KSB7XG4gICAgICogICByZXR1cm4gd2hvICsgJyBzYXlzICcgKyB3aGF0O1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogc2F5KFsnZnJlZCcsICdoZWxsbyddKTtcbiAgICAgKiAvLyA9PiAnZnJlZCBzYXlzIGhlbGxvJ1xuICAgICAqXG4gICAgICogdmFyIG51bWJlcnMgPSBQcm9taXNlLmFsbChbXG4gICAgICogICBQcm9taXNlLnJlc29sdmUoNDApLFxuICAgICAqICAgUHJvbWlzZS5yZXNvbHZlKDM2KVxuICAgICAqIF0pO1xuICAgICAqXG4gICAgICogbnVtYmVycy50aGVuKF8uc3ByZWFkKGZ1bmN0aW9uKHgsIHkpIHtcbiAgICAgKiAgIHJldHVybiB4ICsgeTtcbiAgICAgKiB9KSk7XG4gICAgICogLy8gPT4gYSBQcm9taXNlIG9mIDc2XG4gICAgICovXG4gICAgZnVuY3Rpb24gc3ByZWFkKGZ1bmMsIHN0YXJ0KSB7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICBzdGFydCA9IHN0YXJ0ID09IG51bGwgPyAwIDogbmF0aXZlTWF4KHRvSW50ZWdlcihzdGFydCksIDApO1xuICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgdmFyIGFycmF5ID0gYXJnc1tzdGFydF0sXG4gICAgICAgICAgICBvdGhlckFyZ3MgPSBjYXN0U2xpY2UoYXJncywgMCwgc3RhcnQpO1xuXG4gICAgICAgIGlmIChhcnJheSkge1xuICAgICAgICAgIGFycmF5UHVzaChvdGhlckFyZ3MsIGFycmF5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXBwbHkoZnVuYywgdGhpcywgb3RoZXJBcmdzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSB0aHJvdHRsZWQgZnVuY3Rpb24gdGhhdCBvbmx5IGludm9rZXMgYGZ1bmNgIGF0IG1vc3Qgb25jZSBwZXJcbiAgICAgKiBldmVyeSBgd2FpdGAgbWlsbGlzZWNvbmRzLiBUaGUgdGhyb3R0bGVkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYFxuICAgICAqIG1ldGhvZCB0byBjYW5jZWwgZGVsYXllZCBgZnVuY2AgaW52b2NhdGlvbnMgYW5kIGEgYGZsdXNoYCBtZXRob2QgdG9cbiAgICAgKiBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS4gUHJvdmlkZSBgb3B0aW9uc2AgdG8gaW5kaWNhdGUgd2hldGhlciBgZnVuY2BcbiAgICAgKiBzaG91bGQgYmUgaW52b2tlZCBvbiB0aGUgbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgXG4gICAgICogdGltZW91dC4gVGhlIGBmdW5jYCBpcyBpbnZva2VkIHdpdGggdGhlIGxhc3QgYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZVxuICAgICAqIHRocm90dGxlZCBmdW5jdGlvbi4gU3Vic2VxdWVudCBjYWxscyB0byB0aGUgdGhyb3R0bGVkIGZ1bmN0aW9uIHJldHVybiB0aGVcbiAgICAgKiByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgIGludm9jYXRpb24uXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogSWYgYGxlYWRpbmdgIGFuZCBgdHJhaWxpbmdgIG9wdGlvbnMgYXJlIGB0cnVlYCwgYGZ1bmNgIGlzXG4gICAgICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSB0aHJvdHRsZWQgZnVuY3Rpb25cbiAgICAgKiBpcyBpbnZva2VkIG1vcmUgdGhhbiBvbmNlIGR1cmluZyB0aGUgYHdhaXRgIHRpbWVvdXQuXG4gICAgICpcbiAgICAgKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcbiAgICAgKiB1bnRpbCB0byB0aGUgbmV4dCB0aWNrLCBzaW1pbGFyIHRvIGBzZXRUaW1lb3V0YCB3aXRoIGEgdGltZW91dCBvZiBgMGAuXG4gICAgICpcbiAgICAgKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcbiAgICAgKiBmb3IgZGV0YWlscyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGBfLnRocm90dGxlYCBhbmQgYF8uZGVib3VuY2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gdGhyb3R0bGUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt3YWl0PTBdIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHRocm90dGxlIGludm9jYXRpb25zIHRvLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVhZGluZz10cnVlXVxuICAgICAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSBsZWFkaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICAgICAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHRocm90dGxlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gQXZvaWQgZXhjZXNzaXZlbHkgdXBkYXRpbmcgdGhlIHBvc2l0aW9uIHdoaWxlIHNjcm9sbGluZy5cbiAgICAgKiBqUXVlcnkod2luZG93KS5vbignc2Nyb2xsJywgXy50aHJvdHRsZSh1cGRhdGVQb3NpdGlvbiwgMTAwKSk7XG4gICAgICpcbiAgICAgKiAvLyBJbnZva2UgYHJlbmV3VG9rZW5gIHdoZW4gdGhlIGNsaWNrIGV2ZW50IGlzIGZpcmVkLCBidXQgbm90IG1vcmUgdGhhbiBvbmNlIGV2ZXJ5IDUgbWludXRlcy5cbiAgICAgKiB2YXIgdGhyb3R0bGVkID0gXy50aHJvdHRsZShyZW5ld1Rva2VuLCAzMDAwMDAsIHsgJ3RyYWlsaW5nJzogZmFsc2UgfSk7XG4gICAgICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIHRocm90dGxlZCk7XG4gICAgICpcbiAgICAgKiAvLyBDYW5jZWwgdGhlIHRyYWlsaW5nIHRocm90dGxlZCBpbnZvY2F0aW9uLlxuICAgICAqIGpRdWVyeSh3aW5kb3cpLm9uKCdwb3BzdGF0ZScsIHRocm90dGxlZC5jYW5jZWwpO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRocm90dGxlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBsZWFkaW5nID0gdHJ1ZSxcbiAgICAgICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgICAgICBsZWFkaW5nID0gJ2xlYWRpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMubGVhZGluZyA6IGxlYWRpbmc7XG4gICAgICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGVib3VuY2UoZnVuYywgd2FpdCwge1xuICAgICAgICAnbGVhZGluZyc6IGxlYWRpbmcsXG4gICAgICAgICdtYXhXYWl0Jzogd2FpdCxcbiAgICAgICAgJ3RyYWlsaW5nJzogdHJhaWxpbmdcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gb25lIGFyZ3VtZW50LCBpZ25vcmluZyBhbnlcbiAgICAgKiBhZGRpdGlvbmFsIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNhcHBlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tYXAoWyc2JywgJzgnLCAnMTAnXSwgXy51bmFyeShwYXJzZUludCkpO1xuICAgICAqIC8vID0+IFs2LCA4LCAxMF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmFyeShmdW5jKSB7XG4gICAgICByZXR1cm4gYXJ5KGZ1bmMsIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHByb3ZpZGVzIGB2YWx1ZWAgdG8gYHdyYXBwZXJgIGFzIGl0cyBmaXJzdFxuICAgICAqIGFyZ3VtZW50LiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGZ1bmN0aW9uIGFyZSBhcHBlbmRlZFxuICAgICAqIHRvIHRob3NlIHByb3ZpZGVkIHRvIHRoZSBgd3JhcHBlcmAuIFRoZSB3cmFwcGVyIGlzIGludm9rZWQgd2l0aCB0aGUgYHRoaXNgXG4gICAgICogYmluZGluZyBvZiB0aGUgY3JlYXRlZCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3dyYXBwZXI9aWRlbnRpdHldIFRoZSB3cmFwcGVyIGZ1bmN0aW9uLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgcCA9IF8ud3JhcChfLmVzY2FwZSwgZnVuY3Rpb24oZnVuYywgdGV4dCkge1xuICAgICAqICAgcmV0dXJuICc8cD4nICsgZnVuYyh0ZXh0KSArICc8L3A+JztcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIHAoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJyk7XG4gICAgICogLy8gPT4gJzxwPmZyZWQsIGJhcm5leSwgJmFtcDsgcGViYmxlczwvcD4nXG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcCh2YWx1ZSwgd3JhcHBlcikge1xuICAgICAgcmV0dXJuIHBhcnRpYWwoY2FzdEZ1bmN0aW9uKHdyYXBwZXIpLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ2FzdHMgYHZhbHVlYCBhcyBhbiBhcnJheSBpZiBpdCdzIG5vdCBvbmUuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC40LjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjYXN0IGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNhc3RBcnJheSgxKTtcbiAgICAgKiAvLyA9PiBbMV1cbiAgICAgKlxuICAgICAqIF8uY2FzdEFycmF5KHsgJ2EnOiAxIH0pO1xuICAgICAqIC8vID0+IFt7ICdhJzogMSB9XVxuICAgICAqXG4gICAgICogXy5jYXN0QXJyYXkoJ2FiYycpO1xuICAgICAqIC8vID0+IFsnYWJjJ11cbiAgICAgKlxuICAgICAqIF8uY2FzdEFycmF5KG51bGwpO1xuICAgICAqIC8vID0+IFtudWxsXVxuICAgICAqXG4gICAgICogXy5jYXN0QXJyYXkodW5kZWZpbmVkKTtcbiAgICAgKiAvLyA9PiBbdW5kZWZpbmVkXVxuICAgICAqXG4gICAgICogXy5jYXN0QXJyYXkoKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDIsIDNdO1xuICAgICAqIGNvbnNvbGUubG9nKF8uY2FzdEFycmF5KGFycmF5KSA9PT0gYXJyYXkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjYXN0QXJyYXkoKSB7XG4gICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdmFyIHZhbHVlID0gYXJndW1lbnRzWzBdO1xuICAgICAgcmV0dXJuIGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzaGFsbG93IGNsb25lIG9mIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGVcbiAgICAgKiBbc3RydWN0dXJlZCBjbG9uZSBhbGdvcml0aG1dKGh0dHBzOi8vbWRuLmlvL1N0cnVjdHVyZWRfY2xvbmVfYWxnb3JpdGhtKVxuICAgICAqIGFuZCBzdXBwb3J0cyBjbG9uaW5nIGFycmF5cywgYXJyYXkgYnVmZmVycywgYm9vbGVhbnMsIGRhdGUgb2JqZWN0cywgbWFwcyxcbiAgICAgKiBudW1iZXJzLCBgT2JqZWN0YCBvYmplY3RzLCByZWdleGVzLCBzZXRzLCBzdHJpbmdzLCBzeW1ib2xzLCBhbmQgdHlwZWRcbiAgICAgKiBhcnJheXMuIFRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIGBhcmd1bWVudHNgIG9iamVjdHMgYXJlIGNsb25lZFxuICAgICAqIGFzIHBsYWluIG9iamVjdHMuIEFuIGVtcHR5IG9iamVjdCBpcyByZXR1cm5lZCBmb3IgdW5jbG9uZWFibGUgdmFsdWVzIHN1Y2hcbiAgICAgKiBhcyBlcnJvciBvYmplY3RzLCBmdW5jdGlvbnMsIERPTSBub2RlcywgYW5kIFdlYWtNYXBzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgY2xvbmVkIHZhbHVlLlxuICAgICAqIEBzZWUgXy5jbG9uZURlZXBcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAnYSc6IDEgfSwgeyAnYic6IDIgfV07XG4gICAgICpcbiAgICAgKiB2YXIgc2hhbGxvdyA9IF8uY2xvbmUob2JqZWN0cyk7XG4gICAgICogY29uc29sZS5sb2coc2hhbGxvd1swXSA9PT0gb2JqZWN0c1swXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lKHZhbHVlKSB7XG4gICAgICByZXR1cm4gYmFzZUNsb25lKHZhbHVlLCBDTE9ORV9TWU1CT0xTX0ZMQUcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uY2xvbmVgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgIHdoaWNoXG4gICAgICogaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBjbG9uZWQgdmFsdWUuIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgLFxuICAgICAqIGNsb25pbmcgaXMgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgaW52b2tlZCB3aXRoXG4gICAgICogdXAgdG8gZm91ciBhcmd1bWVudHM7ICh2YWx1ZSBbLCBpbmRleHxrZXksIG9iamVjdCwgc3RhY2tdKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY2xvbmluZy5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgY2xvbmVkIHZhbHVlLlxuICAgICAqIEBzZWUgXy5jbG9uZURlZXBXaXRoXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIodmFsdWUpIHtcbiAgICAgKiAgIGlmIChfLmlzRWxlbWVudCh2YWx1ZSkpIHtcbiAgICAgKiAgICAgcmV0dXJuIHZhbHVlLmNsb25lTm9kZShmYWxzZSk7XG4gICAgICogICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGVsID0gXy5jbG9uZVdpdGgoZG9jdW1lbnQuYm9keSwgY3VzdG9taXplcik7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhlbCA9PT0gZG9jdW1lbnQuYm9keSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKiBjb25zb2xlLmxvZyhlbC5ub2RlTmFtZSk7XG4gICAgICogLy8gPT4gJ0JPRFknXG4gICAgICogY29uc29sZS5sb2coZWwuY2hpbGROb2Rlcy5sZW5ndGgpO1xuICAgICAqIC8vID0+IDBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZVdpdGgodmFsdWUsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX1NZTUJPTFNfRkxBRywgY3VzdG9taXplcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5jbG9uZWAgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgY2xvbmVzIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMS4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJlY3Vyc2l2ZWx5IGNsb25lLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBkZWVwIGNsb25lZCB2YWx1ZS5cbiAgICAgKiBAc2VlIF8uY2xvbmVcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAnYSc6IDEgfSwgeyAnYic6IDIgfV07XG4gICAgICpcbiAgICAgKiB2YXIgZGVlcCA9IF8uY2xvbmVEZWVwKG9iamVjdHMpO1xuICAgICAqIGNvbnNvbGUubG9nKGRlZXBbMF0gPT09IG9iamVjdHNbMF0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2xvbmVEZWVwKHZhbHVlKSB7XG4gICAgICByZXR1cm4gYmFzZUNsb25lKHZhbHVlLCBDTE9ORV9ERUVQX0ZMQUcgfCBDTE9ORV9TWU1CT0xTX0ZMQUcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uY2xvbmVXaXRoYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBjbG9uZXMgYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmVjdXJzaXZlbHkgY2xvbmUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY2xvbmluZy5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZGVlcCBjbG9uZWQgdmFsdWUuXG4gICAgICogQHNlZSBfLmNsb25lV2l0aFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBjdXN0b21pemVyKHZhbHVlKSB7XG4gICAgICogICBpZiAoXy5pc0VsZW1lbnQodmFsdWUpKSB7XG4gICAgICogICAgIHJldHVybiB2YWx1ZS5jbG9uZU5vZGUodHJ1ZSk7XG4gICAgICogICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGVsID0gXy5jbG9uZURlZXBXaXRoKGRvY3VtZW50LmJvZHksIGN1c3RvbWl6ZXIpO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coZWwgPT09IGRvY3VtZW50LmJvZHkpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICogY29uc29sZS5sb2coZWwubm9kZU5hbWUpO1xuICAgICAqIC8vID0+ICdCT0RZJ1xuICAgICAqIGNvbnNvbGUubG9nKGVsLmNoaWxkTm9kZXMubGVuZ3RoKTtcbiAgICAgKiAvLyA9PiAyMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lRGVlcFdpdGgodmFsdWUsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX0RFRVBfRkxBRyB8IENMT05FX1NZTUJPTFNfRkxBRywgY3VzdG9taXplcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBvYmplY3RgIGNvbmZvcm1zIHRvIGBzb3VyY2VgIGJ5IGludm9raW5nIHRoZSBwcmVkaWNhdGVcbiAgICAgKiBwcm9wZXJ0aWVzIG9mIGBzb3VyY2VgIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgdmFsdWVzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gYF8uY29uZm9ybXNgIHdoZW4gYHNvdXJjZWAgaXNcbiAgICAgKiBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjE0LjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSBwcmVkaWNhdGVzIHRvIGNvbmZvcm0gdG8uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBvYmplY3RgIGNvbmZvcm1zLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAyIH07XG4gICAgICpcbiAgICAgKiBfLmNvbmZvcm1zVG8ob2JqZWN0LCB7ICdiJzogZnVuY3Rpb24obikgeyByZXR1cm4gbiA+IDE7IH0gfSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5jb25mb3Jtc1RvKG9iamVjdCwgeyAnYic6IGZ1bmN0aW9uKG4pIHsgcmV0dXJuIG4gPiAyOyB9IH0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29uZm9ybXNUbyhvYmplY3QsIHNvdXJjZSkge1xuICAgICAgcmV0dXJuIHNvdXJjZSA9PSBudWxsIHx8IGJhc2VDb25mb3Jtc1RvKG9iamVjdCwgc291cmNlLCBrZXlzKHNvdXJjZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGFcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGNvbXBhcmlzb24gYmV0d2VlbiB0d28gdmFsdWVzIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZSBlcXVpdmFsZW50LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gICAgICogdmFyIG90aGVyID0geyAnYSc6IDEgfTtcbiAgICAgKlxuICAgICAqIF8uZXEob2JqZWN0LCBvYmplY3QpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uZXEob2JqZWN0LCBvdGhlcik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uZXEoJ2EnLCAnYScpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uZXEoJ2EnLCBPYmplY3QoJ2EnKSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uZXEoTmFOLCBOYU4pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlcSh2YWx1ZSwgb3RoZXIpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gb3RoZXIgfHwgKHZhbHVlICE9PSB2YWx1ZSAmJiBvdGhlciAhPT0gb3RoZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGdyZWF0ZXIgdGhhbiBgb3RoZXJgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuOS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZ3JlYXRlciB0aGFuIGBvdGhlcmAsXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAc2VlIF8ubHRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5ndCgzLCAxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmd0KDMsIDMpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmd0KDEsIDMpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGd0ID0gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihiYXNlR3QpO1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGBvdGhlcmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy45LjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG9cbiAgICAgKiAgYG90aGVyYCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBzZWUgXy5sdGVcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5ndGUoMywgMSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5ndGUoMywgMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5ndGUoMSwgMyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgZ3RlID0gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihmdW5jdGlvbih2YWx1ZSwgb3RoZXIpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA+PSBvdGhlcjtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxpa2VseSBhbiBgYXJndW1lbnRzYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGBhcmd1bWVudHNgIG9iamVjdCxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNBcmd1bWVudHMoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc0FyZ3VtZW50cyA9IGJhc2VJc0FyZ3VtZW50cyhmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKSA/IGJhc2VJc0FyZ3VtZW50cyA6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnY2FsbGVlJykgJiZcbiAgICAgICAgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsICdjYWxsZWUnKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgQXJyYXlgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5KGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoJ2FiYycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoXy5ub29wKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYW4gYEFycmF5QnVmZmVyYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGFycmF5IGJ1ZmZlciwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlCdWZmZXIobmV3IEFycmF5QnVmZmVyKDIpKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlCdWZmZXIobmV3IEFycmF5KDIpKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc0FycmF5QnVmZmVyID0gbm9kZUlzQXJyYXlCdWZmZXIgPyBiYXNlVW5hcnkobm9kZUlzQXJyYXlCdWZmZXIpIDogYmFzZUlzQXJyYXlCdWZmZXI7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLiBBIHZhbHVlIGlzIGNvbnNpZGVyZWQgYXJyYXktbGlrZSBpZiBpdCdzXG4gICAgICogbm90IGEgZnVuY3Rpb24gYW5kIGhhcyBhIGB2YWx1ZS5sZW5ndGhgIHRoYXQncyBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBvclxuICAgICAqIGVxdWFsIHRvIGAwYCBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5TGlrZShbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUxpa2UoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5TGlrZSgnYWJjJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5TGlrZShfLm5vb3ApO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNBcnJheUxpa2UodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgIWlzRnVuY3Rpb24odmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaXNBcnJheUxpa2VgIGV4Y2VwdCB0aGF0IGl0IGFsc28gY2hlY2tzIGlmIGB2YWx1ZWBcbiAgICAgKiBpcyBhbiBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGFycmF5LWxpa2Ugb2JqZWN0LFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUxpa2VPYmplY3QoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlMaWtlT2JqZWN0KGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUxpa2VPYmplY3QoJ2FiYycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlMaWtlT2JqZWN0KF8ubm9vcCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0FycmF5TGlrZU9iamVjdCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaXNBcnJheUxpa2UodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBib29sZWFuIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgYm9vbGVhbiwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzQm9vbGVhbihmYWxzZSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0Jvb2xlYW4obnVsbCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0Jvb2xlYW4odmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2UgfHxcbiAgICAgICAgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYm9vbFRhZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgYnVmZmVyLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNCdWZmZXIobmV3IEJ1ZmZlcigyKSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0J1ZmZlcihuZXcgVWludDhBcnJheSgyKSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgaXNCdWZmZXIgPSBuYXRpdmVJc0J1ZmZlciB8fCBzdHViRmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYERhdGVgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBkYXRlIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzRGF0ZShuZXcgRGF0ZSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0RhdGUoJ01vbiBBcHJpbCAyMyAyMDEyJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgaXNEYXRlID0gbm9kZUlzRGF0ZSA/IGJhc2VVbmFyeShub2RlSXNEYXRlKSA6IGJhc2VJc0RhdGU7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYSBET00gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBET00gZWxlbWVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzRWxlbWVudChkb2N1bWVudC5ib2R5KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRWxlbWVudCgnPGJvZHk+Jyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0VsZW1lbnQodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIHZhbHVlLm5vZGVUeXBlID09PSAxICYmICFpc1BsYWluT2JqZWN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhbiBlbXB0eSBvYmplY3QsIGNvbGxlY3Rpb24sIG1hcCwgb3Igc2V0LlxuICAgICAqXG4gICAgICogT2JqZWN0cyBhcmUgY29uc2lkZXJlZCBlbXB0eSBpZiB0aGV5IGhhdmUgbm8gb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkXG4gICAgICogcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqIEFycmF5LWxpa2UgdmFsdWVzIHN1Y2ggYXMgYGFyZ3VtZW50c2Agb2JqZWN0cywgYXJyYXlzLCBidWZmZXJzLCBzdHJpbmdzLCBvclxuICAgICAqIGpRdWVyeS1saWtlIGNvbGxlY3Rpb25zIGFyZSBjb25zaWRlcmVkIGVtcHR5IGlmIHRoZXkgaGF2ZSBhIGBsZW5ndGhgIG9mIGAwYC5cbiAgICAgKiBTaW1pbGFybHksIG1hcHMgYW5kIHNldHMgYXJlIGNvbnNpZGVyZWQgZW1wdHkgaWYgdGhleSBoYXZlIGEgYHNpemVgIG9mIGAwYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZW1wdHksIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0VtcHR5KG51bGwpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNFbXB0eSh0cnVlKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRW1wdHkoMSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0VtcHR5KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNFbXB0eSh7ICdhJzogMSB9KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGlzQXJyYXlMaWtlKHZhbHVlKSAmJlxuICAgICAgICAgIChpc0FycmF5KHZhbHVlKSB8fCB0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlLnNwbGljZSA9PSAnZnVuY3Rpb24nIHx8XG4gICAgICAgICAgICBpc0J1ZmZlcih2YWx1ZSkgfHwgaXNUeXBlZEFycmF5KHZhbHVlKSB8fCBpc0FyZ3VtZW50cyh2YWx1ZSkpKSB7XG4gICAgICAgIHJldHVybiAhdmFsdWUubGVuZ3RoO1xuICAgICAgfVxuICAgICAgdmFyIHRhZyA9IGdldFRhZyh2YWx1ZSk7XG4gICAgICBpZiAodGFnID09IG1hcFRhZyB8fCB0YWcgPT0gc2V0VGFnKSB7XG4gICAgICAgIHJldHVybiAhdmFsdWUuc2l6ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1Byb3RvdHlwZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICFiYXNlS2V5cyh2YWx1ZSkubGVuZ3RoO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIGRlZXAgY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlXG4gICAgICogZXF1aXZhbGVudC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyBjb21wYXJpbmcgYXJyYXlzLCBhcnJheSBidWZmZXJzLCBib29sZWFucyxcbiAgICAgKiBkYXRlIG9iamVjdHMsIGVycm9yIG9iamVjdHMsIG1hcHMsIG51bWJlcnMsIGBPYmplY3RgIG9iamVjdHMsIHJlZ2V4ZXMsXG4gICAgICogc2V0cywgc3RyaW5ncywgc3ltYm9scywgYW5kIHR5cGVkIGFycmF5cy4gYE9iamVjdGAgb2JqZWN0cyBhcmUgY29tcGFyZWRcbiAgICAgKiBieSB0aGVpciBvd24sIG5vdCBpbmhlcml0ZWQsIGVudW1lcmFibGUgcHJvcGVydGllcy4gRnVuY3Rpb25zIGFuZCBET01cbiAgICAgKiBub2RlcyBhcmUgY29tcGFyZWQgYnkgc3RyaWN0IGVxdWFsaXR5LCBpLmUuIGA9PT1gLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gICAgICogdmFyIG90aGVyID0geyAnYSc6IDEgfTtcbiAgICAgKlxuICAgICAqIF8uaXNFcXVhbChvYmplY3QsIG90aGVyKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBvYmplY3QgPT09IG90aGVyO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNFcXVhbCh2YWx1ZSwgb3RoZXIpIHtcbiAgICAgIHJldHVybiBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaXNFcXVhbGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIHRvIGNvbXBhcmUgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYCwgY29tcGFyaXNvbnNcbiAgICAgKiBhcmUgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgaW52b2tlZCB3aXRoIHVwIHRvXG4gICAgICogc2l4IGFyZ3VtZW50czogKG9ialZhbHVlLCBvdGhWYWx1ZSBbLCBpbmRleHxrZXksIG9iamVjdCwgb3RoZXIsIHN0YWNrXSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBpc0dyZWV0aW5nKHZhbHVlKSB7XG4gICAgICogICByZXR1cm4gL15oKD86aXxlbGxvKSQvLnRlc3QodmFsdWUpO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIG90aFZhbHVlKSB7XG4gICAgICogICBpZiAoaXNHcmVldGluZyhvYmpWYWx1ZSkgJiYgaXNHcmVldGluZyhvdGhWYWx1ZSkpIHtcbiAgICAgKiAgICAgcmV0dXJuIHRydWU7XG4gICAgICogICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWydoZWxsbycsICdnb29kYnllJ107XG4gICAgICogdmFyIG90aGVyID0gWydoaScsICdnb29kYnllJ107XG4gICAgICpcbiAgICAgKiBfLmlzRXF1YWxXaXRoKGFycmF5LCBvdGhlciwgY3VzdG9taXplcik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRXF1YWxXaXRoKHZhbHVlLCBvdGhlciwgY3VzdG9taXplcikge1xuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkO1xuICAgICAgdmFyIHJlc3VsdCA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKHZhbHVlLCBvdGhlcikgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gcmVzdWx0ID09PSB1bmRlZmluZWQgPyBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIsIHVuZGVmaW5lZCwgY3VzdG9taXplcikgOiAhIXJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhbiBgRXJyb3JgLCBgRXZhbEVycm9yYCwgYFJhbmdlRXJyb3JgLCBgUmVmZXJlbmNlRXJyb3JgLFxuICAgICAqIGBTeW50YXhFcnJvcmAsIGBUeXBlRXJyb3JgLCBvciBgVVJJRXJyb3JgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gZXJyb3Igb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNFcnJvcihuZXcgRXJyb3IpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNFcnJvcihFcnJvcik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0Vycm9yKHZhbHVlKSB7XG4gICAgICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHRhZyA9IGJhc2VHZXRUYWcodmFsdWUpO1xuICAgICAgcmV0dXJuIHRhZyA9PSBlcnJvclRhZyB8fCB0YWcgPT0gZG9tRXhjVGFnIHx8XG4gICAgICAgICh0eXBlb2YgdmFsdWUubWVzc2FnZSA9PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUubmFtZSA9PSAnc3RyaW5nJyAmJiAhaXNQbGFpbk9iamVjdCh2YWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgZmluaXRlIHByaW1pdGl2ZSBudW1iZXIuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYE51bWJlci5pc0Zpbml0ZWBdKGh0dHBzOi8vbWRuLmlvL051bWJlci9pc0Zpbml0ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZmluaXRlIG51bWJlciwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzRmluaXRlKDMpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNGaW5pdGUoTnVtYmVyLk1JTl9WQUxVRSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0Zpbml0ZShJbmZpbml0eSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNGaW5pdGUoJzMnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRmluaXRlKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmIG5hdGl2ZUlzRmluaXRlKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYEZ1bmN0aW9uYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZnVuY3Rpb24sIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0Z1bmN0aW9uKF8pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNGdW5jdGlvbigvYWJjLyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gICAgICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICAvLyBUaGUgdXNlIG9mIGBPYmplY3QjdG9TdHJpbmdgIGF2b2lkcyBpc3N1ZXMgd2l0aCB0aGUgYHR5cGVvZmAgb3BlcmF0b3JcbiAgICAgIC8vIGluIFNhZmFyaSA5IHdoaWNoIHJldHVybnMgJ29iamVjdCcgZm9yIHR5cGVkIGFycmF5cyBhbmQgb3RoZXIgY29uc3RydWN0b3JzLlxuICAgICAgdmFyIHRhZyA9IGJhc2VHZXRUYWcodmFsdWUpO1xuICAgICAgcmV0dXJuIHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWcgfHwgdGFnID09IGFzeW5jVGFnIHx8IHRhZyA9PSBwcm94eVRhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhbiBpbnRlZ2VyLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGJhc2VkIG9uXG4gICAgICogW2BOdW1iZXIuaXNJbnRlZ2VyYF0oaHR0cHM6Ly9tZG4uaW8vTnVtYmVyL2lzSW50ZWdlcikuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGludGVnZXIsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0ludGVnZXIoMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0ludGVnZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNJbnRlZ2VyKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0ludGVnZXIoJzMnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzSW50ZWdlcih2YWx1ZSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyAmJiB2YWx1ZSA9PSB0b0ludGVnZXIodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBsZW5ndGguXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgbG9vc2VseSBiYXNlZCBvblxuICAgICAqIFtgVG9MZW5ndGhgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy10b2xlbmd0aCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgbGVuZ3RoLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNMZW5ndGgoMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0xlbmd0aChOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0xlbmd0aChJbmZpbml0eSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNMZW5ndGgoJzMnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmXG4gICAgICAgIHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09IDAgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAgICAgKiBbbGFuZ3VhZ2UgdHlwZV0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLWVjbWFzY3JpcHQtbGFuZ3VhZ2UtdHlwZXMpXG4gICAgICogb2YgYE9iamVjdGAuIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdCh7fSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzT2JqZWN0KG51bGwpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgICAgIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgKHR5cGUgPT0gJ29iamVjdCcgfHwgdHlwZSA9PSAnZnVuY3Rpb24nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAgICAgKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNPYmplY3RMaWtlKHt9KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzT2JqZWN0TGlrZShbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNPYmplY3RMaWtlKF8ubm9vcCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNPYmplY3RMaWtlKG51bGwpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBNYXBgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjMuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBtYXAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc01hcChuZXcgTWFwKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTWFwKG5ldyBXZWFrTWFwKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc01hcCA9IG5vZGVJc01hcCA/IGJhc2VVbmFyeShub2RlSXNNYXApIDogYmFzZUlzTWFwO1xuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbiBiZXR3ZWVuIGBvYmplY3RgIGFuZCBgc291cmNlYCB0b1xuICAgICAqIGRldGVybWluZSBpZiBgb2JqZWN0YCBjb250YWlucyBlcXVpdmFsZW50IHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIGBfLm1hdGNoZXNgIHdoZW4gYHNvdXJjZWAgaXNcbiAgICAgKiBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKlxuICAgICAqIFBhcnRpYWwgY29tcGFyaXNvbnMgd2lsbCBtYXRjaCBlbXB0eSBhcnJheSBhbmQgZW1wdHkgb2JqZWN0IGBzb3VyY2VgXG4gICAgICogdmFsdWVzIGFnYWluc3QgYW55IGFycmF5IG9yIG9iamVjdCB2YWx1ZSwgcmVzcGVjdGl2ZWx5LiBTZWUgYF8uaXNFcXVhbGBcbiAgICAgKiBmb3IgYSBsaXN0IG9mIHN1cHBvcnRlZCB2YWx1ZSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG9iamVjdGAgaXMgYSBtYXRjaCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogMiB9O1xuICAgICAqXG4gICAgICogXy5pc01hdGNoKG9iamVjdCwgeyAnYic6IDIgfSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc01hdGNoKG9iamVjdCwgeyAnYic6IDEgfSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc01hdGNoKG9iamVjdCwgc291cmNlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09PSBzb3VyY2UgfHwgYmFzZUlzTWF0Y2gob2JqZWN0LCBzb3VyY2UsIGdldE1hdGNoRGF0YShzb3VyY2UpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmlzTWF0Y2hgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgIHdoaWNoXG4gICAgICogaXMgaW52b2tlZCB0byBjb21wYXJlIHZhbHVlcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGAsIGNvbXBhcmlzb25zXG4gICAgICogYXJlIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGludm9rZWQgd2l0aCBmaXZlXG4gICAgICogYXJndW1lbnRzOiAob2JqVmFsdWUsIHNyY1ZhbHVlLCBpbmRleHxrZXksIG9iamVjdCwgc291cmNlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG9iamVjdGAgaXMgYSBtYXRjaCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBpc0dyZWV0aW5nKHZhbHVlKSB7XG4gICAgICogICByZXR1cm4gL15oKD86aXxlbGxvKSQvLnRlc3QodmFsdWUpO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XG4gICAgICogICBpZiAoaXNHcmVldGluZyhvYmpWYWx1ZSkgJiYgaXNHcmVldGluZyhzcmNWYWx1ZSkpIHtcbiAgICAgKiAgICAgcmV0dXJuIHRydWU7XG4gICAgICogICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2dyZWV0aW5nJzogJ2hlbGxvJyB9O1xuICAgICAqIHZhciBzb3VyY2UgPSB7ICdncmVldGluZyc6ICdoaScgfTtcbiAgICAgKlxuICAgICAqIF8uaXNNYXRjaFdpdGgob2JqZWN0LCBzb3VyY2UsIGN1c3RvbWl6ZXIpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc01hdGNoV2l0aChvYmplY3QsIHNvdXJjZSwgY3VzdG9taXplcikge1xuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIGJhc2VJc01hdGNoKG9iamVjdCwgc291cmNlLCBnZXRNYXRjaERhdGEoc291cmNlKSwgY3VzdG9taXplcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYE5hTmAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYE51bWJlci5pc05hTmBdKGh0dHBzOi8vbWRuLmlvL051bWJlci9pc05hTikgYW5kIGlzIG5vdCB0aGUgc2FtZSBhc1xuICAgICAqIGdsb2JhbCBbYGlzTmFOYF0oaHR0cHM6Ly9tZG4uaW8vaXNOYU4pIHdoaWNoIHJldHVybnMgYHRydWVgIGZvclxuICAgICAqIGB1bmRlZmluZWRgIGFuZCBvdGhlciBub24tbnVtYmVyIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYE5hTmAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc05hTihOYU4pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOYU4obmV3IE51bWJlcihOYU4pKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBpc05hTih1bmRlZmluZWQpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOYU4odW5kZWZpbmVkKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTmFOKHZhbHVlKSB7XG4gICAgICAvLyBBbiBgTmFOYCBwcmltaXRpdmUgaXMgdGhlIG9ubHkgdmFsdWUgdGhhdCBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLlxuICAgICAgLy8gUGVyZm9ybSB0aGUgYHRvU3RyaW5nVGFnYCBjaGVjayBmaXJzdCB0byBhdm9pZCBlcnJvcnMgd2l0aCBzb21lXG4gICAgICAvLyBBY3RpdmVYIG9iamVjdHMgaW4gSUUuXG4gICAgICByZXR1cm4gaXNOdW1iZXIodmFsdWUpICYmIHZhbHVlICE9ICt2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHByaXN0aW5lIG5hdGl2ZSBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBjYW4ndCByZWxpYWJseSBkZXRlY3QgbmF0aXZlIGZ1bmN0aW9ucyBpbiB0aGUgcHJlc2VuY2VcbiAgICAgKiBvZiB0aGUgY29yZS1qcyBwYWNrYWdlIGJlY2F1c2UgY29yZS1qcyBjaXJjdW12ZW50cyB0aGlzIGtpbmQgb2YgZGV0ZWN0aW9uLlxuICAgICAqIERlc3BpdGUgbXVsdGlwbGUgcmVxdWVzdHMsIHRoZSBjb3JlLWpzIG1haW50YWluZXIgaGFzIG1hZGUgaXQgY2xlYXI6IGFueVxuICAgICAqIGF0dGVtcHQgdG8gZml4IHRoZSBkZXRlY3Rpb24gd2lsbCBiZSBvYnN0cnVjdGVkLiBBcyBhIHJlc3VsdCwgd2UncmUgbGVmdFxuICAgICAqIHdpdGggbGl0dGxlIGNob2ljZSBidXQgdG8gdGhyb3cgYW4gZXJyb3IuIFVuZm9ydHVuYXRlbHksIHRoaXMgYWxzbyBhZmZlY3RzXG4gICAgICogcGFja2FnZXMsIGxpa2UgW2JhYmVsLXBvbHlmaWxsXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9iYWJlbC1wb2x5ZmlsbCksXG4gICAgICogd2hpY2ggcmVseSBvbiBjb3JlLWpzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzTmF0aXZlKEFycmF5LnByb3RvdHlwZS5wdXNoKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTmF0aXZlKF8pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNOYXRpdmUodmFsdWUpIHtcbiAgICAgIGlmIChpc01hc2thYmxlKHZhbHVlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoQ09SRV9FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlSXNOYXRpdmUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGBudWxsYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYG51bGxgLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNOdWxsKG51bGwpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOdWxsKHZvaWQgMCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc051bGwodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG51bGxpc2gsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc05pbChudWxsKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTmlsKHZvaWQgMCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc05pbChOYU4pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNOaWwodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgTnVtYmVyYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRvIGV4Y2x1ZGUgYEluZmluaXR5YCwgYC1JbmZpbml0eWAsIGFuZCBgTmFOYCwgd2hpY2ggYXJlXG4gICAgICogY2xhc3NpZmllZCBhcyBudW1iZXJzLCB1c2UgdGhlIGBfLmlzRmluaXRlYCBtZXRob2QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbnVtYmVyLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNOdW1iZXIoMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc051bWJlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTnVtYmVyKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTnVtYmVyKCczJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyB8fFxuICAgICAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBudW1iZXJUYWcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCB0aGF0IGlzLCBhbiBvYmplY3QgY3JlYXRlZCBieSB0aGVcbiAgICAgKiBgT2JqZWN0YCBjb25zdHJ1Y3RvciBvciBvbmUgd2l0aCBhIGBbW1Byb3RvdHlwZV1dYCBvZiBgbnVsbGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC44LjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogfVxuICAgICAqXG4gICAgICogXy5pc1BsYWluT2JqZWN0KG5ldyBGb28pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzUGxhaW5PYmplY3QoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc1BsYWluT2JqZWN0KHsgJ3gnOiAwLCAneSc6IDAgfSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc1BsYWluT2JqZWN0KE9iamVjdC5jcmVhdGUobnVsbCkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlKSB7XG4gICAgICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkgfHwgYmFzZUdldFRhZyh2YWx1ZSkgIT0gb2JqZWN0VGFnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm90byA9IGdldFByb3RvdHlwZSh2YWx1ZSk7XG4gICAgICBpZiAocHJvdG8gPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICB2YXIgQ3RvciA9IGhhc093blByb3BlcnR5LmNhbGwocHJvdG8sICdjb25zdHJ1Y3RvcicpICYmIHByb3RvLmNvbnN0cnVjdG9yO1xuICAgICAgcmV0dXJuIHR5cGVvZiBDdG9yID09ICdmdW5jdGlvbicgJiYgQ3RvciBpbnN0YW5jZW9mIEN0b3IgJiZcbiAgICAgICAgZnVuY1RvU3RyaW5nLmNhbGwoQ3RvcikgPT0gb2JqZWN0Q3RvclN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFJlZ0V4cGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHJlZ2V4cCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzUmVnRXhwKC9hYmMvKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzUmVnRXhwKCcvYWJjLycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzUmVnRXhwID0gbm9kZUlzUmVnRXhwID8gYmFzZVVuYXJ5KG5vZGVJc1JlZ0V4cCkgOiBiYXNlSXNSZWdFeHA7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHNhZmUgaW50ZWdlci4gQW4gaW50ZWdlciBpcyBzYWZlIGlmIGl0J3MgYW4gSUVFRS03NTRcbiAgICAgKiBkb3VibGUgcHJlY2lzaW9uIG51bWJlciB3aGljaCBpc24ndCB0aGUgcmVzdWx0IG9mIGEgcm91bmRlZCB1bnNhZmUgaW50ZWdlci5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvblxuICAgICAqIFtgTnVtYmVyLmlzU2FmZUludGVnZXJgXShodHRwczovL21kbi5pby9OdW1iZXIvaXNTYWZlSW50ZWdlcikuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc2FmZSBpbnRlZ2VyLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNTYWZlSW50ZWdlcigzKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzU2FmZUludGVnZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNTYWZlSW50ZWdlcihJbmZpbml0eSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNTYWZlSW50ZWdlcignMycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNTYWZlSW50ZWdlcih2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzSW50ZWdlcih2YWx1ZSkgJiYgdmFsdWUgPj0gLU1BWF9TQUZFX0lOVEVHRVIgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFNldGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMy4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHNldCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzU2V0KG5ldyBTZXQpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNTZXQobmV3IFdlYWtTZXQpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzU2V0ID0gbm9kZUlzU2V0ID8gYmFzZVVuYXJ5KG5vZGVJc1NldCkgOiBiYXNlSXNTZXQ7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFN0cmluZ2AgcHJpbWl0aXZlIG9yIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzdHJpbmcsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc1N0cmluZygnYWJjJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc1N0cmluZygxKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8XG4gICAgICAgICghaXNBcnJheSh2YWx1ZSkgJiYgaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBzdHJpbmdUYWcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHN5bWJvbCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzU3ltYm9sKFN5bWJvbC5pdGVyYXRvcik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc1N5bWJvbCgnYWJjJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1N5bWJvbCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3ltYm9sJyB8fFxuICAgICAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSB0eXBlZCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB0eXBlZCBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzVHlwZWRBcnJheShuZXcgVWludDhBcnJheSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc1R5cGVkQXJyYXkoW10pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzVHlwZWRBcnJheSA9IG5vZGVJc1R5cGVkQXJyYXkgPyBiYXNlVW5hcnkobm9kZUlzVHlwZWRBcnJheSkgOiBiYXNlSXNUeXBlZEFycmF5O1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYHVuZGVmaW5lZGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGB1bmRlZmluZWRgLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNVbmRlZmluZWQodm9pZCAwKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzVW5kZWZpbmVkKG51bGwpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNVbmRlZmluZWQodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgV2Vha01hcGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMy4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHdlYWsgbWFwLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNXZWFrTWFwKG5ldyBXZWFrTWFwKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzV2Vha01hcChuZXcgTWFwKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzV2Vha01hcCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgZ2V0VGFnKHZhbHVlKSA9PSB3ZWFrTWFwVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgV2Vha1NldGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMy4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHdlYWsgc2V0LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNXZWFrU2V0KG5ldyBXZWFrU2V0KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzV2Vha1NldChuZXcgU2V0KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzV2Vha1NldCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gd2Vha1NldFRhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsZXNzIHRoYW4gYG90aGVyYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjkuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGxlc3MgdGhhbiBgb3RoZXJgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQHNlZSBfLmd0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubHQoMSwgMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5sdCgzLCAzKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5sdCgzLCAxKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBsdCA9IGNyZWF0ZVJlbGF0aW9uYWxPcGVyYXRpb24oYmFzZUx0KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBgb3RoZXJgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuOS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvXG4gICAgICogIGBvdGhlcmAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAc2VlIF8uZ3RlXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubHRlKDEsIDMpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8ubHRlKDMsIDMpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8ubHRlKDMsIDEpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGx0ZSA9IGNyZWF0ZVJlbGF0aW9uYWxPcGVyYXRpb24oZnVuY3Rpb24odmFsdWUsIG90aGVyKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPD0gb3RoZXI7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGFuIGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY29udmVydGVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRvQXJyYXkoeyAnYSc6IDEsICdiJzogMiB9KTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIF8udG9BcnJheSgnYWJjJyk7XG4gICAgICogLy8gPT4gWydhJywgJ2InLCAnYyddXG4gICAgICpcbiAgICAgKiBfLnRvQXJyYXkoMSk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKlxuICAgICAqIF8udG9BcnJheShudWxsKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvQXJyYXkodmFsdWUpIHtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKGlzQXJyYXlMaWtlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gaXNTdHJpbmcodmFsdWUpID8gc3RyaW5nVG9BcnJheSh2YWx1ZSkgOiBjb3B5QXJyYXkodmFsdWUpO1xuICAgICAgfVxuICAgICAgaWYgKHN5bUl0ZXJhdG9yICYmIHZhbHVlW3N5bUl0ZXJhdG9yXSkge1xuICAgICAgICByZXR1cm4gaXRlcmF0b3JUb0FycmF5KHZhbHVlW3N5bUl0ZXJhdG9yXSgpKTtcbiAgICAgIH1cbiAgICAgIHZhciB0YWcgPSBnZXRUYWcodmFsdWUpLFxuICAgICAgICAgIGZ1bmMgPSB0YWcgPT0gbWFwVGFnID8gbWFwVG9BcnJheSA6ICh0YWcgPT0gc2V0VGFnID8gc2V0VG9BcnJheSA6IHZhbHVlcyk7XG5cbiAgICAgIHJldHVybiBmdW5jKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgZmluaXRlIG51bWJlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEyLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29udmVydGVkIG51bWJlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50b0Zpbml0ZSgzLjIpO1xuICAgICAqIC8vID0+IDMuMlxuICAgICAqXG4gICAgICogXy50b0Zpbml0ZShOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiA1ZS0zMjRcbiAgICAgKlxuICAgICAqIF8udG9GaW5pdGUoSW5maW5pdHkpO1xuICAgICAqIC8vID0+IDEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4XG4gICAgICpcbiAgICAgKiBfLnRvRmluaXRlKCczLjInKTtcbiAgICAgKiAvLyA9PiAzLjJcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b0Zpbml0ZSh2YWx1ZSkge1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IDAgPyB2YWx1ZSA6IDA7XG4gICAgICB9XG4gICAgICB2YWx1ZSA9IHRvTnVtYmVyKHZhbHVlKTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gSU5GSU5JVFkgfHwgdmFsdWUgPT09IC1JTkZJTklUWSkge1xuICAgICAgICB2YXIgc2lnbiA9ICh2YWx1ZSA8IDAgPyAtMSA6IDEpO1xuICAgICAgICByZXR1cm4gc2lnbiAqIE1BWF9JTlRFR0VSO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlID09PSB2YWx1ZSA/IHZhbHVlIDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGFuIGludGVnZXIuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgbG9vc2VseSBiYXNlZCBvblxuICAgICAqIFtgVG9JbnRlZ2VyYF0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRvaW50ZWdlcikuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29udmVydGVkIGludGVnZXIuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9JbnRlZ2VyKDMuMik7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogXy50b0ludGVnZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gICAgICogLy8gPT4gMFxuICAgICAqXG4gICAgICogXy50b0ludGVnZXIoSW5maW5pdHkpO1xuICAgICAqIC8vID0+IDEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4XG4gICAgICpcbiAgICAgKiBfLnRvSW50ZWdlcignMy4yJyk7XG4gICAgICogLy8gPT4gM1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvSW50ZWdlcih2YWx1ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IHRvRmluaXRlKHZhbHVlKSxcbiAgICAgICAgICByZW1haW5kZXIgPSByZXN1bHQgJSAxO1xuXG4gICAgICByZXR1cm4gcmVzdWx0ID09PSByZXN1bHQgPyAocmVtYWluZGVyID8gcmVzdWx0IC0gcmVtYWluZGVyIDogcmVzdWx0KSA6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhbiBpbnRlZ2VyIHN1aXRhYmxlIGZvciB1c2UgYXMgdGhlIGxlbmd0aCBvZiBhblxuICAgICAqIGFycmF5LWxpa2Ugb2JqZWN0LlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGJhc2VkIG9uXG4gICAgICogW2BUb0xlbmd0aGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRvbGVuZ3RoKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgaW50ZWdlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50b0xlbmd0aCgzLjIpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8udG9MZW5ndGgoTnVtYmVyLk1JTl9WQUxVRSk7XG4gICAgICogLy8gPT4gMFxuICAgICAqXG4gICAgICogXy50b0xlbmd0aChJbmZpbml0eSk7XG4gICAgICogLy8gPT4gNDI5NDk2NzI5NVxuICAgICAqXG4gICAgICogXy50b0xlbmd0aCgnMy4yJyk7XG4gICAgICogLy8gPT4gM1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvTGVuZ3RoKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPyBiYXNlQ2xhbXAodG9JbnRlZ2VyKHZhbHVlKSwgMCwgTUFYX0FSUkFZX0xFTkdUSCkgOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBudW1iZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRvTnVtYmVyKDMuMik7XG4gICAgICogLy8gPT4gMy4yXG4gICAgICpcbiAgICAgKiBfLnRvTnVtYmVyKE51bWJlci5NSU5fVkFMVUUpO1xuICAgICAqIC8vID0+IDVlLTMyNFxuICAgICAqXG4gICAgICogXy50b051bWJlcihJbmZpbml0eSk7XG4gICAgICogLy8gPT4gSW5maW5pdHlcbiAgICAgKlxuICAgICAqIF8udG9OdW1iZXIoJzMuMicpO1xuICAgICAqIC8vID0+IDMuMlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvTnVtYmVyKHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIE5BTjtcbiAgICAgIH1cbiAgICAgIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgdmFyIG90aGVyID0gdHlwZW9mIHZhbHVlLnZhbHVlT2YgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAgICAgICB2YWx1ZSA9IGlzT2JqZWN0KG90aGVyKSA/IChvdGhlciArICcnKSA6IG90aGVyO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IDAgPyB2YWx1ZSA6ICt2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZShyZVRyaW0sICcnKTtcbiAgICAgIHZhciBpc0JpbmFyeSA9IHJlSXNCaW5hcnkudGVzdCh2YWx1ZSk7XG4gICAgICByZXR1cm4gKGlzQmluYXJ5IHx8IHJlSXNPY3RhbC50ZXN0KHZhbHVlKSlcbiAgICAgICAgPyBmcmVlUGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIGlzQmluYXJ5ID8gMiA6IDgpXG4gICAgICAgIDogKHJlSXNCYWRIZXgudGVzdCh2YWx1ZSkgPyBOQU4gOiArdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBwbGFpbiBvYmplY3QgZmxhdHRlbmluZyBpbmhlcml0ZWQgZW51bWVyYWJsZSBzdHJpbmdcbiAgICAgKiBrZXllZCBwcm9wZXJ0aWVzIG9mIGB2YWx1ZWAgdG8gb3duIHByb3BlcnRpZXMgb2YgdGhlIHBsYWluIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgcGxhaW4gb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmFzc2lnbih7ICdhJzogMSB9LCBuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyIH1cbiAgICAgKlxuICAgICAqIF8uYXNzaWduKHsgJ2EnOiAxIH0sIF8udG9QbGFpbk9iamVjdChuZXcgRm9vKSk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiwgJ2MnOiAzIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b1BsYWluT2JqZWN0KHZhbHVlKSB7XG4gICAgICByZXR1cm4gY29weU9iamVjdCh2YWx1ZSwga2V5c0luKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhIHNhZmUgaW50ZWdlci4gQSBzYWZlIGludGVnZXIgY2FuIGJlIGNvbXBhcmVkIGFuZFxuICAgICAqIHJlcHJlc2VudGVkIGNvcnJlY3RseS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgaW50ZWdlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50b1NhZmVJbnRlZ2VyKDMuMik7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogXy50b1NhZmVJbnRlZ2VyKE51bWJlci5NSU5fVkFMVUUpO1xuICAgICAqIC8vID0+IDBcbiAgICAgKlxuICAgICAqIF8udG9TYWZlSW50ZWdlcihJbmZpbml0eSk7XG4gICAgICogLy8gPT4gOTAwNzE5OTI1NDc0MDk5MVxuICAgICAqXG4gICAgICogXy50b1NhZmVJbnRlZ2VyKCczLjInKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9TYWZlSW50ZWdlcih2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgID8gYmFzZUNsYW1wKHRvSW50ZWdlcih2YWx1ZSksIC1NQVhfU0FGRV9JTlRFR0VSLCBNQVhfU0FGRV9JTlRFR0VSKVxuICAgICAgICA6ICh2YWx1ZSA9PT0gMCA/IHZhbHVlIDogMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZy4gQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGZvciBgbnVsbGBcbiAgICAgKiBhbmQgYHVuZGVmaW5lZGAgdmFsdWVzLiBUaGUgc2lnbiBvZiBgLTBgIGlzIHByZXNlcnZlZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRvU3RyaW5nKG51bGwpO1xuICAgICAqIC8vID0+ICcnXG4gICAgICpcbiAgICAgKiBfLnRvU3RyaW5nKC0wKTtcbiAgICAgKiAvLyA9PiAnLTAnXG4gICAgICpcbiAgICAgKiBfLnRvU3RyaW5nKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gJzEsMiwzJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvU3RyaW5nKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/ICcnIDogYmFzZVRvU3RyaW5nKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBBc3NpZ25zIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIG9mIHNvdXJjZSBvYmplY3RzIHRvIHRoZVxuICAgICAqIGRlc3RpbmF0aW9uIG9iamVjdC4gU291cmNlIG9iamVjdHMgYXJlIGFwcGxpZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LlxuICAgICAqIFN1YnNlcXVlbnQgc291cmNlcyBvdmVyd3JpdGUgcHJvcGVydHkgYXNzaWdubWVudHMgb2YgcHJldmlvdXMgc291cmNlcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgIGFuZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gICAgICogW2BPYmplY3QuYXNzaWduYF0oaHR0cHM6Ly9tZG4uaW8vT2JqZWN0L2Fzc2lnbikuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gey4uLk9iamVjdH0gW3NvdXJjZXNdIFRoZSBzb3VyY2Ugb2JqZWN0cy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBzZWUgXy5hc3NpZ25JblxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEJhcigpIHtcbiAgICAgKiAgIHRoaXMuYyA9IDM7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5iID0gMjtcbiAgICAgKiBCYXIucHJvdG90eXBlLmQgPSA0O1xuICAgICAqXG4gICAgICogXy5hc3NpZ24oeyAnYSc6IDAgfSwgbmV3IEZvbywgbmV3IEJhcik7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdjJzogMyB9XG4gICAgICovXG4gICAgdmFyIGFzc2lnbiA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlKSB7XG4gICAgICBpZiAoaXNQcm90b3R5cGUoc291cmNlKSB8fCBpc0FycmF5TGlrZShzb3VyY2UpKSB7XG4gICAgICAgIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzKHNvdXJjZSksIG9iamVjdCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5hc3NpZ25gIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgb3duIGFuZFxuICAgICAqIGluaGVyaXRlZCBzb3VyY2UgcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGFsaWFzIGV4dGVuZFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uYXNzaWduXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogfVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gQmFyKCkge1xuICAgICAqICAgdGhpcy5jID0gMztcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmIgPSAyO1xuICAgICAqIEJhci5wcm90b3R5cGUuZCA9IDQ7XG4gICAgICpcbiAgICAgKiBfLmFzc2lnbkluKHsgJ2EnOiAwIH0sIG5ldyBGb28sIG5ldyBCYXIpO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMywgJ2QnOiA0IH1cbiAgICAgKi9cbiAgICB2YXIgYXNzaWduSW4gPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSkge1xuICAgICAgY29weU9iamVjdChzb3VyY2UsIGtleXNJbihzb3VyY2UpLCBvYmplY3QpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5hc3NpZ25JbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmBcbiAgICAgKiB3aGljaCBpcyBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIGFzc2lnbmVkIHZhbHVlcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnNcbiAgICAgKiBgdW5kZWZpbmVkYCwgYXNzaWdubWVudCBpcyBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYFxuICAgICAqIGlzIGludm9rZWQgd2l0aCBmaXZlIGFyZ3VtZW50czogKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBhbGlhcyBleHRlbmRXaXRoXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gey4uLk9iamVjdH0gc291cmNlcyBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmFzc2lnbldpdGhcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUpIHtcbiAgICAgKiAgIHJldHVybiBfLmlzVW5kZWZpbmVkKG9ialZhbHVlKSA/IHNyY1ZhbHVlIDogb2JqVmFsdWU7XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGRlZmF1bHRzID0gXy5wYXJ0aWFsUmlnaHQoXy5hc3NpZ25JbldpdGgsIGN1c3RvbWl6ZXIpO1xuICAgICAqXG4gICAgICogZGVmYXVsdHMoeyAnYSc6IDEgfSwgeyAnYic6IDIgfSwgeyAnYSc6IDMgfSk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gICAgICovXG4gICAgdmFyIGFzc2lnbkluV2l0aCA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcikge1xuICAgICAgY29weU9iamVjdChzb3VyY2UsIGtleXNJbihzb3VyY2UpLCBvYmplY3QsIGN1c3RvbWl6ZXIpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5hc3NpZ25gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgXG4gICAgICogd2hpY2ggaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBhc3NpZ25lZCB2YWx1ZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zXG4gICAgICogYHVuZGVmaW5lZGAsIGFzc2lnbm1lbnQgaXMgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmBcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggZml2ZSBhcmd1bWVudHM6IChvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBzb3VyY2VzIFRoZSBzb3VyY2Ugb2JqZWN0cy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uYXNzaWduSW5XaXRoXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XG4gICAgICogICByZXR1cm4gXy5pc1VuZGVmaW5lZChvYmpWYWx1ZSkgPyBzcmNWYWx1ZSA6IG9ialZhbHVlO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBkZWZhdWx0cyA9IF8ucGFydGlhbFJpZ2h0KF8uYXNzaWduV2l0aCwgY3VzdG9taXplcik7XG4gICAgICpcbiAgICAgKiBkZWZhdWx0cyh7ICdhJzogMSB9LCB7ICdiJzogMiB9LCB7ICdhJzogMyB9KTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyIH1cbiAgICAgKi9cbiAgICB2YXIgYXNzaWduV2l0aCA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcikge1xuICAgICAgY29weU9iamVjdChzb3VyY2UsIGtleXMoc291cmNlKSwgb2JqZWN0LCBjdXN0b21pemVyKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gYHBhdGhzYCBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwYXRoc10gVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBwaWNrZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDMgfSB9LCA0XSB9O1xuICAgICAqXG4gICAgICogXy5hdChvYmplY3QsIFsnYVswXS5iLmMnLCAnYVsxXSddKTtcbiAgICAgKiAvLyA9PiBbMywgNF1cbiAgICAgKi9cbiAgICB2YXIgYXQgPSBmbGF0UmVzdChiYXNlQXQpO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgdGhhdCBpbmhlcml0cyBmcm9tIHRoZSBgcHJvdG90eXBlYCBvYmplY3QuIElmIGFcbiAgICAgKiBgcHJvcGVydGllc2Agb2JqZWN0IGlzIGdpdmVuLCBpdHMgb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXNcbiAgICAgKiBhcmUgYXNzaWduZWQgdG8gdGhlIGNyZWF0ZWQgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMy4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBwcm90b3R5cGUgVGhlIG9iamVjdCB0byBpbmhlcml0IGZyb20uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtwcm9wZXJ0aWVzXSBUaGUgcHJvcGVydGllcyB0byBhc3NpZ24gdG8gdGhlIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBTaGFwZSgpIHtcbiAgICAgKiAgIHRoaXMueCA9IDA7XG4gICAgICogICB0aGlzLnkgPSAwO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIENpcmNsZSgpIHtcbiAgICAgKiAgIFNoYXBlLmNhbGwodGhpcyk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogQ2lyY2xlLnByb3RvdHlwZSA9IF8uY3JlYXRlKFNoYXBlLnByb3RvdHlwZSwge1xuICAgICAqICAgJ2NvbnN0cnVjdG9yJzogQ2lyY2xlXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiB2YXIgY2lyY2xlID0gbmV3IENpcmNsZTtcbiAgICAgKiBjaXJjbGUgaW5zdGFuY2VvZiBDaXJjbGU7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogY2lyY2xlIGluc3RhbmNlb2YgU2hhcGU7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZShwcm90b3R5cGUsIHByb3BlcnRpZXMpIHtcbiAgICAgIHZhciByZXN1bHQgPSBiYXNlQ3JlYXRlKHByb3RvdHlwZSk7XG4gICAgICByZXR1cm4gcHJvcGVydGllcyA9PSBudWxsID8gcmVzdWx0IDogYmFzZUFzc2lnbihyZXN1bHQsIHByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFzc2lnbnMgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBvZiBzb3VyY2VcbiAgICAgKiBvYmplY3RzIHRvIHRoZSBkZXN0aW5hdGlvbiBvYmplY3QgZm9yIGFsbCBkZXN0aW5hdGlvbiBwcm9wZXJ0aWVzIHRoYXRcbiAgICAgKiByZXNvbHZlIHRvIGB1bmRlZmluZWRgLiBTb3VyY2Ugb2JqZWN0cyBhcmUgYXBwbGllZCBmcm9tIGxlZnQgdG8gcmlnaHQuXG4gICAgICogT25jZSBhIHByb3BlcnR5IGlzIHNldCwgYWRkaXRpb25hbCB2YWx1ZXMgb2YgdGhlIHNhbWUgcHJvcGVydHkgYXJlIGlnbm9yZWQuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uZGVmYXVsdHNEZWVwXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVmYXVsdHMoeyAnYSc6IDEgfSwgeyAnYic6IDIgfSwgeyAnYSc6IDMgfSk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gICAgICovXG4gICAgdmFyIGRlZmF1bHRzID0gYmFzZVJlc3QoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2VzKSB7XG4gICAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcblxuICAgICAgdmFyIGluZGV4ID0gLTE7XG4gICAgICB2YXIgbGVuZ3RoID0gc291cmNlcy5sZW5ndGg7XG4gICAgICB2YXIgZ3VhcmQgPSBsZW5ndGggPiAyID8gc291cmNlc1syXSA6IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgICAgICBsZW5ndGggPSAxO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgc291cmNlID0gc291cmNlc1tpbmRleF07XG4gICAgICAgIHZhciBwcm9wcyA9IGtleXNJbihzb3VyY2UpO1xuICAgICAgICB2YXIgcHJvcHNJbmRleCA9IC0xO1xuICAgICAgICB2YXIgcHJvcHNMZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKCsrcHJvcHNJbmRleCA8IHByb3BzTGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIGtleSA9IHByb3BzW3Byb3BzSW5kZXhdO1xuICAgICAgICAgIHZhciB2YWx1ZSA9IG9iamVjdFtrZXldO1xuXG4gICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgKGVxKHZhbHVlLCBvYmplY3RQcm90b1trZXldKSAmJiAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSB7XG4gICAgICAgICAgICBvYmplY3Rba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5kZWZhdWx0c2AgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgYXNzaWduc1xuICAgICAqIGRlZmF1bHQgcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMTAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uZGVmYXVsdHNcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kZWZhdWx0c0RlZXAoeyAnYSc6IHsgJ2InOiAyIH0gfSwgeyAnYSc6IHsgJ2InOiAxLCAnYyc6IDMgfSB9KTtcbiAgICAgKiAvLyA9PiB7ICdhJzogeyAnYic6IDIsICdjJzogMyB9IH1cbiAgICAgKi9cbiAgICB2YXIgZGVmYXVsdHNEZWVwID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xuICAgICAgYXJncy5wdXNoKHVuZGVmaW5lZCwgY3VzdG9tRGVmYXVsdHNNZXJnZSk7XG4gICAgICByZXR1cm4gYXBwbHkobWVyZ2VXaXRoLCB1bmRlZmluZWQsIGFyZ3MpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5maW5kYCBleGNlcHQgdGhhdCBpdCByZXR1cm5zIHRoZSBrZXkgb2YgdGhlIGZpcnN0XG4gICAgICogZWxlbWVudCBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgaW5zdGVhZCBvZiB0aGUgZWxlbWVudCBpdHNlbGYuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMS4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd8dW5kZWZpbmVkfSBSZXR1cm5zIHRoZSBrZXkgb2YgdGhlIG1hdGNoZWQgZWxlbWVudCxcbiAgICAgKiAgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0ge1xuICAgICAqICAgJ2Jhcm5leSc6ICB7ICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgICdmcmVkJzogICAgeyAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgJ3BlYmJsZXMnOiB7ICdhZ2UnOiAxLCAgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIH07XG4gICAgICpcbiAgICAgKiBfLmZpbmRLZXkodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8uYWdlIDwgNDA7IH0pO1xuICAgICAqIC8vID0+ICdiYXJuZXknIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZEtleSh1c2VycywgeyAnYWdlJzogMSwgJ2FjdGl2ZSc6IHRydWUgfSk7XG4gICAgICogLy8gPT4gJ3BlYmJsZXMnXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kS2V5KHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gJ2ZyZWQnXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRLZXkodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiAnYmFybmV5J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZpbmRLZXkob2JqZWN0LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiBiYXNlRmluZEtleShvYmplY3QsIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGJhc2VGb3JPd24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZEtleWAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGEgY29sbGVjdGlvbiBpbiB0aGUgb3Bwb3NpdGUgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd8dW5kZWZpbmVkfSBSZXR1cm5zIHRoZSBrZXkgb2YgdGhlIG1hdGNoZWQgZWxlbWVudCxcbiAgICAgKiAgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0ge1xuICAgICAqICAgJ2Jhcm5leSc6ICB7ICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgICdmcmVkJzogICAgeyAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgJ3BlYmJsZXMnOiB7ICdhZ2UnOiAxLCAgJ2FjdGl2ZSc6IHRydWUgfVxuICAgICAqIH07XG4gICAgICpcbiAgICAgKiBfLmZpbmRMYXN0S2V5KHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLmFnZSA8IDQwOyB9KTtcbiAgICAgKiAvLyA9PiByZXR1cm5zICdwZWJibGVzJyBhc3N1bWluZyBgXy5maW5kS2V5YCByZXR1cm5zICdiYXJuZXknXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZExhc3RLZXkodXNlcnMsIHsgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9KTtcbiAgICAgKiAvLyA9PiAnYmFybmV5J1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZExhc3RLZXkodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiAnZnJlZCdcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZExhc3RLZXkodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiAncGViYmxlcydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaW5kTGFzdEtleShvYmplY3QsIHByZWRpY2F0ZSkge1xuICAgICAgcmV0dXJuIGJhc2VGaW5kS2V5KG9iamVjdCwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgYmFzZUZvck93blJpZ2h0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyBvdmVyIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2YgYW5cbiAgICAgKiBvYmplY3QgYW5kIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgZWFjaCBwcm9wZXJ0eS4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBrZXksIG9iamVjdCkuIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdFxuICAgICAqIGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMy4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uZm9ySW5SaWdodFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5mb3JJbihuZXcgRm9vLCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICogICBjb25zb2xlLmxvZyhrZXkpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IExvZ3MgJ2EnLCAnYicsIHRoZW4gJ2MnIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZvckluKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbFxuICAgICAgICA/IG9iamVjdFxuICAgICAgICA6IGJhc2VGb3Iob2JqZWN0LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMyksIGtleXNJbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5mb3JJbmAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBwcm9wZXJ0aWVzIG9mXG4gICAgICogYG9iamVjdGAgaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uZm9ySW5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8uZm9ySW5SaWdodChuZXcgRm9vLCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICogICBjb25zb2xlLmxvZyhrZXkpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IExvZ3MgJ2MnLCAnYicsIHRoZW4gJ2EnIGFzc3VtaW5nIGBfLmZvckluYCBsb2dzICdhJywgJ2InLCB0aGVuICdjJy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JJblJpZ2h0KG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbFxuICAgICAgICA/IG9iamVjdFxuICAgICAgICA6IGJhc2VGb3JSaWdodChvYmplY3QsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAzKSwga2V5c0luKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyBvdmVyIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdCBhbmRcbiAgICAgKiBpbnZva2VzIGBpdGVyYXRlZWAgZm9yIGVhY2ggcHJvcGVydHkuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggdGhyZWVcbiAgICAgKiBhcmd1bWVudHM6ICh2YWx1ZSwga2V5LCBvYmplY3QpLiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uXG4gICAgICogZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjMuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmZvck93blJpZ2h0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmZvck93bihuZXcgRm9vLCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICogICBjb25zb2xlLmxvZyhrZXkpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IExvZ3MgJ2EnIHRoZW4gJ2InIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZvck93bihvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ICYmIGJhc2VGb3JPd24ob2JqZWN0LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZm9yT3duYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIHByb3BlcnRpZXMgb2ZcbiAgICAgKiBgb2JqZWN0YCBpbiB0aGUgb3Bwb3NpdGUgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBzZWUgXy5mb3JPd25cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8uZm9yT3duUmlnaHQobmV3IEZvbywgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgY29uc29sZS5sb2coa2V5KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBMb2dzICdiJyB0aGVuICdhJyBhc3N1bWluZyBgXy5mb3JPd25gIGxvZ3MgJ2EnIHRoZW4gJ2InLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZvck93blJpZ2h0KG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBvYmplY3QgJiYgYmFzZUZvck93blJpZ2h0KG9iamVjdCwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGZ1bmN0aW9uIHByb3BlcnR5IG5hbWVzIGZyb20gb3duIGVudW1lcmFibGUgcHJvcGVydGllc1xuICAgICAqIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgZnVuY3Rpb24gbmFtZXMuXG4gICAgICogQHNlZSBfLmZ1bmN0aW9uc0luXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IF8uY29uc3RhbnQoJ2EnKTtcbiAgICAgKiAgIHRoaXMuYiA9IF8uY29uc3RhbnQoJ2InKTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSBfLmNvbnN0YW50KCdjJyk7XG4gICAgICpcbiAgICAgKiBfLmZ1bmN0aW9ucyhuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYiddXG4gICAgICovXG4gICAgZnVuY3Rpb24gZnVuY3Rpb25zKG9iamVjdCkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gW10gOiBiYXNlRnVuY3Rpb25zKG9iamVjdCwga2V5cyhvYmplY3QpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGZ1bmN0aW9uIHByb3BlcnR5IG5hbWVzIGZyb20gb3duIGFuZCBpbmhlcml0ZWRcbiAgICAgKiBlbnVtZXJhYmxlIHByb3BlcnRpZXMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBuYW1lcy5cbiAgICAgKiBAc2VlIF8uZnVuY3Rpb25zXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IF8uY29uc3RhbnQoJ2EnKTtcbiAgICAgKiAgIHRoaXMuYiA9IF8uY29uc3RhbnQoJ2InKTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSBfLmNvbnN0YW50KCdjJyk7XG4gICAgICpcbiAgICAgKiBfLmZ1bmN0aW9uc0luKG5ldyBGb28pO1xuICAgICAqIC8vID0+IFsnYScsICdiJywgJ2MnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZ1bmN0aW9uc0luKG9iamVjdCkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gW10gOiBiYXNlRnVuY3Rpb25zKG9iamVjdCwga2V5c0luKG9iamVjdCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHZhbHVlIGF0IGBwYXRoYCBvZiBgb2JqZWN0YC4gSWYgdGhlIHJlc29sdmVkIHZhbHVlIGlzXG4gICAgICogYHVuZGVmaW5lZGAsIHRoZSBgZGVmYXVsdFZhbHVlYCBpcyByZXR1cm5lZCBpbiBpdHMgcGxhY2UuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy43LjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAgICogQHBhcmFtIHsqfSBbZGVmYXVsdFZhbHVlXSBUaGUgdmFsdWUgcmV0dXJuZWQgZm9yIGB1bmRlZmluZWRgIHJlc29sdmVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogMyB9IH1dIH07XG4gICAgICpcbiAgICAgKiBfLmdldChvYmplY3QsICdhWzBdLmIuYycpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8uZ2V0KG9iamVjdCwgWydhJywgJzAnLCAnYicsICdjJ10pO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8uZ2V0KG9iamVjdCwgJ2EuYi5jJywgJ2RlZmF1bHQnKTtcbiAgICAgKiAvLyA9PiAnZGVmYXVsdCdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXQob2JqZWN0LCBwYXRoLCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHZhciByZXN1bHQgPSBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IGJhc2VHZXQob2JqZWN0LCBwYXRoKTtcbiAgICAgIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRWYWx1ZSA6IHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHBhdGhgIGlzIGEgZGlyZWN0IHByb3BlcnR5IG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHBhdGhgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IHsgJ2InOiAyIH0gfTtcbiAgICAgKiB2YXIgb3RoZXIgPSBfLmNyZWF0ZSh7ICdhJzogXy5jcmVhdGUoeyAnYic6IDIgfSkgfSk7XG4gICAgICpcbiAgICAgKiBfLmhhcyhvYmplY3QsICdhJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5oYXMob2JqZWN0LCAnYS5iJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5oYXMob2JqZWN0LCBbJ2EnLCAnYiddKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmhhcyhvdGhlciwgJ2EnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhhcyhvYmplY3QsIHBhdGgpIHtcbiAgICAgIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBoYXNQYXRoKG9iamVjdCwgcGF0aCwgYmFzZUhhcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBwYXRoYCBpcyBhIGRpcmVjdCBvciBpbmhlcml0ZWQgcHJvcGVydHkgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgcGF0aGAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSBfLmNyZWF0ZSh7ICdhJzogXy5jcmVhdGUoeyAnYic6IDIgfSkgfSk7XG4gICAgICpcbiAgICAgKiBfLmhhc0luKG9iamVjdCwgJ2EnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmhhc0luKG9iamVjdCwgJ2EuYicpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaGFzSW4ob2JqZWN0LCBbJ2EnLCAnYiddKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmhhc0luKG9iamVjdCwgJ2InKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhhc0luKG9iamVjdCwgcGF0aCkge1xuICAgICAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGhhc1BhdGgob2JqZWN0LCBwYXRoLCBiYXNlSGFzSW4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIHRoZSBpbnZlcnRlZCBrZXlzIGFuZCB2YWx1ZXMgb2YgYG9iamVjdGAuXG4gICAgICogSWYgYG9iamVjdGAgY29udGFpbnMgZHVwbGljYXRlIHZhbHVlcywgc3Vic2VxdWVudCB2YWx1ZXMgb3ZlcndyaXRlXG4gICAgICogcHJvcGVydHkgYXNzaWdubWVudHMgb2YgcHJldmlvdXMgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuNy4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnZlcnQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGludmVydGVkIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMSB9O1xuICAgICAqXG4gICAgICogXy5pbnZlcnQob2JqZWN0KTtcbiAgICAgKiAvLyA9PiB7ICcxJzogJ2MnLCAnMic6ICdiJyB9XG4gICAgICovXG4gICAgdmFyIGludmVydCA9IGNyZWF0ZUludmVydGVyKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiZcbiAgICAgICAgICB0eXBlb2YgdmFsdWUudG9TdHJpbmcgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB2YWx1ZSA9IG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXN1bHRbdmFsdWVdID0ga2V5O1xuICAgIH0sIGNvbnN0YW50KGlkZW50aXR5KSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmludmVydGAgZXhjZXB0IHRoYXQgdGhlIGludmVydGVkIG9iamVjdCBpcyBnZW5lcmF0ZWRcbiAgICAgKiBmcm9tIHRoZSByZXN1bHRzIG9mIHJ1bm5pbmcgZWFjaCBlbGVtZW50IG9mIGBvYmplY3RgIHRocnUgYGl0ZXJhdGVlYC4gVGhlXG4gICAgICogY29ycmVzcG9uZGluZyBpbnZlcnRlZCB2YWx1ZSBvZiBlYWNoIGludmVydGVkIGtleSBpcyBhbiBhcnJheSBvZiBrZXlzXG4gICAgICogcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgdGhlIGludmVydGVkIHZhbHVlLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZFxuICAgICAqIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMS4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnZlcnQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBpbnZlcnRlZCBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDEgfTtcbiAgICAgKlxuICAgICAqIF8uaW52ZXJ0Qnkob2JqZWN0KTtcbiAgICAgKiAvLyA9PiB7ICcxJzogWydhJywgJ2MnXSwgJzInOiBbJ2InXSB9XG4gICAgICpcbiAgICAgKiBfLmludmVydEJ5KG9iamVjdCwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgKiAgIHJldHVybiAnZ3JvdXAnICsgdmFsdWU7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4geyAnZ3JvdXAxJzogWydhJywgJ2MnXSwgJ2dyb3VwMic6IFsnYiddIH1cbiAgICAgKi9cbiAgICB2YXIgaW52ZXJ0QnkgPSBjcmVhdGVJbnZlcnRlcihmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmXG4gICAgICAgICAgdHlwZW9mIHZhbHVlLnRvU3RyaW5nICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdmFsdWUgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocmVzdWx0LCB2YWx1ZSkpIHtcbiAgICAgICAgcmVzdWx0W3ZhbHVlXS5wdXNoKGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHRbdmFsdWVdID0gW2tleV07XG4gICAgICB9XG4gICAgfSwgZ2V0SXRlcmF0ZWUpO1xuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyB0aGUgbWV0aG9kIGF0IGBwYXRoYCBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIG1ldGhvZCB0byBpbnZva2UuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgdGhlIG1ldGhvZCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGludm9rZWQgbWV0aG9kLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IFsxLCAyLCAzLCA0XSB9IH1dIH07XG4gICAgICpcbiAgICAgKiBfLmludm9rZShvYmplY3QsICdhWzBdLmIuYy5zbGljZScsIDEsIDMpO1xuICAgICAqIC8vID0+IFsyLCAzXVxuICAgICAqL1xuICAgIHZhciBpbnZva2UgPSBiYXNlUmVzdChiYXNlSW52b2tlKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuIFNlZSB0aGVcbiAgICAgKiBbRVMgc3BlY10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LmtleXMpXG4gICAgICogZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8ua2V5cyhuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYiddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICpcbiAgICAgKiBfLmtleXMoJ2hpJyk7XG4gICAgICogLy8gPT4gWycwJywgJzEnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGtleXMob2JqZWN0KSB7XG4gICAgICByZXR1cm4gaXNBcnJheUxpa2Uob2JqZWN0KSA/IGFycmF5TGlrZUtleXMob2JqZWN0KSA6IGJhc2VLZXlzKG9iamVjdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5rZXlzSW4obmV3IEZvbyk7XG4gICAgICogLy8gPT4gWydhJywgJ2InLCAnYyddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgZnVuY3Rpb24ga2V5c0luKG9iamVjdCkge1xuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCwgdHJ1ZSkgOiBiYXNlS2V5c0luKG9iamVjdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLm1hcFZhbHVlc2A7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYW4gb2JqZWN0IHdpdGggdGhlXG4gICAgICogc2FtZSB2YWx1ZXMgYXMgYG9iamVjdGAgYW5kIGtleXMgZ2VuZXJhdGVkIGJ5IHJ1bm5pbmcgZWFjaCBvd24gZW51bWVyYWJsZVxuICAgICAqIHN0cmluZyBrZXllZCBwcm9wZXJ0eSBvZiBgb2JqZWN0YCB0aHJ1IGBpdGVyYXRlZWAuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwga2V5LCBvYmplY3QpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuOC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBvYmplY3QuXG4gICAgICogQHNlZSBfLm1hcFZhbHVlc1xuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLm1hcEtleXMoeyAnYSc6IDEsICdiJzogMiB9LCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICogICByZXR1cm4ga2V5ICsgdmFsdWU7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4geyAnYTEnOiAxLCAnYjInOiAyIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXBLZXlzKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgIGl0ZXJhdGVlID0gZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpO1xuXG4gICAgICBiYXNlRm9yT3duKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShyZXN1bHQsIGl0ZXJhdGVlKHZhbHVlLCBrZXksIG9iamVjdCksIHZhbHVlKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCB3aXRoIHRoZSBzYW1lIGtleXMgYXMgYG9iamVjdGAgYW5kIHZhbHVlcyBnZW5lcmF0ZWRcbiAgICAgKiBieSBydW5uaW5nIGVhY2ggb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnR5IG9mIGBvYmplY3RgIHRocnVcbiAgICAgKiBgaXRlcmF0ZWVgLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czpcbiAgICAgKiAodmFsdWUsIGtleSwgb2JqZWN0KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjQuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgb2JqZWN0LlxuICAgICAqIEBzZWUgXy5tYXBLZXlzXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IHtcbiAgICAgKiAgICdmcmVkJzogICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FnZSc6IDQwIH0sXG4gICAgICogICAncGViYmxlcyc6IHsgJ3VzZXInOiAncGViYmxlcycsICdhZ2UnOiAxIH1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5tYXBWYWx1ZXModXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8uYWdlOyB9KTtcbiAgICAgKiAvLyA9PiB7ICdmcmVkJzogNDAsICdwZWJibGVzJzogMSB9IChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLm1hcFZhbHVlcyh1c2VycywgJ2FnZScpO1xuICAgICAqIC8vID0+IHsgJ2ZyZWQnOiA0MCwgJ3BlYmJsZXMnOiAxIH0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXBWYWx1ZXMob2JqZWN0LCBpdGVyYXRlZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgICAgaXRlcmF0ZWUgPSBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMyk7XG5cbiAgICAgIGJhc2VGb3JPd24ob2JqZWN0LCBmdW5jdGlvbih2YWx1ZSwga2V5LCBvYmplY3QpIHtcbiAgICAgICAgYmFzZUFzc2lnblZhbHVlKHJlc3VsdCwga2V5LCBpdGVyYXRlZSh2YWx1ZSwga2V5LCBvYmplY3QpKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmFzc2lnbmAgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgbWVyZ2VzIG93biBhbmRcbiAgICAgKiBpbmhlcml0ZWQgZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBvZiBzb3VyY2Ugb2JqZWN0cyBpbnRvIHRoZVxuICAgICAqIGRlc3RpbmF0aW9uIG9iamVjdC4gU291cmNlIHByb3BlcnRpZXMgdGhhdCByZXNvbHZlIHRvIGB1bmRlZmluZWRgIGFyZVxuICAgICAqIHNraXBwZWQgaWYgYSBkZXN0aW5hdGlvbiB2YWx1ZSBleGlzdHMuIEFycmF5IGFuZCBwbGFpbiBvYmplY3QgcHJvcGVydGllc1xuICAgICAqIGFyZSBtZXJnZWQgcmVjdXJzaXZlbHkuIE90aGVyIG9iamVjdHMgYW5kIHZhbHVlIHR5cGVzIGFyZSBvdmVycmlkZGVuIGJ5XG4gICAgICogYXNzaWdubWVudC4gU291cmNlIG9iamVjdHMgYXJlIGFwcGxpZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LiBTdWJzZXF1ZW50XG4gICAgICogc291cmNlcyBvdmVyd3JpdGUgcHJvcGVydHkgYXNzaWdubWVudHMgb2YgcHJldmlvdXMgc291cmNlcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuNS4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gey4uLk9iamVjdH0gW3NvdXJjZXNdIFRoZSBzb3VyY2Ugb2JqZWN0cy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0ge1xuICAgICAqICAgJ2EnOiBbeyAnYic6IDIgfSwgeyAnZCc6IDQgfV1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogdmFyIG90aGVyID0ge1xuICAgICAqICAgJ2EnOiBbeyAnYyc6IDMgfSwgeyAnZSc6IDUgfV1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5tZXJnZShvYmplY3QsIG90aGVyKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogW3sgJ2InOiAyLCAnYyc6IDMgfSwgeyAnZCc6IDQsICdlJzogNSB9XSB9XG4gICAgICovXG4gICAgdmFyIG1lcmdlID0gY3JlYXRlQXNzaWduZXIoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4KSB7XG4gICAgICBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4KTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ubWVyZ2VgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgIHdoaWNoXG4gICAgICogaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBtZXJnZWQgdmFsdWVzIG9mIHRoZSBkZXN0aW5hdGlvbiBhbmQgc291cmNlXG4gICAgICogcHJvcGVydGllcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGAsIG1lcmdpbmcgaXMgaGFuZGxlZCBieSB0aGVcbiAgICAgKiBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBpbnZva2VkIHdpdGggc2l4IGFyZ3VtZW50czpcbiAgICAgKiAob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlLCBzdGFjaykuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IHNvdXJjZXMgVGhlIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGN1c3RvbWl6ZXIgVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUpIHtcbiAgICAgKiAgIGlmIChfLmlzQXJyYXkob2JqVmFsdWUpKSB7XG4gICAgICogICAgIHJldHVybiBvYmpWYWx1ZS5jb25jYXQoc3JjVmFsdWUpO1xuICAgICAqICAgfVxuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogWzFdLCAnYic6IFsyXSB9O1xuICAgICAqIHZhciBvdGhlciA9IHsgJ2EnOiBbM10sICdiJzogWzRdIH07XG4gICAgICpcbiAgICAgKiBfLm1lcmdlV2l0aChvYmplY3QsIG90aGVyLCBjdXN0b21pemVyKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogWzEsIDNdLCAnYic6IFsyLCA0XSB9XG4gICAgICovXG4gICAgdmFyIG1lcmdlV2l0aCA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcikge1xuICAgICAgYmFzZU1lcmdlKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcik7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8ucGlja2A7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIHRoZVxuICAgICAqIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydHkgcGF0aHMgb2YgYG9iamVjdGAgdGhhdCBhcmUgbm90IG9taXR0ZWQuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgY29uc2lkZXJhYmx5IHNsb3dlciB0aGFuIGBfLnBpY2tgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi4oc3RyaW5nfHN0cmluZ1tdKX0gW3BhdGhzXSBUaGUgcHJvcGVydHkgcGF0aHMgdG8gb21pdC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogJzInLCAnYyc6IDMgfTtcbiAgICAgKlxuICAgICAqIF8ub21pdChvYmplY3QsIFsnYScsICdjJ10pO1xuICAgICAqIC8vID0+IHsgJ2InOiAnMicgfVxuICAgICAqL1xuICAgIHZhciBvbWl0ID0gZmxhdFJlc3QoZnVuY3Rpb24ob2JqZWN0LCBwYXRocykge1xuICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICB2YXIgaXNEZWVwID0gZmFsc2U7XG4gICAgICBwYXRocyA9IGFycmF5TWFwKHBhdGhzLCBmdW5jdGlvbihwYXRoKSB7XG4gICAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuICAgICAgICBpc0RlZXAgfHwgKGlzRGVlcCA9IHBhdGgubGVuZ3RoID4gMSk7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgfSk7XG4gICAgICBjb3B5T2JqZWN0KG9iamVjdCwgZ2V0QWxsS2V5c0luKG9iamVjdCksIHJlc3VsdCk7XG4gICAgICBpZiAoaXNEZWVwKSB7XG4gICAgICAgIHJlc3VsdCA9IGJhc2VDbG9uZShyZXN1bHQsIENMT05FX0RFRVBfRkxBRyB8IENMT05FX0ZMQVRfRkxBRyB8IENMT05FX1NZTUJPTFNfRkxBRywgY3VzdG9tT21pdENsb25lKTtcbiAgICAgIH1cbiAgICAgIHZhciBsZW5ndGggPSBwYXRocy5sZW5ndGg7XG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgYmFzZVVuc2V0KHJlc3VsdCwgcGF0aHNbbGVuZ3RoXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLnBpY2tCeWA7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mXG4gICAgICogdGhlIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2YgYG9iamVjdGAgdGhhdFxuICAgICAqIGBwcmVkaWNhdGVgIGRvZXNuJ3QgcmV0dXJuIHRydXRoeSBmb3IuIFRoZSBwcmVkaWNhdGUgaXMgaW52b2tlZCB3aXRoIHR3b1xuICAgICAqIGFyZ3VtZW50czogKHZhbHVlLCBrZXkpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgcHJvcGVydHkuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6ICcyJywgJ2MnOiAzIH07XG4gICAgICpcbiAgICAgKiBfLm9taXRCeShvYmplY3QsIF8uaXNOdW1iZXIpO1xuICAgICAqIC8vID0+IHsgJ2InOiAnMicgfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG9taXRCeShvYmplY3QsIHByZWRpY2F0ZSkge1xuICAgICAgcmV0dXJuIHBpY2tCeShvYmplY3QsIG5lZ2F0ZShnZXRJdGVyYXRlZShwcmVkaWNhdGUpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2YgdGhlIHBpY2tlZCBgb2JqZWN0YCBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi4oc3RyaW5nfHN0cmluZ1tdKX0gW3BhdGhzXSBUaGUgcHJvcGVydHkgcGF0aHMgdG8gcGljay5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogJzInLCAnYyc6IDMgfTtcbiAgICAgKlxuICAgICAqIF8ucGljayhvYmplY3QsIFsnYScsICdjJ10pO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYyc6IDMgfVxuICAgICAqL1xuICAgIHZhciBwaWNrID0gZmxhdFJlc3QoZnVuY3Rpb24ob2JqZWN0LCBwYXRocykge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8ge30gOiBiYXNlUGljayhvYmplY3QsIHBhdGhzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIHRoZSBgb2JqZWN0YCBwcm9wZXJ0aWVzIGBwcmVkaWNhdGVgIHJldHVybnNcbiAgICAgKiB0cnV0aHkgZm9yLiBUaGUgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnRzOiAodmFsdWUsIGtleSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBwcm9wZXJ0eS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogJzInLCAnYyc6IDMgfTtcbiAgICAgKlxuICAgICAqIF8ucGlja0J5KG9iamVjdCwgXy5pc051bWJlcik7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdjJzogMyB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gcGlja0J5KG9iamVjdCwgcHJlZGljYXRlKSB7XG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgdmFyIHByb3BzID0gYXJyYXlNYXAoZ2V0QWxsS2V5c0luKG9iamVjdCksIGZ1bmN0aW9uKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIFtwcm9wXTtcbiAgICAgIH0pO1xuICAgICAgcHJlZGljYXRlID0gZ2V0SXRlcmF0ZWUocHJlZGljYXRlKTtcbiAgICAgIHJldHVybiBiYXNlUGlja0J5KG9iamVjdCwgcHJvcHMsIGZ1bmN0aW9uKHZhbHVlLCBwYXRoKSB7XG4gICAgICAgIHJldHVybiBwcmVkaWNhdGUodmFsdWUsIHBhdGhbMF0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5nZXRgIGV4Y2VwdCB0aGF0IGlmIHRoZSByZXNvbHZlZCB2YWx1ZSBpcyBhXG4gICAgICogZnVuY3Rpb24gaXQncyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIGl0cyBwYXJlbnQgb2JqZWN0IGFuZFxuICAgICAqIGl0cyByZXN1bHQgaXMgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byByZXNvbHZlLlxuICAgICAqIEBwYXJhbSB7Kn0gW2RlZmF1bHRWYWx1ZV0gVGhlIHZhbHVlIHJldHVybmVkIGZvciBgdW5kZWZpbmVkYCByZXNvbHZlZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYzEnOiAzLCAnYzInOiBfLmNvbnN0YW50KDQpIH0gfV0gfTtcbiAgICAgKlxuICAgICAqIF8ucmVzdWx0KG9iamVjdCwgJ2FbMF0uYi5jMScpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8ucmVzdWx0KG9iamVjdCwgJ2FbMF0uYi5jMicpO1xuICAgICAqIC8vID0+IDRcbiAgICAgKlxuICAgICAqIF8ucmVzdWx0KG9iamVjdCwgJ2FbMF0uYi5jMycsICdkZWZhdWx0Jyk7XG4gICAgICogLy8gPT4gJ2RlZmF1bHQnXG4gICAgICpcbiAgICAgKiBfLnJlc3VsdChvYmplY3QsICdhWzBdLmIuYzMnLCBfLmNvbnN0YW50KCdkZWZhdWx0JykpO1xuICAgICAqIC8vID0+ICdkZWZhdWx0J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlc3VsdChvYmplY3QsIHBhdGgsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIGxvb3AgaXMgZW50ZXJlZCB3aGVuIHBhdGggaXMgZW1wdHkuXG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICBsZW5ndGggPSAxO1xuICAgICAgICBvYmplY3QgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdFt0b0tleShwYXRoW2luZGV4XSldO1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGluZGV4ID0gbGVuZ3RoO1xuICAgICAgICAgIHZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIG9iamVjdCA9IGlzRnVuY3Rpb24odmFsdWUpID8gdmFsdWUuY2FsbChvYmplY3QpIDogdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHZhbHVlIGF0IGBwYXRoYCBvZiBgb2JqZWN0YC4gSWYgYSBwb3J0aW9uIG9mIGBwYXRoYCBkb2Vzbid0IGV4aXN0LFxuICAgICAqIGl0J3MgY3JlYXRlZC4gQXJyYXlzIGFyZSBjcmVhdGVkIGZvciBtaXNzaW5nIGluZGV4IHByb3BlcnRpZXMgd2hpbGUgb2JqZWN0c1xuICAgICAqIGFyZSBjcmVhdGVkIGZvciBhbGwgb3RoZXIgbWlzc2luZyBwcm9wZXJ0aWVzLiBVc2UgYF8uc2V0V2l0aGAgdG8gY3VzdG9taXplXG4gICAgICogYHBhdGhgIGNyZWF0aW9uLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy43LjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDMgfSB9XSB9O1xuICAgICAqXG4gICAgICogXy5zZXQob2JqZWN0LCAnYVswXS5iLmMnLCA0KTtcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QuYVswXS5iLmMpO1xuICAgICAqIC8vID0+IDRcbiAgICAgKlxuICAgICAqIF8uc2V0KG9iamVjdCwgWyd4JywgJzAnLCAneScsICd6J10sIDUpO1xuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdC54WzBdLnkueik7XG4gICAgICogLy8gPT4gNVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNldChvYmplY3QsIHBhdGgsIHZhbHVlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlU2V0KG9iamVjdCwgcGF0aCwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc2V0YCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgdG8gcHJvZHVjZSB0aGUgb2JqZWN0cyBvZiBgcGF0aGAuICBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYFxuICAgICAqIHBhdGggY3JlYXRpb24gaXMgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgaW52b2tlZFxuICAgICAqIHdpdGggdGhyZWUgYXJndW1lbnRzOiAobnNWYWx1ZSwga2V5LCBuc09iamVjdCkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXQuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0ge307XG4gICAgICpcbiAgICAgKiBfLnNldFdpdGgob2JqZWN0LCAnWzBdWzFdJywgJ2EnLCBPYmplY3QpO1xuICAgICAqIC8vID0+IHsgJzAnOiB7ICcxJzogJ2EnIH0gfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNldFdpdGgob2JqZWN0LCBwYXRoLCB2YWx1ZSwgY3VzdG9taXplcikge1xuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogYmFzZVNldChvYmplY3QsIHBhdGgsIHZhbHVlLCBjdXN0b21pemVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZC12YWx1ZSBwYWlycyBmb3IgYG9iamVjdGBcbiAgICAgKiB3aGljaCBjYW4gYmUgY29uc3VtZWQgYnkgYF8uZnJvbVBhaXJzYC4gSWYgYG9iamVjdGAgaXMgYSBtYXAgb3Igc2V0LCBpdHNcbiAgICAgKiBlbnRyaWVzIGFyZSByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBhbGlhcyBlbnRyaWVzXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGtleS12YWx1ZSBwYWlycy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8udG9QYWlycyhuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbWydhJywgMV0sIFsnYicsIDJdXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIHZhciB0b1BhaXJzID0gY3JlYXRlVG9QYWlycyhrZXlzKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQtdmFsdWUgcGFpcnNcbiAgICAgKiBmb3IgYG9iamVjdGAgd2hpY2ggY2FuIGJlIGNvbnN1bWVkIGJ5IGBfLmZyb21QYWlyc2AuIElmIGBvYmplY3RgIGlzIGEgbWFwXG4gICAgICogb3Igc2V0LCBpdHMgZW50cmllcyBhcmUgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAYWxpYXMgZW50cmllc0luXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGtleS12YWx1ZSBwYWlycy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8udG9QYWlyc0luKG5ldyBGb28pO1xuICAgICAqIC8vID0+IFtbJ2EnLCAxXSwgWydiJywgMl0sIFsnYycsIDNdXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIHZhciB0b1BhaXJzSW4gPSBjcmVhdGVUb1BhaXJzKGtleXNJbik7XG5cbiAgICAvKipcbiAgICAgKiBBbiBhbHRlcm5hdGl2ZSB0byBgXy5yZWR1Y2VgOyB0aGlzIG1ldGhvZCB0cmFuc2Zvcm1zIGBvYmplY3RgIHRvIGEgbmV3XG4gICAgICogYGFjY3VtdWxhdG9yYCBvYmplY3Qgd2hpY2ggaXMgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGVhY2ggb2YgaXRzIG93blxuICAgICAqIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgdGhydSBgaXRlcmF0ZWVgLCB3aXRoIGVhY2ggaW52b2NhdGlvblxuICAgICAqIHBvdGVudGlhbGx5IG11dGF0aW5nIHRoZSBgYWNjdW11bGF0b3JgIG9iamVjdC4gSWYgYGFjY3VtdWxhdG9yYCBpcyBub3RcbiAgICAgKiBwcm92aWRlZCwgYSBuZXcgb2JqZWN0IHdpdGggdGhlIHNhbWUgYFtbUHJvdG90eXBlXV1gIHdpbGwgYmUgdXNlZC4gVGhlXG4gICAgICogaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIGZvdXIgYXJndW1lbnRzOiAoYWNjdW11bGF0b3IsIHZhbHVlLCBrZXksIG9iamVjdCkuXG4gICAgICogSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMy4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbYWNjdW11bGF0b3JdIFRoZSBjdXN0b20gYWNjdW11bGF0b3IgdmFsdWUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRyYW5zZm9ybShbMiwgMywgNF0sIGZ1bmN0aW9uKHJlc3VsdCwgbikge1xuICAgICAqICAgcmVzdWx0LnB1c2gobiAqPSBuKTtcbiAgICAgKiAgIHJldHVybiBuICUgMiA9PSAwO1xuICAgICAqIH0sIFtdKTtcbiAgICAgKiAvLyA9PiBbNCwgOV1cbiAgICAgKlxuICAgICAqIF8udHJhbnNmb3JtKHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMSB9LCBmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgKiAgIChyZXN1bHRbdmFsdWVdIHx8IChyZXN1bHRbdmFsdWVdID0gW10pKS5wdXNoKGtleSk7XG4gICAgICogfSwge30pO1xuICAgICAqIC8vID0+IHsgJzEnOiBbJ2EnLCAnYyddLCAnMic6IFsnYiddIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm0ob2JqZWN0LCBpdGVyYXRlZSwgYWNjdW11bGF0b3IpIHtcbiAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkob2JqZWN0KSxcbiAgICAgICAgICBpc0Fyckxpa2UgPSBpc0FyciB8fCBpc0J1ZmZlcihvYmplY3QpIHx8IGlzVHlwZWRBcnJheShvYmplY3QpO1xuXG4gICAgICBpdGVyYXRlZSA9IGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCA0KTtcbiAgICAgIGlmIChhY2N1bXVsYXRvciA9PSBudWxsKSB7XG4gICAgICAgIHZhciBDdG9yID0gb2JqZWN0ICYmIG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgICAgICAgaWYgKGlzQXJyTGlrZSkge1xuICAgICAgICAgIGFjY3VtdWxhdG9yID0gaXNBcnIgPyBuZXcgQ3RvciA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgICBhY2N1bXVsYXRvciA9IGlzRnVuY3Rpb24oQ3RvcikgPyBiYXNlQ3JlYXRlKGdldFByb3RvdHlwZShvYmplY3QpKSA6IHt9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGFjY3VtdWxhdG9yID0ge307XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIChpc0Fyckxpa2UgPyBhcnJheUVhY2ggOiBiYXNlRm9yT3duKShvYmplY3QsIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgb2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBpdGVyYXRlZShhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBvYmplY3QpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgcHJvcGVydHkgYXQgYHBhdGhgIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gdW5zZXQuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBwcm9wZXJ0eSBpcyBkZWxldGVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogNyB9IH1dIH07XG4gICAgICogXy51bnNldChvYmplY3QsICdhWzBdLmIuYycpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdCk7XG4gICAgICogLy8gPT4geyAnYSc6IFt7ICdiJzoge30gfV0gfTtcbiAgICAgKlxuICAgICAqIF8udW5zZXQob2JqZWN0LCBbJ2EnLCAnMCcsICdiJywgJ2MnXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2cob2JqZWN0KTtcbiAgICAgKiAvLyA9PiB7ICdhJzogW3sgJ2InOiB7fSB9XSB9O1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuc2V0KG9iamVjdCwgcGF0aCkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdHJ1ZSA6IGJhc2VVbnNldChvYmplY3QsIHBhdGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc2V0YCBleGNlcHQgdGhhdCBhY2NlcHRzIGB1cGRhdGVyYCB0byBwcm9kdWNlIHRoZVxuICAgICAqIHZhbHVlIHRvIHNldC4gVXNlIGBfLnVwZGF0ZVdpdGhgIHRvIGN1c3RvbWl6ZSBgcGF0aGAgY3JlYXRpb24uIFRoZSBgdXBkYXRlcmBcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC42LjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHVwZGF0ZXIgVGhlIGZ1bmN0aW9uIHRvIHByb2R1Y2UgdGhlIHVwZGF0ZWQgdmFsdWUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiAzIH0gfV0gfTtcbiAgICAgKlxuICAgICAqIF8udXBkYXRlKG9iamVjdCwgJ2FbMF0uYi5jJywgZnVuY3Rpb24obikgeyByZXR1cm4gbiAqIG47IH0pO1xuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdC5hWzBdLmIuYyk7XG4gICAgICogLy8gPT4gOVxuICAgICAqXG4gICAgICogXy51cGRhdGUob2JqZWN0LCAneFswXS55LnonLCBmdW5jdGlvbihuKSB7IHJldHVybiBuID8gbiArIDEgOiAwOyB9KTtcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QueFswXS55LnopO1xuICAgICAqIC8vID0+IDBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1cGRhdGUob2JqZWN0LCBwYXRoLCB1cGRhdGVyKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlVXBkYXRlKG9iamVjdCwgcGF0aCwgY2FzdEZ1bmN0aW9uKHVwZGF0ZXIpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVwZGF0ZWAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIG9iamVjdHMgb2YgYHBhdGhgLiAgSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGBcbiAgICAgKiBwYXRoIGNyZWF0aW9uIGlzIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKG5zVmFsdWUsIGtleSwgbnNPYmplY3QpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC42LjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHVwZGF0ZXIgVGhlIGZ1bmN0aW9uIHRvIHByb2R1Y2UgdGhlIHVwZGF0ZWQgdmFsdWUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7fTtcbiAgICAgKlxuICAgICAqIF8udXBkYXRlV2l0aChvYmplY3QsICdbMF1bMV0nLCBfLmNvbnN0YW50KCdhJyksIE9iamVjdCk7XG4gICAgICogLy8gPT4geyAnMCc6IHsgJzEnOiAnYScgfSB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gdXBkYXRlV2l0aChvYmplY3QsIHBhdGgsIHVwZGF0ZXIsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IG9iamVjdCA6IGJhc2VVcGRhdGUob2JqZWN0LCBwYXRoLCBjYXN0RnVuY3Rpb24odXBkYXRlciksIGN1c3RvbWl6ZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0eSB2YWx1ZXMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLnZhbHVlcyhuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbMSwgMl0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKlxuICAgICAqIF8udmFsdWVzKCdoaScpO1xuICAgICAqIC8vID0+IFsnaCcsICdpJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB2YWx1ZXMob2JqZWN0KSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBbXSA6IGJhc2VWYWx1ZXMob2JqZWN0LCBrZXlzKG9iamVjdCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnR5XG4gICAgICogdmFsdWVzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy52YWx1ZXNJbihuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM10gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB2YWx1ZXNJbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IFtdIDogYmFzZVZhbHVlcyhvYmplY3QsIGtleXNJbihvYmplY3QpKTtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDbGFtcHMgYG51bWJlcmAgd2l0aGluIHRoZSBpbmNsdXNpdmUgYGxvd2VyYCBhbmQgYHVwcGVyYCBib3VuZHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTnVtYmVyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlciBUaGUgbnVtYmVyIHRvIGNsYW1wLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbG93ZXJdIFRoZSBsb3dlciBib3VuZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdXBwZXIgVGhlIHVwcGVyIGJvdW5kLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNsYW1wZWQgbnVtYmVyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNsYW1wKC0xMCwgLTUsIDUpO1xuICAgICAqIC8vID0+IC01XG4gICAgICpcbiAgICAgKiBfLmNsYW1wKDEwLCAtNSwgNSk7XG4gICAgICogLy8gPT4gNVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsYW1wKG51bWJlciwgbG93ZXIsIHVwcGVyKSB7XG4gICAgICBpZiAodXBwZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB1cHBlciA9IGxvd2VyO1xuICAgICAgICBsb3dlciA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGlmICh1cHBlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHVwcGVyID0gdG9OdW1iZXIodXBwZXIpO1xuICAgICAgICB1cHBlciA9IHVwcGVyID09PSB1cHBlciA/IHVwcGVyIDogMDtcbiAgICAgIH1cbiAgICAgIGlmIChsb3dlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGxvd2VyID0gdG9OdW1iZXIobG93ZXIpO1xuICAgICAgICBsb3dlciA9IGxvd2VyID09PSBsb3dlciA/IGxvd2VyIDogMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlQ2xhbXAodG9OdW1iZXIobnVtYmVyKSwgbG93ZXIsIHVwcGVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYG5gIGlzIGJldHdlZW4gYHN0YXJ0YCBhbmQgdXAgdG8sIGJ1dCBub3QgaW5jbHVkaW5nLCBgZW5kYC4gSWZcbiAgICAgKiBgZW5kYCBpcyBub3Qgc3BlY2lmaWVkLCBpdCdzIHNldCB0byBgc3RhcnRgIHdpdGggYHN0YXJ0YCB0aGVuIHNldCB0byBgMGAuXG4gICAgICogSWYgYHN0YXJ0YCBpcyBncmVhdGVyIHRoYW4gYGVuZGAgdGhlIHBhcmFtcyBhcmUgc3dhcHBlZCB0byBzdXBwb3J0XG4gICAgICogbmVnYXRpdmUgcmFuZ2VzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMy4wXG4gICAgICogQGNhdGVnb3J5IE51bWJlclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgVGhlIG51bWJlciB0byBjaGVjay5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZCBUaGUgZW5kIG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG51bWJlcmAgaXMgaW4gdGhlIHJhbmdlLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQHNlZSBfLnJhbmdlLCBfLnJhbmdlUmlnaHRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pblJhbmdlKDMsIDIsIDQpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSg0LCA4KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmluUmFuZ2UoNCwgMik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSgyLCAyKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pblJhbmdlKDEuMiwgMik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pblJhbmdlKDUuMiwgNCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSgtMywgLTIsIC02KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5SYW5nZShudW1iZXIsIHN0YXJ0LCBlbmQpIHtcbiAgICAgIHN0YXJ0ID0gdG9GaW5pdGUoc3RhcnQpO1xuICAgICAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGVuZCA9IHN0YXJ0O1xuICAgICAgICBzdGFydCA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbmQgPSB0b0Zpbml0ZShlbmQpO1xuICAgICAgfVxuICAgICAgbnVtYmVyID0gdG9OdW1iZXIobnVtYmVyKTtcbiAgICAgIHJldHVybiBiYXNlSW5SYW5nZShudW1iZXIsIHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2R1Y2VzIGEgcmFuZG9tIG51bWJlciBiZXR3ZWVuIHRoZSBpbmNsdXNpdmUgYGxvd2VyYCBhbmQgYHVwcGVyYCBib3VuZHMuXG4gICAgICogSWYgb25seSBvbmUgYXJndW1lbnQgaXMgcHJvdmlkZWQgYSBudW1iZXIgYmV0d2VlbiBgMGAgYW5kIHRoZSBnaXZlbiBudW1iZXJcbiAgICAgKiBpcyByZXR1cm5lZC4gSWYgYGZsb2F0aW5nYCBpcyBgdHJ1ZWAsIG9yIGVpdGhlciBgbG93ZXJgIG9yIGB1cHBlcmAgYXJlXG4gICAgICogZmxvYXRzLCBhIGZsb2F0aW5nLXBvaW50IG51bWJlciBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIGFuIGludGVnZXIuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogSmF2YVNjcmlwdCBmb2xsb3dzIHRoZSBJRUVFLTc1NCBzdGFuZGFyZCBmb3IgcmVzb2x2aW5nXG4gICAgICogZmxvYXRpbmctcG9pbnQgdmFsdWVzIHdoaWNoIGNhbiBwcm9kdWNlIHVuZXhwZWN0ZWQgcmVzdWx0cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjcuMFxuICAgICAqIEBjYXRlZ29yeSBOdW1iZXJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xvd2VyPTBdIFRoZSBsb3dlciBib3VuZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3VwcGVyPTFdIFRoZSB1cHBlciBib3VuZC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmbG9hdGluZ10gU3BlY2lmeSByZXR1cm5pbmcgYSBmbG9hdGluZy1wb2ludCBudW1iZXIuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgcmFuZG9tIG51bWJlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yYW5kb20oMCwgNSk7XG4gICAgICogLy8gPT4gYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDVcbiAgICAgKlxuICAgICAqIF8ucmFuZG9tKDUpO1xuICAgICAqIC8vID0+IGFsc28gYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDVcbiAgICAgKlxuICAgICAqIF8ucmFuZG9tKDUsIHRydWUpO1xuICAgICAqIC8vID0+IGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyIGJldHdlZW4gMCBhbmQgNVxuICAgICAqXG4gICAgICogXy5yYW5kb20oMS4yLCA1LjIpO1xuICAgICAqIC8vID0+IGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyIGJldHdlZW4gMS4yIGFuZCA1LjJcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByYW5kb20obG93ZXIsIHVwcGVyLCBmbG9hdGluZykge1xuICAgICAgaWYgKGZsb2F0aW5nICYmIHR5cGVvZiBmbG9hdGluZyAhPSAnYm9vbGVhbicgJiYgaXNJdGVyYXRlZUNhbGwobG93ZXIsIHVwcGVyLCBmbG9hdGluZykpIHtcbiAgICAgICAgdXBwZXIgPSBmbG9hdGluZyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGlmIChmbG9hdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdXBwZXIgPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgZmxvYXRpbmcgPSB1cHBlcjtcbiAgICAgICAgICB1cHBlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgbG93ZXIgPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgZmxvYXRpbmcgPSBsb3dlcjtcbiAgICAgICAgICBsb3dlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGxvd2VyID09PSB1bmRlZmluZWQgJiYgdXBwZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsb3dlciA9IDA7XG4gICAgICAgIHVwcGVyID0gMTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBsb3dlciA9IHRvRmluaXRlKGxvd2VyKTtcbiAgICAgICAgaWYgKHVwcGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB1cHBlciA9IGxvd2VyO1xuICAgICAgICAgIGxvd2VyID0gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cHBlciA9IHRvRmluaXRlKHVwcGVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGxvd2VyID4gdXBwZXIpIHtcbiAgICAgICAgdmFyIHRlbXAgPSBsb3dlcjtcbiAgICAgICAgbG93ZXIgPSB1cHBlcjtcbiAgICAgICAgdXBwZXIgPSB0ZW1wO1xuICAgICAgfVxuICAgICAgaWYgKGZsb2F0aW5nIHx8IGxvd2VyICUgMSB8fCB1cHBlciAlIDEpIHtcbiAgICAgICAgdmFyIHJhbmQgPSBuYXRpdmVSYW5kb20oKTtcbiAgICAgICAgcmV0dXJuIG5hdGl2ZU1pbihsb3dlciArIChyYW5kICogKHVwcGVyIC0gbG93ZXIgKyBmcmVlUGFyc2VGbG9hdCgnMWUtJyArICgocmFuZCArICcnKS5sZW5ndGggLSAxKSkpKSwgdXBwZXIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VSYW5kb20obG93ZXIsIHVwcGVyKTtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBbY2FtZWwgY2FzZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ2FtZWxDYXNlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNhbWVsIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5jYW1lbENhc2UoJ0ZvbyBCYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vQmFyJ1xuICAgICAqXG4gICAgICogXy5jYW1lbENhc2UoJy0tZm9vLWJhci0tJyk7XG4gICAgICogLy8gPT4gJ2Zvb0JhcidcbiAgICAgKlxuICAgICAqIF8uY2FtZWxDYXNlKCdfX0ZPT19CQVJfXycpO1xuICAgICAqIC8vID0+ICdmb29CYXInXG4gICAgICovXG4gICAgdmFyIGNhbWVsQ2FzZSA9IGNyZWF0ZUNvbXBvdW5kZXIoZnVuY3Rpb24ocmVzdWx0LCB3b3JkLCBpbmRleCkge1xuICAgICAgd29yZCA9IHdvcmQudG9Mb3dlckNhc2UoKTtcbiAgICAgIHJldHVybiByZXN1bHQgKyAoaW5kZXggPyBjYXBpdGFsaXplKHdvcmQpIDogd29yZCk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIGBzdHJpbmdgIHRvIHVwcGVyIGNhc2UgYW5kIHRoZSByZW1haW5pbmdcbiAgICAgKiB0byBsb3dlciBjYXNlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNhcGl0YWxpemUuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY2FwaXRhbGl6ZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNhcGl0YWxpemUoJ0ZSRUQnKTtcbiAgICAgKiAvLyA9PiAnRnJlZCdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjYXBpdGFsaXplKHN0cmluZykge1xuICAgICAgcmV0dXJuIHVwcGVyRmlyc3QodG9TdHJpbmcoc3RyaW5nKS50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWJ1cnJzIGBzdHJpbmdgIGJ5IGNvbnZlcnRpbmdcbiAgICAgKiBbTGF0aW4tMSBTdXBwbGVtZW50XShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MYXRpbi0xX1N1cHBsZW1lbnRfKFVuaWNvZGVfYmxvY2spI0NoYXJhY3Rlcl90YWJsZSlcbiAgICAgKiBhbmQgW0xhdGluIEV4dGVuZGVkLUFdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xhdGluX0V4dGVuZGVkLUEpXG4gICAgICogbGV0dGVycyB0byBiYXNpYyBMYXRpbiBsZXR0ZXJzIGFuZCByZW1vdmluZ1xuICAgICAqIFtjb21iaW5pbmcgZGlhY3JpdGljYWwgbWFya3NdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NvbWJpbmluZ19EaWFjcml0aWNhbF9NYXJrcykuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gZGVidXJyLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGRlYnVycmVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kZWJ1cnIoJ2TDqWrDoCB2dScpO1xuICAgICAqIC8vID0+ICdkZWphIHZ1J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRlYnVycihzdHJpbmcpIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICByZXR1cm4gc3RyaW5nICYmIHN0cmluZy5yZXBsYWNlKHJlTGF0aW4sIGRlYnVyckxldHRlcikucmVwbGFjZShyZUNvbWJvTWFyaywgJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgc3RyaW5nYCBlbmRzIHdpdGggdGhlIGdpdmVuIHRhcmdldCBzdHJpbmcuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3RhcmdldF0gVGhlIHN0cmluZyB0byBzZWFyY2ggZm9yLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcG9zaXRpb249c3RyaW5nLmxlbmd0aF0gVGhlIHBvc2l0aW9uIHRvIHNlYXJjaCB1cCB0by5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHN0cmluZ2AgZW5kcyB3aXRoIGB0YXJnZXRgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZW5kc1dpdGgoJ2FiYycsICdjJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5lbmRzV2l0aCgnYWJjJywgJ2InKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5lbmRzV2l0aCgnYWJjJywgJ2InLCAyKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gZW5kc1dpdGgoc3RyaW5nLCB0YXJnZXQsIHBvc2l0aW9uKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgdGFyZ2V0ID0gYmFzZVRvU3RyaW5nKHRhcmdldCk7XG5cbiAgICAgIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbiA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gbGVuZ3RoXG4gICAgICAgIDogYmFzZUNsYW1wKHRvSW50ZWdlcihwb3NpdGlvbiksIDAsIGxlbmd0aCk7XG5cbiAgICAgIHZhciBlbmQgPSBwb3NpdGlvbjtcbiAgICAgIHBvc2l0aW9uIC09IHRhcmdldC5sZW5ndGg7XG4gICAgICByZXR1cm4gcG9zaXRpb24gPj0gMCAmJiBzdHJpbmcuc2xpY2UocG9zaXRpb24sIGVuZCkgPT0gdGFyZ2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIHRoZSBjaGFyYWN0ZXJzIFwiJlwiLCBcIjxcIiwgXCI+XCIsICdcIicsIGFuZCBcIidcIiBpbiBgc3RyaW5nYCB0byB0aGVpclxuICAgICAqIGNvcnJlc3BvbmRpbmcgSFRNTCBlbnRpdGllcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBObyBvdGhlciBjaGFyYWN0ZXJzIGFyZSBlc2NhcGVkLiBUbyBlc2NhcGUgYWRkaXRpb25hbFxuICAgICAqIGNoYXJhY3RlcnMgdXNlIGEgdGhpcmQtcGFydHkgbGlicmFyeSBsaWtlIFtfaGVfXShodHRwczovL210aHMuYmUvaGUpLlxuICAgICAqXG4gICAgICogVGhvdWdoIHRoZSBcIj5cIiBjaGFyYWN0ZXIgaXMgZXNjYXBlZCBmb3Igc3ltbWV0cnksIGNoYXJhY3RlcnMgbGlrZVxuICAgICAqIFwiPlwiIGFuZCBcIi9cIiBkb24ndCBuZWVkIGVzY2FwaW5nIGluIEhUTUwgYW5kIGhhdmUgbm8gc3BlY2lhbCBtZWFuaW5nXG4gICAgICogdW5sZXNzIHRoZXkncmUgcGFydCBvZiBhIHRhZyBvciB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUuIFNlZVxuICAgICAqIFtNYXRoaWFzIEJ5bmVucydzIGFydGljbGVdKGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9hbWJpZ3VvdXMtYW1wZXJzYW5kcylcbiAgICAgKiAodW5kZXIgXCJzZW1pLXJlbGF0ZWQgZnVuIGZhY3RcIikgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKlxuICAgICAqIFdoZW4gd29ya2luZyB3aXRoIEhUTUwgeW91IHNob3VsZCBhbHdheXNcbiAgICAgKiBbcXVvdGUgYXR0cmlidXRlIHZhbHVlc10oaHR0cDovL3dvbmtvLmNvbS9wb3N0L2h0bWwtZXNjYXBpbmcpIHRvIHJlZHVjZVxuICAgICAqIFhTUyB2ZWN0b3JzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGVzY2FwZS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5lc2NhcGUoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJyk7XG4gICAgICogLy8gPT4gJ2ZyZWQsIGJhcm5leSwgJmFtcDsgcGViYmxlcydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlc2NhcGUoc3RyaW5nKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgcmV0dXJuIChzdHJpbmcgJiYgcmVIYXNVbmVzY2FwZWRIdG1sLnRlc3Qoc3RyaW5nKSlcbiAgICAgICAgPyBzdHJpbmcucmVwbGFjZShyZVVuZXNjYXBlZEh0bWwsIGVzY2FwZUh0bWxDaGFyKVxuICAgICAgICA6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFc2NhcGVzIHRoZSBgUmVnRXhwYCBzcGVjaWFsIGNoYXJhY3RlcnMgXCJeXCIsIFwiJFwiLCBcIlxcXCIsIFwiLlwiLCBcIipcIiwgXCIrXCIsXG4gICAgICogXCI/XCIsIFwiKFwiLCBcIilcIiwgXCJbXCIsIFwiXVwiLCBcIntcIiwgXCJ9XCIsIGFuZCBcInxcIiBpbiBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZXNjYXBlUmVnRXhwKCdbbG9kYXNoXShodHRwczovL2xvZGFzaC5jb20vKScpO1xuICAgICAqIC8vID0+ICdcXFtsb2Rhc2hcXF1cXChodHRwczovL2xvZGFzaFxcLmNvbS9cXCknXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHN0cmluZykge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHJldHVybiAoc3RyaW5nICYmIHJlSGFzUmVnRXhwQ2hhci50ZXN0KHN0cmluZykpXG4gICAgICAgID8gc3RyaW5nLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgICAgICAgOiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG9cbiAgICAgKiBba2ViYWIgY2FzZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGV0dGVyX2Nhc2UjU3BlY2lhbF9jYXNlX3N0eWxlcykuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBrZWJhYiBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ua2ViYWJDYXNlKCdGb28gQmFyJyk7XG4gICAgICogLy8gPT4gJ2Zvby1iYXInXG4gICAgICpcbiAgICAgKiBfLmtlYmFiQ2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ2Zvby1iYXInXG4gICAgICpcbiAgICAgKiBfLmtlYmFiQ2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnZm9vLWJhcidcbiAgICAgKi9cbiAgICB2YXIga2ViYWJDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJy0nIDogJycpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AsIGFzIHNwYWNlIHNlcGFyYXRlZCB3b3JkcywgdG8gbG93ZXIgY2FzZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGxvd2VyIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sb3dlckNhc2UoJy0tRm9vLUJhci0tJyk7XG4gICAgICogLy8gPT4gJ2ZvbyBiYXInXG4gICAgICpcbiAgICAgKiBfLmxvd2VyQ2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ2ZvbyBiYXInXG4gICAgICpcbiAgICAgKiBfLmxvd2VyQ2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnZm9vIGJhcidcbiAgICAgKi9cbiAgICB2YXIgbG93ZXJDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJyAnIDogJycpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBgc3RyaW5nYCB0byBsb3dlciBjYXNlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sb3dlckZpcnN0KCdGcmVkJyk7XG4gICAgICogLy8gPT4gJ2ZyZWQnXG4gICAgICpcbiAgICAgKiBfLmxvd2VyRmlyc3QoJ0ZSRUQnKTtcbiAgICAgKiAvLyA9PiAnZlJFRCdcbiAgICAgKi9cbiAgICB2YXIgbG93ZXJGaXJzdCA9IGNyZWF0ZUNhc2VGaXJzdCgndG9Mb3dlckNhc2UnKTtcblxuICAgIC8qKlxuICAgICAqIFBhZHMgYHN0cmluZ2Agb24gdGhlIGxlZnQgYW5kIHJpZ2h0IHNpZGVzIGlmIGl0J3Mgc2hvcnRlciB0aGFuIGBsZW5ndGhgLlxuICAgICAqIFBhZGRpbmcgY2hhcmFjdGVycyBhcmUgdHJ1bmNhdGVkIGlmIHRoZXkgY2FuJ3QgYmUgZXZlbmx5IGRpdmlkZWQgYnkgYGxlbmd0aGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcGFkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPTBdIFRoZSBwYWRkaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5wYWQoJ2FiYycsIDgpO1xuICAgICAqIC8vID0+ICcgIGFiYyAgICdcbiAgICAgKlxuICAgICAqIF8ucGFkKCdhYmMnLCA4LCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnXy1hYmNfLV8nXG4gICAgICpcbiAgICAgKiBfLnBhZCgnYWJjJywgMyk7XG4gICAgICogLy8gPT4gJ2FiYydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwYWQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgbGVuZ3RoID0gdG9JbnRlZ2VyKGxlbmd0aCk7XG5cbiAgICAgIHZhciBzdHJMZW5ndGggPSBsZW5ndGggPyBzdHJpbmdTaXplKHN0cmluZykgOiAwO1xuICAgICAgaWYgKCFsZW5ndGggfHwgc3RyTGVuZ3RoID49IGxlbmd0aCkge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgfVxuICAgICAgdmFyIG1pZCA9IChsZW5ndGggLSBzdHJMZW5ndGgpIC8gMjtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGNyZWF0ZVBhZGRpbmcobmF0aXZlRmxvb3IobWlkKSwgY2hhcnMpICtcbiAgICAgICAgc3RyaW5nICtcbiAgICAgICAgY3JlYXRlUGFkZGluZyhuYXRpdmVDZWlsKG1pZCksIGNoYXJzKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWRzIGBzdHJpbmdgIG9uIHRoZSByaWdodCBzaWRlIGlmIGl0J3Mgc2hvcnRlciB0aGFuIGBsZW5ndGhgLiBQYWRkaW5nXG4gICAgICogY2hhcmFjdGVycyBhcmUgdHJ1bmNhdGVkIGlmIHRoZXkgZXhjZWVkIGBsZW5ndGhgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHBhZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD0wXSBUaGUgcGFkZGluZyBsZW5ndGguXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz0nICddIFRoZSBzdHJpbmcgdXNlZCBhcyBwYWRkaW5nLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHBhZGRlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucGFkRW5kKCdhYmMnLCA2KTtcbiAgICAgKiAvLyA9PiAnYWJjICAgJ1xuICAgICAqXG4gICAgICogXy5wYWRFbmQoJ2FiYycsIDYsICdfLScpO1xuICAgICAqIC8vID0+ICdhYmNfLV8nXG4gICAgICpcbiAgICAgKiBfLnBhZEVuZCgnYWJjJywgMyk7XG4gICAgICogLy8gPT4gJ2FiYydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwYWRFbmQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgbGVuZ3RoID0gdG9JbnRlZ2VyKGxlbmd0aCk7XG5cbiAgICAgIHZhciBzdHJMZW5ndGggPSBsZW5ndGggPyBzdHJpbmdTaXplKHN0cmluZykgOiAwO1xuICAgICAgcmV0dXJuIChsZW5ndGggJiYgc3RyTGVuZ3RoIDwgbGVuZ3RoKVxuICAgICAgICA/IChzdHJpbmcgKyBjcmVhdGVQYWRkaW5nKGxlbmd0aCAtIHN0ckxlbmd0aCwgY2hhcnMpKVxuICAgICAgICA6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWRzIGBzdHJpbmdgIG9uIHRoZSBsZWZ0IHNpZGUgaWYgaXQncyBzaG9ydGVyIHRoYW4gYGxlbmd0aGAuIFBhZGRpbmdcbiAgICAgKiBjaGFyYWN0ZXJzIGFyZSB0cnVuY2F0ZWQgaWYgdGhleSBleGNlZWQgYGxlbmd0aGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcGFkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPTBdIFRoZSBwYWRkaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5wYWRTdGFydCgnYWJjJywgNik7XG4gICAgICogLy8gPT4gJyAgIGFiYydcbiAgICAgKlxuICAgICAqIF8ucGFkU3RhcnQoJ2FiYycsIDYsICdfLScpO1xuICAgICAqIC8vID0+ICdfLV9hYmMnXG4gICAgICpcbiAgICAgKiBfLnBhZFN0YXJ0KCdhYmMnLCAzKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHBhZFN0YXJ0KHN0cmluZywgbGVuZ3RoLCBjaGFycykge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGxlbmd0aCA9IHRvSW50ZWdlcihsZW5ndGgpO1xuXG4gICAgICB2YXIgc3RyTGVuZ3RoID0gbGVuZ3RoID8gc3RyaW5nU2l6ZShzdHJpbmcpIDogMDtcbiAgICAgIHJldHVybiAobGVuZ3RoICYmIHN0ckxlbmd0aCA8IGxlbmd0aClcbiAgICAgICAgPyAoY3JlYXRlUGFkZGluZyhsZW5ndGggLSBzdHJMZW5ndGgsIGNoYXJzKSArIHN0cmluZylcbiAgICAgICAgOiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gYW4gaW50ZWdlciBvZiB0aGUgc3BlY2lmaWVkIHJhZGl4LiBJZiBgcmFkaXhgIGlzXG4gICAgICogYHVuZGVmaW5lZGAgb3IgYDBgLCBhIGByYWRpeGAgb2YgYDEwYCBpcyB1c2VkIHVubGVzcyBgdmFsdWVgIGlzIGFcbiAgICAgKiBoZXhhZGVjaW1hbCwgaW4gd2hpY2ggY2FzZSBhIGByYWRpeGAgb2YgYDE2YCBpcyB1c2VkLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGFsaWducyB3aXRoIHRoZVxuICAgICAqIFtFUzUgaW1wbGVtZW50YXRpb25dKGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjEuMi4yKSBvZiBgcGFyc2VJbnRgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMS4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcmFkaXg9MTBdIFRoZSByYWRpeCB0byBpbnRlcnByZXQgYHZhbHVlYCBieS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBpbnRlZ2VyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnBhcnNlSW50KCcwOCcpO1xuICAgICAqIC8vID0+IDhcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnNicsICcwOCcsICcxMCddLCBfLnBhcnNlSW50KTtcbiAgICAgKiAvLyA9PiBbNiwgOCwgMTBdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcGFyc2VJbnQoc3RyaW5nLCByYWRpeCwgZ3VhcmQpIHtcbiAgICAgIGlmIChndWFyZCB8fCByYWRpeCA9PSBudWxsKSB7XG4gICAgICAgIHJhZGl4ID0gMDtcbiAgICAgIH0gZWxzZSBpZiAocmFkaXgpIHtcbiAgICAgICAgcmFkaXggPSArcmFkaXg7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmF0aXZlUGFyc2VJbnQodG9TdHJpbmcoc3RyaW5nKS5yZXBsYWNlKHJlVHJpbVN0YXJ0LCAnJyksIHJhZGl4IHx8IDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGVhdHMgdGhlIGdpdmVuIHN0cmluZyBgbmAgdGltZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcmVwZWF0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgc3RyaW5nLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmVwZWF0ZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnJlcGVhdCgnKicsIDMpO1xuICAgICAqIC8vID0+ICcqKionXG4gICAgICpcbiAgICAgKiBfLnJlcGVhdCgnYWJjJywgMik7XG4gICAgICogLy8gPT4gJ2FiY2FiYydcbiAgICAgKlxuICAgICAqIF8ucmVwZWF0KCdhYmMnLCAwKTtcbiAgICAgKiAvLyA9PiAnJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlcGVhdChzdHJpbmcsIG4sIGd1YXJkKSB7XG4gICAgICBpZiAoKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBuLCBndWFyZCkgOiBuID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIG4gPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlUmVwZWF0KHRvU3RyaW5nKHN0cmluZyksIG4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2VzIG1hdGNoZXMgZm9yIGBwYXR0ZXJuYCBpbiBgc3RyaW5nYCB3aXRoIGByZXBsYWNlbWVudGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYFN0cmluZyNyZXBsYWNlYF0oaHR0cHM6Ly9tZG4uaW8vU3RyaW5nL3JlcGxhY2UpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cHxzdHJpbmd9IHBhdHRlcm4gVGhlIHBhdHRlcm4gdG8gcmVwbGFjZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufHN0cmluZ30gcmVwbGFjZW1lbnQgVGhlIG1hdGNoIHJlcGxhY2VtZW50LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIG1vZGlmaWVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yZXBsYWNlKCdIaSBGcmVkJywgJ0ZyZWQnLCAnQmFybmV5Jyk7XG4gICAgICogLy8gPT4gJ0hpIEJhcm5leSdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXBsYWNlKCkge1xuICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoYXJnc1swXSk7XG5cbiAgICAgIHJldHVybiBhcmdzLmxlbmd0aCA8IDMgPyBzdHJpbmcgOiBzdHJpbmcucmVwbGFjZShhcmdzWzFdLCBhcmdzWzJdKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0b1xuICAgICAqIFtzbmFrZSBjYXNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TbmFrZV9jYXNlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNuYWtlIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zbmFrZUNhc2UoJ0ZvbyBCYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vX2JhcidcbiAgICAgKlxuICAgICAqIF8uc25ha2VDYXNlKCdmb29CYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vX2JhcidcbiAgICAgKlxuICAgICAqIF8uc25ha2VDYXNlKCctLUZPTy1CQVItLScpO1xuICAgICAqIC8vID0+ICdmb29fYmFyJ1xuICAgICAqL1xuICAgIHZhciBzbmFrZUNhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdCwgd29yZCwgaW5kZXgpIHtcbiAgICAgIHJldHVybiByZXN1bHQgKyAoaW5kZXggPyAnXycgOiAnJykgKyB3b3JkLnRvTG93ZXJDYXNlKCk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBTcGxpdHMgYHN0cmluZ2AgYnkgYHNlcGFyYXRvcmAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYFN0cmluZyNzcGxpdGBdKGh0dHBzOi8vbWRuLmlvL1N0cmluZy9zcGxpdCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gc3BsaXQuXG4gICAgICogQHBhcmFtIHtSZWdFeHB8c3RyaW5nfSBzZXBhcmF0b3IgVGhlIHNlcGFyYXRvciBwYXR0ZXJuIHRvIHNwbGl0IGJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGltaXRdIFRoZSBsZW5ndGggdG8gdHJ1bmNhdGUgcmVzdWx0cyB0by5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHN0cmluZyBzZWdtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zcGxpdCgnYS1iLWMnLCAnLScsIDIpO1xuICAgICAqIC8vID0+IFsnYScsICdiJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzcGxpdChzdHJpbmcsIHNlcGFyYXRvciwgbGltaXQpIHtcbiAgICAgIGlmIChsaW1pdCAmJiB0eXBlb2YgbGltaXQgIT0gJ251bWJlcicgJiYgaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBzZXBhcmF0b3IsIGxpbWl0KSkge1xuICAgICAgICBzZXBhcmF0b3IgPSBsaW1pdCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGxpbWl0ID0gbGltaXQgPT09IHVuZGVmaW5lZCA/IE1BWF9BUlJBWV9MRU5HVEggOiBsaW1pdCA+Pj4gMDtcbiAgICAgIGlmICghbGltaXQpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGlmIChzdHJpbmcgJiYgKFxuICAgICAgICAgICAgdHlwZW9mIHNlcGFyYXRvciA9PSAnc3RyaW5nJyB8fFxuICAgICAgICAgICAgKHNlcGFyYXRvciAhPSBudWxsICYmICFpc1JlZ0V4cChzZXBhcmF0b3IpKVxuICAgICAgICAgICkpIHtcbiAgICAgICAgc2VwYXJhdG9yID0gYmFzZVRvU3RyaW5nKHNlcGFyYXRvcik7XG4gICAgICAgIGlmICghc2VwYXJhdG9yICYmIGhhc1VuaWNvZGUoc3RyaW5nKSkge1xuICAgICAgICAgIHJldHVybiBjYXN0U2xpY2Uoc3RyaW5nVG9BcnJheShzdHJpbmcpLCAwLCBsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBzdHJpbmcuc3BsaXQoc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG9cbiAgICAgKiBbc3RhcnQgY2FzZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGV0dGVyX2Nhc2UjU3R5bGlzdGljX29yX3NwZWNpYWxpc2VkX3VzYWdlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjEuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0YXJ0IGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zdGFydENhc2UoJy0tZm9vLWJhci0tJyk7XG4gICAgICogLy8gPT4gJ0ZvbyBCYXInXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0Q2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ0ZvbyBCYXInXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0Q2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnRk9PIEJBUidcbiAgICAgKi9cbiAgICB2YXIgc3RhcnRDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJyAnIDogJycpICsgdXBwZXJGaXJzdCh3b3JkKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgc3RyaW5nYCBzdGFydHMgd2l0aCB0aGUgZ2l2ZW4gdGFyZ2V0IHN0cmluZy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbdGFyZ2V0XSBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtwb3NpdGlvbj0wXSBUaGUgcG9zaXRpb24gdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBzdHJpbmdgIHN0YXJ0cyB3aXRoIGB0YXJnZXRgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc3RhcnRzV2l0aCgnYWJjJywgJ2EnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0c1dpdGgoJ2FiYycsICdiJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uc3RhcnRzV2l0aCgnYWJjJywgJ2InLCAxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3RhcnRzV2l0aChzdHJpbmcsIHRhcmdldCwgcG9zaXRpb24pIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uID09IG51bGxcbiAgICAgICAgPyAwXG4gICAgICAgIDogYmFzZUNsYW1wKHRvSW50ZWdlcihwb3NpdGlvbiksIDAsIHN0cmluZy5sZW5ndGgpO1xuXG4gICAgICB0YXJnZXQgPSBiYXNlVG9TdHJpbmcodGFyZ2V0KTtcbiAgICAgIHJldHVybiBzdHJpbmcuc2xpY2UocG9zaXRpb24sIHBvc2l0aW9uICsgdGFyZ2V0Lmxlbmd0aCkgPT0gdGFyZ2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjb21waWxlZCB0ZW1wbGF0ZSBmdW5jdGlvbiB0aGF0IGNhbiBpbnRlcnBvbGF0ZSBkYXRhIHByb3BlcnRpZXNcbiAgICAgKiBpbiBcImludGVycG9sYXRlXCIgZGVsaW1pdGVycywgSFRNTC1lc2NhcGUgaW50ZXJwb2xhdGVkIGRhdGEgcHJvcGVydGllcyBpblxuICAgICAqIFwiZXNjYXBlXCIgZGVsaW1pdGVycywgYW5kIGV4ZWN1dGUgSmF2YVNjcmlwdCBpbiBcImV2YWx1YXRlXCIgZGVsaW1pdGVycy4gRGF0YVxuICAgICAqIHByb3BlcnRpZXMgbWF5IGJlIGFjY2Vzc2VkIGFzIGZyZWUgdmFyaWFibGVzIGluIHRoZSB0ZW1wbGF0ZS4gSWYgYSBzZXR0aW5nXG4gICAgICogb2JqZWN0IGlzIGdpdmVuLCBpdCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYF8udGVtcGxhdGVTZXR0aW5nc2AgdmFsdWVzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIEluIHRoZSBkZXZlbG9wbWVudCBidWlsZCBgXy50ZW1wbGF0ZWAgdXRpbGl6ZXNcbiAgICAgKiBbc291cmNlVVJMc10oaHR0cDovL3d3dy5odG1sNXJvY2tzLmNvbS9lbi90dXRvcmlhbHMvZGV2ZWxvcGVydG9vbHMvc291cmNlbWFwcy8jdG9jLXNvdXJjZXVybClcbiAgICAgKiBmb3IgZWFzaWVyIGRlYnVnZ2luZy5cbiAgICAgKlxuICAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHByZWNvbXBpbGluZyB0ZW1wbGF0ZXMgc2VlXG4gICAgICogW2xvZGFzaCdzIGN1c3RvbSBidWlsZHMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9sb2Rhc2guY29tL2N1c3RvbS1idWlsZHMpLlxuICAgICAqXG4gICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gQ2hyb21lIGV4dGVuc2lvbiBzYW5kYm94ZXMgc2VlXG4gICAgICogW0Nocm9tZSdzIGV4dGVuc2lvbnMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIuY2hyb21lLmNvbS9leHRlbnNpb25zL3NhbmRib3hpbmdFdmFsKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHRlbXBsYXRlIHN0cmluZy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cH0gW29wdGlvbnMuZXNjYXBlPV8udGVtcGxhdGVTZXR0aW5ncy5lc2NhcGVdXG4gICAgICogIFRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5ldmFsdWF0ZT1fLnRlbXBsYXRlU2V0dGluZ3MuZXZhbHVhdGVdXG4gICAgICogIFRoZSBcImV2YWx1YXRlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucy5pbXBvcnRzPV8udGVtcGxhdGVTZXR0aW5ncy5pbXBvcnRzXVxuICAgICAqICBBbiBvYmplY3QgdG8gaW1wb3J0IGludG8gdGhlIHRlbXBsYXRlIGFzIGZyZWUgdmFyaWFibGVzLlxuICAgICAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5pbnRlcnBvbGF0ZT1fLnRlbXBsYXRlU2V0dGluZ3MuaW50ZXJwb2xhdGVdXG4gICAgICogIFRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5zb3VyY2VVUkw9J2xvZGFzaC50ZW1wbGF0ZVNvdXJjZXNbbl0nXVxuICAgICAqICBUaGUgc291cmNlVVJMIG9mIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMudmFyaWFibGU9J29iaiddXG4gICAgICogIFRoZSBkYXRhIG9iamVjdCB2YXJpYWJsZSBuYW1lLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjb21waWxlZCB0ZW1wbGF0ZSBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gVXNlIHRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyIHRvIGNyZWF0ZSBhIGNvbXBpbGVkIHRlbXBsYXRlLlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hlbGxvIDwlPSB1c2VyICU+IScpO1xuICAgICAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnZnJlZCcgfSk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGZyZWQhJ1xuICAgICAqXG4gICAgICogLy8gVXNlIHRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyIHRvIGVzY2FwZSBkYXRhIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCc8Yj48JS0gdmFsdWUgJT48L2I+Jyk7XG4gICAgICogY29tcGlsZWQoeyAndmFsdWUnOiAnPHNjcmlwdD4nIH0pO1xuICAgICAqIC8vID0+ICc8Yj4mbHQ7c2NyaXB0Jmd0OzwvYj4nXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIFwiZXZhbHVhdGVcIiBkZWxpbWl0ZXIgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0IGFuZCBnZW5lcmF0ZSBIVE1MLlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlIF8uZm9yRWFjaCh1c2VycywgZnVuY3Rpb24odXNlcikgeyAlPjxsaT48JS0gdXNlciAlPjwvbGk+PCUgfSk7ICU+Jyk7XG4gICAgICogY29tcGlsZWQoeyAndXNlcnMnOiBbJ2ZyZWQnLCAnYmFybmV5J10gfSk7XG4gICAgICogLy8gPT4gJzxsaT5mcmVkPC9saT48bGk+YmFybmV5PC9saT4nXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIGludGVybmFsIGBwcmludGAgZnVuY3Rpb24gaW4gXCJldmFsdWF0ZVwiIGRlbGltaXRlcnMuXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPCUgcHJpbnQoXCJoZWxsbyBcIiArIHVzZXIpOyAlPiEnKTtcbiAgICAgKiBjb21waWxlZCh7ICd1c2VyJzogJ2Jhcm5leScgfSk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGJhcm5leSEnXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIEVTIHRlbXBsYXRlIGxpdGVyYWwgZGVsaW1pdGVyIGFzIGFuIFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXIuXG4gICAgICogLy8gRGlzYWJsZSBzdXBwb3J0IGJ5IHJlcGxhY2luZyB0aGUgXCJpbnRlcnBvbGF0ZVwiIGRlbGltaXRlci5cbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyAkeyB1c2VyIH0hJyk7XG4gICAgICogY29tcGlsZWQoeyAndXNlcic6ICdwZWJibGVzJyB9KTtcbiAgICAgKiAvLyA9PiAnaGVsbG8gcGViYmxlcyEnXG4gICAgICpcbiAgICAgKiAvLyBVc2UgYmFja3NsYXNoZXMgdG8gdHJlYXQgZGVsaW1pdGVycyBhcyBwbGFpbiB0ZXh0LlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlPSBcIlxcXFw8JS0gdmFsdWUgJVxcXFw+XCIgJT4nKTtcbiAgICAgKiBjb21waWxlZCh7ICd2YWx1ZSc6ICdpZ25vcmVkJyB9KTtcbiAgICAgKiAvLyA9PiAnPCUtIHZhbHVlICU+J1xuICAgICAqXG4gICAgICogLy8gVXNlIHRoZSBgaW1wb3J0c2Agb3B0aW9uIHRvIGltcG9ydCBgalF1ZXJ5YCBhcyBganFgLlxuICAgICAqIHZhciB0ZXh0ID0gJzwlIGpxLmVhY2godXNlcnMsIGZ1bmN0aW9uKHVzZXIpIHsgJT48bGk+PCUtIHVzZXIgJT48L2xpPjwlIH0pOyAlPic7XG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSh0ZXh0LCB7ICdpbXBvcnRzJzogeyAnanEnOiBqUXVlcnkgfSB9KTtcbiAgICAgKiBjb21waWxlZCh7ICd1c2Vycyc6IFsnZnJlZCcsICdiYXJuZXknXSB9KTtcbiAgICAgKiAvLyA9PiAnPGxpPmZyZWQ8L2xpPjxsaT5iYXJuZXk8L2xpPidcbiAgICAgKlxuICAgICAqIC8vIFVzZSB0aGUgYHNvdXJjZVVSTGAgb3B0aW9uIHRvIHNwZWNpZnkgYSBjdXN0b20gc291cmNlVVJMIGZvciB0aGUgdGVtcGxhdGUuXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGVsbG8gPCU9IHVzZXIgJT4hJywgeyAnc291cmNlVVJMJzogJy9iYXNpYy9ncmVldGluZy5qc3QnIH0pO1xuICAgICAqIGNvbXBpbGVkKGRhdGEpO1xuICAgICAqIC8vID0+IEZpbmQgdGhlIHNvdXJjZSBvZiBcImdyZWV0aW5nLmpzdFwiIHVuZGVyIHRoZSBTb3VyY2VzIHRhYiBvciBSZXNvdXJjZXMgcGFuZWwgb2YgdGhlIHdlYiBpbnNwZWN0b3IuXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIGB2YXJpYWJsZWAgb3B0aW9uIHRvIGVuc3VyZSBhIHdpdGgtc3RhdGVtZW50IGlzbid0IHVzZWQgaW4gdGhlIGNvbXBpbGVkIHRlbXBsYXRlLlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hpIDwlPSBkYXRhLnVzZXIgJT4hJywgeyAndmFyaWFibGUnOiAnZGF0YScgfSk7XG4gICAgICogY29tcGlsZWQuc291cmNlO1xuICAgICAqIC8vID0+IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgKiAvLyAgIHZhciBfX3QsIF9fcCA9ICcnO1xuICAgICAqIC8vICAgX19wICs9ICdoaSAnICsgKChfX3QgPSAoIGRhdGEudXNlciApKSA9PSBudWxsID8gJycgOiBfX3QpICsgJyEnO1xuICAgICAqIC8vICAgcmV0dXJuIF9fcDtcbiAgICAgKiAvLyB9XG4gICAgICpcbiAgICAgKiAvLyBVc2UgY3VzdG9tIHRlbXBsYXRlIGRlbGltaXRlcnMuXG4gICAgICogXy50ZW1wbGF0ZVNldHRpbmdzLmludGVycG9sYXRlID0gL3t7KFtcXHNcXFNdKz8pfX0vZztcbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyB7eyB1c2VyIH19IScpO1xuICAgICAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnbXVzdGFjaGUnIH0pO1xuICAgICAqIC8vID0+ICdoZWxsbyBtdXN0YWNoZSEnXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIGBzb3VyY2VgIHByb3BlcnR5IHRvIGlubGluZSBjb21waWxlZCB0ZW1wbGF0ZXMgZm9yIG1lYW5pbmdmdWxcbiAgICAgKiAvLyBsaW5lIG51bWJlcnMgaW4gZXJyb3IgbWVzc2FnZXMgYW5kIHN0YWNrIHRyYWNlcy5cbiAgICAgKiBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnanN0LmpzJyksICdcXFxuICAgICAqICAgdmFyIEpTVCA9IHtcXFxuICAgICAqICAgICBcIm1haW5cIjogJyArIF8udGVtcGxhdGUobWFpblRleHQpLnNvdXJjZSArICdcXFxuICAgICAqICAgfTtcXFxuICAgICAqICcpO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRlbXBsYXRlKHN0cmluZywgb3B0aW9ucywgZ3VhcmQpIHtcbiAgICAgIC8vIEJhc2VkIG9uIEpvaG4gUmVzaWcncyBgdG1wbGAgaW1wbGVtZW50YXRpb25cbiAgICAgIC8vIChodHRwOi8vZWpvaG4ub3JnL2Jsb2cvamF2YXNjcmlwdC1taWNyby10ZW1wbGF0aW5nLylcbiAgICAgIC8vIGFuZCBMYXVyYSBEb2t0b3JvdmEncyBkb1QuanMgKGh0dHBzOi8vZ2l0aHViLmNvbS9vbGFkby9kb1QpLlxuICAgICAgdmFyIHNldHRpbmdzID0gbG9kYXNoLnRlbXBsYXRlU2V0dGluZ3M7XG5cbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzdHJpbmcsIG9wdGlvbnMsIGd1YXJkKSkge1xuICAgICAgICBvcHRpb25zID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIG9wdGlvbnMgPSBhc3NpZ25JbldpdGgoe30sIG9wdGlvbnMsIHNldHRpbmdzLCBjdXN0b21EZWZhdWx0c0Fzc2lnbkluKTtcblxuICAgICAgdmFyIGltcG9ydHMgPSBhc3NpZ25JbldpdGgoe30sIG9wdGlvbnMuaW1wb3J0cywgc2V0dGluZ3MuaW1wb3J0cywgY3VzdG9tRGVmYXVsdHNBc3NpZ25JbiksXG4gICAgICAgICAgaW1wb3J0c0tleXMgPSBrZXlzKGltcG9ydHMpLFxuICAgICAgICAgIGltcG9ydHNWYWx1ZXMgPSBiYXNlVmFsdWVzKGltcG9ydHMsIGltcG9ydHNLZXlzKTtcblxuICAgICAgdmFyIGlzRXNjYXBpbmcsXG4gICAgICAgICAgaXNFdmFsdWF0aW5nLFxuICAgICAgICAgIGluZGV4ID0gMCxcbiAgICAgICAgICBpbnRlcnBvbGF0ZSA9IG9wdGlvbnMuaW50ZXJwb2xhdGUgfHwgcmVOb01hdGNoLFxuICAgICAgICAgIHNvdXJjZSA9IFwiX19wICs9ICdcIjtcblxuICAgICAgLy8gQ29tcGlsZSB0aGUgcmVnZXhwIHRvIG1hdGNoIGVhY2ggZGVsaW1pdGVyLlxuICAgICAgdmFyIHJlRGVsaW1pdGVycyA9IFJlZ0V4cChcbiAgICAgICAgKG9wdGlvbnMuZXNjYXBlIHx8IHJlTm9NYXRjaCkuc291cmNlICsgJ3wnICtcbiAgICAgICAgaW50ZXJwb2xhdGUuc291cmNlICsgJ3wnICtcbiAgICAgICAgKGludGVycG9sYXRlID09PSByZUludGVycG9sYXRlID8gcmVFc1RlbXBsYXRlIDogcmVOb01hdGNoKS5zb3VyY2UgKyAnfCcgK1xuICAgICAgICAob3B0aW9ucy5ldmFsdWF0ZSB8fCByZU5vTWF0Y2gpLnNvdXJjZSArICd8JCdcbiAgICAgICwgJ2cnKTtcblxuICAgICAgLy8gVXNlIGEgc291cmNlVVJMIGZvciBlYXNpZXIgZGVidWdnaW5nLlxuICAgICAgLy8gVGhlIHNvdXJjZVVSTCBnZXRzIGluamVjdGVkIGludG8gdGhlIHNvdXJjZSB0aGF0J3MgZXZhbC1lZCwgc28gYmUgY2FyZWZ1bFxuICAgICAgLy8gdG8gbm9ybWFsaXplIGFsbCBraW5kcyBvZiB3aGl0ZXNwYWNlLCBzbyBlLmcuIG5ld2xpbmVzIChhbmQgdW5pY29kZSB2ZXJzaW9ucyBvZiBpdCkgY2FuJ3Qgc25lYWsgaW5cbiAgICAgIC8vIGFuZCBlc2NhcGUgdGhlIGNvbW1lbnQsIHRodXMgaW5qZWN0aW5nIGNvZGUgdGhhdCBnZXRzIGV2YWxlZC5cbiAgICAgIHZhciBzb3VyY2VVUkwgPSAnLy8jIHNvdXJjZVVSTD0nICtcbiAgICAgICAgKGhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgJ3NvdXJjZVVSTCcpXG4gICAgICAgICAgPyAob3B0aW9ucy5zb3VyY2VVUkwgKyAnJykucmVwbGFjZSgvXFxzL2csICcgJylcbiAgICAgICAgICA6ICgnbG9kYXNoLnRlbXBsYXRlU291cmNlc1snICsgKCsrdGVtcGxhdGVDb3VudGVyKSArICddJylcbiAgICAgICAgKSArICdcXG4nO1xuXG4gICAgICBzdHJpbmcucmVwbGFjZShyZURlbGltaXRlcnMsIGZ1bmN0aW9uKG1hdGNoLCBlc2NhcGVWYWx1ZSwgaW50ZXJwb2xhdGVWYWx1ZSwgZXNUZW1wbGF0ZVZhbHVlLCBldmFsdWF0ZVZhbHVlLCBvZmZzZXQpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVWYWx1ZSB8fCAoaW50ZXJwb2xhdGVWYWx1ZSA9IGVzVGVtcGxhdGVWYWx1ZSk7XG5cbiAgICAgICAgLy8gRXNjYXBlIGNoYXJhY3RlcnMgdGhhdCBjYW4ndCBiZSBpbmNsdWRlZCBpbiBzdHJpbmcgbGl0ZXJhbHMuXG4gICAgICAgIHNvdXJjZSArPSBzdHJpbmcuc2xpY2UoaW5kZXgsIG9mZnNldCkucmVwbGFjZShyZVVuZXNjYXBlZFN0cmluZywgZXNjYXBlU3RyaW5nQ2hhcik7XG5cbiAgICAgICAgLy8gUmVwbGFjZSBkZWxpbWl0ZXJzIHdpdGggc25pcHBldHMuXG4gICAgICAgIGlmIChlc2NhcGVWYWx1ZSkge1xuICAgICAgICAgIGlzRXNjYXBpbmcgPSB0cnVlO1xuICAgICAgICAgIHNvdXJjZSArPSBcIicgK1xcbl9fZShcIiArIGVzY2FwZVZhbHVlICsgXCIpICtcXG4nXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2YWx1YXRlVmFsdWUpIHtcbiAgICAgICAgICBpc0V2YWx1YXRpbmcgPSB0cnVlO1xuICAgICAgICAgIHNvdXJjZSArPSBcIic7XFxuXCIgKyBldmFsdWF0ZVZhbHVlICsgXCI7XFxuX19wICs9ICdcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW50ZXJwb2xhdGVWYWx1ZSkge1xuICAgICAgICAgIHNvdXJjZSArPSBcIicgK1xcbigoX190ID0gKFwiICsgaW50ZXJwb2xhdGVWYWx1ZSArIFwiKSkgPT0gbnVsbCA/ICcnIDogX190KSArXFxuJ1wiO1xuICAgICAgICB9XG4gICAgICAgIGluZGV4ID0gb2Zmc2V0ICsgbWF0Y2gubGVuZ3RoO1xuXG4gICAgICAgIC8vIFRoZSBKUyBlbmdpbmUgZW1iZWRkZWQgaW4gQWRvYmUgcHJvZHVjdHMgbmVlZHMgYG1hdGNoYCByZXR1cm5lZCBpblxuICAgICAgICAvLyBvcmRlciB0byBwcm9kdWNlIHRoZSBjb3JyZWN0IGBvZmZzZXRgIHZhbHVlLlxuICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICB9KTtcblxuICAgICAgc291cmNlICs9IFwiJztcXG5cIjtcblxuICAgICAgLy8gSWYgYHZhcmlhYmxlYCBpcyBub3Qgc3BlY2lmaWVkIHdyYXAgYSB3aXRoLXN0YXRlbWVudCBhcm91bmQgdGhlIGdlbmVyYXRlZFxuICAgICAgLy8gY29kZSB0byBhZGQgdGhlIGRhdGEgb2JqZWN0IHRvIHRoZSB0b3Agb2YgdGhlIHNjb3BlIGNoYWluLlxuICAgICAgdmFyIHZhcmlhYmxlID0gaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25zLCAndmFyaWFibGUnKSAmJiBvcHRpb25zLnZhcmlhYmxlO1xuICAgICAgaWYgKCF2YXJpYWJsZSkge1xuICAgICAgICBzb3VyY2UgPSAnd2l0aCAob2JqKSB7XFxuJyArIHNvdXJjZSArICdcXG59XFxuJztcbiAgICAgIH1cbiAgICAgIC8vIENsZWFudXAgY29kZSBieSBzdHJpcHBpbmcgZW1wdHkgc3RyaW5ncy5cbiAgICAgIHNvdXJjZSA9IChpc0V2YWx1YXRpbmcgPyBzb3VyY2UucmVwbGFjZShyZUVtcHR5U3RyaW5nTGVhZGluZywgJycpIDogc291cmNlKVxuICAgICAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nTWlkZGxlLCAnJDEnKVxuICAgICAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nVHJhaWxpbmcsICckMTsnKTtcblxuICAgICAgLy8gRnJhbWUgY29kZSBhcyB0aGUgZnVuY3Rpb24gYm9keS5cbiAgICAgIHNvdXJjZSA9ICdmdW5jdGlvbignICsgKHZhcmlhYmxlIHx8ICdvYmonKSArICcpIHtcXG4nICtcbiAgICAgICAgKHZhcmlhYmxlXG4gICAgICAgICAgPyAnJ1xuICAgICAgICAgIDogJ29iaiB8fCAob2JqID0ge30pO1xcbidcbiAgICAgICAgKSArXG4gICAgICAgIFwidmFyIF9fdCwgX19wID0gJydcIiArXG4gICAgICAgIChpc0VzY2FwaW5nXG4gICAgICAgICAgID8gJywgX19lID0gXy5lc2NhcGUnXG4gICAgICAgICAgIDogJydcbiAgICAgICAgKSArXG4gICAgICAgIChpc0V2YWx1YXRpbmdcbiAgICAgICAgICA/ICcsIF9faiA9IEFycmF5LnByb3RvdHlwZS5qb2luO1xcbicgK1xuICAgICAgICAgICAgXCJmdW5jdGlvbiBwcmludCgpIHsgX19wICs9IF9fai5jYWxsKGFyZ3VtZW50cywgJycpIH1cXG5cIlxuICAgICAgICAgIDogJztcXG4nXG4gICAgICAgICkgK1xuICAgICAgICBzb3VyY2UgK1xuICAgICAgICAncmV0dXJuIF9fcFxcbn0nO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gYXR0ZW1wdChmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEZ1bmN0aW9uKGltcG9ydHNLZXlzLCBzb3VyY2VVUkwgKyAncmV0dXJuICcgKyBzb3VyY2UpXG4gICAgICAgICAgLmFwcGx5KHVuZGVmaW5lZCwgaW1wb3J0c1ZhbHVlcyk7XG4gICAgICB9KTtcblxuICAgICAgLy8gUHJvdmlkZSB0aGUgY29tcGlsZWQgZnVuY3Rpb24ncyBzb3VyY2UgYnkgaXRzIGB0b1N0cmluZ2AgbWV0aG9kIG9yXG4gICAgICAvLyB0aGUgYHNvdXJjZWAgcHJvcGVydHkgYXMgYSBjb252ZW5pZW5jZSBmb3IgaW5saW5pbmcgY29tcGlsZWQgdGVtcGxhdGVzLlxuICAgICAgcmVzdWx0LnNvdXJjZSA9IHNvdXJjZTtcbiAgICAgIGlmIChpc0Vycm9yKHJlc3VsdCkpIHtcbiAgICAgICAgdGhyb3cgcmVzdWx0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCwgYXMgYSB3aG9sZSwgdG8gbG93ZXIgY2FzZSBqdXN0IGxpa2VcbiAgICAgKiBbU3RyaW5nI3RvTG93ZXJDYXNlXShodHRwczovL21kbi5pby90b0xvd2VyQ2FzZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBsb3dlciBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9Mb3dlcignLS1Gb28tQmFyLS0nKTtcbiAgICAgKiAvLyA9PiAnLS1mb28tYmFyLS0nXG4gICAgICpcbiAgICAgKiBfLnRvTG93ZXIoJ2Zvb0JhcicpO1xuICAgICAqIC8vID0+ICdmb29iYXInXG4gICAgICpcbiAgICAgKiBfLnRvTG93ZXIoJ19fRk9PX0JBUl9fJyk7XG4gICAgICogLy8gPT4gJ19fZm9vX2Jhcl9fJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvTG93ZXIodmFsdWUpIHtcbiAgICAgIHJldHVybiB0b1N0cmluZyh2YWx1ZSkudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCwgYXMgYSB3aG9sZSwgdG8gdXBwZXIgY2FzZSBqdXN0IGxpa2VcbiAgICAgKiBbU3RyaW5nI3RvVXBwZXJDYXNlXShodHRwczovL21kbi5pby90b1VwcGVyQ2FzZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB1cHBlciBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9VcHBlcignLS1mb28tYmFyLS0nKTtcbiAgICAgKiAvLyA9PiAnLS1GT08tQkFSLS0nXG4gICAgICpcbiAgICAgKiBfLnRvVXBwZXIoJ2Zvb0JhcicpO1xuICAgICAqIC8vID0+ICdGT09CQVInXG4gICAgICpcbiAgICAgKiBfLnRvVXBwZXIoJ19fZm9vX2Jhcl9fJyk7XG4gICAgICogLy8gPT4gJ19fRk9PX0JBUl9fJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvVXBwZXIodmFsdWUpIHtcbiAgICAgIHJldHVybiB0b1N0cmluZyh2YWx1ZSkudG9VcHBlckNhc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2Ugb3Igc3BlY2lmaWVkIGNoYXJhY3RlcnMgZnJvbSBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB0cmltLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9d2hpdGVzcGFjZV0gVGhlIGNoYXJhY3RlcnMgdG8gdHJpbS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRyaW1tZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRyaW0oJyAgYWJjICAnKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqXG4gICAgICogXy50cmltKCctXy1hYmMtXy0nLCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqXG4gICAgICogXy5tYXAoWycgIGZvbyAgJywgJyAgYmFyICAnXSwgXy50cmltKTtcbiAgICAgKiAvLyA9PiBbJ2ZvbycsICdiYXInXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRyaW0oc3RyaW5nLCBjaGFycywgZ3VhcmQpIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICBpZiAoc3RyaW5nICYmIChndWFyZCB8fCBjaGFycyA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UocmVUcmltLCAnJyk7XG4gICAgICB9XG4gICAgICBpZiAoIXN0cmluZyB8fCAhKGNoYXJzID0gYmFzZVRvU3RyaW5nKGNoYXJzKSkpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgIH1cbiAgICAgIHZhciBzdHJTeW1ib2xzID0gc3RyaW5nVG9BcnJheShzdHJpbmcpLFxuICAgICAgICAgIGNoclN5bWJvbHMgPSBzdHJpbmdUb0FycmF5KGNoYXJzKSxcbiAgICAgICAgICBzdGFydCA9IGNoYXJzU3RhcnRJbmRleChzdHJTeW1ib2xzLCBjaHJTeW1ib2xzKSxcbiAgICAgICAgICBlbmQgPSBjaGFyc0VuZEluZGV4KHN0clN5bWJvbHMsIGNoclN5bWJvbHMpICsgMTtcblxuICAgICAgcmV0dXJuIGNhc3RTbGljZShzdHJTeW1ib2xzLCBzdGFydCwgZW5kKS5qb2luKCcnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHRyYWlsaW5nIHdoaXRlc3BhY2Ugb3Igc3BlY2lmaWVkIGNoYXJhY3RlcnMgZnJvbSBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB0cmltLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9d2hpdGVzcGFjZV0gVGhlIGNoYXJhY3RlcnMgdG8gdHJpbS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRyaW1tZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRyaW1FbmQoJyAgYWJjICAnKTtcbiAgICAgKiAvLyA9PiAnICBhYmMnXG4gICAgICpcbiAgICAgKiBfLnRyaW1FbmQoJy1fLWFiYy1fLScsICdfLScpO1xuICAgICAqIC8vID0+ICctXy1hYmMnXG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJpbUVuZChzdHJpbmcsIGNoYXJzLCBndWFyZCkge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGlmIChzdHJpbmcgJiYgKGd1YXJkIHx8IGNoYXJzID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZShyZVRyaW1FbmQsICcnKTtcbiAgICAgIH1cbiAgICAgIGlmICghc3RyaW5nIHx8ICEoY2hhcnMgPSBiYXNlVG9TdHJpbmcoY2hhcnMpKSkge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgfVxuICAgICAgdmFyIHN0clN5bWJvbHMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyksXG4gICAgICAgICAgZW5kID0gY2hhcnNFbmRJbmRleChzdHJTeW1ib2xzLCBzdHJpbmdUb0FycmF5KGNoYXJzKSkgKyAxO1xuXG4gICAgICByZXR1cm4gY2FzdFNsaWNlKHN0clN5bWJvbHMsIDAsIGVuZCkuam9pbignJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBsZWFkaW5nIHdoaXRlc3BhY2Ugb3Igc3BlY2lmaWVkIGNoYXJhY3RlcnMgZnJvbSBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB0cmltLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9d2hpdGVzcGFjZV0gVGhlIGNoYXJhY3RlcnMgdG8gdHJpbS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRyaW1tZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRyaW1TdGFydCgnICBhYmMgICcpO1xuICAgICAqIC8vID0+ICdhYmMgICdcbiAgICAgKlxuICAgICAqIF8udHJpbVN0YXJ0KCctXy1hYmMtXy0nLCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnYWJjLV8tJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRyaW1TdGFydChzdHJpbmcsIGNoYXJzLCBndWFyZCkge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGlmIChzdHJpbmcgJiYgKGd1YXJkIHx8IGNoYXJzID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZShyZVRyaW1TdGFydCwgJycpO1xuICAgICAgfVxuICAgICAgaWYgKCFzdHJpbmcgfHwgIShjaGFycyA9IGJhc2VUb1N0cmluZyhjaGFycykpKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICB9XG4gICAgICB2YXIgc3RyU3ltYm9scyA9IHN0cmluZ1RvQXJyYXkoc3RyaW5nKSxcbiAgICAgICAgICBzdGFydCA9IGNoYXJzU3RhcnRJbmRleChzdHJTeW1ib2xzLCBzdHJpbmdUb0FycmF5KGNoYXJzKSk7XG5cbiAgICAgIHJldHVybiBjYXN0U2xpY2Uoc3RyU3ltYm9scywgc3RhcnQpLmpvaW4oJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRydW5jYXRlcyBgc3RyaW5nYCBpZiBpdCdzIGxvbmdlciB0aGFuIHRoZSBnaXZlbiBtYXhpbXVtIHN0cmluZyBsZW5ndGguXG4gICAgICogVGhlIGxhc3QgY2hhcmFjdGVycyBvZiB0aGUgdHJ1bmNhdGVkIHN0cmluZyBhcmUgcmVwbGFjZWQgd2l0aCB0aGUgb21pc3Npb25cbiAgICAgKiBzdHJpbmcgd2hpY2ggZGVmYXVsdHMgdG8gXCIuLi5cIi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB0cnVuY2F0ZS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubGVuZ3RoPTMwXSBUaGUgbWF4aW11bSBzdHJpbmcgbGVuZ3RoLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5vbWlzc2lvbj0nLi4uJ10gVGhlIHN0cmluZyB0byBpbmRpY2F0ZSB0ZXh0IGlzIG9taXR0ZWQuXG4gICAgICogQHBhcmFtIHtSZWdFeHB8c3RyaW5nfSBbb3B0aW9ucy5zZXBhcmF0b3JdIFRoZSBzZXBhcmF0b3IgcGF0dGVybiB0byB0cnVuY2F0ZSB0by5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB0cnVuY2F0ZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRydW5jYXRlKCdoaS1kaWRkbHktaG8gdGhlcmUsIG5laWdoYm9yaW5vJyk7XG4gICAgICogLy8gPT4gJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZ2hiby4uLidcbiAgICAgKlxuICAgICAqIF8udHJ1bmNhdGUoJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZ2hib3Jpbm8nLCB7XG4gICAgICogICAnbGVuZ3RoJzogMjQsXG4gICAgICogICAnc2VwYXJhdG9yJzogJyAnXG4gICAgICogfSk7XG4gICAgICogLy8gPT4gJ2hpLWRpZGRseS1obyB0aGVyZSwuLi4nXG4gICAgICpcbiAgICAgKiBfLnRydW5jYXRlKCdoaS1kaWRkbHktaG8gdGhlcmUsIG5laWdoYm9yaW5vJywge1xuICAgICAqICAgJ2xlbmd0aCc6IDI0LFxuICAgICAqICAgJ3NlcGFyYXRvcic6IC8sPyArL1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+ICdoaS1kaWRkbHktaG8gdGhlcmUuLi4nXG4gICAgICpcbiAgICAgKiBfLnRydW5jYXRlKCdoaS1kaWRkbHktaG8gdGhlcmUsIG5laWdoYm9yaW5vJywge1xuICAgICAqICAgJ29taXNzaW9uJzogJyBbLi4uXSdcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiAnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnIFsuLi5dJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRydW5jYXRlKHN0cmluZywgb3B0aW9ucykge1xuICAgICAgdmFyIGxlbmd0aCA9IERFRkFVTFRfVFJVTkNfTEVOR1RILFxuICAgICAgICAgIG9taXNzaW9uID0gREVGQVVMVF9UUlVOQ19PTUlTU0lPTjtcblxuICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgIHZhciBzZXBhcmF0b3IgPSAnc2VwYXJhdG9yJyBpbiBvcHRpb25zID8gb3B0aW9ucy5zZXBhcmF0b3IgOiBzZXBhcmF0b3I7XG4gICAgICAgIGxlbmd0aCA9ICdsZW5ndGgnIGluIG9wdGlvbnMgPyB0b0ludGVnZXIob3B0aW9ucy5sZW5ndGgpIDogbGVuZ3RoO1xuICAgICAgICBvbWlzc2lvbiA9ICdvbWlzc2lvbicgaW4gb3B0aW9ucyA/IGJhc2VUb1N0cmluZyhvcHRpb25zLm9taXNzaW9uKSA6IG9taXNzaW9uO1xuICAgICAgfVxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcblxuICAgICAgdmFyIHN0ckxlbmd0aCA9IHN0cmluZy5sZW5ndGg7XG4gICAgICBpZiAoaGFzVW5pY29kZShzdHJpbmcpKSB7XG4gICAgICAgIHZhciBzdHJTeW1ib2xzID0gc3RyaW5nVG9BcnJheShzdHJpbmcpO1xuICAgICAgICBzdHJMZW5ndGggPSBzdHJTeW1ib2xzLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGlmIChsZW5ndGggPj0gc3RyTGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICB9XG4gICAgICB2YXIgZW5kID0gbGVuZ3RoIC0gc3RyaW5nU2l6ZShvbWlzc2lvbik7XG4gICAgICBpZiAoZW5kIDwgMSkge1xuICAgICAgICByZXR1cm4gb21pc3Npb247XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gc3RyU3ltYm9sc1xuICAgICAgICA/IGNhc3RTbGljZShzdHJTeW1ib2xzLCAwLCBlbmQpLmpvaW4oJycpXG4gICAgICAgIDogc3RyaW5nLnNsaWNlKDAsIGVuZCk7XG5cbiAgICAgIGlmIChzZXBhcmF0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0ICsgb21pc3Npb247XG4gICAgICB9XG4gICAgICBpZiAoc3RyU3ltYm9scykge1xuICAgICAgICBlbmQgKz0gKHJlc3VsdC5sZW5ndGggLSBlbmQpO1xuICAgICAgfVxuICAgICAgaWYgKGlzUmVnRXhwKHNlcGFyYXRvcikpIHtcbiAgICAgICAgaWYgKHN0cmluZy5zbGljZShlbmQpLnNlYXJjaChzZXBhcmF0b3IpKSB7XG4gICAgICAgICAgdmFyIG1hdGNoLFxuICAgICAgICAgICAgICBzdWJzdHJpbmcgPSByZXN1bHQ7XG5cbiAgICAgICAgICBpZiAoIXNlcGFyYXRvci5nbG9iYWwpIHtcbiAgICAgICAgICAgIHNlcGFyYXRvciA9IFJlZ0V4cChzZXBhcmF0b3Iuc291cmNlLCB0b1N0cmluZyhyZUZsYWdzLmV4ZWMoc2VwYXJhdG9yKSkgKyAnZycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzZXBhcmF0b3IubGFzdEluZGV4ID0gMDtcbiAgICAgICAgICB3aGlsZSAoKG1hdGNoID0gc2VwYXJhdG9yLmV4ZWMoc3Vic3RyaW5nKSkpIHtcbiAgICAgICAgICAgIHZhciBuZXdFbmQgPSBtYXRjaC5pbmRleDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnNsaWNlKDAsIG5ld0VuZCA9PT0gdW5kZWZpbmVkID8gZW5kIDogbmV3RW5kKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChzdHJpbmcuaW5kZXhPZihiYXNlVG9TdHJpbmcoc2VwYXJhdG9yKSwgZW5kKSAhPSBlbmQpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gcmVzdWx0Lmxhc3RJbmRleE9mKHNlcGFyYXRvcik7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnNsaWNlKDAsIGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdCArIG9taXNzaW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBpbnZlcnNlIG9mIGBfLmVzY2FwZWA7IHRoaXMgbWV0aG9kIGNvbnZlcnRzIHRoZSBIVE1MIGVudGl0aWVzXG4gICAgICogYCZhbXA7YCwgYCZsdDtgLCBgJmd0O2AsIGAmcXVvdDtgLCBhbmQgYCYjMzk7YCBpbiBgc3RyaW5nYCB0b1xuICAgICAqIHRoZWlyIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVycy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBObyBvdGhlciBIVE1MIGVudGl0aWVzIGFyZSB1bmVzY2FwZWQuIFRvIHVuZXNjYXBlIGFkZGl0aW9uYWxcbiAgICAgKiBIVE1MIGVudGl0aWVzIHVzZSBhIHRoaXJkLXBhcnR5IGxpYnJhcnkgbGlrZSBbX2hlX10oaHR0cHM6Ly9tdGhzLmJlL2hlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjYuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB1bmVzY2FwZS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB1bmVzY2FwZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuZXNjYXBlKCdmcmVkLCBiYXJuZXksICZhbXA7IHBlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiAnZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnXG4gICAgICovXG4gICAgZnVuY3Rpb24gdW5lc2NhcGUoc3RyaW5nKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgcmV0dXJuIChzdHJpbmcgJiYgcmVIYXNFc2NhcGVkSHRtbC50ZXN0KHN0cmluZykpXG4gICAgICAgID8gc3RyaW5nLnJlcGxhY2UocmVFc2NhcGVkSHRtbCwgdW5lc2NhcGVIdG1sQ2hhcilcbiAgICAgICAgOiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AsIGFzIHNwYWNlIHNlcGFyYXRlZCB3b3JkcywgdG8gdXBwZXIgY2FzZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHVwcGVyIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy51cHBlckNhc2UoJy0tZm9vLWJhcicpO1xuICAgICAqIC8vID0+ICdGT08gQkFSJ1xuICAgICAqXG4gICAgICogXy51cHBlckNhc2UoJ2Zvb0JhcicpO1xuICAgICAqIC8vID0+ICdGT08gQkFSJ1xuICAgICAqXG4gICAgICogXy51cHBlckNhc2UoJ19fZm9vX2Jhcl9fJyk7XG4gICAgICogLy8gPT4gJ0ZPTyBCQVInXG4gICAgICovXG4gICAgdmFyIHVwcGVyQ2FzZSA9IGNyZWF0ZUNvbXBvdW5kZXIoZnVuY3Rpb24ocmVzdWx0LCB3b3JkLCBpbmRleCkge1xuICAgICAgcmV0dXJuIHJlc3VsdCArIChpbmRleCA/ICcgJyA6ICcnKSArIHdvcmQudG9VcHBlckNhc2UoKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYHN0cmluZ2AgdG8gdXBwZXIgY2FzZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udXBwZXJGaXJzdCgnZnJlZCcpO1xuICAgICAqIC8vID0+ICdGcmVkJ1xuICAgICAqXG4gICAgICogXy51cHBlckZpcnN0KCdGUkVEJyk7XG4gICAgICogLy8gPT4gJ0ZSRUQnXG4gICAgICovXG4gICAgdmFyIHVwcGVyRmlyc3QgPSBjcmVhdGVDYXNlRmlyc3QoJ3RvVXBwZXJDYXNlJyk7XG5cbiAgICAvKipcbiAgICAgKiBTcGxpdHMgYHN0cmluZ2AgaW50byBhbiBhcnJheSBvZiBpdHMgd29yZHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cHxzdHJpbmd9IFtwYXR0ZXJuXSBUaGUgcGF0dGVybiB0byBtYXRjaCB3b3Jkcy5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgd29yZHMgb2YgYHN0cmluZ2AuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ud29yZHMoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJyk7XG4gICAgICogLy8gPT4gWydmcmVkJywgJ2Jhcm5leScsICdwZWJibGVzJ11cbiAgICAgKlxuICAgICAqIF8ud29yZHMoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJywgL1teLCBdKy9nKTtcbiAgICAgKiAvLyA9PiBbJ2ZyZWQnLCAnYmFybmV5JywgJyYnLCAncGViYmxlcyddXG4gICAgICovXG4gICAgZnVuY3Rpb24gd29yZHMoc3RyaW5nLCBwYXR0ZXJuLCBndWFyZCkge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHBhdHRlcm4gPSBndWFyZCA/IHVuZGVmaW5lZCA6IHBhdHRlcm47XG5cbiAgICAgIGlmIChwYXR0ZXJuID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGhhc1VuaWNvZGVXb3JkKHN0cmluZykgPyB1bmljb2RlV29yZHMoc3RyaW5nKSA6IGFzY2lpV29yZHMoc3RyaW5nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdHJpbmcubWF0Y2gocGF0dGVybikgfHwgW107XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQXR0ZW1wdHMgdG8gaW52b2tlIGBmdW5jYCwgcmV0dXJuaW5nIGVpdGhlciB0aGUgcmVzdWx0IG9yIHRoZSBjYXVnaHQgZXJyb3JcbiAgICAgKiBvYmplY3QuIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgdG8gYGZ1bmNgIHdoZW4gaXQncyBpbnZva2VkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhdHRlbXB0LlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIGBmdW5jYCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBgZnVuY2AgcmVzdWx0IG9yIGVycm9yIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gQXZvaWQgdGhyb3dpbmcgZXJyb3JzIGZvciBpbnZhbGlkIHNlbGVjdG9ycy5cbiAgICAgKiB2YXIgZWxlbWVudHMgPSBfLmF0dGVtcHQoZnVuY3Rpb24oc2VsZWN0b3IpIHtcbiAgICAgKiAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAgICAgKiB9LCAnPl8+Jyk7XG4gICAgICpcbiAgICAgKiBpZiAoXy5pc0Vycm9yKGVsZW1lbnRzKSkge1xuICAgICAqICAgZWxlbWVudHMgPSBbXTtcbiAgICAgKiB9XG4gICAgICovXG4gICAgdmFyIGF0dGVtcHQgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCBhcmdzKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXBwbHkoZnVuYywgdW5kZWZpbmVkLCBhcmdzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGlzRXJyb3IoZSkgPyBlIDogbmV3IEVycm9yKGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQmluZHMgbWV0aG9kcyBvZiBhbiBvYmplY3QgdG8gdGhlIG9iamVjdCBpdHNlbGYsIG92ZXJ3cml0aW5nIHRoZSBleGlzdGluZ1xuICAgICAqIG1ldGhvZC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBkb2Vzbid0IHNldCB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSBvZiBib3VuZCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBiaW5kIGFuZCBhc3NpZ24gdGhlIGJvdW5kIG1ldGhvZHMgdG8uXG4gICAgICogQHBhcmFtIHsuLi4oc3RyaW5nfHN0cmluZ1tdKX0gbWV0aG9kTmFtZXMgVGhlIG9iamVjdCBtZXRob2QgbmFtZXMgdG8gYmluZC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdmlldyA9IHtcbiAgICAgKiAgICdsYWJlbCc6ICdkb2NzJyxcbiAgICAgKiAgICdjbGljayc6IGZ1bmN0aW9uKCkge1xuICAgICAqICAgICBjb25zb2xlLmxvZygnY2xpY2tlZCAnICsgdGhpcy5sYWJlbCk7XG4gICAgICogICB9XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIF8uYmluZEFsbCh2aWV3LCBbJ2NsaWNrJ10pO1xuICAgICAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCB2aWV3LmNsaWNrKTtcbiAgICAgKiAvLyA9PiBMb2dzICdjbGlja2VkIGRvY3MnIHdoZW4gY2xpY2tlZC5cbiAgICAgKi9cbiAgICB2YXIgYmluZEFsbCA9IGZsYXRSZXN0KGZ1bmN0aW9uKG9iamVjdCwgbWV0aG9kTmFtZXMpIHtcbiAgICAgIGFycmF5RWFjaChtZXRob2ROYW1lcywgZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgIGtleSA9IHRvS2V5KGtleSk7XG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgYmluZChvYmplY3Rba2V5XSwgb2JqZWN0KSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpdGVyYXRlcyBvdmVyIGBwYWlyc2AgYW5kIGludm9rZXMgdGhlIGNvcnJlc3BvbmRpbmdcbiAgICAgKiBmdW5jdGlvbiBvZiB0aGUgZmlyc3QgcHJlZGljYXRlIHRvIHJldHVybiB0cnV0aHkuIFRoZSBwcmVkaWNhdGUtZnVuY3Rpb25cbiAgICAgKiBwYWlycyBhcmUgaW52b2tlZCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBhbmQgYXJndW1lbnRzIG9mIHRoZSBjcmVhdGVkXG4gICAgICogZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhaXJzIFRoZSBwcmVkaWNhdGUtZnVuY3Rpb24gcGFpcnMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY29tcG9zaXRlIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgZnVuYyA9IF8uY29uZChbXG4gICAgICogICBbXy5tYXRjaGVzKHsgJ2EnOiAxIH0pLCAgICAgICAgICAgXy5jb25zdGFudCgnbWF0Y2hlcyBBJyldLFxuICAgICAqICAgW18uY29uZm9ybXMoeyAnYic6IF8uaXNOdW1iZXIgfSksIF8uY29uc3RhbnQoJ21hdGNoZXMgQicpXSxcbiAgICAgKiAgIFtfLnN0dWJUcnVlLCAgICAgICAgICAgICAgICAgICAgICBfLmNvbnN0YW50KCdubyBtYXRjaCcpXVxuICAgICAqIF0pO1xuICAgICAqXG4gICAgICogZnVuYyh7ICdhJzogMSwgJ2InOiAyIH0pO1xuICAgICAqIC8vID0+ICdtYXRjaGVzIEEnXG4gICAgICpcbiAgICAgKiBmdW5jKHsgJ2EnOiAwLCAnYic6IDEgfSk7XG4gICAgICogLy8gPT4gJ21hdGNoZXMgQidcbiAgICAgKlxuICAgICAqIGZ1bmMoeyAnYSc6ICcxJywgJ2InOiAnMicgfSk7XG4gICAgICogLy8gPT4gJ25vIG1hdGNoJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbmQocGFpcnMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBwYWlycyA9PSBudWxsID8gMCA6IHBhaXJzLmxlbmd0aCxcbiAgICAgICAgICB0b0l0ZXJhdGVlID0gZ2V0SXRlcmF0ZWUoKTtcblxuICAgICAgcGFpcnMgPSAhbGVuZ3RoID8gW10gOiBhcnJheU1hcChwYWlycywgZnVuY3Rpb24ocGFpcikge1xuICAgICAgICBpZiAodHlwZW9mIHBhaXJbMV0gIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3RvSXRlcmF0ZWUocGFpclswXSksIHBhaXJbMV1dO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIHZhciBwYWlyID0gcGFpcnNbaW5kZXhdO1xuICAgICAgICAgIGlmIChhcHBseShwYWlyWzBdLCB0aGlzLCBhcmdzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGFwcGx5KHBhaXJbMV0sIHRoaXMsIGFyZ3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyB0aGUgcHJlZGljYXRlIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgd2l0aFxuICAgICAqIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IHZhbHVlcyBvZiBhIGdpdmVuIG9iamVjdCwgcmV0dXJuaW5nIGB0cnVlYCBpZlxuICAgICAqIGFsbCBwcmVkaWNhdGVzIHJldHVybiB0cnV0aHksIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGUgY3JlYXRlZCBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIGBfLmNvbmZvcm1zVG9gIHdpdGhcbiAgICAgKiBgc291cmNlYCBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHByZWRpY2F0ZXMgdG8gY29uZm9ybSB0by5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcbiAgICAgKiAgIHsgJ2EnOiAyLCAnYic6IDEgfSxcbiAgICAgKiAgIHsgJ2EnOiAxLCAnYic6IDIgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmZpbHRlcihvYmplY3RzLCBfLmNvbmZvcm1zKHsgJ2InOiBmdW5jdGlvbihuKSB7IHJldHVybiBuID4gMTsgfSB9KSk7XG4gICAgICogLy8gPT4gW3sgJ2EnOiAxLCAnYic6IDIgfV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb25mb3Jtcyhzb3VyY2UpIHtcbiAgICAgIHJldHVybiBiYXNlQ29uZm9ybXMoYmFzZUNsb25lKHNvdXJjZSwgQ0xPTkVfREVFUF9GTEFHKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuNC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byByZXR1cm4gZnJvbSB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbnN0YW50IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IF8udGltZXMoMiwgXy5jb25zdGFudCh7ICdhJzogMSB9KSk7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3RzKTtcbiAgICAgKiAvLyA9PiBbeyAnYSc6IDEgfSwgeyAnYSc6IDEgfV1cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdHNbMF0gPT09IG9iamVjdHNbMV0pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb25zdGFudCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBgdmFsdWVgIHRvIGRldGVybWluZSB3aGV0aGVyIGEgZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgcmV0dXJuZWQgaW5cbiAgICAgKiBpdHMgcGxhY2UuIFRoZSBgZGVmYXVsdFZhbHVlYCBpcyByZXR1cm5lZCBpZiBgdmFsdWVgIGlzIGBOYU5gLCBgbnVsbGAsXG4gICAgICogb3IgYHVuZGVmaW5lZGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4xNC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcGFyYW0geyp9IGRlZmF1bHRWYWx1ZSBUaGUgZGVmYXVsdCB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVmYXVsdFRvKDEsIDEwKTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICpcbiAgICAgKiBfLmRlZmF1bHRUbyh1bmRlZmluZWQsIDEwKTtcbiAgICAgKiAvLyA9PiAxMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRlZmF1bHRUbyh2YWx1ZSwgZGVmYXVsdFZhbHVlKSB7XG4gICAgICByZXR1cm4gKHZhbHVlID09IG51bGwgfHwgdmFsdWUgIT09IHZhbHVlKSA/IGRlZmF1bHRWYWx1ZSA6IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHJlc3VsdCBvZiBpbnZva2luZyB0aGUgZ2l2ZW4gZnVuY3Rpb25zXG4gICAgICogd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgdGhlIGNyZWF0ZWQgZnVuY3Rpb24sIHdoZXJlIGVhY2ggc3VjY2Vzc2l2ZVxuICAgICAqIGludm9jYXRpb24gaXMgc3VwcGxpZWQgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgcHJldmlvdXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7Li4uKEZ1bmN0aW9ufEZ1bmN0aW9uW10pfSBbZnVuY3NdIFRoZSBmdW5jdGlvbnMgdG8gaW52b2tlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbXBvc2l0ZSBmdW5jdGlvbi5cbiAgICAgKiBAc2VlIF8uZmxvd1JpZ2h0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIHNxdWFyZShuKSB7XG4gICAgICogICByZXR1cm4gbiAqIG47XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGFkZFNxdWFyZSA9IF8uZmxvdyhbXy5hZGQsIHNxdWFyZV0pO1xuICAgICAqIGFkZFNxdWFyZSgxLCAyKTtcbiAgICAgKiAvLyA9PiA5XG4gICAgICovXG4gICAgdmFyIGZsb3cgPSBjcmVhdGVGbG93KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZsb3dgIGV4Y2VwdCB0aGF0IGl0IGNyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0XG4gICAgICogaW52b2tlcyB0aGUgZ2l2ZW4gZnVuY3Rpb25zIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHsuLi4oRnVuY3Rpb258RnVuY3Rpb25bXSl9IFtmdW5jc10gVGhlIGZ1bmN0aW9ucyB0byBpbnZva2UuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY29tcG9zaXRlIGZ1bmN0aW9uLlxuICAgICAqIEBzZWUgXy5mbG93XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIHNxdWFyZShuKSB7XG4gICAgICogICByZXR1cm4gbiAqIG47XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGFkZFNxdWFyZSA9IF8uZmxvd1JpZ2h0KFtzcXVhcmUsIF8uYWRkXSk7XG4gICAgICogYWRkU3F1YXJlKDEsIDIpO1xuICAgICAqIC8vID0+IDlcbiAgICAgKi9cbiAgICB2YXIgZmxvd1JpZ2h0ID0gY3JlYXRlRmxvdyh0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGZpcnN0IGFyZ3VtZW50IGl0IHJlY2VpdmVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIEFueSB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyBgdmFsdWVgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKF8uaWRlbnRpdHkob2JqZWN0KSA9PT0gb2JqZWN0KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaWRlbnRpdHkodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIHRoZSBhcmd1bWVudHMgb2YgdGhlIGNyZWF0ZWRcbiAgICAgKiBmdW5jdGlvbi4gSWYgYGZ1bmNgIGlzIGEgcHJvcGVydHkgbmFtZSwgdGhlIGNyZWF0ZWQgZnVuY3Rpb24gcmV0dXJucyB0aGVcbiAgICAgKiBwcm9wZXJ0eSB2YWx1ZSBmb3IgYSBnaXZlbiBlbGVtZW50LiBJZiBgZnVuY2AgaXMgYW4gYXJyYXkgb3Igb2JqZWN0LCB0aGVcbiAgICAgKiBjcmVhdGVkIGZ1bmN0aW9uIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGNvbnRhaW4gdGhlIGVxdWl2YWxlbnRcbiAgICAgKiBzb3VyY2UgcHJvcGVydGllcywgb3RoZXJ3aXNlIGl0IHJldHVybnMgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHsqfSBbZnVuYz1fLmlkZW50aXR5XSBUaGUgdmFsdWUgdG8gY29udmVydCB0byBhIGNhbGxiYWNrLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgY2FsbGJhY2suXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maWx0ZXIodXNlcnMsIF8uaXRlcmF0ZWUoeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogdHJ1ZSB9KSk7XG4gICAgICogLy8gPT4gW3sgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9XVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmlsdGVyKHVzZXJzLCBfLml0ZXJhdGVlKFsndXNlcicsICdmcmVkJ10pKTtcbiAgICAgKiAvLyA9PiBbeyAndXNlcic6ICdmcmVkJywgJ2FnZSc6IDQwIH1dXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLm1hcCh1c2VycywgXy5pdGVyYXRlZSgndXNlcicpKTtcbiAgICAgKiAvLyA9PiBbJ2Jhcm5leScsICdmcmVkJ11cbiAgICAgKlxuICAgICAqIC8vIENyZWF0ZSBjdXN0b20gaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKiBfLml0ZXJhdGVlID0gXy53cmFwKF8uaXRlcmF0ZWUsIGZ1bmN0aW9uKGl0ZXJhdGVlLCBmdW5jKSB7XG4gICAgICogICByZXR1cm4gIV8uaXNSZWdFeHAoZnVuYykgPyBpdGVyYXRlZShmdW5jKSA6IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAqICAgICByZXR1cm4gZnVuYy50ZXN0KHN0cmluZyk7XG4gICAgICogICB9O1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogXy5maWx0ZXIoWydhYmMnLCAnZGVmJ10sIC9lZi8pO1xuICAgICAqIC8vID0+IFsnZGVmJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpdGVyYXRlZShmdW5jKSB7XG4gICAgICByZXR1cm4gYmFzZUl0ZXJhdGVlKHR5cGVvZiBmdW5jID09ICdmdW5jdGlvbicgPyBmdW5jIDogYmFzZUNsb25lKGZ1bmMsIENMT05FX0RFRVBfRkxBRykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHBlcmZvcm1zIGEgcGFydGlhbCBkZWVwIGNvbXBhcmlzb24gYmV0d2VlbiBhIGdpdmVuXG4gICAgICogb2JqZWN0IGFuZCBgc291cmNlYCwgcmV0dXJuaW5nIGB0cnVlYCBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGhhcyBlcXVpdmFsZW50XG4gICAgICogcHJvcGVydHkgdmFsdWVzLCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhlIGNyZWF0ZWQgZnVuY3Rpb24gaXMgZXF1aXZhbGVudCB0byBgXy5pc01hdGNoYCB3aXRoIGBzb3VyY2VgXG4gICAgICogcGFydGlhbGx5IGFwcGxpZWQuXG4gICAgICpcbiAgICAgKiBQYXJ0aWFsIGNvbXBhcmlzb25zIHdpbGwgbWF0Y2ggZW1wdHkgYXJyYXkgYW5kIGVtcHR5IG9iamVjdCBgc291cmNlYFxuICAgICAqIHZhbHVlcyBhZ2FpbnN0IGFueSBhcnJheSBvciBvYmplY3QgdmFsdWUsIHJlc3BlY3RpdmVseS4gU2VlIGBfLmlzRXF1YWxgXG4gICAgICogZm9yIGEgbGlzdCBvZiBzdXBwb3J0ZWQgdmFsdWUgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogTXVsdGlwbGUgdmFsdWVzIGNhbiBiZSBjaGVja2VkIGJ5IGNvbWJpbmluZyBzZXZlcmFsIG1hdGNoZXJzXG4gICAgICogdXNpbmcgYF8ub3ZlclNvbWVgXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgdG8gbWF0Y2guXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc3BlYyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbXG4gICAgICogICB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDMgfSxcbiAgICAgKiAgIHsgJ2EnOiA0LCAnYic6IDUsICdjJzogNiB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmlsdGVyKG9iamVjdHMsIF8ubWF0Y2hlcyh7ICdhJzogNCwgJ2MnOiA2IH0pKTtcbiAgICAgKiAvLyA9PiBbeyAnYSc6IDQsICdiJzogNSwgJ2MnOiA2IH1dXG4gICAgICpcbiAgICAgKiAvLyBDaGVja2luZyBmb3Igc2V2ZXJhbCBwb3NzaWJsZSB2YWx1ZXNcbiAgICAgKiBfLmZpbHRlcihvYmplY3RzLCBfLm92ZXJTb21lKFtfLm1hdGNoZXMoeyAnYSc6IDEgfSksIF8ubWF0Y2hlcyh7ICdhJzogNCB9KV0pKTtcbiAgICAgKiAvLyA9PiBbeyAnYSc6IDEsICdiJzogMiwgJ2MnOiAzIH0sIHsgJ2EnOiA0LCAnYic6IDUsICdjJzogNiB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hdGNoZXMoc291cmNlKSB7XG4gICAgICByZXR1cm4gYmFzZU1hdGNoZXMoYmFzZUNsb25lKHNvdXJjZSwgQ0xPTkVfREVFUF9GTEFHKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcGVyZm9ybXMgYSBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbiBiZXR3ZWVuIHRoZVxuICAgICAqIHZhbHVlIGF0IGBwYXRoYCBvZiBhIGdpdmVuIG9iamVjdCB0byBgc3JjVmFsdWVgLCByZXR1cm5pbmcgYHRydWVgIGlmIHRoZVxuICAgICAqIG9iamVjdCB2YWx1ZSBpcyBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogUGFydGlhbCBjb21wYXJpc29ucyB3aWxsIG1hdGNoIGVtcHR5IGFycmF5IGFuZCBlbXB0eSBvYmplY3RcbiAgICAgKiBgc3JjVmFsdWVgIHZhbHVlcyBhZ2FpbnN0IGFueSBhcnJheSBvciBvYmplY3QgdmFsdWUsIHJlc3BlY3RpdmVseS4gU2VlXG4gICAgICogYF8uaXNFcXVhbGAgZm9yIGEgbGlzdCBvZiBzdXBwb3J0ZWQgdmFsdWUgY29tcGFyaXNvbnMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogTXVsdGlwbGUgdmFsdWVzIGNhbiBiZSBjaGVja2VkIGJ5IGNvbWJpbmluZyBzZXZlcmFsIG1hdGNoZXJzXG4gICAgICogdXNpbmcgYF8ub3ZlclNvbWVgXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4yLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAgICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgdmFsdWUgdG8gbWF0Y2guXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc3BlYyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbXG4gICAgICogICB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDMgfSxcbiAgICAgKiAgIHsgJ2EnOiA0LCAnYic6IDUsICdjJzogNiB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmluZChvYmplY3RzLCBfLm1hdGNoZXNQcm9wZXJ0eSgnYScsIDQpKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogNCwgJ2InOiA1LCAnYyc6IDYgfVxuICAgICAqXG4gICAgICogLy8gQ2hlY2tpbmcgZm9yIHNldmVyYWwgcG9zc2libGUgdmFsdWVzXG4gICAgICogXy5maWx0ZXIob2JqZWN0cywgXy5vdmVyU29tZShbXy5tYXRjaGVzUHJvcGVydHkoJ2EnLCAxKSwgXy5tYXRjaGVzUHJvcGVydHkoJ2EnLCA0KV0pKTtcbiAgICAgKiAvLyA9PiBbeyAnYSc6IDEsICdiJzogMiwgJ2MnOiAzIH0sIHsgJ2EnOiA0LCAnYic6IDUsICdjJzogNiB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hdGNoZXNQcm9wZXJ0eShwYXRoLCBzcmNWYWx1ZSkge1xuICAgICAgcmV0dXJuIGJhc2VNYXRjaGVzUHJvcGVydHkocGF0aCwgYmFzZUNsb25lKHNyY1ZhbHVlLCBDTE9ORV9ERUVQX0ZMQUcpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIHRoZSBtZXRob2QgYXQgYHBhdGhgIG9mIGEgZ2l2ZW4gb2JqZWN0LlxuICAgICAqIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgdG8gdGhlIGludm9rZWQgbWV0aG9kLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuNy4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgbWV0aG9kIHRvIGludm9rZS5cbiAgICAgKiBAcGFyYW0gey4uLip9IFthcmdzXSBUaGUgYXJndW1lbnRzIHRvIGludm9rZSB0aGUgbWV0aG9kIHdpdGguXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgaW52b2tlciBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbXG4gICAgICogICB7ICdhJzogeyAnYic6IF8uY29uc3RhbnQoMikgfSB9LFxuICAgICAqICAgeyAnYSc6IHsgJ2InOiBfLmNvbnN0YW50KDEpIH0gfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLm1hcChvYmplY3RzLCBfLm1ldGhvZCgnYS5iJykpO1xuICAgICAqIC8vID0+IFsyLCAxXVxuICAgICAqXG4gICAgICogXy5tYXAob2JqZWN0cywgXy5tZXRob2QoWydhJywgJ2InXSkpO1xuICAgICAqIC8vID0+IFsyLCAxXVxuICAgICAqL1xuICAgIHZhciBtZXRob2QgPSBiYXNlUmVzdChmdW5jdGlvbihwYXRoLCBhcmdzKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBiYXNlSW52b2tlKG9iamVjdCwgcGF0aCwgYXJncyk7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLm1ldGhvZGA7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXNcbiAgICAgKiB0aGUgbWV0aG9kIGF0IGEgZ2l2ZW4gcGF0aCBvZiBgb2JqZWN0YC4gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZVxuICAgICAqIHByb3ZpZGVkIHRvIHRoZSBpbnZva2VkIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjcuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIHRoZSBtZXRob2Qgd2l0aC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBpbnZva2VyIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBfLnRpbWVzKDMsIF8uY29uc3RhbnQpLFxuICAgICAqICAgICBvYmplY3QgPSB7ICdhJzogYXJyYXksICdiJzogYXJyYXksICdjJzogYXJyYXkgfTtcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnYVsyXScsICdjWzBdJ10sIF8ubWV0aG9kT2Yob2JqZWN0KSk7XG4gICAgICogLy8gPT4gWzIsIDBdXG4gICAgICpcbiAgICAgKiBfLm1hcChbWydhJywgJzInXSwgWydjJywgJzAnXV0sIF8ubWV0aG9kT2Yob2JqZWN0KSk7XG4gICAgICogLy8gPT4gWzIsIDBdXG4gICAgICovXG4gICAgdmFyIG1ldGhvZE9mID0gYmFzZVJlc3QoZnVuY3Rpb24ob2JqZWN0LCBhcmdzKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICByZXR1cm4gYmFzZUludm9rZShvYmplY3QsIHBhdGgsIGFyZ3MpO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEFkZHMgYWxsIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBmdW5jdGlvbiBwcm9wZXJ0aWVzIG9mIGEgc291cmNlXG4gICAgICogb2JqZWN0IHRvIHRoZSBkZXN0aW5hdGlvbiBvYmplY3QuIElmIGBvYmplY3RgIGlzIGEgZnVuY3Rpb24sIHRoZW4gbWV0aG9kc1xuICAgICAqIGFyZSBhZGRlZCB0byBpdHMgcHJvdG90eXBlIGFzIHdlbGwuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVXNlIGBfLnJ1bkluQ29udGV4dGAgdG8gY3JlYXRlIGEgcHJpc3RpbmUgYGxvZGFzaGAgZnVuY3Rpb24gdG9cbiAgICAgKiBhdm9pZCBjb25mbGljdHMgY2F1c2VkIGJ5IG1vZGlmeWluZyB0aGUgb3JpZ2luYWwuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fSBbb2JqZWN0PWxvZGFzaF0gVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgZnVuY3Rpb25zIHRvIGFkZC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmNoYWluPXRydWVdIFNwZWNpZnkgd2hldGhlciBtaXhpbnMgYXJlIGNoYWluYWJsZS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb258T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiB2b3dlbHMoc3RyaW5nKSB7XG4gICAgICogICByZXR1cm4gXy5maWx0ZXIoc3RyaW5nLCBmdW5jdGlvbih2KSB7XG4gICAgICogICAgIHJldHVybiAvW2FlaW91XS9pLnRlc3Qodik7XG4gICAgICogICB9KTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLm1peGluKHsgJ3Zvd2Vscyc6IHZvd2VscyB9KTtcbiAgICAgKiBfLnZvd2VscygnZnJlZCcpO1xuICAgICAqIC8vID0+IFsnZSddXG4gICAgICpcbiAgICAgKiBfKCdmcmVkJykudm93ZWxzKCkudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbJ2UnXVxuICAgICAqXG4gICAgICogXy5taXhpbih7ICd2b3dlbHMnOiB2b3dlbHMgfSwgeyAnY2hhaW4nOiBmYWxzZSB9KTtcbiAgICAgKiBfKCdmcmVkJykudm93ZWxzKCk7XG4gICAgICogLy8gPT4gWydlJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtaXhpbihvYmplY3QsIHNvdXJjZSwgb3B0aW9ucykge1xuICAgICAgdmFyIHByb3BzID0ga2V5cyhzb3VyY2UpLFxuICAgICAgICAgIG1ldGhvZE5hbWVzID0gYmFzZUZ1bmN0aW9ucyhzb3VyY2UsIHByb3BzKTtcblxuICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCAmJlxuICAgICAgICAgICEoaXNPYmplY3Qoc291cmNlKSAmJiAobWV0aG9kTmFtZXMubGVuZ3RoIHx8ICFwcm9wcy5sZW5ndGgpKSkge1xuICAgICAgICBvcHRpb25zID0gc291cmNlO1xuICAgICAgICBzb3VyY2UgPSBvYmplY3Q7XG4gICAgICAgIG9iamVjdCA9IHRoaXM7XG4gICAgICAgIG1ldGhvZE5hbWVzID0gYmFzZUZ1bmN0aW9ucyhzb3VyY2UsIGtleXMoc291cmNlKSk7XG4gICAgICB9XG4gICAgICB2YXIgY2hhaW4gPSAhKGlzT2JqZWN0KG9wdGlvbnMpICYmICdjaGFpbicgaW4gb3B0aW9ucykgfHwgISFvcHRpb25zLmNoYWluLFxuICAgICAgICAgIGlzRnVuYyA9IGlzRnVuY3Rpb24ob2JqZWN0KTtcblxuICAgICAgYXJyYXlFYWNoKG1ldGhvZE5hbWVzLCBmdW5jdGlvbihtZXRob2ROYW1lKSB7XG4gICAgICAgIHZhciBmdW5jID0gc291cmNlW21ldGhvZE5hbWVdO1xuICAgICAgICBvYmplY3RbbWV0aG9kTmFtZV0gPSBmdW5jO1xuICAgICAgICBpZiAoaXNGdW5jKSB7XG4gICAgICAgICAgb2JqZWN0LnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGNoYWluQWxsID0gdGhpcy5fX2NoYWluX187XG4gICAgICAgICAgICBpZiAoY2hhaW4gfHwgY2hhaW5BbGwpIHtcbiAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG9iamVjdCh0aGlzLl9fd3JhcHBlZF9fKSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbnMgPSByZXN1bHQuX19hY3Rpb25zX18gPSBjb3B5QXJyYXkodGhpcy5fX2FjdGlvbnNfXyk7XG5cbiAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHsgJ2Z1bmMnOiBmdW5jLCAnYXJncyc6IGFyZ3VtZW50cywgJ3RoaXNBcmcnOiBvYmplY3QgfSk7XG4gICAgICAgICAgICAgIHJlc3VsdC5fX2NoYWluX18gPSBjaGFpbkFsbDtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KG9iamVjdCwgYXJyYXlQdXNoKFt0aGlzLnZhbHVlKCldLCBhcmd1bWVudHMpKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXZlcnRzIHRoZSBgX2AgdmFyaWFibGUgdG8gaXRzIHByZXZpb3VzIHZhbHVlIGFuZCByZXR1cm5zIGEgcmVmZXJlbmNlIHRvXG4gICAgICogdGhlIGBsb2Rhc2hgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGBsb2Rhc2hgIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgbG9kYXNoID0gXy5ub0NvbmZsaWN0KCk7XG4gICAgICovXG4gICAgZnVuY3Rpb24gbm9Db25mbGljdCgpIHtcbiAgICAgIGlmIChyb290Ll8gPT09IHRoaXMpIHtcbiAgICAgICAgcm9vdC5fID0gb2xkRGFzaDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYHVuZGVmaW5lZGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRpbWVzKDIsIF8ubm9vcCk7XG4gICAgICogLy8gPT4gW3VuZGVmaW5lZCwgdW5kZWZpbmVkXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG5vb3AoKSB7XG4gICAgICAvLyBObyBvcGVyYXRpb24gcGVyZm9ybWVkLlxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGdldHMgdGhlIGFyZ3VtZW50IGF0IGluZGV4IGBuYC4gSWYgYG5gIGlzIG5lZ2F0aXZlLFxuICAgICAqIHRoZSBudGggYXJndW1lbnQgZnJvbSB0aGUgZW5kIGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MF0gVGhlIGluZGV4IG9mIHRoZSBhcmd1bWVudCB0byByZXR1cm4uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcGFzcy10aHJ1IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgZnVuYyA9IF8ubnRoQXJnKDEpO1xuICAgICAqIGZ1bmMoJ2EnLCAnYicsICdjJywgJ2QnKTtcbiAgICAgKiAvLyA9PiAnYidcbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5udGhBcmcoLTIpO1xuICAgICAqIGZ1bmMoJ2EnLCAnYicsICdjJywgJ2QnKTtcbiAgICAgKiAvLyA9PiAnYydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBudGhBcmcobikge1xuICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgIHJldHVybiBiYXNlTnRoKGFyZ3MsIG4pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgaXRlcmF0ZWVzYCB3aXRoIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXNcbiAgICAgKiBhbmQgcmV0dXJucyB0aGVpciByZXN1bHRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW2l0ZXJhdGVlcz1bXy5pZGVudGl0eV1dXG4gICAgICogIFRoZSBpdGVyYXRlZXMgdG8gaW52b2tlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgZnVuYyA9IF8ub3ZlcihbTWF0aC5tYXgsIE1hdGgubWluXSk7XG4gICAgICpcbiAgICAgKiBmdW5jKDEsIDIsIDMsIDQpO1xuICAgICAqIC8vID0+IFs0LCAxXVxuICAgICAqL1xuICAgIHZhciBvdmVyID0gY3JlYXRlT3ZlcihhcnJheU1hcCk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBjaGVja3MgaWYgKiphbGwqKiBvZiB0aGUgYHByZWRpY2F0ZXNgIHJldHVyblxuICAgICAqIHRydXRoeSB3aGVuIGludm9rZWQgd2l0aCB0aGUgYXJndW1lbnRzIGl0IHJlY2VpdmVzLlxuICAgICAqXG4gICAgICogRm9sbG93aW5nIHNob3J0aGFuZHMgYXJlIHBvc3NpYmxlIGZvciBwcm92aWRpbmcgcHJlZGljYXRlcy5cbiAgICAgKiBQYXNzIGFuIGBPYmplY3RgIGFuZCBpdCB3aWxsIGJlIHVzZWQgYXMgYW4gcGFyYW1ldGVyIGZvciBgXy5tYXRjaGVzYCB0byBjcmVhdGUgdGhlIHByZWRpY2F0ZS5cbiAgICAgKiBQYXNzIGFuIGBBcnJheWAgb2YgcGFyYW1ldGVycyBmb3IgYF8ubWF0Y2hlc1Byb3BlcnR5YCBhbmQgdGhlIHByZWRpY2F0ZSB3aWxsIGJlIGNyZWF0ZWQgdXNpbmcgdGhlbS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHsuLi4oRnVuY3Rpb258RnVuY3Rpb25bXSl9IFtwcmVkaWNhdGVzPVtfLmlkZW50aXR5XV1cbiAgICAgKiAgVGhlIHByZWRpY2F0ZXMgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5vdmVyRXZlcnkoW0Jvb2xlYW4sIGlzRmluaXRlXSk7XG4gICAgICpcbiAgICAgKiBmdW5jKCcxJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogZnVuYyhudWxsKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogZnVuYyhOYU4pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIG92ZXJFdmVyeSA9IGNyZWF0ZU92ZXIoYXJyYXlFdmVyeSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBjaGVja3MgaWYgKiphbnkqKiBvZiB0aGUgYHByZWRpY2F0ZXNgIHJldHVyblxuICAgICAqIHRydXRoeSB3aGVuIGludm9rZWQgd2l0aCB0aGUgYXJndW1lbnRzIGl0IHJlY2VpdmVzLlxuICAgICAqXG4gICAgICogRm9sbG93aW5nIHNob3J0aGFuZHMgYXJlIHBvc3NpYmxlIGZvciBwcm92aWRpbmcgcHJlZGljYXRlcy5cbiAgICAgKiBQYXNzIGFuIGBPYmplY3RgIGFuZCBpdCB3aWxsIGJlIHVzZWQgYXMgYW4gcGFyYW1ldGVyIGZvciBgXy5tYXRjaGVzYCB0byBjcmVhdGUgdGhlIHByZWRpY2F0ZS5cbiAgICAgKiBQYXNzIGFuIGBBcnJheWAgb2YgcGFyYW1ldGVycyBmb3IgYF8ubWF0Y2hlc1Byb3BlcnR5YCBhbmQgdGhlIHByZWRpY2F0ZSB3aWxsIGJlIGNyZWF0ZWQgdXNpbmcgdGhlbS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHsuLi4oRnVuY3Rpb258RnVuY3Rpb25bXSl9IFtwcmVkaWNhdGVzPVtfLmlkZW50aXR5XV1cbiAgICAgKiAgVGhlIHByZWRpY2F0ZXMgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5vdmVyU29tZShbQm9vbGVhbiwgaXNGaW5pdGVdKTtcbiAgICAgKlxuICAgICAqIGZ1bmMoJzEnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBmdW5jKG51bGwpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGZ1bmMoTmFOKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogdmFyIG1hdGNoZXNGdW5jID0gXy5vdmVyU29tZShbeyAnYSc6IDEgfSwgeyAnYSc6IDIgfV0pXG4gICAgICogdmFyIG1hdGNoZXNQcm9wZXJ0eUZ1bmMgPSBfLm92ZXJTb21lKFtbJ2EnLCAxXSwgWydhJywgMl1dKVxuICAgICAqL1xuICAgIHZhciBvdmVyU29tZSA9IGNyZWF0ZU92ZXIoYXJyYXlTb21lKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHZhbHVlIGF0IGBwYXRoYCBvZiBhIGdpdmVuIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjQuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbXG4gICAgICogICB7ICdhJzogeyAnYic6IDIgfSB9LFxuICAgICAqICAgeyAnYSc6IHsgJ2InOiAxIH0gfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLm1hcChvYmplY3RzLCBfLnByb3BlcnR5KCdhLmInKSk7XG4gICAgICogLy8gPT4gWzIsIDFdXG4gICAgICpcbiAgICAgKiBfLm1hcChfLnNvcnRCeShvYmplY3RzLCBfLnByb3BlcnR5KFsnYScsICdiJ10pKSwgJ2EuYicpO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHByb3BlcnR5KHBhdGgpIHtcbiAgICAgIHJldHVybiBpc0tleShwYXRoKSA/IGJhc2VQcm9wZXJ0eSh0b0tleShwYXRoKSkgOiBiYXNlUHJvcGVydHlEZWVwKHBhdGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5wcm9wZXJ0eWA7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnNcbiAgICAgKiB0aGUgdmFsdWUgYXQgYSBnaXZlbiBwYXRoIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYWNjZXNzb3IgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFswLCAxLCAyXSxcbiAgICAgKiAgICAgb2JqZWN0ID0geyAnYSc6IGFycmF5LCAnYic6IGFycmF5LCAnYyc6IGFycmF5IH07XG4gICAgICpcbiAgICAgKiBfLm1hcChbJ2FbMl0nLCAnY1swXSddLCBfLnByb3BlcnR5T2Yob2JqZWN0KSk7XG4gICAgICogLy8gPT4gWzIsIDBdXG4gICAgICpcbiAgICAgKiBfLm1hcChbWydhJywgJzInXSwgWydjJywgJzAnXV0sIF8ucHJvcGVydHlPZihvYmplY3QpKTtcbiAgICAgKiAvLyA9PiBbMiwgMF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwcm9wZXJ0eU9mKG9iamVjdCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHBhdGgpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogYmFzZUdldChvYmplY3QsIHBhdGgpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIG51bWJlcnMgKHBvc2l0aXZlIGFuZC9vciBuZWdhdGl2ZSkgcHJvZ3Jlc3NpbmcgZnJvbVxuICAgICAqIGBzdGFydGAgdXAgdG8sIGJ1dCBub3QgaW5jbHVkaW5nLCBgZW5kYC4gQSBzdGVwIG9mIGAtMWAgaXMgdXNlZCBpZiBhIG5lZ2F0aXZlXG4gICAgICogYHN0YXJ0YCBpcyBzcGVjaWZpZWQgd2l0aG91dCBhbiBgZW5kYCBvciBgc3RlcGAuIElmIGBlbmRgIGlzIG5vdCBzcGVjaWZpZWQsXG4gICAgICogaXQncyBzZXQgdG8gYHN0YXJ0YCB3aXRoIGBzdGFydGAgdGhlbiBzZXQgdG8gYDBgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIEphdmFTY3JpcHQgZm9sbG93cyB0aGUgSUVFRS03NTQgc3RhbmRhcmQgZm9yIHJlc29sdmluZ1xuICAgICAqIGZsb2F0aW5nLXBvaW50IHZhbHVlcyB3aGljaCBjYW4gcHJvZHVjZSB1bmV4cGVjdGVkIHJlc3VsdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kIFRoZSBlbmQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0xXSBUaGUgdmFsdWUgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCBieS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHJhbmdlIG9mIG51bWJlcnMuXG4gICAgICogQHNlZSBfLmluUmFuZ2UsIF8ucmFuZ2VSaWdodFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKDQpO1xuICAgICAqIC8vID0+IFswLCAxLCAyLCAzXVxuICAgICAqXG4gICAgICogXy5yYW5nZSgtNCk7XG4gICAgICogLy8gPT4gWzAsIC0xLCAtMiwgLTNdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKDEsIDUpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzLCA0XVxuICAgICAqXG4gICAgICogXy5yYW5nZSgwLCAyMCwgNSk7XG4gICAgICogLy8gPT4gWzAsIDUsIDEwLCAxNV1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2UoMCwgLTQsIC0xKTtcbiAgICAgKiAvLyA9PiBbMCwgLTEsIC0yLCAtM11cbiAgICAgKlxuICAgICAqIF8ucmFuZ2UoMSwgNCwgMCk7XG4gICAgICogLy8gPT4gWzEsIDEsIDFdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKDApO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgdmFyIHJhbmdlID0gY3JlYXRlUmFuZ2UoKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucmFuZ2VgIGV4Y2VwdCB0aGF0IGl0IHBvcHVsYXRlcyB2YWx1ZXMgaW5cbiAgICAgKiBkZXNjZW5kaW5nIG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZCBUaGUgZW5kIG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MV0gVGhlIHZhbHVlIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgYnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSByYW5nZSBvZiBudW1iZXJzLlxuICAgICAqIEBzZWUgXy5pblJhbmdlLCBfLnJhbmdlXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCg0KTtcbiAgICAgKiAvLyA9PiBbMywgMiwgMSwgMF1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCgtNCk7XG4gICAgICogLy8gPT4gWy0zLCAtMiwgLTEsIDBdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlUmlnaHQoMSwgNSk7XG4gICAgICogLy8gPT4gWzQsIDMsIDIsIDFdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlUmlnaHQoMCwgMjAsIDUpO1xuICAgICAqIC8vID0+IFsxNSwgMTAsIDUsIDBdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlUmlnaHQoMCwgLTQsIC0xKTtcbiAgICAgKiAvLyA9PiBbLTMsIC0yLCAtMSwgMF1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCgxLCA0LCAwKTtcbiAgICAgKiAvLyA9PiBbMSwgMSwgMV1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCgwKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqL1xuICAgIHZhciByYW5nZVJpZ2h0ID0gY3JlYXRlUmFuZ2UodHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGVtcHR5IGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTMuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZW1wdHkgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheXMgPSBfLnRpbWVzKDIsIF8uc3R1YkFycmF5KTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5cyk7XG4gICAgICogLy8gPT4gW1tdLCBbXV1cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5c1swXSA9PT0gYXJyYXlzWzFdKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0dWJBcnJheSgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4xMy4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRpbWVzKDIsIF8uc3R1YkZhbHNlKTtcbiAgICAgKiAvLyA9PiBbZmFsc2UsIGZhbHNlXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0dWJGYWxzZSgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGVtcHR5IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEzLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBlbXB0eSBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gXy50aW1lcygyLCBfLnN0dWJPYmplY3QpO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2cob2JqZWN0cyk7XG4gICAgICogLy8gPT4gW3t9LCB7fV1cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdHNbMF0gPT09IG9iamVjdHNbMV0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3R1Yk9iamVjdCgpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGFuIGVtcHR5IHN0cmluZy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEzLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50aW1lcygyLCBfLnN0dWJTdHJpbmcpO1xuICAgICAqIC8vID0+IFsnJywgJyddXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3R1YlN0cmluZygpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGB0cnVlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEzLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50aW1lcygyLCBfLnN0dWJUcnVlKTtcbiAgICAgKiAvLyA9PiBbdHJ1ZSwgdHJ1ZV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdHViVHJ1ZSgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEludm9rZXMgdGhlIGl0ZXJhdGVlIGBuYCB0aW1lcywgcmV0dXJuaW5nIGFuIGFycmF5IG9mIHRoZSByZXN1bHRzIG9mXG4gICAgICogZWFjaCBpbnZvY2F0aW9uLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDsgKGluZGV4KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiB0aW1lcyB0byBpbnZva2UgYGl0ZXJhdGVlYC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGltZXMoMywgU3RyaW5nKTtcbiAgICAgKiAvLyA9PiBbJzAnLCAnMScsICcyJ11cbiAgICAgKlxuICAgICAqICBfLnRpbWVzKDQsIF8uY29uc3RhbnQoMCkpO1xuICAgICAqIC8vID0+IFswLCAwLCAwLCAwXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRpbWVzKG4sIGl0ZXJhdGVlKSB7XG4gICAgICBuID0gdG9JbnRlZ2VyKG4pO1xuICAgICAgaWYgKG4gPCAxIHx8IG4gPiBNQVhfU0FGRV9JTlRFR0VSKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IE1BWF9BUlJBWV9MRU5HVEgsXG4gICAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWluKG4sIE1BWF9BUlJBWV9MRU5HVEgpO1xuXG4gICAgICBpdGVyYXRlZSA9IGdldEl0ZXJhdGVlKGl0ZXJhdGVlKTtcbiAgICAgIG4gLT0gTUFYX0FSUkFZX0xFTkdUSDtcblxuICAgICAgdmFyIHJlc3VsdCA9IGJhc2VUaW1lcyhsZW5ndGgsIGl0ZXJhdGVlKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgICAgICBpdGVyYXRlZShpbmRleCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHByb3BlcnR5IHBhdGggYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9QYXRoKCdhLmIuYycpO1xuICAgICAqIC8vID0+IFsnYScsICdiJywgJ2MnXVxuICAgICAqXG4gICAgICogXy50b1BhdGgoJ2FbMF0uYi5jJyk7XG4gICAgICogLy8gPT4gWydhJywgJzAnLCAnYicsICdjJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b1BhdGgodmFsdWUpIHtcbiAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gYXJyYXlNYXAodmFsdWUsIHRvS2V5KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc1N5bWJvbCh2YWx1ZSkgPyBbdmFsdWVdIDogY29weUFycmF5KHN0cmluZ1RvUGF0aCh0b1N0cmluZyh2YWx1ZSkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSB1bmlxdWUgSUQuIElmIGBwcmVmaXhgIGlzIGdpdmVuLCB0aGUgSUQgaXMgYXBwZW5kZWQgdG8gaXQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbcHJlZml4PScnXSBUaGUgdmFsdWUgdG8gcHJlZml4IHRoZSBJRCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHVuaXF1ZSBJRC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy51bmlxdWVJZCgnY29udGFjdF8nKTtcbiAgICAgKiAvLyA9PiAnY29udGFjdF8xMDQnXG4gICAgICpcbiAgICAgKiBfLnVuaXF1ZUlkKCk7XG4gICAgICogLy8gPT4gJzEwNSdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmlxdWVJZChwcmVmaXgpIHtcbiAgICAgIHZhciBpZCA9ICsraWRDb3VudGVyO1xuICAgICAgcmV0dXJuIHRvU3RyaW5nKHByZWZpeCkgKyBpZDtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBBZGRzIHR3byBudW1iZXJzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuNC4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYXVnZW5kIFRoZSBmaXJzdCBudW1iZXIgaW4gYW4gYWRkaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGFkZGVuZCBUaGUgc2Vjb25kIG51bWJlciBpbiBhbiBhZGRpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSB0b3RhbC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5hZGQoNiwgNCk7XG4gICAgICogLy8gPT4gMTBcbiAgICAgKi9cbiAgICB2YXIgYWRkID0gY3JlYXRlTWF0aE9wZXJhdGlvbihmdW5jdGlvbihhdWdlbmQsIGFkZGVuZCkge1xuICAgICAgcmV0dXJuIGF1Z2VuZCArIGFkZGVuZDtcbiAgICB9LCAwKTtcblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIGBudW1iZXJgIHJvdW5kZWQgdXAgdG8gYHByZWNpc2lvbmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4xMC4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyIFRoZSBudW1iZXIgdG8gcm91bmQgdXAuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtwcmVjaXNpb249MF0gVGhlIHByZWNpc2lvbiB0byByb3VuZCB1cCB0by5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSByb3VuZGVkIHVwIG51bWJlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5jZWlsKDQuMDA2KTtcbiAgICAgKiAvLyA9PiA1XG4gICAgICpcbiAgICAgKiBfLmNlaWwoNi4wMDQsIDIpO1xuICAgICAqIC8vID0+IDYuMDFcbiAgICAgKlxuICAgICAqIF8uY2VpbCg2MDQwLCAtMik7XG4gICAgICogLy8gPT4gNjEwMFxuICAgICAqL1xuICAgIHZhciBjZWlsID0gY3JlYXRlUm91bmQoJ2NlaWwnKTtcblxuICAgIC8qKlxuICAgICAqIERpdmlkZSB0d28gbnVtYmVycy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjcuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRpdmlkZW5kIFRoZSBmaXJzdCBudW1iZXIgaW4gYSBkaXZpc2lvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGl2aXNvciBUaGUgc2Vjb25kIG51bWJlciBpbiBhIGRpdmlzaW9uLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHF1b3RpZW50LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRpdmlkZSg2LCA0KTtcbiAgICAgKiAvLyA9PiAxLjVcbiAgICAgKi9cbiAgICB2YXIgZGl2aWRlID0gY3JlYXRlTWF0aE9wZXJhdGlvbihmdW5jdGlvbihkaXZpZGVuZCwgZGl2aXNvcikge1xuICAgICAgcmV0dXJuIGRpdmlkZW5kIC8gZGl2aXNvcjtcbiAgICB9LCAxKTtcblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIGBudW1iZXJgIHJvdW5kZWQgZG93biB0byBgcHJlY2lzaW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjEwLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgVGhlIG51bWJlciB0byByb3VuZCBkb3duLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcHJlY2lzaW9uPTBdIFRoZSBwcmVjaXNpb24gdG8gcm91bmQgZG93biB0by5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSByb3VuZGVkIGRvd24gbnVtYmVyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZsb29yKDQuMDA2KTtcbiAgICAgKiAvLyA9PiA0XG4gICAgICpcbiAgICAgKiBfLmZsb29yKDAuMDQ2LCAyKTtcbiAgICAgKiAvLyA9PiAwLjA0XG4gICAgICpcbiAgICAgKiBfLmZsb29yKDQwNjAsIC0yKTtcbiAgICAgKiAvLyA9PiA0MDAwXG4gICAgICovXG4gICAgdmFyIGZsb29yID0gY3JlYXRlUm91bmQoJ2Zsb29yJyk7XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB0aGUgbWF4aW11bSB2YWx1ZSBvZiBgYXJyYXlgLiBJZiBgYXJyYXlgIGlzIGVtcHR5IG9yIGZhbHNleSxcbiAgICAgKiBgdW5kZWZpbmVkYCBpcyByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWF4aW11bSB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tYXgoWzQsIDIsIDgsIDZdKTtcbiAgICAgKiAvLyA9PiA4XG4gICAgICpcbiAgICAgKiBfLm1heChbXSk7XG4gICAgICogLy8gPT4gdW5kZWZpbmVkXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWF4KGFycmF5KSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlRXh0cmVtdW0oYXJyYXksIGlkZW50aXR5LCBiYXNlR3QpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ubWF4YCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgaW4gYGFycmF5YCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uIGJ5IHdoaWNoXG4gICAgICogdGhlIHZhbHVlIGlzIHJhbmtlZC4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXhpbXVtIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICduJzogMSB9LCB7ICduJzogMiB9XTtcbiAgICAgKlxuICAgICAqIF8ubWF4Qnkob2JqZWN0cywgZnVuY3Rpb24obykgeyByZXR1cm4gby5uOyB9KTtcbiAgICAgKiAvLyA9PiB7ICduJzogMiB9XG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLm1heEJ5KG9iamVjdHMsICduJyk7XG4gICAgICogLy8gPT4geyAnbic6IDIgfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1heEJ5KGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXG4gICAgICAgID8gYmFzZUV4dHJlbXVtKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMiksIGJhc2VHdClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgdGhlIG1lYW4gb2YgdGhlIHZhbHVlcyBpbiBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIG1lYW4uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubWVhbihbNCwgMiwgOCwgNl0pO1xuICAgICAqIC8vID0+IDVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtZWFuKGFycmF5KSB7XG4gICAgICByZXR1cm4gYmFzZU1lYW4oYXJyYXksIGlkZW50aXR5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLm1lYW5gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBpbiBgYXJyYXlgIHRvIGdlbmVyYXRlIHRoZSB2YWx1ZSB0byBiZSBhdmVyYWdlZC5cbiAgICAgKiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjcuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbWVhbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAnbic6IDQgfSwgeyAnbic6IDIgfSwgeyAnbic6IDggfSwgeyAnbic6IDYgfV07XG4gICAgICpcbiAgICAgKiBfLm1lYW5CeShvYmplY3RzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLm47IH0pO1xuICAgICAqIC8vID0+IDVcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ubWVhbkJ5KG9iamVjdHMsICduJyk7XG4gICAgICogLy8gPT4gNVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1lYW5CeShhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBiYXNlTWVhbihhcnJheSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB0aGUgbWluaW11bSB2YWx1ZSBvZiBgYXJyYXlgLiBJZiBgYXJyYXlgIGlzIGVtcHR5IG9yIGZhbHNleSxcbiAgICAgKiBgdW5kZWZpbmVkYCBpcyByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWluaW11bSB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5taW4oWzQsIDIsIDgsIDZdKTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICpcbiAgICAgKiBfLm1pbihbXSk7XG4gICAgICogLy8gPT4gdW5kZWZpbmVkXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWluKGFycmF5KSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlRXh0cmVtdW0oYXJyYXksIGlkZW50aXR5LCBiYXNlTHQpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ubWluYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgaW4gYGFycmF5YCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uIGJ5IHdoaWNoXG4gICAgICogdGhlIHZhbHVlIGlzIHJhbmtlZC4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtaW5pbXVtIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICduJzogMSB9LCB7ICduJzogMiB9XTtcbiAgICAgKlxuICAgICAqIF8ubWluQnkob2JqZWN0cywgZnVuY3Rpb24obykgeyByZXR1cm4gby5uOyB9KTtcbiAgICAgKiAvLyA9PiB7ICduJzogMSB9XG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLm1pbkJ5KG9iamVjdHMsICduJyk7XG4gICAgICogLy8gPT4geyAnbic6IDEgfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1pbkJ5KGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXG4gICAgICAgID8gYmFzZUV4dHJlbXVtKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMiksIGJhc2VMdClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTXVsdGlwbHkgdHdvIG51bWJlcnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC43LjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtdWx0aXBsaWVyIFRoZSBmaXJzdCBudW1iZXIgaW4gYSBtdWx0aXBsaWNhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbXVsdGlwbGljYW5kIFRoZSBzZWNvbmQgbnVtYmVyIGluIGEgbXVsdGlwbGljYXRpb24uXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgcHJvZHVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tdWx0aXBseSg2LCA0KTtcbiAgICAgKiAvLyA9PiAyNFxuICAgICAqL1xuICAgIHZhciBtdWx0aXBseSA9IGNyZWF0ZU1hdGhPcGVyYXRpb24oZnVuY3Rpb24obXVsdGlwbGllciwgbXVsdGlwbGljYW5kKSB7XG4gICAgICByZXR1cm4gbXVsdGlwbGllciAqIG11bHRpcGxpY2FuZDtcbiAgICB9LCAxKTtcblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIGBudW1iZXJgIHJvdW5kZWQgdG8gYHByZWNpc2lvbmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4xMC4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyIFRoZSBudW1iZXIgdG8gcm91bmQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtwcmVjaXNpb249MF0gVGhlIHByZWNpc2lvbiB0byByb3VuZCB0by5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSByb3VuZGVkIG51bWJlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yb3VuZCg0LjAwNik7XG4gICAgICogLy8gPT4gNFxuICAgICAqXG4gICAgICogXy5yb3VuZCg0LjAwNiwgMik7XG4gICAgICogLy8gPT4gNC4wMVxuICAgICAqXG4gICAgICogXy5yb3VuZCg0MDYwLCAtMik7XG4gICAgICogLy8gPT4gNDEwMFxuICAgICAqL1xuICAgIHZhciByb3VuZCA9IGNyZWF0ZVJvdW5kKCdyb3VuZCcpO1xuXG4gICAgLyoqXG4gICAgICogU3VidHJhY3QgdHdvIG51bWJlcnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtaW51ZW5kIFRoZSBmaXJzdCBudW1iZXIgaW4gYSBzdWJ0cmFjdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3VidHJhaGVuZCBUaGUgc2Vjb25kIG51bWJlciBpbiBhIHN1YnRyYWN0aW9uLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGRpZmZlcmVuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc3VidHJhY3QoNiwgNCk7XG4gICAgICogLy8gPT4gMlxuICAgICAqL1xuICAgIHZhciBzdWJ0cmFjdCA9IGNyZWF0ZU1hdGhPcGVyYXRpb24oZnVuY3Rpb24obWludWVuZCwgc3VidHJhaGVuZCkge1xuICAgICAgcmV0dXJuIG1pbnVlbmQgLSBzdWJ0cmFoZW5kO1xuICAgIH0sIDApO1xuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgdGhlIHN1bSBvZiB0aGUgdmFsdWVzIGluIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy40LjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3VtLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnN1bShbNCwgMiwgOCwgNl0pO1xuICAgICAqIC8vID0+IDIwXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3VtKGFycmF5KSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlU3VtKGFycmF5LCBpZGVudGl0eSlcbiAgICAgICAgOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc3VtYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgaW4gYGFycmF5YCB0byBnZW5lcmF0ZSB0aGUgdmFsdWUgdG8gYmUgc3VtbWVkLlxuICAgICAqIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdW0uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ24nOiA0IH0sIHsgJ24nOiAyIH0sIHsgJ24nOiA4IH0sIHsgJ24nOiA2IH1dO1xuICAgICAqXG4gICAgICogXy5zdW1CeShvYmplY3RzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLm47IH0pO1xuICAgICAqIC8vID0+IDIwXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnN1bUJ5KG9iamVjdHMsICduJyk7XG4gICAgICogLy8gPT4gMjBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdW1CeShhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VTdW0oYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSlcbiAgICAgICAgOiAwO1xuICAgIH1cblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8vIEFkZCBtZXRob2RzIHRoYXQgcmV0dXJuIHdyYXBwZWQgdmFsdWVzIGluIGNoYWluIHNlcXVlbmNlcy5cbiAgICBsb2Rhc2guYWZ0ZXIgPSBhZnRlcjtcbiAgICBsb2Rhc2guYXJ5ID0gYXJ5O1xuICAgIGxvZGFzaC5hc3NpZ24gPSBhc3NpZ247XG4gICAgbG9kYXNoLmFzc2lnbkluID0gYXNzaWduSW47XG4gICAgbG9kYXNoLmFzc2lnbkluV2l0aCA9IGFzc2lnbkluV2l0aDtcbiAgICBsb2Rhc2guYXNzaWduV2l0aCA9IGFzc2lnbldpdGg7XG4gICAgbG9kYXNoLmF0ID0gYXQ7XG4gICAgbG9kYXNoLmJlZm9yZSA9IGJlZm9yZTtcbiAgICBsb2Rhc2guYmluZCA9IGJpbmQ7XG4gICAgbG9kYXNoLmJpbmRBbGwgPSBiaW5kQWxsO1xuICAgIGxvZGFzaC5iaW5kS2V5ID0gYmluZEtleTtcbiAgICBsb2Rhc2guY2FzdEFycmF5ID0gY2FzdEFycmF5O1xuICAgIGxvZGFzaC5jaGFpbiA9IGNoYWluO1xuICAgIGxvZGFzaC5jaHVuayA9IGNodW5rO1xuICAgIGxvZGFzaC5jb21wYWN0ID0gY29tcGFjdDtcbiAgICBsb2Rhc2guY29uY2F0ID0gY29uY2F0O1xuICAgIGxvZGFzaC5jb25kID0gY29uZDtcbiAgICBsb2Rhc2guY29uZm9ybXMgPSBjb25mb3JtcztcbiAgICBsb2Rhc2guY29uc3RhbnQgPSBjb25zdGFudDtcbiAgICBsb2Rhc2guY291bnRCeSA9IGNvdW50Qnk7XG4gICAgbG9kYXNoLmNyZWF0ZSA9IGNyZWF0ZTtcbiAgICBsb2Rhc2guY3VycnkgPSBjdXJyeTtcbiAgICBsb2Rhc2guY3VycnlSaWdodCA9IGN1cnJ5UmlnaHQ7XG4gICAgbG9kYXNoLmRlYm91bmNlID0gZGVib3VuY2U7XG4gICAgbG9kYXNoLmRlZmF1bHRzID0gZGVmYXVsdHM7XG4gICAgbG9kYXNoLmRlZmF1bHRzRGVlcCA9IGRlZmF1bHRzRGVlcDtcbiAgICBsb2Rhc2guZGVmZXIgPSBkZWZlcjtcbiAgICBsb2Rhc2guZGVsYXkgPSBkZWxheTtcbiAgICBsb2Rhc2guZGlmZmVyZW5jZSA9IGRpZmZlcmVuY2U7XG4gICAgbG9kYXNoLmRpZmZlcmVuY2VCeSA9IGRpZmZlcmVuY2VCeTtcbiAgICBsb2Rhc2guZGlmZmVyZW5jZVdpdGggPSBkaWZmZXJlbmNlV2l0aDtcbiAgICBsb2Rhc2guZHJvcCA9IGRyb3A7XG4gICAgbG9kYXNoLmRyb3BSaWdodCA9IGRyb3BSaWdodDtcbiAgICBsb2Rhc2guZHJvcFJpZ2h0V2hpbGUgPSBkcm9wUmlnaHRXaGlsZTtcbiAgICBsb2Rhc2guZHJvcFdoaWxlID0gZHJvcFdoaWxlO1xuICAgIGxvZGFzaC5maWxsID0gZmlsbDtcbiAgICBsb2Rhc2guZmlsdGVyID0gZmlsdGVyO1xuICAgIGxvZGFzaC5mbGF0TWFwID0gZmxhdE1hcDtcbiAgICBsb2Rhc2guZmxhdE1hcERlZXAgPSBmbGF0TWFwRGVlcDtcbiAgICBsb2Rhc2guZmxhdE1hcERlcHRoID0gZmxhdE1hcERlcHRoO1xuICAgIGxvZGFzaC5mbGF0dGVuID0gZmxhdHRlbjtcbiAgICBsb2Rhc2guZmxhdHRlbkRlZXAgPSBmbGF0dGVuRGVlcDtcbiAgICBsb2Rhc2guZmxhdHRlbkRlcHRoID0gZmxhdHRlbkRlcHRoO1xuICAgIGxvZGFzaC5mbGlwID0gZmxpcDtcbiAgICBsb2Rhc2guZmxvdyA9IGZsb3c7XG4gICAgbG9kYXNoLmZsb3dSaWdodCA9IGZsb3dSaWdodDtcbiAgICBsb2Rhc2guZnJvbVBhaXJzID0gZnJvbVBhaXJzO1xuICAgIGxvZGFzaC5mdW5jdGlvbnMgPSBmdW5jdGlvbnM7XG4gICAgbG9kYXNoLmZ1bmN0aW9uc0luID0gZnVuY3Rpb25zSW47XG4gICAgbG9kYXNoLmdyb3VwQnkgPSBncm91cEJ5O1xuICAgIGxvZGFzaC5pbml0aWFsID0gaW5pdGlhbDtcbiAgICBsb2Rhc2guaW50ZXJzZWN0aW9uID0gaW50ZXJzZWN0aW9uO1xuICAgIGxvZGFzaC5pbnRlcnNlY3Rpb25CeSA9IGludGVyc2VjdGlvbkJ5O1xuICAgIGxvZGFzaC5pbnRlcnNlY3Rpb25XaXRoID0gaW50ZXJzZWN0aW9uV2l0aDtcbiAgICBsb2Rhc2guaW52ZXJ0ID0gaW52ZXJ0O1xuICAgIGxvZGFzaC5pbnZlcnRCeSA9IGludmVydEJ5O1xuICAgIGxvZGFzaC5pbnZva2VNYXAgPSBpbnZva2VNYXA7XG4gICAgbG9kYXNoLml0ZXJhdGVlID0gaXRlcmF0ZWU7XG4gICAgbG9kYXNoLmtleUJ5ID0ga2V5Qnk7XG4gICAgbG9kYXNoLmtleXMgPSBrZXlzO1xuICAgIGxvZGFzaC5rZXlzSW4gPSBrZXlzSW47XG4gICAgbG9kYXNoLm1hcCA9IG1hcDtcbiAgICBsb2Rhc2gubWFwS2V5cyA9IG1hcEtleXM7XG4gICAgbG9kYXNoLm1hcFZhbHVlcyA9IG1hcFZhbHVlcztcbiAgICBsb2Rhc2gubWF0Y2hlcyA9IG1hdGNoZXM7XG4gICAgbG9kYXNoLm1hdGNoZXNQcm9wZXJ0eSA9IG1hdGNoZXNQcm9wZXJ0eTtcbiAgICBsb2Rhc2gubWVtb2l6ZSA9IG1lbW9pemU7XG4gICAgbG9kYXNoLm1lcmdlID0gbWVyZ2U7XG4gICAgbG9kYXNoLm1lcmdlV2l0aCA9IG1lcmdlV2l0aDtcbiAgICBsb2Rhc2gubWV0aG9kID0gbWV0aG9kO1xuICAgIGxvZGFzaC5tZXRob2RPZiA9IG1ldGhvZE9mO1xuICAgIGxvZGFzaC5taXhpbiA9IG1peGluO1xuICAgIGxvZGFzaC5uZWdhdGUgPSBuZWdhdGU7XG4gICAgbG9kYXNoLm50aEFyZyA9IG50aEFyZztcbiAgICBsb2Rhc2gub21pdCA9IG9taXQ7XG4gICAgbG9kYXNoLm9taXRCeSA9IG9taXRCeTtcbiAgICBsb2Rhc2gub25jZSA9IG9uY2U7XG4gICAgbG9kYXNoLm9yZGVyQnkgPSBvcmRlckJ5O1xuICAgIGxvZGFzaC5vdmVyID0gb3ZlcjtcbiAgICBsb2Rhc2gub3ZlckFyZ3MgPSBvdmVyQXJncztcbiAgICBsb2Rhc2gub3ZlckV2ZXJ5ID0gb3ZlckV2ZXJ5O1xuICAgIGxvZGFzaC5vdmVyU29tZSA9IG92ZXJTb21lO1xuICAgIGxvZGFzaC5wYXJ0aWFsID0gcGFydGlhbDtcbiAgICBsb2Rhc2gucGFydGlhbFJpZ2h0ID0gcGFydGlhbFJpZ2h0O1xuICAgIGxvZGFzaC5wYXJ0aXRpb24gPSBwYXJ0aXRpb247XG4gICAgbG9kYXNoLnBpY2sgPSBwaWNrO1xuICAgIGxvZGFzaC5waWNrQnkgPSBwaWNrQnk7XG4gICAgbG9kYXNoLnByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgbG9kYXNoLnByb3BlcnR5T2YgPSBwcm9wZXJ0eU9mO1xuICAgIGxvZGFzaC5wdWxsID0gcHVsbDtcbiAgICBsb2Rhc2gucHVsbEFsbCA9IHB1bGxBbGw7XG4gICAgbG9kYXNoLnB1bGxBbGxCeSA9IHB1bGxBbGxCeTtcbiAgICBsb2Rhc2gucHVsbEFsbFdpdGggPSBwdWxsQWxsV2l0aDtcbiAgICBsb2Rhc2gucHVsbEF0ID0gcHVsbEF0O1xuICAgIGxvZGFzaC5yYW5nZSA9IHJhbmdlO1xuICAgIGxvZGFzaC5yYW5nZVJpZ2h0ID0gcmFuZ2VSaWdodDtcbiAgICBsb2Rhc2gucmVhcmcgPSByZWFyZztcbiAgICBsb2Rhc2gucmVqZWN0ID0gcmVqZWN0O1xuICAgIGxvZGFzaC5yZW1vdmUgPSByZW1vdmU7XG4gICAgbG9kYXNoLnJlc3QgPSByZXN0O1xuICAgIGxvZGFzaC5yZXZlcnNlID0gcmV2ZXJzZTtcbiAgICBsb2Rhc2guc2FtcGxlU2l6ZSA9IHNhbXBsZVNpemU7XG4gICAgbG9kYXNoLnNldCA9IHNldDtcbiAgICBsb2Rhc2guc2V0V2l0aCA9IHNldFdpdGg7XG4gICAgbG9kYXNoLnNodWZmbGUgPSBzaHVmZmxlO1xuICAgIGxvZGFzaC5zbGljZSA9IHNsaWNlO1xuICAgIGxvZGFzaC5zb3J0QnkgPSBzb3J0Qnk7XG4gICAgbG9kYXNoLnNvcnRlZFVuaXEgPSBzb3J0ZWRVbmlxO1xuICAgIGxvZGFzaC5zb3J0ZWRVbmlxQnkgPSBzb3J0ZWRVbmlxQnk7XG4gICAgbG9kYXNoLnNwbGl0ID0gc3BsaXQ7XG4gICAgbG9kYXNoLnNwcmVhZCA9IHNwcmVhZDtcbiAgICBsb2Rhc2gudGFpbCA9IHRhaWw7XG4gICAgbG9kYXNoLnRha2UgPSB0YWtlO1xuICAgIGxvZGFzaC50YWtlUmlnaHQgPSB0YWtlUmlnaHQ7XG4gICAgbG9kYXNoLnRha2VSaWdodFdoaWxlID0gdGFrZVJpZ2h0V2hpbGU7XG4gICAgbG9kYXNoLnRha2VXaGlsZSA9IHRha2VXaGlsZTtcbiAgICBsb2Rhc2gudGFwID0gdGFwO1xuICAgIGxvZGFzaC50aHJvdHRsZSA9IHRocm90dGxlO1xuICAgIGxvZGFzaC50aHJ1ID0gdGhydTtcbiAgICBsb2Rhc2gudG9BcnJheSA9IHRvQXJyYXk7XG4gICAgbG9kYXNoLnRvUGFpcnMgPSB0b1BhaXJzO1xuICAgIGxvZGFzaC50b1BhaXJzSW4gPSB0b1BhaXJzSW47XG4gICAgbG9kYXNoLnRvUGF0aCA9IHRvUGF0aDtcbiAgICBsb2Rhc2gudG9QbGFpbk9iamVjdCA9IHRvUGxhaW5PYmplY3Q7XG4gICAgbG9kYXNoLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbiAgICBsb2Rhc2gudW5hcnkgPSB1bmFyeTtcbiAgICBsb2Rhc2gudW5pb24gPSB1bmlvbjtcbiAgICBsb2Rhc2gudW5pb25CeSA9IHVuaW9uQnk7XG4gICAgbG9kYXNoLnVuaW9uV2l0aCA9IHVuaW9uV2l0aDtcbiAgICBsb2Rhc2gudW5pcSA9IHVuaXE7XG4gICAgbG9kYXNoLnVuaXFCeSA9IHVuaXFCeTtcbiAgICBsb2Rhc2gudW5pcVdpdGggPSB1bmlxV2l0aDtcbiAgICBsb2Rhc2gudW5zZXQgPSB1bnNldDtcbiAgICBsb2Rhc2gudW56aXAgPSB1bnppcDtcbiAgICBsb2Rhc2gudW56aXBXaXRoID0gdW56aXBXaXRoO1xuICAgIGxvZGFzaC51cGRhdGUgPSB1cGRhdGU7XG4gICAgbG9kYXNoLnVwZGF0ZVdpdGggPSB1cGRhdGVXaXRoO1xuICAgIGxvZGFzaC52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgbG9kYXNoLnZhbHVlc0luID0gdmFsdWVzSW47XG4gICAgbG9kYXNoLndpdGhvdXQgPSB3aXRob3V0O1xuICAgIGxvZGFzaC53b3JkcyA9IHdvcmRzO1xuICAgIGxvZGFzaC53cmFwID0gd3JhcDtcbiAgICBsb2Rhc2gueG9yID0geG9yO1xuICAgIGxvZGFzaC54b3JCeSA9IHhvckJ5O1xuICAgIGxvZGFzaC54b3JXaXRoID0geG9yV2l0aDtcbiAgICBsb2Rhc2guemlwID0gemlwO1xuICAgIGxvZGFzaC56aXBPYmplY3QgPSB6aXBPYmplY3Q7XG4gICAgbG9kYXNoLnppcE9iamVjdERlZXAgPSB6aXBPYmplY3REZWVwO1xuICAgIGxvZGFzaC56aXBXaXRoID0gemlwV2l0aDtcblxuICAgIC8vIEFkZCBhbGlhc2VzLlxuICAgIGxvZGFzaC5lbnRyaWVzID0gdG9QYWlycztcbiAgICBsb2Rhc2guZW50cmllc0luID0gdG9QYWlyc0luO1xuICAgIGxvZGFzaC5leHRlbmQgPSBhc3NpZ25JbjtcbiAgICBsb2Rhc2guZXh0ZW5kV2l0aCA9IGFzc2lnbkluV2l0aDtcblxuICAgIC8vIEFkZCBtZXRob2RzIHRvIGBsb2Rhc2gucHJvdG90eXBlYC5cbiAgICBtaXhpbihsb2Rhc2gsIGxvZGFzaCk7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvLyBBZGQgbWV0aG9kcyB0aGF0IHJldHVybiB1bndyYXBwZWQgdmFsdWVzIGluIGNoYWluIHNlcXVlbmNlcy5cbiAgICBsb2Rhc2guYWRkID0gYWRkO1xuICAgIGxvZGFzaC5hdHRlbXB0ID0gYXR0ZW1wdDtcbiAgICBsb2Rhc2guY2FtZWxDYXNlID0gY2FtZWxDYXNlO1xuICAgIGxvZGFzaC5jYXBpdGFsaXplID0gY2FwaXRhbGl6ZTtcbiAgICBsb2Rhc2guY2VpbCA9IGNlaWw7XG4gICAgbG9kYXNoLmNsYW1wID0gY2xhbXA7XG4gICAgbG9kYXNoLmNsb25lID0gY2xvbmU7XG4gICAgbG9kYXNoLmNsb25lRGVlcCA9IGNsb25lRGVlcDtcbiAgICBsb2Rhc2guY2xvbmVEZWVwV2l0aCA9IGNsb25lRGVlcFdpdGg7XG4gICAgbG9kYXNoLmNsb25lV2l0aCA9IGNsb25lV2l0aDtcbiAgICBsb2Rhc2guY29uZm9ybXNUbyA9IGNvbmZvcm1zVG87XG4gICAgbG9kYXNoLmRlYnVyciA9IGRlYnVycjtcbiAgICBsb2Rhc2guZGVmYXVsdFRvID0gZGVmYXVsdFRvO1xuICAgIGxvZGFzaC5kaXZpZGUgPSBkaXZpZGU7XG4gICAgbG9kYXNoLmVuZHNXaXRoID0gZW5kc1dpdGg7XG4gICAgbG9kYXNoLmVxID0gZXE7XG4gICAgbG9kYXNoLmVzY2FwZSA9IGVzY2FwZTtcbiAgICBsb2Rhc2guZXNjYXBlUmVnRXhwID0gZXNjYXBlUmVnRXhwO1xuICAgIGxvZGFzaC5ldmVyeSA9IGV2ZXJ5O1xuICAgIGxvZGFzaC5maW5kID0gZmluZDtcbiAgICBsb2Rhc2guZmluZEluZGV4ID0gZmluZEluZGV4O1xuICAgIGxvZGFzaC5maW5kS2V5ID0gZmluZEtleTtcbiAgICBsb2Rhc2guZmluZExhc3QgPSBmaW5kTGFzdDtcbiAgICBsb2Rhc2guZmluZExhc3RJbmRleCA9IGZpbmRMYXN0SW5kZXg7XG4gICAgbG9kYXNoLmZpbmRMYXN0S2V5ID0gZmluZExhc3RLZXk7XG4gICAgbG9kYXNoLmZsb29yID0gZmxvb3I7XG4gICAgbG9kYXNoLmZvckVhY2ggPSBmb3JFYWNoO1xuICAgIGxvZGFzaC5mb3JFYWNoUmlnaHQgPSBmb3JFYWNoUmlnaHQ7XG4gICAgbG9kYXNoLmZvckluID0gZm9ySW47XG4gICAgbG9kYXNoLmZvckluUmlnaHQgPSBmb3JJblJpZ2h0O1xuICAgIGxvZGFzaC5mb3JPd24gPSBmb3JPd247XG4gICAgbG9kYXNoLmZvck93blJpZ2h0ID0gZm9yT3duUmlnaHQ7XG4gICAgbG9kYXNoLmdldCA9IGdldDtcbiAgICBsb2Rhc2guZ3QgPSBndDtcbiAgICBsb2Rhc2guZ3RlID0gZ3RlO1xuICAgIGxvZGFzaC5oYXMgPSBoYXM7XG4gICAgbG9kYXNoLmhhc0luID0gaGFzSW47XG4gICAgbG9kYXNoLmhlYWQgPSBoZWFkO1xuICAgIGxvZGFzaC5pZGVudGl0eSA9IGlkZW50aXR5O1xuICAgIGxvZGFzaC5pbmNsdWRlcyA9IGluY2x1ZGVzO1xuICAgIGxvZGFzaC5pbmRleE9mID0gaW5kZXhPZjtcbiAgICBsb2Rhc2guaW5SYW5nZSA9IGluUmFuZ2U7XG4gICAgbG9kYXNoLmludm9rZSA9IGludm9rZTtcbiAgICBsb2Rhc2guaXNBcmd1bWVudHMgPSBpc0FyZ3VtZW50cztcbiAgICBsb2Rhc2guaXNBcnJheSA9IGlzQXJyYXk7XG4gICAgbG9kYXNoLmlzQXJyYXlCdWZmZXIgPSBpc0FycmF5QnVmZmVyO1xuICAgIGxvZGFzaC5pc0FycmF5TGlrZSA9IGlzQXJyYXlMaWtlO1xuICAgIGxvZGFzaC5pc0FycmF5TGlrZU9iamVjdCA9IGlzQXJyYXlMaWtlT2JqZWN0O1xuICAgIGxvZGFzaC5pc0Jvb2xlYW4gPSBpc0Jvb2xlYW47XG4gICAgbG9kYXNoLmlzQnVmZmVyID0gaXNCdWZmZXI7XG4gICAgbG9kYXNoLmlzRGF0ZSA9IGlzRGF0ZTtcbiAgICBsb2Rhc2guaXNFbGVtZW50ID0gaXNFbGVtZW50O1xuICAgIGxvZGFzaC5pc0VtcHR5ID0gaXNFbXB0eTtcbiAgICBsb2Rhc2guaXNFcXVhbCA9IGlzRXF1YWw7XG4gICAgbG9kYXNoLmlzRXF1YWxXaXRoID0gaXNFcXVhbFdpdGg7XG4gICAgbG9kYXNoLmlzRXJyb3IgPSBpc0Vycm9yO1xuICAgIGxvZGFzaC5pc0Zpbml0ZSA9IGlzRmluaXRlO1xuICAgIGxvZGFzaC5pc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjtcbiAgICBsb2Rhc2guaXNJbnRlZ2VyID0gaXNJbnRlZ2VyO1xuICAgIGxvZGFzaC5pc0xlbmd0aCA9IGlzTGVuZ3RoO1xuICAgIGxvZGFzaC5pc01hcCA9IGlzTWFwO1xuICAgIGxvZGFzaC5pc01hdGNoID0gaXNNYXRjaDtcbiAgICBsb2Rhc2guaXNNYXRjaFdpdGggPSBpc01hdGNoV2l0aDtcbiAgICBsb2Rhc2guaXNOYU4gPSBpc05hTjtcbiAgICBsb2Rhc2guaXNOYXRpdmUgPSBpc05hdGl2ZTtcbiAgICBsb2Rhc2guaXNOaWwgPSBpc05pbDtcbiAgICBsb2Rhc2guaXNOdWxsID0gaXNOdWxsO1xuICAgIGxvZGFzaC5pc051bWJlciA9IGlzTnVtYmVyO1xuICAgIGxvZGFzaC5pc09iamVjdCA9IGlzT2JqZWN0O1xuICAgIGxvZGFzaC5pc09iamVjdExpa2UgPSBpc09iamVjdExpa2U7XG4gICAgbG9kYXNoLmlzUGxhaW5PYmplY3QgPSBpc1BsYWluT2JqZWN0O1xuICAgIGxvZGFzaC5pc1JlZ0V4cCA9IGlzUmVnRXhwO1xuICAgIGxvZGFzaC5pc1NhZmVJbnRlZ2VyID0gaXNTYWZlSW50ZWdlcjtcbiAgICBsb2Rhc2guaXNTZXQgPSBpc1NldDtcbiAgICBsb2Rhc2guaXNTdHJpbmcgPSBpc1N0cmluZztcbiAgICBsb2Rhc2guaXNTeW1ib2wgPSBpc1N5bWJvbDtcbiAgICBsb2Rhc2guaXNUeXBlZEFycmF5ID0gaXNUeXBlZEFycmF5O1xuICAgIGxvZGFzaC5pc1VuZGVmaW5lZCA9IGlzVW5kZWZpbmVkO1xuICAgIGxvZGFzaC5pc1dlYWtNYXAgPSBpc1dlYWtNYXA7XG4gICAgbG9kYXNoLmlzV2Vha1NldCA9IGlzV2Vha1NldDtcbiAgICBsb2Rhc2guam9pbiA9IGpvaW47XG4gICAgbG9kYXNoLmtlYmFiQ2FzZSA9IGtlYmFiQ2FzZTtcbiAgICBsb2Rhc2gubGFzdCA9IGxhc3Q7XG4gICAgbG9kYXNoLmxhc3RJbmRleE9mID0gbGFzdEluZGV4T2Y7XG4gICAgbG9kYXNoLmxvd2VyQ2FzZSA9IGxvd2VyQ2FzZTtcbiAgICBsb2Rhc2gubG93ZXJGaXJzdCA9IGxvd2VyRmlyc3Q7XG4gICAgbG9kYXNoLmx0ID0gbHQ7XG4gICAgbG9kYXNoLmx0ZSA9IGx0ZTtcbiAgICBsb2Rhc2gubWF4ID0gbWF4O1xuICAgIGxvZGFzaC5tYXhCeSA9IG1heEJ5O1xuICAgIGxvZGFzaC5tZWFuID0gbWVhbjtcbiAgICBsb2Rhc2gubWVhbkJ5ID0gbWVhbkJ5O1xuICAgIGxvZGFzaC5taW4gPSBtaW47XG4gICAgbG9kYXNoLm1pbkJ5ID0gbWluQnk7XG4gICAgbG9kYXNoLnN0dWJBcnJheSA9IHN0dWJBcnJheTtcbiAgICBsb2Rhc2guc3R1YkZhbHNlID0gc3R1YkZhbHNlO1xuICAgIGxvZGFzaC5zdHViT2JqZWN0ID0gc3R1Yk9iamVjdDtcbiAgICBsb2Rhc2guc3R1YlN0cmluZyA9IHN0dWJTdHJpbmc7XG4gICAgbG9kYXNoLnN0dWJUcnVlID0gc3R1YlRydWU7XG4gICAgbG9kYXNoLm11bHRpcGx5ID0gbXVsdGlwbHk7XG4gICAgbG9kYXNoLm50aCA9IG50aDtcbiAgICBsb2Rhc2gubm9Db25mbGljdCA9IG5vQ29uZmxpY3Q7XG4gICAgbG9kYXNoLm5vb3AgPSBub29wO1xuICAgIGxvZGFzaC5ub3cgPSBub3c7XG4gICAgbG9kYXNoLnBhZCA9IHBhZDtcbiAgICBsb2Rhc2gucGFkRW5kID0gcGFkRW5kO1xuICAgIGxvZGFzaC5wYWRTdGFydCA9IHBhZFN0YXJ0O1xuICAgIGxvZGFzaC5wYXJzZUludCA9IHBhcnNlSW50O1xuICAgIGxvZGFzaC5yYW5kb20gPSByYW5kb207XG4gICAgbG9kYXNoLnJlZHVjZSA9IHJlZHVjZTtcbiAgICBsb2Rhc2gucmVkdWNlUmlnaHQgPSByZWR1Y2VSaWdodDtcbiAgICBsb2Rhc2gucmVwZWF0ID0gcmVwZWF0O1xuICAgIGxvZGFzaC5yZXBsYWNlID0gcmVwbGFjZTtcbiAgICBsb2Rhc2gucmVzdWx0ID0gcmVzdWx0O1xuICAgIGxvZGFzaC5yb3VuZCA9IHJvdW5kO1xuICAgIGxvZGFzaC5ydW5JbkNvbnRleHQgPSBydW5JbkNvbnRleHQ7XG4gICAgbG9kYXNoLnNhbXBsZSA9IHNhbXBsZTtcbiAgICBsb2Rhc2guc2l6ZSA9IHNpemU7XG4gICAgbG9kYXNoLnNuYWtlQ2FzZSA9IHNuYWtlQ2FzZTtcbiAgICBsb2Rhc2guc29tZSA9IHNvbWU7XG4gICAgbG9kYXNoLnNvcnRlZEluZGV4ID0gc29ydGVkSW5kZXg7XG4gICAgbG9kYXNoLnNvcnRlZEluZGV4QnkgPSBzb3J0ZWRJbmRleEJ5O1xuICAgIGxvZGFzaC5zb3J0ZWRJbmRleE9mID0gc29ydGVkSW5kZXhPZjtcbiAgICBsb2Rhc2guc29ydGVkTGFzdEluZGV4ID0gc29ydGVkTGFzdEluZGV4O1xuICAgIGxvZGFzaC5zb3J0ZWRMYXN0SW5kZXhCeSA9IHNvcnRlZExhc3RJbmRleEJ5O1xuICAgIGxvZGFzaC5zb3J0ZWRMYXN0SW5kZXhPZiA9IHNvcnRlZExhc3RJbmRleE9mO1xuICAgIGxvZGFzaC5zdGFydENhc2UgPSBzdGFydENhc2U7XG4gICAgbG9kYXNoLnN0YXJ0c1dpdGggPSBzdGFydHNXaXRoO1xuICAgIGxvZGFzaC5zdWJ0cmFjdCA9IHN1YnRyYWN0O1xuICAgIGxvZGFzaC5zdW0gPSBzdW07XG4gICAgbG9kYXNoLnN1bUJ5ID0gc3VtQnk7XG4gICAgbG9kYXNoLnRlbXBsYXRlID0gdGVtcGxhdGU7XG4gICAgbG9kYXNoLnRpbWVzID0gdGltZXM7XG4gICAgbG9kYXNoLnRvRmluaXRlID0gdG9GaW5pdGU7XG4gICAgbG9kYXNoLnRvSW50ZWdlciA9IHRvSW50ZWdlcjtcbiAgICBsb2Rhc2gudG9MZW5ndGggPSB0b0xlbmd0aDtcbiAgICBsb2Rhc2gudG9Mb3dlciA9IHRvTG93ZXI7XG4gICAgbG9kYXNoLnRvTnVtYmVyID0gdG9OdW1iZXI7XG4gICAgbG9kYXNoLnRvU2FmZUludGVnZXIgPSB0b1NhZmVJbnRlZ2VyO1xuICAgIGxvZGFzaC50b1N0cmluZyA9IHRvU3RyaW5nO1xuICAgIGxvZGFzaC50b1VwcGVyID0gdG9VcHBlcjtcbiAgICBsb2Rhc2gudHJpbSA9IHRyaW07XG4gICAgbG9kYXNoLnRyaW1FbmQgPSB0cmltRW5kO1xuICAgIGxvZGFzaC50cmltU3RhcnQgPSB0cmltU3RhcnQ7XG4gICAgbG9kYXNoLnRydW5jYXRlID0gdHJ1bmNhdGU7XG4gICAgbG9kYXNoLnVuZXNjYXBlID0gdW5lc2NhcGU7XG4gICAgbG9kYXNoLnVuaXF1ZUlkID0gdW5pcXVlSWQ7XG4gICAgbG9kYXNoLnVwcGVyQ2FzZSA9IHVwcGVyQ2FzZTtcbiAgICBsb2Rhc2gudXBwZXJGaXJzdCA9IHVwcGVyRmlyc3Q7XG5cbiAgICAvLyBBZGQgYWxpYXNlcy5cbiAgICBsb2Rhc2guZWFjaCA9IGZvckVhY2g7XG4gICAgbG9kYXNoLmVhY2hSaWdodCA9IGZvckVhY2hSaWdodDtcbiAgICBsb2Rhc2guZmlyc3QgPSBoZWFkO1xuXG4gICAgbWl4aW4obG9kYXNoLCAoZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgc291cmNlID0ge307XG4gICAgICBiYXNlRm9yT3duKGxvZGFzaCwgZnVuY3Rpb24oZnVuYywgbWV0aG9kTmFtZSkge1xuICAgICAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwobG9kYXNoLnByb3RvdHlwZSwgbWV0aG9kTmFtZSkpIHtcbiAgICAgICAgICBzb3VyY2VbbWV0aG9kTmFtZV0gPSBmdW5jO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgfSgpKSwgeyAnY2hhaW4nOiBmYWxzZSB9KTtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIFRoZSBzZW1hbnRpYyB2ZXJzaW9uIG51bWJlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgbG9kYXNoLlZFUlNJT04gPSBWRVJTSU9OO1xuXG4gICAgLy8gQXNzaWduIGRlZmF1bHQgcGxhY2Vob2xkZXJzLlxuICAgIGFycmF5RWFjaChbJ2JpbmQnLCAnYmluZEtleScsICdjdXJyeScsICdjdXJyeVJpZ2h0JywgJ3BhcnRpYWwnLCAncGFydGlhbFJpZ2h0J10sIGZ1bmN0aW9uKG1ldGhvZE5hbWUpIHtcbiAgICAgIGxvZGFzaFttZXRob2ROYW1lXS5wbGFjZWhvbGRlciA9IGxvZGFzaDtcbiAgICB9KTtcblxuICAgIC8vIEFkZCBgTGF6eVdyYXBwZXJgIG1ldGhvZHMgZm9yIGBfLmRyb3BgIGFuZCBgXy50YWtlYCB2YXJpYW50cy5cbiAgICBhcnJheUVhY2goWydkcm9wJywgJ3Rha2UnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgbiA9IG4gPT09IHVuZGVmaW5lZCA/IDEgOiBuYXRpdmVNYXgodG9JbnRlZ2VyKG4pLCAwKTtcblxuICAgICAgICB2YXIgcmVzdWx0ID0gKHRoaXMuX19maWx0ZXJlZF9fICYmICFpbmRleClcbiAgICAgICAgICA/IG5ldyBMYXp5V3JhcHBlcih0aGlzKVxuICAgICAgICAgIDogdGhpcy5jbG9uZSgpO1xuXG4gICAgICAgIGlmIChyZXN1bHQuX19maWx0ZXJlZF9fKSB7XG4gICAgICAgICAgcmVzdWx0Ll9fdGFrZUNvdW50X18gPSBuYXRpdmVNaW4obiwgcmVzdWx0Ll9fdGFrZUNvdW50X18pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdC5fX3ZpZXdzX18ucHVzaCh7XG4gICAgICAgICAgICAnc2l6ZSc6IG5hdGl2ZU1pbihuLCBNQVhfQVJSQVlfTEVOR1RIKSxcbiAgICAgICAgICAgICd0eXBlJzogbWV0aG9kTmFtZSArIChyZXN1bHQuX19kaXJfXyA8IDAgPyAnUmlnaHQnIDogJycpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG5cbiAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lICsgJ1JpZ2h0J10gPSBmdW5jdGlvbihuKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJldmVyc2UoKVttZXRob2ROYW1lXShuKS5yZXZlcnNlKCk7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyB0aGF0IGFjY2VwdCBhbiBgaXRlcmF0ZWVgIHZhbHVlLlxuICAgIGFycmF5RWFjaChbJ2ZpbHRlcicsICdtYXAnLCAndGFrZVdoaWxlJ10sIGZ1bmN0aW9uKG1ldGhvZE5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgdHlwZSA9IGluZGV4ICsgMSxcbiAgICAgICAgICBpc0ZpbHRlciA9IHR5cGUgPT0gTEFaWV9GSUxURVJfRkxBRyB8fCB0eXBlID09IExBWllfV0hJTEVfRkxBRztcblxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oaXRlcmF0ZWUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuY2xvbmUoKTtcbiAgICAgICAgcmVzdWx0Ll9faXRlcmF0ZWVzX18ucHVzaCh7XG4gICAgICAgICAgJ2l0ZXJhdGVlJzogZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpLFxuICAgICAgICAgICd0eXBlJzogdHlwZVxuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0Ll9fZmlsdGVyZWRfXyA9IHJlc3VsdC5fX2ZpbHRlcmVkX18gfHwgaXNGaWx0ZXI7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyBmb3IgYF8uaGVhZGAgYW5kIGBfLmxhc3RgLlxuICAgIGFycmF5RWFjaChbJ2hlYWQnLCAnbGFzdCddLCBmdW5jdGlvbihtZXRob2ROYW1lLCBpbmRleCkge1xuICAgICAgdmFyIHRha2VOYW1lID0gJ3Rha2UnICsgKGluZGV4ID8gJ1JpZ2h0JyA6ICcnKTtcblxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzW3Rha2VOYW1lXSgxKS52YWx1ZSgpWzBdO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8vIEFkZCBgTGF6eVdyYXBwZXJgIG1ldGhvZHMgZm9yIGBfLmluaXRpYWxgIGFuZCBgXy50YWlsYC5cbiAgICBhcnJheUVhY2goWydpbml0aWFsJywgJ3RhaWwnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciBkcm9wTmFtZSA9ICdkcm9wJyArIChpbmRleCA/ICcnIDogJ1JpZ2h0Jyk7XG5cbiAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fX2ZpbHRlcmVkX18gPyBuZXcgTGF6eVdyYXBwZXIodGhpcykgOiB0aGlzW2Ryb3BOYW1lXSgxKTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuY29tcGFjdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKGlkZW50aXR5KTtcbiAgICB9O1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmZpbmQgPSBmdW5jdGlvbihwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcihwcmVkaWNhdGUpLmhlYWQoKTtcbiAgICB9O1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmZpbmRMYXN0ID0gZnVuY3Rpb24ocHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXZlcnNlKCkuZmluZChwcmVkaWNhdGUpO1xuICAgIH07XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuaW52b2tlTWFwID0gYmFzZVJlc3QoZnVuY3Rpb24ocGF0aCwgYXJncykge1xuICAgICAgaWYgKHR5cGVvZiBwYXRoID09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMYXp5V3JhcHBlcih0aGlzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICByZXR1cm4gYmFzZUludm9rZSh2YWx1ZSwgcGF0aCwgYXJncyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5yZWplY3QgPSBmdW5jdGlvbihwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcihuZWdhdGUoZ2V0SXRlcmF0ZWUocHJlZGljYXRlKSkpO1xuICAgIH07XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbihzdGFydCwgZW5kKSB7XG4gICAgICBzdGFydCA9IHRvSW50ZWdlcihzdGFydCk7XG5cbiAgICAgIHZhciByZXN1bHQgPSB0aGlzO1xuICAgICAgaWYgKHJlc3VsdC5fX2ZpbHRlcmVkX18gJiYgKHN0YXJ0ID4gMCB8fCBlbmQgPCAwKSkge1xuICAgICAgICByZXR1cm4gbmV3IExhenlXcmFwcGVyKHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC50YWtlUmlnaHQoLXN0YXJ0KTtcbiAgICAgIH0gZWxzZSBpZiAoc3RhcnQpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmRyb3Aoc3RhcnQpO1xuICAgICAgfVxuICAgICAgaWYgKGVuZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGVuZCA9IHRvSW50ZWdlcihlbmQpO1xuICAgICAgICByZXN1bHQgPSBlbmQgPCAwID8gcmVzdWx0LmRyb3BSaWdodCgtZW5kKSA6IHJlc3VsdC50YWtlKGVuZCAtIHN0YXJ0KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS50YWtlUmlnaHRXaGlsZSA9IGZ1bmN0aW9uKHByZWRpY2F0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMucmV2ZXJzZSgpLnRha2VXaGlsZShwcmVkaWNhdGUpLnJldmVyc2UoKTtcbiAgICB9O1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLnRha2UoTUFYX0FSUkFZX0xFTkdUSCk7XG4gICAgfTtcblxuICAgIC8vIEFkZCBgTGF6eVdyYXBwZXJgIG1ldGhvZHMgdG8gYGxvZGFzaC5wcm90b3R5cGVgLlxuICAgIGJhc2VGb3JPd24oTGF6eVdyYXBwZXIucHJvdG90eXBlLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XG4gICAgICB2YXIgY2hlY2tJdGVyYXRlZSA9IC9eKD86ZmlsdGVyfGZpbmR8bWFwfHJlamVjdCl8V2hpbGUkLy50ZXN0KG1ldGhvZE5hbWUpLFxuICAgICAgICAgIGlzVGFrZXIgPSAvXig/OmhlYWR8bGFzdCkkLy50ZXN0KG1ldGhvZE5hbWUpLFxuICAgICAgICAgIGxvZGFzaEZ1bmMgPSBsb2Rhc2hbaXNUYWtlciA/ICgndGFrZScgKyAobWV0aG9kTmFtZSA9PSAnbGFzdCcgPyAnUmlnaHQnIDogJycpKSA6IG1ldGhvZE5hbWVdLFxuICAgICAgICAgIHJldFVud3JhcHBlZCA9IGlzVGFrZXIgfHwgL15maW5kLy50ZXN0KG1ldGhvZE5hbWUpO1xuXG4gICAgICBpZiAoIWxvZGFzaEZ1bmMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbG9kYXNoLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLl9fd3JhcHBlZF9fLFxuICAgICAgICAgICAgYXJncyA9IGlzVGFrZXIgPyBbMV0gOiBhcmd1bWVudHMsXG4gICAgICAgICAgICBpc0xhenkgPSB2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyLFxuICAgICAgICAgICAgaXRlcmF0ZWUgPSBhcmdzWzBdLFxuICAgICAgICAgICAgdXNlTGF6eSA9IGlzTGF6eSB8fCBpc0FycmF5KHZhbHVlKTtcblxuICAgICAgICB2YXIgaW50ZXJjZXB0b3IgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgIHZhciByZXN1bHQgPSBsb2Rhc2hGdW5jLmFwcGx5KGxvZGFzaCwgYXJyYXlQdXNoKFt2YWx1ZV0sIGFyZ3MpKTtcbiAgICAgICAgICByZXR1cm4gKGlzVGFrZXIgJiYgY2hhaW5BbGwpID8gcmVzdWx0WzBdIDogcmVzdWx0O1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh1c2VMYXp5ICYmIGNoZWNrSXRlcmF0ZWUgJiYgdHlwZW9mIGl0ZXJhdGVlID09ICdmdW5jdGlvbicgJiYgaXRlcmF0ZWUubGVuZ3RoICE9IDEpIHtcbiAgICAgICAgICAvLyBBdm9pZCBsYXp5IHVzZSBpZiB0aGUgaXRlcmF0ZWUgaGFzIGEgXCJsZW5ndGhcIiB2YWx1ZSBvdGhlciB0aGFuIGAxYC5cbiAgICAgICAgICBpc0xhenkgPSB1c2VMYXp5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNoYWluQWxsID0gdGhpcy5fX2NoYWluX18sXG4gICAgICAgICAgICBpc0h5YnJpZCA9ICEhdGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgsXG4gICAgICAgICAgICBpc1Vud3JhcHBlZCA9IHJldFVud3JhcHBlZCAmJiAhY2hhaW5BbGwsXG4gICAgICAgICAgICBvbmx5TGF6eSA9IGlzTGF6eSAmJiAhaXNIeWJyaWQ7XG5cbiAgICAgICAgaWYgKCFyZXRVbndyYXBwZWQgJiYgdXNlTGF6eSkge1xuICAgICAgICAgIHZhbHVlID0gb25seUxhenkgPyB2YWx1ZSA6IG5ldyBMYXp5V3JhcHBlcih0aGlzKTtcbiAgICAgICAgICB2YXIgcmVzdWx0ID0gZnVuYy5hcHBseSh2YWx1ZSwgYXJncyk7XG4gICAgICAgICAgcmVzdWx0Ll9fYWN0aW9uc19fLnB1c2goeyAnZnVuYyc6IHRocnUsICdhcmdzJzogW2ludGVyY2VwdG9yXSwgJ3RoaXNBcmcnOiB1bmRlZmluZWQgfSk7XG4gICAgICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHJlc3VsdCwgY2hhaW5BbGwpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1Vud3JhcHBlZCAmJiBvbmx5TGF6eSkge1xuICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCA9IHRoaXMudGhydShpbnRlcmNlcHRvcik7XG4gICAgICAgIHJldHVybiBpc1Vud3JhcHBlZCA/IChpc1Rha2VyID8gcmVzdWx0LnZhbHVlKClbMF0gOiByZXN1bHQudmFsdWUoKSkgOiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGBBcnJheWAgbWV0aG9kcyB0byBgbG9kYXNoLnByb3RvdHlwZWAuXG4gICAgYXJyYXlFYWNoKFsncG9wJywgJ3B1c2gnLCAnc2hpZnQnLCAnc29ydCcsICdzcGxpY2UnLCAndW5zaGlmdCddLCBmdW5jdGlvbihtZXRob2ROYW1lKSB7XG4gICAgICB2YXIgZnVuYyA9IGFycmF5UHJvdG9bbWV0aG9kTmFtZV0sXG4gICAgICAgICAgY2hhaW5OYW1lID0gL14oPzpwdXNofHNvcnR8dW5zaGlmdCkkLy50ZXN0KG1ldGhvZE5hbWUpID8gJ3RhcCcgOiAndGhydScsXG4gICAgICAgICAgcmV0VW53cmFwcGVkID0gL14oPzpwb3B8c2hpZnQpJC8udGVzdChtZXRob2ROYW1lKTtcblxuICAgICAgbG9kYXNoLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgaWYgKHJldFVud3JhcHBlZCAmJiAhdGhpcy5fX2NoYWluX18pIHtcbiAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLnZhbHVlKCk7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkoaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtdLCBhcmdzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpc1tjaGFpbk5hbWVdKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkoaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtdLCBhcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gTWFwIG1pbmlmaWVkIG1ldGhvZCBuYW1lcyB0byB0aGVpciByZWFsIG5hbWVzLlxuICAgIGJhc2VGb3JPd24oTGF6eVdyYXBwZXIucHJvdG90eXBlLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XG4gICAgICB2YXIgbG9kYXNoRnVuYyA9IGxvZGFzaFttZXRob2ROYW1lXTtcbiAgICAgIGlmIChsb2Rhc2hGdW5jKSB7XG4gICAgICAgIHZhciBrZXkgPSBsb2Rhc2hGdW5jLm5hbWUgKyAnJztcbiAgICAgICAgaWYgKCFoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlYWxOYW1lcywga2V5KSkge1xuICAgICAgICAgIHJlYWxOYW1lc1trZXldID0gW107XG4gICAgICAgIH1cbiAgICAgICAgcmVhbE5hbWVzW2tleV0ucHVzaCh7ICduYW1lJzogbWV0aG9kTmFtZSwgJ2Z1bmMnOiBsb2Rhc2hGdW5jIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmVhbE5hbWVzW2NyZWF0ZUh5YnJpZCh1bmRlZmluZWQsIFdSQVBfQklORF9LRVlfRkxBRykubmFtZV0gPSBbe1xuICAgICAgJ25hbWUnOiAnd3JhcHBlcicsXG4gICAgICAnZnVuYyc6IHVuZGVmaW5lZFxuICAgIH1dO1xuXG4gICAgLy8gQWRkIG1ldGhvZHMgdG8gYExhenlXcmFwcGVyYC5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuY2xvbmUgPSBsYXp5Q2xvbmU7XG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnJldmVyc2UgPSBsYXp5UmV2ZXJzZTtcbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUudmFsdWUgPSBsYXp5VmFsdWU7XG5cbiAgICAvLyBBZGQgY2hhaW4gc2VxdWVuY2UgbWV0aG9kcyB0byB0aGUgYGxvZGFzaGAgd3JhcHBlci5cbiAgICBsb2Rhc2gucHJvdG90eXBlLmF0ID0gd3JhcHBlckF0O1xuICAgIGxvZGFzaC5wcm90b3R5cGUuY2hhaW4gPSB3cmFwcGVyQ2hhaW47XG4gICAgbG9kYXNoLnByb3RvdHlwZS5jb21taXQgPSB3cmFwcGVyQ29tbWl0O1xuICAgIGxvZGFzaC5wcm90b3R5cGUubmV4dCA9IHdyYXBwZXJOZXh0O1xuICAgIGxvZGFzaC5wcm90b3R5cGUucGxhbnQgPSB3cmFwcGVyUGxhbnQ7XG4gICAgbG9kYXNoLnByb3RvdHlwZS5yZXZlcnNlID0gd3JhcHBlclJldmVyc2U7XG4gICAgbG9kYXNoLnByb3RvdHlwZS50b0pTT04gPSBsb2Rhc2gucHJvdG90eXBlLnZhbHVlT2YgPSBsb2Rhc2gucHJvdG90eXBlLnZhbHVlID0gd3JhcHBlclZhbHVlO1xuXG4gICAgLy8gQWRkIGxhenkgYWxpYXNlcy5cbiAgICBsb2Rhc2gucHJvdG90eXBlLmZpcnN0ID0gbG9kYXNoLnByb3RvdHlwZS5oZWFkO1xuXG4gICAgaWYgKHN5bUl0ZXJhdG9yKSB7XG4gICAgICBsb2Rhc2gucHJvdG90eXBlW3N5bUl0ZXJhdG9yXSA9IHdyYXBwZXJUb0l0ZXJhdG9yO1xuICAgIH1cbiAgICByZXR1cm4gbG9kYXNoO1xuICB9KTtcblxuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAvLyBFeHBvcnQgbG9kYXNoLlxuICB2YXIgXyA9IHJ1bkluQ29udGV4dCgpO1xuXG4gIC8vIFNvbWUgQU1EIGJ1aWxkIG9wdGltaXplcnMsIGxpa2Ugci5qcywgY2hlY2sgZm9yIGNvbmRpdGlvbiBwYXR0ZXJucyBsaWtlOlxuICBpZiAodHlwZW9mIGRlZmluZSA9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkZWZpbmUuYW1kID09ICdvYmplY3QnICYmIGRlZmluZS5hbWQpIHtcbiAgICAvLyBFeHBvc2UgTG9kYXNoIG9uIHRoZSBnbG9iYWwgb2JqZWN0IHRvIHByZXZlbnQgZXJyb3JzIHdoZW4gTG9kYXNoIGlzXG4gICAgLy8gbG9hZGVkIGJ5IGEgc2NyaXB0IHRhZyBpbiB0aGUgcHJlc2VuY2Ugb2YgYW4gQU1EIGxvYWRlci5cbiAgICAvLyBTZWUgaHR0cDovL3JlcXVpcmVqcy5vcmcvZG9jcy9lcnJvcnMuaHRtbCNtaXNtYXRjaCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgIC8vIFVzZSBgXy5ub0NvbmZsaWN0YCB0byByZW1vdmUgTG9kYXNoIGZyb20gdGhlIGdsb2JhbCBvYmplY3QuXG4gICAgcm9vdC5fID0gXztcblxuICAgIC8vIERlZmluZSBhcyBhbiBhbm9ueW1vdXMgbW9kdWxlIHNvLCB0aHJvdWdoIHBhdGggbWFwcGluZywgaXQgY2FuIGJlXG4gICAgLy8gcmVmZXJlbmNlZCBhcyB0aGUgXCJ1bmRlcnNjb3JlXCIgbW9kdWxlLlxuICAgIGRlZmluZShmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBfO1xuICAgIH0pO1xuICB9XG4gIC8vIENoZWNrIGZvciBgZXhwb3J0c2AgYWZ0ZXIgYGRlZmluZWAgaW4gY2FzZSBhIGJ1aWxkIG9wdGltaXplciBhZGRzIGl0LlxuICBlbHNlIGlmIChmcmVlTW9kdWxlKSB7XG4gICAgLy8gRXhwb3J0IGZvciBOb2RlLmpzLlxuICAgIChmcmVlTW9kdWxlLmV4cG9ydHMgPSBfKS5fID0gXztcbiAgICAvLyBFeHBvcnQgZm9yIENvbW1vbkpTIHN1cHBvcnQuXG4gICAgZnJlZUV4cG9ydHMuXyA9IF87XG4gIH1cbiAgZWxzZSB7XG4gICAgLy8gRXhwb3J0IHRvIHRoZSBnbG9iYWwgb2JqZWN0LlxuICAgIHJvb3QuXyA9IF87XG4gIH1cbn0uY2FsbCh0aGlzKSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuVmFsdWUgPSBleHBvcnRzLkFyaXR5ID0gZXhwb3J0cy5GbG9hdE9yTWlsbGlzZWNvbmRzID0gdm9pZCAwO1xuY29uc3QgZGVjaW1hbF9qc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJkZWNpbWFsLmpzXCIpKTtcbmNvbnN0IGxvZGFzaF8xID0gcmVxdWlyZShcImxvZGFzaFwiKTtcbmNvbnN0IGRhdGV0aW1lUmUgPSBuZXcgUmVnRXhwKCdbMS05XVswLTldezN9LVswMV1bMC05XS1bMC0zXVswLTldW1QgXVswLTJdWzAtOV06WzAtNV1bMC05XScpO1xuY29uc3QgRmxvYXRPck1pbGxpc2Vjb25kcyA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHYgPSB2YWx1ZS50cmltKCk7XG4gICAgaWYgKHYgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiBuZXcgZGVjaW1hbF9qc18xLmRlZmF1bHQoMCk7XG4gICAgfVxuICAgIGlmIChkYXRldGltZVJlLnRlc3QodikpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBkZWNpbWFsX2pzXzEuZGVmYXVsdChuZXcgRGF0ZSh2KS52YWx1ZU9mKCkpO1xuICAgIH1cbiAgICBjb25zdCBkZWNpbWFsVmFsdWUgPSBuZXcgZGVjaW1hbF9qc18xLmRlZmF1bHQodik7XG4gICAgcmV0dXJuIGRlY2ltYWxWYWx1ZS5pc05hTigpID8gbmV3IGRlY2ltYWxfanNfMS5kZWZhdWx0KDApIDogZGVjaW1hbFZhbHVlO1xufTtcbmV4cG9ydHMuRmxvYXRPck1pbGxpc2Vjb25kcyA9IEZsb2F0T3JNaWxsaXNlY29uZHM7XG5jbGFzcyBBcml0eSB7XG4gICAgY29uc3RydWN0b3Iocm93cywgY29sdW1ucykge1xuICAgICAgICB0aGlzLmlzUm93ID0gKCkgPT4gdGhpcy5yb3dzID4gMSAmJiB0aGlzLmNvbHMgPT09IDE7XG4gICAgICAgIHRoaXMuaXNDb2x1bW4gPSAoKSA9PiB0aGlzLnJvd3MgPT09IDEgJiYgdGhpcy5jb2xzID4gMTtcbiAgICAgICAgdGhpcy5pc0NlbGwgPSAoKSA9PiB0aGlzLnJvd3MgPT09IDEgJiYgdGhpcy5jb2xzID09PSAxO1xuICAgICAgICB0aGlzLnJvd3MgPSByb3dzO1xuICAgICAgICB0aGlzLmNvbHMgPSBjb2x1bW5zO1xuICAgIH1cbn1cbmV4cG9ydHMuQXJpdHkgPSBBcml0eTtcbmNsYXNzIFZhbHVlIHtcbiAgICBjb25zdHJ1Y3Rvcih2YWwpIHtcbiAgICAgICAgdGhpcy5nZXQgPSAocm93LCBjb2x1bW4pID0+IHRoaXMudmFsW3Jvd11bY29sdW1uXTtcbiAgICAgICAgdGhpcy5nZXRBc051bWJlciA9IChyb3csIGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChyb3csIGNvbHVtbik7XG4gICAgICAgICAgICByZXR1cm4gZXhwb3J0cy5GbG9hdE9yTWlsbGlzZWNvbmRzKHZhbHVlKTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGdldEFyaXR5IHJldHVybnMgdGhlIGRpbWVuc2lvbnMgb2YgdGhlIGNvbnRhaW5lZCB2YWx1ZSwgaW4gcm93cyBhbmQgY29sdW1uc1xuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5nZXRBcml0eSA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1heENvbHMgPSB0aGlzLnZhbC5yZWR1Y2UoKG1heCwgY3VycmVudFJvdykgPT4gTWF0aC5tYXgobWF4LCBjdXJyZW50Um93Lmxlbmd0aCksIDApO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBcml0eSh0aGlzLnZhbC5sZW5ndGgsIG1heENvbHMpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnRvU3RyaW5nID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ2V0QXJpdHkoKS5pc0NlbGwoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldCgwLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBgWyR7bG9kYXNoXzEuZmxhdHRlbih0aGlzLnZhbClcbiAgICAgICAgICAgICAgICAubWFwKCh2YWwpID0+IHZhbC50cmltKCkpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigodmFsKSA9PiB2YWwgIT09ICcnKVxuICAgICAgICAgICAgICAgIC5qb2luKCcsICcpfV1gO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnZhbCA9IHZhbDtcbiAgICB9XG59XG5leHBvcnRzLlZhbHVlID0gVmFsdWU7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQWxnZWJyYWljT3BlcmF0aW9uID0gdm9pZCAwO1xuY29uc3QgbmV2ZXJ0aHJvd18xID0gcmVxdWlyZShcIi4uL25ldmVydGhyb3cvbmV2ZXJ0aHJvd1wiKTtcbmNvbnN0IGFzdF91dGlsc18xID0gcmVxdWlyZShcIi4vYXN0X3V0aWxzXCIpO1xuY29uc3QgY2FsY18xID0gcmVxdWlyZShcIi4vY2FsY1wiKTtcbmNvbnN0IHJlc3VsdHNfMSA9IHJlcXVpcmUoXCIuL3Jlc3VsdHNcIik7XG5jb25zdCBsb2Rhc2hfMSA9IHJlcXVpcmUoXCJsb2Rhc2hcIik7XG5jbGFzcyBBbGdlYnJhaWNPcGVyYXRpb24ge1xuICAgIGNvbnN0cnVjdG9yKGFzdCwgdGFibGUpIHtcbiAgICAgICAgdGhpcy5nZXRWYWx1ZSA9ICh0YWJsZSwgY2VsbCkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLm9wZXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnKyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZCh0YWJsZSwgY2VsbCk7XG4gICAgICAgICAgICAgICAgY2FzZSAnLSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN1YnRyYWN0KHRhYmxlLCBjZWxsKTtcbiAgICAgICAgICAgICAgICBjYXNlICcqJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubXVsdGlwbHkodGFibGUsIGNlbGwpO1xuICAgICAgICAgICAgICAgIGNhc2UgJy8nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaXZpZGUodGFibGUsIGNlbGwpO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKEVycm9yKCdJbnZhbGlkIGFsZ2JyYWljIG9wZXJhdG9yOiAnICsgdGhpcy5vcGVyYXRvcikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogd2l0aENlbGxBbmRSYW5nZSBhaWRzIGluIHBlcmZvcm1pbmcgYSBudW1lcmljIG9wZXJhdGlvbiBvbiBjZWxscyBpbiBhXG4gICAgICAgICAqIHRhYmxlIHdoZXJlIGF0IGxlYXN0IG9uZSBvZiB0aGUgdHdvIG9wZXJhbmRzIGlzIGEgc2luZ2xlIGNlbGwuIE9wdGlvbmFsbHksXG4gICAgICAgICAqIHRoZSB0d28gc2lkZXMgb2YgdGhlIG9wZXJhdGlvbiBjYW4gYmUgc3dhcHBlZCwgc28gdGhlIHNpbmdsZSBjZWxsIGlzXG4gICAgICAgICAqIGFsd2F5cyBvbiB0aGUgcmlnaHQuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLndpdGhDZWxsQW5kUmFuZ2UgPSAodGFibGUsIGNlbGwsIG5hbWUsIGNhbkhhdmVSaWdodFJhbmdlLCBmbikgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGVmdFZhbHVlID0gdGhpcy5sZWZ0U291cmNlLmdldFZhbHVlKHRhYmxlLCBjZWxsKTtcbiAgICAgICAgICAgIGlmIChsZWZ0VmFsdWUuaXNFcnIoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKGxlZnRWYWx1ZS5lcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByaWdodFZhbHVlID0gdGhpcy5yaWdodFNvdXJjZS5nZXRWYWx1ZSh0YWJsZSwgY2VsbCk7XG4gICAgICAgICAgICBpZiAocmlnaHRWYWx1ZS5pc0VycigpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIocmlnaHRWYWx1ZS5lcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsZWZ0QXJpdHkgPSBsZWZ0VmFsdWUudmFsdWUuZ2V0QXJpdHkoKTtcbiAgICAgICAgICAgIGNvbnN0IHJpZ2h0QXJpdHkgPSByaWdodFZhbHVlLnZhbHVlLmdldEFyaXR5KCk7XG4gICAgICAgICAgICBpZiAoIXJpZ2h0QXJpdHkuaXNDZWxsKCkgJiYgIWxlZnRBcml0eS5pc0NlbGwoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKEVycm9yKGBBdCBsZWFzdCBvbmUgb3BlcmFuZCBpbiBhbGdlYnJhaWMgXCIke25hbWV9XCIgbXVzdCBiZSBhIHNpbmdsZSBjZWxsLmApKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghcmlnaHRBcml0eS5pc0NlbGwoKSAmJiAhY2FuSGF2ZVJpZ2h0UmFuZ2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihFcnJvcihgUmlnaHQgb3BlcmFuZCBpbiBhbGdlYnJhaWMgXCIke25hbWV9XCIgbXVzdCBiZSBhIHNpbmdsZSBjZWxsLmApKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyaWdodEFyaXR5LmlzQ2VsbCgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmlnaHRDZWxsVmFsdWUgPSByaWdodFZhbHVlLnZhbHVlLmdldEFzTnVtYmVyKDAsIDApO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGxvZGFzaF8xLm1hcChsZWZ0VmFsdWUudmFsdWUudmFsLCAoY3VycmVudFJvdykgPT4gbG9kYXNoXzEubWFwKGN1cnJlbnRSb3csIChjdXJyZW50Q2VsbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsZWZ0Q2VsbFZhbHVlID0gcmVzdWx0c18xLkZsb2F0T3JNaWxsaXNlY29uZHMoY3VycmVudENlbGwpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm4obGVmdENlbGxWYWx1ZSwgcmlnaHRDZWxsVmFsdWUpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobmV3IHJlc3VsdHNfMS5WYWx1ZShyZXN1bHQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxlZnRDZWxsVmFsdWUgPSBsZWZ0VmFsdWUudmFsdWUuZ2V0QXNOdW1iZXIoMCwgMCk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBsb2Rhc2hfMS5tYXAocmlnaHRWYWx1ZS52YWx1ZS52YWwsIChjdXJyZW50Um93KSA9PiBsb2Rhc2hfMS5tYXAoY3VycmVudFJvdywgKGN1cnJlbnRDZWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmlnaHRDZWxsVmFsdWUgPSByZXN1bHRzXzEuRmxvYXRPck1pbGxpc2Vjb25kcyhjdXJyZW50Q2VsbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZuKGxlZnRDZWxsVmFsdWUsIHJpZ2h0Q2VsbFZhbHVlKS50b1N0cmluZygpO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgcmVzdWx0c18xLlZhbHVlKHJlc3VsdCkpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmFkZCA9ICh0YWJsZSwgY2VsbCkgPT4gdGhpcy53aXRoQ2VsbEFuZFJhbmdlKHRhYmxlLCBjZWxsLCAnYWRkJywgdHJ1ZSwgKGxlZnQsIHJpZ2h0KSA9PiBsZWZ0LnBsdXMocmlnaHQpKTtcbiAgICAgICAgdGhpcy5zdWJ0cmFjdCA9ICh0YWJsZSwgY2VsbCkgPT4gdGhpcy53aXRoQ2VsbEFuZFJhbmdlKHRhYmxlLCBjZWxsLCAnc3VidHJhY3QnLCB0cnVlLCAobGVmdCwgcmlnaHQpID0+IGxlZnQubWludXMocmlnaHQpKTtcbiAgICAgICAgdGhpcy5tdWx0aXBseSA9ICh0YWJsZSwgY2VsbCkgPT4gdGhpcy53aXRoQ2VsbEFuZFJhbmdlKHRhYmxlLCBjZWxsLCAnbXVsdGlwbHknLCB0cnVlLCAobGVmdCwgcmlnaHQpID0+IGxlZnQudGltZXMocmlnaHQpKTtcbiAgICAgICAgdGhpcy5kaXZpZGUgPSAodGFibGUsIGNlbGwpID0+IHRoaXMud2l0aENlbGxBbmRSYW5nZSh0YWJsZSwgY2VsbCwgJ2RpdmlkZScsIGZhbHNlLCAobGVmdCwgcmlnaHQpID0+IGxlZnQuZGl2aWRlZEJ5KHJpZ2h0KSk7XG4gICAgICAgIGNvbnN0IHR5cGVFcnIgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LCAnYWxnZWJyYWljX29wZXJhdGlvbicpO1xuICAgICAgICBpZiAodHlwZUVycikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAzKTtcbiAgICAgICAgaWYgKGxlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBsZW5ndGhFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjaGlsZFR5cGVFcnIgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LmNoaWxkcmVuWzFdLCAnYWxnZWJyYWljX29wZXJhdG9yJyk7XG4gICAgICAgIGlmIChjaGlsZFR5cGVFcnIpIHtcbiAgICAgICAgICAgIHRocm93IGNoaWxkVHlwZUVycjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZXJhdG9yID0gYXN0LmNoaWxkcmVuWzFdLnRleHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmxlZnRTb3VyY2UgPSBuZXcgY2FsY18xLlNvdXJjZShhc3QuY2hpbGRyZW5bMF0sIHRhYmxlKTtcbiAgICAgICAgICAgIHRoaXMucmlnaHRTb3VyY2UgPSBuZXcgY2FsY18xLlNvdXJjZShhc3QuY2hpbGRyZW5bMl0sIHRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIFN0aWxsIGluIGEgY29uc3RydWN0b3IsIHNvIG5vdGhpbmcgd2UgY2FuIGRvIGJ1dCB0aHJvdyBhZ2FpblxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkFsZ2VicmFpY09wZXJhdGlvbiA9IEFsZ2VicmFpY09wZXJhdGlvbjtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Db25kaXRpb25hbEZ1bmN0aW9uQ2FsbCA9IHZvaWQgMDtcbmNvbnN0IG5ldmVydGhyb3dfMSA9IHJlcXVpcmUoXCIuLi9uZXZlcnRocm93L25ldmVydGhyb3dcIik7XG5jb25zdCBhc3RfdXRpbHNfMSA9IHJlcXVpcmUoXCIuL2FzdF91dGlsc1wiKTtcbmNvbnN0IGNhbGNfMSA9IHJlcXVpcmUoXCIuL2NhbGNcIik7XG5jbGFzcyBDb25kaXRpb25hbEZ1bmN0aW9uQ2FsbCB7XG4gICAgY29uc3RydWN0b3IoYXN0LCB0YWJsZSkge1xuICAgICAgICB0aGlzLmdldFZhbHVlID0gKHRhYmxlLCBjZWxsKSA9PiB0aGlzLnByZWRpY2F0ZVxuICAgICAgICAgICAgLmV2YWwodGFibGUsIGNlbGwpXG4gICAgICAgICAgICAuYW5kVGhlbigocHJlZGljYXRlUmVzdWx0KSA9PiBwcmVkaWNhdGVSZXN1bHRcbiAgICAgICAgICAgID8gdGhpcy5sZWZ0U291cmNlLmdldFZhbHVlKHRhYmxlLCBjZWxsKVxuICAgICAgICAgICAgOiB0aGlzLnJpZ2h0U291cmNlLmdldFZhbHVlKHRhYmxlLCBjZWxsKSk7XG4gICAgICAgIGNvbnN0IHR5cGVFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShhc3QsICdjb25kaXRpb25hbF9mdW5jdGlvbl9jYWxsJyk7XG4gICAgICAgIGlmICh0eXBlRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IHR5cGVFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAzKTtcbiAgICAgICAgaWYgKGxlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBsZW5ndGhFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5wcmVkaWNhdGUgPSBuZXcgUHJlZGljYXRlKGFzdC5jaGlsZHJlblswXSwgdGFibGUpO1xuICAgICAgICAgICAgdGhpcy5sZWZ0U291cmNlID0gbmV3IGNhbGNfMS5Tb3VyY2UoYXN0LmNoaWxkcmVuWzFdLCB0YWJsZSk7XG4gICAgICAgICAgICB0aGlzLnJpZ2h0U291cmNlID0gbmV3IGNhbGNfMS5Tb3VyY2UoYXN0LmNoaWxkcmVuWzJdLCB0YWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAvLyBTdGlsbCBpbiBhIGNvbnN0cnVjdG9yLCBzbyBub3RoaW5nIHdlIGNhbiBkbyBidXQgdGhyb3cgYWdhaW5cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Db25kaXRpb25hbEZ1bmN0aW9uQ2FsbCA9IENvbmRpdGlvbmFsRnVuY3Rpb25DYWxsO1xuY2xhc3MgUHJlZGljYXRlIHtcbiAgICBjb25zdHJ1Y3Rvcihhc3QsIHRhYmxlKSB7XG4gICAgICAgIHRoaXMuZXZhbCA9ICh0YWJsZSwgY2VsbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGVmdERhdGEgPSB0aGlzLmxlZnRTb3VyY2UuZ2V0VmFsdWUodGFibGUsIGNlbGwpO1xuICAgICAgICAgICAgaWYgKGxlZnREYXRhLmlzRXJyKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihsZWZ0RGF0YS5lcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByaWdodERhdGEgPSB0aGlzLnJpZ2h0U291cmNlLmdldFZhbHVlKHRhYmxlLCBjZWxsKTtcbiAgICAgICAgICAgIGlmIChyaWdodERhdGEuaXNFcnIoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKHJpZ2h0RGF0YS5lcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsZWZ0QXJpdHkgPSBsZWZ0RGF0YS52YWx1ZS5nZXRBcml0eSgpO1xuICAgICAgICAgICAgY29uc3QgcmlnaHRBcml0eSA9IHJpZ2h0RGF0YS52YWx1ZS5nZXRBcml0eSgpO1xuICAgICAgICAgICAgaWYgKCFsZWZ0QXJpdHkuaXNDZWxsKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihFcnJvcignQ2FuIG9ubHkgdXNlIGNvbXBhcmlzb24gb3BlcmF0b3Igb24gYSBzaW5nbGUgY2VsbC4gTGVmdCBzaWRlIGlzIG5vdCBhIGNlbGwuJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFyaWdodEFyaXR5LmlzQ2VsbCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIoRXJyb3IoJ0NhbiBvbmx5IHVzZSBjb21wYXJpc29uIG9wZXJhdG9yIG9uIGEgc2luZ2xlIGNlbGwuIFJpZ2h0IHNpZGUgaXMgbm90IGEgY2VsbC4nKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsZWZ0VmFsID0gbGVmdERhdGEudmFsdWUuZ2V0QXNOdW1iZXIoMCwgMCk7XG4gICAgICAgICAgICBjb25zdCByaWdodFZhbCA9IHJpZ2h0RGF0YS52YWx1ZS5nZXRBc051bWJlcigwLCAwKTtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5vcGVyYXRvcikge1xuICAgICAgICAgICAgICAgIGNhc2UgJz4nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKGxlZnRWYWwuZ3JlYXRlclRoYW4ocmlnaHRWYWwpKTtcbiAgICAgICAgICAgICAgICBjYXNlICc+PSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobGVmdFZhbC5ncmVhdGVyVGhhbk9yRXF1YWxUbyhyaWdodFZhbCkpO1xuICAgICAgICAgICAgICAgIGNhc2UgJzwnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKGxlZnRWYWwubGVzc1RoYW4ocmlnaHRWYWwpKTtcbiAgICAgICAgICAgICAgICBjYXNlICc8PSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobGVmdFZhbC5sZXNzVGhhbk9yRXF1YWxUbyhyaWdodFZhbCkpO1xuICAgICAgICAgICAgICAgIGNhc2UgJz09JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhsZWZ0VmFsLmVxdWFscyhyaWdodFZhbCkpO1xuICAgICAgICAgICAgICAgIGNhc2UgJyE9JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayghbGVmdFZhbC5lcXVhbHMocmlnaHRWYWwpKTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihFcnJvcignSW52YWxpZCBjb25kaXRpb25hbCBvcGVyYXRvcjogJyArIHRoaXMub3BlcmF0b3IpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdHlwZUVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGFzdCwgJ3ByZWRpY2F0ZScpO1xuICAgICAgICBpZiAodHlwZUVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyB0eXBlRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGVuZ3RoRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja0NoaWxkTGVuZ3RoKGFzdCwgMyk7XG4gICAgICAgIGlmIChsZW5ndGhFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbGVuZ3RoRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2hpbGRUeXBlRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LmNoaWxkcmVuWzFdLCAnY29uZGl0aW9uYWxfb3BlcmF0b3InKTtcbiAgICAgICAgaWYgKGNoaWxkVHlwZUVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBjaGlsZFR5cGVFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZXJhdG9yID0gYXN0LmNoaWxkcmVuWzFdLnRleHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmxlZnRTb3VyY2UgPSBuZXcgY2FsY18xLlNvdXJjZShhc3QuY2hpbGRyZW5bMF0sIHRhYmxlKTtcbiAgICAgICAgICAgIHRoaXMucmlnaHRTb3VyY2UgPSBuZXcgY2FsY18xLlNvdXJjZShhc3QuY2hpbGRyZW5bMl0sIHRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIFN0aWxsIGluIGEgY29uc3RydWN0b3IsIHNvIG5vdGhpbmcgd2UgY2FuIGRvIGJ1dCB0aHJvdyBhZ2FpblxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29uc3RhbnQgPSB2b2lkIDA7XG5jb25zdCBuZXZlcnRocm93XzEgPSByZXF1aXJlKFwiLi4vbmV2ZXJ0aHJvdy9uZXZlcnRocm93XCIpO1xuY29uc3QgYXN0X3V0aWxzXzEgPSByZXF1aXJlKFwiLi9hc3RfdXRpbHNcIik7XG5jb25zdCByZXN1bHRzXzEgPSByZXF1aXJlKFwiLi9yZXN1bHRzXCIpO1xuY2xhc3MgQ29uc3RhbnQge1xuICAgIGNvbnN0cnVjdG9yKGFzdCwgdGFibGUpIHtcbiAgICAgICAgY29uc3QgdHlwZUVyciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShhc3QsICdyZWFsJywgJ2Zsb2F0Jyk7XG4gICAgICAgIGlmICh0eXBlRXJyKSB7XG4gICAgICAgICAgICB0aHJvdyB0eXBlRXJyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG11bHRpcGxpZXIgPSBhc3QudGV4dFswXSA9PT0gJy0nID8gLTEgOiAxO1xuICAgICAgICBpZiAoYXN0LnR5cGUgPT09ICdyZWFsJykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG11bHRpcGxpZXIgKiBwYXJzZUludChhc3QuY2hpbGRyZW5bMF0udGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID1cbiAgICAgICAgICAgICAgICBtdWx0aXBsaWVyICpcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdChhc3QuY2hpbGRyZW5bMF0udGV4dCArICcuJyArIGFzdC5jaGlsZHJlblsxXS50ZXh0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXRWYWx1ZSh0YWJsZSwgY3VycmVudENlbGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgcmVzdWx0c18xLlZhbHVlKFtbdGhpcy52YWx1ZS50b1N0cmluZygpXV0pKTtcbiAgICB9XG59XG5leHBvcnRzLkNvbnN0YW50ID0gQ29uc3RhbnQ7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQWJzb2x1dGVDb2x1bW4gPSBleHBvcnRzLkNvbHVtbiA9IGV4cG9ydHMubmV3Q29sdW1uID0gdm9pZCAwO1xuY29uc3QgbmV2ZXJ0aHJvd18xID0gcmVxdWlyZShcIi4uL25ldmVydGhyb3cvbmV2ZXJ0aHJvd1wiKTtcbmNvbnN0IGFzdF91dGlsc18xID0gcmVxdWlyZShcIi4vYXN0X3V0aWxzXCIpO1xuY29uc3QgcmVzdWx0c18xID0gcmVxdWlyZShcIi4vcmVzdWx0c1wiKTtcbmNvbnN0IG5ld0NvbHVtbiA9IChhc3QsIHRhYmxlKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgc3dpdGNoIChhc3QudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAncmVsYXRpdmVfY29sdW1uJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyBSZWxhdGl2ZUNvbHVtbihhc3QsIHRhYmxlKSk7XG4gICAgICAgICAgICBjYXNlICdhYnNvbHV0ZV9jb2x1bW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobmV3IEFic29sdXRlQ29sdW1uKGFzdCwgdGFibGUpKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIobmV3IEVycm9yKGBGb3JtdWxhIGVsZW1lbnQgJyR7YXN0LnRleHR9JyBpcyBhICR7YXN0LnR5cGV9IGJ1dCBleHBlY3RlZCBhbiBgICtcbiAgICAgICAgICAgICAgICAgICAgJ3JlbGF0dmVfY29sdW1uIG9yIGFic29sdXRlX2NvbHVtbiBpbiB0aGlzIHBvc2l0aW9uLicpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIoZXJyb3IpO1xuICAgIH1cbn07XG5leHBvcnRzLm5ld0NvbHVtbiA9IG5ld0NvbHVtbjtcbmNsYXNzIENvbHVtbiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZ2V0VmFsdWUgPSAodGFibGUsIGN1cnJlbnRDZWxsKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSAoKF9hID0gdGFibGUuZ2V0Q2VsbEF0KGN1cnJlbnRDZWxsLnJvdywgdGhpcy5nZXRJbmRleChjdXJyZW50Q2VsbCkpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9UZXh0KCkpIHx8XG4gICAgICAgICAgICAgICAgJyc7XG4gICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyByZXN1bHRzXzEuVmFsdWUoW1t2YWxdXSkpO1xuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydHMuQ29sdW1uID0gQ29sdW1uO1xuY2xhc3MgUmVsYXRpdmVDb2x1bW4gZXh0ZW5kcyBDb2x1bW4ge1xuICAgIGNvbnN0cnVjdG9yKGFzdCwgdGFibGUpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5nZXRJbmRleCA9IChjdXJyZW50Q2VsbCkgPT4gY3VycmVudENlbGwuY29sdW1uICsgdGhpcy5vZmZzZXQ7XG4gICAgICAgIHRoaXMuZ2V0QWJzb2x1dGVJbmRleCA9ICgpID0+IG5ldmVydGhyb3dfMS5lcnIoYXN0X3V0aWxzXzEuZXJyUmVsYXRpdmVSZWZlcmVuY2VJbmRleCk7XG4gICAgICAgIGNvbnN0IHR5cGVFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShhc3QsICdyZWxhdGl2ZV9jb2x1bW4nKTtcbiAgICAgICAgaWYgKHR5cGVFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChhc3QsIDEpO1xuICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGxlbmd0aEVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG11bHRpcGxpZXIgPSBhc3QudGV4dFsxXSA9PT0gJy0nID8gLTEgOiAxO1xuICAgICAgICB0aGlzLm9mZnNldCA9IG11bHRpcGxpZXIgKiBwYXJzZUludChhc3QuY2hpbGRyZW5bMF0udGV4dCk7XG4gICAgfVxufVxuY2xhc3MgQWJzb2x1dGVDb2x1bW4gZXh0ZW5kcyBDb2x1bW4ge1xuICAgIGNvbnN0cnVjdG9yKGFzdCwgdGFibGUpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5nZXRJbmRleCA9IChjdXJyZW50Q2VsbCkgPT4gdGhpcy5pbmRleDtcbiAgICAgICAgdGhpcy5nZXRBYnNvbHV0ZUluZGV4ID0gKCkgPT4gbmV2ZXJ0aHJvd18xLm9rKHRoaXMuaW5kZXgpO1xuICAgICAgICBsZXQgaW5kZXggPSAtMTtcbiAgICAgICAgbGV0IHN5bWJvbCA9ICcnO1xuICAgICAgICBzd2l0Y2ggKGFzdC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICBzeW1ib2wgPSBhc3QudGV4dFsxXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LmNoaWxkcmVuWzBdLCAnaW50Jyk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXZlcnRocm93XzEuZXJyKHR5cGVFcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGluZGV4ID0gcGFyc2VJbnQoYXN0LmNoaWxkcmVuWzBdLnRleHQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvcm11bGEgZWxlbWVudCAnJHthc3QudGV4dH0nIGlzIGEgJHthc3QudHlwZX0gYnV0IGV4cGVjdGVkIGAgK1xuICAgICAgICAgICAgICAgICAgICAnYSBcXCdhYnNvbHV0ZV9jb2x1bW5cXCcgaW4gdGhpcyBwb3NpdGlvbi4nKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHN5bWJvbCkge1xuICAgICAgICAgICAgY2FzZSAnJzpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJzwnOlxuICAgICAgICAgICAgICAgIGluZGV4ID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJz4nOlxuICAgICAgICAgICAgICAgIGluZGV4ID0gdGFibGUuZ2V0V2lkdGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvbHVtbiBzeW1ib2wgJyR7c3ltYm9sfSdgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IGFzdF91dGlsc18xLmVyckluZGV4MDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluZGV4ID0gaW5kZXggLSAxOyAvLyAtMSBmb3IgYmVpbmcgemVybyBpbmRleGVkXG4gICAgfVxufVxuZXhwb3J0cy5BYnNvbHV0ZUNvbHVtbiA9IEFic29sdXRlQ29sdW1uO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkFic29sdXRlUm93ID0gZXhwb3J0cy5Sb3cgPSBleHBvcnRzLm5ld1JvdyA9IHZvaWQgMDtcbmNvbnN0IG5ldmVydGhyb3dfMSA9IHJlcXVpcmUoXCIuLi9uZXZlcnRocm93L25ldmVydGhyb3dcIik7XG5jb25zdCBhc3RfdXRpbHNfMSA9IHJlcXVpcmUoXCIuL2FzdF91dGlsc1wiKTtcbmNvbnN0IHJlc3VsdHNfMSA9IHJlcXVpcmUoXCIuL3Jlc3VsdHNcIik7XG5jb25zdCBuZXdSb3cgPSAoYXN0LCB0YWJsZSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIHN3aXRjaCAoYXN0LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3JlbGF0aXZlX3Jvdyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgUmVsYXRpdmVSb3coYXN0LCB0YWJsZSkpO1xuICAgICAgICAgICAgY2FzZSAnYWJzb2x1dGVfcm93JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyBBYnNvbHV0ZVJvdyhhc3QsIHRhYmxlKSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKG5ldyBFcnJvcihgRm9ybXVsYSBlbGVtZW50ICcke2FzdC50ZXh0fScgaXMgYSAke2FzdC50eXBlfSBidXQgZXhwZWN0ZWQgYW4gYCArXG4gICAgICAgICAgICAgICAgICAgICdyZWxhdHZlX3JvdyBvciBhYnNvbHV0ZV9yb3cgIGluIHRoaXMgcG9zaXRpb24uJykpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihlcnJvcik7XG4gICAgfVxufTtcbmV4cG9ydHMubmV3Um93ID0gbmV3Um93O1xuY2xhc3MgUm93IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5nZXRWYWx1ZSA9ICh0YWJsZSwgY3VycmVudENlbGwpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9ICgoX2EgPSB0YWJsZVxuICAgICAgICAgICAgICAgIC5nZXRDZWxsQXQodGhpcy5nZXRJbmRleChjdXJyZW50Q2VsbCksIGN1cnJlbnRDZWxsLmNvbHVtbikpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1RleHQoKSkgfHwgJyc7XG4gICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyByZXN1bHRzXzEuVmFsdWUoW1t2YWxdXSkpO1xuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydHMuUm93ID0gUm93O1xuY2xhc3MgUmVsYXRpdmVSb3cgZXh0ZW5kcyBSb3cge1xuICAgIGNvbnN0cnVjdG9yKGFzdCwgdGFibGUpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5nZXRJbmRleCA9IChjdXJyZW50Q2VsbCkgPT4gY3VycmVudENlbGwucm93ICsgdGhpcy5vZmZzZXQ7XG4gICAgICAgIHRoaXMuZ2V0QWJzb2x1dGVJbmRleCA9ICgpID0+IG5ldmVydGhyb3dfMS5lcnIoYXN0X3V0aWxzXzEuZXJyUmVsYXRpdmVSZWZlcmVuY2VJbmRleCk7XG4gICAgICAgIGNvbnN0IHR5cGVFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShhc3QsICdyZWxhdGl2ZV9yb3cnKTtcbiAgICAgICAgaWYgKHR5cGVFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChhc3QsIDEpO1xuICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGxlbmd0aEVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG11bHRpcGxpZXIgPSBhc3QudGV4dFsxXSA9PT0gJy0nID8gLTEgOiAxO1xuICAgICAgICB0aGlzLm9mZnNldCA9IG11bHRpcGxpZXIgKiBwYXJzZUludChhc3QuY2hpbGRyZW5bMF0udGV4dCk7XG4gICAgfVxufVxuY2xhc3MgQWJzb2x1dGVSb3cgZXh0ZW5kcyBSb3cge1xuICAgIGNvbnN0cnVjdG9yKGFzdCwgdGFibGUpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5nZXRJbmRleCA9IChjdXJyZW50Q2VsbCkgPT4gdGhpcy5pbmRleDtcbiAgICAgICAgdGhpcy5nZXRBYnNvbHV0ZUluZGV4ID0gKCkgPT4gbmV2ZXJ0aHJvd18xLm9rKHRoaXMuaW5kZXgpO1xuICAgICAgICBsZXQgaW5kZXggPSAtMTtcbiAgICAgICAgbGV0IHN5bWJvbCA9ICcnO1xuICAgICAgICBzd2l0Y2ggKGFzdC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICBzeW1ib2wgPSBhc3QudGV4dFsxXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LmNoaWxkcmVuWzBdLCAnaW50Jyk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXZlcnRocm93XzEuZXJyKHR5cGVFcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGluZGV4ID0gcGFyc2VJbnQoYXN0LmNoaWxkcmVuWzBdLnRleHQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvcm11bGEgZWxlbWVudCAnJHthc3QudGV4dH0nIGlzIGEgJHthc3QudHlwZX0gYnV0IGV4cGVjdGVkIGAgK1xuICAgICAgICAgICAgICAgICAgICAnYSBcXCdhYnNvbHV0ZV9yb3dcXCcgaW4gdGhpcyBwb3NpdGlvbi4nKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHN5bWJvbCkge1xuICAgICAgICAgICAgY2FzZSAnJzpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJzwnOlxuICAgICAgICAgICAgICAgIGluZGV4ID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJz4nOlxuICAgICAgICAgICAgICAgIGluZGV4ID0gdGFibGUuZ2V0SGVpZ2h0KCkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSSc6XG4gICAgICAgICAgICAgICAgaW5kZXggPSAyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcm93IHN5bWJvbCAnJHtzeW1ib2x9J2ApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgYXN0X3V0aWxzXzEuZXJySW5kZXgwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5pbmRleCA9IDA7IC8vIGFjY291bnQgZm9yIGJlaW5nIHplcm8gaW5kZXhlZFxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbmRleCA9IGluZGV4OyAvLyAtMSBmb3IgYmVpbmcgemVybyBpbmRleGVkLCBidXQgcGx1cyAxIHRvIHNraXAgaGVhZGVyXG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkFic29sdXRlUm93ID0gQWJzb2x1dGVSb3c7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmVmZXJlbmNlID0gdm9pZCAwO1xuY29uc3QgbmV2ZXJ0aHJvd18xID0gcmVxdWlyZShcIi4uL25ldmVydGhyb3cvbmV2ZXJ0aHJvd1wiKTtcbmNvbnN0IGFzdF91dGlsc18xID0gcmVxdWlyZShcIi4vYXN0X3V0aWxzXCIpO1xuY29uc3QgY29sdW1uXzEgPSByZXF1aXJlKFwiLi9jb2x1bW5cIik7XG5jb25zdCByZXN1bHRzXzEgPSByZXF1aXJlKFwiLi9yZXN1bHRzXCIpO1xuY29uc3Qgcm93XzEgPSByZXF1aXJlKFwiLi9yb3dcIik7XG5jbGFzcyBSZWZlcmVuY2Uge1xuICAgIGNvbnN0cnVjdG9yKGFzdCwgdGFibGUpIHtcbiAgICAgICAgdGhpcy5nZXRWYWx1ZSA9ICh0YWJsZSwgY3VycmVudENlbGwpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbnN0IGNlbGwgPSB7XG4gICAgICAgICAgICAgICAgcm93OiB0aGlzLnJvdyA/IHRoaXMucm93LmdldEluZGV4KGN1cnJlbnRDZWxsKSA6IGN1cnJlbnRDZWxsLnJvdyxcbiAgICAgICAgICAgICAgICBjb2x1bW46IHRoaXMuY29sdW1uXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5jb2x1bW4uZ2V0SW5kZXgoY3VycmVudENlbGwpXG4gICAgICAgICAgICAgICAgICAgIDogY3VycmVudENlbGwuY29sdW1uLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9ICgoX2EgPSB0YWJsZS5nZXRDZWxsQXQoY2VsbC5yb3csIGNlbGwuY29sdW1uKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvVGV4dCgpKSB8fCAnJztcbiAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobmV3IHJlc3VsdHNfMS5WYWx1ZShbW3ZhbF1dKSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHR5cGVFcnIgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LCAnc291cmNlX3JlZmVyZW5jZScsICdhYnNvbHV0ZV9yZWZlcmVuY2UnLCAncmVsYXRpdmVfcmVmZXJlbmNlJyk7XG4gICAgICAgIGlmICh0eXBlRXJyKSB7XG4gICAgICAgICAgICB0aHJvdyB0eXBlRXJyO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXN0LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZCA9IGFzdC5jaGlsZHJlbltpXTtcbiAgICAgICAgICAgIHN3aXRjaCAoY2hpbGQudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3JlbGF0aXZlX3Jvdyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnYWJzb2x1dGVfcm93JzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucm93ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCdSZWZlcmVuY2UgbWF5IG9ubHkgaGF2ZSBhdCBtb3N0IDEgcm93LCBtb3JlIHRoYW4gMSBwcm92aWRlZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNyZWF0ZWRSb3cgPSByb3dfMS5uZXdSb3coY2hpbGQsIHRhYmxlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNyZWF0ZWRSb3cuaXNFcnIoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNyZWF0ZWRSb3cuZXJyb3IgPT09IGFzdF91dGlsc18xLmVyckluZGV4MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBhY3R1YWxseSBhbiBlcnJvciwganVzdCBpbmRpY2F0ZXMgdXNpbmcgY3VycmVudCBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlZFJvdy5lcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdyA9IGNyZWF0ZWRSb3cudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3JlbGF0aXZlX2NvbHVtbic6XG4gICAgICAgICAgICAgICAgY2FzZSAnYWJzb2x1dGVfY29sdW1uJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY29sdW1uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCdSZWZlcmVuY2UgbWF5IG9ubHkgaGF2ZSBhdCBtb3N0IDEgY29sdW1uLCBtb3JlIHRoYW4gMSBwcm92aWRlZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNyZWF0ZWRDb2wgPSBjb2x1bW5fMS5uZXdDb2x1bW4oY2hpbGQsIHRhYmxlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNyZWF0ZWRDb2wuaXNFcnIoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNyZWF0ZWRDb2wuZXJyb3IgPT09IGFzdF91dGlsc18xLmVyckluZGV4MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBhY3R1YWxseSBhbiBlcnJvciwganVzdCBpbmRpY2F0ZXMgdXNpbmcgY3VycmVudCBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlZENvbC5lcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbiA9IGNyZWF0ZWRDb2wudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5SZWZlcmVuY2UgPSBSZWZlcmVuY2U7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmFuZ2UgPSB2b2lkIDA7XG5jb25zdCBuZXZlcnRocm93XzEgPSByZXF1aXJlKFwiLi4vbmV2ZXJ0aHJvdy9uZXZlcnRocm93XCIpO1xuY29uc3QgYXN0X3V0aWxzXzEgPSByZXF1aXJlKFwiLi9hc3RfdXRpbHNcIik7XG5jb25zdCByZWZlcmVuY2VfMSA9IHJlcXVpcmUoXCIuL3JlZmVyZW5jZVwiKTtcbmNvbnN0IHJlc3VsdHNfMSA9IHJlcXVpcmUoXCIuL3Jlc3VsdHNcIik7XG5jb25zdCBsb2Rhc2hfMSA9IHJlcXVpcmUoXCJsb2Rhc2hcIik7XG5jbGFzcyBSYW5nZSB7XG4gICAgY29uc3RydWN0b3IoYXN0LCB0YWJsZSkge1xuICAgICAgICB0aGlzLmdldFZhbHVlID0gKHRhYmxlLCBjdXJyZW50Q2VsbCkgPT4ge1xuICAgICAgICAgICAgLy8gaWYgbm8gc3RhcnQgY29sdW1uIGlzIHByb3ZpZGVkLCBjb3B5IGl0IGZyb20gdGhlIGN1cnJlbnRDZWxsXG4gICAgICAgICAgICBjb25zdCBzdGFydENvbHVtbiA9IHRoaXMuc3RhcnRDb2x1bW5cbiAgICAgICAgICAgICAgICA/IHRoaXMuc3RhcnRDb2x1bW4uZ2V0SW5kZXgoY3VycmVudENlbGwpXG4gICAgICAgICAgICAgICAgOiBjdXJyZW50Q2VsbC5jb2x1bW47XG4gICAgICAgICAgICAvLyBpZiB0aGUgY29sdW1uIGlzIHByb3ZpZGVkIGluIHRoZSBmaXJzdCBzZXQsIGJ1dCBub3QgdGhlIHNlY29uZCwgY29weSBpdFxuICAgICAgICAgICAgY29uc3QgZW5kQ29sdW1uID0gdGhpcy5lbmRDb2x1bW5cbiAgICAgICAgICAgICAgICA/IHRoaXMuZW5kQ29sdW1uLmdldEluZGV4KGN1cnJlbnRDZWxsKVxuICAgICAgICAgICAgICAgIDogc3RhcnRDb2x1bW47XG4gICAgICAgICAgICBjb25zdCBzdGFydFJvdyA9IHRoaXMuc3RhcnRSb3dcbiAgICAgICAgICAgICAgICA/IHRoaXMuc3RhcnRSb3cuZ2V0SW5kZXgoY3VycmVudENlbGwpXG4gICAgICAgICAgICAgICAgOiBjdXJyZW50Q2VsbC5yb3c7XG4gICAgICAgICAgICBjb25zdCBlbmRSb3cgPSB0aGlzLmVuZFJvd1xuICAgICAgICAgICAgICAgID8gdGhpcy5lbmRSb3cuZ2V0SW5kZXgoY3VycmVudENlbGwpXG4gICAgICAgICAgICAgICAgOiBjdXJyZW50Q2VsbC5yb3c7XG4gICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyByZXN1bHRzXzEuVmFsdWUobG9kYXNoXzEubWFwKGxvZGFzaF8xLnJhbmdlKHN0YXJ0Um93LCBlbmRSb3cgKyAxKSwgKHJvdykgPT4gbG9kYXNoXzEubWFwKGxvZGFzaF8xLnJhbmdlKHN0YXJ0Q29sdW1uLCBlbmRDb2x1bW4gKyAxKSwgKGNvbCkgPT4geyB2YXIgX2E7IHJldHVybiAoKF9hID0gdGFibGUuZ2V0Q2VsbEF0KHJvdywgY29sKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvVGV4dCgpKSB8fCAnJzsgfSkpKSk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFRoZXJlIG5lZWRzIHRvIGJlIGEgZGlzdGluY3Rpb24gYmV0d2VlbiByYW5nZXMgZm9yIHNvdXJjZSBhbmQgZGVzdGluYXRpb25cbiAgICAgICAgLy8gYSBkZXN0aW5hdGlvbiByYW5nZSBkb2VzIG5vdCBhbGxvdyByZWxhdGl2ZSByZWZlcmVuY2VzLCB3aGljaCB3b3VsZFxuICAgICAgICAvLyBzb2x2ZSB0aGlzIGlzc3VlIHdpdGggZ2V0dGluZyB0aGUgaW5kZXguXG4gICAgICAgIHRoaXMuYXNDZWxscyA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5zdGFydENvbHVtbiB8fCAhdGhpcy5zdGFydFJvdyB8fCAhdGhpcy5lbmRSb3cpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihuZXcgRXJyb3IoJ0EgcmFuZ2UgdXNlZCBhcyBhIGRlc2ludGF0aW9uIG11c3QgZGVmaW5lIHJvd3MgYW5kIGNlbGxzJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgdGhlIHNlY29uZCByZWZlcmVuY2UgaW4gdGhlIHJhbmdlIGRvZXMgbm90IGluY2x1ZGUgYSBjb2x1bW4sXG4gICAgICAgICAgICAvLyB1c2UgdGhlIHN0YXJ0IGNvbHVtbi5cbiAgICAgICAgICAgIGxldCBlbmRDb2x1bW4gPSB0aGlzLmVuZENvbHVtbjtcbiAgICAgICAgICAgIGlmICghZW5kQ29sdW1uKSB7XG4gICAgICAgICAgICAgICAgZW5kQ29sdW1uID0gdGhpcy5zdGFydENvbHVtbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0Um93SW5kZXggPSB0aGlzLnN0YXJ0Um93LmdldEFic29sdXRlSW5kZXgoKTtcbiAgICAgICAgICAgIGNvbnN0IGVuZFJvd0luZGV4ID0gdGhpcy5lbmRSb3cuZ2V0QWJzb2x1dGVJbmRleCgpO1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRDb2x1bW5JbmRleCA9IHRoaXMuc3RhcnRDb2x1bW4uZ2V0QWJzb2x1dGVJbmRleCgpO1xuICAgICAgICAgICAgY29uc3QgZW5kQ29sdW1uSW5kZXggPSBlbmRDb2x1bW4uZ2V0QWJzb2x1dGVJbmRleCgpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0Um93SW5kZXguaXNFcnIoKSB8fFxuICAgICAgICAgICAgICAgIGVuZFJvd0luZGV4LmlzRXJyKCkgfHxcbiAgICAgICAgICAgICAgICBzdGFydENvbHVtbkluZGV4LmlzRXJyKCkgfHxcbiAgICAgICAgICAgICAgICBlbmRDb2x1bW5JbmRleC5pc0VycigpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIobmV3IEVycm9yKCdBIHJlbGF0aXZlIHJhbmdlIGNhbiBub3QgYmUgdXNlZCBpbiBhIGZvcm11bGEgZGVzdGluYXRpb24nKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBtaW5Sb3cgPSBNYXRoLm1pbihzdGFydFJvd0luZGV4LnZhbHVlLCBlbmRSb3dJbmRleC52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBtYXhSb3cgPSBNYXRoLm1heChzdGFydFJvd0luZGV4LnZhbHVlLCBlbmRSb3dJbmRleC52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBtaW5Db2x1bW4gPSBNYXRoLm1pbihzdGFydENvbHVtbkluZGV4LnZhbHVlLCBlbmRDb2x1bW5JbmRleC52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBtYXhDb2x1bW4gPSBNYXRoLm1heChzdGFydENvbHVtbkluZGV4LnZhbHVlLCBlbmRDb2x1bW5JbmRleC52YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKGxvZGFzaF8xLmZsYXRNYXAobG9kYXNoXzEucmFuZ2UobWluUm93LCBtYXhSb3cgKyAxKSwgKHJvd051bSkgPT4gbG9kYXNoXzEucmFuZ2UobWluQ29sdW1uLCBtYXhDb2x1bW4gKyAxKS5tYXAoKGNvbE51bSkgPT4gKHsgcm93OiByb3dOdW0sIGNvbHVtbjogY29sTnVtIH0pKSkpO1xuICAgICAgICB9O1xuICAgICAgICBsZXQgdHlwZUVyciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShhc3QsICdyYW5nZScpO1xuICAgICAgICBpZiAodHlwZUVycikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbGVuZ3RoRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja0NoaWxkTGVuZ3RoKGFzdCwgMik7XG4gICAgICAgIGlmIChsZW5ndGhFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbGVuZ3RoRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RhcnRDaGlsZCA9IGFzdC5jaGlsZHJlblswXTtcbiAgICAgICAgY29uc3QgZW5kQ2hpbGQgPSBhc3QuY2hpbGRyZW5bMV07XG4gICAgICAgIHR5cGVFcnIgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoc3RhcnRDaGlsZCwgJ3NvdXJjZV9yZWZlcmVuY2UnKTtcbiAgICAgICAgaWYgKHR5cGVFcnIpIHtcbiAgICAgICAgICAgIHRocm93IHR5cGVFcnI7XG4gICAgICAgIH1cbiAgICAgICAgdHlwZUVyciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShlbmRDaGlsZCwgJ3NvdXJjZV9yZWZlcmVuY2UnKTtcbiAgICAgICAgaWYgKHR5cGVFcnIpIHtcbiAgICAgICAgICAgIHRocm93IHR5cGVFcnI7XG4gICAgICAgIH1cbiAgICAgICAgbGVuZ3RoRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja0NoaWxkTGVuZ3RoKHN0YXJ0Q2hpbGQsIDEpO1xuICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGxlbmd0aEVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGxlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChlbmRDaGlsZCwgMSk7XG4gICAgICAgIGlmIChsZW5ndGhFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbGVuZ3RoRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgcmVmZXJlbmNlXzEuUmVmZXJlbmNlKHN0YXJ0Q2hpbGQuY2hpbGRyZW5bMF0sIHRhYmxlKTtcbiAgICAgICAgY29uc3QgZW5kID0gbmV3IHJlZmVyZW5jZV8xLlJlZmVyZW5jZShlbmRDaGlsZC5jaGlsZHJlblswXSwgdGFibGUpO1xuICAgICAgICBpZiAoKHN0YXJ0LnJvdyAmJiAhZW5kLnJvdykgfHwgKGVuZC5yb3cgJiYgIXN0YXJ0LnJvdykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmFuZ2UgbXVzdCB1c2UgcmVmZXJlbmNlcyBvZiB0aGUgc2FtZSBraW5kJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTXVzdCBwcm92aWRlIGF0IGxlYXN0IGEgcm93IG9yIGEgY29sdW1uLCBidXQgaWYgdGhlIGZpcnN0IHZhbHVlIGhhcyBhXG4gICAgICAgIC8vIGNvbHVtbiBidXQgdGhlIHNlY29uZCBkb2VzIG5vdCwgdGhlbiBjb3B5IHRoZSBmaXJzdCBjb2wgdG8gc2Vjb25kLlxuICAgICAgICBpZiAoIXN0YXJ0LnJvdyAmJiAhc3RhcnQuY29sdW1uKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhzdGFydCk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JhbmdlIG11c3QgaGF2ZSBhIHJvdyBvciBhIGNvbHVtbiBkZWZpbmVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXJ0LnJvdykge1xuICAgICAgICAgICAgdGhpcy5zdGFydFJvdyA9IHN0YXJ0LnJvdztcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhcnQuY29sdW1uKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0Q29sdW1uID0gc3RhcnQuY29sdW1uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmQucm93KSB7XG4gICAgICAgICAgICB0aGlzLmVuZFJvdyA9IGVuZC5yb3c7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuZC5jb2x1bW4pIHtcbiAgICAgICAgICAgIHRoaXMuZW5kQ29sdW1uID0gZW5kLmNvbHVtbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW5kQ29sdW1uID0gc3RhcnQuY29sdW1uO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5SYW5nZSA9IFJhbmdlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJhbmdlRGVzdGluYXRpb24gPSBleHBvcnRzLkNlbGxEZXN0aW5hdGlvbiA9IGV4cG9ydHMuQ29sdW1uRGVzdGluYXRpb24gPSBleHBvcnRzLlJvd0Rlc3RpbmF0aW9uID0gZXhwb3J0cy5uZXdEZXN0aW5hdGlvbiA9IHZvaWQgMDtcbmNvbnN0IG5ldmVydGhyb3dfMSA9IHJlcXVpcmUoXCIuLi9uZXZlcnRocm93L25ldmVydGhyb3dcIik7XG5jb25zdCBhc3RfdXRpbHNfMSA9IHJlcXVpcmUoXCIuL2FzdF91dGlsc1wiKTtcbmNvbnN0IGNvbHVtbl8xID0gcmVxdWlyZShcIi4vY29sdW1uXCIpO1xuY29uc3QgcmFuZ2VfMSA9IHJlcXVpcmUoXCIuL3JhbmdlXCIpO1xuY29uc3Qgcm93XzEgPSByZXF1aXJlKFwiLi9yb3dcIik7XG5jb25zdCBsb2Rhc2hfMSA9IHJlcXVpcmUoXCJsb2Rhc2hcIik7XG5jb25zdCBuZXdEZXN0aW5hdGlvbiA9IChhc3QsIHRhYmxlLCBmb3JtYXR0ZXIpID0+IHtcbiAgICBjb25zdCB0eXBlRXJyID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGFzdCwgJ2Rlc3RpbmF0aW9uJyk7XG4gICAgaWYgKHR5cGVFcnIpIHtcbiAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIodHlwZUVycik7XG4gICAgfVxuICAgIGNvbnN0IGxlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChhc3QsIDEpO1xuICAgIGlmIChsZW5ndGhFcnJvcikge1xuICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihsZW5ndGhFcnJvcik7XG4gICAgfVxuICAgIGNvbnN0IGNoaWxkID0gYXN0LmNoaWxkcmVuWzBdO1xuICAgIGlmIChjaGlsZC50eXBlID09PSAncmFuZ2UnKSB7XG4gICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobmV3IFJhbmdlRGVzdGluYXRpb24oY2hpbGQsIHRhYmxlLCBmb3JtYXR0ZXIpKTtcbiAgICB9XG4gICAgLy8gbXVzdCBiZSBlaXRoZXIgYW4gYWJzb2x1dGVfcmVmZXJlbmNlXG4gICAgdHJ5IHtcbiAgICAgICAgc3dpdGNoIChjaGlsZC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyBDZWxsRGVzdGluYXRpb24oY2hpbGQsIHRhYmxlLCBmb3JtYXR0ZXIpKTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICBjb25zdCBpbm5lckNoaWxkID0gY2hpbGQuY2hpbGRyZW5bMF07XG4gICAgICAgICAgICAgICAgaWYgKGlubmVyQ2hpbGQudHlwZSA9PT0gJ2Fic29sdXRlX3JvdycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgUm93RGVzdGluYXRpb24oY2hpbGQsIHRhYmxlLCBmb3JtYXR0ZXIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaW5uZXJDaGlsZC50eXBlID09PSAnYWJzb2x1dGVfY29sdW1uJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyBDb2x1bW5EZXN0aW5hdGlvbihjaGlsZCwgdGFibGUsIGZvcm1hdHRlcikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIobmV3IEVycm9yKCdVbmV4cGVjdGVkIGRlc3RpbmF0aW9uIHR5cGUgJyArIGNoaWxkLnR5cGUpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yID09PSBhc3RfdXRpbHNfMS5lcnJJbmRleDApIHtcbiAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEuZXJyKG5ldyBFcnJvcignSW5kZXggMCBtYXkgbm90IGJlIHVzZWQgaW4gYSBkZXN0aW5hdGlvbicpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihlcnJvcik7XG4gICAgfVxufTtcbmV4cG9ydHMubmV3RGVzdGluYXRpb24gPSBuZXdEZXN0aW5hdGlvbjtcbmNsYXNzIFJvd0Rlc3RpbmF0aW9uIHtcbiAgICBjb25zdHJ1Y3Rvcihhc3QsIHRhYmxlLCBmb3JtYXR0ZXIpIHtcbiAgICAgICAgdGhpcy5tZXJnZSA9IChzb3VyY2UsIHRhYmxlKSA9PiB7XG4gICAgICAgICAgICAvLyBmb3IgY2VsbCBpbiByb3cuLi5cbiAgICAgICAgICAgIGNvbnN0IGNlbGxzID0gbG9kYXNoXzEucmFuZ2UoMCwgdGFibGUuZ2V0V2lkdGgoKSkubWFwKChjb2x1bW5OdW0pID0+ICh7IHJvdzogdGhpcy5yb3cuaW5kZXgsIGNvbHVtbjogY29sdW1uTnVtIH0pKTtcbiAgICAgICAgICAgIHJldHVybiBtZXJnZUZvckNlbGxzKHNvdXJjZSwgdGFibGUsIGNlbGxzLCB0aGlzLmZvcm1hdHRlcik7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZm9ybWF0dGVyID0gZm9ybWF0dGVyO1xuICAgICAgICBjb25zdCB0eXBlRXJyID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGFzdCwgJ2Fic29sdXRlX3JlZmVyZW5jZScpO1xuICAgICAgICBpZiAodHlwZUVycikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAxKTtcbiAgICAgICAgaWYgKGxlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBsZW5ndGhFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjaGlsZCA9IGFzdC5jaGlsZHJlblswXTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMucm93ID0gbmV3IHJvd18xLkFic29sdXRlUm93KGNoaWxkLCB0YWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAvLyBJbiBhIGNvbnN0cnVjdG9yLCBzbyB3ZSBtdXN0IHRocm93XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuUm93RGVzdGluYXRpb24gPSBSb3dEZXN0aW5hdGlvbjtcbmNsYXNzIENvbHVtbkRlc3RpbmF0aW9uIHtcbiAgICBjb25zdHJ1Y3Rvcihhc3QsIHRhYmxlLCBmb3JtYXR0ZXIpIHtcbiAgICAgICAgdGhpcy5tZXJnZSA9IChzb3VyY2UsIHRhYmxlKSA9PiB7XG4gICAgICAgICAgICAvLyBmb3IgY2VsbCBpbiBjb2x1bW4gKGV4Y2x1ZGluZyBoZWFkZXIpLi4uXG4gICAgICAgICAgICBjb25zdCBjZWxscyA9IGxvZGFzaF8xLnJhbmdlKDIsIHRhYmxlLmdldEhlaWdodCgpKS5tYXAoKHJvd051bSkgPT4gKHsgcm93OiByb3dOdW0sIGNvbHVtbjogdGhpcy5jb2x1bW4uaW5kZXggfSkpO1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlRm9yQ2VsbHMoc291cmNlLCB0YWJsZSwgY2VsbHMsIHRoaXMuZm9ybWF0dGVyKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZXIgPSBmb3JtYXR0ZXI7XG4gICAgICAgIGNvbnN0IHR5cGVFcnIgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LCAnYWJzb2x1dGVfcmVmZXJlbmNlJyk7XG4gICAgICAgIGlmICh0eXBlRXJyKSB7XG4gICAgICAgICAgICB0aHJvdyB0eXBlRXJyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChhc3QsIDEpO1xuICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGxlbmd0aEVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNoaWxkID0gYXN0LmNoaWxkcmVuWzBdO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5jb2x1bW4gPSBuZXcgY29sdW1uXzEuQWJzb2x1dGVDb2x1bW4oY2hpbGQsIHRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIEluIGEgY29uc3RydWN0b3IsIHNvIHdlIG11c3QgdGhyb3dcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Db2x1bW5EZXN0aW5hdGlvbiA9IENvbHVtbkRlc3RpbmF0aW9uO1xuY2xhc3MgQ2VsbERlc3RpbmF0aW9uIHtcbiAgICBjb25zdHJ1Y3Rvcihhc3QsIHRhYmxlLCBmb3JtYXR0ZXIpIHtcbiAgICAgICAgdGhpcy5tZXJnZSA9IChzb3VyY2UsIHRhYmxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjZWxsID0geyByb3c6IHRoaXMucm93LmluZGV4LCBjb2x1bW46IHRoaXMuY29sdW1uLmluZGV4IH07XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VGb3JDZWxscyhzb3VyY2UsIHRhYmxlLCBbY2VsbF0sIHRoaXMuZm9ybWF0dGVyKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZXIgPSBmb3JtYXR0ZXI7XG4gICAgICAgIGNvbnN0IHR5cGVFcnIgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LCAnYWJzb2x1dGVfcmVmZXJlbmNlJyk7XG4gICAgICAgIGlmICh0eXBlRXJyKSB7XG4gICAgICAgICAgICB0aHJvdyB0eXBlRXJyO1xuICAgICAgICB9XG4gICAgICAgIC8vIEEgY2VsbCBuZWVkcyB0byBoYXZlIHR3byBjaGlsZHJlbiwgYSByb3cgYW5kIGEgY29sdW1uXG4gICAgICAgIGNvbnN0IGxlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChhc3QsIDIpO1xuICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGxlbmd0aEVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJvd0NoaWxkID0gYXN0LmNoaWxkcmVuWzBdO1xuICAgICAgICBjb25zdCBjb2xDaGlsZCA9IGFzdC5jaGlsZHJlblsxXTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMucm93ID0gbmV3IHJvd18xLkFic29sdXRlUm93KHJvd0NoaWxkLCB0YWJsZSk7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbiA9IG5ldyBjb2x1bW5fMS5BYnNvbHV0ZUNvbHVtbihjb2xDaGlsZCwgdGFibGUpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgLy8gSW4gYSBjb25zdHJ1Y3Rvciwgc28gd2UgbXVzdCB0aHJvd1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkNlbGxEZXN0aW5hdGlvbiA9IENlbGxEZXN0aW5hdGlvbjtcbmNsYXNzIFJhbmdlRGVzdGluYXRpb24ge1xuICAgIGNvbnN0cnVjdG9yKGFzdCwgdGFibGUsIGZvcm1hdHRlcikge1xuICAgICAgICB0aGlzLm1lcmdlID0gKHNvdXJjZSwgdGFibGUpID0+IHRoaXMucmFuZ2VcbiAgICAgICAgICAgIC5hc0NlbGxzKClcbiAgICAgICAgICAgIC5hbmRUaGVuKChjZWxscykgPT4gbWVyZ2VGb3JDZWxscyhzb3VyY2UsIHRhYmxlLCBjZWxscywgdGhpcy5mb3JtYXR0ZXIpKTtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZXIgPSBmb3JtYXR0ZXI7XG4gICAgICAgIGNvbnN0IHR5cGVFcnIgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LCAncmFuZ2UnKTtcbiAgICAgICAgaWYgKHR5cGVFcnIpIHtcbiAgICAgICAgICAgIHRocm93IHR5cGVFcnI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGVuZ3RoRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja0NoaWxkTGVuZ3RoKGFzdCwgMik7XG4gICAgICAgIGlmIChsZW5ndGhFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbGVuZ3RoRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgYXN0LmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBsZXQgY2hpbGRUeXBlRXJyID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGNoaWxkLCAnc291cmNlX3JlZmVyZW5jZScpO1xuICAgICAgICAgICAgaWYgKGNoaWxkVHlwZUVycikge1xuICAgICAgICAgICAgICAgIHRocm93IGNoaWxkVHlwZUVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNoaWxkTGVuZ3RoRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja0NoaWxkTGVuZ3RoKGNoaWxkLCAxKTtcbiAgICAgICAgICAgIGlmIChjaGlsZExlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgY2hpbGRMZW5ndGhFcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNoaWxkVHlwZUVyciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShjaGlsZC5jaGlsZHJlblswXSwgJ2Fic29sdXRlX3JlZmVyZW5jZScpO1xuICAgICAgICAgICAgaWYgKGNoaWxkVHlwZUVycikge1xuICAgICAgICAgICAgICAgIHRocm93IGNoaWxkVHlwZUVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmFuZ2UgPSBuZXcgcmFuZ2VfMS5SYW5nZShhc3QsIHRhYmxlKTtcbiAgICB9XG59XG5leHBvcnRzLlJhbmdlRGVzdGluYXRpb24gPSBSYW5nZURlc3RpbmF0aW9uO1xuY29uc3QgbWVyZ2VGb3JDZWxscyA9IChzb3VyY2UsIHRhYmxlLCBjZWxscywgZm9ybWF0dGVyKSA9PiBjZWxscy5yZWR1Y2UoKGN1cnJlbnRUYWJsZSwgY3VycmVudENlbGwpID0+IGN1cnJlbnRUYWJsZS5hbmRUaGVuKCh0KSA9PiBzb3VyY2VcbiAgICAuZ2V0VmFsdWUodCwgY3VycmVudENlbGwpXG4gICAgLmFuZFRoZW4oKHZhbCkgPT4gbmV2ZXJ0aHJvd18xLm9rKHZhbC50b1N0cmluZygpKSlcbiAgICAuYW5kVGhlbigodmFsKSA9PiBuZXZlcnRocm93XzEub2sodmFsLnRyaW0oKSA9PT0gJycgPyAnMCcgOiB2YWwpKVxuICAgIC5hbmRUaGVuKCh2YWwpID0+IG5ldmVydGhyb3dfMS5vayh0LnNldENlbGxBdChjdXJyZW50Q2VsbC5yb3csIGN1cnJlbnRDZWxsLmNvbHVtbiwgZm9ybWF0dGVyLmZvcm1hdCh2YWwpKSkpKSwgbmV2ZXJ0aHJvd18xLm9rKHRhYmxlKSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRGlzcGxheURpcmVjdGl2ZSA9IGV4cG9ydHMuRGVmYXVsdEZvcm1hdHRlciA9IHZvaWQgMDtcbmNvbnN0IGFzdF91dGlsc18xID0gcmVxdWlyZShcIi4vYXN0X3V0aWxzXCIpO1xuY2xhc3MgRGVmYXVsdEZvcm1hdHRlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9ybWF0ID0gKG51bSkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBudW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudW0udG9TdHJpbmcoKTtcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnRzLkRlZmF1bHRGb3JtYXR0ZXIgPSBEZWZhdWx0Rm9ybWF0dGVyO1xuY2xhc3MgRGlzcGxheURpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IoYXN0KSB7XG4gICAgICAgIHRoaXMuZm9ybWF0ID0gKG51bSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gdHlwZW9mIG51bSA9PT0gJ3N0cmluZycgPyBwYXJzZUZsb2F0KG51bSkgOiBudW07XG4gICAgICAgICAgICBpZiAodGhpcy5kaXNwbGF5QXNEYXRldGltZSkge1xuICAgICAgICAgICAgICAgIC8vIFNlcmlvdXNseSwgdGhlcmUncyBubyBkYXRlIGZvcm1hdHRpbmcgZnVuY3Rpb25hbGl0eSBpbiBKYXZhc2NyaXB0P1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShwYXJzZWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhZCA9ICh2KSA9PiBgMCR7dn1gLnNsaWNlKC0yKTtcbiAgICAgICAgICAgICAgICBjb25zdCB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vID0gcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGQgPSBwYWQoZGF0ZS5nZXREYXRlKCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGggPSBwYWQoZGF0ZS5nZXRIb3VycygpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSBwYWQoZGF0ZS5nZXRNaW51dGVzKCkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBgJHt5fS0ke21vfS0ke2R9ICR7aH06JHttaW59YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwYXJzZWQudG9GaXhlZCh0aGlzLmRlY2ltYWxMZW5ndGgpO1xuICAgICAgICB9O1xuICAgICAgICBsZXQgdHlwZUVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGFzdCwgJ2Rpc3BsYXlfZGlyZWN0aXZlJyk7XG4gICAgICAgIGlmICh0eXBlRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IHR5cGVFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbGVuZ3RoRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja0NoaWxkTGVuZ3RoKGFzdCwgMSk7XG4gICAgICAgIGlmIChsZW5ndGhFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbGVuZ3RoRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGlzcGxheURpcmVjdGl2ZU9wdGlvbiA9IGFzdC5jaGlsZHJlblswXTtcbiAgICAgICAgdHlwZUVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGRpc3BsYXlEaXJlY3RpdmVPcHRpb24sICdkaXNwbGF5X2RpcmVjdGl2ZV9vcHRpb24nKTtcbiAgICAgICAgaWYgKHR5cGVFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGxlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChkaXNwbGF5RGlyZWN0aXZlT3B0aW9uLCAxKTtcbiAgICAgICAgaWYgKGxlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBsZW5ndGhFcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb3JtYXR0aW5nRGlyZWN0aXZlID0gZGlzcGxheURpcmVjdGl2ZU9wdGlvbi5jaGlsZHJlblswXTtcbiAgICAgICAgdHlwZUVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGZvcm1hdHRpbmdEaXJlY3RpdmUsICdmb3JtYXR0aW5nX2RpcmVjdGl2ZScsICdkYXRldGltZV9kaXJlY3RpdmUnKTtcbiAgICAgICAgaWYgKHR5cGVFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycm9yO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlzcGxheUFzRGF0ZXRpbWUgPSBmb3JtYXR0aW5nRGlyZWN0aXZlLnR5cGUgPT09ICdkYXRldGltZV9kaXJlY3RpdmUnO1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5QXNEYXRldGltZSkge1xuICAgICAgICAgICAgdGhpcy5kZWNpbWFsTGVuZ3RoID0gLTE7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGVuZ3RoRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja0NoaWxkTGVuZ3RoKGZvcm1hdHRpbmdEaXJlY3RpdmUsIDEpO1xuICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGxlbmd0aEVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1hdHRpbmdEaXJlY3RpdmVMZW5ndGggPSBmb3JtYXR0aW5nRGlyZWN0aXZlLmNoaWxkcmVuWzBdO1xuICAgICAgICB0eXBlRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoZm9ybWF0dGluZ0RpcmVjdGl2ZUxlbmd0aCwgJ2ludCcpO1xuICAgICAgICBpZiAodHlwZUVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyB0eXBlRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZWNpbWFsTGVuZ3RoID0gcGFyc2VJbnQoZm9ybWF0dGluZ0RpcmVjdGl2ZUxlbmd0aC50ZXh0KTtcbiAgICB9XG59XG5leHBvcnRzLkRpc3BsYXlEaXJlY3RpdmUgPSBEaXNwbGF5RGlyZWN0aXZlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNpbmdsZVBhcmFtRnVuY3Rpb25DYWxsID0gdm9pZCAwO1xuY29uc3QgbmV2ZXJ0aHJvd18xID0gcmVxdWlyZShcIi4uL25ldmVydGhyb3cvbmV2ZXJ0aHJvd1wiKTtcbmNvbnN0IGFzdF91dGlsc18xID0gcmVxdWlyZShcIi4vYXN0X3V0aWxzXCIpO1xuY29uc3QgY2FsY18xID0gcmVxdWlyZShcIi4vY2FsY1wiKTtcbmNvbnN0IHJlc3VsdHNfMSA9IHJlcXVpcmUoXCIuL3Jlc3VsdHNcIik7XG5jb25zdCBkZWNpbWFsX2pzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImRlY2ltYWwuanNcIikpO1xuY2xhc3MgU2luZ2xlUGFyYW1GdW5jdGlvbkNhbGwge1xuICAgIGNvbnN0cnVjdG9yKGFzdCwgdGFibGUpIHtcbiAgICAgICAgdGhpcy5nZXRWYWx1ZSA9ICh0YWJsZSwgY2VsbCkgPT4gdGhpcy5wYXJhbS5nZXRWYWx1ZSh0YWJsZSwgY2VsbCkuYW5kVGhlbigoc291cmNlRGF0YSkgPT4gXG4gICAgICAgIC8vIFRoZSBvcGVyYXRpb24gZnVuY3Rpb25zIGRvIG5vdCB0aHJvdyBlcnJvcnMgYmVjYXVzZSBkYXRhIGFyaXR5IGhhc1xuICAgICAgICAvLyBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkLlxuICAgICAgICBuZXZlcnRocm93XzEub2sodGhpcy5vcChzb3VyY2VEYXRhKSkpO1xuICAgICAgICBjb25zdCB0eXBlRXJyb3IgPSBhc3RfdXRpbHNfMS5jaGVja1R5cGUoYXN0LCAnc2luZ2xlX3BhcmFtX2Z1bmN0aW9uX2NhbGwnKTtcbiAgICAgICAgaWYgKHR5cGVFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgdHlwZUVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxlbmd0aEVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tDaGlsZExlbmd0aChhc3QsIDIpO1xuICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGxlbmd0aEVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNoaWxkVHlwZUVycm9yID0gYXN0X3V0aWxzXzEuY2hlY2tUeXBlKGFzdC5jaGlsZHJlblswXSwgJ3NpbmdsZV9wYXJhbV9mdW5jdGlvbicpO1xuICAgICAgICBpZiAoY2hpbGRUeXBlRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGNoaWxkVHlwZUVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGFzdC5jaGlsZHJlblswXS50ZXh0O1xuICAgICAgICBzd2l0Y2ggKGZ1bmN0aW9uTmFtZSkge1xuICAgICAgICAgICAgY2FzZSAnc3VtJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9wID0gc3VtO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWVhbic6XG4gICAgICAgICAgICAgICAgdGhpcy5vcCA9IG1lYW47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCdVbmtub3duIHNpbmdsZSBwYXJhbSBmdW5jdGlvbiBjYWxsOiAnICsgZnVuY3Rpb25OYW1lKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhcmFtID0gbmV3IGNhbGNfMS5Tb3VyY2UoYXN0LmNoaWxkcmVuWzFdLCB0YWJsZSk7XG4gICAgfVxufVxuZXhwb3J0cy5TaW5nbGVQYXJhbUZ1bmN0aW9uQ2FsbCA9IFNpbmdsZVBhcmFtRnVuY3Rpb25DYWxsO1xuLyoqXG4gKiBTdW0gYWxsIHRoZSBjZWxscyBpbiB0aGUgaW5wdXQgdmFsdWUsIHByb2R1Y2luZyBhIHNpbmdsZSBjZWxsIG91dHB1dC5cbiAqL1xuY29uc3Qgc3VtID0gKHZhbHVlKSA9PiB7XG4gICAgY29uc3QgdG90YWwgPSB2YWx1ZS52YWwucmVkdWNlKChydW5uaW5nVG90YWwsIGN1cnJlbnRSb3cpID0+IGN1cnJlbnRSb3cucmVkdWNlKChyb3dUb3RhbCwgY3VycmVudENlbGwpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudENlbGxWYWx1ZSA9IHJlc3VsdHNfMS5GbG9hdE9yTWlsbGlzZWNvbmRzKGN1cnJlbnRDZWxsKTtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRDZWxsVmFsdWUuYWRkKHJvd1RvdGFsKTtcbiAgICB9LCBydW5uaW5nVG90YWwpLCBuZXcgZGVjaW1hbF9qc18xLmRlZmF1bHQoMCkpO1xuICAgIHJldHVybiBuZXcgcmVzdWx0c18xLlZhbHVlKFtbdG90YWwudG9TdHJpbmcoKV1dKTtcbn07XG4vKipcbiAqIE1lYW4gb2YgYWxsIHRoZSBjZWxscyBpbiB0aGUgaW5wdXQgdmFsdWUsIHByb2R1Y2luZyBhIHNpbmdsZSBjZWxsIG91dHB1dC5cbiAqL1xuY29uc3QgbWVhbiA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHsgdG90YWwsIGNvdW50IH0gPSB2YWx1ZS52YWwucmVkdWNlKCh7IHRvdGFsOiBydW5uaW5nVG90YWwxLCBjb3VudDogY3VycmVudENvdW50MSB9LCBjdXJyZW50Um93KSA9PiBjdXJyZW50Um93LnJlZHVjZSgoeyB0b3RhbDogcnVubmluZ1RvdGFsMiwgY291bnQ6IGN1cnJlbnRDb3VudDIgfSwgY3VycmVudENlbGwpID0+ICh7XG4gICAgICAgIHRvdGFsOiBydW5uaW5nVG90YWwyICsgK2N1cnJlbnRDZWxsLFxuICAgICAgICBjb3VudDogY3VycmVudENvdW50MiArIDEsXG4gICAgfSksIHsgdG90YWw6IHJ1bm5pbmdUb3RhbDEsIGNvdW50OiBjdXJyZW50Q291bnQxIH0pLCB7IHRvdGFsOiAwLCBjb3VudDogMCB9KTtcbiAgICByZXR1cm4gbmV3IHJlc3VsdHNfMS5WYWx1ZShbWyh0b3RhbCAvIGNvdW50KS50b1N0cmluZygpXV0pO1xufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Ub2tlbkVycm9yID0gdm9pZCAwO1xuY2xhc3MgVG9rZW5FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCB0b2tlbikge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgdGhpcy50b2tlbiA9IHRva2VuO1xuICAgICAgICBpZiAodG9rZW4gJiYgdG9rZW4uZXJyb3JzKVxuICAgICAgICAgICAgdG9rZW4uZXJyb3JzLnB1c2godGhpcyk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRocm93IHRoaXM7XG4gICAgfVxuICAgIGluc3BlY3QoKSB7XG4gICAgICAgIHJldHVybiAnU3ludGF4RXJyb3I6ICcgKyB0aGlzLm1lc3NhZ2U7XG4gICAgfVxufVxuZXhwb3J0cy5Ub2tlbkVycm9yID0gVG9rZW5FcnJvcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRva2VuRXJyb3IuanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vLyBodHRwczovL3d3dy5pY3MudWNpLmVkdS9+cGF0dGlzL0lDUy0zMy9sZWN0dXJlcy9lYm5mLnBkZlxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5QYXJzZXIgPSBleHBvcnRzLmZpbmRSdWxlQnlOYW1lID0gZXhwb3J0cy5wYXJzZVJ1bGVOYW1lID0gZXhwb3J0cy5lc2NhcGVSZWdFeHAgPSBleHBvcnRzLnJlYWRUb2tlbiA9IHZvaWQgMDtcbmNvbnN0IFVQUEVSX1NOQUtFX1JFID0gL15bQS1aMC05X10rJC87XG5jb25zdCBkZWNvcmF0aW9uUkUgPSAvKFxcP3xcXCt8XFwqKSQvO1xuY29uc3QgcHJlRGVjb3JhdGlvblJFID0gL14oQHwmfCEpLztcbmNvbnN0IFdTX1JVTEUgPSAnV1MnO1xuY29uc3QgVG9rZW5FcnJvcl8xID0gcmVxdWlyZShcIi4vVG9rZW5FcnJvclwiKTtcbmZ1bmN0aW9uIHJlYWRUb2tlbih0eHQsIGV4cHIpIHtcbiAgICBsZXQgcmVzdWx0ID0gZXhwci5leGVjKHR4dCk7XG4gICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuaW5kZXggPT0gMCkge1xuICAgICAgICBpZiAocmVzdWx0WzBdLmxlbmd0aCA9PSAwICYmIGV4cHIuc291cmNlLmxlbmd0aCA+IDApXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiByZXN1bHRbMF0sXG4gICAgICAgICAgICByZXN0OiB0eHQuc3Vic3RyKHJlc3VsdFswXS5sZW5ndGgpLFxuICAgICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgICBlbmQ6IHJlc3VsdFswXS5sZW5ndGggLSAxLFxuICAgICAgICAgICAgZnVsbFRleHQ6IHJlc3VsdFswXSxcbiAgICAgICAgICAgIGVycm9yczogW10sXG4gICAgICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgICAgICBwYXJlbnQ6IG51bGxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5leHBvcnRzLnJlYWRUb2tlbiA9IHJlYWRUb2tlbjtcbmZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1tcXC1cXFtcXF1cXC9cXHtcXH1cXChcXClcXCpcXCtcXD9cXC5cXFxcXFxeXFwkXFx8XS9nLCAnXFxcXCQmJyk7XG59XG5leHBvcnRzLmVzY2FwZVJlZ0V4cCA9IGVzY2FwZVJlZ0V4cDtcbmZ1bmN0aW9uIGZpeFJlc3QodG9rZW4pIHtcbiAgICB0b2tlbi5yZXN0ID0gJyc7XG4gICAgdG9rZW4uY2hpbGRyZW4gJiYgdG9rZW4uY2hpbGRyZW4uZm9yRWFjaChjID0+IGZpeFJlc3QoYykpO1xufVxuZnVuY3Rpb24gZml4UG9zaXRpb25zKHRva2VuLCBzdGFydCkge1xuICAgIHRva2VuLnN0YXJ0ICs9IHN0YXJ0O1xuICAgIHRva2VuLmVuZCArPSBzdGFydDtcbiAgICB0b2tlbi5jaGlsZHJlbiAmJiB0b2tlbi5jaGlsZHJlbi5mb3JFYWNoKGMgPT4gZml4UG9zaXRpb25zKGMsIHRva2VuLnN0YXJ0KSk7XG59XG5mdW5jdGlvbiBhZ3JlZ2F0ZUVycm9ycyhlcnJvcnMsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLmVycm9ycyAmJiB0b2tlbi5lcnJvcnMubGVuZ3RoKVxuICAgICAgICB0b2tlbi5lcnJvcnMuZm9yRWFjaChlcnIgPT4gZXJyb3JzLnB1c2goZXJyKSk7XG4gICAgdG9rZW4uY2hpbGRyZW4gJiYgdG9rZW4uY2hpbGRyZW4uZm9yRWFjaCh0b2sgPT4gYWdyZWdhdGVFcnJvcnMoZXJyb3JzLCB0b2spKTtcbn1cbmZ1bmN0aW9uIHBhcnNlUnVsZU5hbWUobmFtZSkge1xuICAgIGxldCBwb3N0RGVjb3JhdGlvbiA9IGRlY29yYXRpb25SRS5leGVjKG5hbWUpO1xuICAgIGxldCBwcmVEZWNvcmF0aW9uID0gcHJlRGVjb3JhdGlvblJFLmV4ZWMobmFtZSk7XG4gICAgbGV0IHBvc3REZWNvcmF0aW9uVGV4dCA9IChwb3N0RGVjb3JhdGlvbiAmJiBwb3N0RGVjb3JhdGlvblswXSkgfHwgJyc7XG4gICAgbGV0IHByZURlY29yYXRpb25UZXh0ID0gKHByZURlY29yYXRpb24gJiYgcHJlRGVjb3JhdGlvblswXSkgfHwgJyc7XG4gICAgbGV0IG91dCA9IHtcbiAgICAgICAgcmF3OiBuYW1lLFxuICAgICAgICBuYW1lOiBuYW1lLnJlcGxhY2UoZGVjb3JhdGlvblJFLCAnJykucmVwbGFjZShwcmVEZWNvcmF0aW9uUkUsICcnKSxcbiAgICAgICAgaXNPcHRpb25hbDogcG9zdERlY29yYXRpb25UZXh0ID09ICc/JyB8fCBwb3N0RGVjb3JhdGlvblRleHQgPT0gJyonLFxuICAgICAgICBhbGxvd1JlcGV0aXRpb246IHBvc3REZWNvcmF0aW9uVGV4dCA9PSAnKycgfHwgcG9zdERlY29yYXRpb25UZXh0ID09ICcqJyxcbiAgICAgICAgYXRMZWFzdE9uZTogcG9zdERlY29yYXRpb25UZXh0ID09ICcrJyxcbiAgICAgICAgbG9va3VwUG9zaXRpdmU6IHByZURlY29yYXRpb25UZXh0ID09ICcmJyxcbiAgICAgICAgbG9va3VwTmVnYXRpdmU6IHByZURlY29yYXRpb25UZXh0ID09ICchJyxcbiAgICAgICAgcGlubmVkOiBwcmVEZWNvcmF0aW9uVGV4dCA9PSAnQCcsXG4gICAgICAgIGxvb2t1cDogZmFsc2UsXG4gICAgICAgIGlzTGl0ZXJhbDogZmFsc2VcbiAgICB9O1xuICAgIG91dC5pc0xpdGVyYWwgPSBvdXQubmFtZVswXSA9PSBcIidcIiB8fCBvdXQubmFtZVswXSA9PSAnXCInO1xuICAgIG91dC5sb29rdXAgPSBvdXQubG9va3VwTmVnYXRpdmUgfHwgb3V0Lmxvb2t1cFBvc2l0aXZlO1xuICAgIHJldHVybiBvdXQ7XG59XG5leHBvcnRzLnBhcnNlUnVsZU5hbWUgPSBwYXJzZVJ1bGVOYW1lO1xuZnVuY3Rpb24gZmluZFJ1bGVCeU5hbWUobmFtZSwgcGFyc2VyKSB7XG4gICAgbGV0IHBhcnNlZCA9IHBhcnNlUnVsZU5hbWUobmFtZSk7XG4gICAgcmV0dXJuIHBhcnNlci5jYWNoZWRSdWxlc1twYXJzZWQubmFtZV0gfHwgbnVsbDtcbn1cbmV4cG9ydHMuZmluZFJ1bGVCeU5hbWUgPSBmaW5kUnVsZUJ5TmFtZTtcbi8vLyBSZW1vdmVzIGFsbCB0aGUgbm9kZXMgc3RhcnRpbmcgd2l0aCAnUlVMRV8nXG5mdW5jdGlvbiBzdHJpcFJ1bGVzKHRva2VuLCByZSkge1xuICAgIGlmICh0b2tlbi5jaGlsZHJlbikge1xuICAgICAgICBsZXQgbG9jYWxSdWxlcyA9IHRva2VuLmNoaWxkcmVuLmZpbHRlcih4ID0+IHgudHlwZSAmJiByZS50ZXN0KHgudHlwZSkpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxvY2FsUnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBpbmRleE9uQ2hpbGRyZW4gPSB0b2tlbi5jaGlsZHJlbi5pbmRleE9mKGxvY2FsUnVsZXNbaV0pO1xuICAgICAgICAgICAgaWYgKGluZGV4T25DaGlsZHJlbiAhPSAtMSkge1xuICAgICAgICAgICAgICAgIHRva2VuLmNoaWxkcmVuLnNwbGljZShpbmRleE9uQ2hpbGRyZW4sIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRva2VuLmNoaWxkcmVuLmZvckVhY2goYyA9PiBzdHJpcFJ1bGVzKGMsIHJlKSk7XG4gICAgfVxufVxuY29uc3QgaWdub3JlTWlzc2luZ1J1bGVzID0gWydFT0YnXTtcbmNsYXNzIFBhcnNlciB7XG4gICAgY29uc3RydWN0b3IoZ3JhbW1hclJ1bGVzLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuZ3JhbW1hclJ1bGVzID0gZ3JhbW1hclJ1bGVzO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLmNhY2hlZFJ1bGVzID0ge307XG4gICAgICAgIHRoaXMuZGVidWcgPSBvcHRpb25zID8gb3B0aW9ucy5kZWJ1ZyA9PT0gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICBsZXQgZXJyb3JzID0gW107XG4gICAgICAgIGxldCBuZWVkZWRSdWxlcyA9IFtdO1xuICAgICAgICBncmFtbWFyUnVsZXMuZm9yRWFjaChydWxlID0+IHtcbiAgICAgICAgICAgIGxldCBwYXJzZWROYW1lID0gcGFyc2VSdWxlTmFtZShydWxlLm5hbWUpO1xuICAgICAgICAgICAgaWYgKHBhcnNlZE5hbWUubmFtZSBpbiB0aGlzLmNhY2hlZFJ1bGVzKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JzLnB1c2goJ0R1cGxpY2F0ZWQgcnVsZSAnICsgcGFyc2VkTmFtZS5uYW1lKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhY2hlZFJ1bGVzW3BhcnNlZE5hbWUubmFtZV0gPSBydWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFydWxlLmJuZiB8fCAhcnVsZS5ibmYubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGVycm9yID0gJ01pc3NpbmcgcnVsZSBjb250ZW50LCBydWxlOiAnICsgcnVsZS5uYW1lO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcnMuaW5kZXhPZihlcnJvcikgPT0gLTEpXG4gICAgICAgICAgICAgICAgICAgIGVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJ1bGUuYm5mLmZvckVhY2gob3B0aW9ucyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc1swXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJzZWQgPSBwYXJzZVJ1bGVOYW1lKG9wdGlvbnNbMF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNlZC5uYW1lID09IHJ1bGUubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9ICdMZWZ0IHJlY3Vyc2lvbiBpcyBub3QgYWxsb3dlZCwgcnVsZTogJyArIHJ1bGUubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzLmluZGV4T2YoZXJyb3IpID09IC0xKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMucHVzaChlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0gcGFyc2VSdWxlTmFtZShvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbmFtZS5pc0xpdGVyYWwgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZGVkUnVsZXMuaW5kZXhPZihuYW1lLm5hbWUpID09IC0xICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZU1pc3NpbmdSdWxlcy5pbmRleE9mKG5hbWUubmFtZSkgPT0gLTEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRlZFJ1bGVzLnB1c2gobmFtZS5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoV1NfUlVMRSA9PSBydWxlLm5hbWUpXG4gICAgICAgICAgICAgICAgcnVsZS5pbXBsaWNpdFdzID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAocnVsZS5pbXBsaWNpdFdzKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5lZWRlZFJ1bGVzLmluZGV4T2YoV1NfUlVMRSkgPT0gLTEpXG4gICAgICAgICAgICAgICAgICAgIG5lZWRlZFJ1bGVzLnB1c2goV1NfUlVMRSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocnVsZS5yZWNvdmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5lZWRlZFJ1bGVzLmluZGV4T2YocnVsZS5yZWNvdmVyKSA9PSAtMSlcbiAgICAgICAgICAgICAgICAgICAgbmVlZGVkUnVsZXMucHVzaChydWxlLnJlY292ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbmVlZGVkUnVsZXMuZm9yRWFjaChydWxlTmFtZSA9PiB7XG4gICAgICAgICAgICBpZiAoIShydWxlTmFtZSBpbiB0aGlzLmNhY2hlZFJ1bGVzKSkge1xuICAgICAgICAgICAgICAgIGVycm9ycy5wdXNoKCdNaXNzaW5nIHJ1bGUgJyArIHJ1bGVOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChlcnJvcnMubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9ycy5qb2luKCdcXG4nKSk7XG4gICAgfVxuICAgIGdldEFTVCh0eHQsIHRhcmdldCkge1xuICAgICAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICAgICAgdGFyZ2V0ID0gdGhpcy5ncmFtbWFyUnVsZXMuZmlsdGVyKHggPT4gIXguZnJhZ21lbnQgJiYgeC5uYW1lLmluZGV4T2YoJyUnKSAhPSAwKVswXS5uYW1lO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnBhcnNlKHR4dCwgdGFyZ2V0KTtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgYWdyZWdhdGVFcnJvcnMocmVzdWx0LmVycm9ycywgcmVzdWx0KTtcbiAgICAgICAgICAgIGZpeFBvc2l0aW9ucyhyZXN1bHQsIDApO1xuICAgICAgICAgICAgLy8gUkVNT1ZFIEFMTCBUSEUgVEFHUyBNQVRDSElORyAvXiUvXG4gICAgICAgICAgICBzdHJpcFJ1bGVzKHJlc3VsdCwgL14lLyk7XG4gICAgICAgICAgICBpZiAoIXRoaXMub3B0aW9ucyB8fCAhdGhpcy5vcHRpb25zLmtlZXBVcHBlclJ1bGVzKVxuICAgICAgICAgICAgICAgIHN0cmlwUnVsZXMocmVzdWx0LCBVUFBFUl9TTkFLRV9SRSk7XG4gICAgICAgICAgICBsZXQgcmVzdCA9IHJlc3VsdC5yZXN0O1xuICAgICAgICAgICAgaWYgKHJlc3QpIHtcbiAgICAgICAgICAgICAgICBuZXcgVG9rZW5FcnJvcl8xLlRva2VuRXJyb3IoJ1VuZXhwZWN0ZWQgZW5kIG9mIGlucHV0OiBcXG4nICsgcmVzdCwgcmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpeFJlc3QocmVzdWx0KTtcbiAgICAgICAgICAgIHJlc3VsdC5yZXN0ID0gcmVzdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBlbWl0U291cmNlKCkge1xuICAgICAgICByZXR1cm4gJ0NBTk5PVCBFTUlUIFNPVVJDRSBGUk9NIEJBU0UgUGFyc2VyJztcbiAgICB9XG4gICAgcGFyc2UodHh0LCB0YXJnZXQsIHJlY3Vyc2lvbiA9IDApIHtcbiAgICAgICAgbGV0IG91dCA9IG51bGw7XG4gICAgICAgIGxldCB0eXBlID0gcGFyc2VSdWxlTmFtZSh0YXJnZXQpO1xuICAgICAgICBsZXQgZXhwcjtcbiAgICAgICAgbGV0IHByaW50YWJsZSA9IHRoaXMuZGVidWcgJiYgLyohaXNMaXRlcmFsICYqLyAhVVBQRVJfU05BS0VfUkUudGVzdCh0eXBlLm5hbWUpO1xuICAgICAgICBwcmludGFibGUgJiZcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKG5ldyBBcnJheShyZWN1cnNpb24pLmpvaW4oJ+KUgiAgJykgKyAnVHJ5aW5nIHRvIGdldCAnICsgdGFyZ2V0ICsgJyBmcm9tICcgKyBKU09OLnN0cmluZ2lmeSh0eHQuc3BsaXQoJ1xcbicpWzBdKSk7XG4gICAgICAgIGxldCByZWFsVHlwZSA9IHR5cGUubmFtZTtcbiAgICAgICAgbGV0IHRhcmdldExleCA9IGZpbmRSdWxlQnlOYW1lKHR5cGUubmFtZSwgdGhpcyk7XG4gICAgICAgIGlmICh0eXBlLm5hbWUgPT0gJ0VPRicpIHtcbiAgICAgICAgICAgIGlmICh0eHQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0eHQubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnRU9GJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICAgICAgICAgIHJlc3Q6ICcnLFxuICAgICAgICAgICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgICAgICAgICAgZW5kOiAwLFxuICAgICAgICAgICAgICAgICAgICBmdWxsVGV4dDogJycsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yczogW10sXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBudWxsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKCF0YXJnZXRMZXggJiYgdHlwZS5pc0xpdGVyYWwpIHtcbiAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWV2YWxcbiAgICAgICAgICAgICAgICBsZXQgc3JjID0gZXZhbCh0eXBlLm5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChzcmMgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnJSVFTVBUWSUlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdDogdHh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBmdWxsVGV4dDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnM6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBudWxsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV4cHIgPSBuZXcgUmVnRXhwKGVzY2FwZVJlZ0V4cChzcmMpKTtcbiAgICAgICAgICAgICAgICByZWFsVHlwZSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgUmVmZXJlbmNlRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV4cHIpIHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSByZWFkVG9rZW4odHh0LCBleHByKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQudHlwZSA9IHJlYWxUeXBlO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsZXQgb3B0aW9ucyA9IHRhcmdldExleC5ibmY7XG4gICAgICAgICAgICBpZiAob3B0aW9ucyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5mb3JFYWNoKHBoYXNlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvdXQpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGxldCBwaW5uZWQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdG1wID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHlwZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnM6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFRleHQ6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN0OiB0eHRcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldExleC5mcmFnbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcC5mcmFnbWVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0bXBUeHQgPSB0eHQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGxldCBhbGxPcHRpb25hbCA9IHBoYXNlcy5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICAgICAgICBsZXQgZm91bmRTb21ldGhpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwaGFzZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcGhhc2VzW2ldID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2FsVGFyZ2V0ID0gcGFyc2VSdWxlTmFtZShwaGFzZXNbaV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbE9wdGlvbmFsID0gYWxsT3B0aW9uYWwgJiYgbG9jYWxUYXJnZXQuaXNPcHRpb25hbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZ290O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmb3VuZEF0TGVhc3RPbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRMZXguaW1wbGljaXRXcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290ID0gdGhpcy5wYXJzZSh0bXBUeHQsIGxvY2FsVGFyZ2V0Lm5hbWUsIHJlY3Vyc2lvbiArIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFnb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgV1M7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXUyA9IHRoaXMucGFyc2UodG1wVHh0LCBXU19SVUxFLCByZWN1cnNpb24gKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFdTKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAudGV4dCA9IHRtcC50ZXh0ICsgV1MudGV4dDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcC5lbmQgPSB0bXAudGV4dC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXUy5wYXJlbnQgPSB0bXA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAuY2hpbGRyZW4ucHVzaChXUyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXBUeHQgPSB0bXBUeHQuc3Vic3RyKFdTLnRleHQubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uICs9IFdTLnRleHQubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlIChXUyAmJiBXUy50ZXh0Lmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290ID0gZ290IHx8IHRoaXMucGFyc2UodG1wVHh0LCBsb2NhbFRhcmdldC5uYW1lLCByZWN1cnNpb24gKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcnVsZSA6Oj0gXCJ0cnVlXCIgIVthLXpBLVpdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lZ2F0aXZlIGxvb2t1cCwgaWYgaXQgZG9lcyBub3QgbWF0Y2gsIHdlIHNob3VsZCBjb250aW51ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxUYXJnZXQubG9va3VwTmVnYXRpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnb3QpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC8qIGNhbmNlbCB0aGlzIHBhdGggKi87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxUYXJnZXQubG9va3VwUG9zaXRpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ290KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdvdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2FsVGFyZ2V0LmlzT3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxUYXJnZXQuYXRMZWFzdE9uZSAmJiBmb3VuZEF0TGVhc3RPbmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdvdCAmJiB0YXJnZXRMZXgucGlubmVkID09IGkgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaW5uZWQgPSBnb3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGFibGUgJiYgY29uc29sZS5sb2cobmV3IEFycmF5KHJlY3Vyc2lvbiArIDEpLmpvaW4oJ+KUgiAgJykgKyAn4pSU4pSAICcgKyBnb3QudHlwZSArICcgUElOTkVEJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFnb3QpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3QgPSB0aGlzLnBhcnNlUmVjb3ZlcnkodGFyZ2V0TGV4LCB0bXBUeHQsIHJlY3Vyc2lvbiArIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdvdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCA9IHRtcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3QgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdTeW50YXhFcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IHRtcFR4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IHRtcFR4dC5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxUZXh0OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXBUeHQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBUb2tlbkVycm9yXzEuVG9rZW5FcnJvcihgVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQuIEV4cGVjdGluZyAke2xvY2FsVGFyZ2V0Lm5hbWV9IEdvdDogJHt0bXBUeHR9YCwgZ290KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBUb2tlbkVycm9yXzEuVG9rZW5FcnJvcihgVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQuIE1pc3NpbmcgJHtsb2NhbFRhcmdldC5uYW1lfWAsIGdvdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50YWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhuZXcgQXJyYXkocmVjdXJzaW9uICsgMSkuam9pbign4pSCICAnKSArICfilJTilIAgJyArIGdvdC50eXBlICsgJyAnICsgSlNPTi5zdHJpbmdpZnkoZ290LnRleHQpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZEF0TGVhc3RPbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZFNvbWV0aGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnb3QudHlwZSA9PSAnJSVFTVBUWSUlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290LnN0YXJ0ICs9IHBvc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3QuZW5kICs9IHBvc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWxvY2FsVGFyZ2V0Lmxvb2t1cFBvc2l0aXZlICYmIGdvdC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ290LmZyYWdtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290LmNoaWxkcmVuICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdC5jaGlsZHJlbi5mb3JFYWNoKHggPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeC5zdGFydCArPSBwb3NpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHguZW5kICs9IHBvc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeC5wYXJlbnQgPSB0bXA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAuY2hpbGRyZW4ucHVzaCh4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3QucGFyZW50ID0gdG1wO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcC5jaGlsZHJlbi5wdXNoKGdvdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2FsVGFyZ2V0Lmxvb2t1cClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdC5sb29rdXAgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG5ldyBBcnJheShyZWN1cnNpb24gKyAxKS5qb2luKCfilIIgICcpICsgJ+KUlOKUgCAnICsgZ290LnR5cGUgKyAnICcgKyBKU09OLnN0cmluZ2lmeShnb3QudGV4dCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFYXQgaXQgZnJvbSB0aGUgaW5wdXQgc3RyZWFtLCBvbmx5IGlmIGl0IGlzIG5vdCBhIGxvb2t1cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWxvY2FsVGFyZ2V0Lmxvb2t1cCAmJiAhZ290Lmxvb2t1cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wLnRleHQgPSB0bXAudGV4dCArIGdvdC50ZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wLmVuZCA9IHRtcC50ZXh0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcFR4dCA9IHRtcFR4dC5zdWJzdHIoZ290LnRleHQubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uICs9IGdvdC50ZXh0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAucmVzdCA9IHRtcFR4dDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlIChnb3QgJiYgbG9jYWxUYXJnZXQuYWxsb3dSZXBldGl0aW9uICYmIHRtcFR4dC5sZW5ndGggJiYgIWdvdC5sb29rdXApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSAvKiBJUyBBIFJFR0VYUCAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGdvdCA9IHJlYWRUb2tlbih0bXBUeHQsIHBoYXNlc1tpXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFnb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobmV3IEFycmF5KHJlY3Vyc2lvbiArIDEpLmpvaW4oJ+KUgiAgJykgKyAn4pSUPiAnICsgSlNPTi5zdHJpbmdpZnkoZ290LnRleHQpICsgcGhhc2VzW2ldLnNvdXJjZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRTb21ldGhpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdC5zdGFydCArPSBwb3NpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3QuZW5kICs9IHBvc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcC50ZXh0ID0gdG1wLnRleHQgKyBnb3QudGV4dDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAuZW5kID0gdG1wLnRleHQubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcFR4dCA9IHRtcFR4dC5zdWJzdHIoZ290LnRleHQubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiArPSBnb3QudGV4dC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wLnJlc3QgPSB0bXBUeHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kU29tZXRoaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQgPSB0bXA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmludGFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhuZXcgQXJyYXkocmVjdXJzaW9uKS5qb2luKCfilIIgICcpICsgJ+KUnDzilIDilLQ8IFBVU0hJTkcgJyArIG91dC50eXBlICsgJyAnICsgSlNPTi5zdHJpbmdpZnkob3V0LnRleHQpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG91dCAmJiB0YXJnZXRMZXguc2ltcGxpZnlXaGVuT25lQ2hpbGRyZW4gJiYgb3V0LmNoaWxkcmVuLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgICAgICAgb3V0ID0gb3V0LmNoaWxkcmVuWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghb3V0KSB7XG4gICAgICAgICAgICBwcmludGFibGUgJiYgY29uc29sZS5sb2codGFyZ2V0ICsgJyBOT1QgUkVTT0xWRUQgRlJPTSAnICsgdHh0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH1cbiAgICBwYXJzZVJlY292ZXJ5KHJlY292ZXJhYmxlVG9rZW4sIHRtcFR4dCwgcmVjdXJzaW9uKSB7XG4gICAgICAgIGlmIChyZWNvdmVyYWJsZVRva2VuLnJlY292ZXIgJiYgdG1wVHh0Lmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IHByaW50YWJsZSA9IHRoaXMuZGVidWc7XG4gICAgICAgICAgICBwcmludGFibGUgJiZcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhuZXcgQXJyYXkocmVjdXJzaW9uICsgMSkuam9pbign4pSCICAnKSArXG4gICAgICAgICAgICAgICAgICAgICdUcnlpbmcgdG8gcmVjb3ZlciB1bnRpbCB0b2tlbiAnICtcbiAgICAgICAgICAgICAgICAgICAgcmVjb3ZlcmFibGVUb2tlbi5yZWNvdmVyICtcbiAgICAgICAgICAgICAgICAgICAgJyBmcm9tICcgK1xuICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0bXBUeHQuc3BsaXQoJ1xcbicpWzBdICsgdG1wVHh0LnNwbGl0KCdcXG4nKVsxXSkpO1xuICAgICAgICAgICAgbGV0IHRtcCA9IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnU3ludGF4RXJyb3InLFxuICAgICAgICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgICBlbmQ6IDAsXG4gICAgICAgICAgICAgICAgZXJyb3JzOiBbXSxcbiAgICAgICAgICAgICAgICBmdWxsVGV4dDogJycsXG4gICAgICAgICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgICAgIHJlc3Q6ICcnXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbGV0IGdvdDtcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICBnb3QgPSB0aGlzLnBhcnNlKHRtcFR4dCwgcmVjb3ZlcmFibGVUb2tlbi5yZWNvdmVyLCByZWN1cnNpb24gKyAxKTtcbiAgICAgICAgICAgICAgICBpZiAoZ290KSB7XG4gICAgICAgICAgICAgICAgICAgIG5ldyBUb2tlbkVycm9yXzEuVG9rZW5FcnJvcignVW5leHBlY3RlZCBpbnB1dDogXCInICsgdG1wLnRleHQgKyBgXCIgRXhwZWN0aW5nOiAke3JlY292ZXJhYmxlVG9rZW4ubmFtZX1gLCB0bXApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRtcC50ZXh0ID0gdG1wLnRleHQgKyB0bXBUeHRbMF07XG4gICAgICAgICAgICAgICAgICAgIHRtcC5lbmQgPSB0bXAudGV4dC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIHRtcFR4dCA9IHRtcFR4dC5zdWJzdHIoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB3aGlsZSAoIWdvdCAmJiB0bXBUeHQubGVuZ3RoID4gMCk7XG4gICAgICAgICAgICBpZiAodG1wLnRleHQubGVuZ3RoID4gMCAmJiBnb3QpIHtcbiAgICAgICAgICAgICAgICBwcmludGFibGUgJiYgY29uc29sZS5sb2cobmV3IEFycmF5KHJlY3Vyc2lvbiArIDEpLmpvaW4oJ+KUgiAgJykgKyAnUmVjb3ZlcmVkIHRleHQ6ICcgKyBKU09OLnN0cmluZ2lmeSh0bXAudGV4dCkpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0bXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuZXhwb3J0cy5QYXJzZXIgPSBQYXJzZXI7XG5leHBvcnRzLmRlZmF1bHQgPSBQYXJzZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYXJzZXIuanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmZpbmRDaGlsZHJlbkJ5VHlwZSA9IHZvaWQgMDtcbi8qKlxuICogRmluZHMgYWxsIHRoZSBkaXJlY3QgY2hpbGRzIG9mIGEgc3BlY2lmeWVkIHR5cGVcbiAqL1xuZnVuY3Rpb24gZmluZENoaWxkcmVuQnlUeXBlKHRva2VuLCB0eXBlKSB7XG4gICAgcmV0dXJuIHRva2VuLmNoaWxkcmVuID8gdG9rZW4uY2hpbGRyZW4uZmlsdGVyKHggPT4geC50eXBlID09IHR5cGUpIDogW107XG59XG5leHBvcnRzLmZpbmRDaGlsZHJlbkJ5VHlwZSA9IGZpbmRDaGlsZHJlbkJ5VHlwZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNlbWFudGljSGVscGVycy5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbi8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0JhY2t1cyVFMiU4MCU5M05hdXJfRm9ybVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLypcbnN5bnRheCA6Oj0gUlVMRV9FT0wqIHJ1bGUrXG5ydWxlIDo6PSBcIiBcIiogXCI8XCIgcnVsZS1uYW1lIFwiPlwiIFwiIFwiKiBcIjo6PVwiIGZpcnN0RXhwcmVzc2lvbiBvdGhlckV4cHJlc3Npb24qIFwiIFwiKiBSVUxFX0VPTCsgXCIgXCIqXG5maXJzdEV4cHJlc3Npb24gOjo9IFwiIFwiKiBsaXN0XG5vdGhlckV4cHJlc3Npb24gOjo9IFwiIFwiKiBcInxcIiBcIiBcIiogbGlzdFxuUlVMRV9FT0wgOjo9IFwiXFxyXCIgfCBcIlxcblwiXG5saXN0IDo6PSB0ZXJtIFwiIFwiKiBsaXN0IHwgdGVybVxudGVybSA6Oj0gbGl0ZXJhbCB8IFwiPFwiIHJ1bGUtbmFtZSBcIj5cIlxubGl0ZXJhbCA6Oj0gJ1wiJyBSVUxFX0NIQVJBQ1RFUjEqICdcIicgfCBcIidcIiBSVUxFX0NIQVJBQ1RFUjIqIFwiJ1wiXG5SVUxFX0NIQVJBQ1RFUiA6Oj0gXCIgXCIgfCBSVUxFX0xFVFRFUiB8IFJVTEVfRElHSVQgfCBSVUxFX1NZTUJPTFxuUlVMRV9MRVRURVIgOjo9IFwiQVwiIHwgXCJCXCIgfCBcIkNcIiB8IFwiRFwiIHwgXCJFXCIgfCBcIkZcIiB8IFwiR1wiIHwgXCJIXCIgfCBcIklcIiB8IFwiSlwiIHwgXCJLXCIgfCBcIkxcIiB8IFwiTVwiIHwgXCJOXCIgfCBcIk9cIiB8IFwiUFwiIHwgXCJRXCIgfCBcIlJcIiB8IFwiU1wiIHwgXCJUXCIgfCBcIlVcIiB8IFwiVlwiIHwgXCJXXCIgfCBcIlhcIiB8IFwiWVwiIHwgXCJaXCIgfCBcImFcIiB8IFwiYlwiIHwgXCJjXCIgfCBcImRcIiB8IFwiZVwiIHwgXCJmXCIgfCBcImdcIiB8IFwiaFwiIHwgXCJpXCIgfCBcImpcIiB8IFwia1wiIHwgXCJsXCIgfCBcIm1cIiB8IFwiblwiIHwgXCJvXCIgfCBcInBcIiB8IFwicVwiIHwgXCJyXCIgfCBcInNcIiB8IFwidFwiIHwgXCJ1XCIgfCBcInZcIiB8IFwid1wiIHwgXCJ4XCIgfCBcInlcIiB8IFwielwiXG5SVUxFX0RJR0lUIDo6PSBcIjBcIiB8IFwiMVwiIHwgXCIyXCIgfCBcIjNcIiB8IFwiNFwiIHwgXCI1XCIgfCBcIjZcIiB8IFwiN1wiIHwgXCI4XCIgfCBcIjlcIlxuUlVMRV9TWU1CT0wgOjo9IFwiLVwiIHwgXCJfXCIgfCBcIiFcIiB8IFwiI1wiIHwgXCIkXCIgfCBcIiVcIiB8IFwiJlwiIHwgXCIoXCIgfCBcIilcIiB8IFwiKlwiIHwgXCIrXCIgfCBcIixcIiB8IFwiLVwiIHwgXCIuXCIgfCBcIi9cIiB8IFwiOlwiIHwgXCI7XCIgfCBcIjxcIiB8IFwiPVwiIHwgXCI+XCIgfCBcIj9cIiB8IFwiQFwiIHwgXCJbXCIgfCBcIlxcXCIgfCBcIl1cIiB8IFwiXlwiIHwgXCJfXCIgfCBcImBcIiB8IFwie1wiIHwgXCJ8XCIgfCBcIn1cIiB8IFwiflwiXG5SVUxFX0NIQVJBQ1RFUjEgOjo9IFJVTEVfQ0hBUkFDVEVSIHwgXCInXCJcblJVTEVfQ0hBUkFDVEVSMiA6Oj0gUlVMRV9DSEFSQUNURVIgfCAnXCInXG5ydWxlLW5hbWUgOjo9IFJVTEVfTEVUVEVSIFJVTEVfQ0hBUipcblJVTEVfQ0hBUiA6Oj0gUlVMRV9MRVRURVIgfCBSVUxFX0RJR0lUIHwgXCJfXCIgfCBcIi1cIlxuKi9cbmNvbnN0IFNlbWFudGljSGVscGVyc18xID0gcmVxdWlyZShcIi4uL1NlbWFudGljSGVscGVyc1wiKTtcbmNvbnN0IFBhcnNlcl8xID0gcmVxdWlyZShcIi4uL1BhcnNlclwiKTtcbnZhciBCTkY7XG4oZnVuY3Rpb24gKEJORikge1xuICAgIEJORi5SVUxFUyA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ3N5bnRheCcsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfRU9MKicsICdydWxlKyddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAncnVsZScsXG4gICAgICAgICAgICBibmY6IFtcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICdcIiBcIionLFxuICAgICAgICAgICAgICAgICAgICAnXCI8XCInLFxuICAgICAgICAgICAgICAgICAgICAncnVsZS1uYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgJ1wiPlwiJyxcbiAgICAgICAgICAgICAgICAgICAgJ1wiIFwiKicsXG4gICAgICAgICAgICAgICAgICAgICdcIjo6PVwiJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ZpcnN0RXhwcmVzc2lvbicsXG4gICAgICAgICAgICAgICAgICAgICdvdGhlckV4cHJlc3Npb24qJyxcbiAgICAgICAgICAgICAgICAgICAgJ1wiIFwiKicsXG4gICAgICAgICAgICAgICAgICAgICdSVUxFX0VPTCsnLFxuICAgICAgICAgICAgICAgICAgICAnXCIgXCIqJ1xuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2ZpcnN0RXhwcmVzc2lvbicsXG4gICAgICAgICAgICBibmY6IFtbJ1wiIFwiKicsICdsaXN0J11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdvdGhlckV4cHJlc3Npb24nLFxuICAgICAgICAgICAgYm5mOiBbWydcIiBcIionLCAnXCJ8XCInLCAnXCIgXCIqJywgJ2xpc3QnXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JVTEVfRU9MJyxcbiAgICAgICAgICAgIGJuZjogW1snXCJcXFxcclwiJ10sIFsnXCJcXFxcblwiJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdsaXN0JyxcbiAgICAgICAgICAgIGJuZjogW1sndGVybScsICdcIiBcIionLCAnbGlzdCddLCBbJ3Rlcm0nXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ3Rlcm0nLFxuICAgICAgICAgICAgYm5mOiBbWydsaXRlcmFsJ10sIFsnXCI8XCInLCAncnVsZS1uYW1lJywgJ1wiPlwiJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdsaXRlcmFsJyxcbiAgICAgICAgICAgIGJuZjogW1tgJ1wiJ2AsICdSVUxFX0NIQVJBQ1RFUjEqJywgYCdcIidgXSwgW2BcIidcImAsICdSVUxFX0NIQVJBQ1RFUjIqJywgYFwiJ1wiYF1dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdSVUxFX0NIQVJBQ1RFUicsXG4gICAgICAgICAgICBibmY6IFtbJ1wiIFwiJ10sIFsnUlVMRV9MRVRURVInXSwgWydSVUxFX0RJR0lUJ10sIFsnUlVMRV9TWU1CT0wnXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JVTEVfTEVUVEVSJyxcbiAgICAgICAgICAgIGJuZjogW1xuICAgICAgICAgICAgICAgIFsnXCJBXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiQlwiJ10sXG4gICAgICAgICAgICAgICAgWydcIkNcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJEXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiRVwiJ10sXG4gICAgICAgICAgICAgICAgWydcIkZcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJHXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiSFwiJ10sXG4gICAgICAgICAgICAgICAgWydcIklcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJKXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiS1wiJ10sXG4gICAgICAgICAgICAgICAgWydcIkxcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJNXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiTlwiJ10sXG4gICAgICAgICAgICAgICAgWydcIk9cIiddLFxuICAgICAgICAgICAgICAgIFsnXCJQXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiUVwiJ10sXG4gICAgICAgICAgICAgICAgWydcIlJcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJTXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiVFwiJ10sXG4gICAgICAgICAgICAgICAgWydcIlVcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJWXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiV1wiJ10sXG4gICAgICAgICAgICAgICAgWydcIlhcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJZXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiWlwiJ10sXG4gICAgICAgICAgICAgICAgWydcImFcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJiXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiY1wiJ10sXG4gICAgICAgICAgICAgICAgWydcImRcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJlXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiZlwiJ10sXG4gICAgICAgICAgICAgICAgWydcImdcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJoXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiaVwiJ10sXG4gICAgICAgICAgICAgICAgWydcImpcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJrXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wibFwiJ10sXG4gICAgICAgICAgICAgICAgWydcIm1cIiddLFxuICAgICAgICAgICAgICAgIFsnXCJuXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wib1wiJ10sXG4gICAgICAgICAgICAgICAgWydcInBcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJxXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiclwiJ10sXG4gICAgICAgICAgICAgICAgWydcInNcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJ0XCInXSxcbiAgICAgICAgICAgICAgICBbJ1widVwiJ10sXG4gICAgICAgICAgICAgICAgWydcInZcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJ3XCInXSxcbiAgICAgICAgICAgICAgICBbJ1wieFwiJ10sXG4gICAgICAgICAgICAgICAgWydcInlcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJ6XCInXVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUlVMRV9ESUdJVCcsXG4gICAgICAgICAgICBibmY6IFtbJ1wiMFwiJ10sIFsnXCIxXCInXSwgWydcIjJcIiddLCBbJ1wiM1wiJ10sIFsnXCI0XCInXSwgWydcIjVcIiddLCBbJ1wiNlwiJ10sIFsnXCI3XCInXSwgWydcIjhcIiddLCBbJ1wiOVwiJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdSVUxFX1NZTUJPTCcsXG4gICAgICAgICAgICBibmY6IFtcbiAgICAgICAgICAgICAgICBbJ1wiLVwiJ10sXG4gICAgICAgICAgICAgICAgWydcIl9cIiddLFxuICAgICAgICAgICAgICAgIFsnXCIhXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiI1wiJ10sXG4gICAgICAgICAgICAgICAgWydcIiRcIiddLFxuICAgICAgICAgICAgICAgIFsnXCIlXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiJlwiJ10sXG4gICAgICAgICAgICAgICAgWydcIihcIiddLFxuICAgICAgICAgICAgICAgIFsnXCIpXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiKlwiJ10sXG4gICAgICAgICAgICAgICAgWydcIitcIiddLFxuICAgICAgICAgICAgICAgIFsnXCIsXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiLVwiJ10sXG4gICAgICAgICAgICAgICAgWydcIi5cIiddLFxuICAgICAgICAgICAgICAgIFsnXCIvXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiOlwiJ10sXG4gICAgICAgICAgICAgICAgWydcIjtcIiddLFxuICAgICAgICAgICAgICAgIFsnXCI8XCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiPVwiJ10sXG4gICAgICAgICAgICAgICAgWydcIj5cIiddLFxuICAgICAgICAgICAgICAgIFsnXCI/XCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiQFwiJ10sXG4gICAgICAgICAgICAgICAgWydcIltcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJcXFxcXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiXVwiJ10sXG4gICAgICAgICAgICAgICAgWydcIl5cIiddLFxuICAgICAgICAgICAgICAgIFsnXCJfXCInXSxcbiAgICAgICAgICAgICAgICBbJ1wiYFwiJ10sXG4gICAgICAgICAgICAgICAgWydcIntcIiddLFxuICAgICAgICAgICAgICAgIFsnXCJ8XCInXSxcbiAgICAgICAgICAgICAgICBbJ1wifVwiJ10sXG4gICAgICAgICAgICAgICAgWydcIn5cIiddXG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdSVUxFX0NIQVJBQ1RFUjEnLFxuICAgICAgICAgICAgYm5mOiBbWydSVUxFX0NIQVJBQ1RFUiddLCBbYFwiJ1wiYF1dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdSVUxFX0NIQVJBQ1RFUjInLFxuICAgICAgICAgICAgYm5mOiBbWydSVUxFX0NIQVJBQ1RFUiddLCBbYCdcIidgXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ3J1bGUtbmFtZScsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfTEVUVEVSJywgJ1JVTEVfQ0hBUionXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JVTEVfQ0hBUicsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfTEVUVEVSJ10sIFsnUlVMRV9ESUdJVCddLCBbJ1wiX1wiJ10sIFsnXCItXCInXV1cbiAgICAgICAgfVxuICAgIF07XG4gICAgQk5GLmRlZmF1bHRQYXJzZXIgPSBuZXcgUGFyc2VyXzEuUGFyc2VyKEJORi5SVUxFUywgeyBkZWJ1ZzogZmFsc2UgfSk7XG4gICAgZnVuY3Rpb24gZ2V0QWxsVGVybXMoZXhwcikge1xuICAgICAgICBsZXQgdGVybXMgPSBTZW1hbnRpY0hlbHBlcnNfMS5maW5kQ2hpbGRyZW5CeVR5cGUoZXhwciwgJ3Rlcm0nKS5tYXAodGVybSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gU2VtYW50aWNIZWxwZXJzXzEuZmluZENoaWxkcmVuQnlUeXBlKHRlcm0sICdsaXRlcmFsJykuY29uY2F0KFNlbWFudGljSGVscGVyc18xLmZpbmRDaGlsZHJlbkJ5VHlwZSh0ZXJtLCAncnVsZS1uYW1lJykpWzBdLnRleHQ7XG4gICAgICAgIH0pO1xuICAgICAgICBTZW1hbnRpY0hlbHBlcnNfMS5maW5kQ2hpbGRyZW5CeVR5cGUoZXhwciwgJ2xpc3QnKS5mb3JFYWNoKGV4cHIgPT4ge1xuICAgICAgICAgICAgdGVybXMgPSB0ZXJtcy5jb25jYXQoZ2V0QWxsVGVybXMoZXhwcikpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRlcm1zO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRSdWxlcyhzb3VyY2UsIHBhcnNlciA9IEJORi5kZWZhdWx0UGFyc2VyKSB7XG4gICAgICAgIGxldCBhc3QgPSBwYXJzZXIuZ2V0QVNUKHNvdXJjZSk7XG4gICAgICAgIGlmICghYXN0KVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgcGFyc2UgJyArIHNvdXJjZSk7XG4gICAgICAgIGlmIChhc3QuZXJyb3JzICYmIGFzdC5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBhc3QuZXJyb3JzWzBdO1xuICAgICAgICB9XG4gICAgICAgIGxldCBydWxlcyA9IFNlbWFudGljSGVscGVyc18xLmZpbmRDaGlsZHJlbkJ5VHlwZShhc3QsICdydWxlJyk7XG4gICAgICAgIGxldCByZXQgPSBydWxlcy5tYXAoKHJ1bGUpID0+IHtcbiAgICAgICAgICAgIGxldCBuYW1lID0gU2VtYW50aWNIZWxwZXJzXzEuZmluZENoaWxkcmVuQnlUeXBlKHJ1bGUsICdydWxlLW5hbWUnKVswXS50ZXh0O1xuICAgICAgICAgICAgbGV0IGV4cHJlc3Npb25zID0gU2VtYW50aWNIZWxwZXJzXzEuZmluZENoaWxkcmVuQnlUeXBlKHJ1bGUsICdmaXJzdEV4cHJlc3Npb24nKS5jb25jYXQoU2VtYW50aWNIZWxwZXJzXzEuZmluZENoaWxkcmVuQnlUeXBlKHJ1bGUsICdvdGhlckV4cHJlc3Npb24nKSk7XG4gICAgICAgICAgICBsZXQgYm5mID0gW107XG4gICAgICAgICAgICBleHByZXNzaW9ucy5mb3JFYWNoKGV4cHIgPT4ge1xuICAgICAgICAgICAgICAgIGJuZi5wdXNoKGdldEFsbFRlcm1zKGV4cHIpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICAgIGJuZlxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghcmV0LnNvbWUoeCA9PiB4Lm5hbWUgPT0gJ0VPTCcpKSB7XG4gICAgICAgICAgICByZXQucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0VPTCcsXG4gICAgICAgICAgICAgICAgYm5mOiBbWydcIlxcXFxyXFxcXG5cIicsICdcIlxcXFxyXCInLCAnXCJcXFxcblwiJ11dXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0O1xuICAgIH1cbiAgICBCTkYuZ2V0UnVsZXMgPSBnZXRSdWxlcztcbiAgICBmdW5jdGlvbiBUcmFuc2Zvcm0oc291cmNlLCBzdWJQYXJzZXIgPSBCTkYuZGVmYXVsdFBhcnNlcikge1xuICAgICAgICByZXR1cm4gZ2V0UnVsZXMoc291cmNlLmpvaW4oJycpLCBzdWJQYXJzZXIpO1xuICAgIH1cbiAgICBCTkYuVHJhbnNmb3JtID0gVHJhbnNmb3JtO1xuICAgIGNsYXNzIFBhcnNlciBleHRlbmRzIFBhcnNlcl8xLlBhcnNlciB7XG4gICAgICAgIGNvbnN0cnVjdG9yKHNvdXJjZSwgb3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3Qgc3ViUGFyc2VyID0gb3B0aW9ucyAmJiBvcHRpb25zLmRlYnVnUnVsZXNQYXJzZXIgPT09IHRydWUgPyBuZXcgUGFyc2VyXzEuUGFyc2VyKEJORi5SVUxFUywgeyBkZWJ1ZzogdHJ1ZSB9KSA6IEJORi5kZWZhdWx0UGFyc2VyO1xuICAgICAgICAgICAgc3VwZXIoZ2V0UnVsZXMoc291cmNlLCBzdWJQYXJzZXIpLCBvcHRpb25zKTtcbiAgICAgICAgICAgIHRoaXMuc291cmNlID0gc291cmNlO1xuICAgICAgICB9XG4gICAgICAgIGVtaXRTb3VyY2UoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQk5GLlBhcnNlciA9IFBhcnNlcjtcbn0pKEJORiB8fCAoQk5GID0ge30pKTtcbmV4cG9ydHMuZGVmYXVsdCA9IEJORjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJORi5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbi8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sLyNOVC1OYW1lXG4vLyBodHRwOi8vd3d3LmJvdHRsZWNhcHMuZGUvcnIvdWlcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8vIEdyYW1tYXJcdDo6PVx0UHJvZHVjdGlvbipcbi8vIFByb2R1Y3Rpb25cdDo6PVx0TkNOYW1lICc6Oj0nIENob2ljZVxuLy8gTkNOYW1lXHQ6Oj1cdFtodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtbmFtZXMvI05ULU5DTmFtZV1cbi8vIENob2ljZVx0Ojo9XHRTZXF1ZW5jZU9yRGlmZmVyZW5jZSAoICd8JyBTZXF1ZW5jZU9yRGlmZmVyZW5jZSApKlxuLy8gU2VxdWVuY2VPckRpZmZlcmVuY2VcdDo6PVx0KEl0ZW0gKCAnLScgSXRlbSB8IEl0ZW0qICkpP1xuLy8gSXRlbVx0Ojo9XHRQcmltYXJ5ICggJz8nIHwgJyonIHwgJysnICk/XG4vLyBQcmltYXJ5XHQ6Oj1cdE5DTmFtZSB8IFN0cmluZ0xpdGVyYWwgfCBDaGFyQ29kZSB8IENoYXJDbGFzcyB8ICcoJyBDaG9pY2UgJyknXG4vLyBTdHJpbmdMaXRlcmFsXHQ6Oj1cdCdcIicgW15cIl0qICdcIicgfCBcIidcIiBbXiddKiBcIidcIlxuLy8gQ2hhckNvZGVcdDo6PVx0JyN4JyBbMC05YS1mQS1GXStcbi8vIENoYXJDbGFzc1x0Ojo9XHQnWycgJ14nPyAoIFJVTEVfQ2hhciB8IENoYXJDb2RlIHwgQ2hhclJhbmdlIHwgQ2hhckNvZGVSYW5nZSApKyAnXSdcbi8vIFJVTEVfQ2hhclx0Ojo9XHRbaHR0cDovL3d3dy53My5vcmcvVFIveG1sI05ULVJVTEVfQ2hhcl1cbi8vIENoYXJSYW5nZVx0Ojo9XHRSVUxFX0NoYXIgJy0nICggUlVMRV9DaGFyIC0gJ10nIClcbi8vIENoYXJDb2RlUmFuZ2VcdDo6PVx0Q2hhckNvZGUgJy0nIENoYXJDb2RlXG4vLyBSVUxFX1dISVRFU1BBQ0VcdDo6PVx0UlVMRV9TIHwgQ29tbWVudFxuLy8gUlVMRV9TXHQ6Oj1cdCN4OSB8ICN4QSB8ICN4RCB8ICN4MjBcbi8vIENvbW1lbnRcdDo6PVx0Jy8qJyAoIFteKl0gfCAnKicrIFteKi9dICkqICcqJyogJyovJ1xuY29uc3QgUGFyc2VyXzEgPSByZXF1aXJlKFwiLi4vUGFyc2VyXCIpO1xudmFyIEJORjtcbihmdW5jdGlvbiAoQk5GKSB7XG4gICAgQk5GLlJVTEVTID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnR3JhbW1hcicsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfUyonLCAnJUF0b21pYyonLCAnRU9GJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclQXRvbWljJyxcbiAgICAgICAgICAgIGJuZjogW1snUHJvZHVjdGlvbicsICdSVUxFX1MqJ11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1Byb2R1Y3Rpb24nLFxuICAgICAgICAgICAgYm5mOiBbWydOQ05hbWUnLCAnUlVMRV9TKicsICdcIjo6PVwiJywgJ1JVTEVfV0hJVEVTUEFDRSonLCAnQ2hvaWNlJywgJ1JVTEVfV0hJVEVTUEFDRSonLCAnUlVMRV9FT0wrJywgJ1JVTEVfUyonXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ05DTmFtZScsXG4gICAgICAgICAgICBibmY6IFtbL1thLXpBLVpdW2EtekEtWl8wLTldKi9dXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnQ2hvaWNlJyxcbiAgICAgICAgICAgIGJuZjogW1snU2VxdWVuY2VPckRpZmZlcmVuY2UnLCAnJV9DaG9pY2VfMSonXV0sXG4gICAgICAgICAgICBmcmFnbWVudDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnJV9DaG9pY2VfMScsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfV0hJVEVTUEFDRSonLCAnXCJ8XCInLCAnUlVMRV9XSElURVNQQUNFKicsICdTZXF1ZW5jZU9yRGlmZmVyZW5jZSddXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdTZXF1ZW5jZU9yRGlmZmVyZW5jZScsXG4gICAgICAgICAgICBibmY6IFtbJ0l0ZW0nLCAnUlVMRV9XSElURVNQQUNFKicsICclX0l0ZW1fMT8nXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJyVfSXRlbV8xJyxcbiAgICAgICAgICAgIGJuZjogW1snTWludXMnLCAnSXRlbSddLCBbJ0l0ZW0qJ11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ01pbnVzJyxcbiAgICAgICAgICAgIGJuZjogW1snXCItXCInXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0l0ZW0nLFxuICAgICAgICAgICAgYm5mOiBbWydSVUxFX1dISVRFU1BBQ0UqJywgJyVQcmltYXJ5JywgJ1ByaW1hcnlEZWNvcmF0aW9uPyddXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdQcmltYXJ5RGVjb3JhdGlvbicsXG4gICAgICAgICAgICBibmY6IFtbJ1wiP1wiJ10sIFsnXCIqXCInXSwgWydcIitcIiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnRGVjb3JhdGlvbk5hbWUnLFxuICAgICAgICAgICAgYm5mOiBbWydcImVibmY6Ly9cIicsIC9bXlxceDVEI10rL11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclUHJpbWFyeScsXG4gICAgICAgICAgICBibmY6IFtbJ05DTmFtZSddLCBbJ1N0cmluZ0xpdGVyYWwnXSwgWydDaGFyQ29kZSddLCBbJ0NoYXJDbGFzcyddLCBbJ1N1Ykl0ZW0nXV0sXG4gICAgICAgICAgICBmcmFnbWVudDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnU3ViSXRlbScsXG4gICAgICAgICAgICBibmY6IFtbJ1wiKFwiJywgJ1JVTEVfV0hJVEVTUEFDRSonLCAnQ2hvaWNlJywgJ1JVTEVfV0hJVEVTUEFDRSonLCAnXCIpXCInXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1N0cmluZ0xpdGVyYWwnLFxuICAgICAgICAgICAgYm5mOiBbW2AnXCInYCwgL1teXCJdKi8sIGAnXCInYF0sIFtgXCInXCJgLCAvW14nXSovLCBgXCInXCJgXV0sXG4gICAgICAgICAgICBwaW5uZWQ6IDFcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0NoYXJDb2RlJyxcbiAgICAgICAgICAgIGJuZjogW1snXCIjeFwiJywgL1swLTlhLXpBLVpdKy9dXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnQ2hhckNsYXNzJyxcbiAgICAgICAgICAgIGJuZjogW1tcIidbJ1wiLCBcIideJz9cIiwgJyVSVUxFX0NoYXJDbGFzc18xKycsICdcIl1cIiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnJVJVTEVfQ2hhckNsYXNzXzEnLFxuICAgICAgICAgICAgYm5mOiBbWydDaGFyQ29kZVJhbmdlJ10sIFsnQ2hhclJhbmdlJ10sIFsnQ2hhckNvZGUnXSwgWydSVUxFX0NoYXInXV0sXG4gICAgICAgICAgICBmcmFnbWVudDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUlVMRV9DaGFyJyxcbiAgICAgICAgICAgIGJuZjogW1svXFx4MDkvXSwgWy9cXHgwQS9dLCBbL1xceDBEL10sIFsvW1xceDIwLVxceDVjXS9dLCBbL1tcXHg1ZS1cXHVEN0ZGXS9dLCBbL1tcXHVFMDAwLVxcdUZGRkRdL11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdDaGFyUmFuZ2UnLFxuICAgICAgICAgICAgYm5mOiBbWydSVUxFX0NoYXInLCAnXCItXCInLCAnUlVMRV9DaGFyJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdDaGFyQ29kZVJhbmdlJyxcbiAgICAgICAgICAgIGJuZjogW1snQ2hhckNvZGUnLCAnXCItXCInLCAnQ2hhckNvZGUnXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JVTEVfV0hJVEVTUEFDRScsXG4gICAgICAgICAgICBibmY6IFtbJyVSVUxFX1dISVRFU1BBQ0VfQ0hBUionXSwgWydDb21tZW50JywgJ1JVTEVfV0hJVEVTUEFDRSonXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JVTEVfUycsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfV0hJVEVTUEFDRScsICdSVUxFX1MqJ10sIFsnUlVMRV9FT0wnLCAnUlVMRV9TKiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnJVJVTEVfV0hJVEVTUEFDRV9DSEFSJyxcbiAgICAgICAgICAgIGJuZjogW1svXFx4MDkvXSwgWy9cXHgyMC9dXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdDb21tZW50JyxcbiAgICAgICAgICAgIGJuZjogW1snXCIvKlwiJywgJyVSVUxFX0NvbW1lbnRfQm9keSonLCAnXCIqL1wiJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclUlVMRV9Db21tZW50X0JvZHknLFxuICAgICAgICAgICAgYm5mOiBbWychXCIqL1wiJywgL1teKl0vXV0sXG4gICAgICAgICAgICBmcmFnbWVudDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUlVMRV9FT0wnLFxuICAgICAgICAgICAgYm5mOiBbWy9cXHgwRC8sIC9cXHgwQS9dLCBbL1xceDBBL10sIFsvXFx4MEQvXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0xpbmsnLFxuICAgICAgICAgICAgYm5mOiBbW1wiJ1snXCIsICdVcmwnLCBcIiddJ1wiXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1VybCcsXG4gICAgICAgICAgICBibmY6IFtbL1teXFx4NUQ6Lz8jXS8sICdcIjovL1wiJywgL1teXFx4NUQjXSsvLCAnJVVybDE/J11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclVXJsMScsXG4gICAgICAgICAgICBibmY6IFtbJ1wiI1wiJywgJ05DTmFtZSddXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH1cbiAgICBdO1xuICAgIEJORi5kZWZhdWx0UGFyc2VyID0gbmV3IFBhcnNlcl8xLlBhcnNlcihCTkYuUlVMRVMsIHsgZGVidWc6IGZhbHNlIH0pO1xuICAgIGNvbnN0IHByZURlY29yYXRpb25SRSA9IC9eKCF8JikvO1xuICAgIGNvbnN0IGRlY29yYXRpb25SRSA9IC8oXFw/fFxcK3xcXCopJC87XG4gICAgY29uc3Qgc3ViRXhwcmVzc2lvblJFID0gL14lLztcbiAgICBmdW5jdGlvbiBnZXRCTkZSdWxlKG5hbWUsIHBhcnNlcikge1xuICAgICAgICBpZiAodHlwZW9mIG5hbWUgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmIChwcmVEZWNvcmF0aW9uUkUudGVzdChuYW1lKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICBsZXQgc3ViZXhwcmVzc2lvbiA9IHN1YkV4cHJlc3Npb25SRS50ZXN0KG5hbWUpO1xuICAgICAgICAgICAgaWYgKHN1YmV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgICAgICBsZXQgZGVjb3JhdGlvbiA9IGRlY29yYXRpb25SRS5leGVjKG5hbWUpO1xuICAgICAgICAgICAgICAgIGxldCBkZWNvcmF0aW9uVGV4dCA9IGRlY29yYXRpb24gPyBkZWNvcmF0aW9uWzBdICsgJyAnIDogJyc7XG4gICAgICAgICAgICAgICAgbGV0IGxvbmVseSA9IGlzTG9uZWx5UnVsZShuYW1lLCBwYXJzZXIpO1xuICAgICAgICAgICAgICAgIGlmIChsb25lbHkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRCTkZCb2R5KG5hbWUsIHBhcnNlcikgKyBkZWNvcmF0aW9uVGV4dDtcbiAgICAgICAgICAgICAgICByZXR1cm4gJygnICsgZ2V0Qk5GQm9keShuYW1lLCBwYXJzZXIpICsgJyknICsgZGVjb3JhdGlvblRleHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuYW1lLnNvdXJjZVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFxcKD86eHx1KShbYS16QS1aMC05XSspL2csICcjeCQxJylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxbXFxcXCg/Onh8dSkoW2EtekEtWjAtOV0rKS1cXFxcKD86eHx1KShbYS16QS1aMC05XSspXFxdL2csICdbI3gkMS0jeCQyXScpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vLyBSZXR1cm5zIHRydWUgaWYgdGhlIHJ1bGUgaXMgYSBzdHJpbmcgbGl0ZXJhbCBvciByZWd1bGFyIGV4cHJlc3Npb24gd2l0aG91dCBhIGRlc2NlbmRhbnQgdHJlZVxuICAgIGZ1bmN0aW9uIGlzTG9uZWx5UnVsZShuYW1lLCBwYXJzZXIpIHtcbiAgICAgICAgbGV0IHJ1bGUgPSBQYXJzZXJfMS5maW5kUnVsZUJ5TmFtZShuYW1lLCBwYXJzZXIpO1xuICAgICAgICByZXR1cm4gKHJ1bGUgJiZcbiAgICAgICAgICAgIHJ1bGUuYm5mLmxlbmd0aCA9PSAxICYmXG4gICAgICAgICAgICBydWxlLmJuZlswXS5sZW5ndGggPT0gMSAmJlxuICAgICAgICAgICAgKHJ1bGUuYm5mWzBdWzBdIGluc3RhbmNlb2YgUmVnRXhwIHx8IHJ1bGUuYm5mWzBdWzBdWzBdID09ICdcIicgfHwgcnVsZS5ibmZbMF1bMF1bMF0gPT0gXCInXCIpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Qk5GQ2hvaWNlKHJ1bGVzLCBwYXJzZXIpIHtcbiAgICAgICAgcmV0dXJuIHJ1bGVzLm1hcCh4ID0+IGdldEJORlJ1bGUoeCwgcGFyc2VyKSkuam9pbignICcpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRCTkZCb2R5KG5hbWUsIHBhcnNlcikge1xuICAgICAgICBsZXQgcnVsZSA9IFBhcnNlcl8xLmZpbmRSdWxlQnlOYW1lKG5hbWUsIHBhcnNlcik7XG4gICAgICAgIGlmIChydWxlKVxuICAgICAgICAgICAgcmV0dXJuIHJ1bGUuYm5mLm1hcCh4ID0+IGdldEJORkNob2ljZSh4LCBwYXJzZXIpKS5qb2luKCcgfCAnKTtcbiAgICAgICAgcmV0dXJuICdSVUxFX05PVF9GT1VORCB7JyArIG5hbWUgKyAnfSc7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVtaXQocGFyc2VyKSB7XG4gICAgICAgIGxldCBhY3VtdWxhdG9yID0gW107XG4gICAgICAgIHBhcnNlci5ncmFtbWFyUnVsZXMuZm9yRWFjaChsID0+IHtcbiAgICAgICAgICAgIGlmICghL14lLy50ZXN0KGwubmFtZSkpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVjb3ZlciA9IGwucmVjb3ZlciA/ICcgLyogeyByZWNvdmVyVW50aWw9JyArIGwucmVjb3ZlciArICcgfSAqLycgOiAnJztcbiAgICAgICAgICAgICAgICBhY3VtdWxhdG9yLnB1c2gobC5uYW1lICsgJyA6Oj0gJyArIGdldEJORkJvZHkobC5uYW1lLCBwYXJzZXIpICsgcmVjb3Zlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYWN1bXVsYXRvci5qb2luKCdcXG4nKTtcbiAgICB9XG4gICAgQk5GLmVtaXQgPSBlbWl0O1xuICAgIGxldCBzdWJpdGVtcyA9IDA7XG4gICAgZnVuY3Rpb24gcmVzdGFyKHRvdGFsLCByZXN0YSkge1xuICAgICAgICBjb25zb2xlLmxvZygncmViZXJpYSByZXN0YXIgJyArIHJlc3RhICsgJyBhICcgKyB0b3RhbCk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRGlmZmVyZW5jZSBub3Qgc3VwcG9ydGVkIHlldCcpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb252ZXJ0UmVnZXgodHh0KSB7XG4gICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHR4dFxuICAgICAgICAgICAgLnJlcGxhY2UoLyN4KFthLXpBLVowLTldezR9KS9nLCAnXFxcXHUkMScpXG4gICAgICAgICAgICAucmVwbGFjZSgvI3goW2EtekEtWjAtOV17M30pL2csICdcXFxcdTAkMScpXG4gICAgICAgICAgICAucmVwbGFjZSgvI3goW2EtekEtWjAtOV17Mn0pL2csICdcXFxceCQxJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8jeChbYS16QS1aMC05XXsxfSkvZywgJ1xcXFx4MCQxJykpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRTdWJJdGVtcyh0bXBSdWxlcywgc2VxLCBwYXJlbnROYW1lKSB7XG4gICAgICAgIGxldCBhbnRlcmlvciA9IG51bGw7XG4gICAgICAgIGxldCBibmZTZXEgPSBbXTtcbiAgICAgICAgc2VxLmNoaWxkcmVuLmZvckVhY2goKHgsIGkpID0+IHtcbiAgICAgICAgICAgIGlmICh4LnR5cGUgPT0gJ01pbnVzJykge1xuICAgICAgICAgICAgICAgIHJlc3RhcihhbnRlcmlvciwgeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkZWNvcmF0aW9uID0gc2VxLmNoaWxkcmVuW2kgKyAxXTtcbiAgICAgICAgICAgIGRlY29yYXRpb24gPSAoZGVjb3JhdGlvbiAmJiBkZWNvcmF0aW9uLnR5cGUgPT0gJ1ByaW1hcnlEZWNvcmF0aW9uJyAmJiBkZWNvcmF0aW9uLnRleHQpIHx8ICcnO1xuICAgICAgICAgICAgbGV0IHByZURlY29yYXRpb24gPSAnJztcbiAgICAgICAgICAgIHN3aXRjaCAoeC50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnU3ViSXRlbSc6XG4gICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0gJyUnICsgKHBhcmVudE5hbWUgKyBzdWJpdGVtcysrKTtcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlUnVsZSh0bXBSdWxlcywgeCwgbmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGJuZlNlcS5wdXNoKHByZURlY29yYXRpb24gKyBuYW1lICsgZGVjb3JhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ05DTmFtZSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnU3RyaW5nTGl0ZXJhbCc6XG4gICAgICAgICAgICAgICAgICAgIGJuZlNlcS5wdXNoKHByZURlY29yYXRpb24gKyB4LnRleHQgKyBkZWNvcmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnQ2hhckNvZGUnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0NoYXJDbGFzcyc6XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZWNvcmF0aW9uIHx8IHByZURlY29yYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdSdWxlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICclJyArIChwYXJlbnROYW1lICsgc3ViaXRlbXMrKyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm5mOiBbW2NvbnZlcnRSZWdleCh4LnRleHQpXV1cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0bXBSdWxlcy5wdXNoKG5ld1J1bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm5mU2VxLnB1c2gocHJlRGVjb3JhdGlvbiArIG5ld1J1bGUubmFtZSArIGRlY29yYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm5mU2VxLnB1c2goY29udmVydFJlZ2V4KHgudGV4dCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ1ByaW1hcnlEZWNvcmF0aW9uJzpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCcgSE9XIFNIT1VMRCBJIFBBUlNFIFRISVM/ICcgKyB4LnR5cGUgKyAnIC0+ICcgKyBKU09OLnN0cmluZ2lmeSh4LnRleHQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFudGVyaW9yID0geDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBibmZTZXE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVJ1bGUodG1wUnVsZXMsIHRva2VuLCBuYW1lKSB7XG4gICAgICAgIGxldCBibmYgPSB0b2tlbi5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4LnR5cGUgPT0gJ1NlcXVlbmNlT3JEaWZmZXJlbmNlJykubWFwKHMgPT4gZ2V0U3ViSXRlbXModG1wUnVsZXMsIHMsIG5hbWUpKTtcbiAgICAgICAgbGV0IHJ1bGUgPSB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgYm5mXG4gICAgICAgIH07XG4gICAgICAgIGxldCByZWNvdmVyID0gbnVsbDtcbiAgICAgICAgYm5mLmZvckVhY2goeCA9PiB7XG4gICAgICAgICAgICByZWNvdmVyID0gcmVjb3ZlciB8fCB4WydyZWNvdmVyJ107XG4gICAgICAgICAgICBkZWxldGUgeFsncmVjb3ZlciddO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKG5hbWUuaW5kZXhPZignJScpID09IDApXG4gICAgICAgICAgICBydWxlLmZyYWdtZW50ID0gdHJ1ZTtcbiAgICAgICAgaWYgKHJlY292ZXIpXG4gICAgICAgICAgICBydWxlLnJlY292ZXIgPSByZWNvdmVyO1xuICAgICAgICB0bXBSdWxlcy5wdXNoKHJ1bGUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRSdWxlcyhzb3VyY2UsIHBhcnNlciA9IEJORi5kZWZhdWx0UGFyc2VyKSB7XG4gICAgICAgIGxldCBhc3QgPSBwYXJzZXIuZ2V0QVNUKHNvdXJjZSk7XG4gICAgICAgIGlmICghYXN0KVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgcGFyc2UgJyArIHNvdXJjZSk7XG4gICAgICAgIGlmIChhc3QuZXJyb3JzICYmIGFzdC5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBhc3QuZXJyb3JzWzBdO1xuICAgICAgICB9XG4gICAgICAgIGxldCB0bXBSdWxlcyA9IFtdO1xuICAgICAgICBhc3QuY2hpbGRyZW4uZmlsdGVyKHggPT4geC50eXBlID09ICdQcm9kdWN0aW9uJykubWFwKCh4KSA9PiB7XG4gICAgICAgICAgICBsZXQgbmFtZSA9IHguY2hpbGRyZW4uZmlsdGVyKHggPT4geC50eXBlID09ICdOQ05hbWUnKVswXS50ZXh0O1xuICAgICAgICAgICAgY3JlYXRlUnVsZSh0bXBSdWxlcywgeCwgbmFtZSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdG1wUnVsZXM7XG4gICAgfVxuICAgIEJORi5nZXRSdWxlcyA9IGdldFJ1bGVzO1xuICAgIGZ1bmN0aW9uIFRyYW5zZm9ybShzb3VyY2UsIHN1YlBhcnNlciA9IEJORi5kZWZhdWx0UGFyc2VyKSB7XG4gICAgICAgIHJldHVybiBnZXRSdWxlcyhzb3VyY2Uuam9pbignJyksIHN1YlBhcnNlcik7XG4gICAgfVxuICAgIEJORi5UcmFuc2Zvcm0gPSBUcmFuc2Zvcm07XG4gICAgY2xhc3MgUGFyc2VyIGV4dGVuZHMgUGFyc2VyXzEuUGFyc2VyIHtcbiAgICAgICAgY29uc3RydWN0b3Ioc291cmNlLCBvcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBzdWJQYXJzZXIgPSBvcHRpb25zICYmIG9wdGlvbnMuZGVidWdSdWxlc1BhcnNlciA9PT0gdHJ1ZSA/IG5ldyBQYXJzZXJfMS5QYXJzZXIoQk5GLlJVTEVTLCB7IGRlYnVnOiB0cnVlIH0pIDogQk5GLmRlZmF1bHRQYXJzZXI7XG4gICAgICAgICAgICBzdXBlcihnZXRSdWxlcyhzb3VyY2UsIHN1YlBhcnNlciksIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGVtaXRTb3VyY2UoKSB7XG4gICAgICAgICAgICByZXR1cm4gZW1pdCh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBCTkYuUGFyc2VyID0gUGFyc2VyO1xufSkoQk5GIHx8IChCTkYgPSB7fSkpO1xuZXhwb3J0cy5kZWZhdWx0ID0gQk5GO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VzNDRUJORi5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbi8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sLyNOVC1OYW1lXG4vLyBodHRwOi8vd3d3LmJvdHRsZWNhcHMuZGUvcnIvdWlcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8vIEdyYW1tYXJcdDo6PVx0UHJvZHVjdGlvbipcbi8vIFByb2R1Y3Rpb25cdDo6PVx0TkNOYW1lICc6Oj0nIENob2ljZVxuLy8gTkNOYW1lXHQ6Oj1cdFtodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtbmFtZXMvI05ULU5DTmFtZV1cbi8vIENob2ljZVx0Ojo9XHRTZXF1ZW5jZU9yRGlmZmVyZW5jZSAoICd8JyBTZXF1ZW5jZU9yRGlmZmVyZW5jZSApKlxuLy8gU2VxdWVuY2VPckRpZmZlcmVuY2VcdDo6PVx0KEl0ZW0gKCAnLScgSXRlbSB8IEl0ZW0qICkpP1xuLy8gSXRlbVx0Ojo9XHRQcmltYXJ5ICggJz8nIHwgJyonIHwgJysnICk/XG4vLyBQcmltYXJ5XHQ6Oj1cdE5DTmFtZSB8IFN0cmluZ0xpdGVyYWwgfCBDaGFyQ29kZSB8IENoYXJDbGFzcyB8ICcoJyBDaG9pY2UgJyknXG4vLyBTdHJpbmdMaXRlcmFsXHQ6Oj1cdCdcIicgW15cIl0qICdcIicgfCBcIidcIiBbXiddKiBcIidcIlxuLy8gQ2hhckNvZGVcdDo6PVx0JyN4JyBbMC05YS1mQS1GXStcbi8vIENoYXJDbGFzc1x0Ojo9XHQnWycgJ14nPyAoIFJVTEVfQ2hhciB8IENoYXJDb2RlIHwgQ2hhclJhbmdlIHwgQ2hhckNvZGVSYW5nZSApKyAnXSdcbi8vIFJVTEVfQ2hhclx0Ojo9XHRbaHR0cDovL3d3dy53My5vcmcvVFIveG1sI05ULVJVTEVfQ2hhcl1cbi8vIENoYXJSYW5nZVx0Ojo9XHRSVUxFX0NoYXIgJy0nICggUlVMRV9DaGFyIC0gJ10nIClcbi8vIENoYXJDb2RlUmFuZ2VcdDo6PVx0Q2hhckNvZGUgJy0nIENoYXJDb2RlXG4vLyBSVUxFX1dISVRFU1BBQ0VcdDo6PVx0UlVMRV9TIHwgQ29tbWVudFxuLy8gUlVMRV9TXHQ6Oj1cdCN4OSB8ICN4QSB8ICN4RCB8ICN4MjBcbi8vIENvbW1lbnRcdDo6PVx0Jy8qJyAoIFteKl0gfCAnKicrIFteKi9dICkqICcqJyogJyovJ1xuY29uc3QgVG9rZW5FcnJvcl8xID0gcmVxdWlyZShcIi4uL1Rva2VuRXJyb3JcIik7XG5jb25zdCBQYXJzZXJfMSA9IHJlcXVpcmUoXCIuLi9QYXJzZXJcIik7XG52YXIgQk5GO1xuKGZ1bmN0aW9uIChCTkYpIHtcbiAgICBCTkYuUlVMRVMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdHcmFtbWFyJyxcbiAgICAgICAgICAgIGJuZjogW1snUlVMRV9TKicsICdBdHRyaWJ1dGVzPycsICdSVUxFX1MqJywgJyVBdG9taWMqJywgJ0VPRiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnJUF0b21pYycsXG4gICAgICAgICAgICBibmY6IFtbJ1Byb2R1Y3Rpb24nLCAnUlVMRV9TKiddXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdQcm9kdWN0aW9uJyxcbiAgICAgICAgICAgIGJuZjogW1xuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgJ05DTmFtZScsXG4gICAgICAgICAgICAgICAgICAgICdSVUxFX1MqJyxcbiAgICAgICAgICAgICAgICAgICAgJ1wiOjo9XCInLFxuICAgICAgICAgICAgICAgICAgICAnUlVMRV9XSElURVNQQUNFKicsXG4gICAgICAgICAgICAgICAgICAgICclQ2hvaWNlJyxcbiAgICAgICAgICAgICAgICAgICAgJ1JVTEVfV0hJVEVTUEFDRSonLFxuICAgICAgICAgICAgICAgICAgICAnQXR0cmlidXRlcz8nLFxuICAgICAgICAgICAgICAgICAgICAnUlVMRV9FT0wrJyxcbiAgICAgICAgICAgICAgICAgICAgJ1JVTEVfUyonXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnTkNOYW1lJyxcbiAgICAgICAgICAgIGJuZjogW1svW2EtekEtWl1bYS16QS1aXzAtOV0qL11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdBdHRyaWJ1dGVzJyxcbiAgICAgICAgICAgIGJuZjogW1snXCJ7XCInLCAnQXR0cmlidXRlJywgJyVBdHRyaWJ1dGVzKicsICdSVUxFX1MqJywgJ1wifVwiJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclQXR0cmlidXRlcycsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfUyonLCAnXCIsXCInLCAnQXR0cmlidXRlJ11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0F0dHJpYnV0ZScsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfUyonLCAnTkNOYW1lJywgJ1JVTEVfV0hJVEVTUEFDRSonLCAnXCI9XCInLCAnUlVMRV9XSElURVNQQUNFKicsICdBdHRyaWJ1dGVWYWx1ZSddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnQXR0cmlidXRlVmFsdWUnLFxuICAgICAgICAgICAgYm5mOiBbWydOQ05hbWUnXSwgWy9bMS05XVswLTldKi9dXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnJUNob2ljZScsXG4gICAgICAgICAgICBibmY6IFtbJ1NlcXVlbmNlT3JEaWZmZXJlbmNlJywgJyVfQ2hvaWNlXzEqJ11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJyVfQ2hvaWNlXzEnLFxuICAgICAgICAgICAgYm5mOiBbWydSVUxFX1MqJywgJ1wifFwiJywgJ1JVTEVfUyonLCAnU2VxdWVuY2VPckRpZmZlcmVuY2UnXV0sXG4gICAgICAgICAgICBmcmFnbWVudDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnU2VxdWVuY2VPckRpZmZlcmVuY2UnLFxuICAgICAgICAgICAgYm5mOiBbWyclSXRlbScsICdSVUxFX1dISVRFU1BBQ0UqJywgJyVfSXRlbV8xPyddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnJV9JdGVtXzEnLFxuICAgICAgICAgICAgYm5mOiBbWydNaW51cycsICclSXRlbSddLCBbJyVJdGVtKiddXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdNaW51cycsXG4gICAgICAgICAgICBibmY6IFtbJ1wiLVwiJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclSXRlbScsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfV0hJVEVTUEFDRSonLCAnUHJpbWFyeVByZURlY29yYXRpb24/JywgJyVQcmltYXJ5JywgJ1ByaW1hcnlEZWNvcmF0aW9uPyddXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdQcmltYXJ5RGVjb3JhdGlvbicsXG4gICAgICAgICAgICBibmY6IFtbJ1wiP1wiJ10sIFsnXCIqXCInXSwgWydcIitcIiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUHJpbWFyeVByZURlY29yYXRpb24nLFxuICAgICAgICAgICAgYm5mOiBbWydcIiZcIiddLCBbJ1wiIVwiJ10sIFsnXCJ+XCInXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJyVQcmltYXJ5JyxcbiAgICAgICAgICAgIGJuZjogW1snTkNOYW1lJ10sIFsnU3RyaW5nTGl0ZXJhbCddLCBbJ0NoYXJDb2RlJ10sIFsnQ2hhckNsYXNzJ10sIFsnU3ViSXRlbSddXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdTdWJJdGVtJyxcbiAgICAgICAgICAgIGJuZjogW1snXCIoXCInLCAnUlVMRV9TKicsICclQ2hvaWNlJywgJ1JVTEVfUyonLCAnXCIpXCInXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1N0cmluZ0xpdGVyYWwnLFxuICAgICAgICAgICAgYm5mOiBbW2AnXCInYCwgL1teXCJdKi8sIGAnXCInYF0sIFtgXCInXCJgLCAvW14nXSovLCBgXCInXCJgXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0NoYXJDb2RlJyxcbiAgICAgICAgICAgIGJuZjogW1snXCIjeFwiJywgL1swLTlhLXpBLVpdKy9dXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnQ2hhckNsYXNzJyxcbiAgICAgICAgICAgIGJuZjogW1tcIidbJ1wiLCBcIideJz9cIiwgJyVSVUxFX0NoYXJDbGFzc18xKycsICdcIl1cIiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnJVJVTEVfQ2hhckNsYXNzXzEnLFxuICAgICAgICAgICAgYm5mOiBbWydDaGFyQ29kZVJhbmdlJ10sIFsnQ2hhclJhbmdlJ10sIFsnQ2hhckNvZGUnXSwgWydSVUxFX0NoYXInXV0sXG4gICAgICAgICAgICBmcmFnbWVudDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUlVMRV9DaGFyJyxcbiAgICAgICAgICAgIGJuZjogW1svXFx4MDkvXSwgWy9cXHgwQS9dLCBbL1xceDBEL10sIFsvW1xceDIwLVxceDVjXS9dLCBbL1tcXHg1ZS1cXHVEN0ZGXS9dLCBbL1tcXHVFMDAwLVxcdUZGRkRdL11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdDaGFyUmFuZ2UnLFxuICAgICAgICAgICAgYm5mOiBbWydSVUxFX0NoYXInLCAnXCItXCInLCAnUlVMRV9DaGFyJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdDaGFyQ29kZVJhbmdlJyxcbiAgICAgICAgICAgIGJuZjogW1snQ2hhckNvZGUnLCAnXCItXCInLCAnQ2hhckNvZGUnXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JVTEVfV0hJVEVTUEFDRScsXG4gICAgICAgICAgICBibmY6IFtbJyVSVUxFX1dISVRFU1BBQ0VfQ0hBUionXSwgWydDb21tZW50JywgJ1JVTEVfV0hJVEVTUEFDRSonXV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JVTEVfUycsXG4gICAgICAgICAgICBibmY6IFtbJ1JVTEVfV0hJVEVTUEFDRScsICdSVUxFX1MqJ10sIFsnUlVMRV9FT0wnLCAnUlVMRV9TKiddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnJVJVTEVfV0hJVEVTUEFDRV9DSEFSJyxcbiAgICAgICAgICAgIGJuZjogW1svXFx4MDkvXSwgWy9cXHgyMC9dXSxcbiAgICAgICAgICAgIGZyYWdtZW50OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdDb21tZW50JyxcbiAgICAgICAgICAgIGJuZjogW1snXCIvKlwiJywgJyVSVUxFX0NvbW1lbnRfQm9keSonLCAnXCIqL1wiJ11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICclUlVMRV9Db21tZW50X0JvZHknLFxuICAgICAgICAgICAgYm5mOiBbWy9bXipdL10sIFsnXCIqXCIrJywgL1teL10qL11dLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JVTEVfRU9MJyxcbiAgICAgICAgICAgIGJuZjogW1svXFx4MEQvLCAvXFx4MEEvXSwgWy9cXHgwQS9dLCBbL1xceDBEL11dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdMaW5rJyxcbiAgICAgICAgICAgIGJuZjogW1tcIidbJ1wiLCAnVXJsJywgXCInXSdcIl1dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdVcmwnLFxuICAgICAgICAgICAgYm5mOiBbWy9bXlxceDVEOi8/I10vLCAnXCI6Ly9cIicsIC9bXlxceDVEI10rLywgJyVVcmwxPyddXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnJVVybDEnLFxuICAgICAgICAgICAgYm5mOiBbWydcIiNcIicsICdOQ05hbWUnXV0sXG4gICAgICAgICAgICBmcmFnbWVudDogdHJ1ZVxuICAgICAgICB9XG4gICAgXTtcbiAgICBCTkYuZGVmYXVsdFBhcnNlciA9IG5ldyBQYXJzZXJfMS5QYXJzZXIoQk5GLlJVTEVTLCB7IGRlYnVnOiBmYWxzZSB9KTtcbiAgICBjb25zdCBwcmVEZWNvcmF0aW9uUkUgPSAvXighfCYpLztcbiAgICBjb25zdCBkZWNvcmF0aW9uUkUgPSAvKFxcP3xcXCt8XFwqKSQvO1xuICAgIGNvbnN0IHN1YkV4cHJlc3Npb25SRSA9IC9eJS87XG4gICAgZnVuY3Rpb24gZ2V0Qk5GUnVsZShuYW1lLCBwYXJzZXIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuYW1lID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBsZXQgZGVjb3JhdGlvbiA9IGRlY29yYXRpb25SRS5leGVjKG5hbWUpO1xuICAgICAgICAgICAgbGV0IHByZURlY29yYXRpb24gPSBwcmVEZWNvcmF0aW9uUkUuZXhlYyhuYW1lKTtcbiAgICAgICAgICAgIGxldCBwcmVEZWNvcmF0aW9uVGV4dCA9IHByZURlY29yYXRpb24gPyBwcmVEZWNvcmF0aW9uWzBdIDogJyc7XG4gICAgICAgICAgICBsZXQgZGVjb3JhdGlvblRleHQgPSBkZWNvcmF0aW9uID8gZGVjb3JhdGlvblswXSArICcgJyA6ICcnO1xuICAgICAgICAgICAgbGV0IHN1YmV4cHJlc3Npb24gPSBzdWJFeHByZXNzaW9uUkUudGVzdChuYW1lKTtcbiAgICAgICAgICAgIGlmIChzdWJleHByZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgbGV0IGxvbmVseSA9IGlzTG9uZWx5UnVsZShuYW1lLCBwYXJzZXIpO1xuICAgICAgICAgICAgICAgIGlmIChsb25lbHkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmVEZWNvcmF0aW9uVGV4dCArIGdldEJORkJvZHkobmFtZSwgcGFyc2VyKSArIGRlY29yYXRpb25UZXh0O1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmVEZWNvcmF0aW9uVGV4dCArICcoJyArIGdldEJORkJvZHkobmFtZSwgcGFyc2VyKSArICcpJyArIGRlY29yYXRpb25UZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5hbWUucmVwbGFjZShwcmVEZWNvcmF0aW9uUkUsIHByZURlY29yYXRpb25UZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuYW1lLnNvdXJjZVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFxcKD86eHx1KShbYS16QS1aMC05XSspL2csICcjeCQxJylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxbXFxcXCg/Onh8dSkoW2EtekEtWjAtOV0rKS1cXFxcKD86eHx1KShbYS16QS1aMC05XSspXFxdL2csICdbI3gkMS0jeCQyXScpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vLyBSZXR1cm5zIHRydWUgaWYgdGhlIHJ1bGUgaXMgYSBzdHJpbmcgbGl0ZXJhbCBvciByZWd1bGFyIGV4cHJlc3Npb24gd2l0aG91dCBhIGRlc2NlbmRhbnQgdHJlZVxuICAgIGZ1bmN0aW9uIGlzTG9uZWx5UnVsZShuYW1lLCBwYXJzZXIpIHtcbiAgICAgICAgbGV0IHJ1bGUgPSBQYXJzZXJfMS5maW5kUnVsZUJ5TmFtZShuYW1lLCBwYXJzZXIpO1xuICAgICAgICByZXR1cm4gKHJ1bGUgJiZcbiAgICAgICAgICAgIHJ1bGUuYm5mLmxlbmd0aCA9PSAxICYmXG4gICAgICAgICAgICBydWxlLmJuZlswXS5sZW5ndGggPT0gMSAmJlxuICAgICAgICAgICAgKHJ1bGUuYm5mWzBdWzBdIGluc3RhbmNlb2YgUmVnRXhwIHx8IHJ1bGUuYm5mWzBdWzBdWzBdID09ICdcIicgfHwgcnVsZS5ibmZbMF1bMF1bMF0gPT0gXCInXCIpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Qk5GQ2hvaWNlKHJ1bGVzLCBwYXJzZXIpIHtcbiAgICAgICAgcmV0dXJuIHJ1bGVzLm1hcCh4ID0+IGdldEJORlJ1bGUoeCwgcGFyc2VyKSkuam9pbignICcpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRCTkZCb2R5KG5hbWUsIHBhcnNlcikge1xuICAgICAgICBsZXQgcnVsZSA9IFBhcnNlcl8xLmZpbmRSdWxlQnlOYW1lKG5hbWUsIHBhcnNlcik7XG4gICAgICAgIGlmIChydWxlKVxuICAgICAgICAgICAgcmV0dXJuIHJ1bGUuYm5mLm1hcCh4ID0+IGdldEJORkNob2ljZSh4LCBwYXJzZXIpKS5qb2luKCcgfCAnKTtcbiAgICAgICAgcmV0dXJuICdSVUxFX05PVF9GT1VORCB7JyArIG5hbWUgKyAnfSc7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVtaXQocGFyc2VyKSB7XG4gICAgICAgIGxldCBhY3VtdWxhdG9yID0gW107XG4gICAgICAgIHBhcnNlci5ncmFtbWFyUnVsZXMuZm9yRWFjaChsID0+IHtcbiAgICAgICAgICAgIGlmICghL14lLy50ZXN0KGwubmFtZSkpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVjb3ZlciA9IGwucmVjb3ZlciA/ICcgeyByZWNvdmVyVW50aWw9JyArIGwucmVjb3ZlciArICcgfScgOiAnJztcbiAgICAgICAgICAgICAgICBhY3VtdWxhdG9yLnB1c2gobC5uYW1lICsgJyA6Oj0gJyArIGdldEJORkJvZHkobC5uYW1lLCBwYXJzZXIpICsgcmVjb3Zlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYWN1bXVsYXRvci5qb2luKCdcXG4nKTtcbiAgICB9XG4gICAgQk5GLmVtaXQgPSBlbWl0O1xuICAgIGxldCBzdWJpdGVtcyA9IDA7XG4gICAgZnVuY3Rpb24gcmVzdGFyKHRvdGFsLCByZXN0YSkge1xuICAgICAgICBjb25zb2xlLmxvZygncmViZXJpYSByZXN0YXIgJyArIHJlc3RhICsgJyBhICcgKyB0b3RhbCk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRGlmZmVyZW5jZSBub3Qgc3VwcG9ydGVkIHlldCcpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb252ZXJ0UmVnZXgodHh0KSB7XG4gICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHR4dFxuICAgICAgICAgICAgLnJlcGxhY2UoLyN4KFthLXpBLVowLTldezR9KS9nLCAnXFxcXHUkMScpXG4gICAgICAgICAgICAucmVwbGFjZSgvI3goW2EtekEtWjAtOV17M30pL2csICdcXFxcdTAkMScpXG4gICAgICAgICAgICAucmVwbGFjZSgvI3goW2EtekEtWjAtOV17Mn0pL2csICdcXFxceCQxJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8jeChbYS16QS1aMC05XXsxfSkvZywgJ1xcXFx4MCQxJykpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRTdWJJdGVtcyh0bXBSdWxlcywgc2VxLCBwYXJlbnROYW1lLCBwYXJlbnRBdHRyaWJ1dGVzKSB7XG4gICAgICAgIGxldCBhbnRlcmlvciA9IG51bGw7XG4gICAgICAgIGxldCBibmZTZXEgPSBbXTtcbiAgICAgICAgc2VxLmNoaWxkcmVuLmZvckVhY2goKHgsIGkpID0+IHtcbiAgICAgICAgICAgIGlmICh4LnR5cGUgPT0gJ01pbnVzJykge1xuICAgICAgICAgICAgICAgIHJlc3RhcihhbnRlcmlvciwgeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkZWNvcmF0aW9uID0gc2VxLmNoaWxkcmVuW2kgKyAxXTtcbiAgICAgICAgICAgIGRlY29yYXRpb24gPSAoZGVjb3JhdGlvbiAmJiBkZWNvcmF0aW9uLnR5cGUgPT0gJ1ByaW1hcnlEZWNvcmF0aW9uJyAmJiBkZWNvcmF0aW9uLnRleHQpIHx8ICcnO1xuICAgICAgICAgICAgbGV0IHByZURlY29yYXRpb24gPSAnJztcbiAgICAgICAgICAgIGlmIChhbnRlcmlvciAmJiBhbnRlcmlvci50eXBlID09ICdQcmltYXJ5UHJlRGVjb3JhdGlvbicpIHtcbiAgICAgICAgICAgICAgICBwcmVEZWNvcmF0aW9uID0gYW50ZXJpb3IudGV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBwaW5uZWQgPSBwcmVEZWNvcmF0aW9uID09ICd+JyA/IDEgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAocGlubmVkKSB7XG4gICAgICAgICAgICAgICAgcHJlRGVjb3JhdGlvbiA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoICh4LnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdTdWJJdGVtJzpcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5hbWUgPSAnJScgKyAocGFyZW50TmFtZSArIHN1Yml0ZW1zKyspO1xuICAgICAgICAgICAgICAgICAgICBjcmVhdGVSdWxlKHRtcFJ1bGVzLCB4LCBuYW1lLCBwYXJlbnRBdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgICAgICAgICAgYm5mU2VxLnB1c2gocHJlRGVjb3JhdGlvbiArIG5hbWUgKyBkZWNvcmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnTkNOYW1lJzpcbiAgICAgICAgICAgICAgICAgICAgYm5mU2VxLnB1c2gocHJlRGVjb3JhdGlvbiArIHgudGV4dCArIGRlY29yYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdTdHJpbmdMaXRlcmFsJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlY29yYXRpb24gfHwgcHJlRGVjb3JhdGlvbiB8fCAhL15bJ1wiLygpYS16QS1aMC05Jl8uOj0sKypcXC1cXF5cXFxcXSskLy50ZXN0KHgudGV4dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJuZlNlcS5wdXNoKHByZURlY29yYXRpb24gKyB4LnRleHQgKyBkZWNvcmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYyBvZiB4LnRleHQuc2xpY2UoMSwgLTEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudEF0dHJpYnV0ZXMgJiYgcGFyZW50QXR0cmlidXRlc1tcImlnbm9yZUNhc2VcIl0gPT0gXCJ0cnVlXCIgJiYgL1thLXpBLVpdLy50ZXN0KGMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJuZlNlcS5wdXNoKG5ldyBSZWdFeHAoXCJbXCIgKyBjLnRvVXBwZXJDYXNlKCkgKyBjLnRvTG93ZXJDYXNlKCkgKyBcIl1cIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm5mU2VxLnB1c2gobmV3IFJlZ0V4cChQYXJzZXJfMS5lc2NhcGVSZWdFeHAoYykpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnQ2hhckNvZGUnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0NoYXJDbGFzcyc6XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZWNvcmF0aW9uIHx8IHByZURlY29yYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdSdWxlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICclJyArIChwYXJlbnROYW1lICsgc3ViaXRlbXMrKyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm5mOiBbW2NvbnZlcnRSZWdleCh4LnRleHQpXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdG1wUnVsZXMucHVzaChuZXdSdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJuZlNlcS5wdXNoKHByZURlY29yYXRpb24gKyBuZXdSdWxlLm5hbWUgKyBkZWNvcmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJuZlNlcS5wdXNoKGNvbnZlcnRSZWdleCh4LnRleHQpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdQcmltYXJ5UHJlRGVjb3JhdGlvbic6XG4gICAgICAgICAgICAgICAgY2FzZSAnUHJpbWFyeURlY29yYXRpb24nOlxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyBIT1cgU0hPVUxEIEkgUEFSU0UgVEhJUz8gJyArIHgudHlwZSArICcgLT4gJyArIEpTT04uc3RyaW5naWZ5KHgudGV4dCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYW50ZXJpb3IgPSB4O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGJuZlNlcTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlUnVsZSh0bXBSdWxlcywgdG9rZW4sIG5hbWUsIHBhcmVudEF0dHJpYnV0ZXMgPSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGV0IGF0dHJOb2RlID0gdG9rZW4uY2hpbGRyZW4uZmlsdGVyKHggPT4geC50eXBlID09ICdBdHRyaWJ1dGVzJylbMF07XG4gICAgICAgIGxldCBhdHRyaWJ1dGVzID0ge307XG4gICAgICAgIGlmIChhdHRyTm9kZSkge1xuICAgICAgICAgICAgYXR0ck5vZGUuY2hpbGRyZW4uZm9yRWFjaCh4ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgbmFtZSA9IHguY2hpbGRyZW4uZmlsdGVyKHggPT4geC50eXBlID09ICdOQ05hbWUnKVswXS50ZXh0O1xuICAgICAgICAgICAgICAgIGlmIChuYW1lIGluIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRva2VuRXJyb3JfMS5Ub2tlbkVycm9yKCdEdXBsaWNhdGVkIGF0dHJpYnV0ZSAnICsgbmFtZSwgeCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzW25hbWVdID0geC5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4LnR5cGUgPT0gJ0F0dHJpYnV0ZVZhbHVlJylbMF0udGV4dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYm5mID0gdG9rZW4uY2hpbGRyZW4uZmlsdGVyKHggPT4geC50eXBlID09ICdTZXF1ZW5jZU9yRGlmZmVyZW5jZScpLm1hcChzID0+IGdldFN1Ykl0ZW1zKHRtcFJ1bGVzLCBzLCBuYW1lLCBwYXJlbnRBdHRyaWJ1dGVzID8gcGFyZW50QXR0cmlidXRlcyA6IGF0dHJpYnV0ZXMpKTtcbiAgICAgICAgbGV0IHJ1bGUgPSB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgYm5mXG4gICAgICAgIH07XG4gICAgICAgIGlmIChuYW1lLmluZGV4T2YoJyUnKSA9PSAwKVxuICAgICAgICAgICAgcnVsZS5mcmFnbWVudCA9IHRydWU7XG4gICAgICAgIGlmIChhdHRyaWJ1dGVzWydyZWNvdmVyVW50aWwnXSkge1xuICAgICAgICAgICAgcnVsZS5yZWNvdmVyID0gYXR0cmlidXRlc1sncmVjb3ZlclVudGlsJ107XG4gICAgICAgICAgICBpZiAocnVsZS5ibmYubGVuZ3RoID4gMSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVG9rZW5FcnJvcl8xLlRva2VuRXJyb3IoJ29ubHkgb25lLW9wdGlvbiBwcm9kdWN0aW9ucyBhcmUgc3VpdGFibGUgZm9yIGVycm9yIHJlY292ZXJpbmcnLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdwaW4nIGluIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGxldCBudW0gPSBwYXJzZUludChhdHRyaWJ1dGVzWydwaW4nXSk7XG4gICAgICAgICAgICBpZiAoIWlzTmFOKG51bSkpIHtcbiAgICAgICAgICAgICAgICBydWxlLnBpbm5lZCA9IG51bTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChydWxlLmJuZi5sZW5ndGggPiAxKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUb2tlbkVycm9yXzEuVG9rZW5FcnJvcignb25seSBvbmUtb3B0aW9uIHByb2R1Y3Rpb25zIGFyZSBzdWl0YWJsZSBmb3IgcGlubmluZycsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ3dzJyBpbiBhdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBydWxlLmltcGxpY2l0V3MgPSBhdHRyaWJ1dGVzWyd3cyddICE9ICdleHBsaWNpdCc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBydWxlLmltcGxpY2l0V3MgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJ1bGUuZnJhZ21lbnQgPSBydWxlLmZyYWdtZW50IHx8IGF0dHJpYnV0ZXNbJ2ZyYWdtZW50J10gPT0gJ3RydWUnO1xuICAgICAgICBydWxlLnNpbXBsaWZ5V2hlbk9uZUNoaWxkcmVuID0gYXR0cmlidXRlc1snc2ltcGxpZnlXaGVuT25lQ2hpbGRyZW4nXSA9PSAndHJ1ZSc7XG4gICAgICAgIHRtcFJ1bGVzLnB1c2gocnVsZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFJ1bGVzKHNvdXJjZSwgcGFyc2VyID0gQk5GLmRlZmF1bHRQYXJzZXIpIHtcbiAgICAgICAgbGV0IGFzdCA9IHBhcnNlci5nZXRBU1Qoc291cmNlKTtcbiAgICAgICAgaWYgKCFhc3QpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBwYXJzZSAnICsgc291cmNlKTtcbiAgICAgICAgaWYgKGFzdC5lcnJvcnMgJiYgYXN0LmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93IGFzdC5lcnJvcnNbMF07XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGltcGxpY2l0V3MgPSBudWxsO1xuICAgICAgICBsZXQgYXR0ck5vZGUgPSBhc3QuY2hpbGRyZW4uZmlsdGVyKHggPT4geC50eXBlID09ICdBdHRyaWJ1dGVzJylbMF07XG4gICAgICAgIGxldCBhdHRyaWJ1dGVzID0ge307XG4gICAgICAgIGlmIChhdHRyTm9kZSkge1xuICAgICAgICAgICAgYXR0ck5vZGUuY2hpbGRyZW4uZm9yRWFjaCh4ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgbmFtZSA9IHguY2hpbGRyZW4uZmlsdGVyKHggPT4geC50eXBlID09ICdOQ05hbWUnKVswXS50ZXh0O1xuICAgICAgICAgICAgICAgIGlmIChuYW1lIGluIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRva2VuRXJyb3JfMS5Ub2tlbkVycm9yKCdEdXBsaWNhdGVkIGF0dHJpYnV0ZSAnICsgbmFtZSwgeCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzW25hbWVdID0geC5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4LnR5cGUgPT0gJ0F0dHJpYnV0ZVZhbHVlJylbMF0udGV4dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpbXBsaWNpdFdzID0gYXR0cmlidXRlc1snd3MnXSA9PSAnaW1wbGljaXQnO1xuICAgICAgICBsZXQgdG1wUnVsZXMgPSBbXTtcbiAgICAgICAgYXN0LmNoaWxkcmVuLmZpbHRlcih4ID0+IHgudHlwZSA9PSAnUHJvZHVjdGlvbicpLm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgbGV0IG5hbWUgPSB4LmNoaWxkcmVuLmZpbHRlcih4ID0+IHgudHlwZSA9PSAnTkNOYW1lJylbMF0udGV4dDtcbiAgICAgICAgICAgIGNyZWF0ZVJ1bGUodG1wUnVsZXMsIHgsIG5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgdG1wUnVsZXMuZm9yRWFjaChydWxlID0+IHtcbiAgICAgICAgICAgIGlmIChydWxlLmltcGxpY2l0V3MgPT09IG51bGwpXG4gICAgICAgICAgICAgICAgcnVsZS5pbXBsaWNpdFdzID0gaW1wbGljaXRXcztcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0bXBSdWxlcztcbiAgICB9XG4gICAgQk5GLmdldFJ1bGVzID0gZ2V0UnVsZXM7XG4gICAgZnVuY3Rpb24gVHJhbnNmb3JtKHNvdXJjZSwgc3ViUGFyc2VyID0gQk5GLmRlZmF1bHRQYXJzZXIpIHtcbiAgICAgICAgcmV0dXJuIGdldFJ1bGVzKHNvdXJjZS5qb2luKCcnKSwgc3ViUGFyc2VyKTtcbiAgICB9XG4gICAgQk5GLlRyYW5zZm9ybSA9IFRyYW5zZm9ybTtcbiAgICBjbGFzcyBQYXJzZXIgZXh0ZW5kcyBQYXJzZXJfMS5QYXJzZXIge1xuICAgICAgICBjb25zdHJ1Y3Rvcihzb3VyY2UsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YlBhcnNlciA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kZWJ1Z1J1bGVzUGFyc2VyID09PSB0cnVlID8gbmV3IFBhcnNlcl8xLlBhcnNlcihCTkYuUlVMRVMsIHsgZGVidWc6IHRydWUgfSkgOiBCTkYuZGVmYXVsdFBhcnNlcjtcbiAgICAgICAgICAgIHN1cGVyKGdldFJ1bGVzKHNvdXJjZSwgc3ViUGFyc2VyKSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgZW1pdFNvdXJjZSgpIHtcbiAgICAgICAgICAgIHJldHVybiBlbWl0KHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEJORi5QYXJzZXIgPSBQYXJzZXI7XG59KShCTkYgfHwgKEJORiA9IHt9KSk7XG5leHBvcnRzLmRlZmF1bHQgPSBCTkY7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1DdXN0b20uanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgQk5GXzEgPSByZXF1aXJlKFwiLi9CTkZcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJCTkZcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIEJORl8xLmRlZmF1bHQ7IH0gfSk7XG52YXIgVzNDRUJORl8xID0gcmVxdWlyZShcIi4vVzNDRUJORlwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlczQ1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gVzNDRUJORl8xLmRlZmF1bHQ7IH0gfSk7XG52YXIgQ3VzdG9tXzEgPSByZXF1aXJlKFwiLi9DdXN0b21cIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJDdXN0b21cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIEN1c3RvbV8xLmRlZmF1bHQ7IH0gfSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBQYXJzZXJfMSA9IHJlcXVpcmUoXCIuL1BhcnNlclwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlBhcnNlclwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gUGFyc2VyXzEuUGFyc2VyOyB9IH0pO1xudmFyIFRva2VuRXJyb3JfMSA9IHJlcXVpcmUoXCIuL1Rva2VuRXJyb3JcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUb2tlbkVycm9yXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBUb2tlbkVycm9yXzEuVG9rZW5FcnJvcjsgfSB9KTtcbmV4cG9ydHMuR3JhbW1hcnMgPSByZXF1aXJlKFwiLi9HcmFtbWFyc1wiKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZUZvcm11bGEgPSBleHBvcnRzLnBhcnNlQW5kQXBwbHkgPSBleHBvcnRzLlNvdXJjZSA9IGV4cG9ydHMuRm9ybXVsYSA9IHZvaWQgMDtcbmNvbnN0IG5ldmVydGhyb3dfMSA9IHJlcXVpcmUoXCIuLi9uZXZlcnRocm93L25ldmVydGhyb3dcIik7XG5jb25zdCBhbGdlYnJhaWNfb3BlcmF0aW9uXzEgPSByZXF1aXJlKFwiLi9hbGdlYnJhaWNfb3BlcmF0aW9uXCIpO1xuY29uc3QgYXN0X3V0aWxzXzEgPSByZXF1aXJlKFwiLi9hc3RfdXRpbHNcIik7XG5jb25zdCBjb25kaXRpb25hbF9mdW5jdGlvbl8xID0gcmVxdWlyZShcIi4vY29uZGl0aW9uYWxfZnVuY3Rpb25cIik7XG5jb25zdCBjb25zdGFudF8xID0gcmVxdWlyZShcIi4vY29uc3RhbnRcIik7XG5jb25zdCBkZXN0aW5hdGlvbl8xID0gcmVxdWlyZShcIi4vZGVzdGluYXRpb25cIik7XG5jb25zdCBkaXNwbGF5X2RpcmVjdGl2ZV8xID0gcmVxdWlyZShcIi4vZGlzcGxheV9kaXJlY3RpdmVcIik7XG5jb25zdCByYW5nZV8xID0gcmVxdWlyZShcIi4vcmFuZ2VcIik7XG5jb25zdCByZWZlcmVuY2VfMSA9IHJlcXVpcmUoXCIuL3JlZmVyZW5jZVwiKTtcbmNvbnN0IHNpbmdsZV9wYXJhbV9mdW5jdGlvbl8xID0gcmVxdWlyZShcIi4vc2luZ2xlX3BhcmFtX2Z1bmN0aW9uXCIpO1xuY29uc3QgZWJuZl8xID0gcmVxdWlyZShcImVibmZcIik7XG5jb25zdCBsb2Rhc2hfMSA9IHJlcXVpcmUoXCJsb2Rhc2hcIik7XG4vKipcbiAqIFczQyBncmFtbWFyIGRlc2NyaWJpbmcgYSB2YWxpZCBmb3JtdWxhIGF0IHRoZSBib3R0b20gb2YgYSB0YWJsZS5cbiAqXG4gKiBUaGUgbGlicmFyeSBiZWluZyB1c2VkIHRvIHBhcnNlIHRoZSBmb3JtdWxhIGRvZXMgbm90IHN1cG9ydCBFQk5GLCBvbmx5IEJORixcbiAqIHNvIFczQyBzeW50YXggd2FzIHVzZWQgaW4gb3JkZXIgdG8gZ2V0IGFjY2VzcyB0byBleHRlbmRlZCBmZWF0dXJlcy5cbiAqXG4gKiBUaGUgcGFyc2VyIGdlbmVyYXRlcyBhIFBFRyBwYXJzZXIsIHdoaWMgaXMgbm90IGFibGUgdG8gaGFuZGxlIGFtYmlndWl0eS4gVGhlXG4gKiBvcmRlciBvZiBjb25zdHJ1Y3Rpb25zIGlzIHNpZ25pZmljYW50LlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9seXMtbGFuZy9ub2RlLWVibmYvaXNzdWVzLzM0XG4gKi9cbmNvbnN0IHBhcnNlckdyYW1tYXIgPSBgXG50YmxmbV9saW5lICAgOjo9IFwiPCEtLSBUQkxGTTogXCIgZm9ybXVsYV9saXN0IFwiIC0tPlwiXG5mb3JtdWxhX2xpc3QgOjo9IGZvcm11bGEgKCBcIjo6XCIgZm9ybXVsYV9saXN0ICk/XG5mb3JtdWxhICAgICAgOjo9IGRlc3RpbmF0aW9uIFwiPVwiIHNvdXJjZSBkaXNwbGF5X2RpcmVjdGl2ZT9cblxuc291cmNlICAgICAgICAgICA6Oj0gcmFuZ2UgfCBzb3VyY2VfcmVmZXJlbmNlIHwgc2luZ2xlX3BhcmFtX2Z1bmN0aW9uX2NhbGwgfCBjb25kaXRpb25hbF9mdW5jdGlvbl9jYWxsIHwgYWxnZWJyYWljX29wZXJhdGlvbiB8IGZsb2F0IHwgcmVhbFxucmFuZ2UgICAgICAgICAgICA6Oj0gc291cmNlX3JlZmVyZW5jZSBcIi4uXCIgc291cmNlX3JlZmVyZW5jZVxuc291cmNlX3JlZmVyZW5jZSA6Oj0gYWJzb2x1dGVfcmVmZXJlbmNlIHwgcmVsYXRpdmVfcmVmZXJlbmNlXG5kZXN0aW5hdGlvbiAgICAgIDo6PSByYW5nZSB8IGFic29sdXRlX3JlZmVyZW5jZVxuXG5yZWxhdGl2ZV9yZWZlcmVuY2UgOjo9IChyZWxhdGl2ZV9yb3cgfCBhYnNvbHV0ZV9yb3cpIChyZWxhdGl2ZV9jb2x1bW4gfCBhYnNvbHV0ZV9jb2x1bW4pIHwgcmVsYXRpdmVfcm93IHwgcmVsYXRpdmVfY29sdW1uXG5yZWxhdGl2ZV9yb3cgOjo9IFwiQFwiICggXCItXCIgfCBcIitcIiApIGludFxucmVsYXRpdmVfY29sdW1uIDo6PSBcIiRcIiAoIFwiLVwiIHwgXCIrXCIgKSBpbnRcblxuYWJzb2x1dGVfcmVmZXJlbmNlIDo6PSBhYnNvbHV0ZV9yb3cgYWJzb2x1dGVfY29sdW1uIHwgYWJzb2x1dGVfcm93IHwgYWJzb2x1dGVfY29sdW1uXG5hYnNvbHV0ZV9yb3cgOjo9IFwiQFwiICggXCJJXCIgfCBcIjxcIiB8IFwiPlwiIHwgaW50IClcbmFic29sdXRlX2NvbHVtbiA6Oj0gXCIkXCIgKCBcIjxcIiB8IFwiPlwiIHwgaW50IClcblxuc2luZ2xlX3BhcmFtX2Z1bmN0aW9uX2NhbGwgOjo9IHNpbmdsZV9wYXJhbV9mdW5jdGlvbiBcIihcIiBzb3VyY2UgXCIpXCIgXG5zaW5nbGVfcGFyYW1fZnVuY3Rpb24gICAgICA6Oj0gXCJtZWFuXCIgfCBcInN1bVwiXG5cbmNvbmRpdGlvbmFsX2Z1bmN0aW9uX2NhbGwgOjo9IFwiaWYoXCIgcHJlZGljYXRlIFwiLFwiIFwiIFwiPyBzb3VyY2UgXCIsXCIgXCIgXCI/IHNvdXJjZSBcIilcIlxucHJlZGljYXRlICAgICAgICAgICAgICAgICA6Oj0gc291cmNlX3dpdGhvdXRfcmFuZ2UgY29uZGl0aW9uYWxfb3BlcmF0b3Igc291cmNlX3dpdGhvdXRfcmFuZ2VcbnNvdXJjZV93aXRob3V0X3JhbmdlICAgICAgOjo9IHNvdXJjZV9yZWZlcmVuY2UgfCBzaW5nbGVfcGFyYW1fZnVuY3Rpb25fY2FsbCB8IGNvbmRpdGlvbmFsX2Z1bmN0aW9uX2NhbGwgfCBhbGdlYnJhaWNfb3BlcmF0aW9uIHwgZmxvYXQgfCByZWFsXG5jb25kaXRpb25hbF9vcGVyYXRvciAgICAgIDo6PSBcIj5cIiB8IFwiPFwiIHwgXCI+PVwiIHwgXCI8PVwiIHwgXCI9PVwiIHwgXCIhPVwiXG5cbmFsZ2VicmFpY19vcGVyYXRpb24gOjo9IFwiKFwiIHNvdXJjZSBcIiBcIj8gYWxnZWJyYWljX29wZXJhdG9yIFwiIFwiPyBzb3VyY2UgXCIpXCJcbmFsZ2VicmFpY19vcGVyYXRvciAgOjo9IFwiK1wiIHwgXCItXCIgfCBcIipcIiB8IFwiL1wiXG5cbmRpc3BsYXlfZGlyZWN0aXZlICAgICAgICA6Oj0gXCI7XCIgZGlzcGxheV9kaXJlY3RpdmVfb3B0aW9uXG5kaXNwbGF5X2RpcmVjdGl2ZV9vcHRpb24gOjo9IGZvcm1hdHRpbmdfZGlyZWN0aXZlIHwgZGF0ZXRpbWVfZGlyZWN0aXZlXG5mb3JtYXR0aW5nX2RpcmVjdGl2ZSAgICAgOjo9IFwiJS5cIiBpbnQgXCJmXCJcbmRhdGV0aW1lX2RpcmVjdGl2ZSAgICAgICAgICAgOjo9IFwiZHRcIlxuXG5mbG9hdCA6Oj0gXCItXCI/IGludCBcIi5cIiBpbnRcbnJlYWwgOjo9IFwiLVwiPyBpbnRcbmludCAgOjo9IFswLTldK1xuYDtcbmNsYXNzIEZvcm11bGEge1xuICAgIGNvbnN0cnVjdG9yKGFzdCwgdGFibGUpIHtcbiAgICAgICAgdGhpcy5tZXJnZSA9ICh0YWJsZSkgPT4gdGhpcy5kZXN0aW5hdGlvbi5tZXJnZSh0aGlzLnNvdXJjZSwgdGFibGUpO1xuICAgICAgICBsZXQgZm9ybWF0dGVyID0gbmV3IGRpc3BsYXlfZGlyZWN0aXZlXzEuRGVmYXVsdEZvcm1hdHRlcigpO1xuICAgICAgICBpZiAoYXN0LmNoaWxkcmVuLmxlbmd0aCA9PT0gMykge1xuICAgICAgICAgICAgZm9ybWF0dGVyID0gbmV3IGRpc3BsYXlfZGlyZWN0aXZlXzEuRGlzcGxheURpcmVjdGl2ZShhc3QuY2hpbGRyZW5bMl0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gZGVzdGluYXRpb25fMS5uZXdEZXN0aW5hdGlvbihhc3QuY2hpbGRyZW5bMF0sIHRhYmxlLCBmb3JtYXR0ZXIpO1xuICAgICAgICBpZiAoZGVzdGluYXRpb24uaXNFcnIoKSkge1xuICAgICAgICAgICAgdGhyb3cgZGVzdGluYXRpb24uZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uLnZhbHVlO1xuICAgICAgICB0aGlzLnNvdXJjZSA9IG5ldyBTb3VyY2UoYXN0LmNoaWxkcmVuWzFdLCB0YWJsZSk7XG4gICAgfVxufVxuZXhwb3J0cy5Gb3JtdWxhID0gRm9ybXVsYTtcbmNsYXNzIFNvdXJjZSB7XG4gICAgY29uc3RydWN0b3IoYXN0LCB0YWJsZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogZ2V0VmFsdWUgcmV0dXJucyB0aGUgZXZhbHVhdGVkIHZhbHVlIGZvciB0aGlzIHNvdXJjZSByZWN1cnNpdmVseS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZ2V0VmFsdWUgPSAodGFibGUsIGN1cnJlbnRDZWxsKSA9PiB0aGlzLmxvY2F0aW9uRGVzY3JpcHRvci5nZXRWYWx1ZSh0YWJsZSwgY3VycmVudENlbGwpO1xuICAgICAgICBpZiAoYXN0LnR5cGUgIT09ICdzb3VyY2UnICYmIGFzdC50eXBlICE9PSAnc291cmNlX3dpdGhvdXRfcmFuZ2UnKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignSW52YWxpZCBBU1QgdG9rZW4gdHlwZSBvZiAnICsgYXN0LnR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhc3QuY2hpbGRyZW4ubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignVW5leHBlY3RlZCBjaGlsZHJlbiBsZW5ndGggaW4gU291cmNlJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyYW1DaGlsZCA9IGFzdC5jaGlsZHJlblswXTtcbiAgICAgICAgY29uc3QgdnAgPSBuZXdWYWx1ZVByb3ZpZGVyKHBhcmFtQ2hpbGQsIHRhYmxlKTtcbiAgICAgICAgaWYgKHZwLmlzRXJyKCkpIHtcbiAgICAgICAgICAgIHRocm93IHZwLmVycm9yO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9jYXRpb25EZXNjcmlwdG9yID0gdnAudmFsdWU7XG4gICAgfVxufVxuZXhwb3J0cy5Tb3VyY2UgPSBTb3VyY2U7XG5jb25zdCBuZXdWYWx1ZVByb3ZpZGVyID0gKGFzdCwgdGFibGUpID0+IHtcbiAgICB0cnkge1xuICAgICAgICBzd2l0Y2ggKGFzdC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdyYW5nZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgcmFuZ2VfMS5SYW5nZShhc3QsIHRhYmxlKSk7XG4gICAgICAgICAgICBjYXNlICdzb3VyY2VfcmVmZXJlbmNlJzpcbiAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAxKTtcbiAgICAgICAgICAgICAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIobGVuZ3RoRXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyByZWZlcmVuY2VfMS5SZWZlcmVuY2UoYXN0LmNoaWxkcmVuWzBdLCB0YWJsZSkpO1xuICAgICAgICAgICAgY2FzZSAnc2luZ2xlX3BhcmFtX2Z1bmN0aW9uX2NhbGwnOlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobmV3IHNpbmdsZV9wYXJhbV9mdW5jdGlvbl8xLlNpbmdsZVBhcmFtRnVuY3Rpb25DYWxsKGFzdCwgdGFibGUpKTtcbiAgICAgICAgICAgIGNhc2UgJ2NvbmRpdGlvbmFsX2Z1bmN0aW9uX2NhbGwnOlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2sobmV3IGNvbmRpdGlvbmFsX2Z1bmN0aW9uXzEuQ29uZGl0aW9uYWxGdW5jdGlvbkNhbGwoYXN0LCB0YWJsZSkpO1xuICAgICAgICAgICAgY2FzZSAnYWxnZWJyYWljX29wZXJhdGlvbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5vayhuZXcgYWxnZWJyYWljX29wZXJhdGlvbl8xLkFsZ2VicmFpY09wZXJhdGlvbihhc3QsIHRhYmxlKSk7XG4gICAgICAgICAgICBjYXNlICdyZWFsJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyBjb25zdGFudF8xLkNvbnN0YW50KGFzdCwgdGFibGUpKTtcbiAgICAgICAgICAgIGNhc2UgJ2Zsb2F0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKG5ldyBjb25zdGFudF8xLkNvbnN0YW50KGFzdCwgdGFibGUpKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ1VucmVjb2duaXplZCB2YWx1ZVByb3ZpZGVyIHR5cGUgJyArIGFzdC50eXBlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIoZXJyb3IpO1xuICAgIH1cbn07XG5jb25zdCBwYXJzZUFuZEFwcGx5ID0gKGZvcm11bGFMaW5lcywgdGFibGUpID0+IHtcbiAgICAvLyBQYXJzZSBlYWNoIGZvcm11bGEgbGluZSwgZmxhdHRlbmluZyB0aGUgcmVzdWx0aW5nIGxpc3RzIG9mIGZvcm11bGFzIGludG8gYVxuICAgIC8vIHNpbmdsZSBsaXN0LCBidXQgcmV0dXJuaW5nIGFuIGVycm9yIGlmIGFueSBmb3JtdWxhIGZhaWxzIHRvIHBhcnNlLlxuICAgIGNvbnN0IGZvcm11bGFzID0gZm9ybXVsYUxpbmVzLnJlZHVjZSgocHJldiwgZm9ybXVsYUxpbmUpID0+IHByZXYuYW5kVGhlbigoY3VycmVudEZvcm11bGFzKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0Zvcm11bGFzID0gZXhwb3J0cy5wYXJzZUZvcm11bGEoZm9ybXVsYUxpbmUsIHRhYmxlKTtcbiAgICAgICAgaWYgKG5ld0Zvcm11bGFzLmlzRXJyKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXdGb3JtdWxhcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLm9rKGxvZGFzaF8xLmNvbmNhdChuZXdGb3JtdWxhcy52YWx1ZSwgY3VycmVudEZvcm11bGFzKSk7XG4gICAgfSksIG5ldmVydGhyb3dfMS5vayhbXSkpO1xuICAgIC8vIElmIHRoZXJlIGlzIG5vIGVycm9yLFxuICAgIHJldHVybiBmb3JtdWxhcy5hbmRUaGVuKChpbm5lckZvcm11bGFzKSA9PiBcbiAgICAvLyBmb3IgZWFjaCBmb3JtdWxhXG4gICAgaW5uZXJGb3JtdWxhcy5yZWR1Y2VSaWdodCgocHJldlZhbHVlLCBmb3JtdWxhKSA9PiBcbiAgICAvLyBJZiB0aGUgcHJldmlvdXMgZm9ybXVsYSBkaWRuJ3QgZ2l2ZSBhbiBlcnJvclxuICAgIHByZXZWYWx1ZS5hbmRUaGVuKChwcmV2VGFibGUpID0+IFxuICAgIC8vIGF0dGVtcHQgdG8gYXBwbHkgdGhpcyBmb3JtdWxhIHRvIHRoZSB0YWJsZSBhbmQgcmV0dXJuIHRoZSByZXN1bHRcbiAgICBmb3JtdWxhLm1lcmdlKHByZXZUYWJsZSkpLCBcbiAgICAvLyBTdGFydCB3aXRoIHRoZSBjdXJyZW50IHRhYmxlIHN0YXRlXG4gICAgbmV2ZXJ0aHJvd18xLm9rKHRhYmxlKSkpO1xufTtcbmV4cG9ydHMucGFyc2VBbmRBcHBseSA9IHBhcnNlQW5kQXBwbHk7XG4vKipcbiAqIFBhcnNlIHRoZSBwcm92aWRlZCBsaW5lLCByZXR1cm5pbmcgYW55IGZvdW5kIGZvcm11bGFzLiBBIHNpbmdsZSBsaW5lIG1heVxuICogY29udGFpbiB6ZXJvIG9yIG1vcmUgZm9ybXVsYXMuXG4gKlxuICogQHBhcmFtIGxpbmUgQSBsaW5lIG9mIHRoZSBmb3JtIGA8IS0tIFRCRk06IHtGT1JNVUxBfTo6e0ZPUk1VTEF9IC0tPmBcbiAqL1xuY29uc3QgcGFyc2VGb3JtdWxhID0gKGxpbmUsIHRhYmxlKSA9PiB7XG4gICAgY29uc3QgcGFyc2VyID0gbmV3IGVibmZfMS5HcmFtbWFycy5XM0MuUGFyc2VyKHBhcnNlckdyYW1tYXIpO1xuICAgIGNvbnN0IGFzdCA9IHBhcnNlci5nZXRBU1QobGluZSk7XG4gICAgLy8gVE9ETzogRGV0ZXJtaW5lIGhvdyB0byByZXR1cm4gZXJyb3JzIHdoZW4gYSBmb3JtdWxhLWxpa2Ugc3RyaW5nXG4gICAgLy8gICAgICAgaXMgbm90IGFjdHVhbGx5IGEgdmFsaWQgZm9ybXVsYS5cbiAgICBpZiAoIWFzdCkge1xuICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycihuZXcgRXJyb3IoYEZvcm11bGEgJyR7bGluZX0nIGNvdWxkIG5vdCBiZSBwYXJzZWRgKSk7XG4gICAgfVxuICAgIGNvbnN0IHR5cGVFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrVHlwZShhc3QsICd0YmxmbV9saW5lJyk7XG4gICAgaWYgKHR5cGVFcnJvcikge1xuICAgICAgICByZXR1cm4gbmV2ZXJ0aHJvd18xLmVycih0eXBlRXJyb3IpO1xuICAgIH1cbiAgICBjb25zdCBsZW5ndGhFcnJvciA9IGFzdF91dGlsc18xLmNoZWNrQ2hpbGRMZW5ndGgoYXN0LCAxKTtcbiAgICBpZiAobGVuZ3RoRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIobGVuZ3RoRXJyb3IpO1xuICAgIH1cbiAgICBsZXQgdW5wYXJzZWRGb3JtdWxhcyA9IGFzdC5jaGlsZHJlblswXS5jaGlsZHJlbjtcbiAgICBjb25zdCBmb3JtdWxhcyA9IFtdO1xuICAgIHRyeSB7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGZvcm11bGFzLnB1c2gobmV3IEZvcm11bGEodW5wYXJzZWRGb3JtdWxhc1swXSwgdGFibGUpKTtcbiAgICAgICAgICAgIGlmICh1bnBhcnNlZEZvcm11bGFzLmxlbmd0aCA+IDEgJiZcbiAgICAgICAgICAgICAgICB1bnBhcnNlZEZvcm11bGFzWzFdLnR5cGUgPT09ICdmb3JtdWxhX2xpc3QnKSB7XG4gICAgICAgICAgICAgICAgdW5wYXJzZWRGb3JtdWxhcyA9IHVucGFyc2VkRm9ybXVsYXNbMV0uY2hpbGRyZW47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB1bnBhcnNlZEZvcm11bGFzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gd2hpbGUgKHVucGFyc2VkRm9ybXVsYXMubGVuZ3RoID4gMCk7XG4gICAgICAgIHJldHVybiBuZXZlcnRocm93XzEub2soZm9ybXVsYXMpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldmVydGhyb3dfMS5lcnIoZXJyb3IpO1xuICAgIH1cbn07XG5leHBvcnRzLnBhcnNlRm9ybXVsYSA9IHBhcnNlRm9ybXVsYTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UYWJsZSA9IHZvaWQgMDtcbmNvbnN0IGNhbGNfMSA9IHJlcXVpcmUoXCIuL2NhbGMvY2FsY1wiKTtcbmNvbnN0IGZvY3VzXzEgPSByZXF1aXJlKFwiLi9mb2N1c1wiKTtcbmNvbnN0IHBvaW50XzEgPSByZXF1aXJlKFwiLi9wb2ludFwiKTtcbmNvbnN0IHJhbmdlXzEgPSByZXF1aXJlKFwiLi9yYW5nZVwiKTtcbi8qKlxuICogQSBgVGFibGVgIG9iamVjdCByZXByZXNlbnRzIGEgdGFibGUuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgVGFibGUge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgYFRhYmxlYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm93cyAtIEFuIGFycmF5IG9mIHJvd3MgdGhhdCB0aGUgdGFibGUgY29udGFpbnMuXG4gICAgICogQHBhcmFtIGZvcm11bGFzIC0gQW4gYXJyYXkgb2YgZm9ybXVsYXMgYXR0YWNoZWQgdG8gdGhlIHRhYmxlLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHJvd3MpIHtcbiAgICAgICAgdGhpcy5fcm93cyA9IHJvd3Muc2xpY2UoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIHJvd3MgaW4gdGhlIHRhYmxlLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIG51bWJlciBvZiByb3dzLlxuICAgICAqL1xuICAgIGdldEhlaWdodCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd3MubGVuZ3RoO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSByb3dzIGluIHRoZSB0YWJsZS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSByb3dzLlxuICAgICAqL1xuICAgIGdldFdpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm93c1xuICAgICAgICAgICAgLm1hcCgocm93KSA9PiByb3cuZ2V0V2lkdGgoKSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKHgsIHkpID0+IE1hdGgubWF4KHgsIHkpLCAwKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgd2lkdGggb2YgdGhlIGhlYWRlciByb3cuXG4gICAgICogQXNzdW1lcyB0aGF0IGl0IGlzIGNhbGxlZCBvbiBhIHZhbGlkIHRhYmxlIHdpdGggYSBoZWFkZXIgcm93LlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIHdpZHRoIG9mIHRoZSBoZWFkZXIgcm93XG4gICAgICovXG4gICAgZ2V0SGVhZGVyV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3dzWzBdLmdldFdpZHRoKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHJvd3MgdGhhdCB0aGUgdGFibGUgY29udGFpbnMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB0aGUgcm93cy5cbiAgICAgKi9cbiAgICBnZXRSb3dzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm93cy5zbGljZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBkZWxpbWl0ZXIgcm93IG9mIHRoZSB0YWJsZS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSBkZWxpbWl0ZXIgcm93OyBgdW5kZWZpbmVkYCBpZiB0aGVyZSBpcyBub3QgZGVsaW1pdGVyIHJvdy5cbiAgICAgKi9cbiAgICBnZXREZWxpbWl0ZXJSb3coKSB7XG4gICAgICAgIGNvbnN0IHJvdyA9IHRoaXMuX3Jvd3NbMV07XG4gICAgICAgIGlmIChyb3cgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm93LmlzRGVsaW1pdGVyKCkpIHtcbiAgICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyBhIGNlbGwgYXQgdGhlIHNwZWNpZmllZCBpbmRleC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb3dJbmRleCAtIFJvdyBpbmRleCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0gY29sdW1uSW5kZXggLSBDb2x1bW4gaW5kZXggb2YgdGhlIGNlbGwuXG4gICAgICogQHJldHVybnMgVGhlIGNlbGwgYXQgdGhlIHNwZWNpZmllZCBpbmRleDsgYHVuZGVmaW5lZGAgaWYgbm90IGZvdW5kLlxuICAgICAqL1xuICAgIGdldENlbGxBdChyb3dJbmRleCwgY29sdW1uSW5kZXgpIHtcbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5fcm93c1tyb3dJbmRleF07XG4gICAgICAgIGlmIChyb3cgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm93LmdldENlbGxBdChjb2x1bW5JbmRleCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGNlbGwgYXQgdGhlIGZvY3VzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZvY3VzIC0gRm9jdXMgb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIFRoZSBjZWxsIGF0IHRoZSBmb2N1czsgYHVuZGVmaW5lZGAgaWYgbm90IGZvdW5kLlxuICAgICAqL1xuICAgIGdldEZvY3VzZWRDZWxsKGZvY3VzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENlbGxBdChmb2N1cy5yb3csIGZvY3VzLmNvbHVtbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIHRoZSB0YWJsZSB0byBhbiBhcnJheSBvZiB0ZXh0IHJlcHJlc2VudGF0aW9ucyBvZiB0aGUgcm93cy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHRleHQgcmVwcmVzZW50YXRpb25zIG9mIHRoZSByb3dzLlxuICAgICAqL1xuICAgIHRvTGluZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3dzLm1hcCgocm93KSA9PiByb3cudG9UZXh0KCkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgY2VsbCBpbiB0aGUgdGFibGUgdG8gYSBuZXcgdmFsdWUsIHJldHVybmluZyBhIGNvcHkgb2YgdGhlIHRhYmxlXG4gICAgICogd2l0aCB0aGUgbW9kaWZpZWQgdmFsdWUuXG4gICAgICpcbiAgICAgKiBJZiBhbiBpbnZhbGlkIGluZGV4IGlzIHByb3ZpZGVkLCB0aGUgdGFibGUgd2lsbCBiZSB1bmNoYW5nZWQuXG4gICAgICovXG4gICAgc2V0Q2VsbEF0KHJvd0luZGV4LCBjb2x1bW5JbmRleCwgdmFsdWUpIHtcbiAgICAgICAgY29uc3Qgcm93cyA9IHRoaXMuZ2V0Um93cygpOyAvLyBhIGNvcHlcbiAgICAgICAgcm93c1tyb3dJbmRleF0gPSByb3dzW3Jvd0luZGV4XS5zZXRDZWxsQXQoY29sdW1uSW5kZXgsIHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZShyb3dzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgYSBmb2N1cyBmcm9tIGEgcG9pbnQgaW4gdGhlIHRleHQgZWRpdG9yLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBvcyAtIEEgcG9pbnQgaW4gdGhlIHRleHQgZWRpdG9yLlxuICAgICAqIEBwYXJhbSByb3dPZmZzZXQgLSBUaGUgcm93IGluZGV4IHdoZXJlIHRoZSB0YWJsZSBzdGFydHMgaW4gdGhlIHRleHQgZWRpdG9yLlxuICAgICAqIEByZXR1cm5zIEEgZm9jdXMgb2JqZWN0IHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIHNwZWNpZmllZCBwb2ludDtcbiAgICAgKiBgdW5kZWZpbmVkYCBpZiB0aGUgcm93IGluZGV4IGlzIG91dCBvZiBib3VuZHMuXG4gICAgICovXG4gICAgZm9jdXNPZlBvc2l0aW9uKHBvcywgcm93T2Zmc2V0KSB7XG4gICAgICAgIGNvbnN0IHJvd0luZGV4ID0gcG9zLnJvdyAtIHJvd09mZnNldDtcbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5fcm93c1tyb3dJbmRleF07XG4gICAgICAgIGlmIChyb3cgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9zLmNvbHVtbiA8IHJvdy5tYXJnaW5MZWZ0Lmxlbmd0aCArIDEpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgZm9jdXNfMS5Gb2N1cyhyb3dJbmRleCwgLTEsIHBvcy5jb2x1bW4pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNlbGxXaWR0aHMgPSByb3cuZ2V0Q2VsbHMoKS5tYXAoKGNlbGwpID0+IGNlbGwucmF3Q29udGVudC5sZW5ndGgpO1xuICAgICAgICBsZXQgY29sdW1uUG9zID0gcm93Lm1hcmdpbkxlZnQubGVuZ3RoICsgMTsgLy8gbGVmdCBtYXJnaW4gKyBhIHBpcGVcbiAgICAgICAgbGV0IGNvbHVtbkluZGV4ID0gMDtcbiAgICAgICAgZm9yICg7IGNvbHVtbkluZGV4IDwgY2VsbFdpZHRocy5sZW5ndGg7IGNvbHVtbkluZGV4KyspIHtcbiAgICAgICAgICAgIGlmIChjb2x1bW5Qb3MgKyBjZWxsV2lkdGhzW2NvbHVtbkluZGV4XSArIDEgPiBwb3MuY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb2x1bW5Qb3MgKz0gY2VsbFdpZHRoc1tjb2x1bW5JbmRleF0gKyAxO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHBvcy5jb2x1bW4gLSBjb2x1bW5Qb3M7XG4gICAgICAgIHJldHVybiBuZXcgZm9jdXNfMS5Gb2N1cyhyb3dJbmRleCwgY29sdW1uSW5kZXgsIG9mZnNldCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIGEgcG9zaXRpb24gaW4gdGhlIHRleHQgZWRpdG9yIGZyb20gYSBmb2N1cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmb2N1cyAtIEEgZm9jdXMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSByb3dPZmZzZXQgLSBUaGUgcm93IGluZGV4IHdoZXJlIHRoZSB0YWJsZSBzdGFydHMgaW4gdGhlIHRleHQgZWRpdG9yLlxuICAgICAqIEByZXR1cm5zIEEgcG9zaXRpb24gaW4gdGhlIHRleHQgZWRpdG9yIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIGZvY3VzO1xuICAgICAqIGB1bmRlZmluZWRgIGlmIHRoZSBmb2N1c2VkIHJvdyAgaXMgb3V0IG9mIHRoZSB0YWJsZS5cbiAgICAgKi9cbiAgICBwb3NpdGlvbk9mRm9jdXMoZm9jdXMsIHJvd09mZnNldCkge1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLl9yb3dzW2ZvY3VzLnJvd107XG4gICAgICAgIGlmIChyb3cgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3dQb3MgPSBmb2N1cy5yb3cgKyByb3dPZmZzZXQ7XG4gICAgICAgIGlmIChmb2N1cy5jb2x1bW4gPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IHBvaW50XzEuUG9pbnQocm93UG9zLCBmb2N1cy5vZmZzZXQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNlbGxXaWR0aHMgPSByb3cuZ2V0Q2VsbHMoKS5tYXAoKGNlbGwpID0+IGNlbGwucmF3Q29udGVudC5sZW5ndGgpO1xuICAgICAgICBjb25zdCBtYXhJbmRleCA9IE1hdGgubWluKGZvY3VzLmNvbHVtbiwgY2VsbFdpZHRocy5sZW5ndGgpO1xuICAgICAgICBsZXQgY29sdW1uUG9zID0gcm93Lm1hcmdpbkxlZnQubGVuZ3RoICsgMTtcbiAgICAgICAgZm9yIChsZXQgY29sdW1uSW5kZXggPSAwOyBjb2x1bW5JbmRleCA8IG1heEluZGV4OyBjb2x1bW5JbmRleCsrKSB7XG4gICAgICAgICAgICBjb2x1bW5Qb3MgKz0gY2VsbFdpZHRoc1tjb2x1bW5JbmRleF0gKyAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgcG9pbnRfMS5Qb2ludChyb3dQb3MsIGNvbHVtblBvcyArIGZvY3VzLm9mZnNldCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIGEgc2VsZWN0aW9uIHJhbmdlIGZyb20gYSBmb2N1cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmb2N1cyAtIEEgZm9jdXMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSByb3dPZmZzZXQgLSBUaGUgcm93IGluZGV4IHdoZXJlIHRoZSB0YWJsZSBzdGFydHMgaW4gdGhlIHRleHQgZWRpdG9yLlxuICAgICAqIEByZXR1cm5zIEEgcmFuZ2UgdG8gYmUgc2VsZWN0ZWQgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgZm9jdXM7XG4gICAgICogYHVuZGVmaW5lZGAgaWYgdGhlIGZvY3VzIGRvZXMgbm90IHNwZWNpZnkgYW55IGNlbGwgb3IgdGhlIHNwZWNpZmllZCBjZWxsIGlzIGVtcHR5LlxuICAgICAqL1xuICAgIHNlbGVjdGlvblJhbmdlT2ZGb2N1cyhmb2N1cywgcm93T2Zmc2V0KSB7XG4gICAgICAgIGNvbnN0IHJvdyA9IHRoaXMuX3Jvd3NbZm9jdXMucm93XTtcbiAgICAgICAgaWYgKHJvdyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNlbGwgPSByb3cuZ2V0Q2VsbEF0KGZvY3VzLmNvbHVtbik7XG4gICAgICAgIGlmIChjZWxsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNlbGwuY29udGVudCA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm93UG9zID0gZm9jdXMucm93ICsgcm93T2Zmc2V0O1xuICAgICAgICBjb25zdCBjZWxsV2lkdGhzID0gcm93LmdldENlbGxzKCkubWFwKChjZWxsKSA9PiBjZWxsLnJhd0NvbnRlbnQubGVuZ3RoKTtcbiAgICAgICAgbGV0IGNvbHVtblBvcyA9IHJvdy5tYXJnaW5MZWZ0Lmxlbmd0aCArIDE7XG4gICAgICAgIGZvciAobGV0IGNvbHVtbkluZGV4ID0gMDsgY29sdW1uSW5kZXggPCBmb2N1cy5jb2x1bW47IGNvbHVtbkluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbHVtblBvcyArPSBjZWxsV2lkdGhzW2NvbHVtbkluZGV4XSArIDE7XG4gICAgICAgIH1cbiAgICAgICAgY29sdW1uUG9zICs9IGNlbGwucGFkZGluZ0xlZnQ7XG4gICAgICAgIHJldHVybiBuZXcgcmFuZ2VfMS5SYW5nZShuZXcgcG9pbnRfMS5Qb2ludChyb3dQb3MsIGNvbHVtblBvcyksIG5ldyBwb2ludF8xLlBvaW50KHJvd1BvcywgY29sdW1uUG9zICsgY2VsbC5jb250ZW50Lmxlbmd0aCkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFdmFsdWF0ZSB0aGUgZm9ybXVsYSwgYXBwbHlpbmcgdGhlIHJlc3VsdHMgdG8gdGhpcyB0YWJsZSBhbmQgcmV0dXJuaW5nIHRoZVxuICAgICAqIGNoYW5nZXMgYXMgYSBuZXcgdGFibGUuXG4gICAgICovXG4gICAgYXBwbHlGb3JtdWxhcyhmb3JtdWxhTGluZXMpIHtcbiAgICAgICAgcmV0dXJuIGNhbGNfMS5wYXJzZUFuZEFwcGx5KGZvcm11bGFMaW5lcywgdGhpcyk7XG4gICAgfVxufVxuZXhwb3J0cy5UYWJsZSA9IFRhYmxlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlYWRUYWJsZSA9IGV4cG9ydHMuX21hcmdpblJlZ2V4ID0gZXhwb3J0cy5tYXJnaW5SZWdleFNyYyA9IGV4cG9ydHMuX3JlYWRSb3cgPSBleHBvcnRzLl9zcGxpdENlbGxzID0gdm9pZCAwO1xuY29uc3QgdGFibGVfMSA9IHJlcXVpcmUoXCIuL3RhYmxlXCIpO1xuY29uc3QgdGFibGVfY2VsbF8xID0gcmVxdWlyZShcIi4vdGFibGUtY2VsbFwiKTtcbmNvbnN0IHRhYmxlX3Jvd18xID0gcmVxdWlyZShcIi4vdGFibGUtcm93XCIpO1xuLyoqXG4gKiBTcGxpdHMgYSB0ZXh0IGludG8gY2VsbHMuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgX3NwbGl0Q2VsbHMgPSAodGV4dCkgPT4ge1xuICAgIGNvbnN0IGNlbGxzID0gW107XG4gICAgbGV0IGJ1ZiA9ICcnO1xuICAgIGxldCByZXN0ID0gdGV4dDtcbiAgICB3aGlsZSAocmVzdCAhPT0gJycpIHtcbiAgICAgICAgc3dpdGNoIChyZXN0WzBdKSB7XG4gICAgICAgICAgICBjYXNlICdgJzpcbiAgICAgICAgICAgICAgICAvLyByZWFkIGNvZGUgc3BhblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRNYXRjaCA9IHJlc3QubWF0Y2goL15gKi8pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRNYXRjaCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FzZSBzdGF0ZW1lbnQgZW5zdXJlcyBmaXJzdCBjaGFyIGlzIGEgYCBhbmQgd2UgY2Fubm90IGdldCBoZXJlLlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBqdXN0IHNhdGlzZmllcyB0aGUgY29tcGlsZXIuXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IHN0YXJ0TWF0Y2hbMF07XG4gICAgICAgICAgICAgICAgICAgIGxldCBidWYxID0gc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCByZXN0MSA9IHJlc3Quc3Vic3RyKHN0YXJ0Lmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjbG9zZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHJlc3QxICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3QxWzBdID09PSAnYCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRNYXRjaCA9IHJlc3QxLm1hdGNoKC9eYCovKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5kTWF0Y2ggPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FzZSBzdGF0ZW1lbnQgZW5zdXJlcyBmaXJzdCBjaGFyIGlzIGEgYCBhbmQgd2UgY2Fubm90IGdldCBoZXJlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGp1c3Qgc2F0aXNmaWVzIHRoZSBjb21waWxlci5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IGVuZE1hdGNoWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZjEgKz0gZW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3QxID0gcmVzdDEuc3Vic3RyKGVuZC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbmQubGVuZ3RoID09PSBzdGFydC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmMSArPSByZXN0MVswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0MSA9IHJlc3QxLnN1YnN0cigxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWYgKz0gYnVmMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3QgPSByZXN0MTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiArPSAnYCc7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN0ID0gcmVzdC5zdWJzdHIoMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdcXFxcJzpcbiAgICAgICAgICAgICAgICAvLyBlc2NhcGUgbmV4dCBjaGFyYWN0ZXJcbiAgICAgICAgICAgICAgICBpZiAocmVzdC5sZW5ndGggPj0gMikge1xuICAgICAgICAgICAgICAgICAgICBidWYgKz0gcmVzdC5zdWJzdHIoMCwgMik7XG4gICAgICAgICAgICAgICAgICAgIHJlc3QgPSByZXN0LnN1YnN0cigyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1ZiArPSAnXFxcXCc7XG4gICAgICAgICAgICAgICAgICAgIHJlc3QgPSByZXN0LnN1YnN0cigxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdbJzpcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSBlbmNvdW50ZXIgYSByZW5hbWVkIFtbbGlua3xMaW5rXV0sIGF1dG9tYXRpY2FsbHkgZXNjYXBlIHRoZSBwaXBlXG4gICAgICAgICAgICAgICAgYnVmICs9ICdbJztcbiAgICAgICAgICAgICAgICByZXN0ID0gcmVzdC5zdWJzdHIoMSk7XG4gICAgICAgICAgICAgICAgaWYgKC9cXFtbXlxcXFx8XFxdXStcXHxbXnxcXF1dK11dLy50ZXN0KHJlc3QpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkeCA9IHJlc3QuaW5kZXhPZignfCcpO1xuICAgICAgICAgICAgICAgICAgICBidWYgKz0gcmVzdC5zbGljZSgwLCBpZHgpO1xuICAgICAgICAgICAgICAgICAgICBidWYgKz0gJ1xcXFx8JztcbiAgICAgICAgICAgICAgICAgICAgcmVzdCA9IHJlc3Quc3Vic3RyKGlkeCArIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3wnOlxuICAgICAgICAgICAgICAgIC8vIGZsdXNoIGJ1ZmZlclxuICAgICAgICAgICAgICAgIGNlbGxzLnB1c2goYnVmKTtcbiAgICAgICAgICAgICAgICBidWYgPSAnJztcbiAgICAgICAgICAgICAgICByZXN0ID0gcmVzdC5zdWJzdHIoMSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJ1ZiArPSByZXN0WzBdO1xuICAgICAgICAgICAgICAgIHJlc3QgPSByZXN0LnN1YnN0cigxKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjZWxscy5wdXNoKGJ1Zik7XG4gICAgcmV0dXJuIGNlbGxzO1xufTtcbmV4cG9ydHMuX3NwbGl0Q2VsbHMgPSBfc3BsaXRDZWxscztcbi8qKlxuICogUmVhZHMgYSB0YWJsZSByb3cuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB0ZXh0IC0gQSB0ZXh0LlxuICogQHBhcmFtIFtsZWZ0TWFyZ2luUmVnZXg9L15cXHMqJC9dIC0gQSByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0IHRoYXQgbWF0Y2hlcyBsZWZ0IG1hcmdpbi5cbiAqL1xuY29uc3QgX3JlYWRSb3cgPSAodGV4dCwgbGVmdE1hcmdpblJlZ2V4ID0gL15cXHMqJC8pID0+IHtcbiAgICBsZXQgY2VsbHMgPSBleHBvcnRzLl9zcGxpdENlbGxzKHRleHQpO1xuICAgIGxldCBtYXJnaW5MZWZ0O1xuICAgIGlmIChjZWxscy5sZW5ndGggPiAwICYmIGxlZnRNYXJnaW5SZWdleC50ZXN0KGNlbGxzWzBdKSkge1xuICAgICAgICBtYXJnaW5MZWZ0ID0gY2VsbHNbMF07XG4gICAgICAgIGNlbGxzID0gY2VsbHMuc2xpY2UoMSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBtYXJnaW5MZWZ0ID0gJyc7XG4gICAgfVxuICAgIGxldCBtYXJnaW5SaWdodDtcbiAgICBpZiAoY2VsbHMubGVuZ3RoID4gMSAmJiAvXlxccyokLy50ZXN0KGNlbGxzW2NlbGxzLmxlbmd0aCAtIDFdKSkge1xuICAgICAgICBtYXJnaW5SaWdodCA9IGNlbGxzW2NlbGxzLmxlbmd0aCAtIDFdO1xuICAgICAgICBjZWxscyA9IGNlbGxzLnNsaWNlKDAsIGNlbGxzLmxlbmd0aCAtIDEpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgbWFyZ2luUmlnaHQgPSAnJztcbiAgICB9XG4gICAgcmV0dXJuIG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhjZWxscy5tYXAoKGNlbGwpID0+IG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKGNlbGwpKSwgbWFyZ2luTGVmdCwgbWFyZ2luUmlnaHQpO1xufTtcbmV4cG9ydHMuX3JlYWRSb3cgPSBfcmVhZFJvdztcbi8qKlxuICogQ3JlYXRlcyBhIHJlZ2V4IHNvdXJjZSBzdHJpbmcgb2YgbWFyZ2luIGNoYXJhY3RlciBjbGFzcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIGNoYXJzIC0gQSBzZXQgb2YgYWRkaXRpb25hbCBtYXJnaW4gY2hhcmFjdGVycy5cbiAqIEEgcGlwZSBgfGAsIGEgYmFja3NsYXNoIGBcXGAsIGFuZCBhIGJhY2txdW90ZSB3aWxsIGJlIGlnbm9yZWQuXG4gKiBAcmV0dXJuIEEgcmVnZXggc291cmNlIHN0cmluZy5cbiAqL1xuY29uc3QgbWFyZ2luUmVnZXhTcmMgPSAoY2hhcnMpID0+IHtcbiAgICBsZXQgY3MgPSAnJztcbiAgICAvLyBmb3IgKGNvbnN0IGMgY2hhcnMudmFsdWVzKCkpIHtcbiAgICBjaGFycy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgIGlmIChjICE9PSAnfCcgJiYgYyAhPT0gJ1xcXFwnICYmIGMgIT09ICdgJykge1xuICAgICAgICAgICAgY3MgKz0gYFxcXFx1eyR7Yy5jb2RlUG9pbnRBdCgwKS50b1N0cmluZygxNil9fWA7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYFtcXFxccyR7Y3N9XSpgO1xufTtcbmV4cG9ydHMubWFyZ2luUmVnZXhTcmMgPSBtYXJnaW5SZWdleFNyYztcbi8qKlxuICogQ3JlYXRlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBvYmplY3QgdGhhdCBtYXRjaGVzIG1hcmdpbiBvZiB0YWJsZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBjaGFycyAtIEEgc2V0IG9mIGFkZGl0aW9uYWwgbWFyZ2luIGNoYXJhY3RlcnMuXG4gKiBBIHBpcGUgYHxgLCBhIGJhY2tzbGFzaCBgXFxgLCBhbmQgYSBiYWNrcXVvdGUgd2lsbCBiZSBpZ25vcmVkLlxuICogQHJldHVybiBBbiByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0IHRoYXQgbWF0Y2hlcyBtYXJnaW4gb2YgdGFibGVzLlxuICovXG5jb25zdCBfbWFyZ2luUmVnZXggPSAoY2hhcnMpID0+IG5ldyBSZWdFeHAoYF4ke2V4cG9ydHMubWFyZ2luUmVnZXhTcmMoY2hhcnMpfSRgLCAndScpO1xuZXhwb3J0cy5fbWFyZ2luUmVnZXggPSBfbWFyZ2luUmVnZXg7XG4vKipcbiAqIFJlYWRzIGEgdGFibGUgZnJvbSBsaW5lcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIGxpbmVzIC0gQW4gYXJyYXkgb2YgdGV4dHMsIGVhY2ggdGV4dCByZXByZXNlbnRzIGEgcm93LlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3QgY29udGFpbmluZyBvcHRpb25zIGZvciBwYXJzaW5nLlxuICogQHJldHVybnMgVGhlIHRhYmxlIHJlYWQgZnJvbSB0aGUgbGluZXMuXG4gKi9cbmNvbnN0IHJlYWRUYWJsZSA9IChsaW5lcywgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGxlZnRNYXJnaW5SZWdleCA9IGV4cG9ydHMuX21hcmdpblJlZ2V4KG9wdGlvbnMubGVmdE1hcmdpbkNoYXJzKTtcbiAgICByZXR1cm4gbmV3IHRhYmxlXzEuVGFibGUobGluZXMubWFwKChsaW5lKSA9PiBleHBvcnRzLl9yZWFkUm93KGxpbmUsIGxlZnRNYXJnaW5SZWdleCkpKTtcbn07XG5leHBvcnRzLnJlYWRUYWJsZSA9IHJlYWRUYWJsZTtcbiIsIi8qXHJcbiAqIEdlbmVyYXRlZCBieSBzY3JpcHQuIERPIE5PVCBFRElUIVxyXG4gKlxyXG4gKiBUaGUgcGFydCBiZXR3ZWVuIEJFR0lOIGFuZCBFTkQgaXMgZGVyaXZlZCBmcm9tIFVuaWNvZGUgRGF0YSBGaWxlc1xyXG4gKiBhbmQgcHJvdmlkZWQgdW5kZXIgVW5pY29kZSwgSW5jLiBMaWNlbnNlIEFncmVlbWVudC5cclxuICovXHJcbi8qIEJFR0lOICovXHJcbnZhciBkZWZzID0gW1xyXG4gICAgWzAsIDMxLCBcIk5cIl0sXHJcbiAgICBbMzIsIDEyNiwgXCJOYVwiXSxcclxuICAgIFsxMjcsIDE2MCwgXCJOXCJdLFxyXG4gICAgWzE2MSwgMTYxLCBcIkFcIl0sXHJcbiAgICBbMTYyLCAxNjMsIFwiTmFcIl0sXHJcbiAgICBbMTY0LCAxNjQsIFwiQVwiXSxcclxuICAgIFsxNjUsIDE2NiwgXCJOYVwiXSxcclxuICAgIFsxNjcsIDE2OCwgXCJBXCJdLFxyXG4gICAgWzE2OSwgMTY5LCBcIk5cIl0sXHJcbiAgICBbMTcwLCAxNzAsIFwiQVwiXSxcclxuICAgIFsxNzEsIDE3MSwgXCJOXCJdLFxyXG4gICAgWzE3MiwgMTcyLCBcIk5hXCJdLFxyXG4gICAgWzE3MywgMTc0LCBcIkFcIl0sXHJcbiAgICBbMTc1LCAxNzUsIFwiTmFcIl0sXHJcbiAgICBbMTc2LCAxODAsIFwiQVwiXSxcclxuICAgIFsxODEsIDE4MSwgXCJOXCJdLFxyXG4gICAgWzE4MiwgMTg2LCBcIkFcIl0sXHJcbiAgICBbMTg3LCAxODcsIFwiTlwiXSxcclxuICAgIFsxODgsIDE5MSwgXCJBXCJdLFxyXG4gICAgWzE5MiwgMTk3LCBcIk5cIl0sXHJcbiAgICBbMTk4LCAxOTgsIFwiQVwiXSxcclxuICAgIFsxOTksIDIwNywgXCJOXCJdLFxyXG4gICAgWzIwOCwgMjA4LCBcIkFcIl0sXHJcbiAgICBbMjA5LCAyMTQsIFwiTlwiXSxcclxuICAgIFsyMTUsIDIxNiwgXCJBXCJdLFxyXG4gICAgWzIxNywgMjIxLCBcIk5cIl0sXHJcbiAgICBbMjIyLCAyMjUsIFwiQVwiXSxcclxuICAgIFsyMjYsIDIyOSwgXCJOXCJdLFxyXG4gICAgWzIzMCwgMjMwLCBcIkFcIl0sXHJcbiAgICBbMjMxLCAyMzEsIFwiTlwiXSxcclxuICAgIFsyMzIsIDIzNCwgXCJBXCJdLFxyXG4gICAgWzIzNSwgMjM1LCBcIk5cIl0sXHJcbiAgICBbMjM2LCAyMzcsIFwiQVwiXSxcclxuICAgIFsyMzgsIDIzOSwgXCJOXCJdLFxyXG4gICAgWzI0MCwgMjQwLCBcIkFcIl0sXHJcbiAgICBbMjQxLCAyNDEsIFwiTlwiXSxcclxuICAgIFsyNDIsIDI0MywgXCJBXCJdLFxyXG4gICAgWzI0NCwgMjQ2LCBcIk5cIl0sXHJcbiAgICBbMjQ3LCAyNTAsIFwiQVwiXSxcclxuICAgIFsyNTEsIDI1MSwgXCJOXCJdLFxyXG4gICAgWzI1MiwgMjUyLCBcIkFcIl0sXHJcbiAgICBbMjUzLCAyNTMsIFwiTlwiXSxcclxuICAgIFsyNTQsIDI1NCwgXCJBXCJdLFxyXG4gICAgWzI1NSwgMjU2LCBcIk5cIl0sXHJcbiAgICBbMjU3LCAyNTcsIFwiQVwiXSxcclxuICAgIFsyNTgsIDI3MiwgXCJOXCJdLFxyXG4gICAgWzI3MywgMjczLCBcIkFcIl0sXHJcbiAgICBbMjc0LCAyNzQsIFwiTlwiXSxcclxuICAgIFsyNzUsIDI3NSwgXCJBXCJdLFxyXG4gICAgWzI3NiwgMjgyLCBcIk5cIl0sXHJcbiAgICBbMjgzLCAyODMsIFwiQVwiXSxcclxuICAgIFsyODQsIDI5MywgXCJOXCJdLFxyXG4gICAgWzI5NCwgMjk1LCBcIkFcIl0sXHJcbiAgICBbMjk2LCAyOTgsIFwiTlwiXSxcclxuICAgIFsyOTksIDI5OSwgXCJBXCJdLFxyXG4gICAgWzMwMCwgMzA0LCBcIk5cIl0sXHJcbiAgICBbMzA1LCAzMDcsIFwiQVwiXSxcclxuICAgIFszMDgsIDMxMSwgXCJOXCJdLFxyXG4gICAgWzMxMiwgMzEyLCBcIkFcIl0sXHJcbiAgICBbMzEzLCAzMTgsIFwiTlwiXSxcclxuICAgIFszMTksIDMyMiwgXCJBXCJdLFxyXG4gICAgWzMyMywgMzIzLCBcIk5cIl0sXHJcbiAgICBbMzI0LCAzMjQsIFwiQVwiXSxcclxuICAgIFszMjUsIDMyNywgXCJOXCJdLFxyXG4gICAgWzMyOCwgMzMxLCBcIkFcIl0sXHJcbiAgICBbMzMyLCAzMzIsIFwiTlwiXSxcclxuICAgIFszMzMsIDMzMywgXCJBXCJdLFxyXG4gICAgWzMzNCwgMzM3LCBcIk5cIl0sXHJcbiAgICBbMzM4LCAzMzksIFwiQVwiXSxcclxuICAgIFszNDAsIDM1NywgXCJOXCJdLFxyXG4gICAgWzM1OCwgMzU5LCBcIkFcIl0sXHJcbiAgICBbMzYwLCAzNjIsIFwiTlwiXSxcclxuICAgIFszNjMsIDM2MywgXCJBXCJdLFxyXG4gICAgWzM2NCwgNDYxLCBcIk5cIl0sXHJcbiAgICBbNDYyLCA0NjIsIFwiQVwiXSxcclxuICAgIFs0NjMsIDQ2MywgXCJOXCJdLFxyXG4gICAgWzQ2NCwgNDY0LCBcIkFcIl0sXHJcbiAgICBbNDY1LCA0NjUsIFwiTlwiXSxcclxuICAgIFs0NjYsIDQ2NiwgXCJBXCJdLFxyXG4gICAgWzQ2NywgNDY3LCBcIk5cIl0sXHJcbiAgICBbNDY4LCA0NjgsIFwiQVwiXSxcclxuICAgIFs0NjksIDQ2OSwgXCJOXCJdLFxyXG4gICAgWzQ3MCwgNDcwLCBcIkFcIl0sXHJcbiAgICBbNDcxLCA0NzEsIFwiTlwiXSxcclxuICAgIFs0NzIsIDQ3MiwgXCJBXCJdLFxyXG4gICAgWzQ3MywgNDczLCBcIk5cIl0sXHJcbiAgICBbNDc0LCA0NzQsIFwiQVwiXSxcclxuICAgIFs0NzUsIDQ3NSwgXCJOXCJdLFxyXG4gICAgWzQ3NiwgNDc2LCBcIkFcIl0sXHJcbiAgICBbNDc3LCA1OTIsIFwiTlwiXSxcclxuICAgIFs1OTMsIDU5MywgXCJBXCJdLFxyXG4gICAgWzU5NCwgNjA4LCBcIk5cIl0sXHJcbiAgICBbNjA5LCA2MDksIFwiQVwiXSxcclxuICAgIFs2MTAsIDcwNywgXCJOXCJdLFxyXG4gICAgWzcwOCwgNzA4LCBcIkFcIl0sXHJcbiAgICBbNzA5LCA3MTAsIFwiTlwiXSxcclxuICAgIFs3MTEsIDcxMSwgXCJBXCJdLFxyXG4gICAgWzcxMiwgNzEyLCBcIk5cIl0sXHJcbiAgICBbNzEzLCA3MTUsIFwiQVwiXSxcclxuICAgIFs3MTYsIDcxNiwgXCJOXCJdLFxyXG4gICAgWzcxNywgNzE3LCBcIkFcIl0sXHJcbiAgICBbNzE4LCA3MTksIFwiTlwiXSxcclxuICAgIFs3MjAsIDcyMCwgXCJBXCJdLFxyXG4gICAgWzcyMSwgNzI3LCBcIk5cIl0sXHJcbiAgICBbNzI4LCA3MzEsIFwiQVwiXSxcclxuICAgIFs3MzIsIDczMiwgXCJOXCJdLFxyXG4gICAgWzczMywgNzMzLCBcIkFcIl0sXHJcbiAgICBbNzM0LCA3MzQsIFwiTlwiXSxcclxuICAgIFs3MzUsIDczNSwgXCJBXCJdLFxyXG4gICAgWzczNiwgNzY3LCBcIk5cIl0sXHJcbiAgICBbNzY4LCA4NzksIFwiQVwiXSxcclxuICAgIFs4ODAsIDkxMiwgXCJOXCJdLFxyXG4gICAgWzkxMywgOTI5LCBcIkFcIl0sXHJcbiAgICBbOTMwLCA5MzAsIFwiTlwiXSxcclxuICAgIFs5MzEsIDkzNywgXCJBXCJdLFxyXG4gICAgWzkzOCwgOTQ0LCBcIk5cIl0sXHJcbiAgICBbOTQ1LCA5NjEsIFwiQVwiXSxcclxuICAgIFs5NjIsIDk2MiwgXCJOXCJdLFxyXG4gICAgWzk2MywgOTY5LCBcIkFcIl0sXHJcbiAgICBbOTcwLCAxMDI0LCBcIk5cIl0sXHJcbiAgICBbMTAyNSwgMTAyNSwgXCJBXCJdLFxyXG4gICAgWzEwMjYsIDEwMzksIFwiTlwiXSxcclxuICAgIFsxMDQwLCAxMTAzLCBcIkFcIl0sXHJcbiAgICBbMTEwNCwgMTEwNCwgXCJOXCJdLFxyXG4gICAgWzExMDUsIDExMDUsIFwiQVwiXSxcclxuICAgIFsxMTA2LCA0MzUxLCBcIk5cIl0sXHJcbiAgICBbNDM1MiwgNDQ0NywgXCJXXCJdLFxyXG4gICAgWzQ0NDgsIDgyMDcsIFwiTlwiXSxcclxuICAgIFs4MjA4LCA4MjA4LCBcIkFcIl0sXHJcbiAgICBbODIwOSwgODIxMCwgXCJOXCJdLFxyXG4gICAgWzgyMTEsIDgyMTQsIFwiQVwiXSxcclxuICAgIFs4MjE1LCA4MjE1LCBcIk5cIl0sXHJcbiAgICBbODIxNiwgODIxNywgXCJBXCJdLFxyXG4gICAgWzgyMTgsIDgyMTksIFwiTlwiXSxcclxuICAgIFs4MjIwLCA4MjIxLCBcIkFcIl0sXHJcbiAgICBbODIyMiwgODIyMywgXCJOXCJdLFxyXG4gICAgWzgyMjQsIDgyMjYsIFwiQVwiXSxcclxuICAgIFs4MjI3LCA4MjI3LCBcIk5cIl0sXHJcbiAgICBbODIyOCwgODIzMSwgXCJBXCJdLFxyXG4gICAgWzgyMzIsIDgyMzksIFwiTlwiXSxcclxuICAgIFs4MjQwLCA4MjQwLCBcIkFcIl0sXHJcbiAgICBbODI0MSwgODI0MSwgXCJOXCJdLFxyXG4gICAgWzgyNDIsIDgyNDMsIFwiQVwiXSxcclxuICAgIFs4MjQ0LCA4MjQ0LCBcIk5cIl0sXHJcbiAgICBbODI0NSwgODI0NSwgXCJBXCJdLFxyXG4gICAgWzgyNDYsIDgyNTAsIFwiTlwiXSxcclxuICAgIFs4MjUxLCA4MjUxLCBcIkFcIl0sXHJcbiAgICBbODI1MiwgODI1MywgXCJOXCJdLFxyXG4gICAgWzgyNTQsIDgyNTQsIFwiQVwiXSxcclxuICAgIFs4MjU1LCA4MzA3LCBcIk5cIl0sXHJcbiAgICBbODMwOCwgODMwOCwgXCJBXCJdLFxyXG4gICAgWzgzMDksIDgzMTgsIFwiTlwiXSxcclxuICAgIFs4MzE5LCA4MzE5LCBcIkFcIl0sXHJcbiAgICBbODMyMCwgODMyMCwgXCJOXCJdLFxyXG4gICAgWzgzMjEsIDgzMjQsIFwiQVwiXSxcclxuICAgIFs4MzI1LCA4MzYwLCBcIk5cIl0sXHJcbiAgICBbODM2MSwgODM2MSwgXCJIXCJdLFxyXG4gICAgWzgzNjIsIDgzNjMsIFwiTlwiXSxcclxuICAgIFs4MzY0LCA4MzY0LCBcIkFcIl0sXHJcbiAgICBbODM2NSwgODQ1MCwgXCJOXCJdLFxyXG4gICAgWzg0NTEsIDg0NTEsIFwiQVwiXSxcclxuICAgIFs4NDUyLCA4NDUyLCBcIk5cIl0sXHJcbiAgICBbODQ1MywgODQ1MywgXCJBXCJdLFxyXG4gICAgWzg0NTQsIDg0NTYsIFwiTlwiXSxcclxuICAgIFs4NDU3LCA4NDU3LCBcIkFcIl0sXHJcbiAgICBbODQ1OCwgODQ2NiwgXCJOXCJdLFxyXG4gICAgWzg0NjcsIDg0NjcsIFwiQVwiXSxcclxuICAgIFs4NDY4LCA4NDY5LCBcIk5cIl0sXHJcbiAgICBbODQ3MCwgODQ3MCwgXCJBXCJdLFxyXG4gICAgWzg0NzEsIDg0ODAsIFwiTlwiXSxcclxuICAgIFs4NDgxLCA4NDgyLCBcIkFcIl0sXHJcbiAgICBbODQ4MywgODQ4NSwgXCJOXCJdLFxyXG4gICAgWzg0ODYsIDg0ODYsIFwiQVwiXSxcclxuICAgIFs4NDg3LCA4NDkwLCBcIk5cIl0sXHJcbiAgICBbODQ5MSwgODQ5MSwgXCJBXCJdLFxyXG4gICAgWzg0OTIsIDg1MzAsIFwiTlwiXSxcclxuICAgIFs4NTMxLCA4NTMyLCBcIkFcIl0sXHJcbiAgICBbODUzMywgODUzOCwgXCJOXCJdLFxyXG4gICAgWzg1MzksIDg1NDIsIFwiQVwiXSxcclxuICAgIFs4NTQzLCA4NTQzLCBcIk5cIl0sXHJcbiAgICBbODU0NCwgODU1NSwgXCJBXCJdLFxyXG4gICAgWzg1NTYsIDg1NTksIFwiTlwiXSxcclxuICAgIFs4NTYwLCA4NTY5LCBcIkFcIl0sXHJcbiAgICBbODU3MCwgODU4NCwgXCJOXCJdLFxyXG4gICAgWzg1ODUsIDg1ODUsIFwiQVwiXSxcclxuICAgIFs4NTg2LCA4NTkxLCBcIk5cIl0sXHJcbiAgICBbODU5MiwgODYwMSwgXCJBXCJdLFxyXG4gICAgWzg2MDIsIDg2MzEsIFwiTlwiXSxcclxuICAgIFs4NjMyLCA4NjMzLCBcIkFcIl0sXHJcbiAgICBbODYzNCwgODY1NywgXCJOXCJdLFxyXG4gICAgWzg2NTgsIDg2NTgsIFwiQVwiXSxcclxuICAgIFs4NjU5LCA4NjU5LCBcIk5cIl0sXHJcbiAgICBbODY2MCwgODY2MCwgXCJBXCJdLFxyXG4gICAgWzg2NjEsIDg2NzgsIFwiTlwiXSxcclxuICAgIFs4Njc5LCA4Njc5LCBcIkFcIl0sXHJcbiAgICBbODY4MCwgODcwMywgXCJOXCJdLFxyXG4gICAgWzg3MDQsIDg3MDQsIFwiQVwiXSxcclxuICAgIFs4NzA1LCA4NzA1LCBcIk5cIl0sXHJcbiAgICBbODcwNiwgODcwNywgXCJBXCJdLFxyXG4gICAgWzg3MDgsIDg3MTAsIFwiTlwiXSxcclxuICAgIFs4NzExLCA4NzEyLCBcIkFcIl0sXHJcbiAgICBbODcxMywgODcxNCwgXCJOXCJdLFxyXG4gICAgWzg3MTUsIDg3MTUsIFwiQVwiXSxcclxuICAgIFs4NzE2LCA4NzE4LCBcIk5cIl0sXHJcbiAgICBbODcxOSwgODcxOSwgXCJBXCJdLFxyXG4gICAgWzg3MjAsIDg3MjAsIFwiTlwiXSxcclxuICAgIFs4NzIxLCA4NzIxLCBcIkFcIl0sXHJcbiAgICBbODcyMiwgODcyNCwgXCJOXCJdLFxyXG4gICAgWzg3MjUsIDg3MjUsIFwiQVwiXSxcclxuICAgIFs4NzI2LCA4NzI5LCBcIk5cIl0sXHJcbiAgICBbODczMCwgODczMCwgXCJBXCJdLFxyXG4gICAgWzg3MzEsIDg3MzIsIFwiTlwiXSxcclxuICAgIFs4NzMzLCA4NzM2LCBcIkFcIl0sXHJcbiAgICBbODczNywgODczOCwgXCJOXCJdLFxyXG4gICAgWzg3MzksIDg3MzksIFwiQVwiXSxcclxuICAgIFs4NzQwLCA4NzQwLCBcIk5cIl0sXHJcbiAgICBbODc0MSwgODc0MSwgXCJBXCJdLFxyXG4gICAgWzg3NDIsIDg3NDIsIFwiTlwiXSxcclxuICAgIFs4NzQzLCA4NzQ4LCBcIkFcIl0sXHJcbiAgICBbODc0OSwgODc0OSwgXCJOXCJdLFxyXG4gICAgWzg3NTAsIDg3NTAsIFwiQVwiXSxcclxuICAgIFs4NzUxLCA4NzU1LCBcIk5cIl0sXHJcbiAgICBbODc1NiwgODc1OSwgXCJBXCJdLFxyXG4gICAgWzg3NjAsIDg3NjMsIFwiTlwiXSxcclxuICAgIFs4NzY0LCA4NzY1LCBcIkFcIl0sXHJcbiAgICBbODc2NiwgODc3NSwgXCJOXCJdLFxyXG4gICAgWzg3NzYsIDg3NzYsIFwiQVwiXSxcclxuICAgIFs4Nzc3LCA4Nzc5LCBcIk5cIl0sXHJcbiAgICBbODc4MCwgODc4MCwgXCJBXCJdLFxyXG4gICAgWzg3ODEsIDg3ODUsIFwiTlwiXSxcclxuICAgIFs4Nzg2LCA4Nzg2LCBcIkFcIl0sXHJcbiAgICBbODc4NywgODc5OSwgXCJOXCJdLFxyXG4gICAgWzg4MDAsIDg4MDEsIFwiQVwiXSxcclxuICAgIFs4ODAyLCA4ODAzLCBcIk5cIl0sXHJcbiAgICBbODgwNCwgODgwNywgXCJBXCJdLFxyXG4gICAgWzg4MDgsIDg4MDksIFwiTlwiXSxcclxuICAgIFs4ODEwLCA4ODExLCBcIkFcIl0sXHJcbiAgICBbODgxMiwgODgxMywgXCJOXCJdLFxyXG4gICAgWzg4MTQsIDg4MTUsIFwiQVwiXSxcclxuICAgIFs4ODE2LCA4ODMzLCBcIk5cIl0sXHJcbiAgICBbODgzNCwgODgzNSwgXCJBXCJdLFxyXG4gICAgWzg4MzYsIDg4MzcsIFwiTlwiXSxcclxuICAgIFs4ODM4LCA4ODM5LCBcIkFcIl0sXHJcbiAgICBbODg0MCwgODg1MiwgXCJOXCJdLFxyXG4gICAgWzg4NTMsIDg4NTMsIFwiQVwiXSxcclxuICAgIFs4ODU0LCA4ODU2LCBcIk5cIl0sXHJcbiAgICBbODg1NywgODg1NywgXCJBXCJdLFxyXG4gICAgWzg4NTgsIDg4NjgsIFwiTlwiXSxcclxuICAgIFs4ODY5LCA4ODY5LCBcIkFcIl0sXHJcbiAgICBbODg3MCwgODg5NCwgXCJOXCJdLFxyXG4gICAgWzg4OTUsIDg4OTUsIFwiQVwiXSxcclxuICAgIFs4ODk2LCA4OTc3LCBcIk5cIl0sXHJcbiAgICBbODk3OCwgODk3OCwgXCJBXCJdLFxyXG4gICAgWzg5NzksIDg5ODUsIFwiTlwiXSxcclxuICAgIFs4OTg2LCA4OTg3LCBcIldcIl0sXHJcbiAgICBbODk4OCwgOTAwMCwgXCJOXCJdLFxyXG4gICAgWzkwMDEsIDkwMDIsIFwiV1wiXSxcclxuICAgIFs5MDAzLCA5MTkyLCBcIk5cIl0sXHJcbiAgICBbOTE5MywgOTE5NiwgXCJXXCJdLFxyXG4gICAgWzkxOTcsIDkxOTksIFwiTlwiXSxcclxuICAgIFs5MjAwLCA5MjAwLCBcIldcIl0sXHJcbiAgICBbOTIwMSwgOTIwMiwgXCJOXCJdLFxyXG4gICAgWzkyMDMsIDkyMDMsIFwiV1wiXSxcclxuICAgIFs5MjA0LCA5MzExLCBcIk5cIl0sXHJcbiAgICBbOTMxMiwgOTQ0OSwgXCJBXCJdLFxyXG4gICAgWzk0NTAsIDk0NTAsIFwiTlwiXSxcclxuICAgIFs5NDUxLCA5NTQ3LCBcIkFcIl0sXHJcbiAgICBbOTU0OCwgOTU1MSwgXCJOXCJdLFxyXG4gICAgWzk1NTIsIDk1ODcsIFwiQVwiXSxcclxuICAgIFs5NTg4LCA5NTk5LCBcIk5cIl0sXHJcbiAgICBbOTYwMCwgOTYxNSwgXCJBXCJdLFxyXG4gICAgWzk2MTYsIDk2MTcsIFwiTlwiXSxcclxuICAgIFs5NjE4LCA5NjIxLCBcIkFcIl0sXHJcbiAgICBbOTYyMiwgOTYzMSwgXCJOXCJdLFxyXG4gICAgWzk2MzIsIDk2MzMsIFwiQVwiXSxcclxuICAgIFs5NjM0LCA5NjM0LCBcIk5cIl0sXHJcbiAgICBbOTYzNSwgOTY0MSwgXCJBXCJdLFxyXG4gICAgWzk2NDIsIDk2NDksIFwiTlwiXSxcclxuICAgIFs5NjUwLCA5NjUxLCBcIkFcIl0sXHJcbiAgICBbOTY1MiwgOTY1MywgXCJOXCJdLFxyXG4gICAgWzk2NTQsIDk2NTUsIFwiQVwiXSxcclxuICAgIFs5NjU2LCA5NjU5LCBcIk5cIl0sXHJcbiAgICBbOTY2MCwgOTY2MSwgXCJBXCJdLFxyXG4gICAgWzk2NjIsIDk2NjMsIFwiTlwiXSxcclxuICAgIFs5NjY0LCA5NjY1LCBcIkFcIl0sXHJcbiAgICBbOTY2NiwgOTY2OSwgXCJOXCJdLFxyXG4gICAgWzk2NzAsIDk2NzIsIFwiQVwiXSxcclxuICAgIFs5NjczLCA5Njc0LCBcIk5cIl0sXHJcbiAgICBbOTY3NSwgOTY3NSwgXCJBXCJdLFxyXG4gICAgWzk2NzYsIDk2NzcsIFwiTlwiXSxcclxuICAgIFs5Njc4LCA5NjgxLCBcIkFcIl0sXHJcbiAgICBbOTY4MiwgOTY5NywgXCJOXCJdLFxyXG4gICAgWzk2OTgsIDk3MDEsIFwiQVwiXSxcclxuICAgIFs5NzAyLCA5NzEwLCBcIk5cIl0sXHJcbiAgICBbOTcxMSwgOTcxMSwgXCJBXCJdLFxyXG4gICAgWzk3MTIsIDk3MjQsIFwiTlwiXSxcclxuICAgIFs5NzI1LCA5NzI2LCBcIldcIl0sXHJcbiAgICBbOTcyNywgOTczMiwgXCJOXCJdLFxyXG4gICAgWzk3MzMsIDk3MzQsIFwiQVwiXSxcclxuICAgIFs5NzM1LCA5NzM2LCBcIk5cIl0sXHJcbiAgICBbOTczNywgOTczNywgXCJBXCJdLFxyXG4gICAgWzk3MzgsIDk3NDEsIFwiTlwiXSxcclxuICAgIFs5NzQyLCA5NzQzLCBcIkFcIl0sXHJcbiAgICBbOTc0NCwgOTc0NywgXCJOXCJdLFxyXG4gICAgWzk3NDgsIDk3NDksIFwiV1wiXSxcclxuICAgIFs5NzUwLCA5NzU1LCBcIk5cIl0sXHJcbiAgICBbOTc1NiwgOTc1NiwgXCJBXCJdLFxyXG4gICAgWzk3NTcsIDk3NTcsIFwiTlwiXSxcclxuICAgIFs5NzU4LCA5NzU4LCBcIkFcIl0sXHJcbiAgICBbOTc1OSwgOTc5MSwgXCJOXCJdLFxyXG4gICAgWzk3OTIsIDk3OTIsIFwiQVwiXSxcclxuICAgIFs5NzkzLCA5NzkzLCBcIk5cIl0sXHJcbiAgICBbOTc5NCwgOTc5NCwgXCJBXCJdLFxyXG4gICAgWzk3OTUsIDk3OTksIFwiTlwiXSxcclxuICAgIFs5ODAwLCA5ODExLCBcIldcIl0sXHJcbiAgICBbOTgxMiwgOTgyMywgXCJOXCJdLFxyXG4gICAgWzk4MjQsIDk4MjUsIFwiQVwiXSxcclxuICAgIFs5ODI2LCA5ODI2LCBcIk5cIl0sXHJcbiAgICBbOTgyNywgOTgyOSwgXCJBXCJdLFxyXG4gICAgWzk4MzAsIDk4MzAsIFwiTlwiXSxcclxuICAgIFs5ODMxLCA5ODM0LCBcIkFcIl0sXHJcbiAgICBbOTgzNSwgOTgzNSwgXCJOXCJdLFxyXG4gICAgWzk4MzYsIDk4MzcsIFwiQVwiXSxcclxuICAgIFs5ODM4LCA5ODM4LCBcIk5cIl0sXHJcbiAgICBbOTgzOSwgOTgzOSwgXCJBXCJdLFxyXG4gICAgWzk4NDAsIDk4NTQsIFwiTlwiXSxcclxuICAgIFs5ODU1LCA5ODU1LCBcIldcIl0sXHJcbiAgICBbOTg1NiwgOTg3NCwgXCJOXCJdLFxyXG4gICAgWzk4NzUsIDk4NzUsIFwiV1wiXSxcclxuICAgIFs5ODc2LCA5ODg1LCBcIk5cIl0sXHJcbiAgICBbOTg4NiwgOTg4NywgXCJBXCJdLFxyXG4gICAgWzk4ODgsIDk4ODgsIFwiTlwiXSxcclxuICAgIFs5ODg5LCA5ODg5LCBcIldcIl0sXHJcbiAgICBbOTg5MCwgOTg5NywgXCJOXCJdLFxyXG4gICAgWzk4OTgsIDk4OTksIFwiV1wiXSxcclxuICAgIFs5OTAwLCA5OTE2LCBcIk5cIl0sXHJcbiAgICBbOTkxNywgOTkxOCwgXCJXXCJdLFxyXG4gICAgWzk5MTksIDk5MTksIFwiQVwiXSxcclxuICAgIFs5OTIwLCA5OTIzLCBcIk5cIl0sXHJcbiAgICBbOTkyNCwgOTkyNSwgXCJXXCJdLFxyXG4gICAgWzk5MjYsIDk5MzMsIFwiQVwiXSxcclxuICAgIFs5OTM0LCA5OTM0LCBcIldcIl0sXHJcbiAgICBbOTkzNSwgOTkzOSwgXCJBXCJdLFxyXG4gICAgWzk5NDAsIDk5NDAsIFwiV1wiXSxcclxuICAgIFs5OTQxLCA5OTUzLCBcIkFcIl0sXHJcbiAgICBbOTk1NCwgOTk1NCwgXCJOXCJdLFxyXG4gICAgWzk5NTUsIDk5NTUsIFwiQVwiXSxcclxuICAgIFs5OTU2LCA5OTU5LCBcIk5cIl0sXHJcbiAgICBbOTk2MCwgOTk2MSwgXCJBXCJdLFxyXG4gICAgWzk5NjIsIDk5NjIsIFwiV1wiXSxcclxuICAgIFs5OTYzLCA5OTY5LCBcIkFcIl0sXHJcbiAgICBbOTk3MCwgOTk3MSwgXCJXXCJdLFxyXG4gICAgWzk5NzIsIDk5NzIsIFwiQVwiXSxcclxuICAgIFs5OTczLCA5OTczLCBcIldcIl0sXHJcbiAgICBbOTk3NCwgOTk3NywgXCJBXCJdLFxyXG4gICAgWzk5NzgsIDk5NzgsIFwiV1wiXSxcclxuICAgIFs5OTc5LCA5OTgwLCBcIkFcIl0sXHJcbiAgICBbOTk4MSwgOTk4MSwgXCJXXCJdLFxyXG4gICAgWzk5ODIsIDk5ODMsIFwiQVwiXSxcclxuICAgIFs5OTg0LCA5OTg4LCBcIk5cIl0sXHJcbiAgICBbOTk4OSwgOTk4OSwgXCJXXCJdLFxyXG4gICAgWzk5OTAsIDk5OTMsIFwiTlwiXSxcclxuICAgIFs5OTk0LCA5OTk1LCBcIldcIl0sXHJcbiAgICBbOTk5NiwgMTAwMjMsIFwiTlwiXSxcclxuICAgIFsxMDAyNCwgMTAwMjQsIFwiV1wiXSxcclxuICAgIFsxMDAyNSwgMTAwNDQsIFwiTlwiXSxcclxuICAgIFsxMDA0NSwgMTAwNDUsIFwiQVwiXSxcclxuICAgIFsxMDA0NiwgMTAwNTksIFwiTlwiXSxcclxuICAgIFsxMDA2MCwgMTAwNjAsIFwiV1wiXSxcclxuICAgIFsxMDA2MSwgMTAwNjEsIFwiTlwiXSxcclxuICAgIFsxMDA2MiwgMTAwNjIsIFwiV1wiXSxcclxuICAgIFsxMDA2MywgMTAwNjYsIFwiTlwiXSxcclxuICAgIFsxMDA2NywgMTAwNjksIFwiV1wiXSxcclxuICAgIFsxMDA3MCwgMTAwNzAsIFwiTlwiXSxcclxuICAgIFsxMDA3MSwgMTAwNzEsIFwiV1wiXSxcclxuICAgIFsxMDA3MiwgMTAxMDEsIFwiTlwiXSxcclxuICAgIFsxMDEwMiwgMTAxMTEsIFwiQVwiXSxcclxuICAgIFsxMDExMiwgMTAxMzIsIFwiTlwiXSxcclxuICAgIFsxMDEzMywgMTAxMzUsIFwiV1wiXSxcclxuICAgIFsxMDEzNiwgMTAxNTksIFwiTlwiXSxcclxuICAgIFsxMDE2MCwgMTAxNjAsIFwiV1wiXSxcclxuICAgIFsxMDE2MSwgMTAxNzQsIFwiTlwiXSxcclxuICAgIFsxMDE3NSwgMTAxNzUsIFwiV1wiXSxcclxuICAgIFsxMDE3NiwgMTAyMTMsIFwiTlwiXSxcclxuICAgIFsxMDIxNCwgMTAyMjEsIFwiTmFcIl0sXHJcbiAgICBbMTAyMjIsIDEwNjI4LCBcIk5cIl0sXHJcbiAgICBbMTA2MjksIDEwNjMwLCBcIk5hXCJdLFxyXG4gICAgWzEwNjMxLCAxMTAzNCwgXCJOXCJdLFxyXG4gICAgWzExMDM1LCAxMTAzNiwgXCJXXCJdLFxyXG4gICAgWzExMDM3LCAxMTA4NywgXCJOXCJdLFxyXG4gICAgWzExMDg4LCAxMTA4OCwgXCJXXCJdLFxyXG4gICAgWzExMDg5LCAxMTA5MiwgXCJOXCJdLFxyXG4gICAgWzExMDkzLCAxMTA5MywgXCJXXCJdLFxyXG4gICAgWzExMDk0LCAxMTA5NywgXCJBXCJdLFxyXG4gICAgWzExMDk4LCAxMTkwMywgXCJOXCJdLFxyXG4gICAgWzExOTA0LCAxMTkyOSwgXCJXXCJdLFxyXG4gICAgWzExOTMwLCAxMTkzMCwgXCJOXCJdLFxyXG4gICAgWzExOTMxLCAxMjAxOSwgXCJXXCJdLFxyXG4gICAgWzEyMDIwLCAxMjAzMSwgXCJOXCJdLFxyXG4gICAgWzEyMDMyLCAxMjI0NSwgXCJXXCJdLFxyXG4gICAgWzEyMjQ2LCAxMjI3MSwgXCJOXCJdLFxyXG4gICAgWzEyMjcyLCAxMjI4MywgXCJXXCJdLFxyXG4gICAgWzEyMjg0LCAxMjI4NywgXCJOXCJdLFxyXG4gICAgWzEyMjg4LCAxMjI4OCwgXCJGXCJdLFxyXG4gICAgWzEyMjg5LCAxMjM1MCwgXCJXXCJdLFxyXG4gICAgWzEyMzUxLCAxMjM1MiwgXCJOXCJdLFxyXG4gICAgWzEyMzUzLCAxMjQzOCwgXCJXXCJdLFxyXG4gICAgWzEyNDM5LCAxMjQ0MCwgXCJOXCJdLFxyXG4gICAgWzEyNDQxLCAxMjU0MywgXCJXXCJdLFxyXG4gICAgWzEyNTQ0LCAxMjU0OCwgXCJOXCJdLFxyXG4gICAgWzEyNTQ5LCAxMjU5MSwgXCJXXCJdLFxyXG4gICAgWzEyNTkyLCAxMjU5MiwgXCJOXCJdLFxyXG4gICAgWzEyNTkzLCAxMjY4NiwgXCJXXCJdLFxyXG4gICAgWzEyNjg3LCAxMjY4NywgXCJOXCJdLFxyXG4gICAgWzEyNjg4LCAxMjc3MSwgXCJXXCJdLFxyXG4gICAgWzEyNzcyLCAxMjc4MywgXCJOXCJdLFxyXG4gICAgWzEyNzg0LCAxMjgzMCwgXCJXXCJdLFxyXG4gICAgWzEyODMxLCAxMjgzMSwgXCJOXCJdLFxyXG4gICAgWzEyODMyLCAxMjg3MSwgXCJXXCJdLFxyXG4gICAgWzEyODcyLCAxMjg3OSwgXCJBXCJdLFxyXG4gICAgWzEyODgwLCAxOTkwMywgXCJXXCJdLFxyXG4gICAgWzE5OTA0LCAxOTk2NywgXCJOXCJdLFxyXG4gICAgWzE5OTY4LCA0MjEyNCwgXCJXXCJdLFxyXG4gICAgWzQyMTI1LCA0MjEyNywgXCJOXCJdLFxyXG4gICAgWzQyMTI4LCA0MjE4MiwgXCJXXCJdLFxyXG4gICAgWzQyMTgzLCA0MzM1OSwgXCJOXCJdLFxyXG4gICAgWzQzMzYwLCA0MzM4OCwgXCJXXCJdLFxyXG4gICAgWzQzMzg5LCA0NDAzMSwgXCJOXCJdLFxyXG4gICAgWzQ0MDMyLCA1NTIwMywgXCJXXCJdLFxyXG4gICAgWzU1MjA0LCA1NzM0MywgXCJOXCJdLFxyXG4gICAgWzU3MzQ0LCA2Mzc0MywgXCJBXCJdLFxyXG4gICAgWzYzNzQ0LCA2NDI1NSwgXCJXXCJdLFxyXG4gICAgWzY0MjU2LCA2NTAyMywgXCJOXCJdLFxyXG4gICAgWzY1MDI0LCA2NTAzOSwgXCJBXCJdLFxyXG4gICAgWzY1MDQwLCA2NTA0OSwgXCJXXCJdLFxyXG4gICAgWzY1MDUwLCA2NTA3MSwgXCJOXCJdLFxyXG4gICAgWzY1MDcyLCA2NTEwNiwgXCJXXCJdLFxyXG4gICAgWzY1MTA3LCA2NTEwNywgXCJOXCJdLFxyXG4gICAgWzY1MTA4LCA2NTEyNiwgXCJXXCJdLFxyXG4gICAgWzY1MTI3LCA2NTEyNywgXCJOXCJdLFxyXG4gICAgWzY1MTI4LCA2NTEzMSwgXCJXXCJdLFxyXG4gICAgWzY1MTMyLCA2NTI4MCwgXCJOXCJdLFxyXG4gICAgWzY1MjgxLCA2NTM3NiwgXCJGXCJdLFxyXG4gICAgWzY1Mzc3LCA2NTQ3MCwgXCJIXCJdLFxyXG4gICAgWzY1NDcxLCA2NTQ3MywgXCJOXCJdLFxyXG4gICAgWzY1NDc0LCA2NTQ3OSwgXCJIXCJdLFxyXG4gICAgWzY1NDgwLCA2NTQ4MSwgXCJOXCJdLFxyXG4gICAgWzY1NDgyLCA2NTQ4NywgXCJIXCJdLFxyXG4gICAgWzY1NDg4LCA2NTQ4OSwgXCJOXCJdLFxyXG4gICAgWzY1NDkwLCA2NTQ5NSwgXCJIXCJdLFxyXG4gICAgWzY1NDk2LCA2NTQ5NywgXCJOXCJdLFxyXG4gICAgWzY1NDk4LCA2NTUwMCwgXCJIXCJdLFxyXG4gICAgWzY1NTAxLCA2NTUwMywgXCJOXCJdLFxyXG4gICAgWzY1NTA0LCA2NTUxMCwgXCJGXCJdLFxyXG4gICAgWzY1NTExLCA2NTUxMSwgXCJOXCJdLFxyXG4gICAgWzY1NTEyLCA2NTUxOCwgXCJIXCJdLFxyXG4gICAgWzY1NTE5LCA2NTUzMiwgXCJOXCJdLFxyXG4gICAgWzY1NTMzLCA2NTUzMywgXCJBXCJdLFxyXG4gICAgWzY1NTM0LCA5NDE3NSwgXCJOXCJdLFxyXG4gICAgWzk0MTc2LCA5NDE4MCwgXCJXXCJdLFxyXG4gICAgWzk0MTgxLCA5NDE5MSwgXCJOXCJdLFxyXG4gICAgWzk0MTkyLCA5NDE5MywgXCJXXCJdLFxyXG4gICAgWzk0MTk0LCA5NDIwNywgXCJOXCJdLFxyXG4gICAgWzk0MjA4LCAxMDAzNDMsIFwiV1wiXSxcclxuICAgIFsxMDAzNDQsIDEwMDM1MSwgXCJOXCJdLFxyXG4gICAgWzEwMDM1MiwgMTAxNTg5LCBcIldcIl0sXHJcbiAgICBbMTAxNTkwLCAxMDE2MzEsIFwiTlwiXSxcclxuICAgIFsxMDE2MzIsIDEwMTY0MCwgXCJXXCJdLFxyXG4gICAgWzEwMTY0MSwgMTEwNTkxLCBcIk5cIl0sXHJcbiAgICBbMTEwNTkyLCAxMTA4NzgsIFwiV1wiXSxcclxuICAgIFsxMTA4NzksIDExMDkyNywgXCJOXCJdLFxyXG4gICAgWzExMDkyOCwgMTEwOTMwLCBcIldcIl0sXHJcbiAgICBbMTEwOTMxLCAxMTA5NDcsIFwiTlwiXSxcclxuICAgIFsxMTA5NDgsIDExMDk1MSwgXCJXXCJdLFxyXG4gICAgWzExMDk1MiwgMTEwOTU5LCBcIk5cIl0sXHJcbiAgICBbMTEwOTYwLCAxMTEzNTUsIFwiV1wiXSxcclxuICAgIFsxMTEzNTYsIDEyNjk3OSwgXCJOXCJdLFxyXG4gICAgWzEyNjk4MCwgMTI2OTgwLCBcIldcIl0sXHJcbiAgICBbMTI2OTgxLCAxMjcxODIsIFwiTlwiXSxcclxuICAgIFsxMjcxODMsIDEyNzE4MywgXCJXXCJdLFxyXG4gICAgWzEyNzE4NCwgMTI3MjMxLCBcIk5cIl0sXHJcbiAgICBbMTI3MjMyLCAxMjcyNDIsIFwiQVwiXSxcclxuICAgIFsxMjcyNDMsIDEyNzI0NywgXCJOXCJdLFxyXG4gICAgWzEyNzI0OCwgMTI3Mjc3LCBcIkFcIl0sXHJcbiAgICBbMTI3Mjc4LCAxMjcyNzksIFwiTlwiXSxcclxuICAgIFsxMjcyODAsIDEyNzMzNywgXCJBXCJdLFxyXG4gICAgWzEyNzMzOCwgMTI3MzQzLCBcIk5cIl0sXHJcbiAgICBbMTI3MzQ0LCAxMjczNzMsIFwiQVwiXSxcclxuICAgIFsxMjczNzQsIDEyNzM3NCwgXCJXXCJdLFxyXG4gICAgWzEyNzM3NSwgMTI3Mzc2LCBcIkFcIl0sXHJcbiAgICBbMTI3Mzc3LCAxMjczODYsIFwiV1wiXSxcclxuICAgIFsxMjczODcsIDEyNzQwNCwgXCJBXCJdLFxyXG4gICAgWzEyNzQwNSwgMTI3NDg3LCBcIk5cIl0sXHJcbiAgICBbMTI3NDg4LCAxMjc0OTAsIFwiV1wiXSxcclxuICAgIFsxMjc0OTEsIDEyNzUwMywgXCJOXCJdLFxyXG4gICAgWzEyNzUwNCwgMTI3NTQ3LCBcIldcIl0sXHJcbiAgICBbMTI3NTQ4LCAxMjc1NTEsIFwiTlwiXSxcclxuICAgIFsxMjc1NTIsIDEyNzU2MCwgXCJXXCJdLFxyXG4gICAgWzEyNzU2MSwgMTI3NTY3LCBcIk5cIl0sXHJcbiAgICBbMTI3NTY4LCAxMjc1NjksIFwiV1wiXSxcclxuICAgIFsxMjc1NzAsIDEyNzU4MywgXCJOXCJdLFxyXG4gICAgWzEyNzU4NCwgMTI3NTg5LCBcIldcIl0sXHJcbiAgICBbMTI3NTkwLCAxMjc3NDMsIFwiTlwiXSxcclxuICAgIFsxMjc3NDQsIDEyNzc3NiwgXCJXXCJdLFxyXG4gICAgWzEyNzc3NywgMTI3Nzg4LCBcIk5cIl0sXHJcbiAgICBbMTI3Nzg5LCAxMjc3OTcsIFwiV1wiXSxcclxuICAgIFsxMjc3OTgsIDEyNzc5OCwgXCJOXCJdLFxyXG4gICAgWzEyNzc5OSwgMTI3ODY4LCBcIldcIl0sXHJcbiAgICBbMTI3ODY5LCAxMjc4NjksIFwiTlwiXSxcclxuICAgIFsxMjc4NzAsIDEyNzg5MSwgXCJXXCJdLFxyXG4gICAgWzEyNzg5MiwgMTI3OTAzLCBcIk5cIl0sXHJcbiAgICBbMTI3OTA0LCAxMjc5NDYsIFwiV1wiXSxcclxuICAgIFsxMjc5NDcsIDEyNzk1MCwgXCJOXCJdLFxyXG4gICAgWzEyNzk1MSwgMTI3OTU1LCBcIldcIl0sXHJcbiAgICBbMTI3OTU2LCAxMjc5NjcsIFwiTlwiXSxcclxuICAgIFsxMjc5NjgsIDEyNzk4NCwgXCJXXCJdLFxyXG4gICAgWzEyNzk4NSwgMTI3OTg3LCBcIk5cIl0sXHJcbiAgICBbMTI3OTg4LCAxMjc5ODgsIFwiV1wiXSxcclxuICAgIFsxMjc5ODksIDEyNzk5MSwgXCJOXCJdLFxyXG4gICAgWzEyNzk5MiwgMTI4MDYyLCBcIldcIl0sXHJcbiAgICBbMTI4MDYzLCAxMjgwNjMsIFwiTlwiXSxcclxuICAgIFsxMjgwNjQsIDEyODA2NCwgXCJXXCJdLFxyXG4gICAgWzEyODA2NSwgMTI4MDY1LCBcIk5cIl0sXHJcbiAgICBbMTI4MDY2LCAxMjgyNTIsIFwiV1wiXSxcclxuICAgIFsxMjgyNTMsIDEyODI1NCwgXCJOXCJdLFxyXG4gICAgWzEyODI1NSwgMTI4MzE3LCBcIldcIl0sXHJcbiAgICBbMTI4MzE4LCAxMjgzMzAsIFwiTlwiXSxcclxuICAgIFsxMjgzMzEsIDEyODMzNCwgXCJXXCJdLFxyXG4gICAgWzEyODMzNSwgMTI4MzM1LCBcIk5cIl0sXHJcbiAgICBbMTI4MzM2LCAxMjgzNTksIFwiV1wiXSxcclxuICAgIFsxMjgzNjAsIDEyODM3NywgXCJOXCJdLFxyXG4gICAgWzEyODM3OCwgMTI4Mzc4LCBcIldcIl0sXHJcbiAgICBbMTI4Mzc5LCAxMjg0MDQsIFwiTlwiXSxcclxuICAgIFsxMjg0MDUsIDEyODQwNiwgXCJXXCJdLFxyXG4gICAgWzEyODQwNywgMTI4NDE5LCBcIk5cIl0sXHJcbiAgICBbMTI4NDIwLCAxMjg0MjAsIFwiV1wiXSxcclxuICAgIFsxMjg0MjEsIDEyODUwNiwgXCJOXCJdLFxyXG4gICAgWzEyODUwNywgMTI4NTkxLCBcIldcIl0sXHJcbiAgICBbMTI4NTkyLCAxMjg2MzksIFwiTlwiXSxcclxuICAgIFsxMjg2NDAsIDEyODcwOSwgXCJXXCJdLFxyXG4gICAgWzEyODcxMCwgMTI4NzE1LCBcIk5cIl0sXHJcbiAgICBbMTI4NzE2LCAxMjg3MTYsIFwiV1wiXSxcclxuICAgIFsxMjg3MTcsIDEyODcxOSwgXCJOXCJdLFxyXG4gICAgWzEyODcyMCwgMTI4NzIyLCBcIldcIl0sXHJcbiAgICBbMTI4NzIzLCAxMjg3MjQsIFwiTlwiXSxcclxuICAgIFsxMjg3MjUsIDEyODcyNywgXCJXXCJdLFxyXG4gICAgWzEyODcyOCwgMTI4NzQ2LCBcIk5cIl0sXHJcbiAgICBbMTI4NzQ3LCAxMjg3NDgsIFwiV1wiXSxcclxuICAgIFsxMjg3NDksIDEyODc1NSwgXCJOXCJdLFxyXG4gICAgWzEyODc1NiwgMTI4NzY0LCBcIldcIl0sXHJcbiAgICBbMTI4NzY1LCAxMjg5OTEsIFwiTlwiXSxcclxuICAgIFsxMjg5OTIsIDEyOTAwMywgXCJXXCJdLFxyXG4gICAgWzEyOTAwNCwgMTI5MjkxLCBcIk5cIl0sXHJcbiAgICBbMTI5MjkyLCAxMjkzMzgsIFwiV1wiXSxcclxuICAgIFsxMjkzMzksIDEyOTMzOSwgXCJOXCJdLFxyXG4gICAgWzEyOTM0MCwgMTI5MzQ5LCBcIldcIl0sXHJcbiAgICBbMTI5MzUwLCAxMjkzNTAsIFwiTlwiXSxcclxuICAgIFsxMjkzNTEsIDEyOTQwMCwgXCJXXCJdLFxyXG4gICAgWzEyOTQwMSwgMTI5NDAxLCBcIk5cIl0sXHJcbiAgICBbMTI5NDAyLCAxMjk0ODMsIFwiV1wiXSxcclxuICAgIFsxMjk0ODQsIDEyOTQ4NCwgXCJOXCJdLFxyXG4gICAgWzEyOTQ4NSwgMTI5NTM1LCBcIldcIl0sXHJcbiAgICBbMTI5NTM2LCAxMjk2NDcsIFwiTlwiXSxcclxuICAgIFsxMjk2NDgsIDEyOTY1MiwgXCJXXCJdLFxyXG4gICAgWzEyOTY1MywgMTI5NjU1LCBcIk5cIl0sXHJcbiAgICBbMTI5NjU2LCAxMjk2NTgsIFwiV1wiXSxcclxuICAgIFsxMjk2NTksIDEyOTY2MywgXCJOXCJdLFxyXG4gICAgWzEyOTY2NCwgMTI5NjcwLCBcIldcIl0sXHJcbiAgICBbMTI5NjcxLCAxMjk2NzksIFwiTlwiXSxcclxuICAgIFsxMjk2ODAsIDEyOTcwNCwgXCJXXCJdLFxyXG4gICAgWzEyOTcwNSwgMTI5NzExLCBcIk5cIl0sXHJcbiAgICBbMTI5NzEyLCAxMjk3MTgsIFwiV1wiXSxcclxuICAgIFsxMjk3MTksIDEyOTcyNywgXCJOXCJdLFxyXG4gICAgWzEyOTcyOCwgMTI5NzMwLCBcIldcIl0sXHJcbiAgICBbMTI5NzMxLCAxMjk3NDMsIFwiTlwiXSxcclxuICAgIFsxMjk3NDQsIDEyOTc1MCwgXCJXXCJdLFxyXG4gICAgWzEyOTc1MSwgMTMxMDcxLCBcIk5cIl0sXHJcbiAgICBbMTMxMDcyLCAxOTY2MDUsIFwiV1wiXSxcclxuICAgIFsxOTY2MDYsIDE5NjYwNywgXCJOXCJdLFxyXG4gICAgWzE5NjYwOCwgMjYyMTQxLCBcIldcIl0sXHJcbiAgICBbMjYyMTQyLCA5MTc3NTksIFwiTlwiXSxcclxuICAgIFs5MTc3NjAsIDkxNzk5OSwgXCJBXCJdLFxyXG4gICAgWzkxODAwMCwgOTgzMDM5LCBcIk5cIl0sXHJcbiAgICBbOTgzMDQwLCAxMDQ4NTczLCBcIkFcIl0sXHJcbiAgICBbMTA0ODU3NCwgMTA0ODU3NSwgXCJOXCJdLFxyXG4gICAgWzEwNDg1NzYsIDExMTQxMDksIFwiQVwiXSxcclxuICAgIFsxMTE0MTEwLCAxMTE0MTExLCBcIk5cIl0sXHJcbl07XHJcbi8qIEVORCAqL1xyXG52YXIgdmVyc2lvbiA9IFwiMTMuMC4wXCI7XG5cbi8qKlxyXG4gKiBHZXRzIHRoZSBFQVcgcHJvcGVydHkgb2YgYSBjb2RlIHBvaW50LlxyXG4gKiBAcGFyYW0gY29kZVBvaW50IENvZGUgcG9pbnRcclxuICogQHJldHVybiBUaGUgRUFXIHByb3BlcnR5IG9mIHRoZSBjb2RlIHBvaW50XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRFQVdPZkNvZGVQb2ludChjb2RlUG9pbnQpIHtcclxuICAgIHZhciBtaW4gPSAwO1xyXG4gICAgdmFyIG1heCA9IGRlZnMubGVuZ3RoIC0gMTtcclxuICAgIHdoaWxlIChtaW4gIT09IG1heCkge1xyXG4gICAgICAgIHZhciBpID0gbWluICsgKChtYXggLSBtaW4pID4+IDEpO1xyXG4gICAgICAgIHZhciBfYSA9IGRlZnNbaV0sIHN0YXJ0ID0gX2FbMF0sIGVuZCA9IF9hWzFdLCBwcm9wID0gX2FbMl07XHJcbiAgICAgICAgaWYgKGNvZGVQb2ludCA8IHN0YXJ0KSB7XHJcbiAgICAgICAgICAgIG1heCA9IGkgLSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjb2RlUG9pbnQgPiBlbmQpIHtcclxuICAgICAgICAgICAgbWluID0gaSArIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gcHJvcDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGVmc1ttaW5dWzJdO1xyXG59XHJcbi8qKlxyXG4gKiBHZXRzIHRoZSBFQVcgcHJvcGVydHkgb2YgYSBjaGFyYWN0ZXIuXHJcbiAqIEBwYXJhbSBzdHIgQ2hhcmFjdGVyIHN0cmluZ1xyXG4gKiBAcGFyYW0gcG9zIENoYXJhY3RlciBwb3NpdGlvbiAoaW4gY29kZSB1bml0KSAoZGVmYXVsdCA9IDApXHJcbiAqIEByZXR1cm4gVGhlIEVBVyBwcm9wZXJ0eSBvZiB0aGUgY2hhcmFjdGVyXHJcbiAqIEBleGFtcGxlXHJcbiAqIGltcG9ydCB7IGdldEVBVyB9IGZyb20gXCJtZWF3XCI7XHJcbiAqXHJcbiAqIC8vIE5hcnJvd1xyXG4gKiBhc3NlcnQoZ2V0RUFXKFwiQVwiKSA9PT0gXCJOYVwiKTtcclxuICogLy8gV2lkZVxyXG4gKiBhc3NlcnQoZ2V0RUFXKFwi44GCXCIpID09PSBcIldcIik7XHJcbiAqIGFzc2VydChnZXRFQVcoXCLlrolcIikgPT09IFwiV1wiKTtcclxuICogYXNzZXJ0KGdldEVBVyhcIvCfjaNcIikgPT09IFwiV1wiKTtcclxuICogLy8gRnVsbHdpZHRoXHJcbiAqIGFzc2VydChnZXRFQVcoXCLvvKFcIikgPT09IFwiRlwiKTtcclxuICogLy8gSGFsZndpZHRoXHJcbiAqIGFzc2VydChnZXRFQVcoXCLvvbFcIikgPT09IFwiSFwiKTtcclxuICogLy8gQW1iaWd1b3VzXHJcbiAqIGFzc2VydChnZXRFQVcoXCLiiIBcIikgPT09IFwiQVwiKTtcclxuICogYXNzZXJ0KGdldEVBVyhcIuKGklwiKSA9PT0gXCJBXCIpO1xyXG4gKiBhc3NlcnQoZ2V0RUFXKFwizqlcIikgPT09IFwiQVwiKTtcclxuICogYXNzZXJ0KGdldEVBVyhcItCvXCIpID09PSBcIkFcIik7XHJcbiAqIC8vIE5ldXRyYWxcclxuICogYXNzZXJ0KGdldEVBVyhcIuKEtVwiKSA9PT0gXCJOXCIpO1xyXG4gKlxyXG4gKiAvLyBjaGFyYWN0ZXIgcG9zaXRpb24gKGluIGNvZGUgdW5pdCkgY2FuIGJlIHNwZWNpZmllZFxyXG4gKiBhc3NlcnQoZ2V0RUFXKFwi4oS1QeOBgu+8oe+9seKIgFwiLCAyKSA9PT0gXCJXXCIpO1xyXG4gKi9cclxuZnVuY3Rpb24gZ2V0RUFXKHN0ciwgcG9zKSB7XHJcbiAgICBpZiAocG9zID09PSB2b2lkIDApIHsgcG9zID0gMDsgfVxyXG4gICAgdmFyIGNvZGVQb2ludCA9IHN0ci5jb2RlUG9pbnRBdChwb3MpO1xyXG4gICAgaWYgKGNvZGVQb2ludCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHJldHVybiBnZXRFQVdPZkNvZGVQb2ludChjb2RlUG9pbnQpO1xyXG59XG5cbnZhciBkZWZhdWx0V2lkdGhzID0ge1xyXG4gICAgTjogMSxcclxuICAgIE5hOiAxLFxyXG4gICAgVzogMixcclxuICAgIEY6IDIsXHJcbiAgICBIOiAxLFxyXG4gICAgQTogMSxcclxufTtcclxuLyoqXHJcbiAqIENvbXB1dGVzIHRoZSB3aWR0aCBvZiBhIHN0cmluZyBiYXNlZCBvbiB0aGUgRUFXIHByb3BlcnRpZXMgb2YgdGhlIGNoYXJhY3RlcnMuXHJcbiAqIEJ5IGRlZmF1bHQsIGNoYXJhY3RlcnMgd2l0aCBwcm9wZXJ0eSBXaWRlIChXKSBvciBGdWxsd2lkdGggKEYpIGFyZSB0cmVhdGVkIGFzIHdpZGUgKD0gMilcclxuICogYW5kIG90aGVycyBhcmUgYXMgbmFycm93ICg9IDEpLlxyXG4gKiBAcGFyYW0gc3RyIENoYXJhY3RlciBzdHJpbmdcclxuICogQHBhcmFtIHdpZHRocyBBbiBvYmplY3QgdGhhdCBtYXBzIEVBVyBwcm9wZXJ0aWVzIHRvIGNoYXJhY3RlciB3aWR0aHNcclxuICogQHJldHVybiBUaGUgY29tcHV0ZWQgd2lkdGhcclxuICogQGV4YW1wbGVcclxuICogaW1wb3J0IHsgY29tcHV0ZVdpZHRoIH0gZnJvbSBcIm1lYXdcIjtcclxuICpcclxuICogYXNzZXJ0KGNvbXB1dGVXaWR0aChcIkHjgYLwn42jzqlcIikgPT09IDYpO1xyXG4gKiAvLyBjaGFyYWN0ZXIgd2lkdGggZm9yIGVhY2ggRUFXIHByb3BlcnR5IGNhbiBiZSBjdXN0b21pemVkXHJcbiAqIGFzc2VydChjb21wdXRlV2lkdGgoXCJB44GC8J+No86pXCIsIHsgXCJBXCI6IDIgfSkgPT09IDcpO1xyXG4gKi9cclxuZnVuY3Rpb24gY29tcHV0ZVdpZHRoKHN0ciwgd2lkdGhzKSB7XHJcbiAgICB2YXIgd2lkdGggPSAwO1xyXG4gICAgZm9yICh2YXIgX2kgPSAwLCBzdHJfMSA9IHN0cjsgX2kgPCBzdHJfMS5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICB2YXIgY2hhciA9IHN0cl8xW19pXTtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiAtLSBjaGFyIGNhbm5vdCBiZSBlbXB0eVxyXG4gICAgICAgIHZhciBlYXcgPSBnZXRFQVcoY2hhcik7XHJcbiAgICAgICAgd2lkdGggKz0gKHdpZHRocyAmJiB3aWR0aHNbZWF3XSkgfHwgZGVmYXVsdFdpZHRoc1tlYXddO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHdpZHRoO1xyXG59XG5cbmV4cG9ydCB7IGNvbXB1dGVXaWR0aCwgdmVyc2lvbiBhcyBlYXdWZXJzaW9uLCBnZXRFQVcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5tb3ZlQ29sdW1uID0gZXhwb3J0cy5kZWxldGVDb2x1bW4gPSBleHBvcnRzLmluc2VydENvbHVtbiA9IGV4cG9ydHMubW92ZVJvdyA9IGV4cG9ydHMuZGVsZXRlUm93ID0gZXhwb3J0cy5pbnNlcnRSb3cgPSBleHBvcnRzLmFsdGVyQWxpZ25tZW50ID0gZXhwb3J0cy5mb3JtYXRUYWJsZSA9IGV4cG9ydHMuRm9ybWF0VHlwZSA9IGV4cG9ydHMuX3dlYWtGb3JtYXRUYWJsZSA9IGV4cG9ydHMuX2Zvcm1hdFRhYmxlID0gZXhwb3J0cy5fcGFkVGV4dCA9IGV4cG9ydHMuX2FsaWduVGV4dCA9IGV4cG9ydHMuX2NvbXB1dGVUZXh0V2lkdGggPSBleHBvcnRzLmNvbXBsZXRlVGFibGUgPSBleHBvcnRzLl9leHRlbmRBcnJheSA9IGV4cG9ydHMuX2RlbGltaXRlclRleHQgPSB2b2lkIDA7XG5jb25zdCBhbGlnbm1lbnRfMSA9IHJlcXVpcmUoXCIuL2FsaWdubWVudFwiKTtcbmNvbnN0IHRhYmxlXzEgPSByZXF1aXJlKFwiLi90YWJsZVwiKTtcbmNvbnN0IHRhYmxlX2NlbGxfMSA9IHJlcXVpcmUoXCIuL3RhYmxlLWNlbGxcIik7XG5jb25zdCB0YWJsZV9yb3dfMSA9IHJlcXVpcmUoXCIuL3RhYmxlLXJvd1wiKTtcbmNvbnN0IG1lYXdfMSA9IHJlcXVpcmUoXCJtZWF3XCIpO1xuLyoqXG4gKiBDcmVhdGVzIGEgZGVsaW1pdGVyIHRleHQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB3aWR0aCAtIFdpZHRoIG9mIHRoZSBob3Jpem9udGFsIGJhciBvZiBkZWxpbWl0ZXIuXG4gKiBAdGhyb3dzIHtFcnJvcn0gVW5rbm93biBhbGlnbm1lbnQuXG4gKi9cbmNvbnN0IF9kZWxpbWl0ZXJUZXh0ID0gKGFsaWdubWVudCwgd2lkdGgpID0+IHtcbiAgICBjb25zdCBiYXIgPSAnLScucmVwZWF0KHdpZHRoKTtcbiAgICBzd2l0Y2ggKGFsaWdubWVudCkge1xuICAgICAgICBjYXNlIGFsaWdubWVudF8xLkFsaWdubWVudC5OT05FOlxuICAgICAgICAgICAgcmV0dXJuIGAgJHtiYXJ9IGA7XG4gICAgICAgIGNhc2UgYWxpZ25tZW50XzEuQWxpZ25tZW50LkxFRlQ6XG4gICAgICAgICAgICByZXR1cm4gYDoke2Jhcn0gYDtcbiAgICAgICAgY2FzZSBhbGlnbm1lbnRfMS5BbGlnbm1lbnQuUklHSFQ6XG4gICAgICAgICAgICByZXR1cm4gYCAke2Jhcn06YDtcbiAgICAgICAgY2FzZSBhbGlnbm1lbnRfMS5BbGlnbm1lbnQuQ0VOVEVSOlxuICAgICAgICAgICAgcmV0dXJuIGA6JHtiYXJ9OmA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gYWxpZ25tZW50OiAnICsgYWxpZ25tZW50KTtcbiAgICB9XG59O1xuZXhwb3J0cy5fZGVsaW1pdGVyVGV4dCA9IF9kZWxpbWl0ZXJUZXh0O1xuLyoqXG4gKiBFeHRlbmRzIGFycmF5IHNpemUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBjYWxsYmFjayAtIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGZpbGwgbmV3bHkgY3JlYXRlZCBjZWxscy5cbiAqIEByZXR1cm5zIEV4dGVuZGVkIGFycmF5LlxuICovXG5jb25zdCBfZXh0ZW5kQXJyYXkgPSAoYXJyLCBzaXplLCBjYWxsYmFjaykgPT4ge1xuICAgIGNvbnN0IGV4dGVuZGVkID0gYXJyLnNsaWNlKCk7XG4gICAgZm9yIChsZXQgaSA9IGFyci5sZW5ndGg7IGkgPCBzaXplOyBpKyspIHtcbiAgICAgICAgZXh0ZW5kZWQucHVzaChjYWxsYmFjayhpLCBhcnIpKTtcbiAgICB9XG4gICAgcmV0dXJuIGV4dGVuZGVkO1xufTtcbmV4cG9ydHMuX2V4dGVuZEFycmF5ID0gX2V4dGVuZEFycmF5O1xuLyoqXG4gKiBDb21wbGV0ZXMgYSB0YWJsZSBieSBhZGRpbmcgbWlzc2luZyBkZWxpbWl0ZXIgYW5kIGNlbGxzLlxuICogQWZ0ZXIgY29tcGxldGlvbiwgYWxsIHJvd3MgaW4gdGhlIHRhYmxlIGhhdmUgdGhlIHNhbWUgd2lkdGguXG4gKlxuICogQHByaXZhdGVcbiAqXG4gKiBAdGhyb3dzIHtFcnJvcn0gRW1wdHkgdGFibGUuXG4gKi9cbmNvbnN0IGNvbXBsZXRlVGFibGUgPSAodGFibGUsIG9wdGlvbnMpID0+IHtcbiAgICBjb25zdCB0YWJsZUhlaWdodCA9IHRhYmxlLmdldEhlaWdodCgpO1xuICAgIGNvbnN0IHRhYmxlV2lkdGggPSB0YWJsZS5nZXRXaWR0aCgpO1xuICAgIGlmICh0YWJsZUhlaWdodCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VtcHR5IHRhYmxlJyk7XG4gICAgfVxuICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5nZXRSb3dzKCk7XG4gICAgY29uc3QgbmV3Um93cyA9IFtdO1xuICAgIC8vIGhlYWRlclxuICAgIGNvbnN0IGhlYWRlclJvdyA9IHJvd3NbMF07XG4gICAgY29uc3QgaGVhZGVyQ2VsbHMgPSBoZWFkZXJSb3cuZ2V0Q2VsbHMoKTtcbiAgICBuZXdSb3dzLnB1c2gobmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KGV4cG9ydHMuX2V4dGVuZEFycmF5KGhlYWRlckNlbGxzLCB0YWJsZVdpZHRoLCAoaikgPT4gbmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoaiA9PT0gaGVhZGVyQ2VsbHMubGVuZ3RoID8gaGVhZGVyUm93Lm1hcmdpblJpZ2h0IDogJycpKSwgaGVhZGVyUm93Lm1hcmdpbkxlZnQsIGhlYWRlckNlbGxzLmxlbmd0aCA8IHRhYmxlV2lkdGggPyAnJyA6IGhlYWRlclJvdy5tYXJnaW5SaWdodCkpO1xuICAgIC8vIGRlbGltaXRlclxuICAgIGNvbnN0IGRlbGltaXRlclJvdyA9IHRhYmxlLmdldERlbGltaXRlclJvdygpO1xuICAgIGlmIChkZWxpbWl0ZXJSb3cgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBkZWxpbWl0ZXJDZWxscyA9IGRlbGltaXRlclJvdy5nZXRDZWxscygpO1xuICAgICAgICBuZXdSb3dzLnB1c2gobmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KGV4cG9ydHMuX2V4dGVuZEFycmF5KGRlbGltaXRlckNlbGxzLCB0YWJsZVdpZHRoLCAoaikgPT4gbmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoZXhwb3J0cy5fZGVsaW1pdGVyVGV4dChhbGlnbm1lbnRfMS5BbGlnbm1lbnQuTk9ORSwgaiA9PT0gZGVsaW1pdGVyQ2VsbHMubGVuZ3RoXG4gICAgICAgICAgICA/IE1hdGgubWF4KG9wdGlvbnMubWluRGVsaW1pdGVyV2lkdGgsIGRlbGltaXRlclJvdy5tYXJnaW5SaWdodC5sZW5ndGggLSAyKVxuICAgICAgICAgICAgOiBvcHRpb25zLm1pbkRlbGltaXRlcldpZHRoKSkpLCBkZWxpbWl0ZXJSb3cubWFyZ2luTGVmdCwgZGVsaW1pdGVyQ2VsbHMubGVuZ3RoIDwgdGFibGVXaWR0aCA/ICcnIDogZGVsaW1pdGVyUm93Lm1hcmdpblJpZ2h0KSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBuZXdSb3dzLnB1c2gobmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KGV4cG9ydHMuX2V4dGVuZEFycmF5KFtdLCB0YWJsZVdpZHRoLCAoKSA9PiBuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbChleHBvcnRzLl9kZWxpbWl0ZXJUZXh0KGFsaWdubWVudF8xLkFsaWdubWVudC5OT05FLCBvcHRpb25zLm1pbkRlbGltaXRlcldpZHRoKSkpLCAnJywgJycpKTtcbiAgICB9XG4gICAgLy8gYm9keVxuICAgIGZvciAobGV0IGkgPSBkZWxpbWl0ZXJSb3cgIT09IHVuZGVmaW5lZCA/IDIgOiAxOyBpIDwgdGFibGVIZWlnaHQ7IGkrKykge1xuICAgICAgICBjb25zdCByb3cgPSByb3dzW2ldO1xuICAgICAgICBjb25zdCBjZWxscyA9IHJvdy5nZXRDZWxscygpO1xuICAgICAgICBuZXdSb3dzLnB1c2gobmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KGV4cG9ydHMuX2V4dGVuZEFycmF5KGNlbGxzLCB0YWJsZVdpZHRoLCAoaikgPT4gbmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoaiA9PT0gY2VsbHMubGVuZ3RoID8gcm93Lm1hcmdpblJpZ2h0IDogJycpKSwgcm93Lm1hcmdpbkxlZnQsIGNlbGxzLmxlbmd0aCA8IHRhYmxlV2lkdGggPyAnJyA6IHJvdy5tYXJnaW5SaWdodCkpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICB0YWJsZTogbmV3IHRhYmxlXzEuVGFibGUobmV3Um93cyksXG4gICAgICAgIGRlbGltaXRlckluc2VydGVkOiBkZWxpbWl0ZXJSb3cgPT09IHVuZGVmaW5lZCxcbiAgICB9O1xufTtcbmV4cG9ydHMuY29tcGxldGVUYWJsZSA9IGNvbXBsZXRlVGFibGU7XG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIGEgdGV4dCBiYXNlZCBvbiBjaGFyYWN0ZXJzJyBFQVcgcHJvcGVydGllcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICpcbiAqIEByZXR1cm5zIENhbGN1bGF0ZWQgd2lkdGggb2YgdGhlIHRleHQuXG4gKi9cbmNvbnN0IF9jb21wdXRlVGV4dFdpZHRoID0gKHRleHQsIG9wdGlvbnMpID0+IHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gb3B0aW9ucy5ub3JtYWxpemUgPyB0ZXh0Lm5vcm1hbGl6ZSgnTkZDJykgOiB0ZXh0O1xuICAgIGxldCB3ID0gMDtcbiAgICBmb3IgKGNvbnN0IGNoYXIgb2Ygbm9ybWFsaXplZCkge1xuICAgICAgICBpZiAob3B0aW9ucy53aWRlQ2hhcnMuaGFzKGNoYXIpKSB7XG4gICAgICAgICAgICB3ICs9IDI7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5uYXJyb3dDaGFycy5oYXMoY2hhcikpIHtcbiAgICAgICAgICAgIHcgKz0gMTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAobWVhd18xLmdldEVBVyhjaGFyKSkge1xuICAgICAgICAgICAgY2FzZSAnRic6XG4gICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICB3ICs9IDI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdBJzpcbiAgICAgICAgICAgICAgICB3ICs9IG9wdGlvbnMuYW1iaWd1b3VzQXNXaWRlID8gMiA6IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHcgKz0gMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdztcbn07XG5leHBvcnRzLl9jb21wdXRlVGV4dFdpZHRoID0gX2NvbXB1dGVUZXh0V2lkdGg7XG4vKipcbiAqIFJldHVybnMgYSBhbGlnbmVkIGNlbGwgY29udGVudC5cbiAqXG4gKiBAdGhyb3dzIHtFcnJvcn0gVW5rbm93biBhbGlnbm1lbnQuXG4gKiBAdGhyb3dzIHtFcnJvcn0gVW5leHBlY3RlZCBkZWZhdWx0IGFsaWdubWVudC5cbiAqL1xuY29uc3QgX2FsaWduVGV4dCA9ICh0ZXh0LCB3aWR0aCwgYWxpZ25tZW50LCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3Qgc3BhY2UgPSB3aWR0aCAtIGV4cG9ydHMuX2NvbXB1dGVUZXh0V2lkdGgodGV4dCwgb3B0aW9ucyk7XG4gICAgaWYgKHNwYWNlIDwgMCkge1xuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG4gICAgc3dpdGNoIChhbGlnbm1lbnQpIHtcbiAgICAgICAgY2FzZSBhbGlnbm1lbnRfMS5BbGlnbm1lbnQuTk9ORTpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBkZWZhdWx0IGFsaWdubWVudCcpO1xuICAgICAgICBjYXNlIGFsaWdubWVudF8xLkFsaWdubWVudC5MRUZUOlxuICAgICAgICAgICAgcmV0dXJuIHRleHQgKyAnICcucmVwZWF0KHNwYWNlKTtcbiAgICAgICAgY2FzZSBhbGlnbm1lbnRfMS5BbGlnbm1lbnQuUklHSFQ6XG4gICAgICAgICAgICByZXR1cm4gJyAnLnJlcGVhdChzcGFjZSkgKyB0ZXh0O1xuICAgICAgICBjYXNlIGFsaWdubWVudF8xLkFsaWdubWVudC5DRU5URVI6XG4gICAgICAgICAgICByZXR1cm4gKCcgJy5yZXBlYXQoTWF0aC5mbG9vcihzcGFjZSAvIDIpKSArXG4gICAgICAgICAgICAgICAgdGV4dCArXG4gICAgICAgICAgICAgICAgJyAnLnJlcGVhdChNYXRoLmNlaWwoc3BhY2UgLyAyKSkpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGFsaWdubWVudDogJyArIGFsaWdubWVudCk7XG4gICAgfVxufTtcbmV4cG9ydHMuX2FsaWduVGV4dCA9IF9hbGlnblRleHQ7XG4vKipcbiAqIEp1c3QgYWRkcyBvbmUgc3BhY2UgcGFkZGluZ3MgdG8gYm90aCBzaWRlcyBvZiBhIHRleHQuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgX3BhZFRleHQgPSAodGV4dCkgPT4gYCAke3RleHR9IGA7XG5leHBvcnRzLl9wYWRUZXh0ID0gX3BhZFRleHQ7XG4vKipcbiAqIEZvcm1hdHMgYSB0YWJsZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBfZm9ybWF0VGFibGUgPSAodGFibGUsIG9wdGlvbnMpID0+IHtcbiAgICBjb25zdCB0YWJsZUhlaWdodCA9IHRhYmxlLmdldEhlaWdodCgpO1xuICAgIGNvbnN0IHRhYmxlV2lkdGggPSB0YWJsZS5nZXRXaWR0aCgpO1xuICAgIGlmICh0YWJsZUhlaWdodCA9PT0gMCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGFibGUsXG4gICAgICAgICAgICBtYXJnaW5MZWZ0OiAnJyxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgbWFyZ2luTGVmdCA9IHRhYmxlLmdldFJvd3MoKVswXS5tYXJnaW5MZWZ0O1xuICAgIGlmICh0YWJsZVdpZHRoID09PSAwKSB7XG4gICAgICAgIGNvbnN0IHJvd3MgPSBuZXcgQXJyYXkodGFibGVIZWlnaHQpLmZpbGwobmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KFtdLCBtYXJnaW5MZWZ0LCAnJykpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGFibGU6IG5ldyB0YWJsZV8xLlRhYmxlKHJvd3MpLFxuICAgICAgICAgICAgbWFyZ2luTGVmdCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLy8gY29tcHV0ZSBjb2x1bW4gd2lkdGhzXG4gICAgY29uc3QgZGVsaW1pdGVyUm93ID0gdGFibGUuZ2V0RGVsaW1pdGVyUm93KCk7XG4gICAgY29uc3QgY29sdW1uV2lkdGhzID0gbmV3IEFycmF5KHRhYmxlV2lkdGgpLmZpbGwoMCk7XG4gICAgaWYgKGRlbGltaXRlclJvdyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IGRlbGltaXRlclJvd1dpZHRoID0gZGVsaW1pdGVyUm93LmdldFdpZHRoKCk7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZGVsaW1pdGVyUm93V2lkdGg7IGorKykge1xuICAgICAgICAgICAgY29sdW1uV2lkdGhzW2pdID0gb3B0aW9ucy5taW5EZWxpbWl0ZXJXaWR0aDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhYmxlSGVpZ2h0OyBpKyspIHtcbiAgICAgICAgaWYgKGRlbGltaXRlclJvdyAhPT0gdW5kZWZpbmVkICYmIGkgPT09IDEpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJvdyA9IHRhYmxlLmdldFJvd3MoKVtpXTtcbiAgICAgICAgY29uc3Qgcm93V2lkdGggPSByb3cuZ2V0V2lkdGgoKTtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCByb3dXaWR0aDsgaisrKSB7XG4gICAgICAgICAgICBjb2x1bW5XaWR0aHNbal0gPSBNYXRoLm1heChjb2x1bW5XaWR0aHNbal0sIGV4cG9ydHMuX2NvbXB1dGVUZXh0V2lkdGgocm93LmdldENlbGxBdChqKS5jb250ZW50LCBvcHRpb25zLnRleHRXaWR0aE9wdGlvbnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBnZXQgY29sdW1uIGFsaWdubWVudHNcbiAgICBjb25zdCBhbGlnbm1lbnRzID0gZGVsaW1pdGVyUm93ICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBleHBvcnRzLl9leHRlbmRBcnJheShkZWxpbWl0ZXJSb3cuZ2V0Q2VsbHMoKS5tYXAoKGNlbGwpID0+IGNlbGwuZ2V0QWxpZ25tZW50KCkpLCB0YWJsZVdpZHRoLCBcbiAgICAgICAgLy8gU2FmZSBjb252ZXJzaW9uIGJlY2F1c2UgRGVmYXVsdEFsaWdubWVudCBpcyBhIHN1YnNldCBvZiBBbGlnbm1lbnRcbiAgICAgICAgKCkgPT4gb3B0aW9ucy5kZWZhdWx0QWxpZ25tZW50KVxuICAgICAgICA6IG5ldyBBcnJheSh0YWJsZVdpZHRoKS5maWxsKG9wdGlvbnMuZGVmYXVsdEFsaWdubWVudCk7XG4gICAgLy8gZm9ybWF0XG4gICAgY29uc3Qgcm93cyA9IFtdO1xuICAgIC8vIGhlYWRlclxuICAgIGNvbnN0IGhlYWRlclJvdyA9IHRhYmxlLmdldFJvd3MoKVswXTtcbiAgICByb3dzLnB1c2gobmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KGhlYWRlclJvd1xuICAgICAgICAuZ2V0Q2VsbHMoKVxuICAgICAgICAubWFwKChjZWxsLCBqKSA9PiBuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbChleHBvcnRzLl9wYWRUZXh0KGV4cG9ydHMuX2FsaWduVGV4dChjZWxsLmNvbnRlbnQsIGNvbHVtbldpZHRoc1tqXSwgb3B0aW9ucy5oZWFkZXJBbGlnbm1lbnQgPT09IGFsaWdubWVudF8xLkhlYWRlckFsaWdubWVudC5GT0xMT1dcbiAgICAgICAgPyBhbGlnbm1lbnRzW2pdID09PSBhbGlnbm1lbnRfMS5BbGlnbm1lbnQuTk9ORVxuICAgICAgICAgICAgPyBvcHRpb25zLmRlZmF1bHRBbGlnbm1lbnRcbiAgICAgICAgICAgIDogYWxpZ25tZW50c1tqXVxuICAgICAgICA6IG9wdGlvbnMuaGVhZGVyQWxpZ25tZW50LCBvcHRpb25zLnRleHRXaWR0aE9wdGlvbnMpKSkpLCBtYXJnaW5MZWZ0LCAnJykpO1xuICAgIC8vIGRlbGltaXRlclxuICAgIGlmIChkZWxpbWl0ZXJSb3cgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByb3dzLnB1c2gobmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KGRlbGltaXRlclJvd1xuICAgICAgICAgICAgLmdldENlbGxzKClcbiAgICAgICAgICAgIC5tYXAoKGNlbGwsIGopID0+IG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKGV4cG9ydHMuX2RlbGltaXRlclRleHQoYWxpZ25tZW50c1tqXSwgY29sdW1uV2lkdGhzW2pdKSkpLCBtYXJnaW5MZWZ0LCAnJykpO1xuICAgIH1cbiAgICAvLyBib2R5XG4gICAgZm9yIChsZXQgaSA9IGRlbGltaXRlclJvdyAhPT0gdW5kZWZpbmVkID8gMiA6IDE7IGkgPCB0YWJsZUhlaWdodDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHJvdyA9IHRhYmxlLmdldFJvd3MoKVtpXTtcbiAgICAgICAgcm93cy5wdXNoKG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhyb3dcbiAgICAgICAgICAgIC5nZXRDZWxscygpXG4gICAgICAgICAgICAubWFwKChjZWxsLCBqKSA9PiBuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbChleHBvcnRzLl9wYWRUZXh0KGV4cG9ydHMuX2FsaWduVGV4dChjZWxsLmNvbnRlbnQsIGNvbHVtbldpZHRoc1tqXSwgYWxpZ25tZW50c1tqXSA9PT0gYWxpZ25tZW50XzEuQWxpZ25tZW50Lk5PTkVcbiAgICAgICAgICAgID8gb3B0aW9ucy5kZWZhdWx0QWxpZ25tZW50XG4gICAgICAgICAgICA6IGFsaWdubWVudHNbal0sIG9wdGlvbnMudGV4dFdpZHRoT3B0aW9ucykpKSksIG1hcmdpbkxlZnQsICcnKSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHRhYmxlOiBuZXcgdGFibGVfMS5UYWJsZShyb3dzKSxcbiAgICAgICAgbWFyZ2luTGVmdCxcbiAgICB9O1xufTtcbmV4cG9ydHMuX2Zvcm1hdFRhYmxlID0gX2Zvcm1hdFRhYmxlO1xuLyoqXG4gKiBGb3JtYXRzIGEgdGFibGUgd2Vha2x5LlxuICogUm93cyBhcmUgZm9ybWF0dGVkIGluZGVwZW5kZW50bHkgdG8gZWFjaCBvdGhlciwgY2VsbCBjb250ZW50cyBhcmUganVzdCB0cmltbWVkIGFuZCBub3QgYWxpZ25lZC5cbiAqIFRoaXMgaXMgdXNlZnVsIHdoZW4gdXNpbmcgYSBub24tbW9ub3NwYWNlZCBmb250IG9yIGRlYWxpbmcgd2l0aCB3aWRlIHRhYmxlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBfd2Vha0Zvcm1hdFRhYmxlID0gKHRhYmxlLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgdGFibGVIZWlnaHQgPSB0YWJsZS5nZXRIZWlnaHQoKTtcbiAgICBjb25zdCB0YWJsZVdpZHRoID0gdGFibGUuZ2V0V2lkdGgoKTtcbiAgICBpZiAodGFibGVIZWlnaHQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRhYmxlLFxuICAgICAgICAgICAgbWFyZ2luTGVmdDogJycsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IG1hcmdpbkxlZnQgPSB0YWJsZS5nZXRSb3dzKClbMF0ubWFyZ2luTGVmdDtcbiAgICBpZiAodGFibGVXaWR0aCA9PT0gMCkge1xuICAgICAgICBjb25zdCByb3dzID0gbmV3IEFycmF5KHRhYmxlSGVpZ2h0KS5maWxsKG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhbXSwgbWFyZ2luTGVmdCwgJycpKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRhYmxlOiBuZXcgdGFibGVfMS5UYWJsZShyb3dzKSxcbiAgICAgICAgICAgIG1hcmdpbkxlZnQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IGRlbGltaXRlclJvdyA9IHRhYmxlLmdldERlbGltaXRlclJvdygpO1xuICAgIC8vIGZvcm1hdFxuICAgIGNvbnN0IHJvd3MgPSBbXTtcbiAgICAvLyBoZWFkZXJcbiAgICBjb25zdCBoZWFkZXJSb3cgPSB0YWJsZS5nZXRSb3dzKClbMF07XG4gICAgcm93cy5wdXNoKG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhoZWFkZXJSb3cuZ2V0Q2VsbHMoKS5tYXAoKGNlbGwpID0+IG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKGV4cG9ydHMuX3BhZFRleHQoY2VsbC5jb250ZW50KSkpLCBtYXJnaW5MZWZ0LCAnJykpO1xuICAgIC8vIGRlbGltaXRlclxuICAgIGlmIChkZWxpbWl0ZXJSb3cgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByb3dzLnB1c2gobmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KGRlbGltaXRlclJvd1xuICAgICAgICAgICAgLmdldENlbGxzKClcbiAgICAgICAgICAgIC5tYXAoKGNlbGwpID0+IG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKGV4cG9ydHMuX2RlbGltaXRlclRleHQoY2VsbC5nZXRBbGlnbm1lbnQoKSwgb3B0aW9ucy5taW5EZWxpbWl0ZXJXaWR0aCkpKSwgbWFyZ2luTGVmdCwgJycpKTtcbiAgICB9XG4gICAgLy8gYm9keVxuICAgIGZvciAobGV0IGkgPSBkZWxpbWl0ZXJSb3cgIT09IHVuZGVmaW5lZCA/IDIgOiAxOyBpIDwgdGFibGVIZWlnaHQ7IGkrKykge1xuICAgICAgICBjb25zdCByb3cgPSB0YWJsZS5nZXRSb3dzKClbaV07XG4gICAgICAgIHJvd3MucHVzaChuZXcgdGFibGVfcm93XzEuVGFibGVSb3cocm93LmdldENlbGxzKCkubWFwKChjZWxsKSA9PiBuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbChleHBvcnRzLl9wYWRUZXh0KGNlbGwuY29udGVudCkpKSwgbWFyZ2luTGVmdCwgJycpKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGFibGU6IG5ldyB0YWJsZV8xLlRhYmxlKHJvd3MpLFxuICAgICAgICBtYXJnaW5MZWZ0LFxuICAgIH07XG59O1xuZXhwb3J0cy5fd2Vha0Zvcm1hdFRhYmxlID0gX3dlYWtGb3JtYXRUYWJsZTtcbi8qKlxuICogUmVwcmVzZW50cyB0YWJsZSBmb3JtYXQgdHlwZS5cbiAqXG4gKiAtIGBGb3JtYXRUeXBlLk5PUk1BTGAgLSBGb3JtYXRzIHRhYmxlIG5vcm1hbGx5LlxuICogLSBgRm9ybWF0VHlwZS5XRUFLYCAtIEZvcm1hdHMgdGFibGUgd2Vha2x5LCByb3dzIGFyZSBmb3JtYXR0ZWQgaW5kZXBlbmRlbnRseSB0byBlYWNoIG90aGVyLCBjZWxsXG4gKiAgIGNvbnRlbnRzIGFyZSBqdXN0IHRyaW1tZWQgYW5kIG5vdCBhbGlnbmVkLlxuICovXG52YXIgRm9ybWF0VHlwZTtcbihmdW5jdGlvbiAoRm9ybWF0VHlwZSkge1xuICAgIEZvcm1hdFR5cGVbXCJOT1JNQUxcIl0gPSBcIm5vcm1hbFwiO1xuICAgIEZvcm1hdFR5cGVbXCJXRUFLXCJdID0gXCJ3ZWFrXCI7XG59KShGb3JtYXRUeXBlID0gZXhwb3J0cy5Gb3JtYXRUeXBlIHx8IChleHBvcnRzLkZvcm1hdFR5cGUgPSB7fSkpO1xuLyoqXG4gKiBGb3JtYXRzIGEgdGFibGUuXG4gKlxuICogQHByaXZhdGVcbiAqXG4gKiBAdGhyb3dzIHtFcnJvcn0gVW5rbm93biBmb3JtYXQgdHlwZS5cbiAqL1xuY29uc3QgZm9ybWF0VGFibGUgPSAodGFibGUsIG9wdGlvbnMpID0+IHtcbiAgICBzd2l0Y2ggKG9wdGlvbnMuZm9ybWF0VHlwZSkge1xuICAgICAgICBjYXNlIEZvcm1hdFR5cGUuTk9STUFMOlxuICAgICAgICAgICAgcmV0dXJuIGV4cG9ydHMuX2Zvcm1hdFRhYmxlKHRhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgY2FzZSBGb3JtYXRUeXBlLldFQUs6XG4gICAgICAgICAgICByZXR1cm4gZXhwb3J0cy5fd2Vha0Zvcm1hdFRhYmxlKHRhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBmb3JtYXQgdHlwZTogJyArIG9wdGlvbnMuZm9ybWF0VHlwZSk7XG4gICAgfVxufTtcbmV4cG9ydHMuZm9ybWF0VGFibGUgPSBmb3JtYXRUYWJsZTtcbi8qKlxuICogQWx0ZXJzIGEgY29sdW1uJ3MgYWxpZ25tZW50IG9mIGEgdGFibGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB0YWJsZSAtIEEgY29tcGxldGVkIG5vbi1lbXB0eSB0YWJsZS5cbiAqIEBwYXJhbSBjb2x1bW5JbmRleCAtIEFuIGluZGV4IG9mIHRoZSBjb2x1bW4uXG4gKiBAcGFyYW0gYWxpZ25tZW50IC0gQSBuZXcgYWxpZ25tZW50IG9mIHRoZSBjb2x1bW4uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCBjb250YWluaW5nIG9wdGlvbnMgZm9yIGNvbXBsZXRpb24uXG4gKiBAcmV0dXJucyB7VGFibGV9IEFuIGFsdGVyZWQgdGFibGUgb2JqZWN0LlxuICogSWYgdGhlIGNvbHVtbiBpbmRleCBpcyBvdXQgb2YgcmFuZ2UsIHJldHVybnMgdGhlIG9yaWdpbmFsIHRhYmxlLlxuICovXG5jb25zdCBhbHRlckFsaWdubWVudCA9ICh0YWJsZSwgY29sdW1uSW5kZXgsIGFsaWdubWVudCwgb3B0aW9ucykgPT4ge1xuICAgIGlmICh0YWJsZS5nZXRIZWlnaHQoKSA8IDEpIHtcbiAgICAgICAgcmV0dXJuIHRhYmxlO1xuICAgIH1cbiAgICBjb25zdCBkZWxpbWl0ZXJSb3cgPSB0YWJsZS5nZXRSb3dzKClbMV07XG4gICAgaWYgKGNvbHVtbkluZGV4IDwgMCB8fCBkZWxpbWl0ZXJSb3cuZ2V0V2lkdGgoKSAtIDEgPCBjb2x1bW5JbmRleCkge1xuICAgICAgICByZXR1cm4gdGFibGU7XG4gICAgfVxuICAgIGNvbnN0IGRlbGltaXRlckNlbGxzID0gZGVsaW1pdGVyUm93LmdldENlbGxzKCk7XG4gICAgZGVsaW1pdGVyQ2VsbHNbY29sdW1uSW5kZXhdID0gbmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoZXhwb3J0cy5fZGVsaW1pdGVyVGV4dChhbGlnbm1lbnQsIG9wdGlvbnMubWluRGVsaW1pdGVyV2lkdGgpKTtcbiAgICBjb25zdCByb3dzID0gdGFibGUuZ2V0Um93cygpO1xuICAgIHJvd3NbMV0gPSBuZXcgdGFibGVfcm93XzEuVGFibGVSb3coZGVsaW1pdGVyQ2VsbHMsIGRlbGltaXRlclJvdy5tYXJnaW5MZWZ0LCBkZWxpbWl0ZXJSb3cubWFyZ2luUmlnaHQpO1xuICAgIHJldHVybiBuZXcgdGFibGVfMS5UYWJsZShyb3dzKTtcbn07XG5leHBvcnRzLmFsdGVyQWxpZ25tZW50ID0gYWx0ZXJBbGlnbm1lbnQ7XG4vKipcbiAqIEluc2VydHMgYSByb3cgdG8gYSB0YWJsZS5cbiAqIFRoZSByb3cgaXMgYWx3YXlzIGluc2VydGVkIGFmdGVyIHRoZSBoZWFkZXIgYW5kIHRoZSBkZWxpbWl0ZXIgcm93cywgZXZlbiBpZiB0aGUgaW5kZXggc3BlY2lmaWVzXG4gKiB0aGUgaGVhZGVyIG9yIHRoZSBkZWxpbWl0ZXIuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB0YWJsZSAtIEEgY29tcGxldGVkIG5vbi1lbXB0eSB0YWJsZS5cbiAqIEBwYXJhbSByb3dJbmRleCAtIEFuIHJvdyBpbmRleCBhdCB3aGljaCBhIG5ldyByb3cgd2lsbCBiZSBpbnNlcnRlZC5cbiAqIEBwYXJhbSByb3cgLSBBIHRhYmxlIHJvdyB0byBiZSBpbnNlcnRlZC5cbiAqIEByZXR1cm5zIEFuIGFsdGVyZWQgdGFibGUgb2JlamN0LlxuICovXG5jb25zdCBpbnNlcnRSb3cgPSAodGFibGUsIHJvd0luZGV4LCByb3cpID0+IHtcbiAgICBjb25zdCByb3dzID0gdGFibGUuZ2V0Um93cygpO1xuICAgIHJvd3Muc3BsaWNlKE1hdGgubWF4KHJvd0luZGV4LCAyKSwgMCwgcm93KTtcbiAgICByZXR1cm4gbmV3IHRhYmxlXzEuVGFibGUocm93cyk7XG59O1xuZXhwb3J0cy5pbnNlcnRSb3cgPSBpbnNlcnRSb3c7XG4vKipcbiAqIERlbGV0ZXMgYSByb3cgaW4gYSB0YWJsZS5cbiAqIElmIHRoZSBpbmRleCBzcGVjaWZpZXMgdGhlIGhlYWRlciByb3csIHRoZSBjZWxscyBhcmUgZW1wdGllZCBidXQgdGhlIHJvdyB3aWxsIG5vdCBiZSByZW1vdmVkLlxuICogSWYgdGhlIGluZGV4IHNwZWNpZmllcyB0aGUgZGVsaW1pdGVyIHJvdywgaXQgZG9lcyBub3RoaW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gdGFibGUgLSBBIGNvbXBsZXRlZCBub24tZW1wdHkgdGFibGUuXG4gKiBAcGFyYW0gcm93SW5kZXggLSBBbiBpbmRleCBvZiB0aGUgcm93IHRvIGJlIGRlbGV0ZWQuXG4gKiBAcmV0dXJucyBBbiBhbHRlcmVkIHRhYmxlIG9iZWpjdC5cbiAqL1xuY29uc3QgZGVsZXRlUm93ID0gKHRhYmxlLCByb3dJbmRleCkgPT4ge1xuICAgIGlmIChyb3dJbmRleCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gdGFibGU7XG4gICAgfVxuICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5nZXRSb3dzKCk7XG4gICAgaWYgKHJvd0luZGV4ID09PSAwKSB7XG4gICAgICAgIGNvbnN0IGhlYWRlclJvdyA9IHJvd3NbMF07XG4gICAgICAgIHJvd3NbMF0gPSBuZXcgdGFibGVfcm93XzEuVGFibGVSb3cobmV3IEFycmF5KGhlYWRlclJvdy5nZXRXaWR0aCgpKS5maWxsKG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKCcnKSksIGhlYWRlclJvdy5tYXJnaW5MZWZ0LCBoZWFkZXJSb3cubWFyZ2luUmlnaHQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcm93cy5zcGxpY2Uocm93SW5kZXgsIDEpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IHRhYmxlXzEuVGFibGUocm93cyk7XG59O1xuZXhwb3J0cy5kZWxldGVSb3cgPSBkZWxldGVSb3c7XG4vKipcbiAqIE1vdmVzIGEgcm93IGF0IHRoZSBpbmRleCB0byB0aGUgc3BlY2lmaWVkIGRlc3RpbmF0aW9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gdGFibGUgLSBBIGNvbXBsZXRlZCBub24tZW1wdHkgdGFibGUuXG4gKiBAcGFyYW0gcm93SW5kZXggLSBJbmRleCBvZiB0aGUgcm93IHRvIGJlIG1vdmVkLlxuICogQHBhcmFtIGRlc3RJbmRleCAtIEluZGV4IG9mIHRoZSBkZXN0aW5hdGlvbi5cbiAqIEByZXR1cm5zIEFuIGFsdGVyZWQgdGFibGUgb2JqZWN0LlxuICovXG5jb25zdCBtb3ZlUm93ID0gKHRhYmxlLCByb3dJbmRleCwgZGVzdEluZGV4KSA9PiB7XG4gICAgaWYgKHJvd0luZGV4IDw9IDEgfHwgZGVzdEluZGV4IDw9IDEgfHwgcm93SW5kZXggPT09IGRlc3RJbmRleCkge1xuICAgICAgICByZXR1cm4gdGFibGU7XG4gICAgfVxuICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5nZXRSb3dzKCk7XG4gICAgY29uc3Qgcm93ID0gcm93c1tyb3dJbmRleF07XG4gICAgcm93cy5zcGxpY2Uocm93SW5kZXgsIDEpO1xuICAgIHJvd3Muc3BsaWNlKGRlc3RJbmRleCwgMCwgcm93KTtcbiAgICByZXR1cm4gbmV3IHRhYmxlXzEuVGFibGUocm93cyk7XG59O1xuZXhwb3J0cy5tb3ZlUm93ID0gbW92ZVJvdztcbi8qKlxuICogSW5zZXJ0cyBhIGNvbHVtbiB0byBhIHRhYmxlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gdGFibGUgLSBBIGNvbXBsZXRlZCBub24tZW1wdHkgdGFibGUuXG4gKiBAcGFyYW0gY29sdW1uSW5kZXggLSBBbiBjb2x1bW4gaW5kZXggYXQgd2hpY2ggdGhlIG5ldyBjb2x1bW4gd2lsbCBiZSBpbnNlcnRlZC5cbiAqIEBwYXJhbSBjb2x1bW4gLSBBbiBhcnJheSBvZiBjZWxscy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgb3B0aW9ucyBmb3IgY29tcGxldGlvbi5cbiAqIEByZXR1cm5zIEFuIGFsdGVyZWQgdGFibGUgb2JlamN0LlxuICovXG5jb25zdCBpbnNlcnRDb2x1bW4gPSAodGFibGUsIGNvbHVtbkluZGV4LCBjb2x1bW4sIG9wdGlvbnMpID0+IHtcbiAgICBjb25zdCByb3dzID0gdGFibGUuZ2V0Um93cygpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCByb3cgPSByb3dzW2ldO1xuICAgICAgICBjb25zdCBjZWxscyA9IHJvd3NbaV0uZ2V0Q2VsbHMoKTtcbiAgICAgICAgY29uc3QgY2VsbCA9IGkgPT09IDFcbiAgICAgICAgICAgID8gbmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoZXhwb3J0cy5fZGVsaW1pdGVyVGV4dChhbGlnbm1lbnRfMS5BbGlnbm1lbnQuTk9ORSwgb3B0aW9ucy5taW5EZWxpbWl0ZXJXaWR0aCkpXG4gICAgICAgICAgICA6IGNvbHVtbltpID4gMSA/IGkgLSAxIDogaV07XG4gICAgICAgIGNlbGxzLnNwbGljZShjb2x1bW5JbmRleCwgMCwgY2VsbCk7XG4gICAgICAgIHJvd3NbaV0gPSBuZXcgdGFibGVfcm93XzEuVGFibGVSb3coY2VsbHMsIHJvdy5tYXJnaW5MZWZ0LCByb3cubWFyZ2luUmlnaHQpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IHRhYmxlXzEuVGFibGUocm93cyk7XG59O1xuZXhwb3J0cy5pbnNlcnRDb2x1bW4gPSBpbnNlcnRDb2x1bW47XG4vKipcbiAqIERlbGV0ZXMgYSBjb2x1bW4gaW4gYSB0YWJsZS5cbiAqIElmIHRoZXJlIHdpbGwgYmUgbm8gY29sdW1ucyBhZnRlciB0aGUgZGVsZXRpb24sIHRoZSBjZWxscyBhcmUgZW1wdGllZCBidXQgdGhlIGNvbHVtbiB3aWxsIG5vdCBiZVxuICogcmVtb3ZlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHRhYmxlIC0gQSBjb21wbGV0ZWQgbm9uLWVtcHR5IHRhYmxlLlxuICogQHBhcmFtIGNvbHVtbkluZGV4IC0gQW4gaW5kZXggb2YgdGhlIGNvbHVtbiB0byBiZSBkZWxldGVkLlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3QgY29udGFpbmluZyBvcHRpb25zIGZvciBjb21wbGV0aW9uLlxuICogQHJldHVybnMgQW4gYWx0ZXJlZCB0YWJsZSBvYmplY3QuXG4gKi9cbmNvbnN0IGRlbGV0ZUNvbHVtbiA9ICh0YWJsZSwgY29sdW1uSW5kZXgsIG9wdGlvbnMpID0+IHtcbiAgICBjb25zdCByb3dzID0gdGFibGUuZ2V0Um93cygpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCByb3cgPSByb3dzW2ldO1xuICAgICAgICBsZXQgY2VsbHMgPSByb3cuZ2V0Q2VsbHMoKTtcbiAgICAgICAgaWYgKGNlbGxzLmxlbmd0aCA8PSAxKSB7XG4gICAgICAgICAgICBjZWxscyA9IFtcbiAgICAgICAgICAgICAgICBuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbChpID09PSAxXG4gICAgICAgICAgICAgICAgICAgID8gZXhwb3J0cy5fZGVsaW1pdGVyVGV4dChhbGlnbm1lbnRfMS5BbGlnbm1lbnQuTk9ORSwgb3B0aW9ucy5taW5EZWxpbWl0ZXJXaWR0aClcbiAgICAgICAgICAgICAgICAgICAgOiAnJyksXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY2VsbHMuc3BsaWNlKGNvbHVtbkluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICByb3dzW2ldID0gbmV3IHRhYmxlX3Jvd18xLlRhYmxlUm93KGNlbGxzLCByb3cubWFyZ2luTGVmdCwgcm93Lm1hcmdpblJpZ2h0KTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyB0YWJsZV8xLlRhYmxlKHJvd3MpO1xufTtcbmV4cG9ydHMuZGVsZXRlQ29sdW1uID0gZGVsZXRlQ29sdW1uO1xuLyoqXG4gKiBNb3ZlcyBhIGNvbHVtbiBhdCB0aGUgaW5kZXggdG8gdGhlIHNwZWNpZmllZCBkZXN0aW5hdGlvbi5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHRhYmxlIC0gQSBjb21wbGV0ZWQgbm9uLWVtcHR5IHRhYmxlLlxuICogQHBhcmFtIGNvbHVtbkluZGV4IC0gSW5kZXggb2YgdGhlIGNvbHVtbiB0byBiZSBtb3ZlZC5cbiAqIEBwYXJhbSBkZXN0SW5kZXggLSBJbmRleCBvZiB0aGUgZGVzdGluYXRpb24uXG4gKiBAcmV0dXJucyBBbiBhbHRlcmVkIHRhYmxlIG9iamVjdC5cbiAqL1xuY29uc3QgbW92ZUNvbHVtbiA9ICh0YWJsZSwgY29sdW1uSW5kZXgsIGRlc3RJbmRleCkgPT4ge1xuICAgIGlmIChjb2x1bW5JbmRleCA9PT0gZGVzdEluZGV4KSB7XG4gICAgICAgIHJldHVybiB0YWJsZTtcbiAgICB9XG4gICAgY29uc3Qgcm93cyA9IHRhYmxlLmdldFJvd3MoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgcm93ID0gcm93c1tpXTtcbiAgICAgICAgY29uc3QgY2VsbHMgPSByb3cuZ2V0Q2VsbHMoKTtcbiAgICAgICAgY29uc3QgY2VsbCA9IGNlbGxzW2NvbHVtbkluZGV4XTtcbiAgICAgICAgY2VsbHMuc3BsaWNlKGNvbHVtbkluZGV4LCAxKTtcbiAgICAgICAgY2VsbHMuc3BsaWNlKGRlc3RJbmRleCwgMCwgY2VsbCk7XG4gICAgICAgIHJvd3NbaV0gPSBuZXcgdGFibGVfcm93XzEuVGFibGVSb3coY2VsbHMsIHJvdy5tYXJnaW5MZWZ0LCByb3cubWFyZ2luUmlnaHQpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IHRhYmxlXzEuVGFibGUocm93cyk7XG59O1xuZXhwb3J0cy5tb3ZlQ29sdW1uID0gbW92ZUNvbHVtbjtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5zaG9ydGVzdEVkaXRTY3JpcHQgPSBleHBvcnRzLmFwcGx5RWRpdFNjcmlwdCA9IGV4cG9ydHMuX2FwcGx5Q29tbWFuZCA9IGV4cG9ydHMuRGVsZXRlID0gZXhwb3J0cy5JbnNlcnQgPSB2b2lkIDA7XG4vKipcbiAqIFRoZSBgSW5zZXJ0YCBjbGFzcyByZXByZXNlbnRzIGFuIGluc2VydGlvbiBvZiBhIGxpbmUuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgSW5zZXJ0IHtcbiAgICAvKipcbiAgICAgKiBDcmVhdHMgYSBuZXcgYEluc2VydGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvdyAtIFJvdyBpbmRleCwgc3RhcnRzIGZyb20gYDBgLlxuICAgICAqIEBwYXJhbSBsaW5lIC0gQSBzdHJpbmcgdG8gYmUgaW5zZXJ0ZWQgYXQgdGhlIHJvdy5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihyb3csIGxpbmUpIHtcbiAgICAgICAgdGhpcy5yb3cgPSByb3c7XG4gICAgICAgIHRoaXMubGluZSA9IGxpbmU7XG4gICAgfVxufVxuZXhwb3J0cy5JbnNlcnQgPSBJbnNlcnQ7XG4vKipcbiAqIFRoZSBgRGVsZXRlYCBjbGFzcyByZXByZXNlbnRzIGEgZGVsZXRpb24gb2YgYSBsaW5lLlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIERlbGV0ZSB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBgRGVsZXRlYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm93IC0gUm93IGluZGV4LCBzdGFydHMgZnJvbSBgMGAuXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iocm93KSB7XG4gICAgICAgIHRoaXMucm93ID0gcm93O1xuICAgIH1cbn1cbmV4cG9ydHMuRGVsZXRlID0gRGVsZXRlO1xuLyoqXG4gKiBBcHBsaWVzIGEgY29tbWFuZCB0byB0aGUgdGV4dCBlZGl0b3IuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB0ZXh0RWRpdG9yIC0gQW4gaW50ZXJmYWNlIHRvIHRoZSB0ZXh0IGVkaXRvci5cbiAqIEBwYXJhbSBjb21tYW5kIC0gQSBjb21tYW5kLlxuICogQHBhcmFtIHJvd09mZnNldCAtIE9mZnNldCB0byB0aGUgcm93IGluZGV4IG9mIHRoZSBjb21tYW5kLlxuICovXG5jb25zdCBfYXBwbHlDb21tYW5kID0gKHRleHRFZGl0b3IsIGNvbW1hbmQsIHJvd09mZnNldCkgPT4ge1xuICAgIGlmIChjb21tYW5kIGluc3RhbmNlb2YgSW5zZXJ0KSB7XG4gICAgICAgIHRleHRFZGl0b3IuaW5zZXJ0TGluZShyb3dPZmZzZXQgKyBjb21tYW5kLnJvdywgY29tbWFuZC5saW5lKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY29tbWFuZCBpbnN0YW5jZW9mIERlbGV0ZSkge1xuICAgICAgICB0ZXh0RWRpdG9yLmRlbGV0ZUxpbmUocm93T2Zmc2V0ICsgY29tbWFuZC5yb3cpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGNvbW1hbmQnKTtcbiAgICB9XG59O1xuZXhwb3J0cy5fYXBwbHlDb21tYW5kID0gX2FwcGx5Q29tbWFuZDtcbi8qKlxuICogQXBwbHkgYW4gZWRpdCBzY3JpcHQgKGFycmF5IG9mIGNvbW1hbmRzKSB0byB0aGUgdGV4dCBlZGl0b3IuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB0ZXh0RWRpdG9yIC0gQW4gaW50ZXJmYWNlIHRvIHRoZSB0ZXh0IGVkaXRvci5cbiAqIEBwYXJhbSBzY3JpcHQgLSBBbiBhcnJheSBvZiBjb21tYW5kcy5cbiAqIFRoZSBjb21tYW5kcyBhcmUgYXBwbGllZCBzZXF1ZW50aWFsbHkgaW4gdGhlIG9yZGVyIG9mIHRoZSBhcnJheS5cbiAqIEBwYXJhbSByb3dPZmZzZXQgLSBPZmZzZXQgdG8gdGhlIHJvdyBpbmRleCBvZiB0aGUgY29tbWFuZHMuXG4gKi9cbmNvbnN0IGFwcGx5RWRpdFNjcmlwdCA9ICh0ZXh0RWRpdG9yLCBzY3JpcHQsIHJvd09mZnNldCkgPT4ge1xuICAgIGZvciAoY29uc3QgY29tbWFuZCBvZiBzY3JpcHQpIHtcbiAgICAgICAgZXhwb3J0cy5fYXBwbHlDb21tYW5kKHRleHRFZGl0b3IsIGNvbW1hbmQsIHJvd09mZnNldCk7XG4gICAgfVxufTtcbmV4cG9ydHMuYXBwbHlFZGl0U2NyaXB0ID0gYXBwbHlFZGl0U2NyaXB0O1xuLyoqXG4gKiBMaW5rZWQgbGlzdCB1c2VkIHRvIHJlbWVtYmVyIGVkaXQgc2NyaXB0LlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIElMaXN0IHtcbiAgICBnZXQgY2FyKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cbiAgICBnZXQgY2RyKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cbiAgICBpc0VtcHR5KCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cbiAgICB1bnNoaWZ0KHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29ucyh2YWx1ZSwgdGhpcyk7XG4gICAgfVxuICAgIHRvQXJyYXkoKSB7XG4gICAgICAgIGNvbnN0IGFyciA9IFtdO1xuICAgICAgICBsZXQgcmVzdCA9IHRoaXM7XG4gICAgICAgIHdoaWxlICghcmVzdC5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgIGFyci5wdXNoKHJlc3QuY2FyKTtcbiAgICAgICAgICAgIHJlc3QgPSByZXN0LmNkcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXJyO1xuICAgIH1cbn1cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgTmlsIGV4dGVuZHMgSUxpc3Qge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBnZXQgY2FyKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VtcHR5IGxpc3QnKTtcbiAgICB9XG4gICAgZ2V0IGNkcigpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbXB0eSBsaXN0Jyk7XG4gICAgfVxuICAgIGlzRW1wdHkoKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgQ29ucyBleHRlbmRzIElMaXN0IHtcbiAgICBjb25zdHJ1Y3RvcihjYXIsIGNkcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLl9jYXIgPSBjYXI7XG4gICAgICAgIHRoaXMuX2NkciA9IGNkcjtcbiAgICB9XG4gICAgZ2V0IGNhcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhcjtcbiAgICB9XG4gICAgZ2V0IGNkcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NkcjtcbiAgICB9XG4gICAgaXNFbXB0eSgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbi8qKlxuICogQ29tcHV0ZXMgdGhlIHNob3J0ZXN0IGVkaXQgc2NyaXB0IGJldHdlZW4gdHdvIGFycmF5cyBvZiBzdHJpbmdzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gZnJvbSAtIEFuIGFycmF5IG9mIHN0cmluZyB0aGUgZWRpdCBzdGFydHMgZnJvbS5cbiAqIEBwYXJhbSB0byAtIEFuIGFycmF5IG9mIHN0cmluZyB0aGUgZWRpdCBnb2VzIHRvLlxuICogQHBhcmFtIFtsaW1pdD0tMV0gLSBVcHBlciBsaW1pdCBvZiBlZGl0IGRpc3RhbmNlIHRvIGJlIHNlYXJjaGVkLlxuICogSWYgbmVnYXRpdmUsIHRoZXJlIGlzIG5vIGxpbWl0LlxuICogQHJldHVybnMgVGhlIHNob3J0ZXN0IGVkaXQgc2NyaXB0IHRoYXQgdHVybnMgYGZyb21gIGludG8gYHRvYDtcbiAqIGB1bmRlZmluZWRgIGlmIG5vIGVkaXQgc2NyaXB0IGlzIGZvdW5kIGluIHRoZSBnaXZlbiByYW5nZS5cbiAqL1xuY29uc3Qgc2hvcnRlc3RFZGl0U2NyaXB0ID0gKGZyb20sIHRvLCBsaW1pdCA9IC0xKSA9PiB7XG4gICAgY29uc3QgZnJvbUxlbiA9IGZyb20ubGVuZ3RoO1xuICAgIGNvbnN0IHRvTGVuID0gdG8ubGVuZ3RoO1xuICAgIGNvbnN0IG1heGQgPSBsaW1pdCA+PSAwID8gTWF0aC5taW4obGltaXQsIGZyb21MZW4gKyB0b0xlbikgOiBmcm9tTGVuICsgdG9MZW47XG4gICAgY29uc3QgbWVtID0gbmV3IEFycmF5KE1hdGgubWluKG1heGQsIGZyb21MZW4pICsgTWF0aC5taW4obWF4ZCwgdG9MZW4pICsgMSk7XG4gICAgY29uc3Qgb2Zmc2V0ID0gTWF0aC5taW4obWF4ZCwgZnJvbUxlbik7XG4gICAgZm9yIChsZXQgZCA9IDA7IGQgPD0gbWF4ZDsgZCsrKSB7XG4gICAgICAgIGNvbnN0IG1pbmsgPSBkIDw9IGZyb21MZW4gPyAtZCA6IGQgLSAyICogZnJvbUxlbjtcbiAgICAgICAgY29uc3QgbWF4ayA9IGQgPD0gdG9MZW4gPyBkIDogLWQgKyAyICogdG9MZW47XG4gICAgICAgIGZvciAobGV0IGsgPSBtaW5rOyBrIDw9IG1heGs7IGsgKz0gMikge1xuICAgICAgICAgICAgbGV0IGk7XG4gICAgICAgICAgICBsZXQgc2NyaXB0O1xuICAgICAgICAgICAgaWYgKGQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBpID0gMDtcbiAgICAgICAgICAgICAgICBzY3JpcHQgPSBuZXcgTmlsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChrID09PSAtZCkge1xuICAgICAgICAgICAgICAgIGkgPSBtZW1bb2Zmc2V0ICsgayArIDFdLmkgKyAxO1xuICAgICAgICAgICAgICAgIHNjcmlwdCA9IG1lbVtvZmZzZXQgKyBrICsgMV0uc2NyaXB0LnVuc2hpZnQobmV3IERlbGV0ZShpICsgaykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoayA9PT0gZCkge1xuICAgICAgICAgICAgICAgIGkgPSBtZW1bb2Zmc2V0ICsgayAtIDFdLmk7XG4gICAgICAgICAgICAgICAgc2NyaXB0ID0gbWVtW29mZnNldCArIGsgLSAxXS5zY3JpcHQudW5zaGlmdChuZXcgSW5zZXJ0KGkgKyBrIC0gMSwgdG9baSArIGsgLSAxXSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmkgPSBtZW1bb2Zmc2V0ICsgayArIDFdLmkgKyAxO1xuICAgICAgICAgICAgICAgIGNvbnN0IGhpID0gbWVtW29mZnNldCArIGsgLSAxXS5pO1xuICAgICAgICAgICAgICAgIGlmICh2aSA+IGhpKSB7XG4gICAgICAgICAgICAgICAgICAgIGkgPSB2aTtcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0ID0gbWVtW29mZnNldCArIGsgKyAxXS5zY3JpcHQudW5zaGlmdChuZXcgRGVsZXRlKGkgKyBrKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpID0gaGk7XG4gICAgICAgICAgICAgICAgICAgIHNjcmlwdCA9IG1lbVtvZmZzZXQgKyBrIC0gMV0uc2NyaXB0LnVuc2hpZnQobmV3IEluc2VydChpICsgayAtIDEsIHRvW2kgKyBrIC0gMV0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aGlsZSAoaSA8IGZyb21MZW4gJiYgaSArIGsgPCB0b0xlbiAmJiBmcm9tW2ldID09PSB0b1tpICsga10pIHtcbiAgICAgICAgICAgICAgICBpICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoayA9PT0gdG9MZW4gLSBmcm9tTGVuICYmIGkgPT09IGZyb21MZW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2NyaXB0LnRvQXJyYXkoKS5yZXZlcnNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtZW1bb2Zmc2V0ICsga10gPSB7IGksIHNjcmlwdCB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuZXhwb3J0cy5zaG9ydGVzdEVkaXRTY3JpcHQgPSBzaG9ydGVzdEVkaXRTY3JpcHQ7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuSVRleHRFZGl0b3IgPSB2b2lkIDA7XG4vKipcbiAqIFRoZSBgSVRleHRFZGl0b3JgIHJlcHJlc2VudHMgYW4gaW50ZXJmYWNlIHRvIGEgdGV4dCBlZGl0b3IuXG4gKlxuICogQGludGVyZmFjZVxuICovXG5jbGFzcyBJVGV4dEVkaXRvciB7XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBIHBvaW50IG9iamVjdCB0aGF0IHJlcHJlc2VudHMgdGhlIGN1cnNvciBwb3NpdGlvbi5cbiAgICAgKi9cbiAgICBnZXRDdXJzb3JQb3NpdGlvbigpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQ6IGdldEN1cnNvclBvc2l0aW9uJyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGN1cnNvciBwb3NpdGlvbiB0byBhIHNwZWNpZmllZCBvbmUuXG4gICAgICovXG4gICAgc2V0Q3Vyc29yUG9zaXRpb24ocG9zKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkOiBzZXRDdXJzb3JQb3NpdGlvbicpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBzZWxlY3Rpb24gcmFuZ2UuXG4gICAgICogVGhpcyBtZXRob2QgYWxzbyBleHBlY3RzIHRoZSBjdXJzb3IgcG9zaXRpb24gdG8gYmUgbW92ZWQgYXMgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLlxuICAgICAqL1xuICAgIHNldFNlbGVjdGlvblJhbmdlKHJhbmdlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkOiBzZXRTZWxlY3Rpb25SYW5nZScpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBsYXN0IHJvdyBpbmRleCBvZiB0aGUgdGV4dCBlZGl0b3IuXG4gICAgICovXG4gICAgZ2V0TGFzdFJvdygpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQ6IGdldExhc3RSb3cnKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBlZGl0b3IgYWNjZXB0cyBhIHRhYmxlIGF0IGEgcm93IHRvIGJlIGVkaXR0ZWQuXG4gICAgICogSXQgc2hvdWxkIHJldHVybiBgZmFsc2VgIGlmLCBmb3IgZXhhbXBsZSwgdGhlIHJvdyBpcyBpbiBhIGNvZGUgYmxvY2sgKG5vdCBNYXJrZG93bikuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm93IC0gQSByb3cgaW5kZXggaW4gdGhlIHRleHQgZWRpdG9yLlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdGFibGUgYXQgdGhlIHJvdyBjYW4gYmUgZWRpdHRlZC5cbiAgICAgKi9cbiAgICBhY2NlcHRzVGFibGVFZGl0KHJvdykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZDogYWNjZXB0c1RhYmxlRWRpdCcpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgbGluZSBzdHJpbmcgYXQgYSByb3cuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm93IC0gUm93IGluZGV4LCBzdGFydHMgZnJvbSBgMGAuXG4gICAgICogQHJldHVybnMgVGhlIGxpbmUgYXQgdGhlIHNwZWNpZmllZCByb3cuXG4gICAgICogVGhlIGxpbmUgbXVzdCBub3QgY29udGFpbiBhbiBFT0wgbGlrZSBgXCJcXG5cImAgb3IgYFwiXFxyXCJgLlxuICAgICAqL1xuICAgIGdldExpbmUocm93KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkOiBnZXRMaW5lJyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluc2VydHMgYSBsaW5lIGF0IGEgc3BlY2lmaWVkIHJvdy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb3cgLSBSb3cgaW5kZXgsIHN0YXJ0cyBmcm9tIGAwYC5cbiAgICAgKiBAcGFyYW0gbGluZSAtIEEgc3RyaW5nIHRvIGJlIGluc2VydGVkLlxuICAgICAqIFRoaXMgbXVzdCBub3QgY29udGFpbiBhbiBFT0wgbGlrZSBgXCJcXG5cImAgb3IgYFwiXFxyXCJgLlxuICAgICAqL1xuICAgIGluc2VydExpbmUocm93LCBsaW5lKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkOiBpbnNlcnRMaW5lJyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSBsaW5lIGF0IGEgc3BlY2lmaWVkIHJvdy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb3cgLSBSb3cgaW5kZXgsIHN0YXJ0cyBmcm9tIGAwYC5cbiAgICAgKi9cbiAgICBkZWxldGVMaW5lKHJvdykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZDogZGVsZXRlTGluZScpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXBsYWNlIGxpbmVzIGluIGEgc3BlY2lmaWVkIHJhbmdlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0YXJ0Um93IC0gU3RhcnQgcm93IGluZGV4LCBzdGFydHMgZnJvbSBgMGAuXG4gICAgICogQHBhcmFtIGVuZFJvdyAtIEVuZCByb3cgaW5kZXguXG4gICAgICogTGluZXMgZnJvbSBgc3RhcnRSb3dgIHRvIGBlbmRSb3cgLSAxYCBpcyByZXBsYWNlZC5cbiAgICAgKiBAcGFyYW0gbGluZXMgLSBBbiBhcnJheSBvZiBzdHJpbmcuXG4gICAgICogRWFjaCBzdHJpbmdzIG11c3Qgbm90IGNvbnRhaW4gYW4gRU9MIGxpa2UgYFwiXFxuXCJgIG9yIGBcIlxcclwiYC5cbiAgICAgKi9cbiAgICByZXBsYWNlTGluZXMoc3RhcnRSb3csIGVuZFJvdywgbGluZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQ6IHJlcGxhY2VMaW5lcycpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBCYXRjaGVzIG11bHRpcGxlIG9wZXJhdGlvbnMgYXMgYSBzaW5nbGUgdW5kby9yZWRvIHN0ZXAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZnVuYyAtIEEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBleGVjdXRlcyBzb21lIG9wZXJhdGlvbnMgb24gdGhlIHRleHQgZWRpdG9yLlxuICAgICAqL1xuICAgIHRyYW5zYWN0KGZ1bmMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQ6IHRyYW5zYWN0Jyk7XG4gICAgfVxufVxuZXhwb3J0cy5JVGV4dEVkaXRvciA9IElUZXh0RWRpdG9yO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlZmF1bHRPcHRpb25zID0gZXhwb3J0cy5vcHRpb25zV2l0aERlZmF1bHRzID0gdm9pZCAwO1xuY29uc3QgYWxpZ25tZW50XzEgPSByZXF1aXJlKFwiLi9hbGlnbm1lbnRcIik7XG5jb25zdCBmb3JtYXR0ZXJfMSA9IHJlcXVpcmUoXCIuL2Zvcm1hdHRlclwiKTtcbmNvbnN0IERFRkFVTFRfVEVYVF9XSURUSF9PUFRJT05TID0ge1xuICAgIG5vcm1hbGl6ZTogdHJ1ZSxcbiAgICB3aWRlQ2hhcnM6IG5ldyBTZXQoKSxcbiAgICBuYXJyb3dDaGFyczogbmV3IFNldCgpLFxuICAgIGFtYmlndW91c0FzV2lkZTogZmFsc2UsXG59O1xuY29uc3QgREVGQVVMVF9PUFRJT05TID0ge1xuICAgIGxlZnRNYXJnaW5DaGFyczogbmV3IFNldCgpLFxuICAgIGZvcm1hdFR5cGU6IGZvcm1hdHRlcl8xLkZvcm1hdFR5cGUuTk9STUFMLFxuICAgIG1pbkRlbGltaXRlcldpZHRoOiAzLFxuICAgIGRlZmF1bHRBbGlnbm1lbnQ6IGFsaWdubWVudF8xLkRlZmF1bHRBbGlnbm1lbnQuTEVGVCxcbiAgICBoZWFkZXJBbGlnbm1lbnQ6IGFsaWdubWVudF8xLkhlYWRlckFsaWdubWVudC5GT0xMT1csXG4gICAgc21hcnRDdXJzb3I6IGZhbHNlLFxufTtcbi8qKlxuICogQ3JlYXRlIGFuIE9wdGlvbnMgb2JqZWN0IGZvciB0aGUgZm9ybWF0dGVyLlxuICogVGhlIGRlZmF1bHQgdmFsdWVzIGFyZSB1c2VkIGZvciBvcHRpb25zIHRoYXQgYXJlIG5vdCBzcGVjaWZpZWQuXG4gKlxuICogVGhlIGF2YWlsYWJsZSBvcHRpb25zIGFuZCBkZWZhdWx0IHZhbHVlcyBhcmUgbGlzdGVkIGJlbG93LlxuICpcbiAqIHwgcHJvcGVydHkgbmFtZSAgICAgICB8IHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGRlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkZWZhdWx0IHZhbHVlICAgICAgICAgICAgfFxuICogfCAtLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8XG4gKiB8IGBsZWZ0TWFyZ2luQ2hhcnNgICAgfCB7QGxpbmsgU2V0fSZsdDt7QGxpbmsgc3RyaW5nfSZndDsgfCBBIHNldCBvZiBhZGRpdGlvbmFsIGxlZnQgbWFyZ2luIGNoYXJhY3RlcnMuICAgICAgICAgICAgIHwgYG5ldyBTZXQoKWAgICAgICAgICAgICAgIHxcbiAqIHwgYGZvcm1hdFR5cGVgICAgICAgICB8IHtAbGluayBGb3JtYXRUeXBlfSAgICAgICAgICAgICAgICB8IEZvcm1hdCB0eXBlLCBub3JtYWwgb3Igd2Vhay4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgRm9ybWF0VHlwZS5OT1JNQUxgICAgICAgfFxuICogfCBgbWluRGVsaW1pdGVyV2lkdGhgIHwge0BsaW5rIG51bWJlcn0gICAgICAgICAgICAgICAgICAgIHwgTWluaW11bSB3aWR0aCBvZiBkZWxpbWl0ZXJzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGAzYCAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGBkZWZhdWx0QWxpZ25tZW50YCAgfCB7QGxpbmsgRGVmYXVsdEFsaWdubWVudH0gICAgICAgICAgfCBEZWZhdWx0IGFsaWdubWVudCBvZiBjb2x1bW5zLiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYERlZmF1bHRBbGlnbm1lbnQuTEVGVGAgIHxcbiAqIHwgYGhlYWRlckFsaWdubWVudGAgICB8IHtAbGluayBIZWFkZXJBbGlnbm1lbnR9ICAgICAgICAgICB8IEFsaWdubWVudCBvZiBoZWFkZXIgY2VsbHMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgSGVhZGVyQWxpZ25tZW50LkZPTExPV2AgfFxuICogfCBgdGV4dFdpZHRoT3B0aW9uc2AgIHwge0BsaW5rIFRleHRXaWR0aE9wdGlvbnN9ICAgICAgICAgIHwgQW4gb2JqZWN0IGNvbnRhaW5pbmcgb3B0aW9ucyBmb3IgY29tcHV0aW5nIHRleHQgd2lkdGhzLiB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGBzbWFydEN1cnNvcmAgICAgICAgfCB7QGxpbmsgYm9vbGVhbn0gICAgICAgICAgICAgICAgICAgfCBFbmFibGVzIFwiU21hcnQgQ3Vyc29yXCIgZmVhdHVyZS4gICAgICAgICAgICAgICAgICAgICAgICAgfCBgZmFsc2VgICAgICAgICAgICAgICAgICAgfFxuICpcbiAqIFRoZSBhdmFpbGFibGUgb3B0aW9ucyBmb3IgYHRleHRXaWR0aE9wdGlvbnNgIGFyZSB0aGUgZm9sbG93aW5nIG9uZXMuXG4gKlxuICogfCBwcm9wZXJ0eSBuYW1lICAgICB8IHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGRlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZGVmYXVsdCB2YWx1ZSB8XG4gKiB8IC0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHxcbiAqIHwgYG5vcm1hbGl6ZWAgICAgICAgfCB7QGxpbmsgYm9vbGVhbn0gICAgICAgICAgICAgICAgICAgfCBOb3JtYWxpemVzIHRleHRzIGJlZm9yZSBjb21wdXRpbmcgdGV4dCB3aWR0aHMuICAgICAgICB8IGB0cnVlYCAgICAgICAgfFxuICogfCBgd2lkZUNoYXJzYCAgICAgICB8IHtAbGluayBTZXR9Jmx0O3tAbGluayBzdHJpbmd9Jmd0OyB8IEEgc2V0IG9mIGNoYXJhY3RlcnMgdGhhdCBzaG91bGQgYmUgdHJlYXRlZCBhcyB3aWRlLiAgIHwgYG5ldyBTZXQoKWAgICB8XG4gKiB8IGBuYXJyb3dDaGFyc2AgICAgIHwge0BsaW5rIFNldH0mbHQ7e0BsaW5rIHN0cmluZ30mZ3Q7IHwgQSBzZXQgb2YgY2hhcmFjdGVycyB0aGF0IHNob3VsZCBiZSB0cmVhdGVkIGFzIG5hcnJvdy4gfCBgbmV3IFNldCgpYCAgIHxcbiAqIHwgYGFtYmlndW91c0FzV2lkZWAgfCB7QGxpbmsgYm9vbGVhbn0gICAgICAgICAgICAgICAgICAgfCBUcmVhdHMgRWFzdCBBc2lhbiBBbWJpZ3VvdXMgY2hhcmFjdGVycyBhcyB3aWRlLiAgICAgICB8IGBmYWxzZWAgICAgICAgfFxuICpcbiAqL1xuY29uc3Qgb3B0aW9uc1dpdGhEZWZhdWx0cyA9IChvcHRpb25zKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfT1BUSU9OUyksIG9wdGlvbnMpLCB7IHRleHRXaWR0aE9wdGlvbnM6IG9wdGlvbnMudGV4dFdpZHRoT3B0aW9uc1xuICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9URVhUX1dJRFRIX09QVElPTlMpLCBvcHRpb25zLnRleHRXaWR0aE9wdGlvbnMpIDogREVGQVVMVF9URVhUX1dJRFRIX09QVElPTlMgfSkpO1xuZXhwb3J0cy5vcHRpb25zV2l0aERlZmF1bHRzID0gb3B0aW9uc1dpdGhEZWZhdWx0cztcbmV4cG9ydHMuZGVmYXVsdE9wdGlvbnMgPSBleHBvcnRzLm9wdGlvbnNXaXRoRGVmYXVsdHMoe30pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRhYmxlRWRpdG9yID0gZXhwb3J0cy5fY29tcHV0ZU5ld09mZnNldCA9IGV4cG9ydHMuX2NyZWF0ZUlzVGFibGVGb3JtdWxhUmVnZXggPSBleHBvcnRzLl9jcmVhdGVJc1RhYmxlUm93UmVnZXggPSBleHBvcnRzLlNvcnRPcmRlciA9IHZvaWQgMDtcbmNvbnN0IGVkaXRfc2NyaXB0XzEgPSByZXF1aXJlKFwiLi9lZGl0LXNjcmlwdFwiKTtcbmNvbnN0IGZvY3VzXzEgPSByZXF1aXJlKFwiLi9mb2N1c1wiKTtcbmNvbnN0IGZvcm1hdHRlcl8xID0gcmVxdWlyZShcIi4vZm9ybWF0dGVyXCIpO1xuY29uc3QgcGFyc2VyXzEgPSByZXF1aXJlKFwiLi9wYXJzZXJcIik7XG5jb25zdCBwb2ludF8xID0gcmVxdWlyZShcIi4vcG9pbnRcIik7XG5jb25zdCByYW5nZV8xID0gcmVxdWlyZShcIi4vcmFuZ2VcIik7XG5jb25zdCB0YWJsZV8xID0gcmVxdWlyZShcIi4vdGFibGVcIik7XG5jb25zdCB0YWJsZV9jZWxsXzEgPSByZXF1aXJlKFwiLi90YWJsZS1jZWxsXCIpO1xuY29uc3QgdGFibGVfcm93XzEgPSByZXF1aXJlKFwiLi90YWJsZS1yb3dcIik7XG52YXIgU29ydE9yZGVyO1xuKGZ1bmN0aW9uIChTb3J0T3JkZXIpIHtcbiAgICBTb3J0T3JkZXJbXCJBc2NlbmRpbmdcIl0gPSBcImFzY2VuZGluZ1wiO1xuICAgIFNvcnRPcmRlcltcIkRlc2NlbmRpbmdcIl0gPSBcImRlc2NlbmRpbmdcIjtcbn0pKFNvcnRPcmRlciA9IGV4cG9ydHMuU29ydE9yZGVyIHx8IChleHBvcnRzLlNvcnRPcmRlciA9IHt9KSk7XG4vKipcbiAqIENyZWF0ZXMgYSByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0IHRoYXQgbWF0Y2hlcyBhIHRhYmxlIHJvdy5cbiAqXG4gKiBAcGFyYW0gbGVmdE1hcmdpbkNoYXJzIC0gQSBzZXQgb2YgYWRkaXRpb25hbCBsZWZ0IG1hcmdpbiBjaGFyYWN0ZXJzLlxuICogQSBwaXBlIGB8YCwgYSBiYWNrc2xhc2ggYFxcYCwgYW5kIGEgYmFja3F1b3RlIHdpbGwgYmUgaWdub3JlZC5cbiAqIEByZXR1cm5zIEEgcmVndWxhciBleHByZXNzaW9uIG9iamVjdCB0aGF0IG1hdGNoZXMgYSB0YWJsZSByb3cuXG4gKi9cbmNvbnN0IF9jcmVhdGVJc1RhYmxlUm93UmVnZXggPSAobGVmdE1hcmdpbkNoYXJzKSA9PiBuZXcgUmVnRXhwKGBeJHtwYXJzZXJfMS5tYXJnaW5SZWdleFNyYyhsZWZ0TWFyZ2luQ2hhcnMpfVxcXFx8YCwgJ3UnKTtcbmV4cG9ydHMuX2NyZWF0ZUlzVGFibGVSb3dSZWdleCA9IF9jcmVhdGVJc1RhYmxlUm93UmVnZXg7XG5jb25zdCBfY3JlYXRlSXNUYWJsZUZvcm11bGFSZWdleCA9IChsZWZ0TWFyZ2luQ2hhcnMpID0+IG5ldyBSZWdFeHAoYF4ke3BhcnNlcl8xLm1hcmdpblJlZ2V4U3JjKGxlZnRNYXJnaW5DaGFycyl9PCEtLSA/ListLT4kYCwgJ3UnKTtcbmV4cG9ydHMuX2NyZWF0ZUlzVGFibGVGb3JtdWxhUmVnZXggPSBfY3JlYXRlSXNUYWJsZUZvcm11bGFSZWdleDtcbi8qKlxuICogQ29tcHV0ZXMgbmV3IGZvY3VzIG9mZnNldCBmcm9tIGluZm9ybWF0aW9uIG9mIGNvbXBsZXRlZCBhbmQgZm9ybWF0dGVkIHRhYmxlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIGZvY3VzIC0gQSBmb2N1cy5cbiAqIEBwYXJhbSB0YWJsZSAtIEEgY29tcGxldGVkIGJ1dCBub3QgZm9ybWF0dGVkIHRhYmxlIHdpdGggb3JpZ2luYWwgY2VsbCBjb250ZW50cy5cbiAqIEBwYXJhbSBmb3JtYXR0ZWQgLSBJbmZvcm1hdGlvbiBvZiB0aGUgZm9ybWF0dGVkIHRhYmxlLlxuICogQHBhcmFtIG1vdmVkIC0gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZvY3VzIHBvc2l0aW9uIGlzIG1vdmVkIGJ5IGEgY29tbWFuZCBvciBub3QuXG4gKi9cbmNvbnN0IF9jb21wdXRlTmV3T2Zmc2V0ID0gKGZvY3VzLCB0YWJsZSwgZm9ybWF0dGVkLCBtb3ZlZCkgPT4ge1xuICAgIGlmIChtb3ZlZCkge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRGb2N1c2VkQ2VsbCA9IGZvcm1hdHRlZC50YWJsZS5nZXRGb2N1c2VkQ2VsbChmb2N1cyk7XG4gICAgICAgIGlmIChmb3JtYXR0ZWRGb2N1c2VkQ2VsbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0dGVkRm9jdXNlZENlbGwuY29tcHV0ZVJhd09mZnNldCgwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm9jdXMuY29sdW1uIDwgMCA/IGZvcm1hdHRlZC5tYXJnaW5MZWZ0Lmxlbmd0aCA6IDA7XG4gICAgfVxuICAgIGNvbnN0IGZvY3VzZWRDZWxsID0gdGFibGUuZ2V0Rm9jdXNlZENlbGwoZm9jdXMpO1xuICAgIGNvbnN0IGZvcm1hdHRlZEZvY3VzZWRDZWxsID0gZm9ybWF0dGVkLnRhYmxlLmdldEZvY3VzZWRDZWxsKGZvY3VzKTtcbiAgICBpZiAoZm9jdXNlZENlbGwgIT09IHVuZGVmaW5lZCAmJiBmb3JtYXR0ZWRGb2N1c2VkQ2VsbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRPZmZzZXQgPSBNYXRoLm1pbihmb2N1c2VkQ2VsbC5jb21wdXRlQ29udGVudE9mZnNldChmb2N1cy5vZmZzZXQpLCBmb3JtYXR0ZWRGb2N1c2VkQ2VsbC5jb250ZW50Lmxlbmd0aCk7XG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWRGb2N1c2VkQ2VsbC5jb21wdXRlUmF3T2Zmc2V0KGNvbnRlbnRPZmZzZXQpO1xuICAgIH1cbiAgICByZXR1cm4gZm9jdXMuY29sdW1uIDwgMCA/IGZvcm1hdHRlZC5tYXJnaW5MZWZ0Lmxlbmd0aCA6IDA7XG59O1xuZXhwb3J0cy5fY29tcHV0ZU5ld09mZnNldCA9IF9jb21wdXRlTmV3T2Zmc2V0O1xuLyoqXG4gKiBUaGUgYFRhYmxlRWRpdG9yYCBjbGFzcyBpcyBhdCB0aGUgY2VudGVyIG9mIHRoZSBtYXJrZG93bi10YWJsZS1lZGl0b3IuXG4gKiBXaGVuIGEgY29tbWFuZCBpcyBleGVjdXRlZCwgaXQgcmVhZHMgYSB0YWJsZSBmcm9tIHRoZSB0ZXh0IGVkaXRvciwgZG9lcyBzb21lIG9wZXJhdGlvbiBvbiB0aGVcbiAqIHRhYmxlLCBhbmQgdGhlbiBhcHBseSB0aGUgcmVzdWx0IHRvIHRoZSB0ZXh0IGVkaXRvci5cbiAqXG4gKiBUbyB1c2UgdGhpcyBjbGFzcywgdGhlIHRleHQgZWRpdG9yIChvciBhbiBpbnRlcmZhY2UgdG8gaXQpIG11c3QgaW1wbGVtZW50IHtAbGluayBJVGV4dEVkaXRvcn0uXG4gKi9cbmNsYXNzIFRhYmxlRWRpdG9yIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IHRhYmxlIGVkaXRvciBpbnN0YW5jZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0ZXh0RWRpdG9yIC0gQSB0ZXh0IGVkaXRvciBpbnRlcmZhY2UuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IodGV4dEVkaXRvcikge1xuICAgICAgICB0aGlzLl90ZXh0RWRpdG9yID0gdGV4dEVkaXRvcjtcbiAgICAgICAgLy8gc21hcnQgY3Vyc29yXG4gICAgICAgIHRoaXMuX3NjQWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlc2V0cyB0aGUgc21hcnQgY3Vyc29yLlxuICAgICAqIENhbGwgdGhpcyBtZXRob2Qgd2hlbiB0aGUgdGFibGUgZWRpdG9yIGlzIGluYWN0aXZhdGVkLlxuICAgICAqL1xuICAgIHJlc2V0U21hcnRDdXJzb3IoKSB7XG4gICAgICAgIHRoaXMuX3NjQWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgY3Vyc29yIGlzIGluIGEgdGFibGUgcm93LiBSZXR1cm5zIGZhbHNlIGlmIHRoZSBjdXJzb3IgaXMgaW4gYVxuICAgICAqIHRhYmxlIGZvcm11bGEgcm93IChzZWUgY3Vyc29ySXNJblRhYmxlRm9ybXVsYSkuXG4gICAgICogVGhpcyBpcyB1c2VmdWwgdG8gY2hlY2sgd2hldGhlciB0aGUgdGFibGUgZWRpdG9yIHNob3VsZCBiZSBhY3RpdmF0ZWQgb3Igbm90LlxuICAgICAqXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBjdXJzb3IgaXMgaW4gYSB0YWJsZSByb3cuXG4gICAgICovXG4gICAgY3Vyc29ySXNJblRhYmxlKG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcmUgPSBleHBvcnRzLl9jcmVhdGVJc1RhYmxlUm93UmVnZXgob3B0aW9ucy5sZWZ0TWFyZ2luQ2hhcnMpO1xuICAgICAgICBjb25zdCBwb3MgPSB0aGlzLl90ZXh0RWRpdG9yLmdldEN1cnNvclBvc2l0aW9uKCk7XG4gICAgICAgIHJldHVybiAodGhpcy5fdGV4dEVkaXRvci5hY2NlcHRzVGFibGVFZGl0KHBvcy5yb3cpICYmXG4gICAgICAgICAgICByZS50ZXN0KHRoaXMuX3RleHRFZGl0b3IuZ2V0TGluZShwb3Mucm93KSkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIGN1cnNvciBpcyBpbiBhIGZvcm11bGEgcm93IGJlbG93IGEgdGFibGUuXG4gICAgICogVGhpcyBpcyB1c2VmdWwgdG8gY2hlY2sgd2hldGhlciB0aGUgdGFibGUgZWRpdG9yIHNob3VsZCBiZSBhY3RpdmF0ZWQgb3Igbm90LlxuICAgICAqXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBjdXJzb3IgaXMgaW4gYSBmb3JtdWxhIHJvdy5cbiAgICAgKi9cbiAgICBjdXJzb3JJc0luVGFibGVGb3JtdWxhKG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgZm9ybXVsYVJlID0gZXhwb3J0cy5fY3JlYXRlSXNUYWJsZUZvcm11bGFSZWdleChvcHRpb25zLmxlZnRNYXJnaW5DaGFycyk7XG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMuX3RleHRFZGl0b3IuZ2V0Q3Vyc29yUG9zaXRpb24oKTtcbiAgICAgICAgcmV0dXJuICh0aGlzLl90ZXh0RWRpdG9yLmFjY2VwdHNUYWJsZUVkaXQocG9zLnJvdykgJiZcbiAgICAgICAgICAgIGZvcm11bGFSZS50ZXN0KHRoaXMuX3RleHRFZGl0b3IuZ2V0TGluZShwb3Mucm93KSkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBGaW5kcyBhIHRhYmxlIHVuZGVyIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbi5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHVuZGVmaW5lZCBpZiB0aGVyZSBpcyBubyB0YWJsZSBvciB0aGUgZGV0ZXJtaW5lZCBmb2N1cyBpcyBpbnZhbGlkLlxuICAgICAqL1xuICAgIF9maW5kVGFibGUob3B0aW9ucykge1xuICAgICAgICBjb25zdCByZSA9IGV4cG9ydHMuX2NyZWF0ZUlzVGFibGVSb3dSZWdleChvcHRpb25zLmxlZnRNYXJnaW5DaGFycyk7XG4gICAgICAgIGNvbnN0IGZvcm11bGFSZSA9IGV4cG9ydHMuX2NyZWF0ZUlzVGFibGVGb3JtdWxhUmVnZXgob3B0aW9ucy5sZWZ0TWFyZ2luQ2hhcnMpO1xuICAgICAgICBsZXQgcG9zID0gdGhpcy5fdGV4dEVkaXRvci5nZXRDdXJzb3JQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBsYXN0Um93ID0gdGhpcy5fdGV4dEVkaXRvci5nZXRMYXN0Um93KCk7XG4gICAgICAgIGNvbnN0IGxpbmVzID0gW107XG4gICAgICAgIGNvbnN0IGZvcm11bGFMaW5lcyA9IFtdO1xuICAgICAgICBsZXQgc3RhcnRSb3cgPSBwb3Mucm93O1xuICAgICAgICBsZXQgZW5kUm93ID0gcG9zLnJvdzsgLy8gZW5kUm93IGlzIGxhc3QgbGluZSBiZWZvcmUgZm9tdWxhc1xuICAgICAgICAvLyBpZiB0aGUgY3Vyc29yIGlzIG9uIGZvcm11bGEgbGluZSwgd29yayB1cCB1bnRpbCB3ZSBmaW5kIHRoZSBsYXN0IHJvdyBvZiB0aGUgdGFibGVcbiAgICAgICAge1xuICAgICAgICAgICAgbGV0IGxpbmUgPSB0aGlzLl90ZXh0RWRpdG9yLmdldExpbmUocG9zLnJvdyk7XG4gICAgICAgICAgICB3aGlsZSAoZm9ybXVsYVJlLnRlc3QobGluZSkgJiYgcG9zLnJvdyA+PSAwKSB7XG4gICAgICAgICAgICAgICAgcG9zID0gbmV3IHBvaW50XzEuUG9pbnQocG9zLnJvdyAtIDEsIHBvcy5jb2x1bW4pO1xuICAgICAgICAgICAgICAgIGVuZFJvdy0tO1xuICAgICAgICAgICAgICAgIGxpbmUgPSB0aGlzLl90ZXh0RWRpdG9yLmdldExpbmUocG9zLnJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3VycmVudCBsaW5lXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSB0aGlzLl90ZXh0RWRpdG9yLmdldExpbmUocG9zLnJvdyk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3RleHRFZGl0b3IuYWNjZXB0c1RhYmxlRWRpdChwb3Mucm93KSB8fCAhcmUudGVzdChsaW5lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5lcy5wdXNoKGxpbmUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHByZXZpb3VzIGxpbmVzXG4gICAgICAgIGZvciAobGV0IHJvdyA9IHBvcy5yb3cgLSAxOyByb3cgPj0gMDsgcm93LS0pIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSB0aGlzLl90ZXh0RWRpdG9yLmdldExpbmUocm93KTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fdGV4dEVkaXRvci5hY2NlcHRzVGFibGVFZGl0KHJvdykgfHwgIXJlLnRlc3QobGluZSkpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpbmVzLnVuc2hpZnQobGluZSk7XG4gICAgICAgICAgICBzdGFydFJvdyA9IHJvdztcbiAgICAgICAgfVxuICAgICAgICAvLyBuZXh0IGxpbmVzXG4gICAgICAgIGZvciAobGV0IHJvdyA9IHBvcy5yb3cgKyAxOyByb3cgPD0gbGFzdFJvdzsgcm93KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSB0aGlzLl90ZXh0RWRpdG9yLmdldExpbmUocm93KTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fdGV4dEVkaXRvci5hY2NlcHRzVGFibGVFZGl0KHJvdykgfHwgIXJlLnRlc3QobGluZSkpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpbmVzLnB1c2gobGluZSk7XG4gICAgICAgICAgICBlbmRSb3cgPSByb3c7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZm9ybXVsYSBsaW5lc1xuICAgICAgICBmb3IgKGxldCByb3cgPSBlbmRSb3cgKyAxOyByb3cgPD0gbGFzdFJvdzsgcm93KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSB0aGlzLl90ZXh0RWRpdG9yLmdldExpbmUocm93KTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fdGV4dEVkaXRvci5hY2NlcHRzVGFibGVFZGl0KHJvdykgfHwgIWZvcm11bGFSZS50ZXN0KGxpbmUpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3JtdWxhTGluZXMucHVzaChsaW5lKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByYW5nZSA9IG5ldyByYW5nZV8xLlJhbmdlKG5ldyBwb2ludF8xLlBvaW50KHN0YXJ0Um93LCAwKSwgbmV3IHBvaW50XzEuUG9pbnQoZW5kUm93LCBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGgpKTtcbiAgICAgICAgY29uc3QgdGFibGUgPSBwYXJzZXJfMS5yZWFkVGFibGUobGluZXMsIG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBmb2N1cyA9IHRhYmxlLmZvY3VzT2ZQb3NpdGlvbihwb3MsIHN0YXJ0Um93KTtcbiAgICAgICAgaWYgKGZvY3VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IFZhbGlkYXRlIHRoaXMgZm9yIGNvcnJlY3RuZXNzXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHJhbmdlLCBsaW5lcywgZm9ybXVsYUxpbmVzLCB0YWJsZSwgZm9jdXMgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRmluZHMgYSB0YWJsZSBhbmQgZG9lcyBhbiBvcGVyYXRpb24gd2l0aCBpdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIGZ1bmMgLSBBIGZ1bmN0aW9uIHRoYXQgZG9lcyBzb21lIG9wZXJhdGlvbiBvbiB0YWJsZSBpbmZvcm1hdGlvbiBvYnRhaW5lZCBieVxuICAgICAqIHtAbGluayBUYWJsZUVkaXRvciNfZmluZFRhYmxlfS5cbiAgICAgKi9cbiAgICBfd2l0aFRhYmxlKG9wdGlvbnMsIGZ1bmMpIHtcbiAgICAgICAgY29uc3QgaW5mbyA9IHRoaXMuX2ZpbmRUYWJsZShvcHRpb25zKTtcbiAgICAgICAgaWYgKGluZm8gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdW5jKGluZm8pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIGxpbmVzIGluIGEgZ2l2ZW4gcmFuZ2UgaW4gdGhlIHRleHQgZWRpdG9yLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0gc3RhcnRSb3cgLSBTdGFydCByb3cgaW5kZXgsIHN0YXJ0cyBmcm9tIGAwYC5cbiAgICAgKiBAcGFyYW0gZW5kUm93IC0gRW5kIHJvdyBpbmRleC5cbiAgICAgKiBMaW5lcyBmcm9tIGBzdGFydFJvd2AgdG8gYGVuZFJvdyAtIDFgIGFyZSByZXBsYWNlZC5cbiAgICAgKiBAcGFyYW0gbmV3TGluZXMgLSBOZXcgbGluZXMuXG4gICAgICogQHBhcmFtIFtvbGRMaW5lcz11bmRlZmluZWRdIC0gT2xkIGxpbmVzIHRvIGJlIHJlcGxhY2VkLlxuICAgICAqL1xuICAgIF91cGRhdGVMaW5lcyhzdGFydFJvdywgZW5kUm93LCBuZXdMaW5lcywgb2xkTGluZXMgPSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKG9sZExpbmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIGFwcGx5IHRoZSBzaG9ydGVzdCBlZGl0IHNjcmlwdFxuICAgICAgICAgICAgLy8gaWYgYSB0YWJsZSBpcyBlZGl0ZWQgaW4gYSBub3JtYWwgbWFubmVyLCB0aGUgZWRpdCBkaXN0YW5jZSBuZXZlciBleGNlZWRzIDNcbiAgICAgICAgICAgIGNvbnN0IHNlcyA9IGVkaXRfc2NyaXB0XzEuc2hvcnRlc3RFZGl0U2NyaXB0KG9sZExpbmVzLCBuZXdMaW5lcywgMyk7XG4gICAgICAgICAgICBpZiAoc2VzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBlZGl0X3NjcmlwdF8xLmFwcGx5RWRpdFNjcmlwdCh0aGlzLl90ZXh0RWRpdG9yLCBzZXMsIHN0YXJ0Um93KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdGV4dEVkaXRvci5yZXBsYWNlTGluZXMoc3RhcnRSb3csIGVuZFJvdywgbmV3TGluZXMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNb3ZlcyB0aGUgY3Vyc29yIHBvc2l0aW9uIHRvIHRoZSBmb2N1c2VkIGNlbGwsXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSBzdGFydFJvdyAtIFJvdyBpbmRleCB3aGVyZSB0aGUgdGFibGUgc3RhcnRzIGluIHRoZSB0ZXh0IGVkaXRvci5cbiAgICAgKiBAcGFyYW0gdGFibGUgLSBBIHRhYmxlLlxuICAgICAqIEBwYXJhbSBmb2N1cyAtIEEgZm9jdXMgdG8gd2hpY2ggdGhlIGN1cnNvciB3aWxsIGJlIG1vdmVkLlxuICAgICAqL1xuICAgIF9tb3ZlVG9Gb2N1cyhzdGFydFJvdywgdGFibGUsIGZvY3VzKSB7XG4gICAgICAgIGNvbnN0IHBvcyA9IHRhYmxlLnBvc2l0aW9uT2ZGb2N1cyhmb2N1cywgc3RhcnRSb3cpO1xuICAgICAgICBpZiAocG9zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3RleHRFZGl0b3Iuc2V0Q3Vyc29yUG9zaXRpb24ocG9zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZWxlY3RzIHRoZSBmb2N1c2VkIGNlbGwuXG4gICAgICogSWYgdGhlIGNlbGwgaGFzIG5vIGNvbnRlbnQgdG8gYmUgc2VsZWN0ZWQsIHRoZW4ganVzdCBtb3ZlcyB0aGUgY3Vyc29yIHBvc2l0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0gc3RhcnRSb3cgLSBSb3cgaW5kZXggd2hlcmUgdGhlIHRhYmxlIHN0YXJ0cyBpbiB0aGUgdGV4dCBlZGl0b3IuXG4gICAgICogQHBhcmFtIHRhYmxlIC0gQSB0YWJsZS5cbiAgICAgKiBAcGFyYW0gZm9jdXMgLSBBIGZvY3VzIHRvIGJlIHNlbGVjdGVkLlxuICAgICAqL1xuICAgIF9zZWxlY3RGb2N1cyhzdGFydFJvdywgdGFibGUsIGZvY3VzKSB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gdGFibGUuc2VsZWN0aW9uUmFuZ2VPZkZvY3VzKGZvY3VzLCBzdGFydFJvdyk7XG4gICAgICAgIGlmIChyYW5nZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnNldFNlbGVjdGlvblJhbmdlKHJhbmdlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21vdmVUb0ZvY3VzKHN0YXJ0Um93LCB0YWJsZSwgZm9jdXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEZvcm1hdHMgdGhlIHRhYmxlIHVuZGVyIHRoZSBjdXJzb3IuXG4gICAgICovXG4gICAgZm9ybWF0KG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy53aXRoQ29tcGxldGVkVGFibGUob3B0aW9ucywgKHsgcmFuZ2UsIGxpbmVzLCB0YWJsZSwgZm9jdXMgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3Rm9jdXMgPSBmb2N1cztcbiAgICAgICAgICAgIC8vIGFwcGx5XG4gICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnRyYW5zYWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVMaW5lcyhyYW5nZS5zdGFydC5yb3csIHJhbmdlLmVuZC5yb3cgKyAxLCB0YWJsZS50b0xpbmVzKCksIGxpbmVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb3ZlVG9Gb2N1cyhyYW5nZS5zdGFydC5yb3csIHRhYmxlLCBuZXdGb2N1cyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEZvcm1hdHMgYW5kIGVzY2FwZXMgZnJvbSB0aGUgdGFibGUuXG4gICAgICovXG4gICAgZXNjYXBlKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fd2l0aFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgdGFibGUsIGZvY3VzIH0pID0+IHtcbiAgICAgICAgICAgIC8vIGNvbXBsZXRlXG4gICAgICAgICAgICBjb25zdCBjb21wbGV0ZWQgPSBmb3JtYXR0ZXJfMS5jb21wbGV0ZVRhYmxlKHRhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgIC8vIGZvcm1hdFxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0dGVyXzEuZm9ybWF0VGFibGUoY29tcGxldGVkLnRhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgIC8vIGFwcGx5XG4gICAgICAgICAgICBjb25zdCBuZXdSb3cgPSByYW5nZS5lbmQucm93ICsgKGNvbXBsZXRlZC5kZWxpbWl0ZXJJbnNlcnRlZCA/IDIgOiAxKTtcbiAgICAgICAgICAgIHRoaXMuX3RleHRFZGl0b3IudHJhbnNhY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUxpbmVzKHJhbmdlLnN0YXJ0LnJvdywgcmFuZ2UuZW5kLnJvdyArIDEsIGZvcm1hdHRlZC50YWJsZS50b0xpbmVzKCksIGxpbmVzKTtcbiAgICAgICAgICAgICAgICBsZXQgbmV3UG9zO1xuICAgICAgICAgICAgICAgIGlmIChuZXdSb3cgPiB0aGlzLl90ZXh0RWRpdG9yLmdldExhc3RSb3coKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLmluc2VydExpbmUobmV3Um93LCAnJyk7XG4gICAgICAgICAgICAgICAgICAgIG5ld1BvcyA9IG5ldyBwb2ludF8xLlBvaW50KG5ld1JvdywgMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZSA9IG5ldyBSZWdFeHAoYF4ke3BhcnNlcl8xLm1hcmdpblJlZ2V4U3JjKG9wdGlvbnMubGVmdE1hcmdpbkNoYXJzKX1gLCAndScpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0TGluZSA9IHRoaXMuX3RleHRFZGl0b3IuZ2V0TGluZShuZXdSb3cpO1xuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE9cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gcmUuZXhlYyhuZXh0TGluZSlbMF07XG4gICAgICAgICAgICAgICAgICAgIG5ld1BvcyA9IG5ldyBwb2ludF8xLlBvaW50KG5ld1JvdywgbWFyZ2luLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX3RleHRFZGl0b3Iuc2V0Q3Vyc29yUG9zaXRpb24obmV3UG9zKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5yZXNldFNtYXJ0Q3Vyc29yKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBbHRlcnMgdGhlIGFsaWdubWVudCBvZiB0aGUgZm9jdXNlZCBjb2x1bW4uXG4gICAgICovXG4gICAgYWxpZ25Db2x1bW4oYWxpZ25tZW50LCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMud2l0aENvbXBsZXRlZFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgdGFibGUsIGZvY3VzIH0pID0+IHtcbiAgICAgICAgICAgIGxldCBuZXdGb2N1cyA9IGZvY3VzO1xuICAgICAgICAgICAgLy8gYWx0ZXIgYWxpZ25tZW50XG4gICAgICAgICAgICBsZXQgYWx0ZXJlZCA9IHRhYmxlO1xuICAgICAgICAgICAgaWYgKDAgPD0gbmV3Rm9jdXMuY29sdW1uICYmXG4gICAgICAgICAgICAgICAgbmV3Rm9jdXMuY29sdW1uIDw9IGFsdGVyZWQuZ2V0SGVhZGVyV2lkdGgoKSAtIDEpIHtcbiAgICAgICAgICAgICAgICBhbHRlcmVkID0gZm9ybWF0dGVyXzEuYWx0ZXJBbGlnbm1lbnQodGFibGUsIG5ld0ZvY3VzLmNvbHVtbiwgYWxpZ25tZW50LCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGZvcm1hdFxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0dGVyXzEuZm9ybWF0VGFibGUoYWx0ZXJlZCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldE9mZnNldChleHBvcnRzLl9jb21wdXRlTmV3T2Zmc2V0KG5ld0ZvY3VzLCB0YWJsZSwgZm9ybWF0dGVkLCBmYWxzZSkpO1xuICAgICAgICAgICAgLy8gYXBwbHlcbiAgICAgICAgICAgIHRoaXMuX3RleHRFZGl0b3IudHJhbnNhY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUxpbmVzKHJhbmdlLnN0YXJ0LnJvdywgcmFuZ2UuZW5kLnJvdyArIDEsIGZvcm1hdHRlZC50YWJsZS50b0xpbmVzKCksIGxpbmVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb3ZlVG9Gb2N1cyhyYW5nZS5zdGFydC5yb3csIGZvcm1hdHRlZC50YWJsZSwgbmV3Rm9jdXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZWxlY3RzIHRoZSBmb2N1c2VkIGNlbGwgY29udGVudC5cbiAgICAgKi9cbiAgICBzZWxlY3RDZWxsKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy53aXRoQ29tcGxldGVkVGFibGUob3B0aW9ucywgKHsgcmFuZ2UsIGxpbmVzLCB0YWJsZSwgZm9jdXMgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3Rm9jdXMgPSBmb2N1cztcbiAgICAgICAgICAgIC8vIGFwcGx5XG4gICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnRyYW5zYWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVMaW5lcyhyYW5nZS5zdGFydC5yb3csIHJhbmdlLmVuZC5yb3cgKyAxLCB0YWJsZS50b0xpbmVzKCksIGxpbmVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RGb2N1cyhyYW5nZS5zdGFydC5yb3csIHRhYmxlLCBuZXdGb2N1cyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1vdmVzIHRoZSBmb2N1cyB0byBhbm90aGVyIGNlbGwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm93T2Zmc2V0IC0gT2Zmc2V0IGluIHJvdy5cbiAgICAgKiBAcGFyYW0gY29sdW1uT2Zmc2V0IC0gT2Zmc2V0IGluIGNvbHVtbi5cbiAgICAgKi9cbiAgICBtb3ZlRm9jdXMocm93T2Zmc2V0LCBjb2x1bW5PZmZzZXQsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy53aXRoQ29tcGxldGVkVGFibGUob3B0aW9ucywgKHsgcmFuZ2UsIGxpbmVzLCB0YWJsZSwgZm9jdXMgfSkgPT4ge1xuICAgICAgICAgICAgbGV0IG5ld0ZvY3VzID0gZm9jdXM7XG4gICAgICAgICAgICBjb25zdCBzdGFydEZvY3VzID0gbmV3Rm9jdXM7XG4gICAgICAgICAgICAvLyBtb3ZlIGZvY3VzXG4gICAgICAgICAgICBpZiAocm93T2Zmc2V0ICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gdGFibGUuZ2V0SGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgLy8gc2tpcCBkZWxpbWl0ZXIgcm93XG4gICAgICAgICAgICAgICAgY29uc3Qgc2tpcCA9IG5ld0ZvY3VzLnJvdyA8IDEgJiYgbmV3Rm9jdXMucm93ICsgcm93T2Zmc2V0ID49IDFcbiAgICAgICAgICAgICAgICAgICAgPyAxXG4gICAgICAgICAgICAgICAgICAgIDogbmV3Rm9jdXMucm93ID4gMSAmJiBuZXdGb2N1cy5yb3cgKyByb3dPZmZzZXQgPD0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAtMVxuICAgICAgICAgICAgICAgICAgICAgICAgOiAwO1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Um93KE1hdGgubWluKE1hdGgubWF4KG5ld0ZvY3VzLnJvdyArIHJvd09mZnNldCArIHNraXAsIDApLCBoZWlnaHQgPD0gMiA/IDAgOiBoZWlnaHQgLSAxKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY29sdW1uT2Zmc2V0ICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSB0YWJsZS5nZXRIZWFkZXJXaWR0aCgpO1xuICAgICAgICAgICAgICAgIGlmICghKG5ld0ZvY3VzLmNvbHVtbiA8IDAgJiYgY29sdW1uT2Zmc2V0IDwgMCkgJiZcbiAgICAgICAgICAgICAgICAgICAgIShuZXdGb2N1cy5jb2x1bW4gPiB3aWR0aCAtIDEgJiYgY29sdW1uT2Zmc2V0ID4gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRDb2x1bW4oTWF0aC5taW4oTWF0aC5tYXgobmV3Rm9jdXMuY29sdW1uICsgY29sdW1uT2Zmc2V0LCAwKSwgd2lkdGggLSAxKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbW92ZWQgPSAhbmV3Rm9jdXMucG9zRXF1YWxzKHN0YXJ0Rm9jdXMpO1xuICAgICAgICAgICAgLy8gZm9ybWF0XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXR0ZXJfMS5mb3JtYXRUYWJsZSh0YWJsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldE9mZnNldChleHBvcnRzLl9jb21wdXRlTmV3T2Zmc2V0KG5ld0ZvY3VzLCB0YWJsZSwgZm9ybWF0dGVkLCBtb3ZlZCkpO1xuICAgICAgICAgICAgLy8gYXBwbHlcbiAgICAgICAgICAgIHRoaXMuX3RleHRFZGl0b3IudHJhbnNhY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUxpbmVzKHJhbmdlLnN0YXJ0LnJvdywgcmFuZ2UuZW5kLnJvdyArIDEsIGZvcm1hdHRlZC50YWJsZS50b0xpbmVzKCksIGxpbmVzKTtcbiAgICAgICAgICAgICAgICBpZiAobW92ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0Rm9jdXMocmFuZ2Uuc3RhcnQucm93LCBmb3JtYXR0ZWQudGFibGUsIG5ld0ZvY3VzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX21vdmVUb0ZvY3VzKHJhbmdlLnN0YXJ0LnJvdywgZm9ybWF0dGVkLnRhYmxlLCBuZXdGb2N1cyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAobW92ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0U21hcnRDdXJzb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1vdmVzIHRoZSBmb2N1cyB0byB0aGUgbmV4dCBjZWxsLlxuICAgICAqL1xuICAgIG5leHRDZWxsKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fd2l0aFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgdGFibGUsIGZvY3VzIH0pID0+IHtcbiAgICAgICAgICAgIC8vIHJlc2V0IHNtYXJ0IGN1cnNvciBpZiBtb3ZlZFxuICAgICAgICAgICAgY29uc3QgZm9jdXNNb3ZlZCA9ICh0aGlzLl9zY1RhYmxlUG9zICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAhcmFuZ2Uuc3RhcnQuZXF1YWxzKHRoaXMuX3NjVGFibGVQb3MpKSB8fFxuICAgICAgICAgICAgICAgICh0aGlzLl9zY0xhc3RGb2N1cyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgICFmb2N1cy5wb3NFcXVhbHModGhpcy5fc2NMYXN0Rm9jdXMpKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zY0FjdGl2ZSAmJiBmb2N1c01vdmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldFNtYXJ0Q3Vyc29yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgbmV3Rm9jdXMgPSBmb2N1cztcbiAgICAgICAgICAgIC8vIGNvbXBsZXRlXG4gICAgICAgICAgICBjb25zdCBjb21wbGV0ZWQgPSBmb3JtYXR0ZXJfMS5jb21wbGV0ZVRhYmxlKHRhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgIGlmIChjb21wbGV0ZWQuZGVsaW1pdGVySW5zZXJ0ZWQgJiYgbmV3Rm9jdXMucm93ID4gMCkge1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Um93KG5ld0ZvY3VzLnJvdyArIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc3RhcnRGb2N1cyA9IG5ld0ZvY3VzO1xuICAgICAgICAgICAgbGV0IGFsdGVyZWQgPSBjb21wbGV0ZWQudGFibGU7XG4gICAgICAgICAgICAvLyBtb3ZlIGZvY3VzXG4gICAgICAgICAgICBpZiAobmV3Rm9jdXMucm93ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgLy8gbW92ZSB0byBuZXh0IHJvd1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Um93KDIpO1xuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnNtYXJ0Q3Vyc29yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXdGb2N1cy5jb2x1bW4gPCAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBhbHRlcmVkLmdldEhlYWRlcldpZHRoKCkgLSAxIDwgbmV3Rm9jdXMuY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldENvbHVtbigwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRDb2x1bW4oMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGluc2VydCBhbiBlbXB0eSByb3cgaWYgbmVlZGVkXG4gICAgICAgICAgICAgICAgaWYgKG5ld0ZvY3VzLnJvdyA+IGFsdGVyZWQuZ2V0SGVpZ2h0KCkgLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9IG5ldyBBcnJheShhbHRlcmVkLmdldEhlYWRlcldpZHRoKCkpLmZpbGwobmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoJycpKTtcbiAgICAgICAgICAgICAgICAgICAgYWx0ZXJlZCA9IGZvcm1hdHRlcl8xLmluc2VydFJvdyhhbHRlcmVkLCBhbHRlcmVkLmdldEhlaWdodCgpLCBuZXcgdGFibGVfcm93XzEuVGFibGVSb3cocm93LCAnJywgJycpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBpbnNlcnQgYW4gZW1wdHkgY29sdW1uIGlmIG5lZWRlZFxuICAgICAgICAgICAgICAgIGlmIChuZXdGb2N1cy5jb2x1bW4gPiBhbHRlcmVkLmdldEhlYWRlcldpZHRoKCkgLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IG5ldyBBcnJheShhbHRlcmVkLmdldEhlaWdodCgpIC0gMSkuZmlsbChuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbCgnJykpO1xuICAgICAgICAgICAgICAgICAgICBhbHRlcmVkID0gZm9ybWF0dGVyXzEuaW5zZXJ0Q29sdW1uKGFsdGVyZWQsIGFsdGVyZWQuZ2V0SGVhZGVyV2lkdGgoKSwgY29sdW1uLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gbW92ZSB0byBuZXh0IGNvbHVtblxuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Q29sdW1uKG5ld0ZvY3VzLmNvbHVtbiArIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZm9ybWF0XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXR0ZXJfMS5mb3JtYXRUYWJsZShhbHRlcmVkLCBvcHRpb25zKTtcbiAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0T2Zmc2V0KGV4cG9ydHMuX2NvbXB1dGVOZXdPZmZzZXQobmV3Rm9jdXMsIGFsdGVyZWQsIGZvcm1hdHRlZCwgdHJ1ZSkpO1xuICAgICAgICAgICAgLy8gYXBwbHlcbiAgICAgICAgICAgIGNvbnN0IG5ld0xpbmVzID0gZm9ybWF0dGVkLnRhYmxlLnRvTGluZXMoKTtcbiAgICAgICAgICAgIGlmIChuZXdGb2N1cy5jb2x1bW4gPiBmb3JtYXR0ZWQudGFibGUuZ2V0SGVhZGVyV2lkdGgoKSAtIDEpIHtcbiAgICAgICAgICAgICAgICAvLyBhZGQgbWFyZ2luXG4gICAgICAgICAgICAgICAgbmV3TGluZXNbbmV3Rm9jdXMucm93XSArPSAnICc7XG4gICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRPZmZzZXQoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnRyYW5zYWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVMaW5lcyhyYW5nZS5zdGFydC5yb3csIHJhbmdlLmVuZC5yb3cgKyAxLCBuZXdMaW5lcywgbGluZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEZvY3VzKHJhbmdlLnN0YXJ0LnJvdywgZm9ybWF0dGVkLnRhYmxlLCBuZXdGb2N1cyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnNtYXJ0Q3Vyc29yKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9zY0FjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBhY3RpdmF0ZSBzbWFydCBjdXJzb3JcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2NBY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY1RhYmxlUG9zID0gcmFuZ2Uuc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGFydEZvY3VzLmNvbHVtbiA8IDAgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZC50YWJsZS5nZXRIZWFkZXJXaWR0aCgpIC0gMSA8IHN0YXJ0Rm9jdXMuY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY1N0YXJ0Rm9jdXMgPSBuZXcgZm9jdXNfMS5Gb2N1cyhzdGFydEZvY3VzLnJvdywgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY1N0YXJ0Rm9jdXMgPSBzdGFydEZvY3VzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX3NjTGFzdEZvY3VzID0gbmV3Rm9jdXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNb3ZlcyB0aGUgZm9jdXMgdG8gdGhlIHByZXZpb3VzIGNlbGwuXG4gICAgICovXG4gICAgcHJldmlvdXNDZWxsKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy53aXRoQ29tcGxldGVkVGFibGUob3B0aW9ucywgKHsgcmFuZ2UsIGxpbmVzLCB0YWJsZSwgZm9jdXMgfSkgPT4ge1xuICAgICAgICAgICAgbGV0IG5ld0ZvY3VzID0gZm9jdXM7XG4gICAgICAgICAgICBjb25zdCBzdGFydEZvY3VzID0gbmV3Rm9jdXM7XG4gICAgICAgICAgICAvLyBtb3ZlIGZvY3VzXG4gICAgICAgICAgICBpZiAobmV3Rm9jdXMucm93ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5ld0ZvY3VzLmNvbHVtbiA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRDb2x1bW4obmV3Rm9jdXMuY29sdW1uIC0gMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobmV3Rm9jdXMucm93ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXcgZm9jdXNfMS5Gb2N1cygwLCB0YWJsZS5nZXRIZWFkZXJXaWR0aCgpIC0gMSwgbmV3Rm9jdXMub2Zmc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChuZXdGb2N1cy5jb2x1bW4gPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Q29sdW1uKG5ld0ZvY3VzLmNvbHVtbiAtIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXcgZm9jdXNfMS5Gb2N1cyhuZXdGb2N1cy5yb3cgPT09IDIgPyAwIDogbmV3Rm9jdXMucm93IC0gMSwgdGFibGUuZ2V0SGVhZGVyV2lkdGgoKSAtIDEsIG5ld0ZvY3VzLm9mZnNldCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbW92ZWQgPSAhbmV3Rm9jdXMucG9zRXF1YWxzKHN0YXJ0Rm9jdXMpO1xuICAgICAgICAgICAgLy8gZm9ybWF0XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXR0ZXJfMS5mb3JtYXRUYWJsZSh0YWJsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldE9mZnNldChleHBvcnRzLl9jb21wdXRlTmV3T2Zmc2V0KG5ld0ZvY3VzLCB0YWJsZSwgZm9ybWF0dGVkLCBtb3ZlZCkpO1xuICAgICAgICAgICAgLy8gYXBwbHlcbiAgICAgICAgICAgIHRoaXMuX3RleHRFZGl0b3IudHJhbnNhY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUxpbmVzKHJhbmdlLnN0YXJ0LnJvdywgcmFuZ2UuZW5kLnJvdyArIDEsIGZvcm1hdHRlZC50YWJsZS50b0xpbmVzKCksIGxpbmVzKTtcbiAgICAgICAgICAgICAgICBpZiAobW92ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0Rm9jdXMocmFuZ2Uuc3RhcnQucm93LCBmb3JtYXR0ZWQudGFibGUsIG5ld0ZvY3VzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX21vdmVUb0ZvY3VzKHJhbmdlLnN0YXJ0LnJvdywgZm9ybWF0dGVkLnRhYmxlLCBuZXdGb2N1cyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAobW92ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0U21hcnRDdXJzb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1vdmVzIHRoZSBmb2N1cyB0byB0aGUgbmV4dCByb3cuXG4gICAgICovXG4gICAgbmV4dFJvdyhvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuX3dpdGhUYWJsZShvcHRpb25zLCAoeyByYW5nZSwgbGluZXMsIHRhYmxlLCBmb2N1cyB9KSA9PiB7XG4gICAgICAgICAgICAvLyByZXNldCBzbWFydCBjdXJzb3IgaWYgbW92ZWRcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzTW92ZWQgPSAodGhpcy5fc2NUYWJsZVBvcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgIXJhbmdlLnN0YXJ0LmVxdWFscyh0aGlzLl9zY1RhYmxlUG9zKSkgfHxcbiAgICAgICAgICAgICAgICAodGhpcy5fc2NMYXN0Rm9jdXMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICAhZm9jdXMucG9zRXF1YWxzKHRoaXMuX3NjTGFzdEZvY3VzKSk7XG4gICAgICAgICAgICBpZiAodGhpcy5fc2NBY3RpdmUgJiYgZm9jdXNNb3ZlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRTbWFydEN1cnNvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IG5ld0ZvY3VzID0gZm9jdXM7XG4gICAgICAgICAgICAvLyBjb21wbGV0ZVxuICAgICAgICAgICAgY29uc3QgY29tcGxldGVkID0gZm9ybWF0dGVyXzEuY29tcGxldGVUYWJsZSh0YWJsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICBpZiAoY29tcGxldGVkLmRlbGltaXRlckluc2VydGVkICYmIG5ld0ZvY3VzLnJvdyA+IDApIHtcbiAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldFJvdyhuZXdGb2N1cy5yb3cgKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0Rm9jdXMgPSBuZXdGb2N1cztcbiAgICAgICAgICAgIGxldCBhbHRlcmVkID0gY29tcGxldGVkLnRhYmxlO1xuICAgICAgICAgICAgLy8gbW92ZSBmb2N1c1xuICAgICAgICAgICAgaWYgKG5ld0ZvY3VzLnJvdyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Um93KDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRSb3cobmV3Rm9jdXMucm93ICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zbWFydEN1cnNvcikge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9zY0FjdGl2ZSAmJiB0aGlzLl9zY1N0YXJ0Rm9jdXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldENvbHVtbih0aGlzLl9zY1N0YXJ0Rm9jdXMuY29sdW1uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobmV3Rm9jdXMuY29sdW1uIDwgMCB8fFxuICAgICAgICAgICAgICAgICAgICBhbHRlcmVkLmdldEhlYWRlcldpZHRoKCkgLSAxIDwgbmV3Rm9jdXMuY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Q29sdW1uKDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Q29sdW1uKDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaW5zZXJ0IGVtcHR5IHJvdyBpZiBuZWVkZWRcbiAgICAgICAgICAgIGlmIChuZXdGb2N1cy5yb3cgPiBhbHRlcmVkLmdldEhlaWdodCgpIC0gMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9IG5ldyBBcnJheShhbHRlcmVkLmdldEhlYWRlcldpZHRoKCkpLmZpbGwobmV3IHRhYmxlX2NlbGxfMS5UYWJsZUNlbGwoJycpKTtcbiAgICAgICAgICAgICAgICBhbHRlcmVkID0gZm9ybWF0dGVyXzEuaW5zZXJ0Um93KGFsdGVyZWQsIGFsdGVyZWQuZ2V0SGVpZ2h0KCksIG5ldyB0YWJsZV9yb3dfMS5UYWJsZVJvdyhyb3csICcnLCAnJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZm9ybWF0XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXR0ZXJfMS5mb3JtYXRUYWJsZShhbHRlcmVkLCBvcHRpb25zKTtcbiAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0T2Zmc2V0KGV4cG9ydHMuX2NvbXB1dGVOZXdPZmZzZXQobmV3Rm9jdXMsIGFsdGVyZWQsIGZvcm1hdHRlZCwgdHJ1ZSkpO1xuICAgICAgICAgICAgLy8gYXBwbHlcbiAgICAgICAgICAgIHRoaXMuX3RleHRFZGl0b3IudHJhbnNhY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUxpbmVzKHJhbmdlLnN0YXJ0LnJvdywgcmFuZ2UuZW5kLnJvdyArIDEsIGZvcm1hdHRlZC50YWJsZS50b0xpbmVzKCksIGxpbmVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RGb2N1cyhyYW5nZS5zdGFydC5yb3csIGZvcm1hdHRlZC50YWJsZSwgbmV3Rm9jdXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zbWFydEN1cnNvcikge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fc2NBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWN0aXZhdGUgc21hcnQgY3Vyc29yXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NjQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2NUYWJsZVBvcyA9IHJhbmdlLnN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRGb2N1cy5jb2x1bW4gPCAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWQudGFibGUuZ2V0SGVhZGVyV2lkdGgoKSAtIDEgPCBzdGFydEZvY3VzLmNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2NTdGFydEZvY3VzID0gbmV3IGZvY3VzXzEuRm9jdXMoc3RhcnRGb2N1cy5yb3csIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2NTdGFydEZvY3VzID0gc3RhcnRGb2N1cztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9zY0xhc3RGb2N1cyA9IG5ld0ZvY3VzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW5zZXJ0cyBhbiBlbXB0eSByb3cgYXQgdGhlIGN1cnJlbnQgZm9jdXMuXG4gICAgICovXG4gICAgaW5zZXJ0Um93KG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy53aXRoQ29tcGxldGVkVGFibGUob3B0aW9ucywgKHsgcmFuZ2UsIGxpbmVzLCBmb3JtdWxhTGluZXMsIHRhYmxlLCBmb2N1cyB9KSA9PiB7XG4gICAgICAgICAgICBsZXQgbmV3Rm9jdXMgPSBmb2N1cztcbiAgICAgICAgICAgIC8vIG1vdmUgZm9jdXNcbiAgICAgICAgICAgIGlmIChuZXdGb2N1cy5yb3cgPD0gMSkge1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Um93KDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRDb2x1bW4oMCk7XG4gICAgICAgICAgICAvLyBpbnNlcnQgYW4gZW1wdHkgcm93XG4gICAgICAgICAgICBjb25zdCByb3cgPSBuZXcgQXJyYXkodGFibGUuZ2V0SGVhZGVyV2lkdGgoKSkuZmlsbChuZXcgdGFibGVfY2VsbF8xLlRhYmxlQ2VsbCgnJykpO1xuICAgICAgICAgICAgY29uc3QgYWx0ZXJlZCA9IGZvcm1hdHRlcl8xLmluc2VydFJvdyh0YWJsZSwgbmV3Rm9jdXMucm93LCBuZXcgdGFibGVfcm93XzEuVGFibGVSb3cocm93LCAnJywgJycpKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QW5kQXBwbHkob3B0aW9ucywgcmFuZ2UsIGxpbmVzLCBmb3JtdWxhTGluZXMsIGFsdGVyZWQsIG5ld0ZvY3VzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSByb3cgYXQgdGhlIGN1cnJlbnQgZm9jdXMuXG4gICAgICovXG4gICAgZGVsZXRlUm93KG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy53aXRoQ29tcGxldGVkVGFibGUob3B0aW9ucywgKHsgcmFuZ2UsIGxpbmVzLCBmb3JtdWxhTGluZXMsIHRhYmxlLCBmb2N1cyB9KSA9PiB7XG4gICAgICAgICAgICBsZXQgbmV3Rm9jdXMgPSBmb2N1cztcbiAgICAgICAgICAgIC8vIGRlbGV0ZSBhIHJvd1xuICAgICAgICAgICAgbGV0IGFsdGVyZWQgPSB0YWJsZTtcbiAgICAgICAgICAgIGxldCBtb3ZlZCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKG5ld0ZvY3VzLnJvdyAhPT0gMSkge1xuICAgICAgICAgICAgICAgIGFsdGVyZWQgPSBmb3JtYXR0ZXJfMS5kZWxldGVSb3coYWx0ZXJlZCwgbmV3Rm9jdXMucm93KTtcbiAgICAgICAgICAgICAgICBtb3ZlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKG5ld0ZvY3VzLnJvdyA+IGFsdGVyZWQuZ2V0SGVpZ2h0KCkgLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Um93KG5ld0ZvY3VzLnJvdyA9PT0gMiA/IDAgOiBuZXdGb2N1cy5yb3cgLSAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmZvcm1hdEFuZEFwcGx5KG9wdGlvbnMsIHJhbmdlLCBsaW5lcywgZm9ybXVsYUxpbmVzLCBhbHRlcmVkLCBuZXdGb2N1cywgbW92ZWQpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTW92ZXMgdGhlIGZvY3VzZWQgcm93IGJ5IHRoZSBzcGVjaWZpZWQgb2Zmc2V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIG9mZnNldCAtIEFuIG9mZnNldCB0aGUgcm93IGlzIG1vdmVkIGJ5LlxuICAgICAqL1xuICAgIG1vdmVSb3cob2Zmc2V0LCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMud2l0aENvbXBsZXRlZFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgZm9ybXVsYUxpbmVzLCB0YWJsZSwgZm9jdXMgfSkgPT4ge1xuICAgICAgICAgICAgbGV0IG5ld0ZvY3VzID0gZm9jdXM7XG4gICAgICAgICAgICAvLyBtb3ZlIHJvd1xuICAgICAgICAgICAgbGV0IGFsdGVyZWQgPSB0YWJsZTtcbiAgICAgICAgICAgIGlmIChuZXdGb2N1cy5yb3cgPiAxKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVzdCA9IE1hdGgubWluKE1hdGgubWF4KG5ld0ZvY3VzLnJvdyArIG9mZnNldCwgMiksIGFsdGVyZWQuZ2V0SGVpZ2h0KCkgLSAxKTtcbiAgICAgICAgICAgICAgICBhbHRlcmVkID0gZm9ybWF0dGVyXzEubW92ZVJvdyhhbHRlcmVkLCBuZXdGb2N1cy5yb3csIGRlc3QpO1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Um93KGRlc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5mb3JtYXRBbmRBcHBseShvcHRpb25zLCByYW5nZSwgbGluZXMsIGZvcm11bGFMaW5lcywgYWx0ZXJlZCwgbmV3Rm9jdXMpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZXZhbHVhdGVGb3JtdWxhcyhvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhDb21wbGV0ZWRUYWJsZShvcHRpb25zLCAoeyByYW5nZSwgbGluZXMsIGZvcm11bGFMaW5lcywgdGFibGUsIGZvY3VzLCB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0YWJsZS5hcHBseUZvcm11bGFzKGZvcm11bGFMaW5lcyk7XG4gICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyB0YWJsZTogZm9ybWF0dGVkVGFibGUsIGZvY3VzOiBuZXdGb2N1cyB9ID0gdGhpcy5mb3JtYXRBbmRBcHBseShvcHRpb25zLCByYW5nZSwgbGluZXMsIGZvcm11bGFMaW5lcywgcmVzdWx0LnZhbHVlLCBmb2N1cywgZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU29ydHMgcm93cyBhbHBoYW51bWVyaWNhbGx5IHVzaW5nIHRoZSBjb2x1bW4gYXQgdGhlIGN1cnJlbnQgZm9jdXMuXG4gICAgICogSWYgYWxsIGNlbGxzIGluIHRoZSBzb3J0aW5nIGNvbHVtbiBhcmUgbnVtYmVycywgdGhlIGNvbHVtbiBpcyBzb3J0ZWRcbiAgICAgKiBudW1lcmljYWxseS5cbiAgICAgKi9cbiAgICBzb3J0Um93cyhzb3J0T3JkZXIsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy53aXRoQ29tcGxldGVkVGFibGUob3B0aW9ucywgKHsgcmFuZ2UsIGxpbmVzLCBmb3JtdWxhTGluZXMsIHRhYmxlLCBmb2N1cyB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBib2R5Um93cyA9IHRhYmxlLmdldFJvd3MoKS5zbGljZSgyKTtcbiAgICAgICAgICAgIGNvbnN0IGlzTnVtYmVyID0gKHMpID0+IC9eXFxzKlstK10/KChcXGQrKFxcLlxcZCspPyl8KFxcZCtcXC4pfChcXC5cXGQrKSkoW2VFXVstK10/XFxkKyk/XFxzKiQvLnRlc3Qocyk7XG4gICAgICAgICAgICBjb25zdCBub3RBbGxOdW1zID0gYm9keVJvd3NcbiAgICAgICAgICAgICAgICAubWFwKChyb3cpID0+IHsgdmFyIF9hOyByZXR1cm4gKF9hID0gcm93LmdldENlbGxBdChmb2N1cy5jb2x1bW4pKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29udGVudDsgfSlcbiAgICAgICAgICAgICAgICAuc29tZSgoY2VsbCkgPT4gY2VsbCAhPT0gdW5kZWZpbmVkICYmIGNlbGwgIT09ICcnICYmICFpc051bWJlcihjZWxsKSk7XG4gICAgICAgICAgICBib2R5Um93cy5zb3J0KChyb3dBLCByb3dCKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VsbEEgPSByb3dBLmdldENlbGxBdChmb2N1cy5jb2x1bW4pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxCID0gcm93Qi5nZXRDZWxsQXQoZm9jdXMuY29sdW1uKTtcbiAgICAgICAgICAgICAgICBpZiAoY2VsbEEgPT09IHVuZGVmaW5lZCB8fCBjZWxsQS5jb250ZW50ID09PSAnJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbEIgPT09IHVuZGVmaW5lZCB8fCBjZWxsQi5jb250ZW50ID09PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjZWxsQiA9PT0gdW5kZWZpbmVkIHx8IGNlbGxCLmNvbnRlbnQgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50QSA9IG5vdEFsbE51bXNcbiAgICAgICAgICAgICAgICAgICAgPyBjZWxsQS5jb250ZW50LnJlcGxhY2UoL1sqfl8kXS9nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgOiBwYXJzZUZsb2F0KGNlbGxBLmNvbnRlbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRCID0gbm90QWxsTnVtc1xuICAgICAgICAgICAgICAgICAgICA/IGNlbGxCLmNvbnRlbnQucmVwbGFjZSgvWyp+XyRdL2csICcnKVxuICAgICAgICAgICAgICAgICAgICA6IHBhcnNlRmxvYXQoY2VsbEIuY29udGVudCk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRlbnRBID09PSBjb250ZW50Qikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY29udGVudEEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvbnRlbnRCID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50QSA8IGNvbnRlbnRCID8gLTEgOiAxO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoc29ydE9yZGVyID09PSBTb3J0T3JkZXIuRGVzY2VuZGluZykge1xuICAgICAgICAgICAgICAgIGJvZHlSb3dzLnJldmVyc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFsbFJvd3MgPSB0YWJsZS5nZXRSb3dzKCkuc2xpY2UoMCwgMikuY29uY2F0KGJvZHlSb3dzKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1RhYmxlID0gbmV3IHRhYmxlXzEuVGFibGUoYWxsUm93cyk7XG4gICAgICAgICAgICBjb25zdCB7IHRhYmxlOiBmb3JtYXR0ZWRUYWJsZSwgZm9jdXM6IG5ld0ZvY3VzIH0gPSB0aGlzLmZvcm1hdEFuZEFwcGx5KG9wdGlvbnMsIHJhbmdlLCBsaW5lcywgZm9ybXVsYUxpbmVzLCBuZXdUYWJsZSwgZm9jdXMsIHRydWUpO1xuICAgICAgICAgICAgdGhpcy5fbW92ZVRvRm9jdXMocmFuZ2Uuc3RhcnQucm93LCBmb3JtYXR0ZWRUYWJsZSwgbmV3Rm9jdXMpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW5zZXJ0cyBhbiBlbXB0eSBjb2x1bW4gYXQgdGhlIGN1cnJlbnQgZm9jdXMuXG4gICAgICovXG4gICAgaW5zZXJ0Q29sdW1uKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy53aXRoQ29tcGxldGVkVGFibGUob3B0aW9ucywgKHsgcmFuZ2UsIGxpbmVzLCBmb3JtdWxhTGluZXMsIHRhYmxlLCBmb2N1cyB9KSA9PiB7XG4gICAgICAgICAgICBsZXQgbmV3Rm9jdXMgPSBmb2N1cztcbiAgICAgICAgICAgIC8vIG1vdmUgZm9jdXNcbiAgICAgICAgICAgIGlmIChuZXdGb2N1cy5yb3cgPT09IDEpIHtcbiAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldFJvdygwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChuZXdGb2N1cy5jb2x1bW4gPCAwKSB7XG4gICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRDb2x1bW4oMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpbnNlcnQgYW4gZW1wdHkgY29sdW1uXG4gICAgICAgICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQXJyYXkodGFibGUuZ2V0SGVpZ2h0KCkgLSAxKS5maWxsKG5ldyB0YWJsZV9jZWxsXzEuVGFibGVDZWxsKCcnKSk7XG4gICAgICAgICAgICBjb25zdCBhbHRlcmVkID0gZm9ybWF0dGVyXzEuaW5zZXJ0Q29sdW1uKHRhYmxlLCBuZXdGb2N1cy5jb2x1bW4sIGNvbHVtbiwgb3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLmZvcm1hdEFuZEFwcGx5KG9wdGlvbnMsIHJhbmdlLCBsaW5lcywgZm9ybXVsYUxpbmVzLCBhbHRlcmVkLCBuZXdGb2N1cyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGEgY29sdW1uIGF0IHRoZSBjdXJyZW50IGZvY3VzLlxuICAgICAqL1xuICAgIGRlbGV0ZUNvbHVtbihvcHRpb25zKSB7XG4gICAgICAgIHRoaXMud2l0aENvbXBsZXRlZFRhYmxlKG9wdGlvbnMsICh7IHJhbmdlLCBsaW5lcywgZm9ybXVsYUxpbmVzLCB0YWJsZSwgZm9jdXMgfSkgPT4ge1xuICAgICAgICAgICAgbGV0IG5ld0ZvY3VzID0gZm9jdXM7XG4gICAgICAgICAgICAvLyBtb3ZlIGZvY3VzXG4gICAgICAgICAgICBpZiAobmV3Rm9jdXMucm93ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRSb3coMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBkZWxldGUgYSBjb2x1bW5cbiAgICAgICAgICAgIGxldCBhbHRlcmVkID0gdGFibGU7XG4gICAgICAgICAgICBsZXQgbW92ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICgwIDw9IG5ld0ZvY3VzLmNvbHVtbiAmJlxuICAgICAgICAgICAgICAgIG5ld0ZvY3VzLmNvbHVtbiA8PSBhbHRlcmVkLmdldEhlYWRlcldpZHRoKCkgLSAxKSB7XG4gICAgICAgICAgICAgICAgYWx0ZXJlZCA9IGZvcm1hdHRlcl8xLmRlbGV0ZUNvbHVtbih0YWJsZSwgbmV3Rm9jdXMuY29sdW1uLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICBtb3ZlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKG5ld0ZvY3VzLmNvbHVtbiA+IGFsdGVyZWQuZ2V0SGVhZGVyV2lkdGgoKSAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRDb2x1bW4oYWx0ZXJlZC5nZXRIZWFkZXJXaWR0aCgpIC0gMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5mb3JtYXRBbmRBcHBseShvcHRpb25zLCByYW5nZSwgbGluZXMsIGZvcm11bGFMaW5lcywgYWx0ZXJlZCwgbmV3Rm9jdXMsIG1vdmVkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1vdmVzIHRoZSBmb2N1c2VkIGNvbHVtbiBieSB0aGUgc3BlY2lmaWVkIG9mZnNldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZmZzZXQgLSBBbiBvZmZzZXQgdGhlIGNvbHVtbiBpcyBtb3ZlZCBieS5cbiAgICAgKi9cbiAgICBtb3ZlQ29sdW1uKG9mZnNldCwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLndpdGhDb21wbGV0ZWRUYWJsZShvcHRpb25zLCAoeyByYW5nZSwgbGluZXMsIGZvcm11bGFMaW5lcywgdGFibGUsIGZvY3VzIH0pID0+IHtcbiAgICAgICAgICAgIGxldCBuZXdGb2N1cyA9IGZvY3VzO1xuICAgICAgICAgICAgLy8gbW92ZSBjb2x1bW5cbiAgICAgICAgICAgIGxldCBhbHRlcmVkID0gdGFibGU7XG4gICAgICAgICAgICBpZiAoMCA8PSBuZXdGb2N1cy5jb2x1bW4gJiZcbiAgICAgICAgICAgICAgICBuZXdGb2N1cy5jb2x1bW4gPD0gYWx0ZXJlZC5nZXRIZWFkZXJXaWR0aCgpIC0gMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlc3QgPSBNYXRoLm1pbihNYXRoLm1heChuZXdGb2N1cy5jb2x1bW4gKyBvZmZzZXQsIDApLCBhbHRlcmVkLmdldEhlYWRlcldpZHRoKCkgLSAxKTtcbiAgICAgICAgICAgICAgICBhbHRlcmVkID0gZm9ybWF0dGVyXzEubW92ZUNvbHVtbihhbHRlcmVkLCBuZXdGb2N1cy5jb2x1bW4sIGRlc3QpO1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Q29sdW1uKGRlc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5mb3JtYXRBbmRBcHBseShvcHRpb25zLCByYW5nZSwgbGluZXMsIGZvcm11bGFMaW5lcywgYWx0ZXJlZCwgbmV3Rm9jdXMpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRm9ybWF0cyBhbGwgdGhlIHRhYmxlcyBpbiB0aGUgdGV4dCBlZGl0b3IuXG4gICAgICovXG4gICAgZm9ybWF0QWxsKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fdGV4dEVkaXRvci50cmFuc2FjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZSA9IGV4cG9ydHMuX2NyZWF0ZUlzVGFibGVSb3dSZWdleChvcHRpb25zLmxlZnRNYXJnaW5DaGFycyk7XG4gICAgICAgICAgICBsZXQgcG9zID0gdGhpcy5fdGV4dEVkaXRvci5nZXRDdXJzb3JQb3NpdGlvbigpO1xuICAgICAgICAgICAgbGV0IGxpbmVzID0gW107XG4gICAgICAgICAgICBsZXQgc3RhcnRSb3cgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBsZXQgbGFzdFJvdyA9IHRoaXMuX3RleHRFZGl0b3IuZ2V0TGFzdFJvdygpO1xuICAgICAgICAgICAgLy8gZmluZCB0YWJsZXNcbiAgICAgICAgICAgIGZvciAobGV0IHJvdyA9IDA7IHJvdyA8PSBsYXN0Um93OyByb3crKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSB0aGlzLl90ZXh0RWRpdG9yLmdldExpbmUocm93KTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fdGV4dEVkaXRvci5hY2NlcHRzVGFibGVFZGl0KHJvdykgJiYgcmUudGVzdChsaW5lKSkge1xuICAgICAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGxpbmUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRSb3cgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRSb3cgPSByb3c7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc3RhcnRSb3cgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBnZXQgdGFibGUgaW5mb1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRSb3cgPSByb3cgLSAxO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IG5ldyByYW5nZV8xLlJhbmdlKG5ldyBwb2ludF8xLlBvaW50KHN0YXJ0Um93LCAwKSwgbmV3IHBvaW50XzEuUG9pbnQoZW5kUm93LCBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGgpKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gZm9ybXVsYUxpbmVzIGVtcHR5IGJlY2F1c2UgZm9ybWF0dGluZyBkb2VzIG5vdCBpbnZvbHZlIGZvcm11bGFzXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhYmxlID0gcGFyc2VyXzEucmVhZFRhYmxlKGxpbmVzLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9jdXMgPSB0YWJsZS5mb2N1c09mUG9zaXRpb24ocG9zLCBzdGFydFJvdyk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkaWZmO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm9jdXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9ybWF0XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3Rm9jdXMgPSBmb2N1cztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlZCA9IGZvcm1hdHRlcl8xLmNvbXBsZXRlVGFibGUodGFibGUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBsZXRlZC5kZWxpbWl0ZXJJbnNlcnRlZCAmJiBuZXdGb2N1cy5yb3cgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRSb3cobmV3Rm9jdXMucm93ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXR0ZXJfMS5mb3JtYXRUYWJsZShjb21wbGV0ZWQudGFibGUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRPZmZzZXQoZXhwb3J0cy5fY29tcHV0ZU5ld09mZnNldChuZXdGb2N1cywgY29tcGxldGVkLnRhYmxlLCBmb3JtYXR0ZWQsIGZhbHNlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhcHBseVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3TGluZXMgPSBmb3JtYXR0ZWQudGFibGUudG9MaW5lcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTGluZXMocmFuZ2Uuc3RhcnQucm93LCByYW5nZS5lbmQucm93ICsgMSwgbmV3TGluZXMsIGxpbmVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBjdXJzb3IgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpZmYgPSBuZXdMaW5lcy5sZW5ndGggLSBsaW5lcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBmb3JtYXR0ZWQudGFibGUucG9zaXRpb25PZkZvY3VzKG5ld0ZvY3VzLCBzdGFydFJvdyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlZCA9IGZvcm1hdHRlcl8xLmNvbXBsZXRlVGFibGUodGFibGUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0dGVyXzEuZm9ybWF0VGFibGUoY29tcGxldGVkLnRhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFwcGx5XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdMaW5lcyA9IGZvcm1hdHRlZC50YWJsZS50b0xpbmVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVMaW5lcyhyYW5nZS5zdGFydC5yb3csIHJhbmdlLmVuZC5yb3cgKyAxLCBuZXdMaW5lcywgbGluZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIGN1cnNvciBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgZGlmZiA9IG5ld0xpbmVzLmxlbmd0aCAtIGxpbmVzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3Mucm93ID4gZW5kUm93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gbmV3IHBvaW50XzEuUG9pbnQocG9zLnJvdyArIGRpZmYsIHBvcy5jb2x1bW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlc2V0XG4gICAgICAgICAgICAgICAgICAgIGxpbmVzID0gW107XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0Um93ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGVcbiAgICAgICAgICAgICAgICAgICAgbGFzdFJvdyArPSBkaWZmO1xuICAgICAgICAgICAgICAgICAgICByb3cgKz0gZGlmZjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc3RhcnRSb3cgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIC8vIGdldCB0YWJsZSBpbmZvXG4gICAgICAgICAgICAgICAgY29uc3QgZW5kUm93ID0gbGFzdFJvdztcbiAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IG5ldyByYW5nZV8xLlJhbmdlKG5ldyBwb2ludF8xLlBvaW50KHN0YXJ0Um93LCAwKSwgbmV3IHBvaW50XzEuUG9pbnQoZW5kUm93LCBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGgpKTtcbiAgICAgICAgICAgICAgICAvLyBmb3JtdWxhTGluZXMgZW1wdHkgYmVjYXVzZSBmb3JtYXR0aW5nIGRvZXMgbm90IGludm9sdmUgZm9ybXVsYXNcbiAgICAgICAgICAgICAgICBjb25zdCB0YWJsZSA9IHBhcnNlcl8xLnJlYWRUYWJsZShsaW5lcywgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9jdXMgPSB0YWJsZS5mb2N1c09mUG9zaXRpb24ocG9zLCBzdGFydFJvdyk7XG4gICAgICAgICAgICAgICAgLy8gZm9ybWF0XG4gICAgICAgICAgICAgICAgbGV0IG5ld0ZvY3VzID0gZm9jdXM7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcGxldGVkID0gZm9ybWF0dGVyXzEuY29tcGxldGVUYWJsZSh0YWJsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPXG4gICAgICAgICAgICAgICAgaWYgKGNvbXBsZXRlZC5kZWxpbWl0ZXJJbnNlcnRlZCAmJiBuZXdGb2N1cy5yb3cgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ET1xuICAgICAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldFJvdyhuZXdGb2N1cy5yb3cgKyAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0dGVyXzEuZm9ybWF0VGFibGUoY29tcGxldGVkLnRhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE9cbiAgICAgICAgICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldE9mZnNldChcbiAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE9cbiAgICAgICAgICAgICAgICBleHBvcnRzLl9jb21wdXRlTmV3T2Zmc2V0KG5ld0ZvY3VzLCBjb21wbGV0ZWQudGFibGUsIGZvcm1hdHRlZCwgZmFsc2UpKTtcbiAgICAgICAgICAgICAgICAvLyBhcHBseVxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0xpbmVzID0gZm9ybWF0dGVkLnRhYmxlLnRvTGluZXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVMaW5lcyhyYW5nZS5zdGFydC5yb3csIHJhbmdlLmVuZC5yb3cgKyAxLCBuZXdMaW5lcywgbGluZXMpO1xuICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ET1xuICAgICAgICAgICAgICAgIHBvcyA9IGZvcm1hdHRlZC50YWJsZS5wb3NpdGlvbk9mRm9jdXMobmV3Rm9jdXMsIHN0YXJ0Um93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3RleHRFZGl0b3Iuc2V0Q3Vyc29yUG9zaXRpb24ocG9zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV4cG9ydHMgdGhlIHRhYmxlIGFzIGEgdHdvIGRpbWVuc2lvbmFsIHN0cmluZyBhcnJheVxuICAgICAqL1xuICAgIGV4cG9ydFRhYmxlKHdpdGh0SGVhZGVycywgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy53aXRoQ29tcGxldGVkVGFibGUob3B0aW9ucywgKHsgcmFuZ2UsIGxpbmVzLCBmb3JtdWxhTGluZXMsIHRhYmxlLCBmb2N1cyB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBib2R5Um93cyA9IHRhYmxlLmdldFJvd3MoKTtcbiAgICAgICAgICAgIGlmIChib2R5Um93cy5sZW5ndGggPiAwICYmICF3aXRodEhlYWRlcnMpIHtcbiAgICAgICAgICAgICAgICBib2R5Um93cy5zcGxpY2UoMCwgMik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBlbHNlIGlmKGJvZHlSb3dzLmxlbmd0aCA+IDEpIGJvZHlSb3dzLnNwbGljZSgxLCAxKTtcbiAgICAgICAgICAgIHJldHVybiBib2R5Um93cy5tYXAoKHJvdykgPT4gcm93LmdldENlbGxzKCkubWFwKChjZWxsKSA9PiBjZWxsLmNvbnRlbnQpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV4cG9ydHMgdGhlIHRhYmxlIGFzIGEgdHdvIGRpbWVuc2lvbmFsIHN0cmluZyBhcnJheVxuICAgICAqL1xuICAgIGV4cG9ydENTVih3aXRodEhlYWRlcnMsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgciA9IHRoaXMuZXhwb3J0VGFibGUod2l0aHRIZWFkZXJzLCBvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuICFyID8gdW5kZWZpbmVkIDogci5tYXAoKHJvdykgPT4gcm93LmpvaW4oJ1xcdCcpKS5qb2luKCdcXG4nKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRmluZHMgYSB0YWJsZSwgY29tcGxldGVzIGl0LCB0aGVuIGRvZXMgYW4gb3BlcmF0aW9uIHdpdGggaXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZnVuYyAtIEEgZnVuY3Rpb24gdGhhdCBkb2VzIHNvbWUgb3BlcmF0aW9uIG9uIHRhYmxlIGluZm9ybWF0aW9uIG9idGFpbmVkIGJ5XG4gICAgICoge0BsaW5rIFRhYmxlRWRpdG9yI19maW5kVGFibGV9LlxuICAgICAqL1xuICAgIHdpdGhDb21wbGV0ZWRUYWJsZShvcHRpb25zLCBmdW5jKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93aXRoVGFibGUob3B0aW9ucywgKHRhYmxlSW5mbykgPT4ge1xuICAgICAgICAgICAgbGV0IG5ld0ZvY3VzID0gdGFibGVJbmZvLmZvY3VzO1xuICAgICAgICAgICAgLy8gY29tcGxldGVcbiAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlZCA9IGZvcm1hdHRlcl8xLmNvbXBsZXRlVGFibGUodGFibGVJbmZvLnRhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgIGlmIChjb21wbGV0ZWQuZGVsaW1pdGVySW5zZXJ0ZWQgJiYgbmV3Rm9jdXMucm93ID4gMCkge1xuICAgICAgICAgICAgICAgIG5ld0ZvY3VzID0gbmV3Rm9jdXMuc2V0Um93KG5ld0ZvY3VzLnJvdyArIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZm9ybWF0XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXR0ZXJfMS5mb3JtYXRUYWJsZShjb21wbGV0ZWQudGFibGUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgbmV3Rm9jdXMgPSBuZXdGb2N1cy5zZXRPZmZzZXQoZXhwb3J0cy5fY29tcHV0ZU5ld09mZnNldChuZXdGb2N1cywgY29tcGxldGVkLnRhYmxlLCBmb3JtYXR0ZWQsIGZhbHNlKSk7XG4gICAgICAgICAgICB0YWJsZUluZm8udGFibGUgPSBmb3JtYXR0ZWQudGFibGU7XG4gICAgICAgICAgICB0YWJsZUluZm8uZm9jdXMgPSBuZXdGb2N1cztcbiAgICAgICAgICAgIHJldHVybiBmdW5jKHRhYmxlSW5mbyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBGb3JtYXRzIHRoZSB0YWJsZSBhbmQgYXBwbGllcyBhbnkgY2hhbmdlcyBiYXNlZCBvbiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuXG4gICAgICogb3JpZ2luYWxMaW5lcyBhbmQgdGhlIG5ld1RhYmxlLiBTaG91bGQgZ2VuZXJhbGx5IGJlIHRoZSBsYXN0IGZ1bmN0aW9uIGNhbGxcbiAgICAgKiBpbiBhIFRhYmxlRWRpdG9yIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZvcm1hdEFuZEFwcGx5KG9wdGlvbnMsIHJhbmdlLCBvcmlnaW5hbExpbmVzLCBmb3JtdWxhTGluZXMsIG5ld1RhYmxlLCBuZXdGb2N1cywgbW92ZWQgPSBmYWxzZSkge1xuICAgICAgICAvLyBmb3JtYXRcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0dGVyXzEuZm9ybWF0VGFibGUobmV3VGFibGUsIG9wdGlvbnMpO1xuICAgICAgICBuZXdGb2N1cyA9IG5ld0ZvY3VzLnNldE9mZnNldChleHBvcnRzLl9jb21wdXRlTmV3T2Zmc2V0KG5ld0ZvY3VzLCBuZXdUYWJsZSwgZm9ybWF0dGVkLCBtb3ZlZCkpO1xuICAgICAgICAvLyBhcHBseVxuICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnRyYW5zYWN0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUxpbmVzKHJhbmdlLnN0YXJ0LnJvdywgcmFuZ2UuZW5kLnJvdyArIDEsIGZvcm1hdHRlZC50YWJsZS50b0xpbmVzKCksIG9yaWdpbmFsTGluZXMpO1xuICAgICAgICAgICAgaWYgKG1vdmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0Rm9jdXMocmFuZ2Uuc3RhcnQucm93LCBmb3JtYXR0ZWQudGFibGUsIG5ld0ZvY3VzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vdmVUb0ZvY3VzKHJhbmdlLnN0YXJ0LnJvdywgZm9ybWF0dGVkLnRhYmxlLCBuZXdGb2N1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlc2V0U21hcnRDdXJzb3IoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJhbmdlLFxuICAgICAgICAgICAgbGluZXM6IG9yaWdpbmFsTGluZXMsXG4gICAgICAgICAgICBmb3JtdWxhTGluZXMsXG4gICAgICAgICAgICB0YWJsZTogZm9ybWF0dGVkLnRhYmxlLFxuICAgICAgICAgICAgZm9jdXM6IG5ld0ZvY3VzLFxuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydHMuVGFibGVFZGl0b3IgPSBUYWJsZUVkaXRvcjtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Tb3J0T3JkZXIgPSBleHBvcnRzLlRhYmxlRWRpdG9yID0gZXhwb3J0cy5vcHRpb25zV2l0aERlZmF1bHRzID0gZXhwb3J0cy5kZWZhdWx0T3B0aW9ucyA9IGV4cG9ydHMuSVRleHRFZGl0b3IgPSBleHBvcnRzLnNob3J0ZXN0RWRpdFNjcmlwdCA9IGV4cG9ydHMuYXBwbHlFZGl0U2NyaXB0ID0gZXhwb3J0cy5EZWxldGUgPSBleHBvcnRzLkluc2VydCA9IGV4cG9ydHMubW92ZUNvbHVtbiA9IGV4cG9ydHMuZGVsZXRlQ29sdW1uID0gZXhwb3J0cy5pbnNlcnRDb2x1bW4gPSBleHBvcnRzLm1vdmVSb3cgPSBleHBvcnRzLmRlbGV0ZVJvdyA9IGV4cG9ydHMuaW5zZXJ0Um93ID0gZXhwb3J0cy5hbHRlckFsaWdubWVudCA9IGV4cG9ydHMuZm9ybWF0VGFibGUgPSBleHBvcnRzLmNvbXBsZXRlVGFibGUgPSBleHBvcnRzLkZvcm1hdFR5cGUgPSBleHBvcnRzLnJlYWRUYWJsZSA9IGV4cG9ydHMuVGFibGUgPSBleHBvcnRzLlRhYmxlUm93ID0gZXhwb3J0cy5UYWJsZUNlbGwgPSBleHBvcnRzLkhlYWRlckFsaWdubWVudCA9IGV4cG9ydHMuRGVmYXVsdEFsaWdubWVudCA9IGV4cG9ydHMuQWxpZ25tZW50ID0gZXhwb3J0cy5Gb2N1cyA9IGV4cG9ydHMuUmFuZ2UgPSBleHBvcnRzLlBvaW50ID0gdm9pZCAwO1xudmFyIHBvaW50XzEgPSByZXF1aXJlKFwiLi9wb2ludFwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlBvaW50XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBwb2ludF8xLlBvaW50OyB9IH0pO1xudmFyIHJhbmdlXzEgPSByZXF1aXJlKFwiLi9yYW5nZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJhbmdlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiByYW5nZV8xLlJhbmdlOyB9IH0pO1xudmFyIGZvY3VzXzEgPSByZXF1aXJlKFwiLi9mb2N1c1wiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkZvY3VzXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBmb2N1c18xLkZvY3VzOyB9IH0pO1xudmFyIGFsaWdubWVudF8xID0gcmVxdWlyZShcIi4vYWxpZ25tZW50XCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQWxpZ25tZW50XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBhbGlnbm1lbnRfMS5BbGlnbm1lbnQ7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJEZWZhdWx0QWxpZ25tZW50XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBhbGlnbm1lbnRfMS5EZWZhdWx0QWxpZ25tZW50OyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiSGVhZGVyQWxpZ25tZW50XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBhbGlnbm1lbnRfMS5IZWFkZXJBbGlnbm1lbnQ7IH0gfSk7XG52YXIgdGFibGVfY2VsbF8xID0gcmVxdWlyZShcIi4vdGFibGUtY2VsbFwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRhYmxlQ2VsbFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGFibGVfY2VsbF8xLlRhYmxlQ2VsbDsgfSB9KTtcbnZhciB0YWJsZV9yb3dfMSA9IHJlcXVpcmUoXCIuL3RhYmxlLXJvd1wiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRhYmxlUm93XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0YWJsZV9yb3dfMS5UYWJsZVJvdzsgfSB9KTtcbnZhciB0YWJsZV8xID0gcmVxdWlyZShcIi4vdGFibGVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUYWJsZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGFibGVfMS5UYWJsZTsgfSB9KTtcbnZhciBwYXJzZXJfMSA9IHJlcXVpcmUoXCIuL3BhcnNlclwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInJlYWRUYWJsZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gcGFyc2VyXzEucmVhZFRhYmxlOyB9IH0pO1xudmFyIGZvcm1hdHRlcl9qc18xID0gcmVxdWlyZShcIi4vZm9ybWF0dGVyLmpzXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRm9ybWF0VHlwZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZm9ybWF0dGVyX2pzXzEuRm9ybWF0VHlwZTsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNvbXBsZXRlVGFibGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZvcm1hdHRlcl9qc18xLmNvbXBsZXRlVGFibGU7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJmb3JtYXRUYWJsZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZm9ybWF0dGVyX2pzXzEuZm9ybWF0VGFibGU7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJhbHRlckFsaWdubWVudFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZm9ybWF0dGVyX2pzXzEuYWx0ZXJBbGlnbm1lbnQ7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpbnNlcnRSb3dcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZvcm1hdHRlcl9qc18xLmluc2VydFJvdzsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlbGV0ZVJvd1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZm9ybWF0dGVyX2pzXzEuZGVsZXRlUm93OyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwibW92ZVJvd1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZm9ybWF0dGVyX2pzXzEubW92ZVJvdzsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImluc2VydENvbHVtblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZm9ybWF0dGVyX2pzXzEuaW5zZXJ0Q29sdW1uOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZGVsZXRlQ29sdW1uXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBmb3JtYXR0ZXJfanNfMS5kZWxldGVDb2x1bW47IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJtb3ZlQ29sdW1uXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBmb3JtYXR0ZXJfanNfMS5tb3ZlQ29sdW1uOyB9IH0pO1xudmFyIGVkaXRfc2NyaXB0XzEgPSByZXF1aXJlKFwiLi9lZGl0LXNjcmlwdFwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkluc2VydFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZWRpdF9zY3JpcHRfMS5JbnNlcnQ7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJEZWxldGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGVkaXRfc2NyaXB0XzEuRGVsZXRlOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiYXBwbHlFZGl0U2NyaXB0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBlZGl0X3NjcmlwdF8xLmFwcGx5RWRpdFNjcmlwdDsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInNob3J0ZXN0RWRpdFNjcmlwdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZWRpdF9zY3JpcHRfMS5zaG9ydGVzdEVkaXRTY3JpcHQ7IH0gfSk7XG52YXIgdGV4dF9lZGl0b3JfMSA9IHJlcXVpcmUoXCIuL3RleHQtZWRpdG9yXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiSVRleHRFZGl0b3JcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRleHRfZWRpdG9yXzEuSVRleHRFZGl0b3I7IH0gfSk7XG52YXIgb3B0aW9uc18xID0gcmVxdWlyZShcIi4vb3B0aW9uc1wiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlZmF1bHRPcHRpb25zXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBvcHRpb25zXzEuZGVmYXVsdE9wdGlvbnM7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJvcHRpb25zV2l0aERlZmF1bHRzXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBvcHRpb25zXzEub3B0aW9uc1dpdGhEZWZhdWx0czsgfSB9KTtcbnZhciB0YWJsZV9lZGl0b3JfMSA9IHJlcXVpcmUoXCIuL3RhYmxlLWVkaXRvclwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRhYmxlRWRpdG9yXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0YWJsZV9lZGl0b3JfMS5UYWJsZUVkaXRvcjsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlNvcnRPcmRlclwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGFibGVfZWRpdG9yXzEuU29ydE9yZGVyOyB9IH0pO1xuIiwiaW1wb3J0IHtcbiAgRm9ybWF0VHlwZSxcbiAgT3B0aW9ucyxcbiAgb3B0aW9uc1dpdGhEZWZhdWx0cyxcbn0gZnJvbSAnQHRncm9zaW5nZXIvbWQtYWR2YW5jZWQtdGFibGVzJztcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTZXR0aW5nczogUGFydGlhbDxJU2V0dGluZ3M+ID0ge1xuICBmb3JtYXRUeXBlOiBGb3JtYXRUeXBlLk5PUk1BTCxcbiAgc2hvd1JpYmJvbkljb246IHRydWUsXG4gIGJpbmRFbnRlcjogdHJ1ZSxcbiAgYmluZFRhYjogdHJ1ZSxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNldHRpbmdzIHtcbiAgZm9ybWF0VHlwZTogRm9ybWF0VHlwZTtcbiAgc2hvd1JpYmJvbkljb246IGJvb2xlYW47XG4gIGJpbmRFbnRlcjogYm9vbGVhbjtcbiAgYmluZFRhYjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlRWRpdG9yUGx1Z2luU2V0dGluZ3MgaW1wbGVtZW50cyBJU2V0dGluZ3Mge1xuICBwdWJsaWMgZm9ybWF0VHlwZTogRm9ybWF0VHlwZTtcbiAgcHVibGljIHNob3dSaWJib25JY29uOiBib29sZWFuO1xuXG4gIHB1YmxpYyBiaW5kRW50ZXI6IGJvb2xlYW47XG4gIHB1YmxpYyBiaW5kVGFiOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGxvYWRlZERhdGE6IFBhcnRpYWw8SVNldHRpbmdzPikge1xuICAgIGNvbnN0IGFsbEZpZWxkcyA9IHsgLi4uZGVmYXVsdFNldHRpbmdzLCAuLi5sb2FkZWREYXRhIH07XG4gICAgdGhpcy5mb3JtYXRUeXBlID0gYWxsRmllbGRzLmZvcm1hdFR5cGU7XG4gICAgdGhpcy5zaG93UmliYm9uSWNvbiA9IGFsbEZpZWxkcy5zaG93UmliYm9uSWNvbjtcbiAgICB0aGlzLmJpbmRFbnRlciA9IGFsbEZpZWxkcy5iaW5kRW50ZXI7XG4gICAgdGhpcy5iaW5kVGFiID0gYWxsRmllbGRzLmJpbmRUYWI7XG4gIH1cblxuICBwdWJsaWMgYXNPcHRpb25zKCk6IE9wdGlvbnMge1xuICAgIHJldHVybiBvcHRpb25zV2l0aERlZmF1bHRzKHsgZm9ybWF0VHlwZTogdGhpcy5mb3JtYXRUeXBlIH0pO1xuICB9XG59XG4iLCJpbXBvcnQgeyBQb2ludCwgUmFuZ2UgfSBmcm9tICdAdGdyb3Npbmdlci9tZC1hZHZhbmNlZC10YWJsZXMnO1xuaW1wb3J0IHsgQXBwLCBFZGl0b3IsIFRGaWxlIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG4vKipcbiAqIE9ic2lkaWFuVGV4dEVkaXRvciBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgSVRleHRFZGl0b3IgaW50ZXJmYWNlIGZyb21cbiAqIHRoZSBtdGUta2VybmVsIGxpYnJhcnkuIEl0IHRlYWNoZXMgdGhlIHRhYmxlIGVkaXRvciBsaWJyYXJ5IGhvdyB0byBpbnRlcmZhY2VcbiAqIHdpdGggT2JzaWRpYW4uXG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNpZGlhblRleHRFZGl0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcDogQXBwO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbGU6IFRGaWxlO1xuICBwcml2YXRlIHJlYWRvbmx5IGVkaXRvcjogRWRpdG9yO1xuXG4gIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBmaWxlOiBURmlsZSwgZWRpdG9yOiBFZGl0b3IpIHtcbiAgICB0aGlzLmFwcCA9IGFwcDtcbiAgICB0aGlzLmZpbGUgPSBmaWxlO1xuICAgIHRoaXMuZWRpdG9yID0gZWRpdG9yO1xuICB9XG5cbiAgcHVibGljIGdldEN1cnNvclBvc2l0aW9uID0gKCk6IFBvaW50ID0+IHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuZWRpdG9yLmdldEN1cnNvcigpO1xuICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICBgZ2V0Q3Vyc29yUG9zaXRpb24gd2FzIGNhbGxlZDogbGluZSAke3Bvc2l0aW9uLmxpbmV9LCBjaCAke3Bvc2l0aW9uLmNofWAsXG4gICAgKTtcbiAgICByZXR1cm4gbmV3IFBvaW50KHBvc2l0aW9uLmxpbmUsIHBvc2l0aW9uLmNoKTtcbiAgfTtcblxuICBwdWJsaWMgc2V0Q3Vyc29yUG9zaXRpb24gPSAocG9zOiBQb2ludCk6IHZvaWQgPT4ge1xuICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICBgc2V0Q3Vyc29yUG9zaXRpb24gd2FzIGNhbGxlZDogbGluZSAke3Bvcy5yb3d9LCBjaCAke3Bvcy5jb2x1bW59YCxcbiAgICApO1xuICAgIHRoaXMuZWRpdG9yLnNldEN1cnNvcih7IGxpbmU6IHBvcy5yb3csIGNoOiBwb3MuY29sdW1uIH0pO1xuICB9O1xuXG4gIHB1YmxpYyBzZXRTZWxlY3Rpb25SYW5nZSA9IChyYW5nZTogUmFuZ2UpOiB2b2lkID0+IHtcbiAgICBjb25zb2xlLmRlYnVnKCdzZXRTZWxlY3Rpb25SYW5nZSB3YXMgY2FsbGVkJyk7XG4gICAgdGhpcy5lZGl0b3Iuc2V0U2VsZWN0aW9uKFxuICAgICAgeyBsaW5lOiByYW5nZS5zdGFydC5yb3csIGNoOiByYW5nZS5zdGFydC5jb2x1bW4gfSxcbiAgICAgIHsgbGluZTogcmFuZ2UuZW5kLnJvdywgY2g6IHJhbmdlLmVuZC5jb2x1bW4gfSxcbiAgICApO1xuICB9O1xuXG4gIHB1YmxpYyBnZXRMYXN0Um93ID0gKCk6IG51bWJlciA9PiB7XG4gICAgY29uc29sZS5kZWJ1ZygnZ2V0TGFzdFJvdyB3YXMgY2FsbGVkJyk7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yLmxhc3RMaW5lKCk7XG4gIH07XG5cbiAgcHVibGljIGFjY2VwdHNUYWJsZUVkaXQgPSAocm93OiBudW1iZXIpOiBib29sZWFuID0+IHtcbiAgICBjb25zb2xlLmRlYnVnKGBhY2NlcHRzVGFibGVFZGl0IHdhcyBjYWxsZWQgb24gcm93ICR7cm93fWApO1xuXG4gICAgY29uc3QgY2FjaGUgPSB0aGlzLmFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZSh0aGlzLmZpbGUpO1xuICAgIGlmICghY2FjaGUuc2VjdGlvbnMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHRhYmxlID0gY2FjaGUuc2VjdGlvbnMuZmluZChcbiAgICAgIChzZWN0aW9uKTogYm9vbGVhbiA9PlxuICAgICAgICBzZWN0aW9uLnBvc2l0aW9uLnN0YXJ0LmxpbmUgPD0gcm93ICYmXG4gICAgICAgIHNlY3Rpb24ucG9zaXRpb24uZW5kLmxpbmUgPj0gcm93ICYmXG4gICAgICAgIHNlY3Rpb24udHlwZSAhPT0gJ2NvZGUnICYmXG4gICAgICAgIHNlY3Rpb24udHlwZSAhPT0gJ21hdGgnLFxuICAgICk7XG4gICAgaWYgKHRhYmxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoJ2FjY2VwdHNUYWJsZUVkaXQgcmV0dXJuaW5nIGZhbHNlLCB0YWJsZSBub3QgZm91bmQnKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayB0aGF0IHRoZSB0ZXh0IGAtdHgtYCBpcyBub3Qgb24gdGhlIGxpbmUgaW1tZWRpYXRlbHkgcHJlY2VlZGluZyB0aGVcbiAgICAvLyB0YWJsZSBmb3VuZCBpbiB0aGUgcHJldmlvdXMgY2hlY2suXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3Rncm9zaW5nZXIvYWR2YW5jZWQtdGFibGVzLW9ic2lkaWFuL2lzc3Vlcy8xMzNcbiAgICBjb25zdCBwcmVjZWVkaW5nTGluZUluZGV4ID0gdGFibGUucG9zaXRpb24uc3RhcnQubGluZTtcbiAgICBpZiAocHJlY2VlZGluZ0xpbmVJbmRleCA+PSAwKSB7XG4gICAgICBjb25zdCBwcmVjZWVkaW5nTGluZSA9IHRoaXMuZ2V0TGluZShwcmVjZWVkaW5nTGluZUluZGV4KTtcbiAgICAgIGlmIChwcmVjZWVkaW5nTGluZSA9PT0gJy10eC0nKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICBwdWJsaWMgZ2V0TGluZSA9IChyb3c6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gICAgY29uc29sZS5kZWJ1ZyhgZ2V0TGluZSB3YXMgY2FsbGVkIG9uIGxpbmUgJHtyb3d9YCk7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yLmdldExpbmUocm93KTtcbiAgfTtcblxuICBwdWJsaWMgaW5zZXJ0TGluZSA9IChyb3c6IG51bWJlciwgbGluZTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgY29uc29sZS5kZWJ1ZyhgaW5zZXJ0TGluZSB3YXMgY2FsbGVkIGF0IGxpbmUgJHtyb3d9YCk7XG4gICAgY29uc29sZS5kZWJ1ZyhgTmV3IGxpbmU6ICR7bGluZX1gKTtcblxuICAgIGlmIChyb3cgPiB0aGlzLmdldExhc3RSb3coKSkge1xuICAgICAgdGhpcy5lZGl0b3IucmVwbGFjZVJhbmdlKCdcXG4nICsgbGluZSwgeyBsaW5lOiByb3csIGNoOiAwIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVkaXRvci5yZXBsYWNlUmFuZ2UobGluZSArICdcXG4nLCB7IGxpbmU6IHJvdywgY2g6IDAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHB1YmxpYyBkZWxldGVMaW5lID0gKHJvdzogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgY29uc29sZS5kZWJ1ZyhgZGVsZXRlTGluZSB3YXMgY2FsbGVkIG9uIGxpbmUgJHtyb3d9YCk7XG5cbiAgICAvLyBJZiBvbiB0aGUgbGFzdCBsaW5lIG9mIHRoZSBmaWxlLCB3ZSBjYW5ub3QgcmVwbGFjZSB0byB0aGUgbmV4dCByb3cuXG4gICAgLy8gSW5zdGVhZCwgcmVwbGFjZSBhbGwgdGhlIGNvbnRlbnRzIG9mIHRoaXMgbGluZS5cbiAgICBpZiAocm93ID09PSB0aGlzLmdldExhc3RSb3coKSkge1xuICAgICAgY29uc3Qgcm93Q29udGVudHMgPSB0aGlzLmdldExpbmUocm93KTtcbiAgICAgIHRoaXMuZWRpdG9yLnJlcGxhY2VSYW5nZShcbiAgICAgICAgJycsXG4gICAgICAgIHsgbGluZTogcm93LCBjaDogMCB9LFxuICAgICAgICB7IGxpbmU6IHJvdywgY2g6IHJvd0NvbnRlbnRzLmxlbmd0aCB9LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lZGl0b3IucmVwbGFjZVJhbmdlKFxuICAgICAgICAnJyxcbiAgICAgICAgeyBsaW5lOiByb3csIGNoOiAwIH0sXG4gICAgICAgIHsgbGluZTogcm93ICsgMSwgY2g6IDAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIHB1YmxpYyByZXBsYWNlTGluZXMgPSAoXG4gICAgc3RhcnRSb3c6IG51bWJlcixcbiAgICBlbmRSb3c6IG51bWJlcixcbiAgICBsaW5lczogc3RyaW5nW10sXG4gICk6IHZvaWQgPT4ge1xuICAgIC8vIFRha2Ugb25lIG9mZiB0aGUgZW5kUm93IGFuZCBpbnN0ZWFkIGdvIHRvIHRoZSBlbmQgb2YgdGhhdCBsaW5lXG4gICAgY29uc3QgcmVhbEVuZFJvdyA9IGVuZFJvdyAtIDE7XG4gICAgY29uc3QgZW5kUm93Q29udGVudHMgPSB0aGlzLmVkaXRvci5nZXRMaW5lKHJlYWxFbmRSb3cpO1xuICAgIGNvbnN0IGVuZFJvd0ZpbmFsSW5kZXggPSBlbmRSb3dDb250ZW50cy5sZW5ndGg7XG5cbiAgICB0aGlzLmVkaXRvci5yZXBsYWNlUmFuZ2UoXG4gICAgICBsaW5lcy5qb2luKCdcXG4nKSxcbiAgICAgIHsgbGluZTogc3RhcnRSb3csIGNoOiAwIH0sXG4gICAgICB7IGxpbmU6IHJlYWxFbmRSb3csIGNoOiBlbmRSb3dGaW5hbEluZGV4IH0sXG4gICAgKTtcbiAgfTtcblxuICBwdWJsaWMgdHJhbnNhY3QgPSAoZnVuYzogRnVuY3Rpb24pOiB2b2lkID0+IHtcbiAgICAvKlxuICAgIHRoaXMuZWRpdG9yLm9wZXJhdGlvbigoKSA9PiB7XG4gICAgICBmdW5jKCk7XG4gICAgfSk7XG4gICAgKi9cbiAgICBmdW5jKCk7XG4gIH07XG59XG4iLCJpbXBvcnQgeyBPYnNpZGlhblRleHRFZGl0b3IgfSBmcm9tICcuL29ic2lkaWFuLXRleHQtZWRpdG9yJztcbmltcG9ydCB7IFRhYmxlRWRpdG9yUGx1Z2luU2V0dGluZ3MgfSBmcm9tICcuL3NldHRpbmdzJztcbmltcG9ydCB7XG4gIEFsaWdubWVudCxcbiAgU29ydE9yZGVyLFxuICBUYWJsZUVkaXRvciBhcyBNVEVFZGl0b3IsXG59IGZyb20gJ0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcyc7XG5pbXBvcnQgeyBBcHAsIEVkaXRvciwgTW9kYWwsIE5vdGljZSwgVEZpbGUgfSBmcm9tICdvYnNpZGlhbic7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUVkaXRvciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwOiBBcHA7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3M6IFRhYmxlRWRpdG9yUGx1Z2luU2V0dGluZ3M7XG4gIHByaXZhdGUgcmVhZG9ubHkgbXRlOiBNVEVFZGl0b3I7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYXBwOiBBcHAsXG4gICAgZmlsZTogVEZpbGUsXG4gICAgZWRpdG9yOiBFZGl0b3IsXG4gICAgc2V0dGluZ3M6IFRhYmxlRWRpdG9yUGx1Z2luU2V0dGluZ3MsXG4gICkge1xuICAgIHRoaXMuYXBwID0gYXBwO1xuICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcblxuICAgIGNvbnN0IG90ZSA9IG5ldyBPYnNpZGlhblRleHRFZGl0b3IoYXBwLCBmaWxlLCBlZGl0b3IpO1xuICAgIHRoaXMubXRlID0gbmV3IE1URUVkaXRvcihvdGUpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGN1cnNvcklzSW5UYWJsZUZvcm11bGEgPSAoKTogYm9vbGVhbiA9PlxuICAgIHRoaXMubXRlLmN1cnNvcklzSW5UYWJsZUZvcm11bGEodGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGN1cnNvcklzSW5UYWJsZSA9ICgpOiBib29sZWFuID0+XG4gICAgdGhpcy5tdGUuY3Vyc29ySXNJblRhYmxlKHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuXG4gIHB1YmxpYyByZWFkb25seSBuZXh0Q2VsbCA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5uZXh0Q2VsbCh0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcHJldmlvdXNDZWxsID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMubXRlLnByZXZpb3VzQ2VsbCh0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbmV4dFJvdyA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5uZXh0Um93KHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtYXRUYWJsZSA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5mb3JtYXQodGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1hdEFsbFRhYmxlcyA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5mb3JtYXRBbGwodGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IGluc2VydENvbHVtbiA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5pbnNlcnRDb2x1bW4odGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IGluc2VydFJvdyA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5pbnNlcnRSb3codGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IGxlZnRBbGlnbkNvbHVtbiA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5hbGlnbkNvbHVtbihBbGlnbm1lbnQuTEVGVCwgdGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IGNlbnRlckFsaWduQ29sdW1uID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMubXRlLmFsaWduQ29sdW1uKEFsaWdubWVudC5DRU5URVIsIHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSByaWdodEFsaWduQ29sdW1uID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMubXRlLmFsaWduQ29sdW1uKEFsaWdubWVudC5SSUdIVCwgdGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IG1vdmVDb2x1bW5MZWZ0ID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMubXRlLm1vdmVDb2x1bW4oLTEsIHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSBtb3ZlQ29sdW1uUmlnaHQgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5tdGUubW92ZUNvbHVtbigxLCB0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbW92ZVJvd1VwID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMubXRlLm1vdmVSb3coLTEsIHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSBtb3ZlUm93RG93biA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5tb3ZlUm93KDEsIHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSBkZWxldGVDb2x1bW4gPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5tdGUuZGVsZXRlQ29sdW1uKHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSBkZWxldGVSb3cgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5tdGUuZGVsZXRlUm93KHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSBzb3J0Um93c0FzYyA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLm10ZS5zb3J0Um93cyhTb3J0T3JkZXIuQXNjZW5kaW5nLCB0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc29ydFJvd3NEZXNjID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMubXRlLnNvcnRSb3dzKFNvcnRPcmRlci5EZXNjZW5kaW5nLCB0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZXNjYXBlID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMubXRlLmVzY2FwZSh0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZXZhbHVhdGVGb3JtdWxhcyA9ICgpOiB2b2lkID0+IHtcbiAgICBjb25zdCBlcnIgPSB0aGlzLm10ZS5ldmFsdWF0ZUZvcm11bGFzKHRoaXMuc2V0dGluZ3MuYXNPcHRpb25zKCkpO1xuICAgIGlmIChlcnIpIHtcbiAgICAgIG5ldyBOb3RpY2UoZXJyLm1lc3NhZ2UpO1xuICAgIH1cbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZXhwb3J0Q1NWTW9kYWwgPSAoKTogdm9pZCA9PiB7XG4gICAgbmV3IENTVk1vZGFsKHRoaXMuYXBwLCB0aGlzLm10ZSwgdGhpcy5zZXR0aW5ncykub3BlbigpO1xuICB9O1xufVxuXG5jbGFzcyBDU1ZNb2RhbCBleHRlbmRzIE1vZGFsIHtcbiAgcHJpdmF0ZSByZWFkb25seSBtdGU6IE1URUVkaXRvcjtcbiAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nczogVGFibGVFZGl0b3JQbHVnaW5TZXR0aW5ncztcblxuICBjb25zdHJ1Y3RvcihhcHA6IEFwcCwgbXRlOiBNVEVFZGl0b3IsIHNldHRpbmdzOiBUYWJsZUVkaXRvclBsdWdpblNldHRpbmdzKSB7XG4gICAgc3VwZXIoYXBwKTtcbiAgICB0aGlzLm10ZSA9IG10ZTtcbiAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gIH1cblxuICBwdWJsaWMgb25PcGVuKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY29udGVudEVsIH0gPSB0aGlzO1xuICAgIGNvbnN0IGRpdiA9IGNvbnRlbnRFbC5jcmVhdGVEaXYoe1xuICAgICAgY2xzOiAnYWR2YW5jZWQtdGFibGVzLWNzdi1leHBvcnQnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdGEgPSBkaXYuY3JlYXRlRWwoJ3RleHRhcmVhJywge1xuICAgICAgYXR0cjoge1xuICAgICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGEudmFsdWUgPSB0aGlzLm10ZS5leHBvcnRDU1YodHJ1ZSwgdGhpcy5zZXR0aW5ncy5hc09wdGlvbnMoKSk7XG4gICAgdGEub25DbGlja0V2ZW50KCgpID0+IHRhLnNlbGVjdCgpKTtcblxuICAgIGNvbnN0IGxiID0gZGl2LmNyZWF0ZUVsKCdsYWJlbCcpO1xuICAgIGNvbnN0IGNiID0gbGIuY3JlYXRlRWwoJ2lucHV0Jywge1xuICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgIGF0dHI6IHtcbiAgICAgICAgY2hlY2tlZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgbGIuY3JlYXRlU3BhbigpLnNldFRleHQoJ0luY2x1ZGUgdGFibGUgaGVhZGVycycpO1xuICAgIGNiLm9uQ2xpY2tFdmVudCgoKSA9PiB7XG4gICAgICB0YS52YWx1ZSA9IHRoaXMubXRlLmV4cG9ydENTVihjYi5jaGVja2VkLCB0aGlzLnNldHRpbmdzLmFzT3B0aW9ucygpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsb3NlKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY29udGVudEVsIH0gPSB0aGlzO1xuICAgIGNvbnRlbnRFbC5lbXB0eSgpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBpY29ucyB9IGZyb20gJy4vaWNvbnMnO1xuaW1wb3J0IHsgVGFibGVFZGl0b3JQbHVnaW5TZXR0aW5ncyB9IGZyb20gJy4vc2V0dGluZ3MnO1xuaW1wb3J0IHsgVGFibGVFZGl0b3IgfSBmcm9tICcuL3RhYmxlLWVkaXRvcic7XG5pbXBvcnQge1xuICBFZGl0b3IsXG4gIEl0ZW1WaWV3LFxuICBNYXJrZG93blZpZXcsXG4gIE5vdGljZSxcbiAgV29ya3NwYWNlTGVhZixcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5leHBvcnQgY29uc3QgVGFibGVDb250cm9sc1ZpZXdUeXBlID0gJ2FkdmFuY2VkLXRhYmxlcy10b29sYmFyJztcblxuZXhwb3J0IGNsYXNzIFRhYmxlQ29udHJvbHNWaWV3IGV4dGVuZHMgSXRlbVZpZXcge1xuICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzOiBUYWJsZUVkaXRvclBsdWdpblNldHRpbmdzO1xuXG4gIGNvbnN0cnVjdG9yKGxlYWY6IFdvcmtzcGFjZUxlYWYsIHNldHRpbmdzOiBUYWJsZUVkaXRvclBsdWdpblNldHRpbmdzKSB7XG4gICAgc3VwZXIobGVhZik7XG4gICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICB9XG5cbiAgcHVibGljIGdldFZpZXdUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFRhYmxlQ29udHJvbHNWaWV3VHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREaXNwbGF5VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnQWR2YW5jZWQgVGFibGVzJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRJY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdzcHJlYWRzaGVldCc7XG4gIH1cblxuICBwdWJsaWMgbG9hZCgpOiB2b2lkIHtcbiAgICBzdXBlci5sb2FkKCk7XG4gICAgdGhpcy5kcmF3KCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGRyYXcgPSAoKTogdm9pZCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXJFbC5jaGlsZHJlblsxXTtcblxuICAgIGNvbnN0IHJvb3RFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHJvb3RFbC5hZGRDbGFzcyhcImFkdmFuY2VkLXRhYmxlcy1idXR0b25zXCIpO1xuXG4gICAgcm9vdEVsLmNyZWF0ZURpdigpLlxuICAgICAgY3JlYXRlU3Bhbih7IGNsczogJ3RpdGxlJyB9KS5cbiAgICAgIHNldFRleHQoXCJBZHZhbmNlZCBUYWJsZXNcIilcblxuICAgIGNvbnN0IG5hdkhlYWRlciA9IHJvb3RFbC5jcmVhdGVEaXYoeyBjbHM6ICduYXYtaGVhZGVyJyB9KTtcbiAgICBjb25zdCByb3dPbmVCdG5zID0gbmF2SGVhZGVyLmNyZWF0ZURpdih7IGNsczogJ25hdi1idXR0b25zLWNvbnRhaW5lcicgfSk7XG4gICAgcm93T25lQnRucy5jcmVhdGVTcGFuKHsgY2xzOiAnYWR2YW5jZWQtdGFibGVzLXJvdy1sYWJlbCcgfSkuc2V0VGV4dChcIkFsaWduOlwiKTtcbiAgICB0aGlzLmRyYXdCdG4ocm93T25lQnRucywgJ2FsaWduTGVmdCcsICdsZWZ0IGFsaWduIGNvbHVtbicsICh0ZSkgPT5cbiAgICAgIHRlLmxlZnRBbGlnbkNvbHVtbigpLFxuICAgICk7XG4gICAgdGhpcy5kcmF3QnRuKHJvd09uZUJ0bnMsICdhbGlnbkNlbnRlcicsICdjZW50ZXIgYWxpZ24gY29sdW1uJywgKHRlKSA9PlxuICAgICAgdGUuY2VudGVyQWxpZ25Db2x1bW4oKSxcbiAgICApO1xuICAgIHRoaXMuZHJhd0J0bihyb3dPbmVCdG5zLCAnYWxpZ25SaWdodCcsICdyaWdodCBhbGlnbiBjb2x1bW4nLCAodGUpID0+XG4gICAgICB0ZS5yaWdodEFsaWduQ29sdW1uKCksXG4gICAgKTtcblxuICAgIGNvbnN0IHJvd1R3b0J0bnMgPSBuYXZIZWFkZXIuY3JlYXRlRGl2KHsgY2xzOiAnbmF2LWJ1dHRvbnMtY29udGFpbmVyJyB9KTtcbiAgICByb3dUd29CdG5zLmNyZWF0ZVNwYW4oeyBjbHM6ICdhZHZhbmNlZC10YWJsZXMtcm93LWxhYmVsJyB9KS5zZXRUZXh0KFwiTW92ZTpcIik7XG4gICAgdGhpcy5kcmF3QnRuKHJvd1R3b0J0bnMsICdtb3ZlUm93RG93bicsICdtb3ZlIHJvdyBkb3duJywgKHRlKSA9PlxuICAgICAgdGUubW92ZVJvd0Rvd24oKSxcbiAgICApO1xuICAgIHRoaXMuZHJhd0J0bihyb3dUd29CdG5zLCAnbW92ZVJvd1VwJywgJ21vdmUgcm93IHVwJywgKHRlKSA9PlxuICAgICAgdGUubW92ZVJvd1VwKCksXG4gICAgKTtcbiAgICB0aGlzLmRyYXdCdG4ocm93VHdvQnRucywgJ21vdmVDb2x1bW5SaWdodCcsICdtb3ZlIGNvbHVtbiByaWdodCcsICh0ZSkgPT5cbiAgICAgIHRlLm1vdmVDb2x1bW5SaWdodCgpLFxuICAgICk7XG4gICAgdGhpcy5kcmF3QnRuKHJvd1R3b0J0bnMsICdtb3ZlQ29sdW1uTGVmdCcsICdtb3ZlIGNvbHVtbiBsZWZ0JywgKHRlKSA9PlxuICAgICAgdGUubW92ZUNvbHVtbkxlZnQoKSxcbiAgICApO1xuXG4gICAgY29uc3Qgcm93VGhyZWVCdG5zID0gbmF2SGVhZGVyLmNyZWF0ZURpdih7IGNsczogJ25hdi1idXR0b25zLWNvbnRhaW5lcicgfSk7XG4gICAgcm93VGhyZWVCdG5zLmNyZWF0ZVNwYW4oeyBjbHM6ICdhZHZhbmNlZC10YWJsZXMtcm93LWxhYmVsJyB9KS5zZXRUZXh0KFwiRWRpdDpcIik7XG4gICAgdGhpcy5kcmF3QnRuKHJvd1RocmVlQnRucywgJ2luc2VydFJvdycsICdpbnNlcnQgcm93IGFib3ZlJywgKHRlKSA9PlxuICAgICAgdGUuaW5zZXJ0Um93KCksXG4gICAgKTtcbiAgICB0aGlzLmRyYXdCdG4ocm93VGhyZWVCdG5zLCAnaW5zZXJ0Q29sdW1uJywgJ2luc2VydCBjb2x1bW4gbGVmdCcsICh0ZSkgPT5cbiAgICAgIHRlLmluc2VydENvbHVtbigpLFxuICAgICk7XG4gICAgdGhpcy5kcmF3QnRuKHJvd1RocmVlQnRucywgJ2RlbGV0ZVJvdycsICdkZWxldGUgcm93JywgKHRlKSA9PlxuICAgICAgdGUuZGVsZXRlUm93KCksXG4gICAgKTtcbiAgICB0aGlzLmRyYXdCdG4ocm93VGhyZWVCdG5zLCAnZGVsZXRlQ29sdW1uJywgJ2RlbGV0ZSBjb2x1bW4nLCAodGUpID0+XG4gICAgICB0ZS5kZWxldGVDb2x1bW4oKSxcbiAgICApO1xuXG4gICAgY29uc3Qgcm93Rm91ckJ0bnMgPSBuYXZIZWFkZXIuY3JlYXRlRGl2KHsgY2xzOiAnbmF2LWJ1dHRvbnMtY29udGFpbmVyJyB9KTtcbiAgICByb3dGb3VyQnRucy5jcmVhdGVTcGFuKHsgY2xzOiAnYWR2YW5jZWQtdGFibGVzLXJvdy1sYWJlbCcgfSkuc2V0VGV4dChcIlNvcnQvRjpcIik7XG4gICAgdGhpcy5kcmF3QnRuKHJvd0ZvdXJCdG5zLCAnc29ydEFzYycsICdzb3J0IGJ5IGNvbHVtbiBhc2NlbmRpbmcnLCAodGUpID0+XG4gICAgICB0ZS5zb3J0Um93c0FzYygpLFxuICAgICk7XG4gICAgdGhpcy5kcmF3QnRuKHJvd0ZvdXJCdG5zLCAnc29ydERlc2MnLCAnc29ydCBieSBjb2x1bW4gZGVzY2VuZGluZycsICh0ZSkgPT5cbiAgICAgIHRlLnNvcnRSb3dzRGVzYygpLFxuICAgICk7XG4gICAgdGhpcy5kcmF3QnRuKHJvd0ZvdXJCdG5zLCAnZm9ybXVsYScsICdldmFsdWF0ZSBmb3JtdWxhcycsICh0ZSkgPT5cbiAgICAgIHRlLmV2YWx1YXRlRm9ybXVsYXMoKSxcbiAgICApO1xuXG4gICAgY29uc3Qgcm93Rml2ZUJ0bnMgPSBuYXZIZWFkZXIuY3JlYXRlRGl2KHsgY2xzOiAnbmF2LWJ1dHRvbnMtY29udGFpbmVyJyB9KTtcbiAgICByb3dGaXZlQnRucy5jcmVhdGVTcGFuKHsgY2xzOiAnYWR2YW5jZWQtdGFibGVzLXJvdy1sYWJlbCcgfSkuc2V0VGV4dChcIk1pc2M6XCIpO1xuICAgIHRoaXMuZHJhd0J0bihyb3dGaXZlQnRucywgJ2NzdicsICdleHBvcnQgYXMgY3N2JywgKHRlKSA9PlxuICAgICAgdGUuZXhwb3J0Q1NWTW9kYWwoKSxcbiAgICApO1xuICAgIHRoaXMuZHJhd0J0bihyb3dGaXZlQnRucywgJ2hlbHAnLCAnaGVscCcsICgpID0+XG4gICAgICB3aW5kb3cub3BlbihcbiAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS90Z3Jvc2luZ2VyL2FkdmFuY2VkLXRhYmxlcy1vYnNpZGlhbi9ibG9iL21haW4vZG9jcy9oZWxwLm1kJyxcbiAgICAgICksXG4gICAgKTtcblxuICAgIGNvbnRhaW5lci5lbXB0eSgpO1xuICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChyb290RWwpO1xuICB9O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZHJhd0J0biA9IChcbiAgICBwYXJlbnQ6IEhUTUxEaXZFbGVtZW50LFxuICAgIGljb25OYW1lOiBzdHJpbmcsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBmbjogKHRlOiBUYWJsZUVkaXRvcikgPT4gdm9pZCxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgY3Vyc29yQ2hlY2sgPSAodGU6IFRhYmxlRWRpdG9yKTogYm9vbGVhbiA9PiB7XG4gICAgICBpZiAodGl0bGUgPT09ICdldmFsdWF0ZSBmb3JtdWxhcycpIHtcbiAgICAgICAgcmV0dXJuIHRlLmN1cnNvcklzSW5UYWJsZSgpIHx8IHRlLmN1cnNvcklzSW5UYWJsZUZvcm11bGEoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0ZS5jdXJzb3JJc0luVGFibGUoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uID0gcGFyZW50LmNyZWF0ZURpdih7IGNsczogJ2FkdmFuY2VkLXRhYmxlcy1idXR0b24gbmF2LWFjdGlvbi1idXR0b24nLCB0aXRsZSB9KTtcbiAgICBidXR0b24ub25DbGlja0V2ZW50KCgpID0+IHRoaXMud2l0aFRFKGZuLCBjdXJzb3JDaGVjaykpO1xuICAgIGJ1dHRvbi5hcHBlbmRDaGlsZChFbGVtZW50KGljb25zW2ljb25OYW1lXSkpO1xuICB9O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgd2l0aFRFID0gKFxuICAgIGZuOiAodGU6IFRhYmxlRWRpdG9yKSA9PiB2b2lkLFxuICAgIGN1cnNvckNoZWNrOiAodGU6IFRhYmxlRWRpdG9yKSA9PiBib29sZWFuLFxuICAgIGFsZXJ0T25Ob1RhYmxlID0gdHJ1ZSxcbiAgKTogdm9pZCA9PiB7XG4gICAgbGV0IGVkaXRvcjogRWRpdG9yO1xuICAgIGNvbnN0IGxlYWYgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0TW9zdFJlY2VudExlYWYoKTtcbiAgICBpZiAobGVhZi52aWV3IGluc3RhbmNlb2YgTWFya2Rvd25WaWV3KSB7XG4gICAgICBlZGl0b3IgPSBsZWFmLnZpZXcuZWRpdG9yO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0FkdmFuY2VkIFRhYmxlczogVW5hYmxlIHRvIGRldGVybWluZSBjdXJyZW50IGVkaXRvci4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZSA9IG5ldyBUYWJsZUVkaXRvcih0aGlzLmFwcCwgbGVhZi52aWV3LmZpbGUsIGVkaXRvciwgdGhpcy5zZXR0aW5ncyk7XG4gICAgaWYgKCFjdXJzb3JDaGVjayh0ZSkpIHtcbiAgICAgIGlmIChhbGVydE9uTm9UYWJsZSkge1xuICAgICAgICBuZXcgTm90aWNlKCdBZHZhbmNlZCBUYWJsZXM6IEN1cnNvciBtdXN0IGJlIGluIGEgdGFibGUuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm4odGUpO1xuICB9O1xufVxuXG4vKipcbiAqIENvbnZlcnQgYW4gc3ZnIHN0cmluZyBpbnRvIGFuIEhUTUwgZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0gc3ZnVGV4dCBzdmcgaW1hZ2UgYXMgYSBzdHJpbmdcbiAqL1xuY29uc3QgRWxlbWVudCA9IChzdmdUZXh0OiBzdHJpbmcpOiBIVE1MRWxlbWVudCA9PiB7XG4gIGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcbiAgcmV0dXJuIHBhcnNlci5wYXJzZUZyb21TdHJpbmcoc3ZnVGV4dCwgJ3RleHQveG1sJykuZG9jdW1lbnRFbGVtZW50O1xufTtcbiIsImltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnLi9pY29ucyc7XG5pbXBvcnQgeyBkZWZhdWx0U2V0dGluZ3MsIFRhYmxlRWRpdG9yUGx1Z2luU2V0dGluZ3MgfSBmcm9tICcuL3NldHRpbmdzJztcbmltcG9ydCB7XG4gIFRhYmxlQ29udHJvbHNWaWV3LFxuICBUYWJsZUNvbnRyb2xzVmlld1R5cGUsXG59IGZyb20gJy4vdGFibGUtY29udHJvbHMtdmlldyc7XG5pbXBvcnQgeyBUYWJsZUVkaXRvciB9IGZyb20gJy4vdGFibGUtZWRpdG9yJztcbmltcG9ydCB7IEV4dGVuc2lvbiwgUHJlYyB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcbmltcG9ydCB7IEtleUJpbmRpbmcsIGtleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xuaW1wb3J0IHsgRm9ybWF0VHlwZSB9IGZyb20gJ0B0Z3Jvc2luZ2VyL21kLWFkdmFuY2VkLXRhYmxlcyc7XG5pbXBvcnQge1xuICBBcHAsXG4gIEVkaXRvcixcbiAgTWFya2Rvd25WaWV3LFxuICBOb3RpY2UsXG4gIFBsdWdpbixcbiAgUGx1Z2luU2V0dGluZ1RhYixcbiAgU2V0dGluZyxcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUYWJsZUVkaXRvclBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XG4gIHB1YmxpYyBzZXR0aW5nczogVGFibGVFZGl0b3JQbHVnaW5TZXR0aW5ncztcblxuICAvLyBjbUVkaXRvcnMgaXMgdXNlZCBkdXJpbmcgdW5sb2FkIHRvIHJlbW92ZSBvdXIgZXZlbnQgaGFuZGxlcnMuXG4gIHByaXZhdGUgY21FZGl0b3JzOiBDb2RlTWlycm9yLkVkaXRvcltdO1xuXG4gIHByaXZhdGUgdGFibGVDb250cm9sc1ZpZXc6IFRhYmxlQ29udHJvbHNWaWV3O1xuXG4gIHB1YmxpYyBhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc29sZS5sb2coJ2xvYWRpbmcgbWFya2Rvd24tdGFibGUtZWRpdG9yIHBsdWdpbicpO1xuXG4gICAgYXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcblxuICAgIHRoaXMucmVnaXN0ZXJWaWV3KFxuICAgICAgVGFibGVDb250cm9sc1ZpZXdUeXBlLFxuICAgICAgKGxlYWYpID0+XG4gICAgICAgICh0aGlzLnRhYmxlQ29udHJvbHNWaWV3ID0gbmV3IFRhYmxlQ29udHJvbHNWaWV3KGxlYWYsIHRoaXMuc2V0dGluZ3MpKSxcbiAgICApO1xuXG4gICAgYWRkSWNvbnMoKTtcblxuICAgIGlmICh0aGlzLnNldHRpbmdzLnNob3dSaWJib25JY29uKSB7XG4gICAgICB0aGlzLmFkZFJpYmJvbkljb24oJ3NwcmVhZHNoZWV0JywgJ0FkdmFuY2VkIFRhYmxlcyBUb29sYmFyJywgKCkgPT4ge1xuICAgICAgICB0aGlzLnRvZ2dsZVRhYmxlQ29udHJvbHNWaWV3KCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmNtRWRpdG9ycyA9IFtdO1xuICAgIHRoaXMucmVnaXN0ZXJDb2RlTWlycm9yKChjbSkgPT4ge1xuICAgICAgdGhpcy5jbUVkaXRvcnMucHVzaChjbSk7XG4gICAgICBjbS5vbigna2V5ZG93bicsIHRoaXMuaGFuZGxlS2V5RG93bik7XG4gICAgfSk7XG5cbiAgICAvLyBDTTYgZWRpdG9yIGV4dGVuc2lvbiBmb3IgcmVtYXBwaW5nIGtleXNcbiAgICB0aGlzLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKHRoaXMubWFrZUVkaXRvckV4dGVuc2lvbigpKTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ25leHQtcm93JyxcbiAgICAgIG5hbWU6ICdHbyB0byBuZXh0IHJvdycsXG4gICAgICBpY29uOiAnYXJyb3dlbnRlcicsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmJpbmRFbnRlciAmJiAhdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgIG5ldyBOb3RpY2UoXG4gICAgICAgICAgICAnQWR2YW5jZWQgVGFibGVzOiBOZXh0IHJvdyBhbHNvIGJvdW5kIHRvIGVudGVyLiAnICtcbiAgICAgICAgICAgICAgJ1Bvc3NpYmx5IHByb2R1Y2luZyBkb3VibGUgYWN0aW9ucy4gU2VlIEFkdmFuY2VkIFRhYmxlcyBzZXR0aW5ncy4nLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGUubmV4dFJvdygpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICduZXh0LWNlbGwnLFxuICAgICAgbmFtZTogJ0dvIHRvIG5leHQgY2VsbCcsXG4gICAgICBpY29uOiAnYXJyb3d0YWInLFxuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogdGhpcy5uZXdQZXJmb3JtVGFibGVBY3Rpb24oKHRlOiBUYWJsZUVkaXRvcikgPT4ge1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5iaW5kVGFiICYmICF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgbmV3IE5vdGljZShcbiAgICAgICAgICAgICdBZHZhbmNlZCBUYWJsZXM6IE5leHQgY2VsbCBhbHNvIGJvdW5kIHRvIHRhYi4gJyArXG4gICAgICAgICAgICAgICdQb3NzaWJseSBwcm9kdWNpbmcgZG91YmxlIGFjdGlvbnMuIFNlZSBBZHZhbmNlZCBUYWJsZXMgc2V0dGluZ3MuJyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRlLm5leHRDZWxsKCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ3ByZXZpb3VzLWNlbGwnLFxuICAgICAgbmFtZTogJ0dvIHRvIHByZXZpb3VzIGNlbGwnLFxuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogdGhpcy5uZXdQZXJmb3JtVGFibGVBY3Rpb24oKHRlOiBUYWJsZUVkaXRvcikgPT4ge1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5iaW5kVGFiICYmICF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgbmV3IE5vdGljZShcbiAgICAgICAgICAgICdBZHZhbmNlZCBUYWJsZXM6IFByZXZpb3VzIGNlbGwgYWxzbyBib3VuZCB0byBzaGlmdCt0YWIuICcgK1xuICAgICAgICAgICAgICAnUG9zc2libHkgcHJvZHVjaW5nIGRvdWJsZSBhY3Rpb25zLiBTZWUgQWR2YW5jZWQgVGFibGVzIHNldHRpbmdzLicsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0ZS5wcmV2aW91c0NlbGwoKTtcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAnZm9ybWF0LXRhYmxlJyxcbiAgICAgIG5hbWU6ICdGb3JtYXQgdGFibGUgYXQgdGhlIGN1cnNvcicsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLmZvcm1hdFRhYmxlKCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ2Zvcm1hdC1hbGwtdGFibGVzJyxcbiAgICAgIG5hbWU6ICdGb3JtYXQgYWxsIHRhYmxlcyBpbiB0aGlzIGZpbGUnLFxuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogdGhpcy5uZXdQZXJmb3JtVGFibGVBY3Rpb24oKHRlOiBUYWJsZUVkaXRvcikgPT4ge1xuICAgICAgICB0ZS5mb3JtYXRBbGxUYWJsZXMoKTtcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAnaW5zZXJ0LWNvbHVtbicsXG4gICAgICBuYW1lOiAnSW5zZXJ0IGNvbHVtbiBiZWZvcmUgY3VycmVudCcsXG4gICAgICBpY29uOiAnaW5zZXJ0Q29sdW1uJyxcbiAgICAgIGVkaXRvckNoZWNrQ2FsbGJhY2s6IHRoaXMubmV3UGVyZm9ybVRhYmxlQWN0aW9uKCh0ZTogVGFibGVFZGl0b3IpID0+IHtcbiAgICAgICAgdGUuaW5zZXJ0Q29sdW1uKCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ2luc2VydC1yb3cnLFxuICAgICAgbmFtZTogJ0luc2VydCByb3cgYmVmb3JlIGN1cnJlbnQnLFxuICAgICAgaWNvbjogJ2luc2VydFJvdycsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLmluc2VydFJvdygpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdlc2NhcGUtdGFibGUnLFxuICAgICAgbmFtZTogJ01vdmUgY3Vyc29yIG91dCBvZiB0YWJsZScsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLmVzY2FwZSgpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdsZWZ0LWFsaWduLWNvbHVtbicsXG4gICAgICBuYW1lOiAnTGVmdCBhbGlnbiBjb2x1bW4nLFxuICAgICAgaWNvbjogJ2FsaWduTGVmdCcsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLmxlZnRBbGlnbkNvbHVtbigpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdjZW50ZXItYWxpZ24tY29sdW1uJyxcbiAgICAgIG5hbWU6ICdDZW50ZXIgYWxpZ24gY29sdW1uJyxcbiAgICAgIGljb246ICdhbGlnbkNlbnRlcicsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLmNlbnRlckFsaWduQ29sdW1uKCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ3JpZ2h0LWFsaWduLWNvbHVtbicsXG4gICAgICBuYW1lOiAnUmlnaHQgYWxpZ24gY29sdW1uJyxcbiAgICAgIGljb246ICdhbGlnblJpZ2h0JyxcbiAgICAgIGVkaXRvckNoZWNrQ2FsbGJhY2s6IHRoaXMubmV3UGVyZm9ybVRhYmxlQWN0aW9uKCh0ZTogVGFibGVFZGl0b3IpID0+IHtcbiAgICAgICAgdGUucmlnaHRBbGlnbkNvbHVtbigpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdtb3ZlLWNvbHVtbi1sZWZ0JyxcbiAgICAgIG5hbWU6ICdNb3ZlIGNvbHVtbiBsZWZ0JyxcbiAgICAgIGljb246ICdtb3ZlQ29sdW1uTGVmdCcsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLm1vdmVDb2x1bW5MZWZ0KCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ21vdmUtY29sdW1uLXJpZ2h0JyxcbiAgICAgIG5hbWU6ICdNb3ZlIGNvbHVtbiByaWdodCcsXG4gICAgICBpY29uOiAnbW92ZUNvbHVtblJpZ2h0JyxcbiAgICAgIGVkaXRvckNoZWNrQ2FsbGJhY2s6IHRoaXMubmV3UGVyZm9ybVRhYmxlQWN0aW9uKCh0ZTogVGFibGVFZGl0b3IpID0+IHtcbiAgICAgICAgdGUubW92ZUNvbHVtblJpZ2h0KCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ21vdmUtcm93LXVwJyxcbiAgICAgIG5hbWU6ICdNb3ZlIHJvdyB1cCcsXG4gICAgICBpY29uOiAnbW92ZVJvd1VwJyxcbiAgICAgIGVkaXRvckNoZWNrQ2FsbGJhY2s6IHRoaXMubmV3UGVyZm9ybVRhYmxlQWN0aW9uKCh0ZTogVGFibGVFZGl0b3IpID0+IHtcbiAgICAgICAgdGUubW92ZVJvd1VwKCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ21vdmUtcm93LWRvd24nLFxuICAgICAgbmFtZTogJ01vdmUgcm93IGRvd24nLFxuICAgICAgaWNvbjogJ21vdmVSb3dEb3duJyxcbiAgICAgIGVkaXRvckNoZWNrQ2FsbGJhY2s6IHRoaXMubmV3UGVyZm9ybVRhYmxlQWN0aW9uKCh0ZTogVGFibGVFZGl0b3IpID0+IHtcbiAgICAgICAgdGUubW92ZVJvd0Rvd24oKTtcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAnZGVsZXRlLWNvbHVtbicsXG4gICAgICBuYW1lOiAnRGVsZXRlIGNvbHVtbicsXG4gICAgICBpY29uOiAnZGVsZXRlQ29sdW1uJyxcbiAgICAgIGVkaXRvckNoZWNrQ2FsbGJhY2s6IHRoaXMubmV3UGVyZm9ybVRhYmxlQWN0aW9uKCh0ZTogVGFibGVFZGl0b3IpID0+IHtcbiAgICAgICAgdGUuZGVsZXRlQ29sdW1uKCk7XG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ2RlbGV0ZS1yb3cnLFxuICAgICAgbmFtZTogJ0RlbGV0ZSByb3cnLFxuICAgICAgaWNvbjogJ2RlbGV0ZVJvdycsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLmRlbGV0ZVJvdygpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdzb3J0LXJvd3MtYXNjZW5kaW5nJyxcbiAgICAgIG5hbWU6ICdTb3J0IHJvd3MgYXNjZW5kaW5nJyxcbiAgICAgIGljb246ICdzb3J0QXNjJyxcbiAgICAgIGVkaXRvckNoZWNrQ2FsbGJhY2s6IHRoaXMubmV3UGVyZm9ybVRhYmxlQWN0aW9uKCh0ZTogVGFibGVFZGl0b3IpID0+IHtcbiAgICAgICAgdGUuc29ydFJvd3NBc2MoKTtcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAnc29ydC1yb3dzLWRlc2NlbmRpbmcnLFxuICAgICAgbmFtZTogJ1NvcnQgcm93cyBkZXNjZW5kaW5nJyxcbiAgICAgIGljb246ICdzb3J0RGVzYycsXG4gICAgICBlZGl0b3JDaGVja0NhbGxiYWNrOiB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbigodGU6IFRhYmxlRWRpdG9yKSA9PiB7XG4gICAgICAgIHRlLnNvcnRSb3dzRGVzYygpO1xuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdldmFsdWF0ZS1mb3JtdWxhcycsXG4gICAgICBuYW1lOiAnRXZhbHVhdGUgdGFibGUgZm9ybXVsYXMnLFxuICAgICAgaWNvbjogJ2Zvcm11bGEnLFxuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogKFxuICAgICAgICBjaGVja2luZzogYm9vbGVhbixcbiAgICAgICAgZWRpdG9yOiBFZGl0b3IsXG4gICAgICAgIHZpZXc6IE1hcmtkb3duVmlldyxcbiAgICAgICk6IGJvb2xlYW4gfCB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgdGUgPSBuZXcgVGFibGVFZGl0b3IodGhpcy5hcHAsIHZpZXcuZmlsZSwgZWRpdG9yLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgaWYgKGNoZWNraW5nKSB7XG4gICAgICAgICAgcmV0dXJuIHRlLmN1cnNvcklzSW5UYWJsZSgpIHx8IHRlLmN1cnNvcklzSW5UYWJsZUZvcm11bGEoKTtcbiAgICAgICAgfVxuICAgICAgICB0ZS5ldmFsdWF0ZUZvcm11bGFzKCk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAndGFibGUtY29udHJvbC1iYXInLFxuICAgICAgbmFtZTogJ09wZW4gdGFibGUgY29udHJvbHMgdG9vbGJhcicsXG4gICAgICBob3RrZXlzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb2RpZmllcnM6IFsnTW9kJywgJ1NoaWZ0J10sXG4gICAgICAgICAga2V5OiAnZCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy50b2dnbGVUYWJsZUNvbnRyb2xzVmlldygpO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkU2V0dGluZ1RhYihuZXcgVGFibGVFZGl0b3JTZXR0aW5nc1RhYih0aGlzLmFwcCwgdGhpcykpO1xuICB9XG5cbiAgcHVibGljIG9udW5sb2FkKCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCd1bmxvYWRpbmcgbWFya2Rvd24tdGFibGUtZWRpdG9yIHBsdWdpbicpO1xuXG4gICAgdGhpcy5jbUVkaXRvcnMuZm9yRWFjaCgoY20pID0+IHtcbiAgICAgIGNtLm9mZigna2V5ZG93bicsIHRoaXMuaGFuZGxlS2V5RG93bik7XG4gICAgfSk7XG4gIH1cblxuICAvLyBtYWtlRWRpdG9yRXh0ZW5zaW9uIGlzIHVzZWQgdG8gYmluZCBUYWIgYW5kIEVudGVyIGluIHRoZSBuZXcgQ002IExpdmUgUHJldmlldyBlZGl0b3IuXG4gIHByaXZhdGUgcmVhZG9ubHkgbWFrZUVkaXRvckV4dGVuc2lvbiA9ICgpOiBFeHRlbnNpb24gPT4ge1xuICAgIGNvbnN0IGtleW1hcHM6IEtleUJpbmRpbmdbXSA9IFtdO1xuXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuYmluZEVudGVyKSB7XG4gICAgICBrZXltYXBzLnB1c2goe1xuICAgICAgICBrZXk6ICdFbnRlcicsXG4gICAgICAgIHJ1bjogKCk6IGJvb2xlYW4gPT5cbiAgICAgICAgICB0aGlzLm5ld1BlcmZvcm1UYWJsZUFjdGlvbkNNNigodGU6IFRhYmxlRWRpdG9yKSA9PiB0ZS5uZXh0Um93KCkpKCksXG4gICAgICAgIHByZXZlbnREZWZhdWx0OiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuYmluZFRhYikge1xuICAgICAga2V5bWFwcy5wdXNoKHtcbiAgICAgICAga2V5OiAnVGFiJyxcbiAgICAgICAgcnVuOiAoKTogYm9vbGVhbiA9PlxuICAgICAgICAgIHRoaXMubmV3UGVyZm9ybVRhYmxlQWN0aW9uQ002KCh0ZTogVGFibGVFZGl0b3IpID0+IHRlLm5leHRDZWxsKCkpKCksXG4gICAgICAgIHNoaWZ0OiAoKTogYm9vbGVhbiA9PlxuICAgICAgICAgIHRoaXMubmV3UGVyZm9ybVRhYmxlQWN0aW9uQ002KCh0ZTogVGFibGVFZGl0b3IpID0+XG4gICAgICAgICAgICB0ZS5wcmV2aW91c0NlbGwoKSxcbiAgICAgICAgICApKCksXG4gICAgICAgIHByZXZlbnREZWZhdWx0OiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFByZWMub3ZlcnJpZGUoa2V5bWFwLm9mKGtleW1hcHMpKTtcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5ld1BlcmZvcm1UYWJsZUFjdGlvbkNNNiA9XG4gICAgKGZuOiAodGU6IFRhYmxlRWRpdG9yKSA9PiB2b2lkKTogKCgpID0+IGJvb2xlYW4pID0+XG4gICAgKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgY29uc3QgbGVhZiA9IHRoaXMuYXBwLndvcmtzcGFjZS5hY3RpdmVMZWFmO1xuICAgICAgaWYgKGxlYWYudmlldyBpbnN0YW5jZW9mIE1hcmtkb3duVmlldykge1xuICAgICAgICBjb25zdCB0ZSA9IG5ldyBUYWJsZUVkaXRvcihcbiAgICAgICAgICB0aGlzLmFwcCxcbiAgICAgICAgICBsZWFmLnZpZXcuZmlsZSxcbiAgICAgICAgICBsZWFmLnZpZXcuZWRpdG9yLFxuICAgICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRlLmN1cnNvcklzSW5UYWJsZSgpKSB7XG4gICAgICAgICAgZm4odGUpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5ld1BlcmZvcm1UYWJsZUFjdGlvbiA9XG4gICAgKGZuOiAodGU6IFRhYmxlRWRpdG9yKSA9PiB2b2lkLCBhbGVydE9uTm9UYWJsZSA9IHRydWUpID0+XG4gICAgKGNoZWNraW5nOiBib29sZWFuLCBlZGl0b3I6IEVkaXRvciwgdmlldzogTWFya2Rvd25WaWV3KTogYm9vbGVhbiB8IHZvaWQgPT4ge1xuICAgICAgY29uc3QgdGUgPSBuZXcgVGFibGVFZGl0b3IodGhpcy5hcHAsIHZpZXcuZmlsZSwgZWRpdG9yLCB0aGlzLnNldHRpbmdzKTtcblxuICAgICAgaWYgKGNoZWNraW5nKSB7XG4gICAgICAgIHJldHVybiB0ZS5jdXJzb3JJc0luVGFibGUoKTtcbiAgICAgIH1cblxuICAgICAgZm4odGUpO1xuICAgIH07XG5cbiAgLy8gaGFuZGxlS2V5RG93biBpcyB1c2VkIHRvIGJpbmQgdGhlIHRhYiBhbmQgZW50ZXIga2V5cyBpbiB0aGUgbGVnYWN5IENNNSBlZGl0b3IuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlS2V5RG93biA9IChcbiAgICBjbTogQ29kZU1pcnJvci5FZGl0b3IsXG4gICAgZXZlbnQ6IEtleWJvYXJkRXZlbnQsXG4gICk6IHZvaWQgPT4ge1xuICAgIGlmIChbJ1RhYicsICdFbnRlciddLmNvbnRhaW5zKGV2ZW50LmtleSkpIHtcbiAgICAgIGxldCBlZGl0b3I6IEVkaXRvcjtcbiAgICAgIGxldCB2aWV3OiBNYXJrZG93blZpZXc7XG4gICAgICBjb25zdCBhY3RpdmVMZWFmID0gdGhpcy5hcHAud29ya3NwYWNlLmFjdGl2ZUxlYWY7XG4gICAgICBpZiAoYWN0aXZlTGVhZi52aWV3IGluc3RhbmNlb2YgTWFya2Rvd25WaWV3KSB7XG4gICAgICAgIGVkaXRvciA9IGFjdGl2ZUxlYWYudmlldy5lZGl0b3I7XG4gICAgICAgIHZpZXcgPSBhY3RpdmVMZWFmLnZpZXc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMubmV3UGVyZm9ybVRhYmxlQWN0aW9uKCh0ZTogVGFibGVFZGl0b3IpID0+IHtcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICBjYXNlICdUYWInOlxuICAgICAgICAgICAgaWYgKCF0aGlzLnNldHRpbmdzLmJpbmRUYWIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgdGUucHJldmlvdXNDZWxsKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0ZS5uZXh0Q2VsbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICAgICAgaWYgKCF0aGlzLnNldHRpbmdzLmJpbmRFbnRlcikge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICB0ZS5lc2NhcGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmFsdEtleSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0ZS5uZXh0Um93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfSwgZmFsc2UpO1xuXG4gICAgICAvLyBDaGVjayBmaXJzdCBpZiB3ZSBhcmUgaW4gYSB0YWJsZSwgaWYgc28sIHRoZW4gZXhlY3V0ZS5cbiAgICAgIGlmIChhY3Rpb24odHJ1ZSwgZWRpdG9yLCB2aWV3KSkge1xuICAgICAgICBhY3Rpb24oZmFsc2UsIGVkaXRvciwgdmlldyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdG9nZ2xlVGFibGVDb250cm9sc1ZpZXcgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0TGVhdmVzT2ZUeXBlKFRhYmxlQ29udHJvbHNWaWV3VHlwZSk7XG4gICAgaWYgKGV4aXN0aW5nLmxlbmd0aCkge1xuICAgICAgdGhpcy5hcHAud29ya3NwYWNlLnJldmVhbExlYWYoZXhpc3RpbmdbMF0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRSaWdodExlYWYoZmFsc2UpLnNldFZpZXdTdGF0ZSh7XG4gICAgICB0eXBlOiBUYWJsZUNvbnRyb2xzVmlld1R5cGUsXG4gICAgICBhY3RpdmU6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFwcC53b3Jrc3BhY2UucmV2ZWFsTGVhZihcbiAgICAgIHRoaXMuYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoVGFibGVDb250cm9sc1ZpZXdUeXBlKVswXSxcbiAgICApO1xuICB9O1xuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNldHRpbmdzT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICBkZWZhdWx0U2V0dGluZ3MsXG4gICAgICBhd2FpdCB0aGlzLmxvYWREYXRhKCksXG4gICAgKTtcbiAgICB0aGlzLnNldHRpbmdzID0gbmV3IFRhYmxlRWRpdG9yUGx1Z2luU2V0dGluZ3Moc2V0dGluZ3NPcHRpb25zKTtcbiAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpc01vYmlsZSA9ICgpOiBib29sZWFuID0+ICh0aGlzLmFwcCBhcyBhbnkpLmlzTW9iaWxlO1xufVxuXG5jbGFzcyBUYWJsZUVkaXRvclNldHRpbmdzVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luOiBUYWJsZUVkaXRvclBsdWdpbjtcblxuICBjb25zdHJ1Y3RvcihhcHA6IEFwcCwgcGx1Z2luOiBUYWJsZUVkaXRvclBsdWdpbikge1xuICAgIHN1cGVyKGFwcCwgcGx1Z2luKTtcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcbiAgfVxuXG4gIHB1YmxpYyBkaXNwbGF5KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY29udGFpbmVyRWwgfSA9IHRoaXM7XG4gICAgY29udGFpbmVyRWwuZW1wdHkoKTtcblxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdoMicsIHsgdGV4dDogJ0FkdmFuY2VkIFRhYmxlcyBQbHVnaW4gLSBTZXR0aW5ncycgfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdCaW5kIGVudGVyIHRvIHRhYmxlIG5hdmlnYXRpb24nKVxuICAgICAgLnNldERlc2MoXG4gICAgICAgICdSZXF1aXJlcyByZXN0YXJ0IG9mIE9ic2lkaWFuLiBJZiBlbmFibGVkLCB3aGVuIHRoZSBjdXJzb3IgaXMgaW4gYSB0YWJsZSwgZW50ZXIgYWR2YW5jZXMgdG8gdGhlIG5leHQgJyArXG4gICAgICAgICAgJ3Jvdy4gRGlzYWJsaW5nIHRoaXMgY2FuIGhlbHAgYXZvaWQgY29uZmxpY3Rpbmcgd2l0aCB0YWcgb3IgQ0pLICcgK1xuICAgICAgICAgICdhdXRvY29tcGxldGlvbi4gSWYgZGlzYWJsaW5nLCBiaW5kIFwiR28gdG8gLi4uXCIgaW4gdGhlIE9ic2lkaWFuIEhvdGtleXMgc2V0dGluZ3MuJyxcbiAgICAgIClcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmJpbmRFbnRlcikub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuYmluZEVudGVyID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuICAgICAgICAgIHRoaXMuZGlzcGxheSgpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdCaW5kIHRhYiB0byB0YWJsZSBuYXZpZ2F0aW9uJylcbiAgICAgIC5zZXREZXNjKFxuICAgICAgICAnUmVxdWlyZXMgcmVzdGFydCBvZiBPYnNpZGlhbi4gSWYgZW5hYmxlZCwgd2hlbiB0aGUgY3Vyc29yIGlzIGluIGEgdGFibGUsIHRhYi9zaGlmdCt0YWIgbmF2aWdhdGUgJyArXG4gICAgICAgICAgJ2JldHdlZW4gY2VsbHMuIERpc2FibGluZyB0aGlzIGNhbiBoZWxwIGF2b2lkIGNvbmZsaWN0aW5nIHdpdGggdGFnICcgK1xuICAgICAgICAgICdvciBDSksgYXV0b2NvbXBsZXRpb24uIElmIGRpc2FibGluZywgYmluZCBcIkdvIHRvIC4uLlwiIGluIHRoZSBPYnNpZGlhbiBIb3RrZXlzIHNldHRpbmdzLicsXG4gICAgICApXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XG4gICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5iaW5kVGFiKS5vbkNoYW5nZSgodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5iaW5kVGFiID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuICAgICAgICAgIHRoaXMuZGlzcGxheSgpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdQYWQgY2VsbCB3aWR0aCB1c2luZyBzcGFjZXMnKVxuICAgICAgLnNldERlc2MoXG4gICAgICAgICdJZiBlbmFibGVkLCB0YWJsZSBjZWxscyB3aWxsIGhhdmUgc3BhY2VzIGFkZGVkIHRvIG1hdGNoIHRoZSB3aWR0aCBvZiB0aGUgJyArXG4gICAgICAgICAgJ2xvbmdlc3QgY2VsbCBpbiB0aGUgY29sdW1uLicsXG4gICAgICApXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XG4gICAgICAgIHRvZ2dsZVxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5mb3JtYXRUeXBlID09PSBGb3JtYXRUeXBlLk5PUk1BTClcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5mb3JtYXRUeXBlID0gdmFsdWVcbiAgICAgICAgICAgICAgPyBGb3JtYXRUeXBlLk5PUk1BTFxuICAgICAgICAgICAgICA6IEZvcm1hdFR5cGUuV0VBSztcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheSgpO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoJ1Nob3cgaWNvbiBpbiBzaWRlYmFyJylcbiAgICAgIC5zZXREZXNjKFxuICAgICAgICAnSWYgZW5hYmxlZCwgYSBidXR0b24gd2hpY2ggb3BlbnMgdGhlIHRhYmxlIGNvbnRyb2xzIHRvb2xiYXIgd2lsbCBiZSBhZGRlZCB0byB0aGUgT2JzaWRpYW4gc2lkZWJhci4gJyArXG4gICAgICAgICAgJ1RoZSB0b29sYmFyIGNhbiBhbHNvIGJlIG9wZW5lZCB3aXRoIGEgSG90a2V5LiBDaGFuZ2VzIG9ubHkgdGFrZSBlZmZlY3Qgb24gcmVsb2FkLicsXG4gICAgICApXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XG4gICAgICAgIHRvZ2dsZVxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zaG93UmliYm9uSWNvbilcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5zaG93UmliYm9uSWNvbiA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5KCk7XG4gICAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgY29uc3QgZGl2ID0gY29udGFpbmVyRWwuY3JlYXRlRWwoJ2RpdicsIHtcbiAgICAgIGNsczogJ2FkdmFuY2VkLXRhYmxlcy1kb25hdGlvbicsXG4gICAgfSk7XG5cbiAgICBjb25zdCBkb25hdGVUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xuICAgIGRvbmF0ZVRleHQuYXBwZW5kVGV4dChcbiAgICAgICdJZiB0aGlzIHBsdWdpbiBhZGRzIHZhbHVlIGZvciB5b3UgYW5kIHlvdSB3b3VsZCBsaWtlIHRvIGhlbHAgc3VwcG9ydCAnICtcbiAgICAgICAgJ2NvbnRpbnVlZCBkZXZlbG9wbWVudCwgcGxlYXNlIHVzZSB0aGUgYnV0dG9ucyBiZWxvdzonLFxuICAgICk7XG4gICAgZGl2LmFwcGVuZENoaWxkKGRvbmF0ZVRleHQpO1xuXG4gICAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuXG4gICAgZGl2LmFwcGVuZENoaWxkKFxuICAgICAgY3JlYXRlRG9uYXRlQnV0dG9uKFxuICAgICAgICAnaHR0cHM6Ly9wYXlwYWwubWUvdGdyb3NpbmdlcicsXG4gICAgICAgIHBhcnNlci5wYXJzZUZyb21TdHJpbmcocGF5cGFsLCAndGV4dC94bWwnKS5kb2N1bWVudEVsZW1lbnQsXG4gICAgICApLFxuICAgICk7XG5cbiAgICBkaXYuYXBwZW5kQ2hpbGQoXG4gICAgICBjcmVhdGVEb25hdGVCdXR0b24oXG4gICAgICAgICdodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL3Rncm9zaW5nZXInLFxuICAgICAgICBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKGJ1eU1lQUNvZmZlZSwgJ3RleHQveG1sJykuZG9jdW1lbnRFbGVtZW50LFxuICAgICAgKSxcbiAgICApO1xuICB9XG59XG5cbmNvbnN0IGNyZWF0ZURvbmF0ZUJ1dHRvbiA9IChsaW5rOiBzdHJpbmcsIGltZzogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCA9PiB7XG4gIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gIGEuc2V0QXR0cmlidXRlKCdocmVmJywgbGluayk7XG4gIGEuYWRkQ2xhc3MoJ2FkdmFuY2VkLXRhYmxlcy1kb25hdGUtYnV0dG9uJyk7XG4gIGEuYXBwZW5kQ2hpbGQoaW1nKTtcbiAgcmV0dXJuIGE7XG59O1xuXG5jb25zdCBidXlNZUFDb2ZmZWUgPSBgXG48c3ZnIHdpZHRoPVwiMTUwXCIgaGVpZ2h0PVwiNDJcIiB2aWV3Qm94PVwiMCAwIDI2MCA3M1wiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuPHBhdGggZD1cIk0wIDExLjY4QzAgNS4yMjkzMiA1LjIyOTMxIDAgMTEuNjggMEgyNDguMkMyNTQuNjUxIDAgMjU5Ljg4IDUuMjI5MzEgMjU5Ljg4IDExLjY4VjYxLjMyQzI1OS44OCA2Ny43NzA3IDI1NC42NTEgNzMgMjQ4LjIgNzNIMTEuNjhDNS4yMjkzMSA3MyAwIDY3Ljc3MDcgMCA2MS4zMlYxMS42OFpcIiBmaWxsPVwiI0ZGREQwMFwiLz5cbjxwYXRoIGQ9XCJNNTIuMjU2NiAyNC4wMDc4TDUyLjIyNDYgMjMuOTg4OUw1Mi4xNTA0IDIzLjk2NjNDNTIuMTgwMiAyMy45OTE1IDUyLjIxNzYgMjQuMDA2MSA1Mi4yNTY2IDI0LjAwNzhaXCIgZmlsbD1cIiMwRDBDMjJcIi8+XG48cGF0aCBkPVwiTTUyLjcyNDggMjcuMzQ1N0w1Mi42ODk1IDI3LjM1NTZMNTIuNzI0OCAyNy4zNDU3WlwiIGZpbGw9XCIjMEQwQzIyXCIvPlxuPHBhdGggZD1cIk01Mi4yNzAxIDI0LjAwMjRDNTIuMjY2IDI0LjAwMTkgNTIuMjYxOSAyNC4wMDA5IDUyLjI1OCAyMy45OTk1QzUyLjI1NzggMjQuMDAyMiA1Mi4yNTc4IDI0LjAwNDkgNTIuMjU4IDI0LjAwNzZDNTIuMjYyNCAyNC4wMDcgNTIuMjY2NiAyNC4wMDUyIDUyLjI3MDEgMjQuMDAyNFpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cbjxwYXRoIGQ9XCJNNTIuMjU3OCAyNC4wMDk0SDUyLjI2NDNWMjQuMDA1NEw1Mi4yNTc4IDI0LjAwOTRaXCIgZmlsbD1cIiMwRDBDMjJcIi8+XG48cGF0aCBkPVwiTTUyLjY5NzMgMjcuMzM5NEw1Mi43NTEzIDI3LjMwODZMNTIuNzcxNCAyNy4yOTczTDUyLjc4OTcgMjcuMjc3OEM1Mi43NTU0IDI3LjI5MjYgNTIuNzI0MSAyNy4zMTM1IDUyLjY5NzMgMjcuMzM5NFpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cbjxwYXRoIGQ9XCJNNTIuMzQ4NCAyNC4wODEyTDUyLjI5NTYgMjQuMDMxTDUyLjI1OTggMjQuMDExNUM1Mi4yNzkgMjQuMDQ1NCA1Mi4zMTA4IDI0LjA3MDUgNTIuMzQ4NCAyNC4wODEyWlwiIGZpbGw9XCIjMEQwQzIyXCIvPlxuPHBhdGggZD1cIk0zOS4wNjg0IDU2LjQ2OUMzOS4wMjYyIDU2LjQ4NzIgMzguOTg5MyA1Ni41MTU4IDM4Ljk2MDkgNTYuNTUyTDM4Ljk5NDMgNTYuNTMwNkMzOS4wMTY5IDU2LjUwOTggMzkuMDQ4OSA1Ni40ODUzIDM5LjA2ODQgNTYuNDY5WlwiIGZpbGw9XCIjMEQwQzIyXCIvPlxuPHBhdGggZD1cIk00Ni43ODAyIDU0Ljk1MThDNDYuNzgwMiA1NC45MDQxIDQ2Ljc1NjkgNTQuOTEyOSA0Ni43NjI2IDU1LjA4MjZDNDYuNzYyNiA1NS4wNjg3IDQ2Ljc2ODMgNTUuMDU0OSA0Ni43NzA4IDU1LjA0MTdDNDYuNzczOSA1NS4wMTE1IDQ2Ljc3NjQgNTQuOTgyIDQ2Ljc4MDIgNTQuOTUxOFpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cbjxwYXRoIGQ9XCJNNDUuOTg0NCA1Ni40NjlDNDUuOTQyMiA1Ni40ODcyIDQ1LjkwNTMgNTYuNTE1OCA0NS44NzcgNTYuNTUyTDQ1LjkxMDMgNTYuNTMwNkM0NS45MzI5IDU2LjUwOTggNDUuOTY0OSA1Ni40ODUzIDQ1Ljk4NDQgNTYuNDY5WlwiIGZpbGw9XCIjMEQwQzIyXCIvPlxuPHBhdGggZD1cIk0zMy42MzA3IDU2LjgzMDFDMzMuNTk4NyA1Ni44MDIzIDMzLjU1OTUgNTYuNzg0IDMzLjUxNzYgNTYuNzc3M0MzMy41NTE1IDU2Ljc5MzcgMzMuNTg1NSA1Ni44MSAzMy42MDgxIDU2LjgyMjZMMzMuNjMwNyA1Ni44MzAxWlwiIGZpbGw9XCIjMEQwQzIyXCIvPlxuPHBhdGggZD1cIk0zMi40MTE4IDU1LjY1OThDMzIuNDA2OCA1NS42MTAzIDMyLjM5MTYgNTUuNTYyNCAzMi4zNjcyIDU1LjUxOUMzMi4zODQ1IDU1LjU2NDIgMzIuMzk5IDU1LjYxMDQgMzIuNDEwNiA1NS42NTczTDMyLjQxMTggNTUuNjU5OFpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cbjxwYXRoIGQ9XCJNNDAuNjIzIDM0LjcyMjFDMzguOTQ0OSAzNS40NDA1IDM3LjA0MDQgMzYuMjU1MSAzNC41NzIyIDM2LjI1NTFDMzMuNTM5NyAzNi4yNTMxIDMyLjUxMjIgMzYuMTExNCAzMS41MTc2IDM1LjgzNEwzMy4yMjQ3IDUzLjM2MDVDMzMuMjg1MSA1NC4wOTMgMzMuNjE4OCA1NC43NzYxIDM0LjE1OTUgNTUuMjczOUMzNC43MDAzIDU1Ljc3MTggMzUuNDA4NSA1Ni4wNDgyIDM2LjE0MzUgNTYuMDQ4QzM2LjE0MzUgNTYuMDQ4IDM4LjU2NCA1Ni4xNzM3IDM5LjM3MTYgNTYuMTczN0M0MC4yNDA5IDU2LjE3MzcgNDIuODQ3NCA1Ni4wNDggNDIuODQ3NCA1Ni4wNDhDNDMuNTgyMyA1Ni4wNDggNDQuMjkwNCA1NS43NzE2IDQ0LjgzMSA1NS4yNzM3QzQ1LjM3MTYgNTQuNzc1OSA0NS43MDUyIDU0LjA5MjkgNDUuNzY1NiA1My4zNjA1TDQ3LjU5NCAzMy45OTNDNDYuNzc2OSAzMy43MTQgNDUuOTUyMyAzMy41Mjg2IDQ1LjAyMjcgMzMuNTI4NkM0My40MTUgMzMuNTI3OSA0Mi4xMTk2IDM0LjA4MTcgNDAuNjIzIDM0LjcyMjFaXCIgZmlsbD1cIndoaXRlXCIvPlxuPHBhdGggZD1cIk0yNi4yMzQ0IDI3LjI0NDlMMjYuMjYzMyAyNy4yNzE5TDI2LjI4MjEgMjcuMjgzMkMyNi4yNjc2IDI3LjI2ODggMjYuMjUxNiAyNy4yNTU5IDI2LjIzNDQgMjcuMjQ0OVpcIiBmaWxsPVwiIzBEMEMyMlwiLz5cbjxwYXRoIGQ9XCJNNTUuNDkwNiAyNS42Mjc0TDU1LjIzMzYgMjQuMzMwN0M1NS4wMDI5IDIzLjE2NzMgNTQuNDc5MyAyMi4wNjggNTMuMjg1MSAyMS42NDc1QzUyLjkwMjQgMjEuNTEzIDUyLjQ2OCAyMS40NTUyIDUyLjE3NDUgMjEuMTc2OEM1MS44ODEgMjAuODk4MyA1MS43OTQzIDIwLjQ2NTkgNTEuNzI2NCAyMC4wNjQ5QzUxLjYwMDcgMTkuMzI4OSA1MS40ODI1IDE4LjU5MjMgNTEuMzUzNyAxNy44NTc1QzUxLjI0MjQgMTcuMjI1OSA1MS4xNTQ0IDE2LjUxNjMgNTAuODY0NyAxNS45MzY4QzUwLjQ4NzYgMTUuMTU4NiA0OS43MDUgMTQuNzAzNiA0OC45MjY5IDE0LjQwMjVDNDguNTI4MiAxNC4yNTM3IDQ4LjEyMTMgMTQuMTI3OCA0Ny43MDgyIDE0LjAyNTRDNDUuNzY0MiAxMy41MTI1IDQzLjcyMDIgMTMuMzI0IDQxLjcyMDIgMTMuMjE2NUMzOS4zMTk3IDEzLjA4NCAzNi45MTI4IDEzLjEyMzkgMzQuNTE4IDEzLjMzNTlDMzIuNzM1NSAxMy40OTgxIDMwLjg1ODEgMTMuNjk0MiAyOS4xNjQyIDE0LjMxMDhDMjguNTQ1MSAxNC41MzY0IDI3LjkwNzEgMTQuODA3MyAyNy40MzY0IDE1LjI4NTZDMjYuODU4NyAxNS44NzMzIDI2LjY3MDIgMTYuNzgyMSAyNy4wOTE5IDE3LjUxNUMyNy4zOTE3IDE4LjAzNTQgMjcuODk5NiAxOC40MDMxIDI4LjQzODIgMTguNjQ2M0MyOS4xMzk4IDE4Ljk1OTcgMjkuODcyNiAxOS4xOTgyIDMwLjYyNDIgMTkuMzU3OEMzMi43MTcyIDE5LjgyMDQgMzQuODg1IDIwLjAwMjEgMzcuMDIzMyAyMC4wNzk0QzM5LjM5MzIgMjAuMTc1IDQxLjc2NyAyMC4wOTc1IDQ0LjEyNTYgMTkuODQ3NEM0NC43MDg5IDE5Ljc4MzMgNDUuMjkxMSAxOS43MDY0IDQ1Ljg3MjMgMTkuNjE2OEM0Ni41NTY4IDE5LjUxMTggNDYuOTk2MSAxOC42MTY4IDQ2Ljc5NDMgMTcuOTkzM0M0Ni41NTMgMTcuMjQ3OSA0NS45MDQ0IDE2Ljk1ODcgNDUuMTcwOSAxNy4wNzEyQzQ1LjA2MjggMTcuMDg4MiA0NC45NTUzIDE3LjEwMzkgNDQuODQ3MiAxNy4xMTk2TDQ0Ljc2OTIgMTcuMTMxQzQ0LjUyMDggMTcuMTYyNCA0NC4yNzIzIDE3LjE5MTcgNDQuMDIzOCAxNy4yMTlDNDMuNTEwNSAxNy4yNzQzIDQyLjk5NTkgMTcuMzE5NSA0Mi40ODAxIDE3LjM1NDdDNDEuMzI0OSAxNy40MzUyIDQwLjE2NjUgMTcuNDcyMiAzOS4wMDg4IDE3LjQ3NDFDMzcuODcxMiAxNy40NzQxIDM2LjczMjkgMTcuNDQyMSAzNS41OTc4IDE3LjM2NzNDMzUuMDc5OSAxNy4zMzMzIDM0LjU2MzIgMTcuMjkwMiAzNC4wNDc4IDE3LjIzNzhDMzMuODEzNCAxNy4yMTMzIDMzLjU3OTYgMTcuMTg3NSAzMy4zNDU4IDE3LjE1ODZMMzMuMTIzMyAxNy4xMzAzTDMzLjA3NDkgMTcuMTIzNEwzMi44NDQyIDE3LjA5MDFDMzIuMzcyOCAxNy4wMTkxIDMxLjkwMTQgMTYuOTM3NCAzMS40MzUgMTYuODM4N0MzMS4zODggMTYuODI4MyAzMS4zNDU5IDE2LjgwMjEgMzEuMzE1NyAxNi43NjQ1QzMxLjI4NTYgMTYuNzI2OSAzMS4yNjkxIDE2LjY4MDEgMzEuMjY5MSAxNi42MzE5QzMxLjI2OTEgMTYuNTgzNyAzMS4yODU2IDE2LjUzNjkgMzEuMzE1NyAxNi40OTkzQzMxLjM0NTkgMTYuNDYxNyAzMS4zODggMTYuNDM1NiAzMS40MzUgMTYuNDI1MUgzMS40NDM4QzMxLjg0OCAxNi4zMzkgMzIuMjU1MyAxNi4yNjU1IDMyLjY2MzggMTYuMjAxNEMzMi44IDE2LjE4IDMyLjkzNjYgMTYuMTU5IDMzLjA3MzYgMTYuMTM4NUgzMy4wNzc0QzMzLjMzMzIgMTYuMTIxNSAzMy41OTAzIDE2LjA3NTcgMzMuODQ0OCAxNi4wNDU1QzM2LjA1OTUgMTUuODE1MSAzOC4yODc0IDE1LjczNjYgNDAuNTEyOCAxNS44MTA0QzQxLjU5MzMgMTUuODQxOSA0Mi42NzMxIDE1LjkwNTMgNDMuNzQ4NSAxNi4wMTQ3QzQzLjk3OTggMTYuMDM4NiA0NC4yMDk4IDE2LjA2MzcgNDQuNDM5OSAxNi4wOTJDNDQuNTI3OSAxNi4xMDI3IDQ0LjYxNjUgMTYuMTE1MyA0NC43MDUxIDE2LjEyNTlMNDQuODgzNiAxNi4xNTE3QzQ1LjQwNCAxNi4yMjkyIDQ1LjkyMTcgMTYuMzIzMyA0Ni40MzY3IDE2LjQzMzlDNDcuMTk5NyAxNi41OTk5IDQ4LjE3OTYgMTYuNjUzOSA0OC41MTkgMTcuNDg5OEM0OC42MjcxIDE3Ljc1NTEgNDguNjc2MSAxOC4wNDk5IDQ4LjczNTkgMTguMzI4M0w0OC44MTE5IDE4LjY4MzRDNDguODEzOSAxOC42ODk4IDQ4LjgxNTQgMTguNjk2MyA0OC44MTYzIDE4LjcwMjlDNDguOTk2MSAxOS41NDA5IDQ5LjE3NiAyMC4zNzkgNDkuMzU2MiAyMS4yMTdDNDkuMzY5NCAyMS4yNzg5IDQ5LjM2OTcgMjEuMzQyOSA0OS4zNTcxIDIxLjQwNDlDNDkuMzQ0NSAyMS40NjY5IDQ5LjMxOTMgMjEuNTI1NyA0OS4yODI5IDIxLjU3NzZDNDkuMjQ2NiAyMS42Mjk0IDQ5LjIgMjEuNjczMiA0OS4xNDYgMjEuNzA2MkM0OS4wOTIgMjEuNzM5MiA0OS4wMzE3IDIxLjc2MDggNDguOTY5IDIxLjc2OTVINDguOTY0TDQ4Ljg1NCAyMS43ODQ2TDQ4Ljc0NTMgMjEuNzk5QzQ4LjQwMDkgMjEuODQzOSA0OC4wNTYgMjEuODg1OCA0Ny43MTA3IDIxLjkyNDdDNDcuMDMwNyAyMi4wMDIyIDQ2LjM0OTYgMjIuMDY5MyA0NS42Njc0IDIyLjEyNTlDNDQuMzExOSAyMi4yMzg2IDQyLjk1MzYgMjIuMzEyNSA0MS41OTI3IDIyLjM0NzdDNDAuODk5MiAyMi4zNjYyIDQwLjIwNTkgMjIuMzc0OCAzOS41MTI5IDIyLjM3MzVDMzYuNzU0MyAyMi4zNzEzIDMzLjk5ODEgMjIuMjExIDMxLjI1NzggMjEuODkzM0MzMC45NjExIDIxLjg1ODEgMzAuNjY0NSAyMS44MjA0IDMwLjM2NzggMjEuNzgyMUMzMC41OTc4IDIxLjgxMTYgMzAuMjAwNiAyMS43NTk0IDMwLjEyMDIgMjEuNzQ4MUMyOS45MzE2IDIxLjcyMTcgMjkuNzQzMSAyMS42OTQzIDI5LjU1NDUgMjEuNjY1OEMyOC45MjE2IDIxLjU3MDkgMjguMjkyNCAyMS40NTQgMjcuNjYwNyAyMS4zNTE1QzI2Ljg5NzEgMjEuMjI1OCAyNi4xNjY3IDIxLjI4ODcgMjUuNDc2IDIxLjY2NThDMjQuOTA5IDIxLjk3NiAyNC40NTAxIDIyLjQ1MTggMjQuMTYwNSAyMy4wMjk3QzIzLjg2MjYgMjMuNjQ1NiAyMy43NzM5IDI0LjMxNjMgMjMuNjQwNyAyNC45NzgxQzIzLjUwNzQgMjUuNjM5OSAyMy4zIDI2LjM1MjEgMjMuMzc4NiAyNy4wMzE1QzIzLjU0NzcgMjguNDk3OSAyNC41NzI4IDI5LjY4OTUgMjYuMDQ3MyAyOS45NTZDMjcuNDM0NSAzMC4yMDc0IDI4LjgyOTIgMzAuNDExMSAzMC4yMjc2IDMwLjU4NDZDMzUuNzIxMiAzMS4yNTc0IDQxLjI3MTEgMzEuMzM3OSA0Ni43ODE4IDMwLjgyNDdDNDcuMjMwNSAzMC43ODI4IDQ3LjY3ODcgMzAuNzM3MSA0OC4xMjYyIDMwLjY4NzZDNDguMjY2IDMwLjY3MjMgNDguNDA3NCAzMC42ODg0IDQ4LjU0MDEgMzAuNzM0OEM0OC42NzI5IDMwLjc4MTIgNDguNzkzNiAzMC44NTY2IDQ4Ljg5MzQgMzAuOTU1N0M0OC45OTMyIDMxLjA1NDggNDkuMDY5NSAzMS4xNzQ5IDQ5LjExNjkgMzEuMzA3M0M0OS4xNjQyIDMxLjQzOTcgNDkuMTgxNCAzMS41ODExIDQ5LjE2NyAzMS43MjA5TDQ5LjAyNzUgMzMuMDc3M0M0OC43NDYzIDM1LjgxODEgNDguNDY1MiAzOC41NTg3IDQ4LjE4NCA0MS4yOTlDNDcuODkwNyA0NC4xNzY5IDQ3LjU5NTUgNDcuMDU0NSA0Ny4yOTg0IDQ5LjkzMTlDNDcuMjE0NiA1MC43NDIyIDQ3LjEzMDggNTEuNTUyNCA0Ny4wNDcgNTIuMzYyNEM0Ni45NjY2IDUzLjE2IDQ2Ljk1NTIgNTMuOTgyNyA0Ni44MDM4IDU0Ljc3MDlDNDYuNTY0OSA1Ni4wMTAzIDQ1LjcyNTggNTYuNzcxNSA0NC41MDE1IDU3LjA0OTlDNDMuMzc5OCA1Ny4zMDUyIDQyLjIzMzkgNTcuNDM5MiA0MS4wODM2IDU3LjQ0OTdDMzkuODA4MyA1Ny40NTY2IDM4LjUzMzYgNTcuNCAzNy4yNTgzIDU3LjQwNjlDMzUuODk3IDU3LjQxNDUgMzQuMjI5NSA1Ny4yODg3IDMzLjE3ODYgNTYuMjc1NkMzMi4yNTUzIDU1LjM4NTYgMzIuMTI3NyA1My45OTIxIDMyLjAwMiA1Mi43ODcyQzMxLjgzNDQgNTEuMTkyIDMxLjY2ODIgNDkuNTk3MSAzMS41MDM2IDQ4LjAwMjNMMzAuNTc5NiAzOS4xMzQ0TDI5Ljk4MTkgMzMuMzk2NkMyOS45NzE4IDMzLjMwMTcgMjkuOTYxOCAzMy4yMDggMjkuOTUyNCAzMy4xMTI1QzI5Ljg4MDcgMzIuNDI4IDI5LjM5NjEgMzEuNzU4IDI4LjYzMjQgMzEuNzkyNkMyNy45Nzg4IDMxLjgyMTUgMjcuMjM1OSAzMi4zNzcxIDI3LjMxMjUgMzMuMTEyNUwyNy43NTU3IDM3LjM2NjRMMjguNjcyIDQ2LjE2NTdDMjguOTMzMSA0OC42NjUyIDI5LjE5MzUgNTEuMTY1IDI5LjQ1MzMgNTMuNjY1M0MyOS41MDM2IDU0LjE0NDIgMjkuNTUwNyA1NC42MjQ0IDI5LjYwMzUgNTUuMTAzNEMyOS44OTA4IDU3LjcyMDUgMzEuODg5NSA1OS4xMzEgMzQuMzY0NiA1OS41MjgyQzM1LjgxMDIgNTkuNzYwNyAzNy4yOTEgNTkuODA4NSAzOC43NTggNTkuODMyNEM0MC42Mzg2IDU5Ljg2MjYgNDIuNTM4IDU5LjkzNDggNDQuMzg3NyA1OS41OTQyQzQ3LjEyODcgNTkuMDkxNCA0OS4xODUzIDU3LjI2MTEgNDkuNDc4OCA1NC40MjJDNDkuNTYyNiA1My42MDI0IDQ5LjY0NjQgNTIuNzgyNiA0OS43MzAyIDUxLjk2MjZDNTAuMDA4OCA0OS4yNTA3IDUwLjI4NzEgNDYuNTM4NiA1MC41NjQ5IDQzLjgyNjNMNTEuNDczNyAzNC45NjQxTDUxLjg5MDQgMzAuOTAyNkM1MS45MTEyIDMwLjcwMTIgNTEuOTk2MiAzMC41MTE4IDUyLjEzMyAzMC4zNjI1QzUyLjI2OTcgMzAuMjEzMiA1Mi40NTA5IDMwLjExMTkgNTIuNjQ5NyAzMC4wNzM2QzUzLjQzMzUgMjkuOTIwOCA1NC4xODI3IDI5LjY2IDU0Ljc0MDIgMjkuMDYzNUM1NS42Mjc3IDI4LjExMzggNTUuODA0MyAyNi44NzU2IDU1LjQ5MDYgMjUuNjI3NFpNMjYuMDA3MSAyNi41MDM1QzI2LjAxOSAyNi40OTc5IDI1Ljk5NyAyNi42MDAzIDI1Ljk4NzYgMjYuNjQ4MUMyNS45ODU3IDI2LjU3NTggMjUuOTg5NSAyNi41MTE3IDI2LjAwNzEgMjYuNTAzNVpNMjYuMDgzMSAyNy4wOTE4QzI2LjA4OTQgMjcuMDg3NCAyNi4xMDgzIDI3LjExMjYgMjYuMTI3OCAyNy4xNDI4QzI2LjA5ODIgMjcuMTE1MSAyNi4wNzk0IDI3LjA5NDQgMjYuMDgyNSAyNy4wOTE4SDI2LjA4MzFaTTI2LjE1NzkgMjcuMTkwNUMyNi4xODUgMjcuMjM2NCAyNi4xOTk0IDI3LjI2NTMgMjYuMTU3OSAyNy4xOTA1VjI3LjE5MDVaTTI2LjMwODIgMjcuMzEyNUgyNi4zMTE5QzI2LjMxMTkgMjcuMzE2OSAyNi4zMTg4IDI3LjMyMTMgMjYuMzIxNCAyNy4zMjU3QzI2LjMxNzIgMjcuMzIwOCAyNi4zMTI2IDI3LjMxNjQgMjYuMzA3NSAyNy4zMTI1SDI2LjMwODJaTTUyLjYxMzIgMjcuMTMwMkM1Mi4zMzE3IDI3LjM5NzkgNTEuOTA3NCAyNy41MjI0IDUxLjQ4ODIgMjcuNTg0NkM0Ni43ODY4IDI4LjI4MjMgNDIuMDE2OSAyOC42MzU1IDM3LjI2NCAyOC40Nzk2QzMzLjg2MjQgMjguMzYzMyAzMC40OTY3IDI3Ljk4NTYgMjcuMTI5IDI3LjUwOThDMjYuNzk5IDI3LjQ2MzMgMjYuNDQxNCAyNy40MDMgMjYuMjE0NSAyNy4xNTk3QzI1Ljc4NzEgMjYuNzAwOSAyNS45OTcgMjUuNzc3IDI2LjEwODMgMjUuMjIyNkMyNi4yMTAxIDI0LjcxNDggMjYuNDA1IDI0LjAzNzggMjcuMDA5IDIzLjk2NTZDMjcuOTUxOCAyMy44NTQ5IDI5LjA0NjYgMjQuMjUyOCAyOS45Nzk0IDI0LjM5NDJDMzEuMTAyMyAyNC41NjU2IDMyLjIyOTUgMjQuNzAyOCAzMy4zNjA5IDI0LjgwNTlDMzguMTg5MiAyNS4yNDU5IDQzLjA5ODYgMjUuMTc3NCA0Ny45MDU2IDI0LjUzMzdDNDguNzgxNyAyNC40MTYgNDkuNjU0OCAyNC4yNzkyIDUwLjUyNDYgMjQuMTIzM0M1MS4yOTk2IDIzLjk4NDQgNTIuMTU4OCAyMy43MjM2IDUyLjYyNzEgMjQuNTI2MkM1Mi45NDgyIDI1LjA3MyA1Mi45OTEgMjUuODA0NiA1Mi45NDEzIDI2LjQyMjVDNTIuOTI2IDI2LjY5MTcgNTIuODA4NCAyNi45NDQ4IDUyLjYxMjYgMjcuMTMwMkg1Mi42MTMyWlwiIGZpbGw9XCIjMEQwQzIyXCIvPlxuPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTgxLjEzMDIgNDAuMTkyOUM4MC44NTU2IDQwLjcxNjkgODAuNDc4MSA0MS4xNzMyIDc5Ljk5NzggNDEuNTYwNEM3OS41MTc1IDQxLjk0NzkgNzguOTU3MSA0Mi4yNjMzIDc4LjMxNjYgNDIuNTA2MkM3Ny42NzYxIDQyLjc0OTcgNzcuMDMxNSA0Mi45MTMxIDc2LjM4MzUgNDIuOTk2NEM3NS43MzUyIDQzLjA3OTkgNzUuMTA2IDQzLjA3MjcgNzQuNDk2MyA0Mi45NzM1QzczLjg4NjMgNDIuODc0OSA3My4zNjc0IDQyLjY3MzcgNzIuOTQwOCA0Mi4zNjk1TDczLjQyMTQgMzcuMzc3OUM3My44NjMzIDM3LjIyNjEgNzQuNDE5NyAzNy4wNzAzIDc1LjA5MDkgMzYuOTEwN0M3NS43NjE5IDM2Ljc1MTMgNzYuNDUyIDM2LjYzNzEgNzcuMTYxMyAzNi41Njg5Qzc3Ljg3MDUgMzYuNTAwMyA3OC41NDEyIDM2LjUwODQgNzkuMTc0NCAzNi41OTE3Qzc5LjgwNjggMzYuNjc1MyA4MC4zMDY1IDM2Ljg3NjUgODAuNjcyNSAzNy4xOTU4QzgwLjg3MDcgMzcuMzc4IDgxLjAzODcgMzcuNTc1NCA4MS4xNzYgMzcuNzg4M0M4MS4zMTMgMzguMDAxMSA4MS4zOTY5IDM4LjIyMTQgODEuNDI3NiAzOC40NDkzQzgxLjUwMzcgMzkuMDg3NSA4MS40MDQ3IDM5LjY2ODcgODEuMTMwMiA0MC4xOTI5Wk03NC4xNTMgMjkuNTYwMkM3NC40NzM0IDI5LjM2MjcgNzQuODU4NSAyOS4xODc3IDc1LjMwODMgMjkuMDM1NkM3NS43NTgxIDI4Ljg4NDEgNzYuMjE5NSAyOC43Nzc0IDc2LjY5MjMgMjguNzE2N0M3Ny4xNjQ4IDI4LjY1NjIgNzcuNjI2MiAyOC42NDgxIDc4LjA3NjMgMjguNjkzOEM3OC41MjU4IDI4LjczOTUgNzguOTIyOCAyOC44NjQ3IDc5LjI2NTkgMjkuMDY5N0M3OS42MDg5IDI5LjI3NTEgNzkuODY0MyAyOS41NzE0IDgwLjAzMiAyOS45NTg2QzgwLjE5OTcgMzAuMzQ2NCA4MC4yNDU2IDMwLjgzNjUgODAuMTY5MyAzMS40MjlDODAuMTA4MyAzMS45MDAxIDc5LjkyMTEgMzIuMjk5MSA3OS42MDg5IDMyLjYyNTZDNzkuMjk2MyAzMi45NTI2IDc4LjkxNDcgMzMuMjI1OSA3OC40NjUyIDMzLjQ0NjJDNzguMDE1NCAzMy42NjY4IDc3LjUzODggMzMuODQxNSA3Ny4wMzU2IDMzLjk3MDJDNzYuNTMyMSAzNC4wOTk3IDc2LjA0NzcgMzQuMTk0OSA3NS41ODI4IDM0LjI1NTNDNzUuMTE3NiAzNC4zMTYzIDc0LjcxMzcgMzQuMzU0NSA3NC4zNzA2IDM0LjM2OTJDNzQuMDI3MyAzNC4zODQ1IDczLjgwMjEgMzQuMzkyMSA3My42OTU2IDM0LjM5MjFMNzQuMTUzIDI5LjU2MDJaTTgzLjYwMDcgMzYuOTY3NkM4My4zNTY2IDM2LjQzNjEgODMuMDI4NyAzNS45Njg5IDgyLjYxNzIgMzUuNTY1OEM4Mi4yMDU0IDM1LjE2MzMgODEuNzE3IDM0Ljg3MDkgODEuMTUzMSAzNC42ODg1QzgxLjM5NjkgMzQuNDkxIDgxLjYzNzEgMzQuMTc5NSA4MS44NzM3IDMzLjc1MzlDODIuMTA5OSAzMy4zMjg4IDgyLjMxMTkgMzIuODY1IDgyLjQ3OTYgMzIuMzYzNkM4Mi42NDc0IDMxLjg2MTkgODIuNzYyIDMxLjM1NyA4Mi44MjI5IDMwLjg0NzhDODIuODgzNiAzMC4zMzg5IDgyLjg2MDcgMjkuOTAyIDgyLjc1NDQgMjkuNTM3QzgyLjQ5NDcgMjguNjI1NiA4Mi4wODcgMjcuOTExNCA4MS41MzAzIDI3LjM5NDZDODAuOTczNCAyNi44NzgyIDgwLjMyNTcgMjYuNTIxMSA3OS41ODYgMjYuMzIzM0M3OC44NDYyIDI2LjEyNjQgNzguMDMwNCAyNi4wODQyIDc3LjEzODMgMjYuMTk4MUM3Ni4yNDYyIDI2LjMxMiA3NS4zMzQ3IDI2LjUzNjEgNzQuNDA0OSAyNi44NzA0Qzc0LjQwNDkgMjYuNzk0NiA3NC40MTI0IDI2LjcxNDggNzQuNDI3OCAyNi42MzEyQzc0LjQ0MjYgMjYuNTQ4IDc0LjQ1MDQgMjYuNDYwNCA3NC40NTA0IDI2LjM2OUM3NC40NTA0IDI2LjE0MTEgNzQuMzM2MSAyNS45NDM5IDc0LjEwNzQgMjUuNzc2NUM3My44Nzg3IDI1LjYwOTMgNzMuNjE1NSAyNS41MTA3IDczLjMxODMgMjUuNDgwMUM3My4wMjA5IDI1LjQ1IDcyLjczMSAyNS41MTQyIDcyLjQ0ODkgMjUuNjczOEM3Mi4xNjY1IDI1LjgzMzQgNzEuOTcyMSAyNi4xMjY0IDcxLjg2NTYgMjYuNTUxMUM3MS43NDM0IDI3LjkxODkgNzEuNjIxNSAyOS4zMzk4IDcxLjQ5OTYgMzAuODEzNEM3MS4zNzc0IDMyLjI4NzUgNzEuMjQ4IDMzLjc3NjcgNzEuMTEwNyAzNS4yODEyQzcwLjk3MzUgMzYuNzg1NSA3MC44MzYyIDM4LjI3ODQgNzAuNjk4OSAzOS43NTk4QzcwLjU2MTYgNDEuMjQxNCA3MC40MjQ0IDQyLjY2NTkgNzAuMjg3MSA0NC4wMzMzQzcwLjMzMyA0NC40NDM2IDcwLjQ0NzMgNDQuNzYyOSA3MC42MzA0IDQ0Ljk5MDdDNzAuODEzMyA0NS4yMTg5IDcxLjAyNjggNDUuMzU1NiA3MS4yNzA5IDQ1LjQwMUM3MS41MTQ3IDQ1LjQ0NjcgNzEuNzcwNCA0NS40MDQ1IDcyLjAzNzEgNDUuMjc1NUM3Mi4zMDM4IDQ1LjE0NjkgNzIuNTM2NSA0NC45MjIyIDcyLjczNSA0NC42MDMyQzczLjM0NDcgNDQuOTM3NSA3NC4wMzExIDQ1LjE1NDEgNzQuNzkzOCA0NS4yNTNDNzUuNTU2MSA0NS4zNTE2IDc2LjMyOTggNDUuMzUxNiA3Ny4xMTU3IDQ1LjI1M0M3Ny45MDA3IDQ1LjE1NDEgNzguNjc0NyA0NC45NjgyIDc5LjQzNzQgNDQuNjk0M0M4MC4xOTk3IDQ0LjQyMTEgODAuODkzNiA0NC4wNzkgODEuNTE5IDQzLjY2OUM4Mi4xNDQxIDQzLjI1ODYgODIuNjcwMyA0Mi43OTExIDgzLjA5NzUgNDIuMjY3MUM4My41MjQ0IDQxLjc0MjYgODMuODA2NSA0MS4xNzY3IDgzLjk0MzcgNDAuNTY5MUM4NC4wODEgMzkuOTQ2IDg0LjExOSAzOS4zMjMxIDg0LjA1ODEgMzguN0M4My45OTcxIDM4LjA3NzEgODMuODQ0NSAzNy41IDgzLjYwMDcgMzYuOTY3NlpcIiBmaWxsPVwiIzBEMEMyM1wiLz5cbjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMDUuOTE1IDQ5LjAwMTdDMTA1LjgzMiA0OS41MDMxIDEwNS43MTMgNTAuMDMxMSAxMDUuNTYxIDUwLjU4NkMxMDUuNDA4IDUxLjE0MDMgMTA1LjIyOSA1MS42NDU4IDEwNS4wMjMgNTIuMTAxOEMxMDQuODE4IDUyLjU1NzUgMTA0LjU4OSA1Mi45MjU2IDEwNC4zMzcgNTMuMjA3QzEwNC4wODUgNTMuNDg4IDEwMy44MTUgNTMuNjA2IDEwMy41MjUgNTMuNTYwNkMxMDMuMjk2IDUzLjUyOTcgMTAzLjE1MSA1My4zODU0IDEwMy4wOTEgNTMuMTI3NEMxMDMuMDI5IDUyLjg2ODYgMTAzLjAyOSA1Mi41NDk3IDEwMy4wOTEgNTIuMTdDMTAzLjE1MSA1MS43OTAxIDEwMy4yNjkgNTEuMzYwNyAxMDMuNDQ1IDUwLjg4MjFDMTAzLjYyIDUwLjQwMzUgMTAzLjgzNCA0OS45Mjg0IDEwNC4wODUgNDkuNDU3N0MxMDQuMzM3IDQ4Ljk4NjQgMTA0LjYyMyA0OC41MzQ3IDEwNC45NDMgNDguMTAxNUMxMDUuMjY0IDQ3LjY2ODYgMTA1LjU5OSA0Ny4zMDc1IDEwNS45NSA0Ny4wMTg5QzEwNi4wMjYgNDcuMTEgMTA2LjA2IDQ3LjMzNzggMTA2LjA1MyA0Ny43MDI4QzEwNi4wNDUgNDguMDY3NCAxMDUuOTk5IDQ4LjUwMDYgMTA1LjkxNSA0OS4wMDE3Wk0xMTMuNjcgMzkuMTA5N0MxMTMuNDY0IDM4Ljg4MTkgMTEzLjIxMyAzOC43NTI5IDExMi45MTUgMzguNzIyM0MxMTIuNjE4IDM4LjY5MTkgMTEyLjMxNyAzOC44NTkgMTEyLjAxMiAzOS4yMjM3QzExMS44MTMgMzkuNTg4MyAxMTEuNTYyIDM5LjkzNzkgMTExLjI1NyA0MC4yNzIyQzExMC45NTIgNDAuNjA2NyAxMTAuNjM1IDQwLjkxMDMgMTEwLjMwNyA0MS4xODM5QzEwOS45OCA0MS40NTcyIDEwOS42NjcgNDEuNjkzMSAxMDkuMzcgNDEuODkwM0MxMDkuMDcyIDQyLjA4ODEgMTA4Ljg0IDQyLjIzMjQgMTA4LjY3MiA0Mi4zMjM1QzEwOC42MTEgNDEuODM3NCAxMDguNTc2IDQxLjMxMzIgMTA4LjU2OSA0MC43NTA3QzEwOC41NjEgNDAuMTg4NiAxMDguNTczIDM5LjYxOSAxMDguNjAzIDM5LjA0MTVDMTA4LjY0OSAzOC4yMjA5IDEwOC43NDQgMzcuMzkzIDEwOC44ODkgMzYuNTU3QzEwOS4wMzQgMzUuNzIxMyAxMDkuMjQ0IDM0LjkwMDcgMTA5LjUxOCAzNC4wOTUxQzEwOS41MTggMzMuNjcgMTA5LjQxOSAzMy4zMjQyIDEwOS4yMjEgMzMuMDU4MkMxMDkuMDIyIDMyLjc5MjQgMTA4Ljc4MiAzMi42MjUgMTA4LjUgMzIuNTU2N0MxMDguMjE4IDMyLjQ4ODUgMTA3LjkyOSAzMi41MjY0IDEwNy42MzEgMzIuNjcwN0MxMDcuMzM0IDMyLjgxNTMgMTA3LjA3OCAzMy4wNzc1IDEwNi44NjUgMzMuNDU2OUMxMDYuNjgyIDMzLjk1ODYgMTA2LjQ3MiAzNC41MjA3IDEwNi4yMzYgMzUuMTQzNkMxMDUuOTk5IDM1Ljc2NjcgMTA1LjczMiAzNi40MDEyIDEwNS40MzUgMzcuMDQ2OUMxMDUuMTM4IDM3LjY5MzEgMTA0LjgwNiAzOC4zMTk3IDEwNC40NCAzOC45MjczQzEwNC4wNzQgMzkuNTM1NCAxMDMuNjc0IDQwLjA3NSAxMDMuMjM5IDQwLjU0NTdDMTAyLjgwNCA0MS4wMTY4IDEwMi4zMzEgNDEuMzg1NCAxMDEuODIxIDQxLjY1MTJDMTAxLjMxIDQxLjkxNzIgMTAwLjc1NyA0Mi4wMzQ5IDEwMC4xNjIgNDIuMDA0NUM5OS44ODc2IDQxLjkyODUgOTkuNjg5MyA0MS43MjM1IDk5LjU2NzUgNDEuMzg4OUM5OS40NDUzIDQxLjA1NDkgOTkuMzczIDQwLjYzNjggOTkuMzUwNCA0MC4xMzU0Qzk5LjMyNzUgMzkuNjM0IDk5LjM1MDQgMzkuMDgzMSA5OS40MTg5IDM4LjQ4MjhDOTkuNDg3NyAzNy44ODI4IDk5LjU3OTEgMzcuMjg2MyA5OS42OTM0IDM2LjY5MzhDOTkuODA3OCAzNi4xMDEgOTkuOTMzNyAzNS41Mzg5IDEwMC4wNzEgMzUuMDA3MUMxMDAuMjA4IDM0LjQ3NTMgMTAwLjMzNyAzNC4wMjY4IDEwMC40NiAzMy42NjIyQzEwMC42NDMgMzMuMjIxOCAxMDAuNjQzIDMyLjg1MjkgMTAwLjQ2IDMyLjU1NjdDMTAwLjI3NyAzMi4yNjA0IDEwMC4wMjUgMzIuMDYzMSA5OS43MDUgMzEuOTY0Qzk5LjM4NDYgMzEuODY1NCA5OS4wNDg5IDMxLjg2OTQgOTguNjk4MyAzMS45NzU1Qzk4LjM0NzQgMzIuMDgxOSA5OC4wOTU4IDMyLjMxNzMgOTcuOTQzNSAzMi42ODJDOTcuNjg0IDMzLjMwNTQgOTcuNDQ3NSAzNC4wMDQgOTcuMjM0MiAzNC43NzlDOTcuMDIwNiAzNS41NTM5IDk2Ljg0OTEgMzYuMzU1OCA5Ni43MTk3IDM3LjE4MzZDOTYuNTg5NiAzOC4wMTIxIDk2LjUxNzEgMzguODMyNyA5Ni41MDIgMzkuNjQ1NkM5Ni41MDExIDM5LjY5ODUgOTYuNTAzNyAzOS43NDg4IDk2LjUwMzQgMzkuODAxNEM5Ni4xNzA5IDQwLjY4NDggOTUuODU0IDQxLjM1MjUgOTUuNTUzIDQxLjc5OTJDOTUuMTY0MSA0Mi4zNzcgOTQuNzI1MyA0Mi42Mjc3IDk0LjIzNzUgNDIuNTUxM0M5NC4wMjM2IDQyLjQ2MDMgOTMuODgzMiA0Mi4yNDc3IDkzLjgxNDcgNDEuOTEzMkM5My43NDUzIDQxLjU3OTIgOTMuNzIyNyA0MS4xNjg5IDkzLjc0NTMgNDAuNjgyMkM5My43Njg4IDQwLjE5NjQgOTMuODI2IDM5LjY0NTYgOTMuOTE3MSAzOS4wMjk5Qzk0LjAwOTEgMzguNDE0NiA5NC4xMjI5IDM3Ljc3NjQgOTQuMjYwMSAzNy4xMTU0Qzk0LjM5NzcgMzYuNDU0MSA5NC41NDI1IDM1Ljc4OTkgOTQuNjk0OSAzNS4xMjFDOTQuODQ3MiAzNC40NTI1IDk0Ljk4NDUgMzMuODIxOCA5NS4xMDcgMzMuMjI5MUM5NS4wOTE2IDMyLjY5NzMgOTQuOTM1MiAzMi4yOTEgOTQuNjM3NyAzMi4wMDk3Qzk0LjM0MDUgMzEuNzI4OSA5My45MjQ3IDMxLjYxODcgOTMuMzkxMyAzMS42NzkxQzkzLjAyNTMgMzEuODMxMiA5Mi43NTQyIDMyLjAyOSA5Mi41NzkgMzIuMjcxOUM5Mi40MDM0IDMyLjUxNDggOTIuMjYyMyAzMi44MjY1IDkyLjE1NTggMzMuMjA2MkM5Mi4wOTQ2IDMzLjQwNCA5Mi4wMDMyIDMzLjc5OSA5MS44ODEzIDM0LjM5MThDOTEuNzU5MSAzNC45ODQgOTEuNjAzIDM1LjY2NDQgOTEuNDEyMyAzNi40MzE1QzkxLjIyMTcgMzcuMTk5MiA5MC45OTY3IDM4LjAwMDUgOTAuNzM3NiAzOC44MzYyQzkwLjQ3ODEgMzkuNjcxOSA5MC4xODg1IDQwLjQyODMgODkuODY4NCA0MS4xMDQxQzg5LjU0OCA0MS43ODAxIDg5LjE5NzIgNDIuMzIzNSA4OC44MTYxIDQyLjczMzhDODguNDM0OCA0My4xNDM4IDg4LjAyMyA0My4zMTEzIDg3LjU4MDcgNDMuMjM1MkM4Ny4zMzY2IDQzLjE4OTUgODcuMTgwNSA0Mi45Mzg4IDg3LjExMiA0Mi40ODMxQzg3LjA0MzIgNDIuMDI3MSA4Ny4wMzE5IDQxLjQ2NTMgODcuMDc3NSA0MC43OTY0Qzg3LjEyMzMgNDAuMTI3OSA4Ny4yMTQ4IDM5LjM5NDYgODcuMzUyIDM4LjU5NzFDODcuNDg5MyAzNy43OTkzIDg3LjYzIDM3LjA0MzQgODcuNzc1MiAzNi4zMjg5Qzg3LjkyIDM1LjYxNDkgODguMDUzNSAzNC45ODQgODguMTc1NiAzNC40MzcyQzg4LjI5NzUgMzMuODkwMSA4OC4zODE0IDMzLjUyNTQgODguNDI3MiAzMy4zNDMzQzg4LjQyNzIgMzIuOTAyNiA4OC4zMjc3IDMyLjU0OTUgODguMTI5OCAzMi4yODMyQzg3LjkzMTMgMzIuMDE3OCA4Ny42OTEzIDMxLjg1MDMgODcuNDA5MiAzMS43ODE4Qzg3LjEyNjggMzEuNzEzNiA4Ni44MzcyIDMxLjc1MTQgODYuNTQgMzEuODk1N0M4Ni4yNDI2IDMyLjA0MDMgODUuOTg3MiAzMi4zMDI2IDg1Ljc3MzYgMzIuNjgyQzg1LjY5NzMgMzMuMDkyMyA4NS41OTggMzMuNTY3NCA4NS40NzYxIDM0LjEwNjdDODUuMzUzOSAzNC42NDU5IDg1LjIzNjEgMzUuMjAwNiA4NS4xMjE4IDM1Ljc3MDVDODUuMDA3NCAzNi4zNDA0IDg0LjkwMDMgMzYuODk4OCA4NC44MDE0IDM3LjQ0NTlDODQuNzAyMSAzNy45OTMgODQuNjI5OSAzOC40NzE2IDg0LjU4NCAzOC44ODE5Qzg0LjU1MzYgMzkuMjAwOCA4NC41MTkgMzkuNTkyMyA4NC40ODEzIDQwLjA1NTZDODQuNDQzIDQwLjUxOTQgODQuNDIzOCA0MS4wMDkyIDg0LjQyMzggNDEuNTI1N0M4NC40MjM4IDQyLjA0MjcgODQuNDYxOCA0Mi41NTU0IDg0LjUzODUgNDMuMDY0M0M4NC42MTQ1IDQzLjU3MzUgODQuNzUxOCA0NC4wNDA4IDg0Ljk1IDQ0LjQ2NTlDODUuMTQ4MiA0NC44OTE1IDg1LjQyNjUgNDUuMjQwOCA4NS43ODUyIDQ1LjUxNDRDODYuMTQzMyA0NS43ODc5IDg2LjU5NzIgNDUuOTM5NyA4Ny4xNDYzIDQ1Ljk3MDRDODcuNzEwMSA0Ni4wMDA1IDg4LjIwMiA0NS45NTkxIDg4LjYyMTcgNDUuODQ0OUM4OS4wNDEgNDUuNzMxIDg5LjQyMjEgNDUuNTUyMyA4OS43NjU0IDQ1LjMwOTFDOTAuMTA4NCA0NS4wNjY1IDkwLjQyMSA0NC43Nzc2IDkwLjcwMzMgNDQuNDQzQzkwLjk4NTEgNDQuMTA5MSA5MS4yNjM3IDQzLjc0NDQgOTEuNTM4MyA0My4zNDkxQzkxLjc5NzQgNDMuOTI2OSA5Mi4xMzI5IDQ0LjM3NDggOTIuNTQ0NyA0NC42OTRDOTIuOTU2NSA0NS4wMTMgOTMuMzkxMyA0NS4yMDMyIDkzLjg0ODYgNDUuMjYzN0M5NC4zMDYgNDUuMzI0MSA5NC43NzE1IDQ1LjI2MDIgOTUuMjQ0MiA0NS4wNjk5Qzk1LjcxNjcgNDQuODgwMyA5Ni4xNDM2IDQ0LjU1NzMgOTYuNTI1MiA0NC4xMDEyQzk2Ljc3NjIgNDMuODIxNiA5Ny4wMTMxIDQzLjUwMzggOTcuMjM1NCA0My4xNTI1Qzk3LjMyOTcgNDMuMzE3IDk3LjQzMDEgNDMuNDc1OCA5Ny41NDMgNDMuNjIyNEM5Ny45MTY4IDQ0LjEwOTEgOTguNDI0IDQ0LjQ0MyA5OS4wNjQ1IDQ0LjYyNTVDOTkuNzUwNiA0NC44MDggMTAwLjQyMSA0NC44Mzg2IDEwMS4wNzcgNDQuNzE2OUMxMDEuNzMzIDQ0LjU5NTQgMTAyLjM1OCA0NC4zNzQ4IDEwMi45NTMgNDQuMDU1OUMxMDMuNTQ4IDQzLjczNjYgMTA0LjEwMSA0My4zNTMyIDEwNC42MTIgNDIuOTA0N0MxMDUuMTIyIDQyLjQ1NjUgMTA1LjU2OCA0MS45ODk1IDEwNS45NSA0MS41MDI4QzEwNS45MzQgNDEuODUyNCAxMDUuOTI3IDQyLjE4MzIgMTA1LjkyNyA0Mi40OTQ0QzEwNS45MjcgNDIuODA2MSAxMDUuOTE5IDQzLjE0MzggMTA1LjkwNCA0My41MDg4QzEwNS4xNDEgNDQuMDQwOCAxMDQuNDIxIDQ0LjY3OSAxMDMuNzQyIDQ1LjQyMzNDMTAzLjA2NCA0Ni4xNjc2IDEwMi40NjkgNDYuOTYxNiAxMDEuOTU4IDQ3LjgwNTFDMTAxLjQ0NyA0OC42NDgzIDEwMS4wNDcgNDkuNTAzMSAxMDAuNzU3IDUwLjM2OTFDMTAwLjQ2NyA1MS4yMzU3IDEwMC4zMjYgNTIuMDQ0NSAxMDAuMzM0IDUyLjc5NjlDMTAwLjM0MSA1My41NDkgMTAwLjUyMSA1NC4yMDYgMTAwLjg3MSA1NC43NjgxQzEwMS4yMjIgNTUuMzMwNiAxMDEuNzk0IDU1LjczMzEgMTAyLjU4NyA1NS45NzYzQzEwMy40MTEgNTYuMjM0OCAxMDQuMTM1IDU2LjI0MiAxMDQuNzYgNTUuOTk5MUMxMDUuMzg2IDU1Ljc1NTkgMTA1LjkzMSA1NS4zNTMxIDEwNi4zOTYgNTQuNzkxQzEwNi44NjEgNTQuMjI4OSAxMDcuMjQyIDUzLjU0OSAxMDcuNTQgNTIuNzUxMkMxMDcuODM3IDUxLjk1MzQgMTA4LjA3MyA1MS4xMjE1IDEwOC4yNDkgNTAuMjU1NUMxMDguNDI0IDQ5LjM4OTQgMTA4LjUzNSA0OC41Mzc5IDEwOC41OCA0Ny43MDI4QzEwOC42MjYgNDYuODY2OCAxMDguNjI2IDQ2LjEyMTkgMTA4LjU4IDQ1LjQ2ODdDMTA5Ljg5MiA0NC45MjE5IDExMC45NjcgNDQuMjMwNSAxMTEuODA2IDQzLjM5NDVDMTEyLjY0NSA0Mi41NTk0IDExMy4zMzggNDEuNjc3OCAxMTMuODg3IDQwLjc1MDdDMTE0LjA1NSA0MC41MjI5IDExNC4xMTIgNDAuMjQ5MyAxMTQuMDU5IDM5LjkzMDRDMTE0LjAwNiAzOS42MTExIDExMy44NzYgMzkuMzM3NiAxMTMuNjcgMzkuMTA5N1pcIiBmaWxsPVwiIzBEMEMyM1wiLz5cbjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNDIuNTMgMzcuNjUxNUMxNDIuNTc1IDM3LjMwMjIgMTQyLjY0NCAzNi45MzM1IDE0Mi43MzUgMzYuNTQ2QzE0Mi44MjcgMzYuMTU4NSAxNDIuOTQxIDM1Ljc4MjMgMTQzLjA3OSAzNS40MTc3QzE0My4yMTYgMzUuMDUzMSAxNDMuMzc2IDM0LjczNzkgMTQzLjU1OSAzNC40NzE4QzE0My43NDIgMzQuMjA2MSAxNDMuOTM3IDM0LjAxNjEgMTQ0LjE0MiAzMy45MDE5QzE0NC4zNDggMzMuNzg4MyAxNDQuNTU4IDMzLjc5OTUgMTQ0Ljc3MSAzMy45MzZDMTQ1IDM0LjA3MzEgMTQ1LjE0MSAzNC4zNjE3IDE0NS4xOTUgMzQuODAyMUMxNDUuMjQ4IDM1LjI0MzMgMTQ1LjE5NSAzNS43MTQxIDE0NS4wMzQgMzYuMjE1NUMxNDQuODc0IDM2LjcxNzIgMTQ0LjU4OCAzNy4xODc5IDE0NC4xNzcgMzcuNjI4NkMxNDMuNzY1IDM4LjA2OTYgMTQzLjIwOCAzOC4zNTc5IDE0Mi41MDcgMzguNDk0N0MxNDIuNDc2IDM4LjI4MjQgMTQyLjQ4NCAzOC4wMDExIDE0Mi41MyAzNy42NTE1Wk0xNTAuNDU2IDM4LjU4NTdDMTUwLjIwNCAzOC41MTAzIDE0OS45NjQgMzguNTAyNSAxNDkuNzM1IDM4LjU2MzJDMTQ5LjUwNiAzOC42MjM5IDE0OS4zNjEgMzguNzgzNSAxNDkuMzAxIDM5LjA0MkMxNDkuMTc4IDM5LjUyODEgMTQ4Ljk4NCA0MC4wMjU4IDE0OC43MTcgNDAuNTM0N0MxNDguNDUgNDEuMDQzOSAxNDguMTIyIDQxLjUyNjIgMTQ3LjczNCA0MS45ODIyQzE0Ny4zNDUgNDIuNDM4IDE0Ni45MDYgNDIuODQwOCAxNDYuNDE4IDQzLjE5MDFDMTQ1LjkzIDQzLjUzOTcgMTQ1LjQxOSA0My43OTA0IDE0NC44ODYgNDMuOTQyMkMxNDQuMzUxIDQ0LjEwOTYgMTQzLjkxIDQ0LjEyODQgMTQzLjU1OSA0My45OTkxQzE0My4yMDggNDMuODcwNSAxNDIuOTMgNDMuNjQ5OCAxNDIuNzI0IDQzLjMzODRDMTQyLjUxOCA0My4wMjcgMTQyLjM2OSA0Mi42NTA4IDE0Mi4yNzggNDIuMjEwMUMxNDIuMTg2IDQxLjc2OTQgMTQyLjEzMyA0MS4zMTM3IDE0Mi4xMTggNDAuODQyNEMxNDIuOTg3IDQwLjkwMzQgMTQzLjc2MSA0MC43NDc4IDE0NC40NCA0MC4zNzUxQzE0NS4xMTggNDAuMDAzMiAxNDUuNjk0IDM5LjUwOSAxNDYuMTY3IDM4Ljg5MzdDMTQ2LjYzOSAzOC4yNzg0IDE0Ni45OTggMzcuNTg3IDE0Ny4yNDIgMzYuODE5NUMxNDcuNDg1IDM2LjA1MjQgMTQ3LjYyMyAzNS4yODg3IDE0Ny42NTMgMzQuNTI4OEMxNDcuNjY5IDMzLjgxNDYgMTQ3LjU2MiAzMy4yMTA4IDE0Ny4zMzMgMzIuNzE2OUMxNDcuMTA1IDMyLjIyMzMgMTQ2Ljc5NiAzMS44MzkgMTQ2LjQwNyAzMS41NjU4QzE0Ni4wMTggMzEuMjkyMiAxNDUuNTcyIDMxLjEzMjYgMTQ1LjA2OSAzMS4wODcyQzE0NC41NjYgMzEuMDQxNSAxNDQuMDU0IDMxLjExIDE0My41MzYgMzEuMjkyMkMxNDIuOTEgMzEuNTA1IDE0Mi4zODEgMzEuODUwNiAxNDEuOTQ2IDMyLjMyOTRDMTQxLjUxMiAzMi44MDggMTQxLjE0OSAzMy4zNjI5IDE0MC44NiAzMy45OTMzQzE0MC41NyAzNC42MjM5IDE0MC4zNDEgMzUuMzAzOCAxNDAuMTczIDM2LjAzM0MxNDAuMDA1IDM2Ljc2MjYgMTM5Ljg4MyAzNy40ODA2IDEzOS44MDcgMzguMTg3M0MxMzkuNzM5IDM4LjgyMTQgMTM5LjcwMiAzOS40Mjc4IDEzOS42ODkgNDAuMDEzQzEzOS42NTcgNDAuMDg3NCAxMzkuNjI1IDQwLjE1ODggMTM5LjU5IDQwLjIzODNDMTM5LjM1NCA0MC43NzgyIDEzOS4wNzkgNDEuMzA2MiAxMzguNzY2IDQxLjgyMjZDMTM4LjQ1NCA0Mi4zMzk0IDEzOC4xMDcgNDIuNzcyNSAxMzcuNzI2IDQzLjEyMThDMTM3LjM0NCA0My40NzE0IDEzNi45NDggNDMuNTkyOSAxMzYuNTM2IDQzLjQ4NjVDMTM2LjI5MiA0My40MjYgMTM2LjE1OSA0My4xNDQ0IDEzNi4xMzYgNDIuNjQzM0MxMzYuMTEzIDQyLjE0MTYgMTM2LjEzOSA0MS41MTg3IDEzNi4yMTYgNDAuNzc0MUMxMzYuMjkyIDQwLjAyOTggMTM2LjM4IDM5LjIyMzkgMTM2LjQ3OSAzOC4zNTc5QzEzNi41NzggMzcuNDkxOCAxMzYuNjI4IDM2LjY2NCAxMzYuNjI4IDM1Ljg3MzdDMTM2LjYyOCAzNS4xODk4IDEzNi40OTggMzQuNTMyOSAxMzYuMjM5IDMzLjkwMTlDMTM1Ljk3OSAzMy4yNzE4IDEzNS42MjUgMzIuNzQ3MyAxMzUuMTc1IDMyLjMyOTRDMTM0LjcyNSAzMS45MTEzIDEzNC4yMDMgMzEuNjM0IDEzMy42MDggMzEuNDk3NUMxMzMuMDEzIDMxLjM2MDUgMTMyLjM3MyAzMS40NTE4IDEzMS42ODcgMzEuNzcwOEMxMzEgMzIuMDkgMTMwLjQ1NSAzMi41MzgyIDEzMC4wNTEgMzMuMTE1N0MxMjkuNjQ3IDMzLjY5MzQgMTI5LjI3NyAzNC4zMDA5IDEyOC45NDIgMzQuOTM5MUMxMjguODE5IDM0LjQ1MjggMTI4LjY0MSAzNC4wMDExIDEyOC40MDQgMzMuNTgzQzEyOC4xNjcgMzMuMTY1MSAxMjcuODc4IDMyLjgwMDUgMTI3LjUzNSAzMi40ODg4QzEyNy4xOTEgMzIuMTc3NiAxMjYuODA2IDMxLjkzNDQgMTI2LjM4IDMxLjc1OTVDMTI1Ljk1MyAzMS41ODUxIDEyNS41MDIgMzEuNDk3NSAxMjUuMDMgMzEuNDk3NUMxMjQuNTcyIDMxLjQ5NzUgMTI0LjE0OSAzMS41ODUxIDEyMy43NiAzMS43NTk1QzEyMy4zNzEgMzEuOTM0NCAxMjMuMDE3IDMyLjE1ODMgMTIyLjY5NiAzMi40MzE4QzEyMi4zNzYgMzIuNzA1NiAxMjIuMDg3IDMzLjAxMyAxMjEuODI3IDMzLjM1NTFDMTIxLjU2OCAzMy42OTY5IDEyMS4zMzkgMzQuMDM1MiAxMjEuMTQxIDM0LjM2OTJDMTIxLjExIDMzLjk3NDIgMTIxLjA3NiAzMy42Mjg2IDEyMS4wMzggMzMuMzMyQzEyMSAzMy4wMzU5IDEyMC45MzEgMzIuNzg1MiAxMjAuODMyIDMyLjU4MDFDMTIwLjczMyAzMi4zNzQ4IDEyMC41OTIgMzIuMjE5MyAxMjAuNDA5IDMyLjExMjlDMTIwLjIyNiAzMi4wMDY3IDExOS45NjcgMzEuOTUzMiAxMTkuNjMyIDMxLjk1MzJDMTE5LjQ2NCAzMS45NTMyIDExOS4yOTYgMzEuOTg3NCAxMTkuMTI4IDMyLjA1NTZDMTE4Ljk2IDMyLjEyNDEgMTE4LjgxMSAzMi4yMTkzIDExOC42ODIgMzIuMzQwN0MxMTguNTUyIDMyLjQ2MjcgMTE4LjQ1MyAzMi42MTA1IDExOC4zODUgMzIuNzg1MkMxMTguMzE2IDMyLjk1OTggMTE4LjI5NyAzMy4xNjE0IDExOC4zMjcgMzMuMzg5MkMxMTguMzQyIDMzLjU1NjYgMTE4LjM4NSAzMy43NTc2IDExOC40NTMgMzMuOTkzM0MxMTguNTIyIDM0LjIyODkgMTE4LjU4NyAzNC41MzY5IDExOC42NDggMzQuOTE2M0MxMTguNzA4IDM1LjI5NjIgMTE4Ljc1OCAzNS43NTYgMTE4Ljc5NiAzNi4yOTUzQzExOC44MzQgMzYuODM0OSAxMTguODQ2IDM3LjQ5NTkgMTE4LjgzMSAzOC4yNzg0QzExOC44MTUgMzkuMDYxMSAxMTguNzU4IDM5Ljk3NjMgMTE4LjY1OSA0MS4wMjQ4QzExOC41NiA0Mi4wNzMzIDExOC40MDMgNDMuMjg5IDExOC4xOSA0NC42NzE0QzExOC4xNiA0NC45OTA3IDExOC4yODIgNDUuMjQ5MiAxMTguNTU2IDQ1LjQ0NjdDMTE4LjgzMSA0NS42NDM5IDExOS4xNDMgNDUuNzU3OCAxMTkuNDk0IDQ1Ljc4ODVDMTE5Ljg0NSA0NS44MTg4IDEyMC4xNzcgNDUuNzU3OCAxMjAuNDg5IDQ1LjYwNjNDMTIwLjgwMiA0NS40NTM5IDEyMC45ODEgNDUuMTg4MiAxMjEuMDI3IDQ0LjgwODVDMTIxLjA3MiA0NC4wOTQzIDEyMS4xNiA0My4zMzQ3IDEyMS4yOSA0Mi41MjlDMTIxLjQxOSA0MS43MjQgMTIxLjU3OSA0MC45MjYyIDEyMS43NyA0MC4xMzU5QzEyMS45NjEgMzkuMzQ2IDEyMi4xNzggMzguNTkzOCAxMjIuNDIyIDM3Ljg3OTNDMTIyLjY2NiAzNy4xNjUxIDEyMi45MzcgMzYuNTM0NyAxMjMuMjM0IDM1Ljk4NzZDMTIzLjUzMiAzNS40NDA1IDEyMy44NCAzNS4wMDM5IDEyNC4xNjEgMzQuNjc3MUMxMjQuNDgxIDM0LjM1MDQgMTI0LjgxNiAzNC4xODcgMTI1LjE2NyAzNC4xODdDMTI1LjU5NCAzNC4xODcgMTI1LjkyNiAzNC4zODA1IDEyNi4xNjIgMzQuNzY3OUMxMjYuMzk4IDM1LjE1NTcgMTI2LjU2NiAzNS42NTM2IDEyNi42NjYgMzYuMjYwOUMxMjYuNzY1IDM2Ljg2OSAxMjYuODEgMzcuNTM0MSAxMjYuODAzIDM4LjI1NTVDMTI2Ljc5NSAzOC45NzczIDEyNi43NjUgMzkuNjcyNCAxMjYuNzExIDQwLjM0MUMxMjYuNjU4IDQxLjAwOTggMTI2LjU5NyA0MS42MDYgMTI2LjUyOCA0Mi4xMzAzQzEyNi40NiA0Mi42NTQ1IDEyNi40MSA0My4wMTU3IDEyNi4zOCA0My4yMTI5QzEyNi4zOCA0My41NjI1IDEyNi41MTMgNDMuODM5NSAxMjYuNzggNDQuMDQ0OEMxMjcuMDQ2IDQ0LjI0OTggMTI3LjM0NCA0NC4zNzE2IDEyNy42NzIgNDQuNDA5NUMxMjggNDQuNDQ3NiAxMjguMzA5IDQ0LjM4NjYgMTI4LjU5OCA0NC4yMjdDMTI4Ljg4OCA0NC4wNjc0IDEyOS4wNTYgNDMuNzk4MiAxMjkuMTAyIDQzLjQxNzlDMTI5LjI1NCA0Mi4zMjQgMTI5LjQ2NCA0MS4yMjY0IDEyOS43MzEgNDAuMTI0N0MxMjkuOTk3IDM5LjAyMyAxMzAuMzAzIDM4LjAzNTUgMTMwLjY0NiAzNy4xNjE2QzEzMC45ODkgMzYuMjg3OCAxMzEuMzcgMzUuNTczNSAxMzEuNzkgMzUuMDE4OUMxMzIuMjA5IDM0LjQ2NDYgMTMyLjY1NSAzNC4xODcgMTMzLjEyOCAzNC4xODdDMTMzLjM3MSAzNC4xODcgMTMzLjU1OSAzNC4zNTQ0IDEzMy42ODggMzQuNjg4NEMxMzMuODE4IDM1LjAyMjcgMTMzLjg4MyAzNS40Nzg0IDEzMy44ODMgMzYuMDU1OUMxMzMuODgzIDM2LjQ4MTUgMTMzLjg0OCAzNi45MTg0IDEzMy43OCAzNy4zNjY2QzEzMy43MTEgMzcuODE0OCAxMzMuNjMxIDM4LjI3ODQgMTMzLjU0IDM4Ljc1NjlDMTMzLjQ0OCAzOS4yMzU4IDEzMy4zNjggMzkuNzI1NiAxMzMuMjk5IDQwLjIyN0MxMzMuMjMxIDQwLjcyODcgMTMzLjE5NiA0MS4yNTI3IDEzMy4xOTYgNDEuNzk5OEMxMzMuMTk2IDQyLjE3OTcgMTMzLjIzNSA0Mi42MjA0IDEzMy4zMTEgNDMuMTIxOEMxMzMuMzg3IDQzLjYyMjkgMTMzLjUzMiA0NC4wOTgzIDEzMy43NDUgNDQuNTQ2MkMxMzMuOTU5IDQ0Ljk5NDcgMTM0LjI1MiA0NS4zNzQ0IDEzNC42MjYgNDUuNjg1OEMxMzUgNDUuOTk3MyAxMzUuNDc2IDQ2LjE1MzEgMTM2LjA1NiA0Ni4xNTMxQzEzNi45MjUgNDYuMTUzMSAxMzcuNjk1IDQ1Ljk2NjkgMTM4LjM2NiA0NS41OTQ3QzEzOS4wMzcgNDUuMjIyNiAxMzkuNjEzIDQ0LjczNjUgMTQwLjA5MyA0NC4xMzYyQzE0MC4xMTggNDQuMTA0NyAxNDAuMTQxIDQ0LjA3MTEgMTQwLjE2NSA0NC4wMzk5QzE0MC4yMDIgNDQuMTI4NyAxNDAuMjM1IDQ0LjIyMjcgMTQwLjI3NiA0NC4zMDcxQzE0MC42MDQgNDQuOTc1NiAxNDEuMDUgNDUuNDkyMSAxNDEuNjE1IDQ1Ljg1N0MxNDIuMTc4IDQ2LjIyMTYgMTQyLjg0MiA0Ni40MjI5IDE0My42MDUgNDYuNDYxMUMxNDQuMzY3IDQ2LjQ5ODcgMTQ1LjE5OCA0Ni4zNTgxIDE0Ni4wOTggNDYuMDM5MkMxNDYuNzY5IDQ1Ljc5NiAxNDcuMzUyIDQ1LjQ5MjEgMTQ3Ljg0OCA0NS4xMjc1QzE0OC4zNDMgNDQuNzYyOCAxNDguNzg5IDQ0LjMxODQgMTQ5LjE4NiA0My43OTQxQzE0OS41ODMgNDMuMjY5OSAxNDkuOTQ1IDQyLjY2NTggMTUwLjI3MyA0MS45ODIyQzE1MC42MDEgNDEuMjk4MSAxNTAuOTMyIDQwLjUxNTkgMTUxLjI2OCAzOS42MzQyQzE1MS4zMjkgMzkuMzkxNiAxNTEuMjcyIDM5LjE3NTEgMTUxLjA5NyAzOC45ODQ4QzE1MC45MjEgMzguNzk1MSAxNTAuNzA4IDM4LjY2MjEgMTUwLjQ1NiAzOC41ODU3WlwiIGZpbGw9XCIjMEQwQzIzXCIvPlxuPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTE2Mi44ODcgMzYuMDQzNEMxNjIuODEgMzYuNDkxOCAxNjIuNzA3IDM2Ljk4NiAxNjIuNTc4IDM3LjUyNUMxNjIuNDQ4IDM4LjA2NDYgMTYyLjI4NCAzOC42MjMgMTYyLjA4NiAzOS4yMDA0QzE2MS44ODggMzkuNzc3OSAxNjEuNjQ0IDQwLjI5ODQgMTYxLjM1NCA0MC43NjE2QzE2MS4wNjQgNDEuMjI1NCAxNjAuNzMzIDQxLjU5MzUgMTYwLjM1OSA0MS44NjcxQzE1OS45ODUgNDIuMTQwNiAxNTkuNTU1IDQyLjI1NDYgMTU5LjA2NiA0Mi4yMDg5QzE1OC44MjIgNDIuMTc4OCAxNTguNjM1IDQyLjAxMTcgMTU4LjUwNiA0MS43MDc1QzE1OC4zNzYgNDEuNDAzOCAxNTguMzA4IDQxLjAxNjEgMTU4LjMgNDAuNTQ1QzE1OC4yOTIgNDAuMDc0MyAxNTguMzM0IDM5LjU1NzUgMTU4LjQyNiAzOC45OTUxQzE1OC41MTcgMzguNDMzMyAxNTguNjU4IDM3Ljg4MjEgMTU4Ljg0OSAzNy4zNDI2QzE1OS4wNCAzNi44MDM2IDE1OS4yNzIgMzYuMzA1NiAxNTkuNTQ3IDM1Ljg0OTZDMTU5LjgyMSAzNS4zOTM5IDE2MC4xMzggMzUuMDQwNSAxNjAuNDk2IDM0Ljc4OThDMTYwLjg1NCAzNC41MzkxIDE2MS4yNDcgMzQuNDIxNyAxNjEuNjc0IDM0LjQzNjVDMTYyLjEwMSAzNC40NTE4IDE2Mi41NTkgMzQuNjY0MyAxNjMuMDQ3IDM1LjA3NDdDMTYzLjAxNiAzNS4yNzI1IDE2Mi45NjMgMzUuNTk1NCAxNjIuODg3IDM2LjA0MzRaTTE3MS4wMTkgMzcuNzg3QzE3MC43ODIgMzcuNjY1NiAxNzAuNTM4IDM3LjYzOTIgMTcwLjI4NyAzNy43MDc1QzE3MC4wMzUgMzcuNzc1NyAxNjkuODU2IDM4LjAwNzYgMTY5Ljc0OSAzOC40MDI2QzE2OS42ODggMzguODI4MyAxNjkuNTUxIDM5LjMyOTQgMTY5LjMzOCAzOS45MDY5QzE2OS4xMjQgNDAuNDg0MyAxNjguODYxIDQxLjAzMTcgMTY4LjU0OCA0MS41NDc4QzE2OC4yMzYgNDIuMDY0NiAxNjcuODc3IDQyLjQ5NCAxNjcuNDczIDQyLjgzNThDMTY3LjA2OSA0My4xNzc4IDE2Ni42MzggNDMuMzMzNyAxNjYuMTgxIDQzLjMwMjhDMTY1Ljc5OSA0My4yNzI3IDE2NS41MzIgNDMuMDc5IDE2NS4zOCA0Mi43MjE4QzE2NS4yMjcgNDIuMzY0NyAxNjUuMTQ3IDQxLjkxNjggMTY1LjE0IDQxLjM3NjlDMTY1LjEzMiA0MC44MzggMTY1LjE4NiA0MC4yMzAxIDE2NS4zIDM5LjU1MzhDMTY1LjQxNCAzOC44Nzc3IDE2NS41NTIgMzguMjA1NCAxNjUuNzEyIDM3LjUzNjNDMTY1Ljg3MiAzNi44NjggMTY2LjAzNiAzNi4yMjU4IDE2Ni4yMDQgMzUuNjEwNUMxNjYuMzcxIDM0Ljk5NTEgMTY2LjUwOCAzNC40NzQ3IDE2Ni42MTYgMzQuMDQ5M0MxNjYuNzM4IDMzLjY2OTMgMTY2LjY5OSAzMy4zNDY2IDE2Ni41MDEgMzMuMDgwM0MxNjYuMzAzIDMyLjgxNDkgMTY2LjA1NSAzMi42MjQ2IDE2NS43NTggMzIuNTEwN0MxNjUuNDYgMzIuMzk2NyAxNjUuMTU5IDMyLjM2NjQgMTY0Ljg1NCAzMi40MTk2QzE2NC41NDkgMzIuNDcyOCAxNjQuMzUxIDMyLjYzNjIgMTY0LjI1OSAzMi45MDk0QzE2My4zNTkgMzIuMTM0NSAxNjIuNDk0IDMxLjcxNjYgMTYxLjY2MyAzMS42NTU5QzE2MC44MzEgMzEuNTk1MiAxNjAuMDY1IDMxLjc3NzYgMTU5LjM2NCAzMi4yMDNDMTU4LjY2MiAzMi42Mjg0IDE1OC4wNDEgMzMuMjQzNyAxNTcuNSAzNC4wNDkzQzE1Ni45NTggMzQuODU0OSAxNTYuNTIgMzUuNzMyMiAxNTYuMTg0IDM2LjY4MThDMTU1Ljg0OSAzNy42MzE0IDE1NS42MzkgMzguNjAwNCAxNTUuNTU1IDM5LjU4NzlDMTU1LjQ3MSA0MC41NzU3IDE1NS41MzYgNDEuNDc2MSAxNTUuNzUgNDIuMjg5QzE1NS45NjMgNDMuMTAxOCAxNTYuMzQgNDMuNzY2OSAxNTYuODgyIDQ0LjI4M0MxNTcuNDIzIDQ0Ljc5OTggMTU4LjE1OSA0NS4wNTgzIDE1OS4wODkgNDUuMDU4M0MxNTkuNTAxIDQ1LjA1ODMgMTU5Ljg5OCA0NC45NzQ3IDE2MC4yNzkgNDQuODA3NkMxNjAuNjYgNDQuNjQwMSAxNjEuMDExIDQ0LjQ0MjYgMTYxLjMzMSA0NC4yMTQ4QzE2MS42NTEgNDMuOTg2OSAxNjEuOTMzIDQzLjc0NzUgMTYyLjE3OCA0My40OTY4QzE2Mi40MjEgNDMuMjQ2MSAxNjIuNjEyIDQzLjAzNzMgMTYyLjc0OSA0Mi44Njk5QzE2Mi44NTYgNDMuNDE3IDE2My4wMzIgNDMuODgwOCAxNjMuMjc2IDQ0LjI2MDVDMTYzLjUxOSA0NC42NDAxIDE2My43OTggNDQuOTUyMSAxNjQuMTExIDQ1LjE5NDhDMTY0LjQyMyA0NS40Mzc2IDE2NC43NTEgNDUuNjE2NCAxNjUuMDk0IDQ1LjczMDZDMTY1LjQzNyA0NS44NDQ1IDE2NS43NjkgNDUuOTAxNSAxNjYuMDg5IDQ1LjkwMTVDMTY2LjgwNiA0NS45MDE1IDE2Ny40NzcgNDUuNjU4MyAxNjguMTAyIDQ1LjE3MTlDMTY4LjcyNyA0NC42ODYxIDE2OS4yODggNDQuMDg5MyAxNjkuNzg0IDQzLjM4MjlDMTcwLjI3OSA0Mi42NzYyIDE3MC42ODcgNDEuOTMxOSAxNzEuMDA3IDQxLjE0OTFDMTcxLjMyOCA0MC4zNjY2IDE3MS41NDEgMzkuNjcxNSAxNzEuNjQ4IDM5LjA2MzRDMTcxLjc1NSAzOC44MzU1IDE3MS43MzUgMzguNTk2NCAxNzEuNTkxIDM4LjM0NTdDMTcxLjQ0NiAzOC4wOTUgMTcxLjI1NSAzNy45MDkgMTcxLjAxOSAzNy43ODdaXCIgZmlsbD1cIiMwRDBDMjNcIi8+XG48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMjEyLjE5NCA1MC4zNzAxQzIxMi4wNjQgNTAuODg2NiAyMTEuODYyIDUxLjMyMzggMjExLjU4NyA1MS42ODA2QzIxMS4zMTMgNTIuMDM3NyAyMTAuOTcgNTIuMjIzOSAyMTAuNTU4IDUyLjIzOTNDMjEwLjI5OSA1Mi4yNTQzIDIxMC4xMDEgNTIuMTE3NSAyMDkuOTYzIDUxLjgyODlDMjA5LjgyNiA1MS41NDAxIDIwOS43MzEgNTEuMTY3OSAyMDkuNjc4IDUwLjcxMjJDMjA5LjYyNCA1MC4yNTYyIDIwOS42MDEgNDkuNzQ3IDIwOS42MDkgNDkuMTg0OUMyMDkuNjE2IDQ4LjYyMjcgMjA5LjYzOSA0OC4wNjgxIDIwOS42NzggNDcuNTIxQzIwOS43MTUgNDYuOTc0MiAyMDkuNzYxIDQ2LjQ2NDcgMjA5LjgxNSA0NS45OTM5QzIwOS44NjggNDUuNTIyNiAyMDkuOTEgNDUuMTU4NiAyMDkuOTQgNDQuOUMyMTAuNDU5IDQ0Ljk2MDggMjEwLjg5IDQ1LjE4NDYgMjExLjIzMyA0NS41NzIzQzIxMS41NzYgNDUuOTU5OCAyMTEuODM5IDQ2LjQxOTMgMjEyLjAyMiA0Ni45NTE0QzIxMi4yMDUgNDcuNDgzMSAyMTIuMzEyIDQ4LjA1NjggMjEyLjM0MyA0OC42NzIyQzIxMi4zNzMgNDkuMjg3NSAyMTIuMzIzIDQ5Ljg1MzQgMjEyLjE5NCA1MC4zNzAxWk0yMDMuOTEzIDUwLjM3MDFDMjAzLjc4MyA1MC44ODY2IDIwMy41ODEgNTEuMzIzOCAyMDMuMzA3IDUxLjY4MDZDMjAzLjAzMiA1Mi4wMzc3IDIwMi42ODkgNTIuMjIzOSAyMDIuMjc3IDUyLjIzOTNDMjAyLjAxOCA1Mi4yNTQzIDIwMS44MiA1Mi4xMTc1IDIwMS42ODMgNTEuODI4OUMyMDEuNTQ1IDUxLjU0MDEgMjAxLjQ1IDUxLjE2NzkgMjAxLjM5NyA1MC43MTIyQzIwMS4zNDMgNTAuMjU2MiAyMDEuMzIgNDkuNzQ3IDIwMS4zMjggNDkuMTg0OUMyMDEuMzM2IDQ4LjYyMjcgMjAxLjM1OCA0OC4wNjgxIDIwMS4zOTcgNDcuNTIxQzIwMS40MzQgNDYuOTc0MiAyMDEuNDggNDYuNDY0NyAyMDEuNTM0IDQ1Ljk5MzlDMjAxLjU4NyA0NS41MjI2IDIwMS42MjkgNDUuMTU4NiAyMDEuNjYgNDQuOUMyMDIuMTc4IDQ0Ljk2MDggMjAyLjYwOSA0NS4xODQ2IDIwMi45NTIgNDUuNTcyM0MyMDMuMjk1IDQ1Ljk1OTggMjAzLjU1OCA0Ni40MTkzIDIwMy43NDEgNDYuOTUxNEMyMDMuOTI0IDQ3LjQ4MzEgMjA0LjAzMSA0OC4wNTY4IDIwNC4wNjIgNDguNjcyMkMyMDQuMDkyIDQ5LjI4NzUgMjA0LjA0MiA0OS44NTM0IDIwMy45MTMgNTAuMzcwMVpNMTk1LjQxNSAzNy40MjQxQzE5NS4zOTkgMzcuNzg4NCAxOTUuMzY1IDM4LjExMTQgMTk1LjMxMiAzOC4zOTI1QzE5NS4yNTggMzguNjc0MSAxOTUuMTg2IDM4Ljg1MjIgMTk1LjA5NSAzOC45MjgzQzE5NC45MjcgMzguODM2OSAxOTQuNzIxIDM4LjYwMTggMTk0LjQ3NyAzOC4yMjE2QzE5NC4yMzMgMzcuODQxOSAxOTQuMDQyIDM3LjQxMjIgMTkzLjkwNSAzNi45MzM2QzE5My43NjggMzYuNDU1MSAxOTMuNzI1IDM1Ljk4NDMgMTkzLjc3OSAzNS41MjA1QzE5My44MzIgMzUuMDU3MyAxOTQuMDczIDM0LjY5NjcgMTk0LjUgMzQuNDM3OUMxOTQuNjY3IDM0LjM0NjggMTk0LjgxMiAzNC4zODA5IDE5NC45MzQgMzQuNTQwNUMxOTUuMDU2IDM0LjcwMDEgMTk1LjE1NSAzNC45MzE4IDE5NS4yMzIgMzUuMjM1N0MxOTUuMzA4IDM1LjUzOTkgMTk1LjM2MSAzNS44ODkyIDE5NS4zOTIgMzYuMjg0MkMxOTUuNDIyIDM2LjY3OTUgMTk1LjQzIDM3LjA1OTEgMTk1LjQxNSAzNy40MjQxWk0xOTMuMzkgNDEuOTcxMUMxOTMuMTU0IDQyLjIyMTUgMTkyLjg5IDQyLjQzODEgMTkyLjYwMSA0Mi42MjA2QzE5Mi4zMTEgNDIuODAzIDE5Mi4wMTQgNDIuOTM5OCAxOTEuNzA5IDQzLjAzMDlDMTkxLjQwNCA0My4xMjIzIDE5MS4xMjkgNDMuMTQ0OCAxOTAuODg1IDQzLjA5OTFDMTkwLjE5OSA0Mi45NjI3IDE4OS42NzMgNDIuNjY2IDE4OS4zMDcgNDIuMjEwM0MxODguOTQxIDQxLjc1NDUgMTg4LjcwOCA0MS4yMTkgMTg4LjYwOSA0MC42MDM3QzE4OC41MSAzOS45ODgxIDE4OC41MjEgMzkuMzMwOCAxODguNjQ0IDM4LjYzMTlDMTg4Ljc2NSAzNy45MzMgMTg4Ljk3MSAzNy4yODM1IDE4OS4yNjEgMzYuNjgzMkMxODkuNTUxIDM2LjA4MjkgMTg5LjkwMiAzNS41NjYyIDE5MC4zMTMgMzUuMTMzM0MxOTAuNzI1IDM0LjcwMDEgMTkxLjE3NSAzNC40MzA2IDE5MS42NjMgMzQuMzIzOUMxOTEuNDggMzUuMDk4OSAxOTEuNDE5IDM1LjkwMDcgMTkxLjQ4IDM2LjcyODZDMTkxLjU0MSAzNy41NTY4IDE5MS43MzkgMzguMzM1NSAxOTIuMDc1IDM5LjA2NDhDMTkyLjI4OCAzOS41MDYgMTkyLjU0NCAzOS45MDgyIDE5Mi44NDEgNDAuMjcyOUMxOTMuMTM5IDQwLjYzNzggMTkzLjUwMSA0MC45NDkyIDE5My45MjggNDEuMjA3NUMxOTMuODA2IDQxLjQ2NiAxOTMuNjI2IDQxLjcyMDQgMTkzLjM5IDQxLjk3MTFaTTIxOC43MDIgMzcuNjUxOUMyMTguNzQ3IDM3LjMwMjYgMjE4LjgxNiAzNi45MzM2IDIxOC45MDggMzYuNTQ2MkMyMTguOTk5IDM2LjE1OSAyMTkuMTE0IDM1Ljc4MjggMjE5LjI1MSAzNS40MTgxQzIxOS4zODggMzUuMDUzMiAyMTkuNTQ4IDM0LjczOCAyMTkuNzMxIDM0LjQ3MjNDMjE5LjkxNCAzNC4yMDY1IDIyMC4xMDggMzQuMDE2MyAyMjAuMzE0IDMzLjkwMjRDMjIwLjUyIDMzLjc4ODQgMjIwLjczIDMzLjc5OTcgMjIwLjk0MyAzMy45MzY1QzIyMS4xNzIgMzQuMDczNSAyMjEuMzEzIDM0LjM2MjEgMjIxLjM2NyAzNC44MDI1QzIyMS40MiAzNS4yNDM1IDIyMS4zNjcgMzUuNzE0MiAyMjEuMjA3IDM2LjIxNTlDMjIxLjA0NiAzNi43MTczIDIyMC43NjEgMzcuMTg4NCAyMjAuMzQ5IDM3LjYyODhDMjE5LjkzNyAzOC4wNyAyMTkuMzggMzguMzU4MyAyMTguNjc5IDM4LjQ5NTFDMjE4LjY0OCAzOC4yODI2IDIxOC42NTYgMzguMDAxNSAyMTguNzAyIDM3LjY1MTlaTTIyNy45MjEgMzcuNjUxOUMyMjcuOTY2IDM3LjMwMjYgMjI4LjAzNSAzNi45MzM2IDIyOC4xMjYgMzYuNTQ2MkMyMjguMjE4IDM2LjE1OSAyMjguMzMyIDM1Ljc4MjggMjI4LjQ3IDM1LjQxODFDMjI4LjYwNyAzNS4wNTMyIDIyOC43NjcgMzQuNzM4IDIyOC45NSAzNC40NzIzQzIyOS4xMzMgMzQuMjA2NSAyMjkuMzI4IDM0LjAxNjMgMjI5LjUzMyAzMy45MDI0QzIyOS43MzkgMzMuNzg4NCAyMjkuOTQ5IDMzLjc5OTcgMjMwLjE2MiAzMy45MzY1QzIzMC4zOTEgMzQuMDczNSAyMzAuNTMyIDM0LjM2MjEgMjMwLjU4NiAzNC44MDI1QzIzMC42MzkgMzUuMjQzNSAyMzAuNTg2IDM1LjcxNDIgMjMwLjQyNSAzNi4yMTU5QzIzMC4yNjUgMzYuNzE3MyAyMjkuOTc5IDM3LjE4ODQgMjI5LjU2OCAzNy42Mjg4QzIyOS4xNTYgMzguMDcgMjI4LjU5OSAzOC4zNTgzIDIyNy44OTggMzguNDk1MUMyMjcuODY3IDM4LjI4MjYgMjI3Ljg3NSAzOC4wMDE1IDIyNy45MjEgMzcuNjUxOVpNMjM2LjQ4OCAzOC45ODUyQzIzNi4zMTIgMzguNzk1NSAyMzYuMDk5IDM4LjY2MjUgMjM1Ljg0NyAzOC41ODYyQzIzNS41OTUgMzguNTEwNCAyMzUuMzU1IDM4LjUwMjkgMjM1LjEyNiAzOC41NjM2QzIzNC44OTcgMzguNjI0NCAyMzQuNzUyIDM4Ljc4NCAyMzQuNjkyIDM5LjA0MjJDMjM0LjU3IDM5LjUyODYgMjM0LjM3NSA0MC4wMjYyIDIzNC4xMDggNDAuNTM0OUMyMzMuODQxIDQxLjA0NDQgMjMzLjUxNCA0MS41MjY3IDIzMy4xMjUgNDEuOTgyNEMyMzIuNzM2IDQyLjQzODEgMjMyLjI5NyA0Mi44NDEyIDIzMS44MSA0My4xOTA1QzIzMS4zMjEgNDMuNTQwMSAyMzAuODEgNDMuNzkwOCAyMzAuMjc3IDQzLjk0MjNDMjI5Ljc0MyA0NC4xMTAxIDIyOS4zMDEgNDQuMTI4OSAyMjguOTUgNDMuOTk5NkMyMjguNTk5IDQzLjg3MDYgMjI4LjMyMSA0My42NTAzIDIyOC4xMTUgNDMuMzM4OUMyMjcuOTA5IDQzLjAyNzEgMjI3Ljc2MSA0Mi42NTEyIDIyNy42NjkgNDIuMjEwM0MyMjcuNTc4IDQxLjc2OTkgMjI3LjUyNCA0MS4zMTQyIDIyNy41MDkgNDAuODQyOEMyMjguMzc4IDQwLjkwMzggMjI5LjE1MiA0MC43NDgzIDIyOS44MzEgNDAuMzc1NUMyMzAuNTA5IDQwLjAwMzQgMjMxLjA4NSAzOS41MDkyIDIzMS41NTggMzguODkzOUMyMzIuMDMxIDM4LjI3ODggMjMyLjM4OSAzNy41ODc0IDIzMi42MzMgMzYuODJDMjMyLjg3NyAzNi4wNTI2IDIzMy4wMTQgMzUuMjg5MiAyMzMuMDQ1IDM0LjUyOTNDMjMzLjA2IDMzLjgxNSAyMzIuOTUzIDMzLjIxMSAyMzIuNzI0IDMyLjcxNzFDMjMyLjQ5NiAzMi4yMjM1IDIzMi4xODcgMzEuODM5NSAyMzEuNzk4IDMxLjU2NjJDMjMxLjQwOSAzMS4yOTI0IDIzMC45NjMgMzEuMTMzIDIzMC40NiAzMS4wODc0QzIyOS45NTcgMzEuMDQxNyAyMjkuNDQ1IDMxLjExMDUgMjI4LjkyNyAzMS4yOTI0QzIyOC4zMDIgMzEuNTA1NSAyMjcuNzcyIDMxLjg1MSAyMjcuMzM4IDMyLjMyOTZDMjI2LjkwMyAzMi44MDg1IDIyNi41NCAzMy4zNjM0IDIyNi4yNTEgMzMuOTkzNEMyMjUuOTYxIDM0LjYyNDQgMjI1LjczMiAzNS4zMDM5IDIyNS41NjQgMzYuMDMzNUMyMjUuMzk2IDM2Ljc2MjcgMjI1LjI3NCAzNy40ODEgMjI1LjE5OSAzOC4xODc0QzIyNS4xMjQgMzguODczIDIyNS4wODQgMzkuNTI5MiAyMjUuMDc1IDQwLjE1NzJDMjI1LjAxNyA0MC4yODI0IDIyNC45NTYgNDAuNDA4MiAyMjQuODg5IDQwLjUzNDlDMjI0LjYyMiA0MS4wNDQ0IDIyNC4yOTUgNDEuNTI2NyAyMjMuOTA2IDQxLjk4MjRDMjIzLjUxNyA0Mi40MzgxIDIyMy4wNzggNDIuODQxMiAyMjIuNTkxIDQzLjE5MDVDMjIyLjEwMiA0My41NDAxIDIyMS41OTIgNDMuNzkwOCAyMjEuMDU4IDQzLjk0MjNDMjIwLjUyNCA0NC4xMTAxIDIyMC4wODIgNDQuMTI4OSAyMTkuNzMxIDQzLjk5OTZDMjE5LjM4IDQzLjg3MDYgMjE5LjEwMiA0My42NTAzIDIxOC44OTYgNDMuMzM4OUMyMTguNjkxIDQzLjAyNzEgMjE4LjU0MiA0Mi42NTEyIDIxOC40NSA0Mi4yMTAzQzIxOC4zNTkgNDEuNzY5OSAyMTguMzA1IDQxLjMxNDIgMjE4LjI5IDQwLjg0MjhDMjE5LjE1OSA0MC45MDM4IDIxOS45MzMgNDAuNzQ4MyAyMjAuNjEyIDQwLjM3NTVDMjIxLjI5IDQwLjAwMzQgMjIxLjg2NiAzOS41MDkyIDIyMi4zMzkgMzguODkzOUMyMjIuODExIDM4LjI3ODggMjIzLjE3IDM3LjU4NzQgMjIzLjQxNCAzNi44MkMyMjMuNjU4IDM2LjA1MjYgMjIzLjc5NSAzNS4yODkyIDIyMy44MjYgMzQuNTI5M0MyMjMuODQxIDMzLjgxNSAyMjMuNzM0IDMzLjIxMSAyMjMuNTA2IDMyLjcxNzFDMjIzLjI3NyAzMi4yMjM1IDIyMi45NjggMzEuODM5NSAyMjIuNTc5IDMxLjU2NjJDMjIyLjE5IDMxLjI5MjQgMjIxLjc0NCAzMS4xMzMgMjIxLjI0MSAzMS4wODc0QzIyMC43MzggMzEuMDQxNyAyMjAuMjI3IDMxLjExMDUgMjE5LjcwOCAzMS4yOTI0QzIxOS4wODMgMzEuNTA1NSAyMTguNTUzIDMxLjg1MSAyMTguMTE5IDMyLjMyOTZDMjE3LjY4NCAzMi44MDg1IDIxNy4zMjEgMzMuMzYzNCAyMTcuMDMyIDMzLjk5MzRDMjE2Ljc0MiAzNC42MjQ0IDIxNi41MTMgMzUuMzAzOSAyMTYuMzQ2IDM2LjAzMzVDMjE2LjE3OCAzNi43NjI3IDIxNi4wNTYgMzcuNDgxIDIxNS45OCAzOC4xODc0QzIxNS45MzYgMzguNTg1OSAyMTUuOTA3IDM4Ljk3MjIgMjE1Ljg4NiAzOS4zNTE2QzIxNS43MzkgMzkuNDc2NSAyMTUuNTk1IDM5LjYwMjMgMjE1LjQ0MiAzOS43MjU4QzIxNC45MTYgNDAuMTUxNCAyMTQuMzYzIDQwLjUzNDkgMjEzLjc4NCA0MC44NzY5QzIxMy4yMDQgNDEuMjE5IDIxMi42MDEgNDEuNTAwMSAyMTEuOTc3IDQxLjcyMDRDMjExLjM1MSA0MS45NDA4IDIxMC43MSA0Mi4wNzM4IDIxMC4wNTUgNDIuMTE5MkwyMTEuNDczIDI2Ljk4NDdDMjExLjU2NSAyNi42NjU1IDIxMS41MTkgMjYuMzg0NyAyMTEuMzM2IDI2LjE0MTVDMjExLjE1MyAyNS44OTgzIDIxMC45MTYgMjUuNzMxMiAyMTAuNjI3IDI1LjY0MDFDMjEwLjMzNyAyNS41NDg4IDIxMC4wMjggMjUuNTU2NiAyMDkuNyAyNS42NjI3QzIwOS4zNzIgMjUuNzY5NCAyMDkuMTAyIDI2LjAxMjYgMjA4Ljg4OCAyNi4zOTE5QzIwOC43ODEgMjYuOTY5NyAyMDguNjcxIDI3Ljc1OTcgMjA4LjU1NyAyOC43NjI1QzIwOC40NDIgMjkuNzY1MyAyMDguMzI4IDMwLjg1OTUgMjA4LjIxMyAzMi4wNDQ4QzIwOC4wOTkgMzMuMjMgMjA3Ljk4NSAzNC40NTMyIDIwNy44NyAzNS43MTQyQzIwNy43NTYgMzYuOTc1OSAyMDcuNjU3IDM4LjE1MzMgMjA3LjU3MyAzOS4yNDcyQzIwNy41NjkgMzkuMjk1OCAyMDcuNTY2IDM5LjMzOTggMjA3LjU2MiAzOS4zODc4QzIwNy40MjkgMzkuNTAwNSAyMDcuMjk5IDM5LjYxNDIgMjA3LjE2MSAzOS43MjU4QzIwNi42MzUgNDAuMTUxNCAyMDYuMDgyIDQwLjUzNDkgMjA1LjUwMyA0MC44NzY5QzIwNC45MjMgNDEuMjE5IDIwNC4zMjEgNDEuNTAwMSAyMDMuNjk2IDQxLjcyMDRDMjAzLjA3IDQxLjk0MDggMjAyLjQyOSA0Mi4wNzM4IDIwMS43NzQgNDIuMTE5MkwyMDMuMTkyIDI2Ljk4NDdDMjAzLjI4NCAyNi42NjU1IDIwMy4yMzggMjYuMzg0NyAyMDMuMDU1IDI2LjE0MTVDMjAyLjg3MiAyNS44OTgzIDIwMi42MzUgMjUuNzMxMiAyMDIuMzQ2IDI1LjY0MDFDMjAyLjA1NiAyNS41NDg4IDIwMS43NDcgMjUuNTU2NiAyMDEuNDE5IDI1LjY2MjdDMjAxLjA5MSAyNS43Njk0IDIwMC44MjEgMjYuMDEyNiAyMDAuNjA3IDI2LjM5MTlDMjAwLjUwMSAyNi45Njk3IDIwMC4zOSAyNy43NTk3IDIwMC4yNzYgMjguNzYyNUMyMDAuMTYxIDI5Ljc2NTMgMjAwLjA0NyAzMC44NTk1IDE5OS45MzMgMzIuMDQ0OEMxOTkuODE4IDMzLjIzIDE5OS43MDQgMzQuNDUzMiAxOTkuNTg5IDM1LjcxNDJDMTk5LjQ3NSAzNi45NzU5IDE5OS4zNzYgMzguMTUzMyAxOTkuMjkyIDM5LjI0NzJDMTk5LjI5IDM5LjI2OTIgMTk5LjI4OSAzOS4yODkxIDE5OS4yODcgMzkuMzExMUMxOTkuMDQ4IDM5LjQyMTkgMTk4Ljc4NiAzOS41MTkgMTk4LjUwMyAzOS42MDA2QzE5OC4yMTMgMzkuNjg0NCAxOTcuODg1IDM5LjczMzkgMTk3LjUxOSAzOS43NDg5QzE5Ny41OCAzOS40NzUxIDE5Ny42MyAzOS4xNzEyIDE5Ny42NjggMzguODM2OUMxOTcuNzA2IDM4LjUwMjkgMTk3LjczNyAzOC4xNTMzIDE5Ny43NiAzNy43ODg0QzE5Ny43ODIgMzcuNDI0MSAxOTcuNzkgMzcuMDU5MSAxOTcuNzgyIDM2LjY5NDVDMTk3Ljc3NCAzNi4zMjk2IDE5Ny43NTUgMzUuOTk1NiAxOTcuNzI1IDM1LjY5MTRDMTk3LjY0OSAzNS4wMzg1IDE5Ny41MDggMzQuNDE5MSAxOTcuMzAyIDMzLjgzMzhDMTk3LjA5NiAzMy4yNDkxIDE5Ni44MTggMzIuNzU5MyAxOTYuNDY3IDMyLjM2MzdDMTk2LjExNiAzMS45Njg3IDE5NS42NzggMzEuNzAyNyAxOTUuMTUxIDMxLjU2NjJDMTk0LjYyNiAzMS40Mjk0IDE5NC4wMTIgMzEuNDc0OCAxOTMuMzEgMzEuNzAyN0MxOTIuMjczIDMxLjU2NjIgMTkxLjMzOSAzMS42NjEzIDE5MC41MDggMzEuOTg3OEMxODkuNjc3IDMyLjMxNDkgMTg4Ljk1NiAzMi43ODk0IDE4OC4zNDYgMzMuNDEyMkMxODcuNzM2IDM0LjAzNTcgMTg3LjIzNyAzNC43Njg0IDE4Ni44NDggMzUuNjExOUMxODYuNDU5IDM2LjQ1NTEgMTg2LjIgMzcuMzIxNCAxODYuMDcgMzguMjFDMTg2LjAxNSAzOC41ODY4IDE4NS45ODggMzguOTYxOCAxODUuOTggMzkuMzM2QzE4NS43NDQgMzkuODE3NyAxODUuNDg2IDQwLjIzODggMTg1LjIwMSA0MC41OTIxQzE4NC43OTcgNDEuMDkzNSAxODQuMzc3IDQxLjUwMzggMTgzLjk0MyA0MS44MjI4QzE4My41MDggNDIuMTQyIDE4My4wNzcgNDIuMzg1MiAxODIuNjUgNDIuNTUyM0MxODIuMjIzIDQyLjcxOTggMTgxLjg0MiA0Mi44MzM3IDE4MS41MDcgNDIuODk0MUMxODEuMTEgNDIuOTcwMiAxODAuNzI5IDQyLjk3OCAxODAuMzYzIDQyLjkxN0MxNzkuOTk3IDQyLjg1NjUgMTc5LjY2MSA0Mi42ODE2IDE3OS4zNTcgNDIuMzkyN0MxNzkuMTEyIDQyLjE4MDIgMTc4LjkyNSA0MS44MzgxIDE3OC43OTYgNDEuMzY3MUMxNzguNjY2IDQwLjg5NiAxNzguNTkgNDAuMzYwOCAxNzguNTY3IDM5Ljc2MDJDMTc4LjU0NCAzOS4xNTk5IDE3OC41NjcgMzguNTMzIDE3OC42MzYgMzcuODc5OEMxNzguNzA1IDM3LjIyNjYgMTc4LjgyMiAzNi42MDcyIDE3OC45OSAzNi4wMjIyQzE3OS4xNTggMzUuNDM3MiAxNzkuMzcxIDM0LjkxMyAxNzkuNjMxIDM0LjQ0OTJDMTc5Ljg5IDMzLjk4NjIgMTgwLjE5NSAzMy42NTU0IDE4MC41NDYgMzMuNDU3OUMxODAuNzQ0IDMzLjQ4ODYgMTgwLjg2NiAzMy42MDYgMTgwLjkxMiAzMy44MTFDMTgwLjk1OCAzNC4wMTYzIDE4MC45NjkgMzQuMjU5NSAxODAuOTQ2IDM0LjU0MDVDMTgwLjkyMyAzNC44MjE5IDE4MC44ODkgMzUuMTEwNSAxODAuODQzIDM1LjQwNjZDMTgwLjc5NyAzNS43MDMgMTgwLjc3NSAzNS45NTAyIDE4MC43NzUgMzYuMTQ3NEMxODAuODUxIDM2LjU1NzcgMTgwLjk5OSAzNi44NzcgMTgxLjIyMSAzNy4xMDQ4QzE4MS40NDEgMzcuMzMyNyAxODEuNjkgMzcuNDY2IDE4MS45NjQgMzcuNTAzNkMxODIuMjM5IDM3LjU0MTcgMTgyLjUwOSAzNy40NzczIDE4Mi43NzYgMzcuMzA5OEMxODMuMDQzIDM3LjE0MyAxODMuMjYgMzYuODc3IDE4My40MjggMzYuNTEyQzE4My40NDMgMzYuNTI3NCAxODMuNDY2IDM2LjUzNDkgMTgzLjQ5NyAzNi41MzQ5TDE4My44MTcgMzMuNjQwNEMxODMuOTA5IDMzLjI0NTEgMTgzLjg0NyAzMi44OTU4IDE4My42MzQgMzIuNTkxOUMxODMuNDIgMzIuMjg4IDE4My4xMzggMzIuMTEzIDE4Mi43ODggMzIuMDY3NkMxODIuMzQ1IDMxLjQyOTQgMTgxLjc0NyAzMS4wOTE0IDE4MC45OTIgMzEuMDUzMkMxODAuMjM3IDMxLjAxNTQgMTc5LjQ2MyAzMS4yNjIzIDE3OC42NyAzMS43OTQxQzE3OC4xODIgMzIuMTQ0IDE3Ny43NTEgMzIuNjI2IDE3Ny4zNzggMzMuMjQxM0MxNzcuMDA0IDMzLjg1NyAxNzYuNjk5IDM0LjU0MDUgMTc2LjQ2MyAzNS4yOTI2QzE3Ni4yMjYgMzYuMDQ0OCAxNzYuMDU4IDM2LjgzOTEgMTc1Ljk1OSAzNy42NzQ4QzE3NS44NiAzOC41MTA0IDE3NS44NDEgMzkuMzIzNiAxNzUuOTAyIDQwLjExMzNDMTc1Ljk2MyA0MC45MDM4IDE3Ni4xMDQgNDEuNjQ4NCAxNzYuMzI1IDQyLjM0N0MxNzYuNTQ2IDQzLjA0NjIgMTc2Ljg1NSA0My42MzEyIDE3Ny4yNTIgNDQuMTAyQzE3Ny41ODcgNDQuNTEyMyAxNzcuOTY4IDQ0LjgxMjcgMTc4LjM5NSA0NS4wMDI3QzE3OC44MjIgNDUuMTkyNyAxNzkuMjY4IDQ1LjMxMDEgMTc5LjczNCA0NS4zNTU4QzE4MC4xOTkgNDUuNDAxMiAxODAuNjYgNDUuMzgyMSAxODEuMTE4IDQ1LjI5ODhDMTgxLjU3NSA0NS4yMTU1IDE4Mi4wMSA0NS4wOTc4IDE4Mi40MjEgNDQuOTQ1NEMxODIuOTU1IDQ0Ljc0ODIgMTgzLjUwNSA0NC40OTcyIDE4NC4wNjkgNDQuMTkzM0MxODQuNjMzIDQzLjg4OTcgMTg1LjE3NCA0My41MjQ4IDE4NS42OTMgNDMuMDk5MUMxODUuOTY2IDQyLjg3NTMgMTg2LjIyOCA0Mi42MzEzIDE4Ni40ODIgNDIuMzY5NkMxODYuNTk4IDQyLjY1NTMgMTg2LjcyNyA0Mi45MzE3IDE4Ni44ODIgNDMuMTkwNUMxODcuMjk0IDQzLjg3NDEgMTg3Ljg1IDQ0LjQyOSAxODguNTUyIDQ0Ljg1NDRDMTg5LjI1MyA0NS4yNzk3IDE5MC4xMTUgNDUuNDg0NCAxOTEuMTM3IDQ1LjQ2OTdDMTkyLjIzNSA0NS40NTQ0IDE5My4yNDkgNDUuMTc3NCAxOTQuMTggNDQuNjM3OEMxOTUuMTEgNDQuMDk4OCAxOTUuODcyIDQzLjMwNDIgMTk2LjQ2NyA0Mi4yNTZDMTk3LjM1OCA0Mi4yNTYgMTk4LjIzNCA0Mi4xMDk2IDE5OS4wOTYgNDEuODE5QzE5OS4wODkgNDEuOTExIDE5OS4wODEgNDIuMDA3OSAxOTkuMDc1IDQyLjA5NjZDMTk5LjAxNCA0Mi45MDE5IDE5OC45ODMgNDMuNDQ4NyAxOTguOTgzIDQzLjczNzZDMTk4Ljk2OCA0NC4yMzkgMTk4LjkzNCA0NC44NTgxIDE5OC44OCA0NS41OTQ5QzE5OC44MjcgNDYuMzMyIDE5OC43OTMgNDcuMTA2OSAxOTguNzc4IDQ3LjkxOThDMTk4Ljc2MyA0OC43MzI2IDE5OC43OTMgNDkuNTUzMiAxOTguODY5IDUwLjM4MTdDMTk4Ljk0NSA1MS4yMDk2IDE5OS4xMDUgNTEuOTYyIDE5OS4zNDkgNTIuNjM4M0MxOTkuNTkzIDUzLjMxNDEgMTk5Ljk0IDUzLjg4NzggMjAwLjM5IDU0LjM1OTFDMjAwLjg0IDU0LjgyOTkgMjAxLjQzMSA1NS4xMTEyIDIwMi4xNjMgNTUuMjAyM0MyMDIuOTQxIDU1LjMwODQgMjAzLjYxMiA1NS4xNzE3IDIwNC4xNzYgNTQuNzkyQzIwNC43NCA1NC40MTIgMjA1LjE5OCA1My44OTE4IDIwNS41NDkgNTMuMjMwOEMyMDUuODk5IDUyLjU2OTUgMjA2LjE0NyA1MS44MDYxIDIwNi4yOTIgNTAuOTQwMUMyMDYuNDM3IDUwLjA3NCAyMDYuNDc5IDQ5LjIwMzkgMjA2LjQxOCA0OC4zMzAxQzIwNi4zNTcgNDcuNDU2MiAyMDYuMTk2IDQ2LjYzMjEgMjA1LjkzNyA0NS44NTc1QzIwNS42NzggNDUuMDgyMiAyMDUuMzE5IDQ0LjQ0NCAyMDQuODYyIDQzLjk0MjNDMjA1LjEzNyA0My44NjY5IDIwNS40NjUgNDMuNzIyNiAyMDUuODQ2IDQzLjUwOTVDMjA2LjIyNyA0My4yOTY5IDIwNi42MiA0My4wNTc1IDIwNy4wMjQgNDIuNzkxNUMyMDcuMTIzIDQyLjcyNjEgMjA3LjIyMSA0Mi42NTczIDIwNy4zMiA0Mi41OTAyQzIwNy4yODMgNDMuMTI4NiAyMDcuMjY0IDQzLjUxMjYgMjA3LjI2NCA0My43Mzc2QzIwNy4yNDkgNDQuMjM5IDIwNy4yMTUgNDQuODU4MSAyMDcuMTYxIDQ1LjU5NDlDMjA3LjEwOCA0Ni4zMzIgMjA3LjA3MyA0Ny4xMDY5IDIwNy4wNTggNDcuOTE5OEMyMDcuMDQzIDQ4LjczMjYgMjA3LjA3MyA0OS41NTMyIDIwNy4xNSA1MC4zODE3QzIwNy4yMjYgNTEuMjA5NiAyMDcuMzg2IDUxLjk2MiAyMDcuNjMgNTIuNjM4M0MyMDcuODc0IDUzLjMxNDEgMjA4LjIyMSA1My44ODc4IDIwOC42NzEgNTQuMzU5MUMyMDkuMTIxIDU0LjgyOTkgMjA5LjcxMiA1NS4xMTEyIDIxMC40NDQgNTUuMjAyM0MyMTEuMjIxIDU1LjMwODQgMjExLjg5MiA1NS4xNzE3IDIxMi40NTcgNTQuNzkyQzIxMy4wMjEgNTQuNDEyIDIxMy40NzggNTMuODkxOCAyMTMuODMgNTMuMjMwOEMyMTQuMTggNTIuNTY5NSAyMTQuNDI4IDUxLjgwNjEgMjE0LjU3MyA1MC45NDAxQzIxNC43MTggNTAuMDc0IDIxNC43NTkgNDkuMjAzOSAyMTQuNjk5IDQ4LjMzMDFDMjE0LjYzNyA0Ny40NTYyIDIxNC40NzcgNDYuNjMyMSAyMTQuMjE4IDQ1Ljg1NzVDMjEzLjk1OSA0NS4wODIyIDIxMy42MDEgNDQuNDQ0IDIxMy4xNDMgNDMuOTQyM0MyMTMuNDE4IDQzLjg2NjkgMjEzLjc0NSA0My43MjI2IDIxNC4xMjcgNDMuNTA5NUMyMTQuNTA4IDQzLjI5NjkgMjE0LjkgNDMuMDU3NSAyMTUuMzA1IDQyLjc5MTVDMjE1LjUxNSA0Mi42NTMzIDIxNS43MjQgNDIuNTEwNyAyMTUuOTMyIDQyLjM2NDFDMjE2LjAxIDQzLjEwNzIgMjE2LjE3OSA0My43NTkgMjE2LjQ0OCA0NC4zMDczQzIxNi43NzYgNDQuOTc2MSAyMTcuMjIyIDQ1LjQ5MjUgMjE3Ljc4NyA0NS44NTc1QzIxOC4zNTEgNDYuMjIxOCAyMTkuMDE0IDQ2LjQyMzQgMjE5Ljc3NyA0Ni40NjEyQzIyMC41MzkgNDYuNDk4OCAyMjEuMzcgNDYuMzU4NiAyMjIuMjcxIDQ2LjAzOTNDMjIyLjk0MSA0NS43OTY1IDIyMy41MjUgNDUuNDkyNSAyMjQuMDIgNDUuMTI3OUMyMjQuNTE2IDQ0Ljc2MyAyMjQuOTYyIDQ0LjMxODUgMjI1LjM1OCA0My43OTQ2QzIyNS4zODEgNDMuNzY0MiAyMjUuNDAzIDQzLjczMTMgMjI1LjQyNSA0My43MDA2QzIyNS40OTYgNDMuOTEzNCAyMjUuNTc0IDQ0LjExNzkgMjI1LjY2NyA0NC4zMDczQzIyNS45OTUgNDQuOTc2MSAyMjYuNDQxIDQ1LjQ5MjUgMjI3LjAwNiA0NS44NTc1QzIyNy41NjkgNDYuMjIxOCAyMjguMjMzIDQ2LjQyMzQgMjI4Ljk5NiA0Ni40NjEyQzIyOS43NTggNDYuNDk4OCAyMzAuNTg5IDQ2LjM1ODYgMjMxLjQ4OSA0Ni4wMzkzQzIzMi4xNiA0NS43OTY1IDIzMi43NDQgNDUuNDkyNSAyMzMuMjM5IDQ1LjEyNzlDMjMzLjczNSA0NC43NjMgMjM0LjE4MSA0NC4zMTg1IDIzNC41NzcgNDMuNzk0NkMyMzQuOTc0IDQzLjI3IDIzNS4zMzYgNDIuNjY2IDIzNS42NjQgNDEuOTgyNEMyMzUuOTkyIDQxLjI5ODUgMjM2LjMyMyA0MC41MTY0IDIzNi42NTkgMzkuNjM0N0MyMzYuNzIgMzkuMzkxOCAyMzYuNjYzIDM5LjE3NTIgMjM2LjQ4OCAzOC45ODUyWlwiIGZpbGw9XCIjMEQwQzIzXCIvPlxuPC9zdmc+YDtcblxuY29uc3QgcGF5cGFsID0gYFxuPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNTBcIiBoZWlnaHQ9XCI0MFwiPlxuPHBhdGggZmlsbD1cIiMyNTNCODBcIiBkPVwiTTQ2LjIxMSA2Ljc0OWgtNi44MzlhLjk1Ljk1IDAgMCAwLS45MzkuODAybC0yLjc2NiAxNy41MzdhLjU3LjU3IDAgMCAwIC41NjQuNjU4aDMuMjY1YS45NS45NSAwIDAgMCAuOTM5LS44MDNsLjc0Ni00LjczYS45NS45NSAwIDAgMSAuOTM4LS44MDNoMi4xNjVjNC41MDUgMCA3LjEwNS0yLjE4IDcuNzg0LTYuNS4zMDYtMS44OS4wMTMtMy4zNzUtLjg3Mi00LjQxNS0uOTcyLTEuMTQyLTIuNjk2LTEuNzQ2LTQuOTg1LTEuNzQ2ek00NyAxMy4xNTRjLS4zNzQgMi40NTQtMi4yNDkgMi40NTQtNC4wNjIgMi40NTRoLTEuMDMybC43MjQtNC41ODNhLjU3LjU3IDAgMCAxIC41NjMtLjQ4MWguNDczYzEuMjM1IDAgMi40IDAgMy4wMDIuNzA0LjM1OS40Mi40NjkgMS4wNDQuMzMyIDEuOTA2ek02Ni42NTQgMTMuMDc1aC0zLjI3NWEuNTcuNTcgMCAwIDAtLjU2My40ODFsLS4xNDUuOTE2LS4yMjktLjMzMmMtLjcwOS0xLjAyOS0yLjI5LTEuMzczLTMuODY4LTEuMzczLTMuNjE5IDAtNi43MSAyLjc0MS03LjMxMiA2LjU4Ni0uMzEzIDEuOTE4LjEzMiAzLjc1MiAxLjIyIDUuMDMxLjk5OCAxLjE3NiAyLjQyNiAxLjY2NiA0LjEyNSAxLjY2NiAyLjkxNiAwIDQuNTMzLTEuODc1IDQuNTMzLTEuODc1bC0uMTQ2LjkxYS41Ny41NyAwIDAgMCAuNTYyLjY2aDIuOTVhLjk1Ljk1IDAgMCAwIC45MzktLjgwM2wxLjc3LTExLjIwOWEuNTY4LjU2OCAwIDAgMC0uNTYxLS42NTh6bS00LjU2NSA2LjM3NGMtLjMxNiAxLjg3MS0xLjgwMSAzLjEyNy0zLjY5NSAzLjEyNy0uOTUxIDAtMS43MTEtLjMwNS0yLjE5OS0uODgzLS40ODQtLjU3NC0uNjY4LTEuMzkxLS41MTQtMi4zMDEuMjk1LTEuODU1IDEuODA1LTMuMTUyIDMuNjctMy4xNTIuOTMgMCAxLjY4Ni4zMDkgMi4xODQuODkyLjQ5OS41ODkuNjk3IDEuNDExLjU1NCAyLjMxN3pNODQuMDk2IDEzLjA3NWgtMy4yOTFhLjk1NC45NTQgMCAwIDAtLjc4Ny40MTdsLTQuNTM5IDYuNjg2LTEuOTI0LTYuNDI1YS45NTMuOTUzIDAgMCAwLS45MTItLjY3OGgtMy4yMzRhLjU3LjU3IDAgMCAwLS41NDEuNzU0bDMuNjI1IDEwLjYzOC0zLjQwOCA0LjgxMWEuNTcuNTcgMCAwIDAgLjQ2NS45aDMuMjg3YS45NDkuOTQ5IDAgMCAwIC43ODEtLjQwOGwxMC45NDYtMTUuOGEuNTcuNTcgMCAwIDAtLjQ2OC0uODk1elwiLz5cbjxwYXRoIGZpbGw9XCIjMTc5QkQ3XCIgZD1cIk05NC45OTIgNi43NDloLTYuODRhLjk1Ljk1IDAgMCAwLS45MzguODAybC0yLjc2NiAxNy41MzdhLjU2OS41NjkgMCAwIDAgLjU2Mi42NThoMy41MWEuNjY1LjY2NSAwIDAgMCAuNjU2LS41NjJsLjc4NS00Ljk3MWEuOTUuOTUgMCAwIDEgLjkzOC0uODAzaDIuMTY0YzQuNTA2IDAgNy4xMDUtMi4xOCA3Ljc4NS02LjUuMzA3LTEuODkuMDEyLTMuMzc1LS44NzMtNC40MTUtLjk3MS0xLjE0Mi0yLjY5NC0xLjc0Ni00Ljk4My0xLjc0NnptLjc4OSA2LjQwNWMtLjM3MyAyLjQ1NC0yLjI0OCAyLjQ1NC00LjA2MiAyLjQ1NGgtMS4wMzFsLjcyNS00LjU4M2EuNTY4LjU2OCAwIDAgMSAuNTYyLS40ODFoLjQ3M2MxLjIzNCAwIDIuNCAwIDMuMDAyLjcwNC4zNTkuNDIuNDY4IDEuMDQ0LjMzMSAxLjkwNnpNMTE1LjQzNCAxMy4wNzVoLTMuMjczYS41NjcuNTY3IDAgMCAwLS41NjIuNDgxbC0uMTQ1LjkxNi0uMjMtLjMzMmMtLjcwOS0xLjAyOS0yLjI4OS0xLjM3My0zLjg2Ny0xLjM3My0zLjYxOSAwLTYuNzA5IDIuNzQxLTcuMzExIDYuNTg2LS4zMTIgMS45MTguMTMxIDMuNzUyIDEuMjE5IDUuMDMxIDEgMS4xNzYgMi40MjYgMS42NjYgNC4xMjUgMS42NjYgMi45MTYgMCA0LjUzMy0xLjg3NSA0LjUzMy0xLjg3NWwtLjE0Ni45MWEuNTcuNTcgMCAwIDAgLjU2NC42NmgyLjk0OWEuOTUuOTUgMCAwIDAgLjkzOC0uODAzbDEuNzcxLTExLjIwOWEuNTcxLjU3MSAwIDAgMC0uNTY1LS42NTh6bS00LjU2NSA2LjM3NGMtLjMxNCAxLjg3MS0xLjgwMSAzLjEyNy0zLjY5NSAzLjEyNy0uOTQ5IDAtMS43MTEtLjMwNS0yLjE5OS0uODgzLS40ODQtLjU3NC0uNjY2LTEuMzkxLS41MTQtMi4zMDEuMjk3LTEuODU1IDEuODA1LTMuMTUyIDMuNjctMy4xNTIuOTMgMCAxLjY4Ni4zMDkgMi4xODQuODkyLjUwMS41ODkuNjk5IDEuNDExLjU1NCAyLjMxN3pNMTE5LjI5NSA3LjIzbC0yLjgwNyAxNy44NThhLjU2OS41NjkgMCAwIDAgLjU2Mi42NThoMi44MjJjLjQ2OSAwIC44NjctLjM0LjkzOS0uODAzbDIuNzY4LTE3LjUzNmEuNTcuNTcgMCAwIDAtLjU2Mi0uNjU5aC0zLjE2YS41NzEuNTcxIDAgMCAwLS41NjIuNDgyelwiLz5cbjxwYXRoIGZpbGw9XCIjMjUzQjgwXCIgZD1cIk03LjI2NiAyOS4xNTRsLjUyMy0zLjMyMi0xLjE2NS0uMDI3SDEuMDYxTDQuOTI3IDEuMjkyYS4zMTYuMzE2IDAgMCAxIC4zMTQtLjI2OGg5LjM4YzMuMTE0IDAgNS4yNjMuNjQ4IDYuMzg1IDEuOTI3LjUyNi42Ljg2MSAxLjIyNyAxLjAyMyAxLjkxNy4xNy43MjQuMTczIDEuNTg5LjAwNyAyLjY0NGwtLjAxMi4wNzd2LjY3NmwuNTI2LjI5OGEzLjY5IDMuNjkgMCAwIDEgMS4wNjUuODEyYy40NS41MTMuNzQxIDEuMTY1Ljg2NCAxLjkzOC4xMjcuNzk1LjA4NSAxLjc0MS0uMTIzIDIuODEyLS4yNCAxLjIzMi0uNjI4IDIuMzA1LTEuMTUyIDMuMTgzYTYuNTQ3IDYuNTQ3IDAgMCAxLTEuODI1IDJjLS42OTYuNDk0LTEuNTIzLjg2OS0yLjQ1OCAxLjEwOS0uOTA2LjIzNi0xLjkzOS4zNTUtMy4wNzIuMzU1aC0uNzNjLS41MjIgMC0xLjAyOS4xODgtMS40MjcuNTI1YTIuMjEgMi4yMSAwIDAgMC0uNzQ0IDEuMzI4bC0uMDU1LjI5OS0uOTI0IDUuODU1LS4wNDIuMjE1Yy0uMDExLjA2OC0uMDMuMTAyLS4wNTguMTI1YS4xNTUuMTU1IDAgMCAxLS4wOTYuMDM1SDcuMjY2elwiLz5cbjxwYXRoIGZpbGw9XCIjMTc5QkQ3XCIgZD1cIk0yMy4wNDggNy42NjdjLS4wMjguMTc5LS4wNi4zNjItLjA5Ni41NS0xLjIzNyA2LjM1MS01LjQ2OSA4LjU0NS0xMC44NzQgOC41NDVIOS4zMjZjLS42NjEgMC0xLjIxOC40OC0xLjMyMSAxLjEzMkw2LjU5NiAyNi44M2wtLjM5OSAyLjUzM2EuNzA0LjcwNCAwIDAgMCAuNjk1LjgxNGg0Ljg4MWMuNTc4IDAgMS4wNjktLjQyIDEuMTYtLjk5bC4wNDgtLjI0OC45MTktNS44MzIuMDU5LS4zMmMuMDktLjU3Mi41ODItLjk5MiAxLjE2LS45OTJoLjczYzQuNzI5IDAgOC40MzEtMS45MiA5LjUxMy03LjQ3Ni40NTItMi4zMjEuMjE4LTQuMjU5LS45NzgtNS42MjJhNC42NjcgNC42NjcgMCAwIDAtMS4zMzYtMS4wM3pcIi8+XG48cGF0aCBmaWxsPVwiIzIyMkQ2NVwiIGQ9XCJNMjEuNzU0IDcuMTUxYTkuNzU3IDkuNzU3IDAgMCAwLTEuMjAzLS4yNjcgMTUuMjg0IDE1LjI4NCAwIDAgMC0yLjQyNi0uMTc3aC03LjM1MmExLjE3MiAxLjE3MiAwIDAgMC0xLjE1OS45OTJMOC4wNSAxNy42MDVsLS4wNDUuMjg5YTEuMzM2IDEuMzM2IDAgMCAxIDEuMzIxLTEuMTMyaDIuNzUyYzUuNDA1IDAgOS42MzctMi4xOTUgMTAuODc0LTguNTQ1LjAzNy0uMTg4LjA2OC0uMzcxLjA5Ni0uNTVhNi41OTQgNi41OTQgMCAwIDAtMS4wMTctLjQyOSA5LjA0NSA5LjA0NSAwIDAgMC0uMjc3LS4wODd6XCIvPlxuPHBhdGggZmlsbD1cIiMyNTNCODBcIiBkPVwiTTkuNjE0IDcuNjk5YTEuMTY5IDEuMTY5IDAgMCAxIDEuMTU5LS45OTFoNy4zNTJjLjg3MSAwIDEuNjg0LjA1NyAyLjQyNi4xNzdhOS43NTcgOS43NTcgMCAwIDEgMS40ODEuMzUzYy4zNjUuMTIxLjcwNC4yNjQgMS4wMTcuNDI5LjM2OC0yLjM0Ny0uMDAzLTMuOTQ1LTEuMjcyLTUuMzkyQzIwLjM3OC42ODIgMTcuODUzIDAgMTQuNjIyIDBoLTkuMzhjLS42NiAwLTEuMjIzLjQ4LTEuMzI1IDEuMTMzTC4wMSAyNS44OThhLjgwNi44MDYgMCAwIDAgLjc5NS45MzJoNS43OTFsMS40NTQtOS4yMjUgMS41NjQtOS45MDZ6XCIvPlxuPC9zdmc+YDtcbiJdLCJuYW1lcyI6WyJhZGRJY29uIiwiYWxpZ25tZW50XzEiLCJ0YWJsZV9jZWxsXzEiLCJ0aGlzIiwidW5kZWZpbmVkIiwiZ2xvYmFsIiwicmVxdWlyZSQkMCIsImxvZGFzaF8xIiwibmV2ZXJ0aHJvd18xIiwicmVzdWx0c18xIiwiYXN0X3V0aWxzXzEiLCJjYWxjXzEiLCJyb3dfMSIsImNvbHVtbl8xIiwicmVmZXJlbmNlXzEiLCJyYW5nZV8xIiwiU2VtYW50aWNIZWxwZXJzXzEiLCJXM0NFQk5GXzEiLCJDdXN0b21fMSIsImRpc3BsYXlfZGlyZWN0aXZlXzEiLCJkZXN0aW5hdGlvbiIsImRlc3RpbmF0aW9uXzEiLCJzaW5nbGVfcGFyYW1fZnVuY3Rpb25fMSIsImNvbmRpdGlvbmFsX2Z1bmN0aW9uXzEiLCJhbGdlYnJhaWNfb3BlcmF0aW9uXzEiLCJjb25zdGFudF8xIiwiZWJuZl8xIiwiZm9jdXNfMSIsInBvaW50XzEiLCJ0YWJsZV9yb3dfMSIsInRhYmxlXzEiLCJhbGlnbm1lbnQiLCJ0YWJsZSIsImZvcm1hdHRlcl8xIiwicGFyc2VyXzEiLCJyYW5nZSIsImVkaXRfc2NyaXB0XzEiLCJmb2N1cyIsImZvcm1hdHRlcl9qc18xIiwidGV4dF9lZGl0b3JfMSIsIm9wdGlvbnNfMSIsInRhYmxlX2VkaXRvcl8xIiwiRm9ybWF0VHlwZSIsIm9wdGlvbnNXaXRoRGVmYXVsdHMiLCJQb2ludCIsIkFsaWdubWVudCIsIlNvcnRPcmRlciIsIk5vdGljZSIsIk1URUVkaXRvciIsIk1vZGFsIiwiTWFya2Rvd25WaWV3IiwiSXRlbVZpZXciLCJQcmVjIiwia2V5bWFwIiwiUGx1Z2luIiwiU2V0dGluZyIsIlBsdWdpblNldHRpbmdUYWIiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxhQUFhLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ25DLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxj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QUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUN0RyxRQUFRLFNBQVMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRTtBQUN0SCxRQUFRLElBQUksQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM5RSxLQUFLLENBQUMsQ0FBQztBQUNQLENBQUM7QUFDRDtBQUNPLFNBQVMsV0FBVyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUU7QUFDM0MsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3JILElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sTUFBTSxLQUFLLFVBQVUsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFdBQVcsRUFBRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDN0osSUFBSSxTQUFTLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLFVBQVUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUN0RSxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUUsRUFBRTtBQUN0QixRQUFRLElBQUksQ0FBQyxFQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQUN0RSxRQUFRLE9BQU8sQ0FBQyxFQUFFLElBQUk7QUFDdEIsWUFBWSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6SyxZQUFZLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDcEQsWUFBWSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDekIsZ0JBQWdCLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU07QUFDOUMsZ0JBQWdCLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUN4RSxnQkFBZ0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztBQUNqRSxnQkFBZ0IsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUztBQUNqRSxnQkFBZ0I7QUFDaEIsb0JBQW9CLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7QUFDaEksb0JBQW9CLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxD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QUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsVUFBVSxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQzlDLElBQUksSUFBSSxDQUFDO0FBQ1QsTUFBTSxDQUFDLEdBQUcsSUFBSTtBQUNkLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUM7QUFDM0IsSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMvQyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVELEdBQUcsQ0FBQztBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLEVBQUU7QUFDdEMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUc7QUFDdEIsTUFBTSxDQUFDLEdBQUcsSUFBSTtBQUNkLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2QsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdB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LENBQUMsQ0FBQztBQUN4RCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7QUFDckI7QUFDQTtBQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN0QztBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0FBQ3BDLE1BQU0sQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNkO0FBQ0E7QUFDQSxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVCO0FBQ0E7QUFDQSxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9EO0FBQ0EsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFFBQVEsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7QUFDckIsT0FBTyxNQUFNO0FBQ2IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFD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QUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3JELElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFDO0FBQ0EsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztBQUN4QixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0FBQ3ZCLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDOUQsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztBQUN0QixJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7QUFDckI7QUFDQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0M7QUFDQSxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7QUFDcEIsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztBQUN4QixJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3ZCO0FBQ0EsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUNsQixHQUFHLENBQUM7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLENBQUMsQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLFlBQVk7QUFD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STtBQUNkLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDYixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNiLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUM7QUFDM0I7QUFDQTtBQUNBLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ2hDLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN6RSxLQUFLO0FBQ0w7QUFDQSxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7QUFDckI7QUFDQTtBQUNBLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QjtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUM5QixNQUFNLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUI7QUFDQSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7QUFDNUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QixNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFH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SSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDO0FBQ0E7QUFDQSxJQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUc7QUFDN0IsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLE1BQU0sS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHO0FBQ2hDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQ2pELFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7QUFDOUIsUUFBUSxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7QUFDN0IsT0FBTztBQUNQO0FBQ0EsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7QUFDdkMsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDOUI7QUFDQSxJQUFJLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ25CLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ25CO0FBQ0EsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNaLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbEM7QUFDQSxJQUFJLE9BQU8sUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFD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Q0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QixNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzVDLEtBQUs7QUFDTDtBQUNBLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztBQUNyQixJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNyQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0FBQ3hCLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ2xEO0FBQ0EsSUFBSSxVQUFVO0FBQ2QsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoQyxNQUFNLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTTtBQUNuQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDZCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDZCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDZCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDZCxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDYixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvQixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDYixLQUFLO0FBQ0w7QUFDQSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3QyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvQixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RCO0FBQ0E7QUFDQSxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQztBQUN4RixVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlCO0FBQ0EsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztBQUN4QixJ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QyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3RTtBQUNBLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCO0FBQ0EsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUI7QUFDQSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0FBQ3hCLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDdkI7QUFDQSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzVDO0FBQ0E7QUFDQSxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztBQUNsQztBQUNBO0FBQ0EsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssZ0JBQWdCLEVBQUU7QUFDNUUsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2pDLE1BQU0sT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDaEUsS0FBSztBQUNMO0FBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNaO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNmO0FBQ0E7QUFDQSxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25EO0FBQ0E7QUFDQSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQztBQUNBO0FBQ0EsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtBQUN0RCxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLFFBQVEsT0FBTyxDQUFDLENBQUM7QUFDakIsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQzlCLFFBQVEsU0FBUyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLElB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SUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JGLE9BQU8sTUFBTTtBQUNiLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7QUFDL0QsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUM3RCxZQUFZLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3ZFLE9BQU87QUFDUCxLQUFLLE1BQU07QUFDWCxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNqQixRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7QUFDdkMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQzNDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMxQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDO0FBQ3RGLE9BQU8sTUFBTTtBQUNiLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLElBQUksRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDakQsUUFBUSxDQUFDLENBQUMsU0FBUyxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztBQUNqRCxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0QsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxDQUFDLENBQUM7QUFDYixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxXQUFXLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDN0MsSUFBSSxJQUFJLENBQUM7QUFDVCxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNmLE1BQU0sSUFBSTtBQUNWLE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDWCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0FBQ3hCO0FBQ0EsSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUc7QUFDdEIsTUFBTSxLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUM7QUFDM0QsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNsRCxNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxRQUFRLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLEVBQUU7QUFDbEMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEQsVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBQzdDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQztBQUM1QixTQUFTO0FBQ1QsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDekIsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFO0FBQzNCLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUNsQjtBQUNBLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ3JCLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFO0FBQ2xCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDekMs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QyxJQUFJLElBQUksV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRztBQUMvQyxNQUFNLEdBQUcsR0FBRyxDQUFDO0FBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQztBQUNYLE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDWCxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsV0FBVztBQUMxQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUTtBQUN4QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0FBQzFCO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtBQUNyQztBQUNBLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6QixVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQzNDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN6QyxLQUFLO0FBQ0w7QUFDQSxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtBQUNwQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUM7QUFDdkIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ2YsS0FBSyxNQUFNO0FBQ1gsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ2YsS0FBSztBQUNMO0FBQ0EsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDMUI7QUFDQTtBQUNBLElB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QUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2hFO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDcEM7QUFDQTtBQUNBLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM3QixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoQyxLQUFLLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCO0FBQ0E7QUFDQSxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0FBQ3JCLEtBQUs7QUFDTDtBQUNBO0FBQ0EsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUMvQztBQUNBO0FBQ0EsSUFBSSxLQUFLLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2xFLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzVCO0FBQ0EsSUFBSSxJQUFJLEdBQUcsRUFBRTtBQUNiLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNmLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDO0FBQzdCLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxRQUFRLENBQUM7QUFDL0I7QUFDQSxNQUFNLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRTtBQUNuQixRQUFRLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQyxRQUFRLEtBQUssR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDL0UsUUFBUSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQixRQUFRLENBQUMsR0FBRyxRQUFRLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztBQUNsQyxPQUFPLE1BQU07QUFDYixRQUFRLENBQUMsSUFBSSxHQUFHLENBQUM7QUFDakIsT0FBTztBQUNQO0FBQ0EsTUFBTSxPQUFPLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUM7QUFDOUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCO0FBQ0EsTUFBTSxJQUFJLFFBQVEsRUFBRTtBQUNwQjtBQUNBO0FBQ0EsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUU7QUFDdEM7QUFDQTtBQUNBLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDckIsVUFBVSxDQUFDLENBQUMsQ0FB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QUFDLENBQUM7QUFDcEIsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEI7QUFDQSxJQUFJLFNBQVM7QUFDYixNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxRCxNQUFNLENBQUMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzFELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEI7QUFDQSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRTtBQUM3QixRQUFRLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUMvQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLE1BQU07QUFDM0IsT0FBTztBQUNQO0FBQ0EsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ1osTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ1osTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ1osTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FB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QUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQztBQUMxRixLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDckMsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUM5QixJQUFJLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7QUFDMUIsTUFBTSxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztBQUN2QixNQUFNLE9BQU8sSUFBSSxDQUFDO0FBQ2xCLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQ2xCLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUM3QixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxJQUFJLENBQUMsQ0FBQyxFQUFFO0FBQ25CLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM5QixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLEtBQUssQ0FBQyxDQUFDLEVBQUU7QUFDcEIsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQy9CLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUNyQixJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9CLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsSUFBSSxDQUFDLENBQUMsRUFBRTtBQUNuQixJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDOUIsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFO0FBQ3BCLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUMvQixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFDbkIsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzlCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRTtBQUNwQixJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDL0IsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixJQUFJLElBQUksQ0FBQztBQUNULE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTO0FBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRO0FBQ3hCLE1BQU0sR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDbkI7QUFDQTtBQUNBLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ3RCLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCO0FBQ0E7QUFDQSxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQzdCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDM0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEI7QUFDQTtBQUNBLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7QUFDbkMsTUFB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T0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDMUIsSUFBSSxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUMxQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3hCLElBQUksT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDeEIsSUFBSSxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUMxQixJQUFJLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLElBQUksT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDeEIsSUFBSSxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUN0QixJQUFJLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLElBQUksT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDMUIsSUFBSSxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUMxQixJQUFJLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLElBQUksT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDdEIsSUFBSSxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUMxQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3hCLElBQUksT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDdEIsSUFBSSxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUN0QixJQUFJLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLElBQUksT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDdEIsSUFBSSxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUN0QixJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0FBQzVCLElBQUksT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDMUIsSUFB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QUMsQ0FBQyxDQUFDLEVBQUU7QUFDaEIsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDakIsVUFBVSxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQzFCLFVBQVUsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDakMsU0FBUztBQUNULFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNkLE9BQU8sTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDdEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0IsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQztBQUNwQjtBQUNBLElBQUksT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDcEIsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtBQUNsQyxJQUFJLE9BQU8sR0FBRyxZQUFZLE9BQU8sSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDO0FBQzdFLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNqQixJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7QUFDNUIsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUNyQixJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsSUFBSSxDQUFDLENBQUMsRUFBRTtBQUNuQixJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRTtBQUNwQixJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQy9CLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUNqQixJQUFJLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDM0MsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQ2pCLElBQUksT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMzQyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDckIsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDckIsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDckIsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsTUFBTSxDQUFDLEVBQUUsRUFBRTtBQUN0QixJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUNsQixNQUFNLENBQUMsR0FBRyxDQUFDO0FBQ1gsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3JCLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNkO0FBQ0EsSUFBSSxJQUFJLEVBQUUsS0FBSyxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztBQUMzQyxTQUFTLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3ZDO0FBQ0EsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7QUFDakM7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ3RCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZEO0FBQ0E7QUFDQSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFO0FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRDtBQUNBLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHO0FBQ3JCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqQjtBQUNBO0FBQ0E7QUFDQSxRQUFRLElBQUksQ0FBQyxJQUFJLE1BQU0sRUFBRTtBQUN6QixVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0QsU0FBUyxNQUFNO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzVCLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7QUFDbkM7QUFDQTtBQUNBLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3JDO0FBQ0EsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUc7QUFDckI7QUFDQTtBQUNBLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQztBQUNsRjtBQUNBO0FBQ0EsUUFBUSxJQUFJLENBQUMsSUFBSSxNQUFNLEVBQUU7QUFDekIsVUFBVSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0MsU0FBUyxNQUFNO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUMzQixVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakIsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEIsS0FBSyxNQUFNO0FBQ1gsTUFBTSxNQUFNLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3JDLEtBQUs7QUFDTDtBQUNBLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2hCLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQztBQUNuQjtBQUNBO0FBQ0EsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUU7QUFDakIsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDckMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDdEM7QUFDQTtBQUNBLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0FBQ2YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ1osTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNmLEtBQUssTUFBTTtBQUNYLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2I7QUFDQTtBQUNBLE1BQU0sT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ3BEO0FBQ0E7QUFDQSxNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUNuRDtBQUNBO0FBQ0EsTUFBTSxJQUFJLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDMUMsS0FBSztBQUNMO0FBQ0EsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNaLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDYjtBQUNBLElBQUksT0FBTyxDQUFDLENBQUM7QUFDYixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRTtBQUNwQixJQUFJLE9BQU8sUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0QsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFDbkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO0FBQ3ZELEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRTtBQUNsQixJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDN0IsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxJQUFJLENBQUMsQ0FBQyxFQUFFO0FBQ25CLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM5QixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFDbkIsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzlCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUNyQixJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUNqQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUM7QUFDYixNQUFNLElBQUksR0FBRyxTQUFTO0FBQ3RCLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCO0FBQ0EsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO0FBQ3JCLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQ3BCO0FBQ0EsSUFBSSxPQUFPLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDdEQsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQ2xCLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUM3QixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFDbkIsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzlCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxTQUFTLEtBQUssQ0FBQyxDQUFDLEVBQUU7QUFDcEIsSUFBSSxPQUFPLFFBQVEsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDakQsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUUsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM1QixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztBQUMxQyxFQUFFLE9BQU8sQ0FB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QUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUM5RSxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDOUUsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUMvRCxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQy9ELElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDL0QsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQzlFLElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUM5RSxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUc7QUFDakMsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDaEQsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQzlFLElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUM5RSxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQy9ELElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDL0QsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDaEQsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDaEQsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDaEQsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUc7QUFDaEQsSUFBSSxRQUFRLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUMvRCxJQUFJLFFBQVEsRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQy9ELElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQ2hELElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQ2hELElBQUksUUFBUSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUs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TSxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDeEMsTUFBTSxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pELE1BQU0sS0FBSyxDQUFDLEVBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUQsTUFBTSxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkUsS0FBSztBQUNMLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNyQyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxlQUFlLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO0FBQ2pFLElBQUksSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ2xCLFFBQVEsTUFBTSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDbEQ7QUFDQSxJQUFJLE9BQU8sRUFBRSxLQUFLLEdBQUcsTUFBTSxFQUFFO0FBQzdCLE1BQU0sSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9CLE1BQU0sTUFBTSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3pELEtB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QUcsTUFBTSxFQUFFO0FBQzdCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN0RSxLQUFLO0FBQ0wsSUFBSSxPQUFPLFdBQVcsQ0FBQztBQUN2QixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLFNBQVMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0FBQ3JFLElBQUksSUFBSSxNQUFNLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUNsRCxJQUFJLElBQUksU0FBUyxJQUFJLE1BQU0sRUFBRTtBQUM3QixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwQyxLQUFLO0FBQ0wsSUFBSSxPQUFPLE1BQU0sRUFBRSxFQUFFO0FBQ3JCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4RSxLQUFLO0FBQ0wsSUFBSSxPQUFPLFdBQVcsQ0FBQztBQUN2QixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRTtBQUN2QyxJQUFJLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztBQUNsQixRQUFRLE1BQU0sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ2xEO0FBQ0EsSUFBSSxPQUFPLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRTtBQUM3QixNQUFNLElBQUksU0FBUyxD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QUFLLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMxQztBQUNBLE1BQU0sSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO0FBQ3JCLFFBQVEsT0FBTyxLQUFLLENBQUM7QUFDckIsT0FBTztBQUNQLE1BQU0sSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDdEMsTUFBTSxJQUFJLEtBQUssSUFBSSxTQUFTLEVBQUU7QUFDOUIsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDbkIsT0FBTyxNQUFNO0FBQ2IsUUFBUSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEMsT0FBTztBQUNQLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ2xCLE1BQU0sT0FBTyxJQUFJLENBQUM7QUFDbEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFlBQVksQ0FBQyxHQUFHLEVBQUU7QUFDL0IsTUFBTSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUTtBQUM5QixVQUFVLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzFDO0FBQ0EsTUFBTSxPQUFPLEtBQUssR0FBRyxDQUFDLEdBQUdBLFdBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFlBQVksQ0FBQyxHQUFHLEVBQUU7QUFDL0IsTUFBTSxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ25ELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUssQ0FBQyxPQUFPLEVBQUU7QUFDNUIsTUFBTSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3hELE1BQU0sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQzVCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFVBQVUsR0FBRztBQUMxQixNQUFNLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxTQUFTLENBQUM7QUFDcEMsTUFBTSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNwQixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsV0FBVyxDQUFDLEdBQUcsRUFBRTtBQUM5QixNQUFNLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRO0FBQzlCLFVBQVUsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN2QztBQUNBLE1BQU0sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQzVCLE1BQU0sT0FBTyxNQUFNLENBQUM7QUFDcEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFFBQVEsQ0FBQyxHQUFHLEVBQUU7QUFDM0IsTUFBTSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxRQUFRLENBQUMsR0FBRyxFQUFFO0FBQzNCLE1BQU0sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FB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R0FBRyxFQUFFLENBQUM7QUFDdEI7QUFDQSxNQUFNLEtBQUssSUFBSSxHQUFHLElBQUksTUFBTSxFQUFFO0FBQzlCLFFBQVEsSUFBSSxFQUFFLEdBQUcsSUFBSSxhQUFhLEtBQUssT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ3ZGLFVBQVUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzQixTQUFTO0FBQ1QsT0FBTztBQUNQLE1BQU0sT0FBTyxNQUFNLENBQUM7QUFDcEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFO0FBQ2xDLE1BQU0sT0FBTyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQzNCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsT0FBTyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUU7QUFDM0MsTUFBTSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDcEIsVUFBVSxNQUFNLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzNFO0FBQ0EsTUFBTSxRQUFRLENBQUMsVUFBVSxFQUFFLFNBQVMsS0FBSyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7QUFDNUQsUUFBUSxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMzRCxPQUFPLENBQUMsQ0FBQztBQUNULE1BQU0sT0FBTyxNQUFNLENBQUM7QUFDcEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNB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TUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDcEYsT0FBTyxDQUFDO0FBQ1IsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFO0FBQzlCLE1BQU0sT0FBTyxXQUFXO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDO0FBQzdCLFFBQVEsUUFBUSxJQUFJLENBQUMsTUFBTTtBQUMzQixVQUFVLEtBQUssQ0FBQyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7QUFDbEMsVUFBVSxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNDLFVBQVUsS0FBSyxDQUFDLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEQsVUFBVSxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0QsVUFBVSxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLFVBQVUsS0FBSyxDQUFDLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0UsVUFBVSxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEYsVUFBVSxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pHLFNBQVM7QUFDVCxRQUFRLElBQUksV0FBVyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0FBQ3BELFlBQVksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ25EO0FBQ0E7QUFDQTtBQUNBLFFBQVEsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxHQUFHLFdBQVcsQ0FBQztBQUN2RCxPQUFPLENBQUM7QUFDUixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsV0FBVyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO0FBQy9DLE1BQU0sSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xDO0FB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QUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDO0FBQzNELFVBQVUsRUFBRSxDQUFDO0FBQ2IsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0FBQzVDLE1BQU0sSUFBSSxNQUFNLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUNwRCxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUU7QUFDbkIsUUFBUSxPQUFPLEVBQUUsQ0FBQztBQUNsQixPQUFPO0FBQ1AsTUFBTSxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLElBQUksY0FBYyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUU7QUFDcEYsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ2xCLFFBQVEsR0FBRyxHQUFHLE1BQU0sQ0FBQztBQUNyQixPQUFPO0FBQ1AsTUFBTSxPQUFPLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNoRCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRTtBQUNwRCxNQUFNLElBQUksTUFBTSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDcEQsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ25CLFFBQVEsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNsQixPQUFPO0FBQ1AsTUFBTSxJQUFJLEtBQUssR0FBRyxTQUFTLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDL0QsTUFBTSxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7QUFDckIsUUFBUSxLQUFLLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDN0MsT0FBTztBQUNQLE1BQU0sT0FBTyxhQUFhLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDcEUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxhQUFhLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUU7QUFDeEQsTUFBTSxJQUFJLE1BQU0sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ3BELE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUNuQixRQUFRLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDbEIsT0FBTztBQUNQLE1BQU0sSUFBSSxLQUFLLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUM3QixNQUFNLElBQUksU0FBUyxLQUFLQSxXQUFTLEVBQUU7QUFDbkMsUUFBUSxLQUFLLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3JDLFFBQVEsS0FBSyxHQUFHLFNBQVMsR0FBRyxDQUFDO0FBQzdCLFlBQVksU0FBUyxDQUFDLE1BQU0sR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLFlBQVksU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDekMsT0FBTztBQUNQLE1BQU0sT0FBTyxhQUFhLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzFFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRTtBQUM1QixNQUFNLElBQUksTUFBTSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDcEQsTUFBTSxPQUFPLE1BQU0sR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNqRCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFdBQVcsQ0FBQyxLQUFLLEVBQUU7QUFDaEMsTUFBTSxJQUFJLE1BQU0sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ3BELE1BQU0sT0FBTyxNQUFNLEdBQUcsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDeEQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxZQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtBQUN4QyxNQUFNLElBQUksTUFBTSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDcEQsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ25CLFFBQVEsT0FBTyxFQUFFLENBQUM7QUFDbEIsT0FBTztBQUNQLE1BQU0sS0FBSyxHQUFHLEtBQUssS0FBS0EsV0FBUyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekQsTUFBTSxPQUFPLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdkMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUU7QUFDOUIsTUFBTSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDcEIsVUFBVSxNQUFNLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU07QUFDbkQsVUFBVSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3RCO0FBQ0EsTUFBTSxPQUFPLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRTtBQUMvQixRQUFRLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxRQUFRLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEMsT0FBTztBQUNQLE1BQU0sT0FBTyxNQUFNLENBQUM7QUFDcEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLElBQUksQ0FBQyxLQUFLLEVBQUU7QUFDekIsTUFBTSxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHQSxXQUFTLENBQUM7QUFDNUQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7QUFDOUMsTUFBTSxJQUFJLE1BQU0sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ3BELE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUNuQixRQUFRLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDbEIsT0FBTztBQUNQLE1BQU0sSUFBSSxLQUFLLEdBQUcsU0FBUyxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9ELE1BQU0sSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO0FBQ3JCLFFBQVEsS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdDLE9BQU87QUFDUCxNQUFNLE9BQU8sV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOUMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxPQUFPLENBQUMsS0FBSyxFQUFFO0FBQzVCLE1BQU0sSUFBSSxNQUFN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SUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU07QUFDOUQsVUFBVSxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztBQUNwQyxVQUFVLEtBQUssQ0FBQztBQUNoQixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUNoRCxNQUFNLE9BQU8sQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU07QUFDOUQsVUFBVSxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzlELFVBQVUsS0FBSyxDQUFDO0FBQ2hCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFO0FBQ3BELE1BQU0sT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTTtBQUM5RCxVQUFVLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFQSxXQUFTLEVBQUUsVUFBVSxDQUFDO0FBQzNELFVBQVUsS0FBSyxDQUFDO0FBQ2hCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLFNBQVMsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUNuRCxNQUFNLElBQUksTUFBTSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNO0FBQ25ELFVBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUM7QUFDQSxNQUFNLFVBQVUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLEtBQUssRUFBRTtBQUMxRCxRQUFRLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDdkQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztBQUNqQztBQUNBLE1BQU0sT0FBTyxNQUFNLENBQUM7QUFDcEIsS0FBSyxDQUFDLENBQUM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFO0FBQ3RDLE1BQU0sSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sSUFBSSxFQUFFLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDcEMsUUFBUSxPQUFPLE1BQU0sQ0FBQztBQUN0QixPQUFPO0FBQ1AsTUFBTSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDcEIsVUFBVSxPQUFPLEdBQUcsRUFBRTtBQUN0QixVQUFVLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ2hDO0FBQ0EsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxNQUFNLE9BQU8sRUFBRSxLQUFLLEdBQUcsTUFBTSxFQUFFO0FBQy9CLFFBQVEsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLFFBQVEsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtBQUM1QyxVQUFVLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0IsVUFBVSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlCLFNBQVM7QUFDVCxPQUFPO0FBQ1AsTUFBTSxVQUFVLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2pDLE1BQU0sT0FBTyxNQUFNLENBQUM7QUFDcEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxPQUFPLENBQUMsS0FBSyxFQUFFO0FBQzVCLE1BQU0sT0FBTyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9ELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUN0QyxNQUFNLElBQUksTUFBTSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDcEQsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ25C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QUFXLEdBQUcsVUFBVSxDQUFDO0FBQ2hFLE1BQU0sT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksSUFBSSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLFFBQVEsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsT0FBTyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUU7QUFDM0MsTUFBTSxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsV0FBVyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUU7QUFDL0MsTUFBTSxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQzlELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7QUFDdkQsTUFBTSxLQUFLLEdBQUcsS0FBSyxLQUFLQSxXQUFTLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6RCxNQUFNLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDM0QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE9BQU8sQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFO0FBQzNDLE1BQU0sSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFNBQVMsR0FBRyxRQUFRLENBQUM7QUFDNUQsTUFBTSxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsWUFBWSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUU7QUFDaEQsTUFBTSxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsY0FBYyxHQUFHLGFBQWEsQ0FBQztBQUN0RSxNQUFNLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUNoRSxNQUFNLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDNUMsUUFBUSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLE9BQU8sTUFBTTtBQUNiLFFBQVEsZUFBZSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzlDLE9BQU87QUFDUCxLQUFLLENBQUMsQ0FBQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFFBQVEsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUU7QUFDM0QsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDN0UsTUFBTSxTQUFTLEdBQUcsQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuRTtBQUNBLE1BQU0sSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztBQUNyQyxNQUFNLElBQUksU0FBUyxHQUFHLENBQUMsRUFBRTtBQUN6QixRQUFRLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNyRCxPQUFPO0FBQ1AsTUFBTSxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUM7QUFDakMsV0FBVyxTQUFTLElBQUksTUFBTSxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzRSxXQUFXLENBQUMsQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtBQUM5RCxNQUFNLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztBQUNwQixVQUFVLE1BQU0sR0FBRyxPQUFPLElBQUksSUFBSSxVQUFVO0FBQzVDLFVBQVUsTUFBTSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMzRTtBQUNBLE1BQU0sUUFBUSxDQUFDLFVBQVUsRUFBRSxTQUFTLEtBQUssRUFBRTtBQUMzQyxRQUFRLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM1RixPQUFPLENBQUMsQ0FBQztBQUNULE1BQU0sT0FBTyxNQUFNLENBQUM7QUFDcEIsS0FBSyxDQUFDLENBQUM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0FBQzlELE1BQU0sZUFBZSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMUMsS0FBSyxDQUFDLENBQUM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRTtBQUN2QyxNQUFNLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDO0FBQzFELE1BQU0sT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE9BQU8sQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7QUFDM0QsTUFBTSxJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUU7QUFDOUIsUUFBUSxPQUFPLEVBQUUsQ0FBQztBQUNsQixPQUFPO0FBQ1AsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO0FBQy9CLFFBQVEsU0FBUyxHQUFHLFNBQVMsSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekQsT0FBTztBQUNQLE1BQU0sTUFBTSxHQUFHLEtBQUssR0FBR0EsV0FBUyxHQUFHLE1BQU0sQ0FBQztBQUMxQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDNUIsUUFBUSxNQUFNLEdBQUcsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoRCxPQUFPO0FBQ1AsTUFBTSxPQUFPLFdBQVcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3hELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUNsRSxNQUFNLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0QyxLQUFLLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxNQUFNLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7QUFDdkQsTUFBTSxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsV0FBVyxHQUFHLFVBQVU7QUFDL0QsVUFBVSxTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDM0M7QUFDQSxNQUFNLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDMUYsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsV0FBVyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO0FBQzVELE1BQU0sSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLGdCQUFnQixHQUFHLFVB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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0FBQ3ZDLE1BQU0sS0FBSyxHQUFHLEtBQUssR0FBR0EsV0FBUyxHQUFHLEtBQUssQ0FBQztBQUN4QyxNQUFNLElBQUksTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFQSxXQUFTLEVBQUVBLFdBQVMsRUFBRUEsV0FBUyxFQUFFQSxXQUFTLEVBQUVBLFdBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNuSCxNQUFNLE1BQU0sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztBQUM3QyxNQUFNLE9BQU8sTUFBTSxDQUFDO0FBQ3BCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0FBQzVDLE1BQU0sS0FBSyxHQUFHLEtBQUssR0FBR0EsV0FBUyxHQUFHLEtBQUssQ0FBQztBQUN4QyxNQUFNLElBQUksTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUVBLFdBQVMsRUFBRUEsV0FBUyxFQUFFQSxXQUFTLEVBQUVBLFdBQVMsRUFBRUEsV0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3pILE1BQU0sTUFBTSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO0FBQ2xE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QUFTO0FBQ1QsUUFBUSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDNUMsT0FBTyxDQUFDO0FBQ1IsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLEVBQUU7QUFDeEIsTUFBTSxPQUFPLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0IsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxTQUFTLElBQUksRUFBRSxVQUFVLEVBQUU7QUFDdkQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BFLFVBQVUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUMzRCxVQUFVLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDekU7QUFDQSxNQUFNLElBQUksV0FBVyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7QUFDMUMsTUFBTSxPQUFPLFFBQVEsQ0FBQyxTQUFTLElBQUksRUFBRTtBQUNyQyxRQUFRLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztBQUN0QixZ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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtBQUMzQyxNQUFNLElBQUksT0FBTyxHQUFHLElBQUk7QUFDeEIsVUFBVSxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQzFCO0FBQ0EsTUFBTSxJQUFJLE9BQU8sSUFBSSxJQUFJLFVBQVUsRUFBRTtBQUNyQyxRQUFRLE1BQU0sSUFBSSxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDN0MsT0FBTztBQUNQLE1BQU0sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7QUFDN0IsUUFBUSxPQUFPLEdBQUcsU0FBUyxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFDckUsUUFBUSxRQUFRLEdBQUcsVUFBVSxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7QUFDekUsT0FBTztBQUNQLE1BQU0sT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtBQUNsQyxRQUFRLFNBQVMsRUFBRSxPQUFPO0FBQzFCLFFBQVEsU0FBUyxFQUFFLElBQUk7QUFDdkIsUUFBUSxVQUFVLEVBQUUsUUFBUTtBQUM1QixPQUFPLENBQUMsQ0FBQztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxLQUFLLENBQUMsSUFBSSxFQUFFO0FBQ3pCLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzFCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUU7QUFDeEMsTUFBTSxPQUFPLE1BQU0sSUFBSSxJQUFJLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDNUUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtBQUM5QixNQUFNLE9BQU8sS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztBQUNyRSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLEVBQUUsR0FBRyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksR0FBRyxHQUFHLHlCQUF5QixDQUFDLFNBQVMsS0FBSyxFQUFFLEtBQUssRUFBRTtBQUMv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RyxJQUFJLE1BQU0sRUFBRTtBQUMxQyxRQUFRLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBQzNCLE9BQU87QUFDUCxNQUFNLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzlCLFFBQVEsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDdkMsT0FBTztBQUNQLE1BQU0sS0FBSyxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQUU7QUFDN0IsUUFBUSxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO0FBQzdDLFVBQVUsT0FBTyxLQUFLLENBQUM7QUFDdkIsU0FBUztBQUNULE9BQU87QUFDUCxNQUFNLE9BQU8sSUFBSSxDQUFDO0FBQ2xCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFO0FBQ25DLE1BQU0sT0FBTyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3ZDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO0FBQ25ELE1BQU0sVUFBVSxHQUFHLE9BQU8sVUFBVSxJQUFJLFVBQVUsR0FBRyxVQUFVLEdBQUdBLFdBQVMsQ0FBQztBQUM1RSxNQUFNLElBQUksTUFBTSxHQUFHLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHQSxXQUFTLENBQUM7QUFDckUsTUFBTSxPQUFPLE1BQU0sS0FBS0EsV0FBUyxHQUFHLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFQSxXQUFTLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNoRyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRTtBQUM1QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDaEMsUUFBUSxPQUFPLEtBQUssQ0FBQztBQUNyQixPQUFPO0FBQ1AsTUFBTSxJQUFJLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxRQUFRLElBQUksR0FBRyxJQUFJLFNBQVM7QUFDaEQsU0FBUyxPQUFPLEtBQUssQ0FBQyxPQUFPLElBQUksUUFBUSxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksSUFBSSxRQUFRLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNyRyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBTSxPQUFPLE9BQU8sS0FBSyxJQUFJLFFBQVEsSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxVQUFVLENBQUMsS0FBSyxFQUFFO0FBQy9CLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUM1QixRQUFRLE9BQU8sS0FBSyxDQUFDO0FBQ3JCLE9BQU87QUFDUDtBQUNBO0FBQ0EsTUFBTSxJQUFJLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLElBQUksR0FBRyxJQUFJLE1BQU0sSUFBSSxHQUFHLElBQUksUUFBUSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUM7QUFDbkYsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFO0FBQzlCLE1BQU0sT0FBTyxPQUFPLEtBQUssSUFBSSxRQUFRLElBQUksS0FBSyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuRSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBTSxPQUFPLE9BQU8sS0FBSyxJQUFJLFFBQVE7QUFDckMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLGdCQUFnQixDQUFDO0FBQ2xFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBTSxJQUFJLElBQUksR0FBRyxPQUFPLEtBQUssQ0FBQztBQUM5QixNQUFNLE9BQU8sS0FBSyxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksUUFBUSxJQUFJLElBQUksSUFBSSxVQUFVLENBQUMsQ0FBQztBQUN2RSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsWUFBWSxDQUFDLEtBQUssRUFBRTtBQUNqQyxNQUFNLE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLENBQUM7QUFDdkQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxLQUFLLEdBQUcsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUM7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRTtBQUNyQyxNQUFNLE9BQU8sTUFBTSxLQUFLLE1BQU0sSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNwRixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRTtBQUNyRCxNQUFNLFVBQVUsR0FBRyxPQUFPLFVBQVUsSUFBSSxVQUFVLEdBQUcsVUFBVSxHQUFHQSxXQUFTLENBQUM7QUFDNUUsTUFBTSxPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMzRSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFO0FBQzFCO0FBQ0E7QUFDQTtBQUNBLE1BQU0sT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBQ2hELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRTtBQUM3QixNQUFNLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzdCLFFBQVEsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUN6QyxPQUFPO0FBQ1AsTUFBTSxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE1BQU0sQ0FBQyxLQUFLLEVBQUU7QUFDM0IsTUFBTSxPQUFPLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDNUIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFO0FBQzFCLE1BQU0sT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDO0FBQzNCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRTtBQUM3QixNQUFNLE9BQU8sT0FBTyxLQUFLLElBQUksUUFBUTtBQUNyQyxTQUFTLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUM7QUFDaEUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksUUFBUSxHQUFHLGNBQWMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxNQUFNLEVBQUU7QUFDM0QsTUFBTSxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNqRCxLQUFLLENBQUMsQ0FBQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxZQUFZLEdBQUcsY0FBYyxDQUFDLFNBQVMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO0FBQ3JGLE1BQU0sVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzdELEtBQUssQ0FBQyxDQUFDO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxVQUFVLEdBQUcsY0FBYyxDQUFDLFNBQVMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO0FBQ25GLE1BQU0sVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzNELEtBQUssQ0FBQyxDQUFDO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxNQUFNLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRTtBQUMzQyxNQUFNLElBQUksTUFBTSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN6QyxNQUFNLE9BQU8sVUFBVSxJQUFJLElBQUksR0FBRyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMxRSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxTQUFTLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlCO0FBQ0EsTUFBTSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNyQixNQUFNLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDbEMsTUFBTSxJQUFJLEtBQUssR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxD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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUU7QUFDckMsTUFBTSxPQUFPLE1BQU0sSUFBSSxJQUFJO0FBQzNCLFVBQVUsTUFBTTtBQUNoQixVQUFVLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM1RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQzFDLE1BQU0sT0FBTyxNQUFNLElBQUksSUFBSTtBQUMzQixVQUFVLE1BQU07QUFDaEIsVUFBVSxZQUFZLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDakUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUU7QUFDdEMsTUFBTSxPQUFPLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQzNDLE1BQU0sT0FBTyxNQUFNLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxTQUFTLENBQUMsTUFBTSxFQUFFO0FBQy9CLE1BQU0sT0FBTyxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3ZFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsV0FBVyxDQUFDLE1BQU0sRUFBRTtBQUNqQyxNQUFNLE9BQU8sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUN6RSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7QUFDN0MsTUFBTSxJQUFJLE1BQU0sR0FBRyxNQUFNLElBQUksSUFBSSxHQUFHQSxXQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN0RSxNQUFNLE9BQU8sTUFBTSxLQUFLQSxXQUFTLEdBQUcsWUFBWSxHQUFHLE1BQU0sQ0FBQztBQUMxRCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUU7QUFDL0IsTUFBTSxPQUFPLE1BQU0sSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRTtBQUNqQyxNQUFNLE9BQU8sTUFBTSxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNoRSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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O0FBQ3RCLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUM7QUFDQSxNQUFNLFVBQVUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRTtBQUN0RCxRQUFRLGVBQWUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDckUsT0FBTyxDQUFDLENBQUM7QUFDVCxNQUFNLE9BQU8sTUFBTSxDQUFDO0FBQ3BCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQ3pDLE1BQU0sSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUM7QUFDQSxNQUFNLFVBQVUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRTtBQUN0RCxRQUFRLGVBQWUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDbkUsT0FBTyxDQUFDLENBQUM7QUFDVCxNQUFNLE9BQU8sTUFBTSxDQUFDO0FBQ3BCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLEtBQUssR0FBRyxjQUFjLENBQUMsU0FBUyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUNsRSxNQUFNLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQzFDLEtBQUssQ0FBQyxDQUFDO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxTQUFTLEdBQUcsY0FBYyxDQUFDLFNBQVMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO0FBQ2xGLE1BQU0sU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3RELEtBQUssQ0FBQyxDQUFDO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsU0FBUyxNQUFNLEVBQUUsS0FBSyxFQUFFO0FBQ2hELE1BQU0sSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQzFCLFFBQVEsT0FBTyxNQUFNLENBQUM7QUFDdEIsT0FBTztBQUNQLE1BQU0sSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO0FBQ3pCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxJQUFJLEVBQUU7QUFDN0MsUUFBUSxJQUFJLEdBQUcsUUFB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QUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3BFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO0FBQ3RELE1BQU0sVUFBVSxHQUFHLE9BQU8sVUFBVSxJQUFJLFVBQVUsR0FBRyxVQUFVLEdBQUdBLFdBQVMsQ0FBQztBQUM1RSxNQUFNLE9BQU8sTUFBTSxJQUFJLElBQUksR0FBRyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2hGLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLFNBQVMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO0FBQ3RELE1BQU0sSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztBQUNqQyxVQUFVLFNBQVMsR0FBRyxLQUFLLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4RTtBQUNBLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUMsTUFBTSxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUU7QUFDL0IsUUFBUSxJQUFJLElBQUksR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztBQUNoRCxRQUFRLElBQUksU0FBUyxFQUFFO0FBQ3ZCLFVBQVUsV0FBVyxHQUFHLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7QUFDOUMsU0FBUztBQUNULGFBQWEsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDbkMsVUFBVSxXQUFXLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDakYsU0FBUztBQUNULGFBQWE7QUFDYixVQUFVLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDM0IsU0FBUztBQUNULE9BQU87QUFDUCxNQUFNLENBQUMsU0FBUyxHQUFHLFNBQVMsR0FBRyxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7QUFDbEYsUUFBUSxPQUFPLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMzRCxPQUFPLENBQUMsQ0FBQztBQUNULE1BQU0sT0FBTyxXQUFXLENBQUM7QUFDekIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFO0FBQ2pDLE1BQU0sT0FBTyxNQUFNLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDM0MsTUFBTSxPQUFPLE1BQU0sSUFBSSxJQUFJLEdBQUcsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3ZGLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO0FBQzNELE1BQU0sVUFBVSxHQUFHLE9BQU8sVUFBVSxJQUFJLFVBQVUsR0FBRyxVQUFVLEdBQUdBLFdBQVMsQ0FBQztBQUM1RSxNQUFNLE9BQU8sTUFBTSxJQUFJLElBQUksR0FBRyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFB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QVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMzRDtBQUNBLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwQyxNQUFNLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUM7QUFDeEUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxRQUFRLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7QUFDOUM7QUFDQTtBQUNBO0FBQ0EsTUFBTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7QUFDN0M7QUFDQSxNQUFNLElBQUksS0FBSyxJQUFJLGNBQWMs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V0FBVyxLQUFLLENBQUNBLFdBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUMzQyxPQUFPLENBQUMsQ0FBQztBQUNUO0FBQ0E7QUFDQTtBQUNBLE1BQU0sTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDN0IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUMzQixRQUFRLE1BQU0sTUFBTSxDQUFDO0FBQ3JCLE9BQU87QUFDUCxNQUFNLE9BQU8sTUFBTSxDQUFDO0FBQ3BCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxPQUFPLENBQUMsS0FBSyxFQUFFO0FBQzVCLE1BQU0sT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDM0MsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDNUIsTUFBTSxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUMzQyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDeEMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hDLE1BQU0sSUFBSSxNQUFNLEtBQUssS0FB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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFO0FBQ3pCLE1BQU0sSUFBSSxNQUFNLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU07QUFDbkQsVUFBVSxVQUFVLEdBQUcsV0FBVyxFQUFFLENBQUM7QUFDckM7QUFDQSxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFTLElBQUksRUFBRTtBQUM1RCxRQUFRLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFO0FBQzFDLFVBQVUsTUFBTSxJQUFJLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUMvQyxTQUFTO0FBQ1QsUUFBUSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlDLE9BQU8sQ0FBQyxDQUFDO0FBQ1Q7QUFDQSxNQUFNLE9BQU8sUUFBUSxDQUFDLFNBQVMsSUFBSSxFQUFFO0FBQ3JDLFFBQVEsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkIsUUFBUSxPQUFPLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRTtBQUNqQyxVQUFVLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsQyxVQUFVLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7QUFDMUMsWUFBWSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzlDLFdBQVc7QUFDWCxTQUFTO0FBQ1QsT0FBTyxDQUFDLENBQUM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsUUFBUSxDQUFDLE1BQU0sRUFBRTtBQUM5QixNQUFNLE9BQU8sWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztBQUM5RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxRQUFRLENBQUMsS0FBSyxFQUFFO0FBQzdCLE1BQU0sT0FBTyxXQUFXO0FBQ3hCLFFBQVEsT0FBTyxLQUFLLENBQUM7QUFDckIsT0FBTyxDQUFDO0FBQ1IsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRTtBQUM1QyxNQUFNLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztBQUN2RSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxJQUFJLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBTSxPQUFPLEtBQUssQ0FBQztBQUNuQixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsUUFBUSxDQUFDLElBQUksRUFBRTtBQUM1QixNQUFNLE9BQU8sWUFBWSxDQUFDLE9BQU8sSUFBSSxJQUFJLFVBQVUsR0FBRyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0FBQy9GLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsT0FBTyxDQUFDLE1BQU0sRUFBRTtBQUM3QixNQUFNLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztBQUM3RCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsZUFBZSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDN0MsTUFBTSxPQUFPLG1CQUFtQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7QUFDN0UsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsU0FBUyxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQy9DLE1BQU0sT0FBTyxTQUFTLE1BQU0sRUFBRTtBQUM5QixRQUFRLE9BQU8sVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDOUMsT0FBTyxDQUFDO0FBQ1IsS0FBSyxDQUFDLENBQUM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUU7QUFDbkQsTUFBTSxPQUFPLFNBQVMsSUFBSSxFQUFFO0FBQzVCLFFBQVEsT0FBTyxVQUFV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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksUUFBUSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFFBQVEsQ0FBQyxJQUFJLEVBQUU7QUFDNUIsTUFBTSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUUsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDaEMsTUFBTSxPQUFPLFNBQVMsSUFBSSxFQUFFO0FBQzVCLFFBQVEsT0FBTyxNQUFNLElBQUksSUFBSSxHQUFHQSxXQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNsRSxPQUFPLENBQUM7QUFDUixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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LFNBQVMsTUFBTSxDQUFDLEtBQUssRUFBRTtBQUMzQixNQUFNLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzFCLFFBQVEsT0FBTyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3RDLE9BQU87QUFDUCxNQUFNLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xGLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFNBQVMsUUFBUSxDQUFDLE1BQU0sRUFBRTtBQUM5QixNQUFNLElBQUksRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDO0FBQzNCLE1BQU0sT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ25DLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksR0FBRyxHQUFHLG1CQUFtQixDQUFDLFNBQVMsTUFBTSxFQUFFLE1BQU0sRUFBRTtBQUMzRCxNQUFNLE9BQU8sTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUM3QixLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLFFBQVEsRUFBRSxPQUFPLEVBQUU7QUFDakUsTUFBTSxPQUFPLFFBQVEsR0FBRyxPQUFPLENBQUM7QUFDaEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksS0FBSyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFFO0FBQ3hCLE1BQU0sT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTTtBQUNuQyxVQUFVLFlBQVksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQztBQUMvQyxVQUFVQSxXQUFTLENBQUM7QUFDcEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtBQUNwQyxNQUFNLE9BQU8sQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU07QUFDbkMsVUFBVSxZQUFZLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDO0FBQy9ELFVBQVVBLFdBQVMsQ0FBQztBQUNwQixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLElBQUksQ0FBQyxLQUFLLEVBQUU7QUFDekIsTUFBTSxPQUFPLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDdkMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksU0FBUyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtBQUNyQyxNQUFNLE9BQU8sUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkQsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUU7QUFDeEIsTUFBTSxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNO0FBQ25DLFVBQVUsWUFBWSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDO0FBQy9DLFVBQVVBLFdBQVMsQ0FBQztBQUNwQixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO0FBQ3BDLE1BQU0sT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENB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QixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixhQUFhO0FBQ2IsU0FBUztBQUNULFFBQVE7QUFDUixZQUFZLElBQUksRUFBRSxZQUFZO0FBQzlCLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMzRyxTQUFTO0FBQ1QsUUFBUTtBQUNSLFlBQVksSUFBSSxFQUFFLGFBQWE7QUFDL0IsWUFBWSxHQUFHLEVBQUU7QUFDakIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7QUFDeEIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7QUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFnQixDQUFDLEtBQUssQ0FBQztBQUN2QixhQUFh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SUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQztBQUNwQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7QUFDcEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3BCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7QUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztBQUN4QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDO0FBQ3hCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDeEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDekIsSUFBSSxDQUFDLE1BQU0sRUFB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 diff --git a/.obsidian/plugins/table-editor-obsidian/manifest.json b/.obsidian/plugins/table-editor-obsidian/manifest.json index ff20147..efde080 100644 --- a/.obsidian/plugins/table-editor-obsidian/manifest.json +++ b/.obsidian/plugins/table-editor-obsidian/manifest.json @@ -6,7 +6,12 @@ "description": "Improved table navigation, formatting, manipulation, and formulas", "isDesktopOnly": false, "minAppVersion": "1.0.0", - "version": "0.18.1", + "version": "0.19.1", "js": "main.js", + "fundingUrl": { + "Github Sponsor": "https://github.com/sponsors/tgrosinger", + "Buy me a Coffee": "https://buymeacoffee.com/tgrosinger", + "Paypal": "https://paypal.me/tgrosinger" + }, "donation": "https://buymeacoffee.com/tgrosinger" } \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 2a3e829..710bd25 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -161,9 +161,9 @@ "daily-notes:Open today's daily note": false, "templates:Insert template": false, "command-palette:Open command palette": false, - "table-editor-obsidian:Advanced Tables Toolbar": false, "omnisearch:Omnisearch": false, - "obsidian-excalidraw-plugin:Create new drawing": false + "obsidian-excalidraw-plugin:Create new drawing": false, + "table-editor-obsidian:Advanced Tables Toolbar": false } }, "active": "d3ce90df51bd874b",