printer-pdf 5.2.4 → 5.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +1 -1
- package/package.json +48 -48
- package/printer.jar +0 -0
- package/types/index.js +1 -1
package/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(global,()=>(()=>{"use strict";var e={574(e,t,n){var r,o,a,i,c,u,s,l;n.d(t,{PrinterActions:()=>l}),function(e){e.ISO_A0="iso-a0",e.ISO_A1="iso-a1",e.ISO_A2="iso-a2",e.ISO_A3="iso-a3",e.ISO_A4="iso-a4",e.ISO_A5="iso-a5",e.ISO_A6="iso-a6",e.ISO_A7="iso-a7",e.ISO_A8="iso-a8",e.ISO_A9="iso-a9",e.ISO_A10="iso-a10",e.ISO_B0="iso-b0",e.ISO_B1="iso-b1",e.ISO_B2="iso-b2",e.ISO_B3="iso-b3",e.ISO_B4="iso-b4",e.ISO_B5="iso-b5",e.ISO_B6="iso-b6",e.ISO_B7="iso-b7",e.ISO_B8="iso-b8",e.ISO_B9="iso-b9",e.ISO_B10="iso-b10",e.JIS_B0="jis-b0",e.JIS_B1="jis-b1",e.JIS_B2="jis-b2",e.JIS_B3="jis-b3",e.JIS_B4="jis-b4",e.JIS_B5="jis-b5",e.JIS_B6="jis-b6",e.JIS_B7="jis-b7",e.JIS_B8="jis-b8",e.JIS_B9="jis-b9",e.JIS_B10="jis-b10",e.ISO_C0="iso-c0",e.ISO_C1="iso-c1",e.ISO_C2="iso-c2",e.ISO_C3="iso-c3",e.ISO_C4="iso-c4",e.ISO_C5="iso-c5",e.ISO_C6="iso-c6",e.NA_LETTER="na-letter",e.NA_LEGAL="na-legal",e.EXECUTIVE="executive",e.LEDGER="ledger",e.TABLOID="tabloid",e.INVOICE="invoice",e.FOLIO="folio",e.QUARTO="quarto",e.JAPANESE_POSTCARD="japanese-postcard",e.JAPANESE_DOUBLE_POSTCARD="oufuko-postcard",e.A="a",e.B="b",e.C="c",e.D="d",e.E="e",e.ISO_DESIGNATED_LONG="iso-designated-long",e.ITALY_ENVELOPE="italian-envelope",e.MONARCH_ENVELOPE="monarch-envelope",e.PERSONAL_ENVELOPE="personal-envelope",e.NA_NUMBER_9_ENVELOPE="na-number-9-envelope",e.NA_NUMBER_10_ENVELOPE="na-number-10-envelope",e.NA_NUMBER_11_ENVELOPE="na-number-11-envelope",e.NA_NUMBER_12_ENVELOPE="na-number-12-envelope",e.NA_NUMBER_14_ENVELOPE="na-number-14-envelope",e.NA_6X9_ENVELOPE="na-6x9-envelope",e.NA_7X9_ENVELOPE="na-7x9-envelope",e.NA_9X11_ENVELOPE="na-9x11-envelope",e.NA_9X12_ENVELOPE="na-9x12-envelope",e.NA_10X13_ENVELOPE="na-10x13-envelope",e.NA_10X14_ENVELOPE="na-10x14-envelope",e.NA_10X15_ENVELOPE="na-10x15-envelope",e.NA_5X7="na-5x7",e.NA_8X10="na-8x10"}(r||(r={})),function(e){e.MONOCHROME="monochrome",e.COLOR="color"}(o||(o={})),function(e){e.ONE_SIDED="one-sided",e.TWO_SIDED_LONG_EDGE="two-sided-long-edge",e.TWO_SIDED_SHORT_EDGE="two-sided-short-edge"}(a||(a={})),function(e){e.TOP="top",e.MIDDLE="middle",e.BOTTOM="bottom",e.ENVELOPE="envelope",e.MANUAL="manual",e.LARGE_CAPACITY="large-capacity",e.MAIN="main",e.SIDE="side"}(i||(i={})),function(e){e.PORTRAIT="portrait",e.LANDSCAPE="landscape",e.REVERSE_LANDSCAPE="reverseLandscape",e.REVERSE_PORTRAIT="reversePortrait"}(c||(c={})),function(e){e.ACTUAL_SIZE="actual-size",e.SHRINK_TO_FIT="shrink-to-fits",e.STRETCH_TO_FIT="stretch-to-fits",e.SCALE_TO_FIT="scale-to-fits"}(u||(u={})),function(e){e.ALL="all",e.ODD="odd",e.EVEN="even"}(s||(s={})),function(e){e.DEFAULT="default",e.PRINTERS="printers",e.SIZEINFO="sizeInfo",e.SIZEINFOS="sizeInfos",e.PRINT="print"}(l||(l={}))}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,n),a.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};n.r(r),n.d(r,{getDefaultPrinter:()=>m,getPaperSizeInfo:()=>j,getPaperSizeInfoAll:()=>B,getPrinters:()=>g,print:()=>P});const o=require("fs");var a=n.n(o),i=n(574);const c=require("node:path"),u=require("node:process"),s=""in u.versions&&u.argv.some(e=>e?.includes("app.asar")),l=(u.versions.electron,e=>s?e.replaceAll("app.asar","app.asar.unpacked"):e),f=require("node:os"),p=require("find-java-home");var b=n.n(p);const v=require("java-caller");var h=function(e,t,n,r){return new(n||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())})},d=function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}},E=(0,c.join)(__dirname,"printer.jar"),y=l(E),_=["-Dfile.encoding=UTF-8"];"linux"==f.platform()&&_.push("-Djavax.accessibility.assistive_technologies=' '");var O="".concat(y);function S(){return h(this,void 0,void 0,function(){var e,t,n;return d(this,function(r){switch(r.label){case 0:return[4,new Promise(function(e,t){b()({allowJre:!0},function(n,r){n||!r?t(n||new Error("Java Home not found")):e(r)})})];case 1:return e=r.sent(),t={jar:O,mainClass:"com.tk.lyin.Printers",additionalJavaArgs:_},e&&(n="win32"===f.platform()?"java.exe":"java",t.javaExecutable=l((0,c.join)(e,"bin",n))),[2,new v.JavaCaller(t)]}})})}var I=function(e){return h(void 0,void 0,void 0,function(){var t,n,r,o;return d(this,function(a){switch(a.label){case 0:return(t=[]).push(e.arg),(n=e.printerName)&&t.push(n),[4,S()];case 1:return[4,a.sent().run(t)];case 2:return(r=a.sent()).status,o=r.stdout,r.stderr,[2,o?o.trim():"{}"]}})})},w=function(e,t){return h(void 0,void 0,void 0,function(){var n,r,o;return d(this,function(a){switch(a.label){case 0:return[4,S()];case 1:return n=a.sent(),r=Buffer.from(JSON.stringify(t).trim()).toString("base64"),[4,n.run([e.arg,r],{windowsHide:!1})];case 2:return(o=a.sent()).status,o.stdout,o.stderr,[2]}})})},A=function(e,t,n,r){return new(n||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())})},N=function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}};function P(e){return A(this,void 0,void 0,function(){var t;return N(this,function(n){switch(n.label){case 0:if(!(t=e.pdf))throw"No PDF specified";if(!a().existsSync(t))throw"No such file";return[4,w({arg:i.PrinterActions.PRINT},e)];case 1:return n.sent(),[2]}})})}const g=function(){return e=this,t=void 0,r=function(){var e;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}}(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,I({arg:i.PrinterActions.PRINTERS})];case 1:return e=t.sent(),[2,JSON.parse(e)];case 2:throw t.sent();case 3:return[2]}})},new((n=void 0)||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())});var e,t,n,r};const m=function(){return e=this,t=void 0,r=function(){var e;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}}(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,I({arg:i.PrinterActions.DEFAULT})];case 1:return e=t.sent(),[2,JSON.parse(e)];case 2:throw t.sent();case 3:return[2]}})},new((n=void 0)||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())});var e,t,n,r};var x=function(e,t,n,r){return new(n||(n=Promise))(function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function c(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,c)}u((r=r.apply(e,t||[])).next())})},T=function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}},L=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},j=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return x(void 0,L([],e,!0),void 0,function(e){var t;return void 0===e&&(e={printer:""}),T(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,I({arg:i.PrinterActions.SIZEINFO,printerName:e.printer})];case 1:return t=n.sent(),[2,JSON.parse(t)];case 2:throw n.sent();case 3:return[2]}})})},B=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return x(void 0,L([],e,!0),void 0,function(e){var t;return void 0===e&&(e={}),T(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,I({arg:i.PrinterActions.SIZEINFOS})];case 1:return t=e.sent(),[2,JSON.parse(t)];case 2:throw e.sent();case 3:return[2]}})})};return r})());
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0pDLEVBQUssRUFBR0EsRUFBS1AsVUFBVWxELE9BQVF5RCxJQUNwQ0QsRUFBT0MsR0FBTVAsVUFBVU8sR0FFM0IsT0FBTyxPQUFlLEVBQUdWLEVBQWMsR0FBSVMsR0FBUSxRQUFZLEVBQUcsU0FBVUUsR0FDeEUsSUFBSWxGLEVBRUosWUFEcUIsSUFBakJrRixJQUFzQkEsRUFBVSxDQUFDLEdBQzlCLEVBQVkvRCxLQUFNLFNBQVVpQixHQUMvQixPQUFRQSxFQUFHMUIsT0FDUCxLQUFLLEVBRUQsT0FEQTBCLEVBQUd4QixLQUFLYSxLQUFLLENBQUMsRUFBRyxFQUFHLENBQUUsSUFDZixDQUFDLEVBQWFxQixFQUFJLENBQ2pCTSxJQUFLLEVBQUFyRyxlQUFlc0ksYUFFaEMsS0FBSyxFQUVELE9BREFyRixFQUFTb0MsRUFBR3pCLE9BQ0wsQ0FBQyxFQUFjbUQsS0FBS08sTUFBTXJFLElBQ3JDLEtBQUssRUFFRCxNQURVb0MsRUFBR3pCLE9BRWpCLEtBQUssRUFBRyxNQUFPLENBQUMsR0FFeEIsRUFDSixFQUNKLEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvLi9zcmMvdHlwZXMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL3ByaW50ZXItcGRmL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwiZnNcIiIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwibm9kZTpwYXRoXCIiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcIm5vZGU6cHJvY2Vzc1wiIiwid2VicGFjazovL3ByaW50ZXItcGRmLy4vbm9kZV9tb2R1bGVzL2VsZWN0cm9uLXV0aWwvZGlzdHJpYnV0aW9uL25vZGUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcIm5vZGU6b3NcIiIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi9leHRlcm5hbCBjb21tb25qcyBcImZpbmQtamF2YS1ob21lXCIiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvZXh0ZXJuYWwgY29tbW9uanMgXCJqYXZhLWNhbGxlclwiIiwid2VicGFjazovL3ByaW50ZXItcGRmLy4vc3JjL3V0aWxzL2phdmEtdXRpbC50cyIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi8uL3NyYy9wcmludC9wcmludC50cyIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi8uL3NyYy9nZXQtcHJpbnRlcnMvZ2V0LXByaW50ZXJzLnRzIiwid2VicGFjazovL3ByaW50ZXItcGRmLy4vc3JjL2dldC1kZWZhdWx0LXByaW50ZXIvZ2V0LWRlZmF1bHQtcHJpbnRlci50cyIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi8uL3NyYy9nZXQtcGFwZXItc2l6ZS9nZXQtcGFwZXItc2l6ZS1pbmZvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSB7XG5cdFx0dmFyIGEgPSBmYWN0b3J5KCk7XG5cdFx0Zm9yKHZhciBpIGluIGEpICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgPyBleHBvcnRzIDogcm9vdClbaV0gPSBhW2ldO1xuXHR9XG59KShnbG9iYWwsICgpID0+IHtcbnJldHVybiAiLCIvLyDnurjlvKDlpKflsI9cbmV4cG9ydCB2YXIgTWVkaWFTaXplTmFtZTtcbihmdW5jdGlvbiAoTWVkaWFTaXplTmFtZSkge1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTBcIl0gPSBcImlzby1hMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTFcIl0gPSBcImlzby1hMVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTJcIl0gPSBcImlzby1hMlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTNcIl0gPSBcImlzby1hM1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTRcIl0gPSBcImlzby1hNFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTVcIl0gPSBcImlzby1hNVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTZcIl0gPSBcImlzby1hNlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTdcIl0gPSBcImlzby1hN1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQThcIl0gPSBcImlzby1hOFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTlcIl0gPSBcImlzby1hOVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTEwXCJdID0gXCJpc28tYTEwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CMFwiXSA9IFwiaXNvLWIwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CMVwiXSA9IFwiaXNvLWIxXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CMlwiXSA9IFwiaXNvLWIyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CM1wiXSA9IFwiaXNvLWIzXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CNFwiXSA9IFwiaXNvLWI0XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CNVwiXSA9IFwiaXNvLWI1XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CNlwiXSA9IFwiaXNvLWI2XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CN1wiXSA9IFwiaXNvLWI3XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19COFwiXSA9IFwiaXNvLWI4XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19COVwiXSA9IFwiaXNvLWI5XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CMTBcIl0gPSBcImlzby1iMTBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0IwXCJdID0gXCJqaXMtYjBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0IxXCJdID0gXCJqaXMtYjFcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0IyXCJdID0gXCJqaXMtYjJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0IzXCJdID0gXCJqaXMtYjNcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0I0XCJdID0gXCJqaXMtYjRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0I1XCJdID0gXCJqaXMtYjVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0I2XCJdID0gXCJqaXMtYjZcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0I3XCJdID0gXCJqaXMtYjdcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0I4XCJdID0gXCJqaXMtYjhcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0I5XCJdID0gXCJqaXMtYjlcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0IxMFwiXSA9IFwiamlzLWIxMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzBcIl0gPSBcImlzby1jMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzFcIl0gPSBcImlzby1jMVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzJcIl0gPSBcImlzby1jMlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzNcIl0gPSBcImlzby1jM1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzRcIl0gPSBcImlzby1jNFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzVcIl0gPSBcImlzby1jNVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzZcIl0gPSBcImlzby1jNlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9MRVRURVJcIl0gPSBcIm5hLWxldHRlclwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9MRUdBTFwiXSA9IFwibmEtbGVnYWxcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiRVhFQ1VUSVZFXCJdID0gXCJleGVjdXRpdmVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTEVER0VSXCJdID0gXCJsZWRnZXJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiVEFCTE9JRFwiXSA9IFwidGFibG9pZFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJTlZPSUNFXCJdID0gXCJpbnZvaWNlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkZPTElPXCJdID0gXCJmb2xpb1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJRVUFSVE9cIl0gPSBcInF1YXJ0b1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKQVBBTkVTRV9QT1NUQ0FSRFwiXSA9IFwiamFwYW5lc2UtcG9zdGNhcmRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSkFQQU5FU0VfRE9VQkxFX1BPU1RDQVJEXCJdID0gXCJvdWZ1a28tcG9zdGNhcmRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiQVwiXSA9IFwiYVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJCXCJdID0gXCJiXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkNcIl0gPSBcImNcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiRFwiXSA9IFwiZFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJFXCJdID0gXCJlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19ERVNJR05BVEVEX0xPTkdcIl0gPSBcImlzby1kZXNpZ25hdGVkLWxvbmdcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVRBTFlfRU5WRUxPUEVcIl0gPSBcIml0YWxpYW4tZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTU9OQVJDSF9FTlZFTE9QRVwiXSA9IFwibW9uYXJjaC1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJQRVJTT05BTF9FTlZFTE9QRVwiXSA9IFwicGVyc29uYWwtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTlVNQkVSXzlfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci05LWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX05VTUJFUl8xMF9FTlZFTE9QRVwiXSA9IFwibmEtbnVtYmVyLTEwLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX05VTUJFUl8xMV9FTlZFTE9QRVwiXSA9IFwibmEtbnVtYmVyLTExLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX05VTUJFUl8xMl9FTlZFTE9QRVwiXSA9IFwibmEtbnVtYmVyLTEyLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX05VTUJFUl8xNF9FTlZFTE9QRVwiXSA9IFwibmEtbnVtYmVyLTE0LWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzZYOV9FTlZFTE9QRVwiXSA9IFwibmEtNng5LWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzdYOV9FTlZFTE9QRVwiXSA9IFwibmEtN3g5LWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzlYMTFfRU5WRUxPUEVcIl0gPSBcIm5hLTl4MTEtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfOVgxMl9FTlZFTE9QRVwiXSA9IFwibmEtOXgxMi1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV8xMFgxM19FTlZFTE9QRVwiXSA9IFwibmEtMTB4MTMtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfMTBYMTRfRU5WRUxPUEVcIl0gPSBcIm5hLTEweDE0LWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzEwWDE1X0VOVkVMT1BFXCJdID0gXCJuYS0xMHgxNS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV81WDdcIl0gPSBcIm5hLTV4N1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV84WDEwXCJdID0gXCJuYS04eDEwXCI7XG59KShNZWRpYVNpemVOYW1lIHx8IChNZWRpYVNpemVOYW1lID0ge30pKTtcbi8vIOiuvue9ruiJsuW9qVxuZXhwb3J0IHZhciBDaHJvbWF0aWNpdHk7XG4oZnVuY3Rpb24gKENocm9tYXRpY2l0eSkge1xuICAgIENocm9tYXRpY2l0eVtcIk1PTk9DSFJPTUVcIl0gPSBcIm1vbm9jaHJvbWVcIjtcbiAgICBDaHJvbWF0aWNpdHlbXCJDT0xPUlwiXSA9IFwiY29sb3JcIjtcbn0pKENocm9tYXRpY2l0eSB8fCAoQ2hyb21hdGljaXR5ID0ge30pKTtcbi8vIOiuvue9ruWPjOmdouaJk+WNsFxuZXhwb3J0IHZhciBTaWRlcztcbihmdW5jdGlvbiAoU2lkZXMpIHtcbiAgICBTaWRlc1tcIk9ORV9TSURFRFwiXSA9IFwib25lLXNpZGVkXCI7XG4gICAgU2lkZXNbXCJUV09fU0lERURfTE9OR19FREdFXCJdID0gXCJ0d28tc2lkZWQtbG9uZy1lZGdlXCI7XG4gICAgU2lkZXNbXCJUV09fU0lERURfU0hPUlRfRURHRVwiXSA9IFwidHdvLXNpZGVkLXNob3J0LWVkZ2VcIjtcbn0pKFNpZGVzIHx8IChTaWRlcyA9IHt9KSk7XG4vLyDloqjnm5LnsbvlnotcbmV4cG9ydCB2YXIgTWVkaWFUcmF5O1xuKGZ1bmN0aW9uIChNZWRpYVRyYXkpIHtcbiAgICBNZWRpYVRyYXlbXCJUT1BcIl0gPSBcInRvcFwiO1xuICAgIE1lZGlhVHJheVtcIk1JRERMRVwiXSA9IFwibWlkZGxlXCI7XG4gICAgTWVkaWFUcmF5W1wiQk9UVE9NXCJdID0gXCJib3R0b21cIjtcbiAgICBNZWRpYVRyYXlbXCJFTlZFTE9QRVwiXSA9IFwiZW52ZWxvcGVcIjtcbiAgICBNZWRpYVRyYXlbXCJNQU5VQUxcIl0gPSBcIm1hbnVhbFwiO1xuICAgIE1lZGlhVHJheVtcIkxBUkdFX0NBUEFDSVRZXCJdID0gXCJsYXJnZS1jYXBhY2l0eVwiO1xuICAgIE1lZGlhVHJheVtcIk1BSU5cIl0gPSBcIm1haW5cIjtcbiAgICBNZWRpYVRyYXlbXCJTSURFXCJdID0gXCJzaWRlXCI7XG59KShNZWRpYVRyYXkgfHwgKE1lZGlhVHJheSA9IHt9KSk7XG4vLyDorr7nva7miZPljbDmnLrmlrnlkJFcbmV4cG9ydCB2YXIgT3JpZW50YXRpb25SZXF1ZXN0ZWQ7XG4oZnVuY3Rpb24gKE9yaWVudGF0aW9uUmVxdWVzdGVkKSB7XG4gICAgT3JpZW50YXRpb25SZXF1ZXN0ZWRbXCJQT1JUUkFJVFwiXSA9IFwicG9ydHJhaXRcIjtcbiAgICBPcmllbnRhdGlvblJlcXVlc3RlZFtcIkxBTkRTQ0FQRVwiXSA9IFwibGFuZHNjYXBlXCI7XG4gICAgT3JpZW50YXRpb25SZXF1ZXN0ZWRbXCJSRVZFUlNFX0xBTkRTQ0FQRVwiXSA9IFwicmV2ZXJzZUxhbmRzY2FwZVwiO1xuICAgIE9yaWVudGF0aW9uUmVxdWVzdGVkW1wiUkVWRVJTRV9QT1JUUkFJVFwiXSA9IFwicmV2ZXJzZVBvcnRyYWl0XCI7XG59KShPcmllbnRhdGlvblJlcXVlc3RlZCB8fCAoT3JpZW50YXRpb25SZXF1ZXN0ZWQgPSB7fSkpO1xuZXhwb3J0IHZhciBTY2FsaW5nO1xuKGZ1bmN0aW9uIChTY2FsaW5nKSB7XG4gICAgU2NhbGluZ1tcIkFDVFVBTF9TSVpFXCJdID0gXCJhY3R1YWwtc2l6ZVwiO1xuICAgIFNjYWxpbmdbXCJTSFJJTktfVE9fRklUXCJdID0gXCJzaHJpbmstdG8tZml0c1wiO1xuICAgIFNjYWxpbmdbXCJTVFJFVENIX1RPX0ZJVFwiXSA9IFwic3RyZXRjaC10by1maXRzXCI7XG4gICAgU2NhbGluZ1tcIlNDQUxFX1RPX0ZJVFwiXSA9IFwic2NhbGUtdG8tZml0c1wiO1xufSkoU2NhbGluZyB8fCAoU2NhbGluZyA9IHt9KSk7XG5leHBvcnQgdmFyIFN1YnNldDtcbihmdW5jdGlvbiAoU3Vic2V0KSB7XG4gICAgU3Vic2V0W1wiQUxMXCJdID0gXCJhbGxcIjtcbiAgICBTdWJzZXRbXCJPRERcIl0gPSBcIm9kZFwiO1xuICAgIFN1YnNldFtcIkVWRU5cIl0gPSBcImV2ZW5cIjtcbn0pKFN1YnNldCB8fCAoU3Vic2V0ID0ge30pKTtcbmV4cG9ydCB2YXIgUHJpbnRlckFjdGlvbnM7XG4oZnVuY3Rpb24gKFByaW50ZXJBY3Rpb25zKSB7XG4gICAgUHJpbnRlckFjdGlvbnNbXCJERUZBVUxUXCJdID0gXCJkZWZhdWx0XCI7XG4gICAgUHJpbnRlckFjdGlvbnNbXCJQUklOVEVSU1wiXSA9IFwicHJpbnRlcnNcIjtcbiAgICBQcmludGVyQWN0aW9uc1tcIlNJWkVJTkZPXCJdID0gXCJzaXplSW5mb1wiO1xuICAgIFByaW50ZXJBY3Rpb25zW1wiU0laRUlORk9TXCJdID0gXCJzaXplSW5mb3NcIjtcbiAgICBQcmludGVyQWN0aW9uc1tcIlBSSU5UXCJdID0gXCJwcmludFwiO1xufSkoUHJpbnRlckFjdGlvbnMgfHwgKFByaW50ZXJBY3Rpb25zID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFXNWtaWGd1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk5emNtTXZkSGx3WlhNdmFXNWtaWGd1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQmVVSkJMRTlCUVU4N1FVRkRVQ3hOUVVGTkxFTkJRVTRzU1VGQldTeGhRVEJGV0R0QlFURkZSQ3hYUVVGWkxHRkJRV0U3U1VGRGRrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNiME5CUVcxQ0xFTkJRVUU3U1VGRGJrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNiME5CUVcxQ0xFTkJRVUU3U1VGRGJrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNiME5CUVcxQ0xFTkJRVUU3U1VGRGJrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNkME5CUVhWQ0xFTkJRVUU3U1VGRGRrSXNjME5CUVhGQ0xFTkJRVUU3U1VGRGNrSXNkME5CUVhWQ0xFTkJRVUU3U1VGRGRrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNiME5CUVcxQ0xFTkJRVUU3U1VGRGJrSXNiME5CUVcxQ0xFTkJRVUU3U1VGRGJrSXNaME5CUVdVc1EwRkJRVHRKUVVObUxHdERRVUZwUWl4RFFVRkJPMGxCUTJwQ0xIZEVRVUYxUXl4RFFVRkJPMGxCUTNaRExEWkVRVUUwUXl4RFFVRkJPMGxCUXpWRExIZENRVUZQTEVOQlFVRTdTVUZEVUN4M1FrRkJUeXhEUVVGQk8wbEJRMUFzZDBKQlFVOHNRMEZCUVR0SlFVTlFMSGRDUVVGUExFTkJRVUU3U1VGRFVDeDNRa0ZCVHl4RFFVRkJPMGxCUTFBc05FUkJRVEpETEVOQlFVRTdTVUZETTBNc2IwUkJRVzFETEVOQlFVRTdTVUZEYmtNc2MwUkJRWEZETEVOQlFVRTdTVUZEY2tNc2QwUkJRWFZETEVOQlFVRTdTVUZEZGtNc09FUkJRVFpETEVOQlFVRTdTVUZETjBNc1owVkJRU3RETEVOQlFVRTdTVUZETDBNc1owVkJRU3RETEVOQlFVRTdTVUZETDBNc1owVkJRU3RETEVOQlFVRTdTVUZETDBNc1owVkJRU3RETEVOQlFVRTdTVUZETDBNc2IwUkJRVzFETEVOQlFVRTdTVUZEYmtNc2IwUkJRVzFETEVOQlFVRTdTVUZEYmtNc2MwUkJRWEZETEVOQlFVRTdTVUZEY2tNc2MwUkJRWEZETEVOQlFVRTdTVUZEY2tNc2QwUkJRWFZETEVOQlFVRTdTVUZEZGtNc2QwUkJRWFZETEVOQlFVRTdTVUZEZGtNc2QwUkJRWFZETEVOQlFVRTdTVUZEZGtNc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2IwTkJRVzFDTEVOQlFVRTdRVUZEY2tJc1EwRkJReXhGUVRGRlZ5eGhRVUZoTEV0QlFXSXNZVUZCWVN4UlFUQkZlRUk3UVVGRlJDeFBRVUZQTzBGQlExQXNUVUZCVFN4RFFVRk9MRWxCUVZrc1dVRkhXRHRCUVVoRUxGZEJRVmtzV1VGQldUdEpRVU4wUWl4NVEwRkJlVUlzUTBGQlFUdEpRVU42UWl3clFrRkJaU3hEUVVGQk8wRkJRMnBDTEVOQlFVTXNSVUZJVnl4WlFVRlpMRXRCUVZvc1dVRkJXU3hSUVVkMlFqdEJRVVZFTEZOQlFWTTdRVUZEVkN4TlFVRk5MRU5CUVU0c1NVRkJXU3hMUVVsWU8wRkJTa1FzVjBGQldTeExRVUZMTzBsQlEyWXNaME5CUVhWQ0xFTkJRVUU3U1VGRGRrSXNiMFJCUVRKRExFTkJRVUU3U1VGRE0wTXNjMFJCUVRaRExFTkJRVUU3UVVGREwwTXNRMEZCUXl4RlFVcFhMRXRCUVVzc1MwRkJUQ3hMUVVGTExGRkJTV2hDTzBGQlJVUXNUMEZCVHp0QlFVTlFMRTFCUVUwc1EwRkJUaXhKUVVGWkxGTkJVMWc3UVVGVVJDeFhRVUZaTEZOQlFWTTdTVUZEYmtJc2QwSkJRVmNzUTBGQlFUdEpRVU5ZTERoQ1FVRnBRaXhEUVVGQk8wbEJRMnBDTERoQ1FVRnBRaXhEUVVGQk8wbEJRMnBDTEd0RFFVRnhRaXhEUVVGQk8wbEJRM0pDTERoQ1FVRnBRaXhEUVVGQk8wbEJRMnBDTERoRFFVRnBReXhEUVVGQk8wbEJRMnBETERCQ1FVRmhMRU5CUVVFN1NVRkRZaXd3UWtGQllTeERRVUZCTzBGQlEyWXNRMEZCUXl4RlFWUlhMRk5CUVZNc1MwRkJWQ3hUUVVGVExGRkJVM0JDTzBGQlJVUXNWVUZCVlR0QlFVTldMRTFCUVUwc1EwRkJUaXhKUVVGWkxHOUNRVXRZTzBGQlRFUXNWMEZCV1N4dlFrRkJiMEk3U1VGRE9VSXNOa05CUVhGQ0xFTkJRVUU3U1VGRGNrSXNLME5CUVhWQ0xFTkJRVUU3U1VGRGRrSXNPRVJCUVhORExFTkJRVUU3U1VGRGRFTXNORVJCUVc5RExFTkJRVUU3UVVGRGRFTXNRMEZCUXl4RlFVeFhMRzlDUVVGdlFpeExRVUZ3UWl4dlFrRkJiMElzVVVGTEwwSTdRVUZGUkN4TlFVRk5MRU5CUVU0c1NVRkJXU3hQUVV0WU8wRkJURVFzVjBGQldTeFBRVUZQTzBsQlEycENMSE5EUVVFeVFpeERRVUZCTzBsQlF6TkNMREpEUVVGblF5eERRVUZCTzBsQlEyaERMRFpEUVVGclF5eERRVUZCTzBsQlEyeERMSGxEUVVFNFFpeERRVUZCTzBGQlEyaERMRU5CUVVNc1JVRk1WeXhQUVVGUExFdEJRVkFzVDBGQlR5eFJRVXRzUWp0QlFVVkVMRTFCUVUwc1EwRkJUaXhKUVVGWkxFMUJTVmc3UVVGS1JDeFhRVUZaTEUxQlFVMDdTVUZEYUVJc2NVSkJRVmNzUTBGQlFUdEpRVU5ZTEhGQ1FVRlhMRU5CUVVFN1NVRkRXQ3gxUWtGQllTeERRVUZCTzBGQlEyWXNRMEZCUXl4RlFVcFhMRTFCUVUwc1MwRkJUaXhOUVVGTkxGRkJTV3BDTzBGQlJVUXNUVUZCVFN4RFFVRk9MRWxCUVZrc1kwRk5XRHRCUVU1RUxGZEJRVmtzWTBGQll6dEpRVU40UWl4eFEwRkJiVUlzUTBGQlFUdEpRVU51UWl4MVEwRkJjVUlzUTBGQlFUdEpRVU55UWl4MVEwRkJjVUlzUTBGQlFUdEpRVU55UWl4NVEwRkJkVUlzUTBGQlFUdEpRVU4yUWl4cFEwRkJaU3hEUVVGQk8wRkJRMnBDTEVOQlFVTXNSVUZPVnl4alFVRmpMRXRCUVdRc1kwRkJZeXhSUVUxNlFpSjkiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJmc1wiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcIm5vZGU6cGF0aFwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcIm5vZGU6cHJvY2Vzc1wiKTsiLCJpbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuLyoqXG5DaGVjayBpZiB0aGUgY29kZSBpcyBydW5uaW5nIGluIGFuIEVsZWN0cm9uIGVudmlyb25tZW50LlxuXG5AZXhhbXBsZVxuYGBgXG5pbXBvcnQge2lzRWxlY3Ryb259IGZyb20gJ2VsZWN0cm9uLXV0aWwvbm9kZSc7XG5cbmNvbnNvbGUubG9nKGlzRWxlY3Ryb24pO1xuLy89PiB0cnVlIHdoZW4gaW4gRWxlY3Ryb24sIGZhbHNlIHdoZW4gaW4gTm9kZS5qc1xuYGBgXG4qL1xuZXhwb3J0IGNvbnN0IGlzRWxlY3Ryb24gPSAnZWxlY3Ryb24nIGluIHByb2Nlc3MudmVyc2lvbnM7XG4vKipcbkNoZWNrIGlmIHRoZSBhcHAgaXMgdXNpbmcgW0FTQVJdKGh0dHBzOi8vZWxlY3Ryb25qcy5vcmcvZG9jcy90dXRvcmlhbC9hcHBsaWNhdGlvbi1wYWNrYWdpbmcvKS5cblxuQGV4YW1wbGVcbmBgYFxuaW1wb3J0IHtpc1VzaW5nQXNhcn0gZnJvbSAnZWxlY3Ryb24tdXRpbC9ub2RlJztcblxuaWYgKGlzVXNpbmdBc2FyKSB7XG4gICAgY29uc29sZS5sb2coJ1J1bm5pbmcgZnJvbSBhbiBBU0FSIGFyY2hpdmUnKTtcbn1cbmBgYFxuKi9cbmV4cG9ydCBjb25zdCBpc1VzaW5nQXNhciA9IGlzRWxlY3Ryb24gJiYgcHJvY2Vzcy5hcmd2LnNvbWUoYXJndW1lbnQgPT4gYXJndW1lbnQ/LmluY2x1ZGVzKCdhcHAuYXNhcicpKTtcbi8qKlxuRWxlY3Ryb24gdmVyc2lvbi5cblxuQGV4YW1wbGVcbmBgYFxuJzEuNy45J1xuYGBgXG4qL1xuZXhwb3J0IGNvbnN0IGVsZWN0cm9uVmVyc2lvbiA9IHByb2Nlc3MudmVyc2lvbnMuZWxlY3Ryb24gPz8gJzAuMC4wJztcbi8qKlxuQVNBUiBpcyBncmVhdCwgYnV0IGl0IGhhcyBbbGltaXRhdGlvbnMgd2hlbiBpdCBjb21lcyB0byBleGVjdXRpbmcgYmluYXJpZXNdKGh0dHBzOi8vZWxlY3Ryb25qcy5vcmcvZG9jcy90dXRvcmlhbC9hcHBsaWNhdGlvbi1wYWNrYWdpbmcvI2V4ZWN1dGluZy1iaW5hcmllcy1pbnNpZGUtYXNhci1hcmNoaXZlKS5cbkZvciBleGFtcGxlLCBbYGNoaWxkX3Byb2Nlc3Muc3Bhd24oKWAgaXMgbm90IGF1dG9tYXRpY2FsbHkgaGFuZGxlZF0oaHR0cHM6Ly9naXRodWIuY29tL2VsZWN0cm9uL2VsZWN0cm9uL2lzc3Vlcy85NDU5KS5cblNvIHlvdSB3b3VsZCBoYXZlIHRvIHVucGFjayB0aGUgYmluYXJ5LCBmb3IgZXhhbXBsZSwgd2l0aCB0aGUgW2Bhc2FyVW5wYWNrYF0oaHR0cHM6Ly93d3cuZWxlY3Ryb24uYnVpbGQvY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uI2NvbmZpZ3VyYXRpb24tYXNhclVucGFjaykgb3B0aW9uIGluIGBlbGVjdHJvbi1idWlsZGVyYC5cblRoaXMgY3JlYXRlcyBhIHByb2JsZW0gYXMgdGhlIHBhdGggdG8gdGhlIGJpbmFyeSBjaGFuZ2VzLCBidXQgeW91ciBgcGF0aC5qb2luKF9fZGlybmFtZSwgJ2JpbmFyeScpYCBpcyBub3QgY2hhbmdlZC5cblRvIG1ha2UgaXQgd29yayB5b3UgbmVlZCB0byBmaXggdGhlIHBhdGguIFRoYXQncyB0aGUgcHVycG9zZSBvZiB0aGlzIG1ldGhvZC5cblxuQmVmb3JlOlxuL1VzZXJzL3NpbmRyZXNvcmh1cy9LYXAuYXBwL0NvbnRlbnRzL1Jlc291cmNlcy9hcHAuYXNhci9ub2RlX21vZHVsZXMvZm9vL2JpbmFyeVxuXG5BZnRlcjpcbi9Vc2Vycy9zaW5kcmVzb3JodXMvS2FwLmFwcC9Db250ZW50cy9SZXNvdXJjZXMvYXBwLmFzYXIudW5wYWNrZWQvbm9kZV9tb2R1bGVzL2Zvby9iaW5hcnlcblxuQHBhcmFtIHBhdGggLSBBIHBhdGggaW4geW91ciBhcHAuXG5AcmV0dXJucyBUaGUgZml4ZWQgcGF0aC5cblxuQGV4YW1wbGVcbmBgYFxuaW1wb3J0IHtmaXhQYXRoRm9yQXNhclVucGFja30gZnJvbSAnZWxlY3Ryb24tdXRpbC9ub2RlJztcblxuY29uc3QgYmluYXJ5UGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdiaW5hcnknKTtcbmNvbnN0IGZpeGVkUGF0aCA9IGZpeFBhdGhGb3JBc2FyVW5wYWNrKGJpbmFyeVBhdGgpO1xuLy89PiAnL3BhdGgvdG8vYXBwLmFzYXIudW5wYWNrZWQvYmluYXJ5JyB3aGVuIGluIEFTQVJcbi8vPT4gJy9wYXRoL3RvL2JpbmFyeScgb3RoZXJ3aXNlXG5gYGBcbiovXG5leHBvcnQgY29uc3QgZml4UGF0aEZvckFzYXJVbnBhY2sgPSAocGF0aCkgPT4gaXNVc2luZ0FzYXIgPyBwYXRoLnJlcGxhY2VBbGwoJ2FwcC5hc2FyJywgJ2FwcC5hc2FyLnVucGFja2VkJykgOiBwYXRoO1xuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJub2RlOm9zXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiZmluZC1qYXZhLWhvbWVcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJqYXZhLWNhbGxlclwiKTsiLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XG4gICAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbi8vIOWwneivleWKoOS4iiAuanMg5pi+5byP5ZCO57yAXG5pbXBvcnQgeyBmaXhQYXRoRm9yQXNhclVucGFjayB9IGZyb20gXCJlbGVjdHJvbi11dGlsL25vZGVcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgZmluZEphdmFIb21lIGZyb20gXCJmaW5kLWphdmEtaG9tZVwiO1xuaW1wb3J0IHsgSmF2YUNhbGxlciB9IGZyb20gXCJqYXZhLWNhbGxlclwiO1xudmFyIHBhdGggPSBqb2luKF9fZGlybmFtZSwgXCJwcmludGVyLmphclwiKTtcbnZhciBmaXhQYXRoID0gZml4UGF0aEZvckFzYXJVbnBhY2socGF0aCk7XG52YXIgamF2YUFyZ3MgPSBbXCItRGZpbGUuZW5jb2Rpbmc9VVRGLThcIl07XG4vLyDop6PlhrNsaW51eOS4i+aJk+WNsOacuuadg+mZkOmXrumimO+8jGphcuW8ueeql+mcgOimgeWuieijhWxpYmF0ay13cmFwcGVyLWphdmFcbmlmIChvcy5wbGF0Zm9ybSgpID09IFwibGludXhcIikge1xuICAgIGphdmFBcmdzLnB1c2goXCItRGphdmF4LmFjY2Vzc2liaWxpdHkuYXNzaXN0aXZlX3RlY2hub2xvZ2llcz0nICdcIik7XG59XG52YXIgUGFyYW1ldGVyID0gXCJcIi5jb25jYXQoZml4UGF0aCk7XG4vKipcbiAqIOaguOW/g++8muWwgeijheaJi+WKqCBQcm9taXNlIOmAu+i+kVxuICog6Kej5YazIFRTIOmhtuWxgiBhd2FpdCDpmZDliLZcbiAqL1xuZnVuY3Rpb24gaW5pdEphdmEoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgaW5zdGFuY2UsIGhvbWVQYXRoLCBjYWxsZXJPcHRpb25zLCBleGVOYW1lO1xuICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKF9hLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiByZXR1cm4gWzQgLyp5aWVsZCovLCBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaW5kSmF2YUhvbWUoeyBhbGxvd0pyZTogdHJ1ZSB9LCBmdW5jdGlvbiAoZXJyLCBob21lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVyciB8fCAhaG9tZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyIHx8IG5ldyBFcnJvcihcIkphdmEgSG9tZSBub3QgZm91bmRcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShob21lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSldO1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgaG9tZVBhdGggPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxlck9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBqYXI6IFBhcmFtZXRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1haW5DbGFzczogXCJjb20udGsubHlpbi5QcmludGVyc1wiLCAvLyDnoa7kv53ljrvmjonkuobmnKvlsL7pgJflj7dcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxKYXZhQXJnczogamF2YUFyZ3MsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChob21lUGF0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhlTmFtZSA9IG9zLnBsYXRmb3JtKCkgPT09IFwid2luMzJcIiA/IFwiamF2YS5leGVcIiA6IFwiamF2YVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5omL5Yqo5oyH5a6a5omn6KGM6Lev5b6EXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsZXJPcHRpb25zLmphdmFFeGVjdXRhYmxlID0gZml4UGF0aEZvckFzYXJVbnBhY2soam9pbihob21lUGF0aCwgXCJiaW5cIiwgZXhlTmFtZSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbmV3IEphdmFDYWxsZXIoY2FsbGVyT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovLCBpbnN0YW5jZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuZXhwb3J0IHZhciBydW4gPSBmdW5jdGlvbiAocHJpbnRlcikgeyByZXR1cm4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgYXJncywgcHJpbnRlck5hbWUsIGphdmEsIF9hLCBzdGF0dXMsIHN0ZG91dCwgc3RkZXJyO1xuICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2IpIHtcbiAgICAgICAgc3dpdGNoIChfYi5sYWJlbCkge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgICAgICBhcmdzLnB1c2gocHJpbnRlci5hcmcpO1xuICAgICAgICAgICAgICAgIHByaW50ZXJOYW1lID0gcHJpbnRlci5wcmludGVyTmFtZTtcbiAgICAgICAgICAgICAgICBpZiAocHJpbnRlck5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgYXJncy5wdXNoKHByaW50ZXJOYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgaW5pdEphdmEoKV07XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgamF2YSA9IF9iLnNlbnQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBqYXZhLnJ1bihhcmdzKV07XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgX2EgPSBfYi5zZW50KCksIHN0YXR1cyA9IF9hLnN0YXR1cywgc3Rkb3V0ID0gX2Euc3Rkb3V0LCBzdGRlcnIgPSBfYS5zdGRlcnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi8sIHN0ZG91dCA/IHN0ZG91dC50cmltKCkgOiBcInt9XCJdO1xuICAgICAgICB9XG4gICAgfSk7XG59KTsgfTtcbmV4cG9ydCB2YXIgcHJpbnRSdW4gPSBmdW5jdGlvbiAocHJpbnRlciwgcHJpbnQpIHsgcmV0dXJuIF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGphdmEsIGJhc2U2NFN0ciwgX2EsIHN0YXR1cywgc3Rkb3V0LCBzdGRlcnI7XG4gICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYikge1xuICAgICAgICBzd2l0Y2ggKF9iLmxhYmVsKSB7XG4gICAgICAgICAgICBjYXNlIDA6IHJldHVybiBbNCAvKnlpZWxkKi8sIGluaXRKYXZhKCldO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIGphdmEgPSBfYi5zZW50KCk7XG4gICAgICAgICAgICAgICAgYmFzZTY0U3RyID0gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkocHJpbnQpLnRyaW0oKSkudG9TdHJpbmcoXCJiYXNlNjRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgamF2YS5ydW4oW3ByaW50ZXIuYXJnLCBiYXNlNjRTdHJdLCB7IHdpbmRvd3NIaWRlOiBmYWxzZSB9KV07XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgX2EgPSBfYi5zZW50KCksIHN0YXR1cyA9IF9hLnN0YXR1cywgc3Rkb3V0ID0gX2Euc3Rkb3V0LCBzdGRlcnIgPSBfYS5zdGRlcnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi9dO1xuICAgICAgICB9XG4gICAgfSk7XG59KTsgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFtRjJZUzExZEdsc0xtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZjM0pqTDNWMGFXeHpMMnBoZG1FdGRYUnBiQzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UVVGQlFTeFBRVUZQTEVWQlFVTXNTVUZCU1N4RlFVRkRMRTFCUVUwc1YwRkJWeXhEUVVGRE8wRkJSeTlDTEdkQ1FVRm5RanRCUVVOb1FpeFBRVUZQTEVWQlFVTXNiMEpCUVc5Q0xFVkJRVU1zVFVGQlRTeHZRa0ZCYjBJc1EwRkJRenRCUVVONFJDeFBRVUZQTEV0QlFVc3NSVUZCUlN4TlFVRk5MRk5CUVZNc1EwRkJRenRCUVVNNVFpeFBRVUZQTEZsQlFWa3NUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU14UXl4UFFVRlBMRVZCUVVNc1ZVRkJWU3hGUVVGdlFpeE5RVUZOTEdGQlFXRXNRMEZCUXp0QlFVY3hSQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMR0ZCUVdFc1EwRkJReXhEUVVGRE8wRkJRekZETEVsQlFVa3NUMEZCVHl4SFFVRkhMRzlDUVVGdlFpeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTNwRExFbEJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlF6dEJRVU16UXl3clEwRkJLME03UVVGREwwTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxFbEJRVWtzVDBGQlR5eEZRVUZGTEVOQlFVTTdTVUZETTBJc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eHJSRUZCYTBRc1EwRkJReXhEUVVGRE8wRkJRM1JGTEVOQlFVTTdRVUZGUkN4SlFVRk5MRk5CUVZNc1IwRkJSeXhWUVVGSExFOUJRVThzUTBGQlJTeERRVUZETzBGQlJTOUNPenM3UjBGSFJ6dEJRVU5JTEZOQlFXVXNVVUZCVVRzN096czdkMEpCUjBvc2NVSkJRVTBzU1VGQlNTeFBRVUZQTEVOQlFWTXNWVUZCUXl4UFFVRlBMRVZCUVVVc1RVRkJUVHQzUWtGRGNrUXNXVUZCV1N4RFFVRkRMRVZCUVVNc1VVRkJVU3hGUVVGRkxFbEJRVWtzUlVGQlF5eEZRVUZGTEZWQlFVTXNSMEZCUnl4RlFVRkZMRWxCUVVrN05FSkJRM0pETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03WjBOQlEyWXNUVUZCVFN4RFFVRkRMRWRCUVVjc1NVRkJTU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRExFTkJRVU03TkVKQlEzQkVMRU5CUVVNN2FVTkJRVTBzUTBGQlF6dG5RMEZEU2l4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03TkVKQlEyeENMRU5CUVVNN2QwSkJRMHdzUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTFBc1EwRkJReXhEUVVGRExFVkJRVUU3TzI5Q1FWSkZMRkZCUVZFc1IwRkJSeXhUUVZGaU8yOUNRVWRKTEdGQlFXRXNSMEZCYzBJN2QwSkJRM0pETEVkQlFVY3NSVUZCUlN4VFFVRlRPM2RDUVVOa0xGTkJRVk1zUlVGQlJTeHpRa0ZCYzBJc1JVRkJSU3haUVVGWk8zZENRVU12UXl4clFrRkJhMElzUlVGQlJTeFJRVUZSTzNGQ1FVTXZRaXhEUVVGQk8yOUNRVVZFTEVsQlFVa3NVVUZCVVN4RlFVRkZMRU5CUVVNN2QwSkJRMHdzVDBGQlR5eEhRVUZITEVWQlFVVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1MwRkJTeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRE8zZENRVU5vUlN4WFFVRlhPM2RDUVVOWUxHRkJRV0VzUTBGQlF5eGpRVUZqTEVkQlFVY3NiMEpCUVc5Q0xFTkJReTlETEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1MwRkJTeXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVU5xUXl4RFFVRkRPMjlDUVVOT0xFTkJRVU03YjBKQlEwUXNVVUZCVVN4SFFVRkhMRWxCUVVrc1ZVRkJWU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzI5Q1FVVjZReXh6UWtGQlR5eFJRVUZSTEVWQlFVTTdPenM3UTBGRGJrSTdRVUZGUkN4TlFVRk5MRU5CUVVNc1NVRkJUU3hIUVVGSExFZEJRVWNzVlVGQlR5eFBRVUZuUWpzN096czdaMEpCUTJoRExFbEJRVWtzUjBGQllTeEZRVUZGTEVOQlFVTTdaMEpCUXpGQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU5xUWl4WFFVRlhMRWRCUVVjc1QwRkJUeXhEUVVGRExGZEJRVmNzUTBGQlF6dG5Ra0ZEZUVNc1NVRkJTU3hYUVVGWExFVkJRVVVzUTBGQlF6dHZRa0ZEWkN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzJkQ1FVTXpRaXhEUVVGRE8yZENRVU5aTEhGQ1FVRk5MRkZCUVZFc1JVRkJSU3hGUVVGQk96dG5Ra0ZCZGtJc1NVRkJTU3hIUVVGSExGTkJRV2RDTzJkQ1FVTkpMSEZDUVVGTkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVFN08yZENRVUV2UXl4TFFVRXlRaXhUUVVGdlFpeEZRVUU1UXl4TlFVRk5MRmxCUVVFc1JVRkJSU3hOUVVGTkxGbEJRVUVzUlVGQlJTeE5RVUZOTEZsQlFVRTdaMEpCUXpkQ0xITkNRVUZQTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVNN096dExRVU40UXl4RFFVRkRPMEZCUlVZc1RVRkJUU3hEUVVGRExFbEJRVTBzVVVGQlVTeEhRVUZITEZWQlEzQkNMRTlCUVdkQ0xFVkJRMmhDTEV0QlFXMUNPenM3TzI5Q1FVVk9MSEZDUVVGTkxGRkJRVkVzUlVGQlJTeEZRVUZCT3p0blFrRkJka0lzU1VGQlNTeEhRVUZITEZOQlFXZENPMmRDUVVOMlFpeFRRVUZUTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zVVVGQlVTeERRVU5vUlN4UlFVRlJMRU5CUTFnc1EwRkJRenRuUWtGREswSXNjVUpCUVUwc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRVZCUVVVc1UwRkJVeXhEUVVGRExFVkJRVVVzUlVGQlF5eFhRVUZYTEVWQlFVVXNTMEZCU3l4RlFVRkRMRU5CUVVNc1JVRkJRVHM3WjBKQlFYcEdMRXRCUVRKQ0xGTkJRVGhFTEVWQlFYaEdMRTFCUVUwc1dVRkJRU3hGUVVGRkxFMUJRVTBzV1VGQlFTeEZRVUZGTEUxQlFVMHNXVUZCUVRzN096dExRVU5vUXl4RFFVRkRJbjA9IiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGcgPSBPYmplY3QuY3JlYXRlKCh0eXBlb2YgSXRlcmF0b3IgPT09IFwiZnVuY3Rpb25cIiA/IEl0ZXJhdG9yIDogT2JqZWN0KS5wcm90b3R5cGUpO1xuICAgIHJldHVybiBnLm5leHQgPSB2ZXJiKDApLCBnW1widGhyb3dcIl0gPSB2ZXJiKDEpLCBnW1wicmV0dXJuXCJdID0gdmVyYigyKSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbi8vIOebtOaOpeaJk+WNsFxuaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgUHJpbnRlckFjdGlvbnMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHByaW50UnVuIH0gZnJvbSBcIi4uL3V0aWxzL2phdmEtdXRpbFwiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcHJpbnQocHJpbnRlcikge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHBkZjtcbiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgcGRmID0gcHJpbnRlci5wZGY7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcGRmKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgXCJObyBQREYgc3BlY2lmaWVkXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhwZGYpKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgXCJObyBzdWNoIGZpbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgcHJpbnRSdW4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzogUHJpbnRlckFjdGlvbnMuUFJJTlQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBwcmludGVyKV07XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljSEpwYm5RdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOXpjbU12Y0hKcGJuUXZjSEpwYm5RdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJRVUVzVDBGQlR6dEJRVU5RTEU5QlFVOHNSVUZCUlN4TlFVRk5MRWxCUVVrc1EwRkJRenRCUVVOd1FpeFBRVUZQTEVWQlFVTXNZMEZCWXl4RlFVRmxMRTFCUVUwc1ZVRkJWU3hEUVVGRE8wRkJRM1JFTEU5QlFVOHNSVUZCUXl4UlFVRlJMRVZCUVVNc1RVRkJUU3h2UWtGQmIwSXNRMEZCUXp0QlFVVTFReXhOUVVGTkxFTkJRVU1zVDBGQlR5eFZRVUZuUWl4TFFVRkxMRU5CUVVNc1QwRkJjVUk3T3pzN096dHZRa0ZETDBNc1IwRkJSeXhIUVVGSExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTTdiMEpCUTNoQ0xFbEJRVWtzUTBGQlF5eEhRVUZITzNkQ1FVRkZMRTFCUVUwc2EwSkJRV3RDTEVOQlFVTTdiMEpCUTI1RExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJRenQzUWtGQlJTeE5RVUZOTEdOQlFXTXNRMEZCUXp0dlFrRkRPVU1zY1VKQlFVMHNVVUZCVVN4RFFVTldPelJDUVVOQkxFZEJRVWNzUlVGQlJTeGpRVUZqTEVOQlFVTXNTMEZCU3p0NVFrRkRlRUlzUlVGRFJDeFBRVUZQTEVOQlExWXNSVUZCUVRzN2IwSkJURVFzVTBGTFF5eERRVUZET3pzN096dERRVU5NSW4wPSIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKTtcbiAgICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKGcgJiYgKGcgPSAwLCBvcFswXSAmJiAoXyA9IDApKSwgXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG5pbXBvcnQgeyBQcmludGVyQWN0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgcnVuIH0gZnJvbSBcIi4uL3V0aWxzL2phdmEtdXRpbFwiO1xuZnVuY3Rpb24gZ2V0UHJpbnRlcnMoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcmVzdWx0LCBlcnJvcl8xO1xuICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKF9hLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBfYS50cnlzLnB1c2goWzAsIDIsICwgM10pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBydW4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzogUHJpbnRlckFjdGlvbnMuUFJJTlRFUlMsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KV07XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovLCBKU09OLnBhcnNlKHJlc3VsdCldO1xuICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JfMSA9IF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3JfMTtcbiAgICAgICAgICAgICAgICBjYXNlIDM6IHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5leHBvcnQgZGVmYXVsdCBnZXRQcmludGVycztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVoyVjBMWEJ5YVc1MFpYSnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2YzNKakwyZGxkQzF3Y21sdWRHVnljeTluWlhRdGNISnBiblJsY25NdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJRVUVzVDBGQlR5eEZRVUZWTEdOQlFXTXNSVUZCUXl4TlFVRk5MRlZCUVZVc1EwRkJRenRCUVVOcVJDeFBRVUZQTEVWQlFVTXNSMEZCUnl4RlFVRkRMRTFCUVUwc2IwSkJRVzlDTEVOQlFVTTdRVUZGZGtNc1UwRkJaU3hYUVVGWE96czdPenM3TzI5Q1FVVlVMSEZDUVVGTkxFZEJRVWNzUTBGQlF6czBRa0ZEY2tJc1IwRkJSeXhGUVVGRkxHTkJRV01zUTBGQlF5eFJRVUZSTzNsQ1FVTTNRaXhEUVVGRExFVkJRVUU3TzI5Q1FVWkZMRTFCUVUwc1IwRkJSeXhUUVVWWU8yOUNRVU5HTEhOQ1FVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVTTdPenR2UWtGRk1VSXNUVUZCVFN4UFFVRkxMRU5CUVVNN096czdPME5CUldZN1FVRkZSQ3hsUVVGbExGZEJRVmNzUTBGQlF5SjkiLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XG4gICAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xuaW1wb3J0IHsgUHJpbnRlckFjdGlvbnMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHJ1biB9IGZyb20gXCIuLi91dGlscy9qYXZhLXV0aWxcIjtcbmZ1bmN0aW9uIGdldERlZmF1bHRQcmludGVyKCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHJlc3VsdCwgZXJyb3JfMTtcbiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgX2EudHJ5cy5wdXNoKFswLCAyLCAsIDNdKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgcnVuKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc6IFByaW50ZXJBY3Rpb25zLkRFRkFVTFQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KV07XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovLCBKU09OLnBhcnNlKHJlc3VsdCldO1xuICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JfMSA9IF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3JfMTtcbiAgICAgICAgICAgICAgICBjYXNlIDM6IHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5leHBvcnQgZGVmYXVsdCBnZXREZWZhdWx0UHJpbnRlcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVoyVjBMV1JsWm1GMWJIUXRjSEpwYm5SbGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5blpYUXRaR1ZtWVhWc2RDMXdjbWx1ZEdWeUwyZGxkQzFrWldaaGRXeDBMWEJ5YVc1MFpYSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCUVVFc1QwRkJUeXhGUVVGVkxHTkJRV01zUlVGQlF5eE5RVUZOTEZWQlFWVXNRMEZCUXp0QlFVTnFSQ3hQUVVGUExFVkJRVU1zUjBGQlJ5eEZRVUZETEUxQlFVMHNiMEpCUVc5Q0xFTkJRVU03UVVGRmRrTXNVMEZCWlN4cFFrRkJhVUk3T3pzN096czdiMEpCUldZc2NVSkJRVTBzUjBGQlJ5eERRVUZET3pSQ1FVTnlRaXhIUVVGSExFVkJRVVVzWTBGQll5eERRVUZETEU5QlFVODdlVUpCUXpWQ0xFTkJRVU1zUlVGQlFUczdiMEpCUmtVc1RVRkJUU3hIUVVGSExGTkJSVmc3YjBKQlEwWXNjMEpCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUXpzN08yOUNRVVV4UWl4TlFVRk5MRTlCUVVzc1EwRkJRenM3T3pzN1EwRkZaanRCUVVWRUxHVkJRV1VzYVVKQlFXbENMRU5CUVVNaWZRPT0iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XG4gICAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xudmFyIF9fc3ByZWFkQXJyYXkgPSAodGhpcyAmJiB0aGlzLl9fc3ByZWFkQXJyYXkpIHx8IGZ1bmN0aW9uICh0bywgZnJvbSwgcGFjaykge1xuICAgIGlmIChwYWNrIHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIGkgPSAwLCBsID0gZnJvbS5sZW5ndGgsIGFyOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcbiAgICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XG4gICAgICAgICAgICBhcltpXSA9IGZyb21baV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRvLmNvbmNhdChhciB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tKSk7XG59O1xuaW1wb3J0IHsgUHJpbnRlckFjdGlvbnMsIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBydW4gfSBmcm9tIFwiLi4vdXRpbHMvamF2YS11dGlsXCI7XG4vKipcbiAqIOiOt+WPluaMh+WumuaJk+WNsOacuuaJgOaUr+aMgeeahOe6uOW8oOWkp+WwjyzlpoLmnpzmg7Pojrflj5bpu5jorqTmiZPljbDmnLrnurjlvKDlpKflsI8gb3B0aW9ucy5wcmludGVyIOivt+S9v+eUqOepuuWtl+esplxuICogR2V0IHRoZSBwYXBlciBzaXplIHN1cHBvcnRlZCBieSB0aGUgc3BlY2lmaWVkIHByaW50ZXIsIGlmIHlvdSB3YW50IHRvIGdldCB0aGUgZGVmYXVsdCBwcmludGVyIHBhcGVyIHNpemUgb3B0aW9ucy5wcmludGVyIFBsZWFzZSB1c2UgYSBibGFuayBjaGFyYWN0ZXJcbiAqL1xuZXhwb3J0IHZhciBnZXRQYXBlclNpemVJbmZvID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBhcmdzXzEgPSBbXTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICBhcmdzXzFbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICB9XG4gICAgcmV0dXJuIF9fYXdhaXRlcih2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIGFyZ3NfMSwgdHJ1ZSksIHZvaWQgMCwgZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHJlc3VsdCwgZXJyb3JfMTtcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0geyBwcmludGVyOiBcIlwiIH07IH1cbiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgX2EudHJ5cy5wdXNoKFswLCAyLCAsIDNdKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgcnVuKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc6IFByaW50ZXJBY3Rpb25zLlNJWkVJTkZPLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZXJOYW1lOiBvcHRpb25zLnByaW50ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KV07XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovLCBKU09OLnBhcnNlKHJlc3VsdCldO1xuICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JfMSA9IF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3JfMTtcbiAgICAgICAgICAgICAgICBjYXNlIDM6IHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuLyoqXG4gKiDojrflj5bmiYDmnInmiZPljbDmnLrmiYDmlK/mjIHnmoTnurjlvKDlpKflsI9cbiAqIEdldCB0aGUgcGFwZXIgc2l6ZSBzdXBwb3J0ZWQgYnkgYWxsIHByaW50ZXJzXG4gKiBAcmV0dXJucyBhbGwgcGFwZXJTaXplXG4gKi9cbmV4cG9ydCB2YXIgZ2V0UGFwZXJTaXplSW5mb0FsbCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgYXJnc18xID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgYXJnc18xW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgfVxuICAgIHJldHVybiBfX2F3YWl0ZXIodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBhcmdzXzEsIHRydWUpLCB2b2lkIDAsIGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciByZXN1bHQsIGVycm9yXzI7XG4gICAgICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsgb3B0aW9ucyA9IHt9OyB9XG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoX2EubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIF9hLnRyeXMucHVzaChbMCwgMiwgLCAzXSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIHJ1bih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnOiBQcmludGVyQWN0aW9ucy5TSVpFSU5GT1MsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KV07XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovLCBKU09OLnBhcnNlKHJlc3VsdCldO1xuICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JfMiA9IF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3JfMjtcbiAgICAgICAgICAgICAgICBjYXNlIDM6IHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWjJWMExYQmhjR1Z5TFhOcGVtVXRhVzVtYnk1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzTnlZeTluWlhRdGNHRndaWEl0YzJsNlpTOW5aWFF0Y0dGd1pYSXRjMmw2WlMxcGJtWnZMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRCUVVGQkxFOUJRVThzUlVGQk1rTXNZMEZCWXl4SFFVRkZMRTFCUVUwc1ZVRkJWU3hEUVVGRE8wRkJRMjVHTEU5QlFVOHNSVUZCUXl4SFFVRkhMRVZCUVVNc1RVRkJUU3h2UWtGQmIwSXNRMEZCUXp0QlFVVjJRenM3TzBkQlIwYzdRVUZEU0N4TlFVRk5MRU5CUVVNc1NVRkJUU3huUWtGQlowSXNSMEZCUnpzN096czdaMFpCUXpWQ0xFOUJRVFpET3p0UlFVRTNReXgzUWtGQlFTeEZRVUZCTEZsQlFXbERMRTlCUVU4c1JVRkJSU3hGUVVGRkxFVkJRVU03T3pzN08yOUNRVWRvUXl4eFFrRkJUU3hIUVVGSExFTkJRVU03TkVKQlEzSkNMRWRCUVVjc1JVRkJSU3hqUVVGakxFTkJRVU1zVVVGQlVUczBRa0ZETlVJc1YwRkJWeXhGUVVGRkxFOUJRVThzUTBGQlF5eFBRVUZQTzNsQ1FVTTNRaXhEUVVGRExFVkJRVUU3TzI5Q1FVaEZMRTFCUVUwc1IwRkJSeXhUUVVkWU8yOUNRVU5HTEhOQ1FVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVTTdPenR2UWtGRk1VSXNUVUZCVFN4UFFVRkxMRU5CUVVNN096czdPME5CUldZc1EwRkJRenRCUVVWR096czdPMGRCU1VjN1FVRkRTQ3hOUVVGTkxFTkJRVU1zU1VGQlRTeHRRa0ZCYlVJc1IwRkJSenM3T3pzN1owWkJReTlDTEU5QlFXMUVPenRSUVVGdVJDeDNRa0ZCUVN4RlFVRkJMRmxCUVcxRU96czdPenR2UWtGSGRFTXNjVUpCUVUwc1IwRkJSeXhEUVVGRE96UkNRVU55UWl4SFFVRkhMRVZCUVVVc1kwRkJZeXhEUVVGRExGTkJRVk03ZVVKQlF6bENMRU5CUVVNc1JVRkJRVHM3YjBKQlJrVXNUVUZCVFN4SFFVRkhMRk5CUlZnN2IwSkJRMFlzYzBKQlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlF6czdPMjlDUVVVeFFpeE5RVUZOTEU5QlFVc3NRMEZCUXpzN096czdRMEZGWml4RFFVRkRJbjA9Il0sIm5hbWVzIjpbInJvb3QiLCJmYWN0b3J5IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsImFtZCIsImEiLCJpIiwiZ2xvYmFsIiwiTWVkaWFTaXplTmFtZSIsIkNocm9tYXRpY2l0eSIsIlNpZGVzIiwiTWVkaWFUcmF5IiwiT3JpZW50YXRpb25SZXF1ZXN0ZWQiLCJTY2FsaW5nIiwiU3Vic2V0IiwiUHJpbnRlckFjdGlvbnMiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJjYWNoZWRNb2R1bGUiLCJ1bmRlZmluZWQiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwibiIsImdldHRlciIsIl9fZXNNb2R1bGUiLCJkIiwiZGVmaW5pdGlvbiIsImtleSIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJvYmoiLCJwcm9wIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiciIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJyZXF1aXJlIiwiaXNVc2luZ0FzYXIiLCJzb21lIiwiYXJndW1lbnQiLCJpbmNsdWRlcyIsImZpeFBhdGhGb3JBc2FyVW5wYWNrIiwiZWxlY3Ryb24iLCJwYXRoIiwicmVwbGFjZUFsbCIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiX19nZW5lcmF0b3IiLCJib2R5IiwiZiIsInkiLCJ0IiwiXyIsImxhYmVsIiwic2VudCIsInRyeXMiLCJvcHMiLCJnIiwiY3JlYXRlIiwiSXRlcmF0b3IiLCJ2ZXJiIiwiaXRlcmF0b3IiLCJ0aGlzIiwidiIsIm9wIiwiVHlwZUVycm9yIiwicG9wIiwibGVuZ3RoIiwicHVzaCIsImpvaW4iLCJfX2Rpcm5hbWUiLCJmaXhQYXRoIiwiamF2YUFyZ3MiLCJQYXJhbWV0ZXIiLCJjb25jYXQiLCJpbml0SmF2YSIsImhvbWVQYXRoIiwiY2FsbGVyT3B0aW9ucyIsImV4ZU5hbWUiLCJfYSIsImFsbG93SnJlIiwiZXJyIiwiaG9tZSIsIkVycm9yIiwiamFyIiwibWFpbkNsYXNzIiwiYWRkaXRpb25hbEphdmFBcmdzIiwiamF2YUV4ZWN1dGFibGUiLCJKYXZhQ2FsbGVyIiwicnVuIiwicHJpbnRlciIsImFyZ3MiLCJwcmludGVyTmFtZSIsInN0ZG91dCIsIl9iIiwiYXJnIiwic3RhdHVzIiwic3RkZXJyIiwidHJpbSIsInByaW50UnVuIiwicHJpbnQiLCJqYXZhIiwiYmFzZTY0U3RyIiwiQnVmZmVyIiwiZnJvbSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0b1N0cmluZyIsIndpbmRvd3NIaWRlIiwicGRmIiwiUFJJTlQiLCJQUklOVEVSUyIsInBhcnNlIiwiREVGQVVMVCIsIl9fc3ByZWFkQXJyYXkiLCJ0byIsInBhY2siLCJhcmd1bWVudHMiLCJhciIsImwiLCJBcnJheSIsInNsaWNlIiwiZ2V0UGFwZXJTaXplSW5mbyIsImFyZ3NfMSIsIl9pIiwib3B0aW9ucyIsIlNJWkVJTkZPIiwiZ2V0UGFwZXJTaXplSW5mb0FsbCIsIlNJWkVJTkZPUyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0pDLEVBQUssRUFBR0EsRUFBS1AsVUFBVWxELE9BQVF5RCxJQUNwQ0QsRUFBT0MsR0FBTVAsVUFBVU8sR0FFM0IsT0FBTyxPQUFlLEVBQUdWLEVBQWMsR0FBSVMsR0FBUSxRQUFZLEVBQUcsU0FBVUUsR0FDeEUsSUFBSWxGLEVBRUosWUFEcUIsSUFBakJrRixJQUFzQkEsRUFBVSxDQUFDLEdBQzlCLEVBQVkvRCxLQUFNLFNBQVVpQixHQUMvQixPQUFRQSxFQUFHMUIsT0FDUCxLQUFLLEVBRUQsT0FEQTBCLEVBQUd4QixLQUFLYSxLQUFLLENBQUMsRUFBRyxFQUFHLENBQUUsSUFDZixDQUFDLEVBQWFxQixFQUFJLENBQ2pCTSxJQUFLLEVBQUFyRyxlQUFlc0ksYUFFaEMsS0FBSyxFQUVELE9BREFyRixFQUFTb0MsRUFBR3pCLE9BQ0wsQ0FBQyxFQUFjbUQsS0FBS08sTUFBTXJFLElBQ3JDLEtBQUssRUFFRCxNQURVb0MsRUFBR3pCLE9BRWpCLEtBQUssRUFBRyxNQUFPLENBQUMsR0FFeEIsRUFDSixFQUNKLEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvLi9zcmMvdHlwZXMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL3ByaW50ZXItcGRmL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwiZnNcIiIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwibm9kZTpwYXRoXCIiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcIm5vZGU6cHJvY2Vzc1wiIiwid2VicGFjazovL3ByaW50ZXItcGRmLy4vbm9kZV9tb2R1bGVzL2VsZWN0cm9uLXV0aWwvZGlzdHJpYnV0aW9uL25vZGUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcIm5vZGU6b3NcIiIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi9leHRlcm5hbCBjb21tb25qcyBcImZpbmQtamF2YS1ob21lXCIiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvZXh0ZXJuYWwgY29tbW9uanMgXCJqYXZhLWNhbGxlclwiIiwid2VicGFjazovL3ByaW50ZXItcGRmLy4vc3JjL3V0aWxzL2phdmEtdXRpbC50cyIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi8uL3NyYy9wcmludC9wcmludC50cyIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi8uL3NyYy9nZXQtcHJpbnRlcnMvZ2V0LXByaW50ZXJzLnRzIiwid2VicGFjazovL3ByaW50ZXItcGRmLy4vc3JjL2dldC1kZWZhdWx0LXByaW50ZXIvZ2V0LWRlZmF1bHQtcHJpbnRlci50cyIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi8uL3NyYy9nZXQtcGFwZXItc2l6ZS9nZXQtcGFwZXItc2l6ZS1pbmZvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSB7XG5cdFx0dmFyIGEgPSBmYWN0b3J5KCk7XG5cdFx0Zm9yKHZhciBpIGluIGEpICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgPyBleHBvcnRzIDogcm9vdClbaV0gPSBhW2ldO1xuXHR9XG59KShnbG9iYWwsICgpID0+IHtcbnJldHVybiAiLCIvLyDnurjlvKDlpKflsI9cbmV4cG9ydCB2YXIgTWVkaWFTaXplTmFtZTtcbihmdW5jdGlvbiAoTWVkaWFTaXplTmFtZSkge1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTBcIl0gPSBcImlzby1hMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTFcIl0gPSBcImlzby1hMVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTJcIl0gPSBcImlzby1hMlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTNcIl0gPSBcImlzby1hM1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTRcIl0gPSBcImlzby1hNFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTVcIl0gPSBcImlzby1hNVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTZcIl0gPSBcImlzby1hNlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTdcIl0gPSBcImlzby1hN1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQThcIl0gPSBcImlzby1hOFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTlcIl0gPSBcImlzby1hOVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQTEwXCJdID0gXCJpc28tYTEwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CMFwiXSA9IFwiaXNvLWIwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CMVwiXSA9IFwiaXNvLWIxXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CMlwiXSA9IFwiaXNvLWIyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CM1wiXSA9IFwiaXNvLWIzXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CNFwiXSA9IFwiaXNvLWI0XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CNVwiXSA9IFwiaXNvLWI1XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CNlwiXSA9IFwiaXNvLWI2XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CN1wiXSA9IFwiaXNvLWI3XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19COFwiXSA9IFwiaXNvLWI4XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19COVwiXSA9IFwiaXNvLWI5XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19CMTBcIl0gPSBcImlzby1iMTBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0IwXCJdID0gXCJqaXMtYjBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0IxXCJdID0gXCJqaXMtYjFcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0IyXCJdID0gXCJqaXMtYjJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0IzXCJdID0gXCJqaXMtYjNcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0I0XCJdID0gXCJqaXMtYjRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0I1XCJdID0gXCJqaXMtYjVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0I2XCJdID0gXCJqaXMtYjZcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0I3XCJdID0gXCJqaXMtYjdcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0I4XCJdID0gXCJqaXMtYjhcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0I5XCJdID0gXCJqaXMtYjlcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSklTX0IxMFwiXSA9IFwiamlzLWIxMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzBcIl0gPSBcImlzby1jMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzFcIl0gPSBcImlzby1jMVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzJcIl0gPSBcImlzby1jMlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzNcIl0gPSBcImlzby1jM1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzRcIl0gPSBcImlzby1jNFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzVcIl0gPSBcImlzby1jNVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQzZcIl0gPSBcImlzby1jNlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9MRVRURVJcIl0gPSBcIm5hLWxldHRlclwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9MRUdBTFwiXSA9IFwibmEtbGVnYWxcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiRVhFQ1VUSVZFXCJdID0gXCJleGVjdXRpdmVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTEVER0VSXCJdID0gXCJsZWRnZXJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiVEFCTE9JRFwiXSA9IFwidGFibG9pZFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJTlZPSUNFXCJdID0gXCJpbnZvaWNlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkZPTElPXCJdID0gXCJmb2xpb1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJRVUFSVE9cIl0gPSBcInF1YXJ0b1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJKQVBBTkVTRV9QT1NUQ0FSRFwiXSA9IFwiamFwYW5lc2UtcG9zdGNhcmRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSkFQQU5FU0VfRE9VQkxFX1BPU1RDQVJEXCJdID0gXCJvdWZ1a28tcG9zdGNhcmRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiQVwiXSA9IFwiYVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJCXCJdID0gXCJiXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkNcIl0gPSBcImNcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiRFwiXSA9IFwiZFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJFXCJdID0gXCJlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklTT19ERVNJR05BVEVEX0xPTkdcIl0gPSBcImlzby1kZXNpZ25hdGVkLWxvbmdcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVRBTFlfRU5WRUxPUEVcIl0gPSBcIml0YWxpYW4tZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTU9OQVJDSF9FTlZFTE9QRVwiXSA9IFwibW9uYXJjaC1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJQRVJTT05BTF9FTlZFTE9QRVwiXSA9IFwicGVyc29uYWwtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTlVNQkVSXzlfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci05LWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX05VTUJFUl8xMF9FTlZFTE9QRVwiXSA9IFwibmEtbnVtYmVyLTEwLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX05VTUJFUl8xMV9FTlZFTE9QRVwiXSA9IFwibmEtbnVtYmVyLTExLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX05VTUJFUl8xMl9FTlZFTE9QRVwiXSA9IFwibmEtbnVtYmVyLTEyLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX05VTUJFUl8xNF9FTlZFTE9QRVwiXSA9IFwibmEtbnVtYmVyLTE0LWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzZYOV9FTlZFTE9QRVwiXSA9IFwibmEtNng5LWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzdYOV9FTlZFTE9QRVwiXSA9IFwibmEtN3g5LWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzlYMTFfRU5WRUxPUEVcIl0gPSBcIm5hLTl4MTEtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfOVgxMl9FTlZFTE9QRVwiXSA9IFwibmEtOXgxMi1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV8xMFgxM19FTlZFTE9QRVwiXSA9IFwibmEtMTB4MTMtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfMTBYMTRfRU5WRUxPUEVcIl0gPSBcIm5hLTEweDE0LWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzEwWDE1X0VOVkVMT1BFXCJdID0gXCJuYS0xMHgxNS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV81WDdcIl0gPSBcIm5hLTV4N1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV84WDEwXCJdID0gXCJuYS04eDEwXCI7XG59KShNZWRpYVNpemVOYW1lIHx8IChNZWRpYVNpemVOYW1lID0ge30pKTtcbi8vIOiuvue9ruiJsuW9qVxuZXhwb3J0IHZhciBDaHJvbWF0aWNpdHk7XG4oZnVuY3Rpb24gKENocm9tYXRpY2l0eSkge1xuICAgIENocm9tYXRpY2l0eVtcIk1PTk9DSFJPTUVcIl0gPSBcIm1vbm9jaHJvbWVcIjtcbiAgICBDaHJvbWF0aWNpdHlbXCJDT0xPUlwiXSA9IFwiY29sb3JcIjtcbn0pKENocm9tYXRpY2l0eSB8fCAoQ2hyb21hdGljaXR5ID0ge30pKTtcbi8vIOiuvue9ruWPjOmdouaJk+WNsFxuZXhwb3J0IHZhciBTaWRlcztcbihmdW5jdGlvbiAoU2lkZXMpIHtcbiAgICBTaWRlc1tcIk9ORV9TSURFRFwiXSA9IFwib25lLXNpZGVkXCI7XG4gICAgU2lkZXNbXCJUV09fU0lERURfTE9OR19FREdFXCJdID0gXCJ0d28tc2lkZWQtbG9uZy1lZGdlXCI7XG4gICAgU2lkZXNbXCJUV09fU0lERURfU0hPUlRfRURHRVwiXSA9IFwidHdvLXNpZGVkLXNob3J0LWVkZ2VcIjtcbn0pKFNpZGVzIHx8IChTaWRlcyA9IHt9KSk7XG4vLyDloqjnm5LnsbvlnotcbmV4cG9ydCB2YXIgTWVkaWFUcmF5O1xuKGZ1bmN0aW9uIChNZWRpYVRyYXkpIHtcbiAgICBNZWRpYVRyYXlbXCJUT1BcIl0gPSBcInRvcFwiO1xuICAgIE1lZGlhVHJheVtcIk1JRERMRVwiXSA9IFwibWlkZGxlXCI7XG4gICAgTWVkaWFUcmF5W1wiQk9UVE9NXCJdID0gXCJib3R0b21cIjtcbiAgICBNZWRpYVRyYXlbXCJFTlZFTE9QRVwiXSA9IFwiZW52ZWxvcGVcIjtcbiAgICBNZWRpYVRyYXlbXCJNQU5VQUxcIl0gPSBcIm1hbnVhbFwiO1xuICAgIE1lZGlhVHJheVtcIkxBUkdFX0NBUEFDSVRZXCJdID0gXCJsYXJnZS1jYXBhY2l0eVwiO1xuICAgIE1lZGlhVHJheVtcIk1BSU5cIl0gPSBcIm1haW5cIjtcbiAgICBNZWRpYVRyYXlbXCJTSURFXCJdID0gXCJzaWRlXCI7XG59KShNZWRpYVRyYXkgfHwgKE1lZGlhVHJheSA9IHt9KSk7XG4vLyDorr7nva7miZPljbDmnLrmlrnlkJFcbmV4cG9ydCB2YXIgT3JpZW50YXRpb25SZXF1ZXN0ZWQ7XG4oZnVuY3Rpb24gKE9yaWVudGF0aW9uUmVxdWVzdGVkKSB7XG4gICAgT3JpZW50YXRpb25SZXF1ZXN0ZWRbXCJQT1JUUkFJVFwiXSA9IFwicG9ydHJhaXRcIjtcbiAgICBPcmllbnRhdGlvblJlcXVlc3RlZFtcIkxBTkRTQ0FQRVwiXSA9IFwibGFuZHNjYXBlXCI7XG4gICAgT3JpZW50YXRpb25SZXF1ZXN0ZWRbXCJSRVZFUlNFX0xBTkRTQ0FQRVwiXSA9IFwicmV2ZXJzZUxhbmRzY2FwZVwiO1xuICAgIE9yaWVudGF0aW9uUmVxdWVzdGVkW1wiUkVWRVJTRV9QT1JUUkFJVFwiXSA9IFwicmV2ZXJzZVBvcnRyYWl0XCI7XG59KShPcmllbnRhdGlvblJlcXVlc3RlZCB8fCAoT3JpZW50YXRpb25SZXF1ZXN0ZWQgPSB7fSkpO1xuZXhwb3J0IHZhciBTY2FsaW5nO1xuKGZ1bmN0aW9uIChTY2FsaW5nKSB7XG4gICAgU2NhbGluZ1tcIkFDVFVBTF9TSVpFXCJdID0gXCJhY3R1YWwtc2l6ZVwiO1xuICAgIFNjYWxpbmdbXCJTSFJJTktfVE9fRklUXCJdID0gXCJzaHJpbmstdG8tZml0c1wiO1xuICAgIFNjYWxpbmdbXCJTVFJFVENIX1RPX0ZJVFwiXSA9IFwic3RyZXRjaC10by1maXRzXCI7XG4gICAgU2NhbGluZ1tcIlNDQUxFX1RPX0ZJVFwiXSA9IFwic2NhbGUtdG8tZml0c1wiO1xufSkoU2NhbGluZyB8fCAoU2NhbGluZyA9IHt9KSk7XG5leHBvcnQgdmFyIFN1YnNldDtcbihmdW5jdGlvbiAoU3Vic2V0KSB7XG4gICAgU3Vic2V0W1wiQUxMXCJdID0gXCJhbGxcIjtcbiAgICBTdWJzZXRbXCJPRERcIl0gPSBcIm9kZFwiO1xuICAgIFN1YnNldFtcIkVWRU5cIl0gPSBcImV2ZW5cIjtcbn0pKFN1YnNldCB8fCAoU3Vic2V0ID0ge30pKTtcbmV4cG9ydCB2YXIgUHJpbnRlckFjdGlvbnM7XG4oZnVuY3Rpb24gKFByaW50ZXJBY3Rpb25zKSB7XG4gICAgUHJpbnRlckFjdGlvbnNbXCJERUZBVUxUXCJdID0gXCJkZWZhdWx0XCI7XG4gICAgUHJpbnRlckFjdGlvbnNbXCJQUklOVEVSU1wiXSA9IFwicHJpbnRlcnNcIjtcbiAgICBQcmludGVyQWN0aW9uc1tcIlNJWkVJTkZPXCJdID0gXCJzaXplSW5mb1wiO1xuICAgIFByaW50ZXJBY3Rpb25zW1wiU0laRUlORk9TXCJdID0gXCJzaXplSW5mb3NcIjtcbiAgICBQcmludGVyQWN0aW9uc1tcIlBSSU5UXCJdID0gXCJwcmludFwiO1xufSkoUHJpbnRlckFjdGlvbnMgfHwgKFByaW50ZXJBY3Rpb25zID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFXNWtaWGd1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk5emNtTXZkSGx3WlhNdmFXNWtaWGd1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQmVVSkJMRTlCUVU4N1FVRkRVQ3hOUVVGTkxFTkJRVTRzU1VGQldTeGhRVEJGV0R0QlFURkZSQ3hYUVVGWkxHRkJRV0U3U1VGRGRrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNiME5CUVcxQ0xFTkJRVUU3U1VGRGJrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNiME5CUVcxQ0xFTkJRVUU3U1VGRGJrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNiME5CUVcxQ0xFTkJRVUU3U1VGRGJrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNkME5CUVhWQ0xFTkJRVUU3U1VGRGRrSXNjME5CUVhGQ0xFTkJRVUU3U1VGRGNrSXNkME5CUVhWQ0xFTkJRVUU3U1VGRGRrSXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNiME5CUVcxQ0xFTkJRVUU3U1VGRGJrSXNiME5CUVcxQ0xFTkJRVUU3U1VGRGJrSXNaME5CUVdVc1EwRkJRVHRKUVVObUxHdERRVUZwUWl4RFFVRkJPMGxCUTJwQ0xIZEVRVUYxUXl4RFFVRkJPMGxCUTNaRExEWkVRVUUwUXl4RFFVRkJPMGxCUXpWRExIZENRVUZQTEVOQlFVRTdTVUZEVUN4M1FrRkJUeXhEUVVGQk8wbEJRMUFzZDBKQlFVOHNRMEZCUVR0SlFVTlFMSGRDUVVGUExFTkJRVUU3U1VGRFVDeDNRa0ZCVHl4RFFVRkJPMGxCUTFBc05FUkJRVEpETEVOQlFVRTdTVUZETTBNc2IwUkJRVzFETEVOQlFVRTdTVUZEYmtNc2MwUkJRWEZETEVOQlFVRTdTVUZEY2tNc2QwUkJRWFZETEVOQlFVRTdTVUZEZGtNc09FUkJRVFpETEVOQlFVRTdTVUZETjBNc1owVkJRU3RETEVOQlFVRTdTVUZETDBNc1owVkJRU3RETEVOQlFVRTdTVUZETDBNc1owVkJRU3RETEVOQlFVRTdTVUZETDBNc1owVkJRU3RETEVOQlFVRTdTVUZETDBNc2IwUkJRVzFETEVOQlFVRTdTVUZEYmtNc2IwUkJRVzFETEVOQlFVRTdTVUZEYmtNc2MwUkJRWEZETEVOQlFVRTdTVUZEY2tNc2MwUkJRWEZETEVOQlFVRTdTVUZEY2tNc2QwUkJRWFZETEVOQlFVRTdTVUZEZGtNc2QwUkJRWFZETEVOQlFVRTdTVUZEZGtNc2QwUkJRWFZETEVOQlFVRTdTVUZEZGtNc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2IwTkJRVzFDTEVOQlFVRTdRVUZEY2tJc1EwRkJReXhGUVRGRlZ5eGhRVUZoTEV0QlFXSXNZVUZCWVN4UlFUQkZlRUk3UVVGRlJDeFBRVUZQTzBGQlExQXNUVUZCVFN4RFFVRk9MRWxCUVZrc1dVRkhXRHRCUVVoRUxGZEJRVmtzV1VGQldUdEpRVU4wUWl4NVEwRkJlVUlzUTBGQlFUdEpRVU42UWl3clFrRkJaU3hEUVVGQk8wRkJRMnBDTEVOQlFVTXNSVUZJVnl4WlFVRlpMRXRCUVZvc1dVRkJXU3hSUVVkMlFqdEJRVVZFTEZOQlFWTTdRVUZEVkN4TlFVRk5MRU5CUVU0c1NVRkJXU3hMUVVsWU8wRkJTa1FzVjBGQldTeExRVUZMTzBsQlEyWXNaME5CUVhWQ0xFTkJRVUU3U1VGRGRrSXNiMFJCUVRKRExFTkJRVUU3U1VGRE0wTXNjMFJCUVRaRExFTkJRVUU3UVVGREwwTXNRMEZCUXl4RlFVcFhMRXRCUVVzc1MwRkJUQ3hMUVVGTExGRkJTV2hDTzBGQlJVUXNUMEZCVHp0QlFVTlFMRTFCUVUwc1EwRkJUaXhKUVVGWkxGTkJVMWc3UVVGVVJDeFhRVUZaTEZOQlFWTTdTVUZEYmtJc2QwSkJRVmNzUTBGQlFUdEpRVU5ZTERoQ1FVRnBRaXhEUVVGQk8wbEJRMnBDTERoQ1FVRnBRaXhEUVVGQk8wbEJRMnBDTEd0RFFVRnhRaXhEUVVGQk8wbEJRM0pDTERoQ1FVRnBRaXhEUVVGQk8wbEJRMnBDTERoRFFVRnBReXhEUVVGQk8wbEJRMnBETERCQ1FVRmhMRU5CUVVFN1NVRkRZaXd3UWtGQllTeERRVUZCTzBGQlEyWXNRMEZCUXl4RlFWUlhMRk5CUVZNc1MwRkJWQ3hUUVVGVExGRkJVM0JDTzBGQlJVUXNWVUZCVlR0QlFVTldMRTFCUVUwc1EwRkJUaXhKUVVGWkxHOUNRVXRZTzBGQlRFUXNWMEZCV1N4dlFrRkJiMEk3U1VGRE9VSXNOa05CUVhGQ0xFTkJRVUU3U1VGRGNrSXNLME5CUVhWQ0xFTkJRVUU3U1VGRGRrSXNPRVJCUVhORExFTkJRVUU3U1VGRGRFTXNORVJCUVc5RExFTkJRVUU3UVVGRGRFTXNRMEZCUXl4RlFVeFhMRzlDUVVGdlFpeExRVUZ3UWl4dlFrRkJiMElzVVVGTEwwSTdRVUZGUkN4TlFVRk5MRU5CUVU0c1NVRkJXU3hQUVV0WU8wRkJURVFzVjBGQldTeFBRVUZQTzBsQlEycENMSE5EUVVFeVFpeERRVUZCTzBsQlF6TkNMREpEUVVGblF5eERRVUZCTzBsQlEyaERMRFpEUVVGclF5eERRVUZCTzBsQlEyeERMSGxEUVVFNFFpeERRVUZCTzBGQlEyaERMRU5CUVVNc1JVRk1WeXhQUVVGUExFdEJRVkFzVDBGQlR5eFJRVXRzUWp0QlFVVkVMRTFCUVUwc1EwRkJUaXhKUVVGWkxFMUJTVmc3UVVGS1JDeFhRVUZaTEUxQlFVMDdTVUZEYUVJc2NVSkJRVmNzUTBGQlFUdEpRVU5ZTEhGQ1FVRlhMRU5CUVVFN1NVRkRXQ3gxUWtGQllTeERRVUZCTzBGQlEyWXNRMEZCUXl4RlFVcFhMRTFCUVUwc1MwRkJUaXhOUVVGTkxGRkJTV3BDTzBGQlJVUXNUVUZCVFN4RFFVRk9MRWxCUVZrc1kwRk5XRHRCUVU1RUxGZEJRVmtzWTBGQll6dEpRVU40UWl4eFEwRkJiVUlzUTBGQlFUdEpRVU51UWl4MVEwRkJjVUlzUTBGQlFUdEpRVU55UWl4MVEwRkJjVUlzUTBGQlFUdEpRVU55UWl4NVEwRkJkVUlzUTBGQlFUdEpRVU4yUWl4cFEwRkJaU3hEUVVGQk8wRkJRMnBDTEVOQlFVTXNSVUZPVnl4alFVRmpMRXRCUVdRc1kwRkJZeXhSUVUxNlFpSjkiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJmc1wiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcIm5vZGU6cGF0aFwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcIm5vZGU6cHJvY2Vzc1wiKTsiLCJpbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuLyoqXG5DaGVjayBpZiB0aGUgY29kZSBpcyBydW5uaW5nIGluIGFuIEVsZWN0cm9uIGVudmlyb25tZW50LlxuXG5AZXhhbXBsZVxuYGBgXG5pbXBvcnQge2lzRWxlY3Ryb259IGZyb20gJ2VsZWN0cm9uLXV0aWwvbm9kZSc7XG5cbmNvbnNvbGUubG9nKGlzRWxlY3Ryb24pO1xuLy89PiB0cnVlIHdoZW4gaW4gRWxlY3Ryb24sIGZhbHNlIHdoZW4gaW4gTm9kZS5qc1xuYGBgXG4qL1xuZXhwb3J0IGNvbnN0IGlzRWxlY3Ryb24gPSAnZWxlY3Ryb24nIGluIHByb2Nlc3MudmVyc2lvbnM7XG4vKipcbkNoZWNrIGlmIHRoZSBhcHAgaXMgdXNpbmcgW0FTQVJdKGh0dHBzOi8vZWxlY3Ryb25qcy5vcmcvZG9jcy90dXRvcmlhbC9hcHBsaWNhdGlvbi1wYWNrYWdpbmcvKS5cblxuQGV4YW1wbGVcbmBgYFxuaW1wb3J0IHtpc1VzaW5nQXNhcn0gZnJvbSAnZWxlY3Ryb24tdXRpbC9ub2RlJztcblxuaWYgKGlzVXNpbmdBc2FyKSB7XG4gICAgY29uc29sZS5sb2coJ1J1bm5pbmcgZnJvbSBhbiBBU0FSIGFyY2hpdmUnKTtcbn1cbmBgYFxuKi9cbmV4cG9ydCBjb25zdCBpc1VzaW5nQXNhciA9IGlzRWxlY3Ryb24gJiYgcHJvY2Vzcy5hcmd2LnNvbWUoYXJndW1lbnQgPT4gYXJndW1lbnQ/LmluY2x1ZGVzKCdhcHAuYXNhcicpKTtcbi8qKlxuRWxlY3Ryb24gdmVyc2lvbi5cblxuQGV4YW1wbGVcbmBgYFxuJzEuNy45J1xuYGBgXG4qL1xuZXhwb3J0IGNvbnN0IGVsZWN0cm9uVmVyc2lvbiA9IHByb2Nlc3MudmVyc2lvbnMuZWxlY3Ryb24gPz8gJzAuMC4wJztcbi8qKlxuQVNBUiBpcyBncmVhdCwgYnV0IGl0IGhhcyBbbGltaXRhdGlvbnMgd2hlbiBpdCBjb21lcyB0byBleGVjdXRpbmcgYmluYXJpZXNdKGh0dHBzOi8vZWxlY3Ryb25qcy5vcmcvZG9jcy90dXRvcmlhbC9hcHBsaWNhdGlvbi1wYWNrYWdpbmcvI2V4ZWN1dGluZy1iaW5hcmllcy1pbnNpZGUtYXNhci1hcmNoaXZlKS5cbkZvciBleGFtcGxlLCBbYGNoaWxkX3Byb2Nlc3Muc3Bhd24oKWAgaXMgbm90IGF1dG9tYXRpY2FsbHkgaGFuZGxlZF0oaHR0cHM6Ly9naXRodWIuY29tL2VsZWN0cm9uL2VsZWN0cm9uL2lzc3Vlcy85NDU5KS5cblNvIHlvdSB3b3VsZCBoYXZlIHRvIHVucGFjayB0aGUgYmluYXJ5LCBmb3IgZXhhbXBsZSwgd2l0aCB0aGUgW2Bhc2FyVW5wYWNrYF0oaHR0cHM6Ly93d3cuZWxlY3Ryb24uYnVpbGQvY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uI2NvbmZpZ3VyYXRpb24tYXNhclVucGFjaykgb3B0aW9uIGluIGBlbGVjdHJvbi1idWlsZGVyYC5cblRoaXMgY3JlYXRlcyBhIHByb2JsZW0gYXMgdGhlIHBhdGggdG8gdGhlIGJpbmFyeSBjaGFuZ2VzLCBidXQgeW91ciBgcGF0aC5qb2luKF9fZGlybmFtZSwgJ2JpbmFyeScpYCBpcyBub3QgY2hhbmdlZC5cblRvIG1ha2UgaXQgd29yayB5b3UgbmVlZCB0byBmaXggdGhlIHBhdGguIFRoYXQncyB0aGUgcHVycG9zZSBvZiB0aGlzIG1ldGhvZC5cblxuQmVmb3JlOlxuL1VzZXJzL3NpbmRyZXNvcmh1cy9LYXAuYXBwL0NvbnRlbnRzL1Jlc291cmNlcy9hcHAuYXNhci9ub2RlX21vZHVsZXMvZm9vL2JpbmFyeVxuXG5BZnRlcjpcbi9Vc2Vycy9zaW5kcmVzb3JodXMvS2FwLmFwcC9Db250ZW50cy9SZXNvdXJjZXMvYXBwLmFzYXIudW5wYWNrZWQvbm9kZV9tb2R1bGVzL2Zvby9iaW5hcnlcblxuQHBhcmFtIHBhdGggLSBBIHBhdGggaW4geW91ciBhcHAuXG5AcmV0dXJucyBUaGUgZml4ZWQgcGF0aC5cblxuQGV4YW1wbGVcbmBgYFxuaW1wb3J0IHtmaXhQYXRoRm9yQXNhclVucGFja30gZnJvbSAnZWxlY3Ryb24tdXRpbC9ub2RlJztcblxuY29uc3QgYmluYXJ5UGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdiaW5hcnknKTtcbmNvbnN0IGZpeGVkUGF0aCA9IGZpeFBhdGhGb3JBc2FyVW5wYWNrKGJpbmFyeVBhdGgpO1xuLy89PiAnL3BhdGgvdG8vYXBwLmFzYXIudW5wYWNrZWQvYmluYXJ5JyB3aGVuIGluIEFTQVJcbi8vPT4gJy9wYXRoL3RvL2JpbmFyeScgb3RoZXJ3aXNlXG5gYGBcbiovXG5leHBvcnQgY29uc3QgZml4UGF0aEZvckFzYXJVbnBhY2sgPSAocGF0aCkgPT4gaXNVc2luZ0FzYXIgPyBwYXRoLnJlcGxhY2VBbGwoJ2FwcC5hc2FyJywgJ2FwcC5hc2FyLnVucGFja2VkJykgOiBwYXRoO1xuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJub2RlOm9zXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiZmluZC1qYXZhLWhvbWVcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJqYXZhLWNhbGxlclwiKTsiLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XG4gICAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbi8vIOWwneivleWKoOS4iiAuanMg5pi+5byP5ZCO57yAXG5pbXBvcnQgeyBmaXhQYXRoRm9yQXNhclVucGFjayB9IGZyb20gXCJlbGVjdHJvbi11dGlsL25vZGVcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgZmluZEphdmFIb21lIGZyb20gXCJmaW5kLWphdmEtaG9tZVwiO1xuaW1wb3J0IHsgSmF2YUNhbGxlciB9IGZyb20gXCJqYXZhLWNhbGxlclwiO1xudmFyIHBhdGggPSBqb2luKF9fZGlybmFtZSwgXCJwcmludGVyLmphclwiKTtcbnZhciBmaXhQYXRoID0gZml4UGF0aEZvckFzYXJVbnBhY2socGF0aCk7XG52YXIgamF2YUFyZ3MgPSBbXCItRGZpbGUuZW5jb2Rpbmc9VVRGLThcIl07XG4vLyDop6PlhrNsaW51eOS4i+aJk+WNsOacuuadg+mZkOmXrumimO+8jGphcuW8ueeql+mcgOimgeWuieijhWxpYmF0ay13cmFwcGVyLWphdmFcbmlmIChvcy5wbGF0Zm9ybSgpID09IFwibGludXhcIikge1xuICAgIGphdmFBcmdzLnB1c2goXCItRGphdmF4LmFjY2Vzc2liaWxpdHkuYXNzaXN0aXZlX3RlY2hub2xvZ2llcz0nICdcIik7XG59XG52YXIgUGFyYW1ldGVyID0gXCJcIi5jb25jYXQoZml4UGF0aCk7XG4vKipcbiAqIOaguOW/g++8muWwgeijheaJi+WKqCBQcm9taXNlIOmAu+i+kVxuICog6Kej5YazIFRTIOmhtuWxgiBhd2FpdCDpmZDliLZcbiAqL1xuZnVuY3Rpb24gaW5pdEphdmEoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgaW5zdGFuY2UsIGhvbWVQYXRoLCBjYWxsZXJPcHRpb25zLCBleGVOYW1lO1xuICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKF9hLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiByZXR1cm4gWzQgLyp5aWVsZCovLCBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaW5kSmF2YUhvbWUoeyBhbGxvd0pyZTogdHJ1ZSB9LCBmdW5jdGlvbiAoZXJyLCBob21lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVyciB8fCAhaG9tZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyIHx8IG5ldyBFcnJvcihcIkphdmEgSG9tZSBub3QgZm91bmRcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShob21lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSldO1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgaG9tZVBhdGggPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxlck9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBqYXI6IFBhcmFtZXRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1haW5DbGFzczogXCJjb20udGsubHlpbi5QcmludGVyc1wiLCAvLyDnoa7kv53ljrvmjonkuobmnKvlsL7pgJflj7dcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxKYXZhQXJnczogamF2YUFyZ3MsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChob21lUGF0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhlTmFtZSA9IG9zLnBsYXRmb3JtKCkgPT09IFwid2luMzJcIiA/IFwiamF2YS5leGVcIiA6IFwiamF2YVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5omL5Yqo5oyH5a6a5omn6KGM6Lev5b6EXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsZXJPcHRpb25zLmphdmFFeGVjdXRhYmxlID0gZml4UGF0aEZvckFzYXJVbnBhY2soam9pbihob21lUGF0aCwgXCJiaW5cIiwgZXhlTmFtZSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbmV3IEphdmFDYWxsZXIoY2FsbGVyT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovLCBpbnN0YW5jZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuZXhwb3J0IHZhciBydW4gPSBmdW5jdGlvbiAocHJpbnRlcikgeyByZXR1cm4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgYXJncywgcHJpbnRlck5hbWUsIGphdmEsIF9hLCBzdGF0dXMsIHN0ZG91dCwgc3RkZXJyO1xuICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2IpIHtcbiAgICAgICAgc3dpdGNoIChfYi5sYWJlbCkge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgICAgICBhcmdzLnB1c2gocHJpbnRlci5hcmcpO1xuICAgICAgICAgICAgICAgIHByaW50ZXJOYW1lID0gcHJpbnRlci5wcmludGVyTmFtZTtcbiAgICAgICAgICAgICAgICBpZiAocHJpbnRlck5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgYXJncy5wdXNoKHByaW50ZXJOYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgaW5pdEphdmEoKV07XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgamF2YSA9IF9iLnNlbnQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBqYXZhLnJ1bihhcmdzKV07XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgX2EgPSBfYi5zZW50KCksIHN0YXR1cyA9IF9hLnN0YXR1cywgc3Rkb3V0ID0gX2Euc3Rkb3V0LCBzdGRlcnIgPSBfYS5zdGRlcnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi8sIHN0ZG91dCA/IHN0ZG91dC50cmltKCkgOiBcInt9XCJdO1xuICAgICAgICB9XG4gICAgfSk7XG59KTsgfTtcbmV4cG9ydCB2YXIgcHJpbnRSdW4gPSBmdW5jdGlvbiAocHJpbnRlciwgcHJpbnQpIHsgcmV0dXJuIF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGphdmEsIGJhc2U2NFN0ciwgX2EsIHN0YXR1cywgc3Rkb3V0LCBzdGRlcnI7XG4gICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYikge1xuICAgICAgICBzd2l0Y2ggKF9iLmxhYmVsKSB7XG4gICAgICAgICAgICBjYXNlIDA6IHJldHVybiBbNCAvKnlpZWxkKi8sIGluaXRKYXZhKCldO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIGphdmEgPSBfYi5zZW50KCk7XG4gICAgICAgICAgICAgICAgYmFzZTY0U3RyID0gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkocHJpbnQpLnRyaW0oKSkudG9TdHJpbmcoXCJiYXNlNjRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgamF2YS5ydW4oW3ByaW50ZXIuYXJnLCBiYXNlNjRTdHJdLCB7IHdpbmRvd3NIaWRlOiBmYWxzZSB9KV07XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgX2EgPSBfYi5zZW50KCksIHN0YXR1cyA9IF9hLnN0YXR1cywgc3Rkb3V0ID0gX2Euc3Rkb3V0LCBzdGRlcnIgPSBfYS5zdGRlcnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi9dO1xuICAgICAgICB9XG4gICAgfSk7XG59KTsgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFtRjJZUzExZEdsc0xtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZjM0pqTDNWMGFXeHpMMnBoZG1FdGRYUnBiQzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UVVGQlFTeFBRVUZQTEVWQlFVTXNTVUZCU1N4RlFVRkRMRTFCUVUwc1YwRkJWeXhEUVVGRE8wRkJSeTlDTEdkQ1FVRm5RanRCUVVOb1FpeFBRVUZQTEVWQlFVTXNiMEpCUVc5Q0xFVkJRVU1zVFVGQlRTeHZRa0ZCYjBJc1EwRkJRenRCUVVONFJDeFBRVUZQTEV0QlFVc3NSVUZCUlN4TlFVRk5MRk5CUVZNc1EwRkJRenRCUVVNNVFpeFBRVUZQTEZsQlFWa3NUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU14UXl4UFFVRlBMRVZCUVVNc1ZVRkJWU3hGUVVGdlFpeE5RVUZOTEdGQlFXRXNRMEZCUXp0QlFVY3hSQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMR0ZCUVdFc1EwRkJReXhEUVVGRE8wRkJRekZETEVsQlFVa3NUMEZCVHl4SFFVRkhMRzlDUVVGdlFpeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTNwRExFbEJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlF6dEJRVU16UXl3clEwRkJLME03UVVGREwwTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxFbEJRVWtzVDBGQlR5eEZRVUZGTEVOQlFVTTdTVUZETTBJc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eHJSRUZCYTBRc1EwRkJReXhEUVVGRE8wRkJRM1JGTEVOQlFVTTdRVUZGUkN4SlFVRk5MRk5CUVZNc1IwRkJSeXhWUVVGSExFOUJRVThzUTBGQlJTeERRVUZETzBGQlJTOUNPenM3UjBGSFJ6dEJRVU5JTEZOQlFXVXNVVUZCVVRzN096czdkMEpCUjBvc2NVSkJRVTBzU1VGQlNTeFBRVUZQTEVOQlFWTXNWVUZCUXl4UFFVRlBMRVZCUVVVc1RVRkJUVHQzUWtGRGNrUXNXVUZCV1N4RFFVRkRMRVZCUVVNc1VVRkJVU3hGUVVGRkxFbEJRVWtzUlVGQlF5eEZRVUZGTEZWQlFVTXNSMEZCUnl4RlFVRkZMRWxCUVVrN05FSkJRM0pETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03WjBOQlEyWXNUVUZCVFN4RFFVRkRMRWRCUVVjc1NVRkJTU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRExFTkJRVU03TkVKQlEzQkVMRU5CUVVNN2FVTkJRVTBzUTBGQlF6dG5RMEZEU2l4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03TkVKQlEyeENMRU5CUVVNN2QwSkJRMHdzUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTFBc1EwRkJReXhEUVVGRExFVkJRVUU3TzI5Q1FWSkZMRkZCUVZFc1IwRkJSeXhUUVZGaU8yOUNRVWRKTEdGQlFXRXNSMEZCYzBJN2QwSkJRM0pETEVkQlFVY3NSVUZCUlN4VFFVRlRPM2RDUVVOa0xGTkJRVk1zUlVGQlJTeHpRa0ZCYzBJc1JVRkJSU3haUVVGWk8zZENRVU12UXl4clFrRkJhMElzUlVGQlJTeFJRVUZSTzNGQ1FVTXZRaXhEUVVGQk8yOUNRVVZFTEVsQlFVa3NVVUZCVVN4RlFVRkZMRU5CUVVNN2QwSkJRMHdzVDBGQlR5eEhRVUZITEVWQlFVVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1MwRkJTeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRE8zZENRVU5vUlN4WFFVRlhPM2RDUVVOWUxHRkJRV0VzUTBGQlF5eGpRVUZqTEVkQlFVY3NiMEpCUVc5Q0xFTkJReTlETEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1MwRkJTeXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVU5xUXl4RFFVRkRPMjlDUVVOT0xFTkJRVU03YjBKQlEwUXNVVUZCVVN4SFFVRkhMRWxCUVVrc1ZVRkJWU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzI5Q1FVVjZReXh6UWtGQlR5eFJRVUZSTEVWQlFVTTdPenM3UTBGRGJrSTdRVUZGUkN4TlFVRk5MRU5CUVVNc1NVRkJUU3hIUVVGSExFZEJRVWNzVlVGQlR5eFBRVUZuUWpzN096czdaMEpCUTJoRExFbEJRVWtzUjBGQllTeEZRVUZGTEVOQlFVTTdaMEpCUXpGQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU5xUWl4WFFVRlhMRWRCUVVjc1QwRkJUeXhEUVVGRExGZEJRVmNzUTBGQlF6dG5Ra0ZEZUVNc1NVRkJTU3hYUVVGWExFVkJRVVVzUTBGQlF6dHZRa0ZEWkN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzJkQ1FVTXpRaXhEUVVGRE8yZENRVU5aTEhGQ1FVRk5MRkZCUVZFc1JVRkJSU3hGUVVGQk96dG5Ra0ZCZGtJc1NVRkJTU3hIUVVGSExGTkJRV2RDTzJkQ1FVTkpMSEZDUVVGTkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVFN08yZENRVUV2UXl4TFFVRXlRaXhUUVVGdlFpeEZRVUU1UXl4TlFVRk5MRmxCUVVFc1JVRkJSU3hOUVVGTkxGbEJRVUVzUlVGQlJTeE5RVUZOTEZsQlFVRTdaMEpCUXpkQ0xITkNRVUZQTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVNN096dExRVU40UXl4RFFVRkRPMEZCUlVZc1RVRkJUU3hEUVVGRExFbEJRVTBzVVVGQlVTeEhRVUZITEZWQlEzQkNMRTlCUVdkQ0xFVkJRMmhDTEV0QlFXMUNPenM3TzI5Q1FVVk9MSEZDUVVGTkxGRkJRVkVzUlVGQlJTeEZRVUZCT3p0blFrRkJka0lzU1VGQlNTeEhRVUZITEZOQlFXZENPMmRDUVVOMlFpeFRRVUZUTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zVVVGQlVTeERRVU5vUlN4UlFVRlJMRU5CUTFnc1EwRkJRenRuUWtGREswSXNjVUpCUVUwc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRVZCUVVVc1UwRkJVeXhEUVVGRExFVkJRVVVzUlVGQlF5eFhRVUZYTEVWQlFVVXNTMEZCU3l4RlFVRkRMRU5CUVVNc1JVRkJRVHM3WjBKQlFYcEdMRXRCUVRKQ0xGTkJRVGhFTEVWQlFYaEdMRTFCUVUwc1dVRkJRU3hGUVVGRkxFMUJRVTBzV1VGQlFTeEZRVUZGTEUxQlFVMHNXVUZCUVRzN096dExRVU5vUXl4RFFVRkRJbjA9IiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGcgPSBPYmplY3QuY3JlYXRlKCh0eXBlb2YgSXRlcmF0b3IgPT09IFwiZnVuY3Rpb25cIiA/IEl0ZXJhdG9yIDogT2JqZWN0KS5wcm90b3R5cGUpO1xuICAgIHJldHVybiBnLm5leHQgPSB2ZXJiKDApLCBnW1widGhyb3dcIl0gPSB2ZXJiKDEpLCBnW1wicmV0dXJuXCJdID0gdmVyYigyKSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbi8vIOebtOaOpeaJk+WNsFxuaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgUHJpbnRlckFjdGlvbnMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHByaW50UnVuIH0gZnJvbSBcIi4uL3V0aWxzL2phdmEtdXRpbFwiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcHJpbnQocHJpbnRlcikge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHBkZjtcbiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgcGRmID0gcHJpbnRlci5wZGY7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcGRmKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgXCJObyBQREYgc3BlY2lmaWVkXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhwZGYpKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgXCJObyBzdWNoIGZpbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgcHJpbnRSdW4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzogUHJpbnRlckFjdGlvbnMuUFJJTlQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBwcmludGVyKV07XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljSEpwYm5RdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOXpjbU12Y0hKcGJuUXZjSEpwYm5RdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJRVUVzVDBGQlR6dEJRVU5RTEU5QlFVOHNSVUZCUlN4TlFVRk5MRWxCUVVrc1EwRkJRenRCUVVOd1FpeFBRVUZQTEVWQlFVTXNZMEZCWXl4RlFVRmxMRTFCUVUwc1ZVRkJWU3hEUVVGRE8wRkJRM1JFTEU5QlFVOHNSVUZCUXl4UlFVRlJMRVZCUVVNc1RVRkJUU3h2UWtGQmIwSXNRMEZCUXp0QlFVVTFReXhOUVVGTkxFTkJRVU1zVDBGQlR5eFZRVUZuUWl4TFFVRkxMRU5CUVVNc1QwRkJjVUk3T3pzN096dHZRa0ZETDBNc1IwRkJSeXhIUVVGSExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTTdiMEpCUTNoQ0xFbEJRVWtzUTBGQlF5eEhRVUZITzNkQ1FVRkZMRTFCUVUwc2EwSkJRV3RDTEVOQlFVTTdiMEpCUTI1RExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJRenQzUWtGQlJTeE5RVUZOTEdOQlFXTXNRMEZCUXp0dlFrRkRPVU1zY1VKQlFVMHNVVUZCVVN4RFFVTldPelJDUVVOQkxFZEJRVWNzUlVGQlJTeGpRVUZqTEVOQlFVTXNTMEZCU3p0NVFrRkRlRUlzUlVGRFJDeFBRVUZQTEVOQlExWXNSVUZCUVRzN2IwSkJURVFzVTBGTFF5eERRVUZET3pzN096dERRVU5NSW4wPSIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKTtcbiAgICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKGcgJiYgKGcgPSAwLCBvcFswXSAmJiAoXyA9IDApKSwgXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG5pbXBvcnQgeyBQcmludGVyQWN0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgcnVuIH0gZnJvbSBcIi4uL3V0aWxzL2phdmEtdXRpbFwiO1xuZnVuY3Rpb24gZ2V0UHJpbnRlcnMoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcmVzdWx0LCBlcnJvcl8xO1xuICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKF9hLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBfYS50cnlzLnB1c2goWzAsIDIsICwgM10pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBydW4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzogUHJpbnRlckFjdGlvbnMuUFJJTlRFUlMsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KV07XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovLCBKU09OLnBhcnNlKHJlc3VsdCldO1xuICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JfMSA9IF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3JfMTtcbiAgICAgICAgICAgICAgICBjYXNlIDM6IHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5leHBvcnQgZGVmYXVsdCBnZXRQcmludGVycztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVoyVjBMWEJ5YVc1MFpYSnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2YzNKakwyZGxkQzF3Y21sdWRHVnljeTluWlhRdGNISnBiblJsY25NdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJRVUVzVDBGQlR5eEZRVUZWTEdOQlFXTXNSVUZCUXl4TlFVRk5MRlZCUVZVc1EwRkJRenRCUVVOcVJDeFBRVUZQTEVWQlFVTXNSMEZCUnl4RlFVRkRMRTFCUVUwc2IwSkJRVzlDTEVOQlFVTTdRVUZGZGtNc1UwRkJaU3hYUVVGWE96czdPenM3TzI5Q1FVVlVMSEZDUVVGTkxFZEJRVWNzUTBGQlF6czBRa0ZEY2tJc1IwRkJSeXhGUVVGRkxHTkJRV01zUTBGQlF5eFJRVUZSTzNsQ1FVTTNRaXhEUVVGRExFVkJRVUU3TzI5Q1FVWkZMRTFCUVUwc1IwRkJSeXhUUVVWWU8yOUNRVU5HTEhOQ1FVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVTTdPenR2UWtGRk1VSXNUVUZCVFN4UFFVRkxMRU5CUVVNN096czdPME5CUldZN1FVRkZSQ3hsUVVGbExGZEJRVmNzUTBGQlF5SjkiLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XG4gICAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xuaW1wb3J0IHsgUHJpbnRlckFjdGlvbnMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHJ1biB9IGZyb20gXCIuLi91dGlscy9qYXZhLXV0aWxcIjtcbmZ1bmN0aW9uIGdldERlZmF1bHRQcmludGVyKCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHJlc3VsdCwgZXJyb3JfMTtcbiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgX2EudHJ5cy5wdXNoKFswLCAyLCAsIDNdKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgcnVuKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc6IFByaW50ZXJBY3Rpb25zLkRFRkFVTFQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KV07XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovLCBKU09OLnBhcnNlKHJlc3VsdCldO1xuICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JfMSA9IF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3JfMTtcbiAgICAgICAgICAgICAgICBjYXNlIDM6IHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5leHBvcnQgZGVmYXVsdCBnZXREZWZhdWx0UHJpbnRlcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVoyVjBMV1JsWm1GMWJIUXRjSEpwYm5SbGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5blpYUXRaR1ZtWVhWc2RDMXdjbWx1ZEdWeUwyZGxkQzFrWldaaGRXeDBMWEJ5YVc1MFpYSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCUVVFc1QwRkJUeXhGUVVGVkxHTkJRV01zUlVGQlF5eE5RVUZOTEZWQlFWVXNRMEZCUXp0QlFVTnFSQ3hQUVVGUExFVkJRVU1zUjBGQlJ5eEZRVUZETEUxQlFVMHNiMEpCUVc5Q0xFTkJRVU03UVVGRmRrTXNVMEZCWlN4cFFrRkJhVUk3T3pzN096czdiMEpCUldZc2NVSkJRVTBzUjBGQlJ5eERRVUZET3pSQ1FVTnlRaXhIUVVGSExFVkJRVVVzWTBGQll5eERRVUZETEU5QlFVODdlVUpCUXpWQ0xFTkJRVU1zUlVGQlFUczdiMEpCUmtVc1RVRkJUU3hIUVVGSExGTkJSVmc3YjBKQlEwWXNjMEpCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUXpzN08yOUNRVVV4UWl4TlFVRk5MRTlCUVVzc1EwRkJRenM3T3pzN1EwRkZaanRCUVVWRUxHVkJRV1VzYVVKQlFXbENMRU5CUVVNaWZRPT0iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XG4gICAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xudmFyIF9fc3ByZWFkQXJyYXkgPSAodGhpcyAmJiB0aGlzLl9fc3ByZWFkQXJyYXkpIHx8IGZ1bmN0aW9uICh0bywgZnJvbSwgcGFjaykge1xuICAgIGlmIChwYWNrIHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIGkgPSAwLCBsID0gZnJvbS5sZW5ndGgsIGFyOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcbiAgICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XG4gICAgICAgICAgICBhcltpXSA9IGZyb21baV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRvLmNvbmNhdChhciB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tKSk7XG59O1xuaW1wb3J0IHsgUHJpbnRlckFjdGlvbnMsIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBydW4gfSBmcm9tIFwiLi4vdXRpbHMvamF2YS11dGlsXCI7XG4vKipcbiAqIOiOt+WPluaMh+WumuaJk+WNsOacuuaJgOaUr+aMgeeahOe6uOW8oOWkp+WwjyzlpoLmnpzmg7Pojrflj5bpu5jorqTmiZPljbDmnLrnurjlvKDlpKflsI8gb3B0aW9ucy5wcmludGVyIOivt+S9v+eUqOepuuWtl+esplxuICogR2V0IHRoZSBwYXBlciBzaXplIHN1cHBvcnRlZCBieSB0aGUgc3BlY2lmaWVkIHByaW50ZXIsIGlmIHlvdSB3YW50IHRvIGdldCB0aGUgZGVmYXVsdCBwcmludGVyIHBhcGVyIHNpemUgb3B0aW9ucy5wcmludGVyIFBsZWFzZSB1c2UgYSBibGFuayBjaGFyYWN0ZXJcbiAqL1xuZXhwb3J0IHZhciBnZXRQYXBlclNpemVJbmZvID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBhcmdzXzEgPSBbXTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICBhcmdzXzFbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICB9XG4gICAgcmV0dXJuIF9fYXdhaXRlcih2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIGFyZ3NfMSwgdHJ1ZSksIHZvaWQgMCwgZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHJlc3VsdCwgZXJyb3JfMTtcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0geyBwcmludGVyOiBcIlwiIH07IH1cbiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgX2EudHJ5cy5wdXNoKFswLCAyLCAsIDNdKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgcnVuKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc6IFByaW50ZXJBY3Rpb25zLlNJWkVJTkZPLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZXJOYW1lOiBvcHRpb25zLnByaW50ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KV07XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovLCBKU09OLnBhcnNlKHJlc3VsdCldO1xuICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JfMSA9IF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3JfMTtcbiAgICAgICAgICAgICAgICBjYXNlIDM6IHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuLyoqXG4gKiDojrflj5bmiYDmnInmiZPljbDmnLrmiYDmlK/mjIHnmoTnurjlvKDlpKflsI9cbiAqIEdldCB0aGUgcGFwZXIgc2l6ZSBzdXBwb3J0ZWQgYnkgYWxsIHByaW50ZXJzXG4gKiBAcmV0dXJucyBhbGwgcGFwZXJTaXplXG4gKi9cbmV4cG9ydCB2YXIgZ2V0UGFwZXJTaXplSW5mb0FsbCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgYXJnc18xID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgYXJnc18xW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgfVxuICAgIHJldHVybiBfX2F3YWl0ZXIodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBhcmdzXzEsIHRydWUpLCB2b2lkIDAsIGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciByZXN1bHQsIGVycm9yXzI7XG4gICAgICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsgb3B0aW9ucyA9IHt9OyB9XG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoX2EubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIF9hLnRyeXMucHVzaChbMCwgMiwgLCAzXSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIHJ1bih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnOiBQcmludGVyQWN0aW9ucy5TSVpFSU5GT1MsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KV07XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovLCBKU09OLnBhcnNlKHJlc3VsdCldO1xuICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JfMiA9IF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3JfMjtcbiAgICAgICAgICAgICAgICBjYXNlIDM6IHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWjJWMExYQmhjR1Z5TFhOcGVtVXRhVzVtYnk1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzTnlZeTluWlhRdGNHRndaWEl0YzJsNlpTOW5aWFF0Y0dGd1pYSXRjMmw2WlMxcGJtWnZMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRCUVVGQkxFOUJRVThzUlVGQk1rTXNZMEZCWXl4SFFVRkZMRTFCUVUwc1ZVRkJWU3hEUVVGRE8wRkJRMjVHTEU5QlFVOHNSVUZCUXl4SFFVRkhMRVZCUVVNc1RVRkJUU3h2UWtGQmIwSXNRMEZCUXp0QlFVVjJRenM3TzBkQlIwYzdRVUZEU0N4TlFVRk5MRU5CUVVNc1NVRkJUU3huUWtGQlowSXNSMEZCUnpzN096czdaMFpCUXpWQ0xFOUJRVFpET3p0UlFVRTNReXgzUWtGQlFTeEZRVUZCTEZsQlFXbERMRTlCUVU4c1JVRkJSU3hGUVVGRkxFVkJRVU03T3pzN08yOUNRVWRvUXl4eFFrRkJUU3hIUVVGSExFTkJRVU03TkVKQlEzSkNMRWRCUVVjc1JVRkJSU3hqUVVGakxFTkJRVU1zVVVGQlVUczBRa0ZETlVJc1YwRkJWeXhGUVVGRkxFOUJRVThzUTBGQlF5eFBRVUZQTzNsQ1FVTTNRaXhEUVVGRExFVkJRVUU3TzI5Q1FVaEZMRTFCUVUwc1IwRkJSeXhUUVVkWU8yOUNRVU5HTEhOQ1FVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVTTdPenR2UWtGRk1VSXNUVUZCVFN4UFFVRkxMRU5CUVVNN096czdPME5CUldZc1EwRkJRenRCUVVWR096czdPMGRCU1VjN1FVRkRTQ3hOUVVGTkxFTkJRVU1zU1VGQlRTeHRRa0ZCYlVJc1IwRkJSenM3T3pzN1owWkJReTlDTEU5QlFXMUVPenRSUVVGdVJDeDNRa0ZCUVN4RlFVRkJMRmxCUVcxRU96czdPenR2UWtGSGRFTXNjVUpCUVUwc1IwRkJSeXhEUVVGRE96UkNRVU55UWl4SFFVRkhMRVZCUVVVc1kwRkJZeXhEUVVGRExGTkJRVk03ZVVKQlF6bENMRU5CUVVNc1JVRkJRVHM3YjBKQlJrVXNUVUZCVFN4SFFVRkhMRk5CUlZnN2IwSkJRMFlzYzBKQlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlF6czdPMjlDUVVVeFFpeE5RVUZOTEU5QlFVc3NRMEZCUXpzN096czdRMEZGWml4RFFVRkRJbjA9Il0sIm5hbWVzIjpbInJvb3QiLCJmYWN0b3J5IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsImFtZCIsImEiLCJpIiwiZ2xvYmFsIiwiTWVkaWFTaXplTmFtZSIsIkNocm9tYXRpY2l0eSIsIlNpZGVzIiwiTWVkaWFUcmF5IiwiT3JpZW50YXRpb25SZXF1ZXN0ZWQiLCJTY2FsaW5nIiwiU3Vic2V0IiwiUHJpbnRlckFjdGlvbnMiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJjYWNoZWRNb2R1bGUiLCJ1bmRlZmluZWQiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwibiIsImdldHRlciIsIl9fZXNNb2R1bGUiLCJkIiwiZGVmaW5pdGlvbiIsImtleSIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJvYmoiLCJwcm9wIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiciIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJyZXF1aXJlIiwiaXNVc2luZ0FzYXIiLCJzb21lIiwiYXJndW1lbnQiLCJpbmNsdWRlcyIsImZpeFBhdGhGb3JBc2FyVW5wYWNrIiwiZWxlY3Ryb24iLCJwYXRoIiwicmVwbGFjZUFsbCIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiX19nZW5lcmF0b3IiLCJib2R5IiwiZiIsInkiLCJ0IiwiXyIsImxhYmVsIiwic2VudCIsInRyeXMiLCJvcHMiLCJnIiwiY3JlYXRlIiwiSXRlcmF0b3IiLCJ2ZXJiIiwiaXRlcmF0b3IiLCJ0aGlzIiwidiIsIm9wIiwiVHlwZUVycm9yIiwicG9wIiwibGVuZ3RoIiwicHVzaCIsImpvaW4iLCJfX2Rpcm5hbWUiLCJmaXhQYXRoIiwiamF2YUFyZ3MiLCJQYXJhbWV0ZXIiLCJjb25jYXQiLCJpbml0SmF2YSIsImhvbWVQYXRoIiwiY2FsbGVyT3B0aW9ucyIsImV4ZU5hbWUiLCJfYSIsImFsbG93SnJlIiwiZXJyIiwiaG9tZSIsIkVycm9yIiwiamFyIiwibWFpbkNsYXNzIiwiYWRkaXRpb25hbEphdmFBcmdzIiwiamF2YUV4ZWN1dGFibGUiLCJKYXZhQ2FsbGVyIiwicnVuIiwicHJpbnRlciIsImFyZ3MiLCJwcmludGVyTmFtZSIsInN0ZG91dCIsIl9iIiwiYXJnIiwic3RhdHVzIiwic3RkZXJyIiwidHJpbSIsInByaW50UnVuIiwicHJpbnQiLCJqYXZhIiwiYmFzZTY0U3RyIiwiQnVmZmVyIiwiZnJvbSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0b1N0cmluZyIsIndpbmRvd3NIaWRlIiwicGRmIiwiUFJJTlQiLCJQUklOVEVSUyIsInBhcnNlIiwiREVGQVVMVCIsIl9fc3ByZWFkQXJyYXkiLCJ0byIsInBhY2siLCJhcmd1bWVudHMiLCJhciIsImwiLCJBcnJheSIsInNsaWNlIiwiZ2V0UGFwZXJTaXplSW5mbyIsImFyZ3NfMSIsIl9pIiwib3B0aW9ucyIsIlNJWkVJTkZPIiwiZ2V0UGFwZXJTaXplSW5mb0FsbCIsIlNJWkVJTkZPUyJdLCJzb3VyY2VSb290IjoiIn0=
|
package/package.json
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "printer-pdf",
|
|
3
|
-
"version": "5.2.
|
|
4
|
-
"description": "A simple and powerful printing library for node and elctron environments.",
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"repository": {
|
|
7
|
-
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/LyingDoc/printer-pdf.git"
|
|
9
|
-
},
|
|
10
|
-
"publishConfig": {
|
|
11
|
-
"access": "public",
|
|
12
|
-
"registry": "https://registry.npmjs.org/"
|
|
13
|
-
},
|
|
14
|
-
"main": "index.js",
|
|
15
|
-
"types": "index.d.ts",
|
|
16
|
-
"scripts": {
|
|
17
|
-
"test": "esno test/index.ts",
|
|
18
|
-
"lint": "prettier --write \"**/*.{js,ts,json,md,yml}\"",
|
|
19
|
-
"build": "webpack --config webpack.config.ts",
|
|
20
|
-
"lint-build": "npm run lint && npm run build"
|
|
21
|
-
},
|
|
22
|
-
"devDependencies": {
|
|
23
|
-
"@types/node": "^25.
|
|
24
|
-
"@types/webpack": "^5.28.5",
|
|
25
|
-
"@types/webpack-node-externals": "^3.0.4",
|
|
26
|
-
"copy-webpack-plugin": "^13.0.1",
|
|
27
|
-
"electron-util": "^1.0.0",
|
|
28
|
-
"esno": "^4.8.0",
|
|
29
|
-
"prettier": "3.8.1",
|
|
30
|
-
"ts-loader": "^9.5.4",
|
|
31
|
-
"ts-node": "^10.9.2",
|
|
32
|
-
"typescript": "^5.9.3",
|
|
33
|
-
"webpack": "^5.
|
|
34
|
-
"webpack-cli": "^6.0.1",
|
|
35
|
-
"webpack-node-externals": "^3.0.0"
|
|
36
|
-
},
|
|
37
|
-
"dependencies": {
|
|
38
|
-
"find-java-home": "^2.0.0",
|
|
39
|
-
"java-caller": "^4.4.0"
|
|
40
|
-
},
|
|
41
|
-
"keywords": [
|
|
42
|
-
"printer-pdf",
|
|
43
|
-
"pdf",
|
|
44
|
-
"printer",
|
|
45
|
-
"node.js",
|
|
46
|
-
"electron"
|
|
47
|
-
]
|
|
48
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "printer-pdf",
|
|
3
|
+
"version": "5.2.5",
|
|
4
|
+
"description": "A simple and powerful printing library for node and elctron environments.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/LyingDoc/printer-pdf.git"
|
|
9
|
+
},
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public",
|
|
12
|
+
"registry": "https://registry.npmjs.org/"
|
|
13
|
+
},
|
|
14
|
+
"main": "index.js",
|
|
15
|
+
"types": "index.d.ts",
|
|
16
|
+
"scripts": {
|
|
17
|
+
"test": "esno test/index.ts",
|
|
18
|
+
"lint": "prettier --write \"**/*.{js,ts,json,md,yml}\"",
|
|
19
|
+
"build": "webpack --config webpack.config.ts",
|
|
20
|
+
"lint-build": "npm run lint && npm run build"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/node": "^25.2.3",
|
|
24
|
+
"@types/webpack": "^5.28.5",
|
|
25
|
+
"@types/webpack-node-externals": "^3.0.4",
|
|
26
|
+
"copy-webpack-plugin": "^13.0.1",
|
|
27
|
+
"electron-util": "^1.0.0",
|
|
28
|
+
"esno": "^4.8.0",
|
|
29
|
+
"prettier": "3.8.1",
|
|
30
|
+
"ts-loader": "^9.5.4",
|
|
31
|
+
"ts-node": "^10.9.2",
|
|
32
|
+
"typescript": "^5.9.3",
|
|
33
|
+
"webpack": "^5.105.2",
|
|
34
|
+
"webpack-cli": "^6.0.1",
|
|
35
|
+
"webpack-node-externals": "^3.0.0"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"find-java-home": "^2.0.0",
|
|
39
|
+
"java-caller": "^4.4.0"
|
|
40
|
+
},
|
|
41
|
+
"keywords": [
|
|
42
|
+
"printer-pdf",
|
|
43
|
+
"pdf",
|
|
44
|
+
"printer",
|
|
45
|
+
"node.js",
|
|
46
|
+
"electron"
|
|
47
|
+
]
|
|
48
|
+
}
|
package/printer.jar
CHANGED
|
Binary file
|
package/types/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
!function(e,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o();else if("function"==typeof define&&define.amd)define([],o);else{var i=o();for(var E in i)("object"==typeof exports?exports:e)[E]=i[E]}}(global,()=>(()=>{"use strict";var e,o,i,E,_,n,O,s,t={d:(e,o)=>{for(var i in o)t.o(o,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:o[i]})},o:(e,o)=>Object.prototype.hasOwnProperty.call(e,o),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},a={};return t.r(a),t.d(a,{Chromaticity:()=>o,MediaSizeName:()=>e,MediaTray:()=>E,OrientationRequested:()=>_,PrinterActions:()=>s,Scaling:()=>n,Sides:()=>i,Subset:()=>O}),function(e){e.ISO_A0="iso-a0",e.ISO_A1="iso-a1",e.ISO_A2="iso-a2",e.ISO_A3="iso-a3",e.ISO_A4="iso-a4",e.ISO_A5="iso-a5",e.ISO_A6="iso-a6",e.ISO_A7="iso-a7",e.ISO_A8="iso-a8",e.ISO_A9="iso-a9",e.ISO_A10="iso-a10",e.ISO_B0="iso-b0",e.ISO_B1="iso-b1",e.ISO_B2="iso-b2",e.ISO_B3="iso-b3",e.ISO_B4="iso-b4",e.ISO_B5="iso-b5",e.ISO_B6="iso-b6",e.ISO_B7="iso-b7",e.ISO_B8="iso-b8",e.ISO_B9="iso-b9",e.ISO_B10="iso-b10",e.JIS_B0="jis-b0",e.JIS_B1="jis-b1",e.JIS_B2="jis-b2",e.JIS_B3="jis-b3",e.JIS_B4="jis-b4",e.JIS_B5="jis-b5",e.JIS_B6="jis-b6",e.JIS_B7="jis-b7",e.JIS_B8="jis-b8",e.JIS_B9="jis-b9",e.JIS_B10="jis-b10",e.ISO_C0="iso-c0",e.ISO_C1="iso-c1",e.ISO_C2="iso-c2",e.ISO_C3="iso-c3",e.ISO_C4="iso-c4",e.ISO_C5="iso-c5",e.ISO_C6="iso-c6",e.NA_LETTER="na-letter",e.NA_LEGAL="na-legal",e.EXECUTIVE="executive",e.LEDGER="ledger",e.TABLOID="tabloid",e.INVOICE="invoice",e.FOLIO="folio",e.QUARTO="quarto",e.JAPANESE_POSTCARD="japanese-postcard",e.JAPANESE_DOUBLE_POSTCARD="oufuko-postcard",e.A="a",e.B="b",e.C="c",e.D="d",e.E="e",e.ISO_DESIGNATED_LONG="iso-designated-long",e.ITALY_ENVELOPE="italian-envelope",e.MONARCH_ENVELOPE="monarch-envelope",e.PERSONAL_ENVELOPE="personal-envelope",e.NA_NUMBER_9_ENVELOPE="na-number-9-envelope",e.NA_NUMBER_10_ENVELOPE="na-number-10-envelope",e.NA_NUMBER_11_ENVELOPE="na-number-11-envelope",e.NA_NUMBER_12_ENVELOPE="na-number-12-envelope",e.NA_NUMBER_14_ENVELOPE="na-number-14-envelope",e.NA_6X9_ENVELOPE="na-6x9-envelope",e.NA_7X9_ENVELOPE="na-7x9-envelope",e.NA_9X11_ENVELOPE="na-9x11-envelope",e.NA_9X12_ENVELOPE="na-9x12-envelope",e.NA_10X13_ENVELOPE="na-10x13-envelope",e.NA_10X14_ENVELOPE="na-10x14-envelope",e.NA_10X15_ENVELOPE="na-10x15-envelope",e.NA_5X7="na-5x7",e.NA_8X10="na-8x10"}(e||(e={})),function(e){e.MONOCHROME="monochrome",e.COLOR="color"}(o||(o={})),function(e){e.ONE_SIDED="one-sided",e.TWO_SIDED_LONG_EDGE="two-sided-long-edge",e.TWO_SIDED_SHORT_EDGE="two-sided-short-edge"}(i||(i={})),function(e){e.TOP="top",e.MIDDLE="middle",e.BOTTOM="bottom",e.ENVELOPE="envelope",e.MANUAL="manual",e.LARGE_CAPACITY="large-capacity",e.MAIN="main",e.SIDE="side"}(E||(E={})),function(e){e.PORTRAIT="portrait",e.LANDSCAPE="landscape",e.REVERSE_LANDSCAPE="reverseLandscape",e.REVERSE_PORTRAIT="reversePortrait"}(_||(_={})),function(e){e.ACTUAL_SIZE="actual-size",e.SHRINK_TO_FIT="shrink-to-fits",e.STRETCH_TO_FIT="stretch-to-fits",e.SCALE_TO_FIT="scale-to-fits"}(n||(n={})),function(e){e.ALL="all",e.ODD="odd",e.EVEN="even"}(O||(O={})),function(e){e.DEFAULT="default",e.PRINTERS="printers",e.SIZEINFO="sizeInfo",e.SIZEINFOS="sizeInfos",e.PRINT="print"}(s||(s={})),a})());
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QSxJQUFZQSxFQUFVLENBQUMsSUFFMUIsU0FBV0MsR0FDUEEsRUFBWSxJQUFJLE1BQ2hCQSxFQUFZLElBQUksTUFDaEJBLEVBQWEsS0FBSSxNQUNwQixDQUpELENBSUdBLElBQVdBLEVBQVMsQ0FBQyxJQUV4QixTQUFXQyxHQUNQQSxFQUF3QixRQUFJLFVBQzVCQSxFQUF5QixTQUFJLFdBQzdCQSxFQUF5QixTQUFJLFdBQzdCQSxFQUEwQixVQUFJLFlBQzlCQSxFQUFzQixNQUFJLE9BQzdCLENBTkQsQ0FNR0EsSUFBbUJBLEVBQWlCLENBQUMsSSIsInNvdXJjZXMiOlsid2VicGFjazovL3ByaW50ZXItcGRmL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi8uL3NyYy90eXBlcy9pbmRleC50cyIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Il0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSB7XG5cdFx0dmFyIGEgPSBmYWN0b3J5KCk7XG5cdFx0Zm9yKHZhciBpIGluIGEpICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgPyBleHBvcnRzIDogcm9vdClbaV0gPSBhW2ldO1xuXHR9XG59KShnbG9iYWwsICgpID0+IHtcbnJldHVybiAiLCIvLyBUaGUgcmVxdWlyZSBzY29wZVxudmFyIF9fd2VicGFja19yZXF1aXJlX18gPSB7fTtcblxuIiwiLy8g57q45byg5aSn5bCPXG5leHBvcnQgdmFyIE1lZGlhU2l6ZU5hbWU7XG4oZnVuY3Rpb24gKE1lZGlhU2l6ZU5hbWUpIHtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0EwXCJdID0gXCJpc28tYTBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0ExXCJdID0gXCJpc28tYTFcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0EyXCJdID0gXCJpc28tYTJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0EzXCJdID0gXCJpc28tYTNcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E0XCJdID0gXCJpc28tYTRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E1XCJdID0gXCJpc28tYTVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E2XCJdID0gXCJpc28tYTZcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E3XCJdID0gXCJpc28tYTdcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E4XCJdID0gXCJpc28tYThcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E5XCJdID0gXCJpc28tYTlcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0ExMFwiXSA9IFwiaXNvLWExMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjBcIl0gPSBcImlzby1iMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjFcIl0gPSBcImlzby1iMVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjJcIl0gPSBcImlzby1iMlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjNcIl0gPSBcImlzby1iM1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjRcIl0gPSBcImlzby1iNFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjVcIl0gPSBcImlzby1iNVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjZcIl0gPSBcImlzby1iNlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjdcIl0gPSBcImlzby1iN1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjhcIl0gPSBcImlzby1iOFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjlcIl0gPSBcImlzby1iOVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjEwXCJdID0gXCJpc28tYjEwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CMFwiXSA9IFwiamlzLWIwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CMVwiXSA9IFwiamlzLWIxXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CMlwiXSA9IFwiamlzLWIyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CM1wiXSA9IFwiamlzLWIzXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CNFwiXSA9IFwiamlzLWI0XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CNVwiXSA9IFwiamlzLWI1XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CNlwiXSA9IFwiamlzLWI2XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CN1wiXSA9IFwiamlzLWI3XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19COFwiXSA9IFwiamlzLWI4XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19COVwiXSA9IFwiamlzLWI5XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CMTBcIl0gPSBcImppcy1iMTBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0MwXCJdID0gXCJpc28tYzBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0MxXCJdID0gXCJpc28tYzFcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0MyXCJdID0gXCJpc28tYzJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0MzXCJdID0gXCJpc28tYzNcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0M0XCJdID0gXCJpc28tYzRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0M1XCJdID0gXCJpc28tYzVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0M2XCJdID0gXCJpc28tYzZcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTEVUVEVSXCJdID0gXCJuYS1sZXR0ZXJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTEVHQUxcIl0gPSBcIm5hLWxlZ2FsXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkVYRUNVVElWRVwiXSA9IFwiZXhlY3V0aXZlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkxFREdFUlwiXSA9IFwibGVkZ2VyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIlRBQkxPSURcIl0gPSBcInRhYmxvaWRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSU5WT0lDRVwiXSA9IFwiaW52b2ljZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJGT0xJT1wiXSA9IFwiZm9saW9cIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiUVVBUlRPXCJdID0gXCJxdWFydG9cIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSkFQQU5FU0VfUE9TVENBUkRcIl0gPSBcImphcGFuZXNlLXBvc3RjYXJkXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpBUEFORVNFX0RPVUJMRV9QT1NUQ0FSRFwiXSA9IFwib3VmdWtvLXBvc3RjYXJkXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkFcIl0gPSBcImFcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiQlwiXSA9IFwiYlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJDXCJdID0gXCJjXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkRcIl0gPSBcImRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiRVwiXSA9IFwiZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fREVTSUdOQVRFRF9MT05HXCJdID0gXCJpc28tZGVzaWduYXRlZC1sb25nXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklUQUxZX0VOVkVMT1BFXCJdID0gXCJpdGFsaWFuLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk1PTkFSQ0hfRU5WRUxPUEVcIl0gPSBcIm1vbmFyY2gtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiUEVSU09OQUxfRU5WRUxPUEVcIl0gPSBcInBlcnNvbmFsLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX05VTUJFUl85X0VOVkVMT1BFXCJdID0gXCJuYS1udW1iZXItOS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfMTBfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci0xMC1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfMTFfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci0xMS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfMTJfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci0xMi1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfMTRfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci0xNC1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV82WDlfRU5WRUxPUEVcIl0gPSBcIm5hLTZ4OS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV83WDlfRU5WRUxPUEVcIl0gPSBcIm5hLTd4OS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV85WDExX0VOVkVMT1BFXCJdID0gXCJuYS05eDExLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzlYMTJfRU5WRUxPUEVcIl0gPSBcIm5hLTl4MTItZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfMTBYMTNfRU5WRUxPUEVcIl0gPSBcIm5hLTEweDEzLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzEwWDE0X0VOVkVMT1BFXCJdID0gXCJuYS0xMHgxNC1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV8xMFgxNV9FTlZFTE9QRVwiXSA9IFwibmEtMTB4MTUtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfNVg3XCJdID0gXCJuYS01eDdcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfOFgxMFwiXSA9IFwibmEtOHgxMFwiO1xufSkoTWVkaWFTaXplTmFtZSB8fCAoTWVkaWFTaXplTmFtZSA9IHt9KSk7XG4vLyDorr7nva7oibLlvalcbmV4cG9ydCB2YXIgQ2hyb21hdGljaXR5O1xuKGZ1bmN0aW9uIChDaHJvbWF0aWNpdHkpIHtcbiAgICBDaHJvbWF0aWNpdHlbXCJNT05PQ0hST01FXCJdID0gXCJtb25vY2hyb21lXCI7XG4gICAgQ2hyb21hdGljaXR5W1wiQ09MT1JcIl0gPSBcImNvbG9yXCI7XG59KShDaHJvbWF0aWNpdHkgfHwgKENocm9tYXRpY2l0eSA9IHt9KSk7XG4vLyDorr7nva7lj4zpnaLmiZPljbBcbmV4cG9ydCB2YXIgU2lkZXM7XG4oZnVuY3Rpb24gKFNpZGVzKSB7XG4gICAgU2lkZXNbXCJPTkVfU0lERURcIl0gPSBcIm9uZS1zaWRlZFwiO1xuICAgIFNpZGVzW1wiVFdPX1NJREVEX0xPTkdfRURHRVwiXSA9IFwidHdvLXNpZGVkLWxvbmctZWRnZVwiO1xuICAgIFNpZGVzW1wiVFdPX1NJREVEX1NIT1JUX0VER0VcIl0gPSBcInR3by1zaWRlZC1zaG9ydC1lZGdlXCI7XG59KShTaWRlcyB8fCAoU2lkZXMgPSB7fSkpO1xuLy8g5aKo55uS57G75Z6LXG5leHBvcnQgdmFyIE1lZGlhVHJheTtcbihmdW5jdGlvbiAoTWVkaWFUcmF5KSB7XG4gICAgTWVkaWFUcmF5W1wiVE9QXCJdID0gXCJ0b3BcIjtcbiAgICBNZWRpYVRyYXlbXCJNSURETEVcIl0gPSBcIm1pZGRsZVwiO1xuICAgIE1lZGlhVHJheVtcIkJPVFRPTVwiXSA9IFwiYm90dG9tXCI7XG4gICAgTWVkaWFUcmF5W1wiRU5WRUxPUEVcIl0gPSBcImVudmVsb3BlXCI7XG4gICAgTWVkaWFUcmF5W1wiTUFOVUFMXCJdID0gXCJtYW51YWxcIjtcbiAgICBNZWRpYVRyYXlbXCJMQVJHRV9DQVBBQ0lUWVwiXSA9IFwibGFyZ2UtY2FwYWNpdHlcIjtcbiAgICBNZWRpYVRyYXlbXCJNQUlOXCJdID0gXCJtYWluXCI7XG4gICAgTWVkaWFUcmF5W1wiU0lERVwiXSA9IFwic2lkZVwiO1xufSkoTWVkaWFUcmF5IHx8IChNZWRpYVRyYXkgPSB7fSkpO1xuLy8g6K6+572u5omT5Y2w5py65pa55ZCRXG5leHBvcnQgdmFyIE9yaWVudGF0aW9uUmVxdWVzdGVkO1xuKGZ1bmN0aW9uIChPcmllbnRhdGlvblJlcXVlc3RlZCkge1xuICAgIE9yaWVudGF0aW9uUmVxdWVzdGVkW1wiUE9SVFJBSVRcIl0gPSBcInBvcnRyYWl0XCI7XG4gICAgT3JpZW50YXRpb25SZXF1ZXN0ZWRbXCJMQU5EU0NBUEVcIl0gPSBcImxhbmRzY2FwZVwiO1xuICAgIE9yaWVudGF0aW9uUmVxdWVzdGVkW1wiUkVWRVJTRV9MQU5EU0NBUEVcIl0gPSBcInJldmVyc2VMYW5kc2NhcGVcIjtcbiAgICBPcmllbnRhdGlvblJlcXVlc3RlZFtcIlJFVkVSU0VfUE9SVFJBSVRcIl0gPSBcInJldmVyc2VQb3J0cmFpdFwiO1xufSkoT3JpZW50YXRpb25SZXF1ZXN0ZWQgfHwgKE9yaWVudGF0aW9uUmVxdWVzdGVkID0ge30pKTtcbmV4cG9ydCB2YXIgU2NhbGluZztcbihmdW5jdGlvbiAoU2NhbGluZykge1xuICAgIFNjYWxpbmdbXCJBQ1RVQUxfU0laRVwiXSA9IFwiYWN0dWFsLXNpemVcIjtcbiAgICBTY2FsaW5nW1wiU0hSSU5LX1RPX0ZJVFwiXSA9IFwic2hyaW5rLXRvLWZpdHNcIjtcbiAgICBTY2FsaW5nW1wiU1RSRVRDSF9UT19GSVRcIl0gPSBcInN0cmV0Y2gtdG8tZml0c1wiO1xuICAgIFNjYWxpbmdbXCJTQ0FMRV9UT19GSVRcIl0gPSBcInNjYWxlLXRvLWZpdHNcIjtcbn0pKFNjYWxpbmcgfHwgKFNjYWxpbmcgPSB7fSkpO1xuZXhwb3J0IHZhciBTdWJzZXQ7XG4oZnVuY3Rpb24gKFN1YnNldCkge1xuICAgIFN1YnNldFtcIkFMTFwiXSA9IFwiYWxsXCI7XG4gICAgU3Vic2V0W1wiT0REXCJdID0gXCJvZGRcIjtcbiAgICBTdWJzZXRbXCJFVkVOXCJdID0gXCJldmVuXCI7XG59KShTdWJzZXQgfHwgKFN1YnNldCA9IHt9KSk7XG5leHBvcnQgdmFyIFByaW50ZXJBY3Rpb25zO1xuKGZ1bmN0aW9uIChQcmludGVyQWN0aW9ucykge1xuICAgIFByaW50ZXJBY3Rpb25zW1wiREVGQVVMVFwiXSA9IFwiZGVmYXVsdFwiO1xuICAgIFByaW50ZXJBY3Rpb25zW1wiUFJJTlRFUlNcIl0gPSBcInByaW50ZXJzXCI7XG4gICAgUHJpbnRlckFjdGlvbnNbXCJTSVpFSU5GT1wiXSA9IFwic2l6ZUluZm9cIjtcbiAgICBQcmludGVyQWN0aW9uc1tcIlNJWkVJTkZPU1wiXSA9IFwic2l6ZUluZm9zXCI7XG4gICAgUHJpbnRlckFjdGlvbnNbXCJQUklOVFwiXSA9IFwicHJpbnRcIjtcbn0pKFByaW50ZXJBY3Rpb25zIHx8IChQcmludGVyQWN0aW9ucyA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOXpjbU12ZEhsd1pYTXZhVzVrWlhndWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJlVUpCTEU5QlFVODdRVUZEVUN4TlFVRk5MRU5CUVU0c1NVRkJXU3hoUVRCRldEdEJRVEZGUkN4WFFVRlpMR0ZCUVdFN1NVRkRka0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzZDBOQlFYVkNMRU5CUVVFN1NVRkRka0lzYzBOQlFYRkNMRU5CUVVFN1NVRkRja0lzZDBOQlFYVkNMRU5CUVVFN1NVRkRka0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzWjBOQlFXVXNRMEZCUVR0SlFVTm1MR3REUVVGcFFpeERRVUZCTzBsQlEycENMSGRFUVVGMVF5eERRVUZCTzBsQlEzWkRMRFpFUVVFMFF5eERRVUZCTzBsQlF6VkRMSGRDUVVGUExFTkJRVUU3U1VGRFVDeDNRa0ZCVHl4RFFVRkJPMGxCUTFBc2QwSkJRVThzUTBGQlFUdEpRVU5RTEhkQ1FVRlBMRU5CUVVFN1NVRkRVQ3gzUWtGQlR5eERRVUZCTzBsQlExQXNORVJCUVRKRExFTkJRVUU3U1VGRE0wTXNiMFJCUVcxRExFTkJRVUU3U1VGRGJrTXNjMFJCUVhGRExFTkJRVUU3U1VGRGNrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNPRVJCUVRaRExFTkJRVUU3U1VGRE4wTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNiMFJCUVcxRExFTkJRVUU3U1VGRGJrTXNiMFJCUVcxRExFTkJRVUU3U1VGRGJrTXNjMFJCUVhGRExFTkJRVUU3U1VGRGNrTXNjMFJCUVhGRExFTkJRVUU3U1VGRGNrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNiME5CUVcxQ0xFTkJRVUU3UVVGRGNrSXNRMEZCUXl4RlFURkZWeXhoUVVGaExFdEJRV0lzWVVGQllTeFJRVEJGZUVJN1FVRkZSQ3hQUVVGUE8wRkJRMUFzVFVGQlRTeERRVUZPTEVsQlFWa3NXVUZIV0R0QlFVaEVMRmRCUVZrc1dVRkJXVHRKUVVOMFFpeDVRMEZCZVVJc1EwRkJRVHRKUVVONlFpd3JRa0ZCWlN4RFFVRkJPMEZCUTJwQ0xFTkJRVU1zUlVGSVZ5eFpRVUZaTEV0QlFWb3NXVUZCV1N4UlFVZDJRanRCUVVWRUxGTkJRVk03UVVGRFZDeE5RVUZOTEVOQlFVNHNTVUZCV1N4TFFVbFlPMEZCU2tRc1YwRkJXU3hMUVVGTE8wbEJRMllzWjBOQlFYVkNMRU5CUVVFN1NVRkRka0lzYjBSQlFUSkRMRU5CUVVFN1NVRkRNME1zYzBSQlFUWkRMRU5CUVVFN1FVRkRMME1zUTBGQlF5eEZRVXBYTEV0QlFVc3NTMEZCVEN4TFFVRkxMRkZCU1doQ08wRkJSVVFzVDBGQlR6dEJRVU5RTEUxQlFVMHNRMEZCVGl4SlFVRlpMRk5CVTFnN1FVRlVSQ3hYUVVGWkxGTkJRVk03U1VGRGJrSXNkMEpCUVZjc1EwRkJRVHRKUVVOWUxEaENRVUZwUWl4RFFVRkJPMGxCUTJwQ0xEaENRVUZwUWl4RFFVRkJPMGxCUTJwQ0xHdERRVUZ4UWl4RFFVRkJPMGxCUTNKQ0xEaENRVUZwUWl4RFFVRkJPMGxCUTJwQ0xEaERRVUZwUXl4RFFVRkJPMGxCUTJwRExEQkNRVUZoTEVOQlFVRTdTVUZEWWl3d1FrRkJZU3hEUVVGQk8wRkJRMllzUTBGQlF5eEZRVlJYTEZOQlFWTXNTMEZCVkN4VFFVRlRMRkZCVTNCQ08wRkJSVVFzVlVGQlZUdEJRVU5XTEUxQlFVMHNRMEZCVGl4SlFVRlpMRzlDUVV0WU8wRkJURVFzVjBGQldTeHZRa0ZCYjBJN1NVRkRPVUlzTmtOQlFYRkNMRU5CUVVFN1NVRkRja0lzSzBOQlFYVkNMRU5CUVVFN1NVRkRka0lzT0VSQlFYTkRMRU5CUVVFN1NVRkRkRU1zTkVSQlFXOURMRU5CUVVFN1FVRkRkRU1zUTBGQlF5eEZRVXhYTEc5Q1FVRnZRaXhMUVVGd1FpeHZRa0ZCYjBJc1VVRkxMMEk3UVVGRlJDeE5RVUZOTEVOQlFVNHNTVUZCV1N4UFFVdFlPMEZCVEVRc1YwRkJXU3hQUVVGUE8wbEJRMnBDTEhORFFVRXlRaXhEUVVGQk8wbEJRek5DTERKRFFVRm5ReXhEUVVGQk8wbEJRMmhETERaRFFVRnJReXhEUVVGQk8wbEJRMnhETEhsRFFVRTRRaXhEUVVGQk8wRkJRMmhETEVOQlFVTXNSVUZNVnl4UFFVRlBMRXRCUVZBc1QwRkJUeXhSUVV0c1FqdEJRVVZFTEUxQlFVMHNRMEZCVGl4SlFVRlpMRTFCU1ZnN1FVRktSQ3hYUVVGWkxFMUJRVTA3U1VGRGFFSXNjVUpCUVZjc1EwRkJRVHRKUVVOWUxIRkNRVUZYTEVOQlFVRTdTVUZEV0N4MVFrRkJZU3hEUVVGQk8wRkJRMllzUTBGQlF5eEZRVXBYTEUxQlFVMHNTMEZCVGl4TlFVRk5MRkZCU1dwQ08wRkJSVVFzVFVGQlRTeERRVUZPTEVsQlFWa3NZMEZOV0R0QlFVNUVMRmRCUVZrc1kwRkJZenRKUVVONFFpeHhRMEZCYlVJc1EwRkJRVHRKUVVOdVFpeDFRMEZCY1VJc1EwRkJRVHRKUVVOeVFpeDFRMEZCY1VJc1EwRkJRVHRKUVVOeVFpeDVRMEZCZFVJc1EwRkJRVHRKUVVOMlFpeHBRMEZCWlN4RFFVRkJPMEZCUTJwQ0xFTkJRVU1zUlVGT1Z5eGpRVUZqTEV0QlFXUXNZMEZCWXl4UlFVMTZRaUo5IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJhIiwiaSIsImdsb2JhbCIsIk1lZGlhU2l6ZU5hbWUiLCJDaHJvbWF0aWNpdHkiLCJTaWRlcyIsIk1lZGlhVHJheSIsIk9yaWVudGF0aW9uUmVxdWVzdGVkIiwiU2NhbGluZyIsIlN1YnNldCIsIlByaW50ZXJBY3Rpb25zIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsImRlZmluaXRpb24iLCJrZXkiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0Iiwib2JqIiwicHJvcCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QSxJQUFZQSxFQUFVLENBQUMsSUFFMUIsU0FBV0MsR0FDUEEsRUFBWSxJQUFJLE1BQ2hCQSxFQUFZLElBQUksTUFDaEJBLEVBQWEsS0FBSSxNQUNwQixDQUpELENBSUdBLElBQVdBLEVBQVMsQ0FBQyxJQUV4QixTQUFXQyxHQUNQQSxFQUF3QixRQUFJLFVBQzVCQSxFQUF5QixTQUFJLFdBQzdCQSxFQUF5QixTQUFJLFdBQzdCQSxFQUEwQixVQUFJLFlBQzlCQSxFQUFzQixNQUFJLE9BQzdCLENBTkQsQ0FNR0EsSUFBbUJBLEVBQWlCLENBQUMsSSIsInNvdXJjZXMiOlsid2VicGFjazovL3ByaW50ZXItcGRmL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi8uL3NyYy90eXBlcy9pbmRleC50cyIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vcHJpbnRlci1wZGYvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9wcmludGVyLXBkZi93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Il0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSB7XG5cdFx0dmFyIGEgPSBmYWN0b3J5KCk7XG5cdFx0Zm9yKHZhciBpIGluIGEpICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgPyBleHBvcnRzIDogcm9vdClbaV0gPSBhW2ldO1xuXHR9XG59KShnbG9iYWwsICgpID0+IHtcbnJldHVybiAiLCIvLyBUaGUgcmVxdWlyZSBzY29wZVxudmFyIF9fd2VicGFja19yZXF1aXJlX18gPSB7fTtcblxuIiwiLy8g57q45byg5aSn5bCPXG5leHBvcnQgdmFyIE1lZGlhU2l6ZU5hbWU7XG4oZnVuY3Rpb24gKE1lZGlhU2l6ZU5hbWUpIHtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0EwXCJdID0gXCJpc28tYTBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0ExXCJdID0gXCJpc28tYTFcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0EyXCJdID0gXCJpc28tYTJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0EzXCJdID0gXCJpc28tYTNcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E0XCJdID0gXCJpc28tYTRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E1XCJdID0gXCJpc28tYTVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E2XCJdID0gXCJpc28tYTZcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E3XCJdID0gXCJpc28tYTdcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E4XCJdID0gXCJpc28tYThcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0E5XCJdID0gXCJpc28tYTlcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0ExMFwiXSA9IFwiaXNvLWExMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjBcIl0gPSBcImlzby1iMFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjFcIl0gPSBcImlzby1iMVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjJcIl0gPSBcImlzby1iMlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjNcIl0gPSBcImlzby1iM1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjRcIl0gPSBcImlzby1iNFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjVcIl0gPSBcImlzby1iNVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjZcIl0gPSBcImlzby1iNlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjdcIl0gPSBcImlzby1iN1wiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjhcIl0gPSBcImlzby1iOFwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjlcIl0gPSBcImlzby1iOVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fQjEwXCJdID0gXCJpc28tYjEwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CMFwiXSA9IFwiamlzLWIwXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CMVwiXSA9IFwiamlzLWIxXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CMlwiXSA9IFwiamlzLWIyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CM1wiXSA9IFwiamlzLWIzXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CNFwiXSA9IFwiamlzLWI0XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CNVwiXSA9IFwiamlzLWI1XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CNlwiXSA9IFwiamlzLWI2XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CN1wiXSA9IFwiamlzLWI3XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19COFwiXSA9IFwiamlzLWI4XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19COVwiXSA9IFwiamlzLWI5XCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpJU19CMTBcIl0gPSBcImppcy1iMTBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0MwXCJdID0gXCJpc28tYzBcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0MxXCJdID0gXCJpc28tYzFcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0MyXCJdID0gXCJpc28tYzJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0MzXCJdID0gXCJpc28tYzNcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0M0XCJdID0gXCJpc28tYzRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0M1XCJdID0gXCJpc28tYzVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSVNPX0M2XCJdID0gXCJpc28tYzZcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTEVUVEVSXCJdID0gXCJuYS1sZXR0ZXJcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfTEVHQUxcIl0gPSBcIm5hLWxlZ2FsXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkVYRUNVVElWRVwiXSA9IFwiZXhlY3V0aXZlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkxFREdFUlwiXSA9IFwibGVkZ2VyXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIlRBQkxPSURcIl0gPSBcInRhYmxvaWRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSU5WT0lDRVwiXSA9IFwiaW52b2ljZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJGT0xJT1wiXSA9IFwiZm9saW9cIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiUVVBUlRPXCJdID0gXCJxdWFydG9cIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiSkFQQU5FU0VfUE9TVENBUkRcIl0gPSBcImphcGFuZXNlLXBvc3RjYXJkXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkpBUEFORVNFX0RPVUJMRV9QT1NUQ0FSRFwiXSA9IFwib3VmdWtvLXBvc3RjYXJkXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkFcIl0gPSBcImFcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiQlwiXSA9IFwiYlwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJDXCJdID0gXCJjXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIkRcIl0gPSBcImRcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiRVwiXSA9IFwiZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJJU09fREVTSUdOQVRFRF9MT05HXCJdID0gXCJpc28tZGVzaWduYXRlZC1sb25nXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIklUQUxZX0VOVkVMT1BFXCJdID0gXCJpdGFsaWFuLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk1PTkFSQ0hfRU5WRUxPUEVcIl0gPSBcIm1vbmFyY2gtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiUEVSU09OQUxfRU5WRUxPUEVcIl0gPSBcInBlcnNvbmFsLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BX05VTUJFUl85X0VOVkVMT1BFXCJdID0gXCJuYS1udW1iZXItOS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfMTBfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci0xMC1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfMTFfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci0xMS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfMTJfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci0xMi1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV9OVU1CRVJfMTRfRU5WRUxPUEVcIl0gPSBcIm5hLW51bWJlci0xNC1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV82WDlfRU5WRUxPUEVcIl0gPSBcIm5hLTZ4OS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV83WDlfRU5WRUxPUEVcIl0gPSBcIm5hLTd4OS1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV85WDExX0VOVkVMT1BFXCJdID0gXCJuYS05eDExLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzlYMTJfRU5WRUxPUEVcIl0gPSBcIm5hLTl4MTItZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfMTBYMTNfRU5WRUxPUEVcIl0gPSBcIm5hLTEweDEzLWVudmVsb3BlXCI7XG4gICAgTWVkaWFTaXplTmFtZVtcIk5BXzEwWDE0X0VOVkVMT1BFXCJdID0gXCJuYS0xMHgxNC1lbnZlbG9wZVwiO1xuICAgIE1lZGlhU2l6ZU5hbWVbXCJOQV8xMFgxNV9FTlZFTE9QRVwiXSA9IFwibmEtMTB4MTUtZW52ZWxvcGVcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfNVg3XCJdID0gXCJuYS01eDdcIjtcbiAgICBNZWRpYVNpemVOYW1lW1wiTkFfOFgxMFwiXSA9IFwibmEtOHgxMFwiO1xufSkoTWVkaWFTaXplTmFtZSB8fCAoTWVkaWFTaXplTmFtZSA9IHt9KSk7XG4vLyDorr7nva7oibLlvalcbmV4cG9ydCB2YXIgQ2hyb21hdGljaXR5O1xuKGZ1bmN0aW9uIChDaHJvbWF0aWNpdHkpIHtcbiAgICBDaHJvbWF0aWNpdHlbXCJNT05PQ0hST01FXCJdID0gXCJtb25vY2hyb21lXCI7XG4gICAgQ2hyb21hdGljaXR5W1wiQ09MT1JcIl0gPSBcImNvbG9yXCI7XG59KShDaHJvbWF0aWNpdHkgfHwgKENocm9tYXRpY2l0eSA9IHt9KSk7XG4vLyDorr7nva7lj4zpnaLmiZPljbBcbmV4cG9ydCB2YXIgU2lkZXM7XG4oZnVuY3Rpb24gKFNpZGVzKSB7XG4gICAgU2lkZXNbXCJPTkVfU0lERURcIl0gPSBcIm9uZS1zaWRlZFwiO1xuICAgIFNpZGVzW1wiVFdPX1NJREVEX0xPTkdfRURHRVwiXSA9IFwidHdvLXNpZGVkLWxvbmctZWRnZVwiO1xuICAgIFNpZGVzW1wiVFdPX1NJREVEX1NIT1JUX0VER0VcIl0gPSBcInR3by1zaWRlZC1zaG9ydC1lZGdlXCI7XG59KShTaWRlcyB8fCAoU2lkZXMgPSB7fSkpO1xuLy8g5aKo55uS57G75Z6LXG5leHBvcnQgdmFyIE1lZGlhVHJheTtcbihmdW5jdGlvbiAoTWVkaWFUcmF5KSB7XG4gICAgTWVkaWFUcmF5W1wiVE9QXCJdID0gXCJ0b3BcIjtcbiAgICBNZWRpYVRyYXlbXCJNSURETEVcIl0gPSBcIm1pZGRsZVwiO1xuICAgIE1lZGlhVHJheVtcIkJPVFRPTVwiXSA9IFwiYm90dG9tXCI7XG4gICAgTWVkaWFUcmF5W1wiRU5WRUxPUEVcIl0gPSBcImVudmVsb3BlXCI7XG4gICAgTWVkaWFUcmF5W1wiTUFOVUFMXCJdID0gXCJtYW51YWxcIjtcbiAgICBNZWRpYVRyYXlbXCJMQVJHRV9DQVBBQ0lUWVwiXSA9IFwibGFyZ2UtY2FwYWNpdHlcIjtcbiAgICBNZWRpYVRyYXlbXCJNQUlOXCJdID0gXCJtYWluXCI7XG4gICAgTWVkaWFUcmF5W1wiU0lERVwiXSA9IFwic2lkZVwiO1xufSkoTWVkaWFUcmF5IHx8IChNZWRpYVRyYXkgPSB7fSkpO1xuLy8g6K6+572u5omT5Y2w5py65pa55ZCRXG5leHBvcnQgdmFyIE9yaWVudGF0aW9uUmVxdWVzdGVkO1xuKGZ1bmN0aW9uIChPcmllbnRhdGlvblJlcXVlc3RlZCkge1xuICAgIE9yaWVudGF0aW9uUmVxdWVzdGVkW1wiUE9SVFJBSVRcIl0gPSBcInBvcnRyYWl0XCI7XG4gICAgT3JpZW50YXRpb25SZXF1ZXN0ZWRbXCJMQU5EU0NBUEVcIl0gPSBcImxhbmRzY2FwZVwiO1xuICAgIE9yaWVudGF0aW9uUmVxdWVzdGVkW1wiUkVWRVJTRV9MQU5EU0NBUEVcIl0gPSBcInJldmVyc2VMYW5kc2NhcGVcIjtcbiAgICBPcmllbnRhdGlvblJlcXVlc3RlZFtcIlJFVkVSU0VfUE9SVFJBSVRcIl0gPSBcInJldmVyc2VQb3J0cmFpdFwiO1xufSkoT3JpZW50YXRpb25SZXF1ZXN0ZWQgfHwgKE9yaWVudGF0aW9uUmVxdWVzdGVkID0ge30pKTtcbmV4cG9ydCB2YXIgU2NhbGluZztcbihmdW5jdGlvbiAoU2NhbGluZykge1xuICAgIFNjYWxpbmdbXCJBQ1RVQUxfU0laRVwiXSA9IFwiYWN0dWFsLXNpemVcIjtcbiAgICBTY2FsaW5nW1wiU0hSSU5LX1RPX0ZJVFwiXSA9IFwic2hyaW5rLXRvLWZpdHNcIjtcbiAgICBTY2FsaW5nW1wiU1RSRVRDSF9UT19GSVRcIl0gPSBcInN0cmV0Y2gtdG8tZml0c1wiO1xuICAgIFNjYWxpbmdbXCJTQ0FMRV9UT19GSVRcIl0gPSBcInNjYWxlLXRvLWZpdHNcIjtcbn0pKFNjYWxpbmcgfHwgKFNjYWxpbmcgPSB7fSkpO1xuZXhwb3J0IHZhciBTdWJzZXQ7XG4oZnVuY3Rpb24gKFN1YnNldCkge1xuICAgIFN1YnNldFtcIkFMTFwiXSA9IFwiYWxsXCI7XG4gICAgU3Vic2V0W1wiT0REXCJdID0gXCJvZGRcIjtcbiAgICBTdWJzZXRbXCJFVkVOXCJdID0gXCJldmVuXCI7XG59KShTdWJzZXQgfHwgKFN1YnNldCA9IHt9KSk7XG5leHBvcnQgdmFyIFByaW50ZXJBY3Rpb25zO1xuKGZ1bmN0aW9uIChQcmludGVyQWN0aW9ucykge1xuICAgIFByaW50ZXJBY3Rpb25zW1wiREVGQVVMVFwiXSA9IFwiZGVmYXVsdFwiO1xuICAgIFByaW50ZXJBY3Rpb25zW1wiUFJJTlRFUlNcIl0gPSBcInByaW50ZXJzXCI7XG4gICAgUHJpbnRlckFjdGlvbnNbXCJTSVpFSU5GT1wiXSA9IFwic2l6ZUluZm9cIjtcbiAgICBQcmludGVyQWN0aW9uc1tcIlNJWkVJTkZPU1wiXSA9IFwic2l6ZUluZm9zXCI7XG4gICAgUHJpbnRlckFjdGlvbnNbXCJQUklOVFwiXSA9IFwicHJpbnRcIjtcbn0pKFByaW50ZXJBY3Rpb25zIHx8IChQcmludGVyQWN0aW9ucyA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOXpjbU12ZEhsd1pYTXZhVzVrWlhndWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJlVUpCTEU5QlFVODdRVUZEVUN4TlFVRk5MRU5CUVU0c1NVRkJXU3hoUVRCRldEdEJRVEZGUkN4WFFVRlpMR0ZCUVdFN1NVRkRka0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzZDBOQlFYVkNMRU5CUVVFN1NVRkRka0lzYzBOQlFYRkNMRU5CUVVFN1NVRkRja0lzZDBOQlFYVkNMRU5CUVVFN1NVRkRka0lzYTBOQlFXbENMRU5CUVVFN1NVRkRha0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzYjBOQlFXMUNMRU5CUVVFN1NVRkRia0lzWjBOQlFXVXNRMEZCUVR0SlFVTm1MR3REUVVGcFFpeERRVUZCTzBsQlEycENMSGRFUVVGMVF5eERRVUZCTzBsQlEzWkRMRFpFUVVFMFF5eERRVUZCTzBsQlF6VkRMSGRDUVVGUExFTkJRVUU3U1VGRFVDeDNRa0ZCVHl4RFFVRkJPMGxCUTFBc2QwSkJRVThzUTBGQlFUdEpRVU5RTEhkQ1FVRlBMRU5CUVVFN1NVRkRVQ3gzUWtGQlR5eERRVUZCTzBsQlExQXNORVJCUVRKRExFTkJRVUU3U1VGRE0wTXNiMFJCUVcxRExFTkJRVUU3U1VGRGJrTXNjMFJCUVhGRExFTkJRVUU3U1VGRGNrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNPRVJCUVRaRExFTkJRVUU3U1VGRE4wTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNaMFZCUVN0RExFTkJRVUU3U1VGREwwTXNiMFJCUVcxRExFTkJRVUU3U1VGRGJrTXNiMFJCUVcxRExFTkJRVUU3U1VGRGJrTXNjMFJCUVhGRExFTkJRVUU3U1VGRGNrTXNjMFJCUVhGRExFTkJRVUU3U1VGRGNrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNkMFJCUVhWRExFTkJRVUU3U1VGRGRrTXNhME5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNiME5CUVcxQ0xFTkJRVUU3UVVGRGNrSXNRMEZCUXl4RlFURkZWeXhoUVVGaExFdEJRV0lzWVVGQllTeFJRVEJGZUVJN1FVRkZSQ3hQUVVGUE8wRkJRMUFzVFVGQlRTeERRVUZPTEVsQlFWa3NXVUZIV0R0QlFVaEVMRmRCUVZrc1dVRkJXVHRKUVVOMFFpeDVRMEZCZVVJc1EwRkJRVHRKUVVONlFpd3JRa0ZCWlN4RFFVRkJPMEZCUTJwQ0xFTkJRVU1zUlVGSVZ5eFpRVUZaTEV0QlFWb3NXVUZCV1N4UlFVZDJRanRCUVVWRUxGTkJRVk03UVVGRFZDeE5RVUZOTEVOQlFVNHNTVUZCV1N4TFFVbFlPMEZCU2tRc1YwRkJXU3hMUVVGTE8wbEJRMllzWjBOQlFYVkNMRU5CUVVFN1NVRkRka0lzYjBSQlFUSkRMRU5CUVVFN1NVRkRNME1zYzBSQlFUWkRMRU5CUVVFN1FVRkRMME1zUTBGQlF5eEZRVXBYTEV0QlFVc3NTMEZCVEN4TFFVRkxMRkZCU1doQ08wRkJSVVFzVDBGQlR6dEJRVU5RTEUxQlFVMHNRMEZCVGl4SlFVRlpMRk5CVTFnN1FVRlVSQ3hYUVVGWkxGTkJRVk03U1VGRGJrSXNkMEpCUVZjc1EwRkJRVHRKUVVOWUxEaENRVUZwUWl4RFFVRkJPMGxCUTJwQ0xEaENRVUZwUWl4RFFVRkJPMGxCUTJwQ0xHdERRVUZ4UWl4RFFVRkJPMGxCUTNKQ0xEaENRVUZwUWl4RFFVRkJPMGxCUTJwQ0xEaERRVUZwUXl4RFFVRkJPMGxCUTJwRExEQkNRVUZoTEVOQlFVRTdTVUZEWWl3d1FrRkJZU3hEUVVGQk8wRkJRMllzUTBGQlF5eEZRVlJYTEZOQlFWTXNTMEZCVkN4VFFVRlRMRkZCVTNCQ08wRkJSVVFzVlVGQlZUdEJRVU5XTEUxQlFVMHNRMEZCVGl4SlFVRlpMRzlDUVV0WU8wRkJURVFzVjBGQldTeHZRa0ZCYjBJN1NVRkRPVUlzTmtOQlFYRkNMRU5CUVVFN1NVRkRja0lzSzBOQlFYVkNMRU5CUVVFN1NVRkRka0lzT0VSQlFYTkRMRU5CUVVFN1NVRkRkRU1zTkVSQlFXOURMRU5CUVVFN1FVRkRkRU1zUTBGQlF5eEZRVXhYTEc5Q1FVRnZRaXhMUVVGd1FpeHZRa0ZCYjBJc1VVRkxMMEk3UVVGRlJDeE5RVUZOTEVOQlFVNHNTVUZCV1N4UFFVdFlPMEZCVEVRc1YwRkJXU3hQUVVGUE8wbEJRMnBDTEhORFFVRXlRaXhEUVVGQk8wbEJRek5DTERKRFFVRm5ReXhEUVVGQk8wbEJRMmhETERaRFFVRnJReXhEUVVGQk8wbEJRMnhETEhsRFFVRTRRaXhEUVVGQk8wRkJRMmhETEVOQlFVTXNSVUZNVnl4UFFVRlBMRXRCUVZBc1QwRkJUeXhSUVV0c1FqdEJRVVZFTEUxQlFVMHNRMEZCVGl4SlFVRlpMRTFCU1ZnN1FVRktSQ3hYUVVGWkxFMUJRVTA3U1VGRGFFSXNjVUpCUVZjc1EwRkJRVHRKUVVOWUxIRkNRVUZYTEVOQlFVRTdTVUZEV0N4MVFrRkJZU3hEUVVGQk8wRkJRMllzUTBGQlF5eEZRVXBYTEUxQlFVMHNTMEZCVGl4TlFVRk5MRkZCU1dwQ08wRkJSVVFzVFVGQlRTeERRVUZPTEVsQlFWa3NZMEZOV0R0QlFVNUVMRmRCUVZrc1kwRkJZenRKUVVONFFpeHhRMEZCYlVJc1EwRkJRVHRKUVVOdVFpeDFRMEZCY1VJc1EwRkJRVHRKUVVOeVFpeDFRMEZCY1VJc1EwRkJRVHRKUVVOeVFpeDVRMEZCZFVJc1EwRkJRVHRKUVVOMlFpeHBRMEZCWlN4RFFVRkJPMEZCUTJwQ0xFTkJRVU1zUlVGT1Z5eGpRVUZqTEV0QlFXUXNZMEZCWXl4UlFVMTZRaUo5IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJhIiwiaSIsImdsb2JhbCIsIk1lZGlhU2l6ZU5hbWUiLCJDaHJvbWF0aWNpdHkiLCJTaWRlcyIsIk1lZGlhVHJheSIsIk9yaWVudGF0aW9uUmVxdWVzdGVkIiwiU2NhbGluZyIsIlN1YnNldCIsIlByaW50ZXJBY3Rpb25zIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsImRlZmluaXRpb24iLCJrZXkiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0Iiwib2JqIiwicHJvcCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiXSwic291cmNlUm9vdCI6IiJ9
|