Merge remote-tracking branch 'refs/remotes/upstream/master'

This commit is contained in:
Matt C committed 2016-12-14 23:31:04 +00:00
commit c24cdf3bae
50 files changed
+1305 -1190

No files matched your search

+11 -9
View File
@@ -1,3 +1,5 @@
/* eslint-env node */
module.exports = function(grunt) { module.exports = function(grunt) {
grunt.file.defaultEncoding = "utf8"; grunt.file.defaultEncoding = "utf8";
grunt.file.preserveBOM = false; grunt.file.preserveBOM = false;
@@ -9,7 +11,7 @@ module.exports = function(grunt) {
grunt.registerTask("prod", grunt.registerTask("prod",
"Creates a production-ready build. Use the --msg flag to add a compile message.", "Creates a production-ready build. Use the --msg flag to add a compile message.",
["jshint", "exec:stats", "clean", "jsdoc", "concat", "copy:html_dev", "copy:html_prod", "copy:html_inline", ["eslint", "exec:stats", "clean", "jsdoc", "concat", "copy:html_dev", "copy:html_prod", "copy:html_inline",
"copy:static_dev", "copy:static_prod", "cssmin", "uglify:prod", "inline", "htmlmin", "chmod"]); "copy:static_dev", "copy:static_prod", "cssmin", "uglify:prod", "inline", "htmlmin", "chmod"]);
grunt.registerTask("docs", grunt.registerTask("docs",
@@ -29,11 +31,11 @@ module.exports = function(grunt) {
["jshint", "exec:stats", "exec:display_stats"]); ["jshint", "exec:stats", "exec:display_stats"]);
grunt.registerTask("doc", "docs"); grunt.registerTask("doc", "docs");
grunt.registerTask("lint", "jshint"); grunt.registerTask("lint", "eslint");
// Load tasks provided by each plugin // Load tasks provided by each plugin
grunt.loadNpmTasks("grunt-contrib-jshint"); grunt.loadNpmTasks("grunt-eslint");
grunt.loadNpmTasks("grunt-jsdoc"); grunt.loadNpmTasks("grunt-jsdoc");
grunt.loadNpmTasks("grunt-contrib-clean"); grunt.loadNpmTasks("grunt-contrib-clean");
grunt.loadNpmTasks("grunt-contrib-concat"); grunt.loadNpmTasks("grunt-contrib-concat");
@@ -181,9 +183,9 @@ module.exports = function(grunt) {
// Project configuration // Project configuration
grunt.initConfig({ grunt.initConfig({
jshint: { eslint: {
options: { options: {
jshintrc: "src/js/.jshintrc" configFile: "src/js/.eslintrc.json"
}, },
gruntfile: ["Gruntfile.js"], gruntfile: ["Gruntfile.js"],
core: ["src/js/core/**/*.js"], core: ["src/js/core/**/*.js"],
@@ -264,7 +266,7 @@ module.exports = function(grunt) {
// TODO: Do all this in Jade // TODO: Do all this in Jade
content = content.replace( content = content.replace(
'<a href="cyberchef.htm" style="float: left; margin-left: 10px; margin-right: 80px;" download>Download CyberChef<img src="images/download-24x24.png" /></a>', '<a href="cyberchef.htm" style="float: left; margin-left: 10px; margin-right: 80px;" download>Download CyberChef<img src="images/download-24x24.png" /></a>',
'<span style="float: left; margin-left: 10px;">Compile time: ' + grunt.template.today("dd/mm/yyyy HH:MM:ss") + ' UTC</span>'); '<span style="float: left; margin-left: 10px;">Compile time: ' + grunt.template.today("dd/mm/yyyy HH:MM:ss") + " UTC</span>");
return grunt.template.process(content, template_options); return grunt.template.process(content, template_options);
} }
}, },
@@ -403,9 +405,9 @@ module.exports = function(grunt) {
exec: { exec: {
repo_size: { repo_size: {
command: [ command: [
"git ls-files | wc -l | xargs printf '\n%b\ttracked files\n'", "git ls-files | wc -l | xargs printf '\n%b\ttracked files\n'",
"du -hs | egrep -o '^[^\t]*' | xargs printf '%b\trepository size\n'" "du -hs | egrep -o '^[^\t]*' | xargs printf '%b\trepository size\n'"
].join(";"), ].join(";"),
stderr: false stderr: false
}, },
stats: { stats: {
+21
View File
@@ -92,6 +92,7 @@
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
<<<<<<< HEAD <<<<<<< HEAD
<<<<<<< HEAD
*/.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.clo,.opn,.pun{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.kwd,.tag,.typ{font-weight:700}.str{color:#060}.kwd{color:#006}.com{color:#600;font-style:italic}.typ{color:#404}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}#content-wrapper{top:0;left:0;width:100%;height:100%}#banner{height:30px;text-align:center;line-height:30px}#wrapper{top:30px;bottom:0}div#operations,div#recipe{width:50%;height:100%}div#input,div#output{width:100%;height:50%}.title{padding:10px;height:43px}.textarea-wrapper{top:43px;bottom:0;width:100%;overflow:hidden}#output-html,textarea{width:100%;height:100%;border:none;padding:3px;-moz-padding-start:3px;-moz-padding-end:3px}#input-text,#output-html,#output-text{position:relative;border-width:0;margin:0;resize:none;background-color:transparent;white-space:pre-wrap;word-wrap:break-word}#output-html{display:none;overflow-y:auto;-moz-padding-start:1px}.split{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:auto;position:relative}.gutter.gutter-horizontal,.split.split-horizontal{height:100%;float:left}#input-highlighter,#output-highlighter{position:absolute;left:0;top:0;width:100%;height:100%;padding:3px;margin:0;overflow:hidden;letter-spacing:normal;white-space:pre-wrap;word-wrap:break-word;color:#fff;background-color:transparent;border:none}#op_list,#rec_list,.op_list{margin:0;padding:0;list-style-type:none}#op_list,#rec_list{position:absolute;top:43px;bottom:0;width:100%}.io-btn-group,.io-info{margin-top:-4px;float:right}#rec_list{bottom:120px;overflow:auto}.operation{cursor:pointer;padding:10px;list-style-type:none;position:relative}#controls{position:absolute;width:100%;height:120px;bottom:0;padding:10px}.io-info{margin-right:20px;height:30px;text-align:right;line-height:10px}.arg-group,.inline-args input[type=checkbox]{margin-top:10px}#input-info{line-height:15px}.arg-group{display:table;width:100%}.arg-group-text{display:block}.inline-args{float:left;width:auto;margin-right:30px;height:34px}.inline-args input[type=number]{width:100px}.arg-input{display:table-cell;width:100%;padding:6px 12px}.short-string{width:150px}select{display:block}.arg[disabled]{cursor:not-allowed;opacity:1}textarea.arg{width:100%;min-height:50px;height:70px;margin-top:5px;border:1px solid #ddd;resize:vertical}.arg-label{display:table-cell;width:1px;padding-right:10px;font-weight:400;white-space:pre}.title,optgroup{font-weight:700}.editable-option{position:relative;display:inline-block}.editable-option-input{position:absolute;top:1px;left:1px;width:calc(100% - 20px);height:calc(100% - 2px)!important;border:none!important}#operational-controls{width:65%;float:left;text-align:center}#bake-group{display:table;width:100%}#bake{display:table-cell;width:100%;border-top-right-radius:0;border-bottom-right-radius:0}#auto-bake-label{display:table-cell;padding:1px;line-height:1.35;width:60px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #5cb85c}#auto-bake-label:hover{border-left-color:#398439}#auto-bake-label div{font-size:10px;padding:2px}#extra-controls{float:right;width:35%;padding-left:10px}.op-icon{float:right;margin-left:10px;margin-top:3px}.recip-icons{position:absolute;top:13px;right:10px;height:16px}.recip-icon{margin-right:10px;vertical-align:baseline;float:right}.disable-icon{width:16px;height:16px;margin-top:-1px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAACfElEQVQ4y6WTPWgTYRjHf8nlfVvuoDVIP4Yuki4WHKoUqggFRUTsUEGkVG2hmCq6OnTwIxYHB+eijZOKdLNDW1pKKyGigh8dBHUJElxyBgx3vEnukvdyDrUhRXDxGR+e/+/583xEwjDkfyIGwNVTzURm4tYAMA6MAoN/0tvAMrA48uL+l2bx4w0iYRjSuHKC6OnTZLqHk8CcaZq9bW1tSCkBqNVq+L5PpVIpAHdGfr5LN9bXiT7Z2nGgteb1/qFkLBJZ6OjowHEc8vk8pVIJgHg8TldXF52dnb2u6y5s7R/iuF5JSyAKkLl4eyAMwznLsrBtm1wu99Z13amk+BFJih8R13WXANrb27EsizAM5zIXbw+wC9Baj0spe5VSFAqFt4ZhXJ6ufXuK55E5cDKVSCTGenp6yGazKKWQUvZqrcebgCAIRqWUOI6DEOLR1K8POapVMgfPpoC7u2LLspYcx0FKSRAEo60OBg3DwPd9Jr5vPqWvj8zh83vEwL2J75vnfN/HMAy01oPNNQZBQBAEO1OvVsl0D/8lTuZfpYDd7gRBQKuD7XK5jGmarB679PIv8deVFJUKq8cuTZqmSblcRmu93QpYVkohhMCyrLE94n2/UlSrbJy5kRBCXBNCoJRCa73cClh0XbfgeR6WZZHNZunv719KvnmeYnWVVxdmJ2Ox2DMhxFHP83Bdt6C1XgR2LvHzQDvvb84npZQL8Xgc0zSJRqN7br7RaFCpVCiVStRqtZmhh9fTh754TQdMr82nPc+bsW27UCwWUUpRr9ep1+sopSgWi9i2XfA8b2Z6bT6ttabp4GMi0uz0aXbhn890+MFM85mO5MIdwP/Eb1pMUCdctYRzAAAAAElFTkSuQmCC) no-repeat}.disable-icon-selected{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACFUlEQVR4XqWTP0tbURjGn9zY3mjBwsUhBQtS6XKxiNypIGZJ6SKYUYdaKWg7OrrE3pYO+Qit3dpFuuQO6lI7Z4nESQdLine truncated */.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.clo,.opn,.pun{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.kwd,.tag,.typ{font-weight:700}.str{color:#060}.kwd{color:#006}.com{color:#600;font-style:italic}.typ{color:#404}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}#content-wrapper{top:0;left:0;width:100%;height:100%}#banner{height:30px;text-align:center;line-height:30px}#wrapper{top:30px;bottom:0}div#operations,div#recipe{width:50%;height:100%}div#input,div#output{width:100%;height:50%}.title{padding:10px;height:43px}.textarea-wrapper{top:43px;bottom:0;width:100%;overflow:hidden}#output-html,textarea{width:100%;height:100%;border:none;padding:3px;-moz-padding-start:3px;-moz-padding-end:3px}#input-text,#output-html,#output-text{position:relative;border-width:0;margin:0;resize:none;background-color:transparent;white-space:pre-wrap;word-wrap:break-word}#output-html{display:none;overflow-y:auto;-moz-padding-start:1px}.split{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:auto;position:relative}.gutter.gutter-horizontal,.split.split-horizontal{height:100%;float:left}#input-highlighter,#output-highlighter{position:absolute;left:0;top:0;width:100%;height:100%;padding:3px;margin:0;overflow:hidden;letter-spacing:normal;white-space:pre-wrap;word-wrap:break-word;color:#fff;background-color:transparent;border:none}#op_list,#rec_list,.op_list{margin:0;padding:0;list-style-type:none}#op_list,#rec_list{position:absolute;top:43px;bottom:0;width:100%}.io-btn-group,.io-info{margin-top:-4px;float:right}#rec_list{bottom:120px;overflow:auto}.operation{cursor:pointer;padding:10px;list-style-type:none;position:relative}#controls{position:absolute;width:100%;height:120px;bottom:0;padding:10px}.io-info{margin-right:20px;height:30px;text-align:right;line-height:10px}.arg-group,.inline-args input[type=checkbox]{margin-top:10px}#input-info{line-height:15px}.arg-group{display:table;width:100%}.arg-group-text{display:block}.inline-args{float:left;width:auto;margin-right:30px;height:34px}.inline-args input[type=number]{width:100px}.arg-input{display:table-cell;width:100%;padding:6px 12px}.short-string{width:150px}select{display:block}.arg[disabled]{cursor:not-allowed;opacity:1}textarea.arg{width:100%;min-height:50px;height:70px;margin-top:5px;border:1px solid #ddd;resize:vertical}.arg-label{display:table-cell;width:1px;padding-right:10px;font-weight:400;white-space:pre}.title,optgroup{font-weight:700}.editable-option{position:relative;display:inline-block}.editable-option-input{position:absolute;top:1px;left:1px;width:calc(100% - 20px);height:calc(100% - 2px)!important;border:none!important}#operational-controls{width:65%;float:left;text-align:center}#bake-group{display:table;width:100%}#bake{display:table-cell;width:100%;border-top-right-radius:0;border-bottom-right-radius:0}#auto-bake-label{display:table-cell;padding:1px;line-height:1.35;width:60px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #5cb85c}#auto-bake-label:hover{border-left-color:#398439}#auto-bake-label div{font-size:10px;padding:2px}#extra-controls{float:right;width:35%;padding-left:10px}.op-icon{float:right;margin-left:10px;margin-top:3px}.recip-icons{position:absolute;top:13px;right:10px;height:16px}.recip-icon{margin-right:10px;vertical-align:baseline;float:right}.disable-icon{width:16px;height:16px;margin-top:-1px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAACfElEQVQ4y6WTPWgTYRjHf8nlfVvuoDVIP4Yuki4WHKoUqggFRUTsUEGkVG2hmCq6OnTwIxYHB+eijZOKdLNDW1pKKyGigh8dBHUJElxyBgx3vEnukvdyDrUhRXDxGR+e/+/583xEwjDkfyIGwNVTzURm4tYAMA6MAoN/0tvAMrA48uL+l2bx4w0iYRjSuHKC6OnTZLqHk8CcaZq9bW1tSCkBqNVq+L5PpVIpAHdGfr5LN9bXiT7Z2nGgteb1/qFkLBJZ6OjowHEc8vk8pVIJgHg8TldXF52dnb2u6y5s7R/iuF5JSyAKkLl4eyAMwznLsrBtm1wu99Z13amk+BFJih8R13WXANrb27EsizAM5zIXbw+wC9Baj0spe5VSFAqFt4ZhXJ6ufXuK55E5cDKVSCTGenp6yGazKKWQUvZqrcebgCAIRqWUOI6DEOLR1K8POapVMgfPpoC7u2LLspYcx0FKSRAEo60OBg3DwPd9Jr5vPqWvj8zh83vEwL2J75vnfN/HMAy01oPNNQZBQBAEO1OvVsl0D/8lTuZfpYDd7gRBQKuD7XK5jGmarB679PIv8deVFJUKq8cuTZqmSblcRmu93QpYVkohhMCyrLE94n2/UlSrbJy5kRBCXBNCoJRCa73cClh0XbfgeR6WZZHNZunv719KvnmeYnWVVxdmJ2Ox2DMhxFHP83Bdt6C1XgR2LvHzQDvvb84npZQL8Xgc0zSJRqN7br7RaFCpVCiVStRqtZmhh9fTh754TQdMr82nPc+bsW27UCwWUUpRr9ep1+sopSgWi9i2XfA8b2Z6bT6ttabp4GMi0uz0aXbhn890+MFM85mO5MIdwP/Eb1pMUCdctYRzAAAAAElFTkSuQmCC) no-repeat}.disable-icon-selected{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACFUlEQVR4XqWTP0tbURjGn9zY3mjBwsUhBQtS6XKxiNypIGZJ6SKYUYdaKWg7OrrE3pYO+Qit3dpFuuQO6lI7Z4nESQdLine truncated
if (navigator.userAgent && navigator.userAgent.match(/MSIE \d\d?\./)) { if (navigator.userAgent && navigator.userAgent.match(/MSIE \d\d?\./)) {
document.write("Internet Explorer is not supported, please use Firefox or Chrome instead"); document.write("Internet Explorer is not supported, please use Firefox or Chrome instead");
@@ -103,6 +104,13 @@
document.write("Internet Explorer is not supported, please use Firefox or Chrome instead"); document.write("Internet Explorer is not supported, please use Firefox or Chrome instead");
alert("Internet Explorer is not supported, please use Firefox or Chrome instead"); alert("Internet Explorer is not supported, please use Firefox or Chrome instead");
}</script><noscript>JavaScript is not enabled. Good luck.</noscript></span><a href="#" id="support" class="banner-right" data-toggle="modal" data-target="#support-modal">About / Support<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAE1UlEQVR4XoWVC0xT1x/Hv729t7e3LSoqWIRNW6uoARVH5mPGzfcmRvbSacISI5n42Mss25jROd0mOjXO7C9/3XSZdvjIlsxFYCrETWe34nQpD4GIIKgDIaAilpZH+9svJ9BUg/O0n9w2J+fz+55f77nVEREeN2wpWw0AEph7TPW1vMzHLpL/QzYJwGpmKjOM8TMSGJ6rAHCW2cFF6vsSiMR9pMtiMhIcVvMz44eBr0gcaRXzZVcbUXq1AS5PbRd/9gFYxfLDD4ulh6RjAFRqqpzxyco55q83vIwnrAPgKqnD29tP4N0deSgquwl73GAc2LhI2bRqbj9NVfbxulzG1KeYpSqA/LH2IcPz/5du5gVIXevE9kO/o8BdjVstXty67UXhXzXYffRPvP7xjxgcacEve5ZbEh0xswHsflTirZpRic5e96Jup/McPjvwK28/BlvemofjO9Nw7ps3ULBnGQ5uegVL5o1DEMCOHBcO5Rfjq8xUlYMs5XAzQjYiwvD5WZMYrzP3Eh095aHExV9SctoeOna6hB41jhWWUcraHHr+HSeddlfR4ZMesqVkNbLHws5Q4jcnxMeYZj7twC5OoaqKgACccl/F+r1nkLEtF0cKLocCzUq2QdNUaEYDvs31YO7kkUgaHWsGkBLeiqnTkmzcyyp0BwgGRYZqUOA8WYq9P13ClZt3cN8XgKv0Zkgs6yWYNIMQB0iHC+X1mJ48wgRgMnruSSOAJ8dxP8uvNUFR9EJsMMhQZL0oYFQNQpK+YEJIXFLTzFIVRhbzPGob7iLRYdVJkm56b+LxjI/vU1TWNkNmmcJigSgg2oKM1CQkjRoipNcb7yHPXSvSaizledQ1tmHM8CgQ0Zjek3efkXQ6HSTenqzXM5JIK8TMwmkOJI8WB0QInIVXoHBBjgdOCPBbkWWwA/zy94orGLm8pgkJ9iH4g/uoZzEDUYQLjHdEo3ecKa7nggoknuvq6hbFgkHCiLhIXLnezMV0HtEKPo5BAJXl1bcw1h4NTsBIAr2kEwWyj5dgs/MCvvjBg7vt3dA0g+gt70bsTC9LsA/tDw4XDASC58IPyNnzxXWB556ywWiQRQodw1sTpM0ZjRUpCVg2Jx6REUaYNFUIuXXghNB4TaI9CmeKqvwA3OHibe7iOl9R2Q2kp04UYhIQiAjRkSZYB5oQPUADKAifvxPd3QFuQZC/EhZMseO8p47+rvynHMCpkLjn0bdm4/9Pt09OiMPE+BixKBggcQUhNDo6u+HzdcDf0YVO7nF8XH/YrBFYtzuvnduwOPSsJqIQfCQLlmQe7mhobqM8VxUt//wEpW/NpzW7Cum97LP00X4XbfjOTRsPFtGn31+goooGarrjpUUf5Hj5PKwOd0kIG0R4qaj0+pF5q/d7iYLIWjUDrz47CuPsg2BW9TAZJIziH2nmhFisWZiI5tttNHPFPu/Fyzfer8n9MBsPyugBAFisU1a+Zpu/pSVt/VHf/uMXg+7SG9TS2i7g5zEd+PliYGlmjt/+wuby/o4ZswHEMpYwT/g/iLgLIgEMZAYp5qih/WzTZhksUQlqxOB4yOYoHQLBgL+1ydfaUNXZ2lDRWv2bC6AWAHcYvqKefb4+/5pYLgPQGBMT0UM/xsJIjK/ntLb1XL09+ClM9i/zfjVLWKBgfAAAAABJRU5ErkJggg=="></a><a href="#" id="options" class="banner-right">Options<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAD4UlEQVR4XpWTbWxTVRzGn9vhWlnZG1NYlwFLMGCUYfEt2dqwuDBfljGCUZkjgCgZyBeWBQ1ki1TmuvkFkw3JNAw1BhwmOslmtCwZmtDooCs6MCM4m6bQjtEVUtrStds9/s9J7/1wa5f4JE/+Pb25vzzPPedI0OgDEoAjEML75DGbzTaM/ykd0nVk/7v7cPjwITQ0bOsCcL6lpaUWgISFJXHeQmDT8U9PgMkySkwmDofRaBwEwDLBn9nzdfGHJ87JNL/SgiX6Ak+BRLUDHG7v7MJs/AHKysq0qbRQ/p6/bW8dTHlYTuthBSy1trbaALgJflSBWywWSFJaIRnpcl/6rBEulwtvVeZUm1caqkFaRH4oKyurbd/ePdBlZR8E0FpeXo61a9eAMZngEhKz0d95I2pzJT0tMDk5CZ/Ph49+jIJkUqv19vaO12+ue3Lx4oeRTCQIyIQV5eYXoKPDLl7ibVQo4HYefx0V+88iJfPlz7dfUcGUpthgMPz1Uk11/uNPrOMp1b0K37sLAc/LR4e9U8CH/I8t49DR3jfnnms6zVtvIuB/H0leta+v7zJNpnhoaCgxOxtnwekpdud2gMViUXbqVB+jtCwej4spkqeLomUQbwHASu7nZzo0E8TVGzfx8YAX3x+tRVXzgFpdA1DqqsrYhMxODoyKhB6PhzW0fcvOnDnN+DMNULPIcOiDt3x+ZV1UUooLx7ZgV6cDW8wGvLF5E9rb25UNnQYwr7nSmaGv1axB+4GXcWD786C1qP/qs3koLcrBVMDP24Dkp7kOGukWgu6ot0COBLEkPx/V5lwBnxj7FVarFQZ9Nmbu3Fbgbr75GnA69J2t67F760Y4fj6PX1zXAd0izM/NqWeVqmPpI8v4scwI12mhh962oLG2Amd/GMalax5UULqJib+RTMTBFQ6Hg4lE4mkOLyx6FCQVrtfrVbh6NVe9YmdfDv7GQvdjzNbdz3a9d4yd/OlPdvCT71hjcxfjz1fXNK8GkEM2NjU1VRKEybLMbvq8bOfOHeI3/09NTEndzbRB9VXr0X/uAjw+P6wvVIukfu8NXLwuIzk9Zo4FvbkACslLx8fHk+RantxEJ6anp4e3gZD4eCmtXFWKeZlh+pYnDRr5x1EVnBhJpoIU8Ol0OucABCKRyLbu7u5vQqEQKPFoMpm0A5BU8PCIEzNhMza+WIc/rqlQxLwjlQQNavZEVu6Aw+FwkVcAiJLjZLHLAly4vHjD4EX/GEhu8oNYRED1umiVXFByD4ACllLmYqm1TJ4XQGHxm6k3b8PuL8yhqQCHCxmXZK+42t8ypbn3UvpUn8spM+5/AT4U+4f4kq1OAAAAAElFTkSuQmCC"></a></div><div id="wrapper"><div id="operations" class="split split-horizontal no-select"><div class="title no-select">Operations</div><input type="search" class="form-control" id="search" placeholder="Search..." autocomplete="off"><ul class="op_list" id="search-results"></ul><div class="panel-group no-select" id="categories"></div></div><div id="recipe" class="split split-horizontal no-select"><div class="title no-select">Recipe</div><ul id="rec_list" class="no-select"></ul><div id="controls" class="no-select"><div id="operational-controls"><div id="bake-group"><button type="button" class="btn btn-success btn-lg" id="bake"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAGLklEQVR4Xq1XXWxUxxX+7t2769312muE7UCMowSXQDBxHmpo5VQqimQjRaiKlPBQiahKFaG8hCrICc4LT0lDhR8ixXnCElFaAQ9RUWLIgsHgKqCkpBY/TYrruja73nXtrL3e3/v7M5kzMtfRZlcBup/0aWbunXPON+foXp2RGGMgSJKEchw7diza1dV1QpblbgDtq/sq7iU/qxPYjnMLwLRt22f37t37MQC32n4FlSGPjIy8EolEhjs6OsBHBIJBWKYJ07Q4TVi2LdayoiDgDyAQUDgDkCUff64/YxjGM4VC4cXLly+fOHToUOjmzZt6xUCojGAoFBru6elB26ZNCPLgtmWBnwiO48B1XTicNDIiE3NBn0/mghvA7eHz+0FIJpP1qIjqGQiRMzoRnZTmXoq9MqxRU0vImxZ0XYdu6HytolDIT01P/3d8YGBgGID7oAJ8PwwmyzI/mY+EiCzkclkUcjkezBDrcDgsytTa2oKWllZMTf0be/bseRVAmjPDWXpQASKoZVli5LXEwuIictkVmIaJaNM6NESjaICEMA8cqqtDXbAOoWCQKIRyJDkXOI2HyYAzMTHxRwa8KUHyMwAdHZvRsbkDsuKHpmlQOTVVg8QFyjw7PsUvSKBx9dQaPDyYAO3w4cMnAHzO2XDt7zdiyYUMEqkluMwFwCCJ8pR/lhKEIE4PDylA55xfrV/Lmf5d2NbVwmvdhECoCYq/AbISAaR6JGZmcHc2Adex4GcmbDMPx2H/twCXU12lEqiPQjNCsJiMgOVAknUsLi4gHp9HV/dTeGH/87BtF6f/fAFNIQZeDABp3A/uKLine truncated }</script><noscript>JavaScript is not enabled. Good luck.</noscript></span><a href="#" id="support" class="banner-right" data-toggle="modal" data-target="#support-modal">About / Support<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAE1UlEQVR4XoWVC0xT1x/Hv729t7e3LSoqWIRNW6uoARVH5mPGzfcmRvbSacISI5n42Mss25jROd0mOjXO7C9/3XSZdvjIlsxFYCrETWe34nQpD4GIIKgDIaAilpZH+9svJ9BUg/O0n9w2J+fz+55f77nVEREeN2wpWw0AEph7TPW1vMzHLpL/QzYJwGpmKjOM8TMSGJ6rAHCW2cFF6vsSiMR9pMtiMhIcVvMz44eBr0gcaRXzZVcbUXq1AS5PbRd/9gFYxfLDD4ulh6RjAFRqqpzxyco55q83vIwnrAPgKqnD29tP4N0deSgquwl73GAc2LhI2bRqbj9NVfbxulzG1KeYpSqA/LH2IcPz/5du5gVIXevE9kO/o8BdjVstXty67UXhXzXYffRPvP7xjxgcacEve5ZbEh0xswHsflTirZpRic5e96Jup/McPjvwK28/BlvemofjO9Nw7ps3ULBnGQ5uegVL5o1DEMCOHBcO5Rfjq8xUlYMs5XAzQjYiwvD5WZMYrzP3Eh095aHExV9SctoeOna6hB41jhWWUcraHHr+HSeddlfR4ZMesqVkNbLHws5Q4jcnxMeYZj7twC5OoaqKgACccl/F+r1nkLEtF0cKLocCzUq2QdNUaEYDvs31YO7kkUgaHWsGkBLeiqnTkmzcyyp0BwgGRYZqUOA8WYq9P13ClZt3cN8XgKv0Zkgs6yWYNIMQB0iHC+X1mJ48wgRgMnruSSOAJ8dxP8uvNUFR9EJsMMhQZL0oYFQNQpK+YEJIXFLTzFIVRhbzPGob7iLRYdVJkm56b+LxjI/vU1TWNkNmmcJigSgg2oKM1CQkjRoipNcb7yHPXSvSaizledQ1tmHM8CgQ0Zjek3efkXQ6HSTenqzXM5JIK8TMwmkOJI8WB0QInIVXoHBBjgdOCPBbkWWwA/zy94orGLm8pgkJ9iH4g/uoZzEDUYQLjHdEo3ecKa7nggoknuvq6hbFgkHCiLhIXLnezMV0HtEKPo5BAJXl1bcw1h4NTsBIAr2kEwWyj5dgs/MCvvjBg7vt3dA0g+gt70bsTC9LsA/tDw4XDASC58IPyNnzxXWB556ywWiQRQodw1sTpM0ZjRUpCVg2Jx6REUaYNFUIuXXghNB4TaI9CmeKqvwA3OHibe7iOl9R2Q2kp04UYhIQiAjRkSZYB5oQPUADKAifvxPd3QFuQZC/EhZMseO8p47+rvynHMCpkLjn0bdm4/9Pt09OiMPE+BixKBggcQUhNDo6u+HzdcDf0YVO7nF8XH/YrBFYtzuvnduwOPSsJqIQfCQLlmQe7mhobqM8VxUt//wEpW/NpzW7Cum97LP00X4XbfjOTRsPFtGn31+goooGarrjpUUf5Hj5PKwOd0kIG0R4qaj0+pF5q/d7iYLIWjUDrz47CuPsg2BW9TAZJIziH2nmhFisWZiI5tttNHPFPu/Fyzfer8n9MBsPyugBAFisU1a+Zpu/pSVt/VHf/uMXg+7SG9TS2i7g5zEd+PliYGlmjt/+wuby/o4ZswHEMpYwT/g/iLgLIgEMZAYp5qih/WzTZhksUQlqxOB4yOYoHQLBgL+1ydfaUNXZ2lDRWv2bC6AWAHcYvqKefb4+/5pYLgPQGBMT0UM/xsJIjK/ntLb1XL09+ClM9i/zfjVLWKBgfAAAAABJRU5ErkJggg=="></a><a href="#" id="options" class="banner-right">Options<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAD4UlEQVR4XpWTbWxTVRzGn9vhWlnZG1NYlwFLMGCUYfEt2dqwuDBfljGCUZkjgCgZyBeWBQ1ki1TmuvkFkw3JNAw1BhwmOslmtCwZmtDooCs6MCM4m6bQjtEVUtrStds9/s9J7/1wa5f4JE/+Pb25vzzPPedI0OgDEoAjEML75DGbzTaM/ykd0nVk/7v7cPjwITQ0bOsCcL6lpaUWgISFJXHeQmDT8U9PgMkySkwmDofRaBwEwDLBn9nzdfGHJ87JNL/SgiX6Ak+BRLUDHG7v7MJs/AHKysq0qbRQ/p6/bW8dTHlYTuthBSy1trbaALgJflSBWywWSFJaIRnpcl/6rBEulwtvVeZUm1caqkFaRH4oKyurbd/ePdBlZR8E0FpeXo61a9eAMZngEhKz0d95I2pzJT0tMDk5CZ/Ph49+jIJkUqv19vaO12+ue3Lx4oeRTCQIyIQV5eYXoKPDLl7ibVQo4HYefx0V+88iJfPlz7dfUcGUpthgMPz1Uk11/uNPrOMp1b0K37sLAc/LR4e9U8CH/I8t49DR3jfnnms6zVtvIuB/H0leta+v7zJNpnhoaCgxOxtnwekpdud2gMViUXbqVB+jtCwej4spkqeLomUQbwHASu7nZzo0E8TVGzfx8YAX3x+tRVXzgFpdA1DqqsrYhMxODoyKhB6PhzW0fcvOnDnN+DMNULPIcOiDt3x+ZV1UUooLx7ZgV6cDW8wGvLF5E9rb25UNnQYwr7nSmaGv1axB+4GXcWD786C1qP/qs3koLcrBVMDP24Dkp7kOGukWgu6ot0COBLEkPx/V5lwBnxj7FVarFQZ9Nmbu3Fbgbr75GnA69J2t67F760Y4fj6PX1zXAd0izM/NqWeVqmPpI8v4scwI12mhh962oLG2Amd/GMalax5UULqJib+RTMTBFQ6Hg4lE4mkOLyx6FCQVrtfrVbh6NVe9YmdfDv7GQvdjzNbdz3a9d4yd/OlPdvCT71hjcxfjz1fXNK8GkEM2NjU1VRKEybLMbvq8bOfOHeI3/09NTEndzbRB9VXr0X/uAjw+P6wvVIukfu8NXLwuIzk9Zo4FvbkACslLx8fHk+RantxEJ6anp4e3gZD4eCmtXFWKeZlh+pYnDRr5x1EVnBhJpoIU8Ol0OucABCKRyLbu7u5vQqEQKPFoMpm0A5BU8PCIEzNhMza+WIc/rqlQxLwjlQQNavZEVu6Aw+FwkVcAiJLjZLHLAly4vHjD4EX/GEhu8oNYRED1umiVXFByD4ACllLmYqm1TJ4XQGHxm6k3b8PuL8yhqQCHCxmXZK+42t8ypbn3UvpUn8spM+5/AT4U+4f4kq1OAAAAAElFTkSuQmCC"></a></div><div id="wrapper"><div id="operations" class="split split-horizontal no-select"><div class="title no-select">Operations</div><input type="search" class="form-control" id="search" placeholder="Search..." autocomplete="off"><ul class="op_list" id="search-results"></ul><div class="panel-group no-select" id="categories"></div></div><div id="recipe" class="split split-horizontal no-select"><div class="title no-select">Recipe</div><ul id="rec_list" class="no-select"></ul><div id="controls" class="no-select"><div id="operational-controls"><div id="bake-group"><button type="button" class="btn btn-success btn-lg" id="bake"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAGLklEQVR4Xq1XXWxUxxX+7t2769312muE7UCMowSXQDBxHmpo5VQqimQjRaiKlPBQiahKFaG8hCrICc4LT0lDhR8ixXnCElFaAQ9RUWLIgsHgKqCkpBY/TYrruja73nXtrL3e3/v7M5kzMtfRZlcBup/0aWbunXPON+foXp2RGGMgSJKEchw7diza1dV1QpblbgDtq/sq7iU/qxPYjnMLwLRt22f37t37MQC32n4FlSGPjIy8EolEhjs6OsBHBIJBWKYJ07Q4TVi2LdayoiDgDyAQUDgDkCUff64/YxjGM4VC4cXLly+fOHToUOjmzZt6xUCojGAoFBru6elB26ZNCPLgtmWBnwiO48B1XTicNDIiE3NBn0/mghvA7eHz+0FIJpP1qIjqGQiRMzoRnZTmXoq9MqxRU0vImxZ0XYdu6HytolDIT01P/3d8YGBgGID7oAJ8PwwmyzI/mY+EiCzkclkUcjkezBDrcDgsytTa2oKWllZMTf0be/bseRVAmjPDWXpQASKoZVli5LXEwuIictkVmIaJaNM6NESjaICEMA8cqqtDXbAOoWCQKIRyJDkXOI2HyYAzMTHxRwa8KUHyMwAdHZvRsbkDsuKHpmlQOTVVg8QFyjw7PsUvSKBx9dQaPDyYAO3w4cMnAHzO2XDt7zdiyYUMEqkluMwFwCCJ8pR/lhKEIE4PDylA55xfrV/Lmf5d2NbVwmvdhECoCYq/AbISAaR6JGZmcHc2Adex4GcmbDMPx2H/twCXU12lEqiPQjNCsJiMgOVAknUsLi4gHp9HV/dTeGH/87BtF6f/fAFNIQZeDABp3A/uKLine truncated
>>>>>>> master
=======
*/.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.clo,.opn,.pun{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.kwd,.tag,.typ{font-weight:700}.str{color:#060}.kwd{color:#006}.com{color:#600;font-style:italic}.typ{color:#404}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}#content-wrapper{top:0;left:0;width:100%;height:100%}#banner{height:30px;text-align:center;line-height:30px}#wrapper{top:30px;bottom:0}div#operations,div#recipe{width:50%;height:100%}div#input,div#output{width:100%;height:50%}.title{padding:10px;height:43px}.textarea-wrapper{top:43px;bottom:0;width:100%;overflow:hidden}#output-html,textarea{width:100%;height:100%;border:none;padding:3px;-moz-padding-start:3px;-moz-padding-end:3px}#input-text,#output-html,#output-text{position:relative;border-width:0;margin:0;resize:none;background-color:transparent;white-space:pre-wrap;word-wrap:break-word}#output-html{display:none;overflow-y:auto;-moz-padding-start:1px}.split{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:auto;position:relative}.gutter.gutter-horizontal,.split.split-horizontal{height:100%;float:left}#input-highlighter,#output-highlighter{position:absolute;left:0;top:0;width:100%;height:100%;padding:3px;margin:0;overflow:hidden;letter-spacing:normal;white-space:pre-wrap;word-wrap:break-word;color:#fff;background-color:transparent;border:none}#op_list,#rec_list,.op_list{margin:0;padding:0;list-style-type:none}#op_list,#rec_list{position:absolute;top:43px;bottom:0;width:100%}.io-btn-group,.io-info{margin-top:-4px;float:right}#rec_list{bottom:120px;overflow:auto}.operation{cursor:pointer;padding:10px;list-style-type:none;position:relative}#controls{position:absolute;width:100%;height:120px;bottom:0;padding:10px}.io-info{margin-right:20px;height:30px;text-align:right;line-height:10px}.arg-group,.inline-args input[type=checkbox]{margin-top:10px}#input-info{line-height:15px}.arg-group{display:table;width:100%}.arg-group-text{display:block}.inline-args{float:left;width:auto;margin-right:30px;height:34px}.inline-args input[type=number]{width:100px}.arg-input{display:table-cell;width:100%;padding:6px 12px}.short-string{width:150px}select{display:block}.arg[disabled]{cursor:not-allowed;opacity:1}textarea.arg{width:100%;min-height:50px;height:70px;margin-top:5px;border:1px solid #ddd;resize:vertical}.arg-label{display:table-cell;width:1px;padding-right:10px;font-weight:400;white-space:pre}.title,optgroup{font-weight:700}.editable-option{position:relative;display:inline-block}.editable-option-input{position:absolute;top:1px;left:1px;width:calc(100% - 20px);height:calc(100% - 2px)!important;border:none!important}#operational-controls{width:65%;float:left;text-align:center}#bake-group{display:table;width:100%}#bake{display:table-cell;width:100%;border-top-right-radius:0;border-bottom-right-radius:0}#auto-bake-label{display:table-cell;padding:1px;line-height:1.35;width:60px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #5cb85c}#auto-bake-label:hover{border-left-color:#398439}#auto-bake-label div{font-size:10px;padding:2px}#extra-controls{float:right;width:35%;padding-left:10px}.op-icon{float:right;margin-left:10px;margin-top:3px}.recip-icons{position:absolute;top:13px;right:10px;height:16px}.recip-icon{margin-right:10px;vertical-align:baseline;float:right}.disable-icon{width:16px;height:16px;margin-top:-1px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAACfElEQVQ4y6WTPWgTYRjHf8nlfVvuoDVIP4Yuki4WHKoUqggFRUTsUEGkVG2hmCq6OnTwIxYHB+eijZOKdLNDW1pKKyGigh8dBHUJElxyBgx3vEnukvdyDrUhRXDxGR+e/+/583xEwjDkfyIGwNVTzURm4tYAMA6MAoN/0tvAMrA48uL+l2bx4w0iYRjSuHKC6OnTZLqHk8CcaZq9bW1tSCkBqNVq+L5PpVIpAHdGfr5LN9bXiT7Z2nGgteb1/qFkLBJZ6OjowHEc8vk8pVIJgHg8TldXF52dnb2u6y5s7R/iuF5JSyAKkLl4eyAMwznLsrBtm1wu99Z13amk+BFJih8R13WXANrb27EsizAM5zIXbw+wC9Baj0spe5VSFAqFt4ZhXJ6ufXuK55E5cDKVSCTGenp6yGazKKWQUvZqrcebgCAIRqWUOI6DEOLR1K8POapVMgfPpoC7u2LLspYcx0FKSRAEo60OBg3DwPd9Jr5vPqWvj8zh83vEwL2J75vnfN/HMAy01oPNNQZBQBAEO1OvVsl0D/8lTuZfpYDd7gRBQKuD7XK5jGmarB679PIv8deVFJUKq8cuTZqmSblcRmu93QpYVkohhMCyrLE94n2/UlSrbJy5kRBCXBNCoJRCa73cClh0XbfgeR6WZZHNZunv719KvnmeYnWVVxdmJ2Ox2DMhxFHP83Bdt6C1XgR2LvHzQDvvb84npZQL8Xgc0zSJRqN7br7RaFCpVCiVStRqtZmhh9fTh754TQdMr82nPc+bsW27UCwWUUpRr9ep1+sopSgWi9i2XfA8b2Z6bT6ttabp4GMi0uz0aXbhn890+MFM85mO5MIdwP/Eb1pMUCdctYRzAAAAAElFTkSuQmCC) no-repeat}.disable-icon-selected{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACFUlEQVR4XqWTP0tbURjGn9zY3mjBwsUhBQtS6XKxiNypIGZJ6SKYUYdaKWg7OrrE3pYO+Qit3dpFuuQO6lI7Z4nESQdLine truncated
if (navigator.userAgent && navigator.userAgent.match(/MSIE \d\d?\./)) {
document.write("Internet Explorer is not supported, please use Firefox or Chrome instead");
alert("Internet Explorer is not supported, please use Firefox or Chrome instead");
}</script><noscript>JavaScript is not enabled. Good luck.</noscript></span><a href="#" id="support" class="banner-right" data-toggle="modal" data-target="#support-modal">About / Support<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAE1UlEQVR4XoWVC0xT1x/Hv729t7e3LSoqWIRNW6uoARVH5mPGzfcmRvbSacISI5n42Mss25jROd0mOjXO7C9/3XSZdvjIlsxFYCrETWe34nQpD4GIIKgDIaAilpZH+9svJ9BUg/O0n9w2J+fz+55f77nVEREeN2wpWw0AEph7TPW1vMzHLpL/QzYJwGpmKjOM8TMSGJ6rAHCW2cFF6vsSiMR9pMtiMhIcVvMz44eBr0gcaRXzZVcbUXq1AS5PbRd/9gFYxfLDD4ulh6RjAFRqqpzxyco55q83vIwnrAPgKqnD29tP4N0deSgquwl73GAc2LhI2bRqbj9NVfbxulzG1KeYpSqA/LH2IcPz/5du5gVIXevE9kO/o8BdjVstXty67UXhXzXYffRPvP7xjxgcacEve5ZbEh0xswHsflTirZpRic5e96Jup/McPjvwK28/BlvemofjO9Nw7ps3ULBnGQ5uegVL5o1DEMCOHBcO5Rfjq8xUlYMs5XAzQjYiwvD5WZMYrzP3Eh095aHExV9SctoeOna6hB41jhWWUcraHHr+HSeddlfR4ZMesqVkNbLHws5Q4jcnxMeYZj7twC5OoaqKgACccl/F+r1nkLEtF0cKLocCzUq2QdNUaEYDvs31YO7kkUgaHWsGkBLeiqnTkmzcyyp0BwgGRYZqUOA8WYq9P13ClZt3cN8XgKv0Zkgs6yWYNIMQB0iHC+X1mJ48wgRgMnruSSOAJ8dxP8uvNUFR9EJsMMhQZL0oYFQNQpK+YEJIXFLTzFIVRhbzPGob7iLRYdVJkm56b+LxjI/vU1TWNkNmmcJigSgg2oKM1CQkjRoipNcb7yHPXSvSaizledQ1tmHM8CgQ0Zjek3efkXQ6HSTenqzXM5JIK8TMwmkOJI8WB0QInIVXoHBBjgdOCPBbkWWwA/zy94orGLm8pgkJ9iH4g/uoZzEDUYQLjHdEo3ecKa7nggoknuvq6hbFgkHCiLhIXLnezMV0HtEKPo5BAJXl1bcw1h4NTsBIAr2kEwWyj5dgs/MCvvjBg7vt3dA0g+gt70bsTC9LsA/tDw4XDASC58IPyNnzxXWB556ywWiQRQodw1sTpM0ZjRUpCVg2Jx6REUaYNFUIuXXghNB4TaI9CmeKqvwA3OHibe7iOl9R2Q2kp04UYhIQiAjRkSZYB5oQPUADKAifvxPd3QFuQZC/EhZMseO8p47+rvynHMCpkLjn0bdm4/9Pt09OiMPE+BixKBggcQUhNDo6u+HzdcDf0YVO7nF8XH/YrBFYtzuvnduwOPSsJqIQfCQLlmQe7mhobqM8VxUt//wEpW/NpzW7Cum97LP00X4XbfjOTRsPFtGn31+goooGarrjpUUf5Hj5PKwOd0kIG0R4qaj0+pF5q/d7iYLIWjUDrz47CuPsg2BW9TAZJIziH2nmhFisWZiI5tttNHPFPu/Fyzfer8n9MBsPyugBAFisU1a+Zpu/pSVt/VHf/uMXg+7SG9TS2i7g5zEd+PliYGlmjt/+wuby/o4ZswHEMpYwT/g/iLgLIgEMZAYp5qih/WzTZhksUQlqxOB4yOYoHQLBgL+1ydfaUNXZ2lDRWv2bC6AWAHcYvqKefb4+/5pYLgPQGBMT0UM/xsJIjK/ntLb1XL09+ClM9i/zfjVLWKBgfAAAAABJRU5ErkJggg=="></a><a href="#" id="options" class="banner-right">Options<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAD4UlEQVR4XpWTbWxTVRzGn9vhWlnZG1NYlwFLMGCUYfEt2dqwuDBfljGCUZkjgCgZyBeWBQ1ki1TmuvkFkw3JNAw1BhwmOslmtCwZmtDooCs6MCM4m6bQjtEVUtrStds9/s9J7/1wa5f4JE/+Pb25vzzPPedI0OgDEoAjEML75DGbzTaM/ykd0nVk/7v7cPjwITQ0bOsCcL6lpaUWgISFJXHeQmDT8U9PgMkySkwmDofRaBwEwDLBn9nzdfGHJ87JNL/SgiX6Ak+BRLUDHG7v7MJs/AHKysq0qbRQ/p6/bW8dTHlYTuthBSy1trbaALgJflSBWywWSFJaIRnpcl/6rBEulwtvVeZUm1caqkFaRH4oKyurbd/ePdBlZR8E0FpeXo61a9eAMZngEhKz0d95I2pzJT0tMDk5CZ/Ph49+jIJkUqv19vaO12+ue3Lx4oeRTCQIyIQV5eYXoKPDLl7ibVQo4HYefx0V+88iJfPlz7dfUcGUpthgMPz1Uk11/uNPrOMp1b0K37sLAc/LR4e9U8CH/I8t49DR3jfnnms6zVtvIuB/H0leta+v7zJNpnhoaCgxOxtnwekpdud2gMViUXbqVB+jtCwej4spkqeLomUQbwHASu7nZzo0E8TVGzfx8YAX3x+tRVXzgFpdA1DqqsrYhMxODoyKhB6PhzW0fcvOnDnN+DMNULPIcOiDt3x+ZV1UUooLx7ZgV6cDW8wGvLF5E9rb25UNnQYwr7nSmaGv1axB+4GXcWD786C1qP/qs3koLcrBVMDP24Dkp7kOGukWgu6ot0COBLEkPx/V5lwBnxj7FVarFQZ9Nmbu3Fbgbr75GnA69J2t67F760Y4fj6PX1zXAd0izM/NqWeVqmPpI8v4scwI12mhh962oLG2Amd/GMalax5UULqJib+RTMTBFQ6Hg4lE4mkOLyx6FCQVrtfrVbh6NVe9YmdfDv7GQvdjzNbdz3a9d4yd/OlPdvCT71hjcxfjz1fXNK8GkEM2NjU1VRKEybLMbvq8bOfOHeI3/09NTEndzbRB9VXr0X/uAjw+P6wvVIukfu8NXLwuIzk9Zo4FvbkACslLx8fHk+RantxEJ6anp4e3gZD4eCmtXFWKeZlh+pYnDRr5x1EVnBhJpoIU8Ol0OucABCKRyLbu7u5vQqEQKPFoMpm0A5BU8PCIEzNhMza+WIc/rqlQxLwjlQQNavZEVu6Aw+FwkVcAiJLjZLHLAly4vHjD4EX/GEhu8oNYRED1umiVXFByD4ACllLmYqm1TJ4XQGHxm6k3b8PuL8yhqQCHCxmXZK+42t8ypbn3UvpUn8spM+5/AT4U+4f4kq1OAAAAAElFTkSuQmCC"></a></div><div id="wrapper"><div id="operations" class="split split-horizontal no-select"><div class="title no-select">Operations</div><input type="search" class="form-control" id="search" placeholder="Search..." autocomplete="off"><ul class="op_list" id="search-results"></ul><div class="panel-group no-select" id="categories"></div></div><div id="recipe" class="split split-horizontal no-select"><div class="title no-select">Recipe</div><ul id="rec_list" class="no-select"></ul><div id="controls" class="no-select"><div id="operational-controls"><div id="bake-group"><button type="button" class="btn btn-success btn-lg" id="bake"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAGLklEQVR4Xq1XXWxUxxX+7t2769312muE7UCMowSXQDBxHmpo5VQqimQjRaiKlPBQiahKFaG8hCrICc4LT0lDhR8ixXnCElFaAQ9RUWLIgsHgKqCkpBY/TYrruja73nXtrL3e3/v7M5kzMtfRZlcBup/0aWbunXPON+foXp2RGGMgSJKEchw7diza1dV1QpblbgDtq/sq7iU/qxPYjnMLwLRt22f37t37MQC32n4FlSGPjIy8EolEhjs6OsBHBIJBWKYJ07Q4TVi2LdayoiDgDyAQUDgDkCUff64/YxjGM4VC4cXLly+fOHToUOjmzZt6xUCojGAoFBru6elB26ZNCPLgtmWBnwiO48B1XTicNDIiE3NBn0/mghvA7eHz+0FIJpP1qIjqGQiRMzoRnZTmXoq9MqxRU0vImxZ0XYdu6HytolDIT01P/3d8YGBgGID7oAJ8PwwmyzI/mY+EiCzkclkUcjkezBDrcDgsytTa2oKWllZMTf0be/bseRVAmjPDWXpQASKoZVli5LXEwuIictkVmIaJaNM6NESjaICEMA8cqqtDXbAOoWCQKIRyJDkXOI2HyYAzMTHxRwa8KUHyMwAdHZvRsbkDsuKHpmlQOTVVg8QFyjw7PsUvSKBx9dQaPDyYAO3w4cMnAHzO2XDt7zdiyYUMEqkluMwFwCCJ8pR/lhKEIE4PDylA55xfrV/Lmf5d2NbVwmvdhECoCYq/AbISAaR6JGZmcHc2Adex4GcmbDMPx2H/twCXU12lEqiPQjNCsJiMgOVAknUsLi4gHp9HV/dTeGH/87BtF6f/fAFNIQZeDABp3A/uKLine truncated
>>>>>>> master >>>>>>> master
* CyberChef - The Cyber Swiss Army Knife * CyberChef - The Cyber Swiss Army Knife
* *
@@ -361,6 +369,7 @@ function(){function a(a){var b=" ";if(isNaN(parseInt(a)))b=a;else switch(a){c
@license MIT @license MIT
*/ */
function(a){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a():"undefined"!=typeof Package?Sortable=a():window.Sortable=a()}(function(){function a(a,b){if(!a||!a.nodeType||1!==a.nodeType)throw"Sortable: `el` must be HTMLElement, and not "+{}.toString.call(a);this.el=a,this.options=b=s({},b),a[M]=this;var c={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(a.nodeName)?"li":">*",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",ignore:"a, img",filter:null,animation:0,setData:function(a,b){a.setData("Text",b.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1};for(var d in c)!(d in b)&&(b[d]=c[d]);W(b);for(var f in this)"_"===f.charAt(0)&&(this[f]=this[f].bind(this));this.nativeDraggable=!b.forceFallback&&Q,e(a,"mousedown",this._onTapStart),e(a,"touchstart",this._onTapStart),this.nativeDraggable&&(e(a,"dragover",this),e(a,"dragenter",this)),U.push(this._onDragOver),b.store&&this.sort(b.store.get(this))}function b(a){w&&w.state!==a&&(h(w,"display",a?"none":""),!a&&w.state&&x.insertBefore(w,t),w.state=a)}function c(a,b,c){if(a){c=c||O;do if(">*"===b&&a.parentNode===c||q(a,b))return a;while(a!==c&&(a=a.parentNode))}return null}function d(a){a.dataTransfer&&(a.dataTransfer.dropEffect="move"),a.preventDefault()}function e(a,b,c){a.addEventListener(b,c,!1)}function f(a,b,c){a.removeEventListener(b,c,!1)}function g(a,b,c){if(a)if(a.classList)a.classList[c?"add":"remove"](b);else{var d=(" "+a.className+" ").replace(L," ").replace(" "+b+" "," ");a.className=(d+(c?" "+b:"")).replace(L," ")}}function h(a,b,c){var d=a&&a.style;if(d){if(void 0===c)return O.defaultView&&O.defaultView.getComputedStyle?c=O.defaultView.getComputedStyle(a,""):a.currentStyle&&(c=a.currentStyle),void 0===b?c:c[b];b in d||(b="-webkit-"+b),d[b]=c+("string"==typeof c?"":"px")}}function i(a,b,c){if(a){var d=a.getElementsByTagName(b),e=0,f=d.length;if(c)for(;e<f;e++)c(d[e],e);return d}return[]}function j(a,b,c,d,e,f,g){var h=O.createEvent("Event"),i=(a||b[M]).options,j="on"+c.charAt(0).toUpperCase()+c.substr(1);h.initEvent(c,!0,!0),h.to=b,h.from=e||b,h.item=d||b,h.clone=w,h.oldIndex=f,h.newIndex=g,b.dispatchEvent(h),i[j]&&i[j].call(a,h)}function k(a,b,c,d,e,f){var g,h,i=a[M],j=i.options.onMove;return g=O.createEvent("Event"),g.initEvent("move",!0,!0),g.to=b,g.from=a,g.dragged=c,g.draggedRect=d,g.related=e||b,g.relatedRect=f||b.getBoundingClientRect(),a.dispatchEvent(g),j&&(h=j.call(i,g)),h}function l(a){a.draggable=!1}function m(){S=!1}function n(a,b){var c=a.lastElementChild,d=c.getBoundingClientRect();return(b.clientY-(d.top+d.height)>5||b.clientX-(d.right+d.width)>5)&&c}function o(a){for(var b=a.tagName+a.className+a.src+a.href+a.textContent,c=b.length,d=0;c--;)d+=b.charCodeAt(c);return d.toString(36)}function p(a,b){var c=0;if(!a||!a.parentNode)return-1;for(;a&&(a=a.previousElementSibling);)"TEMPLATE"!==a.nodeName.toUpperCase()&&q(a,b)&&c++;return c}function q(a,b){if(a){b=b.split(".");var c=b.shift().toUpperCase(),d=new RegExp("\\s("+b.join("|")+")(?=\\s)","g");return!(""!==c&&a.nodeName.toUpperCase()!=c||b.length&&((" "+a.className+" ").match(d)||[]).length!=b.length)}return!1}function r(a,b){var c,d;return function(){void 0===c&&(c=arguments,d=this,setTimeout(function(){1===c.length?a.call(d,c[0]):a.apply(d,c),c=void 0},b))}}function s(a,b){if(a&&b)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}if("undefined"==typeof window||"undefined"==typeof window.document)return function(){throw new Error("Sortable.js requires a window with a document")};var t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K={},L=/\s+/g,M="Sortable"+(new Date).getTime(),N=window,O=N.document,P=N.parseInt,Q=!!("draggable"in O.createElement("div")),R=function(a){return a=O.createElement("x"),a.style.cssText="pointer-events:auto","auto"===a.style.pointerEvents}(),S=!1,T=Math.abs,U=([].slice,[]),V=r(function(a,b,c){if(c&&b.scroll){var d,e,f,g,h=b.scrollSensitivity,i=b.scrollSpeed,j=a.clientX,k=a.clientY,l=window.innerWidth,m=window.innerHeight;if(A!==c&&(z=b.scroll,A=c,z===!0)){z=c;do if(z.offsetWidth<z.scrollWidth||z.offsetHeight<z.scrollHeight)break;while(z=z.parentNode)}z&&(d=z,e=z.getBoundingClientRect(),f=(T(e.right-j)<=h)-(T(e.left-j)<=h),g=(T(e.bottom-k)<=h)-(T(e.top-k)<=h)),f||g||(f=(l-j<=h)-(j<=h),g=(m-k<=h)-(k<=h),(f||g)&&(d=N)),K.vx===f&&K.vy===g&&K.el===d||(K.el=d,K.vx=f,K.vy=g,clearInterval(K.pid),d&&(K.pid=setInterval(function(){d===N?N.scrollTo(N.pageXOffset+f*i,N.pageYOffset+g*i):(g&&(d.scrollTop+=g*i),f&&(d.scrollLeft+=f*i))},24)))}},30),W=function(a){var b=a.group;b&&"object"==typeof b||(b=a.group={name:b}),["pull","put"].forEach(function(a){a in b||(b[a]=!0)}),a.groups=" "+b.name+(b.put.join?" "+b.put.join(" "):"")+" "};return a.prototype={constructor:a,_onTapStart:function(a){var b=this,d=this.el,e=thisLine truncated function(a){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a():"undefined"!=typeof Package?Sortable=a():window.Sortable=a()}(function(){function a(a,b){if(!a||!a.nodeType||1!==a.nodeType)throw"Sortable: `el` must be HTMLElement, and not "+{}.toString.call(a);this.el=a,this.options=b=s({},b),a[M]=this;var c={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(a.nodeName)?"li":">*",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",ignore:"a, img",filter:null,animation:0,setData:function(a,b){a.setData("Text",b.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1};for(var d in c)!(d in b)&&(b[d]=c[d]);W(b);for(var f in this)"_"===f.charAt(0)&&(this[f]=this[f].bind(this));this.nativeDraggable=!b.forceFallback&&Q,e(a,"mousedown",this._onTapStart),e(a,"touchstart",this._onTapStart),this.nativeDraggable&&(e(a,"dragover",this),e(a,"dragenter",this)),U.push(this._onDragOver),b.store&&this.sort(b.store.get(this))}function b(a){w&&w.state!==a&&(h(w,"display",a?"none":""),!a&&w.state&&x.insertBefore(w,t),w.state=a)}function c(a,b,c){if(a){c=c||O;do if(">*"===b&&a.parentNode===c||q(a,b))return a;while(a!==c&&(a=a.parentNode))}return null}function d(a){a.dataTransfer&&(a.dataTransfer.dropEffect="move"),a.preventDefault()}function e(a,b,c){a.addEventListener(b,c,!1)}function f(a,b,c){a.removeEventListener(b,c,!1)}function g(a,b,c){if(a)if(a.classList)a.classList[c?"add":"remove"](b);else{var d=(" "+a.className+" ").replace(L," ").replace(" "+b+" "," ");a.className=(d+(c?" "+b:"")).replace(L," ")}}function h(a,b,c){var d=a&&a.style;if(d){if(void 0===c)return O.defaultView&&O.defaultView.getComputedStyle?c=O.defaultView.getComputedStyle(a,""):a.currentStyle&&(c=a.currentStyle),void 0===b?c:c[b];b in d||(b="-webkit-"+b),d[b]=c+("string"==typeof c?"":"px")}}function i(a,b,c){if(a){var d=a.getElementsByTagName(b),e=0,f=d.length;if(c)for(;e<f;e++)c(d[e],e);return d}return[]}function j(a,b,c,d,e,f,g){var h=O.createEvent("Event"),i=(a||b[M]).options,j="on"+c.charAt(0).toUpperCase()+c.substr(1);h.initEvent(c,!0,!0),h.to=b,h.from=e||b,h.item=d||b,h.clone=w,h.oldIndex=f,h.newIndex=g,b.dispatchEvent(h),i[j]&&i[j].call(a,h)}function k(a,b,c,d,e,f){var g,h,i=a[M],j=i.options.onMove;return g=O.createEvent("Event"),g.initEvent("move",!0,!0),g.to=b,g.from=a,g.dragged=c,g.draggedRect=d,g.related=e||b,g.relatedRect=f||b.getBoundingClientRect(),a.dispatchEvent(g),j&&(h=j.call(i,g)),h}function l(a){a.draggable=!1}function m(){S=!1}function n(a,b){var c=a.lastElementChild,d=c.getBoundingClientRect();return(b.clientY-(d.top+d.height)>5||b.clientX-(d.right+d.width)>5)&&c}function o(a){for(var b=a.tagName+a.className+a.src+a.href+a.textContent,c=b.length,d=0;c--;)d+=b.charCodeAt(c);return d.toString(36)}function p(a,b){var c=0;if(!a||!a.parentNode)return-1;for(;a&&(a=a.previousElementSibling);)"TEMPLATE"!==a.nodeName.toUpperCase()&&q(a,b)&&c++;return c}function q(a,b){if(a){b=b.split(".");var c=b.shift().toUpperCase(),d=new RegExp("\\s("+b.join("|")+")(?=\\s)","g");return!(""!==c&&a.nodeName.toUpperCase()!=c||b.length&&((" "+a.className+" ").match(d)||[]).length!=b.length)}return!1}function r(a,b){var c,d;return function(){void 0===c&&(c=arguments,d=this,setTimeout(function(){1===c.length?a.call(d,c[0]):a.apply(d,c),c=void 0},b))}}function s(a,b){if(a&&b)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}if("undefined"==typeof window||"undefined"==typeof window.document)return function(){throw new Error("Sortable.js requires a window with a document")};var t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K={},L=/\s+/g,M="Sortable"+(new Date).getTime(),N=window,O=N.document,P=N.parseInt,Q=!!("draggable"in O.createElement("div")),R=function(a){return a=O.createElement("x"),a.style.cssText="pointer-events:auto","auto"===a.style.pointerEvents}(),S=!1,T=Math.abs,U=([].slice,[]),V=r(function(a,b,c){if(c&&b.scroll){var d,e,f,g,h=b.scrollSensitivity,i=b.scrollSpeed,j=a.clientX,k=a.clientY,l=window.innerWidth,m=window.innerHeight;if(A!==c&&(z=b.scroll,A=c,z===!0)){z=c;do if(z.offsetWidth<z.scrollWidth||z.offsetHeight<z.scrollHeight)break;while(z=z.parentNode)}z&&(d=z,e=z.getBoundingClientRect(),f=(T(e.right-j)<=h)-(T(e.left-j)<=h),g=(T(e.bottom-k)<=h)-(T(e.top-k)<=h)),f||g||(f=(l-j<=h)-(j<=h),g=(m-k<=h)-(k<=h),(f||g)&&(d=N)),K.vx===f&&K.vy===g&&K.el===d||(K.el=d,K.vx=f,K.vy=g,clearInterval(K.pid),d&&(K.pid=setInterval(function(){d===N?N.scrollTo(N.pageXOffset+f*i,N.pageYOffset+g*i):(g&&(d.scrollTop+=g*i),f&&(d.scrollLeft+=f*i))},24)))}},30),W=function(a){var b=a.group;b&&"object"==typeof b||(b=a.group={name:b}),["pull","put"].forEach(function(a){a in b||(b[a]=!0)}),a.groups=" "+b.name+(b.put.join?" "+b.put.join(" "):"")+" "};return a.prototype={constructor:a,_onTapStart:function(a){var b=this,d=this.el,e=thisLine truncated
<<<<<<< HEAD
h.fillStyle="green";for(var u=0;u<b.length;u++){var v=b[u]/t*m;h.fillRect(s,o-v,r,v),s+=r+q}if(h.fillStyle="black",h.textAlign="center",s=i+q,e>=b.length)for(var u=0;u<=b.length;u++)h.fillText(u,s,o+.3*l),s+=r+q;else for(var u=0;u<=e;u++){var w=Math.ceil(b.length/e*u);s=n/e*u+i,h.fillText(w,s,o+.3*l)}h.textAlign="right";var x;if(f>=t)for(var u=0;u<=t;u++)x=o-u/t*m+g/3,h.fillText(u,.8*i,x);else for(var u=0;u<=f;u++){var w=Math.ceil(t/f*u);x=o-w/t*m+g/3,h.fillText(w,.8*i,x)}if(c&&(h.textAlign="center",h.fillText(c,n/2+i,o+.8*l)),d){h.save();var y=.3*i,z=m/2+k;h.translate(y,z),h.rotate(-Math.PI/2),h.textAlign="center",h.fillText(d,0,0),h.restore()}},draw_scale_bar:function(a,b,c,d){var e=a.getContext("2d"),f=.01*a.width,g=.01*a.width,h=.1*a.height,i=.3*a.height,j=a.height-h-i,k=a.width-f-g,l=b/c;e.strokeRect(f,h,k,j);var m=e.createLinearGradient(f,0,k+f,0);m.addColorStop(0,"green"),m.addColorStop(.5,"gold"),m.addColorStop(1,"red"),e.fillStyle=m,e.fillRect(f,h,k*l,j);var n,o,p,q;e.fillStyle="black",e.textAlign="center",e.font="13px Arial";for(var r=0;r<d.length;r++)n=k/c*d[r].min+f,o=h+j+.1*i,p=n,q=h+j+.3*i,CanvasComponents.draw_line(e,n,o,p,q),n=k/c*d[r].max+f,p=n,CanvasComponents.draw_line(e,n,o,p,q),n=k/c*d[r].min+f,o=h+j+.3*i,p=k/c*d[r].max+f,q=o,CanvasComponents.draw_line(e,n,o,p,q),d[r].max>=.9*c?(e.textAlign="right",n=p):d[r].max<=.1*c?e.textAlign="left":n+=(p-n)/2,o=h+j+.8*i,e.fillText(d[r].label,n,o)}},Utils={chr:function(a){return String.fromCharCode(a)},ord:function(a){return a.charCodeAt(0)},pad_left:function(a,b,c){c=c||"0";var d=c.length-(b-a.length);return d=d<0?0:d,a.length<b?Utils.pad_left(c.slice(d,c.length)+a,b,c):a},pad_right:function(a,b,c){return c=c||" ",a.length<b?Utils.pad_right(a+c.slice(0,b-a.length),b,c):a},pad:function(a,b,c){return Utils.pad_left(a,b,c)},truncate:function(a,b,c){return c=c||"...",a.length>b&&(a=a.slice(0,b-c.length)+c),a},hex:function(a,b){return a="string"==typeof a?Utils.ord(a):a,b=b||2,Utils.pad(a.toString(16),b)},bin:function(a,b){return a="string"==typeof a?Utils.ord(a):a,b=b||8,Utils.pad(a.toString(2),b)},printable:function(a,b){window&&window.app&&!window.app.options.treat_as_utf8&&(a=Utils.byte_array_to_chars(Utils.str_to_byte_array(a)));var c=/[\0-\x08\x0B-\x0C\x0E-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2FLine truncated h.fillStyle="green";for(var u=0;u<b.length;u++){var v=b[u]/t*m;h.fillRect(s,o-v,r,v),s+=r+q}if(h.fillStyle="black",h.textAlign="center",s=i+q,e>=b.length)for(var u=0;u<=b.length;u++)h.fillText(u,s,o+.3*l),s+=r+q;else for(var u=0;u<=e;u++){var w=Math.ceil(b.length/e*u);s=n/e*u+i,h.fillText(w,s,o+.3*l)}h.textAlign="right";var x;if(f>=t)for(var u=0;u<=t;u++)x=o-u/t*m+g/3,h.fillText(u,.8*i,x);else for(var u=0;u<=f;u++){var w=Math.ceil(t/f*u);x=o-w/t*m+g/3,h.fillText(w,.8*i,x)}if(c&&(h.textAlign="center",h.fillText(c,n/2+i,o+.8*l)),d){h.save();var y=.3*i,z=m/2+k;h.translate(y,z),h.rotate(-Math.PI/2),h.textAlign="center",h.fillText(d,0,0),h.restore()}},draw_scale_bar:function(a,b,c,d){var e=a.getContext("2d"),f=.01*a.width,g=.01*a.width,h=.1*a.height,i=.3*a.height,j=a.height-h-i,k=a.width-f-g,l=b/c;e.strokeRect(f,h,k,j);var m=e.createLinearGradient(f,0,k+f,0);m.addColorStop(0,"green"),m.addColorStop(.5,"gold"),m.addColorStop(1,"red"),e.fillStyle=m,e.fillRect(f,h,k*l,j);var n,o,p,q;e.fillStyle="black",e.textAlign="center",e.font="13px Arial";for(var r=0;r<d.length;r++)n=k/c*d[r].min+f,o=h+j+.1*i,p=n,q=h+j+.3*i,CanvasComponents.draw_line(e,n,o,p,q),n=k/c*d[r].max+f,p=n,CanvasComponents.draw_line(e,n,o,p,q),n=k/c*d[r].min+f,o=h+j+.3*i,p=k/c*d[r].max+f,q=o,CanvasComponents.draw_line(e,n,o,p,q),d[r].max>=.9*c?(e.textAlign="right",n=p):d[r].max<=.1*c?e.textAlign="left":n+=(p-n)/2,o=h+j+.8*i,e.fillText(d[r].label,n,o)}},Utils={chr:function(a){return String.fromCharCode(a)},ord:function(a){return a.charCodeAt(0)},pad_left:function(a,b,c){c=c||"0";var d=c.length-(b-a.length);return d=d<0?0:d,a.length<b?Utils.pad_left(c.slice(d,c.length)+a,b,c):a},pad_right:function(a,b,c){return c=c||" ",a.length<b?Utils.pad_right(a+c.slice(0,b-a.length),b,c):a},pad:function(a,b,c){return Utils.pad_left(a,b,c)},truncate:function(a,b,c){return c=c||"...",a.length>b&&(a=a.slice(0,b-c.length)+c),a},hex:function(a,b){return a="string"==typeof a?Utils.ord(a):a,b=b||2,Utils.pad(a.toString(16),b)},bin:function(a,b){return a="string"==typeof a?Utils.ord(a):a,b=b||8,Utils.pad(a.toString(2),b)},printable:function(a,b){window&&window.app&&!window.app.options.treat_as_utf8&&(a=Utils.byte_array_to_chars(Utils.str_to_byte_array(a)));var c=/[\0-\x08\x0B-\x0C\x0E-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2FLine truncated
<<<<<<< HEAD <<<<<<< HEAD
var c=b[0]/32,d=b[1],e=CryptoJS.enc.Hex.parse(b[2]||""),f=b[3],g=b[4],h=Utils.format[f].parse(a),i=CryptoJS.EvpKDF(h,e,{keySize:c,iterations:d});return i.toString(Utils.format[g])},run_rc4:function(a,b){var c=Utils.format[b[1]].parse(a),d=Utils.format[b[0].option].parse(b[0].string),e=CryptoJS.RC4.encrypt(c,d);return e.ciphertext.toString(Utils.format[b[2]])},RC4DROP_BYTES:768,run_rc4drop:function(a,b){var c=Utils.format[b[1]].parse(a),d=Utils.format[b[0].option].parse(b[0].string),e=b[3],f=CryptoJS.RC4Drop.encrypt(c,d,{drop:e});return f.ciphertext.toString(Utils.format[b[2]])},VIG_ENC_KEY:"cipher",run_vigenc:function(a,b){var c,d,e,f="abcdefghijklmnopqrstuvwxyz",g=b[0].toLowerCase(),h="",i=0;if(!g)throw"A keyword is required.";if(!/^[a-zA-Z]+$/.test(g))throw"Keyword can only consist of letters.";for(var j=0;j<a.length;j++)f.indexOf(a[j])>=0?(e=g[(j-i)%g.length],c=f.indexOf(e),d=f.indexOf(a[j]),h+=f[(c+d)%26]):f.indexOf(a[j].toLowerCase())>=0?(e=g[(j-i)%g.length].toLowerCase(),c=f.indexOf(e),d=f.indexOf(a[j].toLowerCase()),h+=f[(c+d)%26].toUpperCase()):(h+=a[j],i++);return h},VIG_DEC_KEY:"cipher",run_vigdec:function(a,b){var c,d,e,f="abcdefghijklmnopqrstuvwxyz",g=b[0].toLowerCase(),h="",i=0;if(!g)throw"A keyword is required.";if(!/^[a-zA-Z]+$/.test(g))throw"Keyword can only consist of letters.";for(var j=0;j<a.length;j++)f.indexOf(a[j])>=0?(e=g[(j-i)%g.length],c=f.indexOf(e),d=f.indexOf(a[j]),h+=f[(d-c+f.length)%26]):f.indexOf(a[j].toLowerCase())>=0?(e=g[(j-i)%g.length].toLowerCase(),c=f.indexOf(e),d=f.indexOf(a[j].toLowerCase()),h+=f[(d+f.length-c)%26].toUpperCase()):(h+=a[j],i++);return h}};CryptoJS.kdf.OpenSSL.execute=function(a,b,c,d){void 0!==d&&null!==d||(d=CryptoJS.lib.WordArray.random(8));var e=CryptoJS.algo.EvpKDF.create({keySize:b+c}).compute(a,d),f=CryptoJS.lib.WordArray.create(e.words.slice(b),4*c);return e.sigBytes=4*b,CryptoJS.lib.CipherParams.create({key:e,iv:f,salt:d})};var Code={LANGUAGES:["default-code","default-markup","bash","bsh","c","cc","coffee","cpp","cs","csh","cv","cxx","cyc","htm","html","in.tag","java","javascript","js","json","m","mxml","perl","pl","pm","py","python","rb","rc","rs","ruby","rust","sh","uq.val","xhtml","xml","xsl"],LINE_NUMS:!1,run_syntax_highlight:function(a,b){var c=b[0],d=b[1];return"<code class='prettyprint'>"+prettyPrintOne(Utils.escape_html(a),c,d)+"</code>"},BEAUTIFY_INDENT:"\\t",run_xml_beautify:function(a,b){var c=b[0];return vkbeautify.xml(a,c)},run_json_beautify:function(a,b){var c=b[0];return a?vkbeautify.json(a,c):""},run_css_beautify:function(a,b){var c=b[0];return vkbeautify.css(a,c)},run_sql_beautify:function(a,b){var c=b[0];return vkbeautify.sql(a,c)},PRESERVE_COMMENTS:!1,run_xml_minify:function(a,b){var c=b[0];return vkbeautify.xmlmin(a,c)},run_json_minify:function(a,b){return a?vkbeautify.jsonmin(a):""},run_css_minify:function(a,b){var c=b[0];return vkbeautify.cssmin(a,c)},run_sql_minify:function(a,b){return vkbeautify.sqlmin(a)},run_generic_beautify:function(a,b){function c(a,b,c){return g[c]=b[0],a.substring(0,b.index)+"###preserved_token"+c+"###"+a.substring(b.index+b[0].length)}for(var d,e=a,f=0,g=[],h=/'([^'\\]|\\.)*'/g;d=h.exec(e);)e=c(e,d,f++),h.lastIndex=d.index;for(var i=/"([^"\\]|\\.)*"/g;d=i.exec(e);)e=c(e,d,f++),i.lastIndex=d.index;for(var j=/\/\/[^\n\r]*/g;d=j.exec(e);)e=c(e,d,f++),j.lastIndex=d.index;for(var k=/\/\*[\s\S]*?\*\//gm;d=k.exec(e);)e=c(e,d,f++),k.lastIndex=d.index;for(var l=/(^|\n)#[^\n\r#]+/g;d=l.exec(e);)e=c(e,d,f++),l.lastIndex=d.index;for(var m=/\/.*?[^\\]\/[gim]{0,3}/gi;d=m.exec(e);)e=c(e,d,f++),m.lastIndex=d.index;e=e.replace(/;/g,";\n"),e=e.replace(/{/g,"{\n"),e=e.replace(/}/g,"\n}\n"),e=e.replace(/\r/g,""),e=e.replace(/^\s+/g,""),e=e.replace(/\n\s+/g,"\n"),e=e.replace(/\s*$/g,""),e=e.replace(/\n{/g,"{");for(var n=0,o=0;n<e.length;){switch(e[n]){case"{":o++;break;case"\n":if(n+1>=e.length)break;"}"==e[n+1]&&o--;var p=o>=0?Array(4*o+1).join(" "):"";e=e.substring(0,n+1)+p+e.substring(n+1),o>0&&(n+=4*o)}n++}e=e.replace(/\s*([!<>=+-\/*]?)=\s*/g," $1= "),e=e.replace(/\s*<([=]?)\s*/g," <$1 "),e=e.replace(/\s*>([=]?)\s*/g," >$1 "),e=e.replace(/([^+])\+([^+=])/g,"$1 + $2"),e=e.replace(/([^-])-([^-=])/g,"$1 - $2"),e=e.replace(/([^*])\*([^*=])/g,"$1 * $2"),e=e.replace(/([^\/])\/([^\/=])/g,"$1 / $2"),e=e.replace(/\s*,\s*/g,", "),e=e.replace(/\s*{/g," {"),e=e.replace(/}\n/g,"}\n\n"),e=e.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)\s*\n([^{])/gim,"$1 ($2)\n $3"),e=e.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)([^{])/gim,"$1 ($2) $3"),e=e.replace(/else\s*\n([^{])/gim,"else\n $1"),e=e.replace(/else\s+([^{])/gim,"else $1"),e=e.replace(/\s+;/g,";"),e=e.replace(/\{\s+\}/g,"{}"),e=e.replace(/\[\s+\]/g,"[]"),e=e.replace(/}\s*(else|catch|except|finally|elif|elseif|else if)/gi,"} $1");for(var q=/###preserved_token(\d+)###/g;d=q.exec(e);){var r=parseInt(d[1]);e=e.substring(0,d.index)+g[r]+e.substring(d.index+d[0].length),q.lastIndex=d.index}return e}},Compress={COMPRESSION_TYPE:["Dynamic Huffman Coding","FiLine truncated var c=b[0]/32,d=b[1],e=CryptoJS.enc.Hex.parse(b[2]||""),f=b[3],g=b[4],h=Utils.format[f].parse(a),i=CryptoJS.EvpKDF(h,e,{keySize:c,iterations:d});return i.toString(Utils.format[g])},run_rc4:function(a,b){var c=Utils.format[b[1]].parse(a),d=Utils.format[b[0].option].parse(b[0].string),e=CryptoJS.RC4.encrypt(c,d);return e.ciphertext.toString(Utils.format[b[2]])},RC4DROP_BYTES:768,run_rc4drop:function(a,b){var c=Utils.format[b[1]].parse(a),d=Utils.format[b[0].option].parse(b[0].string),e=b[3],f=CryptoJS.RC4Drop.encrypt(c,d,{drop:e});return f.ciphertext.toString(Utils.format[b[2]])},VIG_ENC_KEY:"cipher",run_vigenc:function(a,b){var c,d,e,f="abcdefghijklmnopqrstuvwxyz",g=b[0].toLowerCase(),h="",i=0;if(!g)throw"A keyword is required.";if(!/^[a-zA-Z]+$/.test(g))throw"Keyword can only consist of letters.";for(var j=0;j<a.length;j++)f.indexOf(a[j])>=0?(e=g[(j-i)%g.length],c=f.indexOf(e),d=f.indexOf(a[j]),h+=f[(c+d)%26]):f.indexOf(a[j].toLowerCase())>=0?(e=g[(j-i)%g.length].toLowerCase(),c=f.indexOf(e),d=f.indexOf(a[j].toLowerCase()),h+=f[(c+d)%26].toUpperCase()):(h+=a[j],i++);return h},VIG_DEC_KEY:"cipher",run_vigdec:function(a,b){var c,d,e,f="abcdefghijklmnopqrstuvwxyz",g=b[0].toLowerCase(),h="",i=0;if(!g)throw"A keyword is required.";if(!/^[a-zA-Z]+$/.test(g))throw"Keyword can only consist of letters.";for(var j=0;j<a.length;j++)f.indexOf(a[j])>=0?(e=g[(j-i)%g.length],c=f.indexOf(e),d=f.indexOf(a[j]),h+=f[(d-c+f.length)%26]):f.indexOf(a[j].toLowerCase())>=0?(e=g[(j-i)%g.length].toLowerCase(),c=f.indexOf(e),d=f.indexOf(a[j].toLowerCase()),h+=f[(d+f.length-c)%26].toUpperCase()):(h+=a[j],i++);return h}};CryptoJS.kdf.OpenSSL.execute=function(a,b,c,d){void 0!==d&&null!==d||(d=CryptoJS.lib.WordArray.random(8));var e=CryptoJS.algo.EvpKDF.create({keySize:b+c}).compute(a,d),f=CryptoJS.lib.WordArray.create(e.words.slice(b),4*c);return e.sigBytes=4*b,CryptoJS.lib.CipherParams.create({key:e,iv:f,salt:d})};var Code={LANGUAGES:["default-code","default-markup","bash","bsh","c","cc","coffee","cpp","cs","csh","cv","cxx","cyc","htm","html","in.tag","java","javascript","js","json","m","mxml","perl","pl","pm","py","python","rb","rc","rs","ruby","rust","sh","uq.val","xhtml","xml","xsl"],LINE_NUMS:!1,run_syntax_highlight:function(a,b){var c=b[0],d=b[1];return"<code class='prettyprint'>"+prettyPrintOne(Utils.escape_html(a),c,d)+"</code>"},BEAUTIFY_INDENT:"\\t",run_xml_beautify:function(a,b){var c=b[0];return vkbeautify.xml(a,c)},run_json_beautify:function(a,b){var c=b[0];return a?vkbeautify.json(a,c):""},run_css_beautify:function(a,b){var c=b[0];return vkbeautify.css(a,c)},run_sql_beautify:function(a,b){var c=b[0];return vkbeautify.sql(a,c)},PRESERVE_COMMENTS:!1,run_xml_minify:function(a,b){var c=b[0];return vkbeautify.xmlmin(a,c)},run_json_minify:function(a,b){return a?vkbeautify.jsonmin(a):""},run_css_minify:function(a,b){var c=b[0];return vkbeautify.cssmin(a,c)},run_sql_minify:function(a,b){return vkbeautify.sqlmin(a)},run_generic_beautify:function(a,b){function c(a,b,c){return g[c]=b[0],a.substring(0,b.index)+"###preserved_token"+c+"###"+a.substring(b.index+b[0].length)}for(var d,e=a,f=0,g=[],h=/'([^'\\]|\\.)*'/g;d=h.exec(e);)e=c(e,d,f++),h.lastIndex=d.index;for(var i=/"([^"\\]|\\.)*"/g;d=i.exec(e);)e=c(e,d,f++),i.lastIndex=d.index;for(var j=/\/\/[^\n\r]*/g;d=j.exec(e);)e=c(e,d,f++),j.lastIndex=d.index;for(var k=/\/\*[\s\S]*?\*\//gm;d=k.exec(e);)e=c(e,d,f++),k.lastIndex=d.index;for(var l=/(^|\n)#[^\n\r#]+/g;d=l.exec(e);)e=c(e,d,f++),l.lastIndex=d.index;for(var m=/\/.*?[^\\]\/[gim]{0,3}/gi;d=m.exec(e);)e=c(e,d,f++),m.lastIndex=d.index;e=e.replace(/;/g,";\n"),e=e.replace(/{/g,"{\n"),e=e.replace(/}/g,"\n}\n"),e=e.replace(/\r/g,""),e=e.replace(/^\s+/g,""),e=e.replace(/\n\s+/g,"\n"),e=e.replace(/\s*$/g,""),e=e.replace(/\n{/g,"{");for(var n=0,o=0;n<e.length;){switch(e[n]){case"{":o++;break;case"\n":if(n+1>=e.length)break;"}"==e[n+1]&&o--;var p=o>=0?Array(4*o+1).join(" "):"";e=e.substring(0,n+1)+p+e.substring(n+1),o>0&&(n+=4*o)}n++}e=e.replace(/\s*([!<>=+-\/*]?)=\s*/g," $1= "),e=e.replace(/\s*<([=]?)\s*/g," <$1 "),e=e.replace(/\s*>([=]?)\s*/g," >$1 "),e=e.replace(/([^+])\+([^+=])/g,"$1 + $2"),e=e.replace(/([^-])-([^-=])/g,"$1 - $2"),e=e.replace(/([^*])\*([^*=])/g,"$1 * $2"),e=e.replace(/([^\/])\/([^\/=])/g,"$1 / $2"),e=e.replace(/\s*,\s*/g,", "),e=e.replace(/\s*{/g," {"),e=e.replace(/}\n/g,"}\n\n"),e=e.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)\s*\n([^{])/gim,"$1 ($2)\n $3"),e=e.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)([^{])/gim,"$1 ($2) $3"),e=e.replace(/else\s*\n([^{])/gim,"else\n $1"),e=e.replace(/else\s+([^{])/gim,"else $1"),e=e.replace(/\s+;/g,";"),e=e.replace(/\{\s+\}/g,"{}"),e=e.replace(/\[\s+\]/g,"[]"),e=e.replace(/}\s*(else|catch|except|finally|elif|elseif|else if)/gi,"} $1");for(var q=/###preserved_token(\d+)###/g;d=q.exec(e);){var r=parseInt(d[1]);e=e.substring(0,d.index)+g[r]+e.substring(d.index+d[0].length),q.lastIndex=d.index}return e}},Compress={COMPRESSION_TYPE:["Dynamic Huffman Coding","FiLine truncated
@@ -382,3 +391,15 @@ a.clientWidth<470?b.childNodes[1].nodeValue=" Step":b.childNodes[1].nodeValue="
this.recipe.initialise_operation_drag_n_drop(),this.controls.auto_bake_change(),this.seasonal.load()},Manager.prototype.initialise_event_listeners=function(){window.addEventListener("resize",this.window.window_resize.bind(this.window)),window.addEventListener("blur",this.window.window_blur.bind(this.window)),window.addEventListener("focus",this.window.window_focus.bind(this.window)),window.addEventListener("statechange",this.app.state_change.bind(this.app)),window.addEventListener("popstate",this.app.pop_state.bind(this.app)),document.getElementById("bake").addEventListener("click",this.controls.bake_click.bind(this.controls)),document.getElementById("auto-bake").addEventListener("change",this.controls.auto_bake_change.bind(this.controls)),document.getElementById("step").addEventListener("click",this.controls.step_click.bind(this.controls)),document.getElementById("clr-recipe").addEventListener("click",this.controls.clear_recipe_click.bind(this.controls)),document.getElementById("clr-breaks").addEventListener("click",this.controls.clear_breaks_click.bind(this.controls)),document.getElementById("save").addEventListener("click",this.controls.save_click.bind(this.controls)),document.getElementById("save-button").addEventListener("click",this.controls.save_button_click.bind(this.controls)),document.getElementById("save-link-recipe-checkbox").addEventListener("change",this.controls.slr_check_change.bind(this.controls)),document.getElementById("save-link-input-checkbox").addEventListener("change",this.controls.sli_check_change.bind(this.controls)),document.getElementById("load").addEventListener("click",this.controls.load_click.bind(this.controls)),document.getElementById("load-delete-button").addEventListener("click",this.controls.load_delete_click.bind(this.controls)),document.getElementById("load-name").addEventListener("change",this.controls.load_name_change.bind(this.controls)),document.getElementById("load-button").addEventListener("click",this.controls.load_button_click.bind(this.controls)),this.add_multi_event_listener("#save-text","keyup paste",this.controls.save_text_change,this.controls),this.add_multi_event_listener("#search","keyup paste search",this.ops.search_operations,this.ops),this.add_dynamic_listener(".op_list li.operation","dblclick",this.ops.operation_dblclick,this.ops),document.getElementById("edit-favourites").addEventListener("click",this.ops.edit_favourites_click.bind(this.ops)),document.getElementById("save-favourites").addEventListener("click",this.ops.save_favourites_click.bind(this.ops)),document.getElementById("reset-favourites").addEventListener("click",this.ops.reset_favourites_click.bind(this.ops)),this.add_dynamic_listener(".op_list .op-icon","mouseover",this.ops.op_icon_mouseover,this.ops),this.add_dynamic_listener(".op_list .op-icon","mouseleave",this.ops.op_icon_mouseleave,this.ops),this.add_dynamic_listener(".op_list","oplistcreate",this.ops.op_list_create,this.ops),this.add_dynamic_listener("li.operation","operationadd",this.recipe.op_add.bind(this.recipe)),this.add_dynamic_listener(".arg","keyup",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".arg","change",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".disable-icon","click",this.recipe.disable_click,this.recipe),this.add_dynamic_listener(".breakpoint","click",this.recipe.breakpoint_click,this.recipe),this.add_dynamic_listener("#rec_list li.operation","dblclick",this.recipe.operation_dblclick,this.recipe),this.add_dynamic_listener("#rec_list li.operation > div","dblclick",this.recipe.operation_child_dblclick,this.recipe),this.add_dynamic_listener("#rec_list .input-group .dropdown-menu a","click",this.recipe.dropdown_toggle_click,this.recipe),this.add_dynamic_listener("#rec_list","operationremove",this.recipe.op_remove.bind(this.recipe)),this.add_multi_event_listener("#input-text","keyup paste",this.input.input_change,this.input),document.getElementById("reset-layout").addEventListener("click",this.app.reset_layout.bind(this.app)),document.getElementById("clr-io").addEventListener("click",this.input.clear_io_click.bind(this.input)),document.getElementById("input-text").addEventListener("dragover",this.input.input_dragover.bind(this.input)),document.getElementById("input-text").addEventListener("dragleave",this.input.input_dragleave.bind(this.input)),document.getElementById("input-text").addEventListener("drop",this.input.input_drop.bind(this.input)),document.getElementById("input-text").addEventListener("scroll",this.highlighter.input_scroll.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mouseup",this.highlighter.input_mouseup.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mousemove",this.highlighter.input_mousemove.bind(this.highlighter)),this.add_multi_event_listener("#input-text","mousedown dblclick select",this.highlighter.input_mousedown,this.highlighter),document.getElementById("save-to-file").addEventListener("click",tLine truncated this.recipe.initialise_operation_drag_n_drop(),this.controls.auto_bake_change(),this.seasonal.load()},Manager.prototype.initialise_event_listeners=function(){window.addEventListener("resize",this.window.window_resize.bind(this.window)),window.addEventListener("blur",this.window.window_blur.bind(this.window)),window.addEventListener("focus",this.window.window_focus.bind(this.window)),window.addEventListener("statechange",this.app.state_change.bind(this.app)),window.addEventListener("popstate",this.app.pop_state.bind(this.app)),document.getElementById("bake").addEventListener("click",this.controls.bake_click.bind(this.controls)),document.getElementById("auto-bake").addEventListener("change",this.controls.auto_bake_change.bind(this.controls)),document.getElementById("step").addEventListener("click",this.controls.step_click.bind(this.controls)),document.getElementById("clr-recipe").addEventListener("click",this.controls.clear_recipe_click.bind(this.controls)),document.getElementById("clr-breaks").addEventListener("click",this.controls.clear_breaks_click.bind(this.controls)),document.getElementById("save").addEventListener("click",this.controls.save_click.bind(this.controls)),document.getElementById("save-button").addEventListener("click",this.controls.save_button_click.bind(this.controls)),document.getElementById("save-link-recipe-checkbox").addEventListener("change",this.controls.slr_check_change.bind(this.controls)),document.getElementById("save-link-input-checkbox").addEventListener("change",this.controls.sli_check_change.bind(this.controls)),document.getElementById("load").addEventListener("click",this.controls.load_click.bind(this.controls)),document.getElementById("load-delete-button").addEventListener("click",this.controls.load_delete_click.bind(this.controls)),document.getElementById("load-name").addEventListener("change",this.controls.load_name_change.bind(this.controls)),document.getElementById("load-button").addEventListener("click",this.controls.load_button_click.bind(this.controls)),this.add_multi_event_listener("#save-text","keyup paste",this.controls.save_text_change,this.controls),this.add_multi_event_listener("#search","keyup paste search",this.ops.search_operations,this.ops),this.add_dynamic_listener(".op_list li.operation","dblclick",this.ops.operation_dblclick,this.ops),document.getElementById("edit-favourites").addEventListener("click",this.ops.edit_favourites_click.bind(this.ops)),document.getElementById("save-favourites").addEventListener("click",this.ops.save_favourites_click.bind(this.ops)),document.getElementById("reset-favourites").addEventListener("click",this.ops.reset_favourites_click.bind(this.ops)),this.add_dynamic_listener(".op_list .op-icon","mouseover",this.ops.op_icon_mouseover,this.ops),this.add_dynamic_listener(".op_list .op-icon","mouseleave",this.ops.op_icon_mouseleave,this.ops),this.add_dynamic_listener(".op_list","oplistcreate",this.ops.op_list_create,this.ops),this.add_dynamic_listener("li.operation","operationadd",this.recipe.op_add.bind(this.recipe)),this.add_dynamic_listener(".arg","keyup",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".arg","change",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".disable-icon","click",this.recipe.disable_click,this.recipe),this.add_dynamic_listener(".breakpoint","click",this.recipe.breakpoint_click,this.recipe),this.add_dynamic_listener("#rec_list li.operation","dblclick",this.recipe.operation_dblclick,this.recipe),this.add_dynamic_listener("#rec_list li.operation > div","dblclick",this.recipe.operation_child_dblclick,this.recipe),this.add_dynamic_listener("#rec_list .input-group .dropdown-menu a","click",this.recipe.dropdown_toggle_click,this.recipe),this.add_dynamic_listener("#rec_list","operationremove",this.recipe.op_remove.bind(this.recipe)),this.add_multi_event_listener("#input-text","keyup paste",this.input.input_change,this.input),document.getElementById("reset-layout").addEventListener("click",this.app.reset_layout.bind(this.app)),document.getElementById("clr-io").addEventListener("click",this.input.clear_io_click.bind(this.input)),document.getElementById("input-text").addEventListener("dragover",this.input.input_dragover.bind(this.input)),document.getElementById("input-text").addEventListener("dragleave",this.input.input_dragleave.bind(this.input)),document.getElementById("input-text").addEventListener("drop",this.input.input_drop.bind(this.input)),document.getElementById("input-text").addEventListener("scroll",this.highlighter.input_scroll.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mouseup",this.highlighter.input_mouseup.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mousemove",this.highlighter.input_mousemove.bind(this.highlighter)),this.add_multi_event_listener("#input-text","mousedown dblclick select",this.highlighter.input_mousedown,this.highlighter),document.getElementById("save-to-file").addEventListener("click",tLine truncated
window.app.setup()};window.console=console||{log:function(){},error:function(){}},window.compile_time=moment.tz("Thu Dec 08 2016 00:33:37","ddd MMM D YYYY HH:mm:ss","UTC").valueOf(),window.compile_message="",document.addEventListener("DOMContentLoaded",main,!1);</script></body></html> window.app.setup()};window.console=console||{log:function(){},error:function(){}},window.compile_time=moment.tz("Thu Dec 08 2016 00:33:37","ddd MMM D YYYY HH:mm:ss","UTC").valueOf(),window.compile_message="",document.addEventListener("DOMContentLoaded",main,!1);</script></body></html>
>>>>>>> master >>>>>>> master
=======
h.fillStyle="green";for(var u=0;u<b.length;u++){var v=b[u]/t*m;h.fillRect(s,o-v,r,v),s+=r+q}if(h.fillStyle="black",h.textAlign="center",s=i+q,e>=b.length)for(var u=0;u<=b.length;u++)h.fillText(u,s,o+.3*l),s+=r+q;else for(var u=0;u<=e;u++){var w=Math.ceil(b.length/e*u);s=n/e*u+i,h.fillText(w,s,o+.3*l)}h.textAlign="right";var x;if(f>=t)for(var u=0;u<=t;u++)x=o-u/t*m+g/3,h.fillText(u,.8*i,x);else for(var u=0;u<=f;u++){var w=Math.ceil(t/f*u);x=o-w/t*m+g/3,h.fillText(w,.8*i,x)}if(c&&(h.textAlign="center",h.fillText(c,n/2+i,o+.8*l)),d){h.save();var y=.3*i,z=m/2+k;h.translate(y,z),h.rotate(-Math.PI/2),h.textAlign="center",h.fillText(d,0,0),h.restore()}},draw_scale_bar:function(a,b,c,d){var e=a.getContext("2d"),f=.01*a.width,g=.01*a.width,h=.1*a.height,i=.3*a.height,j=a.height-h-i,k=a.width-f-g,l=b/c;e.strokeRect(f,h,k,j);var m=e.createLinearGradient(f,0,k+f,0);m.addColorStop(0,"green"),m.addColorStop(.5,"gold"),m.addColorStop(1,"red"),e.fillStyle=m,e.fillRect(f,h,k*l,j);var n,o,p,q;e.fillStyle="black",e.textAlign="center",e.font="13px Arial";for(var r=0;r<d.length;r++)n=k/c*d[r].min+f,o=h+j+.1*i,p=n,q=h+j+.3*i,CanvasComponents.draw_line(e,n,o,p,q),n=k/c*d[r].max+f,p=n,CanvasComponents.draw_line(e,n,o,p,q),n=k/c*d[r].min+f,o=h+j+.3*i,p=k/c*d[r].max+f,q=o,CanvasComponents.draw_line(e,n,o,p,q),d[r].max>=.9*c?(e.textAlign="right",n=p):d[r].max<=.1*c?e.textAlign="left":n+=(p-n)/2,o=h+j+.8*i,e.fillText(d[r].label,n,o)}},Utils={chr:function(a){return String.fromCharCode(a)},ord:function(a){return a.charCodeAt(0)},pad_left:function(a,b,c){c=c||"0";var d=c.length-(b-a.length);return d=d<0?0:d,a.length<b?Utils.pad_left(c.slice(d,c.length)+a,b,c):a},pad_right:function(a,b,c){return c=c||" ",a.length<b?Utils.pad_right(a+c.slice(0,b-a.length),b,c):a},pad:function(a,b,c){return Utils.pad_left(a,b,c)},truncate:function(a,b,c){return c=c||"...",a.length>b&&(a=a.slice(0,b-c.length)+c),a},hex:function(a,b){return a="string"==typeof a?Utils.ord(a):a,b=b||2,Utils.pad(a.toString(16),b)},bin:function(a,b){return a="string"==typeof a?Utils.ord(a):a,b=b||8,Utils.pad(a.toString(2),b)},printable:function(a,b){window&&window.app&&!window.app.options.treat_as_utf8&&(a=Utils.byte_array_to_chars(Utils.str_to_byte_array(a)));var c=/[\0-\x08\x0B-\x0C\x0E-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2FLine truncated
},run_evpkdf:function(a,b){var c=b[0]/32,d=b[1],e=CryptoJS.enc.Hex.parse(b[2]||""),f=b[3],g=b[4],h=Utils.format[f].parse(a),i=CryptoJS.EvpKDF(h,e,{keySize:c,iterations:d});return i.toString(Utils.format[g])},run_rc4:function(a,b){var c=Utils.format[b[1]].parse(a),d=Utils.format[b[0].option].parse(b[0].string),e=CryptoJS.RC4.encrypt(c,d);return e.ciphertext.toString(Utils.format[b[2]])},RC4DROP_BYTES:768,run_rc4drop:function(a,b){var c=Utils.format[b[1]].parse(a),d=Utils.format[b[0].option].parse(b[0].string),e=b[3],f=CryptoJS.RC4Drop.encrypt(c,d,{drop:e});return f.ciphertext.toString(Utils.format[b[2]])},run_vigenere_enc:function(a,b){var c,d,e,f="abcdefghijklmnopqrstuvwxyz",g=b[0].toLowerCase(),h="",i=0;if(!g)return"No key entered";if(!/^[a-zA-Z]+$/.test(g))return"The key must consist only of letters";for(var j=0;j<a.length;j++)f.indexOf(a[j])>=0?(e=g[(j-i)%g.length],c=f.indexOf(e),d=f.indexOf(a[j]),h+=f[(c+d)%26]):f.indexOf(a[j].toLowerCase())>=0?(e=g[(j-i)%g.length].toLowerCase(),c=f.indexOf(e),d=f.indexOf(a[j].toLowerCase()),h+=f[(c+d)%26].toUpperCase()):(h+=a[j],i++);return h},run_vigenere_dec:function(a,b){var c,d,e,f="abcdefghijklmnopqrstuvwxyz",g=b[0].toLowerCase(),h="",i=0;if(!g)return"No key entered";if(!/^[a-zA-Z]+$/.test(g))return"The key must consist only of letters";for(var j=0;j<a.length;j++)f.indexOf(a[j])>=0?(e=g[(j-i)%g.length],c=f.indexOf(e),d=f.indexOf(a[j]),h+=f[(d-c+f.length)%26]):f.indexOf(a[j].toLowerCase())>=0?(e=g[(j-i)%g.length].toLowerCase(),c=f.indexOf(e),d=f.indexOf(a[j].toLowerCase()),h+=f[(d+f.length-c)%26].toUpperCase()):(h+=a[j],i++);return h}};CryptoJS.kdf.OpenSSL.execute=function(a,b,c,d){void 0!==d&&null!==d||(d=CryptoJS.lib.WordArray.random(8));var e=CryptoJS.algo.EvpKDF.create({keySize:b+c}).compute(a,d),f=CryptoJS.lib.WordArray.create(e.words.slice(b),4*c);return e.sigBytes=4*b,CryptoJS.lib.CipherParams.create({key:e,iv:f,salt:d})};var Code={LANGUAGES:["default-code","default-markup","bash","bsh","c","cc","coffee","cpp","cs","csh","cv","cxx","cyc","htm","html","in.tag","java","javascript","js","json","m","mxml","perl","pl","pm","py","python","rb","rc","rs","ruby","rust","sh","uq.val","xhtml","xml","xsl"],LINE_NUMS:!1,run_syntax_highlight:function(a,b){var c=b[0],d=b[1];return"<code class='prettyprint'>"+prettyPrintOne(Utils.escape_html(a),c,d)+"</code>"},BEAUTIFY_INDENT:"\\t",run_xml_beautify:function(a,b){var c=b[0];return vkbeautify.xml(a,c)},run_json_beautify:function(a,b){var c=b[0];return a?vkbeautify.json(a,c):""},run_css_beautify:function(a,b){var c=b[0];return vkbeautify.css(a,c)},run_sql_beautify:function(a,b){var c=b[0];return vkbeautify.sql(a,c)},PRESERVE_COMMENTS:!1,run_xml_minify:function(a,b){var c=b[0];return vkbeautify.xmlmin(a,c)},run_json_minify:function(a,b){return a?vkbeautify.jsonmin(a):""},run_css_minify:function(a,b){var c=b[0];return vkbeautify.cssmin(a,c)},run_sql_minify:function(a,b){return vkbeautify.sqlmin(a)},run_generic_beautify:function(a,b){function c(a,b,c){return g[c]=b[0],a.substring(0,b.index)+"###preserved_token"+c+"###"+a.substring(b.index+b[0].length)}for(var d,e=a,f=0,g=[],h=/'([^'\\]|\\.)*'/g;d=h.exec(e);)e=c(e,d,f++),h.lastIndex=d.index;for(var i=/"([^"\\]|\\.)*"/g;d=i.exec(e);)e=c(e,d,f++),i.lastIndex=d.index;for(var j=/\/\/[^\n\r]*/g;d=j.exec(e);)e=c(e,d,f++),j.lastIndex=d.index;for(var k=/\/\*[\s\S]*?\*\//gm;d=k.exec(e);)e=c(e,d,f++),k.lastIndex=d.index;for(var l=/(^|\n)#[^\n\r#]+/g;d=l.exec(e);)e=c(e,d,f++),l.lastIndex=d.index;for(var m=/\/.*?[^\\]\/[gim]{0,3}/gi;d=m.exec(e);)e=c(e,d,f++),m.lastIndex=d.index;e=e.replace(/;/g,";\n"),e=e.replace(/{/g,"{\n"),e=e.replace(/}/g,"\n}\n"),e=e.replace(/\r/g,""),e=e.replace(/^\s+/g,""),e=e.replace(/\n\s+/g,"\n"),e=e.replace(/\s*$/g,""),e=e.replace(/\n{/g,"{");for(var n=0,o=0;n<e.length;){switch(e[n]){case"{":o++;break;case"\n":if(n+1>=e.length)break;"}"===e[n+1]&&o--;var p=o>=0?Array(4*o+1).join(" "):"";e=e.substring(0,n+1)+p+e.substring(n+1),o>0&&(n+=4*o)}n++}e=e.replace(/\s*([!<>=+-\/*]?)=\s*/g," $1= "),e=e.replace(/\s*<([=]?)\s*/g," <$1 "),e=e.replace(/\s*>([=]?)\s*/g," >$1 "),e=e.replace(/([^+])\+([^+=])/g,"$1 + $2"),e=e.replace(/([^-])-([^-=])/g,"$1 - $2"),e=e.replace(/([^*])\*([^*=])/g,"$1 * $2"),e=e.replace(/([^\/])\/([^\/=])/g,"$1 / $2"),e=e.replace(/\s*,\s*/g,", "),e=e.replace(/\s*{/g," {"),e=e.replace(/}\n/g,"}\n\n"),e=e.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)\s*\n([^{])/gim,"$1 ($2)\n $3"),e=e.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)([^{])/gim,"$1 ($2) $3"),e=e.replace(/else\s*\n([^{])/gim,"else\n $1"),e=e.replace(/else\s+([^{])/gim,"else $1"),e=e.replace(/\s+;/g,";"),e=e.replace(/\{\s+\}/g,"{}"),e=e.replace(/\[\s+\]/g,"[]"),e=e.replace(/}\s*(else|catch|except|finally|elif|elseif|else if)/gi,"} $1");for(var q=/###preserved_token(\d+)###/g;d=q.exec(e);){var r=parseInt(d[1],10);e=e.substring(0,d.index)+g[r]+e.substring(d.index+d[0].length),q.lastIndex=d.index}return e}},Compress={COMPRESSION_TYPE:["Dynamic Huffman Coding","Fixed HuffmanLine truncated
c+=Extract.run_ip(a,[!0,!0,!1]),c+="\nEmail addresses\n",c+=Extract.run_email(a,[]),c+="\nMAC addresses\n",c+=Extract.run_mac(a,[]),c+="\nURLs\n",c+=Extract.run_urls(a,[]),c+="\nDomain names\n",c+=Extract.run_domains(a,[]),c+="\nFile paths\n",c+=Extract.run_file_paths(a,[!0,!0]),c+="\nDates\n",c+=Extract.run_dates(a,[])}},FileType={run_detect:function(a,b){var c=FileType._magic_type(a);if(c){var d="File extension: "+c.ext+"\nMIME type: "+c.mime;return c.desc&&c.desc.length&&(d+="\nDescription: "+c.desc),d}return"Unknown file type. Have you tried checking the entropy of this data to determine whether it might be encrypted or compressed?"},IGNORE_COMMON_BYTE_SEQUENCES:!0,run_scan_for_embedded_files:function(a,b){for(var c,d="Scanning data for 'magic bytes' which may indicate embedded files. The following results may be false positives and should not be treat as reliable. Any suffiently long file is likely to contain these magic bytes coincidentally.\n",e=b[0],f=["ico","ttf",""],g=0,h=0,i=0;i<a.length;i++)if(c=FileType._magic_type(a.slice(i))){if(e&&f.indexOf(c.ext)>-1){h++;continue}g++,d+="\nOffset "+i+" (0x"+Utils.hex(i)+"):\n File extension: "+c.ext+"\n MIME type: "+c.mime+"\n",c.desc&&c.desc.length&&(d+=" Description: "+c.desc+"\n")}return 0===g&&(d+="\nNo embedded files were found."),h>0&&(d+="\n\n"+h,d+=1===h?" file type was detected that has a common byte sequence. This is likely to be a false positive.":" file types were detected that have common byte sequences. These are likely to be false positives.",d+=" Run this operation with the 'Ignore common byte sequences' option unchecked to see details."),d},_magic_type:function(a){return a&&a.length>1?255===a[0]&&216===a[1]&&255===a[2]?{ext:"jpg",mime:"image/jpeg"}:137===a[0]&&80===a[1]&&78===a[2]&&71===a[3]?{ext:"png",mime:"image/png"}:71===a[0]&&73===a[1]&&70===a[2]?{ext:"gif",mime:"image/gif"}:87===a[8]&&69===a[9]&&66===a[10]&&80===a[11]?{ext:"webp",mime:"image/webp"}:(73===a[0]&&73===a[1]&&42===a[2]&&0===a[3]||77===a[0]&&77===a[1]&&0===a[2]&&42===a[3])&&67===a[8]&&82===a[9]?{ext:"cr2",mime:"image/x-canon-cr2"}:73===a[0]&&73===a[1]&&42===a[2]&&0===a[3]||77===a[0]&&77===a[1]&&0===a[2]&&42===a[3]?{ext:"tif",mime:"image/tiff"}:66===a[0]&&77===a[1]?{ext:"bmp",mime:"image/bmp"}:73===a[0]&&73===a[1]&&188===a[2]?{ext:"jxr",mime:"image/vnd.ms-photo"}:56===a[0]&&66===a[1]&&80===a[2]&&83===a[3]?{ext:"psd",mime:"image/vnd.adobe.photoshop"}:80===a[0]&&75===a[1]&&3===a[2]&&4===a[3]&&109===a[30]&&105===a[31]&&109===a[32]&&101===a[33]&&116===a[34]&&121===a[35]&&112===a[36]&&101===a[37]&&97===a[38]&&112===a[39]&&112===a[40]&&108===a[41]&&105===a[42]&&99===a[43]&&97===a[44]&&116===a[45]&&105===a[46]&&111===a[47]&&110===a[48]&&47===a[49]&&101===a[50]&&112===a[51]&&117===a[52]&&98===a[53]&&43===a[54]&&122===a[55]&&105===a[56]&&112===a[57]?{ext:"epub",mime:"application/epub+zip"}:80!==a[0]||75!==a[1]||3!==a[2]&&5!==a[2]&&7!==a[2]||4!==a[3]&&6!==a[3]&&8!==a[3]?117===a[257]&&115===a[258]&&116===a[259]&&97===a[260]&&114===a[261]?{ext:"tar",mime:"application/x-tar"}:82!==a[0]||97!==a[1]||114!==a[2]||33!==a[3]||26!==a[4]||7!==a[5]||0!==a[6]&&1!==a[6]?31===a[0]&&139===a[1]&&8===a[2]?{ext:"gz",mime:"application/gzip"}:66===a[0]&&90===a[1]&&104===a[2]?{ext:"bz2",mime:"application/x-bzip2"}:55===a[0]&&122===a[1]&&188===a[2]&&175===a[3]&&39===a[4]&&28===a[5]?{ext:"7z",mime:"application/x-7z-compressed"}:120===a[0]&&1===a[1]?{ext:"dmg",mime:"application/x-apple-diskimage"}:0===a[0]&&0===a[1]&&0===a[2]&&(24===a[3]||32===a[3])&&102===a[4]&&116===a[5]&&121===a[6]&&112===a[7]||51===a[0]&&103===a[1]&&112===a[2]&&53===a[3]||0===a[0]&&0===a[1]&&0===a[2]&&28===a[3]&&102===a[4]&&116===a[5]&&121===a[6]&&112===a[7]&&109===a[8]&&112===a[9]&&52===a[10]&&50===a[11]&&109===a[16]&&112===a[17]&&52===a[18]&&49===a[19]&&109===a[20]&&112===a[21]&&52===a[22]&&50===a[23]&&105===a[24]&&115===a[25]&&111===a[26]&&109===a[27]?{ext:"mp4",mime:"video/mp4"}:0===a[0]&&0===a[1]&&0===a[2]&&28===a[3]&&102===a[4]&&116===a[5]&&121===a[6]&&112===a[7]&&77===a[8]&&52===a[9]&&86===a[10]?{ext:"m4v",mime:"video/x-m4v"}:77===a[0]&&84===a[1]&&104===a[2]&&100===a[3]?{ext:"mid",mime:"audio/midi"}:109===a[31]&&97===a[32]&&116===a[33]&&114===a[34]&&111===a[35]&&115===a[36]&&107===a[37]&&97===a[38]?{ext:"mkv",mime:"video/x-matroska"}:26===a[0]&&69===a[1]&&223===a[2]&&163===a[3]?{ext:"webm",mime:"video/webm"}:0===a[0]&&0===a[1]&&0===a[2]&&20===a[3]&&102===a[4]&&116===a[5]&&121===a[6]&&112===a[7]?{ext:"mov",mime:"video/quicktime"}:82===a[0]&&73===a[1]&&70===a[2]&&70===a[3]&&65===a[8]&&86===a[9]&&73===a[10]?{ext:"avi",mime:"video/x-msvideo"}:48===a[0]&&38===a[1]&&178===a[2]&&117===a[3]&&142===a[4]&&102===a[5]&&207===a[6]&&17===a[7]&&166===a[8]&&217===a[9]?{ext:"wmv",mime:"video/x-ms-wmv"}:0===a[0]&&0===a[1]&&1===a[2]&&"b"===a[3].toString(16)[0]?{ext:"mpg",mime:"video/mpeg"}:73===a[0]&&68===a[1]&&51===a[2]||255===a[0]&&251===a[1]?{ext:"mp3",mime:"audio/mpeg"}:102===a[4]&&116===a[5]&&121===a[6]&&112===a[7]&&77===a[8]Line truncated
j.hasOwnProperty(o)?j[o].push(m):j[o]=[m]}for(n in i)if(i[n]=i[n].sort(),l+=IP._ipv4_to_str(n)+"/"+d+"\n",!e){for(p=0;p<i[n].length;p++)l+=" "+IP._ipv4_to_str(i[n][p])+"\n";l+="\n"}for(o in j)if(l+=o+"/"+d+"\n",!e){for(p=0;p<j[o].length;p++)l+=" "+IP._ipv6_to_str(j[o][p],!0)+"\n";l+="\n"}return l},_LARGE_RANGE_ERROR:'The specified range contains more than 65,536 addresses. Running this query could crash your browser. If you want to run it, select the "Allow large queries" option. You are advised to turn off "Auto Bake" whilst editing large ranges.',_ipv4_cidr_range:function(a,b,c,d){var e="",f=IP._str_to_ipv4(a[1]),g=parseInt(a[2],10);if(g<0||g>31)return"IPv4 CIDR must be less than 32";var h=~(4294967295>>>g),i=f&h,j=i|~h;return b&&(e+="Network: "+IP._ipv4_to_str(f)+"\n",e+="CIDR: "+g+"\n",e+="Mask: "+IP._ipv4_to_str(h)+"\n",e+="Range: "+IP._ipv4_to_str(i)+" - "+IP._ipv4_to_str(j)+"\n",e+="Total addresses in range: "+((j-i>>>0)+1)+"\n\n"),c&&(e+=g>=16||d?IP._generate_ipv4_range(i,j).join("\n"):IP._LARGE_RANGE_ERROR),e},_ipv6_cidr_range:function(a,b){var c="",d=IP._str_to_ipv6(a[1]),e=parseInt(a[a.length-1],10);if(e<0||e>127)return"IPv6 CIDR must be less than 128";for(var f=IP._gen_ipv6_mask(e),g=new Array(8),h=new Array(8),i="",j=new Array(128),k=0;k<8;k++)if(g[k]=d[k]&f[k],h[k]=g[k]|65535&~f[k],i=(h[k]-g[k]).toString(2),"0"!==i)for(var l=0;l<i.length;l++)j[16*k+16-(i.length-l)]=i[l];return b&&(c+="Network: "+IP._ipv6_to_str(d)+"\n",c+="Shorthand: "+IP._ipv6_to_str(d,!0)+"\n",c+="CIDR: "+e+"\n",c+="Mask: "+IP._ipv6_to_str(f)+"\n",c+="Range: "+IP._ipv6_to_str(g)+" - "+IP._ipv6_to_str(h)+"\n",c+="Total addresses in range: "+(parseInt(j.join(""),2)+1)+"\n\n"),c},_gen_ipv6_mask:function(a){for(var b,c=new Array(8),d=0;d<8;d++)a>16*(d+1)?c[d]=65535:(b=a-16*d,b<0&&(b=0),c[d]=~(65535>>>b|4294901760));return c},_ipv4_hyphenated_range:function(a,b,c,d){for(var e="",f=IP._str_to_ipv4(a[1]),g=IP._str_to_ipv4(a[2]),h=f^g,i=32,j=0;0!==h;)h>>=1,i--,j=j<<1|1;j=~j>>>0;var k=f&j,l=k&j,m=l|~j;return b&&(e+="Minimum subnet required to hold this range:\n",e+="\tNetwork: "+IP._ipv4_to_str(k)+"\n",e+="\tCIDR: "+i+"\n",e+="\tMask: "+IP._ipv4_to_str(j)+"\n",e+="\tSubnet range: "+IP._ipv4_to_str(l)+" - "+IP._ipv4_to_str(m)+"\n",e+="\tTotal addresses in subnet: "+((m-l>>>0)+1)+"\n\n",e+="Range: "+IP._ipv4_to_str(f)+" - "+IP._ipv4_to_str(g)+"\n",e+="Total addresses in range: "+((g-f>>>0)+1)+"\n\n"),c&&(e+=g-f>>>0<=65536||d?IP._generate_ipv4_range(f,g).join("\n"):IP._LARGE_RANGE_ERROR),e},_ipv6_hyphenated_range:function(a,b){for(var c="",d=IP._str_to_ipv6(a[1]),e=IP._str_to_ipv6(a[14]),f="",g=new Array(128),h=0;h<128;h++)g[h]="0";for(h=0;h<8;h++)if(f=(e[h]-d[h]).toString(2),"0"!==f)for(var i=0;i<f.length;i++)g[16*h+16-(f.length-i)]=f[i];return b&&(c+="Range: "+IP._ipv6_to_str(d)+" - "+IP._ipv6_to_str(e)+"\n",c+="Shorthand range: "+IP._ipv6_to_str(d,!0)+" - "+IP._ipv6_to_str(e,!0)+"\n",c+="Total addresses in range: "+(parseInt(g.join(""),2)+1)+"\n\n"),c},_str_to_ipv4:function(a){function b(a){if(4!==a.length)throw"More than 4 blocks.";for(var b=[],c=0;c<4;c++)if(b[c]=parseInt(a[c],10),b[c]<0||b[c]>255)throw"Block out of range.";return b}var c=a.split("."),d=b(c),e=0;return e+=d[0]<<24,e+=d[1]<<16,e+=d[2]<<8,e+=d[3]},_ipv4_to_str:function(a){var b=a>>24&255,c=a>>16&255,d=a>>8&255,e=255&a;return b+"."+c+"."+d+"."+e},_str_to_ipv6:function(a){function b(a){if(a.length<3||a.length>8)throw"Badly formatted IPv6 address.";for(var b=[],c=0;c<a.length;c++)if(b[c]=parseInt(a[c],16),b[c]<0||b[c]>65535)throw"Block out of range.";return b}for(var c=a.split(":"),d=b(c),e=0,f=new Array(8),g=0;g<8;g++)isNaN(d[e])?(f[g]=0,g===8-d.slice(e).length&&e++):(f[g]=d[e],e++);return f},_ipv6_to_str:function(a,b){var c="",d=0;if(b){var e=-1,f=-1,g=0,h=-1;for(d=0;d<8;d++)0===a[d]&&h===d-1?h=d:0===a[d]&&(g=d,h=d),h>=0&&h-g>f-e&&(e=g,f=h);for(d=0;d<8;d++)d!==e?c+=Utils.hex(a[d],1)+":":(c+=":",d=f,7===f&&(c+=":"));":"===c[0]&&(c=":"+c)}else for(d=0;d<8;d++)c+=Utils.hex(a[d],4)+":";return c.slice(0,c.length-1)},_generate_ipv4_range:function(a,b){var c=[];if(b>=a)for(;a<=b;a++)c.push(IP._ipv4_to_str(a));else c[0]="Second IP address smaller than first.";return c}},JS={PARSE_LOC:!1,PARSE_RANGE:!1,PARSE_TOKENS:!1,PARSE_COMMENT:!1,PARSE_TOLERANT:!1,run_parse:function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h={},i={loc:c,range:d,tokens:e,comment:f,tolerant:g};return h=esprima.parse(a,i),JSON.stringify(h,null,2)},BEAUTIFY_INDENT:"\\t",BEAUTIFY_QUOTES:["Auto","Single","Double"],BEAUTIFY_SEMICOLONS:!0,BEAUTIFY_COMMENT:!0,run_beautify:function(a,b){var c,d=b[0]||JS.BEAUTIFY_INDENT,e=b[1].toLowerCase(),f=b[2],g=b[3],h="";try{c=esprima.parse(a,{range:!0,tokens:!0,comment:!0});var i={format:{indent:{style:d},quotes:e,semicolons:f},comment:g};i.comment&&(c=escodegen.attachComments(c,c.comments,c.tokens)),h=escodegen.generate(c,i)}catch(a){throw"Unable to parse JavaScript.<br>"+a.message}return h},run_minify:function(a,b){var c="",d=esprima.parse(a),e=esmangle.optimize(d,nullLine truncated
"06032b060105050701":"privateExtension","06032b06010505070101":"authorityInfoAccess","06032b06010505070c02":"CMC Data","06032b060105050702":"policyQualifierIds","06032b06010505070202":"unotice","06032b060105050703":"keyPurpose","06032b06010505070301":"serverAuth","06032b06010505070302":"clientAuth","06032b06010505070303":"codeSigning","06032b06010505070304":"emailProtection","06032b06010505070305":"ipsecEndSystem","06032b06010505070306":"ipsecTunnel","06032b06010505070307":"ipsecUser","06032b06010505070308":"timeStamping","06032b060105050704":"cmpInformationTypes","06032b06010505070401":"caProtEncCert","06032b06010505070402":"signKeyPairTypes","06032b06010505070403":"encKeyPairTypes","06032b06010505070404":"preferredSymmAlg","06032b06010505070405":"caKeyUpdateInfo","06032b06010505070406":"currentCRL","06032b06010505073001":"ocsp","06032b06010505073002":"caIssuers","06032b06010505080101":"HMAC-MD5","06032b06010505080102":"HMAC-SHA","060360864801650201010a":"mosaicKeyManagementAlgorithm","060360864801650201010b":"sdnsKMandSigAlgorithm","060360864801650201010c":"mosaicKMandSigAlgorithm","060360864801650201010d":"SuiteASignatureAlgorithm","060360864801650201010e":"SuiteAConfidentialityAlgorithm","060360864801650201010f":"SuiteAIntegrityAlgorithm","06036086480186f84201":"cert-extension","06036086480186f842010a":"EntityLogo","06036086480186f842010b":"UserPicture","06036086480186f8420109":"HomePage-url","06036086480186f84202":"data-type","06036086480186f8420201":"GIF","06036086480186f8420202":"JPEG","06036086480186f8420203":"URL","06036086480186f8420204":"HTML","06036086480186f8420205":"netscape-cert-sequence","06036086480186f8420206":"netscape-cert-url","06036086480186f84203":"directory","06036086480186f8420401":"serverGatedCrypto","06036086480186f845010603":"Unknown Verisign extension","06036086480186f845010606":"Unknown Verisign extension","06036086480186f84501070101":"Verisign certificatePolicy","06036086480186f8450107010101":"Unknown Verisign policy qualifier","06036086480186f8450107010102":"Unknown Verisign policy qualifier","0603678105":"TCPA","060367810501":"tcpa_specVersion","060367810502":"tcpa_attribute","06036781050201":"tcpa_at_tpmManufacturer","0603678105020a":"tcpa_at_securityQualities","0603678105020b":"tcpa_at_tpmProtectionProfile","0603678105020c":"tcpa_at_tpmSecurityTarget","0603678105020d":"tcpa_at_foundationProtectionProfile","0603678105020e":"tcpa_at_foundationSecurityTarget","0603678105020f":"tcpa_at_tpmIdLabel","06036781050202":"tcpa_at_tpmModel","06036781050203":"tcpa_at_tpmVersion","06036781050204":"tcpa_at_platformManufacturer","06036781050205":"tcpa_at_platformModel","06036781050206":"tcpa_at_platformVersion","06036781050207":"tcpa_at_componentManufacturer","06036781050208":"tcpa_at_componentModel","06036781050209":"tcpa_at_componentVersion","060367810503":"tcpa_protocol","06036781050301":"tcpa_prtt_tpmIdProtocol","0603672a00":"contentType","0603672a0000":"PANData","0603672a0001":"PANToken","0603672a0002":"PANOnly","0603672a01":"msgExt","0603672a0a":"national","0603672a0a8140":"Japan","0603672a02":"field","0603672a0200":"fullName","0603672a0201":"givenName","0603672a020a":"amount","0603672a0202":"familyName","0603672a0203":"birthFamilyName","0603672a0204":"placeName","0603672a0205":"identificationNumber","0603672a0206":"month","0603672a0207":"date","0603672a02070b":"accountNumber","0603672a02070c":"passPhrase","0603672a0208":"address","0603672a0209":"telephone","0603672a03":"attribute","0603672a0300":"cert","0603672a030000":"rootKeyThumb","0603672a030001":"additionalPolicy","0603672a04":"algorithm","0603672a05":"policy","0603672a0500":"root","0603672a06":"module","0603672a07":"certExt","0603672a0700":"hashedRootKey","0603672a0701":"certificateType","0603672a0702":"merchantData","0603672a0703":"cardCertRequired","0603672a0704":"tunneling","0603672a0705":"setExtensions","0603672a0706":"setQualifier","0603672a08":"brand","0603672a0801":"IATA-ATA","0603672a081e":"Diners","0603672a0822":"AmericanExpress","0603672a0804":"VISA","0603672a0805":"MasterCard","0603672a08ae7b":"Novus","0603672a09":"vendor","0603672a0900":"GlobeSet","0603672a0901":"IBM","0603672a090a":"Griffin","0603672a090b":"Certicom","0603672a090c":"OSS","0603672a090d":"TenthMountain","0603672a090e":"Antares","0603672a090f":"ECC","0603672a0910":"Maithean","0603672a0911":"Netscape","0603672a0912":"Verisign","0603672a0913":"BlueMoney","0603672a0902":"CyberCash","0603672a0914":"Lacerte","0603672a0915":"Fujitsu","0603672a0916":"eLab","0603672a0917":"Entrust","0603672a0918":"VIAnet","0603672a0919":"III","0603672a091a":"OpenMarket","0603672a091b":"Lexem","0603672a091c":"Intertrader","0603672a091d":"Persimmon","0603672a0903":"Terisa","0603672a091e":"NABLE","0603672a091f":"espace-net","0603672a0920":"Hitachi","0603672a0921":"Microsoft","0603672a0922":"NEC","0603672a0923":"Mitsubishi","0603672a0924":"NCR","0603672a0925":"e-COMM","0603672a0926":"Gemplus","0603672a0904":"RSADSI","0603672a0905":"VeriFone","0603672a0906":"TrinTech","0603672aLine truncated
},{name:"Date / Time",ops:["Parse DateTime","Translate DateTime Format","From UNIX Timestamp","To UNIX Timestamp","Extract dates"]},{name:"Extractors",ops:["Strings","Extract IP addresses","Extract email addresses","Extract MAC addresses","Extract URLs","Extract domains","Extract file paths","Extract dates","Regular expression"]},{name:"Compression",ops:["Raw Deflate","Raw Inflate","Zlib Deflate","Zlib Inflate","Gzip","Gunzip","Zip","Unzip","Bzip2 Decompress"]},{name:"Hashing",ops:["Analyse hash","Generate all hashes","MD5","SHA1","SHA224","SHA256","SHA384","SHA512","SHA3","RIPEMD-160","HMAC","Fletcher-16 Checksum","Adler-32 Checksum","CRC-32 Checksum","TCP/IP Checksum"]},{name:"Code tidy",ops:["Syntax highlighter","Generic Code Beautify","JavaScript Parser","JavaScript Beautify","JavaScript Minify","JSON Beautify","JSON Minify","XML Beautify","XML Minify","SQL Beautify","SQL Minify","CSS Beautify","CSS Minify","Strip HTML tags","Diff"]},{name:"Other",ops:["Entropy","Frequency distribution","Detect File Type","Scan for Embedded Files","Generate UUID","Numberwang"]},{name:"Flow control",ops:["Fork","Merge","Jump","Conditional Jump","Return"]}],OperationConfig={Fork:{description:"Split the input data up based on the specified delimiter and run all subsequent operations on each branch separately.<br><br>For example, to decode multiple Base64 strings, enter them all on separate lines then add the 'Fork' and 'From Base64' operations to the recipe. Each string will be decoded separately.",run:FlowControl.run_fork,input_type:"string",output_type:"string",flow_control:!0,args:[{name:"Split delimiter",type:"binary_short_string",value:FlowControl.FORK_DELIM},{name:"Merge delimiter",type:"binary_short_string",value:FlowControl.MERGE_DELIM}]},Merge:{description:"Consolidate all branches back into a single trunk. The opposite of Fork.",run:FlowControl.run_merge,input_type:"string",output_type:"string",flow_control:!0,args:[]},Jump:{description:"Jump forwards or backwards over the specified number of operations.",run:FlowControl.run_jump,input_type:"string",output_type:"string",flow_control:!0,args:[{name:"Number of operations to jump over",type:"number",value:FlowControl.JUMP_NUM},{name:"Maximum jumps (if jumping backwards)",type:"number",value:FlowControl.MAX_JUMPS}]},"Conditional Jump":{description:"Conditionally jump forwards or backwards over the specified number of operations based on whether the data matches the specified regular expression.",run:FlowControl.run_cond_jump,input_type:"string",output_type:"string",flow_control:!0,args:[{name:"Match (regex)",type:"string",value:""},{name:"Number of operations to jump over if match found",type:"number",value:FlowControl.JUMP_NUM},{name:"Maximum jumps (if jumping backwards)",type:"number",value:FlowControl.MAX_JUMPS}]},Return:{description:"End execution of operations at this point in the recipe.",run:FlowControl.run_return,input_type:"string",output_type:"string",flow_control:!0,args:[]},"From Base64":{description:"Base64 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers.<br><br>This operation decodes data from an ASCII Base64 string back into its raw format.<br><br>e.g. <code>aGVsbG8=</code> becomes <code>hello</code>",run:Base64.run_from,highlight:Base64.highlight_from,highlight_reverse:Base64.highlight_to,input_type:"string",output_type:"byte_array",args:[{name:"Alphabet",type:"editable_option",value:Base64.ALPHABET_OPTIONS},{name:"Remove non&#8209;alphabet chars",type:"boolean",value:Base64.REMOVE_NON_ALPH_CHARS}]},"To Base64":{description:"Base64 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers.<br><br>This operation encodes data in an ASCII Base64 string.<br><br>e.g. <code>hello</code> becomes <code>aGVsbG8=</code>",run:Base64.run_to,highlight:Base64.highlight_to,highlight_reverse:Base64.highlight_from,input_type:"byte_array",output_type:"string",args:[{name:"Alphabet",type:"editable_option",value:Base64.ALPHABET_OPTIONS}]},"From Base32":{description:"Base32 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. It uses a smaller set of characters than Base64, usually the uppercase alphabet and the numbers 2 to 7.",run:Base64.run_from_32,input_type:"string",output_type:"byte_array",args:[{name:"Alphabet",type:"binary_string",value:Base64.BASE32_ALPHABET},{name:"Remove non&#8209;alphabet chars",type:"boolean",value:Base64.REMOVE_NON_ALPH_CHARS}]},"To Base32":{description:"Base32 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. It uses a smaller set of characters than Base64, usually the uppercase alphabet and the numbers 2 to 7.",run:Base64.run_to_32,input_type:"byte_array",outpuLine truncated
}]},ROT47:{description:"A slightly more complex variation of a caesar cipher, which includes ASCII characters from 33 '!' to 126 '~'. Default rotation: 47.",run:Rotate.run_rot47,highlight:!0,highlight_reverse:!0,input_type:"byte_array",output_type:"byte_array",args:[{name:"Amount",type:"number",value:Rotate.ROT47_AMOUNT}]},"Strip HTTP headers":{description:"Removes HTTP headers from a request or response by looking for the first instance of a double newline.",run:HTTP.run_strip_headers,input_type:"string",output_type:"string",args:[]},"Parse User Agent":{description:"Attempts to identify and categorise information contained in a user-agent string.",run:HTTP.run_parse_user_agent,input_type:"string",output_type:"string",args:[]},"Format MAC addresses":{description:"Displays given MAC addresses in multiple different formats.<br><br>Expects addresses in a list separated by newlines, spaces or commas.<br><br>WARNING: There are no validity checks.",run:MAC.run_format,input_type:"string",output_type:"string",args:[{name:"Output case",type:"option",value:MAC.OUTPUT_CASE},{name:"No delimiter",type:"boolean",value:MAC.NO_DELIM},{name:"Dash delimiter",type:"boolean",value:MAC.DASH_DELIM},{name:"Colon delimiter",type:"boolean",value:MAC.COLON_DELIM},{name:"Cisco style",type:"boolean",value:MAC.CISCO_STYLE}]},"Offset checker":{description:"Compares multiple inputs (separated by the specified delimiter) and highlights matching characters which appear at the same position in all samples.",run:StrUtils.run_offset_checker,input_type:"string",output_type:"html",args:[{name:"Sample delimiter",type:"binary_string",value:StrUtils.OFF_CHK_SAMPLE_DELIMITER}]},"Remove whitespace":{description:"Optionally removes all spaces, carriage returns, line feeds, tabs and form feeds from the input data.<br><br>This operation also supports the removal of full stops which are sometimes used to represent non-printable bytes in ASCII output.",run:Tidy.run_remove_whitespace,input_type:"string",output_type:"string",args:[{name:"Spaces",type:"boolean",value:Tidy.REMOVE_SPACES},{name:"Carriage returns (\\r)",type:"boolean",value:Tidy.REMOVE_CARIAGE_RETURNS},{name:"Line feeds (\\n)",type:"boolean",value:Tidy.REMOVE_LINE_FEEDS},{name:"Tabs",type:"boolean",value:Tidy.REMOVE_TABS},{name:"Form feeds (\\f)",type:"boolean",value:Tidy.REMOVE_FORM_FEEDS},{name:"Full stops",type:"boolean",value:Tidy.REMOVE_FULL_STOPS}]},"Remove null bytes":{description:"Removes all null bytes (<code>0x00</code>) from the input.",run:Tidy.run_remove_nulls,input_type:"byte_array",output_type:"byte_array",args:[]},"Drop bytes":{description:"Cuts the specified number of bytes out of the data.",run:Tidy.run_drop_bytes,input_type:"byte_array",output_type:"byte_array",args:[{name:"Start",type:"number",value:Tidy.DROP_START},{name:"Length",type:"number",value:Tidy.DROP_LENGTH},{name:"Apply to each line",type:"boolean",value:Tidy.APPLY_TO_EACH_LINE}]},"Take bytes":{description:"Takes a slice of the specified number of bytes from the data.",run:Tidy.run_take_bytes,input_type:"byte_array",output_type:"byte_array",args:[{name:"Start",type:"number",value:Tidy.TAKE_START},{name:"Length",type:"number",value:Tidy.TAKE_LENGTH},{name:"Apply to each line",type:"boolean",value:Tidy.APPLY_TO_EACH_LINE}]},"Pad lines":{description:"Add the specified number of the specified character to the beginning or end of each line",run:Tidy.run_pad,input_type:"string",output_type:"string",args:[{name:"Position",type:"option",value:Tidy.PAD_POSITION},{name:"Length",type:"number",value:Tidy.PAD_LENGTH},{name:"Character",type:"binary_short_string",value:Tidy.PAD_CHAR}]},Reverse:{description:"Reverses the input string.",run:SeqUtils.run_reverse,input_type:"byte_array",output_type:"byte_array",args:[{name:"By",type:"option",value:SeqUtils.REVERSE_BY}]},Sort:{description:"Alphabetically sorts strings separated by the specified delimiter.<br><br>The IP address option supports IPv4 only.",run:SeqUtils.run_sort,input_type:"string",output_type:"string",args:[{name:"Delimiter",type:"option",value:SeqUtils.DELIMITER_OPTIONS},{name:"Reverse",type:"boolean",value:SeqUtils.SORT_REVERSE},{name:"Order",type:"option",value:SeqUtils.SORT_ORDER}]},Unique:{description:"Removes duplicate strings from the input.",run:SeqUtils.run_unique,input_type:"string",output_type:"string",args:[{name:"Delimiter",type:"option",value:SeqUtils.DELIMITER_OPTIONS}]},"Count occurrences":{description:"Counts the number of times the provided string occurs in the input.",run:SeqUtils.run_count,input_type:"string",output_type:"number",args:[{name:"Search string",type:"toggle_string",value:"",toggle_values:SeqUtils.SEARCH_TYPE}]},"Add line numbers":{description:"Adds line numbers to the output.",run:SeqUtils.run_add_line_numbers,input_type:"string",output_type:"string",args:[]},"Remove line numbers":{description:"Removes line numbers from the output if they can be trivially detected.",run:SeqUtils.run_remove_line_numbers,input_type:"string",output_type:Line truncated
a.clientWidth<470?b.childNodes[1].nodeValue=" Step":b.childNodes[1].nodeValue=" Step through",a.clientWidth<400?(d.style.display="none",e.style.display="none",f.style.display="none",g.style.display="none",h.style.display="none"):(d.style.display="inline",e.style.display="inline",f.style.display="inline",g.style.display="inline",h.style.display="inline"),a.clientWidth<330?c.childNodes[1].nodeValue=" Clear breaks":c.childNodes[1].nodeValue=" Clear breakpoints"},ControlsWaiter.prototype.set_auto_bake=function(a){var b=document.getElementById("auto-bake");b.checked!==a&&b.click()},ControlsWaiter.prototype.bake_click=function(){this.app.bake(),$("#output-text").selectRange(0)},ControlsWaiter.prototype.step_click=function(){this.app.bake(!0),$("#output-text").selectRange(0)},ControlsWaiter.prototype.auto_bake_change=function(){var a=document.getElementById("auto-bake-label"),b=document.getElementById("auto-bake");this.app.auto_bake_=b.checked,b.checked?(a.classList.remove("btn-default"),a.classList.add("btn-success")):(a.classList.remove("btn-success"),a.classList.add("btn-default"))},ControlsWaiter.prototype.clear_recipe_click=function(){this.manager.recipe.clear_recipe()},ControlsWaiter.prototype.clear_breaks_click=function(){for(var a=document.querySelectorAll("#rec_list li.operation .breakpoint"),b=0;b<a.length;b++)a[b].setAttribute("break","false"),a[b].classList.remove("breakpoint-selected")},ControlsWaiter.prototype.initialise_save_link=function(a){a=a||this.app.get_recipe_config();var b=document.getElementById("save-link-recipe-checkbox").checked,c=document.getElementById("save-link-input-checkbox").checked,d=document.getElementById("save-link"),e=this.generate_state_url(b,c,a);d.innerHTML=Utils.truncate(e,120),d.setAttribute("href",e)},ControlsWaiter.prototype.generate_state_url=function(a,b,c){c=c||this.app.get_recipe_config();var d=window.location.protocol+"//"+window.location.host+window.location.pathname,e=JSON.stringify(c),f=Utils.to_base64(this.app.get_input(),"A-Za-z0-9+/");return a=a&&c.length>0,b=b&&f.length>0&&f.length<8e3,a&&(d+="?recipe="+encodeURIComponent(e)),a&&b?d+="&input="+encodeURIComponent(f):b&&(d+="?input="+encodeURIComponent(f)),d},ControlsWaiter.prototype.save_text_change=function(){try{var a=JSON.parse(document.getElementById("save-text").value);this.initialise_save_link(a)}catch(a){}},ControlsWaiter.prototype.save_click=function(){var a=this.app.get_recipe_config(),b=JSON.stringify(a).replace(/},{/g,"},\n{");document.getElementById("save-text").value=b,this.initialise_save_link(a),$("#save-modal").modal()},ControlsWaiter.prototype.slr_check_change=function(){this.initialise_save_link()},ControlsWaiter.prototype.sli_check_change=function(){this.initialise_save_link()},ControlsWaiter.prototype.load_click=function(){this.populate_load_recipes_list(),$("#load-modal").modal()},ControlsWaiter.prototype.save_button_click=function(){var a=document.getElementById("save-name").value,b=document.getElementById("save-text").value;if(!a)return void this.app.alert("Please enter a recipe name","danger",2e3);var c=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[],d=localStorage.recipe_id||0;c.push({id:++d,name:a,recipe:b}),localStorage.saved_recipes=JSON.stringify(c),localStorage.recipe_id=d,this.app.alert('Recipe saved as "'+a+'".',"success",2e3)},ControlsWaiter.prototype.populate_load_recipes_list=function(){for(var a=document.getElementById("load-name"),b=a.options.length;b--;)a.remove(b);var c=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[];for(b=0;b<c.length;b++){var d=document.createElement("option");d.value=c[b].id,d.innerHTML=c[b].name,a.appendChild(d)}document.getElementById("load-text").value=c.length?c[0].recipe:""},ControlsWaiter.prototype.load_delete_click=function(){var a=document.getElementById("load-name").value,b=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[];b=b.filter(function(b){return b.id!==a}),localStorage.saved_recipes=JSON.stringify(b),this.populate_load_recipes_list()},ControlsWaiter.prototype.load_name_change=function(a){var b=a.target,c=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[],d=parseInt(b.value,10),e=c.filter(function(a){return a.id===d})[0];document.getElementById("load-text").value=e.recipe},ControlsWaiter.prototype.load_button_click=function(){try{var a=JSON.parse(document.getElementById("load-text").value);this.app.set_recipe_config(a),$("#rec_list [data-toggle=popover]").popover()}catch(a){this.app.alert("Invalid recipe","danger",2e3)}};var HTMLApp=function(a,b,c,d){this.categories=a,this.operations=b,this.dfavourites=c,this.doptions=d,this.options=Utils.extend({},d),this.chef=new Chef,this.manager=new Manager(this),this.auto_bake_=!1,this.progress=0,this.ing_id=0,window.chef=this.chef};HTMLApp.prototype.setup=function(){document.dispatchEvent(this.manager.appstart),this.initialise_splitter(),this.load_local_storage(),this.populate_operations_list(),this.manager.setup(),thLine truncated
this.seasonal.load()},Manager.prototype.initialise_event_listeners=function(){window.addEventListener("resize",this.window.window_resize.bind(this.window)),window.addEventListener("blur",this.window.window_blur.bind(this.window)),window.addEventListener("focus",this.window.window_focus.bind(this.window)),window.addEventListener("statechange",this.app.state_change.bind(this.app)),window.addEventListener("popstate",this.app.pop_state.bind(this.app)),document.getElementById("bake").addEventListener("click",this.controls.bake_click.bind(this.controls)),document.getElementById("auto-bake").addEventListener("change",this.controls.auto_bake_change.bind(this.controls)),document.getElementById("step").addEventListener("click",this.controls.step_click.bind(this.controls)),document.getElementById("clr-recipe").addEventListener("click",this.controls.clear_recipe_click.bind(this.controls)),document.getElementById("clr-breaks").addEventListener("click",this.controls.clear_breaks_click.bind(this.controls)),document.getElementById("save").addEventListener("click",this.controls.save_click.bind(this.controls)),document.getElementById("save-button").addEventListener("click",this.controls.save_button_click.bind(this.controls)),document.getElementById("save-link-recipe-checkbox").addEventListener("change",this.controls.slr_check_change.bind(this.controls)),document.getElementById("save-link-input-checkbox").addEventListener("change",this.controls.sli_check_change.bind(this.controls)),document.getElementById("load").addEventListener("click",this.controls.load_click.bind(this.controls)),document.getElementById("load-delete-button").addEventListener("click",this.controls.load_delete_click.bind(this.controls)),document.getElementById("load-name").addEventListener("change",this.controls.load_name_change.bind(this.controls)),document.getElementById("load-button").addEventListener("click",this.controls.load_button_click.bind(this.controls)),this.add_multi_event_listener("#save-text","keyup paste",this.controls.save_text_change,this.controls),this.add_multi_event_listener("#search","keyup paste search",this.ops.search_operations,this.ops),this.add_dynamic_listener(".op_list li.operation","dblclick",this.ops.operation_dblclick,this.ops),document.getElementById("edit-favourites").addEventListener("click",this.ops.edit_favourites_click.bind(this.ops)),document.getElementById("save-favourites").addEventListener("click",this.ops.save_favourites_click.bind(this.ops)),document.getElementById("reset-favourites").addEventListener("click",this.ops.reset_favourites_click.bind(this.ops)),this.add_dynamic_listener(".op_list .op-icon","mouseover",this.ops.op_icon_mouseover,this.ops),this.add_dynamic_listener(".op_list .op-icon","mouseleave",this.ops.op_icon_mouseleave,this.ops),this.add_dynamic_listener(".op_list","oplistcreate",this.ops.op_list_create,this.ops),this.add_dynamic_listener("li.operation","operationadd",this.recipe.op_add.bind(this.recipe)),this.add_dynamic_listener(".arg","keyup",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".arg","change",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".disable-icon","click",this.recipe.disable_click,this.recipe),this.add_dynamic_listener(".breakpoint","click",this.recipe.breakpoint_click,this.recipe),this.add_dynamic_listener("#rec_list li.operation","dblclick",this.recipe.operation_dblclick,this.recipe),this.add_dynamic_listener("#rec_list li.operation > div","dblclick",this.recipe.operation_child_dblclick,this.recipe),this.add_dynamic_listener("#rec_list .input-group .dropdown-menu a","click",this.recipe.dropdown_toggle_click,this.recipe),this.add_dynamic_listener("#rec_list","operationremove",this.recipe.op_remove.bind(this.recipe)),this.add_multi_event_listener("#input-text","keyup paste",this.input.input_change,this.input),document.getElementById("reset-layout").addEventListener("click",this.app.reset_layout.bind(this.app)),document.getElementById("clr-io").addEventListener("click",this.input.clear_io_click.bind(this.input)),document.getElementById("input-text").addEventListener("dragover",this.input.input_dragover.bind(this.input)),document.getElementById("input-text").addEventListener("dragleave",this.input.input_dragleave.bind(this.input)),document.getElementById("input-text").addEventListener("drop",this.input.input_drop.bind(this.input)),document.getElementById("input-text").addEventListener("scroll",this.highlighter.input_scroll.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mouseup",this.highlighter.input_mouseup.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mousemove",this.highlighter.input_mousemove.bind(this.highlighter)),this.add_multi_event_listener("#input-text","mousedown dblclick select",this.highlighter.input_mousedown,this.highlighter),document.getElementById("save-to-file").addEventListener("click",this.output.save_click.bind(this.output)),document.getElementById("switch").addEvLine truncated
window.compile_time=moment.tz("Wed Dec 14 2016 16:37:29","ddd MMM D YYYY HH:mm:ss","UTC").valueOf(),window.compile_message="Merry Christmas! Have a look in the options panel for some festive flavour.",document.addEventListener("DOMContentLoaded",main,!1);</script></body></html>
>>>>>>> master
+4
View File
@@ -19,7 +19,11 @@
limitations under the License. limitations under the License.
--> -->
<<<<<<< HEAD <<<<<<< HEAD
<<<<<<< HEAD
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>CyberChef</title><meta name="copyright" content="Crown Copyright 2016"><meta name="description" content="The Cyber Swiss Army Knife"><meta name="keywords" content="base64, hex, decode, encode, encrypt, decrypt, compress, decompress, regex, regular expressions, hash, crypt, hexadecimal, user agent, url, certificate, x.509, parser, JSON, gzip, md5, sha1, aes, des, blowfish, xor"><link rel="icon" type="image/png" href="data:image/x-icon;base64,AAABAAEAEA8AAAEAIAAkBAAAFgAAACgAAAAQAAAAHgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATExMAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwP5CQkE+Ojo5OiIiIS4aGhkt8fHxLe3t7S4GBgU6Hh4dWZWVlMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaWlrvS0tL/0dHR/9HR0f/Pz8/+qamp/6ysrP+srKz/rKys/3h4eJIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKioqix8fH/8bGxv/Gxsb/xcXF/pqamv+cnJz/nJyc/5ycnP9paWl/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsLCwyOjo6P/m5ub/5ubm/+Xl5f7Ly8v/zc3N/83Nzf/Ozs7/lZWVowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGxscfn5+f/5ubm/+bm5v/k5OT+ysrK/8zMzP/MzMz/zc3N/5KSkqIAAAAAYWFhDwAAAAAEBAQA////AAAAAACqqqrI5+fn/+bm5v/m5ub/5OTk/srKyv/MzMz/zMzM/83Nzf+wsLDcnp6eo6urq8pjY2MbAAAAAAAAAACVlZWm4uLi/+bm5v/m5ub/5ubm/+Tk5P7Kysr/zMzM/8zMzP/MzMz/zMzM/8zMzP+8vLz7bGxsLQAAAACioqJ+6Ojo/+bm5v7l5eX/5ubm/+bm5v/l5eX+ysrK/8zMzP/MzMz/zMzM/8zMzP/MzMz/t7e33Y2NjVxFRUULx8fHwubm5v/m5ub/5ubm/+bm5v/m5ub+5eXl/8rKyv7MzMz/zMzM/8zMzP/MzMz/zMzM/svLy//Hx8f/WlpaDcnJycnm5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f7Kysr/zMzM/8zMzP/MzMz/zMzM/8zMzP/Dw8P3oKCgxQAAAAG1tbWZ5+fn/+Xl5f7m5ub/5ubm/+bm5v/k5OT+ysrK/8zMzP/MzMz/y8vL/szMzP/Nzc3/tbW15UNDQxgAAAAAAAAAD76+vuLo6Oj/5ubm/+bm5v/m5ub/5OTk/srKyv/MzMz/zMzM/8zMzP/BwcH9tra2+L29vflpaWkuR0dHAAAAAAAAAAAAiYmJZKurq4uXl5d909PT7eXl5f/MzMz/x8fH/6qqqty9vb3/g4ODlQAAABFra2tAAAAAAAAAAAAbGxsAAAAAAAAAAAAAAAAAAAAAAG9vbyOTk5N5j4+PnHl5eVZCQkIVkpKSJmNjYxEAAAAAAAAAAAAAAAD//wAA//8AAOAHAADgDwAA4AcAAOAHAADgAQAAwAEAAMABAACAAAAAgAAAAIABAADAAQAA9AcAAP9/AAA="><link href="styles.css" rel="stylesheet"></head><body><span id="edit-favourites" class="btn btn-default btn-sm"><img src="images/favourite-16x16.png"> Edit</span><div id="alert" class="alert alert-danger"><button type="button" class="close" id="alert-close">&times;</button> <span id="alert-content"></span></div><div id="content-wrapper"><div id="banner" class="green"><a href="cyberchef.htm" style="float:left;margin-left:10px;margin-right:80px" download>Download CyberChef<img src="images/download-24x24.png"></a><span id="notice"><script type="text/javascript">navigator.userAgent&&navigator.userAgent.match(/MSIE \d\d?\./)&&(document.write("Internet Explorer is not supported, please use Firefox or Chrome instead"),alert("Internet Explorer is not supported, please use Firefox or Chrome instead"))</script><noscript>JavaScript is not enabled. Good luck.</noscript></span><a href="#" id="support" class="banner-right" data-toggle="modal" data-target="#support-modal">About / Support<img src="images/help-22x22.png"></a><a href="#" id="options" class="banner-right">Options<img src="images/settings-22x22.png"></a></div><div id="wrapper"><div id="operations" class="split split-horizontal no-select"><div class="title no-select">Operations</div><input type="search" class="form-control" id="search" placeholder="Search..." autocomplete="off"><ul class="op_list" id="search-results"></ul><div class="panel-group no-select" id="categories"></div></div><div id="recipe" class="split split-horizontal no-select"><div class="title no-select">Recipe</div><ul id="rec_list" class="no-select"></ul><div id="controls" class="no-select"><div id="operational-controls"><div id="bake-group"><button type="button" class="btn btn-success btn-lg" id="bake"><img src="images/cook_male-32x32.png"> Bake!</button><label class="btn btn-success btn-lg" id="auto-bake-label"><input type="checkbox" checked="checked" id="auto-bake"><div>Auto Bake</div></label></div><div class="btn-group" style="padding-top:10px"><button type="button" class="btn btn-default" id="step"><img src="images/step-16x16.png"> Step through</button> <button type="button" class="btn btn-default" id="clr-breaks"><img src="images/erase-16x16.png"> Clear breakpoints</button></div></div><div class="btn-group-vertical" id="extra-controls"><button type="button" class="btn btn-default" id="save"><img src="images/save-16x16.png"> Save recipe</button> <button type="button" class="btn btn-default" id="load"><img src="images/open_yellow-16x16.png"> Load recipe</button> <button type="button" class="btn btn-default" id="clr-recipe"><img src="images/clean-16x16.png"> Clear recipe</button></div></div></div><div class="split split-horizontal" id="IO"><div id="input" class="split no-select"><div class="title no-select">Input<div class="btn-group io-btn-group"><button type="button" class="btn btn-default btn-sm" id="clr-io"><img src="images/recycle-16x16.png"> Clear I/O</button> <button type="button" class="btn btn-default btn-sm" id="reset-layout">Line truncated <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>CyberChef</title><meta name="copyright" content="Crown Copyright 2016"><meta name="description" content="The Cyber Swiss Army Knife"><meta name="keywords" content="base64, hex, decode, encode, encrypt, decrypt, compress, decompress, regex, regular expressions, hash, crypt, hexadecimal, user agent, url, certificate, x.509, parser, JSON, gzip, md5, sha1, aes, des, blowfish, xor"><link rel="icon" type="image/png" href="data:image/x-icon;base64,AAABAAEAEA8AAAEAIAAkBAAAFgAAACgAAAAQAAAAHgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATExMAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwP5CQkE+Ojo5OiIiIS4aGhkt8fHxLe3t7S4GBgU6Hh4dWZWVlMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaWlrvS0tL/0dHR/9HR0f/Pz8/+qamp/6ysrP+srKz/rKys/3h4eJIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKioqix8fH/8bGxv/Gxsb/xcXF/pqamv+cnJz/nJyc/5ycnP9paWl/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsLCwyOjo6P/m5ub/5ubm/+Xl5f7Ly8v/zc3N/83Nzf/Ozs7/lZWVowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGxscfn5+f/5ubm/+bm5v/k5OT+ysrK/8zMzP/MzMz/zc3N/5KSkqIAAAAAYWFhDwAAAAAEBAQA////AAAAAACqqqrI5+fn/+bm5v/m5ub/5OTk/srKyv/MzMz/zMzM/83Nzf+wsLDcnp6eo6urq8pjY2MbAAAAAAAAAACVlZWm4uLi/+bm5v/m5ub/5ubm/+Tk5P7Kysr/zMzM/8zMzP/MzMz/zMzM/8zMzP+8vLz7bGxsLQAAAACioqJ+6Ojo/+bm5v7l5eX/5ubm/+bm5v/l5eX+ysrK/8zMzP/MzMz/zMzM/8zMzP/MzMz/t7e33Y2NjVxFRUULx8fHwubm5v/m5ub/5ubm/+bm5v/m5ub+5eXl/8rKyv7MzMz/zMzM/8zMzP/MzMz/zMzM/svLy//Hx8f/WlpaDcnJycnm5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f7Kysr/zMzM/8zMzP/MzMz/zMzM/8zMzP/Dw8P3oKCgxQAAAAG1tbWZ5+fn/+Xl5f7m5ub/5ubm/+bm5v/k5OT+ysrK/8zMzP/MzMz/y8vL/szMzP/Nzc3/tbW15UNDQxgAAAAAAAAAD76+vuLo6Oj/5ubm/+bm5v/m5ub/5OTk/srKyv/MzMz/zMzM/8zMzP/BwcH9tra2+L29vflpaWkuR0dHAAAAAAAAAAAAiYmJZKurq4uXl5d909PT7eXl5f/MzMz/x8fH/6qqqty9vb3/g4ODlQAAABFra2tAAAAAAAAAAAAbGxsAAAAAAAAAAAAAAAAAAAAAAG9vbyOTk5N5j4+PnHl5eVZCQkIVkpKSJmNjYxEAAAAAAAAAAAAAAAD//wAA//8AAOAHAADgDwAA4AcAAOAHAADgAQAAwAEAAMABAACAAAAAgAAAAIABAADAAQAA9AcAAP9/AAA="><link href="styles.css" rel="stylesheet"></head><body><span id="edit-favourites" class="btn btn-default btn-sm"><img src="images/favourite-16x16.png"> Edit</span><div id="alert" class="alert alert-danger"><button type="button" class="close" id="alert-close">&times;</button> <span id="alert-content"></span></div><div id="content-wrapper"><div id="banner" class="green"><a href="cyberchef.htm" style="float:left;margin-left:10px;margin-right:80px" download>Download CyberChef<img src="images/download-24x24.png"></a><span id="notice"><script type="text/javascript">navigator.userAgent&&navigator.userAgent.match(/MSIE \d\d?\./)&&(document.write("Internet Explorer is not supported, please use Firefox or Chrome instead"),alert("Internet Explorer is not supported, please use Firefox or Chrome instead"))</script><noscript>JavaScript is not enabled. Good luck.</noscript></span><a href="#" id="support" class="banner-right" data-toggle="modal" data-target="#support-modal">About / Support<img src="images/help-22x22.png"></a><a href="#" id="options" class="banner-right">Options<img src="images/settings-22x22.png"></a></div><div id="wrapper"><div id="operations" class="split split-horizontal no-select"><div class="title no-select">Operations</div><input type="search" class="form-control" id="search" placeholder="Search..." autocomplete="off"><ul class="op_list" id="search-results"></ul><div class="panel-group no-select" id="categories"></div></div><div id="recipe" class="split split-horizontal no-select"><div class="title no-select">Recipe</div><ul id="rec_list" class="no-select"></ul><div id="controls" class="no-select"><div id="operational-controls"><div id="bake-group"><button type="button" class="btn btn-success btn-lg" id="bake"><img src="images/cook_male-32x32.png"> Bake!</button><label class="btn btn-success btn-lg" id="auto-bake-label"><input type="checkbox" checked="checked" id="auto-bake"><div>Auto Bake</div></label></div><div class="btn-group" style="padding-top:10px"><button type="button" class="btn btn-default" id="step"><img src="images/step-16x16.png"> Step through</button> <button type="button" class="btn btn-default" id="clr-breaks"><img src="images/erase-16x16.png"> Clear breakpoints</button></div></div><div class="btn-group-vertical" id="extra-controls"><button type="button" class="btn btn-default" id="save"><img src="images/save-16x16.png"> Save recipe</button> <button type="button" class="btn btn-default" id="load"><img src="images/open_yellow-16x16.png"> Load recipe</button> <button type="button" class="btn btn-default" id="clr-recipe"><img src="images/clean-16x16.png"> Clear recipe</button></div></div></div><div class="split split-horizontal" id="IO"><div id="input" class="split no-select"><div class="title no-select">Input<div class="btn-group io-btn-group"><button type="button" class="btn btn-default btn-sm" id="clr-io"><img src="images/recycle-16x16.png"> Clear I/O</button> <button type="button" class="btn btn-default btn-sm" id="reset-layout">Line truncated
======= =======
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>CyberChef</title><meta name="copyright" content="Crown Copyright 2016"><meta name="description" content="The Cyber Swiss Army Knife"><meta name="keywords" content="base64, hex, decode, encode, encrypt, decrypt, compress, decompress, regex, regular expressions, hash, crypt, hexadecimal, user agent, url, certificate, x.509, parser, JSON, gzip, md5, sha1, aes, des, blowfish, xor"><link rel="icon" type="image/png" href="data:image/x-icon;base64,AAABAAEAEA8AAAEAIAAkBAAAFgAAACgAAAAQAAAAHgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATExMAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwP5CQkE+Ojo5OiIiIS4aGhkt8fHxLe3t7S4GBgU6Hh4dWZWVlMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaWlrvS0tL/0dHR/9HR0f/Pz8/+qamp/6ysrP+srKz/rKys/3h4eJIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKioqix8fH/8bGxv/Gxsb/xcXF/pqamv+cnJz/nJyc/5ycnP9paWl/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsLCwyOjo6P/m5ub/5ubm/+Xl5f7Ly8v/zc3N/83Nzf/Ozs7/lZWVowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGxscfn5+f/5ubm/+bm5v/k5OT+ysrK/8zMzP/MzMz/zc3N/5KSkqIAAAAAYWFhDwAAAAAEBAQA////AAAAAACqqqrI5+fn/+bm5v/m5ub/5OTk/srKyv/MzMz/zMzM/83Nzf+wsLDcnp6eo6urq8pjY2MbAAAAAAAAAACVlZWm4uLi/+bm5v/m5ub/5ubm/+Tk5P7Kysr/zMzM/8zMzP/MzMz/zMzM/8zMzP+8vLz7bGxsLQAAAACioqJ+6Ojo/+bm5v7l5eX/5ubm/+bm5v/l5eX+ysrK/8zMzP/MzMz/zMzM/8zMzP/MzMz/t7e33Y2NjVxFRUULx8fHwubm5v/m5ub/5ubm/+bm5v/m5ub+5eXl/8rKyv7MzMz/zMzM/8zMzP/MzMz/zMzM/svLy//Hx8f/WlpaDcnJycnm5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f7Kysr/zMzM/8zMzP/MzMz/zMzM/8zMzP/Dw8P3oKCgxQAAAAG1tbWZ5+fn/+Xl5f7m5ub/5ubm/+bm5v/k5OT+ysrK/8zMzP/MzMz/y8vL/szMzP/Nzc3/tbW15UNDQxgAAAAAAAAAD76+vuLo6Oj/5ubm/+bm5v/m5ub/5OTk/srKyv/MzMz/zMzM/8zMzP/BwcH9tra2+L29vflpaWkuR0dHAAAAAAAAAAAAiYmJZKurq4uXl5d909PT7eXl5f/MzMz/x8fH/6qqqty9vb3/g4ODlQAAABFra2tAAAAAAAAAAAAbGxsAAAAAAAAAAAAAAAAAAAAAAG9vbyOTk5N5j4+PnHl5eVZCQkIVkpKSJmNjYxEAAAAAAAAAAAAAAAD//wAA//8AAOAHAADgDwAA4AcAAOAHAADgAQAAwAEAAMABAACAAAAAgAAAAIABAADAAQAA9AcAAP9/AAA="><link href="styles.css" rel="stylesheet"></head><body><span id="edit-favourites" class="btn btn-default btn-sm"><img src="images/favourite-16x16.png"> Edit</span><div id="alert" class="alert alert-danger"><button type="button" class="close" id="alert-close">&times;</button> <span id="alert-content"></span></div><div id="content-wrapper"><div id="banner" class="green"><a href="cyberchef.htm" style="float:left;margin-left:10px;margin-right:80px" download>Download CyberChef<img src="images/download-24x24.png"></a><span id="notice"><script type="text/javascript">navigator.userAgent&&navigator.userAgent.match(/MSIE \d\d?\./)&&(document.write("Internet Explorer is not supported, please use Firefox or Chrome instead"),alert("Internet Explorer is not supported, please use Firefox or Chrome instead"))</script><noscript>JavaScript is not enabled. Good luck.</noscript></span><a href="#" id="support" class="banner-right" data-toggle="modal" data-target="#support-modal">About / Support<img src="images/help-22x22.png"></a><a href="#" id="options" class="banner-right">Options<img src="images/settings-22x22.png"></a></div><div id="wrapper"><div id="operations" class="split split-horizontal no-select"><div class="title no-select">Operations</div><input type="search" class="form-control" id="search" placeholder="Search..." autocomplete="off"><ul class="op_list" id="search-results"></ul><div class="panel-group no-select" id="categories"></div></div><div id="recipe" class="split split-horizontal no-select"><div class="title no-select">Recipe</div><ul id="rec_list" class="no-select"></ul><div id="controls" class="no-select"><div id="operational-controls"><div id="bake-group"><button type="button" class="btn btn-success btn-lg" id="bake"><img src="images/cook_male-32x32.png"> Bake!</button><label class="btn btn-success btn-lg" id="auto-bake-label"><input type="checkbox" checked="checked" id="auto-bake"><div>Auto Bake</div></label></div><div class="btn-group" style="padding-top:10px"><button type="button" class="btn btn-default" id="step"><img src="images/step-16x16.png"> Step through</button> <button type="button" class="btn btn-default" id="clr-breaks"><img src="images/erase-16x16.png"> Clear breakpoints</button></div></div><div class="btn-group-vertical" id="extra-controls"><button type="button" class="btn btn-default" id="save"><img src="images/save-16x16.png"> Save recipe</button> <button type="button" class="btn btn-default" id="load"><img src="images/open_yellow-16x16.png"> Load recipe</button> <button type="button" class="btn btn-default" id="clr-recipe"><img src="images/clean-16x16.png"> Clear recipe</button></div></div></div><div class="split split-horizontal" id="IO"><div id="input" class="split no-select"><div class="title no-select">Input<div class="btn-group io-btn-group"><button type="button" class="btn btn-default btn-sm" id="clr-io"><img src="images/recycle-16x16.png"> Clear I/O</button> <button type="button" class="btn btn-default btn-sm" id="reset-layout">Line truncated <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>CyberChef</title><meta name="copyright" content="Crown Copyright 2016"><meta name="description" content="The Cyber Swiss Army Knife"><meta name="keywords" content="base64, hex, decode, encode, encrypt, decrypt, compress, decompress, regex, regular expressions, hash, crypt, hexadecimal, user agent, url, certificate, x.509, parser, JSON, gzip, md5, sha1, aes, des, blowfish, xor"><link rel="icon" type="image/png" href="data:image/x-icon;base64,AAABAAEAEA8AAAEAIAAkBAAAFgAAACgAAAAQAAAAHgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATExMAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwP5CQkE+Ojo5OiIiIS4aGhkt8fHxLe3t7S4GBgU6Hh4dWZWVlMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaWlrvS0tL/0dHR/9HR0f/Pz8/+qamp/6ysrP+srKz/rKys/3h4eJIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKioqix8fH/8bGxv/Gxsb/xcXF/pqamv+cnJz/nJyc/5ycnP9paWl/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsLCwyOjo6P/m5ub/5ubm/+Xl5f7Ly8v/zc3N/83Nzf/Ozs7/lZWVowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGxscfn5+f/5ubm/+bm5v/k5OT+ysrK/8zMzP/MzMz/zc3N/5KSkqIAAAAAYWFhDwAAAAAEBAQA////AAAAAACqqqrI5+fn/+bm5v/m5ub/5OTk/srKyv/MzMz/zMzM/83Nzf+wsLDcnp6eo6urq8pjY2MbAAAAAAAAAACVlZWm4uLi/+bm5v/m5ub/5ubm/+Tk5P7Kysr/zMzM/8zMzP/MzMz/zMzM/8zMzP+8vLz7bGxsLQAAAACioqJ+6Ojo/+bm5v7l5eX/5ubm/+bm5v/l5eX+ysrK/8zMzP/MzMz/zMzM/8zMzP/MzMz/t7e33Y2NjVxFRUULx8fHwubm5v/m5ub/5ubm/+bm5v/m5ub+5eXl/8rKyv7MzMz/zMzM/8zMzP/MzMz/zMzM/svLy//Hx8f/WlpaDcnJycnm5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f7Kysr/zMzM/8zMzP/MzMz/zMzM/8zMzP/Dw8P3oKCgxQAAAAG1tbWZ5+fn/+Xl5f7m5ub/5ubm/+bm5v/k5OT+ysrK/8zMzP/MzMz/y8vL/szMzP/Nzc3/tbW15UNDQxgAAAAAAAAAD76+vuLo6Oj/5ubm/+bm5v/m5ub/5OTk/srKyv/MzMz/zMzM/8zMzP/BwcH9tra2+L29vflpaWkuR0dHAAAAAAAAAAAAiYmJZKurq4uXl5d909PT7eXl5f/MzMz/x8fH/6qqqty9vb3/g4ODlQAAABFra2tAAAAAAAAAAAAbGxsAAAAAAAAAAAAAAAAAAAAAAG9vbyOTk5N5j4+PnHl5eVZCQkIVkpKSJmNjYxEAAAAAAAAAAAAAAAD//wAA//8AAOAHAADgDwAA4AcAAOAHAADgAQAAwAEAAMABAACAAAAAgAAAAIABAADAAQAA9AcAAP9/AAA="><link href="styles.css" rel="stylesheet"></head><body><span id="edit-favourites" class="btn btn-default btn-sm"><img src="images/favourite-16x16.png"> Edit</span><div id="alert" class="alert alert-danger"><button type="button" class="close" id="alert-close">&times;</button> <span id="alert-content"></span></div><div id="content-wrapper"><div id="banner" class="green"><a href="cyberchef.htm" style="float:left;margin-left:10px;margin-right:80px" download>Download CyberChef<img src="images/download-24x24.png"></a><span id="notice"><script type="text/javascript">navigator.userAgent&&navigator.userAgent.match(/MSIE \d\d?\./)&&(document.write("Internet Explorer is not supported, please use Firefox or Chrome instead"),alert("Internet Explorer is not supported, please use Firefox or Chrome instead"))</script><noscript>JavaScript is not enabled. Good luck.</noscript></span><a href="#" id="support" class="banner-right" data-toggle="modal" data-target="#support-modal">About / Support<img src="images/help-22x22.png"></a><a href="#" id="options" class="banner-right">Options<img src="images/settings-22x22.png"></a></div><div id="wrapper"><div id="operations" class="split split-horizontal no-select"><div class="title no-select">Operations</div><input type="search" class="form-control" id="search" placeholder="Search..." autocomplete="off"><ul class="op_list" id="search-results"></ul><div class="panel-group no-select" id="categories"></div></div><div id="recipe" class="split split-horizontal no-select"><div class="title no-select">Recipe</div><ul id="rec_list" class="no-select"></ul><div id="controls" class="no-select"><div id="operational-controls"><div id="bake-group"><button type="button" class="btn btn-success btn-lg" id="bake"><img src="images/cook_male-32x32.png"> Bake!</button><label class="btn btn-success btn-lg" id="auto-bake-label"><input type="checkbox" checked="checked" id="auto-bake"><div>Auto Bake</div></label></div><div class="btn-group" style="padding-top:10px"><button type="button" class="btn btn-default" id="step"><img src="images/step-16x16.png"> Step through</button> <button type="button" class="btn btn-default" id="clr-breaks"><img src="images/erase-16x16.png"> Clear breakpoints</button></div></div><div class="btn-group-vertical" id="extra-controls"><button type="button" class="btn btn-default" id="save"><img src="images/save-16x16.png"> Save recipe</button> <button type="button" class="btn btn-default" id="load"><img src="images/open_yellow-16x16.png"> Load recipe</button> <button type="button" class="btn btn-default" id="clr-recipe"><img src="images/clean-16x16.png"> Clear recipe</button></div></div></div><div class="split split-horizontal" id="IO"><div id="input" class="split no-select"><div class="title no-select">Input<div class="btn-group io-btn-group"><button type="button" class="btn btn-default btn-sm" id="clr-io"><img src="images/recycle-16x16.png"> Clear I/O</button> <button type="button" class="btn btn-default btn-sm" id="reset-layout">Line truncated
>>>>>>> master >>>>>>> master
=======
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>CyberChef</title><meta name="copyright" content="Crown Copyright 2016"><meta name="description" content="The Cyber Swiss Army Knife"><meta name="keywords" content="base64, hex, decode, encode, encrypt, decrypt, compress, decompress, regex, regular expressions, hash, crypt, hexadecimal, user agent, url, certificate, x.509, parser, JSON, gzip, md5, sha1, aes, des, blowfish, xor"><link rel="icon" type="image/png" href="data:image/x-icon;base64,AAABAAEAEA8AAAEAIAAkBAAAFgAAACgAAAAQAAAAHgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATExMAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwP5CQkE+Ojo5OiIiIS4aGhkt8fHxLe3t7S4GBgU6Hh4dWZWVlMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaWlrvS0tL/0dHR/9HR0f/Pz8/+qamp/6ysrP+srKz/rKys/3h4eJIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKioqix8fH/8bGxv/Gxsb/xcXF/pqamv+cnJz/nJyc/5ycnP9paWl/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsLCwyOjo6P/m5ub/5ubm/+Xl5f7Ly8v/zc3N/83Nzf/Ozs7/lZWVowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGxscfn5+f/5ubm/+bm5v/k5OT+ysrK/8zMzP/MzMz/zc3N/5KSkqIAAAAAYWFhDwAAAAAEBAQA////AAAAAACqqqrI5+fn/+bm5v/m5ub/5OTk/srKyv/MzMz/zMzM/83Nzf+wsLDcnp6eo6urq8pjY2MbAAAAAAAAAACVlZWm4uLi/+bm5v/m5ub/5ubm/+Tk5P7Kysr/zMzM/8zMzP/MzMz/zMzM/8zMzP+8vLz7bGxsLQAAAACioqJ+6Ojo/+bm5v7l5eX/5ubm/+bm5v/l5eX+ysrK/8zMzP/MzMz/zMzM/8zMzP/MzMz/t7e33Y2NjVxFRUULx8fHwubm5v/m5ub/5ubm/+bm5v/m5ub+5eXl/8rKyv7MzMz/zMzM/8zMzP/MzMz/zMzM/svLy//Hx8f/WlpaDcnJycnm5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f7Kysr/zMzM/8zMzP/MzMz/zMzM/8zMzP/Dw8P3oKCgxQAAAAG1tbWZ5+fn/+Xl5f7m5ub/5ubm/+bm5v/k5OT+ysrK/8zMzP/MzMz/y8vL/szMzP/Nzc3/tbW15UNDQxgAAAAAAAAAD76+vuLo6Oj/5ubm/+bm5v/m5ub/5OTk/srKyv/MzMz/zMzM/8zMzP/BwcH9tra2+L29vflpaWkuR0dHAAAAAAAAAAAAiYmJZKurq4uXl5d909PT7eXl5f/MzMz/x8fH/6qqqty9vb3/g4ODlQAAABFra2tAAAAAAAAAAAAbGxsAAAAAAAAAAAAAAAAAAAAAAG9vbyOTk5N5j4+PnHl5eVZCQkIVkpKSJmNjYxEAAAAAAAAAAAAAAAD//wAA//8AAOAHAADgDwAA4AcAAOAHAADgAQAAwAEAAMABAACAAAAAgAAAAIABAADAAQAA9AcAAP9/AAA="><link href="styles.css" rel="stylesheet"></head><body><span id="edit-favourites" class="btn btn-default btn-sm"><img src="images/favourite-16x16.png"> Edit</span><div id="alert" class="alert alert-danger"><button type="button" class="close" id="alert-close">&times;</button> <span id="alert-content"></span></div><div id="content-wrapper"><div id="banner" class="green"><a href="cyberchef.htm" style="float:left;margin-left:10px;margin-right:80px" download>Download CyberChef<img src="images/download-24x24.png"></a><span id="notice"><script type="text/javascript">navigator.userAgent&&navigator.userAgent.match(/MSIE \d\d?\./)&&(document.write("Internet Explorer is not supported, please use Firefox or Chrome instead"),alert("Internet Explorer is not supported, please use Firefox or Chrome instead"))</script><noscript>JavaScript is not enabled. Good luck.</noscript></span><a href="#" id="support" class="banner-right" data-toggle="modal" data-target="#support-modal">About / Support<img src="images/help-22x22.png"></a><a href="#" id="options" class="banner-right">Options<img src="images/settings-22x22.png"></a></div><div id="wrapper"><div id="operations" class="split split-horizontal no-select"><div class="title no-select">Operations</div><input type="search" class="form-control" id="search" placeholder="Search..." autocomplete="off"><ul class="op_list" id="search-results"></ul><div class="panel-group no-select" id="categories"></div></div><div id="recipe" class="split split-horizontal no-select"><div class="title no-select">Recipe</div><ul id="rec_list" class="no-select"></ul><div id="controls" class="no-select"><div id="operational-controls"><div id="bake-group"><button type="button" class="btn btn-success btn-lg" id="bake"><img src="images/cook_male-32x32.png"> Bake!</button><label class="btn btn-success btn-lg" id="auto-bake-label"><input type="checkbox" checked="checked" id="auto-bake"><div>Auto Bake</div></label></div><div class="btn-group" style="padding-top:10px"><button type="button" class="btn btn-default" id="step"><img src="images/step-16x16.png"> Step through</button> <button type="button" class="btn btn-default" id="clr-breaks"><img src="images/erase-16x16.png"> Clear breakpoints</button></div></div><div class="btn-group-vertical" id="extra-controls"><button type="button" class="btn btn-default" id="save"><img src="images/save-16x16.png"> Save recipe</button> <button type="button" class="btn btn-default" id="load"><img src="images/open_yellow-16x16.png"> Load recipe</button> <button type="button" class="btn btn-default" id="clr-recipe"><img src="images/clean-16x16.png"> Clear recipe</button></div></div></div><div class="split split-horizontal" id="IO"><div id="input" class="split no-select"><div class="title no-select">Input<div class="btn-group io-btn-group"><button type="button" class="btn btn-default btn-sm" id="clr-io"><img src="images/recycle-16x16.png"> Clear I/O</button> <button type="button" class="btn btn-default btn-sm" id="reset-layout">Line truncated
>>>>>>> master
+13
View File
@@ -256,6 +256,7 @@ function(){function a(a){var b=" ";if(isNaN(parseInt(a)))b=a;else switch(a){c
@license MIT @license MIT
*/ */
function(a){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a():"undefined"!=typeof Package?Sortable=a():window.Sortable=a()}(function(){function a(a,b){if(!a||!a.nodeType||1!==a.nodeType)throw"Sortable: `el` must be HTMLElement, and not "+{}.toString.call(a);this.el=a,this.options=b=s({},b),a[M]=this;var c={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(a.nodeName)?"li":">*",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",ignore:"a, img",filter:null,animation:0,setData:function(a,b){a.setData("Text",b.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1};for(var d in c)!(d in b)&&(b[d]=c[d]);W(b);for(var f in this)"_"===f.charAt(0)&&(this[f]=this[f].bind(this));this.nativeDraggable=!b.forceFallback&&Q,e(a,"mousedown",this._onTapStart),e(a,"touchstart",this._onTapStart),this.nativeDraggable&&(e(a,"dragover",this),e(a,"dragenter",this)),U.push(this._onDragOver),b.store&&this.sort(b.store.get(this))}function b(a){w&&w.state!==a&&(h(w,"display",a?"none":""),!a&&w.state&&x.insertBefore(w,t),w.state=a)}function c(a,b,c){if(a){c=c||O;do if(">*"===b&&a.parentNode===c||q(a,b))return a;while(a!==c&&(a=a.parentNode))}return null}function d(a){a.dataTransfer&&(a.dataTransfer.dropEffect="move"),a.preventDefault()}function e(a,b,c){a.addEventListener(b,c,!1)}function f(a,b,c){a.removeEventListener(b,c,!1)}function g(a,b,c){if(a)if(a.classList)a.classList[c?"add":"remove"](b);else{var d=(" "+a.className+" ").replace(L," ").replace(" "+b+" "," ");a.className=(d+(c?" "+b:"")).replace(L," ")}}function h(a,b,c){var d=a&&a.style;if(d){if(void 0===c)return O.defaultView&&O.defaultView.getComputedStyle?c=O.defaultView.getComputedStyle(a,""):a.currentStyle&&(c=a.currentStyle),void 0===b?c:c[b];b in d||(b="-webkit-"+b),d[b]=c+("string"==typeof c?"":"px")}}function i(a,b,c){if(a){var d=a.getElementsByTagName(b),e=0,f=d.length;if(c)for(;e<f;e++)c(d[e],e);return d}return[]}function j(a,b,c,d,e,f,g){var h=O.createEvent("Event"),i=(a||b[M]).options,j="on"+c.charAt(0).toUpperCase()+c.substr(1);h.initEvent(c,!0,!0),h.to=b,h.from=e||b,h.item=d||b,h.clone=w,h.oldIndex=f,h.newIndex=g,b.dispatchEvent(h),i[j]&&i[j].call(a,h)}function k(a,b,c,d,e,f){var g,h,i=a[M],j=i.options.onMove;return g=O.createEvent("Event"),g.initEvent("move",!0,!0),g.to=b,g.from=a,g.dragged=c,g.draggedRect=d,g.related=e||b,g.relatedRect=f||b.getBoundingClientRect(),a.dispatchEvent(g),j&&(h=j.call(i,g)),h}function l(a){a.draggable=!1}function m(){S=!1}function n(a,b){var c=a.lastElementChild,d=c.getBoundingClientRect();return(b.clientY-(d.top+d.height)>5||b.clientX-(d.right+d.width)>5)&&c}function o(a){for(var b=a.tagName+a.className+a.src+a.href+a.textContent,c=b.length,d=0;c--;)d+=b.charCodeAt(c);return d.toString(36)}function p(a,b){var c=0;if(!a||!a.parentNode)return-1;for(;a&&(a=a.previousElementSibling);)"TEMPLATE"!==a.nodeName.toUpperCase()&&q(a,b)&&c++;return c}function q(a,b){if(a){b=b.split(".");var c=b.shift().toUpperCase(),d=new RegExp("\\s("+b.join("|")+")(?=\\s)","g");return!(""!==c&&a.nodeName.toUpperCase()!=c||b.length&&((" "+a.className+" ").match(d)||[]).length!=b.length)}return!1}function r(a,b){var c,d;return function(){void 0===c&&(c=arguments,d=this,setTimeout(function(){1===c.length?a.call(d,c[0]):a.apply(d,c),c=void 0},b))}}function s(a,b){if(a&&b)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}if("undefined"==typeof window||"undefined"==typeof window.document)return function(){throw new Error("Sortable.js requires a window with a document")};var t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K={},L=/\s+/g,M="Sortable"+(new Date).getTime(),N=window,O=N.document,P=N.parseInt,Q=!!("draggable"in O.createElement("div")),R=function(a){return a=O.createElement("x"),a.style.cssText="pointer-events:auto","auto"===a.style.pointerEvents}(),S=!1,T=Math.abs,U=([].slice,[]),V=r(function(a,b,c){if(c&&b.scroll){var d,e,f,g,h=b.scrollSensitivity,i=b.scrollSpeed,j=a.clientX,k=a.clientY,l=window.innerWidth,m=window.innerHeight;if(A!==c&&(z=b.scroll,A=c,z===!0)){z=c;do if(z.offsetWidth<z.scrollWidth||z.offsetHeight<z.scrollHeight)break;while(z=z.parentNode)}z&&(d=z,e=z.getBoundingClientRect(),f=(T(e.right-j)<=h)-(T(e.left-j)<=h),g=(T(e.bottom-k)<=h)-(T(e.top-k)<=h)),f||g||(f=(l-j<=h)-(j<=h),g=(m-k<=h)-(k<=h),(f||g)&&(d=N)),K.vx===f&&K.vy===g&&K.el===d||(K.el=d,K.vx=f,K.vy=g,clearInterval(K.pid),d&&(K.pid=setInterval(function(){d===N?N.scrollTo(N.pageXOffset+f*i,N.pageYOffset+g*i):(g&&(d.scrollTop+=g*i),f&&(d.scrollLeft+=f*i))},24)))}},30),W=function(a){var b=a.group;b&&"object"==typeof b||(b=a.group={name:b}),["pull","put"].forEach(function(a){a in b||(b[a]=!0)}),a.groups=" "+b.name+(b.put.join?" "+b.put.join(" "):"")+" "};return a.prototype={constructor:a,_onTapStart:function(a){var b=this,d=this.el,e=thisLine truncated function(a){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a():"undefined"!=typeof Package?Sortable=a():window.Sortable=a()}(function(){function a(a,b){if(!a||!a.nodeType||1!==a.nodeType)throw"Sortable: `el` must be HTMLElement, and not "+{}.toString.call(a);this.el=a,this.options=b=s({},b),a[M]=this;var c={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(a.nodeName)?"li":">*",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",ignore:"a, img",filter:null,animation:0,setData:function(a,b){a.setData("Text",b.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1};for(var d in c)!(d in b)&&(b[d]=c[d]);W(b);for(var f in this)"_"===f.charAt(0)&&(this[f]=this[f].bind(this));this.nativeDraggable=!b.forceFallback&&Q,e(a,"mousedown",this._onTapStart),e(a,"touchstart",this._onTapStart),this.nativeDraggable&&(e(a,"dragover",this),e(a,"dragenter",this)),U.push(this._onDragOver),b.store&&this.sort(b.store.get(this))}function b(a){w&&w.state!==a&&(h(w,"display",a?"none":""),!a&&w.state&&x.insertBefore(w,t),w.state=a)}function c(a,b,c){if(a){c=c||O;do if(">*"===b&&a.parentNode===c||q(a,b))return a;while(a!==c&&(a=a.parentNode))}return null}function d(a){a.dataTransfer&&(a.dataTransfer.dropEffect="move"),a.preventDefault()}function e(a,b,c){a.addEventListener(b,c,!1)}function f(a,b,c){a.removeEventListener(b,c,!1)}function g(a,b,c){if(a)if(a.classList)a.classList[c?"add":"remove"](b);else{var d=(" "+a.className+" ").replace(L," ").replace(" "+b+" "," ");a.className=(d+(c?" "+b:"")).replace(L," ")}}function h(a,b,c){var d=a&&a.style;if(d){if(void 0===c)return O.defaultView&&O.defaultView.getComputedStyle?c=O.defaultView.getComputedStyle(a,""):a.currentStyle&&(c=a.currentStyle),void 0===b?c:c[b];b in d||(b="-webkit-"+b),d[b]=c+("string"==typeof c?"":"px")}}function i(a,b,c){if(a){var d=a.getElementsByTagName(b),e=0,f=d.length;if(c)for(;e<f;e++)c(d[e],e);return d}return[]}function j(a,b,c,d,e,f,g){var h=O.createEvent("Event"),i=(a||b[M]).options,j="on"+c.charAt(0).toUpperCase()+c.substr(1);h.initEvent(c,!0,!0),h.to=b,h.from=e||b,h.item=d||b,h.clone=w,h.oldIndex=f,h.newIndex=g,b.dispatchEvent(h),i[j]&&i[j].call(a,h)}function k(a,b,c,d,e,f){var g,h,i=a[M],j=i.options.onMove;return g=O.createEvent("Event"),g.initEvent("move",!0,!0),g.to=b,g.from=a,g.dragged=c,g.draggedRect=d,g.related=e||b,g.relatedRect=f||b.getBoundingClientRect(),a.dispatchEvent(g),j&&(h=j.call(i,g)),h}function l(a){a.draggable=!1}function m(){S=!1}function n(a,b){var c=a.lastElementChild,d=c.getBoundingClientRect();return(b.clientY-(d.top+d.height)>5||b.clientX-(d.right+d.width)>5)&&c}function o(a){for(var b=a.tagName+a.className+a.src+a.href+a.textContent,c=b.length,d=0;c--;)d+=b.charCodeAt(c);return d.toString(36)}function p(a,b){var c=0;if(!a||!a.parentNode)return-1;for(;a&&(a=a.previousElementSibling);)"TEMPLATE"!==a.nodeName.toUpperCase()&&q(a,b)&&c++;return c}function q(a,b){if(a){b=b.split(".");var c=b.shift().toUpperCase(),d=new RegExp("\\s("+b.join("|")+")(?=\\s)","g");return!(""!==c&&a.nodeName.toUpperCase()!=c||b.length&&((" "+a.className+" ").match(d)||[]).length!=b.length)}return!1}function r(a,b){var c,d;return function(){void 0===c&&(c=arguments,d=this,setTimeout(function(){1===c.length?a.call(d,c[0]):a.apply(d,c),c=void 0},b))}}function s(a,b){if(a&&b)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}if("undefined"==typeof window||"undefined"==typeof window.document)return function(){throw new Error("Sortable.js requires a window with a document")};var t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K={},L=/\s+/g,M="Sortable"+(new Date).getTime(),N=window,O=N.document,P=N.parseInt,Q=!!("draggable"in O.createElement("div")),R=function(a){return a=O.createElement("x"),a.style.cssText="pointer-events:auto","auto"===a.style.pointerEvents}(),S=!1,T=Math.abs,U=([].slice,[]),V=r(function(a,b,c){if(c&&b.scroll){var d,e,f,g,h=b.scrollSensitivity,i=b.scrollSpeed,j=a.clientX,k=a.clientY,l=window.innerWidth,m=window.innerHeight;if(A!==c&&(z=b.scroll,A=c,z===!0)){z=c;do if(z.offsetWidth<z.scrollWidth||z.offsetHeight<z.scrollHeight)break;while(z=z.parentNode)}z&&(d=z,e=z.getBoundingClientRect(),f=(T(e.right-j)<=h)-(T(e.left-j)<=h),g=(T(e.bottom-k)<=h)-(T(e.top-k)<=h)),f||g||(f=(l-j<=h)-(j<=h),g=(m-k<=h)-(k<=h),(f||g)&&(d=N)),K.vx===f&&K.vy===g&&K.el===d||(K.el=d,K.vx=f,K.vy=g,clearInterval(K.pid),d&&(K.pid=setInterval(function(){d===N?N.scrollTo(N.pageXOffset+f*i,N.pageYOffset+g*i):(g&&(d.scrollTop+=g*i),f&&(d.scrollLeft+=f*i))},24)))}},30),W=function(a){var b=a.group;b&&"object"==typeof b||(b=a.group={name:b}),["pull","put"].forEach(function(a){a in b||(b[a]=!0)}),a.groups=" "+b.name+(b.put.join?" "+b.put.join(" "):"")+" "};return a.prototype={constructor:a,_onTapStart:function(a){var b=this,d=this.el,e=thisLine truncated
<<<<<<< HEAD
h.fillStyle="green";for(var u=0;u<b.length;u++){var v=b[u]/t*m;h.fillRect(s,o-v,r,v),s+=r+q}if(h.fillStyle="black",h.textAlign="center",s=i+q,e>=b.length)for(var u=0;u<=b.length;u++)h.fillText(u,s,o+.3*l),s+=r+q;else for(var u=0;u<=e;u++){var w=Math.ceil(b.length/e*u);s=n/e*u+i,h.fillText(w,s,o+.3*l)}h.textAlign="right";var x;if(f>=t)for(var u=0;u<=t;u++)x=o-u/t*m+g/3,h.fillText(u,.8*i,x);else for(var u=0;u<=f;u++){var w=Math.ceil(t/f*u);x=o-w/t*m+g/3,h.fillText(w,.8*i,x)}if(c&&(h.textAlign="center",h.fillText(c,n/2+i,o+.8*l)),d){h.save();var y=.3*i,z=m/2+k;h.translate(y,z),h.rotate(-Math.PI/2),h.textAlign="center",h.fillText(d,0,0),h.restore()}},draw_scale_bar:function(a,b,c,d){var e=a.getContext("2d"),f=.01*a.width,g=.01*a.width,h=.1*a.height,i=.3*a.height,j=a.height-h-i,k=a.width-f-g,l=b/c;e.strokeRect(f,h,k,j);var m=e.createLinearGradient(f,0,k+f,0);m.addColorStop(0,"green"),m.addColorStop(.5,"gold"),m.addColorStop(1,"red"),e.fillStyle=m,e.fillRect(f,h,k*l,j);var n,o,p,q;e.fillStyle="black",e.textAlign="center",e.font="13px Arial";for(var r=0;r<d.length;r++)n=k/c*d[r].min+f,o=h+j+.1*i,p=n,q=h+j+.3*i,CanvasComponents.draw_line(e,n,o,p,q),n=k/c*d[r].max+f,p=n,CanvasComponents.draw_line(e,n,o,p,q),n=k/c*d[r].min+f,o=h+j+.3*i,p=k/c*d[r].max+f,q=o,CanvasComponents.draw_line(e,n,o,p,q),d[r].max>=.9*c?(e.textAlign="right",n=p):d[r].max<=.1*c?e.textAlign="left":n+=(p-n)/2,o=h+j+.8*i,e.fillText(d[r].label,n,o)}},Utils={chr:function(a){return String.fromCharCode(a)},ord:function(a){return a.charCodeAt(0)},pad_left:function(a,b,c){c=c||"0";var d=c.length-(b-a.length);return d=d<0?0:d,a.length<b?Utils.pad_left(c.slice(d,c.length)+a,b,c):a},pad_right:function(a,b,c){return c=c||" ",a.length<b?Utils.pad_right(a+c.slice(0,b-a.length),b,c):a},pad:function(a,b,c){return Utils.pad_left(a,b,c)},truncate:function(a,b,c){return c=c||"...",a.length>b&&(a=a.slice(0,b-c.length)+c),a},hex:function(a,b){return a="string"==typeof a?Utils.ord(a):a,b=b||2,Utils.pad(a.toString(16),b)},bin:function(a,b){return a="string"==typeof a?Utils.ord(a):a,b=b||8,Utils.pad(a.toString(2),b)},printable:function(a,b){window&&window.app&&!window.app.options.treat_as_utf8&&(a=Utils.byte_array_to_chars(Utils.str_to_byte_array(a)));var c=/[\0-\x08\x0B-\x0C\x0E-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2FLine truncated h.fillStyle="green";for(var u=0;u<b.length;u++){var v=b[u]/t*m;h.fillRect(s,o-v,r,v),s+=r+q}if(h.fillStyle="black",h.textAlign="center",s=i+q,e>=b.length)for(var u=0;u<=b.length;u++)h.fillText(u,s,o+.3*l),s+=r+q;else for(var u=0;u<=e;u++){var w=Math.ceil(b.length/e*u);s=n/e*u+i,h.fillText(w,s,o+.3*l)}h.textAlign="right";var x;if(f>=t)for(var u=0;u<=t;u++)x=o-u/t*m+g/3,h.fillText(u,.8*i,x);else for(var u=0;u<=f;u++){var w=Math.ceil(t/f*u);x=o-w/t*m+g/3,h.fillText(w,.8*i,x)}if(c&&(h.textAlign="center",h.fillText(c,n/2+i,o+.8*l)),d){h.save();var y=.3*i,z=m/2+k;h.translate(y,z),h.rotate(-Math.PI/2),h.textAlign="center",h.fillText(d,0,0),h.restore()}},draw_scale_bar:function(a,b,c,d){var e=a.getContext("2d"),f=.01*a.width,g=.01*a.width,h=.1*a.height,i=.3*a.height,j=a.height-h-i,k=a.width-f-g,l=b/c;e.strokeRect(f,h,k,j);var m=e.createLinearGradient(f,0,k+f,0);m.addColorStop(0,"green"),m.addColorStop(.5,"gold"),m.addColorStop(1,"red"),e.fillStyle=m,e.fillRect(f,h,k*l,j);var n,o,p,q;e.fillStyle="black",e.textAlign="center",e.font="13px Arial";for(var r=0;r<d.length;r++)n=k/c*d[r].min+f,o=h+j+.1*i,p=n,q=h+j+.3*i,CanvasComponents.draw_line(e,n,o,p,q),n=k/c*d[r].max+f,p=n,CanvasComponents.draw_line(e,n,o,p,q),n=k/c*d[r].min+f,o=h+j+.3*i,p=k/c*d[r].max+f,q=o,CanvasComponents.draw_line(e,n,o,p,q),d[r].max>=.9*c?(e.textAlign="right",n=p):d[r].max<=.1*c?e.textAlign="left":n+=(p-n)/2,o=h+j+.8*i,e.fillText(d[r].label,n,o)}},Utils={chr:function(a){return String.fromCharCode(a)},ord:function(a){return a.charCodeAt(0)},pad_left:function(a,b,c){c=c||"0";var d=c.length-(b-a.length);return d=d<0?0:d,a.length<b?Utils.pad_left(c.slice(d,c.length)+a,b,c):a},pad_right:function(a,b,c){return c=c||" ",a.length<b?Utils.pad_right(a+c.slice(0,b-a.length),b,c):a},pad:function(a,b,c){return Utils.pad_left(a,b,c)},truncate:function(a,b,c){return c=c||"...",a.length>b&&(a=a.slice(0,b-c.length)+c),a},hex:function(a,b){return a="string"==typeof a?Utils.ord(a):a,b=b||2,Utils.pad(a.toString(16),b)},bin:function(a,b){return a="string"==typeof a?Utils.ord(a):a,b=b||8,Utils.pad(a.toString(2),b)},printable:function(a,b){window&&window.app&&!window.app.options.treat_as_utf8&&(a=Utils.byte_array_to_chars(Utils.str_to_byte_array(a)));var c=/[\0-\x08\x0B-\x0C\x0E-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2FLine truncated
<<<<<<< HEAD <<<<<<< HEAD
var c=b[0]/32,d=b[1],e=CryptoJS.enc.Hex.parse(b[2]||""),f=b[3],g=b[4],h=Utils.format[f].parse(a),i=CryptoJS.EvpKDF(h,e,{keySize:c,iterations:d});return i.toString(Utils.format[g])},run_rc4:function(a,b){var c=Utils.format[b[1]].parse(a),d=Utils.format[b[0].option].parse(b[0].string),e=CryptoJS.RC4.encrypt(c,d);return e.ciphertext.toString(Utils.format[b[2]])},RC4DROP_BYTES:768,run_rc4drop:function(a,b){var c=Utils.format[b[1]].parse(a),d=Utils.format[b[0].option].parse(b[0].string),e=b[3],f=CryptoJS.RC4Drop.encrypt(c,d,{drop:e});return f.ciphertext.toString(Utils.format[b[2]])},VIG_ENC_KEY:"cipher",run_vigenc:function(a,b){var c,d,e,f="abcdefghijklmnopqrstuvwxyz",g=b[0].toLowerCase(),h="",i=0;if(!g)throw"A keyword is required.";if(!/^[a-zA-Z]+$/.test(g))throw"Keyword can only consist of letters.";for(var j=0;j<a.length;j++)f.indexOf(a[j])>=0?(e=g[(j-i)%g.length],c=f.indexOf(e),d=f.indexOf(a[j]),h+=f[(c+d)%26]):f.indexOf(a[j].toLowerCase())>=0?(e=g[(j-i)%g.length].toLowerCase(),c=f.indexOf(e),d=f.indexOf(a[j].toLowerCase()),h+=f[(c+d)%26].toUpperCase()):(h+=a[j],i++);return h},VIG_DEC_KEY:"cipher",run_vigdec:function(a,b){var c,d,e,f="abcdefghijklmnopqrstuvwxyz",g=b[0].toLowerCase(),h="",i=0;if(!g)throw"A keyword is required.";if(!/^[a-zA-Z]+$/.test(g))throw"Keyword can only consist of letters.";for(var j=0;j<a.length;j++)f.indexOf(a[j])>=0?(e=g[(j-i)%g.length],c=f.indexOf(e),d=f.indexOf(a[j]),h+=f[(d-c+f.length)%26]):f.indexOf(a[j].toLowerCase())>=0?(e=g[(j-i)%g.length].toLowerCase(),c=f.indexOf(e),d=f.indexOf(a[j].toLowerCase()),h+=f[(d+f.length-c)%26].toUpperCase()):(h+=a[j],i++);return h}};CryptoJS.kdf.OpenSSL.execute=function(a,b,c,d){void 0!==d&&null!==d||(d=CryptoJS.lib.WordArray.random(8));var e=CryptoJS.algo.EvpKDF.create({keySize:b+c}).compute(a,d),f=CryptoJS.lib.WordArray.create(e.words.slice(b),4*c);return e.sigBytes=4*b,CryptoJS.lib.CipherParams.create({key:e,iv:f,salt:d})};var Code={LANGUAGES:["default-code","default-markup","bash","bsh","c","cc","coffee","cpp","cs","csh","cv","cxx","cyc","htm","html","in.tag","java","javascript","js","json","m","mxml","perl","pl","pm","py","python","rb","rc","rs","ruby","rust","sh","uq.val","xhtml","xml","xsl"],LINE_NUMS:!1,run_syntax_highlight:function(a,b){var c=b[0],d=b[1];return"<code class='prettyprint'>"+prettyPrintOne(Utils.escape_html(a),c,d)+"</code>"},BEAUTIFY_INDENT:"\\t",run_xml_beautify:function(a,b){var c=b[0];return vkbeautify.xml(a,c)},run_json_beautify:function(a,b){var c=b[0];return a?vkbeautify.json(a,c):""},run_css_beautify:function(a,b){var c=b[0];return vkbeautify.css(a,c)},run_sql_beautify:function(a,b){var c=b[0];return vkbeautify.sql(a,c)},PRESERVE_COMMENTS:!1,run_xml_minify:function(a,b){var c=b[0];return vkbeautify.xmlmin(a,c)},run_json_minify:function(a,b){return a?vkbeautify.jsonmin(a):""},run_css_minify:function(a,b){var c=b[0];return vkbeautify.cssmin(a,c)},run_sql_minify:function(a,b){return vkbeautify.sqlmin(a)},run_generic_beautify:function(a,b){function c(a,b,c){return g[c]=b[0],a.substring(0,b.index)+"###preserved_token"+c+"###"+a.substring(b.index+b[0].length)}for(var d,e=a,f=0,g=[],h=/'([^'\\]|\\.)*'/g;d=h.exec(e);)e=c(e,d,f++),h.lastIndex=d.index;for(var i=/"([^"\\]|\\.)*"/g;d=i.exec(e);)e=c(e,d,f++),i.lastIndex=d.index;for(var j=/\/\/[^\n\r]*/g;d=j.exec(e);)e=c(e,d,f++),j.lastIndex=d.index;for(var k=/\/\*[\s\S]*?\*\//gm;d=k.exec(e);)e=c(e,d,f++),k.lastIndex=d.index;for(var l=/(^|\n)#[^\n\r#]+/g;d=l.exec(e);)e=c(e,d,f++),l.lastIndex=d.index;for(var m=/\/.*?[^\\]\/[gim]{0,3}/gi;d=m.exec(e);)e=c(e,d,f++),m.lastIndex=d.index;e=e.replace(/;/g,";\n"),e=e.replace(/{/g,"{\n"),e=e.replace(/}/g,"\n}\n"),e=e.replace(/\r/g,""),e=e.replace(/^\s+/g,""),e=e.replace(/\n\s+/g,"\n"),e=e.replace(/\s*$/g,""),e=e.replace(/\n{/g,"{");for(var n=0,o=0;n<e.length;){switch(e[n]){case"{":o++;break;case"\n":if(n+1>=e.length)break;"}"==e[n+1]&&o--;var p=o>=0?Array(4*o+1).join(" "):"";e=e.substring(0,n+1)+p+e.substring(n+1),o>0&&(n+=4*o)}n++}e=e.replace(/\s*([!<>=+-\/*]?)=\s*/g," $1= "),e=e.replace(/\s*<([=]?)\s*/g," <$1 "),e=e.replace(/\s*>([=]?)\s*/g," >$1 "),e=e.replace(/([^+])\+([^+=])/g,"$1 + $2"),e=e.replace(/([^-])-([^-=])/g,"$1 - $2"),e=e.replace(/([^*])\*([^*=])/g,"$1 * $2"),e=e.replace(/([^\/])\/([^\/=])/g,"$1 / $2"),e=e.replace(/\s*,\s*/g,", "),e=e.replace(/\s*{/g," {"),e=e.replace(/}\n/g,"}\n\n"),e=e.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)\s*\n([^{])/gim,"$1 ($2)\n $3"),e=e.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)([^{])/gim,"$1 ($2) $3"),e=e.replace(/else\s*\n([^{])/gim,"else\n $1"),e=e.replace(/else\s+([^{])/gim,"else $1"),e=e.replace(/\s+;/g,";"),e=e.replace(/\{\s+\}/g,"{}"),e=e.replace(/\[\s+\]/g,"[]"),e=e.replace(/}\s*(else|catch|except|finally|elif|elseif|else if)/gi,"} $1");for(var q=/###preserved_token(\d+)###/g;d=q.exec(e);){var r=parseInt(d[1]);e=e.substring(0,d.index)+g[r]+e.substring(d.index+d[0].length),q.lastIndex=d.index}return e}},Compress={COMPRESSION_TYPE:["Dynamic Huffman Coding","FiLine truncated var c=b[0]/32,d=b[1],e=CryptoJS.enc.Hex.parse(b[2]||""),f=b[3],g=b[4],h=Utils.format[f].parse(a),i=CryptoJS.EvpKDF(h,e,{keySize:c,iterations:d});return i.toString(Utils.format[g])},run_rc4:function(a,b){var c=Utils.format[b[1]].parse(a),d=Utils.format[b[0].option].parse(b[0].string),e=CryptoJS.RC4.encrypt(c,d);return e.ciphertext.toString(Utils.format[b[2]])},RC4DROP_BYTES:768,run_rc4drop:function(a,b){var c=Utils.format[b[1]].parse(a),d=Utils.format[b[0].option].parse(b[0].string),e=b[3],f=CryptoJS.RC4Drop.encrypt(c,d,{drop:e});return f.ciphertext.toString(Utils.format[b[2]])},VIG_ENC_KEY:"cipher",run_vigenc:function(a,b){var c,d,e,f="abcdefghijklmnopqrstuvwxyz",g=b[0].toLowerCase(),h="",i=0;if(!g)throw"A keyword is required.";if(!/^[a-zA-Z]+$/.test(g))throw"Keyword can only consist of letters.";for(var j=0;j<a.length;j++)f.indexOf(a[j])>=0?(e=g[(j-i)%g.length],c=f.indexOf(e),d=f.indexOf(a[j]),h+=f[(c+d)%26]):f.indexOf(a[j].toLowerCase())>=0?(e=g[(j-i)%g.length].toLowerCase(),c=f.indexOf(e),d=f.indexOf(a[j].toLowerCase()),h+=f[(c+d)%26].toUpperCase()):(h+=a[j],i++);return h},VIG_DEC_KEY:"cipher",run_vigdec:function(a,b){var c,d,e,f="abcdefghijklmnopqrstuvwxyz",g=b[0].toLowerCase(),h="",i=0;if(!g)throw"A keyword is required.";if(!/^[a-zA-Z]+$/.test(g))throw"Keyword can only consist of letters.";for(var j=0;j<a.length;j++)f.indexOf(a[j])>=0?(e=g[(j-i)%g.length],c=f.indexOf(e),d=f.indexOf(a[j]),h+=f[(d-c+f.length)%26]):f.indexOf(a[j].toLowerCase())>=0?(e=g[(j-i)%g.length].toLowerCase(),c=f.indexOf(e),d=f.indexOf(a[j].toLowerCase()),h+=f[(d+f.length-c)%26].toUpperCase()):(h+=a[j],i++);return h}};CryptoJS.kdf.OpenSSL.execute=function(a,b,c,d){void 0!==d&&null!==d||(d=CryptoJS.lib.WordArray.random(8));var e=CryptoJS.algo.EvpKDF.create({keySize:b+c}).compute(a,d),f=CryptoJS.lib.WordArray.create(e.words.slice(b),4*c);return e.sigBytes=4*b,CryptoJS.lib.CipherParams.create({key:e,iv:f,salt:d})};var Code={LANGUAGES:["default-code","default-markup","bash","bsh","c","cc","coffee","cpp","cs","csh","cv","cxx","cyc","htm","html","in.tag","java","javascript","js","json","m","mxml","perl","pl","pm","py","python","rb","rc","rs","ruby","rust","sh","uq.val","xhtml","xml","xsl"],LINE_NUMS:!1,run_syntax_highlight:function(a,b){var c=b[0],d=b[1];return"<code class='prettyprint'>"+prettyPrintOne(Utils.escape_html(a),c,d)+"</code>"},BEAUTIFY_INDENT:"\\t",run_xml_beautify:function(a,b){var c=b[0];return vkbeautify.xml(a,c)},run_json_beautify:function(a,b){var c=b[0];return a?vkbeautify.json(a,c):""},run_css_beautify:function(a,b){var c=b[0];return vkbeautify.css(a,c)},run_sql_beautify:function(a,b){var c=b[0];return vkbeautify.sql(a,c)},PRESERVE_COMMENTS:!1,run_xml_minify:function(a,b){var c=b[0];return vkbeautify.xmlmin(a,c)},run_json_minify:function(a,b){return a?vkbeautify.jsonmin(a):""},run_css_minify:function(a,b){var c=b[0];return vkbeautify.cssmin(a,c)},run_sql_minify:function(a,b){return vkbeautify.sqlmin(a)},run_generic_beautify:function(a,b){function c(a,b,c){return g[c]=b[0],a.substring(0,b.index)+"###preserved_token"+c+"###"+a.substring(b.index+b[0].length)}for(var d,e=a,f=0,g=[],h=/'([^'\\]|\\.)*'/g;d=h.exec(e);)e=c(e,d,f++),h.lastIndex=d.index;for(var i=/"([^"\\]|\\.)*"/g;d=i.exec(e);)e=c(e,d,f++),i.lastIndex=d.index;for(var j=/\/\/[^\n\r]*/g;d=j.exec(e);)e=c(e,d,f++),j.lastIndex=d.index;for(var k=/\/\*[\s\S]*?\*\//gm;d=k.exec(e);)e=c(e,d,f++),k.lastIndex=d.index;for(var l=/(^|\n)#[^\n\r#]+/g;d=l.exec(e);)e=c(e,d,f++),l.lastIndex=d.index;for(var m=/\/.*?[^\\]\/[gim]{0,3}/gi;d=m.exec(e);)e=c(e,d,f++),m.lastIndex=d.index;e=e.replace(/;/g,";\n"),e=e.replace(/{/g,"{\n"),e=e.replace(/}/g,"\n}\n"),e=e.replace(/\r/g,""),e=e.replace(/^\s+/g,""),e=e.replace(/\n\s+/g,"\n"),e=e.replace(/\s*$/g,""),e=e.replace(/\n{/g,"{");for(var n=0,o=0;n<e.length;){switch(e[n]){case"{":o++;break;case"\n":if(n+1>=e.length)break;"}"==e[n+1]&&o--;var p=o>=0?Array(4*o+1).join(" "):"";e=e.substring(0,n+1)+p+e.substring(n+1),o>0&&(n+=4*o)}n++}e=e.replace(/\s*([!<>=+-\/*]?)=\s*/g," $1= "),e=e.replace(/\s*<([=]?)\s*/g," <$1 "),e=e.replace(/\s*>([=]?)\s*/g," >$1 "),e=e.replace(/([^+])\+([^+=])/g,"$1 + $2"),e=e.replace(/([^-])-([^-=])/g,"$1 - $2"),e=e.replace(/([^*])\*([^*=])/g,"$1 * $2"),e=e.replace(/([^\/])\/([^\/=])/g,"$1 / $2"),e=e.replace(/\s*,\s*/g,", "),e=e.replace(/\s*{/g," {"),e=e.replace(/}\n/g,"}\n\n"),e=e.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)\s*\n([^{])/gim,"$1 ($2)\n $3"),e=e.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)([^{])/gim,"$1 ($2) $3"),e=e.replace(/else\s*\n([^{])/gim,"else\n $1"),e=e.replace(/else\s+([^{])/gim,"else $1"),e=e.replace(/\s+;/g,";"),e=e.replace(/\{\s+\}/g,"{}"),e=e.replace(/\[\s+\]/g,"[]"),e=e.replace(/}\s*(else|catch|except|finally|elif|elseif|else if)/gi,"} $1");for(var q=/###preserved_token(\d+)###/g;d=q.exec(e);){var r=parseInt(d[1]);e=e.substring(0,d.index)+g[r]+e.substring(d.index+d[0].length),q.lastIndex=d.index}return e}},Compress={COMPRESSION_TYPE:["Dynamic Huffman Coding","FiLine truncated
@@ -277,3 +278,15 @@ a.clientWidth<470?b.childNodes[1].nodeValue=" Step":b.childNodes[1].nodeValue="
this.recipe.initialise_operation_drag_n_drop(),this.controls.auto_bake_change(),this.seasonal.load()},Manager.prototype.initialise_event_listeners=function(){window.addEventListener("resize",this.window.window_resize.bind(this.window)),window.addEventListener("blur",this.window.window_blur.bind(this.window)),window.addEventListener("focus",this.window.window_focus.bind(this.window)),window.addEventListener("statechange",this.app.state_change.bind(this.app)),window.addEventListener("popstate",this.app.pop_state.bind(this.app)),document.getElementById("bake").addEventListener("click",this.controls.bake_click.bind(this.controls)),document.getElementById("auto-bake").addEventListener("change",this.controls.auto_bake_change.bind(this.controls)),document.getElementById("step").addEventListener("click",this.controls.step_click.bind(this.controls)),document.getElementById("clr-recipe").addEventListener("click",this.controls.clear_recipe_click.bind(this.controls)),document.getElementById("clr-breaks").addEventListener("click",this.controls.clear_breaks_click.bind(this.controls)),document.getElementById("save").addEventListener("click",this.controls.save_click.bind(this.controls)),document.getElementById("save-button").addEventListener("click",this.controls.save_button_click.bind(this.controls)),document.getElementById("save-link-recipe-checkbox").addEventListener("change",this.controls.slr_check_change.bind(this.controls)),document.getElementById("save-link-input-checkbox").addEventListener("change",this.controls.sli_check_change.bind(this.controls)),document.getElementById("load").addEventListener("click",this.controls.load_click.bind(this.controls)),document.getElementById("load-delete-button").addEventListener("click",this.controls.load_delete_click.bind(this.controls)),document.getElementById("load-name").addEventListener("change",this.controls.load_name_change.bind(this.controls)),document.getElementById("load-button").addEventListener("click",this.controls.load_button_click.bind(this.controls)),this.add_multi_event_listener("#save-text","keyup paste",this.controls.save_text_change,this.controls),this.add_multi_event_listener("#search","keyup paste search",this.ops.search_operations,this.ops),this.add_dynamic_listener(".op_list li.operation","dblclick",this.ops.operation_dblclick,this.ops),document.getElementById("edit-favourites").addEventListener("click",this.ops.edit_favourites_click.bind(this.ops)),document.getElementById("save-favourites").addEventListener("click",this.ops.save_favourites_click.bind(this.ops)),document.getElementById("reset-favourites").addEventListener("click",this.ops.reset_favourites_click.bind(this.ops)),this.add_dynamic_listener(".op_list .op-icon","mouseover",this.ops.op_icon_mouseover,this.ops),this.add_dynamic_listener(".op_list .op-icon","mouseleave",this.ops.op_icon_mouseleave,this.ops),this.add_dynamic_listener(".op_list","oplistcreate",this.ops.op_list_create,this.ops),this.add_dynamic_listener("li.operation","operationadd",this.recipe.op_add.bind(this.recipe)),this.add_dynamic_listener(".arg","keyup",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".arg","change",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".disable-icon","click",this.recipe.disable_click,this.recipe),this.add_dynamic_listener(".breakpoint","click",this.recipe.breakpoint_click,this.recipe),this.add_dynamic_listener("#rec_list li.operation","dblclick",this.recipe.operation_dblclick,this.recipe),this.add_dynamic_listener("#rec_list li.operation > div","dblclick",this.recipe.operation_child_dblclick,this.recipe),this.add_dynamic_listener("#rec_list .input-group .dropdown-menu a","click",this.recipe.dropdown_toggle_click,this.recipe),this.add_dynamic_listener("#rec_list","operationremove",this.recipe.op_remove.bind(this.recipe)),this.add_multi_event_listener("#input-text","keyup paste",this.input.input_change,this.input),document.getElementById("reset-layout").addEventListener("click",this.app.reset_layout.bind(this.app)),document.getElementById("clr-io").addEventListener("click",this.input.clear_io_click.bind(this.input)),document.getElementById("input-text").addEventListener("dragover",this.input.input_dragover.bind(this.input)),document.getElementById("input-text").addEventListener("dragleave",this.input.input_dragleave.bind(this.input)),document.getElementById("input-text").addEventListener("drop",this.input.input_drop.bind(this.input)),document.getElementById("input-text").addEventListener("scroll",this.highlighter.input_scroll.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mouseup",this.highlighter.input_mouseup.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mousemove",this.highlighter.input_mousemove.bind(this.highlighter)),this.add_multi_event_listener("#input-text","mousedown dblclick select",this.highlighter.input_mousedown,this.highlighter),document.getElementById("save-to-file").addEventListener("click",tLine truncated this.recipe.initialise_operation_drag_n_drop(),this.controls.auto_bake_change(),this.seasonal.load()},Manager.prototype.initialise_event_listeners=function(){window.addEventListener("resize",this.window.window_resize.bind(this.window)),window.addEventListener("blur",this.window.window_blur.bind(this.window)),window.addEventListener("focus",this.window.window_focus.bind(this.window)),window.addEventListener("statechange",this.app.state_change.bind(this.app)),window.addEventListener("popstate",this.app.pop_state.bind(this.app)),document.getElementById("bake").addEventListener("click",this.controls.bake_click.bind(this.controls)),document.getElementById("auto-bake").addEventListener("change",this.controls.auto_bake_change.bind(this.controls)),document.getElementById("step").addEventListener("click",this.controls.step_click.bind(this.controls)),document.getElementById("clr-recipe").addEventListener("click",this.controls.clear_recipe_click.bind(this.controls)),document.getElementById("clr-breaks").addEventListener("click",this.controls.clear_breaks_click.bind(this.controls)),document.getElementById("save").addEventListener("click",this.controls.save_click.bind(this.controls)),document.getElementById("save-button").addEventListener("click",this.controls.save_button_click.bind(this.controls)),document.getElementById("save-link-recipe-checkbox").addEventListener("change",this.controls.slr_check_change.bind(this.controls)),document.getElementById("save-link-input-checkbox").addEventListener("change",this.controls.sli_check_change.bind(this.controls)),document.getElementById("load").addEventListener("click",this.controls.load_click.bind(this.controls)),document.getElementById("load-delete-button").addEventListener("click",this.controls.load_delete_click.bind(this.controls)),document.getElementById("load-name").addEventListener("change",this.controls.load_name_change.bind(this.controls)),document.getElementById("load-button").addEventListener("click",this.controls.load_button_click.bind(this.controls)),this.add_multi_event_listener("#save-text","keyup paste",this.controls.save_text_change,this.controls),this.add_multi_event_listener("#search","keyup paste search",this.ops.search_operations,this.ops),this.add_dynamic_listener(".op_list li.operation","dblclick",this.ops.operation_dblclick,this.ops),document.getElementById("edit-favourites").addEventListener("click",this.ops.edit_favourites_click.bind(this.ops)),document.getElementById("save-favourites").addEventListener("click",this.ops.save_favourites_click.bind(this.ops)),document.getElementById("reset-favourites").addEventListener("click",this.ops.reset_favourites_click.bind(this.ops)),this.add_dynamic_listener(".op_list .op-icon","mouseover",this.ops.op_icon_mouseover,this.ops),this.add_dynamic_listener(".op_list .op-icon","mouseleave",this.ops.op_icon_mouseleave,this.ops),this.add_dynamic_listener(".op_list","oplistcreate",this.ops.op_list_create,this.ops),this.add_dynamic_listener("li.operation","operationadd",this.recipe.op_add.bind(this.recipe)),this.add_dynamic_listener(".arg","keyup",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".arg","change",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".disable-icon","click",this.recipe.disable_click,this.recipe),this.add_dynamic_listener(".breakpoint","click",this.recipe.breakpoint_click,this.recipe),this.add_dynamic_listener("#rec_list li.operation","dblclick",this.recipe.operation_dblclick,this.recipe),this.add_dynamic_listener("#rec_list li.operation > div","dblclick",this.recipe.operation_child_dblclick,this.recipe),this.add_dynamic_listener("#rec_list .input-group .dropdown-menu a","click",this.recipe.dropdown_toggle_click,this.recipe),this.add_dynamic_listener("#rec_list","operationremove",this.recipe.op_remove.bind(this.recipe)),this.add_multi_event_listener("#input-text","keyup paste",this.input.input_change,this.input),document.getElementById("reset-layout").addEventListener("click",this.app.reset_layout.bind(this.app)),document.getElementById("clr-io").addEventListener("click",this.input.clear_io_click.bind(this.input)),document.getElementById("input-text").addEventListener("dragover",this.input.input_dragover.bind(this.input)),document.getElementById("input-text").addEventListener("dragleave",this.input.input_dragleave.bind(this.input)),document.getElementById("input-text").addEventListener("drop",this.input.input_drop.bind(this.input)),document.getElementById("input-text").addEventListener("scroll",this.highlighter.input_scroll.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mouseup",this.highlighter.input_mouseup.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mousemove",this.highlighter.input_mousemove.bind(this.highlighter)),this.add_multi_event_listener("#input-text","mousedown dblclick select",this.highlighter.input_mousedown,this.highlighter),document.getElementById("save-to-file").addEventListener("click",tLine truncated
window.app.setup()};window.console=console||{log:function(){},error:function(){}},window.compile_time=moment.tz("Thu Dec 08 2016 00:33:37","ddd MMM D YYYY HH:mm:ss","UTC").valueOf(),window.compile_message="",document.addEventListener("DOMContentLoaded",main,!1); window.app.setup()};window.console=console||{log:function(){},error:function(){}},window.compile_time=moment.tz("Thu Dec 08 2016 00:33:37","ddd MMM D YYYY HH:mm:ss","UTC").valueOf(),window.compile_message="",document.addEventListener("DOMContentLoaded",main,!1);
>>>>>>> master >>>>>>> master
=======
h.fillStyle="green";for(var u=0;u<b.length;u++){var v=b[u]/t*m;h.fillRect(s,o-v,r,v),s+=r+q}if(h.fillStyle="black",h.textAlign="center",s=i+q,e>=b.length)for(var u=0;u<=b.length;u++)h.fillText(u,s,o+.3*l),s+=r+q;else for(var u=0;u<=e;u++){var w=Math.ceil(b.length/e*u);s=n/e*u+i,h.fillText(w,s,o+.3*l)}h.textAlign="right";var x;if(f>=t)for(var u=0;u<=t;u++)x=o-u/t*m+g/3,h.fillText(u,.8*i,x);else for(var u=0;u<=f;u++){var w=Math.ceil(t/f*u);x=o-w/t*m+g/3,h.fillText(w,.8*i,x)}if(c&&(h.textAlign="center",h.fillText(c,n/2+i,o+.8*l)),d){h.save();var y=.3*i,z=m/2+k;h.translate(y,z),h.rotate(-Math.PI/2),h.textAlign="center",h.fillText(d,0,0),h.restore()}},draw_scale_bar:function(a,b,c,d){var e=a.getContext("2d"),f=.01*a.width,g=.01*a.width,h=.1*a.height,i=.3*a.height,j=a.height-h-i,k=a.width-f-g,l=b/c;e.strokeRect(f,h,k,j);var m=e.createLinearGradient(f,0,k+f,0);m.addColorStop(0,"green"),m.addColorStop(.5,"gold"),m.addColorStop(1,"red"),e.fillStyle=m,e.fillRect(f,h,k*l,j);var n,o,p,q;e.fillStyle="black",e.textAlign="center",e.font="13px Arial";for(var r=0;r<d.length;r++)n=k/c*d[r].min+f,o=h+j+.1*i,p=n,q=h+j+.3*i,CanvasComponents.draw_line(e,n,o,p,q),n=k/c*d[r].max+f,p=n,CanvasComponents.draw_line(e,n,o,p,q),n=k/c*d[r].min+f,o=h+j+.3*i,p=k/c*d[r].max+f,q=o,CanvasComponents.draw_line(e,n,o,p,q),d[r].max>=.9*c?(e.textAlign="right",n=p):d[r].max<=.1*c?e.textAlign="left":n+=(p-n)/2,o=h+j+.8*i,e.fillText(d[r].label,n,o)}},Utils={chr:function(a){return String.fromCharCode(a)},ord:function(a){return a.charCodeAt(0)},pad_left:function(a,b,c){c=c||"0";var d=c.length-(b-a.length);return d=d<0?0:d,a.length<b?Utils.pad_left(c.slice(d,c.length)+a,b,c):a},pad_right:function(a,b,c){return c=c||" ",a.length<b?Utils.pad_right(a+c.slice(0,b-a.length),b,c):a},pad:function(a,b,c){return Utils.pad_left(a,b,c)},truncate:function(a,b,c){return c=c||"...",a.length>b&&(a=a.slice(0,b-c.length)+c),a},hex:function(a,b){return a="string"==typeof a?Utils.ord(a):a,b=b||2,Utils.pad(a.toString(16),b)},bin:function(a,b){return a="string"==typeof a?Utils.ord(a):a,b=b||8,Utils.pad(a.toString(2),b)},printable:function(a,b){window&&window.app&&!window.app.options.treat_as_utf8&&(a=Utils.byte_array_to_chars(Utils.str_to_byte_array(a)));var c=/[\0-\x08\x0B-\x0C\x0E-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2FLine truncated
},run_evpkdf:function(a,b){var c=b[0]/32,d=b[1],e=CryptoJS.enc.Hex.parse(b[2]||""),f=b[3],g=b[4],h=Utils.format[f].parse(a),i=CryptoJS.EvpKDF(h,e,{keySize:c,iterations:d});return i.toString(Utils.format[g])},run_rc4:function(a,b){var c=Utils.format[b[1]].parse(a),d=Utils.format[b[0].option].parse(b[0].string),e=CryptoJS.RC4.encrypt(c,d);return e.ciphertext.toString(Utils.format[b[2]])},RC4DROP_BYTES:768,run_rc4drop:function(a,b){var c=Utils.format[b[1]].parse(a),d=Utils.format[b[0].option].parse(b[0].string),e=b[3],f=CryptoJS.RC4Drop.encrypt(c,d,{drop:e});return f.ciphertext.toString(Utils.format[b[2]])},run_vigenere_enc:function(a,b){var c,d,e,f="abcdefghijklmnopqrstuvwxyz",g=b[0].toLowerCase(),h="",i=0;if(!g)return"No key entered";if(!/^[a-zA-Z]+$/.test(g))return"The key must consist only of letters";for(var j=0;j<a.length;j++)f.indexOf(a[j])>=0?(e=g[(j-i)%g.length],c=f.indexOf(e),d=f.indexOf(a[j]),h+=f[(c+d)%26]):f.indexOf(a[j].toLowerCase())>=0?(e=g[(j-i)%g.length].toLowerCase(),c=f.indexOf(e),d=f.indexOf(a[j].toLowerCase()),h+=f[(c+d)%26].toUpperCase()):(h+=a[j],i++);return h},run_vigenere_dec:function(a,b){var c,d,e,f="abcdefghijklmnopqrstuvwxyz",g=b[0].toLowerCase(),h="",i=0;if(!g)return"No key entered";if(!/^[a-zA-Z]+$/.test(g))return"The key must consist only of letters";for(var j=0;j<a.length;j++)f.indexOf(a[j])>=0?(e=g[(j-i)%g.length],c=f.indexOf(e),d=f.indexOf(a[j]),h+=f[(d-c+f.length)%26]):f.indexOf(a[j].toLowerCase())>=0?(e=g[(j-i)%g.length].toLowerCase(),c=f.indexOf(e),d=f.indexOf(a[j].toLowerCase()),h+=f[(d+f.length-c)%26].toUpperCase()):(h+=a[j],i++);return h}};CryptoJS.kdf.OpenSSL.execute=function(a,b,c,d){void 0!==d&&null!==d||(d=CryptoJS.lib.WordArray.random(8));var e=CryptoJS.algo.EvpKDF.create({keySize:b+c}).compute(a,d),f=CryptoJS.lib.WordArray.create(e.words.slice(b),4*c);return e.sigBytes=4*b,CryptoJS.lib.CipherParams.create({key:e,iv:f,salt:d})};var Code={LANGUAGES:["default-code","default-markup","bash","bsh","c","cc","coffee","cpp","cs","csh","cv","cxx","cyc","htm","html","in.tag","java","javascript","js","json","m","mxml","perl","pl","pm","py","python","rb","rc","rs","ruby","rust","sh","uq.val","xhtml","xml","xsl"],LINE_NUMS:!1,run_syntax_highlight:function(a,b){var c=b[0],d=b[1];return"<code class='prettyprint'>"+prettyPrintOne(Utils.escape_html(a),c,d)+"</code>"},BEAUTIFY_INDENT:"\\t",run_xml_beautify:function(a,b){var c=b[0];return vkbeautify.xml(a,c)},run_json_beautify:function(a,b){var c=b[0];return a?vkbeautify.json(a,c):""},run_css_beautify:function(a,b){var c=b[0];return vkbeautify.css(a,c)},run_sql_beautify:function(a,b){var c=b[0];return vkbeautify.sql(a,c)},PRESERVE_COMMENTS:!1,run_xml_minify:function(a,b){var c=b[0];return vkbeautify.xmlmin(a,c)},run_json_minify:function(a,b){return a?vkbeautify.jsonmin(a):""},run_css_minify:function(a,b){var c=b[0];return vkbeautify.cssmin(a,c)},run_sql_minify:function(a,b){return vkbeautify.sqlmin(a)},run_generic_beautify:function(a,b){function c(a,b,c){return g[c]=b[0],a.substring(0,b.index)+"###preserved_token"+c+"###"+a.substring(b.index+b[0].length)}for(var d,e=a,f=0,g=[],h=/'([^'\\]|\\.)*'/g;d=h.exec(e);)e=c(e,d,f++),h.lastIndex=d.index;for(var i=/"([^"\\]|\\.)*"/g;d=i.exec(e);)e=c(e,d,f++),i.lastIndex=d.index;for(var j=/\/\/[^\n\r]*/g;d=j.exec(e);)e=c(e,d,f++),j.lastIndex=d.index;for(var k=/\/\*[\s\S]*?\*\//gm;d=k.exec(e);)e=c(e,d,f++),k.lastIndex=d.index;for(var l=/(^|\n)#[^\n\r#]+/g;d=l.exec(e);)e=c(e,d,f++),l.lastIndex=d.index;for(var m=/\/.*?[^\\]\/[gim]{0,3}/gi;d=m.exec(e);)e=c(e,d,f++),m.lastIndex=d.index;e=e.replace(/;/g,";\n"),e=e.replace(/{/g,"{\n"),e=e.replace(/}/g,"\n}\n"),e=e.replace(/\r/g,""),e=e.replace(/^\s+/g,""),e=e.replace(/\n\s+/g,"\n"),e=e.replace(/\s*$/g,""),e=e.replace(/\n{/g,"{");for(var n=0,o=0;n<e.length;){switch(e[n]){case"{":o++;break;case"\n":if(n+1>=e.length)break;"}"===e[n+1]&&o--;var p=o>=0?Array(4*o+1).join(" "):"";e=e.substring(0,n+1)+p+e.substring(n+1),o>0&&(n+=4*o)}n++}e=e.replace(/\s*([!<>=+-\/*]?)=\s*/g," $1= "),e=e.replace(/\s*<([=]?)\s*/g," <$1 "),e=e.replace(/\s*>([=]?)\s*/g," >$1 "),e=e.replace(/([^+])\+([^+=])/g,"$1 + $2"),e=e.replace(/([^-])-([^-=])/g,"$1 - $2"),e=e.replace(/([^*])\*([^*=])/g,"$1 * $2"),e=e.replace(/([^\/])\/([^\/=])/g,"$1 / $2"),e=e.replace(/\s*,\s*/g,", "),e=e.replace(/\s*{/g," {"),e=e.replace(/}\n/g,"}\n\n"),e=e.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)\s*\n([^{])/gim,"$1 ($2)\n $3"),e=e.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)([^{])/gim,"$1 ($2) $3"),e=e.replace(/else\s*\n([^{])/gim,"else\n $1"),e=e.replace(/else\s+([^{])/gim,"else $1"),e=e.replace(/\s+;/g,";"),e=e.replace(/\{\s+\}/g,"{}"),e=e.replace(/\[\s+\]/g,"[]"),e=e.replace(/}\s*(else|catch|except|finally|elif|elseif|else if)/gi,"} $1");for(var q=/###preserved_token(\d+)###/g;d=q.exec(e);){var r=parseInt(d[1],10);e=e.substring(0,d.index)+g[r]+e.substring(d.index+d[0].length),q.lastIndex=d.index}return e}},Compress={COMPRESSION_TYPE:["Dynamic Huffman Coding","Fixed HuffmanLine truncated
c+=Extract.run_ip(a,[!0,!0,!1]),c+="\nEmail addresses\n",c+=Extract.run_email(a,[]),c+="\nMAC addresses\n",c+=Extract.run_mac(a,[]),c+="\nURLs\n",c+=Extract.run_urls(a,[]),c+="\nDomain names\n",c+=Extract.run_domains(a,[]),c+="\nFile paths\n",c+=Extract.run_file_paths(a,[!0,!0]),c+="\nDates\n",c+=Extract.run_dates(a,[])}},FileType={run_detect:function(a,b){var c=FileType._magic_type(a);if(c){var d="File extension: "+c.ext+"\nMIME type: "+c.mime;return c.desc&&c.desc.length&&(d+="\nDescription: "+c.desc),d}return"Unknown file type. Have you tried checking the entropy of this data to determine whether it might be encrypted or compressed?"},IGNORE_COMMON_BYTE_SEQUENCES:!0,run_scan_for_embedded_files:function(a,b){for(var c,d="Scanning data for 'magic bytes' which may indicate embedded files. The following results may be false positives and should not be treat as reliable. Any suffiently long file is likely to contain these magic bytes coincidentally.\n",e=b[0],f=["ico","ttf",""],g=0,h=0,i=0;i<a.length;i++)if(c=FileType._magic_type(a.slice(i))){if(e&&f.indexOf(c.ext)>-1){h++;continue}g++,d+="\nOffset "+i+" (0x"+Utils.hex(i)+"):\n File extension: "+c.ext+"\n MIME type: "+c.mime+"\n",c.desc&&c.desc.length&&(d+=" Description: "+c.desc+"\n")}return 0===g&&(d+="\nNo embedded files were found."),h>0&&(d+="\n\n"+h,d+=1===h?" file type was detected that has a common byte sequence. This is likely to be a false positive.":" file types were detected that have common byte sequences. These are likely to be false positives.",d+=" Run this operation with the 'Ignore common byte sequences' option unchecked to see details."),d},_magic_type:function(a){return a&&a.length>1?255===a[0]&&216===a[1]&&255===a[2]?{ext:"jpg",mime:"image/jpeg"}:137===a[0]&&80===a[1]&&78===a[2]&&71===a[3]?{ext:"png",mime:"image/png"}:71===a[0]&&73===a[1]&&70===a[2]?{ext:"gif",mime:"image/gif"}:87===a[8]&&69===a[9]&&66===a[10]&&80===a[11]?{ext:"webp",mime:"image/webp"}:(73===a[0]&&73===a[1]&&42===a[2]&&0===a[3]||77===a[0]&&77===a[1]&&0===a[2]&&42===a[3])&&67===a[8]&&82===a[9]?{ext:"cr2",mime:"image/x-canon-cr2"}:73===a[0]&&73===a[1]&&42===a[2]&&0===a[3]||77===a[0]&&77===a[1]&&0===a[2]&&42===a[3]?{ext:"tif",mime:"image/tiff"}:66===a[0]&&77===a[1]?{ext:"bmp",mime:"image/bmp"}:73===a[0]&&73===a[1]&&188===a[2]?{ext:"jxr",mime:"image/vnd.ms-photo"}:56===a[0]&&66===a[1]&&80===a[2]&&83===a[3]?{ext:"psd",mime:"image/vnd.adobe.photoshop"}:80===a[0]&&75===a[1]&&3===a[2]&&4===a[3]&&109===a[30]&&105===a[31]&&109===a[32]&&101===a[33]&&116===a[34]&&121===a[35]&&112===a[36]&&101===a[37]&&97===a[38]&&112===a[39]&&112===a[40]&&108===a[41]&&105===a[42]&&99===a[43]&&97===a[44]&&116===a[45]&&105===a[46]&&111===a[47]&&110===a[48]&&47===a[49]&&101===a[50]&&112===a[51]&&117===a[52]&&98===a[53]&&43===a[54]&&122===a[55]&&105===a[56]&&112===a[57]?{ext:"epub",mime:"application/epub+zip"}:80!==a[0]||75!==a[1]||3!==a[2]&&5!==a[2]&&7!==a[2]||4!==a[3]&&6!==a[3]&&8!==a[3]?117===a[257]&&115===a[258]&&116===a[259]&&97===a[260]&&114===a[261]?{ext:"tar",mime:"application/x-tar"}:82!==a[0]||97!==a[1]||114!==a[2]||33!==a[3]||26!==a[4]||7!==a[5]||0!==a[6]&&1!==a[6]?31===a[0]&&139===a[1]&&8===a[2]?{ext:"gz",mime:"application/gzip"}:66===a[0]&&90===a[1]&&104===a[2]?{ext:"bz2",mime:"application/x-bzip2"}:55===a[0]&&122===a[1]&&188===a[2]&&175===a[3]&&39===a[4]&&28===a[5]?{ext:"7z",mime:"application/x-7z-compressed"}:120===a[0]&&1===a[1]?{ext:"dmg",mime:"application/x-apple-diskimage"}:0===a[0]&&0===a[1]&&0===a[2]&&(24===a[3]||32===a[3])&&102===a[4]&&116===a[5]&&121===a[6]&&112===a[7]||51===a[0]&&103===a[1]&&112===a[2]&&53===a[3]||0===a[0]&&0===a[1]&&0===a[2]&&28===a[3]&&102===a[4]&&116===a[5]&&121===a[6]&&112===a[7]&&109===a[8]&&112===a[9]&&52===a[10]&&50===a[11]&&109===a[16]&&112===a[17]&&52===a[18]&&49===a[19]&&109===a[20]&&112===a[21]&&52===a[22]&&50===a[23]&&105===a[24]&&115===a[25]&&111===a[26]&&109===a[27]?{ext:"mp4",mime:"video/mp4"}:0===a[0]&&0===a[1]&&0===a[2]&&28===a[3]&&102===a[4]&&116===a[5]&&121===a[6]&&112===a[7]&&77===a[8]&&52===a[9]&&86===a[10]?{ext:"m4v",mime:"video/x-m4v"}:77===a[0]&&84===a[1]&&104===a[2]&&100===a[3]?{ext:"mid",mime:"audio/midi"}:109===a[31]&&97===a[32]&&116===a[33]&&114===a[34]&&111===a[35]&&115===a[36]&&107===a[37]&&97===a[38]?{ext:"mkv",mime:"video/x-matroska"}:26===a[0]&&69===a[1]&&223===a[2]&&163===a[3]?{ext:"webm",mime:"video/webm"}:0===a[0]&&0===a[1]&&0===a[2]&&20===a[3]&&102===a[4]&&116===a[5]&&121===a[6]&&112===a[7]?{ext:"mov",mime:"video/quicktime"}:82===a[0]&&73===a[1]&&70===a[2]&&70===a[3]&&65===a[8]&&86===a[9]&&73===a[10]?{ext:"avi",mime:"video/x-msvideo"}:48===a[0]&&38===a[1]&&178===a[2]&&117===a[3]&&142===a[4]&&102===a[5]&&207===a[6]&&17===a[7]&&166===a[8]&&217===a[9]?{ext:"wmv",mime:"video/x-ms-wmv"}:0===a[0]&&0===a[1]&&1===a[2]&&"b"===a[3].toString(16)[0]?{ext:"mpg",mime:"video/mpeg"}:73===a[0]&&68===a[1]&&51===a[2]||255===a[0]&&251===a[1]?{ext:"mp3",mime:"audio/mpeg"}:102===a[4]&&116===a[5]&&121===a[6]&&112===a[7]&&77===a[8]Line truncated
j.hasOwnProperty(o)?j[o].push(m):j[o]=[m]}for(n in i)if(i[n]=i[n].sort(),l+=IP._ipv4_to_str(n)+"/"+d+"\n",!e){for(p=0;p<i[n].length;p++)l+=" "+IP._ipv4_to_str(i[n][p])+"\n";l+="\n"}for(o in j)if(l+=o+"/"+d+"\n",!e){for(p=0;p<j[o].length;p++)l+=" "+IP._ipv6_to_str(j[o][p],!0)+"\n";l+="\n"}return l},_LARGE_RANGE_ERROR:'The specified range contains more than 65,536 addresses. Running this query could crash your browser. If you want to run it, select the "Allow large queries" option. You are advised to turn off "Auto Bake" whilst editing large ranges.',_ipv4_cidr_range:function(a,b,c,d){var e="",f=IP._str_to_ipv4(a[1]),g=parseInt(a[2],10);if(g<0||g>31)return"IPv4 CIDR must be less than 32";var h=~(4294967295>>>g),i=f&h,j=i|~h;return b&&(e+="Network: "+IP._ipv4_to_str(f)+"\n",e+="CIDR: "+g+"\n",e+="Mask: "+IP._ipv4_to_str(h)+"\n",e+="Range: "+IP._ipv4_to_str(i)+" - "+IP._ipv4_to_str(j)+"\n",e+="Total addresses in range: "+((j-i>>>0)+1)+"\n\n"),c&&(e+=g>=16||d?IP._generate_ipv4_range(i,j).join("\n"):IP._LARGE_RANGE_ERROR),e},_ipv6_cidr_range:function(a,b){var c="",d=IP._str_to_ipv6(a[1]),e=parseInt(a[a.length-1],10);if(e<0||e>127)return"IPv6 CIDR must be less than 128";for(var f=IP._gen_ipv6_mask(e),g=new Array(8),h=new Array(8),i="",j=new Array(128),k=0;k<8;k++)if(g[k]=d[k]&f[k],h[k]=g[k]|65535&~f[k],i=(h[k]-g[k]).toString(2),"0"!==i)for(var l=0;l<i.length;l++)j[16*k+16-(i.length-l)]=i[l];return b&&(c+="Network: "+IP._ipv6_to_str(d)+"\n",c+="Shorthand: "+IP._ipv6_to_str(d,!0)+"\n",c+="CIDR: "+e+"\n",c+="Mask: "+IP._ipv6_to_str(f)+"\n",c+="Range: "+IP._ipv6_to_str(g)+" - "+IP._ipv6_to_str(h)+"\n",c+="Total addresses in range: "+(parseInt(j.join(""),2)+1)+"\n\n"),c},_gen_ipv6_mask:function(a){for(var b,c=new Array(8),d=0;d<8;d++)a>16*(d+1)?c[d]=65535:(b=a-16*d,b<0&&(b=0),c[d]=~(65535>>>b|4294901760));return c},_ipv4_hyphenated_range:function(a,b,c,d){for(var e="",f=IP._str_to_ipv4(a[1]),g=IP._str_to_ipv4(a[2]),h=f^g,i=32,j=0;0!==h;)h>>=1,i--,j=j<<1|1;j=~j>>>0;var k=f&j,l=k&j,m=l|~j;return b&&(e+="Minimum subnet required to hold this range:\n",e+="\tNetwork: "+IP._ipv4_to_str(k)+"\n",e+="\tCIDR: "+i+"\n",e+="\tMask: "+IP._ipv4_to_str(j)+"\n",e+="\tSubnet range: "+IP._ipv4_to_str(l)+" - "+IP._ipv4_to_str(m)+"\n",e+="\tTotal addresses in subnet: "+((m-l>>>0)+1)+"\n\n",e+="Range: "+IP._ipv4_to_str(f)+" - "+IP._ipv4_to_str(g)+"\n",e+="Total addresses in range: "+((g-f>>>0)+1)+"\n\n"),c&&(e+=g-f>>>0<=65536||d?IP._generate_ipv4_range(f,g).join("\n"):IP._LARGE_RANGE_ERROR),e},_ipv6_hyphenated_range:function(a,b){for(var c="",d=IP._str_to_ipv6(a[1]),e=IP._str_to_ipv6(a[14]),f="",g=new Array(128),h=0;h<128;h++)g[h]="0";for(h=0;h<8;h++)if(f=(e[h]-d[h]).toString(2),"0"!==f)for(var i=0;i<f.length;i++)g[16*h+16-(f.length-i)]=f[i];return b&&(c+="Range: "+IP._ipv6_to_str(d)+" - "+IP._ipv6_to_str(e)+"\n",c+="Shorthand range: "+IP._ipv6_to_str(d,!0)+" - "+IP._ipv6_to_str(e,!0)+"\n",c+="Total addresses in range: "+(parseInt(g.join(""),2)+1)+"\n\n"),c},_str_to_ipv4:function(a){function b(a){if(4!==a.length)throw"More than 4 blocks.";for(var b=[],c=0;c<4;c++)if(b[c]=parseInt(a[c],10),b[c]<0||b[c]>255)throw"Block out of range.";return b}var c=a.split("."),d=b(c),e=0;return e+=d[0]<<24,e+=d[1]<<16,e+=d[2]<<8,e+=d[3]},_ipv4_to_str:function(a){var b=a>>24&255,c=a>>16&255,d=a>>8&255,e=255&a;return b+"."+c+"."+d+"."+e},_str_to_ipv6:function(a){function b(a){if(a.length<3||a.length>8)throw"Badly formatted IPv6 address.";for(var b=[],c=0;c<a.length;c++)if(b[c]=parseInt(a[c],16),b[c]<0||b[c]>65535)throw"Block out of range.";return b}for(var c=a.split(":"),d=b(c),e=0,f=new Array(8),g=0;g<8;g++)isNaN(d[e])?(f[g]=0,g===8-d.slice(e).length&&e++):(f[g]=d[e],e++);return f},_ipv6_to_str:function(a,b){var c="",d=0;if(b){var e=-1,f=-1,g=0,h=-1;for(d=0;d<8;d++)0===a[d]&&h===d-1?h=d:0===a[d]&&(g=d,h=d),h>=0&&h-g>f-e&&(e=g,f=h);for(d=0;d<8;d++)d!==e?c+=Utils.hex(a[d],1)+":":(c+=":",d=f,7===f&&(c+=":"));":"===c[0]&&(c=":"+c)}else for(d=0;d<8;d++)c+=Utils.hex(a[d],4)+":";return c.slice(0,c.length-1)},_generate_ipv4_range:function(a,b){var c=[];if(b>=a)for(;a<=b;a++)c.push(IP._ipv4_to_str(a));else c[0]="Second IP address smaller than first.";return c}},JS={PARSE_LOC:!1,PARSE_RANGE:!1,PARSE_TOKENS:!1,PARSE_COMMENT:!1,PARSE_TOLERANT:!1,run_parse:function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h={},i={loc:c,range:d,tokens:e,comment:f,tolerant:g};return h=esprima.parse(a,i),JSON.stringify(h,null,2)},BEAUTIFY_INDENT:"\\t",BEAUTIFY_QUOTES:["Auto","Single","Double"],BEAUTIFY_SEMICOLONS:!0,BEAUTIFY_COMMENT:!0,run_beautify:function(a,b){var c,d=b[0]||JS.BEAUTIFY_INDENT,e=b[1].toLowerCase(),f=b[2],g=b[3],h="";try{c=esprima.parse(a,{range:!0,tokens:!0,comment:!0});var i={format:{indent:{style:d},quotes:e,semicolons:f},comment:g};i.comment&&(c=escodegen.attachComments(c,c.comments,c.tokens)),h=escodegen.generate(c,i)}catch(a){throw"Unable to parse JavaScript.<br>"+a.message}return h},run_minify:function(a,b){var c="",d=esprima.parse(a),e=esmangle.optimize(d,nullLine truncated
"06032b060105050701":"privateExtension","06032b06010505070101":"authorityInfoAccess","06032b06010505070c02":"CMC Data","06032b060105050702":"policyQualifierIds","06032b06010505070202":"unotice","06032b060105050703":"keyPurpose","06032b06010505070301":"serverAuth","06032b06010505070302":"clientAuth","06032b06010505070303":"codeSigning","06032b06010505070304":"emailProtection","06032b06010505070305":"ipsecEndSystem","06032b06010505070306":"ipsecTunnel","06032b06010505070307":"ipsecUser","06032b06010505070308":"timeStamping","06032b060105050704":"cmpInformationTypes","06032b06010505070401":"caProtEncCert","06032b06010505070402":"signKeyPairTypes","06032b06010505070403":"encKeyPairTypes","06032b06010505070404":"preferredSymmAlg","06032b06010505070405":"caKeyUpdateInfo","06032b06010505070406":"currentCRL","06032b06010505073001":"ocsp","06032b06010505073002":"caIssuers","06032b06010505080101":"HMAC-MD5","06032b06010505080102":"HMAC-SHA","060360864801650201010a":"mosaicKeyManagementAlgorithm","060360864801650201010b":"sdnsKMandSigAlgorithm","060360864801650201010c":"mosaicKMandSigAlgorithm","060360864801650201010d":"SuiteASignatureAlgorithm","060360864801650201010e":"SuiteAConfidentialityAlgorithm","060360864801650201010f":"SuiteAIntegrityAlgorithm","06036086480186f84201":"cert-extension","06036086480186f842010a":"EntityLogo","06036086480186f842010b":"UserPicture","06036086480186f8420109":"HomePage-url","06036086480186f84202":"data-type","06036086480186f8420201":"GIF","06036086480186f8420202":"JPEG","06036086480186f8420203":"URL","06036086480186f8420204":"HTML","06036086480186f8420205":"netscape-cert-sequence","06036086480186f8420206":"netscape-cert-url","06036086480186f84203":"directory","06036086480186f8420401":"serverGatedCrypto","06036086480186f845010603":"Unknown Verisign extension","06036086480186f845010606":"Unknown Verisign extension","06036086480186f84501070101":"Verisign certificatePolicy","06036086480186f8450107010101":"Unknown Verisign policy qualifier","06036086480186f8450107010102":"Unknown Verisign policy qualifier","0603678105":"TCPA","060367810501":"tcpa_specVersion","060367810502":"tcpa_attribute","06036781050201":"tcpa_at_tpmManufacturer","0603678105020a":"tcpa_at_securityQualities","0603678105020b":"tcpa_at_tpmProtectionProfile","0603678105020c":"tcpa_at_tpmSecurityTarget","0603678105020d":"tcpa_at_foundationProtectionProfile","0603678105020e":"tcpa_at_foundationSecurityTarget","0603678105020f":"tcpa_at_tpmIdLabel","06036781050202":"tcpa_at_tpmModel","06036781050203":"tcpa_at_tpmVersion","06036781050204":"tcpa_at_platformManufacturer","06036781050205":"tcpa_at_platformModel","06036781050206":"tcpa_at_platformVersion","06036781050207":"tcpa_at_componentManufacturer","06036781050208":"tcpa_at_componentModel","06036781050209":"tcpa_at_componentVersion","060367810503":"tcpa_protocol","06036781050301":"tcpa_prtt_tpmIdProtocol","0603672a00":"contentType","0603672a0000":"PANData","0603672a0001":"PANToken","0603672a0002":"PANOnly","0603672a01":"msgExt","0603672a0a":"national","0603672a0a8140":"Japan","0603672a02":"field","0603672a0200":"fullName","0603672a0201":"givenName","0603672a020a":"amount","0603672a0202":"familyName","0603672a0203":"birthFamilyName","0603672a0204":"placeName","0603672a0205":"identificationNumber","0603672a0206":"month","0603672a0207":"date","0603672a02070b":"accountNumber","0603672a02070c":"passPhrase","0603672a0208":"address","0603672a0209":"telephone","0603672a03":"attribute","0603672a0300":"cert","0603672a030000":"rootKeyThumb","0603672a030001":"additionalPolicy","0603672a04":"algorithm","0603672a05":"policy","0603672a0500":"root","0603672a06":"module","0603672a07":"certExt","0603672a0700":"hashedRootKey","0603672a0701":"certificateType","0603672a0702":"merchantData","0603672a0703":"cardCertRequired","0603672a0704":"tunneling","0603672a0705":"setExtensions","0603672a0706":"setQualifier","0603672a08":"brand","0603672a0801":"IATA-ATA","0603672a081e":"Diners","0603672a0822":"AmericanExpress","0603672a0804":"VISA","0603672a0805":"MasterCard","0603672a08ae7b":"Novus","0603672a09":"vendor","0603672a0900":"GlobeSet","0603672a0901":"IBM","0603672a090a":"Griffin","0603672a090b":"Certicom","0603672a090c":"OSS","0603672a090d":"TenthMountain","0603672a090e":"Antares","0603672a090f":"ECC","0603672a0910":"Maithean","0603672a0911":"Netscape","0603672a0912":"Verisign","0603672a0913":"BlueMoney","0603672a0902":"CyberCash","0603672a0914":"Lacerte","0603672a0915":"Fujitsu","0603672a0916":"eLab","0603672a0917":"Entrust","0603672a0918":"VIAnet","0603672a0919":"III","0603672a091a":"OpenMarket","0603672a091b":"Lexem","0603672a091c":"Intertrader","0603672a091d":"Persimmon","0603672a0903":"Terisa","0603672a091e":"NABLE","0603672a091f":"espace-net","0603672a0920":"Hitachi","0603672a0921":"Microsoft","0603672a0922":"NEC","0603672a0923":"Mitsubishi","0603672a0924":"NCR","0603672a0925":"e-COMM","0603672a0926":"Gemplus","0603672a0904":"RSADSI","0603672a0905":"VeriFone","0603672a0906":"TrinTech","0603672aLine truncated
},{name:"Date / Time",ops:["Parse DateTime","Translate DateTime Format","From UNIX Timestamp","To UNIX Timestamp","Extract dates"]},{name:"Extractors",ops:["Strings","Extract IP addresses","Extract email addresses","Extract MAC addresses","Extract URLs","Extract domains","Extract file paths","Extract dates","Regular expression"]},{name:"Compression",ops:["Raw Deflate","Raw Inflate","Zlib Deflate","Zlib Inflate","Gzip","Gunzip","Zip","Unzip","Bzip2 Decompress"]},{name:"Hashing",ops:["Analyse hash","Generate all hashes","MD5","SHA1","SHA224","SHA256","SHA384","SHA512","SHA3","RIPEMD-160","HMAC","Fletcher-16 Checksum","Adler-32 Checksum","CRC-32 Checksum","TCP/IP Checksum"]},{name:"Code tidy",ops:["Syntax highlighter","Generic Code Beautify","JavaScript Parser","JavaScript Beautify","JavaScript Minify","JSON Beautify","JSON Minify","XML Beautify","XML Minify","SQL Beautify","SQL Minify","CSS Beautify","CSS Minify","Strip HTML tags","Diff"]},{name:"Other",ops:["Entropy","Frequency distribution","Detect File Type","Scan for Embedded Files","Generate UUID","Numberwang"]},{name:"Flow control",ops:["Fork","Merge","Jump","Conditional Jump","Return"]}],OperationConfig={Fork:{description:"Split the input data up based on the specified delimiter and run all subsequent operations on each branch separately.<br><br>For example, to decode multiple Base64 strings, enter them all on separate lines then add the 'Fork' and 'From Base64' operations to the recipe. Each string will be decoded separately.",run:FlowControl.run_fork,input_type:"string",output_type:"string",flow_control:!0,args:[{name:"Split delimiter",type:"binary_short_string",value:FlowControl.FORK_DELIM},{name:"Merge delimiter",type:"binary_short_string",value:FlowControl.MERGE_DELIM}]},Merge:{description:"Consolidate all branches back into a single trunk. The opposite of Fork.",run:FlowControl.run_merge,input_type:"string",output_type:"string",flow_control:!0,args:[]},Jump:{description:"Jump forwards or backwards over the specified number of operations.",run:FlowControl.run_jump,input_type:"string",output_type:"string",flow_control:!0,args:[{name:"Number of operations to jump over",type:"number",value:FlowControl.JUMP_NUM},{name:"Maximum jumps (if jumping backwards)",type:"number",value:FlowControl.MAX_JUMPS}]},"Conditional Jump":{description:"Conditionally jump forwards or backwards over the specified number of operations based on whether the data matches the specified regular expression.",run:FlowControl.run_cond_jump,input_type:"string",output_type:"string",flow_control:!0,args:[{name:"Match (regex)",type:"string",value:""},{name:"Number of operations to jump over if match found",type:"number",value:FlowControl.JUMP_NUM},{name:"Maximum jumps (if jumping backwards)",type:"number",value:FlowControl.MAX_JUMPS}]},Return:{description:"End execution of operations at this point in the recipe.",run:FlowControl.run_return,input_type:"string",output_type:"string",flow_control:!0,args:[]},"From Base64":{description:"Base64 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers.<br><br>This operation decodes data from an ASCII Base64 string back into its raw format.<br><br>e.g. <code>aGVsbG8=</code> becomes <code>hello</code>",run:Base64.run_from,highlight:Base64.highlight_from,highlight_reverse:Base64.highlight_to,input_type:"string",output_type:"byte_array",args:[{name:"Alphabet",type:"editable_option",value:Base64.ALPHABET_OPTIONS},{name:"Remove non&#8209;alphabet chars",type:"boolean",value:Base64.REMOVE_NON_ALPH_CHARS}]},"To Base64":{description:"Base64 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers.<br><br>This operation encodes data in an ASCII Base64 string.<br><br>e.g. <code>hello</code> becomes <code>aGVsbG8=</code>",run:Base64.run_to,highlight:Base64.highlight_to,highlight_reverse:Base64.highlight_from,input_type:"byte_array",output_type:"string",args:[{name:"Alphabet",type:"editable_option",value:Base64.ALPHABET_OPTIONS}]},"From Base32":{description:"Base32 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. It uses a smaller set of characters than Base64, usually the uppercase alphabet and the numbers 2 to 7.",run:Base64.run_from_32,input_type:"string",output_type:"byte_array",args:[{name:"Alphabet",type:"binary_string",value:Base64.BASE32_ALPHABET},{name:"Remove non&#8209;alphabet chars",type:"boolean",value:Base64.REMOVE_NON_ALPH_CHARS}]},"To Base32":{description:"Base32 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. It uses a smaller set of characters than Base64, usually the uppercase alphabet and the numbers 2 to 7.",run:Base64.run_to_32,input_type:"byte_array",outpuLine truncated
}]},ROT47:{description:"A slightly more complex variation of a caesar cipher, which includes ASCII characters from 33 '!' to 126 '~'. Default rotation: 47.",run:Rotate.run_rot47,highlight:!0,highlight_reverse:!0,input_type:"byte_array",output_type:"byte_array",args:[{name:"Amount",type:"number",value:Rotate.ROT47_AMOUNT}]},"Strip HTTP headers":{description:"Removes HTTP headers from a request or response by looking for the first instance of a double newline.",run:HTTP.run_strip_headers,input_type:"string",output_type:"string",args:[]},"Parse User Agent":{description:"Attempts to identify and categorise information contained in a user-agent string.",run:HTTP.run_parse_user_agent,input_type:"string",output_type:"string",args:[]},"Format MAC addresses":{description:"Displays given MAC addresses in multiple different formats.<br><br>Expects addresses in a list separated by newlines, spaces or commas.<br><br>WARNING: There are no validity checks.",run:MAC.run_format,input_type:"string",output_type:"string",args:[{name:"Output case",type:"option",value:MAC.OUTPUT_CASE},{name:"No delimiter",type:"boolean",value:MAC.NO_DELIM},{name:"Dash delimiter",type:"boolean",value:MAC.DASH_DELIM},{name:"Colon delimiter",type:"boolean",value:MAC.COLON_DELIM},{name:"Cisco style",type:"boolean",value:MAC.CISCO_STYLE}]},"Offset checker":{description:"Compares multiple inputs (separated by the specified delimiter) and highlights matching characters which appear at the same position in all samples.",run:StrUtils.run_offset_checker,input_type:"string",output_type:"html",args:[{name:"Sample delimiter",type:"binary_string",value:StrUtils.OFF_CHK_SAMPLE_DELIMITER}]},"Remove whitespace":{description:"Optionally removes all spaces, carriage returns, line feeds, tabs and form feeds from the input data.<br><br>This operation also supports the removal of full stops which are sometimes used to represent non-printable bytes in ASCII output.",run:Tidy.run_remove_whitespace,input_type:"string",output_type:"string",args:[{name:"Spaces",type:"boolean",value:Tidy.REMOVE_SPACES},{name:"Carriage returns (\\r)",type:"boolean",value:Tidy.REMOVE_CARIAGE_RETURNS},{name:"Line feeds (\\n)",type:"boolean",value:Tidy.REMOVE_LINE_FEEDS},{name:"Tabs",type:"boolean",value:Tidy.REMOVE_TABS},{name:"Form feeds (\\f)",type:"boolean",value:Tidy.REMOVE_FORM_FEEDS},{name:"Full stops",type:"boolean",value:Tidy.REMOVE_FULL_STOPS}]},"Remove null bytes":{description:"Removes all null bytes (<code>0x00</code>) from the input.",run:Tidy.run_remove_nulls,input_type:"byte_array",output_type:"byte_array",args:[]},"Drop bytes":{description:"Cuts the specified number of bytes out of the data.",run:Tidy.run_drop_bytes,input_type:"byte_array",output_type:"byte_array",args:[{name:"Start",type:"number",value:Tidy.DROP_START},{name:"Length",type:"number",value:Tidy.DROP_LENGTH},{name:"Apply to each line",type:"boolean",value:Tidy.APPLY_TO_EACH_LINE}]},"Take bytes":{description:"Takes a slice of the specified number of bytes from the data.",run:Tidy.run_take_bytes,input_type:"byte_array",output_type:"byte_array",args:[{name:"Start",type:"number",value:Tidy.TAKE_START},{name:"Length",type:"number",value:Tidy.TAKE_LENGTH},{name:"Apply to each line",type:"boolean",value:Tidy.APPLY_TO_EACH_LINE}]},"Pad lines":{description:"Add the specified number of the specified character to the beginning or end of each line",run:Tidy.run_pad,input_type:"string",output_type:"string",args:[{name:"Position",type:"option",value:Tidy.PAD_POSITION},{name:"Length",type:"number",value:Tidy.PAD_LENGTH},{name:"Character",type:"binary_short_string",value:Tidy.PAD_CHAR}]},Reverse:{description:"Reverses the input string.",run:SeqUtils.run_reverse,input_type:"byte_array",output_type:"byte_array",args:[{name:"By",type:"option",value:SeqUtils.REVERSE_BY}]},Sort:{description:"Alphabetically sorts strings separated by the specified delimiter.<br><br>The IP address option supports IPv4 only.",run:SeqUtils.run_sort,input_type:"string",output_type:"string",args:[{name:"Delimiter",type:"option",value:SeqUtils.DELIMITER_OPTIONS},{name:"Reverse",type:"boolean",value:SeqUtils.SORT_REVERSE},{name:"Order",type:"option",value:SeqUtils.SORT_ORDER}]},Unique:{description:"Removes duplicate strings from the input.",run:SeqUtils.run_unique,input_type:"string",output_type:"string",args:[{name:"Delimiter",type:"option",value:SeqUtils.DELIMITER_OPTIONS}]},"Count occurrences":{description:"Counts the number of times the provided string occurs in the input.",run:SeqUtils.run_count,input_type:"string",output_type:"number",args:[{name:"Search string",type:"toggle_string",value:"",toggle_values:SeqUtils.SEARCH_TYPE}]},"Add line numbers":{description:"Adds line numbers to the output.",run:SeqUtils.run_add_line_numbers,input_type:"string",output_type:"string",args:[]},"Remove line numbers":{description:"Removes line numbers from the output if they can be trivially detected.",run:SeqUtils.run_remove_line_numbers,input_type:"string",output_type:Line truncated
a.clientWidth<470?b.childNodes[1].nodeValue=" Step":b.childNodes[1].nodeValue=" Step through",a.clientWidth<400?(d.style.display="none",e.style.display="none",f.style.display="none",g.style.display="none",h.style.display="none"):(d.style.display="inline",e.style.display="inline",f.style.display="inline",g.style.display="inline",h.style.display="inline"),a.clientWidth<330?c.childNodes[1].nodeValue=" Clear breaks":c.childNodes[1].nodeValue=" Clear breakpoints"},ControlsWaiter.prototype.set_auto_bake=function(a){var b=document.getElementById("auto-bake");b.checked!==a&&b.click()},ControlsWaiter.prototype.bake_click=function(){this.app.bake(),$("#output-text").selectRange(0)},ControlsWaiter.prototype.step_click=function(){this.app.bake(!0),$("#output-text").selectRange(0)},ControlsWaiter.prototype.auto_bake_change=function(){var a=document.getElementById("auto-bake-label"),b=document.getElementById("auto-bake");this.app.auto_bake_=b.checked,b.checked?(a.classList.remove("btn-default"),a.classList.add("btn-success")):(a.classList.remove("btn-success"),a.classList.add("btn-default"))},ControlsWaiter.prototype.clear_recipe_click=function(){this.manager.recipe.clear_recipe()},ControlsWaiter.prototype.clear_breaks_click=function(){for(var a=document.querySelectorAll("#rec_list li.operation .breakpoint"),b=0;b<a.length;b++)a[b].setAttribute("break","false"),a[b].classList.remove("breakpoint-selected")},ControlsWaiter.prototype.initialise_save_link=function(a){a=a||this.app.get_recipe_config();var b=document.getElementById("save-link-recipe-checkbox").checked,c=document.getElementById("save-link-input-checkbox").checked,d=document.getElementById("save-link"),e=this.generate_state_url(b,c,a);d.innerHTML=Utils.truncate(e,120),d.setAttribute("href",e)},ControlsWaiter.prototype.generate_state_url=function(a,b,c){c=c||this.app.get_recipe_config();var d=window.location.protocol+"//"+window.location.host+window.location.pathname,e=JSON.stringify(c),f=Utils.to_base64(this.app.get_input(),"A-Za-z0-9+/");return a=a&&c.length>0,b=b&&f.length>0&&f.length<8e3,a&&(d+="?recipe="+encodeURIComponent(e)),a&&b?d+="&input="+encodeURIComponent(f):b&&(d+="?input="+encodeURIComponent(f)),d},ControlsWaiter.prototype.save_text_change=function(){try{var a=JSON.parse(document.getElementById("save-text").value);this.initialise_save_link(a)}catch(a){}},ControlsWaiter.prototype.save_click=function(){var a=this.app.get_recipe_config(),b=JSON.stringify(a).replace(/},{/g,"},\n{");document.getElementById("save-text").value=b,this.initialise_save_link(a),$("#save-modal").modal()},ControlsWaiter.prototype.slr_check_change=function(){this.initialise_save_link()},ControlsWaiter.prototype.sli_check_change=function(){this.initialise_save_link()},ControlsWaiter.prototype.load_click=function(){this.populate_load_recipes_list(),$("#load-modal").modal()},ControlsWaiter.prototype.save_button_click=function(){var a=document.getElementById("save-name").value,b=document.getElementById("save-text").value;if(!a)return void this.app.alert("Please enter a recipe name","danger",2e3);var c=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[],d=localStorage.recipe_id||0;c.push({id:++d,name:a,recipe:b}),localStorage.saved_recipes=JSON.stringify(c),localStorage.recipe_id=d,this.app.alert('Recipe saved as "'+a+'".',"success",2e3)},ControlsWaiter.prototype.populate_load_recipes_list=function(){for(var a=document.getElementById("load-name"),b=a.options.length;b--;)a.remove(b);var c=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[];for(b=0;b<c.length;b++){var d=document.createElement("option");d.value=c[b].id,d.innerHTML=c[b].name,a.appendChild(d)}document.getElementById("load-text").value=c.length?c[0].recipe:""},ControlsWaiter.prototype.load_delete_click=function(){var a=document.getElementById("load-name").value,b=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[];b=b.filter(function(b){return b.id!==a}),localStorage.saved_recipes=JSON.stringify(b),this.populate_load_recipes_list()},ControlsWaiter.prototype.load_name_change=function(a){var b=a.target,c=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[],d=parseInt(b.value,10),e=c.filter(function(a){return a.id===d})[0];document.getElementById("load-text").value=e.recipe},ControlsWaiter.prototype.load_button_click=function(){try{var a=JSON.parse(document.getElementById("load-text").value);this.app.set_recipe_config(a),$("#rec_list [data-toggle=popover]").popover()}catch(a){this.app.alert("Invalid recipe","danger",2e3)}};var HTMLApp=function(a,b,c,d){this.categories=a,this.operations=b,this.dfavourites=c,this.doptions=d,this.options=Utils.extend({},d),this.chef=new Chef,this.manager=new Manager(this),this.auto_bake_=!1,this.progress=0,this.ing_id=0,window.chef=this.chef};HTMLApp.prototype.setup=function(){document.dispatchEvent(this.manager.appstart),this.initialise_splitter(),this.load_local_storage(),this.populate_operations_list(),this.manager.setup(),thLine truncated
this.seasonal.load()},Manager.prototype.initialise_event_listeners=function(){window.addEventListener("resize",this.window.window_resize.bind(this.window)),window.addEventListener("blur",this.window.window_blur.bind(this.window)),window.addEventListener("focus",this.window.window_focus.bind(this.window)),window.addEventListener("statechange",this.app.state_change.bind(this.app)),window.addEventListener("popstate",this.app.pop_state.bind(this.app)),document.getElementById("bake").addEventListener("click",this.controls.bake_click.bind(this.controls)),document.getElementById("auto-bake").addEventListener("change",this.controls.auto_bake_change.bind(this.controls)),document.getElementById("step").addEventListener("click",this.controls.step_click.bind(this.controls)),document.getElementById("clr-recipe").addEventListener("click",this.controls.clear_recipe_click.bind(this.controls)),document.getElementById("clr-breaks").addEventListener("click",this.controls.clear_breaks_click.bind(this.controls)),document.getElementById("save").addEventListener("click",this.controls.save_click.bind(this.controls)),document.getElementById("save-button").addEventListener("click",this.controls.save_button_click.bind(this.controls)),document.getElementById("save-link-recipe-checkbox").addEventListener("change",this.controls.slr_check_change.bind(this.controls)),document.getElementById("save-link-input-checkbox").addEventListener("change",this.controls.sli_check_change.bind(this.controls)),document.getElementById("load").addEventListener("click",this.controls.load_click.bind(this.controls)),document.getElementById("load-delete-button").addEventListener("click",this.controls.load_delete_click.bind(this.controls)),document.getElementById("load-name").addEventListener("change",this.controls.load_name_change.bind(this.controls)),document.getElementById("load-button").addEventListener("click",this.controls.load_button_click.bind(this.controls)),this.add_multi_event_listener("#save-text","keyup paste",this.controls.save_text_change,this.controls),this.add_multi_event_listener("#search","keyup paste search",this.ops.search_operations,this.ops),this.add_dynamic_listener(".op_list li.operation","dblclick",this.ops.operation_dblclick,this.ops),document.getElementById("edit-favourites").addEventListener("click",this.ops.edit_favourites_click.bind(this.ops)),document.getElementById("save-favourites").addEventListener("click",this.ops.save_favourites_click.bind(this.ops)),document.getElementById("reset-favourites").addEventListener("click",this.ops.reset_favourites_click.bind(this.ops)),this.add_dynamic_listener(".op_list .op-icon","mouseover",this.ops.op_icon_mouseover,this.ops),this.add_dynamic_listener(".op_list .op-icon","mouseleave",this.ops.op_icon_mouseleave,this.ops),this.add_dynamic_listener(".op_list","oplistcreate",this.ops.op_list_create,this.ops),this.add_dynamic_listener("li.operation","operationadd",this.recipe.op_add.bind(this.recipe)),this.add_dynamic_listener(".arg","keyup",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".arg","change",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".disable-icon","click",this.recipe.disable_click,this.recipe),this.add_dynamic_listener(".breakpoint","click",this.recipe.breakpoint_click,this.recipe),this.add_dynamic_listener("#rec_list li.operation","dblclick",this.recipe.operation_dblclick,this.recipe),this.add_dynamic_listener("#rec_list li.operation > div","dblclick",this.recipe.operation_child_dblclick,this.recipe),this.add_dynamic_listener("#rec_list .input-group .dropdown-menu a","click",this.recipe.dropdown_toggle_click,this.recipe),this.add_dynamic_listener("#rec_list","operationremove",this.recipe.op_remove.bind(this.recipe)),this.add_multi_event_listener("#input-text","keyup paste",this.input.input_change,this.input),document.getElementById("reset-layout").addEventListener("click",this.app.reset_layout.bind(this.app)),document.getElementById("clr-io").addEventListener("click",this.input.clear_io_click.bind(this.input)),document.getElementById("input-text").addEventListener("dragover",this.input.input_dragover.bind(this.input)),document.getElementById("input-text").addEventListener("dragleave",this.input.input_dragleave.bind(this.input)),document.getElementById("input-text").addEventListener("drop",this.input.input_drop.bind(this.input)),document.getElementById("input-text").addEventListener("scroll",this.highlighter.input_scroll.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mouseup",this.highlighter.input_mouseup.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mousemove",this.highlighter.input_mousemove.bind(this.highlighter)),this.add_multi_event_listener("#input-text","mousedown dblclick select",this.highlighter.input_mousedown,this.highlighter),document.getElementById("save-to-file").addEventListener("click",this.output.save_click.bind(this.output)),document.getElementById("switch").addEvLine truncated
window.compile_time=moment.tz("Wed Dec 14 2016 16:37:29","ddd MMM D YYYY HH:mm:ss","UTC").valueOf(),window.compile_message="Merry Christmas! Have a look in the options panel for some festive flavour.",document.addEventListener("DOMContentLoaded",main,!1);
>>>>>>> master
+1 -1
View File
@@ -71,4 +71,4 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.clo,.opn,.pun{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.kwd,.tag,.typ{font-weight:700}.str{color:#060}.kwd{color:#006}.com{color:#600;font-style:italic}.typ{color:#404}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}#content-wrapper{top:0;left:0;width:100%;height:100%}#banner{height:30px;text-align:center;line-height:30px}#wrapper{top:30px;bottom:0}div#operations,div#recipe{width:50%;height:100%}div#input,div#output{width:100%;height:50%}.title{padding:10px;height:43px}.textarea-wrapper{top:43px;bottom:0;width:100%;overflow:hidden}#output-html,textarea{width:100%;height:100%;border:none;padding:3px;-moz-padding-start:3px;-moz-padding-end:3px}#input-text,#output-html,#output-text{position:relative;border-width:0;margin:0;resize:none;background-color:transparent;white-space:pre-wrap;word-wrap:break-word}#output-html{display:none;overflow-y:auto;-moz-padding-start:1px}.split{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:auto;position:relative}.gutter.gutter-horizontal,.split.split-horizontal{height:100%;float:left}#input-highlighter,#output-highlighter{position:absolute;left:0;top:0;width:100%;height:100%;padding:3px;margin:0;overflow:hidden;letter-spacing:normal;white-space:pre-wrap;word-wrap:break-word;color:#fff;background-color:transparent;border:none}#op_list,#rec_list,.op_list{margin:0;padding:0;list-style-type:none}#op_list,#rec_list{position:absolute;top:43px;bottom:0;width:100%}.io-btn-group,.io-info{margin-top:-4px;float:right}#rec_list{bottom:120px;overflow:auto}.operation{cursor:pointer;padding:10px;list-style-type:none;position:relative}#controls{position:absolute;width:100%;height:120px;bottom:0;padding:10px}.io-info{margin-right:20px;height:30px;text-align:right;line-height:10px}.arg-group,.inline-args input[type=checkbox]{margin-top:10px}#input-info{line-height:15px}.arg-group{display:table;width:100%}.arg-group-text{display:block}.inline-args{float:left;width:auto;margin-right:30px;height:34px}.inline-args input[type=number]{width:100px}.arg-input{display:table-cell;width:100%;padding:6px 12px}.short-string{width:150px}select{display:block}.arg[disabled]{cursor:not-allowed;opacity:1}textarea.arg{width:100%;min-height:50px;height:70px;margin-top:5px;border:1px solid #ddd;resize:vertical}.arg-label{display:table-cell;width:1px;padding-right:10px;font-weight:400;white-space:pre}.title,optgroup{font-weight:700}.editable-option{position:relative;display:inline-block}.editable-option-input{position:absolute;top:1px;left:1px;width:calc(100% - 20px);height:calc(100% - 2px)!important;border:none!important}#operational-controls{width:65%;float:left;text-align:center}#bake-group{display:table;width:100%}#bake{display:table-cell;width:100%;border-top-right-radius:0;border-bottom-right-radius:0}#auto-bake-label{display:table-cell;padding:1px;line-height:1.35;width:60px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #5cb85c}#auto-bake-label:hover{border-left-color:#398439}#auto-bake-label div{font-size:10px;padding:2px}#extra-controls{float:right;width:35%;padding-left:10px}.op-icon{float:right;margin-left:10px;margin-top:3px}.recip-icons{position:absolute;top:13px;right:10px;height:16px}.recip-icon{margin-right:10px;vertical-align:baseline;float:right}.disable-icon{width:16px;height:16px;margin-top:-1px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAACfElEQVQ4y6WTPWgTYRjHf8nlfVvuoDVIP4Yuki4WHKoUqggFRUTsUEGkVG2hmCq6OnTwIxYHB+eijZOKdLNDW1pKKyGigh8dBHUJElxyBgx3vEnukvdyDrUhRXDxGR+e/+/583xEwjDkfyIGwNVTzURm4tYAMA6MAoN/0tvAMrA48uL+l2bx4w0iYRjSuHKC6OnTZLqHk8CcaZq9bW1tSCkBqNVq+L5PpVIpAHdGfr5LN9bXiT7Z2nGgteb1/qFkLBJZ6OjowHEc8vk8pVIJgHg8TldXF52dnb2u6y5s7R/iuF5JSyAKkLl4eyAMwznLsrBtm1wu99Z13amk+BFJih8R13WXANrb27EsizAM5zIXbw+wC9Baj0spe5VSFAqFt4ZhXJ6ufXuK55E5cDKVSCTGenp6yGazKKWQUvZqrcebgCAIRqWUOI6DEOLR1K8POapVMgfPpoC7u2LLspYcx0FKSRAEo60OBg3DwPd9Jr5vPqWvj8zh83vEwL2J75vnfN/HMAy01oPNNQZBQBAEO1OvVsl0D/8lTuZfpYDd7gRBQKuD7XK5jGmarB679PIv8deVFJUKq8cuTZqmSblcRmu93QpYVkohhMCyrLE94n2/UlSrbJy5kRBCXBNCoJRCa73cClh0XbfgeR6WZZHNZunv719KvnmeYnWVVxdmJ2Ox2DMhxFHP83Bdt6C1XgR2LvHzQDvvb84npZQL8Xgc0zSJRqN7br7RaFCpVCiVStRqtZmhh9fTh754TQdMr82nPc+bsW27UCwWUUpRr9ep1+sopSgWi9i2XfA8b2Z6bT6ttabp4GMi0uz0aXbhn890+MFM85mO5MIdwP/Eb1pMUCdctYRzAAAAAElFTkSuQmCC) no-repeat}.disable-icon-selected{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACFUlEQVR4XqWTP0tbURjGn9zY3mjBwsUhBQtS6XKxiNypIGZJ6SKYUYdaKWg7OrrE3pYO+Qit3dpFuuQO6lI7Z4nESQdLine truncated */.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.clo,.opn,.pun{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.kwd,.tag,.typ{font-weight:700}.str{color:#060}.kwd{color:#006}.com{color:#600;font-style:italic}.typ{color:#404}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}#content-wrapper{top:0;left:0;width:100%;height:100%}#banner{height:30px;text-align:center;line-height:30px}#wrapper{top:30px;bottom:0}div#operations,div#recipe{width:50%;height:100%}div#input,div#output{width:100%;height:50%}.title{padding:10px;height:43px}.textarea-wrapper{top:43px;bottom:0;width:100%;overflow:hidden}#output-html,textarea{width:100%;height:100%;border:none;padding:3px;-moz-padding-start:3px;-moz-padding-end:3px}#input-text,#output-html,#output-text{position:relative;border-width:0;margin:0;resize:none;background-color:transparent;white-space:pre-wrap;word-wrap:break-word}#output-html{display:none;overflow-y:auto;-moz-padding-start:1px}.split{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:auto;position:relative}.gutter.gutter-horizontal,.split.split-horizontal{height:100%;float:left}#input-highlighter,#output-highlighter{position:absolute;left:0;top:0;width:100%;height:100%;padding:3px;margin:0;overflow:hidden;letter-spacing:normal;white-space:pre-wrap;word-wrap:break-word;color:#fff;background-color:transparent;border:none}#op_list,#rec_list,.op_list{margin:0;padding:0;list-style-type:none}#op_list,#rec_list{position:absolute;top:43px;bottom:0;width:100%}.io-btn-group,.io-info{margin-top:-4px;float:right}#rec_list{bottom:120px;overflow:auto}.operation{cursor:pointer;padding:10px;list-style-type:none;position:relative}#controls{position:absolute;width:100%;height:120px;bottom:0;padding:10px}.io-info{margin-right:20px;height:30px;text-align:right;line-height:10px}.arg-group,.inline-args input[type=checkbox]{margin-top:10px}#input-info{line-height:15px}.arg-group{display:table;width:100%}.arg-group-text{display:block}.inline-args{float:left;width:auto;margin-right:30px;height:34px}.inline-args input[type=number]{width:100px}.arg-input{display:table-cell;width:100%;padding:6px 12px}.short-string{width:150px}select{display:block}.arg[disabled]{cursor:not-allowed;opacity:1}textarea.arg{width:100%;min-height:50px;height:70px;margin-top:5px;border:1px solid #ddd;resize:vertical}.arg-label{display:table-cell;width:1px;padding-right:10px;font-weight:400;white-space:pre}.title,optgroup{font-weight:700}.editable-option{position:relative;display:inline-block}.editable-option-input{position:absolute;top:1px;left:1px;width:calc(100% - 20px);height:calc(100% - 2px)!important;border:none!important}#operational-controls{width:65%;float:left;text-align:center}#bake-group{display:table;width:100%}#bake{display:table-cell;width:100%;border-top-right-radius:0;border-bottom-right-radius:0}#auto-bake-label{display:table-cell;padding:1px;line-height:1.35;width:60px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #5cb85c}#auto-bake-label:hover{border-left-color:#398439}#auto-bake-label div{font-size:10px;padding:2px}#extra-controls{float:right;width:35%;padding-left:10px}.op-icon{float:right;margin-left:10px;margin-top:3px}.recip-icons{position:absolute;top:13px;right:10px;height:16px}.recip-icon{margin-right:10px;vertical-align:baseline;float:right}.disable-icon{width:16px;height:16px;margin-top:-1px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAACfElEQVQ4y6WTPWgTYRjHf8nlfVvuoDVIP4Yuki4WHKoUqggFRUTsUEGkVG2hmCq6OnTwIxYHB+eijZOKdLNDW1pKKyGigh8dBHUJElxyBgx3vEnukvdyDrUhRXDxGR+e/+/583xEwjDkfyIGwNVTzURm4tYAMA6MAoN/0tvAMrA48uL+l2bx4w0iYRjSuHKC6OnTZLqHk8CcaZq9bW1tSCkBqNVq+L5PpVIpAHdGfr5LN9bXiT7Z2nGgteb1/qFkLBJZ6OjowHEc8vk8pVIJgHg8TldXF52dnb2u6y5s7R/iuF5JSyAKkLl4eyAMwznLsrBtm1wu99Z13amk+BFJih8R13WXANrb27EsizAM5zIXbw+wC9Baj0spe5VSFAqFt4ZhXJ6ufXuK55E5cDKVSCTGenp6yGazKKWQUvZqrcebgCAIRqWUOI6DEOLR1K8POapVMgfPpoC7u2LLspYcx0FKSRAEo60OBg3DwPd9Jr5vPqWvj8zh83vEwL2J75vnfN/HMAy01oPNNQZBQBAEO1OvVsl0D/8lTuZfpYDd7gRBQKuD7XK5jGmarB679PIv8deVFJUKq8cuTZqmSblcRmu93QpYVkohhMCyrLE94n2/UlSrbJy5kRBCXBNCoJRCa73cClh0XbfgeR6WZZHNZunv719KvnmeYnWVVxdmJ2Ox2DMhxFHP83Bdt6C1XgR2LvHzQDvvb84npZQL8Xgc0zSJRqN7br7RaFCpVCiVStRqtZmhh9fTh754TQdMr82nPc+bsW27UCwWUUpRr9ep1+sopSgWi9i2XfA8b2Z6bT6ttabp4GMi0uz0aXbhn890+MFM85mO5MIdwP/Eb1pMUCdctYRzAAAAAElFTkSuQmCC) no-repeat}.disable-icon-selected{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACFUlEQVR4XqWTP0tbURjGn9zY3mjBwsUhBQtS6XKxiNypIGZJ6SKYUYdaKWg7OrrE3pYO+Qit3dpFuuQO6lI7Z4nESQdLine truncated
Executable → Regular
+1 -1
View File
@@ -36,9 +36,9 @@
"grunt-contrib-copy": "~0.8.2", "grunt-contrib-copy": "~0.8.2",
"grunt-contrib-cssmin": "~0.14.0", "grunt-contrib-cssmin": "~0.14.0",
"grunt-contrib-htmlmin": "~0.6.0", "grunt-contrib-htmlmin": "~0.6.0",
"grunt-contrib-jshint": "~1.0.0",
"grunt-contrib-uglify": "~0.11.1", "grunt-contrib-uglify": "~0.11.1",
"grunt-contrib-watch": "~0.6.1", "grunt-contrib-watch": "~0.6.1",
"grunt-eslint": "^19.0.0",
"grunt-exec": "~0.4.6", "grunt-exec": "~0.4.6",
"grunt-inline-alt": "~0.3.10", "grunt-inline-alt": "~0.3.10",
"grunt-jsdoc": "^1.1.0", "grunt-jsdoc": "^1.1.0",
+6
View File
@@ -176,6 +176,12 @@ textarea.arg {
border-color: #b3dba2 !important; border-color: #b3dba2 !important;
} }
.flow-control-op.break {
color: #94312f !important;
background-color: #eabfbf !important;
border-color: #e2aeb5 !important;
}
#support-modal textarea { #support-modal textarea {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
} }
+93
View File
@@ -0,0 +1,93 @@
{
"parserOptions": {
"ecmaVersion": 6,
"ecmaFeatures": {
"impliedStrict": true
}
},
"env": {
"browser": true,
"jquery": true,
"es6": true,
"node": false
},
"extends": "eslint:recommended",
"rules": {
// enable additional rules
"no-eval": "error",
"no-implied-eval": "error",
"dot-notation": "error",
"eqeqeq": ["error", "smart"],
"no-caller": "error",
"no-extra-bind": "error",
"no-unused-expressions": "error",
"no-useless-call": "error",
"no-useless-return": "error",
"radix": "warn",
// modify rules from base configurations
"no-unused-vars": ["error", {
"args": "none",
"vars": "local"
}],
"no-empty": ["error", {
"allowEmptyCatch": true
}],
// disable rules from base configurations
"no-console": "off",
"no-control-regex": "off",
// stylistic conventions
"brace-style": ["error", "1tbs"],
"block-spacing": "error",
"array-bracket-spacing": "error",
"comma-spacing": "error",
"comma-style": "error",
"computed-property-spacing": "error",
"no-trailing-spaces": ["warn", {
"skipBlankLines": true
}],
"eol-last": "error",
"func-call-spacing": "error",
"indent": ["error", 4, {
"ArrayExpression": "first",
"SwitchCase": 1
}],
"linebreak-style": ["error", "unix"],
"quotes": ["error", "double", {
"avoidEscape": true
}],
"semi": ["error", "always"],
"unicode-bom": "error"
},
"globals": {
/* core/* */
"Chef": false,
"Dish": false,
"Recipe": false,
"Ingredient": false,
"Operation": false,
"Utils": false,
/* config/* */
"Categories": false,
"OperationConfig": false,
/* views/html/* */
"HTMLApp": false,
"HTMLCategory": false,
"HTMLOperation": false,
"HTMLIngredient": false,
"Manager": false,
"ControlsWaiter": false,
"HighlighterWaiter": false,
"InputWaiter": false,
"OperationsWaiter": false,
"OptionsWaiter": false,
"OutputWaiter": false,
"RecipeWaiter": false,
"SeasonalWaiter": false,
"WindowWaiter": false
}
}
-38
View File
@@ -1,38 +0,0 @@
{
"strict": "implied",
"multistr": true,
"browser": true,
"typed": true,
"jquery": true,
"node": true,
"undef": true,
"globals": {
/* core/* */
"Chef": true,
"Dish": true,
"Recipe": true,
"Ingredient": true,
"Operation": true,
"Utils": true,
/* config/* */
"Categories": true,
"OperationConfig": true,
/* views/html/* */
"HTMLApp": true,
"HTMLCategory": true,
"HTMLOperation": true,
"HTMLIngredient": true,
"Manager": true,
"ControlsWaiter": true,
"HighlighterWaiter": true,
"InputWaiter": true,
"OperationsWaiter": true,
"OptionsWaiter": true,
"OutputWaiter": true,
"RecipeWaiter": true,
"SeasonalWaiter": true,
"WindowWaiter": true
}
}
+1 -1
View File
@@ -17,7 +17,7 @@
* @constant * @constant
* @type {CatConf[]} * @type {CatConf[]}
*/ */
var Categories = [ const Categories = [
{ {
name: "Favourites", name: "Favourites",
ops: [] ops: []
+3 -3
View File
@@ -1,8 +1,8 @@
/* /*
* Tell JSHint to ignore "'Object' is not defined" errors in this file, as it references every * Tell eslint to ignore "'Object' is not defined" errors in this file, as it references every
* single operation object by definition. * single operation object by definition.
*/ */
/* jshint -W117 */ /* eslint no-undef: "off" */
/** /**
@@ -45,7 +45,7 @@
* @constant * @constant
* @type {Object.<string, OpConf>} * @type {Object.<string, OpConf>}
*/ */
var OperationConfig = { const OperationConfig = {
"Fork": { "Fork": {
description: "Split the input data up based on the specified delimiter and run all subsequent operations on each branch separately.<br><br>For example, to decode multiple Base64 strings, enter them all on separate lines then add the 'Fork' and 'From Base64' operations to the recipe. Each string will be decoded separately.", description: "Split the input data up based on the specified delimiter and run all subsequent operations on each branch separately.<br><br>For example, to decode multiple Base64 strings, enter them all on separate lines then add the 'Fork' and 'From Base64' operations to the recipe. Each string will be decoded separately.",
run: FlowControl.run_fork, run: FlowControl.run_fork,
+13 -13
View File
@@ -70,22 +70,22 @@ Chef.prototype.bake = function(input_text, recipe_config, options, progress, ste
try { try {
progress = recipe.execute(this.dish, progress); progress = recipe.execute(this.dish, progress);
} catch (err) { } catch (err) {
// We can't throw the error from here as we will return in the finally block and ignore it // Return the error in the result so that everything else gets correctly updated
// so we return the error in the result instead. // rather than throwing it here and losing state info.
error = err; error = err;
progress = err.progress; progress = err.progress;
} finally {
return {
result: this.dish.type == Dish.HTML ?
this.dish.get(Dish.HTML) :
this.dish.get(Dish.STRING),
type: Dish.enum_lookup(this.dish.type),
progress: progress,
options: options,
duration: new Date().getTime() - start_time,
error: error
};
} }
return {
result: this.dish.type === Dish.HTML ?
this.dish.get(Dish.HTML) :
this.dish.get(Dish.STRING),
type: Dish.enum_lookup(this.dish.type),
progress: progress,
options: options,
duration: new Date().getTime() - start_time,
error: error
};
}; };
+1 -1
View File
@@ -115,7 +115,7 @@ Dish.prototype.set = function(value, type) {
* @returns {byte_array|string|number} The value of the output data. * @returns {byte_array|string|number} The value of the output data.
*/ */
Dish.prototype.get = function(type) { Dish.prototype.get = function(type) {
if (this.type != type) { if (this.type !== type) {
this.translate(type); this.translate(type);
} }
return this.value; return this.value;
+2 -2
View File
@@ -7,7 +7,7 @@
* *
* @namespace * @namespace
*/ */
var FlowControl = { const FlowControl = {
/** /**
* @constant * @constant
@@ -46,7 +46,7 @@ var FlowControl = {
// Create sub_op_list for each tranche to operate on // Create sub_op_list for each tranche to operate on
// (all remaining operations unless we encounter a Merge) // (all remaining operations unless we encounter a Merge)
for (var i = state.progress + 1; i < op_list.length; i++) { for (var i = state.progress + 1; i < op_list.length; i++) {
if (op_list[i].name == "Merge" && !op_list[i].is_disabled()) { if (op_list[i].name === "Merge" && !op_list[i].is_disabled()) {
break; break;
} else { } else {
sub_op_list.push(op_list[i]); sub_op_list.push(op_list[i]);
+1 -2
View File
@@ -67,12 +67,11 @@ Ingredient.prepare = function(data, type) {
return Utils.parse_escaped_chars(data); return Utils.parse_escaped_chars(data);
case "byte_array": case "byte_array":
if (typeof data == "string") { if (typeof data == "string") {
data = data.replace(/\s+/g, ''); data = data.replace(/\s+/g, "");
return Utils.hex_to_byte_array(data); return Utils.hex_to_byte_array(data);
} else { } else {
return data; return data;
} }
break;
case "number": case "number":
var number = parseFloat(data); var number = parseFloat(data);
if (isNaN(number)) { if (isNaN(number)) {
+30 -30
View File
@@ -203,7 +203,7 @@ var Utils = {
*/ */
parse_escaped_chars: function(str) { parse_escaped_chars: function(str) {
return str.replace(/(\\)?\\([nrtbf]|x[\da-f]{2})/g, function(m, a, b) { return str.replace(/(\\)?\\([nrtbf]|x[\da-f]{2})/g, function(m, a, b) {
if (a == "\\") return "\\"+b; if (a === "\\") return "\\"+b;
switch (b[0]) { switch (b[0]) {
case "n": case "n":
return "\n"; return "\n";
@@ -243,8 +243,8 @@ var Utils = {
for (var i = 0; i < alph_str.length; i++) { for (var i = 0; i < alph_str.length; i++) {
if (i < alph_str.length - 2 && if (i < alph_str.length - 2 &&
alph_str[i+1] == "-" && alph_str[i+1] === "-" &&
alph_str[i] != "\\") { alph_str[i] !== "\\") {
var start = Utils.ord(alph_str[i]), var start = Utils.ord(alph_str[i]),
end = Utils.ord(alph_str[i+2]); end = Utils.ord(alph_str[i+2]);
@@ -253,8 +253,8 @@ var Utils = {
} }
i += 2; i += 2;
} else if (i < alph_str.length - 2 && } else if (i < alph_str.length - 2 &&
alph_str[i] == "\\" && alph_str[i] === "\\" &&
alph_str[i+1] == "-") { alph_str[i+1] === "-") {
alph_arr.push("-"); alph_arr.push("-");
i++; i++;
} else { } else {
@@ -278,7 +278,7 @@ var Utils = {
hex_to_byte_array: function(hex_str) { hex_to_byte_array: function(hex_str) {
// TODO: Handle errors i.e. input string is not hex // TODO: Handle errors i.e. input string is not hex
if (!hex_str) return []; if (!hex_str) return [];
hex_str = hex_str.replace(/\s+/g, ''); hex_str = hex_str.replace(/\s+/g, "");
var byte_array = []; var byte_array = [];
for (var i = 0; i < hex_str.length; i += 2) { for (var i = 0; i < hex_str.length; i += 2) {
byte_array.push(parseInt(hex_str.substr(i, 2), 16)); byte_array.push(parseInt(hex_str.substr(i, 2), 16));
@@ -351,7 +351,7 @@ var Utils = {
var word_array = CryptoJS.enc.Utf8.parse(str), var word_array = CryptoJS.enc.Utf8.parse(str),
byte_array = Utils.word_array_to_byte_array(word_array); byte_array = Utils.word_array_to_byte_array(word_array);
if (str.length != word_array.sigBytes) if (str.length !== word_array.sigBytes)
window.app.options.attempt_highlight = false; window.app.options.attempt_highlight = false;
return byte_array; return byte_array;
}, },
@@ -403,7 +403,7 @@ var Utils = {
var word_array = new CryptoJS.lib.WordArray.init(words, byte_array.length), var word_array = new CryptoJS.lib.WordArray.init(words, byte_array.length),
str = CryptoJS.enc.Utf8.stringify(word_array); str = CryptoJS.enc.Utf8.stringify(word_array);
if (str.length != word_array.sigBytes) if (str.length !== word_array.sigBytes)
window.app.options.attempt_highlight = false; window.app.options.attempt_highlight = false;
return str; return str;
} catch (err) { } catch (err) {
@@ -553,7 +553,7 @@ var Utils = {
res.push(String.fromCharCode(Utils.UNIC_WIN1251_MAP[ord])); res.push(String.fromCharCode(Utils.UNIC_WIN1251_MAP[ord]));
} }
return res.join(''); return res.join("");
}, },
@@ -577,7 +577,7 @@ var Utils = {
res.push(String.fromCharCode(Utils.WIN1251_UNIC_MAP[ord])); res.push(String.fromCharCode(Utils.WIN1251_UNIC_MAP[ord]));
} }
return res.join(''); return res.join("");
}, },
@@ -653,7 +653,7 @@ var Utils = {
return_type = return_type || "string"; return_type = return_type || "string";
if (!data) { if (!data) {
return return_type == "string" ? "" : []; return return_type === "string" ? "" : [];
} }
alphabet = alphabet ? alphabet = alphabet ?
@@ -678,9 +678,9 @@ var Utils = {
enc3 = alphabet.indexOf(data.charAt(i++) || "="); enc3 = alphabet.indexOf(data.charAt(i++) || "=");
enc4 = alphabet.indexOf(data.charAt(i++) || "="); enc4 = alphabet.indexOf(data.charAt(i++) || "=");
enc2 = enc2 == -1 ? 64 : enc2; enc2 = enc2 === -1 ? 64 : enc2;
enc3 = enc3 == -1 ? 64 : enc3; enc3 = enc3 === -1 ? 64 : enc3;
enc4 = enc4 == -1 ? 64 : enc4; enc4 = enc4 === -1 ? 64 : enc4;
chr1 = (enc1 << 2) | (enc2 >> 4); chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
@@ -688,15 +688,15 @@ var Utils = {
output.push(chr1); output.push(chr1);
if (enc3 != 64) { if (enc3 !== 64) {
output.push(chr2); output.push(chr2);
} }
if (enc4 != 64) { if (enc4 !== 64) {
output.push(chr3); output.push(chr3);
} }
} }
return return_type == "string" ? Utils.byte_array_to_utf8(output) : output; return return_type === "string" ? Utils.byte_array_to_utf8(output) : output;
}, },
@@ -727,8 +727,8 @@ var Utils = {
} }
// Add \x or 0x to beginning // Add \x or 0x to beginning
if (delim == "0x") output = "0x" + output; if (delim === "0x") output = "0x" + output;
if (delim == "\\x") output = "\\x" + output; if (delim === "\\x") output = "\\x" + output;
if (delim.length) if (delim.length)
return output.slice(0, -delim.length); return output.slice(0, -delim.length);
@@ -779,9 +779,9 @@ var Utils = {
from_hex: function(data, delim, byte_len) { from_hex: function(data, delim, byte_len) {
delim = delim || (data.indexOf(" ") >= 0 ? "Space" : "None"); delim = delim || (data.indexOf(" ") >= 0 ? "Space" : "None");
byte_len = byte_len || 2; byte_len = byte_len || 2;
if (delim != "None") { if (delim !== "None") {
var delim_regex = Utils.regex_rep[delim]; var delim_regex = Utils.regex_rep[delim];
data = data.replace(delim_regex, ''); data = data.replace(delim_regex, "");
} }
var output = []; var output = [];
@@ -816,17 +816,17 @@ var Utils = {
if (ignore_next) { if (ignore_next) {
cell += b; cell += b;
ignore_next = false; ignore_next = false;
} else if (b == "\\") { } else if (b === "\\") {
cell += b; cell += b;
ignore_next = true; ignore_next = true;
} else if (b == "\"" && !in_string) { } else if (b === "\"" && !in_string) {
in_string = true; in_string = true;
} else if (b == "\"" && in_string) { } else if (b === "\"" && in_string) {
in_string = false; in_string = false;
} else if (b == "," && !in_string) { } else if (b === "," && !in_string) {
line.push(cell); line.push(cell);
cell = ""; cell = "";
} else if ((b == "\n" || b == "\r") && !in_string) { } else if ((b === "\n" || b === "\r") && !in_string) {
line.push(cell); line.push(cell);
cell = ""; cell = "";
lines.push(line); lines.push(line);
@@ -877,7 +877,7 @@ var Utils = {
escape_html: function(str) { escape_html: function(str) {
return str.replace(/</g, "&lt;") return str.replace(/</g, "&lt;")
.replace(/'/g, "&apos;") .replace(/'/g, "&apos;")
.replace(/"/g, '&quot;') .replace(/"/g, "&quot;")
.replace(/&/g, "&amp;"); .replace(/&/g, "&amp;");
}, },
@@ -1002,8 +1002,8 @@ $.fn.selectRange = function(start, end) {
} else if (this.createTextRange) { } else if (this.createTextRange) {
var range = this.createTextRange(); var range = this.createTextRange();
range.collapse(true); range.collapse(true);
range.moveEnd('character', end); range.moveEnd("character", end);
range.moveStart('character', start); range.moveStart("character", start);
range.select(); range.select();
} }
}); });
@@ -1095,7 +1095,7 @@ Array.prototype.sum = function() {
Array.prototype.equals = function(other) { Array.prototype.equals = function(other) {
if (!other) return false; if (!other) return false;
var i = this.length; var i = this.length;
if (i != other.length) return false; if (i !== other.length) return false;
while (i--) { while (i--) {
if (this[i] !== other[i]) return false; if (this[i] !== other[i]) return false;
} }
+7 -7
View File
@@ -212,14 +212,14 @@ var Base64 = {
} }
// Highlight offset 0 // Highlight offset 0
if (len0 % 4 == 2) { if (len0 % 4 === 2) {
static_section = offset0.slice(0, -3); static_section = offset0.slice(0, -3);
offset0 = "<span data-toggle='tooltip' data-placement='top' title='" + offset0 = "<span data-toggle='tooltip' data-placement='top' title='" +
Utils.escape_html(Utils.from_base64(static_section, alphabet).slice(0, -2)) + "'>" + Utils.escape_html(Utils.from_base64(static_section, alphabet).slice(0, -2)) + "'>" +
static_section + "</span>" + static_section + "</span>" +
"<span class='hlgreen'>" + offset0.substr(offset0.length - 3, 1) + "</span>" + "<span class='hlgreen'>" + offset0.substr(offset0.length - 3, 1) + "</span>" +
"<span class='hlred'>" + offset0.substr(offset0.length - 2) + "</span>"; "<span class='hlred'>" + offset0.substr(offset0.length - 2) + "</span>";
} else if (len0 % 4 == 3) { } else if (len0 % 4 === 3) {
static_section = offset0.slice(0, -2); static_section = offset0.slice(0, -2);
offset0 = "<span data-toggle='tooltip' data-placement='top' title='" + offset0 = "<span data-toggle='tooltip' data-placement='top' title='" +
Utils.escape_html(Utils.from_base64(static_section, alphabet).slice(0, -1)) + "'>" + Utils.escape_html(Utils.from_base64(static_section, alphabet).slice(0, -1)) + "'>" +
@@ -242,16 +242,16 @@ var Base64 = {
padding = "<span class='hlred'>" + offset1.substr(0, 1) + "</span>" + padding = "<span class='hlred'>" + offset1.substr(0, 1) + "</span>" +
"<span class='hlgreen'>" + offset1.substr(1, 1) + "</span>"; "<span class='hlgreen'>" + offset1.substr(1, 1) + "</span>";
offset1 = offset1.substr(2); offset1 = offset1.substr(2);
if (len1 % 4 == 2) { if (len1 % 4 === 2) {
static_section = offset1.slice(0, -3); static_section = offset1.slice(0, -3);
offset1 = padding + "<span data-toggle='tooltip' data-placement='top' title='" + offset1 = padding + "<span data-toggle='tooltip' data-placement='top' title='" +
Utils.escape_html(Utils.from_base64("AA" + static_section, alphabet).slice(1, -2)) + "'>" + Utils.escape_html(Utils.from_base64("AA" + static_section, alphabet).slice(1, -2)) + "'>" +
static_section + "</span>" + static_section + "</span>" +
"<span class='hlgreen'>" + offset1.substr(offset1.length - 3, 1) + "</span>" + "<span class='hlgreen'>" + offset1.substr(offset1.length - 3, 1) + "</span>" +
"<span class='hlred'>" + offset1.substr(offset1.length - 2) + "</span>"; "<span class='hlred'>" + offset1.substr(offset1.length - 2) + "</span>";
} else if (len1 % 4 == 3) { } else if (len1 % 4 === 3) {
static_section = offset1.slice(0, -2); static_section = offset1.slice(0, -2);
offset1 = padding + "<span data-toggle='tooltip' data-placement='top' title='" + offset1 = padding + "<span data-toggle='tooltip' data-placement='top' title='" +
Utils.escape_html(Utils.from_base64("AA" + static_section, alphabet).slice(1, -1)) + "'>" + Utils.escape_html(Utils.from_base64("AA" + static_section, alphabet).slice(1, -1)) + "'>" +
static_section + "</span>" + static_section + "</span>" +
"<span class='hlgreen'>" + offset1.substr(offset1.length - 2, 1) + "</span>" + "<span class='hlgreen'>" + offset1.substr(offset1.length - 2, 1) + "</span>" +
@@ -271,14 +271,14 @@ var Base64 = {
padding = "<span class='hlred'>" + offset2.substr(0, 2) + "</span>" + padding = "<span class='hlred'>" + offset2.substr(0, 2) + "</span>" +
"<span class='hlgreen'>" + offset2.substr(2, 1) + "</span>"; "<span class='hlgreen'>" + offset2.substr(2, 1) + "</span>";
offset2 = offset2.substr(3); offset2 = offset2.substr(3);
if (len2 % 4 == 2) { if (len2 % 4 === 2) {
static_section = offset2.slice(0, -3); static_section = offset2.slice(0, -3);
offset2 = padding + "<span data-toggle='tooltip' data-placement='top' title='" + offset2 = padding + "<span data-toggle='tooltip' data-placement='top' title='" +
Utils.escape_html(Utils.from_base64("AAA" + static_section, alphabet).slice(2, -2)) + "'>" + Utils.escape_html(Utils.from_base64("AAA" + static_section, alphabet).slice(2, -2)) + "'>" +
static_section + "</span>" + static_section + "</span>" +
"<span class='hlgreen'>" + offset2.substr(offset2.length - 3, 1) + "</span>" + "<span class='hlgreen'>" + offset2.substr(offset2.length - 3, 1) + "</span>" +
"<span class='hlred'>" + offset2.substr(offset2.length - 2) + "</span>"; "<span class='hlred'>" + offset2.substr(offset2.length - 2) + "</span>";
} else if (len2 % 4 == 3) { } else if (len2 % 4 === 3) {
static_section = offset2.slice(0, -2); static_section = offset2.slice(0, -2);
offset2 = padding + "<span data-toggle='tooltip' data-placement='top' title='" + offset2 = padding + "<span data-toggle='tooltip' data-placement='top' title='" +
Utils.escape_html(Utils.from_base64("AAA" + static_section, alphabet).slice(2, -2)) + "'>" + Utils.escape_html(Utils.from_base64("AAA" + static_section, alphabet).slice(2, -2)) + "'>" +
+2 -2
View File
@@ -32,9 +32,9 @@ var BitwiseOp = {
for (var i = 0; i < input.length; i++) { for (var i = 0; i < input.length; i++) {
k = key[i % key.length]; k = key[i % key.length];
o = input[i]; o = input[i];
x = null_preserving && (o === 0 || o == k) ? o : func(o, k); x = null_preserving && (o === 0 || o === k) ? o : func(o, k);
result.push(x); result.push(x);
if (scheme != "Standard" && !(null_preserving && (o === 0 || o == k))) { if (scheme !== "Standard" && !(null_preserving && (o === 0 || o === k))) {
switch (scheme) { switch (scheme) {
case "Input differential": case "Input differential":
key[i % key.length] = x; key[i % key.length] = x;
+14 -14
View File
@@ -80,7 +80,7 @@ var ByteRepr = {
for (var i = 0; i < input.length; i++) { for (var i = 0; i < input.length; i++) {
ordinal = Utils.ord(input[i]); ordinal = Utils.ord(input[i]);
if (base == 16) { if (base === 16) {
if (ordinal < 256) padding = 2; if (ordinal < 256) padding = 2;
else if (ordinal < 65536) padding = 4; else if (ordinal < 65536) padding = 4;
else if (ordinal < 16777216) padding = 6; else if (ordinal < 16777216) padding = 6;
@@ -117,13 +117,13 @@ var ByteRepr = {
throw "Error: Base argument must be between 2 and 36"; throw "Error: Base argument must be between 2 and 36";
} }
if (base != 16) { if (base !== 16) {
app.options.attempt_highlight = false; app.options.attempt_highlight = false;
} }
// Split into groups of 2 if the whole string is concatenated and // Split into groups of 2 if the whole string is concatenated and
// too long to be a single character // too long to be a single character
if (bites.length == 1 && input.length > 17) { if (bites.length === 1 && input.length > 17) {
bites = []; bites = [];
for (i = 0; i < input.length; i += 2) { for (i = 0; i < input.length; i += 2) {
bites.push(input.slice(i, i+2)); bites.push(input.slice(i, i+2));
@@ -149,13 +149,13 @@ var ByteRepr = {
*/ */
highlight_to: function(pos, args) { highlight_to: function(pos, args) {
var delim = Utils.char_rep[args[0] || "Space"], var delim = Utils.char_rep[args[0] || "Space"],
len = delim == "\r\n" ? 1 : delim.length; len = delim === "\r\n" ? 1 : delim.length;
pos[0].start = pos[0].start * (2 + len); pos[0].start = pos[0].start * (2 + len);
pos[0].end = pos[0].end * (2 + len) - len; pos[0].end = pos[0].end * (2 + len) - len;
// 0x and \x are added to the beginning if they are selected, so increment the positions accordingly // 0x and \x are added to the beginning if they are selected, so increment the positions accordingly
if (delim == "0x" || delim == "\\x") { if (delim === "0x" || delim === "\\x") {
pos[0].start += 2; pos[0].start += 2;
pos[0].end += 2; pos[0].end += 2;
} }
@@ -174,11 +174,11 @@ var ByteRepr = {
*/ */
highlight_from: function(pos, args) { highlight_from: function(pos, args) {
var delim = Utils.char_rep[args[0] || "Space"], var delim = Utils.char_rep[args[0] || "Space"],
len = delim == "\r\n" ? 1 : delim.length, len = delim === "\r\n" ? 1 : delim.length,
width = len + 2; width = len + 2;
// 0x and \x are added to the beginning if they are selected, so increment the positions accordingly // 0x and \x are added to the beginning if they are selected, so increment the positions accordingly
if (delim == "0x" || delim == "\\x") { if (delim === "0x" || delim === "\\x") {
if (pos[0].start > 1) pos[0].start -= 2; if (pos[0].start > 1) pos[0].start -= 2;
else pos[0].start = 0; else pos[0].start = 0;
if (pos[0].end > 1) pos[0].end -= 2; if (pos[0].end > 1) pos[0].end -= 2;
@@ -218,7 +218,7 @@ var ByteRepr = {
byte_str = byte_str.slice(0, byte_str.length-1); byte_str = byte_str.slice(0, byte_str.length-1);
for (var i = 0; i < byte_str.length; i++) { for (var i = 0; i < byte_str.length; i++) {
output[i] = parseInt(byte_str[i]); output[i] = parseInt(byte_str[i], 10);
} }
return output; return output;
}, },
@@ -256,9 +256,9 @@ var ByteRepr = {
* @returns {byte_array} * @returns {byte_array}
*/ */
run_from_binary: function(input, args) { run_from_binary: function(input, args) {
if (args[0] != "None") { if (args[0] !== "None") {
var delim_regex = Utils.regex_rep[args[0] || "Space"]; var delim_regex = Utils.regex_rep[args[0] || "Space"];
input = input.replace(delim_regex, ''); input = input.replace(delim_regex, "");
} }
var output = []; var output = [];
@@ -325,7 +325,7 @@ var ByteRepr = {
run_to_hex_content: function(input, args) { run_to_hex_content: function(input, args) {
var convert = args[0]; var convert = args[0];
var spaces = args[1]; var spaces = args[1];
if (convert == "All chars") { if (convert === "All chars") {
var result = "|" + Utils.to_hex(input) + "|"; var result = "|" + Utils.to_hex(input) + "|";
if (!spaces) result = result.replace(/ /g, ""); if (!spaces) result = result.replace(/ /g, "");
return result; return result;
@@ -333,11 +333,11 @@ var ByteRepr = {
var output = "", var output = "",
in_hex = false, in_hex = false,
convert_spaces = convert == "Only special chars including spaces", convert_spaces = convert === "Only special chars including spaces",
b; b;
for (var i = 0; i < input.length; i++) { for (var i = 0; i < input.length; i++) {
b = input[i]; b = input[i];
if ((b == 32 && convert_spaces) || (b < 48 && b != 32) || (b > 57 && b < 65) || (b > 90 && b < 97) || b > 122) { if ((b === 32 && convert_spaces) || (b < 48 && b !== 32) || (b > 57 && b < 65) || (b > 90 && b < 97) || b > 122) {
if (!in_hex) { if (!in_hex) {
output += "|"; output += "|";
in_hex = true; in_hex = true;
@@ -366,7 +366,7 @@ var ByteRepr = {
run_from_hex_content: function(input, args) { run_from_hex_content: function(input, args) {
var regex = /\|([a-f\d ]{2,})\|/gi; var regex = /\|([a-f\d ]{2,})\|/gi;
var output = [], m, i = 0; var output = [], m, i = 0;
while (!!(m = regex.exec(input))) { while ((m = regex.exec(input))) {
// Add up to match // Add up to match
for (; i < m.index;) for (; i < m.index;)
output.push(Utils.ord(input[i++])); output.push(Utils.ord(input[i++]));
+2 -2
View File
@@ -28,14 +28,14 @@ var CharEnc = {
var input_format = args[0], var input_format = args[0],
output_format = args[1]; output_format = args[1];
if (input_format == "Windows-1251") { if (input_format === "Windows-1251") {
input = Utils.win1251_to_unicode(input); input = Utils.win1251_to_unicode(input);
input = CryptoJS.enc.Utf8.parse(input); input = CryptoJS.enc.Utf8.parse(input);
} else { } else {
input = Utils.format[input_format].parse(input); input = Utils.format[input_format].parse(input);
} }
if (output_format == "Windows-1251") { if (output_format === "Windows-1251") {
input = CryptoJS.enc.Utf8.stringify(input); input = CryptoJS.enc.Utf8.stringify(input);
return Utils.unicode_to_win1251(input); return Utils.unicode_to_win1251(input);
} else { } else {
+8 -8
View File
@@ -79,7 +79,7 @@ var Cipher = {
}); });
var result = ""; var result = "";
if (result_option == "show all") { if (result_option === "show all") {
result += "Key: " + encrypted.key.toString(Utils.format[output_format]); result += "Key: " + encrypted.key.toString(Utils.format[output_format]);
result += "\nIV: " + encrypted.iv.toString(Utils.format[output_format]); result += "\nIV: " + encrypted.iv.toString(Utils.format[output_format]);
if (encrypted.salt) result += "\nSalt: " + encrypted.salt.toString(Utils.format[output_format]); if (encrypted.salt) result += "\nSalt: " + encrypted.salt.toString(Utils.format[output_format]);
@@ -123,13 +123,13 @@ var Cipher = {
} }
var decrypted = algo.decrypt({ var decrypted = algo.decrypt({
ciphertext: ciphertext, ciphertext: ciphertext,
salt: salt.sigBytes > 0 ? salt : false salt: salt.sigBytes > 0 ? salt : false
}, key, { }, key, {
iv: iv.sigBytes > 0 ? iv : null, iv: iv.sigBytes > 0 ? iv : null,
mode: mode, mode: mode,
padding: padding padding: padding
}); });
var result; var result;
try { try {
+9 -9
View File
@@ -183,39 +183,39 @@ var Code = {
// Remove strings // Remove strings
var sstrings = /'([^'\\]|\\.)*'/g; var sstrings = /'([^'\\]|\\.)*'/g;
while (!!(m = sstrings.exec(code))) { while ((m = sstrings.exec(code))) {
code = preserve_token(code, m, t++); code = preserve_token(code, m, t++);
sstrings.lastIndex = m.index; sstrings.lastIndex = m.index;
} }
var dstrings = /"([^"\\]|\\.)*"/g; var dstrings = /"([^"\\]|\\.)*"/g;
while (!!(m = dstrings.exec(code))) { while ((m = dstrings.exec(code))) {
code = preserve_token(code, m, t++); code = preserve_token(code, m, t++);
dstrings.lastIndex = m.index; dstrings.lastIndex = m.index;
} }
// Remove comments // Remove comments
var scomments = /\/\/[^\n\r]*/g; var scomments = /\/\/[^\n\r]*/g;
while (!!(m = scomments.exec(code))) { while ((m = scomments.exec(code))) {
code = preserve_token(code, m, t++); code = preserve_token(code, m, t++);
scomments.lastIndex = m.index; scomments.lastIndex = m.index;
} }
var mcomments = /\/\*[\s\S]*?\*\//gm; var mcomments = /\/\*[\s\S]*?\*\//gm;
while (!!(m = mcomments.exec(code))) { while ((m = mcomments.exec(code))) {
code = preserve_token(code, m, t++); code = preserve_token(code, m, t++);
mcomments.lastIndex = m.index; mcomments.lastIndex = m.index;
} }
var hcomments = /(^|\n)#[^\n\r#]+/g; var hcomments = /(^|\n)#[^\n\r#]+/g;
while (!!(m = hcomments.exec(code))) { while ((m = hcomments.exec(code))) {
code = preserve_token(code, m, t++); code = preserve_token(code, m, t++);
hcomments.lastIndex = m.index; hcomments.lastIndex = m.index;
} }
// Remove regexes // Remove regexes
var regexes = /\/.*?[^\\]\/[gim]{0,3}/gi; var regexes = /\/.*?[^\\]\/[gim]{0,3}/gi;
while (!!(m = regexes.exec(code))) { while ((m = regexes.exec(code))) {
code = preserve_token(code, m, t++); code = preserve_token(code, m, t++);
regexes.lastIndex = m.index; regexes.lastIndex = m.index;
} }
@@ -251,7 +251,7 @@ var Code = {
case "\n": case "\n":
if (i+1 >= code.length) break; if (i+1 >= code.length) break;
if (code[i+1] == "}") level--; if (code[i+1] === "}") level--;
var indent = (level >= 0) ? Array(level*4+1).join(" ") : ""; var indent = (level >= 0) ? Array(level*4+1).join(" ") : "";
code = code.substring(0, i+1) + indent + code.substring(i+1); code = code.substring(0, i+1) + indent + code.substring(i+1);
@@ -288,8 +288,8 @@ var Code = {
// Replace preserved tokens // Replace preserved tokens
var ptokens = /###preserved_token(\d+)###/g; var ptokens = /###preserved_token(\d+)###/g;
while (!!(m = ptokens.exec(code))) { while ((m = ptokens.exec(code))) {
var ti = parseInt(m[1]); var ti = parseInt(m[1], 10);
code = code.substring(0, m.index) + preserved_tokens[ti] + code.substring(m.index + m[0].length); code = code.substring(0, m.index) + preserved_tokens[ti] + code.substring(m.index + m[0].length);
ptokens.lastIndex = m.index; ptokens.lastIndex = m.index;
} }
+8 -8
View File
@@ -108,12 +108,12 @@ var Compress = {
// ]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]... // ]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]....]...
// e.g. Input data of [8b, 1d, dc, 44] // e.g. Input data of [8b, 1d, dc, 44]
// Look for the first two square brackets: // Look for the first two square brackets:
if (result.length > 158 && result[0] == 93 && result[5] == 93) { if (result.length > 158 && result[0] === 93 && result[5] === 93) {
// If the first two square brackets are there, check that the others // If the first two square brackets are there, check that the others
// are also there. If they are, throw an error. If not, continue. // are also there. If they are, throw an error. If not, continue.
var valid = false; var valid = false;
for (var i = 0; i < 155; i += 5) { for (var i = 0; i < 155; i += 5) {
if (result[i] != 93) { if (result[i] !== 93) {
valid = true; valid = true;
} }
} }
@@ -172,12 +172,12 @@ var Compress = {
// Deal with character encoding issues // Deal with character encoding issues
input = Utils.str_to_byte_array(Utils.byte_array_to_utf8(input)); input = Utils.str_to_byte_array(Utils.byte_array_to_utf8(input));
var inflate = new Zlib.Inflate(input, { var inflate = new Zlib.Inflate(input, {
index: args[0], index: args[0],
bufferSize: args[1], bufferSize: args[1],
bufferType: Compress.ZLIB_BUFFER_TYPE_LOOKUP[args[2]], bufferType: Compress.ZLIB_BUFFER_TYPE_LOOKUP[args[2]],
resize: args[3], resize: args[3],
verify: args[4] verify: args[4]
}); });
return Array.prototype.slice.call(inflate.decompress()); return Array.prototype.slice.call(inflate.decompress());
}, },
+10 -10
View File
@@ -30,16 +30,16 @@ var DateTime = {
input = parseFloat(input); input = parseFloat(input);
if (units == "Seconds (s)") { if (units === "Seconds (s)") {
d = moment.unix(input); d = moment.unix(input);
return d.tz("UTC").format("ddd D MMMM YYYY HH:mm:ss") + " UTC"; return d.tz("UTC").format("ddd D MMMM YYYY HH:mm:ss") + " UTC";
} else if (units == "Milliseconds (ms)") { } else if (units === "Milliseconds (ms)") {
d = moment(input); d = moment(input);
return d.tz("UTC").format("ddd D MMMM YYYY HH:mm:ss.SSS") + " UTC"; return d.tz("UTC").format("ddd D MMMM YYYY HH:mm:ss.SSS") + " UTC";
} else if (units == "Microseconds (μs)") { } else if (units === "Microseconds (μs)") {
d = moment(input / 1000); d = moment(input / 1000);
return d.tz("UTC").format("ddd D MMMM YYYY HH:mm:ss.SSS") + " UTC"; return d.tz("UTC").format("ddd D MMMM YYYY HH:mm:ss.SSS") + " UTC";
} else if (units == "Nanoseconds (ns)") { } else if (units === "Nanoseconds (ns)") {
d = moment(input / 1000000); d = moment(input / 1000000);
return d.tz("UTC").format("ddd D MMMM YYYY HH:mm:ss.SSS") + " UTC"; return d.tz("UTC").format("ddd D MMMM YYYY HH:mm:ss.SSS") + " UTC";
} else { } else {
@@ -59,13 +59,13 @@ var DateTime = {
var units = args[0], var units = args[0],
d = moment(input); d = moment(input);
if (units == "Seconds (s)") { if (units === "Seconds (s)") {
return d.unix(); return d.unix();
} else if (units == "Milliseconds (ms)") { } else if (units === "Milliseconds (ms)") {
return d.valueOf(); return d.valueOf();
} else if (units == "Microseconds (μs)") { } else if (units === "Microseconds (μs)") {
return d.valueOf() * 1000; return d.valueOf() * 1000;
} else if (units == "Nanoseconds (ns)") { } else if (units === "Nanoseconds (ns)") {
return d.valueOf() * 1000000; return d.valueOf() * 1000000;
} else { } else {
throw "Unrecognised unit"; throw "Unrecognised unit";
@@ -139,7 +139,7 @@ var DateTime = {
try { try {
date = moment.tz(input, input_format, input_timezone); date = moment.tz(input, input_format, input_timezone);
if (!date || date.format() == "Invalid date") throw Error; if (!date || date.format() === "Invalid date") throw Error;
} catch(err) { } catch(err) {
return "Invalid format.\n\n" + DateTime.FORMAT_EXAMPLES; return "Invalid format.\n\n" + DateTime.FORMAT_EXAMPLES;
} }
@@ -163,7 +163,7 @@ var DateTime = {
try { try {
date = moment.tz(input, input_format, input_timezone); date = moment.tz(input, input_format, input_timezone);
if (!date || date.format() == "Invalid date") throw Error; if (!date || date.format() === "Invalid date") throw Error;
} catch(err) { } catch(err) {
return "Invalid format.\n\n" + DateTime.FORMAT_EXAMPLES; return "Invalid format.\n\n" + DateTime.FORMAT_EXAMPLES;
} }
+1 -1
View File
@@ -25,7 +25,7 @@ var Extract = {
total = 0, total = 0,
match; match;
while (!!(match = search_regex.exec(input))) { while ((match = search_regex.exec(input))) {
if (remove_regex && remove_regex.test(match[0])) if (remove_regex && remove_regex.test(match[0]))
continue; continue;
total++; total++;
+125 -125
View File
@@ -79,7 +79,7 @@ var FileType = {
if (num_common_found > 0) { if (num_common_found > 0) {
output += "\n\n" + num_common_found; output += "\n\n" + num_common_found;
output += num_common_found == 1 ? output += num_common_found === 1 ?
" file type was detected that has a common byte sequence. This is likely to be a false positive." : " file type was detected that has a common byte sequence. This is likely to be a false positive." :
" file types were detected that have common byte sequences. These are likely to be false positives."; " file types were detected that have common byte sequences. These are likely to be false positives.";
output += " Run this operation with the 'Ignore common byte sequences' option unchecked to see details."; output += " Run this operation with the 'Ignore common byte sequences' option unchecked to see details.";
@@ -107,326 +107,326 @@ var FileType = {
if (buf[0] === 0xFF && buf[1] === 0xD8 && buf[2] === 0xFF) { if (buf[0] === 0xFF && buf[1] === 0xD8 && buf[2] === 0xFF) {
return { return {
ext: 'jpg', ext: "jpg",
mime: 'image/jpeg' mime: "image/jpeg"
}; };
} }
if (buf[0] === 0x89 && buf[1] === 0x50 && buf[2] === 0x4E && buf[3] === 0x47) { if (buf[0] === 0x89 && buf[1] === 0x50 && buf[2] === 0x4E && buf[3] === 0x47) {
return { return {
ext: 'png', ext: "png",
mime: 'image/png' mime: "image/png"
}; };
} }
if (buf[0] === 0x47 && buf[1] === 0x49 && buf[2] === 0x46) { if (buf[0] === 0x47 && buf[1] === 0x49 && buf[2] === 0x46) {
return { return {
ext: 'gif', ext: "gif",
mime: 'image/gif' mime: "image/gif"
}; };
} }
if (buf[8] === 0x57 && buf[9] === 0x45 && buf[10] === 0x42 && buf[11] === 0x50) { if (buf[8] === 0x57 && buf[9] === 0x45 && buf[10] === 0x42 && buf[11] === 0x50) {
return { return {
ext: 'webp', ext: "webp",
mime: 'image/webp' mime: "image/webp"
}; };
} }
// needs to be before `tif` check // needs to be before `tif` check
if (((buf[0] === 0x49 && buf[1] === 0x49 && buf[2] === 0x2A && buf[3] === 0x0) || (buf[0] === 0x4D && buf[1] === 0x4D && buf[2] === 0x0 && buf[3] === 0x2A)) && buf[8] === 0x43 && buf[9] === 0x52) { if (((buf[0] === 0x49 && buf[1] === 0x49 && buf[2] === 0x2A && buf[3] === 0x0) || (buf[0] === 0x4D && buf[1] === 0x4D && buf[2] === 0x0 && buf[3] === 0x2A)) && buf[8] === 0x43 && buf[9] === 0x52) {
return { return {
ext: 'cr2', ext: "cr2",
mime: 'image/x-canon-cr2' mime: "image/x-canon-cr2"
}; };
} }
if ((buf[0] === 0x49 && buf[1] === 0x49 && buf[2] === 0x2A && buf[3] === 0x0) || (buf[0] === 0x4D && buf[1] === 0x4D && buf[2] === 0x0 && buf[3] === 0x2A)) { if ((buf[0] === 0x49 && buf[1] === 0x49 && buf[2] === 0x2A && buf[3] === 0x0) || (buf[0] === 0x4D && buf[1] === 0x4D && buf[2] === 0x0 && buf[3] === 0x2A)) {
return { return {
ext: 'tif', ext: "tif",
mime: 'image/tiff' mime: "image/tiff"
}; };
} }
if (buf[0] === 0x42 && buf[1] === 0x4D) { if (buf[0] === 0x42 && buf[1] === 0x4D) {
return { return {
ext: 'bmp', ext: "bmp",
mime: 'image/bmp' mime: "image/bmp"
}; };
} }
if (buf[0] === 0x49 && buf[1] === 0x49 && buf[2] === 0xBC) { if (buf[0] === 0x49 && buf[1] === 0x49 && buf[2] === 0xBC) {
return { return {
ext: 'jxr', ext: "jxr",
mime: 'image/vnd.ms-photo' mime: "image/vnd.ms-photo"
}; };
} }
if (buf[0] === 0x38 && buf[1] === 0x42 && buf[2] === 0x50 && buf[3] === 0x53) { if (buf[0] === 0x38 && buf[1] === 0x42 && buf[2] === 0x50 && buf[3] === 0x53) {
return { return {
ext: 'psd', ext: "psd",
mime: 'image/vnd.adobe.photoshop' mime: "image/vnd.adobe.photoshop"
}; };
} }
// needs to be before `zip` check // needs to be before `zip` check
if (buf[0] === 0x50 && buf[1] === 0x4B && buf[2] === 0x3 && buf[3] === 0x4 && buf[30] === 0x6D && buf[31] === 0x69 && buf[32] === 0x6D && buf[33] === 0x65 && buf[34] === 0x74 && buf[35] === 0x79 && buf[36] === 0x70 && buf[37] === 0x65 && buf[38] === 0x61 && buf[39] === 0x70 && buf[40] === 0x70 && buf[41] === 0x6C && buf[42] === 0x69 && buf[43] === 0x63 && buf[44] === 0x61 && buf[45] === 0x74 && buf[46] === 0x69 && buf[47] === 0x6F && buf[48] === 0x6E && buf[49] === 0x2F && buf[50] === 0x65 && buf[51] === 0x70 && buf[52] === 0x75 && buf[53] === 0x62 && buf[54] === 0x2B && buf[55] === 0x7A && buf[56] === 0x69 && buf[57] === 0x70) { if (buf[0] === 0x50 && buf[1] === 0x4B && buf[2] === 0x3 && buf[3] === 0x4 && buf[30] === 0x6D && buf[31] === 0x69 && buf[32] === 0x6D && buf[33] === 0x65 && buf[34] === 0x74 && buf[35] === 0x79 && buf[36] === 0x70 && buf[37] === 0x65 && buf[38] === 0x61 && buf[39] === 0x70 && buf[40] === 0x70 && buf[41] === 0x6C && buf[42] === 0x69 && buf[43] === 0x63 && buf[44] === 0x61 && buf[45] === 0x74 && buf[46] === 0x69 && buf[47] === 0x6F && buf[48] === 0x6E && buf[49] === 0x2F && buf[50] === 0x65 && buf[51] === 0x70 && buf[52] === 0x75 && buf[53] === 0x62 && buf[54] === 0x2B && buf[55] === 0x7A && buf[56] === 0x69 && buf[57] === 0x70) {
return { return {
ext: 'epub', ext: "epub",
mime: 'application/epub+zip' mime: "application/epub+zip"
}; };
} }
if (buf[0] === 0x50 && buf[1] === 0x4B && (buf[2] === 0x3 || buf[2] === 0x5 || buf[2] === 0x7) && (buf[3] === 0x4 || buf[3] === 0x6 || buf[3] === 0x8)) { if (buf[0] === 0x50 && buf[1] === 0x4B && (buf[2] === 0x3 || buf[2] === 0x5 || buf[2] === 0x7) && (buf[3] === 0x4 || buf[3] === 0x6 || buf[3] === 0x8)) {
return { return {
ext: 'zip', ext: "zip",
mime: 'application/zip' mime: "application/zip"
}; };
} }
if (buf[257] === 0x75 && buf[258] === 0x73 && buf[259] === 0x74 && buf[260] === 0x61 && buf[261] === 0x72) { if (buf[257] === 0x75 && buf[258] === 0x73 && buf[259] === 0x74 && buf[260] === 0x61 && buf[261] === 0x72) {
return { return {
ext: 'tar', ext: "tar",
mime: 'application/x-tar' mime: "application/x-tar"
}; };
} }
if (buf[0] === 0x52 && buf[1] === 0x61 && buf[2] === 0x72 && buf[3] === 0x21 && buf[4] === 0x1A && buf[5] === 0x7 && (buf[6] === 0x0 || buf[6] === 0x1)) { if (buf[0] === 0x52 && buf[1] === 0x61 && buf[2] === 0x72 && buf[3] === 0x21 && buf[4] === 0x1A && buf[5] === 0x7 && (buf[6] === 0x0 || buf[6] === 0x1)) {
return { return {
ext: 'rar', ext: "rar",
mime: 'application/x-rar-compressed' mime: "application/x-rar-compressed"
}; };
} }
if (buf[0] === 0x1F && buf[1] === 0x8B && buf[2] === 0x8) { if (buf[0] === 0x1F && buf[1] === 0x8B && buf[2] === 0x8) {
return { return {
ext: 'gz', ext: "gz",
mime: 'application/gzip' mime: "application/gzip"
}; };
} }
if (buf[0] === 0x42 && buf[1] === 0x5A && buf[2] === 0x68) { if (buf[0] === 0x42 && buf[1] === 0x5A && buf[2] === 0x68) {
return { return {
ext: 'bz2', ext: "bz2",
mime: 'application/x-bzip2' mime: "application/x-bzip2"
}; };
} }
if (buf[0] === 0x37 && buf[1] === 0x7A && buf[2] === 0xBC && buf[3] === 0xAF && buf[4] === 0x27 && buf[5] === 0x1C) { if (buf[0] === 0x37 && buf[1] === 0x7A && buf[2] === 0xBC && buf[3] === 0xAF && buf[4] === 0x27 && buf[5] === 0x1C) {
return { return {
ext: '7z', ext: "7z",
mime: 'application/x-7z-compressed' mime: "application/x-7z-compressed"
}; };
} }
if (buf[0] === 0x78 && buf[1] === 0x01) { if (buf[0] === 0x78 && buf[1] === 0x01) {
return { return {
ext: 'dmg', ext: "dmg",
mime: 'application/x-apple-diskimage' mime: "application/x-apple-diskimage"
}; };
} }
if ((buf[0] === 0x0 && buf[1] === 0x0 && buf[2] === 0x0 && (buf[3] === 0x18 || buf[3] === 0x20) && buf[4] === 0x66 && buf[5] === 0x74 && buf[6] === 0x79 && buf[7] === 0x70) || (buf[0] === 0x33 && buf[1] === 0x67 && buf[2] === 0x70 && buf[3] === 0x35) || (buf[0] === 0x0 && buf[1] === 0x0 && buf[2] === 0x0 && buf[3] === 0x1C && buf[4] === 0x66 && buf[5] === 0x74 && buf[6] === 0x79 && buf[7] === 0x70 && buf[8] === 0x6D && buf[9] === 0x70 && buf[10] === 0x34 && buf[11] === 0x32 && buf[16] === 0x6D && buf[17] === 0x70 && buf[18] === 0x34 && buf[19] === 0x31 && buf[20] === 0x6D && buf[21] === 0x70 && buf[22] === 0x34 && buf[23] === 0x32 && buf[24] === 0x69 && buf[25] === 0x73 && buf[26] === 0x6F && buf[27] === 0x6D)) { if ((buf[0] === 0x0 && buf[1] === 0x0 && buf[2] === 0x0 && (buf[3] === 0x18 || buf[3] === 0x20) && buf[4] === 0x66 && buf[5] === 0x74 && buf[6] === 0x79 && buf[7] === 0x70) || (buf[0] === 0x33 && buf[1] === 0x67 && buf[2] === 0x70 && buf[3] === 0x35) || (buf[0] === 0x0 && buf[1] === 0x0 && buf[2] === 0x0 && buf[3] === 0x1C && buf[4] === 0x66 && buf[5] === 0x74 && buf[6] === 0x79 && buf[7] === 0x70 && buf[8] === 0x6D && buf[9] === 0x70 && buf[10] === 0x34 && buf[11] === 0x32 && buf[16] === 0x6D && buf[17] === 0x70 && buf[18] === 0x34 && buf[19] === 0x31 && buf[20] === 0x6D && buf[21] === 0x70 && buf[22] === 0x34 && buf[23] === 0x32 && buf[24] === 0x69 && buf[25] === 0x73 && buf[26] === 0x6F && buf[27] === 0x6D)) {
return { return {
ext: 'mp4', ext: "mp4",
mime: 'video/mp4' mime: "video/mp4"
}; };
} }
if ((buf[0] === 0x0 && buf[1] === 0x0 && buf[2] === 0x0 && buf[3] === 0x1C && buf[4] === 0x66 && buf[5] === 0x74 && buf[6] === 0x79 && buf[7] === 0x70 && buf[8] === 0x4D && buf[9] === 0x34 && buf[10] === 0x56)) { if ((buf[0] === 0x0 && buf[1] === 0x0 && buf[2] === 0x0 && buf[3] === 0x1C && buf[4] === 0x66 && buf[5] === 0x74 && buf[6] === 0x79 && buf[7] === 0x70 && buf[8] === 0x4D && buf[9] === 0x34 && buf[10] === 0x56)) {
return { return {
ext: 'm4v', ext: "m4v",
mime: 'video/x-m4v' mime: "video/x-m4v"
}; };
} }
if (buf[0] === 0x4D && buf[1] === 0x54 && buf[2] === 0x68 && buf[3] === 0x64) { if (buf[0] === 0x4D && buf[1] === 0x54 && buf[2] === 0x68 && buf[3] === 0x64) {
return { return {
ext: 'mid', ext: "mid",
mime: 'audio/midi' mime: "audio/midi"
}; };
} }
// needs to be before the `webm` check // needs to be before the `webm` check
if (buf[31] === 0x6D && buf[32] === 0x61 && buf[33] === 0x74 && buf[34] === 0x72 && buf[35] === 0x6f && buf[36] === 0x73 && buf[37] === 0x6B && buf[38] === 0x61) { if (buf[31] === 0x6D && buf[32] === 0x61 && buf[33] === 0x74 && buf[34] === 0x72 && buf[35] === 0x6f && buf[36] === 0x73 && buf[37] === 0x6B && buf[38] === 0x61) {
return { return {
ext: 'mkv', ext: "mkv",
mime: 'video/x-matroska' mime: "video/x-matroska"
}; };
} }
if (buf[0] === 0x1A && buf[1] === 0x45 && buf[2] === 0xDF && buf[3] === 0xA3) { if (buf[0] === 0x1A && buf[1] === 0x45 && buf[2] === 0xDF && buf[3] === 0xA3) {
return { return {
ext: 'webm', ext: "webm",
mime: 'video/webm' mime: "video/webm"
}; };
} }
if (buf[0] === 0x0 && buf[1] === 0x0 && buf[2] === 0x0 && buf[3] === 0x14 && buf[4] === 0x66 && buf[5] === 0x74 && buf[6] === 0x79 && buf[7] === 0x70) { if (buf[0] === 0x0 && buf[1] === 0x0 && buf[2] === 0x0 && buf[3] === 0x14 && buf[4] === 0x66 && buf[5] === 0x74 && buf[6] === 0x79 && buf[7] === 0x70) {
return { return {
ext: 'mov', ext: "mov",
mime: 'video/quicktime' mime: "video/quicktime"
}; };
} }
if (buf[0] === 0x52 && buf[1] === 0x49 && buf[2] === 0x46 && buf[3] === 0x46 && buf[8] === 0x41 && buf[9] === 0x56 && buf[10] === 0x49) { if (buf[0] === 0x52 && buf[1] === 0x49 && buf[2] === 0x46 && buf[3] === 0x46 && buf[8] === 0x41 && buf[9] === 0x56 && buf[10] === 0x49) {
return { return {
ext: 'avi', ext: "avi",
mime: 'video/x-msvideo' mime: "video/x-msvideo"
}; };
} }
if (buf[0] === 0x30 && buf[1] === 0x26 && buf[2] === 0xB2 && buf[3] === 0x75 && buf[4] === 0x8E && buf[5] === 0x66 && buf[6] === 0xCF && buf[7] === 0x11 && buf[8] === 0xA6 && buf[9] === 0xD9) { if (buf[0] === 0x30 && buf[1] === 0x26 && buf[2] === 0xB2 && buf[3] === 0x75 && buf[4] === 0x8E && buf[5] === 0x66 && buf[6] === 0xCF && buf[7] === 0x11 && buf[8] === 0xA6 && buf[9] === 0xD9) {
return { return {
ext: 'wmv', ext: "wmv",
mime: 'video/x-ms-wmv' mime: "video/x-ms-wmv"
}; };
} }
if (buf[0] === 0x0 && buf[1] === 0x0 && buf[2] === 0x1 && buf[3].toString(16)[0] === 'b') { if (buf[0] === 0x0 && buf[1] === 0x0 && buf[2] === 0x1 && buf[3].toString(16)[0] === "b") {
return { return {
ext: 'mpg', ext: "mpg",
mime: 'video/mpeg' mime: "video/mpeg"
}; };
} }
if ((buf[0] === 0x49 && buf[1] === 0x44 && buf[2] === 0x33) || (buf[0] === 0xFF && buf[1] === 0xfb)) { if ((buf[0] === 0x49 && buf[1] === 0x44 && buf[2] === 0x33) || (buf[0] === 0xFF && buf[1] === 0xfb)) {
return { return {
ext: 'mp3', ext: "mp3",
mime: 'audio/mpeg' mime: "audio/mpeg"
}; };
} }
if ((buf[4] === 0x66 && buf[5] === 0x74 && buf[6] === 0x79 && buf[7] === 0x70 && buf[8] === 0x4D && buf[9] === 0x34 && buf[10] === 0x41) || (buf[0] === 0x4D && buf[1] === 0x34 && buf[2] === 0x41 && buf[3] === 0x20)) { if ((buf[4] === 0x66 && buf[5] === 0x74 && buf[6] === 0x79 && buf[7] === 0x70 && buf[8] === 0x4D && buf[9] === 0x34 && buf[10] === 0x41) || (buf[0] === 0x4D && buf[1] === 0x34 && buf[2] === 0x41 && buf[3] === 0x20)) {
return { return {
ext: 'm4a', ext: "m4a",
mime: 'audio/m4a' mime: "audio/m4a"
}; };
} }
if (buf[0] === 0x4F && buf[1] === 0x67 && buf[2] === 0x67 && buf[3] === 0x53) { if (buf[0] === 0x4F && buf[1] === 0x67 && buf[2] === 0x67 && buf[3] === 0x53) {
return { return {
ext: 'ogg', ext: "ogg",
mime: 'audio/ogg' mime: "audio/ogg"
}; };
} }
if (buf[0] === 0x66 && buf[1] === 0x4C && buf[2] === 0x61 && buf[3] === 0x43) { if (buf[0] === 0x66 && buf[1] === 0x4C && buf[2] === 0x61 && buf[3] === 0x43) {
return { return {
ext: 'flac', ext: "flac",
mime: 'audio/x-flac' mime: "audio/x-flac"
}; };
} }
if (buf[0] === 0x52 && buf[1] === 0x49 && buf[2] === 0x46 && buf[3] === 0x46 && buf[8] === 0x57 && buf[9] === 0x41 && buf[10] === 0x56 && buf[11] === 0x45) { if (buf[0] === 0x52 && buf[1] === 0x49 && buf[2] === 0x46 && buf[3] === 0x46 && buf[8] === 0x57 && buf[9] === 0x41 && buf[10] === 0x56 && buf[11] === 0x45) {
return { return {
ext: 'wav', ext: "wav",
mime: 'audio/x-wav' mime: "audio/x-wav"
}; };
} }
if (buf[0] === 0x23 && buf[1] === 0x21 && buf[2] === 0x41 && buf[3] === 0x4D && buf[4] === 0x52 && buf[5] === 0x0A) { if (buf[0] === 0x23 && buf[1] === 0x21 && buf[2] === 0x41 && buf[3] === 0x4D && buf[4] === 0x52 && buf[5] === 0x0A) {
return { return {
ext: 'amr', ext: "amr",
mime: 'audio/amr' mime: "audio/amr"
}; };
} }
if (buf[0] === 0x25 && buf[1] === 0x50 && buf[2] === 0x44 && buf[3] === 0x46) { if (buf[0] === 0x25 && buf[1] === 0x50 && buf[2] === 0x44 && buf[3] === 0x46) {
return { return {
ext: 'pdf', ext: "pdf",
mime: 'application/pdf' mime: "application/pdf"
}; };
} }
if (buf[0] === 0x4D && buf[1] === 0x5A) { if (buf[0] === 0x4D && buf[1] === 0x5A) {
return { return {
ext: 'exe', ext: "exe",
mime: 'application/x-msdownload' mime: "application/x-msdownload"
}; };
} }
if ((buf[0] === 0x43 || buf[0] === 0x46) && buf[1] === 0x57 && buf[2] === 0x53) { if ((buf[0] === 0x43 || buf[0] === 0x46) && buf[1] === 0x57 && buf[2] === 0x53) {
return { return {
ext: 'swf', ext: "swf",
mime: 'application/x-shockwave-flash' mime: "application/x-shockwave-flash"
}; };
} }
if (buf[0] === 0x7B && buf[1] === 0x5C && buf[2] === 0x72 && buf[3] === 0x74 && buf[4] === 0x66) { if (buf[0] === 0x7B && buf[1] === 0x5C && buf[2] === 0x72 && buf[3] === 0x74 && buf[4] === 0x66) {
return { return {
ext: 'rtf', ext: "rtf",
mime: 'application/rtf' mime: "application/rtf"
}; };
} }
if (buf[0] === 0x77 && buf[1] === 0x4F && buf[2] === 0x46 && buf[3] === 0x46 && buf[4] === 0x00 && buf[5] === 0x01 && buf[6] === 0x00 && buf[7] === 0x00) { if (buf[0] === 0x77 && buf[1] === 0x4F && buf[2] === 0x46 && buf[3] === 0x46 && buf[4] === 0x00 && buf[5] === 0x01 && buf[6] === 0x00 && buf[7] === 0x00) {
return { return {
ext: 'woff', ext: "woff",
mime: 'application/font-woff' mime: "application/font-woff"
}; };
} }
if (buf[0] === 0x77 && buf[1] === 0x4F && buf[2] === 0x46 && buf[3] === 0x32 && buf[4] === 0x00 && buf[5] === 0x01 && buf[6] === 0x00 && buf[7] === 0x00) { if (buf[0] === 0x77 && buf[1] === 0x4F && buf[2] === 0x46 && buf[3] === 0x32 && buf[4] === 0x00 && buf[5] === 0x01 && buf[6] === 0x00 && buf[7] === 0x00) {
return { return {
ext: 'woff2', ext: "woff2",
mime: 'application/font-woff' mime: "application/font-woff"
}; };
} }
if (buf[34] === 0x4C && buf[35] === 0x50 && ((buf[8] === 0x02 && buf[9] === 0x00 && buf[10] === 0x01) || (buf[8] === 0x01 && buf[9] === 0x00 && buf[10] === 0x00) || (buf[8] === 0x02 && buf[9] === 0x00 && buf[10] === 0x02))) { if (buf[34] === 0x4C && buf[35] === 0x50 && ((buf[8] === 0x02 && buf[9] === 0x00 && buf[10] === 0x01) || (buf[8] === 0x01 && buf[9] === 0x00 && buf[10] === 0x00) || (buf[8] === 0x02 && buf[9] === 0x00 && buf[10] === 0x02))) {
return { return {
ext: 'eot', ext: "eot",
mime: 'application/octet-stream' mime: "application/octet-stream"
}; };
} }
if (buf[0] === 0x00 && buf[1] === 0x01 && buf[2] === 0x00 && buf[3] === 0x00 && buf[4] === 0x00) { if (buf[0] === 0x00 && buf[1] === 0x01 && buf[2] === 0x00 && buf[3] === 0x00 && buf[4] === 0x00) {
return { return {
ext: 'ttf', ext: "ttf",
mime: 'application/font-sfnt' mime: "application/font-sfnt"
}; };
} }
if (buf[0] === 0x4F && buf[1] === 0x54 && buf[2] === 0x54 && buf[3] === 0x4F && buf[4] === 0x00) { if (buf[0] === 0x4F && buf[1] === 0x54 && buf[2] === 0x54 && buf[3] === 0x4F && buf[4] === 0x00) {
return { return {
ext: 'otf', ext: "otf",
mime: 'application/font-sfnt' mime: "application/font-sfnt"
}; };
} }
if (buf[0] === 0x00 && buf[1] === 0x00 && buf[2] === 0x01 && buf[3] === 0x00) { if (buf[0] === 0x00 && buf[1] === 0x00 && buf[2] === 0x01 && buf[3] === 0x00) {
return { return {
ext: 'ico', ext: "ico",
mime: 'image/x-icon' mime: "image/x-icon"
}; };
} }
if (buf[0] === 0x46 && buf[1] === 0x4C && buf[2] === 0x56 && buf[3] === 0x01) { if (buf[0] === 0x46 && buf[1] === 0x4C && buf[2] === 0x56 && buf[3] === 0x01) {
return { return {
ext: 'flv', ext: "flv",
mime: 'video/x-flv' mime: "video/x-flv"
}; };
} }
if (buf[0] === 0x25 && buf[1] === 0x21) { if (buf[0] === 0x25 && buf[1] === 0x21) {
return { return {
ext: 'ps', ext: "ps",
mime: 'application/postscript' mime: "application/postscript"
}; };
} }
if (buf[0] === 0xFD && buf[1] === 0x37 && buf[2] === 0x7A && buf[3] === 0x58 && buf[4] === 0x5A && buf[5] === 0x00) { if (buf[0] === 0xFD && buf[1] === 0x37 && buf[2] === 0x7A && buf[3] === 0x58 && buf[4] === 0x5A && buf[5] === 0x00) {
return { return {
ext: 'xz', ext: "xz",
mime: 'application/x-xz' mime: "application/x-xz"
}; };
} }
if (buf[0] === 0x53 && buf[1] === 0x51 && buf[2] === 0x4C && buf[3] === 0x69) { if (buf[0] === 0x53 && buf[1] === 0x51 && buf[2] === 0x4C && buf[3] === 0x69) {
return { return {
ext: 'sqlite', ext: "sqlite",
mime: 'application/x-sqlite3' mime: "application/x-sqlite3"
}; };
} }
@@ -434,48 +434,48 @@ var FileType = {
// ################################################################## // // ################################################################## //
if ((buf[0] === 0x1F && buf[1] === 0x9D) || (buf[0] === 0x1F && buf[1] === 0xA0)) { if ((buf[0] === 0x1F && buf[1] === 0x9D) || (buf[0] === 0x1F && buf[1] === 0xA0)) {
return { return {
ext: 'z, tar.z', ext: "z, tar.z",
mime: 'application/x-gtar' mime: "application/x-gtar"
}; };
} }
if (buf[0] === 0x7F && buf[1] === 0x45 && buf[2] === 0x4C && buf[3] === 0x46) { if (buf[0] === 0x7F && buf[1] === 0x45 && buf[2] === 0x4C && buf[3] === 0x46) {
return { return {
ext: 'none, axf, bin, elf, o, prx, puff, so', ext: "none, axf, bin, elf, o, prx, puff, so",
mime: 'application/x-executable', mime: "application/x-executable",
desc: 'Executable and Linkable Format file. No standard file extension.' desc: "Executable and Linkable Format file. No standard file extension."
}; };
} }
if (buf[0] === 0xCA && buf[1] === 0xFE && buf[2] === 0xBA && buf[3] === 0xBE) { if (buf[0] === 0xCA && buf[1] === 0xFE && buf[2] === 0xBA && buf[3] === 0xBE) {
return { return {
ext: 'class', ext: "class",
mime: 'application/java-vm' mime: "application/java-vm"
}; };
} }
if (buf[0] === 0xEF && buf[1] === 0xBB && buf[2] === 0xBF) { if (buf[0] === 0xEF && buf[1] === 0xBB && buf[2] === 0xBF) {
return { return {
ext: 'txt', ext: "txt",
mime: 'text/plain', mime: "text/plain",
desc: 'UTF-8 encoded Unicode byte order mark detected, commonly but not exclusively seen in text files.' desc: "UTF-8 encoded Unicode byte order mark detected, commonly but not exclusively seen in text files."
}; };
} }
// Must be before Little-endian UTF-16 BOM // Must be before Little-endian UTF-16 BOM
if (buf[0] === 0xFF && buf[1] === 0xFE && buf[2] === 0x00 && buf[3] === 0x00) { if (buf[0] === 0xFF && buf[1] === 0xFE && buf[2] === 0x00 && buf[3] === 0x00) {
return { return {
ext: '', ext: "",
mime: '', mime: "",
desc: 'Little-endian UTF-32 encoded Unicode byte order mark detected.' desc: "Little-endian UTF-32 encoded Unicode byte order mark detected."
}; };
} }
if (buf[0] === 0xFF && buf[1] === 0xFE) { if (buf[0] === 0xFF && buf[1] === 0xFE) {
return { return {
ext: '', ext: "",
mime: '', mime: "",
desc: 'Little-endian UTF-16 encoded Unicode byte order mark detected.' desc: "Little-endian UTF-16 encoded Unicode byte order mark detected."
}; };
} }
@@ -483,40 +483,40 @@ var FileType = {
(buf[0x8801] === 0x43 && buf[0x8802] === 0x44 && buf[0x8803] === 0x30 && buf[0x8804] === 0x30 && buf[0x8805] === 0x31) || (buf[0x8801] === 0x43 && buf[0x8802] === 0x44 && buf[0x8803] === 0x30 && buf[0x8804] === 0x30 && buf[0x8805] === 0x31) ||
(buf[0x9001] === 0x43 && buf[0x9002] === 0x44 && buf[0x9003] === 0x30 && buf[0x9004] === 0x30 && buf[0x9005] === 0x31)) { (buf[0x9001] === 0x43 && buf[0x9002] === 0x44 && buf[0x9003] === 0x30 && buf[0x9004] === 0x30 && buf[0x9005] === 0x31)) {
return { return {
ext: 'iso', ext: "iso",
mime: 'application/octet-stream', mime: "application/octet-stream",
desc: 'ISO 9660 CD/DVD image file' desc: "ISO 9660 CD/DVD image file"
}; };
} }
if (buf[0] === 0xD0 && buf[1] === 0xCF && buf[2] === 0x11 && buf[3] === 0xE0 && buf[4] === 0xA1 && buf[5] === 0xB1 && buf[6] === 0x1A && buf[7] === 0xE1) { if (buf[0] === 0xD0 && buf[1] === 0xCF && buf[2] === 0x11 && buf[3] === 0xE0 && buf[4] === 0xA1 && buf[5] === 0xB1 && buf[6] === 0x1A && buf[7] === 0xE1) {
return { return {
ext: 'doc, xls, ppt', ext: "doc, xls, ppt",
mime: 'application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint', mime: "application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint",
desc: 'Microsoft Office documents' desc: "Microsoft Office documents"
}; };
} }
if (buf[0] === 0x64 && buf[1] === 0x65 && buf[2] === 0x78 && buf[3] === 0x0A && buf[4] === 0x30 && buf[5] === 0x33 && buf[6] === 0x35 && buf[7] === 0x00) { if (buf[0] === 0x64 && buf[1] === 0x65 && buf[2] === 0x78 && buf[3] === 0x0A && buf[4] === 0x30 && buf[5] === 0x33 && buf[6] === 0x35 && buf[7] === 0x00) {
return { return {
ext: 'dex', ext: "dex",
mime: 'application/octet-stream', mime: "application/octet-stream",
desc: 'Dalvik Executable (Android)' desc: "Dalvik Executable (Android)"
}; };
} }
if (buf[0] === 0x4B && buf[1] === 0x44 && buf[2] === 0x4D) { if (buf[0] === 0x4B && buf[1] === 0x44 && buf[2] === 0x4D) {
return { return {
ext: 'vmdk', ext: "vmdk",
mime: 'application/vmdk, application/x-virtualbox-vmdk' mime: "application/vmdk, application/x-virtualbox-vmdk"
}; };
} }
if (buf[0] === 0x43 && buf[1] === 0x72 && buf[2] === 0x32 && buf[3] == 0x34) { if (buf[0] === 0x43 && buf[1] === 0x72 && buf[2] === 0x32 && buf[3] === 0x34) {
return { return {
ext: 'crx', ext: "crx",
mime: 'application/crx', mime: "application/crx",
desc: 'Google Chrome extension or packaged app' desc: "Google Chrome extension or packaged app"
}; };
} }
+12 -12
View File
@@ -29,8 +29,8 @@ var HTML = {
*/ */
run_to_entity: function(input, args) { run_to_entity: function(input, args) {
var convert_all = args[0], var convert_all = args[0],
numeric = args[1] == "Numeric entities", numeric = args[1] === "Numeric entities",
hexa = args[1] == "Hex entities"; hexa = args[1] === "Hex entities";
var charcodes = Utils.str_to_charcode(input); var charcodes = Utils.str_to_charcode(input);
var output = ""; var output = "";
@@ -79,7 +79,7 @@ var HTML = {
m, m,
i = 0; i = 0;
while (!!(m = regex.exec(input))) { while ((m = regex.exec(input))) {
// Add up to match // Add up to match
for (; i < m.index;) for (; i < m.index;)
output += input[i++]; output += input[i++];
@@ -88,13 +88,13 @@ var HTML = {
var bite = HTML._entity_to_byte[m[1]]; var bite = HTML._entity_to_byte[m[1]];
if (bite) { if (bite) {
output += Utils.chr(bite); output += Utils.chr(bite);
} else if (!bite && m[1][0] == "#" && m[1].length > 1 && /^#\d{1,5}$/.test(m[1])) { } else if (!bite && m[1][0] === "#" && m[1].length > 1 && /^#\d{1,5}$/.test(m[1])) {
// Numeric entity (e.g. &#10;) // Numeric entity (e.g. &#10;)
var num = m[1].slice(1,m[1].length); var num = m[1].slice(1, m[1].length);
output += Utils.chr(parseInt(num, 10)); output += Utils.chr(parseInt(num, 10));
} else if (!bite && m[1][0] == "#" && m[1].length > 3 && /^#x[\dA-F]{2,8}$/i.test(m[1])) { } else if (!bite && m[1][0] === "#" && m[1].length > 3 && /^#x[\dA-F]{2,8}$/i.test(m[1])) {
// Hex entity (e.g. &#x3A;) // Hex entity (e.g. &#x3A;)
var hex = m[1].slice(2,m[1].length); var hex = m[1].slice(2, m[1].length);
output += Utils.chr(parseInt(hex, 16)); output += Utils.chr(parseInt(hex, 16));
} else { } else {
// Not a valid entity, print as normal // Not a valid entity, print as normal
@@ -161,18 +161,18 @@ var HTML = {
r = 0, g = 0, b = 0, a = 1; r = 0, g = 0, b = 0, a = 1;
// Read in the input // Read in the input
if (!!(m = input.match(/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/i))) { if ((m = input.match(/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/i))) {
// Hex - #d9edf7 // Hex - #d9edf7
r = parseInt(m[1], 16); r = parseInt(m[1], 16);
g = parseInt(m[2], 16); g = parseInt(m[2], 16);
b = parseInt(m[3], 16); b = parseInt(m[3], 16);
} else if (!!(m = input.match(/rgba?\((\d{1,3}(?:\.\d+)?),\s?(\d{1,3}(?:\.\d+)?),\s?(\d{1,3}(?:\.\d+)?)(?:,\s?(\d(?:\.\d+)?))?\)/i))) { } else if ((m = input.match(/rgba?\((\d{1,3}(?:\.\d+)?),\s?(\d{1,3}(?:\.\d+)?),\s?(\d{1,3}(?:\.\d+)?)(?:,\s?(\d(?:\.\d+)?))?\)/i))) {
// RGB or RGBA - rgb(217,237,247) or rgba(217,237,247,1) // RGB or RGBA - rgb(217,237,247) or rgba(217,237,247,1)
r = parseFloat(m[1]); r = parseFloat(m[1]);
g = parseFloat(m[2]); g = parseFloat(m[2]);
b = parseFloat(m[3]); b = parseFloat(m[3]);
a = m[4] ? parseFloat(m[4]) : 1; a = m[4] ? parseFloat(m[4]) : 1;
} else if (!!(m = input.match(/hsla?\((\d{1,3}(?:\.\d+)?),\s?(\d{1,3}(?:\.\d+)?)%,\s?(\d{1,3}(?:\.\d+)?)%(?:,\s?(\d(?:\.\d+)?))?\)/i))) { } else if ((m = input.match(/hsla?\((\d{1,3}(?:\.\d+)?),\s?(\d{1,3}(?:\.\d+)?)%,\s?(\d{1,3}(?:\.\d+)?)%(?:,\s?(\d(?:\.\d+)?))?\)/i))) {
// HSL or HSLA - hsl(200, 65%, 91%) or hsla(200, 65%, 91%, 1) // HSL or HSLA - hsl(200, 65%, 91%) or hsla(200, 65%, 91%, 1)
var h_ = parseFloat(m[1]) / 360, var h_ = parseFloat(m[1]) / 360,
s_ = parseFloat(m[2]) / 100, s_ = parseFloat(m[2]) / 100,
@@ -183,7 +183,7 @@ var HTML = {
g = rgb_[1]; g = rgb_[1];
b = rgb_[2]; b = rgb_[2];
a = m[4] ? parseFloat(m[4]) : 1; a = m[4] ? parseFloat(m[4]) : 1;
} else if (!!(m = input.match(/cmyk\((\d(?:\.\d+)?),\s?(\d(?:\.\d+)?),\s?(\d(?:\.\d+)?),\s?(\d(?:\.\d+)?)\)/i))) { } else if ((m = input.match(/cmyk\((\d(?:\.\d+)?),\s?(\d(?:\.\d+)?),\s?(\d(?:\.\d+)?),\s?(\d(?:\.\d+)?)\)/i))) {
// CMYK - cmyk(0.12, 0.04, 0.00, 0.03) // CMYK - cmyk(0.12, 0.04, 0.00, 0.03)
var c_ = parseFloat(m[1]), var c_ = parseFloat(m[1]),
m_ = parseFloat(m[2]), m_ = parseFloat(m[2]),
@@ -201,7 +201,7 @@ var HTML = {
l = Math.round(hsl_[2] * 100), l = Math.round(hsl_[2] * 100),
k = 1 - Math.max(r/255, g/255, b/255), k = 1 - Math.max(r/255, g/255, b/255),
c = (1 - r/255 - k) / (1 - k), c = (1 - r/255 - k) / (1 - k),
m = (1 - g/255 - k) / (1 - k), // jshint ignore:line m = (1 - g/255 - k) / (1 - k), // eslint-disable-line no-redeclare
y = (1 - b/255 - k) / (1 - k); y = (1 - b/255 - k) / (1 - k);
c = isNaN(c) ? "0" : c.toFixed(2); c = isNaN(c) ? "0" : c.toFixed(2);
+8 -5
View File
@@ -58,7 +58,7 @@ var Hexdump = {
Utils.pad_right(hexa, (length*(padding+1))) + Utils.pad_right(hexa, (length*(padding+1))) +
" |" + Utils.pad_right(Utils.printable(Utils.byte_array_to_chars(buff)), buff.length) + "|\n"; " |" + Utils.pad_right(Utils.printable(Utils.byte_array_to_chars(buff)), buff.length) + "|\n";
if (include_final_length && i+buff.length == input.length) { if (include_final_length && i+buff.length === input.length) {
output += Utils.hex(i+buff.length, 8) + "\n"; output += Utils.hex(i+buff.length, 8) + "\n";
} }
} }
@@ -79,7 +79,7 @@ var Hexdump = {
regex = /^\s*(?:[\dA-F]{4,16}:?)?\s*((?:[\dA-F]{2}\s){1,8}(?:\s|[\dA-F]{2}-)(?:[\dA-F]{2}\s){1,8}|(?:[\dA-F]{2}\s|[\dA-F]{4}\s)+)/igm, regex = /^\s*(?:[\dA-F]{4,16}:?)?\s*((?:[\dA-F]{2}\s){1,8}(?:\s|[\dA-F]{2}-)(?:[\dA-F]{2}\s){1,8}|(?:[\dA-F]{2}\s|[\dA-F]{4}\s)+)/igm,
block, line; block, line;
while (!!(block = regex.exec(input))) { while ((block = regex.exec(input))) {
line = Utils.from_hex(block[1].replace(/-/g, " ")); line = Utils.from_hex(block[1].replace(/-/g, " "));
for (var i = 0; i < line.length; i++) { for (var i = 0; i < line.length; i++) {
output.push(line[i]); output.push(line[i]);
@@ -89,7 +89,7 @@ var Hexdump = {
var width = input.indexOf("\n"); var width = input.indexOf("\n");
var w = (width - 13) / 4; var w = (width - 13) / 4;
// w should be the specified width of the hexdump and therefore a round number // w should be the specified width of the hexdump and therefore a round number
if (Math.floor(w) != w || input.indexOf("\r") != -1 || output.indexOf(13) != -1) { if (Math.floor(w) !== w || input.indexOf("\r") !== -1 || output.indexOf(13) !== -1) {
app.options.attempt_highlight = false; app.options.attempt_highlight = false;
} }
return output; return output;
@@ -118,14 +118,17 @@ var Hexdump = {
line = Math.floor(pos[0].end / w); line = Math.floor(pos[0].end / w);
offset = pos[0].end % w; offset = pos[0].end % w;
if (offset === 0) { line--; offset = w; } if (offset === 0) {
line--;
offset = w;
}
pos[0].end = line*width + 10 + offset*3 - 1; pos[0].end = line*width + 10 + offset*3 - 1;
// Set up multiple selections for bytes // Set up multiple selections for bytes
var start_line_num = Math.floor(pos[0].start / width); var start_line_num = Math.floor(pos[0].start / width);
var end_line_num = Math.floor(pos[0].end / width); var end_line_num = Math.floor(pos[0].end / width);
if (start_line_num == end_line_num) { if (start_line_num === end_line_num) {
pos.push(pos[0]); pos.push(pos[0]);
} else { } else {
start = pos[0].start; start = pos[0].start;
+22 -23
View File
@@ -46,13 +46,13 @@ var IP = {
ipv6_range_regex = /^\s*(((?=.*::)(?!.*::[^-]+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\4)::|:\b|(?![\dA-F])))|(?!\3\4)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4}))\s*-\s*(((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\17)::|:\b|(?![\dA-F])))|(?!\16\17)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4}))\s*$/i, ipv6_range_regex = /^\s*(((?=.*::)(?!.*::[^-]+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\4)::|:\b|(?![\dA-F])))|(?!\3\4)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4}))\s*-\s*(((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\17)::|:\b|(?![\dA-F])))|(?!\16\17)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4}))\s*$/i,
match; match;
if (!!(match = ipv4_cidr_regex.exec(input))) { if ((match = ipv4_cidr_regex.exec(input))) {
return IP._ipv4_cidr_range(match, include_network_info, enumerate_addresses, allow_large_list); return IP._ipv4_cidr_range(match, include_network_info, enumerate_addresses, allow_large_list);
} else if (!!(match = ipv4_range_regex.exec(input))) { } else if ((match = ipv4_range_regex.exec(input))) {
return IP._ipv4_hyphenated_range(match, include_network_info, enumerate_addresses, allow_large_list); return IP._ipv4_hyphenated_range(match, include_network_info, enumerate_addresses, allow_large_list);
} else if (!!(match = ipv6_cidr_regex.exec(input))) { } else if ((match = ipv6_cidr_regex.exec(input))) {
return IP._ipv6_cidr_range(match, include_network_info); return IP._ipv6_cidr_range(match, include_network_info);
} else if (!!(match = ipv6_range_regex.exec(input))) { } else if ((match = ipv6_range_regex.exec(input))) {
return IP._ipv6_hyphenated_range(match, include_network_info); return IP._ipv6_hyphenated_range(match, include_network_info);
} else { } else {
return "Invalid input.\n\nEnter either a CIDR range (e.g. 10.0.0.0/24) or a hyphenated range (e.g. 10.0.0.0 - 10.0.1.0). IPv6 also supported."; return "Invalid input.\n\nEnter either a CIDR range (e.g. 10.0.0.0/24) or a hyphenated range (e.g. 10.0.0.0 - 10.0.1.0). IPv6 also supported.";
@@ -82,7 +82,7 @@ var IP = {
var match, var match,
output = ""; output = "";
if (!!(match = IP.IPv6_REGEX.exec(input))) { if ((match = IP.IPv6_REGEX.exec(input))) {
var ipv6 = IP._str_to_ipv6(match[1]), var ipv6 = IP._str_to_ipv6(match[1]),
longhand = IP._ipv6_to_str(ipv6), longhand = IP._ipv6_to_str(ipv6),
shorthand = IP._ipv6_to_str(ipv6, true); shorthand = IP._ipv6_to_str(ipv6, true);
@@ -90,11 +90,11 @@ var IP = {
output += "Longhand: " + longhand + "\nShorthand: " + shorthand + "\n"; output += "Longhand: " + longhand + "\nShorthand: " + shorthand + "\n";
// Detect reserved addresses // Detect reserved addresses
if (shorthand == "::") { if (shorthand === "::") {
// Unspecified address // Unspecified address
output += "\nUnspecified address corresponding to 0.0.0.0/32 in IPv4."; output += "\nUnspecified address corresponding to 0.0.0.0/32 in IPv4.";
output += "\nUnspecified address range: ::/128"; output += "\nUnspecified address range: ::/128";
} else if (shorthand == "::1") { } else if (shorthand === "::1") {
// Loopback address // Loopback address
output += "\nLoopback address to the local host corresponding to 127.0.0.1/8 in IPv4."; output += "\nLoopback address to the local host corresponding to 127.0.0.1/8 in IPv4.";
output += "\nLoopback addresses range: ::1/128"; output += "\nLoopback addresses range: ::1/128";
@@ -171,18 +171,18 @@ var IP = {
// Benchmarking // Benchmarking
output += "\nAssigned to the Benchmarking Methodology Working Group (BMWG) for benchmarking IPv6. Corresponds to 198.18.0.0/15 for benchmarking IPv4. See RFC 5180 for more details."; output += "\nAssigned to the Benchmarking Methodology Working Group (BMWG) for benchmarking IPv6. Corresponds to 198.18.0.0/15 for benchmarking IPv4. See RFC 5180 for more details.";
output += "\nBMWG range: 2001:2::/48"; output += "\nBMWG range: 2001:2::/48";
} else if (ipv6[0] == 0x2001 && ipv6[1] >= 0x10 && ipv6[1] <= 0x1f) { } else if (ipv6[0] === 0x2001 && ipv6[1] >= 0x10 && ipv6[1] <= 0x1f) {
// ORCHIDv1 // ORCHIDv1
output += "\nDeprecated, previously ORCHIDv1 (Overlay Routable Cryptographic Hash Identifiers).\nORCHIDv1 range: 2001:10::/28\nORCHIDv2 now uses 2001:20::/28."; output += "\nDeprecated, previously ORCHIDv1 (Overlay Routable Cryptographic Hash Identifiers).\nORCHIDv1 range: 2001:10::/28\nORCHIDv2 now uses 2001:20::/28.";
} else if (ipv6[0] == 0x2001 && ipv6[1] >= 0x20 && ipv6[1] <= 0x2f) { } else if (ipv6[0] === 0x2001 && ipv6[1] >= 0x20 && ipv6[1] <= 0x2f) {
// ORCHIDv2 // ORCHIDv2
output += "\nORCHIDv2 (Overlay Routable Cryptographic Hash Identifiers).\nThese are non-routed IPv6 addresses used for Cryptographic Hash Identifiers."; output += "\nORCHIDv2 (Overlay Routable Cryptographic Hash Identifiers).\nThese are non-routed IPv6 addresses used for Cryptographic Hash Identifiers.";
output += "\nORCHIDv2 range: 2001:20::/28"; output += "\nORCHIDv2 range: 2001:20::/28";
} else if (ipv6[0] == 0x2001 && ipv6[1] == 0xdb8) { } else if (ipv6[0] === 0x2001 && ipv6[1] === 0xdb8) {
// Documentation // Documentation
output += "\nThis is a documentation IPv6 address. This range should be used whenever an example IPv6 address is given or to model networking scenarios. Corresponds to 192.0.2.0/24, 198.51.100.0/24, and 203.0.113.0/24 in IPv4."; output += "\nThis is a documentation IPv6 address. This range should be used whenever an example IPv6 address is given or to model networking scenarios. Corresponds to 192.0.2.0/24, 198.51.100.0/24, and 203.0.113.0/24 in IPv4.";
output += "\nDocumentation range: 2001:db8::/32"; output += "\nDocumentation range: 2001:db8::/32";
} else if (ipv6[0] == 0x2002) { } else if (ipv6[0] === 0x2002) {
// 6to4 // 6to4
output += "\n6to4 transition IPv6 address detected. See RFC 3056 for more details." + output += "\n6to4 transition IPv6 address detected. See RFC 3056 for more details." +
"\n6to4 prefix range: 2002::/16"; "\n6to4 prefix range: 2002::/16";
@@ -241,7 +241,7 @@ var IP = {
if (lines[i] === "") continue; if (lines[i] === "") continue;
var ba_ip = []; var ba_ip = [];
if (in_format == out_format) { if (in_format === out_format) {
output += lines[i] + "\n"; output += lines[i] + "\n";
continue; continue;
} }
@@ -341,7 +341,7 @@ var IP = {
// Parse all IPs and add to network dictionary // Parse all IPs and add to network dictionary
for (var i = 0; i < ips.length; i++) { for (var i = 0; i < ips.length; i++) {
if (!!(match = IP.IPv4_REGEX.exec(ips[i]))) { if ((match = IP.IPv4_REGEX.exec(ips[i]))) {
ip = IP._str_to_ipv4(match[1]) >>> 0; ip = IP._str_to_ipv4(match[1]) >>> 0;
network = ip & ipv4_mask; network = ip & ipv4_mask;
@@ -350,7 +350,7 @@ var IP = {
} else { } else {
ipv4_networks[network] = [ip]; ipv4_networks[network] = [ip];
} }
} else if (!!(match = IP.IPv6_REGEX.exec(ips[i]))) { } else if ((match = IP.IPv6_REGEX.exec(ips[i]))) {
ip = IP._str_to_ipv6(match[1]); ip = IP._str_to_ipv6(match[1]);
network = []; network = [];
network_str = ""; network_str = "";
@@ -478,7 +478,7 @@ var IP = {
ip2[i] = ip1[i] | (~mask[i] & 0x0000FFFF); ip2[i] = ip1[i] | (~mask[i] & 0x0000FFFF);
total_diff = (ip2[i] - ip1[i]).toString(2); total_diff = (ip2[i] - ip1[i]).toString(2);
if (total_diff != "0") { if (total_diff !== "0") {
for (var n = 0; n < total_diff.length; n++) { for (var n = 0; n < total_diff.length; n++) {
total[i*16 + 16-(total_diff.length-n)] = total_diff[n]; total[i*16 + 16-(total_diff.length-n)] = total_diff[n];
} }
@@ -599,7 +599,7 @@ var IP = {
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
t = (ip2[i] - ip1[i]).toString(2); t = (ip2[i] - ip1[i]).toString(2);
if (t != "0") { if (t !== "0") {
for (var n = 0; n < t.length; n++) { for (var n = 0; n < t.length; n++) {
total[i*16 + 16-(t.length-n)] = t[n]; total[i*16 + 16-(t.length-n)] = t[n];
} }
@@ -640,7 +640,7 @@ var IP = {
return result; return result;
function parse_blocks(blocks) { function parse_blocks(blocks) {
if (blocks.length != 4) if (blocks.length !== 4)
throw "More than 4 blocks."; throw "More than 4 blocks.";
var num_blocks = []; var num_blocks = [];
@@ -695,7 +695,7 @@ var IP = {
for (var i = 0; i < 8; i++) { for (var i = 0; i < 8; i++) {
if (isNaN(num_blocks[j])) { if (isNaN(num_blocks[j])) {
ipv6[i] = 0; ipv6[i] = 0;
if (i == (8-num_blocks.slice(j).length)) j++; if (i === (8-num_blocks.slice(j).length)) j++;
} else { } else {
ipv6[i] = num_blocks[j]; ipv6[i] = num_blocks[j];
j++; j++;
@@ -734,7 +734,6 @@ var IP = {
*/ */
_ipv6_to_str: function(ipv6, compact) { _ipv6_to_str: function(ipv6, compact) {
var output = "", var output = "",
skips = 0,
i = 0; i = 0;
if (compact) { if (compact) {
@@ -756,8 +755,8 @@ var IP = {
} }
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
if (i != start) { if (i !== start) {
output += Utils.hex(ipv6[i],1) + ":"; output += Utils.hex(ipv6[i], 1) + ":";
} else { } else {
output += ":"; output += ":";
i = end; i = end;
@@ -768,10 +767,10 @@ var IP = {
output = ":" + output; output = ":" + output;
} else { } else {
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
output += Utils.hex(ipv6[i],4) + ":"; output += Utils.hex(ipv6[i], 4) + ":";
} }
} }
return output.slice(0,output.length-1); return output.slice(0, output.length-1);
}, },
+7 -7
View File
@@ -54,17 +54,17 @@ var MAC = {
macs = input.toLowerCase().split(/[,\s\r\n]+/); macs = input.toLowerCase().split(/[,\s\r\n]+/);
macs.forEach(function(mac) { macs.forEach(function(mac) {
var cleanMac = mac.replace(/[:.-]+/g, ''), var cleanMac = mac.replace(/[:.-]+/g, ""),
macHyphen = cleanMac.replace(/(.{2}(?=.))/g, '$1-'), macHyphen = cleanMac.replace(/(.{2}(?=.))/g, "$1-"),
macColon = cleanMac.replace(/(.{2}(?=.))/g, '$1:'), macColon = cleanMac.replace(/(.{2}(?=.))/g, "$1:"),
macCisco = cleanMac.replace(/(.{4}(?=.))/g, '$1.'); macCisco = cleanMac.replace(/(.{4}(?=.))/g, "$1.");
if (output_case == "Lower only") { if (output_case === "Lower only") {
if (no_delim) output_list.push(cleanMac); if (no_delim) output_list.push(cleanMac);
if (dash_delim) output_list.push(macHyphen); if (dash_delim) output_list.push(macHyphen);
if (colon_delim) output_list.push(macColon); if (colon_delim) output_list.push(macColon);
if (cisco_style) output_list.push(macCisco); if (cisco_style) output_list.push(macCisco);
} else if (output_case == "Upper only") { } else if (output_case === "Upper only") {
if (no_delim) output_list.push(cleanMac.toUpperCase()); if (no_delim) output_list.push(cleanMac.toUpperCase());
if (dash_delim) output_list.push(macHyphen.toUpperCase()); if (dash_delim) output_list.push(macHyphen.toUpperCase());
if (colon_delim) output_list.push(macColon.toUpperCase()); if (colon_delim) output_list.push(macColon.toUpperCase());
@@ -82,7 +82,7 @@ var MAC = {
}); });
// Return the data as a string // Return the data as a string
return output_list.join('\n'); return output_list.join("\n");
}, },
}; };
+7 -7
View File
@@ -50,7 +50,7 @@ var OS = {
// Input is octal // Input is octal
octal = input.match(/\s*([0-7]{1,4})\s*/i)[1]; octal = input.match(/\s*([0-7]{1,4})\s*/i)[1];
if (octal.length == 4) { if (octal.length === 4) {
d = parseInt(octal[0], 8); d = parseInt(octal[0], 8);
u = parseInt(octal[1], 8); u = parseInt(octal[1], 8);
g = parseInt(octal[2], 8); g = parseInt(octal[2], 8);
@@ -104,8 +104,8 @@ var OS = {
break; break;
} }
if (textual.length > 1) perms.ru = textual[1] == "r"; if (textual.length > 1) perms.ru = textual[1] === "r";
if (textual.length > 2) perms.wu = textual[2] == "w"; if (textual.length > 2) perms.wu = textual[2] === "w";
if (textual.length > 3) { if (textual.length > 3) {
switch (textual[3]) { switch (textual[3]) {
case "x": case "x":
@@ -121,8 +121,8 @@ var OS = {
} }
} }
if (textual.length > 4) perms.rg = textual[4] == "r"; if (textual.length > 4) perms.rg = textual[4] === "r";
if (textual.length > 5) perms.wg = textual[5] == "w"; if (textual.length > 5) perms.wg = textual[5] === "w";
if (textual.length > 6) { if (textual.length > 6) {
switch (textual[6]) { switch (textual[6]) {
case "x": case "x":
@@ -138,8 +138,8 @@ var OS = {
} }
} }
if (textual.length > 7) perms.ro = textual[7] == "r"; if (textual.length > 7) perms.ro = textual[7] === "r";
if (textual.length > 8) perms.wo = textual[8] == "w"; if (textual.length > 8) perms.wo = textual[8] === "w";
if (textual.length > 9) { if (textual.length > 9) {
switch (textual[9]) { switch (textual[9]) {
case "x": case "x":
File diff suppressed because it is too large. Load diff
+9 -9
View File
@@ -81,7 +81,7 @@ var QuotedPrintable = {
for (var i = 0, len = str.length; i < len; i++) { for (var i = 0, len = str.length; i < len; i++) {
chr = str.charAt(i); chr = str.charAt(i);
if (chr == "=" && (hex = str.substr(i + 1, 2)) && /[\da-fA-F]{2}/.test(hex)) { if (chr === "=" && (hex = str.substr(i + 1, 2)) && /[\da-fA-F]{2}/.test(hex)) {
buffer[bufferPos++] = parseInt(hex, 16); buffer[bufferPos++] = parseInt(hex, 16);
i += 2; i += 2;
continue; continue;
@@ -137,9 +137,9 @@ var QuotedPrintable = {
for (var i = ranges.length - 1; i >= 0; i--) { for (var i = ranges.length - 1; i >= 0; i--) {
if (!ranges[i].length) if (!ranges[i].length)
continue; continue;
if (ranges[i].length == 1 && nr == ranges[i][0]) if (ranges[i].length === 1 && nr === ranges[i][0])
return true; return true;
if (ranges[i].length == 2 && nr >= ranges[i][0] && nr <= ranges[i][1]) if (ranges[i].length === 2 && nr >= ranges[i][0] && nr <= ranges[i][1])
return true; return true;
} }
return false; return false;
@@ -161,7 +161,7 @@ var QuotedPrintable = {
encoding = (encoding || "base64").toString().toLowerCase().trim(); encoding = (encoding || "base64").toString().toLowerCase().trim();
if (encoding == "qp") { if (encoding === "qp") {
return this._addQPSoftLinebreaks(str, lineLengthMax); return this._addQPSoftLinebreaks(str, lineLengthMax);
} else { } else {
return this._addBase64SoftLinebreaks(str, lineLengthMax); return this._addBase64SoftLinebreaks(str, lineLengthMax);
@@ -208,7 +208,7 @@ var QuotedPrintable = {
continue; continue;
} }
if (line.substr(-1) == "\n") { if (line.substr(-1) === "\n") {
// nothing to change here // nothing to change here
result += line; result += line;
pos += line.length; pos += line.length;
@@ -222,7 +222,7 @@ var QuotedPrintable = {
} else if (line.length > lineLengthMax - lineMargin && (match = line.substr(-lineMargin).match(/[ \t\.,!\?][^ \t\.,!\?]*$/))) { } else if (line.length > lineLengthMax - lineMargin && (match = line.substr(-lineMargin).match(/[ \t\.,!\?][^ \t\.,!\?]*$/))) {
// truncate to nearest space // truncate to nearest space
line = line.substr(0, line.length - (match[0].length - 1)); line = line.substr(0, line.length - (match[0].length - 1));
} else if (line.substr(-1) == "\r") { } else if (line.substr(-1) === "\r") {
line = line.substr(0, line.length - 1); line = line.substr(0, line.length - 1);
} else { } else {
if (line.match(/\=[\da-f]{0,2}$/i)) { if (line.match(/\=[\da-f]{0,2}$/i)) {
@@ -249,10 +249,10 @@ var QuotedPrintable = {
} }
} }
if (pos + line.length < len && line.substr(-1) != "\n") { if (pos + line.length < len && line.substr(-1) !== "\n") {
if (line.length == 76 && line.match(/\=[\da-f]{2}$/i)) { if (line.length === 76 && line.match(/\=[\da-f]{2}$/i)) {
line = line.substr(0, line.length - 3); line = line.substr(0, line.length - 3);
} else if (line.length == 76) { } else if (line.length === 76) {
line = line.substr(0, line.length - 1); line = line.substr(0, line.length - 1);
} }
pos += line.length; pos += line.length;
+6 -6
View File
@@ -38,11 +38,11 @@ var SeqUtils = {
order = args[2], order = args[2],
sorted = input.split(delim); sorted = input.split(delim);
if (order == "Alphabetical (case sensitive)") { if (order === "Alphabetical (case sensitive)") {
sorted = sorted.sort(); sorted = sorted.sort();
} else if (order == "Alphabetical (case insensitive)") { } else if (order === "Alphabetical (case insensitive)") {
sorted = sorted.sort(SeqUtils._case_insensitive_sort); sorted = sorted.sort(SeqUtils._case_insensitive_sort);
} else if (order == "IP address") { } else if (order === "IP address") {
sorted = sorted.sort(SeqUtils._ip_sort); sorted = sorted.sort(SeqUtils._ip_sort);
} }
@@ -81,7 +81,7 @@ var SeqUtils = {
var search = args[0].string, var search = args[0].string,
type = args[0].option; type = args[0].option;
if (type == "Regex" && search) { if (type === "Regex" && search) {
try { try {
var regex = new RegExp(search, "gi"), var regex = new RegExp(search, "gi"),
matches = input.match(regex); matches = input.match(regex);
@@ -114,12 +114,12 @@ var SeqUtils = {
* @returns {byte_array} * @returns {byte_array}
*/ */
run_reverse: function (input, args) { run_reverse: function (input, args) {
if (args[0] == "Line") { if (args[0] === "Line") {
var lines = [], var lines = [],
line = [], line = [],
result = []; result = [];
for (var i = 0; i < input.length; i++) { for (var i = 0; i < input.length; i++) {
if (input[i] == 0x0a) { if (input[i] === 0x0a) {
lines.push(line); lines.push(line);
line = []; line = [];
} else { } else {
+14 -14
View File
@@ -108,7 +108,7 @@ var StrUtils = {
if (i) modifiers += "i"; if (i) modifiers += "i";
if (m) modifiers += "m"; if (m) modifiers += "m";
if (user_regex && user_regex != "^" && user_regex != "$") { if (user_regex && user_regex !== "^" && user_regex !== "$") {
try { try {
var regex = new RegExp(user_regex, modifiers); var regex = new RegExp(user_regex, modifiers);
@@ -223,7 +223,7 @@ var StrUtils = {
if (i) modifiers += "i"; if (i) modifiers += "i";
if (m) modifiers += "m"; if (m) modifiers += "m";
if (type == "Regex") { if (type === "Regex") {
find = new RegExp(find, modifiers); find = new RegExp(find, modifiers);
} else if (type.indexOf("Extended") === 0) { } else if (type.indexOf("Extended") === 0) {
find = Utils.parse_escaped_chars(find); find = Utils.parse_escaped_chars(find);
@@ -291,7 +291,7 @@ var StrUtils = {
output = "", output = "",
diff; diff;
if (!samples || samples.length != 2) { if (!samples || samples.length !== 2) {
return "Incorrect number of samples, perhaps you need to modify the sample delimiter or add more samples?"; return "Incorrect number of samples, perhaps you need to modify the sample delimiter or add more samples?";
} }
@@ -379,7 +379,7 @@ var StrUtils = {
// Loop through each sample to see if the chars are the same // Loop through each sample to see if the chars are the same
for (s = 1; s < samples.length; s++) { for (s = 1; s < samples.length; s++) {
if (samples[s][i] != chr) { if (samples[s][i] !== chr) {
match = false; match = false;
break; break;
} }
@@ -390,26 +390,26 @@ var StrUtils = {
for (s = 0; s < samples.length; s++) { for (s = 0; s < samples.length; s++) {
if (samples[s].length <= i) { if (samples[s].length <= i) {
if (in_match) outputs[s] += "</span>"; if (in_match) outputs[s] += "</span>";
if (s == samples.length - 1) in_match = false; if (s === samples.length - 1) in_match = false;
continue; continue;
} }
if (match && !in_match) { if (match && !in_match) {
outputs[s] += "<span class='hlgreen'>" + Utils.escape_html(samples[s][i]); outputs[s] += "<span class='hlgreen'>" + Utils.escape_html(samples[s][i]);
if (samples[s].length == i + 1) outputs[s] += "</span>"; if (samples[s].length === i + 1) outputs[s] += "</span>";
if (s == samples.length - 1) in_match = true; if (s === samples.length - 1) in_match = true;
} else if (!match && in_match) { } else if (!match && in_match) {
outputs[s] += "</span>" + Utils.escape_html(samples[s][i]); outputs[s] += "</span>" + Utils.escape_html(samples[s][i]);
if (s == samples.length - 1) in_match = false; if (s === samples.length - 1) in_match = false;
} else { } else {
outputs[s] += Utils.escape_html(samples[s][i]); outputs[s] += Utils.escape_html(samples[s][i]);
if (in_match && samples[s].length == i + 1) { if (in_match && samples[s].length === i + 1) {
outputs[s] += "</span>"; outputs[s] += "</span>";
if (samples[s].length - 1 != i) in_match = false; if (samples[s].length - 1 !== i) in_match = false;
} }
} }
if (samples[0].length - 1 == i) { if (samples[0].length - 1 === i) {
if (in_match) outputs[s] += "</span>"; if (in_match) outputs[s] += "</span>";
outputs[s] += Utils.escape_html(samples[s].substring(i + 1)); outputs[s] += Utils.escape_html(samples[s].substring(i + 1));
} }
@@ -448,7 +448,7 @@ var StrUtils = {
i = 0, i = 0,
total = 0; total = 0;
while (!!(m = regex.exec(input))) { while ((m = regex.exec(input))) {
// Add up to match // Add up to match
output += Utils.escape_html(input.slice(i, m.index)); output += Utils.escape_html(input.slice(i, m.index));
@@ -456,7 +456,7 @@ var StrUtils = {
output += "<span class='hl"+hl+"'>" + Utils.escape_html(m[0]) + "</span>"; output += "<span class='hl"+hl+"'>" + Utils.escape_html(m[0]) + "</span>";
// Switch highlight // Switch highlight
hl = hl == 1 ? 2 : 1; hl = hl === 1 ? 2 : 1;
i = regex.lastIndex; i = regex.lastIndex;
total++; total++;
@@ -488,7 +488,7 @@ var StrUtils = {
total = 0, total = 0,
match; match;
while (!!(match = regex.exec(input))) { while ((match = regex.exec(input))) {
total++; total++;
if (matches) { if (matches) {
output += match[0] + "\n"; output += match[0] + "\n";
+4 -4
View File
@@ -121,7 +121,7 @@ var Tidy = {
line = []; line = [];
for (var i = 0; i < input.length; i++) { for (var i = 0; i < input.length; i++) {
if (input[i] == 0x0a) { if (input[i] === 0x0a) {
lines.push(line); lines.push(line);
line = []; line = [];
} else { } else {
@@ -173,7 +173,7 @@ var Tidy = {
line = []; line = [];
for (var i = 0; i < input.length; i++) { for (var i = 0; i < input.length; i++) {
if (input[i] == 0x0a) { if (input[i] === 0x0a) {
lines.push(line); lines.push(line);
line = []; line = [];
} else { } else {
@@ -222,11 +222,11 @@ var Tidy = {
output = "", output = "",
i = 0; i = 0;
if (position == "Start") { if (position === "Start") {
for (i = 0; i < lines.length; i++) { for (i = 0; i < lines.length; i++) {
output += Utils.pad_left(lines[i], lines[i].length+len, chr) + "\n"; output += Utils.pad_left(lines[i], lines[i].length+len, chr) + "\n";
} }
} else if (position == "End") { } else if (position === "End") {
for (i = 0; i < lines.length; i++) { for (i = 0; i < lines.length; i++) {
output += Utils.pad_right(lines[i], lines[i].length+len, chr) + "\n"; output += Utils.pad_right(lines[i], lines[i].length+len, chr) + "\n";
} }
+1 -1
View File
@@ -64,7 +64,7 @@ var URL_ = {
if (a.protocol) { if (a.protocol) {
var output = ""; var output = "";
if (a.hostname != window.location.hostname) { if (a.hostname !== window.location.hostname) {
output = "Protocol:\t" + a.protocol + "\n"; output = "Protocol:\t" + a.protocol + "\n";
if (a.hostname) output += "Hostname:\t" + a.hostname + "\n"; if (a.hostname) output += "Hostname:\t" + a.hostname + "\n";
if (a.port) output += "Port:\t\t" + a.port + "\n"; if (a.port) output += "Port:\t\t" + a.port + "\n";
+1 -1
View File
@@ -17,7 +17,7 @@ var UUID = {
* @returns {string} * @returns {string}
*/ */
run_generate_v4: function(input, args) { run_generate_v4: function(input, args) {
if (typeof(window.crypto) !== 'undefined' && typeof(window.crypto.getRandomValues) !== 'undefined') { if (typeof(window.crypto) !== "undefined" && typeof(window.crypto.getRandomValues) !== "undefined") {
var buf = new Uint32Array(4), var buf = new Uint32Array(4),
i = 0; i = 0;
window.crypto.getRandomValues(buf); window.crypto.getRandomValues(buf);
+1 -1
View File
@@ -29,7 +29,7 @@ var Unicode = {
m, m,
i = 0; i = 0;
while (!!(m = regex.exec(input))) { while ((m = regex.exec(input))) {
// Add up to match // Add up to match
output += input.slice(i, m.index); output += input.slice(i, m.index);
i = m.index; i = m.index;
+5 -7
View File
@@ -65,7 +65,7 @@ ControlsWaiter.prototype.adjust_width = function() {
ControlsWaiter.prototype.set_auto_bake = function(value) { ControlsWaiter.prototype.set_auto_bake = function(value) {
var auto_bake_checkbox = document.getElementById("auto-bake"); var auto_bake_checkbox = document.getElementById("auto-bake");
if (auto_bake_checkbox.checked != value) { if (auto_bake_checkbox.checked !== value) {
auto_bake_checkbox.click(); auto_bake_checkbox.click();
} }
}; };
@@ -138,9 +138,7 @@ ControlsWaiter.prototype.clear_breaks_click = function() {
ControlsWaiter.prototype.initialise_save_link = function(recipe_config) { ControlsWaiter.prototype.initialise_save_link = function(recipe_config) {
recipe_config = recipe_config || this.app.get_recipe_config(); recipe_config = recipe_config || this.app.get_recipe_config();
var recipe_str = JSON.stringify(recipe_config), var include_recipe = document.getElementById("save-link-recipe-checkbox").checked,
input_str = Utils.to_base64(this.app.get_input()),
include_recipe = document.getElementById("save-link-recipe-checkbox").checked,
include_input = document.getElementById("save-link-input-checkbox").checked, include_input = document.getElementById("save-link-input-checkbox").checked,
save_link_el = document.getElementById("save-link"), save_link_el = document.getElementById("save-link"),
save_link = this.generate_state_url(include_recipe, include_input, recipe_config); save_link = this.generate_state_url(include_recipe, include_input, recipe_config);
@@ -200,7 +198,7 @@ ControlsWaiter.prototype.save_text_change = function() {
*/ */
ControlsWaiter.prototype.save_click = function() { ControlsWaiter.prototype.save_click = function() {
var recipe_config = this.app.get_recipe_config(); var recipe_config = this.app.get_recipe_config();
var recipe_str = JSON.stringify(recipe_config).replace(/},{/g, '},\n{'); var recipe_str = JSON.stringify(recipe_config).replace(/},{/g, "},\n{");
document.getElementById("save-text").value = recipe_str; document.getElementById("save-text").value = recipe_str;
this.initialise_save_link(recipe_config); this.initialise_save_link(recipe_config);
@@ -300,7 +298,7 @@ ControlsWaiter.prototype.load_delete_click = function() {
JSON.parse(localStorage.saved_recipes) : []; JSON.parse(localStorage.saved_recipes) : [];
saved_recipes = saved_recipes.filter(function(r) { saved_recipes = saved_recipes.filter(function(r) {
return r.id != id; return r.id !== id;
}); });
localStorage.saved_recipes = JSON.stringify(saved_recipes); localStorage.saved_recipes = JSON.stringify(saved_recipes);
@@ -318,7 +316,7 @@ ControlsWaiter.prototype.load_name_change = function(e) {
id = parseInt(el.value, 10); id = parseInt(el.value, 10);
var recipe = saved_recipes.filter(function(r) { var recipe = saved_recipes.filter(function(r) {
return r.id == id; return r.id === id;
})[0]; })[0];
document.getElementById("load-text").value = recipe.recipe; document.getElementById("load-text").value = recipe.recipe;
+24 -23
View File
@@ -80,24 +80,25 @@ HTMLApp.prototype.bake = function(step) {
); );
} catch (err) { } catch (err) {
this.handle_error(err); this.handle_error(err);
} finally { }
if (!response) return;
if (response.error) { if (!response) return;
this.handle_error(response.error);
}
this.options = response.options;
this.dish_str = response.type == "html" ? Utils.strip_html_tags(response.result, true) : response.result;
this.progress = response.progress;
this.manager.recipe.update_breakpoint_indicator(response.progress);
this.manager.output.set(response.result, response.type, response.duration);
// If baking took too long, disable auto-bake if (response.error) {
if (response.duration > this.options.auto_bake_threshold && this.auto_bake_) { this.handle_error(response.error);
this.manager.controls.set_auto_bake(false); }
this.alert("Baking took longer than " + this.options.auto_bake_threshold +
"ms, Auto Bake has been disabled.", "warning", 5000); this.options = response.options;
} this.dish_str = response.type === "html" ? Utils.strip_html_tags(response.result, true) : response.result;
this.progress = response.progress;
this.manager.recipe.update_breakpoint_indicator(response.progress);
this.manager.output.set(response.result, response.type, response.duration);
// If baking took too long, disable auto-bake
if (response.duration > this.options.auto_bake_threshold && this.auto_bake_) {
this.manager.controls.set_auto_bake(false);
this.alert("Baking took longer than " + this.options.auto_bake_threshold +
"ms, Auto Bake has been disabled.", "warning", 5000);
} }
}; };
@@ -252,7 +253,7 @@ HTMLApp.prototype.load_favourites = function() {
this.save_favourites(favourites); this.save_favourites(favourites);
var fav_cat = this.categories.filter(function(c) { var fav_cat = this.categories.filter(function(c) {
return c.name == "Favourites"; return c.name === "Favourites";
})[0]; })[0];
if (fav_cat) { if (fav_cat) {
@@ -339,15 +340,15 @@ HTMLApp.prototype.load_URI_params = function() {
if (a === "") return {}; if (a === "") return {};
var b = {}; var b = {};
for (var i = 0; i < a.length; i++) { for (var i = 0; i < a.length; i++) {
var p = a[i].split('='); var p = a[i].split("=");
if (p.length != 2) { if (p.length !== 2) {
b[a[i]] = true; b[a[i]] = true;
} else { } else {
b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " ")); b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
} }
} }
return b; return b;
})(window.location.search.substr(1).split('&')); })(window.location.search.substr(1).split("&"));
// Turn off auto-bake while loading // Turn off auto-bake while loading
var auto_bake_val = this.auto_bake_; var auto_bake_val = this.auto_bake_;
@@ -430,7 +431,7 @@ HTMLApp.prototype.set_recipe_config = function(recipe_config) {
// Populate arguments // Populate arguments
var args = item.querySelectorAll(".arg"); var args = item.querySelectorAll(".arg");
for (var j = 0; j < args.length; j++) { for (var j = 0; j < args.length; j++) {
if (args[j].getAttribute("type") == "checkbox") { if (args[j].getAttribute("type") === "checkbox") {
// checkbox // checkbox
args[j].checked = recipe_config[i].args[j]; args[j].checked = recipe_config[i].args[j];
} else if (args[j].classList.contains("toggle-string")) { } else if (args[j].classList.contains("toggle-string")) {
@@ -480,7 +481,7 @@ HTMLApp.prototype.set_compile_message = function() {
var now = new Date(), var now = new Date(),
time_since_compile = Utils.fuzzy_time(now.getTime() - window.compile_time), time_since_compile = Utils.fuzzy_time(now.getTime() - window.compile_time),
compile_info = "<span style=\"font-weight: normal\">Last build: " + compile_info = "<span style=\"font-weight: normal\">Last build: " +
time_since_compile.substr(0,1).toUpperCase() + time_since_compile.substr(1) + " ago"; time_since_compile.substr(0, 1).toUpperCase() + time_since_compile.substr(1) + " ago";
if (window.compile_message !== "") { if (window.compile_message !== "") {
compile_info += " - " + window.compile_message; compile_info += " - " + window.compile_message;
@@ -533,7 +534,7 @@ HTMLApp.prototype.alert = function(str, style, timeout, silent) {
alert_el.classList.add("alert-" + style); alert_el.classList.add("alert-" + style);
// If the box hasn't been closed, append to it rather than replacing // If the box hasn't been closed, append to it rather than replacing
if (alert_el.style.display == "block") { if (alert_el.style.display === "block") {
alert_content.innerHTML += alert_content.innerHTML +=
"<br><br>[" + time.toLocaleTimeString() + "] " + str; "<br><br>[" + time.toLocaleTimeString() + "] " + str;
} else { } else {
+10 -10
View File
@@ -32,16 +32,16 @@ var HTMLIngredient = function(config, app, manager) {
* @returns {string} * @returns {string}
*/ */
HTMLIngredient.prototype.to_html = function() { HTMLIngredient.prototype.to_html = function() {
var inline = (this.type == "boolean" || var inline = (this.type === "boolean" ||
this.type == "number" || this.type === "number" ||
this.type == "option" || this.type === "option" ||
this.type == "short_string" || this.type === "short_string" ||
this.type == "binary_short_string"), this.type === "binary_short_string"),
html = inline ? "" : "<div class='clearfix'>&nbsp;</div>", html = inline ? "" : "<div class='clearfix'>&nbsp;</div>",
i, m; i, m;
html += "<div class='arg-group" + (inline ? " inline-args" : "") + html += "<div class='arg-group" + (inline ? " inline-args" : "") +
(this.type == "text" ? " arg-group-text" : "") + "'><label class='arg-label' for='" + (this.type === "text" ? " arg-group-text" : "") + "'><label class='arg-label' for='" +
this.id + "'>" + this.name + "</label>"; this.id + "'>" + this.name + "</label>";
switch (this.type) { switch (this.type) {
@@ -92,9 +92,9 @@ HTMLIngredient.prototype.to_html = function() {
html += "<select class='arg' id='" + this.id + "'arg_name='" + this.name + "'" + html += "<select class='arg' id='" + this.id + "'arg_name='" + this.name + "'" +
(this.disabled ? " disabled='disabled'" : "") + ">"; (this.disabled ? " disabled='disabled'" : "") + ">";
for (i = 0; i < this.value.length; i++) { for (i = 0; i < this.value.length; i++) {
if (!!(m = this.value[i].match(/\[([a-z0-9 -()^]+)\]/i))) { if ((m = this.value[i].match(/\[([a-z0-9 -()^]+)\]/i))) {
html += "<optgroup label='" + m[1] + "'>"; html += "<optgroup label='" + m[1] + "'>";
} else if (!!(m = this.value[i].match(/\[\/([a-z0-9 -()^]+)\]/i))) { } else if ((m = this.value[i].match(/\[\/([a-z0-9 -()^]+)\]/i))) {
html += "</optgroup>"; html += "</optgroup>";
} else { } else {
html += "<option>" + this.value[i] + "</option>"; html += "<option>" + this.value[i] + "</option>";
@@ -106,9 +106,9 @@ HTMLIngredient.prototype.to_html = function() {
html += "<select class='arg' id='" + this.id + "'arg_name='" + this.name + "'" + html += "<select class='arg' id='" + this.id + "'arg_name='" + this.name + "'" +
(this.disabled ? " disabled='disabled'" : "") + ">"; (this.disabled ? " disabled='disabled'" : "") + ">";
for (i = 0; i < this.value.length; i++) { for (i = 0; i < this.value.length; i++) {
if (!!(m = this.value[i].name.match(/\[([a-z0-9 -()^]+)\]/i))) { if ((m = this.value[i].name.match(/\[([a-z0-9 -()^]+)\]/i))) {
html += "<optgroup label='" + m[1] + "'>"; html += "<optgroup label='" + m[1] + "'>";
} else if (!!(m = this.value[i].name.match(/\[\/([a-z0-9 -()^]+)\]/i))) { } else if ((m = this.value[i].name.match(/\[\/([a-z0-9 -()^]+)\]/i))) {
html += "</optgroup>"; html += "</optgroup>";
} else { } else {
html += "<option populate-value='" + this.value[i].value + "'>" + html += "<option populate-value='" + this.value[i].value + "'>" +
+9 -9
View File
@@ -237,8 +237,8 @@ HighlighterWaiter.prototype.output_html_mouseup = function(e) {
HighlighterWaiter.prototype.input_mousemove = function(e) { HighlighterWaiter.prototype.input_mousemove = function(e) {
// Check that the left mouse button is pressed // Check that the left mouse button is pressed
if (!this.mouse_button_down || if (!this.mouse_button_down ||
e.which != 1 || e.which !== 1 ||
this.mouse_target != HighlighterWaiter.INPUT) this.mouse_target !== HighlighterWaiter.INPUT)
return; return;
var el = e.target, var el = e.target,
@@ -261,8 +261,8 @@ HighlighterWaiter.prototype.input_mousemove = function(e) {
HighlighterWaiter.prototype.output_mousemove = function(e) { HighlighterWaiter.prototype.output_mousemove = function(e) {
// Check that the left mouse button is pressed // Check that the left mouse button is pressed
if (!this.mouse_button_down || if (!this.mouse_button_down ||
e.which != 1 || e.which !== 1 ||
this.mouse_target != HighlighterWaiter.OUTPUT) this.mouse_target !== HighlighterWaiter.OUTPUT)
return; return;
var el = e.target, var el = e.target,
@@ -285,8 +285,8 @@ HighlighterWaiter.prototype.output_mousemove = function(e) {
HighlighterWaiter.prototype.output_html_mousemove = function(e) { HighlighterWaiter.prototype.output_html_mousemove = function(e) {
// Check that the left mouse button is pressed // Check that the left mouse button is pressed
if (!this.mouse_button_down || if (!this.mouse_button_down ||
e.which != 1 || e.which !== 1 ||
this.mouse_target != HighlighterWaiter.OUTPUT) this.mouse_target !== HighlighterWaiter.OUTPUT)
return; return;
var sel = this._get_output_html_selection_offsets(); var sel = this._get_output_html_selection_offsets();
@@ -458,7 +458,7 @@ HighlighterWaiter.prototype.highlight = function(textarea, highlighter, pos) {
// Put placeholders in position // Put placeholders in position
// If there's only one value, select that // If there's only one value, select that
// If there are multiple, ignore the first one and select all others // If there are multiple, ignore the first one and select all others
if (pos.length == 1) { if (pos.length === 1) {
if (pos[0].end < pos[0].start) return; if (pos[0].end < pos[0].start) return;
text = text.slice(0, pos[0].start) + text = text.slice(0, pos[0].start) +
start_placeholder + text.slice(pos[0].start, pos[0].end) + end_placeholder + start_placeholder + text.slice(pos[0].start, pos[0].end) + end_placeholder +
@@ -471,11 +471,11 @@ HighlighterWaiter.prototype.highlight = function(textarea, highlighter, pos) {
for (var i = 0; i < text.length; i++) { for (var i = 0; i < text.length; i++) {
for (var j = 1; j < pos.length; j++) { for (var j = 1; j < pos.length; j++) {
if (pos[j].end < pos[j].start) continue; if (pos[j].end < pos[j].start) continue;
if (pos[j].start == i) { if (pos[j].start === i) {
result += start_placeholder; result += start_placeholder;
end_placed = false; end_placed = false;
} }
if (pos[j].end == i) { if (pos[j].end === i) {
result += end_placeholder; result += end_placeholder;
end_placed = true; end_placed = true;
} }
+8 -8
View File
@@ -21,12 +21,12 @@ var InputWaiter = function(app, manager) {
19, //Pause 19, //Pause
20, //Caps 20, //Caps
27, //Esc 27, //Esc
33,34,35,36, //PgUp, PgDn, End, Home 33, 34, 35, 36, //PgUp, PgDn, End, Home
37,38,39,40, //Directional 37, 38, 39, 40, //Directional
44, //PrntScrn 44, //PrntScrn
91,92, //Win 91, 92, //Win
93, //Context 93, //Context
112,113,114,115,116,117,118,119,120,121,122,123, //F1-12 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, //F1-12
144, //Num 144, //Num
145, //Scroll 145, //Scroll
]; ];
@@ -162,8 +162,8 @@ InputWaiter.prototype.input_drop = function(e) {
this.set(input_charcode); this.set(input_charcode);
var recipe_config = this.app.get_recipe_config(); var recipe_config = this.app.get_recipe_config();
if (!recipe_config[0] || recipe_config[0].op != "From Hex") { if (!recipe_config[0] || recipe_config[0].op !== "From Hex") {
recipe_config.unshift({op:"From Hex",args:["Space"]}); recipe_config.unshift({op:"From Hex", args:["Space"]});
this.app.set_recipe_config(recipe_config); this.app.set_recipe_config(recipe_config);
} }
@@ -178,14 +178,14 @@ InputWaiter.prototype.input_drop = function(e) {
el.value = "Processing... " + Math.round(offset / file.size * 100) + "%"; el.value = "Processing... " + Math.round(offset / file.size * 100) + "%";
var slice = file.slice(offset, offset + CHUNK_SIZE); var slice = file.slice(offset, offset + CHUNK_SIZE);
reader.readAsArrayBuffer(slice); reader.readAsArrayBuffer(slice);
}.bind(this); };
reader.onload = function(e) { reader.onload = function(e) {
var data = new Uint8Array(reader.result); var data = new Uint8Array(reader.result);
input_charcode += Utils.to_hex_fast(data); input_charcode += Utils.to_hex_fast(data);
offset += CHUNK_SIZE; offset += CHUNK_SIZE;
seek(); seek();
}.bind(this); };
el.classList.remove("dropping-file"); el.classList.remove("dropping-file");
+2 -2
View File
@@ -136,8 +136,8 @@ Manager.prototype.initialise_event_listeners = function() {
// Options // Options
document.getElementById("options").addEventListener("click", this.options.options_click.bind(this.options)); document.getElementById("options").addEventListener("click", this.options.options_click.bind(this.options));
document.getElementById("reset-options").addEventListener("click", this.options.reset_options_click.bind(this.options)); document.getElementById("reset-options").addEventListener("click", this.options.reset_options_click.bind(this.options));
$(".option-item input:checkbox").on("switchChange.bootstrapSwitch", this.options.switch_change.bind(this.options)); $(document).on("switchChange.bootstrapSwitch", ".option-item input:checkbox", this.options.switch_change.bind(this.options));
$(".option-item input:checkbox").on("switchChange.bootstrapSwitch", this.options.set_word_wrap.bind(this.options)); $(document).on("switchChange.bootstrapSwitch", ".option-item input:checkbox", this.options.set_word_wrap.bind(this.options));
this.add_dynamic_listener(".option-item input[type=number]", "keyup", this.options.number_change, this.options); this.add_dynamic_listener(".option-item input[type=number]", "keyup", this.options.number_change, this.options);
this.add_dynamic_listener(".option-item input[type=number]", "change", this.options.number_change, this.options); this.add_dynamic_listener(".option-item input[type=number]", "change", this.options.number_change, this.options);
this.add_dynamic_listener(".option-item select", "change", this.options.select_change, this.options); this.add_dynamic_listener(".option-item select", "change", this.options.select_change, this.options);
+11 -11
View File
@@ -29,7 +29,7 @@ var OperationsWaiter = function(app, manager) {
OperationsWaiter.prototype.search_operations = function(e) { OperationsWaiter.prototype.search_operations = function(e) {
var ops, selected; var ops, selected;
if (e.type == "search") { // Search if (e.type === "search") { // Search
e.preventDefault(); e.preventDefault();
ops = document.querySelectorAll("#search-results li"); ops = document.querySelectorAll("#search-results li");
if (ops.length) { if (ops.length) {
@@ -41,9 +41,9 @@ OperationsWaiter.prototype.search_operations = function(e) {
} }
} }
if (e.keyCode == 13) { // Return if (e.keyCode === 13) { // Return
e.preventDefault(); e.preventDefault();
} else if (e.keyCode == 40) { // Down } else if (e.keyCode === 40) { // Down
e.preventDefault(); e.preventDefault();
ops = document.querySelectorAll("#search-results li"); ops = document.querySelectorAll("#search-results li");
if (ops.length) { if (ops.length) {
@@ -51,10 +51,10 @@ OperationsWaiter.prototype.search_operations = function(e) {
if (selected > -1) { if (selected > -1) {
ops[selected].classList.remove("selected-op"); ops[selected].classList.remove("selected-op");
} }
if (selected == ops.length-1) selected = -1; if (selected === ops.length-1) selected = -1;
ops[selected+1].classList.add("selected-op"); ops[selected+1].classList.add("selected-op");
} }
} else if (e.keyCode == 38) { // Up } else if (e.keyCode === 38) { // Up
e.preventDefault(); e.preventDefault();
ops = document.querySelectorAll("#search-results li"); ops = document.querySelectorAll("#search-results li");
if (ops.length) { if (ops.length) {
@@ -183,7 +183,7 @@ OperationsWaiter.prototype.edit_favourites_click = function(e) {
// Add favourites to modal // Add favourites to modal
var fav_cat = this.app.categories.filter(function(c) { var fav_cat = this.app.categories.filter(function(c) {
return c.name == "Favourites"; return c.name === "Favourites";
})[0]; })[0];
var html = ""; var html = "";
@@ -198,7 +198,7 @@ OperationsWaiter.prototype.edit_favourites_click = function(e) {
this.remove_intent = false; this.remove_intent = false;
var editable_list = Sortable.create(edit_favourites_list, { var editable_list = Sortable.create(edit_favourites_list, {
filter: '.remove-icon', filter: ".remove-icon",
onFilter: function (evt) { onFilter: function (evt) {
var el = editable_list.closest(evt.item); var el = editable_list.closest(evt.item);
if (el) { if (el) {
@@ -212,11 +212,11 @@ OperationsWaiter.prototype.edit_favourites_click = function(e) {
}); });
Sortable.utils.on(edit_favourites_list, "dragleave", function() { Sortable.utils.on(edit_favourites_list, "dragleave", function() {
this.remove_intent = true; this.remove_intent = true;
}.bind(this)); }.bind(this));
Sortable.utils.on(edit_favourites_list, "dragover", function() { Sortable.utils.on(edit_favourites_list, "dragover", function() {
this.remove_intent = false; this.remove_intent = false;
}.bind(this)); }.bind(this));
$("#edit-favourites-list [data-toggle=popover]").popover(); $("#edit-favourites-list [data-toggle=popover]").popover();
@@ -260,7 +260,7 @@ OperationsWaiter.prototype.reset_favourites_click = function() {
*/ */
OperationsWaiter.prototype.op_icon_mouseover = function(e) { OperationsWaiter.prototype.op_icon_mouseover = function(e) {
var op_el = e.target.parentNode; var op_el = e.target.parentNode;
if (e.target.getAttribute("data-toggle") == "popover") { if (e.target.getAttribute("data-toggle") === "popover") {
$(op_el).popover("hide"); $(op_el).popover("hide");
} }
}; };
@@ -277,7 +277,7 @@ OperationsWaiter.prototype.op_icon_mouseleave = function(e) {
var op_el = e.target.parentNode, var op_el = e.target.parentNode,
to_el = e.toElement || e.relatedElement; to_el = e.toElement || e.relatedElement;
if (e.target.getAttribute("data-toggle") == "popover" && to_el === op_el) { if (e.target.getAttribute("data-toggle") === "popover" && to_el === op_el) {
$(op_el).popover("show"); $(op_el).popover("show");
} }
}; };
+2 -2
View File
@@ -38,7 +38,7 @@ OutputWaiter.prototype.set = function(data_str, type, duration) {
output_highlighter = document.getElementById("output-highlighter"), output_highlighter = document.getElementById("output-highlighter"),
input_highlighter = document.getElementById("input-highlighter"); input_highlighter = document.getElementById("input-highlighter");
if (type == "html") { if (type === "html") {
output_text.style.display = "none"; output_text.style.display = "none";
output_html.style.display = "block"; output_html.style.display = "block";
output_highlighter.display = "none"; output_highlighter.display = "none";
@@ -51,7 +51,7 @@ OutputWaiter.prototype.set = function(data_str, type, duration) {
var script_elements = output_html.querySelectorAll("script"); var script_elements = output_html.querySelectorAll("script");
for (var i = 0; i < script_elements.length; i++) { for (var i = 0; i < script_elements.length; i++) {
try { try {
eval(script_elements[i].innerHTML); // jshint ignore:line eval(script_elements[i].innerHTML); // eslint-disable-line no-eval
} catch (err) { } catch (err) {
console.error(err); console.error(err);
} }
+13 -13
View File
@@ -22,8 +22,7 @@ var RecipeWaiter = function(app, manager) {
* Sets up the drag and drop capability for operations in the operations and recipe areas. * Sets up the drag and drop capability for operations in the operations and recipe areas.
*/ */
RecipeWaiter.prototype.initialise_operation_drag_n_drop = function() { RecipeWaiter.prototype.initialise_operation_drag_n_drop = function() {
var rec_list = document.getElementById("rec_list"), var rec_list = document.getElementById("rec_list");
op_lists = document.querySelectorAll(".category .op_list");
// Recipe list // Recipe list
@@ -102,7 +101,7 @@ RecipeWaiter.prototype.create_sortable_seed_list = function(list_el) {
*/ */
RecipeWaiter.prototype.op_sort_end = function(evt) { RecipeWaiter.prototype.op_sort_end = function(evt) {
if (this.remove_intent) { if (this.remove_intent) {
if (evt.item.parentNode.id == "rec_list") { if (evt.item.parentNode.id === "rec_list") {
evt.item.remove(); evt.item.remove();
} }
return; return;
@@ -197,7 +196,7 @@ RecipeWaiter.prototype.ing_change = function() {
RecipeWaiter.prototype.disable_click = function(e) { RecipeWaiter.prototype.disable_click = function(e) {
var icon = e.target; var icon = e.target;
if (icon.getAttribute("disabled") == "false") { if (icon.getAttribute("disabled") === "false") {
icon.setAttribute("disabled", "true"); icon.setAttribute("disabled", "true");
icon.classList.add("disable-icon-selected"); icon.classList.add("disable-icon-selected");
icon.parentNode.parentNode.classList.add("disabled"); icon.parentNode.parentNode.classList.add("disabled");
@@ -222,7 +221,7 @@ RecipeWaiter.prototype.disable_click = function(e) {
RecipeWaiter.prototype.breakpoint_click = function(e) { RecipeWaiter.prototype.breakpoint_click = function(e) {
var bp = e.target; var bp = e.target;
if (bp.getAttribute("break") == "false") { if (bp.getAttribute("break") === "false") {
bp.setAttribute("break", "true"); bp.setAttribute("break", "true");
bp.classList.add("breakpoint-selected"); bp.classList.add("breakpoint-selected");
} else { } else {
@@ -276,7 +275,7 @@ RecipeWaiter.prototype.get_config = function() {
ing_list = operations[i].querySelectorAll(".arg"); ing_list = operations[i].querySelectorAll(".arg");
for (var j = 0; j < ing_list.length; j++) { for (var j = 0; j < ing_list.length; j++) {
if (ing_list[j].getAttribute("type") == "checkbox") { if (ing_list[j].getAttribute("type") === "checkbox") {
// checkbox // checkbox
ingredients[j] = ing_list[j].checked; ingredients[j] = ing_list[j].checked;
} else if (ing_list[j].classList.contains("toggle-string")) { } else if (ing_list[j].classList.contains("toggle-string")) {
@@ -296,11 +295,11 @@ RecipeWaiter.prototype.get_config = function() {
args: ingredients args: ingredients
}; };
if (disabled && disabled.getAttribute("disabled") == "true") { if (disabled && disabled.getAttribute("disabled") === "true") {
item.disabled = true; item.disabled = true;
} }
if (bp && bp.getAttribute("break") == "true") { if (bp && bp.getAttribute("break") === "true") {
item.breakpoint = true; item.breakpoint = true;
} }
@@ -319,7 +318,7 @@ RecipeWaiter.prototype.get_config = function() {
RecipeWaiter.prototype.update_breakpoint_indicator = function(position) { RecipeWaiter.prototype.update_breakpoint_indicator = function(position) {
var operations = document.querySelectorAll("#rec_list li.operation"); var operations = document.querySelectorAll("#rec_list li.operation");
for (var i = 0; i < operations.length; i++) { for (var i = 0; i < operations.length; i++) {
if (i == position) { if (i === position) {
operations[i].classList.add("break"); operations[i].classList.add("break");
} else { } else {
operations[i].classList.remove("break"); operations[i].classList.remove("break");
@@ -360,10 +359,11 @@ RecipeWaiter.prototype.build_recipe_operation = function(el) {
*/ */
RecipeWaiter.prototype.add_operation = function(name) { RecipeWaiter.prototype.add_operation = function(name) {
var item = document.createElement("li"); var item = document.createElement("li");
item.classList.add("operation");
item.innerHTML = name; item.classList.add("operation");
this.build_recipe_operation(item); item.innerHTML = name;
document.getElementById("rec_list").appendChild(item); this.build_recipe_operation(item);
document.getElementById("rec_list").appendChild(item);
item.dispatchEvent(this.manager.operationadd); item.dispatchEvent(this.manager.operationadd);
return item; return item;
+38 -37
View File
@@ -22,17 +22,17 @@ SeasonalWaiter.prototype.load = function() {
var now = new Date(); var now = new Date();
// Snowfall // Snowfall
if (now.getMonth() == 11 && now.getDate() > 12) { // Dec 13 -> Dec 31 if (now.getMonth() === 11 && now.getDate() > 12) { // Dec 13 -> Dec 31
this.app.options.snow = false; this.app.options.snow = false;
this.create_snow_option(); this.create_snow_option();
this.manager.add_dynamic_listener(".option-item input:checkbox[option='snow']", "switchChange.bootstrapSwitch", this.let_it_snow, this); $(document).on("switchChange.bootstrapSwitch", ".option-item input:checkbox[option='snow']", this.let_it_snow.bind(this));
this.manager.add_window_listener("resize", this.let_it_snow, this); window.addEventListener("resize", this.let_it_snow.bind(this));
this.manager.add_listeners(".btn", "click", this.shake_off_snow, this); this.manager.add_listeners(".btn", "click", this.shake_off_snow, this);
if (now.getDate() == 25) this.let_it_snow(); if (now.getDate() === 25) this.let_it_snow();
} }
// SpiderChef // SpiderChef
// if (now.getMonth() == 3 && now.getDate() == 1) { // Apr 1 // if (now.getMonth() === 3 && now.getDate() === 1) { // Apr 1
// this.insert_spider_icons(); // this.insert_spider_icons();
// this.insert_spider_text(); // this.insert_spider_text();
// } // }
@@ -74,7 +74,7 @@ SeasonalWaiter.prototype.insert_spider_text = function() {
// Body // Body
SeasonalWaiter.tree_walk(document.body, function(node) { SeasonalWaiter.tree_walk(document.body, function(node) {
// process only text nodes // process only text nodes
if (node.nodeType == 3) { if (node.nodeType === 3) {
node.nodeValue = node.nodeValue.replace(/Cyber/g, "Spider"); node.nodeValue = node.nodeValue.replace(/Cyber/g, "Spider");
} }
}, true); }, true);
@@ -82,7 +82,7 @@ SeasonalWaiter.prototype.insert_spider_text = function() {
// Bake button // Bake button
SeasonalWaiter.tree_walk(document.getElementById("bake-group"), function(node) { SeasonalWaiter.tree_walk(document.getElementById("bake-group"), function(node) {
// process only text nodes // process only text nodes
if (node.nodeType == 3) { if (node.nodeType === 3) {
node.nodeValue = node.nodeValue.replace(/Bake/g, "Spin"); node.nodeValue = node.nodeValue.replace(/Bake/g, "Spin");
} }
}, true); }, true);
@@ -124,40 +124,41 @@ SeasonalWaiter.prototype.let_it_snow = function() {
if (firefox_version && parseInt(firefox_version[1], 10) < 30) { if (firefox_version && parseInt(firefox_version[1], 10) < 30) {
// Firefox < 30 // Firefox < 30
options = { options = {
flakeCount : 10, flakeCount: 10,
flakeColor : '#fff', flakeColor: "#fff",
flakePosition: 'absolute', flakePosition: "absolute",
minSize : 1, minSize: 1,
maxSize : 2, maxSize: 2,
minSpeed : 1, minSpeed: 1,
maxSpeed : 5, maxSpeed: 5,
round : false, round: false,
shadow : false, shadow: false,
collection : false, collection: false,
collectionHeight : 20, collectionHeight: 20,
deviceorientation : true deviceorientation: true
}; };
} else { } else {
// All other browsers // All other browsers
options = { options = {
flakeCount : 35, //35 flakeCount: 35,
flakeColor : '#fff', flakeColor: "#fff",
flakePosition: 'absolute', flakePosition: "absolute",
minSize : 5, minSize: 5,
maxSize : 8, maxSize: 8,
minSpeed : 1, minSpeed: 1,
maxSpeed : 5, maxSpeed: 5,
round : true, round: true,
shadow : true, shadow: true,
collection : ".btn", collection: ".btn",
collectionHeight : 20, collectionHeight: 20,
deviceorientation : true deviceorientation: true
}; };
} }
$(document).snowfall(options); $(document).snowfall(options);
}; };
/** /**
* When a button is clicked, shake the snow off that button. * When a button is clicked, shake the snow off that button.
* #letitsnow * #letitsnow
@@ -174,7 +175,7 @@ SeasonalWaiter.prototype.shake_off_snow = function(e) {
for (var i = 0; i < canvases.length; i++) { for (var i = 0; i < canvases.length; i++) {
canvas = canvases[i]; canvas = canvases[i];
if (canvas.style.left == rect.left + "px" && canvas.style.top == (rect.top - 20) + "px") { if (canvas.style.left === rect.left + "px" && canvas.style.top === (rect.top - 20) + "px") {
var ctx = canvas.getContext("2d"); var ctx = canvas.getContext("2d");
$(canvas).fadeOut("slow", remove_func); $(canvas).fadeOut("slow", remove_func);
@@ -191,13 +192,13 @@ SeasonalWaiter.prototype.shake_off_snow = function(e) {
*/ */
SeasonalWaiter.prototype.konami_code_listener = function(e) { SeasonalWaiter.prototype.konami_code_listener = function(e) {
this.kkeys.push(e.keyCode); this.kkeys.push(e.keyCode);
var konami = [38,38,40,40,37,39,37,39,66,65]; var konami = [38, 38, 40, 40, 37, 39, 37, 39, 66, 65];
for (var i = 0; i < this.kkeys.length; i++) { for (var i = 0; i < this.kkeys.length; i++) {
if (this.kkeys[i] != konami[i]) { if (this.kkeys[i] !== konami[i]) {
this.kkeys = []; this.kkeys = [];
break; break;
} }
if (i == konami.length - 1) { if (i === konami.length - 1) {
$("body").children().toggleClass("konami"); $("body").children().toggleClass("konami");
this.kkeys = []; this.kkeys = [];
} }
@@ -223,7 +224,7 @@ SeasonalWaiter.tree_walk = (function() {
return function(parent, fn, all_nodes) { return function(parent, fn, all_nodes) {
var node = parent.firstChild; var node = parent.firstChild;
while (node && node != parent) { while (node && node !== parent) {
if (all_nodes || node.nodeType === 1) { if (all_nodes || node.nodeType === 1) {
if (fn(node) === false) { if (fn(node) === false) {
return(false); return(false);
@@ -242,7 +243,7 @@ SeasonalWaiter.tree_walk = (function() {
} else { } else {
// No child and no nextsibling // No child and no nextsibling
// Find parent that has a nextSibling // Find parent that has a nextSibling
while ((node = node.parentNode) != parent) { while ((node = node.parentNode) !== parent) {
if (node.nextSibling) { if (node.nextSibling) {
node = node.nextSibling; node = node.nextSibling;
break; break;
+14
View File
@@ -1,5 +1,6 @@
203 source files 203 source files
<<<<<<< HEAD <<<<<<< HEAD
<<<<<<< HEAD
104401 lines 104401 lines
size size
@@ -14,6 +15,14 @@
95313 lines 95313 lines
3.5M size 3.5M size
>>>>>>> master >>>>>>> master
=======
104466 lines
4.0M size
136 JavaScript source files
95316 lines
3.4M size
>>>>>>> master
78 third party JavaScript source files 78 third party JavaScript source files
76377 lines 76377 lines
@@ -21,12 +30,17 @@
58 first party JavaScript source files 58 first party JavaScript source files
<<<<<<< HEAD <<<<<<< HEAD
<<<<<<< HEAD
18934 lines 18934 lines
729K size 729K size
======= =======
18936 lines 18936 lines
728K size 728K size
>>>>>>> master >>>>>>> master
=======
18939 lines
724K size
>>>>>>> master
3.2M uncompressed JavaScript size 3.2M uncompressed JavaScript size
1.7M compressed JavaScript size 1.7M compressed JavaScript size