diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/workflowengine/js/workflowengine.js | 2 | ||||
-rw-r--r-- | apps/workflowengine/js/workflowengine.js.map | 2 | ||||
-rw-r--r-- | apps/workflowengine/webpack.js | 5 |
3 files changed, 5 insertions, 4 deletions
diff --git a/apps/workflowengine/js/workflowengine.js b/apps/workflowengine/js/workflowengine.js index 30a5d7b28c5..f1aaa5245ad 100644 --- a/apps/workflowengine/js/workflowengine.js +++ b/apps/workflowengine/js/workflowengine.js @@ -1,2 +1,2 @@ -!function(e){var t={};function n(a){if(t[a])return t[a].exports;var r=t[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(a,r,function(t){return e[t]}.bind(null,r));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/js/",n(n.s=31)}([function(e,t,n){"use strict";t.__esModule=!0,t.extend=i,t.indexOf=function(e,t){for(var n=0,a=e.length;n<a;n++)if(e[n]===t)return n;return-1},t.escapeExpression=function(e){if("string"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return"";if(!e)return e+"";e=""+e}if(!l.test(e))return e;return e.replace(r,o)},t.isEmpty=function(e){return!e&&0!==e||!(!u(e)||0!==e.length)},t.createFrame=function(e){var t=i({},e);return t._parent=e,t},t.blockParams=function(e,t){return e.path=t,e},t.appendContextPath=function(e,t){return(e?e+".":"")+t};var a={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},r=/[&<>"'`=]/g,l=/[&<>"'`=]/;function o(e){return a[e]}function i(e){for(var t=1;t<arguments.length;t++)for(var n in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],n)&&(e[n]=arguments[t][n]);return e}var s=Object.prototype.toString;t.toString=s;var c=function(e){return"function"==typeof e};c(/x/)&&(t.isFunction=c=function(e){return"function"==typeof e&&"[object Function]"===s.call(e)}),t.isFunction=c;var u=Array.isArray||function(e){return!(!e||"object"!=typeof e)&&"[object Array]"===s.call(e)};t.isArray=u},function(e,t,n){"use strict";t.__esModule=!0;var a=["description","fileName","lineNumber","message","name","number","stack"];function r(e,t){var n=t&&t.loc,l=void 0,o=void 0;n&&(e+=" - "+(l=n.start.line)+":"+(o=n.start.column));for(var i=Error.prototype.constructor.call(this,e),s=0;s<a.length;s++)this[a[s]]=i[a[s]];Error.captureStackTrace&&Error.captureStackTrace(this,r);try{n&&(this.lineNumber=l,Object.defineProperty?Object.defineProperty(this,"column",{value:o,enumerable:!0}):this.column=o)}catch(e){}}r.prototype=new Error,t.default=r,e.exports=t.default},function(e,t,n){e.exports=n(6).default},function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.HandlebarsEnvironment=c;var r=n(0),l=a(n(1)),o=n(7),i=n(15),s=a(n(17));t.VERSION="4.1.2";t.COMPILER_REVISION=7;t.REVISION_CHANGES={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};function c(e,t,n){this.helpers=e||{},this.partials=t||{},this.decorators=n||{},o.registerDefaultHelpers(this),i.registerDefaultDecorators(this)}c.prototype={constructor:c,logger:s.default,log:s.default.log,registerHelper:function(e,t){if("[object Object]"===r.toString.call(e)){if(t)throw new l.default("Arg not supported with multiple helpers");r.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if("[object Object]"===r.toString.call(e))r.extend(this.partials,e);else{if(void 0===t)throw new l.default('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,t){if("[object Object]"===r.toString.call(e)){if(t)throw new l.default("Arg not supported with multiple decorators");r.extend(this.decorators,e)}else this.decorators[e]=t},unregisterDecorator:function(e){delete this.decorators[e]}};var u=s.default.log;t.log=u,t.createFrame=r.createFrame,t.logger=s.default},function(e,t,n){var a=n(2);e.exports=(a.default||a).template({compiler:[7,">= 4.0.0"],main:function(e,t,n,a,r){return'var Handlebars = require("../../../../node_modules/handlebars/runtime.js");\nfunction __default(obj) { return obj && (obj.__esModule ? obj["default"] : obj); }\nmodule.exports = (Handlebars["default"] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) {\n return " modified";\n},"3":function(container,depth0,helpers,partials,data) {\n return "\t\t\t<span class=\\"button-delete icon-delete\\"></span>\\n";\n},"5":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression;\n\n return "\t\t\t<div class=\\"check\\" data-id=\\""\n + alias4(((helper = (helper = helpers.index || (data && data.index)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"index","hash":{},"data":data}) : helper)))\n + "\\">\\n\t\t\t\t<select class=\\"check-class\\">\\n"\n + ((stack1 = helpers.each.call(alias1,(depths[1] != null ? depths[1].classes : depths[1]),{"name":"each","hash":{},"fn":container.program(6, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "")\n + "\t\t\t\t</select>\\n\t\t\t\t<select class=\\"check-operator\\">\\n"\n + ((stack1 = helpers.each.call(alias1,(helpers.getOperators || (depth0 && depth0.getOperators) || alias2).call(alias1,(depth0 != null ? depth0["class"] : depth0),{"name":"getOperators","hash":{},"data":data}),{"name":"each","hash":{},"fn":container.program(8, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "")\n + "\t\t\t\t</select>\\n\t\t\t\t<input type=\\"text\\" class=\\"check-value\\" value=\\""\n + alias4(((helper = (helper = helpers.value || (depth0 != null ? depth0.value : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"value","hash":{},"data":data}) : helper)))\n + "\\">\\n\t\t\t\t<span class=\\"button-delete-check icon-delete\\"></span>\\n\t\t\t</div>\\n";\n},"6":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression;\n\n return "\t\t\t\t\t\t<option value=\\""\n + alias4(((helper = (helper = helpers["class"] || (depth0 != null ? depth0["class"] : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"class","hash":{},"data":data}) : helper)))\n + "\\" "\n + ((stack1 = (helpers.selectItem || (depth0 && depth0.selectItem) || alias2).call(alias1,(depth0 != null ? depth0["class"] : depth0),(depths[1] != null ? depths[1]["class"] : depths[1]),{"name":"selectItem","hash":{},"data":data})) != null ? stack1 : "")\n + ">"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data}) : helper)))\n + "</option>\\n";\n},"8":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression;\n\n return "\t\t\t\t\t\t<option value=\\""\n + alias4(((helper = (helper = helpers.operator || (depth0 != null ? depth0.operator : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"operator","hash":{},"data":data}) : helper)))\n + "\\" "\n + ((stack1 = (helpers.selectItem || (depth0 && depth0.selectItem) || alias2).call(alias1,(depth0 != null ? depth0.operator : depth0),(depths[1] != null ? depths[1].operator : depths[1]),{"name":"selectItem","hash":{},"data":data})) != null ? stack1 : "")\n + ">"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data}) : helper)))\n + "</option>\\n";\n},"10":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return ((stack1 = helpers["if"].call(alias1,((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.id : stack1),{"name":"if","hash":{},"fn":container.program(11, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")\n + "\t\t<button class=\\"button-save pull-right\\">"\n + container.escapeExpression(((helper = (helper = helpers.saveTXT || (depth0 != null ? depth0.saveTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(alias1,{"name":"saveTXT","hash":{},"data":data}) : helper)))\n + "</button>\\n";\n},"11":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return "\t\t\t<button class=\\"button-reset pull-right\\">"\n + container.escapeExpression(((helper = (helper = helpers.resetTXT || (depth0 != null ? depth0.resetTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"resetTXT","hash":{},"data":data}) : helper)))\n + "</button>\\n";\n},"13":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return "\t\t<span class=\\"icon-loading-small pull-right\\"></span>\\n\t\t<span class=\\"pull-right\\">"\n + container.escapeExpression(((helper = (helper = helpers.savingTXT || (depth0 != null ? depth0.savingTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"savingTXT","hash":{},"data":data}) : helper)))\n + "</span>\\n\t";\n},"15":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers["if"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.message : depth0),{"name":"if","hash":{},"fn":container.program(16, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "");\n},"16":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return "\\n\t\t<span class=\\"msg pull-right "\n + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.errorMessage : depth0),{"name":"if","hash":{},"fn":container.program(17, data, 0),"inverse":container.program(19, data, 0),"data":data})) != null ? stack1 : "")\n + "\\">\\n\t\t\t\t\t"\n + container.escapeExpression(((helper = (helper = helpers.message || (depth0 != null ? depth0.message : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(alias1,{"name":"message","hash":{},"data":data}) : helper)))\n + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.errorMessage : depth0),{"name":"if","hash":{},"fn":container.program(21, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")\n + "\\n\t\t\t\t</span>\\n\t";\n},"17":function(container,depth0,helpers,partials,data) {\n return "error";\n},"19":function(container,depth0,helpers,partials,data) {\n return "success";\n},"21":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return " "\n + container.escapeExpression(((helper = (helper = helpers.errorMessage || (depth0 != null ? depth0.errorMessage : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"errorMessage","hash":{},"data":data}) : helper)));\n},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda;\n\n return "<div class=\\"operation"\n + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.hasChanged : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "")\n + "\\">\\n\t<div class=\\"operation-header\\">\\n\t\t<input type=\\"text\\" class=\\"operation-name\\" placeholder=\\""\n + alias4(((helper = (helper = helpers.shortRuleDescTXT || (depth0 != null ? depth0.shortRuleDescTXT : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"shortRuleDescTXT","hash":{},"data":data}) : helper)))\n + "\\" value=\\""\n + alias4(alias5(((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.name : stack1), depth0))\n + "\\" />\\n\t\t<input type=\\"text\\" class=\\"operation-operation\\" value=\\""\n + alias4(alias5(((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.operation : stack1), depth0))\n + "\\" />\\n"\n + ((stack1 = helpers["if"].call(alias1,((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.id : stack1),{"name":"if","hash":{},"fn":container.program(3, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "")\n + "\t</div>\\n\\n\t<div class=\\"checks\\">\\n"\n + ((stack1 = helpers.each.call(alias1,((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.checks : stack1),{"name":"each","hash":{},"fn":container.program(5, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "")\n + "\t</div>\\n\t<button class=\\"button-add\\">"\n + alias4(((helper = (helper = helpers.addRuleTXT || (depth0 != null ? depth0.addRuleTXT : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"addRuleTXT","hash":{},"data":data}) : helper)))\n + "</button>\\n"\n + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.hasChanged : depth0),{"name":"if","hash":{},"fn":container.program(10, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "")\n + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.saving : depth0),{"name":"if","hash":{},"fn":container.program(13, data, 0, blockParams, depths),"inverse":container.program(15, data, 0, blockParams, depths),"data":data})) != null ? stack1 : "")\n + "\\n</div>\\n";\n},"useData":true,"useDepths":true});'},useData:!0})},function(e,t,n){var a=n(2);e.exports=(a.default||a).template({compiler:[7,">= 4.0.0"],main:function(e,t,n,a,r){return'var Handlebars = require("../../../../node_modules/handlebars/runtime.js");\nfunction __default(obj) { return obj && (obj.__esModule ? obj["default"] : obj); }\nmodule.exports = (Handlebars["default"] || Handlebars).template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return "<div class=\\"operations\\"></div>\\n<button class=\\"button-add-operation\\">"\n + container.escapeExpression(((helper = (helper = helpers.addRuleGroupTXT || (depth0 != null ? depth0.addRuleGroupTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"addRuleGroupTXT","hash":{},"data":data}) : helper)))\n + "</button>\\n";\n},"useData":true});'},useData:!0})},function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}t.__esModule=!0;var l=r(n(3)),o=a(n(18)),i=a(n(1)),s=r(n(0)),c=r(n(19)),u=a(n(20));function p(){var e=new l.HandlebarsEnvironment;return s.extend(e,l),e.SafeString=o.default,e.Exception=i.default,e.Utils=s,e.escapeExpression=s.escapeExpression,e.VM=c,e.template=function(t){return c.template(t,e)},e}var d=p();d.create=p,u.default(d),d.default=d,t.default=d,e.exports=t.default},function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.registerDefaultHelpers=function(e){r.default(e),l.default(e),o.default(e),i.default(e),s.default(e),c.default(e),u.default(e)};var r=a(n(8)),l=a(n(9)),o=a(n(10)),i=a(n(11)),s=a(n(12)),c=a(n(13)),u=a(n(14))},function(e,t,n){"use strict";t.__esModule=!0;var a=n(0);t.default=function(e){e.registerHelper("blockHelperMissing",function(t,n){var r=n.inverse,l=n.fn;if(!0===t)return l(this);if(!1===t||null==t)return r(this);if(a.isArray(t))return t.length>0?(n.ids&&(n.ids=[n.name]),e.helpers.each(t,n)):r(this);if(n.data&&n.ids){var o=a.createFrame(n.data);o.contextPath=a.appendContextPath(n.data.contextPath,n.name),n={data:o}}return l(t,n)})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var a,r=n(0),l=n(1),o=(a=l)&&a.__esModule?a:{default:a};t.default=function(e){e.registerHelper("each",function(e,t){if(!t)throw new o.default("Must pass iterator to #each");var n=t.fn,a=t.inverse,l=0,i="",s=void 0,c=void 0;function u(t,a,l){s&&(s.key=t,s.index=a,s.first=0===a,s.last=!!l,c&&(s.contextPath=c+t)),i+=n(e[t],{data:s,blockParams:r.blockParams([e[t],t],[c+t,null])})}if(t.data&&t.ids&&(c=r.appendContextPath(t.data.contextPath,t.ids[0])+"."),r.isFunction(e)&&(e=e.call(this)),t.data&&(s=r.createFrame(t.data)),e&&"object"==typeof e)if(r.isArray(e))for(var p=e.length;l<p;l++)l in e&&u(l,l,l===e.length-1);else{var d=void 0;for(var h in e)e.hasOwnProperty(h)&&(void 0!==d&&u(d,l-1),d=h,l++);void 0!==d&&u(d,l-1,!0)}return 0===l&&(i=a(this)),i})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var a,r=n(1),l=(a=r)&&a.__esModule?a:{default:a};t.default=function(e){e.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new l.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var a=n(0);t.default=function(e){e.registerHelper("if",function(e,t){return a.isFunction(e)&&(e=e.call(this)),!t.hash.includeZero&&!e||a.isEmpty(e)?t.inverse(this):t.fn(this)}),e.registerHelper("unless",function(t,n){return e.helpers.if.call(this,t,{fn:n.inverse,inverse:n.fn,hash:n.hash})})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){e.registerHelper("log",function(){for(var t=[void 0],n=arguments[arguments.length-1],a=0;a<arguments.length-1;a++)t.push(arguments[a]);var r=1;null!=n.hash.level?r=n.hash.level:n.data&&null!=n.data.level&&(r=n.data.level),t[0]=r,e.log.apply(e,t)})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){e.registerHelper("lookup",function(e,t){return e?"constructor"!==t||e.propertyIsEnumerable(t)?e[t]:void 0:e})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var a=n(0);t.default=function(e){e.registerHelper("with",function(e,t){a.isFunction(e)&&(e=e.call(this));var n=t.fn;if(a.isEmpty(e))return t.inverse(this);var r=t.data;return t.data&&t.ids&&((r=a.createFrame(t.data)).contextPath=a.appendContextPath(t.data.contextPath,t.ids[0])),n(e,{data:r,blockParams:a.blockParams([e],[r&&r.contextPath])})})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.registerDefaultDecorators=function(e){l.default(e)};var a,r=n(16),l=(a=r)&&a.__esModule?a:{default:a}},function(e,t,n){"use strict";t.__esModule=!0;var a=n(0);t.default=function(e){e.registerDecorator("inline",function(e,t,n,r){var l=e;return t.partials||(t.partials={},l=function(r,l){var o=n.partials;n.partials=a.extend({},o,t.partials);var i=e(r,l);return n.partials=o,i}),t.partials[r.args[0]]=r.fn,l})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var a=n(0),r={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(e){if("string"==typeof e){var t=a.indexOf(r.methodMap,e.toLowerCase());e=t>=0?t:parseInt(e,10)}return e},log:function(e){if(e=r.lookupLevel(e),"undefined"!=typeof console&&r.lookupLevel(r.level)<=e){var t=r.methodMap[e];console[t]||(t="log");for(var n=arguments.length,a=Array(n>1?n-1:0),l=1;l<n;l++)a[l-1]=arguments[l];console[t].apply(console,a)}}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";function a(e){this.string=e}t.__esModule=!0,a.prototype.toString=a.prototype.toHTML=function(){return""+this.string},t.default=a,e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.checkRevision=function(e){var t=e&&e[0]||1,n=i.COMPILER_REVISION;if(t!==n){if(t<n){var a=i.REVISION_CHANGES[n],r=i.REVISION_CHANGES[t];throw new o.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+a+") or downgrade your runtime to an older version ("+r+").")}throw new o.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+e[1]+").")}},t.template=function(e,t){if(!t)throw new o.default("No environment passed to template");if(!e||!e.main)throw new o.default("Unknown template object: "+typeof e);e.main.decorator=e.main_d,t.VM.checkRevision(e.compiler);var n={strict:function(e,t){if(!(t in e))throw new o.default('"'+t+'" not defined in '+e);return e[t]},lookup:function(e,t){for(var n=e.length,a=0;a<n;a++)if(e[a]&&null!=e[a][t])return e[a][t]},lambda:function(e,t){return"function"==typeof e?e.call(t):e},escapeExpression:r.escapeExpression,invokePartial:function(n,a,l){l.hash&&(a=r.extend({},a,l.hash),l.ids&&(l.ids[0]=!0));n=t.VM.resolvePartial.call(this,n,a,l);var i=t.VM.invokePartial.call(this,n,a,l);null==i&&t.compile&&(l.partials[l.name]=t.compile(n,e.compilerOptions,t),i=l.partials[l.name](a,l));if(null!=i){if(l.indent){for(var s=i.split("\n"),c=0,u=s.length;c<u&&(s[c]||c+1!==u);c++)s[c]=l.indent+s[c];i=s.join("\n")}return i}throw new o.default("The partial "+l.name+" could not be compiled when running in runtime-only mode")},fn:function(t){var n=e[t];return n.decorator=e[t+"_d"],n},programs:[],program:function(e,t,n,a,r){var l=this.programs[e],o=this.fn(e);return t||r||a||n?l=s(this,e,o,t,n,a,r):l||(l=this.programs[e]=s(this,e,o)),l},data:function(e,t){for(;e&&t--;)e=e._parent;return e},merge:function(e,t){var n=e||t;return e&&t&&e!==t&&(n=r.extend({},t,e)),n},nullContext:Object.seal({}),noop:t.VM.noop,compilerInfo:e.compiler};function a(t){var r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],l=r.data;a._setup(r),!r.partial&&e.useData&&(l=function(e,t){t&&"root"in t||((t=t?i.createFrame(t):{}).root=e);return t}(t,l));var o=void 0,s=e.useBlockParams?[]:void 0;function c(t){return""+e.main(n,t,n.helpers,n.partials,l,s,o)}return e.useDepths&&(o=r.depths?t!=r.depths[0]?[t].concat(r.depths):r.depths:[t]),(c=u(e.main,c,n,r.depths||[],l,s))(t,r)}return a.isTop=!0,a._setup=function(a){a.partial?(n.helpers=a.helpers,n.partials=a.partials,n.decorators=a.decorators):(n.helpers=n.merge(a.helpers,t.helpers),e.usePartial&&(n.partials=n.merge(a.partials,t.partials)),(e.usePartial||e.useDecorators)&&(n.decorators=n.merge(a.decorators,t.decorators)))},a._child=function(t,a,r,l){if(e.useBlockParams&&!r)throw new o.default("must pass block params");if(e.useDepths&&!l)throw new o.default("must pass parent depths");return s(n,t,e[t],a,0,r,l)},a},t.wrapProgram=s,t.resolvePartial=function(e,t,n){e?e.call||n.name||(n.name=e,e=n.partials[e]):e="@partial-block"===n.name?n.data["partial-block"]:n.partials[n.name];return e},t.invokePartial=function(e,t,n){var a=n.data&&n.data["partial-block"];n.partial=!0,n.ids&&(n.data.contextPath=n.ids[0]||n.data.contextPath);var l=void 0;n.fn&&n.fn!==c&&function(){n.data=i.createFrame(n.data);var e=n.fn;l=n.data["partial-block"]=function(t){var n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return n.data=i.createFrame(n.data),n.data["partial-block"]=a,e(t,n)},e.partials&&(n.partials=r.extend({},n.partials,e.partials))}();void 0===e&&l&&(e=l);if(void 0===e)throw new o.default("The partial "+n.name+" could not be found");if(e instanceof Function)return e(t,n)},t.noop=c;var a,r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(0)),l=n(1),o=(a=l)&&a.__esModule?a:{default:a},i=n(3);function s(e,t,n,a,r,l,o){function i(t){var r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],i=o;return!o||t==o[0]||t===e.nullContext&&null===o[0]||(i=[t].concat(o)),n(e,t,e.helpers,e.partials,r.data||a,l&&[r.blockParams].concat(l),i)}return(i=u(n,i,e,o,a,l)).program=t,i.depth=o?o.length:0,i.blockParams=r||0,i}function c(){return""}function u(e,t,n,a,l,o){if(e.decorator){var i={};t=e.decorator(t,i,n,a&&a[0],l,o,a),r.extend(t,i)}return t}},function(e,t,n){"use strict";(function(n){t.__esModule=!0,t.default=function(e){var t=void 0!==n?n:window,a=t.Handlebars;e.noConflict=function(){return t.Handlebars===e&&(t.Handlebars=a),e}},e.exports=t.default}).call(this,n(21))},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.FileMimeTypePlugin={getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\FileMimeType",name:t("workflowengine","File MIME type"),operators:[{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")},{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")}]}},render:function(e,n){if("OCA\\WorkflowEngine\\Check\\FileMimeType"===n.class){var a="text/plain";"matches"!==n.operator&&"!matches"!==n.operator||(a="/^text\\/(plain|html)$/i",this._validateRegex(n.value)?$(e).removeClass("invalid-input"):$(e).addClass("invalid-input")),$(e).css("width","250px").attr("placeholder",a).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:a})).addClass("has-tooltip").tooltip({placement:"bottom"})}},_validateRegex:function(e){return null!==/^\/(.*)\/([gui]{0,3})$/.exec(e)}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.FileMimeTypePlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.FileNamePlugin={getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\FileName",name:t("workflowengine","File name"),operators:[{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")},{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")}]}},render:function(e,n){if("OCA\\WorkflowEngine\\Check\\FileName"===n.class){var a="dummy.jpg";"matches"!==n.operator&&"!matches"!==n.operator||(a="/^dummy-.+$/i",this._validateRegex(n.value)?$(e).removeClass("invalid-input"):$(e).addClass("invalid-input")),$(e).css("width","250px").attr("placeholder",a).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:a})).addClass("has-tooltip").tooltip({placement:"bottom"})}},_validateRegex:function(e){return null!==/^\/(.*)\/([gui]{0,3})$/.exec(e)}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.FileNamePlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.FileSizePlugin={getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\FileSize",name:t("workflowengine","File size (upload)"),operators:[{operator:"less",name:t("workflowengine","less")},{operator:"!greater",name:t("workflowengine","less or equals")},{operator:"!less",name:t("workflowengine","greater or equals")},{operator:"greater",name:t("workflowengine","greater")}]}},render:function(e,n){"OCA\\WorkflowEngine\\Check\\FileSize"===n.class&&$(e).css("width","250px").attr("placeholder","12 MB").attr("title",t("workflowengine","Example: {placeholder}",{placeholder:"12 MB"})).addClass("has-tooltip").tooltip({placement:"bottom"})}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.FileSizePlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.FileSystemTagsPlugin={getCheck:function(){return this.collection=OC.SystemTags.collection,{class:"OCA\\WorkflowEngine\\Check\\FileSystemTags",name:t("workflowengine","File system tag"),operators:[{operator:"is",name:t("workflowengine","is tagged with")},{operator:"!is",name:t("workflowengine","is not tagged with")}]}},render:function(e,n){"OCA\\WorkflowEngine\\Check\\FileSystemTags"===n.class&&($(e).css("width","400px"),$(e).select2({allowClear:!1,multiple:!1,placeholder:t("workflowengine","Select tag…"),query:_.debounce(function(e){e.callback({results:OC.SystemTags.collection.filterByName(e.term)})},100,!0),id:function(e){return e.get("id")},initSelection:function(e,t){t($(e).val())},formatResult:function(e){return OC.SystemTags.getDescriptiveTag(e)},formatSelection:function(e){var t=OC.SystemTags.collection.get(e);if(!_.isUndefined(t))return OC.SystemTags.getDescriptiveTag(t)},escapeMarkup:function(e){return e}}))}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.FileSystemTagsPlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.RequestRemoteAddressPlugin={getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\RequestRemoteAddress",name:t("workflowengine","Request remote address"),operators:[{operator:"matchesIPv4",name:t("workflowengine","matches IPv4")},{operator:"!matchesIPv4",name:t("workflowengine","does not match IPv4")},{operator:"matchesIPv6",name:t("workflowengine","matches IPv6")},{operator:"!matchesIPv6",name:t("workflowengine","does not match IPv6")}]}},render:function(e,n){if("OCA\\WorkflowEngine\\Check\\RequestRemoteAddress"===n.class){var a="127.0.0.1/32";"matchesIPv6"===n.operator||"!matchesIPv6"===n.operator?(a="::1/128",this._validateIPv6(n.value)?$(e).removeClass("invalid-input"):$(e).addClass("invalid-input")):this._validateIPv4(n.value)?$(e).removeClass("invalid-input"):$(e).addClass("invalid-input"),$(e).css("width","300px").attr("placeholder",a).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:a})).addClass("has-tooltip").tooltip({placement:"bottom"})}},_validateIPv4:function(e){return null!==/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(3[0-2]|[1-2][0-9]|[1-9])$/.exec(e)},_validateIPv6:function(e){return null!==/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(1([01][0-9]|2[0-8])|[1-9][0-9]|[0-9])$/.exec(e)}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.RequestRemoteAddressPlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.RequestTimePlugin={timezones:["Europe/Berlin","Europe/London"],_$element:null,getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\RequestTime",name:t("workflowengine","Request time"),operators:[{operator:"in",name:t("workflowengine","between")},{operator:"!in",name:t("workflowengine","not between")}]}},render:function(e,n){if("OCA\\WorkflowEngine\\Check\\RequestTime"===n.class){var a="09:00",r="18:00",l=jstz.determine().name(),o=$(e);if(_.isString(n.value)&&""!==n.value){var i=JSON.parse(n.value),s=i[0].split(" ",2),c=i[1].split(" ",2);a=s[0],r=c[0],l=s[1]}var u=JSON.stringify([a+" "+l,r+" "+l]);n.value!==u&&(n.value=u,o.val(u)),o.css("display","none"),$("<input>").attr("type","text").attr("placeholder",t("workflowengine","Start")).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:"16:00"})).addClass("has-tooltip").tooltip({placement:"bottom"}).addClass("start").val(a).insertBefore(o),$("<input>").attr("type","text").attr("placeholder",t("workflowengine","End")).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:"16:00"})).addClass("has-tooltip").tooltip({placement:"bottom"}).addClass("end").val(r).insertBefore(o);var p=$("<input>").attr("type","hidden").css("width","250px").insertBefore(o).val(l);p.select2({allowClear:!1,multiple:!1,placeholder:t("workflowengine","Select timezone…"),ajax:{url:OC.generateUrl("apps/workflowengine/timezones"),dataType:"json",quietMillis:100,data:function(e){return""===e&&(e=(e=jstz.determine().name().split("/"))[0]),{search:e}},results:function(e){var t=[];return $.each(e,function(e){t.push({id:e})}),{results:t,more:!1}}},initSelection:function(e,t){t(e.val())},formatResult:function(e){return"<span>"+e.id+"</span>"},formatSelection:function(e){return _.isUndefined(e.id)||(e=e.id),"<span>"+e+"</span>"}}),p.addClass("timezone"),o.parent().on("change",".start",_.bind(this.update,this)).on("change",".end",_.bind(this.update,this)).on("change",".timezone",_.bind(this.update,this)),this._$element=o}},update:function(e){for(var t=e.target.value,n=null,a=0;a<e.target.classList.length;a++)n=e.target.classList[a];if(null!==n){var r=JSON.parse(this._$element.val()),l=moment(r[0].split(" ",2)[0],"H:m Z"),o=moment(r[1].split(" ",2)[0],"H:m Z"),i=r[0].split(" ",2)[1];if("start"===n||"end"===n){var s=moment(t,["H:m","h:m a"],!0).format("HH:mm");if("Invalid date"===s)return;var c=0;"end"===n&&(c=1),r[c]=s+" "+i}"timezone"===n&&(r[0]=l.format("HH:mm")+" "+t,r[1]=o.format("HH:mm")+" "+t),this._$element.val(JSON.stringify(r)),this._$element.trigger("change")}else console.warn("update triggered but element doesn't have any class")}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.RequestTimePlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.RequestURLPlugin={predefinedValues:["webdav"],getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\RequestURL",name:t("workflowengine","Request URL"),operators:[{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")},{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")}]}},render:function(e,n){if("OCA\\WorkflowEngine\\Check\\RequestURL"===n.class){var a="https://localhost/index.php";if("matches"!==n.operator&&"!matches"!==n.operator||(a="/^https\\:\\/\\/localhost\\/index\\.php$/i"),$(e).css("width","250px").attr("placeholder",a).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:a})).addClass("has-tooltip").tooltip({placement:"bottom"}),"matches"===n.operator||"!matches"===n.operator)this._validateRegex(n.value)?$(e).removeClass("invalid-input"):$(e).addClass("invalid-input");else{var r=this,l=[{text:t("workflowengine","Predefined URLs"),children:[{id:"webdav",text:t("workflowengine","Files WebDAV")}]}];-1===this.predefinedValues.indexOf(n.value)&&l.unshift({id:n.value,text:n.value}),$(e).select2({data:l,createSearchChoice:function(e){if(-1===r.predefinedValues.indexOf(n.value))return{id:e,text:e}},id:function(e){return e.id},formatResult:function(e){return e.text},formatSelection:function(e){return e.text},escapeMarkup:function(e){return e}})}}},_validateRegex:function(e){return null!==/^\/(.*)\/([gui]{0,3})$/.exec(e)}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.RequestURLPlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.RequestUserAgentPlugin={predefinedValues:["android","ios","desktop"],getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\RequestUserAgent",name:t("workflowengine","Request user agent"),operators:[{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")},{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")}]}},render:function(e,n){if("OCA\\WorkflowEngine\\Check\\RequestUserAgent"===n.class){var a="Mozilla/5.0 User Agent";if("matches"!==n.operator&&"!matches"!==n.operator||(a="/^Mozilla\\/5\\.0 (.*)$/i"),$(e).css("width","250px").attr("placeholder",a).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:a})).addClass("has-tooltip").tooltip({placement:"bottom"}),"matches"===n.operator||"!matches"===n.operator)this._validateRegex(n.value)?$(e).removeClass("invalid-input"):$(e).addClass("invalid-input");else{var r=this,l=[{text:t("workflowengine","Sync clients"),children:[{id:"android",text:t("workflowengine","Android client")},{id:"ios",text:t("workflowengine","iOS client")},{id:"desktop",text:t("workflowengine","Desktop client")},{id:"mail",text:t("workflowengine","Thunderbird & Outlook addons")}]}];-1===this.predefinedValues.indexOf(n.value)&&l.unshift({id:n.value,text:n.value}),$(e).select2({data:l,createSearchChoice:function(e){if(-1===r.predefinedValues.indexOf(n.value))return{id:e,text:e}},id:function(e){return e.id},formatResult:function(e){return e.text},formatSelection:function(e){return e.text},escapeMarkup:function(e){return e}})}}},_validateRegex:function(e){return null!==/^\/(.*)\/([gui]{0,3})$/.exec(e)}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.RequestUserAgentPlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.UserGroupMembershipPlugin={getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\UserGroupMembership",name:t("workflowengine","User group membership"),operators:[{operator:"is",name:t("workflowengine","is member of")},{operator:"!is",name:t("workflowengine","is not member of")}]}},render:function(e,t,n){"OCA\\WorkflowEngine\\Check\\UserGroupMembership"===t.class&&($(e).css("width","400px"),$(e).select2({data:{results:n,text:"displayname"},initSelection:function(e,t){var a=e.val();a&&n.length>0?t({id:a,displayname:n.find(function(e){return e.id===a}).displayname}):a?t({id:a,displayname:a}):t()},formatResult:function(e){return"<span>"+escapeHTML(e.displayname)+"</span>"},formatSelection:function(e){return'<span title="'+escapeHTML(e.id)+'">'+escapeHTML(e.displayname)+"</span>"}}))}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.UserGroupMembershipPlugin)},function(e,n,a){"use strict";a.r(n);var r=a(4),l=a.n(r),o=a(5),i=a.n(o);OCA.WorkflowEngine=_.extend(OCA.WorkflowEngine||{},{availablePlugins:[],availableChecks:[],getCheckByClass:function(e){for(var t=OCA.WorkflowEngine.availableChecks.length,n=0;n<t;n++)if(OCA.WorkflowEngine.availableChecks[n].class===e)return OCA.WorkflowEngine.availableChecks[n]}}),OCA.WorkflowEngine.Operation=OC.Backbone.Model.extend({defaults:{class:"OCA\\WorkflowEngine\\Operation",name:"",checks:[],operation:""}}),OCA.WorkflowEngine.OperationsCollection=OC.Backbone.Collection.extend({model:OCA.WorkflowEngine.Operation,url:OC.generateUrl("apps/workflowengine/operations")}),OCA.WorkflowEngine.OperationView=OC.Backbone.View.extend({templateId:"#operation-template",events:{"change .check-class":"checkChanged","change .check-operator":"checkChanged","change .check-value":"checkChanged","change .operation-name":"operationChanged","change .operation-operation":"operationChanged","click .button-reset":"reset","click .button-save":"save","click .button-add":"add","click .button-delete":"delete","click .button-delete-check":"deleteCheck"},originalModel:null,hasChanged:!1,message:"",errorMessage:"",saving:!1,groups:[],template:function(e){return l()(_.extend({shortRuleDescTXT:t("workflowengine","Short rule description"),addRuleTXT:t("workflowengine","Add rule"),resetTXT:t("workflowengine","Reset"),saveTXT:t("workflowengine","Save"),savingTXT:t("workflowengine","Saving…")},e))},initialize:function(){this.originalModel=JSON.parse(JSON.stringify(this.model)),this.model.on("change",function(){console.log("model changed"),this.hasChanged=!0,this.render()},this),void 0===this.model.get("id")&&(this.hasChanged=!0);var e=this;$.ajax({url:OC.linkToOCS("cloud/groups",2)+"details",dataType:"json",quietMillis:100}).success(function(n){n.ocs.data.groups&&n.ocs.data.groups.length>0?(n.ocs.data.groups.forEach(function(t){e.groups.push({id:t.id,displayname:t.displayname})}),e.render()):(OC.Notification.error(t("workflowengine","Group list is empty"),{type:"error"}),console.log(n))}).error(function(e){OC.Notification.error(t("workflowengine","Unable to retrieve the group list"),{type:"error"}),console.log(e)})},delete:function(){OC.PasswordConfirmation.requiresPasswordConfirmation()?OC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.delete,this)):(this.model.destroy(),this.remove())},reset:function(){this.hasChanged=!1,this.model.set(this.originalModel,{silent:!0}),this.render()},save:function(){OC.PasswordConfirmation.requiresPasswordConfirmation()?OC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.save,this)):(this.hasChanged=!1,this.saving=!0,this.render(),this.model.save(null,{success:function(e,n,a){this.saving=!1,this.originalModel=JSON.parse(JSON.stringify(this.model)),this.message=t("workflowengine","Saved"),this.errorMessage="",this.render()},error:function(e,n,a){this.saving=!1,this.hasChanged=!0,this.message=t("workflowengine","Saving failed:"),this.errorMessage=n.responseText,this.render()},context:this}))},add:function(){var e=_.clone(this.model.get("checks")),t=OCA.WorkflowEngine.availableChecks[0].class,n=OCA.WorkflowEngine.availableChecks[0].operators;e.push({class:t,operator:n[0].operator,value:""}),this.model.set({checks:e})},checkChanged:function(e){for(var t=e.target.value,n=$(e.target.parentElement).data("id"),a=JSON.parse(JSON.stringify(this.model.get("checks"))),r=null,l=0;l<e.target.classList.length;l++){var o=e.target.classList[l];if("check-"===o.substr(0,"check-".length)){r=o.substr("check-".length);break}}if(null!==r)if(_.has(a[n],r)){if(a[n][r]=t,"class"===r){var i=OCA.WorkflowEngine.getCheckByClass(t);_.isUndefined(i)||(a[n].operator=i.operators[0].operator,a[n].value="")}this.model.set({checks:a})}else console.warn('key "'+r+'" is not available in check',i);else console.warn('checkChanged triggered but element doesn\'t have any "check-" class')},deleteCheck:function(e){console.log(arguments);var t=$(e.target.parentElement).data("id"),n=JSON.parse(JSON.stringify(this.model.get("checks")));n.splice(t,1),this.model.set({checks:n})},operationChanged:function(e){for(var t=e.target.value,n=null,a=0;a<e.target.classList.length;a++){var r=e.target.classList[a];if("operation-"===r.substr(0,"operation-".length)){n=r.substr("operation-".length);break}}null!==n?"name"===n||"operation"===n?this.model.set(n,t):console.warn('key "'+n+'" is no valid attribute'):console.warn('operationChanged triggered but element doesn\'t have any "operation-" class')},render:function(){this.$el.html(this.template({operation:this.model.toJSON(),classes:OCA.WorkflowEngine.availableChecks,hasChanged:this.hasChanged,message:this.message,errorMessage:this.errorMessage,saving:this.saving}));var e=this.model.get("checks");return _.each(this.$el.find(".check"),function(t){var n=$(t),a=n.data("id"),r=e[a],l=n.find(".check-value").first(),o=this;_.each(OCA.WorkflowEngine.availablePlugins,function(e){_.isFunction(e.render)&&e.render(l,r,o.groups)})},this),""!==this.message&&(_.delay(function(e){$(e).css("opacity",0)},7e3,this.$el.find(".msg.success")),this.message=""),this.$el}}),OCA.WorkflowEngine.OperationsView=OC.Backbone.View.extend({templateId:"#operations-template",collection:null,$el:null,events:{"click .button-add-operation":"add"},template:function(e){return i()(_.extend({addRuleGroupTXT:t("workflowengine","Add rule group")},e))},initialize:function(e){OCA.WorkflowEngine.availablePlugins.length||(OCA.WorkflowEngine.availablePlugins=OC.Plugins.getPlugins("OCA.WorkflowEngine.CheckPlugins"),_.each(OCA.WorkflowEngine.availablePlugins,function(t){_.isFunction(t.getCheck)&&OCA.WorkflowEngine.availableChecks.push(t.getCheck(e))})),this.collection.fetch({data:{class:e}}),this.collection.once("sync",this.render,this)},add:function(){var e=this.collection.create();this.renderOperation(e)},renderOperation:function(e){this.$el.find(".operations").append(e.$el),e.render()},render:function(){this.$el.html(this.template()),this.collection.each(this.renderOperation,this)}});a(22),a(23),a(24),a(25),a(26),a(27),a(28),a(29),a(30);window.OCA.WorkflowEngine=OCA.WorkflowEngine}]); +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/js/",n(n.s=33)}([function(e,t,n){"use strict";t.__esModule=!0,t.extend=l,t.indexOf=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},t.escapeExpression=function(e){if("string"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return"";if(!e)return e+"";e=""+e}if(!a.test(e))return e;return e.replace(o,i)},t.isEmpty=function(e){return!e&&0!==e||!(!c(e)||0!==e.length)},t.createFrame=function(e){var t=l({},e);return t._parent=e,t},t.blockParams=function(e,t){return e.path=t,e},t.appendContextPath=function(e,t){return(e?e+".":"")+t};var r={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},o=/[&<>"'`=]/g,a=/[&<>"'`=]/;function i(e){return r[e]}function l(e){for(var t=1;t<arguments.length;t++)for(var n in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],n)&&(e[n]=arguments[t][n]);return e}var s=Object.prototype.toString;t.toString=s;var u=function(e){return"function"==typeof e};u(/x/)&&(t.isFunction=u=function(e){return"function"==typeof e&&"[object Function]"===s.call(e)}),t.isFunction=u;var c=Array.isArray||function(e){return!(!e||"object"!=typeof e)&&"[object Array]"===s.call(e)};t.isArray=c},function(e,t,n){"use strict";t.__esModule=!0;var r=["description","fileName","lineNumber","message","name","number","stack"];function o(e,t){var n=t&&t.loc,a=void 0,i=void 0;n&&(e+=" - "+(a=n.start.line)+":"+(i=n.start.column));for(var l=Error.prototype.constructor.call(this,e),s=0;s<r.length;s++)this[r[s]]=l[r[s]];Error.captureStackTrace&&Error.captureStackTrace(this,o);try{n&&(this.lineNumber=a,Object.defineProperty?Object.defineProperty(this,"column",{value:i,enumerable:!0}):this.column=i)}catch(e){}}o.prototype=new Error,t.default=o,e.exports=t.default},function(e,t,n){e.exports=n(7).default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.HandlebarsEnvironment=u;var o=n(0),a=r(n(1)),i=n(8),l=n(16),s=r(n(18));t.VERSION="4.1.2";t.COMPILER_REVISION=7;t.REVISION_CHANGES={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};function u(e,t,n){this.helpers=e||{},this.partials=t||{},this.decorators=n||{},i.registerDefaultHelpers(this),l.registerDefaultDecorators(this)}u.prototype={constructor:u,logger:s.default,log:s.default.log,registerHelper:function(e,t){if("[object Object]"===o.toString.call(e)){if(t)throw new a.default("Arg not supported with multiple helpers");o.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if("[object Object]"===o.toString.call(e))o.extend(this.partials,e);else{if(void 0===t)throw new a.default('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,t){if("[object Object]"===o.toString.call(e)){if(t)throw new a.default("Arg not supported with multiple decorators");o.extend(this.decorators,e)}else this.decorators[e]=t},unregisterDecorator:function(e){delete this.decorators[e]}};var c=s.default.log;t.log=c,t.createFrame=o.createFrame,t.logger=s.default},function(e,t){e.exports=function(e,t){return e===t?'selected="selected"':""}},function(e,t,n){var r=n(2);function o(e){return e&&(e.__esModule?e.default:e)}e.exports=(r.default||r).template({1:function(e,t,n,r,o){return" modified"},3:function(e,t,n,r,o){return'\t\t\t<span class="button-delete icon-delete"></span>\n'},5:function(e,t,r,a,i,l,s){var u,c=e.lambda,f=e.escapeExpression,d=null!=t?t:e.nullContext||{};return'\t\t\t<div class="check" data-id="'+f(c(i&&i.index,t))+'">\n\t\t\t\t<select class="check-class">\n'+(null!=(u=r.each.call(d,null!=s[1]?s[1].classes:s[1],{name:"each",hash:{},fn:e.program(6,i,0,l,s),inverse:e.noop,data:i}))?u:"")+'\t\t\t\t</select>\n\t\t\t\t<select class="check-operator">\n'+(null!=(u=r.each.call(d,o(n(23)).call(d,null!=t?t.class:t,{name:"getOperators",hash:{},data:i}),{name:"each",hash:{},fn:e.program(8,i,0,l,s),inverse:e.noop,data:i}))?u:"")+'\t\t\t\t</select>\n\t\t\t\t<input type="text" class="check-value" value="'+f(c(null!=t?t.value:t,t))+'">\n\t\t\t\t<span class="button-delete-check icon-delete"></span>\n\t\t\t</div>\n'},6:function(e,t,r,a,i,l,s){var u,c=e.lambda,f=e.escapeExpression;return'\t\t\t\t\t\t<option value="'+f(c(null!=t?t.class:t,t))+'" '+(null!=(u=o(n(4)).call(null!=t?t:e.nullContext||{},null!=t?t.class:t,null!=s[1]?s[1].class:s[1],{name:"selectItem",hash:{},data:i}))?u:"")+">"+f(c(null!=t?t.name:t,t))+"</option>\n"},8:function(e,t,r,a,i,l,s){var u,c=e.lambda,f=e.escapeExpression;return'\t\t\t\t\t\t<option value="'+f(c(null!=t?t.operator:t,t))+'" '+(null!=(u=o(n(4)).call(null!=t?t:e.nullContext||{},null!=t?t.operator:t,null!=s[1]?s[1].operator:s[1],{name:"selectItem",hash:{},data:i}))?u:"")+">"+f(c(null!=t?t.name:t,t))+"</option>\n"},10:function(e,t,n,r,o){var a;return(null!=(a=n.if.call(null!=t?t:e.nullContext||{},null!=(a=null!=t?t.operation:t)?a.id:a,{name:"if",hash:{},fn:e.program(11,o,0),inverse:e.noop,data:o}))?a:"")+'\t\t<button class="button-save pull-right">'+e.escapeExpression(e.lambda(null!=t?t.saveTXT:t,t))+"</button>\n"},11:function(e,t,n,r,o){return'\t\t\t<button class="button-reset pull-right">'+e.escapeExpression(e.lambda(null!=t?t.resetTXT:t,t))+"</button>\n"},13:function(e,t,n,r,o){return'\t\t<span class="icon-loading-small pull-right"></span>\n\t\t<span class="pull-right">'+e.escapeExpression(e.lambda(null!=t?t.savingTXT:t,t))+"</span>\n\t"},15:function(e,t,n,r,o){var a;return null!=(a=n.if.call(null!=t?t:e.nullContext||{},null!=t?t.message:t,{name:"if",hash:{},fn:e.program(16,o,0),inverse:e.noop,data:o}))?a:""},16:function(e,t,n,r,o){var a,i=null!=t?t:e.nullContext||{};return'\n\t\t<span class="msg pull-right '+(null!=(a=n.if.call(i,null!=t?t.errorMessage:t,{name:"if",hash:{},fn:e.program(17,o,0),inverse:e.program(19,o,0),data:o}))?a:"")+'">\n\t\t\t\t\t'+e.escapeExpression(e.lambda(null!=t?t.message:t,t))+(null!=(a=n.if.call(i,null!=t?t.errorMessage:t,{name:"if",hash:{},fn:e.program(21,o,0),inverse:e.noop,data:o}))?a:"")+"\n\t\t\t\t</span>\n\t"},17:function(e,t,n,r,o){return"error"},19:function(e,t,n,r,o){return"success"},21:function(e,t,n,r,o){return" "+e.escapeExpression(e.lambda(null!=t?t.errorMessage:t,t))},compiler:[7,">= 4.0.0"],main:function(e,t,n,r,o,a,i){var l,s=null!=t?t:e.nullContext||{},u=e.lambda,c=e.escapeExpression;return'<div class="operation'+(null!=(l=n.if.call(s,null!=t?t.hasChanged:t,{name:"if",hash:{},fn:e.program(1,o,0,a,i),inverse:e.noop,data:o}))?l:"")+'">\n\t<div class="operation-header">\n\t\t<input type="text" class="operation-name" placeholder="'+c(u(null!=t?t.shortRuleDescTXT:t,t))+'" value="'+c(u(null!=(l=null!=t?t.operation:t)?l.name:l,t))+'" />\n\t\t<input type="text" class="operation-operation" value="'+c(u(null!=(l=null!=t?t.operation:t)?l.operation:l,t))+'" />\n'+(null!=(l=n.if.call(s,null!=(l=null!=t?t.operation:t)?l.id:l,{name:"if",hash:{},fn:e.program(3,o,0,a,i),inverse:e.noop,data:o}))?l:"")+'\t</div>\n\n\t<div class="checks">\n'+(null!=(l=n.each.call(s,null!=(l=null!=t?t.operation:t)?l.checks:l,{name:"each",hash:{},fn:e.program(5,o,0,a,i),inverse:e.noop,data:o}))?l:"")+'\t</div>\n\t<button class="button-add">'+c(u(null!=t?t.addRuleTXT:t,t))+"</button>\n"+(null!=(l=n.if.call(s,null!=t?t.hasChanged:t,{name:"if",hash:{},fn:e.program(10,o,0,a,i),inverse:e.noop,data:o}))?l:"")+(null!=(l=n.if.call(s,null!=t?t.saving:t,{name:"if",hash:{},fn:e.program(13,o,0,a,i),inverse:e.program(15,o,0,a,i),data:o}))?l:"")+"\n</div>\n"},useData:!0,useDepths:!0})},function(e,t,n){var r=n(2);e.exports=(r.default||r).template({compiler:[7,">= 4.0.0"],main:function(e,t,n,r,o){var a;return'<div class="operations"></div>\n<button class="button-add-operation">'+e.escapeExpression("function"==typeof(a=null!=(a=n.addRuleGroupTXT||(null!=t?t.addRuleGroupTXT:t))?a:n.helperMissing)?a.call(null!=t?t:e.nullContext||{},{name:"addRuleGroupTXT",hash:{},data:o}):a)+"</button>\n"},useData:!0})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}t.__esModule=!0;var a=o(n(3)),i=r(n(19)),l=r(n(1)),s=o(n(0)),u=o(n(20)),c=r(n(21));function f(){var e=new a.HandlebarsEnvironment;return s.extend(e,a),e.SafeString=i.default,e.Exception=l.default,e.Utils=s,e.escapeExpression=s.escapeExpression,e.VM=u,e.template=function(t){return u.template(t,e)},e}var d=f();d.create=f,c.default(d),d.default=d,t.default=d,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.registerDefaultHelpers=function(e){o.default(e),a.default(e),i.default(e),l.default(e),s.default(e),u.default(e),c.default(e)};var o=r(n(9)),a=r(n(10)),i=r(n(11)),l=r(n(12)),s=r(n(13)),u=r(n(14)),c=r(n(15))},function(e,t,n){"use strict";t.__esModule=!0;var r=n(0);t.default=function(e){e.registerHelper("blockHelperMissing",function(t,n){var o=n.inverse,a=n.fn;if(!0===t)return a(this);if(!1===t||null==t)return o(this);if(r.isArray(t))return t.length>0?(n.ids&&(n.ids=[n.name]),e.helpers.each(t,n)):o(this);if(n.data&&n.ids){var i=r.createFrame(n.data);i.contextPath=r.appendContextPath(n.data.contextPath,n.name),n={data:i}}return a(t,n)})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(0),a=n(1),i=(r=a)&&r.__esModule?r:{default:r};t.default=function(e){e.registerHelper("each",function(e,t){if(!t)throw new i.default("Must pass iterator to #each");var n=t.fn,r=t.inverse,a=0,l="",s=void 0,u=void 0;function c(t,r,a){s&&(s.key=t,s.index=r,s.first=0===r,s.last=!!a,u&&(s.contextPath=u+t)),l+=n(e[t],{data:s,blockParams:o.blockParams([e[t],t],[u+t,null])})}if(t.data&&t.ids&&(u=o.appendContextPath(t.data.contextPath,t.ids[0])+"."),o.isFunction(e)&&(e=e.call(this)),t.data&&(s=o.createFrame(t.data)),e&&"object"==typeof e)if(o.isArray(e))for(var f=e.length;a<f;a++)a in e&&c(a,a,a===e.length-1);else{var d=void 0;for(var p in e)e.hasOwnProperty(p)&&(void 0!==d&&c(d,a-1),d=p,a++);void 0!==d&&c(d,a-1,!0)}return 0===a&&(l=r(this)),l})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(1),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e){e.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new a.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var r=n(0);t.default=function(e){e.registerHelper("if",function(e,t){return r.isFunction(e)&&(e=e.call(this)),!t.hash.includeZero&&!e||r.isEmpty(e)?t.inverse(this):t.fn(this)}),e.registerHelper("unless",function(t,n){return e.helpers.if.call(this,t,{fn:n.inverse,inverse:n.fn,hash:n.hash})})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){e.registerHelper("log",function(){for(var t=[void 0],n=arguments[arguments.length-1],r=0;r<arguments.length-1;r++)t.push(arguments[r]);var o=1;null!=n.hash.level?o=n.hash.level:n.data&&null!=n.data.level&&(o=n.data.level),t[0]=o,e.log.apply(e,t)})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){e.registerHelper("lookup",function(e,t){return e?"constructor"!==t||e.propertyIsEnumerable(t)?e[t]:void 0:e})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var r=n(0);t.default=function(e){e.registerHelper("with",function(e,t){r.isFunction(e)&&(e=e.call(this));var n=t.fn;if(r.isEmpty(e))return t.inverse(this);var o=t.data;return t.data&&t.ids&&((o=r.createFrame(t.data)).contextPath=r.appendContextPath(t.data.contextPath,t.ids[0])),n(e,{data:o,blockParams:r.blockParams([e],[o&&o.contextPath])})})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.registerDefaultDecorators=function(e){a.default(e)};var r,o=n(17),a=(r=o)&&r.__esModule?r:{default:r}},function(e,t,n){"use strict";t.__esModule=!0;var r=n(0);t.default=function(e){e.registerDecorator("inline",function(e,t,n,o){var a=e;return t.partials||(t.partials={},a=function(o,a){var i=n.partials;n.partials=r.extend({},i,t.partials);var l=e(o,a);return n.partials=i,l}),t.partials[o.args[0]]=o.fn,a})},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var r=n(0),o={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(e){if("string"==typeof e){var t=r.indexOf(o.methodMap,e.toLowerCase());e=t>=0?t:parseInt(e,10)}return e},log:function(e){if(e=o.lookupLevel(e),"undefined"!=typeof console&&o.lookupLevel(o.level)<=e){var t=o.methodMap[e];console[t]||(t="log");for(var n=arguments.length,r=Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];console[t].apply(console,r)}}};t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){this.string=e}t.__esModule=!0,r.prototype.toString=r.prototype.toHTML=function(){return""+this.string},t.default=r,e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.checkRevision=function(e){var t=e&&e[0]||1,n=l.COMPILER_REVISION;if(t!==n){if(t<n){var r=l.REVISION_CHANGES[n],o=l.REVISION_CHANGES[t];throw new i.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+r+") or downgrade your runtime to an older version ("+o+").")}throw new i.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+e[1]+").")}},t.template=function(e,t){if(!t)throw new i.default("No environment passed to template");if(!e||!e.main)throw new i.default("Unknown template object: "+typeof e);e.main.decorator=e.main_d,t.VM.checkRevision(e.compiler);var n={strict:function(e,t){if(!(t in e))throw new i.default('"'+t+'" not defined in '+e);return e[t]},lookup:function(e,t){for(var n=e.length,r=0;r<n;r++)if(e[r]&&null!=e[r][t])return e[r][t]},lambda:function(e,t){return"function"==typeof e?e.call(t):e},escapeExpression:o.escapeExpression,invokePartial:function(n,r,a){a.hash&&(r=o.extend({},r,a.hash),a.ids&&(a.ids[0]=!0));n=t.VM.resolvePartial.call(this,n,r,a);var l=t.VM.invokePartial.call(this,n,r,a);null==l&&t.compile&&(a.partials[a.name]=t.compile(n,e.compilerOptions,t),l=a.partials[a.name](r,a));if(null!=l){if(a.indent){for(var s=l.split("\n"),u=0,c=s.length;u<c&&(s[u]||u+1!==c);u++)s[u]=a.indent+s[u];l=s.join("\n")}return l}throw new i.default("The partial "+a.name+" could not be compiled when running in runtime-only mode")},fn:function(t){var n=e[t];return n.decorator=e[t+"_d"],n},programs:[],program:function(e,t,n,r,o){var a=this.programs[e],i=this.fn(e);return t||o||r||n?a=s(this,e,i,t,n,r,o):a||(a=this.programs[e]=s(this,e,i)),a},data:function(e,t){for(;e&&t--;)e=e._parent;return e},merge:function(e,t){var n=e||t;return e&&t&&e!==t&&(n=o.extend({},t,e)),n},nullContext:Object.seal({}),noop:t.VM.noop,compilerInfo:e.compiler};function r(t){var o=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],a=o.data;r._setup(o),!o.partial&&e.useData&&(a=function(e,t){t&&"root"in t||((t=t?l.createFrame(t):{}).root=e);return t}(t,a));var i=void 0,s=e.useBlockParams?[]:void 0;function u(t){return""+e.main(n,t,n.helpers,n.partials,a,s,i)}return e.useDepths&&(i=o.depths?t!=o.depths[0]?[t].concat(o.depths):o.depths:[t]),(u=c(e.main,u,n,o.depths||[],a,s))(t,o)}return r.isTop=!0,r._setup=function(r){r.partial?(n.helpers=r.helpers,n.partials=r.partials,n.decorators=r.decorators):(n.helpers=n.merge(r.helpers,t.helpers),e.usePartial&&(n.partials=n.merge(r.partials,t.partials)),(e.usePartial||e.useDecorators)&&(n.decorators=n.merge(r.decorators,t.decorators)))},r._child=function(t,r,o,a){if(e.useBlockParams&&!o)throw new i.default("must pass block params");if(e.useDepths&&!a)throw new i.default("must pass parent depths");return s(n,t,e[t],r,0,o,a)},r},t.wrapProgram=s,t.resolvePartial=function(e,t,n){e?e.call||n.name||(n.name=e,e=n.partials[e]):e="@partial-block"===n.name?n.data["partial-block"]:n.partials[n.name];return e},t.invokePartial=function(e,t,n){var r=n.data&&n.data["partial-block"];n.partial=!0,n.ids&&(n.data.contextPath=n.ids[0]||n.data.contextPath);var a=void 0;n.fn&&n.fn!==u&&function(){n.data=l.createFrame(n.data);var e=n.fn;a=n.data["partial-block"]=function(t){var n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return n.data=l.createFrame(n.data),n.data["partial-block"]=r,e(t,n)},e.partials&&(n.partials=o.extend({},n.partials,e.partials))}();void 0===e&&a&&(e=a);if(void 0===e)throw new i.default("The partial "+n.name+" could not be found");if(e instanceof Function)return e(t,n)},t.noop=u;var r,o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(0)),a=n(1),i=(r=a)&&r.__esModule?r:{default:r},l=n(3);function s(e,t,n,r,o,a,i){function l(t){var o=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],l=i;return!i||t==i[0]||t===e.nullContext&&null===i[0]||(l=[t].concat(i)),n(e,t,e.helpers,e.partials,o.data||r,a&&[o.blockParams].concat(a),l)}return(l=c(n,l,e,i,r,a)).program=t,l.depth=i?i.length:0,l.blockParams=o||0,l}function u(){return""}function c(e,t,n,r,a,i){if(e.decorator){var l={};t=e.decorator(t,l,n,r&&r[0],a,i,r),o.extend(t,l)}return t}},function(e,t,n){"use strict";(function(n){t.__esModule=!0,t.default=function(e){var t=void 0!==n?n:window,r=t.Handlebars;e.noConflict=function(){return t.Handlebars===e&&(t.Handlebars=r),e}},e.exports=t.default}).call(this,n(22))},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){e.exports=function(e){var t=OCA.WorkflowEngine.getCheckByClass(e);return _.isUndefined(t)?[]:t.operators}},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.FileMimeTypePlugin={getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\FileMimeType",name:t("workflowengine","File MIME type"),operators:[{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")},{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")}]}},render:function(e,n){if("OCA\\WorkflowEngine\\Check\\FileMimeType"===n.class){var r="text/plain";"matches"!==n.operator&&"!matches"!==n.operator||(r="/^text\\/(plain|html)$/i",this._validateRegex(n.value)?$(e).removeClass("invalid-input"):$(e).addClass("invalid-input")),$(e).css("width","250px").attr("placeholder",r).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:r})).addClass("has-tooltip").tooltip({placement:"bottom"})}},_validateRegex:function(e){return null!==/^\/(.*)\/([gui]{0,3})$/.exec(e)}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.FileMimeTypePlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.FileNamePlugin={getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\FileName",name:t("workflowengine","File name"),operators:[{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")},{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")}]}},render:function(e,n){if("OCA\\WorkflowEngine\\Check\\FileName"===n.class){var r="dummy.jpg";"matches"!==n.operator&&"!matches"!==n.operator||(r="/^dummy-.+$/i",this._validateRegex(n.value)?$(e).removeClass("invalid-input"):$(e).addClass("invalid-input")),$(e).css("width","250px").attr("placeholder",r).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:r})).addClass("has-tooltip").tooltip({placement:"bottom"})}},_validateRegex:function(e){return null!==/^\/(.*)\/([gui]{0,3})$/.exec(e)}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.FileNamePlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.FileSizePlugin={getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\FileSize",name:t("workflowengine","File size (upload)"),operators:[{operator:"less",name:t("workflowengine","less")},{operator:"!greater",name:t("workflowengine","less or equals")},{operator:"!less",name:t("workflowengine","greater or equals")},{operator:"greater",name:t("workflowengine","greater")}]}},render:function(e,n){"OCA\\WorkflowEngine\\Check\\FileSize"===n.class&&$(e).css("width","250px").attr("placeholder","12 MB").attr("title",t("workflowengine","Example: {placeholder}",{placeholder:"12 MB"})).addClass("has-tooltip").tooltip({placement:"bottom"})}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.FileSizePlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.FileSystemTagsPlugin={getCheck:function(){return this.collection=OC.SystemTags.collection,{class:"OCA\\WorkflowEngine\\Check\\FileSystemTags",name:t("workflowengine","File system tag"),operators:[{operator:"is",name:t("workflowengine","is tagged with")},{operator:"!is",name:t("workflowengine","is not tagged with")}]}},render:function(e,n){"OCA\\WorkflowEngine\\Check\\FileSystemTags"===n.class&&($(e).css("width","400px"),$(e).select2({allowClear:!1,multiple:!1,placeholder:t("workflowengine","Select tag…"),query:_.debounce(function(e){e.callback({results:OC.SystemTags.collection.filterByName(e.term)})},100,!0),id:function(e){return e.get("id")},initSelection:function(e,t){t($(e).val())},formatResult:function(e){return OC.SystemTags.getDescriptiveTag(e)},formatSelection:function(e){var t=OC.SystemTags.collection.get(e);if(!_.isUndefined(t))return OC.SystemTags.getDescriptiveTag(t)},escapeMarkup:function(e){return e}}))}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.FileSystemTagsPlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.RequestRemoteAddressPlugin={getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\RequestRemoteAddress",name:t("workflowengine","Request remote address"),operators:[{operator:"matchesIPv4",name:t("workflowengine","matches IPv4")},{operator:"!matchesIPv4",name:t("workflowengine","does not match IPv4")},{operator:"matchesIPv6",name:t("workflowengine","matches IPv6")},{operator:"!matchesIPv6",name:t("workflowengine","does not match IPv6")}]}},render:function(e,n){if("OCA\\WorkflowEngine\\Check\\RequestRemoteAddress"===n.class){var r="127.0.0.1/32";"matchesIPv6"===n.operator||"!matchesIPv6"===n.operator?(r="::1/128",this._validateIPv6(n.value)?$(e).removeClass("invalid-input"):$(e).addClass("invalid-input")):this._validateIPv4(n.value)?$(e).removeClass("invalid-input"):$(e).addClass("invalid-input"),$(e).css("width","300px").attr("placeholder",r).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:r})).addClass("has-tooltip").tooltip({placement:"bottom"})}},_validateIPv4:function(e){return null!==/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(3[0-2]|[1-2][0-9]|[1-9])$/.exec(e)},_validateIPv6:function(e){return null!==/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(1([01][0-9]|2[0-8])|[1-9][0-9]|[0-9])$/.exec(e)}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.RequestRemoteAddressPlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.RequestTimePlugin={timezones:["Europe/Berlin","Europe/London"],_$element:null,getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\RequestTime",name:t("workflowengine","Request time"),operators:[{operator:"in",name:t("workflowengine","between")},{operator:"!in",name:t("workflowengine","not between")}]}},render:function(e,n){if("OCA\\WorkflowEngine\\Check\\RequestTime"===n.class){var r="09:00",o="18:00",a=jstz.determine().name(),i=$(e);if(_.isString(n.value)&&""!==n.value){var l=JSON.parse(n.value),s=l[0].split(" ",2),u=l[1].split(" ",2);r=s[0],o=u[0],a=s[1]}var c=JSON.stringify([r+" "+a,o+" "+a]);n.value!==c&&(n.value=c,i.val(c)),i.css("display","none"),$("<input>").attr("type","text").attr("placeholder",t("workflowengine","Start")).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:"16:00"})).addClass("has-tooltip").tooltip({placement:"bottom"}).addClass("start").val(r).insertBefore(i),$("<input>").attr("type","text").attr("placeholder",t("workflowengine","End")).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:"16:00"})).addClass("has-tooltip").tooltip({placement:"bottom"}).addClass("end").val(o).insertBefore(i);var f=$("<input>").attr("type","hidden").css("width","250px").insertBefore(i).val(a);f.select2({allowClear:!1,multiple:!1,placeholder:t("workflowengine","Select timezone…"),ajax:{url:OC.generateUrl("apps/workflowengine/timezones"),dataType:"json",quietMillis:100,data:function(e){return""===e&&(e=(e=jstz.determine().name().split("/"))[0]),{search:e}},results:function(e){var t=[];return $.each(e,function(e){t.push({id:e})}),{results:t,more:!1}}},initSelection:function(e,t){t(e.val())},formatResult:function(e){return"<span>"+e.id+"</span>"},formatSelection:function(e){return _.isUndefined(e.id)||(e=e.id),"<span>"+e+"</span>"}}),f.addClass("timezone"),i.parent().on("change",".start",_.bind(this.update,this)).on("change",".end",_.bind(this.update,this)).on("change",".timezone",_.bind(this.update,this)),this._$element=i}},update:function(e){for(var t=e.target.value,n=null,r=0;r<e.target.classList.length;r++)n=e.target.classList[r];if(null!==n){var o=JSON.parse(this._$element.val()),a=moment(o[0].split(" ",2)[0],"H:m Z"),i=moment(o[1].split(" ",2)[0],"H:m Z"),l=o[0].split(" ",2)[1];if("start"===n||"end"===n){var s=moment(t,["H:m","h:m a"],!0).format("HH:mm");if("Invalid date"===s)return;var u=0;"end"===n&&(u=1),o[u]=s+" "+l}"timezone"===n&&(o[0]=a.format("HH:mm")+" "+t,o[1]=i.format("HH:mm")+" "+t),this._$element.val(JSON.stringify(o)),this._$element.trigger("change")}else console.warn("update triggered but element doesn't have any class")}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.RequestTimePlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.RequestURLPlugin={predefinedValues:["webdav"],getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\RequestURL",name:t("workflowengine","Request URL"),operators:[{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")},{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")}]}},render:function(e,n){if("OCA\\WorkflowEngine\\Check\\RequestURL"===n.class){var r="https://localhost/index.php";if("matches"!==n.operator&&"!matches"!==n.operator||(r="/^https\\:\\/\\/localhost\\/index\\.php$/i"),$(e).css("width","250px").attr("placeholder",r).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:r})).addClass("has-tooltip").tooltip({placement:"bottom"}),"matches"===n.operator||"!matches"===n.operator)this._validateRegex(n.value)?$(e).removeClass("invalid-input"):$(e).addClass("invalid-input");else{var o=this,a=[{text:t("workflowengine","Predefined URLs"),children:[{id:"webdav",text:t("workflowengine","Files WebDAV")}]}];-1===this.predefinedValues.indexOf(n.value)&&a.unshift({id:n.value,text:n.value}),$(e).select2({data:a,createSearchChoice:function(e){if(-1===o.predefinedValues.indexOf(n.value))return{id:e,text:e}},id:function(e){return e.id},formatResult:function(e){return e.text},formatSelection:function(e){return e.text},escapeMarkup:function(e){return e}})}}},_validateRegex:function(e){return null!==/^\/(.*)\/([gui]{0,3})$/.exec(e)}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.RequestURLPlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.RequestUserAgentPlugin={predefinedValues:["android","ios","desktop"],getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\RequestUserAgent",name:t("workflowengine","Request user agent"),operators:[{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")},{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")}]}},render:function(e,n){if("OCA\\WorkflowEngine\\Check\\RequestUserAgent"===n.class){var r="Mozilla/5.0 User Agent";if("matches"!==n.operator&&"!matches"!==n.operator||(r="/^Mozilla\\/5\\.0 (.*)$/i"),$(e).css("width","250px").attr("placeholder",r).attr("title",t("workflowengine","Example: {placeholder}",{placeholder:r})).addClass("has-tooltip").tooltip({placement:"bottom"}),"matches"===n.operator||"!matches"===n.operator)this._validateRegex(n.value)?$(e).removeClass("invalid-input"):$(e).addClass("invalid-input");else{var o=this,a=[{text:t("workflowengine","Sync clients"),children:[{id:"android",text:t("workflowengine","Android client")},{id:"ios",text:t("workflowengine","iOS client")},{id:"desktop",text:t("workflowengine","Desktop client")},{id:"mail",text:t("workflowengine","Thunderbird & Outlook addons")}]}];-1===this.predefinedValues.indexOf(n.value)&&a.unshift({id:n.value,text:n.value}),$(e).select2({data:a,createSearchChoice:function(e){if(-1===o.predefinedValues.indexOf(n.value))return{id:e,text:e}},id:function(e){return e.id},formatResult:function(e){return e.text},formatSelection:function(e){return e.text},escapeMarkup:function(e){return e}})}}},_validateRegex:function(e){return null!==/^\/(.*)\/([gui]{0,3})$/.exec(e)}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.RequestUserAgentPlugin)},function(e,n){OCA.WorkflowEngine=OCA.WorkflowEngine||{},OCA.WorkflowEngine.Plugins=OCA.WorkflowEngine.Plugins||{},OCA.WorkflowEngine.Plugins.UserGroupMembershipPlugin={getCheck:function(){return{class:"OCA\\WorkflowEngine\\Check\\UserGroupMembership",name:t("workflowengine","User group membership"),operators:[{operator:"is",name:t("workflowengine","is member of")},{operator:"!is",name:t("workflowengine","is not member of")}]}},render:function(e,t,n){"OCA\\WorkflowEngine\\Check\\UserGroupMembership"===t.class&&($(e).css("width","400px"),$(e).select2({data:{results:n,text:"displayname"},initSelection:function(e,t){var r=e.val();r&&n.length>0?t({id:r,displayname:n.find(function(e){return e.id===r}).displayname}):r?t({id:r,displayname:r}):t()},formatResult:function(e){return"<span>"+escapeHTML(e.displayname)+"</span>"},formatSelection:function(e){return'<span title="'+escapeHTML(e.id)+'">'+escapeHTML(e.displayname)+"</span>"}}))}},OC.Plugins.register("OCA.WorkflowEngine.CheckPlugins",OCA.WorkflowEngine.Plugins.UserGroupMembershipPlugin)},function(e,n,r){"use strict";r.r(n);var o=r(5),a=r.n(o),i=r(6),l=r.n(i);OCA.WorkflowEngine=_.extend(OCA.WorkflowEngine||{},{availablePlugins:[],availableChecks:[],getCheckByClass:function(e){for(var t=OCA.WorkflowEngine.availableChecks.length,n=0;n<t;n++)if(OCA.WorkflowEngine.availableChecks[n].class===e)return OCA.WorkflowEngine.availableChecks[n]}}),OCA.WorkflowEngine.Operation=OC.Backbone.Model.extend({defaults:{class:"OCA\\WorkflowEngine\\Operation",name:"",checks:[],operation:""}}),OCA.WorkflowEngine.OperationsCollection=OC.Backbone.Collection.extend({model:OCA.WorkflowEngine.Operation,url:OC.generateUrl("apps/workflowengine/operations")}),OCA.WorkflowEngine.OperationView=OC.Backbone.View.extend({templateId:"#operation-template",events:{"change .check-class":"checkChanged","change .check-operator":"checkChanged","change .check-value":"checkChanged","change .operation-name":"operationChanged","change .operation-operation":"operationChanged","click .button-reset":"reset","click .button-save":"save","click .button-add":"add","click .button-delete":"delete","click .button-delete-check":"deleteCheck"},originalModel:null,hasChanged:!1,message:"",errorMessage:"",saving:!1,groups:[],template:function(e){return a()(_.extend({shortRuleDescTXT:t("workflowengine","Short rule description"),addRuleTXT:t("workflowengine","Add rule"),resetTXT:t("workflowengine","Reset"),saveTXT:t("workflowengine","Save"),savingTXT:t("workflowengine","Saving…")},e))},initialize:function(){this.originalModel=JSON.parse(JSON.stringify(this.model)),this.model.on("change",function(){console.log("model changed"),this.hasChanged=!0,this.render()},this),void 0===this.model.get("id")&&(this.hasChanged=!0);var e=this;$.ajax({url:OC.linkToOCS("cloud/groups",2)+"details",dataType:"json",quietMillis:100}).success(function(n){n.ocs.data.groups&&n.ocs.data.groups.length>0?(n.ocs.data.groups.forEach(function(t){e.groups.push({id:t.id,displayname:t.displayname})}),e.render()):(OC.Notification.error(t("workflowengine","Group list is empty"),{type:"error"}),console.log(n))}).error(function(e){OC.Notification.error(t("workflowengine","Unable to retrieve the group list"),{type:"error"}),console.log(e)})},delete:function(){OC.PasswordConfirmation.requiresPasswordConfirmation()?OC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.delete,this)):(this.model.destroy(),this.remove())},reset:function(){this.hasChanged=!1,this.model.set(this.originalModel,{silent:!0}),this.render()},save:function(){OC.PasswordConfirmation.requiresPasswordConfirmation()?OC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.save,this)):(this.hasChanged=!1,this.saving=!0,this.render(),this.model.save(null,{success:function(e,n,r){this.saving=!1,this.originalModel=JSON.parse(JSON.stringify(this.model)),this.message=t("workflowengine","Saved"),this.errorMessage="",this.render()},error:function(e,n,r){this.saving=!1,this.hasChanged=!0,this.message=t("workflowengine","Saving failed:"),this.errorMessage=n.responseText,this.render()},context:this}))},add:function(){var e=_.clone(this.model.get("checks")),t=OCA.WorkflowEngine.availableChecks[0].class,n=OCA.WorkflowEngine.availableChecks[0].operators;e.push({class:t,operator:n[0].operator,value:""}),this.model.set({checks:e})},checkChanged:function(e){for(var t=e.target.value,n=$(e.target.parentElement).data("id"),r=JSON.parse(JSON.stringify(this.model.get("checks"))),o=null,a=0;a<e.target.classList.length;a++){var i=e.target.classList[a];if("check-"===i.substr(0,"check-".length)){o=i.substr("check-".length);break}}if(null!==o)if(_.has(r[n],o)){if(r[n][o]=t,"class"===o){var l=OCA.WorkflowEngine.getCheckByClass(t);_.isUndefined(l)||(r[n].operator=l.operators[0].operator,r[n].value="")}this.model.set({checks:r})}else console.warn('key "'+o+'" is not available in check',l);else console.warn('checkChanged triggered but element doesn\'t have any "check-" class')},deleteCheck:function(e){console.log(arguments);var t=$(e.target.parentElement).data("id"),n=JSON.parse(JSON.stringify(this.model.get("checks")));n.splice(t,1),this.model.set({checks:n})},operationChanged:function(e){for(var t=e.target.value,n=null,r=0;r<e.target.classList.length;r++){var o=e.target.classList[r];if("operation-"===o.substr(0,"operation-".length)){n=o.substr("operation-".length);break}}null!==n?"name"===n||"operation"===n?this.model.set(n,t):console.warn('key "'+n+'" is no valid attribute'):console.warn('operationChanged triggered but element doesn\'t have any "operation-" class')},render:function(){this.$el.html(this.template({operation:this.model.toJSON(),classes:OCA.WorkflowEngine.availableChecks,hasChanged:this.hasChanged,message:this.message,errorMessage:this.errorMessage,saving:this.saving}));var e=this.model.get("checks");return _.each(this.$el.find(".check"),function(t){var n=$(t),r=n.data("id"),o=e[r],a=n.find(".check-value").first(),i=this;_.each(OCA.WorkflowEngine.availablePlugins,function(e){_.isFunction(e.render)&&e.render(a,o,i.groups)})},this),""!==this.message&&(_.delay(function(e){$(e).css("opacity",0)},7e3,this.$el.find(".msg.success")),this.message=""),this.$el}}),OCA.WorkflowEngine.OperationsView=OC.Backbone.View.extend({templateId:"#operations-template",collection:null,$el:null,events:{"click .button-add-operation":"add"},template:function(e){return l()(_.extend({addRuleGroupTXT:t("workflowengine","Add rule group")},e))},initialize:function(e){OCA.WorkflowEngine.availablePlugins.length||(OCA.WorkflowEngine.availablePlugins=OC.Plugins.getPlugins("OCA.WorkflowEngine.CheckPlugins"),_.each(OCA.WorkflowEngine.availablePlugins,function(t){_.isFunction(t.getCheck)&&OCA.WorkflowEngine.availableChecks.push(t.getCheck(e))})),this.collection.fetch({data:{class:e}}),this.collection.once("sync",this.render,this)},add:function(){var e=this.collection.create();this.renderOperation(e)},renderOperation:function(e){this.$el.find(".operations").append(e.$el),e.render()},render:function(){this.$el.html(this.template()),this.collection.each(this.renderOperation,this)}});r(24),r(25),r(26),r(27),r(28),r(29),r(30),r(31),r(32);window.OCA.WorkflowEngine=OCA.WorkflowEngine}]); //# sourceMappingURL=workflowengine.js.map
\ No newline at end of file diff --git a/apps/workflowengine/js/workflowengine.js.map b/apps/workflowengine/js/workflowengine.js.map index 8a5ce5fa1d0..ecdfbf8f7fa 100644 --- a/apps/workflowengine/js/workflowengine.js.map +++ b/apps/workflowengine/js/workflowengine.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack:///./node_modules/handlebars/runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/base.js","webpack:///./apps/workflowengine/src/templates/operation.handlebars","webpack:///./apps/workflowengine/src/templates/operations.handlebars","webpack:///./node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack:///(webpack)/buildin/global.js","webpack:///./apps/workflowengine/src/filemimetypeplugin.js","webpack:///./apps/workflowengine/src/filenameplugin.js","webpack:///./apps/workflowengine/src/filesizeplugin.js","webpack:///./apps/workflowengine/src/filesystemtagsplugin.js","webpack:///./apps/workflowengine/src/requestremoteaddressplugin.js","webpack:///./apps/workflowengine/src/requesttimeplugin.js","webpack:///./apps/workflowengine/src/requesturlplugin.js","webpack:///./apps/workflowengine/src/requestuseragentplugin.js","webpack:///./apps/workflowengine/src/usergroupmembershipplugin.js","webpack:///./apps/workflowengine/src/admin.js","webpack:///./apps/workflowengine/src/workflowengine.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","extend","indexOf","array","len","length","escapeExpression","string","toHTML","possible","test","replace","badChars","escapeChar","isEmpty","isArray","createFrame","frame","_parent","blockParams","params","ids","path","appendContextPath","contextPath","id","escape","&","<",">","\"","'","`","=","chr","obj","arguments","toString","isFunction","Array","errorProps","Exception","message","node","loc","line","undefined","column","start","tmp","Error","constructor","this","idx","captureStackTrace","lineNumber","nop","_interopRequireDefault","default","HandlebarsEnvironment","_utils","_exception2","_helpers","_decorators","_logger2","VERSION","COMPILER_REVISION","REVISION_CHANGES","1","2","3","4","5","6","7","helpers","partials","decorators","registerDefaultHelpers","registerDefaultDecorators","logger","log","registerHelper","fn","unregisterHelper","registerPartial","partial","unregisterPartial","registerDecorator","unregisterDecorator","Handlebars","template","compiler","main","container","depth0","data","useData","_interopRequireWildcard","newObj","base","_handlebarsSafeString2","_handlebarsException2","Utils","runtime","_handlebarsNoConflict2","hb","SafeString","VM","spec","inst","instance","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","context","options","inverse","each","_exception","ret","execIteration","field","index","last","first","j","priorKey","conditional","hash","includeZero","args","push","level","apply","propertyIsEnumerable","_decoratorsInline2","_decoratorsInline","props","original","methodMap","lookupLevel","levelMap","toLowerCase","parseInt","console","method","_len","_key","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","runtimeVersions","compilerVersions","templateSpec","env","decorator","main_d","strict","lookup","depths","lambda","current","invokePartial","resolvePartial","result","compile","compilerOptions","indent","lines","split","join","programs","program","declaredBlockParams","programWrapper","wrapProgram","depth","merge","param","common","nullContext","seal","noop","_setup","root","initData","useBlockParams","useDepths","concat","executeDecorators","isTop","usePartial","useDecorators","_child","currentPartialBlock","partialBlock","Function","prog","currentDepths","global","window","$Handlebars","noConflict","g","e","OCA","WorkflowEngine","Plugins","FileMimeTypePlugin","getCheck","class","operators","operator","render","element","check","placeholder","_validateRegex","$","removeClass","addClass","css","attr","tooltip","placement","exec","OC","register","FileNamePlugin","FileSizePlugin","FileSystemTagsPlugin","collection","SystemTags","select2","allowClear","multiple","query","_","debounce","callback","results","filterByName","term","initSelection","val","formatResult","tag","getDescriptiveTag","formatSelection","tagId","isUndefined","escapeMarkup","RequestRemoteAddressPlugin","_validateIPv6","_validateIPv4","RequestTimePlugin","timezones","_$element","startTime","endTime","timezone","jstz","determine","$element","isString","JSON","parse","splittedStart","splittedEnd","valueJSON","stringify","insertBefore","timezoneInput","ajax","url","generateUrl","dataType","quietMillis","search","response","more","parent","on","update","event","target","classList","moment","parsedDate","format","indexValue","trigger","warn","RequestURLPlugin","predefinedValues","self","text","children","unshift","createSearchChoice","RequestUserAgentPlugin","UserGroupMembershipPlugin","groups","groupId","displayname","find","group","escapeHTML","availablePlugins","availableChecks","getCheckByClass","className","Operation","Backbone","Model","defaults","checks","operation","OperationsCollection","Collection","model","OperationView","View","templateId","events","change .check-class","change .check-operator","change .check-value","change .operation-name","change .operation-operation","click .button-reset","click .button-save","click .button-add","click .button-delete","click .button-delete-check","originalModel","hasChanged","errorMessage","saving","vars","OperationTemplate","shortRuleDescTXT","addRuleTXT","resetTXT","saveTXT","savingTXT","initialize","linkToOCS","success","ocs","forEach","Notification","error","type","delete","PasswordConfirmation","requiresPasswordConfirmation","requirePasswordConfirmation","destroy","remove","reset","set","silent","save","responseText","add","clone","classname","checkChanged","parentElement","substr","has","deleteCheck","splice","operationChanged","$el","html","toJSON","classes","valueElement","plugin","delay","elements","OperationsView","click .button-add-operation","OperationsTemplate","addRuleGroupTXT","getPlugins","fetch","once","renderOperation","subView","append"],"mappings":"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","file":"workflowengine.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 31);\n","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n '=': '='\n};\n\nvar badChars = /[&<>\"'`=]/g,\n possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n return escape[chr];\n}\n\nfunction extend(obj /* , ...source */) {\n for (var i = 1; i < arguments.length; i++) {\n for (var key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n}\n\nvar toString = Object.prototype.toString;\n\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n/* eslint-disable func-style */\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\n/* istanbul ignore next */\nif (isFunction(/x/)) {\n exports.isFunction = isFunction = function (value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\nexports.isFunction = isFunction;\n\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\nvar isArray = Array.isArray || function (value) {\n return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray;\n// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n}\n\nfunction escapeExpression(string) {\n if (typeof string !== 'string') {\n // don't escape SafeStrings, since they're already safe\n if (string && string.toHTML) {\n return string.toHTML();\n } else if (string == null) {\n return '';\n } else if (!string) {\n return string + '';\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = '' + string;\n }\n\n if (!possible.test(string)) {\n return string;\n }\n return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction createFrame(object) {\n var frame = extend({}, object);\n frame._parent = object;\n return frame;\n}\n\nfunction blockParams(params, ids) {\n params.path = ids;\n return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n return (contextPath ? contextPath + '.' : '') + id;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQ3ZCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRTdCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFtQjtBQUMzQyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQUlNLFVBQVUsR0FKaEIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssbUJBQW1CLENBQUM7R0FDcEYsQ0FBQztDQUNIO1FBQ08sVUFBVSxHQUFWLFVBQVU7Ozs7O0FBSVgsSUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxVQUFTLEtBQUssRUFBRTtBQUN0RCxTQUFPLEFBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsR0FBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUFHLEtBQUssQ0FBQztDQUNqRyxDQUFDOzs7OztBQUdLLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUdNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUFFLFdBQU8sTUFBTSxDQUFDO0dBQUU7QUFDOUMsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gICAgICBwb3NzaWJsZSA9IC9bJjw+XCInYD1dLztcblxuZnVuY3Rpb24gZXNjYXBlQ2hhcihjaHIpIHtcbiAgcmV0dXJuIGVzY2FwZVtjaHJdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kKG9iai8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbaV0sIGtleSkpIHtcbiAgICAgICAgb2JqW2tleV0gPSBhcmd1bWVudHNbaV1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgbGV0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuLy8gU291cmNlZCBmcm9tIGxvZGFzaFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL2xvZGFzaC9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dFxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xubGV0IGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcbiAgfTtcbn1cbmV4cG9ydCB7aXNGdW5jdGlvbn07XG4vKiBlc2xpbnQtZW5hYmxlIGZ1bmMtc3R5bGUgKi9cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmV4cG9ydCBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpID8gdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEFycmF5XScgOiBmYWxzZTtcbn07XG5cbi8vIE9sZGVyIElFIHZlcnNpb25zIGRvIG5vdCBkaXJlY3RseSBzdXBwb3J0IGluZGV4T2Ygc28gd2UgbXVzdCBpbXBsZW1lbnQgb3VyIG93biwgc2FkbHkuXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhPZihhcnJheSwgdmFsdWUpIHtcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGFycmF5Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGFycmF5W2ldID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlRXhwcmVzc2lvbihzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgZXNjYXBlIFNhZmVTdHJpbmdzLCBzaW5jZSB0aGV5J3JlIGFscmVhZHkgc2FmZVxuICAgIGlmIChzdHJpbmcgJiYgc3RyaW5nLnRvSFRNTCkge1xuICAgICAgcmV0dXJuIHN0cmluZy50b0hUTUwoKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nICsgJyc7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgYSBzdHJpbmcgY29udmVyc2lvbiBhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgYXBwZW5kIHJlZ2FyZGxlc3MgYW5kXG4gICAgLy8gdGhlIHJlZ2V4IHRlc3Qgd2lsbCBkbyB0aGlzIHRyYW5zcGFyZW50bHkgYmVoaW5kIHRoZSBzY2VuZXMsIGNhdXNpbmcgaXNzdWVzIGlmXG4gICAgLy8gYW4gb2JqZWN0J3MgdG8gc3RyaW5nIGhhcyBlc2NhcGVkIGNoYXJhY3RlcnMgaW4gaXQuXG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmc7XG4gIH1cblxuICBpZiAoIXBvc3NpYmxlLnRlc3Qoc3RyaW5nKSkgeyByZXR1cm4gc3RyaW5nOyB9XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZShiYWRDaGFycywgZXNjYXBlQ2hhcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VtcHR5KHZhbHVlKSB7XG4gIGlmICghdmFsdWUgJiYgdmFsdWUgIT09IDApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIGlmIChpc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZyYW1lKG9iamVjdCkge1xuICBsZXQgZnJhbWUgPSBleHRlbmQoe30sIG9iamVjdCk7XG4gIGZyYW1lLl9wYXJlbnQgPSBvYmplY3Q7XG4gIHJldHVybiBmcmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJsb2NrUGFyYW1zKHBhcmFtcywgaWRzKSB7XG4gIHBhcmFtcy5wYXRoID0gaWRzO1xuICByZXR1cm4gcGFyYW1zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kQ29udGV4dFBhdGgoY29udGV4dFBhdGgsIGlkKSB7XG4gIHJldHVybiAoY29udGV4dFBhdGggPyBjb250ZXh0UGF0aCArICcuJyA6ICcnKSArIGlkO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n column = undefined;\n if (loc) {\n line = loc.start.line;\n column = loc.start.column;\n\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n /* istanbul ignore else */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n\n // Work around issue under safari where we can't directly set the column value\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n } else {\n this.column = column;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsSUFBTSxVQUFVLEdBQUcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQzs7QUFFbkcsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDdEIsSUFBSSxZQUFBO01BQ0osTUFBTSxZQUFBLENBQUM7QUFDWCxNQUFJLEdBQUcsRUFBRTtBQUNQLFFBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztBQUN0QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7O0FBRTFCLFdBQU8sSUFBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7R0FDeEM7O0FBRUQsTUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQzs7O0FBRzFELE9BQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO0FBQ2hELFFBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7R0FDOUM7OztBQUdELE1BQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFO0FBQzNCLFNBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7R0FDMUM7O0FBRUQsTUFBSTtBQUNGLFFBQUksR0FBRyxFQUFFO0FBQ1AsVUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Ozs7QUFJdkIsVUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFO0FBQ3pCLGNBQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtBQUNwQyxlQUFLLEVBQUUsTUFBTTtBQUNiLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7T0FDdEI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuY29uc3QgZXJyb3JQcm9wcyA9IFsnZGVzY3JpcHRpb24nLCAnZmlsZU5hbWUnLCAnbGluZU51bWJlcicsICdtZXNzYWdlJywgJ25hbWUnLCAnbnVtYmVyJywgJ3N0YWNrJ107XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgICAgbGluZSxcbiAgICAgIGNvbHVtbjtcbiAgaWYgKGxvYykge1xuICAgIGxpbmUgPSBsb2Muc3RhcnQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcblxuICAgICAgLy8gV29yayBhcm91bmQgaXNzdWUgdW5kZXIgc2FmYXJpIHdoZXJlIHdlIGNhbid0IGRpcmVjdGx5IHNldCB0aGUgY29sdW1uIHZhbHVlXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2NvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogY29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKG5vcCkge1xuICAgIC8qIElnbm9yZSBpZiB0aGUgYnJvd3NlciBpcyB2ZXJ5IHBhcnRpY3VsYXIgKi9cbiAgfVxufVxuXG5FeGNlcHRpb24ucHJvdG90eXBlID0gbmV3IEVycm9yKCk7XG5cbmV4cG9ydCBkZWZhdWx0IEV4Y2VwdGlvbjtcbiJdfQ==\n","// Create a simple path alias to allow browserify to resolve\n// the runtime on a supported path.\nmodule.exports = require('./dist/cjs/handlebars.runtime')['default'];\n","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar VERSION = '4.1.2';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 7;\n\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: _logger2['default'],\n log: _logger2['default'].log,\n\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQTRDLFNBQVM7O3lCQUMvQixhQUFhOzs7O3VCQUNFLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNuQyxVQUFVOzs7O0FBRXRCLElBQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQzs7QUFDeEIsSUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxVQUFVO0NBQ2QsQ0FBQzs7O0FBRUYsSUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFNBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsTUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLE1BQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixNQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGtDQUF1QixJQUFJLENBQUMsQ0FBQztBQUM3Qix3Q0FBMEIsSUFBSSxDQUFDLENBQUM7Q0FDakM7O0FBRUQscUJBQXFCLENBQUMsU0FBUyxHQUFHO0FBQ2hDLGFBQVcsRUFBRSxxQkFBcUI7O0FBRWxDLFFBQU0scUJBQVE7QUFDZCxLQUFHLEVBQUUsb0JBQU8sR0FBRzs7QUFFZixnQkFBYyxFQUFFLHdCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDakMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQUUsY0FBTSwyQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO09BQUU7QUFDM0Usb0JBQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM1QixNQUFNO0FBQ0wsVUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDekI7R0FDRjtBQUNELGtCQUFnQixFQUFFLDBCQUFTLElBQUksRUFBRTtBQUMvQixXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDM0I7O0FBRUQsaUJBQWUsRUFBRSx5QkFBUyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQ3ZDLFFBQUksZ0JBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxvQkFBTyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzdCLE1BQU07QUFDTCxVQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRTtBQUNsQyxjQUFNLHlFQUEwRCxJQUFJLG9CQUFpQixDQUFDO09BQ3ZGO0FBQ0QsVUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7S0FDL0I7R0FDRjtBQUNELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDNUI7O0FBRUQsbUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFBRSxjQUFNLDJCQUFjLDRDQUE0QyxDQUFDLENBQUM7T0FBRTtBQUM5RSxvQkFBTyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQy9CLE1BQU07QUFDTCxVQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUM1QjtHQUNGO0FBQ0QscUJBQW1CLEVBQUUsNkJBQVMsSUFBSSxFQUFFO0FBQ2xDLFdBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUM5QjtDQUNGLENBQUM7O0FBRUssSUFBSSxHQUFHLEdBQUcsb0JBQU8sR0FBRyxDQUFDOzs7UUFFcEIsV0FBVztRQUFFLE1BQU0iLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlRnJhbWUsIGV4dGVuZCwgdG9TdHJpbmd9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdEhlbHBlcnN9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnN9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnNC4xLjInO1xuZXhwb3J0IGNvbnN0IENPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAnXG59O1xuXG5jb25zdCBvYmplY3RUeXBlID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBIYW5kbGViYXJzRW52aXJvbm1lbnQoaGVscGVycywgcGFydGlhbHMsIGRlY29yYXRvcnMpIHtcbiAgdGhpcy5oZWxwZXJzID0gaGVscGVycyB8fCB7fTtcbiAgdGhpcy5wYXJ0aWFscyA9IHBhcnRpYWxzIHx8IHt9O1xuICB0aGlzLmRlY29yYXRvcnMgPSBkZWNvcmF0b3JzIHx8IHt9O1xuXG4gIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnModGhpcyk7XG4gIHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnModGhpcyk7XG59XG5cbkhhbmRsZWJhcnNFbnZpcm9ubWVudC5wcm90b3R5cGUgPSB7XG4gIGNvbnN0cnVjdG9yOiBIYW5kbGViYXJzRW52aXJvbm1lbnQsXG5cbiAgbG9nZ2VyOiBsb2dnZXIsXG4gIGxvZzogbG9nZ2VyLmxvZyxcblxuICByZWdpc3RlckhlbHBlcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7IHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgaGVscGVycycpOyB9XG4gICAgICBleHRlbmQodGhpcy5oZWxwZXJzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oZWxwZXJzW25hbWVdID0gZm47XG4gICAgfVxuICB9LFxuICB1bnJlZ2lzdGVySGVscGVyOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuaGVscGVyc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUsIHBhcnRpYWwpIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgZXh0ZW5kKHRoaXMucGFydGlhbHMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIHBhcnRpYWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oYEF0dGVtcHRpbmcgdG8gcmVnaXN0ZXIgYSBwYXJ0aWFsIGNhbGxlZCBcIiR7bmFtZX1cIiBhcyB1bmRlZmluZWRgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7IHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpOyB9XG4gICAgICBleHRlbmQodGhpcy5kZWNvcmF0b3JzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWNvcmF0b3JzW25hbWVdID0gZm47XG4gICAgfVxuICB9LFxuICB1bnJlZ2lzdGVyRGVjb3JhdG9yOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuZGVjb3JhdG9yc1tuYW1lXTtcbiAgfVxufTtcblxuZXhwb3J0IGxldCBsb2cgPSBsb2dnZXIubG9nO1xuXG5leHBvcnQge2NyZWF0ZUZyYW1lLCBsb2dnZXJ9O1xuIl19\n","var Handlebars = require(\"../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"var Handlebars = require(\\\"../../../../node_modules/handlebars/runtime.js\\\");\\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\\\"default\\\"] : obj); }\\nmodule.exports = (Handlebars[\\\"default\\\"] || Handlebars).template({\\\"1\\\":function(container,depth0,helpers,partials,data) {\\n return \\\" modified\\\";\\n},\\\"3\\\":function(container,depth0,helpers,partials,data) {\\n return \\\"\t\t\t<span class=\\\\\\\"button-delete icon-delete\\\\\\\"></span>\\\\n\\\";\\n},\\\"5\\\":function(container,depth0,helpers,partials,data,blockParams,depths) {\\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\\\"function\\\", alias4=container.escapeExpression;\\n\\n return \\\"\t\t\t<div class=\\\\\\\"check\\\\\\\" data-id=\\\\\\\"\\\"\\n + alias4(((helper = (helper = helpers.index || (data && data.index)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\\\"name\\\":\\\"index\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)))\\n + \\\"\\\\\\\">\\\\n\t\t\t\t<select class=\\\\\\\"check-class\\\\\\\">\\\\n\\\"\\n + ((stack1 = helpers.each.call(alias1,(depths[1] != null ? depths[1].classes : depths[1]),{\\\"name\\\":\\\"each\\\",\\\"hash\\\":{},\\\"fn\\\":container.program(6, data, 0, blockParams, depths),\\\"inverse\\\":container.noop,\\\"data\\\":data})) != null ? stack1 : \\\"\\\")\\n + \\\"\t\t\t\t</select>\\\\n\t\t\t\t<select class=\\\\\\\"check-operator\\\\\\\">\\\\n\\\"\\n + ((stack1 = helpers.each.call(alias1,(helpers.getOperators || (depth0 && depth0.getOperators) || alias2).call(alias1,(depth0 != null ? depth0[\\\"class\\\"] : depth0),{\\\"name\\\":\\\"getOperators\\\",\\\"hash\\\":{},\\\"data\\\":data}),{\\\"name\\\":\\\"each\\\",\\\"hash\\\":{},\\\"fn\\\":container.program(8, data, 0, blockParams, depths),\\\"inverse\\\":container.noop,\\\"data\\\":data})) != null ? stack1 : \\\"\\\")\\n + \\\"\t\t\t\t</select>\\\\n\t\t\t\t<input type=\\\\\\\"text\\\\\\\" class=\\\\\\\"check-value\\\\\\\" value=\\\\\\\"\\\"\\n + alias4(((helper = (helper = helpers.value || (depth0 != null ? depth0.value : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\\\"name\\\":\\\"value\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)))\\n + \\\"\\\\\\\">\\\\n\t\t\t\t<span class=\\\\\\\"button-delete-check icon-delete\\\\\\\"></span>\\\\n\t\t\t</div>\\\\n\\\";\\n},\\\"6\\\":function(container,depth0,helpers,partials,data,blockParams,depths) {\\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\\\"function\\\", alias4=container.escapeExpression;\\n\\n return \\\"\t\t\t\t\t\t<option value=\\\\\\\"\\\"\\n + alias4(((helper = (helper = helpers[\\\"class\\\"] || (depth0 != null ? depth0[\\\"class\\\"] : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\\\"name\\\":\\\"class\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)))\\n + \\\"\\\\\\\" \\\"\\n + ((stack1 = (helpers.selectItem || (depth0 && depth0.selectItem) || alias2).call(alias1,(depth0 != null ? depth0[\\\"class\\\"] : depth0),(depths[1] != null ? depths[1][\\\"class\\\"] : depths[1]),{\\\"name\\\":\\\"selectItem\\\",\\\"hash\\\":{},\\\"data\\\":data})) != null ? stack1 : \\\"\\\")\\n + \\\">\\\"\\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\\\"name\\\":\\\"name\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)))\\n + \\\"</option>\\\\n\\\";\\n},\\\"8\\\":function(container,depth0,helpers,partials,data,blockParams,depths) {\\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\\\"function\\\", alias4=container.escapeExpression;\\n\\n return \\\"\t\t\t\t\t\t<option value=\\\\\\\"\\\"\\n + alias4(((helper = (helper = helpers.operator || (depth0 != null ? depth0.operator : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\\\"name\\\":\\\"operator\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)))\\n + \\\"\\\\\\\" \\\"\\n + ((stack1 = (helpers.selectItem || (depth0 && depth0.selectItem) || alias2).call(alias1,(depth0 != null ? depth0.operator : depth0),(depths[1] != null ? depths[1].operator : depths[1]),{\\\"name\\\":\\\"selectItem\\\",\\\"hash\\\":{},\\\"data\\\":data})) != null ? stack1 : \\\"\\\")\\n + \\\">\\\"\\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\\\"name\\\":\\\"name\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)))\\n + \\\"</option>\\\\n\\\";\\n},\\\"10\\\":function(container,depth0,helpers,partials,data) {\\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\\n\\n return ((stack1 = helpers[\\\"if\\\"].call(alias1,((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.id : stack1),{\\\"name\\\":\\\"if\\\",\\\"hash\\\":{},\\\"fn\\\":container.program(11, data, 0),\\\"inverse\\\":container.noop,\\\"data\\\":data})) != null ? stack1 : \\\"\\\")\\n + \\\"\t\t<button class=\\\\\\\"button-save pull-right\\\\\\\">\\\"\\n + container.escapeExpression(((helper = (helper = helpers.saveTXT || (depth0 != null ? depth0.saveTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \\\"function\\\" ? helper.call(alias1,{\\\"name\\\":\\\"saveTXT\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)))\\n + \\\"</button>\\\\n\\\";\\n},\\\"11\\\":function(container,depth0,helpers,partials,data) {\\n var helper;\\n\\n return \\\"\t\t\t<button class=\\\\\\\"button-reset pull-right\\\\\\\">\\\"\\n + container.escapeExpression(((helper = (helper = helpers.resetTXT || (depth0 != null ? depth0.resetTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \\\"function\\\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\\\"name\\\":\\\"resetTXT\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)))\\n + \\\"</button>\\\\n\\\";\\n},\\\"13\\\":function(container,depth0,helpers,partials,data) {\\n var helper;\\n\\n return \\\"\t\t<span class=\\\\\\\"icon-loading-small pull-right\\\\\\\"></span>\\\\n\t\t<span class=\\\\\\\"pull-right\\\\\\\">\\\"\\n + container.escapeExpression(((helper = (helper = helpers.savingTXT || (depth0 != null ? depth0.savingTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \\\"function\\\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\\\"name\\\":\\\"savingTXT\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)))\\n + \\\"</span>\\\\n\t\\\";\\n},\\\"15\\\":function(container,depth0,helpers,partials,data) {\\n var stack1;\\n\\n return ((stack1 = helpers[\\\"if\\\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.message : depth0),{\\\"name\\\":\\\"if\\\",\\\"hash\\\":{},\\\"fn\\\":container.program(16, data, 0),\\\"inverse\\\":container.noop,\\\"data\\\":data})) != null ? stack1 : \\\"\\\");\\n},\\\"16\\\":function(container,depth0,helpers,partials,data) {\\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\\n\\n return \\\"\\\\n\t\t<span class=\\\\\\\"msg pull-right \\\"\\n + ((stack1 = helpers[\\\"if\\\"].call(alias1,(depth0 != null ? depth0.errorMessage : depth0),{\\\"name\\\":\\\"if\\\",\\\"hash\\\":{},\\\"fn\\\":container.program(17, data, 0),\\\"inverse\\\":container.program(19, data, 0),\\\"data\\\":data})) != null ? stack1 : \\\"\\\")\\n + \\\"\\\\\\\">\\\\n\t\t\t\t\t\\\"\\n + container.escapeExpression(((helper = (helper = helpers.message || (depth0 != null ? depth0.message : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \\\"function\\\" ? helper.call(alias1,{\\\"name\\\":\\\"message\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)))\\n + ((stack1 = helpers[\\\"if\\\"].call(alias1,(depth0 != null ? depth0.errorMessage : depth0),{\\\"name\\\":\\\"if\\\",\\\"hash\\\":{},\\\"fn\\\":container.program(21, data, 0),\\\"inverse\\\":container.noop,\\\"data\\\":data})) != null ? stack1 : \\\"\\\")\\n + \\\"\\\\n\t\t\t\t</span>\\\\n\t\\\";\\n},\\\"17\\\":function(container,depth0,helpers,partials,data) {\\n return \\\"error\\\";\\n},\\\"19\\\":function(container,depth0,helpers,partials,data) {\\n return \\\"success\\\";\\n},\\\"21\\\":function(container,depth0,helpers,partials,data) {\\n var helper;\\n\\n return \\\" \\\"\\n + container.escapeExpression(((helper = (helper = helpers.errorMessage || (depth0 != null ? depth0.errorMessage : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \\\"function\\\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\\\"name\\\":\\\"errorMessage\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)));\\n},\\\"compiler\\\":[7,\\\">= 4.0.0\\\"],\\\"main\\\":function(container,depth0,helpers,partials,data,blockParams,depths) {\\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\\\"function\\\", alias4=container.escapeExpression, alias5=container.lambda;\\n\\n return \\\"<div class=\\\\\\\"operation\\\"\\n + ((stack1 = helpers[\\\"if\\\"].call(alias1,(depth0 != null ? depth0.hasChanged : depth0),{\\\"name\\\":\\\"if\\\",\\\"hash\\\":{},\\\"fn\\\":container.program(1, data, 0, blockParams, depths),\\\"inverse\\\":container.noop,\\\"data\\\":data})) != null ? stack1 : \\\"\\\")\\n + \\\"\\\\\\\">\\\\n\t<div class=\\\\\\\"operation-header\\\\\\\">\\\\n\t\t<input type=\\\\\\\"text\\\\\\\" class=\\\\\\\"operation-name\\\\\\\" placeholder=\\\\\\\"\\\"\\n + alias4(((helper = (helper = helpers.shortRuleDescTXT || (depth0 != null ? depth0.shortRuleDescTXT : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\\\"name\\\":\\\"shortRuleDescTXT\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)))\\n + \\\"\\\\\\\" value=\\\\\\\"\\\"\\n + alias4(alias5(((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.name : stack1), depth0))\\n + \\\"\\\\\\\" />\\\\n\t\t<input type=\\\\\\\"text\\\\\\\" class=\\\\\\\"operation-operation\\\\\\\" value=\\\\\\\"\\\"\\n + alias4(alias5(((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.operation : stack1), depth0))\\n + \\\"\\\\\\\" />\\\\n\\\"\\n + ((stack1 = helpers[\\\"if\\\"].call(alias1,((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.id : stack1),{\\\"name\\\":\\\"if\\\",\\\"hash\\\":{},\\\"fn\\\":container.program(3, data, 0, blockParams, depths),\\\"inverse\\\":container.noop,\\\"data\\\":data})) != null ? stack1 : \\\"\\\")\\n + \\\"\t</div>\\\\n\\\\n\t<div class=\\\\\\\"checks\\\\\\\">\\\\n\\\"\\n + ((stack1 = helpers.each.call(alias1,((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.checks : stack1),{\\\"name\\\":\\\"each\\\",\\\"hash\\\":{},\\\"fn\\\":container.program(5, data, 0, blockParams, depths),\\\"inverse\\\":container.noop,\\\"data\\\":data})) != null ? stack1 : \\\"\\\")\\n + \\\"\t</div>\\\\n\t<button class=\\\\\\\"button-add\\\\\\\">\\\"\\n + alias4(((helper = (helper = helpers.addRuleTXT || (depth0 != null ? depth0.addRuleTXT : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\\\"name\\\":\\\"addRuleTXT\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)))\\n + \\\"</button>\\\\n\\\"\\n + ((stack1 = helpers[\\\"if\\\"].call(alias1,(depth0 != null ? depth0.hasChanged : depth0),{\\\"name\\\":\\\"if\\\",\\\"hash\\\":{},\\\"fn\\\":container.program(10, data, 0, blockParams, depths),\\\"inverse\\\":container.noop,\\\"data\\\":data})) != null ? stack1 : \\\"\\\")\\n + ((stack1 = helpers[\\\"if\\\"].call(alias1,(depth0 != null ? depth0.saving : depth0),{\\\"name\\\":\\\"if\\\",\\\"hash\\\":{},\\\"fn\\\":container.program(13, data, 0, blockParams, depths),\\\"inverse\\\":container.program(15, data, 0, blockParams, depths),\\\"data\\\":data})) != null ? stack1 : \\\"\\\")\\n + \\\"\\\\n</div>\\\\n\\\";\\n},\\\"useData\\\":true,\\\"useDepths\\\":true});\";\n},\"useData\":true});","var Handlebars = require(\"../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"var Handlebars = require(\\\"../../../../node_modules/handlebars/runtime.js\\\");\\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\\\"default\\\"] : obj); }\\nmodule.exports = (Handlebars[\\\"default\\\"] || Handlebars).template({\\\"compiler\\\":[7,\\\">= 4.0.0\\\"],\\\"main\\\":function(container,depth0,helpers,partials,data) {\\n var helper;\\n\\n return \\\"<div class=\\\\\\\"operations\\\\\\\"></div>\\\\n<button class=\\\\\\\"button-add-operation\\\\\\\">\\\"\\n + container.escapeExpression(((helper = (helper = helpers.addRuleGroupTXT || (depth0 != null ? depth0.addRuleGroupTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \\\"function\\\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\\\"name\\\":\\\"addRuleGroupTXT\\\",\\\"hash\\\":{},\\\"data\\\":data}) : helper)))\\n + \\\"</button>\\\\n\\\";\\n},\\\"useData\\\":true});\";\n},\"useData\":true});","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n\n hb.VM = runtime;\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n _helpersEach2['default'](instance);\n _helpersHelperMissing2['default'](instance);\n _helpersIf2['default'](instance);\n _helpersLog2['default'](instance);\n _helpersLookup2['default'](instance);\n _helpersWith2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7eUNBQXVDLGdDQUFnQzs7OzsyQkFDOUMsZ0JBQWdCOzs7O29DQUNQLDBCQUEwQjs7Ozt5QkFDckMsY0FBYzs7OzswQkFDYixlQUFlOzs7OzZCQUNaLGtCQUFrQjs7OzsyQkFDcEIsZ0JBQWdCOzs7O0FBRWxDLFNBQVMsc0JBQXNCLENBQUMsUUFBUSxFQUFFO0FBQy9DLHlDQUEyQixRQUFRLENBQUMsQ0FBQztBQUNyQywyQkFBYSxRQUFRLENBQUMsQ0FBQztBQUN2QixvQ0FBc0IsUUFBUSxDQUFDLENBQUM7QUFDaEMseUJBQVcsUUFBUSxDQUFDLENBQUM7QUFDckIsMEJBQVksUUFBUSxDQUFDLENBQUM7QUFDdEIsNkJBQWUsUUFBUSxDQUFDLENBQUM7QUFDekIsMkJBQWEsUUFBUSxDQUFDLENBQUM7Q0FDeEIiLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZWdpc3RlckJsb2NrSGVscGVyTWlzc2luZyBmcm9tICcuL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcnO1xuaW1wb3J0IHJlZ2lzdGVyRWFjaCBmcm9tICcuL2hlbHBlcnMvZWFjaCc7XG5pbXBvcnQgcmVnaXN0ZXJIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJJZiBmcm9tICcuL2hlbHBlcnMvaWYnO1xuaW1wb3J0IHJlZ2lzdGVyTG9nIGZyb20gJy4vaGVscGVycy9sb2cnO1xuaW1wb3J0IHJlZ2lzdGVyTG9va3VwIGZyb20gJy4vaGVscGVycy9sb29rdXAnO1xuaW1wb3J0IHJlZ2lzdGVyV2l0aCBmcm9tICcuL2hlbHBlcnMvd2l0aCc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckRlZmF1bHRIZWxwZXJzKGluc3RhbmNlKSB7XG4gIHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJFYWNoKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJIZWxwZXJNaXNzaW5nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJJZihpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyTG9nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb29rdXAoaW5zdGFuY2UpO1xuICByZWdpc3RlcldpdGgoaW5zdGFuY2UpO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('blockHelperMissing', function (context, options) {\n var inverse = options.inverse,\n fn = options.fn;\n\n if (context === true) {\n return fn(this);\n } else if (context === false || context == null) {\n return inverse(this);\n } else if (_utils.isArray(context)) {\n if (context.length > 0) {\n if (options.ids) {\n options.ids = [options.name];\n }\n\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n if (options.data && options.ids) {\n var data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n options = { data: data };\n }\n\n return fn(context, options);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBc0QsVUFBVTs7cUJBRWpELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQ3pCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVwQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdFLGVBQU8sR0FBRyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQztPQUN4Qjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXBwZW5kQ29udGV4dFBhdGgsIGNyZWF0ZUZyYW1lLCBpc0FycmF5fSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdibG9ja0hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgbGV0IGludmVyc2UgPSBvcHRpb25zLmludmVyc2UsXG4gICAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCwgb3B0aW9ucy5uYW1lKTtcbiAgICAgICAgb3B0aW9ucyA9IHtkYXRhOiBkYXRhfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else {\n var priorKey = undefined;\n\n for (var key in context) {\n if (context.hasOwnProperty(key)) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n priorKey = key;\n i++;\n }\n }\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQUErRSxVQUFVOzt5QkFDbkUsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3pELFFBQUksQ0FBQyxPQUFPLEVBQUU7QUFDWixZQUFNLDJCQUFjLDZCQUE2QixDQUFDLENBQUM7S0FDcEQ7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUU7UUFDZixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU87UUFDekIsQ0FBQyxHQUFHLENBQUM7UUFDTCxHQUFHLEdBQUcsRUFBRTtRQUNSLElBQUksWUFBQTtRQUNKLFdBQVcsWUFBQSxDQUFDOztBQUVoQixRQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixpQkFBVyxHQUFHLHlCQUFrQixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0tBQ2pGOztBQUVELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFBRSxhQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUFFOztBQUUxRCxRQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDaEIsVUFBSSxHQUFHLG1CQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNsQzs7QUFFRCxhQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtBQUN6QyxVQUFJLElBQUksRUFBRTtBQUNSLFlBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQ2pCLFlBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQ25CLFlBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQztBQUN6QixZQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7O0FBRW5CLFlBQUksV0FBVyxFQUFFO0FBQ2YsY0FBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQ3hDO09BQ0Y7O0FBRUQsU0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzdCLFlBQUksRUFBRSxJQUFJO0FBQ1YsbUJBQVcsRUFBRSxtQkFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDL0UsQ0FBQyxDQUFDO0tBQ0o7O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNO0FBQ0wsWUFBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixhQUFLLElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRTtBQUN2QixjQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Ozs7QUFJL0IsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0w7U0FDRjtBQUNELFlBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQix1QkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3RDO09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXBwZW5kQ29udGV4dFBhdGgsIGJsb2NrUGFyYW1zLCBjcmVhdGVGcmFtZSwgaXNBcnJheSwgaXNGdW5jdGlvbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICAgIGludmVyc2UgPSBvcHRpb25zLmludmVyc2UsXG4gICAgICAgIGkgPSAwLFxuICAgICAgICByZXQgPSAnJyxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY29udGV4dFBhdGg7XG5cbiAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICBjb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCwgb3B0aW9ucy5pZHNbMF0pICsgJy4nO1xuICAgIH1cblxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7IGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7IH1cblxuICAgIGlmIChvcHRpb25zLmRhdGEpIHtcbiAgICAgIGRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4ZWNJdGVyYXRpb24oZmllbGQsIGluZGV4LCBsYXN0KSB7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICBkYXRhLmtleSA9IGZpZWxkO1xuICAgICAgICBkYXRhLmluZGV4ID0gaW5kZXg7XG4gICAgICAgIGRhdGEuZmlyc3QgPSBpbmRleCA9PT0gMDtcbiAgICAgICAgZGF0YS5sYXN0ID0gISFsYXN0O1xuXG4gICAgICAgIGlmIChjb250ZXh0UGF0aCkge1xuICAgICAgICAgIGRhdGEuY29udGV4dFBhdGggPSBjb250ZXh0UGF0aCArIGZpZWxkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldCA9IHJldCArIGZuKGNvbnRleHRbZmllbGRdLCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhbY29udGV4dFtmaWVsZF0sIGZpZWxkXSwgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRleHQgJiYgdHlwZW9mIGNvbnRleHQgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgICBmb3IgKGxldCBqID0gY29udGV4dC5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgICAgICBpZiAoaSBpbiBjb250ZXh0KSB7XG4gICAgICAgICAgICBleGVjSXRlcmF0aW9uKGksIGksIGkgPT09IGNvbnRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcHJpb3JLZXk7XG5cbiAgICAgICAgZm9yIChsZXQga2V5IGluIGNvbnRleHQpIHtcbiAgICAgICAgICBpZiAoY29udGV4dC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAvLyBXZSdyZSBydW5uaW5nIHRoZSBpdGVyYXRpb25zIG9uZSBzdGVwIG91dCBvZiBzeW5jIHNvIHdlIGNhbiBkZXRlY3RcbiAgICAgICAgICAgIC8vIHRoZSBsYXN0IGl0ZXJhdGlvbiB3aXRob3V0IGhhdmUgdG8gc2NhbiB0aGUgb2JqZWN0IHR3aWNlIGFuZCBjcmVhdGVcbiAgICAgICAgICAgIC8vIGFuIGl0ZXJtZWRpYXRlIGtleXMgYXJyYXkuXG4gICAgICAgICAgICBpZiAocHJpb3JLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmlvcktleSA9IGtleTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgcmV0ID0gaW52ZXJzZSh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function () /* [args, ]options */{\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFBYyxtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7S0FDdkY7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ01pc3NpbmcgaGVscGVyOiBcIicgKyBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdLm5hbWUgKyAnXCInKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('if', function (conditional, options) {\n if (_utils.isFunction(conditional)) {\n conditional = conditional.call(this);\n }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function (conditional, options) {\n return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash });\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBa0MsVUFBVTs7cUJBRTdCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLGtCQUFXLFdBQVcsQ0FBQyxFQUFFO0FBQUUsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQUU7Ozs7O0FBS3RFLFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFdBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQztHQUN2SCxDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJpZi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNFbXB0eSwgaXNGdW5jdGlvbn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignaWYnLCBmdW5jdGlvbihjb25kaXRpb25hbCwgb3B0aW9ucykge1xuICAgIGlmIChpc0Z1bmN0aW9uKGNvbmRpdGlvbmFsKSkgeyBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7IH1cblxuICAgIC8vIERlZmF1bHQgYmVoYXZpb3IgaXMgdG8gcmVuZGVyIHRoZSBwb3NpdGl2ZSBwYXRoIGlmIHRoZSB2YWx1ZSBpcyB0cnV0aHkgYW5kIG5vdCBlbXB0eS5cbiAgICAvLyBUaGUgYGluY2x1ZGVaZXJvYCBvcHRpb24gbWF5IGJlIHNldCB0byB0cmVhdCB0aGUgY29uZHRpb25hbCBhcyBwdXJlbHkgbm90IGVtcHR5IGJhc2VkIG9uIHRoZVxuICAgIC8vIGJlaGF2aW9yIG9mIGlzRW1wdHkuIEVmZmVjdGl2ZWx5IHRoaXMgZGV0ZXJtaW5lcyBpZiAwIGlzIGhhbmRsZWQgYnkgdGhlIHBvc2l0aXZlIHBhdGggb3IgbmVnYXRpdmUuXG4gICAgaWYgKCghb3B0aW9ucy5oYXNoLmluY2x1ZGVaZXJvICYmICFjb25kaXRpb25hbCkgfHwgaXNFbXB0eShjb25kaXRpb25hbCkpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmludmVyc2UodGhpcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmZuKHRoaXMpO1xuICAgIH1cbiAgfSk7XG5cbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ3VubGVzcycsIGZ1bmN0aW9uKGNvbmRpdGlvbmFsLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnNbJ2lmJ10uY2FsbCh0aGlzLCBjb25kaXRpb25hbCwge2ZuOiBvcHRpb25zLmludmVyc2UsIGludmVyc2U6IG9wdGlvbnMuZm4sIGhhc2g6IG9wdGlvbnMuaGFzaH0pO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function () /* message, options */{\n var args = [undefined],\n options = arguments[arguments.length - 1];\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n args[0] = level;\n\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ2xCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVMsSUFBSSxDQUFDLENBQUM7R0FDeEIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgICBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICAgIH1cblxuICAgIGxldCBsZXZlbCA9IDE7XG4gICAgaWYgKG9wdGlvbnMuaGFzaC5sZXZlbCAhPSBudWxsKSB7XG4gICAgICBsZXZlbCA9IG9wdGlvbnMuaGFzaC5sZXZlbDtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGEubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmRhdGEubGV2ZWw7XG4gICAgfVxuICAgIGFyZ3NbMF0gPSBsZXZlbDtcblxuICAgIGluc3RhbmNlLmxvZyguLi4gYXJncyk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('lookup', function (obj, field) {\n if (!obj) {\n return obj;\n }\n if (field === 'constructor' && !obj.propertyIsEnumerable(field)) {\n return undefined;\n }\n return obj[field];\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFO0FBQ3JELFFBQUksQ0FBQyxHQUFHLEVBQUU7QUFDUixhQUFPLEdBQUcsQ0FBQztLQUNaO0FBQ0QsUUFBSSxLQUFLLEtBQUssYUFBYSxJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQy9ELGFBQU8sU0FBUyxDQUFDO0tBQ2xCO0FBQ0QsV0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7R0FDbkIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9va3VwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvb2t1cCcsIGZ1bmN0aW9uKG9iaiwgZmllbGQpIHtcbiAgICBpZiAoIW9iaikge1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgaWYgKGZpZWxkID09PSAnY29uc3RydWN0b3InICYmICFvYmoucHJvcGVydHlJc0VudW1lcmFibGUoZmllbGQpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gb2JqW2ZpZWxkXTtcbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUErRSxVQUFVOztxQkFFMUUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3pELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFBRSxhQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUFFOztBQUUxRCxRQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVwQixRQUFJLENBQUMsZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNyQixVQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0FBQ3hCLFVBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQy9CLFlBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO09BQ2hGOztBQUVELGFBQU8sRUFBRSxDQUFDLE9BQU8sRUFBRTtBQUNqQixZQUFJLEVBQUUsSUFBSTtBQUNWLG1CQUFXLEVBQUUsbUJBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7T0FDaEUsQ0FBQyxDQUFDO0tBQ0osTUFBTTtBQUNMLGFBQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM5QjtHQUNGLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6IndpdGguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FwcGVuZENvbnRleHRQYXRoLCBibG9ja1BhcmFtcywgY3JlYXRlRnJhbWUsIGlzRW1wdHksIGlzRnVuY3Rpb259IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ3dpdGgnLCBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHsgY29udGV4dCA9IGNvbnRleHQuY2FsbCh0aGlzKTsgfVxuXG4gICAgbGV0IGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmICghaXNFbXB0eShjb250ZXh0KSkge1xuICAgICAgbGV0IGRhdGEgPSBvcHRpb25zLmRhdGE7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgICBkYXRhLmNvbnRleHRQYXRoID0gYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmbihjb250ZXh0LCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhbY29udGV4dF0sIFtkYXRhICYmIGRhdGEuY29udGV4dFBhdGhdKVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmludmVyc2UodGhpcyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG5cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n if (!props.partials) {\n props.partials = {};\n ret = function (context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXFCLFVBQVU7O3FCQUVoQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZXh0ZW5kfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVyRGVjb3JhdG9yKCdpbmxpbmUnLCBmdW5jdGlvbihmbiwgcHJvcHMsIGNvbnRhaW5lciwgb3B0aW9ucykge1xuICAgIGxldCByZXQgPSBmbjtcbiAgICBpZiAoIXByb3BzLnBhcnRpYWxzKSB7XG4gICAgICBwcm9wcy5wYXJ0aWFscyA9IHt9O1xuICAgICAgcmV0ID0gZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgcGFydGlhbHMgc3RhY2sgZnJhbWUgcHJpb3IgdG8gZXhlYy5cbiAgICAgICAgbGV0IG9yaWdpbmFsID0gY29udGFpbmVyLnBhcnRpYWxzO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBleHRlbmQoe30sIG9yaWdpbmFsLCBwcm9wcy5wYXJ0aWFscyk7XG4gICAgICAgIGxldCByZXQgPSBmbihjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgICAgY29udGFpbmVyLnBhcnRpYWxzID0gb3JpZ2luYWw7XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLnBhcnRpYWxzW29wdGlvbnMuYXJnc1swXV0gPSBvcHRpb25zLmZuO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n methodMap: ['debug', 'info', 'warn', 'error'],\n level: 'info',\n\n // Maps a given level value to the `methodMap` indexes above.\n lookupLevel: function lookupLevel(level) {\n if (typeof level === 'string') {\n var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n if (levelMap >= 0) {\n level = levelMap;\n } else {\n level = parseInt(level, 10);\n }\n }\n\n return level;\n },\n\n // Can be overridden in the host environment\n log: function log(level) {\n level = logger.lookupLevel(level);\n\n if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n var method = logger.methodMap[level];\n if (!console[method]) {\n // eslint-disable-line no-console\n method = 'log';\n }\n\n for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n }\n\n console[method].apply(console, message); // eslint-disable-line no-console\n }\n }\n};\n\nexports['default'] = logger;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUFzQixTQUFTOztBQUUvQixJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEVBQUU7QUFDL0UsVUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNyQyxVQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFOztBQUNwQixjQUFNLEdBQUcsS0FBSyxDQUFDO09BQ2hCOzt3Q0FQbUIsT0FBTztBQUFQLGVBQU87OztBQVEzQixhQUFPLENBQUMsTUFBTSxPQUFDLENBQWYsT0FBTyxFQUFZLE9BQU8sQ0FBQyxDQUFDO0tBQzdCO0dBQ0Y7Q0FDRixDQUFDOztxQkFFYSxNQUFNIiwiZmlsZSI6ImxvZ2dlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5kZXhPZn0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWwpIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIGlmICghY29uc29sZVttZXRob2RdKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0=\n","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision !== currentRevision) {\n if (compilerRevision < currentRevision) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d;\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as psuedo-supported APIs.\n env.VM.checkRevision(templateSpec.compiler);\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n var result = env.VM.invokePartial.call(this, partial, context, options);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, options);\n }\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n result = lines.join('\\n');\n }\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n }\n\n // Just add water\n var container = {\n strict: function strict(obj, name) {\n if (!(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj);\n }\n return obj[name];\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n for (var i = 0; i < len; i++) {\n if (depths[i] && depths[i][name] != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n return programWrapper;\n },\n\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n return value;\n },\n merge: function merge(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var data = options.data;\n\n ret._setup(options);\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context /*, options*/) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n container.helpers = container.merge(options.helpers, env.helpers);\n\n if (templateSpec.usePartial) {\n container.partials = container.merge(options.partials, env.partials);\n }\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = container.merge(options.decorators, env.decorators);\n }\n } else {\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var currentDepths = depths;\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data);\n // Wrapper function to get access to currentPartialBlock from the closure\n var fn = options.fn;\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n return prog;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBQzhCLFFBQVE7O0FBRWxFLFNBQVMsYUFBYSxDQUFDLFlBQVksRUFBRTtBQUMxQyxNQUFNLGdCQUFnQixHQUFHLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztNQUN2RCxlQUFlLDBCQUFvQixDQUFDOztBQUUxQyxNQUFJLGdCQUFnQixLQUFLLGVBQWUsRUFBRTtBQUN4QyxRQUFJLGdCQUFnQixHQUFHLGVBQWUsRUFBRTtBQUN0QyxVQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1VBQ25ELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQzVELFlBQU0sMkJBQWMseUZBQXlGLEdBQ3ZHLHFEQUFxRCxHQUFHLGVBQWUsR0FBRyxtREFBbUQsR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNoSyxNQUFNOztBQUVMLFlBQU0sMkJBQWMsd0ZBQXdGLEdBQ3RHLGlEQUFpRCxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNuRjtHQUNGO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztHQUN4RTs7QUFFRCxjQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDOzs7O0FBSWxELEtBQUcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7QUFFNUMsV0FBUyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN2RCxRQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDaEIsYUFBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEQsVUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQ2YsZUFBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7T0FDdkI7S0FDRjs7QUFFRCxXQUFPLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RFLFFBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQzs7QUFFeEUsUUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUU7QUFDakMsYUFBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUN6RixZQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQzNEO0FBQ0QsUUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ2xCLFVBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtBQUNsQixZQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLGFBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDNUMsY0FBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUM1QixrQkFBTTtXQUNQOztBQUVELGVBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0QztBQUNELGNBQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO09BQzNCO0FBQ0QsYUFBTyxNQUFNLENBQUM7S0FDZixNQUFNO0FBQ0wsWUFBTSwyQkFBYyxjQUFjLEdBQUcsT0FBTyxDQUFDLElBQUksR0FBRywwREFBMEQsQ0FBQyxDQUFDO0tBQ2pIO0dBQ0Y7OztBQUdELE1BQUksU0FBUyxHQUFHO0FBQ2QsVUFBTSxFQUFFLGdCQUFTLEdBQUcsRUFBRSxJQUFJLEVBQUU7QUFDMUIsVUFBSSxFQUFFLElBQUksSUFBSSxHQUFHLENBQUEsQUFBQyxFQUFFO0FBQ2xCLGNBQU0sMkJBQWMsR0FBRyxHQUFHLElBQUksR0FBRyxtQkFBbUIsR0FBRyxHQUFHLENBQUMsQ0FBQztPQUM3RDtBQUNELGFBQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xCO0FBQ0QsVUFBTSxFQUFFLGdCQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUU7QUFDN0IsVUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUMxQixXQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzVCLFlBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUU7QUFDeEMsaUJBQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO09BQ0Y7S0FDRjtBQUNELFVBQU0sRUFBRSxnQkFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ2pDLGFBQU8sT0FBTyxPQUFPLEtBQUssVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQ3hFOztBQUVELG9CQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7QUFDeEMsaUJBQWEsRUFBRSxvQkFBb0I7O0FBRW5DLE1BQUUsRUFBRSxZQUFTLENBQUMsRUFBRTtBQUNkLFVBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQixTQUFHLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDdkMsYUFBTyxHQUFHLENBQUM7S0FDWjs7QUFFRCxZQUFRLEVBQUUsRUFBRTtBQUNaLFdBQU8sRUFBRSxpQkFBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7QUFDbkUsVUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7VUFDakMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsVUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLFdBQVcsSUFBSSxtQkFBbUIsRUFBRTtBQUN4RCxzQkFBYyxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO09BQzNGLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRTtBQUMxQixzQkFBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7T0FDOUQ7QUFDRCxhQUFPLGNBQWMsQ0FBQztLQUN2Qjs7QUFFRCxRQUFJLEVBQUUsY0FBUyxLQUFLLEVBQUUsS0FBSyxFQUFFO0FBQzNCLGFBQU8sS0FBSyxJQUFJLEtBQUssRUFBRSxFQUFFO0FBQ3ZCLGFBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO09BQ3ZCO0FBQ0QsYUFBTyxLQUFLLENBQUM7S0FDZDtBQUNELFNBQUssRUFBRSxlQUFTLEtBQUssRUFBRSxNQUFNLEVBQUU7QUFDN0IsVUFBSSxHQUFHLEdBQUcsS0FBSyxJQUFJLE1BQU0sQ0FBQzs7QUFFMUIsVUFBSSxLQUFLLElBQUksTUFBTSxJQUFLLEtBQUssS0FBSyxNQUFNLEFBQUMsRUFBRTtBQUN6QyxXQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO09BQ3ZDOztBQUVELGFBQU8sR0FBRyxDQUFDO0tBQ1o7O0FBRUQsZUFBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDOztBQUU1QixRQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJO0FBQ2pCLGdCQUFZLEVBQUUsWUFBWSxDQUFDLFFBQVE7R0FDcEMsQ0FBQzs7QUFFRixXQUFTLEdBQUcsQ0FBQyxPQUFPLEVBQWdCO1FBQWQsT0FBTyx5REFBRyxFQUFFOztBQUNoQyxRQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDOztBQUV4QixPQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BCLFFBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUU7QUFDNUMsVUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDaEM7QUFDRCxRQUFJLE1BQU0sWUFBQTtRQUNOLFdBQVcsR0FBRyxZQUFZLENBQUMsY0FBYyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7QUFDL0QsUUFBSSxZQUFZLENBQUMsU0FBUyxFQUFFO0FBQzFCLFVBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtBQUNsQixjQUFNLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7T0FDM0YsTUFBTTtBQUNMLGNBQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO09BQ3BCO0tBQ0Y7O0FBRUQsYUFBUyxJQUFJLENBQUMsT0FBTyxnQkFBZTtBQUNsQyxhQUFPLEVBQUUsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDckg7QUFDRCxRQUFJLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztBQUN0RyxXQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7R0FDL0I7QUFDRCxLQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzs7QUFFakIsS0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFTLE9BQU8sRUFBRTtBQUM3QixRQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtBQUNwQixlQUFTLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7O0FBRWxFLFVBQUksWUFBWSxDQUFDLFVBQVUsRUFBRTtBQUMzQixpQkFBUyxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO09BQ3RFO0FBQ0QsVUFBSSxZQUFZLENBQUMsVUFBVSxJQUFJLFlBQVksQ0FBQyxhQUFhLEVBQUU7QUFDekQsaUJBQVMsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztPQUM1RTtLQUNGLE1BQU07QUFDTCxlQUFTLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDcEMsZUFBUyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0FBQ3RDLGVBQVMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztLQUMzQztHQUNGLENBQUM7O0FBRUYsS0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtBQUNsRCxRQUFJLFlBQVksQ0FBQyxjQUFjLElBQUksQ0FBQyxXQUFXLEVBQUU7QUFDL0MsWUFBTSwyQkFBYyx3QkFBd0IsQ0FBQyxDQUFDO0tBQy9DO0FBQ0QsUUFBSSxZQUFZLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ3JDLFlBQU0sMkJBQWMseUJBQXlCLENBQUMsQ0FBQztLQUNoRDs7QUFFRCxXQUFPLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztHQUNqRixDQUFDO0FBQ0YsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtBQUM1RixXQUFTLElBQUksQ0FBQyxPQUFPLEVBQWdCO1FBQWQsT0FBTyx5REFBRyxFQUFFOztBQUNqQyxRQUFJLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFDM0IsUUFBSSxNQUFNLElBQUksT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sS0FBSyxTQUFTLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUEsQUFBQyxFQUFFO0FBQ2hHLG1CQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDMUM7O0FBRUQsV0FBTyxFQUFFLENBQUMsU0FBUyxFQUNmLE9BQU8sRUFDUCxTQUFTLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQ3JDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxFQUNwQixXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUN4RCxhQUFhLENBQUMsQ0FBQztHQUNwQjs7QUFFRCxNQUFJLEdBQUcsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQzs7QUFFekUsTUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDeEMsTUFBSSxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsSUFBSSxDQUFDLENBQUM7QUFDNUMsU0FBTyxJQUFJLENBQUM7Q0FDYjs7QUFFTSxTQUFTLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN4RCxNQUFJLENBQUMsT0FBTyxFQUFFO0FBQ1osUUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFO0FBQ3JDLGFBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ3pDLE1BQU07QUFDTCxhQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDMUM7R0FDRixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTs7QUFFekMsV0FBTyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7QUFDdkIsV0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7R0FDckM7QUFDRCxTQUFPLE9BQU8sQ0FBQztDQUNoQjs7QUFFTSxTQUFTLGFBQWEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTs7QUFFdkQsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDMUUsU0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDdkIsTUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQ2YsV0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztHQUN2RTs7QUFFRCxNQUFJLFlBQVksWUFBQSxDQUFDO0FBQ2pCLE1BQUksT0FBTyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLElBQUksRUFBRTs7QUFDckMsYUFBTyxDQUFDLElBQUksR0FBRyxrQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRXpDLFVBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDcEIsa0JBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLFNBQVMsbUJBQW1CLENBQUMsT0FBTyxFQUFnQjtZQUFkLE9BQU8seURBQUcsRUFBRTs7OztBQUkvRixlQUFPLENBQUMsSUFBSSxHQUFHLGtCQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QyxlQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLG1CQUFtQixDQUFDO0FBQ3BELGVBQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztPQUM3QixDQUFDO0FBQ0YsVUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0FBQ2YsZUFBTyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztPQUNwRTs7R0FDRjs7QUFFRCxNQUFJLE9BQU8sS0FBSyxTQUFTLElBQUksWUFBWSxFQUFFO0FBQ3pDLFdBQU8sR0FBRyxZQUFZLENBQUM7R0FDeEI7O0FBRUQsTUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO0FBQ3pCLFVBQU0sMkJBQWMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUMsQ0FBQztHQUM1RSxNQUFNLElBQUksT0FBTyxZQUFZLFFBQVEsRUFBRTtBQUN0QyxXQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7R0FDbEM7Q0FDRjs7QUFFTSxTQUFTLElBQUksR0FBRztBQUFFLFNBQU8sRUFBRSxDQUFDO0NBQUU7O0FBRXJDLFNBQVMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUU7QUFDL0IsTUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUEsQUFBQyxFQUFFO0FBQzlCLFFBQUksR0FBRyxJQUFJLEdBQUcsa0JBQVksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3JDLFFBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO0dBQ3JCO0FBQ0QsU0FBTyxJQUFJLENBQUM7Q0FDYjs7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3pFLE1BQUksRUFBRSxDQUFDLFNBQVMsRUFBRTtBQUNoQixRQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDZixRQUFJLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUYsU0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7R0FDM0I7QUFDRCxTQUFPLElBQUksQ0FBQztDQUNiIiwiZmlsZSI6InJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHsgQ09NUElMRVJfUkVWSVNJT04sIFJFVklTSU9OX0NIQU5HRVMsIGNyZWF0ZUZyYW1lIH0gZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUmV2aXNpb24oY29tcGlsZXJJbmZvKSB7XG4gIGNvbnN0IGNvbXBpbGVyUmV2aXNpb24gPSBjb21waWxlckluZm8gJiYgY29tcGlsZXJJbmZvWzBdIHx8IDEsXG4gICAgICAgIGN1cnJlbnRSZXZpc2lvbiA9IENPTVBJTEVSX1JFVklTSU9OO1xuXG4gIGlmIChjb21waWxlclJldmlzaW9uICE9PSBjdXJyZW50UmV2aXNpb24pIHtcbiAgICBpZiAoY29tcGlsZXJSZXZpc2lvbiA8IGN1cnJlbnRSZXZpc2lvbikge1xuICAgICAgY29uc3QgcnVudGltZVZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjdXJyZW50UmV2aXNpb25dLFxuICAgICAgICAgICAgY29tcGlsZXJWZXJzaW9ucyA9IFJFVklTSU9OX0NIQU5HRVNbY29tcGlsZXJSZXZpc2lvbl07XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdUZW1wbGF0ZSB3YXMgcHJlY29tcGlsZWQgd2l0aCBhbiBvbGRlciB2ZXJzaW9uIG9mIEhhbmRsZWJhcnMgdGhhbiB0aGUgY3VycmVudCBydW50aW1lLiAnICtcbiAgICAgICAgICAgICdQbGVhc2UgdXBkYXRlIHlvdXIgcHJlY29tcGlsZXIgdG8gYSBuZXdlciB2ZXJzaW9uICgnICsgcnVudGltZVZlcnNpb25zICsgJykgb3IgZG93bmdyYWRlIHlvdXIgcnVudGltZSB0byBhbiBvbGRlciB2ZXJzaW9uICgnICsgY29tcGlsZXJWZXJzaW9ucyArICcpLicpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVc2UgdGhlIGVtYmVkZGVkIHZlcnNpb24gaW5mbyBzaW5jZSB0aGUgcnVudGltZSBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyByZXZpc2lvbiB5ZXRcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGEgbmV3ZXIgdmVyc2lvbiBvZiBIYW5kbGViYXJzIHRoYW4gdGhlIGN1cnJlbnQgcnVudGltZS4gJyArXG4gICAgICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHJ1bnRpbWUgdG8gYSBuZXdlciB2ZXJzaW9uICgnICsgY29tcGlsZXJJbmZvWzFdICsgJykuJyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZSh0ZW1wbGF0ZVNwZWMsIGVudikge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBpZiAoIWVudikge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ05vIGVudmlyb25tZW50IHBhc3NlZCB0byB0ZW1wbGF0ZScpO1xuICB9XG4gIGlmICghdGVtcGxhdGVTcGVjIHx8ICF0ZW1wbGF0ZVNwZWMubWFpbikge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1Vua25vd24gdGVtcGxhdGUgb2JqZWN0OiAnICsgdHlwZW9mIHRlbXBsYXRlU3BlYyk7XG4gIH1cblxuICB0ZW1wbGF0ZVNwZWMubWFpbi5kZWNvcmF0b3IgPSB0ZW1wbGF0ZVNwZWMubWFpbl9kO1xuXG4gIC8vIE5vdGU6IFVzaW5nIGVudi5WTSByZWZlcmVuY2VzIHJhdGhlciB0aGFuIGxvY2FsIHZhciByZWZlcmVuY2VzIHRocm91Z2hvdXQgdGhpcyBzZWN0aW9uIHRvIGFsbG93XG4gIC8vIGZvciBleHRlcm5hbCB1c2VycyB0byBvdmVycmlkZSB0aGVzZSBhcyBwc3VlZG8tc3VwcG9ydGVkIEFQSXMuXG4gIGVudi5WTS5jaGVja1JldmlzaW9uKHRlbXBsYXRlU3BlYy5jb21waWxlcik7XG5cbiAgZnVuY3Rpb24gaW52b2tlUGFydGlhbFdyYXBwZXIocGFydGlhbCwgY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICAgIGNvbnRleHQgPSBVdGlscy5leHRlbmQoe30sIGNvbnRleHQsIG9wdGlvbnMuaGFzaCk7XG4gICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgb3B0aW9ucy5pZHNbMF0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBhcnRpYWwgPSBlbnYuVk0ucmVzb2x2ZVBhcnRpYWwuY2FsbCh0aGlzLCBwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKTtcbiAgICBsZXQgcmVzdWx0ID0gZW52LlZNLmludm9rZVBhcnRpYWwuY2FsbCh0aGlzLCBwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKTtcblxuICAgIGlmIChyZXN1bHQgPT0gbnVsbCAmJiBlbnYuY29tcGlsZSkge1xuICAgICAgb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdID0gZW52LmNvbXBpbGUocGFydGlhbCwgdGVtcGxhdGVTcGVjLmNvbXBpbGVyT3B0aW9ucywgZW52KTtcbiAgICAgIHJlc3VsdCA9IG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXShjb250ZXh0LCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5pbmRlbnQpIHtcbiAgICAgICAgbGV0IGxpbmVzID0gcmVzdWx0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBpZiAoIWxpbmVzW2ldICYmIGkgKyAxID09PSBsKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lc1tpXSA9IG9wdGlvbnMuaW5kZW50ICsgbGluZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdUaGUgcGFydGlhbCAnICsgb3B0aW9ucy5uYW1lICsgJyBjb3VsZCBub3QgYmUgY29tcGlsZWQgd2hlbiBydW5uaW5nIGluIHJ1bnRpbWUtb25seSBtb2RlJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gSnVzdCBhZGQgd2F0ZXJcbiAgbGV0IGNvbnRhaW5lciA9IHtcbiAgICBzdHJpY3Q6IGZ1bmN0aW9uKG9iaiwgbmFtZSkge1xuICAgICAgaWYgKCEobmFtZSBpbiBvYmopKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1wiJyArIG5hbWUgKyAnXCIgbm90IGRlZmluZWQgaW4gJyArIG9iaik7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqW25hbWVdO1xuICAgIH0sXG4gICAgbG9va3VwOiBmdW5jdGlvbihkZXB0aHMsIG5hbWUpIHtcbiAgICAgIGNvbnN0IGxlbiA9IGRlcHRocy5sZW5ndGg7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGlmIChkZXB0aHNbaV0gJiYgZGVwdGhzW2ldW25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZGVwdGhzW2ldW25hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBsYW1iZGE6IGZ1bmN0aW9uKGN1cnJlbnQsIGNvbnRleHQpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgY3VycmVudCA9PT0gJ2Z1bmN0aW9uJyA/IGN1cnJlbnQuY2FsbChjb250ZXh0KSA6IGN1cnJlbnQ7XG4gICAgfSxcblxuICAgIGVzY2FwZUV4cHJlc3Npb246IFV0aWxzLmVzY2FwZUV4cHJlc3Npb24sXG4gICAgaW52b2tlUGFydGlhbDogaW52b2tlUGFydGlhbFdyYXBwZXIsXG5cbiAgICBmbjogZnVuY3Rpb24oaSkge1xuICAgICAgbGV0IHJldCA9IHRlbXBsYXRlU3BlY1tpXTtcbiAgICAgIHJldC5kZWNvcmF0b3IgPSB0ZW1wbGF0ZVNwZWNbaSArICdfZCddO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuXG4gICAgcHJvZ3JhbXM6IFtdLFxuICAgIHByb2dyYW06IGZ1bmN0aW9uKGksIGRhdGEsIGRlY2xhcmVkQmxvY2tQYXJhbXMsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICAgIGxldCBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0sXG4gICAgICAgICAgZm4gPSB0aGlzLmZuKGkpO1xuICAgICAgaWYgKGRhdGEgfHwgZGVwdGhzIHx8IGJsb2NrUGFyYW1zIHx8IGRlY2xhcmVkQmxvY2tQYXJhbXMpIHtcbiAgICAgICAgcHJvZ3JhbVdyYXBwZXIgPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbiwgZGF0YSwgZGVjbGFyZWRCbG9ja1BhcmFtcywgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9ncmFtV3JhcHBlcikge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0gPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvZ3JhbVdyYXBwZXI7XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uKHZhbHVlLCBkZXB0aCkge1xuICAgICAgd2hpbGUgKHZhbHVlICYmIGRlcHRoLS0pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5fcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgbWVyZ2U6IGZ1bmN0aW9uKHBhcmFtLCBjb21tb24pIHtcbiAgICAgIGxldCBvYmogPSBwYXJhbSB8fCBjb21tb247XG5cbiAgICAgIGlmIChwYXJhbSAmJiBjb21tb24gJiYgKHBhcmFtICE9PSBjb21tb24pKSB7XG4gICAgICAgIG9iaiA9IFV0aWxzLmV4dGVuZCh7fSwgY29tbW9uLCBwYXJhbSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICAvLyBBbiBlbXB0eSBvYmplY3QgdG8gdXNlIGFzIHJlcGxhY2VtZW50IGZvciBudWxsLWNvbnRleHRzXG4gICAgbnVsbENvbnRleHQ6IE9iamVjdC5zZWFsKHt9KSxcblxuICAgIG5vb3A6IGVudi5WTS5ub29wLFxuICAgIGNvbXBpbGVySW5mbzogdGVtcGxhdGVTcGVjLmNvbXBpbGVyXG4gIH07XG5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgcmV0Ll9zZXR1cChvcHRpb25zKTtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCAmJiB0ZW1wbGF0ZVNwZWMudXNlRGF0YSkge1xuICAgICAgZGF0YSA9IGluaXREYXRhKGNvbnRleHQsIGRhdGEpO1xuICAgIH1cbiAgICBsZXQgZGVwdGhzLFxuICAgICAgICBibG9ja1BhcmFtcyA9IHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyA/IFtdIDogdW5kZWZpbmVkO1xuICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlRGVwdGhzKSB7XG4gICAgICBpZiAob3B0aW9ucy5kZXB0aHMpIHtcbiAgICAgICAgZGVwdGhzID0gY29udGV4dCAhPSBvcHRpb25zLmRlcHRoc1swXSA/IFtjb250ZXh0XS5jb25jYXQob3B0aW9ucy5kZXB0aHMpIDogb3B0aW9ucy5kZXB0aHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZXB0aHMgPSBbY29udGV4dF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFpbihjb250ZXh0LyosIG9wdGlvbnMqLykge1xuICAgICAgcmV0dXJuICcnICsgdGVtcGxhdGVTcGVjLm1haW4oY29udGFpbmVyLCBjb250ZXh0LCBjb250YWluZXIuaGVscGVycywgY29udGFpbmVyLnBhcnRpYWxzLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKTtcbiAgICB9XG4gICAgbWFpbiA9IGV4ZWN1dGVEZWNvcmF0b3JzKHRlbXBsYXRlU3BlYy5tYWluLCBtYWluLCBjb250YWluZXIsIG9wdGlvbnMuZGVwdGhzIHx8IFtdLCBkYXRhLCBibG9ja1BhcmFtcyk7XG4gICAgcmV0dXJuIG1haW4oY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cbiAgcmV0LmlzVG9wID0gdHJ1ZTtcblxuICByZXQuX3NldHVwID0gZnVuY3Rpb24ob3B0aW9ucykge1xuICAgIGlmICghb3B0aW9ucy5wYXJ0aWFsKSB7XG4gICAgICBjb250YWluZXIuaGVscGVycyA9IGNvbnRhaW5lci5tZXJnZShvcHRpb25zLmhlbHBlcnMsIGVudi5oZWxwZXJzKTtcblxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsKSB7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGNvbnRhaW5lci5tZXJnZShvcHRpb25zLnBhcnRpYWxzLCBlbnYucGFydGlhbHMpO1xuICAgICAgfVxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsIHx8IHRlbXBsYXRlU3BlYy51c2VEZWNvcmF0b3JzKSB7XG4gICAgICAgIGNvbnRhaW5lci5kZWNvcmF0b3JzID0gY29udGFpbmVyLm1lcmdlKG9wdGlvbnMuZGVjb3JhdG9ycywgZW52LmRlY29yYXRvcnMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250YWluZXIuaGVscGVycyA9IG9wdGlvbnMuaGVscGVycztcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IG9wdGlvbnMucGFydGlhbHM7XG4gICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IG9wdGlvbnMuZGVjb3JhdG9ycztcbiAgICB9XG4gIH07XG5cbiAgcmV0Ll9jaGlsZCA9IGZ1bmN0aW9uKGksIGRhdGEsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZUJsb2NrUGFyYW1zICYmICFibG9ja1BhcmFtcykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIGJsb2NrIHBhcmFtcycpO1xuICAgIH1cbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocyAmJiAhZGVwdGhzKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdtdXN0IHBhc3MgcGFyZW50IGRlcHRocycpO1xuICAgIH1cblxuICAgIHJldHVybiB3cmFwUHJvZ3JhbShjb250YWluZXIsIGksIHRlbXBsYXRlU3BlY1tpXSwgZGF0YSwgMCwgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwUHJvZ3JhbShjb250YWluZXIsIGksIGZuLCBkYXRhLCBkZWNsYXJlZEJsb2NrUGFyYW1zLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gIGZ1bmN0aW9uIHByb2coY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGN1cnJlbnREZXB0aHMgPSBkZXB0aHM7XG4gICAgaWYgKGRlcHRocyAmJiBjb250ZXh0ICE9IGRlcHRoc1swXSAmJiAhKGNvbnRleHQgPT09IGNvbnRhaW5lci5udWxsQ29udGV4dCAmJiBkZXB0aHNbMF0gPT09IG51bGwpKSB7XG4gICAgICBjdXJyZW50RGVwdGhzID0gW2NvbnRleHRdLmNvbmNhdChkZXB0aHMpO1xuICAgIH1cblxuICAgIHJldHVybiBmbihjb250YWluZXIsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGNvbnRhaW5lci5oZWxwZXJzLCBjb250YWluZXIucGFydGlhbHMsXG4gICAgICAgIG9wdGlvbnMuZGF0YSB8fCBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtcyAmJiBbb3B0aW9ucy5ibG9ja1BhcmFtc10uY29uY2F0KGJsb2NrUGFyYW1zKSxcbiAgICAgICAgY3VycmVudERlcHRocyk7XG4gIH1cblxuICBwcm9nID0gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcyk7XG5cbiAgcHJvZy5wcm9ncmFtID0gaTtcbiAgcHJvZy5kZXB0aCA9IGRlcHRocyA/IGRlcHRocy5sZW5ndGggOiAwO1xuICBwcm9nLmJsb2NrUGFyYW1zID0gZGVjbGFyZWRCbG9ja1BhcmFtcyB8fCAwO1xuICByZXR1cm4gcHJvZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgaWYgKG9wdGlvbnMubmFtZSA9PT0gJ0BwYXJ0aWFsLWJsb2NrJykge1xuICAgICAgcGFydGlhbCA9IG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdO1xuICAgIH1cbiAgfSBlbHNlIGlmICghcGFydGlhbC5jYWxsICYmICFvcHRpb25zLm5hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZHluYW1pYyBwYXJ0aWFsIHRoYXQgcmV0dXJuZWQgYSBzdHJpbmdcbiAgICBvcHRpb25zLm5hbWUgPSBwYXJ0aWFsO1xuICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW3BhcnRpYWxdO1xuICB9XG4gIHJldHVybiBwYXJ0aWFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlUGFydGlhbChwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gIC8vIFVzZSB0aGUgY3VycmVudCBjbG9zdXJlIGNvbnRleHQgdG8gc2F2ZSB0aGUgcGFydGlhbC1ibG9jayBpZiB0aGlzIHBhcnRpYWxcbiAgY29uc3QgY3VycmVudFBhcnRpYWxCbG9jayA9IG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXTtcbiAgb3B0aW9ucy5wYXJ0aWFsID0gdHJ1ZTtcbiAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoID0gb3B0aW9ucy5pZHNbMF0gfHwgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoO1xuICB9XG5cbiAgbGV0IHBhcnRpYWxCbG9jaztcbiAgaWYgKG9wdGlvbnMuZm4gJiYgb3B0aW9ucy5mbiAhPT0gbm9vcCkge1xuICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgLy8gV3JhcHBlciBmdW5jdGlvbiB0byBnZXQgYWNjZXNzIHRvIGN1cnJlbnRQYXJ0aWFsQmxvY2sgZnJvbSB0aGUgY2xvc3VyZVxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG4gICAgcGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBmdW5jdGlvbiBwYXJ0aWFsQmxvY2tXcmFwcGVyKGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuXG4gICAgICAvLyBSZXN0b3JlIHRoZSBwYXJ0aWFsLWJsb2NrIGZyb20gdGhlIGNsb3N1cmUgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhlIGJsb2NrXG4gICAgICAvLyBpLmUuIHRoZSBwYXJ0IGluc2lkZSB0aGUgYmxvY2sgb2YgdGhlIHBhcnRpYWwgY2FsbC5cbiAgICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgICBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXSA9IGN1cnJlbnRQYXJ0aWFsQmxvY2s7XG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBpZiAoZm4ucGFydGlhbHMpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHMgPSBVdGlscy5leHRlbmQoe30sIG9wdGlvbnMucGFydGlhbHMsIGZuLnBhcnRpYWxzKTtcbiAgICB9XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkICYmIHBhcnRpYWxCbG9jaykge1xuICAgIHBhcnRpYWwgPSBwYXJ0aWFsQmxvY2s7XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVGhlIHBhcnRpYWwgJyArIG9wdGlvbnMubmFtZSArICcgY291bGQgbm90IGJlIGZvdW5kJyk7XG4gIH0gZWxzZSBpZiAocGFydGlhbCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgcmV0dXJuIHBhcnRpYWwoY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vb3AoKSB7IHJldHVybiAnJzsgfVxuXG5mdW5jdGlvbiBpbml0RGF0YShjb250ZXh0LCBkYXRhKSB7XG4gIGlmICghZGF0YSB8fCAhKCdyb290JyBpbiBkYXRhKSkge1xuICAgIGRhdGEgPSBkYXRhID8gY3JlYXRlRnJhbWUoZGF0YSkgOiB7fTtcbiAgICBkYXRhLnJvb3QgPSBjb250ZXh0O1xuICB9XG4gIHJldHVybiBkYXRhO1xufVxuXG5mdW5jdGlvbiBleGVjdXRlRGVjb3JhdG9ycyhmbiwgcHJvZywgY29udGFpbmVyLCBkZXB0aHMsIGRhdGEsIGJsb2NrUGFyYW1zKSB7XG4gIGlmIChmbi5kZWNvcmF0b3IpIHtcbiAgICBsZXQgcHJvcHMgPSB7fTtcbiAgICBwcm9nID0gZm4uZGVjb3JhdG9yKHByb2csIHByb3BzLCBjb250YWluZXIsIGRlcHRocyAmJiBkZXB0aHNbMF0sIGRhdGEsIGJsb2NrUGFyYW1zLCBkZXB0aHMpO1xuICAgIFV0aWxzLmV4dGVuZChwcm9nLCBwcm9wcyk7XG4gIH1cbiAgcmV0dXJuIHByb2c7XG59XG4iXX0=\n","/* global window */\n'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n var root = typeof global !== 'undefined' ? global : window,\n $Handlebars = root.Handlebars;\n /* istanbul ignore next */\n Handlebars.noConflict = function () {\n if (root.Handlebars === Handlebars) {\n root.Handlebars = $Handlebars;\n }\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O3FCQUNlLFVBQVMsVUFBVSxFQUFFOztBQUVsQyxNQUFJLElBQUksR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLEdBQUcsTUFBTSxHQUFHLE1BQU07TUFDdEQsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7O0FBRWxDLFlBQVUsQ0FBQyxVQUFVLEdBQUcsWUFBVztBQUNqQyxRQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO0FBQ2xDLFVBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO0tBQy9CO0FBQ0QsV0FBTyxVQUFVLENBQUM7R0FDbkIsQ0FBQztDQUNIIiwiZmlsZSI6Im5vLWNvbmZsaWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIHdpbmRvdyAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oSGFuZGxlYmFycykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBsZXQgcm9vdCA9IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93LFxuICAgICAgJEhhbmRsZWJhcnMgPSByb290LkhhbmRsZWJhcnM7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIEhhbmRsZWJhcnMubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgIGlmIChyb290LkhhbmRsZWJhcnMgPT09IEhhbmRsZWJhcnMpIHtcbiAgICAgIHJvb3QuSGFuZGxlYmFycyA9ICRIYW5kbGViYXJzO1xuICAgIH1cbiAgICByZXR1cm4gSGFuZGxlYmFycztcbiAgfTtcbn1cbiJdfQ==\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.FileMimeTypePlugin = {\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\FileMimeType',\n\t\t\t\t'name': t('workflowengine', 'File MIME type'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not')},\n\t\t\t\t\t{'operator': 'matches', 'name': t('workflowengine', 'matches')},\n\t\t\t\t\t{'operator': '!matches', 'name': t('workflowengine', 'does not match')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\FileMimeType') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = 'text/plain';\n\t\t\tif (check['operator'] === 'matches' || check['operator'] === '!matches') {\n\t\t\t\tplaceholder = '/^text\\\\/(plain|html)$/i';\n\n\t\t\t\tif (this._validateRegex(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\t\t},\n\n\t\t_validateRegex: function(string) {\n\t\t\tvar regexRegex = /^\\/(.*)\\/([gui]{0,3})$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.FileMimeTypePlugin);\n","/**\n * @copyright Copyright (c) 2018 Daniel Kesselberg <mail@danielkesselberg.de>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function () {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.FileNamePlugin = {\n\t\tgetCheck: function () {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\FileName',\n\t\t\t\t'name': t('workflowengine', 'File name'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not')},\n\t\t\t\t\t{\n\t\t\t\t\t\t'operator': 'matches',\n\t\t\t\t\t\t'name': t('workflowengine', 'matches')\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'operator': '!matches',\n\t\t\t\t\t\t'name': t('workflowengine', 'does not match')\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function (element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\FileName') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = 'dummy.jpg';\n\t\t\tif (check['operator'] === 'matches' || check['operator'] === '!matches') {\n\t\t\t\tplaceholder = '/^dummy-.+$/i';\n\n\t\t\t\tif (this._validateRegex(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\t\t},\n\n\t\t_validateRegex: function (string) {\n\t\t\tvar regexRegex = /^\\/(.*)\\/([gui]{0,3})$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.FileNamePlugin);","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.FileSizePlugin = {\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSize',\n\t\t\t\t'name': t('workflowengine', 'File size (upload)'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'less', 'name': t('workflowengine', 'less')},\n\t\t\t\t\t{'operator': '!greater', 'name': t('workflowengine', 'less or equals')},\n\t\t\t\t\t{'operator': '!less', 'name': t('workflowengine', 'greater or equals')},\n\t\t\t\t\t{'operator': 'greater', 'name': t('workflowengine', 'greater')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSize') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = '12 MB'; // Do not translate!!!\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.FileSizePlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.FileSystemTagsPlugin = {\n\t\tgetCheck: function() {\n\t\t\tthis.collection = OC.SystemTags.collection;\n\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSystemTags',\n\t\t\t\t'name': t('workflowengine', 'File system tag'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is tagged with')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not tagged with')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSystemTags') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$(element).css('width', '400px');\n\n\t\t\t$(element).select2({\n\t\t\t\tallowClear: false,\n\t\t\t\tmultiple: false,\n\t\t\t\tplaceholder: t('workflowengine', 'Select tag…'),\n\t\t\t\tquery: _.debounce(function(query) {\n\t\t\t\t\tquery.callback({\n\t\t\t\t\t\tresults: OC.SystemTags.collection.filterByName(query.term)\n\t\t\t\t\t});\n\t\t\t\t}, 100, true),\n\t\t\t\tid: function(element) {\n\t\t\t\t\treturn element.get('id');\n\t\t\t\t},\n\t\t\t\tinitSelection: function(element, callback) {\n\t\t\t\t\tcallback($(element).val());\n\t\t\t\t},\n\t\t\t\tformatResult: function (tag) {\n\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag);\n\t\t\t\t},\n\t\t\t\tformatSelection: function (tagId) {\n\t\t\t\t\tvar tag = OC.SystemTags.collection.get(tagId);\n\t\t\t\t\tif (!_.isUndefined(tag)) {\n\t\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\treturn m;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.FileSystemTagsPlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.RequestRemoteAddressPlugin = {\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestRemoteAddress',\n\t\t\t\t'name': t('workflowengine', 'Request remote address'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'matchesIPv4', 'name': t('workflowengine', 'matches IPv4')},\n\t\t\t\t\t{'operator': '!matchesIPv4', 'name': t('workflowengine', 'does not match IPv4')},\n\t\t\t\t\t{'operator': 'matchesIPv6', 'name': t('workflowengine', 'matches IPv6')},\n\t\t\t\t\t{'operator': '!matchesIPv6', 'name': t('workflowengine', 'does not match IPv6')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestRemoteAddress') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = '127.0.0.1/32'; // Do not translate!!!\n\t\t\tif (check['operator'] === 'matchesIPv6' || check['operator'] === '!matchesIPv6') {\n\t\t\t\tplaceholder = '::1/128'; // Do not translate!!!\n\t\t\t\tif (this._validateIPv6(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this._validateIPv4(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$(element).css('width', '300px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\t\t},\n\n\t\t_validateIPv4: function(string) {\n\t\t\tvar regexRegex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\/(3[0-2]|[1-2][0-9]|[1-9])$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t},\n\n\t\t_validateIPv6: function(string) {\n\t\t\tvar regexRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(1([01][0-9]|2[0-8])|[1-9][0-9]|[0-9])$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.RequestRemoteAddressPlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.RequestTimePlugin = {\n\t\ttimezones: [\n\t\t\t\"Europe/Berlin\",\n\t\t\t\"Europe/London\"\n\t\t],\n\t\t_$element: null,\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestTime',\n\t\t\t\t'name': t('workflowengine', 'Request time'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'in', 'name': t('workflowengine', 'between')},\n\t\t\t\t\t{'operator': '!in', 'name': t('workflowengine', 'not between')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestTime') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar startTime = '09:00',\n\t\t\t\tendTime = '18:00',\n\t\t\t\ttimezone = jstz.determine().name(),\n\t\t\t\t$element = $(element);\n\n\t\t\tif (_.isString(check['value']) && check['value'] !== '') {\n\t\t\t\tvar value = JSON.parse(check['value']),\n\t\t\t\t\tsplittedStart = value[0].split(' ', 2),\n\t\t\t\t\tsplittedEnd = value[1].split(' ', 2);\n\n\t\t\t\tstartTime = splittedStart[0];\n\t\t\t\tendTime = splittedEnd[0];\n\t\t\t\ttimezone = splittedStart[1];\n\t\t\t}\n\n\t\t\tvar valueJSON = JSON.stringify([startTime + ' ' + timezone, endTime + ' ' + timezone]);\n\t\t\tif (check['value'] !== valueJSON) {\n\t\t\t\tcheck['value'] = valueJSON;\n\t\t\t\t$element.val(valueJSON);\n\t\t\t}\n\n\t\t\t$element.css('display', 'none');\n\n\t\t\t$('<input>')\n\t\t\t\t.attr('type', 'text')\n\t\t\t\t.attr('placeholder', t('workflowengine', 'Start'))\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: '16:00'}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t})\n\t\t\t\t.addClass('start')\n\t\t\t\t.val(startTime)\n\t\t\t\t.insertBefore($element);\n\t\t\t$('<input>')\n\t\t\t\t.attr('type', 'text')\n\t\t\t\t.attr('placeholder', t('workflowengine', 'End'))\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: '16:00'}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t})\n\t\t\t\t.addClass('end')\n\t\t\t\t.val(endTime)\n\t\t\t\t.insertBefore($element);\n\n\t\t\tvar timezoneInput = $('<input>')\n\t\t\t\t.attr('type', 'hidden')\n\t\t\t\t.css('width', '250px')\n\t\t\t\t.insertBefore($element)\n\t\t\t\t.val(timezone);\n\n\t\t\ttimezoneInput.select2({\n\t\t\t\tallowClear: false,\n\t\t\t\tmultiple: false,\n\t\t\t\tplaceholder: t('workflowengine', 'Select timezone…'),\n\t\t\t\tajax: {\n\t\t\t\t\turl: OC.generateUrl('apps/workflowengine/timezones'),\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tquietMillis: 100,\n\t\t\t\t\tdata: function (term) {\n\t\t\t\t\t\tif (term === '') {\n\t\t\t\t\t\t\t// Default search in the same continent...\n\t\t\t\t\t\t\tterm = jstz.determine().name().split('/');\n\t\t\t\t\t\t\tterm = term[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tsearch: term\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tresults: function (response) {\n\t\t\t\t\t\tvar results = [];\n\t\t\t\t\t\t$.each(response, function(timezone) {\n\t\t\t\t\t\t\tresults.push({ id: timezone });\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tresults: results,\n\t\t\t\t\t\t\tmore: false\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tinitSelection: function (element, callback) {\n\t\t\t\t\tcallback(element.val());\n\t\t\t\t},\n\t\t\t\tformatResult: function (element) {\n\t\t\t\t\treturn '<span>' + element.id + '</span>';\n\t\t\t\t},\n\t\t\t\tformatSelection: function (element) {\n\t\t\t\t\tif (!_.isUndefined(element.id)) {\n\t\t\t\t\t\telement = element.id;\n\t\t\t\t\t}\n\t\t\t\t\treturn '<span>' + element + '</span>';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Has to be added after select2 for `event.target.classList`\n\t\t\ttimezoneInput.addClass('timezone');\n\n\t\t\t$element.parent()\n\t\t\t\t.on('change', '.start', _.bind(this.update, this))\n\t\t\t\t.on('change', '.end', _.bind(this.update, this))\n\t\t\t\t.on('change', '.timezone', _.bind(this.update, this));\n\n\t\t\tthis._$element = $element;\n\t\t},\n\t\tupdate: function(event) {\n\t\t\tvar value = event.target.value,\n\t\t\t\tkey = null;\n\n\t\t\tfor (var i = 0; i < event.target.classList.length; i++) {\n\t\t\t\tkey = event.target.classList[i];\n\t\t\t}\n\n\t\t\tif (key === null) {\n\t\t\t\tconsole.warn('update triggered but element doesn\\'t have any class');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar data = JSON.parse(this._$element.val()),\n\t\t\t\tstartTime = moment(data[0].split(' ', 2)[0], 'H:m Z'),\n\t\t\t\tendTime = moment(data[1].split(' ', 2)[0], 'H:m Z'),\n\t\t\t\ttimezone = data[0].split(' ', 2)[1];\n\n\t\t\tif (key === 'start' || key === 'end') {\n\t\t\t\tvar parsedDate = moment(value, ['H:m', 'h:m a'], true).format('HH:mm');\n\n\t\t\t\tif (parsedDate === 'Invalid date') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar indexValue = 0;\n\t\t\t\tif (key === 'end') {\n\t\t\t\t\tindexValue = 1;\n\t\t\t\t}\n\t\t\t\tdata[indexValue] = parsedDate + ' ' + timezone;\n\t\t\t}\n\n\t\t\tif (key === 'timezone') {\n\t\t\t\tdata[0] = startTime.format('HH:mm') + ' ' + value;\n\t\t\t\tdata[1] = endTime.format('HH:mm') + ' ' + value;\n\t\t\t}\n\n\t\t\tthis._$element.val(JSON.stringify(data));\n\t\t\tthis._$element.trigger('change');\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.RequestTimePlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.RequestURLPlugin = {\n\t\tpredefinedValues: ['webdav'],\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestURL',\n\t\t\t\t'name': t('workflowengine', 'Request URL'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not')},\n\t\t\t\t\t{'operator': 'matches', 'name': t('workflowengine', 'matches')},\n\t\t\t\t\t{'operator': '!matches', 'name': t('workflowengine', 'does not match')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestURL') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = 'https://localhost/index.php';\n\n\t\t\tif (check['operator'] === 'matches' || check['operator'] === '!matches') {\n\t\t\t\tplaceholder = '/^https\\\\:\\\\/\\\\/localhost\\\\/index\\\\.php$/i';\n\t\t\t}\n\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\n\t\t\tif (check['operator'] === 'matches' || check['operator'] === '!matches') {\n\t\t\t\tif (this._validateRegex(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar self = this,\n\t\t\t\t\tdata = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: t('workflowengine', 'Predefined URLs'),\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{id: 'webdav', text: t('workflowengine', 'Files WebDAV')}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t];\n\t\t\t\tif (this.predefinedValues.indexOf(check['value']) === -1) {\n\t\t\t\t\tdata.unshift({\n\t\t\t\t\t\tid: check['value'],\n\t\t\t\t\t\ttext: check['value']\n\t\t\t\t\t})\n\t\t\t\t}\n\n\n\t\t\t\t$(element).select2({\n\t\t\t\t\tdata: data,\n\t\t\t\t\tcreateSearchChoice: function(term) {\n\t\t\t\t\t\tif (self.predefinedValues.indexOf(check['value']) === -1) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tid: term,\n\t\t\t\t\t\t\t\ttext: term\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tid: function(element) {\n\t\t\t\t\t\treturn element.id;\n\t\t\t\t\t},\n\t\t\t\t\tformatResult: function (tag) {\n\t\t\t\t\t\treturn tag.text;\n\t\t\t\t\t},\n\t\t\t\t\tformatSelection: function (tag) {\n\t\t\t\t\t\treturn tag.text;\n\t\t\t\t\t},\n\t\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\t\treturn m;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t_validateRegex: function(string) {\n\t\t\tvar regexRegex = /^\\/(.*)\\/([gui]{0,3})$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.RequestURLPlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.RequestUserAgentPlugin = {\n\t\tpredefinedValues: ['android', 'ios', 'desktop'],\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestUserAgent',\n\t\t\t\t'name': t('workflowengine', 'Request user agent'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not')},\n\t\t\t\t\t{'operator': 'matches', 'name': t('workflowengine', 'matches')},\n\t\t\t\t\t{'operator': '!matches', 'name': t('workflowengine', 'does not match')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestUserAgent') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = 'Mozilla/5.0 User Agent';\n\n\t\t\tif (check.operator === 'matches' || check.operator === '!matches') {\n\t\t\t\tplaceholder = '/^Mozilla\\\\/5\\\\.0 (.*)$/i';\n\t\t\t}\n\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\n\t\t\tif (check.operator === 'matches' || check.operator === '!matches') {\n\t\t\t\tif (this._validateRegex(check.value)) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar self = this,\n\t\t\t\t\tdata = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: t('workflowengine', 'Sync clients'),\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{id: 'android', text: t('workflowengine', 'Android client')},\n\t\t\t\t\t\t\t{id: 'ios', text: t('workflowengine', 'iOS client')},\n\t\t\t\t\t\t\t{id: 'desktop', text: t('workflowengine', 'Desktop client')},\n\t\t\t\t\t\t\t{id: 'mail', text: t('workflowengine', 'Thunderbird & Outlook addons')}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t];\n\t\t\t\tif (this.predefinedValues.indexOf(check.value) === -1) {\n\t\t\t\t\tdata.unshift({\n\t\t\t\t\t\tid: check.value,\n\t\t\t\t\t\ttext: check.value\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t$(element).select2({\n\t\t\t\t\tdata: data,\n\t\t\t\t\tcreateSearchChoice: function(term) {\n\t\t\t\t\t\tif (self.predefinedValues.indexOf(check.value) === -1) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tid: term,\n\t\t\t\t\t\t\t\ttext: term\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tid: function(element) {\n\t\t\t\t\t\treturn element.id;\n\t\t\t\t\t},\n\t\t\t\t\tformatResult: function (tag) {\n\t\t\t\t\t\treturn tag.text;\n\t\t\t\t\t},\n\t\t\t\t\tformatSelection: function (tag) {\n\t\t\t\t\t\treturn tag.text;\n\t\t\t\t\t},\n\t\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\t\treturn m;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t_validateRegex: function(string) {\n\t\t\tvar regexRegex = /^\\/(.*)\\/([gui]{0,3})$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.RequestUserAgentPlugin);\n","/**\n * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.UserGroupMembershipPlugin = {\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\UserGroupMembership',\n\t\t\t\t'name': t('workflowengine', 'User group membership'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is member of')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not member of')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check, groups) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\UserGroupMembership') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$(element).css('width', '400px');\n\n\t\t\t$(element).select2({\n\t\t\t\tdata: { results: groups, text: 'displayname' },\n\t\t\t\tinitSelection: function (element, callback) {\n\t\t\t\t\tvar groupId = element.val();\n\t\t\t\t\tif (groupId && groups.length > 0) {\n\t\t\t\t\t\tcallback({\n\t\t\t\t\t\t\tid: groupId,\n\t\t\t\t\t\t\tdisplayname: groups.find(function (group) {\n\t\t\t\t\t\t\t\treturn group.id === groupId;\n\t\t\t\t\t\t\t}).displayname\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (groupId) {\n\t\t\t\t\t\tcallback({\n\t\t\t\t\t\t\tid: groupId,\n\t\t\t\t\t\t\tdisplayname: groupId\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tformatResult: function (element) {\n\t\t\t\t\treturn '<span>' + escapeHTML(element.displayname) + '</span>';\n\t\t\t\t},\n\t\t\t\tformatSelection: function (element) {\n\t\t\t\t\treturn '<span title=\"'+escapeHTML(element.id)+'\">'+escapeHTML(element.displayname)+'</span>';\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.UserGroupMembershipPlugin);\n","/**\n * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport OperationTemplate from './templates/operation.handlebars';\nimport OperationsTemplate from './templates/operations.handlebars';\n\n(function() {\n\tOCA.WorkflowEngine = _.extend(OCA.WorkflowEngine || {}, {\n\t\tavailablePlugins: [],\n\t\tavailableChecks: [],\n\n\t\tgetCheckByClass: function(className) {\n\t\t\tvar length = OCA.WorkflowEngine.availableChecks.length;\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tif (OCA.WorkflowEngine.availableChecks[i]['class'] === className) {\n\t\t\t\t\treturn OCA.WorkflowEngine.availableChecks[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\t});\n\n\t/**\n\t * 888b d888 888 888\n\t * 8888b d8888 888 888\n\t * 88888b.d88888 888 888\n\t * 888Y88888P888 .d88b. .d88888 .d88b. 888 .d8888b\n\t * 888 Y888P 888 d88\"\"88b d88\" 888 d8P Y8b 888 88K\n\t * 888 Y8P 888 888 888 888 888 88888888 888 \"Y8888b.\n\t * 888 \" 888 Y88..88P Y88b 888 Y8b. 888 X88\n\t * 888 888 \"Y88P\" \"Y88888 \"Y8888 888 88888P'\n\t */\n\n\t/**\n\t * @class OCA.WorkflowEngine.Operation\n\t */\n\tOCA.WorkflowEngine.Operation =\n\t\tOC.Backbone.Model.extend({\n\t\t\tdefaults: {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Operation',\n\t\t\t\t'name': '',\n\t\t\t\t'checks': [],\n\t\t\t\t'operation': ''\n\t\t\t}\n\t\t});\n\n\t/**\n\t * .d8888b. 888 888 888 d8b\n\t * d88P Y88b 888 888 888 Y8P\n\t * 888 888 888 888 888\n\t * 888 .d88b. 888 888 .d88b. .d8888b 888888 888 .d88b. 88888b. .d8888b\n\t * 888 d88\"\"88b 888 888 d8P Y8b d88P\" 888 888 d88\"\"88b 888 \"88b 88K\n\t * 888 888 888 888 888 888 88888888 888 888 888 888 888 888 888 \"Y8888b.\n\t * Y88b d88P Y88..88P 888 888 Y8b. Y88b. Y88b. 888 Y88..88P 888 888 X88\n\t * \"Y8888P\" \"Y88P\" 888 888 \"Y8888 \"Y8888P \"Y888 888 \"Y88P\" 888 888 88888P'\n\t */\n\n\t/**\n\t * @class OCA.WorkflowEngine.OperationsCollection\n\t *\n\t * collection for all configurated operations\n\t */\n\tOCA.WorkflowEngine.OperationsCollection =\n\t\tOC.Backbone.Collection.extend({\n\t\t\tmodel: OCA.WorkflowEngine.Operation,\n\t\t\turl: OC.generateUrl('apps/workflowengine/operations')\n\t\t});\n\n\t/**\n\t * 888 888 d8b\n\t * 888 888 Y8P\n\t * 888 888\n\t * Y88b d88P 888 .d88b. 888 888 888 .d8888b\n\t * Y88b d88P 888 d8P Y8b 888 888 888 88K\n\t * Y88o88P 888 88888888 888 888 888 \"Y8888b.\n\t * Y888P 888 Y8b. Y88b 888 d88P X88\n\t * Y8P 888 \"Y8888 \"Y8888888P\" 88888P'\n\t */\n\n\t/**\n\t * @class OCA.WorkflowEngine.OperationView\n\t *\n\t * this creates the view for a single operation\n\t */\n\tOCA.WorkflowEngine.OperationView =\n\t\tOC.Backbone.View.extend({\n\t\t\ttemplateId: '#operation-template',\n\t\t\tevents: {\n\t\t\t\t'change .check-class': 'checkChanged',\n\t\t\t\t'change .check-operator': 'checkChanged',\n\t\t\t\t'change .check-value': 'checkChanged',\n\t\t\t\t'change .operation-name': 'operationChanged',\n\t\t\t\t'change .operation-operation': 'operationChanged',\n\t\t\t\t'click .button-reset': 'reset',\n\t\t\t\t'click .button-save': 'save',\n\t\t\t\t'click .button-add': 'add',\n\t\t\t\t'click .button-delete': 'delete',\n\t\t\t\t'click .button-delete-check': 'deleteCheck'\n\t\t\t},\n\t\t\toriginalModel: null,\n\t\t\thasChanged: false,\n\t\t\tmessage: '',\n\t\t\terrorMessage: '',\n\t\t\tsaving: false,\n\t\t\tgroups: [],\n\t\t\ttemplate: function(vars) {\n\t\t\t\treturn OperationTemplate(_.extend(\n\t\t\t\t\t{\n\t\t\t\t\t\tshortRuleDescTXT: t('workflowengine', 'Short rule description'),\n\t\t\t\t\t\taddRuleTXT: t('workflowengine', 'Add rule'),\n\t\t\t\t\t\tresetTXT: t('workflowengine', 'Reset'),\n\t\t\t\t\t\tsaveTXT: t('workflowengine', 'Save'),\n\t\t\t\t\t\tsavingTXT: t('workflowengine', 'Saving…')\n\t\t\t\t\t},\n\t\t\t\t\tvars\n\t\t\t\t));\n\t\t\t},\n\t\t\tinitialize: function() {\n\t\t\t\t// this creates a new copy of the object to definitely have a new reference and being able to reset the model\n\t\t\t\tthis.originalModel = JSON.parse(JSON.stringify(this.model));\n\t\t\t\tthis.model.on('change', function() {\n\t\t\t\t\tconsole.log('model changed');\n\t\t\t\t\tthis.hasChanged = true;\n\t\t\t\t\tthis.render();\n\t\t\t\t}, this);\n\n\t\t\t\tif (this.model.get('id') === undefined) {\n\t\t\t\t\tthis.hasChanged = true;\n\t\t\t\t}\n\t\t\t\tvar self = this;\n\t\t\t\t$.ajax({\n\t\t\t\t\turl: OC.linkToOCS('cloud/groups', 2) + 'details',\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tquietMillis: 100,\n\t\t\t\t}).success(function(data) {\n\t\t\t\t\tif (data.ocs.data.groups && data.ocs.data.groups.length > 0) {\n\n\t\t\t\t\t\tdata.ocs.data.groups.forEach(function(group) {\n\t\t\t\t\t\t\tself.groups.push({ id: group.id, displayname: group.displayname });\n\t\t\t\t\t\t});\n\t\t\t\t\t\tself.render();\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tOC.Notification.error(t('workflowengine', 'Group list is empty'), { type: 'error' });\n\t\t\t\t\t\tconsole.log(data);\n\t\t\t\t\t}\n\t\t\t\t}).error(function(data) {\n\t\t\t\t\tOC.Notification.error(t('workflowengine', 'Unable to retrieve the group list'), { type: 'error' });\n\t\t\t\t\tconsole.log(data);\n\t\t\t\t});\n\t\t\t},\n\t\t\tdelete: function() {\n\t\t\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.delete, this));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.model.destroy();\n\t\t\t\tthis.remove();\n\t\t\t},\n\t\t\treset: function() {\n\t\t\t\tthis.hasChanged = false;\n\t\t\t\t// silent is need to not trigger the change event which resets the hasChanged attribute\n\t\t\t\tthis.model.set(this.originalModel, { silent: true });\n\t\t\t\tthis.render();\n\t\t\t},\n\t\t\tsave: function() {\n\t\t\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.save, this));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar success = function(model, response, options) {\n\t\t\t\t\tthis.saving = false;\n\t\t\t\t\tthis.originalModel = JSON.parse(JSON.stringify(this.model));\n\n\t\t\t\t\tthis.message = t('workflowengine', 'Saved');\n\t\t\t\t\tthis.errorMessage = '';\n\t\t\t\t\tthis.render();\n\t\t\t\t};\n\t\t\t\tvar error = function(model, response, options) {\n\t\t\t\t\tthis.saving = false;\n\t\t\t\t\tthis.hasChanged = true;\n\n\t\t\t\t\tthis.message = t('workflowengine', 'Saving failed:');\n\t\t\t\t\tthis.errorMessage = response.responseText;\n\t\t\t\t\tthis.render();\n\t\t\t\t};\n\t\t\t\tthis.hasChanged = false;\n\t\t\t\tthis.saving = true;\n\t\t\t\tthis.render();\n\t\t\t\tthis.model.save(null, { success: success, error: error, context: this });\n\t\t\t},\n\t\t\tadd: function() {\n\t\t\t\tvar checks = _.clone(this.model.get('checks')),\n\t\t\t\t\tclassname = OCA.WorkflowEngine.availableChecks[0]['class'],\n\t\t\t\t\toperators = OCA.WorkflowEngine.availableChecks[0]['operators'];\n\n\t\t\t\tchecks.push({\n\t\t\t\t\t'class': classname,\n\t\t\t\t\t'operator': operators[0]['operator'],\n\t\t\t\t\t'value': ''\n\t\t\t\t});\n\t\t\t\tthis.model.set({ 'checks': checks });\n\t\t\t},\n\t\t\tcheckChanged: function(event) {\n\t\t\t\tvar value = event.target.value,\n\t\t\t\t\tid = $(event.target.parentElement).data('id'),\n\t\t\t\t\t// this creates a new copy of the object to definitely have a new reference\n\t\t\t\t\tchecks = JSON.parse(JSON.stringify(this.model.get('checks'))),\n\t\t\t\t\tkey = null;\n\n\t\t\t\tfor (var i = 0; i < event.target.classList.length; i++) {\n\t\t\t\t\tvar className = event.target.classList[i];\n\t\t\t\t\tif (className.substr(0, 'check-'.length) === 'check-') {\n\t\t\t\t\t\tkey = className.substr('check-'.length);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (key === null) {\n\t\t\t\t\tconsole.warn('checkChanged triggered but element doesn\\'t have any \"check-\" class');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!_.has(checks[id], key)) {\n\t\t\t\t\tconsole.warn('key \"' + key + '\" is not available in check', check);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tchecks[id][key] = value;\n\t\t\t\t// if the class is changed most likely also the operators have changed\n\t\t\t\t// with this we set the operator to the first possible operator\n\t\t\t\tif (key === 'class') {\n\t\t\t\t\tvar check = OCA.WorkflowEngine.getCheckByClass(value);\n\t\t\t\t\tif (!_.isUndefined(check)) {\n\t\t\t\t\t\tchecks[id]['operator'] = check['operators'][0]['operator'];\n\t\t\t\t\t\tchecks[id]['value'] = '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// model change will trigger render\n\t\t\t\tthis.model.set({ 'checks': checks });\n\t\t\t},\n\t\t\tdeleteCheck: function(event) {\n\t\t\t\tconsole.log(arguments);\n\t\t\t\tvar id = $(event.target.parentElement).data('id'),\n\t\t\t\t\tchecks = JSON.parse(JSON.stringify(this.model.get('checks')));\n\n\t\t\t\t// splice removes 1 element at index `id`\n\t\t\t\tchecks.splice(id, 1);\n\t\t\t\t// model change will trigger render\n\t\t\t\tthis.model.set({ 'checks': checks });\n\t\t\t},\n\t\t\toperationChanged: function(event) {\n\t\t\t\tvar value = event.target.value,\n\t\t\t\t\tkey = null;\n\n\t\t\t\tfor (var i = 0; i < event.target.classList.length; i++) {\n\t\t\t\t\tvar className = event.target.classList[i];\n\t\t\t\t\tif (className.substr(0, 'operation-'.length) === 'operation-') {\n\t\t\t\t\t\tkey = className.substr('operation-'.length);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (key === null) {\n\t\t\t\t\tconsole.warn('operationChanged triggered but element doesn\\'t have any \"operation-\" class');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (key !== 'name' && key !== 'operation') {\n\t\t\t\t\tconsole.warn('key \"' + key + '\" is no valid attribute');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// model change will trigger render\n\t\t\t\tthis.model.set(key, value);\n\t\t\t},\n\t\t\trender: function() {\n\t\t\t\tthis.$el.html(this.template({\n\t\t\t\t\toperation: this.model.toJSON(),\n\t\t\t\t\tclasses: OCA.WorkflowEngine.availableChecks,\n\t\t\t\t\thasChanged: this.hasChanged,\n\t\t\t\t\tmessage: this.message,\n\t\t\t\t\terrorMessage: this.errorMessage,\n\t\t\t\t\tsaving: this.saving\n\t\t\t\t}));\n\n\t\t\t\tvar checks = this.model.get('checks');\n\t\t\t\t_.each(this.$el.find('.check'), function(element) {\n\t\t\t\t\tvar $element = $(element),\n\t\t\t\t\t\tid = $element.data('id'),\n\t\t\t\t\t\tcheck = checks[id],\n\t\t\t\t\t\tvalueElement = $element.find('.check-value').first();\n\t\t\t\t\tvar self = this;\n\n\t\t\t\t\t_.each(OCA.WorkflowEngine.availablePlugins, function(plugin) {\n\t\t\t\t\t\tif (_.isFunction(plugin.render)) {\n\t\t\t\t\t\t\tplugin.render(valueElement, check, self.groups);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}, this);\n\n\t\t\t\tif (this.message !== '') {\n\t\t\t\t\t// hide success messages after some time\n\t\t\t\t\t_.delay(function(elements) {\n\t\t\t\t\t\t$(elements).css('opacity', 0);\n\t\t\t\t\t}, 7000, this.$el.find('.msg.success'));\n\t\t\t\t\tthis.message = '';\n\t\t\t\t}\n\n\t\t\t\treturn this.$el;\n\t\t\t}\n\t\t});\n\n\t/**\n\t * @class OCA.WorkflowEngine.OperationsView\n\t *\n\t * this creates the view for configured operations\n\t */\n\tOCA.WorkflowEngine.OperationsView =\n\t\tOC.Backbone.View.extend({\n\t\t\ttemplateId: '#operations-template',\n\t\t\tcollection: null,\n\t\t\t$el: null,\n\t\t\tevents: {\n\t\t\t\t'click .button-add-operation': 'add'\n\t\t\t},\n\t\t\ttemplate: function(vars) {\n\t\t\t\treturn OperationsTemplate(_.extend(\n\t\t\t\t\t{\n\t\t\t\t\t\taddRuleGroupTXT: t('workflowengine', 'Add rule group')\n\t\t\t\t\t},\n\t\t\t\t\tvars\n\t\t\t\t));\n\t\t\t},\n\t\t\tinitialize: function(classname) {\n\t\t\t\tif (!OCA.WorkflowEngine.availablePlugins.length) {\n\t\t\t\t\tOCA.WorkflowEngine.availablePlugins = OC.Plugins.getPlugins('OCA.WorkflowEngine.CheckPlugins');\n\t\t\t\t\t_.each(OCA.WorkflowEngine.availablePlugins, function(plugin) {\n\t\t\t\t\t\tif (_.isFunction(plugin.getCheck)) {\n\t\t\t\t\t\t\tOCA.WorkflowEngine.availableChecks.push(plugin.getCheck(classname));\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.collection.fetch({\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t'class': classname\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tthis.collection.once('sync', this.render, this);\n\t\t\t},\n\t\t\tadd: function() {\n\t\t\t\tvar operation = this.collection.create();\n\t\t\t\tthis.renderOperation(operation);\n\t\t\t},\n\t\t\trenderOperation: function(subView) {\n\t\t\t\tvar operationsElement = this.$el.find('.operations');\n\t\t\t\toperationsElement.append(subView.$el);\n\t\t\t\tsubView.render();\n\t\t\t},\n\t\t\trender: function() {\n\t\t\t\tthis.$el.html(this.template());\n\t\t\t\tthis.collection.each(this.renderOperation, this);\n\t\t\t}\n\t\t});\n})();\n","import './admin'\nimport './filemimetypeplugin'\nimport './filenameplugin'\nimport './filesizeplugin'\nimport './filesystemtagsplugin'\nimport './requestremoteaddressplugin'\nimport './requesttimeplugin'\nimport './requesturlplugin'\nimport './requestuseragentplugin'\nimport './usergroupmembershipplugin'\n\nwindow.OCA.WorkflowEngine = OCA.WorkflowEngine\n"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack:///./node_modules/handlebars/runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/base.js","webpack:///./apps/workflowengine/src/hbs_helpers/selectItem.js","webpack:///./apps/workflowengine/src/templates/operation.handlebars","webpack:///./apps/workflowengine/src/templates/operations.handlebars","webpack:///./node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack:///(webpack)/buildin/global.js","webpack:///./apps/workflowengine/src/hbs_helpers/getOperators.js","webpack:///./apps/workflowengine/src/filemimetypeplugin.js","webpack:///./apps/workflowengine/src/filenameplugin.js","webpack:///./apps/workflowengine/src/filesizeplugin.js","webpack:///./apps/workflowengine/src/filesystemtagsplugin.js","webpack:///./apps/workflowengine/src/requestremoteaddressplugin.js","webpack:///./apps/workflowengine/src/requesttimeplugin.js","webpack:///./apps/workflowengine/src/requesturlplugin.js","webpack:///./apps/workflowengine/src/requestuseragentplugin.js","webpack:///./apps/workflowengine/src/usergroupmembershipplugin.js","webpack:///./apps/workflowengine/src/admin.js","webpack:///./apps/workflowengine/src/workflowengine.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","extend","indexOf","array","len","length","escapeExpression","string","toHTML","possible","test","replace","badChars","escapeChar","isEmpty","isArray","createFrame","frame","_parent","blockParams","params","ids","path","appendContextPath","contextPath","id","escape","&","<",">","\"","'","`","=","chr","obj","arguments","toString","isFunction","Array","errorProps","Exception","message","node","loc","line","undefined","column","start","tmp","Error","constructor","this","idx","captureStackTrace","lineNumber","nop","_interopRequireDefault","default","HandlebarsEnvironment","_utils","_exception2","_helpers","_decorators","_logger2","VERSION","COMPILER_REVISION","REVISION_CHANGES","1","2","3","4","5","6","7","helpers","partials","decorators","registerDefaultHelpers","registerDefaultDecorators","logger","log","registerHelper","fn","unregisterHelper","registerPartial","partial","unregisterPartial","registerDecorator","unregisterDecorator","currentValue","itemValue","Handlebars","__default","template","container","depth0","data","depths","stack1","alias1","lambda","alias2","alias3","nullContext","index","each","classes","hash","program","inverse","noop","8","operator","10","operation","saveTXT","11","resetTXT","13","savingTXT","15","16","errorMessage","17","19","21","compiler","main","hasChanged","shortRuleDescTXT","checks","addRuleTXT","saving","useData","useDepths","helper","addRuleGroupTXT","helperMissing","_interopRequireWildcard","newObj","base","_handlebarsSafeString2","_handlebarsException2","Utils","runtime","_handlebarsNoConflict2","hb","SafeString","VM","spec","inst","instance","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","context","options","_exception","ret","execIteration","field","last","first","j","priorKey","conditional","includeZero","args","push","level","apply","propertyIsEnumerable","_decoratorsInline2","_decoratorsInline","props","original","methodMap","lookupLevel","levelMap","toLowerCase","parseInt","console","method","_len","_key","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","runtimeVersions","compilerVersions","templateSpec","env","decorator","main_d","strict","lookup","current","invokePartial","resolvePartial","result","compile","compilerOptions","indent","lines","split","join","programs","declaredBlockParams","programWrapper","wrapProgram","depth","merge","param","common","seal","_setup","root","initData","useBlockParams","concat","executeDecorators","isTop","usePartial","useDecorators","_child","currentPartialBlock","partialBlock","Function","prog","currentDepths","global","window","$Handlebars","noConflict","g","e","classname","check","OCA","WorkflowEngine","getCheckByClass","_","isUndefined","Plugins","FileMimeTypePlugin","getCheck","class","operators","render","element","placeholder","_validateRegex","$","removeClass","addClass","css","attr","tooltip","placement","exec","OC","register","FileNamePlugin","FileSizePlugin","FileSystemTagsPlugin","collection","SystemTags","select2","allowClear","multiple","query","debounce","callback","results","filterByName","term","initSelection","val","formatResult","tag","getDescriptiveTag","formatSelection","tagId","escapeMarkup","RequestRemoteAddressPlugin","_validateIPv6","_validateIPv4","RequestTimePlugin","timezones","_$element","startTime","endTime","timezone","jstz","determine","$element","isString","JSON","parse","splittedStart","splittedEnd","valueJSON","stringify","insertBefore","timezoneInput","ajax","url","generateUrl","dataType","quietMillis","search","response","more","parent","on","update","event","target","classList","moment","parsedDate","format","indexValue","trigger","warn","RequestURLPlugin","predefinedValues","self","text","children","unshift","createSearchChoice","RequestUserAgentPlugin","UserGroupMembershipPlugin","groups","groupId","displayname","find","group","escapeHTML","availablePlugins","availableChecks","className","Operation","Backbone","Model","defaults","OperationsCollection","Collection","model","OperationView","View","templateId","events","change .check-class","change .check-operator","change .check-value","change .operation-name","change .operation-operation","click .button-reset","click .button-save","click .button-add","click .button-delete","click .button-delete-check","originalModel","vars","OperationTemplate","initialize","linkToOCS","success","ocs","forEach","Notification","error","type","delete","PasswordConfirmation","requiresPasswordConfirmation","requirePasswordConfirmation","destroy","remove","reset","set","silent","save","responseText","add","clone","checkChanged","parentElement","substr","has","deleteCheck","splice","operationChanged","$el","html","toJSON","valueElement","plugin","delay","elements","OperationsView","click .button-add-operation","OperationsTemplate","getPlugins","fetch","once","renderOperation","subView","append"],"mappings":"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","file":"workflowengine.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 33);\n","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n '=': '='\n};\n\nvar badChars = /[&<>\"'`=]/g,\n possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n return escape[chr];\n}\n\nfunction extend(obj /* , ...source */) {\n for (var i = 1; i < arguments.length; i++) {\n for (var key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n}\n\nvar toString = Object.prototype.toString;\n\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n/* eslint-disable func-style */\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\n/* istanbul ignore next */\nif (isFunction(/x/)) {\n exports.isFunction = isFunction = function (value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\nexports.isFunction = isFunction;\n\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\nvar isArray = Array.isArray || function (value) {\n return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray;\n// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n}\n\nfunction escapeExpression(string) {\n if (typeof string !== 'string') {\n // don't escape SafeStrings, since they're already safe\n if (string && string.toHTML) {\n return string.toHTML();\n } else if (string == null) {\n return '';\n } else if (!string) {\n return string + '';\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = '' + string;\n }\n\n if (!possible.test(string)) {\n return string;\n }\n return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction createFrame(object) {\n var frame = extend({}, object);\n frame._parent = object;\n return frame;\n}\n\nfunction blockParams(params, ids) {\n params.path = ids;\n return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n return (contextPath ? contextPath + '.' : '') + id;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQ3ZCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRTdCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFtQjtBQUMzQyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQUlNLFVBQVUsR0FKaEIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssbUJBQW1CLENBQUM7R0FDcEYsQ0FBQztDQUNIO1FBQ08sVUFBVSxHQUFWLFVBQVU7Ozs7O0FBSVgsSUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxVQUFTLEtBQUssRUFBRTtBQUN0RCxTQUFPLEFBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsR0FBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUFHLEtBQUssQ0FBQztDQUNqRyxDQUFDOzs7OztBQUdLLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUdNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUFFLFdBQU8sTUFBTSxDQUFDO0dBQUU7QUFDOUMsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gICAgICBwb3NzaWJsZSA9IC9bJjw+XCInYD1dLztcblxuZnVuY3Rpb24gZXNjYXBlQ2hhcihjaHIpIHtcbiAgcmV0dXJuIGVzY2FwZVtjaHJdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kKG9iai8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbaV0sIGtleSkpIHtcbiAgICAgICAgb2JqW2tleV0gPSBhcmd1bWVudHNbaV1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgbGV0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuLy8gU291cmNlZCBmcm9tIGxvZGFzaFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL2xvZGFzaC9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dFxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xubGV0IGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcbiAgfTtcbn1cbmV4cG9ydCB7aXNGdW5jdGlvbn07XG4vKiBlc2xpbnQtZW5hYmxlIGZ1bmMtc3R5bGUgKi9cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmV4cG9ydCBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpID8gdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEFycmF5XScgOiBmYWxzZTtcbn07XG5cbi8vIE9sZGVyIElFIHZlcnNpb25zIGRvIG5vdCBkaXJlY3RseSBzdXBwb3J0IGluZGV4T2Ygc28gd2UgbXVzdCBpbXBsZW1lbnQgb3VyIG93biwgc2FkbHkuXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhPZihhcnJheSwgdmFsdWUpIHtcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGFycmF5Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGFycmF5W2ldID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlRXhwcmVzc2lvbihzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgZXNjYXBlIFNhZmVTdHJpbmdzLCBzaW5jZSB0aGV5J3JlIGFscmVhZHkgc2FmZVxuICAgIGlmIChzdHJpbmcgJiYgc3RyaW5nLnRvSFRNTCkge1xuICAgICAgcmV0dXJuIHN0cmluZy50b0hUTUwoKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nICsgJyc7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgYSBzdHJpbmcgY29udmVyc2lvbiBhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgYXBwZW5kIHJlZ2FyZGxlc3MgYW5kXG4gICAgLy8gdGhlIHJlZ2V4IHRlc3Qgd2lsbCBkbyB0aGlzIHRyYW5zcGFyZW50bHkgYmVoaW5kIHRoZSBzY2VuZXMsIGNhdXNpbmcgaXNzdWVzIGlmXG4gICAgLy8gYW4gb2JqZWN0J3MgdG8gc3RyaW5nIGhhcyBlc2NhcGVkIGNoYXJhY3RlcnMgaW4gaXQuXG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmc7XG4gIH1cblxuICBpZiAoIXBvc3NpYmxlLnRlc3Qoc3RyaW5nKSkgeyByZXR1cm4gc3RyaW5nOyB9XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZShiYWRDaGFycywgZXNjYXBlQ2hhcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VtcHR5KHZhbHVlKSB7XG4gIGlmICghdmFsdWUgJiYgdmFsdWUgIT09IDApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIGlmIChpc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZyYW1lKG9iamVjdCkge1xuICBsZXQgZnJhbWUgPSBleHRlbmQoe30sIG9iamVjdCk7XG4gIGZyYW1lLl9wYXJlbnQgPSBvYmplY3Q7XG4gIHJldHVybiBmcmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJsb2NrUGFyYW1zKHBhcmFtcywgaWRzKSB7XG4gIHBhcmFtcy5wYXRoID0gaWRzO1xuICByZXR1cm4gcGFyYW1zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kQ29udGV4dFBhdGgoY29udGV4dFBhdGgsIGlkKSB7XG4gIHJldHVybiAoY29udGV4dFBhdGggPyBjb250ZXh0UGF0aCArICcuJyA6ICcnKSArIGlkO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n column = undefined;\n if (loc) {\n line = loc.start.line;\n column = loc.start.column;\n\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n /* istanbul ignore else */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n\n // Work around issue under safari where we can't directly set the column value\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n } else {\n this.column = column;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsSUFBTSxVQUFVLEdBQUcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQzs7QUFFbkcsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDdEIsSUFBSSxZQUFBO01BQ0osTUFBTSxZQUFBLENBQUM7QUFDWCxNQUFJLEdBQUcsRUFBRTtBQUNQLFFBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztBQUN0QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7O0FBRTFCLFdBQU8sSUFBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7R0FDeEM7O0FBRUQsTUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQzs7O0FBRzFELE9BQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO0FBQ2hELFFBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7R0FDOUM7OztBQUdELE1BQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFO0FBQzNCLFNBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7R0FDMUM7O0FBRUQsTUFBSTtBQUNGLFFBQUksR0FBRyxFQUFFO0FBQ1AsVUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Ozs7QUFJdkIsVUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFO0FBQ3pCLGNBQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtBQUNwQyxlQUFLLEVBQUUsTUFBTTtBQUNiLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7T0FDdEI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuY29uc3QgZXJyb3JQcm9wcyA9IFsnZGVzY3JpcHRpb24nLCAnZmlsZU5hbWUnLCAnbGluZU51bWJlcicsICdtZXNzYWdlJywgJ25hbWUnLCAnbnVtYmVyJywgJ3N0YWNrJ107XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgICAgbGluZSxcbiAgICAgIGNvbHVtbjtcbiAgaWYgKGxvYykge1xuICAgIGxpbmUgPSBsb2Muc3RhcnQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcblxuICAgICAgLy8gV29yayBhcm91bmQgaXNzdWUgdW5kZXIgc2FmYXJpIHdoZXJlIHdlIGNhbid0IGRpcmVjdGx5IHNldCB0aGUgY29sdW1uIHZhbHVlXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2NvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogY29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKG5vcCkge1xuICAgIC8qIElnbm9yZSBpZiB0aGUgYnJvd3NlciBpcyB2ZXJ5IHBhcnRpY3VsYXIgKi9cbiAgfVxufVxuXG5FeGNlcHRpb24ucHJvdG90eXBlID0gbmV3IEVycm9yKCk7XG5cbmV4cG9ydCBkZWZhdWx0IEV4Y2VwdGlvbjtcbiJdfQ==\n","// Create a simple path alias to allow browserify to resolve\n// the runtime on a supported path.\nmodule.exports = require('./dist/cjs/handlebars.runtime')['default'];\n","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar VERSION = '4.1.2';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 7;\n\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: _logger2['default'],\n log: _logger2['default'].log,\n\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQTRDLFNBQVM7O3lCQUMvQixhQUFhOzs7O3VCQUNFLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNuQyxVQUFVOzs7O0FBRXRCLElBQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQzs7QUFDeEIsSUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxVQUFVO0NBQ2QsQ0FBQzs7O0FBRUYsSUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFNBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsTUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLE1BQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixNQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGtDQUF1QixJQUFJLENBQUMsQ0FBQztBQUM3Qix3Q0FBMEIsSUFBSSxDQUFDLENBQUM7Q0FDakM7O0FBRUQscUJBQXFCLENBQUMsU0FBUyxHQUFHO0FBQ2hDLGFBQVcsRUFBRSxxQkFBcUI7O0FBRWxDLFFBQU0scUJBQVE7QUFDZCxLQUFHLEVBQUUsb0JBQU8sR0FBRzs7QUFFZixnQkFBYyxFQUFFLHdCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDakMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQUUsY0FBTSwyQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO09BQUU7QUFDM0Usb0JBQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM1QixNQUFNO0FBQ0wsVUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDekI7R0FDRjtBQUNELGtCQUFnQixFQUFFLDBCQUFTLElBQUksRUFBRTtBQUMvQixXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDM0I7O0FBRUQsaUJBQWUsRUFBRSx5QkFBUyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQ3ZDLFFBQUksZ0JBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxvQkFBTyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzdCLE1BQU07QUFDTCxVQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRTtBQUNsQyxjQUFNLHlFQUEwRCxJQUFJLG9CQUFpQixDQUFDO09BQ3ZGO0FBQ0QsVUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7S0FDL0I7R0FDRjtBQUNELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDNUI7O0FBRUQsbUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFBRSxjQUFNLDJCQUFjLDRDQUE0QyxDQUFDLENBQUM7T0FBRTtBQUM5RSxvQkFBTyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQy9CLE1BQU07QUFDTCxVQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUM1QjtHQUNGO0FBQ0QscUJBQW1CLEVBQUUsNkJBQVMsSUFBSSxFQUFFO0FBQ2xDLFdBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUM5QjtDQUNGLENBQUM7O0FBRUssSUFBSSxHQUFHLEdBQUcsb0JBQU8sR0FBRyxDQUFDOzs7UUFFcEIsV0FBVztRQUFFLE1BQU0iLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlRnJhbWUsIGV4dGVuZCwgdG9TdHJpbmd9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdEhlbHBlcnN9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnN9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnNC4xLjInO1xuZXhwb3J0IGNvbnN0IENPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAnXG59O1xuXG5jb25zdCBvYmplY3RUeXBlID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBIYW5kbGViYXJzRW52aXJvbm1lbnQoaGVscGVycywgcGFydGlhbHMsIGRlY29yYXRvcnMpIHtcbiAgdGhpcy5oZWxwZXJzID0gaGVscGVycyB8fCB7fTtcbiAgdGhpcy5wYXJ0aWFscyA9IHBhcnRpYWxzIHx8IHt9O1xuICB0aGlzLmRlY29yYXRvcnMgPSBkZWNvcmF0b3JzIHx8IHt9O1xuXG4gIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnModGhpcyk7XG4gIHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnModGhpcyk7XG59XG5cbkhhbmRsZWJhcnNFbnZpcm9ubWVudC5wcm90b3R5cGUgPSB7XG4gIGNvbnN0cnVjdG9yOiBIYW5kbGViYXJzRW52aXJvbm1lbnQsXG5cbiAgbG9nZ2VyOiBsb2dnZXIsXG4gIGxvZzogbG9nZ2VyLmxvZyxcblxuICByZWdpc3RlckhlbHBlcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7IHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgaGVscGVycycpOyB9XG4gICAgICBleHRlbmQodGhpcy5oZWxwZXJzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oZWxwZXJzW25hbWVdID0gZm47XG4gICAgfVxuICB9LFxuICB1bnJlZ2lzdGVySGVscGVyOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuaGVscGVyc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUsIHBhcnRpYWwpIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgZXh0ZW5kKHRoaXMucGFydGlhbHMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIHBhcnRpYWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oYEF0dGVtcHRpbmcgdG8gcmVnaXN0ZXIgYSBwYXJ0aWFsIGNhbGxlZCBcIiR7bmFtZX1cIiBhcyB1bmRlZmluZWRgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7IHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpOyB9XG4gICAgICBleHRlbmQodGhpcy5kZWNvcmF0b3JzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWNvcmF0b3JzW25hbWVdID0gZm47XG4gICAgfVxuICB9LFxuICB1bnJlZ2lzdGVyRGVjb3JhdG9yOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuZGVjb3JhdG9yc1tuYW1lXTtcbiAgfVxufTtcblxuZXhwb3J0IGxldCBsb2cgPSBsb2dnZXIubG9nO1xuXG5leHBvcnQge2NyZWF0ZUZyYW1lLCBsb2dnZXJ9O1xuIl19\n","module.exports = function(currentValue, itemValue) {\n\tif (currentValue === itemValue) {\n\t\treturn 'selected=\"selected\"';\n\t}\n\n\treturn \"\";\n}\n","var Handlebars = require(\"../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" modified\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t<span class=\\\"button-delete icon-delete\\\"></span>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"\t\t\t<div class=\\\"check\\\" data-id=\\\"\"\n + alias2(alias1((data && data.index), depth0))\n + \"\\\">\\n\t\t\t\t<select class=\\\"check-class\\\">\\n\"\n + ((stack1 = helpers.each.call(alias3,(depths[1] != null ? depths[1].classes : depths[1]),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(6, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t\t\t</select>\\n\t\t\t\t<select class=\\\"check-operator\\\">\\n\"\n + ((stack1 = helpers.each.call(alias3,__default(require(\"../hbs_helpers/getOperators.js\")).call(alias3,(depth0 != null ? depth0[\"class\"] : depth0),{\"name\":\"getOperators\",\"hash\":{},\"data\":data}),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(8, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t\t\t</select>\\n\t\t\t\t<input type=\\\"text\\\" class=\\\"check-value\\\" value=\\\"\"\n + alias2(alias1((depth0 != null ? depth0.value : depth0), depth0))\n + \"\\\">\\n\t\t\t\t<span class=\\\"button-delete-check icon-delete\\\"></span>\\n\t\t\t</div>\\n\";\n},\"6\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression;\n\n return \"\t\t\t\t\t\t<option value=\\\"\"\n + alias2(alias1((depth0 != null ? depth0[\"class\"] : depth0), depth0))\n + \"\\\" \"\n + ((stack1 = __default(require(\"../hbs_helpers/selectItem.js\")).call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0[\"class\"] : depth0),(depths[1] != null ? depths[1][\"class\"] : depths[1]),{\"name\":\"selectItem\",\"hash\":{},\"data\":data})) != null ? stack1 : \"\")\n + \">\"\n + alias2(alias1((depth0 != null ? depth0.name : depth0), depth0))\n + \"</option>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression;\n\n return \"\t\t\t\t\t\t<option value=\\\"\"\n + alias2(alias1((depth0 != null ? depth0.operator : depth0), depth0))\n + \"\\\" \"\n + ((stack1 = __default(require(\"../hbs_helpers/selectItem.js\")).call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.operator : depth0),(depths[1] != null ? depths[1].operator : depths[1]),{\"name\":\"selectItem\",\"hash\":{},\"data\":data})) != null ? stack1 : \"\")\n + \">\"\n + alias2(alias1((depth0 != null ? depth0.name : depth0), depth0))\n + \"</option>\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.id : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t<button class=\\\"button-save pull-right\\\">\"\n + container.escapeExpression(container.lambda((depth0 != null ? depth0.saveTXT : depth0), depth0))\n + \"</button>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t<button class=\\\"button-reset pull-right\\\">\"\n + container.escapeExpression(container.lambda((depth0 != null ? depth0.resetTXT : depth0), depth0))\n + \"</button>\\n\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n return \"\t\t<span class=\\\"icon-loading-small pull-right\\\"></span>\\n\t\t<span class=\\\"pull-right\\\">\"\n + container.escapeExpression(container.lambda((depth0 != null ? depth0.savingTXT : depth0), depth0))\n + \"</span>\\n\t\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.message : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(16, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"16\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"\\n\t\t<span class=\\\"msg pull-right \"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.errorMessage : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(17, data, 0),\"inverse\":container.program(19, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \"\\\">\\n\t\t\t\t\t\"\n + container.escapeExpression(container.lambda((depth0 != null ? depth0.message : depth0), depth0))\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.errorMessage : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(21, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\n\t\t\t\t</span>\\n\t\";\n},\"17\":function(container,depth0,helpers,partials,data) {\n return \"error\";\n},\"19\":function(container,depth0,helpers,partials,data) {\n return \"success\";\n},\"21\":function(container,depth0,helpers,partials,data) {\n return \" \"\n + container.escapeExpression(container.lambda((depth0 != null ? depth0.errorMessage : depth0), depth0));\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.lambda, alias3=container.escapeExpression;\n\n return \"<div class=\\\"operation\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasChanged : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\">\\n\t<div class=\\\"operation-header\\\">\\n\t\t<input type=\\\"text\\\" class=\\\"operation-name\\\" placeholder=\\\"\"\n + alias3(alias2((depth0 != null ? depth0.shortRuleDescTXT : depth0), depth0))\n + \"\\\" value=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.name : stack1), depth0))\n + \"\\\" />\\n\t\t<input type=\\\"text\\\" class=\\\"operation-operation\\\" value=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.operation : stack1), depth0))\n + \"\\\" />\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.id : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t</div>\\n\\n\t<div class=\\\"checks\\\">\\n\"\n + ((stack1 = helpers.each.call(alias1,((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.checks : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(5, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t</div>\\n\t<button class=\\\"button-add\\\">\"\n + alias3(alias2((depth0 != null ? depth0.addRuleTXT : depth0), depth0))\n + \"</button>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasChanged : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.saving : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(13, data, 0, blockParams, depths),\"inverse\":container.program(15, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\")\n + \"\\n</div>\\n\";\n},\"useData\":true,\"useDepths\":true});","var Handlebars = require(\"../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"<div class=\\\"operations\\\"></div>\\n<button class=\\\"button-add-operation\\\">\"\n + container.escapeExpression(((helper = (helper = helpers.addRuleGroupTXT || (depth0 != null ? depth0.addRuleGroupTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"addRuleGroupTXT\",\"hash\":{},\"data\":data}) : helper)))\n + \"</button>\\n\";\n},\"useData\":true});","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n\n hb.VM = runtime;\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n _helpersEach2['default'](instance);\n _helpersHelperMissing2['default'](instance);\n _helpersIf2['default'](instance);\n _helpersLog2['default'](instance);\n _helpersLookup2['default'](instance);\n _helpersWith2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7eUNBQXVDLGdDQUFnQzs7OzsyQkFDOUMsZ0JBQWdCOzs7O29DQUNQLDBCQUEwQjs7Ozt5QkFDckMsY0FBYzs7OzswQkFDYixlQUFlOzs7OzZCQUNaLGtCQUFrQjs7OzsyQkFDcEIsZ0JBQWdCOzs7O0FBRWxDLFNBQVMsc0JBQXNCLENBQUMsUUFBUSxFQUFFO0FBQy9DLHlDQUEyQixRQUFRLENBQUMsQ0FBQztBQUNyQywyQkFBYSxRQUFRLENBQUMsQ0FBQztBQUN2QixvQ0FBc0IsUUFBUSxDQUFDLENBQUM7QUFDaEMseUJBQVcsUUFBUSxDQUFDLENBQUM7QUFDckIsMEJBQVksUUFBUSxDQUFDLENBQUM7QUFDdEIsNkJBQWUsUUFBUSxDQUFDLENBQUM7QUFDekIsMkJBQWEsUUFBUSxDQUFDLENBQUM7Q0FDeEIiLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZWdpc3RlckJsb2NrSGVscGVyTWlzc2luZyBmcm9tICcuL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcnO1xuaW1wb3J0IHJlZ2lzdGVyRWFjaCBmcm9tICcuL2hlbHBlcnMvZWFjaCc7XG5pbXBvcnQgcmVnaXN0ZXJIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJJZiBmcm9tICcuL2hlbHBlcnMvaWYnO1xuaW1wb3J0IHJlZ2lzdGVyTG9nIGZyb20gJy4vaGVscGVycy9sb2cnO1xuaW1wb3J0IHJlZ2lzdGVyTG9va3VwIGZyb20gJy4vaGVscGVycy9sb29rdXAnO1xuaW1wb3J0IHJlZ2lzdGVyV2l0aCBmcm9tICcuL2hlbHBlcnMvd2l0aCc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckRlZmF1bHRIZWxwZXJzKGluc3RhbmNlKSB7XG4gIHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJFYWNoKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJIZWxwZXJNaXNzaW5nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJJZihpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyTG9nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb29rdXAoaW5zdGFuY2UpO1xuICByZWdpc3RlcldpdGgoaW5zdGFuY2UpO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('blockHelperMissing', function (context, options) {\n var inverse = options.inverse,\n fn = options.fn;\n\n if (context === true) {\n return fn(this);\n } else if (context === false || context == null) {\n return inverse(this);\n } else if (_utils.isArray(context)) {\n if (context.length > 0) {\n if (options.ids) {\n options.ids = [options.name];\n }\n\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n if (options.data && options.ids) {\n var data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n options = { data: data };\n }\n\n return fn(context, options);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBc0QsVUFBVTs7cUJBRWpELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQ3pCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVwQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdFLGVBQU8sR0FBRyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQztPQUN4Qjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXBwZW5kQ29udGV4dFBhdGgsIGNyZWF0ZUZyYW1lLCBpc0FycmF5fSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdibG9ja0hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgbGV0IGludmVyc2UgPSBvcHRpb25zLmludmVyc2UsXG4gICAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCwgb3B0aW9ucy5uYW1lKTtcbiAgICAgICAgb3B0aW9ucyA9IHtkYXRhOiBkYXRhfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else {\n var priorKey = undefined;\n\n for (var key in context) {\n if (context.hasOwnProperty(key)) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n priorKey = key;\n i++;\n }\n }\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQUErRSxVQUFVOzt5QkFDbkUsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3pELFFBQUksQ0FBQyxPQUFPLEVBQUU7QUFDWixZQUFNLDJCQUFjLDZCQUE2QixDQUFDLENBQUM7S0FDcEQ7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUU7UUFDZixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU87UUFDekIsQ0FBQyxHQUFHLENBQUM7UUFDTCxHQUFHLEdBQUcsRUFBRTtRQUNSLElBQUksWUFBQTtRQUNKLFdBQVcsWUFBQSxDQUFDOztBQUVoQixRQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixpQkFBVyxHQUFHLHlCQUFrQixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0tBQ2pGOztBQUVELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFBRSxhQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUFFOztBQUUxRCxRQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDaEIsVUFBSSxHQUFHLG1CQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNsQzs7QUFFRCxhQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtBQUN6QyxVQUFJLElBQUksRUFBRTtBQUNSLFlBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQ2pCLFlBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQ25CLFlBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQztBQUN6QixZQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7O0FBRW5CLFlBQUksV0FBVyxFQUFFO0FBQ2YsY0FBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQ3hDO09BQ0Y7O0FBRUQsU0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzdCLFlBQUksRUFBRSxJQUFJO0FBQ1YsbUJBQVcsRUFBRSxtQkFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDL0UsQ0FBQyxDQUFDO0tBQ0o7O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNO0FBQ0wsWUFBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixhQUFLLElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRTtBQUN2QixjQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Ozs7QUFJL0IsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0w7U0FDRjtBQUNELFlBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQix1QkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3RDO09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXBwZW5kQ29udGV4dFBhdGgsIGJsb2NrUGFyYW1zLCBjcmVhdGVGcmFtZSwgaXNBcnJheSwgaXNGdW5jdGlvbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICAgIGludmVyc2UgPSBvcHRpb25zLmludmVyc2UsXG4gICAgICAgIGkgPSAwLFxuICAgICAgICByZXQgPSAnJyxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY29udGV4dFBhdGg7XG5cbiAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICBjb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCwgb3B0aW9ucy5pZHNbMF0pICsgJy4nO1xuICAgIH1cblxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7IGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7IH1cblxuICAgIGlmIChvcHRpb25zLmRhdGEpIHtcbiAgICAgIGRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4ZWNJdGVyYXRpb24oZmllbGQsIGluZGV4LCBsYXN0KSB7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICBkYXRhLmtleSA9IGZpZWxkO1xuICAgICAgICBkYXRhLmluZGV4ID0gaW5kZXg7XG4gICAgICAgIGRhdGEuZmlyc3QgPSBpbmRleCA9PT0gMDtcbiAgICAgICAgZGF0YS5sYXN0ID0gISFsYXN0O1xuXG4gICAgICAgIGlmIChjb250ZXh0UGF0aCkge1xuICAgICAgICAgIGRhdGEuY29udGV4dFBhdGggPSBjb250ZXh0UGF0aCArIGZpZWxkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldCA9IHJldCArIGZuKGNvbnRleHRbZmllbGRdLCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhbY29udGV4dFtmaWVsZF0sIGZpZWxkXSwgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRleHQgJiYgdHlwZW9mIGNvbnRleHQgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgICBmb3IgKGxldCBqID0gY29udGV4dC5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgICAgICBpZiAoaSBpbiBjb250ZXh0KSB7XG4gICAgICAgICAgICBleGVjSXRlcmF0aW9uKGksIGksIGkgPT09IGNvbnRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcHJpb3JLZXk7XG5cbiAgICAgICAgZm9yIChsZXQga2V5IGluIGNvbnRleHQpIHtcbiAgICAgICAgICBpZiAoY29udGV4dC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAvLyBXZSdyZSBydW5uaW5nIHRoZSBpdGVyYXRpb25zIG9uZSBzdGVwIG91dCBvZiBzeW5jIHNvIHdlIGNhbiBkZXRlY3RcbiAgICAgICAgICAgIC8vIHRoZSBsYXN0IGl0ZXJhdGlvbiB3aXRob3V0IGhhdmUgdG8gc2NhbiB0aGUgb2JqZWN0IHR3aWNlIGFuZCBjcmVhdGVcbiAgICAgICAgICAgIC8vIGFuIGl0ZXJtZWRpYXRlIGtleXMgYXJyYXkuXG4gICAgICAgICAgICBpZiAocHJpb3JLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmlvcktleSA9IGtleTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgcmV0ID0gaW52ZXJzZSh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function () /* [args, ]options */{\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFBYyxtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7S0FDdkY7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ01pc3NpbmcgaGVscGVyOiBcIicgKyBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdLm5hbWUgKyAnXCInKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('if', function (conditional, options) {\n if (_utils.isFunction(conditional)) {\n conditional = conditional.call(this);\n }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function (conditional, options) {\n return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash });\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBa0MsVUFBVTs7cUJBRTdCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLGtCQUFXLFdBQVcsQ0FBQyxFQUFFO0FBQUUsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQUU7Ozs7O0FBS3RFLFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFdBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQztHQUN2SCxDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJpZi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNFbXB0eSwgaXNGdW5jdGlvbn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignaWYnLCBmdW5jdGlvbihjb25kaXRpb25hbCwgb3B0aW9ucykge1xuICAgIGlmIChpc0Z1bmN0aW9uKGNvbmRpdGlvbmFsKSkgeyBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7IH1cblxuICAgIC8vIERlZmF1bHQgYmVoYXZpb3IgaXMgdG8gcmVuZGVyIHRoZSBwb3NpdGl2ZSBwYXRoIGlmIHRoZSB2YWx1ZSBpcyB0cnV0aHkgYW5kIG5vdCBlbXB0eS5cbiAgICAvLyBUaGUgYGluY2x1ZGVaZXJvYCBvcHRpb24gbWF5IGJlIHNldCB0byB0cmVhdCB0aGUgY29uZHRpb25hbCBhcyBwdXJlbHkgbm90IGVtcHR5IGJhc2VkIG9uIHRoZVxuICAgIC8vIGJlaGF2aW9yIG9mIGlzRW1wdHkuIEVmZmVjdGl2ZWx5IHRoaXMgZGV0ZXJtaW5lcyBpZiAwIGlzIGhhbmRsZWQgYnkgdGhlIHBvc2l0aXZlIHBhdGggb3IgbmVnYXRpdmUuXG4gICAgaWYgKCghb3B0aW9ucy5oYXNoLmluY2x1ZGVaZXJvICYmICFjb25kaXRpb25hbCkgfHwgaXNFbXB0eShjb25kaXRpb25hbCkpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmludmVyc2UodGhpcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmZuKHRoaXMpO1xuICAgIH1cbiAgfSk7XG5cbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ3VubGVzcycsIGZ1bmN0aW9uKGNvbmRpdGlvbmFsLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnNbJ2lmJ10uY2FsbCh0aGlzLCBjb25kaXRpb25hbCwge2ZuOiBvcHRpb25zLmludmVyc2UsIGludmVyc2U6IG9wdGlvbnMuZm4sIGhhc2g6IG9wdGlvbnMuaGFzaH0pO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function () /* message, options */{\n var args = [undefined],\n options = arguments[arguments.length - 1];\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n args[0] = level;\n\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ2xCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVMsSUFBSSxDQUFDLENBQUM7R0FDeEIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgICBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICAgIH1cblxuICAgIGxldCBsZXZlbCA9IDE7XG4gICAgaWYgKG9wdGlvbnMuaGFzaC5sZXZlbCAhPSBudWxsKSB7XG4gICAgICBsZXZlbCA9IG9wdGlvbnMuaGFzaC5sZXZlbDtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGEubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmRhdGEubGV2ZWw7XG4gICAgfVxuICAgIGFyZ3NbMF0gPSBsZXZlbDtcblxuICAgIGluc3RhbmNlLmxvZyguLi4gYXJncyk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('lookup', function (obj, field) {\n if (!obj) {\n return obj;\n }\n if (field === 'constructor' && !obj.propertyIsEnumerable(field)) {\n return undefined;\n }\n return obj[field];\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFO0FBQ3JELFFBQUksQ0FBQyxHQUFHLEVBQUU7QUFDUixhQUFPLEdBQUcsQ0FBQztLQUNaO0FBQ0QsUUFBSSxLQUFLLEtBQUssYUFBYSxJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQy9ELGFBQU8sU0FBUyxDQUFDO0tBQ2xCO0FBQ0QsV0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7R0FDbkIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9va3VwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvb2t1cCcsIGZ1bmN0aW9uKG9iaiwgZmllbGQpIHtcbiAgICBpZiAoIW9iaikge1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgaWYgKGZpZWxkID09PSAnY29uc3RydWN0b3InICYmICFvYmoucHJvcGVydHlJc0VudW1lcmFibGUoZmllbGQpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gb2JqW2ZpZWxkXTtcbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUErRSxVQUFVOztxQkFFMUUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3pELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFBRSxhQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUFFOztBQUUxRCxRQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVwQixRQUFJLENBQUMsZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNyQixVQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0FBQ3hCLFVBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQy9CLFlBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO09BQ2hGOztBQUVELGFBQU8sRUFBRSxDQUFDLE9BQU8sRUFBRTtBQUNqQixZQUFJLEVBQUUsSUFBSTtBQUNWLG1CQUFXLEVBQUUsbUJBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7T0FDaEUsQ0FBQyxDQUFDO0tBQ0osTUFBTTtBQUNMLGFBQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM5QjtHQUNGLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6IndpdGguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FwcGVuZENvbnRleHRQYXRoLCBibG9ja1BhcmFtcywgY3JlYXRlRnJhbWUsIGlzRW1wdHksIGlzRnVuY3Rpb259IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ3dpdGgnLCBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHsgY29udGV4dCA9IGNvbnRleHQuY2FsbCh0aGlzKTsgfVxuXG4gICAgbGV0IGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmICghaXNFbXB0eShjb250ZXh0KSkge1xuICAgICAgbGV0IGRhdGEgPSBvcHRpb25zLmRhdGE7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgICBkYXRhLmNvbnRleHRQYXRoID0gYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmbihjb250ZXh0LCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhbY29udGV4dF0sIFtkYXRhICYmIGRhdGEuY29udGV4dFBhdGhdKVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmludmVyc2UodGhpcyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG5cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n if (!props.partials) {\n props.partials = {};\n ret = function (context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXFCLFVBQVU7O3FCQUVoQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZXh0ZW5kfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVyRGVjb3JhdG9yKCdpbmxpbmUnLCBmdW5jdGlvbihmbiwgcHJvcHMsIGNvbnRhaW5lciwgb3B0aW9ucykge1xuICAgIGxldCByZXQgPSBmbjtcbiAgICBpZiAoIXByb3BzLnBhcnRpYWxzKSB7XG4gICAgICBwcm9wcy5wYXJ0aWFscyA9IHt9O1xuICAgICAgcmV0ID0gZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgcGFydGlhbHMgc3RhY2sgZnJhbWUgcHJpb3IgdG8gZXhlYy5cbiAgICAgICAgbGV0IG9yaWdpbmFsID0gY29udGFpbmVyLnBhcnRpYWxzO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBleHRlbmQoe30sIG9yaWdpbmFsLCBwcm9wcy5wYXJ0aWFscyk7XG4gICAgICAgIGxldCByZXQgPSBmbihjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgICAgY29udGFpbmVyLnBhcnRpYWxzID0gb3JpZ2luYWw7XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLnBhcnRpYWxzW29wdGlvbnMuYXJnc1swXV0gPSBvcHRpb25zLmZuO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n methodMap: ['debug', 'info', 'warn', 'error'],\n level: 'info',\n\n // Maps a given level value to the `methodMap` indexes above.\n lookupLevel: function lookupLevel(level) {\n if (typeof level === 'string') {\n var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n if (levelMap >= 0) {\n level = levelMap;\n } else {\n level = parseInt(level, 10);\n }\n }\n\n return level;\n },\n\n // Can be overridden in the host environment\n log: function log(level) {\n level = logger.lookupLevel(level);\n\n if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n var method = logger.methodMap[level];\n if (!console[method]) {\n // eslint-disable-line no-console\n method = 'log';\n }\n\n for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n }\n\n console[method].apply(console, message); // eslint-disable-line no-console\n }\n }\n};\n\nexports['default'] = logger;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUFzQixTQUFTOztBQUUvQixJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEVBQUU7QUFDL0UsVUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNyQyxVQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFOztBQUNwQixjQUFNLEdBQUcsS0FBSyxDQUFDO09BQ2hCOzt3Q0FQbUIsT0FBTztBQUFQLGVBQU87OztBQVEzQixhQUFPLENBQUMsTUFBTSxPQUFDLENBQWYsT0FBTyxFQUFZLE9BQU8sQ0FBQyxDQUFDO0tBQzdCO0dBQ0Y7Q0FDRixDQUFDOztxQkFFYSxNQUFNIiwiZmlsZSI6ImxvZ2dlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5kZXhPZn0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWwpIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIGlmICghY29uc29sZVttZXRob2RdKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0=\n","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision !== currentRevision) {\n if (compilerRevision < currentRevision) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d;\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as psuedo-supported APIs.\n env.VM.checkRevision(templateSpec.compiler);\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n var result = env.VM.invokePartial.call(this, partial, context, options);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, options);\n }\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n result = lines.join('\\n');\n }\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n }\n\n // Just add water\n var container = {\n strict: function strict(obj, name) {\n if (!(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj);\n }\n return obj[name];\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n for (var i = 0; i < len; i++) {\n if (depths[i] && depths[i][name] != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n return programWrapper;\n },\n\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n return value;\n },\n merge: function merge(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var data = options.data;\n\n ret._setup(options);\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context /*, options*/) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n container.helpers = container.merge(options.helpers, env.helpers);\n\n if (templateSpec.usePartial) {\n container.partials = container.merge(options.partials, env.partials);\n }\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = container.merge(options.decorators, env.decorators);\n }\n } else {\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var currentDepths = depths;\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data);\n // Wrapper function to get access to currentPartialBlock from the closure\n var fn = options.fn;\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n return prog;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBQzhCLFFBQVE7O0FBRWxFLFNBQVMsYUFBYSxDQUFDLFlBQVksRUFBRTtBQUMxQyxNQUFNLGdCQUFnQixHQUFHLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztNQUN2RCxlQUFlLDBCQUFvQixDQUFDOztBQUUxQyxNQUFJLGdCQUFnQixLQUFLLGVBQWUsRUFBRTtBQUN4QyxRQUFJLGdCQUFnQixHQUFHLGVBQWUsRUFBRTtBQUN0QyxVQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1VBQ25ELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQzVELFlBQU0sMkJBQWMseUZBQXlGLEdBQ3ZHLHFEQUFxRCxHQUFHLGVBQWUsR0FBRyxtREFBbUQsR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNoSyxNQUFNOztBQUVMLFlBQU0sMkJBQWMsd0ZBQXdGLEdBQ3RHLGlEQUFpRCxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNuRjtHQUNGO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztHQUN4RTs7QUFFRCxjQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDOzs7O0FBSWxELEtBQUcs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QUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUYsU0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7R0FDM0I7QUFDRCxTQUFPLElBQUksQ0FBQztDQUNiIiwiZmlsZSI6InJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHsgQ09NUElMRVJfUkVWSVNJT04sIFJFVklTSU9OX0NIQU5HRVMsIGNyZWF0ZUZyYW1lIH0gZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUmV2aXNpb24oY29tcGlsZXJJbmZvKSB7XG4gIGNvbnN0IGNvbXBpbGVyUmV2aXNpb24gPSBjb21waWxlckluZm8gJiYgY29tcGlsZXJJbmZvWzBdIHx8IDEsXG4gICAgICAgIGN1cnJlbnRSZXZpc2lvbiA9IENPTVBJTEVSX1JFVklTSU9OO1xuXG4gIGlmIChjb21waWxlclJldmlzaW9uICE9PSBjdXJyZW50UmV2aXNpb24pIHtcbiAgICBpZiAoY29tcGlsZXJSZXZpc2lvbiA8IGN1cnJlbnRSZXZpc2lvbikge1xuICAgICAgY29uc3QgcnVudGltZVZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjdXJyZW50UmV2aXNpb25dLFxuICAgICAgICAgICAgY29tcGlsZXJWZXJzaW9ucyA9IFJFVklTSU9OX0NIQU5HRVNbY29tcGlsZXJSZXZpc2lvbl07XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdUZW1wbGF0ZSB3YXMgcHJlY29tcGlsZWQgd2l0aCBhbiBvbGRlciB2ZXJzaW9uIG9mIEhhbmRsZWJhcnMgdGhhbiB0aGUgY3VycmVudCBydW50aW1lLiAnICtcbiAgICAgICAgICAgICdQbGVhc2UgdXBkYXRlIHlvdXIgcHJlY29tcGlsZXIgdG8gYSBuZXdlciB2ZXJzaW9uICgnICsgcnVudGltZVZlcnNpb25zICsgJykgb3IgZG93bmdyYWRlIHlvdXIgcnVudGltZSB0byBhbiBvbGRlciB2ZXJzaW9uICgnICsgY29tcGlsZXJWZXJzaW9ucyArICcpLicpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVc2UgdGhlIGVtYmVkZGVkIHZlcnNpb24gaW5mbyBzaW5jZSB0aGUgcnVudGltZSBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyByZXZpc2lvbiB5ZXRcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGEgbmV3ZXIgdmVyc2lvbiBvZiBIYW5kbGViYXJzIHRoYW4gdGhlIGN1cnJlbnQgcnVudGltZS4gJyArXG4gICAgICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHJ1bnRpbWUgdG8gYSBuZXdlciB2ZXJzaW9uICgnICsgY29tcGlsZXJJbmZvWzFdICsgJykuJyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZSh0ZW1wbGF0ZVNwZWMsIGVudikge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBpZiAoIWVudikge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ05vIGVudmlyb25tZW50IHBhc3NlZCB0byB0ZW1wbGF0ZScpO1xuICB9XG4gIGlmICghdGVtcGxhdGVTcGVjIHx8ICF0ZW1wbGF0ZVNwZWMubWFpbikge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1Vua25vd24gdGVtcGxhdGUgb2JqZWN0OiAnICsgdHlwZW9mIHRlbXBsYXRlU3BlYyk7XG4gIH1cblxuICB0ZW1wbGF0ZVNwZWMubWFpbi5kZWNvcmF0b3IgPSB0ZW1wbGF0ZVNwZWMubWFpbl9kO1xuXG4gIC8vIE5vdGU6IFVzaW5nIGVudi5WTSByZWZlcmVuY2VzIHJhdGhlciB0aGFuIGxvY2FsIHZhciByZWZlcmVuY2VzIHRocm91Z2hvdXQgdGhpcyBzZWN0aW9uIHRvIGFsbG93XG4gIC8vIGZvciBleHRlcm5hbCB1c2VycyB0byBvdmVycmlkZSB0aGVzZSBhcyBwc3VlZG8tc3VwcG9ydGVkIEFQSXMuXG4gIGVudi5WTS5jaGVja1JldmlzaW9uKHRlbXBsYXRlU3BlYy5jb21waWxlcik7XG5cbiAgZnVuY3Rpb24gaW52b2tlUGFydGlhbFdyYXBwZXIocGFydGlhbCwgY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICAgIGNvbnRleHQgPSBVdGlscy5leHRlbmQoe30sIGNvbnRleHQsIG9wdGlvbnMuaGFzaCk7XG4gICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgb3B0aW9ucy5pZHNbMF0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBhcnRpYWwgPSBlbnYuVk0ucmVzb2x2ZVBhcnRpYWwuY2FsbCh0aGlzLCBwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKTtcbiAgICBsZXQgcmVzdWx0ID0gZW52LlZNLmludm9rZVBhcnRpYWwuY2FsbCh0aGlzLCBwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKTtcblxuICAgIGlmIChyZXN1bHQgPT0gbnVsbCAmJiBlbnYuY29tcGlsZSkge1xuICAgICAgb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdID0gZW52LmNvbXBpbGUocGFydGlhbCwgdGVtcGxhdGVTcGVjLmNvbXBpbGVyT3B0aW9ucywgZW52KTtcbiAgICAgIHJlc3VsdCA9IG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXShjb250ZXh0LCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5pbmRlbnQpIHtcbiAgICAgICAgbGV0IGxpbmVzID0gcmVzdWx0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBpZiAoIWxpbmVzW2ldICYmIGkgKyAxID09PSBsKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lc1tpXSA9IG9wdGlvbnMuaW5kZW50ICsgbGluZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdUaGUgcGFydGlhbCAnICsgb3B0aW9ucy5uYW1lICsgJyBjb3VsZCBub3QgYmUgY29tcGlsZWQgd2hlbiBydW5uaW5nIGluIHJ1bnRpbWUtb25seSBtb2RlJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gSnVzdCBhZGQgd2F0ZXJcbiAgbGV0IGNvbnRhaW5lciA9IHtcbiAgICBzdHJpY3Q6IGZ1bmN0aW9uKG9iaiwgbmFtZSkge1xuICAgICAgaWYgKCEobmFtZSBpbiBvYmopKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1wiJyArIG5hbWUgKyAnXCIgbm90IGRlZmluZWQgaW4gJyArIG9iaik7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqW25hbWVdO1xuICAgIH0sXG4gICAgbG9va3VwOiBmdW5jdGlvbihkZXB0aHMsIG5hbWUpIHtcbiAgICAgIGNvbnN0IGxlbiA9IGRlcHRocy5sZW5ndGg7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGlmIChkZXB0aHNbaV0gJiYgZGVwdGhzW2ldW25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZGVwdGhzW2ldW25hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBsYW1iZGE6IGZ1bmN0aW9uKGN1cnJlbnQsIGNvbnRleHQpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgY3VycmVudCA9PT0gJ2Z1bmN0aW9uJyA/IGN1cnJlbnQuY2FsbChjb250ZXh0KSA6IGN1cnJlbnQ7XG4gICAgfSxcblxuICAgIGVzY2FwZUV4cHJlc3Npb246IFV0aWxzLmVzY2FwZUV4cHJlc3Npb24sXG4gICAgaW52b2tlUGFydGlhbDogaW52b2tlUGFydGlhbFdyYXBwZXIsXG5cbiAgICBmbjogZnVuY3Rpb24oaSkge1xuICAgICAgbGV0IHJldCA9IHRlbXBsYXRlU3BlY1tpXTtcbiAgICAgIHJldC5kZWNvcmF0b3IgPSB0ZW1wbGF0ZVNwZWNbaSArICdfZCddO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuXG4gICAgcHJvZ3JhbXM6IFtdLFxuICAgIHByb2dyYW06IGZ1bmN0aW9uKGksIGRhdGEsIGRlY2xhcmVkQmxvY2tQYXJhbXMsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICAgIGxldCBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0sXG4gICAgICAgICAgZm4gPSB0aGlzLmZuKGkpO1xuICAgICAgaWYgKGRhdGEgfHwgZGVwdGhzIHx8IGJsb2NrUGFyYW1zIHx8IGRlY2xhcmVkQmxvY2tQYXJhbXMpIHtcbiAgICAgICAgcHJvZ3JhbVdyYXBwZXIgPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbiwgZGF0YSwgZGVjbGFyZWRCbG9ja1BhcmFtcywgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9ncmFtV3JhcHBlcikge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0gPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvZ3JhbVdyYXBwZXI7XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uKHZhbHVlLCBkZXB0aCkge1xuICAgICAgd2hpbGUgKHZhbHVlICYmIGRlcHRoLS0pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5fcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgbWVyZ2U6IGZ1bmN0aW9uKHBhcmFtLCBjb21tb24pIHtcbiAgICAgIGxldCBvYmogPSBwYXJhbSB8fCBjb21tb247XG5cbiAgICAgIGlmIChwYXJhbSAmJiBjb21tb24gJiYgKHBhcmFtICE9PSBjb21tb24pKSB7XG4gICAgICAgIG9iaiA9IFV0aWxzLmV4dGVuZCh7fSwgY29tbW9uLCBwYXJhbSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICAvLyBBbiBlbXB0eSBvYmplY3QgdG8gdXNlIGFzIHJlcGxhY2VtZW50IGZvciBudWxsLWNvbnRleHRzXG4gICAgbnVsbENvbnRleHQ6IE9iamVjdC5zZWFsKHt9KSxcblxuICAgIG5vb3A6IGVudi5WTS5ub29wLFxuICAgIGNvbXBpbGVySW5mbzogdGVtcGxhdGVTcGVjLmNvbXBpbGVyXG4gIH07XG5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgcmV0Ll9zZXR1cChvcHRpb25zKTtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCAmJiB0ZW1wbGF0ZVNwZWMudXNlRGF0YSkge1xuICAgICAgZGF0YSA9IGluaXREYXRhKGNvbnRleHQsIGRhdGEpO1xuICAgIH1cbiAgICBsZXQgZGVwdGhzLFxuICAgICAgICBibG9ja1BhcmFtcyA9IHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyA/IFtdIDogdW5kZWZpbmVkO1xuICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlRGVwdGhzKSB7XG4gICAgICBpZiAob3B0aW9ucy5kZXB0aHMpIHtcbiAgICAgICAgZGVwdGhzID0gY29udGV4dCAhPSBvcHRpb25zLmRlcHRoc1swXSA/IFtjb250ZXh0XS5jb25jYXQob3B0aW9ucy5kZXB0aHMpIDogb3B0aW9ucy5kZXB0aHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZXB0aHMgPSBbY29udGV4dF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFpbihjb250ZXh0LyosIG9wdGlvbnMqLykge1xuICAgICAgcmV0dXJuICcnICsgdGVtcGxhdGVTcGVjLm1haW4oY29udGFpbmVyLCBjb250ZXh0LCBjb250YWluZXIuaGVscGVycywgY29udGFpbmVyLnBhcnRpYWxzLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKTtcbiAgICB9XG4gICAgbWFpbiA9IGV4ZWN1dGVEZWNvcmF0b3JzKHRlbXBsYXRlU3BlYy5tYWluLCBtYWluLCBjb250YWluZXIsIG9wdGlvbnMuZGVwdGhzIHx8IFtdLCBkYXRhLCBibG9ja1BhcmFtcyk7XG4gICAgcmV0dXJuIG1haW4oY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cbiAgcmV0LmlzVG9wID0gdHJ1ZTtcblxuICByZXQuX3NldHVwID0gZnVuY3Rpb24ob3B0aW9ucykge1xuICAgIGlmICghb3B0aW9ucy5wYXJ0aWFsKSB7XG4gICAgICBjb250YWluZXIuaGVscGVycyA9IGNvbnRhaW5lci5tZXJnZShvcHRpb25zLmhlbHBlcnMsIGVudi5oZWxwZXJzKTtcblxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsKSB7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGNvbnRhaW5lci5tZXJnZShvcHRpb25zLnBhcnRpYWxzLCBlbnYucGFydGlhbHMpO1xuICAgICAgfVxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsIHx8IHRlbXBsYXRlU3BlYy51c2VEZWNvcmF0b3JzKSB7XG4gICAgICAgIGNvbnRhaW5lci5kZWNvcmF0b3JzID0gY29udGFpbmVyLm1lcmdlKG9wdGlvbnMuZGVjb3JhdG9ycywgZW52LmRlY29yYXRvcnMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250YWluZXIuaGVscGVycyA9IG9wdGlvbnMuaGVscGVycztcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IG9wdGlvbnMucGFydGlhbHM7XG4gICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IG9wdGlvbnMuZGVjb3JhdG9ycztcbiAgICB9XG4gIH07XG5cbiAgcmV0Ll9jaGlsZCA9IGZ1bmN0aW9uKGksIGRhdGEsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZUJsb2NrUGFyYW1zICYmICFibG9ja1BhcmFtcykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIGJsb2NrIHBhcmFtcycpO1xuICAgIH1cbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocyAmJiAhZGVwdGhzKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdtdXN0IHBhc3MgcGFyZW50IGRlcHRocycpO1xuICAgIH1cblxuICAgIHJldHVybiB3cmFwUHJvZ3JhbShjb250YWluZXIsIGksIHRlbXBsYXRlU3BlY1tpXSwgZGF0YSwgMCwgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwUHJvZ3JhbShjb250YWluZXIsIGksIGZuLCBkYXRhLCBkZWNsYXJlZEJsb2NrUGFyYW1zLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gIGZ1bmN0aW9uIHByb2coY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGN1cnJlbnREZXB0aHMgPSBkZXB0aHM7XG4gICAgaWYgKGRlcHRocyAmJiBjb250ZXh0ICE9IGRlcHRoc1swXSAmJiAhKGNvbnRleHQgPT09IGNvbnRhaW5lci5udWxsQ29udGV4dCAmJiBkZXB0aHNbMF0gPT09IG51bGwpKSB7XG4gICAgICBjdXJyZW50RGVwdGhzID0gW2NvbnRleHRdLmNvbmNhdChkZXB0aHMpO1xuICAgIH1cblxuICAgIHJldHVybiBmbihjb250YWluZXIsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGNvbnRhaW5lci5oZWxwZXJzLCBjb250YWluZXIucGFydGlhbHMsXG4gICAgICAgIG9wdGlvbnMuZGF0YSB8fCBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtcyAmJiBbb3B0aW9ucy5ibG9ja1BhcmFtc10uY29uY2F0KGJsb2NrUGFyYW1zKSxcbiAgICAgICAgY3VycmVudERlcHRocyk7XG4gIH1cblxuICBwcm9nID0gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcyk7XG5cbiAgcHJvZy5wcm9ncmFtID0gaTtcbiAgcHJvZy5kZXB0aCA9IGRlcHRocyA/IGRlcHRocy5sZW5ndGggOiAwO1xuICBwcm9nLmJsb2NrUGFyYW1zID0gZGVjbGFyZWRCbG9ja1BhcmFtcyB8fCAwO1xuICByZXR1cm4gcHJvZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgaWYgKG9wdGlvbnMubmFtZSA9PT0gJ0BwYXJ0aWFsLWJsb2NrJykge1xuICAgICAgcGFydGlhbCA9IG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdO1xuICAgIH1cbiAgfSBlbHNlIGlmICghcGFydGlhbC5jYWxsICYmICFvcHRpb25zLm5hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZHluYW1pYyBwYXJ0aWFsIHRoYXQgcmV0dXJuZWQgYSBzdHJpbmdcbiAgICBvcHRpb25zLm5hbWUgPSBwYXJ0aWFsO1xuICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW3BhcnRpYWxdO1xuICB9XG4gIHJldHVybiBwYXJ0aWFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlUGFydGlhbChwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gIC8vIFVzZSB0aGUgY3VycmVudCBjbG9zdXJlIGNvbnRleHQgdG8gc2F2ZSB0aGUgcGFydGlhbC1ibG9jayBpZiB0aGlzIHBhcnRpYWxcbiAgY29uc3QgY3VycmVudFBhcnRpYWxCbG9jayA9IG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXTtcbiAgb3B0aW9ucy5wYXJ0aWFsID0gdHJ1ZTtcbiAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoID0gb3B0aW9ucy5pZHNbMF0gfHwgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoO1xuICB9XG5cbiAgbGV0IHBhcnRpYWxCbG9jaztcbiAgaWYgKG9wdGlvbnMuZm4gJiYgb3B0aW9ucy5mbiAhPT0gbm9vcCkge1xuICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgLy8gV3JhcHBlciBmdW5jdGlvbiB0byBnZXQgYWNjZXNzIHRvIGN1cnJlbnRQYXJ0aWFsQmxvY2sgZnJvbSB0aGUgY2xvc3VyZVxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG4gICAgcGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBmdW5jdGlvbiBwYXJ0aWFsQmxvY2tXcmFwcGVyKGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuXG4gICAgICAvLyBSZXN0b3JlIHRoZSBwYXJ0aWFsLWJsb2NrIGZyb20gdGhlIGNsb3N1cmUgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhlIGJsb2NrXG4gICAgICAvLyBpLmUuIHRoZSBwYXJ0IGluc2lkZSB0aGUgYmxvY2sgb2YgdGhlIHBhcnRpYWwgY2FsbC5cbiAgICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgICBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXSA9IGN1cnJlbnRQYXJ0aWFsQmxvY2s7XG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBpZiAoZm4ucGFydGlhbHMpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHMgPSBVdGlscy5leHRlbmQoe30sIG9wdGlvbnMucGFydGlhbHMsIGZuLnBhcnRpYWxzKTtcbiAgICB9XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkICYmIHBhcnRpYWxCbG9jaykge1xuICAgIHBhcnRpYWwgPSBwYXJ0aWFsQmxvY2s7XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVGhlIHBhcnRpYWwgJyArIG9wdGlvbnMubmFtZSArICcgY291bGQgbm90IGJlIGZvdW5kJyk7XG4gIH0gZWxzZSBpZiAocGFydGlhbCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgcmV0dXJuIHBhcnRpYWwoY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vb3AoKSB7IHJldHVybiAnJzsgfVxuXG5mdW5jdGlvbiBpbml0RGF0YShjb250ZXh0LCBkYXRhKSB7XG4gIGlmICghZGF0YSB8fCAhKCdyb290JyBpbiBkYXRhKSkge1xuICAgIGRhdGEgPSBkYXRhID8gY3JlYXRlRnJhbWUoZGF0YSkgOiB7fTtcbiAgICBkYXRhLnJvb3QgPSBjb250ZXh0O1xuICB9XG4gIHJldHVybiBkYXRhO1xufVxuXG5mdW5jdGlvbiBleGVjdXRlRGVjb3JhdG9ycyhmbiwgcHJvZywgY29udGFpbmVyLCBkZXB0aHMsIGRhdGEsIGJsb2NrUGFyYW1zKSB7XG4gIGlmIChmbi5kZWNvcmF0b3IpIHtcbiAgICBsZXQgcHJvcHMgPSB7fTtcbiAgICBwcm9nID0gZm4uZGVjb3JhdG9yKHByb2csIHByb3BzLCBjb250YWluZXIsIGRlcHRocyAmJiBkZXB0aHNbMF0sIGRhdGEsIGJsb2NrUGFyYW1zLCBkZXB0aHMpO1xuICAgIFV0aWxzLmV4dGVuZChwcm9nLCBwcm9wcyk7XG4gIH1cbiAgcmV0dXJuIHByb2c7XG59XG4iXX0=\n","/* global window */\n'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n var root = typeof global !== 'undefined' ? global : window,\n $Handlebars = root.Handlebars;\n /* istanbul ignore next */\n Handlebars.noConflict = function () {\n if (root.Handlebars === Handlebars) {\n root.Handlebars = $Handlebars;\n }\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O3FCQUNlLFVBQVMsVUFBVSxFQUFFOztBQUVsQyxNQUFJLElBQUksR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLEdBQUcsTUFBTSxHQUFHLE1BQU07TUFDdEQsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7O0FBRWxDLFlBQVUsQ0FBQyxVQUFVLEdBQUcsWUFBVztBQUNqQyxRQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO0FBQ2xDLFVBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO0tBQy9CO0FBQ0QsV0FBTyxVQUFVLENBQUM7R0FDbkIsQ0FBQztDQUNIIiwiZmlsZSI6Im5vLWNvbmZsaWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIHdpbmRvdyAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oSGFuZGxlYmFycykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBsZXQgcm9vdCA9IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93LFxuICAgICAgJEhhbmRsZWJhcnMgPSByb290LkhhbmRsZWJhcnM7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIEhhbmRsZWJhcnMubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgIGlmIChyb290LkhhbmRsZWJhcnMgPT09IEhhbmRsZWJhcnMpIHtcbiAgICAgIHJvb3QuSGFuZGxlYmFycyA9ICRIYW5kbGViYXJzO1xuICAgIH1cbiAgICByZXR1cm4gSGFuZGxlYmFycztcbiAgfTtcbn1cbiJdfQ==\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(classname) {\n\tvar check = OCA.WorkflowEngine.getCheckByClass(classname);\n\tif (!_.isUndefined(check)) {\n\t\treturn check['operators'];\n\t}\n\treturn [];\n}\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.FileMimeTypePlugin = {\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\FileMimeType',\n\t\t\t\t'name': t('workflowengine', 'File MIME type'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not')},\n\t\t\t\t\t{'operator': 'matches', 'name': t('workflowengine', 'matches')},\n\t\t\t\t\t{'operator': '!matches', 'name': t('workflowengine', 'does not match')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\FileMimeType') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = 'text/plain';\n\t\t\tif (check['operator'] === 'matches' || check['operator'] === '!matches') {\n\t\t\t\tplaceholder = '/^text\\\\/(plain|html)$/i';\n\n\t\t\t\tif (this._validateRegex(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\t\t},\n\n\t\t_validateRegex: function(string) {\n\t\t\tvar regexRegex = /^\\/(.*)\\/([gui]{0,3})$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.FileMimeTypePlugin);\n","/**\n * @copyright Copyright (c) 2018 Daniel Kesselberg <mail@danielkesselberg.de>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function () {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.FileNamePlugin = {\n\t\tgetCheck: function () {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\FileName',\n\t\t\t\t'name': t('workflowengine', 'File name'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not')},\n\t\t\t\t\t{\n\t\t\t\t\t\t'operator': 'matches',\n\t\t\t\t\t\t'name': t('workflowengine', 'matches')\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'operator': '!matches',\n\t\t\t\t\t\t'name': t('workflowengine', 'does not match')\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function (element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\FileName') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = 'dummy.jpg';\n\t\t\tif (check['operator'] === 'matches' || check['operator'] === '!matches') {\n\t\t\t\tplaceholder = '/^dummy-.+$/i';\n\n\t\t\t\tif (this._validateRegex(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\t\t},\n\n\t\t_validateRegex: function (string) {\n\t\t\tvar regexRegex = /^\\/(.*)\\/([gui]{0,3})$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.FileNamePlugin);","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.FileSizePlugin = {\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSize',\n\t\t\t\t'name': t('workflowengine', 'File size (upload)'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'less', 'name': t('workflowengine', 'less')},\n\t\t\t\t\t{'operator': '!greater', 'name': t('workflowengine', 'less or equals')},\n\t\t\t\t\t{'operator': '!less', 'name': t('workflowengine', 'greater or equals')},\n\t\t\t\t\t{'operator': 'greater', 'name': t('workflowengine', 'greater')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSize') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = '12 MB'; // Do not translate!!!\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.FileSizePlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.FileSystemTagsPlugin = {\n\t\tgetCheck: function() {\n\t\t\tthis.collection = OC.SystemTags.collection;\n\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSystemTags',\n\t\t\t\t'name': t('workflowengine', 'File system tag'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is tagged with')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not tagged with')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSystemTags') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$(element).css('width', '400px');\n\n\t\t\t$(element).select2({\n\t\t\t\tallowClear: false,\n\t\t\t\tmultiple: false,\n\t\t\t\tplaceholder: t('workflowengine', 'Select tag…'),\n\t\t\t\tquery: _.debounce(function(query) {\n\t\t\t\t\tquery.callback({\n\t\t\t\t\t\tresults: OC.SystemTags.collection.filterByName(query.term)\n\t\t\t\t\t});\n\t\t\t\t}, 100, true),\n\t\t\t\tid: function(element) {\n\t\t\t\t\treturn element.get('id');\n\t\t\t\t},\n\t\t\t\tinitSelection: function(element, callback) {\n\t\t\t\t\tcallback($(element).val());\n\t\t\t\t},\n\t\t\t\tformatResult: function (tag) {\n\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag);\n\t\t\t\t},\n\t\t\t\tformatSelection: function (tagId) {\n\t\t\t\t\tvar tag = OC.SystemTags.collection.get(tagId);\n\t\t\t\t\tif (!_.isUndefined(tag)) {\n\t\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\treturn m;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.FileSystemTagsPlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.RequestRemoteAddressPlugin = {\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestRemoteAddress',\n\t\t\t\t'name': t('workflowengine', 'Request remote address'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'matchesIPv4', 'name': t('workflowengine', 'matches IPv4')},\n\t\t\t\t\t{'operator': '!matchesIPv4', 'name': t('workflowengine', 'does not match IPv4')},\n\t\t\t\t\t{'operator': 'matchesIPv6', 'name': t('workflowengine', 'matches IPv6')},\n\t\t\t\t\t{'operator': '!matchesIPv6', 'name': t('workflowengine', 'does not match IPv6')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestRemoteAddress') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = '127.0.0.1/32'; // Do not translate!!!\n\t\t\tif (check['operator'] === 'matchesIPv6' || check['operator'] === '!matchesIPv6') {\n\t\t\t\tplaceholder = '::1/128'; // Do not translate!!!\n\t\t\t\tif (this._validateIPv6(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this._validateIPv4(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$(element).css('width', '300px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\t\t},\n\n\t\t_validateIPv4: function(string) {\n\t\t\tvar regexRegex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\/(3[0-2]|[1-2][0-9]|[1-9])$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t},\n\n\t\t_validateIPv6: function(string) {\n\t\t\tvar regexRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(1([01][0-9]|2[0-8])|[1-9][0-9]|[0-9])$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.RequestRemoteAddressPlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.RequestTimePlugin = {\n\t\ttimezones: [\n\t\t\t\"Europe/Berlin\",\n\t\t\t\"Europe/London\"\n\t\t],\n\t\t_$element: null,\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestTime',\n\t\t\t\t'name': t('workflowengine', 'Request time'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'in', 'name': t('workflowengine', 'between')},\n\t\t\t\t\t{'operator': '!in', 'name': t('workflowengine', 'not between')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestTime') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar startTime = '09:00',\n\t\t\t\tendTime = '18:00',\n\t\t\t\ttimezone = jstz.determine().name(),\n\t\t\t\t$element = $(element);\n\n\t\t\tif (_.isString(check['value']) && check['value'] !== '') {\n\t\t\t\tvar value = JSON.parse(check['value']),\n\t\t\t\t\tsplittedStart = value[0].split(' ', 2),\n\t\t\t\t\tsplittedEnd = value[1].split(' ', 2);\n\n\t\t\t\tstartTime = splittedStart[0];\n\t\t\t\tendTime = splittedEnd[0];\n\t\t\t\ttimezone = splittedStart[1];\n\t\t\t}\n\n\t\t\tvar valueJSON = JSON.stringify([startTime + ' ' + timezone, endTime + ' ' + timezone]);\n\t\t\tif (check['value'] !== valueJSON) {\n\t\t\t\tcheck['value'] = valueJSON;\n\t\t\t\t$element.val(valueJSON);\n\t\t\t}\n\n\t\t\t$element.css('display', 'none');\n\n\t\t\t$('<input>')\n\t\t\t\t.attr('type', 'text')\n\t\t\t\t.attr('placeholder', t('workflowengine', 'Start'))\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: '16:00'}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t})\n\t\t\t\t.addClass('start')\n\t\t\t\t.val(startTime)\n\t\t\t\t.insertBefore($element);\n\t\t\t$('<input>')\n\t\t\t\t.attr('type', 'text')\n\t\t\t\t.attr('placeholder', t('workflowengine', 'End'))\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: '16:00'}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t})\n\t\t\t\t.addClass('end')\n\t\t\t\t.val(endTime)\n\t\t\t\t.insertBefore($element);\n\n\t\t\tvar timezoneInput = $('<input>')\n\t\t\t\t.attr('type', 'hidden')\n\t\t\t\t.css('width', '250px')\n\t\t\t\t.insertBefore($element)\n\t\t\t\t.val(timezone);\n\n\t\t\ttimezoneInput.select2({\n\t\t\t\tallowClear: false,\n\t\t\t\tmultiple: false,\n\t\t\t\tplaceholder: t('workflowengine', 'Select timezone…'),\n\t\t\t\tajax: {\n\t\t\t\t\turl: OC.generateUrl('apps/workflowengine/timezones'),\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tquietMillis: 100,\n\t\t\t\t\tdata: function (term) {\n\t\t\t\t\t\tif (term === '') {\n\t\t\t\t\t\t\t// Default search in the same continent...\n\t\t\t\t\t\t\tterm = jstz.determine().name().split('/');\n\t\t\t\t\t\t\tterm = term[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tsearch: term\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tresults: function (response) {\n\t\t\t\t\t\tvar results = [];\n\t\t\t\t\t\t$.each(response, function(timezone) {\n\t\t\t\t\t\t\tresults.push({ id: timezone });\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tresults: results,\n\t\t\t\t\t\t\tmore: false\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tinitSelection: function (element, callback) {\n\t\t\t\t\tcallback(element.val());\n\t\t\t\t},\n\t\t\t\tformatResult: function (element) {\n\t\t\t\t\treturn '<span>' + element.id + '</span>';\n\t\t\t\t},\n\t\t\t\tformatSelection: function (element) {\n\t\t\t\t\tif (!_.isUndefined(element.id)) {\n\t\t\t\t\t\telement = element.id;\n\t\t\t\t\t}\n\t\t\t\t\treturn '<span>' + element + '</span>';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Has to be added after select2 for `event.target.classList`\n\t\t\ttimezoneInput.addClass('timezone');\n\n\t\t\t$element.parent()\n\t\t\t\t.on('change', '.start', _.bind(this.update, this))\n\t\t\t\t.on('change', '.end', _.bind(this.update, this))\n\t\t\t\t.on('change', '.timezone', _.bind(this.update, this));\n\n\t\t\tthis._$element = $element;\n\t\t},\n\t\tupdate: function(event) {\n\t\t\tvar value = event.target.value,\n\t\t\t\tkey = null;\n\n\t\t\tfor (var i = 0; i < event.target.classList.length; i++) {\n\t\t\t\tkey = event.target.classList[i];\n\t\t\t}\n\n\t\t\tif (key === null) {\n\t\t\t\tconsole.warn('update triggered but element doesn\\'t have any class');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar data = JSON.parse(this._$element.val()),\n\t\t\t\tstartTime = moment(data[0].split(' ', 2)[0], 'H:m Z'),\n\t\t\t\tendTime = moment(data[1].split(' ', 2)[0], 'H:m Z'),\n\t\t\t\ttimezone = data[0].split(' ', 2)[1];\n\n\t\t\tif (key === 'start' || key === 'end') {\n\t\t\t\tvar parsedDate = moment(value, ['H:m', 'h:m a'], true).format('HH:mm');\n\n\t\t\t\tif (parsedDate === 'Invalid date') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar indexValue = 0;\n\t\t\t\tif (key === 'end') {\n\t\t\t\t\tindexValue = 1;\n\t\t\t\t}\n\t\t\t\tdata[indexValue] = parsedDate + ' ' + timezone;\n\t\t\t}\n\n\t\t\tif (key === 'timezone') {\n\t\t\t\tdata[0] = startTime.format('HH:mm') + ' ' + value;\n\t\t\t\tdata[1] = endTime.format('HH:mm') + ' ' + value;\n\t\t\t}\n\n\t\t\tthis._$element.val(JSON.stringify(data));\n\t\t\tthis._$element.trigger('change');\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.RequestTimePlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.RequestURLPlugin = {\n\t\tpredefinedValues: ['webdav'],\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestURL',\n\t\t\t\t'name': t('workflowengine', 'Request URL'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not')},\n\t\t\t\t\t{'operator': 'matches', 'name': t('workflowengine', 'matches')},\n\t\t\t\t\t{'operator': '!matches', 'name': t('workflowengine', 'does not match')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestURL') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = 'https://localhost/index.php';\n\n\t\t\tif (check['operator'] === 'matches' || check['operator'] === '!matches') {\n\t\t\t\tplaceholder = '/^https\\\\:\\\\/\\\\/localhost\\\\/index\\\\.php$/i';\n\t\t\t}\n\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\n\t\t\tif (check['operator'] === 'matches' || check['operator'] === '!matches') {\n\t\t\t\tif (this._validateRegex(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar self = this,\n\t\t\t\t\tdata = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: t('workflowengine', 'Predefined URLs'),\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{id: 'webdav', text: t('workflowengine', 'Files WebDAV')}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t];\n\t\t\t\tif (this.predefinedValues.indexOf(check['value']) === -1) {\n\t\t\t\t\tdata.unshift({\n\t\t\t\t\t\tid: check['value'],\n\t\t\t\t\t\ttext: check['value']\n\t\t\t\t\t})\n\t\t\t\t}\n\n\n\t\t\t\t$(element).select2({\n\t\t\t\t\tdata: data,\n\t\t\t\t\tcreateSearchChoice: function(term) {\n\t\t\t\t\t\tif (self.predefinedValues.indexOf(check['value']) === -1) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tid: term,\n\t\t\t\t\t\t\t\ttext: term\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tid: function(element) {\n\t\t\t\t\t\treturn element.id;\n\t\t\t\t\t},\n\t\t\t\t\tformatResult: function (tag) {\n\t\t\t\t\t\treturn tag.text;\n\t\t\t\t\t},\n\t\t\t\t\tformatSelection: function (tag) {\n\t\t\t\t\t\treturn tag.text;\n\t\t\t\t\t},\n\t\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\t\treturn m;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t_validateRegex: function(string) {\n\t\t\tvar regexRegex = /^\\/(.*)\\/([gui]{0,3})$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.RequestURLPlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.RequestUserAgentPlugin = {\n\t\tpredefinedValues: ['android', 'ios', 'desktop'],\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestUserAgent',\n\t\t\t\t'name': t('workflowengine', 'Request user agent'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not')},\n\t\t\t\t\t{'operator': 'matches', 'name': t('workflowengine', 'matches')},\n\t\t\t\t\t{'operator': '!matches', 'name': t('workflowengine', 'does not match')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestUserAgent') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = 'Mozilla/5.0 User Agent';\n\n\t\t\tif (check.operator === 'matches' || check.operator === '!matches') {\n\t\t\t\tplaceholder = '/^Mozilla\\\\/5\\\\.0 (.*)$/i';\n\t\t\t}\n\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\n\t\t\tif (check.operator === 'matches' || check.operator === '!matches') {\n\t\t\t\tif (this._validateRegex(check.value)) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar self = this,\n\t\t\t\t\tdata = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: t('workflowengine', 'Sync clients'),\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{id: 'android', text: t('workflowengine', 'Android client')},\n\t\t\t\t\t\t\t{id: 'ios', text: t('workflowengine', 'iOS client')},\n\t\t\t\t\t\t\t{id: 'desktop', text: t('workflowengine', 'Desktop client')},\n\t\t\t\t\t\t\t{id: 'mail', text: t('workflowengine', 'Thunderbird & Outlook addons')}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t];\n\t\t\t\tif (this.predefinedValues.indexOf(check.value) === -1) {\n\t\t\t\t\tdata.unshift({\n\t\t\t\t\t\tid: check.value,\n\t\t\t\t\t\ttext: check.value\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t$(element).select2({\n\t\t\t\t\tdata: data,\n\t\t\t\t\tcreateSearchChoice: function(term) {\n\t\t\t\t\t\tif (self.predefinedValues.indexOf(check.value) === -1) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tid: term,\n\t\t\t\t\t\t\t\ttext: term\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tid: function(element) {\n\t\t\t\t\t\treturn element.id;\n\t\t\t\t\t},\n\t\t\t\t\tformatResult: function (tag) {\n\t\t\t\t\t\treturn tag.text;\n\t\t\t\t\t},\n\t\t\t\t\tformatSelection: function (tag) {\n\t\t\t\t\t\treturn tag.text;\n\t\t\t\t\t},\n\t\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\t\treturn m;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t_validateRegex: function(string) {\n\t\t\tvar regexRegex = /^\\/(.*)\\/([gui]{0,3})$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.RequestUserAgentPlugin);\n","/**\n * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.UserGroupMembershipPlugin = {\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\UserGroupMembership',\n\t\t\t\t'name': t('workflowengine', 'User group membership'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is member of')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not member of')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check, groups) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\UserGroupMembership') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$(element).css('width', '400px');\n\n\t\t\t$(element).select2({\n\t\t\t\tdata: { results: groups, text: 'displayname' },\n\t\t\t\tinitSelection: function (element, callback) {\n\t\t\t\t\tvar groupId = element.val();\n\t\t\t\t\tif (groupId && groups.length > 0) {\n\t\t\t\t\t\tcallback({\n\t\t\t\t\t\t\tid: groupId,\n\t\t\t\t\t\t\tdisplayname: groups.find(function (group) {\n\t\t\t\t\t\t\t\treturn group.id === groupId;\n\t\t\t\t\t\t\t}).displayname\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (groupId) {\n\t\t\t\t\t\tcallback({\n\t\t\t\t\t\t\tid: groupId,\n\t\t\t\t\t\t\tdisplayname: groupId\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tformatResult: function (element) {\n\t\t\t\t\treturn '<span>' + escapeHTML(element.displayname) + '</span>';\n\t\t\t\t},\n\t\t\t\tformatSelection: function (element) {\n\t\t\t\t\treturn '<span title=\"'+escapeHTML(element.id)+'\">'+escapeHTML(element.displayname)+'</span>';\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.UserGroupMembershipPlugin);\n","/**\n * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport OperationTemplate from './templates/operation.handlebars';\nimport OperationsTemplate from './templates/operations.handlebars';\n\n(function() {\n\tOCA.WorkflowEngine = _.extend(OCA.WorkflowEngine || {}, {\n\t\tavailablePlugins: [],\n\t\tavailableChecks: [],\n\n\t\tgetCheckByClass: function(className) {\n\t\t\tvar length = OCA.WorkflowEngine.availableChecks.length;\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tif (OCA.WorkflowEngine.availableChecks[i]['class'] === className) {\n\t\t\t\t\treturn OCA.WorkflowEngine.availableChecks[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\t});\n\n\t/**\n\t * 888b d888 888 888\n\t * 8888b d8888 888 888\n\t * 88888b.d88888 888 888\n\t * 888Y88888P888 .d88b. .d88888 .d88b. 888 .d8888b\n\t * 888 Y888P 888 d88\"\"88b d88\" 888 d8P Y8b 888 88K\n\t * 888 Y8P 888 888 888 888 888 88888888 888 \"Y8888b.\n\t * 888 \" 888 Y88..88P Y88b 888 Y8b. 888 X88\n\t * 888 888 \"Y88P\" \"Y88888 \"Y8888 888 88888P'\n\t */\n\n\t/**\n\t * @class OCA.WorkflowEngine.Operation\n\t */\n\tOCA.WorkflowEngine.Operation =\n\t\tOC.Backbone.Model.extend({\n\t\t\tdefaults: {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Operation',\n\t\t\t\t'name': '',\n\t\t\t\t'checks': [],\n\t\t\t\t'operation': ''\n\t\t\t}\n\t\t});\n\n\t/**\n\t * .d8888b. 888 888 888 d8b\n\t * d88P Y88b 888 888 888 Y8P\n\t * 888 888 888 888 888\n\t * 888 .d88b. 888 888 .d88b. .d8888b 888888 888 .d88b. 88888b. .d8888b\n\t * 888 d88\"\"88b 888 888 d8P Y8b d88P\" 888 888 d88\"\"88b 888 \"88b 88K\n\t * 888 888 888 888 888 888 88888888 888 888 888 888 888 888 888 \"Y8888b.\n\t * Y88b d88P Y88..88P 888 888 Y8b. Y88b. Y88b. 888 Y88..88P 888 888 X88\n\t * \"Y8888P\" \"Y88P\" 888 888 \"Y8888 \"Y8888P \"Y888 888 \"Y88P\" 888 888 88888P'\n\t */\n\n\t/**\n\t * @class OCA.WorkflowEngine.OperationsCollection\n\t *\n\t * collection for all configurated operations\n\t */\n\tOCA.WorkflowEngine.OperationsCollection =\n\t\tOC.Backbone.Collection.extend({\n\t\t\tmodel: OCA.WorkflowEngine.Operation,\n\t\t\turl: OC.generateUrl('apps/workflowengine/operations')\n\t\t});\n\n\t/**\n\t * 888 888 d8b\n\t * 888 888 Y8P\n\t * 888 888\n\t * Y88b d88P 888 .d88b. 888 888 888 .d8888b\n\t * Y88b d88P 888 d8P Y8b 888 888 888 88K\n\t * Y88o88P 888 88888888 888 888 888 \"Y8888b.\n\t * Y888P 888 Y8b. Y88b 888 d88P X88\n\t * Y8P 888 \"Y8888 \"Y8888888P\" 88888P'\n\t */\n\n\t/**\n\t * @class OCA.WorkflowEngine.OperationView\n\t *\n\t * this creates the view for a single operation\n\t */\n\tOCA.WorkflowEngine.OperationView =\n\t\tOC.Backbone.View.extend({\n\t\t\ttemplateId: '#operation-template',\n\t\t\tevents: {\n\t\t\t\t'change .check-class': 'checkChanged',\n\t\t\t\t'change .check-operator': 'checkChanged',\n\t\t\t\t'change .check-value': 'checkChanged',\n\t\t\t\t'change .operation-name': 'operationChanged',\n\t\t\t\t'change .operation-operation': 'operationChanged',\n\t\t\t\t'click .button-reset': 'reset',\n\t\t\t\t'click .button-save': 'save',\n\t\t\t\t'click .button-add': 'add',\n\t\t\t\t'click .button-delete': 'delete',\n\t\t\t\t'click .button-delete-check': 'deleteCheck'\n\t\t\t},\n\t\t\toriginalModel: null,\n\t\t\thasChanged: false,\n\t\t\tmessage: '',\n\t\t\terrorMessage: '',\n\t\t\tsaving: false,\n\t\t\tgroups: [],\n\t\t\ttemplate: function(vars) {\n\t\t\t\treturn OperationTemplate(_.extend(\n\t\t\t\t\t{\n\t\t\t\t\t\tshortRuleDescTXT: t('workflowengine', 'Short rule description'),\n\t\t\t\t\t\taddRuleTXT: t('workflowengine', 'Add rule'),\n\t\t\t\t\t\tresetTXT: t('workflowengine', 'Reset'),\n\t\t\t\t\t\tsaveTXT: t('workflowengine', 'Save'),\n\t\t\t\t\t\tsavingTXT: t('workflowengine', 'Saving…')\n\t\t\t\t\t},\n\t\t\t\t\tvars\n\t\t\t\t));\n\t\t\t},\n\t\t\tinitialize: function() {\n\t\t\t\t// this creates a new copy of the object to definitely have a new reference and being able to reset the model\n\t\t\t\tthis.originalModel = JSON.parse(JSON.stringify(this.model));\n\t\t\t\tthis.model.on('change', function() {\n\t\t\t\t\tconsole.log('model changed');\n\t\t\t\t\tthis.hasChanged = true;\n\t\t\t\t\tthis.render();\n\t\t\t\t}, this);\n\n\t\t\t\tif (this.model.get('id') === undefined) {\n\t\t\t\t\tthis.hasChanged = true;\n\t\t\t\t}\n\t\t\t\tvar self = this;\n\t\t\t\t$.ajax({\n\t\t\t\t\turl: OC.linkToOCS('cloud/groups', 2) + 'details',\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tquietMillis: 100,\n\t\t\t\t}).success(function(data) {\n\t\t\t\t\tif (data.ocs.data.groups && data.ocs.data.groups.length > 0) {\n\n\t\t\t\t\t\tdata.ocs.data.groups.forEach(function(group) {\n\t\t\t\t\t\t\tself.groups.push({ id: group.id, displayname: group.displayname });\n\t\t\t\t\t\t});\n\t\t\t\t\t\tself.render();\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tOC.Notification.error(t('workflowengine', 'Group list is empty'), { type: 'error' });\n\t\t\t\t\t\tconsole.log(data);\n\t\t\t\t\t}\n\t\t\t\t}).error(function(data) {\n\t\t\t\t\tOC.Notification.error(t('workflowengine', 'Unable to retrieve the group list'), { type: 'error' });\n\t\t\t\t\tconsole.log(data);\n\t\t\t\t});\n\t\t\t},\n\t\t\tdelete: function() {\n\t\t\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.delete, this));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.model.destroy();\n\t\t\t\tthis.remove();\n\t\t\t},\n\t\t\treset: function() {\n\t\t\t\tthis.hasChanged = false;\n\t\t\t\t// silent is need to not trigger the change event which resets the hasChanged attribute\n\t\t\t\tthis.model.set(this.originalModel, { silent: true });\n\t\t\t\tthis.render();\n\t\t\t},\n\t\t\tsave: function() {\n\t\t\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.save, this));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar success = function(model, response, options) {\n\t\t\t\t\tthis.saving = false;\n\t\t\t\t\tthis.originalModel = JSON.parse(JSON.stringify(this.model));\n\n\t\t\t\t\tthis.message = t('workflowengine', 'Saved');\n\t\t\t\t\tthis.errorMessage = '';\n\t\t\t\t\tthis.render();\n\t\t\t\t};\n\t\t\t\tvar error = function(model, response, options) {\n\t\t\t\t\tthis.saving = false;\n\t\t\t\t\tthis.hasChanged = true;\n\n\t\t\t\t\tthis.message = t('workflowengine', 'Saving failed:');\n\t\t\t\t\tthis.errorMessage = response.responseText;\n\t\t\t\t\tthis.render();\n\t\t\t\t};\n\t\t\t\tthis.hasChanged = false;\n\t\t\t\tthis.saving = true;\n\t\t\t\tthis.render();\n\t\t\t\tthis.model.save(null, { success: success, error: error, context: this });\n\t\t\t},\n\t\t\tadd: function() {\n\t\t\t\tvar checks = _.clone(this.model.get('checks')),\n\t\t\t\t\tclassname = OCA.WorkflowEngine.availableChecks[0]['class'],\n\t\t\t\t\toperators = OCA.WorkflowEngine.availableChecks[0]['operators'];\n\n\t\t\t\tchecks.push({\n\t\t\t\t\t'class': classname,\n\t\t\t\t\t'operator': operators[0]['operator'],\n\t\t\t\t\t'value': ''\n\t\t\t\t});\n\t\t\t\tthis.model.set({ 'checks': checks });\n\t\t\t},\n\t\t\tcheckChanged: function(event) {\n\t\t\t\tvar value = event.target.value,\n\t\t\t\t\tid = $(event.target.parentElement).data('id'),\n\t\t\t\t\t// this creates a new copy of the object to definitely have a new reference\n\t\t\t\t\tchecks = JSON.parse(JSON.stringify(this.model.get('checks'))),\n\t\t\t\t\tkey = null;\n\n\t\t\t\tfor (var i = 0; i < event.target.classList.length; i++) {\n\t\t\t\t\tvar className = event.target.classList[i];\n\t\t\t\t\tif (className.substr(0, 'check-'.length) === 'check-') {\n\t\t\t\t\t\tkey = className.substr('check-'.length);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (key === null) {\n\t\t\t\t\tconsole.warn('checkChanged triggered but element doesn\\'t have any \"check-\" class');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!_.has(checks[id], key)) {\n\t\t\t\t\tconsole.warn('key \"' + key + '\" is not available in check', check);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tchecks[id][key] = value;\n\t\t\t\t// if the class is changed most likely also the operators have changed\n\t\t\t\t// with this we set the operator to the first possible operator\n\t\t\t\tif (key === 'class') {\n\t\t\t\t\tvar check = OCA.WorkflowEngine.getCheckByClass(value);\n\t\t\t\t\tif (!_.isUndefined(check)) {\n\t\t\t\t\t\tchecks[id]['operator'] = check['operators'][0]['operator'];\n\t\t\t\t\t\tchecks[id]['value'] = '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// model change will trigger render\n\t\t\t\tthis.model.set({ 'checks': checks });\n\t\t\t},\n\t\t\tdeleteCheck: function(event) {\n\t\t\t\tconsole.log(arguments);\n\t\t\t\tvar id = $(event.target.parentElement).data('id'),\n\t\t\t\t\tchecks = JSON.parse(JSON.stringify(this.model.get('checks')));\n\n\t\t\t\t// splice removes 1 element at index `id`\n\t\t\t\tchecks.splice(id, 1);\n\t\t\t\t// model change will trigger render\n\t\t\t\tthis.model.set({ 'checks': checks });\n\t\t\t},\n\t\t\toperationChanged: function(event) {\n\t\t\t\tvar value = event.target.value,\n\t\t\t\t\tkey = null;\n\n\t\t\t\tfor (var i = 0; i < event.target.classList.length; i++) {\n\t\t\t\t\tvar className = event.target.classList[i];\n\t\t\t\t\tif (className.substr(0, 'operation-'.length) === 'operation-') {\n\t\t\t\t\t\tkey = className.substr('operation-'.length);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (key === null) {\n\t\t\t\t\tconsole.warn('operationChanged triggered but element doesn\\'t have any \"operation-\" class');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (key !== 'name' && key !== 'operation') {\n\t\t\t\t\tconsole.warn('key \"' + key + '\" is no valid attribute');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// model change will trigger render\n\t\t\t\tthis.model.set(key, value);\n\t\t\t},\n\t\t\trender: function() {\n\t\t\t\tthis.$el.html(this.template({\n\t\t\t\t\toperation: this.model.toJSON(),\n\t\t\t\t\tclasses: OCA.WorkflowEngine.availableChecks,\n\t\t\t\t\thasChanged: this.hasChanged,\n\t\t\t\t\tmessage: this.message,\n\t\t\t\t\terrorMessage: this.errorMessage,\n\t\t\t\t\tsaving: this.saving\n\t\t\t\t}));\n\n\t\t\t\tvar checks = this.model.get('checks');\n\t\t\t\t_.each(this.$el.find('.check'), function(element) {\n\t\t\t\t\tvar $element = $(element),\n\t\t\t\t\t\tid = $element.data('id'),\n\t\t\t\t\t\tcheck = checks[id],\n\t\t\t\t\t\tvalueElement = $element.find('.check-value').first();\n\t\t\t\t\tvar self = this;\n\n\t\t\t\t\t_.each(OCA.WorkflowEngine.availablePlugins, function(plugin) {\n\t\t\t\t\t\tif (_.isFunction(plugin.render)) {\n\t\t\t\t\t\t\tplugin.render(valueElement, check, self.groups);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}, this);\n\n\t\t\t\tif (this.message !== '') {\n\t\t\t\t\t// hide success messages after some time\n\t\t\t\t\t_.delay(function(elements) {\n\t\t\t\t\t\t$(elements).css('opacity', 0);\n\t\t\t\t\t}, 7000, this.$el.find('.msg.success'));\n\t\t\t\t\tthis.message = '';\n\t\t\t\t}\n\n\t\t\t\treturn this.$el;\n\t\t\t}\n\t\t});\n\n\t/**\n\t * @class OCA.WorkflowEngine.OperationsView\n\t *\n\t * this creates the view for configured operations\n\t */\n\tOCA.WorkflowEngine.OperationsView =\n\t\tOC.Backbone.View.extend({\n\t\t\ttemplateId: '#operations-template',\n\t\t\tcollection: null,\n\t\t\t$el: null,\n\t\t\tevents: {\n\t\t\t\t'click .button-add-operation': 'add'\n\t\t\t},\n\t\t\ttemplate: function(vars) {\n\t\t\t\treturn OperationsTemplate(_.extend(\n\t\t\t\t\t{\n\t\t\t\t\t\taddRuleGroupTXT: t('workflowengine', 'Add rule group')\n\t\t\t\t\t},\n\t\t\t\t\tvars\n\t\t\t\t));\n\t\t\t},\n\t\t\tinitialize: function(classname) {\n\t\t\t\tif (!OCA.WorkflowEngine.availablePlugins.length) {\n\t\t\t\t\tOCA.WorkflowEngine.availablePlugins = OC.Plugins.getPlugins('OCA.WorkflowEngine.CheckPlugins');\n\t\t\t\t\t_.each(OCA.WorkflowEngine.availablePlugins, function(plugin) {\n\t\t\t\t\t\tif (_.isFunction(plugin.getCheck)) {\n\t\t\t\t\t\t\tOCA.WorkflowEngine.availableChecks.push(plugin.getCheck(classname));\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.collection.fetch({\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t'class': classname\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tthis.collection.once('sync', this.render, this);\n\t\t\t},\n\t\t\tadd: function() {\n\t\t\t\tvar operation = this.collection.create();\n\t\t\t\tthis.renderOperation(operation);\n\t\t\t},\n\t\t\trenderOperation: function(subView) {\n\t\t\t\tvar operationsElement = this.$el.find('.operations');\n\t\t\t\toperationsElement.append(subView.$el);\n\t\t\t\tsubView.render();\n\t\t\t},\n\t\t\trender: function() {\n\t\t\t\tthis.$el.html(this.template());\n\t\t\t\tthis.collection.each(this.renderOperation, this);\n\t\t\t}\n\t\t});\n})();\n","import './admin'\nimport './filemimetypeplugin'\nimport './filenameplugin'\nimport './filesizeplugin'\nimport './filesystemtagsplugin'\nimport './requestremoteaddressplugin'\nimport './requesttimeplugin'\nimport './requesturlplugin'\nimport './requestuseragentplugin'\nimport './usergroupmembershipplugin'\n\nwindow.OCA.WorkflowEngine = OCA.WorkflowEngine\n"],"sourceRoot":""}
\ No newline at end of file diff --git a/apps/workflowengine/webpack.js b/apps/workflowengine/webpack.js index 1d7ec1595a1..80ec96da675 100644 --- a/apps/workflowengine/webpack.js +++ b/apps/workflowengine/webpack.js @@ -10,9 +10,10 @@ module.exports = { module: { rules: [ { - test: /\.handlebars$/, + test: /\.handlebars/, loader: "handlebars-loader", - options: { + query: { + extensions: '.handlebars', helperDirs: path.join(__dirname, 'src/hbs_helpers'), } } |