@witnet/sdk 3.1.7 → 3.2.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/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@witnet/sdk",
3
- "version": "3.1.7",
3
+ "version": "3.2.0",
4
4
  "description": "Typescript library and CLI tooling for Web3 buidlers willing to interact with the Witnet blockchain.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -80,6 +80,7 @@
80
80
  "promise-poller": "^1.9.1",
81
81
  "protobufjs": "^7.5.4",
82
82
  "qrcode-terminal": "^0.12.0",
83
+ "tree-kill": "^1.2.2",
83
84
  "secp256k1": "^5.0.1"
84
85
  },
85
86
  "devDependencies": {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/bin/helpers.js"],"names":[],"mappings":"AAwBA,kDAOC;AA2ED,mDAKC;AAED,iDAEC;AAED,oEA8EC;AAED,8FAiBC;AAED,8DAsBC;AAED,uEAGC;AAED,yDAsCC;AAED,gEAKC;AAED,+CAMC;AAED,qEAUC;AAED,6CAOC;AAED,uDAMC;AAED,mDASC;AAED,iGAUC;AAED,mDAmBC;AAED,iDAwBC;AAED,4EAwBC;AAED,qDAoBC;AAED,8EAKC;AAED,oCAEC;AAED,8DAWC;AAED,wDAqBC;AAED,8CAEC;AAED,2DAeC;AAED;;EAWC;AAED,4FAaC;AAED,mEA8DC;AAED,gDAEC;AAED,gEAQC;AAED,6CAyBC;AAED,mDAmCC;AAED,oDAWC;AAED,4CAeC;AAED,0CAMC;AAED,uDAuBC;AAED,gGAIC;AAED,6DAiEC;AAUD,0DAcC;AAED,iEAgBC;AAED,iEAIC;AAED,mEAqBC;AAED,4DAkCC;AAED,+EAgDC;AAED,+CAeC;AAr9BM,0CACwF;AAExF,4CAON;AAWM,6DAeN;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,yCAAuD;AACvD,yCAAmD;AACnD,0CAAoD;AACpD,wCAAkD;AAClD,2CAAqD;AAErD,yCAAgD;AAChD,yCAAgD;AAChD,0CAAiD;AACjD,4CAAmD;AACnD,2CAAkD;AAClD,yCAA8C;AAC9C,yCAA8C;AAC9C,0CAA+C;AAC/C,4CAAmD;AACnD,wCAA6C;AAC7C,2CAAgD;AAEhD,wCAA6C;AAC7C,wCAA6C;AAC7C,wCAA6C;AAC7C,yCAA8C;AAC9C,2CAAkD;AAClD,0CAA+C;AAC/C,uCAA4C;AAC5C,yCAAgD;AAChD,0CAA+C"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/bin/helpers.js"],"names":[],"mappings":"AAyBA,kDAOC;AA2ED,mDAKC;AAED,iDAEC;AAED,oEAsEC;AAED,8FAiBC;AAED,8DAsBC;AAED,uEAGC;AAED,yDAsCC;AAED,gEAKC;AAED,+CAMC;AAED,qEAUC;AAED,6CAOC;AAED,uDAMC;AAED,mDASC;AAED,iGAUC;AAED,mDAmBC;AAED,iDAwBC;AAED,4EAwBC;AAED,qDAoBC;AAED,8EAKC;AAED,oCAEC;AAED,8DAWC;AAED,wDAqBC;AAED,8CAEC;AAED,2DAeC;AAED;;EAWC;AAED,4FAaC;AAED,mEA+CC;AAED,gDAEC;AAED,gEAQC;AAED,6CAyBC;AAED,mDAmCC;AAED,oDAWC;AAED,4CAeC;AAED,0CAMC;AAED,uDAuBC;AAED,gGAIC;AAED,6DAiEC;AAUD,0DAcC;AAED,iEAgBC;AAED,iEAIC;AAED,mEAqBC;AAED,4DAkCC;AAED,+EAgDC;AAED,+CAeC;AA97BM,0CACwF;AAExF,4CAON;AAWM,6DAeN;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,yCAAuD;AACvD,yCAAmD;AACnD,0CAAoD;AACpD,wCAAkD;AAClD,2CAAqD;AAErD,yCAAgD;AAChD,yCAAgD;AAChD,0CAAiD;AACjD,4CAAmD;AACnD,2CAAkD;AAClD,yCAA8C;AAC9C,yCAA8C;AAC9C,0CAA+C;AAC/C,4CAAmD;AACnD,wCAA6C;AAC7C,2CAAgD;AAEhD,wCAA6C;AAC7C,wCAA6C;AAC7C,wCAA6C;AAC7C,yCAA8C;AAC9C,2CAAkD;AAClD,0CAA+C;AAC/C,uCAA4C;AAC5C,yCAAgD;AAChD,0CAA+C"}
@@ -6,6 +6,7 @@ import * as os from "node:os";
6
6
  import path from "node:path";
7
7
  import * as readline from "node:readline";
8
8
  import moment from "moment";
9
+ import kill from "tree-kill";
9
10
  const require = createRequire(import.meta.url);
10
11
  const _TOOLKIT_RUN_TIMEOUT_MSECS = 30000;
11
12
  export const colorstrip = (str) => str.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, "");
@@ -132,18 +133,10 @@ export function cmd(timeout, ...commands) {
132
133
  console.debug(" Command:", `${bin} ${args.join(" ")}`);
133
134
  if (!child.pid)
134
135
  return;
135
- try {
136
- if (process.platform === "win32") {
137
- spawn("taskkill", ["/PID", child.pid.toString(), "/T", "/F"]);
138
- }
139
- else {
140
- // kill entire process group
141
- process.kill(child.pid, "SIGKILL");
142
- }
143
- }
144
- catch (err) {
145
- console.debug(" Error:", err);
146
- }
136
+ kill(child.pid, (err) => {
137
+ if (err)
138
+ console.debug(" Error:", err);
139
+ });
147
140
  };
148
141
  const timer = timeout > 0
149
142
  ? setTimeout(() => {
@@ -519,27 +512,12 @@ export async function toolkitRun(settings, args) {
519
512
  let stdout = "";
520
513
  let stderr = "";
521
514
  let finished = false;
522
- const killTree = () => {
523
- if (!child.pid)
524
- return;
525
- try {
526
- if (process.platform === "win32") {
527
- spawn("taskkill", ["/PID", child.pid.toString(), "/T", "/F"]);
528
- }
529
- else {
530
- // kill entire process group
531
- process.kill(child.pid, "SIGKILL");
532
- }
533
- }
534
- catch { }
535
- };
536
515
  child.stdout.on("data", (d) => (stdout += d.toString()));
537
516
  child.stderr.on("data", (d) => (stderr += d.toString()));
538
517
  child.on("error", (err) => {
539
518
  if (finished)
540
519
  return;
541
520
  finished = true;
542
- killTree();
543
521
  reject(err);
544
522
  });
545
523
  child.on("close", (code, signal) => {
@@ -547,12 +525,10 @@ export async function toolkitRun(settings, args) {
547
525
  return;
548
526
  finished = true;
549
527
  if (signal) {
550
- killTree();
551
528
  reject(new Error(`witnet_toolkit binary terminated by signal ${signal}`));
552
529
  return;
553
530
  }
554
531
  if (code !== 0) {
555
- killTree();
556
532
  reject(new Error(`witnet_toolkit binary failed with exit code ${code}\n${stderr}`));
557
533
  return;
558
534
  }
@@ -929,4 +905,4 @@ export function unescapeSlashes(str) {
929
905
  }
930
906
  return parsedStr;
931
907
  }
932
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vaGVscGVycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sS0FBSyxRQUFRLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMvQyxNQUFNLDBCQUEwQixHQUFHLEtBQUssQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNqQyxHQUFHLENBQUMsT0FBTyxDQUFDLDZFQUE2RSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRWhHLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsTUFBTSxNQUFNLEdBQ1gsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLEVBQUU7UUFDckQsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9B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Q0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7QUFDcEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7QUFDckQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7QUFDbkQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7QUFFdEQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDakQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDakQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDbEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDcEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDbkQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7QUFDL0MsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7QUFDL0MsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7QUFDaEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDcEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENB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QUMsR0FBRyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEtBQUssS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTztJQUMxQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDN0MsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckYsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUYsSUFBSSxDQUFDLE9BQU87UUFBRSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQzNCLE1BQU0sTUFBTSxHQUFHLE9BQU8sRUFB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QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5pbXBvcnQgKiBhcyBuZXQgZnJvbSBcIm5vZGU6bmV0XCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0ICogYXMgcmVhZGxpbmUgZnJvbSBcIm5vZGU6cmVhZGxpbmVcIjtcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuXG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuY29uc3QgX1RPT0xLSVRfUlVOX1RJTUVPVVRfTVNFQ1MgPSAzMDAwMDtcblxuZXhwb3J0IGNvbnN0IGNvbG9yc3RyaXAgPSAoc3RyKSA9PlxuXHRzdHIucmVwbGFjZSgvW1xcdTAwMWJcXHUwMDliXVtbKCkjOz9dKig/OlswLTldezEsNH0oPzo7WzAtOV17MCw0fSkqKT9bMC05QS1PUlpjZi1ucXJ5PT48XS9nLCBcIlwiKTtcblxuZXhwb3J0IGNvbnN0IGNvbW1hcyA9IChudW1iZXIpID0+IHtcblx0Y29uc3QgcGFydHMgPSBudW1iZXIudG9TdHJpbmcoKS5zcGxpdChcIi5cIik7XG5cdGNvbnN0IHJlc3VsdCA9XG5cdFx0cGFydHMubGVuZ3RoIDw9IDFcblx0XHRcdD8gYCR7cGFydHNbMF0ucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgXCIsXCIpfWBcblx0XHRcdDogYCR7cGFydHNbMF0ucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgXCIsXCIpfS4ke3BhcnRzWzFdfWA7XG5cdHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdG9GaXhlZFRydW5jKHgsIG4pIHtcblx0Y29uc3QgdiA9ICh0eXBlb2YgeCA9PT0gXCJzdHJpbmdcIiA/IHggOiB4LnRvU3RyaW5nKCkpLnNwbGl0KFwiLlwiKTtcblx0aWYgKG4gPD0gMCkgcmV0dXJuIHZbMF07XG5cdGxldCBmID0gdlsxXSB8fCBcIlwiO1xuXHRpZiAoZi5sZW5ndGggPiBuKSByZXR1cm4gYCR7dlswXX0uJHtmLnN1YnN0cigwLCBuKX1gO1xuXHR3aGlsZSAoZi5sZW5ndGggPCBuKSBmICs9IFwiMFwiO1xuXHRyZXR1cm4gYCR7dlswXX0uJHtmfWA7XG59XG5cbmV4cG9ydCBjb25zdCB3aG9sZV93aXRzID0gKG51bWJlciwgZGlnaXRzKSA9PiB7XG5cdGNvbnN0IGxvb2t1cCA9IFtcblx0XHR7IHZhbHVlOiAxbiwgc3ltYm9sOiBcInBlZHJvc1wiIH0sXG5cdFx0eyB2YWx1ZTogMTBuICoqIDZuLCBzeW1ib2w6IFwibVdpdHNcIiB9LFxuXHRcdHsgdmFsdWU6IDEwbiAqKiA5biwgc3ltYm9sOiBcIiBXaXRzXCIgfSxcblx0XHR7IHZhbHVlOiAxMG4gKiogMTJuLCBzeW1ib2w6IFwiS1dpdHNcIiB9LFxuXHRcdHsgdmFsdWU6IDEwbiAqKiAxNW4sIHN5bWJvbDogXCJNV2l0c1wiIH0sXG5cdF07XG5cdC8vIGNvbnN0IHJlZ2V4cCA9IC9cXC4wKyR8KD88PVxcLlswLTldKTArJC9cblx0Y29uc3QgaXRlbSA9IGxvb2t1cC5maW5kTGFzdCgoaXRlbSkgPT4gbnVtYmVyID49IGl0ZW0udmFsdWUpO1xuXHRjb25zdCBxdW90aWVudCA9IGl0ZW0gPyBOdW1iZXIoQmlnSW50KG51bWJlcikgLyBpdGVtLnZhbHVlKSA6IG51bWJlci50b1N0cmluZygpO1xuXHRjb25zdCBkZWNpbWFscyA9IGl0ZW0gPyAoaXRlbS52YWx1ZSArIEJpZ0ludChudW1iZXIpIC0gQmlnSW50KHF1b3RpZW50KSAqIGl0ZW0udmFsdWUpLnRvU3RyaW5nKCkuc2xpY2UoMSkgOiBcIlwiO1xuXHRyZXR1cm4gaXRlbVxuXHRcdD8gYCR7Y29tbWFzKHF1b3RpZW50KX0ke2RlY2ltYWxzICE9PSBcIlwiID8gYC4ke2RlY2ltYWxzLnNsaWNlKDAsIGRpZ2l0cyl9YCA6IFwiXCJ9ICR7aXRlbS5zeW1ib2x9YFxuXHRcdDogXCIobm8gY29pbnMpXCI7XG59O1xuXG5jb25zdCBiYmx1ZSA9IChzdHIpID0+IGBcXHgxYlsxOzk4OzQ0bSR7c3RyfVxceDFiWzA7MDswbWA7XG5jb25zdCBiY3lhbiA9IChzdHIpID0+IGBcXHgxYlszODs0Nm0ke3N0cn1cXHgxYlswOzBtYDtcbmNvbnN0IGJncmVlbiA9IChzdHIpID0+IGBcXHgxYlszMDs0Mm0ke3N0cn1cXHgxYlswOzBtYDtcbmNvbnN0IGJyZWQgPSAoc3RyKSA9PiBgXFx4MWJbMzA7NDFtJHtzdHJ9XFx4MWJbMDswbWA7XG5jb25zdCBidmlvbGV0ID0gKHN0cikgPT4gYFxceDFiWzMwOzQ1bSR7c3RyfVxceDFiWzA7MG1gO1xuXG5jb25zdCBsY3lhbiA9IChzdHIpID0+IGBcXHgxYlsxOzk2bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IGxncmF5ID0gKHN0cikgPT4gYFxceDFiWzE7OTBtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbGdyZWVuID0gKHN0cikgPT4gYFxceDFiWzE7OTJtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbG1hZ2VudGEgPSAoc3RyKSA9PiBgXFx4MWJbMTs5NW0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBseWVsbG93ID0gKHN0cikgPT4gYFxceDFiWzE7OTNtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbWJsdWUgPSAoc3RyKSA9PiBgXFx4MWJbOTRtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbWN5YW4gPSAoc3RyKSA9PiBgXFx4MWJbOTZtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbWdyZWVuID0gKHN0cikgPT4gYFxceDFiWzkybSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IG1tYWdlbnRhID0gKHN0cikgPT4gYFxceDFiWzA7OTVtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbXJlZCA9IChzdHIpID0+IGBcXHgxYls5MW0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBteWVsbG93ID0gKHN0cikgPT4gYFxceDFiWzkzbSR7c3RyfVxceDFiWzBtYDtcblxuY29uc3QgYmx1ZSA9IChzdHIpID0+IGBcXHgxYlszNG0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBjeWFuID0gKHN0cikgPT4gYFxceDFiWzM2bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IGdyYXkgPSAoc3RyKSA9PiBgXFx4MWJbOTBtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgZ3JlZW4gPSAoc3RyKSA9PiBgXFx4MWJbMzJtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbWFnZW50YSA9IChzdHIpID0+IGBcXHgxYlswOzM1bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IG5vcm1hbCA9IChzdHIpID0+IGBcXHgxYls5OG0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCByZWQgPSAoc3RyKSA9PiBgXFx4MWJbMzFtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3Qgd2hpdGUgPSAoc3RyKSA9PiBgXFx4MWJbMTs5OG0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCB5ZWxsb3cgPSAoc3RyKSA9PiBgXFx4MWJbMzNtJHtzdHJ9XFx4MWJbMG1gO1xuXG5leHBvcnQgY29uc3QgY29sb3JzID0ge1xuXHRiYmx1ZSxcblx0YmN5YW4sXG5cdGJncmVlbixcblx0YnJlZCxcblx0YnZpb2xldCxcblx0bGN5YW4sXG5cdGxncmF5LFxuXHRsZ3JlZW4sXG5cdGxtYWdlbnRhLFxuXHRseWVsbG93LFxuXHRtYmx1ZSxcblx0bWN5YW4sXG5cdG1ncmVlbixcblx0bW1hZ2VudGEsXG5cdG1yZWQsXG5cdG15ZWxsb3csXG5cdGJsdWUsXG5cdGN5YW4sXG5cdGdyYXksXG5cdGdyZWVuLFxuXHRtYWdlbnRhLFxuXHRub3JtYWwsXG5cdHJlZCxcblx0d2hpdGUsXG5cdHllbGxvdyxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb3VudExlYXZlcyh0LCBvYmopIHtcblx0aWYgKCFvYmogfHwgdHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIDA7XG5cdGlmIChvYmogaW5zdGFuY2VvZiB0KSByZXR1cm4gMTtcblx0aWYgKEFycmF5LmlzQXJyYXkob2JqKSkgcmV0dXJuIG9iai5yZWR1Y2UoKHN1bSwgaXRlbSkgPT4gc3VtICsgY291bnRMZWF2ZXModCwgaXRlbSksIDApO1xuXHRlbHNlIHJldHVybiBPYmplY3QudmFsdWVzKG9iaikucmVkdWNlKChzdW0sIGl0ZW0pID0+IHN1bSArIGNvdW50TGVhdmVzKHQsIGl0ZW0pLCAwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGV0ZUV4dHJhRmxhZ3MoYXJncykge1xuXHRyZXR1cm4gYXJncy5maWx0ZXIoKGFyZykgPT4gIWFyZy5zdGFydHNXaXRoKFwiLS1cIikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY21kKHRpbWVvdXQsIC4uLmNvbW1hbmRzKSB7XG5cdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0Y29uc3QgW2JpbiwgLi4uYXJnc10gPSBjb21tYW5kcztcblx0XHRjb25zdCBjaGlsZCA9IHNwYXduKGJpbiwgYXJncywge1xuXHRcdFx0ZGV0YWNoZWQ6IHByb2Nlc3MuZW52LldJVFNES19EUllfUlVOX0RFVEFDSEVEXG5cdFx0XHRcdD8gQm9vbGVhbihwcm9jZXNzLmVudi5XSVRTREtfRFJZX1JVTl9ERVRBQ0hFRCA9PT0gXCJ0cnVlXCIpXG5cdFx0XHRcdDogcHJvY2Vzcy5wbGF0Zm9ybSAhPT0gXCJ3aW4zMlwiLFxuXHRcdFx0c2hlbGw6IHByb2Nlc3MuZW52LldJVFNES19EUllfUlVOX1NIRUxMXG5cdFx0XHRcdD8gQm9vbGVhbihwcm9jZXNzLmVudi5XSVRORVRfU0RLX0RSWV9SVU5fU0hFTEwgPT09IFwidHJ1ZVwiKVxuXHRcdFx0XHQ6IHByb2Nlc3MucGxhdGZvcm0gPT09IFwid2luMzJcIixcblx0XHRcdHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJwaXBlXCIsIFwicGlwZVwiXSxcblx0XHRcdGVudjoge1xuXHRcdFx0XHQuLi5wcm9jZXNzLmVudixcblx0XHRcdFx0TlBNX0NPTkZJR19ZRVM6IFwidHJ1ZVwiLCAvLyA9PiBwcmV2ZW50cyBucHggZnJvbSBzcGF3bmluZyBpbnRlcmFjdGl2ZSBwcm9tcHRzXG5cdFx0XHR9LFxuXHRcdH0pO1xuXG5cdFx0bGV0IHN0ZG91dCA9IFwiXCI7XG5cdFx0bGV0IHN0ZGVyciA9IFwiXCI7XG5cdFx0bGV0IGZpbmlzaGVkID0gZmFsc2U7XG5cblx0XHRjb25zdCBraWxsVHJlZSA9ICgpID0+IHtcblx0XHRcdGNvbnNvbGUuZGVidWcoXCI9PiBLaWxsaW5nIHByb2Nlc3MgdHJlZSB3aXRoIFBJRDpcIiwgY2hpbGQucGlkKTtcblx0XHRcdGNvbnNvbGUuZGVidWcoXCIgICBDb21tYW5kOlwiLCBgJHtiaW59ICR7YXJncy5qb2luKFwiIFwiKX1gKTtcblx0XHRcdGlmICghY2hpbGQucGlkKSByZXR1cm47XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiKSB7XG5cdFx0XHRcdFx0c3Bhd24oXCJ0YXNra2lsbFwiLCBbXCIvUElEXCIsIGNoaWxkLnBpZC50b1N0cmluZygpLCBcIi9UXCIsIFwiL0ZcIl0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIGtpbGwgZW50aXJlIHByb2Nlc3MgZ3JvdXBcblx0XHRcdFx0XHRwcm9jZXNzLmtpbGwoY2hpbGQucGlkLCBcIlNJR0tJTExcIik7XG5cdFx0XHRcdH1cblx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRjb25zb2xlLmRlYnVnKFwiICAgRXJyb3I6XCIsIGVycik7XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdGNvbnN0IHRpbWVyID1cblx0XHRcdHRpbWVvdXQgPiAwXG5cdFx0XHRcdD8gc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoZmluaXNoZWQpIHJldHVybjtcblx0XHRcdFx0XHRcdGZpbmlzaGVkID0gdHJ1ZTtcblx0XHRcdFx0XHRcdGtpbGxUcmVlKCk7XG5cdFx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKGBucHggc2hlbGwgY29tbWFuZCB0aW1lZCBvdXQgYWZ0ZXIgJHtjb21tYXModGltZW91dCl9IG1zYCkpO1xuXHRcdFx0XHRcdH0sIHRpbWVvdXQpXG5cdFx0XHRcdDogbnVsbDtcblxuXHRcdGNoaWxkLnN0ZG91dC5vbihcImRhdGFcIiwgKGQpID0+IChzdGRvdXQgKz0gZC50b1N0cmluZygpKSk7XG5cdFx0Y2hpbGQuc3RkZXJyLm9uKFwiZGF0YVwiLCAoZCkgPT4gKHN0ZGVyciArPSBkLnRvU3RyaW5nKCkpKTtcblxuXHRcdGNoaWxkLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ge1xuXHRcdFx0aWYgKGZpbmlzaGVkKSByZXR1cm47XG5cdFx0XHRmaW5pc2hlZCA9IHRydWU7XG5cdFx0XHRpZiAodGltZXIpIGNsZWFyVGltZW91dCh0aW1lcik7XG5cdFx0XHRraWxsVHJlZSgpO1xuXHRcdFx0cmVqZWN0KGVycik7XG5cdFx0fSk7XG5cblx0XHRjaGlsZC5vbihcImNsb3NlXCIsIChjb2RlLCBzaWduYWwpID0+IHtcblx0XHRcdGlmIChmaW5pc2hlZCkgcmV0dXJuO1xuXHRcdFx0ZmluaXNoZWQgPSB0cnVlO1xuXHRcdFx0aWYgKHRpbWVyKSBjbGVhclRpbWVvdXQodGltZXIpO1xuXG5cdFx0XHRpZiAoc2lnbmFsKSB7XG5cdFx0XHRcdGtpbGxUcmVlKCk7XG5cdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoYG5weCB0ZXJtaW5hdGVkIGJ5IHNpZ25hbCAke3NpZ25hbH1gKSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGNvZGUgIT09IDApIHtcblx0XHRcdFx0a2lsbFRyZWUoKTtcblx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcihgbnB4IGZhaWxlZCB3aXRoIGV4aXQgY29kZSAke2NvZGV9XFxuJHtzdGRlcnJ9YCkpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHJlc29sdmUoc3Rkb3V0KTtcblx0XHR9KTtcblx0fSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjUmFkb25CeXRlY29kZShieXRlY29kZSwgdGltZW91dCwgLi4uZmxhZ3MpIHtcblx0aWYgKCFpc0hleFN0cmluZyhieXRlY29kZSkpIHtcblx0XHR0aHJvdyBFdmFsRXJyb3IoXCJpbnZhbGlkIGhleCBzdHJpbmdcIik7XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3QgbnB4ID0gb3MudHlwZSgpID09PSBcIldpbmRvd3NfTlRcIiA/IFwibnB4LmNtZFwiIDogXCJucHhcIjtcblx0XHRyZXR1cm4gY21kKFxuXHRcdFx0dGltZW91dCB8fCBfVE9PTEtJVF9SVU5fVElNRU9VVF9NU0VDUyxcblx0XHRcdG5weCxcblx0XHRcdFwid2l0c2RrXCIsXG5cdFx0XHRcInJhZG9uXCIsXG5cdFx0XHRcImRyeS1ydW5cIixcblx0XHRcdGJ5dGVjb2RlLFxuXHRcdFx0XCItLXRpbWVvdXRcIixcblx0XHRcdHRpbWVvdXQgfHwgX1RPT0xLSVRfUlVOX1RJTUVPVVRfTVNFQ1MsXG5cdFx0XHQuLi5mbGFncyxcblx0XHQpO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RnJvbUFyZ3MoYXJncywgZmxhZ3MpIHtcblx0Y29uc3QgY3VyYXRlZCA9IHt9O1xuXHRpZiAoYXJncyAmJiBmbGFncykge1xuXHRcdE9iamVjdC5rZXlzKGZsYWdzKS5mb3JFYWNoKChmbGFnKSA9PiB7XG5cdFx0XHRjb25zdCBmbGFnSW5kZXggPSBhcmdzLmluZGV4T2YoYC0tJHtmbGFnfWApO1xuXHRcdFx0aWYgKGZsYWdJbmRleCA+PSAwKSB7XG5cdFx0XHRcdGlmIChmbGFnc1tmbGFnXS5wYXJhbSkge1xuXHRcdFx0XHRcdGN1cmF0ZWRbZmxhZ10gPSBhcmdzW2ZsYWdJbmRleF07XG5cdFx0XHRcdFx0aWYgKCFhcmdzW2ZsYWdJbmRleCArIDFdIHx8IGFyZ3NbZmxhZ0luZGV4ICsgMV0uc3RhcnRzV2l0aChcIi0tXCIpKSB7XG5cdFx0XHRcdFx0XHR0aHJvdyBFcnJvcihgTWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yIC0tJHtmbGFnfWApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjdXJhdGVkW2ZsYWddID0gYXJnc1tmbGFnSW5kZXggKyAxXTtcblx0XHRcdFx0XHRcdGFyZ3Muc3BsaWNlKGZsYWdJbmRleCwgMik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGN1cmF0ZWRbZmxhZ10gPSB0cnVlO1xuXHRcdFx0XHRcdGFyZ3Muc3BsaWNlKGZsYWdJbmRleCwgMSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gW2FyZ3MsIGN1cmF0ZWRdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJvbUhleFN0cmluZyhoZXhTdHJpbmcpIHtcblx0aWYgKGhleFN0cmluZy5zdGFydHNXaXRoKFwiMHhcIikpIGhleFN0cmluZyA9IGhleFN0cmluZy5zbGljZSgyKTtcblx0cmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShoZXhTdHJpbmcubWF0Y2goLy57MSwyfS9nKS5tYXAoKGJ5dGUpID0+IHBhcnNlSW50KGJ5dGUsIDE2KSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXBJc1ByaXZhdGVPckxvY2FsaG9zdChpcCkge1xuXHRpZiAoaXAuc3Vic3RyaW5nKDAsIDcpID09PSBcIjo6ZmZmZjpcIikge1xuXHRcdGlwID0gaXAuc3Vic3RyaW5nKDcpO1xuXHR9XG5cblx0aWYgKG5ldC5pc0lQdjQoaXApKSB7XG5cdFx0Ly8gY2hlY2sgbG9jYWxob3N0XG5cdFx0aWYgKGlwID09PSBcIjEyNy4wLjAuMVwiKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHQvLyAgICAgICAgIDEwLjAuMC4wIC0gMTAuMjU1LjI1NS4yNTUgICAgICAgIHx8ICAgMTcyLjE2LjAuMCAtIDE3Mi4zMS4yNTUuMjU1ICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAgICAxOTIuMTY4LjAuMCAtIDE5Mi4xNjguMjU1LjI1NVxuXHRcdHJldHVybiAoXG5cdFx0XHQvXigxMClcXC4oLiopXFwuKC4qKVxcLiguKikkLy50ZXN0KGlwKSB8fFxuXHRcdFx0L14oMTcyKVxcLigxWzYtOV18MlswLTldfDNbMC0xXSlcXC4oLiopXFwuKC4qKSQvLnRlc3QoaXApIHx8XG5cdFx0XHQvXigxOTIpXFwuKDE2OClcXC4oLiopXFwuKC4qKSQvLnRlc3QoaXApXG5cdFx0KTtcblx0fVxuXG5cdC8vIGVsc2U6IGlwIGlzIElQdjZcblx0Y29uc3QgZmlyc3RXb3JkID0gaXAuc3BsaXQoXCI6XCIpLmZpbmQoKGVsKSA9PiAhIWVsKTsgLy8gZ2V0IGZpcnN0IG5vdCBlbXB0eSB3b3JkXG5cblx0Ly8gZXF1aXZhbGVudCBvZiAxMjcuMC4wLjEgaW4gSVB2NlxuXHRpZiAoaXAgPT09IFwiOjoxXCIpIHJldHVybiB0cnVlO1xuXHQvLyBUaGUgb3JpZ2luYWwgSVB2NiBTaXRlIExvY2FsIGFkZHJlc3NlcyAoZmVjMDo6LzEwKSBhcmUgZGVwcmVjYXRlZC4gUmFuZ2U6IGZlYzAgLSBmZWZmXG5cdGVsc2UgaWYgKC9eZmVbYy1mXVswLWZdJC8udGVzdChmaXJzdFdvcmQpKSByZXR1cm4gdHJ1ZTtcblx0Ly8gVGhlc2UgZGF5cyBVbmlxdWUgTG9jYWwgQWRkcmVzc2VzIChVTEEpIGFyZSB1c2VkIGluIHBsYWNlIG9mIFNpdGUgTG9jYWwuXG5cdC8vIFJhbmdlOiBmYzAwIC0gZmNmZlxuXHRlbHNlIGlmICgvXmZjWzAtZl17Mn0kLy50ZXN0KGZpcnN0V29yZCkpIHJldHVybiB0cnVlO1xuXHQvLyBSYW5nZTogZmQwMCAtIGZjZmZcblx0ZWxzZSBpZiAoL15mZFswLWZdezJ9JC8udGVzdChmaXJzdFdvcmQpKSByZXR1cm4gdHJ1ZTtcblx0Ly8gTGluayBsb2NhbCBhZGRyZXNzZXMgKHByZWZpeGVkIHdpdGggZmU4MCkgYXJlIG5vdCByb3V0YWJsZVxuXHRlbHNlIGlmIChmaXJzdFdvcmQgPT09IFwiZmU4MFwiKSByZXR1cm4gdHJ1ZTtcblx0Ly8gRGlzY2FyZCBQcmVmaXhcblx0ZWxzZSBpZiAoZmlyc3RXb3JkID09PSBcIjEwMFwiKSByZXR1cm4gdHJ1ZTtcblxuXHQvLyBBbnkgb3RoZXIgSVAgYWRkcmVzcyBpcyBub3QgVW5pcXVlIExvY2FsIEFkZHJlc3MgKFVMQSlcblx0cmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNIZXhTdHJpbmdPZkxlbmd0aChzdHIsIGxlbmd0aCkge1xuXHRyZXR1cm4gKFxuXHRcdChpc0hleFN0cmluZyhzdHIpICYmICgoc3RyLnN0YXJ0c1dpdGgoXCIweFwiKSAmJiBzdHIuc2xpY2UoMikubGVuZ3RoID09PSBsZW5ndGggKiAyKSB8fCBzdHIubGVuZ3RoID09PSBsZW5ndGggKiAyKSkgfHxcblx0XHRpc1dpbGRjYXJkKHN0cilcblx0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSGV4U3RyaW5nKHN0cikge1xuXHRyZXR1cm4gKFxuXHRcdCh0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiICYmXG5cdFx0XHQoKHN0ci5zdGFydHNXaXRoKFwiMHhcIikgJiYgL15bYS1mQS1GMC05XSskL2kudGVzdChzdHIuc2xpY2UoMikpKSB8fCAvXlthLWZBLUYwLTldKyQvaS50ZXN0KHN0cikpKSB8fFxuXHRcdGlzV2lsZGNhcmQoc3RyKVxuXHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9IZXhTdHJpbmcoYnVmZmVyLCBwcmVmaXgweCA9IGZhbHNlKSB7XG5cdGlmIChidWZmZXIgaW5zdGFuY2VvZiBVaW50OEFycmF5KSBidWZmZXIgPSBCdWZmZXIuZnJvbShidWZmZXIpO1xuXHRyZXR1cm4gKFxuXHRcdChwcmVmaXgweCA/IFwiMHhcIiA6IFwiXCIpICtcblx0XHRBcnJheS5wcm90b3R5cGUubWFwXG5cdFx0XHQuY2FsbChidWZmZXIsICh4KSA9PiBgMDAke3gudG9TdHJpbmcoMTYpfWAuc2xpY2UoLTIpKVxuXHRcdFx0LmpvaW4oXCJcIilcblx0XHRcdC5tYXRjaCgvW2EtZkEtRjAtOV17Mn0vZylcblx0XHRcdC5qb2luKFwiXCIpXG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVVSTCh1cmwpIHtcblx0dHJ5IHtcblx0XHRjb25zdCBwYXJzZWRVcmwgPSBuZXcgVVJMKHVybCk7XG5cdFx0cmV0dXJuIFtgJHtwYXJzZWRVcmwucHJvdG9jb2x9Ly9gLCBwYXJzZWRVcmwuaG9zdCwgcGFyc2VkVXJsLnBhdGhuYW1lLnNsaWNlKDEpLCBwYXJzZWRVcmwuc2VhcmNoLnNsaWNlKDEpXTtcblx0fSBjYXRjaCB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBVUkwgd2FzIHByb3ZpZGVkOiAke3VybH1gKTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1VzYWdlKGNtZCwgbW9kdWxlKSB7XG5cdHNob3dVc2FnZUhlYWRsaW5lKGNtZCk7XG5cdHNob3dVc2FnZU9wdGlvbnMoeyAuLi5tb2R1bGU/LmZsYWdzIH0pO1xuXHRzaG93VXNhZ2VGbGFncyh7IC4uLm1vZHVsZT8uZmxhZ3MgfSk7XG5cdHNob3dVc2FnZVJvdXRlcih7IC4uLm1vZHVsZT8ucm91dGVyIH0pO1xuXHRzaG93VXNhZ2VFbnZhcnMoeyAuLi5tb2R1bGU/LmVudmFycyB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dVc2FnZVJvdXRlcihyb3V0ZXIpIHtcblx0Y29uc3QgY21kcyA9IE9iamVjdC5lbnRyaWVzKHJvdXRlcik7XG5cdGlmIChjbWRzLmxlbmd0aCA+IDApIHtcblx0XHRjb25zb2xlLmluZm8oXCJcXG5TVUJDT01NQU5EUzpcIik7XG5cdFx0Y29uc3QgbWF4TGVuZ3RoID0gTWF0aC5tYXgoLi4uY21kcy5tYXAoKFtjbWRdKSA9PiBjbWQubGVuZ3RoKSk7XG5cdFx0Y21kcy5mb3JFYWNoKChjbWQpID0+IHtcblx0XHRcdGNvbnNvbGUuaW5mbyhcIiAgXCIsIGAke2NtZFswXX0ke1wiIFwiLnJlcGVhdChtYXhMZW5ndGggLSBjbWRbMF0ubGVuZ3RoKX1gLCBcIiAgXCIsIGNtZFsxXS5oaW50KTtcblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1VzYWdlRXJyb3IoY21kLCBzdWJjbWQsIG1vZHVsZSwgZXJyb3IsIGZsYWdzKSB7XG5cdHNob3dVc2FnZVN1YmNvbW1hbmQoY21kLCBzdWJjbWQsIG1vZHVsZSwgZXJyb3IpO1xuXHRpZiAoZXJyb3IpIHtcblx0XHRjb25zb2xlLmluZm8oXCJcXG5FUlJPUjpcIik7XG5cdFx0aWYgKGZsYWdzPy5kZWJ1Zykge1xuXHRcdFx0Y29uc29sZS5lcnJvcihlcnJvcik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoY29sb3JzLnJlZChlcnJvcj8uc3RhY2s/LnNwbGl0KFwiXFxuXCIpWzBdIHx8IGVycm9yKSk7XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93VXNhZ2VFbnZhcnMoZW52YXJzKSB7XG5cdGlmIChlbnZhcnMpIHtcblx0XHRlbnZhcnMgPSBPYmplY3QuZW50cmllcyhlbnZhcnMpO1xuXHRcdGlmIChlbnZhcnMubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uc29sZS5pbmZvKFwiXFxuRU5WQVJTOlwiKTtcblx0XHRcdGNvbnN0IG1heFdpZHRoID0gTWF0aC5tYXgoLi4uZW52YXJzLm1hcCgoW2VudmFyXSkgPT4gZW52YXIubGVuZ3RoKSk7XG5cdFx0XHRlbnZhcnMuZm9yRWFjaCgoW2VudmFyLCBoaW50XSkgPT4ge1xuXHRcdFx0XHRpZiAoZW52YXIudG9VcHBlckNhc2UoKS5pbmRleE9mKFwiS0VZXCIpIDwgMCAmJiBwcm9jZXNzLmVudltlbnZhcl0pIHtcblx0XHRcdFx0XHRjb25zb2xlLmluZm8oXG5cdFx0XHRcdFx0XHRcIiAgXCIsXG5cdFx0XHRcdFx0XHRgJHt5ZWxsb3coZW52YXIudG9VcHBlckNhc2UoKSl9JHtcIiBcIi5yZXBlYXQobWF4V2lkdGggLSBlbnZhci5sZW5ndGgpfWAsXG5cdFx0XHRcdFx0XHRgID0+IFNldHRsZWQgdG8gXCIke215ZWxsb3cocHJvY2Vzcy5lbnZbZW52YXJdKX1cImAsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb25zb2xlLmluZm8oXCIgIFwiLCBgJHt5ZWxsb3coZW52YXIudG9VcHBlckNhc2UoKSl9JHtcIiBcIi5yZXBlYXQobWF4V2lkdGggLSBlbnZhci5sZW5ndGgpfWAsIGAgJHtoaW50fWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dVc2FnZUZsYWdzKGZsYWdzKSB7XG5cdGlmIChmbGFncykge1xuXHRcdGZsYWdzID0gT2JqZWN0LmVudHJpZXMoZmxhZ3MpXG5cdFx0XHQuZmlsdGVyKChbLCBmbGFnXSkgPT4gIWZsYWc/LnBhcmFtKVxuXHRcdFx0LnNvcnQoKFthXSwgW2JdKSA9PiB7XG5cdFx0XHRcdGlmIChhIDwgYikgcmV0dXJuIC0xO1xuXHRcdFx0XHRlbHNlIGlmIChhID4gYikgcmV0dXJuIDE7XG5cdFx0XHRcdGVsc2UgcmV0dXJuIDA7XG5cdFx0XHR9KTtcblx0XHRpZiAoZmxhZ3MubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uc29sZS5pbmZvKFwiXFxuRkxBR1M6XCIpO1xuXHRcdFx0Y29uc3QgbWF4TGVuZ3RoID0gTWF0aC5tYXgoXG5cdFx0XHRcdC4uLmZsYWdzXG5cdFx0XHRcdFx0LmZpbHRlcigoWywgeyBoaW50IH1dKSA9PiBoaW50KVxuXHRcdFx0XHRcdC5tYXAoKFtrZXksIHsgcGFyYW0gfV0pID0+IChwYXJhbSA/IGtleS5sZW5ndGggKyBwYXJhbS5sZW5ndGggKyAzIDoga2V5Lmxlbmd0aCkpLFxuXHRcdFx0KTtcblx0XHRcdGZsYWdzLmZvckVhY2goKGZsYWcpID0+IHtcblx0XHRcdFx0Y29uc3Qgc3RyID0gYCR7ZmxhZ1swXX0ke2ZsYWdbMV0ucGFyYW0gPyBncmF5KGAgPCR7ZmxhZ1sxXS5wYXJhbX0+YCkgOiBcIlwifWA7XG5cdFx0XHRcdGlmIChmbGFnWzFdLmhpbnQpIHtcblx0XHRcdFx0XHRjb25zb2xlLmluZm8oXCIgIFwiLCBgLS0ke3N0cn0ke1wiIFwiLnJlcGVhdChtYXhMZW5ndGggLSBjb2xvcnN0cmlwKHN0cikubGVuZ3RoKX1gLCBcIiAgXCIsIGZsYWdbMV0uaGludCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1VzYWdlSGVhZGxpbmUoY21kLCBzdWJjbWQsIG1vZHVsZSkge1xuXHRjb25zb2xlLmluZm8oXCJVU0FHRTpcIik7XG5cdGlmIChzdWJjbWQpIHtcblx0XHRsZXQgcGFyYW1zID0gbW9kdWxlLnJvdXRlcltzdWJjbWRdPy5wYXJhbXM7XG5cdFx0Ly8gY29uc3Qgb3B0aW9ucyA9IG1vZHVsZS5yb3V0ZXJbc3ViY21kXT8ub3B0aW9uc1xuXHRcdGlmIChwYXJhbXMpIHtcblx0XHRcdGNvbnN0IG9wdGlvbmFsaXplID0gKHN0cikgPT5cblx0XHRcdFx0c3RyLmVuZHNXaXRoKFwiIC4uLl1cIikgPyBgWzwke3N0ci5zbGljZSgxLCAtNSl9PiAuLi5dYCA6IHN0clswXSA9PT0gXCJbXCIgPyBgWzwke3N0ci5zbGljZSgxLCAtMSl9Pl1gIDogYDwke3N0cn0+YDtcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KHBhcmFtcykpIHtcblx0XHRcdFx0cGFyYW1zID0gYCR7cGFyYW1zLm1hcCgocGFyYW0pID0+IG9wdGlvbmFsaXplKHBhcmFtKSkuam9pbihcIiBcIil9IGA7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwYXJhbXMgPSBvcHRpb25hbGl6ZShwYXJhbXMpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRjb25zb2xlLmluZm8oXG5cdFx0XHRgICAgJHtjb2xvcnMud2hpdGUoYG5weCB3aXRzZGsgJHtjbWR9YCl9ICR7Y29sb3JzLndoaXRlKHN1YmNtZCl9ICR7cGFyYW1zID8gYCR7Y29sb3JzLmdyZWVuKHBhcmFtcyl9IGAgOiBcIlwifVtPUFRJT05TXSBbRkxBR1NdYCxcblx0XHQpO1xuXHRcdGlmIChtb2R1bGU/LnJvdXRlcltzdWJjbWRdPy5oaW50KSB7XG5cdFx0XHRjb25zb2xlLmluZm8oXCJcXG5ERVNDUklQVElPTjpcIik7XG5cdFx0XHRjb25zb2xlLmluZm8oYCAgICR7bW9kdWxlLnJvdXRlcltzdWJjbWRdLmhpbnR9YCk7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdGNvbnNvbGUuaW5mbyhgICAgJHtjb2xvcnMud2hpdGUoYG5weCB3aXRzZGsgJHtjbWR9YCl9IDxTVUJDT01NQU5EPiAuLi4gW09QVElPTlNdIFtGTEFHU11gKTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1VzYWdlT3B0aW9ucyhvcHRpb25zKSB7XG5cdG9wdGlvbnMgPSBPYmplY3QuZW50cmllcyhvcHRpb25zKVxuXHRcdC5maWx0ZXIoKFssIG9wdGlvbl0pID0+IG9wdGlvbj8ucGFyYW0pXG5cdFx0LnNvcnQoKFthXSwgW2JdKSA9PiB7XG5cdFx0XHRpZiAoYSA8IGIpIHJldHVybiAtMTtcblx0XHRcdGVsc2UgaWYgKGEgPiBiKSByZXR1cm4gMTtcblx0XHRcdGVsc2UgcmV0dXJuIDA7XG5cdFx0fSk7XG5cdGlmIChvcHRpb25zLmxlbmd0aCA+IDApIHtcblx0XHRjb25zb2xlLmluZm8oXCJcXG5PUFRJT05TOlwiKTtcblx0XHRjb25zdCBtYXhMZW5ndGggPSBvcHRpb25zXG5cdFx0XHQubWFwKChvcHRpb24pID0+IChvcHRpb25bMV0ucGFyYW0gPyBvcHRpb25bMV0ucGFyYW0ubGVuZ3RoICsgb3B0aW9uWzBdLmxlbmd0aCArIDMgOiBvcHRpb25bMF0ubGVuZ3RoKSlcblx0XHRcdC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IChjdXJyID4gcHJldiA/IGN1cnIgOiBwcmV2KSk7XG5cdFx0b3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcblx0XHRcdGlmIChvcHRpb25bMV0uaGludCkge1xuXHRcdFx0XHRjb25zdCBzdHIgPSBgJHtvcHRpb25bMF19JHtvcHRpb25bMV0ucGFyYW0gPyBncmF5KGAgPCR7b3B0aW9uWzFdLnBhcmFtfT5gKSA6IFwiXCJ9YDtcblx0XHRcdFx0Y29uc29sZS5pbmZvKFwiICBcIiwgYC0tJHtzdHJ9JHtcIiBcIi5yZXBlYXQobWF4TGVuZ3RoIC0gY29sb3JzdHJpcChzdHIpLmxlbmd0aCl9YCwgXCIgIFwiLCBvcHRpb25bMV0uaGludCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dVc2FnZVN1YmNvbW1hbmQoY21kLCBzdWJjbWQsIG1vZHVsZSkge1xuXHRzaG93VXNhZ2VIZWFkbGluZShjbWQsIHN1YmNtZCwgbW9kdWxlKTtcblx0c2hvd1VzYWdlT3B0aW9ucyh7IC4uLm1vZHVsZT8uZmxhZ3MsIC4uLm1vZHVsZS5yb3V0ZXJbc3ViY21kXT8ub3B0aW9ucyB9KTtcblx0c2hvd1VzYWdlRmxhZ3MoeyAuLi5tb2R1bGU/LmZsYWdzLCAuLi5tb2R1bGUucm91dGVyW3N1YmNtZF0/Lm9wdGlvbnMgfSk7XG5cdHNob3dVc2FnZUVudmFycyhtb2R1bGUucm91dGVyW3N1YmNtZF0/LmVudmFycyB8fCBtb2R1bGU/LmVudmFycyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93VmVyc2lvbigpIHtcblx0Y29uc29sZS5pbmZvKGAke2NvbG9ycy5tY3lhbihgV2l0bmV0IFNESyB2JHtyZXF1aXJlKFwiLi4vLi4vcGFja2FnZS5qc29uXCIpLnZlcnNpb259YCl9YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXaWxkY2FyZHNDb3VudEZyb21TdHJpbmcoc3RyKSB7XG5cdGxldCBtYXhBcmdzSW5kZXggPSAwO1xuXHRpZiAoc3RyICYmIHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIpIHtcblx0XHRsZXQgbWF0Y2g7XG5cdFx0Y29uc3QgcmVnZXhwID0gL1xcXFxcXGRcXFxcL2c7XG5cdFx0d2hpbGUgKChtYXRjaCA9IHJlZ2V4cC5leGVjKHN0cikpICE9PSBudWxsKSB7XG5cdFx0XHRjb25zdCBhcmdzSW5kZXggPSBwYXJzZUludChtYXRjaFswXVsxXSwgMTApICsgMTtcblx0XHRcdGlmIChhcmdzSW5kZXggPiBtYXhBcmdzSW5kZXgpIG1heEFyZ3NJbmRleCA9IGFyZ3NJbmRleDtcblx0XHR9XG5cdH1cblx0cmV0dXJuIG1heEFyZ3NJbmRleDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUnBjV2lsZGNhcmRzKHdpbGRjYXJkcykge1xuXHRpZiAodHlwZW9mIHdpbGRjYXJkcyA9PT0gXCJvYmplY3RcIikge1xuXHRcdE9iamVjdC52YWx1ZXMod2lsZGNhcmRzKS5mb3JFYWNoKCh3aWxkY2FyZCkgPT4ge1xuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkod2lsZGNhcmQpKVxuXHRcdFx0XHR3aWxkY2FyZC5mb3JFYWNoKChpdGVtKSA9PiB7XG5cdFx0XHRcdFx0Y2hlY2tScGNXaWxkY2FyZHMoaXRlbSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0ZWxzZSBjaGVja1JwY1dpbGRjYXJkcyh3aWxkY2FyZCk7XG5cdFx0fSk7XG5cdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh3aWxkY2FyZHMpKSB7XG5cdFx0d2lsZGNhcmRzLmZvckVhY2goKHdpbGRjYXJkKSA9PiB7XG5cdFx0XHRjaGVja1JwY1dpbGRjYXJkcyh3aWxkY2FyZCk7XG5cdFx0fSk7XG5cdH0gZWxzZSBpZiAodHlwZW9mIHdpbGRjYXJkcyA9PT0gXCJzdHJpbmdcIikge1xuXHRcdGlmIChpc1dpbGRjYXJkKHdpbGRjYXJkcykpIHtcblx0XHRcdGNvbnN0IGNoYXIgPSB3aWxkY2FyZHMuY2hhckF0KDEpO1xuXHRcdFx0aWYgKGNoYXIgPCBcIjBcIiB8fCBjaGFyID4gXCI5XCIpIHtcblx0XHRcdFx0dGhyb3cgRXJyb3IoXCJSUEM6IHdpbGRjYXJkcyBub3QgaW4gcmFuZ2UgWzAgLi4gOV1cIik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1dpbGRjYXJkKHN0cikge1xuXHRyZXR1cm4gc3RyLmxlbmd0aCA9PT0gMyAmJiAvXFxcXFxcZFxcXFwvZy50ZXN0KHN0cik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlV2lsZGNhcmRzKG9iaiwgYXJncykge1xuXHRpZiAoYXJncy5sZW5ndGggPiAxMCkgYXJncyA9IGFyZ3Muc2xpY2UoMCwgMTApO1xuXHRpZiAob2JqICYmIHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIpIHtcblx0XHRmb3IgKGxldCBhcmdJbmRleCA9IDA7IGFyZ0luZGV4IDwgYXJncy5sZW5ndGg7IGFyZ0luZGV4KyspIHtcblx0XHRcdGNvbnN0IHdpbGRjYXJkID0gYFxcXFwke2FyZ0luZGV4fVxcXFxgO1xuXHRcdFx0b2JqID0gb2JqLnJlcGxhY2VBbGwod2lsZGNhcmQsIGFyZ3NbYXJnSW5kZXhdKTtcblx0XHR9XG5cdH0gZWxzZSBpZiAob2JqICYmIEFycmF5LmlzQXJyYXkob2JqKSkge1xuXHRcdG9iaiA9IG9iai5tYXAoKHZhbHVlKSA9PlxuXHRcdFx0dHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpID8gcmVwbGFjZVdpbGRjYXJkcyh2YWx1ZSwgYXJncykgOiB2YWx1ZSxcblx0XHQpO1xuXHR9IGVsc2UgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiKSB7XG5cdFx0b2JqID0gcmVwbGFjZU9iamVjdFdpbGRjYXJkcyhvYmosIGFyZ3MpO1xuXHR9XG5cdHJldHVybiBvYmo7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlT2JqZWN0V2lsZGNhcmRzKG9iaiwgYXJncykge1xuXHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdE9iamVjdC5lbnRyaWVzKG9iaikubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcblx0XHRcdGZvciAobGV0IGFyZ0luZGV4ID0gMDsgYXJnSW5kZXggPCBhcmdzLmxlbmd0aDsgYXJnSW5kZXgrKykge1xuXHRcdFx0XHRjb25zdCB3aWxkY2FyZCA9IGBcXFxcJHthcmdJbmRleH1cXFxcYDtcblx0XHRcdFx0a2V5ID0ga2V5LnJlcGxhY2VBbGwod2lsZGNhcmQsIGFyZ3NbYXJnSW5kZXhdKTtcblx0XHRcdFx0dmFsdWUgPSByZXBsYWNlV2lsZGNhcmRzKHZhbHVlLCBhcmdzKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBba2V5LCB2YWx1ZV07XG5cdFx0fSksXG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzcGxpY2VXaWxkY2FyZChvYmosIGFyZ0luZGV4LCBhcmdWYWx1ZSwgYXJnc0NvdW50KSB7XG5cdGlmIChvYmogJiYgdHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIikge1xuXHRcdGNvbnN0IHdpbGRjYXJkID0gYFxcXFwke2FyZ0luZGV4fVxcXFxgO1xuXHRcdG9iaiA9IG9iai5yZXBsYWNlQWxsKHdpbGRjYXJkLCBhcmdWYWx1ZSk7XG5cdFx0Zm9yIChsZXQgaiA9IGFyZ0luZGV4ICsgMTsgaiA8IGFyZ3NDb3VudDsgaisrKSB7XG5cdFx0XHRvYmogPSBvYmoucmVwbGFjZUFsbChgXFxcXCR7an1cXFxcYCwgYFxcXFwke2ogLSAxfVxcXFxgKTtcblx0XHR9XG5cdH0gZWxzZSBpZiAob2JqICYmIEFycmF5LmlzQXJyYXkob2JqKSkge1xuXHRcdG9iaiA9IG9iai5tYXAoKHZhbHVlKSA9PlxuXHRcdFx0dHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpID8gc3BsaWNlV2lsZGNhcmQodmFsdWUsIGFyZ0luZGV4LCBhcmdWYWx1ZSwgYXJnc0NvdW50KSA6IHZhbHVlLFxuXHRcdCk7XG5cdH1cblx0cmV0dXJuIG9iajtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRvb2xraXRSdW4oc2V0dGluZ3MsIGFyZ3MpIHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRjb25zdCBiaW4gPSBgJHtzZXR0aW5ncy5wYXRocy50b29sa2l0QmluUGF0aH1gO1xuXHRcdGNvbnN0IGNoaWxkID0gc3Bhd24oYmluLCBhcmdzLCB7XG5cdFx0XHRkZXRhY2hlZDogcHJvY2Vzcy5lbnYuV0lUU0RLX0RSWV9SVU5fREVUQUNIRURcblx0XHRcdFx0PyBCb29sZWFuKHByb2Nlc3MuZW52LldJVFNES19EUllfUlVOX0RFVEFDSEVEID09PSBcInRydWVcIilcblx0XHRcdFx0OiBwcm9jZXNzLnBsYXRmb3JtICE9PSBcIndpbjMyXCIsXG5cdFx0XHRzaGVsbDogcHJvY2Vzcy5lbnYuV0lUU0RLX0RSWV9SVU5fU0hFTExcblx0XHRcdFx0PyBCb29sZWFuKHByb2Nlc3MuZW52LldJVE5FVF9TREtfRFJZX1JVTl9TSEVMTCA9PT0gXCJ0cnVlXCIpXG5cdFx0XHRcdDogcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiLFxuXHRcdFx0c3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuXHRcdFx0ZW52OiB7XG5cdFx0XHRcdC4uLnByb2Nlc3MuZW52LFxuXHRcdFx0XHROUE1fQ09ORklHX1lFUzogXCJ0cnVlXCIsIC8vID0+IHByZXZlbnRzIG5weCBmcm9tIHNwYXduaW5nIGludGVyYWN0aXZlIHByb21wdHNcblx0XHRcdH0sXG5cdFx0fSk7XG5cblx0XHRsZXQgc3Rkb3V0ID0gXCJcIjtcblx0XHRsZXQgc3RkZXJyID0gXCJcIjtcblx0XHRsZXQgZmluaXNoZWQgPSBmYWxzZTtcblxuXHRcdGNvbnN0IGtpbGxUcmVlID0gKCkgPT4ge1xuXHRcdFx0aWYgKCFjaGlsZC5waWQpIHJldHVybjtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCIpIHtcblx0XHRcdFx0XHRzcGF3bihcInRhc2traWxsXCIsIFtcIi9QSURcIiwgY2hpbGQucGlkLnRvU3RyaW5nKCksIFwiL1RcIiwgXCIvRlwiXSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8ga2lsbCBlbnRpcmUgcHJvY2VzcyBncm91cFxuXHRcdFx0XHRcdHByb2Nlc3Mua2lsbChjaGlsZC5waWQsIFwiU0lHS0lMTFwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBjYXRjaCB7fVxuXHRcdH07XG5cblx0XHRjaGlsZC5zdGRvdXQub24oXCJkYXRhXCIsIChkKSA9PiAoc3Rkb3V0ICs9IGQudG9TdHJpbmcoKSkpO1xuXHRcdGNoaWxkLnN0ZGVyci5vbihcImRhdGFcIiwgKGQpID0+IChzdGRlcnIgKz0gZC50b1N0cmluZygpKSk7XG5cblx0XHRjaGlsZC5vbihcImVycm9yXCIsIChlcnIpID0+IHtcblx0XHRcdGlmIChmaW5pc2hlZCkgcmV0dXJuO1xuXHRcdFx0ZmluaXNoZWQgPSB0cnVlO1xuXHRcdFx0a2lsbFRyZWUoKTtcblx0XHRcdHJlamVjdChlcnIpO1xuXHRcdH0pO1xuXG5cdFx0Y2hpbGQub24oXCJjbG9zZVwiLCAoY29kZSwgc2lnbmFsKSA9PiB7XG5cdFx0XHRpZiAoZmluaXNoZWQpIHJldHVybjtcblx0XHRcdGZpbmlzaGVkID0gdHJ1ZTtcblxuXHRcdFx0aWYgKHNpZ25hbCkge1xuXHRcdFx0XHRraWxsVHJlZSgpO1xuXHRcdFx0XHRyZWplY3QobmV3IEVycm9yKGB3aXRuZXRfdG9vbGtpdCBiaW5hcnkgdGVybWluYXRlZCBieSBzaWduYWwgJHtzaWduYWx9YCkpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGlmIChjb2RlICE9PSAwKSB7XG5cdFx0XHRcdGtpbGxUcmVlKCk7XG5cdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoYHdpdG5ldF90b29sa2l0IGJpbmFyeSBmYWlsZWQgd2l0aCBleGl0IGNvZGUgJHtjb2RlfVxcbiR7c3RkZXJyfWApKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXNvbHZlKHN0ZG91dCk7XG5cdFx0fSk7XG5cdH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9VcHBlckNhbWVsQ2FzZShzdHIpIHtcblx0cmV0dXJuIHN0ci5yZXBsYWNlKC9cXGIoXFx3KS9nLCAoX21hdGNoLCBjYXB0dXJlKSA9PiBjYXB0dXJlLnRvVXBwZXJDYXNlKCkpLnJlcGxhY2UoL1xccysvZywgXCJcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1V0ZjE2Qnl0ZXMoc3RyKSB7XG5cdGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoc3RyLmxlbmd0aCAqIDIpO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuXHRcdGNvbnN0IGNvZGUgPSBzdHIuY2hhckNvZGVBdChpKTtcblx0XHRieXRlc1tpICogMl0gPSBjb2RlID4+IDg7XG5cdFx0Ynl0ZXNbaSAqIDIgKyAxXSA9IGNvZGUgJiAweGZmO1xuXHR9XG5cdHJldHVybiBieXRlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvVXRmOEFycmF5KHN0cikge1xuXHRjb25zdCB1dGY4ID0gW107XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IGNoYXJjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XG5cdFx0aWYgKGNoYXJjb2RlIDwgMHg4MCkgdXRmOC5wdXNoKGNoYXJjb2RlKTtcblx0XHRlbHNlIGlmIChjaGFyY29kZSA8IDB4ODAwKSB7XG5cdFx0XHR1dGY4LnB1c2goMHhjMCB8IChjaGFyY29kZSA+PiA2KSwgMHg4MCB8IChjaGFyY29kZSAmIDB4M2YpKTtcblx0XHR9IGVsc2UgaWYgKGNoYXJjb2RlIDwgMHhkODAwIHx8IGNoYXJjb2RlID49IDB4ZTAwMCkge1xuXHRcdFx0dXRmOC5wdXNoKDB4ZTAgfCAoY2hhcmNvZGUgPj4gMTIpLCAweDgwIHwgKChjaGFyY29kZSA+PiA2KSAmIDB4M2YpLCAweDgwIHwgKGNoYXJjb2RlICYgMHgzZikpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBzdXJyb2dhdGUgcGFpclxuXHRcdFx0aSsrO1xuXHRcdFx0Ly8gVVRGLTE2IGVuY29kZXMgMHgxMDAwMC0weDEwRkZGRiBieVxuXHRcdFx0Ly8gc3VidHJhY3RpbmcgMHgxMDAwMCBhbmQgc3BsaXR0aW5nIHRoZVxuXHRcdFx0Ly8gMjAgYml0cyBvZiAweDAtMHhGRkZGRiBpbnRvIHR3byBoYWx2ZXNcblx0XHRcdGNoYXJjb2RlID0gMHgxMDAwMCArICgoKGNoYXJjb2RlICYgMHgzZmYpIDw8IDEwKSB8IChzdHIuY2hhckNvZGVBdChpKSAmIDB4M2ZmKSk7XG5cdFx0XHR1dGY4LnB1c2goXG5cdFx0XHRcdDB4ZjAgfCAoY2hhcmNvZGUgPj4gMTgpLFxuXHRcdFx0XHQweDgwIHwgKChjaGFyY29kZSA+PiAxMikgJiAweDNmKSxcblx0XHRcdFx0MHg4MCB8ICgoY2hhcmNvZGUgPj4gNikgJiAweDNmKSxcblx0XHRcdFx0MHg4MCB8IChjaGFyY29kZSAmIDB4M2YpLFxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHV0Zjg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1dGY4QXJyYXlUb1N0cihhcnJheSkge1xuXHRjb25zdCBsZW4gPSBhcnJheS5sZW5ndGg7XG5cdGxldCBvdXQgPSBcIlwiO1xuXHRsZXQgaSA9IDA7XG5cdGxldCBjO1xuXHRsZXQgY2hhcjIsIGNoYXIzO1xuXHR3aGlsZSAoaSA8IGxlbikge1xuXHRcdGMgPSBhcnJheVtpKytdO1xuXHRcdHN3aXRjaCAoYyA+PiA0KSB7XG5cdFx0XHRjYXNlIDA6XG5cdFx0XHRjYXNlIDE6XG5cdFx0XHRjYXNlIDI6XG5cdFx0XHRjYXNlIDM6XG5cdFx0XHRjYXNlIDQ6XG5cdFx0XHRjYXNlIDU6XG5cdFx0XHRjYXNlIDY6XG5cdFx0XHRjYXNlIDc6XG5cdFx0XHRcdC8vIDB4eHh4eHh4XG5cdFx0XHRcdG91dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgMTI6XG5cdFx0XHRjYXNlIDEzOlxuXHRcdFx0XHQvLyAxMTB4IHh4eHggICAxMHh4IHh4eHhcblx0XHRcdFx0Y2hhcjIgPSBhcnJheVtpKytdO1xuXHRcdFx0XHRvdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgJiAweDFmKSA8PCA2KSB8IChjaGFyMiAmIDB4M2YpKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIDE0OlxuXHRcdFx0XHQvLyAxMTEwIHh4eHggIDEweHggeHh4eCAgMTB4eCB4eHh4XG5cdFx0XHRcdGNoYXIyID0gYXJyYXlbaSsrXTtcblx0XHRcdFx0Y2hhcjMgPSBhcnJheVtpKytdO1xuXHRcdFx0XHRvdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgJiAweDBmKSA8PCAxMikgfCAoKGNoYXIyICYgMHgzZikgPDwgNikgfCAoKGNoYXIzICYgMHgzZikgPDwgMCkpO1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblx0cmV0dXJuIG91dDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb21wdChxdWVzdGlvbikge1xuXHRjb25zdCByZWFkbGluZUludGVyZmFjZSA9IHJlYWRsaW5lLmNyZWF0ZUludGVyZmFjZSh7XG5cdFx0aW5wdXQ6IHByb2Nlc3Muc3RkaW4sXG5cdFx0b3V0cHV0OiBwcm9jZXNzLnN0ZG91dCxcblx0fSk7XG5cdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgX3JlamVjdCkgPT4ge1xuXHRcdHJlYWRsaW5lSW50ZXJmYWNlLnF1ZXN0aW9uKGAke3F1ZXN0aW9ufSBgLCAocmVzcG9uc2UpID0+IHtcblx0XHRcdHJlYWRsaW5lSW50ZXJmYWNlLmNsb3NlKCk7XG5cdFx0XHRyZXNvbHZlKHJlc3BvbnNlLnRyaW0oKSk7XG5cdFx0fSk7XG5cdH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvbXB0ZXIocHJvbWlzZSkge1xuXHRjb25zdCBsb2FkaW5nID0gKCgpID0+IHtcblx0XHRjb25zdCBoID0gW1wifFwiLCBcIi9cIiwgXCItXCIsIFwiXFxcXFwiXTtcblx0XHRsZXQgaSA9IDA7XG5cdFx0cmV0dXJuIHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdGkgPSBpID4gMyA/IDAgOiBpO1xuXHRcdFx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoYFxcYlxcYiR7aFtpXX0gYCk7XG5cdFx0XHRpKys7XG5cdFx0fSwgNTApO1xuXHR9KSgpO1xuXHRyZXR1cm4gcHJvbWlzZS50aGVuKChyZXN1bHQpID0+IHtcblx0XHRjbGVhckludGVydmFsKGxvYWRpbmcpO1xuXHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiXFxiXFxiXCIpO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VhcmNoV29ya3NwYWNlKCkge1xuXHRsZXQgd29ya3NwYWNlID0gcGF0aC5ub3JtYWxpemUocHJvY2Vzcy5jd2QoKSk7XG5cdHdoaWxlICghZnMuZXhpc3RzU3luYyhgJHt3b3Jrc3BhY2V9L3dpdG5ldC9hc3NldHNgKSAmJiBwYXRoLmRpcm5hbWUod29ya3NwYWNlKSAhPT0gd29ya3NwYWNlKSB7XG5cdFx0d29ya3NwYWNlID0gcGF0aC5kaXJuYW1lKHdvcmtzcGFjZSk7XG5cdH1cblx0cmV0dXJuIHdvcmtzcGFjZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNlQ2hlY2tsaXN0cyhjaGVja2xpc3RzKSB7XG5cdGlmIChjaGVja2xpc3RzICYmIE9iamVjdC5rZXlzKGNoZWNrbGlzdHMpLmxlbmd0aCA+IDApIHtcblx0XHRjb25zdCBoZWFkbGluZXMgPSBbXCJOT0RFU1wiLCAuLi5PYmplY3Qua2V5cyhjaGVja2xpc3RzKS5tYXAoKGtleSkgPT4gYDoke2tleX1gKV07XG5cdFx0Y2hlY2tsaXN0cyA9IE9iamVjdC52YWx1ZXMoY2hlY2tsaXN0cyk7XG5cdFx0Y29uc3QgdXJscyA9IE9iamVjdC5rZXlzKGNoZWNrbGlzdHNbMF0pO1xuXHRcdGNvbnN0IHJlY29yZHMgPSB1cmxzLm1hcCgodXJsKSA9PiB7XG5cdFx0XHRjb25zdCBlcnJvcnMgPSBjaGVja2xpc3RzLmZpbHRlcigoY2hlY2tsaXN0KSA9PiBjaGVja2xpc3RbdXJsXSBpbnN0YW5jZW9mIEVycm9yKS5sZW5ndGg7XG5cdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRlcnJvcnMgPT09IGNoZWNrbGlzdHMubGVuZ3RoID8gY29sb3JzLnJlZCh1cmwpIDogZXJyb3JzID4gMCA/IGNvbG9ycy5teWVsbG93KHVybCkgOiBjb2xvcnMubWN5YW4odXJsKSxcblx0XHRcdFx0Li4uY2hlY2tsaXN0cy5tYXAoKGNoZWNrbGlzdCkgPT5cblx0XHRcdFx0XHRjaGVja2xpc3RbdXJsXSBpbnN0YW5jZW9mIEVycm9yXG5cdFx0XHRcdFx0XHQ/IGNvbG9ycy5yZWQoY2hlY2tsaXN0W3VybF0pXG5cdFx0XHRcdFx0XHQ6IGNoZWNrbGlzdFt1cmxdID09PSB0cnVlXG5cdFx0XHRcdFx0XHRcdD8gY29sb3JzLmxjeWFuKFwiQXllXCIpXG5cdFx0XHRcdFx0XHRcdDogY29sb3JzLmN5YW4oXCJOYXlcIiksXG5cdFx0XHRcdCksXG5cdFx0XHRdO1xuXHRcdH0pO1xuXHRcdHRyYWNlVGFibGUocmVjb3Jkcywge1xuXHRcdFx0aGVhZGxpbmVzLFxuXHRcdFx0bWF4Q29sdW1uV2lkdGg6IDMxLFxuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZUhlYWRlcihoZWFkbGluZSwgY29sb3IgPSBub3JtYWwsIGluZGVudCA9IFwiXCIpIHtcblx0Y29uc29sZS5pbmZvKGAke2luZGVudH3ilIzilIAke1wi4pSAXCIucmVwZWF0KGhlYWRsaW5lLmxlbmd0aCl94pSA4pSQYCk7XG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSCICR7Y29sb3IoaGVhZGxpbmUpfSDilIJgKTtcblx0Y29uc29sZS5pbmZvKGAke2luZGVudH3ilJTilIAke1wi4pSAXCIucmVwZWF0KGhlYWRsaW5lLmxlbmd0aCl94pSA4pSYYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZVRhYmxlKHJlY29yZHMsIG9wdGlvbnMpIHtcblx0Y29uc3Qgc3RyaW5naWZ5ID0gKGRhdGEsIGh1bWFuaXplcnMsIGluZGV4KSA9PlxuXHRcdGh1bWFuaXplcnM/LltpbmRleF0gPyBodW1hbml6ZXJzW2luZGV4XShkYXRhKS50b1N0cmluZygpIDogKGRhdGE/LnRvU3RyaW5nKCkgPz8gXCJcIik7XG5cdGNvbnN0IG1heCA9IChhLCBiKSA9PiAoYSA+IGIgPyBhIDogYik7XG5cdGNvbnN0IHJlZHVjZU1heCA9IChudW1iZXJzKSA9PiBudW1iZXJzLnJlZHVjZSgoY3VyciwgcHJldikgPT4gKHByZXYgPiBjdXJyID8gcHJldiA6IGN1cnIpLCAwKTtcblx0aWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XG5cdGNvbnN0IGluZGVudCA9IG9wdGlvbnM/LmluZGVudCB8fCBcIlwiO1xuXHRjb25zdCBudW1Db2x1bW5zID0gcmVkdWNlTWF4KHJlY29yZHMubWFwKChyZWNvcmQpID0+IHJlY29yZD8ubGVuZ3RoIHx8IDEpKTtcblx0Y29uc3QgbWF4Q29sdW1uV2lkdGggPSBvcHRpb25zPy5tYXhDb2x1bW5XaWR0aCB8fCA4MDtcblx0Y29uc3QgdGFibGUgPSB0cmFuc3Bvc2UocmVjb3JkcywgbnVtQ29sdW1ucyk7XG5cdG9wdGlvbnMud2lkdGhzID1cblx0XHRvcHRpb25zPy53aWR0aHMgfHxcblx0XHR0YWJsZS5tYXAoKGNvbHVtbiwgaW5kZXgpID0+IHtcblx0XHRcdGxldCBtYXhXaWR0aCA9IHJlZHVjZU1heChjb2x1bW4ubWFwKChmaWVsZCkgPT4gY29sb3JzdHJpcChzdHJpbmdpZnkoZmllbGQsIG9wdGlvbnM/Lmh1bWFuaXplcnMsIGluZGV4KSkubGVuZ3RoKSk7XG5cdFx0XHRpZiAob3B0aW9ucz8uaGVhZGxpbmVzPy5baW5kZXhdKSB7XG5cdFx0XHRcdG1heFdpZHRoID0gbWF4KG1heFdpZHRoLCBjb2xvcnN0cmlwKG9wdGlvbnMuaGVhZGxpbmVzW2luZGV4XS5yZXBsYWNlQWxsKFwiOlwiLCBcIlwiKSkubGVuZ3RoKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBNYXRoLm1pbihtYXhXaWR0aCwgbWF4Q29sdW1uV2lkdGgpO1xuXHRcdH0pO1xuXHRsZXQgaGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAoKG1heFdpZHRoKSA9PiBcIuKUgFwiLnJlcGVhdChtYXhXaWR0aCkpO1xuXHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUjOKUgCR7aGVhZGxpbmUuam9pbihcIuKUgOKUrOKUgFwiKX3ilIDilJBgKTtcblx0aWYgKG9wdGlvbnM/LmhlYWRsaW5lcykge1xuXHRcdGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCwgaW5kZXgpID0+IHtcblx0XHRcdGNvbnN0IGNhcHRpb24gPSBvcHRpb25zLmhlYWRsaW5lc1tpbmRleF0ucmVwbGFjZUFsbChcIjpcIiwgXCJcIik7XG5cdFx0XHRjb25zdCBjYXB0aW9uTGVuZ3RoID0gY29sb3JzdHJpcChjYXB0aW9uKS5sZW5ndGg7XG5cdFx0XHRyZXR1cm4gYCR7d2hpdGUoY2FwdGlvbil9JHtcIiBcIi5yZXBlYXQobWF4V2lkdGggLSBjYXB0aW9uTGVuZ3RoKX1gO1xuXHRcdH0pO1xuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSCICR7aGVhZGxpbmUuam9pbihcIiDilIIgXCIpfSDilIJgKTtcblx0XHRoZWFkbGluZSA9IG9wdGlvbnMud2lkdGhzLm1hcCgobWF4V2lkdGgpID0+IFwi4pSAXCIucmVwZWF0KG1heFdpZHRoKSk7XG5cdFx0Y29uc29sZS5pbmZvKGAke2luZGVudH3ilJzilIAke2hlYWRsaW5lLmpvaW4oXCLilIDilLzilIBcIil94pSA4pSkYCk7XG5cdH1cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IGxpbmUgPSBcIlwiO1xuXHRcdGZvciAobGV0IGogPSAwOyBqIDwgbnVtQ29sdW1uczsgaisrKSB7XG5cdFx0XHRsZXQgZGF0YSA9IHRhYmxlW2pdW2ldO1xuXHRcdFx0bGV0IGNvbG9yO1xuXHRcdFx0aWYgKG9wdGlvbnM/LmNvbG9ycz8uW2pdKSB7XG5cdFx0XHRcdGNvbG9yID0gb3B0aW9ucy5jb2xvcnNbal07XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb2xvciA9XG5cdFx0XHRcdFx0dHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCJcblx0XHRcdFx0XHRcdD8gZ3JlZW5cblx0XHRcdFx0XHRcdDogTnVtYmVyKGRhdGEpID09PSBkYXRhICYmIGRhdGEgJSAxICE9PSAwIC8vIGlzIGZsb2F0IG51bWJlcj9cblx0XHRcdFx0XHRcdFx0PyB5ZWxsb3dcblx0XHRcdFx0XHRcdFx0OiAoeCkgPT4geDtcblx0XHRcdH1cblx0XHRcdGRhdGEgPSBzdHJpbmdpZnkoZGF0YSwgb3B0aW9ucz8uaHVtYW5pemVycywgaik7XG5cdFx0XHRpZiAoY29sb3JzdHJpcChkYXRhKS5sZW5ndGggPiBtYXhDb2x1bW5XaWR0aCkge1xuXHRcdFx0XHR3aGlsZSAoY29sb3JzdHJpcChkYXRhKS5sZW5ndGggPiBtYXhDb2x1bW5XaWR0aCAtIDMpIHtcblx0XHRcdFx0XHRkYXRhID0gZGF0YS5zbGljZSgwLCAtMSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZGF0YSArPSBcIi4uLlwiO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZGF0YUxlbmd0aCA9IGNvbG9yc3RyaXAoZGF0YSkubGVuZ3RoO1xuXHRcdFx0aWYgKG9wdGlvbnM/LmhlYWRsaW5lcyAmJiBvcHRpb25zLmhlYWRsaW5lc1tqXVswXSA9PT0gXCI6XCIpIHtcblx0XHRcdFx0ZGF0YSA9IGAke2NvbG9yKGRhdGEpfSR7XCIgXCIucmVwZWF0KG9wdGlvbnMud2lkdGhzW2pdIC0gZGF0YUxlbmd0aCl9YDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGRhdGEgPSBgJHtcIiBcIi5yZXBlYXQob3B0aW9ucy53aWR0aHNbal0gLSBkYXRhTGVuZ3RoKX0ke2NvbG9yKGRhdGEpfWA7XG5cdFx0XHR9XG5cdFx0XHRsaW5lICs9IGDilIIgJHtkYXRhfSBgO1xuXHRcdH1cblx0XHRjb25zb2xlLmluZm8oYCR7aW5kZW50fSR7bGluZX3ilIJgKTtcblx0fVxuXHRoZWFkbGluZSA9IG9wdGlvbnMud2lkdGhzLm1hcCgobWF4V2lkdGgpID0+IFwi4pSAXCIucmVwZWF0KG1heFdpZHRoKSk7XG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS04pSAXCIpfeKUgOKUmGApO1xufVxuXG5mdW5jdGlvbiB0cmFuc3Bvc2UocmVjb3JkcywgbnVtQ29sdW1ucykge1xuXHRjb25zdCBjb2x1bW5zID0gW107XG5cdGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBudW1Db2x1bW5zOyBpbmRleCsrKSB7XG5cdFx0Y29sdW1ucy5wdXNoKHJlY29yZHMubWFwKChyb3cpID0+IHJvd1tpbmRleF0pKTtcblx0fVxuXHRyZXR1cm4gY29sdW1ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR4SnNvblJlcGxhY2VyKGtleSwgdmFsdWUpIHtcblx0c3dpdGNoIChrZXkpIHtcblx0XHRjYXNlIFwiYnl0ZXNcIjpcblx0XHRjYXNlIFwiZGVyXCI6XG5cdFx0XHRyZXR1cm4gdG9IZXhTdHJpbmcodmFsdWUsIHRydWUpO1xuXHRcdGNhc2UgXCJ0eFwiOlxuXHRcdFx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlLCB0eEpzb25SZXBsYWNlcik7XG5cdFx0Y2FzZSBcImNoYW5nZVwiOlxuXHRcdGNhc2UgXCJmZWVzXCI6XG5cdFx0Y2FzZSBcInZhbHVlXCI6XG5cdFx0XHRyZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKSAvIDEwICoqIDk7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHhSZWNlaXB0SnNvblJlcGxhY2VyKGtleSwgdmFsdWUpIHtcblx0c3dpdGNoIChrZXkpIHtcblx0XHRjYXNlIFwiYnl0ZXNcIjpcblx0XHRjYXNlIFwiZGVyXCI6XG5cdFx0XHRyZXR1cm4gdG9IZXhTdHJpbmcodmFsdWUsIHRydWUpO1xuXHRcdGNhc2UgXCJ0eFwiOlxuXHRcdFx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlLCB0eEpzb25SZXBsYWNlcik7XG5cdFx0Y2FzZSBcImNoYW5nZVwiOlxuXHRcdGNhc2UgXCJmZWVzXCI6XG5cdFx0Y2FzZSBcInZhbHVlXCI6XG5cdFx0XHRyZXR1cm4gcGFyc2VJbnQodmFsdWU/LnBlZHJvcywgMTApIC8gMTAgKiogOTtcblx0XHRjYXNlIFwidGltZXN0YW1wXCI6XG5cdFx0XHRyZXR1cm4gbW9tZW50LnVuaXgodmFsdWUpLmZvcm1hdChcIk1NTU0gRG8gWVlZWSwgaDptbTpzcyBhXCIpO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNlVHJhbnNhY3Rpb25PbkNoZWNrcG9pbnQocmVjZWlwdCkge1xuXHRpZiAocmVjZWlwdD8uY29uZmlybWF0aW9ucykge1xuXHRcdGNvbnNvbGUuaW5mbyhgID4gQ2hlY2twb2ludCAjJHtjb21tYXMocmVjZWlwdC5jb25maXJtYXRpb25zKX0uLi5gKTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2VUcmFuc2FjdGlvbk9uU3RhdHVzQ2hhbmdlKHJlY2VpcHQpIHtcblx0Y29uc3QgY2FwdGlvbnMgPSB7XG5cdFx0cGVuZGluZzogXCJBd2FpdGluZyByZWxheS4uLlwiLFxuXHRcdC8vIGNvbmZpcm1lZDogXCJUcmFuc2FjdGlvbiBjb25maXJtZWQ6XCIsXG5cdFx0Ly8gZmluYWxpemVkOiBcIlRyYW5zYWN0aW9uIGZpbmFsaXplZDpcIixcblx0XHRyZWxheWVkOiBcIkF3YWl0aW5nIGluY2x1c2lvbi4uLlwiLFxuXHRcdG1pbmVkOiBcIkF3YWl0aW5nIGNvbmZpcm1hdGlvbnMuLi5cIixcblx0fTtcblx0Y29uc3QgY2FwdGlvbiA9IGNhcHRpb25zW3JlY2VpcHQuc3RhdHVzXTtcblx0aWYgKGNhcHRpb24pIGNvbnNvbGUuaW5mbyhgID4gJHtjYXB0aW9uc1tyZWNlaXB0LnN0YXR1c119YCk7XG5cdGlmIChbXCJmaW5hbGl6ZWRcIiwgXCJjb25maXJtZWRcIl0uaW5jbHVkZXMocmVjZWlwdC5zdGF0dXMpKSB7XG5cdFx0Y29uc29sZS5pbmZvKGAgPiBCbG9jayBoYXNoOiAgICR7Y29sb3JzLmdyYXkocmVjZWlwdD8uYmxvY2tIYXNoKX1gKTtcblx0XHRjb25zb2xlLmluZm8oYCA+IEJsb2NrIG1pbmVyOiAgJHtjb2xvcnMuY3lhbihyZWNlaXB0Py5ibG9ja01pbmVyKX1gKTtcblx0XHRjb25zb2xlLmluZm8oYCA+IEJsb2NrIGVwb2NoOiAgJHtjb2xvcnMud2hpdGUoY29tbWFzKHJlY2VpcHQ/LmJsb2NrRXBvY2gpKX1gKTtcblx0XHRjb25zb2xlLmluZm8oXG5cdFx0XHRgID4gSW5jbHVkZWQgYXQ6ICAke2NvbG9ycy5ncmVlbihtb21lbnQudW5peChyZWNlaXB0Py5ibG9ja1RpbWVzdGFtcCkuZm9ybWF0KFwiTU1NTSBEbyBZWVlZLCBoOm1tOnNzIGFcIikpfWAsXG5cdFx0KTtcblx0XHRjb25zb2xlLmluZm8oXG5cdFx0XHRgID4gJHtyZWNlaXB0LnN0YXR1c1swXS50b1VwcGVyQ2FzZSgpICsgcmVjZWlwdC5zdGF0dXMuc2xpY2UoMSl9IGF0OiAke2NvbG9ycy5tZ3JlZW4obW9tZW50LnVuaXgocmVjZWlwdC50aW1lc3RhbXApLmZvcm1hdChcIk1NTU0gRG8gWVlZWSwgaDptbTpzcyBhXCIpKX1gLFxuXHRcdCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNlVHJhbnNhY3Rpb25SZWNlaXB0KHJlY2VpcHQpIHtcblx0Y29uc3QgY2FwdGlvbnMgPSB7XG5cdFx0RGF0YVJlcXVlc3Q6IFwiID4gRFJUIGhhc2g6ICAgICBcIixcblx0XHRWYWx1ZVRyYW5zZmVyOiBcIiA+IFZUVCBoYXNoOiAgICAgXCIsXG5cdH07XG5cdGNvbnNvbGUuaW5mbyhgJHtjYXB0aW9uc1tyZWNlaXB0LnR5cGVdIHx8IFwiID4gVFggaGFzaDogICAgICBcIn0ke2NvbG9ycy53aGl0ZShyZWNlaXB0Lmhhc2gpfWApO1xuXHRpZiAocmVjZWlwdD8uZHJvSGFzaCkgY29uc29sZS5pbmZvKGAgPiBEUk8gaGFzaDogICAgICR7Y29sb3JzLmdyZWVuKHJlY2VpcHQuZHJvSGFzaCl9YCk7XG5cdGlmIChyZWNlaXB0Py5yYWRIYXNoKSBjb25zb2xlLmluZm8oYCA+IFJBRCBoYXNoOiAgICAgJHtjb2xvcnMubWdyZWVuKHJlY2VpcHQucmFkSGFzaCl9YCk7XG5cdGlmIChyZWNlaXB0Py5kcm9TTEEpIGNvbnNvbGUuaW5mbyhgID4gU0xBIHBhcmFtczogICAke0pTT04uc3RyaW5naWZ5KHJlY2VpcHQuZHJvU0xBKX1gKTtcblx0aWYgKHJlY2VpcHQ/LndpdGhkcmF3ZXIpIHtcblx0XHRpZiAocmVjZWlwdD8udmFsaWRhdG9yKSB7XG5cdFx0XHRjb25zb2xlLmluZm8oYCA+IFZhbGlkYXRvcjogICAgJHtjb2xvcnMubWN5YW4ocmVjZWlwdC52YWxpZGF0b3IpfWApO1xuXHRcdH1cblx0XHRjb25zb2xlLmluZm8oYCA+IFdpdGhkcmF3ZXI6ICAgJHtjb2xvcnMubW1hZ2VudGEocmVjZWlwdC53aXRoZHJhd2VyKX1gKTtcblx0fSBlbHNlIHtcblx0XHRjb25zdCBzaWduZXJzID0gQXJyYXkuaXNBcnJheShyZWNlaXB0LmZyb20pID8gcmVjZWlwdC5mcm9tIDogW3JlY2VpcHQuZnJvbV07XG5cdFx0Y29uc29sZS5pbmZvKGAgPiBTaWduZXIvczogICAgICR7Y29sb3JzLm1tYWdlbnRhKHNpZ25lcnNbMF0pfWApO1xuXHRcdHNpZ25lcnMuc2xpY2UoMSkuZm9yRWFjaCgoc2lnbmVyKSA9PiB7XG5cdFx0XHRjb25zb2xlLmluZm8oYCAgICAgICAgICAgICAgICAgJHtjb2xvcnMubW1hZ2VudGEoc2lnbmVyKX1gKTtcblx0XHR9KTtcblx0fVxuXHRpZiAocmVjZWlwdD8ucmVjaXBpZW50cykge1xuXHRcdGNvbnNvbGUuaW5mbyhcblx0XHRcdGAgPiBSZWNpcGllbnQvczogICR7Y29sb3JzLm1ibHVlKFxuXHRcdFx0XHRyZWNlaXB0LnJlY2lwaWVudHMuZmlsdGVyKChwa2gsIGluZGV4LCBhcnJheSkgPT4gaW5kZXggPT09IGFycmF5LmluZGV4T2YocGtoKSksXG5cdFx0XHQpfWAsXG5cdFx0KTtcblx0fVxuXHRpZiAocmVjZWlwdD8uZmVlcykgY29uc29sZS5pbmZvKGAgPiBOZXR3b3JrIGZlZTogICR7Y29sb3JzLnllbGxvdyhyZWNlaXB0LmZlZXMudG9TdHJpbmcoMikpfWApO1xuXHRpZiAocmVjZWlwdD8udmFsdWUpIGNvbnNvbGUuaW5mbyhgID4gVmFsdWU6ICAgICAgICAke2NvbG9ycy5teWVsbG93KHJlY2VpcHQudmFsdWUudG9TdHJpbmcoMikpfWApO1xuXHRpZiAocmVjZWlwdD8ud2VpZ2h0KSBjb25zb2xlLmluZm8oYCA+IFdlaWdodDogICAgICAgJHtjb2xvcnMubWdyZWVuKGNvbW1hcyhyZWNlaXB0LndlaWdodCkpfWApO1xuXHRpZiAocmVjZWlwdD8ud2l0bmVzc2VzKSB7XG5cdFx0Y29uc29sZS5pbmZvKGAgPiBXaXRuZXNzZXM6ICAgICR7cmVjZWlwdC53aXRuZXNzZXN9YCk7XG5cdH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRyYWNlVHJhbnNhY3Rpb24odHJhbnNtaXR0ZXIsIG9wdGlvbnMpIHtcblx0Y29uc3QgY29sb3IgPSBvcHRpb25zPy5jb2xvciB8fCAoKHgpID0+IGBcXHgxYlszMDs0NW0ke3h9XFx4MWJbMG1gKTtcblx0bGV0IHJlY2VpcHQgPSBhd2FpdCB0cmFuc21pdHRlci5zaWduVHJhbnNhY3Rpb24ob3B0aW9ucywgb3B0aW9ucz8ucmVsb2FkKTtcblx0aWYgKG9wdGlvbnM/LnZlcmJvc2UpIHtcblx0XHRjb25zb2xlLmluZm8oYFxcbiR7Z3JheShKU09OLnN0cmluZ2lmeShyZWNlaXB0LnR4LCB0eEpzb25SZXBsYWNlcikpfWApO1xuXHR9XG5cdGlmIChvcHRpb25zPy5oZWFkbGluZSkge1xuXHRcdGNvbnNvbGUuaW5mbyhgXFxuICR7Y29sb3IoYCAgJHtvcHRpb25zLmhlYWRsaW5lfSAgYCl9XFxuYCk7XG5cdH1cblx0dHJhY2VUcmFuc2FjdGlvblJlY2VpcHQocmVjZWlwdCk7XG5cdGlmICghb3B0aW9ucz8uZm9yY2UpIHtcblx0XHQvLyBwcm9tcHQgdXNlciBjb25maXJtYXRpb25cblx0XHRjb25zb2xlLmluZm8oKTtcblx0XHRjb25zdCBhbnN3ZXIgPSBhd2FpdCByZXF1aXJlKFwiaW5xdWlyZXJcIikuY3JlYXRlUHJvbXB0TW9kdWxlKCkoW1xuXHRcdFx0e1xuXHRcdFx0XHRtZXNzYWdlOiBcIlNlbmQgdHJhbnNhY3Rpb24/XCIsXG5cdFx0XHRcdHR5cGU6IFwiY29uZmlybVwiLFxuXHRcdFx0XHRuYW1lOiBcImNvbnRpbnVlXCIsXG5cdFx0XHRcdGRlZmF1bHQ6IGZhbHNlLFxuXHRcdFx0fSxcblx0XHRdKTtcblx0XHRpZiAoIWFuc3dlci5jb250aW51ZSkge1xuXHRcdFx0cmV0dXJuIHJlY2VpcHQ7XG5cdFx0fVxuXHR9XG5cdHRyeSB7XG5cdFx0Y29uc29sZS5pbmZvKCk7XG5cdFx0cmVjZWlwdCA9IGF3YWl0IHRyYW5zbWl0dGVyLnNlbmRUcmFuc2FjdGlvbigpO1xuXHRcdGlmIChvcHRpb25zPy5hd2FpdCB8fCBvcHRpb25zPy5jb25maXJtYXRpb25zICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHJlY2VpcHQgPSBhd2FpdCB0cmFuc21pdHRlci5jb25maXJtVHJhbnNhY3Rpb24ocmVjZWlwdC5oYXNoLCB7XG5cdFx0XHRcdGNvbmZpcm1hdGlvbnM6IG9wdGlvbnM/LmNvbmZpcm1hdGlvbnMgfHwgMCxcblx0XHRcdFx0b25DaGVja3BvaW50OiB0cmFjZVRyYW5zYWN0aW9uT25DaGVja3BvaW50LFxuXHRcdFx0XHRvblN0YXR1c0NoYW5nZTogdHJhY2VUcmFuc2FjdGlvbk9uU3RhdHVzQ2hhbmdlLFxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGRhdGEgPSB7XG5cdFx0XHRcdHN0YXR1czogcmVjZWlwdD8uc3RhdHVzLFxuXHRcdFx0XHR0aW1lc3RhbXA6IHJlY2VpcHQ/LnRpbWVzdGFtcCB8fCBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKSxcblx0XHRcdH07XG5cdFx0XHRjb25zb2xlLmluZm8oZGF0YSk7XG5cdFx0fVxuXHR9IGNhdGNoIChlcnIpIHtcblx0XHRpZiAoZXJyPy5pbkZsaWdodCAmJiBlcnIuaW5GbGlnaHQpIHtcblx0XHRcdGNvbnNvbGUuaW5mbyhgXFxuJHtjb2xvcnMuZ3JheShKU09OLnN0cmluZ2lmeShlcnIuaW5GbGlndD8ubWVzc2FnZSwgdHhSZWNlaXB0SnNvblJlcGxhY2VyKSl9YCk7XG5cdFx0fVxuXHRcdHRocm93IGVycjtcblx0fVxuXHRyZXR1cm4gcmVjZWlwdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuZXNjYXBlU2xhc2hlcyhzdHIpIHtcblx0Ly8gYWRkIGFub3RoZXIgZXNjYXBlZCBzbGFzaCBpZiB0aGUgc3RyaW5nIGVuZHMgd2l0aCBhbiBvZGRcblx0Ly8gbnVtYmVyIG9mIGVzY2FwZWQgc2xhc2hlcyB3aGljaCB3aWxsIGNyYXNoIEpTT04ucGFyc2Vcblx0bGV0IHBhcnNlZFN0ciA9IHN0ci5yZXBsYWNlKC8oXnxbXlxcXFxdKShcXFxcXFxcXCkqXFxcXCQvLCBcIiQmXFxcXFwiKTtcblxuXHQvLyBlc2NhcGUgdW5lc2NhcGVkIGRvdWJsZSBxdW90ZXMgdG8gcHJldmVudCBlcnJvciB3aXRoXG5cdC8vIGFkZGVkIGRvdWJsZSBxdW90ZXMgaW4ganNvbiBzdHJpbmdcblx0cGFyc2VkU3RyID0gcGFyc2VkU3RyLnJlcGxhY2UoLyhefFteXFxcXF0pKChcXFxcXFxcXCkqXCIpL2csIFwiJDFcXFxcJDJcIik7XG5cblx0dHJ5IHtcblx0XHRwYXJzZWRTdHIgPSBKU09OLnBhcnNlKGBcIiR7cGFyc2VkU3RyfVwiYCk7XG5cdH0gY2F0Y2ggKF9lKSB7XG5cdFx0cmV0dXJuIHN0cjtcblx0fVxuXHRyZXR1cm4gcGFyc2VkU3RyO1xufVxuIl19
908
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vaGVscGVycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sS0FBSyxRQUFRLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFFN0IsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0MsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDakMsR0FBRyxDQUFDLE9BQU8sQ0FBQyw2RUFBNkUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVoRyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtJQUNoQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sTUFBTSxHQUNYLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxFQUFFO1FBQ3JELENBQUMsQ0FBQyxH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YUFBYSxDQUFDO0FBQ3hELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBQ3BELE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBQ3JELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBQ25ELE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBRXRELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2pELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2pELE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ2xELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3BELE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ25ELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQy9DLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQy9DLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQ2hELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3BELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxF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cUM7SUFDckMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFaEUsSUFBSSxDQUFDO1FBQ0osU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ2IsT0FBTyxHQUFHLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5pbXBvcnQgKiBhcyBuZXQgZnJvbSBcIm5vZGU6bmV0XCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0ICogYXMgcmVhZGxpbmUgZnJvbSBcIm5vZGU6cmVhZGxpbmVcIjtcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0IGtpbGwgZnJvbSBcInRyZWUta2lsbFwiO1xuXG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuY29uc3QgX1RPT0xLSVRfUlVOX1RJTUVPVVRfTVNFQ1MgPSAzMDAwMDtcblxuZXhwb3J0IGNvbnN0IGNvbG9yc3RyaXAgPSAoc3RyKSA9PlxuXHRzdHIucmVwbGFjZSgvW1xcdTAwMWJcXHUwMDliXVtbKCkjOz9dKig/OlswLTldezEsNH0oPzo7WzAtOV17MCw0fSkqKT9bMC05QS1PUlpjZi1ucXJ5PT48XS9nLCBcIlwiKTtcblxuZXhwb3J0IGNvbnN0IGNvbW1hcyA9IChudW1iZXIpID0+IHtcblx0Y29uc3QgcGFydHMgPSBudW1iZXIudG9TdHJpbmcoKS5zcGxpdChcIi5cIik7XG5cdGNvbnN0IHJlc3VsdCA9XG5cdFx0cGFydHMubGVuZ3RoIDw9IDFcblx0XHRcdD8gYCR7cGFydHNbMF0ucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgXCIsXCIpfWBcblx0XHRcdDogYCR7cGFydHNbMF0ucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgXCIsXCIpfS4ke3BhcnRzWzFdfWA7XG5cdHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdG9GaXhlZFRydW5jKHgsIG4pIHtcblx0Y29uc3QgdiA9ICh0eXBlb2YgeCA9PT0gXCJzdHJpbmdcIiA/IHggOiB4LnRvU3RyaW5nKCkpLnNwbGl0KFwiLlwiKTtcblx0aWYgKG4gPD0gMCkgcmV0dXJuIHZbMF07XG5cdGxldCBmID0gdlsxXSB8fCBcIlwiO1xuXHRpZiAoZi5sZW5ndGggPiBuKSByZXR1cm4gYCR7dlswXX0uJHtmLnN1YnN0cigwLCBuKX1gO1xuXHR3aGlsZSAoZi5sZW5ndGggPCBuKSBmICs9IFwiMFwiO1xuXHRyZXR1cm4gYCR7dlswXX0uJHtmfWA7XG59XG5cbmV4cG9ydCBjb25zdCB3aG9sZV93aXRzID0gKG51bWJlciwgZGlnaXRzKSA9PiB7XG5cdGNvbnN0IGxvb2t1cCA9IFtcblx0XHR7IHZhbHVlOiAxbiwgc3ltYm9sOiBcInBlZHJvc1wiIH0sXG5cdFx0eyB2YWx1ZTogMTBuICoqIDZuLCBzeW1ib2w6IFwibVdpdHNcIiB9LFxuXHRcdHsgdmFsdWU6IDEwbiAqKiA5biwgc3ltYm9sOiBcIiBXaXRzXCIgfSxcblx0XHR7IHZhbHVlOiAxMG4gKiogMTJuLCBzeW1ib2w6IFwiS1dpdHNcIiB9LFxuXHRcdHsgdmFsdWU6IDEwbiAqKiAxNW4sIHN5bWJvbDogXCJNV2l0c1wiIH0sXG5cdF07XG5cdC8vIGNvbnN0IHJlZ2V4cCA9IC9cXC4wKyR8KD88PVxcLlswLTldKTArJC9cblx0Y29uc3QgaXRlbSA9IGxvb2t1cC5maW5kTGFzdCgoaXRlbSkgPT4gbnVtYmVyID49IGl0ZW0udmFsdWUpO1xuXHRjb25zdCBxdW90aWVudCA9IGl0ZW0gPyBOdW1iZXIoQmlnSW50KG51bWJlcikgLyBpdGVtLnZhbHVlKSA6IG51bWJlci50b1N0cmluZygpO1xuXHRjb25zdCBkZWNpbWFscyA9IGl0ZW0gPyAoaXRlbS52YWx1ZSArIEJpZ0ludChudW1iZXIpIC0gQmlnSW50KHF1b3RpZW50KSAqIGl0ZW0udmFsdWUpLnRvU3RyaW5nKCkuc2xpY2UoMSkgOiBcIlwiO1xuXHRyZXR1cm4gaXRlbVxuXHRcdD8gYCR7Y29tbWFzKHF1b3RpZW50KX0ke2RlY2ltYWxzICE9PSBcIlwiID8gYC4ke2RlY2ltYWxzLnNsaWNlKDAsIGRpZ2l0cyl9YCA6IFwiXCJ9ICR7aXRlbS5zeW1ib2x9YFxuXHRcdDogXCIobm8gY29pbnMpXCI7XG59O1xuXG5jb25zdCBiYmx1ZSA9IChzdHIpID0+IGBcXHgxYlsxOzk4OzQ0bSR7c3RyfVxceDFiWzA7MDswbWA7XG5jb25zdCBiY3lhbiA9IChzdHIpID0+IGBcXHgxYlszODs0Nm0ke3N0cn1cXHgxYlswOzBtYDtcbmNvbnN0IGJncmVlbiA9IChzdHIpID0+IGBcXHgxYlszMDs0Mm0ke3N0cn1cXHgxYlswOzBtYDtcbmNvbnN0IGJyZWQgPSAoc3RyKSA9PiBgXFx4MWJbMzA7NDFtJHtzdHJ9XFx4MWJbMDswbWA7XG5jb25zdCBidmlvbGV0ID0gKHN0cikgPT4gYFxceDFiWzMwOzQ1bSR7c3RyfVxceDFiWzA7MG1gO1xuXG5jb25zdCBsY3lhbiA9IChzdHIpID0+IGBcXHgxYlsxOzk2bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IGxncmF5ID0gKHN0cikgPT4gYFxceDFiWzE7OTBtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbGdyZWVuID0gKHN0cikgPT4gYFxceDFiWzE7OTJtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbG1hZ2VudGEgPSAoc3RyKSA9PiBgXFx4MWJbMTs5NW0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBseWVsbG93ID0gKHN0cikgPT4gYFxceDFiWzE7OTNtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbWJsdWUgPSAoc3RyKSA9PiBgXFx4MWJbOTRtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbWN5YW4gPSAoc3RyKSA9PiBgXFx4MWJbOTZtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbWdyZWVuID0gKHN0cikgPT4gYFxceDFiWzkybSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IG1tYWdlbnRhID0gKHN0cikgPT4gYFxceDFiWzA7OTVtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbXJlZCA9IChzdHIpID0+IGBcXHgxYls5MW0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBteWVsbG93ID0gKHN0cikgPT4gYFxceDFiWzkzbSR7c3RyfVxceDFiWzBtYDtcblxuY29uc3QgYmx1ZSA9IChzdHIpID0+IGBcXHgxYlszNG0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCBjeWFuID0gKHN0cikgPT4gYFxceDFiWzM2bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IGdyYXkgPSAoc3RyKSA9PiBgXFx4MWJbOTBtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgZ3JlZW4gPSAoc3RyKSA9PiBgXFx4MWJbMzJtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3QgbWFnZW50YSA9IChzdHIpID0+IGBcXHgxYlswOzM1bSR7c3RyfVxceDFiWzBtYDtcbmNvbnN0IG5vcm1hbCA9IChzdHIpID0+IGBcXHgxYls5OG0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCByZWQgPSAoc3RyKSA9PiBgXFx4MWJbMzFtJHtzdHJ9XFx4MWJbMG1gO1xuY29uc3Qgd2hpdGUgPSAoc3RyKSA9PiBgXFx4MWJbMTs5OG0ke3N0cn1cXHgxYlswbWA7XG5jb25zdCB5ZWxsb3cgPSAoc3RyKSA9PiBgXFx4MWJbMzNtJHtzdHJ9XFx4MWJbMG1gO1xuXG5leHBvcnQgY29uc3QgY29sb3JzID0ge1xuXHRiYmx1ZSxcblx0YmN5YW4sXG5cdGJncmVlbixcblx0YnJlZCxcblx0YnZpb2xldCxcblx0bGN5YW4sXG5cdGxncmF5LFxuXHRsZ3JlZW4sXG5cdGxtYWdlbnRhLFxuXHRseWVsbG93LFxuXHRtYmx1ZSxcblx0bWN5YW4sXG5cdG1ncmVlbixcblx0bW1hZ2VudGEsXG5cdG1yZWQsXG5cdG15ZWxsb3csXG5cdGJsdWUsXG5cdGN5YW4sXG5cdGdyYXksXG5cdGdyZWVuLFxuXHRtYWdlbnRhLFxuXHRub3JtYWwsXG5cdHJlZCxcblx0d2hpdGUsXG5cdHllbGxvdyxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb3VudExlYXZlcyh0LCBvYmopIHtcblx0aWYgKCFvYmogfHwgdHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIDA7XG5cdGlmIChvYmogaW5zdGFuY2VvZiB0KSByZXR1cm4gMTtcblx0aWYgKEFycmF5LmlzQXJyYXkob2JqKSkgcmV0dXJuIG9iai5yZWR1Y2UoKHN1bSwgaXRlbSkgPT4gc3VtICsgY291bnRMZWF2ZXModCwgaXRlbSksIDApO1xuXHRlbHNlIHJldHVybiBPYmplY3QudmFsdWVzKG9iaikucmVkdWNlKChzdW0sIGl0ZW0pID0+IHN1bSArIGNvdW50TGVhdmVzKHQsIGl0ZW0pLCAwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGV0ZUV4dHJhRmxhZ3MoYXJncykge1xuXHRyZXR1cm4gYXJncy5maWx0ZXIoKGFyZykgPT4gIWFyZy5zdGFydHNXaXRoKFwiLS1cIikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY21kKHRpbWVvdXQsIC4uLmNvbW1hbmRzKSB7XG5cdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0Y29uc3QgW2JpbiwgLi4uYXJnc10gPSBjb21tYW5kcztcblx0XHRjb25zdCBjaGlsZCA9IHNwYXduKGJpbiwgYXJncywge1xuXHRcdFx0ZGV0YWNoZWQ6IHByb2Nlc3MuZW52LldJVFNES19EUllfUlVOX0RFVEFDSEVEXG5cdFx0XHRcdD8gQm9vbGVhbihwcm9jZXNzLmVudi5XSVRTREtfRFJZX1JVTl9ERVRBQ0hFRCA9PT0gXCJ0cnVlXCIpXG5cdFx0XHRcdDogcHJvY2Vzcy5wbGF0Zm9ybSAhPT0gXCJ3aW4zMlwiLFxuXHRcdFx0c2hlbGw6IHByb2Nlc3MuZW52LldJVFNES19EUllfUlVOX1NIRUxMXG5cdFx0XHRcdD8gQm9vbGVhbihwcm9jZXNzLmVudi5XSVRORVRfU0RLX0RSWV9SVU5fU0hFTEwgPT09IFwidHJ1ZVwiKVxuXHRcdFx0XHQ6IHByb2Nlc3MucGxhdGZvcm0gPT09IFwid2luMzJcIixcblx0XHRcdHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJwaXBlXCIsIFwicGlwZVwiXSxcblx0XHRcdGVudjoge1xuXHRcdFx0XHQuLi5wcm9jZXNzLmVudixcblx0XHRcdFx0TlBNX0NPTkZJR19ZRVM6IFwidHJ1ZVwiLCAvLyA9PiBwcmV2ZW50cyBucHggZnJvbSBzcGF3bmluZyBpbnRlcmFjdGl2ZSBwcm9tcHRzXG5cdFx0XHR9LFxuXHRcdH0pO1xuXG5cdFx0bGV0IHN0ZG91dCA9IFwiXCI7XG5cdFx0bGV0IHN0ZGVyciA9IFwiXCI7XG5cdFx0bGV0IGZpbmlzaGVkID0gZmFsc2U7XG5cblx0XHRjb25zdCBraWxsVHJlZSA9ICgpID0+IHtcblx0XHRcdGNvbnNvbGUuZGVidWcoXCI9PiBLaWxsaW5nIHByb2Nlc3MgdHJlZSB3aXRoIFBJRDpcIiwgY2hpbGQucGlkKTtcblx0XHRcdGNvbnNvbGUuZGVidWcoXCIgICBDb21tYW5kOlwiLCBgJHtiaW59ICR7YXJncy5qb2luKFwiIFwiKX1gKTtcblx0XHRcdGlmICghY2hpbGQucGlkKSByZXR1cm47XG5cdFx0XHRraWxsKGNoaWxkLnBpZCwgKGVycikgPT4ge1xuXHRcdFx0XHRpZiAoZXJyKSBjb25zb2xlLmRlYnVnKFwiICAgRXJyb3I6XCIsIGVycik7XG5cdFx0XHR9KTtcblx0XHR9O1xuXG5cdFx0Y29uc3QgdGltZXIgPVxuXHRcdFx0dGltZW91dCA+IDBcblx0XHRcdFx0PyBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdGlmIChmaW5pc2hlZCkgcmV0dXJuO1xuXHRcdFx0XHRcdFx0ZmluaXNoZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0a2lsbFRyZWUoKTtcblx0XHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoYG5weCBzaGVsbCBjb21tYW5kIHRpbWVkIG91dCBhZnRlciAke2NvbW1hcyh0aW1lb3V0KX0gbXNgKSk7XG5cdFx0XHRcdFx0fSwgdGltZW91dClcblx0XHRcdFx0OiBudWxsO1xuXG5cdFx0Y2hpbGQuc3Rkb3V0Lm9uKFwiZGF0YVwiLCAoZCkgPT4gKHN0ZG91dCArPSBkLnRvU3RyaW5nKCkpKTtcblx0XHRjaGlsZC5zdGRlcnIub24oXCJkYXRhXCIsIChkKSA9PiAoc3RkZXJyICs9IGQudG9TdHJpbmcoKSkpO1xuXG5cdFx0Y2hpbGQub24oXCJlcnJvclwiLCAoZXJyKSA9PiB7XG5cdFx0XHRpZiAoZmluaXNoZWQpIHJldHVybjtcblx0XHRcdGZpbmlzaGVkID0gdHJ1ZTtcblx0XHRcdGlmICh0aW1lcikgY2xlYXJUaW1lb3V0KHRpbWVyKTtcblx0XHRcdGtpbGxUcmVlKCk7XG5cdFx0XHRyZWplY3QoZXJyKTtcblx0XHR9KTtcblxuXHRcdGNoaWxkLm9uKFwiY2xvc2VcIiwgKGNvZGUsIHNpZ25hbCkgPT4ge1xuXHRcdFx0aWYgKGZpbmlzaGVkKSByZXR1cm47XG5cdFx0XHRmaW5pc2hlZCA9IHRydWU7XG5cdFx0XHRpZiAodGltZXIpIGNsZWFyVGltZW91dCh0aW1lcik7XG5cblx0XHRcdGlmIChzaWduYWwpIHtcblx0XHRcdFx0a2lsbFRyZWUoKTtcblx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcihgbnB4IHRlcm1pbmF0ZWQgYnkgc2lnbmFsICR7c2lnbmFsfWApKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoY29kZSAhPT0gMCkge1xuXHRcdFx0XHRraWxsVHJlZSgpO1xuXHRcdFx0XHRyZWplY3QobmV3IEVycm9yKGBucHggZmFpbGVkIHdpdGggZXhpdCBjb2RlICR7Y29kZX1cXG4ke3N0ZGVycn1gKSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHJlc29sdmUoc3Rkb3V0KTtcblx0XHR9KTtcblx0fSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjUmFkb25CeXRlY29kZShieXRlY29kZSwgdGltZW91dCwgLi4uZmxhZ3MpIHtcblx0aWYgKCFpc0hleFN0cmluZyhieXRlY29kZSkpIHtcblx0XHR0aHJvdyBFdmFsRXJyb3IoXCJpbnZhbGlkIGhleCBzdHJpbmdcIik7XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3QgbnB4ID0gb3MudHlwZSgpID09PSBcIldpbmRvd3NfTlRcIiA/IFwibnB4LmNtZFwiIDogXCJucHhcIjtcblx0XHRyZXR1cm4gY21kKFxuXHRcdFx0dGltZW91dCB8fCBfVE9PTEtJVF9SVU5fVElNRU9VVF9NU0VDUyxcblx0XHRcdG5weCxcblx0XHRcdFwid2l0c2RrXCIsXG5cdFx0XHRcInJhZG9uXCIsXG5cdFx0XHRcImRyeS1ydW5cIixcblx0XHRcdGJ5dGVjb2RlLFxuXHRcdFx0XCItLXRpbWVvdXRcIixcblx0XHRcdHRpbWVvdXQgfHwgX1RPT0xLSVRfUlVOX1RJTUVPVVRfTVNFQ1MsXG5cdFx0XHQuLi5mbGFncyxcblx0XHQpO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RnJvbUFyZ3MoYXJncywgZmxhZ3MpIHtcblx0Y29uc3QgY3VyYXRlZCA9IHt9O1xuXHRpZiAoYXJncyAmJiBmbGFncykge1xuXHRcdE9iamVjdC5rZXlzKGZsYWdzKS5mb3JFYWNoKChmbGFnKSA9PiB7XG5cdFx0XHRjb25zdCBmbGFnSW5kZXggPSBhcmdzLmluZGV4T2YoYC0tJHtmbGFnfWApO1xuXHRcdFx0aWYgKGZsYWdJbmRleCA+PSAwKSB7XG5cdFx0XHRcdGlmIChmbGFnc1tmbGFnXS5wYXJhbSkge1xuXHRcdFx0XHRcdGN1cmF0ZWRbZmxhZ10gPSBhcmdzW2ZsYWdJbmRleF07XG5cdFx0XHRcdFx0aWYgKCFhcmdzW2ZsYWdJbmRleCArIDFdIHx8IGFyZ3NbZmxhZ0luZGV4ICsgMV0uc3RhcnRzV2l0aChcIi0tXCIpKSB7XG5cdFx0XHRcdFx0XHR0aHJvdyBFcnJvcihgTWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yIC0tJHtmbGFnfWApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjdXJhdGVkW2ZsYWddID0gYXJnc1tmbGFnSW5kZXggKyAxXTtcblx0XHRcdFx0XHRcdGFyZ3Muc3BsaWNlKGZsYWdJbmRleCwgMik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGN1cmF0ZWRbZmxhZ10gPSB0cnVlO1xuXHRcdFx0XHRcdGFyZ3Muc3BsaWNlKGZsYWdJbmRleCwgMSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gW2FyZ3MsIGN1cmF0ZWRdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJvbUhleFN0cmluZyhoZXhTdHJpbmcpIHtcblx0aWYgKGhleFN0cmluZy5zdGFydHNXaXRoKFwiMHhcIikpIGhleFN0cmluZyA9IGhleFN0cmluZy5zbGljZSgyKTtcblx0cmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShoZXhTdHJpbmcubWF0Y2goLy57MSwyfS9nKS5tYXAoKGJ5dGUpID0+IHBhcnNlSW50KGJ5dGUsIDE2KSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXBJc1ByaXZhdGVPckxvY2FsaG9zdChpcCkge1xuXHRpZiAoaXAuc3Vic3RyaW5nKDAsIDcpID09PSBcIjo6ZmZmZjpcIikge1xuXHRcdGlwID0gaXAuc3Vic3RyaW5nKDcpO1xuXHR9XG5cblx0aWYgKG5ldC5pc0lQdjQoaXApKSB7XG5cdFx0Ly8gY2hlY2sgbG9jYWxob3N0XG5cdFx0aWYgKGlwID09PSBcIjEyNy4wLjAuMVwiKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHQvLyAgICAgICAgIDEwLjAuMC4wIC0gMTAuMjU1LjI1NS4yNTUgICAgICAgIHx8ICAgMTcyLjE2LjAuMCAtIDE3Mi4zMS4yNTUuMjU1ICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAgICAxOTIuMTY4LjAuMCAtIDE5Mi4xNjguMjU1LjI1NVxuXHRcdHJldHVybiAoXG5cdFx0XHQvXigxMClcXC4oLiopXFwuKC4qKVxcLiguKikkLy50ZXN0KGlwKSB8fFxuXHRcdFx0L14oMTcyKVxcLigxWzYtOV18MlswLTldfDNbMC0xXSlcXC4oLiopXFwuKC4qKSQvLnRlc3QoaXApIHx8XG5cdFx0XHQvXigxOTIpXFwuKDE2OClcXC4oLiopXFwuKC4qKSQvLnRlc3QoaXApXG5cdFx0KTtcblx0fVxuXG5cdC8vIGVsc2U6IGlwIGlzIElQdjZcblx0Y29uc3QgZmlyc3RXb3JkID0gaXAuc3BsaXQoXCI6XCIpLmZpbmQoKGVsKSA9PiAhIWVsKTsgLy8gZ2V0IGZpcnN0IG5vdCBlbXB0eSB3b3JkXG5cblx0Ly8gZXF1aXZhbGVudCBvZiAxMjcuMC4wLjEgaW4gSVB2NlxuXHRpZiAoaXAgPT09IFwiOjoxXCIpIHJldHVybiB0cnVlO1xuXHQvLyBUaGUgb3JpZ2luYWwgSVB2NiBTaXRlIExvY2FsIGFkZHJlc3NlcyAoZmVjMDo6LzEwKSBhcmUgZGVwcmVjYXRlZC4gUmFuZ2U6IGZlYzAgLSBmZWZmXG5cdGVsc2UgaWYgKC9eZmVbYy1mXVswLWZdJC8udGVzdChmaXJzdFdvcmQpKSByZXR1cm4gdHJ1ZTtcblx0Ly8gVGhlc2UgZGF5cyBVbmlxdWUgTG9jYWwgQWRkcmVzc2VzIChVTEEpIGFyZSB1c2VkIGluIHBsYWNlIG9mIFNpdGUgTG9jYWwuXG5cdC8vIFJhbmdlOiBmYzAwIC0gZmNmZlxuXHRlbHNlIGlmICgvXmZjWzAtZl17Mn0kLy50ZXN0KGZpcnN0V29yZCkpIHJldHVybiB0cnVlO1xuXHQvLyBSYW5nZTogZmQwMCAtIGZjZmZcblx0ZWxzZSBpZiAoL15mZFswLWZdezJ9JC8udGVzdChmaXJzdFdvcmQpKSByZXR1cm4gdHJ1ZTtcblx0Ly8gTGluayBsb2NhbCBhZGRyZXNzZXMgKHByZWZpeGVkIHdpdGggZmU4MCkgYXJlIG5vdCByb3V0YWJsZVxuXHRlbHNlIGlmIChmaXJzdFdvcmQgPT09IFwiZmU4MFwiKSByZXR1cm4gdHJ1ZTtcblx0Ly8gRGlzY2FyZCBQcmVmaXhcblx0ZWxzZSBpZiAoZmlyc3RXb3JkID09PSBcIjEwMFwiKSByZXR1cm4gdHJ1ZTtcblxuXHQvLyBBbnkgb3RoZXIgSVAgYWRkcmVzcyBpcyBub3QgVW5pcXVlIExvY2FsIEFkZHJlc3MgKFVMQSlcblx0cmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNIZXhTdHJpbmdPZkxlbmd0aChzdHIsIGxlbmd0aCkge1xuXHRyZXR1cm4gKFxuXHRcdChpc0hleFN0cmluZyhzdHIpICYmICgoc3RyLnN0YXJ0c1dpdGgoXCIweFwiKSAmJiBzdHIuc2xpY2UoMikubGVuZ3RoID09PSBsZW5ndGggKiAyKSB8fCBzdHIubGVuZ3RoID09PSBsZW5ndGggKiAyKSkgfHxcblx0XHRpc1dpbGRjYXJkKHN0cilcblx0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSGV4U3RyaW5nKHN0cikge1xuXHRyZXR1cm4gKFxuXHRcdCh0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiICYmXG5cdFx0XHQoKHN0ci5zdGFydHNXaXRoKFwiMHhcIikgJiYgL15bYS1mQS1GMC05XSskL2kudGVzdChzdHIuc2xpY2UoMikpKSB8fCAvXlthLWZBLUYwLTldKyQvaS50ZXN0KHN0cikpKSB8fFxuXHRcdGlzV2lsZGNhcmQoc3RyKVxuXHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9IZXhTdHJpbmcoYnVmZmVyLCBwcmVmaXgweCA9IGZhbHNlKSB7XG5cdGlmIChidWZmZXIgaW5zdGFuY2VvZiBVaW50OEFycmF5KSBidWZmZXIgPSBCdWZmZXIuZnJvbShidWZmZXIpO1xuXHRyZXR1cm4gKFxuXHRcdChwcmVmaXgweCA/IFwiMHhcIiA6IFwiXCIpICtcblx0XHRBcnJheS5wcm90b3R5cGUubWFwXG5cdFx0XHQuY2FsbChidWZmZXIsICh4KSA9PiBgMDAke3gudG9TdHJpbmcoMTYpfWAuc2xpY2UoLTIpKVxuXHRcdFx0LmpvaW4oXCJcIilcblx0XHRcdC5tYXRjaCgvW2EtZkEtRjAtOV17Mn0vZylcblx0XHRcdC5qb2luKFwiXCIpXG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVVSTCh1cmwpIHtcblx0dHJ5IHtcblx0XHRjb25zdCBwYXJzZWRVcmwgPSBuZXcgVVJMKHVybCk7XG5cdFx0cmV0dXJuIFtgJHtwYXJzZWRVcmwucHJvdG9jb2x9Ly9gLCBwYXJzZWRVcmwuaG9zdCwgcGFyc2VkVXJsLnBhdGhuYW1lLnNsaWNlKDEpLCBwYXJzZWRVcmwuc2VhcmNoLnNsaWNlKDEpXTtcblx0fSBjYXRjaCB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBVUkwgd2FzIHByb3ZpZGVkOiAke3VybH1gKTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1VzYWdlKGNtZCwgbW9kdWxlKSB7XG5cdHNob3dVc2FnZUhlYWRsaW5lKGNtZCk7XG5cdHNob3dVc2FnZU9wdGlvbnMoeyAuLi5tb2R1bGU/LmZsYWdzIH0pO1xuXHRzaG93VXNhZ2VGbGFncyh7IC4uLm1vZHVsZT8uZmxhZ3MgfSk7XG5cdHNob3dVc2FnZVJvdXRlcih7IC4uLm1vZHVsZT8ucm91dGVyIH0pO1xuXHRzaG93VXNhZ2VFbnZhcnMoeyAuLi5tb2R1bGU/LmVudmFycyB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dVc2FnZVJvdXRlcihyb3V0ZXIpIHtcblx0Y29uc3QgY21kcyA9IE9iamVjdC5lbnRyaWVzKHJvdXRlcik7XG5cdGlmIChjbWRzLmxlbmd0aCA+IDApIHtcblx0XHRjb25zb2xlLmluZm8oXCJcXG5TVUJDT01NQU5EUzpcIik7XG5cdFx0Y29uc3QgbWF4TGVuZ3RoID0gTWF0aC5tYXgoLi4uY21kcy5tYXAoKFtjbWRdKSA9PiBjbWQubGVuZ3RoKSk7XG5cdFx0Y21kcy5mb3JFYWNoKChjbWQpID0+IHtcblx0XHRcdGNvbnNvbGUuaW5mbyhcIiAgXCIsIGAke2NtZFswXX0ke1wiIFwiLnJlcGVhdChtYXhMZW5ndGggLSBjbWRbMF0ubGVuZ3RoKX1gLCBcIiAgXCIsIGNtZFsxXS5oaW50KTtcblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1VzYWdlRXJyb3IoY21kLCBzdWJjbWQsIG1vZHVsZSwgZXJyb3IsIGZsYWdzKSB7XG5cdHNob3dVc2FnZVN1YmNvbW1hbmQoY21kLCBzdWJjbWQsIG1vZHVsZSwgZXJyb3IpO1xuXHRpZiAoZXJyb3IpIHtcblx0XHRjb25zb2xlLmluZm8oXCJcXG5FUlJPUjpcIik7XG5cdFx0aWYgKGZsYWdzPy5kZWJ1Zykge1xuXHRcdFx0Y29uc29sZS5lcnJvcihlcnJvcik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoY29sb3JzLnJlZChlcnJvcj8uc3RhY2s/LnNwbGl0KFwiXFxuXCIpWzBdIHx8IGVycm9yKSk7XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93VXNhZ2VFbnZhcnMoZW52YXJzKSB7XG5cdGlmIChlbnZhcnMpIHtcblx0XHRlbnZhcnMgPSBPYmplY3QuZW50cmllcyhlbnZhcnMpO1xuXHRcdGlmIChlbnZhcnMubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uc29sZS5pbmZvKFwiXFxuRU5WQVJTOlwiKTtcblx0XHRcdGNvbnN0IG1heFdpZHRoID0gTWF0aC5tYXgoLi4uZW52YXJzLm1hcCgoW2VudmFyXSkgPT4gZW52YXIubGVuZ3RoKSk7XG5cdFx0XHRlbnZhcnMuZm9yRWFjaCgoW2VudmFyLCBoaW50XSkgPT4ge1xuXHRcdFx0XHRpZiAoZW52YXIudG9VcHBlckNhc2UoKS5pbmRleE9mKFwiS0VZXCIpIDwgMCAmJiBwcm9jZXNzLmVudltlbnZhcl0pIHtcblx0XHRcdFx0XHRjb25zb2xlLmluZm8oXG5cdFx0XHRcdFx0XHRcIiAgXCIsXG5cdFx0XHRcdFx0XHRgJHt5ZWxsb3coZW52YXIudG9VcHBlckNhc2UoKSl9JHtcIiBcIi5yZXBlYXQobWF4V2lkdGggLSBlbnZhci5sZW5ndGgpfWAsXG5cdFx0XHRcdFx0XHRgID0+IFNldHRsZWQgdG8gXCIke215ZWxsb3cocHJvY2Vzcy5lbnZbZW52YXJdKX1cImAsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb25zb2xlLmluZm8oXCIgIFwiLCBgJHt5ZWxsb3coZW52YXIudG9VcHBlckNhc2UoKSl9JHtcIiBcIi5yZXBlYXQobWF4V2lkdGggLSBlbnZhci5sZW5ndGgpfWAsIGAgJHtoaW50fWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dVc2FnZUZsYWdzKGZsYWdzKSB7XG5cdGlmIChmbGFncykge1xuXHRcdGZsYWdzID0gT2JqZWN0LmVudHJpZXMoZmxhZ3MpXG5cdFx0XHQuZmlsdGVyKChbLCBmbGFnXSkgPT4gIWZsYWc/LnBhcmFtKVxuXHRcdFx0LnNvcnQoKFthXSwgW2JdKSA9PiB7XG5cdFx0XHRcdGlmIChhIDwgYikgcmV0dXJuIC0xO1xuXHRcdFx0XHRlbHNlIGlmIChhID4gYikgcmV0dXJuIDE7XG5cdFx0XHRcdGVsc2UgcmV0dXJuIDA7XG5cdFx0XHR9KTtcblx0XHRpZiAoZmxhZ3MubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uc29sZS5pbmZvKFwiXFxuRkxBR1M6XCIpO1xuXHRcdFx0Y29uc3QgbWF4TGVuZ3RoID0gTWF0aC5tYXgoXG5cdFx0XHRcdC4uLmZsYWdzXG5cdFx0XHRcdFx0LmZpbHRlcigoWywgeyBoaW50IH1dKSA9PiBoaW50KVxuXHRcdFx0XHRcdC5tYXAoKFtrZXksIHsgcGFyYW0gfV0pID0+IChwYXJhbSA/IGtleS5sZW5ndGggKyBwYXJhbS5sZW5ndGggKyAzIDoga2V5Lmxlbmd0aCkpLFxuXHRcdFx0KTtcblx0XHRcdGZsYWdzLmZvckVhY2goKGZsYWcpID0+IHtcblx0XHRcdFx0Y29uc3Qgc3RyID0gYCR7ZmxhZ1swXX0ke2ZsYWdbMV0ucGFyYW0gPyBncmF5KGAgPCR7ZmxhZ1sxXS5wYXJhbX0+YCkgOiBcIlwifWA7XG5cdFx0XHRcdGlmIChmbGFnWzFdLmhpbnQpIHtcblx0XHRcdFx0XHRjb25zb2xlLmluZm8oXCIgIFwiLCBgLS0ke3N0cn0ke1wiIFwiLnJlcGVhdChtYXhMZW5ndGggLSBjb2xvcnN0cmlwKHN0cikubGVuZ3RoKX1gLCBcIiAgXCIsIGZsYWdbMV0uaGludCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1VzYWdlSGVhZGxpbmUoY21kLCBzdWJjbWQsIG1vZHVsZSkge1xuXHRjb25zb2xlLmluZm8oXCJVU0FHRTpcIik7XG5cdGlmIChzdWJjbWQpIHtcblx0XHRsZXQgcGFyYW1zID0gbW9kdWxlLnJvdXRlcltzdWJjbWRdPy5wYXJhbXM7XG5cdFx0Ly8gY29uc3Qgb3B0aW9ucyA9IG1vZHVsZS5yb3V0ZXJbc3ViY21kXT8ub3B0aW9uc1xuXHRcdGlmIChwYXJhbXMpIHtcblx0XHRcdGNvbnN0IG9wdGlvbmFsaXplID0gKHN0cikgPT5cblx0XHRcdFx0c3RyLmVuZHNXaXRoKFwiIC4uLl1cIikgPyBgWzwke3N0ci5zbGljZSgxLCAtNSl9PiAuLi5dYCA6IHN0clswXSA9PT0gXCJbXCIgPyBgWzwke3N0ci5zbGljZSgxLCAtMSl9Pl1gIDogYDwke3N0cn0+YDtcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KHBhcmFtcykpIHtcblx0XHRcdFx0cGFyYW1zID0gYCR7cGFyYW1zLm1hcCgocGFyYW0pID0+IG9wdGlvbmFsaXplKHBhcmFtKSkuam9pbihcIiBcIil9IGA7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwYXJhbXMgPSBvcHRpb25hbGl6ZShwYXJhbXMpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRjb25zb2xlLmluZm8oXG5cdFx0XHRgICAgJHtjb2xvcnMud2hpdGUoYG5weCB3aXRzZGsgJHtjbWR9YCl9ICR7Y29sb3JzLndoaXRlKHN1YmNtZCl9ICR7cGFyYW1zID8gYCR7Y29sb3JzLmdyZWVuKHBhcmFtcyl9IGAgOiBcIlwifVtPUFRJT05TXSBbRkxBR1NdYCxcblx0XHQpO1xuXHRcdGlmIChtb2R1bGU/LnJvdXRlcltzdWJjbWRdPy5oaW50KSB7XG5cdFx0XHRjb25zb2xlLmluZm8oXCJcXG5ERVNDUklQVElPTjpcIik7XG5cdFx0XHRjb25zb2xlLmluZm8oYCAgICR7bW9kdWxlLnJvdXRlcltzdWJjbWRdLmhpbnR9YCk7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdGNvbnNvbGUuaW5mbyhgICAgJHtjb2xvcnMud2hpdGUoYG5weCB3aXRzZGsgJHtjbWR9YCl9IDxTVUJDT01NQU5EPiAuLi4gW09QVElPTlNdIFtGTEFHU11gKTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd1VzYWdlT3B0aW9ucyhvcHRpb25zKSB7XG5cdG9wdGlvbnMgPSBPYmplY3QuZW50cmllcyhvcHRpb25zKVxuXHRcdC5maWx0ZXIoKFssIG9wdGlvbl0pID0+IG9wdGlvbj8ucGFyYW0pXG5cdFx0LnNvcnQoKFthXSwgW2JdKSA9PiB7XG5cdFx0XHRpZiAoYSA8IGIpIHJldHVybiAtMTtcblx0XHRcdGVsc2UgaWYgKGEgPiBiKSByZXR1cm4gMTtcblx0XHRcdGVsc2UgcmV0dXJuIDA7XG5cdFx0fSk7XG5cdGlmIChvcHRpb25zLmxlbmd0aCA+IDApIHtcblx0XHRjb25zb2xlLmluZm8oXCJcXG5PUFRJT05TOlwiKTtcblx0XHRjb25zdCBtYXhMZW5ndGggPSBvcHRpb25zXG5cdFx0XHQubWFwKChvcHRpb24pID0+IChvcHRpb25bMV0ucGFyYW0gPyBvcHRpb25bMV0ucGFyYW0ubGVuZ3RoICsgb3B0aW9uWzBdLmxlbmd0aCArIDMgOiBvcHRpb25bMF0ubGVuZ3RoKSlcblx0XHRcdC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IChjdXJyID4gcHJldiA/IGN1cnIgOiBwcmV2KSk7XG5cdFx0b3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcblx0XHRcdGlmIChvcHRpb25bMV0uaGludCkge1xuXHRcdFx0XHRjb25zdCBzdHIgPSBgJHtvcHRpb25bMF19JHtvcHRpb25bMV0ucGFyYW0gPyBncmF5KGAgPCR7b3B0aW9uWzFdLnBhcmFtfT5gKSA6IFwiXCJ9YDtcblx0XHRcdFx0Y29uc29sZS5pbmZvKFwiICBcIiwgYC0tJHtzdHJ9JHtcIiBcIi5yZXBlYXQobWF4TGVuZ3RoIC0gY29sb3JzdHJpcChzdHIpLmxlbmd0aCl9YCwgXCIgIFwiLCBvcHRpb25bMV0uaGludCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dVc2FnZVN1YmNvbW1hbmQoY21kLCBzdWJjbWQsIG1vZHVsZSkge1xuXHRzaG93VXNhZ2VIZWFkbGluZShjbWQsIHN1YmNtZCwgbW9kdWxlKTtcblx0c2hvd1VzYWdlT3B0aW9ucyh7IC4uLm1vZHVsZT8uZmxhZ3MsIC4uLm1vZHVsZS5yb3V0ZXJbc3ViY21kXT8ub3B0aW9ucyB9KTtcblx0c2hvd1VzYWdlRmxhZ3MoeyAuLi5tb2R1bGU/LmZsYWdzLCAuLi5tb2R1bGUucm91dGVyW3N1YmNtZF0/Lm9wdGlvbnMgfSk7XG5cdHNob3dVc2FnZUVudmFycyhtb2R1bGUucm91dGVyW3N1YmNtZF0/LmVudmFycyB8fCBtb2R1bGU/LmVudmFycyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93VmVyc2lvbigpIHtcblx0Y29uc29sZS5pbmZvKGAke2NvbG9ycy5tY3lhbihgV2l0bmV0IFNESyB2JHtyZXF1aXJlKFwiLi4vLi4vcGFja2FnZS5qc29uXCIpLnZlcnNpb259YCl9YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXaWxkY2FyZHNDb3VudEZyb21TdHJpbmcoc3RyKSB7XG5cdGxldCBtYXhBcmdzSW5kZXggPSAwO1xuXHRpZiAoc3RyICYmIHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIpIHtcblx0XHRsZXQgbWF0Y2g7XG5cdFx0Y29uc3QgcmVnZXhwID0gL1xcXFxcXGRcXFxcL2c7XG5cdFx0d2hpbGUgKChtYXRjaCA9IHJlZ2V4cC5leGVjKHN0cikpICE9PSBudWxsKSB7XG5cdFx0XHRjb25zdCBhcmdzSW5kZXggPSBwYXJzZUludChtYXRjaFswXVsxXSwgMTApICsgMTtcblx0XHRcdGlmIChhcmdzSW5kZXggPiBtYXhBcmdzSW5kZXgpIG1heEFyZ3NJbmRleCA9IGFyZ3NJbmRleDtcblx0XHR9XG5cdH1cblx0cmV0dXJuIG1heEFyZ3NJbmRleDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUnBjV2lsZGNhcmRzKHdpbGRjYXJkcykge1xuXHRpZiAodHlwZW9mIHdpbGRjYXJkcyA9PT0gXCJvYmplY3RcIikge1xuXHRcdE9iamVjdC52YWx1ZXMod2lsZGNhcmRzKS5mb3JFYWNoKCh3aWxkY2FyZCkgPT4ge1xuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkod2lsZGNhcmQpKVxuXHRcdFx0XHR3aWxkY2FyZC5mb3JFYWNoKChpdGVtKSA9PiB7XG5cdFx0XHRcdFx0Y2hlY2tScGNXaWxkY2FyZHMoaXRlbSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0ZWxzZSBjaGVja1JwY1dpbGRjYXJkcyh3aWxkY2FyZCk7XG5cdFx0fSk7XG5cdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh3aWxkY2FyZHMpKSB7XG5cdFx0d2lsZGNhcmRzLmZvckVhY2goKHdpbGRjYXJkKSA9PiB7XG5cdFx0XHRjaGVja1JwY1dpbGRjYXJkcyh3aWxkY2FyZCk7XG5cdFx0fSk7XG5cdH0gZWxzZSBpZiAodHlwZW9mIHdpbGRjYXJkcyA9PT0gXCJzdHJpbmdcIikge1xuXHRcdGlmIChpc1dpbGRjYXJkKHdpbGRjYXJkcykpIHtcblx0XHRcdGNvbnN0IGNoYXIgPSB3aWxkY2FyZHMuY2hhckF0KDEpO1xuXHRcdFx0aWYgKGNoYXIgPCBcIjBcIiB8fCBjaGFyID4gXCI5XCIpIHtcblx0XHRcdFx0dGhyb3cgRXJyb3IoXCJSUEM6IHdpbGRjYXJkcyBub3QgaW4gcmFuZ2UgWzAgLi4gOV1cIik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1dpbGRjYXJkKHN0cikge1xuXHRyZXR1cm4gc3RyLmxlbmd0aCA9PT0gMyAmJiAvXFxcXFxcZFxcXFwvZy50ZXN0KHN0cik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlV2lsZGNhcmRzKG9iaiwgYXJncykge1xuXHRpZiAoYXJncy5sZW5ndGggPiAxMCkgYXJncyA9IGFyZ3Muc2xpY2UoMCwgMTApO1xuXHRpZiAob2JqICYmIHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIpIHtcblx0XHRmb3IgKGxldCBhcmdJbmRleCA9IDA7IGFyZ0luZGV4IDwgYXJncy5sZW5ndGg7IGFyZ0luZGV4KyspIHtcblx0XHRcdGNvbnN0IHdpbGRjYXJkID0gYFxcXFwke2FyZ0luZGV4fVxcXFxgO1xuXHRcdFx0b2JqID0gb2JqLnJlcGxhY2VBbGwod2lsZGNhcmQsIGFyZ3NbYXJnSW5kZXhdKTtcblx0XHR9XG5cdH0gZWxzZSBpZiAob2JqICYmIEFycmF5LmlzQXJyYXkob2JqKSkge1xuXHRcdG9iaiA9IG9iai5tYXAoKHZhbHVlKSA9PlxuXHRcdFx0dHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpID8gcmVwbGFjZVdpbGRjYXJkcyh2YWx1ZSwgYXJncykgOiB2YWx1ZSxcblx0XHQpO1xuXHR9IGVsc2UgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiKSB7XG5cdFx0b2JqID0gcmVwbGFjZU9iamVjdFdpbGRjYXJkcyhvYmosIGFyZ3MpO1xuXHR9XG5cdHJldHVybiBvYmo7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlT2JqZWN0V2lsZGNhcmRzKG9iaiwgYXJncykge1xuXHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdE9iamVjdC5lbnRyaWVzKG9iaikubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcblx0XHRcdGZvciAobGV0IGFyZ0luZGV4ID0gMDsgYXJnSW5kZXggPCBhcmdzLmxlbmd0aDsgYXJnSW5kZXgrKykge1xuXHRcdFx0XHRjb25zdCB3aWxkY2FyZCA9IGBcXFxcJHthcmdJbmRleH1cXFxcYDtcblx0XHRcdFx0a2V5ID0ga2V5LnJlcGxhY2VBbGwod2lsZGNhcmQsIGFyZ3NbYXJnSW5kZXhdKTtcblx0XHRcdFx0dmFsdWUgPSByZXBsYWNlV2lsZGNhcmRzKHZhbHVlLCBhcmdzKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBba2V5LCB2YWx1ZV07XG5cdFx0fSksXG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzcGxpY2VXaWxkY2FyZChvYmosIGFyZ0luZGV4LCBhcmdWYWx1ZSwgYXJnc0NvdW50KSB7XG5cdGlmIChvYmogJiYgdHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIikge1xuXHRcdGNvbnN0IHdpbGRjYXJkID0gYFxcXFwke2FyZ0luZGV4fVxcXFxgO1xuXHRcdG9iaiA9IG9iai5yZXBsYWNlQWxsKHdpbGRjYXJkLCBhcmdWYWx1ZSk7XG5cdFx0Zm9yIChsZXQgaiA9IGFyZ0luZGV4ICsgMTsgaiA8IGFyZ3NDb3VudDsgaisrKSB7XG5cdFx0XHRvYmogPSBvYmoucmVwbGFjZUFsbChgXFxcXCR7an1cXFxcYCwgYFxcXFwke2ogLSAxfVxcXFxgKTtcblx0XHR9XG5cdH0gZWxzZSBpZiAob2JqICYmIEFycmF5LmlzQXJyYXkob2JqKSkge1xuXHRcdG9iaiA9IG9iai5tYXAoKHZhbHVlKSA9PlxuXHRcdFx0dHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpID8gc3BsaWNlV2lsZGNhcmQodmFsdWUsIGFyZ0luZGV4LCBhcmdWYWx1ZSwgYXJnc0NvdW50KSA6IHZhbHVlLFxuXHRcdCk7XG5cdH1cblx0cmV0dXJuIG9iajtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRvb2xraXRSdW4oc2V0dGluZ3MsIGFyZ3MpIHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRjb25zdCBiaW4gPSBgJHtzZXR0aW5ncy5wYXRocy50b29sa2l0QmluUGF0aH1gO1xuXHRcdGNvbnN0IGNoaWxkID0gc3Bhd24oYmluLCBhcmdzLCB7XG5cdFx0XHRkZXRhY2hlZDogcHJvY2Vzcy5lbnYuV0lUU0RLX0RSWV9SVU5fREVUQUNIRURcblx0XHRcdFx0PyBCb29sZWFuKHByb2Nlc3MuZW52LldJVFNES19EUllfUlVOX0RFVEFDSEVEID09PSBcInRydWVcIilcblx0XHRcdFx0OiBwcm9jZXNzLnBsYXRmb3JtICE9PSBcIndpbjMyXCIsXG5cdFx0XHRzaGVsbDogcHJvY2Vzcy5lbnYuV0lUU0RLX0RSWV9SVU5fU0hFTExcblx0XHRcdFx0PyBCb29sZWFuKHByb2Nlc3MuZW52LldJVE5FVF9TREtfRFJZX1JVTl9TSEVMTCA9PT0gXCJ0cnVlXCIpXG5cdFx0XHRcdDogcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiLFxuXHRcdFx0c3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuXHRcdFx0ZW52OiB7XG5cdFx0XHRcdC4uLnByb2Nlc3MuZW52LFxuXHRcdFx0XHROUE1fQ09ORklHX1lFUzogXCJ0cnVlXCIsIC8vID0+IHByZXZlbnRzIG5weCBmcm9tIHNwYXduaW5nIGludGVyYWN0aXZlIHByb21wdHNcblx0XHRcdH0sXG5cdFx0fSk7XG5cblx0XHRsZXQgc3Rkb3V0ID0gXCJcIjtcblx0XHRsZXQgc3RkZXJyID0gXCJcIjtcblx0XHRsZXQgZmluaXNoZWQgPSBmYWxzZTtcblxuXHRcdGNoaWxkLnN0ZG91dC5vbihcImRhdGFcIiwgKGQpID0+IChzdGRvdXQgKz0gZC50b1N0cmluZygpKSk7XG5cdFx0Y2hpbGQuc3RkZXJyLm9uKFwiZGF0YVwiLCAoZCkgPT4gKHN0ZGVyciArPSBkLnRvU3RyaW5nKCkpKTtcblxuXHRcdGNoaWxkLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ge1xuXHRcdFx0aWYgKGZpbmlzaGVkKSByZXR1cm47XG5cdFx0XHRmaW5pc2hlZCA9IHRydWU7XG5cdFx0XHRyZWplY3QoZXJyKTtcblx0XHR9KTtcblxuXHRcdGNoaWxkLm9uKFwiY2xvc2VcIiwgKGNvZGUsIHNpZ25hbCkgPT4ge1xuXHRcdFx0aWYgKGZpbmlzaGVkKSByZXR1cm47XG5cdFx0XHRmaW5pc2hlZCA9IHRydWU7XG5cblx0XHRcdGlmIChzaWduYWwpIHtcblx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcihgd2l0bmV0X3Rvb2xraXQgYmluYXJ5IHRlcm1pbmF0ZWQgYnkgc2lnbmFsICR7c2lnbmFsfWApKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoY29kZSAhPT0gMCkge1xuXHRcdFx0XHRyZWplY3QobmV3IEVycm9yKGB3aXRuZXRfdG9vbGtpdCBiaW5hcnkgZmFpbGVkIHdpdGggZXhpdCBjb2RlICR7Y29kZX1cXG4ke3N0ZGVycn1gKSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0cmVzb2x2ZShzdGRvdXQpO1xuXHRcdH0pO1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvVXBwZXJDYW1lbENhc2Uoc3RyKSB7XG5cdHJldHVybiBzdHIucmVwbGFjZSgvXFxiKFxcdykvZywgKF9tYXRjaCwgY2FwdHVyZSkgPT4gY2FwdHVyZS50b1VwcGVyQ2FzZSgpKS5yZXBsYWNlKC9cXHMrL2csIFwiXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9VdGYxNkJ5dGVzKHN0cikge1xuXHRjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KHN0ci5sZW5ndGggKiAyKTtcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcblx0XHRjb25zdCBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XG5cdFx0Ynl0ZXNbaSAqIDJdID0gY29kZSA+PiA4O1xuXHRcdGJ5dGVzW2kgKiAyICsgMV0gPSBjb2RlICYgMHhmZjtcblx0fVxuXHRyZXR1cm4gYnl0ZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1V0ZjhBcnJheShzdHIpIHtcblx0Y29uc3QgdXRmOCA9IFtdO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuXHRcdGxldCBjaGFyY29kZSA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuXHRcdGlmIChjaGFyY29kZSA8IDB4ODApIHV0ZjgucHVzaChjaGFyY29kZSk7XG5cdFx0ZWxzZSBpZiAoY2hhcmNvZGUgPCAweDgwMCkge1xuXHRcdFx0dXRmOC5wdXNoKDB4YzAgfCAoY2hhcmNvZGUgPj4gNiksIDB4ODAgfCAoY2hhcmNvZGUgJiAweDNmKSk7XG5cdFx0fSBlbHNlIGlmIChjaGFyY29kZSA8IDB4ZDgwMCB8fCBjaGFyY29kZSA+PSAweGUwMDApIHtcblx0XHRcdHV0ZjgucHVzaCgweGUwIHwgKGNoYXJjb2RlID4+IDEyKSwgMHg4MCB8ICgoY2hhcmNvZGUgPj4gNikgJiAweDNmKSwgMHg4MCB8IChjaGFyY29kZSAmIDB4M2YpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gc3Vycm9nYXRlIHBhaXJcblx0XHRcdGkrKztcblx0XHRcdC8vIFVURi0xNiBlbmNvZGVzIDB4MTAwMDAtMHgxMEZGRkYgYnlcblx0XHRcdC8vIHN1YnRyYWN0aW5nIDB4MTAwMDAgYW5kIHNwbGl0dGluZyB0aGVcblx0XHRcdC8vIDIwIGJpdHMgb2YgMHgwLTB4RkZGRkYgaW50byB0d28gaGFsdmVzXG5cdFx0XHRjaGFyY29kZSA9IDB4MTAwMDAgKyAoKChjaGFyY29kZSAmIDB4M2ZmKSA8PCAxMCkgfCAoc3RyLmNoYXJDb2RlQXQoaSkgJiAweDNmZikpO1xuXHRcdFx0dXRmOC5wdXNoKFxuXHRcdFx0XHQweGYwIHwgKGNoYXJjb2RlID4+IDE4KSxcblx0XHRcdFx0MHg4MCB8ICgoY2hhcmNvZGUgPj4gMTIpICYgMHgzZiksXG5cdFx0XHRcdDB4ODAgfCAoKGNoYXJjb2RlID4+IDYpICYgMHgzZiksXG5cdFx0XHRcdDB4ODAgfCAoY2hhcmNvZGUgJiAweDNmKSxcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiB1dGY4O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXRmOEFycmF5VG9TdHIoYXJyYXkpIHtcblx0Y29uc3QgbGVuID0gYXJyYXkubGVuZ3RoO1xuXHRsZXQgb3V0ID0gXCJcIjtcblx0bGV0IGkgPSAwO1xuXHRsZXQgYztcblx0bGV0IGNoYXIyLCBjaGFyMztcblx0d2hpbGUgKGkgPCBsZW4pIHtcblx0XHRjID0gYXJyYXlbaSsrXTtcblx0XHRzd2l0Y2ggKGMgPj4gNCkge1xuXHRcdFx0Y2FzZSAwOlxuXHRcdFx0Y2FzZSAxOlxuXHRcdFx0Y2FzZSAyOlxuXHRcdFx0Y2FzZSAzOlxuXHRcdFx0Y2FzZSA0OlxuXHRcdFx0Y2FzZSA1OlxuXHRcdFx0Y2FzZSA2OlxuXHRcdFx0Y2FzZSA3OlxuXHRcdFx0XHQvLyAweHh4eHh4eFxuXHRcdFx0XHRvdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIDEyOlxuXHRcdFx0Y2FzZSAxMzpcblx0XHRcdFx0Ly8gMTEweCB4eHh4ICAgMTB4eCB4eHh4XG5cdFx0XHRcdGNoYXIyID0gYXJyYXlbaSsrXTtcblx0XHRcdFx0b3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKChjICYgMHgxZikgPDwgNikgfCAoY2hhcjIgJiAweDNmKSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAxNDpcblx0XHRcdFx0Ly8gMTExMCB4eHh4ICAxMHh4IHh4eHggIDEweHggeHh4eFxuXHRcdFx0XHRjaGFyMiA9IGFycmF5W2krK107XG5cdFx0XHRcdGNoYXIzID0gYXJyYXlbaSsrXTtcblx0XHRcdFx0b3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKChjICYgMHgwZikgPDwgMTIpIHwgKChjaGFyMiAmIDB4M2YpIDw8IDYpIHwgKChjaGFyMyAmIDB4M2YpIDw8IDApKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBvdXQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9tcHQocXVlc3Rpb24pIHtcblx0Y29uc3QgcmVhZGxpbmVJbnRlcmZhY2UgPSByZWFkbGluZS5jcmVhdGVJbnRlcmZhY2Uoe1xuXHRcdGlucHV0OiBwcm9jZXNzLnN0ZGluLFxuXHRcdG91dHB1dDogcHJvY2Vzcy5zdGRvdXQsXG5cdH0pO1xuXHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIF9yZWplY3QpID0+IHtcblx0XHRyZWFkbGluZUludGVyZmFjZS5xdWVzdGlvbihgJHtxdWVzdGlvbn0gYCwgKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRyZWFkbGluZUludGVyZmFjZS5jbG9zZSgpO1xuXHRcdFx0cmVzb2x2ZShyZXNwb25zZS50cmltKCkpO1xuXHRcdH0pO1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb21wdGVyKHByb21pc2UpIHtcblx0Y29uc3QgbG9hZGluZyA9ICgoKSA9PiB7XG5cdFx0Y29uc3QgaCA9IFtcInxcIiwgXCIvXCIsIFwiLVwiLCBcIlxcXFxcIl07XG5cdFx0bGV0IGkgPSAwO1xuXHRcdHJldHVybiBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHRpID0gaSA+IDMgPyAwIDogaTtcblx0XHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBcXGJcXGIke2hbaV19IGApO1xuXHRcdFx0aSsrO1xuXHRcdH0sIDUwKTtcblx0fSkoKTtcblx0cmV0dXJuIHByb21pc2UudGhlbigocmVzdWx0KSA9PiB7XG5cdFx0Y2xlYXJJbnRlcnZhbChsb2FkaW5nKTtcblx0XHRwcm9jZXNzLnN0ZG91dC53cml0ZShcIlxcYlxcYlwiKTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlYXJjaFdvcmtzcGFjZSgpIHtcblx0bGV0IHdvcmtzcGFjZSA9IHBhdGgubm9ybWFsaXplKHByb2Nlc3MuY3dkKCkpO1xuXHR3aGlsZSAoIWZzLmV4aXN0c1N5bmMoYCR7d29ya3NwYWNlfS93aXRuZXQvYXNzZXRzYCkgJiYgcGF0aC5kaXJuYW1lKHdvcmtzcGFjZSkgIT09IHdvcmtzcGFjZSkge1xuXHRcdHdvcmtzcGFjZSA9IHBhdGguZGlybmFtZSh3b3Jrc3BhY2UpO1xuXHR9XG5cdHJldHVybiB3b3Jrc3BhY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZUNoZWNrbGlzdHMoY2hlY2tsaXN0cykge1xuXHRpZiAoY2hlY2tsaXN0cyAmJiBPYmplY3Qua2V5cyhjaGVja2xpc3RzKS5sZW5ndGggPiAwKSB7XG5cdFx0Y29uc3QgaGVhZGxpbmVzID0gW1wiTk9ERVNcIiwgLi4uT2JqZWN0LmtleXMoY2hlY2tsaXN0cykubWFwKChrZXkpID0+IGA6JHtrZXl9YCldO1xuXHRcdGNoZWNrbGlzdHMgPSBPYmplY3QudmFsdWVzKGNoZWNrbGlzdHMpO1xuXHRcdGNvbnN0IHVybHMgPSBPYmplY3Qua2V5cyhjaGVja2xpc3RzWzBdKTtcblx0XHRjb25zdCByZWNvcmRzID0gdXJscy5tYXAoKHVybCkgPT4ge1xuXHRcdFx0Y29uc3QgZXJyb3JzID0gY2hlY2tsaXN0cy5maWx0ZXIoKGNoZWNrbGlzdCkgPT4gY2hlY2tsaXN0W3VybF0gaW5zdGFuY2VvZiBFcnJvcikubGVuZ3RoO1xuXHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0ZXJyb3JzID09PSBjaGVja2xpc3RzLmxlbmd0aCA/IGNvbG9ycy5yZWQodXJsKSA6IGVycm9ycyA+IDAgPyBjb2xvcnMubXllbGxvdyh1cmwpIDogY29sb3JzLm1jeWFuKHVybCksXG5cdFx0XHRcdC4uLmNoZWNrbGlzdHMubWFwKChjaGVja2xpc3QpID0+XG5cdFx0XHRcdFx0Y2hlY2tsaXN0W3VybF0gaW5zdGFuY2VvZiBFcnJvclxuXHRcdFx0XHRcdFx0PyBjb2xvcnMucmVkKGNoZWNrbGlzdFt1cmxdKVxuXHRcdFx0XHRcdFx0OiBjaGVja2xpc3RbdXJsXSA9PT0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHQ/IGNvbG9ycy5sY3lhbihcIkF5ZVwiKVxuXHRcdFx0XHRcdFx0XHQ6IGNvbG9ycy5jeWFuKFwiTmF5XCIpLFxuXHRcdFx0XHQpLFxuXHRcdFx0XTtcblx0XHR9KTtcblx0XHR0cmFjZVRhYmxlKHJlY29yZHMsIHtcblx0XHRcdGhlYWRsaW5lcyxcblx0XHRcdG1heENvbHVtbldpZHRoOiAzMSxcblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2VIZWFkZXIoaGVhZGxpbmUsIGNvbG9yID0gbm9ybWFsLCBpbmRlbnQgPSBcIlwiKSB7XG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSM4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkbGluZS5sZW5ndGgpfeKUgOKUkGApO1xuXHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUgiAke2NvbG9yKGhlYWRsaW5lKX0g4pSCYCk7XG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkbGluZS5sZW5ndGgpfeKUgOKUmGApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2VUYWJsZShyZWNvcmRzLCBvcHRpb25zKSB7XG5cdGNvbnN0IHN0cmluZ2lmeSA9IChkYXRhLCBodW1hbml6ZXJzLCBpbmRleCkgPT5cblx0XHRodW1hbml6ZXJzPy5baW5kZXhdID8gaHVtYW5pemVyc1tpbmRleF0oZGF0YSkudG9TdHJpbmcoKSA6IChkYXRhPy50b1N0cmluZygpID8/IFwiXCIpO1xuXHRjb25zdCBtYXggPSAoYSwgYikgPT4gKGEgPiBiID8gYSA6IGIpO1xuXHRjb25zdCByZWR1Y2VNYXggPSAobnVtYmVycykgPT4gbnVtYmVycy5yZWR1Y2UoKGN1cnIsIHByZXYpID0+IChwcmV2ID4gY3VyciA/IHByZXYgOiBjdXJyKSwgMCk7XG5cdGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xuXHRjb25zdCBpbmRlbnQgPSBvcHRpb25zPy5pbmRlbnQgfHwgXCJcIjtcblx0Y29uc3QgbnVtQ29sdW1ucyA9IHJlZHVjZU1heChyZWNvcmRzLm1hcCgocmVjb3JkKSA9PiByZWNvcmQ/Lmxlbmd0aCB8fCAxKSk7XG5cdGNvbnN0IG1heENvbHVtbldpZHRoID0gb3B0aW9ucz8ubWF4Q29sdW1uV2lkdGggfHwgODA7XG5cdGNvbnN0IHRhYmxlID0gdHJhbnNwb3NlKHJlY29yZHMsIG51bUNvbHVtbnMpO1xuXHRvcHRpb25zLndpZHRocyA9XG5cdFx0b3B0aW9ucz8ud2lkdGhzIHx8XG5cdFx0dGFibGUubWFwKChjb2x1bW4sIGluZGV4KSA9PiB7XG5cdFx0XHRsZXQgbWF4V2lkdGggPSByZWR1Y2VNYXgoY29sdW1uLm1hcCgoZmllbGQpID0+IGNvbG9yc3RyaXAoc3RyaW5naWZ5KGZpZWxkLCBvcHRpb25zPy5odW1hbml6ZXJzLCBpbmRleCkpLmxlbmd0aCkpO1xuXHRcdFx0aWYgKG9wdGlvbnM/LmhlYWRsaW5lcz8uW2luZGV4XSkge1xuXHRcdFx0XHRtYXhXaWR0aCA9IG1heChtYXhXaWR0aCwgY29sb3JzdHJpcChvcHRpb25zLmhlYWRsaW5lc1tpbmRleF0ucmVwbGFjZUFsbChcIjpcIiwgXCJcIikpLmxlbmd0aCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gTWF0aC5taW4obWF4V2lkdGgsIG1heENvbHVtbldpZHRoKTtcblx0XHR9KTtcblx0bGV0IGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCkgPT4gXCLilIBcIi5yZXBlYXQobWF4V2lkdGgpKTtcblx0Y29uc29sZS5pbmZvKGAke2luZGVudH3ilIzilIAke2hlYWRsaW5lLmpvaW4oXCLilIDilKzilIBcIil94pSA4pSQYCk7XG5cdGlmIChvcHRpb25zPy5oZWFkbGluZXMpIHtcblx0XHRoZWFkbGluZSA9IG9wdGlvbnMud2lkdGhzLm1hcCgobWF4V2lkdGgsIGluZGV4KSA9PiB7XG5cdFx0XHRjb25zdCBjYXB0aW9uID0gb3B0aW9ucy5oZWFkbGluZXNbaW5kZXhdLnJlcGxhY2VBbGwoXCI6XCIsIFwiXCIpO1xuXHRcdFx0Y29uc3QgY2FwdGlvbkxlbmd0aCA9IGNvbG9yc3RyaXAoY2FwdGlvbikubGVuZ3RoO1xuXHRcdFx0cmV0dXJuIGAke3doaXRlKGNhcHRpb24pfSR7XCIgXCIucmVwZWF0KG1heFdpZHRoIC0gY2FwdGlvbkxlbmd0aCl9YDtcblx0XHR9KTtcblx0XHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUgiAke2hlYWRsaW5lLmpvaW4oXCIg4pSCIFwiKX0g4pSCYCk7XG5cdFx0aGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAoKG1heFdpZHRoKSA9PiBcIuKUgFwiLnJlcGVhdChtYXhXaWR0aCkpO1xuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSc4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS84pSAXCIpfeKUgOKUpGApO1xuXHR9XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykge1xuXHRcdGxldCBsaW5lID0gXCJcIjtcblx0XHRmb3IgKGxldCBqID0gMDsgaiA8IG51bUNvbHVtbnM7IGorKykge1xuXHRcdFx0bGV0IGRhdGEgPSB0YWJsZVtqXVtpXTtcblx0XHRcdGxldCBjb2xvcjtcblx0XHRcdGlmIChvcHRpb25zPy5jb2xvcnM/LltqXSkge1xuXHRcdFx0XHRjb2xvciA9IG9wdGlvbnMuY29sb3JzW2pdO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29sb3IgPVxuXHRcdFx0XHRcdHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiXG5cdFx0XHRcdFx0XHQ/IGdyZWVuXG5cdFx0XHRcdFx0XHQ6IE51bWJlcihkYXRhKSA9PT0gZGF0YSAmJiBkYXRhICUgMSAhPT0gMCAvLyBpcyBmbG9hdCBudW1iZXI/XG5cdFx0XHRcdFx0XHRcdD8geWVsbG93XG5cdFx0XHRcdFx0XHRcdDogKHgpID0+IHg7XG5cdFx0XHR9XG5cdFx0XHRkYXRhID0gc3RyaW5naWZ5KGRhdGEsIG9wdGlvbnM/Lmh1bWFuaXplcnMsIGopO1xuXHRcdFx0aWYgKGNvbG9yc3RyaXAoZGF0YSkubGVuZ3RoID4gbWF4Q29sdW1uV2lkdGgpIHtcblx0XHRcdFx0d2hpbGUgKGNvbG9yc3RyaXAoZGF0YSkubGVuZ3RoID4gbWF4Q29sdW1uV2lkdGggLSAzKSB7XG5cdFx0XHRcdFx0ZGF0YSA9IGRhdGEuc2xpY2UoMCwgLTEpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRhdGEgKz0gXCIuLi5cIjtcblx0XHRcdH1cblx0XHRcdGNvbnN0IGRhdGFMZW5ndGggPSBjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aDtcblx0XHRcdGlmIChvcHRpb25zPy5oZWFkbGluZXMgJiYgb3B0aW9ucy5oZWFkbGluZXNbal1bMF0gPT09IFwiOlwiKSB7XG5cdFx0XHRcdGRhdGEgPSBgJHtjb2xvcihkYXRhKX0ke1wiIFwiLnJlcGVhdChvcHRpb25zLndpZHRoc1tqXSAtIGRhdGFMZW5ndGgpfWA7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkYXRhID0gYCR7XCIgXCIucmVwZWF0KG9wdGlvbnMud2lkdGhzW2pdIC0gZGF0YUxlbmd0aCl9JHtjb2xvcihkYXRhKX1gO1xuXHRcdFx0fVxuXHRcdFx0bGluZSArPSBg4pSCICR7ZGF0YX0gYDtcblx0XHR9XG5cdFx0Y29uc29sZS5pbmZvKGAke2luZGVudH0ke2xpbmV94pSCYCk7XG5cdH1cblx0aGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAoKG1heFdpZHRoKSA9PiBcIuKUgFwiLnJlcGVhdChtYXhXaWR0aCkpO1xuXHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUlOKUgCR7aGVhZGxpbmUuam9pbihcIuKUgOKUtOKUgFwiKX3ilIDilJhgKTtcbn1cblxuZnVuY3Rpb24gdHJhbnNwb3NlKHJlY29yZHMsIG51bUNvbHVtbnMpIHtcblx0Y29uc3QgY29sdW1ucyA9IFtdO1xuXHRmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbnVtQ29sdW1uczsgaW5kZXgrKykge1xuXHRcdGNvbHVtbnMucHVzaChyZWNvcmRzLm1hcCgocm93KSA9PiByb3dbaW5kZXhdKSk7XG5cdH1cblx0cmV0dXJuIGNvbHVtbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0eEpzb25SZXBsYWNlcihrZXksIHZhbHVlKSB7XG5cdHN3aXRjaCAoa2V5KSB7XG5cdFx0Y2FzZSBcImJ5dGVzXCI6XG5cdFx0Y2FzZSBcImRlclwiOlxuXHRcdFx0cmV0dXJuIHRvSGV4U3RyaW5nKHZhbHVlLCB0cnVlKTtcblx0XHRjYXNlIFwidHhcIjpcblx0XHRcdHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgdHhKc29uUmVwbGFjZXIpO1xuXHRcdGNhc2UgXCJjaGFuZ2VcIjpcblx0XHRjYXNlIFwiZmVlc1wiOlxuXHRcdGNhc2UgXCJ2YWx1ZVwiOlxuXHRcdFx0cmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCkgLyAxMCAqKiA5O1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR4UmVjZWlwdEpzb25SZXBsYWNlcihrZXksIHZhbHVlKSB7XG5cdHN3aXRjaCAoa2V5KSB7XG5cdFx0Y2FzZSBcImJ5dGVzXCI6XG5cdFx0Y2FzZSBcImRlclwiOlxuXHRcdFx0cmV0dXJuIHRvSGV4U3RyaW5nKHZhbHVlLCB0cnVlKTtcblx0XHRjYXNlIFwidHhcIjpcblx0XHRcdHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgdHhKc29uUmVwbGFjZXIpO1xuXHRcdGNhc2UgXCJjaGFuZ2VcIjpcblx0XHRjYXNlIFwiZmVlc1wiOlxuXHRcdGNhc2UgXCJ2YWx1ZVwiOlxuXHRcdFx0cmV0dXJuIHBhcnNlSW50KHZhbHVlPy5wZWRyb3MsIDEwKSAvIDEwICoqIDk7XG5cdFx0Y2FzZSBcInRpbWVzdGFtcFwiOlxuXHRcdFx0cmV0dXJuIG1vbWVudC51bml4KHZhbHVlKS5mb3JtYXQoXCJNTU1NIERvIFlZWVksIGg6bW06c3MgYVwiKTtcblx0XHRkZWZhdWx0OlxuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZVRyYW5zYWN0aW9uT25DaGVja3BvaW50KHJlY2VpcHQpIHtcblx0aWYgKHJlY2VpcHQ/LmNvbmZpcm1hdGlvbnMpIHtcblx0XHRjb25zb2xlLmluZm8oYCA+IENoZWNrcG9pbnQgIyR7Y29tbWFzKHJlY2VpcHQuY29uZmlybWF0aW9ucyl9Li4uYCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNlVHJhbnNhY3Rpb25PblN0YXR1c0NoYW5nZShyZWNlaXB0KSB7XG5cdGNvbnN0IGNhcHRpb25zID0ge1xuXHRcdHBlbmRpbmc6IFwiQXdhaXRpbmcgcmVsYXkuLi5cIixcblx0XHQvLyBjb25maXJtZWQ6IFwiVHJhbnNhY3Rpb24gY29uZmlybWVkOlwiLFxuXHRcdC8vIGZpbmFsaXplZDogXCJUcmFuc2FjdGlvbiBmaW5hbGl6ZWQ6XCIsXG5cdFx0cmVsYXllZDogXCJBd2FpdGluZyBpbmNsdXNpb24uLi5cIixcblx0XHRtaW5lZDogXCJBd2FpdGluZyBjb25maXJtYXRpb25zLi4uXCIsXG5cdH07XG5cdGNvbnN0IGNhcHRpb24gPSBjYXB0aW9uc1tyZWNlaXB0LnN0YXR1c107XG5cdGlmIChjYXB0aW9uKSBjb25zb2xlLmluZm8oYCA+ICR7Y2FwdGlvbnNbcmVjZWlwdC5zdGF0dXNdfWApO1xuXHRpZiAoW1wiZmluYWxpemVkXCIsIFwiY29uZmlybWVkXCJdLmluY2x1ZGVzKHJlY2VpcHQuc3RhdHVzKSkge1xuXHRcdGNvbnNvbGUuaW5mbyhgID4gQmxvY2sgaGFzaDogICAke2NvbG9ycy5ncmF5KHJlY2VpcHQ/LmJsb2NrSGFzaCl9YCk7XG5cdFx0Y29uc29sZS5pbmZvKGAgPiBCbG9jayBtaW5lcjogICR7Y29sb3JzLmN5YW4ocmVjZWlwdD8uYmxvY2tNaW5lcil9YCk7XG5cdFx0Y29uc29sZS5pbmZvKGAgPiBCbG9jayBlcG9jaDogICR7Y29sb3JzLndoaXRlKGNvbW1hcyhyZWNlaXB0Py5ibG9ja0Vwb2NoKSl9YCk7XG5cdFx0Y29uc29sZS5pbmZvKFxuXHRcdFx0YCA+IEluY2x1ZGVkIGF0OiAgJHtjb2xvcnMuZ3JlZW4obW9tZW50LnVuaXgocmVjZWlwdD8uYmxvY2tUaW1lc3RhbXApLmZvcm1hdChcIk1NTU0gRG8gWVlZWSwgaDptbTpzcyBhXCIpKX1gLFxuXHRcdCk7XG5cdFx0Y29uc29sZS5pbmZvKFxuXHRcdFx0YCA+ICR7cmVjZWlwdC5zdGF0dXNbMF0udG9VcHBlckNhc2UoKSArIHJlY2VpcHQuc3RhdHVzLnNsaWNlKDEpfSBhdDogJHtjb2xvcnMubWdyZWVuKG1vbWVudC51bml4KHJlY2VpcHQudGltZXN0YW1wKS5mb3JtYXQoXCJNTU1NIERvIFlZWVksIGg6bW06c3MgYVwiKSl9YCxcblx0XHQpO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZVRyYW5zYWN0aW9uUmVjZWlwdChyZWNlaXB0KSB7XG5cdGNvbnN0IGNhcHRpb25zID0ge1xuXHRcdERhdGFSZXF1ZXN0OiBcIiA+IERSVCBoYXNoOiAgICAgXCIsXG5cdFx0VmFsdWVUcmFuc2ZlcjogXCIgPiBWVFQgaGFzaDogICAgIFwiLFxuXHR9O1xuXHRjb25zb2xlLmluZm8oYCR7Y2FwdGlvbnNbcmVjZWlwdC50eXBlXSB8fCBcIiA+IFRYIGhhc2g6ICAgICAgXCJ9JHtjb2xvcnMud2hpdGUocmVjZWlwdC5oYXNoKX1gKTtcblx0aWYgKHJlY2VpcHQ/LmRyb0hhc2gpIGNvbnNvbGUuaW5mbyhgID4gRFJPIGhhc2g6ICAgICAke2NvbG9ycy5ncmVlbihyZWNlaXB0LmRyb0hhc2gpfWApO1xuXHRpZiAocmVjZWlwdD8ucmFkSGFzaCkgY29uc29sZS5pbmZvKGAgPiBSQUQgaGFzaDogICAgICR7Y29sb3JzLm1ncmVlbihyZWNlaXB0LnJhZEhhc2gpfWApO1xuXHRpZiAocmVjZWlwdD8uZHJvU0xBKSBjb25zb2xlLmluZm8oYCA+IFNMQSBwYXJhbXM6ICAgJHtKU09OLnN0cmluZ2lmeShyZWNlaXB0LmRyb1NMQSl9YCk7XG5cdGlmIChyZWNlaXB0Py53aXRoZHJhd2VyKSB7XG5cdFx0aWYgKHJlY2VpcHQ/LnZhbGlkYXRvcikge1xuXHRcdFx0Y29uc29sZS5pbmZvKGAgPiBWYWxpZGF0b3I6ICAgICR7Y29sb3JzLm1jeWFuKHJlY2VpcHQudmFsaWRhdG9yKX1gKTtcblx0XHR9XG5cdFx0Y29uc29sZS5pbmZvKGAgPiBXaXRoZHJhd2VyOiAgICR7Y29sb3JzLm1tYWdlbnRhKHJlY2VpcHQud2l0aGRyYXdlcil9YCk7XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3Qgc2lnbmVycyA9IEFycmF5LmlzQXJyYXkocmVjZWlwdC5mcm9tKSA/IHJlY2VpcHQuZnJvbSA6IFtyZWNlaXB0LmZyb21dO1xuXHRcdGNvbnNvbGUuaW5mbyhgID4gU2lnbmVyL3M6ICAgICAke2NvbG9ycy5tbWFnZW50YShzaWduZXJzWzBdKX1gKTtcblx0XHRzaWduZXJzLnNsaWNlKDEpLmZvckVhY2goKHNpZ25lcikgPT4ge1xuXHRcdFx0Y29uc29sZS5pbmZvKGAgICAgICAgICAgICAgICAgICR7Y29sb3JzLm1tYWdlbnRhKHNpZ25lcil9YCk7XG5cdFx0fSk7XG5cdH1cblx0aWYgKHJlY2VpcHQ/LnJlY2lwaWVudHMpIHtcblx0XHRjb25zb2xlLmluZm8oXG5cdFx0XHRgID4gUmVjaXBpZW50L3M6ICAke2NvbG9ycy5tYmx1ZShcblx0XHRcdFx0cmVjZWlwdC5yZWNpcGllbnRzLmZpbHRlcigocGtoLCBpbmRleCwgYXJyYXkpID0+IGluZGV4ID09PSBhcnJheS5pbmRleE9mKHBraCkpLFxuXHRcdFx0KX1gLFxuXHRcdCk7XG5cdH1cblx0aWYgKHJlY2VpcHQ/LmZlZXMpIGNvbnNvbGUuaW5mbyhgID4gTmV0d29yayBmZWU6ICAke2NvbG9ycy55ZWxsb3cocmVjZWlwdC5mZWVzLnRvU3RyaW5nKDIpKX1gKTtcblx0aWYgKHJlY2VpcHQ/LnZhbHVlKSBjb25zb2xlLmluZm8oYCA+IFZhbHVlOiAgICAgICAgJHtjb2xvcnMubXllbGxvdyhyZWNlaXB0LnZhbHVlLnRvU3RyaW5nKDIpKX1gKTtcblx0aWYgKHJlY2VpcHQ/LndlaWdodCkgY29uc29sZS5pbmZvKGAgPiBXZWlnaHQ6ICAgICAgICR7Y29sb3JzLm1ncmVlbihjb21tYXMocmVjZWlwdC53ZWlnaHQpKX1gKTtcblx0aWYgKHJlY2VpcHQ/LndpdG5lc3Nlcykge1xuXHRcdGNvbnNvbGUuaW5mbyhgID4gV2l0bmVzc2VzOiAgICAke3JlY2VpcHQud2l0bmVzc2VzfWApO1xuXHR9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0cmFjZVRyYW5zYWN0aW9uKHRyYW5zbWl0dGVyLCBvcHRpb25zKSB7XG5cdGNvbnN0IGNvbG9yID0gb3B0aW9ucz8uY29sb3IgfHwgKCh4KSA9PiBgXFx4MWJbMzA7NDVtJHt4fVxceDFiWzBtYCk7XG5cdGxldCByZWNlaXB0ID0gYXdhaXQgdHJhbnNtaXR0ZXIuc2lnblRyYW5zYWN0aW9uKG9wdGlvbnMsIG9wdGlvbnM/LnJlbG9hZCk7XG5cdGlmIChvcHRpb25zPy52ZXJib3NlKSB7XG5cdFx0Y29uc29sZS5pbmZvKGBcXG4ke2dyYXkoSlNPTi5zdHJpbmdpZnkocmVjZWlwdC50eCwgdHhKc29uUmVwbGFjZXIpKX1gKTtcblx0fVxuXHRpZiAob3B0aW9ucz8uaGVhZGxpbmUpIHtcblx0XHRjb25zb2xlLmluZm8oYFxcbiAke2NvbG9yKGAgICR7b3B0aW9ucy5oZWFkbGluZX0gIGApfVxcbmApO1xuXHR9XG5cdHRyYWNlVHJhbnNhY3Rpb25SZWNlaXB0KHJlY2VpcHQpO1xuXHRpZiAoIW9wdGlvbnM/LmZvcmNlKSB7XG5cdFx0Ly8gcHJvbXB0IHVzZXIgY29uZmlybWF0aW9uXG5cdFx0Y29uc29sZS5pbmZvKCk7XG5cdFx0Y29uc3QgYW5zd2VyID0gYXdhaXQgcmVxdWlyZShcImlucXVpcmVyXCIpLmNyZWF0ZVByb21wdE1vZHVsZSgpKFtcblx0XHRcdHtcblx0XHRcdFx0bWVzc2FnZTogXCJTZW5kIHRyYW5zYWN0aW9uP1wiLFxuXHRcdFx0XHR0eXBlOiBcImNvbmZpcm1cIixcblx0XHRcdFx0bmFtZTogXCJjb250aW51ZVwiLFxuXHRcdFx0XHRkZWZhdWx0OiBmYWxzZSxcblx0XHRcdH0sXG5cdFx0XSk7XG5cdFx0aWYgKCFhbnN3ZXIuY29udGludWUpIHtcblx0XHRcdHJldHVybiByZWNlaXB0O1xuXHRcdH1cblx0fVxuXHR0cnkge1xuXHRcdGNvbnNvbGUuaW5mbygpO1xuXHRcdHJlY2VpcHQgPSBhd2FpdCB0cmFuc21pdHRlci5zZW5kVHJhbnNhY3Rpb24oKTtcblx0XHRpZiAob3B0aW9ucz8uYXdhaXQgfHwgb3B0aW9ucz8uY29uZmlybWF0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZWNlaXB0ID0gYXdhaXQgdHJhbnNtaXR0ZXIuY29uZmlybVRyYW5zYWN0aW9uKHJlY2VpcHQuaGFzaCwge1xuXHRcdFx0XHRjb25maXJtYXRpb25zOiBvcHRpb25zPy5jb25maXJtYXRpb25zIHx8IDAsXG5cdFx0XHRcdG9uQ2hlY2twb2ludDogdHJhY2VUcmFuc2FjdGlvbk9uQ2hlY2twb2ludCxcblx0XHRcdFx0b25TdGF0dXNDaGFuZ2U6IHRyYWNlVHJhbnNhY3Rpb25PblN0YXR1c0NoYW5nZSxcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBkYXRhID0ge1xuXHRcdFx0XHRzdGF0dXM6IHJlY2VpcHQ/LnN0YXR1cyxcblx0XHRcdFx0dGltZXN0YW1wOiByZWNlaXB0Py50aW1lc3RhbXAgfHwgTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCksXG5cdFx0XHR9O1xuXHRcdFx0Y29uc29sZS5pbmZvKGRhdGEpO1xuXHRcdH1cblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0aWYgKGVycj8uaW5GbGlnaHQgJiYgZXJyLmluRmxpZ2h0KSB7XG5cdFx0XHRjb25zb2xlLmluZm8oYFxcbiR7Y29sb3JzLmdyYXkoSlNPTi5zdHJpbmdpZnkoZXJyLmluRmxpZ3Q/Lm1lc3NhZ2UsIHR4UmVjZWlwdEpzb25SZXBsYWNlcikpfWApO1xuXHRcdH1cblx0XHR0aHJvdyBlcnI7XG5cdH1cblx0cmV0dXJuIHJlY2VpcHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmVzY2FwZVNsYXNoZXMoc3RyKSB7XG5cdC8vIGFkZCBhbm90aGVyIGVzY2FwZWQgc2xhc2ggaWYgdGhlIHN0cmluZyBlbmRzIHdpdGggYW4gb2RkXG5cdC8vIG51bWJlciBvZiBlc2NhcGVkIHNsYXNoZXMgd2hpY2ggd2lsbCBjcmFzaCBKU09OLnBhcnNlXG5cdGxldCBwYXJzZWRTdHIgPSBzdHIucmVwbGFjZSgvKF58W15cXFxcXSkoXFxcXFxcXFwpKlxcXFwkLywgXCIkJlxcXFxcIik7XG5cblx0Ly8gZXNjYXBlIHVuZXNjYXBlZCBkb3VibGUgcXVvdGVzIHRvIHByZXZlbnQgZXJyb3Igd2l0aFxuXHQvLyBhZGRlZCBkb3VibGUgcXVvdGVzIGluIGpzb24gc3RyaW5nXG5cdHBhcnNlZFN0ciA9IHBhcnNlZFN0ci5yZXBsYWNlKC8oXnxbXlxcXFxdKSgoXFxcXFxcXFwpKlwiKS9nLCBcIiQxXFxcXCQyXCIpO1xuXG5cdHRyeSB7XG5cdFx0cGFyc2VkU3RyID0gSlNPTi5wYXJzZShgXCIke3BhcnNlZFN0cn1cImApO1xuXHR9IGNhdGNoIChfZSkge1xuXHRcdHJldHVybiBzdHI7XG5cdH1cblx0cmV0dXJuIHBhcnNlZFN0cjtcbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { PublicKey, type PublicKeyHashString } from "../crypto/types.js";
2
2
  import type { Epoch, HexString, Nonce } from "../types.js";
3
3
  import { type IJsonRpcProvider, JsonRpcProvider } from "./provider.js";
4
- import { type Balance2, type NodeStats, type PeerAddr, type SyncStatus } from "./types.js";
4
+ import { type Balance2, type NodeStats, type PeerAddr, type SupplyInfo2, type SyncStatus } from "./types.js";
5
5
  export interface IJsonRpcNodeFarm extends IJsonRpcProvider {
6
6
  addresses(): Promise<Record<string, PublicKeyHashString>>;
7
7
  balances(): Promise<Record<string, [PublicKeyHashString, Balance2]>>;
@@ -16,6 +16,7 @@ export interface IJsonRpcNodeFarm extends IJsonRpcProvider {
16
16
  clearPeers(): Promise<Record<string, boolean>>;
17
17
  initializePeers(): Promise<Record<string, boolean>>;
18
18
  rewind(epoch: Epoch): Promise<Record<string, boolean>>;
19
+ supplyInfo2(): Promise<SupplyInfo2 | undefined>;
19
20
  }
20
21
  export declare class JsonRpcNodeFarm extends JsonRpcProvider implements IJsonRpcNodeFarm {
21
22
  constructor(url?: string);
@@ -36,5 +37,6 @@ export declare class JsonRpcNodeFarm extends JsonRpcProvider implements IJsonRpc
36
37
  clearPeers(): Promise<Record<string, boolean>>;
37
38
  initializePeers(): Promise<Record<string, boolean>>;
38
39
  rewind(epoch: Epoch): Promise<Record<string, boolean>>;
40
+ supplyInfo2(): Promise<SupplyInfo2 | undefined>;
39
41
  }
40
42
  //# sourceMappingURL=nodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../../src/lib/rpc/nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../../src/lib/rpc/nodes.ts"],"names":[],"mappings":"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"}
@@ -240,5 +240,15 @@ export class JsonRpcNodeFarm extends JsonRpcProvider {
240
240
  async rewind(epoch) {
241
241
  return this.batchApiMethod(Methods.Rewind, [epoch]);
242
242
  }
243
+ /// Get supply info
244
+ async supplyInfo2() {
245
+ return this.addresses().then(async (addresses) => {
246
+ return Promise.all(Object.entries(addresses).map(async ([url]) => {
247
+ return this.callApiMethod(url, Methods.GetSupplyInfo2);
248
+ })).then((supplies) => {
249
+ return supplies.find((result) => !(result instanceof Error));
250
+ });
251
+ });
252
+ }
243
253
  }
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JwYy9ub2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBNEIsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5RyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQXlCLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBRU4sT0FBTyxHQU1QLE1BQU0sWUFBWSxDQUFDO0FBb0JwQixTQUFTLFlBQVksQ0FBQyxHQUFXO0lBQ2hDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsT0FBTyxLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxlQUFlO0lBQ25ELFlBQVksR0FBWTtRQUN2QixLQUFLLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLElBQUksd0JBQXdCLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxLQUFLLENBQUMsMkVBQTJFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDL0YsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVTLEtBQUssQ0FBQyxpQkFBaUIsQ0FD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QVUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdCBhcyBheGlvcyB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0IHsgUHVibGljS2V5LCBQdWJsaWNLZXlIYXNoLCB0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsIFJlY292ZXJhYmxlU2lnbmF0dXJlIH0gZnJvbSBcIi4uL2NyeXB0by90eXBlcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBFcG9jaCwgSGV4U3RyaW5nLCBOb25jZSB9IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5pbXBvcnQgeyB0eXBlIElKc29uUnBjUHJvdmlkZXIsIEpzb25ScGNQcm92aWRlciwgSnNvblJwY1Byb3ZpZGVyRXJyb3IgfSBmcm9tIFwiLi9wcm92aWRlci5qc1wiO1xuaW1wb3J0IHtcblx0dHlwZSBCYWxhbmNlMixcblx0TWV0aG9kcyxcblx0dHlwZSBOb2RlU3RhdHMsXG5cdHR5cGUgUGVlckFkZHIsXG5cdHR5cGUgU3Rha2VBdXRob3JpemF0aW9uLFxuXHR0eXBlIFN0YWtlRW50cnksXG5cdHR5cGUgU3luY1N0YXR1cyxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJSnNvblJwY05vZGVGYXJtIGV4dGVuZHMgSUpzb25ScGNQcm92aWRlciB7XG5cdGFkZHJlc3NlcygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFB1YmxpY0tleUhhc2hTdHJpbmc+Pjtcblx0YmFsYW5jZXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgQmFsYW5jZTJdPj47XG5cdG1hc3RlcktleXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgc3RyaW5nXT4+O1xuXHRwdWJsaWNLZXlzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgW1B1YmxpY0tleUhhc2hTdHJpbmcsIFB1YmxpY0tleV0+Pjtcblx0c3luY1N0YXR1cygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFN5bmNTdGF0dXM+PjtcblxuXHRwZWVycyh2YWxpZGF0b3I/OiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogUHJvbWlzZTxBcnJheTxQZWVyQWRkcj4+O1xuXHRzdGF0cygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIE5vZGVTdGF0cz4+O1xuXHR3aXRoZHJhd2VycygpOiBQcm9taXNlPFJlY29yZDxQdWJsaWNLZXlIYXNoU3RyaW5nLCBbYmlnaW50LCBOb25jZSwgbnVtYmVyXT4+O1xuXG5cdGFkZFBlZXJzKHBlZXJzOiBBcnJheTxzdHJpbmc+KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj47XG5cdGF1dGhvcml6ZVN0YWtlcyh3aXRoZHJhd2VyOiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgSGV4U3RyaW5nXT4+O1xuXHRjbGVhclBlZXJzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+O1xuXHRpbml0aWFsaXplUGVlcnMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj47XG5cdHJld2luZChlcG9jaDogRXBvY2gpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+Pjtcbn1cblxuZnVuY3Rpb24gaXNQcml2YXRlVVJMKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG5cdGNvbnN0IFssIGhvc3RdID0gdXRpbHMucGFyc2VVUkwodXJsKTtcblx0cmV0dXJuIHV0aWxzLmlwSXNQcml2YXRlT3JMb2NhbGhvc3QoaG9zdC5zcGxpdChcIjpcIilbMF0pO1xufVxuXG5leHBvcnQgY2xhc3MgSnNvblJwY05vZGVGYXJtIGV4dGVuZHMgSnNvblJwY1Byb3ZpZGVyIGltcGxlbWVudHMgSUpzb25ScGNOb2RlRmFybSB7XG5cdGNvbnN0cnVjdG9yKHVybD86IHN0cmluZykge1xuXHRcdHN1cGVyKHVybCB8fCBwcm9jZXNzLmVudi5XSVRORVRfVE9PTEtJVF9GQVJNX05PREVTIHx8IFwiaHR0cDovLzEyNy4wLjAuMToyMTMzOVwiKTtcblx0XHR0aGlzLmVuZHBvaW50cy5mb3JFYWNoKCh1cmwpID0+IHtcblx0XHRcdGlmICghaXNQcml2YXRlVVJMKHVybCkpIHtcblx0XHRcdFx0dGhyb3cgRXJyb3IoYFdpdG5ldC5Kc29uUnBjTm9kZUZhcm06IG9ubHkgbG9jYWwgaG9zdCBvciBwcml2YXRlIElQcyBjYW4gYmUgcHJvdmlkZWQ6ICR7dXJsfWApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFzeW5jIGJhdGNoQXBpUGtoTWV0aG9kPFQ+KFxuXHRcdG1ldGhvZDogc3RyaW5nLFxuXHRcdHBhcmFtcz86IGFueSxcblx0KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgVF0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkcmVzc2VzKClcblx0XHRcdC50aGVuKGFzeW5jIChhZGRyZXNzZXM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgc3RyaW5nPikgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKGFkZHJlc3NlcykubWFwKGFzeW5jIChbdXJsLCBwa2hdKSA9PiBbXG5cdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdFtwa2gsIHBraCBpbnN0YW5jZW9mIEVycm9yID8gdW5kZWZpbmVkIDogYXdhaXQgdGhpcy5jYWxsQXBpTWV0aG9kPFQ+KHVybCwgbWV0aG9kLCB7IHBraCwgLi4ucGFyYW1zIH0pXSxcblx0XHRcdFx0XSk7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKGVudHJpZXMpID0+XG5cdFx0XHRcdE9iamVjdC5mcm9tRW50cmllcyhcblx0XHRcdFx0XHRlbnRyaWVzLm1hcCgoW3VybCwgW3BraCwgdmFsdWVdXSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKCh2YWx1ZSBhcyBKc29uUnBjUHJvdmlkZXJFcnJvcik/LmVycm9yPy5tZXNzYWdlKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWUgPSBuZXcgRXJyb3IoKHZhbHVlIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSB2YWx1ZS5zdGFjaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIHZhbHVlIHx8IFwiXCJdXTtcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0KSxcblx0XHRcdCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgYmF0Y2hBcGlQa2hNZXRob2ROb1BraDxUPihcblx0XHRtZXRob2Q6IHN0cmluZyxcblx0XHQuLi5wYXJhbXM6IEFycmF5PGFueT5cblx0KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgVF0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkcmVzc2VzKClcblx0XHRcdC50aGVuKGFzeW5jIChhZGRyZXNzZXM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgc3RyaW5nPikgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKGFkZHJlc3NlcykubWFwKGFzeW5jIChbdXJsLCBwa2hdKSA9PiBbXG5cdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdFtwa2gsIHBraCBpbnN0YW5jZW9mIEVycm9yID8gdW5kZWZpbmVkIDogYXdhaXQgdGhpcy5jYWxsQXBpTWV0aG9kPFQ+KHVybCwgbWV0aG9kLCBwYXJhbXMpXSxcblx0XHRcdFx0XSk7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKGVudHJpZXMpID0+XG5cdFx0XHRcdE9iamVjdC5mcm9tRW50cmllcyhcblx0XHRcdFx0XHRlbnRyaWVzLm1hcCgoW3VybCwgW3BraCwgdmFsdWVdXSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKCh2YWx1ZSBhcyBKc29uUnBjUHJvdmlkZXJFcnJvcik/LmVycm9yPy5tZXNzYWdlKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWUgPSBuZXcgRXJyb3IoKHZhbHVlIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSB2YWx1ZS5zdGFjaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIHZhbHVlIHx8IFwiXCJdXTtcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0KSxcblx0XHRcdCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgYmF0Y2hBcGlNZXRob2Q8VD4obWV0aG9kOiBzdHJpbmcsIHBhcmFtcz86IEFycmF5PGFueT4gfCBhbnkpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFQ+PiB7XG5cdFx0Y29uc3QgcHJvbWlzZXMgPSB0aGlzLmVuZHBvaW50cy5tYXAoYXN5bmMgKHVybCkgPT5cblx0XHRcdGF4aW9zXG5cdFx0XHRcdC5wb3N0KFxuXHRcdFx0XHRcdHVybCxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRqc29ucnBjOiBcIjIuMFwiLFxuXHRcdFx0XHRcdFx0aWQ6IERhdGUubm93KCksXG5cdFx0XHRcdFx0XHRtZXRob2QsXG5cdFx0XHRcdFx0XHRwYXJhbXMsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRoZWFkZXJzOiB0aGlzLl9oZWFkZXJzLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdClcblx0XHRcdFx0LnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcblx0XHRcdFx0XHRpZiAocmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcikge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIG5ldyBKc29uUnBjUHJvdmlkZXJFcnJvcihtZXRob2QsIHBhcmFtcywgcmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcildO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gW3VybCwgcmVzcG9uc2U/LmRhdGE/LnJlc3VsdCBhcyBUXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaCgoZXhjZXB0aW9uOiBhbnkpID0+IHtcblx0XHRcdFx0XHRjb25zdCBlcnJvciA9IG5ldyBFcnJvcihleGNlcHRpb24/Lm1lc3NhZ2UgfHwgZXhjZXB0aW9uPy5lcnJvciB8fCBleGNlcHRpb24pO1xuXHRcdFx0XHRcdGRlbGV0ZSBlcnJvci5zdGFjaztcblx0XHRcdFx0XHRyZXR1cm4gW3VybCwgZXJyb3JdO1xuXHRcdFx0XHR9KSxcblx0XHQpO1xuXHRcdHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbigodmFsdWVzKSA9PiBPYmplY3QuZnJvbUVudHJpZXModmFsdWVzKSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgY2FsbEFwaU1ldGhvZDxUPih1cmw6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIHBhcmFtcz86IEFycmF5PGFueT4gfCBhbnkpOiBQcm9taXNlPEVycm9yIHwgYW55PiB7XG5cdFx0cmV0dXJuIGF4aW9zXG5cdFx0XHQucG9zdChcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0anNvbnJwYzogXCIyLjBcIixcblx0XHRcdFx0XHRpZDogRGF0ZS5ub3coKSxcblx0XHRcdFx0XHRtZXRob2QsXG5cdFx0XHRcdFx0cGFyYW1zLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0aGVhZGVyczogdGhpcy5faGVhZGVycyxcblx0XHRcdFx0fSxcblx0XHRcdClcblx0XHRcdC50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XG5cdFx0XHRcdGlmIChyZXNwb25zZT8uZXJyb3IgfHwgcmVzcG9uc2U/LmRhdGE/LmVycm9yKSB7XG5cdFx0XHRcdFx0Y29uc3QgZXJyb3IgPSBuZXcgSnNvblJwY1Byb3ZpZGVyRXJyb3IobWV0aG9kLCBwYXJhbXMsIHJlc3BvbnNlPy5lcnJvciB8fCByZXNwb25zZT8uZGF0YT8uZXJyb3IpO1xuXHRcdFx0XHRcdGRlbGV0ZSBlcnJvcj8uc3RhY2s7XG5cdFx0XHRcdFx0cmV0dXJuIGVycm9yO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiByZXNwb25zZT8uZGF0YT8ucmVzdWx0IGFzIFQ7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goKGV4Y2VwdGlvbjogYW55KSA9PiB7XG5cdFx0XHRcdGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGV4Y2VwdGlvbj8ubWVzc2FnZSB8fCBleGNlcHRpb24/LmVycm9yIHx8IGV4Y2VwdGlvbik7XG5cdFx0XHRcdGRlbGV0ZSBlcnJvcj8uc3RhY2s7XG5cdFx0XHRcdHJldHVybiBlcnJvcjtcblx0XHRcdH0pO1xuXHR9XG5cblx0Ly8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHB1YmxpYyBhc3luYyBhZGRyZXNzZXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBQdWJsaWNLZXlIYXNoU3RyaW5nPj4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpTWV0aG9kPFB1YmxpY0tleUhhc2hTdHJpbmc+KE1ldGhvZHMuR2V0UGtoKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBiYWxhbmNlcygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBCYWxhbmNlMl0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlQa2hNZXRob2Q8QmFsYW5jZTI+KE1ldGhvZHMuR2V0QmFsYW5jZTIpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIG1hc3RlcktleXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgc3RyaW5nXT4+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaVBraE1ldGhvZE5vUGtoPHN0cmluZz4oTWV0aG9kcy5NYXN0ZXJLZXlFeHBvcnQpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHB1YmxpY0tleXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgUHVibGljS2V5XT4+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaVBraE1ldGhvZE5vUGtoPFVpbnQ4QXJyYXk+KE1ldGhvZHMuR2V0UHVibGljS2V5KS50aGVuKFxuXHRcdFx0KHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBFcnJvciB8IFVpbnQ4QXJyYXldPikgPT5cblx0XHRcdFx0T2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKHJlc3VsdHMpLm1hcCgoW3VybCwgW3BraCwgcmF3XV0pID0+IHtcblx0XHRcdFx0XHRcdGlmIChyYXcgJiYgcmF3IGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKChyYXcgYXMgSnNvblJwY1Byb3ZpZGVyRXJyb3IpPy5lcnJvcj8ubWVzc2FnZSkge1xuXHRcdFx0XHRcdFx0XHRcdHJhdyA9IG5ldyBFcnJvcigocmF3IGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSByYXcuc3RhY2s7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIHJhd11dO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIHJhdyA/IFB1YmxpY0tleS5mcm9tVWludDhBcnJheShyYXcpIDogdW5kZWZpbmVkXV07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCksXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBwZWVycygpOiBQcm9taXNlPEFycmF5PFBlZXJBZGRyPj4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpTWV0aG9kPEFycmF5PFBlZXJBZGRyPj4oTWV0aG9kcy5QZWVycykudGhlbigocmVzdWx0czogUmVjb3JkPHN0cmluZywgUGVlckFkZHJbXT4pID0+IHtcblx0XHRcdGNvbnN0IHBlZXJzOiBQZWVyQWRkcltdID0gW107XG5cdFx0XHRPYmplY3QudmFsdWVzKHJlc3VsdHMpLmZvckVhY2goKG1vcmVQZWVyczogRXJyb3IgfCBQZWVyQWRkcltdKSA9PiB7XG5cdFx0XHRcdGlmICghKG1vcmVQZWVycyBpbnN0YW5jZW9mIEVycm9yKSkge1xuXHRcdFx0XHRcdG1vcmVQZWVycy5mb3JFYWNoKChwZWVyKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoIXBlZXJzLmluY2x1ZGVzKHBlZXIpKSB7XG5cdFx0XHRcdFx0XHRcdHBlZXJzLnB1c2gocGVlcik7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIHBlZXJzO1xuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHN0YXRzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgTm9kZVN0YXRzPj4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpTWV0aG9kPE5vZGVTdGF0cz4oTWV0aG9kcy5Ob2RlU3RhdHMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHN5bmNTdGF0dXMoKTogUHJvbWlzZTxhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaU1ldGhvZDxTeW5jU3RhdHVzPihNZXRob2RzLlN5bmNTdGF0dXMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHdpdGhkcmF3ZXJzKFxuXHRcdGxpbWl0PzogbnVtYmVyLFxuXHRcdG9mZnNldD86IG51bWJlcixcblx0KTogUHJvbWlzZTxSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgW2JpZ2ludCwgTm9uY2UsIG51bWJlcl0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkcmVzc2VzKClcblx0XHRcdC50aGVuKGFzeW5jIChhZGRyZXNzZXM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgc3RyaW5nPikgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKGFkZHJlc3NlcykubWFwKGFzeW5jIChbdXJsLCB2YWxpZGF0b3JdKSA9PiBbXG5cdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdHZhbGlkYXRvciBpbnN0YW5jZW9mIEVycm9yXG5cdFx0XHRcdFx0XHQ/IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0OiBhd2FpdCB0aGlzLmNhbGxBcGlNZXRob2Q8QXJyYXk8U3Rha2VFbnRyeT4+KHVybCwgTWV0aG9kcy5RdWVyeVN0YWtlcywge1xuXHRcdFx0XHRcdFx0XHRcdGZpbHRlcjogeyB2YWxpZGF0b3IgfSxcblx0XHRcdFx0XHRcdFx0XHRwYXJhbXM6IHtcblx0XHRcdFx0XHRcdFx0XHRcdGxpbWl0LFxuXHRcdFx0XHRcdFx0XHRcdFx0b2Zmc2V0LFxuXHRcdFx0XHRcdFx0XHRcdFx0c2luY2U6IDAsXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdF0pO1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChlbnRyaWVzKSA9PlxuXHRcdFx0XHRPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0XHRcdFx0ZW50cmllcy5tYXAoKFt1cmwsIHN0YWtlc10pID0+IHtcblx0XHRcdFx0XHRcdGlmIChzdGFrZXMgJiYgc3Rha2VzIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKChzdGFrZXMgYXMgSnNvblJwY1Byb3ZpZGVyRXJyb3IpPy5lcnJvcj8ubWVzc2FnZSkge1xuXHRcdFx0XHRcdFx0XHRcdHN0YWtlcyA9IG5ldyBFcnJvcigoc3Rha2VzIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSBzdGFrZXMuc3RhY2s7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmxdO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHJldHVybiBbdXJsLCBzdGFrZXNdO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHQpLFxuXHRcdFx0KVxuXHRcdFx0LnRoZW4oKHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgQXJyYXk8U3Rha2VFbnRyeT4+KSA9PiB7XG5cdFx0XHRcdGNvbnN0IG1heCA9IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gKGEgPiBiID8gYSA6IGIpO1xuXHRcdFx0XHRjb25zdCB3aXRoZHJhd2VyczogUmVjb3JkPFB1YmxpY0tleUhhc2hTdHJpbmcsIFtiaWdpbnQsIE5vbmNlLCBudW1iZXJdPiA9IHt9O1xuXHRcdFx0XHRPYmplY3QudmFsdWVzKHJlc3VsdHMpLmZvckVhY2goKG1vcmVFbnRyaWVzKSA9PiB7XG5cdFx0XHRcdFx0aWYgKG1vcmVFbnRyaWVzICYmICEobW9yZUVudHJpZXMgaW5zdGFuY2VvZiBFcnJvcikpIHtcblx0XHRcdFx0XHRcdG1vcmVFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmICh3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl0pIHtcblx0XHRcdFx0XHRcdFx0XHR3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl1bMF0gKz0gZW50cnkudmFsdWUuY29pbnM7XG5cdFx0XHRcdFx0XHRcdFx0d2l0aGRyYXdlcnNbZW50cnkua2V5LndpdGhkcmF3ZXJdWzFdID0gbWF4KGVudHJ5LnZhbHVlLm5vbmNlLCB3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl1bMV0pO1xuXHRcdFx0XHRcdFx0XHRcdHdpdGhkcmF3ZXJzW2VudHJ5LmtleS53aXRoZHJhd2VyXVsyXSArPSAxO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHdpdGhkcmF3ZXJzW2VudHJ5LmtleS53aXRoZHJhd2VyXSA9IFtlbnRyeS52YWx1ZS5jb2lucywgZW50cnkudmFsdWUubm9uY2UsIDFdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKHdpdGhkcmF3ZXJzKS5zb3J0KChbLCBbYSwgLF1dLCBbLCBbYiwgLF1dKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoYSA+IGIpIHJldHVybiAxO1xuXHRcdFx0XHRcdFx0ZWxzZSBpZiAoYSA8IGIpIHJldHVybiAtMTtcblx0XHRcdFx0XHRcdGVsc2UgcmV0dXJuIDA7XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCk7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwdWJsaWMgYXN5bmMgYWRkUGVlcnMocGVlcnM6IEFycmF5PHN0cmluZz4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlNZXRob2Q8Ym9vbGVhbj4oTWV0aG9kcy5BZGRQZWVycywgcGVlcnMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGF1dGhvcml6ZVN0YWtlcyhcblx0XHR3aXRoZHJhd2VyOiBQdWJsaWNLZXlIYXNoU3RyaW5nLFxuXHQpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBIZXhTdHJpbmddPj4ge1xuXHRcdGNvbnN0IG1zZyA9IFB1YmxpY0tleUhhc2guZnJvbUJlY2gzMih3aXRoZHJhd2VyKS50b0J5dGVzMzIoKTtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaVBraE1ldGhvZE5vUGtoPFN0YWtlQXV0aG9yaXphdGlvbj4oTWV0aG9kcy5BdXRob3JpemVTdGFrZSwgd2l0aGRyYXdlcikudGhlbihcblx0XHRcdChyZWNvcmRzOiBSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgRXJyb3IgfCBTdGFrZUF1dGhvcml6YXRpb25dPikgPT5cblx0XHRcdFx0T2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKHJlY29yZHMpLm1hcCgoW3VybCwgW3BraCwgYXV0aG9yaXphdGlvbl1dKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoYXV0aG9yaXphdGlvbiAmJiBhdXRob3JpemF0aW9uIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKChhdXRob3JpemF0aW9uIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpIHtcblx0XHRcdFx0XHRcdFx0XHRhdXRob3JpemF0aW9uID0gbmV3IEVycm9yKChhdXRob3JpemF0aW9uIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSBhdXRob3JpemF0aW9uLnN0YWNrO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHJldHVybiBbdXJsLCBbcGtoLCBhdXRob3JpemF0aW9uXV07XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGF1dGhvcml6YXRpb24pIHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc2lnbmF0dXJlID0gUmVjb3ZlcmFibGVTaWduYXR1cmUuZnJvbUtleWVkU2lnbmF0dXJlKGF1dGhvcml6YXRpb24uc2lnbmF0dXJlLCBtc2cpO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBhdXRoY29kZSA9IHNpZ25hdHVyZS5wdWJLZXkuaGFzaCgpLnRvSGV4U3RyaW5nKCkgKyBzaWduYXR1cmUudG9IZXhTdHJpbmcoKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIGF1dGhjb2RlXV07XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gW3VybCwgW3BraCwgdW5kZWZpbmVkXV07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCksXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBjbGVhclBlZXJzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaU1ldGhvZDxib29sZWFuPihNZXRob2RzLkNsZWFyUGVlcnMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGluaXRpYWxpemVQZWVycygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlNZXRob2Q8Ym9vbGVhbj4oTWV0aG9kcy5Jbml0aWFsaXplUGVlcnMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHJld2luZChlcG9jaDogRXBvY2gpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlNZXRob2Q8Ym9vbGVhbj4oTWV0aG9kcy5SZXdpbmQsIFtlcG9jaF0pO1xuXHR9XG59XG4iXX0=
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JwYy9ub2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBNEIsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5RyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQXlCLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBRU4sT0FBTyxHQU9QLE1BQU0sWUFBWSxDQUFDO0FBcUJwQixTQUFTLFlBQVksQ0FBQyxHQUFXO0lBQ2hDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsT0FBTyxLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxlQUFlO0lBQ25ELFlBQVksR0FBWTtRQUN2QixLQUFLLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLElBQUksd0JBQXdCLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxLQUFLLENBQUMsMkVBQTJFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDL0YsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVTLEtBQUssQ0FBQyxpQkFBaUIsQ0FD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QVUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELG1CQUFtQjtJQUNaLEtBQUssQ0FBQyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBeUMsRUFBRSxFQUFFO1lBQ2hGLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FDakIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRTtnQkFDN0MsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFjLEdBQUcsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDckUsQ0FBQyxDQUFDLENBQ0YsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUE0QixFQUFFLEVBQUU7Z0JBQ3ZDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzlELENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZhdWx0IGFzIGF4aW9zIH0gZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQgeyBQdWJsaWNLZXksIFB1YmxpY0tleUhhc2gsIHR5cGUgUHVibGljS2V5SGFzaFN0cmluZywgUmVjb3ZlcmFibGVTaWduYXR1cmUgfSBmcm9tIFwiLi4vY3J5cHRvL3R5cGVzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEVwb2NoLCBIZXhTdHJpbmcsIE5vbmNlIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi4vdXRpbHMuanNcIjtcbmltcG9ydCB7IHR5cGUgSUpzb25ScGNQcm92aWRlciwgSnNvblJwY1Byb3ZpZGVyLCBKc29uUnBjUHJvdmlkZXJFcnJvciB9IGZyb20gXCIuL3Byb3ZpZGVyLmpzXCI7XG5pbXBvcnQge1xuXHR0eXBlIEJhbGFuY2UyLFxuXHRNZXRob2RzLFxuXHR0eXBlIE5vZGVTdGF0cyxcblx0dHlwZSBQZWVyQWRkcixcblx0dHlwZSBTdGFrZUF1dGhvcml6YXRpb24sXG5cdHR5cGUgU3Rha2VFbnRyeSxcblx0dHlwZSBTdXBwbHlJbmZvMixcblx0dHlwZSBTeW5jU3RhdHVzLFxufSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElKc29uUnBjTm9kZUZhcm0gZXh0ZW5kcyBJSnNvblJwY1Byb3ZpZGVyIHtcblx0YWRkcmVzc2VzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgUHVibGljS2V5SGFzaFN0cmluZz4+O1xuXHRiYWxhbmNlcygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBCYWxhbmNlMl0+Pjtcblx0bWFzdGVyS2V5cygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBzdHJpbmddPj47XG5cdHB1YmxpY0tleXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgUHVibGljS2V5XT4+O1xuXHRzeW5jU3RhdHVzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgU3luY1N0YXR1cz4+O1xuXG5cdHBlZXJzKHZhbGlkYXRvcj86IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBQcm9taXNlPEFycmF5PFBlZXJBZGRyPj47XG5cdHN0YXRzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgTm9kZVN0YXRzPj47XG5cdHdpdGhkcmF3ZXJzKCk6IFByb21pc2U8UmVjb3JkPFB1YmxpY0tleUhhc2hTdHJpbmcsIFtiaWdpbnQsIE5vbmNlLCBudW1iZXJdPj47XG5cblx0YWRkUGVlcnMocGVlcnM6IEFycmF5PHN0cmluZz4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+Pjtcblx0YXV0aG9yaXplU3Rha2VzKHdpdGhkcmF3ZXI6IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBIZXhTdHJpbmddPj47XG5cdGNsZWFyUGVlcnMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj47XG5cdGluaXRpYWxpemVQZWVycygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+Pjtcblx0cmV3aW5kKGVwb2NoOiBFcG9jaCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+O1xuXHRzdXBwbHlJbmZvMigpOiBQcm9taXNlPFN1cHBseUluZm8yIHwgdW5kZWZpbmVkPjtcbn1cblxuZnVuY3Rpb24gaXNQcml2YXRlVVJMKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG5cdGNvbnN0IFssIGhvc3RdID0gdXRpbHMucGFyc2VVUkwodXJsKTtcblx0cmV0dXJuIHV0aWxzLmlwSXNQcml2YXRlT3JMb2NhbGhvc3QoaG9zdC5zcGxpdChcIjpcIilbMF0pO1xufVxuXG5leHBvcnQgY2xhc3MgSnNvblJwY05vZGVGYXJtIGV4dGVuZHMgSnNvblJwY1Byb3ZpZGVyIGltcGxlbWVudHMgSUpzb25ScGNOb2RlRmFybSB7XG5cdGNvbnN0cnVjdG9yKHVybD86IHN0cmluZykge1xuXHRcdHN1cGVyKHVybCB8fCBwcm9jZXNzLmVudi5XSVRORVRfVE9PTEtJVF9GQVJNX05PREVTIHx8IFwiaHR0cDovLzEyNy4wLjAuMToyMTMzOVwiKTtcblx0XHR0aGlzLmVuZHBvaW50cy5mb3JFYWNoKCh1cmwpID0+IHtcblx0XHRcdGlmICghaXNQcml2YXRlVVJMKHVybCkpIHtcblx0XHRcdFx0dGhyb3cgRXJyb3IoYFdpdG5ldC5Kc29uUnBjTm9kZUZhcm06IG9ubHkgbG9jYWwgaG9zdCBvciBwcml2YXRlIElQcyBjYW4gYmUgcHJvdmlkZWQ6ICR7dXJsfWApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFzeW5jIGJhdGNoQXBpUGtoTWV0aG9kPFQ+KFxuXHRcdG1ldGhvZDogc3RyaW5nLFxuXHRcdHBhcmFtcz86IGFueSxcblx0KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgVF0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkcmVzc2VzKClcblx0XHRcdC50aGVuKGFzeW5jIChhZGRyZXNzZXM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgc3RyaW5nPikgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKGFkZHJlc3NlcykubWFwKGFzeW5jIChbdXJsLCBwa2hdKSA9PiBbXG5cdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdFtwa2gsIHBraCBpbnN0YW5jZW9mIEVycm9yID8gdW5kZWZpbmVkIDogYXdhaXQgdGhpcy5jYWxsQXBpTWV0aG9kPFQ+KHVybCwgbWV0aG9kLCB7IHBraCwgLi4ucGFyYW1zIH0pXSxcblx0XHRcdFx0XSk7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKGVudHJpZXMpID0+XG5cdFx0XHRcdE9iamVjdC5mcm9tRW50cmllcyhcblx0XHRcdFx0XHRlbnRyaWVzLm1hcCgoW3VybCwgW3BraCwgdmFsdWVdXSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKCh2YWx1ZSBhcyBKc29uUnBjUHJvdmlkZXJFcnJvcik/LmVycm9yPy5tZXNzYWdlKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWUgPSBuZXcgRXJyb3IoKHZhbHVlIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSB2YWx1ZS5zdGFjaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIHZhbHVlIHx8IFwiXCJdXTtcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0KSxcblx0XHRcdCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgYmF0Y2hBcGlQa2hNZXRob2ROb1BraDxUPihcblx0XHRtZXRob2Q6IHN0cmluZyxcblx0XHQuLi5wYXJhbXM6IEFycmF5PGFueT5cblx0KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgVF0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkcmVzc2VzKClcblx0XHRcdC50aGVuKGFzeW5jIChhZGRyZXNzZXM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgc3RyaW5nPikgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKGFkZHJlc3NlcykubWFwKGFzeW5jIChbdXJsLCBwa2hdKSA9PiBbXG5cdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdFtwa2gsIHBraCBpbnN0YW5jZW9mIEVycm9yID8gdW5kZWZpbmVkIDogYXdhaXQgdGhpcy5jYWxsQXBpTWV0aG9kPFQ+KHVybCwgbWV0aG9kLCBwYXJhbXMpXSxcblx0XHRcdFx0XSk7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKGVudHJpZXMpID0+XG5cdFx0XHRcdE9iamVjdC5mcm9tRW50cmllcyhcblx0XHRcdFx0XHRlbnRyaWVzLm1hcCgoW3VybCwgW3BraCwgdmFsdWVdXSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKCh2YWx1ZSBhcyBKc29uUnBjUHJvdmlkZXJFcnJvcik/LmVycm9yPy5tZXNzYWdlKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWUgPSBuZXcgRXJyb3IoKHZhbHVlIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSB2YWx1ZS5zdGFjaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIHZhbHVlIHx8IFwiXCJdXTtcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0KSxcblx0XHRcdCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgYmF0Y2hBcGlNZXRob2Q8VD4obWV0aG9kOiBzdHJpbmcsIHBhcmFtcz86IEFycmF5PGFueT4gfCBhbnkpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFQ+PiB7XG5cdFx0Y29uc3QgcHJvbWlzZXMgPSB0aGlzLmVuZHBvaW50cy5tYXAoYXN5bmMgKHVybCkgPT5cblx0XHRcdGF4aW9zXG5cdFx0XHRcdC5wb3N0KFxuXHRcdFx0XHRcdHVybCxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRqc29ucnBjOiBcIjIuMFwiLFxuXHRcdFx0XHRcdFx0aWQ6IERhdGUubm93KCksXG5cdFx0XHRcdFx0XHRtZXRob2QsXG5cdFx0XHRcdFx0XHRwYXJhbXMsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRoZWFkZXJzOiB0aGlzLl9oZWFkZXJzLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdClcblx0XHRcdFx0LnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcblx0XHRcdFx0XHRpZiAocmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcikge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIG5ldyBKc29uUnBjUHJvdmlkZXJFcnJvcihtZXRob2QsIHBhcmFtcywgcmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcildO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gW3VybCwgcmVzcG9uc2U/LmRhdGE/LnJlc3VsdCBhcyBUXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaCgoZXhjZXB0aW9uOiBhbnkpID0+IHtcblx0XHRcdFx0XHRjb25zdCBlcnJvciA9IG5ldyBFcnJvcihleGNlcHRpb24/Lm1lc3NhZ2UgfHwgZXhjZXB0aW9uPy5lcnJvciB8fCBleGNlcHRpb24pO1xuXHRcdFx0XHRcdGRlbGV0ZSBlcnJvci5zdGFjaztcblx0XHRcdFx0XHRyZXR1cm4gW3VybCwgZXJyb3JdO1xuXHRcdFx0XHR9KSxcblx0XHQpO1xuXHRcdHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbigodmFsdWVzKSA9PiBPYmplY3QuZnJvbUVudHJpZXModmFsdWVzKSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgY2FsbEFwaU1ldGhvZDxUPih1cmw6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIHBhcmFtcz86IEFycmF5PGFueT4gfCBhbnkpOiBQcm9taXNlPEVycm9yIHwgYW55PiB7XG5cdFx0cmV0dXJuIGF4aW9zXG5cdFx0XHQucG9zdChcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0anNvbnJwYzogXCIyLjBcIixcblx0XHRcdFx0XHRpZDogRGF0ZS5ub3coKSxcblx0XHRcdFx0XHRtZXRob2QsXG5cdFx0XHRcdFx0cGFyYW1zLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0aGVhZGVyczogdGhpcy5faGVhZGVycyxcblx0XHRcdFx0fSxcblx0XHRcdClcblx0XHRcdC50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XG5cdFx0XHRcdGlmIChyZXNwb25zZT8uZXJyb3IgfHwgcmVzcG9uc2U/LmRhdGE/LmVycm9yKSB7XG5cdFx0XHRcdFx0Y29uc3QgZXJyb3IgPSBuZXcgSnNvblJwY1Byb3ZpZGVyRXJyb3IobWV0aG9kLCBwYXJhbXMsIHJlc3BvbnNlPy5lcnJvciB8fCByZXNwb25zZT8uZGF0YT8uZXJyb3IpO1xuXHRcdFx0XHRcdGRlbGV0ZSBlcnJvcj8uc3RhY2s7XG5cdFx0XHRcdFx0cmV0dXJuIGVycm9yO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiByZXNwb25zZT8uZGF0YT8ucmVzdWx0IGFzIFQ7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goKGV4Y2VwdGlvbjogYW55KSA9PiB7XG5cdFx0XHRcdGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGV4Y2VwdGlvbj8ubWVzc2FnZSB8fCBleGNlcHRpb24/LmVycm9yIHx8IGV4Y2VwdGlvbik7XG5cdFx0XHRcdGRlbGV0ZSBlcnJvcj8uc3RhY2s7XG5cdFx0XHRcdHJldHVybiBlcnJvcjtcblx0XHRcdH0pO1xuXHR9XG5cblx0Ly8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHB1YmxpYyBhc3luYyBhZGRyZXNzZXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBQdWJsaWNLZXlIYXNoU3RyaW5nPj4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpTWV0aG9kPFB1YmxpY0tleUhhc2hTdHJpbmc+KE1ldGhvZHMuR2V0UGtoKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBiYWxhbmNlcygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBCYWxhbmNlMl0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlQa2hNZXRob2Q8QmFsYW5jZTI+KE1ldGhvZHMuR2V0QmFsYW5jZTIpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIG1hc3RlcktleXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgc3RyaW5nXT4+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaVBraE1ldGhvZE5vUGtoPHN0cmluZz4oTWV0aG9kcy5NYXN0ZXJLZXlFeHBvcnQpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHB1YmxpY0tleXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgUHVibGljS2V5XT4+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaVBraE1ldGhvZE5vUGtoPFVpbnQ4QXJyYXk+KE1ldGhvZHMuR2V0UHVibGljS2V5KS50aGVuKFxuXHRcdFx0KHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBFcnJvciB8IFVpbnQ4QXJyYXldPikgPT5cblx0XHRcdFx0T2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKHJlc3VsdHMpLm1hcCgoW3VybCwgW3BraCwgcmF3XV0pID0+IHtcblx0XHRcdFx0XHRcdGlmIChyYXcgJiYgcmF3IGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKChyYXcgYXMgSnNvblJwY1Byb3ZpZGVyRXJyb3IpPy5lcnJvcj8ubWVzc2FnZSkge1xuXHRcdFx0XHRcdFx0XHRcdHJhdyA9IG5ldyBFcnJvcigocmF3IGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSByYXcuc3RhY2s7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIHJhd11dO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIHJhdyA/IFB1YmxpY0tleS5mcm9tVWludDhBcnJheShyYXcpIDogdW5kZWZpbmVkXV07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCksXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBwZWVycygpOiBQcm9taXNlPEFycmF5PFBlZXJBZGRyPj4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpTWV0aG9kPEFycmF5PFBlZXJBZGRyPj4oTWV0aG9kcy5QZWVycykudGhlbigocmVzdWx0czogUmVjb3JkPHN0cmluZywgUGVlckFkZHJbXT4pID0+IHtcblx0XHRcdGNvbnN0IHBlZXJzOiBQZWVyQWRkcltdID0gW107XG5cdFx0XHRPYmplY3QudmFsdWVzKHJlc3VsdHMpLmZvckVhY2goKG1vcmVQZWVyczogRXJyb3IgfCBQZWVyQWRkcltdKSA9PiB7XG5cdFx0XHRcdGlmICghKG1vcmVQZWVycyBpbnN0YW5jZW9mIEVycm9yKSkge1xuXHRcdFx0XHRcdG1vcmVQZWVycy5mb3JFYWNoKChwZWVyKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoIXBlZXJzLmluY2x1ZGVzKHBlZXIpKSB7XG5cdFx0XHRcdFx0XHRcdHBlZXJzLnB1c2gocGVlcik7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIHBlZXJzO1xuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHN0YXRzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgTm9kZVN0YXRzPj4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpTWV0aG9kPE5vZGVTdGF0cz4oTWV0aG9kcy5Ob2RlU3RhdHMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHN5bmNTdGF0dXMoKTogUHJvbWlzZTxhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaU1ldGhvZDxTeW5jU3RhdHVzPihNZXRob2RzLlN5bmNTdGF0dXMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHdpdGhkcmF3ZXJzKFxuXHRcdGxpbWl0PzogbnVtYmVyLFxuXHRcdG9mZnNldD86IG51bWJlcixcblx0KTogUHJvbWlzZTxSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgW2JpZ2ludCwgTm9uY2UsIG51bWJlcl0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkcmVzc2VzKClcblx0XHRcdC50aGVuKGFzeW5jIChhZGRyZXNzZXM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgc3RyaW5nPikgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKGFkZHJlc3NlcykubWFwKGFzeW5jIChbdXJsLCB2YWxpZGF0b3JdKSA9PiBbXG5cdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdHZhbGlkYXRvciBpbnN0YW5jZW9mIEVycm9yXG5cdFx0XHRcdFx0XHQ/IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0OiBhd2FpdCB0aGlzLmNhbGxBcGlNZXRob2Q8QXJyYXk8U3Rha2VFbnRyeT4+KHVybCwgTWV0aG9kcy5RdWVyeVN0YWtlcywge1xuXHRcdFx0XHRcdFx0XHRcdGZpbHRlcjogeyB2YWxpZGF0b3IgfSxcblx0XHRcdFx0XHRcdFx0XHRwYXJhbXM6IHtcblx0XHRcdFx0XHRcdFx0XHRcdGxpbWl0LFxuXHRcdFx0XHRcdFx0XHRcdFx0b2Zmc2V0LFxuXHRcdFx0XHRcdFx0XHRcdFx0c2luY2U6IDAsXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdF0pO1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChlbnRyaWVzKSA9PlxuXHRcdFx0XHRPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0XHRcdFx0ZW50cmllcy5tYXAoKFt1cmwsIHN0YWtlc10pID0+IHtcblx0XHRcdFx0XHRcdGlmIChzdGFrZXMgJiYgc3Rha2VzIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKChzdGFrZXMgYXMgSnNvblJwY1Byb3ZpZGVyRXJyb3IpPy5lcnJvcj8ubWVzc2FnZSkge1xuXHRcdFx0XHRcdFx0XHRcdHN0YWtlcyA9IG5ldyBFcnJvcigoc3Rha2VzIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSBzdGFrZXMuc3RhY2s7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmxdO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHJldHVybiBbdXJsLCBzdGFrZXNdO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHQpLFxuXHRcdFx0KVxuXHRcdFx0LnRoZW4oKHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgQXJyYXk8U3Rha2VFbnRyeT4+KSA9PiB7XG5cdFx0XHRcdGNvbnN0IG1heCA9IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gKGEgPiBiID8gYSA6IGIpO1xuXHRcdFx0XHRjb25zdCB3aXRoZHJhd2VyczogUmVjb3JkPFB1YmxpY0tleUhhc2hTdHJpbmcsIFtiaWdpbnQsIE5vbmNlLCBudW1iZXJdPiA9IHt9O1xuXHRcdFx0XHRPYmplY3QudmFsdWVzKHJlc3VsdHMpLmZvckVhY2goKG1vcmVFbnRyaWVzKSA9PiB7XG5cdFx0XHRcdFx0aWYgKG1vcmVFbnRyaWVzICYmICEobW9yZUVudHJpZXMgaW5zdGFuY2VvZiBFcnJvcikpIHtcblx0XHRcdFx0XHRcdG1vcmVFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmICh3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl0pIHtcblx0XHRcdFx0XHRcdFx0XHR3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl1bMF0gKz0gZW50cnkudmFsdWUuY29pbnM7XG5cdFx0XHRcdFx0XHRcdFx0d2l0aGRyYXdlcnNbZW50cnkua2V5LndpdGhkcmF3ZXJdWzFdID0gbWF4KGVudHJ5LnZhbHVlLm5vbmNlLCB3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl1bMV0pO1xuXHRcdFx0XHRcdFx0XHRcdHdpdGhkcmF3ZXJzW2VudHJ5LmtleS53aXRoZHJhd2VyXVsyXSArPSAxO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHdpdGhkcmF3ZXJzW2VudHJ5LmtleS53aXRoZHJhd2VyXSA9IFtlbnRyeS52YWx1ZS5jb2lucywgZW50cnkudmFsdWUubm9uY2UsIDFdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKHdpdGhkcmF3ZXJzKS5zb3J0KChbLCBbYSwgLF1dLCBbLCBbYiwgLF1dKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoYSA+IGIpIHJldHVybiAxO1xuXHRcdFx0XHRcdFx0ZWxzZSBpZiAoYSA8IGIpIHJldHVybiAtMTtcblx0XHRcdFx0XHRcdGVsc2UgcmV0dXJuIDA7XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCk7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwdWJsaWMgYXN5bmMgYWRkUGVlcnMocGVlcnM6IEFycmF5PHN0cmluZz4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlNZXRob2Q8Ym9vbGVhbj4oTWV0aG9kcy5BZGRQZWVycywgcGVlcnMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGF1dGhvcml6ZVN0YWtlcyhcblx0XHR3aXRoZHJhd2VyOiBQdWJsaWNLZXlIYXNoU3RyaW5nLFxuXHQpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBIZXhTdHJpbmddPj4ge1xuXHRcdGNvbnN0IG1zZyA9IFB1YmxpY0tleUhhc2guZnJvbUJlY2gzMih3aXRoZHJhd2VyKS50b0J5dGVzMzIoKTtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaVBraE1ldGhvZE5vUGtoPFN0YWtlQXV0aG9yaXphdGlvbj4oTWV0aG9kcy5BdXRob3JpemVTdGFrZSwgd2l0aGRyYXdlcikudGhlbihcblx0XHRcdChyZWNvcmRzOiBSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgRXJyb3IgfCBTdGFrZUF1dGhvcml6YXRpb25dPikgPT5cblx0XHRcdFx0T2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKHJlY29yZHMpLm1hcCgoW3VybCwgW3BraCwgYXV0aG9yaXphdGlvbl1dKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoYXV0aG9yaXphdGlvbiAmJiBhdXRob3JpemF0aW9uIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKChhdXRob3JpemF0aW9uIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpIHtcblx0XHRcdFx0XHRcdFx0XHRhdXRob3JpemF0aW9uID0gbmV3IEVycm9yKChhdXRob3JpemF0aW9uIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSBhdXRob3JpemF0aW9uLnN0YWNrO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHJldHVybiBbdXJsLCBbcGtoLCBhdXRob3JpemF0aW9uXV07XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGF1dGhvcml6YXRpb24pIHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc2lnbmF0dXJlID0gUmVjb3ZlcmFibGVTaWduYXR1cmUuZnJvbUtleWVkU2lnbmF0dXJlKGF1dGhvcml6YXRpb24uc2lnbmF0dXJlLCBtc2cpO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBhdXRoY29kZSA9IHNpZ25hdHVyZS5wdWJLZXkuaGFzaCgpLnRvSGV4U3RyaW5nKCkgKyBzaWduYXR1cmUudG9IZXhTdHJpbmcoKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIGF1dGhjb2RlXV07XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gW3VybCwgW3BraCwgdW5kZWZpbmVkXV07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCksXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBjbGVhclBlZXJzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaU1ldGhvZDxib29sZWFuPihNZXRob2RzLkNsZWFyUGVlcnMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGluaXRpYWxpemVQZWVycygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlNZXRob2Q8Ym9vbGVhbj4oTWV0aG9kcy5Jbml0aWFsaXplUGVlcnMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHJld2luZChlcG9jaDogRXBvY2gpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlNZXRob2Q8Ym9vbGVhbj4oTWV0aG9kcy5SZXdpbmQsIFtlcG9jaF0pO1xuXHR9XG5cblx0Ly8vIEdldCBzdXBwbHkgaW5mb1xuXHRwdWJsaWMgYXN5bmMgc3VwcGx5SW5mbzIoKTogUHJvbWlzZTxTdXBwbHlJbmZvMiB8IHVuZGVmaW5lZD4ge1xuXHRcdHJldHVybiB0aGlzLmFkZHJlc3NlcygpLnRoZW4oYXN5bmMgKGFkZHJlc3NlczogUmVjb3JkPHN0cmluZywgRXJyb3IgfCBzdHJpbmc+KSA9PiB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoXG5cdFx0XHRcdE9iamVjdC5lbnRyaWVzKGFkZHJlc3NlcykubWFwKGFzeW5jIChbdXJsXSkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8U3VwcGx5SW5mbzI+KHVybCwgTWV0aG9kcy5HZXRTdXBwbHlJbmZvMik7XG5cdFx0XHRcdH0pLFxuXHRcdFx0KS50aGVuKChzdXBwbGllczogQXJyYXk8U3VwcGx5SW5mbzI+KSA9PiB7XG5cdFx0XHRcdHJldHVybiBzdXBwbGllcy5maW5kKChyZXN1bHQpID0+ICEocmVzdWx0IGluc3RhbmNlb2YgRXJyb3IpKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -15,7 +15,8 @@ export declare enum Methods {
15
15
  GetPkh = "getPkh",
16
16
  GetPublicKey = "getPublicKey",
17
17
  GetSuperblock = "getSuperblock",
18
- GetSupplyInfo = "getSupplyInfo2",
18
+ GetSupplyInfo = "getSupplyInfo",
19
+ GetSupplyInfo2 = "getSupplyInfo2",
19
20
  GetTransaction = "getTransaction",
20
21
  GetUtxoInfo = "getUtxoInfo",
21
22
  GetValueTransfer = "getValueTransfer",
@@ -342,6 +343,14 @@ export type SuperblockReport = {
342
343
  consolidated_block_hashes: Array<Hash>;
343
344
  };
344
345
  export type SupplyInfo = {
346
+ epoch: u32;
347
+ current_time: u64;
348
+ blocks_minted: u32;
349
+ blocks_minted_reward: u64;
350
+ current_staked_supply: u64;
351
+ genesis_supply: u64;
352
+ };
353
+ export type SupplyInfo2 = {
345
354
  epoch: u32;
346
355
  current_time: u64;
347
356
  blocks_minted: u32;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/rpc/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/rpc/types.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,8 @@ export var Methods;
14
14
  Methods["GetPkh"] = "getPkh";
15
15
  Methods["GetPublicKey"] = "getPublicKey";
16
16
  Methods["GetSuperblock"] = "getSuperblock";
17
- Methods["GetSupplyInfo"] = "getSupplyInfo2";
17
+ Methods["GetSupplyInfo"] = "getSupplyInfo";
18
+ Methods["GetSupplyInfo2"] = "getSupplyInfo2";
18
19
  Methods["GetTransaction"] = "getTransaction";
19
20
  Methods["GetUtxoInfo"] = "getUtxoInfo";
20
21
  Methods["GetValueTransfer"] = "getValueTransfer";
@@ -77,4 +78,4 @@ export var StakingCapability;
77
78
  StakingCapability["Mining"] = "mining";
78
79
  StakingCapability["Witnessing"] = "witnessing";
79
80
  })(StakingCapability || (StakingCapability = {}));
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JwYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQU4sSUFBWSxPQWtDWDtBQWxDRCxXQUFZLE9BQU87SUFDbEIsZ0NBQXFCLENBQUE7SUFDckIsNENBQWlDLENBQUE7SUFDakMsb0NBQXlCLENBQUE7SUFDekIsa0RBQXVDLENBQUE7SUFDdkMsb0NBQXlCLENBQUE7SUFDekIsc0NBQTJCLENBQUE7SUFDM0IsMENBQStCLENBQUE7SUFDL0IsZ0NBQXFCLENBQUE7SUFDckIsMERBQStDLENBQUE7SUFDL0MsNENBQWlDLENBQUE7SUFDakMsb0NBQXlCLENBQUE7SUFDekIsNEJBQWlCLENBQUE7SUFDakIsd0NBQTZCLENBQUE7SUFDN0IsMENBQStCLENBQUE7SUFDL0IsMkNBQWdDLENBQUE7SUFDaEMsNENBQWlDLENBQUE7SUFDakMsc0NBQTJCLENBQUE7SUFDM0IsZ0RBQXFDLENBQUE7SUFDckMsOENBQW1DLENBQUE7SUFDbkMsa0NBQXVCLENBQUE7SUFDdkIsb0NBQXlCLENBQUE7SUFDekIsOENBQW1DLENBQUE7SUFDbkMsa0NBQXVCLENBQUE7SUFDdkIsMEJBQWUsQ0FBQTtJQUNmLGdDQUFxQixDQUFBO0lBQ3JCLGdDQUFxQixDQUFBO0lBQ3JCLGtDQUF1QixDQUFBO0lBQ3ZCLDZDQUFrQyxDQUFBO0lBQ2xDLHNDQUEyQixDQUFBO0lBQzNCLDRCQUFpQixDQUFBO0lBQ2pCLG9EQUF5QyxDQUFBO0lBQ3pDLDBDQUErQixDQUFBO0lBQy9CLG9DQUF5QixDQUFBO0FBQzFCLENBQUMsRUFsQ1csT0FBTyxLQUFQLE9BQU8sUUFrQ2xCO0FBeUJELE1BQU0sQ0FBTixJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDeEIsZ0NBQWUsQ0FBQTtJQUNmLGdDQUFlLENBQUE7SUFDZixrQ0FBaUIsQ0FBQTtJQUNqQiwwQ0FBeUIsQ0FBQTtBQUMxQixDQUFDLEVBTFcsYUFBYSxLQUFiLGFBQWEsUUFLeEI7QUF5UEQsNkJBQTZCO0FBQzdCLE1BQU0sQ0FBTixJQUFZLGdCQU9YO0FBUEQsV0FBWSxnQkFBZ0I7SUFDM0Isd0NBQXdDO0lBQ3hDLHFDQUFpQixDQUFBO0lBQ2pCLHVEQUF1RDtJQUN2RCxxQ0FBaUIsQ0FBQTtJQUNqQix5Q0FBeUM7SUFDekMsbUNBQWUsQ0FBQTtBQUNoQixDQUFDLEVBUFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU8zQjtBQWdGRCxNQUFNLENBQU4sSUFBWSxPQUtYO0FBTEQsV0FBWSxPQUFPO0lBQ2xCLCtCQUFvQixDQUFBO0lBQ3BCLGlDQUFzQixDQUFBO0lBQ3RCLGlDQUFzQixDQUFBO0lBQ3RCLHNCQUFXLENBQUE7QUFDWixDQUFDLEVBTFcsT0FBTyxLQUFQLE9BQU8sUUFLbEI7QUF3QkQsZ0VBQWdFO0FBQ2hFLE1BQU0sQ0FBTixJQUFZLFlBV1g7QUFYRCxXQUFZLFlBQVk7SUFDdkIsaUZBQWlGO0lBQ2pGLHFEQUFxQyxDQUFBO0lBQ3JDLHFEQUFxRDtJQUNyRCxnREFBZ0MsQ0FBQTtJQUNoQyxvRkFBb0Y7SUFDcEYsK0NBQStDO0lBQy9DLDZDQUE2QixDQUFBO0lBQzdCLGlGQUFpRjtJQUNqRiwrRUFBK0U7SUFDL0UsaUNBQWlCLENBQUE7QUFDbEIsQ0FBQyxFQVhXLFlBQVksS0FBWixZQUFZLFFBV3ZCO0FBNkJELE1BQU0sQ0FBTixJQUFZLGlCQUdYO0FBSEQsV0FBWSxpQkFBaUI7SUFDNUIsc0NBQWlCLENBQUE7SUFDakIsOENBQXlCLENBQUE7QUFDMUIsQ0FBQyxFQUhXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFHNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFB1YmxpY0tleUhhc2hTdHJpbmcgfSBmcm9tIFwiLi4vY3J5cHRvL3R5cGVzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEVwb2NoLCBmNjQsIEhhc2gsIGk2NCwgdTgsIHUxNiwgdTMyLCB1NjQsIHVzaXplIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCBlbnVtIE1ldGhvZHMge1xuXHRBZGRQZWVycyA9IFwiYWRkUGVlcnNcIixcblx0QXV0aG9yaXplU3Rha2UgPSBcImF1dGhvcml6ZVN0YWtlXCIsXG5cdENsZWFyUGVlcnMgPSBcImNsZWFyUGVlcnNcIixcblx0RGF0YVJlcXVlc3RSZXBvcnQgPSBcImRhdGFSZXF1ZXN0UmVwb3J0XCIsXG5cdEdldEJhbGFuY2UgPSBcImdldEJhbGFuY2VcIixcblx0R2V0QmFsYW5jZTIgPSBcImdldEJhbGFuY2UyXCIsXG5cdEdldEJsb2NrQ2hhaW4gPSBcImdldEJsb2NrQ2hhaW5cIixcblx0R2V0QmxvY2sgPSBcImdldEJsb2NrXCIsXG5cdEdldENvbnNlbnN1c0NvbnN0YW50cyA9IFwiZ2V0Q29uc2Vuc3VzQ29uc3RhbnRzXCIsXG5cdEdldERhdGFSZXF1ZXN0ID0gXCJnZXREYXRhUmVxdWVzdFwiLFxuXHRHZXRNZW1wb29sID0gXCJnZXRNZW1wb29sXCIsXG5cdEdldFBraCA9IFwiZ2V0UGtoXCIsXG5cdEdldFB1YmxpY0tleSA9IFwiZ2V0UHVibGljS2V5XCIsXG5cdEdldFN1cGVyYmxvY2sgPSBcImdldFN1cGVyYmxvY2tcIixcblx0R2V0U3VwcGx5SW5mbyA9IFwiZ2V0U3VwcGx5SW5mbzJcIixcblx0R2V0VHJhbnNhY3Rpb24gPSBcImdldFRyYW5zYWN0aW9uXCIsXG5cdEdldFV0eG9JbmZvID0gXCJnZXRVdHhvSW5mb1wiLFxuXHRHZXRWYWx1ZVRyYW5zZmVyID0gXCJnZXRWYWx1ZVRyYW5zZmVyXCIsXG5cdEluaXRpYWxpemVQZWVycyA9IFwiaW5pdGlhbGl6ZVBlZXJzXCIsXG5cdEludmVudG9yeSA9IFwiaW52ZW50b3J5XCIsXG5cdEtub3duUGVlcnMgPSBcImtub3duUGVlcnNcIixcblx0TWFzdGVyS2V5RXhwb3J0ID0gXCJtYXN0ZXJLZXlFeHBvcnRcIixcblx0Tm9kZVN0YXRzID0gXCJub2RlU3RhdHNcIixcblx0UGVlcnMgPSBcInBlZXJzXCIsXG5cdFByaW9yaXR5ID0gXCJwcmlvcml0eVwiLFxuXHRQcm90b2NvbCA9IFwicHJvdG9jb2xcIixcblx0UHJvdmlkZXJzID0gXCJwcm92aWRlcnNcIixcblx0UXVlcnlTdGFraW5nUG93ZXJzID0gXCJxdWVyeVBvd2Vyc1wiLFxuXHRRdWVyeVN0YWtlcyA9IFwicXVlcnlTdGFrZXNcIixcblx0UmV3aW5kID0gXCJyZXdpbmRcIixcblx0U2VhcmNoRGF0YVJlcXVlc3RzID0gXCJzZWFyY2hEYXRhUmVxdWVzdHNcIixcblx0U2lnbmFsaW5nSW5mbyA9IFwic2lnbmFsaW5nSW5mb1wiLFxuXHRTeW5jU3RhdHVzID0gXCJzeW5jU3RhdHVzXCIsXG59XG5cbmV4cG9ydCB0eXBlIE5ldHdvcmsgPSBcIm1haW5uZXRcIiB8IFwidGVzdG5ldFwiO1xuXG5leHBvcnQgdHlwZSBRdWVyeVN0YWtlcyA9IHtcblx0ZmlsdGVyPzoge1xuXHRcdHZhbGlkYXRvcj86IFB1YmxpY0tleUhhc2hTdHJpbmc7XG5cdFx0d2l0aGRyYXdlcj86IFB1YmxpY0tleUhhc2hTdHJpbmc7XG5cdH07XG5cdHBhcmFtcz86IFF1ZXJ5U3Rha2VzUGFyYW1zO1xufTtcblxuZXhwb3J0IHR5cGUgUXVlcnlTdGFrZXNQYXJhbXMgPSB7XG5cdGRpc3RpbmN0PzogYm9vbGVhbjtcblx0bGltaXQ/OiBudW1iZXI7XG5cdG9mZnNldD86IG51bWJlcjtcblx0b3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyO1xuXHRzaW5jZT86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5U3Rha2VzT3JkZXIgPSB7XG5cdGJ5OiBTdGFrZXNPcmRlckJ5O1xuXHRyZXZlcnNlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBlbnVtIFN0YWtlc09yZGVyQnkge1xuXHRDb2lucyA9IFwiY29pbnNcIixcblx0Tm9uY2UgPSBcIm5vbmNlXCIsXG5cdE1pbmluZyA9IFwibWluaW5nXCIsXG5cdFdpdG5lc3NpbmcgPSBcIndpdG5lc3NpbmdcIixcbn1cblxuZXhwb3J0IHR5cGUgUXVlcnlTdGFraW5nUG93ZXJzID0ge1xuXHRkaXN0aW5jdD86IGJvb2xlYW47XG5cdGxpbWl0PzogbnVtYmVyO1xuXHRvZmZzZXQ/OiBudW1iZXI7XG5cdG9yZGVyQnk/OiBTdGFraW5nQ2FwYWJpbGl0eTtcbn07XG5cbi8vIFN0cnVjdHVyZSB0aGF0IHRoZSBpbmNsdWRlcyB0aGUgY29uZmlybWVkIGFuZCBwZW5kaW5nIGJhbGFuY2Ugb2YgYSBub2RlXG5leHBvcnQgdHlwZSBCYWxhbmNlID0ge1xuXHQvL1RvdGFsIGFtb3VudCBvZiBhIG5vZGUncyBmdW5kcyBhZnRlciBsYXN0IGNvbmZpcm1lZCBzdXBlcmJsb2NrXG5cdGNvbmZpcm1lZD86IGJpZ2ludDtcblx0Ly9Ub3RhbCBhbW91bnQgb2Ygbm9kZSdzIGZ1bmRzIGFmdGVyIGxhc3QgYmxvY2tcblx0dG90YWw6IGJpZ2ludDtcbn07XG5cbi8vIEJhbGFuY2Ugc3RydWN0IGluIFdpdC8yIGNvbnRhaW5pbmcgbG9ja2VkLCB1bmxvY2tlZCBhbmQgc3Rha2VkIGJhbGFuY2VcbmV4cG9ydCB0eXBlIEJhbGFuY2UyID0ge1xuXHRsb2NrZWQ6IGJpZ2ludDtcblx0c3Rha2VkOiBiaWdpbnQ7XG5cdHVubG9ja2VkOiBiaWdpbnQ7XG59O1xuXG4vL1N0cnVjdCB0aGF0IGNvdW50IHRoZSBwb3NpdGl2ZXMgdm90ZXMgb2YgYSBXSVBcbmV4cG9ydCB0eXBlIEJpdFZvdGVzQ291bnRlciA9IHtcblx0dm90ZXM6IHUzMjtcblx0cGVyaW9kOiBFcG9jaDtcblx0d2lwOiBzdHJpbmc7XG5cdGluaXQ6IEVwb2NoO1xuXHRlbmQ6IEVwb2NoO1xuXHRiaXQ6IHVzaXplO1xufTtcblxuLy8gQmxvY2sgZGF0YSBzdHJ1Y3R1cmVcbmV4cG9ydCB0eXBlIEJsb2NrID0ge1xuXHRibG9ja19oZWFkZXI6IEJsb2NrSGVhZGVyO1xuXHRibG9ja19zaWc6IEtleWVkU2lnbmF0dXJlO1xuXHRibG9ja193ZWlnaHQ6IG51bWJlcjtcblx0Y29uZmlybWVkOiBib29sZWFuO1xuXHRkcl93ZWlnaHQ6IG51bWJlcjtcblx0Ly8gdHhuczogQmxvY2tUcmFuc2FjdGlvbnM7XG5cdHR4bnNfaGFzaGVzPzogQmxvY2tUcmFuc2FjdGlvbnNIYXNoZXM7XG5cdHZ0X3dlaWdodDogbnVtYmVyO1xufTtcblxuLy8gQmxvY2sgbWluaW5nIGVsaWdpYmlsaXR5IGNsYWltXG5leHBvcnQgdHlwZSBCbG9ja0VsaWdpYmlsaXR5Q2xhaW0gPSB7XG5cdC8vIEEgVmVyaWZpYWJsZSBSYW5kb20gRnVuY3Rpb24gcHJvb2Ygb2YgdGhlIGVsaWdpYmlsaXR5IGZvciBhIGdpdmVuIGVwb2NoIGFuZCBwdWJsaWMga2V5XG5cdHByb29mOiBWcmZQcm9vZjtcbn07XG5cbi8vIEJsb2NrIGhlYWRlciBzdHJ1Y3R1cmVcbmV4cG9ydCB0eXBlIEJsb2NrSGVhZGVyID0ge1xuXHQvLyBBIGNoZWNrcG9pbnQgYmVhY29uIGZvciB0aGUgZXBvY2ggdGhhdCB0aGlzIGJsb2NrIGlzIGNsb3Npbmdcblx0YmVhY29uOiBDaGVja3BvaW50QmVhY29uO1xuXHQvLyBUaGUgQm4yNTYgcHVibGljIGtleVxuXHRibjI1Nl9wdWJsaWNfa2V5PzogQm4yNTZQdWJsaWNLZXk7XG5cdC8vIDI1Ni1iaXQgaGFzaGVzIG9mIGFsbCBvZiB0aGUgdHJhbnNhY3Rpb25zIGNvbW1pdHRlZCB0byB0aGlzIGJsb2NrLCBzbyBhcyB0byBwcm92ZSB0aGVpciBiZWxvbmdpbmcgYW5kIGludGVncml0eVxuXHRtZXJrbGVfcm9vdHM6IEJsb2NrTWVya2xlUm9vdHM7XG5cdC8vIEEgbWluZXItcHJvdmlkZWQgcHJvb2Ygb2YgbGVhZGVyc2hpcFxuXHRwcm9vZjogQmxvY2tFbGlnaWJpbGl0eUNsYWltO1xuXHQvLyAzMiBiaXRzIGZvciBiaW5hcnkgc2lnbmFsaW5nIG5ldyB3aXRuZXQgcHJvdG9jb2wgaW1wcm92ZW1lbnRzLlxuXHQvLyBTZWUgW1dJUC0wMDE0XShodHRwczovL2dpdGh1Yi5jb20vd2l0bmV0L1dJUHMvYmxvYi9tYXN0ZXIvd2lwLTAwMTQubWQpIGZvciBtb3JlIGluZm8uXG5cdHNpZ25hbHM6IHUzMjtcbn07XG5cbi8vIEJsb2NrIG1lcmtsZSB0cmVlIHJvb3RzXG5leHBvcnQgdHlwZSBCbG9ja01lcmtsZVJvb3RzID0ge1xuXHQvLyBBIDI1Ni1iaXQgaGFzaCBiYXNlZCBvbiBhbGwgb2YgdGhlIGNvbW1pdCB0cmFuc2FjdGlvbnMgY29tbWl0dGVkIHRvIHRoaXMgYmxvY2tcblx0Y29tbWl0X2hhc2hfbWVya2xlX3Jvb3Q6IEhhc2g7XG5cdC8vIEEgMjU2LWJpdCBoYXNoIGJhc2VkIG9uIGFsbCBvZiB0aGUgZGF0YSByZXF1ZXN0IHRyYW5zYWN0aW9ucyBjb21taXR0ZWQgdG8gdGhpcyBibG9ja1xuXHRkcl9oYXNoX21lcmtsZV9yb290OiBIYXNoO1xuXHQvLyBBIDI1Ni1iaXQgaGFzaCBiYXNlZCBvbiB0aGUgbWludCB0cmFuc2FjdGlvbiBjb21taXR0ZWQgdG8gdGhpcyBibG9ja1xuXHRtaW50X2hhc2g6IEhhc2g7XG5cdC8vIEEgMjU2LWJpdCBoYXNoIGJhc2VkIG9uIGFsbCBvZiB0aGUgcmV2ZWFsIHRyYW5zYWN0aW9ucyBjb21taXR0ZWQgdG8gdGhpcyBibG9ja1xuXHRyZXZlYWxfaGFzaF9tZXJrbGVfcm9vdDogSGFzaDtcblx0Ly8gQSAyNTYtYml0IGhhc2ggYmFzZWQgb24gYWxsIG9mIHRoZSB0YWxseSB0cmFuc2FjdGlvbnMgY29tbWl0dGVkIHRvIHRoaXMgYmxvY2tcblx0dGFsbHlfaGFzaF9tZXJrbGVfcm9vdDogSGFzaDtcblx0Ly8gQSAyNTYtYml0IGhhc2ggYmFzZWQgb24gYWxsIG9mIHRoZSB2YWx1ZSB0cmFuc2ZlciB0cmFuc2FjdGlvbnMgY29tbWl0dGVkIHRvIHRoaXMgYmxvY2tcblx0dnRfaGFzaF9tZXJrbGVfcm9vdDogSGFzaDtcbn07XG5cbmV4cG9ydCB0eXBlIEJsb2NrVHJhbnNhY3Rpb25zSGFzaGVzID0ge1xuXHRjb21taXQ6IEFycmF5PEhhc2g+O1xuXHRkYXRhX3JlcXVlc3Q6IEFycmF5PEhhc2g+O1xuXHRtaW50OiBIYXNoO1xuXHRyZXZlYWw6IEFycmF5PEhhc2g+O1xuXHR0YWxseTogQXJyYXk8SGFzaD47XG5cdHZhbHVlX3RyYW5zZmVyOiBBcnJheTxIYXNoPjtcbn07XG5cbi8vIEJOMjU2IHB1YmxpYyBrZXlcbmV4cG9ydCB0eXBlIEJuMjU2UHVibGljS2V5ID0ge1xuXHQvLyBDb21wcmVzc2VkIGZvcm0gb2YgYSBCTjI1NiBwdWJsaWMga2V5XG5cdHB1YmxpY19rZXk6IEFycmF5PHU4Pjtcblx0Ly8gQ2FjaGVkIHVuY29tcHJlc3NlZCBmb3JtXG5cdHVuY29tcHJlc3NlZDogQXJyYXk8dTg+O1xufTtcblxuZXhwb3J0IHR5cGUgQ2hlY2twb2ludEJlYWNvbiA9IHtcblx0Ly8gVGhlIHNlcmlhbCBudW1iZXIgZm9yIGFuIGVwb2NoXG5cdGNoZWNrcG9pbnQ6IEVwb2NoO1xuXHQvLyBUaGUgMjU2LWJpdCBoYXNoIG9mIHRoZSBwcmV2aW91cyBibG9jayBoZWFkZXJcblx0aGFzaFByZXZCbG9jazogSGFzaDtcbn07XG5cbi8vIFByb3RvY29sJ3MgY29uc2Vuc3VzIGNvbnN0YW50c1xuZXhwb3J0IHR5cGUgQ29uc2Vuc3VzQ29uc3RhbnRzID0ge1xuXHQvL0FuIGlkZW50aXR5IGlzIGNvbnNpZGVyZWQgYWN0aXZlIGlmIGl0IHBhcnRpY2lwYXRlZCBpbiB0aGUgd2l0bmVzc2luZyBwcm90b2NvbCBhdCBsZWFzdCBvbmNlIGluIHRoZSBsYXN0IGBhY3Rpdml0eV9wZXJpb2RgIGVwb2Noc1xuXHRhY3Rpdml0eV9wZXJpb2Q6IHUzMjtcblxuXHQvL0F1eGlsaWFyeSBib290c3RyYXAgYmxvY2sgaGFzaCB2YWx1ZVxuXHRib290c3RyYXBfaGFzaDogSGFzaDtcblxuXHQvL1N1cGVyYmxvY2sgc2lnbmluZyBjb21taXR0ZWUgZm9yIHRoZSBmaXJzdCBzdXBlcmJsb2Nrc1xuXHRib290c3RyYXBwaW5nX2NvbW1pdHRlZTogQXJyYXk8c3RyaW5nPjtcblxuXHQvL1RpbWVzdGFtcCBhdCBjaGVja3BvaW50IDAgKHRoZSBzdGFydCBvZiBlcG9jaCAwKVxuXHRjaGVja3BvaW50X3plcm9fdGltZXN0YW1wOiBpNjQ7XG5cblx0Ly9TZWNvbmRzIGJldHdlZW4gdGhlIHN0YXJ0IG9mIGFuIGVwb2NoIGFuZCB0aGUgc3RhcnQgb2YgdGhlIG5leHQgb25lXG5cdGNoZWNrcG9pbnRzX3BlcmlvZDogdTE2O1xuXG5cdC8vTWluaW11bSBpbnB1dCBhZ2Ugb2YgYW4gVVRYTyBmb3IgYmVpbmcgYSB2YWxpZCBjb2xsYXRlcmFsXG5cdGNvbGxhdGVyYWxfYWdlOiB1MzI7XG5cblx0Ly9NaW5pbXVtIHZhbHVlIGluIG5hbm93aXRzIGZvciBhIGNvbGxhdGVyYWwgdmFsdWVcblx0Y29sbGF0ZXJhbF9taW5pbXVtOiBiaWdpbnQ7XG5cblx0Ly9OdW1iZXIgb2YgZXBvY2hzIHdpdGggdGhlIG1pbmltdW0gZGlmZmljdWx0eSBhY3RpdmVcblx0Ly8oVGhpcyBudW1iZXIgcmVwcmVzZW50IHRoZSBsYXN0IGVwb2NoIHdoZXJlIHRoZSBtaW5pbXVtIGRpZmZpY3VsdHkgaXMgYWN0aXZlKVxuXHRlcG9jaHNfd2l0aF9taW5pbXVtX2RpZmZpY3VsdHk6IHUzMjtcblxuXHQvL0V4dHJhIHJvdW5kcyBmb3IgY29tbWl0bWVudHMgYW5kIHJldmVhbHNcblx0ZXh0cmFfcm91bmRzOiB1MTY7XG5cblx0Ly9HZW5lc2lzIGJsb2NrIGhhc2ggdmFsdWVcblx0Z2VuZXNpc19oYXNoOiBIYXNoO1xuXG5cdC8vSGFsdmluZyBwZXJpb2Rcblx0aGFsdmluZ19wZXJpb2Q6IHUzMjtcblxuXHQvL0luaXRpYWwgYmxvY2sgcmV3YXJkXG5cdGluaXRpYWxfYmxvY2tfcmV3YXJkOiB1NjQ7XG5cblx0Ly9NYXhpbXVtIHdlaWdodCBhIGJsb2NrIGNhbiBoYXZlLCB0aGlzIGFmZmVjdHMgdGhlIG51bWJlciBvZlxuXHQvL3RyYW5zYWN0aW9ucyBhIGJsb2NrIGNhbiBjb250YWluOiB0aGVyZSB3aWxsIGJlIGFzIG1hbnlcblx0Ly90cmFuc2FjdGlvbnMgYXMgdGhlIHN1bSBvZiBfdGhlaXJfIHdlaWdodHMgaXMgbGVzcyB0aGFuLCBvclxuXHQvL2VxdWFsIHRvLCB0aGlzIG1heGltdW0gYmxvY2sgd2VpZ2h0IHBhcmFtZXRlci5cblx0Ly9cblx0Ly9NYXhpbXVtIGFnZ3JlZ2F0ZWQgd2VpZ2h0IG9mIGFsbCB0aGUgZGF0YSByZXF1ZXN0cyB0cmFuc2FjdGlvbnMgaW4gb25lIGJsb2NrXG5cdG1heF9kcl93ZWlnaHQ6IHUzMjtcblx0Ly9cblx0Ly9NYXhpbXVtIGFnZ3JlZ2F0ZWQgd2VpZ2h0IG9mIGFsbCB0aGUgdmFsdWUgdHJhbnNmZXIgdHJhbnNhY3Rpb25zIGluIG9uZSBibG9ja1xuXHRtYXhfdnRfd2VpZ2h0OiB1MzI7XG5cblx0Ly9NaW5pbXVtIGRpZmZpY3VsdHlcblx0bWluaW11bV9kaWZmaWN1bHR5OiB1MzI7XG5cblx0Ly9CYWNrdXAgZmFjdG9yIGZvciBtaW5pbmc6IHZhbGlkIFZSRnMgdW5kZXIgdGhpcyBmYWN0b3Igd2lsbCByZXN1bHQgaW4gYnJvYWRjYXN0aW5nIGEgYmxvY2tcblx0bWluaW5nX2JhY2t1cF9mYWN0b3I6IHUzMjtcblxuXHQvL1JlcGxpY2F0aW9uIGZhY3RvciBmb3IgbWluaW5nOiB2YWxpZCBWUkZzIHVuZGVyIHRoaXMgZmFjdG9yIHdpbGwgaGF2ZSBwcmlvcml0eVxuXHRtaW5pbmdfcmVwbGljYXRpb25fZmFjdG9yOiB1MzI7XG5cblx0Ly9SZXB1dGF0aW9uIHdpbGwgZXhwaXJlIGFmdGVyIE4gd2l0bmVzc2luZyBhY3RzXG5cdHJlcHV0YXRpb25fZXhwaXJlX2FscGhhX2RpZmY6IHUzMjtcblxuXHQvL1JlcHV0YXRpb24gaXNzdWFuY2Vcblx0cmVwdXRhdGlvbl9pc3N1YW5jZTogdTMyO1xuXG5cdC8vV2hlbiB0byBzdG9wIGlzc3VpbmcgbmV3IHJlcHV0YXRpb25cblx0cmVwdXRhdGlvbl9pc3N1YW5jZV9zdG9wOiB1MzI7XG5cblx0Ly9QZW5hbGl6YXRpb24gZmFjdG9yOiBmcmFjdGlvbiBvZiByZXB1dGF0aW9uIGxvc3QgYnkgbGlhcnMgZm9yIG91dCBvZiBjb25zZW5zdXMgY2xhaW1zXG5cdC8vIEZJWE1FKCMxNzIpOiBVc2UgZml4ZWQgcG9pbnQgYXJpdGhtZXRpY1xuXHRyZXB1dGF0aW9uX3BlbmFsaXphdGlvbl9mYWN0b3I6IGY2NDtcblxuXHQvL1BlcmlvZCBhZnRlciB3aGljaCB0aGUgY29tbWl0dGVlIHNpemUgc2hvdWxkIGRlY3JlYXNlIChpbiBzdXBlcmJsb2NrIHBlcmlvZHMpXG5cdHN1cGVyYmxvY2tfY29tbWl0dGVlX2RlY3JlYXNpbmdfcGVyaW9kOiB1MzI7XG5cblx0Ly9TdGVwIGJ5IHdoaWNoIHRoZSBjb21taXR0ZWUgc2hvdWxkIGJlIHJlZHVjZWQgYWZ0ZXIgc3VwZXJibG9ja19hZ3JlZW1lbnRfZGVjcmVhc2luZ19wZXJpb2Rcblx0c3VwZXJibG9ja19jb21taXR0ZWVfZGVjcmVhc2luZ19zdGVwOiB1MzI7XG5cblx0Ly9CdWlsZCBhIHN1cGVyYmxvY2sgZXZlcnkgYHN1cGVyYmxvY2tfcGVyaW9kYCBlcG9jaHNcblx0c3VwZXJibG9ja19wZXJpb2Q6IHUxNjtcblxuXHQvL1NpemUgb2YgdGhlIHN1cGVyYmxvY2sgc2lnbmluZyBjb21taXR0ZWVcblx0c3VwZXJibG9ja19zaWduaW5nX2NvbW1pdHRlZV9zaXplOiB1MzI7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhUmVxdWVzdFBheWxvYWQgPSB7XG5cdGRhdGFSZXF1ZXN0OiBSQURSZXF1ZXN0O1xuXHR3aXRuZXNzX3Jld2FyZDogbnVtYmVyO1xuXHR3aXRuZXNzZXM6IG51bWJlcjtcblx0Y29tbWl0QW5kUmV2ZWFsRmVlOiBudW1iZXI7XG5cdG1pbkNvbnNlbnN1c1BlcmNlbnRhZ2U6IG51bWJlcjtcblx0Y29sbGF0ZXJhbDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVJlcXVlc3RTdGF0dXMgPSBcImNhbmNlbGxlZFwiIHwgXCJwZW5kaW5nXCIgfCBcImNvbW1pdHRpbmdcIiB8IFwicmV2ZWFsaW5nXCIgfCBcInNvbHZlZFwiIHwgXCJyZXZlcnRlZFwiO1xuXG5leHBvcnQgdHlwZSBHZXREYXRhUmVxdWVzdE1vZGUgPSBcImZ1bGxcIiB8IFwiZXRoZXJlYWxcIjtcblxuLy8gTGlzdCBvZiBvdXRwdXRzIHJlbGF0ZWQgdG8gYSBkYXRhIHJlcXVlc3RcbmV4cG9ydCB0eXBlIEdldERhdGFSZXF1ZXN0RnVsbFJlcG9ydCA9IHtcblx0c3RhdHVzOiBEYXRhUmVxdWVzdFN0YXR1cztcblx0cmVwb3J0OiB7XG5cdFx0Ly8gTGlzdCBvZiBjb21taXRtZW50cyB0byByZXNvbHZlIHRoZSBkYXRhIHJlcXVlc3Rcblx0XHRjb21taXRzOiBSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgRGF0YVJlcXVlc3RDb21taXRUcmFuc2FjdGlvbj47XG5cdFx0Ly9MaXN0IG9mIHJldmVhbHMgdG8gdGhlIGNvbW1pdG1lbnRzIChjb250YWlucyB0aGUgZGF0YSByZXF1ZXN0IHdpdG5ldCByZXN1bHQpXG5cdFx0cmV2ZWFsczogUmVjb3JkPFB1YmxpY0tleUhhc2hTdHJpbmcsIERhdGFSZXF1ZXN0UmV2ZWFsVHJhbnNhY3Rpb24+O1xuXHRcdC8vVGFsbHkgb2YgZGF0YSByZXF1ZXN0IChjb250YWlucyBmaW5hbCByZXN1bHQpXG5cdFx0dGFsbHk/OiBEYXRhUmVxdWVzdFRhbGx5VHJhbnNhY3Rpb247XG5cdFx0Ly9IYXNoIG9mIHRoZSBibG9jayB3aXRoIHRoZSBEYXRhUmVxdWVzdFRyYW5zYWN0aW9uXG5cdFx0YmxvY2tfaGFzaF9kcl90eD86IEhhc2g7XG5cdFx0Ly9IYXNoIG9mIHRoZSBibG9jayB3aXRoIHRoZSBUYWxseVRyYW5zYWN0aW9uXG5cdFx0YmxvY2tfaGFzaF90YWxseV90eD86IEhhc2g7XG5cdFx0Ly9DdXJyZW50IGNvbW1pdCByb3VuZFxuXHRcdGN1cnJlbnRfY29tbWl0X3JvdW5kOiB1MTY7XG5cdFx0Ly9DdXJyZW50IHJldmVhbCByb3VuZFxuXHRcdGN1cnJlbnRfcmV2ZWFsX3JvdW5kOiB1MTY7XG5cdFx0Ly9DdXJyZW50IHN0YWdlLCBvciBOb25lIGlmIGZpbmlzaGVkXG5cdFx0Y3VycmVudF9zdGFnZT86IERhdGFSZXF1ZXN0U3RhZ2U7XG5cdH07XG59O1xuXG5leHBvcnQgdHlwZSBHZXREYXRhUmVxdWVzdEV0aGVyZWFsUmVwb3J0ID0ge1xuXHRibG9ja19lcG9jaD86IG51bWJlcjtcblx0YmxvY2tfaGFzaD86IEhhc2g7XG5cdGNvbmZpcm1hdGlvbnM/OiBudW1iZXI7XG5cdGhhc2g/OiBIYXNoO1xuXHRxdWVyeT86IHtcblx0XHRkcm9faGFzaDogSGFzaDtcblx0XHRyYWRfaGFzaDogSGFzaDtcblx0XHRyYWRfYnl0ZWNvZGU6IHN0cmluZztcblx0XHRjb2xsYXRlcmFsX3JhdGlvOiBudW1iZXI7XG5cdFx0dW5pdGFyeV9yZXdhcmQ6IGJpZ2ludDtcblx0XHR3aXRuZXNzZXM6IG51bWJlcjtcblx0fTtcblx0cmVzdWx0Pzoge1xuXHRcdGNib3JfYnl0ZXM6IHN0cmluZztcblx0XHRmaW5hbGl6ZWQ6IGJvb2xlYW47XG5cdFx0dGltZXN0YW1wOiBudW1iZXI7XG5cdH07XG5cdHN0YWdlOiBEYXRhUmVxdWVzdFN0YXR1cztcbn07XG5cbi8vIERhdGEgcmVxdWVzdCBjdXJyZW50IHN0YWdlXG5leHBvcnQgZW51bSBEYXRhUmVxdWVzdFN0YWdlIHtcblx0Ly9FeHBlY3RpbmcgY29tbWl0bWVudHMgZm9yIGRhdGEgcmVxdWVzdFxuXHRDT01NSVQgPSBcIkNPTU1JVFwiLFxuXHQvL0V4cGVjdGluZyByZXZlYWxzIHRvIHByZXZpb3VzbHkgcHVibGlzaGVkIGNvbW1pdG1lbnRzXG5cdFJFVkVBTCA9IFwiUkVWRUFMXCIsXG5cdC8vRXhwZWN0aW5nIHRhbGx5IHRvIGJlIGluY2x1ZGVkIGluIGJsb2NrXG5cdFRBTExZID0gXCJUQUxMWVwiLFxufVxuXG5leHBvcnQgdHlwZSBQcmlvcml0eUVzdGltYXRlID0ge1xuXHRwcmlvcml0eTogZjY0O1xuXHR0aW1lX3RvX2Jsb2NrOiB1NjQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcmlvcml0aWVzID0ge1xuXHRkcnRfc3Rpbmt5OiBQcmlvcml0eUVzdGltYXRlO1xuXHRkcnRfbG93OiBQcmlvcml0eUVzdGltYXRlO1xuXHRkcnRfbWVkaXVtOiBQcmlvcml0eUVzdGltYXRlO1xuXHRkcnRfaGlnaDogUHJpb3JpdHlFc3RpbWF0ZTtcblx0ZHJ0X29wdWxlbnQ6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHN0X3N0aW5reTogUHJpb3JpdHlFc3RpbWF0ZTtcblx0c3RfbG93OiBQcmlvcml0eUVzdGltYXRlO1xuXHRzdF9tZWRpdW06IFByaW9yaXR5RXN0aW1hdGU7XG5cdHN0X2hpZ2g6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHN0X29wdWxlbnQ6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHV0X3N0aW5reTogUHJpb3JpdHlFc3RpbWF0ZTtcblx0dXRfbG93OiBQcmlvcml0eUVzdGltYXRlO1xuXHR1dF9tZWRpdW06IFByaW9yaXR5RXN0aW1hdGU7XG5cdHV0X2hpZ2g6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHV0X29wdWxlbnQ6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHZ0dF9zdGlua3k6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHZ0dF9sb3c6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHZ0dF9tZWRpdW06IFByaW9yaXR5RXN0aW1hdGU7XG5cdHZ0dF9oaWdoOiBQcmlvcml0eUVzdGltYXRlO1xuXHR2dHRfb3B1bGVudDogUHJpb3JpdHlFc3RpbWF0ZTtcbn07XG5cbmV4cG9ydCB0eXBlIEtleWVkU2lnbmF0dXJlID0ge1xuXHQvLyBTaWduYXR1cmVcblx0c2lnbmF0dXJlOiBTaWduYXR1cmU7XG5cdC8vIFB1YmxpYyBrZXlcblx0cHVibGljX2tleToge1xuXHRcdGNvbXByZXNzZWQ6IG51bWJlcjtcblx0XHRieXRlczogQXJyYXk8dTg+O1xuXHR9O1xufTtcblxuLy8gUmVzdWx0IG9mIEdldE1lbXBvb2wgbWVzc2FnZTogbGlzdCBvZiBwZW5kaW5nIHRyYW5zYWN0aW9ucyBjYXRlZ29yaXplZCBieSB0eXBlXG5leHBvcnQgdHlwZSBNZW1wb29sID0ge1xuXHQvLyBQZW5kaW5nIHZhbHVlIHRyYW5zZmVyIHRyYW5zYWN0aW9uc1xuXHR2YWx1ZV90cmFuc2ZlcjogQXJyYXk8SGFzaD47XG5cdC8vIFBlbmRpbmcgZGF0YSByZXF1ZXN0IHRyYW5zYWN0aW9uc1xuXHRkYXRhX3JlcXVlc3Q6IEFycmF5PEhhc2g+O1xufTtcblxuLy8gTmFtZWQgdHVwbGUgb2YgYChhZGRyZXNzLCB0eXBlKWBcbmV4cG9ydCB0eXBlIFBlZXJBZGRyID0ge1xuXHQvL1NvY2tldCBhZGRyZXNzIG9mIHRoZSBwZWVyXG5cdGFkZHJlc3M6IHN0cmluZztcblx0Ly8gXCJpbmJvdW5kXCIgfCBcIm91dGJvdW5kXCIgd2hlbiBhc2tpbmcgZm9yIGNvbm5lY3RlZCBwZWVycywgb3Jcblx0Ly8gXCJuZXdcIiB8IFwidHJpZWRcIiB3aGVuIGFza2luZyBmb3IgYWxsIHRoZSBrbm93biBwZWVyc1xuXHR0eXBlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBQcm90b2NvbEluZm8gPSB7XG5cdGFsbF9jaGVja3BvaW50c19wZXJpb2RzOiBSZWNvcmQ8c3RyaW5nLCB1OD47XG5cdGFsbF92ZXJzaW9uczoge1xuXHRcdGVmdjogUmVjb3JkPHN0cmluZywgRXBvY2g+O1xuXHRcdHZmZTogUmVjb3JkPEVwb2NoLCBzdHJpbmc+O1xuXHR9O1xuXHRjdXJyZW50X3ZlcnNpb246IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFJBREFnZ3JlZ2F0ZSA9IHsgZmlsdGVyczogQXJyYXk8UkFERmlsdGVyPjsgcmVkdWNlcjogdTMyIH07XG5leHBvcnQgdHlwZSBSQURGaWx0ZXIgPSB7IG9wOiB1MzI7IGFyZ3M6IEFycmF5PHU4PiB9O1xuZXhwb3J0IHR5cGUgUkFEUmVxdWVzdCA9IHtcblx0dGltZUxvY2s6IG51bWJlcjtcblx0cmV0cmlldmU6IEFycmF5PFJBRFJldHJpZXZlPjtcblx0YWdncmVnYXRlOiBSQURBZ2dyZWdhdGU7XG5cdHRhbGx5OiBSQURUYWxseTtcbn07XG5leHBvcnQgdHlwZSBSQURSZXRyaWV2ZSA9IHsgdHlwZTogUkFEVHlwZTsgdXJsOiBzdHJpbmc7IHNjcmlwdDogQXJyYXk8dTg+IH07XG5leHBvcnQgdHlwZSBSQURUYWxseSA9IHtcblx0ZmlsdGVyczogQXJyYXk8UkFERmlsdGVyPjtcblx0cmVkdWNlcjogdTMyO1xufTtcblxuZXhwb3J0IGVudW0gUkFEVHlwZSB7XG5cdEh0dHBHZXQgPSBcIkhUVFAtR0VUXCIsXG5cdEh0dHBQb3N0ID0gXCJIVFRQLVBPU1RcIixcblx0SHR0cEhlYWQgPSBcIkhUVFAtSEVBRFwiLFxuXHRSbmcgPSBcIlJOR1wiLFxufVxuXG4vLyBFQ0RTQSAob3ZlciBzZWNwMjU2azEpIHNpZ25hdHVyZVxuZXhwb3J0IHR5cGUgU2VjcDI1NmsxU2lnbmF0dXJlID0ge1xuXHQvLyBUaGUgc2lnbmF0dXJlIHNlcmlhbGl6ZWQgaW4gREVSXG5cdGRlcjogQXJyYXk8dTg+O1xufTtcblxuLy9SZXN1bHQgb2YgR2V0U2lnbmFsaW5nSW5mb1xuZXhwb3J0IHR5cGUgU2lnbmFsaW5nSW5mbyA9IHtcblx0Ly9MaXN0IG9mIHByb3RvY29sIHVwZ3JhZGVzIHRoYXQgYXJlIGFscmVhZHkgYWN0aXZlLCBhbmQgdGhlaXIgYWN0aXZhdGlvbiBlcG9jaFxuXHRhY3RpdmVfdXBncmFkZXM6IFJlY29yZDxzdHJpbmcsIEVwb2NoPjtcblx0Ly9MaXN0IG9mIHByb3RvY29sIHVwZ3JhZGVzIHRoYXQgYXJlIGN1cnJlbnRseSBiZWluZyBwb2xsZWQgZm9yIGFjdGl2YXRpb24gc2lnbmFsaW5nXG5cdHBlbmRpbmdfdXBncmFkZXM6IEFycmF5PEJpdFZvdGVzQ291bnRlcj47XG5cdC8vTGFzdCBlcG9jaFxuXHRlcG9jaDogRXBvY2g7XG59O1xuXG4vLyBEaWdpdGFsIHNpZ25hdHVyZXMgc3RydWN0dXJlIChiYXNlZCBvbiBzdXBwb3J0ZWQgY3J5cHRvc3lzdGVtcylcbmV4cG9ydCB0eXBlIFNpZ25hdHVyZSA9IHtcblx0Ly8gRUNEU0Egb3ZlciBzZWNwMjU2azFcblx0U2VjcDI1NmsxOiBTZWNwMjU2azFTaWduYXR1cmU7XG59O1xuXG4vLyBTdGF0ZSBtYWNoaW5lIGZvciB0aGUgc3luY2hyb25pemF0aW9uIHN0YXR1cyBvZiBhIFdpdG5ldCBub2RlXG5leHBvcnQgZW51bSBTdGF0ZU1hY2hpbmUge1xuXHQvLyBGaXJzdCBzdGF0ZSwgQ2hhaW5NYW5hZ2VyIGlzIHdhaXRpbmcgZm9yIHJlYWNoaW5nICBjb25zZW5zdXMgYmV0d2VlbiBpdHMgcGVlcnNcblx0V2FpdGluZ0NvbnNlbnN1cyA9IFwiV2FpdGluZ0NvbnNlbnN1c1wiLFxuXHQvLyBTZWNvbmQgc3RhdGUsIENoYWluTWFuYWdlciBzeW5jaHJvbml6YXRpb24gcHJvY2Vzc1xuXHRTeW5jaHJvbml6aW5nID0gXCJTeW5jaHJvbml6aW5nIFwiLFxuXHQvLyBUaGlyZCBzdGF0ZSwgYENoYWluTWFuYWdlcmAgaGFzIGFsbCB0aGUgYmxvY2tzIGluIHRoZSBjaGFpbiBhbmQgaXMgcmVhZHkgdG8gc3RhcnRcblx0Ly8gY29uc29saWRhdGluZyBibG9jayBjYW5kaWRhdGVzIGluIHJlYWwgdGltZS5cblx0QWxtb3N0U3luY2VkID0gXCJBbG1vc3RTeW5jZWRcIixcblx0Ly8gRm91cnRoIHN0YXRlLCBgQ2hhaW5NYW5hZ2VyYCBjYW4gY29uc29saWRhdGUgYmxvY2sgY2FuZGlkYXRlcywgcHJvcG9zZSBpdHMgb3duXG5cdC8vIGNhbmRpZGF0ZXMgKG1pbmluZykgYW5kIHBhcnRpY2lwYXRlIGluIHJlc29sdmluZyBkYXRhIHJlcXVlc3RzICh3aXRuZXNzaW5nKS5cblx0U3luY2VkID0gXCJTeW5jZWRcIixcbn1cblxuZXhwb3J0IHR5cGUgU3Rha2VBdXRob3JpemF0aW9uID0ge1xuXHR3aXRoZHJhd2VyOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRzaWduYXR1cmU6IEtleWVkU2lnbmF0dXJlO1xufTtcblxuZXhwb3J0IHR5cGUgU3Rha2VEZWxlZ2F0ZSA9IHtcblx0Y29pbnM6IGJpZ2ludDtcblx0dmFsaWRhdG9yOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgU3Rha2VFbnRyeSA9IHtcblx0a2V5OiB7XG5cdFx0dmFsaWRhdG9yOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRcdHdpdGhkcmF3ZXI6IFB1YmxpY0tleUhhc2hTdHJpbmc7XG5cdH07XG5cdHZhbHVlOiB7XG5cdFx0Y29pbnM6IGJpZ2ludDtcblx0XHRlcG9jaHM6IFJlY29yZDxTdGFraW5nQ2FwYWJpbGl0eSwgRXBvY2g+O1xuXHRcdG5vbmNlOiB1NjQ7XG5cdH07XG59O1xuXG5leHBvcnQgdHlwZSBTdGFrZSA9IHtcblx0dG90YWw6IGJpZ2ludDtcblx0ZGVsZWdhdGVzOiBBcnJheTxTdGFrZURlbGVnYXRlPjtcbn07XG5cbmV4cG9ydCBlbnVtIFN0YWtpbmdDYXBhYmlsaXR5IHtcblx0TWluaW5nID0gXCJtaW5pbmdcIixcblx0V2l0bmVzc2luZyA9IFwid2l0bmVzc2luZ1wiLFxufVxuXG5leHBvcnQgdHlwZSBTdGFraW5nUG93ZXIgPSB7XG5cdHBvd2VyPzogdTY0O1xuXHRyYW5raW5nPzogdTMyO1xuXHR2YWxpZGF0b3I6IFB1YmxpY0tleUhhc2hTdHJpbmc7XG5cdHdpdGhkcmF3ZXI6IFB1YmxpY0tleUhhc2hTdHJpbmc7XG59O1xuXG4vLyBTdXBlcmJsb2NrIGNvbnNvbGlkYXRpbmcgbWV0YWRhdGFcbi8vQXMgcGVyIGN1cnJlbnQgY29uc2Vuc3VzIGFsZ29yaXRobSwgXCJjb25zb2xpZGF0ZWQgYmxvY2tzXCIgaW1wbGllcyB0aGF0IHRoZXJlIGV4aXN0cyBhdCBsZWFzdCBvbmVcbi8vc3VwZXJibG9jayBpbiB0aGUgY2hhaW4gdGhhdCBidWlsZHMgdXBvbiB0aGUgc3VwZXJibG9jayB3aGVyZSB0aG9zZSBibG9ja3Mgd2VyZSBhbmNob3JlZC5cbmV4cG9ydCB0eXBlIFN1cGVyYmxvY2tSZXBvcnQgPSB7XG5cdC8vVGhlIHN1cGVyYmxvY2sgdGhhdCB3ZSBhcmUgc2lnbmFsaW5nIGFzIGNvbnNvbGlkYXRlZC5cblx0c3VwZXJibG9jazoge1xuXHRcdC8vTnVtYmVyIG9mIHNpZ25pbmcgY29tbWl0dGVlIG1lbWJlcnMsXG5cdFx0c2lnbmluZ19jb21taXR0ZWVfbGVuZ3RoOiB1MzI7XG5cdFx0Ly9NZXJrbGUgcm9vdCBvZiB0aGUgQWN0aXZlIFJlcHV0YXRpb24gU2V0IG1lbWJlcnMgaW5jbHVkZWQgaW50byB0aGUgcHJldmlvdXMgU3VwZXJCbG9ja1xuXHRcdGFyc19yb290OiBIYXNoO1xuXHRcdC8vTWVya2xlIHJvb3Qgb2YgdGhlIGRhdGEgcmVxdWVzdHMgaW4gdGhlIGJsb2NrcyBjcmVhdGVkIHNpbmNlIHRoZSBsYXN0IFN1cGVyQmxvY2tcblx0XHRkYXRhX3JlcXVlc3Rfcm9vdDogSGFzaDtcblx0XHQvL1N1cGVyYmxvY2sgaW5kZXgsXG5cdFx0aW5kZXg6IHUzMjtcblx0XHQvL0hhc2ggb2YgdGhlIGJsb2NrIHRoYXQgdGhpcyBTdXBlckJsb2NrIGlzIGF0dGVzdGluZyBhcyB0aGUgbGF0ZXN0IGJsb2NrIGluIHRoZSBibG9jayBjaGFpbixcblx0XHRsYXN0X2Jsb2NrOiBIYXNoO1xuXHRcdC8vSGFzaCBvZiB0aGUgYmxvY2sgdGhhdCB0aGUgcHJldmlvdXMgU3VwZXJCbG9jayB1c2VkIGZvciBpdHMgb3duIGBsYXN0X2Jsb2NrYCBmaWVsZCxcblx0XHRsYXN0X2Jsb2NrX2luX3ByZXZpb3VzX3N1cGVyYmxvY2s6IEhhc2g7XG5cdFx0Ly9NZXJrbGUgcm9vdCBvZiB0aGUgdGFsbGllcyBpbiB0aGUgYmxvY2tzIGNyZWF0ZWQgc2luY2UgdGhlIGxhc3QgU3VwZXJCbG9ja1xuXHRcdHRhbGx5X3Jvb3Q6IEhhc2g7XG5cdH07XG5cdC8vVGhlIGhhc2hlcyBvZiB0aGUgYmxvY2tzIHRoYXQgd2UgYXJlIHNpZ25hbGluZyBhcyBjb25zb2xpZGF0ZWQuXG5cdGNvbnNvbGlkYXRlZF9ibG9ja19oYXNoZXM6IEFycmF5PEhhc2g+O1xufTtcblxuLy8gSW5mb3JtYXRpb24gYWJvdXQgdGhlIHRvdGFsIHN1cHBseVxuZXhwb3J0IHR5cGUgU3VwcGx5SW5mbyA9IHtcblx0Ly9DdXJyZW50IGVwb2NoXG5cdGVwb2NoOiB1MzI7XG5cdC8vQ3VycmVudCB0aW1lXG5cdGN1cnJlbnRfdGltZTogdTY0O1xuXHQvL051bWJlciBvZiBibG9ja3MgbWludGVkXG5cdGJsb2Nrc19taW50ZWQ6IHUzMjtcblx0Ly9XSVQgbWludGVkIHRocm91Z2ggYmxvY2sgY3JlYXRpb25cblx0YmxvY2tzX21pbnRlZF9yZXdhcmQ6IHU2NDtcblx0Ly9BbW91bnQgb2YgbmFub3dpdHMgdGhhdCBoYXZlIGJlZW4gYnVybnQgc28gZmFyXG5cdGJ1cm50X3N1cHBseTogYmlnaW50O1xuXHQvL0N1cnJlbnQgbG9ja2VkIHN1cHBseVxuXHRjdXJyZW50X2xvY2tlZF9zdXBwbHk6IGJpZ2ludDtcblx0Ly9DdXJyZW50IHN0YWtlZCBzdXBwbHlcblx0Y3VycmVudF9zdGFrZWRfc3VwcGx5OiBiaWdpbnQ7XG5cdC8vQ3VycmVudCB1bmxvY2tlZCBzdXBwbHlcblx0Y3VycmVudF91bmxvY2tlZF9zdXBwbHk6IGJpZ2ludDtcblx0Ly9Jbml0aWFsIHN1cHBseVxuXHRpbml0aWFsX3N1cHBseTogYmlnaW50O1xuXHQvL1dJVCBjdXJyZW50bHkgbG9ja2VkIGFzIGNvbGxhdGVyYWwgYnkgaW4tZmxpZ2h0IGRhdGEgcmVxdWVzdHNcblx0cmVxdWVzdHNfaW5fZmxpZ2h0X2NvbGxhdGVyYWw6IHU2NDtcbn07XG5cbi8vIE5vZGUgc3luY2hyb25pemF0aW9uIHN0YXR1c1xuZXhwb3J0IHR5cGUgU3luY1N0YXR1cyA9IHtcblx0Ly8gVGhlIGhhc2ggb2YgdGhlIHRvcCBjb25zb2xpZGF0ZWQgYmxvY2sgYW5kIHRoZSBlcG9jaCBvZiB0aGF0IGJsb2NrXG5cdGNoYWluX2JlYWNvbjogQ2hlY2twb2ludEJlYWNvbjtcblx0Ly8gVGhlIGN1cnJlbnQgZXBvY2gsIG9yIE5vbmUgaWYgdGhlIGVwb2NoIDAgaXMgaW4gdGhlIGZ1dHVyZVxuXHRjdXJyZW50X2Vwb2NoPzogRXBvY2g7XG5cdC8vIE5vZGUgU3RhdGVcblx0bm9kZV9zdGF0ZTogU3RhdGVNYWNoaW5lO1xufTtcblxuLy8gSW5mb3JtYXRpb24gYWJvdXQgb3VyIG93biBVVFhPc1xuZXhwb3J0IHR5cGUgVXR4b0luZm8gPSB7XG5cdC8vVmVjdG9yIG9mIFV0eG9Qb2ludGVycyB3aXRoIHRoZWlyIHZhbHVlcywgdGltZV9sb2NrcyBhbmQgaWYgaXQgaXMgcmVhZHkgZm9yIGNvbGxhdGVyYWxcblx0dXR4b3M6IEFycmF5PFV0eG9NZXRhZGF0YT47XG5cdC8vTWluaW11bSBjb2xsYXRlcmFsIGZyb20gY29uc2Vuc3VzIGNvbnN0YW50c1xuXHRjb2xsYXRlcmFsX21pbjogYmlnaW50O1xufTtcblxuZXhwb3J0IHR5cGUgVXR4b01ldGFkYXRhID0ge1xuXHRvdXRwdXRfcG9pbnRlcjogc3RyaW5nO1xuXHR0aW1lbG9jazogdTY0O1xuXHR1dHhvX21hdHVyZT86IGJvb2xlYW47XG5cdHZhbHVlOiBiaWdpbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBWYWx1ZVRyYW5zZmVyT3V0cHV0ID0ge1xuXHRwa2g6IEhhc2g7XG5cdHZhbHVlOiBiaWdpbnQ7XG5cdHRpbWVfbG9jazogdTY0O1xufTtcblxuLy8gQSBWUkYgUHJvb2YgaXMgYSB1bmlxdWUsIGRldGVybWluaXN0aWMgd2F5IHRvIHNpZ24gYSBtZXNzYWdlIHdpdGggYSBwdWJsaWMga2V5LlxuLy8gSXQgaXMgdXNlZCB0byBwcmV2ZW50IG9uZSBpZGVudGl0eSBmcm9tIGNyZWF0aW5nIG11bHRpcGxlIGRpZmZlcmVudCBwcm9vZnMgb2YgZWxpZ2liaWxpdHkuXG5leHBvcnQgdHlwZSBWcmZQcm9vZiA9IHtcblx0cHJvb2Y6IFVpbnQ4QXJyYXk7XG5cdHB1YmxpY19rZXk6IFVpbnQ4QXJyYXk7IC8vUHVibGljS2V5O1xufTtcblxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyAtLS0gVHJhbnNhY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUmVwb3J0ID0ge1xuXHRibG9ja0Vwb2NoOiBFcG9jaDtcblx0YmxvY2tIYXNoOiBIYXNoO1xuXHRibG9ja1RpbWVzdGFtcDogbnVtYmVyO1xuXHRjb25maXJtYXRpb25zOiBudW1iZXI7XG5cdGNvbmZpcm1lZDogYm9vbGVhbjtcblx0dHJhbnNhY3Rpb246IHtcblx0XHRSZXZlYWw/OiBEYXRhUmVxdWVzdFJldmVhbFRyYW5zYWN0aW9uO1xuXHRcdENvbW1pdD86IERhdGFSZXF1ZXN0Q29tbWl0VHJhbnNhY3Rpb247XG5cdFx0VGFsbHk/OiBEYXRhUmVxdWVzdFRhbGx5VHJhbnNhY3Rpb247XG5cdH07XG5cdHdlaWdodDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVJlcXVlc3RDb21taXRUcmFuc2FjdGlvbiA9IHtcblx0Ym9keTogRGF0YVJlcXVlc3RDb21taXRUcmFuc2FjdGlvbkJvZHk7XG5cdHNpZ25hdHVyZXM6IEFycmF5PEtleWVkU2lnbmF0dXJlPjtcbn07XG5cbmV4cG9ydCB0eXBlIERhdGFSZXF1ZXN0Q29tbWl0VHJhbnNhY3Rpb25Cb2R5ID0ge1xuXHQvLyBEYXRhUmVxdWVzdFRyYW5zYWN0aW9uIGhhc2hcblx0ZHJfcG9pbnRlcjogSGFzaDtcblx0Ly8gRGF0YVJlcXVlc3RSZXZlYWxUcmFuc2FjdGlvbiBTaWduYXR1cmUgSGFzaFxuXHRjb21taXRtZW50OiBIYXNoO1xuXHQvLyBDaGFuZ2UgZnJvbSBjb2xsYXRlcmFsLiBUaGUgb3V0cHV0IHBraCBtdXN0IGJlIHRoZSBzYW1lIGFzIHRoZSBpbnB1dHMsXG5cdC8vIGFuZCB0aGVyZSBjYW4gb25seSBiZSBvbmUgb3V0cHV0XG5cdG91dHB1dHM6IEFycmF5PFZhbHVlVHJhbnNmZXJPdXRwdXQ+O1xuXHQvLyBCTFMgcHVibGljIGtleSAoY3VydmUgYm4yNTYpXG5cdGJuMjU2X3B1YmxpY19rZXk/OiBCbjI1NlB1YmxpY0tleTtcblxuXHRoYXNoOiBIYXNoO1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVJlcXVlc3RSZXZlYWxUcmFuc2FjdGlvbiA9IHtcblx0Ym9keTogRGF0YVJlcXVlc3RSZXZlYWxUcmFuc2FjdGlvbkJvZHk7XG5cdHNpZ25hdHVyZXM6IEFycmF5PEtleWVkU2lnbmF0dXJlPjtcbn07XG5cbmV4cG9ydCB0eXBlIERhdGFSZXF1ZXN0UmV2ZWFsVHJhbnNhY3Rpb25Cb2R5ID0ge1xuXHQvLyBJbnB1dHNcblx0ZHJfcG9pbnRlcjogSGFzaDsgLy8gRFRUcmFuc2FjdGlvbiBoYXNoXG5cdC8vIE91dHB1dHNcblx0cmV2ZWFsOiBBcnJheTx1OD47XG5cdHBraDogeyBoYXNoOiBVaW50OEFycmF5IH07IC8vIHdoZXJlIHRvIHJlY2VpdmUgcmV3YXJkXG5cdGhhc2g6IEhhc2g7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhUmVxdWVzdFRhbGx5VHJhbnNhY3Rpb24gPSB7XG5cdC8vIERhdGFSZXF1ZXN0VHJhbnNhY3Rpb24gaGFzaFxuXHRkcl9wb2ludGVyOiBIYXNoO1xuXHQvLyBUYWxseSByZXN1bHRcblx0dGFsbHk6IFVpbnQ4QXJyYXk7XG5cdC8vIFdpdG5lc3MgcmV3YXJkc1xuXHRvdXRwdXRzOiBBcnJheTxWYWx1ZVRyYW5zZmVyT3V0cHV0Pjtcblx0Ly8gQWRkcmVzc2VzIHRoYXQgYXJlIG91dCBvZiBjb25zZW5zdXMgKG5vbiByZXZlYWxlcnMgaW5jbHVkZWQpXG5cdG91dF9vZl9jb25zZW5zdXM6IEFycmF5PHsgaGFzaDogVWludDhBcnJheSB9Pjtcblx0Ly8gQWRkcmVzc2VzIHRoYXQgY29tbWl0IGEgUmFkb25FcnJvciAob3IgY29uc2lkZXJlZCBhcyBhbiBFcnJvciBkdWUgdG8gYSBSYWRvbkVycm9yIGNvbnNlbnN1cylcblx0ZXJyb3JfY29tbWl0dGVyczogQXJyYXk8eyBoYXNoOiBVaW50OEFycmF5IH0+O1xuXHQvLyBUT0RPXG5cdC8vIGhhc2g6IEhhc2g7XG59O1xuXG4vLy8gTm9kZSBzdGF0c1xuZXhwb3J0IHR5cGUgTm9kZVN0YXRzID0ge1xuXHQvL051bWJlciBvZiBwcm9wb3NlZCBibG9ja3Ncblx0YmxvY2tfcHJvcG9zZWRfY291bnQ6IHUzMjtcblx0Ly9OdW1iZXIgb2YgYmxvY2tzIGluY2x1ZGVkIGluIHRoZSBibG9jayBjaGFpblxuXHRibG9ja19taW5lZF9jb3VudDogdTMyO1xuXHQvL051bWJlciBvZiB0aW1lcyB3ZSB3ZXJlIGVsaWdpYmxlIHRvIHBhcnRpY2lwYXRlIGluIGEgRGF0YSBSZXF1ZXN0XG5cdGRyX2VsaWdpYmlsaXR5X2NvdW50OiB1MzI7XG5cdC8vTnVtYmVyIG9mIHByb3Bvc2VkIGNvbW1pdHNcblx0Y29tbWl0c19wcm9wb3NlZF9jb3VudDogdTMyO1xuXHQvL051bWJlciBvZiBjb21taXRzIGluY2x1ZGVkIGluIGEgZGF0YSByZXF1ZXN0XG5cdGNvbW1pdHNfY291bnQ6IHUzMjtcblx0Ly9MYXN0IGJsb2NrIHByb3Bvc2VkXG5cdGxhc3RfYmxvY2tfcHJvcG9zZWQ6IEhhc2g7XG5cdC8vTnVtYmVyIG9mIHNsYXNoZWQgY29tbWl0c1xuXHRzbGFzaGVkX2NvdW50OiB1MzI7XG59O1xuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JwYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQU4sSUFBWSxPQW1DWDtBQW5DRCxXQUFZLE9BQU87SUFDbEIsZ0NBQXFCLENBQUE7SUFDckIsNENBQWlDLENBQUE7SUFDakMsb0NBQXlCLENBQUE7SUFDekIsa0RBQXVDLENBQUE7SUFDdkMsb0NBQXlCLENBQUE7SUFDekIsc0NBQTJCLENBQUE7SUFDM0IsMENBQStCLENBQUE7SUFDL0IsZ0NBQXFCLENBQUE7SUFDckIsMERBQStDLENBQUE7SUFDL0MsNENBQWlDLENBQUE7SUFDakMsb0NBQXlCLENBQUE7SUFDekIsNEJBQWlCLENBQUE7SUFDakIsd0NBQTZCLENBQUE7SUFDN0IsMENBQStCLENBQUE7SUFDL0IsMENBQStCLENBQUE7SUFDL0IsNENBQWlDLENBQUE7SUFDakMsNENBQWlDLENBQUE7SUFDakMsc0NBQTJCLENBQUE7SUFDM0IsZ0RBQXFDLENBQUE7SUFDckMsOENBQW1DLENBQUE7SUFDbkMsa0NBQXVCLENBQUE7SUFDdkIsb0NBQXlCLENBQUE7SUFDekIsOENBQW1DLENBQUE7SUFDbkMsa0NBQXVCLENBQUE7SUFDdkIsMEJBQWUsQ0FBQTtJQUNmLGdDQUFxQixDQUFBO0lBQ3JCLGdDQUFxQixDQUFBO0lBQ3JCLGtDQUF1QixDQUFBO0lBQ3ZCLDZDQUFrQyxDQUFBO0lBQ2xDLHNDQUEyQixDQUFBO0lBQzNCLDRCQUFpQixDQUFBO0lBQ2pCLG9EQUF5QyxDQUFBO0lBQ3pDLDBDQUErQixDQUFBO0lBQy9CLG9DQUF5QixDQUFBO0FBQzFCLENBQUMsRUFuQ1csT0FBTyxLQUFQLE9BQU8sUUFtQ2xCO0FBeUJELE1BQU0sQ0FBTixJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDeEIsZ0NBQWUsQ0FBQTtJQUNmLGdDQUFlLENBQUE7SUFDZixrQ0FBaUIsQ0FBQTtJQUNqQiwwQ0FBeUIsQ0FBQTtBQUMxQixDQUFDLEVBTFcsYUFBYSxLQUFiLGFBQWEsUUFLeEI7QUF5UEQsNkJBQTZCO0FBQzdCLE1BQU0sQ0FBTixJQUFZLGdCQU9YO0FBUEQsV0FBWSxnQkFBZ0I7SUFDM0Isd0NBQXdDO0lBQ3hDLHFDQUFpQixDQUFBO0lBQ2pCLHVEQUF1RDtJQUN2RCxxQ0FBaUIsQ0FBQTtJQUNqQix5Q0FBeUM7SUFDekMsbUNBQWUsQ0FBQTtBQUNoQixDQUFDLEVBUFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU8zQjtBQWdGRCxNQUFNLENBQU4sSUFBWSxPQUtYO0FBTEQsV0FBWSxPQUFPO0lBQ2xCLCtCQUFvQixDQUFBO0lBQ3BCLGlDQUFzQixDQUFBO0lBQ3RCLGlDQUFzQixDQUFBO0lBQ3RCLHNCQUFXLENBQUE7QUFDWixDQUFDLEVBTFcsT0FBTyxLQUFQLE9BQU8sUUFLbEI7QUF3QkQsZ0VBQWdFO0FBQ2hFLE1BQU0sQ0FBTixJQUFZLFlBV1g7QUFYRCxXQUFZLFlBQVk7SUFDdkIsaUZBQWlGO0lBQ2pGLHFEQUFxQyxDQUFBO0lBQ3JDLHFEQUFxRDtJQUNyRCxnREFBZ0MsQ0FBQTtJQUNoQyxvRkFBb0Y7SUFDcEYsK0NBQStDO0lBQy9DLDZDQUE2QixDQUFBO0lBQzdCLGlGQUFpRjtJQUNqRiwrRUFBK0U7SUFDL0UsaUNBQWlCLENBQUE7QUFDbEIsQ0FBQyxFQVhXLFlBQVksS0FBWixZQUFZLFFBV3ZCO0FBNkJELE1BQU0sQ0FBTixJQUFZLGlCQUdYO0FBSEQsV0FBWSxpQkFBaUI7SUFDNUIsc0NBQWlCLENBQUE7SUFDakIsOENBQXlCLENBQUE7QUFDMUIsQ0FBQyxFQUhXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFHNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFB1YmxpY0tleUhhc2hTdHJpbmcgfSBmcm9tIFwiLi4vY3J5cHRvL3R5cGVzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEVwb2NoLCBmNjQsIEhhc2gsIGk2NCwgdTgsIHUxNiwgdTMyLCB1NjQsIHVzaXplIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCBlbnVtIE1ldGhvZHMge1xuXHRBZGRQZWVycyA9IFwiYWRkUGVlcnNcIixcblx0QXV0aG9yaXplU3Rha2UgPSBcImF1dGhvcml6ZVN0YWtlXCIsXG5cdENsZWFyUGVlcnMgPSBcImNsZWFyUGVlcnNcIixcblx0RGF0YVJlcXVlc3RSZXBvcnQgPSBcImRhdGFSZXF1ZXN0UmVwb3J0XCIsXG5cdEdldEJhbGFuY2UgPSBcImdldEJhbGFuY2VcIixcblx0R2V0QmFsYW5jZTIgPSBcImdldEJhbGFuY2UyXCIsXG5cdEdldEJsb2NrQ2hhaW4gPSBcImdldEJsb2NrQ2hhaW5cIixcblx0R2V0QmxvY2sgPSBcImdldEJsb2NrXCIsXG5cdEdldENvbnNlbnN1c0NvbnN0YW50cyA9IFwiZ2V0Q29uc2Vuc3VzQ29uc3RhbnRzXCIsXG5cdEdldERhdGFSZXF1ZXN0ID0gXCJnZXREYXRhUmVxdWVzdFwiLFxuXHRHZXRNZW1wb29sID0gXCJnZXRNZW1wb29sXCIsXG5cdEdldFBraCA9IFwiZ2V0UGtoXCIsXG5cdEdldFB1YmxpY0tleSA9IFwiZ2V0UHVibGljS2V5XCIsXG5cdEdldFN1cGVyYmxvY2sgPSBcImdldFN1cGVyYmxvY2tcIixcblx0R2V0U3VwcGx5SW5mbyA9IFwiZ2V0U3VwcGx5SW5mb1wiLFxuXHRHZXRTdXBwbHlJbmZvMiA9IFwiZ2V0U3VwcGx5SW5mbzJcIixcblx0R2V0VHJhbnNhY3Rpb24gPSBcImdldFRyYW5zYWN0aW9uXCIsXG5cdEdldFV0eG9JbmZvID0gXCJnZXRVdHhvSW5mb1wiLFxuXHRHZXRWYWx1ZVRyYW5zZmVyID0gXCJnZXRWYWx1ZVRyYW5zZmVyXCIsXG5cdEluaXRpYWxpemVQZWVycyA9IFwiaW5pdGlhbGl6ZVBlZXJzXCIsXG5cdEludmVudG9yeSA9IFwiaW52ZW50b3J5XCIsXG5cdEtub3duUGVlcnMgPSBcImtub3duUGVlcnNcIixcblx0TWFzdGVyS2V5RXhwb3J0ID0gXCJtYXN0ZXJLZXlFeHBvcnRcIixcblx0Tm9kZVN0YXRzID0gXCJub2RlU3RhdHNcIixcblx0UGVlcnMgPSBcInBlZXJzXCIsXG5cdFByaW9yaXR5ID0gXCJwcmlvcml0eVwiLFxuXHRQcm90b2NvbCA9IFwicHJvdG9jb2xcIixcblx0UHJvdmlkZXJzID0gXCJwcm92aWRlcnNcIixcblx0UXVlcnlTdGFraW5nUG93ZXJzID0gXCJxdWVyeVBvd2Vyc1wiLFxuXHRRdWVyeVN0YWtlcyA9IFwicXVlcnlTdGFrZXNcIixcblx0UmV3aW5kID0gXCJyZXdpbmRcIixcblx0U2VhcmNoRGF0YVJlcXVlc3RzID0gXCJzZWFyY2hEYXRhUmVxdWVzdHNcIixcblx0U2lnbmFsaW5nSW5mbyA9IFwic2lnbmFsaW5nSW5mb1wiLFxuXHRTeW5jU3RhdHVzID0gXCJzeW5jU3RhdHVzXCIsXG59XG5cbmV4cG9ydCB0eXBlIE5ldHdvcmsgPSBcIm1haW5uZXRcIiB8IFwidGVzdG5ldFwiO1xuXG5leHBvcnQgdHlwZSBRdWVyeVN0YWtlcyA9IHtcblx0ZmlsdGVyPzoge1xuXHRcdHZhbGlkYXRvcj86IFB1YmxpY0tleUhhc2hTdHJpbmc7XG5cdFx0d2l0aGRyYXdlcj86IFB1YmxpY0tleUhhc2hTdHJpbmc7XG5cdH07XG5cdHBhcmFtcz86IFF1ZXJ5U3Rha2VzUGFyYW1zO1xufTtcblxuZXhwb3J0IHR5cGUgUXVlcnlTdGFrZXNQYXJhbXMgPSB7XG5cdGRpc3RpbmN0PzogYm9vbGVhbjtcblx0bGltaXQ/OiBudW1iZXI7XG5cdG9mZnNldD86IG51bWJlcjtcblx0b3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyO1xuXHRzaW5jZT86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5U3Rha2VzT3JkZXIgPSB7XG5cdGJ5OiBTdGFrZXNPcmRlckJ5O1xuXHRyZXZlcnNlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBlbnVtIFN0YWtlc09yZGVyQnkge1xuXHRDb2lucyA9IFwiY29pbnNcIixcblx0Tm9uY2UgPSBcIm5vbmNlXCIsXG5cdE1pbmluZyA9IFwibWluaW5nXCIsXG5cdFdpdG5lc3NpbmcgPSBcIndpdG5lc3NpbmdcIixcbn1cblxuZXhwb3J0IHR5cGUgUXVlcnlTdGFraW5nUG93ZXJzID0ge1xuXHRkaXN0aW5jdD86IGJvb2xlYW47XG5cdGxpbWl0PzogbnVtYmVyO1xuXHRvZmZzZXQ/OiBudW1iZXI7XG5cdG9yZGVyQnk/OiBTdGFraW5nQ2FwYWJpbGl0eTtcbn07XG5cbi8vIFN0cnVjdHVyZSB0aGF0IHRoZSBpbmNsdWRlcyB0aGUgY29uZmlybWVkIGFuZCBwZW5kaW5nIGJhbGFuY2Ugb2YgYSBub2RlXG5leHBvcnQgdHlwZSBCYWxhbmNlID0ge1xuXHQvL1RvdGFsIGFtb3VudCBvZiBhIG5vZGUncyBmdW5kcyBhZnRlciBsYXN0IGNvbmZpcm1lZCBzdXBlcmJsb2NrXG5cdGNvbmZpcm1lZD86IGJpZ2ludDtcblx0Ly9Ub3RhbCBhbW91bnQgb2Ygbm9kZSdzIGZ1bmRzIGFmdGVyIGxhc3QgYmxvY2tcblx0dG90YWw6IGJpZ2ludDtcbn07XG5cbi8vIEJhbGFuY2Ugc3RydWN0IGluIFdpdC8yIGNvbnRhaW5pbmcgbG9ja2VkLCB1bmxvY2tlZCBhbmQgc3Rha2VkIGJhbGFuY2VcbmV4cG9ydCB0eXBlIEJhbGFuY2UyID0ge1xuXHRsb2NrZWQ6IGJpZ2ludDtcblx0c3Rha2VkOiBiaWdpbnQ7XG5cdHVubG9ja2VkOiBiaWdpbnQ7XG59O1xuXG4vL1N0cnVjdCB0aGF0IGNvdW50IHRoZSBwb3NpdGl2ZXMgdm90ZXMgb2YgYSBXSVBcbmV4cG9ydCB0eXBlIEJpdFZvdGVzQ291bnRlciA9IHtcblx0dm90ZXM6IHUzMjtcblx0cGVyaW9kOiBFcG9jaDtcblx0d2lwOiBzdHJpbmc7XG5cdGluaXQ6IEVwb2NoO1xuXHRlbmQ6IEVwb2NoO1xuXHRiaXQ6IHVzaXplO1xufTtcblxuLy8gQmxvY2sgZGF0YSBzdHJ1Y3R1cmVcbmV4cG9ydCB0eXBlIEJsb2NrID0ge1xuXHRibG9ja19oZWFkZXI6IEJsb2NrSGVhZGVyO1xuXHRibG9ja19zaWc6IEtleWVkU2lnbmF0dXJlO1xuXHRibG9ja193ZWlnaHQ6IG51bWJlcjtcblx0Y29uZmlybWVkOiBib29sZWFuO1xuXHRkcl93ZWlnaHQ6IG51bWJlcjtcblx0Ly8gdHhuczogQmxvY2tUcmFuc2FjdGlvbnM7XG5cdHR4bnNfaGFzaGVzPzogQmxvY2tUcmFuc2FjdGlvbnNIYXNoZXM7XG5cdHZ0X3dlaWdodDogbnVtYmVyO1xufTtcblxuLy8gQmxvY2sgbWluaW5nIGVsaWdpYmlsaXR5IGNsYWltXG5leHBvcnQgdHlwZSBCbG9ja0VsaWdpYmlsaXR5Q2xhaW0gPSB7XG5cdC8vIEEgVmVyaWZpYWJsZSBSYW5kb20gRnVuY3Rpb24gcHJvb2Ygb2YgdGhlIGVsaWdpYmlsaXR5IGZvciBhIGdpdmVuIGVwb2NoIGFuZCBwdWJsaWMga2V5XG5cdHByb29mOiBWcmZQcm9vZjtcbn07XG5cbi8vIEJsb2NrIGhlYWRlciBzdHJ1Y3R1cmVcbmV4cG9ydCB0eXBlIEJsb2NrSGVhZGVyID0ge1xuXHQvLyBBIGNoZWNrcG9pbnQgYmVhY29uIGZvciB0aGUgZXBvY2ggdGhhdCB0aGlzIGJsb2NrIGlzIGNsb3Npbmdcblx0YmVhY29uOiBDaGVja3BvaW50QmVhY29uO1xuXHQvLyBUaGUgQm4yNTYgcHVibGljIGtleVxuXHRibjI1Nl9wdWJsaWNfa2V5PzogQm4yNTZQdWJsaWNLZXk7XG5cdC8vIDI1Ni1iaXQgaGFzaGVzIG9mIGFsbCBvZiB0aGUgdHJhbnNhY3Rpb25zIGNvbW1pdHRlZCB0byB0aGlzIGJsb2NrLCBzbyBhcyB0byBwcm92ZSB0aGVpciBiZWxvbmdpbmcgYW5kIGludGVncml0eVxuXHRtZXJrbGVfcm9vdHM6IEJsb2NrTWVya2xlUm9vdHM7XG5cdC8vIEEgbWluZXItcHJvdmlkZWQgcHJvb2Ygb2YgbGVhZGVyc2hpcFxuXHRwcm9vZjogQmxvY2tFbGlnaWJpbGl0eUNsYWltO1xuXHQvLyAzMiBiaXRzIGZvciBiaW5hcnkgc2lnbmFsaW5nIG5ldyB3aXRuZXQgcHJvdG9jb2wgaW1wcm92ZW1lbnRzLlxuXHQvLyBTZWUgW1dJUC0wMDE0XShodHRwczovL2dpdGh1Yi5jb20vd2l0bmV0L1dJUHMvYmxvYi9tYXN0ZXIvd2lwLTAwMTQubWQpIGZvciBtb3JlIGluZm8uXG5cdHNpZ25hbHM6IHUzMjtcbn07XG5cbi8vIEJsb2NrIG1lcmtsZSB0cmVlIHJvb3RzXG5leHBvcnQgdHlwZSBCbG9ja01lcmtsZVJvb3RzID0ge1xuXHQvLyBBIDI1Ni1iaXQgaGFzaCBiYXNlZCBvbiBhbGwgb2YgdGhlIGNvbW1pdCB0cmFuc2FjdGlvbnMgY29tbWl0dGVkIHRvIHRoaXMgYmxvY2tcblx0Y29tbWl0X2hhc2hfbWVya2xlX3Jvb3Q6IEhhc2g7XG5cdC8vIEEgMjU2LWJpdCBoYXNoIGJhc2VkIG9uIGFsbCBvZiB0aGUgZGF0YSByZXF1ZXN0IHRyYW5zYWN0aW9ucyBjb21taXR0ZWQgdG8gdGhpcyBibG9ja1xuXHRkcl9oYXNoX21lcmtsZV9yb290OiBIYXNoO1xuXHQvLyBBIDI1Ni1iaXQgaGFzaCBiYXNlZCBvbiB0aGUgbWludCB0cmFuc2FjdGlvbiBjb21taXR0ZWQgdG8gdGhpcyBibG9ja1xuXHRtaW50X2hhc2g6IEhhc2g7XG5cdC8vIEEgMjU2LWJpdCBoYXNoIGJhc2VkIG9uIGFsbCBvZiB0aGUgcmV2ZWFsIHRyYW5zYWN0aW9ucyBjb21taXR0ZWQgdG8gdGhpcyBibG9ja1xuXHRyZXZlYWxfaGFzaF9tZXJrbGVfcm9vdDogSGFzaDtcblx0Ly8gQSAyNTYtYml0IGhhc2ggYmFzZWQgb24gYWxsIG9mIHRoZSB0YWxseSB0cmFuc2FjdGlvbnMgY29tbWl0dGVkIHRvIHRoaXMgYmxvY2tcblx0dGFsbHlfaGFzaF9tZXJrbGVfcm9vdDogSGFzaDtcblx0Ly8gQSAyNTYtYml0IGhhc2ggYmFzZWQgb24gYWxsIG9mIHRoZSB2YWx1ZSB0cmFuc2ZlciB0cmFuc2FjdGlvbnMgY29tbWl0dGVkIHRvIHRoaXMgYmxvY2tcblx0dnRfaGFzaF9tZXJrbGVfcm9vdDogSGFzaDtcbn07XG5cbmV4cG9ydCB0eXBlIEJsb2NrVHJhbnNhY3Rpb25zSGFzaGVzID0ge1xuXHRjb21taXQ6IEFycmF5PEhhc2g+O1xuXHRkYXRhX3JlcXVlc3Q6IEFycmF5PEhhc2g+O1xuXHRtaW50OiBIYXNoO1xuXHRyZXZlYWw6IEFycmF5PEhhc2g+O1xuXHR0YWxseTogQXJyYXk8SGFzaD47XG5cdHZhbHVlX3RyYW5zZmVyOiBBcnJheTxIYXNoPjtcbn07XG5cbi8vIEJOMjU2IHB1YmxpYyBrZXlcbmV4cG9ydCB0eXBlIEJuMjU2UHVibGljS2V5ID0ge1xuXHQvLyBDb21wcmVzc2VkIGZvcm0gb2YgYSBCTjI1NiBwdWJsaWMga2V5XG5cdHB1YmxpY19rZXk6IEFycmF5PHU4Pjtcblx0Ly8gQ2FjaGVkIHVuY29tcHJlc3NlZCBmb3JtXG5cdHVuY29tcHJlc3NlZDogQXJyYXk8dTg+O1xufTtcblxuZXhwb3J0IHR5cGUgQ2hlY2twb2ludEJlYWNvbiA9IHtcblx0Ly8gVGhlIHNlcmlhbCBudW1iZXIgZm9yIGFuIGVwb2NoXG5cdGNoZWNrcG9pbnQ6IEVwb2NoO1xuXHQvLyBUaGUgMjU2LWJpdCBoYXNoIG9mIHRoZSBwcmV2aW91cyBibG9jayBoZWFkZXJcblx0aGFzaFByZXZCbG9jazogSGFzaDtcbn07XG5cbi8vIFByb3RvY29sJ3MgY29uc2Vuc3VzIGNvbnN0YW50c1xuZXhwb3J0IHR5cGUgQ29uc2Vuc3VzQ29uc3RhbnRzID0ge1xuXHQvL0FuIGlkZW50aXR5IGlzIGNvbnNpZGVyZWQgYWN0aXZlIGlmIGl0IHBhcnRpY2lwYXRlZCBpbiB0aGUgd2l0bmVzc2luZyBwcm90b2NvbCBhdCBsZWFzdCBvbmNlIGluIHRoZSBsYXN0IGBhY3Rpdml0eV9wZXJpb2RgIGVwb2Noc1xuXHRhY3Rpdml0eV9wZXJpb2Q6IHUzMjtcblxuXHQvL0F1eGlsaWFyeSBib290c3RyYXAgYmxvY2sgaGFzaCB2YWx1ZVxuXHRib290c3RyYXBfaGFzaDogSGFzaDtcblxuXHQvL1N1cGVyYmxvY2sgc2lnbmluZyBjb21taXR0ZWUgZm9yIHRoZSBmaXJzdCBzdXBlcmJsb2Nrc1xuXHRib290c3RyYXBwaW5nX2NvbW1pdHRlZTogQXJyYXk8c3RyaW5nPjtcblxuXHQvL1RpbWVzdGFtcCBhdCBjaGVja3BvaW50IDAgKHRoZSBzdGFydCBvZiBlcG9jaCAwKVxuXHRjaGVja3BvaW50X3plcm9fdGltZXN0YW1wOiBpNjQ7XG5cblx0Ly9TZWNvbmRzIGJldHdlZW4gdGhlIHN0YXJ0IG9mIGFuIGVwb2NoIGFuZCB0aGUgc3RhcnQgb2YgdGhlIG5leHQgb25lXG5cdGNoZWNrcG9pbnRzX3BlcmlvZDogdTE2O1xuXG5cdC8vTWluaW11bSBpbnB1dCBhZ2Ugb2YgYW4gVVRYTyBmb3IgYmVpbmcgYSB2YWxpZCBjb2xsYXRlcmFsXG5cdGNvbGxhdGVyYWxfYWdlOiB1MzI7XG5cblx0Ly9NaW5pbXVtIHZhbHVlIGluIG5hbm93aXRzIGZvciBhIGNvbGxhdGVyYWwgdmFsdWVcblx0Y29sbGF0ZXJhbF9taW5pbXVtOiBiaWdpbnQ7XG5cblx0Ly9OdW1iZXIgb2YgZXBvY2hzIHdpdGggdGhlIG1pbmltdW0gZGlmZmljdWx0eSBhY3RpdmVcblx0Ly8oVGhpcyBudW1iZXIgcmVwcmVzZW50IHRoZSBsYXN0IGVwb2NoIHdoZXJlIHRoZSBtaW5pbXVtIGRpZmZpY3VsdHkgaXMgYWN0aXZlKVxuXHRlcG9jaHNfd2l0aF9taW5pbXVtX2RpZmZpY3VsdHk6IHUzMjtcblxuXHQvL0V4dHJhIHJvdW5kcyBmb3IgY29tbWl0bWVudHMgYW5kIHJldmVhbHNcblx0ZXh0cmFfcm91bmRzOiB1MTY7XG5cblx0Ly9HZW5lc2lzIGJsb2NrIGhhc2ggdmFsdWVcblx0Z2VuZXNpc19oYXNoOiBIYXNoO1xuXG5cdC8vSGFsdmluZyBwZXJpb2Rcblx0aGFsdmluZ19wZXJpb2Q6IHUzMjtcblxuXHQvL0luaXRpYWwgYmxvY2sgcmV3YXJkXG5cdGluaXRpYWxfYmxvY2tfcmV3YXJkOiB1NjQ7XG5cblx0Ly9NYXhpbXVtIHdlaWdodCBhIGJsb2NrIGNhbiBoYXZlLCB0aGlzIGFmZmVjdHMgdGhlIG51bWJlciBvZlxuXHQvL3RyYW5zYWN0aW9ucyBhIGJsb2NrIGNhbiBjb250YWluOiB0aGVyZSB3aWxsIGJlIGFzIG1hbnlcblx0Ly90cmFuc2FjdGlvbnMgYXMgdGhlIHN1bSBvZiBfdGhlaXJfIHdlaWdodHMgaXMgbGVzcyB0aGFuLCBvclxuXHQvL2VxdWFsIHRvLCB0aGlzIG1heGltdW0gYmxvY2sgd2VpZ2h0IHBhcmFtZXRlci5cblx0Ly9cblx0Ly9NYXhpbXVtIGFnZ3JlZ2F0ZWQgd2VpZ2h0IG9mIGFsbCB0aGUgZGF0YSByZXF1ZXN0cyB0cmFuc2FjdGlvbnMgaW4gb25lIGJsb2NrXG5cdG1heF9kcl93ZWlnaHQ6IHUzMjtcblx0Ly9cblx0Ly9NYXhpbXVtIGFnZ3JlZ2F0ZWQgd2VpZ2h0IG9mIGFsbCB0aGUgdmFsdWUgdHJhbnNmZXIgdHJhbnNhY3Rpb25zIGluIG9uZSBibG9ja1xuXHRtYXhfdnRfd2VpZ2h0OiB1MzI7XG5cblx0Ly9NaW5pbXVtIGRpZmZpY3VsdHlcblx0bWluaW11bV9kaWZmaWN1bHR5OiB1MzI7XG5cblx0Ly9CYWNrdXAgZmFjdG9yIGZvciBtaW5pbmc6IHZhbGlkIFZSRnMgdW5kZXIgdGhpcyBmYWN0b3Igd2lsbCByZXN1bHQgaW4gYnJvYWRjYXN0aW5nIGEgYmxvY2tcblx0bWluaW5nX2JhY2t1cF9mYWN0b3I6IHUzMjtcblxuXHQvL1JlcGxpY2F0aW9uIGZhY3RvciBmb3IgbWluaW5nOiB2YWxpZCBWUkZzIHVuZGVyIHRoaXMgZmFjdG9yIHdpbGwgaGF2ZSBwcmlvcml0eVxuXHRtaW5pbmdfcmVwbGljYXRpb25fZmFjdG9yOiB1MzI7XG5cblx0Ly9SZXB1dGF0aW9uIHdpbGwgZXhwaXJlIGFmdGVyIE4gd2l0bmVzc2luZyBhY3RzXG5cdHJlcHV0YXRpb25fZXhwaXJlX2FscGhhX2RpZmY6IHUzMjtcblxuXHQvL1JlcHV0YXRpb24gaXNzdWFuY2Vcblx0cmVwdXRhdGlvbl9pc3N1YW5jZTogdTMyO1xuXG5cdC8vV2hlbiB0byBzdG9wIGlzc3VpbmcgbmV3IHJlcHV0YXRpb25cblx0cmVwdXRhdGlvbl9pc3N1YW5jZV9zdG9wOiB1MzI7XG5cblx0Ly9QZW5hbGl6YXRpb24gZmFjdG9yOiBmcmFjdGlvbiBvZiByZXB1dGF0aW9uIGxvc3QgYnkgbGlhcnMgZm9yIG91dCBvZiBjb25zZW5zdXMgY2xhaW1zXG5cdC8vIEZJWE1FKCMxNzIpOiBVc2UgZml4ZWQgcG9pbnQgYXJpdGhtZXRpY1xuXHRyZXB1dGF0aW9uX3BlbmFsaXphdGlvbl9mYWN0b3I6IGY2NDtcblxuXHQvL1BlcmlvZCBhZnRlciB3aGljaCB0aGUgY29tbWl0dGVlIHNpemUgc2hvdWxkIGRlY3JlYXNlIChpbiBzdXBlcmJsb2NrIHBlcmlvZHMpXG5cdHN1cGVyYmxvY2tfY29tbWl0dGVlX2RlY3JlYXNpbmdfcGVyaW9kOiB1MzI7XG5cblx0Ly9TdGVwIGJ5IHdoaWNoIHRoZSBjb21taXR0ZWUgc2hvdWxkIGJlIHJlZHVjZWQgYWZ0ZXIgc3VwZXJibG9ja19hZ3JlZW1lbnRfZGVjcmVhc2luZ19wZXJpb2Rcblx0c3VwZXJibG9ja19jb21taXR0ZWVfZGVjcmVhc2luZ19zdGVwOiB1MzI7XG5cblx0Ly9CdWlsZCBhIHN1cGVyYmxvY2sgZXZlcnkgYHN1cGVyYmxvY2tfcGVyaW9kYCBlcG9jaHNcblx0c3VwZXJibG9ja19wZXJpb2Q6IHUxNjtcblxuXHQvL1NpemUgb2YgdGhlIHN1cGVyYmxvY2sgc2lnbmluZyBjb21taXR0ZWVcblx0c3VwZXJibG9ja19zaWduaW5nX2NvbW1pdHRlZV9zaXplOiB1MzI7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhUmVxdWVzdFBheWxvYWQgPSB7XG5cdGRhdGFSZXF1ZXN0OiBSQURSZXF1ZXN0O1xuXHR3aXRuZXNzX3Jld2FyZDogbnVtYmVyO1xuXHR3aXRuZXNzZXM6IG51bWJlcjtcblx0Y29tbWl0QW5kUmV2ZWFsRmVlOiBudW1iZXI7XG5cdG1pbkNvbnNlbnN1c1BlcmNlbnRhZ2U6IG51bWJlcjtcblx0Y29sbGF0ZXJhbDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVJlcXVlc3RTdGF0dXMgPSBcImNhbmNlbGxlZFwiIHwgXCJwZW5kaW5nXCIgfCBcImNvbW1pdHRpbmdcIiB8IFwicmV2ZWFsaW5nXCIgfCBcInNvbHZlZFwiIHwgXCJyZXZlcnRlZFwiO1xuXG5leHBvcnQgdHlwZSBHZXREYXRhUmVxdWVzdE1vZGUgPSBcImZ1bGxcIiB8IFwiZXRoZXJlYWxcIjtcblxuLy8gTGlzdCBvZiBvdXRwdXRzIHJlbGF0ZWQgdG8gYSBkYXRhIHJlcXVlc3RcbmV4cG9ydCB0eXBlIEdldERhdGFSZXF1ZXN0RnVsbFJlcG9ydCA9IHtcblx0c3RhdHVzOiBEYXRhUmVxdWVzdFN0YXR1cztcblx0cmVwb3J0OiB7XG5cdFx0Ly8gTGlzdCBvZiBjb21taXRtZW50cyB0byByZXNvbHZlIHRoZSBkYXRhIHJlcXVlc3Rcblx0XHRjb21taXRzOiBSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgRGF0YVJlcXVlc3RDb21taXRUcmFuc2FjdGlvbj47XG5cdFx0Ly9MaXN0IG9mIHJldmVhbHMgdG8gdGhlIGNvbW1pdG1lbnRzIChjb250YWlucyB0aGUgZGF0YSByZXF1ZXN0IHdpdG5ldCByZXN1bHQpXG5cdFx0cmV2ZWFsczogUmVjb3JkPFB1YmxpY0tleUhhc2hTdHJpbmcsIERhdGFSZXF1ZXN0UmV2ZWFsVHJhbnNhY3Rpb24+O1xuXHRcdC8vVGFsbHkgb2YgZGF0YSByZXF1ZXN0IChjb250YWlucyBmaW5hbCByZXN1bHQpXG5cdFx0dGFsbHk/OiBEYXRhUmVxdWVzdFRhbGx5VHJhbnNhY3Rpb247XG5cdFx0Ly9IYXNoIG9mIHRoZSBibG9jayB3aXRoIHRoZSBEYXRhUmVxdWVzdFRyYW5zYWN0aW9uXG5cdFx0YmxvY2tfaGFzaF9kcl90eD86IEhhc2g7XG5cdFx0Ly9IYXNoIG9mIHRoZSBibG9jayB3aXRoIHRoZSBUYWxseVRyYW5zYWN0aW9uXG5cdFx0YmxvY2tfaGFzaF90YWxseV90eD86IEhhc2g7XG5cdFx0Ly9DdXJyZW50IGNvbW1pdCByb3VuZFxuXHRcdGN1cnJlbnRfY29tbWl0X3JvdW5kOiB1MTY7XG5cdFx0Ly9DdXJyZW50IHJldmVhbCByb3VuZFxuXHRcdGN1cnJlbnRfcmV2ZWFsX3JvdW5kOiB1MTY7XG5cdFx0Ly9DdXJyZW50IHN0YWdlLCBvciBOb25lIGlmIGZpbmlzaGVkXG5cdFx0Y3VycmVudF9zdGFnZT86IERhdGFSZXF1ZXN0U3RhZ2U7XG5cdH07XG59O1xuXG5leHBvcnQgdHlwZSBHZXREYXRhUmVxdWVzdEV0aGVyZWFsUmVwb3J0ID0ge1xuXHRibG9ja19lcG9jaD86IG51bWJlcjtcblx0YmxvY2tfaGFzaD86IEhhc2g7XG5cdGNvbmZpcm1hdGlvbnM/OiBudW1iZXI7XG5cdGhhc2g/OiBIYXNoO1xuXHRxdWVyeT86IHtcblx0XHRkcm9faGFzaDogSGFzaDtcblx0XHRyYWRfaGFzaDogSGFzaDtcblx0XHRyYWRfYnl0ZWNvZGU6IHN0cmluZztcblx0XHRjb2xsYXRlcmFsX3JhdGlvOiBudW1iZXI7XG5cdFx0dW5pdGFyeV9yZXdhcmQ6IGJpZ2ludDtcblx0XHR3aXRuZXNzZXM6IG51bWJlcjtcblx0fTtcblx0cmVzdWx0Pzoge1xuXHRcdGNib3JfYnl0ZXM6IHN0cmluZztcblx0XHRmaW5hbGl6ZWQ6IGJvb2xlYW47XG5cdFx0dGltZXN0YW1wOiBudW1iZXI7XG5cdH07XG5cdHN0YWdlOiBEYXRhUmVxdWVzdFN0YXR1cztcbn07XG5cbi8vIERhdGEgcmVxdWVzdCBjdXJyZW50IHN0YWdlXG5leHBvcnQgZW51bSBEYXRhUmVxdWVzdFN0YWdlIHtcblx0Ly9FeHBlY3RpbmcgY29tbWl0bWVudHMgZm9yIGRhdGEgcmVxdWVzdFxuXHRDT01NSVQgPSBcIkNPTU1JVFwiLFxuXHQvL0V4cGVjdGluZyByZXZlYWxzIHRvIHByZXZpb3VzbHkgcHVibGlzaGVkIGNvbW1pdG1lbnRzXG5cdFJFVkVBTCA9IFwiUkVWRUFMXCIsXG5cdC8vRXhwZWN0aW5nIHRhbGx5IHRvIGJlIGluY2x1ZGVkIGluIGJsb2NrXG5cdFRBTExZID0gXCJUQUxMWVwiLFxufVxuXG5leHBvcnQgdHlwZSBQcmlvcml0eUVzdGltYXRlID0ge1xuXHRwcmlvcml0eTogZjY0O1xuXHR0aW1lX3RvX2Jsb2NrOiB1NjQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcmlvcml0aWVzID0ge1xuXHRkcnRfc3Rpbmt5OiBQcmlvcml0eUVzdGltYXRlO1xuXHRkcnRfbG93OiBQcmlvcml0eUVzdGltYXRlO1xuXHRkcnRfbWVkaXVtOiBQcmlvcml0eUVzdGltYXRlO1xuXHRkcnRfaGlnaDogUHJpb3JpdHlFc3RpbWF0ZTtcblx0ZHJ0X29wdWxlbnQ6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHN0X3N0aW5reTogUHJpb3JpdHlFc3RpbWF0ZTtcblx0c3RfbG93OiBQcmlvcml0eUVzdGltYXRlO1xuXHRzdF9tZWRpdW06IFByaW9yaXR5RXN0aW1hdGU7XG5cdHN0X2hpZ2g6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHN0X29wdWxlbnQ6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHV0X3N0aW5reTogUHJpb3JpdHlFc3RpbWF0ZTtcblx0dXRfbG93OiBQcmlvcml0eUVzdGltYXRlO1xuXHR1dF9tZWRpdW06IFByaW9yaXR5RXN0aW1hdGU7XG5cdHV0X2hpZ2g6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHV0X29wdWxlbnQ6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHZ0dF9zdGlua3k6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHZ0dF9sb3c6IFByaW9yaXR5RXN0aW1hdGU7XG5cdHZ0dF9tZWRpdW06IFByaW9yaXR5RXN0aW1hdGU7XG5cdHZ0dF9oaWdoOiBQcmlvcml0eUVzdGltYXRlO1xuXHR2dHRfb3B1bGVudDogUHJpb3JpdHlFc3RpbWF0ZTtcbn07XG5cbmV4cG9ydCB0eXBlIEtleWVkU2lnbmF0dXJlID0ge1xuXHQvLyBTaWduYXR1cmVcblx0c2lnbmF0dXJlOiBTaWduYXR1cmU7XG5cdC8vIFB1YmxpYyBrZXlcblx0cHVibGljX2tleToge1xuXHRcdGNvbXByZXNzZWQ6IG51bWJlcjtcblx0XHRieXRlczogQXJyYXk8dTg+O1xuXHR9O1xufTtcblxuLy8gUmVzdWx0IG9mIEdldE1lbXBvb2wgbWVzc2FnZTogbGlzdCBvZiBwZW5kaW5nIHRyYW5zYWN0aW9ucyBjYXRlZ29yaXplZCBieSB0eXBlXG5leHBvcnQgdHlwZSBNZW1wb29sID0ge1xuXHQvLyBQZW5kaW5nIHZhbHVlIHRyYW5zZmVyIHRyYW5zYWN0aW9uc1xuXHR2YWx1ZV90cmFuc2ZlcjogQXJyYXk8SGFzaD47XG5cdC8vIFBlbmRpbmcgZGF0YSByZXF1ZXN0IHRyYW5zYWN0aW9uc1xuXHRkYXRhX3JlcXVlc3Q6IEFycmF5PEhhc2g+O1xufTtcblxuLy8gTmFtZWQgdHVwbGUgb2YgYChhZGRyZXNzLCB0eXBlKWBcbmV4cG9ydCB0eXBlIFBlZXJBZGRyID0ge1xuXHQvL1NvY2tldCBhZGRyZXNzIG9mIHRoZSBwZWVyXG5cdGFkZHJlc3M6IHN0cmluZztcblx0Ly8gXCJpbmJvdW5kXCIgfCBcIm91dGJvdW5kXCIgd2hlbiBhc2tpbmcgZm9yIGNvbm5lY3RlZCBwZWVycywgb3Jcblx0Ly8gXCJuZXdcIiB8IFwidHJpZWRcIiB3aGVuIGFza2luZyBmb3IgYWxsIHRoZSBrbm93biBwZWVyc1xuXHR0eXBlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBQcm90b2NvbEluZm8gPSB7XG5cdGFsbF9jaGVja3BvaW50c19wZXJpb2RzOiBSZWNvcmQ8c3RyaW5nLCB1OD47XG5cdGFsbF92ZXJzaW9uczoge1xuXHRcdGVmdjogUmVjb3JkPHN0cmluZywgRXBvY2g+O1xuXHRcdHZmZTogUmVjb3JkPEVwb2NoLCBzdHJpbmc+O1xuXHR9O1xuXHRjdXJyZW50X3ZlcnNpb246IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFJBREFnZ3JlZ2F0ZSA9IHsgZmlsdGVyczogQXJyYXk8UkFERmlsdGVyPjsgcmVkdWNlcjogdTMyIH07XG5leHBvcnQgdHlwZSBSQURGaWx0ZXIgPSB7IG9wOiB1MzI7IGFyZ3M6IEFycmF5PHU4PiB9O1xuZXhwb3J0IHR5cGUgUkFEUmVxdWVzdCA9IHtcblx0dGltZUxvY2s6IG51bWJlcjtcblx0cmV0cmlldmU6IEFycmF5PFJBRFJldHJpZXZlPjtcblx0YWdncmVnYXRlOiBSQURBZ2dyZWdhdGU7XG5cdHRhbGx5OiBSQURUYWxseTtcbn07XG5leHBvcnQgdHlwZSBSQURSZXRyaWV2ZSA9IHsgdHlwZTogUkFEVHlwZTsgdXJsOiBzdHJpbmc7IHNjcmlwdDogQXJyYXk8dTg+IH07XG5leHBvcnQgdHlwZSBSQURUYWxseSA9IHtcblx0ZmlsdGVyczogQXJyYXk8UkFERmlsdGVyPjtcblx0cmVkdWNlcjogdTMyO1xufTtcblxuZXhwb3J0IGVudW0gUkFEVHlwZSB7XG5cdEh0dHBHZXQgPSBcIkhUVFAtR0VUXCIsXG5cdEh0dHBQb3N0ID0gXCJIVFRQLVBPU1RcIixcblx0SHR0cEhlYWQgPSBcIkhUVFAtSEVBRFwiLFxuXHRSbmcgPSBcIlJOR1wiLFxufVxuXG4vLyBFQ0RTQSAob3ZlciBzZWNwMjU2azEpIHNpZ25hdHVyZVxuZXhwb3J0IHR5cGUgU2VjcDI1NmsxU2lnbmF0dXJlID0ge1xuXHQvLyBUaGUgc2lnbmF0dXJlIHNlcmlhbGl6ZWQgaW4gREVSXG5cdGRlcjogQXJyYXk8dTg+O1xufTtcblxuLy9SZXN1bHQgb2YgR2V0U2lnbmFsaW5nSW5mb1xuZXhwb3J0IHR5cGUgU2lnbmFsaW5nSW5mbyA9IHtcblx0Ly9MaXN0IG9mIHByb3RvY29sIHVwZ3JhZGVzIHRoYXQgYXJlIGFscmVhZHkgYWN0aXZlLCBhbmQgdGhlaXIgYWN0aXZhdGlvbiBlcG9jaFxuXHRhY3RpdmVfdXBncmFkZXM6IFJlY29yZDxzdHJpbmcsIEVwb2NoPjtcblx0Ly9MaXN0IG9mIHByb3RvY29sIHVwZ3JhZGVzIHRoYXQgYXJlIGN1cnJlbnRseSBiZWluZyBwb2xsZWQgZm9yIGFjdGl2YXRpb24gc2lnbmFsaW5nXG5cdHBlbmRpbmdfdXBncmFkZXM6IEFycmF5PEJpdFZvdGVzQ291bnRlcj47XG5cdC8vTGFzdCBlcG9jaFxuXHRlcG9jaDogRXBvY2g7XG59O1xuXG4vLyBEaWdpdGFsIHNpZ25hdHVyZXMgc3RydWN0dXJlIChiYXNlZCBvbiBzdXBwb3J0ZWQgY3J5cHRvc3lzdGVtcylcbmV4cG9ydCB0eXBlIFNpZ25hdHVyZSA9IHtcblx0Ly8gRUNEU0Egb3ZlciBzZWNwMjU2azFcblx0U2VjcDI1NmsxOiBTZWNwMjU2azFTaWduYXR1cmU7XG59O1xuXG4vLyBTdGF0ZSBtYWNoaW5lIGZvciB0aGUgc3luY2hyb25pemF0aW9uIHN0YXR1cyBvZiBhIFdpdG5ldCBub2RlXG5leHBvcnQgZW51bSBTdGF0ZU1hY2hpbmUge1xuXHQvLyBGaXJzdCBzdGF0ZSwgQ2hhaW5NYW5hZ2VyIGlzIHdhaXRpbmcgZm9yIHJlYWNoaW5nICBjb25zZW5zdXMgYmV0d2VlbiBpdHMgcGVlcnNcblx0V2FpdGluZ0NvbnNlbnN1cyA9IFwiV2FpdGluZ0NvbnNlbnN1c1wiLFxuXHQvLyBTZWNvbmQgc3RhdGUsIENoYWluTWFuYWdlciBzeW5jaHJvbml6YXRpb24gcHJvY2Vzc1xuXHRTeW5jaHJvbml6aW5nID0gXCJTeW5jaHJvbml6aW5nIFwiLFxuXHQvLyBUaGlyZCBzdGF0ZSwgYENoYWluTWFuYWdlcmAgaGFzIGFsbCB0aGUgYmxvY2tzIGluIHRoZSBjaGFpbiBhbmQgaXMgcmVhZHkgdG8gc3RhcnRcblx0Ly8gY29uc29saWRhdGluZyBibG9jayBjYW5kaWRhdGVzIGluIHJlYWwgdGltZS5cblx0QWxtb3N0U3luY2VkID0gXCJBbG1vc3RTeW5jZWRcIixcblx0Ly8gRm91cnRoIHN0YXRlLCBgQ2hhaW5NYW5hZ2VyYCBjYW4gY29uc29saWRhdGUgYmxvY2sgY2FuZGlkYXRlcywgcHJvcG9zZSBpdHMgb3duXG5cdC8vIGNhbmRpZGF0ZXMgKG1pbmluZykgYW5kIHBhcnRpY2lwYXRlIGluIHJlc29sdmluZyBkYXRhIHJlcXVlc3RzICh3aXRuZXNzaW5nKS5cblx0U3luY2VkID0gXCJTeW5jZWRcIixcbn1cblxuZXhwb3J0IHR5cGUgU3Rha2VBdXRob3JpemF0aW9uID0ge1xuXHR3aXRoZHJhd2VyOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRzaWduYXR1cmU6IEtleWVkU2lnbmF0dXJlO1xufTtcblxuZXhwb3J0IHR5cGUgU3Rha2VEZWxlZ2F0ZSA9IHtcblx0Y29pbnM6IGJpZ2ludDtcblx0dmFsaWRhdG9yOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgU3Rha2VFbnRyeSA9IHtcblx0a2V5OiB7XG5cdFx0dmFsaWRhdG9yOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRcdHdpdGhkcmF3ZXI6IFB1YmxpY0tleUhhc2hTdHJpbmc7XG5cdH07XG5cdHZhbHVlOiB7XG5cdFx0Y29pbnM6IGJpZ2ludDtcblx0XHRlcG9jaHM6IFJlY29yZDxTdGFraW5nQ2FwYWJpbGl0eSwgRXBvY2g+O1xuXHRcdG5vbmNlOiB1NjQ7XG5cdH07XG59O1xuXG5leHBvcnQgdHlwZSBTdGFrZSA9IHtcblx0dG90YWw6IGJpZ2ludDtcblx0ZGVsZWdhdGVzOiBBcnJheTxTdGFrZURlbGVnYXRlPjtcbn07XG5cbmV4cG9ydCBlbnVtIFN0YWtpbmdDYXBhYmlsaXR5IHtcblx0TWluaW5nID0gXCJtaW5pbmdcIixcblx0V2l0bmVzc2luZyA9IFwid2l0bmVzc2luZ1wiLFxufVxuXG5leHBvcnQgdHlwZSBTdGFraW5nUG93ZXIgPSB7XG5cdHBvd2VyPzogdTY0O1xuXHRyYW5raW5nPzogdTMyO1xuXHR2YWxpZGF0b3I6IFB1YmxpY0tleUhhc2hTdHJpbmc7XG5cdHdpdGhkcmF3ZXI6IFB1YmxpY0tleUhhc2hTdHJpbmc7XG59O1xuXG4vLyBTdXBlcmJsb2NrIGNvbnNvbGlkYXRpbmcgbWV0YWRhdGFcbi8vIEFzIHBlciBjdXJyZW50IGNvbnNlbnN1cyBhbGdvcml0aG0sIFwiY29uc29saWRhdGVkIGJsb2Nrc1wiIGltcGxpZXMgdGhhdCB0aGVyZSBleGlzdHMgYXQgbGVhc3Qgb25lXG4vLyBzdXBlcmJsb2NrIGluIHRoZSBjaGFpbiB0aGF0IGJ1aWxkcyB1cG9uIHRoZSBzdXBlcmJsb2NrIHdoZXJlIHRob3NlIGJsb2NrcyB3ZXJlIGFuY2hvcmVkLlxuZXhwb3J0IHR5cGUgU3VwZXJibG9ja1JlcG9ydCA9IHtcblx0Ly9UaGUgc3VwZXJibG9jayB0aGF0IHdlIGFyZSBzaWduYWxpbmcgYXMgY29uc29saWRhdGVkLlxuXHRzdXBlcmJsb2NrOiB7XG5cdFx0Ly9OdW1iZXIgb2Ygc2lnbmluZyBjb21taXR0ZWUgbWVtYmVycyxcblx0XHRzaWduaW5nX2NvbW1pdHRlZV9sZW5ndGg6IHUzMjtcblx0XHQvL01lcmtsZSByb290IG9mIHRoZSBBY3RpdmUgUmVwdXRhdGlvbiBTZXQgbWVtYmVycyBpbmNsdWRlZCBpbnRvIHRoZSBwcmV2aW91cyBTdXBlckJsb2NrXG5cdFx0YXJzX3Jvb3Q6IEhhc2g7XG5cdFx0Ly9NZXJrbGUgcm9vdCBvZiB0aGUgZGF0YSByZXF1ZXN0cyBpbiB0aGUgYmxvY2tzIGNyZWF0ZWQgc2luY2UgdGhlIGxhc3QgU3VwZXJCbG9ja1xuXHRcdGRhdGFfcmVxdWVzdF9yb290OiBIYXNoO1xuXHRcdC8vU3VwZXJibG9jayBpbmRleCxcblx0XHRpbmRleDogdTMyO1xuXHRcdC8vSGFzaCBvZiB0aGUgYmxvY2sgdGhhdCB0aGlzIFN1cGVyQmxvY2sgaXMgYXR0ZXN0aW5nIGFzIHRoZSBsYXRlc3QgYmxvY2sgaW4gdGhlIGJsb2NrIGNoYWluLFxuXHRcdGxhc3RfYmxvY2s6IEhhc2g7XG5cdFx0Ly9IYXNoIG9mIHRoZSBibG9jayB0aGF0IHRoZSBwcmV2aW91cyBTdXBlckJsb2NrIHVzZWQgZm9yIGl0cyBvd24gYGxhc3RfYmxvY2tgIGZpZWxkLFxuXHRcdGxhc3RfYmxvY2tfaW5fcHJldmlvdXNfc3VwZXJibG9jazogSGFzaDtcblx0XHQvL01lcmtsZSByb290IG9mIHRoZSB0YWxsaWVzIGluIHRoZSBibG9ja3MgY3JlYXRlZCBzaW5jZSB0aGUgbGFzdCBTdXBlckJsb2NrXG5cdFx0dGFsbHlfcm9vdDogSGFzaDtcblx0fTtcblx0Ly9UaGUgaGFzaGVzIG9mIHRoZSBibG9ja3MgdGhhdCB3ZSBhcmUgc2lnbmFsaW5nIGFzIGNvbnNvbGlkYXRlZC5cblx0Y29uc29saWRhdGVkX2Jsb2NrX2hhc2hlczogQXJyYXk8SGFzaD47XG59O1xuXG5leHBvcnQgdHlwZSBTdXBwbHlJbmZvID0ge1xuXHQvL0N1cnJlbnQgZXBvY2hcblx0ZXBvY2g6IHUzMjtcblx0Ly9DdXJyZW50IHRpbWVcblx0Y3VycmVudF90aW1lOiB1NjQ7XG5cdC8vTnVtYmVyIG9mIGJsb2NrcyBtaW50ZWRcblx0YmxvY2tzX21pbnRlZDogdTMyO1xuXHQvL1dJVCBtaW50ZWQgdGhyb3VnaCBibG9jayBjcmVhdGlvblxuXHRibG9ja3NfbWludGVkX3Jld2FyZDogdTY0O1xuXHQvL0N1cnJlbnQgc3Rha2VkIHN1cHBseVxuXHRjdXJyZW50X3N0YWtlZF9zdXBwbHk6IHU2NDtcblx0Ly9HZW5lc2lzIHN1cHBseVxuXHRnZW5lc2lzX3N1cHBseTogdTY0O1xufTtcblxuLy8gSW5mb3JtYXRpb24gYWJvdXQgdGhlIHRvdGFsIHN1cHBseSBwcm92aWRlZCBieSB0aGUgYGdldFN1cHBseUluZm8yYCBzZW5zaXRpdmUgbWV0aG9kXG5leHBvcnQgdHlwZSBTdXBwbHlJbmZvMiA9IHtcblx0Ly9DdXJyZW50IGVwb2NoXG5cdGVwb2NoOiB1MzI7XG5cdC8vQ3VycmVudCB0aW1lXG5cdGN1cnJlbnRfdGltZTogdTY0O1xuXHQvL051bWJlciBvZiBibG9ja3MgbWludGVkXG5cdGJsb2Nrc19taW50ZWQ6IHUzMjtcblx0Ly9XSVQgbWludGVkIHRocm91Z2ggYmxvY2sgY3JlYXRpb25cblx0YmxvY2tzX21pbnRlZF9yZXdhcmQ6IHU2NDtcblx0Ly9BbW91bnQgb2YgbmFub3dpdHMgdGhhdCBoYXZlIGJlZW4gYnVybnQgc28gZmFyXG5cdGJ1cm50X3N1cHBseTogYmlnaW50O1xuXHQvL0N1cnJlbnQgbG9ja2VkIHN1cHBseVxuXHRjdXJyZW50X2xvY2tlZF9zdXBwbHk6IGJpZ2ludDtcblx0Ly9DdXJyZW50IHN0YWtlZCBzdXBwbHlcblx0Y3VycmVudF9zdGFrZWRfc3VwcGx5OiBiaWdpbnQ7XG5cdC8vQ3VycmVudCB1bmxvY2tlZCBzdXBwbHlcblx0Y3VycmVudF91bmxvY2tlZF9zdXBwbHk6IGJpZ2ludDtcblx0Ly9Jbml0aWFsIHN1cHBseVxuXHRpbml0aWFsX3N1cHBseTogYmlnaW50O1xuXHQvL1dJVCBjdXJyZW50bHkgbG9ja2VkIGFzIGNvbGxhdGVyYWwgYnkgaW4tZmxpZ2h0IGRhdGEgcmVxdWVzdHNcblx0cmVxdWVzdHNfaW5fZmxpZ2h0X2NvbGxhdGVyYWw6IHU2NDtcbn07XG5cbi8vIE5vZGUgc3luY2hyb25pemF0aW9uIHN0YXR1c1xuZXhwb3J0IHR5cGUgU3luY1N0YXR1cyA9IHtcblx0Ly8gVGhlIGhhc2ggb2YgdGhlIHRvcCBjb25zb2xpZGF0ZWQgYmxvY2sgYW5kIHRoZSBlcG9jaCBvZiB0aGF0IGJsb2NrXG5cdGNoYWluX2JlYWNvbjogQ2hlY2twb2ludEJlYWNvbjtcblx0Ly8gVGhlIGN1cnJlbnQgZXBvY2gsIG9yIE5vbmUgaWYgdGhlIGVwb2NoIDAgaXMgaW4gdGhlIGZ1dHVyZVxuXHRjdXJyZW50X2Vwb2NoPzogRXBvY2g7XG5cdC8vIE5vZGUgU3RhdGVcblx0bm9kZV9zdGF0ZTogU3RhdGVNYWNoaW5lO1xufTtcblxuLy8gSW5mb3JtYXRpb24gYWJvdXQgb3VyIG93biBVVFhPc1xuZXhwb3J0IHR5cGUgVXR4b0luZm8gPSB7XG5cdC8vVmVjdG9yIG9mIFV0eG9Qb2ludGVycyB3aXRoIHRoZWlyIHZhbHVlcywgdGltZV9sb2NrcyBhbmQgaWYgaXQgaXMgcmVhZHkgZm9yIGNvbGxhdGVyYWxcblx0dXR4b3M6IEFycmF5PFV0eG9NZXRhZGF0YT47XG5cdC8vTWluaW11bSBjb2xsYXRlcmFsIGZyb20gY29uc2Vuc3VzIGNvbnN0YW50c1xuXHRjb2xsYXRlcmFsX21pbjogYmlnaW50O1xufTtcblxuZXhwb3J0IHR5cGUgVXR4b01ldGFkYXRhID0ge1xuXHRvdXRwdXRfcG9pbnRlcjogc3RyaW5nO1xuXHR0aW1lbG9jazogdTY0O1xuXHR1dHhvX21hdHVyZT86IGJvb2xlYW47XG5cdHZhbHVlOiBiaWdpbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBWYWx1ZVRyYW5zZmVyT3V0cHV0ID0ge1xuXHRwa2g6IEhhc2g7XG5cdHZhbHVlOiBiaWdpbnQ7XG5cdHRpbWVfbG9jazogdTY0O1xufTtcblxuLy8gQSBWUkYgUHJvb2YgaXMgYSB1bmlxdWUsIGRldGVybWluaXN0aWMgd2F5IHRvIHNpZ24gYSBtZXNzYWdlIHdpdGggYSBwdWJsaWMga2V5LlxuLy8gSXQgaXMgdXNlZCB0byBwcmV2ZW50IG9uZSBpZGVudGl0eSBmcm9tIGNyZWF0aW5nIG11bHRpcGxlIGRpZmZlcmVudCBwcm9vZnMgb2YgZWxpZ2liaWxpdHkuXG5leHBvcnQgdHlwZSBWcmZQcm9vZiA9IHtcblx0cHJvb2Y6IFVpbnQ4QXJyYXk7XG5cdHB1YmxpY19rZXk6IFVpbnQ4QXJyYXk7IC8vUHVibGljS2V5O1xufTtcblxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyAtLS0gVHJhbnNhY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUmVwb3J0ID0ge1xuXHRibG9ja0Vwb2NoOiBFcG9jaDtcblx0YmxvY2tIYXNoOiBIYXNoO1xuXHRibG9ja1RpbWVzdGFtcDogbnVtYmVyO1xuXHRjb25maXJtYXRpb25zOiBudW1iZXI7XG5cdGNvbmZpcm1lZDogYm9vbGVhbjtcblx0dHJhbnNhY3Rpb246IHtcblx0XHRSZXZlYWw/OiBEYXRhUmVxdWVzdFJldmVhbFRyYW5zYWN0aW9uO1xuXHRcdENvbW1pdD86IERhdGFSZXF1ZXN0Q29tbWl0VHJhbnNhY3Rpb247XG5cdFx0VGFsbHk/OiBEYXRhUmVxdWVzdFRhbGx5VHJhbnNhY3Rpb247XG5cdH07XG5cdHdlaWdodDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVJlcXVlc3RDb21taXRUcmFuc2FjdGlvbiA9IHtcblx0Ym9keTogRGF0YVJlcXVlc3RDb21taXRUcmFuc2FjdGlvbkJvZHk7XG5cdHNpZ25hdHVyZXM6IEFycmF5PEtleWVkU2lnbmF0dXJlPjtcbn07XG5cbmV4cG9ydCB0eXBlIERhdGFSZXF1ZXN0Q29tbWl0VHJhbnNhY3Rpb25Cb2R5ID0ge1xuXHQvLyBEYXRhUmVxdWVzdFRyYW5zYWN0aW9uIGhhc2hcblx0ZHJfcG9pbnRlcjogSGFzaDtcblx0Ly8gRGF0YVJlcXVlc3RSZXZlYWxUcmFuc2FjdGlvbiBTaWduYXR1cmUgSGFzaFxuXHRjb21taXRtZW50OiBIYXNoO1xuXHQvLyBDaGFuZ2UgZnJvbSBjb2xsYXRlcmFsLiBUaGUgb3V0cHV0IHBraCBtdXN0IGJlIHRoZSBzYW1lIGFzIHRoZSBpbnB1dHMsXG5cdC8vIGFuZCB0aGVyZSBjYW4gb25seSBiZSBvbmUgb3V0cHV0XG5cdG91dHB1dHM6IEFycmF5PFZhbHVlVHJhbnNmZXJPdXRwdXQ+O1xuXHQvLyBCTFMgcHVibGljIGtleSAoY3VydmUgYm4yNTYpXG5cdGJuMjU2X3B1YmxpY19rZXk/OiBCbjI1NlB1YmxpY0tleTtcblxuXHRoYXNoOiBIYXNoO1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVJlcXVlc3RSZXZlYWxUcmFuc2FjdGlvbiA9IHtcblx0Ym9keTogRGF0YVJlcXVlc3RSZXZlYWxUcmFuc2FjdGlvbkJvZHk7XG5cdHNpZ25hdHVyZXM6IEFycmF5PEtleWVkU2lnbmF0dXJlPjtcbn07XG5cbmV4cG9ydCB0eXBlIERhdGFSZXF1ZXN0UmV2ZWFsVHJhbnNhY3Rpb25Cb2R5ID0ge1xuXHQvLyBJbnB1dHNcblx0ZHJfcG9pbnRlcjogSGFzaDsgLy8gRFRUcmFuc2FjdGlvbiBoYXNoXG5cdC8vIE91dHB1dHNcblx0cmV2ZWFsOiBBcnJheTx1OD47XG5cdHBraDogeyBoYXNoOiBVaW50OEFycmF5IH07IC8vIHdoZXJlIHRvIHJlY2VpdmUgcmV3YXJkXG5cdGhhc2g6IEhhc2g7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhUmVxdWVzdFRhbGx5VHJhbnNhY3Rpb24gPSB7XG5cdC8vIERhdGFSZXF1ZXN0VHJhbnNhY3Rpb24gaGFzaFxuXHRkcl9wb2ludGVyOiBIYXNoO1xuXHQvLyBUYWxseSByZXN1bHRcblx0dGFsbHk6IFVpbnQ4QXJyYXk7XG5cdC8vIFdpdG5lc3MgcmV3YXJkc1xuXHRvdXRwdXRzOiBBcnJheTxWYWx1ZVRyYW5zZmVyT3V0cHV0Pjtcblx0Ly8gQWRkcmVzc2VzIHRoYXQgYXJlIG91dCBvZiBjb25zZW5zdXMgKG5vbiByZXZlYWxlcnMgaW5jbHVkZWQpXG5cdG91dF9vZl9jb25zZW5zdXM6IEFycmF5PHsgaGFzaDogVWludDhBcnJheSB9Pjtcblx0Ly8gQWRkcmVzc2VzIHRoYXQgY29tbWl0IGEgUmFkb25FcnJvciAob3IgY29uc2lkZXJlZCBhcyBhbiBFcnJvciBkdWUgdG8gYSBSYWRvbkVycm9yIGNvbnNlbnN1cylcblx0ZXJyb3JfY29tbWl0dGVyczogQXJyYXk8eyBoYXNoOiBVaW50OEFycmF5IH0+O1xuXHQvLyBUT0RPXG5cdC8vIGhhc2g6IEhhc2g7XG59O1xuXG4vLy8gTm9kZSBzdGF0c1xuZXhwb3J0IHR5cGUgTm9kZVN0YXRzID0ge1xuXHQvL051bWJlciBvZiBwcm9wb3NlZCBibG9ja3Ncblx0YmxvY2tfcHJvcG9zZWRfY291bnQ6IHUzMjtcblx0Ly9OdW1iZXIgb2YgYmxvY2tzIGluY2x1ZGVkIGluIHRoZSBibG9jayBjaGFpblxuXHRibG9ja19taW5lZF9jb3VudDogdTMyO1xuXHQvL051bWJlciBvZiB0aW1lcyB3ZSB3ZXJlIGVsaWdpYmxlIHRvIHBhcnRpY2lwYXRlIGluIGEgRGF0YSBSZXF1ZXN0XG5cdGRyX2VsaWdpYmlsaXR5X2NvdW50OiB1MzI7XG5cdC8vTnVtYmVyIG9mIHByb3Bvc2VkIGNvbW1pdHNcblx0Y29tbWl0c19wcm9wb3NlZF9jb3VudDogdTMyO1xuXHQvL051bWJlciBvZiBjb21taXRzIGluY2x1ZGVkIGluIGEgZGF0YSByZXF1ZXN0XG5cdGNvbW1pdHNfY291bnQ6IHUzMjtcblx0Ly9MYXN0IGJsb2NrIHByb3Bvc2VkXG5cdGxhc3RfYmxvY2tfcHJvcG9zZWQ6IEhhc2g7XG5cdC8vTnVtYmVyIG9mIHNsYXNoZWQgY29tbWl0c1xuXHRzbGFzaGVkX2NvdW50OiB1MzI7XG59O1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@witnet/sdk",
3
- "version": "3.1.7",
3
+ "version": "3.2.0",
4
4
  "description": "Typescript library and CLI tooling for Web3 buidlers willing to interact with the Witnet blockchain.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -70,6 +70,7 @@
70
70
  "promise-poller": "^1.9.1",
71
71
  "protobufjs": "^7.5.4",
72
72
  "qrcode-terminal": "^0.12.0",
73
+ "tree-kill": "^1.2.2",
73
74
  "secp256k1": "^5.0.1"
74
75
  },
75
76
  "devDependencies": {
@@ -423,16 +423,16 @@ async function supplyInfo(options = {}) {
423
423
  const records = [];
424
424
  records.push(["Minted blocks", `${helpers.toFixedTrunc((100 * data.blocks_minted) / (data.epoch - 1), 1)} %`]);
425
425
  records.push(["Minted rewards", helpers.whole_wits(data.blocks_minted_reward, 2)]);
426
- if (data.burnt_supply) {
427
- records.push(["Burnt supply", helpers.whole_wits(data.burnt_supply, 2)]);
428
- }
429
- if (data.current_locked_supply) {
430
- records.push(["Locked supply", helpers.whole_wits(data.current_locked_supply, 2)]);
431
- }
432
426
  if (data.current_staked_supply) {
433
427
  records.push(["Staked supply", helpers.whole_wits(data.current_staked_supply, 2)]);
434
428
  }
435
- records.push(["Circulating supply", helpers.whole_wits(data.current_unlocked_supply, 2)]);
429
+ records.push([
430
+ "Circulating supply",
431
+ helpers.whole_wits(
432
+ BigInt(data.genesis_supply) + BigInt(data.blocks_minted_reward) - BigInt(data.current_staked_supply),
433
+ 2,
434
+ ),
435
+ ]);
436
436
  helpers.traceTable(records, {
437
437
  headlines: [":KPI", "VALUE"],
438
438
  colors: [helpers.colors.mgreen, helpers.colors.myellow],
@@ -6,6 +6,7 @@ import * as os from "node:os";
6
6
  import path from "node:path";
7
7
  import * as readline from "node:readline";
8
8
  import moment from "moment";
9
+ import kill from "tree-kill";
9
10
 
10
11
  const require = createRequire(import.meta.url);
11
12
  const _TOOLKIT_RUN_TIMEOUT_MSECS = 30000;
@@ -140,16 +141,9 @@ export function cmd(timeout, ...commands) {
140
141
  console.debug("=> Killing process tree with PID:", child.pid);
141
142
  console.debug(" Command:", `${bin} ${args.join(" ")}`);
142
143
  if (!child.pid) return;
143
- try {
144
- if (process.platform === "win32") {
145
- spawn("taskkill", ["/PID", child.pid.toString(), "/T", "/F"]);
146
- } else {
147
- // kill entire process group
148
- process.kill(child.pid, "SIGKILL");
149
- }
150
- } catch (err) {
151
- console.debug(" Error:", err);
152
- }
144
+ kill(child.pid, (err) => {
145
+ if (err) console.debug(" Error:", err);
146
+ });
153
147
  };
154
148
 
155
149
  const timer =
@@ -189,7 +183,6 @@ export function cmd(timeout, ...commands) {
189
183
  reject(new Error(`npx failed with exit code ${code}\n${stderr}`));
190
184
  return;
191
185
  }
192
-
193
186
  resolve(stdout);
194
187
  });
195
188
  });
@@ -562,25 +555,12 @@ export async function toolkitRun(settings, args) {
562
555
  let stderr = "";
563
556
  let finished = false;
564
557
 
565
- const killTree = () => {
566
- if (!child.pid) return;
567
- try {
568
- if (process.platform === "win32") {
569
- spawn("taskkill", ["/PID", child.pid.toString(), "/T", "/F"]);
570
- } else {
571
- // kill entire process group
572
- process.kill(child.pid, "SIGKILL");
573
- }
574
- } catch {}
575
- };
576
-
577
558
  child.stdout.on("data", (d) => (stdout += d.toString()));
578
559
  child.stderr.on("data", (d) => (stderr += d.toString()));
579
560
 
580
561
  child.on("error", (err) => {
581
562
  if (finished) return;
582
563
  finished = true;
583
- killTree();
584
564
  reject(err);
585
565
  });
586
566
 
@@ -589,13 +569,11 @@ export async function toolkitRun(settings, args) {
589
569
  finished = true;
590
570
 
591
571
  if (signal) {
592
- killTree();
593
572
  reject(new Error(`witnet_toolkit binary terminated by signal ${signal}`));
594
573
  return;
595
574
  }
596
575
 
597
576
  if (code !== 0) {
598
- killTree();
599
577
  reject(new Error(`witnet_toolkit binary failed with exit code ${code}\n${stderr}`));
600
578
  return;
601
579
  }