diff --git a/bower.json b/bower.json index e2df3834..fc6ef21a 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "stackedit", - "version": "4.0.0", + "version": "4.0.1", "description": "StackEdit is a free, open-source Markdown editor based on PageDown, the Markdown library used by Stack Overflow and the other Stack Exchange sites.", "dependencies": { "bootstrap": "3.0.3", diff --git a/package.json b/package.json index 57138846..34027aeb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "stackedit", - "version": "4.0.0", + "version": "4.0.1", "private": true, "description": "StackEdit is a free, open-source Markdown editor based on PageDown, the Markdown library used by Stack Overflow and the other Stack Exchange sites.", "main": "res/main.js", diff --git a/public/cache.manifest b/public/cache.manifest index 8faf0da0..a8a552f7 100644 --- a/public/cache.manifest +++ b/public/cache.manifest @@ -1,5 +1,5 @@ CACHE MANIFEST -#Date Wed Aug 20 2014 23:51:57 +#Date Fri Aug 22 2014 00:16:15 CACHE: libs/MathJax/MathJax.js?config=TeX-AMS_HTML diff --git a/public/res-min/main.js b/public/res-min/main.js index 32bb796c..884e08d1 100644 --- a/public/res-min/main.js +++ b/public/res-min/main.js @@ -365,10 +365,10 @@ THE SOFTWARE. // │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\ // └─────────────────────────────────────────────────────────────────────┘ \\ -/** js sequence diagrams 1.0.4 +/** js sequence diagrams * http://bramp.github.io/js-sequence-diagrams/ * (c) 2012-2013 Andrew Brampton (bramp.net) - * @license Simplified BSD license. + * Simplified BSD license. */ // flowchart, v1.2.10 @@ -8018,7 +8018,7 @@ var saveAs = saveAs || "undefined" != typeof navigator && navigator.msSaveOrOpen }, utils }), define("constants", [], function() { var e = {}; - return e.VERSION = "4.0.0", e.MAIN_URL = "https://stackedit.io/", e.GOOGLE_ANALYTICS_ACCOUNT_ID = "UA-39556145-1", e.GOOGLE_API_KEY = "AIzaSyAeCU8CGcSkn0z9js6iocHuPBX4f_mMWkw", e.GOOGLE_DRIVE_APP_ID = "241271498917", e.DROPBOX_APP_KEY = "lq6mwopab8wskas", e.DROPBOX_APP_SECRET = "851fgnucpezy84t", e.DROPBOX_RESTRICTED_APP_KEY = "sw0hlixhr8q1xk0", e.DROPBOX_RESTRICTED_APP_SECRET = "1r808p2xygs6lbg", e.BITLY_ACCESS_TOKEN = "317e033bfd48cf31155a68a536b1860013b09c4c", e.DEFAULT_FILE_TITLE = "Title", e.DEFAULT_FOLDER_NAME = "New folder", e.GDRIVE_DEFAULT_FILE_TITLE = "New Markdown document", e.EDITOR_DEFAULT_PADDING = 35, e.CHECK_ONLINE_PERIOD = 12e4, e.AJAX_TIMEOUT = 3e4, e.ASYNC_TASK_DEFAULT_TIMEOUT = 6e4, e.ASYNC_TASK_LONG_TIMEOUT = 18e4, e.USER_IDLE_THRESHOLD = 3e5, e.IMPORT_FILE_MAX_CONTENT_SIZE = 1e5, e.IMPORT_IMG_MAX_CONTENT_SIZE = 1e7, e.TEMPORARY_FILE_INDEX = "file.tempIndex", e.WELCOME_DOCUMENT_TITLE = "Welcome document", e.DOWNLOAD_IMPORT_URL = "/downloadImport", e.PICASA_IMPORT_IMG_URL = "/picasaImportImg", e.SSH_PUBLISH_URL = "/sshPublish", e.PDF_EXPORT_URL = "/pdfExport", e.BASE_URL = "http://localhost/", e.GOOGLE_CLIENT_ID = "241271498917-lev37kef013q85avc91am1gccg5g8lrb.apps.googleusercontent.com", e.GITHUB_CLIENT_ID = "e47fef6055344579799d", e.GATEKEEPER_URL = "https://stackedit-gatekeeper-localhost.herokuapp.com/", e.TUMBLR_PROXY_URL = "https://stackedit-tumblr-proxy-local.herokuapp.com/", e.WORDPRESS_CLIENT_ID = "23361", e.WORDPRESS_PROXY_URL = "https://stackedit-io-wordpress-proxy.herokuapp.com/", 0 === location.hostname.indexOf("stackedit.io") ? (e.BASE_URL = e.MAIN_URL, e.GOOGLE_CLIENT_ID = "241271498917-t4t7d07qis7oc0ahaskbif3ft6tk63cd.apps.googleusercontent.com", e.GITHUB_CLIENT_ID = "710fc67886ab1ae8fee6", e.GATEKEEPER_URL = "https://stackedit-io-gatekeeper.herokuapp.com/", e.TUMBLR_PROXY_URL = "https://stackedit-io-tumblr-proxy.herokuapp.com/") : 0 === location.hostname.indexOf("benweet.github.io") ? (e.BASE_URL = "http://benweet.github.io/stackedit/", e.GOOGLE_CLIENT_ID = "241271498917-jpto9lls9fqnem1e4h6ppds9uob8rpvu.apps.googleusercontent.com", e.GITHUB_CLIENT_ID = "fa0d09514da8377ee32e", e.GATEKEEPER_URL = "https://stackedit-gatekeeper.herokuapp.com/", e.TUMBLR_PROXY_URL = "https://stackedit-tumblr-proxy.herokuapp.com/", e.WORDPRESS_CLIENT_ID = "3185", e.WORDPRESS_PROXY_URL = "https://stackedit-wordpress-proxy.herokuapp.com/") : 0 === location.hostname.indexOf("stackedit-beta.herokuapp.com") ? (e.BASE_URL = "https://stackedit-beta.herokuapp.com/", e.GOOGLE_CLIENT_ID = "241271498917-9bbplknkt0ljv5gaudhoiogp13hd18be.apps.googleusercontent.com", e.GITHUB_CLIENT_ID = "e9034ae191c3a8a1c5ed", e.GATEKEEPER_URL = "https://stackedit-beta-gatekeeper.herokuapp.com/", e.TUMBLR_PROXY_URL = "https://stackedit-beta-tumblr-proxy.herokuapp.com/", e.WORDPRESS_CLIENT_ID = "34786", e.WORDPRESS_PROXY_URL = "https://stackedit-beta-wordpress-proxy.herokuapp.com/") : 0 === location.hostname.indexOf("benweet.insomnia247.nl") && (e.BASE_URL = "http://benweet.insomnia247.nl/stackedit/", e.GOOGLE_CLIENT_ID = "241271498917-52hae7a08hv7ltenv7km8h7lghno9sk3.apps.googleusercontent.com", e.GITHUB_CLIENT_ID = "d2943d6074b2d9c4a830", e.GATEKEEPER_URL = "https://stackedit-gatekeeper-insomnia.herokuapp.com/", e.TUMBLR_PROXY_URL = "https://stackedit-tumblr-proxy-beta.herokuapp.com/"), e.THEME_LIST = { + return e.VERSION = "4.0.1", e.MAIN_URL = "https://stackedit.io/", e.GOOGLE_ANALYTICS_ACCOUNT_ID = "UA-39556145-1", e.GOOGLE_API_KEY = "AIzaSyAeCU8CGcSkn0z9js6iocHuPBX4f_mMWkw", e.GOOGLE_DRIVE_APP_ID = "241271498917", e.DROPBOX_APP_KEY = "lq6mwopab8wskas", e.DROPBOX_APP_SECRET = "851fgnucpezy84t", e.DROPBOX_RESTRICTED_APP_KEY = "sw0hlixhr8q1xk0", e.DROPBOX_RESTRICTED_APP_SECRET = "1r808p2xygs6lbg", e.BITLY_ACCESS_TOKEN = "317e033bfd48cf31155a68a536b1860013b09c4c", e.DEFAULT_FILE_TITLE = "Title", e.DEFAULT_FOLDER_NAME = "New folder", e.GDRIVE_DEFAULT_FILE_TITLE = "New Markdown document", e.EDITOR_DEFAULT_PADDING = 35, e.CHECK_ONLINE_PERIOD = 12e4, e.AJAX_TIMEOUT = 3e4, e.ASYNC_TASK_DEFAULT_TIMEOUT = 6e4, e.ASYNC_TASK_LONG_TIMEOUT = 18e4, e.USER_IDLE_THRESHOLD = 3e5, e.IMPORT_FILE_MAX_CONTENT_SIZE = 1e5, e.IMPORT_IMG_MAX_CONTENT_SIZE = 1e7, e.TEMPORARY_FILE_INDEX = "file.tempIndex", e.WELCOME_DOCUMENT_TITLE = "Welcome document", e.DOWNLOAD_IMPORT_URL = "/downloadImport", e.PICASA_IMPORT_IMG_URL = "/picasaImportImg", e.SSH_PUBLISH_URL = "/sshPublish", e.PDF_EXPORT_URL = "/pdfExport", e.BASE_URL = "http://localhost/", e.GOOGLE_CLIENT_ID = "241271498917-lev37kef013q85avc91am1gccg5g8lrb.apps.googleusercontent.com", e.GITHUB_CLIENT_ID = "e47fef6055344579799d", e.GATEKEEPER_URL = "https://stackedit-gatekeeper-localhost.herokuapp.com/", e.TUMBLR_PROXY_URL = "https://stackedit-tumblr-proxy-local.herokuapp.com/", e.WORDPRESS_CLIENT_ID = "23361", e.WORDPRESS_PROXY_URL = "https://stackedit-io-wordpress-proxy.herokuapp.com/", 0 === location.hostname.indexOf("stackedit.io") ? (e.BASE_URL = e.MAIN_URL, e.GOOGLE_CLIENT_ID = "241271498917-t4t7d07qis7oc0ahaskbif3ft6tk63cd.apps.googleusercontent.com", e.GITHUB_CLIENT_ID = "710fc67886ab1ae8fee6", e.GATEKEEPER_URL = "https://stackedit-io-gatekeeper.herokuapp.com/", e.TUMBLR_PROXY_URL = "https://stackedit-io-tumblr-proxy.herokuapp.com/") : 0 === location.hostname.indexOf("benweet.github.io") ? (e.BASE_URL = "http://benweet.github.io/stackedit/", e.GOOGLE_CLIENT_ID = "241271498917-jpto9lls9fqnem1e4h6ppds9uob8rpvu.apps.googleusercontent.com", e.GITHUB_CLIENT_ID = "fa0d09514da8377ee32e", e.GATEKEEPER_URL = "https://stackedit-gatekeeper.herokuapp.com/", e.TUMBLR_PROXY_URL = "https://stackedit-tumblr-proxy.herokuapp.com/", e.WORDPRESS_CLIENT_ID = "3185", e.WORDPRESS_PROXY_URL = "https://stackedit-wordpress-proxy.herokuapp.com/") : 0 === location.hostname.indexOf("stackedit-beta.herokuapp.com") ? (e.BASE_URL = "https://stackedit-beta.herokuapp.com/", e.GOOGLE_CLIENT_ID = "241271498917-9bbplknkt0ljv5gaudhoiogp13hd18be.apps.googleusercontent.com", e.GITHUB_CLIENT_ID = "e9034ae191c3a8a1c5ed", e.GATEKEEPER_URL = "https://stackedit-beta-gatekeeper.herokuapp.com/", e.TUMBLR_PROXY_URL = "https://stackedit-beta-tumblr-proxy.herokuapp.com/", e.WORDPRESS_CLIENT_ID = "34786", e.WORDPRESS_PROXY_URL = "https://stackedit-beta-wordpress-proxy.herokuapp.com/") : 0 === location.hostname.indexOf("benweet.insomnia247.nl") && (e.BASE_URL = "http://benweet.insomnia247.nl/stackedit/", e.GOOGLE_CLIENT_ID = "241271498917-52hae7a08hv7ltenv7km8h7lghno9sk3.apps.googleusercontent.com", e.GITHUB_CLIENT_ID = "d2943d6074b2d9c4a830", e.GATEKEEPER_URL = "https://stackedit-gatekeeper-insomnia.herokuapp.com/", e.TUMBLR_PROXY_URL = "https://stackedit-tumblr-proxy-beta.herokuapp.com/"), e.THEME_LIST = { blue: "Blue", "default": "Default", gray: "Gray", @@ -19075,1816 +19075,898 @@ if(Markdown = "object" == typeof exports && "function" == typeof require ? expor }(A)) } }(), E.was ? T.win.Raphael = n : Raphael = n, n -}), define("sequence-diagram", ["raphael", "underscore"], function() { - return ! function() { - function e() { - this.title = void 0, this.actors = [], this.signals = [] - } +}), function() { + function e() { + this.title = void 0, this.actors = [], this.signals = [] + } - function t(e, t) { - _.extend(this, t), this.name = "ParseError", this.message = e || "" + function t(e, t) { + _.extend(this, t), this.name = "ParseError", this.message = e || "" + } + e.prototype.getActor = function(t) { + var n = /^(.+) as (\S+)$/i.exec(t.trim()); + n ? (name = n[1].trim(), t = n[2].trim()) : name = t.trim(), name = name.replace(/\\n/gm, "\n"); + var i, r = this.actors; + for(i in r) + if(r[i].alias == t) return r[i]; + return i = r.push(new e.Actor(t, name, r.length)), r[i - 1] + }, e.prototype.setTitle = function(e) { + this.title = e + }, e.prototype.addSignal = function(e) { + this.signals.push(e) + }, e.Actor = function(e, t, n) { + this.alias = e, this.name = t, this.index = n + }, e.Signal = function(e, t, n, i) { + this.type = "Signal", this.actorA = e, this.actorB = n, this.linetype = 3 & t, this.arrowtype = t >> 2 & 3, this.message = i + }, e.Signal.prototype.isSelf = function() { + return this.actorA.index == this.actorB.index + }, e.Note = function(e, t, n) { + if(this.type = "Note", this.actor = e, this.placement = t, this.message = n, this.hasManyActors() && e[0] == e[1]) throw new Error("Note should be over two different actors") + }, e.Note.prototype.hasManyActors = function() { + return _.isArray(this.actor) + }, e.LINETYPE = { + SOLID: 0, + DOTTED: 1 + }, e.ARROWTYPE = { + FILLED: 0, + OPEN: 1 + }, e.PLACEMENT = { + LEFTOF: 0, + RIGHTOF: 1, + OVER: 2 + }; + var n = function() { + function t() { + this.yy = {} } - e.prototype.getActor = function(t) { - var n = /^(.+) as (\S+)$/i.exec(t.trim()); - n ? (name = n[1].trim(), t = n[2].trim()) : name = t.trim(), name = name.replace(/\\n/gm, "\n"); - var i, r = this.actors; - for(i in r) - if(r[i].alias == t) return r[i]; - return i = r.push(new e.Actor(t, name, r.length)), r[i - 1] - }, e.prototype.setTitle = function(e) { - this.title = e - }, e.prototype.addSignal = function(e) { - this.signals.push(e) - }, e.Actor = function(e, t, n) { - this.alias = e, this.name = t, this.index = n - }, e.Signal = function(e, t, n, i) { - this.type = "Signal", this.actorA = e, this.actorB = n, this.linetype = 3 & t, this.arrowtype = 3 & t >> 2, this.message = i - }, e.Signal.prototype.isSelf = function() { - return this.actorA.index == this.actorB.index - }, e.Note = function(e, t, n) { - if(this.type = "Note", this.actor = e, this.placement = t, this.message = n, this.hasManyActors() && e[0] == e[1]) throw new Error("Note should be over two different actors") - }, e.Note.prototype.hasManyActors = function() { - return _.isArray(this.actor) - }, e.LINETYPE = { - SOLID: 0, - DOTTED: 1 - }, e.ARROWTYPE = { - FILLED: 0, - OPEN: 1 - }, e.PLACEMENT = { - LEFTOF: 0, - RIGHTOF: 1, - OVER: 2 - }; - var n = function() { - function t() { - this.yy = {} - } - var n = { - trace: function() {}, - yy: {}, - symbols_: { - error: 2, - start: 3, - document: 4, - EOF: 5, - line: 6, - statement: 7, - NL: 8, - participant: 9, - actor: 10, - signal: 11, - note_statement: 12, - title: 13, - message: 14, - note: 15, - placement: 16, - over: 17, - actor_pair: 18, - ",": 19, - left_of: 20, - right_of: 21, - signaltype: 22, - ACTOR: 23, - linetype: 24, - arrowtype: 25, - LINE: 26, - DOTLINE: 27, - ARROW: 28, - OPENARROW: 29, - MESSAGE: 30, - $accept: 0, - $end: 1 - }, - terminals_: { - 2: "error", - 5: "EOF", - 8: "NL", - 9: "participant", - 13: "title", - 15: "note", - 17: "over", - 19: ",", - 20: "left_of", - 21: "right_of", - 23: "ACTOR", - 26: "LINE", - 27: "DOTLINE", - 28: "ARROW", - 29: "OPENARROW", - 30: "MESSAGE" - }, - productions_: [0, [3, 2], [4, 0], [4, 2], [6, 1], [6, 1], [7, 2], [7, 1], [7, 1], [7, 2], [12, 4], [12, 4], [18, 1], [18, 3], [16, 1], [16, 1], [11, 4], [10, 1], [22, 2], [22, 1], [24, 1], [24, 1], [25, 1], [25, 1], [14, 1]], - performAction: function(t, n, i, r, o, a) { - var s = a.length - 1; - switch(o) { + var n = { + trace: function() {}, + yy: {}, + symbols_: { + error: 2, + start: 3, + document: 4, + EOF: 5, + line: 6, + statement: 7, + NL: 8, + participant: 9, + actor: 10, + signal: 11, + note_statement: 12, + title: 13, + message: 14, + note: 15, + placement: 16, + over: 17, + actor_pair: 18, + ",": 19, + left_of: 20, + right_of: 21, + signaltype: 22, + ACTOR: 23, + linetype: 24, + arrowtype: 25, + LINE: 26, + DOTLINE: 27, + ARROW: 28, + OPENARROW: 29, + MESSAGE: 30, + $accept: 0, + $end: 1 + }, + terminals_: { + 2: "error", + 5: "EOF", + 8: "NL", + 9: "participant", + 13: "title", + 15: "note", + 17: "over", + 19: ",", + 20: "left_of", + 21: "right_of", + 23: "ACTOR", + 26: "LINE", + 27: "DOTLINE", + 28: "ARROW", + 29: "OPENARROW", + 30: "MESSAGE" + }, + productions_: [0, [3, 2], [4, 0], [4, 2], [6, 1], [6, 1], [7, 2], [7, 1], [7, 1], [7, 2], [12, 4], [12, 4], [18, 1], [18, 3], [16, 1], [16, 1], [11, 4], [10, 1], [22, 2], [22, 1], [24, 1], [24, 1], [25, 1], [25, 1], [14, 1]], + performAction: function(t, n, i, r, o, a) { + var s = a.length - 1; + switch(o) { + case 1: + return r; + case 4: + break; + case 6: + a[s]; + break; + case 7: + r.addSignal(a[s]); + break; + case 8: + r.addSignal(a[s]); + break; + case 9: + r.setTitle(a[s]); + break; + case 10: + this.$ = new e.Note(a[s - 1], a[s - 2], a[s]); + break; + case 11: + this.$ = new e.Note(a[s - 1], e.PLACEMENT.OVER, a[s]); + break; + case 12: + this.$ = a[s]; + break; + case 13: + this.$ = [a[s - 2], a[s]]; + break; + case 14: + this.$ = e.PLACEMENT.LEFTOF; + break; + case 15: + this.$ = e.PLACEMENT.RIGHTOF; + break; + case 16: + this.$ = new e.Signal(a[s - 3], a[s - 2], a[s - 1], a[s]); + break; + case 17: + this.$ = r.getActor(a[s]); + break; + case 18: + this.$ = a[s - 1] | a[s] << 2; + break; + case 19: + this.$ = a[s]; + break; + case 20: + this.$ = e.LINETYPE.SOLID; + break; + case 21: + this.$ = e.LINETYPE.DOTTED; + break; + case 22: + this.$ = e.ARROWTYPE.FILLED; + break; + case 23: + this.$ = e.ARROWTYPE.OPEN; + break; + case 24: + this.$ = a[s].substring(1).trim().replace(/\\n/gm, "\n") + } + }, + table: [{ + 3: 1, + 4: 2, + 5: [2, 2], + 8: [2, 2], + 9: [2, 2], + 13: [2, 2], + 15: [2, 2], + 23: [2, 2] + }, { + 1: [3] + }, { + 5: [1, 3], + 6: 4, + 7: 5, + 8: [1, 6], + 9: [1, 7], + 10: 11, + 11: 8, + 12: 9, + 13: [1, 10], + 15: [1, 12], + 23: [1, 13] + }, { + 1: [2, 1] + }, { + 5: [2, 3], + 8: [2, 3], + 9: [2, 3], + 13: [2, 3], + 15: [2, 3], + 23: [2, 3] + }, { + 5: [2, 4], + 8: [2, 4], + 9: [2, 4], + 13: [2, 4], + 15: [2, 4], + 23: [2, 4] + }, { + 5: [2, 5], + 8: [2, 5], + 9: [2, 5], + 13: [2, 5], + 15: [2, 5], + 23: [2, 5] + }, { + 10: 14, + 23: [1, 13] + }, { + 5: [2, 7], + 8: [2, 7], + 9: [2, 7], + 13: [2, 7], + 15: [2, 7], + 23: [2, 7] + }, { + 5: [2, 8], + 8: [2, 8], + 9: [2, 8], + 13: [2, 8], + 15: [2, 8], + 23: [2, 8] + }, { + 14: 15, + 30: [1, 16] + }, { + 22: 17, + 24: 18, + 26: [1, 19], + 27: [1, 20] + }, { + 16: 21, + 17: [1, 22], + 20: [1, 23], + 21: [1, 24] + }, { + 5: [2, 17], + 8: [2, 17], + 9: [2, 17], + 13: [2, 17], + 15: [2, 17], + 19: [2, 17], + 23: [2, 17], + 26: [2, 17], + 27: [2, 17], + 30: [2, 17] + }, { + 5: [2, 6], + 8: [2, 6], + 9: [2, 6], + 13: [2, 6], + 15: [2, 6], + 23: [2, 6] + }, { + 5: [2, 9], + 8: [2, 9], + 9: [2, 9], + 13: [2, 9], + 15: [2, 9], + 23: [2, 9] + }, { + 5: [2, 24], + 8: [2, 24], + 9: [2, 24], + 13: [2, 24], + 15: [2, 24], + 23: [2, 24] + }, { + 10: 25, + 23: [1, 13] + }, { + 23: [2, 19], + 25: 26, + 28: [1, 27], + 29: [1, 28] + }, { + 23: [2, 20], + 28: [2, 20], + 29: [2, 20] + }, { + 23: [2, 21], + 28: [2, 21], + 29: [2, 21] + }, { + 10: 29, + 23: [1, 13] + }, { + 10: 31, + 18: 30, + 23: [1, 13] + }, { + 23: [2, 14] + }, { + 23: [2, 15] + }, { + 14: 32, + 30: [1, 16] + }, { + 23: [2, 18] + }, { + 23: [2, 22] + }, { + 23: [2, 23] + }, { + 14: 33, + 30: [1, 16] + }, { + 14: 34, + 30: [1, 16] + }, { + 19: [1, 35], + 30: [2, 12] + }, { + 5: [2, 16], + 8: [2, 16], + 9: [2, 16], + 13: [2, 16], + 15: [2, 16], + 23: [2, 16] + }, { + 5: [2, 10], + 8: [2, 10], + 9: [2, 10], + 13: [2, 10], + 15: [2, 10], + 23: [2, 10] + }, { + 5: [2, 11], + 8: [2, 11], + 9: [2, 11], + 13: [2, 11], + 15: [2, 11], + 23: [2, 11] + }, { + 10: 36, + 23: [1, 13] + }, { + 30: [2, 13] + }], + defaultActions: { + 3: [2, 1], + 23: [2, 14], + 24: [2, 15], + 26: [2, 18], + 27: [2, 22], + 28: [2, 23], + 36: [2, 13] + }, + parseError: function(e, t) { + if(!t.recoverable) throw new Error(e); + this.trace(e) + }, + parse: function(e) { + function t() { + var e; + return e = n.lexer.lex() || p, "number" != typeof e && (e = n.symbols_[e] || e), e + } + var n = this, + i = [0], + r = [null], + o = [], + a = this.table, + s = "", + l = 0, + c = 0, + u = 0, + d = 2, + p = 1; + this.lexer.setInput(e), this.lexer.yy = this.yy, this.yy.lexer = this.lexer, this.yy.parser = this, "undefined" == typeof this.lexer.yylloc && (this.lexer.yylloc = {}); + var h = this.lexer.yylloc; + o.push(h); + var f = this.lexer.options && this.lexer.options.ranges; + this.parseError = "function" == typeof this.yy.parseError ? this.yy.parseError : Object.getPrototypeOf(this).parseError; + for(var m, g, v, b, y, x, w, S, C, _ = {};;) { + if(v = i[i.length - 1], this.defaultActions[v] ? b = this.defaultActions[v] : ((null === m || "undefined" == typeof m) && (m = t()), b = a[v] && a[v][m]), "undefined" == typeof b || !b.length || !b[0]) { + var k = ""; + C = []; + for(x in a[v]) this.terminals_[x] && x > d && C.push("'" + this.terminals_[x] + "'"); + k = this.lexer.showPosition ? "Parse error on line " + (l + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + C.join(", ") + ", got '" + (this.terminals_[m] || m) + "'" : "Parse error on line " + (l + 1) + ": Unexpected " + (m == p ? "end of input" : "'" + (this.terminals_[m] || m) + "'"), this.parseError(k, { + text: this.lexer.match, + token: this.terminals_[m] || m, + line: this.lexer.yylineno, + loc: h, + expected: C + }) + } + if(b[0] instanceof Array && b.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + v + ", token: " + m); + switch(b[0]) { case 1: - return r; - case 4: + i.push(m), r.push(this.lexer.yytext), o.push(this.lexer.yylloc), i.push(b[1]), m = null, g ? (m = g, g = null) : (c = this.lexer.yyleng, s = this.lexer.yytext, l = this.lexer.yylineno, h = this.lexer.yylloc, u > 0 && u--); break; - case 6: - a[s]; + case 2: + if(w = this.productions_[b[1]][1], _.$ = r[r.length - w], _._$ = { + first_line: o[o.length - (w || 1)].first_line, + last_line: o[o.length - 1].last_line, + first_column: o[o.length - (w || 1)].first_column, + last_column: o[o.length - 1].last_column + }, f && (_._$.range = [o[o.length - (w || 1)].range[0], o[o.length - 1].range[1]]), y = this.performAction.call(_, s, c, l, this.yy, b[1], r, o), "undefined" != typeof y) return y; + w && (i = i.slice(0, -1 * w * 2), r = r.slice(0, -1 * w), o = o.slice(0, -1 * w)), i.push(this.productions_[b[1]][0]), r.push(_.$), o.push(_._$), S = a[i[i.length - 2]][i[i.length - 1]], i.push(S); break; - case 7: - r.addSignal(a[s]); - break; - case 8: - r.addSignal(a[s]); - break; - case 9: - r.setTitle(a[s]); - break; - case 10: - this.$ = new e.Note(a[s - 1], a[s - 2], a[s]); - break; - case 11: - this.$ = new e.Note(a[s - 1], e.PLACEMENT.OVER, a[s]); - break; - case 12: - this.$ = a[s]; - break; - case 13: - this.$ = [a[s - 2], a[s]]; - break; - case 14: - this.$ = e.PLACEMENT.LEFTOF; - break; - case 15: - this.$ = e.PLACEMENT.RIGHTOF; - break; - case 16: - this.$ = new e.Signal(a[s - 3], a[s - 2], a[s - 1], a[s]); - break; - case 17: - this.$ = r.getActor(a[s]); - break; - case 18: - this.$ = a[s - 1] | a[s] << 2; - break; - case 19: - this.$ = a[s]; - break; - case 20: - this.$ = e.LINETYPE.SOLID; - break; - case 21: - this.$ = e.LINETYPE.DOTTED; - break; - case 22: - this.$ = e.ARROWTYPE.FILLED; - break; - case 23: - this.$ = e.ARROWTYPE.OPEN; - break; - case 24: - this.$ = a[s].substring(1).trim().replace(/\\n/gm, "\n") + case 3: + return !0 } - }, - table: [{ - 3: 1, - 4: 2, - 5: [2, 2], - 8: [2, 2], - 9: [2, 2], - 13: [2, 2], - 15: [2, 2], - 23: [2, 2] - }, { - 1: [3] - }, { - 5: [1, 3], - 6: 4, - 7: 5, - 8: [1, 6], - 9: [1, 7], - 10: 11, - 11: 8, - 12: 9, - 13: [1, 10], - 15: [1, 12], - 23: [1, 13] - }, { - 1: [2, 1] - }, { - 5: [2, 3], - 8: [2, 3], - 9: [2, 3], - 13: [2, 3], - 15: [2, 3], - 23: [2, 3] - }, { - 5: [2, 4], - 8: [2, 4], - 9: [2, 4], - 13: [2, 4], - 15: [2, 4], - 23: [2, 4] - }, { - 5: [2, 5], - 8: [2, 5], - 9: [2, 5], - 13: [2, 5], - 15: [2, 5], - 23: [2, 5] - }, { - 10: 14, - 23: [1, 13] - }, { - 5: [2, 7], - 8: [2, 7], - 9: [2, 7], - 13: [2, 7], - 15: [2, 7], - 23: [2, 7] - }, { - 5: [2, 8], - 8: [2, 8], - 9: [2, 8], - 13: [2, 8], - 15: [2, 8], - 23: [2, 8] - }, { - 14: 15, - 30: [1, 16] - }, { - 22: 17, - 24: 18, - 26: [1, 19], - 27: [1, 20] - }, { - 16: 21, - 17: [1, 22], - 20: [1, 23], - 21: [1, 24] - }, { - 5: [2, 17], - 8: [2, 17], - 9: [2, 17], - 13: [2, 17], - 15: [2, 17], - 19: [2, 17], - 23: [2, 17], - 26: [2, 17], - 27: [2, 17], - 30: [2, 17] - }, { - 5: [2, 6], - 8: [2, 6], - 9: [2, 6], - 13: [2, 6], - 15: [2, 6], - 23: [2, 6] - }, { - 5: [2, 9], - 8: [2, 9], - 9: [2, 9], - 13: [2, 9], - 15: [2, 9], - 23: [2, 9] - }, { - 5: [2, 24], - 8: [2, 24], - 9: [2, 24], - 13: [2, 24], - 15: [2, 24], - 23: [2, 24] - }, { - 10: 25, - 23: [1, 13] - }, { - 23: [2, 19], - 25: 26, - 28: [1, 27], - 29: [1, 28] - }, { - 23: [2, 20], - 28: [2, 20], - 29: [2, 20] - }, { - 23: [2, 21], - 28: [2, 21], - 29: [2, 21] - }, { - 10: 29, - 23: [1, 13] - }, { - 10: 31, - 18: 30, - 23: [1, 13] - }, { - 23: [2, 14] - }, { - 23: [2, 15] - }, { - 14: 32, - 30: [1, 16] - }, { - 23: [2, 18] - }, { - 23: [2, 22] - }, { - 23: [2, 23] - }, { - 14: 33, - 30: [1, 16] - }, { - 14: 34, - 30: [1, 16] - }, { - 19: [1, 35], - 30: [2, 12] - }, { - 5: [2, 16], - 8: [2, 16], - 9: [2, 16], - 13: [2, 16], - 15: [2, 16], - 23: [2, 16] - }, { - 5: [2, 10], - 8: [2, 10], - 9: [2, 10], - 13: [2, 10], - 15: [2, 10], - 23: [2, 10] - }, { - 5: [2, 11], - 8: [2, 11], - 9: [2, 11], - 13: [2, 11], - 15: [2, 11], - 23: [2, 11] - }, { - 10: 36, - 23: [1, 13] - }, { - 30: [2, 13] - }], - defaultActions: { - 3: [2, 1], - 23: [2, 14], - 24: [2, 15], - 26: [2, 18], - 27: [2, 22], - 28: [2, 23], - 36: [2, 13] - }, - parseError: function(e, t) { - if(!t.recoverable) throw new Error(e); - this.trace(e) - }, - parse: function(e) { - function t() { - var e; - return e = n.lexer.lex() || p, "number" != typeof e && (e = n.symbols_[e] || e), e - } - var n = this, - i = [0], - r = [null], - o = [], - a = this.table, - s = "", - l = 0, - c = 0, - u = 0, - d = 2, - p = 1; - this.lexer.setInput(e), this.lexer.yy = this.yy, this.yy.lexer = this.lexer, this.yy.parser = this, "undefined" == typeof this.lexer.yylloc && (this.lexer.yylloc = {}); - var h = this.lexer.yylloc; - o.push(h); - var f = this.lexer.options && this.lexer.options.ranges; - this.parseError = "function" == typeof this.yy.parseError ? this.yy.parseError : Object.getPrototypeOf(this).parseError; - for(var m, g, v, b, y, x, w, S, C, _ = {};;) { - if(v = i[i.length - 1], this.defaultActions[v] ? b = this.defaultActions[v] : ((null === m || "undefined" == typeof m) && (m = t()), b = a[v] && a[v][m]), "undefined" == typeof b || !b.length || !b[0]) { - var k = ""; - C = []; - for(x in a[v]) this.terminals_[x] && x > d && C.push("'" + this.terminals_[x] + "'"); - k = this.lexer.showPosition ? "Parse error on line " + (l + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + C.join(", ") + ", got '" + (this.terminals_[m] || m) + "'" : "Parse error on line " + (l + 1) + ": Unexpected " + (m == p ? "end of input" : "'" + (this.terminals_[m] || m) + "'"), this.parseError(k, { - text: this.lexer.match, - token: this.terminals_[m] || m, - line: this.lexer.yylineno, - loc: h, - expected: C - }) + } + return !0 + } + }, i = function() { + var e = { + EOF: 1, + parseError: function(e, t) { + if(!this.yy.parser) throw new Error(e); + this.yy.parser.parseError(e, t) + }, + setInput: function(e) { + return this._input = e, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this + }, + input: function() { + var e = this._input[0]; + this.yytext += e, this.yyleng++, this.offset++, this.match += e, this.matched += e; + var t = e.match(/(?:\r\n?|\n).*/g); + return t ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), e + }, + unput: function(e) { + var t = e.length, + n = e.split(/(?:\r\n?|\n)/g); + this._input = e + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - t - 1), this.offset -= t; + var i = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1); + var r = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: n ? (n.length === i.length ? this.yylloc.first_column : 0) + i[i.length - n.length].length - n[0].length : this.yylloc.first_column - t + }, this.options.ranges && (this.yylloc.range = [r[0], r[0] + this.yyleng - t]), this.yyleng = this.yytext.length, this + }, + more: function() { + return this._more = !0, this + }, + reject: function() { + return this.options.backtrack_lexer ? (this._backtrack = !0, this) : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }) + }, + less: function(e) { + this.unput(this.match.slice(e)) + }, + pastInput: function() { + var e = this.matched.substr(0, this.matched.length - this.match.length); + return(e.length > 20 ? "..." : "") + e.substr(-20).replace(/\n/g, "") + }, + upcomingInput: function() { + var e = this.match; + return e.length < 20 && (e += this._input.substr(0, 20 - e.length)), (e.substr(0, 20) + (e.length > 20 ? "..." : "")).replace(/\n/g, "") + }, + showPosition: function() { + var e = this.pastInput(), + t = new Array(e.length + 1).join("-"); + return e + this.upcomingInput() + "\n" + t + "^" + }, + test_match: function(e, t) { + var n, i, r; + if(this.options.backtrack_lexer && (r = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (r.yylloc.range = this.yylloc.range.slice(0))), i = e[0].match(/(?:\r\n?|\n).*/g), i && (this.yylineno += i.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: i ? i[i.length - 1].length - i[i.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + e[0].length + }, this.yytext += e[0], this.match += e[0], this.matches = e, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(e[0].length), this.matched += e[0], n = this.performAction.call(this, this.yy, this, t, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), n) return n; + if(this._backtrack) { + for(var o in r) this[o] = r[o]; + return !1 } - if(b[0] instanceof Array && b.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + v + ", token: " + m); - switch(b[0]) { + return !1 + }, + next: function() { + if(this.done) return this.EOF; + this._input || (this.done = !0); + var e, t, n, i; + this._more || (this.yytext = "", this.match = ""); + for(var r = this._currentRules(), o = 0; o < r.length; o++) + if(n = this._input.match(this.rules[r[o]]), n && (!t || n[0].length > t[0].length)) { + if(t = n, i = o, this.options.backtrack_lexer) { + if(e = this.test_match(n, r[o]), e !== !1) return e; + if(this._backtrack) { + t = !1; + continue + } + return !1 + } + if(!this.options.flex) break + } + return t ? (e = this.test_match(t, r[i]), e !== !1 ? e : !1) : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }) + }, + lex: function() { + var e = this.next(); + return e ? e : this.lex() + }, + begin: function(e) { + this.conditionStack.push(e) + }, + popState: function() { + var e = this.conditionStack.length - 1; + return e > 0 ? this.conditionStack.pop() : this.conditionStack[0] + }, + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules + }, + topState: function(e) { + return e = this.conditionStack.length - 1 - Math.abs(e || 0), e >= 0 ? this.conditionStack[e] : "INITIAL" + }, + pushState: function(e) { + this.begin(e) + }, + stateStackSize: function() { + return this.conditionStack.length + }, + options: { + "case-insensitive": !0 + }, + performAction: function(e, t, n, i) { + switch(n) { + case 0: + return 8; case 1: - i.push(m), r.push(this.lexer.yytext), o.push(this.lexer.yylloc), i.push(b[1]), m = null, g ? (m = g, g = null) : (c = this.lexer.yyleng, s = this.lexer.yytext, l = this.lexer.yylineno, h = this.lexer.yylloc, u > 0 && u--); break; case 2: - if(w = this.productions_[b[1]][1], _.$ = r[r.length - w], _._$ = { - first_line: o[o.length - (w || 1)].first_line, - last_line: o[o.length - 1].last_line, - first_column: o[o.length - (w || 1)].first_column, - last_column: o[o.length - 1].last_column - }, f && (_._$.range = [o[o.length - (w || 1)].range[0], o[o.length - 1].range[1]]), y = this.performAction.call(_, s, c, l, this.yy, b[1], r, o), "undefined" != typeof y) return y; - w && (i = i.slice(0, -2 * w), r = r.slice(0, -1 * w), o = o.slice(0, -1 * w)), i.push(this.productions_[b[1]][0]), r.push(_.$), o.push(_._$), S = a[i[i.length - 2]][i[i.length - 1]], i.push(S); break; case 3: - return !0 + return 9; + case 4: + return 20; + case 5: + return 21; + case 6: + return 17; + case 7: + return 15; + case 8: + return 13; + case 9: + return 19; + case 10: + return 23; + case 11: + return 27; + case 12: + return 26; + case 13: + return 29; + case 14: + return 28; + case 15: + return 30; + case 16: + return 5; + case 17: + return "INVALID" + } + }, + rules: [/^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:participant\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:title\b)/i, /^(?:,)/i, /^(?:[^\->:\n,]+)/i, /^(?:--)/i, /^(?:-)/i, /^(?:>>)/i, /^(?:>)/i, /^(?:[^#\n]+)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { + INITIAL: { + rules: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], + inclusive: !0 } } - return !0 - } - }, i = function() { - var e = { - EOF: 1, - parseError: function(e, t) { - if(!this.yy.parser) throw new Error(e); - this.yy.parser.parseError(e, t) - }, - setInput: function(e) { - return this._input = e, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this - }, - input: function() { - var e = this._input[0]; - this.yytext += e, this.yyleng++, this.offset++, this.match += e, this.matched += e; - var t = e.match(/(?:\r\n?|\n).*/g); - return t ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), e - }, - unput: function(e) { - var t = e.length, - n = e.split(/(?:\r\n?|\n)/g); - this._input = e + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - t - 1), this.offset -= t; - var i = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1); - var r = this.yylloc.range; - return this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: n ? (n.length === i.length ? this.yylloc.first_column : 0) + i[i.length - n.length].length - n[0].length : this.yylloc.first_column - t - }, this.options.ranges && (this.yylloc.range = [r[0], r[0] + this.yyleng - t]), this.yyleng = this.yytext.length, this - }, - more: function() { - return this._more = !0, this - }, - reject: function() { - return this.options.backtrack_lexer ? (this._backtrack = !0, this) : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }) - }, - less: function(e) { - this.unput(this.match.slice(e)) - }, - pastInput: function() { - var e = this.matched.substr(0, this.matched.length - this.match.length); - return(e.length > 20 ? "..." : "") + e.substr(-20).replace(/\n/g, "") - }, - upcomingInput: function() { - var e = this.match; - return e.length < 20 && (e += this._input.substr(0, 20 - e.length)), (e.substr(0, 20) + (e.length > 20 ? "..." : "")).replace(/\n/g, "") - }, - showPosition: function() { - var e = this.pastInput(), - t = new Array(e.length + 1).join("-"); - return e + this.upcomingInput() + "\n" + t + "^" - }, - test_match: function(e, t) { - var n, i, r; - if(this.options.backtrack_lexer && (r = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }, this.options.ranges && (r.yylloc.range = this.yylloc.range.slice(0))), i = e[0].match(/(?:\r\n?|\n).*/g), i && (this.yylineno += i.length), this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: i ? i[i.length - 1].length - i[i.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + e[0].length - }, this.yytext += e[0], this.match += e[0], this.matches = e, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(e[0].length), this.matched += e[0], n = this.performAction.call(this, this.yy, this, t, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), n) return n; - if(this._backtrack) { - for(var o in r) this[o] = r[o]; - return !1 - } - return !1 - }, - next: function() { - if(this.done) return this.EOF; - this._input || (this.done = !0); - var e, t, n, i; - this._more || (this.yytext = "", this.match = ""); - for(var r = this._currentRules(), o = 0; o < r.length; o++) - if(n = this._input.match(this.rules[r[o]]), n && (!t || n[0].length > t[0].length)) { - if(t = n, i = o, this.options.backtrack_lexer) { - if(e = this.test_match(n, r[o]), e !== !1) return e; - if(this._backtrack) { - t = !1; - continue - } - return !1 - } - if(!this.options.flex) break - } - return t ? (e = this.test_match(t, r[i]), e !== !1 ? e : !1) : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }) - }, - lex: function() { - var e = this.next(); - return e ? e : this.lex() - }, - begin: function(e) { - this.conditionStack.push(e) - }, - popState: function() { - var e = this.conditionStack.length - 1; - return e > 0 ? this.conditionStack.pop() : this.conditionStack[0] - }, - _currentRules: function() { - return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules - }, - topState: function(e) { - return e = this.conditionStack.length - 1 - Math.abs(e || 0), e >= 0 ? this.conditionStack[e] : "INITIAL" - }, - pushState: function(e) { - this.begin(e) - }, - stateStackSize: function() { - return this.conditionStack.length - }, - options: { - "case-insensitive": !0 - }, - performAction: function(e, t, n) { - switch(n) { - case 0: - return 8; - case 1: - break; - case 2: - break; - case 3: - return 9; - case 4: - return 20; - case 5: - return 21; - case 6: - return 17; - case 7: - return 15; - case 8: - return 13; - case 9: - return 19; - case 10: - return 23; - case 11: - return 27; - case 12: - return 26; - case 13: - return 29; - case 14: - return 28; - case 15: - return 30; - case 16: - return 5; - case 17: - return "INVALID" - } - }, - rules: [/^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:participant\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:title\b)/i, /^(?:,)/i, /^(?:[^\->:\n,]+)/i, /^(?:--)/i, /^(?:-)/i, /^(?:>>)/i, /^(?:>)/i, /^(?:[^#\n]+)/i, /^(?:$)/i, /^(?:.)/i], - conditions: { - INITIAL: { - rules: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], - inclusive: !0 - } - } - }; - return e - }(); - return n.lexer = i, t.prototype = n, n.Parser = t, new t - }(); - "undefined" != typeof require && "undefined" != typeof exports && (exports.parser = n, exports.Parser = n.Parser, exports.parse = function() { - return n.parse.apply(n, arguments) - }, exports.main = function(e) { - e[1] || (console.log("Usage: " + e[0] + " FILE"), process.exit(1)); - var t = require("fs").readFileSync(require("path").normalize(e[1]), "utf8"); - return exports.parser.parse(t) - }, "undefined" != typeof module && require.main === module && exports.main(process.argv.slice(1))), t.prototype = new Error, e.ParseError = t, n.parseError = function(e, n) { - throw new t(e, n) - }, e.parse = function(t) { - return n.yy = new e, n.parse(t) - }, this.Diagram = e - }.call(this), "undefined" != typeof jQuery && function(e) { - e.fn.sequenceDiagram = function(t) { - return this.each(function() { - var n = e(this), - i = Diagram.parse(n.text()); - n.html(""), i.drawSVG(this, t) - }) - } - }(jQuery), Raphael.registerFont({ - w: 209, - face: { - "font-family": "daniel", - "font-weight": 700, - "font-stretch": "normal", - "units-per-em": "360", - "panose-1": "2 11 8 0 0 0 0 0 0 0", - ascent: "288", - descent: "-72", - "x-height": "7", - bbox: "-92.0373 -310.134 632 184.967", - "underline-thickness": "3.51562", - "underline-position": "-21.6211", - "unicode-range": "U+0009-U+F002" - }, - glyphs: { - " ": { - w: 179 - }, - " ": { - w: 179 - }, - "!": { - d: "66,-306v9,3,18,11,19,24v-18,73,-20,111,-37,194v0,10,2,34,-12,34v-12,0,-18,-9,-18,-28v0,-85,23,-136,38,-214v1,-7,4,-10,10,-10xm25,-30v15,-1,28,34,5,35v-11,-1,-38,-36,-5,-35", - w: 115 - }, - '"': { - d: "91,-214v-32,3,-25,-40,-20,-68v3,-16,7,-25,12,-27v35,13,14,56,8,95xm8,-231v4,-31,1,-40,18,-75v37,7,11,51,11,79v-3,3,-4,8,-5,13v-17,4,-16,-10,-24,-17", - w: 117 - }, - "#": { - d: "271,-64v-30,26,-96,-7,-102,51v-6,2,-13,2,-24,-2v-2,-11,10,-21,2,-28v-14,5,-48,0,-48,22v0,23,-11,14,-29,10v-7,-6,6,-19,-1,-24r-32,4v-19,-8,-15,-24,5,-28r33,-6v4,0,24,-23,11,-27v-26,0,-63,14,-74,-10v3,-1,9,-17,16,-10v15,-8,81,4,89,-30v8,-14,16,-34,24,-38v23,9,24,38,5,49v37,24,55,-38,72,-43v19,10,20,23,-1,45v2,8,23,1,29,4v3,3,6,6,10,11v-14,13,-20,12,-45,12v-17,0,-16,17,-19,29v18,-7,49,3,67,-2v4,0,8,4,12,11xm161,-104v-30,-1,-44,10,-44,37v14,1,24,0,40,-5v0,-1,3,-10,8,-26v0,-4,-1,-6,-4,-6", - w: 285 - }, - $: { - d: "164,-257v29,4,1,42,-3,50v5,5,38,13,41,24v8,4,6,15,-2,21v-18,3,-36,-17,-49,-17v-17,1,-31,40,-28,48v5,4,8,8,9,10v13,1,35,37,28,44v-10,21,-36,20,-65,28v-10,10,-12,40,-17,51v-9,-3,-28,1,-18,-17v0,-13,5,-24,-1,-35v-18,1,-59,-10,-42,-29v21,0,56,16,55,-16v5,-4,9,-18,9,-26v-14,-15,-55,-41,-53,-65v2,-33,56,-19,98,-26v10,-14,31,-43,38,-45xm93,-152v11,-10,15,-15,14,-29v-17,-3,-37,1,-43,6v10,12,20,19,29,23xm111,-103v-8,1,-11,12,-10,22v10,0,28,2,27,-8v0,-4,-13,-15,-17,-14", - w: 225 - }, - "%": { - d: "181,-96v24,-7,67,-13,104,1v14,18,21,19,22,44v-13,43,-99,61,-146,36v-9,-9,-22,-11,-32,-29v0,-27,24,-53,52,-52xm139,-185v-9,68,-138,73,-131,-5v0,-3,3,-9,9,-17v13,1,27,1,17,-16v5,-39,63,0,93,-6v36,1,80,-9,102,11v15,32,12,32,-8,56v-16,21,-103,78,-152,125r-14,28v-23,11,-25,-7,-29,-20v34,-71,133,-98,171,-162v-13,-12,-52,-5,-61,1v0,1,1,3,3,5xm38,-190v0,34,55,29,70,8v0,-14,-20,-11,-32,-14v-14,-3,-24,-9,-40,-10v1,0,5,11,2,16xm172,-53v12,27,90,18,102,-5v-18,-7,-32,-10,-40,-10v-29,3,-57,-4,-62,15", - w: 308 - }, - "&": { - d: "145,-82v17,-8,47,-15,71,-26v13,2,25,12,9,23v-23,7,-40,16,-53,27r0,6v13,8,30,21,36,38v0,8,-4,12,-11,12v-19,0,-43,-39,-59,-44v-30,12,-65,29,-97,32v-32,3,-45,-41,-23,-63v21,-20,52,-26,70,-48v-4,-31,-12,-47,9,-73v13,-16,20,-29,23,-39v15,-15,32,-22,51,-22v30,9,62,64,32,96v-2,3,-47,42,-69,48v-15,8,-11,9,0,22v6,7,10,11,11,11xm114,-138v25,-13,62,-38,74,-62v0,-9,-10,-31,-20,-29v-28,7,-60,42,-60,75v0,10,2,15,6,16xm99,-91v-18,10,-54,18,-59,45v26,5,61,-12,77,-22v-1,-5,-13,-23,-18,-23", - w: 253 - }, - "'": { - d: "36,-182v-36,7,-34,-61,-17,-80v15,1,21,19,21,20r-1,-1v0,0,-1,12,-5,35v1,5,3,17,2,26", - w: 63 - }, - "(": { - d: "130,-306v13,2,23,43,-1,43v-49,43,-77,77,-90,148v5,49,27,67,64,101v4,14,5,6,2,19r-15,0v-35,-17,-79,-58,-79,-120v0,-58,66,-176,119,-191", - w: 120 - }, - ")": { - d: "108,-138v-2,73,-48,120,-98,153v-17,-5,-16,-20,-6,-31v52,-64,73,-62,74,-135v1,-42,-40,-98,-58,-128v0,-5,-1,-12,-2,-22v18,-18,25,0,42,27v25,39,50,66,48,136", - w: 120 - }, - "*": { - d: "121,-271v15,-5,36,-8,40,9v-5,10,-31,19,-47,31v0,11,34,43,14,53v-18,8,-24,-24,-34,-20v-4,10,-4,19,-12,41v-25,7,-15,-30,-17,-47v-13,-1,-17,9,-46,30r-10,0v-20,-32,37,-43,54,-64v-10,-11,-36,-33,-16,-51v3,0,14,8,33,24v8,-10,26,-39,32,-42v14,7,15,23,9,36", - w: 177 - }, - "+": { - d: "163,-64v-7,22,-65,2,-77,21v-2,10,-6,21,-11,35v-20,4,-21,-12,-19,-29v3,-23,-44,6,-39,-27v-8,-22,36,-8,49,-18v8,-13,6,-36,24,-40v19,-4,14,32,11,39v18,3,19,2,54,8v2,1,5,5,8,11", - w: 170 - }, - ",": { - d: "25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102", - w: 97 - }, - "-": { - d: "57,-94v19,4,55,-5,54,17v-15,23,-54,20,-91,15v-4,2,-13,-10,-11,-16v-1,-22,28,-15,48,-16", - w: 124 - }, - ".": { - d: "40,-48v21,20,21,44,-4,44v-33,0,-26,-24,-10,-44r14,0", - w: 67 - }, - "/": { - d: "21,20v-22,-45,21,-95,41,-126v38,-57,115,-158,193,-201v2,0,4,3,7,11v11,29,-15,34,-25,55v-81,56,-189,208,-197,261r-19,0", - w: 275 - }, - 0: { - d: "78,-237v70,-47,269,-41,270,59v0,34,-11,53,-29,76v-13,35,-30,32,-85,64v-6,2,-10,6,-7,8v-73,14,-98,38,-173,1v-7,-13,-52,-48,-46,-88v9,-57,27,-75,70,-120xm123,-38v100,0,202,-46,195,-153v-32,-55,-144,-73,-211,-35v-16,34,-68,54,-53,108v6,25,1,22,-3,39v6,24,41,41,72,41", - w: 353 - }, - 1: { - d: "39,-208v0,-14,6,-59,29,-39v3,4,6,13,10,24r-22,128r8,87v-4,6,-9,3,-16,2v-44,-38,-9,-137,-9,-202", - w: 93 - }, - 2: { - d: "88,-35v47,-10,119,-24,168,-9v0,12,-23,13,-35,16v1,1,3,1,5,1v-74,8,-118,23,-194,23v-14,0,-20,-13,-21,-28v55,-40,83,-61,123,-104v26,-13,65,-67,71,-102v-1,-9,-11,-16,-22,-16v-20,-1,-120,29,-156,49v-10,-2,-30,-20,-10,-28v50,-21,111,-51,178,-48v25,10,44,22,36,39v12,30,-19,64,-34,83v-39,48,-37,39,-115,109v0,5,-3,8,-8,11v4,3,8,4,14,4", - w: 265 - }, - 3: { - d: "188,-282v34,-10,74,25,47,51v-19,32,-55,50,-92,70v28,14,116,25,108,70v8,14,-49,40,-63,48v-29,9,-130,22,-168,42v-6,-5,-19,-7,-12,-22v56,-36,175,-21,210,-76v-9,-20,-88,-42,-97,-33v-20,-1,-41,2,-56,-7r5,-21v56,-25,103,-36,137,-78v1,-1,2,-5,4,-11v-15,-14,-56,7,-79,0v-10,9,-73,22,-92,31v-11,-4,-28,-23,-13,-30v50,-22,96,-26,154,-37v0,-1,8,3,7,3", - w: 260 - }, - 4: { - d: "79,-249v-7,17,-29,75,-33,96v0,6,3,8,8,8v43,-2,111,6,141,-6v17,-47,20,-100,63,-148v9,4,16,7,21,10v-17,31,-44,95,-51,141v7,4,24,-4,23,10v-1,16,-29,12,-31,23v-10,22,-9,69,-7,103v-3,2,-7,5,-10,9v-47,-11,-23,-74,-16,-114v0,-4,-2,-6,-7,-6v-65,2,-89,13,-162,4v-22,-22,-2,-53,5,-76v16,-15,17,-57,35,-70v6,-1,21,11,21,16", - w: 267 - }, - 5: { - d: "185,-272v30,7,45,-8,53,18v1,16,-17,18,-34,14v0,0,-95,-11,-129,1v-6,9,-24,33,-29,54v76,10,171,5,214,47v11,11,22,30,5,52v-14,12,-30,14,-34,27v-26,11,-141,63,-157,60v-16,-2,-25,-19,-4,-27v48,-18,128,-39,170,-86v4,-14,-65,-41,-85,-41r-92,0v-10,-4,-66,-1,-57,-23v0,-23,23,-51,35,-83v11,-28,133,-10,144,-13", - w: 284 - }, - 6: { - d: "70,-64v9,-51,63,-74,123,-71v43,2,109,3,111,41r-25,47v0,1,1,2,2,3v-5,0,-39,10,-41,20v-15,3,-22,4,-22,11v-39,1,-77,20,-119,13v-42,-7,-35,-9,-77,-46v-56,-118,94,-201,176,-229v7,0,21,8,20,15v-2,17,-23,15,-43,24v-69,31,-119,72,-134,145v-5,25,36,68,78,64v59,-6,128,-18,153,-61v-7,-14,-13,-9,-32,-21v-67,-15,-118,-5,-150,43r0,12v-13,4,-17,-3,-20,-10", - w: 310 - }, - 7: { - d: "37,-228v33,-14,173,-17,181,-19v28,-1,24,31,9,45v-17,15,-45,49,-59,69v-17,26,-55,67,-61,113v-10,13,-9,14,-14,20v-33,-13,-20,-25,-11,-53v16,-48,73,-115,109,-156v2,-7,5,-14,-10,-12v-26,4,-54,6,-76,13v-23,-5,-83,31,-94,-9v2,-8,18,-19,26,-11", - w: 245 - }, - 8: { - d: "57,-236v40,-50,166,-51,213,-10v22,28,10,63,-22,78r-35,17v8,5,54,24,53,44v-5,14,-4,33,-18,42v-13,13,-35,18,-44,34v-60,27,-190,49,-194,-42v7,-41,17,-54,59,-70r0,-4v-32,-9,-73,-62,-26,-85v4,0,8,-2,14,-4xm142,-160v24,-2,160,-31,99,-72v-28,-18,-108,-33,-146,-5v-16,12,-28,30,-33,59v24,12,37,20,80,18xm41,-62v30,65,189,6,199,-37v3,-14,-60,-30,-74,-30v-70,0,-118,10,-125,67", - w: 290 - }, - 9: { - d: "11,-192v15,-49,119,-61,161,-23v16,15,27,55,11,79v-20,62,-51,79,-96,118v-10,4,-45,27,-50,6v9,-15,66,-52,98,-99v-7,-7,-8,-3,-25,0v-49,-11,-96,-25,-99,-81xm145,-131v7,-5,13,-34,13,-41v-2,-51,-104,-38,-114,-6v-2,10,37,35,46,35v23,1,43,-1,55,12", - w: 198 - }, - ":": { - d: "39,-125v15,-8,40,-1,40,15v0,15,-6,22,-19,22v-13,0,-29,-21,-21,-37xm66,-17v-8,27,-51,19,-46,-8v-1,-6,8,-22,14,-20v29,0,30,6,32,28", - w: 95 - }, - ";": { - d: "56,-93v2,-30,37,-22,40,2v0,2,-1,7,-3,15v-13,8,-15,6,-27,4xm64,-44v11,-11,30,-4,32,14v-21,39,-63,71,-92,85v-5,0,-11,-2,-18,-8v11,-23,36,-36,50,-61v11,-7,19,-20,28,-30", - w: 107 - }, - "<": { - d: "166,-202v12,0,29,15,24,29v0,4,-119,64,-120,73v15,21,89,64,91,86v2,29,-18,12,-30,15v-27,-29,-59,-54,-95,-75v-18,-10,-25,-13,-24,-41", - w: 176 - }, - "=": { - d: "125,-121v18,7,55,-9,69,14v0,17,-45,26,-135,26v-18,0,-27,-7,-27,-21v-1,-37,60,-5,93,-19xm138,-71v20,0,48,-1,50,16v-13,24,-86,32,-131,29v-29,-2,-43,-10,-43,-24v-7,-23,36,-14,39,-17v27,6,57,-4,85,-4", - w: 196 - }, - ">": { - d: "4,-14v20,-48,77,-59,118,-94v-16,-19,-58,-52,-81,-75v-11,-7,-15,-38,-1,-40v33,16,83,71,121,105v26,23,-6,35,-41,53v-29,16,-56,28,-73,54v-21,15,-16,20,-34,15v-3,0,-9,-16,-9,-18", - w: 174 - }, - "?": { - d: "105,-291v57,-13,107,-4,107,39v0,67,-136,85,-155,137v-1,6,10,23,-4,23v-23,1,-33,-35,-23,-57v31,-41,124,-60,149,-103v-8,-21,-72,-5,-88,-1v-23,6,-59,39,-71,8v0,0,-1,0,1,-17v10,-4,45,-20,84,-29xm80,-25v-6,4,-8,39,-24,22v-24,3,-22,-21,-13,-35v17,-7,29,5,37,13", - w: 216 - }, - "@": { - d: "218,-207v23,8,42,14,47,37v44,68,-27,137,-87,85r1,0v0,2,-59,19,-61,17v-35,0,-42,-47,-17,-68r0,-4v-19,-1,-45,37,-49,40v-37,76,58,72,121,62v11,-2,34,-13,36,3v-14,31,-69,31,-114,33v-51,2,-99,-41,-80,-92v2,-30,22,-40,42,-63v35,-20,91,-53,161,-50xm217,-101v23,0,35,-19,35,-41v0,-43,-75,-41,-102,-19v36,3,55,16,62,41v-6,5,-6,19,5,19xm127,-110v8,5,51,-15,28,-16v-4,0,-25,4,-28,16", - w: 291 - }, - A: { - d: "97,-81v-23,-10,-39,38,-52,60v-8,6,-8,6,-22,18v-22,-7,-23,-37,-4,-49v7,-8,11,-15,15,-23r-1,1v-14,-26,23,-29,31,-40v1,-1,15,-29,26,-36v17,-31,39,-58,54,-92v16,-20,20,-51,41,-66v29,5,34,62,45,92v9,64,21,103,49,155v-3,25,-44,11,-54,0v-34,-12,-97,-29,-128,-20xm107,-118v20,6,80,10,111,17v6,-7,-4,-15,-7,-24v-11,-28,-9,-92,-30,-117v-9,9,-19,44,-34,55v-9,23,-27,40,-40,69", - w: 294 - }, - B: { - d: "256,-179v41,10,115,34,91,91v-6,3,-14,12,-19,20v-37,19,-50,34,-63,25v-9,10,-12,11,-34,13r3,-3v-4,-4,-12,-4,-18,0v0,0,2,2,5,4v-21,14,-26,6,-44,15v-4,0,-7,-2,-8,-5v-6,11,-20,-5,-18,11v-36,4,-91,35,-114,4v-7,-62,-10,-138,4,-199v-1,-19,-37,2,-37,-27v0,-8,2,-13,6,-15v68,-31,231,-92,311,-39v8,12,12,20,12,25v-8,42,-32,49,-77,80xm79,-160v72,-17,135,-39,184,-70v20,-13,31,-23,31,-27v1,-6,-30,-13,-38,-12v-54,0,-116,13,-186,41v11,21,1,48,9,68xm262,-43v0,-4,3,-6,-4,-5v0,1,1,2,4,5xm211,-140v-34,7,-94,24,-139,15v-6,20,-4,56,-4,82v0,29,43,1,56,2v48,-11,108,-25,154,-48v20,-10,32,-17,32,-25v0,-18,-33,-26,-99,-26xm195,-20v6,1,6,-2,5,-7v-3,2,-7,2,-5,7", - w: 364 - }, - C: { - d: "51,-114v-12,75,96,76,166,71r145,-10v9,2,9,5,9,18v-37,18,-85,28,-109,22v-18,10,-47,10,-71,10v-29,0,-68,1,-105,-11v-6,-1,-10,-3,-10,-8v-33,-13,-48,-33,-66,-59v-19,-114,146,-150,224,-177v35,0,88,-31,99,7v-1,29,-49,14,-76,28v-55,8,-115,35,-175,71v-13,8,-23,21,-31,38", - w: 376 - }, - D: { - d: "312,-78v-2,1,-3,7,-10,5v6,-3,10,-4,10,-5xm4,-252v2,-27,83,-38,106,-39v130,-7,267,1,291,109v0,0,-2,8,-3,25v-5,9,-4,28,-23,34v-4,4,-2,5,-7,0v-3,3,-15,7,-5,10v0,0,-10,14,-13,2v-11,1,-8,5,-20,14v1,2,7,3,9,1v-4,13,-22,13,-11,4v0,-3,1,-6,-3,-5v-40,29,-103,38,-141,65v10,6,22,-7,34,-3v-41,20,-127,44,-171,46v-21,1,-47,-33,-11,-39v15,-2,43,-6,56,-11v-16,-101,-5,-130,9,-207v2,0,4,-1,6,-3v-16,-17,-91,38,-103,-3xm297,-69v-7,3,-17,8,-25,7v1,1,3,2,5,2v-4,2,-11,5,-23,9v4,-11,30,-21,43,-18xm240,-51v10,0,12,2,0,6r0,-6xm220,-36v-1,-3,4,-6,6,-3v0,1,-2,1,-6,3xm125,-48v16,6,137,-46,155,-53v29,-18,101,-44,82,-93v-21,-53,-84,-61,-168,-67v-20,7,-50,3,-77,8v33,54,-12,132,8,205xm159,-22v-4,-1,-15,-5,-15,2v7,-1,12,-2,15,-2", - w: 381 - }, - E: { - d: "45,-219v-19,-36,34,-41,63,-36v44,-10,133,-8,194,-15v3,2,38,11,52,15v-73,19,-171,21,-246,38v-9,11,-16,32,-20,61v35,11,133,-6,183,3v1,6,2,7,3,14v-46,24,-118,16,-193,27v-15,13,-22,52,-22,66v60,1,121,-20,188,-20v22,10,53,-7,74,5v16,29,-23,26,-43,32v-73,4,-139,13,-216,27r-52,-10v-4,-22,23,-69,26,-98v-3,0,-10,-15,-12,-24v20,-12,34,-23,35,-67v2,-1,5,-5,5,-7v0,-4,-14,-11,-19,-11", - w: 353 - }, - F: { - d: "270,-258v13,2,59,6,48,34v-78,-3,-143,1,-212,22v-10,16,-21,43,-24,69r145,-9v8,3,29,-3,16,21v-14,-1,-59,13,-60,7v-12,13,-67,18,-108,21v-2,1,-4,3,-7,6v-2,23,-8,43,-7,69v1,28,-30,11,-40,5r10,-80r-26,-14v5,-10,10,-33,28,-25v21,-3,15,-46,26,-59v-1,-3,-32,-13,-28,-24v2,-22,45,-16,59,-30v47,4,99,-14,151,-9v5,-3,25,-3,29,-4", - w: 236 - }, - G: { - d: "311,-168v53,0,94,57,74,110v-31,37,-71,34,-136,52v-13,-7,-41,10,-57,7v-73,-1,-122,-17,-162,-59v-49,-51,-24,-80,5,-130v35,-61,138,-93,214,-106v16,4,42,-1,40,21v-5,40,-39,2,-73,21v-76,19,-162,65,-177,142v28,103,237,76,312,29v2,-3,3,-7,3,-13v-10,-35,-37,-43,-87,-45v-16,-13,-53,-9,-78,1v-4,-3,-5,-7,-5,-11v17,-29,73,-17,108,-24v12,4,18,5,19,5", - w: 391 - }, - H: { - d: "300,-268v18,12,19,32,4,51v-35,44,-34,140,-46,217v-1,5,-5,13,-11,12v-6,1,-19,-14,-18,-27r7,-106v-28,7,-76,22,-116,14v-18,2,-36,6,-55,3v-43,-8,-14,53,-33,75v-29,1,-26,-67,-21,-97v5,-31,28,-73,43,-98v2,2,7,3,14,3v13,33,-11,48,-13,78v61,4,118,2,176,2v8,0,13,-6,15,-20v4,-47,21,-87,54,-107", - w: 288 - }, - I: { - d: "63,-266v34,10,-4,105,-8,128r-24,126v-2,2,-3,1,-9,6v-12,-10,-12,-15,-12,-47v0,-93,9,-156,28,-188v10,-17,19,-25,25,-25", - w: 79 - }, - J: { - d: "235,-291v26,11,31,104,31,142v0,37,-2,95,-32,126v-33,34,-121,26,-167,1v-18,-11,-54,-29,-59,-59v0,-3,5,-15,16,-14v31,36,90,57,162,51v63,-30,56,-148,32,-226v-1,-16,11,-13,17,-21", - w: 282 - }, - K: { - d: "212,-219v17,-5,80,-60,80,-19v0,9,-2,14,-5,16r-132,78v-34,23,-54,32,-21,50v39,21,74,23,124,41v5,2,7,5,7,9v-4,24,-55,15,-79,8v-67,-19,-98,-36,-116,-83v9,-24,38,-35,66,-61v7,-4,49,-30,76,-39xm47,-194v11,-20,11,-45,31,-55v2,2,4,3,6,0v29,39,-21,96,-18,128v-17,24,-15,62,-29,113v-4,3,-10,7,-19,11v-12,-13,-10,-28,-8,-53v3,-31,17,-79,37,-144", - w: 270 - }, - L: { - d: "84,-43v58,0,179,-27,242,-4v3,17,-29,24,-40,26v-85,-4,-202,46,-268,3v-24,-16,-2,-33,-4,-57v26,-76,38,-108,86,-191v14,-7,26,-50,45,-32v6,22,5,31,-12,46v-20,39,-50,82,-67,142v-7,6,-19,46,-19,54v0,9,12,13,37,13", - w: 331 - }, - M: { - d: "174,-236v-1,52,-11,92,-7,143v10,5,15,-12,22,-18v42,-55,90,-130,136,-174r15,-18v42,2,32,53,11,80v-12,58,-54,143,-34,210v0,3,-3,12,-9,10v-31,-5,-32,-57,-27,-92v4,-27,12,-58,25,-93v-5,-10,5,-19,6,-30v-46,44,-66,110,-129,172v-11,10,-18,15,-22,15v-34,6,-28,-103,-28,-152v-28,22,-65,119,-96,170v-9,15,-34,3,-31,-19v30,-64,91,-177,139,-229v12,-1,29,13,29,25", - w: 343 - }, - N: { - d: "248,-20v-3,17,-37,18,-43,3v-24,-35,-53,-145,-80,-203v-32,40,-55,120,-92,174v-13,3,-26,-13,-27,-22r87,-171v4,-13,20,-57,42,-32v42,48,46,139,82,198v29,-45,46,-88,65,-153v12,-19,23,-42,38,-60v27,-1,14,18,4,44v-6,46,-32,68,-37,121v-15,29,-33,69,-39,101", - w: 307 - }, - O: { - d: "240,-268v85,1,163,29,150,125v13,7,-12,18,-5,26v-23,63,-133,112,-228,124v-80,-16,-171,-56,-148,-153v11,-47,20,-43,53,-83v17,-9,39,-22,73,-29v45,-10,81,-10,105,-10xm363,-156v16,-51,-62,-85,-111,-79v-25,-11,-50,8,-81,0v-15,10,-70,16,-85,31v6,20,-27,24,-39,45v-42,75,40,128,115,128v56,0,209,-71,201,-125", - w: 383 - }, - P: { - d: "70,-225v-7,-12,-36,16,-49,19v-4,0,-9,-5,-14,-17v21,-47,114,-55,172,-59v41,-3,132,33,99,87v-21,34,-72,59,-144,80v-2,16,-79,3,-74,46v3,25,-5,47,-10,68v-22,-1,-23,-29,-22,-56v2,-25,-20,-32,-8,-50v21,-5,10,-35,25,-57v6,-28,14,-48,25,-61xm71,-229v47,14,-2,50,-1,99v41,-3,113,-37,173,-76v5,-9,8,-14,8,-15v-28,-47,-125,-29,-180,-8", - w: 252 - }, - Q: { - d: "374,-217v20,59,-11,127,-48,156r30,38v-1,6,-8,16,-14,9v-3,0,-19,-9,-47,-26v-72,35,-173,75,-236,12v-70,-40,-67,-213,26,-217r8,5v24,-20,72,-48,112,-38v21,-4,22,-1,50,-2v66,-2,94,20,119,63xm296,-88v13,5,61,-49,63,-84v4,-62,-54,-78,-119,-76v-14,-6,-49,5,-71,3v-42,16,-89,41,-93,94v-9,11,1,25,-7,38v-12,-19,-7,-67,-1,-88v-56,30,-37,137,19,155v27,17,92,19,119,0v12,-2,29,-9,52,-20v2,-2,3,-3,3,-6v-11,-12,-46,-27,-54,-56v0,-13,3,-19,9,-19v18,1,60,52,80,59", - w: 379 - }, - R: { - d: "100,-275v96,-23,196,-10,208,78v-3,18,-17,52,-49,62v-14,20,-54,23,-79,40v-2,0,-14,2,-36,6v-40,8,-30,14,-3,33v37,27,52,30,118,55v16,6,31,23,12,27v-58,-2,-104,-29,-143,-61v-14,-3,-16,-15,-39,-27v-23,-19,-28,-12,-15,-38v63,-19,111,-15,163,-53v27,-20,43,-36,43,-49v0,-64,-120,-62,-173,-38v-9,4,-38,9,-40,18v-10,32,-16,70,-13,116v-10,21,-8,47,-6,75v2,31,-9,29,-27,22v-9,-55,5,-140,15,-190v-8,-6,-24,10,-24,-11v0,-34,16,-34,42,-55v2,-1,17,-4,46,-10", - w: 297 - }, - S: { - d: "13,-3v-7,-3,-22,-18,-5,-22v68,-15,119,-32,154,-45v51,-19,39,-34,3,-53v-46,-25,-82,-30,-121,-64v-33,-29,-50,-35,-25,-58v37,-20,119,-29,181,-29v29,0,44,6,44,18v-9,26,-62,6,-104,14v-17,2,-72,6,-92,16v37,53,132,58,180,111v8,9,11,20,11,30v-4,17,-23,35,-42,34v-21,16,-17,1,-49,17v-14,7,-41,9,-56,20v-25,-3,-49,10,-79,11", - w: 234 - }, - T: { - d: "141,-3v-36,-6,1,-49,-3,-79v10,-19,6,-35,15,-64r26,-85v-51,-9,-100,10,-141,14v-16,2,-30,-26,-11,-32v26,-8,143,-8,179,-19r12,6v67,-2,142,-1,200,-1v8,0,14,3,19,10v-18,16,-74,3,-103,14v-48,-4,-60,4,-113,7v-42,22,-36,130,-58,187v1,12,-9,44,-22,42", - w: 277 - }, - U: { - d: "365,-262v13,56,-22,104,-36,141v-19,22,-30,38,-57,56v-4,18,-60,35,-78,50v-53,28,-142,0,-161,-34v-31,-56,-37,-108,-11,-164v17,-33,29,-50,48,-29v-2,2,-3,7,-4,13v-44,36,-38,149,7,174v30,26,55,19,102,4v56,-17,66,-34,120,-76v12,-24,56,-68,46,-122r0,-16v0,1,-1,3,-1,6v4,-13,11,-10,25,-3", - w: 368 - }, - V: { - d: "246,-258v21,-22,31,-26,44,-8v1,1,-12,22,-28,35v-15,25,-41,38,-56,69v-13,15,-20,31,-28,57v-15,13,-11,29,-27,72v3,21,-5,24,-27,27v-33,-45,-54,-118,-84,-167v-5,-26,-18,-50,-25,-76v-3,-12,24,-8,29,-5v8,13,18,52,26,70r52,115v9,-2,4,-9,10,-21r25,-47v25,-44,46,-76,89,-121", - w: 234 - }, - W: { - d: "31,-213v16,46,17,106,41,151v31,-35,49,-89,76,-127v30,-15,39,27,52,56v10,22,21,48,35,67v2,0,4,-1,5,-3v16,-28,50,-76,79,-121v14,-21,40,-63,64,-83r5,8v-30,58,-76,110,-97,173v-18,28,-25,37,-33,63v-11,1,-16,25,-30,15v-21,-31,-44,-89,-62,-131v0,-2,-1,-3,-5,-5v-17,11,-16,36,-31,50v-20,33,-20,84,-68,94v-24,-19,-23,-81,-39,-111v-1,-15,-29,-94,-10,-108v9,2,12,5,18,12", - w: 331 - }, - X: { - d: "143,-183v43,-25,69,-36,126,-62v22,-10,86,-10,56,21v-51,3,-158,61,-154,64v10,15,41,30,50,52v27,17,46,60,70,82v9,14,-6,30,-24,20v-35,-43,-75,-100,-116,-132v-48,13,-100,47,-118,94v-1,49,-26,34,-27,4v-1,-26,13,-27,17,-48v22,-27,68,-55,90,-77v-9,-12,-60,-39,-79,-57v-6,-10,-6,-25,12,-25", - w: 312 - }, - Y: { - d: "216,-240v19,-14,42,10,22,26v-54,66,-121,109,-156,197v-8,21,-11,15,-30,4v3,-37,27,-61,33,-76v12,-12,15,-19,32,-42v-8,-6,-40,5,-45,5v-48,-6,-69,-65,-56,-113v14,0,13,-1,24,7v2,33,12,75,42,73v36,-2,102,-57,134,-81", - w: 189 - }, - Z: { - d: "60,-255v66,12,200,-34,240,21v-13,42,-63,62,-98,89v-19,15,-47,33,-82,55v-25,16,-47,32,-66,47v58,24,129,-6,208,-6v23,0,36,12,13,19v-33,2,-53,5,-86,10v-32,18,-88,15,-135,15v-9,-1,-55,-1,-48,-29v1,-24,30,-24,40,-41v64,-50,151,-86,208,-147v-38,-17,-155,12,-198,-4v0,0,-11,-33,4,-29", - w: 310 - }, - "[": { - d: "72,-258r-15,250v30,4,55,-3,80,-6v7,-1,8,17,9,23v-28,15,-73,23,-121,21v-7,0,-10,-6,-10,-17v0,-60,25,-193,22,-288v0,-16,13,-20,33,-19v9,-3,34,-12,51,-12v16,0,15,16,19,29v-16,7,-48,10,-68,19", - w: 151 - }, - "\\": { - d: "21,38v-20,-21,9,-72,13,-90v44,-78,113,-189,200,-253v2,0,5,4,7,12v11,31,-13,36,-24,58v-74,61,-174,219,-180,273r-16,0", - w: 257 - }, - "]": { - d: "133,-258v-23,-13,-84,6,-85,-32v0,-10,5,-15,14,-15v0,0,30,2,90,7v10,1,15,13,15,36v2,7,-8,59,-13,112r-11,125v-9,48,9,90,-59,71v-20,-4,-39,-1,-59,-4v-5,-10,-25,-12,-14,-30v8,-3,61,-13,78,-8v14,1,8,-7,10,-17v15,-69,21,-166,34,-245", - w: 171 - }, - "^": { - d: "68,-306v20,15,47,36,58,60v-1,4,0,7,-9,7v-26,0,-47,-38,-49,-32v-15,9,-41,50,-54,30v-2,-31,17,-23,33,-51v8,-9,15,-14,21,-14", - w: 135 - }, - _: { - d: "11,15v-8,33,18,45,50,34r205,2r197,-5v11,-5,14,-9,7,-28v-95,-21,-258,-10,-376,-10v-25,0,-72,-3,-83,7", - w: 485 - }, - "`": { - d: "75,-264v16,8,56,14,39,43v-30,-8,-65,-23,-105,-44v-1,-3,-3,-28,5,-25v16,5,44,17,61,26", - w: 129 - }, - a: { - d: "124,-56v10,4,59,41,65,50v1,7,-6,17,-12,17r-60,-30v-22,2,-42,21,-65,19v-33,4,-68,-67,-15,-81v41,-27,96,-39,110,9v0,6,-4,12,-11,16v-33,-25,-67,-5,-88,12v10,16,61,-18,76,-12", - w: 196 - }, - b: { - d: "80,-140v69,1,123,0,134,52v5,26,-71,71,-97,70v-11,11,-88,22,-94,22v-11,-3,-26,-18,-6,-24v19,-5,-2,-19,-1,-35v1,-18,11,-36,-5,-47v-6,-17,-6,-21,14,-32v6,-45,18,-89,28,-124v2,-7,8,-12,17,-15v5,3,10,11,16,28v-12,27,-13,63,-23,96v0,6,6,9,17,9xm87,-107v-40,-9,-31,31,-39,54v8,15,0,25,12,22v30,-8,60,-18,88,-32v39,-18,49,-33,-1,-42v-20,-4,-45,-7,-60,-2", - w: 217 - }, - c: { - d: "128,-123v29,-7,37,29,12,33v-27,-4,-40,6,-79,25v-8,4,-13,11,-16,22v30,32,91,3,134,11v5,13,-8,26,-22,19v-51,25,-139,28,-150,-30v6,-50,69,-82,121,-80", - w: 194 - }, - d: { - d: "224,-201v0,-35,-17,-111,24,-94v7,86,-2,119,0,197v-4,2,-8,21,-18,16v-62,-7,-154,-8,-185,29v6,17,28,26,51,26v16,0,100,-15,132,-18v7,5,-6,20,-10,22v-24,8,-122,42,-163,25v-32,-5,-62,-53,-36,-80v35,-37,118,-46,198,-43v1,-22,7,-49,7,-80", - w: 265 - }, - e: { - d: "4,-57v0,-58,51,-71,110,-74v33,-1,45,16,59,35v1,14,2,39,-7,42v-24,-2,-73,13,-99,11v-2,2,-2,3,-2,3v0,3,12,8,37,15v21,0,69,9,31,22v-9,14,-34,6,-56,6v-27,-5,-73,-28,-73,-60xm123,-102v-22,2,-68,5,-65,26v24,-2,66,5,79,-6v-5,-13,-1,-13,-14,-20", - w: 182 - }, - f: { - d: "6,-59v6,-29,53,-4,53,-43v0,-64,29,-118,84,-150v45,-25,167,-24,155,51v-1,2,-7,6,0,6r-10,2v-45,-58,-165,-39,-186,39v-7,26,-11,42,-9,62v44,8,95,-21,135,-7v-12,25,-39,21,-76,30v-19,5,-18,7,-54,19v-2,8,15,32,17,35v-6,25,-26,26,-40,-5r-15,-24v-41,10,-44,12,-54,-15", - w: 234 - }, - g: { - d: "132,-97v30,27,21,75,30,117v-12,31,-11,66,-36,103v-32,46,-105,83,-167,39v-31,-21,-49,-29,-51,-75v-2,-37,77,-50,121,-57v37,-6,68,-10,95,-11v7,-6,3,-32,4,-46v0,0,-1,1,-1,2v0,-18,-5,-31,-14,-45v-44,5,-79,20,-94,-18v3,-54,73,-54,125,-50v12,7,12,13,4,25v-30,-11,-76,8,-90,20v23,3,50,-16,74,-4xm-34,121v60,53,168,1,159,-86v-47,-7,-93,24,-142,30v-12,7,-45,19,-42,29v0,10,8,19,25,27", - w: 188 - }, - h: { - d: "100,-310v11,-2,10,19,11,20v-11,52,-40,133,-53,189v-6,30,-9,37,-9,47v27,0,113,-34,143,-34v42,0,31,47,39,79v0,4,-5,17,-16,16v4,2,11,3,4,6v-24,-1,-28,-34,-25,-64v-1,-1,-2,-3,-5,-5v-51,0,-110,38,-162,51v-9,1,-15,-15,-16,-23v17,-89,39,-141,71,-264v0,-9,6,-19,18,-18", - w: 251 - }, - i: { - d: "62,-209v7,18,9,23,-5,38v-23,-6,-21,-18,-11,-36v2,0,8,-1,16,-2xm34,-7v-18,-21,-8,-73,-1,-106v7,-10,20,-8,23,6v-1,36,7,72,-2,104v-8,2,-8,0,-20,-4", - w: 80 - }, - j: { - d: "88,-191v5,28,-18,40,-28,21v0,-20,12,-29,28,-21xm82,-99v28,-1,16,35,16,61v0,60,-19,150,-35,202v-12,8,-19,31,-35,16v-32,-7,-43,-19,-56,-44r2,-17v11,4,49,45,61,18v10,-55,27,-107,30,-171v0,-16,0,-59,17,-65", - w: 120 - }, - k: { - d: "59,-66v33,26,114,37,155,62v8,-4,22,-2,19,-17v0,-4,-12,-11,-30,-24v-36,-25,-54,-22,-99,-33v14,-21,119,-13,103,-63r-16,-7r-123,47r25,-93v-3,-15,16,-49,18,-81v1,-15,-21,-14,-25,-3v-31,82,-49,168,-75,257v2,2,22,30,27,10v2,-5,4,-9,9,-11v4,-16,4,-15,12,-44", - w: 236 - }, - l: { - d: "66,-300v21,-6,37,23,30,55v-10,51,-28,135,-28,208v0,11,6,36,-13,37v-29,-5,-30,-48,-25,-83r28,-177v-6,-17,1,-29,8,-40", - w: 102 - }, - m: { - d: "348,-59v-2,21,0,57,3,73v-17,3,-30,-1,-32,-16v-8,-7,-5,-44,-13,-70v-35,3,-82,49,-111,70v-12,8,-40,4,-39,-15r2,-56v-1,-13,4,-28,-8,-29v-35,8,-79,72,-115,87v-6,2,-20,-18,-21,-22v1,-20,14,-105,39,-64r8,15v17,-14,72,-56,93,-54v27,3,49,40,43,80v24,-2,66,-55,124,-53v11,14,28,23,27,54", - w: 368 - }, - n: { - d: "121,-136v37,6,62,54,62,111v0,32,-16,25,-31,17v-18,-30,-5,-45,-22,-85v-37,-13,-71,55,-92,65v-20,-3,-39,-39,-21,-62v2,-12,3,-15,11,-30v12,-8,20,11,29,12", - w: 194 - }, - o: { - d: "108,-139v52,-24,104,18,104,63v0,59,-66,67,-114,83v-52,-2,-115,-50,-80,-105v23,-18,52,-35,90,-41xm45,-60v16,54,125,16,131,-23v-12,-59,-129,-8,-131,23", - w: 217 - }, - p: { - d: "82,14v-10,12,-8,117,-24,142v-15,2,-19,0,-29,-13v0,-76,9,-113,22,-192v14,-27,35,-6,37,13v0,8,-3,21,-7,38v2,2,3,2,4,2v26,-9,116,-33,126,-72v-7,-17,-24,-33,-49,-31v-40,3,-116,13,-116,47v-5,7,-2,17,-16,20v-17,-12,-18,-20,-12,-38v8,-25,74,-61,110,-59v55,-15,113,15,118,70v-15,52,-84,79,-146,83v-5,0,-11,-4,-18,-10", - w: 251 - }, - q: { - d: "144,-147v27,-8,89,-3,97,31v-9,29,-42,-4,-73,1v-32,6,-118,20,-111,49v0,7,13,13,21,13v21,0,78,-24,104,-34v2,0,9,8,22,21v1,1,1,2,1,5v-27,90,-22,70,-43,203v11,15,-15,54,-33,33v-6,-8,-10,-20,-3,-28v1,-72,5,-114,15,-172v-35,3,-35,10,-59,8v-41,-4,-98,-41,-56,-85v33,-34,59,-27,118,-45", - w: 248 - }, - r: { - d: "242,-117v2,22,5,10,-14,23v-73,-7,-166,-23,-174,56v-8,6,-3,20,-8,36v-29,10,-40,-9,-33,-46v6,-31,7,-69,32,-55v58,-37,66,-42,175,-19v3,5,15,4,22,5", - w: 229 - }, - s: { - d: "154,-151v19,1,27,24,13,32v-4,1,-22,4,-53,7v-16,8,-22,-2,-39,9v23,21,89,16,96,62v-13,24,-85,35,-124,42v-9,-3,-18,-3,-27,0v-6,-4,-21,-16,-8,-25v30,-6,83,-13,102,-24v-17,-16,-80,-33,-97,-48v-3,-2,-4,-7,-4,-15v-6,-6,3,-13,15,-18v22,-9,94,-23,126,-22", - w: 188 - }, - t: { - d: "85,-150v10,-41,35,-126,65,-134v4,1,24,19,11,36v-17,22,-29,57,-36,104v26,8,50,-7,73,5v14,0,22,3,22,9v-1,19,-44,18,-57,23v-10,1,-46,0,-54,10v-10,24,-4,67,-20,98v-21,-3,-26,1,-26,-20v0,-9,2,-36,8,-81v-15,-13,-81,9,-77,-27v4,-38,71,6,91,-23", - w: 194 - }, - u: { - d: "207,-136v-1,-2,11,-14,14,-13v6,0,10,7,10,22v-3,40,-23,56,-40,82v-13,19,-62,43,-93,43v-67,-2,-111,-75,-71,-133v26,-3,21,29,19,49v-1,27,26,44,57,42v41,-2,93,-55,104,-92", - w: 242 - }, - v: { - d: "24,-127r52,71v42,-16,70,-54,124,-65v5,4,8,7,8,11v-8,19,-4,8,-33,32v0,1,-1,3,-1,5v-61,45,-93,68,-97,68v-40,-15,-50,-72,-68,-100v6,-14,10,-22,15,-22", - w: 214 - }, - w: { - d: "15,-139v38,-2,27,57,45,86v30,2,67,-66,101,-78v26,6,36,69,60,78v47,-35,51,-54,119,-104v3,0,7,-2,15,-4v19,23,-9,28,-21,49v-33,28,-68,90,-107,109v-10,6,-52,-47,-72,-71v-20,17,-85,74,-97,73v-38,7,-41,-98,-52,-122v0,-1,3,-7,9,-16", - w: 325 - }, - x: { - d: "95,-124v22,-13,78,-32,99,-31v16,0,23,6,23,18v0,22,-17,11,-49,21v-3,0,-45,20,-42,24v0,1,2,4,8,10v20,24,49,41,44,80v-35,3,-27,-9,-60,-44v-40,-43,-37,-26,-79,9v-1,1,-2,3,-3,8v-12,8,-28,10,-27,-11v-6,-8,45,-65,48,-65v-17,-21,-61,-52,-24,-68v9,0,48,37,62,49", - w: 223 - }, - y: { - d: "44,-65v22,33,70,4,99,-8v5,-4,28,-15,41,-31r17,0v25,47,-26,70,-40,114v-5,4,-9,8,-10,21v-16,12,-11,33,-27,51v-5,18,-12,43,-23,71v-1,-1,-2,34,-18,29v-12,1,-22,-12,-22,-23v20,-70,24,-65,68,-177v-47,16,-111,8,-116,-39v-11,-13,-7,-62,8,-62v18,0,22,26,23,54", - w: 216 - }, - z: { - d: "189,-43v9,-1,46,-6,41,12v0,7,-5,13,-15,14v-45,6,-148,24,-181,13v0,-3,-5,-8,-14,-15v5,-44,66,-46,90,-85v-15,-18,-84,21,-84,-14v0,-10,5,-17,14,-18v33,-3,79,-13,109,-3v4,-2,14,11,12,15v0,23,-26,51,-78,84v28,10,73,-3,106,-3", - w: 244 - }, - "{": { - d: "94,-303v27,-9,90,-14,79,26v-20,17,-55,-5,-87,13v-4,1,-6,4,-6,8v33,42,31,44,7,85v-6,10,-13,16,-13,13v5,6,17,17,15,31r-33,78v7,35,28,49,57,63r49,0v7,42,-51,41,-86,20v-43,-13,-51,-51,-56,-89v-2,-25,25,-54,27,-71v-3,-4,-46,-5,-41,-21v2,-10,-3,-29,11,-25v2,0,51,-17,52,-38v4,-3,-25,-23,-25,-49v0,-41,8,-30,50,-44", - w: 179 - }, - "|": { - d: "30,-308v26,5,14,50,15,80v5,78,-8,153,-3,225v-2,15,-1,31,-11,36v-8,-3,-25,-22,-25,-32r9,-183v0,-40,0,-78,1,-112v0,-4,9,-15,14,-14", - w: 63 - }, - "}": { - d: "47,-298v34,-17,118,-18,112,36v6,25,-76,98,-69,103v4,16,39,7,44,28v7,34,-34,17,-37,39v8,29,49,83,23,123v-15,23,-43,26,-73,46v-34,8,-43,11,-49,-17v1,-15,30,-15,33,-20v24,-12,70,-27,55,-61v-14,-33,-37,-68,-19,-103v-46,-50,46,-100,60,-141v-10,-16,-68,6,-77,-12", - w: 143 - }, - "~": { - d: "7,-254v2,-6,59,-50,67,-46v11,-1,35,19,46,26v5,0,27,-10,66,-31v21,8,-1,25,-7,38v-27,21,-48,31,-65,31v-24,-11,-37,-39,-65,-9v-7,7,-26,36,-42,11v3,-5,-3,-17,0,-20", - w: 199 - }, - Ä: { - d: "161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm187,-259v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm90,-284v7,3,28,11,28,18v0,9,-9,18,-18,17v-17,0,-25,-24,-10,-35" - }, - Å: { - d: "161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm112,-239v-31,-17,-9,-61,29,-56v12,2,22,3,33,12v24,39,-30,62,-62,44xm119,-262v2,14,41,8,41,-4v0,-4,-8,-6,-24,-9v-10,-2,-17,10,-17,13" - }, - Ç: { - d: "48,-108v-12,70,90,71,159,67r138,-9v9,-1,7,9,7,17v-37,16,-80,27,-103,21v-14,9,-40,3,-67,9v-30,0,-64,1,-100,-10v-6,-1,-10,-4,-10,-8v-32,-12,-46,-31,-63,-56v-16,-61,47,-103,83,-121v82,-42,118,-45,200,-60v21,-4,36,34,11,37v-90,11,-148,31,-225,77v-12,8,-23,20,-30,36xm172,18v29,4,47,14,53,35v-2,7,-14,31,-27,31v-28,7,-55,9,-84,14v-18,-5,-13,-32,7,-32v21,0,55,-5,69,-13v-16,-14,-63,10,-50,-35v9,-10,1,-27,23,-29v7,8,11,16,9,29", - w: 331 - }, - É: { - d: "49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm133,-248v27,-11,48,-32,59,-14v3,11,-79,52,-88,53v-14,1,-16,-11,-12,-21v10,-4,23,-11,41,-18", - w: 252 - }, - Ñ: { - d: "224,-182v1,-17,15,-24,22,-38v20,0,13,10,3,33v-3,36,-25,52,-28,94v-10,24,-30,55,-29,82r-19,7v-32,-8,-36,-70,-58,-111v-2,-23,-7,-27,-19,-54v-28,36,-41,93,-71,133v-9,5,-20,-9,-20,-17r73,-149v9,-24,31,-5,36,7v19,41,31,98,53,139v22,-35,34,-69,50,-118v2,-3,3,-3,7,-8xm203,-257v22,-8,41,-24,65,-26v3,11,-8,9,-7,21v-26,20,-46,31,-59,31v-2,3,-49,-27,-49,-29v-11,0,-32,31,-46,32v-11,-2,-12,-21,-4,-23v4,-6,28,-30,48,-34v17,-4,43,28,52,28", - w: 219 - }, - Ö: { - d: "62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm197,-229v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm101,-254v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35", - w: 273 - }, - Ü: { - d: "281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-29,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm197,-227v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm101,-252v7,3,27,10,27,18v0,8,-9,18,-18,17v-18,-1,-24,-25,-9,-35", - w: 262 - }, - á: { - d: "118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm32,-117v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-13,2,-14,-10,-12,-21", - w: 173 - }, - à: { - d: "118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm99,-137v7,6,56,14,37,40v-28,-7,-62,-21,-100,-41v-2,-3,-2,-26,5,-23v16,4,42,17,58,24", - w: 173 - }, - â: { - d: "118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm147,-97v-27,-6,-39,-26,-60,-37v-21,7,-38,46,-65,23v-2,-5,-3,-10,-4,-14v18,-4,43,-31,61,-42v28,5,40,21,62,36v12,8,18,17,18,25v0,6,-4,9,-12,9", - w: 173 - }, - ä: { - d: "118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-32,5,-66,-64,-15,-77v39,-26,92,-36,104,9v0,6,-3,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm142,-119v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm46,-144v7,3,28,9,27,18v1,8,-9,18,-18,17v-18,-1,-25,-25,-9,-35", - w: 173 - }, - ã: { - d: "118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm114,-136v22,-8,41,-24,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-12,-32,8,-29,32,-51v24,-21,54,20,69,23", - w: 173 - }, - å: { - d: "118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm54,-101v-37,-20,-9,-71,34,-65v13,1,25,3,38,13v27,45,-34,73,-72,52xm61,-128v4,20,48,7,49,-5v0,-5,-9,-7,-28,-10v-12,-2,-21,11,-21,15", - w: 173 - }, - ç: { - d: "108,-118v30,-6,56,21,25,33v-24,-6,-39,5,-75,23v-7,4,-12,12,-15,22v31,28,86,3,128,9v3,28,-29,16,-44,28v-53,15,-106,10,-120,-37v0,-48,62,-70,101,-78xm92,18v23,4,45,12,48,32v-2,6,-12,28,-25,28v-24,6,-50,10,-77,13v-16,-4,-11,-28,7,-29v17,-1,51,-4,63,-12v-14,-15,-57,10,-46,-32v9,-8,0,-25,21,-26v6,6,12,14,9,26", - w: 171 - }, - é: { - d: "108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm76,-169v26,-11,48,-32,59,-14v3,10,-80,53,-89,53v-14,1,-14,-10,-12,-21v15,-7,16,-7,42,-18", - w: 161 - }, - è: { - d: "108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm95,-166v7,6,54,14,37,40v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,18,58,25", - w: 161 - }, - ê: { - d: "108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm145,-129v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-51,34,-56,0v17,-4,44,-32,61,-43v28,5,41,21,63,36v12,8,17,17,17,25v0,6,-3,9,-11,9", - w: 161 - }, - ë: { - d: "108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10r-3,3v0,3,12,7,36,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-67,-27,-71,-58v7,-52,48,-65,105,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm140,-144v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm44,-169v7,3,28,9,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35", - w: 161 - }, - í: { - d: "59,-98v20,4,15,53,10,95v-6,1,-11,2,-19,-4v1,-7,-12,-18,-10,-24v4,-22,-4,-65,19,-67xm50,-139v27,-11,49,-32,59,-14v3,11,-80,53,-89,53v-14,1,-14,-12,-11,-22v15,-7,14,-6,41,-17", - w: 105 - }, - ì: { - d: "57,-98v22,5,13,50,11,95v-7,1,-11,2,-20,-4v1,-7,-12,-18,-10,-24v4,-22,-2,-64,19,-67xm70,-139v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-3,-25,5,-23v15,5,41,17,57,24", - w: 109 - }, - î: { - d: "72,-98v20,5,12,51,10,95v-6,2,-13,1,-20,-4v1,-8,-12,-18,-10,-24v4,-22,-3,-65,20,-67xm134,-94v-26,-7,-39,-25,-60,-37v-7,0,-9,4,-13,10v-14,15,-51,34,-56,-1v18,-4,45,-33,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-4,9,-12,9", - w: 143 - }, - ï: { - d: "55,-97v19,5,15,53,10,95v-17,5,-26,-14,-30,-28v6,-20,-3,-65,20,-67xm110,-118v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm14,-143v6,3,28,8,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35", - w: 107 - }, - ñ: { - d: "115,-129v34,6,59,50,59,105v0,31,-15,24,-30,17v-15,-29,-5,-42,-20,-81v-35,-13,-68,52,-88,61v-20,-4,-38,-36,-19,-59v0,-12,3,-14,10,-28v11,-8,18,11,27,12xm117,-166v22,-7,41,-23,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-5,-12,-8,-16,0,-23v4,-6,28,-29,48,-33v17,-3,43,28,53,28", - w: 171 - }, - ó: { - d: "102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm49,-154v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-14,0,-13,-8,-12,-21", - w: 191 - }, - ò: { - d: "102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm115,-181v14,10,51,13,37,40v-28,-7,-62,-21,-100,-41v-3,-2,-3,-26,5,-23v16,5,42,17,58,24", - w: 191 - }, - ô: { - d: "102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm110,-177v-22,6,-38,45,-65,22v-2,-4,-3,-9,-4,-13v18,-4,43,-32,61,-43v27,6,40,21,62,36v12,9,18,17,18,25v1,11,-15,10,-23,7", - w: 191 - }, - ö: { - d: "102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm161,-160v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm65,-185v7,3,28,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35", - w: 191 - }, - õ: { - d: "102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm58,-199v26,-21,54,18,69,22v4,0,15,-5,34,-13v22,-9,21,-16,31,-13v3,11,-9,9,-7,22v-26,20,-46,30,-59,30v-2,4,-49,-28,-49,-29v-11,0,-32,31,-46,32v-12,-3,-13,-21,-4,-23v4,-6,14,-15,31,-28", - w: 191 - }, - ú: { - d: "196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm106,-174v26,-11,48,-32,59,-14v3,11,-81,53,-89,54v-13,1,-15,-12,-11,-22v15,-7,14,-7,41,-18", - w: 213 - }, - ù: { - d: "196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm126,-166v7,6,56,14,37,40v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,18,58,25", - w: 213 - }, - û: { - d: "196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm172,-143v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-49,35,-56,0v17,-4,44,-32,61,-43v27,6,41,21,63,36v12,9,17,17,17,25v0,6,-3,9,-11,9", - w: 213 - }, - ü: { - d: "196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm168,-161v0,8,-3,13,-11,13v-17,0,-20,-19,-17,-34v18,-1,29,1,28,21xm72,-186v7,3,29,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35", - w: 213 - }, - "†": { - d: "22,-286v15,6,5,-20,19,-19v9,-3,15,21,17,22v6,1,12,3,20,6v3,10,5,16,-9,16v-34,-10,-6,51,-34,52v-20,-7,11,-47,-15,-49v-14,3,-25,-5,-17,-24v7,-2,14,-4,19,-4", - w: 77 - }, - "°": { - d: "106,-268v0,36,-35,38,-51,46v-48,5,-60,-58,-25,-78v33,-11,76,-9,76,32xm38,-257v16,7,39,2,38,-17v-13,-9,-28,-1,-32,11v-5,3,-7,0,-6,6", - w: 114 - }, - "¢": { - d: "105,-188v13,-12,14,-18,26,-15v7,23,7,15,-3,49v6,0,18,14,17,20v-3,5,-12,19,-26,13v-14,1,-14,5,-16,21v10,10,46,-13,38,18v-9,17,-23,16,-54,20v-17,16,-4,55,-29,60v-37,-10,19,-64,-24,-71v-20,-10,-37,-47,-6,-62v23,-20,73,-4,77,-53xm65,-101v4,-9,7,-8,3,-13v-14,4,-22,10,-3,13", - w: 154 - }, - "£": { - d: "153,-170v3,22,62,0,49,39v-18,6,-31,12,-58,9v-12,-1,-17,30,-23,39v19,26,50,56,91,35v9,-2,27,-13,27,4v0,27,-27,39,-58,42v-32,-5,-59,-19,-78,-39v-6,1,-35,44,-57,39v-25,0,-37,-15,-37,-46v0,-41,43,-53,73,-50v4,1,12,-18,12,-21v-7,-15,-49,0,-44,-30v-2,-31,31,-16,60,-19v16,-30,25,-119,93,-113v16,2,75,16,50,44v-4,5,-7,7,-12,8v-18,-12,-32,-18,-41,-18v-35,-1,-38,52,-47,77xm43,-45v4,5,12,-2,11,-9v-1,2,-12,1,-11,9", - w: 242 - }, - "§": { - d: "141,-115v12,10,29,36,28,56v-4,68,-129,69,-152,16v-1,-12,-10,-22,8,-23v17,3,47,21,67,23v16,1,40,-8,38,-21v-8,-49,-119,-30,-117,-85v1,-28,15,-45,-3,-64v-1,-53,55,-61,103,-62v15,-5,6,-5,20,-2v16,17,23,27,23,30v-1,26,-29,7,-45,7v-21,0,-51,2,-62,17v19,14,87,8,97,43v18,14,16,57,-5,65xm64,-147r57,17v10,-28,-22,-43,-47,-44v-25,-1,-35,19,-10,27", - w: 174 - }, - "•": { - d: "130,-114v0,47,-124,54,-120,-8r6,-31v44,-28,64,-34,104,0v8,6,10,20,10,39", - w: 139 - }, - "¶": { - d: "121,-237v21,-9,44,-13,63,-1v-1,7,5,6,7,11r-4,190v-2,33,4,39,-15,40v-16,1,-10,-20,-10,-33r4,-161v0,-17,-1,-34,-16,-25v2,10,1,23,1,35v-9,46,-6,75,-15,156v-3,4,-7,5,-12,5v-17,-10,-3,-89,-10,-115v-43,14,-98,10,-101,-29v-4,-53,59,-63,104,-75v3,1,4,2,4,2xm95,-204v2,9,-30,50,1,50v35,0,23,-13,29,-43v0,-1,-2,-7,-4,-15v-12,-1,-14,2,-26,8", - w: 206 - }, - ß: { - d: "33,10v-29,4,-28,-32,-16,-70v18,-58,17,-137,56,-176v12,-24,46,-58,82,-43v20,8,47,24,47,54v0,30,-62,59,-67,90v33,23,56,33,63,63v-18,21,-22,36,-48,54v-24,17,-27,41,-53,16v-2,-19,7,-35,24,-42v15,-13,26,-22,34,-40v-13,-17,-78,-29,-56,-70v-3,-27,64,-54,66,-86v-8,-25,-41,-4,-52,8v-29,30,-47,83,-51,141v-17,25,-8,71,-29,101" - }, - "®": { - d: "75,-194v78,-29,116,9,130,84v-2,42,-22,47,-57,67v-74,20,-161,-19,-129,-110v6,-18,29,-34,57,-40xm46,-86v51,36,84,21,129,-15v7,-15,0,-39,-10,-49v-13,-37,-49,-26,-86,-18v-28,7,-49,46,-33,82xm72,-123v-5,-43,68,-57,75,-14v-17,26,-18,17,3,32v2,25,-25,18,-45,7r-4,-4v-1,8,-3,20,-12,24v-10,-3,-21,-34,-17,-45xm112,-135v-10,-1,-20,13,-9,14v6,-6,9,-11,9,-14", - w: 217 - }, - "©": { - d: "102,-29v-74,5,-124,-84,-70,-140v22,-22,53,-35,97,-38v46,-4,88,49,74,100v0,44,-51,75,-101,78xm96,-66v42,-3,75,-23,75,-69v0,-23,-4,-38,-44,-38v-16,0,-33,6,-49,20v36,-4,55,-12,62,20v-5,16,-49,1,-50,21v10,15,53,-14,54,11v0,18,-14,27,-42,27v-22,1,-46,-11,-46,-31v0,-25,7,-39,20,-44v-1,-1,-2,-2,-3,-2v-51,22,-32,89,23,85", - w: 217 - }, - "™": { - d: "213,-307v28,9,11,49,7,75v-1,4,-4,6,-11,6v-7,1,-11,-14,-11,-34v-14,-6,-34,34,-46,28v-2,0,-10,-9,-24,-27v-10,7,-3,36,-27,31v-15,-24,-3,-27,1,-48v-6,-7,-27,-1,-31,3v-3,14,-7,30,-11,51v-5,10,-29,9,-24,-12v-5,-8,1,-18,3,-35v-13,6,-33,2,-29,-18v20,-17,64,-17,100,-19v28,-1,29,30,45,39v11,-6,35,-32,58,-40", - w: 239 - }, - "´": { - d: "52,-284v29,-11,50,-34,62,-14v3,12,-86,54,-94,56v-14,0,-16,-12,-12,-23v11,-5,25,-11,44,-19", - w: 120 - }, - "¨": { - d: "124,-259v0,9,-4,13,-12,13v-18,0,-22,-21,-17,-35v19,-1,30,1,29,22xm23,-285v7,2,30,9,29,18v1,10,-9,19,-18,19v-19,0,-28,-26,-11,-37", - w: 136 - }, - "≠": { - d: "48,-130v29,11,49,-57,60,-50v25,6,7,27,-1,46v22,5,29,7,21,22v-18,2,-48,-1,-50,15v9,8,53,-7,54,10v-4,22,-46,20,-72,24v-7,13,-18,32,-34,57v-8,6,-15,-3,-13,-14v-1,-9,15,-39,14,-45v-30,5,-24,-17,-13,-25v12,-1,36,4,29,-13v-14,0,-47,6,-36,-12v0,-18,27,-13,41,-15", - w: 140 - }, - Æ: { - d: "335,-259v0,30,-102,12,-122,34v10,21,2,79,16,100v24,-6,59,-13,86,-16v23,-2,32,21,13,26r-103,29v-3,22,-4,38,8,43v28,-5,60,-6,86,-14v5,-1,14,7,14,11v6,16,-90,40,-107,40v-29,0,-39,-19,-32,-46v-2,-4,0,-26,-9,-28v-29,2,-58,6,-88,6v-31,0,-40,74,-82,73v-18,-23,4,-37,12,-50v40,-65,112,-126,165,-207v20,-17,69,-11,112,-13v21,0,31,4,31,12xm123,-111v28,1,44,-2,67,-10v-4,-22,5,-49,-7,-65v-3,6,-65,61,-60,75", - w: 348 - }, - Ø: { - d: "76,-211v41,-13,100,-22,140,-3v26,-19,40,-29,44,-29v10,0,15,7,15,20v0,15,-23,23,-30,35v23,39,29,114,-21,139v-36,19,-102,35,-147,18v-14,-5,-29,29,-46,35v-25,-13,-19,-24,3,-56v-9,-17,-28,-27,-28,-60v0,-38,23,-72,70,-99xm107,-66v55,15,125,-12,123,-70v0,-16,-5,-25,-13,-29r-110,95r0,4xm39,-108v-1,3,17,31,22,27v8,-6,109,-90,123,-106v-15,-11,-43,1,-63,2v-33,10,-80,35,-82,77", - w: 270 - }, - "∞": { - d: "322,-72v-4,22,-54,41,-76,41v-43,0,-83,-17,-114,-35v-46,19,-125,53,-128,-18v-1,-14,10,-22,13,-35v29,-10,62,-31,97,-4v37,28,47,5,75,-8v40,-19,73,-10,114,1v13,1,18,55,19,58xm228,-69v15,0,62,-12,61,-25v-19,-23,-89,-10,-105,11v0,2,1,4,2,4v28,6,42,10,42,10xm75,-102v-13,2,-41,4,-44,19v0,4,3,7,10,7v21,0,40,-6,54,-17v-9,-6,-16,-9,-20,-9", - w: 330 - }, - "±": { - d: "93,-163v-7,46,76,-4,46,47v-14,6,-27,13,-38,8v-24,2,-14,28,-28,44r-14,0v-7,-12,-5,-15,-7,-33v-12,-7,-41,-1,-37,-24v2,-11,23,-17,36,-14r28,-38v4,0,9,4,14,10xm113,-27v-12,18,-58,27,-85,24v-16,2,-22,-23,-13,-36v28,-7,85,-11,98,12", - w: 151 - }, - "≤": { - d: "73,-109v10,15,87,16,87,42v0,11,-5,16,-13,16v-36,-11,-69,-24,-109,-31v-18,-8,-18,-13,-9,-36v59,-56,93,-83,101,-83v16,0,18,17,14,28v-27,24,-42,35,-71,64xm10,-29v35,-12,117,-26,148,-3v1,2,-5,19,-8,18r-124,15v-16,2,-26,-18,-16,-30", - w: 168 - }, - "≥": { - d: "115,-174v20,7,53,36,20,57v-19,11,-91,68,-82,59v-18,3,-25,-22,-13,-31v15,-10,14,-10,70,-51r-50,-37v-5,-4,-5,-27,4,-28v16,7,40,17,51,31xm14,-32v33,-10,86,-14,127,-10v12,12,5,23,-11,27v-49,9,-82,13,-99,13v-22,0,-24,-16,-17,-30", - w: 163 - }, - "¥": { - d: "31,-248v30,-3,64,64,74,59v37,-22,77,-65,107,-82v20,-11,34,18,21,32v-28,19,-52,38,-70,57v-18,8,-40,21,-35,60v2,19,39,7,64,7v25,0,16,21,2,27v-36,16,-46,8,-68,18v6,11,101,-20,66,24v-21,11,-42,12,-75,20v-2,1,-5,6,-10,18v-8,3,-11,10,-24,8v-7,-17,-2,-18,-9,-26v-13,5,-39,3,-53,-2v-10,-17,-7,-27,0,-34v23,-1,45,1,64,-5v-11,-7,-28,-4,-64,-6v-13,-8,-15,-24,-6,-35v33,-2,102,9,76,-37v-14,-14,-33,-38,-60,-66v-10,-10,-8,-28,0,-37", - w: 219 - }, - µ: { - d: "123,-114v41,0,54,-9,127,-17v12,-2,20,-6,25,-12v5,-78,43,-127,119,-138v38,-5,46,23,55,48v-5,5,2,4,2,12v-2,47,-72,81,-129,95v-17,4,-12,32,-2,39v30,-5,24,0,99,4v14,9,14,20,-1,23v-17,3,-71,-1,-85,13v1,19,18,35,-3,47v-1,-6,-10,-7,-16,-5v-3,-3,-20,-37,-29,-41v-15,8,-50,22,-49,-9v1,-19,2,-27,28,-26v24,1,13,-12,8,-30v-22,1,-64,16,-111,23v-50,7,-17,47,-17,57v0,10,-5,15,-13,15v-20,-9,-27,-30,-33,-55v-20,-17,-52,8,-85,-6v-2,-10,-13,-26,4,-29v32,-6,41,-1,65,-7v-17,-74,-4,-173,69,-180v55,-20,130,8,131,65v-11,9,-10,2,-29,-11v-33,-23,-37,-26,-76,-25v-41,13,-69,38,-67,100v0,34,4,50,13,50xm317,-152v29,-6,106,-43,106,-71v0,-23,-24,-25,-42,-17v-31,1,-74,48,-64,88", - w: 462 - }, - "∂": { - d: "456,-113v55,-37,119,-8,176,5v-19,37,-104,-5,-144,18v-5,64,-45,87,-130,87v-43,0,-70,-8,-96,-21v-54,15,-146,29,-209,10v-18,-11,-43,-26,-46,-53v-1,-9,28,-48,51,-46v55,-10,55,-8,101,-8v29,0,17,-26,23,-56v4,-19,4,-74,34,-49v4,42,-7,83,-10,124v0,4,-11,10,-34,17v-29,-1,-45,-4,-74,1v-10,2,-57,3,-52,18v30,43,132,30,190,18v2,-10,-7,-19,-5,-28v5,-36,31,-59,74,-56v27,2,71,4,70,35v-1,30,-37,41,-58,57v35,13,131,15,135,-23v2,-19,-5,-36,4,-50xm262,-85v0,3,13,28,19,25v7,0,48,-13,61,-29v-10,-17,-71,-17,-80,4", - w: 640 - }, - "∑": { - d: "235,-95v-3,-59,120,-41,160,-28v3,-2,15,-3,14,4v1,3,-16,19,-21,18r-97,4v-25,5,-18,18,-23,56v-16,14,-25,24,-36,18v-83,32,-154,29,-212,-17v-45,-68,41,-114,107,-119v50,-4,59,66,22,85v-16,8,-61,10,-79,15v36,27,185,24,165,-36xm128,-119v-23,-3,-43,4,-53,15v13,5,46,-4,53,-15", - w: 414 - }, - "∏": { - d: "243,-190v7,-18,27,-19,38,6v0,2,-5,8,-14,16v-8,-9,-27,-4,-24,-22xm221,-111v55,-7,60,22,45,64v5,23,17,47,-22,47v-35,0,-18,-40,-15,-70v-2,-19,-35,-13,-52,-18v-2,0,-13,1,-34,3v-4,0,-10,11,-13,31v-3,20,1,43,-11,54v-12,-4,-13,-5,-21,-3v-13,-13,-3,-25,-12,-41v7,-6,12,-22,10,-39v-23,-8,-79,15,-87,-21v12,-28,78,-4,101,-20r36,-96v8,-19,17,-28,27,-28v10,0,15,6,15,18v-6,32,-31,62,-38,109v25,10,47,-1,71,10", - w: 282 - }, - π: { - d: "247,-240v-3,5,-14,12,-21,6v-41,5,-71,-4,-85,37v-6,7,-21,42,-25,61v28,12,104,-16,129,24v8,11,12,24,12,38v-7,17,-2,99,-40,68v-9,-23,-5,-47,-1,-73v3,-24,-40,-24,-50,-19v-4,0,-18,2,-44,6v-30,-6,-16,49,-33,58v-19,-11,-14,2,-29,-10v8,-71,20,-114,43,-170v-24,-2,-49,4,-73,7v-30,3,-32,-33,-7,-36r184,-22v17,-1,40,13,40,25", - w: 265 - }, - "∫": { - d: "62,-151v-7,-70,20,-130,63,-150v28,1,39,10,70,23v20,8,6,33,-6,35v-29,-13,-45,-20,-49,-20v-20,-4,-45,51,-43,70v8,60,5,129,5,189v0,62,-27,93,-79,93v-37,-1,-71,-14,-63,-57v21,0,79,34,91,-2v16,-3,14,-64,21,-85v-2,-31,-1,-74,-10,-96", - w: 156 - }, - ª: { - d: "6,-265v1,-31,58,-53,80,-22v-11,14,25,28,25,36v-2,8,-15,12,-27,10v-22,-29,-68,19,-78,-24xm52,-281v-8,1,-24,10,-9,13v11,1,24,-10,9,-13", - w: 117 - }, - º: { - d: "13,-273v1,-31,56,-41,83,-18v36,8,14,48,-9,52v-35,6,-64,-5,-74,-34xm81,-269v-7,-7,-20,-11,-29,-6v5,13,13,11,29,6", - w: 128 - }, - Ω: { - d: "121,-111v9,16,43,-5,54,5v28,-4,62,8,81,-5v48,-33,166,-28,160,44v15,34,-51,53,-88,53v-34,0,-53,-21,-71,-37v-15,7,-32,-4,-28,-22v-26,-4,-93,-6,-108,8v8,17,5,37,12,54v-1,15,-18,15,-31,10v-9,-15,-20,-39,-19,-63v-20,-9,-73,15,-79,-18v4,-28,50,-11,77,-24v12,-99,36,-168,137,-178v35,5,64,20,67,57v0,13,-14,18,-20,5v-15,-35,-83,-31,-104,4v-26,20,-39,82,-40,107xm334,-45v15,2,51,-14,53,-22v-7,-20,-36,-31,-69,-29v-8,-1,-39,6,-37,14v-3,10,44,38,53,37", - w: 424 - }, - æ: { - d: "145,-44r33,7v2,42,-59,29,-85,16v-6,7,-35,24,-48,15v-19,2,-35,-21,-33,-37v2,-24,5,-19,28,-36v-6,-8,-45,3,-33,-21v21,-22,58,-12,85,-1v6,-5,35,-28,45,-15v20,-4,36,17,36,35v0,23,-4,21,-28,37xm111,-72v12,3,49,-16,19,-17v-5,0,-20,12,-19,17xm74,-50v-14,-4,-48,16,-19,17v4,1,19,-14,19,-17", - w: 184 - }, - ø: { - d: "76,-136v17,7,33,-8,51,0v9,-6,21,-13,36,-21v23,22,-13,31,3,50v11,13,4,21,14,35v-4,5,-1,14,-4,23v-14,23,-45,41,-84,39v-12,2,-29,28,-41,38v-2,-11,-34,-10,-15,-30v3,-7,5,-11,5,-11v-15,-24,-60,-54,-22,-89v23,-21,25,-32,57,-34xm102,-54v18,1,50,-19,30,-32v-12,7,-22,18,-30,32xm85,-92v-14,3,-26,8,-38,17v2,20,17,13,26,0v6,-8,12,-13,12,-17", - w: 188 - }, - "¿": { - d: "181,-247v3,1,31,2,29,15v-4,22,-37,27,-41,4v1,-5,7,-20,12,-19xm161,-34v-45,-1,-105,19,-124,51v0,11,18,17,54,17v39,0,82,-13,112,4v-10,35,-58,31,-100,31v-47,0,-80,-10,-99,-31v-10,-56,22,-73,64,-90v8,-3,32,-9,74,-18v21,-15,7,-62,22,-92v-1,-5,-1,-11,4,-12v16,0,24,7,24,22v-8,30,-8,73,-17,111v-3,5,-7,7,-14,7", - w: 213 - }, - "¡": { - d: "86,-197v8,16,-7,41,-24,25v-11,-11,-4,-16,-3,-29v13,0,15,-2,27,4xm46,-107v4,-8,11,-16,23,-7v19,26,-5,57,-6,87v-7,0,-5,18,-9,28v0,14,-17,52,-11,70v-2,7,-15,28,-25,12v-4,-6,-15,-7,-6,-16v2,-39,14,-96,34,-174", - w: 95 - }, - "¬": { - d: "141,-99v47,7,103,-3,149,6v14,24,18,15,10,39v-10,34,-7,31,-26,76v-4,6,-15,8,-16,21v-4,2,-4,1,-13,5v-22,-33,-4,-33,16,-104v-5,-9,-28,-4,-38,-6r-183,4v-14,0,-41,-29,-17,-36v31,-9,82,5,118,-5", - w: 315 - }, - "√": { - d: "364,-218v43,-21,80,-51,104,-32v-3,19,-24,21,-44,40v-41,15,-78,53,-136,78r-137,98v-20,16,-79,66,-91,68v-3,1,-25,-11,-24,-13v-4,-28,-43,-61,-30,-85v26,-15,42,19,58,32r295,-188v0,1,2,2,5,2", - w: 474 - }, - ƒ: { - d: "115,-262v-23,6,-39,63,-38,96v1,3,57,2,54,16v1,22,-45,15,-51,30v3,34,12,68,10,103v14,17,-18,53,-28,63v-48,8,-89,5,-95,-37v20,-5,77,21,83,-18v17,-29,-4,-61,0,-98v0,-5,-3,-10,-7,-17v-33,4,-43,-17,-25,-37v10,-4,27,5,27,-10v0,-43,15,-77,32,-109v12,-7,16,-22,38,-20v11,1,51,35,25,55v-9,1,-16,-17,-25,-17", - w: 145 - }, - "≈": { - d: "133,-112v21,15,48,-30,78,-17v3,3,5,7,5,9v-8,30,-47,45,-76,45v-19,0,-64,-48,-90,-21r-29,20v-6,-1,-17,-16,-15,-32v24,-17,70,-42,107,-21v4,4,10,9,20,17xm138,-57v28,2,48,-25,76,-26v13,30,-21,42,-40,53v-41,24,-77,-15,-114,-23v-15,14,-46,32,-49,-1v-3,-9,27,-28,54,-30", - w: 223 - }, - "∆": { - d: "18,-1v-24,-30,8,-48,25,-71v14,-19,34,-28,40,-56v20,-35,29,-14,57,4v9,39,43,62,57,102v0,16,-34,17,-50,14v-28,2,-72,4,-129,7xm139,-47r-22,-52v-12,-5,-12,15,-24,27v-7,6,-14,16,-23,28v23,1,36,-1,69,-3", - w: 199 - }, - "«": { - d: "191,-64v16,6,87,37,53,63v-39,-9,-71,-28,-107,-40v-14,-13,-13,-34,10,-47v27,-15,48,-55,84,-62v9,-2,21,10,21,18r-13,21v-16,5,-44,22,-51,41v0,4,1,6,3,6xm71,-65v17,6,87,35,55,62v-39,-8,-66,-27,-108,-40v-14,-13,-13,-36,10,-46v23,-18,50,-56,84,-63v9,-2,21,10,21,18r-13,22v-20,6,-32,17,-51,37v0,3,-1,11,2,10", - w: 265 - }, - "»": { - d: "120,-129v9,-33,48,-10,64,5v9,20,86,52,50,86v-36,11,-66,31,-107,40v-6,-7,-9,-13,-9,-17v-2,-13,50,-46,63,-46v11,-18,-33,-42,-48,-47xm1,-128v10,-33,46,-8,64,6v8,19,86,50,51,85v-40,13,-69,30,-108,40v-6,-7,-8,-12,-8,-16v-2,-14,50,-46,63,-47v7,-13,-9,-20,-19,-30v-10,-9,-20,-15,-30,-17", - w: 252 - }, - "…": { - d: "244,-24v-1,21,-38,32,-41,3v-2,-19,23,-22,34,-17v0,7,0,15,7,14xm113,-24v0,-22,28,-21,38,-8v5,34,-39,40,-38,8xm35,-2v-10,-2,-36,-17,-18,-29v-1,-15,17,-17,31,-6v7,17,6,33,-13,35", - w: 258 - }, - " ": { - w: 179 - }, - À: { - d: "161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm150,-268v14,10,54,14,37,41v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,17,58,24" - }, - Ã: { - d: "161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm100,-285v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-9,22,-17,31,-12v3,11,-9,9,-7,21v-26,20,-46,30,-59,30v-3,3,-50,-26,-49,-29v-12,1,-31,35,-51,32v-3,-8,-5,-14,-5,-18v10,-9,16,-17,37,-33" - }, - Õ: { - d: "62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm116,-270v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-10,22,-16,31,-12v3,11,-8,9,-7,21v-45,28,-47,42,-88,16v-29,-19,-12,-20,-43,2v-8,5,-12,18,-23,15v-13,-3,-12,-20,-4,-23v4,-6,14,-15,31,-28", - w: 273 - }, - Œ: { - d: "247,-243v71,4,161,-7,245,-8v17,0,27,6,27,17v-8,27,-70,14,-104,23v-3,1,-52,0,-65,7r0,4v16,16,17,29,17,65v32,10,74,-14,99,16v-14,25,-76,17,-127,24v-17,18,-55,32,-75,51v85,0,128,-3,204,-11v15,-2,21,11,20,29v-78,24,-177,12,-270,24v-24,3,-24,-29,-48,-15v-46,7,-70,4,-105,-4v-19,-18,-42,-22,-52,-55v-10,-34,0,-47,12,-78v-18,-59,48,-78,105,-84v17,-18,103,-13,117,-5xm125,-45v76,-9,186,-43,209,-105v-26,-67,-137,-83,-217,-54v3,34,-45,25,-60,58v-41,48,5,108,68,101", - w: 492 - }, - œ: { - d: "185,-54v25,28,107,-17,104,33v-12,12,-60,14,-87,14v0,0,1,1,2,1v-11,1,-39,-9,-50,-17v-28,17,-75,32,-114,7v-22,-14,-34,-11,-34,-41v0,-36,33,-49,48,-75v29,-16,72,-3,95,11v12,-9,48,-27,59,-26v30,0,64,15,65,40v0,7,-6,20,-20,37v-29,1,-44,11,-68,16xm226,-106v-21,-7,-41,-2,-48,13v14,1,42,-7,48,-13xm132,-87v-21,-35,-94,11,-92,24v-2,14,43,21,61,21v25,0,36,-20,31,-45", - w: 295 - }, - "–": { - d: "6,-66v-8,-72,79,-21,146,-39v37,-10,79,7,111,0v9,8,14,13,14,17v2,26,-72,13,-99,21v-83,4,-124,21,-172,1", - w: 282 - }, - "—": { - d: "175,-106v86,-9,201,1,286,-1v11,6,13,11,6,30v-118,15,-246,10,-377,10v-25,0,-73,3,-82,-8r-2,-26v11,-13,32,-9,52,-7v38,3,84,-5,117,2", - w: 485 - }, - "“": { - d: "66,-261v-21,5,-37,51,-22,77v0,4,-2,6,-7,6v-31,-9,-38,-62,-12,-94v12,-15,21,-28,31,-34v16,-1,19,24,22,34v10,-11,22,-32,43,-23v-2,8,4,16,5,19v-6,11,-51,53,-29,74v-12,21,-30,5,-33,-17v-6,-13,9,-28,2,-42", - w: 118 - }, - "”": { - d: "120,-294v12,3,30,26,19,34v2,15,-40,70,-55,66v-40,-10,10,-51,14,-64v3,-3,8,-31,22,-36xm70,-306v14,3,26,34,16,49v-19,30,-31,45,-58,59v-12,-11,-33,-17,-7,-36v13,-19,36,-27,36,-59v0,-5,9,-13,13,-13", - w: 148 - }, - "‘": { - d: "73,-262v-10,7,-41,39,-38,69v-15,13,-27,-16,-28,-28v-2,-20,51,-83,66,-83v20,0,25,41,0,42", - w: 95 - }, - "’": { - d: "74,-300v13,31,-1,99,-44,101v-13,0,-19,-5,-19,-15v6,-10,31,-34,35,-59v2,-11,1,-32,11,-32v6,0,11,2,17,5", - w: 90 - }, - "÷": { - d: "167,-158v-4,3,-7,9,-10,20v-23,4,-34,-8,-29,-31v14,-6,18,1,39,11xm78,-72v-53,11,-53,12,-69,-15v-1,-12,11,-17,22,-14v71,-13,151,-18,230,-24v11,1,21,16,23,28v-28,20,-90,11,-126,16v-36,5,-62,5,-80,9xm123,-40v19,-17,41,-1,41,17v0,13,-6,19,-17,19v-15,0,-29,-14,-24,-36", - w: 293 - }, - "◊": { - d: "76,-158v48,-8,64,11,100,36v28,19,-5,39,-22,54v-15,13,-40,32,-48,49v-17,5,-12,0,-27,-16v-6,-6,-86,-31,-68,-53r2,-9v27,-23,48,-44,63,-61xm93,-65v12,-2,35,-31,41,-38v-5,-10,-16,-14,-34,-24v-12,12,-36,29,-40,44v19,11,30,18,33,18", - w: 199 - }, - ÿ: { - d: "118,85v-11,11,-11,38,-22,61v-2,-1,-2,31,-17,27v-11,0,-21,-10,-21,-22v20,-66,23,-61,64,-168v-22,1,-38,16,-58,4v-22,4,-51,-16,-51,-42v-11,-13,-7,-59,7,-58v16,1,21,24,22,51v21,33,66,5,94,-7v4,-3,26,-14,38,-29r17,0v23,44,-23,59,-34,102v-6,9,-13,9,-13,26v-15,6,-12,33,-27,48v0,2,1,4,1,7xm158,-136v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,29,1,28,21xm62,-161v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35", - w: 190 - }, - Ÿ: { - d: "176,-189v35,20,-25,54,-39,72v-26,34,-57,57,-74,104v-10,15,-4,14,-23,3r0,-10v19,-44,27,-46,50,-81v-9,-5,-24,4,-34,4v-38,0,-54,-50,-44,-87v21,-5,18,19,22,35v4,18,15,27,29,27v41,0,60,-39,113,-67xm153,-222v0,8,-3,12,-11,12v-18,0,-21,-19,-16,-33v18,-1,28,2,27,21xm57,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18", - w: 135 - }, - "⁄": { - d: "193,-305v7,6,17,31,3,41v-10,7,-12,13,-21,25v-79,56,-190,209,-197,260r-18,0v-23,-19,9,-70,15,-85v52,-83,121,-179,218,-241", - w: 120 - }, - "¤": { - d: "308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30", - w: 312 - }, - "€": { - d: "308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30", - w: 312 - }, - "‹": { - d: "64,-107v9,17,86,17,87,43v0,11,-4,16,-13,16v-36,-11,-70,-22,-109,-31v-19,-4,-18,-14,-9,-36v59,-56,93,-84,101,-84v17,0,19,20,13,29", - w: 159 - }, - "›": { - d: "41,-181v26,27,112,44,70,91r-82,60v-20,3,-25,-23,-13,-32r70,-51r-66,-46v-5,-6,-4,-28,5,-29v4,2,9,4,16,7", - w: 137 - }, - "": { - d: "74,-74v-6,-24,-70,8,-68,-27v0,-6,6,-20,20,-18v44,6,45,-9,42,-49v7,-40,26,-114,90,-104v48,-2,63,-1,90,30v11,25,4,14,2,44v-7,17,-54,9,-49,-7r8,-21v-5,-13,-22,-9,-43,-11v-56,-6,-63,45,-67,92v-2,21,5,23,22,22v37,-1,80,-9,113,-1v13,31,-9,82,-22,106v-13,10,-26,-6,-22,-25r11,-46v0,-3,-2,-6,-6,-6v-19,0,-47,3,-83,9v-6,1,-9,4,-8,11r12,59v-1,9,-11,30,-23,18v-18,-18,-15,-59,-19,-76", - w: 272 - }, - "": { - d: "43,-61v-21,4,-36,2,-39,-15v-4,-35,41,-8,34,-47v4,-59,12,-99,46,-124v11,-42,157,-47,149,13v1,7,-7,15,-13,15v-18,-7,-19,-26,-47,-23v-34,3,-65,6,-79,37v-12,27,-22,52,-21,91v13,9,31,-11,45,-4v32,-15,50,-6,94,-13v12,-30,19,-79,36,-133v1,-5,5,-8,12,-8v44,18,-18,106,-12,144v-9,22,-1,73,-16,104v2,28,-23,28,-37,16v1,-26,9,-48,11,-75v0,-6,-3,-9,-9,-9v-43,0,-83,8,-119,24v8,40,17,33,-7,56v-20,-9,-21,-19,-28,-49", - w: 283 - }, - "‡": { - d: "102,-284v16,2,42,-2,33,18v-7,15,-42,1,-38,30v3,3,31,1,30,11v4,15,-29,19,-36,24v-2,18,-4,24,-16,29r-25,-26v-25,7,-53,3,-42,-25v4,-10,70,0,51,-22v-17,4,-41,12,-39,-15v-5,-16,39,-18,44,-20v4,-2,7,-10,10,-24v19,-3,23,6,28,20", - w: 145 - }, - "∙": { - d: "57,-77v6,18,-7,21,-19,23v-34,6,-25,-40,-9,-43v18,-3,29,8,28,20", - w: 67 - }, - "‚": { - d: "25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102", - w: 97 - }, - "„": { - d: "25,63v-26,21,-48,-2,-22,-24v11,-9,36,-41,35,-69v3,-2,4,-12,12,-9v36,14,5,89,-25,102xm84,64v-24,20,-45,-1,-21,-24v21,-20,32,-35,35,-69v3,-2,3,-11,12,-9v36,17,9,86,-26,102", - w: 135 - }, - "‰": { - d: "398,-131v58,-1,87,13,72,65v-1,30,-66,63,-99,65v-56,3,-99,-58,-62,-102v2,2,5,2,8,2v20,-16,51,-17,81,-30xm202,-279v33,0,94,-24,95,18v-7,31,-33,27,-54,55v-36,32,-71,74,-112,99v-18,18,-40,34,-51,58v-19,14,-25,37,-56,40v-17,2,-25,-29,-10,-40v15,-11,40,-37,52,-52r87,-72v-51,13,-100,6,-116,-27v1,-5,-6,-30,-9,-36v-3,-5,22,-41,27,-39v29,2,16,34,5,49v0,15,14,23,42,23v42,0,59,-31,28,-38v-17,-4,-53,3,-50,-23v0,-7,1,-12,4,-16v16,-9,36,4,49,5v0,0,23,-4,69,-4xm222,-118v33,-2,55,18,50,57v-29,36,-48,45,-96,50v-27,-5,-56,-17,-58,-51v13,-37,64,-43,104,-56xm335,-61v13,44,101,7,108,-31v-11,-3,-20,-4,-30,-4v-18,-1,-82,18,-78,35xm225,-244v-18,0,-29,-1,-46,3v7,15,6,28,0,43v15,-14,34,-30,46,-46xm164,-53v26,5,59,-10,76,-26v-17,-16,-49,2,-67,14v1,8,-8,6,-9,12", - w: 485 - }, - Â: { - d: "161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm202,-219v-27,-6,-40,-26,-61,-37v-21,7,-39,46,-65,23v-2,-4,-3,-10,-4,-14v19,-4,43,-32,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-3,9,-11,9" - }, - Ê: { - d: "49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm199,-211v-27,-6,-39,-26,-60,-37v-21,7,-40,47,-65,22v-2,-7,-2,-7,-4,-13v18,-5,44,-31,61,-43v27,6,41,22,62,37v12,9,18,17,18,25v0,6,-4,9,-12,9", - w: 252 - }, - Á: { - d: "161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm84,-250v31,-5,83,-53,100,-31v0,5,-11,15,-35,28v-16,5,-51,28,-53,25v-14,1,-16,-11,-12,-22" - }, - Ë: { - d: "49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-17,41,-17,51v55,0,112,-21,169,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-3,-21,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm191,-236v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm95,-261v7,3,29,9,28,18v0,7,-9,17,-18,17v-18,0,-26,-25,-10,-35", - w: 252 - }, - È: { - d: "49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm184,-236v6,9,5,13,0,23v-28,-7,-62,-21,-100,-41v-3,-2,-3,-27,5,-23v34,11,60,25,95,41", - w: 252 - }, - Í: { - d: "26,-5v-9,-6,-9,-12,-9,-36v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76v-2,1,-2,0,-7,4xm6,-233v31,-6,83,-53,101,-31v2,11,-80,53,-89,53v-14,1,-14,-11,-12,-22", - w: 104 - }, - Î: { - d: "53,-9v-15,7,-16,-3,-16,-32v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76xm137,-209v-27,-6,-40,-26,-61,-37v-8,0,-9,4,-13,10v-11,13,-50,37,-56,0v18,-5,43,-32,61,-43v28,5,40,21,62,36v12,9,18,17,18,25v0,6,-4,9,-11,9", - w: 144 - }, - Ï: { - d: "33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm111,-222v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm15,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18", - w: 110 - }, - Ì: { - d: "33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm72,-247v7,6,55,15,36,40v-28,-7,-61,-21,-99,-41v-3,-2,-3,-27,5,-23v18,3,41,17,58,24", - w: 111 - }, - Ó: { - d: "62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm142,-250v27,-11,47,-32,59,-14v2,11,-80,53,-89,53v-13,1,-15,-11,-12,-21v10,-5,24,-11,42,-18", - w: 273 - }, - Ô: { - d: "62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm157,-282v17,18,52,34,54,63v-24,12,-52,-36,-53,-29r-42,34v-23,-4,-6,-31,5,-34v1,1,27,-37,36,-34", - w: 273 - }, - "": { - d: "231,-188v31,-74,91,-99,188,-116v28,1,6,39,1,51v-20,52,-100,91,-148,126v2,4,6,7,12,10v42,-42,181,-41,166,46v-1,8,-19,8,-28,5v-43,1,-168,42,-106,86v15,16,33,28,61,39v0,10,0,17,-6,22v-8,8,-35,26,-78,51v-52,7,-128,22,-154,-17v-23,-35,-99,-35,-117,-77v-29,-68,25,-149,75,-175v44,-23,89,5,135,13v14,-26,2,-39,-1,-64", - w: 461 - }, - Ò: { - d: "62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm161,-262v14,10,52,13,37,41v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,17,58,24", - w: 273 - }, - Ú: { - d: "281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm194,-265v3,-1,11,4,11,6v3,12,-81,52,-89,54v-14,0,-13,-9,-12,-22", - w: 262 - }, - Û: { - d: "281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm150,-266v24,11,58,27,73,46v0,5,-3,6,-10,6v-28,2,-61,-30,-63,-25v-10,0,-57,40,-69,23v3,-10,-8,-15,8,-19v17,-1,34,-29,61,-31", - w: 262 - }, - Ù: { - d: "281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm151,-243v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-4,-25,4,-23v16,5,42,17,58,24", - w: 262 - }, - ı: { - d: "43,-103v21,4,16,56,11,100v-7,2,-11,1,-20,-5v0,-7,-13,-18,-11,-25v4,-23,-3,-68,20,-70", - w: 80 - }, - ˆ: { - d: "144,-220v-29,0,-41,-27,-63,-39v-8,0,-11,5,-15,11v-17,12,-32,31,-54,13v-2,-5,-3,-9,-4,-14v20,-5,45,-33,64,-45v28,6,43,23,65,38v12,9,19,19,19,27v0,6,-4,9,-12,9", - w: 165 - }, - "˜": { - d: "47,-300v26,-21,57,19,72,23v4,0,16,-5,36,-14v24,-10,22,-16,32,-13v3,12,-7,11,-7,23v-27,21,-48,32,-62,32v-3,2,-52,-27,-51,-31v-12,-2,-34,40,-54,33v-4,-13,-8,-18,1,-24v5,-7,16,-15,33,-29", - w: 186 - }, - "¯": { - d: "63,-295v28,-7,73,10,105,7v11,1,6,8,5,19v-37,21,-72,11,-136,11v-23,0,-31,-14,-27,-36v12,-15,40,0,53,-1", - w: 183 - }, - "˘": { - d: "65,-269v20,-11,45,-31,74,-36v20,30,-42,40,-59,66v-5,6,-11,8,-18,8v-8,-3,-45,-32,-51,-54v5,-24,14,-13,34,1", - w: 158 - }, - "˙": { - d: "23,-302v15,-13,32,1,32,18v1,22,-36,29,-39,4v0,0,3,-7,7,-22", - w: 70 - }, - "˚": { - d: "23,-225v-43,-24,-11,-85,41,-78v16,2,31,4,46,17v32,54,-41,86,-87,61xm33,-257v2,20,57,11,57,-6v0,-6,-11,-9,-33,-12v-14,-2,-24,13,-24,18", - w: 123 - }, - "¸": { - d: "74,16v32,2,49,14,55,36v-3,7,-14,31,-29,33v-28,4,-57,11,-88,14v-19,-6,-13,-31,8,-33v20,-1,59,-5,73,-14v-17,-14,-68,8,-53,-37v9,-10,2,-28,24,-30v8,8,13,17,10,31", - w: 129 - }, - "˝": { - d: "91,-249v15,-11,38,-53,57,-29v0,9,0,14,-3,23v-2,3,-20,22,-54,55v-5,5,-10,8,-16,8v-17,2,-6,-22,-7,-31v-1,0,-2,0,-4,1v-17,21,-29,31,-50,27v-5,-18,-3,-15,3,-27v23,-27,40,-46,48,-59v7,-12,31,3,29,9v-1,14,-3,24,-13,31v4,4,9,-1,10,-8", - w: 151 - }, - "˛": { - d: "82,-5v-8,12,-16,55,-21,75v0,4,2,7,7,7v6,0,22,-7,50,-20v8,0,12,7,12,20v-2,22,-6,14,-27,30v-15,12,-26,16,-30,16v-47,-8,-59,-14,-56,-75v8,-27,12,-54,25,-77v19,-21,35,15,40,24", - w: 138 - }, - ˇ: { - d: "39,-286v33,46,63,-4,96,-16v6,0,9,6,9,19v0,24,-49,46,-77,46v-32,0,-52,-28,-59,-48v0,-25,23,-17,31,-1", - w: 153 - }, - "\r": { - w: 179 - } - } - }), - function() { - function e(e) { - this.message = e - } - - function t(t, n) { - if(!t) throw new e(n) - } - - function n(e) { - return e.x + e.width / 2 - } - - function i(e) { - return e.y + e.height / 2 - } - var r = 10, - o = 10, - a = 10, - s = 5, - l = 5, - c = 10, - u = 5, - d = 15, - p = 0, - h = 5, - f = 20, - m = Diagram.PLACEMENT, - g = Diagram.LINETYPE, - v = Diagram.ARROWTYPE, - b = { - stroke: "#000", - "stroke-width": 2 - }, y = { - fill: "#fff" - }; - e.prototype.toString = function() { - return "AssertException: " + this.message - }, String.prototype.trim || (String.prototype.trim = function() { - return this.replace(/^\s+|\s+$/g, "") - }), Raphael.fn.line = function(e, n, i, r) { - return t(_.all([e, i, n, r], _.isFinite), "x1,x2,y1,y2 must be numeric"), this.path("M{0},{1} L{2},{3}", e, n, i, r) - }, Raphael.fn.wobble = function(e, n, i, r) { - t(_.all([e, i, n, r], _.isFinite), "x1,x2,y1,y2 must be numeric"); - var o = Math.sqrt((i - e) * (i - e) + (r - n) * (r - n)) / 25, - a = Math.random(), - s = Math.random(), - l = Math.random() > .5 ? o : -o, - c = Math.random() > .5 ? o : -o, - u = { - x: (i - e) * a + e + l, - y: (r - n) * a + n + c - }, d = { - x: (i - e) * s + e - l, - y: (r - n) * s + n - c }; - return "C" + u.x + "," + u.y + " " + d.x + "," + d.y + " " + i + "," + r - }, Raphael.fn.text_bbox = function(e, t) { - var n; - t._obj ? n = this.print_center(0, 0, e, t._obj, t["font-size"]) : (n = this.text(0, 0, e), n.attr(t)); - var i = n.getBBox(); - return n.remove(), i - }, Raphael.fn.handRect = function(e, n, i, r) { - return t(_.all([e, n, i, r], _.isFinite), "x, y, w, h must be numeric"), this.path("M" + e + "," + n + this.wobble(e, n, e + i, n) + this.wobble(e + i, n, e + i, n + r) + this.wobble(e + i, n + r, e, n + r) + this.wobble(e, n + r, e, n)).attr(y) - }, Raphael.fn.handLine = function(e, n, i, r) { - return t(_.all([e, i, n, r], _.isFinite), "x1,x2,y1,y2 must be numeric"), this.path("M" + e + "," + n + this.wobble(e, n, i, r)) - }, Raphael.fn.print_center = function(e, t, n, i, r, o) { - var a = this.print(e, t, n, i, r, "baseline", o), - s = a.getBBox(), - l = e - s.x - s.width / 2, - c = t - s.y - s.height / 2, - u = new Raphael.matrix; - return u.translate(l, c), a.attr("path", Raphael.mapPath(a.attr("path"), u)) + return e + }(); + return n.lexer = i, t.prototype = n, n.Parser = t, new t + }(); + "undefined" != typeof require && "undefined" != typeof exports && (exports.parser = n, exports.Parser = n.Parser, exports.parse = function() { + return n.parse.apply(n, arguments) + }, exports.main = function(e) { + e[1] || (console.log("Usage: " + e[0] + " FILE"), process.exit(1)); + var t = require("fs").readFileSync(require("path").normalize(e[1]), "utf8"); + return exports.parser.parse(t) + }, "undefined" != typeof module && require.main === module && exports.main(process.argv.slice(1))), t.prototype = new Error, e.ParseError = t, n.parseError = function(e, n) { + throw new t(e, n) + }, e.parse = function(t) { + return n.yy = new e, n.parse(t) + }, this.Diagram = e +}.call(this), define("diagram-grammar", function() {}), function(e) { + "function" == typeof define && define.amd ? define("Diagram", ["raphael"], function(t) { + return e(t), Diagram + }) : e(Raphael) +}(function(e) { + function t(e) { + this.message = e + } + + function n(e, n) { + if(!e) throw new t(n) + } + + function i(e) { + return e.x + e.width / 2 + } + + function r(e) { + return e.y + e.height / 2 + } + var o = 10, + a = 10, + s = 10, + l = 5, + c = 5, + u = 10, + d = 5, + p = 15, + h = 0, + f = 5, + m = 20, + g = Diagram.PLACEMENT, + v = Diagram.LINETYPE, + b = Diagram.ARROWTYPE, + y = { + stroke: "#000", + "stroke-width": 2 + }, x = { + fill: "#fff" }; - var x = function(e) { - this.init(e) - }; - _.extend(x.prototype, { - init: function(e) { - this.diagram = e, this._paper = void 0, this._font = void 0, this._title = void 0, this._actors_height = 0, this._signals_height = 0; - var t = this.arrow_types = {}; - t[v.FILLED] = "block", t[v.OPEN] = "open"; - var n = this.line_types = {}; - n[g.SOLID] = "", n[g.DOTTED] = "-" - }, - init_paper: function(e) { - this._paper = new Raphael(e, 320, 200) - }, - init_font: function() {}, - draw_line: function(e, t, n, i) { - return this._paper.line(e, t, n, i) - }, - draw_rect: function(e, t, n, i) { - return this._paper.rect(e, t, n, i) - }, - draw: function(e) { - var t = this.diagram; - this.init_paper(e), this.init_font(), this.layout(); - var n = this._title ? this._title.height : 0; - this._paper.setStart(), this._paper.setSize(t.width, t.height); - var i = r + n; - this.draw_title(), this.draw_actors(i), this.draw_signals(i + this._actors_height), this._paper.setFinish() - }, - layout: function() { - function e(e, n, i) { - t(n > e, "a must be less than or equal to b"), 0 > e ? (n = v[n], n.x = Math.max(i - n.width / 2, n.x)) : n >= v.length ? (e = v[e], e.padding_right = Math.max(i, e.padding_right)) : (e = v[e], e.distances[n] = Math.max(i, e.distances[n] ? e.distances[n] : 0)) - } - var n = this.diagram, - i = this._paper, - g = this._font, - v = n.actors, - b = n.signals; - if(n.width = 0, n.height = 0, n.title) { - var y = this._title = {}, x = i.text_bbox(n.title, g); - y.text_bb = x, y.message = n.title, y.width = x.width + 2 * (h + p), y.height = x.height + 2 * (h + p), y.x = r, y.y = r, n.width += y.width, n.height += y.height - } - _.each(v, function(e) { - var t = i.text_bbox(e.name, g); - e.text_bb = t, e.x = 0, e.y = 0, e.width = t.width + 2 * (a + o), e.height = t.height + 2 * (a + o), e.distances = [], e.padding_right = 0, this._actors_height = Math.max(e.height, this._actors_height) - }, this), _.each(b, function(t) { - var n, r, a = i.text_bbox(t.message, g); - t.text_bb = a, t.width = a.width, t.height = a.height; - var p = 0; - if("Signal" == t.type) t.width += 2 * (s + l), t.height += 2 * (s + l), t.isSelf() ? (n = t.actorA.index, r = n + 1, t.width += f) : (n = Math.min(t.actorA.index, t.actorB.index), r = Math.max(t.actorA.index, t.actorB.index)); - else { - if("Note" != t.type) throw new Error("Unhandled signal type:" + t.type); - if(t.width += 2 * (c + u), t.height += 2 * (c + u), p = 2 * o, t.placement == m.LEFTOF) r = t.actor.index, n = r - 1; - else if(t.placement == m.RIGHTOF) n = t.actor.index, r = n + 1; - else if(t.placement == m.OVER && t.hasManyActors()) n = Math.min(t.actor[0].index, t.actor[1].index), r = Math.max(t.actor[0].index, t.actor[1].index), p = -(2 * u + 2 * d); - else if(t.placement == m.OVER) return n = t.actor.index, e(n - 1, n, t.width / 2), e(n, n + 1, t.width / 2), void(this._signals_height += t.height) - } - e(n, r, t.width + p), this._signals_height += t.height - }, this); - var w = 0; - return _.each(v, function(e) { - e.x = Math.max(w, e.x), _.each(e.distances, function(t, n) { - "undefined" != typeof t && (n = v[n], t = Math.max(t, e.width / 2, n.width / 2), n.x = Math.max(n.x, e.x + e.width / 2 + t - n.width / 2)) - }), w = e.x + e.width + e.padding_right - }, this), n.width = Math.max(w, n.width), n.width += 2 * r, n.height += 2 * r + 2 * this._actors_height + this._signals_height, this - }, - draw_title: function() { - var e = this._title; - e && this.draw_text_box(e, e.message, p, h, this._font) - }, - draw_actors: function(e) { - var t = e; - _.each(this.diagram.actors, function(e) { - this.draw_actor(e, t, this._actors_height), this.draw_actor(e, t + this._actors_height + this._signals_height, this._actors_height); - var i = n(e), - r = this.draw_line(i, t + this._actors_height - o, i, t + this._actors_height + o + this._signals_height); - r.attr(b) - }, this) - }, - draw_actor: function(e, t, n) { - e.y = t, e.height = n, this.draw_text_box(e, e.name, o, a, this._font) - }, - draw_signals: function(e) { - var t = e; - _.each(this.diagram.signals, function(e) { - "Signal" == e.type ? e.isSelf() ? this.draw_self_signal(e, t) : this.draw_signal(e, t) : "Note" == e.type && this.draw_note(e, t), t += e.height - }, this) - }, - draw_self_signal: function(e, i) { - t(e.isSelf(), "signal must be a self signal"); - var r = e.text_bb, - o = n(e.actorA), - a = o + f + l - r.x, - c = i + e.height / 2; - this.draw_text(a, c, e.message, this._font); - var u, d = _.extend({}, b, { - "stroke-dasharray": this.line_types[e.linetype] - }), - p = i + s, - h = p + e.height - s; - u = this.draw_line(o, p, o + f, p), u.attr(d), u = this.draw_line(o + f, p, o + f, h), u.attr(d), u = this.draw_line(o + f, h, o, h), d["arrow-end"] = this.arrow_types[e.arrowtype] + "-wide-long", u.attr(d) - }, - draw_signal: function(e, t) { - var i = n(e.actorA), - r = n(e.actorB), - o = (r - i) / 2 + i, - a = t + s + 2 * l; - this.draw_text(o, a, e.message, this._font), a = t + e.height - s - l; - var c = this.draw_line(i, a, r, a); - c.attr(b), c.attr({ - "arrow-end": this.arrow_types[e.arrowtype] + "-wide-long", - "stroke-dasharray": this.line_types[e.linetype] - }) - }, - draw_note: function(e, t) { - e.y = t; - var i = e.hasManyActors() ? e.actor[0] : e.actor, - r = n(i); - switch(e.placement) { - case m.RIGHTOF: - e.x = r + o; - break; - case m.LEFTOF: - e.x = r - o - e.width; - break; - case m.OVER: - if(e.hasManyActors()) { - var a = n(e.actor[1]), - s = d + u; - e.x = r - s, e.width = a + s - e.x - } else e.x = r - e.width / 2; - break; - default: - throw new Error("Unhandled note placement:" + e.placement) - } - this.draw_text_box(e, e.message, c, u, this._font) - }, - draw_text: function(e, t, n, i) { - var r, o = this._paper, - a = i || {}; - a._obj ? r = o.print_center(e, t, n, a._obj, a["font-size"]) : (r = o.text(e, t, n), r.attr(a)); - var s = r.getBBox(), - l = o.rect(s.x, s.y, s.width, s.height); - l.attr({ - fill: "#fff", - stroke: "none" - }), r.toFront() - }, - draw_text_box: function(e, t, r, o, a) { - var s = e.x + r, - l = e.y + r, - c = e.width - 2 * r, - u = e.height - 2 * r, - d = this.draw_rect(s, l, c, u); - d.attr(b), s = n(e), l = i(e), this.draw_text(s, l, t, a) - } - }); - var w = function(e) { - this.init(e) - }; - _.extend(w.prototype, x.prototype, { - init_font: function() { - this._font = { - "font-size": 16, - "font-family": "sans-serif" - } - } - }); - var S = function(e) { - this.init(e) - }; - _.extend(S.prototype, x.prototype, { - init_font: function() { - this._font = { - "font-size": 16, - "font-family": "daniel" - }, this._font._obj = this._paper.getFont("daniel") - }, - draw_line: function(e, t, n, i) { - return this._paper.handLine(e, t, n, i) - }, - draw_rect: function(e, t, n, i) { - return this._paper.handRect(e, t, n, i) - } - }); - var C = { - simple: w, - hand: S - }; - Diagram.prototype.drawSVG = function(e, t) { - var n = { - theme: "hand" + t.prototype.toString = function() { + return "AssertException: " + this.message + }, String.prototype.trim || (String.prototype.trim = function() { + return this.replace(/^\s+|\s+$/g, "") + }), e.fn.line = function(e, t, i, r) { + return n(_.all([e, i, t, r], _.isFinite), "x1,x2,y1,y2 must be numeric"), this.path("M{0},{1} L{2},{3}", e, t, i, r) + }, e.fn.wobble = function(e, t, i, r) { + n(_.all([e, i, t, r], _.isFinite), "x1,x2,y1,y2 must be numeric"); + var o = Math.sqrt((i - e) * (i - e) + (r - t) * (r - t)) / 25, + a = Math.random(), + s = Math.random(), + l = Math.random() > .5 ? o : -o, + c = Math.random() > .5 ? o : -o, + u = { + x: (i - e) * a + e + l, + y: (r - t) * a + t + c + }, d = { + x: (i - e) * s + e - l, + y: (r - t) * s + t - c }; - if(t = _.defaults(t || {}, n), !(t.theme in C)) throw new Error("Unsupported theme: " + t.theme); - var i = new C[t.theme](this); - i.draw(e) + return "C" + u.x + "," + u.y + " " + d.x + "," + d.y + " " + i + "," + r + }, e.fn.text_bbox = function(e, t) { + var n; + t._obj ? n = this.print_center(0, 0, e, t._obj, t["font-size"]) : (n = this.text(0, 0, e), n.attr(t)); + var i = n.getBBox(); + return n.remove(), i + }, e.fn.handRect = function(e, t, i, r) { + return n(_.all([e, t, i, r], _.isFinite), "x, y, w, h must be numeric"), this.path("M" + e + "," + t + this.wobble(e, t, e + i, t) + this.wobble(e + i, t, e + i, t + r) + this.wobble(e + i, t + r, e, t + r) + this.wobble(e, t + r, e, t)).attr(x) + }, e.fn.handLine = function(e, t, i, r) { + return n(_.all([e, i, t, r], _.isFinite), "x1,x2,y1,y2 must be numeric"), this.path("M" + e + "," + t + this.wobble(e, t, i, r)) + }, e.fn.print_center = function(t, n, i, r, o, a) { + var s = this.print(t, n, i, r, o, "baseline", a), + l = s.getBBox(), + c = t - l.x - l.width / 2, + u = n - l.y - l.height / 2, + d = new e.matrix; + return d.translate(c, u), s.attr("path", e.mapPath(s.attr("path"), d)) + }; + var w = function(e) { + this.init(e) + }; + _.extend(w.prototype, { + init: function(e) { + this.diagram = e, this._paper = void 0, this._font = void 0, this._title = void 0, this._actors_height = 0, this._signals_height = 0; + var t = this.arrow_types = {}; + t[b.FILLED] = "block", t[b.OPEN] = "open"; + var n = this.line_types = {}; + n[v.SOLID] = "", n[v.DOTTED] = "-" + }, + init_paper: function(t) { + this._paper = new e(t, 320, 200) + }, + init_font: function() {}, + draw_line: function(e, t, n, i) { + return this._paper.line(e, t, n, i) + }, + draw_rect: function(e, t, n, i) { + return this._paper.rect(e, t, n, i) + }, + draw: function(e) { + var t = this.diagram; + this.init_paper(e), this.init_font(), this.layout(); + var n = this._title ? this._title.height : 0; + this._paper.setStart(), this._paper.setSize(t.width, t.height); + var i = o + n; + this.draw_title(), this.draw_actors(i), this.draw_signals(i + this._actors_height), this._paper.setFinish() + }, + layout: function() { + function e(e, t, i) { + n(t > e, "a must be less than or equal to b"), 0 > e ? (t = v[t], t.x = Math.max(i - t.width / 2, t.x)) : t >= v.length ? (e = v[e], e.padding_right = Math.max(i, e.padding_right)) : (e = v[e], e.distances[t] = Math.max(i, e.distances[t] ? e.distances[t] : 0)) + } + var t = this.diagram, + i = this._paper, + r = this._font, + v = t.actors, + b = t.signals; + if(t.width = 0, t.height = 0, t.title) { + var y = this._title = {}, x = i.text_bbox(t.title, r); + y.text_bb = x, y.message = t.title, y.width = x.width + 2 * (f + h), y.height = x.height + 2 * (f + h), y.x = o, y.y = o, t.width += y.width, t.height += y.height + } + _.each(v, function(e) { + var t = i.text_bbox(e.name, r); + e.text_bb = t, e.x = 0, e.y = 0, e.width = t.width + 2 * (s + a), e.height = t.height + 2 * (s + a), e.distances = [], e.padding_right = 0, this._actors_height = Math.max(e.height, this._actors_height) + }, this), _.each(b, function(t) { + var n, o, s = i.text_bbox(t.message, r); + t.text_bb = s, t.width = s.width, t.height = s.height; + var h = 0; + if("Signal" == t.type) t.width += 2 * (l + c), t.height += 2 * (l + c), t.isSelf() ? (n = t.actorA.index, o = n + 1, t.width += m) : (n = Math.min(t.actorA.index, t.actorB.index), o = Math.max(t.actorA.index, t.actorB.index)); + else { + if("Note" != t.type) throw new Error("Unhandled signal type:" + t.type); + if(t.width += 2 * (u + d), t.height += 2 * (u + d), h = 2 * a, t.placement == g.LEFTOF) o = t.actor.index, n = o - 1; + else if(t.placement == g.RIGHTOF) n = t.actor.index, o = n + 1; + else if(t.placement == g.OVER && t.hasManyActors()) n = Math.min(t.actor[0].index, t.actor[1].index), o = Math.max(t.actor[0].index, t.actor[1].index), h = -(2 * d + 2 * p); + else if(t.placement == g.OVER) return n = t.actor.index, e(n - 1, n, t.width / 2), e(n, n + 1, t.width / 2), void(this._signals_height += t.height) + } + e(n, o, t.width + h), this._signals_height += t.height + }, this); + var w = 0; + return _.each(v, function(e) { + e.x = Math.max(w, e.x), _.each(e.distances, function(t, n) { + "undefined" != typeof t && (n = v[n], t = Math.max(t, e.width / 2, n.width / 2), n.x = Math.max(n.x, e.x + e.width / 2 + t - n.width / 2)) + }), w = e.x + e.width + e.padding_right + }, this), t.width = Math.max(w, t.width), t.width += 2 * o, t.height += 2 * o + 2 * this._actors_height + this._signals_height, this + }, + draw_title: function() { + var e = this._title; + e && this.draw_text_box(e, e.message, h, f, this._font) + }, + draw_actors: function(e) { + var t = e; + _.each(this.diagram.actors, function(e) { + this.draw_actor(e, t, this._actors_height), this.draw_actor(e, t + this._actors_height + this._signals_height, this._actors_height); + var n = i(e), + r = this.draw_line(n, t + this._actors_height - a, n, t + this._actors_height + a + this._signals_height); + r.attr(y) + }, this) + }, + draw_actor: function(e, t, n) { + e.y = t, e.height = n, this.draw_text_box(e, e.name, a, s, this._font) + }, + draw_signals: function(e) { + var t = e; + _.each(this.diagram.signals, function(e) { + "Signal" == e.type ? e.isSelf() ? this.draw_self_signal(e, t) : this.draw_signal(e, t) : "Note" == e.type && this.draw_note(e, t), t += e.height + }, this) + }, + draw_self_signal: function(e, t) { + n(e.isSelf(), "signal must be a self signal"); + var r = e.text_bb, + o = i(e.actorA), + a = o + m + c - r.x, + s = t + e.height / 2; + this.draw_text(a, s, e.message, this._font); + var u, d = _.extend({}, y, { + "stroke-dasharray": this.line_types[e.linetype] + }), + p = t + l, + h = p + e.height - l; + u = this.draw_line(o, p, o + m, p), u.attr(d), u = this.draw_line(o + m, p, o + m, h), u.attr(d), u = this.draw_line(o + m, h, o, h), d["arrow-end"] = this.arrow_types[e.arrowtype] + "-wide-long", u.attr(d) + }, + draw_signal: function(e, t) { + var n = i(e.actorA), + r = i(e.actorB), + o = (r - n) / 2 + n, + a = t + l + 2 * c; + this.draw_text(o, a, e.message, this._font), a = t + e.height - l - c; + var s = this.draw_line(n, a, r, a); + s.attr(y), s.attr({ + "arrow-end": this.arrow_types[e.arrowtype] + "-wide-long", + "stroke-dasharray": this.line_types[e.linetype] + }) + }, + draw_note: function(e, t) { + e.y = t; + var n = e.hasManyActors() ? e.actor[0] : e.actor, + r = i(n); + switch(e.placement) { + case g.RIGHTOF: + e.x = r + a; + break; + case g.LEFTOF: + e.x = r - a - e.width; + break; + case g.OVER: + if(e.hasManyActors()) { + var o = i(e.actor[1]), + s = p + d; + e.x = r - s, e.width = o + s - e.x + } else e.x = r - e.width / 2; + break; + default: + throw new Error("Unhandled note placement:" + e.placement) + } + this.draw_text_box(e, e.message, u, d, this._font) + }, + draw_text: function(e, t, n, i) { + var r, o = this._paper, + a = i || {}; + a._obj ? r = o.print_center(e, t, n, a._obj, a["font-size"]) : (r = o.text(e, t, n), r.attr(a)); + var s = r.getBBox(), + l = o.rect(s.x, s.y, s.width, s.height); + l.attr({ + fill: "#fff", + stroke: "none" + }), r.toFront() + }, + draw_text_box: function(e, t, n, o, a) { + var s = e.x + n, + l = e.y + n, + c = e.width - 2 * n, + u = e.height - 2 * n, + d = this.draw_rect(s, l, c, u); + d.attr(y), s = i(e), l = r(e), this.draw_text(s, l, t, a) } - }(), window.Diagram + }); + var S = function(e) { + this.init(e) + }; + _.extend(S.prototype, w.prototype, { + init_font: function() { + this._font = { + "font-size": 16, + "font-family": "Andale Mono, monospace" + } + } + }); + var C = function(e) { + this.init(e) + }; + _.extend(C.prototype, w.prototype, { + init_font: function() { + this._font = { + "font-size": 16, + "font-family": "daniel" + }, this._font._obj = this._paper.getFont("daniel") + }, + draw_line: function(e, t, n, i) { + return this._paper.handLine(e, t, n, i) + }, + draw_rect: function(e, t, n, i) { + return this._paper.handRect(e, t, n, i) + } + }); + var k = { + simple: S, + hand: C + }; + Diagram.prototype.drawSVG = function(e, t) { + var n = { + theme: "hand" + }; + if(t = _.defaults(t || {}, n), !(t.theme in k)) throw new Error("Unsupported theme: " + t.theme); + var i = new k[t.theme](this); + i.draw(e) + } }), ! function(e, t) { "object" == typeof exports ? module.exports = t() : "function" == typeof define && define.amd && define("flow-chart", [], t) }(this, function() { @@ -21603,7 +20685,7 @@ if(Markdown = "object" == typeof exports && "function" == typeof require ? expor }, p.prototype.renderLines = function() { this.yes_symbol && this.drawLineTo(this.yes_symbol, this.chart.options["yes-text"], this.yes_direction), this.no_symbol && this.drawLineTo(this.no_symbol, this.chart.options["no-text"], this.no_direction) }, f.parse = h, f -}), define("extensions/umlDiagrams", ["jquery", "underscore", "utils", "logger", "classes/Extension", "text!html/umlDiagramsSettingsBlock.html", "crel", "sequence-diagram", "flow-chart"], function(e, t, n, i, r, o, a, s, l) { +}), define("extensions/umlDiagrams", ["jquery", "underscore", "utils", "logger", "classes/Extension", "text!html/umlDiagramsSettingsBlock.html", "crel", "Diagram", "flow-chart"], function(e, t, n, i, r, o, a, s, l) { var c = new r("umlDiagrams", "UML Diagrams", !0); return c.settingsBlock = o, c.onPagedownConfigure = function(e) { var n = document.getElementById("preview-contents"); @@ -25678,7 +24760,7 @@ function(e) { } do t.push({ container: i.currentNode, - offsetInContainer: o, + offsetInContainer: r.length, offset: n }), n = e.shift(); while (n); return t @@ -25700,7 +24782,7 @@ function(e) { if(t = n = I.offsetHeight / 2 * i.cursorFocusRatio, t = this.adjustTop || t, n = this.adjustBottom || t, t && n) { var o = I.scrollTop + t, a = I.scrollTop + I.offsetHeight - n; - z.cursorY < o ? I.scrollTop += z.cursorY - o : z.cursorY > a && (I.scrollTop += z.cursorY - a) + V.cursorY < o ? I.scrollTop += V.cursorY - o : V.cursorY > a && (I.scrollTop += V.cursorY - a) } } s = !1 @@ -25718,10 +24800,10 @@ function(e) { o = e.selectionStart, a = e.selectionEnd }, 50); this.setSelectionStartEnd = function(e, t) { - void 0 === e && (e = this.selectionStart), 0 > e && (e = 0), void 0 === t && (t = this.selectionEnd), 0 > t && (t = 0), this.selectionStart = e, this.selectionEnd = t, $.editorStart = e, $.editorEnd = t, u() + void 0 === e && (e = this.selectionStart), 0 > e && (e = 0), void 0 === t && (t = this.selectionEnd), 0 > t && (t = 0), this.selectionStart = e, this.selectionEnd = t, q.editorStart = e, q.editorEnd = t, u() }, this.saveSelectionState = function() { function t() { - if(q === !1) { + if(G === !1) { var t, n = e.selectionStart, i = e.selectionEnd, r = c.getSelection(); @@ -25736,12 +24818,12 @@ function(e) { for(; a = a.previousSibling;) a.textContent && (l += a.textContent.length); a = s = s.parentNode } while (a && a != I); - r.isBackwards() ? (n = l + (t + "").length, i = l) : (n = l, i = l + (t + "").length) + r.isBackwards() ? (n = l + (t + "").length, i = l) : (n = l, i = l + (t + "").length), n === i && n > W.length && (r.nativeSelection.modify && r.nativeSelection.modify("move", "backward", "character"), n = --i) } } e.setSelectionStartEnd(n, i) } - W.saveSelectionState() + X.saveSelectionState() } var i = !1, r = n.debounce(function() { @@ -25753,7 +24835,7 @@ function(e) { }(), this.getSelectedText = function() { var e = Math.min(this.selectionStart, this.selectionEnd), t = Math.max(this.selectionStart, this.selectionEnd); - return V.substring(e, t) + return W.substring(e, t) }, this.getCoordinates = function(e, t, n) { if(!t) { var i = this.findOffsets([e])[0]; @@ -25763,7 +24845,7 @@ function(e) { o = 0; if("\n" == t.textContent) o = t.parentNode.offsetTop + t.parentNode.offsetHeight / 2; else { - var a = V[e], + var a = W[e], s = { container: t, offsetInContainer: n, @@ -25786,7 +24868,7 @@ function(e) { var t = 0, n = 0, i = 0; - return V.split(/\s/).some(function(r) { + return W.split(/\s/).some(function(r) { return r && (t = i, n = i + r.length, n > e) ? !0 : void(i += r.length + 1) }), { start: t, @@ -25796,15 +24878,15 @@ function(e) { } function p() { - void 0 !== I && z.saveSelectionState(!0, !0) + void 0 !== I && V.saveSelectionState(!0, !0) } function h(e) { - var t = H.diff_commonPrefix(V, e); - t === V.length && t--; - var n = Math.min(H.diff_commonSuffix(V, e), V.length - t, e.length - t), + var t = U.diff_commonPrefix(W, e); + t === W.length && t--; + var n = Math.min(U.diff_commonSuffix(W, e), W.length - t, e.length - t), i = e.substring(t, e.length - n), - r = z.createRange(t, V.length - n); + r = V.createRange(t, W.length - n); return r.deleteContents(), r.insertNode(document.createTextNode(i)), r.detach(), { start: t, end: e.length - n @@ -25812,57 +24894,57 @@ function(e) { } function f(e, t, n) { - W.currentMode = W.currentMode || "replace"; - var i = z.createRange(e, t); + X.currentMode = X.currentMode || "replace"; + var i = V.createRange(e, t); if("" + i != n) { i.deleteContents(), i.insertNode(document.createTextNode(n)), i.detach(); var r = e + n.length; - z.setSelectionStartEnd(r, r), z.updateSelectionRange(), z.updateCursorCoordinates(!0) + V.setSelectionStartEnd(r, r), V.updateSelectionRange(), V.updateCursorCoordinates(!0) } } function m(e, t) { - W.currentMode = W.currentMode || "replace"; - var n = V.replace(e, t); - if(n != V) { - var i = F.setValue(n); - z.setSelectionStartEnd(i.end, i.end), z.updateSelectionRange(), z.updateCursorCoordinates(!0) + X.currentMode = X.currentMode || "replace"; + var n = W.replace(e, t); + if(n != W) { + var i = O.setValue(n); + V.setSelectionStartEnd(i.end, i.end), V.updateSelectionRange(), V.updateCursorCoordinates(!0) } } function g(e, t) { - var n = z.selectionStart; - if(n !== z.selectionEnd) return !1; - var i = z.createRange(n - e.length, n); - return "" + i != e ? !1 : (i.deleteContents(), i.insertNode(document.createTextNode(t)), i.detach(), n = n - e.length + t.length, z.setSelectionStartEnd(n, n), z.updateSelectionRange(), z.updateCursorCoordinates(!0), !0) + var n = V.selectionStart; + if(n !== V.selectionEnd) return !1; + var i = V.createRange(n - e.length, n); + return "" + i != e ? !1 : (i.deleteContents(), i.insertNode(document.createTextNode(t)), i.detach(), n = n - e.length + t.length, V.setSelectionStartEnd(n, n), V.updateSelectionRange(), V.updateCursorCoordinates(!0), !0) } function v(e) { - h(e), V = e + h(e), W = e } function b() { - return V + return W } function y() { - L.focus(), z.updateSelectionRange(), I.scrollTop = O + L.focus(), V.updateSelectionRange(), I.scrollTop = B } function x() { function e(e, n, i) { - G.noWatch(function() { - V != e.content && (v(e.content), $.content = e.content, r.onContentChanged($, e.content)), z.setSelectionStartEnd(n, i), z.updateSelectionRange(), z.updateCursorCoordinates(!0); - var o = $.discussionListJSON; + H.noWatch(function() { + W != e.content && (v(e.content), q.content = e.content, r.onContentChanged(q, e.content)), V.setSelectionStartEnd(n, i), V.updateSelectionRange(), V.updateCursorCoordinates(!0); + var o = q.discussionListJSON; if(o != e.discussionListJSON) { - var a = $.discussionList; - $.discussionListJSON = e.discussionListJSON; - var s = $.discussionList, - l = U.diff(a, s), + var a = q.discussionList; + q.discussionListJSON = e.discussionListJSON; + var s = q.discussionList, + l = z.diff(a, s), c = !1; t.each(l, function(e, n) { - t.isArray(e) ? 1 === e.length ? r.onDiscussionCreated($, s[n]) : r.onDiscussionRemoved($, a[n]) : c = !0 - }), c && r.onCommentsChanged($) + t.isArray(e) ? 1 === e.length ? r.onDiscussionCreated(q, s[n]) : r.onDiscussionRemoved(q, a[n]) : c = !0 + }), c && r.onCommentsChanged(q) } }), s = n, l = i, a = e, this.currentMode = void 0, o = void 0, this.onButtonStateChange(), p() } @@ -25879,13 +24961,13 @@ function(e) { a = { selectionStartBefore: s, selectionEndBefore: l, - selectionStartAfter: z.selectionStart, - selectionEndAfter: z.selectionEnd, - content: V, - discussionListJSON: $.discussionListJSON + selectionStartAfter: V.selectionStart, + selectionEndAfter: V.selectionEnd, + content: W, + discussionListJSON: q.discussionListJSON }, i = e, o = this.currentMode, this.currentMode = void 0, this.onButtonStateChange() }, this), this.saveSelectionState = t.debounce(function() { - void 0 === this.currentMode && (s = z.selectionStart, l = z.selectionEnd) + void 0 === this.currentMode && (s = V.selectionStart, l = V.selectionEnd) }, 50), this.canUndo = function() { return c.length }, this.canRedo = function() { @@ -25897,37 +24979,37 @@ function(e) { var t = u.pop(); t && (c.push(a), e.call(this, t, t.selectionStartAfter, t.selectionEndAfter)) }, this.init = function() { - var e = $.content; + var e = q.content; c = [], u = [], i = 0, a = { - selectionStartAfter: $.selectionStart, - selectionEndAfter: $.selectionEnd, + selectionStartAfter: q.selectionStart, + selectionEndAfter: q.selectionEnd, content: e, - discussionListJSON: $.discussionListJSON + discussionListJSON: q.discussionListJSON }, this.currentMode = void 0, o = void 0, N.textContent = e, S() } } function w() { - G.isWatching === !0 && (W.currentMode = W.currentMode || "comment", W.saveState()) + H.isWatching === !0 && (X.currentMode = X.currentMode || "comment", X.saveState()) } function S() { var e = I.textContent; - if(N.lastChild === X && "\n" == X.textContent.slice(-1) && (e = e.slice(0, -1)), e = e.replace(/\r\n?/g, "\n"), q === !1) { - if(e == V) return void(0 === N.children.length && (N.innerHTML = "", K.forEach(function(e) { + if(N.lastChild === F && "\n" == F.textContent.slice(-1) && (e = e.slice(0, -1)), e = e.replace(/\r\n?/g, "\n"), G === !1) { + if(e == W) return void(0 === N.children.length && (N.innerHTML = "", K.forEach(function(e) { N.appendChild(e.elt) }), T())); - W.currentMode = W.currentMode || "typing"; - var n = t.values($.discussionList); - $.newDiscussion && n.push($.newDiscussion); - var i = C(V, e, n); - V = e, i === !0 && ($.discussionList = $.discussionList), $.content = V, z.saveSelectionState(), r.onContentChanged($, V), i && r.onCommentsChanged($), W.saveState(), Q() - } else V = e, $.content = V, z.setSelectionStartEnd($.editorStart, $.editorEnd), z.updateSelectionRange(), z.updateCursorCoordinates(), W.saveSelectionState(), r.onFileOpen($, V), R.scrollTop = $.previewScrollTop, O = $.editorScrollTop, I.scrollTop = O, q = !1 + X.currentMode = X.currentMode || "typing"; + var n = t.values(q.discussionList); + q.newDiscussion && n.push(q.newDiscussion); + var i = C(W, e, n); + W = e, i === !0 && (q.discussionList = q.discussionList), q.content = W, V.saveSelectionState(), r.onContentChanged(q, W), i && r.onCommentsChanged(q), X.saveState(), Q() + } else W = e, q.content = W, V.setSelectionStartEnd(q.editorStart, q.editorEnd), V.updateSelectionRange(), V.updateCursorCoordinates(), X.saveSelectionState(), r.onFileOpen(q, W), R.scrollTop = q.previewScrollTop, B = q.editorScrollTop, I.scrollTop = B, G = !1 } function C(e, t, n) { if(n.length) { - var i = H.diff_main(e, t), + var i = U.diff_main(e, t), r = !1, o = 0; return i.forEach(function(e) { @@ -25943,7 +25025,7 @@ function(e) { } function _(e) { - if(Z = [], J = [], Y = void 0, q === !0) return J = K, K = e, void(Z = e); + if(Z = [], J = [], Y = void 0, G === !0) return J = K, K = e, void(Z = e); var n = K.length; t.some(K, function(t, i) { var r = e[i]; @@ -25964,8 +25046,8 @@ function(e) { var e = document.createDocumentFragment(); Z.forEach(function(t) { E(t), e.appendChild(t.elt) - }), G.noWatch(function() { - if(q === !0) N.innerHTML = "", N.appendChild(e); + }), H.noWatch(function() { + if(G === !0) N.innerHTML = "", N.appendChild(e); else { J.forEach(function(e) { e.elt.parentNode === N && N.removeChild(e.elt) @@ -25975,14 +25057,14 @@ function(e) { t.generated || N.removeChild(t), t = n } } - T(), z.updateSelectionRange(), z.updateCursorCoordinates() + T(), V.updateSelectionRange(), V.updateCursorCoordinates() }) } function T() { - X = l("span", { + F = l("span", { "class": "token lf" - }), X.textContent = "\n", N.appendChild(X) + }), F.textContent = "\n", N.appendChild(F) } function E(e) { @@ -25996,8 +25078,8 @@ function(e) { }); i.generated = !0, i.innerHTML = t, e.elt = i } - var I, D, N, L, M, A, R, P, F = {}, O = 0, - B = function() { + var I, D, N, L, M, A, R, P, F, O = {}, B = 0, + j = function() { var e, n = 0, r = function() { var e = Date.now(); @@ -26010,18 +25092,18 @@ function(e) { r.addListener("onPagedownConfigure", function(e) { P = e }); - var j = 0; + var $ = 0; r.addListener("onSectionsCreated", function(e) { - j || (_(e), k()), q === !0 ? P.refreshPreview() : B() + $ || (_(e), k()), G === !0 ? P.refreshPreview() : j() }); - var $, q = !0; + var q, G = !0; r.addListener("onFileSelected", function(e) { - q = !0, $ = e + G = !0, q = e }); - var G = new u; - F.watcher = G; - var H = new a, - U = s.create({ + var H = new u; + O.watcher = H; + var U = new a, + z = s.create({ objectHash: function(e) { return JSON.stringify(e) }, @@ -26032,23 +25114,21 @@ function(e) { minLength: 9999999 } }), - z = new d; - F.selectionMgr = z, e(document).on("selectionchange", ".editor-content", t.bind(z.saveSelectionState, z, !0, !1)), F.adjustCursorPosition = p; - var V; - F.setValue = h, F.replace = f, F.replaceAll = m, F.replacePreviousText = g, F.setValueNoWatch = v, F.getValue = b, F.focus = y; - var W = new x; - F.undoMgr = W, r.addListener("onDiscussionCreated", w), r.addListener("onDiscussionRemoved", w), r.addListener("onCommentsChanged", w); - var X, Q = t.debounce(function() { - if(z.hasFocus && z.selectionStart === z.selectionEnd) { - var e = window.getSelection(); - z.selectionStart ? (e.modify("move", "backward", "character"), e.modify("move", "forward", "character")) : (e.modify("move", "forward", "character"), e.modify("move", "backward", "character")) - } - }, 10); - F.adjustCommentOffsets = C, F.init = function() { - if(I = document.getElementById("wmd-input"), D = e(I), N = I.querySelector(".editor-content"), L = e(N), M = I.querySelector(".editor-margin"), A = e(M), R = document.querySelector(".preview-container"), D.addClass(i.editorFontClass), G.startWatching(), e(I).scroll(function() { - O = I.scrollTop, q === !1 && ($.editorScrollTop = O) + V = new d; + O.selectionMgr = V, e(document).on("selectionchange", ".editor-content", t.bind(V.saveSelectionState, V, !0, !1)), O.adjustCursorPosition = p; + var W; + O.setValue = h, O.replace = f, O.replaceAll = m, O.replacePreviousText = g, O.setValueNoWatch = v, O.getValue = b, O.focus = y; + var X = new x; + O.undoMgr = X, r.addListener("onDiscussionCreated", w), r.addListener("onDiscussionRemoved", w), r.addListener("onCommentsChanged", w); + var Q = t.debounce(function() { + var e = window.getSelection(); + V.hasFocus && V.selectionStart === V.selectionEnd && e.modify && (V.selectionStart ? (e.modify("move", "backward", "character"), e.modify("move", "forward", "character")) : (e.modify("move", "forward", "character"), e.modify("move", "backward", "character"))) + }, 10); + O.adjustCommentOffsets = C, O.init = function() { + if(I = document.getElementById("wmd-input"), D = e(I), N = I.querySelector(".editor-content"), L = e(N), M = I.querySelector(".editor-margin"), A = e(M), R = document.querySelector(".preview-container"), D.addClass(i.editorFontClass), H.startWatching(), e(I).scroll(function() { + B = I.scrollTop, G === !1 && (q.editorScrollTop = B) }), e(R).scroll(function() { - q === !1 && ($.previewScrollTop = R.scrollTop) + G === !1 && (q.previewScrollTop = R.scrollTop) }), /AppleWebKit\/([\d.]+)/.exec(navigator.userAgent)) { var n = e('').appendTo("html"); L.blur(function() { @@ -26057,24 +25137,24 @@ function(e) { } I.focus = y, I.adjustCursorPosition = p, Object.defineProperty(I, "value", { get: function() { - return V + return W }, set: h }), Object.defineProperty(I, "selectionStart", { get: function() { - return Math.min(z.selectionStart, z.selectionEnd) + return Math.min(V.selectionStart, V.selectionEnd) }, set: function(e) { - z.setSelectionStartEnd(e), z.updateSelectionRange(), z.updateCursorCoordinates() + V.setSelectionStartEnd(e), V.updateSelectionRange(), V.updateCursorCoordinates() }, enumerable: !0, configurable: !0 }), Object.defineProperty(I, "selectionEnd", { get: function() { - return Math.max(z.selectionStart, z.selectionEnd) + return Math.max(V.selectionStart, V.selectionEnd) }, set: function(e) { - z.setSelectionStartEnd(void 0, e), z.updateSelectionRange(), z.updateCursorCoordinates() + V.setSelectionStartEnd(void 0, e), V.updateSelectionRange(), V.updateCursorCoordinates() }, enumerable: !0, configurable: !0 @@ -26082,7 +25162,7 @@ function(e) { var r = !1; L.on("keydown", function(e) { if(17 !== e.which && 91 !== e.which && 18 !== e.which && 16 !== e.which) { - z.saveSelectionState(), p(); + V.saveSelectionState(), p(); var t = e.metaKey || e.ctrlKey; switch(e.which) { case 9: @@ -26096,26 +25176,26 @@ function(e) { 13 !== e.which && (r = !1) } }).on("compositionstart", function() { - j++ + $++ }).on("compositionend", function() { setTimeout(function() { - j-- + $-- }, 0) - }).on("mouseup", t.bind(z.saveSelectionState, z, !0, !1)).on("paste", function(e) { - W.currentMode = "paste", e.preventDefault(); + }).on("mouseup", t.bind(V.saveSelectionState, V, !0, !1)).on("paste", function(e) { + X.currentMode = "paste", e.preventDefault(); var t = (e.originalEvent || e).clipboardData.getData("text/plain") || prompt("Paste something..."); t = et(t), p(), document.execCommand("insertHtml", !1, t) }).on("cut", function() { - W.currentMode = "cut", p() + X.currentMode = "cut", p() }).on("focus", function() { - z.hasFocus = !0 + V.hasFocus = !0 }).on("blur", function() { - z.hasFocus = !1 + V.hasFocus = !1 }); var o = function(e, t) { var n = b(), - i = Math.min(z.selectionStart, z.selectionEnd), - r = Math.max(z.selectionStart, z.selectionEnd), + i = Math.min(V.selectionStart, V.selectionEnd), + r = Math.max(V.selectionStart, V.selectionEnd), o = { selectionStart: i, selectionEnd: r, @@ -26123,7 +25203,7 @@ function(e) { after: n.slice(r), selection: n.slice(i, r) }; - s[e](o, t || {}), h(o.before + o.selection + o.after), z.setSelectionStartEnd(o.selectionStart, o.selectionEnd), z.updateSelectionRange() + s[e](o, t || {}), h(o.before + o.selection + o.after), V.setSelectionStartEnd(o.selectionStart, o.selectionEnd), V.updateSelectionRange() }, a = /^ {0,3}>[ ]*|^[ \t]*(?:[*+\-]|(\d+)\.)[ \t]|^\s+/, s = { indent: function(e, t) { @@ -26150,7 +25230,7 @@ function(e) { var s = parseInt(i[1], 10); o = o.replace(/\d+/, s + 1) } - o.length && (r = !0), W.currentMode = "newlines", e.before += "\n" + o, e.selection = "", e.selectionStart += o.length + 1, e.selectionEnd = e.selectionStart + o.length && (r = !0), X.currentMode = "newlines", e.before += "\n" + o, e.selection = "", e.selectionStart += o.length + 1, e.selectionEnd = e.selectionStart } } }; @@ -26169,7 +25249,7 @@ function(e) { }) } }(); - return r.onEditorCreated(F), F + return r.onEditorCreated(O), O }), function(e, t) { function n() { @@ -30266,7 +29346,8 @@ function() { diff_match_patch_uncompressed: "bower-libs/google-diff-match-patch-js/diff_match_patch_uncompressed", jsondiffpatch: "bower-libs/jsondiffpatch/build/bundle", hammerjs: "bower-libs/hammerjs/hammer", - "sequence-diagram": "bower-libs/js-sequence-diagrams/build/sequence-diagram-min", + Diagram: "bower-libs/js-sequence-diagrams/src/sequence-diagram", + "diagram-grammar": "bower-libs/js-sequence-diagrams/build/diagram-grammar", raphael: "bower-libs/raphael/raphael", "flow-chart": "bower-libs/flowchart/release/flowchart.amd-1.2.10.min", flowchart: "bower-libs/flowchart/release/flowchart-1.2.10.min", @@ -30324,7 +29405,9 @@ function() { "jquery-waitforimages": ["jquery"], pagedown: ["libs/Markdown.Converter"], "pagedown-extra": ["libs/Markdown.Converter"], - "flow-chart": ["raphael"] + "flow-chart": ["raphael"], + "diagram-grammar": ["underscore"], + Diagram: ["raphael", "diagram-grammar"] } }); try { diff --git a/public/res/constants.js b/public/res/constants.js index 3840cf51..0d368460 100644 --- a/public/res/constants.js +++ b/public/res/constants.js @@ -1,6 +1,6 @@ define([], function() { var constants = {}; - constants.VERSION = "4.0.0"; + constants.VERSION = "4.0.1"; constants.MAIN_URL = "https://stackedit.io/"; constants.GOOGLE_ANALYTICS_ACCOUNT_ID = "UA-39556145-1"; constants.GOOGLE_API_KEY = "AIzaSyAeCU8CGcSkn0z9js6iocHuPBX4f_mMWkw"; diff --git a/public/res/main.js b/public/res/main.js index 8f05bcb5..6f36d455 100644 --- a/public/res/main.js +++ b/public/res/main.js @@ -61,7 +61,8 @@ requirejs.config({ diff_match_patch_uncompressed: 'bower-libs/google-diff-match-patch-js/diff_match_patch_uncompressed', jsondiffpatch: 'bower-libs/jsondiffpatch/build/bundle', hammerjs: 'bower-libs/hammerjs/hammer', - 'sequence-diagram': 'bower-libs/js-sequence-diagrams/build/sequence-diagram-min', + 'Diagram': 'bower-libs/js-sequence-diagrams/src/sequence-diagram', + 'diagram-grammar': 'bower-libs/js-sequence-diagrams/build/diagram-grammar', raphael: 'bower-libs/raphael/raphael', 'flow-chart': 'bower-libs/flowchart/release/flowchart.amd-1.2.10.min', flowchart: 'bower-libs/flowchart/release/flowchart-1.2.10.min', @@ -152,6 +153,13 @@ requirejs.config({ ], 'flow-chart': [ 'raphael' + ], + 'diagram-grammar': [ + 'underscore' + ], + 'Diagram': [ + 'raphael', + 'diagram-grammar' ] } });