ag-psd 14.3.0 → 14.3.4
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/CHANGELOG.md +6 -0
- package/README.md +2 -1
- package/dist/abr.js +4 -4
- package/dist/additionalInfo.js +6 -3
- package/dist/bundle.js +224 -122
- package/dist/descriptor.js +5 -1
- package/dist/engineData.js +2 -2
- package/dist/helpers.d.ts +6 -5
- package/dist/helpers.js +13 -11
- package/dist/imageResources.js +3 -1
- package/dist/psd.d.ts +1 -0
- package/dist/psd.js +1 -1
- package/dist/psdReader.js +192 -101
- package/dist/psdWriter.js +9 -9
- package/dist-es/abr.js +4 -4
- package/dist-es/additionalInfo.js +6 -3
- package/dist-es/descriptor.js +5 -1
- package/dist-es/engineData.js +2 -2
- package/dist-es/helpers.d.ts +6 -5
- package/dist-es/helpers.js +13 -11
- package/dist-es/imageResources.js +3 -1
- package/dist-es/psd.d.ts +1 -0
- package/dist-es/psd.js +1 -1
- package/dist-es/psdReader.js +192 -101
- package/dist-es/psdWriter.js +9 -9
- package/package.json +1 -1
package/dist-es/helpers.js
CHANGED
|
@@ -87,9 +87,10 @@ export var MaskParams;
|
|
|
87
87
|
})(MaskParams || (MaskParams = {}));
|
|
88
88
|
export var ChannelID;
|
|
89
89
|
(function (ChannelID) {
|
|
90
|
-
ChannelID[ChannelID["
|
|
91
|
-
ChannelID[ChannelID["
|
|
92
|
-
ChannelID[ChannelID["
|
|
90
|
+
ChannelID[ChannelID["Color0"] = 0] = "Color0";
|
|
91
|
+
ChannelID[ChannelID["Color1"] = 1] = "Color1";
|
|
92
|
+
ChannelID[ChannelID["Color2"] = 2] = "Color2";
|
|
93
|
+
ChannelID[ChannelID["Color3"] = 3] = "Color3";
|
|
93
94
|
ChannelID[ChannelID["Transparency"] = -1] = "Transparency";
|
|
94
95
|
ChannelID[ChannelID["UserMask"] = -2] = "UserMask";
|
|
95
96
|
ChannelID[ChannelID["RealUserMask"] = -3] = "RealUserMask";
|
|
@@ -101,12 +102,13 @@ export var Compression;
|
|
|
101
102
|
Compression[Compression["ZipWithoutPrediction"] = 2] = "ZipWithoutPrediction";
|
|
102
103
|
Compression[Compression["ZipWithPrediction"] = 3] = "ZipWithPrediction";
|
|
103
104
|
})(Compression || (Compression = {}));
|
|
104
|
-
export function offsetForChannel(channelId) {
|
|
105
|
+
export function offsetForChannel(channelId, cmyk) {
|
|
105
106
|
switch (channelId) {
|
|
106
|
-
case 0 /*
|
|
107
|
-
case 1 /*
|
|
108
|
-
case 2 /*
|
|
109
|
-
case
|
|
107
|
+
case 0 /* Color0 */: return 0;
|
|
108
|
+
case 1 /* Color1 */: return 1;
|
|
109
|
+
case 2 /* Color2 */: return 2;
|
|
110
|
+
case 3 /* Color3 */: return cmyk ? 3 : channelId + 1;
|
|
111
|
+
case -1 /* Transparency */: return cmyk ? 4 : 3;
|
|
110
112
|
default: return channelId + 1;
|
|
111
113
|
}
|
|
112
114
|
}
|
|
@@ -123,9 +125,9 @@ export function hasAlpha(data) {
|
|
|
123
125
|
return false;
|
|
124
126
|
}
|
|
125
127
|
export function resetImageData(_a) {
|
|
126
|
-
var
|
|
127
|
-
var size = (width * height) | 0;
|
|
128
|
+
var data = _a.data;
|
|
128
129
|
var buffer = new Uint32Array(data.buffer);
|
|
130
|
+
var size = buffer.length | 0;
|
|
129
131
|
for (var p = 0; p < size; p = (p + 1) | 0) {
|
|
130
132
|
buffer[p] = 0xff000000;
|
|
131
133
|
}
|
|
@@ -281,4 +283,4 @@ export function initializeCanvas(createCanvasMethod, createCanvasFromDataMethod,
|
|
|
281
283
|
createImageData = createImageDataMethod || createImageData;
|
|
282
284
|
}
|
|
283
285
|
|
|
284
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUM7UUFDaEQsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDL0Isa0JBQXdFLEVBQ3hFLDBCQUFvRSxFQUNwRSxxQkFBb0U7SUFFcEUsWUFBWSxHQUFHLGtCQUFrQixDQUFDO0lBQ2xDLG9CQUFvQixHQUFHLDBCQUEwQixJQUFJLG9CQUFvQixDQUFDO0lBQzFFLGVBQWUsR0FBRyxxQkFBcUIsSUFBSSxlQUFlLENBQUM7QUFDNUQsQ0FBQyIsImZpbGUiOiJoZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbUJ5dGVBcnJheSB9IGZyb20gJ2Jhc2U2NC1qcyc7XG5pbXBvcnQgeyBMYXllciwgQmxlbmRNb2RlLCBMYXllckNvbG9yIH0gZnJvbSAnLi9wc2QnO1xuXG5leHBvcnQgY29uc3QgTU9DS19IQU5ETEVSUyA9IGZhbHNlO1xuZXhwb3J0IGNvbnN0IFJBV19JTUFHRV9EQVRBID0gZmFsc2U7XG5cbmV4cG9ydCBjb25zdCBmcm9tQmxlbmRNb2RlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5leHBvcnQgY29uc3QgdG9CbGVuZE1vZGU6IHsgW2tleTogc3RyaW5nXTogQmxlbmRNb2RlIH0gPSB7XG5cdCdwYXNzJzogJ3Bhc3MgdGhyb3VnaCcsXG5cdCdub3JtJzogJ25vcm1hbCcsXG5cdCdkaXNzJzogJ2Rpc3NvbHZlJyxcblx0J2RhcmsnOiAnZGFya2VuJyxcblx0J211bCAnOiAnbXVsdGlwbHknLFxuXHQnaWRpdic6ICdjb2xvciBidXJuJyxcblx0J2xicm4nOiAnbGluZWFyIGJ1cm4nLFxuXHQnZGtDbCc6ICdkYXJrZXIgY29sb3InLFxuXHQnbGl0ZSc6ICdsaWdodGVuJyxcblx0J3Njcm4nOiAnc2NyZWVuJyxcblx0J2RpdiAnOiAnY29sb3IgZG9kZ2UnLFxuXHQnbGRkZyc6ICdsaW5lYXIgZG9kZ2UnLFxuXHQnbGdDbCc6ICdsaWdodGVyIGNvbG9yJyxcblx0J292ZXInOiAnb3ZlcmxheScsXG5cdCdzTGl0JzogJ3NvZnQgbGlnaHQnLFxuXHQnaExpdCc6ICdoYXJkIGxpZ2h0Jyxcblx0J3ZMaXQnOiAndml2aWQgbGlnaHQnLFxuXHQnbExpdCc6ICdsaW5lYXIgbGlnaHQnLFxuXHQncExpdCc6ICdwaW4gbGlnaHQnLFxuXHQnaE1peCc6ICdoYXJkIG1peCcsXG5cdCdkaWZmJzogJ2RpZmZlcmVuY2UnLFxuXHQnc211ZCc6ICdleGNsdXNpb24nLFxuXHQnZnN1Yic6ICdzdWJ0cmFjdCcsXG5cdCdmZGl2JzogJ2RpdmlkZScsXG5cdCdodWUgJzogJ2h1ZScsXG5cdCdzYXQgJzogJ3NhdHVyYXRpb24nLFxuXHQnY29scic6ICdjb2xvcicsXG5cdCdsdW0gJzogJ2x1bWlub3NpdHknLFxufTtcblxuT2JqZWN0LmtleXModG9CbGVuZE1vZGUpLmZvckVhY2goa2V5ID0+IGZyb21CbGVuZE1vZGVbdG9CbGVuZE1vZGVba2V5XV0gPSBrZXkpO1xuXG5leHBvcnQgY29uc3QgbGF5ZXJDb2xvcnM6IExheWVyQ29sb3JbXSA9IFtcblx0J25vbmUnLCAncmVkJywgJ29yYW5nZScsICd5ZWxsb3cnLCAnZ3JlZW4nLCAnYmx1ZScsICd2aW9sZXQnLCAnZ3JheSdcbl07XG5cbmV4cG9ydCBjb25zdCBsYXJnZUFkZGl0aW9uYWxJbmZvS2V5cyA9IFtcblx0Ly8gZnJvbSBkb2N1bWVudGF0aW9uXG5cdCdMTXNrJywgJ0xyMTYnLCAnTHIzMicsICdMYXlyJywgJ010MTYnLCAnTXQzMicsICdNdHJuJywgJ0FscGgnLCAnRk1zaycsICdsbmsyJywgJ0ZFaWQnLCAnRlhpZCcsICdQeFNEJyxcblx0Ly8gZnJvbSBndWVzc2luZ1xuXHQnY2luZicsXG5dO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpY3Qge1xuXHRba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXZNYXAobWFwOiBEaWN0KSB7XG5cdGNvbnN0IHJlc3VsdDogRGljdCA9IHt9O1xuXHRPYmplY3Qua2V5cyhtYXApLmZvckVhY2goa2V5ID0+IHJlc3VsdFttYXBba2V5XV0gPSBrZXkpO1xuXHRyZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRW51bTxUPihwcmVmaXg6IHN0cmluZywgZGVmOiBzdHJpbmcsIG1hcDogRGljdCkge1xuXHRjb25zdCByZXYgPSByZXZNYXAobWFwKTtcblx0Y29uc3QgZGVjb2RlID0gKHZhbDogc3RyaW5nKTogVCA9PiB7XG5cdFx0Y29uc3QgdmFsdWUgPSB2YWwuc3BsaXQoJy4nKVsxXTtcblx0XHRpZiAodmFsdWUgJiYgIXJldlt2YWx1ZV0pIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVkIHZhbHVlIGZvciBlbnVtOiAnJHt2YWx9J2ApO1xuXHRcdHJldHVybiAocmV2W3ZhbHVlXSBhcyBhbnkpIHx8IGRlZjtcblx0fTtcblx0Y29uc3QgZW5jb2RlID0gKHZhbDogVCB8IHVuZGVmaW5lZCk6IHN0cmluZyA9PiB7XG5cdFx0aWYgKHZhbCAmJiAhbWFwW3ZhbCBhcyBhbnldKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdmFsdWUgZm9yIGVudW06ICcke3ZhbH0nYCk7XG5cdFx0cmV0dXJuIGAke3ByZWZpeH0uJHttYXBbdmFsIGFzIGFueV0gfHwgbWFwW2RlZl19YDtcblx0fTtcblx0cmV0dXJuIHsgZGVjb2RlLCBlbmNvZGUgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gQ29sb3JTcGFjZSB7XG5cdFJHQiA9IDAsXG5cdEhTQiA9IDEsXG5cdENNWUsgPSAyLFxuXHRMYWIgPSA3LFxuXHRHcmF5c2NhbGUgPSA4LFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBMYXllck1hc2tGbGFncyB7XG5cdFBvc2l0aW9uUmVsYXRpdmVUb0xheWVyID0gMSxcblx0TGF5ZXJNYXNrRGlzYWJsZWQgPSAyLFxuXHRJbnZlcnRMYXllck1hc2tXaGVuQmxlbmRpbmcgPSA0LCAvLyBvYnNvbGV0ZVxuXHRMYXllck1hc2tGcm9tUmVuZGVyaW5nT3RoZXJEYXRhID0gOCxcblx0TWFza0hhc1BhcmFtZXRlcnNBcHBsaWVkVG9JdCA9IDE2LFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBNYXNrUGFyYW1zIHtcblx0VXNlck1hc2tEZW5zaXR5ID0gMSxcblx0VXNlck1hc2tGZWF0aGVyID0gMixcblx0VmVjdG9yTWFza0RlbnNpdHkgPSA0LFxuXHRWZWN0b3JNYXNrRmVhdGhlciA9IDgsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIENoYW5uZWxJRCB7XG5cdFJlZCA9IDAsXG5cdEdyZWVuID0gMSxcblx0Qmx1ZSA9IDIsXG5cdFRyYW5zcGFyZW5jeSA9IC0xLFxuXHRVc2VyTWFzayA9IC0yLFxuXHRSZWFsVXNlck1hc2sgPSAtMyxcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gQ29tcHJlc3Npb24ge1xuXHRSYXdEYXRhID0gMCxcblx0UmxlQ29tcHJlc3NlZCA9IDEsXG5cdFppcFdpdGhvdXRQcmVkaWN0aW9uID0gMixcblx0WmlwV2l0aFByZWRpY3Rpb24gPSAzLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYW5uZWxEYXRhIHtcblx0Y2hhbm5lbElkOiBDaGFubmVsSUQ7XG5cdGNvbXByZXNzaW9uOiBDb21wcmVzc2lvbjtcblx0YnVmZmVyOiBVaW50OEFycmF5IHwgdW5kZWZpbmVkO1xuXHRsZW5ndGg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb3VuZHMge1xuXHR0b3A6IG51bWJlcjtcblx0bGVmdDogbnVtYmVyO1xuXHRyaWdodDogbnVtYmVyO1xuXHRib3R0b206IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXllckNoYW5uZWxEYXRhIHtcblx0bGF5ZXI6IExheWVyO1xuXHRjaGFubmVsczogQ2hhbm5lbERhdGFbXTtcblx0dG9wOiBudW1iZXI7XG5cdGxlZnQ6IG51bWJlcjtcblx0cmlnaHQ6IG51bWJlcjtcblx0Ym90dG9tOiBudW1iZXI7XG5cdG1hc2s/OiBCb3VuZHM7XG59XG5cbmV4cG9ydCB0eXBlIFBpeGVsQXJyYXkgPSBVaW50OENsYW1wZWRBcnJheSB8IFVpbnQ4QXJyYXk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGl4ZWxEYXRhIHtcblx0ZGF0YTogUGl4ZWxBcnJheTtcblx0d2lkdGg6IG51bWJlcjtcblx0aGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvZmZzZXRGb3JDaGFubmVsKGNoYW5uZWxJZDogQ2hhbm5lbElEKSB7XG5cdHN3aXRjaCAoY2hhbm5lbElkKSB7XG5cdFx0Y2FzZSBDaGFubmVsSUQuUmVkOiByZXR1cm4gMDtcblx0XHRjYXNlIENoYW5uZWxJRC5HcmVlbjogcmV0dXJuIDE7XG5cdFx0Y2FzZSBDaGFubmVsSUQuQmx1ZTogcmV0dXJuIDI7XG5cdFx0Y2FzZSBDaGFubmVsSUQuVHJhbnNwYXJlbmN5OiByZXR1cm4gMztcblx0XHRkZWZhdWx0OiByZXR1cm4gY2hhbm5lbElkICsgMTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhbXAodmFsdWU6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKSB7XG5cdHJldHVybiB2YWx1ZSA8IG1pbiA/IG1pbiA6ICh2YWx1ZSA+IG1heCA/IG1heCA6IHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0FscGhhKGRhdGE6IFBpeGVsRGF0YSkge1xuXHRjb25zdCBzaXplID0gZGF0YS53aWR0aCAqIGRhdGEuaGVpZ2h0ICogNDtcblxuXHRmb3IgKGxldCBpID0gMzsgaSA8IHNpemU7IGkgKz0gNCkge1xuXHRcdGlmIChkYXRhLmRhdGFbaV0gIT09IDI1NSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRJbWFnZURhdGEoeyB3aWR0aCwgaGVpZ2h0LCBkYXRhIH06IFBpeGVsRGF0YSkge1xuXHRjb25zdCBzaXplID0gKHdpZHRoICogaGVpZ2h0KSB8IDA7XG5cdGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50MzJBcnJheShkYXRhLmJ1ZmZlcik7XG5cblx0Zm9yIChsZXQgcCA9IDA7IHAgPCBzaXplOyBwID0gKHAgKyAxKSB8IDApIHtcblx0XHRidWZmZXJbcF0gPSAweGZmMDAwMDAwO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVCaXRtYXAoaW5wdXQ6IFBpeGVsQXJyYXksIG91dHB1dDogUGl4ZWxBcnJheSwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpIHtcblx0Zm9yIChsZXQgeSA9IDAsIHAgPSAwLCBvID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7XG5cdFx0Zm9yIChsZXQgeCA9IDA7IHggPCB3aWR0aDspIHtcblx0XHRcdGxldCBiID0gaW5wdXRbbysrXTtcblxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCA4ICYmIHggPCB3aWR0aDsgaSsrLCB4KyspIHtcblx0XHRcdFx0Y29uc3QgdiA9IGIgJiAweDgwID8gMCA6IDI1NTtcblx0XHRcdFx0YiA9IGIgPDwgMTtcblx0XHRcdFx0b3V0cHV0W3ArK10gPSB2O1xuXHRcdFx0XHRvdXRwdXRbcCsrXSA9IHY7XG5cdFx0XHRcdG91dHB1dFtwKytdID0gdjtcblx0XHRcdFx0b3V0cHV0W3ArK10gPSAyNTU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZURhdGFSYXcoZGF0YTogUGl4ZWxEYXRhLCBvZmZzZXQ6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpIHtcblx0aWYgKCF3aWR0aCB8fCAhaGVpZ2h0KVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cblx0Y29uc3QgYXJyYXkgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCk7XG5cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuXHRcdGFycmF5W2ldID0gZGF0YS5kYXRhW2kgKiA0ICsgb2Zmc2V0XTtcblx0fVxuXG5cdHJldHVybiBhcnJheTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlRGF0YVJMRShcblx0YnVmZmVyOiBVaW50OEFycmF5LCB7IGRhdGEgfTogUGl4ZWxEYXRhLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgb2Zmc2V0czogbnVtYmVyW10sXG5cdGxhcmdlOiBib29sZWFuXG4pIHtcblx0aWYgKCF3aWR0aCB8fCAhaGVpZ2h0KSByZXR1cm4gdW5kZWZpbmVkO1xuXG5cdGNvbnN0IHN0cmlkZSA9ICg0ICogd2lkdGgpIHwgMDtcblxuXHRsZXQgb2wgPSAwO1xuXHRsZXQgbyA9IChvZmZzZXRzLmxlbmd0aCAqIChsYXJnZSA/IDQgOiAyKSAqIGhlaWdodCkgfCAwO1xuXG5cdGZvciAoY29uc3Qgb2Zmc2V0IG9mIG9mZnNldHMpIHtcblx0XHRmb3IgKGxldCB5ID0gMCwgcCA9IG9mZnNldCB8IDA7IHkgPCBoZWlnaHQ7IHkrKykge1xuXHRcdFx0Y29uc3Qgc3RyaWRlU3RhcnQgPSAoeSAqIHN0cmlkZSkgfCAwO1xuXHRcdFx0Y29uc3Qgc3RyaWRlRW5kID0gKHN0cmlkZVN0YXJ0ICsgc3RyaWRlKSB8IDA7XG5cdFx0XHRjb25zdCBsYXN0SW5kZXggPSAoc3RyaWRlRW5kICsgb2Zmc2V0IC0gNCkgfCAwO1xuXHRcdFx0Y29uc3QgbGFzdEluZGV4MiA9IChsYXN0SW5kZXggLSA0KSB8IDA7XG5cdFx0XHRjb25zdCBzdGFydE9mZnNldCA9IG87XG5cblx0XHRcdGZvciAocCA9IChzdHJpZGVTdGFydCArIG9mZnNldCkgfCAwOyBwIDwgc3RyaWRlRW5kOyBwID0gKHAgKyA0KSB8IDApIHtcblx0XHRcdFx0aWYgKHAgPCBsYXN0SW5kZXgyKSB7XG5cdFx0XHRcdFx0bGV0IHZhbHVlMSA9IGRhdGFbcF07XG5cdFx0XHRcdFx0cCA9IChwICsgNCkgfCAwO1xuXHRcdFx0XHRcdGxldCB2YWx1ZTIgPSBkYXRhW3BdO1xuXHRcdFx0XHRcdHAgPSAocCArIDQpIHwgMDtcblx0XHRcdFx0XHRsZXQgdmFsdWUzID0gZGF0YVtwXTtcblxuXHRcdFx0XHRcdGlmICh2YWx1ZTEgPT09IHZhbHVlMiAmJiB2YWx1ZTEgPT09IHZhbHVlMykge1xuXHRcdFx0XHRcdFx0bGV0IGNvdW50ID0gMztcblxuXHRcdFx0XHRcdFx0d2hpbGUgKGNvdW50IDwgMTI4ICYmIHAgPCBsYXN0SW5kZXggJiYgZGF0YVsocCArIDQpIHwgMF0gPT09IHZhbHVlMSkge1xuXHRcdFx0XHRcdFx0XHRjb3VudCA9IChjb3VudCArIDEpIHwgMDtcblx0XHRcdFx0XHRcdFx0cCA9IChwICsgNCkgfCAwO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IDEgLSBjb3VudDtcblx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gdmFsdWUxO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zdCBjb3VudEluZGV4ID0gbztcblx0XHRcdFx0XHRcdGxldCB3cml0ZUxhc3QgPSB0cnVlO1xuXHRcdFx0XHRcdFx0bGV0IGNvdW50ID0gMTtcblx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gMDtcblx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gdmFsdWUxO1xuXG5cdFx0XHRcdFx0XHR3aGlsZSAocCA8IGxhc3RJbmRleCAmJiBjb3VudCA8IDEyOCkge1xuXHRcdFx0XHRcdFx0XHRwID0gKHAgKyA0KSB8IDA7XG5cdFx0XHRcdFx0XHRcdHZhbHVlMSA9IHZhbHVlMjtcblx0XHRcdFx0XHRcdFx0dmFsdWUyID0gdmFsdWUzO1xuXHRcdFx0XHRcdFx0XHR2YWx1ZTMgPSBkYXRhW3BdO1xuXG5cdFx0XHRcdFx0XHRcdGlmICh2YWx1ZTEgPT09IHZhbHVlMiAmJiB2YWx1ZTEgPT09IHZhbHVlMykge1xuXHRcdFx0XHRcdFx0XHRcdHAgPSAocCAtIDEyKSB8IDA7XG5cdFx0XHRcdFx0XHRcdFx0d3JpdGVMYXN0ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0Y291bnQrKztcblx0XHRcdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IHZhbHVlMTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRpZiAod3JpdGVMYXN0KSB7XG5cdFx0XHRcdFx0XHRcdGlmIChjb3VudCA8IDEyNykge1xuXHRcdFx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gdmFsdWUyO1xuXHRcdFx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gdmFsdWUzO1xuXHRcdFx0XHRcdFx0XHRcdGNvdW50ICs9IDI7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoY291bnQgPCAxMjgpIHtcblx0XHRcdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IHZhbHVlMjtcblx0XHRcdFx0XHRcdFx0XHRjb3VudCsrO1xuXHRcdFx0XHRcdFx0XHRcdHAgPSAocCAtIDQpIHwgMDtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRwID0gKHAgLSA4KSB8IDA7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0YnVmZmVyW2NvdW50SW5kZXhdID0gY291bnQgLSAxO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmIChwID09PSBsYXN0SW5kZXgpIHtcblx0XHRcdFx0XHRidWZmZXJbbysrXSA9IDA7XG5cdFx0XHRcdFx0YnVmZmVyW28rK10gPSBkYXRhW3BdO1xuXHRcdFx0XHR9IGVsc2UgeyAvLyBwID09PSBsYXN0SW5kZXgyXG5cdFx0XHRcdFx0YnVmZmVyW28rK10gPSAxO1xuXHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gZGF0YVtwXTtcblx0XHRcdFx0XHRwID0gKHAgKyA0KSB8IDA7XG5cdFx0XHRcdFx0YnVmZmVyW28rK10gPSBkYXRhW3BdO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGxlbmd0aCA9IG8gLSBzdGFydE9mZnNldDtcblxuXHRcdFx0aWYgKGxhcmdlKSB7XG5cdFx0XHRcdGJ1ZmZlcltvbCsrXSA9IChsZW5ndGggPj4gMjQpICYgMHhmZjtcblx0XHRcdFx0YnVmZmVyW29sKytdID0gKGxlbmd0aCA+PiAxNikgJiAweGZmO1xuXHRcdFx0fVxuXG5cdFx0XHRidWZmZXJbb2wrK10gPSAobGVuZ3RoID4+IDgpICYgMHhmZjtcblx0XHRcdGJ1ZmZlcltvbCsrXSA9IGxlbmd0aCAmIDB4ZmY7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGJ1ZmZlci5zbGljZSgwLCBvKTtcbn1cblxuZXhwb3J0IGxldCBjcmVhdGVDYW52YXM6ICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4gSFRNTENhbnZhc0VsZW1lbnQgPSAoKSA9PiB7XG5cdHRocm93IG5ldyBFcnJvcignQ2FudmFzIG5vdCBpbml0aWFsaXplZCwgdXNlIGluaXRpYWxpemVDYW52YXMgbWV0aG9kIHRvIHNldCB1cCBjcmVhdGVDYW52YXMgbWV0aG9kJyk7XG59O1xuXG5leHBvcnQgbGV0IGNyZWF0ZUNhbnZhc0Zyb21EYXRhOiAoZGF0YTogVWludDhBcnJheSkgPT4gSFRNTENhbnZhc0VsZW1lbnQgPSAoKSA9PiB7XG5cdHRocm93IG5ldyBFcnJvcignQ2FudmFzIG5vdCBpbml0aWFsaXplZCwgdXNlIGluaXRpYWxpemVDYW52YXMgbWV0aG9kIHRvIHNldCB1cCBjcmVhdGVDYW52YXNGcm9tRGF0YSBtZXRob2QnKTtcbn07XG5cbmxldCB0ZW1wQ2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuZXhwb3J0IGxldCBjcmVhdGVJbWFnZURhdGE6ICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4gSW1hZ2VEYXRhID0gKHdpZHRoLCBoZWlnaHQpID0+IHtcblx0aWYgKCF0ZW1wQ2FudmFzKSB0ZW1wQ2FudmFzID0gY3JlYXRlQ2FudmFzKDEsIDEpO1xuXHRyZXR1cm4gdGVtcENhbnZhcy5nZXRDb250ZXh0KCcyZCcpIS5jcmVhdGVJbWFnZURhdGEod2lkdGgsIGhlaWdodCk7XG59O1xuXG5pZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuXHRjcmVhdGVDYW52YXMgPSAod2lkdGgsIGhlaWdodCkgPT4ge1xuXHRcdGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuXHRcdGNhbnZhcy53aWR0aCA9IHdpZHRoO1xuXHRcdGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XG5cdFx0cmV0dXJuIGNhbnZhcztcblx0fTtcblxuXHRjcmVhdGVDYW52YXNGcm9tRGF0YSA9IChkYXRhKSA9PiB7XG5cdFx0Y29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcblx0XHRpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwnICsgZnJvbUJ5dGVBcnJheShkYXRhKTtcblx0XHRjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcblx0XHRjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aDtcblx0XHRjYW52YXMuaGVpZ2h0ID0gaW1hZ2UuaGVpZ2h0O1xuXHRcdGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpIS5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDApO1xuXHRcdHJldHVybiBjYW52YXM7XG5cdH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplQ2FudmFzKFxuXHRjcmVhdGVDYW52YXNNZXRob2Q6ICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4gSFRNTENhbnZhc0VsZW1lbnQsXG5cdGNyZWF0ZUNhbnZhc0Zyb21EYXRhTWV0aG9kPzogKGRhdGE6IFVpbnQ4QXJyYXkpID0+IEhUTUxDYW52YXNFbGVtZW50LFxuXHRjcmVhdGVJbWFnZURhdGFNZXRob2Q/OiAod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IEltYWdlRGF0YVxuKSB7XG5cdGNyZWF0ZUNhbnZhcyA9IGNyZWF0ZUNhbnZhc01ldGhvZDtcblx0Y3JlYXRlQ2FudmFzRnJvbURhdGEgPSBjcmVhdGVDYW52YXNGcm9tRGF0YU1ldGhvZCB8fCBjcmVhdGVDYW52YXNGcm9tRGF0YTtcblx0Y3JlYXRlSW1hZ2VEYXRhID0gY3JlYXRlSW1hZ2VEYXRhTWV0aG9kIHx8IGNyZWF0ZUltYWdlRGF0YTtcbn1cbiJdLCJzb3VyY2VSb290IjoiRDpcXFByb2plY3RzXFxnaXRodWJcXGFnLXBzZFxcc3JjIn0=
|
|
286
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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LE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEQsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDL0Isa0JBQXdFLEVBQ3hFLDBCQUFvRSxFQUNwRSxxQkFBb0U7SUFFcEUsWUFBWSxHQUFHLGtCQUFrQixDQUFDO0lBQ2xDLG9CQUFvQixHQUFHLDBCQUEwQixJQUFJLG9CQUFvQixDQUFDO0lBQzFFLGVBQWUsR0FBRyxxQkFBcUIsSUFBSSxlQUFlLENBQUM7QUFDNUQsQ0FBQyIsImZpbGUiOiJoZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbUJ5dGVBcnJheSB9IGZyb20gJ2Jhc2U2NC1qcyc7XG5pbXBvcnQgeyBMYXllciwgQmxlbmRNb2RlLCBMYXllckNvbG9yIH0gZnJvbSAnLi9wc2QnO1xuXG5leHBvcnQgY29uc3QgTU9DS19IQU5ETEVSUyA9IGZhbHNlO1xuZXhwb3J0IGNvbnN0IFJBV19JTUFHRV9EQVRBID0gZmFsc2U7XG5cbmV4cG9ydCBjb25zdCBmcm9tQmxlbmRNb2RlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5leHBvcnQgY29uc3QgdG9CbGVuZE1vZGU6IHsgW2tleTogc3RyaW5nXTogQmxlbmRNb2RlIH0gPSB7XG5cdCdwYXNzJzogJ3Bhc3MgdGhyb3VnaCcsXG5cdCdub3JtJzogJ25vcm1hbCcsXG5cdCdkaXNzJzogJ2Rpc3NvbHZlJyxcblx0J2RhcmsnOiAnZGFya2VuJyxcblx0J211bCAnOiAnbXVsdGlwbHknLFxuXHQnaWRpdic6ICdjb2xvciBidXJuJyxcblx0J2xicm4nOiAnbGluZWFyIGJ1cm4nLFxuXHQnZGtDbCc6ICdkYXJrZXIgY29sb3InLFxuXHQnbGl0ZSc6ICdsaWdodGVuJyxcblx0J3Njcm4nOiAnc2NyZWVuJyxcblx0J2RpdiAnOiAnY29sb3IgZG9kZ2UnLFxuXHQnbGRkZyc6ICdsaW5lYXIgZG9kZ2UnLFxuXHQnbGdDbCc6ICdsaWdodGVyIGNvbG9yJyxcblx0J292ZXInOiAnb3ZlcmxheScsXG5cdCdzTGl0JzogJ3NvZnQgbGlnaHQnLFxuXHQnaExpdCc6ICdoYXJkIGxpZ2h0Jyxcblx0J3ZMaXQnOiAndml2aWQgbGlnaHQnLFxuXHQnbExpdCc6ICdsaW5lYXIgbGlnaHQnLFxuXHQncExpdCc6ICdwaW4gbGlnaHQnLFxuXHQnaE1peCc6ICdoYXJkIG1peCcsXG5cdCdkaWZmJzogJ2RpZmZlcmVuY2UnLFxuXHQnc211ZCc6ICdleGNsdXNpb24nLFxuXHQnZnN1Yic6ICdzdWJ0cmFjdCcsXG5cdCdmZGl2JzogJ2RpdmlkZScsXG5cdCdodWUgJzogJ2h1ZScsXG5cdCdzYXQgJzogJ3NhdHVyYXRpb24nLFxuXHQnY29scic6ICdjb2xvcicsXG5cdCdsdW0gJzogJ2x1bWlub3NpdHknLFxufTtcblxuT2JqZWN0LmtleXModG9CbGVuZE1vZGUpLmZvckVhY2goa2V5ID0+IGZyb21CbGVuZE1vZGVbdG9CbGVuZE1vZGVba2V5XV0gPSBrZXkpO1xuXG5leHBvcnQgY29uc3QgbGF5ZXJDb2xvcnM6IExheWVyQ29sb3JbXSA9IFtcblx0J25vbmUnLCAncmVkJywgJ29yYW5nZScsICd5ZWxsb3cnLCAnZ3JlZW4nLCAnYmx1ZScsICd2aW9sZXQnLCAnZ3JheSdcbl07XG5cbmV4cG9ydCBjb25zdCBsYXJnZUFkZGl0aW9uYWxJbmZvS2V5cyA9IFtcblx0Ly8gZnJvbSBkb2N1bWVudGF0aW9uXG5cdCdMTXNrJywgJ0xyMTYnLCAnTHIzMicsICdMYXlyJywgJ010MTYnLCAnTXQzMicsICdNdHJuJywgJ0FscGgnLCAnRk1zaycsICdsbmsyJywgJ0ZFaWQnLCAnRlhpZCcsICdQeFNEJyxcblx0Ly8gZnJvbSBndWVzc2luZ1xuXHQnY2luZicsXG5dO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpY3Qge1xuXHRba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXZNYXAobWFwOiBEaWN0KSB7XG5cdGNvbnN0IHJlc3VsdDogRGljdCA9IHt9O1xuXHRPYmplY3Qua2V5cyhtYXApLmZvckVhY2goa2V5ID0+IHJlc3VsdFttYXBba2V5XV0gPSBrZXkpO1xuXHRyZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRW51bTxUPihwcmVmaXg6IHN0cmluZywgZGVmOiBzdHJpbmcsIG1hcDogRGljdCkge1xuXHRjb25zdCByZXYgPSByZXZNYXAobWFwKTtcblx0Y29uc3QgZGVjb2RlID0gKHZhbDogc3RyaW5nKTogVCA9PiB7XG5cdFx0Y29uc3QgdmFsdWUgPSB2YWwuc3BsaXQoJy4nKVsxXTtcblx0XHRpZiAodmFsdWUgJiYgIXJldlt2YWx1ZV0pIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVkIHZhbHVlIGZvciBlbnVtOiAnJHt2YWx9J2ApO1xuXHRcdHJldHVybiAocmV2W3ZhbHVlXSBhcyBhbnkpIHx8IGRlZjtcblx0fTtcblx0Y29uc3QgZW5jb2RlID0gKHZhbDogVCB8IHVuZGVmaW5lZCk6IHN0cmluZyA9PiB7XG5cdFx0aWYgKHZhbCAmJiAhbWFwW3ZhbCBhcyBhbnldKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdmFsdWUgZm9yIGVudW06ICcke3ZhbH0nYCk7XG5cdFx0cmV0dXJuIGAke3ByZWZpeH0uJHttYXBbdmFsIGFzIGFueV0gfHwgbWFwW2RlZl19YDtcblx0fTtcblx0cmV0dXJuIHsgZGVjb2RlLCBlbmNvZGUgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gQ29sb3JTcGFjZSB7XG5cdFJHQiA9IDAsXG5cdEhTQiA9IDEsXG5cdENNWUsgPSAyLFxuXHRMYWIgPSA3LFxuXHRHcmF5c2NhbGUgPSA4LFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBMYXllck1hc2tGbGFncyB7XG5cdFBvc2l0aW9uUmVsYXRpdmVUb0xheWVyID0gMSxcblx0TGF5ZXJNYXNrRGlzYWJsZWQgPSAyLFxuXHRJbnZlcnRMYXllck1hc2tXaGVuQmxlbmRpbmcgPSA0LCAvLyBvYnNvbGV0ZVxuXHRMYXllck1hc2tGcm9tUmVuZGVyaW5nT3RoZXJEYXRhID0gOCxcblx0TWFza0hhc1BhcmFtZXRlcnNBcHBsaWVkVG9JdCA9IDE2LFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBNYXNrUGFyYW1zIHtcblx0VXNlck1hc2tEZW5zaXR5ID0gMSxcblx0VXNlck1hc2tGZWF0aGVyID0gMixcblx0VmVjdG9yTWFza0RlbnNpdHkgPSA0LFxuXHRWZWN0b3JNYXNrRmVhdGhlciA9IDgsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIENoYW5uZWxJRCB7XG5cdENvbG9yMCA9IDAsIC8vIHJlZCAocmdiKSAvIGN5YW4gKGNteWspXG5cdENvbG9yMSA9IDEsIC8vIGdyZWVuIChyZ2IpIC8gbWFnZW50YSAoY215aylcblx0Q29sb3IyID0gMiwgLy8gYmx1ZSAocmdiKSAvIHllbGxvdyAoY215aylcblx0Q29sb3IzID0gMywgLy8gLSAocmdiKSAvIGJsYWNrIChjbXlrKVxuXHRUcmFuc3BhcmVuY3kgPSAtMSxcblx0VXNlck1hc2sgPSAtMixcblx0UmVhbFVzZXJNYXNrID0gLTMsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIENvbXByZXNzaW9uIHtcblx0UmF3RGF0YSA9IDAsXG5cdFJsZUNvbXByZXNzZWQgPSAxLFxuXHRaaXBXaXRob3V0UHJlZGljdGlvbiA9IDIsXG5cdFppcFdpdGhQcmVkaWN0aW9uID0gMyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFubmVsRGF0YSB7XG5cdGNoYW5uZWxJZDogQ2hhbm5lbElEO1xuXHRjb21wcmVzc2lvbjogQ29tcHJlc3Npb247XG5cdGJ1ZmZlcjogVWludDhBcnJheSB8IHVuZGVmaW5lZDtcblx0bGVuZ3RoOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm91bmRzIHtcblx0dG9wOiBudW1iZXI7XG5cdGxlZnQ6IG51bWJlcjtcblx0cmlnaHQ6IG51bWJlcjtcblx0Ym90dG9tOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5ZXJDaGFubmVsRGF0YSB7XG5cdGxheWVyOiBMYXllcjtcblx0Y2hhbm5lbHM6IENoYW5uZWxEYXRhW107XG5cdHRvcDogbnVtYmVyO1xuXHRsZWZ0OiBudW1iZXI7XG5cdHJpZ2h0OiBudW1iZXI7XG5cdGJvdHRvbTogbnVtYmVyO1xuXHRtYXNrPzogQm91bmRzO1xufVxuXG5leHBvcnQgdHlwZSBQaXhlbEFycmF5ID0gVWludDhDbGFtcGVkQXJyYXkgfCBVaW50OEFycmF5O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBpeGVsRGF0YSB7XG5cdGRhdGE6IFBpeGVsQXJyYXk7XG5cdHdpZHRoOiBudW1iZXI7XG5cdGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb2Zmc2V0Rm9yQ2hhbm5lbChjaGFubmVsSWQ6IENoYW5uZWxJRCwgY215azogYm9vbGVhbikge1xuXHRzd2l0Y2ggKGNoYW5uZWxJZCkge1xuXHRcdGNhc2UgQ2hhbm5lbElELkNvbG9yMDogcmV0dXJuIDA7XG5cdFx0Y2FzZSBDaGFubmVsSUQuQ29sb3IxOiByZXR1cm4gMTtcblx0XHRjYXNlIENoYW5uZWxJRC5Db2xvcjI6IHJldHVybiAyO1xuXHRcdGNhc2UgQ2hhbm5lbElELkNvbG9yMzogcmV0dXJuIGNteWsgPyAzIDogY2hhbm5lbElkICsgMTtcblx0XHRjYXNlIENoYW5uZWxJRC5UcmFuc3BhcmVuY3k6IHJldHVybiBjbXlrID8gNCA6IDM7XG5cdFx0ZGVmYXVsdDogcmV0dXJuIGNoYW5uZWxJZCArIDE7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsYW1wKHZhbHVlOiBudW1iZXIsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikge1xuXHRyZXR1cm4gdmFsdWUgPCBtaW4gPyBtaW4gOiAodmFsdWUgPiBtYXggPyBtYXggOiB2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNBbHBoYShkYXRhOiBQaXhlbERhdGEpIHtcblx0Y29uc3Qgc2l6ZSA9IGRhdGEud2lkdGggKiBkYXRhLmhlaWdodCAqIDQ7XG5cblx0Zm9yIChsZXQgaSA9IDM7IGkgPCBzaXplOyBpICs9IDQpIHtcblx0XHRpZiAoZGF0YS5kYXRhW2ldICE9PSAyNTUpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0SW1hZ2VEYXRhKHsgZGF0YSB9OiBQaXhlbERhdGEpIHtcblx0Y29uc3QgYnVmZmVyID0gbmV3IFVpbnQzMkFycmF5KGRhdGEuYnVmZmVyKTtcblx0Y29uc3Qgc2l6ZSA9IGJ1ZmZlci5sZW5ndGggfCAwO1xuXG5cdGZvciAobGV0IHAgPSAwOyBwIDwgc2l6ZTsgcCA9IChwICsgMSkgfCAwKSB7XG5cdFx0YnVmZmVyW3BdID0gMHhmZjAwMDAwMDtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlQml0bWFwKGlucHV0OiBQaXhlbEFycmF5LCBvdXRwdXQ6IFBpeGVsQXJyYXksIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSB7XG5cdGZvciAobGV0IHkgPSAwLCBwID0gMCwgbyA9IDA7IHkgPCBoZWlnaHQ7IHkrKykge1xuXHRcdGZvciAobGV0IHggPSAwOyB4IDwgd2lkdGg7KSB7XG5cdFx0XHRsZXQgYiA9IGlucHV0W28rK107XG5cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgOCAmJiB4IDwgd2lkdGg7IGkrKywgeCsrKSB7XG5cdFx0XHRcdGNvbnN0IHYgPSBiICYgMHg4MCA/IDAgOiAyNTU7XG5cdFx0XHRcdGIgPSBiIDw8IDE7XG5cdFx0XHRcdG91dHB1dFtwKytdID0gdjtcblx0XHRcdFx0b3V0cHV0W3ArK10gPSB2O1xuXHRcdFx0XHRvdXRwdXRbcCsrXSA9IHY7XG5cdFx0XHRcdG91dHB1dFtwKytdID0gMjU1O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVEYXRhUmF3KGRhdGE6IFBpeGVsRGF0YSwgb2Zmc2V0OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSB7XG5cdGlmICghd2lkdGggfHwgIWhlaWdodClcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXG5cdGNvbnN0IGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQpO1xuXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcblx0XHRhcnJheVtpXSA9IGRhdGEuZGF0YVtpICogNCArIG9mZnNldF07XG5cdH1cblxuXHRyZXR1cm4gYXJyYXk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZURhdGFSTEUoXG5cdGJ1ZmZlcjogVWludDhBcnJheSwgeyBkYXRhIH06IFBpeGVsRGF0YSwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIG9mZnNldHM6IG51bWJlcltdLFxuXHRsYXJnZTogYm9vbGVhblxuKSB7XG5cdGlmICghd2lkdGggfHwgIWhlaWdodCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuXHRjb25zdCBzdHJpZGUgPSAoNCAqIHdpZHRoKSB8IDA7XG5cblx0bGV0IG9sID0gMDtcblx0bGV0IG8gPSAob2Zmc2V0cy5sZW5ndGggKiAobGFyZ2UgPyA0IDogMikgKiBoZWlnaHQpIHwgMDtcblxuXHRmb3IgKGNvbnN0IG9mZnNldCBvZiBvZmZzZXRzKSB7XG5cdFx0Zm9yIChsZXQgeSA9IDAsIHAgPSBvZmZzZXQgfCAwOyB5IDwgaGVpZ2h0OyB5KyspIHtcblx0XHRcdGNvbnN0IHN0cmlkZVN0YXJ0ID0gKHkgKiBzdHJpZGUpIHwgMDtcblx0XHRcdGNvbnN0IHN0cmlkZUVuZCA9IChzdHJpZGVTdGFydCArIHN0cmlkZSkgfCAwO1xuXHRcdFx0Y29uc3QgbGFzdEluZGV4ID0gKHN0cmlkZUVuZCArIG9mZnNldCAtIDQpIHwgMDtcblx0XHRcdGNvbnN0IGxhc3RJbmRleDIgPSAobGFzdEluZGV4IC0gNCkgfCAwO1xuXHRcdFx0Y29uc3Qgc3RhcnRPZmZzZXQgPSBvO1xuXG5cdFx0XHRmb3IgKHAgPSAoc3RyaWRlU3RhcnQgKyBvZmZzZXQpIHwgMDsgcCA8IHN0cmlkZUVuZDsgcCA9IChwICsgNCkgfCAwKSB7XG5cdFx0XHRcdGlmIChwIDwgbGFzdEluZGV4Mikge1xuXHRcdFx0XHRcdGxldCB2YWx1ZTEgPSBkYXRhW3BdO1xuXHRcdFx0XHRcdHAgPSAocCArIDQpIHwgMDtcblx0XHRcdFx0XHRsZXQgdmFsdWUyID0gZGF0YVtwXTtcblx0XHRcdFx0XHRwID0gKHAgKyA0KSB8IDA7XG5cdFx0XHRcdFx0bGV0IHZhbHVlMyA9IGRhdGFbcF07XG5cblx0XHRcdFx0XHRpZiAodmFsdWUxID09PSB2YWx1ZTIgJiYgdmFsdWUxID09PSB2YWx1ZTMpIHtcblx0XHRcdFx0XHRcdGxldCBjb3VudCA9IDM7XG5cblx0XHRcdFx0XHRcdHdoaWxlIChjb3VudCA8IDEyOCAmJiBwIDwgbGFzdEluZGV4ICYmIGRhdGFbKHAgKyA0KSB8IDBdID09PSB2YWx1ZTEpIHtcblx0XHRcdFx0XHRcdFx0Y291bnQgPSAoY291bnQgKyAxKSB8IDA7XG5cdFx0XHRcdFx0XHRcdHAgPSAocCArIDQpIHwgMDtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0YnVmZmVyW28rK10gPSAxIC0gY291bnQ7XG5cdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IHZhbHVlMTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uc3QgY291bnRJbmRleCA9IG87XG5cdFx0XHRcdFx0XHRsZXQgd3JpdGVMYXN0ID0gdHJ1ZTtcblx0XHRcdFx0XHRcdGxldCBjb3VudCA9IDE7XG5cdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IDA7XG5cdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IHZhbHVlMTtcblxuXHRcdFx0XHRcdFx0d2hpbGUgKHAgPCBsYXN0SW5kZXggJiYgY291bnQgPCAxMjgpIHtcblx0XHRcdFx0XHRcdFx0cCA9IChwICsgNCkgfCAwO1xuXHRcdFx0XHRcdFx0XHR2YWx1ZTEgPSB2YWx1ZTI7XG5cdFx0XHRcdFx0XHRcdHZhbHVlMiA9IHZhbHVlMztcblx0XHRcdFx0XHRcdFx0dmFsdWUzID0gZGF0YVtwXTtcblxuXHRcdFx0XHRcdFx0XHRpZiAodmFsdWUxID09PSB2YWx1ZTIgJiYgdmFsdWUxID09PSB2YWx1ZTMpIHtcblx0XHRcdFx0XHRcdFx0XHRwID0gKHAgLSAxMikgfCAwO1xuXHRcdFx0XHRcdFx0XHRcdHdyaXRlTGFzdCA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdGNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdFx0YnVmZmVyW28rK10gPSB2YWx1ZTE7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0aWYgKHdyaXRlTGFzdCkge1xuXHRcdFx0XHRcdFx0XHRpZiAoY291bnQgPCAxMjcpIHtcblx0XHRcdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IHZhbHVlMjtcblx0XHRcdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IHZhbHVlMztcblx0XHRcdFx0XHRcdFx0XHRjb3VudCArPSAyO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvdW50IDwgMTI4KSB7XG5cdFx0XHRcdFx0XHRcdFx0YnVmZmVyW28rK10gPSB2YWx1ZTI7XG5cdFx0XHRcdFx0XHRcdFx0Y291bnQrKztcblx0XHRcdFx0XHRcdFx0XHRwID0gKHAgLSA0KSB8IDA7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0cCA9IChwIC0gOCkgfCAwO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdGJ1ZmZlcltjb3VudEluZGV4XSA9IGNvdW50IC0gMTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSBpZiAocCA9PT0gbGFzdEluZGV4KSB7XG5cdFx0XHRcdFx0YnVmZmVyW28rK10gPSAwO1xuXHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gZGF0YVtwXTtcblx0XHRcdFx0fSBlbHNlIHsgLy8gcCA9PT0gbGFzdEluZGV4MlxuXHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gMTtcblx0XHRcdFx0XHRidWZmZXJbbysrXSA9IGRhdGFbcF07XG5cdFx0XHRcdFx0cCA9IChwICsgNCkgfCAwO1xuXHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gZGF0YVtwXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBsZW5ndGggPSBvIC0gc3RhcnRPZmZzZXQ7XG5cblx0XHRcdGlmIChsYXJnZSkge1xuXHRcdFx0XHRidWZmZXJbb2wrK10gPSAobGVuZ3RoID4+IDI0KSAmIDB4ZmY7XG5cdFx0XHRcdGJ1ZmZlcltvbCsrXSA9IChsZW5ndGggPj4gMTYpICYgMHhmZjtcblx0XHRcdH1cblxuXHRcdFx0YnVmZmVyW29sKytdID0gKGxlbmd0aCA+PiA4KSAmIDB4ZmY7XG5cdFx0XHRidWZmZXJbb2wrK10gPSBsZW5ndGggJiAweGZmO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBidWZmZXIuc2xpY2UoMCwgbyk7XG59XG5cbmV4cG9ydCBsZXQgY3JlYXRlQ2FudmFzOiAod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IEhUTUxDYW52YXNFbGVtZW50ID0gKCkgPT4ge1xuXHR0aHJvdyBuZXcgRXJyb3IoJ0NhbnZhcyBub3QgaW5pdGlhbGl6ZWQsIHVzZSBpbml0aWFsaXplQ2FudmFzIG1ldGhvZCB0byBzZXQgdXAgY3JlYXRlQ2FudmFzIG1ldGhvZCcpO1xufTtcblxuZXhwb3J0IGxldCBjcmVhdGVDYW52YXNGcm9tRGF0YTogKGRhdGE6IFVpbnQ4QXJyYXkpID0+IEhUTUxDYW52YXNFbGVtZW50ID0gKCkgPT4ge1xuXHR0aHJvdyBuZXcgRXJyb3IoJ0NhbnZhcyBub3QgaW5pdGlhbGl6ZWQsIHVzZSBpbml0aWFsaXplQ2FudmFzIG1ldGhvZCB0byBzZXQgdXAgY3JlYXRlQ2FudmFzRnJvbURhdGEgbWV0aG9kJyk7XG59O1xuXG5sZXQgdGVtcENhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbmV4cG9ydCBsZXQgY3JlYXRlSW1hZ2VEYXRhOiAod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IEltYWdlRGF0YSA9ICh3aWR0aCwgaGVpZ2h0KSA9PiB7XG5cdGlmICghdGVtcENhbnZhcykgdGVtcENhbnZhcyA9IGNyZWF0ZUNhbnZhcygxLCAxKTtcblx0cmV0dXJuIHRlbXBDYW52YXMuZ2V0Q29udGV4dCgnMmQnKSEuY3JlYXRlSW1hZ2VEYXRhKHdpZHRoLCBoZWlnaHQpO1xufTtcblxuaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0Y3JlYXRlQ2FudmFzID0gKHdpZHRoLCBoZWlnaHQpID0+IHtcblx0XHRjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcblx0XHRjYW52YXMud2lkdGggPSB3aWR0aDtcblx0XHRjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xuXHRcdHJldHVybiBjYW52YXM7XG5cdH07XG5cblx0Y3JlYXRlQ2FudmFzRnJvbURhdGEgPSAoZGF0YSkgPT4ge1xuXHRcdGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XG5cdFx0aW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvanBlZztiYXNlNjQsJyArIGZyb21CeXRlQXJyYXkoZGF0YSk7XG5cdFx0Y29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG5cdFx0Y2FudmFzLndpZHRoID0gaW1hZ2Uud2lkdGg7XG5cdFx0Y2FudmFzLmhlaWdodCA9IGltYWdlLmhlaWdodDtcblx0XHRjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSEuZHJhd0ltYWdlKGltYWdlLCAwLCAwKTtcblx0XHRyZXR1cm4gY2FudmFzO1xuXHR9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZUNhbnZhcyhcblx0Y3JlYXRlQ2FudmFzTWV0aG9kOiAod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IEhUTUxDYW52YXNFbGVtZW50LFxuXHRjcmVhdGVDYW52YXNGcm9tRGF0YU1ldGhvZD86IChkYXRhOiBVaW50OEFycmF5KSA9PiBIVE1MQ2FudmFzRWxlbWVudCxcblx0Y3JlYXRlSW1hZ2VEYXRhTWV0aG9kPzogKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSA9PiBJbWFnZURhdGFcbikge1xuXHRjcmVhdGVDYW52YXMgPSBjcmVhdGVDYW52YXNNZXRob2Q7XG5cdGNyZWF0ZUNhbnZhc0Zyb21EYXRhID0gY3JlYXRlQ2FudmFzRnJvbURhdGFNZXRob2QgfHwgY3JlYXRlQ2FudmFzRnJvbURhdGE7XG5cdGNyZWF0ZUltYWdlRGF0YSA9IGNyZWF0ZUltYWdlRGF0YU1ldGhvZCB8fCBjcmVhdGVJbWFnZURhdGE7XG59XG4iXSwic291cmNlUm9vdCI6IkQ6XFxQcm9qZWN0c1xcZ2l0aHViXFxhZy1wc2RcXHNyYyJ9
|
|
@@ -407,6 +407,8 @@ addHandler(1036, function (target) { return target.thumbnail !== undefined || ta
|
|
|
407
407
|
data = target.thumbnailRaw.data;
|
|
408
408
|
}
|
|
409
409
|
else {
|
|
410
|
+
if (!target.thumbnail)
|
|
411
|
+
throw new Error('Missing thumbnail');
|
|
410
412
|
width = target.thumbnail.width;
|
|
411
413
|
height = target.thumbnail.height;
|
|
412
414
|
data = toByteArray(target.thumbnail.toDataURL('image/jpeg', 1).substr('data:image/jpeg;base64,'.length));
|
|
@@ -578,4 +580,4 @@ target) { return target._ir4001 !== undefined; }, function (reader, target, left
|
|
|
578
580
|
writeBytes(writer, target._ir4001);
|
|
579
581
|
});
|
|
580
582
|
|
|
581
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFDO0tBQzdDO1NBQU0sSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFO1FBQzFCLElBQU0sSUFBSSxHQUFHLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLGNBQWMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM1QztTQUFNO1FBQ04sa0JBQWtCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUNqRTtBQUNGLENBQUMsRUFDRCxVQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsVUFBVSxDQUFDLE1BQU0sRUFBRyxNQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUNELENBQUMiLCJmaWxlIjoiaW1hZ2VSZXNvdXJjZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b0J5dGVBcnJheSB9IGZyb20gJ2Jhc2U2NC1qcyc7XG5pbXBvcnQgeyBJbWFnZVJlc291cmNlcywgUmVhZE9wdGlvbnMsIFJlbmRlcmluZ0ludGVudCB9IGZyb20gJy4vcHNkJztcbmltcG9ydCB7XG5cdFBzZFJlYWRlciwgcmVhZFBhc2NhbFN0cmluZywgcmVhZFVuaWNvZGVTdHJpbmcsIHJlYWRVaW50MzIsIHJlYWRVaW50MTYsIHJlYWRVaW50OCwgcmVhZEZsb2F0NjQsXG5cdHJlYWRCeXRlcywgc2tpcEJ5dGVzLCByZWFkRmxvYXQzMiwgcmVhZEludDE2LCByZWFkRml4ZWRQb2ludDMyLCByZWFkU2lnbmF0dXJlLCBjaGVja1NpZ25hdHVyZSxcblx0cmVhZFNlY3Rpb24sIHJlYWRDb2xvclxufSBmcm9tICcuL3BzZFJlYWRlcic7XG5pbXBvcnQge1xuXHRQc2RXcml0ZXIsIHdyaXRlUGFzY2FsU3RyaW5nLCB3cml0ZVVuaWNvZGVTdHJpbmcsIHdyaXRlVWludDMyLCB3cml0ZVVpbnQ4LCB3cml0ZUZsb2F0NjQsIHdyaXRlVWludDE2LFxuXHR3cml0ZUJ5dGVzLCB3cml0ZUludDE2LCB3cml0ZUZsb2F0MzIsIHdyaXRlRml4ZWRQb2ludDMyLCB3cml0ZVVuaWNvZGVTdHJpbmdXaXRoUGFkZGluZywgd3JpdGVDb2xvcixcbn0gZnJvbSAnLi9wc2RXcml0ZXInO1xuaW1wb3J0IHsgY3JlYXRlQ2FudmFzRnJvbURhdGEsIGNyZWF0ZUVudW0sIE1PQ0tfSEFORExFUlMgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgZGVjb2RlU3RyaW5nLCBlbmNvZGVTdHJpbmcgfSBmcm9tICcuL3V0ZjgnO1xuaW1wb3J0IHsgcmVhZFZlcnNpb25BbmREZXNjcmlwdG9yLCB3cml0ZVZlcnNpb25BbmREZXNjcmlwdG9yIH0gZnJvbSAnLi9kZXNjcmlwdG9yJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUhhbmRsZXIge1xuXHRrZXk6IG51bWJlcjtcblx0aGFzOiAodGFyZ2V0OiBJbWFnZVJlc291cmNlcykgPT4gYm9vbGVhbjtcblx0cmVhZDogKHJlYWRlcjogUHNkUmVhZGVyLCB0YXJnZXQ6IEltYWdlUmVzb3VyY2VzLCBsZWZ0OiAoKSA9PiBudW1iZXIsIG9wdGlvbnM6IFJlYWRPcHRpb25zKSA9PiB2b2lkO1xuXHR3cml0ZTogKHdyaXRlcjogUHNkV3JpdGVyLCB0YXJnZXQ6IEltYWdlUmVzb3VyY2VzKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgcmVzb3VyY2VIYW5kbGVyczogUmVzb3VyY2VIYW5kbGVyW10gPSBbXTtcbmV4cG9ydCBjb25zdCByZXNvdXJjZUhhbmRsZXJzTWFwOiB7IFtrZXk6IG51bWJlcl06IFJlc291cmNlSGFuZGxlciB9ID0ge307XG5cbmZ1bmN0aW9uIGFkZEhhbmRsZXIoXG5cdGtleTogbnVtYmVyLFxuXHRoYXM6ICh0YXJnZXQ6IEltYWdlUmVzb3VyY2VzKSA9PiBib29sZWFuLFxuXHRyZWFkOiAocmVhZGVyOiBQc2RSZWFkZXIsIHRhcmdldDogSW1hZ2VSZXNvdXJjZXMsIGxlZnQ6ICgpID0+IG51bWJlciwgb3B0aW9uczogUmVhZE9wdGlvbnMpID0+IHZvaWQsXG5cdHdyaXRlOiAod3JpdGVyOiBQc2RXcml0ZXIsIHRhcmdldDogSW1hZ2VSZXNvdXJjZXMpID0+IHZvaWQsXG4pIHtcblx0Y29uc3QgaGFuZGxlcjogUmVzb3VyY2VIYW5kbGVyID0geyBrZXksIGhhcywgcmVhZCwgd3JpdGUgfTtcblx0cmVzb3VyY2VIYW5kbGVycy5wdXNoKGhhbmRsZXIpO1xuXHRyZXNvdXJjZUhhbmRsZXJzTWFwW2hhbmRsZXIua2V5XSA9IGhhbmRsZXI7XG59XG5cbmNvbnN0IExPR19NT0NLX0hBTkRMRVJTID0gZmFsc2U7XG5jb25zdCBSRVNPTFVUSU9OX1VOSVRTID0gW3VuZGVmaW5lZCwgJ1BQSScsICdQUENNJ107XG5jb25zdCBNRUFTVVJFTUVOVF9VTklUUyA9IFt1bmRlZmluZWQsICdJbmNoZXMnLCAnQ2VudGltZXRlcnMnLCAnUG9pbnRzJywgJ1BpY2FzJywgJ0NvbHVtbnMnXTtcbmNvbnN0IGhleCA9ICcwMTIzNDU2Nzg5YWJjZGVmJztcblxuZnVuY3Rpb24gY2hhclRvTmliYmxlKGNvZGU6IG51bWJlcikge1xuXHRyZXR1cm4gY29kZSA8PSA1NyA/IGNvZGUgLSA0OCA6IGNvZGUgLSA4Nztcbn1cblxuZnVuY3Rpb24gYnl0ZUF0KHZhbHVlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpIHtcblx0cmV0dXJuIChjaGFyVG9OaWJibGUodmFsdWUuY2hhckNvZGVBdChpbmRleCkpIDw8IDQpIHwgY2hhclRvTmliYmxlKHZhbHVlLmNoYXJDb2RlQXQoaW5kZXggKyAxKSk7XG59XG5cbmZ1bmN0aW9uIHJlYWRVdGY4U3RyaW5nKHJlYWRlcjogUHNkUmVhZGVyLCBsZW5ndGg6IG51bWJlcikge1xuXHRjb25zdCBidWZmZXIgPSByZWFkQnl0ZXMocmVhZGVyLCBsZW5ndGgpO1xuXHRyZXR1cm4gZGVjb2RlU3RyaW5nKGJ1ZmZlcik7XG59XG5cbmZ1bmN0aW9uIHdyaXRlVXRmOFN0cmluZyh3cml0ZXI6IFBzZFdyaXRlciwgdmFsdWU6IHN0cmluZykge1xuXHRjb25zdCBidWZmZXIgPSBlbmNvZGVTdHJpbmcodmFsdWUpO1xuXHR3cml0ZUJ5dGVzKHdyaXRlciwgYnVmZmVyKTtcbn1cblxuTU9DS19IQU5ETEVSUyAmJiBhZGRIYW5kbGVyKFxuXHQxMDI4LCAvLyBJUFRDLU5BQSByZWNvcmRcblx0dGFyZ2V0ID0+ICh0YXJnZXQgYXMgYW55KS5faXIxMDI4ICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgbGVmdCkgPT4ge1xuXHRcdExPR19NT0NLX0hBTkRMRVJTICYmIGNvbnNvbGUubG9nKCdpbWFnZSByZXNvdXJjZSAxMDI4JywgbGVmdCgpKTtcblx0XHQodGFyZ2V0IGFzIGFueSkuX2lyMTAyOCA9IHJlYWRCeXRlcyhyZWFkZXIsIGxlZnQoKSk7XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdHdyaXRlQnl0ZXMod3JpdGVyLCAodGFyZ2V0IGFzIGFueSkuX2lyMTAyOCk7XG5cdH0sXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDYxLFxuXHR0YXJnZXQgPT4gdGFyZ2V0LmNhcHRpb25EaWdlc3QgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0bGV0IGNhcHRpb25EaWdlc3QgPSAnJztcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgMTY7IGkrKykge1xuXHRcdFx0Y29uc3QgYnl0ZSA9IHJlYWRVaW50OChyZWFkZXIpO1xuXHRcdFx0Y2FwdGlvbkRpZ2VzdCArPSBoZXhbYnl0ZSA+PiA0XTtcblx0XHRcdGNhcHRpb25EaWdlc3QgKz0gaGV4W2J5dGUgJiAweGZdO1xuXHRcdH1cblxuXHRcdHRhcmdldC5jYXB0aW9uRGlnZXN0ID0gY2FwdGlvbkRpZ2VzdDtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCAxNjsgaSsrKSB7XG5cdFx0XHR3cml0ZVVpbnQ4KHdyaXRlciwgYnl0ZUF0KHRhcmdldC5jYXB0aW9uRGlnZXN0ISwgaSAqIDIpKTtcblx0XHR9XG5cdH0sXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDYwLFxuXHR0YXJnZXQgPT4gdGFyZ2V0LnhtcE1ldGFkYXRhICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgbGVmdCkgPT4gdGFyZ2V0LnhtcE1ldGFkYXRhID0gcmVhZFV0ZjhTdHJpbmcocmVhZGVyLCBsZWZ0KCkpLFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHdyaXRlVXRmOFN0cmluZyh3cml0ZXIsIHRhcmdldC54bXBNZXRhZGF0YSEpLFxuKTtcblxuY29uc3QgSW50ZSA9IGNyZWF0ZUVudW08UmVuZGVyaW5nSW50ZW50PignSW50ZScsICdwZXJjZXB0dWFsJywge1xuXHQncGVyY2VwdHVhbCc6ICdJbWcgJyxcblx0J3NhdHVyYXRpb24nOiAnR3JwICcsXG5cdCdyZWxhdGl2ZSBjb2xvcmltZXRyaWMnOiAnQ2xybScsXG5cdCdhYnNvbHV0ZSBjb2xvcmltZXRyaWMnOiAnQUNscicsXG59KTtcblxuaW50ZXJmYWNlIFByaW50SW5mb3JtYXRpb25EZXNjcmlwdG9yIHtcblx0J05tICAnPzogc3RyaW5nO1xuXHRDbHJTPzogc3RyaW5nO1xuXHRQc3RTPzogYm9vbGVhbjtcblx0TXBCbD86IGJvb2xlYW47XG5cdEludGU/OiBzdHJpbmc7XG5cdGhhcmRQcm9vZj86IGJvb2xlYW47XG5cdHByaW50U2l4dGVlbkJpdD86IGJvb2xlYW47XG5cdHByaW50ZXJOYW1lPzogc3RyaW5nO1xuXHRwcmludFByb29mU2V0dXA/OiB7XG5cdFx0Qmx0bjogc3RyaW5nO1xuXHR9IHwge1xuXHRcdHByb2ZpbGU6IHN0cmluZztcblx0XHRJbnRlOiBzdHJpbmc7XG5cdFx0TXBCbDogYm9vbGVhbjtcblx0XHRwYXBlcldoaXRlOiBib29sZWFuO1xuXHR9O1xufVxuXG5hZGRIYW5kbGVyKFxuXHQxMDgyLFxuXHR0YXJnZXQgPT4gdGFyZ2V0LnByaW50SW5mb3JtYXRpb24gIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0Y29uc3QgZGVzYzogUHJpbnRJbmZvcm1hdGlvbkRlc2NyaXB0b3IgPSByZWFkVmVyc2lvbkFuZERlc2NyaXB0b3IocmVhZGVyKTtcblxuXHRcdHRhcmdldC5wcmludEluZm9ybWF0aW9uID0ge1xuXHRcdFx0cHJpbnRlck5hbWU6IGRlc2MucHJpbnRlck5hbWUgfHwgJycsXG5cdFx0XHRyZW5kZXJpbmdJbnRlbnQ6IEludGUuZGVjb2RlKGRlc2MuSW50ZSA/PyAnSW50ZS5JbWcgJyksXG5cdFx0fTtcblxuXHRcdGNvbnN0IGluZm8gPSB0YXJnZXQucHJpbnRJbmZvcm1hdGlvbjtcblxuXHRcdGlmIChkZXNjLlBzdFMgIT09IHVuZGVmaW5lZCkgaW5mby5wcmludGVyTWFuYWdlc0NvbG9ycyA9IGRlc2MuUHN0Uztcblx0XHRpZiAoZGVzY1snTm0gICddICE9PSB1bmRlZmluZWQpIGluZm8ucHJpbnRlclByb2ZpbGUgPSBkZXNjWydObSAgJ107XG5cdFx0aWYgKGRlc2MuTXBCbCAhPT0gdW5kZWZpbmVkKSBpbmZvLmJsYWNrUG9pbnRDb21wZW5zYXRpb24gPSBkZXNjLk1wQmw7XG5cdFx0aWYgKGRlc2MucHJpbnRTaXh0ZWVuQml0ICE9PSB1bmRlZmluZWQpIGluZm8ucHJpbnRTaXh0ZWVuQml0ID0gZGVzYy5wcmludFNpeHRlZW5CaXQ7XG5cdFx0aWYgKGRlc2MuaGFyZFByb29mICE9PSB1bmRlZmluZWQpIGluZm8uaGFyZFByb29mID0gZGVzYy5oYXJkUHJvb2Y7XG5cdFx0aWYgKGRlc2MucHJpbnRQcm9vZlNldHVwKSB7XG5cdFx0XHRpZiAoJ0JsdG4nIGluIGRlc2MucHJpbnRQcm9vZlNldHVwKSB7XG5cdFx0XHRcdGluZm8ucHJvb2ZTZXR1cCA9IHsgYnVpbHRpbjogZGVzYy5wcmludFByb29mU2V0dXAuQmx0bi5zcGxpdCgnLicpWzFdIH07XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpbmZvLnByb29mU2V0dXAgPSB7XG5cdFx0XHRcdFx0cHJvZmlsZTogZGVzYy5wcmludFByb29mU2V0dXAucHJvZmlsZSxcblx0XHRcdFx0XHRyZW5kZXJpbmdJbnRlbnQ6IEludGUuZGVjb2RlKGRlc2MucHJpbnRQcm9vZlNldHVwLkludGUgPz8gJ0ludGUuSW1nICcpLFxuXHRcdFx0XHRcdGJsYWNrUG9pbnRDb21wZW5zYXRpb246ICEhZGVzYy5wcmludFByb29mU2V0dXAuTXBCbCxcblx0XHRcdFx0XHRwYXBlcldoaXRlOiAhIWRlc2MucHJpbnRQcm9vZlNldHVwLnBhcGVyV2hpdGUsXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHRjb25zdCBpbmZvID0gdGFyZ2V0LnByaW50SW5mb3JtYXRpb24hO1xuXHRcdGNvbnN0IGRlc2M6IFByaW50SW5mb3JtYXRpb25EZXNjcmlwdG9yID0ge307XG5cblx0XHRpZiAoaW5mby5wcmludGVyTWFuYWdlc0NvbG9ycykge1xuXHRcdFx0ZGVzYy5Qc3RTID0gdHJ1ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKGluZm8uaGFyZFByb29mICE9PSB1bmRlZmluZWQpIGRlc2MuaGFyZFByb29mID0gISFpbmZvLmhhcmRQcm9vZjtcblx0XHRcdGRlc2MuQ2xyUyA9ICdDbHJTLlJHQkMnOyAvLyBUT0RPOiA/Pz9cblx0XHRcdGRlc2NbJ05tICAnXSA9IGluZm8ucHJpbnRlclByb2ZpbGUgPz8gJ0NJRSBSR0InO1xuXHRcdH1cblxuXHRcdGRlc2MuSW50ZSA9IEludGUuZW5jb2RlKGluZm8ucmVuZGVyaW5nSW50ZW50KTtcblxuXHRcdGlmICghaW5mby5wcmludGVyTWFuYWdlc0NvbG9ycykgZGVzYy5NcEJsID0gISFpbmZvLmJsYWNrUG9pbnRDb21wZW5zYXRpb247XG5cblx0XHRkZXNjLnByaW50U2l4dGVlbkJpdCA9ICEhaW5mby5wcmludFNpeHRlZW5CaXQ7XG5cdFx0ZGVzYy5wcmludGVyTmFtZSA9IGluZm8ucHJpbnRlck5hbWUgfHwgJyc7XG5cblx0XHRpZiAoaW5mby5wcm9vZlNldHVwICYmICdwcm9maWxlJyBpbiBpbmZvLnByb29mU2V0dXApIHtcblx0XHRcdGRlc2MucHJpbnRQcm9vZlNldHVwID0ge1xuXHRcdFx0XHRwcm9maWxlOiBpbmZvLnByb29mU2V0dXAucHJvZmlsZSB8fCAnJyxcblx0XHRcdFx0SW50ZTogSW50ZS5lbmNvZGUoaW5mby5wcm9vZlNldHVwLnJlbmRlcmluZ0ludGVudCksXG5cdFx0XHRcdE1wQmw6ICEhaW5mby5wcm9vZlNldHVwLmJsYWNrUG9pbnRDb21wZW5zYXRpb24sXG5cdFx0XHRcdHBhcGVyV2hpdGU6ICEhaW5mby5wcm9vZlNldHVwLnBhcGVyV2hpdGUsXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRkZXNjLnByaW50UHJvb2ZTZXR1cCA9IHtcblx0XHRcdFx0Qmx0bjogaW5mby5wcm9vZlNldHVwPy5idWlsdGluID8gYGJ1aWx0aW5Qcm9vZi4ke2luZm8ucHJvb2ZTZXR1cC5idWlsdGlufWAgOiAnYnVpbHRpblByb29mLnByb29mQ01ZSycsXG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdHdyaXRlVmVyc2lvbkFuZERlc2NyaXB0b3Iod3JpdGVyLCAnJywgJ3ByaW50T3V0cHV0JywgZGVzYyk7XG5cdH0sXG4pO1xuXG5NT0NLX0hBTkRMRVJTICYmIGFkZEhhbmRsZXIoXG5cdDEwODMsIC8vIFByaW50IHN0eWxlXG5cdHRhcmdldCA9PiAodGFyZ2V0IGFzIGFueSkuX2lyMTA4MyAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHRMT0dfTU9DS19IQU5ETEVSUyAmJiBjb25zb2xlLmxvZygnaW1hZ2UgcmVzb3VyY2UgMTA4MycsIGxlZnQoKSk7XG5cdFx0KHRhcmdldCBhcyBhbnkpLl9pcjEwODMgPSByZWFkQnl0ZXMocmVhZGVyLCBsZWZ0KCkpO1xuXG5cdFx0Ly8gVE9ETzpcblx0XHQvLyBjb25zdCBkZXNjID0gcmVhZFZlcnNpb25BbmREZXNjcmlwdG9yKHJlYWRlcik7XG5cdFx0Ly8gY29uc29sZS5sb2coJzEwODMnLCByZXF1aXJlKCd1dGlsJykuaW5zcGVjdChkZXNjLCBmYWxzZSwgOTksIHRydWUpKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVCeXRlcyh3cml0ZXIsICh0YXJnZXQgYXMgYW55KS5faXIxMDgzKTtcblx0fSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDEwMDUsXG5cdHRhcmdldCA9PiB0YXJnZXQucmVzb2x1dGlvbkluZm8gIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0Y29uc3QgaG9yaXpvbnRhbFJlc29sdXRpb24gPSByZWFkRml4ZWRQb2ludDMyKHJlYWRlcik7XG5cdFx0Y29uc3QgaG9yaXpvbnRhbFJlc29sdXRpb25Vbml0ID0gcmVhZFVpbnQxNihyZWFkZXIpO1xuXHRcdGNvbnN0IHdpZHRoVW5pdCA9IHJlYWRVaW50MTYocmVhZGVyKTtcblx0XHRjb25zdCB2ZXJ0aWNhbFJlc29sdXRpb24gPSByZWFkRml4ZWRQb2ludDMyKHJlYWRlcik7XG5cdFx0Y29uc3QgdmVydGljYWxSZXNvbHV0aW9uVW5pdCA9IHJlYWRVaW50MTYocmVhZGVyKTtcblx0XHRjb25zdCBoZWlnaHRVbml0ID0gcmVhZFVpbnQxNihyZWFkZXIpO1xuXG5cdFx0dGFyZ2V0LnJlc29sdXRpb25JbmZvID0ge1xuXHRcdFx0aG9yaXpvbnRhbFJlc29sdXRpb24sXG5cdFx0XHRob3Jpem9udGFsUmVzb2x1dGlvblVuaXQ6IFJFU09MVVRJT05fVU5JVFNbaG9yaXpvbnRhbFJlc29sdXRpb25Vbml0XSB8fCAnUFBJJyBhcyBhbnksXG5cdFx0XHR3aWR0aFVuaXQ6IE1FQVNVUkVNRU5UX1VOSVRTW3dpZHRoVW5pdF0gfHwgJ0luY2hlcycgYXMgYW55LFxuXHRcdFx0dmVydGljYWxSZXNvbHV0aW9uLFxuXHRcdFx0dmVydGljYWxSZXNvbHV0aW9uVW5pdDogUkVTT0xVVElPTl9VTklUU1t2ZXJ0aWNhbFJlc29sdXRpb25Vbml0XSB8fCAnUFBJJyBhcyBhbnksXG5cdFx0XHRoZWlnaHRVbml0OiBNRUFTVVJFTUVOVF9VTklUU1toZWlnaHRVbml0XSB8fCAnSW5jaGVzJyBhcyBhbnksXG5cdFx0fTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0Y29uc3QgaW5mbyA9IHRhcmdldC5yZXNvbHV0aW9uSW5mbyE7XG5cblx0XHR3cml0ZUZpeGVkUG9pbnQzMih3cml0ZXIsIGluZm8uaG9yaXpvbnRhbFJlc29sdXRpb24gfHwgMCk7XG5cdFx0d3JpdGVVaW50MTYod3JpdGVyLCBNYXRoLm1heCgxLCBSRVNPTFVUSU9OX1VOSVRTLmluZGV4T2YoaW5mby5ob3Jpem9udGFsUmVzb2x1dGlvblVuaXQpKSk7XG5cdFx0d3JpdGVVaW50MTYod3JpdGVyLCBNYXRoLm1heCgxLCBNRUFTVVJFTUVOVF9VTklUUy5pbmRleE9mKGluZm8ud2lkdGhVbml0KSkpO1xuXHRcdHdyaXRlRml4ZWRQb2ludDMyKHdyaXRlciwgaW5mby52ZXJ0aWNhbFJlc29sdXRpb24gfHwgMCk7XG5cdFx0d3JpdGVVaW50MTYod3JpdGVyLCBNYXRoLm1heCgxLCBSRVNPTFVUSU9OX1VOSVRTLmluZGV4T2YoaW5mby52ZXJ0aWNhbFJlc29sdXRpb25Vbml0KSkpO1xuXHRcdHdyaXRlVWludDE2KHdyaXRlciwgTWF0aC5tYXgoMSwgTUVBU1VSRU1FTlRfVU5JVFMuaW5kZXhPZihpbmZvLmhlaWdodFVuaXQpKSk7XG5cdH0sXG4pO1xuXG5jb25zdCBwcmludFNjYWxlU3R5bGVzID0gWydjZW50ZXJlZCcsICdzaXplIHRvIGZpdCcsICd1c2VyIGRlZmluZWQnXTtcblxuYWRkSGFuZGxlcihcblx0MTA2Mixcblx0dGFyZ2V0ID0+IHRhcmdldC5wcmludFNjYWxlICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCkgPT4ge1xuXHRcdHRhcmdldC5wcmludFNjYWxlID0ge1xuXHRcdFx0c3R5bGU6IHByaW50U2NhbGVTdHlsZXNbcmVhZEludDE2KHJlYWRlcildIGFzIGFueSxcblx0XHRcdHg6IHJlYWRGbG9hdDMyKHJlYWRlciksXG5cdFx0XHR5OiByZWFkRmxvYXQzMihyZWFkZXIpLFxuXHRcdFx0c2NhbGU6IHJlYWRGbG9hdDMyKHJlYWRlciksXG5cdFx0fTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0Y29uc3QgeyBzdHlsZSwgeCwgeSwgc2NhbGUgfSA9IHRhcmdldC5wcmludFNjYWxlITtcblx0XHR3cml0ZUludDE2KHdyaXRlciwgTWF0aC5tYXgoMCwgcHJpbnRTY2FsZVN0eWxlcy5pbmRleE9mKHN0eWxlISkpKTtcblx0XHR3cml0ZUZsb2F0MzIod3JpdGVyLCB4IHx8IDApO1xuXHRcdHdyaXRlRmxvYXQzMih3cml0ZXIsIHkgfHwgMCk7XG5cdFx0d3JpdGVGbG9hdDMyKHdyaXRlciwgc2NhbGUgfHwgMCk7XG5cdH0sXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDA2LFxuXHR0YXJnZXQgPT4gdGFyZ2V0LmFscGhhQ2hhbm5lbE5hbWVzICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgbGVmdCkgPT4ge1xuXHRcdHRhcmdldC5hbHBoYUNoYW5uZWxOYW1lcyA9IFtdO1xuXG5cdFx0d2hpbGUgKGxlZnQoKSkge1xuXHRcdFx0Y29uc3QgdmFsdWUgPSByZWFkUGFzY2FsU3RyaW5nKHJlYWRlciwgMSk7XG5cdFx0XHR0YXJnZXQuYWxwaGFDaGFubmVsTmFtZXMucHVzaCh2YWx1ZSk7XG5cdFx0fVxuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHRmb3IgKGNvbnN0IG5hbWUgb2YgdGFyZ2V0LmFscGhhQ2hhbm5lbE5hbWVzISkge1xuXHRcdFx0d3JpdGVQYXNjYWxTdHJpbmcod3JpdGVyLCBuYW1lLCAxKTtcblx0XHR9XG5cdH0sXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDQ1LFxuXHR0YXJnZXQgPT4gdGFyZ2V0LmFscGhhQ2hhbm5lbE5hbWVzICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgbGVmdCkgPT4ge1xuXHRcdHRhcmdldC5hbHBoYUNoYW5uZWxOYW1lcyA9IFtdO1xuXG5cdFx0d2hpbGUgKGxlZnQoKSkge1xuXHRcdFx0dGFyZ2V0LmFscGhhQ2hhbm5lbE5hbWVzLnB1c2gocmVhZFVuaWNvZGVTdHJpbmcocmVhZGVyKSk7XG5cdFx0fVxuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHRmb3IgKGNvbnN0IG5hbWUgb2YgdGFyZ2V0LmFscGhhQ2hhbm5lbE5hbWVzISkge1xuXHRcdFx0d3JpdGVVbmljb2RlU3RyaW5nV2l0aFBhZGRpbmcod3JpdGVyLCBuYW1lKTtcblx0XHR9XG5cdH0sXG4pO1xuXG5NT0NLX0hBTkRMRVJTICYmIGFkZEhhbmRsZXIoXG5cdDEwNzcsXG5cdHRhcmdldCA9PiAodGFyZ2V0IGFzIGFueSkuX2lyMTA3NyAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHRMT0dfTU9DS19IQU5ETEVSUyAmJiBjb25zb2xlLmxvZygnaW1hZ2UgcmVzb3VyY2UgMTA3NycsIGxlZnQoKSk7XG5cdFx0KHRhcmdldCBhcyBhbnkpLl9pcjEwNzcgPSByZWFkQnl0ZXMocmVhZGVyLCBsZWZ0KCkpO1xuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHR3cml0ZUJ5dGVzKHdyaXRlciwgKHRhcmdldCBhcyBhbnkpLl9pcjEwNzcpO1xuXHR9LFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTA1Myxcblx0dGFyZ2V0ID0+IHRhcmdldC5hbHBoYUlkZW50aWZpZXJzICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgbGVmdCkgPT4ge1xuXHRcdHRhcmdldC5hbHBoYUlkZW50aWZpZXJzID0gW107XG5cblx0XHR3aGlsZSAobGVmdCgpID49IDQpIHtcblx0XHRcdHRhcmdldC5hbHBoYUlkZW50aWZpZXJzLnB1c2gocmVhZFVpbnQzMihyZWFkZXIpKTtcblx0XHR9XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdGZvciAoY29uc3QgaWQgb2YgdGFyZ2V0LmFscGhhSWRlbnRpZmllcnMhKSB7XG5cdFx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIGlkKTtcblx0XHR9XG5cdH0sXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDEwLFxuXHR0YXJnZXQgPT4gdGFyZ2V0LmJhY2tncm91bmRDb2xvciAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQpID0+IHRhcmdldC5iYWNrZ3JvdW5kQ29sb3IgPSByZWFkQ29sb3IocmVhZGVyKSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB3cml0ZUNvbG9yKHdyaXRlciwgdGFyZ2V0LmJhY2tncm91bmRDb2xvciEpLFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTAzNyxcblx0dGFyZ2V0ID0+IHRhcmdldC5nbG9iYWxBbmdsZSAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQpID0+IHRhcmdldC5nbG9iYWxBbmdsZSA9IHJlYWRVaW50MzIocmVhZGVyKSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB3cml0ZVVpbnQzMih3cml0ZXIsIHRhcmdldC5nbG9iYWxBbmdsZSEpLFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTA0OSxcblx0dGFyZ2V0ID0+IHRhcmdldC5nbG9iYWxBbHRpdHVkZSAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQpID0+IHRhcmdldC5nbG9iYWxBbHRpdHVkZSA9IHJlYWRVaW50MzIocmVhZGVyKSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB3cml0ZVVpbnQzMih3cml0ZXIsIHRhcmdldC5nbG9iYWxBbHRpdHVkZSEpLFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTAxMSxcblx0dGFyZ2V0ID0+IHRhcmdldC5wcmludEZsYWdzICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCkgPT4ge1xuXHRcdHRhcmdldC5wcmludEZsYWdzID0ge1xuXHRcdFx0bGFiZWxzOiAhIXJlYWRVaW50OChyZWFkZXIpLFxuXHRcdFx0Y3JvcE1hcmtzOiAhIXJlYWRVaW50OChyZWFkZXIpLFxuXHRcdFx0Y29sb3JCYXJzOiAhIXJlYWRVaW50OChyZWFkZXIpLFxuXHRcdFx0cmVnaXN0cmF0aW9uTWFya3M6ICEhcmVhZFVpbnQ4KHJlYWRlciksXG5cdFx0XHRuZWdhdGl2ZTogISFyZWFkVWludDgocmVhZGVyKSxcblx0XHRcdGZsaXA6ICEhcmVhZFVpbnQ4KHJlYWRlciksXG5cdFx0XHRpbnRlcnBvbGF0ZTogISFyZWFkVWludDgocmVhZGVyKSxcblx0XHRcdGNhcHRpb246ICEhcmVhZFVpbnQ4KHJlYWRlciksXG5cdFx0XHRwcmludEZsYWdzOiAhIXJlYWRVaW50OChyZWFkZXIpLFxuXHRcdH07XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdGNvbnN0IGZsYWdzID0gdGFyZ2V0LnByaW50RmxhZ3MhO1xuXHRcdHdyaXRlVWludDgod3JpdGVyLCBmbGFncy5sYWJlbHMgPyAxIDogMCk7XG5cdFx0d3JpdGVVaW50OCh3cml0ZXIsIGZsYWdzLmNyb3BNYXJrcyA/IDEgOiAwKTtcblx0XHR3cml0ZVVpbnQ4KHdyaXRlciwgZmxhZ3MuY29sb3JCYXJzID8gMSA6IDApO1xuXHRcdHdyaXRlVWludDgod3JpdGVyLCBmbGFncy5yZWdpc3RyYXRpb25NYXJrcyA/IDEgOiAwKTtcblx0XHR3cml0ZVVpbnQ4KHdyaXRlciwgZmxhZ3MubmVnYXRpdmUgPyAxIDogMCk7XG5cdFx0d3JpdGVVaW50OCh3cml0ZXIsIGZsYWdzLmZsaXAgPyAxIDogMCk7XG5cdFx0d3JpdGVVaW50OCh3cml0ZXIsIGZsYWdzLmludGVycG9sYXRlID8gMSA6IDApO1xuXHRcdHdyaXRlVWludDgod3JpdGVyLCBmbGFncy5jYXB0aW9uID8gMSA6IDApO1xuXHRcdHdyaXRlVWludDgod3JpdGVyLCBmbGFncy5wcmludEZsYWdzID8gMSA6IDApO1xuXHR9LFxuKTtcblxuTU9DS19IQU5ETEVSUyAmJiBhZGRIYW5kbGVyKFxuXHQxMDAwMCwgLy8gUHJpbnQgZmxhZ3Ncblx0dGFyZ2V0ID0+ICh0YXJnZXQgYXMgYW55KS5faXIxMDAwMCAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHRMT0dfTU9DS19IQU5ETEVSUyAmJiBjb25zb2xlLmxvZygnaW1hZ2UgcmVzb3VyY2UgMTAwMDAnLCBsZWZ0KCkpO1xuXHRcdCh0YXJnZXQgYXMgYW55KS5faXIxMDAwMCA9IHJlYWRCeXRlcyhyZWFkZXIsIGxlZnQoKSk7XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdHdyaXRlQnl0ZXMod3JpdGVyLCAodGFyZ2V0IGFzIGFueSkuX2lyMTAwMDApO1xuXHR9LFxuKTtcblxuTU9DS19IQU5ETEVSUyAmJiBhZGRIYW5kbGVyKFxuXHQxMDEzLCAvLyBDb2xvciBoYWxmdG9uaW5nXG5cdHRhcmdldCA9PiAodGFyZ2V0IGFzIGFueSkuX2lyMTAxMyAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHRMT0dfTU9DS19IQU5ETEVSUyAmJiBjb25zb2xlLmxvZygnaW1hZ2UgcmVzb3VyY2UgMTAxMycsIGxlZnQoKSk7XG5cdFx0KHRhcmdldCBhcyBhbnkpLl9pcjEwMTMgPSByZWFkQnl0ZXMocmVhZGVyLCBsZWZ0KCkpO1xuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHR3cml0ZUJ5dGVzKHdyaXRlciwgKHRhcmdldCBhcyBhbnkpLl9pcjEwMTMpO1xuXHR9LFxuKTtcblxuTU9DS19IQU5ETEVSUyAmJiBhZGRIYW5kbGVyKFxuXHQxMDE2LCAvLyBDb2xvciB0cmFuc2ZlciBmdW5jdGlvbnNcblx0dGFyZ2V0ID0+ICh0YXJnZXQgYXMgYW55KS5faXIxMDE2ICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgbGVmdCkgPT4ge1xuXHRcdExPR19NT0NLX0hBTkRMRVJTICYmIGNvbnNvbGUubG9nKCdpbWFnZSByZXNvdXJjZSAxMDE2JywgbGVmdCgpKTtcblx0XHQodGFyZ2V0IGFzIGFueSkuX2lyMTAxNiA9IHJlYWRCeXRlcyhyZWFkZXIsIGxlZnQoKSk7XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdHdyaXRlQnl0ZXMod3JpdGVyLCAodGFyZ2V0IGFzIGFueSkuX2lyMTAxNik7XG5cdH0sXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDI0LFxuXHR0YXJnZXQgPT4gdGFyZ2V0LmxheWVyU3RhdGUgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0KSA9PiB0YXJnZXQubGF5ZXJTdGF0ZSA9IHJlYWRVaW50MTYocmVhZGVyKSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB3cml0ZVVpbnQxNih3cml0ZXIsIHRhcmdldC5sYXllclN0YXRlISksXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDI2LFxuXHR0YXJnZXQgPT4gdGFyZ2V0LmxheWVyc0dyb3VwICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgbGVmdCkgPT4ge1xuXHRcdHRhcmdldC5sYXllcnNHcm91cCA9IFtdO1xuXG5cdFx0d2hpbGUgKGxlZnQoKSkge1xuXHRcdFx0dGFyZ2V0LmxheWVyc0dyb3VwLnB1c2gocmVhZFVpbnQxNihyZWFkZXIpKTtcblx0XHR9XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdGZvciAoY29uc3QgZyBvZiB0YXJnZXQubGF5ZXJzR3JvdXAhKSB7XG5cdFx0XHR3cml0ZVVpbnQxNih3cml0ZXIsIGcpO1xuXHRcdH1cblx0fSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDEwNzIsXG5cdHRhcmdldCA9PiB0YXJnZXQubGF5ZXJHcm91cHNFbmFibGVkSWQgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0LCBsZWZ0KSA9PiB7XG5cdFx0dGFyZ2V0LmxheWVyR3JvdXBzRW5hYmxlZElkID0gW107XG5cblx0XHR3aGlsZSAobGVmdCgpKSB7XG5cdFx0XHR0YXJnZXQubGF5ZXJHcm91cHNFbmFibGVkSWQucHVzaChyZWFkVWludDgocmVhZGVyKSk7XG5cdFx0fVxuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHRmb3IgKGNvbnN0IGlkIG9mIHRhcmdldC5sYXllckdyb3Vwc0VuYWJsZWRJZCEpIHtcblx0XHRcdHdyaXRlVWludDgod3JpdGVyLCBpZCk7XG5cdFx0fVxuXHR9LFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTA2OSxcblx0dGFyZ2V0ID0+IHRhcmdldC5sYXllclNlbGVjdGlvbklkcyAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQpID0+IHtcblx0XHRsZXQgY291bnQgPSByZWFkVWludDE2KHJlYWRlcik7XG5cdFx0dGFyZ2V0LmxheWVyU2VsZWN0aW9uSWRzID0gW107XG5cblx0XHR3aGlsZSAoY291bnQtLSkge1xuXHRcdFx0dGFyZ2V0LmxheWVyU2VsZWN0aW9uSWRzLnB1c2gocmVhZFVpbnQzMihyZWFkZXIpKTtcblx0XHR9XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdHdyaXRlVWludDE2KHdyaXRlciwgdGFyZ2V0LmxheWVyU2VsZWN0aW9uSWRzIS5sZW5ndGgpO1xuXG5cdFx0Zm9yIChjb25zdCBpZCBvZiB0YXJnZXQubGF5ZXJTZWxlY3Rpb25JZHMhKSB7XG5cdFx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIGlkKTtcblx0XHR9XG5cdH0sXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDMyLFxuXHR0YXJnZXQgPT4gdGFyZ2V0LmdyaWRBbmRHdWlkZXNJbmZvcm1hdGlvbiAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQpID0+IHtcblx0XHRjb25zdCB2ZXJzaW9uID0gcmVhZFVpbnQzMihyZWFkZXIpO1xuXHRcdGNvbnN0IGhvcml6b250YWwgPSByZWFkVWludDMyKHJlYWRlcik7XG5cdFx0Y29uc3QgdmVydGljYWwgPSByZWFkVWludDMyKHJlYWRlcik7XG5cdFx0Y29uc3QgY291bnQgPSByZWFkVWludDMyKHJlYWRlcik7XG5cblx0XHRpZiAodmVyc2lvbiAhPT0gMSkgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIDEwMzIgcmVzb3VyY2UgdmVyc2lvbjogJHt2ZXJzaW9ufWApO1xuXG5cdFx0dGFyZ2V0LmdyaWRBbmRHdWlkZXNJbmZvcm1hdGlvbiA9IHtcblx0XHRcdGdyaWQ6IHsgaG9yaXpvbnRhbCwgdmVydGljYWwgfSxcblx0XHRcdGd1aWRlczogW10sXG5cdFx0fTtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuXHRcdFx0dGFyZ2V0LmdyaWRBbmRHdWlkZXNJbmZvcm1hdGlvbi5ndWlkZXMhLnB1c2goe1xuXHRcdFx0XHRsb2NhdGlvbjogcmVhZFVpbnQzMihyZWFkZXIpIC8gMzIsXG5cdFx0XHRcdGRpcmVjdGlvbjogcmVhZFVpbnQ4KHJlYWRlcikgPyAnaG9yaXpvbnRhbCcgOiAndmVydGljYWwnXG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdGNvbnN0IGluZm8gPSB0YXJnZXQuZ3JpZEFuZEd1aWRlc0luZm9ybWF0aW9uITtcblx0XHRjb25zdCBncmlkID0gaW5mby5ncmlkIHx8IHsgaG9yaXpvbnRhbDogMTggKiAzMiwgdmVydGljYWw6IDE4ICogMzIgfTtcblx0XHRjb25zdCBndWlkZXMgPSBpbmZvLmd1aWRlcyB8fCBbXTtcblxuXHRcdHdyaXRlVWludDMyKHdyaXRlciwgMSk7XG5cdFx0d3JpdGVVaW50MzIod3JpdGVyLCBncmlkLmhvcml6b250YWwpO1xuXHRcdHdyaXRlVWludDMyKHdyaXRlciwgZ3JpZC52ZXJ0aWNhbCk7XG5cdFx0d3JpdGVVaW50MzIod3JpdGVyLCBndWlkZXMubGVuZ3RoKTtcblxuXHRcdGZvciAoY29uc3QgZyBvZiBndWlkZXMpIHtcblx0XHRcdHdyaXRlVWludDMyKHdyaXRlciwgZy5sb2NhdGlvbiAqIDMyKTtcblx0XHRcdHdyaXRlVWludDgod3JpdGVyLCBnLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gMSA6IDApO1xuXHRcdH1cblx0fSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDEwNTQsXG5cdHRhcmdldCA9PiB0YXJnZXQudXJsc0xpc3QgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0LCBfLCBvcHRpb25zKSA9PiB7XG5cdFx0Y29uc3QgY291bnQgPSByZWFkVWludDMyKHJlYWRlcik7XG5cblx0XHRpZiAoY291bnQpIHtcblx0XHRcdGlmICghb3B0aW9ucy50aHJvd0Zvck1pc3NpbmdGZWF0dXJlcykgcmV0dXJuO1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQ6IFVSTCBMaXN0Jyk7XG5cdFx0fVxuXG5cdFx0Ly8gVE9ETzogcmVhZCBhY3R1YWwgVVJMIGxpc3Rcblx0XHR0YXJnZXQudXJsc0xpc3QgPSBbXTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVVaW50MzIod3JpdGVyLCB0YXJnZXQudXJsc0xpc3QhLmxlbmd0aCk7XG5cblx0XHQvLyBUT0RPOiB3cml0ZSBhY3R1YWwgVVJMIGxpc3Rcblx0XHRpZiAodGFyZ2V0LnVybHNMaXN0IS5sZW5ndGgpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkOiBVUkwgTGlzdCcpO1xuXHRcdH1cblx0fSxcbik7XG5cbk1PQ0tfSEFORExFUlMgJiYgYWRkSGFuZGxlcihcblx0MTA1MCwgLy8gU2xpY2VzXG5cdHRhcmdldCA9PiAodGFyZ2V0IGFzIGFueSkuX2lyMTA1MCAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHRMT0dfTU9DS19IQU5ETEVSUyAmJiBjb25zb2xlLmxvZygnaW1hZ2UgcmVzb3VyY2UgMTA1MCcsIGxlZnQoKSk7XG5cdFx0KHRhcmdldCBhcyBhbnkpLl9pcjEwNTAgPSByZWFkQnl0ZXMocmVhZGVyLCBsZWZ0KCkpO1xuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHR3cml0ZUJ5dGVzKHdyaXRlciwgKHRhcmdldCBhcyBhbnkpLl9pcjEwNTApO1xuXHR9LFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTA2NCxcblx0dGFyZ2V0ID0+IHRhcmdldC5waXhlbEFzcGVjdFJhdGlvICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCkgPT4ge1xuXHRcdGlmIChyZWFkVWludDMyKHJlYWRlcikgPiAyKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGl4ZWxBc3BlY3RSYXRpbyB2ZXJzaW9uJyk7XG5cdFx0dGFyZ2V0LnBpeGVsQXNwZWN0UmF0aW8gPSB7IGFzcGVjdDogcmVhZEZsb2F0NjQocmVhZGVyKSB9O1xuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIDIpOyAvLyB2ZXJzaW9uXG5cdFx0d3JpdGVGbG9hdDY0KHdyaXRlciwgdGFyZ2V0LnBpeGVsQXNwZWN0UmF0aW8hLmFzcGVjdCk7XG5cdH0sXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDQxLFxuXHR0YXJnZXQgPT4gdGFyZ2V0LmljY1VudGFnZ2VkUHJvZmlsZSAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQpID0+IHtcblx0XHR0YXJnZXQuaWNjVW50YWdnZWRQcm9maWxlID0gISFyZWFkVWludDgocmVhZGVyKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVVaW50OCh3cml0ZXIsIHRhcmdldC5pY2NVbnRhZ2dlZFByb2ZpbGUgPyAxIDogMCk7XG5cdH0sXG4pO1xuXG5NT0NLX0hBTkRMRVJTICYmIGFkZEhhbmRsZXIoXG5cdDEwMzksIC8vIElDQyBQcm9maWxlXG5cdHRhcmdldCA9PiAodGFyZ2V0IGFzIGFueSkuX2lyMTAzOSAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHRMT0dfTU9DS19IQU5ETEVSUyAmJiBjb25zb2xlLmxvZygnaW1hZ2UgcmVzb3VyY2UgMTAzOScsIGxlZnQoKSk7XG5cdFx0KHRhcmdldCBhcyBhbnkpLl9pcjEwMzkgPSByZWFkQnl0ZXMocmVhZGVyLCBsZWZ0KCkpO1xuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHR3cml0ZUJ5dGVzKHdyaXRlciwgKHRhcmdldCBhcyBhbnkpLl9pcjEwMzkpO1xuXHR9LFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTA0NCxcblx0dGFyZ2V0ID0+IHRhcmdldC5pZHNTZWVkTnVtYmVyICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCkgPT4gdGFyZ2V0Lmlkc1NlZWROdW1iZXIgPSByZWFkVWludDMyKHJlYWRlciksXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4gd3JpdGVVaW50MzIod3JpdGVyLCB0YXJnZXQuaWRzU2VlZE51bWJlciEpLFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTAzNixcblx0dGFyZ2V0ID0+IHRhcmdldC50aHVtYm5haWwgIT09IHVuZGVmaW5lZCB8fCB0YXJnZXQudGh1bWJuYWlsUmF3ICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgbGVmdCwgb3B0aW9ucykgPT4ge1xuXHRcdGNvbnN0IGZvcm1hdCA9IHJlYWRVaW50MzIocmVhZGVyKTsgLy8gMSA9IGtKcGVnUkdCLCAwID0ga1Jhd1JHQlxuXHRcdGNvbnN0IHdpZHRoID0gcmVhZFVpbnQzMihyZWFkZXIpO1xuXHRcdGNvbnN0IGhlaWdodCA9IHJlYWRVaW50MzIocmVhZGVyKTtcblx0XHRyZWFkVWludDMyKHJlYWRlcik7IC8vIHdpZHRoQnl0ZXMgPSAod2lkdGggKiBiaXRzX3Blcl9waXhlbCArIDMxKSAvIDMyICogNC5cblx0XHRyZWFkVWludDMyKHJlYWRlcik7IC8vIHRvdGFsU2l6ZSA9IHdpZHRoQnl0ZXMgKiBoZWlnaHQgKiBwbGFuZXNcblx0XHRyZWFkVWludDMyKHJlYWRlcik7IC8vIHNpemVBZnRlckNvbXByZXNzaW9uXG5cdFx0Y29uc3QgYml0c1BlclBpeGVsID0gcmVhZFVpbnQxNihyZWFkZXIpOyAvLyAyNFxuXHRcdGNvbnN0IHBsYW5lcyA9IHJlYWRVaW50MTYocmVhZGVyKTsgLy8gMVxuXG5cdFx0aWYgKGZvcm1hdCAhPT0gMSB8fCBiaXRzUGVyUGl4ZWwgIT09IDI0IHx8IHBsYW5lcyAhPT0gMSkge1xuXHRcdFx0b3B0aW9ucy5sb2dNaXNzaW5nRmVhdHVyZXMgJiYgY29uc29sZS5sb2coYEludmFsaWQgdGh1bWJuYWlsIGRhdGEgKGZvcm1hdDogJHtmb3JtYXR9LCBiaXRzUGVyUGl4ZWw6ICR7Yml0c1BlclBpeGVsfSwgcGxhbmVzOiAke3BsYW5lc30pYCk7XG5cdFx0XHRza2lwQnl0ZXMocmVhZGVyLCBsZWZ0KCkpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IHNpemUgPSBsZWZ0KCk7XG5cdFx0Y29uc3QgZGF0YSA9IHJlYWRCeXRlcyhyZWFkZXIsIHNpemUpO1xuXG5cdFx0aWYgKG9wdGlvbnMudXNlUmF3VGh1bWJuYWlsKSB7XG5cdFx0XHR0YXJnZXQudGh1bWJuYWlsUmF3ID0geyB3aWR0aCwgaGVpZ2h0LCBkYXRhIH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRhcmdldC50aHVtYm5haWwgPSBjcmVhdGVDYW52YXNGcm9tRGF0YShkYXRhKTtcblx0XHR9XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdGxldCB3aWR0aCA9IDA7XG5cdFx0bGV0IGhlaWdodCA9IDA7XG5cdFx0bGV0IGRhdGE6IFVpbnQ4QXJyYXk7XG5cblx0XHRpZiAodGFyZ2V0LnRodW1ibmFpbFJhdykge1xuXHRcdFx0d2lkdGggPSB0YXJnZXQudGh1bWJuYWlsUmF3LndpZHRoO1xuXHRcdFx0aGVpZ2h0ID0gdGFyZ2V0LnRodW1ibmFpbFJhdy5oZWlnaHQ7XG5cdFx0XHRkYXRhID0gdGFyZ2V0LnRodW1ibmFpbFJhdy5kYXRhO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR3aWR0aCA9IHRhcmdldC50aHVtYm5haWwhLndpZHRoO1xuXHRcdFx0aGVpZ2h0ID0gdGFyZ2V0LnRodW1ibmFpbCEuaGVpZ2h0O1xuXHRcdFx0ZGF0YSA9IHRvQnl0ZUFycmF5KHRhcmdldC50aHVtYm5haWwhLnRvRGF0YVVSTCgnaW1hZ2UvanBlZycsIDEpLnN1YnN0cignZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwnLmxlbmd0aCkpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGJpdHNQZXJQaXhlbCA9IDI0O1xuXHRcdGNvbnN0IHdpZHRoQnl0ZXMgPSBNYXRoLmZsb29yKCh3aWR0aCAqIGJpdHNQZXJQaXhlbCArIDMxKSAvIDMyKSAqIDQ7XG5cdFx0Y29uc3QgcGxhbmVzID0gMTtcblx0XHRjb25zdCB0b3RhbFNpemUgPSB3aWR0aEJ5dGVzICogaGVpZ2h0ICogcGxhbmVzO1xuXHRcdGNvbnN0IHNpemVBZnRlckNvbXByZXNzaW9uID0gZGF0YS5sZW5ndGg7XG5cblx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIDEpOyAvLyAxID0ga0pwZWdSR0Jcblx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIHdpZHRoKTtcblx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIGhlaWdodCk7XG5cdFx0d3JpdGVVaW50MzIod3JpdGVyLCB3aWR0aEJ5dGVzKTtcblx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIHRvdGFsU2l6ZSk7XG5cdFx0d3JpdGVVaW50MzIod3JpdGVyLCBzaXplQWZ0ZXJDb21wcmVzc2lvbik7XG5cdFx0d3JpdGVVaW50MTYod3JpdGVyLCBiaXRzUGVyUGl4ZWwpO1xuXHRcdHdyaXRlVWludDE2KHdyaXRlciwgcGxhbmVzKTtcblx0XHR3cml0ZUJ5dGVzKHdyaXRlciwgZGF0YSk7XG5cdH0sXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDU3LFxuXHR0YXJnZXQgPT4gdGFyZ2V0LnZlcnNpb25JbmZvICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgbGVmdCkgPT4ge1xuXHRcdGNvbnN0IHZlcnNpb24gPSByZWFkVWludDMyKHJlYWRlcik7XG5cdFx0aWYgKHZlcnNpb24gIT09IDEpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2ZXJzaW9uSW5mbyB2ZXJzaW9uJyk7XG5cblx0XHR0YXJnZXQudmVyc2lvbkluZm8gPSB7XG5cdFx0XHRoYXNSZWFsTWVyZ2VkRGF0YTogISFyZWFkVWludDgocmVhZGVyKSxcblx0XHRcdHdyaXRlck5hbWU6IHJlYWRVbmljb2RlU3RyaW5nKHJlYWRlciksXG5cdFx0XHRyZWFkZXJOYW1lOiByZWFkVW5pY29kZVN0cmluZyhyZWFkZXIpLFxuXHRcdFx0ZmlsZVZlcnNpb246IHJlYWRVaW50MzIocmVhZGVyKSxcblx0XHR9O1xuXG5cdFx0c2tpcEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0Y29uc3QgdmVyc2lvbkluZm8gPSB0YXJnZXQudmVyc2lvbkluZm8hO1xuXHRcdHdyaXRlVWludDMyKHdyaXRlciwgMSk7IC8vIHZlcnNpb25cblx0XHR3cml0ZVVpbnQ4KHdyaXRlciwgdmVyc2lvbkluZm8uaGFzUmVhbE1lcmdlZERhdGEgPyAxIDogMCk7XG5cdFx0d3JpdGVVbmljb2RlU3RyaW5nKHdyaXRlciwgdmVyc2lvbkluZm8ud3JpdGVyTmFtZSk7XG5cdFx0d3JpdGVVbmljb2RlU3RyaW5nKHdyaXRlciwgdmVyc2lvbkluZm8ucmVhZGVyTmFtZSk7XG5cdFx0d3JpdGVVaW50MzIod3JpdGVyLCB2ZXJzaW9uSW5mby5maWxlVmVyc2lvbik7XG5cdH0sXG4pO1xuXG5NT0NLX0hBTkRMRVJTICYmIGFkZEhhbmRsZXIoXG5cdDEwNTgsIC8vIEVYSUYgZGF0YSAxLlxuXHR0YXJnZXQgPT4gKHRhcmdldCBhcyBhbnkpLl9pcjEwNTggIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0LCBsZWZ0KSA9PiB7XG5cdFx0TE9HX01PQ0tfSEFORExFUlMgJiYgY29uc29sZS5sb2coJ2ltYWdlIHJlc291cmNlIDEwNTgnLCBsZWZ0KCkpO1xuXHRcdCh0YXJnZXQgYXMgYW55KS5faXIxMDU4ID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVCeXRlcyh3cml0ZXIsICh0YXJnZXQgYXMgYW55KS5faXIxMDU4KTtcblx0fSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDcwMDAsXG5cdHRhcmdldCA9PiB0YXJnZXQuaW1hZ2VSZWFkeVZhcmlhYmxlcyAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHR0YXJnZXQuaW1hZ2VSZWFkeVZhcmlhYmxlcyA9IHJlYWRVdGY4U3RyaW5nKHJlYWRlciwgbGVmdCgpKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVVdGY4U3RyaW5nKHdyaXRlciwgdGFyZ2V0LmltYWdlUmVhZHlWYXJpYWJsZXMhKTtcblx0fSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDcwMDEsXG5cdHRhcmdldCA9PiB0YXJnZXQuaW1hZ2VSZWFkeURhdGFTZXRzICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgbGVmdCkgPT4ge1xuXHRcdHRhcmdldC5pbWFnZVJlYWR5RGF0YVNldHMgPSByZWFkVXRmOFN0cmluZyhyZWFkZXIsIGxlZnQoKSk7XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdHdyaXRlVXRmOFN0cmluZyh3cml0ZXIsIHRhcmdldC5pbWFnZVJlYWR5RGF0YVNldHMhKTtcblx0fSxcbik7XG5cbmludGVyZmFjZSBEZXNjcmlwdG9yMTA4OCB7XG5cdCdudWxsJzogc3RyaW5nW107XG59XG5cbmFkZEhhbmRsZXIoXG5cdDEwODgsXG5cdHRhcmdldCA9PiB0YXJnZXQucGF0aFNlbGVjdGlvblN0YXRlICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgX2xlZnQpID0+IHtcblx0XHRjb25zdCBkZXNjOiBEZXNjcmlwdG9yMTA4OCA9IHJlYWRWZXJzaW9uQW5kRGVzY3JpcHRvcihyZWFkZXIpO1xuXHRcdC8vIGNvbnNvbGUubG9nKHJlcXVpcmUoJ3V0aWwnKS5pbnNwZWN0KGRlc2MsIGZhbHNlLCA5OSwgdHJ1ZSkpO1xuXHRcdHRhcmdldC5wYXRoU2VsZWN0aW9uU3RhdGUgPSBkZXNjWydudWxsJ107XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdGNvbnN0IGRlc2M6IERlc2NyaXB0b3IxMDg4ID0geyAnbnVsbCc6IHRhcmdldC5wYXRoU2VsZWN0aW9uU3RhdGUhIH07XG5cdFx0d3JpdGVWZXJzaW9uQW5kRGVzY3JpcHRvcih3cml0ZXIsICcnLCAnbnVsbCcsIGRlc2MpO1xuXHR9LFxuKTtcblxuTU9DS19IQU5ETEVSUyAmJiBhZGRIYW5kbGVyKFxuXHQxMDI1LFxuXHR0YXJnZXQgPT4gKHRhcmdldCBhcyBhbnkpLl9pcjEwMjUgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0LCBsZWZ0KSA9PiB7XG5cdFx0TE9HX01PQ0tfSEFORExFUlMgJiYgY29uc29sZS5sb2coJ2ltYWdlIHJlc291cmNlIDEwMjUnLCBsZWZ0KCkpO1xuXHRcdCh0YXJnZXQgYXMgYW55KS5faXIxMDI1ID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVCeXRlcyh3cml0ZXIsICh0YXJnZXQgYXMgYW55KS5faXIxMDI1KTtcblx0fSxcbik7XG5cbmNvbnN0IEZybUQgPSBjcmVhdGVFbnVtPCdhdXRvJyB8ICdub25lJyB8ICdkaXNwb3NlJz4oJ0ZybUQnLCAnJywge1xuXHRhdXRvOiAnQXV0bycsXG5cdG5vbmU6ICdOb25lJyxcblx0ZGlzcG9zZTogJ0Rpc3AnLFxufSk7XG5cbmludGVyZmFjZSBBbmltYXRpb25EZXNjcmlwdG9yIHtcblx0QUZTdDogbnVtYmVyO1xuXHRGckluOiB7XG5cdFx0RnJJRDogbnVtYmVyO1xuXHRcdEZyRGw6IG51bWJlcjtcblx0XHRGckRzOiBzdHJpbmc7XG5cdFx0RnJHQT86IG51bWJlcjtcblx0fVtdO1xuXHRGU3RzOiB7XG5cdFx0RnNJRDogbnVtYmVyO1xuXHRcdEFGcm06IG51bWJlcjtcblx0XHRGc0ZyOiBudW1iZXJbXTtcblx0XHRMQ250OiBudW1iZXI7XG5cdH1bXTtcbn1cblxuaW50ZXJmYWNlIEFuaW1hdGlvbnMge1xuXHRmcmFtZXM6IHtcblx0XHRpZDogbnVtYmVyO1xuXHRcdGRlbGF5OiBudW1iZXI7XG5cdFx0ZGlzcG9zZT86ICdhdXRvJyB8ICdub25lJyB8ICdkaXNwb3NlJztcblx0fVtdO1xuXHRhbmltYXRpb25zOiB7XG5cdFx0aWQ6IG51bWJlcjtcblx0XHRmcmFtZXM6IG51bWJlcltdO1xuXHRcdHJlcGVhdHM/OiBudW1iZXI7XG5cdH1bXTtcbn1cblxuLy8gVE9ETzogVW5maW5pc2hlZFxuTU9DS19IQU5ETEVSUyAmJiBhZGRIYW5kbGVyKFxuXHQ0MDAwLCAvLyBQbHVnLUluIHJlc291cmNlKHMpXG5cdHRhcmdldCA9PiAodGFyZ2V0IGFzIGFueSkuX2lyNDAwMCAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQsIHsgbG9nTWlzc2luZ0ZlYXR1cmVzLCBsb2dEZXZGZWF0dXJlcyB9KSA9PiB7XG5cdFx0aWYgKE1PQ0tfSEFORExFUlMpIHtcblx0XHRcdExPR19NT0NLX0hBTkRMRVJTICYmIGNvbnNvbGUubG9nKCdpbWFnZSByZXNvdXJjZSA0MDAwJywgbGVmdCgpKTtcblx0XHRcdCh0YXJnZXQgYXMgYW55KS5faXI0MDAwID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBrZXkgPSByZWFkU2lnbmF0dXJlKHJlYWRlcik7XG5cblx0XHRpZiAoa2V5ID09PSAnbWFuaScpIHtcblx0XHRcdGNoZWNrU2lnbmF0dXJlKHJlYWRlciwgJ0lSRlInKTtcblx0XHRcdHJlYWRTZWN0aW9uKHJlYWRlciwgMSwgbGVmdCA9PiB7XG5cdFx0XHRcdHdoaWxlIChsZWZ0KCkpIHtcblx0XHRcdFx0XHRjaGVja1NpZ25hdHVyZShyZWFkZXIsICc4QklNJyk7XG5cdFx0XHRcdFx0Y29uc3Qga2V5ID0gcmVhZFNpZ25hdHVyZShyZWFkZXIpO1xuXG5cdFx0XHRcdFx0cmVhZFNlY3Rpb24ocmVhZGVyLCAxLCBsZWZ0ID0+IHtcblx0XHRcdFx0XHRcdGlmIChrZXkgPT09ICdBbkRzJykge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBkZXNjID0gcmVhZFZlcnNpb25BbmREZXNjcmlwdG9yKHJlYWRlcikgYXMgQW5pbWF0aW9uRGVzY3JpcHRvcjtcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ0FuRHMnLCBkZXNjKTtcblx0XHRcdFx0XHRcdFx0bG9nRGV2RmVhdHVyZXMgJiYgY29uc29sZS5sb2coJyM0MDAwIEFuRHMnLCBkZXNjKTtcblx0XHRcdFx0XHRcdFx0Ly8gbG9nRGV2RmVhdHVyZXMgJiYgY29uc29sZS5sb2coJyM0MDAwIEFuRHMnLCByZXF1aXJlKCd1dGlsJykuaW5zcGVjdChkZXNjLCBmYWxzZSwgOTksIHRydWUpKTtcblxuXHRcdFx0XHRcdFx0XHRjb25zdCByZXN1bHQ6IEFuaW1hdGlvbnMgPSB7XG5cdFx0XHRcdFx0XHRcdFx0Ly8gZGVzYy5BRlN0ID8/P1xuXHRcdFx0XHRcdFx0XHRcdGZyYW1lczogZGVzYy5GckluLm1hcCh4ID0+ICh7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZDogeC5GcklELFxuXHRcdFx0XHRcdFx0XHRcdFx0ZGVsYXk6IHguRnJEbCAvIDEwMCxcblx0XHRcdFx0XHRcdFx0XHRcdGRpc3Bvc2U6IHguRnJEcyA/IEZybUQuZGVjb2RlKHguRnJEcykgOiAnYXV0bycsIC8vIG1pc3NpbmcgPT0gYXV0b1xuXHRcdFx0XHRcdFx0XHRcdFx0Ly8geC5GckdBID8/P1xuXHRcdFx0XHRcdFx0XHRcdH0pKSxcblx0XHRcdFx0XHRcdFx0XHRhbmltYXRpb25zOiBkZXNjLkZTdHMubWFwKHggPT4gKHtcblx0XHRcdFx0XHRcdFx0XHRcdGlkOiB4LkZzSUQsXG5cdFx0XHRcdFx0XHRcdFx0XHRmcmFtZXM6IHguRnNGcixcblx0XHRcdFx0XHRcdFx0XHRcdHJlcGVhdHM6IHguTENudCxcblx0XHRcdFx0XHRcdFx0XHRcdC8vIHguQUZybSA/Pz9cblx0XHRcdFx0XHRcdFx0XHR9KSksXG5cdFx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdFx0bG9nRGV2RmVhdHVyZXMgJiYgY29uc29sZS5sb2coJyM0MDAwIEFuRHM6cmVzdWx0JywgcmVzdWx0KTtcblx0XHRcdFx0XHRcdFx0Ly8gbG9nRGV2RmVhdHVyZXMgJiYgY29uc29sZS5sb2coJyM0MDAwIEFuRHM6cmVzdWx0JywgcmVxdWlyZSgndXRpbCcpLmluc3BlY3QocmVzdWx0LCBmYWxzZSwgOTksIHRydWUpKTtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoa2V5ID09PSAnUm9sbCcpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgYnl0ZXMgPSByZWFkQnl0ZXMocmVhZGVyLCBsZWZ0KCkpO1xuXHRcdFx0XHRcdFx0XHRsb2dEZXZGZWF0dXJlcyAmJiBjb25zb2xlLmxvZygnIzQwMDAgUm9sbCcsIGJ5dGVzKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGxvZ01pc3NpbmdGZWF0dXJlcyAmJiBjb25zb2xlLmxvZygnVW5oYW5kbGVkIHN1YnNlY3Rpb24gaW4gIzQwMDAnLCBrZXkpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9IGVsc2UgaWYgKGtleSA9PT0gJ21vcHQnKSB7XG5cdFx0XHRjb25zdCBieXRlcyA9IHJlYWRCeXRlcyhyZWFkZXIsIGxlZnQoKSk7XG5cdFx0XHRsb2dEZXZGZWF0dXJlcyAmJiBjb25zb2xlLmxvZygnIzQwMDAgbW9wdCcsIGJ5dGVzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bG9nTWlzc2luZ0ZlYXR1cmVzICYmIGNvbnNvbGUubG9nKCdVbmhhbmRsZWQga2V5IGluICM0MDAwOicsIGtleSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHR3cml0ZUJ5dGVzKHdyaXRlciwgKHRhcmdldCBhcyBhbnkpLl9pcjQwMDApO1xuXHR9LFxuKTtcblxuLy8gVE9ETzogVW5maW5pc2hlZFxuTU9DS19IQU5ETEVSUyAmJiBhZGRIYW5kbGVyKFxuXHQ0MDAxLCAvLyBQbHVnLUluIHJlc291cmNlKHMpXG5cdHRhcmdldCA9PiAodGFyZ2V0IGFzIGFueSkuX2lyNDAwMSAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQsIHsgbG9nTWlzc2luZ0ZlYXR1cmVzLCBsb2dEZXZGZWF0dXJlcyB9KSA9PiB7XG5cdFx0aWYgKE1PQ0tfSEFORExFUlMpIHtcblx0XHRcdExPR19NT0NLX0hBTkRMRVJTICYmIGNvbnNvbGUubG9nKCdpbWFnZSByZXNvdXJjZSA0MDAxJywgbGVmdCgpKTtcblx0XHRcdCh0YXJnZXQgYXMgYW55KS5faXI0MDAxID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBrZXkgPSByZWFkU2lnbmF0dXJlKHJlYWRlcik7XG5cblx0XHRpZiAoa2V5ID09PSAnbWZyaScpIHtcblx0XHRcdGNvbnN0IHZlcnNpb24gPSByZWFkVWludDMyKHJlYWRlcik7XG5cdFx0XHRpZiAodmVyc2lvbiAhPT0gMikgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1mcmkgdmVyc2lvbicpO1xuXG5cdFx0XHRjb25zdCBsZW5ndGggPSByZWFkVWludDMyKHJlYWRlcik7XG5cdFx0XHRjb25zdCBieXRlcyA9IHJlYWRCeXRlcyhyZWFkZXIsIGxlbmd0aCk7XG5cdFx0XHRsb2dEZXZGZWF0dXJlcyAmJiBjb25zb2xlLmxvZygnbWZyaScsIGJ5dGVzKTtcblx0XHR9IGVsc2UgaWYgKGtleSA9PT0gJ21zZXQnKSB7XG5cdFx0XHRjb25zdCBkZXNjID0gcmVhZFZlcnNpb25BbmREZXNjcmlwdG9yKHJlYWRlcik7XG5cdFx0XHRsb2dEZXZGZWF0dXJlcyAmJiBjb25zb2xlLmxvZygnbXNldCcsIGRlc2MpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRsb2dNaXNzaW5nRmVhdHVyZXMgJiYgY29uc29sZS5sb2coJ1VuaGFuZGxlZCBrZXkgaW4gIzQwMDEnLCBrZXkpO1xuXHRcdH1cblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVCeXRlcyh3cml0ZXIsICh0YXJnZXQgYXMgYW55KS5faXI0MDAxKTtcblx0fSxcbik7XG4iXSwic291cmNlUm9vdCI6IkQ6XFxQcm9qZWN0c1xcZ2l0aHViXFxhZy1wc2RcXHNyYyJ9
|
|
583
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltYWdlUmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEMsT0FBTyxFQUNLLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFDOUYsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQzdGLFdBQVcsRUFBRSxTQUFTLEVBQ3RCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDSyxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQ3BHLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLDZCQUE2QixFQUFFLFVBQVUsR0FDbEcsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDcEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBU25GLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFzQixFQUFFLENBQUM7QUFDdEQsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQXVDLEVBQUUsQ0FBQztBQUUxRSxTQUFTLFVBQVUsQ0FDbEIsR0FBVyxFQUNYLEdBQXdDLEVBQ3hDLElBQW1HLEVBQ25HLEtBQTBEO0lBRTFELElBQU0sT0FBTyxHQUFvQixFQUFFLEdBQUcsS0FBQSxFQUFFLEdBQUcsS0FBQSxFQUFFLElBQUksTUFBQSxFQUFFLEtBQUssT0FBQSxFQUFFLENBQUM7SUFDM0QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUM7QUFDNUMsQ0FBQztBQUVELElBQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBQ2hDLElBQU0sZ0JBQWdCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3BELElBQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzdGLElBQU0sR0FBRyxHQUFHLGtCQUFrQixDQUFDO0FBRS9CLFNBQVMsWUFBWSxDQUFDLElBQVk7SUFDakMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzNDLENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxLQUFhLEVBQUUsS0FBYTtJQUMzQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRyxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsTUFBaUIsRUFBRSxNQUFjO0lBQ3hELElBQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLE1BQWlCLEVBQUUsS0FBYTtJQUN4RCxJQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBRUQsYUFBYSxJQUFJLFVBQVUsQ0FDMUIsSUFBSSxFQUFFLGtCQUFrQjtBQUN4QixVQURNLGtCQUFrQjtBQUN4QixNQUFNLElBQUksT0FBQyxNQUFjLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBckMsQ0FBcUMsRUFDL0MsVUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUk7SUFDcEIsaUJBQWlCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELE1BQWMsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELENBQUMsRUFDRCxVQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsVUFBVSxDQUFDLE1BQU0sRUFBRyxNQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUNELENBQUM7QUFFRixVQUFVLENBQ1QsSUFBSSxFQUNKLFVBQUEsTUFBTSxJQUFJLE9BQUEsTUFBTSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQWxDLENBQWtDLEVBQzVDLFVBQUMsTUFBTSxFQUFFLE1BQU07SUFDZCxJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFFdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM1QixJQUFNLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsYUFBYSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEMsYUFBYSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7S0FDakM7SUFFRCxNQUFNLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztBQUN0QyxDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6RDtBQUNGLENBQUMsQ0FDRCxDQUFDO0FBRUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFoQyxDQUFnQyxFQUMxQyxVQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFLLE9BQUEsTUFBTSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQW5ELENBQW1ELEVBQzdFLFVBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSyxPQUFBLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVksQ0FBQyxFQUE1QyxDQUE0QyxDQUNoRSxDQUFDO0FBRUYsSUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFrQixNQUFNLEVBQUUsWUFBWSxFQUFFO0lBQzlELFlBQVksRUFBRSxNQUFNO0lBQ3BCLFlBQVksRUFBRSxNQUFNO0lBQ3BCLHVCQUF1QixFQUFFLE1BQU07SUFDL0IsdUJBQXVCLEVBQUUsTUFBTTtDQUMvQixDQUFDLENBQUM7QUFxQkgsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLEVBQXJDLENBQXFDLEVBQy9DLFVBQUMsTUFBTSxFQUFFLE1BQU07O0lBQ2QsSUFBTSxJQUFJLEdBQStCLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTFFLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRztRQUN6QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFO1FBQ25DLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQUEsSUFBSSxDQUFDLElBQUksbUNBQUksV0FBVyxDQUFDO0tBQ3RELENBQUM7SUFFRixJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7SUFFckMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7UUFBRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxTQUFTO1FBQUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7UUFBRSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyRSxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssU0FBUztRQUFFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNwRixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUztRQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNsRSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7UUFDekIsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3ZFO2FBQU07WUFDTixJQUFJLENBQUMsVUFBVSxHQUFHO2dCQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPO2dCQUNyQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxtQ0FBSSxXQUFXLENBQUM7Z0JBQ3RFLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUk7Z0JBQ25ELFVBQVUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVO2FBQzdDLENBQUM7U0FDRjtLQUNEO0FBQ0YsQ0FBQyxFQUNELFVBQUMsTUFBTSxFQUFFLE1BQU07O0lBQ2QsSUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLGdCQUFpQixDQUFDO0lBQ3RDLElBQU0sSUFBSSxHQUErQixFQUFFLENBQUM7SUFFNUMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7S0FDakI7U0FBTTtRQUNOLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNwRSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDLFlBQVk7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQUEsSUFBSSxDQUFDLGNBQWMsbUNBQUksU0FBUyxDQUFDO0tBQ2hEO0lBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUU5QyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQjtRQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUUxRSxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFFMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ3BELElBQUksQ0FBQyxlQUFlLEdBQUc7WUFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLEVBQUU7WUFDdEMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7WUFDbEQsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQjtZQUM5QyxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVTtTQUN4QyxDQUFDO0tBQ0Y7U0FBTTtRQUNOLElBQUksQ0FBQyxlQUFlLEdBQUc7WUFDdEIsSUFBSSxFQUFFLENBQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDLGtCQUFnQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQVMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCO1NBQ3JHLENBQUM7S0FDRjtJQUVELHlCQUF5QixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzVELENBQUMsQ0FDRCxDQUFDO0FBRUYsYUFBYSxJQUFJLFVBQVUsQ0FDMUIsSUFBSSxFQUFFLGNBQWM7QUFDcEIsVUFETSxjQUFjO0FBQ3BCLE1BQU0sSUFBSSxPQUFDLE1BQWMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFyQyxDQUFxQyxFQUMvQyxVQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSTtJQUNwQixpQkFBaUIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0QsTUFBYyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFcEQsUUFBUTtJQUNSLGlEQUFpRDtJQUNqRCx1RUFBdUU7QUFDeEUsQ0FBQyxFQUNELFVBQUMsTUFBTSxFQUFFLE1BQU07SUFDZCxVQUFVLENBQUMsTUFBTSxFQUFHLE1BQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQ0QsQ0FBQztBQUVGLFVBQVUsQ0FDVCxJQUFJLEVBQ0osVUFBQSxNQUFNLElBQUksT0FBQSxNQUFNLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBbkMsQ0FBbUMsRUFDN0MsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLElBQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsSUFBTSx3QkFBd0IsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsSUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLElBQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsSUFBTSxzQkFBc0IsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsSUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXRDLE1BQU0sQ0FBQyxjQUFjLEdBQUc7UUFDdkIsb0JBQW9CLHNCQUFBO1FBQ3BCLHdCQUF3QixFQUFFLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLElBQUksS0FBWTtRQUNwRixTQUFTLEVBQUUsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksUUFBZTtRQUMxRCxrQkFBa0Isb0JBQUE7UUFDbEIsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxLQUFZO1FBQ2hGLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxRQUFlO0tBQzVELENBQUM7QUFDSCxDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLElBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxjQUFlLENBQUM7SUFFcEMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRCxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hELFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RixXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlFLENBQUMsQ0FDRCxDQUFDO0FBRUYsSUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFFckUsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUEvQixDQUErQixFQUN6QyxVQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsTUFBTSxDQUFDLFVBQVUsR0FBRztRQUNuQixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFRO1FBQ2pELENBQUMsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQ3RCLENBQUMsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQ3RCLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDO0tBQzFCLENBQUM7QUFDSCxDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNSLElBQUEsS0FBeUIsTUFBTSxDQUFDLFVBQVcsRUFBekMsS0FBSyxXQUFBLEVBQUUsQ0FBQyxPQUFBLEVBQUUsQ0FBQyxPQUFBLEVBQUUsS0FBSyxXQUF1QixDQUFDO0lBQ2xELFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRSxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3QixZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3QixZQUFZLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQ0QsQ0FBQztBQUVGLFVBQVUsQ0FDVCxJQUFJLEVBQ0osVUFBQSxNQUFNLElBQUksT0FBQSxNQUFNLENBQUMsaUJBQWlCLEtBQUssU0FBUyxFQUF0QyxDQUFzQyxFQUNoRCxVQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSTtJQUNwQixNQUFNLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBRTlCLE9BQU8sSUFBSSxFQUFFLEVBQUU7UUFDZCxJQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNyQztBQUNGLENBQUMsRUFDRCxVQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsS0FBbUIsVUFBeUIsRUFBekIsS0FBQSxNQUFNLENBQUMsaUJBQWtCLEVBQXpCLGNBQXlCLEVBQXpCLElBQXlCLEVBQUU7UUFBekMsSUFBTSxNQUFJLFNBQUE7UUFDZCxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsTUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ25DO0FBQ0YsQ0FBQyxDQUNELENBQUM7QUFFRixVQUFVLENBQ1QsSUFBSSxFQUNKLFVBQUEsTUFBTSxJQUFJLE9BQUEsTUFBTSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBdEMsQ0FBc0MsRUFDaEQsVUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUk7SUFDcEIsTUFBTSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUU5QixPQUFPLElBQUksRUFBRSxFQUFFO1FBQ2QsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0tBQ3pEO0FBQ0YsQ0FBQyxFQUNELFVBQUMsTUFBTSxFQUFFLE1BQU07SUFDZCxLQUFtQixVQUF5QixFQUF6QixLQUFBLE1BQU0sQ0FBQyxpQkFBa0IsRUFBekIsY0FBeUIsRUFBekIsSUFBeUIsRUFBRTtRQUF6QyxJQUFNLE1BQUksU0FBQTtRQUNkLDZCQUE2QixDQUFDLE1BQU0sRUFBRSxNQUFJLENBQUMsQ0FBQztLQUM1QztBQUNGLENBQUMsQ0FDRCxDQUFDO0FBRUYsYUFBYSxJQUFJLFVBQVUsQ0FDMUIsSUFBSSxFQUNKLFVBQUEsTUFBTSxJQUFJLE9BQUMsTUFBYyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQXJDLENBQXFDLEVBQy9DLFVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJO0lBQ3BCLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRCxNQUFjLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNyRCxDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLFVBQVUsQ0FBQyxNQUFNLEVBQUcsTUFBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FDRCxDQUFDO0FBRUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLEVBQXJDLENBQXFDLEVBQy9DLFVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJO0lBQ3BCLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFFN0IsT0FBTyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7UUFDbkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUNqRDtBQUNGLENBQUMsRUFDRCxVQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsS0FBaUIsVUFBd0IsRUFBeEIsS0FBQSxNQUFNLENBQUMsZ0JBQWlCLEVBQXhCLGNBQXdCLEVBQXhCLElBQXdCLEVBQUU7UUFBdEMsSUFBTSxFQUFFLFNBQUE7UUFDWixXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0YsQ0FBQyxDQUNELENBQUM7QUFFRixVQUFVLENBQ1QsSUFBSSxFQUNKLFVBQUEsTUFBTSxJQUFJLE9BQUEsTUFBTSxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQXBDLENBQW9DLEVBQzlDLFVBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSyxPQUFBLE1BQU0sQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUExQyxDQUEwQyxFQUM5RCxVQUFDLE1BQU0sRUFBRSxNQUFNLElBQUssT0FBQSxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxlQUFnQixDQUFDLEVBQTNDLENBQTJDLENBQy9ELENBQUM7QUFFRixVQUFVLENBQ1QsSUFBSSxFQUNKLFVBQUEsTUFBTSxJQUFJLE9BQUEsTUFBTSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQWhDLENBQWdDLEVBQzFDLFVBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSyxPQUFBLE1BQU0sQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUF2QyxDQUF1QyxFQUMzRCxVQUFDLE1BQU0sRUFBRSxNQUFNLElBQUssT0FBQSxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFZLENBQUMsRUFBeEMsQ0FBd0MsQ0FDNUQsQ0FBQztBQUVGLFVBQVUsQ0FDVCxJQUFJLEVBQ0osVUFBQSxNQUFNLElBQUksT0FBQSxNQUFNLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBbkMsQ0FBbUMsRUFDN0MsVUFBQyxNQUFNLEVBQUUsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQTFDLENBQTBDLEVBQzlELFVBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSyxPQUFBLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGNBQWUsQ0FBQyxFQUEzQyxDQUEyQyxDQUMvRCxDQUFDO0FBRUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUEvQixDQUErQixFQUN6QyxVQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsTUFBTSxDQUFDLFVBQVUsR0FBRztRQUNuQixNQUFNLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDM0IsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQzlCLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUM5QixpQkFBaUIsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUN0QyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ3pCLFdBQVcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUNoQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDNUIsVUFBVSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO0tBQy9CLENBQUM7QUFDSCxDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLElBQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFXLENBQUM7SUFDakMsVUFBVSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QyxVQUFVLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsVUFBVSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QyxVQUFVLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDLENBQ0QsQ0FBQztBQUVGLGFBQWEsSUFBSSxVQUFVLENBQzFCLEtBQUssRUFBRSxjQUFjO0FBQ3JCLFVBRE8sY0FBYztBQUNyQixNQUFNLElBQUksT0FBQyxNQUFjLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBdEMsQ0FBc0MsRUFDaEQsVUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUk7SUFDcEIsaUJBQWlCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLE1BQWMsQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ3RELENBQUMsRUFDRCxVQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsVUFBVSxDQUFDLE1BQU0sRUFBRyxNQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUNELENBQUM7QUFFRixhQUFhLElBQUksVUFBVSxDQUMxQixJQUFJLEVBQUUsbUJBQW1CO0FBQ3pCLFVBRE0sbUJBQW1CO0FBQ3pCLE1BQU0sSUFBSSxPQUFDLE1BQWMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFyQyxDQUFxQyxFQUMvQyxVQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSTtJQUNwQixpQkFBaUIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0QsTUFBYyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDckQsQ0FBQyxFQUNELFVBQUMsTUFBTSxFQUFFLE1BQU07SUFDZCxVQUFVLENBQUMsTUFBTSxFQUFHLE1BQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQ0QsQ0FBQztBQUVGLGFBQWEsSUFBSSxVQUFVLENBQzFCLElBQUksRUFBRSwyQkFBMkI7QUFDakMsVUFETSwyQkFBMkI7QUFDakMsTUFBTSxJQUFJLE9BQUMsTUFBYyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQXJDLENBQXFDLEVBQy9DLFVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJO0lBQ3BCLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRCxNQUFjLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNyRCxDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLFVBQVUsQ0FBQyxNQUFNLEVBQUcsTUFBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FDRCxDQUFDO0FBRUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUEvQixDQUErQixFQUN6QyxVQUFDLE1BQU0sRUFBRSxNQUFNLElBQUssT0FBQSxNQUFNLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBdEMsQ0FBc0MsRUFDMUQsVUFBQyxNQUFNLEVBQUUsTUFBTSxJQUFLLE9BQUEsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsVUFBVyxDQUFDLEVBQXZDLENBQXVDLENBQzNELENBQUM7QUFFRixVQUFVLENBQ1QsSUFBSSxFQUNKLFVBQUEsTUFBTSxJQUFJLE9BQUEsTUFBTSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQWhDLENBQWdDLEVBQzFDLFVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJO0lBQ3BCLE1BQU0sQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBRXhCLE9BQU8sSUFBSSxFQUFFLEVBQUU7UUFDZCxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUM1QztBQUNGLENBQUMsRUFDRCxVQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsS0FBZ0IsVUFBbUIsRUFBbkIsS0FBQSxNQUFNLENBQUMsV0FBWSxFQUFuQixjQUFtQixFQUFuQixJQUFtQixFQUFFO1FBQWhDLElBQU0sQ0FBQyxTQUFBO1FBQ1gsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztLQUN2QjtBQUNGLENBQUMsQ0FDRCxDQUFDO0FBRUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxvQkFBb0IsS0FBSyxTQUFTLEVBQXpDLENBQXlDLEVBQ25ELFVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJO0lBQ3BCLE1BQU0sQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7SUFFakMsT0FBTyxJQUFJLEVBQUUsRUFBRTtRQUNkLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7S0FDcEQ7QUFDRixDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLEtBQWlCLFVBQTRCLEVBQTVCLEtBQUEsTUFBTSxDQUFDLG9CQUFxQixFQUE1QixjQUE0QixFQUE1QixJQUE0QixFQUFFO1FBQTFDLElBQU0sRUFBRSxTQUFBO1FBQ1osVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztLQUN2QjtBQUNGLENBQUMsQ0FDRCxDQUFDO0FBRUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxpQkFBaUIsS0FBSyxTQUFTLEVBQXRDLENBQXNDLEVBQ2hELFVBQUMsTUFBTSxFQUFFLE1BQU07SUFDZCxJQUFJLEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsTUFBTSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUU5QixPQUFPLEtBQUssRUFBRSxFQUFFO1FBQ2YsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUNsRDtBQUNGLENBQUMsRUFDRCxVQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsaUJBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdEQsS0FBaUIsVUFBeUIsRUFBekIsS0FBQSxNQUFNLENBQUMsaUJBQWtCLEVBQXpCLGNBQXlCLEVBQXpCLElBQXlCLEVBQUU7UUFBdkMsSUFBTSxFQUFFLFNBQUE7UUFDWixXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0YsQ0FBQyxDQUNELENBQUM7QUFFRixVQUFVLENBQ1QsSUFBSSxFQUNKLFVBQUEsTUFBTSxJQUFJLE9BQUEsTUFBTSxDQUFDLHdCQUF3QixLQUFLLFNBQVMsRUFBN0MsQ0FBNkMsRUFDdkQsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLElBQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxJQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsSUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLElBQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVqQyxJQUFJLE9BQU8sS0FBSyxDQUFDO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBa0MsT0FBUyxDQUFDLENBQUM7SUFFaEYsTUFBTSxDQUFDLHdCQUF3QixHQUFHO1FBQ2pDLElBQUksRUFBRSxFQUFFLFVBQVUsWUFBQSxFQUFFLFFBQVEsVUFBQSxFQUFFO1FBQzlCLE1BQU0sRUFBRSxFQUFFO0tBQ1YsQ0FBQztJQUVGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDL0IsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU8sQ0FBQyxJQUFJLENBQUM7WUFDNUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ2pDLFNBQVMsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVTtTQUN4RCxDQUFDLENBQUM7S0FDSDtBQUNGLENBQUMsRUFDRCxVQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsSUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF5QixDQUFDO0lBQzlDLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQ3JFLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBRWpDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkIsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkMsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbkMsS0FBZ0IsVUFBTSxFQUFOLGlCQUFNLEVBQU4sb0JBQU0sRUFBTixJQUFNLEVBQUU7UUFBbkIsSUFBTSxDQUFDLGVBQUE7UUFDWCxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDckMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6RDtBQUNGLENBQUMsQ0FDRCxDQUFDO0FBRUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUE3QixDQUE2QixFQUN2QyxVQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE9BQU87SUFDMUIsSUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRWpDLElBQUksS0FBSyxFQUFFO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUI7WUFBRSxPQUFPO1FBQzdDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztLQUM3QztJQUVELDZCQUE2QjtJQUM3QixNQUFNLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztBQUN0QixDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU3Qyw4QkFBOEI7SUFDOUIsSUFBSSxNQUFNLENBQUMsUUFBUyxDQUFDLE1BQU0sRUFBRTtRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7S0FDN0M7QUFDRixDQUFDLENBQ0QsQ0FBQztBQUVGLGFBQWEsSUFBSSxVQUFVLENBQzFCLElBQUksRUFBRSxTQUFTO0FBQ2YsVUFETSxTQUFTO0FBQ2YsTUFBTSxJQUFJLE9BQUMsTUFBYyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQXJDLENBQXFDLEVBQy9DLFVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJO0lBQ3BCLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRCxNQUFjLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNyRCxDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLFVBQVUsQ0FBQyxNQUFNLEVBQUcsTUFBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FDRCxDQUFDO0FBRUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLEVBQXJDLENBQXFDLEVBQy9DLFVBQUMsTUFBTSxFQUFFLE1BQU07SUFDZCxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ2hGLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztBQUMzRCxDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVO0lBQ2xDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGdCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZELENBQUMsQ0FDRCxDQUFDO0FBRUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLEVBQXZDLENBQXVDLEVBQ2pELFVBQUMsTUFBTSxFQUFFLE1BQU07SUFDZCxNQUFNLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNqRCxDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELENBQUMsQ0FDRCxDQUFDO0FBRUYsYUFBYSxJQUFJLFVBQVUsQ0FDMUIsSUFBSSxFQUFFLGNBQWM7QUFDcEIsVUFETSxjQUFjO0FBQ3BCLE1BQU0sSUFBSSxPQUFDLE1BQWMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFyQyxDQUFxQyxFQUMvQyxVQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSTtJQUNwQixpQkFBaUIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0QsTUFBYyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDckQsQ0FBQyxFQUNELFVBQUMsTUFBTSxFQUFFLE1BQU07SUFDZCxVQUFVLENBQUMsTUFBTSxFQUFHLE1BQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQ0QsQ0FBQztBQUVGLFVBQVUsQ0FDVCxJQUFJLEVBQ0osVUFBQSxNQUFNLElBQUksT0FBQSxNQUFNLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBbEMsQ0FBa0MsRUFDNUMsVUFBQyxNQUFNLEVBQUUsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQXpDLENBQXlDLEVBQzdELFVBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSyxPQUFBLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGFBQWMsQ0FBQyxFQUExQyxDQUEwQyxDQUM5RCxDQUFDO0FBRUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFuRSxDQUFtRSxFQUM3RSxVQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU87SUFDN0IsSUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsNEJBQTRCO0lBQy9ELElBQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxJQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsdURBQXVEO0lBQzNFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDJDQUEyQztJQUMvRCxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyx1QkFBdUI7SUFDM0MsSUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSztJQUM5QyxJQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBRXZDLElBQUksTUFBTSxLQUFLLENBQUMsSUFBSSxZQUFZLEtBQUssRUFBRSxJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDeEQsT0FBTyxDQUFDLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQW1DLE1BQU0sd0JBQW1CLFlBQVksa0JBQWEsTUFBTSxNQUFHLENBQUMsQ0FBQztRQUMxSSxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUIsT0FBTztLQUNQO0lBRUQsSUFBTSxJQUFJLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDcEIsSUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVyQyxJQUFJLE9BQU8sQ0FBQyxlQUFlLEVBQUU7UUFDNUIsTUFBTSxDQUFDLFlBQVksR0FBRyxFQUFFLEtBQUssT0FBQSxFQUFFLE1BQU0sUUFBQSxFQUFFLElBQUksTUFBQSxFQUFFLENBQUM7S0FDOUM7U0FBTTtRQUNOLE1BQU0sQ0FBQyxTQUFTLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUM7QUFDRixDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNmLElBQUksSUFBZ0IsQ0FBQztJQUVyQixJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUU7UUFDeEIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ2xDLE1BQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUNwQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7S0FDaEM7U0FBTTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM1RCxLQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDL0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0tBQ3pHO0lBRUQsSUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsWUFBWSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwRSxJQUFNLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakIsSUFBTSxTQUFTLEdBQUcsVUFBVSxHQUFHLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDL0MsSUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBRXpDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlO0lBQ3ZDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0IsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1QixXQUFXLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0IsV0FBVyxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQzFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDbEMsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1QixVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FDRCxDQUFDO0FBRUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFoQyxDQUFnQyxFQUMxQyxVQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSTtJQUNwQixJQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsSUFBSSxPQUFPLEtBQUssQ0FBQztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUVsRSxNQUFNLENBQUMsV0FBVyxHQUFHO1FBQ3BCLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ3RDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7UUFDckMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUNyQyxXQUFXLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQztLQUMvQixDQUFDO0lBRUYsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzNCLENBQUMsRUFDRCxVQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsSUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVksQ0FBQztJQUN4QyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVTtJQUNsQyxVQUFVLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRCxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELGtCQUFrQixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkQsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUNELENBQUM7QUFFRixhQUFhLElBQUksVUFBVSxDQUMxQixJQUFJLEVBQUUsZUFBZTtBQUNyQixVQURNLGVBQWU7QUFDckIsTUFBTSxJQUFJLE9BQUMsTUFBYyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQXJDLENBQXFDLEVBQy9DLFVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJO0lBQ3BCLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRCxNQUFjLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNyRCxDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLFVBQVUsQ0FBQyxNQUFNLEVBQUcsTUFBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FDRCxDQUFDO0FBRUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxtQkFBbUIsS0FBSyxTQUFTLEVBQXhDLENBQXdDLEVBQ2xELFVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJO0lBQ3BCLE1BQU0sQ0FBQyxtQkFBbUIsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDN0QsQ0FBQyxFQUNELFVBQUMsTUFBTSxFQUFFLE1BQU07SUFDZCxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxtQkFBb0IsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FDRCxDQUFDO0FBRUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLEVBQXZDLENBQXVDLEVBQ2pELFVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJO0lBQ3BCLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDNUQsQ0FBQyxFQUNELFVBQUMsTUFBTSxFQUFFLE1BQU07SUFDZCxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxrQkFBbUIsQ0FBQyxDQUFDO0FBQ3JELENBQUMsQ0FDRCxDQUFDO0FBTUYsVUFBVSxDQUNULElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLEVBQXZDLENBQXVDLEVBQ2pELFVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLO0lBQ3JCLElBQU0sSUFBSSxHQUFtQix3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RCwrREFBK0Q7SUFDL0QsTUFBTSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMxQyxDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLElBQU0sSUFBSSxHQUFtQixFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsa0JBQW1CLEVBQUUsQ0FBQztJQUNwRSx5QkFBeUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQ0QsQ0FBQztBQUVGLGFBQWEsSUFBSSxVQUFVLENBQzFCLElBQUksRUFDSixVQUFBLE1BQU0sSUFBSSxPQUFDLE1BQWMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFyQyxDQUFxQyxFQUMvQyxVQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSTtJQUNwQixpQkFBaUIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0QsTUFBYyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDckQsQ0FBQyxFQUNELFVBQUMsTUFBTSxFQUFFLE1BQU07SUFDZCxVQUFVLENBQUMsTUFBTSxFQUFHLE1BQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQ0QsQ0FBQztBQUVGLElBQU0sSUFBSSxHQUFHLFVBQVUsQ0FBOEIsTUFBTSxFQUFFLEVBQUUsRUFBRTtJQUNoRSxJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLE1BQU07Q0FDZixDQUFDLENBQUM7QUErQkgsbUJBQW1CO0FBQ25CLGFBQWEsSUFBSSxVQUFVLENBQzFCLElBQUksRUFBRSxzQkFBc0I7QUFDNUIsVUFETSxzQkFBc0I7QUFDNUIsTUFBTSxJQUFJLE9BQUMsTUFBYyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQXJDLENBQXFDLEVBQy9DLFVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBc0M7UUFBcEMsa0JBQWtCLHdCQUFBLEVBQUUsY0FBYyxvQkFBQTtJQUMxRCxJQUFJLGFBQWEsRUFBRTtRQUNsQixpQkFBaUIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBYyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEQsT0FBTztLQUNQO0lBRUQsSUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRWxDLElBQUksR0FBRyxLQUFLLE1BQU0sRUFBRTtRQUNuQixjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFVBQUEsSUFBSTs7Z0JBRXpCLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQy9CLElBQU0sS0FBRyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFbEMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsVUFBQSxJQUFJO29CQUMxQixJQUFJLEtBQUcsS0FBSyxNQUFNLEVBQUU7d0JBQ25CLElBQU0sSUFBSSxHQUFHLHdCQUF3QixDQUFDLE1BQU0sQ0FBd0IsQ0FBQzt3QkFDckUsNkJBQTZCO3dCQUM3QixjQUFjLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBQ2xELCtGQUErRjt3QkFFL0YsSUFBTSxNQUFNLEdBQWU7NEJBQzFCLGdCQUFnQjs0QkFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQztnQ0FDM0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJO2dDQUNWLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUc7Z0NBQ25CLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLGtCQUFrQjtnQ0FDbEUsYUFBYTs2QkFDYixDQUFDLEVBTHlCLENBS3pCLENBQUM7NEJBQ0gsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQztnQ0FDL0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJO2dDQUNWLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSTtnQ0FDZCxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUk7Z0NBQ2YsYUFBYTs2QkFDYixDQUFDLEVBTDZCLENBSzdCLENBQUM7eUJBQ0gsQ0FBQzt3QkFFRixjQUFjLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsQ0FBQzt3QkFDM0Qsd0dBQXdHO3FCQUN4Rzt5QkFBTSxJQUFJLEtBQUcsS0FBSyxNQUFNLEVBQUU7d0JBQzFCLElBQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFDeEMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO3FCQUNuRDt5QkFBTTt3QkFDTixrQkFBa0IsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixFQUFFLEtBQUcsQ0FBQyxDQUFDO3FCQUN4RTtnQkFDRixDQUFDLENBQUMsQ0FBQzs7WUFuQ0osT0FBTyxJQUFJLEVBQUU7O2FBb0NaO1FBQ0YsQ0FBQyxDQUFDLENBQUM7S0FDSDtTQUFNLElBQUksR0FBRyxLQUFLLE1BQU0sRUFBRTtRQUMxQixJQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDeEMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ25EO1NBQU07UUFDTixrQkFBa0IsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLE9BQU87S0FDUDtBQUNGLENBQUMsRUFDRCxVQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsVUFBVSxDQUFDLE1BQU0sRUFBRyxNQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUNELENBQUM7QUFFRixtQkFBbUI7QUFDbkIsYUFBYSxJQUFJLFVBQVUsQ0FDMUIsSUFBSSxFQUFFLHNCQUFzQjtBQUM1QixVQURNLHNCQUFzQjtBQUM1QixNQUFNLElBQUksT0FBQyxNQUFjLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBckMsQ0FBcUMsRUFDL0MsVUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFzQztRQUFwQyxrQkFBa0Isd0JBQUEsRUFBRSxjQUFjLG9CQUFBO0lBQzFELElBQUksYUFBYSxFQUFFO1FBQ2xCLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvRCxNQUFjLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRCxPQUFPO0tBQ1A7SUFFRCxJQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbEMsSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFO1FBQ25CLElBQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLE9BQU8sS0FBSyxDQUFDO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRTNELElBQU0sUUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxJQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQU0sQ0FBQyxDQUFDO1FBQ3hDLGNBQWMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztLQUM3QztTQUFNLElBQUksR0FBRyxLQUFLLE1BQU0sRUFBRTtRQUMxQixJQUFNLElBQUksR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxjQUFjLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDNUM7U0FBTTtRQUNOLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDakU7QUFDRixDQUFDLEVBQ0QsVUFBQyxNQUFNLEVBQUUsTUFBTTtJQUNkLFVBQVUsQ0FBQyxNQUFNLEVBQUcsTUFBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FDRCxDQUFDIiwiZmlsZSI6ImltYWdlUmVzb3VyY2VzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdG9CeXRlQXJyYXkgfSBmcm9tICdiYXNlNjQtanMnO1xuaW1wb3J0IHsgSW1hZ2VSZXNvdXJjZXMsIFJlYWRPcHRpb25zLCBSZW5kZXJpbmdJbnRlbnQgfSBmcm9tICcuL3BzZCc7XG5pbXBvcnQge1xuXHRQc2RSZWFkZXIsIHJlYWRQYXNjYWxTdHJpbmcsIHJlYWRVbmljb2RlU3RyaW5nLCByZWFkVWludDMyLCByZWFkVWludDE2LCByZWFkVWludDgsIHJlYWRGbG9hdDY0LFxuXHRyZWFkQnl0ZXMsIHNraXBCeXRlcywgcmVhZEZsb2F0MzIsIHJlYWRJbnQxNiwgcmVhZEZpeGVkUG9pbnQzMiwgcmVhZFNpZ25hdHVyZSwgY2hlY2tTaWduYXR1cmUsXG5cdHJlYWRTZWN0aW9uLCByZWFkQ29sb3Jcbn0gZnJvbSAnLi9wc2RSZWFkZXInO1xuaW1wb3J0IHtcblx0UHNkV3JpdGVyLCB3cml0ZVBhc2NhbFN0cmluZywgd3JpdGVVbmljb2RlU3RyaW5nLCB3cml0ZVVpbnQzMiwgd3JpdGVVaW50OCwgd3JpdGVGbG9hdDY0LCB3cml0ZVVpbnQxNixcblx0d3JpdGVCeXRlcywgd3JpdGVJbnQxNiwgd3JpdGVGbG9hdDMyLCB3cml0ZUZpeGVkUG9pbnQzMiwgd3JpdGVVbmljb2RlU3RyaW5nV2l0aFBhZGRpbmcsIHdyaXRlQ29sb3IsXG59IGZyb20gJy4vcHNkV3JpdGVyJztcbmltcG9ydCB7IGNyZWF0ZUNhbnZhc0Zyb21EYXRhLCBjcmVhdGVFbnVtLCBNT0NLX0hBTkRMRVJTIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IGRlY29kZVN0cmluZywgZW5jb2RlU3RyaW5nIH0gZnJvbSAnLi91dGY4JztcbmltcG9ydCB7IHJlYWRWZXJzaW9uQW5kRGVzY3JpcHRvciwgd3JpdGVWZXJzaW9uQW5kRGVzY3JpcHRvciB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VIYW5kbGVyIHtcblx0a2V5OiBudW1iZXI7XG5cdGhhczogKHRhcmdldDogSW1hZ2VSZXNvdXJjZXMpID0+IGJvb2xlYW47XG5cdHJlYWQ6IChyZWFkZXI6IFBzZFJlYWRlciwgdGFyZ2V0OiBJbWFnZVJlc291cmNlcywgbGVmdDogKCkgPT4gbnVtYmVyLCBvcHRpb25zOiBSZWFkT3B0aW9ucykgPT4gdm9pZDtcblx0d3JpdGU6ICh3cml0ZXI6IFBzZFdyaXRlciwgdGFyZ2V0OiBJbWFnZVJlc291cmNlcykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IHJlc291cmNlSGFuZGxlcnM6IFJlc291cmNlSGFuZGxlcltdID0gW107XG5leHBvcnQgY29uc3QgcmVzb3VyY2VIYW5kbGVyc01hcDogeyBba2V5OiBudW1iZXJdOiBSZXNvdXJjZUhhbmRsZXIgfSA9IHt9O1xuXG5mdW5jdGlvbiBhZGRIYW5kbGVyKFxuXHRrZXk6IG51bWJlcixcblx0aGFzOiAodGFyZ2V0OiBJbWFnZVJlc291cmNlcykgPT4gYm9vbGVhbixcblx0cmVhZDogKHJlYWRlcjogUHNkUmVhZGVyLCB0YXJnZXQ6IEltYWdlUmVzb3VyY2VzLCBsZWZ0OiAoKSA9PiBudW1iZXIsIG9wdGlvbnM6IFJlYWRPcHRpb25zKSA9PiB2b2lkLFxuXHR3cml0ZTogKHdyaXRlcjogUHNkV3JpdGVyLCB0YXJnZXQ6IEltYWdlUmVzb3VyY2VzKSA9PiB2b2lkLFxuKSB7XG5cdGNvbnN0IGhhbmRsZXI6IFJlc291cmNlSGFuZGxlciA9IHsga2V5LCBoYXMsIHJlYWQsIHdyaXRlIH07XG5cdHJlc291cmNlSGFuZGxlcnMucHVzaChoYW5kbGVyKTtcblx0cmVzb3VyY2VIYW5kbGVyc01hcFtoYW5kbGVyLmtleV0gPSBoYW5kbGVyO1xufVxuXG5jb25zdCBMT0dfTU9DS19IQU5ETEVSUyA9IGZhbHNlO1xuY29uc3QgUkVTT0xVVElPTl9VTklUUyA9IFt1bmRlZmluZWQsICdQUEknLCAnUFBDTSddO1xuY29uc3QgTUVBU1VSRU1FTlRfVU5JVFMgPSBbdW5kZWZpbmVkLCAnSW5jaGVzJywgJ0NlbnRpbWV0ZXJzJywgJ1BvaW50cycsICdQaWNhcycsICdDb2x1bW5zJ107XG5jb25zdCBoZXggPSAnMDEyMzQ1Njc4OWFiY2RlZic7XG5cbmZ1bmN0aW9uIGNoYXJUb05pYmJsZShjb2RlOiBudW1iZXIpIHtcblx0cmV0dXJuIGNvZGUgPD0gNTcgPyBjb2RlIC0gNDggOiBjb2RlIC0gODc7XG59XG5cbmZ1bmN0aW9uIGJ5dGVBdCh2YWx1ZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XG5cdHJldHVybiAoY2hhclRvTmliYmxlKHZhbHVlLmNoYXJDb2RlQXQoaW5kZXgpKSA8PCA0KSB8IGNoYXJUb05pYmJsZSh2YWx1ZS5jaGFyQ29kZUF0KGluZGV4ICsgMSkpO1xufVxuXG5mdW5jdGlvbiByZWFkVXRmOFN0cmluZyhyZWFkZXI6IFBzZFJlYWRlciwgbGVuZ3RoOiBudW1iZXIpIHtcblx0Y29uc3QgYnVmZmVyID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVuZ3RoKTtcblx0cmV0dXJuIGRlY29kZVN0cmluZyhidWZmZXIpO1xufVxuXG5mdW5jdGlvbiB3cml0ZVV0ZjhTdHJpbmcod3JpdGVyOiBQc2RXcml0ZXIsIHZhbHVlOiBzdHJpbmcpIHtcblx0Y29uc3QgYnVmZmVyID0gZW5jb2RlU3RyaW5nKHZhbHVlKTtcblx0d3JpdGVCeXRlcyh3cml0ZXIsIGJ1ZmZlcik7XG59XG5cbk1PQ0tfSEFORExFUlMgJiYgYWRkSGFuZGxlcihcblx0MTAyOCwgLy8gSVBUQy1OQUEgcmVjb3JkXG5cdHRhcmdldCA9PiAodGFyZ2V0IGFzIGFueSkuX2lyMTAyOCAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHRMT0dfTU9DS19IQU5ETEVSUyAmJiBjb25zb2xlLmxvZygnaW1hZ2UgcmVzb3VyY2UgMTAyOCcsIGxlZnQoKSk7XG5cdFx0KHRhcmdldCBhcyBhbnkpLl9pcjEwMjggPSByZWFkQnl0ZXMocmVhZGVyLCBsZWZ0KCkpO1xuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHR3cml0ZUJ5dGVzKHdyaXRlciwgKHRhcmdldCBhcyBhbnkpLl9pcjEwMjgpO1xuXHR9LFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTA2MSxcblx0dGFyZ2V0ID0+IHRhcmdldC5jYXB0aW9uRGlnZXN0ICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCkgPT4ge1xuXHRcdGxldCBjYXB0aW9uRGlnZXN0ID0gJyc7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IDE2OyBpKyspIHtcblx0XHRcdGNvbnN0IGJ5dGUgPSByZWFkVWludDgocmVhZGVyKTtcblx0XHRcdGNhcHRpb25EaWdlc3QgKz0gaGV4W2J5dGUgPj4gNF07XG5cdFx0XHRjYXB0aW9uRGlnZXN0ICs9IGhleFtieXRlICYgMHhmXTtcblx0XHR9XG5cblx0XHR0YXJnZXQuY2FwdGlvbkRpZ2VzdCA9IGNhcHRpb25EaWdlc3Q7XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgMTY7IGkrKykge1xuXHRcdFx0d3JpdGVVaW50OCh3cml0ZXIsIGJ5dGVBdCh0YXJnZXQuY2FwdGlvbkRpZ2VzdCEsIGkgKiAyKSk7XG5cdFx0fVxuXHR9LFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTA2MCxcblx0dGFyZ2V0ID0+IHRhcmdldC54bXBNZXRhZGF0YSAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHRhcmdldC54bXBNZXRhZGF0YSA9IHJlYWRVdGY4U3RyaW5nKHJlYWRlciwgbGVmdCgpKSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB3cml0ZVV0ZjhTdHJpbmcod3JpdGVyLCB0YXJnZXQueG1wTWV0YWRhdGEhKSxcbik7XG5cbmNvbnN0IEludGUgPSBjcmVhdGVFbnVtPFJlbmRlcmluZ0ludGVudD4oJ0ludGUnLCAncGVyY2VwdHVhbCcsIHtcblx0J3BlcmNlcHR1YWwnOiAnSW1nICcsXG5cdCdzYXR1cmF0aW9uJzogJ0dycCAnLFxuXHQncmVsYXRpdmUgY29sb3JpbWV0cmljJzogJ0Nscm0nLFxuXHQnYWJzb2x1dGUgY29sb3JpbWV0cmljJzogJ0FDbHInLFxufSk7XG5cbmludGVyZmFjZSBQcmludEluZm9ybWF0aW9uRGVzY3JpcHRvciB7XG5cdCdObSAgJz86IHN0cmluZztcblx0Q2xyUz86IHN0cmluZztcblx0UHN0Uz86IGJvb2xlYW47XG5cdE1wQmw/OiBib29sZWFuO1xuXHRJbnRlPzogc3RyaW5nO1xuXHRoYXJkUHJvb2Y/OiBib29sZWFuO1xuXHRwcmludFNpeHRlZW5CaXQ/OiBib29sZWFuO1xuXHRwcmludGVyTmFtZT86IHN0cmluZztcblx0cHJpbnRQcm9vZlNldHVwPzoge1xuXHRcdEJsdG46IHN0cmluZztcblx0fSB8IHtcblx0XHRwcm9maWxlOiBzdHJpbmc7XG5cdFx0SW50ZTogc3RyaW5nO1xuXHRcdE1wQmw6IGJvb2xlYW47XG5cdFx0cGFwZXJXaGl0ZTogYm9vbGVhbjtcblx0fTtcbn1cblxuYWRkSGFuZGxlcihcblx0MTA4Mixcblx0dGFyZ2V0ID0+IHRhcmdldC5wcmludEluZm9ybWF0aW9uICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCkgPT4ge1xuXHRcdGNvbnN0IGRlc2M6IFByaW50SW5mb3JtYXRpb25EZXNjcmlwdG9yID0gcmVhZFZlcnNpb25BbmREZXNjcmlwdG9yKHJlYWRlcik7XG5cblx0XHR0YXJnZXQucHJpbnRJbmZvcm1hdGlvbiA9IHtcblx0XHRcdHByaW50ZXJOYW1lOiBkZXNjLnByaW50ZXJOYW1lIHx8ICcnLFxuXHRcdFx0cmVuZGVyaW5nSW50ZW50OiBJbnRlLmRlY29kZShkZXNjLkludGUgPz8gJ0ludGUuSW1nICcpLFxuXHRcdH07XG5cblx0XHRjb25zdCBpbmZvID0gdGFyZ2V0LnByaW50SW5mb3JtYXRpb247XG5cblx0XHRpZiAoZGVzYy5Qc3RTICE9PSB1bmRlZmluZWQpIGluZm8ucHJpbnRlck1hbmFnZXNDb2xvcnMgPSBkZXNjLlBzdFM7XG5cdFx0aWYgKGRlc2NbJ05tICAnXSAhPT0gdW5kZWZpbmVkKSBpbmZvLnByaW50ZXJQcm9maWxlID0gZGVzY1snTm0gICddO1xuXHRcdGlmIChkZXNjLk1wQmwgIT09IHVuZGVmaW5lZCkgaW5mby5ibGFja1BvaW50Q29tcGVuc2F0aW9uID0gZGVzYy5NcEJsO1xuXHRcdGlmIChkZXNjLnByaW50U2l4dGVlbkJpdCAhPT0gdW5kZWZpbmVkKSBpbmZvLnByaW50U2l4dGVlbkJpdCA9IGRlc2MucHJpbnRTaXh0ZWVuQml0O1xuXHRcdGlmIChkZXNjLmhhcmRQcm9vZiAhPT0gdW5kZWZpbmVkKSBpbmZvLmhhcmRQcm9vZiA9IGRlc2MuaGFyZFByb29mO1xuXHRcdGlmIChkZXNjLnByaW50UHJvb2ZTZXR1cCkge1xuXHRcdFx0aWYgKCdCbHRuJyBpbiBkZXNjLnByaW50UHJvb2ZTZXR1cCkge1xuXHRcdFx0XHRpbmZvLnByb29mU2V0dXAgPSB7IGJ1aWx0aW46IGRlc2MucHJpbnRQcm9vZlNldHVwLkJsdG4uc3BsaXQoJy4nKVsxXSB9O1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aW5mby5wcm9vZlNldHVwID0ge1xuXHRcdFx0XHRcdHByb2ZpbGU6IGRlc2MucHJpbnRQcm9vZlNldHVwLnByb2ZpbGUsXG5cdFx0XHRcdFx0cmVuZGVyaW5nSW50ZW50OiBJbnRlLmRlY29kZShkZXNjLnByaW50UHJvb2ZTZXR1cC5JbnRlID8/ICdJbnRlLkltZyAnKSxcblx0XHRcdFx0XHRibGFja1BvaW50Q29tcGVuc2F0aW9uOiAhIWRlc2MucHJpbnRQcm9vZlNldHVwLk1wQmwsXG5cdFx0XHRcdFx0cGFwZXJXaGl0ZTogISFkZXNjLnByaW50UHJvb2ZTZXR1cC5wYXBlcldoaXRlLFxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0Y29uc3QgaW5mbyA9IHRhcmdldC5wcmludEluZm9ybWF0aW9uITtcblx0XHRjb25zdCBkZXNjOiBQcmludEluZm9ybWF0aW9uRGVzY3JpcHRvciA9IHt9O1xuXG5cdFx0aWYgKGluZm8ucHJpbnRlck1hbmFnZXNDb2xvcnMpIHtcblx0XHRcdGRlc2MuUHN0UyA9IHRydWU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmIChpbmZvLmhhcmRQcm9vZiAhPT0gdW5kZWZpbmVkKSBkZXNjLmhhcmRQcm9vZiA9ICEhaW5mby5oYXJkUHJvb2Y7XG5cdFx0XHRkZXNjLkNsclMgPSAnQ2xyUy5SR0JDJzsgLy8gVE9ETzogPz8/XG5cdFx0XHRkZXNjWydObSAgJ10gPSBpbmZvLnByaW50ZXJQcm9maWxlID8/ICdDSUUgUkdCJztcblx0XHR9XG5cblx0XHRkZXNjLkludGUgPSBJbnRlLmVuY29kZShpbmZvLnJlbmRlcmluZ0ludGVudCk7XG5cblx0XHRpZiAoIWluZm8ucHJpbnRlck1hbmFnZXNDb2xvcnMpIGRlc2MuTXBCbCA9ICEhaW5mby5ibGFja1BvaW50Q29tcGVuc2F0aW9uO1xuXG5cdFx0ZGVzYy5wcmludFNpeHRlZW5CaXQgPSAhIWluZm8ucHJpbnRTaXh0ZWVuQml0O1xuXHRcdGRlc2MucHJpbnRlck5hbWUgPSBpbmZvLnByaW50ZXJOYW1lIHx8ICcnO1xuXG5cdFx0aWYgKGluZm8ucHJvb2ZTZXR1cCAmJiAncHJvZmlsZScgaW4gaW5mby5wcm9vZlNldHVwKSB7XG5cdFx0XHRkZXNjLnByaW50UHJvb2ZTZXR1cCA9IHtcblx0XHRcdFx0cHJvZmlsZTogaW5mby5wcm9vZlNldHVwLnByb2ZpbGUgfHwgJycsXG5cdFx0XHRcdEludGU6IEludGUuZW5jb2RlKGluZm8ucHJvb2ZTZXR1cC5yZW5kZXJpbmdJbnRlbnQpLFxuXHRcdFx0XHRNcEJsOiAhIWluZm8ucHJvb2ZTZXR1cC5ibGFja1BvaW50Q29tcGVuc2F0aW9uLFxuXHRcdFx0XHRwYXBlcldoaXRlOiAhIWluZm8ucHJvb2ZTZXR1cC5wYXBlcldoaXRlLFxuXHRcdFx0fTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGVzYy5wcmludFByb29mU2V0dXAgPSB7XG5cdFx0XHRcdEJsdG46IGluZm8ucHJvb2ZTZXR1cD8uYnVpbHRpbiA/IGBidWlsdGluUHJvb2YuJHtpbmZvLnByb29mU2V0dXAuYnVpbHRpbn1gIDogJ2J1aWx0aW5Qcm9vZi5wcm9vZkNNWUsnLFxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHR3cml0ZVZlcnNpb25BbmREZXNjcmlwdG9yKHdyaXRlciwgJycsICdwcmludE91dHB1dCcsIGRlc2MpO1xuXHR9LFxuKTtcblxuTU9DS19IQU5ETEVSUyAmJiBhZGRIYW5kbGVyKFxuXHQxMDgzLCAvLyBQcmludCBzdHlsZVxuXHR0YXJnZXQgPT4gKHRhcmdldCBhcyBhbnkpLl9pcjEwODMgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0LCBsZWZ0KSA9PiB7XG5cdFx0TE9HX01PQ0tfSEFORExFUlMgJiYgY29uc29sZS5sb2coJ2ltYWdlIHJlc291cmNlIDEwODMnLCBsZWZ0KCkpO1xuXHRcdCh0YXJnZXQgYXMgYW55KS5faXIxMDgzID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblxuXHRcdC8vIFRPRE86XG5cdFx0Ly8gY29uc3QgZGVzYyA9IHJlYWRWZXJzaW9uQW5kRGVzY3JpcHRvcihyZWFkZXIpO1xuXHRcdC8vIGNvbnNvbGUubG9nKCcxMDgzJywgcmVxdWlyZSgndXRpbCcpLmluc3BlY3QoZGVzYywgZmFsc2UsIDk5LCB0cnVlKSk7XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdHdyaXRlQnl0ZXMod3JpdGVyLCAodGFyZ2V0IGFzIGFueSkuX2lyMTA4Myk7XG5cdH0sXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDA1LFxuXHR0YXJnZXQgPT4gdGFyZ2V0LnJlc29sdXRpb25JbmZvICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCkgPT4ge1xuXHRcdGNvbnN0IGhvcml6b250YWxSZXNvbHV0aW9uID0gcmVhZEZpeGVkUG9pbnQzMihyZWFkZXIpO1xuXHRcdGNvbnN0IGhvcml6b250YWxSZXNvbHV0aW9uVW5pdCA9IHJlYWRVaW50MTYocmVhZGVyKTtcblx0XHRjb25zdCB3aWR0aFVuaXQgPSByZWFkVWludDE2KHJlYWRlcik7XG5cdFx0Y29uc3QgdmVydGljYWxSZXNvbHV0aW9uID0gcmVhZEZpeGVkUG9pbnQzMihyZWFkZXIpO1xuXHRcdGNvbnN0IHZlcnRpY2FsUmVzb2x1dGlvblVuaXQgPSByZWFkVWludDE2KHJlYWRlcik7XG5cdFx0Y29uc3QgaGVpZ2h0VW5pdCA9IHJlYWRVaW50MTYocmVhZGVyKTtcblxuXHRcdHRhcmdldC5yZXNvbHV0aW9uSW5mbyA9IHtcblx0XHRcdGhvcml6b250YWxSZXNvbHV0aW9uLFxuXHRcdFx0aG9yaXpvbnRhbFJlc29sdXRpb25Vbml0OiBSRVNPTFVUSU9OX1VOSVRTW2hvcml6b250YWxSZXNvbHV0aW9uVW5pdF0gfHwgJ1BQSScgYXMgYW55LFxuXHRcdFx0d2lkdGhVbml0OiBNRUFTVVJFTUVOVF9VTklUU1t3aWR0aFVuaXRdIHx8ICdJbmNoZXMnIGFzIGFueSxcblx0XHRcdHZlcnRpY2FsUmVzb2x1dGlvbixcblx0XHRcdHZlcnRpY2FsUmVzb2x1dGlvblVuaXQ6IFJFU09MVVRJT05fVU5JVFNbdmVydGljYWxSZXNvbHV0aW9uVW5pdF0gfHwgJ1BQSScgYXMgYW55LFxuXHRcdFx0aGVpZ2h0VW5pdDogTUVBU1VSRU1FTlRfVU5JVFNbaGVpZ2h0VW5pdF0gfHwgJ0luY2hlcycgYXMgYW55LFxuXHRcdH07XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdGNvbnN0IGluZm8gPSB0YXJnZXQucmVzb2x1dGlvbkluZm8hO1xuXG5cdFx0d3JpdGVGaXhlZFBvaW50MzIod3JpdGVyLCBpbmZvLmhvcml6b250YWxSZXNvbHV0aW9uIHx8IDApO1xuXHRcdHdyaXRlVWludDE2KHdyaXRlciwgTWF0aC5tYXgoMSwgUkVTT0xVVElPTl9VTklUUy5pbmRleE9mKGluZm8uaG9yaXpvbnRhbFJlc29sdXRpb25Vbml0KSkpO1xuXHRcdHdyaXRlVWludDE2KHdyaXRlciwgTWF0aC5tYXgoMSwgTUVBU1VSRU1FTlRfVU5JVFMuaW5kZXhPZihpbmZvLndpZHRoVW5pdCkpKTtcblx0XHR3cml0ZUZpeGVkUG9pbnQzMih3cml0ZXIsIGluZm8udmVydGljYWxSZXNvbHV0aW9uIHx8IDApO1xuXHRcdHdyaXRlVWludDE2KHdyaXRlciwgTWF0aC5tYXgoMSwgUkVTT0xVVElPTl9VTklUUy5pbmRleE9mKGluZm8udmVydGljYWxSZXNvbHV0aW9uVW5pdCkpKTtcblx0XHR3cml0ZVVpbnQxNih3cml0ZXIsIE1hdGgubWF4KDEsIE1FQVNVUkVNRU5UX1VOSVRTLmluZGV4T2YoaW5mby5oZWlnaHRVbml0KSkpO1xuXHR9LFxuKTtcblxuY29uc3QgcHJpbnRTY2FsZVN0eWxlcyA9IFsnY2VudGVyZWQnLCAnc2l6ZSB0byBmaXQnLCAndXNlciBkZWZpbmVkJ107XG5cbmFkZEhhbmRsZXIoXG5cdDEwNjIsXG5cdHRhcmdldCA9PiB0YXJnZXQucHJpbnRTY2FsZSAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQpID0+IHtcblx0XHR0YXJnZXQucHJpbnRTY2FsZSA9IHtcblx0XHRcdHN0eWxlOiBwcmludFNjYWxlU3R5bGVzW3JlYWRJbnQxNihyZWFkZXIpXSBhcyBhbnksXG5cdFx0XHR4OiByZWFkRmxvYXQzMihyZWFkZXIpLFxuXHRcdFx0eTogcmVhZEZsb2F0MzIocmVhZGVyKSxcblx0XHRcdHNjYWxlOiByZWFkRmxvYXQzMihyZWFkZXIpLFxuXHRcdH07XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdGNvbnN0IHsgc3R5bGUsIHgsIHksIHNjYWxlIH0gPSB0YXJnZXQucHJpbnRTY2FsZSE7XG5cdFx0d3JpdGVJbnQxNih3cml0ZXIsIE1hdGgubWF4KDAsIHByaW50U2NhbGVTdHlsZXMuaW5kZXhPZihzdHlsZSEpKSk7XG5cdFx0d3JpdGVGbG9hdDMyKHdyaXRlciwgeCB8fCAwKTtcblx0XHR3cml0ZUZsb2F0MzIod3JpdGVyLCB5IHx8IDApO1xuXHRcdHdyaXRlRmxvYXQzMih3cml0ZXIsIHNjYWxlIHx8IDApO1xuXHR9LFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTAwNixcblx0dGFyZ2V0ID0+IHRhcmdldC5hbHBoYUNoYW5uZWxOYW1lcyAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHR0YXJnZXQuYWxwaGFDaGFubmVsTmFtZXMgPSBbXTtcblxuXHRcdHdoaWxlIChsZWZ0KCkpIHtcblx0XHRcdGNvbnN0IHZhbHVlID0gcmVhZFBhc2NhbFN0cmluZyhyZWFkZXIsIDEpO1xuXHRcdFx0dGFyZ2V0LmFscGhhQ2hhbm5lbE5hbWVzLnB1c2godmFsdWUpO1xuXHRcdH1cblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0Zm9yIChjb25zdCBuYW1lIG9mIHRhcmdldC5hbHBoYUNoYW5uZWxOYW1lcyEpIHtcblx0XHRcdHdyaXRlUGFzY2FsU3RyaW5nKHdyaXRlciwgbmFtZSwgMSk7XG5cdFx0fVxuXHR9LFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTA0NSxcblx0dGFyZ2V0ID0+IHRhcmdldC5hbHBoYUNoYW5uZWxOYW1lcyAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHR0YXJnZXQuYWxwaGFDaGFubmVsTmFtZXMgPSBbXTtcblxuXHRcdHdoaWxlIChsZWZ0KCkpIHtcblx0XHRcdHRhcmdldC5hbHBoYUNoYW5uZWxOYW1lcy5wdXNoKHJlYWRVbmljb2RlU3RyaW5nKHJlYWRlcikpO1xuXHRcdH1cblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0Zm9yIChjb25zdCBuYW1lIG9mIHRhcmdldC5hbHBoYUNoYW5uZWxOYW1lcyEpIHtcblx0XHRcdHdyaXRlVW5pY29kZVN0cmluZ1dpdGhQYWRkaW5nKHdyaXRlciwgbmFtZSk7XG5cdFx0fVxuXHR9LFxuKTtcblxuTU9DS19IQU5ETEVSUyAmJiBhZGRIYW5kbGVyKFxuXHQxMDc3LFxuXHR0YXJnZXQgPT4gKHRhcmdldCBhcyBhbnkpLl9pcjEwNzcgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0LCBsZWZ0KSA9PiB7XG5cdFx0TE9HX01PQ0tfSEFORExFUlMgJiYgY29uc29sZS5sb2coJ2ltYWdlIHJlc291cmNlIDEwNzcnLCBsZWZ0KCkpO1xuXHRcdCh0YXJnZXQgYXMgYW55KS5faXIxMDc3ID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVCeXRlcyh3cml0ZXIsICh0YXJnZXQgYXMgYW55KS5faXIxMDc3KTtcblx0fSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDEwNTMsXG5cdHRhcmdldCA9PiB0YXJnZXQuYWxwaGFJZGVudGlmaWVycyAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHR0YXJnZXQuYWxwaGFJZGVudGlmaWVycyA9IFtdO1xuXG5cdFx0d2hpbGUgKGxlZnQoKSA+PSA0KSB7XG5cdFx0XHR0YXJnZXQuYWxwaGFJZGVudGlmaWVycy5wdXNoKHJlYWRVaW50MzIocmVhZGVyKSk7XG5cdFx0fVxuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHRmb3IgKGNvbnN0IGlkIG9mIHRhcmdldC5hbHBoYUlkZW50aWZpZXJzISkge1xuXHRcdFx0d3JpdGVVaW50MzIod3JpdGVyLCBpZCk7XG5cdFx0fVxuXHR9LFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTAxMCxcblx0dGFyZ2V0ID0+IHRhcmdldC5iYWNrZ3JvdW5kQ29sb3IgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0KSA9PiB0YXJnZXQuYmFja2dyb3VuZENvbG9yID0gcmVhZENvbG9yKHJlYWRlciksXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4gd3JpdGVDb2xvcih3cml0ZXIsIHRhcmdldC5iYWNrZ3JvdW5kQ29sb3IhKSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDEwMzcsXG5cdHRhcmdldCA9PiB0YXJnZXQuZ2xvYmFsQW5nbGUgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0KSA9PiB0YXJnZXQuZ2xvYmFsQW5nbGUgPSByZWFkVWludDMyKHJlYWRlciksXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4gd3JpdGVVaW50MzIod3JpdGVyLCB0YXJnZXQuZ2xvYmFsQW5nbGUhKSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDEwNDksXG5cdHRhcmdldCA9PiB0YXJnZXQuZ2xvYmFsQWx0aXR1ZGUgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0KSA9PiB0YXJnZXQuZ2xvYmFsQWx0aXR1ZGUgPSByZWFkVWludDMyKHJlYWRlciksXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4gd3JpdGVVaW50MzIod3JpdGVyLCB0YXJnZXQuZ2xvYmFsQWx0aXR1ZGUhKSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDEwMTEsXG5cdHRhcmdldCA9PiB0YXJnZXQucHJpbnRGbGFncyAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQpID0+IHtcblx0XHR0YXJnZXQucHJpbnRGbGFncyA9IHtcblx0XHRcdGxhYmVsczogISFyZWFkVWludDgocmVhZGVyKSxcblx0XHRcdGNyb3BNYXJrczogISFyZWFkVWludDgocmVhZGVyKSxcblx0XHRcdGNvbG9yQmFyczogISFyZWFkVWludDgocmVhZGVyKSxcblx0XHRcdHJlZ2lzdHJhdGlvbk1hcmtzOiAhIXJlYWRVaW50OChyZWFkZXIpLFxuXHRcdFx0bmVnYXRpdmU6ICEhcmVhZFVpbnQ4KHJlYWRlciksXG5cdFx0XHRmbGlwOiAhIXJlYWRVaW50OChyZWFkZXIpLFxuXHRcdFx0aW50ZXJwb2xhdGU6ICEhcmVhZFVpbnQ4KHJlYWRlciksXG5cdFx0XHRjYXB0aW9uOiAhIXJlYWRVaW50OChyZWFkZXIpLFxuXHRcdFx0cHJpbnRGbGFnczogISFyZWFkVWludDgocmVhZGVyKSxcblx0XHR9O1xuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHRjb25zdCBmbGFncyA9IHRhcmdldC5wcmludEZsYWdzITtcblx0XHR3cml0ZVVpbnQ4KHdyaXRlciwgZmxhZ3MubGFiZWxzID8gMSA6IDApO1xuXHRcdHdyaXRlVWludDgod3JpdGVyLCBmbGFncy5jcm9wTWFya3MgPyAxIDogMCk7XG5cdFx0d3JpdGVVaW50OCh3cml0ZXIsIGZsYWdzLmNvbG9yQmFycyA/IDEgOiAwKTtcblx0XHR3cml0ZVVpbnQ4KHdyaXRlciwgZmxhZ3MucmVnaXN0cmF0aW9uTWFya3MgPyAxIDogMCk7XG5cdFx0d3JpdGVVaW50OCh3cml0ZXIsIGZsYWdzLm5lZ2F0aXZlID8gMSA6IDApO1xuXHRcdHdyaXRlVWludDgod3JpdGVyLCBmbGFncy5mbGlwID8gMSA6IDApO1xuXHRcdHdyaXRlVWludDgod3JpdGVyLCBmbGFncy5pbnRlcnBvbGF0ZSA/IDEgOiAwKTtcblx0XHR3cml0ZVVpbnQ4KHdyaXRlciwgZmxhZ3MuY2FwdGlvbiA/IDEgOiAwKTtcblx0XHR3cml0ZVVpbnQ4KHdyaXRlciwgZmxhZ3MucHJpbnRGbGFncyA/IDEgOiAwKTtcblx0fSxcbik7XG5cbk1PQ0tfSEFORExFUlMgJiYgYWRkSGFuZGxlcihcblx0MTAwMDAsIC8vIFByaW50IGZsYWdzXG5cdHRhcmdldCA9PiAodGFyZ2V0IGFzIGFueSkuX2lyMTAwMDAgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0LCBsZWZ0KSA9PiB7XG5cdFx0TE9HX01PQ0tfSEFORExFUlMgJiYgY29uc29sZS5sb2coJ2ltYWdlIHJlc291cmNlIDEwMDAwJywgbGVmdCgpKTtcblx0XHQodGFyZ2V0IGFzIGFueSkuX2lyMTAwMDAgPSByZWFkQnl0ZXMocmVhZGVyLCBsZWZ0KCkpO1xuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHR3cml0ZUJ5dGVzKHdyaXRlciwgKHRhcmdldCBhcyBhbnkpLl9pcjEwMDAwKTtcblx0fSxcbik7XG5cbk1PQ0tfSEFORExFUlMgJiYgYWRkSGFuZGxlcihcblx0MTAxMywgLy8gQ29sb3IgaGFsZnRvbmluZ1xuXHR0YXJnZXQgPT4gKHRhcmdldCBhcyBhbnkpLl9pcjEwMTMgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0LCBsZWZ0KSA9PiB7XG5cdFx0TE9HX01PQ0tfSEFORExFUlMgJiYgY29uc29sZS5sb2coJ2ltYWdlIHJlc291cmNlIDEwMTMnLCBsZWZ0KCkpO1xuXHRcdCh0YXJnZXQgYXMgYW55KS5faXIxMDEzID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVCeXRlcyh3cml0ZXIsICh0YXJnZXQgYXMgYW55KS5faXIxMDEzKTtcblx0fSxcbik7XG5cbk1PQ0tfSEFORExFUlMgJiYgYWRkSGFuZGxlcihcblx0MTAxNiwgLy8gQ29sb3IgdHJhbnNmZXIgZnVuY3Rpb25zXG5cdHRhcmdldCA9PiAodGFyZ2V0IGFzIGFueSkuX2lyMTAxNiAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHRMT0dfTU9DS19IQU5ETEVSUyAmJiBjb25zb2xlLmxvZygnaW1hZ2UgcmVzb3VyY2UgMTAxNicsIGxlZnQoKSk7XG5cdFx0KHRhcmdldCBhcyBhbnkpLl9pcjEwMTYgPSByZWFkQnl0ZXMocmVhZGVyLCBsZWZ0KCkpO1xuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHR3cml0ZUJ5dGVzKHdyaXRlciwgKHRhcmdldCBhcyBhbnkpLl9pcjEwMTYpO1xuXHR9LFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTAyNCxcblx0dGFyZ2V0ID0+IHRhcmdldC5sYXllclN0YXRlICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCkgPT4gdGFyZ2V0LmxheWVyU3RhdGUgPSByZWFkVWludDE2KHJlYWRlciksXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4gd3JpdGVVaW50MTYod3JpdGVyLCB0YXJnZXQubGF5ZXJTdGF0ZSEpLFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTAyNixcblx0dGFyZ2V0ID0+IHRhcmdldC5sYXllcnNHcm91cCAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHR0YXJnZXQubGF5ZXJzR3JvdXAgPSBbXTtcblxuXHRcdHdoaWxlIChsZWZ0KCkpIHtcblx0XHRcdHRhcmdldC5sYXllcnNHcm91cC5wdXNoKHJlYWRVaW50MTYocmVhZGVyKSk7XG5cdFx0fVxuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHRmb3IgKGNvbnN0IGcgb2YgdGFyZ2V0LmxheWVyc0dyb3VwISkge1xuXHRcdFx0d3JpdGVVaW50MTYod3JpdGVyLCBnKTtcblx0XHR9XG5cdH0sXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDcyLFxuXHR0YXJnZXQgPT4gdGFyZ2V0LmxheWVyR3JvdXBzRW5hYmxlZElkICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgbGVmdCkgPT4ge1xuXHRcdHRhcmdldC5sYXllckdyb3Vwc0VuYWJsZWRJZCA9IFtdO1xuXG5cdFx0d2hpbGUgKGxlZnQoKSkge1xuXHRcdFx0dGFyZ2V0LmxheWVyR3JvdXBzRW5hYmxlZElkLnB1c2gocmVhZFVpbnQ4KHJlYWRlcikpO1xuXHRcdH1cblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0Zm9yIChjb25zdCBpZCBvZiB0YXJnZXQubGF5ZXJHcm91cHNFbmFibGVkSWQhKSB7XG5cdFx0XHR3cml0ZVVpbnQ4KHdyaXRlciwgaWQpO1xuXHRcdH1cblx0fSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDEwNjksXG5cdHRhcmdldCA9PiB0YXJnZXQubGF5ZXJTZWxlY3Rpb25JZHMgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0bGV0IGNvdW50ID0gcmVhZFVpbnQxNihyZWFkZXIpO1xuXHRcdHRhcmdldC5sYXllclNlbGVjdGlvbklkcyA9IFtdO1xuXG5cdFx0d2hpbGUgKGNvdW50LS0pIHtcblx0XHRcdHRhcmdldC5sYXllclNlbGVjdGlvbklkcy5wdXNoKHJlYWRVaW50MzIocmVhZGVyKSk7XG5cdFx0fVxuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHR3cml0ZVVpbnQxNih3cml0ZXIsIHRhcmdldC5sYXllclNlbGVjdGlvbklkcyEubGVuZ3RoKTtcblxuXHRcdGZvciAoY29uc3QgaWQgb2YgdGFyZ2V0LmxheWVyU2VsZWN0aW9uSWRzISkge1xuXHRcdFx0d3JpdGVVaW50MzIod3JpdGVyLCBpZCk7XG5cdFx0fVxuXHR9LFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTAzMixcblx0dGFyZ2V0ID0+IHRhcmdldC5ncmlkQW5kR3VpZGVzSW5mb3JtYXRpb24gIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0Y29uc3QgdmVyc2lvbiA9IHJlYWRVaW50MzIocmVhZGVyKTtcblx0XHRjb25zdCBob3Jpem9udGFsID0gcmVhZFVpbnQzMihyZWFkZXIpO1xuXHRcdGNvbnN0IHZlcnRpY2FsID0gcmVhZFVpbnQzMihyZWFkZXIpO1xuXHRcdGNvbnN0IGNvdW50ID0gcmVhZFVpbnQzMihyZWFkZXIpO1xuXG5cdFx0aWYgKHZlcnNpb24gIT09IDEpIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCAxMDMyIHJlc291cmNlIHZlcnNpb246ICR7dmVyc2lvbn1gKTtcblxuXHRcdHRhcmdldC5ncmlkQW5kR3VpZGVzSW5mb3JtYXRpb24gPSB7XG5cdFx0XHRncmlkOiB7IGhvcml6b250YWwsIHZlcnRpY2FsIH0sXG5cdFx0XHRndWlkZXM6IFtdLFxuXHRcdH07XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcblx0XHRcdHRhcmdldC5ncmlkQW5kR3VpZGVzSW5mb3JtYXRpb24uZ3VpZGVzIS5wdXNoKHtcblx0XHRcdFx0bG9jYXRpb246IHJlYWRVaW50MzIocmVhZGVyKSAvIDMyLFxuXHRcdFx0XHRkaXJlY3Rpb246IHJlYWRVaW50OChyZWFkZXIpID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJ1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHRjb25zdCBpbmZvID0gdGFyZ2V0LmdyaWRBbmRHdWlkZXNJbmZvcm1hdGlvbiE7XG5cdFx0Y29uc3QgZ3JpZCA9IGluZm8uZ3JpZCB8fCB7IGhvcml6b250YWw6IDE4ICogMzIsIHZlcnRpY2FsOiAxOCAqIDMyIH07XG5cdFx0Y29uc3QgZ3VpZGVzID0gaW5mby5ndWlkZXMgfHwgW107XG5cblx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIDEpO1xuXHRcdHdyaXRlVWludDMyKHdyaXRlciwgZ3JpZC5ob3Jpem9udGFsKTtcblx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIGdyaWQudmVydGljYWwpO1xuXHRcdHdyaXRlVWludDMyKHdyaXRlciwgZ3VpZGVzLmxlbmd0aCk7XG5cblx0XHRmb3IgKGNvbnN0IGcgb2YgZ3VpZGVzKSB7XG5cdFx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIGcubG9jYXRpb24gKiAzMik7XG5cdFx0XHR3cml0ZVVpbnQ4KHdyaXRlciwgZy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IDEgOiAwKTtcblx0XHR9XG5cdH0sXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDU0LFxuXHR0YXJnZXQgPT4gdGFyZ2V0LnVybHNMaXN0ICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgXywgb3B0aW9ucykgPT4ge1xuXHRcdGNvbnN0IGNvdW50ID0gcmVhZFVpbnQzMihyZWFkZXIpO1xuXG5cdFx0aWYgKGNvdW50KSB7XG5cdFx0XHRpZiAoIW9wdGlvbnMudGhyb3dGb3JNaXNzaW5nRmVhdHVyZXMpIHJldHVybjtcblx0XHRcdHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkOiBVUkwgTGlzdCcpO1xuXHRcdH1cblxuXHRcdC8vIFRPRE86IHJlYWQgYWN0dWFsIFVSTCBsaXN0XG5cdFx0dGFyZ2V0LnVybHNMaXN0ID0gW107XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdHdyaXRlVWludDMyKHdyaXRlciwgdGFyZ2V0LnVybHNMaXN0IS5sZW5ndGgpO1xuXG5cdFx0Ly8gVE9ETzogd3JpdGUgYWN0dWFsIFVSTCBsaXN0XG5cdFx0aWYgKHRhcmdldC51cmxzTGlzdCEubGVuZ3RoKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZDogVVJMIExpc3QnKTtcblx0XHR9XG5cdH0sXG4pO1xuXG5NT0NLX0hBTkRMRVJTICYmIGFkZEhhbmRsZXIoXG5cdDEwNTAsIC8vIFNsaWNlc1xuXHR0YXJnZXQgPT4gKHRhcmdldCBhcyBhbnkpLl9pcjEwNTAgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0LCBsZWZ0KSA9PiB7XG5cdFx0TE9HX01PQ0tfSEFORExFUlMgJiYgY29uc29sZS5sb2coJ2ltYWdlIHJlc291cmNlIDEwNTAnLCBsZWZ0KCkpO1xuXHRcdCh0YXJnZXQgYXMgYW55KS5faXIxMDUwID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVCeXRlcyh3cml0ZXIsICh0YXJnZXQgYXMgYW55KS5faXIxMDUwKTtcblx0fSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDEwNjQsXG5cdHRhcmdldCA9PiB0YXJnZXQucGl4ZWxBc3BlY3RSYXRpbyAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQpID0+IHtcblx0XHRpZiAocmVhZFVpbnQzMihyZWFkZXIpID4gMikgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHBpeGVsQXNwZWN0UmF0aW8gdmVyc2lvbicpO1xuXHRcdHRhcmdldC5waXhlbEFzcGVjdFJhdGlvID0geyBhc3BlY3Q6IHJlYWRGbG9hdDY0KHJlYWRlcikgfTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVVaW50MzIod3JpdGVyLCAyKTsgLy8gdmVyc2lvblxuXHRcdHdyaXRlRmxvYXQ2NCh3cml0ZXIsIHRhcmdldC5waXhlbEFzcGVjdFJhdGlvIS5hc3BlY3QpO1xuXHR9LFxuKTtcblxuYWRkSGFuZGxlcihcblx0MTA0MSxcblx0dGFyZ2V0ID0+IHRhcmdldC5pY2NVbnRhZ2dlZFByb2ZpbGUgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0dGFyZ2V0LmljY1VudGFnZ2VkUHJvZmlsZSA9ICEhcmVhZFVpbnQ4KHJlYWRlcik7XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdHdyaXRlVWludDgod3JpdGVyLCB0YXJnZXQuaWNjVW50YWdnZWRQcm9maWxlID8gMSA6IDApO1xuXHR9LFxuKTtcblxuTU9DS19IQU5ETEVSUyAmJiBhZGRIYW5kbGVyKFxuXHQxMDM5LCAvLyBJQ0MgUHJvZmlsZVxuXHR0YXJnZXQgPT4gKHRhcmdldCBhcyBhbnkpLl9pcjEwMzkgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0LCBsZWZ0KSA9PiB7XG5cdFx0TE9HX01PQ0tfSEFORExFUlMgJiYgY29uc29sZS5sb2coJ2ltYWdlIHJlc291cmNlIDEwMzknLCBsZWZ0KCkpO1xuXHRcdCh0YXJnZXQgYXMgYW55KS5faXIxMDM5ID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVCeXRlcyh3cml0ZXIsICh0YXJnZXQgYXMgYW55KS5faXIxMDM5KTtcblx0fSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDEwNDQsXG5cdHRhcmdldCA9PiB0YXJnZXQuaWRzU2VlZE51bWJlciAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQpID0+IHRhcmdldC5pZHNTZWVkTnVtYmVyID0gcmVhZFVpbnQzMihyZWFkZXIpLFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHdyaXRlVWludDMyKHdyaXRlciwgdGFyZ2V0Lmlkc1NlZWROdW1iZXIhKSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDEwMzYsXG5cdHRhcmdldCA9PiB0YXJnZXQudGh1bWJuYWlsICE9PSB1bmRlZmluZWQgfHwgdGFyZ2V0LnRodW1ibmFpbFJhdyAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQsIG9wdGlvbnMpID0+IHtcblx0XHRjb25zdCBmb3JtYXQgPSByZWFkVWludDMyKHJlYWRlcik7IC8vIDEgPSBrSnBlZ1JHQiwgMCA9IGtSYXdSR0Jcblx0XHRjb25zdCB3aWR0aCA9IHJlYWRVaW50MzIocmVhZGVyKTtcblx0XHRjb25zdCBoZWlnaHQgPSByZWFkVWludDMyKHJlYWRlcik7XG5cdFx0cmVhZFVpbnQzMihyZWFkZXIpOyAvLyB3aWR0aEJ5dGVzID0gKHdpZHRoICogYml0c19wZXJfcGl4ZWwgKyAzMSkgLyAzMiAqIDQuXG5cdFx0cmVhZFVpbnQzMihyZWFkZXIpOyAvLyB0b3RhbFNpemUgPSB3aWR0aEJ5dGVzICogaGVpZ2h0ICogcGxhbmVzXG5cdFx0cmVhZFVpbnQzMihyZWFkZXIpOyAvLyBzaXplQWZ0ZXJDb21wcmVzc2lvblxuXHRcdGNvbnN0IGJpdHNQZXJQaXhlbCA9IHJlYWRVaW50MTYocmVhZGVyKTsgLy8gMjRcblx0XHRjb25zdCBwbGFuZXMgPSByZWFkVWludDE2KHJlYWRlcik7IC8vIDFcblxuXHRcdGlmIChmb3JtYXQgIT09IDEgfHwgYml0c1BlclBpeGVsICE9PSAyNCB8fCBwbGFuZXMgIT09IDEpIHtcblx0XHRcdG9wdGlvbnMubG9nTWlzc2luZ0ZlYXR1cmVzICYmIGNvbnNvbGUubG9nKGBJbnZhbGlkIHRodW1ibmFpbCBkYXRhIChmb3JtYXQ6ICR7Zm9ybWF0fSwgYml0c1BlclBpeGVsOiAke2JpdHNQZXJQaXhlbH0sIHBsYW5lczogJHtwbGFuZXN9KWApO1xuXHRcdFx0c2tpcEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBzaXplID0gbGVmdCgpO1xuXHRcdGNvbnN0IGRhdGEgPSByZWFkQnl0ZXMocmVhZGVyLCBzaXplKTtcblxuXHRcdGlmIChvcHRpb25zLnVzZVJhd1RodW1ibmFpbCkge1xuXHRcdFx0dGFyZ2V0LnRodW1ibmFpbFJhdyA9IHsgd2lkdGgsIGhlaWdodCwgZGF0YSB9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0YXJnZXQudGh1bWJuYWlsID0gY3JlYXRlQ2FudmFzRnJvbURhdGEoZGF0YSk7XG5cdFx0fVxuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHRsZXQgd2lkdGggPSAwO1xuXHRcdGxldCBoZWlnaHQgPSAwO1xuXHRcdGxldCBkYXRhOiBVaW50OEFycmF5O1xuXG5cdFx0aWYgKHRhcmdldC50aHVtYm5haWxSYXcpIHtcblx0XHRcdHdpZHRoID0gdGFyZ2V0LnRodW1ibmFpbFJhdy53aWR0aDtcblx0XHRcdGhlaWdodCA9IHRhcmdldC50aHVtYm5haWxSYXcuaGVpZ2h0O1xuXHRcdFx0ZGF0YSA9IHRhcmdldC50aHVtYm5haWxSYXcuZGF0YTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKCF0YXJnZXQudGh1bWJuYWlsKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgdGh1bWJuYWlsJyk7XG5cdFx0XHR3aWR0aCA9IHRhcmdldC50aHVtYm5haWwud2lkdGg7XG5cdFx0XHRoZWlnaHQgPSB0YXJnZXQudGh1bWJuYWlsLmhlaWdodDtcblx0XHRcdGRhdGEgPSB0b0J5dGVBcnJheSh0YXJnZXQudGh1bWJuYWlsLnRvRGF0YVVSTCgnaW1hZ2UvanBlZycsIDEpLnN1YnN0cignZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwnLmxlbmd0aCkpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGJpdHNQZXJQaXhlbCA9IDI0O1xuXHRcdGNvbnN0IHdpZHRoQnl0ZXMgPSBNYXRoLmZsb29yKCh3aWR0aCAqIGJpdHNQZXJQaXhlbCArIDMxKSAvIDMyKSAqIDQ7XG5cdFx0Y29uc3QgcGxhbmVzID0gMTtcblx0XHRjb25zdCB0b3RhbFNpemUgPSB3aWR0aEJ5dGVzICogaGVpZ2h0ICogcGxhbmVzO1xuXHRcdGNvbnN0IHNpemVBZnRlckNvbXByZXNzaW9uID0gZGF0YS5sZW5ndGg7XG5cblx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIDEpOyAvLyAxID0ga0pwZWdSR0Jcblx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIHdpZHRoKTtcblx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIGhlaWdodCk7XG5cdFx0d3JpdGVVaW50MzIod3JpdGVyLCB3aWR0aEJ5dGVzKTtcblx0XHR3cml0ZVVpbnQzMih3cml0ZXIsIHRvdGFsU2l6ZSk7XG5cdFx0d3JpdGVVaW50MzIod3JpdGVyLCBzaXplQWZ0ZXJDb21wcmVzc2lvbik7XG5cdFx0d3JpdGVVaW50MTYod3JpdGVyLCBiaXRzUGVyUGl4ZWwpO1xuXHRcdHdyaXRlVWludDE2KHdyaXRlciwgcGxhbmVzKTtcblx0XHR3cml0ZUJ5dGVzKHdyaXRlciwgZGF0YSk7XG5cdH0sXG4pO1xuXG5hZGRIYW5kbGVyKFxuXHQxMDU3LFxuXHR0YXJnZXQgPT4gdGFyZ2V0LnZlcnNpb25JbmZvICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgbGVmdCkgPT4ge1xuXHRcdGNvbnN0IHZlcnNpb24gPSByZWFkVWludDMyKHJlYWRlcik7XG5cdFx0aWYgKHZlcnNpb24gIT09IDEpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2ZXJzaW9uSW5mbyB2ZXJzaW9uJyk7XG5cblx0XHR0YXJnZXQudmVyc2lvbkluZm8gPSB7XG5cdFx0XHRoYXNSZWFsTWVyZ2VkRGF0YTogISFyZWFkVWludDgocmVhZGVyKSxcblx0XHRcdHdyaXRlck5hbWU6IHJlYWRVbmljb2RlU3RyaW5nKHJlYWRlciksXG5cdFx0XHRyZWFkZXJOYW1lOiByZWFkVW5pY29kZVN0cmluZyhyZWFkZXIpLFxuXHRcdFx0ZmlsZVZlcnNpb246IHJlYWRVaW50MzIocmVhZGVyKSxcblx0XHR9O1xuXG5cdFx0c2tpcEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0Y29uc3QgdmVyc2lvbkluZm8gPSB0YXJnZXQudmVyc2lvbkluZm8hO1xuXHRcdHdyaXRlVWludDMyKHdyaXRlciwgMSk7IC8vIHZlcnNpb25cblx0XHR3cml0ZVVpbnQ4KHdyaXRlciwgdmVyc2lvbkluZm8uaGFzUmVhbE1lcmdlZERhdGEgPyAxIDogMCk7XG5cdFx0d3JpdGVVbmljb2RlU3RyaW5nKHdyaXRlciwgdmVyc2lvbkluZm8ud3JpdGVyTmFtZSk7XG5cdFx0d3JpdGVVbmljb2RlU3RyaW5nKHdyaXRlciwgdmVyc2lvbkluZm8ucmVhZGVyTmFtZSk7XG5cdFx0d3JpdGVVaW50MzIod3JpdGVyLCB2ZXJzaW9uSW5mby5maWxlVmVyc2lvbik7XG5cdH0sXG4pO1xuXG5NT0NLX0hBTkRMRVJTICYmIGFkZEhhbmRsZXIoXG5cdDEwNTgsIC8vIEVYSUYgZGF0YSAxLlxuXHR0YXJnZXQgPT4gKHRhcmdldCBhcyBhbnkpLl9pcjEwNTggIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0LCBsZWZ0KSA9PiB7XG5cdFx0TE9HX01PQ0tfSEFORExFUlMgJiYgY29uc29sZS5sb2coJ2ltYWdlIHJlc291cmNlIDEwNTgnLCBsZWZ0KCkpO1xuXHRcdCh0YXJnZXQgYXMgYW55KS5faXIxMDU4ID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVCeXRlcyh3cml0ZXIsICh0YXJnZXQgYXMgYW55KS5faXIxMDU4KTtcblx0fSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDcwMDAsXG5cdHRhcmdldCA9PiB0YXJnZXQuaW1hZ2VSZWFkeVZhcmlhYmxlcyAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQpID0+IHtcblx0XHR0YXJnZXQuaW1hZ2VSZWFkeVZhcmlhYmxlcyA9IHJlYWRVdGY4U3RyaW5nKHJlYWRlciwgbGVmdCgpKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVVdGY4U3RyaW5nKHdyaXRlciwgdGFyZ2V0LmltYWdlUmVhZHlWYXJpYWJsZXMhKTtcblx0fSxcbik7XG5cbmFkZEhhbmRsZXIoXG5cdDcwMDEsXG5cdHRhcmdldCA9PiB0YXJnZXQuaW1hZ2VSZWFkeURhdGFTZXRzICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgbGVmdCkgPT4ge1xuXHRcdHRhcmdldC5pbWFnZVJlYWR5RGF0YVNldHMgPSByZWFkVXRmOFN0cmluZyhyZWFkZXIsIGxlZnQoKSk7XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdHdyaXRlVXRmOFN0cmluZyh3cml0ZXIsIHRhcmdldC5pbWFnZVJlYWR5RGF0YVNldHMhKTtcblx0fSxcbik7XG5cbmludGVyZmFjZSBEZXNjcmlwdG9yMTA4OCB7XG5cdCdudWxsJzogc3RyaW5nW107XG59XG5cbmFkZEhhbmRsZXIoXG5cdDEwODgsXG5cdHRhcmdldCA9PiB0YXJnZXQucGF0aFNlbGVjdGlvblN0YXRlICE9PSB1bmRlZmluZWQsXG5cdChyZWFkZXIsIHRhcmdldCwgX2xlZnQpID0+IHtcblx0XHRjb25zdCBkZXNjOiBEZXNjcmlwdG9yMTA4OCA9IHJlYWRWZXJzaW9uQW5kRGVzY3JpcHRvcihyZWFkZXIpO1xuXHRcdC8vIGNvbnNvbGUubG9nKHJlcXVpcmUoJ3V0aWwnKS5pbnNwZWN0KGRlc2MsIGZhbHNlLCA5OSwgdHJ1ZSkpO1xuXHRcdHRhcmdldC5wYXRoU2VsZWN0aW9uU3RhdGUgPSBkZXNjWydudWxsJ107XG5cdH0sXG5cdCh3cml0ZXIsIHRhcmdldCkgPT4ge1xuXHRcdGNvbnN0IGRlc2M6IERlc2NyaXB0b3IxMDg4ID0geyAnbnVsbCc6IHRhcmdldC5wYXRoU2VsZWN0aW9uU3RhdGUhIH07XG5cdFx0d3JpdGVWZXJzaW9uQW5kRGVzY3JpcHRvcih3cml0ZXIsICcnLCAnbnVsbCcsIGRlc2MpO1xuXHR9LFxuKTtcblxuTU9DS19IQU5ETEVSUyAmJiBhZGRIYW5kbGVyKFxuXHQxMDI1LFxuXHR0YXJnZXQgPT4gKHRhcmdldCBhcyBhbnkpLl9pcjEwMjUgIT09IHVuZGVmaW5lZCxcblx0KHJlYWRlciwgdGFyZ2V0LCBsZWZ0KSA9PiB7XG5cdFx0TE9HX01PQ0tfSEFORExFUlMgJiYgY29uc29sZS5sb2coJ2ltYWdlIHJlc291cmNlIDEwMjUnLCBsZWZ0KCkpO1xuXHRcdCh0YXJnZXQgYXMgYW55KS5faXIxMDI1ID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVCeXRlcyh3cml0ZXIsICh0YXJnZXQgYXMgYW55KS5faXIxMDI1KTtcblx0fSxcbik7XG5cbmNvbnN0IEZybUQgPSBjcmVhdGVFbnVtPCdhdXRvJyB8ICdub25lJyB8ICdkaXNwb3NlJz4oJ0ZybUQnLCAnJywge1xuXHRhdXRvOiAnQXV0bycsXG5cdG5vbmU6ICdOb25lJyxcblx0ZGlzcG9zZTogJ0Rpc3AnLFxufSk7XG5cbmludGVyZmFjZSBBbmltYXRpb25EZXNjcmlwdG9yIHtcblx0QUZTdDogbnVtYmVyO1xuXHRGckluOiB7XG5cdFx0RnJJRDogbnVtYmVyO1xuXHRcdEZyRGw6IG51bWJlcjtcblx0XHRGckRzOiBzdHJpbmc7XG5cdFx0RnJHQT86IG51bWJlcjtcblx0fVtdO1xuXHRGU3RzOiB7XG5cdFx0RnNJRDogbnVtYmVyO1xuXHRcdEFGcm06IG51bWJlcjtcblx0XHRGc0ZyOiBudW1iZXJbXTtcblx0XHRMQ250OiBudW1iZXI7XG5cdH1bXTtcbn1cblxuaW50ZXJmYWNlIEFuaW1hdGlvbnMge1xuXHRmcmFtZXM6IHtcblx0XHRpZDogbnVtYmVyO1xuXHRcdGRlbGF5OiBudW1iZXI7XG5cdFx0ZGlzcG9zZT86ICdhdXRvJyB8ICdub25lJyB8ICdkaXNwb3NlJztcblx0fVtdO1xuXHRhbmltYXRpb25zOiB7XG5cdFx0aWQ6IG51bWJlcjtcblx0XHRmcmFtZXM6IG51bWJlcltdO1xuXHRcdHJlcGVhdHM/OiBudW1iZXI7XG5cdH1bXTtcbn1cblxuLy8gVE9ETzogVW5maW5pc2hlZFxuTU9DS19IQU5ETEVSUyAmJiBhZGRIYW5kbGVyKFxuXHQ0MDAwLCAvLyBQbHVnLUluIHJlc291cmNlKHMpXG5cdHRhcmdldCA9PiAodGFyZ2V0IGFzIGFueSkuX2lyNDAwMCAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQsIHsgbG9nTWlzc2luZ0ZlYXR1cmVzLCBsb2dEZXZGZWF0dXJlcyB9KSA9PiB7XG5cdFx0aWYgKE1PQ0tfSEFORExFUlMpIHtcblx0XHRcdExPR19NT0NLX0hBTkRMRVJTICYmIGNvbnNvbGUubG9nKCdpbWFnZSByZXNvdXJjZSA0MDAwJywgbGVmdCgpKTtcblx0XHRcdCh0YXJnZXQgYXMgYW55KS5faXI0MDAwID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBrZXkgPSByZWFkU2lnbmF0dXJlKHJlYWRlcik7XG5cblx0XHRpZiAoa2V5ID09PSAnbWFuaScpIHtcblx0XHRcdGNoZWNrU2lnbmF0dXJlKHJlYWRlciwgJ0lSRlInKTtcblx0XHRcdHJlYWRTZWN0aW9uKHJlYWRlciwgMSwgbGVmdCA9PiB7XG5cdFx0XHRcdHdoaWxlIChsZWZ0KCkpIHtcblx0XHRcdFx0XHRjaGVja1NpZ25hdHVyZShyZWFkZXIsICc4QklNJyk7XG5cdFx0XHRcdFx0Y29uc3Qga2V5ID0gcmVhZFNpZ25hdHVyZShyZWFkZXIpO1xuXG5cdFx0XHRcdFx0cmVhZFNlY3Rpb24ocmVhZGVyLCAxLCBsZWZ0ID0+IHtcblx0XHRcdFx0XHRcdGlmIChrZXkgPT09ICdBbkRzJykge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBkZXNjID0gcmVhZFZlcnNpb25BbmREZXNjcmlwdG9yKHJlYWRlcikgYXMgQW5pbWF0aW9uRGVzY3JpcHRvcjtcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ0FuRHMnLCBkZXNjKTtcblx0XHRcdFx0XHRcdFx0bG9nRGV2RmVhdHVyZXMgJiYgY29uc29sZS5sb2coJyM0MDAwIEFuRHMnLCBkZXNjKTtcblx0XHRcdFx0XHRcdFx0Ly8gbG9nRGV2RmVhdHVyZXMgJiYgY29uc29sZS5sb2coJyM0MDAwIEFuRHMnLCByZXF1aXJlKCd1dGlsJykuaW5zcGVjdChkZXNjLCBmYWxzZSwgOTksIHRydWUpKTtcblxuXHRcdFx0XHRcdFx0XHRjb25zdCByZXN1bHQ6IEFuaW1hdGlvbnMgPSB7XG5cdFx0XHRcdFx0XHRcdFx0Ly8gZGVzYy5BRlN0ID8/P1xuXHRcdFx0XHRcdFx0XHRcdGZyYW1lczogZGVzYy5GckluLm1hcCh4ID0+ICh7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZDogeC5GcklELFxuXHRcdFx0XHRcdFx0XHRcdFx0ZGVsYXk6IHguRnJEbCAvIDEwMCxcblx0XHRcdFx0XHRcdFx0XHRcdGRpc3Bvc2U6IHguRnJEcyA/IEZybUQuZGVjb2RlKHguRnJEcykgOiAnYXV0bycsIC8vIG1pc3NpbmcgPT0gYXV0b1xuXHRcdFx0XHRcdFx0XHRcdFx0Ly8geC5GckdBID8/P1xuXHRcdFx0XHRcdFx0XHRcdH0pKSxcblx0XHRcdFx0XHRcdFx0XHRhbmltYXRpb25zOiBkZXNjLkZTdHMubWFwKHggPT4gKHtcblx0XHRcdFx0XHRcdFx0XHRcdGlkOiB4LkZzSUQsXG5cdFx0XHRcdFx0XHRcdFx0XHRmcmFtZXM6IHguRnNGcixcblx0XHRcdFx0XHRcdFx0XHRcdHJlcGVhdHM6IHguTENudCxcblx0XHRcdFx0XHRcdFx0XHRcdC8vIHguQUZybSA/Pz9cblx0XHRcdFx0XHRcdFx0XHR9KSksXG5cdFx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdFx0bG9nRGV2RmVhdHVyZXMgJiYgY29uc29sZS5sb2coJyM0MDAwIEFuRHM6cmVzdWx0JywgcmVzdWx0KTtcblx0XHRcdFx0XHRcdFx0Ly8gbG9nRGV2RmVhdHVyZXMgJiYgY29uc29sZS5sb2coJyM0MDAwIEFuRHM6cmVzdWx0JywgcmVxdWlyZSgndXRpbCcpLmluc3BlY3QocmVzdWx0LCBmYWxzZSwgOTksIHRydWUpKTtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoa2V5ID09PSAnUm9sbCcpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgYnl0ZXMgPSByZWFkQnl0ZXMocmVhZGVyLCBsZWZ0KCkpO1xuXHRcdFx0XHRcdFx0XHRsb2dEZXZGZWF0dXJlcyAmJiBjb25zb2xlLmxvZygnIzQwMDAgUm9sbCcsIGJ5dGVzKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGxvZ01pc3NpbmdGZWF0dXJlcyAmJiBjb25zb2xlLmxvZygnVW5oYW5kbGVkIHN1YnNlY3Rpb24gaW4gIzQwMDAnLCBrZXkpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9IGVsc2UgaWYgKGtleSA9PT0gJ21vcHQnKSB7XG5cdFx0XHRjb25zdCBieXRlcyA9IHJlYWRCeXRlcyhyZWFkZXIsIGxlZnQoKSk7XG5cdFx0XHRsb2dEZXZGZWF0dXJlcyAmJiBjb25zb2xlLmxvZygnIzQwMDAgbW9wdCcsIGJ5dGVzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bG9nTWlzc2luZ0ZlYXR1cmVzICYmIGNvbnNvbGUubG9nKCdVbmhhbmRsZWQga2V5IGluICM0MDAwOicsIGtleSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHR9LFxuXHQod3JpdGVyLCB0YXJnZXQpID0+IHtcblx0XHR3cml0ZUJ5dGVzKHdyaXRlciwgKHRhcmdldCBhcyBhbnkpLl9pcjQwMDApO1xuXHR9LFxuKTtcblxuLy8gVE9ETzogVW5maW5pc2hlZFxuTU9DS19IQU5ETEVSUyAmJiBhZGRIYW5kbGVyKFxuXHQ0MDAxLCAvLyBQbHVnLUluIHJlc291cmNlKHMpXG5cdHRhcmdldCA9PiAodGFyZ2V0IGFzIGFueSkuX2lyNDAwMSAhPT0gdW5kZWZpbmVkLFxuXHQocmVhZGVyLCB0YXJnZXQsIGxlZnQsIHsgbG9nTWlzc2luZ0ZlYXR1cmVzLCBsb2dEZXZGZWF0dXJlcyB9KSA9PiB7XG5cdFx0aWYgKE1PQ0tfSEFORExFUlMpIHtcblx0XHRcdExPR19NT0NLX0hBTkRMRVJTICYmIGNvbnNvbGUubG9nKCdpbWFnZSByZXNvdXJjZSA0MDAxJywgbGVmdCgpKTtcblx0XHRcdCh0YXJnZXQgYXMgYW55KS5faXI0MDAxID0gcmVhZEJ5dGVzKHJlYWRlciwgbGVmdCgpKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBrZXkgPSByZWFkU2lnbmF0dXJlKHJlYWRlcik7XG5cblx0XHRpZiAoa2V5ID09PSAnbWZyaScpIHtcblx0XHRcdGNvbnN0IHZlcnNpb24gPSByZWFkVWludDMyKHJlYWRlcik7XG5cdFx0XHRpZiAodmVyc2lvbiAhPT0gMikgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1mcmkgdmVyc2lvbicpO1xuXG5cdFx0XHRjb25zdCBsZW5ndGggPSByZWFkVWludDMyKHJlYWRlcik7XG5cdFx0XHRjb25zdCBieXRlcyA9IHJlYWRCeXRlcyhyZWFkZXIsIGxlbmd0aCk7XG5cdFx0XHRsb2dEZXZGZWF0dXJlcyAmJiBjb25zb2xlLmxvZygnbWZyaScsIGJ5dGVzKTtcblx0XHR9IGVsc2UgaWYgKGtleSA9PT0gJ21zZXQnKSB7XG5cdFx0XHRjb25zdCBkZXNjID0gcmVhZFZlcnNpb25BbmREZXNjcmlwdG9yKHJlYWRlcik7XG5cdFx0XHRsb2dEZXZGZWF0dXJlcyAmJiBjb25zb2xlLmxvZygnbXNldCcsIGRlc2MpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRsb2dNaXNzaW5nRmVhdHVyZXMgJiYgY29uc29sZS5sb2coJ1VuaGFuZGxlZCBrZXkgaW4gIzQwMDEnLCBrZXkpO1xuXHRcdH1cblx0fSxcblx0KHdyaXRlciwgdGFyZ2V0KSA9PiB7XG5cdFx0d3JpdGVCeXRlcyh3cml0ZXIsICh0YXJnZXQgYXMgYW55KS5faXI0MDAxKTtcblx0fSxcbik7XG4iXSwic291cmNlUm9vdCI6IkQ6XFxQcm9qZWN0c1xcZ2l0aHViXFxhZy1wc2RcXHNyYyJ9
|