From cbb0463352939d6c1d9cf8ed0e9d59786c1603a0 Mon Sep 17 00:00:00 2001 From: Max Richter Date: Sun, 13 Mar 2022 19:17:20 +0100 Subject: [PATCH] feat: finished ac started capacitors --- .obsidian/app.json | 4 + .obsidian/appearance.json | 3 + .obsidian/community-plugins.json | 3 + .obsidian/core-plugins.json | 15 + .obsidian/hotkeys.json | 1 + .obsidian/plugins/obsidian-circuitjs/main.js | 586 ++++++++++++++++++ .../plugins/obsidian-circuitjs/manifest.json | 10 + .../plugins/obsidian-circuitjs/styles.css | 1 + .obsidian/workspace | 101 +++ Areas/electricity/ac.md.md | 31 + .../assets/Parallel_plate_capacitor.svg | 295 +++++++++ .../electricity/assets/ceramic-capacitor.webp | Bin 0 -> 5500 bytes Areas/electricity/assets/kirchhoffs-law-1.svg | 1 + Areas/electricity/assets/rms.gif | Bin 0 -> 3417 bytes .../electricity/assets/tantalum-capacitor.jpg | Bin 0 -> 85272 bytes Areas/electricity/assets/wave.gif | Bin 0 -> 5301 bytes Areas/electricity/formulas.md | 64 +- .../electricity/formulas/kirchhoffs-law.md.md | 135 ++++ Areas/electricity/glossary.md | 35 ++ Areas/electricity/parts/capacitors.md.md | 65 ++ Areas/electricity/{ => parts}/led.md.md | 2 +- Areas/electricity/parts/resistors.md.md | 3 + .../{ => parts}/voltage-dividers.md | 0 a.md | 0 24 files changed, 1302 insertions(+), 53 deletions(-) create mode 100644 .obsidian/app.json create mode 100644 .obsidian/appearance.json create mode 100644 .obsidian/community-plugins.json create mode 100644 .obsidian/core-plugins.json create mode 100644 .obsidian/hotkeys.json create mode 100644 .obsidian/plugins/obsidian-circuitjs/main.js create mode 100644 .obsidian/plugins/obsidian-circuitjs/manifest.json create mode 100644 .obsidian/plugins/obsidian-circuitjs/styles.css create mode 100644 .obsidian/workspace create mode 100644 Areas/electricity/ac.md.md create mode 100644 Areas/electricity/assets/Parallel_plate_capacitor.svg create mode 100644 Areas/electricity/assets/ceramic-capacitor.webp create mode 100644 Areas/electricity/assets/kirchhoffs-law-1.svg create mode 100644 Areas/electricity/assets/rms.gif create mode 100644 Areas/electricity/assets/tantalum-capacitor.jpg create mode 100644 Areas/electricity/assets/wave.gif create mode 100644 Areas/electricity/formulas/kirchhoffs-law.md.md create mode 100644 Areas/electricity/parts/capacitors.md.md rename Areas/electricity/{ => parts}/led.md.md (97%) create mode 100644 Areas/electricity/parts/resistors.md.md rename Areas/electricity/{ => parts}/voltage-dividers.md (100%) create mode 100644 a.md diff --git a/.obsidian/app.json b/.obsidian/app.json new file mode 100644 index 0000000..eb5f189 --- /dev/null +++ b/.obsidian/app.json @@ -0,0 +1,4 @@ +{ + "legacyEditor": false, + "alwaysUpdateLinks": true +} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json new file mode 100644 index 0000000..990f337 --- /dev/null +++ b/.obsidian/appearance.json @@ -0,0 +1,3 @@ +{ + "baseFontSize": 16 +} \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json new file mode 100644 index 0000000..bfdcdf8 --- /dev/null +++ b/.obsidian/community-plugins.json @@ -0,0 +1,3 @@ +[ + "obsidian-circuitjs" +] \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100644 index 0000000..ab1d511 --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,15 @@ +[ + "file-explorer", + "global-search", + "switcher", + "graph", + "backlink", + "page-preview", + "note-composer", + "command-palette", + "editor-status", + "markdown-importer", + "word-count", + "open-with-default-app", + "file-recovery" +] \ No newline at end of file diff --git a/.obsidian/hotkeys.json b/.obsidian/hotkeys.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.obsidian/hotkeys.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-circuitjs/main.js b/.obsidian/plugins/obsidian-circuitjs/main.js new file mode 100644 index 0000000..f9f5b20 --- /dev/null +++ b/.obsidian/plugins/obsidian-circuitjs/main.js @@ -0,0 +1,586 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + __markAsModule(target); + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __reExport = (target, module2, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key of __getOwnPropNames(module2)) + if (!__hasOwnProp.call(target, key) && key !== "default") + __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); + } + return target; +}; +var __toModule = (module2) => { + return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); +}; +var __async = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + }; + var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; + +// node_modules/.pnpm/lz-string@1.4.4/node_modules/lz-string/libs/lz-string.js +var require_lz_string = __commonJS({ + "node_modules/.pnpm/lz-string@1.4.4/node_modules/lz-string/libs/lz-string.js"(exports, module2) { + var LZString2 = function() { + var f = String.fromCharCode; + var keyStrBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + var keyStrUriSafe = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$"; + var baseReverseDic = {}; + function getBaseValue(alphabet, character) { + if (!baseReverseDic[alphabet]) { + baseReverseDic[alphabet] = {}; + for (var i = 0; i < alphabet.length; i++) { + baseReverseDic[alphabet][alphabet.charAt(i)] = i; + } + } + return baseReverseDic[alphabet][character]; + } + var LZString3 = { + compressToBase64: function(input) { + if (input == null) + return ""; + var res = LZString3._compress(input, 6, function(a) { + return keyStrBase64.charAt(a); + }); + switch (res.length % 4) { + default: + case 0: + return res; + case 1: + return res + "==="; + case 2: + return res + "=="; + case 3: + return res + "="; + } + }, + decompressFromBase64: function(input) { + if (input == null) + return ""; + if (input == "") + return null; + return LZString3._decompress(input.length, 32, function(index) { + return getBaseValue(keyStrBase64, input.charAt(index)); + }); + }, + compressToUTF16: function(input) { + if (input == null) + return ""; + return LZString3._compress(input, 15, function(a) { + return f(a + 32); + }) + " "; + }, + decompressFromUTF16: function(compressed) { + if (compressed == null) + return ""; + if (compressed == "") + return null; + return LZString3._decompress(compressed.length, 16384, function(index) { + return compressed.charCodeAt(index) - 32; + }); + }, + compressToUint8Array: function(uncompressed) { + var compressed = LZString3.compress(uncompressed); + var buf = new Uint8Array(compressed.length * 2); + for (var i = 0, TotalLen = compressed.length; i < TotalLen; i++) { + var current_value = compressed.charCodeAt(i); + buf[i * 2] = current_value >>> 8; + buf[i * 2 + 1] = current_value % 256; + } + return buf; + }, + decompressFromUint8Array: function(compressed) { + if (compressed === null || compressed === void 0) { + return LZString3.decompress(compressed); + } else { + var buf = new Array(compressed.length / 2); + for (var i = 0, TotalLen = buf.length; i < TotalLen; i++) { + buf[i] = compressed[i * 2] * 256 + compressed[i * 2 + 1]; + } + var result = []; + buf.forEach(function(c) { + result.push(f(c)); + }); + return LZString3.decompress(result.join("")); + } + }, + compressToEncodedURIComponent: function(input) { + if (input == null) + return ""; + return LZString3._compress(input, 6, function(a) { + return keyStrUriSafe.charAt(a); + }); + }, + decompressFromEncodedURIComponent: function(input) { + if (input == null) + return ""; + if (input == "") + return null; + input = input.replace(/ /g, "+"); + return LZString3._decompress(input.length, 32, function(index) { + return getBaseValue(keyStrUriSafe, input.charAt(index)); + }); + }, + compress: function(uncompressed) { + return LZString3._compress(uncompressed, 16, function(a) { + return f(a); + }); + }, + _compress: function(uncompressed, bitsPerChar, getCharFromInt) { + if (uncompressed == null) + return ""; + var i, value, context_dictionary = {}, context_dictionaryToCreate = {}, context_c = "", context_wc = "", context_w = "", context_enlargeIn = 2, context_dictSize = 3, context_numBits = 2, context_data = [], context_data_val = 0, context_data_position = 0, ii; + for (ii = 0; ii < uncompressed.length; ii += 1) { + context_c = uncompressed.charAt(ii); + if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) { + context_dictionary[context_c] = context_dictSize++; + context_dictionaryToCreate[context_c] = true; + } + context_wc = context_w + context_c; + if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) { + context_w = context_wc; + } else { + if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) { + if (context_w.charCodeAt(0) < 256) { + for (i = 0; i < context_numBits; i++) { + context_data_val = context_data_val << 1; + if (context_data_position == bitsPerChar - 1) { + context_data_position = 0; + context_data.push(getCharFromInt(context_data_val)); + context_data_val = 0; + } else { + context_data_position++; + } + } + value = context_w.charCodeAt(0); + for (i = 0; i < 8; i++) { + context_data_val = context_data_val << 1 | value & 1; + if (context_data_position == bitsPerChar - 1) { + context_data_position = 0; + context_data.push(getCharFromInt(context_data_val)); + context_data_val = 0; + } else { + context_data_position++; + } + value = value >> 1; + } + } else { + value = 1; + for (i = 0; i < context_numBits; i++) { + context_data_val = context_data_val << 1 | value; + if (context_data_position == bitsPerChar - 1) { + context_data_position = 0; + context_data.push(getCharFromInt(context_data_val)); + context_data_val = 0; + } else { + context_data_position++; + } + value = 0; + } + value = context_w.charCodeAt(0); + for (i = 0; i < 16; i++) { + context_data_val = context_data_val << 1 | value & 1; + if (context_data_position == bitsPerChar - 1) { + context_data_position = 0; + context_data.push(getCharFromInt(context_data_val)); + context_data_val = 0; + } else { + context_data_position++; + } + value = value >> 1; + } + } + context_enlargeIn--; + if (context_enlargeIn == 0) { + context_enlargeIn = Math.pow(2, context_numBits); + context_numBits++; + } + delete context_dictionaryToCreate[context_w]; + } else { + value = context_dictionary[context_w]; + for (i = 0; i < context_numBits; i++) { + context_data_val = context_data_val << 1 | value & 1; + if (context_data_position == bitsPerChar - 1) { + context_data_position = 0; + context_data.push(getCharFromInt(context_data_val)); + context_data_val = 0; + } else { + context_data_position++; + } + value = value >> 1; + } + } + context_enlargeIn--; + if (context_enlargeIn == 0) { + context_enlargeIn = Math.pow(2, context_numBits); + context_numBits++; + } + context_dictionary[context_wc] = context_dictSize++; + context_w = String(context_c); + } + } + if (context_w !== "") { + if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) { + if (context_w.charCodeAt(0) < 256) { + for (i = 0; i < context_numBits; i++) { + context_data_val = context_data_val << 1; + if (context_data_position == bitsPerChar - 1) { + context_data_position = 0; + context_data.push(getCharFromInt(context_data_val)); + context_data_val = 0; + } else { + context_data_position++; + } + } + value = context_w.charCodeAt(0); + for (i = 0; i < 8; i++) { + context_data_val = context_data_val << 1 | value & 1; + if (context_data_position == bitsPerChar - 1) { + context_data_position = 0; + context_data.push(getCharFromInt(context_data_val)); + context_data_val = 0; + } else { + context_data_position++; + } + value = value >> 1; + } + } else { + value = 1; + for (i = 0; i < context_numBits; i++) { + context_data_val = context_data_val << 1 | value; + if (context_data_position == bitsPerChar - 1) { + context_data_position = 0; + context_data.push(getCharFromInt(context_data_val)); + context_data_val = 0; + } else { + context_data_position++; + } + value = 0; + } + value = context_w.charCodeAt(0); + for (i = 0; i < 16; i++) { + context_data_val = context_data_val << 1 | value & 1; + if (context_data_position == bitsPerChar - 1) { + context_data_position = 0; + context_data.push(getCharFromInt(context_data_val)); + context_data_val = 0; + } else { + context_data_position++; + } + value = value >> 1; + } + } + context_enlargeIn--; + if (context_enlargeIn == 0) { + context_enlargeIn = Math.pow(2, context_numBits); + context_numBits++; + } + delete context_dictionaryToCreate[context_w]; + } else { + value = context_dictionary[context_w]; + for (i = 0; i < context_numBits; i++) { + context_data_val = context_data_val << 1 | value & 1; + if (context_data_position == bitsPerChar - 1) { + context_data_position = 0; + context_data.push(getCharFromInt(context_data_val)); + context_data_val = 0; + } else { + context_data_position++; + } + value = value >> 1; + } + } + context_enlargeIn--; + if (context_enlargeIn == 0) { + context_enlargeIn = Math.pow(2, context_numBits); + context_numBits++; + } + } + value = 2; + for (i = 0; i < context_numBits; i++) { + context_data_val = context_data_val << 1 | value & 1; + if (context_data_position == bitsPerChar - 1) { + context_data_position = 0; + context_data.push(getCharFromInt(context_data_val)); + context_data_val = 0; + } else { + context_data_position++; + } + value = value >> 1; + } + while (true) { + context_data_val = context_data_val << 1; + if (context_data_position == bitsPerChar - 1) { + context_data.push(getCharFromInt(context_data_val)); + break; + } else + context_data_position++; + } + return context_data.join(""); + }, + decompress: function(compressed) { + if (compressed == null) + return ""; + if (compressed == "") + return null; + return LZString3._decompress(compressed.length, 32768, function(index) { + return compressed.charCodeAt(index); + }); + }, + _decompress: function(length, resetValue, getNextValue) { + var dictionary = [], next, enlargeIn = 4, dictSize = 4, numBits = 3, entry = "", result = [], i, w, bits, resb, maxpower, power, c, data = { val: getNextValue(0), position: resetValue, index: 1 }; + for (i = 0; i < 3; i += 1) { + dictionary[i] = i; + } + bits = 0; + maxpower = Math.pow(2, 2); + power = 1; + while (power != maxpower) { + resb = data.val & data.position; + data.position >>= 1; + if (data.position == 0) { + data.position = resetValue; + data.val = getNextValue(data.index++); + } + bits |= (resb > 0 ? 1 : 0) * power; + power <<= 1; + } + switch (next = bits) { + case 0: + bits = 0; + maxpower = Math.pow(2, 8); + power = 1; + while (power != maxpower) { + resb = data.val & data.position; + data.position >>= 1; + if (data.position == 0) { + data.position = resetValue; + data.val = getNextValue(data.index++); + } + bits |= (resb > 0 ? 1 : 0) * power; + power <<= 1; + } + c = f(bits); + break; + case 1: + bits = 0; + maxpower = Math.pow(2, 16); + power = 1; + while (power != maxpower) { + resb = data.val & data.position; + data.position >>= 1; + if (data.position == 0) { + data.position = resetValue; + data.val = getNextValue(data.index++); + } + bits |= (resb > 0 ? 1 : 0) * power; + power <<= 1; + } + c = f(bits); + break; + case 2: + return ""; + } + dictionary[3] = c; + w = c; + result.push(c); + while (true) { + if (data.index > length) { + return ""; + } + bits = 0; + maxpower = Math.pow(2, numBits); + power = 1; + while (power != maxpower) { + resb = data.val & data.position; + data.position >>= 1; + if (data.position == 0) { + data.position = resetValue; + data.val = getNextValue(data.index++); + } + bits |= (resb > 0 ? 1 : 0) * power; + power <<= 1; + } + switch (c = bits) { + case 0: + bits = 0; + maxpower = Math.pow(2, 8); + power = 1; + while (power != maxpower) { + resb = data.val & data.position; + data.position >>= 1; + if (data.position == 0) { + data.position = resetValue; + data.val = getNextValue(data.index++); + } + bits |= (resb > 0 ? 1 : 0) * power; + power <<= 1; + } + dictionary[dictSize++] = f(bits); + c = dictSize - 1; + enlargeIn--; + break; + case 1: + bits = 0; + maxpower = Math.pow(2, 16); + power = 1; + while (power != maxpower) { + resb = data.val & data.position; + data.position >>= 1; + if (data.position == 0) { + data.position = resetValue; + data.val = getNextValue(data.index++); + } + bits |= (resb > 0 ? 1 : 0) * power; + power <<= 1; + } + dictionary[dictSize++] = f(bits); + c = dictSize - 1; + enlargeIn--; + break; + case 2: + return result.join(""); + } + if (enlargeIn == 0) { + enlargeIn = Math.pow(2, numBits); + numBits++; + } + if (dictionary[c]) { + entry = dictionary[c]; + } else { + if (c === dictSize) { + entry = w + w.charAt(0); + } else { + return null; + } + } + result.push(entry); + dictionary[dictSize++] = w + entry.charAt(0); + enlargeIn--; + w = entry; + if (enlargeIn == 0) { + enlargeIn = Math.pow(2, numBits); + numBits++; + } + } + } + }; + return LZString3; + }(); + if (typeof define === "function" && define.amd) { + define(function() { + return LZString2; + }); + } else if (typeof module2 !== "undefined" && module2 != null) { + module2.exports = LZString2; + } + } +}); + +// main.ts +__export(exports, { + default: () => CircuitJsPlugin +}); +var import_obsidian2 = __toModule(require("obsidian")); + +// circuitRenderer.ts +var import_obsidian = __toModule(require("obsidian")); +var LZString = __toModule(require_lz_string()); +var CircuitRenderChild = class extends import_obsidian.MarkdownRenderChild { + constructor(el, renderer, content, settings) { + super(el); + this.settings = settings; + this.code = content; + this.compressed = LZString.compressToEncodedURIComponent(this.code); + if (this.settings.editable) { + this.url = `${this.settings.circuitJsUrl}?ctz=${this.compressed}&running=true`; + } else { + this.url = `${this.settings.circuitJsUrl}?ctz=${this.compressed}&running=false`; + } + } + onload() { + const div = document.createElement("div"); + if (this.settings.editLink) { + const editLink = document.createElement("a"); + editLink.setAttribute("href", this.url); + const editLinkContent = document.createTextNode("[EDIT]"); + editLink.appendChild(editLinkContent); + div.appendChild(editLink); + } + const iframeNode = document.createElement("iframe"); + iframeNode.setAttribute("src", this.url); + iframeNode.setAttribute("width", "100%"); + iframeNode.setAttribute("height", "600px"); + div.appendChild(iframeNode); + this.containerEl.appendChild(div); + } + onunload() { + } +}; + +// main.ts +var DEFAULT_SETTINGS = { + editable: true, + editLink: true, + circuitJsUrl: "http://falstad.com/circuit/circuitjs.html", + circuitTag: "circuitjs" +}; +var CircuitJsPlugin = class extends import_obsidian2.Plugin { + constructor() { + super(...arguments); + this.postprocessor = (content, el, ctx) => __async(this, null, function* () { + ctx.addChild(new CircuitRenderChild(el, this, content, this.settings)); + }); + } + onload() { + return __async(this, null, function* () { + yield this.loadSettings(); + this.registerMarkdownCodeBlockProcessor(this.settings.circuitTag, this.postprocessor); + }); + } + onunload() { + } + loadSettings() { + return __async(this, null, function* () { + this.settings = Object.assign({}, DEFAULT_SETTINGS, yield this.loadData()); + }); + } + saveSettings() { + return __async(this, null, function* () { + yield this.saveData(this.settings); + }); + } +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzLy5wbnBtL2x6LXN0cmluZ0AxLjQuNC9ub2RlX21vZHVsZXMvbHotc3RyaW5nL2xpYnMvbHotc3RyaW5nLmpzIiwgIm1haW4udHMiLCAiY2lyY3VpdFJlbmRlcmVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvLyBDb3B5cmlnaHQgKGMpIDIwMTMgUGllcm94eSA8cGllcm94eUBwaWVyb3h5Lm5ldD5cbi8vIFRoaXMgd29yayBpcyBmcmVlLiBZb3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4vLyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIFdURlBMLCBWZXJzaW9uIDJcbi8vIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBMSUNFTlNFLnR4dCBvciBodHRwOi8vd3d3Lnd0ZnBsLm5ldC9cbi8vXG4vLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgdGhlIGhvbWUgcGFnZTpcbi8vIGh0dHA6Ly9waWVyb3h5Lm5ldC9ibG9nL3BhZ2VzL2x6LXN0cmluZy90ZXN0aW5nLmh0bWxcbi8vXG4vLyBMWi1iYXNlZCBjb21wcmVzc2lvbiBhbGdvcml0aG0sIHZlcnNpb24gMS40LjRcbnZhciBMWlN0cmluZyA9IChmdW5jdGlvbigpIHtcblxuLy8gcHJpdmF0ZSBwcm9wZXJ0eVxudmFyIGYgPSBTdHJpbmcuZnJvbUNoYXJDb2RlO1xudmFyIGtleVN0ckJhc2U2NCA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz1cIjtcbnZhciBrZXlTdHJVcmlTYWZlID0gXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSstJFwiO1xudmFyIGJhc2VSZXZlcnNlRGljID0ge307XG5cbmZ1bmN0aW9uIGdldEJhc2VWYWx1ZShhbHBoYWJldCwgY2hhcmFjdGVyKSB7XG4gIGlmICghYmFzZVJldmVyc2VEaWNbYWxwaGFiZXRdKSB7XG4gICAgYmFzZVJldmVyc2VEaWNbYWxwaGFiZXRdID0ge307XG4gICAgZm9yICh2YXIgaT0wIDsgaTxhbHBoYWJldC5sZW5ndGggOyBpKyspIHtcbiAgICAgIGJhc2VSZXZlcnNlRGljW2FscGhhYmV0XVthbHBoYWJldC5jaGFyQXQoaSldID0gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJhc2VSZXZlcnNlRGljW2FscGhhYmV0XVtjaGFyYWN0ZXJdO1xufVxuXG52YXIgTFpTdHJpbmcgPSB7XG4gIGNvbXByZXNzVG9CYXNlNjQgOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICBpZiAoaW5wdXQgPT0gbnVsbCkgcmV0dXJuIFwiXCI7XG4gICAgdmFyIHJlcyA9IExaU3RyaW5nLl9jb21wcmVzcyhpbnB1dCwgNiwgZnVuY3Rpb24oYSl7cmV0dXJuIGtleVN0ckJhc2U2NC5jaGFyQXQoYSk7fSk7XG4gICAgc3dpdGNoIChyZXMubGVuZ3RoICUgNCkgeyAvLyBUbyBwcm9kdWNlIHZhbGlkIEJhc2U2NFxuICAgIGRlZmF1bHQ6IC8vIFdoZW4gY291bGQgdGhpcyBoYXBwZW4gP1xuICAgIGNhc2UgMCA6IHJldHVybiByZXM7XG4gICAgY2FzZSAxIDogcmV0dXJuIHJlcytcIj09PVwiO1xuICAgIGNhc2UgMiA6IHJldHVybiByZXMrXCI9PVwiO1xuICAgIGNhc2UgMyA6IHJldHVybiByZXMrXCI9XCI7XG4gICAgfVxuICB9LFxuXG4gIGRlY29tcHJlc3NGcm9tQmFzZTY0IDogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgaWYgKGlucHV0ID09IG51bGwpIHJldHVybiBcIlwiO1xuICAgIGlmIChpbnB1dCA9PSBcIlwiKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gTFpTdHJpbmcuX2RlY29tcHJlc3MoaW5wdXQubGVuZ3RoLCAzMiwgZnVuY3Rpb24oaW5kZXgpIHsgcmV0dXJuIGdldEJhc2VWYWx1ZShrZXlTdHJCYXNlNjQsIGlucHV0LmNoYXJBdChpbmRleCkpOyB9KTtcbiAgfSxcblxuICBjb21wcmVzc1RvVVRGMTYgOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICBpZiAoaW5wdXQgPT0gbnVsbCkgcmV0dXJuIFwiXCI7XG4gICAgcmV0dXJuIExaU3RyaW5nLl9jb21wcmVzcyhpbnB1dCwgMTUsIGZ1bmN0aW9uKGEpe3JldHVybiBmKGErMzIpO30pICsgXCIgXCI7XG4gIH0sXG5cbiAgZGVjb21wcmVzc0Zyb21VVEYxNjogZnVuY3Rpb24gKGNvbXByZXNzZWQpIHtcbiAgICBpZiAoY29tcHJlc3NlZCA9PSBudWxsKSByZXR1cm4gXCJcIjtcbiAgICBpZiAoY29tcHJlc3NlZCA9PSBcIlwiKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gTFpTdHJpbmcuX2RlY29tcHJlc3MoY29tcHJlc3NlZC5sZW5ndGgsIDE2Mzg0LCBmdW5jdGlvbihpbmRleCkgeyByZXR1cm4gY29tcHJlc3NlZC5jaGFyQ29kZUF0KGluZGV4KSAtIDMyOyB9KTtcbiAgfSxcblxuICAvL2NvbXByZXNzIGludG8gdWludDhhcnJheSAoVUNTLTIgYmlnIGVuZGlhbiBmb3JtYXQpXG4gIGNvbXByZXNzVG9VaW50OEFycmF5OiBmdW5jdGlvbiAodW5jb21wcmVzc2VkKSB7XG4gICAgdmFyIGNvbXByZXNzZWQgPSBMWlN0cmluZy5jb21wcmVzcyh1bmNvbXByZXNzZWQpO1xuICAgIHZhciBidWY9bmV3IFVpbnQ4QXJyYXkoY29tcHJlc3NlZC5sZW5ndGgqMik7IC8vIDIgYnl0ZXMgcGVyIGNoYXJhY3RlclxuXG4gICAgZm9yICh2YXIgaT0wLCBUb3RhbExlbj1jb21wcmVzc2VkLmxlbmd0aDsgaTxUb3RhbExlbjsgaSsrKSB7XG4gICAgICB2YXIgY3VycmVudF92YWx1ZSA9IGNvbXByZXNzZWQuY2hhckNvZGVBdChpKTtcbiAgICAgIGJ1ZltpKjJdID0gY3VycmVudF92YWx1ZSA+Pj4gODtcbiAgICAgIGJ1ZltpKjIrMV0gPSBjdXJyZW50X3ZhbHVlICUgMjU2O1xuICAgIH1cbiAgICByZXR1cm4gYnVmO1xuICB9LFxuXG4gIC8vZGVjb21wcmVzcyBmcm9tIHVpbnQ4YXJyYXkgKFVDUy0yIGJpZyBlbmRpYW4gZm9ybWF0KVxuICBkZWNvbXByZXNzRnJvbVVpbnQ4QXJyYXk6ZnVuY3Rpb24gKGNvbXByZXNzZWQpIHtcbiAgICBpZiAoY29tcHJlc3NlZD09PW51bGwgfHwgY29tcHJlc3NlZD09PXVuZGVmaW5lZCl7XG4gICAgICAgIHJldHVybiBMWlN0cmluZy5kZWNvbXByZXNzKGNvbXByZXNzZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBidWY9bmV3IEFycmF5KGNvbXByZXNzZWQubGVuZ3RoLzIpOyAvLyAyIGJ5dGVzIHBlciBjaGFyYWN0ZXJcbiAgICAgICAgZm9yICh2YXIgaT0wLCBUb3RhbExlbj1idWYubGVuZ3RoOyBpPFRvdGFsTGVuOyBpKyspIHtcbiAgICAgICAgICBidWZbaV09Y29tcHJlc3NlZFtpKjJdKjI1Nitjb21wcmVzc2VkW2kqMisxXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgICAgYnVmLmZvckVhY2goZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChmKGMpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBMWlN0cmluZy5kZWNvbXByZXNzKHJlc3VsdC5qb2luKCcnKSk7XG5cbiAgICB9XG5cbiAgfSxcblxuXG4gIC8vY29tcHJlc3MgaW50byBhIHN0cmluZyB0aGF0IGlzIGFscmVhZHkgVVJJIGVuY29kZWRcbiAgY29tcHJlc3NUb0VuY29kZWRVUklDb21wb25lbnQ6IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgIGlmIChpbnB1dCA9PSBudWxsKSByZXR1cm4gXCJcIjtcbiAgICByZXR1cm4gTFpTdHJpbmcuX2NvbXByZXNzKGlucHV0LCA2LCBmdW5jdGlvbihhKXtyZXR1cm4ga2V5U3RyVXJpU2FmZS5jaGFyQXQoYSk7fSk7XG4gIH0sXG5cbiAgLy9kZWNvbXByZXNzIGZyb20gYW4gb3V0cHV0IG9mIGNvbXByZXNzVG9FbmNvZGVkVVJJQ29tcG9uZW50XG4gIGRlY29tcHJlc3NGcm9tRW5jb2RlZFVSSUNvbXBvbmVudDpmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICBpZiAoaW5wdXQgPT0gbnVsbCkgcmV0dXJuIFwiXCI7XG4gICAgaWYgKGlucHV0ID09IFwiXCIpIHJldHVybiBudWxsO1xuICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZSgvIC9nLCBcIitcIik7XG4gICAgcmV0dXJuIExaU3RyaW5nLl9kZWNvbXByZXNzKGlucHV0Lmxlbmd0aCwgMzIsIGZ1bmN0aW9uKGluZGV4KSB7IHJldHVybiBnZXRCYXNlVmFsdWUoa2V5U3RyVXJpU2FmZSwgaW5wdXQuY2hhckF0KGluZGV4KSk7IH0pO1xuICB9LFxuXG4gIGNvbXByZXNzOiBmdW5jdGlvbiAodW5jb21wcmVzc2VkKSB7XG4gICAgcmV0dXJuIExaU3RyaW5nLl9jb21wcmVzcyh1bmNvbXByZXNzZWQsIDE2LCBmdW5jdGlvbihhKXtyZXR1cm4gZihhKTt9KTtcbiAgfSxcbiAgX2NvbXByZXNzOiBmdW5jdGlvbiAodW5jb21wcmVzc2VkLCBiaXRzUGVyQ2hhciwgZ2V0Q2hhckZyb21JbnQpIHtcbiAgICBpZiAodW5jb21wcmVzc2VkID09IG51bGwpIHJldHVybiBcIlwiO1xuICAgIHZhciBpLCB2YWx1ZSxcbiAgICAgICAgY29udGV4dF9kaWN0aW9uYXJ5PSB7fSxcbiAgICAgICAgY29udGV4dF9kaWN0aW9uYXJ5VG9DcmVhdGU9IHt9LFxuICAgICAgICBjb250ZXh0X2M9XCJcIixcbiAgICAgICAgY29udGV4dF93Yz1cIlwiLFxuICAgICAgICBjb250ZXh0X3c9XCJcIixcbiAgICAgICAgY29udGV4dF9lbmxhcmdlSW49IDIsIC8vIENvbXBlbnNhdGUgZm9yIHRoZSBmaXJzdCBlbnRyeSB3aGljaCBzaG91bGQgbm90IGNvdW50XG4gICAgICAgIGNvbnRleHRfZGljdFNpemU9IDMsXG4gICAgICAgIGNvbnRleHRfbnVtQml0cz0gMixcbiAgICAgICAgY29udGV4dF9kYXRhPVtdLFxuICAgICAgICBjb250ZXh0X2RhdGFfdmFsPTAsXG4gICAgICAgIGNvbnRleHRfZGF0YV9wb3NpdGlvbj0wLFxuICAgICAgICBpaTtcblxuICAgIGZvciAoaWkgPSAwOyBpaSA8IHVuY29tcHJlc3NlZC5sZW5ndGg7IGlpICs9IDEpIHtcbiAgICAgIGNvbnRleHRfYyA9IHVuY29tcHJlc3NlZC5jaGFyQXQoaWkpO1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29udGV4dF9kaWN0aW9uYXJ5LGNvbnRleHRfYykpIHtcbiAgICAgICAgY29udGV4dF9kaWN0aW9uYXJ5W2NvbnRleHRfY10gPSBjb250ZXh0X2RpY3RTaXplKys7XG4gICAgICAgIGNvbnRleHRfZGljdGlvbmFyeVRvQ3JlYXRlW2NvbnRleHRfY10gPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0X3djID0gY29udGV4dF93ICsgY29udGV4dF9jO1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjb250ZXh0X2RpY3Rpb25hcnksY29udGV4dF93YykpIHtcbiAgICAgICAgY29udGV4dF93ID0gY29udGV4dF93YztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29udGV4dF9kaWN0aW9uYXJ5VG9DcmVhdGUsY29udGV4dF93KSkge1xuICAgICAgICAgIGlmIChjb250ZXh0X3cuY2hhckNvZGVBdCgwKTwyNTYpIHtcbiAgICAgICAgICAgIGZvciAoaT0wIDsgaTxjb250ZXh0X251bUJpdHMgOyBpKyspIHtcbiAgICAgICAgICAgICAgY29udGV4dF9kYXRhX3ZhbCA9IChjb250ZXh0X2RhdGFfdmFsIDw8IDEpO1xuICAgICAgICAgICAgICBpZiAoY29udGV4dF9kYXRhX3Bvc2l0aW9uID09IGJpdHNQZXJDaGFyLTEpIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0X2RhdGFfcG9zaXRpb24gPSAwO1xuICAgICAgICAgICAgICAgIGNvbnRleHRfZGF0YS5wdXNoKGdldENoYXJGcm9tSW50KGNvbnRleHRfZGF0YV92YWwpKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0X2RhdGFfdmFsID0gMDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0X2RhdGFfcG9zaXRpb24rKztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFsdWUgPSBjb250ZXh0X3cuY2hhckNvZGVBdCgwKTtcbiAgICAgICAgICAgIGZvciAoaT0wIDsgaTw4IDsgaSsrKSB7XG4gICAgICAgICAgICAgIGNvbnRleHRfZGF0YV92YWwgPSAoY29udGV4dF9kYXRhX3ZhbCA8PCAxKSB8ICh2YWx1ZSYxKTtcbiAgICAgICAgICAgICAgaWYgKGNvbnRleHRfZGF0YV9wb3NpdGlvbiA9PSBiaXRzUGVyQ2hhci0xKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dF9kYXRhX3Bvc2l0aW9uID0gMDtcbiAgICAgICAgICAgICAgICBjb250ZXh0X2RhdGEucHVzaChnZXRDaGFyRnJvbUludChjb250ZXh0X2RhdGFfdmFsKSk7XG4gICAgICAgICAgICAgICAgY29udGV4dF9kYXRhX3ZhbCA9IDA7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udGV4dF9kYXRhX3Bvc2l0aW9uKys7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSA+PiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZSA9IDE7XG4gICAgICAgICAgICBmb3IgKGk9MCA7IGk8Y29udGV4dF9udW1CaXRzIDsgaSsrKSB7XG4gICAgICAgICAgICAgIGNvbnRleHRfZGF0YV92YWwgPSAoY29udGV4dF9kYXRhX3ZhbCA8PCAxKSB8IHZhbHVlO1xuICAgICAgICAgICAgICBpZiAoY29udGV4dF9kYXRhX3Bvc2l0aW9uID09Yml0c1BlckNoYXItMSkge1xuICAgICAgICAgICAgICAgIGNvbnRleHRfZGF0YV9wb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICAgICAgY29udGV4dF9kYXRhLnB1c2goZ2V0Q2hhckZyb21JbnQoY29udGV4dF9kYXRhX3ZhbCkpO1xuICAgICAgICAgICAgICAgIGNvbnRleHRfZGF0YV92YWwgPSAwO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRleHRfZGF0YV9wb3NpdGlvbisrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHZhbHVlID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbHVlID0gY29udGV4dF93LmNoYXJDb2RlQXQoMCk7XG4gICAgICAgICAgICBmb3IgKGk9MCA7IGk8MTYgOyBpKyspIHtcbiAgICAgICAgICAgICAgY29udGV4dF9kYXRhX3ZhbCA9IChjb250ZXh0X2RhdGFfdmFsIDw8IDEpIHwgKHZhbHVlJjEpO1xuICAgICAgICAgICAgICBpZiAoY29udGV4dF9kYXRhX3Bvc2l0aW9uID09IGJpdHNQZXJDaGFyLTEpIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0X2RhdGFfcG9zaXRpb24gPSAwO1xuICAgICAgICAgICAgICAgIGNvbnRleHRfZGF0YS5wdXNoKGdldENoYXJGcm9tSW50KGNvbnRleHRfZGF0YV92YWwpKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0X2RhdGFfdmFsID0gMDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0X2RhdGFfcG9zaXRpb24rKztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlID4+IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnRleHRfZW5sYXJnZUluLS07XG4gICAgICAgICAgaWYgKGNvbnRleHRfZW5sYXJnZUluID09IDApIHtcbiAgICAgICAgICAgIGNvbnRleHRfZW5sYXJnZUluID0gTWF0aC5wb3coMiwgY29udGV4dF9udW1CaXRzKTtcbiAgICAgICAgICAgIGNvbnRleHRfbnVtQml0cysrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWxldGUgY29udGV4dF9kaWN0aW9uYXJ5VG9DcmVhdGVbY29udGV4dF93XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWx1ZSA9IGNvbnRleHRfZGljdGlvbmFyeVtjb250ZXh0X3ddO1xuICAgICAgICAgIGZvciAoaT0wIDsgaTxjb250ZXh0X251bUJpdHMgOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnRleHRfZGF0YV92YWwgPSAoY29udGV4dF9kYXRhX3ZhbCA8PCAxKSB8ICh2YWx1ZSYxKTtcbiAgICAgICAgICAgIGlmIChjb250ZXh0X2RhdGFfcG9zaXRpb24gPT0gYml0c1BlckNoYXItMSkge1xuICAgICAgICAgICAgICBjb250ZXh0X2RhdGFfcG9zaXRpb24gPSAwO1xuICAgICAgICAgICAgICBjb250ZXh0X2RhdGEucHVzaChnZXRDaGFyRnJvbUludChjb250ZXh0X2RhdGFfdmFsKSk7XG4gICAgICAgICAgICAgIGNvbnRleHRfZGF0YV92YWwgPSAwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29udGV4dF9kYXRhX3Bvc2l0aW9uKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlID4+IDE7XG4gICAgICAgICAgfVxuXG5cbiAgICAgICAgfVxuICAgICAgICBjb250ZXh0X2VubGFyZ2VJbi0tO1xuICAgICAgICBpZiAoY29udGV4dF9lbmxhcmdlSW4gPT0gMCkge1xuICAgICAgICAgIGNvbnRleHRfZW5sYXJnZUluID0gTWF0aC5wb3coMiwgY29udGV4dF9udW1CaXRzKTtcbiAgICAgICAgICBjb250ZXh0X251bUJpdHMrKztcbiAgICAgICAgfVxuICAgICAgICAvLyBBZGQgd2MgdG8gdGhlIGRpY3Rpb25hcnkuXG4gICAgICAgIGNvbnRleHRfZGljdGlvbmFyeVtjb250ZXh0X3djXSA9IGNvbnRleHRfZGljdFNpemUrKztcbiAgICAgICAgY29udGV4dF93ID0gU3RyaW5nKGNvbnRleHRfYyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gT3V0cHV0IHRoZSBjb2RlIGZvciB3LlxuICAgIGlmIChjb250ZXh0X3cgIT09IFwiXCIpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29udGV4dF9kaWN0aW9uYXJ5VG9DcmVhdGUsY29udGV4dF93KSkge1xuICAgICAgICBpZiAoY29udGV4dF93LmNoYXJDb2RlQXQoMCk8MjU2KSB7XG4gICAgICAgICAgZm9yIChpPTAgOyBpPGNvbnRleHRfbnVtQml0cyA7IGkrKykge1xuICAgICAgICAgICAgY29udGV4dF9kYXRhX3ZhbCA9IChjb250ZXh0X2RhdGFfdmFsIDw8IDEpO1xuICAgICAgICAgICAgaWYgKGNvbnRleHRfZGF0YV9wb3NpdGlvbiA9PSBiaXRzUGVyQ2hhci0xKSB7XG4gICAgICAgICAgICAgIGNvbnRleHRfZGF0YV9wb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICAgIGNvbnRleHRfZGF0YS5wdXNoKGdldENoYXJGcm9tSW50KGNvbnRleHRfZGF0YV92YWwpKTtcbiAgICAgICAgICAgICAgY29udGV4dF9kYXRhX3ZhbCA9IDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb250ZXh0X2RhdGFfcG9zaXRpb24rKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdmFsdWUgPSBjb250ZXh0X3cuY2hhckNvZGVBdCgwKTtcbiAgICAgICAgICBmb3IgKGk9MCA7IGk8OCA7IGkrKykge1xuICAgICAgICAgICAgY29udGV4dF9kYXRhX3ZhbCA9IChjb250ZXh0X2RhdGFfdmFsIDw8IDEpIHwgKHZhbHVlJjEpO1xuICAgICAgICAgICAgaWYgKGNvbnRleHRfZGF0YV9wb3NpdGlvbiA9PSBiaXRzUGVyQ2hhci0xKSB7XG4gICAgICAgICAgICAgIGNvbnRleHRfZGF0YV9wb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICAgIGNvbnRleHRfZGF0YS5wdXNoKGdldENoYXJGcm9tSW50KGNvbnRleHRfZGF0YV92YWwpKTtcbiAgICAgICAgICAgICAgY29udGV4dF9kYXRhX3ZhbCA9IDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb250ZXh0X2RhdGFfcG9zaXRpb24rKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgPj4gMTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWUgPSAxO1xuICAgICAgICAgIGZvciAoaT0wIDsgaTxjb250ZXh0X251bUJpdHMgOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnRleHRfZGF0YV92YWwgPSAoY29udGV4dF9kYXRhX3ZhbCA8PCAxKSB8IHZhbHVlO1xuICAgICAgICAgICAgaWYgKGNvbnRleHRfZGF0YV9wb3NpdGlvbiA9PSBiaXRzUGVyQ2hhci0xKSB7XG4gICAgICAgICAgICAgIGNvbnRleHRfZGF0YV9wb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICAgIGNvbnRleHRfZGF0YS5wdXNoKGdldENoYXJGcm9tSW50KGNvbnRleHRfZGF0YV92YWwpKTtcbiAgICAgICAgICAgICAgY29udGV4dF9kYXRhX3ZhbCA9IDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb250ZXh0X2RhdGFfcG9zaXRpb24rKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbHVlID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFsdWUgPSBjb250ZXh0X3cuY2hhckNvZGVBdCgwKTtcbiAgICAgICAgICBmb3IgKGk9MCA7IGk8MTYgOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnRleHRfZGF0YV92YWwgPSAoY29udGV4dF9kYXRhX3ZhbCA8PCAxKSB8ICh2YWx1ZSYxKTtcbiAgICAgICAgICAgIGlmIChjb250ZXh0X2RhdGFfcG9zaXRpb24gPT0gYml0c1BlckNoYXItMSkge1xuICAgICAgICAgICAgICBjb250ZXh0X2RhdGFfcG9zaXRpb24gPSAwO1xuICAgICAgICAgICAgICBjb250ZXh0X2RhdGEucHVzaChnZXRDaGFyRnJvbUludChjb250ZXh0X2RhdGFfdmFsKSk7XG4gICAgICAgICAgICAgIGNvbnRleHRfZGF0YV92YWwgPSAwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29udGV4dF9kYXRhX3Bvc2l0aW9uKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlID4+IDE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnRleHRfZW5sYXJnZUluLS07XG4gICAgICAgIGlmIChjb250ZXh0X2VubGFyZ2VJbiA9PSAwKSB7XG4gICAgICAgICAgY29udGV4dF9lbmxhcmdlSW4gPSBNYXRoLnBvdygyLCBjb250ZXh0X251bUJpdHMpO1xuICAgICAgICAgIGNvbnRleHRfbnVtQml0cysrO1xuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZSBjb250ZXh0X2RpY3Rpb25hcnlUb0NyZWF0ZVtjb250ZXh0X3ddO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSBjb250ZXh0X2RpY3Rpb25hcnlbY29udGV4dF93XTtcbiAgICAgICAgZm9yIChpPTAgOyBpPGNvbnRleHRfbnVtQml0cyA7IGkrKykge1xuICAgICAgICAgIGNvbnRleHRfZGF0YV92YWwgPSAoY29udGV4dF9kYXRhX3ZhbCA8PCAxKSB8ICh2YWx1ZSYxKTtcbiAgICAgICAgICBpZiAoY29udGV4dF9kYXRhX3Bvc2l0aW9uID09IGJpdHNQZXJDaGFyLTEpIHtcbiAgICAgICAgICAgIGNvbnRleHRfZGF0YV9wb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICBjb250ZXh0X2RhdGEucHVzaChnZXRDaGFyRnJvbUludChjb250ZXh0X2RhdGFfdmFsKSk7XG4gICAgICAgICAgICBjb250ZXh0X2RhdGFfdmFsID0gMDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udGV4dF9kYXRhX3Bvc2l0aW9uKys7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhbHVlID0gdmFsdWUgPj4gMTtcbiAgICAgICAgfVxuXG5cbiAgICAgIH1cbiAgICAgIGNvbnRleHRfZW5sYXJnZUluLS07XG4gICAgICBpZiAoY29udGV4dF9lbmxhcmdlSW4gPT0gMCkge1xuICAgICAgICBjb250ZXh0X2VubGFyZ2VJbiA9IE1hdGgucG93KDIsIGNvbnRleHRfbnVtQml0cyk7XG4gICAgICAgIGNvbnRleHRfbnVtQml0cysrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1hcmsgdGhlIGVuZCBvZiB0aGUgc3RyZWFtXG4gICAgdmFsdWUgPSAyO1xuICAgIGZvciAoaT0wIDsgaTxjb250ZXh0X251bUJpdHMgOyBpKyspIHtcbiAgICAgIGNvbnRleHRfZGF0YV92YWwgPSAoY29udGV4dF9kYXRhX3ZhbCA8PCAxKSB8ICh2YWx1ZSYxKTtcbiAgICAgIGlmIChjb250ZXh0X2RhdGFfcG9zaXRpb24gPT0gYml0c1BlckNoYXItMSkge1xuICAgICAgICBjb250ZXh0X2RhdGFfcG9zaXRpb24gPSAwO1xuICAgICAgICBjb250ZXh0X2RhdGEucHVzaChnZXRDaGFyRnJvbUludChjb250ZXh0X2RhdGFfdmFsKSk7XG4gICAgICAgIGNvbnRleHRfZGF0YV92YWwgPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udGV4dF9kYXRhX3Bvc2l0aW9uKys7XG4gICAgICB9XG4gICAgICB2YWx1ZSA9IHZhbHVlID4+IDE7XG4gICAgfVxuXG4gICAgLy8gRmx1c2ggdGhlIGxhc3QgY2hhclxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb250ZXh0X2RhdGFfdmFsID0gKGNvbnRleHRfZGF0YV92YWwgPDwgMSk7XG4gICAgICBpZiAoY29udGV4dF9kYXRhX3Bvc2l0aW9uID09IGJpdHNQZXJDaGFyLTEpIHtcbiAgICAgICAgY29udGV4dF9kYXRhLnB1c2goZ2V0Q2hhckZyb21JbnQoY29udGV4dF9kYXRhX3ZhbCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGVsc2UgY29udGV4dF9kYXRhX3Bvc2l0aW9uKys7XG4gICAgfVxuICAgIHJldHVybiBjb250ZXh0X2RhdGEuam9pbignJyk7XG4gIH0sXG5cbiAgZGVjb21wcmVzczogZnVuY3Rpb24gKGNvbXByZXNzZWQpIHtcbiAgICBpZiAoY29tcHJlc3NlZCA9PSBudWxsKSByZXR1cm4gXCJcIjtcbiAgICBpZiAoY29tcHJlc3NlZCA9PSBcIlwiKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gTFpTdHJpbmcuX2RlY29tcHJlc3MoY29tcHJlc3NlZC5sZW5ndGgsIDMyNzY4LCBmdW5jdGlvbihpbmRleCkgeyByZXR1cm4gY29tcHJlc3NlZC5jaGFyQ29kZUF0KGluZGV4KTsgfSk7XG4gIH0sXG5cbiAgX2RlY29tcHJlc3M6IGZ1bmN0aW9uIChsZW5ndGgsIHJlc2V0VmFsdWUsIGdldE5leHRWYWx1ZSkge1xuICAgIHZhciBkaWN0aW9uYXJ5ID0gW10sXG4gICAgICAgIG5leHQsXG4gICAgICAgIGVubGFyZ2VJbiA9IDQsXG4gICAgICAgIGRpY3RTaXplID0gNCxcbiAgICAgICAgbnVtQml0cyA9IDMsXG4gICAgICAgIGVudHJ5ID0gXCJcIixcbiAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgIGksXG4gICAgICAgIHcsXG4gICAgICAgIGJpdHMsIHJlc2IsIG1heHBvd2VyLCBwb3dlcixcbiAgICAgICAgYyxcbiAgICAgICAgZGF0YSA9IHt2YWw6Z2V0TmV4dFZhbHVlKDApLCBwb3NpdGlvbjpyZXNldFZhbHVlLCBpbmRleDoxfTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCAzOyBpICs9IDEpIHtcbiAgICAgIGRpY3Rpb25hcnlbaV0gPSBpO1xuICAgIH1cblxuICAgIGJpdHMgPSAwO1xuICAgIG1heHBvd2VyID0gTWF0aC5wb3coMiwyKTtcbiAgICBwb3dlcj0xO1xuICAgIHdoaWxlIChwb3dlciE9bWF4cG93ZXIpIHtcbiAgICAgIHJlc2IgPSBkYXRhLnZhbCAmIGRhdGEucG9zaXRpb247XG4gICAgICBkYXRhLnBvc2l0aW9uID4+PSAxO1xuICAgICAgaWYgKGRhdGEucG9zaXRpb24gPT0gMCkge1xuICAgICAgICBkYXRhLnBvc2l0aW9uID0gcmVzZXRWYWx1ZTtcbiAgICAgICAgZGF0YS52YWwgPSBnZXROZXh0VmFsdWUoZGF0YS5pbmRleCsrKTtcbiAgICAgIH1cbiAgICAgIGJpdHMgfD0gKHJlc2I+MCA/IDEgOiAwKSAqIHBvd2VyO1xuICAgICAgcG93ZXIgPDw9IDE7XG4gICAgfVxuXG4gICAgc3dpdGNoIChuZXh0ID0gYml0cykge1xuICAgICAgY2FzZSAwOlxuICAgICAgICAgIGJpdHMgPSAwO1xuICAgICAgICAgIG1heHBvd2VyID0gTWF0aC5wb3coMiw4KTtcbiAgICAgICAgICBwb3dlcj0xO1xuICAgICAgICAgIHdoaWxlIChwb3dlciE9bWF4cG93ZXIpIHtcbiAgICAgICAgICAgIHJlc2IgPSBkYXRhLnZhbCAmIGRhdGEucG9zaXRpb247XG4gICAgICAgICAgICBkYXRhLnBvc2l0aW9uID4+PSAxO1xuICAgICAgICAgICAgaWYgKGRhdGEucG9zaXRpb24gPT0gMCkge1xuICAgICAgICAgICAgICBkYXRhLnBvc2l0aW9uID0gcmVzZXRWYWx1ZTtcbiAgICAgICAgICAgICAgZGF0YS52YWwgPSBnZXROZXh0VmFsdWUoZGF0YS5pbmRleCsrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJpdHMgfD0gKHJlc2I+MCA/IDEgOiAwKSAqIHBvd2VyO1xuICAgICAgICAgICAgcG93ZXIgPDw9IDE7XG4gICAgICAgICAgfVxuICAgICAgICBjID0gZihiaXRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDE6XG4gICAgICAgICAgYml0cyA9IDA7XG4gICAgICAgICAgbWF4cG93ZXIgPSBNYXRoLnBvdygyLDE2KTtcbiAgICAgICAgICBwb3dlcj0xO1xuICAgICAgICAgIHdoaWxlIChwb3dlciE9bWF4cG93ZXIpIHtcbiAgICAgICAgICAgIHJlc2IgPSBkYXRhLnZhbCAmIGRhdGEucG9zaXRpb247XG4gICAgICAgICAgICBkYXRhLnBvc2l0aW9uID4+PSAxO1xuICAgICAgICAgICAgaWYgKGRhdGEucG9zaXRpb24gPT0gMCkge1xuICAgICAgICAgICAgICBkYXRhLnBvc2l0aW9uID0gcmVzZXRWYWx1ZTtcbiAgICAgICAgICAgICAgZGF0YS52YWwgPSBnZXROZXh0VmFsdWUoZGF0YS5pbmRleCsrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJpdHMgfD0gKHJlc2I+MCA/IDEgOiAwKSAqIHBvd2VyO1xuICAgICAgICAgICAgcG93ZXIgPDw9IDE7XG4gICAgICAgICAgfVxuICAgICAgICBjID0gZihiaXRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICBkaWN0aW9uYXJ5WzNdID0gYztcbiAgICB3ID0gYztcbiAgICByZXN1bHQucHVzaChjKTtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKGRhdGEuaW5kZXggPiBsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB9XG5cbiAgICAgIGJpdHMgPSAwO1xuICAgICAgbWF4cG93ZXIgPSBNYXRoLnBvdygyLG51bUJpdHMpO1xuICAgICAgcG93ZXI9MTtcbiAgICAgIHdoaWxlIChwb3dlciE9bWF4cG93ZXIpIHtcbiAgICAgICAgcmVzYiA9IGRhdGEudmFsICYgZGF0YS5wb3NpdGlvbjtcbiAgICAgICAgZGF0YS5wb3NpdGlvbiA+Pj0gMTtcbiAgICAgICAgaWYgKGRhdGEucG9zaXRpb24gPT0gMCkge1xuICAgICAgICAgIGRhdGEucG9zaXRpb24gPSByZXNldFZhbHVlO1xuICAgICAgICAgIGRhdGEudmFsID0gZ2V0TmV4dFZhbHVlKGRhdGEuaW5kZXgrKyk7XG4gICAgICAgIH1cbiAgICAgICAgYml0cyB8PSAocmVzYj4wID8gMSA6IDApICogcG93ZXI7XG4gICAgICAgIHBvd2VyIDw8PSAxO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2ggKGMgPSBiaXRzKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBiaXRzID0gMDtcbiAgICAgICAgICBtYXhwb3dlciA9IE1hdGgucG93KDIsOCk7XG4gICAgICAgICAgcG93ZXI9MTtcbiAgICAgICAgICB3aGlsZSAocG93ZXIhPW1heHBvd2VyKSB7XG4gICAgICAgICAgICByZXNiID0gZGF0YS52YWwgJiBkYXRhLnBvc2l0aW9uO1xuICAgICAgICAgICAgZGF0YS5wb3NpdGlvbiA+Pj0gMTtcbiAgICAgICAgICAgIGlmIChkYXRhLnBvc2l0aW9uID09IDApIHtcbiAgICAgICAgICAgICAgZGF0YS5wb3NpdGlvbiA9IHJlc2V0VmFsdWU7XG4gICAgICAgICAgICAgIGRhdGEudmFsID0gZ2V0TmV4dFZhbHVlKGRhdGEuaW5kZXgrKyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBiaXRzIHw9IChyZXNiPjAgPyAxIDogMCkgKiBwb3dlcjtcbiAgICAgICAgICAgIHBvd2VyIDw8PSAxO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRpY3Rpb25hcnlbZGljdFNpemUrK10gPSBmKGJpdHMpO1xuICAgICAgICAgIGMgPSBkaWN0U2l6ZS0xO1xuICAgICAgICAgIGVubGFyZ2VJbi0tO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgYml0cyA9IDA7XG4gICAgICAgICAgbWF4cG93ZXIgPSBNYXRoLnBvdygyLDE2KTtcbiAgICAgICAgICBwb3dlcj0xO1xuICAgICAgICAgIHdoaWxlIChwb3dlciE9bWF4cG93ZXIpIHtcbiAgICAgICAgICAgIHJlc2IgPSBkYXRhLnZhbCAmIGRhdGEucG9zaXRpb247XG4gICAgICAgICAgICBkYXRhLnBvc2l0aW9uID4+PSAxO1xuICAgICAgICAgICAgaWYgKGRhdGEucG9zaXRpb24gPT0gMCkge1xuICAgICAgICAgICAgICBkYXRhLnBvc2l0aW9uID0gcmVzZXRWYWx1ZTtcbiAgICAgICAgICAgICAgZGF0YS52YWwgPSBnZXROZXh0VmFsdWUoZGF0YS5pbmRleCsrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJpdHMgfD0gKHJlc2I+MCA/IDEgOiAwKSAqIHBvd2VyO1xuICAgICAgICAgICAgcG93ZXIgPDw9IDE7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRpY3Rpb25hcnlbZGljdFNpemUrK10gPSBmKGJpdHMpO1xuICAgICAgICAgIGMgPSBkaWN0U2l6ZS0xO1xuICAgICAgICAgIGVubGFyZ2VJbi0tO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC5qb2luKCcnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGVubGFyZ2VJbiA9PSAwKSB7XG4gICAgICAgIGVubGFyZ2VJbiA9IE1hdGgucG93KDIsIG51bUJpdHMpO1xuICAgICAgICBudW1CaXRzKys7XG4gICAgICB9XG5cbiAgICAgIGlmIChkaWN0aW9uYXJ5W2NdKSB7XG4gICAgICAgIGVudHJ5ID0gZGljdGlvbmFyeVtjXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChjID09PSBkaWN0U2l6ZSkge1xuICAgICAgICAgIGVudHJ5ID0gdyArIHcuY2hhckF0KDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXN1bHQucHVzaChlbnRyeSk7XG5cbiAgICAgIC8vIEFkZCB3K2VudHJ5WzBdIHRvIHRoZSBkaWN0aW9uYXJ5LlxuICAgICAgZGljdGlvbmFyeVtkaWN0U2l6ZSsrXSA9IHcgKyBlbnRyeS5jaGFyQXQoMCk7XG4gICAgICBlbmxhcmdlSW4tLTtcblxuICAgICAgdyA9IGVudHJ5O1xuXG4gICAgICBpZiAoZW5sYXJnZUluID09IDApIHtcbiAgICAgICAgZW5sYXJnZUluID0gTWF0aC5wb3coMiwgbnVtQml0cyk7XG4gICAgICAgIG51bUJpdHMrKztcbiAgICAgIH1cblxuICAgIH1cbiAgfVxufTtcbiAgcmV0dXJuIExaU3RyaW5nO1xufSkoKTtcblxuaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuICBkZWZpbmUoZnVuY3Rpb24gKCkgeyByZXR1cm4gTFpTdHJpbmc7IH0pO1xufSBlbHNlIGlmKCB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUgIT0gbnVsbCApIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBMWlN0cmluZ1xufVxuIiwgImltcG9ydCB7IEFwcCwgRWRpdG9yLCBNYXJrZG93blZpZXcsIE1vZGFsLCBOb3RpY2UsIFBsdWdpbiwgUGx1Z2luU2V0dGluZ1RhYiwgU2V0dGluZywgTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dCB9IGZyb20gJ29ic2lkaWFuJztcclxuaW1wb3J0IFJlbmRlcmVyLCB7IENpcmN1aXRSZW5kZXJDaGlsZCB9IGZyb20gJy4vY2lyY3VpdFJlbmRlcmVyJztcclxuXHJcbi8vIFJlbWVtYmVyIHRvIHJlbmFtZSB0aGVzZSBjbGFzc2VzIGFuZCBpbnRlcmZhY2VzIVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaXJjdWl0SnNTZXR0aW5ncyB7XHJcblx0ZWRpdGFibGU6IGJvb2xlYW47XHJcblx0ZWRpdExpbms6IGJvb2xlYW47XHJcblx0Y2lyY3VpdEpzVXJsOiBzdHJpbmc7XHJcblx0Y2lyY3VpdFRhZzogc3RyaW5nO1xyXG59XHJcblxyXG5jb25zdCBERUZBVUxUX1NFVFRJTkdTOiBDaXJjdWl0SnNTZXR0aW5ncyA9IHtcclxuXHRlZGl0YWJsZTogdHJ1ZSxcclxuXHRlZGl0TGluazogdHJ1ZSxcclxuXHRjaXJjdWl0SnNVcmw6IFwiaHR0cDovL2ZhbHN0YWQuY29tL2NpcmN1aXQvY2lyY3VpdGpzLmh0bWxcIixcclxuXHRjaXJjdWl0VGFnOiBcImNpcmN1aXRqc1wiXHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2lyY3VpdEpzUGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcclxuXHRzZXR0aW5nczogQ2lyY3VpdEpzU2V0dGluZ3M7XHJcblx0cmVuZGVyZXI6IFJlbmRlcmVyO1xyXG5cclxuXHRwb3N0cHJvY2Vzc29yID0gYXN5bmMgKGNvbnRlbnQ6IHN0cmluZywgZWw6IEhUTUxFbGVtZW50LCBjdHg6IE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQpID0+IHtcclxuXHRcdGN0eC5hZGRDaGlsZChuZXcgQ2lyY3VpdFJlbmRlckNoaWxkKGVsLCB0aGlzLCBjb250ZW50LCB0aGlzLnNldHRpbmdzKSk7XHJcblx0fVxyXG5cclxuXHRhc3luYyBvbmxvYWQoKSB7XHJcblx0XHRhd2FpdCB0aGlzLmxvYWRTZXR0aW5ncygpO1xyXG5cclxuXHRcdHRoaXMucmVnaXN0ZXJNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3Nvcih0aGlzLnNldHRpbmdzLmNpcmN1aXRUYWcsIHRoaXMucG9zdHByb2Nlc3Nvcik7XHJcblx0fVxyXG5cclxuXHRvbnVubG9hZCgpIHtcclxuXHJcblx0fVxyXG5cclxuXHRhc3luYyBsb2FkU2V0dGluZ3MoKSB7XHJcblx0XHR0aGlzLnNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9TRVRUSU5HUywgYXdhaXQgdGhpcy5sb2FkRGF0YSgpKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIHNhdmVTZXR0aW5ncygpIHtcclxuXHRcdGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcblx0fVxyXG59XHJcblxyXG5cclxuY2xhc3MgU2FtcGxlU2V0dGluZ1RhYiBleHRlbmRzIFBsdWdpblNldHRpbmdUYWIge1xyXG5cdHBsdWdpbjogQ2lyY3VpdEpzUGx1Z2luO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihhcHA6IEFwcCwgcGx1Z2luOiBDaXJjdWl0SnNQbHVnaW4pIHtcclxuXHRcdHN1cGVyKGFwcCwgcGx1Z2luKTtcclxuXHRcdHRoaXMucGx1Z2luID0gcGx1Z2luO1xyXG5cdH1cclxuXHJcblx0ZGlzcGxheSgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHtjb250YWluZXJFbH0gPSB0aGlzO1xyXG5cclxuXHRcdGNvbnRhaW5lckVsLmVtcHR5KCk7XHJcblxyXG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoJ2gyJywge3RleHQ6ICdTZXR0aW5ncyBmb3IgT2JzaWRpYW4gQ2lyY3VpdEpTJ30pO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0XHQuc2V0TmFtZSgnRWRpdGFibGUnKVxyXG5cdFx0XHQuc2V0RGVzYygnSWYgdGhlIHNpbXVsYXRpb24gY2FuIGJlIGVkaXRlZCcpXHJcblx0XHRcdC5hZGRUb2dnbGUoYm9vbGVhbiA9PiBib29sZWFuXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmVkaXRhYmxlKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdFZGl0YWJsZTogJyArIHZhbHVlKTtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmVkaXRhYmxlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuXHRcdFx0XHR9KSk7XHJcblx0fVxyXG59XHJcbiIsICJpbXBvcnQgeyBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LCBNYXJrZG93blJlbmRlckNoaWxkLCBwYXJzZVlhbWwgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgeyBMWlN0cmluZ1N0YXRpYyB9IGZyb20gJ2x6LXN0cmluZyc7XG5pbXBvcnQgKiBhcyBMWlN0cmluZyBmcm9tICdsei1zdHJpbmcnO1xuaW1wb3J0IHsgQ2lyY3VpdEpzU2V0dGluZ3MgfSBmcm9tICdtYWluJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVuZGVyZXIge1xuXG59XG5cbmV4cG9ydCBjbGFzcyBDaXJjdWl0UmVuZGVyQ2hpbGQgZXh0ZW5kcyBNYXJrZG93blJlbmRlckNoaWxkIHtcbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgY29tcHJlc3NlZDogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjtcbiAgICBzZXR0aW5nczogQ2lyY3VpdEpzU2V0dGluZ3M7XG5cbiAgICBjb25zdHJ1Y3RvcihlbDogSFRNTEVsZW1lbnQsIHJlbmRlcmVyOiBSZW5kZXJlciwgY29udGVudDogc3RyaW5nLCBzZXR0aW5nczogQ2lyY3VpdEpzU2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoZWwpO1xuXG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICAgICAgdGhpcy5jb2RlID0gY29udGVudDtcblxuICAgICAgICB0aGlzLmNvbXByZXNzZWQgPSBMWlN0cmluZy5jb21wcmVzc1RvRW5jb2RlZFVSSUNvbXBvbmVudCh0aGlzLmNvZGUpO1xuICAgICAgICBcbiAgICAgICAgaWYodGhpcy5zZXR0aW5ncy5lZGl0YWJsZSlcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy51cmwgPSBgJHt0aGlzLnNldHRpbmdzLmNpcmN1aXRKc1VybH0/Y3R6PSR7dGhpcy5jb21wcmVzc2VkfSZydW5uaW5nPXRydWVgO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy51cmwgPSBgJHt0aGlzLnNldHRpbmdzLmNpcmN1aXRKc1VybH0/Y3R6PSR7dGhpcy5jb21wcmVzc2VkfSZydW5uaW5nPWZhbHNlYDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9ubG9hZCgpIHtcbiAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblxuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5lZGl0TGluaykge1xuICAgICAgICAgICAgY29uc3QgZWRpdExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcbiAgICAgICAgICAgIGVkaXRMaW5rLnNldEF0dHJpYnV0ZShcImhyZWZcIiwgdGhpcy51cmwpO1xuICAgICAgICAgICAgY29uc3QgZWRpdExpbmtDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJbRURJVF1cIik7XG4gICAgICAgICAgICBlZGl0TGluay5hcHBlbmRDaGlsZChlZGl0TGlua0NvbnRlbnQpO1xuICAgICAgICAgICAgZGl2LmFwcGVuZENoaWxkKGVkaXRMaW5rKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlmcmFtZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaWZyYW1lXCIpO1xuICAgICAgICBpZnJhbWVOb2RlLnNldEF0dHJpYnV0ZShcInNyY1wiLCB0aGlzLnVybCk7XG4gICAgICAgIGlmcmFtZU5vZGUuc2V0QXR0cmlidXRlKFwid2lkdGhcIiwgXCIxMDAlXCIpO1xuICAgICAgICBpZnJhbWVOb2RlLnNldEF0dHJpYnV0ZShcImhlaWdodFwiLCBcIjYwMHB4XCIpO1xuXG4gICAgICAgIFxuICAgICAgICBkaXYuYXBwZW5kQ2hpbGQoaWZyYW1lTm9kZSk7XG5cbiAgICAgICAgdGhpcy5jb250YWluZXJFbC5hcHBlbmRDaGlsZChkaXYpO1xuICAgIH1cblxuICAgIG9udW5sb2FkKCkge1xuICAgIH1cbn0iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFTQSxRQUFJLFlBQVksV0FBVztBQUczQixVQUFJLElBQUksT0FBTztBQUNmLFVBQUksZUFBZTtBQUNuQixVQUFJLGdCQUFnQjtBQUNwQixVQUFJLGlCQUFpQjtBQUVyQiw0QkFBc0IsVUFBVSxXQUFXO0FBQ3pDLFlBQUksQ0FBQyxlQUFlLFdBQVc7QUFDN0IseUJBQWUsWUFBWTtBQUMzQixtQkFBUyxJQUFFLEdBQUksSUFBRSxTQUFTLFFBQVMsS0FBSztBQUN0QywyQkFBZSxVQUFVLFNBQVMsT0FBTyxNQUFNO0FBQUE7QUFBQTtBQUduRCxlQUFPLGVBQWUsVUFBVTtBQUFBO0FBR2xDLFVBQUksWUFBVztBQUFBLFFBQ2Isa0JBQW1CLFNBQVUsT0FBTztBQUNsQyxjQUFJLFNBQVM7QUFBTSxtQkFBTztBQUMxQixjQUFJLE1BQU0sVUFBUyxVQUFVLE9BQU8sR0FBRyxTQUFTLEdBQUU7QUFBQyxtQkFBTyxhQUFhLE9BQU87QUFBQTtBQUM5RSxrQkFBUSxJQUFJLFNBQVM7QUFBQTtBQUFBLGlCQUVoQjtBQUFJLHFCQUFPO0FBQUEsaUJBQ1g7QUFBSSxxQkFBTyxNQUFJO0FBQUEsaUJBQ2Y7QUFBSSxxQkFBTyxNQUFJO0FBQUEsaUJBQ2Y7QUFBSSxxQkFBTyxNQUFJO0FBQUE7QUFBQTtBQUFBLFFBSXRCLHNCQUF1QixTQUFVLE9BQU87QUFDdEMsY0FBSSxTQUFTO0FBQU0sbUJBQU87QUFDMUIsY0FBSSxTQUFTO0FBQUksbUJBQU87QUFDeEIsaUJBQU8sVUFBUyxZQUFZLE1BQU0sUUFBUSxJQUFJLFNBQVMsT0FBTztBQUFFLG1CQUFPLGFBQWEsY0FBYyxNQUFNLE9BQU87QUFBQTtBQUFBO0FBQUEsUUFHakgsaUJBQWtCLFNBQVUsT0FBTztBQUNqQyxjQUFJLFNBQVM7QUFBTSxtQkFBTztBQUMxQixpQkFBTyxVQUFTLFVBQVUsT0FBTyxJQUFJLFNBQVMsR0FBRTtBQUFDLG1CQUFPLEVBQUUsSUFBRTtBQUFBLGVBQVM7QUFBQTtBQUFBLFFBR3ZFLHFCQUFxQixTQUFVLFlBQVk7QUFDekMsY0FBSSxjQUFjO0FBQU0sbUJBQU87QUFDL0IsY0FBSSxjQUFjO0FBQUksbUJBQU87QUFDN0IsaUJBQU8sVUFBUyxZQUFZLFdBQVcsUUFBUSxPQUFPLFNBQVMsT0FBTztBQUFFLG1CQUFPLFdBQVcsV0FBVyxTQUFTO0FBQUE7QUFBQTtBQUFBLFFBSWhILHNCQUFzQixTQUFVLGNBQWM7QUFDNUMsY0FBSSxhQUFhLFVBQVMsU0FBUztBQUNuQyxjQUFJLE1BQUksSUFBSSxXQUFXLFdBQVcsU0FBTztBQUV6QyxtQkFBUyxJQUFFLEdBQUcsV0FBUyxXQUFXLFFBQVEsSUFBRSxVQUFVLEtBQUs7QUFDekQsZ0JBQUksZ0JBQWdCLFdBQVcsV0FBVztBQUMxQyxnQkFBSSxJQUFFLEtBQUssa0JBQWtCO0FBQzdCLGdCQUFJLElBQUUsSUFBRSxLQUFLLGdCQUFnQjtBQUFBO0FBRS9CLGlCQUFPO0FBQUE7QUFBQSxRQUlULDBCQUF5QixTQUFVLFlBQVk7QUFDN0MsY0FBSSxlQUFhLFFBQVEsZUFBYSxRQUFVO0FBQzVDLG1CQUFPLFVBQVMsV0FBVztBQUFBLGlCQUN4QjtBQUNILGdCQUFJLE1BQUksSUFBSSxNQUFNLFdBQVcsU0FBTztBQUNwQyxxQkFBUyxJQUFFLEdBQUcsV0FBUyxJQUFJLFFBQVEsSUFBRSxVQUFVLEtBQUs7QUFDbEQsa0JBQUksS0FBRyxXQUFXLElBQUUsS0FBRyxNQUFJLFdBQVcsSUFBRSxJQUFFO0FBQUE7QUFHNUMsZ0JBQUksU0FBUztBQUNiLGdCQUFJLFFBQVEsU0FBVSxHQUFHO0FBQ3ZCLHFCQUFPLEtBQUssRUFBRTtBQUFBO0FBRWhCLG1CQUFPLFVBQVMsV0FBVyxPQUFPLEtBQUs7QUFBQTtBQUFBO0FBQUEsUUFRN0MsK0JBQStCLFNBQVUsT0FBTztBQUM5QyxjQUFJLFNBQVM7QUFBTSxtQkFBTztBQUMxQixpQkFBTyxVQUFTLFVBQVUsT0FBTyxHQUFHLFNBQVMsR0FBRTtBQUFDLG1CQUFPLGNBQWMsT0FBTztBQUFBO0FBQUE7QUFBQSxRQUk5RSxtQ0FBa0MsU0FBVSxPQUFPO0FBQ2pELGNBQUksU0FBUztBQUFNLG1CQUFPO0FBQzFCLGNBQUksU0FBUztBQUFJLG1CQUFPO0FBQ3hCLGtCQUFRLE1BQU0sUUFBUSxNQUFNO0FBQzVCLGlCQUFPLFVBQVMsWUFBWSxNQUFNLFFBQVEsSUFBSSxTQUFTLE9BQU87QUFBRSxtQkFBTyxhQUFhLGVBQWUsTUFBTSxPQUFPO0FBQUE7QUFBQTtBQUFBLFFBR2xILFVBQVUsU0FBVSxjQUFjO0FBQ2hDLGlCQUFPLFVBQVMsVUFBVSxjQUFjLElBQUksU0FBUyxHQUFFO0FBQUMsbUJBQU8sRUFBRTtBQUFBO0FBQUE7QUFBQSxRQUVuRSxXQUFXLFNBQVUsY0FBYyxhQUFhLGdCQUFnQjtBQUM5RCxjQUFJLGdCQUFnQjtBQUFNLG1CQUFPO0FBQ2pDLGNBQUksR0FBRyxPQUNILHFCQUFvQixJQUNwQiw2QkFBNEIsSUFDNUIsWUFBVSxJQUNWLGFBQVcsSUFDWCxZQUFVLElBQ1Ysb0JBQW1CLEdBQ25CLG1CQUFrQixHQUNsQixrQkFBaUIsR0FDakIsZUFBYSxJQUNiLG1CQUFpQixHQUNqQix3QkFBc0IsR0FDdEI7QUFFSixlQUFLLEtBQUssR0FBRyxLQUFLLGFBQWEsUUFBUSxNQUFNLEdBQUc7QUFDOUMsd0JBQVksYUFBYSxPQUFPO0FBQ2hDLGdCQUFJLENBQUMsT0FBTyxVQUFVLGVBQWUsS0FBSyxvQkFBbUIsWUFBWTtBQUN2RSxpQ0FBbUIsYUFBYTtBQUNoQyx5Q0FBMkIsYUFBYTtBQUFBO0FBRzFDLHlCQUFhLFlBQVk7QUFDekIsZ0JBQUksT0FBTyxVQUFVLGVBQWUsS0FBSyxvQkFBbUIsYUFBYTtBQUN2RSwwQkFBWTtBQUFBLG1CQUNQO0FBQ0wsa0JBQUksT0FBTyxVQUFVLGVBQWUsS0FBSyw0QkFBMkIsWUFBWTtBQUM5RSxvQkFBSSxVQUFVLFdBQVcsS0FBRyxLQUFLO0FBQy9CLHVCQUFLLElBQUUsR0FBSSxJQUFFLGlCQUFrQixLQUFLO0FBQ2xDLHVDQUFvQixvQkFBb0I7QUFDeEMsd0JBQUkseUJBQXlCLGNBQVksR0FBRztBQUMxQyw4Q0FBd0I7QUFDeEIsbUNBQWEsS0FBSyxlQUFlO0FBQ2pDLHlDQUFtQjtBQUFBLDJCQUNkO0FBQ0w7QUFBQTtBQUFBO0FBR0osMEJBQVEsVUFBVSxXQUFXO0FBQzdCLHVCQUFLLElBQUUsR0FBSSxJQUFFLEdBQUksS0FBSztBQUNwQix1Q0FBb0Isb0JBQW9CLElBQU0sUUFBTTtBQUNwRCx3QkFBSSx5QkFBeUIsY0FBWSxHQUFHO0FBQzFDLDhDQUF3QjtBQUN4QixtQ0FBYSxLQUFLLGVBQWU7QUFDakMseUNBQW1CO0FBQUEsMkJBQ2Q7QUFDTDtBQUFBO0FBRUYsNEJBQVEsU0FBUztBQUFBO0FBQUEsdUJBRWQ7QUFDTCwwQkFBUTtBQUNSLHVCQUFLLElBQUUsR0FBSSxJQUFFLGlCQUFrQixLQUFLO0FBQ2xDLHVDQUFvQixvQkFBb0IsSUFBSztBQUM3Qyx3QkFBSSx5QkFBd0IsY0FBWSxHQUFHO0FBQ3pDLDhDQUF3QjtBQUN4QixtQ0FBYSxLQUFLLGVBQWU7QUFDakMseUNBQW1CO0FBQUEsMkJBQ2Q7QUFDTDtBQUFBO0FBRUYsNEJBQVE7QUFBQTtBQUVWLDBCQUFRLFVBQVUsV0FBVztBQUM3Qix1QkFBSyxJQUFFLEdBQUksSUFBRSxJQUFLLEtBQUs7QUFDckIsdUNBQW9CLG9CQUFvQixJQUFNLFFBQU07QUFDcEQsd0JBQUkseUJBQXlCLGNBQVksR0FBRztBQUMxQyw4Q0FBd0I7QUFDeEIsbUNBQWEsS0FBSyxlQUFlO0FBQ2pDLHlDQUFtQjtBQUFBLDJCQUNkO0FBQ0w7QUFBQTtBQUVGLDRCQUFRLFNBQVM7QUFBQTtBQUFBO0FBR3JCO0FBQ0Esb0JBQUkscUJBQXFCLEdBQUc7QUFDMUIsc0NBQW9CLEtBQUssSUFBSSxHQUFHO0FBQ2hDO0FBQUE7QUFFRix1QkFBTywyQkFBMkI7QUFBQSxxQkFDN0I7QUFDTCx3QkFBUSxtQkFBbUI7QUFDM0IscUJBQUssSUFBRSxHQUFJLElBQUUsaUJBQWtCLEtBQUs7QUFDbEMscUNBQW9CLG9CQUFvQixJQUFNLFFBQU07QUFDcEQsc0JBQUkseUJBQXlCLGNBQVksR0FBRztBQUMxQyw0Q0FBd0I7QUFDeEIsaUNBQWEsS0FBSyxlQUFlO0FBQ2pDLHVDQUFtQjtBQUFBLHlCQUNkO0FBQ0w7QUFBQTtBQUVGLDBCQUFRLFNBQVM7QUFBQTtBQUFBO0FBS3JCO0FBQ0Esa0JBQUkscUJBQXFCLEdBQUc7QUFDMUIsb0NBQW9CLEtBQUssSUFBSSxHQUFHO0FBQ2hDO0FBQUE7QUFHRixpQ0FBbUIsY0FBYztBQUNqQywwQkFBWSxPQUFPO0FBQUE7QUFBQTtBQUt2QixjQUFJLGNBQWMsSUFBSTtBQUNwQixnQkFBSSxPQUFPLFVBQVUsZUFBZSxLQUFLLDRCQUEyQixZQUFZO0FBQzlFLGtCQUFJLFVBQVUsV0FBVyxLQUFHLEtBQUs7QUFDL0IscUJBQUssSUFBRSxHQUFJLElBQUUsaUJBQWtCLEtBQUs7QUFDbEMscUNBQW9CLG9CQUFvQjtBQUN4QyxzQkFBSSx5QkFBeUIsY0FBWSxHQUFHO0FBQzFDLDRDQUF3QjtBQUN4QixpQ0FBYSxLQUFLLGVBQWU7QUFDakMsdUNBQW1CO0FBQUEseUJBQ2Q7QUFDTDtBQUFBO0FBQUE7QUFHSix3QkFBUSxVQUFVLFdBQVc7QUFDN0IscUJBQUssSUFBRSxHQUFJLElBQUUsR0FBSSxLQUFLO0FBQ3BCLHFDQUFvQixvQkFBb0IsSUFBTSxRQUFNO0FBQ3BELHNCQUFJLHlCQUF5QixjQUFZLEdBQUc7QUFDMUMsNENBQXdCO0FBQ3hCLGlDQUFhLEtBQUssZUFBZTtBQUNqQyx1Q0FBbUI7QUFBQSx5QkFDZDtBQUNMO0FBQUE7QUFFRiwwQkFBUSxTQUFTO0FBQUE7QUFBQSxxQkFFZDtBQUNMLHdCQUFRO0FBQ1IscUJBQUssSUFBRSxHQUFJLElBQUUsaUJBQWtCLEtBQUs7QUFDbEMscUNBQW9CLG9CQUFvQixJQUFLO0FBQzdDLHNCQUFJLHlCQUF5QixjQUFZLEdBQUc7QUFDMUMsNENBQXdCO0FBQ3hCLGlDQUFhLEtBQUssZUFBZTtBQUNqQyx1Q0FBbUI7QUFBQSx5QkFDZDtBQUNMO0FBQUE7QUFFRiwwQkFBUTtBQUFBO0FBRVYsd0JBQVEsVUFBVSxXQUFXO0FBQzdCLHFCQUFLLElBQUUsR0FBSSxJQUFFLElBQUssS0FBSztBQUNyQixxQ0FBb0Isb0JBQW9CLElBQU0sUUFBTTtBQUNwRCxzQkFBSSx5QkFBeUIsY0FBWSxHQUFHO0FBQzFDLDRDQUF3QjtBQUN4QixpQ0FBYSxLQUFLLGVBQWU7QUFDakMsdUNBQW1CO0FBQUEseUJBQ2Q7QUFDTDtBQUFBO0FBRUYsMEJBQVEsU0FBUztBQUFBO0FBQUE7QUFHckI7QUFDQSxrQkFBSSxxQkFBcUIsR0FBRztBQUMxQixvQ0FBb0IsS0FBSyxJQUFJLEdBQUc7QUFDaEM7QUFBQTtBQUVGLHFCQUFPLDJCQUEyQjtBQUFBLG1CQUM3QjtBQUNMLHNCQUFRLG1CQUFtQjtBQUMzQixtQkFBSyxJQUFFLEdBQUksSUFBRSxpQkFBa0IsS0FBSztBQUNsQyxtQ0FBb0Isb0JBQW9CLElBQU0sUUFBTTtBQUNwRCxvQkFBSSx5QkFBeUIsY0FBWSxHQUFHO0FBQzFDLDBDQUF3QjtBQUN4QiwrQkFBYSxLQUFLLGVBQWU7QUFDakMscUNBQW1CO0FBQUEsdUJBQ2Q7QUFDTDtBQUFBO0FBRUYsd0JBQVEsU0FBUztBQUFBO0FBQUE7QUFLckI7QUFDQSxnQkFBSSxxQkFBcUIsR0FBRztBQUMxQixrQ0FBb0IsS0FBSyxJQUFJLEdBQUc7QUFDaEM7QUFBQTtBQUFBO0FBS0osa0JBQVE7QUFDUixlQUFLLElBQUUsR0FBSSxJQUFFLGlCQUFrQixLQUFLO0FBQ2xDLCtCQUFvQixvQkFBb0IsSUFBTSxRQUFNO0FBQ3BELGdCQUFJLHlCQUF5QixjQUFZLEdBQUc7QUFDMUMsc0NBQXdCO0FBQ3hCLDJCQUFhLEtBQUssZUFBZTtBQUNqQyxpQ0FBbUI7QUFBQSxtQkFDZDtBQUNMO0FBQUE7QUFFRixvQkFBUSxTQUFTO0FBQUE7QUFJbkIsaUJBQU8sTUFBTTtBQUNYLCtCQUFvQixvQkFBb0I7QUFDeEMsZ0JBQUkseUJBQXlCLGNBQVksR0FBRztBQUMxQywyQkFBYSxLQUFLLGVBQWU7QUFDakM7QUFBQTtBQUVHO0FBQUE7QUFFUCxpQkFBTyxhQUFhLEtBQUs7QUFBQTtBQUFBLFFBRzNCLFlBQVksU0FBVSxZQUFZO0FBQ2hDLGNBQUksY0FBYztBQUFNLG1CQUFPO0FBQy9CLGNBQUksY0FBYztBQUFJLG1CQUFPO0FBQzdCLGlCQUFPLFVBQVMsWUFBWSxXQUFXLFFBQVEsT0FBTyxTQUFTLE9BQU87QUFBRSxtQkFBTyxXQUFXLFdBQVc7QUFBQTtBQUFBO0FBQUEsUUFHdkcsYUFBYSxTQUFVLFFBQVEsWUFBWSxjQUFjO0FBQ3ZELGNBQUksYUFBYSxJQUNiLE1BQ0EsWUFBWSxHQUNaLFdBQVcsR0FDWCxVQUFVLEdBQ1YsUUFBUSxJQUNSLFNBQVMsSUFDVCxHQUNBLEdBQ0EsTUFBTSxNQUFNLFVBQVUsT0FDdEIsR0FDQSxPQUFPLEVBQUMsS0FBSSxhQUFhLElBQUksVUFBUyxZQUFZLE9BQU07QUFFNUQsZUFBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRztBQUN6Qix1QkFBVyxLQUFLO0FBQUE7QUFHbEIsaUJBQU87QUFDUCxxQkFBVyxLQUFLLElBQUksR0FBRTtBQUN0QixrQkFBTTtBQUNOLGlCQUFPLFNBQU8sVUFBVTtBQUN0QixtQkFBTyxLQUFLLE1BQU0sS0FBSztBQUN2QixpQkFBSyxhQUFhO0FBQ2xCLGdCQUFJLEtBQUssWUFBWSxHQUFHO0FBQ3RCLG1CQUFLLFdBQVc7QUFDaEIsbUJBQUssTUFBTSxhQUFhLEtBQUs7QUFBQTtBQUUvQixvQkFBUyxRQUFLLElBQUksSUFBSSxLQUFLO0FBQzNCLHNCQUFVO0FBQUE7QUFHWixrQkFBUSxPQUFPO0FBQUEsaUJBQ1I7QUFDRCxxQkFBTztBQUNQLHlCQUFXLEtBQUssSUFBSSxHQUFFO0FBQ3RCLHNCQUFNO0FBQ04scUJBQU8sU0FBTyxVQUFVO0FBQ3RCLHVCQUFPLEtBQUssTUFBTSxLQUFLO0FBQ3ZCLHFCQUFLLGFBQWE7QUFDbEIsb0JBQUksS0FBSyxZQUFZLEdBQUc7QUFDdEIsdUJBQUssV0FBVztBQUNoQix1QkFBSyxNQUFNLGFBQWEsS0FBSztBQUFBO0FBRS9CLHdCQUFTLFFBQUssSUFBSSxJQUFJLEtBQUs7QUFDM0IsMEJBQVU7QUFBQTtBQUVkLGtCQUFJLEVBQUU7QUFDTjtBQUFBLGlCQUNHO0FBQ0QscUJBQU87QUFDUCx5QkFBVyxLQUFLLElBQUksR0FBRTtBQUN0QixzQkFBTTtBQUNOLHFCQUFPLFNBQU8sVUFBVTtBQUN0Qix1QkFBTyxLQUFLLE1BQU0sS0FBSztBQUN2QixxQkFBSyxhQUFhO0FBQ2xCLG9CQUFJLEtBQUssWUFBWSxHQUFHO0FBQ3RCLHVCQUFLLFdBQVc7QUFDaEIsdUJBQUssTUFBTSxhQUFhLEtBQUs7QUFBQTtBQUUvQix3QkFBUyxRQUFLLElBQUksSUFBSSxLQUFLO0FBQzNCLDBCQUFVO0FBQUE7QUFFZCxrQkFBSSxFQUFFO0FBQ047QUFBQSxpQkFDRztBQUNILHFCQUFPO0FBQUE7QUFFWCxxQkFBVyxLQUFLO0FBQ2hCLGNBQUk7QUFDSixpQkFBTyxLQUFLO0FBQ1osaUJBQU8sTUFBTTtBQUNYLGdCQUFJLEtBQUssUUFBUSxRQUFRO0FBQ3ZCLHFCQUFPO0FBQUE7QUFHVCxtQkFBTztBQUNQLHVCQUFXLEtBQUssSUFBSSxHQUFFO0FBQ3RCLG9CQUFNO0FBQ04sbUJBQU8sU0FBTyxVQUFVO0FBQ3RCLHFCQUFPLEtBQUssTUFBTSxLQUFLO0FBQ3ZCLG1CQUFLLGFBQWE7QUFDbEIsa0JBQUksS0FBSyxZQUFZLEdBQUc7QUFDdEIscUJBQUssV0FBVztBQUNoQixxQkFBSyxNQUFNLGFBQWEsS0FBSztBQUFBO0FBRS9CLHNCQUFTLFFBQUssSUFBSSxJQUFJLEtBQUs7QUFDM0Isd0JBQVU7QUFBQTtBQUdaLG9CQUFRLElBQUk7QUFBQSxtQkFDTDtBQUNILHVCQUFPO0FBQ1AsMkJBQVcsS0FBSyxJQUFJLEdBQUU7QUFDdEIsd0JBQU07QUFDTix1QkFBTyxTQUFPLFVBQVU7QUFDdEIseUJBQU8sS0FBSyxNQUFNLEtBQUs7QUFDdkIsdUJBQUssYUFBYTtBQUNsQixzQkFBSSxLQUFLLFlBQVksR0FBRztBQUN0Qix5QkFBSyxXQUFXO0FBQ2hCLHlCQUFLLE1BQU0sYUFBYSxLQUFLO0FBQUE7QUFFL0IsMEJBQVMsUUFBSyxJQUFJLElBQUksS0FBSztBQUMzQiw0QkFBVTtBQUFBO0FBR1osMkJBQVcsY0FBYyxFQUFFO0FBQzNCLG9CQUFJLFdBQVM7QUFDYjtBQUNBO0FBQUEsbUJBQ0c7QUFDSCx1QkFBTztBQUNQLDJCQUFXLEtBQUssSUFBSSxHQUFFO0FBQ3RCLHdCQUFNO0FBQ04sdUJBQU8sU0FBTyxVQUFVO0FBQ3RCLHlCQUFPLEtBQUssTUFBTSxLQUFLO0FBQ3ZCLHVCQUFLLGFBQWE7QUFDbEIsc0JBQUksS0FBSyxZQUFZLEdBQUc7QUFDdEIseUJBQUssV0FBVztBQUNoQix5QkFBSyxNQUFNLGFBQWEsS0FBSztBQUFBO0FBRS9CLDBCQUFTLFFBQUssSUFBSSxJQUFJLEtBQUs7QUFDM0IsNEJBQVU7QUFBQTtBQUVaLDJCQUFXLGNBQWMsRUFBRTtBQUMzQixvQkFBSSxXQUFTO0FBQ2I7QUFDQTtBQUFBLG1CQUNHO0FBQ0gsdUJBQU8sT0FBTyxLQUFLO0FBQUE7QUFHdkIsZ0JBQUksYUFBYSxHQUFHO0FBQ2xCLDBCQUFZLEtBQUssSUFBSSxHQUFHO0FBQ3hCO0FBQUE7QUFHRixnQkFBSSxXQUFXLElBQUk7QUFDakIsc0JBQVEsV0FBVztBQUFBLG1CQUNkO0FBQ0wsa0JBQUksTUFBTSxVQUFVO0FBQ2xCLHdCQUFRLElBQUksRUFBRSxPQUFPO0FBQUEscUJBQ2hCO0FBQ0wsdUJBQU87QUFBQTtBQUFBO0FBR1gsbUJBQU8sS0FBSztBQUdaLHVCQUFXLGNBQWMsSUFBSSxNQUFNLE9BQU87QUFDMUM7QUFFQSxnQkFBSTtBQUVKLGdCQUFJLGFBQWEsR0FBRztBQUNsQiwwQkFBWSxLQUFLLElBQUksR0FBRztBQUN4QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTU4sYUFBTztBQUFBO0FBR1QsUUFBSSxPQUFPLFdBQVcsY0FBYyxPQUFPLEtBQUs7QUFDOUMsYUFBTyxXQUFZO0FBQUUsZUFBTztBQUFBO0FBQUEsZUFDbkIsT0FBTyxZQUFXLGVBQWUsV0FBVSxNQUFPO0FBQzNELGNBQU8sVUFBVTtBQUFBO0FBQUE7QUFBQTs7O0FDbmZuQjtBQUFBO0FBQUE7QUFBQSx1QkFBMEg7OztBQ0ExSCxzQkFBNkU7QUFFN0UsZUFBMEI7QUFPbkIsdUNBQWlDLG9DQUFvQjtBQUFBLEVBT3hELFlBQVksSUFBaUIsVUFBb0IsU0FBaUIsVUFBNkI7QUFDM0YsVUFBTTtBQUVOLFNBQUssV0FBVztBQUNoQixTQUFLLE9BQU87QUFFWixTQUFLLGFBQWEsQUFBUyx1Q0FBOEIsS0FBSztBQUU5RCxRQUFHLEtBQUssU0FBUyxVQUNqQjtBQUNJLFdBQUssTUFBTSxHQUFHLEtBQUssU0FBUyxvQkFBb0IsS0FBSztBQUFBLFdBR3pEO0FBQ0ksV0FBSyxNQUFNLEdBQUcsS0FBSyxTQUFTLG9CQUFvQixLQUFLO0FBQUE7QUFBQTtBQUFBLEVBSTdELFNBQVM7QUFDTCxVQUFNLE1BQU0sU0FBUyxjQUFjO0FBRW5DLFFBQUksS0FBSyxTQUFTLFVBQVU7QUFDeEIsWUFBTSxXQUFXLFNBQVMsY0FBYztBQUN4QyxlQUFTLGFBQWEsUUFBUSxLQUFLO0FBQ25DLFlBQU0sa0JBQWtCLFNBQVMsZUFBZTtBQUNoRCxlQUFTLFlBQVk7QUFDckIsVUFBSSxZQUFZO0FBQUE7QUFHcEIsVUFBTSxhQUFhLFNBQVMsY0FBYztBQUMxQyxlQUFXLGFBQWEsT0FBTyxLQUFLO0FBQ3BDLGVBQVcsYUFBYSxTQUFTO0FBQ2pDLGVBQVcsYUFBYSxVQUFVO0FBR2xDLFFBQUksWUFBWTtBQUVoQixTQUFLLFlBQVksWUFBWTtBQUFBO0FBQUEsRUFHakMsV0FBVztBQUFBO0FBQUE7OztBRDVDZixJQUFNLG1CQUFzQztBQUFBLEVBQzNDLFVBQVU7QUFBQSxFQUNWLFVBQVU7QUFBQSxFQUNWLGNBQWM7QUFBQSxFQUNkLFlBQVk7QUFBQTtBQUtiLG9DQUE2Qyx3QkFBTztBQUFBLEVBQXBELGNBckJBO0FBcUJBO0FBSUMseUJBQWdCLENBQU8sU0FBaUIsSUFBaUIsUUFBc0M7QUFDOUYsVUFBSSxTQUFTLElBQUksbUJBQW1CLElBQUksTUFBTSxTQUFTLEtBQUs7QUFBQTtBQUFBO0FBQUEsRUFHdkQsU0FBUztBQUFBO0FBQ2QsWUFBTSxLQUFLO0FBRVgsV0FBSyxtQ0FBbUMsS0FBSyxTQUFTLFlBQVksS0FBSztBQUFBO0FBQUE7QUFBQSxFQUd4RSxXQUFXO0FBQUE7QUFBQSxFQUlMLGVBQWU7QUFBQTtBQUNwQixXQUFLLFdBQVcsT0FBTyxPQUFPLElBQUksa0JBQWtCLE1BQU0sS0FBSztBQUFBO0FBQUE7QUFBQSxFQUcxRCxlQUFlO0FBQUE7QUFDcEIsWUFBTSxLQUFLLFNBQVMsS0FBSztBQUFBO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K diff --git a/.obsidian/plugins/obsidian-circuitjs/manifest.json b/.obsidian/plugins/obsidian-circuitjs/manifest.json new file mode 100644 index 0000000..9a551ea --- /dev/null +++ b/.obsidian/plugins/obsidian-circuitjs/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-circuitjs", + "name": "Obsidian CircuitJS", + "version": "1.0.0", + "minAppVersion": "0.12.0", + "description": "Integrating CircuitJS and Obsidian", + "author": "Steven Gann", + "authorUrl": "https://github.com/StevenGann", + "isDesktopOnly": true +} diff --git a/.obsidian/plugins/obsidian-circuitjs/styles.css b/.obsidian/plugins/obsidian-circuitjs/styles.css new file mode 100644 index 0000000..8537307 --- /dev/null +++ b/.obsidian/plugins/obsidian-circuitjs/styles.css @@ -0,0 +1 @@ +Not Found \ No newline at end of file diff --git a/.obsidian/workspace b/.obsidian/workspace new file mode 100644 index 0000000..4a96367 --- /dev/null +++ b/.obsidian/workspace @@ -0,0 +1,101 @@ +{ + "main": { + "id": "20f00a703135d3b3", + "type": "split", + "children": [ + { + "id": "f044b8f2aaa9c540", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Areas/electricity/parts/capacitors.md.md", + "mode": "source", + "source": false + } + } + } + ], + "direction": "vertical" + }, + "left": { + "id": "e6019eea54339191", + "type": "split", + "children": [ + { + "id": "bcaa06271147c8b2", + "type": "tabs", + "children": [ + { + "id": "b2484810d49bee98", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": {} + } + }, + { + "id": "1d7a2eec817a817f", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + } + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "right": { + "id": "5cbdf016cba539bb", + "type": "split", + "children": [ + { + "id": "1e5dd0e7a1e6a44f", + "type": "tabs", + "children": [ + { + "id": "f03fddf060b0214b", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Areas/electricity/parts/capacitors.md.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + } + } + } + ] + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "active": "f044b8f2aaa9c540", + "lastOpenFiles": [ + "Areas/electricity/parts/capacitors.md.md", + "Areas/electricity/formulas/kirchhoffs-law.md.md", + "Areas/electricity/ac.md.md", + "Areas/electricity/glossary.md", + "a.md", + "Areas/electricity/formulas.md", + "Areas/electricity/parts/resistors.md.md", + "Areas/electricity/basics.md" + ] +} \ No newline at end of file diff --git a/Areas/electricity/ac.md.md b/Areas/electricity/ac.md.md new file mode 100644 index 0000000..e1b9d85 --- /dev/null +++ b/Areas/electricity/ac.md.md @@ -0,0 +1,31 @@ +# AC (Alternating Current) + + +![](./assets/wave.gif) + + +A few important characteristics of an AC Signal: + +## Time Period +How much time passes during one cycle of the signal (until it reaches the same point it started twice) + +## Frequency +How many cycles the signal completes in a specified time frame. + +## Amplitute +The maximum voltage of the signal compared to 0 + +## Peak-Peak Voltage +The difference between the highest and lowest peak. + +## Root Mean Square Values +This helps calculating the current an equivalent DC Signal would need to provide the same amount of power. + +![](./assets/rms.gif) + +$$ +\begin{flalign} +V_{RMS} = 0.7 * V_{PEAK} &&\\ +V_{PEAK} = 1.4 * V_{RMS} +\end{flalign} +$$ diff --git a/Areas/electricity/assets/Parallel_plate_capacitor.svg b/Areas/electricity/assets/Parallel_plate_capacitor.svg new file mode 100644 index 0000000..2a1de03 --- /dev/null +++ b/Areas/electricity/assets/Parallel_plate_capacitor.svg @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + Conductive plates + Dielectric + + + + d + A + + + + + + + + diff --git a/Areas/electricity/assets/ceramic-capacitor.webp b/Areas/electricity/assets/ceramic-capacitor.webp new file mode 100644 index 0000000000000000000000000000000000000000..2003e72168b7ed358ecd223fd2a1ebd07a027c3e GIT binary patch literal 5500 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 \ No newline at end of file diff --git a/Areas/electricity/assets/rms.gif b/Areas/electricity/assets/rms.gif new file mode 100644 index 0000000000000000000000000000000000000000..545aad62b135f7b3806bb90406d2341417f9aeb9 GIT binary patch literal 3417 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 literal 0 HcmV?d00001 diff --git a/Areas/electricity/assets/tantalum-capacitor.jpg b/Areas/electricity/assets/tantalum-capacitor.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bf0cb2bfdffb136278995db8b2ba55f9597dd900 GIT binary patch literal 85272 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
0gvj|& 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 M(IKPP=nc>R*$KgF;s5{u literal 0 HcmV?d00001 diff --git a/Areas/electricity/assets/wave.gif b/Areas/electricity/assets/wave.gif new file mode 100644 index 0000000000000000000000000000000000000000..221014fbbe83090e415dc1a7b95599455f53a2f3 GIT binary patch literal 5301 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 $200\deg$ +- Low ESR +- High Precision +- High Cost \ No newline at end of file diff --git a/Areas/electricity/led.md.md b/Areas/electricity/parts/led.md.md similarity index 97% rename from Areas/electricity/led.md.md rename to Areas/electricity/parts/led.md.md index 16a57be..90bb30b 100644 --- a/Areas/electricity/led.md.md +++ b/Areas/electricity/parts/led.md.md @@ -30,7 +30,7 @@ Our power source must have more voltage than the voltage drop, otherwise we cant First we need to find the datasheet of the specific component, it can be easily found by googling it -![TLUR DataSheet](./datasheets/tlur6400.pdf) +![TLUR DataSheet](tlur6400.pdf) Now lets put that LED into a test circuit and calculate the resistance for it: diff --git a/Areas/electricity/parts/resistors.md.md b/Areas/electricity/parts/resistors.md.md new file mode 100644 index 0000000..8103c1d --- /dev/null +++ b/Areas/electricity/parts/resistors.md.md @@ -0,0 +1,3 @@ +# Resistors + +Resistors transform voltage into heat. \ No newline at end of file diff --git a/Areas/electricity/voltage-dividers.md b/Areas/electricity/parts/voltage-dividers.md similarity index 100% rename from Areas/electricity/voltage-dividers.md rename to Areas/electricity/parts/voltage-dividers.md diff --git a/a.md b/a.md new file mode 100644 index 0000000..e69de29