diff --git a/!Załączniki/1. Miernictwo 2023-04-18 14.16.53.excalidraw.md b/!Załączniki/1. Miernictwo 2023-04-18 14.16.53.excalidraw.md new file mode 100644 index 0000000..8119267 --- /dev/null +++ b/!Załączniki/1. Miernictwo 2023-04-18 14.16.53.excalidraw.md @@ -0,0 +1,421 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +A ^Ipbxt0Ec + +V ^zcsCAyEm + +Ux + ^bZ9BHIac + +Ix + + Rx ^9mntkM3G + +E ^a90Ezsmg + +%% +# Drawing +```compressed-json +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 + + +``` +%% \ No newline at end of file diff --git a/!Załączniki/1. Miernictwo 2023-04-18 14.26.51.excalidraw.md b/!Załączniki/1. Miernictwo 2023-04-18 14.26.51.excalidraw.md new file mode 100644 index 0000000..be7a439 --- /dev/null +++ b/!Załączniki/1. Miernictwo 2023-04-18 14.26.51.excalidraw.md @@ -0,0 +1,240 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +V ^RXgceNna + +A ^BlffqT1X + +Rx ^NVLKt1Ai + +RA ^7Qfb4Mpp + +%% +# Drawing +```compressed-json +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 + +RwhuuQBPIgA= +``` +%% \ No newline at end of file diff --git a/!Załączniki/Recording 20230418134959.webm b/!Załączniki/Recording 20230418134959.webm new file mode 100644 index 0000000..b65d436 Binary files /dev/null and b/!Załączniki/Recording 20230418134959.webm differ diff --git a/!Załączniki/Recording 20230418135018.webm b/!Załączniki/Recording 20230418135018.webm new file mode 100644 index 0000000..a0a4631 Binary files /dev/null and b/!Załączniki/Recording 20230418135018.webm differ diff --git a/!Załączniki/Untitled 2023-04-19 10.28.44.excalidraw.md b/!Załączniki/Untitled 2023-04-19 10.28.44.excalidraw.md new file mode 100644 index 0000000..3d81d69 --- /dev/null +++ b/!Załączniki/Untitled 2023-04-19 10.28.44.excalidraw.md @@ -0,0 +1,450 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +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 +``` +%% \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index ed120c8..15cfb78 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -24,5 +24,6 @@ "obsidian-functionplot", "obsidian-tikzjax", "obsidian-export-image", - "obsidian-graphviz" + "obsidian-graphviz", + "obsidian-plantuml" ] \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-completr/blacklisted_suggestions.txt b/.obsidian/plugins/obsidian-completr/blacklisted_suggestions.txt index a2573d1..59e2dd0 100644 --- a/.obsidian/plugins/obsidian-completr/blacklisted_suggestions.txt +++ b/.obsidian/plugins/obsidian-completr/blacklisted_suggestions.txt @@ -1,3 +1,6 @@ tags: [#] excalidraw-plugin: # -Note \ No newline at end of file +Note +rea +realis +\Uppi \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-completr/scanned_words.txt b/.obsidian/plugins/obsidian-completr/scanned_words.txt index 8f17e07..712782c 100644 --- a/.obsidian/plugins/obsidian-completr/scanned_words.txt +++ b/.obsidian/plugins/obsidian-completr/scanned_words.txt @@ -1356,6 +1356,8 @@ Prąd Przekazuje Parametry Prądy +Punktacja +Poprawnie obj oh oq @@ -2716,6 +2718,7 @@ oporze okładkami obszaru ostrzegawczym +operacyjny GoTo GS Gl @@ -5298,6 +5301,7 @@ ORDER Options Ohm Optymalizacja +Oblicz endobj endstream ea @@ -7986,6 +7990,8 @@ Layers Laboratoria Laplace Latch +LSD +Least Filter FlateDecode Font @@ -10745,6 +10751,12 @@ stosunew stosunek sterującego sygnał +skazał +systematyczny +sneaky +stałego +sposoby +siebie JQ Js JX @@ -14657,6 +14669,7 @@ QRU QCk QMOa QkWB +Qfb fVVhM fW fci @@ -17347,6 +17360,7 @@ BRANDES Between Bramki Barbara +BlffqT Trans Type TF @@ -18735,6 +18749,9 @@ Transformatory Transformator Tylko Transmitancja +Tematy +Taśmociągiem +Taśmociąg Annots Annot Aac @@ -20028,6 +20045,8 @@ Array Arrows Automaty Apply +Analiza +Amperomierz Subtype SGw SI @@ -21350,6 +21369,8 @@ SHS Statyczny SHF Synteza +Significant +Skośnie Rect Re Resources @@ -22663,6 +22684,9 @@ Rezystancja Rodzaje Rzeczywisty Realizacja +RDG +ReaDinG +RXgceNna Navigation No Nj @@ -23972,6 +23996,7 @@ Nieliniowy Niska Niepewności Npięcia +NVLKt ColorSpace Contents Cx @@ -30653,6 +30678,7 @@ idealnego indukcyjność impedancji impulsowe +identyczne vK vE vD @@ -33261,6 +33287,8 @@ Dławik DHS Dane Działanie +Digit +Detale dA dET dg @@ -34653,6 +34681,12 @@ dobroć dopuszczalna dużej dające +dokonanego +detale +dwa +detal +detali +daleko YI YT Yv @@ -37353,6 +37387,10 @@ czujniki czujnik cofa cpG +charakterystyki +częstotliwościowe +cyfrowego +czujnikiem bI bx bM @@ -38734,6 +38772,8 @@ będą bezstykowo bramek bezpamięciowego +bipolarne +będzie jW je jz @@ -41365,6 +41405,7 @@ arytmetycznego admin automatu asynchronicznoego +amperomierz uH uS uVn @@ -42682,6 +42723,9 @@ upływność upływu uśrednianie układu +użyciu +uncertainty +ułożone Mh MediaBox MI @@ -44045,6 +44089,8 @@ Matlab Małej Moore Mealy +Mpp +Max lauG lc lS @@ -45367,6 +45413,7 @@ layoutOptions logarytmowi logarytmiczne leży +lewo Kz KM Kw @@ -46649,6 +46696,7 @@ Klasa Kodowanie KOEPF Kaskada +Kształt IS ID IQT @@ -50564,6 +50612,9 @@ Warystory Wszystko Wykresy Współczynnik +Wzmacniacz +Woltomierz +Wyznacz rM ra rv @@ -50630,7 +50681,6 @@ rbB rMd roksana rzeczywiste -realis rTR roV rc @@ -51556,7 +51606,6 @@ rZHd rwvt rzQ rGw -rea rPc rIX ryS @@ -51959,6 +52008,9 @@ realizuje różne różniczkujący rising +równoległoboku +równoległa +rozmieszczone tI tU ta @@ -53307,6 +53359,10 @@ tabelką transmitancję tablicę torach +tranzystory +transportowane +taśmociągu +taśmociągiem wo wHJ wKe @@ -54624,6 +54680,13 @@ wyjścia wejścia wyjść wjedzie +wskazówkowy +wskazał +wyświetlaczem +woltomierza +wyznaczenia +wykorzystano +wykryją pDJ parenleftbigg parenrightbigg @@ -56077,6 +56140,11 @@ programujących przejść przejeździe pociąg +pomiarowym +producent +podaje +pokozuje +położenie HD Ho Hg @@ -61271,6 +61339,7 @@ Zasilające Zakładając Zaprojektować Załóż +Zadanie mD ma mj @@ -62629,6 +62698,12 @@ maleje magnettcznym multiplekserze markowa +małosygnałowa +maksymalny +multimetru +mierzącego +mierzonego +mocy nD nF nZ @@ -63973,6 +64048,9 @@ niestrzeżonym nad nimi narastające +niepewność +naszym +następnie gNx gHI gri @@ -65313,6 +65391,7 @@ gromadzi galwaniczna generuje gęstości +gruby kXk kQ kx @@ -66706,6 +66785,11 @@ końcó konwersji kolejowym kierunku +kartkówek +klasy +kształcie +krawędź +krawędzi üx ün ür @@ -69435,6 +69519,9 @@ znajduje zapalić zgasnąć zbocze +zakresie +zawsze +założenia ÜI Üj ÜX diff --git a/.obsidian/plugins/obsidian-plantuml/main.js b/.obsidian/plugins/obsidian-plantuml/main.js new file mode 100644 index 0000000..c5f2a98 --- /dev/null +++ b/.obsidian/plugins/obsidian-plantuml/main.js @@ -0,0 +1,5607 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +https://github.com/joethei/obsidian-plantuml +*/ + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); +var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[Object.keys(fn)[0]])(fn = 0)), res; +}; +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/plantuml-encoder/dist/plantuml-encoder.js +var require_plantuml_encoder = __commonJS({ + "node_modules/plantuml-encoder/dist/plantuml-encoder.js"(exports, module2) { + (function(f) { + if (typeof exports === "object" && typeof module2 !== "undefined") { + module2.exports = f(); + } else if (typeof define === "function" && define.amd) { + define([], f); + } else { + var g; + if (typeof window !== "undefined") { + g = window; + } else if (typeof global !== "undefined") { + g = global; + } else if (typeof self !== "undefined") { + g = self; + } else { + g = this; + } + g.plantumlEncoder = f(); + } + })(function() { + var define2, module3, exports2; + return function() { + function r(e, n, t) { + function o(i2, f) { + if (!n[i2]) { + if (!e[i2]) { + var c = typeof require == "function" && require; + if (!f && c) + return c(i2, true); + if (u) + return u(i2, true); + var a = new Error("Cannot find module '" + i2 + "'"); + throw a.code = "MODULE_NOT_FOUND", a; + } + var p = n[i2] = { exports: {} }; + e[i2][0].call(p.exports, function(r2) { + var n2 = e[i2][1][r2]; + return o(n2 || r2); + }, p, p.exports, r, e, n, t); + } + return n[i2].exports; + } + for (var u = typeof require == "function" && require, i = 0; i < t.length; i++) + o(t[i]); + return o; + } + return r; + }()({ 1: [function(require2, module4, exports3) { + "use strict"; + var pako = require2("pako/lib/deflate.js"); + module4.exports = function(data) { + return pako.deflateRaw(data, { level: 9, to: "string" }); + }; + }, { "pako/lib/deflate.js": 4 }], 2: [function(require2, module4, exports3) { + "use strict"; + function encode6bit(b) { + if (b < 10) { + return String.fromCharCode(48 + b); + } + b -= 10; + if (b < 26) { + return String.fromCharCode(65 + b); + } + b -= 26; + if (b < 26) { + return String.fromCharCode(97 + b); + } + b -= 26; + if (b === 0) { + return "-"; + } + if (b === 1) { + return "_"; + } + return "?"; + } + function append3bytes(b1, b2, b3) { + var c1 = b1 >> 2; + var c2 = (b1 & 3) << 4 | b2 >> 4; + var c3 = (b2 & 15) << 2 | b3 >> 6; + var c4 = b3 & 63; + var r = ""; + r += encode6bit(c1 & 63); + r += encode6bit(c2 & 63); + r += encode6bit(c3 & 63); + r += encode6bit(c4 & 63); + return r; + } + module4.exports = function(data) { + var r = ""; + for (var i = 0; i < data.length; i += 3) { + if (i + 2 === data.length) { + r += append3bytes(data.charCodeAt(i), data.charCodeAt(i + 1), 0); + } else if (i + 1 === data.length) { + r += append3bytes(data.charCodeAt(i), 0, 0); + } else { + r += append3bytes(data.charCodeAt(i), data.charCodeAt(i + 1), data.charCodeAt(i + 2)); + } + } + return r; + }; + }, {}], 3: [function(require2, module4, exports3) { + "use strict"; + var deflate = require2("./deflate"); + var encode64 = require2("./encode64"); + module4.exports.encode = function(puml) { + var deflated = deflate(puml); + return encode64(deflated); + }; + }, { "./deflate": 1, "./encode64": 2 }], 4: [function(require2, module4, exports3) { + "use strict"; + var zlib_deflate = require2("./zlib/deflate"); + var utils = require2("./utils/common"); + var strings = require2("./utils/strings"); + var msg = require2("./zlib/messages"); + var ZStream = require2("./zlib/zstream"); + var toString = Object.prototype.toString; + var Z_NO_FLUSH = 0; + var Z_FINISH = 4; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_SYNC_FLUSH = 2; + var Z_DEFAULT_COMPRESSION = -1; + var Z_DEFAULT_STRATEGY = 0; + var Z_DEFLATED = 8; + function Deflate(options) { + if (!(this instanceof Deflate)) + return new Deflate(options); + this.options = utils.assign({ + level: Z_DEFAULT_COMPRESSION, + method: Z_DEFLATED, + chunkSize: 16384, + windowBits: 15, + memLevel: 8, + strategy: Z_DEFAULT_STRATEGY, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits > 0) { + opt.windowBits = -opt.windowBits; + } else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) { + opt.windowBits += 16; + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status = zlib_deflate.deflateInit2(this.strm, opt.level, opt.method, opt.windowBits, opt.memLevel, opt.strategy); + if (status !== Z_OK) { + throw new Error(msg[status]); + } + if (opt.header) { + zlib_deflate.deflateSetHeader(this.strm, opt.header); + } + if (opt.dictionary) { + var dict; + if (typeof opt.dictionary === "string") { + dict = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + dict = new Uint8Array(opt.dictionary); + } else { + dict = opt.dictionary; + } + status = zlib_deflate.deflateSetDictionary(this.strm, dict); + if (status !== Z_OK) { + throw new Error(msg[status]); + } + this._dict_set = true; + } + } + Deflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var status, _mode; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? Z_FINISH : Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.string2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status = zlib_deflate.deflate(strm, _mode); + if (status !== Z_STREAM_END && status !== Z_OK) { + this.onEnd(status); + this.ended = true; + return false; + } + if (strm.avail_out === 0 || strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out))); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END); + if (_mode === Z_FINISH) { + status = zlib_deflate.deflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return status === Z_OK; + } + if (_mode === Z_SYNC_FLUSH) { + this.onEnd(Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Deflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Deflate.prototype.onEnd = function(status) { + if (status === Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; + }; + function deflate(input, options) { + var deflator = new Deflate(options); + deflator.push(input, true); + if (deflator.err) { + throw deflator.msg || msg[deflator.err]; + } + return deflator.result; + } + function deflateRaw(input, options) { + options = options || {}; + options.raw = true; + return deflate(input, options); + } + function gzip(input, options) { + options = options || {}; + options.gzip = true; + return deflate(input, options); + } + exports3.Deflate = Deflate; + exports3.deflate = deflate; + exports3.deflateRaw = deflateRaw; + exports3.gzip = gzip; + }, { "./utils/common": 5, "./utils/strings": 6, "./zlib/deflate": 9, "./zlib/messages": 10, "./zlib/zstream": 12 }], 5: [function(require2, module4, exports3) { + "use strict"; + var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined"; + function _has(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); + } + exports3.assign = function(obj) { + var sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + var source = sources.shift(); + if (!source) { + continue; + } + if (typeof source !== "object") { + throw new TypeError(source + "must be non-object"); + } + for (var p in source) { + if (_has(source, p)) { + obj[p] = source[p]; + } + } + } + return obj; + }; + exports3.shrinkBuf = function(buf, size) { + if (buf.length === size) { + return buf; + } + if (buf.subarray) { + return buf.subarray(0, size); + } + buf.length = size; + return buf; + }; + var fnTyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + if (src.subarray && dest.subarray) { + dest.set(src.subarray(src_offs, src_offs + len), dest_offs); + return; + } + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + flattenChunks: function(chunks) { + var i, l, len, pos, chunk, result; + len = 0; + for (i = 0, l = chunks.length; i < l; i++) { + len += chunks[i].length; + } + result = new Uint8Array(len); + pos = 0; + for (i = 0, l = chunks.length; i < l; i++) { + chunk = chunks[i]; + result.set(chunk, pos); + pos += chunk.length; + } + return result; + } + }; + var fnUntyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + flattenChunks: function(chunks) { + return [].concat.apply([], chunks); + } + }; + exports3.setTyped = function(on) { + if (on) { + exports3.Buf8 = Uint8Array; + exports3.Buf16 = Uint16Array; + exports3.Buf32 = Int32Array; + exports3.assign(exports3, fnTyped); + } else { + exports3.Buf8 = Array; + exports3.Buf16 = Array; + exports3.Buf32 = Array; + exports3.assign(exports3, fnUntyped); + } + }; + exports3.setTyped(TYPED_OK); + }, {}], 6: [function(require2, module4, exports3) { + "use strict"; + var utils = require2("./common"); + var STR_APPLY_OK = true; + var STR_APPLY_UIA_OK = true; + try { + String.fromCharCode.apply(null, [0]); + } catch (__) { + STR_APPLY_OK = false; + } + try { + String.fromCharCode.apply(null, new Uint8Array(1)); + } catch (__) { + STR_APPLY_UIA_OK = false; + } + var _utf8len = new utils.Buf8(256); + for (var q = 0; q < 256; q++) { + _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1; + } + _utf8len[254] = _utf8len[254] = 1; + exports3.string2buf = function(str) { + var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4; + } + buf = new utils.Buf8(buf_len); + for (i = 0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + if (c < 128) { + buf[i++] = c; + } else if (c < 2048) { + buf[i++] = 192 | c >>> 6; + buf[i++] = 128 | c & 63; + } else if (c < 65536) { + buf[i++] = 224 | c >>> 12; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } else { + buf[i++] = 240 | c >>> 18; + buf[i++] = 128 | c >>> 12 & 63; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } + } + return buf; + }; + function buf2binstring(buf, len) { + if (len < 65534) { + if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) { + return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); + } + } + var result = ""; + for (var i = 0; i < len; i++) { + result += String.fromCharCode(buf[i]); + } + return result; + } + exports3.buf2binstring = function(buf) { + return buf2binstring(buf, buf.length); + }; + exports3.binstring2buf = function(str) { + var buf = new utils.Buf8(str.length); + for (var i = 0, len = buf.length; i < len; i++) { + buf[i] = str.charCodeAt(i); + } + return buf; + }; + exports3.buf2string = function(buf, max) { + var i, out, c, c_len; + var len = max || buf.length; + var utf16buf = new Array(len * 2); + for (out = 0, i = 0; i < len; ) { + c = buf[i++]; + if (c < 128) { + utf16buf[out++] = c; + continue; + } + c_len = _utf8len[c]; + if (c_len > 4) { + utf16buf[out++] = 65533; + i += c_len - 1; + continue; + } + c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7; + while (c_len > 1 && i < len) { + c = c << 6 | buf[i++] & 63; + c_len--; + } + if (c_len > 1) { + utf16buf[out++] = 65533; + continue; + } + if (c < 65536) { + utf16buf[out++] = c; + } else { + c -= 65536; + utf16buf[out++] = 55296 | c >> 10 & 1023; + utf16buf[out++] = 56320 | c & 1023; + } + } + return buf2binstring(utf16buf, out); + }; + exports3.utf8border = function(buf, max) { + var pos; + max = max || buf.length; + if (max > buf.length) { + max = buf.length; + } + pos = max - 1; + while (pos >= 0 && (buf[pos] & 192) === 128) { + pos--; + } + if (pos < 0) { + return max; + } + if (pos === 0) { + return max; + } + return pos + _utf8len[buf[pos]] > max ? pos : max; + }; + }, { "./common": 5 }], 7: [function(require2, module4, exports3) { + "use strict"; + function adler32(adler, buf, len, pos) { + var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0; + while (len !== 0) { + n = len > 2e3 ? 2e3 : len; + len -= n; + do { + s1 = s1 + buf[pos++] | 0; + s2 = s2 + s1 | 0; + } while (--n); + s1 %= 65521; + s2 %= 65521; + } + return s1 | s2 << 16 | 0; + } + module4.exports = adler32; + }, {}], 8: [function(require2, module4, exports3) { + "use strict"; + function makeTable() { + var c, table = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; + } + table[n] = c; + } + return table; + } + var crcTable = makeTable(); + function crc32(crc, buf, len, pos) { + var t = crcTable, end = pos + len; + crc ^= -1; + for (var i = pos; i < end; i++) { + crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255]; + } + return crc ^ -1; + } + module4.exports = crc32; + }, {}], 9: [function(require2, module4, exports3) { + "use strict"; + var utils = require2("../utils/common"); + var trees = require2("./trees"); + var adler32 = require2("./adler32"); + var crc32 = require2("./crc32"); + var msg = require2("./messages"); + var Z_NO_FLUSH = 0; + var Z_PARTIAL_FLUSH = 1; + var Z_FULL_FLUSH = 3; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_BUF_ERROR = -5; + var Z_DEFAULT_COMPRESSION = -1; + var Z_FILTERED = 1; + var Z_HUFFMAN_ONLY = 2; + var Z_RLE = 3; + var Z_FIXED = 4; + var Z_DEFAULT_STRATEGY = 0; + var Z_UNKNOWN = 2; + var Z_DEFLATED = 8; + var MAX_MEM_LEVEL = 9; + var MAX_WBITS = 15; + var DEF_MEM_LEVEL = 8; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1; + var PRESET_DICT = 32; + var INIT_STATE = 42; + var EXTRA_STATE = 69; + var NAME_STATE = 73; + var COMMENT_STATE = 91; + var HCRC_STATE = 103; + var BUSY_STATE = 113; + var FINISH_STATE = 666; + var BS_NEED_MORE = 1; + var BS_BLOCK_DONE = 2; + var BS_FINISH_STARTED = 3; + var BS_FINISH_DONE = 4; + var OS_CODE = 3; + function err(strm, errorCode) { + strm.msg = msg[errorCode]; + return errorCode; + } + function rank(f) { + return (f << 1) - (f > 4 ? 9 : 0); + } + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + function flush_pending(strm) { + var s = strm.state; + var len = s.pending; + if (len > strm.avail_out) { + len = strm.avail_out; + } + if (len === 0) { + return; + } + utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out); + strm.next_out += len; + s.pending_out += len; + strm.total_out += len; + strm.avail_out -= len; + s.pending -= len; + if (s.pending === 0) { + s.pending_out = 0; + } + } + function flush_block_only(s, last) { + trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last); + s.block_start = s.strstart; + flush_pending(s.strm); + } + function put_byte(s, b) { + s.pending_buf[s.pending++] = b; + } + function putShortMSB(s, b) { + s.pending_buf[s.pending++] = b >>> 8 & 255; + s.pending_buf[s.pending++] = b & 255; + } + function read_buf(strm, buf, start, size) { + var len = strm.avail_in; + if (len > size) { + len = size; + } + if (len === 0) { + return 0; + } + strm.avail_in -= len; + utils.arraySet(buf, strm.input, strm.next_in, len, start); + if (strm.state.wrap === 1) { + strm.adler = adler32(strm.adler, buf, len, start); + } else if (strm.state.wrap === 2) { + strm.adler = crc32(strm.adler, buf, len, start); + } + strm.next_in += len; + strm.total_in += len; + return len; + } + function longest_match(s, cur_match) { + var chain_length = s.max_chain_length; + var scan = s.strstart; + var match; + var len; + var best_len = s.prev_length; + var nice_match = s.nice_match; + var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0; + var _win = s.window; + var wmask = s.w_mask; + var prev = s.prev; + var strend = s.strstart + MAX_MATCH; + var scan_end1 = _win[scan + best_len - 1]; + var scan_end = _win[scan + best_len]; + if (s.prev_length >= s.good_match) { + chain_length >>= 2; + } + if (nice_match > s.lookahead) { + nice_match = s.lookahead; + } + do { + match = cur_match; + if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) { + continue; + } + scan += 2; + match++; + do { + } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend); + len = MAX_MATCH - (strend - scan); + scan = strend - MAX_MATCH; + if (len > best_len) { + s.match_start = cur_match; + best_len = len; + if (len >= nice_match) { + break; + } + scan_end1 = _win[scan + best_len - 1]; + scan_end = _win[scan + best_len]; + } + } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); + if (best_len <= s.lookahead) { + return best_len; + } + return s.lookahead; + } + function fill_window(s) { + var _w_size = s.w_size; + var p, n, m, more, str; + do { + more = s.window_size - s.lookahead - s.strstart; + if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { + utils.arraySet(s.window, s.window, _w_size, _w_size, 0); + s.match_start -= _w_size; + s.strstart -= _w_size; + s.block_start -= _w_size; + n = s.hash_size; + p = n; + do { + m = s.head[--p]; + s.head[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + n = _w_size; + p = n; + do { + m = s.prev[--p]; + s.prev[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + more += _w_size; + } + if (s.strm.avail_in === 0) { + break; + } + n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); + s.lookahead += n; + if (s.lookahead + s.insert >= MIN_MATCH) { + str = s.strstart - s.insert; + s.ins_h = s.window[str]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask; + while (s.insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + s.insert--; + if (s.lookahead + s.insert < MIN_MATCH) { + break; + } + } + } + } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); + } + function deflate_stored(s, flush) { + var max_block_size = 65535; + if (max_block_size > s.pending_buf_size - 5) { + max_block_size = s.pending_buf_size - 5; + } + for (; ; ) { + if (s.lookahead <= 1) { + fill_window(s); + if (s.lookahead === 0 && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.strstart += s.lookahead; + s.lookahead = 0; + var max_start = s.block_start + max_block_size; + if (s.strstart === 0 || s.strstart >= max_start) { + s.lookahead = s.strstart - max_start; + s.strstart = max_start; + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.strstart > s.block_start) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_NEED_MORE; + } + function deflate_fast(s, flush) { + var hash_head; + var bflush; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) { + s.match_length--; + do { + s.strstart++; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } while (--s.match_length !== 0); + s.strstart++; + } else { + s.strstart += s.match_length; + s.match_length = 0; + s.ins_h = s.window[s.strstart]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask; + } + } else { + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_slow(s, flush) { + var hash_head; + var bflush; + var max_insert; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + s.prev_length = s.match_length; + s.prev_match = s.match_start; + s.match_length = MIN_MATCH - 1; + if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) { + s.match_length = MIN_MATCH - 1; + } + } + if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { + max_insert = s.strstart + s.lookahead - MIN_MATCH; + bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH); + s.lookahead -= s.prev_length - 1; + s.prev_length -= 2; + do { + if (++s.strstart <= max_insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + } while (--s.prev_length !== 0); + s.match_available = 0; + s.match_length = MIN_MATCH - 1; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } else if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + if (bflush) { + flush_block_only(s, false); + } + s.strstart++; + s.lookahead--; + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } else { + s.match_available = 1; + s.strstart++; + s.lookahead--; + } + } + if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + s.match_available = 0; + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_rle(s, flush) { + var bflush; + var prev; + var scan, strend; + var _win = s.window; + for (; ; ) { + if (s.lookahead <= MAX_MATCH) { + fill_window(s); + if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.match_length = 0; + if (s.lookahead >= MIN_MATCH && s.strstart > 0) { + scan = s.strstart - 1; + prev = _win[scan]; + if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { + strend = s.strstart + MAX_MATCH; + do { + } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend); + s.match_length = MAX_MATCH - (strend - scan); + if (s.match_length > s.lookahead) { + s.match_length = s.lookahead; + } + } + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + s.strstart += s.match_length; + s.match_length = 0; + } else { + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_huff(s, flush) { + var bflush; + for (; ; ) { + if (s.lookahead === 0) { + fill_window(s); + if (s.lookahead === 0) { + if (flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + break; + } + } + s.match_length = 0; + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function Config(good_length, max_lazy, nice_length, max_chain, func) { + this.good_length = good_length; + this.max_lazy = max_lazy; + this.nice_length = nice_length; + this.max_chain = max_chain; + this.func = func; + } + var configuration_table; + configuration_table = [ + new Config(0, 0, 0, 0, deflate_stored), + new Config(4, 4, 8, 4, deflate_fast), + new Config(4, 5, 16, 8, deflate_fast), + new Config(4, 6, 32, 32, deflate_fast), + new Config(4, 4, 16, 16, deflate_slow), + new Config(8, 16, 32, 32, deflate_slow), + new Config(8, 16, 128, 128, deflate_slow), + new Config(8, 32, 128, 256, deflate_slow), + new Config(32, 128, 258, 1024, deflate_slow), + new Config(32, 258, 258, 4096, deflate_slow) + ]; + function lm_init(s) { + s.window_size = 2 * s.w_size; + zero(s.head); + s.max_lazy_match = configuration_table[s.level].max_lazy; + s.good_match = configuration_table[s.level].good_length; + s.nice_match = configuration_table[s.level].nice_length; + s.max_chain_length = configuration_table[s.level].max_chain; + s.strstart = 0; + s.block_start = 0; + s.lookahead = 0; + s.insert = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + s.ins_h = 0; + } + function DeflateState() { + this.strm = null; + this.status = 0; + this.pending_buf = null; + this.pending_buf_size = 0; + this.pending_out = 0; + this.pending = 0; + this.wrap = 0; + this.gzhead = null; + this.gzindex = 0; + this.method = Z_DEFLATED; + this.last_flush = -1; + this.w_size = 0; + this.w_bits = 0; + this.w_mask = 0; + this.window = null; + this.window_size = 0; + this.prev = null; + this.head = null; + this.ins_h = 0; + this.hash_size = 0; + this.hash_bits = 0; + this.hash_mask = 0; + this.hash_shift = 0; + this.block_start = 0; + this.match_length = 0; + this.prev_match = 0; + this.match_available = 0; + this.strstart = 0; + this.match_start = 0; + this.lookahead = 0; + this.prev_length = 0; + this.max_chain_length = 0; + this.max_lazy_match = 0; + this.level = 0; + this.strategy = 0; + this.good_match = 0; + this.nice_match = 0; + this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2); + this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2); + this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2); + zero(this.dyn_ltree); + zero(this.dyn_dtree); + zero(this.bl_tree); + this.l_desc = null; + this.d_desc = null; + this.bl_desc = null; + this.bl_count = new utils.Buf16(MAX_BITS + 1); + this.heap = new utils.Buf16(2 * L_CODES + 1); + zero(this.heap); + this.heap_len = 0; + this.heap_max = 0; + this.depth = new utils.Buf16(2 * L_CODES + 1); + zero(this.depth); + this.l_buf = 0; + this.lit_bufsize = 0; + this.last_lit = 0; + this.d_buf = 0; + this.opt_len = 0; + this.static_len = 0; + this.matches = 0; + this.insert = 0; + this.bi_buf = 0; + this.bi_valid = 0; + } + function deflateResetKeep(strm) { + var s; + if (!strm || !strm.state) { + return err(strm, Z_STREAM_ERROR); + } + strm.total_in = strm.total_out = 0; + strm.data_type = Z_UNKNOWN; + s = strm.state; + s.pending = 0; + s.pending_out = 0; + if (s.wrap < 0) { + s.wrap = -s.wrap; + } + s.status = s.wrap ? INIT_STATE : BUSY_STATE; + strm.adler = s.wrap === 2 ? 0 : 1; + s.last_flush = Z_NO_FLUSH; + trees._tr_init(s); + return Z_OK; + } + function deflateReset(strm) { + var ret = deflateResetKeep(strm); + if (ret === Z_OK) { + lm_init(strm.state); + } + return ret; + } + function deflateSetHeader(strm, head) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + if (strm.state.wrap !== 2) { + return Z_STREAM_ERROR; + } + strm.state.gzhead = head; + return Z_OK; + } + function deflateInit2(strm, level, method, windowBits, memLevel, strategy) { + if (!strm) { + return Z_STREAM_ERROR; + } + var wrap = 1; + if (level === Z_DEFAULT_COMPRESSION) { + level = 6; + } + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else if (windowBits > 15) { + wrap = 2; + windowBits -= 16; + } + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { + return err(strm, Z_STREAM_ERROR); + } + if (windowBits === 8) { + windowBits = 9; + } + var s = new DeflateState(); + strm.state = s; + s.strm = strm; + s.wrap = wrap; + s.gzhead = null; + s.w_bits = windowBits; + s.w_size = 1 << s.w_bits; + s.w_mask = s.w_size - 1; + s.hash_bits = memLevel + 7; + s.hash_size = 1 << s.hash_bits; + s.hash_mask = s.hash_size - 1; + s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); + s.window = new utils.Buf8(s.w_size * 2); + s.head = new utils.Buf16(s.hash_size); + s.prev = new utils.Buf16(s.w_size); + s.lit_bufsize = 1 << memLevel + 6; + s.pending_buf_size = s.lit_bufsize * 4; + s.pending_buf = new utils.Buf8(s.pending_buf_size); + s.d_buf = 1 * s.lit_bufsize; + s.l_buf = (1 + 2) * s.lit_bufsize; + s.level = level; + s.strategy = strategy; + s.method = method; + return deflateReset(strm); + } + function deflateInit(strm, level) { + return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); + } + function deflate(strm, flush) { + var old_flush, s; + var beg, val; + if (!strm || !strm.state || flush > Z_BLOCK || flush < 0) { + return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; + } + s = strm.state; + if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush !== Z_FINISH) { + return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR); + } + s.strm = strm; + old_flush = s.last_flush; + s.last_flush = flush; + if (s.status === INIT_STATE) { + if (s.wrap === 2) { + strm.adler = 0; + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (!s.gzhead) { + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, OS_CODE); + s.status = BUSY_STATE; + } else { + put_byte(s, (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16)); + put_byte(s, s.gzhead.time & 255); + put_byte(s, s.gzhead.time >> 8 & 255); + put_byte(s, s.gzhead.time >> 16 & 255); + put_byte(s, s.gzhead.time >> 24 & 255); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, s.gzhead.os & 255); + if (s.gzhead.extra && s.gzhead.extra.length) { + put_byte(s, s.gzhead.extra.length & 255); + put_byte(s, s.gzhead.extra.length >> 8 & 255); + } + if (s.gzhead.hcrc) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0); + } + s.gzindex = 0; + s.status = EXTRA_STATE; + } + } else { + var header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8; + var level_flags = -1; + if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { + level_flags = 0; + } else if (s.level < 6) { + level_flags = 1; + } else if (s.level === 6) { + level_flags = 2; + } else { + level_flags = 3; + } + header |= level_flags << 6; + if (s.strstart !== 0) { + header |= PRESET_DICT; + } + header += 31 - header % 31; + s.status = BUSY_STATE; + putShortMSB(s, header); + if (s.strstart !== 0) { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + strm.adler = 1; + } + } + if (s.status === EXTRA_STATE) { + if (s.gzhead.extra) { + beg = s.pending; + while (s.gzindex < (s.gzhead.extra.length & 65535)) { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + break; + } + } + put_byte(s, s.gzhead.extra[s.gzindex] & 255); + s.gzindex++; + } + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (s.gzindex === s.gzhead.extra.length) { + s.gzindex = 0; + s.status = NAME_STATE; + } + } else { + s.status = NAME_STATE; + } + } + if (s.status === NAME_STATE) { + if (s.gzhead.name) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.name.length) { + val = s.gzhead.name.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.gzindex = 0; + s.status = COMMENT_STATE; + } + } else { + s.status = COMMENT_STATE; + } + } + if (s.status === COMMENT_STATE) { + if (s.gzhead.comment) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.comment.length) { + val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.status = HCRC_STATE; + } + } else { + s.status = HCRC_STATE; + } + } + if (s.status === HCRC_STATE) { + if (s.gzhead.hcrc) { + if (s.pending + 2 > s.pending_buf_size) { + flush_pending(strm); + } + if (s.pending + 2 <= s.pending_buf_size) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + strm.adler = 0; + s.status = BUSY_STATE; + } + } else { + s.status = BUSY_STATE; + } + } + if (s.pending !== 0) { + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH) { + return err(strm, Z_BUF_ERROR); + } + if (s.status === FINISH_STATE && strm.avail_in !== 0) { + return err(strm, Z_BUF_ERROR); + } + if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH && s.status !== FINISH_STATE) { + var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush); + if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { + s.status = FINISH_STATE; + } + if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { + if (strm.avail_out === 0) { + s.last_flush = -1; + } + return Z_OK; + } + if (bstate === BS_BLOCK_DONE) { + if (flush === Z_PARTIAL_FLUSH) { + trees._tr_align(s); + } else if (flush !== Z_BLOCK) { + trees._tr_stored_block(s, 0, 0, false); + if (flush === Z_FULL_FLUSH) { + zero(s.head); + if (s.lookahead === 0) { + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + } + } + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } + } + if (flush !== Z_FINISH) { + return Z_OK; + } + if (s.wrap <= 0) { + return Z_STREAM_END; + } + if (s.wrap === 2) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + put_byte(s, strm.adler >> 16 & 255); + put_byte(s, strm.adler >> 24 & 255); + put_byte(s, strm.total_in & 255); + put_byte(s, strm.total_in >> 8 & 255); + put_byte(s, strm.total_in >> 16 & 255); + put_byte(s, strm.total_in >> 24 & 255); + } else { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + flush_pending(strm); + if (s.wrap > 0) { + s.wrap = -s.wrap; + } + return s.pending !== 0 ? Z_OK : Z_STREAM_END; + } + function deflateEnd(strm) { + var status; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + status = strm.state.status; + if (status !== INIT_STATE && status !== EXTRA_STATE && status !== NAME_STATE && status !== COMMENT_STATE && status !== HCRC_STATE && status !== BUSY_STATE && status !== FINISH_STATE) { + return err(strm, Z_STREAM_ERROR); + } + strm.state = null; + return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK; + } + function deflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var s; + var str, n; + var wrap; + var avail; + var next; + var input; + var tmpDict; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + s = strm.state; + wrap = s.wrap; + if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) { + return Z_STREAM_ERROR; + } + if (wrap === 1) { + strm.adler = adler32(strm.adler, dictionary, dictLength, 0); + } + s.wrap = 0; + if (dictLength >= s.w_size) { + if (wrap === 0) { + zero(s.head); + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + tmpDict = new utils.Buf8(s.w_size); + utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0); + dictionary = tmpDict; + dictLength = s.w_size; + } + avail = strm.avail_in; + next = strm.next_in; + input = strm.input; + strm.avail_in = dictLength; + strm.next_in = 0; + strm.input = dictionary; + fill_window(s); + while (s.lookahead >= MIN_MATCH) { + str = s.strstart; + n = s.lookahead - (MIN_MATCH - 1); + do { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + } while (--n); + s.strstart = str; + s.lookahead = MIN_MATCH - 1; + fill_window(s); + } + s.strstart += s.lookahead; + s.block_start = s.strstart; + s.insert = s.lookahead; + s.lookahead = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + strm.next_in = next; + strm.input = input; + strm.avail_in = avail; + s.wrap = wrap; + return Z_OK; + } + exports3.deflateInit = deflateInit; + exports3.deflateInit2 = deflateInit2; + exports3.deflateReset = deflateReset; + exports3.deflateResetKeep = deflateResetKeep; + exports3.deflateSetHeader = deflateSetHeader; + exports3.deflate = deflate; + exports3.deflateEnd = deflateEnd; + exports3.deflateSetDictionary = deflateSetDictionary; + exports3.deflateInfo = "pako deflate (from Nodeca project)"; + }, { "../utils/common": 5, "./adler32": 7, "./crc32": 8, "./messages": 10, "./trees": 11 }], 10: [function(require2, module4, exports3) { + "use strict"; + module4.exports = { + 2: "need dictionary", + 1: "stream end", + 0: "", + "-1": "file error", + "-2": "stream error", + "-3": "data error", + "-4": "insufficient memory", + "-5": "buffer error", + "-6": "incompatible version" + }; + }, {}], 11: [function(require2, module4, exports3) { + "use strict"; + var utils = require2("../utils/common"); + var Z_FIXED = 4; + var Z_BINARY = 0; + var Z_TEXT = 1; + var Z_UNKNOWN = 2; + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + var STORED_BLOCK = 0; + var STATIC_TREES = 1; + var DYN_TREES = 2; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var Buf_size = 16; + var MAX_BL_BITS = 7; + var END_BLOCK = 256; + var REP_3_6 = 16; + var REPZ_3_10 = 17; + var REPZ_11_138 = 18; + var extra_lbits = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]; + var extra_dbits = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]; + var extra_blbits = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]; + var bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; + var DIST_CODE_LEN = 512; + var static_ltree = new Array((L_CODES + 2) * 2); + zero(static_ltree); + var static_dtree = new Array(D_CODES * 2); + zero(static_dtree); + var _dist_code = new Array(DIST_CODE_LEN); + zero(_dist_code); + var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1); + zero(_length_code); + var base_length = new Array(LENGTH_CODES); + zero(base_length); + var base_dist = new Array(D_CODES); + zero(base_dist); + function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) { + this.static_tree = static_tree; + this.extra_bits = extra_bits; + this.extra_base = extra_base; + this.elems = elems; + this.max_length = max_length; + this.has_stree = static_tree && static_tree.length; + } + var static_l_desc; + var static_d_desc; + var static_bl_desc; + function TreeDesc(dyn_tree, stat_desc) { + this.dyn_tree = dyn_tree; + this.max_code = 0; + this.stat_desc = stat_desc; + } + function d_code(dist) { + return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; + } + function put_short(s, w) { + s.pending_buf[s.pending++] = w & 255; + s.pending_buf[s.pending++] = w >>> 8 & 255; + } + function send_bits(s, value, length) { + if (s.bi_valid > Buf_size - length) { + s.bi_buf |= value << s.bi_valid & 65535; + put_short(s, s.bi_buf); + s.bi_buf = value >> Buf_size - s.bi_valid; + s.bi_valid += length - Buf_size; + } else { + s.bi_buf |= value << s.bi_valid & 65535; + s.bi_valid += length; + } + } + function send_code(s, c, tree) { + send_bits(s, tree[c * 2], tree[c * 2 + 1]); + } + function bi_reverse(code, len) { + var res = 0; + do { + res |= code & 1; + code >>>= 1; + res <<= 1; + } while (--len > 0); + return res >>> 1; + } + function bi_flush(s) { + if (s.bi_valid === 16) { + put_short(s, s.bi_buf); + s.bi_buf = 0; + s.bi_valid = 0; + } else if (s.bi_valid >= 8) { + s.pending_buf[s.pending++] = s.bi_buf & 255; + s.bi_buf >>= 8; + s.bi_valid -= 8; + } + } + function gen_bitlen(s, desc) { + var tree = desc.dyn_tree; + var max_code = desc.max_code; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var extra = desc.stat_desc.extra_bits; + var base = desc.stat_desc.extra_base; + var max_length = desc.stat_desc.max_length; + var h; + var n, m; + var bits; + var xbits; + var f; + var overflow = 0; + for (bits = 0; bits <= MAX_BITS; bits++) { + s.bl_count[bits] = 0; + } + tree[s.heap[s.heap_max] * 2 + 1] = 0; + for (h = s.heap_max + 1; h < HEAP_SIZE; h++) { + n = s.heap[h]; + bits = tree[tree[n * 2 + 1] * 2 + 1] + 1; + if (bits > max_length) { + bits = max_length; + overflow++; + } + tree[n * 2 + 1] = bits; + if (n > max_code) { + continue; + } + s.bl_count[bits]++; + xbits = 0; + if (n >= base) { + xbits = extra[n - base]; + } + f = tree[n * 2]; + s.opt_len += f * (bits + xbits); + if (has_stree) { + s.static_len += f * (stree[n * 2 + 1] + xbits); + } + } + if (overflow === 0) { + return; + } + do { + bits = max_length - 1; + while (s.bl_count[bits] === 0) { + bits--; + } + s.bl_count[bits]--; + s.bl_count[bits + 1] += 2; + s.bl_count[max_length]--; + overflow -= 2; + } while (overflow > 0); + for (bits = max_length; bits !== 0; bits--) { + n = s.bl_count[bits]; + while (n !== 0) { + m = s.heap[--h]; + if (m > max_code) { + continue; + } + if (tree[m * 2 + 1] !== bits) { + s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2]; + tree[m * 2 + 1] = bits; + } + n--; + } + } + } + function gen_codes(tree, max_code, bl_count) { + var next_code = new Array(MAX_BITS + 1); + var code = 0; + var bits; + var n; + for (bits = 1; bits <= MAX_BITS; bits++) { + next_code[bits] = code = code + bl_count[bits - 1] << 1; + } + for (n = 0; n <= max_code; n++) { + var len = tree[n * 2 + 1]; + if (len === 0) { + continue; + } + tree[n * 2] = bi_reverse(next_code[len]++, len); + } + } + function tr_static_init() { + var n; + var bits; + var length; + var code; + var dist; + var bl_count = new Array(MAX_BITS + 1); + length = 0; + for (code = 0; code < LENGTH_CODES - 1; code++) { + base_length[code] = length; + for (n = 0; n < 1 << extra_lbits[code]; n++) { + _length_code[length++] = code; + } + } + _length_code[length - 1] = code; + dist = 0; + for (code = 0; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < 1 << extra_dbits[code]; n++) { + _dist_code[dist++] = code; + } + } + dist >>= 7; + for (; code < D_CODES; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < 1 << extra_dbits[code] - 7; n++) { + _dist_code[256 + dist++] = code; + } + } + for (bits = 0; bits <= MAX_BITS; bits++) { + bl_count[bits] = 0; + } + n = 0; + while (n <= 143) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + while (n <= 255) { + static_ltree[n * 2 + 1] = 9; + n++; + bl_count[9]++; + } + while (n <= 279) { + static_ltree[n * 2 + 1] = 7; + n++; + bl_count[7]++; + } + while (n <= 287) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + gen_codes(static_ltree, L_CODES + 1, bl_count); + for (n = 0; n < D_CODES; n++) { + static_dtree[n * 2 + 1] = 5; + static_dtree[n * 2] = bi_reverse(n, 5); + } + static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS); + static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS); + static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); + } + function init_block(s) { + var n; + for (n = 0; n < L_CODES; n++) { + s.dyn_ltree[n * 2] = 0; + } + for (n = 0; n < D_CODES; n++) { + s.dyn_dtree[n * 2] = 0; + } + for (n = 0; n < BL_CODES; n++) { + s.bl_tree[n * 2] = 0; + } + s.dyn_ltree[END_BLOCK * 2] = 1; + s.opt_len = s.static_len = 0; + s.last_lit = s.matches = 0; + } + function bi_windup(s) { + if (s.bi_valid > 8) { + put_short(s, s.bi_buf); + } else if (s.bi_valid > 0) { + s.pending_buf[s.pending++] = s.bi_buf; + } + s.bi_buf = 0; + s.bi_valid = 0; + } + function copy_block(s, buf, len, header) { + bi_windup(s); + if (header) { + put_short(s, len); + put_short(s, ~len); + } + utils.arraySet(s.pending_buf, s.window, buf, len, s.pending); + s.pending += len; + } + function smaller(tree, n, m, depth) { + var _n2 = n * 2; + var _m2 = m * 2; + return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m]; + } + function pqdownheap(s, tree, k) { + var v = s.heap[k]; + var j = k << 1; + while (j <= s.heap_len) { + if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) { + j++; + } + if (smaller(tree, v, s.heap[j], s.depth)) { + break; + } + s.heap[k] = s.heap[j]; + k = j; + j <<= 1; + } + s.heap[k] = v; + } + function compress_block(s, ltree, dtree) { + var dist; + var lc; + var lx = 0; + var code; + var extra; + if (s.last_lit !== 0) { + do { + dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1]; + lc = s.pending_buf[s.l_buf + lx]; + lx++; + if (dist === 0) { + send_code(s, lc, ltree); + } else { + code = _length_code[lc]; + send_code(s, code + LITERALS + 1, ltree); + extra = extra_lbits[code]; + if (extra !== 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); + } + dist--; + code = d_code(dist); + send_code(s, code, dtree); + extra = extra_dbits[code]; + if (extra !== 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); + } + } + } while (lx < s.last_lit); + } + send_code(s, END_BLOCK, ltree); + } + function build_tree(s, desc) { + var tree = desc.dyn_tree; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var elems = desc.stat_desc.elems; + var n, m; + var max_code = -1; + var node; + s.heap_len = 0; + s.heap_max = HEAP_SIZE; + for (n = 0; n < elems; n++) { + if (tree[n * 2] !== 0) { + s.heap[++s.heap_len] = max_code = n; + s.depth[n] = 0; + } else { + tree[n * 2 + 1] = 0; + } + } + while (s.heap_len < 2) { + node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0; + tree[node * 2] = 1; + s.depth[node] = 0; + s.opt_len--; + if (has_stree) { + s.static_len -= stree[node * 2 + 1]; + } + } + desc.max_code = max_code; + for (n = s.heap_len >> 1; n >= 1; n--) { + pqdownheap(s, tree, n); + } + node = elems; + do { + n = s.heap[1]; + s.heap[1] = s.heap[s.heap_len--]; + pqdownheap(s, tree, 1); + m = s.heap[1]; + s.heap[--s.heap_max] = n; + s.heap[--s.heap_max] = m; + tree[node * 2] = tree[n * 2] + tree[m * 2]; + s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; + tree[n * 2 + 1] = tree[m * 2 + 1] = node; + s.heap[1] = node++; + pqdownheap(s, tree, 1); + } while (s.heap_len >= 2); + s.heap[--s.heap_max] = s.heap[1]; + gen_bitlen(s, desc); + gen_codes(tree, max_code, s.bl_count); + } + function scan_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + tree[(max_code + 1) * 2 + 1] = 65535; + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + s.bl_tree[curlen * 2] += count; + } else if (curlen !== 0) { + if (curlen !== prevlen) { + s.bl_tree[curlen * 2]++; + } + s.bl_tree[REP_3_6 * 2]++; + } else if (count <= 10) { + s.bl_tree[REPZ_3_10 * 2]++; + } else { + s.bl_tree[REPZ_11_138 * 2]++; + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + } + function send_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + do { + send_code(s, curlen, s.bl_tree); + } while (--count !== 0); + } else if (curlen !== 0) { + if (curlen !== prevlen) { + send_code(s, curlen, s.bl_tree); + count--; + } + send_code(s, REP_3_6, s.bl_tree); + send_bits(s, count - 3, 2); + } else if (count <= 10) { + send_code(s, REPZ_3_10, s.bl_tree); + send_bits(s, count - 3, 3); + } else { + send_code(s, REPZ_11_138, s.bl_tree); + send_bits(s, count - 11, 7); + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + } + function build_bl_tree(s) { + var max_blindex; + scan_tree(s, s.dyn_ltree, s.l_desc.max_code); + scan_tree(s, s.dyn_dtree, s.d_desc.max_code); + build_tree(s, s.bl_desc); + for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) { + if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) { + break; + } + } + s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; + return max_blindex; + } + function send_all_trees(s, lcodes, dcodes, blcodes) { + var rank; + send_bits(s, lcodes - 257, 5); + send_bits(s, dcodes - 1, 5); + send_bits(s, blcodes - 4, 4); + for (rank = 0; rank < blcodes; rank++) { + send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3); + } + send_tree(s, s.dyn_ltree, lcodes - 1); + send_tree(s, s.dyn_dtree, dcodes - 1); + } + function detect_data_type(s) { + var black_mask = 4093624447; + var n; + for (n = 0; n <= 31; n++, black_mask >>>= 1) { + if (black_mask & 1 && s.dyn_ltree[n * 2] !== 0) { + return Z_BINARY; + } + } + if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) { + return Z_TEXT; + } + for (n = 32; n < LITERALS; n++) { + if (s.dyn_ltree[n * 2] !== 0) { + return Z_TEXT; + } + } + return Z_BINARY; + } + var static_init_done = false; + function _tr_init(s) { + if (!static_init_done) { + tr_static_init(); + static_init_done = true; + } + s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); + s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); + s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); + s.bi_buf = 0; + s.bi_valid = 0; + init_block(s); + } + function _tr_stored_block(s, buf, stored_len, last) { + send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); + copy_block(s, buf, stored_len, true); + } + function _tr_align(s) { + send_bits(s, STATIC_TREES << 1, 3); + send_code(s, END_BLOCK, static_ltree); + bi_flush(s); + } + function _tr_flush_block(s, buf, stored_len, last) { + var opt_lenb, static_lenb; + var max_blindex = 0; + if (s.level > 0) { + if (s.strm.data_type === Z_UNKNOWN) { + s.strm.data_type = detect_data_type(s); + } + build_tree(s, s.l_desc); + build_tree(s, s.d_desc); + max_blindex = build_bl_tree(s); + opt_lenb = s.opt_len + 3 + 7 >>> 3; + static_lenb = s.static_len + 3 + 7 >>> 3; + if (static_lenb <= opt_lenb) { + opt_lenb = static_lenb; + } + } else { + opt_lenb = static_lenb = stored_len + 5; + } + if (stored_len + 4 <= opt_lenb && buf !== -1) { + _tr_stored_block(s, buf, stored_len, last); + } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) { + send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3); + compress_block(s, static_ltree, static_dtree); + } else { + send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3); + send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1); + compress_block(s, s.dyn_ltree, s.dyn_dtree); + } + init_block(s); + if (last) { + bi_windup(s); + } + } + function _tr_tally(s, dist, lc) { + s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 255; + s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 255; + s.pending_buf[s.l_buf + s.last_lit] = lc & 255; + s.last_lit++; + if (dist === 0) { + s.dyn_ltree[lc * 2]++; + } else { + s.matches++; + dist--; + s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++; + s.dyn_dtree[d_code(dist) * 2]++; + } + return s.last_lit === s.lit_bufsize - 1; + } + exports3._tr_init = _tr_init; + exports3._tr_stored_block = _tr_stored_block; + exports3._tr_flush_block = _tr_flush_block; + exports3._tr_tally = _tr_tally; + exports3._tr_align = _tr_align; + }, { "../utils/common": 5 }], 12: [function(require2, module4, exports3) { + "use strict"; + function ZStream() { + this.input = null; + this.next_in = 0; + this.avail_in = 0; + this.total_in = 0; + this.output = null; + this.next_out = 0; + this.avail_out = 0; + this.total_out = 0; + this.msg = ""; + this.state = null; + this.data_type = 2; + this.adler = 0; + } + module4.exports = ZStream; + }, {}] }, {}, [3])(3); + }); + } +}); + +// node_modules/plantuml-encoder/dist/plantuml-decoder.js +var require_plantuml_decoder = __commonJS({ + "node_modules/plantuml-encoder/dist/plantuml-decoder.js"(exports, module2) { + (function(f) { + if (typeof exports === "object" && typeof module2 !== "undefined") { + module2.exports = f(); + } else if (typeof define === "function" && define.amd) { + define([], f); + } else { + var g; + if (typeof window !== "undefined") { + g = window; + } else if (typeof global !== "undefined") { + g = global; + } else if (typeof self !== "undefined") { + g = self; + } else { + g = this; + } + g.plantumlEncoder = f(); + } + })(function() { + var define2, module3, exports2; + return function() { + function r(e, n, t) { + function o(i2, f) { + if (!n[i2]) { + if (!e[i2]) { + var c = typeof require == "function" && require; + if (!f && c) + return c(i2, true); + if (u) + return u(i2, true); + var a = new Error("Cannot find module '" + i2 + "'"); + throw a.code = "MODULE_NOT_FOUND", a; + } + var p = n[i2] = { exports: {} }; + e[i2][0].call(p.exports, function(r2) { + var n2 = e[i2][1][r2]; + return o(n2 || r2); + }, p, p.exports, r, e, n, t); + } + return n[i2].exports; + } + for (var u = typeof require == "function" && require, i = 0; i < t.length; i++) + o(t[i]); + return o; + } + return r; + }()({ 1: [function(require2, module4, exports3) { + "use strict"; + var pako = require2("pako/lib/inflate.js"); + module4.exports = function(data) { + return pako.inflateRaw(data, { to: "string" }); + }; + }, { "pako/lib/inflate.js": 4 }], 2: [function(require2, module4, exports3) { + "use strict"; + function decode6bit(cc) { + var c = cc.charCodeAt(0); + if (cc === "_") + return 63; + if (cc === "-") + return 62; + if (c >= 97) + return c - 61; + if (c >= 65) + return c - 55; + if (c >= 48) + return c - 48; + return "?"; + } + function extract3bytes(data) { + var c1 = decode6bit(data[0]); + var c2 = decode6bit(data[1]); + var c3 = decode6bit(data[2]); + var c4 = decode6bit(data[3]); + var b1 = c1 << 2 | c2 >> 4 & 63; + var b2 = c2 << 4 & 240 | c3 >> 2 & 15; + var b3 = c3 << 6 & 192 | c4 & 63; + return [b1, b2, b3]; + } + module4.exports = function(data) { + var r = ""; + var i = 0; + for (i = 0; i < data.length; i += 4) { + var t = extract3bytes(data.substring(i, i + 4)); + r = r + String.fromCharCode(t[0]); + r = r + String.fromCharCode(t[1]); + r = r + String.fromCharCode(t[2]); + } + return r; + }; + }, {}], 3: [function(require2, module4, exports3) { + "use strict"; + var inflate = require2("./inflate"); + var decode64 = require2("./decode64"); + module4.exports.decode = function(encoded) { + var deflated = decode64(encoded); + return inflate(deflated); + }; + }, { "./decode64": 2, "./inflate": 1 }], 4: [function(require2, module4, exports3) { + "use strict"; + var zlib_inflate = require2("./zlib/inflate"); + var utils = require2("./utils/common"); + var strings = require2("./utils/strings"); + var c = require2("./zlib/constants"); + var msg = require2("./zlib/messages"); + var ZStream = require2("./zlib/zstream"); + var GZheader = require2("./zlib/gzheader"); + var toString = Object.prototype.toString; + function Inflate(options) { + if (!(this instanceof Inflate)) + return new Inflate(options); + this.options = utils.assign({ + chunkSize: 16384, + windowBits: 0, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) { + opt.windowBits = -opt.windowBits; + if (opt.windowBits === 0) { + opt.windowBits = -15; + } + } + if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) { + opt.windowBits += 32; + } + if (opt.windowBits > 15 && opt.windowBits < 48) { + if ((opt.windowBits & 15) === 0) { + opt.windowBits |= 15; + } + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status = zlib_inflate.inflateInit2(this.strm, opt.windowBits); + if (status !== c.Z_OK) { + throw new Error(msg[status]); + } + this.header = new GZheader(); + zlib_inflate.inflateGetHeader(this.strm, this.header); + if (opt.dictionary) { + if (typeof opt.dictionary === "string") { + opt.dictionary = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + opt.dictionary = new Uint8Array(opt.dictionary); + } + if (opt.raw) { + status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary); + if (status !== c.Z_OK) { + throw new Error(msg[status]); + } + } + } + } + Inflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var dictionary = this.options.dictionary; + var status, _mode; + var next_out_utf8, tail, utf8str; + var allowBufError = false; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? c.Z_FINISH : c.Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.binstring2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); + if (status === c.Z_NEED_DICT && dictionary) { + status = zlib_inflate.inflateSetDictionary(this.strm, dictionary); + } + if (status === c.Z_BUF_ERROR && allowBufError === true) { + status = c.Z_OK; + allowBufError = false; + } + if (status !== c.Z_STREAM_END && status !== c.Z_OK) { + this.onEnd(status); + this.ended = true; + return false; + } + if (strm.next_out) { + if (strm.avail_out === 0 || status === c.Z_STREAM_END || strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + next_out_utf8 = strings.utf8border(strm.output, strm.next_out); + tail = strm.next_out - next_out_utf8; + utf8str = strings.buf2string(strm.output, next_out_utf8); + strm.next_out = tail; + strm.avail_out = chunkSize - tail; + if (tail) { + utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); + } + this.onData(utf8str); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } + if (strm.avail_in === 0 && strm.avail_out === 0) { + allowBufError = true; + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END); + if (status === c.Z_STREAM_END) { + _mode = c.Z_FINISH; + } + if (_mode === c.Z_FINISH) { + status = zlib_inflate.inflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return status === c.Z_OK; + } + if (_mode === c.Z_SYNC_FLUSH) { + this.onEnd(c.Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Inflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Inflate.prototype.onEnd = function(status) { + if (status === c.Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; + }; + function inflate(input, options) { + var inflator = new Inflate(options); + inflator.push(input, true); + if (inflator.err) { + throw inflator.msg || msg[inflator.err]; + } + return inflator.result; + } + function inflateRaw(input, options) { + options = options || {}; + options.raw = true; + return inflate(input, options); + } + exports3.Inflate = Inflate; + exports3.inflate = inflate; + exports3.inflateRaw = inflateRaw; + exports3.ungzip = inflate; + }, { "./utils/common": 5, "./utils/strings": 6, "./zlib/constants": 8, "./zlib/gzheader": 10, "./zlib/inflate": 12, "./zlib/messages": 14, "./zlib/zstream": 15 }], 5: [function(require2, module4, exports3) { + "use strict"; + var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined"; + function _has(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); + } + exports3.assign = function(obj) { + var sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + var source = sources.shift(); + if (!source) { + continue; + } + if (typeof source !== "object") { + throw new TypeError(source + "must be non-object"); + } + for (var p in source) { + if (_has(source, p)) { + obj[p] = source[p]; + } + } + } + return obj; + }; + exports3.shrinkBuf = function(buf, size) { + if (buf.length === size) { + return buf; + } + if (buf.subarray) { + return buf.subarray(0, size); + } + buf.length = size; + return buf; + }; + var fnTyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + if (src.subarray && dest.subarray) { + dest.set(src.subarray(src_offs, src_offs + len), dest_offs); + return; + } + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + flattenChunks: function(chunks) { + var i, l, len, pos, chunk, result; + len = 0; + for (i = 0, l = chunks.length; i < l; i++) { + len += chunks[i].length; + } + result = new Uint8Array(len); + pos = 0; + for (i = 0, l = chunks.length; i < l; i++) { + chunk = chunks[i]; + result.set(chunk, pos); + pos += chunk.length; + } + return result; + } + }; + var fnUntyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + flattenChunks: function(chunks) { + return [].concat.apply([], chunks); + } + }; + exports3.setTyped = function(on) { + if (on) { + exports3.Buf8 = Uint8Array; + exports3.Buf16 = Uint16Array; + exports3.Buf32 = Int32Array; + exports3.assign(exports3, fnTyped); + } else { + exports3.Buf8 = Array; + exports3.Buf16 = Array; + exports3.Buf32 = Array; + exports3.assign(exports3, fnUntyped); + } + }; + exports3.setTyped(TYPED_OK); + }, {}], 6: [function(require2, module4, exports3) { + "use strict"; + var utils = require2("./common"); + var STR_APPLY_OK = true; + var STR_APPLY_UIA_OK = true; + try { + String.fromCharCode.apply(null, [0]); + } catch (__) { + STR_APPLY_OK = false; + } + try { + String.fromCharCode.apply(null, new Uint8Array(1)); + } catch (__) { + STR_APPLY_UIA_OK = false; + } + var _utf8len = new utils.Buf8(256); + for (var q = 0; q < 256; q++) { + _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1; + } + _utf8len[254] = _utf8len[254] = 1; + exports3.string2buf = function(str) { + var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4; + } + buf = new utils.Buf8(buf_len); + for (i = 0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + if (c < 128) { + buf[i++] = c; + } else if (c < 2048) { + buf[i++] = 192 | c >>> 6; + buf[i++] = 128 | c & 63; + } else if (c < 65536) { + buf[i++] = 224 | c >>> 12; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } else { + buf[i++] = 240 | c >>> 18; + buf[i++] = 128 | c >>> 12 & 63; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } + } + return buf; + }; + function buf2binstring(buf, len) { + if (len < 65534) { + if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) { + return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); + } + } + var result = ""; + for (var i = 0; i < len; i++) { + result += String.fromCharCode(buf[i]); + } + return result; + } + exports3.buf2binstring = function(buf) { + return buf2binstring(buf, buf.length); + }; + exports3.binstring2buf = function(str) { + var buf = new utils.Buf8(str.length); + for (var i = 0, len = buf.length; i < len; i++) { + buf[i] = str.charCodeAt(i); + } + return buf; + }; + exports3.buf2string = function(buf, max) { + var i, out, c, c_len; + var len = max || buf.length; + var utf16buf = new Array(len * 2); + for (out = 0, i = 0; i < len; ) { + c = buf[i++]; + if (c < 128) { + utf16buf[out++] = c; + continue; + } + c_len = _utf8len[c]; + if (c_len > 4) { + utf16buf[out++] = 65533; + i += c_len - 1; + continue; + } + c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7; + while (c_len > 1 && i < len) { + c = c << 6 | buf[i++] & 63; + c_len--; + } + if (c_len > 1) { + utf16buf[out++] = 65533; + continue; + } + if (c < 65536) { + utf16buf[out++] = c; + } else { + c -= 65536; + utf16buf[out++] = 55296 | c >> 10 & 1023; + utf16buf[out++] = 56320 | c & 1023; + } + } + return buf2binstring(utf16buf, out); + }; + exports3.utf8border = function(buf, max) { + var pos; + max = max || buf.length; + if (max > buf.length) { + max = buf.length; + } + pos = max - 1; + while (pos >= 0 && (buf[pos] & 192) === 128) { + pos--; + } + if (pos < 0) { + return max; + } + if (pos === 0) { + return max; + } + return pos + _utf8len[buf[pos]] > max ? pos : max; + }; + }, { "./common": 5 }], 7: [function(require2, module4, exports3) { + "use strict"; + function adler32(adler, buf, len, pos) { + var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0; + while (len !== 0) { + n = len > 2e3 ? 2e3 : len; + len -= n; + do { + s1 = s1 + buf[pos++] | 0; + s2 = s2 + s1 | 0; + } while (--n); + s1 %= 65521; + s2 %= 65521; + } + return s1 | s2 << 16 | 0; + } + module4.exports = adler32; + }, {}], 8: [function(require2, module4, exports3) { + "use strict"; + module4.exports = { + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_TREES: 6, + Z_OK: 0, + Z_STREAM_END: 1, + Z_NEED_DICT: 2, + Z_ERRNO: -1, + Z_STREAM_ERROR: -2, + Z_DATA_ERROR: -3, + Z_BUF_ERROR: -5, + Z_NO_COMPRESSION: 0, + Z_BEST_SPEED: 1, + Z_BEST_COMPRESSION: 9, + Z_DEFAULT_COMPRESSION: -1, + Z_FILTERED: 1, + Z_HUFFMAN_ONLY: 2, + Z_RLE: 3, + Z_FIXED: 4, + Z_DEFAULT_STRATEGY: 0, + Z_BINARY: 0, + Z_TEXT: 1, + Z_UNKNOWN: 2, + Z_DEFLATED: 8 + }; + }, {}], 9: [function(require2, module4, exports3) { + "use strict"; + function makeTable() { + var c, table = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; + } + table[n] = c; + } + return table; + } + var crcTable = makeTable(); + function crc32(crc, buf, len, pos) { + var t = crcTable, end = pos + len; + crc ^= -1; + for (var i = pos; i < end; i++) { + crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255]; + } + return crc ^ -1; + } + module4.exports = crc32; + }, {}], 10: [function(require2, module4, exports3) { + "use strict"; + function GZheader() { + this.text = 0; + this.time = 0; + this.xflags = 0; + this.os = 0; + this.extra = null; + this.extra_len = 0; + this.name = ""; + this.comment = ""; + this.hcrc = 0; + this.done = false; + } + module4.exports = GZheader; + }, {}], 11: [function(require2, module4, exports3) { + "use strict"; + var BAD = 30; + var TYPE = 12; + module4.exports = function inflate_fast(strm, start) { + var state; + var _in; + var last; + var _out; + var beg; + var end; + var dmax; + var wsize; + var whave; + var wnext; + var s_window; + var hold; + var bits; + var lcode; + var dcode; + var lmask; + var dmask; + var here; + var op; + var len; + var dist; + var from; + var from_source; + var input, output; + state = strm.state; + _in = strm.next_in; + input = strm.input; + last = _in + (strm.avail_in - 5); + _out = strm.next_out; + output = strm.output; + beg = _out - (start - strm.avail_out); + end = _out + (strm.avail_out - 257); + dmax = state.dmax; + wsize = state.wsize; + whave = state.whave; + wnext = state.wnext; + s_window = state.window; + hold = state.hold; + bits = state.bits; + lcode = state.lencode; + dcode = state.distcode; + lmask = (1 << state.lenbits) - 1; + dmask = (1 << state.distbits) - 1; + top: + do { + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = lcode[hold & lmask]; + dolen: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op === 0) { + output[_out++] = here & 65535; + } else if (op & 16) { + len = here & 65535; + op &= 15; + if (op) { + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + len += hold & (1 << op) - 1; + hold >>>= op; + bits -= op; + } + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = dcode[hold & dmask]; + dodist: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op & 16) { + dist = here & 65535; + op &= 15; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + } + dist += hold & (1 << op) - 1; + if (dist > dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + hold >>>= op; + bits -= op; + op = _out - beg; + if (dist > op) { + op = dist - op; + if (op > whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + } + from = 0; + from_source = s_window; + if (wnext === 0) { + from += wsize - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } else if (wnext < op) { + from += wsize + wnext - op; + op -= wnext; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = 0; + if (wnext < len) { + op = wnext; + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + } else { + from += wnext - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + while (len > 2) { + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + len -= 3; + } + if (len) { + output[_out++] = from_source[from++]; + if (len > 1) { + output[_out++] = from_source[from++]; + } + } + } else { + from = _out - dist; + do { + output[_out++] = output[from++]; + output[_out++] = output[from++]; + output[_out++] = output[from++]; + len -= 3; + } while (len > 2); + if (len) { + output[_out++] = output[from++]; + if (len > 1) { + output[_out++] = output[from++]; + } + } + } + } else if ((op & 64) === 0) { + here = dcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dodist; + } else { + strm.msg = "invalid distance code"; + state.mode = BAD; + break top; + } + break; + } + } else if ((op & 64) === 0) { + here = lcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dolen; + } else if (op & 32) { + state.mode = TYPE; + break top; + } else { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break top; + } + break; + } + } while (_in < last && _out < end); + len = bits >> 3; + _in -= len; + bits -= len << 3; + hold &= (1 << bits) - 1; + strm.next_in = _in; + strm.next_out = _out; + strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last); + strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end); + state.hold = hold; + state.bits = bits; + return; + }; + }, {}], 12: [function(require2, module4, exports3) { + "use strict"; + var utils = require2("../utils/common"); + var adler32 = require2("./adler32"); + var crc32 = require2("./crc32"); + var inflate_fast = require2("./inffast"); + var inflate_table = require2("./inftrees"); + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_TREES = 6; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_NEED_DICT = 2; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_MEM_ERROR = -4; + var Z_BUF_ERROR = -5; + var Z_DEFLATED = 8; + var HEAD = 1; + var FLAGS = 2; + var TIME = 3; + var OS = 4; + var EXLEN = 5; + var EXTRA = 6; + var NAME = 7; + var COMMENT = 8; + var HCRC = 9; + var DICTID = 10; + var DICT = 11; + var TYPE = 12; + var TYPEDO = 13; + var STORED = 14; + var COPY_ = 15; + var COPY = 16; + var TABLE = 17; + var LENLENS = 18; + var CODELENS = 19; + var LEN_ = 20; + var LEN = 21; + var LENEXT = 22; + var DIST = 23; + var DISTEXT = 24; + var MATCH = 25; + var LIT = 26; + var CHECK = 27; + var LENGTH = 28; + var DONE = 29; + var BAD = 30; + var MEM = 31; + var SYNC = 32; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var MAX_WBITS = 15; + var DEF_WBITS = MAX_WBITS; + function zswap32(q) { + return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24); + } + function InflateState() { + this.mode = 0; + this.last = false; + this.wrap = 0; + this.havedict = false; + this.flags = 0; + this.dmax = 0; + this.check = 0; + this.total = 0; + this.head = null; + this.wbits = 0; + this.wsize = 0; + this.whave = 0; + this.wnext = 0; + this.window = null; + this.hold = 0; + this.bits = 0; + this.length = 0; + this.offset = 0; + this.extra = 0; + this.lencode = null; + this.distcode = null; + this.lenbits = 0; + this.distbits = 0; + this.ncode = 0; + this.nlen = 0; + this.ndist = 0; + this.have = 0; + this.next = null; + this.lens = new utils.Buf16(320); + this.work = new utils.Buf16(288); + this.lendyn = null; + this.distdyn = null; + this.sane = 0; + this.back = 0; + this.was = 0; + } + function inflateResetKeep(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + strm.total_in = strm.total_out = state.total = 0; + strm.msg = ""; + if (state.wrap) { + strm.adler = state.wrap & 1; + } + state.mode = HEAD; + state.last = 0; + state.havedict = 0; + state.dmax = 32768; + state.head = null; + state.hold = 0; + state.bits = 0; + state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); + state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); + state.sane = 1; + state.back = -1; + return Z_OK; + } + function inflateReset(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + state.wsize = 0; + state.whave = 0; + state.wnext = 0; + return inflateResetKeep(strm); + } + function inflateReset2(strm, windowBits) { + var wrap; + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else { + wrap = (windowBits >> 4) + 1; + if (windowBits < 48) { + windowBits &= 15; + } + } + if (windowBits && (windowBits < 8 || windowBits > 15)) { + return Z_STREAM_ERROR; + } + if (state.window !== null && state.wbits !== windowBits) { + state.window = null; + } + state.wrap = wrap; + state.wbits = windowBits; + return inflateReset(strm); + } + function inflateInit2(strm, windowBits) { + var ret; + var state; + if (!strm) { + return Z_STREAM_ERROR; + } + state = new InflateState(); + strm.state = state; + state.window = null; + ret = inflateReset2(strm, windowBits); + if (ret !== Z_OK) { + strm.state = null; + } + return ret; + } + function inflateInit(strm) { + return inflateInit2(strm, DEF_WBITS); + } + var virgin = true; + var lenfix, distfix; + function fixedtables(state) { + if (virgin) { + var sym; + lenfix = new utils.Buf32(512); + distfix = new utils.Buf32(32); + sym = 0; + while (sym < 144) { + state.lens[sym++] = 8; + } + while (sym < 256) { + state.lens[sym++] = 9; + } + while (sym < 280) { + state.lens[sym++] = 7; + } + while (sym < 288) { + state.lens[sym++] = 8; + } + inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); + sym = 0; + while (sym < 32) { + state.lens[sym++] = 5; + } + inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); + virgin = false; + } + state.lencode = lenfix; + state.lenbits = 9; + state.distcode = distfix; + state.distbits = 5; + } + function updatewindow(strm, src, end, copy) { + var dist; + var state = strm.state; + if (state.window === null) { + state.wsize = 1 << state.wbits; + state.wnext = 0; + state.whave = 0; + state.window = new utils.Buf8(state.wsize); + } + if (copy >= state.wsize) { + utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0); + state.wnext = 0; + state.whave = state.wsize; + } else { + dist = state.wsize - state.wnext; + if (dist > copy) { + dist = copy; + } + utils.arraySet(state.window, src, end - copy, dist, state.wnext); + copy -= dist; + if (copy) { + utils.arraySet(state.window, src, end - copy, copy, 0); + state.wnext = copy; + state.whave = state.wsize; + } else { + state.wnext += dist; + if (state.wnext === state.wsize) { + state.wnext = 0; + } + if (state.whave < state.wsize) { + state.whave += dist; + } + } + } + return 0; + } + function inflate(strm, flush) { + var state; + var input, output; + var next; + var put; + var have, left; + var hold; + var bits; + var _in, _out; + var copy; + var from; + var from_source; + var here = 0; + var here_bits, here_op, here_val; + var last_bits, last_op, last_val; + var len; + var ret; + var hbuf = new utils.Buf8(4); + var opts; + var n; + var order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; + if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.mode === TYPE) { + state.mode = TYPEDO; + } + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + _in = have; + _out = left; + ret = Z_OK; + inf_leave: + for (; ; ) { + switch (state.mode) { + case HEAD: + if (state.wrap === 0) { + state.mode = TYPEDO; + break; + } + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.wrap & 2 && hold === 35615) { + state.check = 0; + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + hold = 0; + bits = 0; + state.mode = FLAGS; + break; + } + state.flags = 0; + if (state.head) { + state.head.done = false; + } + if (!(state.wrap & 1) || (((hold & 255) << 8) + (hold >> 8)) % 31) { + strm.msg = "incorrect header check"; + state.mode = BAD; + break; + } + if ((hold & 15) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + hold >>>= 4; + bits -= 4; + len = (hold & 15) + 8; + if (state.wbits === 0) { + state.wbits = len; + } else if (len > state.wbits) { + strm.msg = "invalid window size"; + state.mode = BAD; + break; + } + state.dmax = 1 << len; + strm.adler = state.check = 1; + state.mode = hold & 512 ? DICTID : TYPE; + hold = 0; + bits = 0; + break; + case FLAGS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.flags = hold; + if ((state.flags & 255) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + if (state.flags & 57344) { + strm.msg = "unknown header flags set"; + state.mode = BAD; + break; + } + if (state.head) { + state.head.text = hold >> 8 & 1; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = TIME; + case TIME: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.time = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + hbuf[2] = hold >>> 16 & 255; + hbuf[3] = hold >>> 24 & 255; + state.check = crc32(state.check, hbuf, 4, 0); + } + hold = 0; + bits = 0; + state.mode = OS; + case OS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.xflags = hold & 255; + state.head.os = hold >> 8; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = EXLEN; + case EXLEN: + if (state.flags & 1024) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length = hold; + if (state.head) { + state.head.extra_len = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + } else if (state.head) { + state.head.extra = null; + } + state.mode = EXTRA; + case EXTRA: + if (state.flags & 1024) { + copy = state.length; + if (copy > have) { + copy = have; + } + if (copy) { + if (state.head) { + len = state.head.extra_len - state.length; + if (!state.head.extra) { + state.head.extra = new Array(state.head.extra_len); + } + utils.arraySet(state.head.extra, input, next, copy, len); + } + if (state.flags & 512) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + state.length -= copy; + } + if (state.length) { + break inf_leave; + } + } + state.length = 0; + state.mode = NAME; + case NAME: + if (state.flags & 2048) { + if (have === 0) { + break inf_leave; + } + copy = 0; + do { + len = input[next + copy++]; + if (state.head && len && state.length < 65536) { + state.head.name += String.fromCharCode(len); + } + } while (len && copy < have); + if (state.flags & 512) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.name = null; + } + state.length = 0; + state.mode = COMMENT; + case COMMENT: + if (state.flags & 4096) { + if (have === 0) { + break inf_leave; + } + copy = 0; + do { + len = input[next + copy++]; + if (state.head && len && state.length < 65536) { + state.head.comment += String.fromCharCode(len); + } + } while (len && copy < have); + if (state.flags & 512) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.comment = null; + } + state.mode = HCRC; + case HCRC: + if (state.flags & 512) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.check & 65535)) { + strm.msg = "header crc mismatch"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + if (state.head) { + state.head.hcrc = state.flags >> 9 & 1; + state.head.done = true; + } + strm.adler = state.check = 0; + state.mode = TYPE; + break; + case DICTID: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + strm.adler = state.check = zswap32(hold); + hold = 0; + bits = 0; + state.mode = DICT; + case DICT: + if (state.havedict === 0) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + return Z_NEED_DICT; + } + strm.adler = state.check = 1; + state.mode = TYPE; + case TYPE: + if (flush === Z_BLOCK || flush === Z_TREES) { + break inf_leave; + } + case TYPEDO: + if (state.last) { + hold >>>= bits & 7; + bits -= bits & 7; + state.mode = CHECK; + break; + } + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.last = hold & 1; + hold >>>= 1; + bits -= 1; + switch (hold & 3) { + case 0: + state.mode = STORED; + break; + case 1: + fixedtables(state); + state.mode = LEN_; + if (flush === Z_TREES) { + hold >>>= 2; + bits -= 2; + break inf_leave; + } + break; + case 2: + state.mode = TABLE; + break; + case 3: + strm.msg = "invalid block type"; + state.mode = BAD; + } + hold >>>= 2; + bits -= 2; + break; + case STORED: + hold >>>= bits & 7; + bits -= bits & 7; + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((hold & 65535) !== (hold >>> 16 ^ 65535)) { + strm.msg = "invalid stored block lengths"; + state.mode = BAD; + break; + } + state.length = hold & 65535; + hold = 0; + bits = 0; + state.mode = COPY_; + if (flush === Z_TREES) { + break inf_leave; + } + case COPY_: + state.mode = COPY; + case COPY: + copy = state.length; + if (copy) { + if (copy > have) { + copy = have; + } + if (copy > left) { + copy = left; + } + if (copy === 0) { + break inf_leave; + } + utils.arraySet(output, input, next, copy, put); + have -= copy; + next += copy; + left -= copy; + put += copy; + state.length -= copy; + break; + } + state.mode = TYPE; + break; + case TABLE: + while (bits < 14) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.nlen = (hold & 31) + 257; + hold >>>= 5; + bits -= 5; + state.ndist = (hold & 31) + 1; + hold >>>= 5; + bits -= 5; + state.ncode = (hold & 15) + 4; + hold >>>= 4; + bits -= 4; + if (state.nlen > 286 || state.ndist > 30) { + strm.msg = "too many length or distance symbols"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = LENLENS; + case LENLENS: + while (state.have < state.ncode) { + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.lens[order[state.have++]] = hold & 7; + hold >>>= 3; + bits -= 3; + } + while (state.have < 19) { + state.lens[order[state.have++]] = 0; + } + state.lencode = state.lendyn; + state.lenbits = 7; + opts = { bits: state.lenbits }; + ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid code lengths set"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = CODELENS; + case CODELENS: + while (state.have < state.nlen + state.ndist) { + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_val < 16) { + hold >>>= here_bits; + bits -= here_bits; + state.lens[state.have++] = here_val; + } else { + if (here_val === 16) { + n = here_bits + 2; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + if (state.have === 0) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + len = state.lens[state.have - 1]; + copy = 3 + (hold & 3); + hold >>>= 2; + bits -= 2; + } else if (here_val === 17) { + n = here_bits + 3; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy = 3 + (hold & 7); + hold >>>= 3; + bits -= 3; + } else { + n = here_bits + 7; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy = 11 + (hold & 127); + hold >>>= 7; + bits -= 7; + } + if (state.have + copy > state.nlen + state.ndist) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + while (copy--) { + state.lens[state.have++] = len; + } + } + } + if (state.mode === BAD) { + break; + } + if (state.lens[256] === 0) { + strm.msg = "invalid code -- missing end-of-block"; + state.mode = BAD; + break; + } + state.lenbits = 9; + opts = { bits: state.lenbits }; + ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid literal/lengths set"; + state.mode = BAD; + break; + } + state.distbits = 6; + state.distcode = state.distdyn; + opts = { bits: state.distbits }; + ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); + state.distbits = opts.bits; + if (ret) { + strm.msg = "invalid distances set"; + state.mode = BAD; + break; + } + state.mode = LEN_; + if (flush === Z_TREES) { + break inf_leave; + } + case LEN_: + state.mode = LEN; + case LEN: + if (have >= 6 && left >= 258) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + inflate_fast(strm, _out); + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + if (state.mode === TYPE) { + state.back = -1; + } + break; + } + state.back = 0; + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_op && (here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + state.length = here_val; + if (here_op === 0) { + state.mode = LIT; + break; + } + if (here_op & 32) { + state.back = -1; + state.mode = TYPE; + break; + } + if (here_op & 64) { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break; + } + state.extra = here_op & 15; + state.mode = LENEXT; + case LENEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + state.was = state.length; + state.mode = DIST; + case DIST: + for (; ; ) { + here = state.distcode[hold & (1 << state.distbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + if (here_op & 64) { + strm.msg = "invalid distance code"; + state.mode = BAD; + break; + } + state.offset = here_val; + state.extra = here_op & 15; + state.mode = DISTEXT; + case DISTEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.offset += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + if (state.offset > state.dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + state.mode = MATCH; + case MATCH: + if (left === 0) { + break inf_leave; + } + copy = _out - left; + if (state.offset > copy) { + copy = state.offset - copy; + if (copy > state.whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + } + if (copy > state.wnext) { + copy -= state.wnext; + from = state.wsize - copy; + } else { + from = state.wnext - copy; + } + if (copy > state.length) { + copy = state.length; + } + from_source = state.window; + } else { + from_source = output; + from = put - state.offset; + copy = state.length; + } + if (copy > left) { + copy = left; + } + left -= copy; + state.length -= copy; + do { + output[put++] = from_source[from++]; + } while (--copy); + if (state.length === 0) { + state.mode = LEN; + } + break; + case LIT: + if (left === 0) { + break inf_leave; + } + output[put++] = state.length; + left--; + state.mode = LEN; + break; + case CHECK: + if (state.wrap) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold |= input[next++] << bits; + bits += 8; + } + _out -= left; + strm.total_out += _out; + state.total += _out; + if (_out) { + strm.adler = state.check = state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out); + } + _out = left; + if ((state.flags ? hold : zswap32(hold)) !== state.check) { + strm.msg = "incorrect data check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = LENGTH; + case LENGTH: + if (state.wrap && state.flags) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.total & 4294967295)) { + strm.msg = "incorrect length check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = DONE; + case DONE: + ret = Z_STREAM_END; + break inf_leave; + case BAD: + ret = Z_DATA_ERROR; + break inf_leave; + case MEM: + return Z_MEM_ERROR; + case SYNC: + default: + return Z_STREAM_ERROR; + } + } + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH)) { + if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { + state.mode = MEM; + return Z_MEM_ERROR; + } + } + _in -= strm.avail_in; + _out -= strm.avail_out; + strm.total_in += _in; + strm.total_out += _out; + state.total += _out; + if (state.wrap && _out) { + strm.adler = state.check = state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out); + } + strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); + if ((_in === 0 && _out === 0 || flush === Z_FINISH) && ret === Z_OK) { + ret = Z_BUF_ERROR; + } + return ret; + } + function inflateEnd(strm) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + var state = strm.state; + if (state.window) { + state.window = null; + } + strm.state = null; + return Z_OK; + } + function inflateGetHeader(strm, head) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if ((state.wrap & 2) === 0) { + return Z_STREAM_ERROR; + } + state.head = head; + head.done = false; + return Z_OK; + } + function inflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var state; + var dictid; + var ret; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.wrap !== 0 && state.mode !== DICT) { + return Z_STREAM_ERROR; + } + if (state.mode === DICT) { + dictid = 1; + dictid = adler32(dictid, dictionary, dictLength, 0); + if (dictid !== state.check) { + return Z_DATA_ERROR; + } + } + ret = updatewindow(strm, dictionary, dictLength, dictLength); + if (ret) { + state.mode = MEM; + return Z_MEM_ERROR; + } + state.havedict = 1; + return Z_OK; + } + exports3.inflateReset = inflateReset; + exports3.inflateReset2 = inflateReset2; + exports3.inflateResetKeep = inflateResetKeep; + exports3.inflateInit = inflateInit; + exports3.inflateInit2 = inflateInit2; + exports3.inflate = inflate; + exports3.inflateEnd = inflateEnd; + exports3.inflateGetHeader = inflateGetHeader; + exports3.inflateSetDictionary = inflateSetDictionary; + exports3.inflateInfo = "pako inflate (from Nodeca project)"; + }, { "../utils/common": 5, "./adler32": 7, "./crc32": 9, "./inffast": 11, "./inftrees": 13 }], 13: [function(require2, module4, exports3) { + "use strict"; + var utils = require2("../utils/common"); + var MAXBITS = 15; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var lbase = [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 13, + 15, + 17, + 19, + 23, + 27, + 31, + 35, + 43, + 51, + 59, + 67, + 83, + 99, + 115, + 131, + 163, + 195, + 227, + 258, + 0, + 0 + ]; + var lext = [ + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 17, + 17, + 17, + 17, + 18, + 18, + 18, + 18, + 19, + 19, + 19, + 19, + 20, + 20, + 20, + 20, + 21, + 21, + 21, + 21, + 16, + 72, + 78 + ]; + var dbase = [ + 1, + 2, + 3, + 4, + 5, + 7, + 9, + 13, + 17, + 25, + 33, + 49, + 65, + 97, + 129, + 193, + 257, + 385, + 513, + 769, + 1025, + 1537, + 2049, + 3073, + 4097, + 6145, + 8193, + 12289, + 16385, + 24577, + 0, + 0 + ]; + var dext = [ + 16, + 16, + 16, + 16, + 17, + 17, + 18, + 18, + 19, + 19, + 20, + 20, + 21, + 21, + 22, + 22, + 23, + 23, + 24, + 24, + 25, + 25, + 26, + 26, + 27, + 27, + 28, + 28, + 29, + 29, + 64, + 64 + ]; + module4.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) { + var bits = opts.bits; + var len = 0; + var sym = 0; + var min = 0, max = 0; + var root = 0; + var curr = 0; + var drop = 0; + var left = 0; + var used = 0; + var huff = 0; + var incr; + var fill; + var low; + var mask; + var next; + var base = null; + var base_index = 0; + var end; + var count = new utils.Buf16(MAXBITS + 1); + var offs = new utils.Buf16(MAXBITS + 1); + var extra = null; + var extra_index = 0; + var here_bits, here_op, here_val; + for (len = 0; len <= MAXBITS; len++) { + count[len] = 0; + } + for (sym = 0; sym < codes; sym++) { + count[lens[lens_index + sym]]++; + } + root = bits; + for (max = MAXBITS; max >= 1; max--) { + if (count[max] !== 0) { + break; + } + } + if (root > max) { + root = max; + } + if (max === 0) { + table[table_index++] = 1 << 24 | 64 << 16 | 0; + table[table_index++] = 1 << 24 | 64 << 16 | 0; + opts.bits = 1; + return 0; + } + for (min = 1; min < max; min++) { + if (count[min] !== 0) { + break; + } + } + if (root < min) { + root = min; + } + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) { + return -1; + } + } + if (left > 0 && (type === CODES || max !== 1)) { + return -1; + } + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) { + offs[len + 1] = offs[len] + count[len]; + } + for (sym = 0; sym < codes; sym++) { + if (lens[lens_index + sym] !== 0) { + work[offs[lens[lens_index + sym]]++] = sym; + } + } + if (type === CODES) { + base = extra = work; + end = 19; + } else if (type === LENS) { + base = lbase; + base_index -= 257; + extra = lext; + extra_index -= 257; + end = 256; + } else { + base = dbase; + extra = dext; + end = -1; + } + huff = 0; + sym = 0; + len = min; + next = table_index; + curr = root; + drop = 0; + low = -1; + used = 1 << root; + mask = used - 1; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + for (; ; ) { + here_bits = len - drop; + if (work[sym] < end) { + here_op = 0; + here_val = work[sym]; + } else if (work[sym] > end) { + here_op = extra[extra_index + work[sym]]; + here_val = base[base_index + work[sym]]; + } else { + here_op = 32 + 64; + here_val = 0; + } + incr = 1 << len - drop; + fill = 1 << curr; + min = fill; + do { + fill -= incr; + table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0; + } while (fill !== 0); + incr = 1 << len - 1; + while (huff & incr) { + incr >>= 1; + } + if (incr !== 0) { + huff &= incr - 1; + huff += incr; + } else { + huff = 0; + } + sym++; + if (--count[len] === 0) { + if (len === max) { + break; + } + len = lens[lens_index + work[sym]]; + } + if (len > root && (huff & mask) !== low) { + if (drop === 0) { + drop = root; + } + next += min; + curr = len - drop; + left = 1 << curr; + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) { + break; + } + curr++; + left <<= 1; + } + used += 1 << curr; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + low = huff & mask; + table[low] = root << 24 | curr << 16 | next - table_index | 0; + } + } + if (huff !== 0) { + table[next + huff] = len - drop << 24 | 64 << 16 | 0; + } + opts.bits = root; + return 0; + }; + }, { "../utils/common": 5 }], 14: [function(require2, module4, exports3) { + "use strict"; + module4.exports = { + 2: "need dictionary", + 1: "stream end", + 0: "", + "-1": "file error", + "-2": "stream error", + "-3": "data error", + "-4": "insufficient memory", + "-5": "buffer error", + "-6": "incompatible version" + }; + }, {}], 15: [function(require2, module4, exports3) { + "use strict"; + function ZStream() { + this.input = null; + this.next_in = 0; + this.avail_in = 0; + this.total_in = 0; + this.output = null; + this.next_out = 0; + this.avail_out = 0; + this.total_out = 0; + this.msg = ""; + this.state = null; + this.data_type = 2; + this.adler = 0; + } + module4.exports = ZStream; + }, {}] }, {}, [3])(3); + }); + } +}); + +// node_modules/plantuml-encoder/browser-index.js +var require_browser_index = __commonJS({ + "node_modules/plantuml-encoder/browser-index.js"(exports, module2) { + module2.exports = { + encode: require_plantuml_encoder().encode, + decode: require_plantuml_decoder().decode + }; + } +}); + +// src/PumlView.ts +var PumlView_exports = {}; +__export(PumlView_exports, { + PumlView: () => PumlView, + VIEW_TYPE: () => VIEW_TYPE +}); +function syncDispatch(from) { + return (tr) => { + views[from].update([tr]); + if (tr.changes && tr.annotation && !tr.changes.empty && !tr.annotation(syncAnnotation)) { + for (let i = 0; i < views.length; i++) { + if (i !== from) { + views[i].dispatch({ + changes: tr.changes, + annotations: syncAnnotation.of(true) + }); + } + } + } + }; +} +var import_obsidian4, import_view, import_state, import_search, import_commands, VIEW_TYPE, views, syncAnnotation, PumlView; +var init_PumlView = __esm({ + "src/PumlView.ts"() { + import_obsidian4 = __toModule(require("obsidian")); + import_view = __toModule(require("@codemirror/view")); + import_state = __toModule(require("@codemirror/state")); + import_search = __toModule(require("@codemirror/search")); + import_commands = __toModule(require("@codemirror/commands")); + VIEW_TYPE = "plantuml"; + views = []; + syncAnnotation = import_state.Annotation.define(); + PumlView = class extends import_obsidian4.TextFileView { + constructor(leaf, plugin) { + super(leaf); + this.dispatchId = -1; + this.extensions = [ + (0, import_view.highlightActiveLine)(), + (0, import_view.highlightActiveLineGutter)(), + (0, import_search.highlightSelectionMatches)(), + (0, import_view.drawSelection)(), + import_view.keymap.of([...import_commands.defaultKeymap, import_commands.indentWithTab]), + (0, import_commands.history)(), + (0, import_search.search)(), + import_view.EditorView.updateListener.of((v) => __async(this, null, function* () { + if (v.docChanged) { + this.requestSave(); + yield this.renderPreview(); + } + })) + ]; + this.plugin = plugin; + this.debounced = (0, import_obsidian4.debounce)(this.plugin.getProcessor().png, this.plugin.settings.debounce * 1e3, true); + this.sourceEl = this.contentEl.createDiv({ cls: "plantuml-source-view", attr: { "style": "display: block" } }); + this.previewEl = this.contentEl.createDiv({ cls: "plantuml-preview-view", attr: { "style": "display: none" } }); + const vault = this.app.vault; + if (vault.getConfig("showLineNumber")) { + this.extensions.push((0, import_view.lineNumbers)()); + } + if (vault.getConfig("lineWrap")) { + this.extensions.push(import_view.EditorView.lineWrapping); + } + this.editor = new import_view.EditorView({ + state: import_state.EditorState.create({ + extensions: this.extensions, + doc: this.data + }), + parent: this.sourceEl, + dispatch: syncDispatch(views.length) + }); + this.dispatchId = views.push(this.editor) - 1; + } + getViewType() { + return VIEW_TYPE; + } + getState() { + return super.getState(); + } + setState(state, result) { + if (state.mode === "preview") { + this.currentView = "preview"; + (0, import_obsidian4.setIcon)(this.changeModeButton, "pencil"); + this.changeModeButton.setAttribute("aria-label", "Edit (Ctrl+Click to edit in new pane)"); + this.previewEl.style.setProperty("display", "block"); + this.sourceEl.style.setProperty("display", "none"); + this.renderPreview(); + } else { + this.currentView = "source"; + (0, import_obsidian4.setIcon)(this.changeModeButton, "lines-of-text"); + this.changeModeButton.setAttribute("aria-label", "Preview (Ctrl+Click to open in new pane)"); + this.previewEl.style.setProperty("display", "none"); + this.sourceEl.style.setProperty("display", "block"); + } + return super.setState(state, result); + } + onload() { + return __async(this, null, function* () { + this.changeModeButton = this.addAction("lines-of-text", "Preview (Ctrl+Click to open in new pane)", (evt) => this.switchMode(evt), 17); + const defaultViewMode = this.app.vault.getConfig("defaultViewMode"); + this.currentView = defaultViewMode; + yield this.setState(__spreadProps(__spreadValues({}, this.getState()), { mode: defaultViewMode }), {}); + }); + } + onunload() { + views.remove(views[this.dispatchId]); + this.editor.destroy(); + } + switchMode(arg) { + return __async(this, null, function* () { + let mode = arg; + if (!mode || mode instanceof MouseEvent) + mode = this.currentView === "source" ? "preview" : "source"; + if (arg instanceof MouseEvent) { + if (import_obsidian4.Keymap.isModEvent(arg)) { + this.app.workspace.duplicateLeaf(this.leaf).then(() => __async(this, null, function* () { + var _a, _b; + const viewState = (_a = this.app.workspace.activeLeaf) == null ? void 0 : _a.getViewState(); + if (viewState) { + viewState.state = __spreadProps(__spreadValues({}, viewState.state), { mode }); + yield (_b = this.app.workspace.activeLeaf) == null ? void 0 : _b.setViewState(viewState); + } + })); + } else { + yield this.setState(__spreadProps(__spreadValues({}, this.getState()), { mode }), {}); + } + } + }); + } + getViewData() { + return this.editor.state.sliceDoc(); + } + setViewData(data, clear) { + return __async(this, null, function* () { + this.data = data; + if (clear) { + this.editor.setState(import_state.EditorState.create({ + doc: data, + extensions: this.extensions + })); + } else { + this.editor.dispatch({ + changes: { + from: 0, + to: this.editor.state.doc.length, + insert: data + } + }); + } + if (this.currentView === "preview") + this.renderPreview(); + }); + } + clear() { + this.previewEl.empty(); + this.data = null; + } + getDisplayText() { + if (this.file) + return this.file.basename; + else + return "PlantUML (no file)"; + } + canAcceptExtension(extension) { + return extension == "puml"; + } + getIcon() { + return "document-plantuml"; + } + renderPreview() { + return __async(this, null, function* () { + if (this.currentView !== "preview") + return; + this.previewEl.empty(); + const loadingHeader = this.previewEl.createEl("h1", { text: "Loading" }); + const previewDiv = this.previewEl.createDiv(); + this.debounced(this.getViewData(), previewDiv, null); + loadingHeader.remove(); + }); + } + }; + } +}); + +// src/main.ts +__export(exports, { + default: () => PlantumlPlugin +}); +var import_obsidian6 = __toModule(require("obsidian")); + +// src/settings.ts +var import_obsidian = __toModule(require("obsidian")); +var DEFAULT_SETTINGS = { + server_url: "https://www.plantuml.com/plantuml", + header: "", + debounce: 3, + localJar: "", + javaPath: "java", + defaultProcessor: "png" +}; +var PlantUMLSettingsTab = class extends import_obsidian.PluginSettingTab { + constructor(plugin) { + super(plugin.app, plugin); + this.plugin = plugin; + } + display() { + const { containerEl } = this; + containerEl.empty(); + new import_obsidian.Setting(containerEl).setName("Server URL").setDesc("PlantUML Server URL").addText((text) => text.setPlaceholder(DEFAULT_SETTINGS.server_url).setValue(this.plugin.settings.server_url).onChange((value) => __async(this, null, function* () { + this.plugin.settings.server_url = value; + yield this.plugin.saveSettings(); + }))); + if (import_obsidian.Platform.isDesktopApp) { + const jarDesc = new DocumentFragment(); + jarDesc.createDiv().innerHTML = "Path to local JAR
Supports:"; + new import_obsidian.Setting(containerEl).setName("Local JAR").setDesc(jarDesc).addText((text) => text.setPlaceholder(DEFAULT_SETTINGS.localJar).setValue(this.plugin.settings.localJar).onChange((value) => __async(this, null, function* () { + this.plugin.settings.localJar = value; + yield this.plugin.saveSettings(); + }))); + new import_obsidian.Setting(containerEl).setName("Java Path").setDesc("Path to Java executable").addText((text) => text.setPlaceholder(DEFAULT_SETTINGS.javaPath).setValue(this.plugin.settings.javaPath).onChange((value) => __async(this, null, function* () { + this.plugin.settings.javaPath = value; + yield this.plugin.saveSettings(); + }))); + } + new import_obsidian.Setting(containerEl).setName("Default processor for includes").setDesc("Any .pu/.puml files linked will use this processor").addDropdown((dropdown) => { + dropdown.addOption("png", "PNG").addOption("svg", "SVG").setValue(this.plugin.settings.defaultProcessor).onChange((value) => __async(this, null, function* () { + this.plugin.settings.defaultProcessor = value; + yield this.plugin.saveSettings(); + })); + }); + new import_obsidian.Setting(containerEl).setName("Header").setDesc("Included at the head in every diagram. Useful for specifying a common theme (.puml file)").addTextArea((text) => { + text.setPlaceholder("!include https://raw.githubusercontent.com/....puml\n").setValue(this.plugin.settings.header).onChange((value) => __async(this, null, function* () { + this.plugin.settings.header = value; + yield this.plugin.saveSettings(); + })); + text.inputEl.setAttr("rows", 4); + text.inputEl.addClass("puml-settings-area"); + }); + new import_obsidian.Setting(containerEl).setName("Debounce").setDesc("How often should the diagram refresh in seconds").addText((text) => text.setPlaceholder(String(DEFAULT_SETTINGS.debounce)).setValue(String(this.plugin.settings.debounce)).onChange((value) => __async(this, null, function* () { + if (!isNaN(Number(value)) || value === void 0) { + this.plugin.settings.debounce = Number(value || DEFAULT_SETTINGS.debounce); + yield this.plugin.saveSettings(); + } else { + new import_obsidian.Notice("Please specify a valid number"); + } + }))); + } +}; + +// src/localProcessors.ts +var plantuml = __toModule(require_browser_index()); + +// src/functions.ts +var Replacer = class { + constructor(plugin) { + this.plugin = plugin; + } + replaceNonBreakingSpaces(text) { + const lines = text.split(/\r?\n/); + const resultLines = []; + if (text.startsWith("@startmindmap")) { + for (const line of lines) { + resultLines.push(line.replace(/\s+/g, " ")); + } + } else { + resultLines.push(...lines); + } + const result = resultLines.join("\r\n"); + return result.replace(/ /gi, " "); + } + replaceLinks(text, path, filetype) { + return text.replace(/\[\[\[([\s\S]*?)\]\]\]/g, (_, args) => { + const split = args.split("|"); + const file = this.plugin.app.metadataCache.getFirstLinkpathDest(split[0], path); + if (!file) { + return "File with name: " + split[0] + " not found"; + } + let alias = file.basename; + if (filetype === "png") { + const url = this.plugin.app.getObsidianUrl(file); + if (split[1]) { + alias = split[1]; + } + return "[[" + url + " " + alias + "]]"; + } + return "[[" + file.basename + "]]"; + }); + } + getFullPath(path) { + if (path.length === 0) { + return this.plugin.app.vault.adapter.getFullPath(""); + } + const file = this.plugin.app.vault.getAbstractFileByPath(path); + if (!file) { + return this.plugin.app.vault.adapter.getFullPath(""); + } + const folder = this.plugin.app.vault.getDirectParent(file); + return this.plugin.app.vault.adapter.getFullPath(folder.path); + } + getPath(ctx) { + return this.getFullPath(ctx ? ctx.sourcePath : ""); + } +}; +function insertImageWithMap(el, image, map, encodedDiagram) { + el.empty(); + const img = document.createElement("img"); + if (image.startsWith("http")) { + img.src = image; + } else { + img.src = "data:image/png;base64," + image; + } + img.useMap = "#" + encodedDiagram; + if (map.contains("map")) { + el.innerHTML = map; + el.children[0].setAttr("name", encodedDiagram); + } + el.appendChild(img); +} +function insertAsciiImage(el, image) { + el.empty(); + const pre = document.createElement("pre"); + const code = document.createElement("code"); + pre.appendChild(code); + code.setText(image); + el.appendChild(pre); +} +function insertSvgImage(el, image) { + el.empty(); + const parser = new DOMParser(); + const svg = parser.parseFromString(image, "image/svg+xml"); + const links = svg.getElementsByTagName("a"); + for (let i = 0; i < links.length; i++) { + const link = links[i]; + link.addClass("internal-link"); + } + el.insertAdjacentHTML("beforeend", svg.documentElement.outerHTML); +} + +// node_modules/compare-versions/index.mjs +function compareVersions(v1, v2) { + const n1 = validateAndParse(v1); + const n2 = validateAndParse(v2); + const p1 = n1.pop(); + const p2 = n2.pop(); + const r = compareSegments(n1, n2); + if (r !== 0) + return r; + if (p1 && p2) { + return compareSegments(p1.split("."), p2.split(".")); + } else if (p1 || p2) { + return p1 ? -1 : 1; + } + return 0; +} +var validate = (v) => typeof v === "string" && /^[v\d]/.test(v) && semver.test(v); +var compare = (v1, v2, operator) => { + assertValidOperator(operator); + const res = compareVersions(v1, v2); + return operatorResMap[operator].includes(res); +}; +var satisfies = (v, r) => { + const m = r.match(/^([<>=~^]+)/); + const op = m ? m[1] : "="; + if (op !== "^" && op !== "~") + return compare(v, r, op); + const [v1, v2, v3] = validateAndParse(v); + const [r1, r2, r3] = validateAndParse(r); + if (compareStrings(v1, r1) !== 0) + return false; + if (op === "^") { + return compareSegments([v2, v3], [r2, r3]) >= 0; + } + if (compareStrings(v2, r2) !== 0) + return false; + return compareStrings(v3, r3) >= 0; +}; +compareVersions.validate = validate; +compareVersions.compare = compare; +compareVersions.sastisfies = satisfies; +var semver = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i; +var validateAndParse = (v) => { + if (typeof v !== "string") { + throw new TypeError("Invalid argument expected string"); + } + const match = v.match(semver); + if (!match) { + throw new Error(`Invalid argument not valid semver ('${v}' received)`); + } + match.shift(); + return match; +}; +var isWildcard = (s) => s === "*" || s === "x" || s === "X"; +var tryParse = (v) => { + const n = parseInt(v, 10); + return isNaN(n) ? v : n; +}; +var forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b]; +var compareStrings = (a, b) => { + if (isWildcard(a) || isWildcard(b)) + return 0; + const [ap, bp] = forceType(tryParse(a), tryParse(b)); + if (ap > bp) + return 1; + if (ap < bp) + return -1; + return 0; +}; +var compareSegments = (a, b) => { + for (let i = 0; i < Math.max(a.length, b.length); i++) { + const r = compareStrings(a[i] || 0, b[i] || 0); + if (r !== 0) + return r; + } + return 0; +}; +var operatorResMap = { + ">": [1], + ">=": [0, 1], + "=": [0], + "<=": [-1, 0], + "<": [-1] +}; +var allowedOperators = Object.keys(operatorResMap); +var assertValidOperator = (op) => { + if (typeof op !== "string") { + throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`); + } + if (allowedOperators.indexOf(op) === -1) { + throw new Error(`Invalid operator, expected one of ${allowedOperators.join("|")}`); + } +}; + +// src/const.ts +var LOGO_SVG = ''; +var OutputType = /* @__PURE__ */ ((OutputType2) => { + OutputType2["PNG"] = "png"; + OutputType2["SVG"] = "svg"; + OutputType2["ASCII"] = "txt"; + return OutputType2; +})(OutputType || {}); +function isUsingLivePreviewEnabledEditor() { + const config = this.app.vault.config; + if (config.legacyEditor === void 0) + return false; + if (config.legacyEditor) + return false; + const userAgent = navigator.userAgent.match(/obsidian([^ ]+)/); + if (userAgent === null) { + return true; + } + const version = userAgent.first().split("/")[1]; + return compareVersions.compare(version, "0.13.0", ">="); +} + +// src/localProcessors.ts +var LocalProcessors = class { + constructor(plugin) { + this.ascii = (source, el, ctx) => __async(this, null, function* () { + const image = yield this.generateLocalImage(source, OutputType.ASCII, this.plugin.replacer.getPath(ctx)); + insertAsciiImage(el, image); + }); + this.png = (source, el, ctx) => __async(this, null, function* () { + const encodedDiagram = plantuml.encode(source); + if (localStorage.getItem(encodedDiagram + "-png")) { + const image2 = localStorage.getItem(encodedDiagram + "-png"); + const map2 = localStorage.getItem(encodedDiagram + "-map"); + insertImageWithMap(el, image2, map2, encodedDiagram); + return; + } + const path = this.plugin.replacer.getPath(ctx); + const image = yield this.generateLocalImage(source, OutputType.PNG, path); + const map = yield this.generateLocalMap(source, path); + localStorage.setItem(encodedDiagram + "-png", image); + localStorage.setItem(encodedDiagram + "-map", map); + insertImageWithMap(el, image, map, encodedDiagram); + }); + this.svg = (source, el, ctx) => __async(this, null, function* () { + const encodedDiagram = plantuml.encode(source); + if (localStorage.getItem(encodedDiagram + "-svg")) { + insertSvgImage(el, localStorage.getItem(encodedDiagram + "-svg")); + return; + } + const image = yield this.generateLocalImage(source, OutputType.SVG, this.plugin.replacer.getPath(ctx)); + insertSvgImage(el, image); + }); + this.plugin = plugin; + } + generateLocalMap(source, path) { + return __async(this, null, function* () { + const { exec } = require("child_process"); + const args = this.resolveLocalJarCmd().concat(["-pipemap"]); + const child = exec(args.join(" "), { encoding: "binary", cwd: path }); + let stdout = ""; + if (child.stdout) { + child.stdout.on("data", (data) => { + stdout += data; + }); + } + return new Promise((resolve, reject) => { + child.on("error", reject); + child.on("close", (code) => { + if (code === 0) { + resolve(stdout); + return; + } else if (code === 1) { + console.log(stdout); + reject(new Error(`an error occurred`)); + } else { + reject(new Error(`child exited with code ${code}`)); + } + }); + child.stdin.write(source); + child.stdin.end(); + }); + }); + } + generateLocalImage(source, type, path) { + return __async(this, null, function* () { + const { ChildProcess, exec } = require("child_process"); + const args = this.resolveLocalJarCmd().concat(["-t" + type, "-pipe"]); + let child; + if (type === OutputType.PNG) { + child = exec(args.join(" "), { encoding: "binary", cwd: path }); + } else { + child = exec(args.join(" "), { encoding: "utf-8", cwd: path }); + } + let stdout; + let stderr; + if (child.stdout) { + child.stdout.on("data", (data) => { + if (stdout === void 0) { + stdout = data; + } else + stdout += data; + }); + } + if (child.stderr) { + child.stderr.on("data", (data) => { + if (stderr === void 0) { + stderr = data; + } else + stderr += data; + }); + } + return new Promise((resolve, reject) => { + child.on("error", reject); + child.on("close", (code) => { + if (stdout === void 0) { + return; + } + if (code === 0) { + if (type === OutputType.PNG) { + const buf = new Buffer(stdout, "binary"); + resolve(buf.toString("base64")); + return; + } + resolve(stdout); + return; + } else if (code === 1) { + console.error(stdout); + reject(new Error(stderr)); + } else { + if (type === OutputType.PNG) { + const buf = new Buffer(stdout, "binary"); + resolve(buf.toString("base64")); + return; + } + resolve(stdout); + return; + } + }); + child.stdin.write(source, "utf-8"); + child.stdin.end(); + }); + }); + } + resolveLocalJarCmd() { + const jarFromSettings = this.plugin.settings.localJar; + const { isAbsolute, resolve } = require("path"); + const { userInfo } = require("os"); + let jarFullPath; + const path = this.plugin.replacer.getFullPath(""); + if (jarFromSettings[0] === "~") { + jarFullPath = userInfo().homedir + jarFromSettings.slice(1); + } else { + if (isAbsolute(jarFromSettings)) { + jarFullPath = jarFromSettings; + } else { + jarFullPath = resolve(path, jarFromSettings); + } + } + if (jarFullPath.length == 0) { + throw Error("Invalid local jar file"); + } + return [ + this.plugin.settings.javaPath, + "-jar", + "-Djava.awt.headless=true", + '"' + jarFullPath + '"', + "-charset", + "utf-8" + ]; + } +}; + +// src/debouncedProcessors.ts +var import_obsidian2 = __toModule(require("obsidian")); + +// node_modules/uuid/dist/esm-browser/rng.js +var getRandomValues; +var rnds8 = new Uint8Array(16); +function rng() { + if (!getRandomValues) { + getRandomValues = typeof crypto !== "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== "undefined" && typeof msCrypto.getRandomValues === "function" && msCrypto.getRandomValues.bind(msCrypto); + if (!getRandomValues) { + throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported"); + } + } + return getRandomValues(rnds8); +} + +// node_modules/uuid/dist/esm-browser/regex.js +var regex_default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; + +// node_modules/uuid/dist/esm-browser/validate.js +function validate2(uuid) { + return typeof uuid === "string" && regex_default.test(uuid); +} +var validate_default = validate2; + +// node_modules/uuid/dist/esm-browser/stringify.js +var byteToHex = []; +for (i = 0; i < 256; ++i) { + byteToHex.push((i + 256).toString(16).substr(1)); +} +var i; +function stringify(arr) { + var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); + if (!validate_default(uuid)) { + throw TypeError("Stringified UUID is invalid"); + } + return uuid; +} +var stringify_default = stringify; + +// node_modules/uuid/dist/esm-browser/v4.js +function v4(options, buf, offset) { + options = options || {}; + var rnds = options.random || (options.rng || rng)(); + rnds[6] = rnds[6] & 15 | 64; + rnds[8] = rnds[8] & 63 | 128; + if (buf) { + offset = offset || 0; + for (var i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + return buf; + } + return stringify_default(rnds); +} +var v4_default = v4; + +// src/debouncedProcessors.ts +var DebouncedProcessors = class { + constructor(plugin) { + this.SECONDS_TO_MS_FACTOR = 1e3; + this.debounceMap = /* @__PURE__ */ new Map(); + this.png = (source, el, ctx) => __async(this, null, function* () { + yield this.processor(source, el, ctx, "png", this.plugin.getProcessor().png); + }); + this.ascii = (source, el, ctx) => __async(this, null, function* () { + yield this.processor(source, el, ctx, "ascii", this.plugin.getProcessor().ascii); + }); + this.svg = (source, el, ctx) => __async(this, null, function* () { + yield this.processor(source, el, ctx, "svg", this.plugin.getProcessor().svg); + }); + this.processor = (source, el, ctx, filetype, processor) => __async(this, null, function* () { + el.createEl("h6", { text: "Generating PlantUML diagram", cls: "puml-loading" }); + if (el.dataset.plantumlDebounce) { + const debounceId = el.dataset.plantumlDebounce; + if (this.debounceMap.has(debounceId)) { + yield this.debounceMap.get(debounceId)(source, el, ctx); + } + } else { + const func = (0, import_obsidian2.debounce)(processor, this.debounceTime, true); + const uuid = v4_default(); + el.dataset.plantumlDebouce = uuid; + this.debounceMap.set(uuid, func); + source = this.plugin.replacer.replaceNonBreakingSpaces(source); + source = this.plugin.replacer.replaceLinks(source, this.plugin.replacer.getPath(ctx), filetype); + source = this.plugin.settings.header + "\r\n" + source; + yield processor(source, el, ctx); + } + }); + this.plugin = plugin; + const debounceTime = plugin.settings.debounce; + this.debounceTime = debounceTime * this.SECONDS_TO_MS_FACTOR; + } +}; + +// src/serverProcessor.ts +var import_obsidian3 = __toModule(require("obsidian")); +var plantuml2 = __toModule(require_browser_index()); +var ServerProcessor = class { + constructor(plugin) { + this.svg = (source, el, _) => __async(this, null, function* () { + let url = this.plugin.settings.server_url; + if (url.length == 0) { + url = DEFAULT_SETTINGS.server_url; + } + const imageUrlBase = url + "/svg/"; + const encodedDiagram = plantuml2.encode(source); + (0, import_obsidian3.request)({ url: imageUrlBase + encodedDiagram, method: "GET" }).then((value) => { + insertSvgImage(el, value); + }).catch((error) => { + if (error) + console.error(error); + }); + }); + this.png = (source, el, _) => __async(this, null, function* () { + let url = this.plugin.settings.server_url; + if (url.length == 0) { + url = DEFAULT_SETTINGS.server_url; + } + const imageUrlBase = url + "/png/"; + const encodedDiagram = plantuml2.encode(source); + const image = imageUrlBase + encodedDiagram; + const mapUrlBase = url + "/map/"; + const map = yield (0, import_obsidian3.request)({ url: mapUrlBase + encodedDiagram, method: "GET" }); + insertImageWithMap(el, image, map, encodedDiagram); + }); + this.ascii = (source, el, _) => __async(this, null, function* () { + let url = this.plugin.settings.server_url; + if (url.length == 0) { + url = DEFAULT_SETTINGS.server_url; + } + const asciiUrlBase = url + "/txt/"; + const encodedDiagram = plantuml2.encode(source); + const result = yield (0, import_obsidian3.request)({ url: asciiUrlBase + encodedDiagram }); + if (result.startsWith("\uFFFDPNG")) { + const text = document.createElement("p"); + text.style.color = "red"; + text.innerText = "Your configured PlantUML Server does not support ASCII Art"; + el.appendChild(text); + return; + } + insertAsciiImage(el, result); + }); + this.plugin = plugin; + } +}; + +// src/main.ts +init_PumlView(); +var import_state3 = __toModule(require("@codemirror/state")); + +// src/decorations/EmbedDecoration.ts +var import_obsidian5 = __toModule(require("obsidian")); +var import_view2 = __toModule(require("@codemirror/view")); +var import_state2 = __toModule(require("@codemirror/state")); +var import_language = __toModule(require("@codemirror/language")); +var statefulDecorations = defineStatefulDecoration(); +var StatefulDecorationSet = class { + constructor(editor, plugin) { + this.decoCache = Object.create(null); + this.debouncedUpdate = (0, import_obsidian5.debounce)(this.updateAsyncDecorations, 100, true); + this.editor = editor; + this.plugin = plugin; + } + computeAsyncDecorations(tokens) { + return __async(this, null, function* () { + const decorations = []; + for (const token of tokens) { + let deco = this.decoCache[token.value]; + if (!deco) { + const file = this.plugin.app.metadataCache.getFirstLinkpathDest(token.value, ""); + if (!file) + return; + const fileContent = yield this.plugin.app.vault.read(file); + const div = createDiv(); + if (this.plugin.settings.defaultProcessor === "png") { + yield this.plugin.getProcessor().png(fileContent, div, null); + } else { + yield this.plugin.getProcessor().svg(fileContent, div, null); + } + deco = this.decoCache[token.value] = import_view2.Decoration.replace({ widget: new EmojiWidget(div), block: true }); + } + decorations.push(deco.range(token.from, token.from)); + } + return import_view2.Decoration.set(decorations, true); + }); + } + updateAsyncDecorations(tokens) { + return __async(this, null, function* () { + const decorations = yield this.computeAsyncDecorations(tokens); + if (decorations || this.editor.state.field(statefulDecorations.field).size) { + this.editor.dispatch({ effects: statefulDecorations.update.of(decorations || import_view2.Decoration.none) }); + } + }); + } +}; +function buildViewPlugin(plugin) { + return import_view2.ViewPlugin.fromClass(class { + constructor(view) { + this.decoManager = new StatefulDecorationSet(view, plugin); + this.buildAsyncDecorations(view); + } + update(update) { + if (update.docChanged || update.viewportChanged) { + this.buildAsyncDecorations(update.view); + } + } + buildAsyncDecorations(view) { + const targetElements = []; + for (const { from } of view.visibleRanges) { + const tree = (0, import_language.syntaxTree)(view.state); + tree.iterate({ + enter: (node) => { + const tokenProps = node.type.prop(import_language.tokenClassNodeProp); + if (tokenProps) { + const props = new Set(tokenProps.split(" ")); + const isEmbed = props.has("formatting-embed"); + if (isEmbed) { + const content = view.state.doc.sliceString(from); + const index = content.indexOf("]]"); + const filename = content.slice(3, index).split("|")[0]; + if (filename.endsWith(".puml") || filename.endsWith(".pu")) { + targetElements.push({ from, to: index, value: filename }); + } + } + } + } + }); + } + this.decoManager.debouncedUpdate(targetElements); + } + }); +} +function asyncDecoBuilderExt(plugin) { + return [statefulDecorations.field, buildViewPlugin(plugin)]; +} +function defineStatefulDecoration() { + const update = import_state2.StateEffect.define(); + const field = import_state2.StateField.define({ + create() { + return import_view2.Decoration.none; + }, + update(deco, tr) { + return tr.effects.reduce((deco2, effect) => effect.is(update) ? effect.value : deco2, deco.map(tr.changes)); + }, + provide: (field2) => import_view2.EditorView.decorations.from(field2) + }); + return { update, field }; +} +var EmojiWidget = class extends import_view2.WidgetType { + constructor(source) { + super(); + this.source = source; + } + eq(other) { + return other == this; + } + toDOM() { + return this.source; + } + ignoreEvent() { + return false; + } +}; + +// src/main.ts +var PlantumlPlugin = class extends import_obsidian6.Plugin { + constructor() { + super(...arguments); + this.hover = { + linkText: null, + sourcePath: null + }; + } + getProcessor() { + if (import_obsidian6.Platform.isMobileApp) { + return this.serverProcessor; + } + if (this.settings.localJar.length > 0) { + return this.localProcessor; + } + return this.serverProcessor; + } + onload() { + return __async(this, null, function* () { + console.log("loading plugin plantuml"); + yield this.loadSettings(); + this.addSettingTab(new PlantUMLSettingsTab(this)); + this.replacer = new Replacer(this); + this.serverProcessor = new ServerProcessor(this); + if (import_obsidian6.Platform.isDesktopApp) { + this.localProcessor = new LocalProcessors(this); + } + const processor = new DebouncedProcessors(this); + if (isUsingLivePreviewEnabledEditor()) { + const view = (init_PumlView(), PumlView_exports); + (0, import_obsidian6.addIcon)("document-" + view.VIEW_TYPE, LOGO_SVG); + this.registerView(view.VIEW_TYPE, (leaf) => { + return new view.PumlView(leaf, this); + }); + this.registerExtensions(["puml", "pu"], view.VIEW_TYPE); + this.registerEditorExtension(import_state3.Prec.lowest(asyncDecoBuilderExt(this))); + } + this.registerMarkdownCodeBlockProcessor("plantuml", processor.png); + this.registerMarkdownCodeBlockProcessor("plantuml-ascii", processor.ascii); + this.registerMarkdownCodeBlockProcessor("plantuml-svg", processor.svg); + this.registerMarkdownCodeBlockProcessor("puml", processor.png); + this.registerMarkdownCodeBlockProcessor("puml-svg", processor.svg); + this.registerMarkdownCodeBlockProcessor("puml-ascii", processor.ascii); + this.registerMarkdownCodeBlockProcessor("plantuml-map", processor.png); + this.observer = new MutationObserver((mutation) => __async(this, null, function* () { + if (mutation.length !== 1) + return; + if (mutation[0].addedNodes.length !== 1) + return; + if (this.hover.linkText === null) + return; + if (mutation[0].addedNodes[0].className !== "popover hover-popover file-embed is-loaded") + return; + const file = this.app.metadataCache.getFirstLinkpathDest(this.hover.linkText, this.hover.sourcePath); + if (!file) + return; + if (file.extension !== "puml" && file.extension !== "pu") + return; + const fileContent = yield this.app.vault.read(file); + const imgDiv = createDiv(); + if (this.settings.defaultProcessor === "png") { + yield this.getProcessor().png(fileContent, imgDiv, null); + } else { + yield this.getProcessor().svg(fileContent, imgDiv, null); + } + const node = mutation[0].addedNodes[0]; + node.empty(); + const div = createDiv("", (element) => __async(this, null, function* () { + element.appendChild(imgDiv); + element.setAttribute("src", file.path); + element.onClickEvent((event) => { + event.stopImmediatePropagation(); + const leaf = this.app.workspace.getLeaf(event.ctrlKey); + leaf.setViewState({ + type: VIEW_TYPE, + state: { file: file.path } + }); + }); + })); + node.appendChild(div); + })); + this.registerEvent(this.app.workspace.on("hover-link", (event) => __async(this, null, function* () { + const linkText = event.linktext; + if (!linkText) + return; + const sourcePath = event.sourcePath; + if (!linkText.endsWith(".puml") && !linkText.endsWith(".pu")) { + return; + } + this.hover.linkText = linkText; + this.hover.sourcePath = sourcePath; + }))); + this.observer.observe(document, { childList: true, subtree: true }); + this.registerMarkdownPostProcessor((element, context) => __async(this, null, function* () { + const embeddedItems = element.querySelectorAll(".internal-embed"); + if (embeddedItems.length === 0) { + return; + } + for (const key in embeddedItems) { + const item = embeddedItems[key]; + if (typeof item.getAttribute !== "function") + return; + const filename = item.getAttribute("src"); + const file = this.app.metadataCache.getFirstLinkpathDest(filename.split("#")[0], context.sourcePath); + if (file && file instanceof import_obsidian6.TFile && (file.extension === "puml" || file.extension === "pu")) { + const fileContent = yield this.app.vault.read(file); + const div = createDiv(); + if (this.settings.defaultProcessor === "png") { + yield this.getProcessor().png(fileContent, div, context); + } else { + yield this.getProcessor().svg(fileContent, div, context); + } + item.parentElement.replaceChild(div, item); + } + } + })); + }); + } + onunload() { + return __async(this, null, function* () { + console.log("unloading plugin plantuml"); + this.observer.disconnect(); + }); + } + 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); + }); + } +}; diff --git a/.obsidian/plugins/obsidian-plantuml/manifest.json b/.obsidian/plugins/obsidian-plantuml/manifest.json new file mode 100644 index 0000000..156cfb5 --- /dev/null +++ b/.obsidian/plugins/obsidian-plantuml/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-plantuml", + "name": "PlantUML", + "version": "1.6.6", + "minAppVersion": "0.15.0", + "description": "Render PlantUML Diagrams", + "author": "Johannes Theiner", + "authorUrl": "https://github.com/joethei/", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/obsidian-plantuml/styles.css b/.obsidian/plugins/obsidian-plantuml/styles.css new file mode 100644 index 0000000..ad4f9dc --- /dev/null +++ b/.obsidian/plugins/obsidian-plantuml/styles.css @@ -0,0 +1,38 @@ +.puml-settings-area { + margin-left: 5px; + margin-right: 5px; + font-size: 14px; + width: 100%; +} + +.plantuml-source-view .cm-activeLine { + background-color: unset !important; +} + +.plantuml-source-view .cm-gutters { + background-color: unset !important; +} + +.plantuml-source-view .cm-cursor { + border-left: 1.2px solid var(--text-muted); +} + +.plantuml-source-view .cm-selectionBackground { + background-color: var(--text-selection) !important; +} + +.puml-loading { + color: var(--text-accent); +} + +.internal-embed.file-embed[src$=".puml"] { + display: none; +} + +.internal-embed.file-embed[src$=".pu"] { + display: none; +} + +.puml-error { + color: var(--text-error); +} diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index df6833e..75b8540 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,47 +4,59 @@ "type": "split", "children": [ { - "id": "52816fca565e1ce6", + "id": "3337825d2a9e4220", "type": "tabs", "children": [ { - "id": "5fd45b8bad028c1b", + "id": "c40318d9980bd958", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "TIiK/Wykład/Wykład.md", + "file": "TIiK/Wykład/4..md", "mode": "source", "source": false } } }, { - "id": "e3fec04eb728c2e4", + "id": "a1b988384588e7c5", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "TIiK/Wykład/ważne.md", + "file": "AiSD/Ćwiczenia/2. Ćwiczenia.md", "mode": "source", "source": false } } }, { - "id": "164fa34cc1af45c8", + "id": "e26ebdc70b316374", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "Elektrotechnika/Ćwiczenia/20230414102636.md", + "file": "AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md", + "mode": "source", + "source": false + } + } + }, + { + "id": "db8c5f3feee6da98", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "EiM/Wykłady/1. Wstęp.md", "mode": "source", "source": false } } } ], - "currentTab": 1 + "currentTab": 2 } ], "direction": "vertical" @@ -110,7 +122,7 @@ "state": { "type": "backlink", "state": { - "file": "TIiK/Wykład/ważne.md", + "file": "AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -127,7 +139,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "TIiK/Wykład/ważne.md", + "file": "AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -150,7 +162,7 @@ "state": { "type": "outline", "state": { - "file": "TIiK/Wykład/ważne.md" + "file": "AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md" } } }, @@ -215,7 +227,8 @@ } ], "direction": "horizontal", - "width": 300 + "width": 300, + "collapsed": true }, "left-ribbon": { "hiddenItems": { @@ -230,42 +243,45 @@ "audio-recorder:Start/stop recording": false, "3d-graph:3D Graph": false, "juggl:Juggl global graph": false, - "obsidian-excalidraw-plugin:Create new drawing": false, - "breadcrumbs:Breadcrumbs Visualisation": false + "obsidian-excalidraw-plugin:Create new drawing": false } }, - "active": "a7fe127a169a5f82", + "active": "e26ebdc70b316374", "lastOpenFiles": [ - "TIiK/Wykład/Wykład.md", - "TIiK/Wykład/ważne.md", - "TIiK/TIiK.md", + "AiSD/Ćwiczenia/2. Ćwiczenia.md", + "AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md", "AiSD/AiSD.md", + "AMiAL/AMiAL.md", + "AMiAL/Ćwiczenia/Zadania/Całki/Zadanie 5.md", "TC/TC.md", - "EP/EP.md", - "!Załączniki/20230414102636 2023-04-14 10.36.16.excalidraw.md", - "Elektrotechnika/Ćwiczenia/20230414102636.md", - "!Załączniki/20230414102636 2023-04-14 10.34.23.excalidraw.md", - "!Załączniki/20230414102636 2023-04-14 10.26.46.excalidraw.md", - "TC/Wykład/7..md", - "!Załączniki/7. 2023-04-12 11.26.22.excalidraw.md", - "!Załączniki/7. 2023-04-12 09.22.20.excalidraw.md", "TC/Wykład/6. Układy Sekwencyjne.md", - "!Załączniki/7. 2023-04-12 09.20.18.excalidraw.md", - "!Załączniki/7. 2023-04-12 09.15.24.excalidraw.md", "TC/Wykład/Wykład.md", - "!Załączniki/7. 2023-04-12 09.03.55.excalidraw.md", - "TC/Wykład/2. Optymalizacja ze stanem nieokreślonym.md", - "TC/Wykład/1. Optymalizacja.md", - "TC/Wykład/3. ?.md", - "TC/Wykład/4. ?.md", - "TC/Wykład/5..md", - "!Załączniki/7. 2023-04-12 08.50.21.excalidraw.md", - "!Załączniki/7. 2023-04-12 08.31.18.excalidraw.md", - "!Załączniki/7. 2023-04-12 08.17.20.excalidraw.md", + "TC/Ćwiczenia/Untitled.md", + "EiM/Wykłady/1. Wstęp.md", + "TIiK/Wykład/4..md", + "TIiK/Wykład/2..md", + "TIiK/Wykład/3. Łańcuchy markowa.md", + "TIiK/Wykład/Wykład.md", + "TIiK/Ćwiczenia/2. Markow.md", + "TIiK/Ćwiczenia/1. Logarytmy.md", + "TIiK/TIiK.md", + "TC/Ćwiczenia/Ćwiczenia.md", + "EiM/Ćwiczenia/Ćwiczenia.md", + "!Załączniki/Untitled 2023-04-19 10.28.44.excalidraw.md", + "TC/ALGEBRA BOOLOWSKA.md", + "TC/Ćwiczenia/2. Realizacja układów na stykach.md", + "EiM/EiM.md", + "EiM/Ćwiczenia/1. Miernictwo.md", + "!Załączniki/1. Miernictwo 2023-04-18 14.26.51.excalidraw.md", + "!Załączniki/1. Miernictwo 2023-04-18 14.16.53.excalidraw.md", + "!Załączniki/Recording 20230418135018.webm", + "!Załączniki/Recording 20230418134959.webm", + "EiM/Ćwiczenia", + "AMiAL/!Materiały/calki_1.pdf", + "AMiAL/!Materiały/w0_intro.pdf", "!Załączniki/Excalidraw/Scripts/Downloaded/Normalize Selected Arrows.svg", "!Załączniki/Excalidraw/Scripts/Downloaded/Fixed inner distance.svg", "!Załączniki/Excalidraw/Scripts/Downloaded/Alternative Pens.svg", - "AMiAL/!Materiały/calki_1.pdf", "AMiAL/Ćwiczenia/Zadania/Całki_Zast/Zadanie 2.tex", "AMiAL/Ćwiczenia/Zadania/Całki_Zast", "Fizyka/Laboratoria", @@ -278,10 +294,6 @@ "!Załączniki/Excalidraw/Scripts/Downloaded/Elbow connectors.svg", "!Załączniki/Excalidraw/Scripts/Downloaded/Convert freedraw to line.svg", "!Załączniki/Excalidraw/Scripts/Downloaded/Connect elements.svg", - "!Załączniki/Excalidraw/Scripts/Downloaded", - "!Załączniki/Excalidraw/Scripts", - "!Załączniki/Recording 20230307101855.webm", - "!Załączniki/Recording 20230307101521.webm", "TC/Untitled.canvas" ] } \ No newline at end of file diff --git a/AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md b/AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md new file mode 100644 index 0000000..ef5b277 --- /dev/null +++ b/AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md @@ -0,0 +1,3 @@ +ieto + +# 12 diff --git a/EiM/Ćwiczenia/1. Miernictwo.md b/EiM/Ćwiczenia/1. Miernictwo.md new file mode 100644 index 0000000..c55746d --- /dev/null +++ b/EiM/Ćwiczenia/1. Miernictwo.md @@ -0,0 +1,57 @@ +--- +Date: [20230418135227] +--- + +# Błąd bezwzględny +## Zadanie 1 +### Woltomierz wskazówkowy klasy 1 na zakresie pomiarowym $U_N=200V$ wskazał wartość 120 V. Oblicz maksymalny błąd bezwzględny miernika. +$\Updelta=\pm\frac{klasa}{100}\cdot U_{N}=\pm \frac{1}{100}\cdot 200V=\pm 2V$ +$U=120V\pm2V$ +## Zadanie 2 +### Wyznacz maksymalny błąd bezwzględny pomiaru napięcia za pomocą multimetru cyfrowego z wyświetlaczem $3\frac{1}{2}$ cyfry mierzącego napięcie stałe 1V na zakresie 2V gdy producent podaje dokładność $\pm (0.1\%+2dgt)$, $\pm 0.2\%$, $0.2RDG+1LSD$, $0.15\%+2$, $\pm(0.2\%X+0.1\%X_{z})$ +a) +$\pm (0.1\%+2dgt)$ = $\pm(0.1\%\cdot1V+2\cdot 1mV)$ +$U=1V\pm0.003V$ +b) +$\pm (0.2\%)=\pm (0.2\%+1dgt)=\pm 3mV$ +$U=1V\pm0.003V$ +c) RDG -ReaDinG; LSD - Least Significant Digit +------||------- +d) 0.15% z 1V $\pm$ 2 cyfry +3.5mV +e)0.2% z 1V + 0.1% z zakresu (2V)=4mv +# Błąd systematyczny +## Zadanie 3 +### Oblicz błąd systematyczny metody pomiaru rezystancji dla układu: +#### a) Poprawnie mierzonego napięcia + +![[1. Miernictwo 2023-04-18 14.16.53.excalidraw]] +$R_{x}=\cfrac{U_{x}}{I_{x}}=\cfrac{U}{I-I_{v}}$ +$R_{x}'=\frac{U}{I}$ +$\Updelta = R_{x}'-R_{x}= \cfrac{U}{I}- \cfrac{U}{I-I_{V}}=\cfrac{-U\cdot I_{V}}{I(I-I_{V})} = \cfrac{R_x}{R_x+R_V}$ +#### b) Poprawnie mierzonego prądu +![[1. Miernictwo 2023-04-18 14.26.51.excalidraw]] + +$\Updelta=R_{A}$ +Amperomierz to sneaky woltomierz +# Pomiar AB +## Zadanie 4 +### Wyznacz niepewność pomiaru napięcia stałego dokonanego przy użyciu woltomierza cyfrowego 3.5D o dokładności $\pm(0.3\%+1dgt)$ +12.1 12.02 11.92 11.99 12.02 12.01 12.11 11.99 12.00 11.96 *1.96 - błąd gruby* +#### Metoda A: +$\bar x = \frac{1}{N}\sum\limits_{i=1}^{N}x_{i}$ +$\bar{U}= 12.01V$ +$U(x)=\sqrt{\cfrac{\sum\limits_{i=1}^{N}(x_{i}-\bar{x})^{2}}{N(N-1)}}$ +U = uncertainty +$U(x)=\sqrt{\cfrac{(12.10-12.01)^{2}+\textellipsis}{90}}=0.0182V$ +#### Metoda B +$U_{B}(x)=\cfrac{\Delta}{\sqrt{3}}$ +Δ = Max. błąd bezwzględny (0.046V) +U(x)=0.0266V + +#### Niepewność całkowita +$U_{c}=\sqrt{U_{A}(U)^{2}+U_{B}(U)^{2}}$ +W naszym przypadku **0.032V** + +## Zadanie 5 +### Do wyznaczenia mocy prądu stałego wykorzystano woltomierz 3.5 cyfry o dokładności 0.8%+2d na zakresie 20V, który wskazał 12 V, następnie amperomierz 3.5 o dokładności 1.2%+2d na zakresie 400 mA wskazał 320 mA \ No newline at end of file diff --git a/EiM/Ćwiczenia/Untitled.md b/EiM/Ćwiczenia/Untitled.md new file mode 100644 index 0000000..6016abd --- /dev/null +++ b/EiM/Ćwiczenia/Untitled.md @@ -0,0 +1,4 @@ + +![[Recording 20230418134959.webm]] + +![[Recording 20230418135018.webm]] diff --git a/EiM/Ćwiczenia/Ćwiczenia.md b/EiM/Ćwiczenia/Ćwiczenia.md new file mode 100644 index 0000000..072621e --- /dev/null +++ b/EiM/Ćwiczenia/Ćwiczenia.md @@ -0,0 +1,13 @@ +# Ćwiczenia Overview + +## Punktacja: +$$\frac{1}{3}\sum\limits^{3}_{i=1}m_{i}\geqslant3,\ m_{i}=\{2;2.3;2.5;2.7;...5\},\ gdzie\ m_{i}\geqslant2.5$$ +## Tematy kartkówek: +- Miernictwo, charakterystyki częstotliwościowe, tranzystory bipolarne +- Analiza małosygnałowa +- Wzmacniacz operacyjny + +```ccard +type: folder_brief_live +``` + diff --git a/TC/Ćwiczenia/Untitled.md b/TC/Ćwiczenia/Untitled.md new file mode 100644 index 0000000..a964e1f --- /dev/null +++ b/TC/Ćwiczenia/Untitled.md @@ -0,0 +1,78 @@ +Taśmociągiem transportowane są detale o kształcie równoległoboku. Detale są identyczne i mogą być ułożone tylko na dwa sposoby - Skośnie w prawo lub w lewo. krótsza krawędź jest zawsze równoległa do krawędzi taśmociągu. Nad taśmociągiem znajdują się czujniki a i b które dają *1* gdy wykryją detal. + +Zaprojektować układ który ma wyjścia x i y i pokozuje położenie detali + +11 gdy nie ma +00 gdy jest pod czujnikiem + +założenia: +Taśmociąg się nie cofa +Detale rozmieszczone są daleko od siebie +Kształt jest taki że zawsze będzie 00 i 11 + + +```dot +digraph { +bgcolor=transparent; +fontcolor=FFFFFF; +layout=neato; +center=1; +splines=true; +len=3; +rankdir=TB; +node [ shape = circle ]; +edge [len=2] +"wy/01"->"wy/01" [label="00"] +"wx/10"->"wx/10" [label="00"] +"x1/00"->"x1/00" [label="01"] +"wy/01"->"x1/00" [label="01"] +"x1/00"->"x2/00" [label="11"] +"x2/00"->"x2/00" [label="11"] +"x2/00"->"x3/00" [label="10"] +"x3/00"->"x3/00" [label="10"] +"x3/00"->"wx/10" [label="00"] +"wx/10"->"y1/00" [label="10"] +"y1/00"->"y1/00" [label="10"] +"y1/00"->"y2/00" [label="11"] +"y2/00"->"y2/00" [label="11"] +"y2/00"->"y3/00" [label="01"] +"y3/00"->"y3/00" [label="01"] +"y3/00"->"wy/01" [label="00"] +"wx/10"->"x1/00" [label="01", len=4, weight=999] +"wy/01"->"y1/00" [label="10", len=4, weight=999] +} +``` + + +```plantuml +bgcolor=transparent; +fontcolor=FFFFFF; +layout=neato; +center=1; +splines=true; +len=3; +rankdir=TB; +node [ shape = circle ]; +edge [len=2] +"wy/01"->"wy/01" [label="00"] +"wx/10"->"wx/10" [label="00"] +"x1/00"->"x1/00" [label="01"] +"wy/01"->"x1/00" [label="01"] +"x1/00"->"x2/00" [label="11"] +"x2/00"->"x2/00" [label="11"] +"x2/00"->"x3/00" [label="10"] +"x3/00"->"x3/00" [label="10"] +"x3/00"->"wx/10" [label="00"] +"wx/10"->"y1/00" [label="10"] +"y1/00"->"y1/00" [label="10"] +"y1/00"->"y2/00" [label="11"] +"y2/00"->"y2/00" [label="11"] +"y2/00"->"y3/00" [label="01"] +"y3/00"->"y3/00" [label="01"] +"y3/00"->"wy/01" [label="00"] +"wx/10"->"x1/00" [label="01", len=4, weight=999] +"wy/01"->"y1/00" [label="10", len=4, weight=999] +} +``` + +![[Untitled 2023-04-19 10.28.44.excalidraw]] \ No newline at end of file