ag-psd 14.3.11 → 14.4.0
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 +7 -0
- package/README.md +12 -2
- package/README_PSD.md +729 -0
- package/TODO +4 -0
- package/dist/abr.js +45 -45
- package/dist/additionalInfo.js +638 -620
- package/dist/bundle.js +1294 -1237
- package/dist/csh.js +14 -14
- package/dist/descriptor.d.ts +7 -3
- package/dist/descriptor.js +119 -114
- package/dist/effectsHelpers.js +160 -140
- package/dist/engineData.js +4 -4
- package/dist/helpers.js +11 -11
- package/dist/imageResources.js +175 -170
- package/dist/index.js +15 -11
- package/dist/initializeCanvas.js +14 -6
- package/dist/jpeg.d.ts +1 -0
- package/dist/jpeg.js +1023 -0
- package/dist/psd.d.ts +3 -0
- package/dist/psd.js +1 -1
- package/dist/psdReader.js +77 -72
- package/dist/psdWriter.js +45 -45
- package/dist/text.js +2 -2
- package/dist/utf8.js +2 -2
- package/dist-es/abr.js +4 -4
- package/dist-es/additionalInfo.js +36 -18
- package/dist-es/descriptor.d.ts +7 -3
- package/dist-es/descriptor.js +30 -25
- package/dist-es/effectsHelpers.js +40 -20
- package/dist-es/engineData.js +4 -4
- package/dist-es/helpers.js +9 -9
- package/dist-es/imageResources.js +15 -10
- package/dist-es/initializeCanvas.js +14 -6
- package/dist-es/jpeg.d.ts +1 -0
- package/dist-es/jpeg.js +1019 -0
- package/dist-es/psd.d.ts +3 -0
- package/dist-es/psd.js +1 -1
- package/dist-es/psdReader.js +65 -60
- package/dist-es/psdWriter.js +34 -34
- package/dist-es/text.js +2 -2
- package/dist-es/utf8.js +2 -2
- package/package.json +4 -4
- package/tsconfig.json +1 -0
package/dist/engineData.js
CHANGED
|
@@ -83,7 +83,7 @@ function parseEngineData(data) {
|
|
|
83
83
|
pushValue(null);
|
|
84
84
|
}
|
|
85
85
|
else {
|
|
86
|
-
pushValue("/"
|
|
86
|
+
pushValue("/".concat(name));
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
else if (top && typeof top === 'object') {
|
|
@@ -156,7 +156,7 @@ function parseEngineData(data) {
|
|
|
156
156
|
}
|
|
157
157
|
else {
|
|
158
158
|
index += 1;
|
|
159
|
-
console.log("Invalid token "
|
|
159
|
+
console.log("Invalid token ".concat(String.fromCharCode(char), " at ").concat(index));
|
|
160
160
|
// ` near ${String.fromCharCode.apply(null, data.slice(index - 10, index + 20) as any)}` +
|
|
161
161
|
// `data [${Array.from(data.slice(index - 10, index + 20)).join(', ')}]`
|
|
162
162
|
}
|
|
@@ -204,7 +204,7 @@ function serializeEngineData(data, condensed) {
|
|
|
204
204
|
}
|
|
205
205
|
function writeProperty(key, value) {
|
|
206
206
|
writeIndent();
|
|
207
|
-
writeString("/"
|
|
207
|
+
writeString("/".concat(key));
|
|
208
208
|
writeValue(value, key, true);
|
|
209
209
|
if (!condensed)
|
|
210
210
|
writeString('\n');
|
|
@@ -335,4 +335,4 @@ function serializeEngineData(data, condensed) {
|
|
|
335
335
|
}
|
|
336
336
|
exports.serializeEngineData = serializeEngineData;
|
|
337
337
|
|
|
338
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,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Q0FBQyxTQUFTO2dCQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVsQyxNQUFNLEVBQUUsQ0FBQztZQUVULEtBQWtCLFVBQWMsRUFBZCxLQUFBLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBZCxjQUFjLEVBQWQsSUFBYyxFQUFFO2dCQUE3QixJQUFNLEtBQUcsU0FBQTtnQkFDYixhQUFhLENBQUMsS0FBRyxFQUFFLEtBQUssQ0FBQyxLQUFHLENBQUMsQ0FBQyxDQUFDO2FBQy9CO1lBRUQsTUFBTSxFQUFFLENBQUM7WUFDVCxXQUFXLEVBQUUsQ0FBQztZQUNkLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsQjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLFNBQVMsRUFBRTtRQUNkLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzdCLEtBQWtCLFVBQWEsRUFBYixLQUFBLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBYixjQUFhLEVBQWIsSUFBYSxFQUFFO2dCQUE1QixJQUFNLEdBQUcsU0FBQTtnQkFDYixhQUFhLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzlCO1NBQ0Q7S0FDRDtTQUFNO1FBQ04sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNqQjtJQUVELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQTNLRCxrREEyS0MiLCJmaWxlIjoiZW5naW5lRGF0YS5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGlzV2hpdGVzcGFjZShjaGFyOiBudW1iZXIpIHtcclxuXHQvLyAnICcsICdcXG4nLCAnXFxyJywgJ1xcdCdcclxuXHRyZXR1cm4gY2hhciA9PT0gMzIgfHwgY2hhciA9PT0gMTAgfHwgY2hhciA9PT0gMTMgfHwgY2hhciA9PT0gOTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNOdW1iZXIoY2hhcjogbnVtYmVyKSB7XHJcblx0Ly8gMDEyMzQ1Njc4OS4tXHJcblx0cmV0dXJuIChjaGFyID49IDQ4ICYmIGNoYXIgPD0gNTcpIHx8IGNoYXIgPT09IDQ2IHx8IGNoYXIgPT09IDQ1O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VFbmdpbmVEYXRhKGRhdGE6IG51bWJlcltdIHwgVWludDhBcnJheSkge1xyXG5cdGxldCBpbmRleCA9IDA7XHJcblxyXG5cdGZ1bmN0aW9uIHNraXBXaGl0ZXNwYWNlKCkge1xyXG5cdFx0d2hpbGUgKGluZGV4IDwgZGF0YS5sZW5ndGggJiYgaXNXaGl0ZXNwYWNlKGRhdGFbaW5kZXhdKSkge1xyXG5cdFx0XHRpbmRleCsrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZ2V0VGV4dEJ5dGUoKSB7XHJcblx0XHRsZXQgYnl0ZSA9IGRhdGFbaW5kZXhdO1xyXG5cdFx0aW5kZXgrKztcclxuXHJcblx0XHRpZiAoYnl0ZSA9PT0gOTIpIHsgLy8gXFxcclxuXHRcdFx0Ynl0ZSA9IGRhdGFbaW5kZXhdO1xyXG5cdFx0XHRpbmRleCsrO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBieXRlO1xyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZ2V0VGV4dCgpIHtcclxuXHRcdGxldCByZXN1bHQgPSAnJztcclxuXHJcblx0XHRpZiAoZGF0YVtpbmRleF0gPT09IDQxKSB7IC8vIClcclxuXHRcdFx0aW5kZXgrKztcclxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBTdHJpbmdzIHN0YXJ0IHdpdGggdXRmLTE2IEJPTVxyXG5cdFx0aWYgKGRhdGFbaW5kZXhdICE9PSAweEZFIHx8IGRhdGFbaW5kZXggKyAxXSAhPT0gMHhGRikge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdXRmLTE2IEJPTScpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGluZGV4ICs9IDI7XHJcblxyXG5cdFx0Ly8gKSwgKCBhbmQgXFwgY2hhcmFjdGVycyBhcmUgZXNjYXBlZCBpbiBhc2NpaSBtYW5uZXIsIHJlbW92ZSB0aGUgZXNjYXBlcyBiZWZvcmUgaW50ZXJwcmV0aW5nXHJcblx0XHQvLyB0aGUgYnl0ZXMgYXMgdXRmLTE2XHJcblx0XHR3aGlsZSAoaW5kZXggPCBkYXRhLmxlbmd0aCAmJiBkYXRhW2luZGV4XSAhPT0gNDEpIHsgLy8gKVxyXG5cdFx0XHRjb25zdCBoaWdoID0gZ2V0VGV4dEJ5dGUoKTtcclxuXHRcdFx0Y29uc3QgbG93ID0gZ2V0VGV4dEJ5dGUoKTtcclxuXHRcdFx0Y29uc3QgY2hhciA9IChoaWdoIDw8IDgpIHwgbG93O1xyXG5cdFx0XHRyZXN1bHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjaGFyKTtcclxuXHRcdH1cclxuXHJcblx0XHRpbmRleCsrO1xyXG5cdFx0cmV0dXJuIHJlc3VsdDtcclxuXHR9XHJcblxyXG5cdGxldCByb290OiBhbnkgPSBudWxsO1xyXG5cdGNvbnN0IHN0YWNrOiBhbnlbXSA9IFtdO1xyXG5cclxuXHRmdW5jdGlvbiBwdXNoQ29udGFpbmVyKHZhbHVlOiBhbnkpIHtcclxuXHRcdGlmICghc3RhY2subGVuZ3RoKSB7XHJcblx0XHRcdHN0YWNrLnB1c2godmFsdWUpO1xyXG5cdFx0XHRyb290ID0gdmFsdWU7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRwdXNoVmFsdWUodmFsdWUpO1xyXG5cdFx0XHRzdGFjay5wdXNoKHZhbHVlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIHB1c2hWYWx1ZSh2YWx1ZTogYW55KSB7XHJcblx0XHRpZiAoIXN0YWNrLmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGEnKTtcclxuXHJcblx0XHRjb25zdCB0b3AgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcclxuXHJcblx0XHRpZiAodHlwZW9mIHRvcCA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0c3RhY2tbc3RhY2subGVuZ3RoIC0gMl1bdG9wXSA9IHZhbHVlO1xyXG5cdFx0XHRwb3AoKTtcclxuXHRcdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0b3ApKSB7XHJcblx0XHRcdHRvcC5wdXNoKHZhbHVlKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRhJyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBwdXNoUHJvcGVydHkobmFtZTogc3RyaW5nKSB7XHJcblx0XHRpZiAoIXN0YWNrLmxlbmd0aCkgcHVzaENvbnRhaW5lcih7fSk7XHJcblxyXG5cdFx0Y29uc3QgdG9wID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XHJcblxyXG5cdFx0aWYgKHRvcCAmJiB0eXBlb2YgdG9wID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRpZiAobmFtZSA9PT0gJ25pbCcpIHtcclxuXHRcdFx0XHRwdXNoVmFsdWUobnVsbCk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0cHVzaFZhbHVlKGAvJHtuYW1lfWApO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2UgaWYgKHRvcCAmJiB0eXBlb2YgdG9wID09PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRzdGFjay5wdXNoKG5hbWUpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGEnKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIHBvcCgpIHtcclxuXHRcdGlmICghc3RhY2subGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0YScpO1xyXG5cdFx0c3RhY2sucG9wKCk7XHJcblx0fVxyXG5cclxuXHRza2lwV2hpdGVzcGFjZSgpO1xyXG5cclxuXHR3aGlsZSAoaW5kZXggPCBkYXRhLmxlbmd0aCkge1xyXG5cdFx0Y29uc3QgaSA9IGluZGV4O1xyXG5cdFx0Y29uc3QgY2hhciA9IGRhdGFbaV07XHJcblxyXG5cdFx0aWYgKGNoYXIgPT09IDYwICYmIGRhdGFbaSArIDFdID09PSA2MCkgeyAvLyA8PFxyXG5cdFx0XHRpbmRleCArPSAyO1xyXG5cdFx0XHRwdXNoQ29udGFpbmVyKHt9KTtcclxuXHRcdH0gZWxzZSBpZiAoY2hhciA9PT0gNjIgJiYgZGF0YVtpICsgMV0gPT09IDYyKSB7IC8vID4+XHJcblx0XHRcdGluZGV4ICs9IDI7XHJcblx0XHRcdHBvcCgpO1xyXG5cdFx0fSBlbHNlIGlmIChjaGFyID09PSA0NykgeyAvLyAvXHJcblx0XHRcdGluZGV4ICs9IDE7XHJcblx0XHRcdGNvbnN0IHN0YXJ0ID0gaW5kZXg7XHJcblxyXG5cdFx0XHR3aGlsZSAoaW5kZXggPCBkYXRhLmxlbmd0aCAmJiAhaXNXaGl0ZXNwYWNlKGRhdGFbaW5kZXhdKSkge1xyXG5cdFx0XHRcdGluZGV4Kys7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGxldCBuYW1lID0gJyc7XHJcblxyXG5cdFx0XHRmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBpbmRleDsgaSsrKSB7XHJcblx0XHRcdFx0bmFtZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGRhdGFbaV0pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRwdXNoUHJvcGVydHkobmFtZSk7XHJcblx0XHR9IGVsc2UgaWYgKGNoYXIgPT09IDQwKSB7IC8vIChcclxuXHRcdFx0aW5kZXggKz0gMTtcclxuXHRcdFx0cHVzaFZhbHVlKGdldFRleHQoKSk7XHJcblx0XHR9IGVsc2UgaWYgKGNoYXIgPT09IDkxKSB7IC8vIFtcclxuXHRcdFx0aW5kZXggKz0gMTtcclxuXHRcdFx0cHVzaENvbnRhaW5lcihbXSk7XHJcblx0XHR9IGVsc2UgaWYgKGNoYXIgPT09IDkzKSB7IC8vIF1cclxuXHRcdFx0aW5kZXggKz0gMTtcclxuXHRcdFx0cG9wKCk7XHJcblx0XHR9IGVsc2UgaWYgKGNoYXIgPT09IDExMCAmJiBkYXRhW2kgKyAxXSA9PT0gMTE3ICYmIGRhdGFbaSArIDJdID09PSAxMDggJiYgZGF0YVtpICsgM10gPT09IDEwOCkgeyAvLyBudWxsXHJcblx0XHRcdGluZGV4ICs9IDQ7XHJcblx0XHRcdHB1c2hWYWx1ZShudWxsKTtcclxuXHRcdH0gZWxzZSBpZiAoY2hhciA9PT0gMTE2ICYmIGRhdGFbaSArIDFdID09PSAxMTQgJiYgZGF0YVtpICsgMl0gPT09IDExNyAmJiBkYXRhW2kgKyAzXSA9PT0gMTAxKSB7IC8vIHRydWVcclxuXHRcdFx0aW5kZXggKz0gNDtcclxuXHRcdFx0cHVzaFZhbHVlKHRydWUpO1xyXG5cdFx0fSBlbHNlIGlmIChjaGFyID09PSAxMDIgJiYgZGF0YVtpICsgMV0gPT09IDk3ICYmIGRhdGFbaSArIDJdID09PSAxMDggJiYgZGF0YVtpICsgM10gPT09IDExNSAmJiBkYXRhW2kgKyA0XSA9PT0gMTAxKSB7IC8vIGZhbHNlXHJcblx0XHRcdGluZGV4ICs9IDU7XHJcblx0XHRcdHB1c2hWYWx1ZShmYWxzZSk7XHJcblx0XHR9IGVsc2UgaWYgKGlzTnVtYmVyKGNoYXIpKSB7XHJcblx0XHRcdGxldCB2YWx1ZSA9ICcnO1xyXG5cclxuXHRcdFx0d2hpbGUgKGluZGV4IDwgZGF0YS5sZW5ndGggJiYgaXNOdW1iZXIoZGF0YVtpbmRleF0pKSB7XHJcblx0XHRcdFx0dmFsdWUgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShkYXRhW2luZGV4XSk7XHJcblx0XHRcdFx0aW5kZXgrKztcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cHVzaFZhbHVlKHBhcnNlRmxvYXQodmFsdWUpKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGluZGV4ICs9IDE7XHJcblx0XHRcdGNvbnNvbGUubG9nKGBJbnZhbGlkIHRva2VuICR7U3RyaW5nLmZyb21DaGFyQ29kZShjaGFyKX0gYXQgJHtpbmRleH1gKTtcclxuXHRcdFx0Ly8gYCBuZWFyICR7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBkYXRhLnNsaWNlKGluZGV4IC0gMTAsIGluZGV4ICsgMjApIGFzIGFueSl9YCArXHJcblx0XHRcdC8vIGBkYXRhIFske0FycmF5LmZyb20oZGF0YS5zbGljZShpbmRleCAtIDEwLCBpbmRleCArIDIwKSkuam9pbignLCAnKX1dYFxyXG5cdFx0fVxyXG5cclxuXHRcdHNraXBXaGl0ZXNwYWNlKCk7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gcm9vdDtcclxufVxyXG5cclxuY29uc3QgZmxvYXRLZXlzID0gW1xyXG5cdCdBeGlzJywgJ1hZJywgJ1pvbmUnLCAnV29yZFNwYWNpbmcnLCAnRmlyc3RMaW5lSW5kZW50JywgJ0dseXBoU3BhY2luZycsICdTdGFydEluZGVudCcsICdFbmRJbmRlbnQnLCAnU3BhY2VCZWZvcmUnLFxyXG5cdCdTcGFjZUFmdGVyJywgJ0xldHRlclNwYWNpbmcnLCAnVmFsdWVzJywgJ0dyaWRTaXplJywgJ0dyaWRMZWFkaW5nJywgJ1BvaW50QmFzZScsICdCb3hCb3VuZHMnLCAnVHJhbnNmb3JtUG9pbnQwJywgJ1RyYW5zZm9ybVBvaW50MScsXHJcblx0J1RyYW5zZm9ybVBvaW50MicsICdGb250U2l6ZScsICdMZWFkaW5nJywgJ0hvcml6b250YWxTY2FsZScsICdWZXJ0aWNhbFNjYWxlJywgJ0Jhc2VsaW5lU2hpZnQnLCAnVHN1bWUnLFxyXG5cdCdPdXRsaW5lV2lkdGgnLCAnQXV0b0xlYWRpbmcnLFxyXG5dO1xyXG5cclxuY29uc3QgaW50QXJyYXlzID0gWydSdW5MZW5ndGhBcnJheSddO1xyXG5cclxuLy8gVE9ETzogaGFuZGxlIC9uaWxcclxuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZUVuZ2luZURhdGEoZGF0YTogYW55LCBjb25kZW5zZWQgPSBmYWxzZSkge1xyXG5cdGxldCBidWZmZXIgPSBuZXcgVWludDhBcnJheSgxMDI0KTtcclxuXHRsZXQgb2Zmc2V0ID0gMDtcclxuXHRsZXQgaW5kZW50ID0gMDtcclxuXHJcblx0ZnVuY3Rpb24gd3JpdGUodmFsdWU6IG51bWJlcikge1xyXG5cdFx0aWYgKG9mZnNldCA+PSBidWZmZXIubGVuZ3RoKSB7XHJcblx0XHRcdGNvbnN0IG5ld0J1ZmZlciA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlci5sZW5ndGggKiAyKTtcclxuXHRcdFx0bmV3QnVmZmVyLnNldChidWZmZXIpO1xyXG5cdFx0XHRidWZmZXIgPSBuZXdCdWZmZXI7XHJcblx0XHR9XHJcblxyXG5cdFx0YnVmZmVyW29mZnNldF0gPSB2YWx1ZTtcclxuXHRcdG9mZnNldCsrO1xyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gd3JpdGVTdHJpbmcodmFsdWU6IHN0cmluZykge1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHR3cml0ZSh2YWx1ZS5jaGFyQ29kZUF0KGkpKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIHdyaXRlSW5kZW50KCkge1xyXG5cdFx0aWYgKGNvbmRlbnNlZCkge1xyXG5cdFx0XHR3cml0ZVN0cmluZygnICcpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBpbmRlbnQ7IGkrKykge1xyXG5cdFx0XHRcdHdyaXRlU3RyaW5nKCdcXHQnKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gd3JpdGVQcm9wZXJ0eShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG5cdFx0d3JpdGVJbmRlbnQoKTtcclxuXHRcdHdyaXRlU3RyaW5nKGAvJHtrZXl9YCk7XHJcblx0XHR3cml0ZVZhbHVlKHZhbHVlLCBrZXksIHRydWUpO1xyXG5cdFx0aWYgKCFjb25kZW5zZWQpIHdyaXRlU3RyaW5nKCdcXG4nKTtcclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIHNlcmlhbGl6ZUludCh2YWx1ZTogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIHNlcmlhbGl6ZUZsb2F0KHZhbHVlOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiB2YWx1ZS50b0ZpeGVkKDUpXHJcblx0XHRcdC5yZXBsYWNlKC8oXFxkKTArJC9nLCAnJDEnKVxyXG5cdFx0XHQucmVwbGFjZSgvXjArXFwuKFsxLTldKS9nLCAnLiQxJylcclxuXHRcdFx0LnJlcGxhY2UoL14tMCtcXC4wKFxcZCkvZywgJy0uMCQxJyk7XHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBzZXJpYWxpemVOdW1iZXIodmFsdWU6IG51bWJlciwga2V5Pzogc3RyaW5nKSB7XHJcblx0XHRjb25zdCBpc0Zsb2F0ID0gKGtleSAmJiBmbG9hdEtleXMuaW5kZXhPZihrZXkpICE9PSAtMSkgfHwgKHZhbHVlIHwgMCkgIT09IHZhbHVlO1xyXG5cdFx0cmV0dXJuIGlzRmxvYXQgPyBzZXJpYWxpemVGbG9hdCh2YWx1ZSkgOiBzZXJpYWxpemVJbnQodmFsdWUpO1xyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZ2V0S2V5cyh2YWx1ZTogYW55KSB7XHJcblx0XHRjb25zdCBrZXlzID0gT2JqZWN0LmtleXModmFsdWUpO1xyXG5cclxuXHRcdGlmIChrZXlzLmluZGV4T2YoJzk4JykgIT09IC0xKVxyXG5cdFx0XHRrZXlzLnVuc2hpZnQoLi4ua2V5cy5zcGxpY2Uoa2V5cy5pbmRleE9mKCc5OScpLCAxKSk7XHJcblxyXG5cdFx0aWYgKGtleXMuaW5kZXhPZignOTknKSAhPT0gLTEpXHJcblx0XHRcdGtleXMudW5zaGlmdCguLi5rZXlzLnNwbGljZShrZXlzLmluZGV4T2YoJzk5JyksIDEpKTtcclxuXHJcblx0XHRyZXR1cm4ga2V5cztcclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIHdyaXRlU3RyaW5nQnl0ZSh2YWx1ZTogbnVtYmVyKSB7XHJcblx0XHRpZiAodmFsdWUgPT09IDQwIHx8IHZhbHVlID09PSA0MSB8fCB2YWx1ZSA9PT0gOTIpIHsgLy8gKCApIFxcXHJcblx0XHRcdHdyaXRlKDkyKTsgLy8gXFxcclxuXHRcdH1cclxuXHJcblx0XHR3cml0ZSh2YWx1ZSk7XHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiB3cml0ZVZhbHVlKHZhbHVlOiBhbnksIGtleT86IHN0cmluZywgaW5Qcm9wZXJ0eSA9IGZhbHNlKSB7XHJcblx0XHRmdW5jdGlvbiB3cml0ZVByZWZpeCgpIHtcclxuXHRcdFx0aWYgKGluUHJvcGVydHkpIHtcclxuXHRcdFx0XHR3cml0ZVN0cmluZygnICcpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHdyaXRlSW5kZW50KCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAodmFsdWUgPT09IG51bGwpIHtcclxuXHRcdFx0d3JpdGVQcmVmaXgoKTtcclxuXHRcdFx0d3JpdGVTdHJpbmcoY29uZGVuc2VkID8gJy9uaWwnIDogJ251bGwnKTtcclxuXHRcdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xyXG5cdFx0XHR3cml0ZVByZWZpeCgpO1xyXG5cdFx0XHR3cml0ZVN0cmluZyhzZXJpYWxpemVOdW1iZXIodmFsdWUsIGtleSkpO1xyXG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xyXG5cdFx0XHR3cml0ZVByZWZpeCgpO1xyXG5cdFx0XHR3cml0ZVN0cmluZyh2YWx1ZSA/ICd0cnVlJyA6ICdmYWxzZScpO1xyXG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdHdyaXRlUHJlZml4KCk7XHJcblxyXG5cdFx0XHRpZiAoKGtleSA9PT0gJzk5JyB8fCBrZXkgPT09ICc5OCcpICYmIHZhbHVlLmNoYXJBdCgwKSA9PT0gJy8nKSB7XHJcblx0XHRcdFx0d3JpdGVTdHJpbmcodmFsdWUpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHdyaXRlU3RyaW5nKCcoJyk7XHJcblx0XHRcdFx0d3JpdGUoMHhmZSk7XHJcblx0XHRcdFx0d3JpdGUoMHhmZik7XHJcblxyXG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdGNvbnN0IGNvZGUgPSB2YWx1ZS5jaGFyQ29kZUF0KGkpO1xyXG5cdFx0XHRcdFx0d3JpdGVTdHJpbmdCeXRlKChjb2RlID4+IDgpICYgMHhmZik7XHJcblx0XHRcdFx0XHR3cml0ZVN0cmluZ0J5dGUoY29kZSAmIDB4ZmYpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0d3JpdGVTdHJpbmcoJyknKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG5cdFx0XHR3cml0ZVByZWZpeCgpO1xyXG5cclxuXHRcdFx0aWYgKHZhbHVlLmV2ZXJ5KHggPT4gdHlwZW9mIHggPT09ICdudW1iZXInKSkge1xyXG5cdFx0XHRcdHdyaXRlU3RyaW5nKCdbJyk7XHJcblxyXG5cdFx0XHRcdGNvbnN0IGludEFycmF5ID0gaW50QXJyYXlzLmluZGV4T2Yoa2V5ISkgIT09IC0xO1xyXG5cclxuXHRcdFx0XHRmb3IgKGNvbnN0IHggb2YgdmFsdWUpIHtcclxuXHRcdFx0XHRcdHdyaXRlU3RyaW5nKCcgJyk7XHJcblx0XHRcdFx0XHR3cml0ZVN0cmluZyhpbnRBcnJheSA/IHNlcmlhbGl6ZU51bWJlcih4KSA6IHNlcmlhbGl6ZUZsb2F0KHgpKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHdyaXRlU3RyaW5nKCcgXScpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHdyaXRlU3RyaW5nKCdbJyk7XHJcblx0XHRcdFx0aWYgKCFjb25kZW5zZWQpIHdyaXRlU3RyaW5nKCdcXG4nKTtcclxuXHJcblx0XHRcdFx0Zm9yIChjb25zdCB4IG9mIHZhbHVlKSB7XHJcblx0XHRcdFx0XHR3cml0ZVZhbHVlKHgsIGtleSk7XHJcblx0XHRcdFx0XHRpZiAoIWNvbmRlbnNlZCkgd3JpdGVTdHJpbmcoJ1xcbicpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0d3JpdGVJbmRlbnQoKTtcclxuXHRcdFx0XHR3cml0ZVN0cmluZygnXScpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcclxuXHRcdFx0aWYgKGluUHJvcGVydHkgJiYgIWNvbmRlbnNlZCkgd3JpdGVTdHJpbmcoJ1xcbicpO1xyXG5cclxuXHRcdFx0d3JpdGVJbmRlbnQoKTtcclxuXHRcdFx0d3JpdGVTdHJpbmcoJzw8Jyk7XHJcblxyXG5cdFx0XHRpZiAoIWNvbmRlbnNlZCkgd3JpdGVTdHJpbmcoJ1xcbicpO1xyXG5cclxuXHRcdFx0aW5kZW50Kys7XHJcblxyXG5cdFx0XHRmb3IgKGNvbnN0IGtleSBvZiBnZXRLZXlzKHZhbHVlKSkge1xyXG5cdFx0XHRcdHdyaXRlUHJvcGVydHkoa2V5LCB2YWx1ZVtrZXldKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aW5kZW50LS07XHJcblx0XHRcdHdyaXRlSW5kZW50KCk7XHJcblx0XHRcdHdyaXRlU3RyaW5nKCc+PicpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB1bmRlZmluZWQ7XHJcblx0fVxyXG5cclxuXHRpZiAoY29uZGVuc2VkKSB7XHJcblx0XHRpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XHJcblx0XHRcdGZvciAoY29uc3Qga2V5IG9mIGdldEtleXMoZGF0YSkpIHtcclxuXHRcdFx0XHR3cml0ZVByb3BlcnR5KGtleSwgZGF0YVtrZXldKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0gZWxzZSB7XHJcblx0XHR3cml0ZVN0cmluZygnXFxuXFxuJyk7XHJcblx0XHR3cml0ZVZhbHVlKGRhdGEpO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIGJ1ZmZlci5zbGljZSgwLCBvZmZzZXQpO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiQzpcXFByb2plY3RzXFxnaXRodWJcXGFnLXBzZFxcc3JjIn0=
|
|
338
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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Q0FBQztZQUVsQixJQUFJLENBQUMsU0FBUztnQkFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFbEMsTUFBTSxFQUFFLENBQUM7WUFFVCxLQUFrQixVQUFjLEVBQWQsS0FBQSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQWQsY0FBYyxFQUFkLElBQWMsRUFBRTtnQkFBN0IsSUFBTSxLQUFHLFNBQUE7Z0JBQ2IsYUFBYSxDQUFDLEtBQUcsRUFBRSxLQUFLLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQzthQUMvQjtZQUVELE1BQU0sRUFBRSxDQUFDO1lBQ1QsV0FBVyxFQUFFLENBQUM7WUFDZCxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEI7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxTQUFTLEVBQUU7UUFDZCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUM3QixLQUFrQixVQUFhLEVBQWIsS0FBQSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQWIsY0FBYSxFQUFiLElBQWEsRUFBRTtnQkFBNUIsSUFBTSxHQUFHLFNBQUE7Z0JBQ2IsYUFBYSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM5QjtTQUNEO0tBQ0Q7U0FBTTtRQUNOLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakI7SUFFRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUEzS0Qsa0RBMktDIiwiZmlsZSI6ImVuZ2luZURhdGEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpc1doaXRlc3BhY2UoY2hhcjogbnVtYmVyKSB7XHJcblx0Ly8gJyAnLCAnXFxuJywgJ1xccicsICdcXHQnXHJcblx0cmV0dXJuIGNoYXIgPT09IDMyIHx8IGNoYXIgPT09IDEwIHx8IGNoYXIgPT09IDEzIHx8IGNoYXIgPT09IDk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzTnVtYmVyKGNoYXI6IG51bWJlcikge1xyXG5cdC8vIDAxMjM0NTY3ODkuLVxyXG5cdHJldHVybiAoY2hhciA+PSA0OCAmJiBjaGFyIDw9IDU3KSB8fCBjaGFyID09PSA0NiB8fCBjaGFyID09PSA0NTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRW5naW5lRGF0YShkYXRhOiBudW1iZXJbXSB8IFVpbnQ4QXJyYXkpIHtcclxuXHRsZXQgaW5kZXggPSAwO1xyXG5cclxuXHRmdW5jdGlvbiBza2lwV2hpdGVzcGFjZSgpIHtcclxuXHRcdHdoaWxlIChpbmRleCA8IGRhdGEubGVuZ3RoICYmIGlzV2hpdGVzcGFjZShkYXRhW2luZGV4XSkpIHtcclxuXHRcdFx0aW5kZXgrKztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIGdldFRleHRCeXRlKCkge1xyXG5cdFx0bGV0IGJ5dGUgPSBkYXRhW2luZGV4XTtcclxuXHRcdGluZGV4Kys7XHJcblxyXG5cdFx0aWYgKGJ5dGUgPT09IDkyKSB7IC8vIFxcXHJcblx0XHRcdGJ5dGUgPSBkYXRhW2luZGV4XTtcclxuXHRcdFx0aW5kZXgrKztcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gYnl0ZTtcclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIGdldFRleHQoKSB7XHJcblx0XHRsZXQgcmVzdWx0ID0gJyc7XHJcblxyXG5cdFx0aWYgKGRhdGFbaW5kZXhdID09PSA0MSkgeyAvLyApXHJcblx0XHRcdGluZGV4Kys7XHJcblx0XHRcdHJldHVybiByZXN1bHQ7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gU3RyaW5ncyBzdGFydCB3aXRoIHV0Zi0xNiBCT01cclxuXHRcdGlmIChkYXRhW2luZGV4XSAhPT0gMHhGRSB8fCBkYXRhW2luZGV4ICsgMV0gIT09IDB4RkYpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHV0Zi0xNiBCT00nKTtcclxuXHRcdH1cclxuXHJcblx0XHRpbmRleCArPSAyO1xyXG5cclxuXHRcdC8vICksICggYW5kIFxcIGNoYXJhY3RlcnMgYXJlIGVzY2FwZWQgaW4gYXNjaWkgbWFubmVyLCByZW1vdmUgdGhlIGVzY2FwZXMgYmVmb3JlIGludGVycHJldGluZ1xyXG5cdFx0Ly8gdGhlIGJ5dGVzIGFzIHV0Zi0xNlxyXG5cdFx0d2hpbGUgKGluZGV4IDwgZGF0YS5sZW5ndGggJiYgZGF0YVtpbmRleF0gIT09IDQxKSB7IC8vIClcclxuXHRcdFx0Y29uc3QgaGlnaCA9IGdldFRleHRCeXRlKCk7XHJcblx0XHRcdGNvbnN0IGxvdyA9IGdldFRleHRCeXRlKCk7XHJcblx0XHRcdGNvbnN0IGNoYXIgPSAoaGlnaCA8PCA4KSB8IGxvdztcclxuXHRcdFx0cmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY2hhcik7XHJcblx0XHR9XHJcblxyXG5cdFx0aW5kZXgrKztcclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHRsZXQgcm9vdDogYW55ID0gbnVsbDtcclxuXHRjb25zdCBzdGFjazogYW55W10gPSBbXTtcclxuXHJcblx0ZnVuY3Rpb24gcHVzaENvbnRhaW5lcih2YWx1ZTogYW55KSB7XHJcblx0XHRpZiAoIXN0YWNrLmxlbmd0aCkge1xyXG5cdFx0XHRzdGFjay5wdXNoKHZhbHVlKTtcclxuXHRcdFx0cm9vdCA9IHZhbHVlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cHVzaFZhbHVlKHZhbHVlKTtcclxuXHRcdFx0c3RhY2sucHVzaCh2YWx1ZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBwdXNoVmFsdWUodmFsdWU6IGFueSkge1xyXG5cdFx0aWYgKCFzdGFjay5sZW5ndGgpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRhJyk7XHJcblxyXG5cdFx0Y29uc3QgdG9wID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XHJcblxyXG5cdFx0aWYgKHR5cGVvZiB0b3AgPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdHN0YWNrW3N0YWNrLmxlbmd0aCAtIDJdW3RvcF0gPSB2YWx1ZTtcclxuXHRcdFx0cG9wKCk7XHJcblx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodG9wKSkge1xyXG5cdFx0XHR0b3AucHVzaCh2YWx1ZSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0YScpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gcHVzaFByb3BlcnR5KG5hbWU6IHN0cmluZykge1xyXG5cdFx0aWYgKCFzdGFjay5sZW5ndGgpIHB1c2hDb250YWluZXIoe30pO1xyXG5cclxuXHRcdGNvbnN0IHRvcCA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xyXG5cclxuXHRcdGlmICh0b3AgJiYgdHlwZW9mIHRvcCA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0aWYgKG5hbWUgPT09ICduaWwnKSB7XHJcblx0XHRcdFx0cHVzaFZhbHVlKG51bGwpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHB1c2hWYWx1ZShgLyR7bmFtZX1gKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIGlmICh0b3AgJiYgdHlwZW9mIHRvcCA9PT0gJ29iamVjdCcpIHtcclxuXHRcdFx0c3RhY2sucHVzaChuYW1lKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRhJyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBwb3AoKSB7XHJcblx0XHRpZiAoIXN0YWNrLmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGEnKTtcclxuXHRcdHN0YWNrLnBvcCgpO1xyXG5cdH1cclxuXHJcblx0c2tpcFdoaXRlc3BhY2UoKTtcclxuXHJcblx0d2hpbGUgKGluZGV4IDwgZGF0YS5sZW5ndGgpIHtcclxuXHRcdGNvbnN0IGkgPSBpbmRleDtcclxuXHRcdGNvbnN0IGNoYXIgPSBkYXRhW2ldO1xyXG5cclxuXHRcdGlmIChjaGFyID09PSA2MCAmJiBkYXRhW2kgKyAxXSA9PT0gNjApIHsgLy8gPDxcclxuXHRcdFx0aW5kZXggKz0gMjtcclxuXHRcdFx0cHVzaENvbnRhaW5lcih7fSk7XHJcblx0XHR9IGVsc2UgaWYgKGNoYXIgPT09IDYyICYmIGRhdGFbaSArIDFdID09PSA2MikgeyAvLyA+PlxyXG5cdFx0XHRpbmRleCArPSAyO1xyXG5cdFx0XHRwb3AoKTtcclxuXHRcdH0gZWxzZSBpZiAoY2hhciA9PT0gNDcpIHsgLy8gL1xyXG5cdFx0XHRpbmRleCArPSAxO1xyXG5cdFx0XHRjb25zdCBzdGFydCA9IGluZGV4O1xyXG5cclxuXHRcdFx0d2hpbGUgKGluZGV4IDwgZGF0YS5sZW5ndGggJiYgIWlzV2hpdGVzcGFjZShkYXRhW2luZGV4XSkpIHtcclxuXHRcdFx0XHRpbmRleCsrO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRsZXQgbmFtZSA9ICcnO1xyXG5cclxuXHRcdFx0Zm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgaW5kZXg7IGkrKykge1xyXG5cdFx0XHRcdG5hbWUgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShkYXRhW2ldKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cHVzaFByb3BlcnR5KG5hbWUpO1xyXG5cdFx0fSBlbHNlIGlmIChjaGFyID09PSA0MCkgeyAvLyAoXHJcblx0XHRcdGluZGV4ICs9IDE7XHJcblx0XHRcdHB1c2hWYWx1ZShnZXRUZXh0KCkpO1xyXG5cdFx0fSBlbHNlIGlmIChjaGFyID09PSA5MSkgeyAvLyBbXHJcblx0XHRcdGluZGV4ICs9IDE7XHJcblx0XHRcdHB1c2hDb250YWluZXIoW10pO1xyXG5cdFx0fSBlbHNlIGlmIChjaGFyID09PSA5MykgeyAvLyBdXHJcblx0XHRcdGluZGV4ICs9IDE7XHJcblx0XHRcdHBvcCgpO1xyXG5cdFx0fSBlbHNlIGlmIChjaGFyID09PSAxMTAgJiYgZGF0YVtpICsgMV0gPT09IDExNyAmJiBkYXRhW2kgKyAyXSA9PT0gMTA4ICYmIGRhdGFbaSArIDNdID09PSAxMDgpIHsgLy8gbnVsbFxyXG5cdFx0XHRpbmRleCArPSA0O1xyXG5cdFx0XHRwdXNoVmFsdWUobnVsbCk7XHJcblx0XHR9IGVsc2UgaWYgKGNoYXIgPT09IDExNiAmJiBkYXRhW2kgKyAxXSA9PT0gMTE0ICYmIGRhdGFbaSArIDJdID09PSAxMTcgJiYgZGF0YVtpICsgM10gPT09IDEwMSkgeyAvLyB0cnVlXHJcblx0XHRcdGluZGV4ICs9IDQ7XHJcblx0XHRcdHB1c2hWYWx1ZSh0cnVlKTtcclxuXHRcdH0gZWxzZSBpZiAoY2hhciA9PT0gMTAyICYmIGRhdGFbaSArIDFdID09PSA5NyAmJiBkYXRhW2kgKyAyXSA9PT0gMTA4ICYmIGRhdGFbaSArIDNdID09PSAxMTUgJiYgZGF0YVtpICsgNF0gPT09IDEwMSkgeyAvLyBmYWxzZVxyXG5cdFx0XHRpbmRleCArPSA1O1xyXG5cdFx0XHRwdXNoVmFsdWUoZmFsc2UpO1xyXG5cdFx0fSBlbHNlIGlmIChpc051bWJlcihjaGFyKSkge1xyXG5cdFx0XHRsZXQgdmFsdWUgPSAnJztcclxuXHJcblx0XHRcdHdoaWxlIChpbmRleCA8IGRhdGEubGVuZ3RoICYmIGlzTnVtYmVyKGRhdGFbaW5kZXhdKSkge1xyXG5cdFx0XHRcdHZhbHVlICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoZGF0YVtpbmRleF0pO1xyXG5cdFx0XHRcdGluZGV4Kys7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHB1c2hWYWx1ZShwYXJzZUZsb2F0KHZhbHVlKSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpbmRleCArPSAxO1xyXG5cdFx0XHRjb25zb2xlLmxvZyhgSW52YWxpZCB0b2tlbiAke1N0cmluZy5mcm9tQ2hhckNvZGUoY2hhcil9IGF0ICR7aW5kZXh9YCk7XHJcblx0XHRcdC8vIGAgbmVhciAke1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgZGF0YS5zbGljZShpbmRleCAtIDEwLCBpbmRleCArIDIwKSBhcyBhbnkpfWAgK1xyXG5cdFx0XHQvLyBgZGF0YSBbJHtBcnJheS5mcm9tKGRhdGEuc2xpY2UoaW5kZXggLSAxMCwgaW5kZXggKyAyMCkpLmpvaW4oJywgJyl9XWBcclxuXHRcdH1cclxuXHJcblx0XHRza2lwV2hpdGVzcGFjZSgpO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIHJvb3Q7XHJcbn1cclxuXHJcbmNvbnN0IGZsb2F0S2V5cyA9IFtcclxuXHQnQXhpcycsICdYWScsICdab25lJywgJ1dvcmRTcGFjaW5nJywgJ0ZpcnN0TGluZUluZGVudCcsICdHbHlwaFNwYWNpbmcnLCAnU3RhcnRJbmRlbnQnLCAnRW5kSW5kZW50JywgJ1NwYWNlQmVmb3JlJyxcclxuXHQnU3BhY2VBZnRlcicsICdMZXR0ZXJTcGFjaW5nJywgJ1ZhbHVlcycsICdHcmlkU2l6ZScsICdHcmlkTGVhZGluZycsICdQb2ludEJhc2UnLCAnQm94Qm91bmRzJywgJ1RyYW5zZm9ybVBvaW50MCcsICdUcmFuc2Zvcm1Qb2ludDEnLFxyXG5cdCdUcmFuc2Zvcm1Qb2ludDInLCAnRm9udFNpemUnLCAnTGVhZGluZycsICdIb3Jpem9udGFsU2NhbGUnLCAnVmVydGljYWxTY2FsZScsICdCYXNlbGluZVNoaWZ0JywgJ1RzdW1lJyxcclxuXHQnT3V0bGluZVdpZHRoJywgJ0F1dG9MZWFkaW5nJyxcclxuXTtcclxuXHJcbmNvbnN0IGludEFycmF5cyA9IFsnUnVuTGVuZ3RoQXJyYXknXTtcclxuXHJcbi8vIFRPRE86IGhhbmRsZSAvbmlsXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVFbmdpbmVEYXRhKGRhdGE6IGFueSwgY29uZGVuc2VkID0gZmFsc2UpIHtcclxuXHRsZXQgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoMTAyNCk7XHJcblx0bGV0IG9mZnNldCA9IDA7XHJcblx0bGV0IGluZGVudCA9IDA7XHJcblxyXG5cdGZ1bmN0aW9uIHdyaXRlKHZhbHVlOiBudW1iZXIpIHtcclxuXHRcdGlmIChvZmZzZXQgPj0gYnVmZmVyLmxlbmd0aCkge1xyXG5cdFx0XHRjb25zdCBuZXdCdWZmZXIgPSBuZXcgVWludDhBcnJheShidWZmZXIubGVuZ3RoICogMik7XHJcblx0XHRcdG5ld0J1ZmZlci5zZXQoYnVmZmVyKTtcclxuXHRcdFx0YnVmZmVyID0gbmV3QnVmZmVyO1xyXG5cdFx0fVxyXG5cclxuXHRcdGJ1ZmZlcltvZmZzZXRdID0gdmFsdWU7XHJcblx0XHRvZmZzZXQrKztcclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIHdyaXRlU3RyaW5nKHZhbHVlOiBzdHJpbmcpIHtcclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0d3JpdGUodmFsdWUuY2hhckNvZGVBdChpKSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiB3cml0ZUluZGVudCgpIHtcclxuXHRcdGlmIChjb25kZW5zZWQpIHtcclxuXHRcdFx0d3JpdGVTdHJpbmcoJyAnKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgaW5kZW50OyBpKyspIHtcclxuXHRcdFx0XHR3cml0ZVN0cmluZygnXFx0Jyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIHdyaXRlUHJvcGVydHkoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcclxuXHRcdHdyaXRlSW5kZW50KCk7XHJcblx0XHR3cml0ZVN0cmluZyhgLyR7a2V5fWApO1xyXG5cdFx0d3JpdGVWYWx1ZSh2YWx1ZSwga2V5LCB0cnVlKTtcclxuXHRcdGlmICghY29uZGVuc2VkKSB3cml0ZVN0cmluZygnXFxuJyk7XHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBzZXJpYWxpemVJbnQodmFsdWU6IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBzZXJpYWxpemVGbG9hdCh2YWx1ZTogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gdmFsdWUudG9GaXhlZCg1KVxyXG5cdFx0XHQucmVwbGFjZSgvKFxcZCkwKyQvZywgJyQxJylcclxuXHRcdFx0LnJlcGxhY2UoL14wK1xcLihbMS05XSkvZywgJy4kMScpXHJcblx0XHRcdC5yZXBsYWNlKC9eLTArXFwuMChcXGQpL2csICctLjAkMScpO1xyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gc2VyaWFsaXplTnVtYmVyKHZhbHVlOiBudW1iZXIsIGtleT86IHN0cmluZykge1xyXG5cdFx0Y29uc3QgaXNGbG9hdCA9IChrZXkgJiYgZmxvYXRLZXlzLmluZGV4T2Yoa2V5KSAhPT0gLTEpIHx8ICh2YWx1ZSB8IDApICE9PSB2YWx1ZTtcclxuXHRcdHJldHVybiBpc0Zsb2F0ID8gc2VyaWFsaXplRmxvYXQodmFsdWUpIDogc2VyaWFsaXplSW50KHZhbHVlKTtcclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIGdldEtleXModmFsdWU6IGFueSkge1xyXG5cdFx0Y29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbHVlKTtcclxuXHJcblx0XHRpZiAoa2V5cy5pbmRleE9mKCc5OCcpICE9PSAtMSlcclxuXHRcdFx0a2V5cy51bnNoaWZ0KC4uLmtleXMuc3BsaWNlKGtleXMuaW5kZXhPZignOTknKSwgMSkpO1xyXG5cclxuXHRcdGlmIChrZXlzLmluZGV4T2YoJzk5JykgIT09IC0xKVxyXG5cdFx0XHRrZXlzLnVuc2hpZnQoLi4ua2V5cy5zcGxpY2Uoa2V5cy5pbmRleE9mKCc5OScpLCAxKSk7XHJcblxyXG5cdFx0cmV0dXJuIGtleXM7XHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiB3cml0ZVN0cmluZ0J5dGUodmFsdWU6IG51bWJlcikge1xyXG5cdFx0aWYgKHZhbHVlID09PSA0MCB8fCB2YWx1ZSA9PT0gNDEgfHwgdmFsdWUgPT09IDkyKSB7IC8vICggKSBcXFxyXG5cdFx0XHR3cml0ZSg5Mik7IC8vIFxcXHJcblx0XHR9XHJcblxyXG5cdFx0d3JpdGUodmFsdWUpO1xyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gd3JpdGVWYWx1ZSh2YWx1ZTogYW55LCBrZXk/OiBzdHJpbmcsIGluUHJvcGVydHkgPSBmYWxzZSkge1xyXG5cdFx0ZnVuY3Rpb24gd3JpdGVQcmVmaXgoKSB7XHJcblx0XHRcdGlmIChpblByb3BlcnR5KSB7XHJcblx0XHRcdFx0d3JpdGVTdHJpbmcoJyAnKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR3cml0ZUluZGVudCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHZhbHVlID09PSBudWxsKSB7XHJcblx0XHRcdHdyaXRlUHJlZml4KCk7XHJcblx0XHRcdHdyaXRlU3RyaW5nKGNvbmRlbnNlZCA/ICcvbmlsJyA6ICdudWxsJyk7XHJcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcclxuXHRcdFx0d3JpdGVQcmVmaXgoKTtcclxuXHRcdFx0d3JpdGVTdHJpbmcoc2VyaWFsaXplTnVtYmVyKHZhbHVlLCBrZXkpKTtcclxuXHRcdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcclxuXHRcdFx0d3JpdGVQcmVmaXgoKTtcclxuXHRcdFx0d3JpdGVTdHJpbmcodmFsdWUgPyAndHJ1ZScgOiAnZmFsc2UnKTtcclxuXHRcdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHR3cml0ZVByZWZpeCgpO1xyXG5cclxuXHRcdFx0aWYgKChrZXkgPT09ICc5OScgfHwga2V5ID09PSAnOTgnKSAmJiB2YWx1ZS5jaGFyQXQoMCkgPT09ICcvJykge1xyXG5cdFx0XHRcdHdyaXRlU3RyaW5nKHZhbHVlKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR3cml0ZVN0cmluZygnKCcpO1xyXG5cdFx0XHRcdHdyaXRlKDB4ZmUpO1xyXG5cdFx0XHRcdHdyaXRlKDB4ZmYpO1xyXG5cclxuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRjb25zdCBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChpKTtcclxuXHRcdFx0XHRcdHdyaXRlU3RyaW5nQnl0ZSgoY29kZSA+PiA4KSAmIDB4ZmYpO1xyXG5cdFx0XHRcdFx0d3JpdGVTdHJpbmdCeXRlKGNvZGUgJiAweGZmKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHdyaXRlU3RyaW5nKCcpJyk7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuXHRcdFx0d3JpdGVQcmVmaXgoKTtcclxuXHJcblx0XHRcdGlmICh2YWx1ZS5ldmVyeSh4ID0+IHR5cGVvZiB4ID09PSAnbnVtYmVyJykpIHtcclxuXHRcdFx0XHR3cml0ZVN0cmluZygnWycpO1xyXG5cclxuXHRcdFx0XHRjb25zdCBpbnRBcnJheSA9IGludEFycmF5cy5pbmRleE9mKGtleSEpICE9PSAtMTtcclxuXHJcblx0XHRcdFx0Zm9yIChjb25zdCB4IG9mIHZhbHVlKSB7XHJcblx0XHRcdFx0XHR3cml0ZVN0cmluZygnICcpO1xyXG5cdFx0XHRcdFx0d3JpdGVTdHJpbmcoaW50QXJyYXkgPyBzZXJpYWxpemVOdW1iZXIoeCkgOiBzZXJpYWxpemVGbG9hdCh4KSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR3cml0ZVN0cmluZygnIF0nKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR3cml0ZVN0cmluZygnWycpO1xyXG5cdFx0XHRcdGlmICghY29uZGVuc2VkKSB3cml0ZVN0cmluZygnXFxuJyk7XHJcblxyXG5cdFx0XHRcdGZvciAoY29uc3QgeCBvZiB2YWx1ZSkge1xyXG5cdFx0XHRcdFx0d3JpdGVWYWx1ZSh4LCBrZXkpO1xyXG5cdFx0XHRcdFx0aWYgKCFjb25kZW5zZWQpIHdyaXRlU3RyaW5nKCdcXG4nKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHdyaXRlSW5kZW50KCk7XHJcblx0XHRcdFx0d3JpdGVTdHJpbmcoJ10nKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XHJcblx0XHRcdGlmIChpblByb3BlcnR5ICYmICFjb25kZW5zZWQpIHdyaXRlU3RyaW5nKCdcXG4nKTtcclxuXHJcblx0XHRcdHdyaXRlSW5kZW50KCk7XHJcblx0XHRcdHdyaXRlU3RyaW5nKCc8PCcpO1xyXG5cclxuXHRcdFx0aWYgKCFjb25kZW5zZWQpIHdyaXRlU3RyaW5nKCdcXG4nKTtcclxuXHJcblx0XHRcdGluZGVudCsrO1xyXG5cclxuXHRcdFx0Zm9yIChjb25zdCBrZXkgb2YgZ2V0S2V5cyh2YWx1ZSkpIHtcclxuXHRcdFx0XHR3cml0ZVByb3BlcnR5KGtleSwgdmFsdWVba2V5XSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGluZGVudC0tO1xyXG5cdFx0XHR3cml0ZUluZGVudCgpO1xyXG5cdFx0XHR3cml0ZVN0cmluZygnPj4nKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdH1cclxuXHJcblx0aWYgKGNvbmRlbnNlZCkge1xyXG5cdFx0aWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRmb3IgKGNvbnN0IGtleSBvZiBnZXRLZXlzKGRhdGEpKSB7XHJcblx0XHRcdFx0d3JpdGVQcm9wZXJ0eShrZXksIGRhdGFba2V5XSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9IGVsc2Uge1xyXG5cdFx0d3JpdGVTdHJpbmcoJ1xcblxcbicpO1xyXG5cdFx0d3JpdGVWYWx1ZShkYXRhKTtcclxuXHR9XHJcblxyXG5cdHJldHVybiBidWZmZXIuc2xpY2UoMCwgb2Zmc2V0KTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IkM6XFxQcm9qZWN0c1xcZ2l0aHViXFxhZy1wc2RcXHNyYyJ9
|
package/dist/helpers.js
CHANGED
|
@@ -56,13 +56,13 @@ function createEnum(prefix, def, map) {
|
|
|
56
56
|
var decode = function (val) {
|
|
57
57
|
var value = val.split('.')[1];
|
|
58
58
|
if (value && !rev[value])
|
|
59
|
-
throw new Error("Unrecognized value for enum: '"
|
|
59
|
+
throw new Error("Unrecognized value for enum: '".concat(val, "'"));
|
|
60
60
|
return rev[value] || def;
|
|
61
61
|
};
|
|
62
62
|
var encode = function (val) {
|
|
63
63
|
if (val && !map[val])
|
|
64
|
-
throw new Error("Invalid value for enum: '"
|
|
65
|
-
return prefix
|
|
64
|
+
throw new Error("Invalid value for enum: '".concat(val, "'"));
|
|
65
|
+
return "".concat(prefix, ".").concat(map[val] || map[def]);
|
|
66
66
|
};
|
|
67
67
|
return { decode: decode, encode: encode };
|
|
68
68
|
}
|
|
@@ -109,11 +109,11 @@ var Compression;
|
|
|
109
109
|
})(Compression = exports.Compression || (exports.Compression = {}));
|
|
110
110
|
function offsetForChannel(channelId, cmyk) {
|
|
111
111
|
switch (channelId) {
|
|
112
|
-
case 0 /* Color0 */: return 0;
|
|
113
|
-
case 1 /* Color1 */: return 1;
|
|
114
|
-
case 2 /* Color2 */: return 2;
|
|
115
|
-
case 3 /* Color3 */: return cmyk ? 3 : channelId + 1;
|
|
116
|
-
case -1 /* Transparency */: return cmyk ? 4 : 3;
|
|
112
|
+
case 0 /* ChannelID.Color0 */: return 0;
|
|
113
|
+
case 1 /* ChannelID.Color1 */: return 1;
|
|
114
|
+
case 2 /* ChannelID.Color2 */: return 2;
|
|
115
|
+
case 3 /* ChannelID.Color3 */: return cmyk ? 3 : channelId + 1;
|
|
116
|
+
case -1 /* ChannelID.Transparency */: return cmyk ? 4 : 3;
|
|
117
117
|
default: return channelId + 1;
|
|
118
118
|
}
|
|
119
119
|
}
|
|
@@ -271,7 +271,7 @@ exports.createCanvasFromData = createCanvasFromData;
|
|
|
271
271
|
var tempCanvas = undefined;
|
|
272
272
|
var createImageData = function (width, height) {
|
|
273
273
|
if (!tempCanvas)
|
|
274
|
-
tempCanvas = exports.createCanvas(1, 1);
|
|
274
|
+
tempCanvas = (0, exports.createCanvas)(1, 1);
|
|
275
275
|
return tempCanvas.getContext('2d').createImageData(width, height);
|
|
276
276
|
};
|
|
277
277
|
exports.createImageData = createImageData;
|
|
@@ -284,7 +284,7 @@ if (typeof document !== 'undefined') {
|
|
|
284
284
|
};
|
|
285
285
|
exports.createCanvasFromData = function (data) {
|
|
286
286
|
var image = new Image();
|
|
287
|
-
image.src = 'data:image/jpeg;base64,' + base64_js_1.fromByteArray(data);
|
|
287
|
+
image.src = 'data:image/jpeg;base64,' + (0, base64_js_1.fromByteArray)(data);
|
|
288
288
|
var canvas = document.createElement('canvas');
|
|
289
289
|
canvas.width = image.width;
|
|
290
290
|
canvas.height = image.height;
|
|
@@ -299,4 +299,4 @@ function initializeCanvas(createCanvasMethod, createCanvasFromDataMethod, create
|
|
|
299
299
|
}
|
|
300
300
|
exports.initializeCanvas = initializeCanvas;
|
|
301
301
|
|
|
302
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFLLENBQUMsS0FBSyxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUM3QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0NBQ0Y7QUFFRCxTQUFnQixnQkFBZ0IsQ0FDL0Isa0JBQXdFLEVBQ3hFLDBCQUFvRSxFQUNwRSxxQkFBb0U7SUFFcEUsb0JBQVksR0FBRyxrQkFBa0IsQ0FBQztJQUNsQyw0QkFBb0IsR0FBRywwQkFBMEIsSUFBSSw0QkFBb0IsQ0FBQztJQUMxRSx1QkFBZSxHQUFHLHFCQUFxQixJQUFJLHVCQUFlLENBQUM7QUFDNUQsQ0FBQztBQVJELDRDQVFDIiwiZmlsZSI6ImhlbHBlcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tQnl0ZUFycmF5IH0gZnJvbSAnYmFzZTY0LWpzJztcbmltcG9ydCB7IExheWVyLCBCbGVuZE1vZGUsIExheWVyQ29sb3IgfSBmcm9tICcuL3BzZCc7XG5cbmV4cG9ydCBjb25zdCBNT0NLX0hBTkRMRVJTID0gZmFsc2U7XG5leHBvcnQgY29uc3QgUkFXX0lNQUdFX0RBVEEgPSBmYWxzZTtcblxuZXhwb3J0IGNvbnN0IGZyb21CbGVuZE1vZGU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbmV4cG9ydCBjb25zdCB0b0JsZW5kTW9kZTogeyBba2V5OiBzdHJpbmddOiBCbGVuZE1vZGUgfSA9IHtcblx0J3Bhc3MnOiAncGFzcyB0aHJvdWdoJyxcblx0J25vcm0nOiAnbm9ybWFsJyxcblx0J2Rpc3MnOiAnZGlzc29sdmUnLFxuXHQnZGFyayc6ICdkYXJrZW4nLFxuXHQnbXVsICc6ICdtdWx0aXBseScsXG5cdCdpZGl2JzogJ2NvbG9yIGJ1cm4nLFxuXHQnbGJybic6ICdsaW5lYXIgYnVybicsXG5cdCdka0NsJzogJ2RhcmtlciBjb2xvcicsXG5cdCdsaXRlJzogJ2xpZ2h0ZW4nLFxuXHQnc2Nybic6ICdzY3JlZW4nLFxuXHQnZGl2ICc6ICdjb2xvciBkb2RnZScsXG5cdCdsZGRnJzogJ2xpbmVhciBkb2RnZScsXG5cdCdsZ0NsJzogJ2xpZ2h0ZXIgY29sb3InLFxuXHQnb3Zlcic6ICdvdmVybGF5Jyxcblx0J3NMaXQnOiAnc29mdCBsaWdodCcsXG5cdCdoTGl0JzogJ2hhcmQgbGlnaHQnLFxuXHQndkxpdCc6ICd2aXZpZCBsaWdodCcsXG5cdCdsTGl0JzogJ2xpbmVhciBsaWdodCcsXG5cdCdwTGl0JzogJ3BpbiBsaWdodCcsXG5cdCdoTWl4JzogJ2hhcmQgbWl4Jyxcblx0J2RpZmYnOiAnZGlmZmVyZW5jZScsXG5cdCdzbXVkJzogJ2V4Y2x1c2lvbicsXG5cdCdmc3ViJzogJ3N1YnRyYWN0Jyxcblx0J2ZkaXYnOiAnZGl2aWRlJyxcblx0J2h1ZSAnOiAnaHVlJyxcblx0J3NhdCAnOiAnc2F0dXJhdGlvbicsXG5cdCdjb2xyJzogJ2NvbG9yJyxcblx0J2x1bSAnOiAnbHVtaW5vc2l0eScsXG59O1xuXG5PYmplY3Qua2V5cyh0b0JsZW5kTW9kZSkuZm9yRWFjaChrZXkgPT4gZnJvbUJsZW5kTW9kZVt0b0JsZW5kTW9kZVtrZXldXSA9IGtleSk7XG5cbmV4cG9ydCBjb25zdCBsYXllckNvbG9yczogTGF5ZXJDb2xvcltdID0gW1xuXHQnbm9uZScsICdyZWQnLCAnb3JhbmdlJywgJ3llbGxvdycsICdncmVlbicsICdibHVlJywgJ3Zpb2xldCcsICdncmF5J1xuXTtcblxuZXhwb3J0IGNvbnN0IGxhcmdlQWRkaXRpb25hbEluZm9LZXlzID0gW1xuXHQvLyBmcm9tIGRvY3VtZW50YXRpb25cblx0J0xNc2snLCAnTHIxNicsICdMcjMyJywgJ0xheXInLCAnTXQxNicsICdNdDMyJywgJ010cm4nLCAnQWxwaCcsICdGTXNrJywgJ2xuazInLCAnRkVpZCcsICdGWGlkJywgJ1B4U0QnLFxuXHQvLyBmcm9tIGd1ZXNzaW5nXG5cdCdjaW5mJyxcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGljdCB7XG5cdFtrZXk6IHN0cmluZ106IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJldk1hcChtYXA6IERpY3QpIHtcblx0Y29uc3QgcmVzdWx0OiBEaWN0ID0ge307XG5cdE9iamVjdC5rZXlzKG1hcCkuZm9yRWFjaChrZXkgPT4gcmVzdWx0W21hcFtrZXldXSA9IGtleSk7XG5cdHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbnVtPFQ+KHByZWZpeDogc3RyaW5nLCBkZWY6IHN0cmluZywgbWFwOiBEaWN0KSB7XG5cdGNvbnN0IHJldiA9IHJldk1hcChtYXApO1xuXHRjb25zdCBkZWNvZGUgPSAodmFsOiBzdHJpbmcpOiBUID0+IHtcblx0XHRjb25zdCB2YWx1ZSA9IHZhbC5zcGxpdCgnLicpWzFdO1xuXHRcdGlmICh2YWx1ZSAmJiAhcmV2W3ZhbHVlXSkgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgdmFsdWUgZm9yIGVudW06ICcke3ZhbH0nYCk7XG5cdFx0cmV0dXJuIChyZXZbdmFsdWVdIGFzIGFueSkgfHwgZGVmO1xuXHR9O1xuXHRjb25zdCBlbmNvZGUgPSAodmFsOiBUIHwgdW5kZWZpbmVkKTogc3RyaW5nID0+IHtcblx0XHRpZiAodmFsICYmICFtYXBbdmFsIGFzIGFueV0pIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZSBmb3IgZW51bTogJyR7dmFsfSdgKTtcblx0XHRyZXR1cm4gYCR7cHJlZml4fS4ke21hcFt2YWwgYXMgYW55XSB8fCBtYXBbZGVmXX1gO1xuXHR9O1xuXHRyZXR1cm4geyBkZWNvZGUsIGVuY29kZSB9O1xufVxuXG5leHBvcnQgY29uc3QgZW51bSBDb2xvclNwYWNlIHtcblx0UkdCID0gMCxcblx0SFNCID0gMSxcblx0Q01ZSyA9IDIsXG5cdExhYiA9IDcsXG5cdEdyYXlzY2FsZSA9IDgsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIExheWVyTWFza0ZsYWdzIHtcblx0UG9zaXRpb25SZWxhdGl2ZVRvTGF5ZXIgPSAxLFxuXHRMYXllck1hc2tEaXNhYmxlZCA9IDIsXG5cdEludmVydExheWVyTWFza1doZW5CbGVuZGluZyA9IDQsIC8vIG9ic29sZXRlXG5cdExheWVyTWFza0Zyb21SZW5kZXJpbmdPdGhlckRhdGEgPSA4LFxuXHRNYXNrSGFzUGFyYW1ldGVyc0FwcGxpZWRUb0l0ID0gMTYsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIE1hc2tQYXJhbXMge1xuXHRVc2VyTWFza0RlbnNpdHkgPSAxLFxuXHRVc2VyTWFza0ZlYXRoZXIgPSAyLFxuXHRWZWN0b3JNYXNrRGVuc2l0eSA9IDQsXG5cdFZlY3Rvck1hc2tGZWF0aGVyID0gOCxcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gQ2hhbm5lbElEIHtcblx0Q29sb3IwID0gMCwgLy8gcmVkIChyZ2IpIC8gY3lhbiAoY215aylcblx0Q29sb3IxID0gMSwgLy8gZ3JlZW4gKHJnYikgLyBtYWdlbnRhIChjbXlrKVxuXHRDb2xvcjIgPSAyLCAvLyBibHVlIChyZ2IpIC8geWVsbG93IChjbXlrKVxuXHRDb2xvcjMgPSAzLCAvLyAtIChyZ2IpIC8gYmxhY2sgKGNteWspXG5cdFRyYW5zcGFyZW5jeSA9IC0xLFxuXHRVc2VyTWFzayA9IC0yLFxuXHRSZWFsVXNlck1hc2sgPSAtMyxcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gQ29tcHJlc3Npb24ge1xuXHRSYXdEYXRhID0gMCxcblx0UmxlQ29tcHJlc3NlZCA9IDEsXG5cdFppcFdpdGhvdXRQcmVkaWN0aW9uID0gMixcblx0WmlwV2l0aFByZWRpY3Rpb24gPSAzLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYW5uZWxEYXRhIHtcblx0Y2hhbm5lbElkOiBDaGFubmVsSUQ7XG5cdGNvbXByZXNzaW9uOiBDb21wcmVzc2lvbjtcblx0YnVmZmVyOiBVaW50OEFycmF5IHwgdW5kZWZpbmVkO1xuXHRsZW5ndGg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb3VuZHMge1xuXHR0b3A6IG51bWJlcjtcblx0bGVmdDogbnVtYmVyO1xuXHRyaWdodDogbnVtYmVyO1xuXHRib3R0b206IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXllckNoYW5uZWxEYXRhIHtcblx0bGF5ZXI6IExheWVyO1xuXHRjaGFubmVsczogQ2hhbm5lbERhdGFbXTtcblx0dG9wOiBudW1iZXI7XG5cdGxlZnQ6IG51bWJlcjtcblx0cmlnaHQ6IG51bWJlcjtcblx0Ym90dG9tOiBudW1iZXI7XG5cdG1hc2s/OiBCb3VuZHM7XG59XG5cbmV4cG9ydCB0eXBlIFBpeGVsQXJyYXkgPSBVaW50OENsYW1wZWRBcnJheSB8IFVpbnQ4QXJyYXk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGl4ZWxEYXRhIHtcblx0ZGF0YTogUGl4ZWxBcnJheTtcblx0d2lkdGg6IG51bWJlcjtcblx0aGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvZmZzZXRGb3JDaGFubmVsKGNoYW5uZWxJZDogQ2hhbm5lbElELCBjbXlrOiBib29sZWFuKSB7XG5cdHN3aXRjaCAoY2hhbm5lbElkKSB7XG5cdFx0Y2FzZSBDaGFubmVsSUQuQ29sb3IwOiByZXR1cm4gMDtcblx0XHRjYXNlIENoYW5uZWxJRC5Db2xvcjE6IHJldHVybiAxO1xuXHRcdGNhc2UgQ2hhbm5lbElELkNvbG9yMjogcmV0dXJuIDI7XG5cdFx0Y2FzZSBDaGFubmVsSUQuQ29sb3IzOiByZXR1cm4gY215ayA/IDMgOiBjaGFubmVsSWQgKyAxO1xuXHRcdGNhc2UgQ2hhbm5lbElELlRyYW5zcGFyZW5jeTogcmV0dXJuIGNteWsgPyA0IDogMztcblx0XHRkZWZhdWx0OiByZXR1cm4gY2hhbm5lbElkICsgMTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhbXAodmFsdWU6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKSB7XG5cdHJldHVybiB2YWx1ZSA8IG1pbiA/IG1pbiA6ICh2YWx1ZSA+IG1heCA/IG1heCA6IHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0FscGhhKGRhdGE6IFBpeGVsRGF0YSkge1xuXHRjb25zdCBzaXplID0gZGF0YS53aWR0aCAqIGRhdGEuaGVpZ2h0ICogNDtcblxuXHRmb3IgKGxldCBpID0gMzsgaSA8IHNpemU7IGkgKz0gNCkge1xuXHRcdGlmIChkYXRhLmRhdGFbaV0gIT09IDI1NSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRJbWFnZURhdGEoeyBkYXRhIH06IFBpeGVsRGF0YSkge1xuXHRjb25zdCBidWZmZXIgPSBuZXcgVWludDMyQXJyYXkoZGF0YS5idWZmZXIpO1xuXHRjb25zdCBzaXplID0gYnVmZmVyLmxlbmd0aCB8IDA7XG5cblx0Zm9yIChsZXQgcCA9IDA7IHAgPCBzaXplOyBwID0gKHAgKyAxKSB8IDApIHtcblx0XHRidWZmZXJbcF0gPSAweGZmMDAwMDAwO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVCaXRtYXAoaW5wdXQ6IFBpeGVsQXJyYXksIG91dHB1dDogUGl4ZWxBcnJheSwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpIHtcblx0Zm9yIChsZXQgeSA9IDAsIHAgPSAwLCBvID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7XG5cdFx0Zm9yIChsZXQgeCA9IDA7IHggPCB3aWR0aDspIHtcblx0XHRcdGxldCBiID0gaW5wdXRbbysrXTtcblxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCA4ICYmIHggPCB3aWR0aDsgaSsrLCB4KyspIHtcblx0XHRcdFx0Y29uc3QgdiA9IGIgJiAweDgwID8gMCA6IDI1NTtcblx0XHRcdFx0YiA9IGIgPDwgMTtcblx0XHRcdFx0b3V0cHV0W3ArK10gPSB2O1xuXHRcdFx0XHRvdXRwdXRbcCsrXSA9IHY7XG5cdFx0XHRcdG91dHB1dFtwKytdID0gdjtcblx0XHRcdFx0b3V0cHV0W3ArK10gPSAyNTU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZURhdGFSYXcoZGF0YTogUGl4ZWxEYXRhLCBvZmZzZXQ6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpIHtcblx0aWYgKCF3aWR0aCB8fCAhaGVpZ2h0KVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cblx0Y29uc3QgYXJyYXkgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCk7XG5cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuXHRcdGFycmF5W2ldID0gZGF0YS5kYXRhW2kgKiA0ICsgb2Zmc2V0XTtcblx0fVxuXG5cdHJldHVybiBhcnJheTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlRGF0YVJMRShcblx0YnVmZmVyOiBVaW50OEFycmF5LCB7IGRhdGEgfTogUGl4ZWxEYXRhLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgb2Zmc2V0czogbnVtYmVyW10sXG5cdGxhcmdlOiBib29sZWFuXG4pIHtcblx0aWYgKCF3aWR0aCB8fCAhaGVpZ2h0KSByZXR1cm4gdW5kZWZpbmVkO1xuXG5cdGNvbnN0IHN0cmlkZSA9ICg0ICogd2lkdGgpIHwgMDtcblxuXHRsZXQgb2wgPSAwO1xuXHRsZXQgbyA9IChvZmZzZXRzLmxlbmd0aCAqIChsYXJnZSA/IDQgOiAyKSAqIGhlaWdodCkgfCAwO1xuXG5cdGZvciAoY29uc3Qgb2Zmc2V0IG9mIG9mZnNldHMpIHtcblx0XHRmb3IgKGxldCB5ID0gMCwgcCA9IG9mZnNldCB8IDA7IHkgPCBoZWlnaHQ7IHkrKykge1xuXHRcdFx0Y29uc3Qgc3RyaWRlU3RhcnQgPSAoeSAqIHN0cmlkZSkgfCAwO1xuXHRcdFx0Y29uc3Qgc3RyaWRlRW5kID0gKHN0cmlkZVN0YXJ0ICsgc3RyaWRlKSB8IDA7XG5cdFx0XHRjb25zdCBsYXN0SW5kZXggPSAoc3RyaWRlRW5kICsgb2Zmc2V0IC0gNCkgfCAwO1xuXHRcdFx0Y29uc3QgbGFzdEluZGV4MiA9IChsYXN0SW5kZXggLSA0KSB8IDA7XG5cdFx0XHRjb25zdCBzdGFydE9mZnNldCA9IG87XG5cblx0XHRcdGZvciAocCA9IChzdHJpZGVTdGFydCArIG9mZnNldCkgfCAwOyBwIDwgc3RyaWRlRW5kOyBwID0gKHAgKyA0KSB8IDApIHtcblx0XHRcdFx0aWYgKHAgPCBsYXN0SW5kZXgyKSB7XG5cdFx0XHRcdFx0bGV0IHZhbHVlMSA9IGRhdGFbcF07XG5cdFx0XHRcdFx0cCA9IChwICsgNCkgfCAwO1xuXHRcdFx0XHRcdGxldCB2YWx1ZTIgPSBkYXRhW3BdO1xuXHRcdFx0XHRcdHAgPSAocCArIDQpIHwgMDtcblx0XHRcdFx0XHRsZXQgdmFsdWUzID0gZGF0YVtwXTtcblxuXHRcdFx0XHRcdGlmICh2YWx1ZTEgPT09IHZhbHVlMiAmJiB2YWx1ZTEgPT09IHZhbHVlMykge1xuXHRcdFx0XHRcdFx0bGV0IGNvdW50ID0gMztcblxuXHRcdFx0XHRcdFx0d2hpbGUgKGNvdW50IDwgMTI4ICYmIHAgPCBsYXN0SW5kZXggJiYgZGF0YVsocCArIDQpIHwgMF0gPT09IHZhbHVlMSkge1xuXHRcdFx0XHRcdFx0XHRjb3VudCA9IChjb3VudCArIDEpIHwgMDtcblx0XHRcdFx0XHRcdFx0cCA9IChwICsgNCkgfCAwO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IDEgLSBjb3VudDtcblx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gdmFsdWUxO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zdCBjb3VudEluZGV4ID0gbztcblx0XHRcdFx0XHRcdGxldCB3cml0ZUxhc3QgPSB0cnVlO1xuXHRcdFx0XHRcdFx0bGV0IGNvdW50ID0gMTtcblx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gMDtcblx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gdmFsdWUxO1xuXG5cdFx0XHRcdFx0XHR3aGlsZSAocCA8IGxhc3RJbmRleCAmJiBjb3VudCA8IDEyOCkge1xuXHRcdFx0XHRcdFx0XHRwID0gKHAgKyA0KSB8IDA7XG5cdFx0XHRcdFx0XHRcdHZhbHVlMSA9IHZhbHVlMjtcblx0XHRcdFx0XHRcdFx0dmFsdWUyID0gdmFsdWUzO1xuXHRcdFx0XHRcdFx0XHR2YWx1ZTMgPSBkYXRhW3BdO1xuXG5cdFx0XHRcdFx0XHRcdGlmICh2YWx1ZTEgPT09IHZhbHVlMiAmJiB2YWx1ZTEgPT09IHZhbHVlMykge1xuXHRcdFx0XHRcdFx0XHRcdHAgPSAocCAtIDEyKSB8IDA7XG5cdFx0XHRcdFx0XHRcdFx0d3JpdGVMYXN0ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0Y291bnQrKztcblx0XHRcdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IHZhbHVlMTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRpZiAod3JpdGVMYXN0KSB7XG5cdFx0XHRcdFx0XHRcdGlmIChjb3VudCA8IDEyNykge1xuXHRcdFx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gdmFsdWUyO1xuXHRcdFx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gdmFsdWUzO1xuXHRcdFx0XHRcdFx0XHRcdGNvdW50ICs9IDI7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoY291bnQgPCAxMjgpIHtcblx0XHRcdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IHZhbHVlMjtcblx0XHRcdFx0XHRcdFx0XHRjb3VudCsrO1xuXHRcdFx0XHRcdFx0XHRcdHAgPSAocCAtIDQpIHwgMDtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRwID0gKHAgLSA4KSB8IDA7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0YnVmZmVyW2NvdW50SW5kZXhdID0gY291bnQgLSAxO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmIChwID09PSBsYXN0SW5kZXgpIHtcblx0XHRcdFx0XHRidWZmZXJbbysrXSA9IDA7XG5cdFx0XHRcdFx0YnVmZmVyW28rK10gPSBkYXRhW3BdO1xuXHRcdFx0XHR9IGVsc2UgeyAvLyBwID09PSBsYXN0SW5kZXgyXG5cdFx0XHRcdFx0YnVmZmVyW28rK10gPSAxO1xuXHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gZGF0YVtwXTtcblx0XHRcdFx0XHRwID0gKHAgKyA0KSB8IDA7XG5cdFx0XHRcdFx0YnVmZmVyW28rK10gPSBkYXRhW3BdO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGxlbmd0aCA9IG8gLSBzdGFydE9mZnNldDtcblxuXHRcdFx0aWYgKGxhcmdlKSB7XG5cdFx0XHRcdGJ1ZmZlcltvbCsrXSA9IChsZW5ndGggPj4gMjQpICYgMHhmZjtcblx0XHRcdFx0YnVmZmVyW29sKytdID0gKGxlbmd0aCA+PiAxNikgJiAweGZmO1xuXHRcdFx0fVxuXG5cdFx0XHRidWZmZXJbb2wrK10gPSAobGVuZ3RoID4+IDgpICYgMHhmZjtcblx0XHRcdGJ1ZmZlcltvbCsrXSA9IGxlbmd0aCAmIDB4ZmY7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGJ1ZmZlci5zbGljZSgwLCBvKTtcbn1cblxuZXhwb3J0IGxldCBjcmVhdGVDYW52YXM6ICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4gSFRNTENhbnZhc0VsZW1lbnQgPSAoKSA9PiB7XG5cdHRocm93IG5ldyBFcnJvcignQ2FudmFzIG5vdCBpbml0aWFsaXplZCwgdXNlIGluaXRpYWxpemVDYW52YXMgbWV0aG9kIHRvIHNldCB1cCBjcmVhdGVDYW52YXMgbWV0aG9kJyk7XG59O1xuXG5leHBvcnQgbGV0IGNyZWF0ZUNhbnZhc0Zyb21EYXRhOiAoZGF0YTogVWludDhBcnJheSkgPT4gSFRNTENhbnZhc0VsZW1lbnQgPSAoKSA9PiB7XG5cdHRocm93IG5ldyBFcnJvcignQ2FudmFzIG5vdCBpbml0aWFsaXplZCwgdXNlIGluaXRpYWxpemVDYW52YXMgbWV0aG9kIHRvIHNldCB1cCBjcmVhdGVDYW52YXNGcm9tRGF0YSBtZXRob2QnKTtcbn07XG5cbmxldCB0ZW1wQ2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuZXhwb3J0IGxldCBjcmVhdGVJbWFnZURhdGE6ICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4gSW1hZ2VEYXRhID0gKHdpZHRoLCBoZWlnaHQpID0+IHtcblx0aWYgKCF0ZW1wQ2FudmFzKSB0ZW1wQ2FudmFzID0gY3JlYXRlQ2FudmFzKDEsIDEpO1xuXHRyZXR1cm4gdGVtcENhbnZhcy5nZXRDb250ZXh0KCcyZCcpIS5jcmVhdGVJbWFnZURhdGEod2lkdGgsIGhlaWdodCk7XG59O1xuXG5pZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuXHRjcmVhdGVDYW52YXMgPSAod2lkdGgsIGhlaWdodCkgPT4ge1xuXHRcdGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuXHRcdGNhbnZhcy53aWR0aCA9IHdpZHRoO1xuXHRcdGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XG5cdFx0cmV0dXJuIGNhbnZhcztcblx0fTtcblxuXHRjcmVhdGVDYW52YXNGcm9tRGF0YSA9IChkYXRhKSA9PiB7XG5cdFx0Y29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcblx0XHRpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwnICsgZnJvbUJ5dGVBcnJheShkYXRhKTtcblx0XHRjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcblx0XHRjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aDtcblx0XHRjYW52YXMuaGVpZ2h0ID0gaW1hZ2UuaGVpZ2h0O1xuXHRcdGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpIS5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDApO1xuXHRcdHJldHVybiBjYW52YXM7XG5cdH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplQ2FudmFzKFxuXHRjcmVhdGVDYW52YXNNZXRob2Q6ICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4gSFRNTENhbnZhc0VsZW1lbnQsXG5cdGNyZWF0ZUNhbnZhc0Zyb21EYXRhTWV0aG9kPzogKGRhdGE6IFVpbnQ4QXJyYXkpID0+IEhUTUxDYW52YXNFbGVtZW50LFxuXHRjcmVhdGVJbWFnZURhdGFNZXRob2Q/OiAod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IEltYWdlRGF0YVxuKSB7XG5cdGNyZWF0ZUNhbnZhcyA9IGNyZWF0ZUNhbnZhc01ldGhvZDtcblx0Y3JlYXRlQ2FudmFzRnJvbURhdGEgPSBjcmVhdGVDYW52YXNGcm9tRGF0YU1ldGhvZCB8fCBjcmVhdGVDYW52YXNGcm9tRGF0YTtcblx0Y3JlYXRlSW1hZ2VEYXRhID0gY3JlYXRlSW1hZ2VEYXRhTWV0aG9kIHx8IGNyZWF0ZUltYWdlRGF0YTtcbn1cbiJdLCJzb3VyY2VSb290IjoiQzpcXFByb2plY3RzXFxnaXRodWJcXGFnLXBzZFxcc3JjIn0=
|
|
302
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUM3QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0NBQ0Y7QUFFRCxTQUFnQixnQkFBZ0IsQ0FDL0Isa0JBQXdFLEVBQ3hFLDBCQUFvRSxFQUNwRSxxQkFBb0U7SUFFcEUsb0JBQVksR0FBRyxrQkFBa0IsQ0FBQztJQUNsQyw0QkFBb0IsR0FBRywwQkFBMEIsSUFBSSw0QkFBb0IsQ0FBQztJQUMxRSx1QkFBZSxHQUFHLHFCQUFxQixJQUFJLHVCQUFlLENBQUM7QUFDNUQsQ0FBQztBQVJELDRDQVFDIiwiZmlsZSI6ImhlbHBlcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tQnl0ZUFycmF5IH0gZnJvbSAnYmFzZTY0LWpzJztcbmltcG9ydCB7IExheWVyLCBCbGVuZE1vZGUsIExheWVyQ29sb3IgfSBmcm9tICcuL3BzZCc7XG5cbmV4cG9ydCBjb25zdCBNT0NLX0hBTkRMRVJTID0gZmFsc2U7XG5leHBvcnQgY29uc3QgUkFXX0lNQUdFX0RBVEEgPSBmYWxzZTtcblxuZXhwb3J0IGNvbnN0IGZyb21CbGVuZE1vZGU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbmV4cG9ydCBjb25zdCB0b0JsZW5kTW9kZTogeyBba2V5OiBzdHJpbmddOiBCbGVuZE1vZGUgfSA9IHtcblx0J3Bhc3MnOiAncGFzcyB0aHJvdWdoJyxcblx0J25vcm0nOiAnbm9ybWFsJyxcblx0J2Rpc3MnOiAnZGlzc29sdmUnLFxuXHQnZGFyayc6ICdkYXJrZW4nLFxuXHQnbXVsICc6ICdtdWx0aXBseScsXG5cdCdpZGl2JzogJ2NvbG9yIGJ1cm4nLFxuXHQnbGJybic6ICdsaW5lYXIgYnVybicsXG5cdCdka0NsJzogJ2RhcmtlciBjb2xvcicsXG5cdCdsaXRlJzogJ2xpZ2h0ZW4nLFxuXHQnc2Nybic6ICdzY3JlZW4nLFxuXHQnZGl2ICc6ICdjb2xvciBkb2RnZScsXG5cdCdsZGRnJzogJ2xpbmVhciBkb2RnZScsXG5cdCdsZ0NsJzogJ2xpZ2h0ZXIgY29sb3InLFxuXHQnb3Zlcic6ICdvdmVybGF5Jyxcblx0J3NMaXQnOiAnc29mdCBsaWdodCcsXG5cdCdoTGl0JzogJ2hhcmQgbGlnaHQnLFxuXHQndkxpdCc6ICd2aXZpZCBsaWdodCcsXG5cdCdsTGl0JzogJ2xpbmVhciBsaWdodCcsXG5cdCdwTGl0JzogJ3BpbiBsaWdodCcsXG5cdCdoTWl4JzogJ2hhcmQgbWl4Jyxcblx0J2RpZmYnOiAnZGlmZmVyZW5jZScsXG5cdCdzbXVkJzogJ2V4Y2x1c2lvbicsXG5cdCdmc3ViJzogJ3N1YnRyYWN0Jyxcblx0J2ZkaXYnOiAnZGl2aWRlJyxcblx0J2h1ZSAnOiAnaHVlJyxcblx0J3NhdCAnOiAnc2F0dXJhdGlvbicsXG5cdCdjb2xyJzogJ2NvbG9yJyxcblx0J2x1bSAnOiAnbHVtaW5vc2l0eScsXG59O1xuXG5PYmplY3Qua2V5cyh0b0JsZW5kTW9kZSkuZm9yRWFjaChrZXkgPT4gZnJvbUJsZW5kTW9kZVt0b0JsZW5kTW9kZVtrZXldXSA9IGtleSk7XG5cbmV4cG9ydCBjb25zdCBsYXllckNvbG9yczogTGF5ZXJDb2xvcltdID0gW1xuXHQnbm9uZScsICdyZWQnLCAnb3JhbmdlJywgJ3llbGxvdycsICdncmVlbicsICdibHVlJywgJ3Zpb2xldCcsICdncmF5J1xuXTtcblxuZXhwb3J0IGNvbnN0IGxhcmdlQWRkaXRpb25hbEluZm9LZXlzID0gW1xuXHQvLyBmcm9tIGRvY3VtZW50YXRpb25cblx0J0xNc2snLCAnTHIxNicsICdMcjMyJywgJ0xheXInLCAnTXQxNicsICdNdDMyJywgJ010cm4nLCAnQWxwaCcsICdGTXNrJywgJ2xuazInLCAnRkVpZCcsICdGWGlkJywgJ1B4U0QnLFxuXHQvLyBmcm9tIGd1ZXNzaW5nXG5cdCdjaW5mJyxcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGljdCB7XG5cdFtrZXk6IHN0cmluZ106IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJldk1hcChtYXA6IERpY3QpIHtcblx0Y29uc3QgcmVzdWx0OiBEaWN0ID0ge307XG5cdE9iamVjdC5rZXlzKG1hcCkuZm9yRWFjaChrZXkgPT4gcmVzdWx0W21hcFtrZXldXSA9IGtleSk7XG5cdHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbnVtPFQ+KHByZWZpeDogc3RyaW5nLCBkZWY6IHN0cmluZywgbWFwOiBEaWN0KSB7XG5cdGNvbnN0IHJldiA9IHJldk1hcChtYXApO1xuXHRjb25zdCBkZWNvZGUgPSAodmFsOiBzdHJpbmcpOiBUID0+IHtcblx0XHRjb25zdCB2YWx1ZSA9IHZhbC5zcGxpdCgnLicpWzFdO1xuXHRcdGlmICh2YWx1ZSAmJiAhcmV2W3ZhbHVlXSkgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgdmFsdWUgZm9yIGVudW06ICcke3ZhbH0nYCk7XG5cdFx0cmV0dXJuIChyZXZbdmFsdWVdIGFzIGFueSkgfHwgZGVmO1xuXHR9O1xuXHRjb25zdCBlbmNvZGUgPSAodmFsOiBUIHwgdW5kZWZpbmVkKTogc3RyaW5nID0+IHtcblx0XHRpZiAodmFsICYmICFtYXBbdmFsIGFzIGFueV0pIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZSBmb3IgZW51bTogJyR7dmFsfSdgKTtcblx0XHRyZXR1cm4gYCR7cHJlZml4fS4ke21hcFt2YWwgYXMgYW55XSB8fCBtYXBbZGVmXX1gO1xuXHR9O1xuXHRyZXR1cm4geyBkZWNvZGUsIGVuY29kZSB9O1xufVxuXG5leHBvcnQgY29uc3QgZW51bSBDb2xvclNwYWNlIHtcblx0UkdCID0gMCxcblx0SFNCID0gMSxcblx0Q01ZSyA9IDIsXG5cdExhYiA9IDcsXG5cdEdyYXlzY2FsZSA9IDgsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIExheWVyTWFza0ZsYWdzIHtcblx0UG9zaXRpb25SZWxhdGl2ZVRvTGF5ZXIgPSAxLFxuXHRMYXllck1hc2tEaXNhYmxlZCA9IDIsXG5cdEludmVydExheWVyTWFza1doZW5CbGVuZGluZyA9IDQsIC8vIG9ic29sZXRlXG5cdExheWVyTWFza0Zyb21SZW5kZXJpbmdPdGhlckRhdGEgPSA4LFxuXHRNYXNrSGFzUGFyYW1ldGVyc0FwcGxpZWRUb0l0ID0gMTYsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIE1hc2tQYXJhbXMge1xuXHRVc2VyTWFza0RlbnNpdHkgPSAxLFxuXHRVc2VyTWFza0ZlYXRoZXIgPSAyLFxuXHRWZWN0b3JNYXNrRGVuc2l0eSA9IDQsXG5cdFZlY3Rvck1hc2tGZWF0aGVyID0gOCxcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gQ2hhbm5lbElEIHtcblx0Q29sb3IwID0gMCwgLy8gcmVkIChyZ2IpIC8gY3lhbiAoY215aylcblx0Q29sb3IxID0gMSwgLy8gZ3JlZW4gKHJnYikgLyBtYWdlbnRhIChjbXlrKVxuXHRDb2xvcjIgPSAyLCAvLyBibHVlIChyZ2IpIC8geWVsbG93IChjbXlrKVxuXHRDb2xvcjMgPSAzLCAvLyAtIChyZ2IpIC8gYmxhY2sgKGNteWspXG5cdFRyYW5zcGFyZW5jeSA9IC0xLFxuXHRVc2VyTWFzayA9IC0yLFxuXHRSZWFsVXNlck1hc2sgPSAtMyxcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gQ29tcHJlc3Npb24ge1xuXHRSYXdEYXRhID0gMCxcblx0UmxlQ29tcHJlc3NlZCA9IDEsXG5cdFppcFdpdGhvdXRQcmVkaWN0aW9uID0gMixcblx0WmlwV2l0aFByZWRpY3Rpb24gPSAzLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYW5uZWxEYXRhIHtcblx0Y2hhbm5lbElkOiBDaGFubmVsSUQ7XG5cdGNvbXByZXNzaW9uOiBDb21wcmVzc2lvbjtcblx0YnVmZmVyOiBVaW50OEFycmF5IHwgdW5kZWZpbmVkO1xuXHRsZW5ndGg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb3VuZHMge1xuXHR0b3A6IG51bWJlcjtcblx0bGVmdDogbnVtYmVyO1xuXHRyaWdodDogbnVtYmVyO1xuXHRib3R0b206IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXllckNoYW5uZWxEYXRhIHtcblx0bGF5ZXI6IExheWVyO1xuXHRjaGFubmVsczogQ2hhbm5lbERhdGFbXTtcblx0dG9wOiBudW1iZXI7XG5cdGxlZnQ6IG51bWJlcjtcblx0cmlnaHQ6IG51bWJlcjtcblx0Ym90dG9tOiBudW1iZXI7XG5cdG1hc2s/OiBCb3VuZHM7XG59XG5cbmV4cG9ydCB0eXBlIFBpeGVsQXJyYXkgPSBVaW50OENsYW1wZWRBcnJheSB8IFVpbnQ4QXJyYXk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGl4ZWxEYXRhIHtcblx0ZGF0YTogUGl4ZWxBcnJheTtcblx0d2lkdGg6IG51bWJlcjtcblx0aGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvZmZzZXRGb3JDaGFubmVsKGNoYW5uZWxJZDogQ2hhbm5lbElELCBjbXlrOiBib29sZWFuKSB7XG5cdHN3aXRjaCAoY2hhbm5lbElkKSB7XG5cdFx0Y2FzZSBDaGFubmVsSUQuQ29sb3IwOiByZXR1cm4gMDtcblx0XHRjYXNlIENoYW5uZWxJRC5Db2xvcjE6IHJldHVybiAxO1xuXHRcdGNhc2UgQ2hhbm5lbElELkNvbG9yMjogcmV0dXJuIDI7XG5cdFx0Y2FzZSBDaGFubmVsSUQuQ29sb3IzOiByZXR1cm4gY215ayA/IDMgOiBjaGFubmVsSWQgKyAxO1xuXHRcdGNhc2UgQ2hhbm5lbElELlRyYW5zcGFyZW5jeTogcmV0dXJuIGNteWsgPyA0IDogMztcblx0XHRkZWZhdWx0OiByZXR1cm4gY2hhbm5lbElkICsgMTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhbXAodmFsdWU6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKSB7XG5cdHJldHVybiB2YWx1ZSA8IG1pbiA/IG1pbiA6ICh2YWx1ZSA+IG1heCA/IG1heCA6IHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0FscGhhKGRhdGE6IFBpeGVsRGF0YSkge1xuXHRjb25zdCBzaXplID0gZGF0YS53aWR0aCAqIGRhdGEuaGVpZ2h0ICogNDtcblxuXHRmb3IgKGxldCBpID0gMzsgaSA8IHNpemU7IGkgKz0gNCkge1xuXHRcdGlmIChkYXRhLmRhdGFbaV0gIT09IDI1NSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRJbWFnZURhdGEoeyBkYXRhIH06IFBpeGVsRGF0YSkge1xuXHRjb25zdCBidWZmZXIgPSBuZXcgVWludDMyQXJyYXkoZGF0YS5idWZmZXIpO1xuXHRjb25zdCBzaXplID0gYnVmZmVyLmxlbmd0aCB8IDA7XG5cblx0Zm9yIChsZXQgcCA9IDA7IHAgPCBzaXplOyBwID0gKHAgKyAxKSB8IDApIHtcblx0XHRidWZmZXJbcF0gPSAweGZmMDAwMDAwO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVCaXRtYXAoaW5wdXQ6IFBpeGVsQXJyYXksIG91dHB1dDogUGl4ZWxBcnJheSwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpIHtcblx0Zm9yIChsZXQgeSA9IDAsIHAgPSAwLCBvID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7XG5cdFx0Zm9yIChsZXQgeCA9IDA7IHggPCB3aWR0aDspIHtcblx0XHRcdGxldCBiID0gaW5wdXRbbysrXTtcblxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCA4ICYmIHggPCB3aWR0aDsgaSsrLCB4KyspIHtcblx0XHRcdFx0Y29uc3QgdiA9IGIgJiAweDgwID8gMCA6IDI1NTtcblx0XHRcdFx0YiA9IGIgPDwgMTtcblx0XHRcdFx0b3V0cHV0W3ArK10gPSB2O1xuXHRcdFx0XHRvdXRwdXRbcCsrXSA9IHY7XG5cdFx0XHRcdG91dHB1dFtwKytdID0gdjtcblx0XHRcdFx0b3V0cHV0W3ArK10gPSAyNTU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZURhdGFSYXcoZGF0YTogUGl4ZWxEYXRhLCBvZmZzZXQ6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpIHtcblx0aWYgKCF3aWR0aCB8fCAhaGVpZ2h0KVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cblx0Y29uc3QgYXJyYXkgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCk7XG5cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuXHRcdGFycmF5W2ldID0gZGF0YS5kYXRhW2kgKiA0ICsgb2Zmc2V0XTtcblx0fVxuXG5cdHJldHVybiBhcnJheTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlRGF0YVJMRShcblx0YnVmZmVyOiBVaW50OEFycmF5LCB7IGRhdGEgfTogUGl4ZWxEYXRhLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgb2Zmc2V0czogbnVtYmVyW10sXG5cdGxhcmdlOiBib29sZWFuXG4pIHtcblx0aWYgKCF3aWR0aCB8fCAhaGVpZ2h0KSByZXR1cm4gdW5kZWZpbmVkO1xuXG5cdGNvbnN0IHN0cmlkZSA9ICg0ICogd2lkdGgpIHwgMDtcblxuXHRsZXQgb2wgPSAwO1xuXHRsZXQgbyA9IChvZmZzZXRzLmxlbmd0aCAqIChsYXJnZSA/IDQgOiAyKSAqIGhlaWdodCkgfCAwO1xuXG5cdGZvciAoY29uc3Qgb2Zmc2V0IG9mIG9mZnNldHMpIHtcblx0XHRmb3IgKGxldCB5ID0gMCwgcCA9IG9mZnNldCB8IDA7IHkgPCBoZWlnaHQ7IHkrKykge1xuXHRcdFx0Y29uc3Qgc3RyaWRlU3RhcnQgPSAoeSAqIHN0cmlkZSkgfCAwO1xuXHRcdFx0Y29uc3Qgc3RyaWRlRW5kID0gKHN0cmlkZVN0YXJ0ICsgc3RyaWRlKSB8IDA7XG5cdFx0XHRjb25zdCBsYXN0SW5kZXggPSAoc3RyaWRlRW5kICsgb2Zmc2V0IC0gNCkgfCAwO1xuXHRcdFx0Y29uc3QgbGFzdEluZGV4MiA9IChsYXN0SW5kZXggLSA0KSB8IDA7XG5cdFx0XHRjb25zdCBzdGFydE9mZnNldCA9IG87XG5cblx0XHRcdGZvciAocCA9IChzdHJpZGVTdGFydCArIG9mZnNldCkgfCAwOyBwIDwgc3RyaWRlRW5kOyBwID0gKHAgKyA0KSB8IDApIHtcblx0XHRcdFx0aWYgKHAgPCBsYXN0SW5kZXgyKSB7XG5cdFx0XHRcdFx0bGV0IHZhbHVlMSA9IGRhdGFbcF07XG5cdFx0XHRcdFx0cCA9IChwICsgNCkgfCAwO1xuXHRcdFx0XHRcdGxldCB2YWx1ZTIgPSBkYXRhW3BdO1xuXHRcdFx0XHRcdHAgPSAocCArIDQpIHwgMDtcblx0XHRcdFx0XHRsZXQgdmFsdWUzID0gZGF0YVtwXTtcblxuXHRcdFx0XHRcdGlmICh2YWx1ZTEgPT09IHZhbHVlMiAmJiB2YWx1ZTEgPT09IHZhbHVlMykge1xuXHRcdFx0XHRcdFx0bGV0IGNvdW50ID0gMztcblxuXHRcdFx0XHRcdFx0d2hpbGUgKGNvdW50IDwgMTI4ICYmIHAgPCBsYXN0SW5kZXggJiYgZGF0YVsocCArIDQpIHwgMF0gPT09IHZhbHVlMSkge1xuXHRcdFx0XHRcdFx0XHRjb3VudCA9IChjb3VudCArIDEpIHwgMDtcblx0XHRcdFx0XHRcdFx0cCA9IChwICsgNCkgfCAwO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IDEgLSBjb3VudDtcblx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gdmFsdWUxO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zdCBjb3VudEluZGV4ID0gbztcblx0XHRcdFx0XHRcdGxldCB3cml0ZUxhc3QgPSB0cnVlO1xuXHRcdFx0XHRcdFx0bGV0IGNvdW50ID0gMTtcblx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gMDtcblx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gdmFsdWUxO1xuXG5cdFx0XHRcdFx0XHR3aGlsZSAocCA8IGxhc3RJbmRleCAmJiBjb3VudCA8IDEyOCkge1xuXHRcdFx0XHRcdFx0XHRwID0gKHAgKyA0KSB8IDA7XG5cdFx0XHRcdFx0XHRcdHZhbHVlMSA9IHZhbHVlMjtcblx0XHRcdFx0XHRcdFx0dmFsdWUyID0gdmFsdWUzO1xuXHRcdFx0XHRcdFx0XHR2YWx1ZTMgPSBkYXRhW3BdO1xuXG5cdFx0XHRcdFx0XHRcdGlmICh2YWx1ZTEgPT09IHZhbHVlMiAmJiB2YWx1ZTEgPT09IHZhbHVlMykge1xuXHRcdFx0XHRcdFx0XHRcdHAgPSAocCAtIDEyKSB8IDA7XG5cdFx0XHRcdFx0XHRcdFx0d3JpdGVMYXN0ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0Y291bnQrKztcblx0XHRcdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IHZhbHVlMTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRpZiAod3JpdGVMYXN0KSB7XG5cdFx0XHRcdFx0XHRcdGlmIChjb3VudCA8IDEyNykge1xuXHRcdFx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gdmFsdWUyO1xuXHRcdFx0XHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gdmFsdWUzO1xuXHRcdFx0XHRcdFx0XHRcdGNvdW50ICs9IDI7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoY291bnQgPCAxMjgpIHtcblx0XHRcdFx0XHRcdFx0XHRidWZmZXJbbysrXSA9IHZhbHVlMjtcblx0XHRcdFx0XHRcdFx0XHRjb3VudCsrO1xuXHRcdFx0XHRcdFx0XHRcdHAgPSAocCAtIDQpIHwgMDtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRwID0gKHAgLSA4KSB8IDA7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0YnVmZmVyW2NvdW50SW5kZXhdID0gY291bnQgLSAxO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmIChwID09PSBsYXN0SW5kZXgpIHtcblx0XHRcdFx0XHRidWZmZXJbbysrXSA9IDA7XG5cdFx0XHRcdFx0YnVmZmVyW28rK10gPSBkYXRhW3BdO1xuXHRcdFx0XHR9IGVsc2UgeyAvLyBwID09PSBsYXN0SW5kZXgyXG5cdFx0XHRcdFx0YnVmZmVyW28rK10gPSAxO1xuXHRcdFx0XHRcdGJ1ZmZlcltvKytdID0gZGF0YVtwXTtcblx0XHRcdFx0XHRwID0gKHAgKyA0KSB8IDA7XG5cdFx0XHRcdFx0YnVmZmVyW28rK10gPSBkYXRhW3BdO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGxlbmd0aCA9IG8gLSBzdGFydE9mZnNldDtcblxuXHRcdFx0aWYgKGxhcmdlKSB7XG5cdFx0XHRcdGJ1ZmZlcltvbCsrXSA9IChsZW5ndGggPj4gMjQpICYgMHhmZjtcblx0XHRcdFx0YnVmZmVyW29sKytdID0gKGxlbmd0aCA+PiAxNikgJiAweGZmO1xuXHRcdFx0fVxuXG5cdFx0XHRidWZmZXJbb2wrK10gPSAobGVuZ3RoID4+IDgpICYgMHhmZjtcblx0XHRcdGJ1ZmZlcltvbCsrXSA9IGxlbmd0aCAmIDB4ZmY7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGJ1ZmZlci5zbGljZSgwLCBvKTtcbn1cblxuZXhwb3J0IGxldCBjcmVhdGVDYW52YXM6ICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4gSFRNTENhbnZhc0VsZW1lbnQgPSAoKSA9PiB7XG5cdHRocm93IG5ldyBFcnJvcignQ2FudmFzIG5vdCBpbml0aWFsaXplZCwgdXNlIGluaXRpYWxpemVDYW52YXMgbWV0aG9kIHRvIHNldCB1cCBjcmVhdGVDYW52YXMgbWV0aG9kJyk7XG59O1xuXG5leHBvcnQgbGV0IGNyZWF0ZUNhbnZhc0Zyb21EYXRhOiAoZGF0YTogVWludDhBcnJheSkgPT4gSFRNTENhbnZhc0VsZW1lbnQgPSAoKSA9PiB7XG5cdHRocm93IG5ldyBFcnJvcignQ2FudmFzIG5vdCBpbml0aWFsaXplZCwgdXNlIGluaXRpYWxpemVDYW52YXMgbWV0aG9kIHRvIHNldCB1cCBjcmVhdGVDYW52YXNGcm9tRGF0YSBtZXRob2QnKTtcbn07XG5cbmxldCB0ZW1wQ2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuZXhwb3J0IGxldCBjcmVhdGVJbWFnZURhdGE6ICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4gSW1hZ2VEYXRhID0gKHdpZHRoLCBoZWlnaHQpID0+IHtcblx0aWYgKCF0ZW1wQ2FudmFzKSB0ZW1wQ2FudmFzID0gY3JlYXRlQ2FudmFzKDEsIDEpO1xuXHRyZXR1cm4gdGVtcENhbnZhcy5nZXRDb250ZXh0KCcyZCcpIS5jcmVhdGVJbWFnZURhdGEod2lkdGgsIGhlaWdodCk7XG59O1xuXG5pZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuXHRjcmVhdGVDYW52YXMgPSAod2lkdGgsIGhlaWdodCkgPT4ge1xuXHRcdGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuXHRcdGNhbnZhcy53aWR0aCA9IHdpZHRoO1xuXHRcdGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XG5cdFx0cmV0dXJuIGNhbnZhcztcblx0fTtcblxuXHRjcmVhdGVDYW52YXNGcm9tRGF0YSA9IChkYXRhKSA9PiB7XG5cdFx0Y29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcblx0XHRpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwnICsgZnJvbUJ5dGVBcnJheShkYXRhKTtcblx0XHRjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcblx0XHRjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aDtcblx0XHRjYW52YXMuaGVpZ2h0ID0gaW1hZ2UuaGVpZ2h0O1xuXHRcdGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpIS5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDApO1xuXHRcdHJldHVybiBjYW52YXM7XG5cdH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplQ2FudmFzKFxuXHRjcmVhdGVDYW52YXNNZXRob2Q6ICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4gSFRNTENhbnZhc0VsZW1lbnQsXG5cdGNyZWF0ZUNhbnZhc0Zyb21EYXRhTWV0aG9kPzogKGRhdGE6IFVpbnQ4QXJyYXkpID0+IEhUTUxDYW52YXNFbGVtZW50LFxuXHRjcmVhdGVJbWFnZURhdGFNZXRob2Q/OiAod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IEltYWdlRGF0YVxuKSB7XG5cdGNyZWF0ZUNhbnZhcyA9IGNyZWF0ZUNhbnZhc01ldGhvZDtcblx0Y3JlYXRlQ2FudmFzRnJvbURhdGEgPSBjcmVhdGVDYW52YXNGcm9tRGF0YU1ldGhvZCB8fCBjcmVhdGVDYW52YXNGcm9tRGF0YTtcblx0Y3JlYXRlSW1hZ2VEYXRhID0gY3JlYXRlSW1hZ2VEYXRhTWV0aG9kIHx8IGNyZWF0ZUltYWdlRGF0YTtcbn1cbiJdLCJzb3VyY2VSb290IjoiQzpcXFByb2plY3RzXFxnaXRodWJcXGFnLXBzZFxcc3JjIn0=
|