diff --git a/dist/blocks-source.js b/dist/blocks-source.js index 84c28ae..602d933 100644 --- a/dist/blocks-source.js +++ b/dist/blocks-source.js @@ -4981,7 +4981,7 @@ return result; } }, - updateChildren: function (domQuery, collection, domElement) { + updateChildren: function (collection, updateCount, domQuery, domElement) { var template = this._template; var child = template[0]; var isOneChild = template.length === 1 && VirtualElement.Is(child); @@ -4989,11 +4989,10 @@ return result; var syncIndex = domQuery.getSyncIndex(); var childContexts = domQuery._context.childs; var chunkLength = this._length(); - var length = Math.min(collection.length, childNodes.length); var index = -1; var context; - while (++index < length) { + while (++index < updateCount) { domQuery._context = context = childContexts[index]; context.$this = collection[index]; context.$parent = context.$parentContext.$this; @@ -5882,8 +5881,12 @@ return result; elementData.haveData = true; if (!elementData.execute) { elementData.execute = []; + elementData.executeHash = {}; + } + if (!elementData.executeHash[methods[i].query]) { + elementData.execute.push(methods[i]); + elementData.executeHash[methods[i].query] = true; } - elementData.execute.push(methods[i]); continue; } Observer.startObserving(); @@ -7277,6 +7280,7 @@ return result; */ update: function () { var elements = this._elements; + var elementData; var domQuery; var context; var element; @@ -7288,7 +7292,8 @@ return result; context = expression.context; if (!element) { - element = expression.element = ElementsData.data(expression.elementId).dom; + elementData = ElementsData.data(expression.elementId); + element = expression.element = elementData.dom; } try { @@ -7302,15 +7307,22 @@ return result; offset = expression.length - value.length; expression.length = value.length; - if (expression.attr) { - element.setAttribute(expression.attr, Expression.GetValue(context, null, expression.entire)); - } else { - if (element.nextSibling) { - element = element.nextSibling; - element.nodeValue = value + element.nodeValue.substring(expression.length + offset); + if (element) { + if (expression.attr) { + element.setAttribute(expression.attr, Expression.GetValue(context, null, expression.entire)); } else { - element.parentNode.appendChild(document.createTextNode(value)); - } + if (element.nextSibling) { + element = element.nextSibling; + element.nodeValue = value + element.nodeValue.substring(expression.length + offset); + } else { + element.parentNode.appendChild(document.createTextNode(value)); + } + } + } else { + element = elementData.virtual; + if (expression.attr) { + element.attr(expression.attr, Expression.GetValue(context, null, expression.entire)); + } } }); @@ -7443,12 +7455,13 @@ return result; return this; } + array = blocks.unwrap(array); + var current = this.__value__; var chunkManager = this._chunkManager; var addCount = array.length - current.length; var removeCount = Math.max(current.length - array.length, 0); - - array = blocks.unwrap(array); + var updateCount = array.length - addCount; Events.trigger(this, 'removing', { type: 'removing', @@ -7461,12 +7474,12 @@ return result; items: array, index: 0 }); - + chunkManager.each(function (domElement, virtualElement) { var domQuery = blocks.domQuery(domElement); domQuery.contextBubble(blocks.context(domElement), function () { - virtualElement.updateChildren(domQuery, array, domElement); + virtualElement.updateChildren(array, updateCount, domQuery, domElement); }); }); @@ -7996,6 +8009,22 @@ return result; newObservable.view._initialized = false; newObservable.view.on('get', newObservable._getter); + + newObservable.on('add', function () { + if (newObservable.view._initialized) { + newObservable.view._connections = {}; + newObservable.view.reset(); + ExtenderHelper.executeOperations(newObservable); + } + }); + + newObservable.on('remove', function () { + if (newObservable.view._initialized) { + newObservable.view._connections = {}; + newObservable.view.reset(); + ExtenderHelper.executeOperations(newObservable); + } + }); return newObservable; }, @@ -8213,22 +8242,6 @@ return result; filter: callback }); - observable.on('add', function () { - if (observable.view._initialized) { - observable.view._connections = {}; - observable.view.reset(); - ExtenderHelper.executeOperations(observable); - } - }); - - observable.on('remove', function () { - if (observable.view._initialized) { - observable.view._connections = {}; - observable.view.reset(); - ExtenderHelper.executeOperations(observable); - } - }); - return observable; }; @@ -10530,7 +10543,7 @@ return result; */ read: function (params, callback) { // TODO: Write tests for the callback checking if it is being called - var context = this.__context__; + var _this = this; if (blocks.isFunction(params)) { callback = params; @@ -10539,7 +10552,7 @@ return result; this._dataSource.read({ data: params }, callback ? function () { - callback.call(context); + callback.call(_this.__context__); } : blocks.noop); return this; @@ -11215,11 +11228,7 @@ return result; this._started = true; this._serverData = window.__blocksServerData__; this._createViews(); - if (document.__mock__ && window.__mock__) { - this._ready(element); - } else { - blocks.domReady(blocks.bind(this._ready, this, element)); - } + blocks.domReady(blocks.bind(this._ready, this, element)); } }, @@ -11230,13 +11239,17 @@ return result; }, this)); }, this); }, - - _ready: function (element) { - this._serverData = window.__blocksServerData__; + + _startHistory: function () { this._history = new History(this.options); this._history .on('urlChange', blocks.bind(this._urlChange, this)) .start(); + }, + + _ready: function (element) { + this._serverData = window.__blocksServerData__; + this._startHistory(); blocks.query(this, element); this._viewsReady(this._views); }, diff --git a/dist/blocks.js b/dist/blocks.js index d0fb324..b6e5bae 100644 --- a/dist/blocks.js +++ b/dist/blocks.js @@ -7932,7 +7932,7 @@ return result; } }, - updateChildren: function (domQuery, collection, domElement) { + updateChildren: function (collection, updateCount, domQuery, domElement) { var template = this._template; var child = template[0]; var isOneChild = template.length === 1 && VirtualElement.Is(child); @@ -7940,11 +7940,10 @@ return result; var syncIndex = domQuery.getSyncIndex(); var childContexts = domQuery._context.childs; var chunkLength = this._length(); - var length = Math.min(collection.length, childNodes.length); var index = -1; var context; - while (++index < length) { + while (++index < updateCount) { domQuery._context = context = childContexts[index]; context.$this = collection[index]; context.$parent = context.$parentContext.$this; @@ -8833,8 +8832,12 @@ return result; elementData.haveData = true; if (!elementData.execute) { elementData.execute = []; + elementData.executeHash = {}; + } + if (!elementData.executeHash[methods[i].query]) { + elementData.execute.push(methods[i]); + elementData.executeHash[methods[i].query] = true; } - elementData.execute.push(methods[i]); continue; } Observer.startObserving(); @@ -10243,6 +10246,7 @@ return result; */ update: function () { var elements = this._elements; + var elementData; var domQuery; var context; var element; @@ -10254,7 +10258,8 @@ return result; context = expression.context; if (!element) { - element = expression.element = ElementsData.data(expression.elementId).dom; + elementData = ElementsData.data(expression.elementId); + element = expression.element = elementData.dom; } try { @@ -10268,15 +10273,22 @@ return result; offset = expression.length - value.length; expression.length = value.length; - if (expression.attr) { - element.setAttribute(expression.attr, Expression.GetValue(context, null, expression.entire)); - } else { - if (element.nextSibling) { - element = element.nextSibling; - element.nodeValue = value + element.nodeValue.substring(expression.length + offset); + if (element) { + if (expression.attr) { + element.setAttribute(expression.attr, Expression.GetValue(context, null, expression.entire)); } else { - element.parentNode.appendChild(document.createTextNode(value)); - } + if (element.nextSibling) { + element = element.nextSibling; + element.nodeValue = value + element.nodeValue.substring(expression.length + offset); + } else { + element.parentNode.appendChild(document.createTextNode(value)); + } + } + } else { + element = elementData.virtual; + if (expression.attr) { + element.attr(expression.attr, Expression.GetValue(context, null, expression.entire)); + } } }); @@ -10409,12 +10421,13 @@ return result; return this; } + array = blocks.unwrap(array); + var current = this.__value__; var chunkManager = this._chunkManager; var addCount = array.length - current.length; var removeCount = Math.max(current.length - array.length, 0); - - array = blocks.unwrap(array); + var updateCount = array.length - addCount; Events.trigger(this, 'removing', { type: 'removing', @@ -10427,12 +10440,12 @@ return result; items: array, index: 0 }); - + chunkManager.each(function (domElement, virtualElement) { var domQuery = blocks.domQuery(domElement); domQuery.contextBubble(blocks.context(domElement), function () { - virtualElement.updateChildren(domQuery, array, domElement); + virtualElement.updateChildren(array, updateCount, domQuery, domElement); }); }); @@ -10962,6 +10975,22 @@ return result; newObservable.view._initialized = false; newObservable.view.on('get', newObservable._getter); + + newObservable.on('add', function () { + if (newObservable.view._initialized) { + newObservable.view._connections = {}; + newObservable.view.reset(); + ExtenderHelper.executeOperations(newObservable); + } + }); + + newObservable.on('remove', function () { + if (newObservable.view._initialized) { + newObservable.view._connections = {}; + newObservable.view.reset(); + ExtenderHelper.executeOperations(newObservable); + } + }); return newObservable; }, @@ -11179,22 +11208,6 @@ return result; filter: callback }); - observable.on('add', function () { - if (observable.view._initialized) { - observable.view._connections = {}; - observable.view.reset(); - ExtenderHelper.executeOperations(observable); - } - }); - - observable.on('remove', function () { - if (observable.view._initialized) { - observable.view._connections = {}; - observable.view.reset(); - ExtenderHelper.executeOperations(observable); - } - }); - return observable; }; @@ -13496,7 +13509,7 @@ return result; */ read: function (params, callback) { // TODO: Write tests for the callback checking if it is being called - var context = this.__context__; + var _this = this; if (blocks.isFunction(params)) { callback = params; @@ -13505,7 +13518,7 @@ return result; this._dataSource.read({ data: params }, callback ? function () { - callback.call(context); + callback.call(_this.__context__); } : blocks.noop); return this; @@ -14188,11 +14201,7 @@ return result; this._started = true; this._serverData = window.__blocksServerData__; this._createViews(); - if (document.__mock__ && window.__mock__) { - this._ready(element); - } else { - blocks.domReady(blocks.bind(this._ready, this, element)); - } + blocks.domReady(blocks.bind(this._ready, this, element)); } }, @@ -14203,13 +14212,17 @@ return result; }, this)); }, this); }, - - _ready: function (element) { - this._serverData = window.__blocksServerData__; + + _startHistory: function () { this._history = new History(this.options); this._history .on('urlChange', blocks.bind(this._urlChange, this)) .start(); + }, + + _ready: function (element) { + this._serverData = window.__blocksServerData__; + this._startHistory(); blocks.query(this, element); this._viewsReady(this._views); }, diff --git a/dist/blocks.min.js b/dist/blocks.min.js index cd687cf..ce4cfee 100644 --- a/dist/blocks.min.js +++ b/dist/blocks.min.js @@ -1,5 +1,5 @@ !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=b(a,!0):b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a,b,d,e,g){if(g!==!1&&(g=!0),a===b)return 0!==a||1/a==1/b;if(null==a||null==b)return a===b;a instanceof l&&(a=a._wrapped),b instanceof l&&(b=b._wrapped);var h=f.call(a);if(h!=f.call(b))return!1;switch(h){case"[object String]":return a==String(b);case"[object Number]":return a!=+a?b!=+b:0===a?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if("object"!=typeof a||"object"!=typeof b)return!1;for(var i=d.length;i--;)if(d[i]==a)return e[i]==b;var j=a.constructor,k=b.constructor;if(j!==k&&!(l.isFunction(j)&&j instanceof j&&l.isFunction(k)&&k instanceof k)&&"constructor"in a&&"constructor"in b)return!1;d.push(a),e.push(b);var m=0,n=!0;if("[object Array]"==h){if(m=a.length,n=m==b.length)for(;m--&&(n=g?c(a[m],b[m],d,e,g):a[m]===b[m]););}else{for(var o in a)if(l.has(a,o)&&(m++,!(n=l.has(b,o)&&(g?c(a[o],b[o],d,e,g):a[o]===b[o]))))break;if(n){for(o in b)if(l.has(b,o)&&!m--)break;n=!m}}return d.pop(),e.pop(),n}function d(a,b){var c,d,e=this.__Class__;return l.isString(a)?d=e.prototype[a]:(b=a,d=e),this.__Class__=e.prototype.__Class__,c=d.apply(this,b||[]),this.__Class__=e,c}function e(a,b){if(null!=b){var c=a;a=function(a,d,e){return c.call(b,a,d,e)}}return a}var f=Object.prototype.toString,g=Array.prototype.slice,h=Object.prototype.hasOwnProperty,j={},k={},l=function(a){return k.expressionsCreated?0===arguments.length?k.staticExpression:k.createExpression(a):a};l.version="0.3.0",l.core=k,l.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[1]||{},h=2),"object"==typeof g||l.isFunction(g)||(g={});i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(l.isPlainObject(c)||(b=l.isArray(c)))?(b?(b=!1,f=a&&l.isArray(a)?a:[]):f=a&&l.isPlainObject(a)?a:{},g[d]=l.extend(j,f,c)):g[d]=c);return g},l.each=function(a,b,c){if(null!=a){var d=a.length,f=-1,g="number"==typeof d;if(b=e(b,c),g)for(;++f=0;)b(a[f],f,a);else for(f in a)b(a[f],f,a)}},l.each(["Arguments","Function","String","Number","Date","RegExp"],function(a){l["is"+a]=function(b){return f.call(b)=="[object "+a+"]"}}),l.isArguments(arguments)||(l.isArguments=function(a){return!(!a||!h.call(a,"callee"))}),"function"!=typeof/./&&(l.isFunction=function(a){return!(!a||"function"!=typeof a)}),l.isArray=Array.isArray||function(a){return"[object Array]"==f.call(a)},l.extend(l,{noop:function(){},inherit:function(a,b,c){return(arguments.length<3&&l.isPlainObject(b)||1==arguments.length)&&(c=b,b=a,a=void 0),a?(b.prototype=m(a.prototype),b.prototype.constructor=b,l.extend(b.prototype,c),b.prototype.__Class__=a,b.prototype._super=d):c&&(b.prototype=c),b},type:function(a){return a instanceof Array?"array":"string"==typeof a||a instanceof String?"string":"number"==typeof a||a instanceof Number?"number":a instanceof Date?"date":"[object RegExp]"===f.call(a)?"regexp":null===a?"null":void 0===a?"undefined":l.isFunction(a)?"function":l.isBoolean(a)?"boolean":"object"},is:function(a,b){return arguments.length>1&&l.isFunction(b)?b.prototype.isPrototypeOf(a):l.type(a)==b},has:function(a,b){return!(!a||!h.call(a,b))},hasValue:function(a){return!(null==a||l.isNumber(a)&&isNaN(a))},toString:function(a){var b="";return l.hasValue(a)&&(b=a.toString()),b},unwrap:function(a){return k.expressionsCreated&&k.isExpression(a)?a.value():l.unwrapObservable?l.unwrapObservable(a):a},$unwrap:function(a,b,c){return b=e(b,c),a&&a.jquery?(b&&a.each(function(){b(this)}),a=a[0]):b&&b(a),a},toArray:function(a){if(l.isArguments(a))return g.call(a);if(l.isElements(a)){for(var b=Array(a.length),c=-1,d=a.length;++c2?c:l.nothing,b=b.split("."),d=b[0];d;){if(null==a)return c;a=a[d],d=b[++e]}return a},swap:function(a,b,c){var d=a.length;return b>=0&&c>=0&&d>b&&d>c&&(a[b]=a[c]+(a[c]=a[b],0)),a},move:function(a,b,c){return b!=c&&(c>=b&&c++,a.splice(c,0,a[b]),b>c&&b++,a.splice(b,1)),a},bind:function(a,b){var c,d=function(){},e=g.call(arguments,2);return c=function(){if(!(this instanceof c))return a.apply(b,e.concat(g.call(arguments)));d.prototype=a.prototype;var f=new d,h=a.apply(f,e.concat(g.call(arguments)));return Object(h)===h?h:f}},equals:function(a,b,d){return a=l.unwrap(a),b=l.unwrap(b),c(a,b,[],[],d)}}),l.at=function(a){return{index:a,prototypeIndentification:"__blocks.at__"}},l.first=function(){return l.first},l.last=function(){return l.last};var m=Object.create||function(a){var b=function(){};return b.prototype=a,new b};for(var n in[j])break;j.ownPropertiesAreLast="0"!=n,function(){!function(){function a(a,b){this._value=a,this._computedValue=void 0,b&&(this._parent=b,this._currentResult=l.isBoolean(b._result)?b._result:b._currentResult,this._lastCondition=b._condition||b._lastCondition,this._hasNot=b._hasNot)}function b(a,b,c,d){c=I.parseCallback(c,d)||c;for(var e,f,g={},h=0,i=b.length,j=l.isFunction(c),k=null!=c;i>h;h++)e=b[h],f=k?j?c(e,h,b):e[c]:e,a(g,f,e,b,c);return g}function c(b,e,f,g,h){var i=O.expressions({isRoot:h,name:b,path:e,descriptorName:f||"a",args:(y[f]||{}).args,methods:y,type:g||0,staticMethods:D}),j=new Function(["blocks","blox","expressions","cache","BaseExpression","LoopDescriptors","generateExpression","descriptors","createExpression","PrepareValues","slice","add","NumberExpression"],i)(l,l,Q,P,a,O,c,R,t,I,E,d,n);return h&&(Q[b+"Expression"]=j),j.prototype.forEach=j.prototype.each,j}function d(a,b){if(b.length>0){var c=x.determineIndex(b[0],a.length),d=E.call(b,x.isPosition(b[0])?1:0),e=0;if(c>=a.length)for(;e1&&(c.conditions=!0,c[(b.inLoop?"inLoop":"afterLoop")+"Conditions"]=O.conditions(b),b.inLoop&&(b.inLoop=!1,c.afterLoopConditions=O.conditions(b)))}}}function t(a){for(var b,c,d=r(),e=a._isSingle,f=a._type,g=e?["array","object"]:[1==a._type?"array":"object"],h=e?"":0,i=[],j=e?void 0:s(),k=0,m=0,n=!1,o="",p=!0;a._parent;)l.each(g,function(c,f){switch("filter"==a._descriptor.identity&&(d.skip&&(o+=O.skip({index:k})),null!==d.take&&(o+=O.take({index:m})),d.skip=0,d.take=null),b=a._descriptor(h,c,a,i,o),o="",0===f&&d.args.push(b.args||[]),b.name){case"skip":return void(d.skip||(d.skip="skip"+h));case"take":return void(null===d.take&&(d.take="take"+h));case"reverse":return void(d.reverse=!d.reverse)}p=!1,(e||!j.callback(b))&&(0===f&&b.reverse&&(d.reverse=!d.reverse),e||(c="array"),void 0!==b.boolResult?d.resultIndex=h||0:h||(n=!0),b.beforeLoop&&d[c+"BeforeLoops"].push(b.beforeLoop),b.inLoop&&d[c+"InLoops"].push(b.inLoop),b.afterLoop&&d[c+"AfterLoops"].push(b.afterLoop))}),"skip"!=b.name&&"take"!=b.name&&"reverse"!=b.name?i.push(a):0==i.length&&(d.resultIndex+=1,"skip"==b.name?k=k||h:m=m||h),h=+h+1,a=a._parent;if(d.isObject=T.prototype.isPrototypeOf(a),e){switch(f){case"array":d.isArrayCheck=!0;break;case"object":d.isArrayCheck=!1}return"object"==typeof module&&"object"==typeof module.exports?(c=new Function(["blocks","collection"].concat(d.args[0]),a._loopDescriptor(d)),function(){return c.apply(this,[l].concat(l.toArray(arguments)))}):new Function(["collection"].concat(d.args[0]),a._loopDescriptor(d))}return j.end(d),p&&(d.arrayBeforeLoops.push(d.result+d.resultIndex+" = [];"),d.arrayInLoops.push(d.result+d.resultIndex+".push("+d.value+");")),n&&(d.resultIndex=0),"object"==typeof module&&"object"==typeof module.exports?(c=new Function(["blocks",d.expression],a._loopDescriptor(d)),function(a){return c(l,a)}):new Function(d.expression,a._loopDescriptor(d))}function u(a){var b={_loopDescriptor:O[a.identity]||O.singleExpression},c={_parent:b,_descriptor:a,_isSingle:!0,_type:a.parent.type};return c}function v(a){var b=Z[a];if(l.isFunction(b)){var c=u(b);if(l[a])return t(c);l[a]=t(c)}}var w=l.at;l.at=function(a){return{index:a,prototypeIndentification:"__blocks.at__"}},l.first=function(){return l.first},l.last=function(){return l.last};var x={isPosition:function(a){return a==l.first||a==l.last||a&&"__blocks.at__"==a.prototypeIndentification},determineIndex:function(a,b){return a==l.first?0:"__blocks.at__"==a.prototypeIndentification?a.index:b}},y={};a.prototype={_prototypeIndentification:"__blocks.expression__",_expression:a,type:function(){return"base"},is:function(a){return this._setResult(l.is(this._value,a)),this},value:function(){return this._value},not:function(){var a=new this._expression(this._value,this);return a._hasNot=!this._hasNot,a},or:function(){var a=new this._expression(this._value,this);return a._condition="or",a},and:function(){var a=new this._expression(this._value,this);return a._condition="and",a},result:function(){return this._not?!this._result:this._result},each:function(){},equals:function(a,b){var c=new this._expression(this._value,this);return c._setResult(l.equals(this._value,a,b)),c},hasValue:function(){return this._resultExpression(l.hasValue(this._value))},toString:function(){return new g(l.toString(this._value))},toArray:function(){return new S(l.toArray(this.value()))},clone:function(a){return l(l.clone(this._value,a))},_setResult:function(a){switch(this._hasNot&&(a=!a),this._lastCondition){case"and":this._result=this._currentResult&&a;break;case"or":this._result=this._currentResult||a;break;default:this._result=a}this._hasNot=!1,this._lastCondition=void 0},_resultExpression:function(a){var b=new this._expression(this._value,this);return b._setResult(a),b}},l.extend(l,{isEmpty:function(a){if(null==a)return!0;if(l.isArray(a)||l.isString(a)||l.isArguments(a))return!a.length;for(var b in a)return l.has(a,b)?!1:!0;return!0}});var z=function(a){return a},A=Object.prototype.hasOwnProperty,B=Math.max,C=Math.ceil;l.extend(l,{range:function(a,b,c){tart=+a||0,c="number"==typeof c?c:+c||1,null==b&&(b=a,a=0);for(var d=-1,e=B(0,C((b-a)/(c||1))),f=Array(e);++d0?a.sort(function(a,c){for(i=0;ih?1:-1,"desc"==d?-f:f}):a:(b=I.parseCallback(b,c),b||(b=z),l(a).map(function(a,c,d){return{value:a,index:c,criteria:b(a,c,d)}}).sort(function(a,b){if(g=a.criteria,h=b.criteria,g!==h){if(g>h||void 0===g)return 1;if(h>g||void 0===h)return-1}return a.index-b.index}).map("value").value())}});var D={},E=Array.prototype.slice,F={skip:function(){return{name:"skip",args:["skip"]}},take:function(){return{name:"take",args:["take"]}},and:function(){return{name:"and",args:[]}},or:function(){return{name:"or",args:[]}},not:function(){return{name:"not",args:[]}},reverse:function(){return{name:"reverse",args:[]}}};for(var G in F)F[G].identity=G;var H=l.core,I={parseCallback:function(a,b){if("string"==typeof a){var c=a;return function(a){return a[c]}}if(null!=b){var d=a;a=function(a,c,e){return d.call(b,a,c,e)}}return a},uniquePrepare:function(a,b){return l.isFunction(a)?I.parseCallback(a,b):a},mapPrepare:function(a,b){return I.parseCallback(a,b)},filterPrepare:function(a,b){return l.isFunction(a)||l.isString(a)?I.parseCallback(a,b):I.createFilterCallback(a)},reducePrepare:function(a,b,c){return l.isFunction(a)||l.isString(a)?I.parseCallback(a,c):I.parseCallback(a,c)},createFilterCallback:function(a){return function(b){return I.resolveFilterExpressionValue(!1,b,a)}},resolveFilterExpressionValue:function(a,b,c){if(c.field&&c.operator){var d=c.value;switch(b=b[c.field],c.operator.toLowerCase()){case"eq":a=b===d;break;case"neq":a=b!==d;break;case"lt":a=d>b;break;case"lte":a=d>=b;break;case"gt":a=b>d;break;case"gte":a=b>=d;break;case"startswith":a=l(b).startsWith(d);break;case"endswith":a=l(b).endsWith(d);break;case"contains":a=-1!==b.indexOf(d)}return a}if(c.logic&&c.filters){if(a&&"or"==c.logic)return!0;for(var e=!1,f=c.filters.length,g=0;f>g&&(e=I.resolveFilterExpressionValue(!1,b,c.filters[g]),!e||"or"!=c.logic);g++);return e}for(var h in c)if(b[h]!==c[h])return!1;return!0},flatten:function(a,b,c){if(l.isArray(b)||l.isArguments(b))if(a)c.push.apply(c,b);else for(var d=0;d=count"+a+"){break ;}result"+a+".push(current"+a+");}else {result"+a+"=current"+a+";break ;};",prepareValues:b,everything:!0}},has:function(a){return{boolResult:!1,args:["key"],beforeLoop:"result"+a+"=false;",afterLoop:"result"+a+"=blocks.has(collection,key"+a+");"}},invoke:function(a,b,c,d){return{args:["method","args"],beforeLoop:"var isFunc"+a+"=blocks.isFunction(method"+a+");"+(""===a||0===d.length?""+("array"==b?"result"+a+"=[];":"")+("object"==b?"result"+a+"={};":""):"")+(""===a?"args"+a+"=Array.prototype.slice.call(arguments,2);":""),inLoop:"value=(isFunc"+a+"?method"+a+":value[method"+a+"]).apply(value,args"+a+"||[]);"+(""===a||0===d.length?""+("array"==b?"result"+a+".push(value);":"")+("object"==b?"result"+a+"[indexOrKey]=value;":""):"")}},isEmpty:function(a){return{boolResult:!0,beforeLoop:"result"+a+"=true;",inLoop:"result"+a+"=false;"}},join:function(a){return{args:["separator"],beforeLoop:"separator"+a+"=typeof separator"+a+'=="undefined"?",":separator'+a+";result"+a+'="";',inLoop:"result"+a+"+=value+separator"+a+";",afterLoop:"result"+a+"=result"+a+".substring(0,result"+a+".length-separator"+a+".length);"}},map:function(a,b,c,d){var e="callback"+a+"=blocks.core.parseCallback(callback"+a+",thisArg"+a+");";return{args:["callback","thisArg"],beforeLoop:(""===a?""+e:"")+(""===a?""+("array"==b?"result"+a+"=Array(collection.length);":"")+("object"==b?"result"+a+"=[];":""):"")+(""!==a&&0===d.length?"result"+a+"=[];":""),inLoop:"value=callback"+a+"(value,indexOrKey,collection);"+(""===a?""+("array"==b?"result"+a+"[indexOrKey]=value;":"")+("object"==b?"result"+a+".push(value);":""):"")+(""!==a&&0===d.length?"result"+a+".push(value);":""),prepareValues:e}},max:function(a){var b="callback"+a+"=blocks.core.parseCallback(callback"+a+",thisArg"+a+");";return{args:["callback","thisArg"],beforeLoop:"var max"+a+"=-Infinity;result"+a+"=max"+a+";"+(""===a?""+b:""),inLoop:"max"+a+"=callback"+a+"?callback"+a+"(value,indexOrKey,collection):value;result"+a+"=max"+a+">result"+a+"?max"+a+":result"+a+";",prepareValues:b,type:"NumberExpression"}},min:function(a){var b="callback"+a+"=blocks.core.parseCallback(callback"+a+",thisArg"+a+");";return{args:["callback","thisArg"],beforeLoop:"var min"+a+"=Infinity;result"+a+"=min"+a+";"+(""===a?""+b:""),inLoop:"min"+a+"=callback"+a+"?callback"+a+"(value,indexOrKey,collection):value;result"+a+"=min"+a+"=count"+a+"){break ;}result"+a+".push(value);}else {result=value;break ;};"}},flatten:function(a){return{args:["shallow"],beforeLoop:"var flatten"+a+"=blocks.core.flatten;result"+a+"=[];",inLoop:"flatten"+a+"(shallow"+a+",value,result"+a+");"}},indexOf:function(a){return{args:["searchValue","fromIndex"],beforeLoop:"result"+a+"=-1;if (blocks.isNumber(fromIndex"+a+")){indexOrKey=fromIndex"+a+";};",inLoop:"if (value===searchValue"+a+"){result"+a+"=indexOrKey;break ;};",type:"NumberExpression"}},last:function(a){var b="if (callback"+a+"){callback"+a+"=blocks.core.parseCallback(callback"+a+",thisArg"+a+");};";return{reverse:!0,args:["callback","thisArg"],beforeLoop:"var isNumber"+a+"=blocks.isNumber(callback"+a+");var size"+a+"=0;var count"+a+"=1;var current"+a+";if (isNumber"+a+"){result"+a+"=[];count"+a+"=callback"+a+";callback"+a+"=thisArg"+a+";};"+(""===a?""+b:""),inLoop:"if (callback"+a+"){if (callback"+a+"(value,indexOrKey,collection)){current"+a+"=value;}else {continue ;}}else {current"+a+"=value;};if (isNumber"+a+"){if (size"+a+"++>=count"+a+"){break ;}result"+a+".unshift(current"+a+");}else {result"+a+"=current"+a+";break ;};",prepareValues:b,everything:!0}},lastIndexOf:function(a){return{reverse:!0,args:["searchValue","fromIndex"],beforeLoop:"result"+a+"=-1;if (blocks.isNumber(fromIndex"+a+")){indexOrKey=fromIndex"+a+";};",inLoop:"if (value===searchValue"+a+"){result"+a+"=indexOrKey;break ;};",type:"NumberExpression"}},range:function(a,b,c,d){return{args:["start","end","step"],beforeLoop:"length=Math.max(Math.ceil((end"+a+"-start"+a+")/step"+a+"),0);result"+a+"=Array(length);",inLoop:"value=start"+a+";start"+a+"+=step"+a+";"+(""===a||0===d.length?"result"+a+"[indexOrKey]=value;":"")}},reduceRight:function(a){return{reverse:!0,args:["callback","memo","thisArg"],beforeLoop:"var hasMemo"+a+"=memo"+a+"!=null;result"+a+"=memo"+a+";"+(""===a?"callback"+a+"=blocks.core.reducePrepare(callback"+a+",memo"+a+",thisArg"+a+");":""),inLoop:"if (hasMemo"+a+"){result"+a+"=callback"+a+"(result"+a+",value,indexOrKey,collection);}else {result"+a+"=collection[indexOrKey];hasMemo"+a+"=true;};",everything:!0}},unique:function(a,b,c,d){var e="callback"+a+"=blocks.core.uniquePrepare(callback"+a+",thisArg"+a+");";return{args:["callback","thisArg"],beforeLoop:"var seen"+a+"=[];var isFirst"+a+"=true;var isSorted"+a+"=blocks.isBoolean(callback"+a+")&&callback"+a+";var hasCallback"+a+"=blocks.isFunction(callback"+a+");var map"+a+";result"+a+"=[];"+(""===a?""+e:""),inLoop:"map"+a+"=hasCallback"+a+"?callback"+a+"(value,indexOrKey,collection):value;if (isSorted"+a+"?isFirst"+a+"||seen"+a+"[seen"+a+".length-1]!==map"+a+":!blocks.contains(seen"+a+",map"+a+")){isFirst"+a+"=false;seen"+a+".push(map"+a+");}else {continue ;};"+(""===a||0===d.length?"result"+a+".push(value);":""),prepareValues:e}},type:"array"};for(var G in K)K[G].identity=G,K[G].parent=K;var L={get:function(a){var b=(""===a?"keys"+a+"=blocks.flatten(Array.prototype.slice.call(arguments,1));":"")+(""!==a?"keys"+a+"=blocks.flatten(Array.prototype.slice.call(arguments,0));":"");return{args:["keys"],beforeLoop:(""===a?""+b:"")+"var singleKey"+a+"=keys"+a+".length<2;keys"+a+"=blocks.toObject(keys"+a+");result"+a+"={};",inLoop:"if (keys"+a+".hasOwnProperty(indexOrKey)){if (singleKey"+a+"){result"+a+"=value;}else {result"+a+"[indexOrKey]=value;}};",prepareValues:b}},invert:function(a,b,c,d){return{beforeLoop:"var temp"+a+";result"+a+"={};",inLoop:"temp"+a+"=value;value=indexOrKey;indexOrKey=temp"+a+";"+(""===a||0===d.length?"result"+a+"[indexOrKey]=value;":"")}},keys:function(a,b,c,d){return{beforeLoop:"result"+a+"=[];",inLoop:"value=indexOrKey;"+(""===a||0===d.length?"result"+a+".push(value);":"")}},pairs:function(a){return{beforeLoop:"result"+a+"=[];",inLoop:"result"+a+".push({key:indexOrKey,value:value});"}},values:function(a){return{beforeLoop:"result"+a+"=[];",inLoop:"result"+a+".push(value);"}},type:"object"};for(var G in L)L[G].identity=G,L[G].parent=L;var M,N,O={chainExpression:function(a){var b,c,d,e,f,g,h,i,j,k,m="";return m+="var "+a.indexOrKey+" = -1, "+a.collection+", "+a.length+", "+a.value+", "+(a.conditions?"":" "+a.result+a.resultIndex+",")+" "+a.result+(a.conditions?" = false":"")+"; "+a.conditionsDeclarations+" ",k=-1,l.each(a.args,function(n,o){c=n,k+=1,j=o,i=0==o,h=o==a.args.length-1,m+=" ",g=-1,l.each(c,function(h,i){b=h,g+=1,f=i,e=0==i,d=i==c.length-1,m+=" var "+b+k+" = "+a.expression+"._"+b+"; "}),m+=" "+a.expression+" = "+a.expression+"._parent; "}),m+=" ",l.eachRight(a.variables,function(n,o){c=n,k=a.variables.length,k+=-1,j=o,i=0==o,h=o==a.variables.length-1,m+=" ",g=-1,l.each(c,function(a,h){b=a,g+=1,f=h,e=0==h,d=h==c.length-1,m+=" var "+f+g+" = "+b+"; "}),m+=" "}),m+=" "+a.collection+" = "+a.expression+"._value; "+a.indexOrKey+" += "+a.skip+"; "+(a.take?" "+a.length+" = Math.min("+a.collection+".length, "+a.skip+" + "+a.take+"); ":"")+" "+(a.take?"":" "+a.length+" = "+a.collection+".length; ")+" "+(a.reverse?" "+a.indexOrKey+" = "+a.collection+".length - "+a.skip+"; ":"")+" ",l.eachRight(a.arrayBeforeLoops,function(b,d){c=b,k=a.arrayBeforeLoops.length,k+=-1,j=d,i=0==d,h=d==a.arrayBeforeLoops.length-1,m+=" "+c+" "}),m+=" "+(a.isObject?" for ("+a.indexOrKey+" in "+a.collection+") { ":"")+" "+(a.isObject?"":" "+(a.reverse?" while (--"+a.indexOrKey+" >= "+(a.take?a.take:"")+(a.take?"":"0")+") { ":"")+" "+(a.reverse?"":" while (++"+a.indexOrKey+" < "+a.length+") { ")+" ")+" "+a.value+" = "+a.collection+"["+a.indexOrKey+"]; ",l.eachRight(a.arrayInLoops,function(b,d){c=b,k=a.arrayInLoops.length,k+=-1,j=d,i=0==d,h=d==a.arrayInLoops.length-1,m+=" "+c+" "}),m+=" "+(a.inLoopConditions?" "+a.inLoopConditions+" ":"")+" } ",l.eachRight(a.arrayAfterLoops,function(b,d){c=b,k=a.arrayAfterLoops.length,k+=-1,j=d,i=0==d,h=d==a.arrayAfterLoops.length-1,m+=" "+c+" "}),m+=" "+(a.afterLoopConditions?" "+a.afterLoopConditions+" ":"")+" "+(a.conditions?"":" "+a.result+" = "+a.result+a.resultIndex+"; ")+" return "+a.result+"; "},conditions:function(a){var b,c,d,e,f,g="";return g+="if (",f=-1,l.each(a.items,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.items.length-1,g+=b}),g+=") { "+a.result+" = true; "+(a.inLoop?" break; ":"")+" } "},expressions:function(a){var b,c,d,e,f,g,h,i,j,k,m="";return m+="function "+a.name+"Expression( ",k=-1,l.each(a.args,function(b,d){c=b,k+=1,j=d,i=0==d,h=d==a.args.length-1,m+=" "+c+", "}),m+=" parent ) { this._parent = parent; this._descriptor = descriptors."+a.descriptorName+"; ",k=-1,l.each(a.args,function(b,d){c=b,k+=1,j=d,i=0==d,h=d==a.args.length-1,m+=" this._"+c+" = "+c+"; "}),m+=" } "+(a.isRoot?" function "+a.name+"Expression(value) { this._value = value; this._loopDescriptor = LoopDescriptors.chainExpression; } ":"")+" blocks.inherit(BaseExpression, "+a.name+"Expression, { _type: "+a.type+', _name: "'+a.name+'", ',k=-1,l.each(a.methods,function(n,o){c=n,k+=1,j=o,i=0==o,h=o==a.methods.length-1,m+=" "+c.name+": function ( ",g=-1,l.each(c.args,function(a,h){b=a,g+=1,f=h,e=0==h,d=h==c.args.length-1,m+=" "+b+", "}),m+=" a ) { var type = expressions."+a.path+c.name+"; if (!type) { type = (expressions."+a.path+c.name+' = generateExpression("'+a.name+c.name+'", "'+a.path+c.name+'", "'+c.name+'", '+a.type+")); } "+c.prepareValues+" expression = new type(",g=-1,l.each(c.args,function(a,h){b=a,g+=1,f=h,e=0==h,d=h==c.args.length-1,m+=" "+b+", "}),m+=" this); "+(c.type?" if (this._hasConditions()) { this.result(); this._setLastCondition(); return new "+c.type+"(expression.value(), this); } return new "+c.type+"(expression.value()); ":"")+" "+(c.everything?" if (this._hasConditions()) { this.result(); this._setLastCondition(); } return blocks(expression.value(), this); ":"")+" return expression; }, "}),m+=" ",k=-1,l.each(a.staticMethods,function(b,d){c=b,k+=1,j=d,i=0==d,h=d==a.staticMethods.length-1,m+=" "+j+" : "+c+", "}),m+=" reverse: function () { var type = expressions."+a.path+"reverse; if (!type) { type = (expressions."+a.path+'reverse = generateExpression("'+a.path+'reverse", "'+a.path+'reverse", "reverse", '+a.type+")); } var expression = new type(this); return expression; }, each: function (callback, thisArg) { var type = expressions."+a.path+"each; if (!type) { type = (expressions."+a.path+'each = generateExpression("'+a.path+'each", "'+a.path+'each", "each", '+a.type+")); } callback = PrepareValues.parseCallback(callback, thisArg); var expression = new type(callback, thisArg, this); expression._loop(); return expression; }, value: function () { if (this._parent && this._computedValue === undefined) { this._execute(true); this._computedValue = blocks.isBoolean(this._result) ? this._parent._value : this._result; } return this._computedValue === undefined ? this._value : this._computedValue; }, result: function () { if (this._result === true || this._result === false) { return this._result; } if (this._parent) { this._execute(); } return this._result; }, _loop: function () { var func = cache."+a.path+" || (cache."+a.path+" = createExpression(this)); func(this); }, _execute: function (skipConditions) { var func = cache."+a.path+" || (cache."+a.path+' = createExpression(this, skipConditions)); if (func) { this._setResult(func(this)); } else { this._result = this._findValue(); } }, _hasConditions: function () { var name = this._name; return name.indexOf("and") != -1 || name.indexOf("or") != -1; }, _setLastCondition: function () { var name = this._name; var andIndex = name.lastIndexOf("and"); var orIndex = name.lastIndexOf("or"); this._lastCondition = andIndex > orIndex ? "and" : "or"; }, _findValue: function () { var parent = this._parent; while (parent) { if (parent._value) { return parent._value; } parent = parent._parent; } } }); return '+a.name+"Expression; " },singleExpression:function(a){var b,c,d,e,f,g="";return g+="var "+a.length+" = "+a.collection+".length, "+a.indexOrKey+" = "+(a.reverse?"":"-1")+(a.reverse?a.length:"")+", "+a.isCollectionAnArray+" = "+a.isArrayCheck+", "+a.result+", "+a.value+"; ",f=-1,l.each(a.variables,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.variables.length-1,g+=" "}),g+=" if ("+a.isCollectionAnArray+") { ",f=-1,l.each(a.arrayBeforeLoops,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.arrayBeforeLoops.length-1,g+=" "+b+" "}),g+=" "+(a.reverse?" while (--"+a.indexOrKey+" >= 0) { ":"")+" "+(a.reverse?"":" while (++"+a.indexOrKey+" < "+a.length+") { ")+" "+a.value+" = "+a.collection+"["+a.indexOrKey+"]; ",f=-1,l.each(a.arrayInLoops,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.arrayInLoops.length-1,g+=" "+b+" "}),g+=" } ",f=-1,l.each(a.arrayAfterLoops,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.arrayAfterLoops.length-1,g+=" "+b+" "}),g+=" } else { ",f=-1,l.each(a.objectBeforeLoops,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.objectBeforeLoops.length-1,g+=" "+b+" "}),g+=" for ("+a.indexOrKey+" in collection) { "+a.value+" = "+a.collection+"["+a.indexOrKey+"]; ",f=-1,l.each(a.objectInLoops,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.objectInLoops.length-1,g+=" "+b+" "}),g+=" } ",f=-1,l.each(a.objectAfterLoops,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.objectAfterLoops.length-1,g+=" "+b+" "}),g+=" } return "+a.result+"; "},skip:function(a){var b="";return b+="if (skip"+a.index+"-- > 0) { continue; }"},take:function(a){var b="";return b+="if (take"+a.index+"-- <= 0) { break; }"},type:"loop"},P={},Q={},R=l.extend({},J,K,L,F);for(var G in R)M=R[G],l.isFunction(M)&&(N=M(" ","","",[]),y[G]={name:G,args:N.args,prepareValues:N.prepareValues||"",type:N.type,everything:N.everything});l.extend(D,{toObject:function(a){return new expressions.RootObjectExpression(blox.toObject(this.value(),a))},sortBy:function(a,b){return new expressions.RootArrayExpression(blox.sortBy(this.value(),a,b))},groupBy:function(a,b){return new expressions.RootObjectExpression(blox.groupBy(this.value(),a,b))},countBy:function(a,b){return new expressions.RootObjectExpression(blox.countBy(this.value(),a,b))},shuffle:function(){return new expressions.RootArrayExpression(blox.shuffle(this.value()))},set:function(a,b){return new expressions.RootObjectExpression(blox.set.call(void 0,this.value,a,b))},at:function(a,b){return new expressions.RootArrayExpression(blox.at(this._value,a,b))},concat:function(){var a=this.value();return new expressions.RootArrayExpression(a.concat.apply(a,arguments))},push:function(){var a=this.value();return a.push.apply(a,arguments),new expressions.RootArrayExpression(a)},pop:function(){var a=this.value();return a.pop(),new expressions.RootArrayExpression(a)},shift:function(){var a=this.value();return a.shift(),new expressions.RootArrayExpression(a)},slice:function(a,b){return new expressions.RootArrayExpression(this.value().slice(a,b))},sort:function(a){return new expressions.RootArrayExpression(this.value().sort(a))},splice:function(a,b){var c=this.value();return arguments.length>2?c.splice.apply(c,[a,b].concat(E.call(arguments,2))):c.splice(a,b),new expressions.RootArrayExpression(c)},unshift:function(){var a=this.value();return a.unshift.apply(a,arguments),new expressions.RootArrayExpression(a)}}),l.extend(D,{add:function(){return d(this.value(),arguments),this},remove:function(a,b){return l.remove(this.value(),a,b),this},removeAt:function(a,b){return l.removeAt(this.value(),a,b),this},removeAll:function(a,b){return 0===arguments.length?l.removeAll(this.value()):l.removeAll(this.value(),a,b),this},addMany:function(){return e(this.value(),arguments),this},swap:function(a,b){return l.swap(this.value(),a,b),this},move:function(a,b){return l.move(this.value(),a,b),this}});var S=c("RootArray","arr","",1,!0);l.extend(S.prototype,{reverse:function(){return new S(this._value.reverse())}}),l.extend(l,{add:function(a){return d(a,E.call(arguments,1))},addMany:function(a){return e(a,E.call(arguments,1))},remove:function(a,b,c){return x.isPosition(b)?l.removeAt(a,x.determineIndex(b,this._value.length),c):l.removeAll(a,b,c,!0)},removeAt:function(a,b,c){return l.isNumber(c)||(c=1),a.splice(b,c),a},removeAll:function(a,b,c,d){var e,f=0,g=l.isFunction(b);if(1==arguments.length)a.splice(0,a.length);else for(;f1&&b,f=0,g=a.length;g>f;f++)c=a[f],l.isArray(c)?d[c[0]]=c[1]:l.isObject(c)?d[c.key]=c.value:d[c]=e?b[f]:!0;return d},shuffle:function(a){for(var b,c=[],d=0,e=a.length;e>d;d++)b=l.random(d),c[d]=c[b],c[b]=a[d];return c}});var T=c("RootObject","obj","",2,!0);l.set=function(a,b,c){var d;if(l.isString(b))a[b]=c;else for(d in b)a[d]=b;return a};var U=/^\s+|\s+$/gm,V=/^(\s|\u00A0)+/,W=/(\s|\u00A0)+$/;g.prototype.constructor=a,l.inherit(a,g,{_expression:g,type:function(){return"string"},substring:function(a,b){return new g(this._value.substring(a,b))},isEmpty:function(){return this._resultExpression(0==this._value.length)},size:function(){return new n(l.size(this._value))},contains:function(a){return this._resultExpression(-1!=this._value.indexOf(a))},startsWith:function(a){return this._resultExpression(l.startsWith(this._value,a))},endsWith:function(a){return this._resultExpression(l.endsWith(this._value,a))},trim:function(a){return new g(l.trim(this._value,a))},trimStart:function(a){return new g(l.trimStart(this._value,a))},trimEnd:function(a){return new g(l.trimEnd(this._value,a))},repeat:function(a){return new g(l.repeat(this._value,a))},reverse:function(){return new g(l.reverse(this._value))},wrap:function(a){return new g(l.wrap(this._value,a))},format:function(){return new g(h(this._value,E.call(arguments,0)))},matches:function(a,b){return new g(l.matches(this._value,a,b))},toUnit:function(a){return new g(l.toUnit(this._value,a))},clone:function(){return new g(this._value.toString())}}),l.extend(l,{startsWith:function(a,b){return l.isString(a)||(a=a.toString()),b=b.toString(),0==a.indexOf(b)},endsWith:function(a,b){return l.isString(a)||(a=a.toString()),b=b.toString(),a.lastIndexOf(b)==a.length-b.length},trim:function(a,b){return(a||"").toString().replace("string"==typeof b?new RegExp("^("+b+")+|("+b+")+$","g"):U,"")},trimStart:function(a,b){return(a||"").toString().replace("string"==typeof b?new RegExp("^("+b+")+"):V,"")},trimEnd:function(a,b){return(a||"").toString().replace("string"==typeof b?new RegExp("("+b+")+$"):W,"")},repeat:function(a,b){var c="",d=0;if(0>b||"number"!=typeof b)return a;for(b=Math.floor(b);b>d;d++)c+=a;return c},reverse:function(a){return l.isArray(a)?a.reverse():("string"!=typeof a&&(a=a.toString()),a.split("").reverse().join(""))},wrap:function(a,b){return l.isFunction(a)?function(){var c=[a];return push.apply(c,arguments),b.apply(this,c)}:b+a+l.reverse(b)},format:function(a){return h(a,E.call(arguments,1))},matches:function(a,b,c){c=l.isNumber(c)?c:Number.MAX_VALUE,l.isRegExp(b)||(b=new RegExp(b.toString(),"g"));var d,e,f=[];for(b.lastIndex=0,d=b.exec(a);c>0&&d&&(e=l.isArray(d)?d[0].length:d.length,f.push({result:d,input:d.input,startIndex:d.index,endIndex:d.index+e,length:e}),b.global);)d=b.exec(a),c--;return f}}),l.inherit(a,j,{bind:function(){return new j(l.bind.apply(this,[this._value].concat(E.call(arguments))))},partial:function(){return new j(k(this._value,E.call(arguments,0)))},memoize:function(a){return new j(l.memoize(this._value,a))},delay:function(a){return new j(m(this._value,a,E.call(arguments,1)))},throttle:function(a,b){return new j(l.throttle(this._value,a,b))},debounce:function(a,b){return new j(l.debound(this._value,a,b))},once:function(){return new j(l.once(this._value))},wrap:function(a){return new j(l.wrap(this._value,a))}}),l.extend(l,{partial:function(a){var b=E.call(arguments,1);return k(a,b)},memoize:function(a,b){var c={};return b||(b=z),function(){var d=b.apply(this,arguments);return c.hasOwnProperty(d)?c[d]:c[d]=a.apply(this,arguments)}},delay:function(a,b){return m(a,b,E.call(arguments,2))},throttle:function(a,b,c){var d,e,f,g=null,h=0;c||(c={});var i=function(){h=c.leading===!1?0:new Date,g=null,f=b.apply(d,e)};return function(){var j=new Date;h||c.leading!==!1||(h=j);var k=a-(j-h);return d=this,e=arguments,0>=k?(clearTimeout(g),g=null,h=j,f=b.apply(d,e)):g||c.trailing===!1||(g=setTimeout(i,k)),f}},debounce:function(a,b,c){var d,e,f,g,h;return function(){f=this,e=arguments,g=new Date;var i=function(){var j=new Date-g;b>j?d=setTimeout(i,b-j):(d=null,c||(h=a.apply(f,e)))},j=c&&!d;return d||(d=setTimeout(i,b)),j&&(h=a.apply(f,e)),h}},once:function(a){var b,c=!1;return function(){return c?b:(c=!0,b=a.apply(this,arguments),a=null,b)}}}),l.random=function(a,b){return 0==arguments.length?Math.random():(null==b&&(b=a,a=0),a+Math.floor(0|Math.random()*(b-a+1)))},l.inherit(a,n,{_expression:n,type:function(){return"number"},toUnit:function(a){return a=a||"px",new g(this._value+a,this)},random:function(a,b){return new n(l.random(a,b),this)},biggerThan:function(a){var b=new n(this._value,this);return b._setResult(this._value>a),b},lessThan:function(){var a=new n(this._value,this);return a._setResult(this._valuec?-1:1},equalsDate:function(a,b){return a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth()&&a.getDate()===b.getDate()},equalsTime:function(a,b){return a.getHours()===b.getHours()&&a.getMinutes()===b.getMinutes()&&a.getSeconds()===b.getSeconds()&&a.getMilliseconds()===b.getMilliseconds()},clearTime:function(a){return a.setHours(0,0,0,0),a}}),l.each([["Years","FullYear"],["Months","Month"],["Days","Date"],"Hours","Minutes","Seconds","Milliseconds"],function(a){var b=a,c=a;l.isArray(a)&&(b=a[0],c=a[1]),b="add"+b,l[b]=function(a,b){return a["set"+c](a["get"+c]()+b),a},o.prototype[b]=function(a){return new o(l[b](this._value,a))}}),l.inherit(a,p,{equals:function(){},matches:function(a,b){return new p(l.matches(this._value,a,b))},reset:function(){},clone:function(){return new p(l.clone(this._value))}});var H=l.core;H.expressionsCreated=!0,H.trigger&&H.trigger("expressionsCreated"),H.createExpression=function(b){var c;return b instanceof Array||b&&b.jquery?new S(b):"string"==typeof b||b instanceof String?new g(b):"number"==typeof b||b instanceof Number?new n(b):b instanceof Date?new o(b):"[object RegExp]"===(c=f.call(b))?new p(b):null==b?new a(b):"__blocks.expression__"==b._prototypeIndentification?b:"[object Function]"==c?new j(b):new T(b)},H.isExpression=function(a){return a&&"__blocks.expression__"==a._prototypeIndentification},H.staticExpression={range:function(a,b,c){c=c||1,1==arguments.length&&(b=a,a=0);var d=new S([]);return d.range(a,b,c)},repeat:function(){}},H.isArrayExpression=function(a){return ChildArrayExpression.prototype.isPrototypeOf(a)},H.isObjectExpression=function(a){return ChildObjectExpression.prototype.isPrototypeOf(a)};var X={array:S,object:T},Y=l.toObject(["value","not","and","or","type","is","result"]);l.core.applyExpressions=function(a,b,c){if(X[a]){var d,e=X[a].prototype;for(d in e)b[d]||Y[d]||!l.isFunction(e[d])||c&&!c[d]||(b[d]=q(d))}};var Z=l.extend({},J,K,L);for(var G in Z)v(G);l.forEach=l.each;var $=l.at,w=v("at");l.at=function(a,b,c){return l.isNumber(a)?$(a):w(a,b,c)};var _=l.first,ab=v("first");l.first=function(a,b,c){return 0==arguments.length?_:ab(a,b,c)};var bb=l.last,cb=v("last");l.last=function(a,b,c){return 0==arguments.length?bb:cb(a,b,c)};var db=l.contains;l.contains=function(a,b){return l.isString(a)?-1!=a.indexOf(b):db(a,b)}}(),function(){function a(a,b){if(null!=b){var c=a;a=function(a,d,e){return c.call(b,a,d,e)}}return a}function b(a){var b={};return l.each(a,function(a){b[a]=!0}),b}function c(){return!1}function d(){return!0}function e(a){this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?d:c,this.timeStamp=a.timeStamp||+new Date}function f(a,b,c){a.addEventListener&&"propertychange"!=b?a.addEventListener(b,function(a){c.call(this,e.fix(a))},!1):a.attachEvent&&a.attachEvent("on"+b,function(a){c.call(this,e.fix(a))})}function g(a,b){return a&&"string"==typeof a&&null!=b?(a=" "+a+" ",a.indexOf(" "+b+" ")):-1}function h(a){return String(a).replace($,"&").replace(_,"<")}function i(a){var b=document.createDocumentFragment(),c=document.createElement("div"),d=1,e="",f="
",g="",h="",i="",j="";for(a=a.toString(),-1!=a.indexOf(""+a+"",d=2):-1==a.indexOf(""+a+"";d--;)c=c.lastChild;for(;c.firstChild;)b.appendChild(c.firstChild);return b}function j(a){return a?parseFloat(a[1]):void 0}function k(a,b,c){gb[b]?gb[b](a,c,function(b,c){f(a,b,c)}):f(a,b,c)}function m(a){return m.prototype.isPrototypeOf(this)?(this.__identity__=bb,this._tagName=a?a.toString().toLowerCase():null,this._attributes={},this._attributeExpressions=[],this._parent=null,this._children=[],this._isSelfClosing=!1,this._haveAttributes=!0,this._innerHTML=null,this._renderMode=m.RenderMode.All,this._haveStyle=!1,this._style={},this._states=null,this._state=null,void(l.isElement(a)&&(this._el=a))):new m(a)}function n(a,b){var c,d,e=' style="',f=!1;for(c in a)d=a[c],b&&ab.call(b.style,c)||(d||0===d)&&(f=!0,c=c.replace(/[A-Z]/g,o),e+=c,e+=":",e+=d,e+=";");if(b)for(c in b.style)d=b.style[c],(d||0===d)&&(f=!0,c=c.replace(/[A-Z]/g,o),e+=c,e+=":",e+=d,e+=";");return e+='"',f?e:""}function o(a){return"-"+a.toLowerCase()}function p(a,b,c){if(null!=c){c=l.isArray(c)?c:c.toString().split(" ");var d,e,f,h=0;if(m.Is(b))d=b._getAttr(W);else{if(b.classList)return void(mb?b.classList[a].apply(b.classList,c):l.each(c,function(c){b.classList[a](c)}));d=b.className}for(d=d||"";hf&&(""!==d&&(e=" "+e),d+=e):-1!=f&&(d=(d.substring(0,f)+" "+d.substring(f+e.length+1,d.length)).replace(V,""));m.Is(b)?b._state?b._state.attributes[W]=d:b._attributes[W]=d:b.className=d}}function q(a,b){var c=fb.data(a);if(c&&c.animating>0){for(var d,e=a.childNodes,f=0,h=0;b!=h;){if(!e[f])return Number.POSITIVE_INFINITY;d=e[f].className,f++,-1==g(d,"b-hide")&&h++}if(!e[f])return Number.POSITIVE_INFINITY;for(d=e[f].className;-1!=g(d,"b-hide");){if(f++,!e[f])return Number.POSITIVE_INFINITY;d=e[f].className}return f}return b}function r(a,b){var c=!1,d=fb.createIfNotExists(b),e=fb.createIfNotExists(b.parentNode),f=d.animateCallback,g="remove"==a?"hide":"add"==a?"show":a,h="remove"==a?function(){fb.clear(b,!0),b.parentNode&&b.parentNode.removeChild(b)}:"hide"==a?function(){b.style.display="none"}:l.noop,i=function(){d.animating-=1,e.animating-=1,d.animating||h()};if(1!=b.nodeType)return void h();if("show"==a&&(b.style.display=""),d.preprocess)return void h();if(f){c=!0,d.animating+=1,e.animating+=1;var j=l.context(b),k=j.$view||j.$root;f.call(k,b,i,g)}return c||s(g,b,h,i)}function s(a,b,c,d){function e(){p("remove",b,"b-"+a),p("remove",b,"b-"+a+"-end"),d(),b.removeEventListener("transitionend",e,!1),b.removeEventListener(f,e,!1)}if("undefined"==typeof window||void 0===window.ontransitionend)return void c();p("add",b,"b-"+a);var f,g=window.getComputedStyle(b),h="";void 0===window.onanimationend&&void 0!==window.onwebkitanimationend?(h="-webkit-",f="webkitAnimationEnd"):f="animationend";var i=parseFloat(g["transition-duration"])||0,j=parseFloat(g["transition-delay"])||0,k=parseFloat(g[h+"animation-duration"])||0,l=parseFloat(g[h+"animation-delay"])||0;return 0>=i&&0>=j&&0>=k&&0>=l?(p("remove",b,"b-"+a),void c()):(fb.createIfNotExists(b).animating+=1,fb.createIfNotExists(b.parentNode).animating+=1,setTimeout(function(){p("add",b,"b-"+a+"-end"),b.addEventListener("transitionend",e,!1),b.addEventListener(f,e,!1)},1),!0)}function t(a){return t.prototype.isPrototypeOf(this)?(this.__Class__(),void(8==a.nodeType?(this._commentText=a.nodeValue,this._el=a):this._commentText=a)):new t(a)}function u(a,b){for(var c,d,e,f,g,i,j,k,n,o=window.__blocksServerData__,p=[];a;){if(i=a.nodeType,1==i){d=a.tagName.toLowerCase(),c=new m(a),c._tagName=d,c._parent=b,b&&(c._each=b._each||b._childrenEach),c._haveAttributes=!1,f=a.attributes,e={};for(var q=0;q");else if(o){var r=parseInt(/[0-9]+/.exec(k),10);!l.isNaN(r)&&o[r]&&p.push(lb.Create(o[r]))}else 0!==k.indexOf("/blocks")&&p.push("")}a=a.nextSibling}return p}function v(a){for(var b,c,d,e=a.split(";"),f={},g=0;g1?U.on(this,a,b,c):U.on(this,a,b),this}}var b={on:function(a,b,c){return arguments.length>2?U.on(this,a,b,c):U.on(this,a,b),this},once:function(a,b,c){U.once(this,a,b,c)},off:function(a,b){U.off(this,a,b)},trigger:function(a){U.trigger(this,a,l.toArray(arguments).slice(1,100))}};return b._trigger=b.trigger,{register:function(c,d){d=l.isArray(d)?d:[d];for(var e=0;ef;f++)e=b[f],a._events[e]||(a._events[e]=[]),a._events[e].push({callback:c,thisArg:d})},once:function(a,b,c,d){U.on(a,b,c,d),U.on(a,b,function(){U.off(a,b,c)})},off:function(a,b,c){l.isFunction(b)&&(c=b,b=void 0),void 0!==b||void 0!==c?l.each(a._events,function(d,e){void 0!==b&&void 0===c?a._events[b]=[]:l.each(d,function(b,d){return b.callback==c?(a._events[e].splice(d,1),!1):void 0})}):a._events=void 0},trigger:function(a,b){var c,d,e,f=!0;return a&&a._events&&(c=a._events[b],c&&c.length>0&&(e=Array.prototype.slice.call(arguments,2),l.each(c,function(b){b&&(d=a,void 0!==b.thisArg&&(d=b.thisArg),b.callback.apply(d,e)===!1&&(f=!1))}))),f},has:function(a,b){return!!l.access(a,"_events."+b+".length")}}}();!function(){function b(){if("complete"===document.readyState)setTimeout(d);else if(document.addEventListener)document.addEventListener("DOMContentLoaded",c,!1),window.addEventListener("load",c,!1);else{document.attachEvent("onreadystatechange",c),window.attachEvent("onload",c);var a=!1;try{a=null==window.frameElement&&document.documentElement}catch(b){}a&&a.doScroll&&!function e(){if(!l.isDomReady){try{a.doScroll("left")}catch(b){return setTimeout(e,50)}d()}}()}}function c(){(document.addEventListener||"load"==event.type||"complete"==document.readyState)&&d()}function d(){l.isDomReady||(l.isDomReady=!0,U.trigger(l.core,"domReady"),U.off(l.core,"domReady"))}l.isDomReady=!1,l.domReady=function(c,d){"undefined"==typeof document||"undefined"==typeof window||window.__mock__&&document.__mock__||(c=a(c,d),l.isDomReady||"complete"==document.readyState||window.jQuery&&window.jQuery.isReady?(l.isDomReady=!0,c()):(U.on(l.core,"domReady",c),b()))}}();var V=(Array.prototype.slice,/^\s+|\s+$/gm),W="class",X=l.queries={},Y=/^(?:mouse|pointer|contextmenu)|click/,Z=/^key/;e.PropertiesToCopy={all:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),mouse:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),keyboard:"char charCode key keyCode".split(" ")},e.CopyProperties=function(a,b,c){l.each(e.PropertiesToCopy[c],function(c){b[c]=a[c]})},e.prototype={preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=d,a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=d,a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=d,a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},e.fix=function(a){var b=a.type,c=new e(a);return e.CopyProperties(a,c,"all"),c.target||(c.target=a.srcElement||document),3===c.target.nodeType&&(c.target=c.target.parentNode),c.metaKey=!!c.metaKey,Y.test(b)?e.fixMouse(a,c):Z.test(b)&&null==c.which&&(e.CopyProperties(a,c,"keyboard"),c.which=null!=a.charCode?a.charCode:a.keyCode),c},e.fixMouse=function(a,b){var c,d,f,g=a.button,h=a.fromElement;e.CopyProperties(a,b,"mouse"),null==b.pageX&&null!=a.clientX&&(d=b.target.ownerDocument||document,f=d.documentElement,c=d.body,b.pageX=a.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),b.pageY=a.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!b.relatedTarget&&h&&(b.relatedTarget=h===b.target?a.toElement:h),b.which||void 0===g||(b.which=1&g?1:2&g?3:4&g?2:0)};var $=/&/g,_=/",c[0];);return a>4?a:void 0}(),Opera:window&&window.navigator&&window.opera&&window.opera.version&&parseInt(window.opera.version(),10)||void 0,Safari:window&&window.navigator&&j(window.navigator.userAgent.match(/^(?:(?!chrome).)*version\/([^ ]*) safari/i)),Firefox:window&&window.navigator&&j(window.navigator.userAgent.match(/Firefox\/([^ ]*)/))});var fb=function(){function a(a){var b=a?m.Is(a)?a._state?a._state.attributes[cb]:a._attributes[cb]:1==a.nodeType?a.getAttribute(cb):8==a.nodeType?/\s+(\d+):[^\/]/.exec(a.nodeValue):null:null;return l.isArray(b)?b[1]:b}function b(a,b){m.Is(a)?a.attr(cb,b):1==a.nodeType&&a.setAttribute(cb,b)}var c={},d=1;return{id:function(b){return a(b)},collectGarbage:function(){l.each(c,function(a){a&&a.dom&&!document.body.contains(a.dom)&&fb.clear(a.id,!0)})},createIfNotExists:function(e){var f,g,h=e&&e.__identity__==bb;return f=h?c[e._getAttr(cb)]:c[e&&a(e)],f||(g=d++,e&&(h&&e._each?(e._haveAttributes=!0,e._state?e._state.attributes[cb]=g:e._attributes[cb]=g):b(e,g)),f=c[g]=e?{id:g,virtual:h?e:null,animating:0,observables:{},preprocess:h}:{id:g}),f},byId:function(a){return c[a]},data:function(b,d,e){var f=c[a(b)||b];if(f)return 1==arguments.length?f:(arguments.length>2&&(f[d]=e),f[d])},clear:function(b,d){var e=a(b)||b,f=c[e];!f||f.haveData&&!d||(l.each(f.observables,function(a){for(var b=0;b=8&&(hb(a,d),c("dragend",e))):(c("input",d),eb.Safari<7&&"textarea"==a.tagName.toLowerCase()?(c("keydown",e),c("paste",e),c("cut",e)):eb.Opera<11?c("keydown",e):eb.Firefox<4&&(c("DOMAutoComplete",d),c("dragdrop",d),c("drop",d)))}},hb=function(){function a(a){var b=this.activeElement,c=b&&fb.data(b,"selectionchange");c&&c(a)}var b=!1;return function(c,d){b||(f(c.ownerDocument,"selectionchange",a),b=!0),fb.createIfNotExists(c).selectionChange=d}}(),ib=l.dom={valueTagNames:{input:!0,textarea:!0,select:!0},valueTypes:{file:!0,hidden:!0,password:!0,text:!0,color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,time:!0,url:!0,week:!0},props:{"for":!0,"class":!0,value:!0,checked:!0,tabindex:!0,className:!0,htmlFor:!0},propFix:{"for":"htmlFor","class":"className",tabindex:"tabIndex"},attrFix:{className:"class",htmlFor:"for"},addClass:function(a,b){a&&p("add",a,b)},removeClass:function(a,b){a&&p("remove",a,b)},html:function(a,b){if(a)if(b=b.toString(),8==a.nodeType)ib.comment.html(a,b);else if(eb.IE<10){for(;a.firstChild;)a.removeChild(this._element.firstChild);a.appendChild(i(b))}else a.innerHTML=b},css:function(a,b,c){a&&b&&("display"==b?ob.setVisibility(a,"none"==c?!1:!0):a.style[b]=c)},on:function(a,b,c){a&&k(a,b,c)},off:function(){},removeAttr:function(a,b){a&&b&&ib.attr(a,b,null)},attr:function(a,c,d){var e=ib.props[c];return c=ib.propFix[c.toLowerCase()]||c,l.core.skipExecution&&l.core.skipExecution.element===a&&l.core.skipExecution.attributeName==c||!a?void 0:8==a.nodeType?void ib.comment.attr(a,c,d):("checked"==c&&(d="checked"!=d&&"string"==typeof d&&"radio"==a.getAttribute("type")&&d!=a.value&&null!=a.defaultValue&&""!==a.defaultValue?!1:!!d),1===arguments.length?e?a[c]:a.getAttribute(c):void(null!=d?"value"==c&&"select"==a.tagName.toLowerCase()?(d=b(l.toArray(d)),l.each(a.children,function(a){a.selected=!!d[a.value]})):e?a[c]=d:a.setAttribute(c,d):e?"value"==c&&"select"==a.tagName.toLowerCase()?a.selectedIndex=-1:a[c]&&(a[c]=""):a.removeAttribute(c)))},comment:{html:function(a,b){for(var c,d=a,e=d.parentNode,f=d.nextSibling,g=0;f&&(8!=f.nodeType||-1==f.nodeValue.indexOf("/blocks"));)g++,c=f.nextSibling,e.removeChild(f),f=c; -return e.insertBefore(i(b),d.nextSibling),g},attr:function(a,b,c){if(a&&b==cb&&c){var d=a,e=a._endElement;return d.nodeValue=" "+c+":"+d.nodeValue.replace(V,"")+" ",e.nodeValue=" "+c+":"+e.nodeValue.replace(V,"")+" ",this}return this}}},jb={},kb=function(){var a=[];return{startObserving:function(){a.push([])},stopObserving:function(){return a.pop()},currentObservables:function(){return a[a.length-1]},registerObservable:function(b){var c=a[a.length-1],d=!1;c&&(l.each(c,function(a){return a===b?(d=!0,!1):void 0}),d||c.push(b))}}}(),lb={Html:0,ValueOnly:2,Create:function(a,b,c){for(var d,e,f,g=-1,h=0,i=[];a.length>++g;)d=a.charAt(g),"{"==d&&"{"==a.charAt(g+1)?e=g+2:"}"==d&&"}"==a.charAt(g+1)&&(e&&(f=a.substring(e,g),b||(f=f.replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")),d=a.substring(h,e-2),d&&i.push(d),i.push({expression:f,attributeName:b}),h=g+2),e=0);return d=a.substring(h),d&&i.push(d),i.text=a,i.attributeName=b,i.element=c,i.isExpression=!0,f?i:null},GetValue:function(a,b,c,d){var e,f="",g=c.length,h=-1;if(!a)return c.text;if(1==g)f=lb.Execute(a,b,c[0],c,d);else for(;++h"+j)),j}};l.VirtualElement=l.inherit(m,{tagName:function(a){return a?(this._tagName=a,this):this._tagName},html:function(a){return arguments.length>0?(a=null==a?"":a,this._state?this._state.html!==a&&(this._state.html=a,ib.html(this._el,a)):(this._innerHTML=a,ib.html(this._el,a)),this._children=[],this):this._innerHTML||""},text:function(a){return arguments.length>0?(null!=a&&(a=h(a),this.html(a)),this):this.html()},parent:function(){return this._parent},children:function(a){return"number"==typeof a?this._children[a]:this._children},attr:function(a,c){var d,e=this;if("string"==typeof a){var f=this._tagName,g=this._attributes.type,h=c,i=fb.data(this),j=this._getAttr("value");if(a=l.unwrapObservable(a),a=ib.attrFix[a]||a,c=l.unwrapObservable(c),l.isObservable(h)&&"value"==a&&ib.valueTagNames[f]&&(!g||ib.valueTypes[g])?(i.subscribe="select"==f?"change":"input",i.valueObservable=h):!l.isObservable(h)||"checked"!=a||"checkbox"!=g&&"radio"!=g||(i.subscribe="click",i.valueObservable=h),1==arguments.length)return d=this._getAttr(a),void 0===d?null:d;"checked"!=a||null==c||this._fake?"disabled"==a&&(c=c?"disabled":null):c="radio"==this._attributes.type&&"string"==typeof c&&j!=c&&null!=j?null:c?"checked":null,"textarea"!=f||"value"!=a||this._el?"value"==a&&"select"==f?(this._values=b(l.toArray(c)),ib.attr(this._el,a,c)):(this._haveAttributes=!0,this._state?this._state.attributes[a]!==c&&(this._state.attributes[a]=c,ib.attr(this._el,a,c)):(this._attributes[a]=c,ib.attr(this._el,a,c))):this.html(c)}else l.isPlainObject(a)&&l.each(a,function(a,b){e.attr(b,a)});return this},removeAttr:function(a){return this._attributes[a]=null,ib.removeAttr(this._el,a),this},css:function(a,b){var c=this;if("string"==typeof a){if(a=l.unwrap(a),b=l.unwrap(b),!a)return;if(a=a.toString().replace(/-\w/g,function(a){return a.charAt(1).toUpperCase()}),1===arguments.length)return b=this._getCss(a),void 0===b?null:b;"display"==a&&(b="none"==b||!b&&""!==b?"none":""),this._haveStyle=!0,m.CssNumbers[a]||(b=l.toUnit(b)),this._state?this._state.style[a]!==b&&(this._state.style[a]=b,ib.css(this._el,a,b)):(this._style[a]=b,ib.css(this._el,a,b))}else l.isPlainObject(a)&&l.each(a,function(a,b){c.css(b,a)});return this},addChild:function(a,b){var c,d=this._template||this._children;return a&&(a._parent=this,this._childrenEach||this._each?a._each=!0:this._el&&(c=i(a.render(l.domQuery(this))),a._el=c.childNodes[0],"number"==typeof b?this._el.insertBefore(c,this._el.childNodes[b]):this._el.appendChild(c)),"number"==typeof b?d.splice(b,0,a):d.push(a)),this},addClass:function(a){return p("add",this,a),ib.addClass(this._el,a),this},removeClass:function(a){return p("remove",this,a),ib.removeClass(this._el,a),this},toggleClass:function(a,b){b===!1?this.removeClass(a):this.addClass(a)},hasClass:function(a){return-1!=g(this._attributes[W],a)},renderBeginTag:function(){var a;return a="<"+this._tagName,this._haveAttributes&&(a+=this._renderAttributes()),this._haveStyle&&(a+=n(this._style,this._state)),a+=this._isSelfClosing?" />":">"},renderEndTag:function(){return this._isSelfClosing?"":""},render:function(a,b){var c="",d="",e=this._el;return void 0!==b&&(this._state={attributes:{},style:{},html:null,expressions:{}},this._states||(this._states={}),this._states[b]=this._state),this._el=void 0,this._execute(a),this._el=e,this._renderMode!=m.RenderMode.None&&(this._renderMode!=m.RenderMode.ElementOnly&&(d=this._state&&null!==this._state.html?this._state.html:null!=this._innerHTML?this._innerHTML:this.renderChildren(a,b)),c+=this.renderBeginTag(),c+=d,c+=this.renderEndTag()),this._state=null,c},renderChildren:function(a,b){for(var c,d,e="",f=this._template||this._children,g=f.length,h=-1;++he;e++)d=a.childNodes[b],d&&r("remove",d)&&b++},setVisibility:function(a,b){b?ob.show(a):ob.hide(a)},show:function(a){r("show",a)},hide:function(a){r("hide",a)}};l.VirtualComment=l.inherit(m,t,{renderBeginTag:function(){var a=this._getAttr(cb),b=""},renderEndTag:function(){var a=this._getAttr(cb),b=""},_executeAttributeExpressions:l.noop}),t.Is=function(a){return t.prototype.isPrototypeOf(a)};var pb={};z.QueryCache={},z.prototype={options:function(){return this._options},dataIndex:x("_dataIndex"),context:x("_context"),popContext:function(){this._context&&(this._context=this._context.$parentContext)},applyContextToElement:function(a){var b=fb.createIfNotExists(a);b.domQuery=this,b.context=this._context,(this._hasChanged||a._each&&!a._parent._each)&&(a._parent&&!a._each&&(b=fb.createIfNotExists(a._parent),b.childrenContext=this._context),this._hasChanged=!1,b.haveData=!0)},pushContext:function(a){var b,c=this._context,d=c?c.$parents.slice(0):[];return this._hasChanged=!0,c&&d.unshift(c.$this),b={$this:a,$root:c?c.$root:a,$parent:c?c.$this:null,$parents:c?d:[],$index:this._dataIndex||null,$parentContext:c||null},b.$context=b,this._context=b,this.applyDefinedContextProperties(),b},getSyncIndex:function(){for(var a=this._context,b="";a&&a.$index;)b=a.$index.__value__+"_"+b,a=a.$parentContext;return b},contextBubble:function(a,b){var c=this._context;this._context=a,b(),this._context=c},addProperty:function(a,b){this._contextProperties[a]=b,this.applyDefinedContextProperties()},removeProperty:function(a){delete this._contextProperties[a]},applyDefinedContextProperties:function(){var a,b=this._context,c=this._contextProperties;for(a in c)b[a]=c[a]},executeElementQuery:function(a){var b=m.Is(a)?a._attributes[db]:1==a.nodeType?a.getAttribute(db):a.nodeValue.substring(a.nodeValue.indexOf("blocks")+6).replace(V,"");b&&this.executeQuery(a,b)},executeQuery:function(a,b){var c=z.QueryCache[b]||A(b,a);this.executeMethods(a,c)},executeMethods:function(a,b){for(var c,d,e,f,g,h,i,j=fb.data(a),k=0,n=0;nk,k=kb.currentObservables().length,d.push(e)):d.push(c.passRawValues?e.rawValue:e.value),c===l.queries["if"]||c===l.queries.ifnot){if(!e.value&&c===l.queries["if"]||e.value&&c===l.queries.ifnot){if(!f[2])break;this.executeQuery(a,f[2]);break}this.executeQuery(a,f[1]);break}if(m.Is(a)){if(t.Is(a)&&!c.supportsComments)continue;if(c.call)c.call===!0?a[b[n].name].apply(a,d):(d.unshift(c.prefix||b[n].name),a[c.call].apply(a,d));else if(c.preprocess&&c.preprocess.apply(a,d)===!1){this.subscribeObservables(b[n],j,h);break}}else if(c.call){var p=fb.data(a).virtual;p._each&&(p=m("div"),p._el=a,p._fake=!0),c.call===!0?p[b[n].name].apply(p,d):(d.unshift(c.prefix||b[n].name),p[c.call].apply(p,d))}else j&&j.preprocess&&c.ready?c.ready.apply(a,d):c.update&&c.update.apply(a,d);this.subscribeObservables(b[n],j,h)}else j.haveData=!0,j.execute||(j.execute=[]),j.execute.push(b[n])},subscribeObservables:function(a,b,c){var d=kb.stopObserving();b&&(b.haveData=!0,l.each(d,function(d){b.observables[d.__id__+a.query]||(b.observables[d.__id__+a.query]=d,d._elements.push({elementId:b.id,cache:[a],context:c}))}))},createElementObservableDependencies:function(a){for(var b,c,d,e=0;e1?this.toggleClass(a,!!b):this.addClass(a)},update:function(a,b){var c=fb.data(this).virtual;c._each&&(c=m(),c._el=this),arguments.length>1?c.toggleClass(a,b):c.addClass(a)}},html:{call:!0},text:{call:!0},visible:{call:"css",prefix:"display"},attr:{passRawValues:!0,call:!0},val:{passRawValues:!0,call:"attr",prefix:"value"},checked:{passRawValues:!0,call:"attr"},disabled:{passRawValues:!0,call:"attr"},css:{call:!0},width:{call:"css"},height:{call:"css"},focused:{preprocess:l.noop,update:function(a){a&&this.focus()}},on:{ready:function(a,b,c){if(a&&b){b=l.toArray(b);var d=this,e=function(a){var d=l.context(this),e=d.$template||d.$view||d.$root;l.each(b,function(b){b.call(e,a,c)})};a=l.isArray(a)?a:a.toString().split(" "),l.each(a,function(a){f(d,a,e)})}}}}),l.each(["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout","select","change","submit","reset","focus","blur","keydown","keypress","keyup"],function(a){l.queries[a]={passRawValues:!0,ready:function(b,c){l.queries.on.ready.call(this,a,b,c)}}});var rb="__blocks.observable__";B.prototype={dispose:function(){this.childNodesCount=void 0,this.startIndex=0,this.observableLength=void 0,this.startOffset=0,this.endOffset=0},setStartIndex:function(a){this.startIndex=a+this.startOffset},setChildNodesCount:function(a){void 0===this.childNodesCount&&(this.observableLength=this.observable.__value__.length),this.childNodesCount=a-(this.startOffset+this.endOffset)},chunkLength:function(a){var b,c=this.chunkLengths,d=fb.id(a),e=c[d]||(this.childNodesCount||a.childNodes.length)/(this.observableLength||this.observable.__value__.length);return b=l.isNaN(e)||1/0===e?0:Math.round(e),c[d]=b,b},getAt:function(a,b){for(var c=this.chunkLength(a),d=a.childNodes,e=[],f=0;c>f;f++)e[f]=d[b*c+f+this.startIndex];return e},insertAt:function(a,b,c){ob.insert(a,this.chunkLength(a)*b+this.startIndex,l.isArray(c)?c:[c])},removeAt:function(a,b){var c=this.chunkLength(a);ob.remove(a,c*b+this.startIndex,c)},remove:function(a,b){var c=this;this.each(function(d){for(var e=0;b>e;e++)c.removeAt(d,a)}),fb.collectGarbage(),this.dispose(),this.observable._indexes.splice(a,b)},removeAll:function(){var a=this,b=this.observable.__value__;this.each(function(c){l.each(b,function(){a.removeAt(c,0)})})},add:function(a,b){var c=this,d=this.observable;l.each(a,function(a,c){d._indexes.splice(b+c,0,l.observable(b+c))}),this.each(function(e,f){var g,h=l.domQuery(e),i=l.context(e),j="";if(h.contextBubble(i,function(){g=h.getSyncIndex();for(var c=0;c0?c.add(a.slice(b.length),b.length):e>0&&c.remove(a.length,e),this.__value__=a,U.trigger(this,"remove",{type:"remove",items:b,index:0}),U.trigger(this,"add",{type:"add",items:a,index:0}),this},add:function(a,b){return this.splice(l.isNumber(b)?b:this.__value__.length,0,a),this},addMany:function(a,b){return this.splice.apply(this,[l.isNumber(b)?b:this.__value__.length,0].concat(l.toArray(a))),this},swap:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;l.swap(d,a,b);for(var g=0;gb?(f.insertAt(c,a,f.getAt(c,b)),f.insertAt(c,b,f.getAt(c,a))):(f.insertAt(c,b,f.getAt(c,a)),f.insertAt(c,a,f.getAt(c,b)));return this},move:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;l.move(d,a,b),b>a&&b++;for(var g=0;g1?this().slice(a,b):this().slice(a)},join:function(a){return arguments.length>0?this().join(a):this().join()},pop:function(){var a=this,b=a();return a.splice(b.length-1,1)[0]},push:function(){return this.addMany(arguments),this.__value__.length},reverse:function(){var a=this().reverse(),b=this._chunkManager;return this._indexes.reverse(),b.each(function(c){for(var d=1;d0,g=this._chunkManager,h=this._indexes,i=0;e>i;i++){var j=[d[i],i];g.each(function(a){j.push(g.getAt(a,i))}),d[i]=j}for(d.sort(function(b,c){return b=b[0],c=c[0],f?a.call(this,b,c):c>b?-1:b>c?1:0}),h.length>0&&(this._indexes=[]),i=0;e>i;i++)c=d[i],h.length>0&&this._indexes.push(h[c[1]]),b=2,g.each(function(a){g.insertAt(a,e,c[b]),b++}),d[i]=c[0];return this.update(),d},splice:function(a,b){var c,d=this.__value__,e=this._chunkManager,f=[],g=arguments;return a=0>a?d.length-a:a,b&&a=0&&(b=Math.min(d.length-a,b),f=d.slice(a,a+b),U.trigger(this,"removing",{type:"removing",items:f,index:a}),e.remove(a,b),f=d.splice(a,b),U.trigger(this,"remove",{type:"remove",items:f,index:a})),g.length>2&&(c=l.toArray(g),c.splice(0,2),U.trigger(this,"adding",{type:"adding",index:a,items:c}),e.add(c,a),d.splice.apply(d,[a,0].concat(c)),U.trigger(this,"add",{type:"add",index:a,items:c})),this.update(),f},unshift:function(){return this.addMany(arguments,0),this.__value__.length}}}});var ub={waiting:{},initExpressionExtender:function(a){var b=a.clone();return b.view=l.observable([]),b.view._connections={},b.view._observed=[],b.view._updateObservable=l.bind(ub.updateObservable,b),b._operations=a._operations?l.clone(a._operations):[],b._getter=l.bind(ub.getter,b),b.view._initialized=!1,b.view.on("get",b._getter),b},getter:function(){U.off(this.view,"get",this._getter),this._getter=void 0,this.view._initialized=!0,ub.executeOperationsPure(this)},updateObservable:function(){ub.executeOperations(this)},executeOperationsPure:function(a){var b=[],c=a.view._observed,d=a.view._updateObservable;l.each(c,function(a){U.off(a,"change",d)}),c=a.view._observed=[],kb.startObserving(),l.each(a._operations,function(c){if("step"==c.type){var d=a.view;a.view=l.observable([]),a.view._connections={},b.length&&ub.executeOperationsChunk(a,b),c.step.call(a.__context__),a.view=d}else b.push(c)}),b.length&&ub.executeOperationsChunk(a,b),l.each(kb.stopObserving(),function(a){c.push(a),a.on("change",d)})},executeOperations:function(a){var b=a.__id__,c=ub.waiting;c[b]||(c[b]=!0,setTimeout(function(){ub.executeOperationsPure(a),c[b]=!1},0))},executeOperationsChunk:function(a,b){var c="add",d="remove",e="exists",f=e,g=a.__value__,h=a.view,i=h._connections,j={},k=0,m=h.update,n=0,o=g.length;h.update=l.noop,l.each(b,function(c){"skip"==c.type?(n=c.skip,l.isFunction(n)&&(n=n.call(a.__context__)),n=l.unwrap(n)):"take"==c.type?(o=c.take,l.isFunction(o)&&(o=o.call(a.__context__)),o=l.unwrap(o)):"sort"==c.type&&(g=l.isString(c.sort)?l.clone(g).sort(function(a,b){return a[c.sort]-b[c.sort]}):l.isFunction(c.sort)?l.clone(g).sort(c.sort):l.clone(g).sort(),1==b.length&&b.push({type:"filter",filter:function(){return!0}}))}),l.each(g,function(m,p){if(0>=o){for(;h().length-k>0;)h.removeAt(h().length-1);return!1}switch(l.each(b,function(b){var h=b.filter;if(f=void 0,h){if(!h.call(a.__context__,m,p,g))return f=void 0,void 0!==i[p]&&(f=d),!1;f=e,void 0===i[p]&&(f=c)}else if("skip"==b.type){if(f=e,n-=1,n>=0)return f=d,!1;0>n&&void 0===i[p]&&(f=c)}else if("take"==b.type){if(0>=o)return f=d,!1;o-=1,f=e,void 0===i[p]&&(f=c)}}),f){case c:j[p]=k,h.splice(k,0,m),k++;break;case d:h.removeAt(k);break;case e:j[p]=k,k++}}),h._connections=j,h.update=m,h.update()}};l.observable.filter=function(a){var b=ub.initExpressionExtender(this),c=a;return(!l.isFunction(c)||l.isObservable(c))&&(c=function(b){var c=l.unwrap(a),d=String(c).toLowerCase();return b=String(l.unwrap(b)).toLowerCase(),!c||-1!=b.indexOf(d)}),b._operations.push({type:"filter",filter:c}),b.on("add",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),ub.executeOperations(b))}),b.on("remove",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),ub.executeOperations(b))}),b},l.observable.step=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"step",step:a}),b},l.observable.skip=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"skip",skip:a}),b},l.observable.take=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"take",take:a}),b},l.observable.sort=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"sort",sort:a}),b},l.query=function(a,b){l.domReady(function(){l.$unwrap(b,function(b){l.isElement(b)||(b=document.body);var c=new z,d=u(b)[0],e=window.__blocksServerData__;c.pushContext(a),c._serverData=e,e?d.render(c):d.sync(c),c.createElementObservableDependencies([b])})})},l.executeQuery=function(a,b){var c=m.Is(a)?"preprocess":"update",d=Array.prototype.slice.call(arguments,2),e=l.queries[b];e.passDomQuery&&d.unshift(l.domQuery(a)),e[c].apply(a,d) -},l.context=function(a,b){if(a=l.$unwrap(a)){var c=fb.data(a);if(c){if(b&&c.childrenContext)return c.childrenContext;if(c.context)return c.context}return l.context(m.Is(a)?a._parent:a.parentNode,!0)}return null},l.dataItem=function(a){var b=l.context(a);return b?b.$this:null},l.isObservable=function(a){return!!a&&a.__identity__===rb},l.unwrapObservable=function(a){return a&&a.__identity__===rb?a():a},l.domQuery=function(a){if(a=l.$unwrap(a)){var b=fb.data(a,"domQuery");return b?b:l.domQuery(m.Is(a)?a._parent:a.parentNode)}return null},l.extend(l.queries,{view:{passDomQuery:!0,preprocess:function(a,b){b.isActive()?(this.css("display",""),b._html&&l.queries.template.preprocess.call(this,a,b._html,b)):this.css("display","none"),X["with"].preprocess.call(this,a,b,"$view")},update:function(a,b){b.isActive()?(b._html&&(X["with"].preprocess.call(this,a,b,"$view"),this.innerHTML=b._html,b._children=b._html=void 0,l.each(u(this.childNodes[0]),function(b){m.Is(b)&&b.sync(a)}),a.createElementObservableDependencies(this.childNodes)),ob.show(this)):ob.hide(this)}},navigateTo:{update:function(a,b){function c(c){c=c||window.event,c.preventDefault(),c.returnValue=!1,l.isString(a)?window.location.href=a:a.navigateTo(a,b)}f(this,"click",c)}},trigger:{}});var vb={required:{priority:9,validate:function(a,b){return a!==b.defaultValue&&""!==a&&a!==!1&&void 0!==a&&null!==a?!0:void 0}},minlength:{priority:19,validate:function(a,b,c){return void 0===a||null===a?!1:a.length>=parseInt(c,10)}},maxlength:{priority:29,validate:function(a,b,c){return void 0===a||null===a?!0:a.length<=parseInt(c,10)}},min:{priority:39,validate:function(a,b,c){return void 0===a||null===a?!1:a>=c}},max:{priority:49,validate:function(a,b,c){return void 0===a||null===a?!1:c>=a}},email:{priority:59,validate:function(a){return/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(a)}},url:{priority:69,validate:function(a){return/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/.test(a)}},date:{priority:79,validate:function(a){return a?!/Invalid|NaN/.test(new Date(a.toString()).toString()):!1}},creditcard:{priority:89,validate:function(a){if(l.isString(a)&&0===a.length)return!1;if(l.isNumber(a)&&(a=a.toString()),/[^0-9 \-]+/.test(a))return!1;var b=0,c=0,d=!1;a=a.replace(/\D/g,"");for(var e=a.length-1;e>=0;e--){var f=a.charAt(e);c=parseInt(f,10),d&&(c*=2)>9&&(c-=9),b+=c,d=!d}return b%10===0}},regexp:{priority:99,validate:function(a,b,c){return l.isRegExp(c)?void 0===a||null===a?!1:c.test(a):!1}},number:{priority:109,validate:function(a){return l.isNumber(a)?!0:l.isString(a)&&0===a.length?!1:/^(-?|\+?)(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)}},digits:{priority:119,validate:function(a){return/^\d+$/.test(a)}},letters:{priority:129,validate:function(a){return a?/^[a-zA-Z]+$/.test(a):!1}},equals:{priority:139,validate:function(a,b,c){return l.equals(a,l.unwrap(c))}}};l.observable.validation=function(a){var b,c,d=this,e=a.maxErrors,f=this.errorMessages=l.observable([]),g=this._validators=[];this.errorMessage=l.observable("");for(b in a)c=a[b],vb[b]?g.push({option:c,validate:vb[b].validate,priority:vb[b].priority}):("validate"==b||"asyncValidate"==b)&&g.push({option:"",validate:c.validate?c.validate:c,priority:c.priority||Number.POSITIVE_INFINITY,isAsync:"asyncValidate"==b});g.sort(function(a,b){return a.priority>b.priority?1:-1}),this.valid=l.observable(!0),this.validate=function(){var b,h,i,j=d.__value__,k=!0,m=0,n=0;for(f.removeAll();n=e);n++){if(h=g[n],h.isAsync)return h.validate(j,function(b){F(d,a,!!b)}),!0;b=h.option,c=h.option,l.isPlainObject(b)&&(c=b.value),l.isFunction(c)&&(c=c.call(d.__context__)),i=h.validate(j,a,c),l.isString(i)&&(i=[i]),(l.isArray(i)||!i)&&(f.addMany(l.isArray(i)?i:b&&b.message?[b.message]:c&&l.isString(c)?[c]:[]),k=!1,m++)}return F(this,a,k),this.valid(k),U.trigger(this,"validate"),k},a.validateOnChange&&this.on("change",function(){this.validate()}),a.validateInitially&&this.validate()},l.route=function(a){return H(a)},H.Is=function(a){return H.prototype.isPrototypeOf(a)},H.Has=function(a){return null!=a._routeString},H.Combine=function(a,b){if(!H.Has(b))return a;if(!H.Has(a))return b;var c=H(a+b);return l.extend(c._wildcard,a._wildcard,b._wildcard),l.extend(c._optional,a._optional,b._optional),l.extend(c._validate,a._validate,b._validate),c},H.prototype={wildcard:function(){var a=this._wildcard,b=l.flatten(l.toArray(arguments));return l.each(b,function(b){a[b]=!0}),this},optional:function(a,b){return this._addMetadata("optional",a,b),this},validate:function(a,b){return this._addMetadata("validate",a,b),this},transform:function(a,b){return this._addMetadata("_transform",a,b),this},toString:function(){return this._routeString?this._routeString.toString():""},trailingSlash:function(){return this},_transfromParam:function(a,b){var c=this._transform[a];return""===b&&l.has(this._optional,a)&&(b=this._optional[a]),c?c(b):b},_validateParam:function(a,b){var c=this._validate[a];return c?c(b):!0},_addMetadata:function(a,b,c){var d=this["_"+a];l.isPlainObject(b)?l.each(b,function(a,b){d[b]=a}):l.isString(b)&&(d[b]=c)}},l.core.Router=I,I.GenerateRoute=function(a,b){var c=new I,d=c.registerRoute(a),e=c.routeTo(d,b);return 0===a.indexOf("/")&&0!==e.indexOf("/")?"/"+e:e},I.prototype={registerRoute:function(a,b){a=H(a),b=H(b?this._routes[H(b).toString()].route:void 0);var c=H.Combine(b,a),d=c._routeString=c._routeString.replace(/^\//,""),e=this._generateRouteStringData(d);return this._routes[d]={route:c,data:e,regExCollection:this._generateRouteRegEx(c,e),parent:H.Has(b)?this._routes[b.toString()]:void 0},d},routeTo:function(a,b){var c,d=this._routes[a],e=d.route,f="";return b=b||{},l.each(d.data,function(a){c=a.param,c?e._validateParam(b[c])&&(f+=l.has(b,c)?b[c]:e._optional[c]):f+=a.string}),f},routeFrom:function(a){var b,c=this._getUrlParams,d=[];return a=decodeURI(a),l.each(this._routes,function(e){l.each(e.regExCollection,function(f){if(f.regEx.test(a)){for(b=f.regEx.exec(a);e;)d.unshift({id:e.route._routeString,params:c(e,f.params,b)}),e=e.parent;return!1}})}),d.length?d:null},_getUrlParams:function(a,b,c){var d,e,f=a.route,g={};return l.each(b,function(a,b){d=c[b+1],f._validateParam(a,d)&&(g[a]=f._transfromParam(a,d))}),l.each(a.data,function(a){e=a.param,e&&!g[e]&&l.has(f._optional,e)&&void 0!==f._optional[e]&&(g[e]=f._optional[e])}),g},_generateRouteRegEx:function(a,b){var c,d,e,f,g,h=[],i=this._sliceLastFromRegExString,j=this._getOptionalParametersCombinations(a,b);return l.each(j,function(j){e="^",f=[],l.each(b,function(b){if(g=b.param){if(d=!0,l.has(a._optional,g)&&j[g]||(c=!1),j[g])return;f.push(g),e+=a._wildcard[g]?l.has(a._optional,g)?"(.*?)":"(.+?)":l.has(a._optional,g)?"([^/]*?)":"([^/]+?)"}else"/"==b.string&&(d&&c&&(e=i(e)),d=!1,c=!0),e+=G(b.string)}),d&&c&&(e=i(e)),h.push({regEx:new RegExp(e+"$","i"),params:f})}),h},_sliceLastFromRegExString:function(a){for(var b,c=0;cd;d++){for(c={},c.__lowestIndex__=h,c.__length__=0,e=0;h>e;e++)d&Math.pow(2,e)&&(e=200&&300>c||304===c;d?this.callSuccess(b.responseText):this.callError(b.statusText)},xhrError:function(){this.callError()},scriptRequest:function(){var a=this,b=this.options,c=document.createElement("script"),d={},e=l.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback;d[b.jsonp]=e,this.appendDataToUrl(d),window[e]=function(b){window[e]=null,a.scriptLoad(b)},c.onerror=this.scriptError,c.async=b.async,c.src=b.url,document.head.appendChild(c)},scriptLoad:function(a){this.callSuccess(a)},scriptError:function(){this.callError()},appendDataToUrl:function(a){var b=this,c=this.options,d=/\?/.test(c.url);l.isPlainObject(a)?l.each(a,function(a,e){c.url+=b.append(d,e,a.toString())}):l.isArray(a)?l.each(a,function(a,c){b.appendDataToUrl(c)}):c.url+=b.append(d,a.toString(),"")},append:function(a,b,c){var d=a?"&":"?";return d+=b,c&&(d+="="+c),d},callSuccess:function(a){var b=this.options.success,c="success";b&&b(a,c,null),this.callComplete(c)},callError:function(a){var b=this.options.error,c="error";b&&b(null,c,a),this.callComplete(c)},callComplete:function(a){var b=this.options.complete;b&&b(null,a)}};var xb="create",yb="update",zb="destroy",Ab="GET",Bb="application/json; charset=utf-8",Cb=["change","sync","error","requestStart","requestEnd"];l.DataSource=L,L.ArrayMode=1,L.ObjectMode=2,L.prototype={options:{baseUrl:"",idAttr:"",mode:L.ArrayMode,read:{url:"",type:Ab,contentType:Bb},update:{url:"",type:"POST",contentType:Bb},create:{url:"",type:"POST",contentType:Bb},destroy:{url:"",type:"POST",contentType:Bb}},read:function(a,b){var c=this;return b=arguments[arguments.length-1],l.isFunction(a)&&(a={}),a=a||{},c._ajax("read",a,function(d){l.isString(d)&&(d=JSON.parse(d)),c.options.mode==L.ArrayMode&&(l.isArray(d)||(l.isArray(d.value)?d=d.value:l.isObject(d)&&l.each(d,function(a){return l.isArray(a)?(d=a,!1):void 0}))),l.isArray(d)||(d=[d]),a&&a.__updateData__===!1||c._updateData(d),b&&l.isFunction(b)&&b(d)}),c},update:function(){if(0!==arguments.length){var a;arguments.length>1&&l.type(arguments[0])!=l.type(arguments[1])?(a=[arguments[1]],a[0][this.options.idAttr]=arguments[0]):a=l.flatten(arguments),a.length>0&&(this._changes.push({type:yb,items:a}),this._onChangePush())}},hasChanges:function(){return this._changes.length>0},clearChanges:function(){return this._changes.splice(0,this._changes.length),this._changesMeta={},this.hasChanges(!1),this},sync:function(){var a,b=this,c=this._changes,d=c.length;return l.each(c,function(c){l.each(c.items,function(e){a=e,e.__id__&&delete e.__id__,b._ajax(c.type,{data:a},function(){d--,d||b._trigger("sync")})})}),this.clearChanges()},_ajax:function(a,b,c){var d,e=this;b=l.extend({},this.options[a],b),d=b.type.toUpperCase(),b.url=I.GenerateRoute(b.url,b.data),this._trigger("requestStart",{}),K({type:b.type,url:b.url,data:d==Ab?null:JSON.stringify(b.data),contentType:b.contentType,dataType:b.dataType,jsonp:b.jsonp,success:function(a,b,d){e._trigger("requestEnd",{}),a&&c(a,b,d)},error:function(){e._trigger("requestEnd",{}),e._trigger("error")}})},_updateData:function(a){this.data.removeAll(),this.data.addMany(a),this.clearChanges(),this._trigger("change")},_onArrayChange:function(a){var b=a.type;"remove"==b?this._remove(a.items):"removeAt"==b?this._remove(this.data.slice(a.index,a.index+a.count)):"add"==b&&this._add(a.items)},_onChangePush:function(){var a,b=this._changesMeta,c=this._changes,d=c[c.length-1],e=this.options.idAttr,f=d.type;l.each(d.items,function(d){switch(f){case xb:d.__id__=wb(),b[d.__id__]=d;break;case yb:a=b[d[e]],a&&(c.splice(a.index,1),a.item=d,a.index=c.length-1),b[d[e]]={index:c.length-1,item:d};break;case zb:a=b[d?d.__id__:void 0],a&&(c.splice(a.index,1),c.pop(),b[d.__id__]=void 0)}}),c.length>0&&this.options.autoSync?this.sync():this.hasChanges(c.length>0)},_add:function(a){this._changes.push({type:xb,items:a}),this._onChangePush()},_remove:function(a){this._changes.push({type:zb,items:a}),this._onChangePush()},_subscribeToEvents:function(){var a=this,b=this.options;l.each(Cb,function(c){b[c]&&a.on(c,b[c])})}},U.register(L.prototype,["on","_trigger","change","error","requestStart","requestEnd"]),l.core.applyExpressions("array",l.DataSource.prototype,l.toObject(["size","at","isEmpty","each"])),M.Is=function(a){return M.prototype.isPrototypeOf(a)},M.Inflate=function(a){var b,c,d={};for(b in a)c=a[b],M.Is(c)&&(c=c._options,c.propertyName=b,d[c.field||b]=c);return d},M.Create=function(a,b,c){var d;return arguments.length<3&&(c=a.value||a.defaultValue),b=a.thisArg?a.thisArg:b,d=l.observable(c,b).extend("validation",a).on("changing",a.changing,b).on("change",a.change,b),l.each(a.extenders,function(a){d=d.extend.apply(d,a)}),d},M.prototype.extend=function(){var a=this._options;return a.extenders=a.extenders||[],a.extenders.push(l.toArray(arguments)),this},N.prototype={options:{},init:l.noop,collection:function(){return this._collection},validate:function(){var a,b,c=this._properties,d=!0;for(b in c)a=this[b],l.isObservable(a)&&!a.validate()&&(d=!1);return this.valid(d),this._updateValidationErrors(),d},dataItem:function(){var a,b,c=this._properties,d={};for(a in c)b=c[a],"__id__"!=a&&l.isFunction(this[b.propertyName])&&(d[b.field||b.propertyName]=this[b.propertyName]());return this.isNew()&&delete d[this.options.idAttr],d},reset:function(a){return this._ensurePropertiesCreated(a),this},isNew:function(){var a=this.options.idAttr,b=l.unwrap(this[a]),c=this._properties[a];return!b&&0!==b||c&&b===c.defaultValue?!0:!1},read:function(a,b){return l.isFunction(a)&&(b=a,a=void 0),this._dataSource.read({data:a},b),this},destroy:function(a){return a=a===!1?!1:!0,a&&this._collection&&this._collection.remove(this),this._dataSource._remove([this.dataItem()]),this},sync:function(){return this.isNew()&&this._dataSource.add(this.dataItem()),this._dataSource.sync(),this},clone:function(){return new this.constructor(l.clone(this._initialDataItem,!0))},_setPropertyValue:function(a,b){var c=a.propertyName;l.isFunction(this[c])?(this[c](b),this._dataSource.update(this.dataItem())):this[c]=a.isObservable?this._createObservable(a,b):function(){return b}},_ensurePropertiesCreated:function(a){var b,c,d,e=this._properties;if(a){N.prototype.isPrototypeOf(a)&&(a=a.dataItem());for(c in a)b=e[c],b||(b=e[c]=l.extend({},this._application.Property.Defaults()),b.propertyName=c),this._setPropertyValue(b,a[c])}for(c in e)b=e[c],l.has(a,b.propertyName)||(d=b.field||b.propertyName,this._setPropertyValue(b,b.value||(l.has(a,d)?a[d]:b.defaultValue)))},_createObservable:function(a,b){var c=this,d=this._properties,e=M.Create(a,this,b);return e.on("change",function(){c.isNew()||c._dataSource.update(c.dataItem())}).on("validate",function(){var a,b=!0;for(a in d)if(!c[a].valid()){b=!1;break}c._updateValidationErrors(),c.valid(b)}),this._collection||e.extend(),e},_onDataSourceChange:function(){var a=l.unwrapObservable(this._dataSource.data())[0];this._ensurePropertiesCreated(a)},_updateValidationErrors:function(){var a,b,c=this._properties,d=[];for(b in c)a=this[b],a.errorMessages&&d.push.apply(d,a.errorMessages());this.validationErrors.reset(d)}},l.core.expressionsCreated&&l.core.applyExpressions("object",N.prototype);var Db=/^[#\/]|\s+$/g,Eb=/^\/+|\/+$/g,Fb=/msie [\w.]+/,Gb=/\/$/,Hb=/[?#].*$/,Ib="hash",Jb="pushState";P.prototype={start:function(){var a=this._fragment,b=document.documentMode,c=Fb.exec(navigator.userAgent.toLowerCase())&&(!b||7>=b);this._use==Ib&&c&&(this._createIFrame(),this.navigate(a)),this._initEvents(c),this._tryAdaptMechanism(a)||this._loadUrl()},navigate:function(a,b){b&&b!==!0||(b={trigger:!!b});var c=this._root+(a=this._getFragment(a||"")),d=this._use,e=this._iframe,f=this._location;if(a=a.replace(Hb,""),this._fragment===a)return!1;if(this._fragment=a,""===a&&"/"!==c&&(c=c.slice(0,-1)),this._wants==Jb&&d==Jb)this._history[b.replace?"replaceState":"pushState"]({},document.title,c);else{if(d!=Ib)return f.assign(c),!0;this._updateHash(f,a,b.replace),e&&a!==this.getFragment(this._getHash(e))&&(b.replace||e.document.open().close(),this._updateHash(e.location,a,b.replace))}return this._loadUrl(a)},_initEvents:function(a){var b=this._use,c=l.bind(this._onUrlChanged,this);this._wants==Jb&&f(document,"click",l.bind(this._onDocumentClick,this)),b==Jb?f(window,"popstate",c):b==Ib&&!a&&"onhashchange"in window?f(window,"hashchange",c):b==Ib&&(this._checkUrlInterval=setInterval(c,this._interval))},_loadUrl:function(a){var b=this._initial;return this._initial=!1,this._fragment=a=this._getFragment(a),U.trigger(this,"urlChange",{url:a,initial:b})},_getHash:function(a){var b=(a?a.location:this._location).href.match(/#(.*)$/);return b?b[1]:""},_getFragment:function(a){if(null==a)if(this._use==Jb){var b=this._root.replace(Gb,"");a=this._location.pathname,a.indexOf(b)||(a=a.slice(b.length))}else a=this._getHash();return a.replace(this._location.origin,"").replace(Db,"")},_onUrlChanged:function(){var a=this._getFragment();return a===this._fragment&&this._iframe&&(a=this._getFragment(this._getHash(this._iframe))),a===this._fragment?!1:(this._iframe&&this.navigate(a),void this._loadUrl())},_onDocumentClick:function(a){for(var b=a.target;b;){if(b&&b.tagName&&"a"==b.tagName.toLowerCase()){var c,d=b.getAttribute("download");""===d||d||!this._hostRegEx.test(b.href)||a.altKey||a.ctrlKey||a.metaKey||a.shiftKey||2===a.which||this.navigate(b.href)&&(c=document.getElementById(window.location.hash.replace(/^#/,"")),c&&c.scrollIntoView&&c.scrollIntoView(),a.preventDefault());break}b=b.parentNode}},_tryAdaptMechanism:function(a){var b=this._root,c=this._use,d=this._location,e=d.pathname.replace(/[^\/]$/,"$&/")===b;if(this._fragment=a,this._wants==Jb){if(c!=Jb&&!e)return a=this._fragment=this._getFragment(null,!0),d.replace(b+d.search+"#"+a),!0;c==Jb&&e&&d.hash&&(this._fragment=this._getHash().replace(Db,""),this._history.replaceState({},document.title,b+a+d.search))}},_updateHash:function(a,b,c){if(c){var d=a.href.replace(/(javascript:|#).*$/,"");a.replace(d+"#"+b)}else a.hash="#"+b},_createIFrame:function(){var a=document.createElement("iframe");a.style.display="none",a.src="javascript:0",a.tabIndex=-1,document.body.appendChild(a),this._iframe=a.contentWindow},_tryFixOrigin:function(){var a=window.location;a.origin||(a.origin=a.protocol+"//"+a.hostname+(a.port?":"+a.port:""))}},U.register(P.prototype,["on"]),l.observable.remote=function(a){return R(null,{options:a},null,this.__value__)},l.observable.fn.collection={read:function(a,b){var c=this.__context__;return l.isFunction(a)&&(b=a,a=void 0),this._dataSource.read({data:a},b?function(){b.call(c)}:l.noop),this},clearChanges:function(){return this._dataSource.clearChanges(),this},sync:function(){return this._dataSource.sync(),this},update:function(a,b){return 0===arguments.length?this._baseUpdate.call(this):this._dataSource.update(a,b),this},sortBy:function(a,b){if("string"==typeof a){var c=a;a=function(a){return a[c]()}}return l.sortBy(this.__value__,a,b),this},clone:function(){return R(this._Model,this._prototype,this._application,this.__value__)},_onAdding:function(a){var b=this,c=this._Model,d=a.items;l.each(d,function(a,e){N.prototype.isPrototypeOf(a)&&(a=a.dataItem()),d[e]=new c(a,b)})},_onChange:function(a){var b,c=a.type,d=a.items,e=[],f=0;if(!this._internalChanging){for(;f++g;)d=a.charAt(g),"{"==d&&"{"==a.charAt(g+1)?e=g+2:"}"==d&&"}"==a.charAt(g+1)&&(e&&(f=a.substring(e,g),b||(f=f.replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")),d=a.substring(h,e-2),d&&i.push(d),i.push({expression:f,attributeName:b}),h=g+2),e=0);return d=a.substring(h),d&&i.push(d),i.text=a,i.attributeName=b,i.element=c,i.isExpression=!0,f?i:null},GetValue:function(a,b,c,d){var e,f="",g=c.length,h=-1;if(!a)return c.text;if(1==g)f=lb.Execute(a,b,c[0],c,d);else for(;++h"+j)),j}};l.VirtualElement=l.inherit(m,{tagName:function(a){return a?(this._tagName=a,this):this._tagName},html:function(a){return arguments.length>0?(a=null==a?"":a,this._state?this._state.html!==a&&(this._state.html=a,ib.html(this._el,a)):(this._innerHTML=a,ib.html(this._el,a)),this._children=[],this):this._innerHTML||""},text:function(a){return arguments.length>0?(null!=a&&(a=h(a),this.html(a)),this):this.html()},parent:function(){return this._parent},children:function(a){return"number"==typeof a?this._children[a]:this._children},attr:function(a,c){var d,e=this;if("string"==typeof a){var f=this._tagName,g=this._attributes.type,h=c,i=fb.data(this),j=this._getAttr("value");if(a=l.unwrapObservable(a),a=ib.attrFix[a]||a,c=l.unwrapObservable(c),l.isObservable(h)&&"value"==a&&ib.valueTagNames[f]&&(!g||ib.valueTypes[g])?(i.subscribe="select"==f?"change":"input",i.valueObservable=h):!l.isObservable(h)||"checked"!=a||"checkbox"!=g&&"radio"!=g||(i.subscribe="click",i.valueObservable=h),1==arguments.length)return d=this._getAttr(a),void 0===d?null:d;"checked"!=a||null==c||this._fake?"disabled"==a&&(c=c?"disabled":null):c="radio"==this._attributes.type&&"string"==typeof c&&j!=c&&null!=j?null:c?"checked":null,"textarea"!=f||"value"!=a||this._el?"value"==a&&"select"==f?(this._values=b(l.toArray(c)),ib.attr(this._el,a,c)):(this._haveAttributes=!0,this._state?this._state.attributes[a]!==c&&(this._state.attributes[a]=c,ib.attr(this._el,a,c)):(this._attributes[a]=c,ib.attr(this._el,a,c))):this.html(c)}else l.isPlainObject(a)&&l.each(a,function(a,b){e.attr(b,a)});return this},removeAttr:function(a){return this._attributes[a]=null,ib.removeAttr(this._el,a),this},css:function(a,b){var c=this;if("string"==typeof a){if(a=l.unwrap(a),b=l.unwrap(b),!a)return;if(a=a.toString().replace(/-\w/g,function(a){return a.charAt(1).toUpperCase()}),1===arguments.length)return b=this._getCss(a),void 0===b?null:b;"display"==a&&(b="none"==b||!b&&""!==b?"none":""),this._haveStyle=!0,m.CssNumbers[a]||(b=l.toUnit(b)),this._state?this._state.style[a]!==b&&(this._state.style[a]=b,ib.css(this._el,a,b)):(this._style[a]=b,ib.css(this._el,a,b))}else l.isPlainObject(a)&&l.each(a,function(a,b){c.css(b,a)});return this},addChild:function(a,b){var c,d=this._template||this._children;return a&&(a._parent=this,this._childrenEach||this._each?a._each=!0:this._el&&(c=i(a.render(l.domQuery(this))),a._el=c.childNodes[0],"number"==typeof b?this._el.insertBefore(c,this._el.childNodes[b]):this._el.appendChild(c)),"number"==typeof b?d.splice(b,0,a):d.push(a)),this},addClass:function(a){return p("add",this,a),ib.addClass(this._el,a),this},removeClass:function(a){return p("remove",this,a),ib.removeClass(this._el,a),this},toggleClass:function(a,b){b===!1?this.removeClass(a):this.addClass(a)},hasClass:function(a){return-1!=g(this._attributes[W],a)},renderBeginTag:function(){var a;return a="<"+this._tagName,this._haveAttributes&&(a+=this._renderAttributes()),this._haveStyle&&(a+=n(this._style,this._state)),a+=this._isSelfClosing?" />":">"},renderEndTag:function(){return this._isSelfClosing?"":""},render:function(a,b){var c="",d="",e=this._el;return void 0!==b&&(this._state={attributes:{},style:{},html:null,expressions:{}},this._states||(this._states={}),this._states[b]=this._state),this._el=void 0,this._execute(a),this._el=e,this._renderMode!=m.RenderMode.None&&(this._renderMode!=m.RenderMode.ElementOnly&&(d=this._state&&null!==this._state.html?this._state.html:null!=this._innerHTML?this._innerHTML:this.renderChildren(a,b)),c+=this.renderBeginTag(),c+=d,c+=this.renderEndTag()),this._state=null,c},renderChildren:function(a,b){for(var c,d,e="",f=this._template||this._children,g=f.length,h=-1;++he;e++)d=a.childNodes[b],d&&r("remove",d)&&b++},setVisibility:function(a,b){b?ob.show(a):ob.hide(a)},show:function(a){r("show",a)},hide:function(a){r("hide",a)}};l.VirtualComment=l.inherit(m,t,{renderBeginTag:function(){var a=this._getAttr(cb),b=""},renderEndTag:function(){var a=this._getAttr(cb),b=""},_executeAttributeExpressions:l.noop}),t.Is=function(a){return t.prototype.isPrototypeOf(a)};var pb={};z.QueryCache={},z.prototype={options:function(){return this._options},dataIndex:x("_dataIndex"),context:x("_context"),popContext:function(){this._context&&(this._context=this._context.$parentContext)},applyContextToElement:function(a){var b=fb.createIfNotExists(a);b.domQuery=this,b.context=this._context,(this._hasChanged||a._each&&!a._parent._each)&&(a._parent&&!a._each&&(b=fb.createIfNotExists(a._parent),b.childrenContext=this._context),this._hasChanged=!1,b.haveData=!0)},pushContext:function(a){var b,c=this._context,d=c?c.$parents.slice(0):[];return this._hasChanged=!0,c&&d.unshift(c.$this),b={$this:a,$root:c?c.$root:a,$parent:c?c.$this:null,$parents:c?d:[],$index:this._dataIndex||null,$parentContext:c||null},b.$context=b,this._context=b,this.applyDefinedContextProperties(),b},getSyncIndex:function(){for(var a=this._context,b="";a&&a.$index;)b=a.$index.__value__+"_"+b,a=a.$parentContext;return b},contextBubble:function(a,b){var c=this._context;this._context=a,b(),this._context=c},addProperty:function(a,b){this._contextProperties[a]=b,this.applyDefinedContextProperties()},removeProperty:function(a){delete this._contextProperties[a]},applyDefinedContextProperties:function(){var a,b=this._context,c=this._contextProperties;for(a in c)b[a]=c[a]},executeElementQuery:function(a){var b=m.Is(a)?a._attributes[db]:1==a.nodeType?a.getAttribute(db):a.nodeValue.substring(a.nodeValue.indexOf("blocks")+6).replace(V,"");b&&this.executeQuery(a,b)},executeQuery:function(a,b){var c=z.QueryCache[b]||A(b,a);this.executeMethods(a,c)},executeMethods:function(a,b){for(var c,d,e,f,g,h,i,j=fb.data(a),k=0,n=0;nk,k=kb.currentObservables().length,d.push(e)):d.push(c.passRawValues?e.rawValue:e.value),c===l.queries["if"]||c===l.queries.ifnot){if(!e.value&&c===l.queries["if"]||e.value&&c===l.queries.ifnot){if(!f[2])break;this.executeQuery(a,f[2]);break}this.executeQuery(a,f[1]);break}if(m.Is(a)){if(t.Is(a)&&!c.supportsComments)continue;if(c.call)c.call===!0?a[b[n].name].apply(a,d):(d.unshift(c.prefix||b[n].name),a[c.call].apply(a,d));else if(c.preprocess&&c.preprocess.apply(a,d)===!1){this.subscribeObservables(b[n],j,h);break}}else if(c.call){var p=fb.data(a).virtual;p._each&&(p=m("div"),p._el=a,p._fake=!0),c.call===!0?p[b[n].name].apply(p,d):(d.unshift(c.prefix||b[n].name),p[c.call].apply(p,d))}else j&&j.preprocess&&c.ready?c.ready.apply(a,d):c.update&&c.update.apply(a,d);this.subscribeObservables(b[n],j,h)}else j.haveData=!0,j.execute||(j.execute=[],j.executeHash={}),j.executeHash[b[n].query]||(j.execute.push(b[n]),j.executeHash[b[n].query]=!0)},subscribeObservables:function(a,b,c){var d=kb.stopObserving();b&&(b.haveData=!0,l.each(d,function(d){b.observables[d.__id__+a.query]||(b.observables[d.__id__+a.query]=d,d._elements.push({elementId:b.id,cache:[a],context:c}))}))},createElementObservableDependencies:function(a){for(var b,c,d,e=0;e1?this.toggleClass(a,!!b):this.addClass(a)},update:function(a,b){var c=fb.data(this).virtual;c._each&&(c=m(),c._el=this),arguments.length>1?c.toggleClass(a,b):c.addClass(a)}},html:{call:!0},text:{call:!0},visible:{call:"css",prefix:"display"},attr:{passRawValues:!0,call:!0},val:{passRawValues:!0,call:"attr",prefix:"value"},checked:{passRawValues:!0,call:"attr"},disabled:{passRawValues:!0,call:"attr"},css:{call:!0},width:{call:"css"},height:{call:"css"},focused:{preprocess:l.noop,update:function(a){a&&this.focus()}},on:{ready:function(a,b,c){if(a&&b){b=l.toArray(b);var d=this,e=function(a){var d=l.context(this),e=d.$template||d.$view||d.$root;l.each(b,function(b){b.call(e,a,c)})};a=l.isArray(a)?a:a.toString().split(" "),l.each(a,function(a){f(d,a,e)})}}}}),l.each(["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout","select","change","submit","reset","focus","blur","keydown","keypress","keyup"],function(a){l.queries[a]={passRawValues:!0,ready:function(b,c){l.queries.on.ready.call(this,a,b,c)}}});var rb="__blocks.observable__";B.prototype={dispose:function(){this.childNodesCount=void 0,this.startIndex=0,this.observableLength=void 0,this.startOffset=0,this.endOffset=0},setStartIndex:function(a){this.startIndex=a+this.startOffset},setChildNodesCount:function(a){void 0===this.childNodesCount&&(this.observableLength=this.observable.__value__.length),this.childNodesCount=a-(this.startOffset+this.endOffset)},chunkLength:function(a){var b,c=this.chunkLengths,d=fb.id(a),e=c[d]||(this.childNodesCount||a.childNodes.length)/(this.observableLength||this.observable.__value__.length);return b=l.isNaN(e)||1/0===e?0:Math.round(e),c[d]=b,b},getAt:function(a,b){for(var c=this.chunkLength(a),d=a.childNodes,e=[],f=0;c>f;f++)e[f]=d[b*c+f+this.startIndex];return e},insertAt:function(a,b,c){ob.insert(a,this.chunkLength(a)*b+this.startIndex,l.isArray(c)?c:[c])},removeAt:function(a,b){var c=this.chunkLength(a);ob.remove(a,c*b+this.startIndex,c)},remove:function(a,b){var c=this;this.each(function(d){for(var e=0;b>e;e++)c.removeAt(d,a)}),fb.collectGarbage(),this.dispose(),this.observable._indexes.splice(a,b)},removeAll:function(){var a=this,b=this.observable.__value__;this.each(function(c){l.each(b,function(){a.removeAt(c,0)})})},add:function(a,b){var c=this,d=this.observable;l.each(a,function(a,c){d._indexes.splice(b+c,0,l.observable(b+c))}),this.each(function(e,f){var g,h=l.domQuery(e),i=l.context(e),j="";if(h.contextBubble(i,function(){g=h.getSyncIndex();for(var c=0;c0?c.add(a.slice(b.length),b.length):e>0&&c.remove(a.length,e),this.__value__=a,U.trigger(this,"remove",{type:"remove",items:b,index:0}),U.trigger(this,"add",{type:"add",items:a,index:0}),this},add:function(a,b){return this.splice(l.isNumber(b)?b:this.__value__.length,0,a),this},addMany:function(a,b){return this.splice.apply(this,[l.isNumber(b)?b:this.__value__.length,0].concat(l.toArray(a))),this},swap:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;l.swap(d,a,b);for(var g=0;gb?(f.insertAt(c,a,f.getAt(c,b)),f.insertAt(c,b,f.getAt(c,a))):(f.insertAt(c,b,f.getAt(c,a)),f.insertAt(c,a,f.getAt(c,b)));return this},move:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;l.move(d,a,b),b>a&&b++;for(var g=0;g1?this().slice(a,b):this().slice(a)},join:function(a){return arguments.length>0?this().join(a):this().join()},pop:function(){var a=this,b=a();return a.splice(b.length-1,1)[0]},push:function(){return this.addMany(arguments),this.__value__.length},reverse:function(){var a=this().reverse(),b=this._chunkManager;return this._indexes.reverse(),b.each(function(c){for(var d=1;d0,g=this._chunkManager,h=this._indexes,i=0;e>i;i++){var j=[d[i],i];g.each(function(a){j.push(g.getAt(a,i))}),d[i]=j}for(d.sort(function(b,c){return b=b[0],c=c[0],f?a.call(this,b,c):c>b?-1:b>c?1:0}),h.length>0&&(this._indexes=[]),i=0;e>i;i++)c=d[i],h.length>0&&this._indexes.push(h[c[1]]),b=2,g.each(function(a){g.insertAt(a,e,c[b]),b++}),d[i]=c[0];return this.update(),d},splice:function(a,b){var c,d=this.__value__,e=this._chunkManager,f=[],g=arguments;return a=0>a?d.length-a:a,b&&a=0&&(b=Math.min(d.length-a,b),f=d.slice(a,a+b),U.trigger(this,"removing",{type:"removing",items:f,index:a}),e.remove(a,b),f=d.splice(a,b),U.trigger(this,"remove",{type:"remove",items:f,index:a})),g.length>2&&(c=l.toArray(g),c.splice(0,2),U.trigger(this,"adding",{type:"adding",index:a,items:c}),e.add(c,a),d.splice.apply(d,[a,0].concat(c)),U.trigger(this,"add",{type:"add",index:a,items:c})),this.update(),f},unshift:function(){return this.addMany(arguments,0),this.__value__.length}}}});var ub={waiting:{},initExpressionExtender:function(a){var b=a.clone();return b.view=l.observable([]),b.view._connections={},b.view._observed=[],b.view._updateObservable=l.bind(ub.updateObservable,b),b._operations=a._operations?l.clone(a._operations):[],b._getter=l.bind(ub.getter,b),b.view._initialized=!1,b.view.on("get",b._getter),b.on("add",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),ub.executeOperations(b))}),b.on("remove",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),ub.executeOperations(b))}),b},getter:function(){U.off(this.view,"get",this._getter),this._getter=void 0,this.view._initialized=!0,ub.executeOperationsPure(this)},updateObservable:function(){ub.executeOperations(this)},executeOperationsPure:function(a){var b=[],c=a.view._observed,d=a.view._updateObservable;l.each(c,function(a){U.off(a,"change",d)}),c=a.view._observed=[],kb.startObserving(),l.each(a._operations,function(c){if("step"==c.type){var d=a.view;a.view=l.observable([]),a.view._connections={},b.length&&ub.executeOperationsChunk(a,b),c.step.call(a.__context__),a.view=d}else b.push(c)}),b.length&&ub.executeOperationsChunk(a,b),l.each(kb.stopObserving(),function(a){c.push(a),a.on("change",d)})},executeOperations:function(a){var b=a.__id__,c=ub.waiting;c[b]||(c[b]=!0,setTimeout(function(){ub.executeOperationsPure(a),c[b]=!1},0))},executeOperationsChunk:function(a,b){var c="add",d="remove",e="exists",f=e,g=a.__value__,h=a.view,i=h._connections,j={},k=0,m=h.update,n=0,o=g.length;h.update=l.noop,l.each(b,function(c){"skip"==c.type?(n=c.skip,l.isFunction(n)&&(n=n.call(a.__context__)),n=l.unwrap(n)):"take"==c.type?(o=c.take,l.isFunction(o)&&(o=o.call(a.__context__)),o=l.unwrap(o)):"sort"==c.type&&(g=l.isString(c.sort)?l.clone(g).sort(function(a,b){return a[c.sort]-b[c.sort]}):l.isFunction(c.sort)?l.clone(g).sort(c.sort):l.clone(g).sort(),1==b.length&&b.push({type:"filter",filter:function(){return!0}}))}),l.each(g,function(m,p){if(0>=o){for(;h().length-k>0;)h.removeAt(h().length-1);return!1}switch(l.each(b,function(b){var h=b.filter;if(f=void 0,h){if(!h.call(a.__context__,m,p,g))return f=void 0,void 0!==i[p]&&(f=d),!1;f=e,void 0===i[p]&&(f=c)}else if("skip"==b.type){if(f=e,n-=1,n>=0)return f=d,!1;0>n&&void 0===i[p]&&(f=c)}else if("take"==b.type){if(0>=o)return f=d,!1;o-=1,f=e,void 0===i[p]&&(f=c)}}),f){case c:j[p]=k,h.splice(k,0,m),k++;break;case d:h.removeAt(k);break;case e:j[p]=k,k++}}),h._connections=j,h.update=m,h.update()}};l.observable.filter=function(a){var b=ub.initExpressionExtender(this),c=a;return(!l.isFunction(c)||l.isObservable(c))&&(c=function(b){var c=l.unwrap(a),d=String(c).toLowerCase();return b=String(l.unwrap(b)).toLowerCase(),!c||-1!=b.indexOf(d)}),b._operations.push({type:"filter",filter:c}),b},l.observable.step=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"step",step:a}),b},l.observable.skip=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"skip",skip:a}),b},l.observable.take=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"take",take:a}),b},l.observable.sort=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"sort",sort:a}),b},l.query=function(a,b){l.domReady(function(){l.$unwrap(b,function(b){l.isElement(b)||(b=document.body);var c=new z,d=u(b)[0],e=window.__blocksServerData__;c.pushContext(a),c._serverData=e,e?d.render(c):d.sync(c),c.createElementObservableDependencies([b])})})},l.executeQuery=function(a,b){var c=m.Is(a)?"preprocess":"update",d=Array.prototype.slice.call(arguments,2),e=l.queries[b]; +e.passDomQuery&&d.unshift(l.domQuery(a)),e[c].apply(a,d)},l.context=function(a,b){if(a=l.$unwrap(a)){var c=fb.data(a);if(c){if(b&&c.childrenContext)return c.childrenContext;if(c.context)return c.context}return l.context(m.Is(a)?a._parent:a.parentNode,!0)}return null},l.dataItem=function(a){var b=l.context(a);return b?b.$this:null},l.isObservable=function(a){return!!a&&a.__identity__===rb},l.unwrapObservable=function(a){return a&&a.__identity__===rb?a():a},l.domQuery=function(a){if(a=l.$unwrap(a)){var b=fb.data(a,"domQuery");return b?b:l.domQuery(m.Is(a)?a._parent:a.parentNode)}return null},l.extend(l.queries,{view:{passDomQuery:!0,preprocess:function(a,b){b.isActive()?(this.css("display",""),b._html&&l.queries.template.preprocess.call(this,a,b._html,b)):this.css("display","none"),X["with"].preprocess.call(this,a,b,"$view")},update:function(a,b){b.isActive()?(b._html&&(X["with"].preprocess.call(this,a,b,"$view"),this.innerHTML=b._html,b._children=b._html=void 0,l.each(u(this.childNodes[0]),function(b){m.Is(b)&&b.sync(a)}),a.createElementObservableDependencies(this.childNodes)),ob.show(this)):ob.hide(this)}},navigateTo:{update:function(a,b){function c(c){c=c||window.event,c.preventDefault(),c.returnValue=!1,l.isString(a)?window.location.href=a:a.navigateTo(a,b)}f(this,"click",c)}},trigger:{}});var vb={required:{priority:9,validate:function(a,b){return a!==b.defaultValue&&""!==a&&a!==!1&&void 0!==a&&null!==a?!0:void 0}},minlength:{priority:19,validate:function(a,b,c){return void 0===a||null===a?!1:a.length>=parseInt(c,10)}},maxlength:{priority:29,validate:function(a,b,c){return void 0===a||null===a?!0:a.length<=parseInt(c,10)}},min:{priority:39,validate:function(a,b,c){return void 0===a||null===a?!1:a>=c}},max:{priority:49,validate:function(a,b,c){return void 0===a||null===a?!1:c>=a}},email:{priority:59,validate:function(a){return/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(a)}},url:{priority:69,validate:function(a){return/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/.test(a)}},date:{priority:79,validate:function(a){return a?!/Invalid|NaN/.test(new Date(a.toString()).toString()):!1}},creditcard:{priority:89,validate:function(a){if(l.isString(a)&&0===a.length)return!1;if(l.isNumber(a)&&(a=a.toString()),/[^0-9 \-]+/.test(a))return!1;var b=0,c=0,d=!1;a=a.replace(/\D/g,"");for(var e=a.length-1;e>=0;e--){var f=a.charAt(e);c=parseInt(f,10),d&&(c*=2)>9&&(c-=9),b+=c,d=!d}return b%10===0}},regexp:{priority:99,validate:function(a,b,c){return l.isRegExp(c)?void 0===a||null===a?!1:c.test(a):!1}},number:{priority:109,validate:function(a){return l.isNumber(a)?!0:l.isString(a)&&0===a.length?!1:/^(-?|\+?)(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)}},digits:{priority:119,validate:function(a){return/^\d+$/.test(a)}},letters:{priority:129,validate:function(a){return a?/^[a-zA-Z]+$/.test(a):!1}},equals:{priority:139,validate:function(a,b,c){return l.equals(a,l.unwrap(c))}}};l.observable.validation=function(a){var b,c,d=this,e=a.maxErrors,f=this.errorMessages=l.observable([]),g=this._validators=[];this.errorMessage=l.observable("");for(b in a)c=a[b],vb[b]?g.push({option:c,validate:vb[b].validate,priority:vb[b].priority}):("validate"==b||"asyncValidate"==b)&&g.push({option:"",validate:c.validate?c.validate:c,priority:c.priority||Number.POSITIVE_INFINITY,isAsync:"asyncValidate"==b});g.sort(function(a,b){return a.priority>b.priority?1:-1}),this.valid=l.observable(!0),this.validate=function(){var b,h,i,j=d.__value__,k=!0,m=0,n=0;for(f.removeAll();n=e);n++){if(h=g[n],h.isAsync)return h.validate(j,function(b){F(d,a,!!b)}),!0;b=h.option,c=h.option,l.isPlainObject(b)&&(c=b.value),l.isFunction(c)&&(c=c.call(d.__context__)),i=h.validate(j,a,c),l.isString(i)&&(i=[i]),(l.isArray(i)||!i)&&(f.addMany(l.isArray(i)?i:b&&b.message?[b.message]:c&&l.isString(c)?[c]:[]),k=!1,m++)}return F(this,a,k),this.valid(k),U.trigger(this,"validate"),k},a.validateOnChange&&this.on("change",function(){this.validate()}),a.validateInitially&&this.validate()},l.route=function(a){return H(a)},H.Is=function(a){return H.prototype.isPrototypeOf(a)},H.Has=function(a){return null!=a._routeString},H.Combine=function(a,b){if(!H.Has(b))return a;if(!H.Has(a))return b;var c=H(a+b);return l.extend(c._wildcard,a._wildcard,b._wildcard),l.extend(c._optional,a._optional,b._optional),l.extend(c._validate,a._validate,b._validate),c},H.prototype={wildcard:function(){var a=this._wildcard,b=l.flatten(l.toArray(arguments));return l.each(b,function(b){a[b]=!0}),this},optional:function(a,b){return this._addMetadata("optional",a,b),this},validate:function(a,b){return this._addMetadata("validate",a,b),this},transform:function(a,b){return this._addMetadata("_transform",a,b),this},toString:function(){return this._routeString?this._routeString.toString():""},trailingSlash:function(){return this},_transfromParam:function(a,b){var c=this._transform[a];return""===b&&l.has(this._optional,a)&&(b=this._optional[a]),c?c(b):b},_validateParam:function(a,b){var c=this._validate[a];return c?c(b):!0},_addMetadata:function(a,b,c){var d=this["_"+a];l.isPlainObject(b)?l.each(b,function(a,b){d[b]=a}):l.isString(b)&&(d[b]=c)}},l.core.Router=I,I.GenerateRoute=function(a,b){var c=new I,d=c.registerRoute(a),e=c.routeTo(d,b);return 0===a.indexOf("/")&&0!==e.indexOf("/")?"/"+e:e},I.prototype={registerRoute:function(a,b){a=H(a),b=H(b?this._routes[H(b).toString()].route:void 0);var c=H.Combine(b,a),d=c._routeString=c._routeString.replace(/^\//,""),e=this._generateRouteStringData(d);return this._routes[d]={route:c,data:e,regExCollection:this._generateRouteRegEx(c,e),parent:H.Has(b)?this._routes[b.toString()]:void 0},d},routeTo:function(a,b){var c,d=this._routes[a],e=d.route,f="";return b=b||{},l.each(d.data,function(a){c=a.param,c?e._validateParam(b[c])&&(f+=l.has(b,c)?b[c]:e._optional[c]):f+=a.string}),f},routeFrom:function(a){var b,c=this._getUrlParams,d=[];return a=decodeURI(a),l.each(this._routes,function(e){l.each(e.regExCollection,function(f){if(f.regEx.test(a)){for(b=f.regEx.exec(a);e;)d.unshift({id:e.route._routeString,params:c(e,f.params,b)}),e=e.parent;return!1}})}),d.length?d:null},_getUrlParams:function(a,b,c){var d,e,f=a.route,g={};return l.each(b,function(a,b){d=c[b+1],f._validateParam(a,d)&&(g[a]=f._transfromParam(a,d))}),l.each(a.data,function(a){e=a.param,e&&!g[e]&&l.has(f._optional,e)&&void 0!==f._optional[e]&&(g[e]=f._optional[e])}),g},_generateRouteRegEx:function(a,b){var c,d,e,f,g,h=[],i=this._sliceLastFromRegExString,j=this._getOptionalParametersCombinations(a,b);return l.each(j,function(j){e="^",f=[],l.each(b,function(b){if(g=b.param){if(d=!0,l.has(a._optional,g)&&j[g]||(c=!1),j[g])return;f.push(g),e+=a._wildcard[g]?l.has(a._optional,g)?"(.*?)":"(.+?)":l.has(a._optional,g)?"([^/]*?)":"([^/]+?)"}else"/"==b.string&&(d&&c&&(e=i(e)),d=!1,c=!0),e+=G(b.string)}),d&&c&&(e=i(e)),h.push({regEx:new RegExp(e+"$","i"),params:f})}),h},_sliceLastFromRegExString:function(a){for(var b,c=0;cd;d++){for(c={},c.__lowestIndex__=h,c.__length__=0,e=0;h>e;e++)d&Math.pow(2,e)&&(e=200&&300>c||304===c;d?this.callSuccess(b.responseText):this.callError(b.statusText)},xhrError:function(){this.callError()},scriptRequest:function(){var a=this,b=this.options,c=document.createElement("script"),d={},e=l.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback;d[b.jsonp]=e,this.appendDataToUrl(d),window[e]=function(b){window[e]=null,a.scriptLoad(b)},c.onerror=this.scriptError,c.async=b.async,c.src=b.url,document.head.appendChild(c)},scriptLoad:function(a){this.callSuccess(a)},scriptError:function(){this.callError()},appendDataToUrl:function(a){var b=this,c=this.options,d=/\?/.test(c.url);l.isPlainObject(a)?l.each(a,function(a,e){c.url+=b.append(d,e,a.toString())}):l.isArray(a)?l.each(a,function(a,c){b.appendDataToUrl(c)}):c.url+=b.append(d,a.toString(),"")},append:function(a,b,c){var d=a?"&":"?";return d+=b,c&&(d+="="+c),d},callSuccess:function(a){var b=this.options.success,c="success";b&&b(a,c,null),this.callComplete(c)},callError:function(a){var b=this.options.error,c="error";b&&b(null,c,a),this.callComplete(c)},callComplete:function(a){var b=this.options.complete;b&&b(null,a)}};var xb="create",yb="update",zb="destroy",Ab="GET",Bb="application/json; charset=utf-8",Cb=["change","sync","error","requestStart","requestEnd"];l.DataSource=L,L.ArrayMode=1,L.ObjectMode=2,L.prototype={options:{baseUrl:"",idAttr:"",mode:L.ArrayMode,read:{url:"",type:Ab,contentType:Bb},update:{url:"",type:"POST",contentType:Bb},create:{url:"",type:"POST",contentType:Bb},destroy:{url:"",type:"POST",contentType:Bb}},read:function(a,b){var c=this;return b=arguments[arguments.length-1],l.isFunction(a)&&(a={}),a=a||{},c._ajax("read",a,function(d){l.isString(d)&&(d=JSON.parse(d)),c.options.mode==L.ArrayMode&&(l.isArray(d)||(l.isArray(d.value)?d=d.value:l.isObject(d)&&l.each(d,function(a){return l.isArray(a)?(d=a,!1):void 0}))),l.isArray(d)||(d=[d]),a&&a.__updateData__===!1||c._updateData(d),b&&l.isFunction(b)&&b(d)}),c},update:function(){if(0!==arguments.length){var a;arguments.length>1&&l.type(arguments[0])!=l.type(arguments[1])?(a=[arguments[1]],a[0][this.options.idAttr]=arguments[0]):a=l.flatten(arguments),a.length>0&&(this._changes.push({type:yb,items:a}),this._onChangePush())}},hasChanges:function(){return this._changes.length>0},clearChanges:function(){return this._changes.splice(0,this._changes.length),this._changesMeta={},this.hasChanges(!1),this},sync:function(){var a,b=this,c=this._changes,d=c.length;return l.each(c,function(c){l.each(c.items,function(e){a=e,e.__id__&&delete e.__id__,b._ajax(c.type,{data:a},function(){d--,d||b._trigger("sync")})})}),this.clearChanges()},_ajax:function(a,b,c){var d,e=this;b=l.extend({},this.options[a],b),d=b.type.toUpperCase(),b.url=I.GenerateRoute(b.url,b.data),this._trigger("requestStart",{}),K({type:b.type,url:b.url,data:d==Ab?null:JSON.stringify(b.data),contentType:b.contentType,dataType:b.dataType,jsonp:b.jsonp,success:function(a,b,d){e._trigger("requestEnd",{}),a&&c(a,b,d)},error:function(){e._trigger("requestEnd",{}),e._trigger("error")}})},_updateData:function(a){this.data.removeAll(),this.data.addMany(a),this.clearChanges(),this._trigger("change")},_onArrayChange:function(a){var b=a.type;"remove"==b?this._remove(a.items):"removeAt"==b?this._remove(this.data.slice(a.index,a.index+a.count)):"add"==b&&this._add(a.items)},_onChangePush:function(){var a,b=this._changesMeta,c=this._changes,d=c[c.length-1],e=this.options.idAttr,f=d.type;l.each(d.items,function(d){switch(f){case xb:d.__id__=wb(),b[d.__id__]=d;break;case yb:a=b[d[e]],a&&(c.splice(a.index,1),a.item=d,a.index=c.length-1),b[d[e]]={index:c.length-1,item:d};break;case zb:a=b[d?d.__id__:void 0],a&&(c.splice(a.index,1),c.pop(),b[d.__id__]=void 0)}}),c.length>0&&this.options.autoSync?this.sync():this.hasChanges(c.length>0)},_add:function(a){this._changes.push({type:xb,items:a}),this._onChangePush()},_remove:function(a){this._changes.push({type:zb,items:a}),this._onChangePush()},_subscribeToEvents:function(){var a=this,b=this.options;l.each(Cb,function(c){b[c]&&a.on(c,b[c])})}},U.register(L.prototype,["on","_trigger","change","error","requestStart","requestEnd"]),l.core.applyExpressions("array",l.DataSource.prototype,l.toObject(["size","at","isEmpty","each"])),M.Is=function(a){return M.prototype.isPrototypeOf(a)},M.Inflate=function(a){var b,c,d={};for(b in a)c=a[b],M.Is(c)&&(c=c._options,c.propertyName=b,d[c.field||b]=c);return d},M.Create=function(a,b,c){var d;return arguments.length<3&&(c=a.value||a.defaultValue),b=a.thisArg?a.thisArg:b,d=l.observable(c,b).extend("validation",a).on("changing",a.changing,b).on("change",a.change,b),l.each(a.extenders,function(a){d=d.extend.apply(d,a)}),d},M.prototype.extend=function(){var a=this._options;return a.extenders=a.extenders||[],a.extenders.push(l.toArray(arguments)),this},N.prototype={options:{},init:l.noop,collection:function(){return this._collection},validate:function(){var a,b,c=this._properties,d=!0;for(b in c)a=this[b],l.isObservable(a)&&!a.validate()&&(d=!1);return this.valid(d),this._updateValidationErrors(),d},dataItem:function(){var a,b,c=this._properties,d={};for(a in c)b=c[a],"__id__"!=a&&l.isFunction(this[b.propertyName])&&(d[b.field||b.propertyName]=this[b.propertyName]());return this.isNew()&&delete d[this.options.idAttr],d},reset:function(a){return this._ensurePropertiesCreated(a),this},isNew:function(){var a=this.options.idAttr,b=l.unwrap(this[a]),c=this._properties[a];return!b&&0!==b||c&&b===c.defaultValue?!0:!1},read:function(a,b){return l.isFunction(a)&&(b=a,a=void 0),this._dataSource.read({data:a},b),this},destroy:function(a){return a=a===!1?!1:!0,a&&this._collection&&this._collection.remove(this),this._dataSource._remove([this.dataItem()]),this},sync:function(){return this.isNew()&&this._dataSource.add(this.dataItem()),this._dataSource.sync(),this},clone:function(){return new this.constructor(l.clone(this._initialDataItem,!0))},_setPropertyValue:function(a,b){var c=a.propertyName;l.isFunction(this[c])?(this[c](b),this._dataSource.update(this.dataItem())):this[c]=a.isObservable?this._createObservable(a,b):function(){return b}},_ensurePropertiesCreated:function(a){var b,c,d,e=this._properties;if(a){N.prototype.isPrototypeOf(a)&&(a=a.dataItem());for(c in a)b=e[c],b||(b=e[c]=l.extend({},this._application.Property.Defaults()),b.propertyName=c),this._setPropertyValue(b,a[c])}for(c in e)b=e[c],l.has(a,b.propertyName)||(d=b.field||b.propertyName,this._setPropertyValue(b,b.value||(l.has(a,d)?a[d]:b.defaultValue)))},_createObservable:function(a,b){var c=this,d=this._properties,e=M.Create(a,this,b);return e.on("change",function(){c.isNew()||c._dataSource.update(c.dataItem())}).on("validate",function(){var a,b=!0;for(a in d)if(!c[a].valid()){b=!1;break}c._updateValidationErrors(),c.valid(b)}),this._collection||e.extend(),e},_onDataSourceChange:function(){var a=l.unwrapObservable(this._dataSource.data())[0];this._ensurePropertiesCreated(a)},_updateValidationErrors:function(){var a,b,c=this._properties,d=[];for(b in c)a=this[b],a.errorMessages&&d.push.apply(d,a.errorMessages());this.validationErrors.reset(d)}},l.core.expressionsCreated&&l.core.applyExpressions("object",N.prototype);var Db=/^[#\/]|\s+$/g,Eb=/^\/+|\/+$/g,Fb=/msie [\w.]+/,Gb=/\/$/,Hb=/[?#].*$/,Ib="hash",Jb="pushState";P.prototype={start:function(){var a=this._fragment,b=document.documentMode,c=Fb.exec(navigator.userAgent.toLowerCase())&&(!b||7>=b);this._use==Ib&&c&&(this._createIFrame(),this.navigate(a)),this._initEvents(c),this._tryAdaptMechanism(a)||this._loadUrl()},navigate:function(a,b){b&&b!==!0||(b={trigger:!!b});var c=this._root+(a=this._getFragment(a||"")),d=this._use,e=this._iframe,f=this._location;if(a=a.replace(Hb,""),this._fragment===a)return!1;if(this._fragment=a,""===a&&"/"!==c&&(c=c.slice(0,-1)),this._wants==Jb&&d==Jb)this._history[b.replace?"replaceState":"pushState"]({},document.title,c);else{if(d!=Ib)return f.assign(c),!0;this._updateHash(f,a,b.replace),e&&a!==this.getFragment(this._getHash(e))&&(b.replace||e.document.open().close(),this._updateHash(e.location,a,b.replace))}return this._loadUrl(a)},_initEvents:function(a){var b=this._use,c=l.bind(this._onUrlChanged,this);this._wants==Jb&&f(document,"click",l.bind(this._onDocumentClick,this)),b==Jb?f(window,"popstate",c):b==Ib&&!a&&"onhashchange"in window?f(window,"hashchange",c):b==Ib&&(this._checkUrlInterval=setInterval(c,this._interval))},_loadUrl:function(a){var b=this._initial;return this._initial=!1,this._fragment=a=this._getFragment(a),U.trigger(this,"urlChange",{url:a,initial:b})},_getHash:function(a){var b=(a?a.location:this._location).href.match(/#(.*)$/);return b?b[1]:""},_getFragment:function(a){if(null==a)if(this._use==Jb){var b=this._root.replace(Gb,"");a=this._location.pathname,a.indexOf(b)||(a=a.slice(b.length))}else a=this._getHash();return a.replace(this._location.origin,"").replace(Db,"")},_onUrlChanged:function(){var a=this._getFragment();return a===this._fragment&&this._iframe&&(a=this._getFragment(this._getHash(this._iframe))),a===this._fragment?!1:(this._iframe&&this.navigate(a),void this._loadUrl())},_onDocumentClick:function(a){for(var b=a.target;b;){if(b&&b.tagName&&"a"==b.tagName.toLowerCase()){var c,d=b.getAttribute("download");""===d||d||!this._hostRegEx.test(b.href)||a.altKey||a.ctrlKey||a.metaKey||a.shiftKey||2===a.which||this.navigate(b.href)&&(c=document.getElementById(window.location.hash.replace(/^#/,"")),c&&c.scrollIntoView&&c.scrollIntoView(),a.preventDefault());break}b=b.parentNode}},_tryAdaptMechanism:function(a){var b=this._root,c=this._use,d=this._location,e=d.pathname.replace(/[^\/]$/,"$&/")===b;if(this._fragment=a,this._wants==Jb){if(c!=Jb&&!e)return a=this._fragment=this._getFragment(null,!0),d.replace(b+d.search+"#"+a),!0;c==Jb&&e&&d.hash&&(this._fragment=this._getHash().replace(Db,""),this._history.replaceState({},document.title,b+a+d.search))}},_updateHash:function(a,b,c){if(c){var d=a.href.replace(/(javascript:|#).*$/,"");a.replace(d+"#"+b)}else a.hash="#"+b},_createIFrame:function(){var a=document.createElement("iframe");a.style.display="none",a.src="javascript:0",a.tabIndex=-1,document.body.appendChild(a),this._iframe=a.contentWindow},_tryFixOrigin:function(){var a=window.location;a.origin||(a.origin=a.protocol+"//"+a.hostname+(a.port?":"+a.port:""))}},U.register(P.prototype,["on"]),l.observable.remote=function(a){return R(null,{options:a},null,this.__value__)},l.observable.fn.collection={read:function(a,b){var c=this;return l.isFunction(a)&&(b=a,a=void 0),this._dataSource.read({data:a},b?function(){b.call(c.__context__)}:l.noop),this},clearChanges:function(){return this._dataSource.clearChanges(),this},sync:function(){return this._dataSource.sync(),this},update:function(a,b){return 0===arguments.length?this._baseUpdate.call(this):this._dataSource.update(a,b),this},sortBy:function(a,b){if("string"==typeof a){var c=a;a=function(a){return a[c]()}}return l.sortBy(this.__value__,a,b),this},clone:function(){return R(this._Model,this._prototype,this._application,this.__value__)},_onAdding:function(a){var b=this,c=this._Model,d=a.items;l.each(d,function(a,e){N.prototype.isPrototypeOf(a)&&(a=a.dataItem()),d[e]=new c(a,b)})},_onChange:function(a){var b,c=a.type,d=a.items,e=[],f=0;if(!this._internalChanging){for(;fh;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(k.isPlainObject(c)||(b=k.isArray(c)))?(b?(b=!1,f=a&&k.isArray(a)?a:[]):f=a&&k.isPlainObject(a)?a:{},g[d]=k.extend(j,f,c)):g[d]=c);return g},k.each=function(a,b,c){if(null!=a){var d=a.length,f=-1,g="number"==typeof d;if(b=e(b,c),g)for(;++f=0;)b(a[f],f,a);else for(f in a)b(a[f],f,a)}},k.each(["Arguments","Function","String","Number","Date","RegExp"],function(a){k["is"+a]=function(b){return f.call(b)=="[object "+a+"]"}}),k.isArguments(arguments)||(k.isArguments=function(a){return!(!a||!h.call(a,"callee"))}),"function"!=typeof/./&&(k.isFunction=function(a){return!(!a||"function"!=typeof a)}),k.isArray=Array.isArray||function(a){return"[object Array]"==f.call(a)},k.extend(k,{noop:function(){},inherit:function(a,b,c){return(arguments.length<3&&k.isPlainObject(b)||1==arguments.length)&&(c=b,b=a,a=void 0),a?(b.prototype=l(a.prototype),b.prototype.constructor=b,k.extend(b.prototype,c),b.prototype.__Class__=a,b.prototype._super=d):c&&(b.prototype=c),b},type:function(a){return a instanceof Array?"array":"string"==typeof a||a instanceof String?"string":"number"==typeof a||a instanceof Number?"number":a instanceof Date?"date":"[object RegExp]"===f.call(a)?"regexp":null===a?"null":void 0===a?"undefined":k.isFunction(a)?"function":k.isBoolean(a)?"boolean":"object"},is:function(a,b){return arguments.length>1&&k.isFunction(b)?b.prototype.isPrototypeOf(a):k.type(a)==b},has:function(a,b){return!(!a||!h.call(a,b))},hasValue:function(a){return!(null==a||k.isNumber(a)&&isNaN(a))},toString:function(a){var b="";return k.hasValue(a)&&(b=a.toString()),b},unwrap:function(a){return j.expressionsCreated&&j.isExpression(a)?a.value():k.unwrapObservable?k.unwrapObservable(a):a},$unwrap:function(a,b,c){return b=e(b,c),a&&a.jquery?(b&&a.each(function(){b(this)}),a=a[0]):b&&b(a),a},toArray:function(a){if(k.isArguments(a))return g.call(a);if(k.isElements(a)){for(var b=Array(a.length),c=-1,d=a.length;++c2?c:k.nothing,b=b.split("."),d=b[0];d;){if(null==a)return c;a=a[d],d=b[++e]}return a},swap:function(a,b,c){var d=a.length;return b>=0&&c>=0&&d>b&&d>c&&(a[b]=a[c]+(a[c]=a[b],0)),a},move:function(a,b,c){return b!=c&&(c>=b&&c++,a.splice(c,0,a[b]),b>c&&b++,a.splice(b,1)),a},bind:function(a,b){var c,d=function(){},e=g.call(arguments,2);return c=function(){if(!(this instanceof c))return a.apply(b,e.concat(g.call(arguments)));d.prototype=a.prototype;var f=new d,h=a.apply(f,e.concat(g.call(arguments)));return Object(h)===h?h:f}},equals:function(a,b,d){return a=k.unwrap(a),b=k.unwrap(b),c(a,b,[],[],d)}}),k.at=function(a){return{index:a,prototypeIndentification:"__blocks.at__"}},k.first=function(){return k.first},k.last=function(){return k.last};var l=Object.create||function(a){var b=function(){};return b.prototype=a,new b};for(var m in[i])break;i.ownPropertiesAreLast="0"!=m,function(){!function(){function a(a,b){if(null!=b){var c=a;a=function(a,d,e){return c.call(b,a,d,e)}}return a}function b(a){var b={};return k.each(a,function(a){b[a]=!0}),b}function c(){return!1}function d(){return!0}function e(a){this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?d:c,this.timeStamp=a.timeStamp||+new Date}function f(a,b,c){a.addEventListener&&"propertychange"!=b?a.addEventListener(b,function(a){c.call(this,e.fix(a))},!1):a.attachEvent&&a.attachEvent("on"+b,function(a){c.call(this,e.fix(a))})}function g(a,b){return a&&"string"==typeof a&&null!=b?(a=" "+a+" ",a.indexOf(" "+b+" ")):-1}function h(a){return String(a).replace($,"&").replace(_,"<")}function i(a){var b=document.createDocumentFragment(),c=document.createElement("div"),d=1,e="",f="
",g="",h="",i="",j="";for(a=a.toString(),-1!=a.indexOf(""+a+"",d=2):-1==a.indexOf(""+a+"";d--;)c=c.lastChild;for(;c.firstChild;)b.appendChild(c.firstChild);return b}function j(a){return a?parseFloat(a[1]):void 0}function l(a,b,c){gb[b]?gb[b](a,c,function(b,c){f(a,b,c)}):f(a,b,c)}function m(a){return m.prototype.isPrototypeOf(this)?(this.__identity__=bb,this._tagName=a?a.toString().toLowerCase():null,this._attributes={},this._attributeExpressions=[],this._parent=null,this._children=[],this._isSelfClosing=!1,this._haveAttributes=!0,this._innerHTML=null,this._renderMode=m.RenderMode.All,this._haveStyle=!1,this._style={},this._states=null,this._state=null,void(k.isElement(a)&&(this._el=a))):new m(a)}function n(a,b){var c,d,e=' style="',f=!1;for(c in a)d=a[c],b&&ab.call(b.style,c)||(d||0===d)&&(f=!0,c=c.replace(/[A-Z]/g,o),e+=c,e+=":",e+=d,e+=";");if(b)for(c in b.style)d=b.style[c],(d||0===d)&&(f=!0,c=c.replace(/[A-Z]/g,o),e+=c,e+=":",e+=d,e+=";");return e+='"',f?e:""}function o(a){return"-"+a.toLowerCase()}function p(a,b,c){if(null!=c){c=k.isArray(c)?c:c.toString().split(" ");var d,e,f,h=0;if(m.Is(b))d=b._getAttr(W);else{if(b.classList)return void(mb?b.classList[a].apply(b.classList,c):k.each(c,function(c){b.classList[a](c)}));d=b.className}for(d=d||"";hf&&(""!==d&&(e=" "+e),d+=e):-1!=f&&(d=(d.substring(0,f)+" "+d.substring(f+e.length+1,d.length)).replace(V,""));m.Is(b)?b._state?b._state.attributes[W]=d:b._attributes[W]=d:b.className=d}}function q(a,b){var c=fb.data(a);if(c&&c.animating>0){for(var d,e=a.childNodes,f=0,h=0;b!=h;){if(!e[f])return Number.POSITIVE_INFINITY;d=e[f].className,f++,-1==g(d,"b-hide")&&h++}if(!e[f])return Number.POSITIVE_INFINITY;for(d=e[f].className;-1!=g(d,"b-hide");){if(f++,!e[f])return Number.POSITIVE_INFINITY;d=e[f].className}return f}return b}function r(a,b){var c=!1,d=fb.createIfNotExists(b),e=fb.createIfNotExists(b.parentNode),f=d.animateCallback,g="remove"==a?"hide":"add"==a?"show":a,h="remove"==a?function(){fb.clear(b,!0),b.parentNode&&b.parentNode.removeChild(b)}:"hide"==a?function(){b.style.display="none"}:k.noop,i=function(){d.animating-=1,e.animating-=1,d.animating||h()};if(1!=b.nodeType)return void h();if("show"==a&&(b.style.display=""),d.preprocess)return void h();if(f){c=!0,d.animating+=1,e.animating+=1;var j=k.context(b),l=j.$view||j.$root;f.call(l,b,i,g)}return c||s(g,b,h,i)}function s(a,b,c,d){function e(){p("remove",b,"b-"+a),p("remove",b,"b-"+a+"-end"),d(),b.removeEventListener("transitionend",e,!1),b.removeEventListener(f,e,!1)}if("undefined"==typeof window||void 0===window.ontransitionend)return void c();p("add",b,"b-"+a);var f,g=window.getComputedStyle(b),h="";void 0===window.onanimationend&&void 0!==window.onwebkitanimationend?(h="-webkit-",f="webkitAnimationEnd"):f="animationend";var i=parseFloat(g["transition-duration"])||0,j=parseFloat(g["transition-delay"])||0,k=parseFloat(g[h+"animation-duration"])||0,l=parseFloat(g[h+"animation-delay"])||0;return 0>=i&&0>=j&&0>=k&&0>=l?(p("remove",b,"b-"+a),void c()):(fb.createIfNotExists(b).animating+=1,fb.createIfNotExists(b.parentNode).animating+=1,setTimeout(function(){p("add",b,"b-"+a+"-end"),b.addEventListener("transitionend",e,!1),b.addEventListener(f,e,!1)},1),!0)}function t(a){return t.prototype.isPrototypeOf(this)?(this.__Class__(),void(8==a.nodeType?(this._commentText=a.nodeValue,this._el=a):this._commentText=a)):new t(a)}function u(a,b){for(var c,d,e,f,g,i,j,l,n,o=window.__blocksServerData__,p=[];a;){if(i=a.nodeType,1==i){d=a.tagName.toLowerCase(),c=new m(a),c._tagName=d,c._parent=b,b&&(c._each=b._each||b._childrenEach),c._haveAttributes=!1,f=a.attributes,e={};for(var q=0;q");else if(o){var r=parseInt(/[0-9]+/.exec(l),10);!k.isNaN(r)&&o[r]&&p.push(lb.Create(o[r]))}else 0!==l.indexOf("/blocks")&&p.push("")}a=a.nextSibling}return p}function v(a){for(var b,c,d,e=a.split(";"),f={},g=0;g1?U.on(this,a,b,c):U.on(this,a,b),this}}var b={on:function(a,b,c){return arguments.length>2?U.on(this,a,b,c):U.on(this,a,b),this},once:function(a,b,c){U.once(this,a,b,c)},off:function(a,b){U.off(this,a,b)},trigger:function(a){U.trigger(this,a,k.toArray(arguments).slice(1,100))}};return b._trigger=b.trigger,{register:function(c,d){d=k.isArray(d)?d:[d];for(var e=0;ef;f++)e=b[f],a._events[e]||(a._events[e]=[]),a._events[e].push({callback:c,thisArg:d})},once:function(a,b,c,d){U.on(a,b,c,d),U.on(a,b,function(){U.off(a,b,c)})},off:function(a,b,c){k.isFunction(b)&&(c=b,b=void 0),void 0!==b||void 0!==c?k.each(a._events,function(d,e){void 0!==b&&void 0===c?a._events[b]=[]:k.each(d,function(b,d){return b.callback==c?(a._events[e].splice(d,1),!1):void 0})}):a._events=void 0},trigger:function(a,b){var c,d,e,f=!0;return a&&a._events&&(c=a._events[b],c&&c.length>0&&(e=Array.prototype.slice.call(arguments,2),k.each(c,function(b){b&&(d=a,void 0!==b.thisArg&&(d=b.thisArg),b.callback.apply(d,e)===!1&&(f=!1))}))),f},has:function(a,b){return!!k.access(a,"_events."+b+".length")}}}();!function(){function b(){if("complete"===document.readyState)setTimeout(d);else if(document.addEventListener)document.addEventListener("DOMContentLoaded",c,!1),window.addEventListener("load",c,!1);else{document.attachEvent("onreadystatechange",c),window.attachEvent("onload",c);var a=!1;try{a=null==window.frameElement&&document.documentElement}catch(b){}a&&a.doScroll&&!function e(){if(!k.isDomReady){try{a.doScroll("left")}catch(b){return setTimeout(e,50)}d()}}()}}function c(){(document.addEventListener||"load"==event.type||"complete"==document.readyState)&&d()}function d(){k.isDomReady||(k.isDomReady=!0,U.trigger(k.core,"domReady"),U.off(k.core,"domReady"))}k.isDomReady=!1,k.domReady=function(c,d){"undefined"==typeof document||"undefined"==typeof window||window.__mock__&&document.__mock__||(c=a(c,d),k.isDomReady||"complete"==document.readyState||window.jQuery&&window.jQuery.isReady?(k.isDomReady=!0,c()):(U.on(k.core,"domReady",c),b()))}}();var V=(Array.prototype.slice,/^\s+|\s+$/gm),W="class",X=k.queries={},Y=/^(?:mouse|pointer|contextmenu)|click/,Z=/^key/;e.PropertiesToCopy={all:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),mouse:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),keyboard:"char charCode key keyCode".split(" ")},e.CopyProperties=function(a,b,c){k.each(e.PropertiesToCopy[c],function(c){b[c]=a[c]})},e.prototype={preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=d,a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=d,a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=d,a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},e.fix=function(a){var b=a.type,c=new e(a);return e.CopyProperties(a,c,"all"),c.target||(c.target=a.srcElement||document),3===c.target.nodeType&&(c.target=c.target.parentNode),c.metaKey=!!c.metaKey,Y.test(b)?e.fixMouse(a,c):Z.test(b)&&null==c.which&&(e.CopyProperties(a,c,"keyboard"),c.which=null!=a.charCode?a.charCode:a.keyCode),c},e.fixMouse=function(a,b){var c,d,f,g=a.button,h=a.fromElement;e.CopyProperties(a,b,"mouse"),null==b.pageX&&null!=a.clientX&&(d=b.target.ownerDocument||document,f=d.documentElement,c=d.body,b.pageX=a.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),b.pageY=a.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!b.relatedTarget&&h&&(b.relatedTarget=h===b.target?a.toElement:h),b.which||void 0===g||(b.which=1&g?1:2&g?3:4&g?2:0)};var $=/&/g,_=/",c[0];);return a>4?a:void 0}(),Opera:window&&window.navigator&&window.opera&&window.opera.version&&parseInt(window.opera.version(),10)||void 0,Safari:window&&window.navigator&&j(window.navigator.userAgent.match(/^(?:(?!chrome).)*version\/([^ ]*) safari/i)),Firefox:window&&window.navigator&&j(window.navigator.userAgent.match(/Firefox\/([^ ]*)/))});var fb=function(){function a(a){var b=a?m.Is(a)?a._state?a._state.attributes[cb]:a._attributes[cb]:1==a.nodeType?a.getAttribute(cb):8==a.nodeType?/\s+(\d+):[^\/]/.exec(a.nodeValue):null:null;return k.isArray(b)?b[1]:b}function b(a,b){m.Is(a)?a.attr(cb,b):1==a.nodeType&&a.setAttribute(cb,b)}var c={},d=1;return{id:function(b){return a(b)},reset:function(){c={},d=1},collectGarbage:function(){k.each(c,function(a){a&&a.dom&&!document.body.contains(a.dom)&&fb.clear(a.id,!0)})},createIfNotExists:function(e){var f,g,h=e&&e.__identity__==bb;return f=h?c[e._getAttr(cb)]:c[e&&a(e)],f||(g=d++,e&&(h&&e._each?(e._haveAttributes=!0,e._state?e._state.attributes[cb]=g:e._attributes[cb]=g):b(e,g)),f=c[g]=e?{id:g,virtual:h?e:null,animating:0,observables:{},preprocess:h}:{id:g}),f},byId:function(a){return c[a]},data:function(b,d,e){var f=c[a(b)||b];if(f)return 1==arguments.length?f:(arguments.length>2&&(f[d]=e),f[d])},clear:function(b,d){var e=a(b)||b,f=c[e];!f||f.haveData&&!d||(k.each(f.observables,function(a){for(var b=0;b=8&&(hb(a,d),c("dragend",e))):(c("input",d),eb.Safari<7&&"textarea"==a.tagName.toLowerCase()?(c("keydown",e),c("paste",e),c("cut",e)):eb.Opera<11?c("keydown",e):eb.Firefox<4&&(c("DOMAutoComplete",d),c("dragdrop",d),c("drop",d)))}},hb=function(){function a(a){var b=this.activeElement,c=b&&fb.data(b,"selectionchange");c&&c(a)}var b=!1;return function(c,d){b||(f(c.ownerDocument,"selectionchange",a),b=!0),fb.createIfNotExists(c).selectionChange=d}}(),ib=k.dom={valueTagNames:{input:!0,textarea:!0,select:!0},valueTypes:{file:!0,hidden:!0,password:!0,text:!0,color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,time:!0,url:!0,week:!0},props:{"for":!0,"class":!0,value:!0,checked:!0,tabindex:!0,className:!0,htmlFor:!0},propFix:{"for":"htmlFor","class":"className",tabindex:"tabIndex"},attrFix:{className:"class",htmlFor:"for"},addClass:function(a,b){a&&p("add",a,b)},removeClass:function(a,b){a&&p("remove",a,b)},html:function(a,b){if(a)if(b=b.toString(),8==a.nodeType)ib.comment.html(a,b);else if(eb.IE<10){for(;a.firstChild;)a.removeChild(this._element.firstChild);a.appendChild(i(b))}else a.innerHTML=b},css:function(a,b,c){a&&b&&("display"==b?ob.setVisibility(a,"none"==c?!1:!0):a.style[b]=c)},on:function(a,b,c){a&&l(a,b,c)},off:function(){},removeAttr:function(a,b){a&&b&&ib.attr(a,b,null)},attr:function(a,c,d){var e=ib.props[c];return c=ib.propFix[c.toLowerCase()]||c,k.core.skipExecution&&k.core.skipExecution.element===a&&k.core.skipExecution.attributeName==c||!a?void 0:8==a.nodeType?void ib.comment.attr(a,c,d):("checked"==c&&(d="checked"!=d&&"string"==typeof d&&"radio"==a.getAttribute("type")&&d!=a.value&&null!=a.defaultValue&&""!==a.defaultValue?!1:!!d),1===arguments.length?e?a[c]:a.getAttribute(c):void(null!=d?"value"==c&&"select"==a.tagName.toLowerCase()?(d=b(k.toArray(d)),k.each(a.children,function(a){a.selected=!!d[a.value]})):e?a[c]=d:a.setAttribute(c,d):e?"value"==c&&"select"==a.tagName.toLowerCase()?a.selectedIndex=-1:a[c]&&(a[c]=""):a.removeAttribute(c)))},comment:{html:function(a,b){for(var c,d=a,e=d.parentNode,f=d.nextSibling,g=0;f&&(8!=f.nodeType||-1==f.nodeValue.indexOf("/blocks"));)g++,c=f.nextSibling,e.removeChild(f),f=c;return e.insertBefore(i(b),d.nextSibling),g},attr:function(a,b,c){if(a&&b==cb&&c){var d=a,e=a._endElement;return d.nodeValue=" "+c+":"+d.nodeValue.replace(V,"")+" ",e.nodeValue=" "+c+":"+e.nodeValue.replace(V,"")+" ",this}return this}}},jb={},kb=function(){var a=[];return{startObserving:function(){a.push([])},stopObserving:function(){return a.pop()},currentObservables:function(){return a[a.length-1]},registerObservable:function(b){var c=a[a.length-1],d=!1;c&&(k.each(c,function(a){return a===b?(d=!0,!1):void 0}),d||c.push(b))}}}(),lb={Html:0,ValueOnly:2,Create:function(a,b,c){for(var d,e,f,g=-1,h=0,i=[];a.length>++g;)d=a.charAt(g),"{"==d&&"{"==a.charAt(g+1)?e=g+2:"}"==d&&"}"==a.charAt(g+1)&&(e&&(f=a.substring(e,g),b||(f=f.replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")),d=a.substring(h,e-2),d&&i.push(d),i.push({expression:f,attributeName:b}),h=g+2),e=0);return d=a.substring(h),d&&i.push(d),i.text=a,i.attributeName=b,i.element=c,i.isExpression=!0,f?i:null},GetValue:function(a,b,c,d){var e,f="",g=c.length,h=-1;if(!a)return c.text;if(1==g)f=lb.Execute(a,b,c[0],c,d);else for(;++h"+j)),j}};k.VirtualElement=k.inherit(m,{tagName:function(a){return a?(this._tagName=a,this):this._tagName},html:function(a){return arguments.length>0?(a=null==a?"":a,this._state?this._state.html!==a&&(this._state.html=a,ib.html(this._el,a)):(this._innerHTML=a,ib.html(this._el,a)),this._children=[],this):this._innerHTML||""},text:function(a){return arguments.length>0?(null!=a&&(a=h(a),this.html(a)),this):this.html()},parent:function(){return this._parent},children:function(a){return"number"==typeof a?this._children[a]:this._children},attr:function(a,c){var d,e=this;if("string"==typeof a){var f=this._tagName,g=this._attributes.type,h=c,i=fb.data(this),j=this._getAttr("value");if(a=k.unwrapObservable(a),a=ib.attrFix[a]||a,c=k.unwrapObservable(c),k.isObservable(h)&&"value"==a&&ib.valueTagNames[f]&&(!g||ib.valueTypes[g])?(i.subscribe="select"==f?"change":"input",i.valueObservable=h):!k.isObservable(h)||"checked"!=a||"checkbox"!=g&&"radio"!=g||(i.subscribe="click",i.valueObservable=h),1==arguments.length)return d=this._getAttr(a),void 0===d?null:d;"checked"!=a||null==c||this._fake?"disabled"==a&&(c=c?"disabled":null):c="radio"==this._attributes.type&&"string"==typeof c&&j!=c&&null!=j?null:c?"checked":null,"textarea"!=f||"value"!=a||this._el?"value"==a&&"select"==f?(this._values=b(k.toArray(c)),ib.attr(this._el,a,c)):(this._haveAttributes=!0,this._state?this._state.attributes[a]!==c&&(this._state.attributes[a]=c,ib.attr(this._el,a,c)):(this._attributes[a]=c,ib.attr(this._el,a,c))):this.html(c)}else k.isPlainObject(a)&&k.each(a,function(a,b){e.attr(b,a)});return this},removeAttr:function(a){return this._attributes[a]=null,ib.removeAttr(this._el,a),this},css:function(a,b){var c=this;if("string"==typeof a){if(a=k.unwrap(a),b=k.unwrap(b),!a)return;if(a=a.toString().replace(/-\w/g,function(a){return a.charAt(1).toUpperCase()}),1===arguments.length)return b=this._getCss(a),void 0===b?null:b;"display"==a&&(b="none"==b||!b&&""!==b?"none":""),this._haveStyle=!0,m.CssNumbers[a]||(b=k.toUnit(b)),this._state?this._state.style[a]!==b&&(this._state.style[a]=b,ib.css(this._el,a,b)):(this._style[a]=b,ib.css(this._el,a,b))}else k.isPlainObject(a)&&k.each(a,function(a,b){c.css(b,a)});return this},addChild:function(a,b){var c,d=this._template||this._children;return a&&(a._parent=this,this._childrenEach||this._each?a._each=!0:this._el&&(c=i(a.render(k.domQuery(this))),a._el=c.childNodes[0],"number"==typeof b?this._el.insertBefore(c,this._el.childNodes[b]):this._el.appendChild(c)),"number"==typeof b?d.splice(b,0,a):d.push(a)),this},addClass:function(a){return p("add",this,a),ib.addClass(this._el,a),this},removeClass:function(a){return p("remove",this,a),ib.removeClass(this._el,a),this},toggleClass:function(a,b){b===!1?this.removeClass(a):this.addClass(a)},hasClass:function(a){return-1!=g(this._attributes[W],a)},renderBeginTag:function(){var a;return a="<"+this._tagName,this._haveAttributes&&(a+=this._renderAttributes()),this._haveStyle&&(a+=n(this._style,this._state)),a+=this._isSelfClosing?" />":">"},renderEndTag:function(){return this._isSelfClosing?"":""},render:function(a,b){var c="",d="",e=this._el;return void 0!==b&&(this._state={attributes:{},style:{},html:null,expressions:{}},this._states||(this._states={}),this._states[b]=this._state),this._el=void 0,this._execute(a),this._el=e,this._renderMode!=m.RenderMode.None&&(this._renderMode!=m.RenderMode.ElementOnly&&(d=this._state&&null!==this._state.html?this._state.html:null!=this._innerHTML?this._innerHTML:this.renderChildren(a,b)),c+=this.renderBeginTag(),c+=d,c+=this.renderEndTag()),this._state=null,c -},renderChildren:function(a,b){for(var c,d,e="",f=this._template||this._children,g=f.length,h=-1;++he;e++)d=a.childNodes[b],d&&r("remove",d)&&b++},setVisibility:function(a,b){b?ob.show(a):ob.hide(a)},show:function(a){r("show",a)},hide:function(a){r("hide",a)}};k.VirtualComment=k.inherit(m,t,{renderBeginTag:function(){var a=this._getAttr(cb),b=""},renderEndTag:function(){var a=this._getAttr(cb),b=""},_executeAttributeExpressions:k.noop}),t.Is=function(a){return t.prototype.isPrototypeOf(a)};var pb={};z.QueryCache={},z.prototype={options:function(){return this._options},dataIndex:x("_dataIndex"),context:x("_context"),popContext:function(){this._context&&(this._context=this._context.$parentContext)},applyContextToElement:function(a){var b=fb.createIfNotExists(a);b.domQuery=this,b.context=this._context,(this._hasChanged||a._each&&!a._parent._each)&&(a._parent&&!a._each&&(b=fb.createIfNotExists(a._parent),b.childrenContext=this._context),this._hasChanged=!1,b.haveData=!0)},pushContext:function(a){var b,c=this._context,d=c?c.$parents.slice(0):[];return this._hasChanged=!0,c&&d.unshift(c.$this),b={$this:a,$root:c?c.$root:a,$parent:c?c.$this:null,$parents:c?d:[],$index:this._dataIndex||null,$parentContext:c||null},b.$context=b,this._context=b,this.applyDefinedContextProperties(),b},getSyncIndex:function(){for(var a=this._context,b="";a&&a.$index;)b=a.$index.__value__+"_"+b,a=a.$parentContext;return b},contextBubble:function(a,b){var c=this._context;this._context=a,b(),this._context=c},addProperty:function(a,b){this._contextProperties[a]=b,this.applyDefinedContextProperties()},removeProperty:function(a){delete this._contextProperties[a]},applyDefinedContextProperties:function(){var a,b=this._context,c=this._contextProperties;for(a in c)b[a]=c[a]},executeElementQuery:function(a){var b=m.Is(a)?a._attributes[db]:1==a.nodeType?a.getAttribute(db):a.nodeValue.substring(a.nodeValue.indexOf("blocks")+6).replace(V,"");b&&this.executeQuery(a,b)},executeQuery:function(a,b){var c=z.QueryCache[b]||A(b,a);this.executeMethods(a,c)},executeMethods:function(a,b){for(var c,d,e,f,g,h,i,j=fb.data(a),l=0,n=0;nl,l=kb.currentObservables().length,d.push(e)):d.push(c.passRawValues?e.rawValue:e.value),c===k.queries["if"]||c===k.queries.ifnot){if(!e.value&&c===k.queries["if"]||e.value&&c===k.queries.ifnot){if(!f[2])break;this.executeQuery(a,f[2]);break}this.executeQuery(a,f[1]);break}}var q=d;if(c.passDomQuery&&(q=k.clone(d).slice(1)),k.debug.checkQuery(b[n].name,q,b[n],a),m.Is(a)){if(t.Is(a)&&!c.supportsComments)continue;if(c.call)c.call===!0?a[b[n].name].apply(a,d):(d.unshift(c.prefix||b[n].name),a[c.call].apply(a,d));else if(c.preprocess&&c.preprocess.apply(a,d)===!1){this.subscribeObservables(b[n],j,h);break}}else if(c.call){var r=fb.data(a).virtual;r._each&&(r=m("div"),r._el=a,r._fake=!0),c.call===!0?r[b[n].name].apply(r,d):(d.unshift(c.prefix||b[n].name),r[c.call].apply(r,d))}else j&&j.preprocess&&c.ready?c.ready.apply(a,d):c.update&&c.update.apply(a,d);this.subscribeObservables(b[n],j,h)}else j.haveData=!0,j.execute||(j.execute=[]),j.execute.push(b[n])},subscribeObservables:function(a,b,c){var d=kb.stopObserving();b&&(b.haveData=!0,k.each(d,function(d){b.observables[d.__id__+a.query]||(b.observables[d.__id__+a.query]=d,d._elements.push({elementId:b.id,cache:[a],context:c}))}))},createElementObservableDependencies:function(a){for(var b,c,d,e=0;e1?this.toggleClass(a,!!b):this.addClass(a)},update:function(a,b){var c=fb.data(this).virtual;c._each&&(c=m(),c._el=this),arguments.length>1?c.toggleClass(a,b):c.addClass(a)}},html:{call:!0},text:{call:!0},visible:{call:"css",prefix:"display"},attr:{passRawValues:!0,call:!0},val:{passRawValues:!0,call:"attr",prefix:"value"},checked:{passRawValues:!0,call:"attr"},disabled:{passRawValues:!0,call:"attr"},css:{call:!0},width:{call:"css"},height:{call:"css"},focused:{preprocess:k.noop,update:function(a){a&&this.focus()}},on:{ready:function(a,b,c){if(a&&b){b=k.toArray(b);var d=this,e=function(a){var d=k.context(this),e=d.$template||d.$view||d.$root;k.each(b,function(b){b.call(e,a,c)})};a=k.isArray(a)?a:a.toString().split(" "),k.each(a,function(a){f(d,a,e)})}}}}),k.each(["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout","select","change","submit","reset","focus","blur","keydown","keypress","keyup"],function(a){k.queries[a]={passRawValues:!0,ready:function(b,c){k.queries.on.ready.call(this,a,b,c)}}});var rb="__blocks.observable__";B.prototype={dispose:function(){this.childNodesCount=void 0,this.startIndex=0,this.observableLength=void 0,this.startOffset=0,this.endOffset=0},setStartIndex:function(a){this.startIndex=a+this.startOffset},setChildNodesCount:function(a){void 0===this.childNodesCount&&(this.observableLength=this.observable.__value__.length),this.childNodesCount=a-(this.startOffset+this.endOffset)},chunkLength:function(a){var b,c=this.chunkLengths,d=fb.id(a),e=c[d]||(this.childNodesCount||a.childNodes.length)/(this.observableLength||this.observable.__value__.length);return b=k.isNaN(e)||1/0===e?0:Math.round(e),c[d]=b,b},getAt:function(a,b){for(var c=this.chunkLength(a),d=a.childNodes,e=[],f=0;c>f;f++)e[f]=d[b*c+f+this.startIndex];return e},insertAt:function(a,b,c){ob.insert(a,this.chunkLength(a)*b+this.startIndex,k.isArray(c)?c:[c])},removeAt:function(a,b){var c=this.chunkLength(a);ob.remove(a,c*b+this.startIndex,c)},remove:function(a,b){var c=this;this.each(function(d){for(var e=0;b>e;e++)c.removeAt(d,a)}),fb.collectGarbage(),this.dispose(),this.observable._indexes.splice(a,b)},removeAll:function(){var a=this,b=this.observable.__value__;this.each(function(c){k.each(b,function(){a.removeAt(c,0)})})},add:function(a,b){var c=this,d=this.observable;k.each(a,function(a,c){d._indexes.splice(b+c,0,k.observable(b+c))}),this.each(function(e,f){var g,h=k.domQuery(e),i=k.context(e),j="";if(h.contextBubble(i,function(){g=h.getSyncIndex();for(var c=0;c0?c.add(a.slice(b.length),b.length):e>0&&c.remove(a.length,e),this.__value__=a,U.trigger(this,"remove",{type:"remove",items:b,index:0}),U.trigger(this,"add",{type:"add",items:a,index:0}),this},add:function(a,b){return this.splice(k.isNumber(b)?b:this.__value__.length,0,a),this},addMany:function(a,b){return this.splice.apply(this,[k.isNumber(b)?b:this.__value__.length,0].concat(k.toArray(a))),this},swap:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;k.swap(d,a,b);for(var g=0;gb?(f.insertAt(c,a,f.getAt(c,b)),f.insertAt(c,b,f.getAt(c,a))):(f.insertAt(c,b,f.getAt(c,a)),f.insertAt(c,a,f.getAt(c,b)));return this},move:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;k.move(d,a,b),b>a&&b++;for(var g=0;g1?this().slice(a,b):this().slice(a)},join:function(a){return arguments.length>0?this().join(a):this().join()},pop:function(){var a=this,b=a();return a.splice(b.length-1,1)[0]},push:function(){return this.addMany(arguments),this.__value__.length},reverse:function(){var a=this().reverse(),b=this._chunkManager;return this._indexes.reverse(),b.each(function(c){for(var d=1;d0,g=this._chunkManager,h=this._indexes,i=0;e>i;i++){var j=[d[i],i];g.each(function(a){j.push(g.getAt(a,i))}),d[i]=j}for(d.sort(function(b,c){return b=b[0],c=c[0],f?a.call(this,b,c):c>b?-1:b>c?1:0}),h.length>0&&(this._indexes=[]),i=0;e>i;i++)c=d[i],h.length>0&&this._indexes.push(h[c[1]]),b=2,g.each(function(a){g.insertAt(a,e,c[b]),b++}),d[i]=c[0];return this.update(),d},splice:function(a,b){var c,d=this.__value__,e=this._chunkManager,f=[],g=arguments;return a=0>a?d.length-a:a,b&&a=0&&(b=Math.min(d.length-a,b),f=d.slice(a,a+b),U.trigger(this,"removing",{type:"removing",items:f,index:a}),e.remove(a,b),f=d.splice(a,b),U.trigger(this,"remove",{type:"remove",items:f,index:a})),g.length>2&&(c=k.toArray(g),c.splice(0,2),U.trigger(this,"adding",{type:"adding",index:a,items:c}),e.add(c,a),d.splice.apply(d,[a,0].concat(c)),U.trigger(this,"add",{type:"add",index:a,items:c})),this.update(),f},unshift:function(){return this.addMany(arguments,0),this.__value__.length}}}});var ub={waiting:{},initExpressionExtender:function(a){var b=a.clone();return b.view=k.observable([]),b.view._connections={},b.view._observed=[],b.view._updateObservable=k.bind(ub.updateObservable,b),b._operations=a._operations?k.clone(a._operations):[],b._getter=k.bind(ub.getter,b),b.view._initialized=!1,b.view.on("get",b._getter),b},getter:function(){U.off(this.view,"get",this._getter),this._getter=void 0,this.view._initialized=!0,ub.executeOperationsPure(this)},updateObservable:function(){ub.executeOperations(this)},executeOperationsPure:function(a){var b=[],c=a.view._observed,d=a.view._updateObservable;k.each(c,function(a){U.off(a,"change",d)}),c=a.view._observed=[],kb.startObserving(),k.each(a._operations,function(c){if("step"==c.type){var d=a.view;a.view=k.observable([]),a.view._connections={},b.length&&ub.executeOperationsChunk(a,b),c.step.call(a.__context__),a.view=d}else b.push(c)}),b.length&&ub.executeOperationsChunk(a,b),k.each(kb.stopObserving(),function(a){c.push(a),a.on("change",d)})},executeOperations:function(a){var b=a.__id__,c=ub.waiting;c[b]||(c[b]=!0,setTimeout(function(){ub.executeOperationsPure(a),c[b]=!1},0))},executeOperationsChunk:function(a,b){var c="add",d="remove",e="exists",f=e,g=a.__value__,h=a.view,i=h._connections,j={},l=0,m=h.update,n=0,o=g.length;h.update=k.noop,k.each(b,function(c){"skip"==c.type?(n=c.skip,k.isFunction(n)&&(n=n.call(a.__context__)),n=k.unwrap(n)):"take"==c.type?(o=c.take,k.isFunction(o)&&(o=o.call(a.__context__)),o=k.unwrap(o)):"sort"==c.type&&(g=k.isString(c.sort)?k.clone(g).sort(function(a,b){return a[c.sort]-b[c.sort]}):k.isFunction(c.sort)?k.clone(g).sort(c.sort):k.clone(g).sort(),1==b.length&&b.push({type:"filter",filter:function(){return!0}}))}),k.each(g,function(m,p){if(0>=o){for(;h().length-l>0;)h.removeAt(h().length-1);return!1}switch(k.each(b,function(b){var h=b.filter;if(f=void 0,h){if(!h.call(a.__context__,m,p,g))return f=void 0,void 0!==i[p]&&(f=d),!1;f=e,void 0===i[p]&&(f=c)}else if("skip"==b.type){if(f=e,n-=1,n>=0)return f=d,!1;0>n&&void 0===i[p]&&(f=c)}else if("take"==b.type){if(0>=o)return f=d,!1;o-=1,f=e,void 0===i[p]&&(f=c)}}),f){case c:j[p]=l,h.splice(l,0,m),l++;break;case d:h.removeAt(l);break;case e:j[p]=l,l++}}),h._connections=j,h.update=m,h.update()}};k.observable.filter=function(a){var b=ub.initExpressionExtender(this),c=a;return(!k.isFunction(c)||k.isObservable(c))&&(c=function(b){var c=k.unwrap(a),d=String(c).toLowerCase();return b=String(k.unwrap(b)).toLowerCase(),!c||-1!=b.indexOf(d)}),b._operations.push({type:"filter",filter:c}),b.on("add",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),ub.executeOperations(b))}),b.on("remove",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),ub.executeOperations(b))}),b},k.observable.step=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"step",step:a}),b},k.observable.skip=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"skip",skip:a}),b},k.observable.take=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"take",take:a}),b},k.observable.sort=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"sort",sort:a}),b},k.query=function(a,b){k.domReady(function(){k.$unwrap(b,function(b){k.isElement(b)||(b=document.body);var c=new z,d=u(b)[0],e=window.__blocksServerData__;c.pushContext(a),c._serverData=e,e?d.render(c):d.sync(c),c.createElementObservableDependencies([b])})})},k.executeQuery=function(a,b){var c=m.Is(a)?"preprocess":"update",d=Array.prototype.slice.call(arguments,2),e=k.queries[b];e.passDomQuery&&d.unshift(k.domQuery(a)),e[c].apply(a,d)},k.context=function(a,b){if(a=k.$unwrap(a)){var c=fb.data(a);if(c){if(b&&c.childrenContext)return c.childrenContext;if(c.context)return c.context}return k.context(m.Is(a)?a._parent:a.parentNode,!0)}return null},k.dataItem=function(a){var b=k.context(a);return b?b.$this:null},k.isObservable=function(a){return!!a&&a.__identity__===rb},k.unwrapObservable=function(a){return a&&a.__identity__===rb?a():a},k.domQuery=function(a){if(a=k.$unwrap(a)){var b=fb.data(a,"domQuery");return b?b:k.domQuery(m.Is(a)?a._parent:a.parentNode)}return null},k.extend(k.queries,{view:{passDomQuery:!0,preprocess:function(a,b){b.isActive()?(this.css("display",""),b._html&&k.queries.template.preprocess.call(this,a,b._html,b)):this.css("display","none"),X["with"].preprocess.call(this,a,b,"$view")},update:function(a,b){b.isActive()?(b._html&&(X["with"].preprocess.call(this,a,b,"$view"),this.innerHTML=b._html,b._children=b._html=void 0,k.each(u(this.childNodes[0]),function(b){m.Is(b)&&b.sync(a)}),a.createElementObservableDependencies(this.childNodes)),ob.show(this)):ob.hide(this)}},navigateTo:{update:function(a,b){function c(c){c=c||window.event,c.preventDefault(),c.returnValue=!1,k.isString(a)?window.location.href=a:a.navigateTo(a,b)}f(this,"click",c)}},trigger:{}});var vb={required:{priority:9,validate:function(a,b){return a!==b.defaultValue&&""!==a&&a!==!1&&void 0!==a&&null!==a?!0:void 0}},minlength:{priority:19,validate:function(a,b,c){return void 0===a||null===a?!1:a.length>=parseInt(c,10)}},maxlength:{priority:29,validate:function(a,b,c){return void 0===a||null===a?!0:a.length<=parseInt(c,10)}},min:{priority:39,validate:function(a,b,c){return void 0===a||null===a?!1:a>=c}},max:{priority:49,validate:function(a,b,c){return void 0===a||null===a?!1:c>=a}},email:{priority:59,validate:function(a){return/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(a)}},url:{priority:69,validate:function(a){return/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/.test(a)}},date:{priority:79,validate:function(a){return a?!/Invalid|NaN/.test(new Date(a.toString()).toString()):!1}},creditcard:{priority:89,validate:function(a){if(k.isString(a)&&0===a.length)return!1;if(k.isNumber(a)&&(a=a.toString()),/[^0-9 \-]+/.test(a))return!1;var b=0,c=0,d=!1;a=a.replace(/\D/g,"");for(var e=a.length-1;e>=0;e--){var f=a.charAt(e);c=parseInt(f,10),d&&(c*=2)>9&&(c-=9),b+=c,d=!d}return b%10===0}},regexp:{priority:99,validate:function(a,b,c){return k.isRegExp(c)?void 0===a||null===a?!1:c.test(a):!1}},number:{priority:109,validate:function(a){return k.isNumber(a)?!0:k.isString(a)&&0===a.length?!1:/^(-?|\+?)(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)}},digits:{priority:119,validate:function(a){return/^\d+$/.test(a)}},letters:{priority:129,validate:function(a){return a?/^[a-zA-Z]+$/.test(a):!1}},equals:{priority:139,validate:function(a,b,c){return k.equals(a,k.unwrap(c))}}};k.observable.validation=function(a){var b,c,d=this,e=a.maxErrors,f=this.errorMessages=k.observable([]),g=this._validators=[];this.errorMessage=k.observable("");for(b in a)c=a[b],vb[b]?g.push({option:c,validate:vb[b].validate,priority:vb[b].priority}):("validate"==b||"asyncValidate"==b)&&g.push({option:"",validate:c.validate?c.validate:c,priority:c.priority||Number.POSITIVE_INFINITY,isAsync:"asyncValidate"==b});g.sort(function(a,b){return a.priority>b.priority?1:-1}),this.valid=k.observable(!0),this.validate=function(){var b,h,i,j=d.__value__,l=!0,m=0,n=0;for(f.removeAll();n=e);n++){if(h=g[n],h.isAsync)return h.validate(j,function(b){F(d,a,!!b)}),!0;b=h.option,c=h.option,k.isPlainObject(b)&&(c=b.value),k.isFunction(c)&&(c=c.call(d.__context__)),i=h.validate(j,a,c),k.isString(i)&&(i=[i]),(k.isArray(i)||!i)&&(f.addMany(k.isArray(i)?i:b&&b.message?[b.message]:c&&k.isString(c)?[c]:[]),l=!1,m++)}return F(this,a,l),this.valid(l),U.trigger(this,"validate"),l},a.validateOnChange&&this.on("change",function(){this.validate()}),a.validateInitially&&this.validate()},k.route=function(a){return H(a)},H.Is=function(a){return H.prototype.isPrototypeOf(a)},H.Has=function(a){return null!=a._routeString},H.Combine=function(a,b){if(!H.Has(b))return a;if(!H.Has(a))return b;var c=H(a+b);return k.extend(c._wildcard,a._wildcard,b._wildcard),k.extend(c._optional,a._optional,b._optional),k.extend(c._validate,a._validate,b._validate),c},H.prototype={wildcard:function(){var a=this._wildcard,b=k.flatten(k.toArray(arguments)); -return k.each(b,function(b){a[b]=!0}),this},optional:function(a,b){return this._addMetadata("optional",a,b),this},validate:function(a,b){return this._addMetadata("validate",a,b),this},transform:function(a,b){return this._addMetadata("_transform",a,b),this},toString:function(){return this._routeString?this._routeString.toString():""},trailingSlash:function(){return this},_transfromParam:function(a,b){var c=this._transform[a];return""===b&&k.has(this._optional,a)&&(b=this._optional[a]),c?c(b):b},_validateParam:function(a,b){var c=this._validate[a];return c?c(b):!0},_addMetadata:function(a,b,c){var d=this["_"+a];k.isPlainObject(b)?k.each(b,function(a,b){d[b]=a}):k.isString(b)&&(d[b]=c)}},k.core.Router=I,I.GenerateRoute=function(a,b){var c=new I,d=c.registerRoute(a),e=c.routeTo(d,b);return 0===a.indexOf("/")&&0!==e.indexOf("/")?"/"+e:e},I.prototype={registerRoute:function(a,b){a=H(a),b=H(b?this._routes[H(b).toString()].route:void 0);var c=H.Combine(b,a),d=c._routeString=c._routeString.replace(/^\//,""),e=this._generateRouteStringData(d);return this._routes[d]={route:c,data:e,regExCollection:this._generateRouteRegEx(c,e),parent:H.Has(b)?this._routes[b.toString()]:void 0},d},routeTo:function(a,b){var c,d=this._routes[a],e=d.route,f="";return b=b||{},k.each(d.data,function(a){c=a.param,c?e._validateParam(b[c])&&(f+=k.has(b,c)?b[c]:e._optional[c]):f+=a.string}),f},routeFrom:function(a){var b,c=this._getUrlParams,d=[];return a=decodeURI(a),k.each(this._routes,function(e){k.each(e.regExCollection,function(f){if(f.regEx.test(a)){for(b=f.regEx.exec(a);e;)d.unshift({id:e.route._routeString,params:c(e,f.params,b)}),e=e.parent;return!1}})}),d.length?d:null},_getUrlParams:function(a,b,c){var d,e,f=a.route,g={};return k.each(b,function(a,b){d=c[b+1],f._validateParam(a,d)&&(g[a]=f._transfromParam(a,d))}),k.each(a.data,function(a){e=a.param,e&&!g[e]&&k.has(f._optional,e)&&void 0!==f._optional[e]&&(g[e]=f._optional[e])}),g},_generateRouteRegEx:function(a,b){var c,d,e,f,g,h=[],i=this._sliceLastFromRegExString,j=this._getOptionalParametersCombinations(a,b);return k.each(j,function(j){e="^",f=[],k.each(b,function(b){if(g=b.param){if(d=!0,k.has(a._optional,g)&&j[g]||(c=!1),j[g])return;f.push(g),e+=a._wildcard[g]?k.has(a._optional,g)?"(.*?)":"(.+?)":k.has(a._optional,g)?"([^/]*?)":"([^/]+?)"}else"/"==b.string&&(d&&c&&(e=i(e)),d=!1,c=!0),e+=G(b.string)}),d&&c&&(e=i(e)),h.push({regEx:new RegExp(e+"$","i"),params:f})}),h},_sliceLastFromRegExString:function(a){for(var b,c=0;cd;d++){for(c={},c.__lowestIndex__=h,c.__length__=0,e=0;h>e;e++)d&Math.pow(2,e)&&(e=200&&300>c||304===c;d?this.callSuccess(b.responseText):this.callError(b.statusText)},xhrError:function(){this.callError()},scriptRequest:function(){var a=this,b=this.options,c=document.createElement("script"),d={},e=k.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback;d[b.jsonp]=e,this.appendDataToUrl(d),window[e]=function(b){window[e]=null,a.scriptLoad(b)},c.onerror=this.scriptError,c.async=b.async,c.src=b.url,document.head.appendChild(c)},scriptLoad:function(a){this.callSuccess(a)},scriptError:function(){this.callError()},appendDataToUrl:function(a){var b=this,c=this.options,d=/\?/.test(c.url);k.isPlainObject(a)?k.each(a,function(a,e){c.url+=b.append(d,e,a.toString())}):k.isArray(a)?k.each(a,function(a,c){b.appendDataToUrl(c)}):c.url+=b.append(d,a.toString(),"")},append:function(a,b,c){var d=a?"&":"?";return d+=b,c&&(d+="="+c),d},callSuccess:function(a){var b=this.options.success,c="success";b&&b(a,c,null),this.callComplete(c)},callError:function(a){var b=this.options.error,c="error";b&&b(null,c,a),this.callComplete(c)},callComplete:function(a){var b=this.options.complete;b&&b(null,a)}};var xb="create",yb="update",zb="destroy",Ab="GET",Bb="application/json; charset=utf-8",Cb=["change","sync","error","requestStart","requestEnd"];k.DataSource=L,L.ArrayMode=1,L.ObjectMode=2,L.prototype={options:{baseUrl:"",idAttr:"",mode:L.ArrayMode,read:{url:"",type:Ab,contentType:Bb},update:{url:"",type:"POST",contentType:Bb},create:{url:"",type:"POST",contentType:Bb},destroy:{url:"",type:"POST",contentType:Bb}},read:function(a,b){var c=this;return b=arguments[arguments.length-1],k.isFunction(a)&&(a={}),a=a||{},c._ajax("read",a,function(d){k.isString(d)&&(d=JSON.parse(d)),c.options.mode==L.ArrayMode&&(k.isArray(d)||(k.isArray(d.value)?d=d.value:k.isObject(d)&&k.each(d,function(a){return k.isArray(a)?(d=a,!1):void 0}))),k.isArray(d)||(d=[d]),a&&a.__updateData__===!1||c._updateData(d),b&&k.isFunction(b)&&b(d)}),c},update:function(){if(0!==arguments.length){var a;arguments.length>1&&k.type(arguments[0])!=k.type(arguments[1])?(a=[arguments[1]],a[0][this.options.idAttr]=arguments[0]):a=k.flatten(arguments),a.length>0&&(this._changes.push({type:yb,items:a}),this._onChangePush())}},hasChanges:function(){return this._changes.length>0},clearChanges:function(){return this._changes.splice(0,this._changes.length),this._changesMeta={},this.hasChanges(!1),this},sync:function(){var a,b=this,c=this._changes,d=c.length;return k.each(c,function(c){k.each(c.items,function(e){a=e,e.__id__&&delete e.__id__,b._ajax(c.type,{data:a},function(){d--,d||b._trigger("sync")})})}),this.clearChanges()},_ajax:function(a,b,c){var d,e=this;b=k.extend({},this.options[a],b),d=b.type.toUpperCase(),b.url=I.GenerateRoute(b.url,b.data),this._trigger("requestStart",{}),K({type:b.type,url:b.url,data:d==Ab?null:JSON.stringify(b.data),contentType:b.contentType,dataType:b.dataType,jsonp:b.jsonp,success:function(a,b,d){e._trigger("requestEnd",{}),a&&c(a,b,d)},error:function(){e._trigger("requestEnd",{}),e._trigger("error")}})},_updateData:function(a){this.data.removeAll(),this.data.addMany(a),this.clearChanges(),this._trigger("change")},_onArrayChange:function(a){var b=a.type;"remove"==b?this._remove(a.items):"removeAt"==b?this._remove(this.data.slice(a.index,a.index+a.count)):"add"==b&&this._add(a.items)},_onChangePush:function(){var a,b=this._changesMeta,c=this._changes,d=c[c.length-1],e=this.options.idAttr,f=d.type;k.each(d.items,function(d){switch(f){case xb:d.__id__=wb(),b[d.__id__]=d;break;case yb:a=b[d[e]],a&&(c.splice(a.index,1),a.item=d,a.index=c.length-1),b[d[e]]={index:c.length-1,item:d};break;case zb:a=b[d?d.__id__:void 0],a&&(c.splice(a.index,1),c.pop(),b[d.__id__]=void 0)}}),c.length>0&&this.options.autoSync?this.sync():this.hasChanges(c.length>0)},_add:function(a){this._changes.push({type:xb,items:a}),this._onChangePush()},_remove:function(a){this._changes.push({type:zb,items:a}),this._onChangePush()},_subscribeToEvents:function(){var a=this,b=this.options;k.each(Cb,function(c){b[c]&&a.on(c,b[c])})}},U.register(L.prototype,["on","_trigger","change","error","requestStart","requestEnd"]),k.core.applyExpressions("array",k.DataSource.prototype,k.toObject(["size","at","isEmpty","each"])),M.Is=function(a){return M.prototype.isPrototypeOf(a)},M.Inflate=function(a){var b,c,d={};for(b in a)c=a[b],M.Is(c)&&(c=c._options,c.propertyName=b,d[c.field||b]=c);return d},M.Create=function(a,b,c){var d;return arguments.length<3&&(c=a.value||a.defaultValue),b=a.thisArg?a.thisArg:b,d=k.observable(c,b).extend("validation",a).on("changing",a.changing,b).on("change",a.change,b),k.each(a.extenders,function(a){d=d.extend.apply(d,a)}),d},M.prototype.extend=function(){var a=this._options;return a.extenders=a.extenders||[],a.extenders.push(k.toArray(arguments)),this},N.prototype={options:{},init:k.noop,collection:function(){return this._collection},validate:function(){var a,b,c=this._properties,d=!0;for(b in c)a=this[b],k.isObservable(a)&&!a.validate()&&(d=!1);return this.valid(d),this._updateValidationErrors(),d},dataItem:function(){var a,b,c=this._properties,d={};for(a in c)b=c[a],"__id__"!=a&&k.isFunction(this[b.propertyName])&&(d[b.field||b.propertyName]=this[b.propertyName]());return this.isNew()&&delete d[this.options.idAttr],d},reset:function(a){return this._ensurePropertiesCreated(a),this},isNew:function(){var a=this.options.idAttr,b=k.unwrap(this[a]),c=this._properties[a];return!b&&0!==b||c&&b===c.defaultValue?!0:!1},read:function(a,b){return k.isFunction(a)&&(b=a,a=void 0),this._dataSource.read({data:a},b),this},destroy:function(a){return a=a===!1?!1:!0,a&&this._collection&&this._collection.remove(this),this._dataSource._remove([this.dataItem()]),this},sync:function(){return this.isNew()&&this._dataSource.add(this.dataItem()),this._dataSource.sync(),this},clone:function(){return new this.constructor(k.clone(this._initialDataItem,!0))},_setPropertyValue:function(a,b){var c=a.propertyName;k.isFunction(this[c])?(this[c](b),this._dataSource.update(this.dataItem())):this[c]=a.isObservable?this._createObservable(a,b):function(){return b}},_ensurePropertiesCreated:function(a){var b,c,d,e=this._properties;if(a){N.prototype.isPrototypeOf(a)&&(a=a.dataItem());for(c in a)b=e[c],b||(b=e[c]=k.extend({},this._application.Property.Defaults()),b.propertyName=c),this._setPropertyValue(b,a[c])}for(c in e)b=e[c],k.has(a,b.propertyName)||(d=b.field||b.propertyName,this._setPropertyValue(b,b.value||(k.has(a,d)?a[d]:b.defaultValue)))},_createObservable:function(a,b){var c=this,d=this._properties,e=M.Create(a,this,b);return e.on("change",function(){c.isNew()||c._dataSource.update(c.dataItem())}).on("validate",function(){var a,b=!0;for(a in d)if(!c[a].valid()){b=!1;break}c._updateValidationErrors(),c.valid(b)}),this._collection||e.extend(),e},_onDataSourceChange:function(){var a=k.unwrapObservable(this._dataSource.data())[0];this._ensurePropertiesCreated(a)},_updateValidationErrors:function(){var a,b,c=this._properties,d=[];for(b in c)a=this[b],a.errorMessages&&d.push.apply(d,a.errorMessages());this.validationErrors.reset(d)}},k.core.expressionsCreated&&k.core.applyExpressions("object",N.prototype);var Db=/^[#\/]|\s+$/g,Eb=/^\/+|\/+$/g,Fb=/msie [\w.]+/,Gb=/\/$/,Hb=/[?#].*$/,Ib="hash",Jb="pushState";P.prototype={start:function(){var a=this._fragment,b=document.documentMode,c=Fb.exec(navigator.userAgent.toLowerCase())&&(!b||7>=b);this._use==Ib&&c&&(this._createIFrame(),this.navigate(a)),this._initEvents(c),this._tryAdaptMechanism(a)||this._loadUrl()},navigate:function(a,b){b&&b!==!0||(b={trigger:!!b});var c=this._root+(a=this._getFragment(a||"")),d=this._use,e=this._iframe,f=this._location;if(a=a.replace(Hb,""),this._fragment===a)return!1;if(this._fragment=a,""===a&&"/"!==c&&(c=c.slice(0,-1)),this._wants==Jb&&d==Jb)this._history[b.replace?"replaceState":"pushState"]({},document.title,c);else{if(d!=Ib)return f.assign(c),!0;this._updateHash(f,a,b.replace),e&&a!==this.getFragment(this._getHash(e))&&(b.replace||e.document.open().close(),this._updateHash(e.location,a,b.replace))}return this._loadUrl(a)},_initEvents:function(a){var b=this._use,c=k.bind(this._onUrlChanged,this);this._wants==Jb&&f(document,"click",k.bind(this._onDocumentClick,this)),b==Jb?f(window,"popstate",c):b==Ib&&!a&&"onhashchange"in window?f(window,"hashchange",c):b==Ib&&(this._checkUrlInterval=setInterval(c,this._interval))},_loadUrl:function(a){var b=this._initial;return this._initial=!1,this._fragment=a=this._getFragment(a),U.trigger(this,"urlChange",{url:a,initial:b})},_getHash:function(a){var b=(a?a.location:this._location).href.match(/#(.*)$/);return b?b[1]:""},_getFragment:function(a){if(null==a)if(this._use==Jb){var b=this._root.replace(Gb,"");a=this._location.pathname,a.indexOf(b)||(a=a.slice(b.length))}else a=this._getHash();return a.replace(this._location.origin,"").replace(Db,"")},_onUrlChanged:function(){var a=this._getFragment();return a===this._fragment&&this._iframe&&(a=this._getFragment(this._getHash(this._iframe))),a===this._fragment?!1:(this._iframe&&this.navigate(a),void this._loadUrl())},_onDocumentClick:function(a){for(var b=a.target;b;){if(b&&b.tagName&&"a"==b.tagName.toLowerCase()){var c,d=b.getAttribute("download");""===d||d||!this._hostRegEx.test(b.href)||a.altKey||a.ctrlKey||a.metaKey||a.shiftKey||2===a.which||this.navigate(b.href)&&(c=document.getElementById(window.location.hash.replace(/^#/,"")),c&&c.scrollIntoView&&c.scrollIntoView(),a.preventDefault());break}b=b.parentNode}},_tryAdaptMechanism:function(a){var b=this._root,c=this._use,d=this._location,e=d.pathname.replace(/[^\/]$/,"$&/")===b;if(this._fragment=a,this._wants==Jb){if(c!=Jb&&!e)return a=this._fragment=this._getFragment(null,!0),d.replace(b+d.search+"#"+a),!0;c==Jb&&e&&d.hash&&(this._fragment=this._getHash().replace(Db,""),this._history.replaceState({},document.title,b+a+d.search))}},_updateHash:function(a,b,c){if(c){var d=a.href.replace(/(javascript:|#).*$/,"");a.replace(d+"#"+b)}else a.hash="#"+b},_createIFrame:function(){var a=document.createElement("iframe");a.style.display="none",a.src="javascript:0",a.tabIndex=-1,document.body.appendChild(a),this._iframe=a.contentWindow},_tryFixOrigin:function(){var a=window.location;a.origin||(a.origin=a.protocol+"//"+a.hostname+(a.port?":"+a.port:""))}},U.register(P.prototype,["on"]),k.observable.remote=function(a){return R(null,{options:a},null,this.__value__)},k.observable.fn.collection={read:function(a,b){var c=this.__context__;return k.isFunction(a)&&(b=a,a=void 0),this._dataSource.read({data:a},b?function(){b.call(c)}:k.noop),this},clearChanges:function(){return this._dataSource.clearChanges(),this},sync:function(){return this._dataSource.sync(),this},update:function(a,b){return 0===arguments.length?this._baseUpdate.call(this):this._dataSource.update(a,b),this},sortBy:function(a,b){if("string"==typeof a){var c=a;a=function(a){return a[c]()}}return k.sortBy(this.__value__,a,b),this},clone:function(){return R(this._Model,this._prototype,this._application,this.__value__)},_onAdding:function(a){var b=this,c=this._Model,d=a.items;k.each(d,function(a,e){N.prototype.isPrototypeOf(a)&&(a=a.dataItem()),d[e]=new c(a,b)})},_onChange:function(a){var b,c=a.type,d=a.items,e=[],f=0;if(!this._internalChanging){for(;fe;e++)d=a.childNodes[b],d&&r("remove",d)&&b++},setVisibility:function(a,b){b?ob.show(a):ob.hide(a)},show:function(a){r("show",a)},hide:function(a){r("hide",a)}};k.VirtualComment=k.inherit(m,t,{renderBeginTag:function(){var a=this._getAttr(cb),b=""},renderEndTag:function(){var a=this._getAttr(cb),b=""},_executeAttributeExpressions:k.noop}),t.Is=function(a){return t.prototype.isPrototypeOf(a)};var pb={};z.QueryCache={},z.prototype={options:function(){return this._options},dataIndex:x("_dataIndex"),context:x("_context"),popContext:function(){this._context&&(this._context=this._context.$parentContext)},applyContextToElement:function(a){var b=fb.createIfNotExists(a);b.domQuery=this,b.context=this._context,(this._hasChanged||a._each&&!a._parent._each)&&(a._parent&&!a._each&&(b=fb.createIfNotExists(a._parent),b.childrenContext=this._context),this._hasChanged=!1,b.haveData=!0)},pushContext:function(a){var b,c=this._context,d=c?c.$parents.slice(0):[];return this._hasChanged=!0,c&&d.unshift(c.$this),b={$this:a,$root:c?c.$root:a,$parent:c?c.$this:null,$parents:c?d:[],$index:this._dataIndex||null,$parentContext:c||null},b.$context=b,this._context=b,this.applyDefinedContextProperties(),b},getSyncIndex:function(){for(var a=this._context,b="";a&&a.$index;)b=a.$index.__value__+"_"+b,a=a.$parentContext;return b},contextBubble:function(a,b){var c=this._context;this._context=a,b(),this._context=c},addProperty:function(a,b){this._contextProperties[a]=b,this.applyDefinedContextProperties()},removeProperty:function(a){delete this._contextProperties[a]},applyDefinedContextProperties:function(){var a,b=this._context,c=this._contextProperties;for(a in c)b[a]=c[a]},executeElementQuery:function(a){var b=m.Is(a)?a._attributes[db]:1==a.nodeType?a.getAttribute(db):a.nodeValue.substring(a.nodeValue.indexOf("blocks")+6).replace(V,"");b&&this.executeQuery(a,b)},executeQuery:function(a,b){var c=z.QueryCache[b]||A(b,a);this.executeMethods(a,c)},executeMethods:function(a,b){for(var c,d,e,f,g,h,i,j=fb.data(a),l=0,n=0;nl,l=kb.currentObservables().length,d.push(e)):d.push(c.passRawValues?e.rawValue:e.value),c===k.queries["if"]||c===k.queries.ifnot){if(!e.value&&c===k.queries["if"]||e.value&&c===k.queries.ifnot){if(!f[2])break;this.executeQuery(a,f[2]);break}this.executeQuery(a,f[1]);break}}var q=d;if(c.passDomQuery&&(q=k.clone(d).slice(1)),k.debug.checkQuery(b[n].name,q,b[n],a),m.Is(a)){if(t.Is(a)&&!c.supportsComments)continue;if(c.call)c.call===!0?a[b[n].name].apply(a,d):(d.unshift(c.prefix||b[n].name),a[c.call].apply(a,d));else if(c.preprocess&&c.preprocess.apply(a,d)===!1){this.subscribeObservables(b[n],j,h);break}}else if(c.call){var r=fb.data(a).virtual;r._each&&(r=m("div"),r._el=a,r._fake=!0),c.call===!0?r[b[n].name].apply(r,d):(d.unshift(c.prefix||b[n].name),r[c.call].apply(r,d))}else j&&j.preprocess&&c.ready?c.ready.apply(a,d):c.update&&c.update.apply(a,d);this.subscribeObservables(b[n],j,h)}else j.haveData=!0,j.execute||(j.execute=[],j.executeHash={}),j.executeHash[b[n].query]||(j.execute.push(b[n]),j.executeHash[b[n].query]=!0)},subscribeObservables:function(a,b,c){var d=kb.stopObserving();b&&(b.haveData=!0,k.each(d,function(d){b.observables[d.__id__+a.query]||(b.observables[d.__id__+a.query]=d,d._elements.push({elementId:b.id,cache:[a],context:c}))}))},createElementObservableDependencies:function(a){for(var b,c,d,e=0;e1?this.toggleClass(a,!!b):this.addClass(a)},update:function(a,b){var c=fb.data(this).virtual;c._each&&(c=m(),c._el=this),arguments.length>1?c.toggleClass(a,b):c.addClass(a)}},html:{call:!0},text:{call:!0},visible:{call:"css",prefix:"display"},attr:{passRawValues:!0,call:!0},val:{passRawValues:!0,call:"attr",prefix:"value"},checked:{passRawValues:!0,call:"attr"},disabled:{passRawValues:!0,call:"attr"},css:{call:!0},width:{call:"css"},height:{call:"css"},focused:{preprocess:k.noop,update:function(a){a&&this.focus()}},on:{ready:function(a,b,c){if(a&&b){b=k.toArray(b);var d=this,e=function(a){var d=k.context(this),e=d.$template||d.$view||d.$root;k.each(b,function(b){b.call(e,a,c)})};a=k.isArray(a)?a:a.toString().split(" "),k.each(a,function(a){f(d,a,e)})}}}}),k.each(["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout","select","change","submit","reset","focus","blur","keydown","keypress","keyup"],function(a){k.queries[a]={passRawValues:!0,ready:function(b,c){k.queries.on.ready.call(this,a,b,c)}}});var rb="__blocks.observable__";B.prototype={dispose:function(){this.childNodesCount=void 0,this.startIndex=0,this.observableLength=void 0,this.startOffset=0,this.endOffset=0},setStartIndex:function(a){this.startIndex=a+this.startOffset},setChildNodesCount:function(a){void 0===this.childNodesCount&&(this.observableLength=this.observable.__value__.length),this.childNodesCount=a-(this.startOffset+this.endOffset)},chunkLength:function(a){var b,c=this.chunkLengths,d=fb.id(a),e=c[d]||(this.childNodesCount||a.childNodes.length)/(this.observableLength||this.observable.__value__.length);return b=k.isNaN(e)||1/0===e?0:Math.round(e),c[d]=b,b},getAt:function(a,b){for(var c=this.chunkLength(a),d=a.childNodes,e=[],f=0;c>f;f++)e[f]=d[b*c+f+this.startIndex];return e},insertAt:function(a,b,c){ob.insert(a,this.chunkLength(a)*b+this.startIndex,k.isArray(c)?c:[c])},removeAt:function(a,b){var c=this.chunkLength(a);ob.remove(a,c*b+this.startIndex,c)},remove:function(a,b){var c=this;this.each(function(d){for(var e=0;b>e;e++)c.removeAt(d,a)}),fb.collectGarbage(),this.dispose(),this.observable._indexes.splice(a,b)},removeAll:function(){var a=this,b=this.observable.__value__;this.each(function(c){k.each(b,function(){a.removeAt(c,0)})})},add:function(a,b){var c=this,d=this.observable;k.each(a,function(a,c){d._indexes.splice(b+c,0,k.observable(b+c))}),this.each(function(e,f){var g,h=k.domQuery(e),i=k.context(e),j="";if(h.contextBubble(i,function(){g=h.getSyncIndex();for(var c=0;c0?c.add(a.slice(b.length),b.length):e>0&&c.remove(a.length,e),this.__value__=a,U.trigger(this,"remove",{type:"remove",items:b,index:0}),U.trigger(this,"add",{type:"add",items:a,index:0}),this},add:function(a,b){return this.splice(k.isNumber(b)?b:this.__value__.length,0,a),this},addMany:function(a,b){return this.splice.apply(this,[k.isNumber(b)?b:this.__value__.length,0].concat(k.toArray(a))),this},swap:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;k.swap(d,a,b);for(var g=0;gb?(f.insertAt(c,a,f.getAt(c,b)),f.insertAt(c,b,f.getAt(c,a))):(f.insertAt(c,b,f.getAt(c,a)),f.insertAt(c,a,f.getAt(c,b)));return this},move:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;k.move(d,a,b),b>a&&b++;for(var g=0;g1?this().slice(a,b):this().slice(a)},join:function(a){return arguments.length>0?this().join(a):this().join()},pop:function(){var a=this,b=a();return a.splice(b.length-1,1)[0]},push:function(){return this.addMany(arguments),this.__value__.length},reverse:function(){var a=this().reverse(),b=this._chunkManager;return this._indexes.reverse(),b.each(function(c){for(var d=1;d0,g=this._chunkManager,h=this._indexes,i=0;e>i;i++){var j=[d[i],i];g.each(function(a){j.push(g.getAt(a,i))}),d[i]=j}for(d.sort(function(b,c){return b=b[0],c=c[0],f?a.call(this,b,c):c>b?-1:b>c?1:0}),h.length>0&&(this._indexes=[]),i=0;e>i;i++)c=d[i],h.length>0&&this._indexes.push(h[c[1]]),b=2,g.each(function(a){g.insertAt(a,e,c[b]),b++}),d[i]=c[0];return this.update(),d},splice:function(a,b){var c,d=this.__value__,e=this._chunkManager,f=[],g=arguments;return a=0>a?d.length-a:a,b&&a=0&&(b=Math.min(d.length-a,b),f=d.slice(a,a+b),U.trigger(this,"removing",{type:"removing",items:f,index:a}),e.remove(a,b),f=d.splice(a,b),U.trigger(this,"remove",{type:"remove",items:f,index:a})),g.length>2&&(c=k.toArray(g),c.splice(0,2),U.trigger(this,"adding",{type:"adding",index:a,items:c}),e.add(c,a),d.splice.apply(d,[a,0].concat(c)),U.trigger(this,"add",{type:"add",index:a,items:c})),this.update(),f},unshift:function(){return this.addMany(arguments,0),this.__value__.length}}}});var ub={waiting:{},initExpressionExtender:function(a){var b=a.clone();return b.view=k.observable([]),b.view._connections={},b.view._observed=[],b.view._updateObservable=k.bind(ub.updateObservable,b),b._operations=a._operations?k.clone(a._operations):[],b._getter=k.bind(ub.getter,b),b.view._initialized=!1,b.view.on("get",b._getter),b.on("add",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),ub.executeOperations(b))}),b.on("remove",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),ub.executeOperations(b))}),b},getter:function(){U.off(this.view,"get",this._getter),this._getter=void 0,this.view._initialized=!0,ub.executeOperationsPure(this)},updateObservable:function(){ub.executeOperations(this)},executeOperationsPure:function(a){var b=[],c=a.view._observed,d=a.view._updateObservable;k.each(c,function(a){U.off(a,"change",d)}),c=a.view._observed=[],kb.startObserving(),k.each(a._operations,function(c){if("step"==c.type){var d=a.view;a.view=k.observable([]),a.view._connections={},b.length&&ub.executeOperationsChunk(a,b),c.step.call(a.__context__),a.view=d}else b.push(c)}),b.length&&ub.executeOperationsChunk(a,b),k.each(kb.stopObserving(),function(a){c.push(a),a.on("change",d)})},executeOperations:function(a){var b=a.__id__,c=ub.waiting;c[b]||(c[b]=!0,setTimeout(function(){ub.executeOperationsPure(a),c[b]=!1},0))},executeOperationsChunk:function(a,b){var c="add",d="remove",e="exists",f=e,g=a.__value__,h=a.view,i=h._connections,j={},l=0,m=h.update,n=0,o=g.length;h.update=k.noop,k.each(b,function(c){"skip"==c.type?(n=c.skip,k.isFunction(n)&&(n=n.call(a.__context__)),n=k.unwrap(n)):"take"==c.type?(o=c.take,k.isFunction(o)&&(o=o.call(a.__context__)),o=k.unwrap(o)):"sort"==c.type&&(g=k.isString(c.sort)?k.clone(g).sort(function(a,b){return a[c.sort]-b[c.sort]}):k.isFunction(c.sort)?k.clone(g).sort(c.sort):k.clone(g).sort(),1==b.length&&b.push({type:"filter",filter:function(){return!0}}))}),k.each(g,function(m,p){if(0>=o){for(;h().length-l>0;)h.removeAt(h().length-1);return!1}switch(k.each(b,function(b){var h=b.filter;if(f=void 0,h){if(!h.call(a.__context__,m,p,g))return f=void 0,void 0!==i[p]&&(f=d),!1;f=e,void 0===i[p]&&(f=c)}else if("skip"==b.type){if(f=e,n-=1,n>=0)return f=d,!1;0>n&&void 0===i[p]&&(f=c)}else if("take"==b.type){if(0>=o)return f=d,!1;o-=1,f=e,void 0===i[p]&&(f=c)}}),f){case c:j[p]=l,h.splice(l,0,m),l++;break;case d:h.removeAt(l);break;case e:j[p]=l,l++}}),h._connections=j,h.update=m,h.update()}};k.observable.filter=function(a){var b=ub.initExpressionExtender(this),c=a;return(!k.isFunction(c)||k.isObservable(c))&&(c=function(b){var c=k.unwrap(a),d=String(c).toLowerCase();return b=String(k.unwrap(b)).toLowerCase(),!c||-1!=b.indexOf(d)}),b._operations.push({type:"filter",filter:c}),b},k.observable.step=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"step",step:a}),b},k.observable.skip=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"skip",skip:a}),b},k.observable.take=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"take",take:a}),b},k.observable.sort=function(a){var b=ub.initExpressionExtender(this);return b._operations.push({type:"sort",sort:a}),b},k.query=function(a,b){k.domReady(function(){k.$unwrap(b,function(b){k.isElement(b)||(b=document.body);var c=new z,d=u(b)[0],e=window.__blocksServerData__;c.pushContext(a),c._serverData=e,e?d.render(c):d.sync(c),c.createElementObservableDependencies([b])})})},k.executeQuery=function(a,b){var c=m.Is(a)?"preprocess":"update",d=Array.prototype.slice.call(arguments,2),e=k.queries[b];e.passDomQuery&&d.unshift(k.domQuery(a)),e[c].apply(a,d)},k.context=function(a,b){if(a=k.$unwrap(a)){var c=fb.data(a);if(c){if(b&&c.childrenContext)return c.childrenContext;if(c.context)return c.context}return k.context(m.Is(a)?a._parent:a.parentNode,!0)}return null},k.dataItem=function(a){var b=k.context(a);return b?b.$this:null},k.isObservable=function(a){return!!a&&a.__identity__===rb},k.unwrapObservable=function(a){return a&&a.__identity__===rb?a():a},k.domQuery=function(a){if(a=k.$unwrap(a)){var b=fb.data(a,"domQuery");return b?b:k.domQuery(m.Is(a)?a._parent:a.parentNode)}return null},k.extend(k.queries,{view:{passDomQuery:!0,preprocess:function(a,b){b.isActive()?(this.css("display",""),b._html&&k.queries.template.preprocess.call(this,a,b._html,b)):this.css("display","none"),X["with"].preprocess.call(this,a,b,"$view")},update:function(a,b){b.isActive()?(b._html&&(X["with"].preprocess.call(this,a,b,"$view"),this.innerHTML=b._html,b._children=b._html=void 0,k.each(u(this.childNodes[0]),function(b){m.Is(b)&&b.sync(a)}),a.createElementObservableDependencies(this.childNodes)),ob.show(this)):ob.hide(this)}},navigateTo:{update:function(a,b){function c(c){c=c||window.event,c.preventDefault(),c.returnValue=!1,k.isString(a)?window.location.href=a:a.navigateTo(a,b)}f(this,"click",c)}},trigger:{}});var vb={required:{priority:9,validate:function(a,b){return a!==b.defaultValue&&""!==a&&a!==!1&&void 0!==a&&null!==a?!0:void 0}},minlength:{priority:19,validate:function(a,b,c){return void 0===a||null===a?!1:a.length>=parseInt(c,10)}},maxlength:{priority:29,validate:function(a,b,c){return void 0===a||null===a?!0:a.length<=parseInt(c,10)}},min:{priority:39,validate:function(a,b,c){return void 0===a||null===a?!1:a>=c}},max:{priority:49,validate:function(a,b,c){return void 0===a||null===a?!1:c>=a}},email:{priority:59,validate:function(a){return/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(a)}},url:{priority:69,validate:function(a){return/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/.test(a)}},date:{priority:79,validate:function(a){return a?!/Invalid|NaN/.test(new Date(a.toString()).toString()):!1}},creditcard:{priority:89,validate:function(a){if(k.isString(a)&&0===a.length)return!1;if(k.isNumber(a)&&(a=a.toString()),/[^0-9 \-]+/.test(a))return!1;var b=0,c=0,d=!1;a=a.replace(/\D/g,"");for(var e=a.length-1;e>=0;e--){var f=a.charAt(e);c=parseInt(f,10),d&&(c*=2)>9&&(c-=9),b+=c,d=!d}return b%10===0}},regexp:{priority:99,validate:function(a,b,c){return k.isRegExp(c)?void 0===a||null===a?!1:c.test(a):!1}},number:{priority:109,validate:function(a){return k.isNumber(a)?!0:k.isString(a)&&0===a.length?!1:/^(-?|\+?)(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)}},digits:{priority:119,validate:function(a){return/^\d+$/.test(a)}},letters:{priority:129,validate:function(a){return a?/^[a-zA-Z]+$/.test(a):!1}},equals:{priority:139,validate:function(a,b,c){return k.equals(a,k.unwrap(c))}}};k.observable.validation=function(a){var b,c,d=this,e=a.maxErrors,f=this.errorMessages=k.observable([]),g=this._validators=[];this.errorMessage=k.observable("");for(b in a)c=a[b],vb[b]?g.push({option:c,validate:vb[b].validate,priority:vb[b].priority}):("validate"==b||"asyncValidate"==b)&&g.push({option:"",validate:c.validate?c.validate:c,priority:c.priority||Number.POSITIVE_INFINITY,isAsync:"asyncValidate"==b});g.sort(function(a,b){return a.priority>b.priority?1:-1}),this.valid=k.observable(!0),this.validate=function(){var b,h,i,j=d.__value__,l=!0,m=0,n=0;for(f.removeAll();n=e);n++){if(h=g[n],h.isAsync)return h.validate(j,function(b){F(d,a,!!b)}),!0;b=h.option,c=h.option,k.isPlainObject(b)&&(c=b.value),k.isFunction(c)&&(c=c.call(d.__context__)),i=h.validate(j,a,c),k.isString(i)&&(i=[i]),(k.isArray(i)||!i)&&(f.addMany(k.isArray(i)?i:b&&b.message?[b.message]:c&&k.isString(c)?[c]:[]),l=!1,m++)}return F(this,a,l),this.valid(l),U.trigger(this,"validate"),l},a.validateOnChange&&this.on("change",function(){this.validate()}),a.validateInitially&&this.validate()},k.route=function(a){return H(a)},H.Is=function(a){return H.prototype.isPrototypeOf(a)},H.Has=function(a){return null!=a._routeString},H.Combine=function(a,b){if(!H.Has(b))return a;if(!H.Has(a))return b;var c=H(a+b);return k.extend(c._wildcard,a._wildcard,b._wildcard),k.extend(c._optional,a._optional,b._optional),k.extend(c._validate,a._validate,b._validate),c +},H.prototype={wildcard:function(){var a=this._wildcard,b=k.flatten(k.toArray(arguments));return k.each(b,function(b){a[b]=!0}),this},optional:function(a,b){return this._addMetadata("optional",a,b),this},validate:function(a,b){return this._addMetadata("validate",a,b),this},transform:function(a,b){return this._addMetadata("_transform",a,b),this},toString:function(){return this._routeString?this._routeString.toString():""},trailingSlash:function(){return this},_transfromParam:function(a,b){var c=this._transform[a];return""===b&&k.has(this._optional,a)&&(b=this._optional[a]),c?c(b):b},_validateParam:function(a,b){var c=this._validate[a];return c?c(b):!0},_addMetadata:function(a,b,c){var d=this["_"+a];k.isPlainObject(b)?k.each(b,function(a,b){d[b]=a}):k.isString(b)&&(d[b]=c)}},k.core.Router=I,I.GenerateRoute=function(a,b){var c=new I,d=c.registerRoute(a),e=c.routeTo(d,b);return 0===a.indexOf("/")&&0!==e.indexOf("/")?"/"+e:e},I.prototype={registerRoute:function(a,b){a=H(a),b=H(b?this._routes[H(b).toString()].route:void 0);var c=H.Combine(b,a),d=c._routeString=c._routeString.replace(/^\//,""),e=this._generateRouteStringData(d);return this._routes[d]={route:c,data:e,regExCollection:this._generateRouteRegEx(c,e),parent:H.Has(b)?this._routes[b.toString()]:void 0},d},routeTo:function(a,b){var c,d=this._routes[a],e=d.route,f="";return b=b||{},k.each(d.data,function(a){c=a.param,c?e._validateParam(b[c])&&(f+=k.has(b,c)?b[c]:e._optional[c]):f+=a.string}),f},routeFrom:function(a){var b,c=this._getUrlParams,d=[];return a=decodeURI(a),k.each(this._routes,function(e){k.each(e.regExCollection,function(f){if(f.regEx.test(a)){for(b=f.regEx.exec(a);e;)d.unshift({id:e.route._routeString,params:c(e,f.params,b)}),e=e.parent;return!1}})}),d.length?d:null},_getUrlParams:function(a,b,c){var d,e,f=a.route,g={};return k.each(b,function(a,b){d=c[b+1],f._validateParam(a,d)&&(g[a]=f._transfromParam(a,d))}),k.each(a.data,function(a){e=a.param,e&&!g[e]&&k.has(f._optional,e)&&void 0!==f._optional[e]&&(g[e]=f._optional[e])}),g},_generateRouteRegEx:function(a,b){var c,d,e,f,g,h=[],i=this._sliceLastFromRegExString,j=this._getOptionalParametersCombinations(a,b);return k.each(j,function(j){e="^",f=[],k.each(b,function(b){if(g=b.param){if(d=!0,k.has(a._optional,g)&&j[g]||(c=!1),j[g])return;f.push(g),e+=a._wildcard[g]?k.has(a._optional,g)?"(.*?)":"(.+?)":k.has(a._optional,g)?"([^/]*?)":"([^/]+?)"}else"/"==b.string&&(d&&c&&(e=i(e)),d=!1,c=!0),e+=G(b.string)}),d&&c&&(e=i(e)),h.push({regEx:new RegExp(e+"$","i"),params:f})}),h},_sliceLastFromRegExString:function(a){for(var b,c=0;cd;d++){for(c={},c.__lowestIndex__=h,c.__length__=0,e=0;h>e;e++)d&Math.pow(2,e)&&(e=200&&300>c||304===c;d?this.callSuccess(b.responseText):this.callError(b.statusText)},xhrError:function(){this.callError()},scriptRequest:function(){var a=this,b=this.options,c=document.createElement("script"),d={},e=k.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback;d[b.jsonp]=e,this.appendDataToUrl(d),window[e]=function(b){window[e]=null,a.scriptLoad(b)},c.onerror=this.scriptError,c.async=b.async,c.src=b.url,document.head.appendChild(c)},scriptLoad:function(a){this.callSuccess(a)},scriptError:function(){this.callError()},appendDataToUrl:function(a){var b=this,c=this.options,d=/\?/.test(c.url);k.isPlainObject(a)?k.each(a,function(a,e){c.url+=b.append(d,e,a.toString())}):k.isArray(a)?k.each(a,function(a,c){b.appendDataToUrl(c)}):c.url+=b.append(d,a.toString(),"")},append:function(a,b,c){var d=a?"&":"?";return d+=b,c&&(d+="="+c),d},callSuccess:function(a){var b=this.options.success,c="success";b&&b(a,c,null),this.callComplete(c)},callError:function(a){var b=this.options.error,c="error";b&&b(null,c,a),this.callComplete(c)},callComplete:function(a){var b=this.options.complete;b&&b(null,a)}};var xb="create",yb="update",zb="destroy",Ab="GET",Bb="application/json; charset=utf-8",Cb=["change","sync","error","requestStart","requestEnd"];k.DataSource=L,L.ArrayMode=1,L.ObjectMode=2,L.prototype={options:{baseUrl:"",idAttr:"",mode:L.ArrayMode,read:{url:"",type:Ab,contentType:Bb},update:{url:"",type:"POST",contentType:Bb},create:{url:"",type:"POST",contentType:Bb},destroy:{url:"",type:"POST",contentType:Bb}},read:function(a,b){var c=this;return b=arguments[arguments.length-1],k.isFunction(a)&&(a={}),a=a||{},c._ajax("read",a,function(d){k.isString(d)&&(d=JSON.parse(d)),c.options.mode==L.ArrayMode&&(k.isArray(d)||(k.isArray(d.value)?d=d.value:k.isObject(d)&&k.each(d,function(a){return k.isArray(a)?(d=a,!1):void 0}))),k.isArray(d)||(d=[d]),a&&a.__updateData__===!1||c._updateData(d),b&&k.isFunction(b)&&b(d)}),c},update:function(){if(0!==arguments.length){var a;arguments.length>1&&k.type(arguments[0])!=k.type(arguments[1])?(a=[arguments[1]],a[0][this.options.idAttr]=arguments[0]):a=k.flatten(arguments),a.length>0&&(this._changes.push({type:yb,items:a}),this._onChangePush())}},hasChanges:function(){return this._changes.length>0},clearChanges:function(){return this._changes.splice(0,this._changes.length),this._changesMeta={},this.hasChanges(!1),this},sync:function(){var a,b=this,c=this._changes,d=c.length;return k.each(c,function(c){k.each(c.items,function(e){a=e,e.__id__&&delete e.__id__,b._ajax(c.type,{data:a},function(){d--,d||b._trigger("sync")})})}),this.clearChanges()},_ajax:function(a,b,c){var d,e=this;b=k.extend({},this.options[a],b),d=b.type.toUpperCase(),b.url=I.GenerateRoute(b.url,b.data),this._trigger("requestStart",{}),K({type:b.type,url:b.url,data:d==Ab?null:JSON.stringify(b.data),contentType:b.contentType,dataType:b.dataType,jsonp:b.jsonp,success:function(a,b,d){e._trigger("requestEnd",{}),a&&c(a,b,d)},error:function(){e._trigger("requestEnd",{}),e._trigger("error")}})},_updateData:function(a){this.data.removeAll(),this.data.addMany(a),this.clearChanges(),this._trigger("change")},_onArrayChange:function(a){var b=a.type;"remove"==b?this._remove(a.items):"removeAt"==b?this._remove(this.data.slice(a.index,a.index+a.count)):"add"==b&&this._add(a.items)},_onChangePush:function(){var a,b=this._changesMeta,c=this._changes,d=c[c.length-1],e=this.options.idAttr,f=d.type;k.each(d.items,function(d){switch(f){case xb:d.__id__=wb(),b[d.__id__]=d;break;case yb:a=b[d[e]],a&&(c.splice(a.index,1),a.item=d,a.index=c.length-1),b[d[e]]={index:c.length-1,item:d};break;case zb:a=b[d?d.__id__:void 0],a&&(c.splice(a.index,1),c.pop(),b[d.__id__]=void 0)}}),c.length>0&&this.options.autoSync?this.sync():this.hasChanges(c.length>0)},_add:function(a){this._changes.push({type:xb,items:a}),this._onChangePush()},_remove:function(a){this._changes.push({type:zb,items:a}),this._onChangePush()},_subscribeToEvents:function(){var a=this,b=this.options;k.each(Cb,function(c){b[c]&&a.on(c,b[c])})}},U.register(L.prototype,["on","_trigger","change","error","requestStart","requestEnd"]),k.core.applyExpressions("array",k.DataSource.prototype,k.toObject(["size","at","isEmpty","each"])),M.Is=function(a){return M.prototype.isPrototypeOf(a)},M.Inflate=function(a){var b,c,d={};for(b in a)c=a[b],M.Is(c)&&(c=c._options,c.propertyName=b,d[c.field||b]=c);return d},M.Create=function(a,b,c){var d;return arguments.length<3&&(c=a.value||a.defaultValue),b=a.thisArg?a.thisArg:b,d=k.observable(c,b).extend("validation",a).on("changing",a.changing,b).on("change",a.change,b),k.each(a.extenders,function(a){d=d.extend.apply(d,a)}),d},M.prototype.extend=function(){var a=this._options;return a.extenders=a.extenders||[],a.extenders.push(k.toArray(arguments)),this},N.prototype={options:{},init:k.noop,collection:function(){return this._collection},validate:function(){var a,b,c=this._properties,d=!0;for(b in c)a=this[b],k.isObservable(a)&&!a.validate()&&(d=!1);return this.valid(d),this._updateValidationErrors(),d},dataItem:function(){var a,b,c=this._properties,d={};for(a in c)b=c[a],"__id__"!=a&&k.isFunction(this[b.propertyName])&&(d[b.field||b.propertyName]=this[b.propertyName]());return this.isNew()&&delete d[this.options.idAttr],d},reset:function(a){return this._ensurePropertiesCreated(a),this},isNew:function(){var a=this.options.idAttr,b=k.unwrap(this[a]),c=this._properties[a];return!b&&0!==b||c&&b===c.defaultValue?!0:!1},read:function(a,b){return k.isFunction(a)&&(b=a,a=void 0),this._dataSource.read({data:a},b),this},destroy:function(a){return a=a===!1?!1:!0,a&&this._collection&&this._collection.remove(this),this._dataSource._remove([this.dataItem()]),this},sync:function(){return this.isNew()&&this._dataSource.add(this.dataItem()),this._dataSource.sync(),this},clone:function(){return new this.constructor(k.clone(this._initialDataItem,!0))},_setPropertyValue:function(a,b){var c=a.propertyName;k.isFunction(this[c])?(this[c](b),this._dataSource.update(this.dataItem())):this[c]=a.isObservable?this._createObservable(a,b):function(){return b}},_ensurePropertiesCreated:function(a){var b,c,d,e=this._properties;if(a){N.prototype.isPrototypeOf(a)&&(a=a.dataItem());for(c in a)b=e[c],b||(b=e[c]=k.extend({},this._application.Property.Defaults()),b.propertyName=c),this._setPropertyValue(b,a[c])}for(c in e)b=e[c],k.has(a,b.propertyName)||(d=b.field||b.propertyName,this._setPropertyValue(b,b.value||(k.has(a,d)?a[d]:b.defaultValue)))},_createObservable:function(a,b){var c=this,d=this._properties,e=M.Create(a,this,b);return e.on("change",function(){c.isNew()||c._dataSource.update(c.dataItem())}).on("validate",function(){var a,b=!0;for(a in d)if(!c[a].valid()){b=!1;break}c._updateValidationErrors(),c.valid(b)}),this._collection||e.extend(),e},_onDataSourceChange:function(){var a=k.unwrapObservable(this._dataSource.data())[0];this._ensurePropertiesCreated(a)},_updateValidationErrors:function(){var a,b,c=this._properties,d=[];for(b in c)a=this[b],a.errorMessages&&d.push.apply(d,a.errorMessages());this.validationErrors.reset(d)}},k.core.expressionsCreated&&k.core.applyExpressions("object",N.prototype);var Db=/^[#\/]|\s+$/g,Eb=/^\/+|\/+$/g,Fb=/msie [\w.]+/,Gb=/\/$/,Hb=/[?#].*$/,Ib="hash",Jb="pushState";P.prototype={start:function(){var a=this._fragment,b=document.documentMode,c=Fb.exec(navigator.userAgent.toLowerCase())&&(!b||7>=b);this._use==Ib&&c&&(this._createIFrame(),this.navigate(a)),this._initEvents(c),this._tryAdaptMechanism(a)||this._loadUrl()},navigate:function(a,b){b&&b!==!0||(b={trigger:!!b});var c=this._root+(a=this._getFragment(a||"")),d=this._use,e=this._iframe,f=this._location;if(a=a.replace(Hb,""),this._fragment===a)return!1;if(this._fragment=a,""===a&&"/"!==c&&(c=c.slice(0,-1)),this._wants==Jb&&d==Jb)this._history[b.replace?"replaceState":"pushState"]({},document.title,c);else{if(d!=Ib)return f.assign(c),!0;this._updateHash(f,a,b.replace),e&&a!==this.getFragment(this._getHash(e))&&(b.replace||e.document.open().close(),this._updateHash(e.location,a,b.replace))}return this._loadUrl(a)},_initEvents:function(a){var b=this._use,c=k.bind(this._onUrlChanged,this);this._wants==Jb&&f(document,"click",k.bind(this._onDocumentClick,this)),b==Jb?f(window,"popstate",c):b==Ib&&!a&&"onhashchange"in window?f(window,"hashchange",c):b==Ib&&(this._checkUrlInterval=setInterval(c,this._interval))},_loadUrl:function(a){var b=this._initial;return this._initial=!1,this._fragment=a=this._getFragment(a),U.trigger(this,"urlChange",{url:a,initial:b})},_getHash:function(a){var b=(a?a.location:this._location).href.match(/#(.*)$/);return b?b[1]:""},_getFragment:function(a){if(null==a)if(this._use==Jb){var b=this._root.replace(Gb,"");a=this._location.pathname,a.indexOf(b)||(a=a.slice(b.length))}else a=this._getHash();return a.replace(this._location.origin,"").replace(Db,"")},_onUrlChanged:function(){var a=this._getFragment();return a===this._fragment&&this._iframe&&(a=this._getFragment(this._getHash(this._iframe))),a===this._fragment?!1:(this._iframe&&this.navigate(a),void this._loadUrl())},_onDocumentClick:function(a){for(var b=a.target;b;){if(b&&b.tagName&&"a"==b.tagName.toLowerCase()){var c,d=b.getAttribute("download");""===d||d||!this._hostRegEx.test(b.href)||a.altKey||a.ctrlKey||a.metaKey||a.shiftKey||2===a.which||this.navigate(b.href)&&(c=document.getElementById(window.location.hash.replace(/^#/,"")),c&&c.scrollIntoView&&c.scrollIntoView(),a.preventDefault());break}b=b.parentNode}},_tryAdaptMechanism:function(a){var b=this._root,c=this._use,d=this._location,e=d.pathname.replace(/[^\/]$/,"$&/")===b;if(this._fragment=a,this._wants==Jb){if(c!=Jb&&!e)return a=this._fragment=this._getFragment(null,!0),d.replace(b+d.search+"#"+a),!0;c==Jb&&e&&d.hash&&(this._fragment=this._getHash().replace(Db,""),this._history.replaceState({},document.title,b+a+d.search))}},_updateHash:function(a,b,c){if(c){var d=a.href.replace(/(javascript:|#).*$/,"");a.replace(d+"#"+b)}else a.hash="#"+b},_createIFrame:function(){var a=document.createElement("iframe");a.style.display="none",a.src="javascript:0",a.tabIndex=-1,document.body.appendChild(a),this._iframe=a.contentWindow},_tryFixOrigin:function(){var a=window.location;a.origin||(a.origin=a.protocol+"//"+a.hostname+(a.port?":"+a.port:""))}},U.register(P.prototype,["on"]),k.observable.remote=function(a){return R(null,{options:a},null,this.__value__)},k.observable.fn.collection={read:function(a,b){var c=this;return k.isFunction(a)&&(b=a,a=void 0),this._dataSource.read({data:a},b?function(){b.call(c.__context__)}:k.noop),this},clearChanges:function(){return this._dataSource.clearChanges(),this},sync:function(){return this._dataSource.sync(),this},update:function(a,b){return 0===arguments.length?this._baseUpdate.call(this):this._dataSource.update(a,b),this},sortBy:function(a,b){if("string"==typeof a){var c=a;a=function(a){return a[c]()}}return k.sortBy(this.__value__,a,b),this},clone:function(){return R(this._Model,this._prototype,this._application,this.__value__)},_onAdding:function(a){var b=this,c=this._Model,d=a.items;k.each(d,function(a,e){N.prototype.isPrototypeOf(a)&&(a=a.dataItem()),d[e]=new c(a,b)})},_onChange:function(a){var b,c=a.type,d=a.items,e=[],f=0;if(!this._internalChanging){for(;fh;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(l.isPlainObject(c)||(b=l.isArray(c)))?(b?(b=!1,f=a&&l.isArray(a)?a:[]):f=a&&l.isPlainObject(a)?a:{},g[d]=l.extend(j,f,c)):g[d]=c);return g},l.each=function(a,b,c){if(null!=a){var d=a.length,f=-1,g="number"==typeof d;if(b=e(b,c),g)for(;++f=0;)b(a[f],f,a);else for(f in a)b(a[f],f,a)}},l.each(["Arguments","Function","String","Number","Date","RegExp"],function(a){l["is"+a]=function(b){return f.call(b)=="[object "+a+"]"}}),l.isArguments(arguments)||(l.isArguments=function(a){return!(!a||!h.call(a,"callee"))}),"function"!=typeof/./&&(l.isFunction=function(a){return!(!a||"function"!=typeof a)}),l.isArray=Array.isArray||function(a){return"[object Array]"==f.call(a)},l.extend(l,{noop:function(){},inherit:function(a,b,c){return(arguments.length<3&&l.isPlainObject(b)||1==arguments.length)&&(c=b,b=a,a=void 0),a?(b.prototype=m(a.prototype),b.prototype.constructor=b,l.extend(b.prototype,c),b.prototype.__Class__=a,b.prototype._super=d):c&&(b.prototype=c),b},type:function(a){return a instanceof Array?"array":"string"==typeof a||a instanceof String?"string":"number"==typeof a||a instanceof Number?"number":a instanceof Date?"date":"[object RegExp]"===f.call(a)?"regexp":null===a?"null":void 0===a?"undefined":l.isFunction(a)?"function":l.isBoolean(a)?"boolean":"object"},is:function(a,b){return arguments.length>1&&l.isFunction(b)?b.prototype.isPrototypeOf(a):l.type(a)==b},has:function(a,b){return!(!a||!h.call(a,b))},hasValue:function(a){return!(null==a||l.isNumber(a)&&isNaN(a))},toString:function(a){var b="";return l.hasValue(a)&&(b=a.toString()),b},unwrap:function(a){return k.expressionsCreated&&k.isExpression(a)?a.value():l.unwrapObservable?l.unwrapObservable(a):a},$unwrap:function(a,b,c){return b=e(b,c),a&&a.jquery?(b&&a.each(function(){b(this)}),a=a[0]):b&&b(a),a},toArray:function(a){if(l.isArguments(a))return g.call(a);if(l.isElements(a)){for(var b=Array(a.length),c=-1,d=a.length;++c2?c:l.nothing,b=b.split("."),d=b[0];d;){if(null==a)return c;a=a[d],d=b[++e]}return a},swap:function(a,b,c){var d=a.length;return b>=0&&c>=0&&d>b&&d>c&&(a[b]=a[c]+(a[c]=a[b],0)),a},move:function(a,b,c){return b!=c&&(c>=b&&c++,a.splice(c,0,a[b]),b>c&&b++,a.splice(b,1)),a},bind:function(a,b){var c,d=function(){},e=g.call(arguments,2);return c=function(){if(!(this instanceof c))return a.apply(b,e.concat(g.call(arguments)));d.prototype=a.prototype;var f=new d,h=a.apply(f,e.concat(g.call(arguments)));return Object(h)===h?h:f}},equals:function(a,b,d){return a=l.unwrap(a),b=l.unwrap(b),c(a,b,[],[],d)}}),l.at=function(a){return{index:a,prototypeIndentification:"__blocks.at__"}},l.first=function(){return l.first},l.last=function(){return l.last};var m=Object.create||function(a){var b=function(){};return b.prototype=a,new b};for(var n in[j])break;j.ownPropertiesAreLast="0"!=n,function(){!function(){function a(a,b){this._value=a,this._computedValue=void 0,b&&(this._parent=b,this._currentResult=l.isBoolean(b._result)?b._result:b._currentResult,this._lastCondition=b._condition||b._lastCondition,this._hasNot=b._hasNot)}function b(a,b,c,d){c=I.parseCallback(c,d)||c;for(var e,f,g={},h=0,i=b.length,j=l.isFunction(c),k=null!=c;i>h;h++)e=b[h],f=k?j?c(e,h,b):e[c]:e,a(g,f,e,b,c);return g}function c(b,e,f,g,h){var i=O.expressions({isRoot:h,name:b,path:e,descriptorName:f||"a",args:(y[f]||{}).args,methods:y,type:g||0,staticMethods:D}),j=new Function(["blocks","blox","expressions","cache","BaseExpression","LoopDescriptors","generateExpression","descriptors","createExpression","PrepareValues","slice","add","NumberExpression"],i)(l,l,Q,P,a,O,c,R,t,I,E,d,n);return h&&(Q[b+"Expression"]=j),j.prototype.forEach=j.prototype.each,j}function d(a,b){if(b.length>0){var c=x.determineIndex(b[0],a.length),d=E.call(b,x.isPosition(b[0])?1:0),e=0;if(c>=a.length)for(;e1&&(c.conditions=!0,c[(b.inLoop?"inLoop":"afterLoop")+"Conditions"]=O.conditions(b),b.inLoop&&(b.inLoop=!1,c.afterLoopConditions=O.conditions(b)))}}}function t(a){for(var b,c,d=r(),e=a._isSingle,f=a._type,g=e?["array","object"]:[1==a._type?"array":"object"],h=e?"":0,i=[],j=e?void 0:s(),k=0,m=0,n=!1,o="",p=!0;a._parent;)l.each(g,function(c,f){switch("filter"==a._descriptor.identity&&(d.skip&&(o+=O.skip({index:k})),null!==d.take&&(o+=O.take({index:m})),d.skip=0,d.take=null),b=a._descriptor(h,c,a,i,o),o="",0===f&&d.args.push(b.args||[]),b.name){case"skip":return void(d.skip||(d.skip="skip"+h));case"take":return void(null===d.take&&(d.take="take"+h));case"reverse":return void(d.reverse=!d.reverse)}p=!1,(e||!j.callback(b))&&(0===f&&b.reverse&&(d.reverse=!d.reverse),e||(c="array"),void 0!==b.boolResult?d.resultIndex=h||0:h||(n=!0),b.beforeLoop&&d[c+"BeforeLoops"].push(b.beforeLoop),b.inLoop&&d[c+"InLoops"].push(b.inLoop),b.afterLoop&&d[c+"AfterLoops"].push(b.afterLoop))}),"skip"!=b.name&&"take"!=b.name&&"reverse"!=b.name?i.push(a):0==i.length&&(d.resultIndex+=1,"skip"==b.name?k=k||h:m=m||h),h=+h+1,a=a._parent;if(d.isObject=T.prototype.isPrototypeOf(a),e){switch(f){case"array":d.isArrayCheck=!0;break;case"object":d.isArrayCheck=!1}return"object"==typeof module&&"object"==typeof module.exports?(c=new Function(["blocks","collection"].concat(d.args[0]),a._loopDescriptor(d)),function(){return c.apply(this,[l].concat(l.toArray(arguments)))}):new Function(["collection"].concat(d.args[0]),a._loopDescriptor(d))}return j.end(d),p&&(d.arrayBeforeLoops.push(d.result+d.resultIndex+" = [];"),d.arrayInLoops.push(d.result+d.resultIndex+".push("+d.value+");")),n&&(d.resultIndex=0),"object"==typeof module&&"object"==typeof module.exports?(c=new Function(["blocks",d.expression],a._loopDescriptor(d)),function(a){return c(l,a)}):new Function(d.expression,a._loopDescriptor(d))}function u(a){var b={_loopDescriptor:O[a.identity]||O.singleExpression},c={_parent:b,_descriptor:a,_isSingle:!0,_type:a.parent.type};return c}function v(a){var b=Z[a];if(l.isFunction(b)){var c=u(b);if(l[a])return t(c);l[a]=t(c)}}var w=l.at;l.at=function(a){return{index:a,prototypeIndentification:"__blocks.at__"}},l.first=function(){return l.first},l.last=function(){return l.last};var x={isPosition:function(a){return a==l.first||a==l.last||a&&"__blocks.at__"==a.prototypeIndentification},determineIndex:function(a,b){return a==l.first?0:"__blocks.at__"==a.prototypeIndentification?a.index:b}},y={};a.prototype={_prototypeIndentification:"__blocks.expression__",_expression:a,type:function(){return"base"},is:function(a){return this._setResult(l.is(this._value,a)),this},value:function(){return this._value},not:function(){var a=new this._expression(this._value,this);return a._hasNot=!this._hasNot,a},or:function(){var a=new this._expression(this._value,this);return a._condition="or",a},and:function(){var a=new this._expression(this._value,this);return a._condition="and",a},result:function(){return this._not?!this._result:this._result},each:function(){},equals:function(a,b){var c=new this._expression(this._value,this);return c._setResult(l.equals(this._value,a,b)),c},hasValue:function(){return this._resultExpression(l.hasValue(this._value))},toString:function(){return new g(l.toString(this._value))},toArray:function(){return new S(l.toArray(this.value()))},clone:function(a){return l(l.clone(this._value,a))},_setResult:function(a){switch(this._hasNot&&(a=!a),this._lastCondition){case"and":this._result=this._currentResult&&a;break;case"or":this._result=this._currentResult||a;break;default:this._result=a}this._hasNot=!1,this._lastCondition=void 0},_resultExpression:function(a){var b=new this._expression(this._value,this);return b._setResult(a),b}},l.extend(l,{isEmpty:function(a){if(null==a)return!0;if(l.isArray(a)||l.isString(a)||l.isArguments(a))return!a.length;for(var b in a)return l.has(a,b)?!1:!0;return!0}});var z=function(a){return a},A=Object.prototype.hasOwnProperty,B=Math.max,C=Math.ceil;l.extend(l,{range:function(a,b,c){tart=+a||0,c="number"==typeof c?c:+c||1,null==b&&(b=a,a=0);for(var d=-1,e=B(0,C((b-a)/(c||1))),f=Array(e);++d0?a.sort(function(a,c){for(i=0;ih?1:-1,"desc"==d?-f:f}):a:(b=I.parseCallback(b,c),b||(b=z),l(a).map(function(a,c,d){return{value:a,index:c,criteria:b(a,c,d)}}).sort(function(a,b){if(g=a.criteria,h=b.criteria,g!==h){if(g>h||void 0===g)return 1;if(h>g||void 0===h)return-1}return a.index-b.index}).map("value").value())}});var D={},E=Array.prototype.slice,F={skip:function(){return{name:"skip",args:["skip"]}},take:function(){return{name:"take",args:["take"]}},and:function(){return{name:"and",args:[]}},or:function(){return{name:"or",args:[]}},not:function(){return{name:"not",args:[]}},reverse:function(){return{name:"reverse",args:[]}}};for(var G in F)F[G].identity=G;var H=l.core,I={parseCallback:function(a,b){if("string"==typeof a){var c=a;return function(a){return a[c]}}if(null!=b){var d=a;a=function(a,c,e){return d.call(b,a,c,e)}}return a},uniquePrepare:function(a,b){return l.isFunction(a)?I.parseCallback(a,b):a},mapPrepare:function(a,b){return I.parseCallback(a,b)},filterPrepare:function(a,b){return l.isFunction(a)||l.isString(a)?I.parseCallback(a,b):I.createFilterCallback(a)},reducePrepare:function(a,b,c){return l.isFunction(a)||l.isString(a)?I.parseCallback(a,c):I.parseCallback(a,c)},createFilterCallback:function(a){return function(b){return I.resolveFilterExpressionValue(!1,b,a)}},resolveFilterExpressionValue:function(a,b,c){if(c.field&&c.operator){var d=c.value;switch(b=b[c.field],c.operator.toLowerCase()){case"eq":a=b===d;break;case"neq":a=b!==d;break;case"lt":a=d>b;break;case"lte":a=d>=b;break;case"gt":a=b>d;break;case"gte":a=b>=d;break;case"startswith":a=l(b).startsWith(d);break;case"endswith":a=l(b).endsWith(d);break;case"contains":a=-1!==b.indexOf(d)}return a}if(c.logic&&c.filters){if(a&&"or"==c.logic)return!0;for(var e=!1,f=c.filters.length,g=0;f>g&&(e=I.resolveFilterExpressionValue(!1,b,c.filters[g]),!e||"or"!=c.logic);g++);return e}for(var h in c)if(b[h]!==c[h])return!1;return!0},flatten:function(a,b,c){if(l.isArray(b)||l.isArguments(b))if(a)c.push.apply(c,b);else for(var d=0;d=count"+a+"){break ;}result"+a+".push(current"+a+");}else {result"+a+"=current"+a+";break ;};",prepareValues:b,everything:!0}},has:function(a){return{boolResult:!1,args:["key"],beforeLoop:"result"+a+"=false;",afterLoop:"result"+a+"=blocks.has(collection,key"+a+");"}},invoke:function(a,b,c,d){return{args:["method","args"],beforeLoop:"var isFunc"+a+"=blocks.isFunction(method"+a+");"+(""===a||0===d.length?""+("array"==b?"result"+a+"=[];":"")+("object"==b?"result"+a+"={};":""):"")+(""===a?"args"+a+"=Array.prototype.slice.call(arguments,2);":""),inLoop:"value=(isFunc"+a+"?method"+a+":value[method"+a+"]).apply(value,args"+a+"||[]);"+(""===a||0===d.length?""+("array"==b?"result"+a+".push(value);":"")+("object"==b?"result"+a+"[indexOrKey]=value;":""):"")}},isEmpty:function(a){return{boolResult:!0,beforeLoop:"result"+a+"=true;",inLoop:"result"+a+"=false;"}},join:function(a){return{args:["separator"],beforeLoop:"separator"+a+"=typeof separator"+a+'=="undefined"?",":separator'+a+";result"+a+'="";',inLoop:"result"+a+"+=value+separator"+a+";",afterLoop:"result"+a+"=result"+a+".substring(0,result"+a+".length-separator"+a+".length);"}},map:function(a,b,c,d){var e="callback"+a+"=blocks.core.parseCallback(callback"+a+",thisArg"+a+");";return{args:["callback","thisArg"],beforeLoop:(""===a?""+e:"")+(""===a?""+("array"==b?"result"+a+"=Array(collection.length);":"")+("object"==b?"result"+a+"=[];":""):"")+(""!==a&&0===d.length?"result"+a+"=[];":""),inLoop:"value=callback"+a+"(value,indexOrKey,collection);"+(""===a?""+("array"==b?"result"+a+"[indexOrKey]=value;":"")+("object"==b?"result"+a+".push(value);":""):"")+(""!==a&&0===d.length?"result"+a+".push(value);":""),prepareValues:e}},max:function(a){var b="callback"+a+"=blocks.core.parseCallback(callback"+a+",thisArg"+a+");";return{args:["callback","thisArg"],beforeLoop:"var max"+a+"=-Infinity;result"+a+"=max"+a+";"+(""===a?""+b:""),inLoop:"max"+a+"=callback"+a+"?callback"+a+"(value,indexOrKey,collection):value;result"+a+"=max"+a+">result"+a+"?max"+a+":result"+a+";",prepareValues:b,type:"NumberExpression"}},min:function(a){var b="callback"+a+"=blocks.core.parseCallback(callback"+a+",thisArg"+a+");";return{args:["callback","thisArg"],beforeLoop:"var min"+a+"=Infinity;result"+a+"=min"+a+";"+(""===a?""+b:""),inLoop:"min"+a+"=callback"+a+"?callback"+a+"(value,indexOrKey,collection):value;result"+a+"=min"+a+"=count"+a+"){break ;}result"+a+".push(value);}else {result=value;break ;};"}},flatten:function(a){return{args:["shallow"],beforeLoop:"var flatten"+a+"=blocks.core.flatten;result"+a+"=[];",inLoop:"flatten"+a+"(shallow"+a+",value,result"+a+");"}},indexOf:function(a){return{args:["searchValue","fromIndex"],beforeLoop:"result"+a+"=-1;if (blocks.isNumber(fromIndex"+a+")){indexOrKey=fromIndex"+a+";};",inLoop:"if (value===searchValue"+a+"){result"+a+"=indexOrKey;break ;};",type:"NumberExpression"}},last:function(a){var b="if (callback"+a+"){callback"+a+"=blocks.core.parseCallback(callback"+a+",thisArg"+a+");};";return{reverse:!0,args:["callback","thisArg"],beforeLoop:"var isNumber"+a+"=blocks.isNumber(callback"+a+");var size"+a+"=0;var count"+a+"=1;var current"+a+";if (isNumber"+a+"){result"+a+"=[];count"+a+"=callback"+a+";callback"+a+"=thisArg"+a+";};"+(""===a?""+b:""),inLoop:"if (callback"+a+"){if (callback"+a+"(value,indexOrKey,collection)){current"+a+"=value;}else {continue ;}}else {current"+a+"=value;};if (isNumber"+a+"){if (size"+a+"++>=count"+a+"){break ;}result"+a+".unshift(current"+a+");}else {result"+a+"=current"+a+";break ;};",prepareValues:b,everything:!0}},lastIndexOf:function(a){return{reverse:!0,args:["searchValue","fromIndex"],beforeLoop:"result"+a+"=-1;if (blocks.isNumber(fromIndex"+a+")){indexOrKey=fromIndex"+a+";};",inLoop:"if (value===searchValue"+a+"){result"+a+"=indexOrKey;break ;};",type:"NumberExpression"}},range:function(a,b,c,d){return{args:["start","end","step"],beforeLoop:"length=Math.max(Math.ceil((end"+a+"-start"+a+")/step"+a+"),0);result"+a+"=Array(length);",inLoop:"value=start"+a+";start"+a+"+=step"+a+";"+(""===a||0===d.length?"result"+a+"[indexOrKey]=value;":"")}},reduceRight:function(a){return{reverse:!0,args:["callback","memo","thisArg"],beforeLoop:"var hasMemo"+a+"=memo"+a+"!=null;result"+a+"=memo"+a+";"+(""===a?"callback"+a+"=blocks.core.reducePrepare(callback"+a+",memo"+a+",thisArg"+a+");":""),inLoop:"if (hasMemo"+a+"){result"+a+"=callback"+a+"(result"+a+",value,indexOrKey,collection);}else {result"+a+"=collection[indexOrKey];hasMemo"+a+"=true;};",everything:!0}},unique:function(a,b,c,d){var e="callback"+a+"=blocks.core.uniquePrepare(callback"+a+",thisArg"+a+");";return{args:["callback","thisArg"],beforeLoop:"var seen"+a+"=[];var isFirst"+a+"=true;var isSorted"+a+"=blocks.isBoolean(callback"+a+")&&callback"+a+";var hasCallback"+a+"=blocks.isFunction(callback"+a+");var map"+a+";result"+a+"=[];"+(""===a?""+e:""),inLoop:"map"+a+"=hasCallback"+a+"?callback"+a+"(value,indexOrKey,collection):value;if (isSorted"+a+"?isFirst"+a+"||seen"+a+"[seen"+a+".length-1]!==map"+a+":!blocks.contains(seen"+a+",map"+a+")){isFirst"+a+"=false;seen"+a+".push(map"+a+");}else {continue ;};"+(""===a||0===d.length?"result"+a+".push(value);":""),prepareValues:e}},type:"array"};for(var G in K)K[G].identity=G,K[G].parent=K;var L={get:function(a){var b=(""===a?"keys"+a+"=blocks.flatten(Array.prototype.slice.call(arguments,1));":"")+(""!==a?"keys"+a+"=blocks.flatten(Array.prototype.slice.call(arguments,0));":"");return{args:["keys"],beforeLoop:(""===a?""+b:"")+"var singleKey"+a+"=keys"+a+".length<2;keys"+a+"=blocks.toObject(keys"+a+");result"+a+"={};",inLoop:"if (keys"+a+".hasOwnProperty(indexOrKey)){if (singleKey"+a+"){result"+a+"=value;}else {result"+a+"[indexOrKey]=value;}};",prepareValues:b}},invert:function(a,b,c,d){return{beforeLoop:"var temp"+a+";result"+a+"={};",inLoop:"temp"+a+"=value;value=indexOrKey;indexOrKey=temp"+a+";"+(""===a||0===d.length?"result"+a+"[indexOrKey]=value;":"")}},keys:function(a,b,c,d){return{beforeLoop:"result"+a+"=[];",inLoop:"value=indexOrKey;"+(""===a||0===d.length?"result"+a+".push(value);":"")}},pairs:function(a){return{beforeLoop:"result"+a+"=[];",inLoop:"result"+a+".push({key:indexOrKey,value:value});"}},values:function(a){return{beforeLoop:"result"+a+"=[];",inLoop:"result"+a+".push(value);"}},type:"object"};for(var G in L)L[G].identity=G,L[G].parent=L;var M,N,O={chainExpression:function(a){var b,c,d,e,f,g,h,i,j,k,m="";return m+="var "+a.indexOrKey+" = -1, "+a.collection+", "+a.length+", "+a.value+", "+(a.conditions?"":" "+a.result+a.resultIndex+",")+" "+a.result+(a.conditions?" = false":"")+"; "+a.conditionsDeclarations+" ",k=-1,l.each(a.args,function(n,o){c=n,k+=1,j=o,i=0==o,h=o==a.args.length-1,m+=" ",g=-1,l.each(c,function(h,i){b=h,g+=1,f=i,e=0==i,d=i==c.length-1,m+=" var "+b+k+" = "+a.expression+"._"+b+"; "}),m+=" "+a.expression+" = "+a.expression+"._parent; "}),m+=" ",l.eachRight(a.variables,function(n,o){c=n,k=a.variables.length,k+=-1,j=o,i=0==o,h=o==a.variables.length-1,m+=" ",g=-1,l.each(c,function(a,h){b=a,g+=1,f=h,e=0==h,d=h==c.length-1,m+=" var "+f+g+" = "+b+"; "}),m+=" "}),m+=" "+a.collection+" = "+a.expression+"._value; "+a.indexOrKey+" += "+a.skip+"; "+(a.take?" "+a.length+" = Math.min("+a.collection+".length, "+a.skip+" + "+a.take+"); ":"")+" "+(a.take?"":" "+a.length+" = "+a.collection+".length; ")+" "+(a.reverse?" "+a.indexOrKey+" = "+a.collection+".length - "+a.skip+"; ":"")+" ",l.eachRight(a.arrayBeforeLoops,function(b,d){c=b,k=a.arrayBeforeLoops.length,k+=-1,j=d,i=0==d,h=d==a.arrayBeforeLoops.length-1,m+=" "+c+" "}),m+=" "+(a.isObject?" for ("+a.indexOrKey+" in "+a.collection+") { ":"")+" "+(a.isObject?"":" "+(a.reverse?" while (--"+a.indexOrKey+" >= "+(a.take?a.take:"")+(a.take?"":"0")+") { ":"")+" "+(a.reverse?"":" while (++"+a.indexOrKey+" < "+a.length+") { ")+" ")+" "+a.value+" = "+a.collection+"["+a.indexOrKey+"]; ",l.eachRight(a.arrayInLoops,function(b,d){c=b,k=a.arrayInLoops.length,k+=-1,j=d,i=0==d,h=d==a.arrayInLoops.length-1,m+=" "+c+" "}),m+=" "+(a.inLoopConditions?" "+a.inLoopConditions+" ":"")+" } ",l.eachRight(a.arrayAfterLoops,function(b,d){c=b,k=a.arrayAfterLoops.length,k+=-1,j=d,i=0==d,h=d==a.arrayAfterLoops.length-1,m+=" "+c+" "}),m+=" "+(a.afterLoopConditions?" "+a.afterLoopConditions+" ":"")+" "+(a.conditions?"":" "+a.result+" = "+a.result+a.resultIndex+"; ")+" return "+a.result+"; "},conditions:function(a){var b,c,d,e,f,g="";return g+="if (",f=-1,l.each(a.items,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.items.length-1,g+=b}),g+=") { "+a.result+" = true; "+(a.inLoop?" break; ":"")+" } "},expressions:function(a){var b,c,d,e,f,g,h,i,j,k,m="";return m+="function "+a.name+"Expression( ",k=-1,l.each(a.args,function(b,d){c=b,k+=1,j=d,i=0==d,h=d==a.args.length-1,m+=" "+c+", "}),m+=" parent ) { this._parent = parent; this._descriptor = descriptors."+a.descriptorName+"; ",k=-1,l.each(a.args,function(b,d){c=b,k+=1,j=d,i=0==d,h=d==a.args.length-1,m+=" this._"+c+" = "+c+"; "}),m+=" } "+(a.isRoot?" function "+a.name+"Expression(value) { this._value = value; this._loopDescriptor = LoopDescriptors.chainExpression; } ":"")+" blocks.inherit(BaseExpression, "+a.name+"Expression, { _type: "+a.type+', _name: "'+a.name+'", ',k=-1,l.each(a.methods,function(n,o){c=n,k+=1,j=o,i=0==o,h=o==a.methods.length-1,m+=" "+c.name+": function ( ",g=-1,l.each(c.args,function(a,h){b=a,g+=1,f=h,e=0==h,d=h==c.args.length-1,m+=" "+b+", "}),m+=" a ) { var type = expressions."+a.path+c.name+"; if (!type) { type = (expressions."+a.path+c.name+' = generateExpression("'+a.name+c.name+'", "'+a.path+c.name+'", "'+c.name+'", '+a.type+")); } "+c.prepareValues+" expression = new type(",g=-1,l.each(c.args,function(a,h){b=a,g+=1,f=h,e=0==h,d=h==c.args.length-1,m+=" "+b+", "}),m+=" this); "+(c.type?" if (this._hasConditions()) { this.result(); this._setLastCondition(); return new "+c.type+"(expression.value(), this); } return new "+c.type+"(expression.value()); ":"")+" "+(c.everything?" if (this._hasConditions()) { this.result(); this._setLastCondition(); } return blocks(expression.value(), this); ":"")+" return expression; }, "}),m+=" ",k=-1,l.each(a.staticMethods,function(b,d){c=b,k+=1,j=d,i=0==d,h=d==a.staticMethods.length-1,m+=" "+j+" : "+c+", "}),m+=" reverse: function () { var type = expressions."+a.path+"reverse; if (!type) { type = (expressions."+a.path+'reverse = generateExpression("'+a.path+'reverse", "'+a.path+'reverse", "reverse", '+a.type+")); } var expression = new type(this); return expression; }, each: function (callback, thisArg) { var type = expressions."+a.path+"each; if (!type) { type = (expressions."+a.path+'each = generateExpression("'+a.path+'each", "'+a.path+'each", "each", '+a.type+")); } callback = PrepareValues.parseCallback(callback, thisArg); var expression = new type(callback, thisArg, this); expression._loop(); return expression; }, value: function () { if (this._parent && this._computedValue === undefined) { this._execute(true); this._computedValue = blocks.isBoolean(this._result) ? this._parent._value : this._result; } return this._computedValue === undefined ? this._value : this._computedValue; }, result: function () { if (this._result === true || this._result === false) { return this._result; } if (this._parent) { this._execute(); } return this._result; }, _loop: function () { var func = cache."+a.path+" || (cache."+a.path+" = createExpression(this)); func(this); }, _execute: function (skipConditions) { var func = cache."+a.path+" || (cache."+a.path+' = createExpression(this, skipConditions)); if (func) { this._setResult(func(this)); } else { this._result = this._findValue(); } }, _hasConditions: function () { var name = this._name; return name.indexOf("and") != -1 || name.indexOf("or") != -1; }, _setLastCondition: function () { var name = this._name; var andIndex = name.lastIndexOf("and"); var orIndex = name.lastIndexOf("or"); this._lastCondition = andIndex > orIndex ? "and" : "or"; }, _findValue: function () { var parent = this._parent; while (parent) { if (parent._value) { return parent._value; } parent = parent._parent; } } }); return '+a.name+"Expression; " },singleExpression:function(a){var b,c,d,e,f,g="";return g+="var "+a.length+" = "+a.collection+".length, "+a.indexOrKey+" = "+(a.reverse?"":"-1")+(a.reverse?a.length:"")+", "+a.isCollectionAnArray+" = "+a.isArrayCheck+", "+a.result+", "+a.value+"; ",f=-1,l.each(a.variables,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.variables.length-1,g+=" "}),g+=" if ("+a.isCollectionAnArray+") { ",f=-1,l.each(a.arrayBeforeLoops,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.arrayBeforeLoops.length-1,g+=" "+b+" "}),g+=" "+(a.reverse?" while (--"+a.indexOrKey+" >= 0) { ":"")+" "+(a.reverse?"":" while (++"+a.indexOrKey+" < "+a.length+") { ")+" "+a.value+" = "+a.collection+"["+a.indexOrKey+"]; ",f=-1,l.each(a.arrayInLoops,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.arrayInLoops.length-1,g+=" "+b+" "}),g+=" } ",f=-1,l.each(a.arrayAfterLoops,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.arrayAfterLoops.length-1,g+=" "+b+" "}),g+=" } else { ",f=-1,l.each(a.objectBeforeLoops,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.objectBeforeLoops.length-1,g+=" "+b+" "}),g+=" for ("+a.indexOrKey+" in collection) { "+a.value+" = "+a.collection+"["+a.indexOrKey+"]; ",f=-1,l.each(a.objectInLoops,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.objectInLoops.length-1,g+=" "+b+" "}),g+=" } ",f=-1,l.each(a.objectAfterLoops,function(h,i){b=h,f+=1,e=i,d=0==i,c=i==a.objectAfterLoops.length-1,g+=" "+b+" "}),g+=" } return "+a.result+"; "},skip:function(a){var b="";return b+="if (skip"+a.index+"-- > 0) { continue; }"},take:function(a){var b="";return b+="if (take"+a.index+"-- <= 0) { break; }"},type:"loop"},P={},Q={},R=l.extend({},J,K,L,F);for(var G in R)M=R[G],l.isFunction(M)&&(N=M(" ","","",[]),y[G]={name:G,args:N.args,prepareValues:N.prepareValues||"",type:N.type,everything:N.everything});l.extend(D,{toObject:function(a){return new expressions.RootObjectExpression(blox.toObject(this.value(),a))},sortBy:function(a,b){return new expressions.RootArrayExpression(blox.sortBy(this.value(),a,b))},groupBy:function(a,b){return new expressions.RootObjectExpression(blox.groupBy(this.value(),a,b))},countBy:function(a,b){return new expressions.RootObjectExpression(blox.countBy(this.value(),a,b))},shuffle:function(){return new expressions.RootArrayExpression(blox.shuffle(this.value()))},set:function(a,b){return new expressions.RootObjectExpression(blox.set.call(void 0,this.value,a,b))},at:function(a,b){return new expressions.RootArrayExpression(blox.at(this._value,a,b))},concat:function(){var a=this.value();return new expressions.RootArrayExpression(a.concat.apply(a,arguments))},push:function(){var a=this.value();return a.push.apply(a,arguments),new expressions.RootArrayExpression(a)},pop:function(){var a=this.value();return a.pop(),new expressions.RootArrayExpression(a)},shift:function(){var a=this.value();return a.shift(),new expressions.RootArrayExpression(a)},slice:function(a,b){return new expressions.RootArrayExpression(this.value().slice(a,b))},sort:function(a){return new expressions.RootArrayExpression(this.value().sort(a))},splice:function(a,b){var c=this.value();return arguments.length>2?c.splice.apply(c,[a,b].concat(E.call(arguments,2))):c.splice(a,b),new expressions.RootArrayExpression(c)},unshift:function(){var a=this.value();return a.unshift.apply(a,arguments),new expressions.RootArrayExpression(a)}}),l.extend(D,{add:function(){return d(this.value(),arguments),this},remove:function(a,b){return l.remove(this.value(),a,b),this},removeAt:function(a,b){return l.removeAt(this.value(),a,b),this},removeAll:function(a,b){return 0===arguments.length?l.removeAll(this.value()):l.removeAll(this.value(),a,b),this},addMany:function(){return e(this.value(),arguments),this},swap:function(a,b){return l.swap(this.value(),a,b),this},move:function(a,b){return l.move(this.value(),a,b),this}});var S=c("RootArray","arr","",1,!0);l.extend(S.prototype,{reverse:function(){return new S(this._value.reverse())}}),l.extend(l,{add:function(a){return d(a,E.call(arguments,1))},addMany:function(a){return e(a,E.call(arguments,1))},remove:function(a,b,c){return x.isPosition(b)?l.removeAt(a,x.determineIndex(b,this._value.length),c):l.removeAll(a,b,c,!0)},removeAt:function(a,b,c){return l.isNumber(c)||(c=1),a.splice(b,c),a},removeAll:function(a,b,c,d){var e,f=0,g=l.isFunction(b);if(1==arguments.length)a.splice(0,a.length);else for(;f1&&b,f=0,g=a.length;g>f;f++)c=a[f],l.isArray(c)?d[c[0]]=c[1]:l.isObject(c)?d[c.key]=c.value:d[c]=e?b[f]:!0;return d},shuffle:function(a){for(var b,c=[],d=0,e=a.length;e>d;d++)b=l.random(d),c[d]=c[b],c[b]=a[d];return c}});var T=c("RootObject","obj","",2,!0);l.set=function(a,b,c){var d;if(l.isString(b))a[b]=c;else for(d in b)a[d]=b;return a};var U=/^\s+|\s+$/gm,V=/^(\s|\u00A0)+/,W=/(\s|\u00A0)+$/;g.prototype.constructor=a,l.inherit(a,g,{_expression:g,type:function(){return"string"},substring:function(a,b){return new g(this._value.substring(a,b))},isEmpty:function(){return this._resultExpression(0==this._value.length)},size:function(){return new n(l.size(this._value))},contains:function(a){return this._resultExpression(-1!=this._value.indexOf(a))},startsWith:function(a){return this._resultExpression(l.startsWith(this._value,a))},endsWith:function(a){return this._resultExpression(l.endsWith(this._value,a))},trim:function(a){return new g(l.trim(this._value,a))},trimStart:function(a){return new g(l.trimStart(this._value,a))},trimEnd:function(a){return new g(l.trimEnd(this._value,a))},repeat:function(a){return new g(l.repeat(this._value,a))},reverse:function(){return new g(l.reverse(this._value))},wrap:function(a){return new g(l.wrap(this._value,a))},format:function(){return new g(h(this._value,E.call(arguments,0)))},matches:function(a,b){return new g(l.matches(this._value,a,b))},toUnit:function(a){return new g(l.toUnit(this._value,a))},clone:function(){return new g(this._value.toString())}}),l.extend(l,{startsWith:function(a,b){return l.isString(a)||(a=a.toString()),b=b.toString(),0==a.indexOf(b)},endsWith:function(a,b){return l.isString(a)||(a=a.toString()),b=b.toString(),a.lastIndexOf(b)==a.length-b.length},trim:function(a,b){return(a||"").toString().replace("string"==typeof b?new RegExp("^("+b+")+|("+b+")+$","g"):U,"")},trimStart:function(a,b){return(a||"").toString().replace("string"==typeof b?new RegExp("^("+b+")+"):V,"")},trimEnd:function(a,b){return(a||"").toString().replace("string"==typeof b?new RegExp("("+b+")+$"):W,"")},repeat:function(a,b){var c="",d=0;if(0>b||"number"!=typeof b)return a;for(b=Math.floor(b);b>d;d++)c+=a;return c},reverse:function(a){return l.isArray(a)?a.reverse():("string"!=typeof a&&(a=a.toString()),a.split("").reverse().join(""))},wrap:function(a,b){return l.isFunction(a)?function(){var c=[a];return push.apply(c,arguments),b.apply(this,c)}:b+a+l.reverse(b)},format:function(a){return h(a,E.call(arguments,1))},matches:function(a,b,c){c=l.isNumber(c)?c:Number.MAX_VALUE,l.isRegExp(b)||(b=new RegExp(b.toString(),"g"));var d,e,f=[];for(b.lastIndex=0,d=b.exec(a);c>0&&d&&(e=l.isArray(d)?d[0].length:d.length,f.push({result:d,input:d.input,startIndex:d.index,endIndex:d.index+e,length:e}),b.global);)d=b.exec(a),c--;return f}}),l.inherit(a,j,{bind:function(){return new j(l.bind.apply(this,[this._value].concat(E.call(arguments))))},partial:function(){return new j(k(this._value,E.call(arguments,0)))},memoize:function(a){return new j(l.memoize(this._value,a))},delay:function(a){return new j(m(this._value,a,E.call(arguments,1)))},throttle:function(a,b){return new j(l.throttle(this._value,a,b))},debounce:function(a,b){return new j(l.debound(this._value,a,b))},once:function(){return new j(l.once(this._value))},wrap:function(a){return new j(l.wrap(this._value,a))}}),l.extend(l,{partial:function(a){var b=E.call(arguments,1);return k(a,b)},memoize:function(a,b){var c={};return b||(b=z),function(){var d=b.apply(this,arguments);return c.hasOwnProperty(d)?c[d]:c[d]=a.apply(this,arguments)}},delay:function(a,b){return m(a,b,E.call(arguments,2))},throttle:function(a,b,c){var d,e,f,g=null,h=0;c||(c={});var i=function(){h=c.leading===!1?0:new Date,g=null,f=b.apply(d,e)};return function(){var j=new Date;h||c.leading!==!1||(h=j);var k=a-(j-h);return d=this,e=arguments,0>=k?(clearTimeout(g),g=null,h=j,f=b.apply(d,e)):g||c.trailing===!1||(g=setTimeout(i,k)),f}},debounce:function(a,b,c){var d,e,f,g,h;return function(){f=this,e=arguments,g=new Date;var i=function(){var j=new Date-g;b>j?d=setTimeout(i,b-j):(d=null,c||(h=a.apply(f,e)))},j=c&&!d;return d||(d=setTimeout(i,b)),j&&(h=a.apply(f,e)),h}},once:function(a){var b,c=!1;return function(){return c?b:(c=!0,b=a.apply(this,arguments),a=null,b)}}}),l.random=function(a,b){return 0==arguments.length?Math.random():(null==b&&(b=a,a=0),a+Math.floor(0|Math.random()*(b-a+1)))},l.inherit(a,n,{_expression:n,type:function(){return"number"},toUnit:function(a){return a=a||"px",new g(this._value+a,this)},random:function(a,b){return new n(l.random(a,b),this)},biggerThan:function(a){var b=new n(this._value,this);return b._setResult(this._value>a),b},lessThan:function(){var a=new n(this._value,this);return a._setResult(this._valuec?-1:1},equalsDate:function(a,b){return a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth()&&a.getDate()===b.getDate()},equalsTime:function(a,b){return a.getHours()===b.getHours()&&a.getMinutes()===b.getMinutes()&&a.getSeconds()===b.getSeconds()&&a.getMilliseconds()===b.getMilliseconds()},clearTime:function(a){return a.setHours(0,0,0,0),a}}),l.each([["Years","FullYear"],["Months","Month"],["Days","Date"],"Hours","Minutes","Seconds","Milliseconds"],function(a){var b=a,c=a;l.isArray(a)&&(b=a[0],c=a[1]),b="add"+b,l[b]=function(a,b){return a["set"+c](a["get"+c]()+b),a},o.prototype[b]=function(a){return new o(l[b](this._value,a))}}),l.inherit(a,p,{equals:function(){},matches:function(a,b){return new p(l.matches(this._value,a,b))},reset:function(){},clone:function(){return new p(l.clone(this._value))}});var H=l.core;H.expressionsCreated=!0,H.trigger&&H.trigger("expressionsCreated"),H.createExpression=function(b){var c;return b instanceof Array||b&&b.jquery?new S(b):"string"==typeof b||b instanceof String?new g(b):"number"==typeof b||b instanceof Number?new n(b):b instanceof Date?new o(b):"[object RegExp]"===(c=f.call(b))?new p(b):null==b?new a(b):"__blocks.expression__"==b._prototypeIndentification?b:"[object Function]"==c?new j(b):new T(b)},H.isExpression=function(a){return a&&"__blocks.expression__"==a._prototypeIndentification},H.staticExpression={range:function(a,b,c){c=c||1,1==arguments.length&&(b=a,a=0);var d=new S([]);return d.range(a,b,c)},repeat:function(){}},H.isArrayExpression=function(a){return ChildArrayExpression.prototype.isPrototypeOf(a)},H.isObjectExpression=function(a){return ChildObjectExpression.prototype.isPrototypeOf(a)};var X={array:S,object:T},Y=l.toObject(["value","not","and","or","type","is","result"]);l.core.applyExpressions=function(a,b,c){if(X[a]){var d,e=X[a].prototype;for(d in e)b[d]||Y[d]||!l.isFunction(e[d])||c&&!c[d]||(b[d]=q(d))}};var Z=l.extend({},J,K,L);for(var G in Z)v(G);l.forEach=l.each;var $=l.at,w=v("at");l.at=function(a,b,c){return l.isNumber(a)?$(a):w(a,b,c)};var _=l.first,ab=v("first");l.first=function(a,b,c){return 0==arguments.length?_:ab(a,b,c)};var bb=l.last,cb=v("last");l.last=function(a,b,c){return 0==arguments.length?bb:cb(a,b,c)};var db=l.contains;l.contains=function(a,b){return l.isString(a)?-1!=a.indexOf(b):db(a,b)}}(),function(){function a(a,b){if(null!=b){var c=a;a=function(a,d,e){return c.call(b,a,d,e)}}return a}function b(a){var b={};return l.each(a,function(a){b[a]=!0}),b}function c(){return!1}function d(){return!0}function e(a){this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?d:c,this.timeStamp=a.timeStamp||+new Date}function f(a,b,c){a.addEventListener&&"propertychange"!=b?a.addEventListener(b,function(a){c.call(this,e.fix(a))},!1):a.attachEvent&&a.attachEvent("on"+b,function(a){c.call(this,e.fix(a))})}function g(a,b){return a&&"string"==typeof a&&null!=b?(a=" "+a+" ",a.indexOf(" "+b+" ")):-1}function h(a){return String(a).replace(L,"&").replace(M,"<")}function i(a){var b=document.createDocumentFragment(),c=document.createElement("div"),d=1,e="",f="
",g="",h="",i="",j="";for(a=a.toString(),-1!=a.indexOf(""+a+"",d=2):-1==a.indexOf(""+a+"";d--;)c=c.lastChild;for(;c.firstChild;)b.appendChild(c.firstChild);return b}function j(a){return a?parseFloat(a[1]):void 0}function k(a,b,c){T[b]?T[b](a,c,function(b,c){f(a,b,c)}):f(a,b,c)}function m(a){return m.prototype.isPrototypeOf(this)?(this.__identity__=O,this._tagName=a?a.toString().toLowerCase():null,this._attributes={},this._attributeExpressions=[],this._parent=null,this._children=[],this._isSelfClosing=!1,this._haveAttributes=!0,this._innerHTML=null,this._renderMode=m.RenderMode.All,this._haveStyle=!1,this._style={},this._states=null,this._state=null,void(l.isElement(a)&&(this._el=a))):new m(a)}function n(a,b){var c,d,e=' style="',f=!1;for(c in a)d=a[c],b&&N.call(b.style,c)||(d||0===d)&&(f=!0,c=c.replace(/[A-Z]/g,o),e+=c,e+=":",e+=d,e+=";");if(b)for(c in b.style)d=b.style[c],(d||0===d)&&(f=!0,c=c.replace(/[A-Z]/g,o),e+=c,e+=":",e+=d,e+=";");return e+='"',f?e:""}function o(a){return"-"+a.toLowerCase()}function p(a,b,c){if(null!=c){c=l.isArray(c)?c:c.toString().split(" ");var d,e,f,h=0;if(m.Is(b))d=b._getAttr(H);else{if(b.classList)return void(Z?b.classList[a].apply(b.classList,c):l.each(c,function(c){b.classList[a](c)}));d=b.className}for(d=d||"";hf&&(""!==d&&(e=" "+e),d+=e):-1!=f&&(d=(d.substring(0,f)+" "+d.substring(f+e.length+1,d.length)).replace(G,""));m.Is(b)?b._state?b._state.attributes[H]=d:b._attributes[H]=d:b.className=d}}function q(a,b){var c=S.data(a);if(c&&c.animating>0){for(var d,e=a.childNodes,f=0,h=0;b!=h;){if(!e[f])return Number.POSITIVE_INFINITY;d=e[f].className,f++,-1==g(d,"b-hide")&&h++}if(!e[f])return Number.POSITIVE_INFINITY;for(d=e[f].className;-1!=g(d,"b-hide");){if(f++,!e[f])return Number.POSITIVE_INFINITY;d=e[f].className}return f}return b}function r(a,b){var c=!1,d=S.createIfNotExists(b),e=S.createIfNotExists(b.parentNode),f=d.animateCallback,g="remove"==a?"hide":"add"==a?"show":a,h="remove"==a?function(){S.clear(b,!0),b.parentNode&&b.parentNode.removeChild(b)}:"hide"==a?function(){b.style.display="none"}:l.noop,i=function(){d.animating-=1,e.animating-=1,d.animating||h()};if(1!=b.nodeType)return void h();if("show"==a&&(b.style.display=""),d.preprocess)return void h();if(f){c=!0,d.animating+=1,e.animating+=1;var j=l.context(b),k=j.$view||j.$root;f.call(k,b,i,g)}return c||s(g,b,h,i)}function s(a,b,c,d){function e(){p("remove",b,"b-"+a),p("remove",b,"b-"+a+"-end"),d(),b.removeEventListener("transitionend",e,!1),b.removeEventListener(f,e,!1)}if("undefined"==typeof window||void 0===window.ontransitionend)return void c();p("add",b,"b-"+a);var f,g=window.getComputedStyle(b),h="";void 0===window.onanimationend&&void 0!==window.onwebkitanimationend?(h="-webkit-",f="webkitAnimationEnd"):f="animationend";var i=parseFloat(g["transition-duration"])||0,j=parseFloat(g["transition-delay"])||0,k=parseFloat(g[h+"animation-duration"])||0,l=parseFloat(g[h+"animation-delay"])||0;return 0>=i&&0>=j&&0>=k&&0>=l?(p("remove",b,"b-"+a),void c()):(S.createIfNotExists(b).animating+=1,S.createIfNotExists(b.parentNode).animating+=1,setTimeout(function(){p("add",b,"b-"+a+"-end"),b.addEventListener("transitionend",e,!1),b.addEventListener(f,e,!1)},1),!0)}function t(a){return t.prototype.isPrototypeOf(this)?(this.__Class__(),void(8==a.nodeType?(this._commentText=a.nodeValue,this._el=a):this._commentText=a)):new t(a)}function u(a,b){for(var c,d,e,f,g,i,j,k,n,o=window.__blocksServerData__,p=[];a;){if(i=a.nodeType,1==i){d=a.tagName.toLowerCase(),c=new m(a),c._tagName=d,c._parent=b,b&&(c._each=b._each||b._childrenEach),c._haveAttributes=!1,f=a.attributes,e={};for(var q=0;q");else if(o){var r=parseInt(/[0-9]+/.exec(k),10);!l.isNaN(r)&&o[r]&&p.push(Y.Create(o[r]))}else 0!==k.indexOf("/blocks")&&p.push("")}a=a.nextSibling}return p}function v(a){for(var b,c,d,e=a.split(";"),f={},g=0;g1?F.on(this,a,b,c):F.on(this,a,b),this}}var b={on:function(a,b,c){return arguments.length>2?F.on(this,a,b,c):F.on(this,a,b),this},once:function(a,b,c){F.once(this,a,b,c)},off:function(a,b){F.off(this,a,b)},trigger:function(a){F.trigger(this,a,l.toArray(arguments).slice(1,100))}};return b._trigger=b.trigger,{register:function(c,d){d=l.isArray(d)?d:[d];for(var e=0;ef;f++)e=b[f],a._events[e]||(a._events[e]=[]),a._events[e].push({callback:c,thisArg:d})},once:function(a,b,c,d){F.on(a,b,c,d),F.on(a,b,function(){F.off(a,b,c)})},off:function(a,b,c){l.isFunction(b)&&(c=b,b=void 0),void 0!==b||void 0!==c?l.each(a._events,function(d,e){void 0!==b&&void 0===c?a._events[b]=[]:l.each(d,function(b,d){return b.callback==c?(a._events[e].splice(d,1),!1):void 0})}):a._events=void 0},trigger:function(a,b){var c,d,e,f=!0;return a&&a._events&&(c=a._events[b],c&&c.length>0&&(e=Array.prototype.slice.call(arguments,2),l.each(c,function(b){b&&(d=a,void 0!==b.thisArg&&(d=b.thisArg),b.callback.apply(d,e)===!1&&(f=!1))}))),f},has:function(a,b){return!!l.access(a,"_events."+b+".length")}}}();!function(){function b(){if("complete"===document.readyState)setTimeout(d);else if(document.addEventListener)document.addEventListener("DOMContentLoaded",c,!1),window.addEventListener("load",c,!1);else{document.attachEvent("onreadystatechange",c),window.attachEvent("onload",c);var a=!1;try{a=null==window.frameElement&&document.documentElement}catch(b){}a&&a.doScroll&&!function e(){if(!l.isDomReady){try{a.doScroll("left")}catch(b){return setTimeout(e,50)}d()}}()}}function c(){(document.addEventListener||"load"==event.type||"complete"==document.readyState)&&d()}function d(){l.isDomReady||(l.isDomReady=!0,F.trigger(l.core,"domReady"),F.off(l.core,"domReady"))}l.isDomReady=!1,l.domReady=function(c,d){"undefined"==typeof document||"undefined"==typeof window||window.__mock__&&document.__mock__||(c=a(c,d),l.isDomReady||"complete"==document.readyState||window.jQuery&&window.jQuery.isReady?(l.isDomReady=!0,c()):(F.on(l.core,"domReady",c),b()))}}();var G=(Array.prototype.slice,/^\s+|\s+$/gm),H="class",I=l.queries={},J=/^(?:mouse|pointer|contextmenu)|click/,K=/^key/;e.PropertiesToCopy={all:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),mouse:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),keyboard:"char charCode key keyCode".split(" ")},e.CopyProperties=function(a,b,c){l.each(e.PropertiesToCopy[c],function(c){b[c]=a[c]})},e.prototype={preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=d,a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=d,a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=d,a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},e.fix=function(a){var b=a.type,c=new e(a);return e.CopyProperties(a,c,"all"),c.target||(c.target=a.srcElement||document),3===c.target.nodeType&&(c.target=c.target.parentNode),c.metaKey=!!c.metaKey,J.test(b)?e.fixMouse(a,c):K.test(b)&&null==c.which&&(e.CopyProperties(a,c,"keyboard"),c.which=null!=a.charCode?a.charCode:a.keyCode),c},e.fixMouse=function(a,b){var c,d,f,g=a.button,h=a.fromElement;e.CopyProperties(a,b,"mouse"),null==b.pageX&&null!=a.clientX&&(d=b.target.ownerDocument||document,f=d.documentElement,c=d.body,b.pageX=a.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),b.pageY=a.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!b.relatedTarget&&h&&(b.relatedTarget=h===b.target?a.toElement:h),b.which||void 0===g||(b.which=1&g?1:2&g?3:4&g?2:0)};var L=/&/g,M=/",c[0];);return a>4?a:void 0}(),Opera:window&&window.navigator&&window.opera&&window.opera.version&&parseInt(window.opera.version(),10)||void 0,Safari:window&&window.navigator&&j(window.navigator.userAgent.match(/^(?:(?!chrome).)*version\/([^ ]*) safari/i)),Firefox:window&&window.navigator&&j(window.navigator.userAgent.match(/Firefox\/([^ ]*)/))});var S=function(){function a(a){var b=a?m.Is(a)?a._state?a._state.attributes[P]:a._attributes[P]:1==a.nodeType?a.getAttribute(P):8==a.nodeType?/\s+(\d+):[^\/]/.exec(a.nodeValue):null:null;return l.isArray(b)?b[1]:b}function b(a,b){m.Is(a)?a.attr(P,b):1==a.nodeType&&a.setAttribute(P,b)}var c={},d=1;return{id:function(b){return a(b)},reset:function(){c={},d=1},collectGarbage:function(){l.each(c,function(a){a&&a.dom&&!document.body.contains(a.dom)&&S.clear(a.id,!0)})},createIfNotExists:function(e){var f,g,h=e&&e.__identity__==O;return f=h?c[e._getAttr(P)]:c[e&&a(e)],f||(g=d++,e&&(h&&e._each?(e._haveAttributes=!0,e._state?e._state.attributes[P]=g:e._attributes[P]=g):b(e,g)),f=c[g]=e?{id:g,virtual:h?e:null,animating:0,observables:{},preprocess:h}:{id:g}),f},byId:function(a){return c[a]},data:function(b,d,e){var f=c[a(b)||b];if(f)return 1==arguments.length?f:(arguments.length>2&&(f[d]=e),f[d])},clear:function(b,d){var e=a(b)||b,f=c[e];!f||f.haveData&&!d||(l.each(f.observables,function(a){for(var b=0;b=8&&(U(a,d),c("dragend",e))):(c("input",d),R.Safari<7&&"textarea"==a.tagName.toLowerCase()?(c("keydown",e),c("paste",e),c("cut",e)):R.Opera<11?c("keydown",e):R.Firefox<4&&(c("DOMAutoComplete",d),c("dragdrop",d),c("drop",d)))}},U=function(){function a(a){var b=this.activeElement,c=b&&S.data(b,"selectionchange");c&&c(a)}var b=!1;return function(c,d){b||(f(c.ownerDocument,"selectionchange",a),b=!0),S.createIfNotExists(c).selectionChange=d}}(),V=l.dom={valueTagNames:{input:!0,textarea:!0,select:!0},valueTypes:{file:!0,hidden:!0,password:!0,text:!0,color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,time:!0,url:!0,week:!0},props:{"for":!0,"class":!0,value:!0,checked:!0,tabindex:!0,className:!0,htmlFor:!0},propFix:{"for":"htmlFor","class":"className",tabindex:"tabIndex"},attrFix:{className:"class",htmlFor:"for"},addClass:function(a,b){a&&p("add",a,b)},removeClass:function(a,b){a&&p("remove",a,b)},html:function(a,b){if(a)if(b=b.toString(),8==a.nodeType)V.comment.html(a,b);else if(R.IE<10){for(;a.firstChild;)a.removeChild(this._element.firstChild);a.appendChild(i(b))}else a.innerHTML=b},css:function(a,b,c){a&&b&&("display"==b?_.setVisibility(a,"none"==c?!1:!0):a.style[b]=c)},on:function(a,b,c){a&&k(a,b,c)},off:function(){},removeAttr:function(a,b){a&&b&&V.attr(a,b,null)},attr:function(a,c,d){var e=V.props[c];return c=V.propFix[c.toLowerCase()]||c,l.core.skipExecution&&l.core.skipExecution.element===a&&l.core.skipExecution.attributeName==c||!a?void 0:8==a.nodeType?void V.comment.attr(a,c,d):("checked"==c&&(d="checked"!=d&&"string"==typeof d&&"radio"==a.getAttribute("type")&&d!=a.value&&null!=a.defaultValue&&""!==a.defaultValue?!1:!!d),1===arguments.length?e?a[c]:a.getAttribute(c):void(null!=d?"value"==c&&"select"==a.tagName.toLowerCase()?(d=b(l.toArray(d)),l.each(a.children,function(a){a.selected=!!d[a.value]})):e?a[c]=d:a.setAttribute(c,d):e?"value"==c&&"select"==a.tagName.toLowerCase()?a.selectedIndex=-1:a[c]&&(a[c]=""):a.removeAttribute(c)))},comment:{html:function(a,b){for(var c,d=a,e=d.parentNode,f=d.nextSibling,g=0;f&&(8!=f.nodeType||-1==f.nodeValue.indexOf("/blocks"));)g++,c=f.nextSibling,e.removeChild(f),f=c;return e.insertBefore(i(b),d.nextSibling),g},attr:function(a,b,c){if(a&&b==P&&c){var d=a,e=a._endElement;return d.nodeValue=" "+c+":"+d.nodeValue.replace(G,"")+" ",e.nodeValue=" "+c+":"+e.nodeValue.replace(G,"")+" ",this}return this}}},W={},X=function(){var a=[];return{startObserving:function(){a.push([])},stopObserving:function(){return a.pop()},currentObservables:function(){return a[a.length-1]},registerObservable:function(b){var c=a[a.length-1],d=!1;c&&(l.each(c,function(a){return a===b?(d=!0,!1):void 0}),d||c.push(b))}}}(),Y={Html:0,ValueOnly:2,Create:function(a,b,c){for(var d,e,f,g=-1,h=0,i=[];a.length>++g;)d=a.charAt(g),"{"==d&&"{"==a.charAt(g+1)?e=g+2:"}"==d&&"}"==a.charAt(g+1)&&(e&&(f=a.substring(e,g),b||(f=f.replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")),d=a.substring(h,e-2),d&&i.push(d),i.push({expression:f,attributeName:b}),h=g+2),e=0);return d=a.substring(h),d&&i.push(d),i.text=a,i.attributeName=b,i.element=c,i.isExpression=!0,f?i:null},GetValue:function(a,b,c,d){var e,f="",g=c.length,h=-1;if(!a)return c.text;if(1==g)f=Y.Execute(a,b,c[0],c,d);else for(;++h"+j)),j}};l.VirtualElement=l.inherit(m,{tagName:function(a){return a?(this._tagName=a,this):this._tagName},html:function(a){return arguments.length>0?(a=null==a?"":a,this._state?this._state.html!==a&&(this._state.html=a,V.html(this._el,a)):(this._innerHTML=a,V.html(this._el,a)),this._children=[],this):this._innerHTML||""},text:function(a){return arguments.length>0?(null!=a&&(a=h(a),this.html(a)),this):this.html()},parent:function(){return this._parent},children:function(a){return"number"==typeof a?this._children[a]:this._children},attr:function(a,c){var d,e=this;if("string"==typeof a){var f=this._tagName,g=this._attributes.type,h=c,i=S.data(this),j=this._getAttr("value");if(a=l.unwrapObservable(a),a=V.attrFix[a]||a,c=l.unwrapObservable(c),l.isObservable(h)&&"value"==a&&V.valueTagNames[f]&&(!g||V.valueTypes[g])?(i.subscribe="select"==f?"change":"input",i.valueObservable=h):!l.isObservable(h)||"checked"!=a||"checkbox"!=g&&"radio"!=g||(i.subscribe="click",i.valueObservable=h),1==arguments.length)return d=this._getAttr(a),void 0===d?null:d;"checked"!=a||null==c||this._fake?"disabled"==a&&(c=c?"disabled":null):c="radio"==this._attributes.type&&"string"==typeof c&&j!=c&&null!=j?null:c?"checked":null,"textarea"!=f||"value"!=a||this._el?"value"==a&&"select"==f?(this._values=b(l.toArray(c)),V.attr(this._el,a,c)):(this._haveAttributes=!0,this._state?this._state.attributes[a]!==c&&(this._state.attributes[a]=c,V.attr(this._el,a,c)):(this._attributes[a]=c,V.attr(this._el,a,c))):this.html(c)}else l.isPlainObject(a)&&l.each(a,function(a,b){e.attr(b,a)});return this},removeAttr:function(a){return this._attributes[a]=null,V.removeAttr(this._el,a),this},css:function(a,b){var c=this;if("string"==typeof a){if(a=l.unwrap(a),b=l.unwrap(b),!a)return;if(a=a.toString().replace(/-\w/g,function(a){return a.charAt(1).toUpperCase()}),1===arguments.length)return b=this._getCss(a),void 0===b?null:b;"display"==a&&(b="none"==b||!b&&""!==b?"none":""),this._haveStyle=!0,m.CssNumbers[a]||(b=l.toUnit(b)),this._state?this._state.style[a]!==b&&(this._state.style[a]=b,V.css(this._el,a,b)):(this._style[a]=b,V.css(this._el,a,b)) -}else l.isPlainObject(a)&&l.each(a,function(a,b){c.css(b,a)});return this},addChild:function(a,b){var c,d=this._template||this._children;return a&&(a._parent=this,this._childrenEach||this._each?a._each=!0:this._el&&(c=i(a.render(l.domQuery(this))),a._el=c.childNodes[0],"number"==typeof b?this._el.insertBefore(c,this._el.childNodes[b]):this._el.appendChild(c)),"number"==typeof b?d.splice(b,0,a):d.push(a)),this},addClass:function(a){return p("add",this,a),V.addClass(this._el,a),this},removeClass:function(a){return p("remove",this,a),V.removeClass(this._el,a),this},toggleClass:function(a,b){b===!1?this.removeClass(a):this.addClass(a)},hasClass:function(a){return-1!=g(this._attributes[H],a)},renderBeginTag:function(){var a;return a="<"+this._tagName,this._haveAttributes&&(a+=this._renderAttributes()),this._haveStyle&&(a+=n(this._style,this._state)),a+=this._isSelfClosing?" />":">"},renderEndTag:function(){return this._isSelfClosing?"":""},render:function(a,b){var c="",d="",e=this._el;return void 0!==b&&(this._state={attributes:{},style:{},html:null,expressions:{}},this._states||(this._states={}),this._states[b]=this._state),this._el=void 0,this._execute(a),this._el=e,this._renderMode!=m.RenderMode.None&&(this._renderMode!=m.RenderMode.ElementOnly&&(d=this._state&&null!==this._state.html?this._state.html:null!=this._innerHTML?this._innerHTML:this.renderChildren(a,b)),c+=this.renderBeginTag(),c+=d,c+=this.renderEndTag()),this._state=null,c},renderChildren:function(a,b){for(var c,d,e="",f=this._template||this._children,g=f.length,h=-1;++he;e++)d=a.childNodes[b],d&&r("remove",d)&&b++},setVisibility:function(a,b){b?_.show(a):_.hide(a)},show:function(a){r("show",a)},hide:function(a){r("hide",a)}};l.VirtualComment=l.inherit(m,t,{renderBeginTag:function(){var a=this._getAttr(P),b=""},renderEndTag:function(){var a=this._getAttr(P),b=""},_executeAttributeExpressions:l.noop}),t.Is=function(a){return t.prototype.isPrototypeOf(a)};var ab={};z.QueryCache={},z.prototype={options:function(){return this._options},dataIndex:x("_dataIndex"),context:x("_context"),popContext:function(){this._context&&(this._context=this._context.$parentContext)},applyContextToElement:function(a){var b=S.createIfNotExists(a);b.domQuery=this,b.context=this._context,(this._hasChanged||a._each&&!a._parent._each)&&(a._parent&&!a._each&&(b=S.createIfNotExists(a._parent),b.childrenContext=this._context),this._hasChanged=!1,b.haveData=!0)},pushContext:function(a){var b,c=this._context,d=c?c.$parents.slice(0):[];return this._hasChanged=!0,c&&d.unshift(c.$this),b={$this:a,$root:c?c.$root:a,$parent:c?c.$this:null,$parents:c?d:[],$index:this._dataIndex||null,$parentContext:c||null},b.$context=b,this._context=b,this.applyDefinedContextProperties(),b},getSyncIndex:function(){for(var a=this._context,b="";a&&a.$index;)b=a.$index.__value__+"_"+b,a=a.$parentContext;return b},contextBubble:function(a,b){var c=this._context;this._context=a,b(),this._context=c},addProperty:function(a,b){this._contextProperties[a]=b,this.applyDefinedContextProperties()},removeProperty:function(a){delete this._contextProperties[a]},applyDefinedContextProperties:function(){var a,b=this._context,c=this._contextProperties;for(a in c)b[a]=c[a]},executeElementQuery:function(a){var b=m.Is(a)?a._attributes[Q]:1==a.nodeType?a.getAttribute(Q):a.nodeValue.substring(a.nodeValue.indexOf("blocks")+6).replace(G,"");b&&this.executeQuery(a,b)},executeQuery:function(a,b){var c=z.QueryCache[b]||A(b,a);this.executeMethods(a,c)},executeMethods:function(a,b){for(var c,d,e,f,g,h,i,j=S.data(a),k=0,n=0;nk,k=X.currentObservables().length,d.push(e)):d.push(c.passRawValues?e.rawValue:e.value),c===l.queries["if"]||c===l.queries.ifnot){if(!e.value&&c===l.queries["if"]||e.value&&c===l.queries.ifnot){if(!f[2])break;this.executeQuery(a,f[2]);break}this.executeQuery(a,f[1]);break}}var q=d;if(c.passDomQuery&&(q=l.clone(d).slice(1)),l.debug.checkQuery(b[n].name,q,b[n],a),m.Is(a)){if(t.Is(a)&&!c.supportsComments)continue;if(c.call)c.call===!0?a[b[n].name].apply(a,d):(d.unshift(c.prefix||b[n].name),a[c.call].apply(a,d));else if(c.preprocess&&c.preprocess.apply(a,d)===!1){this.subscribeObservables(b[n],j,h);break}}else if(c.call){var r=S.data(a).virtual;r._each&&(r=m("div"),r._el=a,r._fake=!0),c.call===!0?r[b[n].name].apply(r,d):(d.unshift(c.prefix||b[n].name),r[c.call].apply(r,d))}else j&&j.preprocess&&c.ready?c.ready.apply(a,d):c.update&&c.update.apply(a,d);this.subscribeObservables(b[n],j,h)}else j.haveData=!0,j.execute||(j.execute=[]),j.execute.push(b[n])},subscribeObservables:function(a,b,c){var d=X.stopObserving();b&&(b.haveData=!0,l.each(d,function(d){b.observables[d.__id__+a.query]||(b.observables[d.__id__+a.query]=d,d._elements.push({elementId:b.id,cache:[a],context:c}))}))},createElementObservableDependencies:function(a){for(var b,c,d,e=0;e1?this.toggleClass(a,!!b):this.addClass(a)},update:function(a,b){var c=S.data(this).virtual;c._each&&(c=m(),c._el=this),arguments.length>1?c.toggleClass(a,b):c.addClass(a)}},html:{call:!0},text:{call:!0},visible:{call:"css",prefix:"display"},attr:{passRawValues:!0,call:!0},val:{passRawValues:!0,call:"attr",prefix:"value"},checked:{passRawValues:!0,call:"attr"},disabled:{passRawValues:!0,call:"attr"},css:{call:!0},width:{call:"css"},height:{call:"css"},focused:{preprocess:l.noop,update:function(a){a&&this.focus()}},on:{ready:function(a,b,c){if(a&&b){b=l.toArray(b);var d=this,e=function(a){var d=l.context(this),e=d.$template||d.$view||d.$root;l.each(b,function(b){b.call(e,a,c)})};a=l.isArray(a)?a:a.toString().split(" "),l.each(a,function(a){f(d,a,e)})}}}}),l.each(["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout","select","change","submit","reset","focus","blur","keydown","keypress","keyup"],function(a){l.queries[a]={passRawValues:!0,ready:function(b,c){l.queries.on.ready.call(this,a,b,c)}}});var cb="__blocks.observable__";B.prototype={dispose:function(){this.childNodesCount=void 0,this.startIndex=0,this.observableLength=void 0,this.startOffset=0,this.endOffset=0},setStartIndex:function(a){this.startIndex=a+this.startOffset},setChildNodesCount:function(a){void 0===this.childNodesCount&&(this.observableLength=this.observable.__value__.length),this.childNodesCount=a-(this.startOffset+this.endOffset)},chunkLength:function(a){var b,c=this.chunkLengths,d=S.id(a),e=c[d]||(this.childNodesCount||a.childNodes.length)/(this.observableLength||this.observable.__value__.length);return b=l.isNaN(e)||1/0===e?0:Math.round(e),c[d]=b,b},getAt:function(a,b){for(var c=this.chunkLength(a),d=a.childNodes,e=[],f=0;c>f;f++)e[f]=d[b*c+f+this.startIndex];return e},insertAt:function(a,b,c){_.insert(a,this.chunkLength(a)*b+this.startIndex,l.isArray(c)?c:[c])},removeAt:function(a,b){var c=this.chunkLength(a);_.remove(a,c*b+this.startIndex,c)},remove:function(a,b){var c=this;this.each(function(d){for(var e=0;b>e;e++)c.removeAt(d,a)}),S.collectGarbage(),this.dispose(),this.observable._indexes.splice(a,b)},removeAll:function(){var a=this,b=this.observable.__value__;this.each(function(c){l.each(b,function(){a.removeAt(c,0)})})},add:function(a,b){var c=this,d=this.observable;l.each(a,function(a,c){d._indexes.splice(b+c,0,l.observable(b+c))}),this.each(function(e,f){var g,h=l.domQuery(e),i=l.context(e),j="";if(h.contextBubble(i,function(){g=h.getSyncIndex();for(var c=0;c0?c.add(a.slice(b.length),b.length):e>0&&c.remove(a.length,e),this.__value__=a,F.trigger(this,"remove",{type:"remove",items:b,index:0}),F.trigger(this,"add",{type:"add",items:a,index:0}),this},add:function(a,b){return this.splice(l.isNumber(b)?b:this.__value__.length,0,a),this},addMany:function(a,b){return this.splice.apply(this,[l.isNumber(b)?b:this.__value__.length,0].concat(l.toArray(a))),this},swap:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;l.swap(d,a,b);for(var g=0;gb?(f.insertAt(c,a,f.getAt(c,b)),f.insertAt(c,b,f.getAt(c,a))):(f.insertAt(c,b,f.getAt(c,a)),f.insertAt(c,a,f.getAt(c,b)));return this},move:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;l.move(d,a,b),b>a&&b++;for(var g=0;g1?this().slice(a,b):this().slice(a)},join:function(a){return arguments.length>0?this().join(a):this().join()},pop:function(){var a=this,b=a();return a.splice(b.length-1,1)[0]},push:function(){return this.addMany(arguments),this.__value__.length},reverse:function(){var a=this().reverse(),b=this._chunkManager;return this._indexes.reverse(),b.each(function(c){for(var d=1;d0,g=this._chunkManager,h=this._indexes,i=0;e>i;i++){var j=[d[i],i];g.each(function(a){j.push(g.getAt(a,i))}),d[i]=j}for(d.sort(function(b,c){return b=b[0],c=c[0],f?a.call(this,b,c):c>b?-1:b>c?1:0}),h.length>0&&(this._indexes=[]),i=0;e>i;i++)c=d[i],h.length>0&&this._indexes.push(h[c[1]]),b=2,g.each(function(a){g.insertAt(a,e,c[b]),b++}),d[i]=c[0];return this.update(),d},splice:function(a,b){var c,d=this.__value__,e=this._chunkManager,f=[],g=arguments;return a=0>a?d.length-a:a,b&&a=0&&(b=Math.min(d.length-a,b),f=d.slice(a,a+b),F.trigger(this,"removing",{type:"removing",items:f,index:a}),e.remove(a,b),f=d.splice(a,b),F.trigger(this,"remove",{type:"remove",items:f,index:a})),g.length>2&&(c=l.toArray(g),c.splice(0,2),F.trigger(this,"adding",{type:"adding",index:a,items:c}),e.add(c,a),d.splice.apply(d,[a,0].concat(c)),F.trigger(this,"add",{type:"add",index:a,items:c})),this.update(),f},unshift:function(){return this.addMany(arguments,0),this.__value__.length}}}});var fb={waiting:{},initExpressionExtender:function(a){var b=a.clone();return b.view=l.observable([]),b.view._connections={},b.view._observed=[],b.view._updateObservable=l.bind(fb.updateObservable,b),b._operations=a._operations?l.clone(a._operations):[],b._getter=l.bind(fb.getter,b),b.view._initialized=!1,b.view.on("get",b._getter),b},getter:function(){F.off(this.view,"get",this._getter),this._getter=void 0,this.view._initialized=!0,fb.executeOperationsPure(this)},updateObservable:function(){fb.executeOperations(this)},executeOperationsPure:function(a){var b=[],c=a.view._observed,d=a.view._updateObservable;l.each(c,function(a){F.off(a,"change",d)}),c=a.view._observed=[],X.startObserving(),l.each(a._operations,function(c){if("step"==c.type){var d=a.view;a.view=l.observable([]),a.view._connections={},b.length&&fb.executeOperationsChunk(a,b),c.step.call(a.__context__),a.view=d}else b.push(c)}),b.length&&fb.executeOperationsChunk(a,b),l.each(X.stopObserving(),function(a){c.push(a),a.on("change",d)})},executeOperations:function(a){var b=a.__id__,c=fb.waiting;c[b]||(c[b]=!0,setTimeout(function(){fb.executeOperationsPure(a),c[b]=!1},0))},executeOperationsChunk:function(a,b){var c="add",d="remove",e="exists",f=e,g=a.__value__,h=a.view,i=h._connections,j={},k=0,m=h.update,n=0,o=g.length;h.update=l.noop,l.each(b,function(c){"skip"==c.type?(n=c.skip,l.isFunction(n)&&(n=n.call(a.__context__)),n=l.unwrap(n)):"take"==c.type?(o=c.take,l.isFunction(o)&&(o=o.call(a.__context__)),o=l.unwrap(o)):"sort"==c.type&&(g=l.isString(c.sort)?l.clone(g).sort(function(a,b){return a[c.sort]-b[c.sort]}):l.isFunction(c.sort)?l.clone(g).sort(c.sort):l.clone(g).sort(),1==b.length&&b.push({type:"filter",filter:function(){return!0}}))}),l.each(g,function(m,p){if(0>=o){for(;h().length-k>0;)h.removeAt(h().length-1);return!1}switch(l.each(b,function(b){var h=b.filter;if(f=void 0,h){if(!h.call(a.__context__,m,p,g))return f=void 0,void 0!==i[p]&&(f=d),!1;f=e,void 0===i[p]&&(f=c)}else if("skip"==b.type){if(f=e,n-=1,n>=0)return f=d,!1;0>n&&void 0===i[p]&&(f=c)}else if("take"==b.type){if(0>=o)return f=d,!1;o-=1,f=e,void 0===i[p]&&(f=c)}}),f){case c:j[p]=k,h.splice(k,0,m),k++;break;case d:h.removeAt(k);break;case e:j[p]=k,k++}}),h._connections=j,h.update=m,h.update()}};l.observable.filter=function(a){var b=fb.initExpressionExtender(this),c=a;return(!l.isFunction(c)||l.isObservable(c))&&(c=function(b){var c=l.unwrap(a),d=String(c).toLowerCase();return b=String(l.unwrap(b)).toLowerCase(),!c||-1!=b.indexOf(d)}),b._operations.push({type:"filter",filter:c}),b.on("add",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),fb.executeOperations(b))}),b.on("remove",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),fb.executeOperations(b))}),b},l.observable.step=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"step",step:a}),b},l.observable.skip=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"skip",skip:a}),b},l.observable.take=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"take",take:a}),b},l.observable.sort=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"sort",sort:a}),b},l.query=function(a,b){l.domReady(function(){l.$unwrap(b,function(b){l.isElement(b)||(b=document.body);var c=new z,d=u(b)[0],e=window.__blocksServerData__;c.pushContext(a),c._serverData=e,e?d.render(c):d.sync(c),c.createElementObservableDependencies([b])})})},l.executeQuery=function(a,b){var c=m.Is(a)?"preprocess":"update",d=Array.prototype.slice.call(arguments,2),e=l.queries[b];e.passDomQuery&&d.unshift(l.domQuery(a)),e[c].apply(a,d)},l.context=function(a,b){if(a=l.$unwrap(a)){var c=S.data(a);if(c){if(b&&c.childrenContext)return c.childrenContext;if(c.context)return c.context}return l.context(m.Is(a)?a._parent:a.parentNode,!0)}return null},l.dataItem=function(a){var b=l.context(a);return b?b.$this:null},l.isObservable=function(a){return!!a&&a.__identity__===cb},l.unwrapObservable=function(a){return a&&a.__identity__===cb?a():a},l.domQuery=function(a){if(a=l.$unwrap(a)){var b=S.data(a,"domQuery");return b?b:l.domQuery(m.Is(a)?a._parent:a.parentNode)}return null}}()}(),function(){var a=l.toString;l.toString=function(b){return 0===arguments.length?"jsblocks - Better MV-ish Framework":a(b)}}();var o=a.blocks;return l.noConflict=function(b){return a.blocks===l&&(a.blocks=o),b&&a.blocks===l&&(a.blocks=o),l},"function"==typeof define&&define.amd&&define("blocks",[],function(){return l}),b!==!0&&(a.blocks=l),l}); +}else l.isPlainObject(a)&&l.each(a,function(a,b){c.css(b,a)});return this},addChild:function(a,b){var c,d=this._template||this._children;return a&&(a._parent=this,this._childrenEach||this._each?a._each=!0:this._el&&(c=i(a.render(l.domQuery(this))),a._el=c.childNodes[0],"number"==typeof b?this._el.insertBefore(c,this._el.childNodes[b]):this._el.appendChild(c)),"number"==typeof b?d.splice(b,0,a):d.push(a)),this},addClass:function(a){return p("add",this,a),V.addClass(this._el,a),this},removeClass:function(a){return p("remove",this,a),V.removeClass(this._el,a),this},toggleClass:function(a,b){b===!1?this.removeClass(a):this.addClass(a)},hasClass:function(a){return-1!=g(this._attributes[H],a)},renderBeginTag:function(){var a;return a="<"+this._tagName,this._haveAttributes&&(a+=this._renderAttributes()),this._haveStyle&&(a+=n(this._style,this._state)),a+=this._isSelfClosing?" />":">"},renderEndTag:function(){return this._isSelfClosing?"":""},render:function(a,b){var c="",d="",e=this._el;return void 0!==b&&(this._state={attributes:{},style:{},html:null,expressions:{}},this._states||(this._states={}),this._states[b]=this._state),this._el=void 0,this._execute(a),this._el=e,this._renderMode!=m.RenderMode.None&&(this._renderMode!=m.RenderMode.ElementOnly&&(d=this._state&&null!==this._state.html?this._state.html:null!=this._innerHTML?this._innerHTML:this.renderChildren(a,b)),c+=this.renderBeginTag(),c+=d,c+=this.renderEndTag()),this._state=null,c},renderChildren:function(a,b){for(var c,d,e="",f=this._template||this._children,g=f.length,h=-1;++he;e++)d=a.childNodes[b],d&&r("remove",d)&&b++},setVisibility:function(a,b){b?_.show(a):_.hide(a)},show:function(a){r("show",a)},hide:function(a){r("hide",a)}};l.VirtualComment=l.inherit(m,t,{renderBeginTag:function(){var a=this._getAttr(P),b=""},renderEndTag:function(){var a=this._getAttr(P),b=""},_executeAttributeExpressions:l.noop}),t.Is=function(a){return t.prototype.isPrototypeOf(a)};var ab={};z.QueryCache={},z.prototype={options:function(){return this._options},dataIndex:x("_dataIndex"),context:x("_context"),popContext:function(){this._context&&(this._context=this._context.$parentContext)},applyContextToElement:function(a){var b=S.createIfNotExists(a);b.domQuery=this,b.context=this._context,(this._hasChanged||a._each&&!a._parent._each)&&(a._parent&&!a._each&&(b=S.createIfNotExists(a._parent),b.childrenContext=this._context),this._hasChanged=!1,b.haveData=!0)},pushContext:function(a){var b,c=this._context,d=c?c.$parents.slice(0):[];return this._hasChanged=!0,c&&d.unshift(c.$this),b={$this:a,$root:c?c.$root:a,$parent:c?c.$this:null,$parents:c?d:[],$index:this._dataIndex||null,$parentContext:c||null},b.$context=b,this._context=b,this.applyDefinedContextProperties(),b},getSyncIndex:function(){for(var a=this._context,b="";a&&a.$index;)b=a.$index.__value__+"_"+b,a=a.$parentContext;return b},contextBubble:function(a,b){var c=this._context;this._context=a,b(),this._context=c},addProperty:function(a,b){this._contextProperties[a]=b,this.applyDefinedContextProperties()},removeProperty:function(a){delete this._contextProperties[a]},applyDefinedContextProperties:function(){var a,b=this._context,c=this._contextProperties;for(a in c)b[a]=c[a]},executeElementQuery:function(a){var b=m.Is(a)?a._attributes[Q]:1==a.nodeType?a.getAttribute(Q):a.nodeValue.substring(a.nodeValue.indexOf("blocks")+6).replace(G,"");b&&this.executeQuery(a,b)},executeQuery:function(a,b){var c=z.QueryCache[b]||A(b,a);this.executeMethods(a,c)},executeMethods:function(a,b){for(var c,d,e,f,g,h,i,j=S.data(a),k=0,n=0;nk,k=X.currentObservables().length,d.push(e)):d.push(c.passRawValues?e.rawValue:e.value),c===l.queries["if"]||c===l.queries.ifnot){if(!e.value&&c===l.queries["if"]||e.value&&c===l.queries.ifnot){if(!f[2])break;this.executeQuery(a,f[2]);break}this.executeQuery(a,f[1]);break}}var q=d;if(c.passDomQuery&&(q=l.clone(d).slice(1)),l.debug.checkQuery(b[n].name,q,b[n],a),m.Is(a)){if(t.Is(a)&&!c.supportsComments)continue;if(c.call)c.call===!0?a[b[n].name].apply(a,d):(d.unshift(c.prefix||b[n].name),a[c.call].apply(a,d));else if(c.preprocess&&c.preprocess.apply(a,d)===!1){this.subscribeObservables(b[n],j,h);break}}else if(c.call){var r=S.data(a).virtual;r._each&&(r=m("div"),r._el=a,r._fake=!0),c.call===!0?r[b[n].name].apply(r,d):(d.unshift(c.prefix||b[n].name),r[c.call].apply(r,d))}else j&&j.preprocess&&c.ready?c.ready.apply(a,d):c.update&&c.update.apply(a,d);this.subscribeObservables(b[n],j,h)}else j.haveData=!0,j.execute||(j.execute=[],j.executeHash={}),j.executeHash[b[n].query]||(j.execute.push(b[n]),j.executeHash[b[n].query]=!0)},subscribeObservables:function(a,b,c){var d=X.stopObserving();b&&(b.haveData=!0,l.each(d,function(d){b.observables[d.__id__+a.query]||(b.observables[d.__id__+a.query]=d,d._elements.push({elementId:b.id,cache:[a],context:c}))}))},createElementObservableDependencies:function(a){for(var b,c,d,e=0;e1?this.toggleClass(a,!!b):this.addClass(a)},update:function(a,b){var c=S.data(this).virtual;c._each&&(c=m(),c._el=this),arguments.length>1?c.toggleClass(a,b):c.addClass(a)}},html:{call:!0},text:{call:!0},visible:{call:"css",prefix:"display"},attr:{passRawValues:!0,call:!0},val:{passRawValues:!0,call:"attr",prefix:"value"},checked:{passRawValues:!0,call:"attr"},disabled:{passRawValues:!0,call:"attr"},css:{call:!0},width:{call:"css"},height:{call:"css"},focused:{preprocess:l.noop,update:function(a){a&&this.focus()}},on:{ready:function(a,b,c){if(a&&b){b=l.toArray(b);var d=this,e=function(a){var d=l.context(this),e=d.$template||d.$view||d.$root;l.each(b,function(b){b.call(e,a,c)})};a=l.isArray(a)?a:a.toString().split(" "),l.each(a,function(a){f(d,a,e)})}}}}),l.each(["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout","select","change","submit","reset","focus","blur","keydown","keypress","keyup"],function(a){l.queries[a]={passRawValues:!0,ready:function(b,c){l.queries.on.ready.call(this,a,b,c)}}});var cb="__blocks.observable__";B.prototype={dispose:function(){this.childNodesCount=void 0,this.startIndex=0,this.observableLength=void 0,this.startOffset=0,this.endOffset=0},setStartIndex:function(a){this.startIndex=a+this.startOffset},setChildNodesCount:function(a){void 0===this.childNodesCount&&(this.observableLength=this.observable.__value__.length),this.childNodesCount=a-(this.startOffset+this.endOffset)},chunkLength:function(a){var b,c=this.chunkLengths,d=S.id(a),e=c[d]||(this.childNodesCount||a.childNodes.length)/(this.observableLength||this.observable.__value__.length);return b=l.isNaN(e)||1/0===e?0:Math.round(e),c[d]=b,b},getAt:function(a,b){for(var c=this.chunkLength(a),d=a.childNodes,e=[],f=0;c>f;f++)e[f]=d[b*c+f+this.startIndex];return e},insertAt:function(a,b,c){_.insert(a,this.chunkLength(a)*b+this.startIndex,l.isArray(c)?c:[c])},removeAt:function(a,b){var c=this.chunkLength(a);_.remove(a,c*b+this.startIndex,c)},remove:function(a,b){var c=this;this.each(function(d){for(var e=0;b>e;e++)c.removeAt(d,a)}),S.collectGarbage(),this.dispose(),this.observable._indexes.splice(a,b)},removeAll:function(){var a=this,b=this.observable.__value__;this.each(function(c){l.each(b,function(){a.removeAt(c,0)})})},add:function(a,b){var c=this,d=this.observable;l.each(a,function(a,c){d._indexes.splice(b+c,0,l.observable(b+c))}),this.each(function(e,f){var g,h=l.domQuery(e),i=l.context(e),j="";if(h.contextBubble(i,function(){g=h.getSyncIndex();for(var c=0;c0?c.add(a.slice(b.length),b.length):e>0&&c.remove(a.length,e),this.__value__=a,F.trigger(this,"remove",{type:"remove",items:b,index:0}),F.trigger(this,"add",{type:"add",items:a,index:0}),this},add:function(a,b){return this.splice(l.isNumber(b)?b:this.__value__.length,0,a),this},addMany:function(a,b){return this.splice.apply(this,[l.isNumber(b)?b:this.__value__.length,0].concat(l.toArray(a))),this},swap:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;l.swap(d,a,b);for(var g=0;gb?(f.insertAt(c,a,f.getAt(c,b)),f.insertAt(c,b,f.getAt(c,a))):(f.insertAt(c,b,f.getAt(c,a)),f.insertAt(c,a,f.getAt(c,b)));return this},move:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;l.move(d,a,b),b>a&&b++;for(var g=0;g1?this().slice(a,b):this().slice(a)},join:function(a){return arguments.length>0?this().join(a):this().join()},pop:function(){var a=this,b=a();return a.splice(b.length-1,1)[0]},push:function(){return this.addMany(arguments),this.__value__.length},reverse:function(){var a=this().reverse(),b=this._chunkManager;return this._indexes.reverse(),b.each(function(c){for(var d=1;d0,g=this._chunkManager,h=this._indexes,i=0;e>i;i++){var j=[d[i],i];g.each(function(a){j.push(g.getAt(a,i))}),d[i]=j}for(d.sort(function(b,c){return b=b[0],c=c[0],f?a.call(this,b,c):c>b?-1:b>c?1:0}),h.length>0&&(this._indexes=[]),i=0;e>i;i++)c=d[i],h.length>0&&this._indexes.push(h[c[1]]),b=2,g.each(function(a){g.insertAt(a,e,c[b]),b++}),d[i]=c[0];return this.update(),d},splice:function(a,b){var c,d=this.__value__,e=this._chunkManager,f=[],g=arguments;return a=0>a?d.length-a:a,b&&a=0&&(b=Math.min(d.length-a,b),f=d.slice(a,a+b),F.trigger(this,"removing",{type:"removing",items:f,index:a}),e.remove(a,b),f=d.splice(a,b),F.trigger(this,"remove",{type:"remove",items:f,index:a})),g.length>2&&(c=l.toArray(g),c.splice(0,2),F.trigger(this,"adding",{type:"adding",index:a,items:c}),e.add(c,a),d.splice.apply(d,[a,0].concat(c)),F.trigger(this,"add",{type:"add",index:a,items:c})),this.update(),f},unshift:function(){return this.addMany(arguments,0),this.__value__.length}}}});var fb={waiting:{},initExpressionExtender:function(a){var b=a.clone();return b.view=l.observable([]),b.view._connections={},b.view._observed=[],b.view._updateObservable=l.bind(fb.updateObservable,b),b._operations=a._operations?l.clone(a._operations):[],b._getter=l.bind(fb.getter,b),b.view._initialized=!1,b.view.on("get",b._getter),b.on("add",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),fb.executeOperations(b))}),b.on("remove",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),fb.executeOperations(b))}),b},getter:function(){F.off(this.view,"get",this._getter),this._getter=void 0,this.view._initialized=!0,fb.executeOperationsPure(this)},updateObservable:function(){fb.executeOperations(this)},executeOperationsPure:function(a){var b=[],c=a.view._observed,d=a.view._updateObservable;l.each(c,function(a){F.off(a,"change",d)}),c=a.view._observed=[],X.startObserving(),l.each(a._operations,function(c){if("step"==c.type){var d=a.view;a.view=l.observable([]),a.view._connections={},b.length&&fb.executeOperationsChunk(a,b),c.step.call(a.__context__),a.view=d}else b.push(c)}),b.length&&fb.executeOperationsChunk(a,b),l.each(X.stopObserving(),function(a){c.push(a),a.on("change",d)})},executeOperations:function(a){var b=a.__id__,c=fb.waiting;c[b]||(c[b]=!0,setTimeout(function(){fb.executeOperationsPure(a),c[b]=!1},0))},executeOperationsChunk:function(a,b){var c="add",d="remove",e="exists",f=e,g=a.__value__,h=a.view,i=h._connections,j={},k=0,m=h.update,n=0,o=g.length;h.update=l.noop,l.each(b,function(c){"skip"==c.type?(n=c.skip,l.isFunction(n)&&(n=n.call(a.__context__)),n=l.unwrap(n)):"take"==c.type?(o=c.take,l.isFunction(o)&&(o=o.call(a.__context__)),o=l.unwrap(o)):"sort"==c.type&&(g=l.isString(c.sort)?l.clone(g).sort(function(a,b){return a[c.sort]-b[c.sort]}):l.isFunction(c.sort)?l.clone(g).sort(c.sort):l.clone(g).sort(),1==b.length&&b.push({type:"filter",filter:function(){return!0}}))}),l.each(g,function(m,p){if(0>=o){for(;h().length-k>0;)h.removeAt(h().length-1);return!1}switch(l.each(b,function(b){var h=b.filter;if(f=void 0,h){if(!h.call(a.__context__,m,p,g))return f=void 0,void 0!==i[p]&&(f=d),!1;f=e,void 0===i[p]&&(f=c)}else if("skip"==b.type){if(f=e,n-=1,n>=0)return f=d,!1;0>n&&void 0===i[p]&&(f=c)}else if("take"==b.type){if(0>=o)return f=d,!1;o-=1,f=e,void 0===i[p]&&(f=c)}}),f){case c:j[p]=k,h.splice(k,0,m),k++;break;case d:h.removeAt(k);break;case e:j[p]=k,k++}}),h._connections=j,h.update=m,h.update()}};l.observable.filter=function(a){var b=fb.initExpressionExtender(this),c=a;return(!l.isFunction(c)||l.isObservable(c))&&(c=function(b){var c=l.unwrap(a),d=String(c).toLowerCase();return b=String(l.unwrap(b)).toLowerCase(),!c||-1!=b.indexOf(d)}),b._operations.push({type:"filter",filter:c}),b},l.observable.step=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"step",step:a}),b},l.observable.skip=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"skip",skip:a}),b},l.observable.take=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"take",take:a}),b},l.observable.sort=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"sort",sort:a}),b},l.query=function(a,b){l.domReady(function(){l.$unwrap(b,function(b){l.isElement(b)||(b=document.body);var c=new z,d=u(b)[0],e=window.__blocksServerData__;c.pushContext(a),c._serverData=e,e?d.render(c):d.sync(c),c.createElementObservableDependencies([b])})})},l.executeQuery=function(a,b){var c=m.Is(a)?"preprocess":"update",d=Array.prototype.slice.call(arguments,2),e=l.queries[b];e.passDomQuery&&d.unshift(l.domQuery(a)),e[c].apply(a,d)},l.context=function(a,b){if(a=l.$unwrap(a)){var c=S.data(a);if(c){if(b&&c.childrenContext)return c.childrenContext;if(c.context)return c.context}return l.context(m.Is(a)?a._parent:a.parentNode,!0)}return null},l.dataItem=function(a){var b=l.context(a);return b?b.$this:null},l.isObservable=function(a){return!!a&&a.__identity__===cb},l.unwrapObservable=function(a){return a&&a.__identity__===cb?a():a},l.domQuery=function(a){if(a=l.$unwrap(a)){var b=S.data(a,"domQuery");return b?b:l.domQuery(m.Is(a)?a._parent:a.parentNode)}return null}}()}(),function(){var a=l.toString;l.toString=function(b){return 0===arguments.length?"jsblocks - Better MV-ish Framework":a(b)}}();var o=a.blocks;return l.noConflict=function(b){return a.blocks===l&&(a.blocks=o),b&&a.blocks===l&&(a.blocks=o),l},"function"==typeof define&&define.amd&&define("blocks",[],function(){return l}),b!==!0&&(a.blocks=l),l}); //# sourceMappingURL=blocks-query-data.min.js.map \ No newline at end of file diff --git a/dist/query/blocks-query-data.min.js.map b/dist/query/blocks-query-data.min.js.map index 360fbe5..37ea108 100644 --- a/dist/query/blocks-query-data.min.js.map +++ b/dist/query/blocks-query-data.min.js.map @@ -1 +1 @@ -{"version":3,"file":"blocks-query-data.min.js","sources":["blocks-query-data.js"],"names":["global","factory","module","exports","window","this","noGlobal","equals","a","b","aStack","bStack","deepEqual","blocks","_wrapped","className","toString","call","String","source","multiline","ignoreCase","length","aCtor","constructor","bCtor","isFunction","push","size","result","key","has","pop","_super","name","args","func","Class","__Class__","isString","prototype","apply","parseCallback","callback","thisArg","orgCallback","value","index","collection","Object","slice","Array","hasOwn","hasOwnProperty","support","core","expressionsCreated","arguments","staticExpression","createExpression","version","extend","src","copyIsArray","copy","options","clone","target","i","deep","isPlainObject","isArray","each","indexOrKey","eachRight","isCollectionAnArray","type","obj","isArguments","noop","inherit","BaseClass","undefined","objectCreate","Number","Date","isBoolean","is","isPrototypeOf","hasValue","isNumber","isNaN","unwrap","isExpression","unwrapObservable","$unwrap","element","jquery","toArray","isElements","toUnit","unit","unitIsSpecified","parseFloat","parseInt","charAt","replace","deepClone","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","flags","RegExp","lastIndex","HTMLCollection","NodeList","item","e","isElement","nodeType","isObject","ownPropertiesAreLast","isFinite","isNull","isUndefined","nothing","access","path","defaultValue","split","swap","array","indexA","indexB","move","sourceIndex","targetIndex","splice","bind","bound","concat","self","at","prototypeIndentification","first","last","create","BaseExpression","parent","_value","_computedValue","_parent","_currentResult","_result","_lastCondition","_condition","_hasNot","group","behavior","accessor","PrepareValues","isAccessorACallback","hasAccessor","generateExpression","descriptorName","isRoot","body","LoopDescriptors","expressions","methodsData","methods","staticMethods","Expression","Function","expressionsCache","cache","descriptors2","add","NumberExpression","forEach","positions","determineIndex","items","isPosition","addMany","flatten","StringExpression","format","string","regEx","FunctionExpression","partial","delay","wait","setTimeout","DateExpression","RegExpExpression","applyExpression","data","createContext","expression","resultIndex","isArrayCheck","skip","take","variables","objectBeforeLoops","arrayBeforeLoops","objectInLoops","arrayInLoops","objectAfterLoops","arrayAfterLoops","conditionsEnd","createConditionsCreator","lastBoolResult","context","inLoop","declarations","boolResultsCount","descriptorData","handled","boolResult","match","end","parentContext","conditionsDeclarations","join","conditions","afterLoopConditions","isSingleExpression","_isSingle","_type","types","tillExpressions","conditionsCreator","skipIndex","takeIndex","disregardResultIndex","skipTake","onlySkipTake","typesIndex","_descriptor","identity","reverse","beforeLoop","afterLoop","RootObjectExpression","_loopDescriptor","mock","descriptor","root","singleExpression","descriptors","blocksAt","position","_prototypeIndentification","_expression","_setResult","not","or","and","_not","_resultExpression","RootArrayExpression","isEmpty","nativeMax","Math","max","ceil","range","start","step","tart","groupBy","countBy","sortBy","dir","sortExpression","sort","left","right","toLowerCase","field","map","list","criteria","HelperDescriptors","fieldName","uniquePrepare","mapPrepare","filterPrepare","createFilterCallback","reducePrepare","memo","filterExpressions","resolveFilterExpressionValue","filterExpression","operator","compareValue","startsWith","endsWith","indexOf","logic","filters","currentResult","shallow","reduceRightPrepare","CollectionDescriptors","contains","prepareValues","every","filter","everything","invoke","min","reduce","some","ArrayDescriptors","lastIndexOf","reduceRight","unique","ObjectDescriptors","get","invert","keys","pairs","values","chainExpression","context2","context1","last2","first2","key2","index2","last1","first1","key1","index1","inLoopConditions","toObject","blox","shuffle","set","objectOrKey","count","shift","begin","compareFunction","howMany","unshift","remove","removeAt","removeAll","removeOne","isCallbackAFunction","useValuesArray","rand","shuffled","random","object","trimRegExp","stringTrimStartRegex","stringTrimEndRegex","substring","trim","trimValue","trimStart","trimEnd","repeat","wrap","wrapValue","matches","regexp","floor","stringOrFunction","wrapValueOrCallback","reg","MAX_VALUE","isRegExp","exec","input","startIndex","endIndex","memoize","hasher","throttle","debounce","immediate","debound","once","timeout","previous","later","leading","now","remaining","clearTimeout","trailing","timestamp","callNow","ran","biggerThan","lessThan","addWeeks","weeks","compare","date","equalsDate","equalsTime","clearTime","setDate","dateA","dateB","setHours","methodName","propertyName","reset","trigger","isArrayExpression","ChildArrayExpression","isObjectExpression","ChildObjectExpression","expressionsByName","skipMethods","applyExpressions","expressionName","blocksAtOriginal","blocksFirstOriginal","blocksFirst","blocksLastOriginal","blocksLast","blocksContains","searchValue","returnFalse","returnTrue","Event","originalEvent","isDefaultPrevented","defaultPrevented","returnValue","timeStamp","addListener","eventName","addEventListener","event","fix","attachEvent","getClassIndex","classAttribute","escapeValue","ampRegEx","lessThanRegEx","createFragment","html","fragment","document","createDocumentFragment","temp","createElement","table","tableEnd","tbody","tbodyEnd","tr","trEnd","innerHTML","lastChild","firstChild","appendChild","parseVersion","on","handler","Workarounds","VirtualElement","tagName","__identity__","virtualElementIdentity","_tagName","_attributes","_attributeExpressions","_children","_isSelfClosing","_haveAttributes","_innerHTML","_renderMode","RenderMode","All","_haveStyle","_style","_states","_state","_el","generateStyleAttribute","style","state","haveStyle","replaceStyleAttribute","setClass","classNames","Is","_getAttr","classAttr","classList","classListMultiArguments","attributes","getIndexOffset","parentElement","elementData","ElementsData","animating","childNodes","childIndex","currentIndex","POSITIVE_INFINITY","animateDomAction","createIfNotExists","parentElementData","parentNode","animateCallback","cssType","disposeCallback","clear","removeChild","display","readyCallback","preprocess","$view","$root","cssAnimate","removeEventListener","ontransitionend","computedStyle","getComputedStyle","prefix","onanimationend","onwebkitanimationend","transitionDuration","transitionDelay","animationDuration","animationDelay","VirtualComment","commentText","_commentText","nodeValue","createVirtual","htmlElement","elementAttributes","htmlAttributes","htmlAttribute","commentTextTrimmed","serverData","__blocksServerData__","elements","_each","_childrenEach","nodeName","specified","browser","IE","_createAttributeExpressions","cssText","generateStyleObject","setIsSelfClosing","hasClass","Create","dataQueryAttr","nextSibling","_endElement","number","styleString","styles","styleObject","domElement","isSelfClosingCache","createProperty","parseQuery","query","currentParameter","character","bracketsCount","curlyBracketsCount","squareBracketsCount","isInSingleQuotes","isInDoubleQuotes","parameters","DomQuery","_options","_contextProperties","createCache","QueryCache","method","queries","methodObj","params","debug","queryNotExists","ChunkManager","observable","chunkLengths","dispose","updateDependencies","_dependencyType","_getDependency","getDependency","__value__","Events","off","Observer","startObserving","__context__","stopObserving","dependency","dependencies","_dependencies","exists","getObservableValue","createEventMethod","eventNames","_trigger","register","_events","events","currentEventName","eventData","eventsData","handleReady","readyState","ready","completed","top","frameElement","documentElement","doScroll","doScrollCheck","isDomReady","domReady","__mock__","jQuery","isReady","isMouseEventRegEx","isKeyEventRegEx","PropertiesToCopy","all","mouse","keyboard","CopyProperties","propertiesName","preventDefault","stopPropagation","isPropagationStopped","cancelBubble","stopImmediatePropagation","isImmediatePropagationStopped","srcElement","metaKey","test","fixMouse","which","charCode","keyCode","eventDoc","doc","button","fromElement","pageX","clientX","ownerDocument","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","dataIdAttr","div","iElems","getElementsByTagName","Opera","navigator","opera","Safari","userAgent","Firefox","getDataId","getAttribute","setDataId","id","attr","setAttribute","globalId","collectGarbage","dom","currentData","isVirtual","virtual","observables","byId","force","haveData","_elements","elementId","removeAttribute","subscribe","deferCall","globalSelectionChangeHandler","selectionChangeHandler","activeElement","isRegistered","selectionChange","valueTagNames","textarea","select","valueTypes","file","hidden","password","text","color","datetime","datetime-local","email","month","search","tel","time","url","week","props","for","class","checked","tabindex","htmlFor","propFix","attrFix","addClass","removeClass","comment","_element","css","animation","setVisibility","removeAttr","attributeName","attributeValue","isProperty","skipExecution","children","child","selected","selectedIndex","commentElement","currentElement","insertBefore","endComment","parameterQueryCache","stack","currentObservables","registerObservable","newObservable","alreadyExists","Html","ValueOnly","GetValue","chunk","Execute","lastResult","expressionData","entireExpression","isObservable","expressionObj","ex","expressionFail","entire","_expressionKeys","_expressions","_this","rawAttributeValue","valueObservable","_fake","_values","val","toUpperCase","_getCss","CssNumbers","addChild","_template","render","domQuery","toggleClass","condition","renderBeginTag","_renderAttributes","renderEndTag","syncIndex","childHtml","_execute","None","ElementOnly","renderChildren","_context","sync","_sync","syncChildren","offset","elementForDeletion","textContent","updateChildren","template","isOneChild","getSyncIndex","childContexts","childs","chunkLength","_length","$this","$parent","$parentContext","popContext","_serverData","applyContextToElement","_executeAttributeExpressions","executeQuery","attributeExpressions","dataId","columnCount","fillOpacity","flexGrow","flexShrink","fontWeight","lineHeight","opacity","order","orphans","widows","zIndex","zoom","insert","childNodesCount","insertPositionNode","node","visible","show","hide","dataIndex","_hasChanged","childrenContext","pushContext","newModel","newContext","models","$parents","$index","_dataIndex","$context","applyDefinedContextProperties","contextBubble","currentContext","addProperty","removeProperty","contextProperties","executeElementQuery","executeMethods","executedParameters","parameter","lastObservablesLength","passDomQuery","update","j","rawValue","queryParameterFail","passDetailValues","containsObservable","passRawValues","ifnot","checkQuery","supportsComments","subscribeObservables","execute","__id__","createElementObservableDependencies","updateOn","UpdateHandlers","cloneContext","change","getSetValue","click","keydown","oldValue","selectedOptions","option","if","getElementById","templates","define","propertyValue","with","_getStaticHtml","dataRole","headers","_headers","footers","_footers","headerHtml","footerHtml","header","headersCount","footer","footersCount","rawCollection","staticHtml","eachData","startOffset","endOffset","getIndex","$thisStr","caption","Error","renderCache","animate","disabled","width","height","focused","focus","callbacks","$template","OBSERVABLE","observableLength","setStartIndex","setChildNodesCount","wrapper","Infinity","round","getAt","insertAt","_indexes","addItems","virtualElement","domElements","setup","commentId","commentIndex","observableId","initialValue","currentValue","fn","base","__viewInInitialize__","_elementKeys","_chunkManager","observableIndexes","forceGet","indexes","createTextNode","extendFunc","cloneValue","current","chunkManager","addCount","removeCount","seperator","that","sortfunction","useSortFunction","ExtenderHelper","waiting","initExpressionExtender","view","_connections","_observed","_updateObservable","updateObservable","_operations","_getter","getter","_initialized","executeOperationsPure","executeOperations","observed","operation","executeOperationsChunk","operations","ADD","REMOVE","EXISTS","action","connections","newConnections","viewIndex","valueA","valueB","filterCallback","filterString","model","rootElement","queryName","isRecursive","dataItem","_blocks","noConflict","amd"],"mappings":"CAUC,SAASA,EAAQC,GACM,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAC9CD,OAAOC,QAAUF,EAAQD,GAAQ,GAEjCC,EAAQD,IAIQ,mBAAXI,QAAyBA,OAASC,KAAM,SAASL,EAAQM,GA40BhE,QAASC,GAAOC,EAAGC,EAAGC,EAAQC,EAAQC,GAOpC,GANIA,KAAc,IAChBA,GAAY,GAKVJ,IAAMC,EACR,MAAa,KAAND,GAAW,EAAIA,GAAK,EAAIC,CAIjC,IAAS,MAALD,GAAkB,MAALC,EACf,MAAOD,KAAMC,CAIXD,aAAaK,KACfL,EAAIA,EAAEM,UAEJL,YAAaI,KACfJ,EAAIA,EAAEK,SAIR,IAAIC,GAAYC,EAASC,KAAKT,EAC9B,IAAIO,GAAaC,EAASC,KAAKR,GAC7B,OAAO,CAGT,QAAQM,GAEN,IAAK,kBAGH,MAAOP,IAAKU,OAAOT,EACrB,KAAK,kBAGH,MAAOD,KAAMA,EAAIC,IAAMA,EAAW,IAAND,EAAU,EAAIA,GAAK,EAAIC,EAAID,IAAMC,CAC/D,KAAK,gBACL,IAAK,mBAIH,OAAQD,IAAMC,CAEhB,KAAK,kBACH,MAAOD,GAAEW,QAAUV,EAAEU,QACnBX,EAAER,QAAUS,EAAET,QACdQ,EAAEY,WAAaX,EAAEW,WACjBZ,EAAEa,YAAcZ,EAAEY,WAGxB,GAAgB,gBAALb,IAA6B,gBAALC,GACjC,OAAO,CAMT,KADA,GAAIa,GAASZ,EAAOY,OACbA,KAGL,GAAIZ,EAAOY,IAAWd,EACpB,MAAOG,GAAOW,IAAWb,CAM7B,IAAIc,GAAQf,EAAEgB,YACZC,EAAQhB,EAAEe,WACZ,IAAID,IAAUE,KAAWZ,EAAOa,WAAWH,IAAWA,YAAiBA,IACnEV,EAAOa,WAAWD,IAAWA,YAAiBA,KAC/C,eAAiBjB,IAAK,eAAiBC,GACxC,OAAO,CAITC,GAAOiB,KAAKnB,GACZG,EAAOgB,KAAKlB,EAEZ,IAAImB,GAAO,EACTC,GAAS,CAEX,IAAiB,kBAAbd,GAIF,GAFAa,EAAOpB,EAAEc,OACTO,EAASD,GAAQnB,EAAEa,OAGjB,KAAOM,MACCC,EAAUjB,EAAYL,EAAOC,EAAEoB,GAAOnB,EAAEmB,GAAOlB,EAAQC,EAAQC,GAAaJ,EAAEoB,KAAUnB,EAAEmB,WAK/F,CAEL,IAAK,GAAIE,KAAOtB,GACd,GAAIK,EAAOkB,IAAIvB,EAAGsB,KAEhBF,MAEMC,EAAShB,EAAOkB,IAAItB,EAAGqB,KAASlB,EAAYL,EAAOC,EAAEsB,GAAMrB,EAAEqB,GAAMpB,EAAQC,EAAQC,GAAaJ,EAAEsB,KAASrB,EAAEqB,MACjH,KAKN,IAAID,EAAQ,CACV,IAAKC,IAAOrB,GACV,GAAII,EAAOkB,IAAItB,EAAGqB,KAAUF,IAC1B,KAGJC,IAAUD,GAOd,MAFAlB,GAAOsB,MACPrB,EAAOqB,MACAH,EAkBT,QAASI,GAAOC,EAAMC,GACpB,GACIN,GACAO,EAFAC,EAAQhC,KAAKiC,SAejB,OAXIzB,GAAO0B,SAASL,GAClBE,EAAOC,EAAMG,UAAUN,IAEvBC,EAAOD,EACPE,EAAOC,GAGThC,KAAKiC,UAAYD,EAAMG,UAAUF,UACjCT,EAASO,EAAKK,MAAMpC,KAAM8B,OAC1B9B,KAAKiC,UAAYD,EAEVR,EAcT,QAASa,GAAcC,EAAUC,GAC/B,GAAe,MAAXA,EAAiB,CACnB,GAAIC,GAAcF,CAClBA,GAAW,SAASG,EAAOC,EAAOC,GAChC,MAAOH,GAAY5B,KAAK2B,EAASE,EAAOC,EAAOC,IAGnD,MAAOL,GA9/BT,GAAI3B,GAAWiC,OAAOT,UAAUxB,SAC5BkC,EAAQC,MAAMX,UAAUU,MACxBE,EAASH,OAAOT,UAAUa,eAC1BC,KACAC,KAKA1C,EAAS,SAAUiC,GACrB,MAAIS,GAAKC,mBACkB,IAArBC,UAAUnC,OACLiC,EAAKG,iBAEPH,EAAKI,iBAAiBb,GAGxBA,EAGTjC,GAAO+C,QAAU,QACjB/C,EAAO0C,KAAOA,EAUd1C,EAAOgD,OAAS,WACd,GAAIC,GAAKC,EAAaC,EAAM9B,EAAM+B,EAASC,EACzCC,EAASV,UAAU,OACnBW,EAAI,EACJ9C,EAASmC,UAAUnC,OACnB+C,GAAO,CAeT,KAZsB,iBAAXF,KACTE,EAAOF,EACPA,EAASV,UAAU,OAEnBW,EAAI,GAIgB,gBAAXD,IAAwBtD,EAAOa,WAAWyC,KACnDA,MAGS7C,EAAJ8C,EAAYA,IAEjB,GAAgC,OAA3BH,EAAUR,UAAUW,IAEvB,IAAKlC,IAAQ+B,GACXH,EAAMK,EAAOjC,GACb8B,EAAOC,EAAQ/B,GAGXiC,IAAWH,IAKXK,GAAQL,IAASnD,EAAOyD,cAAcN,KAAUD,EAAclD,EAAO0D,QAAQP,MAC3ED,GACFA,GAAc,EACdG,EAAQJ,GAAOjD,EAAO0D,QAAQT,GAAOA,MAErCI,EAAQJ,GAAOjD,EAAOyD,cAAcR,GAAOA,KAI7CK,EAAOjC,GAAQrB,EAAOgD,OAAOQ,EAAMH,EAAOF,IAG1CG,EAAOjC,GAAQ8B,EAOvB,OAAOG,IAyBTtD,EAAO2D,KAAO,SAASxB,EAAYL,EAAUC,GAC3C,GAAkB,MAAdI,EAAJ,CAIA,GAAI1B,GAAS0B,EAAW1B,OACpBmD,EAAa,GACbF,EAA2B,gBAAVjD,EAIrB,IAFAqB,EAAWD,EAAcC,EAAUC,GAE/B2B,EACF,OAASE,EAAanD,GAChBqB,EAASK,EAAWyB,GAAaA,EAAYzB,MAAgB,QAKnE,KAAKyB,IAAczB,GACjB,GAAIL,EAASK,EAAWyB,GAAaA,EAAYzB,MAAgB,EAC/D,QAqBRnC,EAAO6D,UAAY,SAAS1B,EAAYL,EAAUC,GAChD,GAAkB,MAAdI,EAAJ,CAIA,GAAI1B,GAAS0B,EAAW1B,OACtBmD,EAAazB,EAAW1B,OACxBqD,EAAuC,gBAAVrD,EAI/B,IAFAqB,EAAWD,EAAcC,EAAUC,GAE/B+B,EACF,OAASF,GAAc,GACrB9B,EAASK,EAAWyB,GAAaA,EAAYzB,OAG/C,KAAKyB,IAAczB,GACjBL,EAASK,EAAWyB,GAAaA,EAAYzB,KAKnDnC,EAAO2D,MAAM,YAAa,WAAY,SAAU,SAAU,OAAQ,UAAW,SAASI,GACpF/D,EAAO,KAAO+D,GAAQ,SAASC,GAC7B,MAAO7D,GAASC,KAAK4D,IAAQ,WAAaD,EAAO,OAMhD/D,EAAOiE,YAAYrB,aACtB5C,EAAOiE,YAAc,SAASD,GAC5B,SAAUA,IAAOzB,EAAOnC,KAAK4D,EAAK,aAKlB,kBAAV,MACRhE,EAAOa,WAAa,SAASmD,GAC3B,SAAUA,GAAsB,kBAARA,MAqB5BhE,EAAO0D,QAAUpB,MAAMoB,SAAW,SAASzB,GACzC,MAA+B,kBAAxB9B,EAASC,KAAK6B,IAGvBjC,EAAOgD,OAAOhD,GAaZkE,KAAM,aAENC,QAAS,SAASC,EAAW5C,EAAOG,GAiBlC,OAhBKiB,UAAUnC,OAAS,GAAKT,EAAOyD,cAAcjC,IAA+B,GAApBoB,UAAUnC,UACrEkB,EAAYH,EACZA,EAAQ4C,EACRA,EAAYC,QAGVD,GACF5C,EAAMG,UAAY2C,EAAaF,EAAUzC,WACzCH,EAAMG,UAAUhB,YAAca,EAC9BxB,EAAOgD,OAAOxB,EAAMG,UAAWA,GAC/BH,EAAMG,UAAUF,UAAY2C,EAC5B5C,EAAMG,UAAUP,OAASA,GAChBO,IACTH,EAAMG,UAAYA,GAGbH,GAmCTuC,KAAM,SAAS9B,GACb,MAAIA,aAAiBK,OACZ,QAEW,gBAATL,IAAqBA,YAAiB5B,QACxC,SAEW,gBAAT4B,IAAqBA,YAAiBsC,QACxC,SAELtC,YAAiBuC,MACZ,OAEoB,oBAAzBrE,EAASC,KAAK6B,GACT,SAEK,OAAVA,EACK,OAEKoC,SAAVpC,EACK,YAGLjC,EAAOa,WAAWoB,GACb,WAGLjC,EAAOyE,UAAUxC,GACZ,UAGF,UAkBTyC,GAAI,SAASzC,EAAO8B,GAClB,MAAInB,WAAUnC,OAAS,GAAKT,EAAOa,WAAWkD,GACrCA,EAAKpC,UAAUgD,cAAc1C,GAE/BjC,EAAO+D,KAAK9B,IAAU8B,GAuB/B7C,IAAK,SAAS8C,EAAK/C,GACjB,SAAU+C,IAAOzB,EAAOnC,KAAK4D,EAAK/C,KAGpC2D,SAAU,SAAS3C,GACjB,QAAgB,MAATA,GAAmBjC,EAAO6E,SAAS5C,IAAW6C,MAAM7C,KAG7D9B,SAAU,SAAS8B,GAEjB,GAAIjB,GAAS,EAIb,OAHIhB,GAAO4E,SAAS3C,KAClBjB,EAASiB,EAAM9B,YAEVa,GAqBT+D,OAAQ,SAAS9C,GACf,MAAIS,GAAKC,oBAAsBD,EAAKsC,aAAa/C,GACxCA,EAAMA,QAGXjC,EAAOiF,iBACFjF,EAAOiF,iBAAiBhD,GAE1BA,GAaTiD,QAAS,SAASC,EAASrD,EAAUC,GAgBnC,MAfAD,GAAWD,EAAcC,EAAUC,GAE/BoD,GAAWA,EAAQC,QACjBtD,GACFqD,EAAQxB,KAAK,WACX7B,EAAStC,QAGb2F,EAAUA,EAAQ,IAEdrD,GACFA,EAASqD,GAINA,GAuBTE,QAAS,SAASpD,GAMhB,GAAIjC,EAAOiE,YAAYhC,GACrB,MAAOI,GAAMjC,KAAK6B,EAEpB,IAAIjC,EAAOsF,WAAWrD,GAAQ,CAM5B,IAHA,GAAIjB,GAASsB,MAAML,EAAMxB,QACrByB,EAAQ,GACRzB,EAASwB,EAAMxB,SACVyB,EAAQzB,GACfO,EAAOkB,GAASD,EAAMC,EAExB,OAAOlB,GAET,MAAKhB,GAAO0D,QAAQzB,GAGbA,GAFGA,IAyBZsD,OAAQ,SAAStD,EAAOuD,GACtB,GAAIC,GAAkBD,CAGtB,OAFAA,GAAOA,GAAQ,KAEXxF,EAAO8E,MAAMY,WAAWzD,IACnBA,EAGLjC,EAAO0B,SAASO,IAAUjC,EAAO8E,MAAMa,SAAS1D,EAAM2D,OAAO3D,EAAMxB,OAAS,GAAI,KAC9EgF,EACKxD,EAAM4D,QAAQ,WAAYL,GAE5BvD,EAEFA,EAAQuD,GAkBjBnC,MAAO,SAASpB,EAAO6D,GACrB,GAAa,MAAT7D,EACF,MAAOA,EAGT,IACIoB,GACApC,EAFA8C,EAAO/D,EAAO+D,KAAK9B,EAIvB,IAAY,SAAR8B,EACF,MAAO9B,GAAMI,MAAM,EACd,IAAY,UAAR0B,EAAkB,CAEzBV,EADEpB,EAAMtB,cAAgByB,UAGhB,GAAIH,GAAMtB,WAGpB,KAAKM,IAAOgB,GACVoB,EAAMpC,GAAO6E,EAAY9F,EAAOqD,MAAMpB,EAAMhB,IAAM,GAAQgB,EAAMhB,EAElE,OAAOoC,GACF,GAAY,QAARU,EACT,MAAO,IAAIS,MAAKvC,EAAM8D,cAAe9D,EAAM+D,WAAY/D,EAAMgE,UAC3DhE,EAAMiE,WAAYjE,EAAMkE,aAAclE,EAAMmE,aAAcnE,EAAMoE,kBAC7D,IAAY,UAARtC,EACT,MAAO9B,GAAM9B,UACR,IAAY,UAAR4D,EAAkB,CAC3B,GAAIuC,GAAQ,EAYZ,OAXIrE,GAAM9C,SACRmH,GAAS,KAEPrE,EAAMzB,aACR8F,GAAS,KAEPrE,EAAM1B,YACR+F,GAAS,KAEXjD,EAAQ,GAAIkD,QAAOtE,EAAM3B,OAAQgG,GACjCjD,EAAMmD,UAAYvE,EAAMuE,UACjBnD,EAGT,MAAOpB,IAUTqD,WAAY,SAASrD,GACnB,GAAIqD,IAAa,CACjB,IAAIrD,IAC2B,mBAAlBwE,kBACTnB,EAAarD,YAAiB1C,QAAOkH,gBAEhB,mBAAZC,WAA4BpB,IACrCA,EAAarD,YAAiByE,YAE3BpB,GAActF,EAAO0B,SAASO,EAAM0E,OACvC,IACE1E,EAAM0E,KAAK,GACXrB,GAAa,EACb,MAAOsB,IAGb,MAAOtB,IAiBTuB,UAAW,SAAS5E,GAClB,SAAUA,GAA4B,IAAnBA,EAAM6E,WAoB3BrC,UAAW,SAASxC,GAClB,MAAOA,MAAU,GAAQA,KAAU,GAAiC,oBAAxB9B,EAASC,KAAK6B,IAU5D8E,SAAU,SAAS/C,GACjB,MAAOA,KAAQ5B,OAAO4B,IAwBxBP,cAAe,SAASO,GACtB,GAAI/C,EAKJ,KAAK+C,GAAsB,gBAARA,IAA2C,oBAAvB7D,EAASC,KAAK4D,IAA8BA,EAAI8C,UAAY9C,EAAIzE,QAAUyE,EAC/G,OAAO,CAGT,KAEE,GAAIA,EAAIrD,cAAgB4B,EAAOnC,KAAK4D,EAAK,iBAAmBzB,EAAOnC,KAAK4D,EAAIrD,YAAYgB,UAAW,iBACjG,OAAO,EAET,MAAOiF,GAEP,OAAO,EAKT,GAAInE,EAAQuE,qBACV,IAAK/F,IAAO+C,GACV,MAAOzB,GAAOnC,KAAK4D,EAAK/C,EAQ5B,KAAKA,IAAO+C,IAEZ,MAAeK,UAARpD,GAAqBsB,EAAOnC,KAAK4D,EAAK/C,IAG/CgG,SAAU,SAAShF,GACjB,MAAOgF,UAAShF,KAAWjC,EAAO8E,MAAMY,WAAWzD,KAGrD6C,MAAO,SAAS7C,GACd,MAAOjC,GAAO6E,SAAS5C,IAAUA,IAAUA,GAG7CiF,OAAQ,SAASjF,GACf,MAAiB,QAAVA,GAGTkF,YAAa,SAASlF,GACpB,MAAiBoC,UAAVpC,GAGTmF,WAEAC,OAAQ,SAASrD,EAAKsD,EAAMC,GAC1B,GACIlG,GADAa,EAAQ,CAOZ,KAJAqF,EAAe3E,UAAUnC,OAAS,EAAI8G,EAAevH,EAAOoH,QAC5DE,EAAOA,EAAKE,MAAM,KAClBnG,EAAOiG,EAAK,GAELjG,GAAM,CACX,GAAW,MAAP2C,EACF,MAAOuD,EAETvD,GAAMA,EAAI3C,GACVA,EAAOiG,IAAOpF,GAEhB,MAAO8B,IAGTyD,KAAM,SAASC,EAAOC,EAAQC,GAC5B,GAAInH,GAASiH,EAAMjH,MAInB,OAHIkH,IAAU,GAAKC,GAAU,GAAcnH,EAATkH,GAA4BlH,EAATmH,IACnDF,EAAMC,GAAUD,EAAME,IAAWF,EAAME,GAAUF,EAAMC,GAAS,IAE3DD,GAGTG,KAAM,SAASH,EAAOI,EAAaC,GAWjC,MAVID,IAAeC,IACEA,GAAfD,GACFC,IAEFL,EAAMM,OAAOD,EAAa,EAAGL,EAAMI,IAC/BA,EAAcC,GAChBD,IAEFJ,EAAMM,OAAOF,EAAa,IAErBJ,GA8BTO,KAAM,SAAS1G,EAAMQ,GACnB,GAEImG,GAFA1G,EAAQ,aACRF,EAAOe,EAAMjC,KAAKwC,UAAW,EAgBjC,OAbAsF,GAAQ,WACN,KAAM1I,eAAgB0I,IACpB,MAAO3G,GAAKK,MAAMG,EAAST,EAAK6G,OAAO9F,EAAMjC,KAAKwC,YAEpDpB,GAAMG,UAAYJ,EAAKI,SACvB,IAAIyG,GAAO,GAAI5G,GAEXR,EAASO,EAAKK,MAAMwG,EAAM9G,EAAK6G,OAAO9F,EAAMjC,KAAKwC,YACrD,OAAIR,QAAOpB,KAAYA,EACdA,EAEFoH,IAuBX1I,OAAQ,SAASC,EAAGC,EAAGG,GAIrB,MAFAJ,GAAIK,EAAO+E,OAAOpF,GAClBC,EAAII,EAAO+E,OAAOnF,GACXF,EAAOC,EAAGC,QAAWG,MAoIhCC,EAAOqI,GAAK,SAAUnG,GACpB,OACEA,MAAOA,EACPoG,yBAA0B,kBAI9BtI,EAAOuI,MAAQ,WACb,MAAOvI,GAAOuI,OAGhBvI,EAAOwI,KAAO,WACZ,MAAOxI,GAAOwI,KAsBhB,IAAIlE,GAAelC,OAAOqG,QAAU,SAAS9G,GAC3C,GAAIH,GAAQ,YAEZ,OADAA,GAAMG,UAAYA,EACX,GAAIH,GAGb,KAAK,GAAIP,MAAQwB,GACf,KAEFA,GAAQuE,qBAA8B,KAAP/F,EAgB/B,YAEF,WA6CE,QAASyH,GAAezG,EAAO0G,GAC7BnJ,KAAKoJ,OAAS3G,EACdzC,KAAKqJ,eAAiBxE,OAClBsE,IACFnJ,KAAKsJ,QAAUH,EACfnJ,KAAKuJ,eAAiB/I,EAAOyE,UAAUkE,EAAOK,SAAWL,EAAOK,QAAUL,EAAOI,eACjFvJ,KAAKyJ,eAAiBN,EAAOO,YAAcP,EAAOM,eAClDzJ,KAAK2J,QAAUR,EAAOQ,SA+O1B,QAASC,GAAMC,EAAU3B,EAAO4B,EAAUvH,GACxCuH,EAAWC,EAAc1H,cAAcyH,EAAUvH,IAAYuH,CAU7D,KARA,GAKIrH,GACAhB,EANAD,KACAuC,EAAI,EACJ9C,EAASiH,EAAMjH,OACf+I,EAAsBxJ,EAAOa,WAAWyI,GACxCG,EAA0B,MAAZH,EAIP7I,EAAJ8C,EAAYA,IACjBtB,EAAQyF,EAAMnE,GACdtC,EAAMwI,EAAcD,EAAsBF,EAASrH,EAAOsB,EAAGmE,GAASzF,EAAMqH,GAAYrH,EACxFoH,EAASrI,EAAQC,EAAKgB,EAAOyF,EAAO4B,EAEtC,OAAOtI,GAo9BT,QAAS0I,GAAmBrI,EAAMiG,EAAMqC,EAAgB5F,EAAM6F,GAC5D,GAAIC,GAAOC,EAAgBC,aACzBH,OAAQA,EACRvI,KAAMA,EACNiG,KAAMA,EACNqC,eAAgBA,GAAkB,IAClCrI,MAAO0I,EAAYL,QAAuBrI,KAC1C2I,QAASD,EACTjG,KAAMA,GAAQ,EACdmG,cAAeA,IAGbC,EAAa,GAAIC,WACd,SAAU,OAAQ,cAAe,QAAS,iBAAkB,kBAAmB,qBAAsB,cAAe,mBAAoB,gBAAiB,QAAS,MACnK,oBACAP,GACC7J,EAAQA,EAAQqK,EAAkBC,EAAO5B,EAAgBoB,EAAiBJ,EAAoBa,EAAczH,EAAkByG,EAAelH,EAAOmI,EACrJC,EAKN,OAJIb,KACFS,EAAiBhJ,EAAO,cAAgB8I,GAE1CA,EAAWxI,UAAU+I,QAAUP,EAAWxI,UAAUgC,KAC7CwG,EA2IT,QAASK,GAAI9C,EAAOpG,GAClB,GAAIA,EAAKb,OAAS,EAAG,CACnB,GAAIyB,GAAQyI,EAAUC,eAAetJ,EAAK,GAAIoG,EAAMjH,QAChDoK,EAAQxI,EAAMjC,KAAKkB,EAAMqJ,EAAUG,WAAWxJ,EAAK,IAAM,EAAI,GAC7DiC,EAAI,CAER,IAAIrB,GAASwF,EAAMjH,OACjB,KAAO8C,EAAIsH,EAAMpK,OAAQ8C,IACvBmE,EAAMxF,EAAQqB,GAAKsH,EAAMtH,OAG3BmE,GAAMM,OAAOpG,MAAM8F,GAAQxF,EAAO,GAAGiG,OAAO0C,IAGhD,MAAOnD,GAGT,QAASqD,GAAQrD,EAAOpG,GACtB,MAAOkJ,GAAI9C,EAAO1H,EAAOgL,QAAQ1J,GAAM,IAyBzC,QAAS2J,GAAiBhJ,EAAO0G,GAC/BnJ,KAAKiC,UAAUQ,EAAO0G,GAkLxB,QAASuC,GAAOC,EAAQ7J,GAKtB,IAJA,GAAI8J,GACA7H,EAAI,EAGDA,EAAIjC,EAAKb,OAAQ8C,IAGtB6H,EAAQ,GAAI7E,QAAO,MAAQhD,EAAI,MAAO,MACtC4H,EAASA,EAAOtF,QAAQuF,EAAO9J,EAAKiC,GAGtC,OAAO4H,GAIT,QAASE,GAAmBpJ,EAAO0G,GACjCnJ,KAAKiC,UAAUQ,EAAO0G,GAgIxB,QAAS2C,GAAQ/J,EAAMD,GACrB,MAAO,YACL,MAAOC,GAAKK,MAAMpC,KAAM8B,EAAK6G,OAAO9F,EAAMjC,KAAKwC,cAInD,QAAS2I,GAAMhK,EAAMiK,EAAMlK,GAEzB,MADAkK,GAAOA,GAAQ,EACRC,WAAW,WAChB,MAAOlK,GAAKK,MAAM,KAAMN,IACvBkK,GAeL,QAASf,GAAiBxI,EAAO0G,GAC/BnJ,KAAKiC,UAAUQ,EAAO0G,GAgCxB,QAAS+C,GAAezJ,EAAO0G,GAC7BnJ,KAAKiC,UAAUQ,EAAO0G,GAmFxB,QAASgD,GAAiB1J,EAAO0G,GAC/BnJ,KAAKiC,UAAUQ,EAAO0G,GAkHxB,QAASiD,GAAgB3K,GACvB,MAAO,YACL,GAAIgB,GAAQjC,EAAO+E,OAAOvF,KAAKoJ,QAAUpJ,KAAKqM,MAAQrM,KACtD,OAAIQ,GAAOiB,GACFjB,EAAO+E,OAAO/E,EAAOiB,GAAKW,MAAMK,GAAQA,GAAOkG,OAAOnI,EAAOqF,QAAQzC,eAE5EX,EAAQjC,EAAOiC,GACfA,EAAQA,EAAMhB,GAAKW,MAAMK,EAAOjC,EAAOqF,QAAQzC,YACxCX,EAAMjB,UAAYiB,EAAMA,UAOrC,QAAS6J,KACP,OACElI,WAAY,aACZnD,OAAQ,SACRO,OAAQ,SACR8C,oBAAqB,sBACrB3B,WAAY,aACZ4J,WAAY,aACZ9J,MAAO,QACP+J,YAAa,EACbC,aAAc,4BACdC,KAAM,EACNC,KAAM,KAGN7K,QACA8K,aACAC,qBACAC,oBACAC,iBACAC,gBACAC,oBACAC,mBACAC,cAAe,IAInB,QAASC,KACP,GASIC,GATAC,GACF9L,OAAQ,SACR+L,QAAQ,EACRlC,UAEE3I,EAAQ,EACR2I,EAAQiC,EAAQjC,MAChBmC,KACAC,EAAmB,CAGvB,QACEnL,SAAU,SAAUoL,GAClB,GAAIC,IAAU,CAEd,QAAQD,EAAe7L,MACrB,IAAK,MACHwJ,EAAM/J,KAAK,OACX,MACF,KAAK,KACH+J,EAAM/J,KAAK,OACX,MACF,KAAK,MACC+L,KAAmB,IACrBC,EAAQC,QAAS,GAEnBF,EAAiBxI,OACjBwG,EAAM7C,OAAO6C,EAAMpK,OAAS,EAAG,EAAG,KAClCwM,GACA,MACF,SACEE,GAAU,EACwB9I,SAA9B6I,EAAeE,aACM/I,SAAnBwI,GAAgCA,KAAmB,IACrDC,EAAQC,QAAS,GAEnBF,EAAiBK,EAAeE,WAChCH,IACApC,EAAM/J,KAAKgM,EAAQ9L,OAASkB,GAC5BgL,EAAeH,QAAUG,EAAeH,QAAU,IAAIlH,QAAQ,qBAAsB,SAAUwH,GAC5F,GAAIrM,GAAS,EAIb,OAHgB,KAAZqM,EAAM,KACRrM,EAAS,KAEJA,KAGXgM,EAAalM,KAAKd,EAAOkL,OAAO,cAAe4B,EAAQ9L,OAAQkB,IAInE,MADAA,KACOiL,GAGTG,IAAK,SAAUC,GACUlJ,SAAnBwI,GAAgCA,KAAmB,IACrDC,EAAQC,QAAS,GAGnBQ,EAAcC,uBAAyBR,EAAaS,KAAK,IACrDR,EAAmB,IAarBM,EAAcG,YAAa,EAE3BH,GAAeT,EAAQC,OAAS,SAAW,aAAe,cAAgBjD,EAAgB4D,WAAWZ,GACjGA,EAAQC,SACVD,EAAQC,QAAS,EACjBQ,EAAcI,oBAAsB7D,EAAgB4D,WAAWZ,OAOzE,QAAShK,GAAiBiJ,GAgBxB,IAfA,GAYImB,GACA3L,EAbAuL,EAAUhB,IACV8B,EAAqB7B,EAAW8B,UAChC9J,EAAOgI,EAAW+B,MAClBC,EAAQH,GAAsB,QAAS,WAAiC,GAApB7B,EAAW+B,MAAa,QAAU,UACtF5L,EAAQ0L,EAAqB,GAAK,EAClCI,KACAC,EAAoBL,EAAqBvJ,OAAYuI,IACrDsB,EAAY,EACZC,EAAY,EACZC,GAAuB,EACvBC,EAAW,GACXC,GAAe,EAIZvC,EAAWjD,SAChB9I,EAAO2D,KAAKoK,EAAO,SAAUhK,EAAMwK,GAmBjC,OAlBuC,UAAnCxC,EAAWyC,YAAYC,WACrB3B,EAAQZ,OACVmC,GAAYvE,EAAgBoC,MAAOhK,MAAOgM,KAEvB,OAAjBpB,EAAQX,OACVkC,GAAYvE,EAAgBqC,MAAOjK,MAAOiM,KAE5CrB,EAAQZ,KAAO,EACfY,EAAQX,KAAO,MAGjBe,EAAiBnB,EAAWyC,YAAYtM,EAAO6B,EAAMgI,EAAYiC,EAAiBK,GAClFA,EAAW,GAEQ,IAAfE,GACFzB,EAAQxL,KAAKR,KAAKoM,EAAe5L,UAG3B4L,EAAe7L,MACrB,IAAK,OAIH,YAHKyL,EAAQZ,OACXY,EAAQZ,KAAO,OAAShK,GAG5B,KAAK,OAIH,YAHqB,OAAjB4K,EAAQX,OACVW,EAAQX,KAAO,OAASjK,GAG5B,KAAK,UAEH,YADA4K,EAAQ4B,SAAW5B,EAAQ4B,SAG/BJ,GAAe,GAEXV,IAAuBK,EAAkBnM,SAASoL,MACjC,IAAfqB,GACErB,EAAewB,UACjB5B,EAAQ4B,SAAW5B,EAAQ4B,SAI1Bd,IACH7J,EAAO,SAGyBM,SAA9B6I,EAAeE,WACjBN,EAAQd,YAAc9J,GAAS,EACrBA,IACVkM,GAAuB,GAGrBlB,EAAeyB,YACjB7B,EAAQ/I,EAAO,eAAejD,KAAKoM,EAAeyB,YAEhDzB,EAAeH,QACjBD,EAAQ/I,EAAO,WAAWjD,KAAKoM,EAAeH,QAE5CG,EAAe0B,WACjB9B,EAAQ/I,EAAO,cAAcjD,KAAKoM,EAAe0B,cAK5B,QAAvB1B,EAAe7L,MAAyC,QAAvB6L,EAAe7L,MAAyC,WAAvB6L,EAAe7L,KACnF2M,EAAgBlN,KAAKiL,GACc,GAA1BiC,EAAgBvN,SACzBqM,EAAQd,aAAe,EACI,QAAvBkB,EAAe7L,KACjB6M,EAAYA,GAAahM,EAEzBiM,EAAYA,GAAajM,GAG7BA,GAASA,EAAQ,EACjB6J,EAAaA,EAAWjD,OAK1B,IAFAgE,EAAQ/F,SAAW8H,EAAqBlN,UAAUgD,cAAcoH,GAE5D6B,EAAoB,CACtB,OAAQ7J,GACN,IAAK,QACH+I,EAAQb,cAAe,CACvB,MACF,KAAK,SACHa,EAAQb,cAAe,EAI3B,MAAsB,gBAAX5M,SAAiD,gBAAnBA,QAAOC,SAC9CiC,EAAO,GAAI6I,WAAU,SAAU,cAAcjC,OAAO2E,EAAQxL,KAAK,IAAKyK,EAAW+C,gBAAgBhC,IAC1F,WACL,MAAOvL,GAAKK,MAAMpC,MAAOQ,GAAQmI,OAAOnI,EAAOqF,QAAQzC,eAGpD,GAAIwH,WAAU,cAAcjC,OAAO2E,EAAQxL,KAAK,IAAKyK,EAAW+C,gBAAgBhC,IAWvF,MATAmB,GAAkBX,IAAIR,GAElBwB,IACFxB,EAA0B,iBAAEhM,KAAKgM,EAAQ9L,OAAS8L,EAAQd,YAAc,UACxEc,EAAsB,aAAEhM,KAAKgM,EAAQ9L,OAAS8L,EAAQd,YAAc,SAAWc,EAAQ7K,MAAQ,OAE7FmM,IACFtB,EAAQd,YAAc,GAEF,gBAAX3M,SAAiD,gBAAnBA,QAAOC,SAC9CiC,EAAO,GAAI6I,WAAU,SAAU0C,EAAQf,YAAaA,EAAW+C,gBAAgBhC,IACxE,SAAU3K,GACf,MAAOZ,GAAKvB,EAAQmC,KAGjB,GAAIiI,UAAS0C,EAAQf,WAAYA,EAAW+C,gBAAgBhC,IAMrE,QAASiC,GAAKC,GACV,GAAIC,IACAH,gBAAiBhF,EAAgBkF,EAAWP,WAAa3E,EAAgBoF,kBAEzEnD,GACAjD,QAASmG,EACTT,YAAaQ,EACbnB,WAAW,EACXC,MAAOkB,EAAWrG,OAAO5E,KAE7B,OAAOgI,GAIX,QAAStD,GAAOpH,GACZ,GAAI2N,GAAaG,EAAY9N,EAC7B,IAAIrB,EAAOa,WAAWmO,GAAa,CAC/B,GAAIjD,GAAagD,EAAKC,EACtB,IAAKhP,EAAOqB,GAGR,MAAOyB,GAAiBiJ,EAFxB/L,GAAOqB,GAAQyB,EAAiBiJ,IAjzE9C,GAAIqD,GAAWpP,EAAOqI,EACtBrI,GAAOqI,GAAK,SAAUnG,GACpB,OACEA,MAAOA,EACPoG,yBAA0B,kBAI9BtI,EAAOuI,MAAQ,WACb,MAAOvI,GAAOuI,OAGhBvI,EAAOwI,KAAO,WACZ,MAAOxI,GAAOwI,KAGhB,IAAImC,IACFG,WAAY,SAAUuE,GACpB,MAAOA,IAAYrP,EAAOuI,OAAS8G,GAAYrP,EAAOwI,MAAS6G,GAAiD,iBAArCA,EAAS/G,0BAGtFsC,eAAgB,SAAU3I,EAAOxB,GAC/B,MAAIwB,IAASjC,EAAOuI,MACX,EACoC,iBAAlCtG,EAAMqG,yBACRrG,EAAMC,MAERzB,IAILuJ,IAsBNtB,GAAe/G,WACb2N,0BAA2B,wBAC3BC,YAAa7G,EAMb3E,KAAM,WACJ,MAAO,QAQTW,GAAI,SAAUqJ,GAEZ,MADAvO,MAAKgQ,WAAWxP,EAAO0E,GAAGlF,KAAKoJ,OAAQmF,IAChCvO,MAOTyC,MAAO,WACL,MAAOzC,MAAKoJ,QAOd6G,IAAK,WACH,GAAI1D,GAAa,GAAIvM,MAAK+P,YAAY/P,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAW5C,SAAW3J,KAAK2J,QACpB4C,GAMT2D,GAAI,WACF,GAAI3D,GAAa,GAAIvM,MAAK+P,YAAY/P,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAW7C,WAAa,KACjB6C,GAGT4D,IAAK,WACH,GAAI5D,GAAa,GAAIvM,MAAK+P,YAAY/P,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAW7C,WAAa,MACjB6C,GAGT/K,OAAQ,WACN,MAAOxB,MAAKoQ,MAAQpQ,KAAKwJ,QAAUxJ,KAAKwJ,SAG1CrF,KAAM,aAQNjE,OAAQ,SAAUuC,EAAOlC,GACvB,GAAIgM,GAAa,GAAIvM,MAAK+P,YAAY/P,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAWyD,WAAWxP,EAAON,OAAOF,KAAKoJ,OAAQ3G,EAAOlC,IACjDgM,GAGTnH,SAAU,WACR,MAAOpF,MAAKqQ,kBAAkB7P,EAAO4E,SAASpF,KAAKoJ,UAGrDzI,SAAU,WACR,MAAO,IAAI8K,GAAiBjL,EAAOG,SAASX,KAAKoJ,UAGnDvD,QAAS,WACP,MAAO,IAAIyK,GAAoB9P,EAAOqF,QAAQ7F,KAAKyC,WAGrDoB,MAAO,SAAUyC,GACf,MAAO9F,GAAOA,EAAOqD,MAAM7D,KAAKoJ,OAAQ9C,KAG1C0J,WAAY,SAAUxO,GAIpB,OAHIxB,KAAK2J,UACPnI,GAAUA,GAEJxB,KAAKyJ,gBACX,IAAK,MACHzJ,KAAKwJ,QAAUxJ,KAAKuJ,gBAAkB/H,CACtC,MACF,KAAK,KACHxB,KAAKwJ,QAAUxJ,KAAKuJ,gBAAkB/H,CACtC,MACF,SACExB,KAAKwJ,QAAUhI,EAGnBxB,KAAK2J,SAAU,EACf3J,KAAKyJ,eAAiB5E,QAGxBwL,kBAAmB,SAAU7O,GAC3B,GAAI+K,GAAa,GAAIvM,MAAK+P,YAAY/P,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAWyD,WAAWxO,GACf+K,IAIX/L,EAAOgD,OAAOhD,GACZ+P,QAAS,SAAU9N,GACjB,GAAa,MAATA,EACF,OAAO,CAET,IAAIjC,EAAO0D,QAAQzB,IAAUjC,EAAO0B,SAASO,IAAUjC,EAAOiE,YAAYhC,GACxE,OAAQA,EAAMxB,MAEhB,KAAK,GAAIQ,KAAOgB,GACd,MAAIjC,GAAOkB,IAAIe,EAAOhB,IACb,GAEF,CAET,QAAO,IAGT,IAAIwN,GAAW,SAAUxM,GACzB,MAAOA,IAGHM,EAASH,OAAOT,UAAUa,eAG5BwN,EAAYC,KAAKC,IACjBC,EAAOF,KAAKE,IAEhBnQ,GAAOgD,OAAOhD,GACZoQ,MAAO,SAAUC,EAAO/C,EAAKgD,GAC3BC,MAAQF,GAAS,EACjBC,EAAsB,gBAARA,GAAmBA,GAASA,GAAQ,EAEvC,MAAPhD,IACFA,EAAM+C,EACNA,EAAQ,EAMV,KAJA,GAAInO,GAAQ,GACRzB,EAASuP,EAAU,EAAGG,GAAM7C,EAAM+C,IAAUC,GAAQ,KACpDtP,EAASsB,MAAM7B,KAEVyB,EAAQzB,GACfO,EAAOkB,GAASmO,EAChBA,GAASC,CAEX,OAAOtP,IAGTwP,QAAS,SAAUrO,EAAYmH,EAAUvH,GACvC,MAAOqH,GAAM,SAAUpI,EAAQC,EAAKgB,GAC7BM,EAAOnC,KAAKY,EAAQC,KACvBD,EAAOC,OAETD,EAAOC,GAAKH,KAAKmB,IAChBE,EAAYmH,EAAUvH,IAG3B0O,QAAS,SAAUtO,EAAYmH,EAAUvH,GACvC,MAAOqH,GAAM,SAAUpI,EAAQC,GACxBsB,EAAOnC,KAAKY,EAAQC,KACvBD,EAAOC,GAAO,GAEhBD,EAAOC,MACNkB,EAAYmH,EAAUvH,IAG3B2O,OAAQ,SAAUvO,EAAYL,EAAUC,GACtC,GACI4O,GACAC,EACA5P,EACArB,EACAC,EALAa,EAASqB,EAAWA,EAASrB,OAAS,CAW1C,OAJIT,GAAOyD,cAAc3B,KACvBA,GAAYA,GACZrB,EAAS,GAEPT,EAAO0D,QAAQ5B,GACbrB,EAAS,EACJ0B,EAAW0O,KAAK,SAAUC,EAAMC,GACrC,IAAKxN,EAAI,EAAGA,EAAI9C,EAAQ8C,IAGtB,GAFAqN,EAAiB9O,EAASyB,GAC1BoN,EAAMC,EAAeD,IAAMC,EAAeD,IAAIK,cAAgB,MACnD,QAAPL,IAGJhR,EAAImR,EAAKF,EAAeK,OACxBrR,EAAImR,EAAMH,EAAeK,OACrBtR,IAAMC,GAER,MADAoB,GAASrB,EAAIC,EAAI,EAAI,GACP,QAAP+Q,GAAiB3P,EAASA,IAKlCmB,GAGTL,EAAWyH,EAAc1H,cAAcC,EAAUC,GAC5CD,IACHA,EAAW2M,GAENzO,EAAOmC,GAAY+O,IAAI,SAAUjP,EAAOC,EAAOiP,GACpD,OACElP,MAAOA,EACPC,MAAOA,EACPkP,SAAUtP,EAASG,EAAOC,EAAOiP,MAElCN,KAAK,SAAUC,EAAMC,GAGtB,GAFApR,EAAImR,EAAKM,SACTxR,EAAImR,EAAMK,SACNzR,IAAMC,EAAG,CACX,GAAID,EAAIC,GAAWyE,SAAN1E,EAAiB,MAAO,EACrC,IAAQC,EAAJD,GAAe0E,SAANzE,EAAiB,MAAO,GAEvC,MAAOkR,GAAK5O,MAAQ6O,EAAM7O,QACzBgP,IAAI,SAASjP,WAuBlB,IAAIiI,MAEA7H,EAAQC,MAAMX,UAAUU,MAG1BgP,GACFnF,KAAM,WACJ,OACE7K,KAAM,OACNC,MAAO,UAIX6K,KAAM,WACJ,OACE9K,KAAM,OACNC,MAAO,UAIXqO,IAAK,WACH,OACEtO,KAAM,MACNC,UAIJoO,GAAI,WACF,OACErO,KAAM,KACNC,UAIJmO,IAAK,WACH,OACEpO,KAAM,MACNC,UAIJoN,QAAS,WACP,OACErN,KAAM,UACNC,UAKN,KAAK,GAAIL,KAAOoQ,GACdA,EAAkBpQ,GAAKwN,SAAWxN,CAGpC,IAAIyB,GAAO1C,EAAO0C,KAEd6G,GACF1H,cAAe,SAAUC,EAAUC,GACjC,GAAuB,gBAAZD,GAAsB,CAC/B,GAAIwP,GAAYxP,CAChB,OAAO,UAAUG,GACf,MAAOA,GAAMqP,IAGjB,GAAe,MAAXvP,EAAiB,CACnB,GAAIC,GAAcF,CAClBA,GAAW,SAAUG,EAAOC,EAAOC,GACjC,MAAOH,GAAY5B,KAAK2B,EAASE,EAAOC,EAAOC,IAGnD,MAAOL,IAGTyP,cAAe,SAAUzP,EAAUC,GACjC,MAAK/B,GAAOa,WAAWiB,GAGhByH,EAAc1H,cAAcC,EAAUC,GAFpCD,GAKX0P,WAAY,SAAU1P,EAAUC,GAQ9B,MAAOwH,GAAc1H,cAAcC,EAAUC,IAG/C0P,cAAe,SAAU3P,EAAUC,GACjC,MAAI/B,GAAOa,WAAWiB,IAAa9B,EAAO0B,SAASI,GAC1CyH,EAAc1H,cAAcC,EAAUC,GAExCwH,EAAcmI,qBAAqB5P,IAG5C6P,cAAe,SAAU7P,EAAU8P,EAAM7P,GACvC,MAAI/B,GAAOa,WAAWiB,IAAa9B,EAAO0B,SAASI,GAC1CyH,EAAc1H,cAAcC,EAAUC,GAExCwH,EAAc1H,cAAcC,EAAUC,IAG/C2P,qBAAsB,SAAUG,GAC9B,MAAO,UAAU5P,GACf,MAAOsH,GAAcuI,8BAA6B,EAAO7P,EAAO4P,KAIpEC,6BAA8B,SAAU9Q,EAAQiB,EAAO8P,GACrD,GAAIA,EAAiBd,OAASc,EAAiBC,SAAU,CACvD,GAAIC,GAAeF,EAAiB9P,KAEpC,QADAA,EAAQA,EAAM8P,EAAiBd,OACvBc,EAAiBC,SAAShB,eAChC,IAAK,KACHhQ,EAASiB,IAAUgQ,CACnB,MACF,KAAK,MACHjR,EAASiB,IAAUgQ,CACnB,MACF,KAAK,KACHjR,EAAiBiR,EAARhQ,CACT,MACF,KAAK,MACHjB,EAAkBiR,GAAThQ,CACT,MACF,KAAK,KACHjB,EAASiB,EAAQgQ,CACjB,MACF,KAAK,MACHjR,EAASiB,GAASgQ,CAClB,MACF,KAAK,aACHjR,EAAShB,EAAOiC,GAAOiQ,WAAWD,EAClC,MACF,KAAK,WACHjR,EAAShB,EAAOiC,GAAOkQ,SAASF,EAChC,MACF,KAAK,WACHjR,EAAyC,KAAhCiB,EAAMmQ,QAAQH,GAG3B,MAAOjR,GACF,GAAI+Q,EAAiBM,OAASN,EAAiBO,QAAS,CAC7D,GAAItR,GAAoC,MAA1B+Q,EAAiBM,MAC7B,OAAO,CAKP,KAHA,GAAIE,IAAgB,EAChB9R,EAASsR,EAAiBO,QAAQ7R,OAClC8C,EAAI,EACG9C,EAAJ8C,IACLgP,EAAgBhJ,EAAcuI,8BAA6B,EAAO7P,EAAO8P,EAAiBO,QAAQ/O,KAC9FgP,GAA2C,MAA1BR,EAAiBM,OAFrB9O,KAMnB,MAAOgP,GAGT,IAAK,GAAItR,KAAO8Q,GACd,GAAI9P,EAAMhB,KAAS8Q,EAAiB9Q,GAClC,OAAO,CAGX,QAAO,GAIX+J,QAAS,SAAUwH,EAASvQ,EAAOjB,GACjC,GAAIhB,EAAO0D,QAAQzB,IAAUjC,EAAOiE,YAAYhC,GAC9C,GAAIuQ,EACFxR,EAAOF,KAAKc,MAAMZ,EAAQiB,OAE1B,KAAK,GAAIsB,GAAI,EAAGA,EAAItB,EAAMxB,OAAQ8C,IAChCgG,EAAcyB,QAAQwH,EAASvQ,EAAMsB,GAAIvC,OAI7CA,GAAOF,KAAKmB,IAIlBsH,GAAckJ,mBAAqBlJ,EAAcoI,aAEjD,KAAK,GAAI1Q,KAAOsI,GACd7G,EAAKzB,GAAOsI,EAActI,EAI9B,IAAIyR,IACJC,SAAU,SAAmBzQ,GAE7B,OACAkL,YAAY,EACZ9L,MAAO,eACPqN,WAAY,SAAWzM,EAAQ,UAC/B6K,OAAQ,0BAA4B7K,EAAQ,WAAaA,EAAQ,oBAC/DyB,KAAM,SAAmBzB,GAE3B,GAAI0Q,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAZ,MAAO,WAAY,WACnBqN,WAAuB,KAAVzM,EAAa,GAAK0Q,EAAmB,GAClD7F,OAAQ,WAAa7K,EAAQ,iCAC7B0Q,cAAeA,IAGflT,OAAQ,SAAmBwC,EAAM6B,GAEjC,GAAI6O,GAAgB,YAAc1Q,EAAQ,aAAeA,EAAQ,sBACjE,QACAkL,YAAY,EACZ9L,MAAO,eAAgB,aACvBqN,YAAuB,KAAVzM,EAAa,GAAK0Q,EAAmB,IAAI,YAAc1Q,EAAQ,wBAA0BA,EAAQ,kBAAoBA,EAAQ,aAAeA,EAAQ,UAAYA,EAAQ,qGAAuGA,EAAQ,YAAcA,EAAQ,wBAA0BA,EAAQ,8BAAgCA,EAAQ,4DAA8DA,EAAQ,qMAAuMA,EAAQ,YAAcA,EAAQ,wBAA0BA,EAAQ,YACjtB6K,QAAiB,SAARhJ,EAAgB,sBAAwB7B,EAAQ,kBAAoBA,EAAQ,qCAAuCA,EAAQ,QAAUA,EAAQ,+BAAiCA,EAAQ,QAAUA,EAAQ,YAAcA,EAAQ,qBAAuBA,EAAQ,SAAS,KAAa,UAAR6B,EAAiB,sBAAwB7B,EAAQ,wEAA0EA,EAAQ,2BAA6BA,EAAQ,qCAAuCA,EAAQ,0CAA4CA,EAAQ,wBAA0BA,EAAQ,qBAAuBA,EAAQ,UAAU,IAC1mB0M,WAAoB,SAAR7K,EAAgB,oBAAsB7B,EAAQ,SAAWA,EAAQ,kBAAoBA,EAAQ,kBAAoBA,EAAQ,wBAA0BA,EAAQ,WAAW,KAAa,UAAR6B,EAAiB,sBAAwB7B,EAAQ,WAAaA,EAAQ,aAAeA,EAAQ,mBAAqBA,EAAQ,gCAAkCA,EAAQ,OAASA,EAAQ,WAAaA,EAAQ,sBAAwBA,EAAQ,SAAWA,EAAQ,MAAM,IAC1b0Q,cAAeA,IACbC,MAAO,SAAmB3Q,GAE5B,GAAI0Q,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAkL,YAAY,EACZ9L,MAAO,WAAY,WACnBqN,WAAY,SAAWzM,EAAQ,UAAoB,KAAVA,EAAa,GAAK0Q,EAAmB,IAC9E7F,OAAQ,eAAiB7K,EAAQ,kBAAoBA,EAAQ,wCAA0CA,EAAQ,0CAA4CA,EAAQ,mBACnK0Q,cAAeA,IACbE,OAAQ,SAAmB5Q,EAAM6B,EAAKgI,EAAWiC,EAAgBK,GAEnE,GAAIuE,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAZ,MAAO,WAAY,WACnBqN,YAAuB,KAAVzM,EAAa,GAAK0Q,EAAmB,KAAe,KAAV1Q,GAA2C,IAA3B8L,EAAgBvN,OAAa,IAAY,SAARsD,EAAgB,SAAW7B,EAAQ,OAAO,KAAa,UAAR6B,EAAiB,SAAW7B,EAAQ,OAAO,IAAI,IACtM6K,OAAQ,gBAAkB7K,EAAQ,8CAAgDmM,EAAW,KAAe,KAAVnM,GAA2C,IAA3B8L,EAAgBvN,OAAa,IAAY,SAARsD,EAAgB,SAAW7B,EAAQ,gBAAgB,KAAa,UAAR6B,EAAiB,SAAW7B,EAAQ,sBAAsB,IAAI,IACzQ0Q,cAAeA,IACbrK,MAAO,SAAmBrG,GAE5B,GAAI0Q,GAAgB,eAAiB1Q,EAAQ,aAAeA,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,MACzI,QACAZ,MAAO,WAAY,WACnBqN,WAAY,eAAiBzM,EAAQ,4BAA8BA,EAAQ,aAAeA,EAAQ,eAAiBA,EAAQ,iBAAmBA,EAAQ,gBAAkBA,EAAQ,WAAaA,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,WAAaA,EAAQ,OAAiB,KAAVA,EAAa,GAAK0Q,EAAmB,IACxU7F,OAAQ,eAAiB7K,EAAQ,iBAAmBA,EAAQ,yCAA2CA,EAAQ,0CAA4CA,EAAQ,wBAA0BA,EAAQ,aAAeA,EAAQ,YAAcA,EAAQ,mBAAqBA,EAAQ,gBAAkBA,EAAQ,kBAAoBA,EAAQ,WAAaA,EAAQ,aAC1V0Q,cAAeA,EACfG,YAAY,IACV7R,IAAK,SAAmBgB,GAE1B,OACAkL,YAAY,EACZ9L,MAAO,OACPqN,WAAY,SAAWzM,EAAQ,UAC/B0M,UAAW,SAAW1M,EAAQ,6BAA+BA,EAAQ,OAGrE8Q,OAAQ,SAAmB9Q,EAAM6B,EAAKgI,EAAWiC,GAEjD,OACA1M,MAAO,SAAU,QACjBqN,WAAY,aAAezM,EAAQ,4BAA8BA,EAAQ,MAAgB,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,IAAY,SAARsD,EAAgB,SAAW7B,EAAQ,OAAO,KAAa,UAAR6B,EAAiB,SAAW7B,EAAQ,OAAO,IAAI,KAAe,KAAVA,EAAa,OAASA,EAAQ,4CAA4C,IAC7S6K,OAAQ,gBAAkB7K,EAAQ,UAAYA,EAAQ,gBAAkBA,EAAQ,sBAAwBA,EAAQ,UAAoB,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,IAAY,SAARsD,EAAgB,SAAW7B,EAAQ,gBAAgB,KAAa,UAAR6B,EAAiB,SAAW7B,EAAQ,sBAAsB,IAAI,MAC/R6N,QAAS,SAAmB7N,GAE9B,OACAkL,YAAY,EACZuB,WAAY,SAAWzM,EAAQ,SAC/B6K,OAAQ,SAAW7K,EAAQ,YACzBuL,KAAM,SAAmBvL,GAE3B,OACAZ,MAAO,aACPqN,WAAY,YAAczM,EAAQ,oBAAsBA,EAAQ,8BAAgCA,EAAQ,UAAYA,EAAQ,OAC5H6K,OAAQ,SAAW7K,EAAQ,oBAAsBA,EAAQ,IACzD0M,UAAW,SAAW1M,EAAQ,UAAYA,EAAQ,sBAAwBA,EAAQ,oBAAsBA,EAAQ,cAGhHgP,IAAK,SAAmBhP,EAAM6B,EAAKgI,EAAWiC,GAE9C,GAAI4E,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAZ,MAAO,WAAY,WACnBqN,YAAuB,KAAVzM,EAAa,GAAK0Q,EAAmB,KAAe,KAAV1Q,EAAa,IAAY,SAAR6B,EAAgB,SAAW7B,EAAQ,6BAA6B,KAAa,UAAR6B,EAAiB,SAAW7B,EAAQ,OAAO,IAAI,KAAe,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,SAAWyB,EAAQ,OAAO,IACxQ6K,OAAQ,iBAAmB7K,EAAQ,kCAA4C,KAAVA,EAAa,IAAY,SAAR6B,EAAgB,SAAW7B,EAAQ,sBAAsB,KAAa,UAAR6B,EAAiB,SAAW7B,EAAQ,gBAAgB,IAAI,KAAe,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,SAAWyB,EAAQ,gBAAgB,IACjS0Q,cAAeA,IACb1C,IAAK,SAAmBhO,GAE1B,GAAI0Q,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAZ,MAAO,WAAY,WACnBqN,WAAY,UAAYzM,EAAQ,oBAAsBA,EAAQ,OAASA,EAAQ,KAAe,KAAVA,EAAa,GAAK0Q,EAAmB,IACzH7F,OAAQ,MAAQ7K,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,6CAA+CA,EAAQ,OAASA,EAAQ,UAAYA,EAAQ,OAASA,EAAQ,UAAYA,EAAQ,IACrM0Q,cAAeA,EACf7O,KAAM,qBACJkP,IAAK,SAAmB/Q,GAE1B,GAAI0Q,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAZ,MAAO,WAAY,WACnBqN,WAAY,UAAYzM,EAAQ,mBAAqBA,EAAQ,OAASA,EAAQ,KAAe,KAAVA,EAAa,GAAK0Q,EAAmB,IACxH7F,OAAQ,MAAQ7K,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,6CAA+CA,EAAQ,OAASA,EAAQ,UAAYA,EAAQ,OAASA,EAAQ,UAAYA,EAAQ,IACrM0Q,cAAeA,EACf7O,KAAM,qBACJmP,OAAQ,SAAmBhR,GAE7B,GAAI0Q,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,QAAUA,EAAQ,WAAaA,EAAQ,IAChI,QACAZ,MAAO,WAAY,OAAQ,WAC3BqN,WAAY,cAAgBzM,EAAQ,QAAUA,EAAQ,gBAAkBA,EAAQ,QAAUA,EAAQ,KAAe,KAAVA,EAAa,GAAK0Q,EAAmB,IAC5I7F,OAAQ,cAAgB7K,EAAQ,WAAaA,EAAQ,YAAcA,EAAQ,UAAYA,EAAQ,8CAAgDA,EAAQ,kCAAoCA,EAAQ,WACnM0Q,cAAeA,EACfG,YAAY,IACVhS,KAAM,SAAmBmB,EAAM6B,GAEjC,OACA4K,YAAuB,KAAVzM,EAAa,IAAY,SAAR6B,EAAgB,4BAA4B,IAAI,IAAI,SAAW7B,EAAQ,MACrG6K,OAAQ,SAAW7K,EAAQ,MAC3B6B,KAAM,qBACJoP,KAAM,SAAmBjR,GAE3B,GAAI0Q,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAkL,YAAY,EACZ9L,MAAO,WAAY,WACnBqN,WAAY,SAAWzM,EAAQ,WAAqB,KAAVA,EAAa,GAAK0Q,EAAmB,IAC/E7F,OAAQ,eAAiB7K,EAAQ,iBAAmBA,EAAQ,wCAA0CA,EAAQ,wCAA0CA,EAAQ,kBAChK0Q,cAAeA,IACb7O,KAAM,aACN,KAAK,GAAI9C,KAAOyR,GAAwBA,EAAsBzR,GAAKwN,SAAWxN,EAAIyR,EAAsBzR,GAAK0H,OAAS+J,CAExH,IAAIU,IAeJ/K,GAAI,SAAmBnG,GAEvB,OACAZ,MAAO,WAAY,SACnBqN,WAAY,cAAgBzM,EAAQ,yBAA2BA,EAAQ,aAAeA,EAAQ,yBAA2BA,EAAQ,iBAAmBA,EAAQ,WAAaA,EAAQ,SACjL6K,OAAQ,cAAgB7K,EAAQ,aAAeA,EAAQ,YAAcA,EAAQ,mBAAqBA,EAAQ,+CA6B1G8I,QAAS,SAAmB9I,GAE5B,OACAZ,MAAO,WACPqN,WAAY,cAAgBzM,EAAQ,8BAAgCA,EAAQ,OAC5E6K,OAAQ,UAAY7K,EAAQ,WAAaA,EAAQ,gBAAkBA,EAAQ,OAqB3EkQ,QAAS,SAAmBlQ,GAE5B,OACAZ,MAAO,cAAe,aACtBqN,WAAY,SAAWzM,EAAQ,oCAAsCA,EAAQ,0BAA4BA,EAAQ,MACjH6K,OAAQ,0BAA4B7K,EAAQ,WAAaA,EAAQ,wBACjE6B,KAAM,qBAuCNyE,KAAM,SAAmBtG,GAEzB,GAAI0Q,GAAgB,eAAiB1Q,EAAQ,aAAeA,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,MACzI,QACAwM,SAAS,EACTpN,MAAO,WAAY,WACnBqN,WAAY,eAAiBzM,EAAQ,4BAA8BA,EAAQ,aAAeA,EAAQ,eAAiBA,EAAQ,iBAAmBA,EAAQ,gBAAkBA,EAAQ,WAAaA,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,WAAaA,EAAQ,OAAiB,KAAVA,EAAa,GAAK0Q,EAAmB,IACxU7F,OAAQ,eAAiB7K,EAAQ,iBAAmBA,EAAQ,yCAA2CA,EAAQ,0CAA4CA,EAAQ,wBAA0BA,EAAQ,aAAeA,EAAQ,YAAcA,EAAQ,mBAAqBA,EAAQ,mBAAqBA,EAAQ,kBAAoBA,EAAQ,WAAaA,EAAQ,aAC7V0Q,cAAeA,EACfG,YAAY,IAqBZM,YAAa,SAAmBnR,GAEhC,OACAwM,SAAS,EACTpN,MAAO,cAAe,aACtBqN,WAAY,SAAWzM,EAAQ,oCAAsCA,EAAQ,0BAA4BA,EAAQ,MACjH6K,OAAQ,0BAA4B7K,EAAQ,WAAaA,EAAQ,wBACjE6B,KAAM,qBA+BNqM,MAAO,SAAmBlO,EAAM6B,EAAKgI,EAAWiC,GAEhD,OACA1M,MAAO,QAAS,MAAO,QACvBqN,WAAY,iCAAmCzM,EAAQ,SAAWA,EAAQ,SAAWA,EAAQ,cAAgBA,EAAQ,kBACrH6K,OAAQ,cAAgB7K,EAAQ,SAAWA,EAAQ,SAAWA,EAAQ,KAAe,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,SAAWyB,EAAQ,sBAAsB,MAGjKoR,YAAa,SAAmBpR,GAEhC,OACAwM,SAAS,EACTpN,MAAO,WAAY,OAAQ,WAC3BqN,WAAY,cAAgBzM,EAAQ,QAAUA,EAAQ,gBAAkBA,EAAQ,QAAUA,EAAQ,KAAe,KAAVA,EAAa,WAAaA,EAAQ,sCAAwCA,EAAQ,QAAUA,EAAQ,WAAaA,EAAQ,KAAK,IACrO6K,OAAQ,cAAgB7K,EAAQ,WAAaA,EAAQ,YAAcA,EAAQ,UAAYA,EAAQ,8CAAgDA,EAAQ,kCAAoCA,EAAQ,WACnM6Q,YAAY,IACVQ,OAAQ,SAAmBrR,EAAM6B,EAAKgI,EAAWiC,GAEnD,GAAI4E,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAZ,MAAO,WAAY,WACnBqN,WAAY,WAAazM,EAAQ,kBAAoBA,EAAQ,qBAAuBA,EAAQ,6BAA+BA,EAAQ,cAAgBA,EAAQ,mBAAqBA,EAAQ,8BAAgCA,EAAQ,YAAcA,EAAQ,UAAYA,EAAQ,QAAkB,KAAVA,EAAa,GAAK0Q,EAAmB,IACvT7F,OAAQ,MAAQ7K,EAAQ,eAAiBA,EAAQ,YAAcA,EAAQ,mDAAqDA,EAAQ,WAAaA,EAAQ,SAAWA,EAAQ,QAAUA,EAAQ,mBAAqBA,EAAQ,yBAA2BA,EAAQ,OAASA,EAAQ,aAAeA,EAAQ,cAAgBA,EAAQ,YAAcA,EAAQ,yBAAmC,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,SAAWyB,EAAQ,gBAAgB,IAC7b0Q,cAAeA,IACb7O,KAAM,QACN,KAAK,GAAI9C,KAAOmS,GAAmBA,EAAiBnS,GAAKwN,SAAWxN,EAAImS,EAAiBnS,GAAK0H,OAASyK,CAEzG,IAAII,IACJC,IAAK,SAAmBvR,GAExB,GAAI0Q,IAA2B,KAAV1Q,EAAa,OAASA,EAAQ,4DAA4D,KAAe,KAAVA,EAAa,OAASA,EAAQ,4DAA4D,GAC9M,QACAZ,MAAO,QACPqN,YAAuB,KAAVzM,EAAa,GAAK0Q,EAAmB,IAAI,gBAAkB1Q,EAAQ,QAAUA,EAAQ,iBAAmBA,EAAQ,wBAA0BA,EAAQ,WAAaA,EAAQ,OACpL6K,OAAQ,WAAa7K,EAAQ,6CAA+CA,EAAQ,WAAaA,EAAQ,uBAAyBA,EAAQ,yBAC1I0Q,cAAeA,IACbc,OAAQ,SAAmBxR,EAAM6B,EAAKgI,EAAWiC,GAEnD,OACAW,WAAY,WAAazM,EAAQ,UAAYA,EAAQ,OACrD6K,OAAQ,OAAS7K,EAAQ,0CAA4CA,EAAQ,KAAe,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,SAAWyB,EAAQ,sBAAsB,MACtKyR,KAAM,SAAmBzR,EAAM6B,EAAKgI,EAAWiC,GAEjD,OACAW,WAAY,SAAWzM,EAAQ,OAC/B6K,OAAQ,qBAA+B,KAAV7K,GAA2C,IAA3B8L,EAAgBvN,OAAa,SAAWyB,EAAQ,gBAAgB,MAC3G0R,MAAO,SAAmB1R,GAE5B,OACAyM,WAAY,SAAWzM,EAAQ,OAC/B6K,OAAQ,SAAW7K,EAAQ,yCACzB2R,OAAQ,SAAmB3R,GAE7B,OACAyM,WAAY,SAAWzM,EAAQ,OAC/B6K,OAAQ,SAAW7K,EAAQ,kBACzB6B,KAAM,SACN,KAAK,GAAI9C,KAAOuS,GAAoBA,EAAkBvS,GAAKwN,SAAWxN,EAAIuS,EAAkBvS,GAAK0H,OAAS6K,CAE5G,IAoTMxE,GACA9B,EArTFpD,GACJgK,gBAAiB,SAAmBhH,GAEpC,GAAIiH,GACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EARAxT,EAAS,EAgFb,OAvEAA,IAAU,OAAS8L,EAAQlJ,WAAa,UAAYkJ,EAAQ3K,WAAa,KAAO2K,EAAQrM,OAAS,KAAOqM,EAAQ7K,MAAQ,MAAS6K,EAAQY,WAAgE,GAAnD,IAAMZ,EAAQ9L,OAAS8L,EAAQd,YAAc,KAAY,IAAMc,EAAQ9L,QAAU8L,EAAQY,WAAa,WAAa,IAAM,KAAOZ,EAAQU,uBAAyB,IACvTgH,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQxL,KAAM,SAAUW,EAAOC,GAC3C8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQxL,KAAKb,OAAS,EACvCO,GAAU,IACVoT,EAAS,GACTpU,EAAO2D,KAAKqQ,EAAU,SAAU/R,EAAOC,GACvC6R,EAAW9R,EACXmS,GAAU,EACVD,EAAOjS,EACPgS,EAAkB,GAAThS,EACT+R,EAAQ/R,GAAS8R,EAASvT,OAAS,EACnCO,GAAU,QAAU+S,EAAWS,EAAS,MAAQ1H,EAAQf,WAAa,KAAOgI,EAAW,OAEvF/S,GAAU,IAAM8L,EAAQf,WAAa,MAAQe,EAAQf,WAAa,eAElE/K,GAAU,IACVhB,EAAO6D,UAAUiJ,EAAQV,UAAW,SAAUnK,EAAOC,GACrD8R,EAAW/R,EACXuS,EAAS1H,EAAQV,UAAU3L,OAC3B+T,GAAU,GACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQV,UAAU3L,OAAS,EAC5CO,GAAU,IACVoT,EAAS,GACTpU,EAAO2D,KAAKqQ,EAAU,SAAU/R,EAAOC,GACvC6R,EAAW9R,EACXmS,GAAU,EACVD,EAAOjS,EACPgS,EAAkB,GAAThS,EACT+R,EAAQ/R,GAAS8R,EAASvT,OAAS,EACnCO,GAAU,QAAUmT,EAAOC,EAAS,MAAQL,EAAW,OAEvD/S,GAAU,MAEVA,GAAU,IAAM8L,EAAQ3K,WAAa,MAAQ2K,EAAQf,WAAa,YAAce,EAAQlJ,WAAa,OAASkJ,EAAQZ,KAAO,MAAQY,EAAQX,KAAO,IAAMW,EAAQrM,OAAS,eAAiBqM,EAAQ3K,WAAa,YAAc2K,EAAQZ,KAAO,MAAQY,EAAQX,KAAO,MAAQ,IAAM,KAAQW,EAAQX,KAAyE,GAAlE,IAAMW,EAAQrM,OAAS,MAAQqM,EAAQ3K,WAAa,aAAoB,KAAO2K,EAAQ4B,QAAU,IAAM5B,EAAQlJ,WAAa,MAAQkJ,EAAQ3K,WAAa,aAAe2K,EAAQZ,KAAO,KAAO,IAAM,IAC9elM,EAAO6D,UAAUiJ,EAAQR,iBAAkB,SAAUrK,EAAOC,GAC5D8R,EAAW/R,EACXuS,EAAS1H,EAAQR,iBAAiB7L,OAClC+T,GAAU,GACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQR,iBAAiB7L,OAAS,EACnDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,KAAO8L,EAAQ/F,SAAW,SAAW+F,EAAQlJ,WAAa,OAASkJ,EAAQ3K,WAAa,OAAS,IAAM,KAAQ2K,EAAQ/F,SAA8Q,GAAnQ,KAAO+F,EAAQ4B,QAAU,aAAe5B,EAAQlJ,WAAa,QAAUkJ,EAAQX,KAAOW,EAAQX,KAAO,KAAQW,EAAQX,KAAa,GAAN,KAAY,OAAS,IAAM,KAAQW,EAAQ4B,QAAgF,GAAtE,aAAe5B,EAAQlJ,WAAa,MAAQkJ,EAAQrM,OAAS,QAAe,KAAY,IAAMqM,EAAQ7K,MAAQ,MAAQ6K,EAAQ3K,WAAa,IAAM2K,EAAQlJ,WAAa,MACne5D,EAAO6D,UAAUiJ,EAAQN,aAAc,SAAUvK,EAAOC,GACxD8R,EAAW/R,EACXuS,EAAS1H,EAAQN,aAAa/L,OAC9B+T,GAAU,GACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQN,aAAa/L,OAAS,EAC/CO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,KAAO8L,EAAQ2H,iBAAmB,IAAM3H,EAAQ2H,iBAAmB,IAAM,IAAM,MACzFzU,EAAO6D,UAAUiJ,EAAQJ,gBAAiB,SAAUzK,EAAOC,GAC3D8R,EAAW/R,EACXuS,EAAS1H,EAAQJ,gBAAgBjM,OACjC+T,GAAU,GACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQJ,gBAAgBjM,OAAS,EAClDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,KAAO8L,EAAQa,oBAAsB,IAAMb,EAAQa,oBAAsB,IAAM,IAAM,KAAQb,EAAQY,WAA0F,GAA7E,IAAMZ,EAAQ9L,OAAS,MAAQ8L,EAAQ9L,OAAS8L,EAAQd,YAAc,MAAa,WAAac,EAAQ9L,OAAS,MAE3O0M,WAAY,SAAmBZ,GAEjC,GAAIkH,GAEAK,EACAC,EACAC,EACAC,EAJAxT,EAAS,EAgBb,OAXAA,IAAU,OACVwT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQjC,MAAO,SAAU5I,EAAOC,GAC5C8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQjC,MAAMpK,OAAS,EACxCO,GAAUgT,IAEVhT,GAAU,OAAS8L,EAAQ9L,OAAS,aAAe8L,EAAQC,OAAS,WAAa,IAAM,OAErFhD,YAAa,SAAmB+C,GAElC,GAAIiH,GACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EARAxT,EAAS,EAsEb,OA7DAA,IAAU,YAAc8L,EAAQzL,KAAO,eACvCmT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQxL,KAAM,SAAUW,EAAOC,GAC3C8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQxL,KAAKb,OAAS,EACvCO,GAAU,IAAMgT,EAAW,OAE3BhT,GAAU,qEAAuE8L,EAAQnD,eAAiB,KAC1G6K,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQxL,KAAM,SAAUW,EAAOC,GAC3C8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQxL,KAAKb,OAAS,EACvCO,GAAU,UAAYgT,EAAW,MAAQA,EAAW,OAEpDhT,GAAU,OAAS8L,EAAQlD,OAAS,aAAekD,EAAQzL,KAAO,sGAAwG,IAAM,mCAAqCyL,EAAQzL,KAAO,wBAA0ByL,EAAQ/I,KAAO,aAAe+I,EAAQzL,KAAO,MAC3SmT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQ7C,QAAS,SAAUhI,EAAOC,GAC9C8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQ7C,QAAQxJ,OAAS,EAC1CO,GAAU,IAAMgT,EAAS3S,KAAO,gBAChC+S,EAAS,GACTpU,EAAO2D,KAAKqQ,EAAS1S,KAAM,SAAUW,EAAOC,GAC5C6R,EAAW9R,EACXmS,GAAU,EACVD,EAAOjS,EACPgS,EAAkB,GAAThS,EACT+R,EAAQ/R,GAAS8R,EAAS1S,KAAKb,OAAS,EACxCO,GAAU,IAAM+S,EAAW,OAE3B/S,GAAU,iCAAmC8L,EAAQxF,KAAO0M,EAAS3S,KAAO,sCAAwCyL,EAAQxF,KAAO0M,EAAS3S,KAAO,0BAA4ByL,EAAQzL,KAAO2S,EAAS3S,KAAO,OAASyL,EAAQxF,KAAO0M,EAAS3S,KAAO,OAAS2S,EAAS3S,KAAO,MAAQyL,EAAQ/I,KAAO,SAAWiQ,EAASpB,cAAgB,0BAC1UwB,EAAS,GACTpU,EAAO2D,KAAKqQ,EAAS1S,KAAM,SAAUW,EAAOC,GAC5C6R,EAAW9R,EACXmS,GAAU,EACVD,EAAOjS,EACPgS,EAAkB,GAAThS,EACT+R,EAAQ/R,GAAS8R,EAAS1S,KAAKb,OAAS,EACxCO,GAAU,IAAM+S,EAAW,OAE3B/S,GAAU,YAAcgT,EAASjQ,KAAO,qFAAuFiQ,EAASjQ,KAAO,4CAA8CiQ,EAASjQ,KAAO,yBAA2B,IAAM,KAAOiQ,EAASjB,WAAa,qHAAuH,IAAM,4BAExY/R,GAAU,IACVwT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQ5C,cAAe,SAAUjI,EAAOC,GACpD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQ5C,cAAczJ,OAAS,EAChDO,GAAU,IAAMuT,EAAO,MAAQP,EAAW,OAE1ChT,GAAU,kDAAoD8L,EAAQxF,KAAO,6CAA+CwF,EAAQxF,KAAO,iCAAmCwF,EAAQxF,KAAO,cAAgBwF,EAAQxF,KAAO,wBAA0BwF,EAAQ/I,KAAO,4HAA8H+I,EAAQxF,KAAO,0CAA4CwF,EAAQxF,KAAO,8BAAgCwF,EAAQxF,KAAO,WAAawF,EAAQxF,KAAO,kBAAoBwF,EAAQ/I,KAAO,4nBAA8nB+I,EAAQxF,KAAO,cAAgBwF,EAAQxF,KAAO,qGAAuGwF,EAAQxF,KAAO,cAAgBwF,EAAQxF,KAAO,2lBAA6lBwF,EAAQzL,KAAO;EAEt+D6N,iBAAkB,SAAmBpC,GAEvC,GAAIkH,GAEAK,EACAC,EACAC,EACAC,EAJAxT,EAAS,EA4Eb,OAvEAA,IAAU,OAAS8L,EAAQrM,OAAS,MAAQqM,EAAQ3K,WAAa,YAAc2K,EAAQlJ,WAAa,OAAUkJ,EAAQ4B,QAAiB,GAAP,OAAc5B,EAAQ4B,QAAU5B,EAAQrM,OAAS,IAAM,KAAOqM,EAAQhJ,oBAAsB,MAAQgJ,EAAQb,aAAe,KAAOa,EAAQ9L,OAAS,KAAO8L,EAAQ7K,MAAQ,KAC1SuS,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQV,UAAW,SAAUnK,EAAOC,GAChD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQV,UAAU3L,OAAS,EAC5CO,GAAU,MAEVA,GAAU,QAAU8L,EAAQhJ,oBAAsB,OAClD0Q,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQR,iBAAkB,SAAUrK,EAAOC,GACvD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQR,iBAAiB7L,OAAS,EACnDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,KAAO8L,EAAQ4B,QAAU,aAAe5B,EAAQlJ,WAAa,YAAc,IAAM,KAAQkJ,EAAQ4B,QAAgF,GAAtE,aAAe5B,EAAQlJ,WAAa,MAAQkJ,EAAQrM,OAAS,QAAe,IAAMqM,EAAQ7K,MAAQ,MAAQ6K,EAAQ3K,WAAa,IAAM2K,EAAQlJ,WAAa,MAC/Q4Q,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQN,aAAc,SAAUvK,EAAOC,GACnD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQN,aAAa/L,OAAS,EAC/CO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,MACVwT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQJ,gBAAiB,SAAUzK,EAAOC,GACtD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQJ,gBAAgBjM,OAAS,EAClDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,aACVwT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQT,kBAAmB,SAAUpK,EAAOC,GACxD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQT,kBAAkB5L,OAAS,EACpDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,SAAW8L,EAAQlJ,WAAa,qBAAuBkJ,EAAQ7K,MAAQ,MAAQ6K,EAAQ3K,WAAa,IAAM2K,EAAQlJ,WAAa,MACzI4Q,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQP,cAAe,SAAUtK,EAAOC,GACpD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQP,cAAc9L,OAAS,EAChDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,MACVwT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQL,iBAAkB,SAAUxK,EAAOC,GACvD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQL,iBAAiBhM,OAAS,EACnDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,aAAe8L,EAAQ9L,OAAS,MAExCkL,KAAM,SAAmBY,GAE3B,GAAI9L,GAAS,EAEb,OADAA,IAAU,WAAa8L,EAAQ5K,MAAQ,yBAErCiK,KAAM,SAAmBW,GAE3B,GAAI9L,GAAS,EAEb,OADAA,IAAU,WAAa8L,EAAQ5K,MAAQ,uBAErC6B,KAAM,QAGFuG,KACAD,KAEAE,EAAevK,EAAOgD,UAAW0P,EAAuBU,EAAkBI,EAAmBnC,EAiCjG,KAAK,GAAIpQ,KAAOsJ,GACdyE,EAAazE,EAAatJ,GACtBjB,EAAOa,WAAWmO,KACpB9B,EAAiB8B,EAAW,IAAK,GAAI,OACrChF,EAAY/I,IACVI,KAAMJ,EACNK,KAAM4L,EAAe5L,KACrBsR,cAAe1F,EAAe0F,eAAiB,GAC/C7O,KAAMmJ,EAAenJ,KACrBgP,WAAY7F,EAAe6F,YAKjC/S,GAAOgD,OAAOkH,GACZwK,SAAU,SAAUb,GAClB,MAAO,IAAI9J,aAAY8E,qBAAqB8F,KAAKD,SAASlV,KAAKyC,QAAS4R,KAG1EnD,OAAQ,SAAU5O,EAAUC,GAC1B,MAAO,IAAIgI,aAAY+F,oBAAoB6E,KAAKjE,OAAOlR,KAAKyC,QAASH,EAAUC,KAGjFyO,QAAS,SAAU1O,EAAUC,GAC3B,MAAO,IAAIgI,aAAY8E,qBAAqB8F,KAAKnE,QAAQhR,KAAKyC,QAASH,EAAUC,KAGnF0O,QAAS,SAAU3O,EAAUC,GAC3B,MAAO,IAAIgI,aAAY8E,qBAAqB8F,KAAKlE,QAAQjR,KAAKyC,QAASH,EAAUC,KAGnF6S,QAAS,WACP,MAAO,IAAI7K,aAAY+F,oBAAoB6E,KAAKC,QAAQpV,KAAKyC,WAG/D4S,IAAK,SAAUC,EAAa7S,GAC1B,MAAO,IAAI8H,aAAY8E,qBAAqB8F,KAAKE,IAAIzU,KAAKiE,OAAW7E,KAAKyC,MAAO6S,EAAa7S,KAGhGoG,GAAI,SAAUnG,EAAO6S,GACnB,MAAO,IAAIhL,aAAY+F,oBAAoB6E,KAAKtM,GAAG7I,KAAKoJ,OAAQ1G,EAAO6S,KAIzE5M,OAAQ,WACN,GAAIlG,GAAQzC,KAAKyC,OACjB,OAAO,IAAI8H,aAAY+F,oBAAoB7N,EAAMkG,OAAOvG,MAAMK,EAAOW,aAIvE9B,KAAM,WACJ,GAAImB,GAAQzC,KAAKyC,OAEjB,OADAA,GAAMnB,KAAKc,MAAMK,EAAOW,WACjB,GAAImH,aAAY+F,oBAAoB7N,IAG7Cd,IAAK,WACH,GAAIc,GAAQzC,KAAKyC,OAEjB,OADAA,GAAMd,MACC,GAAI4I,aAAY+F,oBAAoB7N,IAG7C+S,MAAO,WACL,GAAI/S,GAAQzC,KAAKyC,OAEjB,OADAA,GAAM+S,QACC,GAAIjL,aAAY+F,oBAAoB7N,IAG7CI,MAAO,SAAU4S,EAAO3H,GACtB,MAAO,IAAIvD,aAAY+F,oBAAoBtQ,KAAKyC,QAAQI,MAAM4S,EAAO3H,KAGvEuD,KAAM,SAAUqE,GACd,MAAO,IAAInL,aAAY+F,oBAAoBtQ,KAAKyC,QAAQ4O,KAAKqE,KAG/DlN,OAAQ,SAAU9F,EAAOiT,GACvB,GAAIlT,GAAQzC,KAAKyC,OAMjB,OALIW,WAAUnC,OAAS,EACrBwB,EAAM+F,OAAOpG,MAAMK,GAAQC,EAAOiT,GAAShN,OAAO9F,EAAMjC,KAAKwC,UAAW,KAExEX,EAAM+F,OAAO9F,EAAOiT,GAEf,GAAIpL,aAAY+F,oBAAoB7N,IAG7CmT,QAAS,WACP,GAAInT,GAAQzC,KAAKyC,OAEjB,OADAA,GAAMmT,QAAQxT,MAAMK,EAAOW,WACpB,GAAImH,aAAY+F,oBAAoB7N,MA8B/CjC,EAAOgD,OAAOkH,GACZM,IAAK,WAEH,MADAA,GAAIhL,KAAKyC,QAASW,WACXpD,MAGT6V,OAAQ,SAAUhG,EAAUvN,GAE1B,MADA9B,GAAOqV,OAAO7V,KAAKyC,QAASoN,EAAUvN,GAC/BtC,MAGT8V,SAAU,SAAUjG,EAAU0F,GAE5B,MADA/U,GAAOsV,SAAS9V,KAAKyC,QAASoN,EAAU0F,GACjCvV,MAGT+V,UAAW,SAAUzT,EAAUC,GAM7B,MALyB,KAArBa,UAAUnC,OACZT,EAAOuV,UAAU/V,KAAKyC,SAEtBjC,EAAOuV,UAAU/V,KAAKyC,QAASH,EAAUC,GAEpCvC,MAGTuL,QAAS,WAEP,MADAA,GAAQvL,KAAKyC,QAASW,WACfpD,MAGTiI,KAAM,SAAU+M,EAAQJ,GAEtB,MADApU,GAAOyH,KAAKjI,KAAKyC,QAASuS,EAAQJ,GAC3B5U,MAGTqI,KAAM,SAAUC,EAAaC,GAE3B,MADA/H,GAAO6H,KAAKrI,KAAKyC,QAAS6F,EAAaC,GAChCvI,OAQX,IAAIsQ,GAAsBpG,EAAmB,YAAa,MAAO,GAAI,GAAG,EAExE1J,GAAOgD,OAAO8M,EAAoBnO,WAChC+M,QAAS,WACP,MAAO,IAAIoB,GAAoBtQ,KAAKoJ,OAAO8F,cAI/C1O,EAAOgD,OAAOhD,GACZwK,IAAK,SAAU9C,GACb,MAAO8C,GAAI9C,EAAOrF,EAAMjC,KAAKwC,UAAW,KAG1CmI,QAAS,SAAUrD,GACjB,MAAOqD,GAAQrD,EAAOrF,EAAMjC,KAAKwC,UAAW,KAG9CyS,OAAQ,SAAU3N,EAAO2H,EAAUvN,GACjC,MAAI6I,GAAUG,WAAWuE,GAChBrP,EAAOsV,SAAS5N,EAAOiD,EAAUC,eAAeyE,EAAU7P,KAAKoJ,OAAOnI,QAASqB,GAE/E9B,EAAOuV,UAAU7N,EAAO2H,EAAUvN,GAAU,IAIvDwT,SAAU,SAAU5N,EAAOxF,EAAO6S,GAKhC,MAJK/U,GAAO6E,SAASkQ,KACnBA,EAAQ,GAEVrN,EAAMM,OAAO9F,EAAO6S,GACbrN,GAGT6N,UAAW,SAAU7N,EAAO5F,EAAUC,EAASyT,GAC7C,GAEIvT,GAFAsB,EAAI,EACJkS,EAAsBzV,EAAOa,WAAWiB,EAG5C,IAAwB,GAApBc,UAAUnC,OACZiH,EAAMM,OAAO,EAAGN,EAAMjH,YAEtB,MAAO8C,EAAImE,EAAMjH,SACfwB,EAAQyF,EAAMnE,KACVtB,IAAUH,GAAa2T,GAAuB3T,EAAS1B,KAAK2B,EAASE,EAAOsB,EAAGmE,MACjFA,EAAMM,OAAOzE,IAAK,IACdiS,IAJiBjS,KAW3B,MAAOmE,IAGTgN,SAAU,SAAUhN,EAAOmM,GAOzB,IANA,GAII5R,GAJAjB,KACA0U,EAAiB9S,UAAUnC,OAAS,GAAKoT,EACzCtQ,EAAI,EACJ9C,EAASiH,EAAMjH,OAGRA,EAAJ8C,EAAYA,IACjBtB,EAAQyF,EAAMnE,GACVvD,EAAO0D,QAAQzB,GACjBjB,EAAOiB,EAAM,IAAMA,EAAM,GAChBjC,EAAO+G,SAAS9E,GACzBjB,EAAOiB,EAAMhB,KAAOgB,EAAMA,MAE1BjB,EAAOiB,GAASyT,EAAiB7B,EAAOtQ,IAAK,CAGjD,OAAOvC,IAGT4T,QAAS,SAAUlN,GAMjB,IALA,GAGIiO,GAHAC,KACArS,EAAI,EACJ9C,EAASiH,EAAMjH,OAGRA,EAAJ8C,EAAYA,IACjBoS,EAAO3V,EAAO6V,OAAOtS,GACrBqS,EAASrS,GAAKqS,EAASD,GACvBC,EAASD,GAAQjO,EAAMnE,EAEzB,OAAOqS,KA2BX,IAAI/G,GAAuBnF,EAAmB,aAAc,MAAO,GAAI,GAAG,EAE1E1J,GAAO6U,IAAM,SAAUiB,EAAQhB,EAAa7S,GAC1C,GAAIhB,EACJ,IAAIjB,EAAO0B,SAASoT,GAClBgB,EAAOhB,GAAe7S,MAEtB,KAAKhB,IAAO6T,GACVgB,EAAO7U,GAAO6T,CAGlB,OAAOgB,GAGP,IAAIC,GAAa,cAGfC,EAAuB,gBACvBC,EAAqB,eAMzBhL,GAAiBtJ,UAAUhB,YAAc+H,EAEzC1I,EAAOmE,QAAQuE,EAAgBuC,GAC7BsE,YAAatE,EAEblH,KAAM,WACJ,MAAO,UAGTmS,UAAW,SAAUvO,EAAQC,GAC3B,MAAO,IAAIqD,GAAiBzL,KAAKoJ,OAAOsN,UAAUvO,EAAQC,KAG5DmI,QAAS,WACP,MAAOvQ,MAAKqQ,kBAAwC,GAAtBrQ,KAAKoJ,OAAOnI,SAG5CM,KAAM,WACJ,MAAO,IAAI0J,GAAiBzK,EAAOe,KAAKvB,KAAKoJ,UAG/C+J,SAAU,SAAU1Q,GAClB,MAAOzC,MAAKqQ,kBAAgD,IAA9BrQ,KAAKoJ,OAAOwJ,QAAQnQ,KAGpDiQ,WAAY,SAAUjQ,GACpB,MAAOzC,MAAKqQ,kBAAkB7P,EAAOkS,WAAW1S,KAAKoJ,OAAQ3G,KAG/DkQ,SAAU,SAAUlQ,GAClB,MAAOzC,MAAKqQ,kBAAkB7P,EAAOmS,SAAS3S,KAAKoJ,OAAQ3G,KAG7DkU,KAAM,SAAUC,GACd,MAAO,IAAInL,GAAiBjL,EAAOmW,KAAK3W,KAAKoJ,OAAQwN,KAGvDC,UAAW,SAAUD,GACnB,MAAO,IAAInL,GAAiBjL,EAAOqW,UAAU7W,KAAKoJ,OAAQwN,KAG5DE,QAAS,SAAUF,GACjB,MAAO,IAAInL,GAAiBjL,EAAOsW,QAAQ9W,KAAKoJ,OAAQwN,KAG1DG,OAAQ,SAAUxB,GAChB,MAAO,IAAI9J,GAAiBjL,EAAOuW,OAAO/W,KAAKoJ,OAAQmM,KAGzDrG,QAAS,WACP,MAAO,IAAIzD,GAAiBjL,EAAO0O,QAAQlP,KAAKoJ,UAGlD4N,KAAM,SAAUC,GACd,MAAO,IAAIxL,GAAiBjL,EAAOwW,KAAKhX,KAAKoJ,OAAQ6N,KAGvDvL,OAAQ,WACN,MAAO,IAAID,GAAiBC,EAAO1L,KAAKoJ,OAAQvG,EAAMjC,KAAKwC,UAAW,MAGxE8T,QAAS,SAAUC,EAAQ5B,GACzB,MAAO,IAAI9J,GAAiBjL,EAAO0W,QAAQlX,KAAKoJ,OAAQ+N,EAAQ5B,KAGlExP,OAAQ,SAAUC,GAChB,MAAO,IAAIyF,GAAiBjL,EAAOuF,OAAO/F,KAAKoJ,OAAQpD,KAGzDnC,MAAO,WACL,MAAO,IAAI4H,GAAiBzL,KAAKoJ,OAAOzI,eAI5CH,EAAOgD,OAAOhD,GACZkS,WAAY,SAAUjQ,EAAOiQ,GAK3B,MAJKlS,GAAO0B,SAASO,KACnBA,EAAQA,EAAM9B,YAEhB+R,EAAaA,EAAW/R,WACY,GAA7B8B,EAAMmQ,QAAQF,IAGvBC,SAAU,SAAUlQ,EAAOkQ,GAKzB,MAJKnS,GAAO0B,SAASO,KACnBA,EAAQA,EAAM9B,YAEhBgS,EAAWA,EAAShS,WACb8B,EAAMoR,YAAYlB,IAAalQ,EAAMxB,OAAS0R,EAAS1R,QAGhE0V,KAAM,SAAUhL,EAAQiL,GACtB,OAAQjL,GAAU,IAAIhL,WAAW0F,QAA4B,gBAAbuQ,GAAwB,GAAI7P,QAAO,KAAO6P,EAAY,OAASA,EAAY,MAAO,KAAOL,EAAY,KAGvJM,UAAW,SAAUlL,EAAQiL,GAC3B,OAAQjL,GAAU,IAAIhL,WAAW0F,QAA4B,gBAAbuQ,GAAwB,GAAI7P,QAAO,KAAO6P,EAAY,MAAQJ,EAAsB,KAGtIM,QAAS,SAAUnL,EAAQiL,GACzB,OAAQjL,GAAU,IAAIhL,WAAW0F,QAA4B,gBAAbuQ,GAAwB,GAAI7P,QAAO,IAAM6P,EAAY,OAASH,EAAoB,KAGpIM,OAAQ,SAAUpL,EAAQ4J,GACxB,GAAI/T,GAAS,GACTuC,EAAI,CAER,IAAY,EAARwR,GAA6B,gBAATA,GACtB,MAAO5J,EAIT,KADA4J,EAAQ9E,KAAK2G,MAAM7B,GACRA,EAAJxR,EAAWA,IAChBvC,GAAUmK,CAEZ,OAAOnK,IAGT0N,QAAS,SAAUzM,GACjB,MAAIjC,GAAO0D,QAAQzB,GACVA,EAAMyM,WAGK,gBAATzM,KACTA,EAAQA,EAAM9B,YAET8B,EAAMuF,MAAM,IAAIkH,UAAUjB,KAAK,MAGxC+I,KAAM,SAAUK,EAAkBC,GAChC,MAAI9W,GAAOa,WAAWgW,GACb,WACL,GAAIvV,IAAQuV,EAEZ,OADA/V,MAAKc,MAAMN,EAAMsB,WACVkU,EAAoBlV,MAAMpC,KAAM8B,IAGpCwV,EAAsBD,EAAmB7W,EAAO0O,QAAQoI,IAGjE5L,OAAQ,SAAUC,GAChB,MAAOD,GAAOC,EAAQ9I,EAAMjC,KAAKwC,UAAW,KAG9C8T,QAAS,SAAUvL,EAAQ4L,EAAKhC,GAC9BA,EAAQ/U,EAAO6E,SAASkQ,GAASA,EAAQxQ,OAAOyS,UAC3ChX,EAAOiX,SAASF,KACnBA,EAAM,GAAIxQ,QAAOwQ,EAAI5W,WAAY,KAEnC,IACIkN,GACA5M,EAFAO,IAMJ,KAFA+V,EAAIvQ,UAAY,EAChB6G,EAAQ0J,EAAIG,KAAK/L,GACV4J,EAAQ,GAAK1H,IAClB5M,EAAST,EAAO0D,QAAQ2J,GAASA,EAAM,GAAG5M,OAAS4M,EAAM5M,OACzDO,EAAOF,MACLE,OAAQqM,EACR8J,MAAO9J,EAAM8J,MACbC,WAAY/J,EAAMnL,MAClBmV,SAAUhK,EAAMnL,MAAQzB,EACxBA,OAAQA,IAELsW,EAAI5X,SAGTkO,EAAQ0J,EAAIG,KAAK/L,GACjB4J,GAGF,OAAO/T,MAwBXhB,EAAOmE,QAAQuE,EAAgB2C,GAC7BpD,KAAM,WACJ,MAAO,IAAIoD,GAAmBrL,EAAOiI,KAAKrG,MAAMpC,MAAOA,KAAKoJ,QAAQT,OAAO9F,EAAMjC,KAAKwC,eAGxF0I,QAAS,WACP,MAAO,IAAID,GAAmBC,EAAQ9L,KAAKoJ,OAAQvG,EAAMjC,KAAKwC,UAAW,MAG3E0U,QAAS,SAAUC,GACjB,MAAO,IAAIlM,GAAmBrL,EAAOsX,QAAQ9X,KAAKoJ,OAAQ2O,KAG5DhM,MAAO,SAAUC,GACf,MAAO,IAAIH,GAAmBE,EAAM/L,KAAKoJ,OAAQ4C,EAAMnJ,EAAMjC,KAAKwC,UAAW,MAG/E4U,SAAU,SAAUhM,EAAMpI,GACxB,MAAO,IAAIiI,GAAmBrL,EAAOwX,SAAShY,KAAKoJ,OAAQ4C,EAAMpI,KAGnEqU,SAAU,SAAUjM,EAAMkM,GACxB,MAAO,IAAIrM,GAAmBrL,EAAO2X,QAAQnY,KAAKoJ,OAAQ4C,EAAMkM,KAGlEE,KAAM,WACJ,MAAO,IAAIvM,GAAmBrL,EAAO4X,KAAKpY,KAAKoJ,UAGjD4N,KAAM,SAAU1U,GACd,MAAO,IAAIuJ,GAAmBrL,EAAOwW,KAAKhX,KAAKoJ,OAAQ9G,OAI3D9B,EAAOgD,OAAOhD,GACZsL,QAAS,SAAU/J,GACjB,GAAID,GAAOe,EAAMjC,KAAKwC,UAAW,EACjC,OAAO0I,GAAQ/J,EAAMD,IAGvBgW,QAAS,SAAU/V,EAAMgW,GACvB,GAAI3F,KAEJ,OADA2F,KAAWA,EAAS9I,GACb,WACL,GAAIxN,GAAMsW,EAAO3V,MAAMpC,KAAMoD,UAC7B,OAAOgP,GAAKpP,eAAevB,GAAO2Q,EAAK3Q,GAAQ2Q,EAAK3Q,GAAOM,EAAKK,MAAMpC,KAAMoD,aAIhF2I,MAAO,SAAUhK,EAAMiK,GACrB,MAAOD,GAAMhK,EAAMiK,EAAMnJ,EAAMjC,KAAKwC,UAAW,KAGjD4U,SAAU,SAAUhM,EAAMjK,EAAM6B,GAC9B,GAAI0J,GACAxL,EACAN,EACA6W,EAAU,KACVC,EAAW,CAEf1U,KAAYA,KACZ,IAAI2U,GAAQ,WACVD,EAAW1U,EAAQ4U,WAAY,EAAQ,EAAI,GAAIxT,MAC/CqT,EAAU,KACV7W,EAASO,EAAKK,MAAMkL,EAASxL,GAE/B,OAAO,YACL,GAAI2W,GAAM,GAAIzT,KACTsT,IAAY1U,EAAQ4U,WAAY,IAAOF,EAAWG,EACvD,IAAIC,GAAY1M,GAAQyM,EAAMH,EAW9B,OAVAhL,GAAUtN,KACV8B,EAAOsB,UACU,GAAbsV,GACFC,aAAaN,GACbA,EAAU,KACVC,EAAWG,EACXjX,EAASO,EAAKK,MAAMkL,EAASxL,IACnBuW,GAAWzU,EAAQgV,YAAa,IAC1CP,EAAUpM,WAAWsM,EAAOG,IAEvBlX,IAIXyW,SAAU,SAAUlW,EAAMiK,EAAMkM,GAC9B,GAAIG,GACAvW,EACAwL,EACAuL,EACArX,CACJ,OAAO,YACL8L,EAAUtN,KACV8B,EAAOsB,UACPyV,EAAY,GAAI7T,KAChB,IAAIuT,GAAQ,WACV,GAAIvP,GAAO,GAAKhE,MAAU6T,CACf7M,GAAPhD,EACFqP,EAAUpM,WAAWsM,EAAOvM,EAAOhD,IAEnCqP,EAAU,KACLH,IAAW1W,EAASO,EAAKK,MAAMkL,EAASxL,MAG7CgX,EAAUZ,IAAcG,CAK5B,OAJKA,KACHA,EAAUpM,WAAWsM,EAAOvM,IAE1B8M,IAAStX,EAASO,EAAKK,MAAMkL,EAASxL,IACnCN,IAIX4W,KAAM,SAAUrW,GACd,GACIqQ,GADA2G,GAAM,CAEV,OAAO,YACL,MAAIA,GAAY3G,GAChB2G,GAAM,EACN3G,EAAOrQ,EAAKK,MAAMpC,KAAMoD,WACxBrB,EAAO,KACAqQ,OAmBb5R,EAAO6V,OAAS,SAAU5C,EAAK/C,GAC7B,MAAwB,IAApBtN,UAAUnC,OACLwP,KAAK4F,UAEH,MAAP3F,IACFA,EAAM+C,EACNA,EAAM,GAEDA,EAAMhD,KAAK2G,MAAM,EAAI3G,KAAK4F,UAAY3F,EAAM+C,EAAM,MAO3DjT,EAAOmE,QAAQuE,EAAgB+B,GAC7B8E,YAAa9E,EAEb1G,KAAM,WACJ,MAAO,UAGTwB,OAAQ,SAAUC,GAEhB,MADAA,GAAOA,GAAQ,KACR,GAAIyF,GAAiBzL,KAAKoJ,OAASpD,EAAMhG,OAGlDqW,OAAQ,SAAU5C,EAAK/C,GACrB,MAAO,IAAIzF,GAAiBzK,EAAO6V,OAAO5C,EAAK/C,GAAM1Q,OAGvDgZ,WAAY,SAAUvW,GACpB,GAAI8J,GAAa,GAAItB,GAAiBjL,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAWyD,WAAWhQ,KAAKoJ,OAAS3G,GAC7B8J,GAGT0M,SAAU,WACR,GAAI1M,GAAa,GAAItB,GAAiBjL,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAWyD,WAAWhQ,KAAKoJ,OAAS3G,OAC7B8J,KAQX/L,EAAOmE,QAAQuE,EAAgBgD,GAC7B6D,YAAa7D,EAEb3H,KAAM,WACJ,MAAO,QAGT2U,SAAU,SAAUC,GAElB,MADA3Y,GAAO0Y,SAASlZ,KAAKoJ,OAAQ+P,GACtBnZ,MAGToZ,QAAS,SAAUC,GACjB,MAAO,IAAInN,GAAe1L,EAAO4Y,QAAQpZ,KAAKoJ,OAAQiQ,KAGxDC,WAAY,SAAUD,GAEpB,MADArZ,MAAKgQ,WAAWxP,EAAO8Y,WAAWtZ,KAAKoJ,OAAQiQ,IACxCrZ,MAGTuZ,WAAY,SAAUF,GAEpB,MADArZ,MAAKgQ,WAAWxP,EAAO+Y,WAAWvZ,KAAKoJ,OAAQiQ,IACxCrZ,MAGTwZ,UAAW,WACT,MAAO,IAAItN,GAAe1L,EAAOgZ,UAAUxZ,KAAKoJ,YAIpD5I,EAAOgD,OAAOhD,GACZ0Y,SAAU,SAAUG,EAAMF,GAExB,MADAE,GAAKI,QAAQJ,EAAK5S,UAAoB,EAAR0S,GACvBE,GAGTD,QAAS,SAAUM,EAAOC,GACxB,GAAInY,GAASkY,EAAQC,CAErB,OADAnY,GAAoB,IAAXA,EAAeA,EAAkB,EAATA,EAAa,GAAK,GAIrD8X,WAAY,SAAUI,EAAOC,GAC3B,MAAOD,GAAMnT,gBAAkBoT,EAAMpT,eAC9BmT,EAAMlT,aAAemT,EAAMnT,YAC3BkT,EAAMjT,YAAckT,EAAMlT,WAGnC8S,WAAY,SAAUG,EAAOC,GAC3B,MAAOD,GAAMhT,aAAeiT,EAAMjT,YAC3BgT,EAAM/S,eAAiBgT,EAAMhT,cAC7B+S,EAAM9S,eAAiB+S,EAAM/S,cAC7B8S,EAAM7S,oBAAsB8S,EAAM9S,mBAG3C2S,UAAW,SAAUH,GAEnB,MADAA,GAAKO,SAAS,EAAG,EAAG,EAAG,GAChBP,KAIX7Y,EAAO2D,OAAO,QAAS,aAAc,SAAU,UAAW,OAAQ,QAAS,QAAS,UAAW,UAAW,gBAAiB,SAAU1B,GACnI,GAAIoX,GAAapX,EACbqX,EAAerX,CACfjC,GAAO0D,QAAQzB,KACjBoX,EAAapX,EAAM,GACnBqX,EAAerX,EAAM,IAEvBoX,EAAa,MAAQA,EACrBrZ,EAAOqZ,GAAc,SAAUR,EAAM5W,GAEnC,MADA4W,GAAK,MAAQS,GAAcT,EAAK,MAAQS,KAAkBrX,GACnD4W,GAETnN,EAAe/J,UAAU0X,GAAc,SAAUpX,GAC/C,MAAO,IAAIyJ,GAAe1L,EAAOqZ,GAAY7Z,KAAKoJ,OAAQ3G,OAS9DjC,EAAOmE,QAAQuE,EAAgBiD,GAC7BjM,OAAQ,aAIRgX,QAAS,SAAUvL,EAAQ4J,GACzB,MAAO,IAAIpJ,GAAiB3L,EAAO0W,QAAQlX,KAAKoJ,OAAQuC,EAAQ4J,KAGlEwE,MAAO,aAIPlW,MAAO,WACL,MAAO,IAAIsI,GAAiB3L,EAAOqD,MAAM7D,KAAKoJ,WAMlD,IAAIlG,GAAO1C,EAAO0C,IAElBA,GAAKC,oBAAqB,EAEtBD,EAAK8W,SACP9W,EAAK8W,QAAQ,sBAGf9W,EAAKI,iBAAmB,SAAUb,GAChC,GAAI8B,EAEJ,OAAI9B,aAAiBK,QAAUL,GAASA,EAAMmD,OACrC,GAAI0K,GAAoB7N,GAEb,gBAATA,IAAqBA,YAAiB5B,QACxC,GAAI4K,GAAiBhJ,GAEV,gBAATA,IAAqBA,YAAiBsC,QACxC,GAAIkG,GAAiBxI,GAE1BA,YAAiBuC,MACZ,GAAIkH,GAAezJ,GAEU,qBAAjC8B,EAAO5D,EAASC,KAAK6B,IACjB,GAAI0J,GAAiB1J,GAEjB,MAATA,EACK,GAAIyG,GAAezG,GAEW,yBAAnCA,EAAMqN,0BACDrN,EAEG,qBAAR8B,EACK,GAAIsH,GAAmBpJ,GAGzB,GAAI4M,GAAqB5M,IAGlCS,EAAKsC,aAAe,SAAU/C,GAC5B,MAAOA,IAA4C,yBAAnCA,EAAMqN,2BAGxB5M,EAAKG,kBACHuN,MAAO,SAAUC,EAAO/C,EAAKgD,GAC3BA,EAAOA,GAAQ,EACS,GAApB1N,UAAUnC,SACZ6M,EAAM+C,EACNA,EAAQ,EAGV,IAAIpB,GAAO,GAAIa,MACf,OAAOb,GAAKmB,MAAMC,EAAO/C,EAAKgD,IAGhCiG,OAAQ,cAKV7T,EAAK+W,kBAAoB,SAAUxX,GACjC,MAAOyX,sBAAqB/X,UAAUgD,cAAc1C,IAGtDS,EAAKiX,mBAAqB,SAAU1X,GAClC,MAAO2X,uBAAsBjY,UAAUgD,cAAc1C,GAIvD,IAAI4X,IACFnS,MAASoI,EACTgG,OAAUjH,GAGRiL,EAAc9Z,EAAO0U,UAAU,QAAS,MAAO,MAAO,KAAM,OAAQ,KAAM,UAE9E1U,GAAO0C,KAAKqX,iBAAmB,SAAUC,EAAgBlE,EAAQ7L,GAE/D,GAAK4P,EAAkBG,GAAvB,CAGA,GACI/Y,GADAU,EAAYkY,EAAkBG,GAAgBrY,SAGlD,KAAKV,IAAOU,GACLmU,EAAO7U,IAAS6Y,EAAY7Y,KAAQjB,EAAOa,WAAWc,EAAUV,KAAWgJ,IAAWA,EAAQhJ,KACjG6U,EAAO7U,GAAO2K,EAAgB3K,KA4QlC,IAAIkO,GAAcnP,EAAOgD,UAAW0P,EAAuBU,EAAkBI,EA4B7E,KAAK,GAAIvS,KAAOkO,GACZ1G,EAAOxH,EAGXjB,GAAO0K,QAAU1K,EAAO2D,IAExB,IAAIsW,GAAmBja,EAAOqI,GAC1B+G,EAAW3G,EAAO,KACtBzI,GAAOqI,GAAK,SAAUX,EAAO2H,EAAU0F,GACnC,MAAI/U,GAAO6E,SAAS6C,GACTuS,EAAiBvS,GAErB0H,EAAS1H,EAAO2H,EAAU0F,GAGrC,IAAImF,GAAsBla,EAAOuI,MAC7B4R,GAAc1R,EAAO,QACzBzI,GAAOuI,MAAQ,SAAUb,EAAO5F,EAAUC,GACtC,MAAwB,IAApBa,UAAUnC,OACHyZ,EAEJC,GAAYzS,EAAO5F,EAAUC,GAGxC,IAAIqY,IAAqBpa,EAAOwI,KAC5B6R,GAAa5R,EAAO,OACxBzI,GAAOwI,KAAO,SAAUd,EAAO5F,EAAUC,GACrC,MAAwB,IAApBa,UAAUnC,OACH2Z,GAEJC,GAAW3S,EAAO5F,EAAUC,GAGvC,IAAIuY,IAAiBta,EAAO2S,QAC5B3S,GAAO2S,SAAW,SAAU1Q,EAAOsY,GAC/B,MAAIva,GAAO0B,SAASO,GACqB,IAA9BA,EAAMmQ,QAAQmI,GAElBD,GAAerY,EAAOsY,OAQrC,WAGE,QAAS1Y,GAAcC,EAAUC,GAE/B,GAAe,MAAXA,EAAiB,CACnB,GAAIC,GAAcF,CAClBA,GAAW,SAAUG,EAAOC,EAAOC,GACjC,MAAOH,GAAY5B,KAAK2B,EAASE,EAAOC,EAAOC,IAGnD,MAAOL,GAiOT,QAAS6R,GAAKjM,GACZ,GAAI1G,KAIJ,OAHAhB,GAAO2D,KAAK+D,EAAO,SAAUzF,GAC3BjB,EAAOiB,IAAS,IAEXjB,EAUT,QAASwZ,KACP,OAAO,EAGT,QAASC,KACP,OAAO,EAGT,QAASC,GAAM9T,GACbpH,KAAKmb,cAAgB/T,EACrBpH,KAAKuE,KAAO6C,EAAE7C,KAEdvE,KAAKob,mBAAqBhU,EAAEiU,kBACAxW,SAAvBuC,EAAEiU,kBAEHjU,EAAEkU,eAAgB,EAClBL,EACAD,EAEJhb,KAAKub,UAAYnU,EAAEmU,YAAc,GAAIvW,MAgIvC,QAASwW,GAAY7V,EAAS8V,EAAWnZ,GACnCqD,EAAQ+V,kBAAiC,kBAAbD,EAC9B9V,EAAQ+V,iBAAiBD,EAAW,SAAUE,GAC5CrZ,EAAS1B,KAAKZ,KAAMkb,EAAMU,IAAID,MAC7B,GACMhW,EAAQkW,aACjBlW,EAAQkW,YAAY,KAAOJ,EAAW,SAAUE,GAC9CrZ,EAAS1B,KAAKZ,KAAMkb,EAAMU,IAAID,MAKpC,QAASG,GAAcC,EAAgBrb,GACrC,MAAKqb,IAA4C,gBAAnBA,IAA4C,MAAbrb,GAI7Dqb,EAAiB,IAAMA,EAAiB,IACjCA,EAAenJ,QAAQ,IAAMlS,EAAY,MAJvC,GAUX,QAASsb,GAAYvZ,GACnB,MAAO5B,QAAO4B,GACX4D,QAAQ4V,EAAU,SAClB5V,QAAQ6V,EAAe,QAW5B,QAASC,GAAeC,GACtB,GAAIC,GAAWC,SAASC,yBACpBC,EAAOF,SAASG,cAAc,OAC9BlH,EAAQ,EACRmH,EAAQ,UACRC,EAAW,WACXC,EAAQ,UACRC,EAAW,WACXC,EAAK,OACLC,EAAQ,OAuBZ,KArBAX,EAAOA,EAAKzb,WAEoB,IAA3Byb,EAAKxJ,QAAQ,YAAgD,IAA3BwJ,EAAKxJ,QAAQ,YAClDwJ,EAAO,WAAaA,EAAO,YAC3B7G,EAAQ,GAC2B,IAA1B6G,EAAKxJ,QAAQ,YAClBwJ,EAAKvO,MAAM,yBACb0H,EAAQ,EACR6G,EAAOM,EAAQN,EAAOO,GACU,IAAvBP,EAAKxJ,QAAQ,QACtB2C,EAAQ,EACR6G,EAAOM,EAAQE,EAAQR,EAAOS,EAAWF,GAChCP,EAAKvO,MAAM,cACpB0H,EAAQ,EACR6G,EAAOM,EAAQE,EAAQE,EAAKV,EAAOW,EAAQF,EAAWF,IAK1DH,EAAKQ,UAAY,SAAWZ,EAAO,SAE5B7G,KACLiH,EAAOA,EAAKS,SAGd,MAAOT,EAAKU,YACVb,EAASc,YAAYX,EAAKU,WAG5B,OAAOb,GAKT,QAASe,GAAalG,GACpB,MAAIA,GACKhR,WAAWgR,EAAQ,IAErBrS,OA4JT,QAASwY,GAAG1X,EAAS8V,EAAW6B,GAC1BC,EAAY9B,GACd8B,EAAY9B,GAAW9V,EAAS2X,EAAS,SAAU7B,EAAWnZ,GAC5DkZ,EAAY7V,EAAS8V,EAAWnZ,KAGlCkZ,EAAY7V,EAAS8V,EAAW6B,GA+cpC,QAASE,GAAeC,GACtB,MAAKD,GAAerb,UAAUgD,cAAcnF,OAI5CA,KAAK0d,aAAeC,EACpB3d,KAAK4d,SAAWH,EAAUA,EAAQ9c,WAAW6Q,cAAgB,KAC7DxR,KAAK6d,eACL7d,KAAK8d,yBACL9d,KAAKsJ,QAAU,KACftJ,KAAK+d,aACL/d,KAAKge,gBAAiB,EACtBhe,KAAKie,iBAAkB,EACvBje,KAAKke,WAAa,KAClBle,KAAKme,YAAcX,EAAeY,WAAWC,IAC7Cre,KAAKse,YAAa,EAClBte,KAAKue,UACLve,KAAKwe,QAAU,KACfxe,KAAKye,OAAS,UAEVje,EAAO6G,UAAUoW,KACnBzd,KAAK0e,IAAMjB,KAnBJ,GAAID,GAAeC,GA6mB9B,QAASkB,GAAuBC,EAAOC,GACrC,GAEIpd,GACAgB,EAHA2Z,EAAO,WACP0C,GAAY,CAIhB,KAAKrd,IAAOmd,GACVnc,EAAQmc,EAAMnd,GACVod,GAAS9b,EAAOnC,KAAKie,EAAMD,MAAOnd,KAGlCgB,GAAmB,IAAVA,KACXqc,GAAY,EACZrd,EAAMA,EAAI4E,QAAQ,SAAU0Y,GAC5B3C,GAAQ3a,EACR2a,GAAQ,IACRA,GAAQ3Z,EACR2Z,GAAQ,IAIZ,IAAIyC,EACF,IAAKpd,IAAOod,GAAMD,MAChBnc,EAAQoc,EAAMD,MAAMnd,IAChBgB,GAAmB,IAAVA,KACXqc,GAAY,EACZrd,EAAMA,EAAI4E,QAAQ,SAAU0Y,GAC5B3C,GAAQ3a,EACR2a,GAAQ,IACRA,GAAQ3Z,EACR2Z,GAAQ,IAMd,OADAA,IAAQ,IACD0C,EAAY1C,EAAO,GAG5B,QAAS2C,GAAsBlR,GAC7B,MAAO,IAAMA,EAAM2D,cAarB,QAASwN,GAASza,EAAMoB,EAASsZ,GAC/B,GAAkB,MAAdA,EAAoB,CACtBA,EAAaze,EAAO0D,QAAQ+a,GAAcA,EAAaA,EAAWte,WAAWqH,MAAM,IACnF,IACI+T,GACArb,EACAgC,EAHAqB,EAAI,CAKR,IAAIyZ,EAAe0B,GAAGvZ,GACpBoW,EAAiBpW,EAAQwZ,SAASC,OAC7B,CAAA,GAAIzZ,EAAQ0Z,UAQjB,YAPIC,EACF3Z,EAAQ0Z,UAAU9a,GAAMnC,MAAMuD,EAAQ0Z,UAAWJ,GAEjDze,EAAO2D,KAAK8a,EAAY,SAAUxc,GAChCkD,EAAQ0Z,UAAU9a,GAAM9B,KAK5BsZ,GAAiBpW,EAAQjF,UAI3B,IAFAqb,EAAiBA,GAAkB,GAE5BhY,EAAIkb,EAAWhe,OAAQ8C,IAC5BrD,EAAYue,EAAWlb,GACvBrB,EAAQoZ,EAAcC,EAAgBrb,GAC1B,OAAR6D,EACU,EAAR7B,IACqB,KAAnBqZ,IACFrb,EAAY,IAAMA,GAEpBqb,GAAkBrb,GAEF,IAATgC,IACTqZ,GAAkBA,EAAerF,UAAU,EAAGhU,GAAS,IACvDqZ,EAAerF,UAAUhU,EAAQhC,EAAUO,OAAS,EAAG8a,EAAe9a,SAASoF,QAAQkQ,EAAY,IAInGiH,GAAe0B,GAAGvZ,GAChBA,EAAQ8Y,OACV9Y,EAAQ8Y,OAAOc,WAAWH,GAAarD,EAExCpW,EAAQkY,YAAYuB,GAAarD,EAGlCpW,EAAQjF,UAAYqb,GAqE1B,QAASyD,GAAeC,EAAe/c,GACrC,GAAIgd,GAAcC,EAAatT,KAAKoT,EACpC,IAAIC,GAAeA,EAAYE,UAAY,EAAG,CAM5C,IALA,GAGIlf,GAHAmf,EAAaJ,EAAcI,WAC3BC,EAAa,EACbC,EAAe,EAGZrd,GAASqd,GAAc,CAC5B,IAAKF,EAAWC,GACd,MAAO/a,QAAOib,iBAEhBtf,GAAYmf,EAAWC,GAAYpf,UACnCof,IAE0C,IAAtChE,EAAcpb,EAAW,WAC3Bqf,IAIJ,IAAKF,EAAWC,GACd,MAAO/a,QAAOib,iBAKhB,KAFAtf,EAAYmf,EAAWC,GAAYpf,UAEU,IAAtCob,EAAcpb,EAAW,WAAiB,CAE/C,GADAof,KACKD,EAAWC,GACd,MAAO/a,QAAOib,iBAEhBtf,GAAYmf,EAAWC,GAAYpf,UAGrC,MAAOof,GAGT,MAAOpd,GAGT,QAASud,GAAiB1b,EAAMoB,GAC9B,GAAIia,IAAY,EACZF,EAAcC,EAAaO,kBAAkBva,GAC7Cwa,EAAoBR,EAAaO,kBAAkBva,EAAQya,YAC3DC,EAAkBX,EAAYW,gBAC9BC,EAAkB,UAAR/b,EAAmB,OAAiB,OAARA,EAAgB,OAASA,EAC/Dgc,EAA0B,UAARhc,EAAmB,WACvCob,EAAaa,MAAM7a,GAAS,GACxBA,EAAQya,YACVza,EAAQya,WAAWK,YAAY9a,IAEvB,QAARpB,EAAiB,WACnBoB,EAAQiZ,MAAM8B,QAAU,QACtBlgB,EAAOkE,KACPic,EAAgB,WAClBjB,EAAYE,WAAa,EACzBO,EAAkBP,WAAa,EAC1BF,EAAYE,WACfW,IAIJ,IAAwB,GAApB5a,EAAQ2B,SAEV,WADAiZ,IAQF,IAJY,QAARhc,IACFoB,EAAQiZ,MAAM8B,QAAU,IAGtBhB,EAAYkB,WAEd,WADAL,IAIF,IAAIF,EAAiB,CACnBT,GAAY,EACZF,EAAYE,WAAa,EACzBO,EAAkBP,WAAa,CAC/B,IAAItS,GAAU9M,EAAO8M,QAAQ3H,GACzBpD,EAAU+K,EAAQuT,OAASvT,EAAQwT,KACvCT,GAAgBzf,KAAK2B,EAASoD,EAASgb,EAAeL,GAExD,MAAOV,IAAamB,EAAWT,EAAS3a,EAAS4a,EAAiBI,GAGpE,QAASI,GAAWxc,EAAMoB,EAAS4a,EAAiBI,GAuClD,QAAS7S,KACPkR,EAAS,SAAUrZ,EAAS,KAAOpB,GACnCya,EAAS,SAAUrZ,EAAS,KAAOpB,EAAO,QAC1Coc,IACAhb,EAAQqb,oBAAoB,gBAAiBlT,GAAK,GAClDnI,EAAQqb,oBAAoBvF,EAAW3N,GAAK,GA3C9C,GAAqB,mBAAV/N,SAAoD8E,SAA3B9E,OAAOkhB,gBAEzC,WADAV,IAGFvB,GAAS,MAAOrZ,EAAS,KAAOpB,EAEhC,IAEIkX,GAFAyF,EAAgBnhB,OAAOohB,iBAAiBxb,GACxCyb,EAAS,EAEiBvc,UAA1B9E,OAAOshB,gBAAgExc,SAAhC9E,OAAOuhB,sBAChDF,EAAS,WACT3F,EAAY,sBAEZA,EAAY,cAGd,IAAI8F,GAAqBrb,WAAWgb,EAAc,yBAA2B,EACzEM,EAAkBtb,WAAWgb,EAAc,sBAAwB,EACnEO,EAAoBvb,WAAWgb,EAAcE,EAAS,wBAA0B,EAChFM,EAAiBxb,WAAWgb,EAAcE,EAAS,qBAAuB,CAE9E,OAA0B,IAAtBG,GAA8C,GAAnBC,GACR,GAArBC,GAA4C,GAAlBC,GAE1B1C,EAAS,SAAUrZ,EAAS,KAAOpB,OACnCgc,OAIFZ,EAAaO,kBAAkBva,GAASia,WAAa,EACrDD,EAAaO,kBAAkBva,EAAQya,YAAYR,WAAa,EAEhE3T,WAAW,WACT+S,EAAS,MAAOrZ,EAAS,KAAOpB,EAAO,QACvCoB,EAAQ+V,iBAAiB,gBAAiB5N,GAAK,GAC/CnI,EAAQ+V,iBAAiBD,EAAW3N,GAAK,IACxC,IAUI,GAGT,QAAS6T,GAAeC,GACtB,MAAKD,GAAexf,UAAUgD,cAAcnF,OAI5CA,KAAKiC,iBAEuB,GAAxB2f,EAAYta,UACdtH,KAAK6hB,aAAeD,EAAYE,UAChC9hB,KAAK0e,IAAMkD,GAEX5hB,KAAK6hB,aAAeD,IATb,GAAID,GAAeC,GA4C9B,QAASG,GAAcC,EAAavC,GAalC,IAZA,GAEI9Z,GACA8X,EACAwE,EACAC,EACAC,EACA7a,EACAsa,EACAQ,EACA/V,EAVAgW,EAAatiB,OAAOuiB,qBACpBC,KAWGP,GAAa,CAElB,GADA1a,EAAW0a,EAAY1a,SACP,GAAZA,EAAe,CAEjBmW,EAAUuE,EAAYvE,QAAQjM,cAC9B7L,EAAU,GAAI6X,GAAewE,GAC7Brc,EAAQiY,SAAWH,EACnB9X,EAAQ2D,QAAUmW,EACdA,IACF9Z,EAAQ6c,MAAQ/C,EAAc+C,OAAS/C,EAAcgD,eAEvD9c,EAAQsY,iBAAkB,EAC1BiE,EAAiBF,EAAYzC,WAC7B0C,IACA,KAAK,GAAIle,GAAI,EAAGA,EAAIme,EAAejhB,OAAQ8C,IACzCoe,EAAgBD,EAAene,GAEA,UAA3Boe,EAAcO,WACfP,EAAcQ,WAEdC,EAAQC,GAAK,GAA+B,SAA1BV,EAAcO,UAAuBP,EAAcL,aACtEG,EAAkBE,EAAcO,SAASlR,eAAiBoR,EAAQC,GAAK,GAAKV,EAAcL,UAAYK,EAAc1f,MACpHkD,EAAQsY,iBAAkB,EAG9BtY,GAAQkY,YAAcoE,EACtBtc,EAAQmd,4BAA4BT,GAEhCL,EAAYpD,MAAMmE,UACpBpd,EAAQ2Y,YAAa,EACrB3Y,EAAQ4Y,OAASyE,EAAoBhB,EAAYpD,MAAMmE,UAGzDE,EAAiBtd,GACF,UAAX8X,GAAkC,SAAXA,GAAiC,QAAXA,GAAqB9X,EAAQud,SAAS,WACrFvd,EAAQuY,WAAa8D,EAAYhF,UAEjCrX,EAAQoY,UAAYgE,EAAcC,EAAYnC,WAAW,GAAIla,GAG/D4c,EAASjhB,KAAKqE,OACT,IAAgB,GAAZ2B,EAKT+E,EAAO2P,EAAYgG,EAAY3V,MAC/BkW,EAASjhB,KAAKqJ,EAAWwY,OAAO9W,EAAM,KAAM2V,IAAgB3V,OACvD,IAAgB,GAAZ/E,EAIT,GAFAsa,EAAcI,EAAYF,UAC1BM,EAAqBR,EAAYvb,QAAQkQ,EAAY,IACR,IAAzC6L,EAAmBxP,QAAQ,UAC7BjN,EAAU,GAAIgc,GAAeK,GAC7Brc,EAAQ2D,QAAUmW,EAClB9Z,EAAQkY,YAAYuF,GAAiBhB,EAAmB1L,UAAU,GAClErK,EAAO0V,EAAcC,EAAYqB,YAAa1d,GAC9CA,EAAQoY,UAAY1R,EAAKkW,SACzB5c,EAAQ+Y,IAAI4E,YAAcjX,EAAK2V,YAC/BA,EAAc3V,EAAK2V,aAAeA,EAClCO,EAASjhB,KAAKqE,OACT,CAAA,GAAIgc,EAAezC,GAAGO,IAA4D,IAA1C2C,EAAmBxP,QAAQ,WACxE,OACE2P,SAAUA,EACVP,YAAaA,EAEV,IAAIL,EAAezC,GAAGO,GAC3B8C,EAASjhB,KAAK,OAASsgB,EAAc,WAChC,IAAIS,EAAY,CACrB,GAAIkB,GAASpd,SAAS,SAASuR,KAAK0K,GAAqB,KACpD5hB,EAAO8E,MAAMie,IAAWlB,EAAWkB,IACtChB,EAASjhB,KAAKqJ,EAAWwY,OAAOd,EAAWkB,SAEM,KAA1CnB,EAAmBxP,QAAQ,YACpC2P,EAASjhB,KAAK,OAASsgB,EAAc,OAGzCI,EAAcA,EAAYqB,YAE5B,MAAOd,GAGT,QAASS,GAAoBQ,GAO3B,IAAK,GAJD9gB,GACAkc,EACAvK,EAJAoP,EAASD,EAAYxb,MAAM,KAC3B0b,KAKK3f,EAAI,EAAGA,EAAI0f,EAAOxiB,OAAQ8C,IACjC6a,EAAQ6E,EAAO1f,GACX6a,IACFlc,EAAQkc,EAAMhM,QAAQ,KACT,IAATlQ,IACF2R,GAAUuK,EAAMlI,UAAU,EAAGhU,GAAQkc,EAAMlI,UAAUhU,EAAQ,IAC7DghB,EAAYrP,EAAO,GAAG7C,cAAcnL,QAAQkQ,EAAY,KAAOlC,EAAO,GAAGhO,QAAQkQ,EAAY,KAKnG,OAAOmN,GAIT,QAAST,GAAiBtd,GACxB,GACIge,GADAlG,EAAU9X,EAAQiY,QAGtB,OAAoC/Y,UAAhC+e,GAAmBnG,QACrB9X,EAAQqY,eAAiB4F,GAAmBnG,KAG9CkG,EAAarH,SAASG,cAAc,OACpCkH,EAAWxG,YAAYb,SAASG,cAAcgB,SAC9CmG,GAAmBnG,GAAW9X,EAAQqY,eAAwD,KAAvC2F,EAAW3G,UAAUpK,QAAQ,QAGtF,QAASiR,GAAe/J,GACtB,MAAO,UAAUrX,GACf,MAAyB,KAArBW,UAAUnC,OACLjB,KAAK8Z,IAEd9Z,KAAK8Z,GAAgBrX,EACdzC,OAKX,QAAS8jB,GAAWC,EAAOzhB,GACzB,GAQI0hB,GACAnK,EATAoK,EAAY,EACZC,EAAgB,EAChBC,EAAqB,EACrBC,EAAsB,EACtBC,GAAmB,EACnBC,GAAmB,EACnB1M,EAAa,EACb2M,IAIJR,GAAQA,GAAS,EAEjB,KAAK,GAAIhgB,GAAI,EAAGA,EAAIggB,EAAM9iB,OAAQ8C,IAChCkgB,EAAYF,EAAM3d,OAAOrC,GAEpBsgB,GAAqBC,IACP,KAAbL,EACFG,IACsB,KAAbH,EACTG,IACsB,KAAbH,EACTE,IACsB,KAAbF,GACTE,KAIuB,IAAvBA,GAAoD,IAAxBC,IAIf,KAAbH,EACFI,GAAoBA,EACE,KAAbJ,IACTK,GAAoBA,GAGlBD,GAAoBC,IAIP,KAAbL,GACoB,IAAlBC,IACFrK,EAAakK,EAAMrN,UAAUkB,EAAY7T,GAAGsC,QAAQkQ,EAAY,IAChEqB,EAAa7T,EAAI,GAEnBmgB,KACsB,KAAbD,GACTC,IACsB,IAAlBA,IACFF,EAAmBD,EAAMrN,UAAUkB,EAAY7T,GAAGsC,QAAQkQ,EAAY,IAClEyN,EAAiB/iB,QACnBsjB,EAAWjjB,KAAK0iB,GAGdnK,IACFA,EAAaA,EAAWxT,QAAQ,mBAAoB,IACpD/D,EAASuX,EAAY0K,IAEvBA,KACA1K,EAAahV,SAEO,KAAbof,GAAqC,GAAjBC,GAC7BF,EAAmBD,EAAMrN,UAAUkB,EAAY7T,GAAGsC,QAAQkQ,EAAY,IAClEyN,EAAiB/iB,QACnBsjB,EAAWjjB,KAAK0iB,GAElBpM,EAAa7T,EAAI,GACK,KAAbkgB,GAAsC,IAAlBC,IAC7BtM,EAAa7T,EAAI,KAKvB,QAASygB,GAAS5gB,GAChB5D,KAAKykB,SAAW7gB,MAChB5D,KAAK0kB,sBAkXP,QAASC,GAAYZ,EAAOpe,GAC1B,GAAImF,GAAQ0Z,EAASI,WAAWb,KAyBhC,OAvBAD,GAAWC,EAAO,SAAUlK,EAAY0K,GACtC,GAAIM,GAASrkB,EAAOskB,QAAQjL,GACxBkL,GACFljB,KAAMgY,EACNmL,OAAQT,EACRR,MAAOlK,EAAa,IAAM0K,EAAWtW,KAAK,KAAO,IAG/C4W,GAEgB,QAAdhL,GAAsC,OAAdA,EAC1B/O,EAAM8K,QAAQmP,GAEdja,EAAMxJ,KAAKyjB,GAKbvkB,EAAOykB,MAAMC,eAAeH,EAAWpf,KAKpCmF,EAkzBT,QAASqa,GAAaC,GACpBplB,KAAKolB,WAAaA,EAClBplB,KAAKqlB,gBACLrlB,KAAKslB,UAgQP,QAASC,GAAmBH,GACtBA,EAAWI,kBACbJ,EAAWK,eAAiBjlB,EAAOiI,KAAKid,EAAeN,GACvDA,EAAW/H,GAAG,MAAO+H,EAAWK,iBAIpC,QAASC,KACP,GAAIN,GAAaplB,KACbyC,EAAQ2iB,EAAWO,UACnB7b,EAAyC,GAA9Bsb,EAAWI,gBAAuB/iB,EAAQA,EAAMwR,GAE/D2R,GAAOC,IAAIT,EAAY,MAAOA,EAAWK,gBACzCL,EAAWK,eAAiB5gB,OAE5BihB,EAASC,iBACTjc,EAASlJ,KAAKwkB,EAAWY,aACzBxlB,EAAO2D,KAAK2hB,EAASG,gBAAiB,SAAUC,GAC9C,GAAIC,GAAgBD,EAAWE,cAAgBF,EAAWE,kBACtDC,GAAS,CACb7lB,GAAO2D,KAAKgiB,EAAc,SAAU1jB,GAClC,MAAI2iB,KAAe3iB,GACjB4jB,GAAS,GACF,GAFT,SAKGA,GACHF,EAAa7kB,KAAK8jB,KAKxB,QAASkB,GAAmBlB,GAC1B,GAAI9X,GAAU8X,EAAWY,WACzB,OAAqC,IAA9BZ,EAAWI,gBAAuBJ,EAAWO,UAAU/kB,KAAK0M,GACjC,GAA9B8X,EAAWI,gBAAuBJ,EAAWO,UAAU1R,IAAIrT,KAAK0M,GAChE8X,EAAWO,UAvtHjB,GAAIC,GAAS,WACX,QAASW,GAAkB9K,GACzB,MAAO,UAAUnZ,EAAUgL,GAMzB,MALIlK,WAAUnC,OAAS,EACrB2kB,EAAOvI,GAAGrd,KAAMyb,EAAWnZ,EAAUgL,GAErCsY,EAAOvI,GAAGrd,KAAMyb,EAAWnZ,GAEtBtC,MAIX,GAAIyK,IACF4S,GAAI,SAAU5B,EAAWnZ,EAAUgL,GAMjC,MALIlK,WAAUnC,OAAS,EACrB2kB,EAAOvI,GAAGrd,KAAMyb,EAAWnZ,EAAUgL,GAErCsY,EAAOvI,GAAGrd,KAAMyb,EAAWnZ,GAEtBtC,MAGToY,KAAM,SAAUoO,EAAYlkB,EAAUC,GACpCqjB,EAAOxN,KAAKpY,KAAMwmB,EAAYlkB,EAAUC,IAG1CsjB,IAAK,SAAUpK,EAAWnZ,GACxBsjB,EAAOC,IAAI7lB,KAAMyb,EAAWnZ,IAG9B0X,QAAS,SAAUyB,GACjBmK,EAAO5L,QAAQha,KAAMyb,EAAWjb,EAAOqF,QAAQzC,WAAWP,MAAM,EAAG,OAKvE,OAFA4H,GAAQgc,SAAWhc,EAAQuP,SAGzB0M,SAAU,SAAUpQ,EAAQkQ,GAC1BA,EAAahmB,EAAO0D,QAAQsiB,GAAcA,GAAcA,EACxD,KAAK,GAAIziB,GAAI,EAAGA,EAAIyiB,EAAWvlB,OAAQ8C,IAAK,CAC1C,GAAI8V,GAAa2M,EAAWziB,EAE1BuS,GAAOuD,GADLpP,EAAQoP,GACWpP,EAAQoP,GAER0M,EAAkB1M,KAK7CwD,GAAI,SAAU/G,EAAQkQ,EAAYlkB,EAAUC,GAC1CikB,EAAahmB,EAAOqF,QAAQ2gB,GAAYvY,KAAK,KAAKjG,MAAM,IAExD,IAEIyT,GAFA1X,EAAI,EACJ9C,EAASulB,EAAWvlB,MAGxB,IAAKqB,EAOL,IAHKgU,EAAOqQ,UACVrQ,EAAOqQ,YAEE1lB,EAAJ8C,EAAYA,IACjB0X,EAAY+K,EAAWziB,GAClBuS,EAAOqQ,QAAQlL,KAClBnF,EAAOqQ,QAAQlL,OAEjBnF,EAAOqQ,QAAQlL,GAAWna,MACxBgB,SAAUA,EACVC,QAASA,KAKf6V,KAAM,SAAU9B,EAAQkQ,EAAYlkB,EAAUC,GAC5CqjB,EAAOvI,GAAG/G,EAAQkQ,EAAYlkB,EAAUC,GACxCqjB,EAAOvI,GAAG/G,EAAQkQ,EAAY,WAC5BZ,EAAOC,IAAIvP,EAAQkQ,EAAYlkB,MAInCujB,IAAK,SAAUvP,EAAQmF,EAAWnZ,GAC5B9B,EAAOa,WAAWoa,KACpBnZ,EAAWmZ,EACXA,EAAY5W,QAGIA,SAAd4W,GAAwC5W,SAAbvC,EAC7B9B,EAAO2D,KAAKmS,EAAOqQ,QAAS,SAAUC,EAAQC,GAC1BhiB,SAAd4W,GAAwC5W,SAAbvC,EAC7BgU,EAAOqQ,QAAQlL,MAEfjb,EAAO2D,KAAKyiB,EAAQ,SAAUE,EAAWpkB,GACvC,MAAIokB,GAAUxkB,UAAYA,GACxBgU,EAAOqQ,QAAQE,GAAkBre,OAAO9F,EAAO,IACxC,GAFT,WAQN4T,EAAOqQ,QAAU9hB,QAIrBmV,QAAS,SAAU1D,EAAQmF,GACzB,GACIsL,GACAxkB,EACAT,EAHAN,GAAS,CAyBb,OApBI8U,IAAUA,EAAOqQ,UACnBI,EAAazQ,EAAOqQ,QAAQlL,GAExBsL,GAAcA,EAAW9lB,OAAS,IACpCa,EAAOgB,MAAMX,UAAUU,MAAMjC,KAAKwC,UAAW,GAE7C5C,EAAO2D,KAAK4iB,EAAY,SAA2BD,GAC7CA,IACFvkB,EAAU+T,EACgBzR,SAAtBiiB,EAAUvkB,UACZA,EAAUukB,EAAUvkB,SAElBukB,EAAUxkB,SAASF,MAAMG,EAAST,MAAU,IAC9CN,GAAS,QAOZA,GAGTE,IAAK,SAAU4U,EAAQmF,GACrB,QAASjb,EAAOqH,OAAOyO,EAAQ,WAAamF,EAAY,iBAM9D,WA6BE,QAASuL,KACP,GAA4B,aAAxB1K,SAAS2K,WACXhb,WAAWib,OACN,IAAI5K,SAASZ,iBAClBY,SAASZ,iBAAiB,mBAAoByL,GAAW,GACzDpnB,OAAO2b,iBAAiB,OAAQyL,GAAW,OACtC,CACL7K,SAAST,YAAY,qBAAsBsL,GAC3CpnB,OAAO8b,YAAY,SAAUsL,EAE7B,IAAIC,IAAM,CACV,KACEA,EAA6B,MAAvBrnB,OAAOsnB,cAAwB/K,SAASgL,gBAC9C,MAAOlgB,IAELggB,GAAOA,EAAIG,WACb,QAAUC,KACR,IAAKhnB,EAAOinB,WAAY,CACtB,IACEL,EAAIG,SAAS,QACb,MAAOngB,GACP,MAAO6E,YAAWub,EAAe,IAGnCN,SAOV,QAASC,MACH7K,SAASZ,kBAAkC,QAAdC,MAAMpX,MAAyC,YAAvB+X,SAAS2K,aAChEC,IAIJ,QAASA,KACF1mB,EAAOinB,aACVjnB,EAAOinB,YAAa,EACpB7B,EAAO5L,QAAQxZ,EAAO0C,KAAM,YAC5B0iB,EAAOC,IAAIrlB,EAAO0C,KAAM,aArE5B1C,EAAOinB,YAAa,EAWpBjnB,EAAOknB,SAAW,SAAUplB,EAAUC,GACb,mBAAZ+Z,WAA4C,mBAAVvc,SAC1CA,OAAO4nB,UAAYrL,SAASqL,WAI/BrlB,EAAWD,EAAcC,EAAUC,GAC/B/B,EAAOinB,YAAqC,YAAvBnL,SAAS2K,YAC/BlnB,OAAO6nB,QAAU7nB,OAAO6nB,OAAOC,SAChCrnB,EAAOinB,YAAa,EACpBnlB,MAEAsjB,EAAOvI,GAAG7c,EAAO0C,KAAM,WAAYZ,GACnC0kB,SAkDJ,IAEIzQ,IAFQzT,MAAMX,UAAUU,MAEX,eAUbuc,EAAY,QAEZ0F,EAAWtkB,EAAOskB,WAGpBgD,EAAoB,uCACpBC,EAAkB,MAwBtB7M,GAAM8M,kBACJC,IAAK,wHAAwHjgB,MAAM,KACnIkgB,MAAO,mGAAmGlgB,MAAM,KAChHmgB,SAAU,4BAA4BngB,MAAM,MAG9CkT,EAAMkN,eAAiB,SAAUjN,EAAeQ,EAAO0M,GACrD7nB,EAAO2D,KAAK+W,EAAM8M,iBAAiBK,GAAiB,SAAUvO,GAC5D6B,EAAM7B,GAAgBqB,EAAcrB,MAIxCoB,EAAM/Y,WACJmmB,eAAgB,WACZ,GAAIlhB,GAAIpH,KAAKmb,aAEbnb,MAAKob,mBAAqBH,EAEtB7T,EAAEkhB,eAEFlhB,EAAEkhB,iBAIFlhB,EAAEkU,aAAc,GAIxBiN,gBAAiB,WACb,GAAInhB,GAAIpH,KAAKmb,aAEbnb,MAAKwoB,qBAAuBvN,EAGxB7T,EAAEmhB,iBACFnhB,EAAEmhB,kBAKNnhB,EAAEqhB,cAAe,GAGrBC,yBAA0B,WACtB,GAAIthB,GAAIpH,KAAKmb,aAEbnb,MAAK2oB,8BAAgC1N,EAEjC7T,EAAEshB,0BACFthB,EAAEshB,2BAGN1oB,KAAKuoB,oBAIXrN,EAAMU,IAAM,SAAUT,GACpB,GAAI5W,GAAO4W,EAAc5W,KACrBoX,EAAQ,GAAIT,GAAMC,EA4BtB,OA1BAD,GAAMkN,eAAejN,EAAeQ,EAAO,OAItCA,EAAM7X,SACP6X,EAAM7X,OAASqX,EAAcyN,YAActM,UAKjB,IAA1BX,EAAM7X,OAAOwD,WACbqU,EAAM7X,OAAS6X,EAAM7X,OAAOsc,YAKhCzE,EAAMkN,UAAYlN,EAAMkN,QAEpBf,EAAkBgB,KAAKvkB,GACvB2W,EAAM6N,SAAS5N,EAAeQ,GACvBoM,EAAgBe,KAAKvkB,IAAwB,MAAfoX,EAAMqN,QAC3C9N,EAAMkN,eAAejN,EAAeQ,EAAO,YAE3CA,EAAMqN,MAAkC,MAA1B7N,EAAc8N,SAAmB9N,EAAc8N,SAAW9N,EAAc+N,SAGnFvN,GAGTT,EAAM6N,SAAW,SAAU5N,EAAeQ,GACxC,GAEItR,GACA8e,EACAC,EAJAC,EAASlO,EAAckO,OACvBC,EAAcnO,EAAcmO,WAKhCpO,GAAMkN,eAAejN,EAAeQ,EAAO,SAGxB,MAAfA,EAAM4N,OAA0C,MAAzBpO,EAAcqO,UACrCL,EAAWxN,EAAM7X,OAAO2lB,eAAiBnN,SACzC8M,EAAMD,EAAS7B,gBACfjd,EAAO8e,EAAS9e,KAEhBsR,EAAM4N,MAAQpO,EAAcqO,SAAWJ,GAAOA,EAAIM,YAAcrf,GAAQA,EAAKqf,YAAc,IAAMN,GAAOA,EAAIO,YAActf,GAAQA,EAAKsf,YAAc,GACrJhO,EAAMiO,MAAQzO,EAAc0O,SAAWT,GAAOA,EAAIU,WAAazf,GAAQA,EAAKyf,WAAa,IAAMV,GAAOA,EAAIW,WAAa1f,GAAQA,EAAK0f,WAAa,KAIhJpO,EAAMqO,eAAiBV,IACxB3N,EAAMqO,cAAgBV,IAAgB3N,EAAM7X,OAASqX,EAAc8O,UAAYX,GAK9E3N,EAAMqN,OAAoBnkB,SAAXwkB,IAEhB1N,EAAMqN,MAAkB,EAATK,EAAa,EAAc,EAATA,EAAa,EAAc,EAATA,EAAa,EAAI,GA6B1E,IAAIpN,GAAW,KACXC,EAAgB,KAOdnZ,EAASH,OAAOT,UAAUa,eAE1B2a,EAAyB,4BAEzBuM,EAAa,UAEb9G,EAAgB,aA8ClBR,IASoB,oBAAbtG,WACT9b,EAAOgD,OAAOof,GACZC,GAAIvG,UAAa,WAQf,IAPA,GAAI/Y,GAAU,EACV4mB,EAAM7N,SAASG,cAAc,OAC7B2N,EAASD,EAAIE,qBAAqB,KAMpCF,EAAInN,UAAY,oBAAsBzZ,EAAW,wBACjD6mB,EAAO,KAET,MAAO7mB,GAAU,EAAIA,EAAUsB,UAGjCylB,MAAQvqB,QAAUA,OAAOwqB,WAAaxqB,OAAOyqB,OAASzqB,OAAOyqB,MAAMjnB,SAAW4C,SAASpG,OAAOyqB,MAAMjnB,UAAW,KAAQsB,OAEvH4lB,OAAQ1qB,QAAUA,OAAOwqB,WAAanN,EAAard,OAAOwqB,UAAUG,UAAU7c,MAAM,8CAEpF8c,QAAS5qB,QAAUA,OAAOwqB,WAAanN,EAAard,OAAOwqB,UAAUG,UAAU7c,MAAM,sBAIzF,IAAI8R,GAAe,WAIjB,QAASiL,GAAUjlB,GACjB,GAAInE,GAASmE,EAAU6X,EAAe0B,GAAGvZ,GAAWA,EAAQ8Y,OAAS9Y,EAAQ8Y,OAAOc,WAAW2K,GAAcvkB,EAAQkY,YAAYqM,GAC3G,GAApBvkB,EAAQ2B,SAAgB3B,EAAQklB,aAAaX,GACvB,GAApBvkB,EAAQ2B,SAAgB,iBAAiBoQ,KAAK/R,EAAQmc,WACpD,KACJ,IAEF,OAAOthB,GAAO0D,QAAQ1C,GAAUA,EAAO,GAAKA,EAG9C,QAASspB,GAAUnlB,EAASolB,GACtBvN,EAAe0B,GAAGvZ,GACpBA,EAAQqlB,KAAKd,EAAYa,GACI,GAApBplB,EAAQ2B,UACjB3B,EAAQslB,aAAaf,EAAYa,GAjBrC,GAAI1e,MACA6e,EAAW,CAoBf,QACEH,GAAI,SAAUplB,GACZ,MAAOilB,GAAUjlB,IAInBoU,MAAO,WACL1N,KACA6e,EAAW,GAIbC,eAAgB,WACd3qB,EAAO2D,KAAKkI,EAAM,SAAU5J,GACtBA,GAASA,EAAM2oB,MAAQ9O,SAASjS,KAAK8I,SAAS1Q,EAAM2oB,MACtDzL,EAAaa,MAAM/d,EAAMsoB,IAAI,MAKnC7K,kBAAmB,SAAUva,GAC3B,GACI0lB,GACAN,EAFAO,EAAY3lB,GAAWA,EAAQ+X,cAAgBC,CAyCnD,OApCE0N,GADEC,EACYjf,EAAK1G,EAAQwZ,SAAS+K,IAEtB7d,EAAK1G,GAAWilB,EAAUjlB,IAGrC0lB,IACHN,EAAKG,IACDvlB,IACE2lB,GAAa3lB,EAAQ6c,OACvB7c,EAAQsY,iBAAkB,EACtBtY,EAAQ8Y,OACV9Y,EAAQ8Y,OAAOc,WAAW2K,GAAca,EAExCplB,EAAQkY,YAAYqM,GAAca,GAGpCD,EAAUnlB,EAASolB,IAUrBM,EAAchf,EAAK0e,GALhBplB,GAMDolB,GAAIA,EACJQ,QAASD,EAAY3lB,EAAU,KAC/Bia,UAAW,EACX4L,eACA5K,WAAY0K,IARZP,GAAIA,IAaHM,GAGTI,KAAM,SAAUV,GACd,MAAO1e,GAAK0e,IAGd1e,KAAM,SAAU1G,EAAS9D,EAAMY,GAC7B,GAAIjB,GAAS6K,EAAKue,EAAUjlB,IAAYA,EACxC,IAAKnE,EAGL,MAAwB,IAApB4B,UAAUnC,OACLO,GACE4B,UAAUnC,OAAS,IAC5BO,EAAOK,GAAQY,GAEVjB,EAAOK,KAGhB2e,MAAO,SAAU7a,EAAS+lB,GACxB,GAAIX,GAAKH,EAAUjlB,IAAYA,EAC3B0lB,EAAchf,EAAK0e,IAEnBM,GAAiBA,EAAYM,WAAYD,IAC3ClrB,EAAO2D,KAAKknB,EAAYG,YAAa,SAAU/oB,GAC7C,IAAK,GAAIsB,GAAI,EAAGA,EAAItB,EAAMmpB,UAAU3qB,OAAQ8C,IACtCtB,EAAMmpB,UAAU7nB,GAAG8nB,WAAaxf,EAAK0e,KACvCtoB,EAAMmpB,UAAUpjB,OAAOzE,EAAG,GAC1BA,OAINsI,EAAK0e,GAAMlmB,OACP2Y,EAAe0B,GAAGvZ,GACpBA,EAAQqlB,KAAKd,EAAY,MACI,GAApBvkB,EAAQ2B,UACjB3B,EAAQmmB,gBAAgB5B,SAiB9B3M,GACF5F,MAAO,SAAUhS,EAAS2X,EAASyO,GAGjC,QAASnrB,GAAKwG,GACZuR,aAAaN,GACbiF,EAAQlW,GAGV,QAAS4kB,KACF3T,IACHA,EAAUpM,WAAWrL,EAAM,IAT/B,GAAIyX,EAaAuK,GAAQC,GAAK,IACfkJ,EAAU,iBAAkB,SAAU3kB,GACC,UAAjCA,EAAE+T,cAAcrB,cAClBlZ,EAAKwG,KAIS,GAAdwb,EAAQC,KACVkJ,EAAU,QAASnrB,GACnBmrB,EAAU,UAAWnrB,IAEnBgiB,EAAQC,IAAM,IAChBoJ,EAA6BtmB,EAAS/E,GACtCmrB,EAAU,UAAWC,MAGvBD,EAAU,QAASnrB,GAEfgiB,EAAQ6H,OAAS,GAAsC,YAAjC9kB,EAAQ8X,QAAQjM,eACxCua,EAAU,UAAWC,GACrBD,EAAU,QAASC,GACnBD,EAAU,MAAOC,IACRpJ,EAAQ0H,MAAQ,GACzByB,EAAU,UAAWC,GACZpJ,EAAQ+H,QAAU,IAC3BoB,EAAU,kBAAmBnrB,GAC7BmrB,EAAU,WAAYnrB,GACtBmrB,EAAU,OAAQnrB,OAMtBqrB,EAA+B,WAGjC,QAASC,GAAuB9kB,GAC9B,GAAIzB,GAAU3F,KAAKmsB,cACf7O,EAAU3X,GAAWga,EAAatT,KAAK1G,EAAS,kBAChD2X,IACFA,EAAQlW,GANZ,GAAIglB,IAAe,CAUnB,OAAO,UAAUzmB,EAAS2X,GACnB8O,IACH5Q,EAAY7V,EAAQ8jB,cAAe,kBAAmByC,GACtDE,GAAe,GAEjBzM,EAAaO,kBAAkBva,GAAS0mB,gBAAkB/O,MAK1D8N,EAAM5qB,EAAO4qB,KACfkB,eACE3U,OAAO,EACP4U,UAAU,EACVC,QAAQ,GAGVC,YACEC,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVC,MAAM,EAGNC,OAAO,EACPzT,MAAM,EACN0T,UAAU,EACVC,kBAAkB,EAClBC,OAAO,EACPC,OAAO,EACP3J,QAAQ,EACR3S,OAAO,EACPuc,QAAQ,EACRC,KAAK,EACLC,MAAM,EACNC,KAAK,EACLC,MAAM,GAGRC,OACEC,OAAO,EACPC,SAAS,EACTjrB,OAAO,EACPkrB,SAAS,EACTC,UAAU,EACVltB,WAAW,EACXmtB,SAAS,GAGXC,SACEL,MAAO,UACPC,QAAS,YACTE,SAAU,YAGZG,SACErtB,UAAW,QACXmtB,QAAS,OAGXG,SAAU,SAAUroB,EAASjF,GACvBiF,GACFqZ,EAAS,MAAOrZ,EAASjF,IAI7ButB,YAAa,SAAUtoB,EAASjF,GAC1BiF,GACFqZ,EAAS,SAAUrZ,EAASjF,IAIhC0b,KAAM,SAAUzW,EAASyW,GACvB,GAAIzW,EAEF,GADAyW,EAAOA,EAAKzb,WACY,GAApBgF,EAAQ2B,SACV8jB,EAAI8C,QAAQ9R,KAAKzW,EAASyW,OACrB,IAAIwG,EAAQC,GAAK,GAAI,CAC1B,KAAOld,EAAQuX,YACbvX,EAAQ8a,YAAYzgB,KAAKmuB,SAASjR,WAEpCvX,GAAQwX,YAAYhB,EAAeC,QAEnCzW,GAAQqX,UAAYZ,GAK1BgS,IAAK,SAAUzoB,EAAS9D,EAAMY,GAEvBkD,GAAY9D,IAIL,WAARA,EACFwsB,EAAUC,cAAc3oB,EAAkB,QAATlD,GAAkB,GAAQ,GAE3DkD,EAAQiZ,MAAM/c,GAAQY,IAI1B4a,GAAI,SAAU1X,EAAS8V,EAAW6B,GAC5B3X,GACF0X,EAAG1X,EAAS8V,EAAW6B,IAI3BuI,IAAK,aAIL0I,WAAY,SAAU5oB,EAAS6oB,GACzB7oB,GAAW6oB,GACbpD,EAAIJ,KAAKrlB,EAAS6oB,EAAe,OAIrCxD,KAAM,SAAUrlB,EAAS6oB,EAAeC,GACtC,GAAIC,GAAatD,EAAIoC,MAAMgB,EAG3B,OAFAA,GAAgBpD,EAAI0C,QAAQU,EAAchd,gBAAkBgd,EAEvDhuB,EAAO0C,KAAKyrB,eACfnuB,EAAO0C,KAAKyrB,cAAchpB,UAAYA,GACtCnF,EAAO0C,KAAKyrB,cAAcH,eAAiBA,IAC1C7oB,EAHH,OAOwB,GAApBA,EAAQ2B,aACV8jB,GAAI8C,QAAQlD,KAAKrlB,EAAS6oB,EAAeC,IAItB,WAAjBD,IAMAC,EALoB,WAAlBA,GACuB,gBAAlBA,IACyB,SAAhC9oB,EAAQklB,aAAa,SACrB4D,GAAkB9oB,EAAQlD,OAAiC,MAAxBkD,EAAQoC,cAAiD,KAAzBpC,EAAQoC,cAE1D,IAEE0mB,GAIE,IAArBrrB,UAAUnC,OACLytB,EAAa/oB,EAAQ6oB,GAAiB7oB,EAAQklB,aAAa2D,QACvC,MAAlBC,EACY,SAAjBD,GAA6D,UAAjC7oB,EAAQ8X,QAAQjM,eAC9Cid,EAAiBta,EAAK3T,EAAOqF,QAAQ4oB,IACrCjuB,EAAO2D,KAAKwB,EAAQipB,SAAU,SAAUC,GACtCA,EAAMC,WAAaL,EAAeI,EAAMpsB,UAGtCisB,EACF/oB,EAAQ6oB,GAAiBC,EAEzB9oB,EAAQslB,aAAauD,EAAeC,GAIpCC,EACmB,SAAjBF,GAA6D,UAAjC7oB,EAAQ8X,QAAQjM,cAC9C7L,EAAQopB,cAAgB,GACfppB,EAAQ6oB,KACjB7oB,EAAQ6oB,GAAiB,IAG3B7oB,EAAQmmB,gBAAgB0C,MAK9BN,SACE9R,KAAM,SAAUzW,EAASyW,GAWvB,IANA,GAGII,GAHAwS,EAAiBrpB,EACjBya,EAAa4O,EAAe5O,WAC5B6O,EAAiBD,EAAe3L,YAEhC9N,EAAQ,EAEL0Z,IAA8C,GAA3BA,EAAe3nB,UAAgE,IAA/C2nB,EAAenN,UAAUlP,QAAQ,aACzF2C,IACAiH,EAAOyS,EAAe5L,YACtBjD,EAAWK,YAAYwO,GACvBA,EAAiBzS,CAKnB,OAFA4D,GAAW8O,aAAa/S,EAAeC,GAAO4S,EAAe3L,aAEtD9N,GAGTyV,KAAM,SAAUrlB,EAAS6oB,EAAeC,GACtC,GAAI9oB,GAAW6oB,GAAiBtE,GAAcuE,EAAgB,CAC5D,GAAIO,GAAiBrpB,EAEjBwpB,EAAaxpB,EAAQ2d,WAGzB,OAFA0L,GAAelN,UAAY,IAAM2M,EAAiB,IAAMO,EAAelN,UAAUzb,QAAQkQ,EAAY,IAAM,IAC3G4Y,EAAWrN,UAAY,IAAM2M,EAAiB,IAAMU,EAAWrN,UAAUzb,QAAQkQ,EAAY,IAAM,IAC5FvW,KAET,MAAOA,SAIPovB,KAGFtJ,EAAW,WACb,GAAIuJ,KAEJ,QACEtJ,eAAgB,WACdsJ,EAAM/tB,UAGR2kB,cAAe,WACb,MAAOoJ,GAAM1tB,OAGf2tB,mBAAoB,WAClB,MAAOD,GAAMA,EAAMpuB,OAAS,IAG9BsuB,mBAAoB,SAAUC,GAC5B,GAAIhE,GAAc6D,EAAMA,EAAMpuB,OAAS,GACnCwuB,GAAgB,CAEhBjE,KACFhrB,EAAO2D,KAAKqnB,EAAa,SAAUpG,GACjC,MAAIA,KAAeoK,GACjBC,GAAgB,GACT,GAFT,SAKGA,GACHjE,EAAYlqB,KAAKkuB,SAOvB7kB,GACF+kB,KAAM,EACNC,UAAW,EAEXxM,OAAQ,SAAU0J,EAAM2B,EAAe7oB,GAQrC,IAPA,GAGIse,GACArM,EACA/J,EALAnL,EAAQ,GACRmV,EAAW,EACXrW,KAKGqrB,EAAK5rB,SAAWyB,GACrBuhB,EAAY4I,EAAKzmB,OAAO1D,GAEP,KAAbuhB,GAA8C,KAA1B4I,EAAKzmB,OAAO1D,EAAQ,GAC1CkV,EAAalV,EAAQ,EACC,KAAbuhB,GAA8C,KAA1B4I,EAAKzmB,OAAO1D,EAAQ,KAC7CkV,IACF/J,EAAQgf,EAAKnW,UAAUkB,EAAYlV,GAC9B8rB,IACH3gB,EAAQA,EACLxH,QAAQ,SAAU,KAClBA,QAAQ,UAAW,KACnBA,QAAQ,SAAU,KAClBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,MAGtB4d,EAAY4I,EAAKnW,UAAUmB,EAAUD,EAAa,GAC9CqM,GACFziB,EAAOF,KAAK2iB,GAGdziB,EAAOF,MACLiL,WAAYsB,EACZ2gB,cAAeA,IAGjB3W,EAAWnV,EAAQ,GAErBkV,EAAa,EAajB,OATAqM,GAAY4I,EAAKnW,UAAUmB,GACvBoM,GACFziB,EAAOF,KAAK2iB,GAGdziB,EAAOqrB,KAAOA,EACdrrB,EAAOgtB,cAAgBA,EACvBhtB,EAAOmE,QAAUA,EACjBnE,EAAOgE,cAAe,EACfqI,EAAQrM,EAAS,MAG1BouB,SAAU,SAAUtiB,EAASoS,EAAanT,EAAYhI,GACpD,GAGIsrB,GAHAptB,EAAQ,GACRxB,EAASsL,EAAWtL,OACpByB,EAAQ,EAGZ,KAAK4K,EACH,MAAOf,GAAWsgB,IAGpB,IAAc,GAAV5rB,EACFwB,EAAQkI,EAAWmlB,QAAQxiB,EAASoS,EAAanT,EAAW,GAAIA,EAAYhI,OAE5E,QAAS7B,EAAQzB,GACf4uB,EAAQtjB,EAAW7J,GAEjBD,GADkB,gBAATotB,GACAA,EAEAllB,EAAWmlB,QAAQxiB,EAASoS,EAAamQ,EAAOtjB,EAAYhI,EAO3E,OAFAgI,GAAWwjB,WAAattB,EAEjBA,GAGTqtB,QAAS,SAAUxiB,EAASoS,EAAasQ,EAAgBC,EAAkB1rB,GACzE,GAEI2rB,GACAC,EACA3E,EACAhqB,EACAiB,EACAV,EAPAwK,EAAayjB,EAAezjB,WAC5BiiB,EAAgBwB,EAAexB,aAUnCzsB,GAAOqtB,EAAoB7iB,GAAc6iB,EAAoB7iB,IAC3D,GAAI3B,UAAS,IAAK,+BAAiC2B,EAAa,MAElEuZ,EAASC,gBAGP,KACEtjB,EAAQV,EAAKuL,GACb,MAAO8iB,GACP5vB,EAAOykB,MAAMoL,eAAe9jB,EAAY0jB,EAAiBtqB,SAyC7D,MArCAlD,GAAQV,EAAKuL,GAEb4iB,EAAe1vB,EAAO0vB,aAAaztB,GACnCjB,EAAS0uB,EAAeztB,IAAUA,EAClCjB,EAAmB,MAAVA,EAAiB,GAAKA,EAAOb,WACtCa,EAASwa,EAAYxa,GAErBgqB,EAAc1F,EAASG,gBAEnB1hB,GAAQoG,EAAWglB,YAAcO,GAAgB1E,EAAYvqB,UAC1DutB,IACH9O,EAAcC,EAAaO,qBAEzBR,IACFA,EAAYiM,UAAW,EAEvBwE,GACElvB,OAAQO,EAAOP,OACf+pB,KAAMwD,EACNlhB,QAASA,EACTue,UAAWnM,EAAYqL,GACvBxe,WAAYA,EACZ+jB,OAAQL,GAGVzvB,EAAO2D,KAAKqnB,EAAa,SAAUpG,GAC5BA,EAAWmL,gBAAgB7Q,EAAYqL,MAC1C3F,EAAWmL,gBAAgB7Q,EAAYqL,KAAM,EAC7C3F,EAAWoL,aAAalvB,KAAK6uB,OAI9B3B,IACHhtB,EAAS,QAAUke,EAAYqL,GAAK,cAAgBvpB,IAIjDA,GA8BXhB,GAAOgd,eAAiBhd,EAAOmE,QAAQ6Y,GACrCC,QAAS,SAAUA,GACjB,MAAIA,IACFzd,KAAK4d,SAAWH,EACTzd,MAEFA,KAAK4d,UAGdxB,KAAM,SAAUA,GACd,MAAIhZ,WAAUnC,OAAS,GACrBmb,EAAe,MAARA,EAAe,GAAKA,EACvBpc,KAAKye,OACHze,KAAKye,OAAOrC,OAASA,IACvBpc,KAAKye,OAAOrC,KAAOA,EACnBgP,EAAIhP,KAAKpc,KAAK0e,IAAKtC,KAGrBpc,KAAKke,WAAa9B,EAClBgP,EAAIhP,KAAKpc,KAAK0e,IAAKtC,IAErBpc,KAAK+d,aACE/d,MAEFA,KAAKke,YAAc,IAG5B2O,KAAM,SAAUA,GACd,MAAIzpB,WAAUnC,OAAS,GACT,MAAR4rB,IACFA,EAAO7Q,EAAY6Q,GACnB7sB,KAAKoc,KAAKyQ,IAEL7sB,MAEFA,KAAKoc,QAGdjT,OAAQ,WACN,MAAOnJ,MAAKsJ,SAGdslB,SAAU,SAAUnsB,GAClB,MAAqB,gBAAVA,GACFzC,KAAK+d,UAAUtb,GAEjBzC,KAAK+d,WAWdiN,KAAM,SAAUwD,EAAeC,GAC7B,GACInT,GADAmV,EAAQzwB,IAGZ,IAA4B,gBAAjBwuB,GAA2B,CACpC,GAAI/Q,GAAUzd,KAAK4d,SACfrZ,EAAOvE,KAAK6d,YAAYtZ,KACxBmsB,EAAoBjC,EACpB/O,EAAcC,EAAatT,KAAKrM,MAChCyC,EAAQzC,KAAKmf,SAAS,QAgB1B,IAdAqP,EAAgBhuB,EAAOiF,iBAAiB+oB,GACxCA,EAAgBpD,EAAI2C,QAAQS,IAAkBA,EAC9CC,EAAiBjuB,EAAOiF,iBAAiBgpB,GAErCjuB,EAAO0vB,aAAaQ,IAAuC,SAAjBlC,GAA4BpD,EAAIkB,cAAc7O,MAAclZ,GAAQ6mB,EAAIqB,WAAWloB,KAC/Hmb,EAAYqM,UAAuB,UAAXtO,EAAsB,SAAW,QACzDiC,EAAYiR,gBAAkBD,IACrBlwB,EAAO0vB,aAAaQ,IACZ,WAAjBlC,GAAuC,YAARjqB,GAA8B,SAARA,IAErDmb,EAAYqM,UAAY,QACxBrM,EAAYiR,gBAAkBD,GAGR,GAApBttB,UAAUnC,OAEZ,MADAqa,GAActb,KAAKmf,SAASqP,GACL3pB,SAAhByW,EAA4B,KAAOA,CAGvB,YAAjBkT,GAAgD,MAAlBC,GAA2BzuB,KAAK4wB,MAStC,YAAjBpC,IACTC,EAAiBA,EAAiB,WAAa,MAL7CA,EAJ2B,SAAzBzuB,KAAK6d,YAAYtZ,MACM,gBAAlBkqB,IACPhsB,GAASgsB,GAA2B,MAAThsB,EAEV,KAEAgsB,EAAiB,UAAY,KAMnC,YAAXhR,GAA0C,SAAjB+Q,GAA6BxuB,KAAK0e,IAEnC,SAAjB8P,GAAuC,UAAX/Q,GACrCzd,KAAK6wB,QAAU1c,EAAK3T,EAAOqF,QAAQ4oB,IACnCrD,EAAIJ,KAAKhrB,KAAK0e,IAAK8P,EAAeC,KAElCzuB,KAAKie,iBAAkB,EACnBje,KAAKye,OACHze,KAAKye,OAAOc,WAAWiP,KAAmBC,IAC5CzuB,KAAKye,OAAOc,WAAWiP,GAAiBC,EACxCrD,EAAIJ,KAAKhrB,KAAK0e,IAAK8P,EAAeC,KAGpCzuB,KAAK6d,YAAY2Q,GAAiBC,EAClCrD,EAAIJ,KAAKhrB,KAAK0e,IAAK8P,EAAeC,KAbpCzuB,KAAKoc,KAAKqS,OAgBHjuB,GAAOyD,cAAcuqB,IAC9BhuB,EAAO2D,KAAKqqB,EAAe,SAAUsC,EAAKrvB,GACxCgvB,EAAMzF,KAAKvpB,EAAKqvB,IAIpB,OAAO9wB,OAGTuuB,WAAY,SAAUC,GAGpB,MAFAxuB,MAAK6d,YAAY2Q,GAAiB,KAClCpD,EAAImD,WAAWvuB,KAAK0e,IAAK8P,GAClBxuB,MAGTouB,IAAK,SAAUtU,EAAcrX,GAC3B,GAAIguB,GAAQzwB,IAEZ,IAA2B,gBAAhB8Z,GAA0B,CAInC,GAHAA,EAAetZ,EAAO+E,OAAOuU,GAC7BrX,EAAQjC,EAAO+E,OAAO9C,IAEjBqX,EACH,MAOF,IAJAA,EAAeA,EAAanZ,WAAW0F,QAAQ,OAAQ,SAAUwH,GAC/D,MAAOA,GAAMzH,OAAO,GAAG2qB,gBAGA,IAArB3tB,UAAUnC,OAEZ,MADAwB,GAAQzC,KAAKgxB,QAAQlX,GACJjV,SAAVpC,EAAsB,KAAOA,CAGlB,YAAhBqX,IACFrX,EAAiB,QAATA,IAAqBA,GAAmB,KAAVA,EAAgB,OAAS,IAGjEzC,KAAKse,YAAa,EACbd,EAAeyT,WAAWnX,KAC7BrX,EAAQjC,EAAOuF,OAAOtD,IAEpBzC,KAAKye,OACHze,KAAKye,OAAOG,MAAM9E,KAAkBrX,IACtCzC,KAAKye,OAAOG,MAAM9E,GAAgBrX,EAClC2oB,EAAIgD,IAAIpuB,KAAK0e,IAAK5E,EAAcrX,KAGlCzC,KAAKue,OAAOzE,GAAgBrX,EAC5B2oB,EAAIgD,IAAIpuB,KAAK0e,IAAK5E,EAAcrX;KAEzBjC,GAAOyD,cAAc6V,IAC9BtZ,EAAO2D,KAAK2V,EAAc,SAAUgX,EAAKrvB,GACvCgvB,EAAMrC,IAAI3sB,EAAKqvB,IAInB,OAAO9wB,OAGTkxB,SAAU,SAAUvrB,EAASjD,GAC3B,GACI2Z,GADAuS,EAAW5uB,KAAKmxB,WAAanxB,KAAK+d,SAsBtC,OAnBIpY,KACFA,EAAQ2D,QAAUtJ,KACdA,KAAKyiB,eAAiBziB,KAAKwiB,MAC7B7c,EAAQ6c,OAAQ,EACPxiB,KAAK0e,MACdrC,EAAWF,EAAexW,EAAQyrB,OAAO5wB,EAAO6wB,SAASrxB,QACzD2F,EAAQ+Y,IAAMrC,EAASwD,WAAW,GACb,gBAAVnd,GACT1C,KAAK0e,IAAIwQ,aAAa7S,EAAUrc,KAAK0e,IAAImB,WAAWnd,IAEpD1C,KAAK0e,IAAIvB,YAAYd,IAGJ,gBAAV3Z,GACTksB,EAASpmB,OAAO9F,EAAO,EAAGiD,GAE1BipB,EAASttB,KAAKqE,IAGX3F,MAGTguB,SAAU,SAAUttB,GAGlB,MAFAse,GAAS,MAAOhf,KAAMU,GACtB0qB,EAAI4C,SAAShuB,KAAK0e,IAAKhe,GAChBV,MAGTiuB,YAAa,SAAUvtB,GAGrB,MAFAse,GAAS,SAAUhf,KAAMU,GACzB0qB,EAAI6C,YAAYjuB,KAAK0e,IAAKhe,GACnBV,MAGTsxB,YAAa,SAAU5wB,EAAW6wB,GAC5BA,KAAc,EAChBvxB,KAAKiuB,YAAYvtB,GAEjBV,KAAKguB,SAASttB,IAIlBwiB,SAAU,SAAUxiB,GAClB,MAAgE,IAAzDob,EAAc9b,KAAK6d,YAAYuB,GAAY1e,IAGpD8wB,eAAgB,WACd,GAAIpV,EAWJ,OATAA,GAAO,IAAMpc,KAAK4d,SACd5d,KAAKie,kBACP7B,GAAQpc,KAAKyxB,qBAEXzxB,KAAKse,aACPlC,GAAQuC,EAAuB3e,KAAKue,OAAQve,KAAKye,SAEnDrC,GAAQpc,KAAKge,eAAiB,MAAQ,KAKxC0T,aAAc,WACZ,MAAI1xB,MAAKge,eACA,GAEF,KAAOhe,KAAK4d,SAAW,KAGhCwT,OAAQ,SAAUC,EAAUM,GAC1B,GAAIvV,GAAO,GACPwV,EAAY,GACZ5P,EAAchiB,KAAK0e,GAyCvB,OAvCkB7Z,UAAd8sB,IACF3xB,KAAKye,QACHc,cACAX,SACAxC,KAAM,KACN7R,gBAEGvK,KAAKwe,UACRxe,KAAKwe,YAEPxe,KAAKwe,QAAQmT,GAAa3xB,KAAKye,QAGjCze,KAAK0e,IAAM7Z,OAEX7E,KAAK6xB,SAASR,GAEdrxB,KAAK0e,IAAMsD,EAEPhiB,KAAKme,aAAeX,EAAeY,WAAW0T,OAC5C9xB,KAAKme,aAAeX,EAAeY,WAAW2T,cAE9CH,EADE5xB,KAAKye,QAA+B,OAArBze,KAAKye,OAAOrC,KACjBpc,KAAKye,OAAOrC,KACI,MAAnBpc,KAAKke,WACFle,KAAKke,WAELle,KAAKgyB,eAAeX,EAAUM,IAI9CvV,GAAQpc,KAAKwxB,iBAEbpV,GAAQwV,EAERxV,GAAQpc,KAAK0xB,gBAGf1xB,KAAKye,OAAS,KAEPrC,GAGT4V,eAAgB,SAAUX,EAAUM,GAQlC,IAPA,GAII9C,GACApsB,EALA2Z,EAAO,GACPwS,EAAW5uB,KAAKmxB,WAAanxB,KAAK+d,UAClC9c,EAAS2tB,EAAS3tB,OAClByB,EAAQ,KAIHA,EAAQzB,GACf4tB,EAAQD,EAASlsB,GACG,gBAATmsB,GACTzS,GAAQyS,EACCrR,EAAe0B,GAAG2P,IAC3BA,EAAMrM,MAAQqM,EAAMrM,OAASxiB,KAAKwiB,MAClCpG,GAAQyS,EAAMuC,OAAOC,EAAUM,IACtBN,GACT5uB,EAAQkI,EAAWilB,SAASyB,EAASY,SAAU,KAAMpD,GACjD7uB,KAAKye,SACPze,KAAKye,OAAOlU,YAAY7H,GAASD,GAEnC2Z,GAAQ3Z,GAGN2Z,IADGpc,KAAKwiB,OAASqM,EAAMkB,WACflB,EAAMkB,WAENplB,EAAWilB,SAAS,KAAM,KAAMf,EAK9C,OAAOzS,IAGT8V,KAAM,SAAUb,EAAUM,EAAWhsB,GAC/BgsB,IACF3xB,KAAKye,OAASze,KAAKwe,QAAQmT,GAC3B3xB,KAAK0e,IAAM/Y,EACX3F,KAAKwiB,OAAQ,EACbxiB,KAAKmyB,OAAQ,GAGfnyB,KAAK6xB,SAASR,GAEdrxB,KAAKwxB,iBAEAxxB,KAAKke,YAAele,KAAKyiB,eAAiBziB,KAAKme,aAAeX,EAAeY,WAAW0T,MAC3F9xB,KAAKoyB,aAAaf,EAAUM,GAG9B3xB,KAAK0xB,eAEDC,IACF3xB,KAAKye,OAAS,KACdze,KAAK0e,IAAM7Z,OACX7E,KAAKwiB,OAAQ,EACbxiB,KAAKmyB,OAAQ,IAIjBC,aAAc,SAAUf,EAAUM,EAAWU,GAU3C,IATA,GAKIC,GACA/lB,EACAsiB,EAPAD,EAAW5uB,KAAKmxB,WAAanxB,KAAK+d,UAClC9c,EAAS2tB,EAAS3tB,OAClB4d,EAAQ7e,KAAKye,OACb9Y,EAA+B,GAArB3F,KAAK0e,IAAIpX,SAAgBtH,KAAK0e,IAAI2E,YAAcrjB,KAAK0e,IAAImB,WAAWwS,GAAU,GACxF3vB,EAAQ,KAKHA,EAAQzB,GACf4tB,EAAQD,EAASlsB,GACbmsB,EAAMrpB,aACJ6rB,IACF9kB,EAAa5B,EAAWilB,SAASyB,EAASY,SAAU,KAAMpD,EAAOhQ,EAAQlU,EAAWglB,UAAYhlB,EAAW+kB,QAEtG7Q,GAAUA,GAASA,EAAMtU,YAAY7H,KAAW6J,KAC/CsS,GACFA,EAAMtU,YAAY7H,GAAS6J,EACvB5G,GACsB,GAApBA,EAAQ2B,WACV3B,EAAUA,EAAQ0d,aAEpB1d,EAAQmc,UAAYvV,EACpB5G,EAAUA,EAAQ0d,aAElBrjB,KAAK0e,IAAI6T,YAAchmB,IAGzBvM,KAAK0e,IAAIwQ,aAAa/S,EAAe5P,GAAa5G,GAClD2sB,EAAqB3sB,EACrBA,EAAUA,EAAQ0d,YAClBrjB,KAAK0e,IAAI+B,YAAY6R,MAIF,gBAATzD,IAAqBA,EAAM1Q,aAAeX,EAAeY,WAAW0T,MACpFjD,EAAMrM,MAAQqM,EAAMrM,OAASxiB,KAAKwiB,MAElCqM,EAAMqD,KAAKb,EAAUM,EAAWhsB,GAEhCA,EAAUA,EAAQ0d,aAElB1d,EAAUA,EAAQ0d,aAKxBmP,eAAgB,SAAUnB,EAAU1uB,EAAYghB,GAY9C,IAXA,GASIrW,GATAmlB,EAAWzyB,KAAKmxB,UAChBtC,EAAQ4D,EAAS,GACjBC,EAAiC,IAApBD,EAASxxB,QAAgBuc,EAAe0B,GAAG2P,GACxDhP,EAAa8D,EAAW9D,WACxB8R,EAAYN,EAASsB,eACrBC,EAAgBvB,EAASY,SAASY,OAClCC,EAAc9yB,KAAK+yB,UACnB9xB,EAASwP,KAAKgD,IAAI9Q,EAAW1B,OAAQ4e,EAAW5e,QAChDyB,EAAQ,KAGHA,EAAQzB,GACfowB,EAASY,SAAW3kB,EAAUslB,EAAclwB,GAC5C4K,EAAQ0lB,MAAQrwB,EAAWD,GAC3B4K,EAAQ2lB,QAAU3lB,EAAQ4lB,eAAeF,MACrCN,EACF7D,EAAMqD,KAAKb,EAAUM,EAAYjvB,EAAOmd,EAAWnd,IAEnD1C,KAAKoyB,aAAaf,EAAUM,EAAYjvB,EAAOA,EAAQowB,EAI3DzB,GAAS8B,cAGXJ,QAAS,WAKP,IAJA,GAAIN,GAAWzyB,KAAKmxB,UAChBzuB,EAAQ,GACRzB,EAAS,IAEJyB,EAAQ+vB,EAASxxB,QACpBwxB,EAAS/vB,GAAOyb,cAAgBX,EAAeY,WAAW0T,OAC5D7wB,GAAU,EAId,OAAOA,IAGTke,SAAU,SAAUtd,GAClB,GAAIgd,GAAQ7e,KAAKye,MACjB,OAAOI,IAAoCha,SAA3Bga,EAAMU,WAAW1d,GAAsBgd,EAAMU,WAAW1d,GAAQ7B,KAAK6d,YAAYhc,IAGnGmvB,QAAS,SAAUnvB,GACjB,GAAIgd,GAAQ7e,KAAKye,MACjB,OAAOI,IAA+Bha,SAAtBga,EAAMD,MAAM/c,GAAsBgd,EAAMD,MAAM/c,GAAQ7B,KAAKue,OAAO1c,IAGpFgwB,SAAU,SAAUR,GAClB,GAAKA,IAIDrxB,KAAKwiB,QACPxiB,KAAK0e,IAAM7Z,QAGT7E,KAAKme,aAAeX,EAAeY,WAAW0T,MAAM,CACtD,GACIzlB,GADA0e,EAAK/qB,KAAK6d,YAAYqM,KAGrBa,GAAMsG,EAAS+B,eAClBzT,EAAaO,kBAAkBlgB,MAC/BqxB,EAASgC,sBAAsBrzB,MAC/B+qB,EAAK/qB,KAAK6d,YAAYqM,GACtB7d,EAAOsT,EAAa8L,KAAKV,IAGvB/qB,KAAK8d,sBAAsB7c,QAC7BjB,KAAKszB,6BAA6BjC,EAASY,UAG7CZ,EAASkC,aAAavzB,KAAMA,KAAK6d,YAAYuF,IAEzC/W,IAASA,EAAKsf,UAChBhM,EAAaa,MAAMxgB,QAKzByxB,kBAAmB,WACjB,GAGIhwB,GACAgB,EAJA8c,EAAavf,KAAK6d,YAClBgB,EAAQ7e,KAAKye,OACbrC,EAAO,EAIU,WAAjBpc,KAAK4d,UAAwB5d,KAAKsJ,QAAQunB,UACxChS,EACFA,EAAMU,WAAWuP,SAAW9uB,KAAKsJ,QAAQunB,QAAQhS,EAAMU,WAAW9c,OAAS,WAAa,KAExF8c,EAAWuP,SAAW9uB,KAAKsJ,QAAQunB,QAAQtR,EAAW9c,OAAS,WAAa,KAIhF,KAAKhB,IAAO8d,GACV9c,EAAQ8c,EAAW9d,GACfod,GAAS9b,EAAOnC,KAAKie,EAAMU,WAAY9d,KAG7B,KAAVgB,EACF2Z,GAAQ,IAAM3a,EACI,MAATgB,IACT2Z,GAAQ,IAAM3a,EAAM,KAAOgB,EAAQ,KAIvC,IAAIoc,EACF,IAAKpd,IAAOod,GAAMU,WAChB9c,EAAQoc,EAAMU,WAAW9d,GACX,KAAVgB,EACF2Z,GAAQ,IAAM3a,EACI,MAATgB,IACT2Z,GAAQ,IAAM3a,EAAM,KAAOgB,EAAQ,IAKzC,OAAO2Z,IAGT0G,4BAA6B,SAAUT,GACrC,GAGI9V,GAHAinB,EAAuBxzB,KAAK8d,sBAC5B2V,EAASzzB,KAAK6d,YAAYqM,GAC1B/lB,EAAOnE,KAAKwiB,KAGhBhiB,GAAO2D,KAAKnE,KAAK6d,YAAa,SAAU4Q,EAAgBD,GAEpDjiB,GADGpI,GAAQke,GAAcA,EAAWoR,EAASjF,GAChC7jB,EAAWwY,OAAOd,EAAWoR,EAASjF,GAAgBA,GAEtD7jB,EAAWwY,OAAOsL,EAAgBD,GAE7CjiB,GACFinB,EAAqBlyB,KAAKiL,MAKhC+mB,6BAA8B,SAAUhmB,GAStC,IAAK,GAJDkhB,GACAjiB,EACA9J,EANA6oB,EAAYtrB,KAAK0e,KAAM,GAAQ,EAC/Ba,EAAavf,KAAKye,QAAUze,KAAKye,OAAOc,WACxCG,EAAcC,EAAa8L,KAAKlM,EAAaA,EAAW2K,GAAclqB,KAAK6d,YAAYqM,IACvF3f,EAAcvK,KAAK8d,sBAKd/Z,EAAI,EAAGA,EAAIwG,EAAYtJ,OAAQ8C,IACtCwI,EAAahC,EAAYxG,GACzBtB,EAAQkI,EAAWilB,SAAStiB,EAASoS,EAAanT,GAClDiiB,EAAgBjiB,EAAWiiB,eACtBjP,GAAcA,EAAWiP,KAAmB/rB,IAAW8c,KACtD+L,EACEtrB,KAAKye,OACPze,KAAKye,OAAOc,WAAWiP,GAAiB/rB,EAExCzC,KAAK6d,YAAY2Q,GAAiB/rB,EAGpC2oB,EAAIJ,KAAKhrB,KAAK0e,IAAK8P,EAAe/rB,OAO5C+a,EAAe0B,GAAK,SAAUzc,GAC5B,MAAOA,IAASA,EAAMib,cAAgBC,GAGxCH,EAAeY,YACbC,IAAK,EACL0T,YAAa,EACbD,KAAM,GAGRtU,EAAeyT,YACbyC,aAAe,EACfC,aAAe,EACfC,UAAY,EACZC,YAAc,EACdC,YAAc,EACdC,YAAc,EACdC,SAAW,EACXC,OAAS,EACTC,SAAW,EACXC,QAAU,EACVC,QAAU,EACVC,MAAQ,EA+CV,IAAI/U,IAA0B,CAC9B,IAAwB,mBAAbhD,UAA0B,CACnC,GAAI3W,GAAU2W,SAASG,cAAc,MACjC9W,GAAQ0Z,YACV1Z,EAAQ0Z,UAAUrU,IAAI,IAAK,KAC3BsU,EAA+C,OAArB3Z,EAAQjF,WAwDtC,GAAI2tB,IACFiG,OAAQ,SAAU7U,EAAe/c,EAAOmtB,GACtCntB,EAAQ8c,EAAeC,EAAe/c,EACtC,IACI6xB,GACArX,EAFAsX,EAAqB/U,EAAcI,WAAWnd,EAIlDlC,GAAO2D,KAAK0rB,EAAO,SAAU4E,GAY3B,GAXAF,EAAmC,IAAjBE,EAAKntB,SAAiBmtB,EAAK5U,WAAW5e,OAAS,EACjEic,EAAauX,EAAK5U,WAAa4U,EAAK5U,WAAW,GAAKhb,OAEhD2vB,EAEF/U,EAAcyP,aAAauF,EAAMD,GAGjC/U,EAActC,YAAYsX,GAGxBF,EACF,KAAOA,GACLtU,EAAiB,MAAO/C,GACxBA,EAAaA,EAAWmG,YACxBkR,QAGFtU,GAAiB,MAAOwU,MAK9B5e,OAAQ,SAAU4J,EAAe/c,EAAO6S,GACtC,GACIkf,GADA1wB,EAAI,CAKR,KAFArB,EAAQ8c,EAAeC,EAAe/c,GAE3B6S,EAAJxR,EAAWA,IAChB0wB,EAAOhV,EAAcI,WAAWnd,GAC5B+xB,GACExU,EAAiB,SAAUwU,IAC7B/xB,KAMR4rB,cAAe,SAAU3oB,EAAS+uB,GAC5BA,EACFrG,EAAUsG,KAAKhvB,GAEf0oB,EAAUuG,KAAKjvB,IAInBgvB,KAAM,SAAUhvB,GACdsa,EAAiB,OAAQta,IAG3BivB,KAAM,SAAUjvB,GACdsa,EAAiB,OAAQta,IA4J7BnF,GAAOmhB,eAAiBnhB,EAAOmE,QAAQ6Y,EAAgBmE,GACrD6P,eAAgB,WACd,GAAIiC,GAASzzB,KAAKmf,SAAS+K,GACvB9N,EAAO,OAOX,OALIqX,KACFrX,GAAQqX,EAAS,KAEnBrX,GAAQpc,KAAK6hB,aAAaxb,QAAQkQ,EAAY,IAAM,QAKtDmb,aAAc,WACZ,GAAI+B,GAASzzB,KAAKmf,SAAS+K,GACvB9N,EAAO,OAMX,OAJIqX,KACFrX,GAAQqX,EAAS,KAEnBrX,GAAQ,eAIVkX,6BAA8B9yB,EAAOkE,OAGvCid,EAAezC,GAAK,SAAUzc,GAC5B,MAAOkf,GAAexf,UAAUgD,cAAc1C,GAuHhD,IAAImhB,MA0GJY,GAASI,cAETJ,EAASriB,WACPyB,QAAS,WACP,MAAO5D,MAAKykB,UAGdoQ,UAAWhR,EAAe,cAE1BvW,QAASuW,EAAe,YAExBsP,WAAY,WACNnzB,KAAKiyB,WACPjyB,KAAKiyB,SAAWjyB,KAAKiyB,SAASiB,iBAIlCG,sBAAuB,SAAU1tB,GAC/B,GAAI0G,GAAOsT,EAAaO,kBAAkBva,EAC1C0G,GAAKglB,SAAWrxB,KAChBqM,EAAKiB,QAAUtN,KAAKiyB,UAEhBjyB,KAAK80B,aAAgBnvB,EAAQ6c,QAAU7c,EAAQ2D,QAAQkZ,SACrD7c,EAAQ2D,UAAY3D,EAAQ6c,QAC9BnW,EAAOsT,EAAaO,kBAAkBva,EAAQ2D,SAC9C+C,EAAK0oB,gBAAkB/0B,KAAKiyB,UAG9BjyB,KAAK80B,aAAc,EACnBzoB,EAAKsf,UAAW,IAIpBqJ,YAAa,SAAUC,GACrB,GAEIC,GAFA5nB,EAAUtN,KAAKiyB,SACfkD,EAAS7nB,EAAUA,EAAQ8nB,SAASvyB,MAAM,KAqB9C,OAlBA7C,MAAK80B,aAAc,EAEfxnB,GACF6nB,EAAOvf,QAAQtI,EAAQ0lB,OAGzBkC,GACElC,MAAOiC,EACPnU,MAAOxT,EAAUA,EAAQwT,MAAQmU,EACjChC,QAAS3lB,EAAUA,EAAQ0lB,MAAQ,KACnCoC,SAAU9nB,EAAU6nB,KACpBE,OAAQr1B,KAAKs1B,YAAc,KAC3BpC,eAAgB5lB,GAAW,MAE7B4nB,EAAWK,SAAWL,EACtBl1B,KAAKiyB,SAAWiD,EAChBl1B,KAAKw1B,gCAEEN,GAGTvC,aAAc,WAIZ,IAHA,GAAIrlB,GAAUtN,KAAKiyB,SACfvvB,EAAQ,GAEL4K,GAAWA,EAAQ+nB,QACxB3yB,EAAQ4K,EAAQ+nB,OAAO1P,UAAY,IAAMjjB,EACzC4K,EAAUA,EAAQ4lB,cAGpB,OAAOxwB,IAGT+yB,cAAe,SAAUnoB,EAAShL,GAChC,GAAIozB,GAAiB11B,KAAKiyB,QAC1BjyB,MAAKiyB,SAAW3kB,EAChBhL,IACAtC,KAAKiyB,SAAWyD,GAGlBC,YAAa,SAAU9zB,EAAMY,GAC3BzC,KAAK0kB,mBAAmB7iB,GAAQY,EAChCzC,KAAKw1B,iCAGPI,eAAgB,SAAU/zB,SACjB7B,MAAK0kB,mBAAmB7iB,IAGjC2zB,8BAA+B,WAC7B,GAEI/zB,GAFA6L,EAAUtN,KAAKiyB,SACf4D,EAAoB71B,KAAK0kB,kBAG7B,KAAKjjB,IAAOo0B,GACVvoB,EAAQ7L,GAAOo0B,EAAkBp0B,IAIrCq0B,oBAAqB,SAAUnwB,GAC7B,GAAIoe,GAAQvG,EAAe0B,GAAGvZ,GAAWA,EAAQkY,YAAYuF,GACrC,GAApBzd,EAAQ2B,SAAgB3B,EAAQklB,aAAazH,GAAiBzd,EAAQmc,UAAUpL,UAAU/Q,EAAQmc,UAAUlP,QAAQ,UAAY,GAAGvM,QAAQkQ,EAAY,GAEvJwN,IACF/jB,KAAKuzB,aAAa5tB,EAASoe,IAI/BwP,aAAc,SAAU5tB,EAASoe,GAC/B,GAAIjZ,GAAQ0Z,EAASI,WAAWb,IAAUY,EAAYZ,EAAOpe,EAE7D3F,MAAK+1B,eAAepwB,EAASmF,IAG/BirB,eAAgB,SAAUpwB,EAAS8E,GAYjC,IAXA,GAGIoa,GACAmR,EACAhS,EACAO,EACA0R,EACA3oB,EACAvL,EATA2d,EAAcC,EAAatT,KAAK1G,GAChCuwB,EAAwB,EACxBnyB,EAAI,EASDA,EAAI0G,EAAQxJ,OAAQ8C,IAKzB,GAJAuJ,EAAUtN,KAAKiyB,SACfpN,EAASrkB,EAAOskB,QAAQra,EAAQ1G,GAAGlC,MACnC0iB,EAAa9Z,EAAQ1G,GAAGihB,OACxBgR,EAAqBnR,EAAOsR,cAAgBn2B,UACxCwd,EAAe0B,GAAGvZ,IAAakf,EAAOjkB,MAASikB,EAAOjE,aAAeiE,EAAOuR,SAAUvR,EAAOqC,MAAjG,CAQApB,EAASC,gBACT,KAAK,GAAIsQ,GAAI,EAAGA,EAAI9R,EAAWtjB,OAAQo1B,IAAK,CAC1CJ,EAAY1R,EAAW8R,GAGvBt0B,EAAOqtB,EAAoB6G,GAAa7G,EAAoB6G,IACxD,GAAIrrB,UAAS,IAAK,+BAAiCqrB,EAAY,MAEnEjS,IAGE,KACEA,EAAiBsS,SAAWv0B,EAAKuL,GACjC,MAAOlG,GACP5G,EAAOykB,MAAMsR,mBAAmB9rB,EAAQ1G,GAAIkyB,EAAWtwB,GAoB3D,GAjBAqe,EAAiBsS,SAAWv0B,EAAKuL,GAEjC0W,EAAiBvhB,MAAQjC,EAAOiF,iBAAiBue,EAAiBsS,UAE9DzR,EAAO2R,kBACTxS,EAAiBkM,aAAe1vB,EAAO0vB,aAAalM,EAAiBsS,UACrEtS,EAAiByS,mBAAqB3Q,EAASwJ,qBAAqBruB,OAASi1B,EAC7EA,EAAwBpQ,EAASwJ,qBAAqBruB,OACtD+0B,EAAmB10B,KAAK0iB,IAExBgS,EAAmB10B,KADVujB,EAAO6R,cACQ1S,EAAiBsS,SAEjBtS,EAAiBvhB,OAKvCoiB,IAAWrkB,EAAOskB,QAAQ,OAASD,IAAWrkB,EAAOskB,QAAQ6R,MAAO,CACtE,IAAM3S,EAAiBvhB,OAASoiB,IAAWrkB,EAAOskB,QAAQ,OACrDd,EAAiBvhB,OAASoiB,IAAWrkB,EAAOskB,QAAQ6R,MAAQ,CAC/D,IAAKpS,EAAW,GACd,KAEFvkB,MAAKuzB,aAAa5tB,EAAS4e,EAAW,GACtC,OAEFvkB,KAAKuzB,aAAa5tB,EAAS4e,EAAW,GACtC,QAKF,GAAIS,GAASgR,CAOf,IANMnR,EAAOsR,eACTnR,EAASxkB,EAAOqD,MAAMmyB,GAAoBnzB,MAAM,IAElDrC,EAAOykB,MAAM2R,WAAWnsB,EAAQ1G,GAAGlC,KAAMmjB,EAAQva,EAAQ1G,GAAI4B,GAG3D6X,EAAe0B,GAAGvZ,GAAU,CAC9B,GAAIgc,EAAezC,GAAGvZ,KAAakf,EAAOgS,iBAExC,QAGF,IAAIhS,EAAOjkB,KACLikB,EAAOjkB,QAAS,EAClB+E,EAAQ8E,EAAQ1G,GAAGlC,MAAMO,MAAMuD,EAASqwB,IAExCA,EAAmBpgB,QAAQiP,EAAOzD,QAAU3W,EAAQ1G,GAAGlC,MACvD8D,EAAQkf,EAAOjkB,MAAMwB,MAAMuD,EAASqwB,QAEjC,IAAInR,EAAOjE,YACZiE,EAAOjE,WAAWxe,MAAMuD,EAASqwB,MAAwB,EAAO,CAClEh2B,KAAK82B,qBAAqBrsB,EAAQ1G,GAAI2b,EAAapS,EACnD,YAGC,IAAIuX,EAAOjkB,KAAM,CACtB,GAAI2qB,GAAU5L,EAAatT,KAAK1G,GAAS4lB,OACrCA,GAAQ/I,QACV+I,EAAU/N,EAAe,OACzB+N,EAAQ7M,IAAM/Y,EACd4lB,EAAQqF,OAAQ,GAEd/L,EAAOjkB,QAAS,EAClB2qB,EAAQ9gB,EAAQ1G,GAAGlC,MAAMO,MAAMmpB,EAASyK,IAExCA,EAAmBpgB,QAAQiP,EAAOzD,QAAU3W,EAAQ1G,GAAGlC,MACvD0pB,EAAQ1G,EAAOjkB,MAAMwB,MAAMmpB,EAASyK,QAE7BtW,IAAeA,EAAYkB,YAAciE,EAAOqC,MACzDrC,EAAOqC,MAAM9kB,MAAMuD,EAASqwB,GACnBnR,EAAOuR,QAChBvR,EAAOuR,OAAOh0B,MAAMuD,EAASqwB,EAG/Bh2B,MAAK82B,qBAAqBrsB,EAAQ1G,GAAI2b,EAAapS,OArGjDoS,GAAYiM,UAAW,EAClBjM,EAAYqX,UACfrX,EAAYqX,YAEdrX,EAAYqX,QAAQz1B,KAAKmJ,EAAQ1G,KAqGvC+yB,qBAAsB,SAAUjS,EAAQnF,EAAapS,GACnD,GAAIke,GAAc1F,EAASG,eAEvBvG,KACFA,EAAYiM,UAAW,EACvBnrB,EAAO2D,KAAKqnB,EAAa,SAAUpG,GAC5B1F,EAAY8L,YAAYpG,EAAW4R,OAASnS,EAAOd,SACtDrE,EAAY8L,YAAYpG,EAAW4R,OAASnS,EAAOd,OAASqB,EAC5DA,EAAWwG,UAAUtqB,MACnBuqB,UAAWnM,EAAYqL,GACvBjgB,OAAQ+Z,GACRvX,QAASA,SAOnB2pB,oCAAqC,SAAU1U,GAK7C,IAAK,GAJD0M,GACAvP,EACAjC,EAEK1Z,EAAI,EAAGA,EAAIwe,EAASthB,OAAQ8C,IAGnC,GAFAkrB,EAAiB1M,EAASxe,GAC1B0Z,GAAWwR,EAAexR,SAAW,IAAIjM,cACT,IAA5Byd,EAAe3nB,UAA6C,GAA3B2nB,EAAe3nB,SAAe,CAEjE,GADAoY,EAAcC,EAAatT,KAAK4iB,GACf,CAMf,GALAjvB,KAAKiyB,SAAWvS,EAAYpS,SAAWtN,KAAKiyB,SAC5CvS,EAAY0L,IAAM6D,EACdvP,EAAYqX,SACd/2B,KAAK+1B,eAAe9G,EAAgBvP,EAAYqX,SAE9CrX,EAAYqM,UAAW,CACzB,GAAItQ,GAAYiE,EAAYwX,UAAYxX,EAAYqM,SACpD1O,GAAG4R,EAAgBxT,EAAW0b,GAAe1b,IAE/CiE,EAAYkB,YAAa,EACzB5gB,KAAKiyB,SAAWvS,EAAYqV,iBAAmB/0B,KAAKiyB,SAEvC,UAAXxU,GAAkC,QAAXA,GACoC,KAA5D,IAAMwR,EAAevuB,UAAY,KAAKkS,QAAQ,YAE/C5S,KAAKi3B,oCAAoChI,EAAepP,YAK9D7f,KAAKiyB,SAAW,MAGlB9V,eAAgB,SAAUC,GACxB,GAAIC,GAAWF,EAAeC,EAG9B,OAFApc,MAAKi3B,oCAAoC5a,EAASwD,YAE3CxD,GAGT+a,aAAc,SAAU9pB,GACtB,GAAI4nB,GAAa10B,EAAOqD,MAAMyJ,EAE9B,OADA4nB,GAAWK,SAAWL,EACfA,GAIX,IAAIiC,KACFE,OAAQ,SAAUjwB,GAChB,GAAItD,GAASsD,EAAEtD,QAAUsD,EAAEwhB,UAC3BuO,IAAeG,YAAYxzB,EAAQ6b,EAAatT,KAAKvI,GAAQ6sB,kBAG/D4G,MAAO,SAAUnwB,GACf+vB,GAAeE,OAAOjwB,IAOxBuQ,MAAO,SAAUvQ,GACf,GAAItD,GAASsD,EAAEtD,QAAUsD,EAAEwhB,UAC3BuO,IAAeG,YAAYxzB,EAAQ6b,EAAatT,KAAKvI,GAAQ6sB,kBAG/D6G,QAAS,SAAUpwB,GACjB,GAAItD,GAASsD,EAAEtD,QAAUsD,EAAEwhB,WACvB6O,EAAW3zB,EAAOrB,MAClBid,EAAcC,EAAatT,KAAKvI,EAEhC4b,IACFzT,WAAW,WACLwrB,GAAY3zB,EAAOrB,OACrB00B,GAAeG,YAAYxzB,EAAQ6b,EAAatT,KAAKvI,GAAQ6sB,oBAMrE2G,YAAa,SAAU3xB,EAASlD,GAC9B,GAAIgb,GAAU9X,EAAQ8X,QAAQjM,cAC1BjN,EAAOoB,EAAQklB,aAAa,OAEhC,IAAY,YAARtmB,EACF9B,EAAMkD,EAAQgoB,aACT,IAAe,UAAXlQ,GAAuB9X,EAAQklB,aAAa,YAAa,CAClE,GAAIxW,MACAqjB,EAAkB/xB,EAAQ+xB,eAC1BA,GACFl3B,EAAO2D,KAAKuzB,EAAiB,SAAUC,GACrCtjB,EAAO/S,KAAKq2B,EAAO9M,aAAa,YAGlCrqB,EAAO2D,KAAKwB,EAAQ/B,QAAS,SAAU+zB,GACjCA,EAAO7I,UACTza,EAAO/S,KAAKq2B,EAAO9M,aAAa,YAKtCpoB,EAAM4R,OAEN7T,GAAO0C,KAAKyrB,eACVhpB,QAASA,EACT6oB,cAAe,SAEjB/rB,EAAMkD,EAAQlD,OACdjC,EAAO0C,KAAKyrB,cAAgB9pB,QAsClCrE,GAAOgD,OAAOshB,GAiBZ8S,QAmBAjB,SA+BAlE,UACE0D,cAAc,EACdO,eAAe,EAEf9V,WAAY,SAAUyQ,EAAUoB,EAAUhwB,GACxC,GACI2Z,GADAiG,EAAagP,EAAS+B,WAG1BX,GAAWjyB,EAAOkF,QAAQ+sB,GACtBjyB,EAAO6G,UAAUorB,GACnBrW,EAAOqW,EAASzV,WAEhBZ,EAAOE,SAASub,eAAepF,GAE7BrW,EADEA,EACKA,EAAKY,UAELyV,GAGPrW,IACE3Z,GACFjC,EAAOskB,QAAQ,QAAQlE,WAAWhgB,KAAKZ,KAAMqxB,EAAU5uB,EAAO,aAE3D4f,GAAeA,EAAWyV,WAAczV,EAAWyV,UAAUnY,EAAaoL,GAAG/qB,SAChFA,KAAKoc,KAAKA,IACLpc,KAAKwiB,OAASxiB,KAAK0e,MACtB1e,KAAK+d,UAAYgE,EAAc/hB,KAAK0e,IAAImB,WAAW,GAAI7f,MACvDA,KAAKke,WAAa,UAkC5B6Z,QACE5B,cAAc,EAEdvV,WAAY,SAAUyQ,EAAUvX,EAAcke,GAC5C,GAAIh4B,KAAKme,aAAeX,EAAeY,WAAW0T,KAAM,CACtD,GAAI4D,GAAiBrE,EAAS/jB,UAC1B4nB,EAAa7D,EAAS+F,aAAa1B,GACnChE,EAAe1xB,KAAK0xB,YAExBL,GAAS/jB,QAAQ4nB,GACjB7D,EAASsE,YAAY7b,EAAcke,GAEnCh4B,KAAK0xB,aAAe,WAGlB,MAFAL,GAASuE,eAAe9b,GACxBuX,EAAS/jB,QAAQooB,GACVhE,EAAa9wB,KAAKZ,UAmCjCi4B,QACE9B,cAAc,EACdO,eAAe,EAEf9V,WAAY,SAAUyQ,EAAU5uB,EAAOZ,GACrC,GAAI7B,KAAKme,aAAeX,EAAeY,WAAW0T,KAAM,CACtD,GAAIJ,GAAe1xB,KAAK0xB,YAEpB7vB,IACFwvB,EAASsE,YAAY9zB,EAAMY,GAE7B4uB,EAAS2D,YAAYvyB,GAErBzC,KAAK0xB,aAAe,WAKlB,MAJI7vB,IACFwvB,EAASuE,eAAe/zB,GAE1BwvB,EAAS8B,aACFzB,EAAa9wB,KAAKZ,UA6BjCmE,MACEgyB,cAAc,EAEdO,eAAe,EAEfG,kBAAkB,EAElBqB,eAAgB,SAAU7G,EAAU1rB,GAClC,GAMI1E,GACAk3B,EACAtJ,EARAD,EAAWjpB,EAAQoY,UACnBqa,EAAUzyB,EAAQ0yB,SAClBC,EAAU3yB,EAAQ4yB,SAClB71B,EAAQ,GACR81B,EAAa,GACbC,EAAa,EAKjB,IAAIL,EAGF,IAFAn3B,EAASwP,KAAKC,IAAI0nB,EAAQn3B,OAAQq3B,EAAQr3B,UAEjCyB,EAAQzB,GACXm3B,EAAQ11B,KACV81B,GAAcJ,EAAQ11B,GAAO0uB,OAAOC,IAElCiH,EAAQ51B,KACV+1B,GAAcH,EAAQ51B,GAAO0uB,OAAOC,QAOxC,KAHA+G,EAAUzyB,EAAQ0yB,YAClBC,EAAU3yB,EAAQ4yB,cAET71B,EAAQksB,EAAS3tB,QACxB4tB,EAAQD,EAASlsB,GACbmsB,EAAMrpB,eAGU,gBAATqpB,IAMXA,EAAMrM,OAAQ,EACd2V,EAAWtJ,EAAMhR,YAAY,aACb,UAAZsa,GACFK,GAAc3J,EAAMuC,OAAOC,GAC3B+G,EAAQ92B,KAAKutB,GACbD,EAASpmB,OAAO9F,IAAS,IACJ,UAAZy1B,IACTM,GAAc5J,EAAMuC,OAAOC,GAC3BiH,EAAQh3B,KAAKutB,GACbD,EAASpmB,OAAO9F,IAAS,KAd2C,KAAhEmsB,EAAMxoB,QAAQkQ,EAAY,IAAIlQ,QAAQ,iBAAkB,KAC1DuoB,EAASpmB,OAAO9F,IAAS,GAkBjC,QACEg2B,OAAQF,EACRG,aAAcP,EAAQn3B,OACtB23B,OAAQH,EACRI,aAAcP,EAAQr3B,SAI1B2f,WAAY,SAAUyQ,EAAU1uB,GAC9B,GAGIm2B,GACApZ,EACAqZ,EACAlG,EACAzW,EAPAuV,EAAYN,EAASsB,eACrBhtB,EAAU3F,KACV0C,EAAQ,CAOZ,IAAI1C,KAAKmyB,MAEP,WADAxsB,GAAQ6sB,eAAenB,EAAU1uB,EAAY3C,KAAK0e,IAQpD,IAJA1e,KAAKmxB,UAAYnxB,KAAKmxB,WAAanxB,KAAK+d,UAExC/d,KAAKyiB,eAAgB,EAEjB4O,EAAS+B,cACX1T,EAAc2R,EAAS+B,YAAYzT,EAAaoL,GAAG/qB,OACnDqxB,EAAS+B,YAAYzT,EAAaoL,GAAG/qB,OAAS6E,OAC1C6a,GAAa,CACf,GAAIyK,GAAM7N,SAASG,cAAc,MACjC0N,GAAInN,UAAY0C,EAChB/Z,EAAQwrB,UAAYxrB,EAAQoY,UAAYgE,EAAcoI,EAAItK,WAAW,GAAIla,GAqB7E,GAjBAozB,EAAajU,EAAQ3gB,KAAK+zB,eAAe7G,EAAU1rB,GACnDyW,EAAO2c,EAAWL,OAEdl4B,EAAO0vB,aAAavtB,KACtB+c,EAAcC,EAAatT,KAAK1G,GAChC+Z,EAAYsZ,UACVjO,GAAIpoB,EAAWq0B,OACfrxB,QAASA,EACTszB,YAAaF,EAAWJ,aACxBO,UAAWH,EAAWF,eAI1BC,EAAgBt4B,EAAOiF,iBAAiB9C,GAExCkwB,EAASxB,EAASY,SAASY,UAEvBryB,EAAO0D,QAAQ40B,GACjB,IAAKp2B,EAAQ,EAAGA,EAAQo2B,EAAc73B,OAAQyB,IAC5C2uB,EAASwD,UAAUr0B,EAAO4kB,WAAW+T,SAASx2B,EAAYD,IAC1DmwB,EAAOvxB,KAAK+vB,EAAS2D,YAAY8D,EAAcp2B,KAC/C0Z,GAAQpc,KAAKgyB,eAAeX,EAAUM,EAAYjvB,GAClD2uB,EAAS8B,aACT9B,EAASwD,UAAUhwB,YAEhB,IAAIrE,EAAO+G,SAASuxB,GACzB,IAAK,GAAIr3B,KAAOq3B,GACdzH,EAASwD,UAAUr0B,EAAO4kB,WAAW+T,SAASx2B,EAAYD,IAC1D2uB,EAAS2D,YAAY8D,EAAcr3B,IACnC2a,GAAQzW,EAAQqsB,eAAeX,GAC/BA,EAAS8B,aACT9B,EAASwD,UAAUhwB,QACnBnC,GAIJ1C,MAAKoc,KAAKA,EAAO2c,EAAWH,UAsChCh1B,SACEuyB,cAAc,EAEdO,eAAe,EAEf9V,WAAY,SAAUyQ,EAAU1uB,EAAYiB,GAC1CA,EAAUA,KAUV,KATA,GAOIirB,GAPAuK,EAAW,QACXvM,EAAOliB,EAAWwY,OAAO,MAAQvf,EAAQipB,MAAQuM,GAAY,MAC7D32B,EAAQkI,EAAWwY,OAAO,MAAQvf,EAAQnB,OAAS22B,GAAY,KAAM,SACrEC,EAAU74B,EAAO0B,SAAS0B,EAAQy1B,UAAY,GAAI7b,GAAe,UACjEma,EAAS,GAAIna,GAAe,UAC5BoR,EAAW5uB,KAAK+d,UAChBha,EAAI,EAGDA,EAAI6qB,EAAS3tB,OAAQ8C,IAC1B8qB,EAAQD,EAAS7qB,KACZ8qB,EAAMhR,aAAgBgR,EAAMhR,cAAgBgR,EAAMhR,YAAY,eACjE+Q,EAASpmB,OAAOzE,IAAK,EAIzB4zB,GAAO7Z,sBAAsBxc,KAAKmB,GAClCk1B,EAAO5Z,UAAUzc,KAAKurB,GACtB8K,EAAOruB,QAAUtJ,KACjBA,KAAK+d,UAAUzc,KAAKq2B,GAEhB0B,IACFA,EAAQxb,YAAY,aAAe,SACnCwb,EAAQnb,WAAata,EAAQy1B,QAC7Br5B,KAAKkxB,SAASmI,IAGhB74B,EAAOskB,QAAQ3gB,KAAKyc,WAAWhgB,KAAKZ,KAAMqxB,EAAU1uB,KAkBxDyuB,QACEoF,kBAAkB,EAElB5V,WAAY,SAAU2Q,GACpB,IAAKvxB,KAAKwiB,QAAUxiB,KAAKmyB,MACvB,KAAM,IAAImH,OAAM,+CAGlBt5B,MAAKme,YAAcoT,EAAU9uB,MAAQ+a,EAAeY,WAAWC,IAAMb,EAAeY,WAAW0T,KAE3FP,EAAUkF,oBAAsBz2B,KAAKme,aAAeX,EAAeY,WAAW0T,OAChF9xB,KAAKme,YAAcX,EAAeY,WAAW2T,YAC7C/xB,KAAKouB,IAAI,UAAW,QACpBzO,EAAatT,KAAKrM,KAAM,cAAeA,QAI3Co2B,OAAQ,SAAU7E,GAChB,GAAI7R,GAAcC,EAAatT,KAAKrM,KAChC0f,GAAY6Z,aAAehI,EAAU9uB,QAEvCzC,KAAKgd,UAAY0C,EAAY6Z,YAAYvH,eAAexxB,EAAO6wB,SAASrxB,OACxEQ,EAAO6wB,SAASrxB,MAAMi3B,oCAAoCj3B,KAAK6f,YAC/DH,EAAY6Z,YAAc,MAG5Bv5B,KAAK4e,MAAM8B,QAAU6Q,EAAU9uB,MAAQ,GAAK,SAehDy0B,UACEtW,WAAY,SAAUnF,GACpBkE,EAAatT,KAAKrM,MAAMk3B,SAAWzb,IAuCvC+d,SACE5Y,WAAY,SAAUte,GACpBqd,EAAatT,KAAKrM,MAAMqgB,gBAAkB/d,IAiB9C0c,UACE4B,WAAY,SAAUlgB,EAAW6wB,GAC3BnuB,UAAUnC,OAAS,EACrBjB,KAAKsxB,YAAY5wB,IAAa6wB,GAE9BvxB,KAAKguB,SAASttB,IAIlB01B,OAAQ,SAAU11B,EAAW6wB,GAC3B,GAAIhG,GAAU5L,EAAatT,KAAKrM,MAAMurB,OAClCA,GAAQ/I,QACV+I,EAAU/N,IACV+N,EAAQ7M,IAAM1e,MAEZoD,UAAUnC,OAAS,EACrBsqB,EAAQ+F,YAAY5wB,EAAW6wB,GAE/BhG,EAAQyC,SAASttB,KAkBvB0b,MACExb,MAAM,GAgBRisB,MACEjsB,MAAM,GAiBR8zB,SACE9zB,KAAM,MAENwgB,OAAQ,WAiBV4J,MACE0L,eAAe,EAEf91B,MAAM,GAoBRkwB,KACE4F,eAAe,EAEf91B,KAAM,OAENwgB,OAAQ,SAiBVuM,SACE+I,eAAe,EAEf91B,KAAM,QASR64B,UACE/C,eAAe,EAEf91B,KAAM,QAwBRwtB,KACExtB,MAAM,GASR84B,OACE94B,KAAM,OASR+4B,QACE/4B,KAAM,OAGRg5B,SACEhZ,WAAYpgB,EAAOkE,KAEnB0xB,OAAQ,SAAU3zB,GACZA,GACFzC,KAAK65B,UAcXxc,IACE6J,MAAO,SAAUN,EAAQkT,EAAWh4B,GAClC,GAAK8kB,GAAWkT,EAAhB,CAIAA,EAAYt5B,EAAOqF,QAAQi0B,EAE3B,IAAIn0B,GAAU3F,KACVsd,EAAU,SAAUlW,GACtB,GAAIkG,GAAU9M,EAAO8M,QAAQtN,MACzBuC,EAAU+K,EAAQysB,WAAazsB,EAAQuT,OAASvT,EAAQwT,KAC5DtgB,GAAO2D,KAAK21B,EAAW,SAAUx3B,GAC/BA,EAAS1B,KAAK2B,EAAS6E,EAAGtF,KAI9B8kB,GAASpmB,EAAO0D,QAAQ0iB,GAAUA,EAASA,EAAOjmB,WAAWqH,MAAM,KAEnExH,EAAO2D,KAAKyiB,EAAQ,SAAUjL,GAC5BH,EAAY7V,EAASgW,EAAO2B,UAMpC9c,EAAO2D,MAEL,QAAS,WAAY,YAAa,UAAW,YAAa,YAAa,WAEvE,SAAU,SAAU,SAAU,QAAS,QAAS,OAEhD,UAAW,WAAY,SACtB,SAAUsX,GACXjb,EAAOskB,QAAQrJ,IACbib,eAAe,EAEfxP,MAAO,SAAU5kB,EAAU+J,GACzB7L,EAAOskB,QAAQzH,GAAG6J,MAAMtmB,KAAKZ,KAAMyb,EAAWnZ,EAAU+J,MAK5D,IAAI2tB,IAAa,uBASnB7U,GAAahjB,WACXmjB,QAAS,WACPtlB,KAAKu0B,gBAAkB1vB,OACvB7E,KAAK4X,WAAa,EAClB5X,KAAKi6B,iBAAmBp1B,OACxB7E,KAAKi5B,YAAc,EACnBj5B,KAAKk5B,UAAY,GAGnBgB,cAAe,SAAUx3B,GACvB1C,KAAK4X,WAAalV,EAAQ1C,KAAKi5B,aAGjCkB,mBAAoB,SAAU5kB,GACC1Q,SAAzB7E,KAAKu0B,kBACPv0B,KAAKi6B,iBAAmBj6B,KAAKolB,WAAWO,UAAU1kB,QAEpDjB,KAAKu0B,gBAAkBhf,GAASvV,KAAKi5B,YAAcj5B,KAAKk5B,YAG1DpG,YAAa,SAAUsH,GACrB,GAGI54B,GAHA6jB,EAAerlB,KAAKqlB,aACpB0F,EAAKpL,EAAaoL,GAAGqP,GACrBn5B,EAASokB,EAAa0F,KAAQ/qB,KAAKu0B,iBAAmB6F,EAAQva,WAAW5e,SAAWjB,KAAKi6B,kBAAoBj6B,KAAKolB,WAAWO,UAAU1kB,OAW3I,OAPEO,GADEhB,EAAO8E,MAAMrE,IAAsBo5B,MAAXp5B,EACjB,EAEAwP,KAAK6pB,MAAMr5B,GAGtBokB,EAAa0F,GAAMvpB,EAEZA,GAGT+4B,MAAO,SAAUH,EAAS13B,GAKxB,IAAK,GAJDowB,GAAc9yB,KAAK8yB,YAAYsH,GAC/Bva,EAAaua,EAAQva,WACrBre,KAEKuC,EAAI,EAAO+uB,EAAJ/uB,EAAiBA,IAC/BvC,EAAOuC,GAAK8b,EAAWnd,EAAQowB,EAAc/uB,EAAI/D,KAAK4X,WAExD,OAAOpW,IAGTg5B,SAAU,SAAUJ,EAAS13B,EAAOmtB,GAClCxB,EAAUiG,OACR8F,EACAp6B,KAAK8yB,YAAYsH,GAAW13B,EAAQ1C,KAAK4X,WACzCpX,EAAO0D,QAAQ2rB,GAASA,GAASA,KAGrC/Z,SAAU,SAAUskB,EAAS13B,GAC3B,GAAIowB,GAAc9yB,KAAK8yB,YAAYsH,EAEnC/L,GAAUxY,OACRukB,EACAtH,EAAcpwB,EAAQ1C,KAAK4X,WAC3Bkb,IAGJjd,OAAQ,SAAUnT,EAAOiT,GACvB,GAAI8a,GAAQzwB,IAEZA,MAAKmE,KAAK,SAAUwf,GAClB,IAAK,GAAI0S,GAAI,EAAO1gB,EAAJ0gB,EAAaA,IAC3B5F,EAAM3a,SAAS6N,EAAYjhB,KAI/Bid,EAAawL,iBAEbnrB,KAAKslB,UAELtlB,KAAKolB,WAAWqV,SAASjyB,OAAO9F,EAAOiT,IAGzCI,UAAW,WACT,GAAI0a,GAAQzwB,KACRkI,EAAQlI,KAAKolB,WAAWO,SAE5B3lB,MAAKmE,KAAK,SAAUgF,GAClB3I,EAAO2D,KAAK+D,EAAO,WACjBuoB,EAAM3a,SAAS3M,EAAQ,QAK7B6B,IAAK,SAAU0vB,EAAUh4B,GACvB,GAAI+tB,GAAQzwB,KACRolB,EAAaplB,KAAKolB,UAEtB5kB,GAAO2D,KAAKu2B,EAAU,SAAUvzB,EAAMpD,GACpCqhB,EAAWqV,SAASjyB,OAAO9F,EAAQqB,EAAG,EAAGvD,EAAO4kB,WAAW1iB,EAAQqB,MAGrE/D,KAAKmE,KAAK,SAAUwf,EAAYgX,GAC9B,GAGIhJ,GAHAN,EAAW7wB,EAAO6wB,SAAS1N,GAC3BrW,EAAU9M,EAAO8M,QAAQqW,GACzBvH,EAAO,EAcX,IAXAiV,EAASoE,cAAcnoB,EAAS,WAC9BqkB,EAAYN,EAASsB,cACrB,KAAK,GAAI5uB,GAAI,EAAGA,EAAI22B,EAASz5B,OAAQ8C,IACnCstB,EAASwD,UAAUr0B,EAAO4kB,WAAW+T,SAAS/T,EAAYrhB,EAAIrB,GAAO,IACrE4K,EAAQulB,OAAOrqB,OAAOzE,EAAIrB,EAAO,EAAG2uB,EAAS2D,YAAY0F,EAAS32B,KAClEqY,GAAQue,EAAe3I,eAAeX,EAAUM,GAAa5tB,EAAIrB,IACjE2uB,EAAS8B,aACT9B,EAASwD,UAAUhwB,UAIc,IAAjC8e,EAAW9D,WAAW5e,OACxBmqB,EAAIhP,KAAKuH,EAAYvH,GACrBiV,EAAS4F,oCAAoCtT,EAAW9D,gBACnD,CACL,GAAIxD,GAAWgV,EAASlV,eAAeC,EACvCqU,GAAM+J,SAAS7W,EAAYjhB,EAAO2Z,MAItCrc,KAAKslB,WAGPnhB,KAAM,SAAU7B,GAId,IAHA,GAAIyB,GAAI,EACJ62B,EAAc56B,KAAKolB,WAAWwG,UAE3B7nB,EAAI62B,EAAY35B,OAAQ8C,IAAK,CAClC,GAAIsI,GAAOuuB,EAAY72B,EAClBsI,GAAK1G,UACR0G,EAAK1G,QAAUga,EAAatT,KAAKA,EAAKwf,WAAWT,KAEnDprB,KAAK66B,MAAMxuB,EAAK1G,QAASrD,KAI7Bu4B,MAAO,SAAUlX,EAAYrhB,GAC3B,GAAKqhB,EAAL,CAIA,GACIhe,GACAm1B,EACAC,EACA/L,EAJAgK,EAAWrZ,EAAatT,KAAKsX,GAAYqV,QAM7C,IAAKA,GAAYA,EAASjO,IAAM/qB,KAAKolB,WAAW4R,OAQhD,GAJArxB,EAAUqzB,EAASrzB,QACnB3F,KAAKi5B,YAAcD,EAASC,YAC5Bj5B,KAAKk5B,UAAYF,EAASE,UAEC,GAAvBvV,EAAWrc,SAEbtH,KAAKk6B,cAAc,GACnBl6B,KAAKm6B,mBAAmBxW,EAAW9D,WAAW5e,QAC9CqB,EAASqhB,EAAYhe,EAASge,OACzB,CAKL,IAHAmX,EAAYnb,EAAaoL,GAAGpH,GAC5BqL,EAAiBrL,EAAWvD,WAAWlD,WACvC6d,EAAe,EACR/L,GAAkBrL,GACvBqL,EAAiBA,EAAe3L,YAChC0X,GAGF,KADA/6B,KAAKk6B,cAAca,EAAe,GAC3B/L,IAA8C,GAA3BA,EAAe1nB,UAA6E,GAA5D0nB,EAAelN,UAAUlP,QAAQkoB,EAAY,cACrG9L,EAAiBA,EAAe3L,YAChC0X,GAEF/6B,MAAKm6B,mBAAmBY,EAAe/6B,KAAK4X,YAC5CtV,EAASqhB,EAAWvD,WAAYza,EAASge,MAO/C,IAAIqX,IAAe,CAQnBx6B,GAAO4kB,WAAa,SAAU6V,EAAc14B,GAC1C,GAAI6iB,GAAa,SAAU3iB,GACA,IAArBW,UAAUnC,QACZ2kB,EAAO5L,QAAQoL,EAAY,MAAOA,EAGpC,IAAI8V,GAAe5U,EAAmBlB,GAClCgR,EAAShR,EAAWgR,MAExB,OAAyB,KAArBhzB,UAAUnC,QACZ6kB,EAASyJ,mBAAmBnK,GACrB8V,IACG16B,EAAON,OAAOuC,EAAOy4B,GAAc,IAAUtV,EAAO5L,QAAQoL,EAAY,WAAY3iB,EAAOy4B,MAAkB,IACvH9V,EAAWgR,OAAS51B,EAAOkE,KACtB0gB,EAAWI,gBAMyB,GAA9BJ,EAAWI,iBACpBJ,EAAWO,UAAUtQ,IAAIzU,KAAKwkB,EAAWY,YAAavjB,GANlDjC,EAAO0D,QAAQg3B,IAAiB16B,EAAO0D,QAAQzB,IAAU2iB,EAAWrL,MACtEqL,EAAWrL,MAAMtX,GAEjB2iB,EAAWO,UAAYljB,EAM3B2iB,EAAWgR,OAASA,EACpBhR,EAAWgR,SAEXxQ,EAAO5L,QAAQoL,EAAY,SAAU3iB,EAAOy4B,IAEvC9V,GA0BT,OAvBA6V,GAAez6B,EAAO+E,OAAO01B,GAE7Bz6B,EAAOgD,OAAO4hB,EAAY5kB,EAAO4kB,WAAW+V,GAAGC,MAC/ChW,EAAW4R,OAASgE,KACpB5V,EAAWO,UAAYsV,EACvB7V,EAAWY,YAAczjB,GAAW/B,EAAO66B,sBAAwBjW,EACnEA,EAAWmL,mBACXnL,EAAWoL,gBACXpL,EAAWkW,gBACXlW,EAAWwG,aAEPprB,EAAO0D,QAAQ+2B,IACjBz6B,EAAOgD,OAAO4hB,EAAY5kB,EAAO4kB,WAAW+V,GAAGjzB,OAC/Ckd,EAAWqV,YACXrV,EAAWmW,cAAgB,GAAIpW,GAAaC,IACnC5kB,EAAOa,WAAW45B,GAC3B7V,EAAWI,gBAAkB,EACpByV,GAAgBz6B,EAAOa,WAAW45B,EAAahnB,MAAQzT,EAAOa,WAAW45B,EAAa5lB,OAC/F+P,EAAWI,gBAAkB,GAG/BD,EAAmBH,GAEZA,EA0CT,IAAIoW,MAEJh7B,GAAOgD,OAAOhD,EAAO4kB,YACnB+T,SAAU,SAAU/T,EAAY1iB,EAAO+4B,GACrC,IAAKj7B,EAAO0vB,aAAa9K,GAIvB,MAHKoW,IAAkB94B,KACrB84B,GAAkB94B,GAASlC,EAAO4kB,WAAW1iB,IAExC84B,GAAkB94B,EAE3B,IACI2yB,GADAqG,EAAUtW,EAAWqV,QAczB,OAXIiB,GACEA,EAAQz6B,QAAUmkB,EAAWO,UAAU1kB,QAAUw6B,EACnDpG,EAASqG,EAAQh5B,IAEjB2yB,EAAS70B,EAAO4kB,WAAW1iB,GAC3Bg5B,EAAQlzB,OAAO9F,EAAO,EAAG2yB,IAG3BA,EAAS70B,EAAO4kB,WAAW1iB,GAGtB2yB,GAGT8F,IACEC,MACE1d,aAAcsc,GAQd5D,OAAQ,WACN,GACI/E,GACA/jB,EACA3H,EACA0sB,EACA5vB,EALA8f,EAAWviB,KAAK4rB,SAOpBprB,GAAO6D,UAAUrE,KAAKwwB,aAAc,SAA0BjkB,GAC5D5G,EAAU4G,EAAW5G,QACrB2H,EAAUf,EAAWe,QAEhB3H,IACHA,EAAU4G,EAAW5G,QAAUga,EAAatT,KAAKE,EAAWsf,WAAWT,IAGzE,KACE3oB,EAAQjC,EAAO+E,OAAO6pB,EAAoB7iB,EAAWA,YAAYe,IACjE,MAAO8iB,GACP3tB,EAAQ,GAGVA,EAAiB,MAATA,EAAgB,GAAKA,EAAM9B,WAEnC0xB,EAAS9lB,EAAWtL,OAASwB,EAAMxB,OACnCsL,EAAWtL,OAASwB,EAAMxB,OAEtBsL,EAAWye,KACbrlB,EAAQslB,aAAa1e,EAAWye,KAAMrgB,EAAWilB,SAAStiB,EAAS,KAAMf,EAAW+jB,SAEhF3qB,EAAQ0d,aACV1d,EAAUA,EAAQ0d,YAClB1d,EAAQmc,UAAYrf,EAAQkD,EAAQmc,UAAUpL,UAAUnK,EAAWtL,OAASoxB,IAE5E1sB,EAAQya,WAAWjD,YAAYb,SAASqf,eAAel5B,KAK7D,KAAK,GAAIsB,GAAI,EAAGA,EAAIwe,EAASthB,OAAQ8C,IACnCtB,EAAQ8f,EAASxe,GACjB4B,EAAUlD,EAAMkD,SACXA,GAAWga,EAAatT,KAAK5J,EAAMopB,aACtClmB,EAAUlD,EAAMkD,QAAUga,EAAatT,KAAK5J,EAAMopB,WAAWT,IACxDzlB,IACHA,EAAUga,EAAatT,KAAK5J,EAAMopB,WAAWN,UAG7CjP,SAASjS,KAAK8I,SAASxN,IAAY6X,EAAe0B,GAAGvZ,IACvD0rB,EAAW7wB,EAAO6wB,SAAS1rB,GAC3B0rB,EAASoE,cAAchzB,EAAM6K,QAAS,WACpC+jB,EAAS0E,eAAepwB,EAASlD,EAAMqI,WAGzCyX,EAAS/Z,OAAOzE,EAAG,GACnBA,GAAK,EAaT,OATAvD,GAAO2D,KAAKnE,KAAKomB,cAAe,SAA0BF,GACxDX,EAAmBW,GACnBA,EAAWkQ,WAGb51B,EAAO2D,KAAKnE,KAAKy6B,SAAU,SAAqBrV,EAAY1iB,GAC1D0iB,EAAW1iB,KAGN1C,MAITqd,GAAI,SAAU5B,EAAWnZ,EAAUC,GAEjC,MADAqjB,GAAOvI,GAAGrd,KAAMyb,EAAWnZ,EAAUC,GAAWvC,KAAKgmB,aAC9ChmB,MAGToY,KAAM,SAAUqD,EAAWnZ,EAAUC,GAEnC,MADAqjB,GAAOxN,KAAKpY,KAAMyb,EAAWnZ,EAAUC,GAAWvC,KAAKgmB,aAChDhmB,MAGT6lB,IAAK,SAAUpK,EAAWnZ,GAExB,MADAsjB,GAAOC,IAAI7lB,KAAMyb,EAAWnZ,GACrBtC,MAsBTwD,OAAQ,SAAU3B,GAChB,GACIL,GADAo6B,EAAap7B,EAAO4kB,WAAWvjB,EAGnC,OAAyB,KAArBuB,UAAUnC,QACRT,EAAO0C,KAAKC,oBACd3C,EAAO0C,KAAKqX,iBAAiB/Z,EAAO+D,KAAKvE,QAASA,MAE7CA,MACE47B,GACTp6B,EAASo6B,EAAWx5B,MAAMpC,KAAMQ,EAAOqF,QAAQzC,WAAWP,MAAM,IACzDrC,EAAO0vB,aAAa1uB,GAAUA,EAASxB,MAFzC,QAMT6D,MAAO,SAAUg4B,GACf,GAAIp5B,GAAQzC,KAAK2lB,SACjB,OAAOnlB,GAAO4kB,WAAWyW,EAAar7B,EAAOqD,MAAMpB,GAASA,EAAOzC,KAAKgmB,cAG1ErlB,SAAU,WACR,GAAI2M,GAAUtN,KAAKgmB,YACfvjB,EAAgC,GAAxBzC,KAAKwlB,gBAAuBxlB,KAAK2lB,UAAU/kB,KAAK0M,GAChC,GAAxBtN,KAAKwlB,gBAAuBxlB,KAAK2lB,UAAU1R,IAAIrT,KAAK0M,GACpDtN,KAAK2lB,SAIT,OAFAG,GAASyJ,mBAAmBvvB,MAEf,MAATyC,GAAiBjC,EAAOa,WAAWoB,EAAM9B,UACpC8B,EAAM9B,WAERE,OAAO4B,KAQlByF,OAiBE6R,MAAO,SAAU7R,GACf,GAAyB,IAArB9E,UAAUnC,OAEZ,MADAjB,MAAK+V,YACE/V,IAGT,IAAI87B,GAAU97B,KAAK2lB,UACfoW,EAAe/7B,KAAKu7B,cACpBS,EAAW9zB,EAAMjH,OAAS66B,EAAQ76B,OAClCg7B,EAAcxrB,KAAKC,IAAIorB,EAAQ76B,OAASiH,EAAMjH,OAAQ,EA4C1D,OA1CAiH,GAAQ1H,EAAO+E,OAAO2C,GAEtB0d,EAAO5L,QAAQha,KAAM,YACnBuE,KAAM,WACN8G,MAAOywB,EACPp5B,MAAO,IAGTkjB,EAAO5L,QAAQha,KAAM,UACnBuE,KAAM,SACN8G,MAAOnD,EACPxF,MAAO,IAGTq5B,EAAa53B,KAAK,SAAUwf,EAAYgX,GACtC,GAAItJ,GAAW7wB,EAAO6wB,SAAS1N,EAE/B0N,GAASoE,cAAcj1B,EAAO8M,QAAQqW,GAAa,WAC/CgX,EAAenI,eAAenB,EAAUnpB,EAAOyb,OAIjDqY,EAAW,EACbD,EAAa/wB,IAAI9C,EAAMrF,MAAMi5B,EAAQ76B,QAAS66B,EAAQ76B,QAC7Cg7B,EAAc,GACvBF,EAAalmB,OAAO3N,EAAMjH,OAAQg7B,GAGpCj8B,KAAK2lB,UAAYzd,EAEjB0d,EAAO5L,QAAQha,KAAM,UACnBuE,KAAM,SACN8G,MAAOywB,EACPp5B,MAAO,IAGTkjB,EAAO5L,QAAQha,KAAM,OACnBuE,KAAM,MACN8G,MAAOnD,EACPxF,MAAO,IAGF1C,MAkBTgL,IAAK,SAAUvI,EAAOC,GAGpB,MAFA1C,MAAKwI,OAAOhI,EAAO6E,SAAS3C,GAASA,EAAQ1C,KAAK2lB,UAAU1kB,OAAQ,EAAGwB,GAEhEzC,MAiBTuL,QAAS,SAAU9I,EAAOC,GAExB,MADA1C,MAAKwI,OAAOpG,MAAMpC,MAAOQ,EAAO6E,SAAS3C,GAASA,EAAQ1C,KAAK2lB,UAAU1kB,OAAQ,GAAG0H,OAAOnI,EAAOqF,QAAQpD,KACnGzC,MAkBTiI,KAAM,SAAUE,EAAQC,GACtB,GAGIzC,GAHAuC,EAAQlI,OACRuiB,EAAWviB,KAAK4rB,UAChBmQ,EAAe/7B,KAAKu7B,aAGxB/6B,GAAOyH,KAAKC,EAAOC,EAAQC,EAE3B,KAAK,GAAIrE,GAAI,EAAGA,EAAIwe,EAASthB,OAAQ8C,IACnC4B,EAAU4c,EAASxe,GAAG4B,QAClBwC,EAASC,GACX2zB,EAAavB,SAAS70B,EAASwC,EAAQ4zB,EAAaxB,MAAM50B,EAASyC,IACnE2zB,EAAavB,SAAS70B,EAASyC,EAAQ2zB,EAAaxB,MAAM50B,EAASwC,MAEnE4zB,EAAavB,SAAS70B,EAASyC,EAAQ2zB,EAAaxB,MAAM50B,EAASwC,IACnE4zB,EAAavB,SAAS70B,EAASwC,EAAQ4zB,EAAaxB,MAAM50B,EAASyC,IAIvE,OAAOpI,OAkBTqI,KAAM,SAAUC,EAAaC,GAC3B,GAGI5C,GAHAuC,EAAQlI,OACRuiB,EAAWviB,KAAK4rB,UAChBmQ,EAAe/7B,KAAKu7B,aAGxB/6B,GAAO6H,KAAKH,EAAOI,EAAaC,GAE5BA,EAAcD,GAChBC,GAGF,KAAK,GAAIxE,GAAI,EAAGA,EAAIwe,EAASthB,OAAQ8C,IACnC4B,EAAU4c,EAASxe,GAAG4B,QACtBo2B,EAAavB,SAAS70B,EAAS4C,EAAawzB,EAAaxB,MAAM50B,EAAS2C,GAG1E,OAAOtI,OAeT6V,OAAQ,SAAUpT,EAAOF,GACvB,MAAOvC,MAAK+V,UAAUtT,EAAOF,GAAS,IAYxCuT,SAAU,SAAUpT,EAAO6S,GAMzB,MALK/U,GAAO6E,SAASkQ,KACnBA,EAAQ,GAEVvV,KAAKwI,OAAO9F,EAAO6S,GAEZvV,MAaT+V,UAAW,SAAUzT,EAAUC,EAASyT,GACtC,GAEI3K,GACAtH,EAHAmE,EAAQlI,KAAK2lB,UACboW,EAAe/7B,KAAKu7B,aAIxB,IAAyB,IAArBn4B,UAAUnC,QACR2kB,EAAOlkB,IAAI1B,KAAM,aAAe4lB,EAAOlkB,IAAI1B,KAAM,aACnDqL,EAAQ7K,EAAOqD,MAAMqE,IAEvB0d,EAAO5L,QAAQha,KAAM,YACnBuE,KAAM,WACN8G,MAAOA,EACP3I,MAAO,IAGTq5B,EAAahmB,YAGb/V,KAAKy6B,YACLpvB,EAAQnD,EAAMM,OAAO,EAAGN,EAAMjH,QAC9B2kB,EAAO5L,QAAQha,KAAM,UACnBuE,KAAM,SACN8G,MAAOA,EACP3I,MAAO,QAEJ,CACL,GACID,GADAwT,EAAsBzV,EAAOa,WAAWiB,EAG5C,KAAKyB,EAAI,EAAGA,EAAImE,EAAMjH,SACpBwB,EAAQyF,EAAMnE,KACVtB,IAAUH,GAAa2T,GAAuB3T,EAAS1B,KAAK2B,EAASE,EAAOsB,EAAGmE,MACjFlI,KAAKwI,OAAOzE,EAAG,GACfA,GAAK,GACDiS,IALsBjS,MAchC,MAFA/D,MAAKo2B,SAEEp2B,MAYT2I,OAAQ,WACN,GAAIT,GAAQlI,MACZ,OAAOkI,GAAMS,OAAOvG,MAAM8F,EAAO1H,EAAOqF,QAAQzC,aAalDP,MAAO,SAAUgO,EAAO/C,GACtB,MAAI1K,WAAUnC,OAAS,EACdjB,OAAO6C,MAAMgO,EAAO/C,GAEtB9N,OAAO6C,MAAMgO,IAUtB5C,KAAM,SAAUiuB,GACd,MAAI94B,WAAUnC,OAAS,EACdjB,OAAOiO,KAAKiuB,GAEdl8B,OAAOiO,QAoChBtM,IAAK,WACH,GAAIw6B,GAAOn8B,KACPkI,EAAQi0B,GAEZ,OAAOA,GAAK3zB,OAAON,EAAMjH,OAAS,EAAG,GAAG,IAU1CK,KAAM,WAEJ,MADAtB,MAAKuL,QAAQnI,WACNpD,KAAK2lB,UAAU1kB,QASxBiO,QAAS,WACP,GAAIhH,GAAQlI,OAAOkP,UACf6sB,EAAe/7B,KAAKu7B,aAYxB,OAVAv7B,MAAKy6B,SAASvrB,UAEd6sB,EAAa53B,KAAK,SAAUwf,GAC1B,IAAK,GAAI0S,GAAI,EAAGA,EAAInuB,EAAMjH,OAAQo1B,IAChC0F,EAAavB,SAAS7W,EAAY,EAAGoY,EAAaxB,MAAM5W,EAAY0S,MAIxEr2B,KAAKo2B,SAEEluB,GASTsN,MAAO,WACL,MAAOxV,MAAKwI,OAAO,EAAG,GAAG,IAW3B6I,KAAM,SAAU+qB,GAUd,IATA,GAMI/F,GACAlvB,EAPAe,EAAQlI,KAAK2lB,UACb1kB,EAASiH,EAAMjH,OACfo7B,EAAkBj5B,UAAUnC,OAAS,EACrC86B,EAAe/7B,KAAKu7B,cACpBG,EAAU17B,KAAKy6B,SACf12B,EAAI,EAIG9C,EAAJ8C,EAAYA,IAAK,CACtB,GAAIvC,IAAU0G,EAAMnE,GAAIA,EAExBg4B,GAAa53B,KAAK,SAAUwf,GAC1BniB,EAAOF,KAAKy6B,EAAaxB,MAAM5W,EAAY5f,MAK7CmE,EAAMnE,GAAKvC,EA6Bb,IAnBA0G,EAAMmJ,KAAK,SAAUlR,EAAGC,GAGtB,MAFAD,GAAIA,EAAE,GACNC,EAAIA,EAAE,GACFi8B,EACKD,EAAax7B,KAAKZ,KAAMG,EAAGC,GAE5BA,EAAJD,EACK,GAELA,EAAIC,EACC,EAEF,IAGLs7B,EAAQz6B,OAAS,IACnBjB,KAAKy6B,aAGF12B,EAAI,EAAO9C,EAAJ8C,EAAYA,IACtBoD,EAAOe,EAAMnE,GACT23B,EAAQz6B,OAAS,GACnBjB,KAAKy6B,SAASn5B,KAAKo6B,EAAQv0B,EAAK,KAGlCkvB,EAAI,EACJ0F,EAAa53B,KAAK,SAAUwf,GAC1BoY,EAAavB,SAAS7W,EAAY1iB,EAAQkG,EAAKkvB,IAC/CA,MAEFnuB,EAAMnE,GAAKoD,EAAK,EAOlB,OAJAnH,MAAKo2B,SAIEluB,GAaTM,OAAQ,SAAU9F,EAAOiT,GACvB,GAII+kB,GAJAxyB,EAAQlI,KAAK2lB,UACboW,EAAe/7B,KAAKu7B,cACpBjgB,KACAxZ,EAAOsB,SA4CX,OAzCAV,GAAgB,EAARA,EAAYwF,EAAMjH,OAASyB,EAAQA,EAEvCiT,GAAWjT,EAAQwF,EAAMjH,QAAUyB,GAAS,IAC9CiT,EAAUlF,KAAKgD,IAAIvL,EAAMjH,OAASyB,EAAOiT,GACzC2F,EAAcpT,EAAMrF,MAAMH,EAAOA,EAAQiT,GACzCiQ,EAAO5L,QAAQha,KAAM,YACnBuE,KAAM,WACN8G,MAAOiQ,EACP5Y,MAAOA,IAGTq5B,EAAalmB,OAAOnT,EAAOiT,GAE3B2F,EAAcpT,EAAMM,OAAO9F,EAAOiT,GAClCiQ,EAAO5L,QAAQha,KAAM,UACnBuE,KAAM,SACN8G,MAAOiQ,EACP5Y,MAAOA,KAIPZ,EAAKb,OAAS,IAChBy5B,EAAWl6B,EAAOqF,QAAQ/D,GAC1B44B,EAASlyB,OAAO,EAAG,GACnBod,EAAO5L,QAAQha,KAAM,UACnBuE,KAAM,SACN7B,MAAOA,EACP2I,MAAOqvB,IAGTqB,EAAa/wB,IAAI0vB,EAAUh4B,GAE3BwF,EAAMM,OAAOpG,MAAM8F,GAAQxF,EAAO,GAAGiG,OAAO+xB,IAC5C9U,EAAO5L,QAAQha,KAAM,OACnBuE,KAAM,MACN7B,MAAOA,EACP2I,MAAOqvB,KAIX16B,KAAKo2B,SACE9a,GAWT1F,QAAS,WAEP,MADA5V,MAAKuL,QAAQnI,UAAW,GACjBpD,KAAK2lB,UAAU1kB,WAO9B,IAAIq7B,KACFC,WAEAC,uBAAwB,SAAUpX,GAChC,GAAIoK,GAAgBpK,EAAWvhB,OAY/B,OAVA2rB,GAAciN,KAAOj8B,EAAO4kB,eAC5BoK,EAAciN,KAAKC,gBACnBlN,EAAciN,KAAKE,aACnBnN,EAAciN,KAAKG,kBAAoBp8B,EAAOiI,KAAK6zB,GAAeO,iBAAkBrN,GACpFA,EAAcsN,YAAc1X,EAAW0X,YAAct8B,EAAOqD,MAAMuhB,EAAW0X,gBAC7EtN,EAAcuN,QAAUv8B,EAAOiI,KAAK6zB,GAAeU,OAAQxN,GAC3DA,EAAciN,KAAKQ,cAAe,EAElCzN,EAAciN,KAAKpf,GAAG,MAAOmS,EAAcuN,SAEpCvN,GAGTwN,OAAQ,WACNpX,EAAOC,IAAI7lB,KAAKy8B,KAAM,MAAOz8B,KAAK+8B,SAClC/8B,KAAK+8B,QAAUl4B,OACf7E,KAAKy8B,KAAKQ,cAAe,EACzBX,GAAeY,sBAAsBl9B,OAGvC68B,iBAAkB,WAChBP,GAAea,kBAAkBn9B,OAGnCk9B,sBAAuB,SAAU9X,GAC/B,GAAIyK,MACAuN,EAAWhY,EAAWqX,KAAKE,UAC3BE,EAAmBzX,EAAWqX,KAAKG,iBAEvCp8B,GAAO2D,KAAKi5B,EAAU,SAAUhY,GAC9BQ,EAAOC,IAAIT,EAAY,SAAUyX,KAEnCO,EAAWhY,EAAWqX,KAAKE,aAC3B7W,EAASC,iBAETvlB,EAAO2D,KAAKihB,EAAW0X,YAAa,SAAUO,GAC5C,GAAsB,QAAlBA,EAAU94B,KAAgB,CAC5B,GAAIk4B,GAAOrX,EAAWqX,IACtBrX,GAAWqX,KAAOj8B,EAAO4kB,eACzBA,EAAWqX,KAAKC,gBACZ7M,EAAM5uB,QACRq7B,GAAegB,uBAAuBlY,EAAYyK,GAEpDwN,EAAUvsB,KAAKlQ,KAAKwkB,EAAWY,aAC/BZ,EAAWqX,KAAOA,MAElB5M,GAAMvuB,KAAK+7B,KAIXxN,EAAM5uB,QACRq7B,GAAegB,uBAAuBlY,EAAYyK,GAGpDrvB,EAAO2D,KAAK2hB,EAASG,gBAAiB,SAAUb,GAC9CgY,EAAS97B,KAAK8jB,GACdA,EAAW/H,GAAG,SAAUwf,MAI5BM,kBAAmB,SAAU/X,GAC3B,GAAI2F,GAAK3F,EAAW4R,OAChBuF,EAAUD,GAAeC,OAExBA,GAAQxR,KACXwR,EAAQxR,IAAM,EACd9e,WAAW,WACTqwB,GAAeY,sBAAsB9X,GACrCmX,EAAQxR,IAAM,GACb,KAIPuS,uBAAwB,SAAUlY,EAAYmY,GAC5C,GAAIC,GAAM,MACNC,EAAS,SACTC,EAAS,SACTC,EAASD,EAET/6B,EAAayiB,EAAWO,UACxB8W,EAAOrX,EAAWqX,KAClBmB,EAAcnB,EAAKC,aACnBmB,KACAC,EAAY,EACZ1H,EAASqG,EAAKrG,OACd1pB,EAAO,EACPC,EAAOhK,EAAW1B,MACtBw7B,GAAKrG,OAAS51B,EAAOkE,KAErBlE,EAAO2D,KAAKo5B,EAAY,SAAUF,GACV,QAAlBA,EAAU94B,MACZmI,EAAO2wB,EAAU3wB,KACblM,EAAOa,WAAWqL,KACpBA,EAAOA,EAAK9L,KAAKwkB,EAAWY,cAE9BtZ,EAAOlM,EAAO+E,OAAOmH,IACM,QAAlB2wB,EAAU94B,MACnBoI,EAAO0wB,EAAU1wB,KACbnM,EAAOa,WAAWsL,KACpBA,EAAOA,EAAK/L,KAAKwkB,EAAWY,cAE9BrZ,EAAOnM,EAAO+E,OAAOoH,IACM,QAAlB0wB,EAAU94B,OAEjB5B,EADEnC,EAAO0B,SAASm7B,EAAUhsB,MACf7Q,EAAOqD,MAAMlB,GAAY0O,KAAK,SAAU0sB,EAAQC,GAC3D,MAAOD,GAAOV,EAAUhsB,MAAQ2sB,EAAOX,EAAUhsB,QAE1C7Q,EAAOa,WAAWg8B,EAAUhsB,MACxB7Q,EAAOqD,MAAMlB,GAAY0O,KAAKgsB,EAAUhsB,MAExC7Q,EAAOqD,MAAMlB,GAAY0O,OAEf,GAArBksB,EAAWt8B,QACbs8B,EAAWj8B,MAAOiD,KAAM,SAAU+O,OAAQ,WAAc,OAAO,QAKrE9S,EAAO2D,KAAKxB,EAAY,SAA2BF,EAAOC,GACxD,GAAY,GAARiK,EAAW,CACb,KAAO8vB,IAAOx7B,OAAS68B,EAAY,GACjCrB,EAAK3mB,SAAS2mB,IAAOx7B,OAAS,EAEhC,QAAO,EA6CT,OA3CAT,EAAO2D,KAAKo5B,EAAY,SAAyBF,GAC/C,GAAIY,GAAiBZ,EAAU/pB,MAI/B,IAFAqqB,EAAS94B,OAELo5B,EAAgB,CAClB,IAAIA,EAAer9B,KAAKwkB,EAAWY,YAAavjB,EAAOC,EAAOC,GAW5D,MAJAg7B,GAAS94B,OACkBA,SAAvB+4B,EAAYl7B,KACdi7B,EAASF,IAEJ,CAVPE,GAASD,EAEkB74B,SAAvB+4B,EAAYl7B,KACdi7B,EAASH,OASR,IAAsB,QAAlBH,EAAU94B,KAAgB,CAGnC,GAFAo5B,EAASD,EACThxB,GAAQ,EACJA,GAAQ,EAEV,MADAixB,GAASF,GACF,CACS,GAAP/wB,GAAmC7H,SAAvB+4B,EAAYl7B,KACjCi7B,EAASH,OAEN,IAAsB,QAAlBH,EAAU94B,KAAgB,CACnC,GAAY,GAARoI,EAEF,MADAgxB,GAASF,GACF,CAEP9wB,IAAQ,EACRgxB,EAASD,EAEkB74B,SAAvB+4B,EAAYl7B,KACdi7B,EAASH,MAMTG,GACN,IAAKH,GACHK,EAAen7B,GAASo7B,EACxBrB,EAAKj0B,OAAOs1B,EAAW,EAAGr7B,GAC1Bq7B,GACA,MACF,KAAKL,GACHhB,EAAK3mB,SAASgoB,EACd,MACF,KAAKJ,GACHG,EAAen7B,GAASo7B,EACxBA,OAKNrB,EAAKC,aAAemB,EACpBpB,EAAKrG,OAASA,EACdqG,EAAKrG,UAqBT51B,GAAO4kB,WAAW9R,OAAS,SAAU1P,GACnC,GAAIwhB,GAAakX,GAAeE,uBAAuBx8B,MACnDsC,EAAWsB,CAiCf,SA/BKpD,EAAOa,WAAWiB,IAAa9B,EAAO0vB,aAAa5tB,MACtDA,EAAW,SAAUG,GACnB,GAAI6Q,GAAS9S,EAAO+E,OAAO3B,GACvBs6B,EAAer9B,OAAOyS,GAAQ9B,aAGlC,OAFA/O,GAAQ5B,OAAOL,EAAO+E,OAAO9C,IAAQ+O,eAE7B8B,GAAyC,IAA/B7Q,EAAMmQ,QAAQsrB,KAIpC9Y,EAAW0X,YAAYx7B,MACrBiD,KAAM,SACN+O,OAAQhR,IAGV8iB,EAAW/H,GAAG,MAAO,WACf+H,EAAWqX,KAAKQ,eAClB7X,EAAWqX,KAAKC,gBAChBtX,EAAWqX,KAAK1iB,QAChBuiB,GAAea,kBAAkB/X,MAIrCA,EAAW/H,GAAG,SAAU,WAClB+H,EAAWqX,KAAKQ,eAClB7X,EAAWqX,KAAKC,gBAChBtX,EAAWqX,KAAK1iB,QAChBuiB,GAAea,kBAAkB/X,MAI9BA,GAGT5kB,EAAO4kB,WAAWtU,KAAO,SAAUlN,GACjC,GAAIwhB,GAAakX,GAAeE,uBAAuBx8B,KAOvD,OALAolB,GAAW0X,YAAYx7B,MACrBiD,KAAM,OACNuM,KAAMlN,IAGDwhB,GAYT5kB,EAAO4kB,WAAW1Y,KAAO,SAAUjK,GACjC,GAAI2iB,GAAakX,GAAeE,uBAAuBx8B,KAOvD,OALAolB,GAAW0X,YAAYx7B,MACrBiD,KAAM,OACNmI,KAAMjK,IAGD2iB,GAYT5kB,EAAO4kB,WAAWzY,KAAO,SAAUlK,GACjC,GAAI2iB,GAAakX,GAAeE,uBAAuBx8B,KAOvD,OALAolB,GAAW0X,YAAYx7B,MACrBiD,KAAM,OACNoI,KAAMlK,IAGD2iB,GAYT5kB,EAAO4kB,WAAW/T,KAAO,SAAUzN,GACjC,GAAIwhB,GAAakX,GAAeE,uBAAuBx8B,KAOvD,OALAolB,GAAW0X,YAAYx7B,MACrBiD,KAAM,OACN8M,KAAMzN,IAGDwhB,GAwBT5kB,EAAOujB,MAAQ,SAAeoa,EAAOx4B,GACnCnF,EAAOknB,SAAS,WACdlnB,EAAOkF,QAAQC,EAAS,SAAUA,GAC3BnF,EAAO6G,UAAU1B,KACpBA,EAAU2W,SAASjS,KAGrB,IAAIgnB,GAAW,GAAI7M,GACf4Z,EAAcrc,EAAcpc,GAAS,GACrC0c,EAAatiB,OAAOuiB,oBAExB+O,GAAS2D,YAAYmJ,GACrB9M,EAAS+B,YAAc/Q,EAEnBA,EACF+b,EAAYhN,OAAOC,GAEnB+M,EAAYlM,KAAKb,GAEnBA,EAAS4F,qCAAqCtxB,SAKpDnF,EAAO+yB,aAAe,SAAsB5tB,EAAS04B,GACnD,GAAIxkB,GAAa2D,EAAe0B,GAAGvZ,GAAW,aAAe,SACzD7D,EAAOgB,MAAMX,UAAUU,MAAMjC,KAAKwC,UAAW,GAC7C2gB,EAAQvjB,EAAOskB,QAAQuZ,EACvBta,GAAMoS,cACRr0B,EAAK8T,QAAQpV,EAAO6wB,SAAS1rB,IAE/Boe,EAAMlK,GAAYzX,MAAMuD,EAAS7D,IAuBnCtB,EAAO8M,QAAU,SAAiB3H,EAAS24B,GAGzC,GAFA34B,EAAUnF,EAAOkF,QAAQC,GAEZ,CACX,GAAI+Z,GAAcC,EAAatT,KAAK1G,EACpC,IAAI+Z,EAAa,CACf,GAAI4e,GAAe5e,EAAYqV,gBAC7B,MAAOrV,GAAYqV,eAErB,IAAIrV,EAAYpS,QACd,MAAOoS,GAAYpS,QAIvB,MAAO9M,GAAO8M,QAAQkQ,EAAe0B,GAAGvZ,GAAWA,EAAQ2D,QAAU3D,EAAQya,YAAY,GAE3F,MAAO,OAuBT5f,EAAO+9B,SAAW,SAAkB54B,GAClC,GAAI2H,GAAU9M,EAAO8M,QAAQ3H,EAC7B,OAAO2H,GAAUA,EAAQ0lB,MAAQ,MAiBnCxyB,EAAO0vB,aAAe,SAAsBztB,GAC1C,QAASA,GAASA,EAAMib,eAAiBsc,IAiB3Cx5B,EAAOiF,iBAAmB,SAA0BhD,GAClD,MAAIA,IAASA,EAAMib,eAAiBsc,GAC3Bv3B,IAEFA,GAGTjC,EAAO6wB,SAAW,SAAkB1rB,GAElC,GADAA,EAAUnF,EAAOkF,QAAQC,GACZ,CACX,GAAI0G,GAAOsT,EAAatT,KAAK1G,EAAS,WACtC,OAAI0G,GACKA,EAEF7L,EAAO6wB,SAAS7T,EAAe0B,GAAGvZ,GAAWA,EAAQ2D,QAAU3D,EAAQya,YAEhF,MAAO,aAST,WACE,GAAIzf,GAAWH,EAAOG,QACtBH,GAAOG,SAAW,SAAS8B,GACzB,MAAyB,KAArBW,UAAUnC,OACL,qCAEFN,EAAS8B,MAKpB,IAAI+7B,GAAU7+B,EAAOa,MAwBrB,OAtBAA,GAAOi+B,WAAa,SAAUz6B,GAS5B,MARIrE,GAAOa,SAAWA,IACpBb,EAAOa,OAASg+B,GAGdx6B,GAAQrE,EAAOa,SAAWA,IAC5Bb,EAAOa,OAASg+B,GAGXh+B,GAGa,kBAAXu3B,SAAyBA,OAAO2G,KACzC3G,OAAO,YAAc,WACnB,MAAOv3B,KAIPP,KAAa,IACfN,EAAOa,OAASA,GAGXA"} \ No newline at end of file +{"version":3,"file":"blocks-query-data.min.js","sources":["blocks-query-data.js"],"names":["global","factory","module","exports","window","this","noGlobal","equals","a","b","aStack","bStack","deepEqual","blocks","_wrapped","className","toString","call","String","source","multiline","ignoreCase","length","aCtor","constructor","bCtor","isFunction","push","size","result","key","has","pop","_super","name","args","func","Class","__Class__","isString","prototype","apply","parseCallback","callback","thisArg","orgCallback","value","index","collection","Object","slice","Array","hasOwn","hasOwnProperty","support","core","expressionsCreated","arguments","staticExpression","createExpression","version","extend","src","copyIsArray","copy","options","clone","target","i","deep","isPlainObject","isArray","each","indexOrKey","eachRight","isCollectionAnArray","type","obj","isArguments","noop","inherit","BaseClass","undefined","objectCreate","Number","Date","isBoolean","is","isPrototypeOf","hasValue","isNumber","isNaN","unwrap","isExpression","unwrapObservable","$unwrap","element","jquery","toArray","isElements","toUnit","unit","unitIsSpecified","parseFloat","parseInt","charAt","replace","deepClone","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","flags","RegExp","lastIndex","HTMLCollection","NodeList","item","e","isElement","nodeType","isObject","ownPropertiesAreLast","isFinite","isNull","isUndefined","nothing","access","path","defaultValue","split","swap","array","indexA","indexB","move","sourceIndex","targetIndex","splice","bind","bound","concat","self","at","prototypeIndentification","first","last","create","BaseExpression","parent","_value","_computedValue","_parent","_currentResult","_result","_lastCondition","_condition","_hasNot","group","behavior","accessor","PrepareValues","isAccessorACallback","hasAccessor","generateExpression","descriptorName","isRoot","body","LoopDescriptors","expressions","methodsData","methods","staticMethods","Expression","Function","expressionsCache","cache","descriptors2","add","NumberExpression","forEach","positions","determineIndex","items","isPosition","addMany","flatten","StringExpression","format","string","regEx","FunctionExpression","partial","delay","wait","setTimeout","DateExpression","RegExpExpression","applyExpression","data","createContext","expression","resultIndex","isArrayCheck","skip","take","variables","objectBeforeLoops","arrayBeforeLoops","objectInLoops","arrayInLoops","objectAfterLoops","arrayAfterLoops","conditionsEnd","createConditionsCreator","lastBoolResult","context","inLoop","declarations","boolResultsCount","descriptorData","handled","boolResult","match","end","parentContext","conditionsDeclarations","join","conditions","afterLoopConditions","isSingleExpression","_isSingle","_type","types","tillExpressions","conditionsCreator","skipIndex","takeIndex","disregardResultIndex","skipTake","onlySkipTake","typesIndex","_descriptor","identity","reverse","beforeLoop","afterLoop","RootObjectExpression","_loopDescriptor","mock","descriptor","root","singleExpression","descriptors","blocksAt","position","_prototypeIndentification","_expression","_setResult","not","or","and","_not","_resultExpression","RootArrayExpression","isEmpty","nativeMax","Math","max","ceil","range","start","step","tart","groupBy","countBy","sortBy","dir","sortExpression","sort","left","right","toLowerCase","field","map","list","criteria","HelperDescriptors","fieldName","uniquePrepare","mapPrepare","filterPrepare","createFilterCallback","reducePrepare","memo","filterExpressions","resolveFilterExpressionValue","filterExpression","operator","compareValue","startsWith","endsWith","indexOf","logic","filters","currentResult","shallow","reduceRightPrepare","CollectionDescriptors","contains","prepareValues","every","filter","everything","invoke","min","reduce","some","ArrayDescriptors","lastIndexOf","reduceRight","unique","ObjectDescriptors","get","invert","keys","pairs","values","chainExpression","context2","context1","last2","first2","key2","index2","last1","first1","key1","index1","inLoopConditions","toObject","blox","shuffle","set","objectOrKey","count","shift","begin","compareFunction","howMany","unshift","remove","removeAt","removeAll","removeOne","isCallbackAFunction","useValuesArray","rand","shuffled","random","object","trimRegExp","stringTrimStartRegex","stringTrimEndRegex","substring","trim","trimValue","trimStart","trimEnd","repeat","wrap","wrapValue","matches","regexp","floor","stringOrFunction","wrapValueOrCallback","reg","MAX_VALUE","isRegExp","exec","input","startIndex","endIndex","memoize","hasher","throttle","debounce","immediate","debound","once","timeout","previous","later","leading","now","remaining","clearTimeout","trailing","timestamp","callNow","ran","biggerThan","lessThan","addWeeks","weeks","compare","date","equalsDate","equalsTime","clearTime","setDate","dateA","dateB","setHours","methodName","propertyName","reset","trigger","isArrayExpression","ChildArrayExpression","isObjectExpression","ChildObjectExpression","expressionsByName","skipMethods","applyExpressions","expressionName","blocksAtOriginal","blocksFirstOriginal","blocksFirst","blocksLastOriginal","blocksLast","blocksContains","searchValue","returnFalse","returnTrue","Event","originalEvent","isDefaultPrevented","defaultPrevented","returnValue","timeStamp","addListener","eventName","addEventListener","event","fix","attachEvent","getClassIndex","classAttribute","escapeValue","ampRegEx","lessThanRegEx","createFragment","html","fragment","document","createDocumentFragment","temp","createElement","table","tableEnd","tbody","tbodyEnd","tr","trEnd","innerHTML","lastChild","firstChild","appendChild","parseVersion","on","handler","Workarounds","VirtualElement","tagName","__identity__","virtualElementIdentity","_tagName","_attributes","_attributeExpressions","_children","_isSelfClosing","_haveAttributes","_innerHTML","_renderMode","RenderMode","All","_haveStyle","_style","_states","_state","_el","generateStyleAttribute","style","state","haveStyle","replaceStyleAttribute","setClass","classNames","Is","_getAttr","classAttr","classList","classListMultiArguments","attributes","getIndexOffset","parentElement","elementData","ElementsData","animating","childNodes","childIndex","currentIndex","POSITIVE_INFINITY","animateDomAction","createIfNotExists","parentElementData","parentNode","animateCallback","cssType","disposeCallback","clear","removeChild","display","readyCallback","preprocess","$view","$root","cssAnimate","removeEventListener","ontransitionend","computedStyle","getComputedStyle","prefix","onanimationend","onwebkitanimationend","transitionDuration","transitionDelay","animationDuration","animationDelay","VirtualComment","commentText","_commentText","nodeValue","createVirtual","htmlElement","elementAttributes","htmlAttributes","htmlAttribute","commentTextTrimmed","serverData","__blocksServerData__","elements","_each","_childrenEach","nodeName","specified","browser","IE","_createAttributeExpressions","cssText","generateStyleObject","setIsSelfClosing","hasClass","Create","dataQueryAttr","nextSibling","_endElement","number","styleString","styles","styleObject","domElement","isSelfClosingCache","createProperty","parseQuery","query","currentParameter","character","bracketsCount","curlyBracketsCount","squareBracketsCount","isInSingleQuotes","isInDoubleQuotes","parameters","DomQuery","_options","_contextProperties","createCache","QueryCache","method","queries","methodObj","params","debug","queryNotExists","ChunkManager","observable","chunkLengths","dispose","updateDependencies","_dependencyType","_getDependency","getDependency","__value__","Events","off","Observer","startObserving","__context__","stopObserving","dependency","dependencies","_dependencies","exists","getObservableValue","createEventMethod","eventNames","_trigger","register","_events","events","currentEventName","eventData","eventsData","handleReady","readyState","ready","completed","top","frameElement","documentElement","doScroll","doScrollCheck","isDomReady","domReady","__mock__","jQuery","isReady","isMouseEventRegEx","isKeyEventRegEx","PropertiesToCopy","all","mouse","keyboard","CopyProperties","propertiesName","preventDefault","stopPropagation","isPropagationStopped","cancelBubble","stopImmediatePropagation","isImmediatePropagationStopped","srcElement","metaKey","test","fixMouse","which","charCode","keyCode","eventDoc","doc","button","fromElement","pageX","clientX","ownerDocument","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","dataIdAttr","div","iElems","getElementsByTagName","Opera","navigator","opera","Safari","userAgent","Firefox","getDataId","getAttribute","setDataId","id","attr","setAttribute","globalId","collectGarbage","dom","currentData","isVirtual","virtual","observables","byId","force","haveData","_elements","elementId","removeAttribute","subscribe","deferCall","globalSelectionChangeHandler","selectionChangeHandler","activeElement","isRegistered","selectionChange","valueTagNames","textarea","select","valueTypes","file","hidden","password","text","color","datetime","datetime-local","email","month","search","tel","time","url","week","props","for","class","checked","tabindex","htmlFor","propFix","attrFix","addClass","removeClass","comment","_element","css","animation","setVisibility","removeAttr","attributeName","attributeValue","isProperty","skipExecution","children","child","selected","selectedIndex","commentElement","currentElement","insertBefore","endComment","parameterQueryCache","stack","currentObservables","registerObservable","newObservable","alreadyExists","Html","ValueOnly","GetValue","chunk","Execute","lastResult","expressionData","entireExpression","isObservable","expressionObj","ex","expressionFail","entire","_expressionKeys","_expressions","_this","rawAttributeValue","valueObservable","_fake","_values","val","toUpperCase","_getCss","CssNumbers","addChild","_template","render","domQuery","toggleClass","condition","renderBeginTag","_renderAttributes","renderEndTag","syncIndex","childHtml","_execute","None","ElementOnly","renderChildren","_context","sync","_sync","syncChildren","offset","elementForDeletion","textContent","updateChildren","updateCount","template","isOneChild","getSyncIndex","childContexts","childs","chunkLength","_length","$this","$parent","$parentContext","popContext","_serverData","applyContextToElement","_executeAttributeExpressions","executeQuery","attributeExpressions","dataId","columnCount","fillOpacity","flexGrow","flexShrink","fontWeight","lineHeight","opacity","order","orphans","widows","zIndex","zoom","insert","childNodesCount","insertPositionNode","node","visible","show","hide","dataIndex","_hasChanged","childrenContext","pushContext","newModel","newContext","models","$parents","$index","_dataIndex","$context","applyDefinedContextProperties","contextBubble","currentContext","addProperty","removeProperty","contextProperties","executeElementQuery","executeMethods","executedParameters","parameter","lastObservablesLength","passDomQuery","update","j","rawValue","queryParameterFail","passDetailValues","containsObservable","passRawValues","ifnot","checkQuery","supportsComments","subscribeObservables","execute","executeHash","__id__","createElementObservableDependencies","updateOn","UpdateHandlers","cloneContext","change","getSetValue","click","keydown","oldValue","selectedOptions","option","if","getElementById","templates","define","propertyValue","with","_getStaticHtml","dataRole","headers","_headers","footers","_footers","headerHtml","footerHtml","header","headersCount","footer","footersCount","rawCollection","staticHtml","eachData","startOffset","endOffset","getIndex","$thisStr","caption","Error","renderCache","animate","disabled","width","height","focused","focus","callbacks","$template","OBSERVABLE","observableLength","setStartIndex","setChildNodesCount","wrapper","Infinity","round","getAt","insertAt","_indexes","addItems","virtualElement","domElements","setup","commentId","commentIndex","observableId","initialValue","currentValue","fn","base","__viewInInitialize__","_elementKeys","_chunkManager","observableIndexes","forceGet","indexes","createTextNode","extendFunc","cloneValue","current","chunkManager","addCount","removeCount","seperator","that","sortfunction","useSortFunction","ExtenderHelper","waiting","initExpressionExtender","view","_connections","_observed","_updateObservable","updateObservable","_operations","_getter","getter","_initialized","executeOperations","executeOperationsPure","observed","operation","executeOperationsChunk","operations","ADD","REMOVE","EXISTS","action","connections","newConnections","viewIndex","valueA","valueB","filterCallback","filterString","model","rootElement","queryName","isRecursive","dataItem","_blocks","noConflict","amd"],"mappings":"CAUC,SAASA,EAAQC,GACM,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAC9CD,OAAOC,QAAUF,EAAQD,GAAQ,GAEjCC,EAAQD,IAIQ,mBAAXI,QAAyBA,OAASC,KAAM,SAASL,EAAQM,GA40BhE,QAASC,GAAOC,EAAGC,EAAGC,EAAQC,EAAQC,GAOpC,GANIA,KAAc,IAChBA,GAAY,GAKVJ,IAAMC,EACR,MAAa,KAAND,GAAW,EAAIA,GAAK,EAAIC,CAIjC,IAAS,MAALD,GAAkB,MAALC,EACf,MAAOD,KAAMC,CAIXD,aAAaK,KACfL,EAAIA,EAAEM,UAEJL,YAAaI,KACfJ,EAAIA,EAAEK,SAIR,IAAIC,GAAYC,EAASC,KAAKT,EAC9B,IAAIO,GAAaC,EAASC,KAAKR,GAC7B,OAAO,CAGT,QAAQM,GAEN,IAAK,kBAGH,MAAOP,IAAKU,OAAOT,EACrB,KAAK,kBAGH,MAAOD,KAAMA,EAAIC,IAAMA,EAAW,IAAND,EAAU,EAAIA,GAAK,EAAIC,EAAID,IAAMC,CAC/D,KAAK,gBACL,IAAK,mBAIH,OAAQD,IAAMC,CAEhB,KAAK,kBACH,MAAOD,GAAEW,QAAUV,EAAEU,QACnBX,EAAER,QAAUS,EAAET,QACdQ,EAAEY,WAAaX,EAAEW,WACjBZ,EAAEa,YAAcZ,EAAEY,WAGxB,GAAgB,gBAALb,IAA6B,gBAALC,GACjC,OAAO,CAMT,KADA,GAAIa,GAASZ,EAAOY,OACbA,KAGL,GAAIZ,EAAOY,IAAWd,EACpB,MAAOG,GAAOW,IAAWb,CAM7B,IAAIc,GAAQf,EAAEgB,YACZC,EAAQhB,EAAEe,WACZ,IAAID,IAAUE,KAAWZ,EAAOa,WAAWH,IAAWA,YAAiBA,IACnEV,EAAOa,WAAWD,IAAWA,YAAiBA,KAC/C,eAAiBjB,IAAK,eAAiBC,GACxC,OAAO,CAITC,GAAOiB,KAAKnB,GACZG,EAAOgB,KAAKlB,EAEZ,IAAImB,GAAO,EACTC,GAAS,CAEX,IAAiB,kBAAbd,GAIF,GAFAa,EAAOpB,EAAEc,OACTO,EAASD,GAAQnB,EAAEa,OAGjB,KAAOM,MACCC,EAAUjB,EAAYL,EAAOC,EAAEoB,GAAOnB,EAAEmB,GAAOlB,EAAQC,EAAQC,GAAaJ,EAAEoB,KAAUnB,EAAEmB,WAK/F,CAEL,IAAK,GAAIE,KAAOtB,GACd,GAAIK,EAAOkB,IAAIvB,EAAGsB,KAEhBF,MAEMC,EAAShB,EAAOkB,IAAItB,EAAGqB,KAASlB,EAAYL,EAAOC,EAAEsB,GAAMrB,EAAEqB,GAAMpB,EAAQC,EAAQC,GAAaJ,EAAEsB,KAASrB,EAAEqB,MACjH,KAKN,IAAID,EAAQ,CACV,IAAKC,IAAOrB,GACV,GAAII,EAAOkB,IAAItB,EAAGqB,KAAUF,IAC1B,KAGJC,IAAUD,GAOd,MAFAlB,GAAOsB,MACPrB,EAAOqB,MACAH,EAkBT,QAASI,GAAOC,EAAMC,GACpB,GACIN,GACAO,EAFAC,EAAQhC,KAAKiC,SAejB,OAXIzB,GAAO0B,SAASL,GAClBE,EAAOC,EAAMG,UAAUN,IAEvBC,EAAOD,EACPE,EAAOC,GAGThC,KAAKiC,UAAYD,EAAMG,UAAUF,UACjCT,EAASO,EAAKK,MAAMpC,KAAM8B,OAC1B9B,KAAKiC,UAAYD,EAEVR,EAcT,QAASa,GAAcC,EAAUC,GAC/B,GAAe,MAAXA,EAAiB,CACnB,GAAIC,GAAcF,CAClBA,GAAW,SAASG,EAAOC,EAAOC,GAChC,MAAOH,GAAY5B,KAAK2B,EAASE,EAAOC,EAAOC,IAGnD,MAAOL,GA9/BT,GAAI3B,GAAWiC,OAAOT,UAAUxB,SAC5BkC,EAAQC,MAAMX,UAAUU,MACxBE,EAASH,OAAOT,UAAUa,eAC1BC,KACAC,KAKA1C,EAAS,SAAUiC,GACrB,MAAIS,GAAKC,mBACkB,IAArBC,UAAUnC,OACLiC,EAAKG,iBAEPH,EAAKI,iBAAiBb,GAGxBA,EAGTjC,GAAO+C,QAAU,QACjB/C,EAAO0C,KAAOA,EAUd1C,EAAOgD,OAAS,WACd,GAAIC,GAAKC,EAAaC,EAAM9B,EAAM+B,EAASC,EACzCC,EAASV,UAAU,OACnBW,EAAI,EACJ9C,EAASmC,UAAUnC,OACnB+C,GAAO,CAeT,KAZsB,iBAAXF,KACTE,EAAOF,EACPA,EAASV,UAAU,OAEnBW,EAAI,GAIgB,gBAAXD,IAAwBtD,EAAOa,WAAWyC,KACnDA,MAGS7C,EAAJ8C,EAAYA,IAEjB,GAAgC,OAA3BH,EAAUR,UAAUW,IAEvB,IAAKlC,IAAQ+B,GACXH,EAAMK,EAAOjC,GACb8B,EAAOC,EAAQ/B,GAGXiC,IAAWH,IAKXK,GAAQL,IAASnD,EAAOyD,cAAcN,KAAUD,EAAclD,EAAO0D,QAAQP,MAC3ED,GACFA,GAAc,EACdG,EAAQJ,GAAOjD,EAAO0D,QAAQT,GAAOA,MAErCI,EAAQJ,GAAOjD,EAAOyD,cAAcR,GAAOA,KAI7CK,EAAOjC,GAAQrB,EAAOgD,OAAOQ,EAAMH,EAAOF,IAG1CG,EAAOjC,GAAQ8B,EAOvB,OAAOG,IAyBTtD,EAAO2D,KAAO,SAASxB,EAAYL,EAAUC,GAC3C,GAAkB,MAAdI,EAAJ,CAIA,GAAI1B,GAAS0B,EAAW1B,OACpBmD,EAAa,GACbF,EAA2B,gBAAVjD,EAIrB,IAFAqB,EAAWD,EAAcC,EAAUC,GAE/B2B,EACF,OAASE,EAAanD,GAChBqB,EAASK,EAAWyB,GAAaA,EAAYzB,MAAgB,QAKnE,KAAKyB,IAAczB,GACjB,GAAIL,EAASK,EAAWyB,GAAaA,EAAYzB,MAAgB,EAC/D,QAqBRnC,EAAO6D,UAAY,SAAS1B,EAAYL,EAAUC,GAChD,GAAkB,MAAdI,EAAJ,CAIA,GAAI1B,GAAS0B,EAAW1B,OACtBmD,EAAazB,EAAW1B,OACxBqD,EAAuC,gBAAVrD,EAI/B,IAFAqB,EAAWD,EAAcC,EAAUC,GAE/B+B,EACF,OAASF,GAAc,GACrB9B,EAASK,EAAWyB,GAAaA,EAAYzB,OAG/C,KAAKyB,IAAczB,GACjBL,EAASK,EAAWyB,GAAaA,EAAYzB,KAKnDnC,EAAO2D,MAAM,YAAa,WAAY,SAAU,SAAU,OAAQ,UAAW,SAASI,GACpF/D,EAAO,KAAO+D,GAAQ,SAASC,GAC7B,MAAO7D,GAASC,KAAK4D,IAAQ,WAAaD,EAAO,OAMhD/D,EAAOiE,YAAYrB,aACtB5C,EAAOiE,YAAc,SAASD,GAC5B,SAAUA,IAAOzB,EAAOnC,KAAK4D,EAAK,aAKlB,kBAAV,MACRhE,EAAOa,WAAa,SAASmD,GAC3B,SAAUA,GAAsB,kBAARA,MAqB5BhE,EAAO0D,QAAUpB,MAAMoB,SAAW,SAASzB,GACzC,MAA+B,kBAAxB9B,EAASC,KAAK6B,IAGvBjC,EAAOgD,OAAOhD,GAaZkE,KAAM,aAENC,QAAS,SAASC,EAAW5C,EAAOG,GAiBlC,OAhBKiB,UAAUnC,OAAS,GAAKT,EAAOyD,cAAcjC,IAA+B,GAApBoB,UAAUnC,UACrEkB,EAAYH,EACZA,EAAQ4C,EACRA,EAAYC,QAGVD,GACF5C,EAAMG,UAAY2C,EAAaF,EAAUzC,WACzCH,EAAMG,UAAUhB,YAAca,EAC9BxB,EAAOgD,OAAOxB,EAAMG,UAAWA,GAC/BH,EAAMG,UAAUF,UAAY2C,EAC5B5C,EAAMG,UAAUP,OAASA,GAChBO,IACTH,EAAMG,UAAYA,GAGbH,GAmCTuC,KAAM,SAAS9B,GACb,MAAIA,aAAiBK,OACZ,QAEW,gBAATL,IAAqBA,YAAiB5B,QACxC,SAEW,gBAAT4B,IAAqBA,YAAiBsC,QACxC,SAELtC,YAAiBuC,MACZ,OAEoB,oBAAzBrE,EAASC,KAAK6B,GACT,SAEK,OAAVA,EACK,OAEKoC,SAAVpC,EACK,YAGLjC,EAAOa,WAAWoB,GACb,WAGLjC,EAAOyE,UAAUxC,GACZ,UAGF,UAkBTyC,GAAI,SAASzC,EAAO8B,GAClB,MAAInB,WAAUnC,OAAS,GAAKT,EAAOa,WAAWkD,GACrCA,EAAKpC,UAAUgD,cAAc1C,GAE/BjC,EAAO+D,KAAK9B,IAAU8B,GAuB/B7C,IAAK,SAAS8C,EAAK/C,GACjB,SAAU+C,IAAOzB,EAAOnC,KAAK4D,EAAK/C,KAGpC2D,SAAU,SAAS3C,GACjB,QAAgB,MAATA,GAAmBjC,EAAO6E,SAAS5C,IAAW6C,MAAM7C,KAG7D9B,SAAU,SAAS8B,GAEjB,GAAIjB,GAAS,EAIb,OAHIhB,GAAO4E,SAAS3C,KAClBjB,EAASiB,EAAM9B,YAEVa,GAqBT+D,OAAQ,SAAS9C,GACf,MAAIS,GAAKC,oBAAsBD,EAAKsC,aAAa/C,GACxCA,EAAMA,QAGXjC,EAAOiF,iBACFjF,EAAOiF,iBAAiBhD,GAE1BA,GAaTiD,QAAS,SAASC,EAASrD,EAAUC,GAgBnC,MAfAD,GAAWD,EAAcC,EAAUC,GAE/BoD,GAAWA,EAAQC,QACjBtD,GACFqD,EAAQxB,KAAK,WACX7B,EAAStC,QAGb2F,EAAUA,EAAQ,IAEdrD,GACFA,EAASqD,GAINA,GAuBTE,QAAS,SAASpD,GAMhB,GAAIjC,EAAOiE,YAAYhC,GACrB,MAAOI,GAAMjC,KAAK6B,EAEpB,IAAIjC,EAAOsF,WAAWrD,GAAQ,CAM5B,IAHA,GAAIjB,GAASsB,MAAML,EAAMxB,QACrByB,EAAQ,GACRzB,EAASwB,EAAMxB,SACVyB,EAAQzB,GACfO,EAAOkB,GAASD,EAAMC,EAExB,OAAOlB,GAET,MAAKhB,GAAO0D,QAAQzB,GAGbA,GAFGA,IAyBZsD,OAAQ,SAAStD,EAAOuD,GACtB,GAAIC,GAAkBD,CAGtB,OAFAA,GAAOA,GAAQ,KAEXxF,EAAO8E,MAAMY,WAAWzD,IACnBA,EAGLjC,EAAO0B,SAASO,IAAUjC,EAAO8E,MAAMa,SAAS1D,EAAM2D,OAAO3D,EAAMxB,OAAS,GAAI,KAC9EgF,EACKxD,EAAM4D,QAAQ,WAAYL,GAE5BvD,EAEFA,EAAQuD,GAkBjBnC,MAAO,SAASpB,EAAO6D,GACrB,GAAa,MAAT7D,EACF,MAAOA,EAGT,IACIoB,GACApC,EAFA8C,EAAO/D,EAAO+D,KAAK9B,EAIvB,IAAY,SAAR8B,EACF,MAAO9B,GAAMI,MAAM,EACd,IAAY,UAAR0B,EAAkB,CAEzBV,EADEpB,EAAMtB,cAAgByB,UAGhB,GAAIH,GAAMtB,WAGpB,KAAKM,IAAOgB,GACVoB,EAAMpC,GAAO6E,EAAY9F,EAAOqD,MAAMpB,EAAMhB,IAAM,GAAQgB,EAAMhB,EAElE,OAAOoC,GACF,GAAY,QAARU,EACT,MAAO,IAAIS,MAAKvC,EAAM8D,cAAe9D,EAAM+D,WAAY/D,EAAMgE,UAC3DhE,EAAMiE,WAAYjE,EAAMkE,aAAclE,EAAMmE,aAAcnE,EAAMoE,kBAC7D,IAAY,UAARtC,EACT,MAAO9B,GAAM9B,UACR,IAAY,UAAR4D,EAAkB,CAC3B,GAAIuC,GAAQ,EAYZ,OAXIrE,GAAM9C,SACRmH,GAAS,KAEPrE,EAAMzB,aACR8F,GAAS,KAEPrE,EAAM1B,YACR+F,GAAS,KAEXjD,EAAQ,GAAIkD,QAAOtE,EAAM3B,OAAQgG,GACjCjD,EAAMmD,UAAYvE,EAAMuE,UACjBnD,EAGT,MAAOpB,IAUTqD,WAAY,SAASrD,GACnB,GAAIqD,IAAa,CACjB,IAAIrD,IAC2B,mBAAlBwE,kBACTnB,EAAarD,YAAiB1C,QAAOkH,gBAEhB,mBAAZC,WAA4BpB,IACrCA,EAAarD,YAAiByE,YAE3BpB,GAActF,EAAO0B,SAASO,EAAM0E,OACvC,IACE1E,EAAM0E,KAAK,GACXrB,GAAa,EACb,MAAOsB,IAGb,MAAOtB,IAiBTuB,UAAW,SAAS5E,GAClB,SAAUA,GAA4B,IAAnBA,EAAM6E,WAoB3BrC,UAAW,SAASxC,GAClB,MAAOA,MAAU,GAAQA,KAAU,GAAiC,oBAAxB9B,EAASC,KAAK6B,IAU5D8E,SAAU,SAAS/C,GACjB,MAAOA,KAAQ5B,OAAO4B,IAwBxBP,cAAe,SAASO,GACtB,GAAI/C,EAKJ,KAAK+C,GAAsB,gBAARA,IAA2C,oBAAvB7D,EAASC,KAAK4D,IAA8BA,EAAI8C,UAAY9C,EAAIzE,QAAUyE,EAC/G,OAAO,CAGT,KAEE,GAAIA,EAAIrD,cAAgB4B,EAAOnC,KAAK4D,EAAK,iBAAmBzB,EAAOnC,KAAK4D,EAAIrD,YAAYgB,UAAW,iBACjG,OAAO,EAET,MAAOiF,GAEP,OAAO,EAKT,GAAInE,EAAQuE,qBACV,IAAK/F,IAAO+C,GACV,MAAOzB,GAAOnC,KAAK4D,EAAK/C,EAQ5B,KAAKA,IAAO+C,IAEZ,MAAeK,UAARpD,GAAqBsB,EAAOnC,KAAK4D,EAAK/C,IAG/CgG,SAAU,SAAShF,GACjB,MAAOgF,UAAShF,KAAWjC,EAAO8E,MAAMY,WAAWzD,KAGrD6C,MAAO,SAAS7C,GACd,MAAOjC,GAAO6E,SAAS5C,IAAUA,IAAUA,GAG7CiF,OAAQ,SAASjF,GACf,MAAiB,QAAVA,GAGTkF,YAAa,SAASlF,GACpB,MAAiBoC,UAAVpC,GAGTmF,WAEAC,OAAQ,SAASrD,EAAKsD,EAAMC,GAC1B,GACIlG,GADAa,EAAQ,CAOZ,KAJAqF,EAAe3E,UAAUnC,OAAS,EAAI8G,EAAevH,EAAOoH,QAC5DE,EAAOA,EAAKE,MAAM,KAClBnG,EAAOiG,EAAK,GAELjG,GAAM,CACX,GAAW,MAAP2C,EACF,MAAOuD,EAETvD,GAAMA,EAAI3C,GACVA,EAAOiG,IAAOpF,GAEhB,MAAO8B,IAGTyD,KAAM,SAASC,EAAOC,EAAQC,GAC5B,GAAInH,GAASiH,EAAMjH,MAInB,OAHIkH,IAAU,GAAKC,GAAU,GAAcnH,EAATkH,GAA4BlH,EAATmH,IACnDF,EAAMC,GAAUD,EAAME,IAAWF,EAAME,GAAUF,EAAMC,GAAS,IAE3DD,GAGTG,KAAM,SAASH,EAAOI,EAAaC,GAWjC,MAVID,IAAeC,IACEA,GAAfD,GACFC,IAEFL,EAAMM,OAAOD,EAAa,EAAGL,EAAMI,IAC/BA,EAAcC,GAChBD,IAEFJ,EAAMM,OAAOF,EAAa,IAErBJ,GA8BTO,KAAM,SAAS1G,EAAMQ,GACnB,GAEImG,GAFA1G,EAAQ,aACRF,EAAOe,EAAMjC,KAAKwC,UAAW,EAgBjC,OAbAsF,GAAQ,WACN,KAAM1I,eAAgB0I,IACpB,MAAO3G,GAAKK,MAAMG,EAAST,EAAK6G,OAAO9F,EAAMjC,KAAKwC,YAEpDpB,GAAMG,UAAYJ,EAAKI,SACvB,IAAIyG,GAAO,GAAI5G,GAEXR,EAASO,EAAKK,MAAMwG,EAAM9G,EAAK6G,OAAO9F,EAAMjC,KAAKwC,YACrD,OAAIR,QAAOpB,KAAYA,EACdA,EAEFoH,IAuBX1I,OAAQ,SAASC,EAAGC,EAAGG,GAIrB,MAFAJ,GAAIK,EAAO+E,OAAOpF,GAClBC,EAAII,EAAO+E,OAAOnF,GACXF,EAAOC,EAAGC,QAAWG,MAoIhCC,EAAOqI,GAAK,SAAUnG,GACpB,OACEA,MAAOA,EACPoG,yBAA0B,kBAI9BtI,EAAOuI,MAAQ,WACb,MAAOvI,GAAOuI,OAGhBvI,EAAOwI,KAAO,WACZ,MAAOxI,GAAOwI,KAsBhB,IAAIlE,GAAelC,OAAOqG,QAAU,SAAS9G,GAC3C,GAAIH,GAAQ,YAEZ,OADAA,GAAMG,UAAYA,EACX,GAAIH,GAGb,KAAK,GAAIP,MAAQwB,GACf,KAEFA,GAAQuE,qBAA8B,KAAP/F,EAgB/B,YAEF,WA6CE,QAASyH,GAAezG,EAAO0G,GAC7BnJ,KAAKoJ,OAAS3G,EACdzC,KAAKqJ,eAAiBxE,OAClBsE,IACFnJ,KAAKsJ,QAAUH,EACfnJ,KAAKuJ,eAAiB/I,EAAOyE,UAAUkE,EAAOK,SAAWL,EAAOK,QAAUL,EAAOI,eACjFvJ,KAAKyJ,eAAiBN,EAAOO,YAAcP,EAAOM,eAClDzJ,KAAK2J,QAAUR,EAAOQ,SA+O1B,QAASC,GAAMC,EAAU3B,EAAO4B,EAAUvH,GACxCuH,EAAWC,EAAc1H,cAAcyH,EAAUvH,IAAYuH,CAU7D,KARA,GAKIrH,GACAhB,EANAD,KACAuC,EAAI,EACJ9C,EAASiH,EAAMjH,OACf+I,EAAsBxJ,EAAOa,WAAWyI,GACxCG,EAA0B,MAAZH,EAIP7I,EAAJ8C,EAAYA,IACjBtB,EAAQyF,EAAMnE,GACdtC,EAAMwI,EAAcD,EAAsBF,EAASrH,EAAOsB,EAAGmE,GAASzF,EAAMqH,GAAYrH,EACxFoH,EAASrI,EAAQC,EAAKgB,EAAOyF,EAAO4B,EAEtC,OAAOtI,GAo9BT,QAAS0I,GAAmBrI,EAAMiG,EAAMqC,EAAgB5F,EAAM6F,GAC5D,GAAIC,GAAOC,EAAgBC,aACzBH,OAAQA,EACRvI,KAAMA,EACNiG,KAAMA,EACNqC,eAAgBA,GAAkB,IAClCrI,MAAO0I,EAAYL,QAAuBrI,KAC1C2I,QAASD,EACTjG,KAAMA,GAAQ,EACdmG,cAAeA,IAGbC,EAAa,GAAIC,WACd,SAAU,OAAQ,cAAe,QAAS,iBAAkB,kBAAmB,qBAAsB,cAAe,mBAAoB,gBAAiB,QAAS,MACnK,oBACAP,GACC7J,EAAQA,EAAQqK,EAAkBC,EAAO5B,EAAgBoB,EAAiBJ,EAAoBa,EAAczH,EAAkByG,EAAelH,EAAOmI,EACrJC,EAKN,OAJIb,KACFS,EAAiBhJ,EAAO,cAAgB8I,GAE1CA,EAAWxI,UAAU+I,QAAUP,EAAWxI,UAAUgC,KAC7CwG,EA2IT,QAASK,GAAI9C,EAAOpG,GAClB,GAAIA,EAAKb,OAAS,EAAG,CACnB,GAAIyB,GAAQyI,EAAUC,eAAetJ,EAAK,GAAIoG,EAAMjH,QAChDoK,EAAQxI,EAAMjC,KAAKkB,EAAMqJ,EAAUG,WAAWxJ,EAAK,IAAM,EAAI,GAC7DiC,EAAI,CAER,IAAIrB,GAASwF,EAAMjH,OACjB,KAAO8C,EAAIsH,EAAMpK,OAAQ8C,IACvBmE,EAAMxF,EAAQqB,GAAKsH,EAAMtH,OAG3BmE,GAAMM,OAAOpG,MAAM8F,GAAQxF,EAAO,GAAGiG,OAAO0C,IAGhD,MAAOnD,GAGT,QAASqD,GAAQrD,EAAOpG,GACtB,MAAOkJ,GAAI9C,EAAO1H,EAAOgL,QAAQ1J,GAAM,IAyBzC,QAAS2J,GAAiBhJ,EAAO0G,GAC/BnJ,KAAKiC,UAAUQ,EAAO0G,GAkLxB,QAASuC,GAAOC,EAAQ7J,GAKtB,IAJA,GAAI8J,GACA7H,EAAI,EAGDA,EAAIjC,EAAKb,OAAQ8C,IAGtB6H,EAAQ,GAAI7E,QAAO,MAAQhD,EAAI,MAAO,MACtC4H,EAASA,EAAOtF,QAAQuF,EAAO9J,EAAKiC,GAGtC,OAAO4H,GAIT,QAASE,GAAmBpJ,EAAO0G,GACjCnJ,KAAKiC,UAAUQ,EAAO0G,GAgIxB,QAAS2C,GAAQ/J,EAAMD,GACrB,MAAO,YACL,MAAOC,GAAKK,MAAMpC,KAAM8B,EAAK6G,OAAO9F,EAAMjC,KAAKwC,cAInD,QAAS2I,GAAMhK,EAAMiK,EAAMlK,GAEzB,MADAkK,GAAOA,GAAQ,EACRC,WAAW,WAChB,MAAOlK,GAAKK,MAAM,KAAMN,IACvBkK,GAeL,QAASf,GAAiBxI,EAAO0G,GAC/BnJ,KAAKiC,UAAUQ,EAAO0G,GAgCxB,QAAS+C,GAAezJ,EAAO0G,GAC7BnJ,KAAKiC,UAAUQ,EAAO0G,GAmFxB,QAASgD,GAAiB1J,EAAO0G,GAC/BnJ,KAAKiC,UAAUQ,EAAO0G,GAkHxB,QAASiD,GAAgB3K,GACvB,MAAO,YACL,GAAIgB,GAAQjC,EAAO+E,OAAOvF,KAAKoJ,QAAUpJ,KAAKqM,MAAQrM,KACtD,OAAIQ,GAAOiB,GACFjB,EAAO+E,OAAO/E,EAAOiB,GAAKW,MAAMK,GAAQA,GAAOkG,OAAOnI,EAAOqF,QAAQzC,eAE5EX,EAAQjC,EAAOiC,GACfA,EAAQA,EAAMhB,GAAKW,MAAMK,EAAOjC,EAAOqF,QAAQzC,YACxCX,EAAMjB,UAAYiB,EAAMA,UAOrC,QAAS6J,KACP,OACElI,WAAY,aACZnD,OAAQ,SACRO,OAAQ,SACR8C,oBAAqB,sBACrB3B,WAAY,aACZ4J,WAAY,aACZ9J,MAAO,QACP+J,YAAa,EACbC,aAAc,4BACdC,KAAM,EACNC,KAAM,KAGN7K,QACA8K,aACAC,qBACAC,oBACAC,iBACAC,gBACAC,oBACAC,mBACAC,cAAe,IAInB,QAASC,KACP,GASIC,GATAC,GACF9L,OAAQ,SACR+L,QAAQ,EACRlC,UAEE3I,EAAQ,EACR2I,EAAQiC,EAAQjC,MAChBmC,KACAC,EAAmB,CAGvB,QACEnL,SAAU,SAAUoL,GAClB,GAAIC,IAAU,CAEd,QAAQD,EAAe7L,MACrB,IAAK,MACHwJ,EAAM/J,KAAK,OACX,MACF,KAAK,KACH+J,EAAM/J,KAAK,OACX,MACF,KAAK,MACC+L,KAAmB,IACrBC,EAAQC,QAAS,GAEnBF,EAAiBxI,OACjBwG,EAAM7C,OAAO6C,EAAMpK,OAAS,EAAG,EAAG,KAClCwM,GACA,MACF,SACEE,GAAU,EACwB9I,SAA9B6I,EAAeE,aACM/I,SAAnBwI,GAAgCA,KAAmB,IACrDC,EAAQC,QAAS,GAEnBF,EAAiBK,EAAeE,WAChCH,IACApC,EAAM/J,KAAKgM,EAAQ9L,OAASkB,GAC5BgL,EAAeH,QAAUG,EAAeH,QAAU,IAAIlH,QAAQ,qBAAsB,SAAUwH,GAC5F,GAAIrM,GAAS,EAIb,OAHgB,KAAZqM,EAAM,KACRrM,EAAS,KAEJA,KAGXgM,EAAalM,KAAKd,EAAOkL,OAAO,cAAe4B,EAAQ9L,OAAQkB,IAInE,MADAA,KACOiL,GAGTG,IAAK,SAAUC,GACUlJ,SAAnBwI,GAAgCA,KAAmB,IACrDC,EAAQC,QAAS,GAGnBQ,EAAcC,uBAAyBR,EAAaS,KAAK,IACrDR,EAAmB,IAarBM,EAAcG,YAAa,EAE3BH,GAAeT,EAAQC,OAAS,SAAW,aAAe,cAAgBjD,EAAgB4D,WAAWZ,GACjGA,EAAQC,SACVD,EAAQC,QAAS,EACjBQ,EAAcI,oBAAsB7D,EAAgB4D,WAAWZ,OAOzE,QAAShK,GAAiBiJ,GAgBxB,IAfA,GAYImB,GACA3L,EAbAuL,EAAUhB,IACV8B,EAAqB7B,EAAW8B,UAChC9J,EAAOgI,EAAW+B,MAClBC,EAAQH,GAAsB,QAAS,WAAiC,GAApB7B,EAAW+B,MAAa,QAAU,UACtF5L,EAAQ0L,EAAqB,GAAK,EAClCI,KACAC,EAAoBL,EAAqBvJ,OAAYuI,IACrDsB,EAAY,EACZC,EAAY,EACZC,GAAuB,EACvBC,EAAW,GACXC,GAAe,EAIZvC,EAAWjD,SAChB9I,EAAO2D,KAAKoK,EAAO,SAAUhK,EAAMwK,GAmBjC,OAlBuC,UAAnCxC,EAAWyC,YAAYC,WACrB3B,EAAQZ,OACVmC,GAAYvE,EAAgBoC,MAAOhK,MAAOgM,KAEvB,OAAjBpB,EAAQX,OACVkC,GAAYvE,EAAgBqC,MAAOjK,MAAOiM,KAE5CrB,EAAQZ,KAAO,EACfY,EAAQX,KAAO,MAGjBe,EAAiBnB,EAAWyC,YAAYtM,EAAO6B,EAAMgI,EAAYiC,EAAiBK,GAClFA,EAAW,GAEQ,IAAfE,GACFzB,EAAQxL,KAAKR,KAAKoM,EAAe5L,UAG3B4L,EAAe7L,MACrB,IAAK,OAIH,YAHKyL,EAAQZ,OACXY,EAAQZ,KAAO,OAAShK,GAG5B,KAAK,OAIH,YAHqB,OAAjB4K,EAAQX,OACVW,EAAQX,KAAO,OAASjK,GAG5B,KAAK,UAEH,YADA4K,EAAQ4B,SAAW5B,EAAQ4B,SAG/BJ,GAAe,GAEXV,IAAuBK,EAAkBnM,SAASoL,MACjC,IAAfqB,GACErB,EAAewB,UACjB5B,EAAQ4B,SAAW5B,EAAQ4B,SAI1Bd,IACH7J,EAAO,SAGyBM,SAA9B6I,EAAeE,WACjBN,EAAQd,YAAc9J,GAAS,EACrBA,IACVkM,GAAuB,GAGrBlB,EAAeyB,YACjB7B,EAAQ/I,EAAO,eAAejD,KAAKoM,EAAeyB,YAEhDzB,EAAeH,QACjBD,EAAQ/I,EAAO,WAAWjD,KAAKoM,EAAeH,QAE5CG,EAAe0B,WACjB9B,EAAQ/I,EAAO,cAAcjD,KAAKoM,EAAe0B,cAK5B,QAAvB1B,EAAe7L,MAAyC,QAAvB6L,EAAe7L,MAAyC,WAAvB6L,EAAe7L,KACnF2M,EAAgBlN,KAAKiL,GACc,GAA1BiC,EAAgBvN,SACzBqM,EAAQd,aAAe,EACI,QAAvBkB,EAAe7L,KACjB6M,EAAYA,GAAahM,EAEzBiM,EAAYA,GAAajM,GAG7BA,GAASA,EAAQ,EACjB6J,EAAaA,EAAWjD,OAK1B,IAFAgE,EAAQ/F,SAAW8H,EAAqBlN,UAAUgD,cAAcoH,GAE5D6B,EAAoB,CACtB,OAAQ7J,GACN,IAAK,QACH+I,EAAQb,cAAe,CACvB,MACF,KAAK,SACHa,EAAQb,cAAe,EAI3B,MAAsB,gBAAX5M,SAAiD,gBAAnBA,QAAOC,SAC9CiC,EAAO,GAAI6I,WAAU,SAAU,cAAcjC,OAAO2E,EAAQxL,KAAK,IAAKyK,EAAW+C,gBAAgBhC,IAC1F,WACL,MAAOvL,GAAKK,MAAMpC,MAAOQ,GAAQmI,OAAOnI,EAAOqF,QAAQzC,eAGpD,GAAIwH,WAAU,cAAcjC,OAAO2E,EAAQxL,KAAK,IAAKyK,EAAW+C,gBAAgBhC,IAWvF,MATAmB,GAAkBX,IAAIR,GAElBwB,IACFxB,EAA0B,iBAAEhM,KAAKgM,EAAQ9L,OAAS8L,EAAQd,YAAc,UACxEc,EAAsB,aAAEhM,KAAKgM,EAAQ9L,OAAS8L,EAAQd,YAAc,SAAWc,EAAQ7K,MAAQ,OAE7FmM,IACFtB,EAAQd,YAAc,GAEF,gBAAX3M,SAAiD,gBAAnBA,QAAOC,SAC9CiC,EAAO,GAAI6I,WAAU,SAAU0C,EAAQf,YAAaA,EAAW+C,gBAAgBhC,IACxE,SAAU3K,GACf,MAAOZ,GAAKvB,EAAQmC,KAGjB,GAAIiI,UAAS0C,EAAQf,WAAYA,EAAW+C,gBAAgBhC,IAMrE,QAASiC,GAAKC,GACV,GAAIC,IACAH,gBAAiBhF,EAAgBkF,EAAWP,WAAa3E,EAAgBoF,kBAEzEnD,GACAjD,QAASmG,EACTT,YAAaQ,EACbnB,WAAW,EACXC,MAAOkB,EAAWrG,OAAO5E,KAE7B,OAAOgI,GAIX,QAAStD,GAAOpH,GACZ,GAAI2N,GAAaG,EAAY9N,EAC7B,IAAIrB,EAAOa,WAAWmO,GAAa,CAC/B,GAAIjD,GAAagD,EAAKC,EACtB,IAAKhP,EAAOqB,GAGR,MAAOyB,GAAiBiJ,EAFxB/L,GAAOqB,GAAQyB,EAAiBiJ,IAjzE9C,GAAIqD,GAAWpP,EAAOqI,EACtBrI,GAAOqI,GAAK,SAAUnG,GACpB,OACEA,MAAOA,EACPoG,yBAA0B,kBAI9BtI,EAAOuI,MAAQ,WACb,MAAOvI,GAAOuI,OAGhBvI,EAAOwI,KAAO,WACZ,MAAOxI,GAAOwI,KAGhB,IAAImC,IACFG,WAAY,SAAUuE,GACpB,MAAOA,IAAYrP,EAAOuI,OAAS8G,GAAYrP,EAAOwI,MAAS6G,GAAiD,iBAArCA,EAAS/G,0BAGtFsC,eAAgB,SAAU3I,EAAOxB,GAC/B,MAAIwB,IAASjC,EAAOuI,MACX,EACoC,iBAAlCtG,EAAMqG,yBACRrG,EAAMC,MAERzB,IAILuJ,IAsBNtB,GAAe/G,WACb2N,0BAA2B,wBAC3BC,YAAa7G,EAMb3E,KAAM,WACJ,MAAO,QAQTW,GAAI,SAAUqJ,GAEZ,MADAvO,MAAKgQ,WAAWxP,EAAO0E,GAAGlF,KAAKoJ,OAAQmF,IAChCvO,MAOTyC,MAAO,WACL,MAAOzC,MAAKoJ,QAOd6G,IAAK,WACH,GAAI1D,GAAa,GAAIvM,MAAK+P,YAAY/P,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAW5C,SAAW3J,KAAK2J,QACpB4C,GAMT2D,GAAI,WACF,GAAI3D,GAAa,GAAIvM,MAAK+P,YAAY/P,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAW7C,WAAa,KACjB6C,GAGT4D,IAAK,WACH,GAAI5D,GAAa,GAAIvM,MAAK+P,YAAY/P,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAW7C,WAAa,MACjB6C,GAGT/K,OAAQ,WACN,MAAOxB,MAAKoQ,MAAQpQ,KAAKwJ,QAAUxJ,KAAKwJ,SAG1CrF,KAAM,aAQNjE,OAAQ,SAAUuC,EAAOlC,GACvB,GAAIgM,GAAa,GAAIvM,MAAK+P,YAAY/P,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAWyD,WAAWxP,EAAON,OAAOF,KAAKoJ,OAAQ3G,EAAOlC,IACjDgM,GAGTnH,SAAU,WACR,MAAOpF,MAAKqQ,kBAAkB7P,EAAO4E,SAASpF,KAAKoJ,UAGrDzI,SAAU,WACR,MAAO,IAAI8K,GAAiBjL,EAAOG,SAASX,KAAKoJ,UAGnDvD,QAAS,WACP,MAAO,IAAIyK,GAAoB9P,EAAOqF,QAAQ7F,KAAKyC,WAGrDoB,MAAO,SAAUyC,GACf,MAAO9F,GAAOA,EAAOqD,MAAM7D,KAAKoJ,OAAQ9C,KAG1C0J,WAAY,SAAUxO,GAIpB,OAHIxB,KAAK2J,UACPnI,GAAUA,GAEJxB,KAAKyJ,gBACX,IAAK,MACHzJ,KAAKwJ,QAAUxJ,KAAKuJ,gBAAkB/H,CACtC,MACF,KAAK,KACHxB,KAAKwJ,QAAUxJ,KAAKuJ,gBAAkB/H,CACtC,MACF,SACExB,KAAKwJ,QAAUhI,EAGnBxB,KAAK2J,SAAU,EACf3J,KAAKyJ,eAAiB5E,QAGxBwL,kBAAmB,SAAU7O,GAC3B,GAAI+K,GAAa,GAAIvM,MAAK+P,YAAY/P,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAWyD,WAAWxO,GACf+K,IAIX/L,EAAOgD,OAAOhD,GACZ+P,QAAS,SAAU9N,GACjB,GAAa,MAATA,EACF,OAAO,CAET,IAAIjC,EAAO0D,QAAQzB,IAAUjC,EAAO0B,SAASO,IAAUjC,EAAOiE,YAAYhC,GACxE,OAAQA,EAAMxB,MAEhB,KAAK,GAAIQ,KAAOgB,GACd,MAAIjC,GAAOkB,IAAIe,EAAOhB,IACb,GAEF,CAET,QAAO,IAGT,IAAIwN,GAAW,SAAUxM,GACzB,MAAOA,IAGHM,EAASH,OAAOT,UAAUa,eAG5BwN,EAAYC,KAAKC,IACjBC,EAAOF,KAAKE,IAEhBnQ,GAAOgD,OAAOhD,GACZoQ,MAAO,SAAUC,EAAO/C,EAAKgD,GAC3BC,MAAQF,GAAS,EACjBC,EAAsB,gBAARA,GAAmBA,GAASA,GAAQ,EAEvC,MAAPhD,IACFA,EAAM+C,EACNA,EAAQ,EAMV,KAJA,GAAInO,GAAQ,GACRzB,EAASuP,EAAU,EAAGG,GAAM7C,EAAM+C,IAAUC,GAAQ,KACpDtP,EAASsB,MAAM7B,KAEVyB,EAAQzB,GACfO,EAAOkB,GAASmO,EAChBA,GAASC,CAEX,OAAOtP,IAGTwP,QAAS,SAAUrO,EAAYmH,EAAUvH,GACvC,MAAOqH,GAAM,SAAUpI,EAAQC,EAAKgB,GAC7BM,EAAOnC,KAAKY,EAAQC,KACvBD,EAAOC,OAETD,EAAOC,GAAKH,KAAKmB,IAChBE,EAAYmH,EAAUvH,IAG3B0O,QAAS,SAAUtO,EAAYmH,EAAUvH,GACvC,MAAOqH,GAAM,SAAUpI,EAAQC,GACxBsB,EAAOnC,KAAKY,EAAQC,KACvBD,EAAOC,GAAO,GAEhBD,EAAOC,MACNkB,EAAYmH,EAAUvH,IAG3B2O,OAAQ,SAAUvO,EAAYL,EAAUC,GACtC,GACI4O,GACAC,EACA5P,EACArB,EACAC,EALAa,EAASqB,EAAWA,EAASrB,OAAS,CAW1C,OAJIT,GAAOyD,cAAc3B,KACvBA,GAAYA,GACZrB,EAAS,GAEPT,EAAO0D,QAAQ5B,GACbrB,EAAS,EACJ0B,EAAW0O,KAAK,SAAUC,EAAMC,GACrC,IAAKxN,EAAI,EAAGA,EAAI9C,EAAQ8C,IAGtB,GAFAqN,EAAiB9O,EAASyB,GAC1BoN,EAAMC,EAAeD,IAAMC,EAAeD,IAAIK,cAAgB,MACnD,QAAPL,IAGJhR,EAAImR,EAAKF,EAAeK,OACxBrR,EAAImR,EAAMH,EAAeK,OACrBtR,IAAMC,GAER,MADAoB,GAASrB,EAAIC,EAAI,EAAI,GACP,QAAP+Q,GAAiB3P,EAASA,IAKlCmB,GAGTL,EAAWyH,EAAc1H,cAAcC,EAAUC,GAC5CD,IACHA,EAAW2M,GAENzO,EAAOmC,GAAY+O,IAAI,SAAUjP,EAAOC,EAAOiP,GACpD,OACElP,MAAOA,EACPC,MAAOA,EACPkP,SAAUtP,EAASG,EAAOC,EAAOiP,MAElCN,KAAK,SAAUC,EAAMC,GAGtB,GAFApR,EAAImR,EAAKM,SACTxR,EAAImR,EAAMK,SACNzR,IAAMC,EAAG,CACX,GAAID,EAAIC,GAAWyE,SAAN1E,EAAiB,MAAO,EACrC,IAAQC,EAAJD,GAAe0E,SAANzE,EAAiB,MAAO,GAEvC,MAAOkR,GAAK5O,MAAQ6O,EAAM7O,QACzBgP,IAAI,SAASjP,WAuBlB,IAAIiI,MAEA7H,EAAQC,MAAMX,UAAUU,MAG1BgP,GACFnF,KAAM,WACJ,OACE7K,KAAM,OACNC,MAAO,UAIX6K,KAAM,WACJ,OACE9K,KAAM,OACNC,MAAO,UAIXqO,IAAK,WACH,OACEtO,KAAM,MACNC,UAIJoO,GAAI,WACF,OACErO,KAAM,KACNC,UAIJmO,IAAK,WACH,OACEpO,KAAM,MACNC,UAIJoN,QAAS,WACP,OACErN,KAAM,UACNC,UAKN,KAAK,GAAIL,KAAOoQ,GACdA,EAAkBpQ,GAAKwN,SAAWxN,CAGpC,IAAIyB,GAAO1C,EAAO0C,KAEd6G,GACF1H,cAAe,SAAUC,EAAUC,GACjC,GAAuB,gBAAZD,GAAsB,CAC/B,GAAIwP,GAAYxP,CAChB,OAAO,UAAUG,GACf,MAAOA,GAAMqP,IAGjB,GAAe,MAAXvP,EAAiB,CACnB,GAAIC,GAAcF,CAClBA,GAAW,SAAUG,EAAOC,EAAOC,GACjC,MAAOH,GAAY5B,KAAK2B,EAASE,EAAOC,EAAOC,IAGnD,MAAOL,IAGTyP,cAAe,SAAUzP,EAAUC,GACjC,MAAK/B,GAAOa,WAAWiB,GAGhByH,EAAc1H,cAAcC,EAAUC,GAFpCD,GAKX0P,WAAY,SAAU1P,EAAUC,GAQ9B,MAAOwH,GAAc1H,cAAcC,EAAUC,IAG/C0P,cAAe,SAAU3P,EAAUC,GACjC,MAAI/B,GAAOa,WAAWiB,IAAa9B,EAAO0B,SAASI,GAC1CyH,EAAc1H,cAAcC,EAAUC,GAExCwH,EAAcmI,qBAAqB5P,IAG5C6P,cAAe,SAAU7P,EAAU8P,EAAM7P,GACvC,MAAI/B,GAAOa,WAAWiB,IAAa9B,EAAO0B,SAASI,GAC1CyH,EAAc1H,cAAcC,EAAUC,GAExCwH,EAAc1H,cAAcC,EAAUC,IAG/C2P,qBAAsB,SAAUG,GAC9B,MAAO,UAAU5P,GACf,MAAOsH,GAAcuI,8BAA6B,EAAO7P,EAAO4P,KAIpEC,6BAA8B,SAAU9Q,EAAQiB,EAAO8P,GACrD,GAAIA,EAAiBd,OAASc,EAAiBC,SAAU,CACvD,GAAIC,GAAeF,EAAiB9P,KAEpC,QADAA,EAAQA,EAAM8P,EAAiBd,OACvBc,EAAiBC,SAAShB,eAChC,IAAK,KACHhQ,EAASiB,IAAUgQ,CACnB,MACF,KAAK,MACHjR,EAASiB,IAAUgQ,CACnB,MACF,KAAK,KACHjR,EAAiBiR,EAARhQ,CACT,MACF,KAAK,MACHjB,EAAkBiR,GAAThQ,CACT,MACF,KAAK,KACHjB,EAASiB,EAAQgQ,CACjB,MACF,KAAK,MACHjR,EAASiB,GAASgQ,CAClB,MACF,KAAK,aACHjR,EAAShB,EAAOiC,GAAOiQ,WAAWD,EAClC,MACF,KAAK,WACHjR,EAAShB,EAAOiC,GAAOkQ,SAASF,EAChC,MACF,KAAK,WACHjR,EAAyC,KAAhCiB,EAAMmQ,QAAQH,GAG3B,MAAOjR,GACF,GAAI+Q,EAAiBM,OAASN,EAAiBO,QAAS,CAC7D,GAAItR,GAAoC,MAA1B+Q,EAAiBM,MAC7B,OAAO,CAKP,KAHA,GAAIE,IAAgB,EAChB9R,EAASsR,EAAiBO,QAAQ7R,OAClC8C,EAAI,EACG9C,EAAJ8C,IACLgP,EAAgBhJ,EAAcuI,8BAA6B,EAAO7P,EAAO8P,EAAiBO,QAAQ/O,KAC9FgP,GAA2C,MAA1BR,EAAiBM,OAFrB9O,KAMnB,MAAOgP,GAGT,IAAK,GAAItR,KAAO8Q,GACd,GAAI9P,EAAMhB,KAAS8Q,EAAiB9Q,GAClC,OAAO,CAGX,QAAO,GAIX+J,QAAS,SAAUwH,EAASvQ,EAAOjB,GACjC,GAAIhB,EAAO0D,QAAQzB,IAAUjC,EAAOiE,YAAYhC,GAC9C,GAAIuQ,EACFxR,EAAOF,KAAKc,MAAMZ,EAAQiB,OAE1B,KAAK,GAAIsB,GAAI,EAAGA,EAAItB,EAAMxB,OAAQ8C,IAChCgG,EAAcyB,QAAQwH,EAASvQ,EAAMsB,GAAIvC,OAI7CA,GAAOF,KAAKmB,IAIlBsH,GAAckJ,mBAAqBlJ,EAAcoI,aAEjD,KAAK,GAAI1Q,KAAOsI,GACd7G,EAAKzB,GAAOsI,EAActI,EAI9B,IAAIyR,IACJC,SAAU,SAAmBzQ,GAE7B,OACAkL,YAAY,EACZ9L,MAAO,eACPqN,WAAY,SAAWzM,EAAQ,UAC/B6K,OAAQ,0BAA4B7K,EAAQ,WAAaA,EAAQ,oBAC/DyB,KAAM,SAAmBzB,GAE3B,GAAI0Q,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAZ,MAAO,WAAY,WACnBqN,WAAuB,KAAVzM,EAAa,GAAK0Q,EAAmB,GAClD7F,OAAQ,WAAa7K,EAAQ,iCAC7B0Q,cAAeA,IAGflT,OAAQ,SAAmBwC,EAAM6B,GAEjC,GAAI6O,GAAgB,YAAc1Q,EAAQ,aAAeA,EAAQ,sBACjE,QACAkL,YAAY,EACZ9L,MAAO,eAAgB,aACvBqN,YAAuB,KAAVzM,EAAa,GAAK0Q,EAAmB,IAAI,YAAc1Q,EAAQ,wBAA0BA,EAAQ,kBAAoBA,EAAQ,aAAeA,EAAQ,UAAYA,EAAQ,qGAAuGA,EAAQ,YAAcA,EAAQ,wBAA0BA,EAAQ,8BAAgCA,EAAQ,4DAA8DA,EAAQ,qMAAuMA,EAAQ,YAAcA,EAAQ,wBAA0BA,EAAQ,YACjtB6K,QAAiB,SAARhJ,EAAgB,sBAAwB7B,EAAQ,kBAAoBA,EAAQ,qCAAuCA,EAAQ,QAAUA,EAAQ,+BAAiCA,EAAQ,QAAUA,EAAQ,YAAcA,EAAQ,qBAAuBA,EAAQ,SAAS,KAAa,UAAR6B,EAAiB,sBAAwB7B,EAAQ,wEAA0EA,EAAQ,2BAA6BA,EAAQ,qCAAuCA,EAAQ,0CAA4CA,EAAQ,wBAA0BA,EAAQ,qBAAuBA,EAAQ,UAAU,IAC1mB0M,WAAoB,SAAR7K,EAAgB,oBAAsB7B,EAAQ,SAAWA,EAAQ,kBAAoBA,EAAQ,kBAAoBA,EAAQ,wBAA0BA,EAAQ,WAAW,KAAa,UAAR6B,EAAiB,sBAAwB7B,EAAQ,WAAaA,EAAQ,aAAeA,EAAQ,mBAAqBA,EAAQ,gCAAkCA,EAAQ,OAASA,EAAQ,WAAaA,EAAQ,sBAAwBA,EAAQ,SAAWA,EAAQ,MAAM,IAC1b0Q,cAAeA,IACbC,MAAO,SAAmB3Q,GAE5B,GAAI0Q,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAkL,YAAY,EACZ9L,MAAO,WAAY,WACnBqN,WAAY,SAAWzM,EAAQ,UAAoB,KAAVA,EAAa,GAAK0Q,EAAmB,IAC9E7F,OAAQ,eAAiB7K,EAAQ,kBAAoBA,EAAQ,wCAA0CA,EAAQ,0CAA4CA,EAAQ,mBACnK0Q,cAAeA,IACbE,OAAQ,SAAmB5Q,EAAM6B,EAAKgI,EAAWiC,EAAgBK,GAEnE,GAAIuE,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAZ,MAAO,WAAY,WACnBqN,YAAuB,KAAVzM,EAAa,GAAK0Q,EAAmB,KAAe,KAAV1Q,GAA2C,IAA3B8L,EAAgBvN,OAAa,IAAY,SAARsD,EAAgB,SAAW7B,EAAQ,OAAO,KAAa,UAAR6B,EAAiB,SAAW7B,EAAQ,OAAO,IAAI,IACtM6K,OAAQ,gBAAkB7K,EAAQ,8CAAgDmM,EAAW,KAAe,KAAVnM,GAA2C,IAA3B8L,EAAgBvN,OAAa,IAAY,SAARsD,EAAgB,SAAW7B,EAAQ,gBAAgB,KAAa,UAAR6B,EAAiB,SAAW7B,EAAQ,sBAAsB,IAAI,IACzQ0Q,cAAeA,IACbrK,MAAO,SAAmBrG,GAE5B,GAAI0Q,GAAgB,eAAiB1Q,EAAQ,aAAeA,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,MACzI,QACAZ,MAAO,WAAY,WACnBqN,WAAY,eAAiBzM,EAAQ,4BAA8BA,EAAQ,aAAeA,EAAQ,eAAiBA,EAAQ,iBAAmBA,EAAQ,gBAAkBA,EAAQ,WAAaA,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,WAAaA,EAAQ,OAAiB,KAAVA,EAAa,GAAK0Q,EAAmB,IACxU7F,OAAQ,eAAiB7K,EAAQ,iBAAmBA,EAAQ,yCAA2CA,EAAQ,0CAA4CA,EAAQ,wBAA0BA,EAAQ,aAAeA,EAAQ,YAAcA,EAAQ,mBAAqBA,EAAQ,gBAAkBA,EAAQ,kBAAoBA,EAAQ,WAAaA,EAAQ,aAC1V0Q,cAAeA,EACfG,YAAY,IACV7R,IAAK,SAAmBgB,GAE1B,OACAkL,YAAY,EACZ9L,MAAO,OACPqN,WAAY,SAAWzM,EAAQ,UAC/B0M,UAAW,SAAW1M,EAAQ,6BAA+BA,EAAQ,OAGrE8Q,OAAQ,SAAmB9Q,EAAM6B,EAAKgI,EAAWiC,GAEjD,OACA1M,MAAO,SAAU,QACjBqN,WAAY,aAAezM,EAAQ,4BAA8BA,EAAQ,MAAgB,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,IAAY,SAARsD,EAAgB,SAAW7B,EAAQ,OAAO,KAAa,UAAR6B,EAAiB,SAAW7B,EAAQ,OAAO,IAAI,KAAe,KAAVA,EAAa,OAASA,EAAQ,4CAA4C,IAC7S6K,OAAQ,gBAAkB7K,EAAQ,UAAYA,EAAQ,gBAAkBA,EAAQ,sBAAwBA,EAAQ,UAAoB,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,IAAY,SAARsD,EAAgB,SAAW7B,EAAQ,gBAAgB,KAAa,UAAR6B,EAAiB,SAAW7B,EAAQ,sBAAsB,IAAI,MAC/R6N,QAAS,SAAmB7N,GAE9B,OACAkL,YAAY,EACZuB,WAAY,SAAWzM,EAAQ,SAC/B6K,OAAQ,SAAW7K,EAAQ,YACzBuL,KAAM,SAAmBvL,GAE3B,OACAZ,MAAO,aACPqN,WAAY,YAAczM,EAAQ,oBAAsBA,EAAQ,8BAAgCA,EAAQ,UAAYA,EAAQ,OAC5H6K,OAAQ,SAAW7K,EAAQ,oBAAsBA,EAAQ,IACzD0M,UAAW,SAAW1M,EAAQ,UAAYA,EAAQ,sBAAwBA,EAAQ,oBAAsBA,EAAQ,cAGhHgP,IAAK,SAAmBhP,EAAM6B,EAAKgI,EAAWiC,GAE9C,GAAI4E,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAZ,MAAO,WAAY,WACnBqN,YAAuB,KAAVzM,EAAa,GAAK0Q,EAAmB,KAAe,KAAV1Q,EAAa,IAAY,SAAR6B,EAAgB,SAAW7B,EAAQ,6BAA6B,KAAa,UAAR6B,EAAiB,SAAW7B,EAAQ,OAAO,IAAI,KAAe,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,SAAWyB,EAAQ,OAAO,IACxQ6K,OAAQ,iBAAmB7K,EAAQ,kCAA4C,KAAVA,EAAa,IAAY,SAAR6B,EAAgB,SAAW7B,EAAQ,sBAAsB,KAAa,UAAR6B,EAAiB,SAAW7B,EAAQ,gBAAgB,IAAI,KAAe,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,SAAWyB,EAAQ,gBAAgB,IACjS0Q,cAAeA,IACb1C,IAAK,SAAmBhO,GAE1B,GAAI0Q,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAZ,MAAO,WAAY,WACnBqN,WAAY,UAAYzM,EAAQ,oBAAsBA,EAAQ,OAASA,EAAQ,KAAe,KAAVA,EAAa,GAAK0Q,EAAmB,IACzH7F,OAAQ,MAAQ7K,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,6CAA+CA,EAAQ,OAASA,EAAQ,UAAYA,EAAQ,OAASA,EAAQ,UAAYA,EAAQ,IACrM0Q,cAAeA,EACf7O,KAAM,qBACJkP,IAAK,SAAmB/Q,GAE1B,GAAI0Q,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAZ,MAAO,WAAY,WACnBqN,WAAY,UAAYzM,EAAQ,mBAAqBA,EAAQ,OAASA,EAAQ,KAAe,KAAVA,EAAa,GAAK0Q,EAAmB,IACxH7F,OAAQ,MAAQ7K,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,6CAA+CA,EAAQ,OAASA,EAAQ,UAAYA,EAAQ,OAASA,EAAQ,UAAYA,EAAQ,IACrM0Q,cAAeA,EACf7O,KAAM,qBACJmP,OAAQ,SAAmBhR,GAE7B,GAAI0Q,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,QAAUA,EAAQ,WAAaA,EAAQ,IAChI,QACAZ,MAAO,WAAY,OAAQ,WAC3BqN,WAAY,cAAgBzM,EAAQ,QAAUA,EAAQ,gBAAkBA,EAAQ,QAAUA,EAAQ,KAAe,KAAVA,EAAa,GAAK0Q,EAAmB,IAC5I7F,OAAQ,cAAgB7K,EAAQ,WAAaA,EAAQ,YAAcA,EAAQ,UAAYA,EAAQ,8CAAgDA,EAAQ,kCAAoCA,EAAQ,WACnM0Q,cAAeA,EACfG,YAAY,IACVhS,KAAM,SAAmBmB,EAAM6B,GAEjC,OACA4K,YAAuB,KAAVzM,EAAa,IAAY,SAAR6B,EAAgB,4BAA4B,IAAI,IAAI,SAAW7B,EAAQ,MACrG6K,OAAQ,SAAW7K,EAAQ,MAC3B6B,KAAM,qBACJoP,KAAM,SAAmBjR,GAE3B,GAAI0Q,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAkL,YAAY,EACZ9L,MAAO,WAAY,WACnBqN,WAAY,SAAWzM,EAAQ,WAAqB,KAAVA,EAAa,GAAK0Q,EAAmB,IAC/E7F,OAAQ,eAAiB7K,EAAQ,iBAAmBA,EAAQ,wCAA0CA,EAAQ,wCAA0CA,EAAQ,kBAChK0Q,cAAeA,IACb7O,KAAM,aACN,KAAK,GAAI9C,KAAOyR,GAAwBA,EAAsBzR,GAAKwN,SAAWxN,EAAIyR,EAAsBzR,GAAK0H,OAAS+J,CAExH,IAAIU,IAeJ/K,GAAI,SAAmBnG,GAEvB,OACAZ,MAAO,WAAY,SACnBqN,WAAY,cAAgBzM,EAAQ,yBAA2BA,EAAQ,aAAeA,EAAQ,yBAA2BA,EAAQ,iBAAmBA,EAAQ,WAAaA,EAAQ,SACjL6K,OAAQ,cAAgB7K,EAAQ,aAAeA,EAAQ,YAAcA,EAAQ,mBAAqBA,EAAQ,+CA6B1G8I,QAAS,SAAmB9I,GAE5B,OACAZ,MAAO,WACPqN,WAAY,cAAgBzM,EAAQ,8BAAgCA,EAAQ,OAC5E6K,OAAQ,UAAY7K,EAAQ,WAAaA,EAAQ,gBAAkBA,EAAQ,OAqB3EkQ,QAAS,SAAmBlQ,GAE5B,OACAZ,MAAO,cAAe,aACtBqN,WAAY,SAAWzM,EAAQ,oCAAsCA,EAAQ,0BAA4BA,EAAQ,MACjH6K,OAAQ,0BAA4B7K,EAAQ,WAAaA,EAAQ,wBACjE6B,KAAM,qBAuCNyE,KAAM,SAAmBtG,GAEzB,GAAI0Q,GAAgB,eAAiB1Q,EAAQ,aAAeA,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,MACzI,QACAwM,SAAS,EACTpN,MAAO,WAAY,WACnBqN,WAAY,eAAiBzM,EAAQ,4BAA8BA,EAAQ,aAAeA,EAAQ,eAAiBA,EAAQ,iBAAmBA,EAAQ,gBAAkBA,EAAQ,WAAaA,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,WAAaA,EAAQ,OAAiB,KAAVA,EAAa,GAAK0Q,EAAmB,IACxU7F,OAAQ,eAAiB7K,EAAQ,iBAAmBA,EAAQ,yCAA2CA,EAAQ,0CAA4CA,EAAQ,wBAA0BA,EAAQ,aAAeA,EAAQ,YAAcA,EAAQ,mBAAqBA,EAAQ,mBAAqBA,EAAQ,kBAAoBA,EAAQ,WAAaA,EAAQ,aAC7V0Q,cAAeA,EACfG,YAAY,IAqBZM,YAAa,SAAmBnR,GAEhC,OACAwM,SAAS,EACTpN,MAAO,cAAe,aACtBqN,WAAY,SAAWzM,EAAQ,oCAAsCA,EAAQ,0BAA4BA,EAAQ,MACjH6K,OAAQ,0BAA4B7K,EAAQ,WAAaA,EAAQ,wBACjE6B,KAAM,qBA+BNqM,MAAO,SAAmBlO,EAAM6B,EAAKgI,EAAWiC,GAEhD,OACA1M,MAAO,QAAS,MAAO,QACvBqN,WAAY,iCAAmCzM,EAAQ,SAAWA,EAAQ,SAAWA,EAAQ,cAAgBA,EAAQ,kBACrH6K,OAAQ,cAAgB7K,EAAQ,SAAWA,EAAQ,SAAWA,EAAQ,KAAe,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,SAAWyB,EAAQ,sBAAsB,MAGjKoR,YAAa,SAAmBpR,GAEhC,OACAwM,SAAS,EACTpN,MAAO,WAAY,OAAQ,WAC3BqN,WAAY,cAAgBzM,EAAQ,QAAUA,EAAQ,gBAAkBA,EAAQ,QAAUA,EAAQ,KAAe,KAAVA,EAAa,WAAaA,EAAQ,sCAAwCA,EAAQ,QAAUA,EAAQ,WAAaA,EAAQ,KAAK,IACrO6K,OAAQ,cAAgB7K,EAAQ,WAAaA,EAAQ,YAAcA,EAAQ,UAAYA,EAAQ,8CAAgDA,EAAQ,kCAAoCA,EAAQ,WACnM6Q,YAAY,IACVQ,OAAQ,SAAmBrR,EAAM6B,EAAKgI,EAAWiC,GAEnD,GAAI4E,GAAgB,WAAa1Q,EAAQ,sCAAwCA,EAAQ,WAAaA,EAAQ,IAC9G,QACAZ,MAAO,WAAY,WACnBqN,WAAY,WAAazM,EAAQ,kBAAoBA,EAAQ,qBAAuBA,EAAQ,6BAA+BA,EAAQ,cAAgBA,EAAQ,mBAAqBA,EAAQ,8BAAgCA,EAAQ,YAAcA,EAAQ,UAAYA,EAAQ,QAAkB,KAAVA,EAAa,GAAK0Q,EAAmB,IACvT7F,OAAQ,MAAQ7K,EAAQ,eAAiBA,EAAQ,YAAcA,EAAQ,mDAAqDA,EAAQ,WAAaA,EAAQ,SAAWA,EAAQ,QAAUA,EAAQ,mBAAqBA,EAAQ,yBAA2BA,EAAQ,OAASA,EAAQ,aAAeA,EAAQ,cAAgBA,EAAQ,YAAcA,EAAQ,yBAAmC,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,SAAWyB,EAAQ,gBAAgB,IAC7b0Q,cAAeA,IACb7O,KAAM,QACN,KAAK,GAAI9C,KAAOmS,GAAmBA,EAAiBnS,GAAKwN,SAAWxN,EAAImS,EAAiBnS,GAAK0H,OAASyK,CAEzG,IAAII,IACJC,IAAK,SAAmBvR,GAExB,GAAI0Q,IAA2B,KAAV1Q,EAAa,OAASA,EAAQ,4DAA4D,KAAe,KAAVA,EAAa,OAASA,EAAQ,4DAA4D,GAC9M,QACAZ,MAAO,QACPqN,YAAuB,KAAVzM,EAAa,GAAK0Q,EAAmB,IAAI,gBAAkB1Q,EAAQ,QAAUA,EAAQ,iBAAmBA,EAAQ,wBAA0BA,EAAQ,WAAaA,EAAQ,OACpL6K,OAAQ,WAAa7K,EAAQ,6CAA+CA,EAAQ,WAAaA,EAAQ,uBAAyBA,EAAQ,yBAC1I0Q,cAAeA,IACbc,OAAQ,SAAmBxR,EAAM6B,EAAKgI,EAAWiC,GAEnD,OACAW,WAAY,WAAazM,EAAQ,UAAYA,EAAQ,OACrD6K,OAAQ,OAAS7K,EAAQ,0CAA4CA,EAAQ,KAAe,KAAVA,GAA2C,IAA3B8L,EAAgBvN,OAAa,SAAWyB,EAAQ,sBAAsB,MACtKyR,KAAM,SAAmBzR,EAAM6B,EAAKgI,EAAWiC,GAEjD,OACAW,WAAY,SAAWzM,EAAQ,OAC/B6K,OAAQ,qBAA+B,KAAV7K,GAA2C,IAA3B8L,EAAgBvN,OAAa,SAAWyB,EAAQ,gBAAgB,MAC3G0R,MAAO,SAAmB1R,GAE5B,OACAyM,WAAY,SAAWzM,EAAQ,OAC/B6K,OAAQ,SAAW7K,EAAQ,yCACzB2R,OAAQ,SAAmB3R,GAE7B,OACAyM,WAAY,SAAWzM,EAAQ,OAC/B6K,OAAQ,SAAW7K,EAAQ,kBACzB6B,KAAM,SACN,KAAK,GAAI9C,KAAOuS,GAAoBA,EAAkBvS,GAAKwN,SAAWxN,EAAIuS,EAAkBvS,GAAK0H,OAAS6K,CAE5G,IAoTMxE,GACA9B,EArTFpD,GACJgK,gBAAiB,SAAmBhH,GAEpC,GAAIiH,GACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EARAxT,EAAS,EAgFb,OAvEAA,IAAU,OAAS8L,EAAQlJ,WAAa,UAAYkJ,EAAQ3K,WAAa,KAAO2K,EAAQrM,OAAS,KAAOqM,EAAQ7K,MAAQ,MAAS6K,EAAQY,WAAgE,GAAnD,IAAMZ,EAAQ9L,OAAS8L,EAAQd,YAAc,KAAY,IAAMc,EAAQ9L,QAAU8L,EAAQY,WAAa,WAAa,IAAM,KAAOZ,EAAQU,uBAAyB,IACvTgH,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQxL,KAAM,SAAUW,EAAOC,GAC3C8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQxL,KAAKb,OAAS,EACvCO,GAAU,IACVoT,EAAS,GACTpU,EAAO2D,KAAKqQ,EAAU,SAAU/R,EAAOC,GACvC6R,EAAW9R,EACXmS,GAAU,EACVD,EAAOjS,EACPgS,EAAkB,GAAThS,EACT+R,EAAQ/R,GAAS8R,EAASvT,OAAS,EACnCO,GAAU,QAAU+S,EAAWS,EAAS,MAAQ1H,EAAQf,WAAa,KAAOgI,EAAW,OAEvF/S,GAAU,IAAM8L,EAAQf,WAAa,MAAQe,EAAQf,WAAa,eAElE/K,GAAU,IACVhB,EAAO6D,UAAUiJ,EAAQV,UAAW,SAAUnK,EAAOC,GACrD8R,EAAW/R,EACXuS,EAAS1H,EAAQV,UAAU3L,OAC3B+T,GAAU,GACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQV,UAAU3L,OAAS,EAC5CO,GAAU,IACVoT,EAAS,GACTpU,EAAO2D,KAAKqQ,EAAU,SAAU/R,EAAOC,GACvC6R,EAAW9R,EACXmS,GAAU,EACVD,EAAOjS,EACPgS,EAAkB,GAAThS,EACT+R,EAAQ/R,GAAS8R,EAASvT,OAAS,EACnCO,GAAU,QAAUmT,EAAOC,EAAS,MAAQL,EAAW,OAEvD/S,GAAU,MAEVA,GAAU,IAAM8L,EAAQ3K,WAAa,MAAQ2K,EAAQf,WAAa,YAAce,EAAQlJ,WAAa,OAASkJ,EAAQZ,KAAO,MAAQY,EAAQX,KAAO,IAAMW,EAAQrM,OAAS,eAAiBqM,EAAQ3K,WAAa,YAAc2K,EAAQZ,KAAO,MAAQY,EAAQX,KAAO,MAAQ,IAAM,KAAQW,EAAQX,KAAyE,GAAlE,IAAMW,EAAQrM,OAAS,MAAQqM,EAAQ3K,WAAa,aAAoB,KAAO2K,EAAQ4B,QAAU,IAAM5B,EAAQlJ,WAAa,MAAQkJ,EAAQ3K,WAAa,aAAe2K,EAAQZ,KAAO,KAAO,IAAM,IAC9elM,EAAO6D,UAAUiJ,EAAQR,iBAAkB,SAAUrK,EAAOC,GAC5D8R,EAAW/R,EACXuS,EAAS1H,EAAQR,iBAAiB7L,OAClC+T,GAAU,GACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQR,iBAAiB7L,OAAS,EACnDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,KAAO8L,EAAQ/F,SAAW,SAAW+F,EAAQlJ,WAAa,OAASkJ,EAAQ3K,WAAa,OAAS,IAAM,KAAQ2K,EAAQ/F,SAA8Q,GAAnQ,KAAO+F,EAAQ4B,QAAU,aAAe5B,EAAQlJ,WAAa,QAAUkJ,EAAQX,KAAOW,EAAQX,KAAO,KAAQW,EAAQX,KAAa,GAAN,KAAY,OAAS,IAAM,KAAQW,EAAQ4B,QAAgF,GAAtE,aAAe5B,EAAQlJ,WAAa,MAAQkJ,EAAQrM,OAAS,QAAe,KAAY,IAAMqM,EAAQ7K,MAAQ,MAAQ6K,EAAQ3K,WAAa,IAAM2K,EAAQlJ,WAAa,MACne5D,EAAO6D,UAAUiJ,EAAQN,aAAc,SAAUvK,EAAOC,GACxD8R,EAAW/R,EACXuS,EAAS1H,EAAQN,aAAa/L,OAC9B+T,GAAU,GACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQN,aAAa/L,OAAS,EAC/CO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,KAAO8L,EAAQ2H,iBAAmB,IAAM3H,EAAQ2H,iBAAmB,IAAM,IAAM,MACzFzU,EAAO6D,UAAUiJ,EAAQJ,gBAAiB,SAAUzK,EAAOC,GAC3D8R,EAAW/R,EACXuS,EAAS1H,EAAQJ,gBAAgBjM,OACjC+T,GAAU,GACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQJ,gBAAgBjM,OAAS,EAClDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,KAAO8L,EAAQa,oBAAsB,IAAMb,EAAQa,oBAAsB,IAAM,IAAM,KAAQb,EAAQY,WAA0F,GAA7E,IAAMZ,EAAQ9L,OAAS,MAAQ8L,EAAQ9L,OAAS8L,EAAQd,YAAc,MAAa,WAAac,EAAQ9L,OAAS,MAE3O0M,WAAY,SAAmBZ,GAEjC,GAAIkH,GAEAK,EACAC,EACAC,EACAC,EAJAxT,EAAS,EAgBb,OAXAA,IAAU,OACVwT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQjC,MAAO,SAAU5I,EAAOC,GAC5C8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQjC,MAAMpK,OAAS,EACxCO,GAAUgT,IAEVhT,GAAU,OAAS8L,EAAQ9L,OAAS,aAAe8L,EAAQC,OAAS,WAAa,IAAM,OAErFhD,YAAa,SAAmB+C,GAElC,GAAIiH,GACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EARAxT,EAAS,EAsEb,OA7DAA,IAAU,YAAc8L,EAAQzL,KAAO,eACvCmT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQxL,KAAM,SAAUW,EAAOC,GAC3C8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQxL,KAAKb,OAAS,EACvCO,GAAU,IAAMgT,EAAW,OAE3BhT,GAAU,qEAAuE8L,EAAQnD,eAAiB,KAC1G6K,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQxL,KAAM,SAAUW,EAAOC,GAC3C8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQxL,KAAKb,OAAS,EACvCO,GAAU,UAAYgT,EAAW,MAAQA,EAAW,OAEpDhT,GAAU,OAAS8L,EAAQlD,OAAS,aAAekD,EAAQzL,KAAO,sGAAwG,IAAM,mCAAqCyL,EAAQzL,KAAO,wBAA0ByL,EAAQ/I,KAAO,aAAe+I,EAAQzL,KAAO,MAC3SmT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQ7C,QAAS,SAAUhI,EAAOC,GAC9C8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQ7C,QAAQxJ,OAAS,EAC1CO,GAAU,IAAMgT,EAAS3S,KAAO,gBAChC+S,EAAS,GACTpU,EAAO2D,KAAKqQ,EAAS1S,KAAM,SAAUW,EAAOC,GAC5C6R,EAAW9R,EACXmS,GAAU,EACVD,EAAOjS,EACPgS,EAAkB,GAAThS,EACT+R,EAAQ/R,GAAS8R,EAAS1S,KAAKb,OAAS,EACxCO,GAAU,IAAM+S,EAAW,OAE3B/S,GAAU,iCAAmC8L,EAAQxF,KAAO0M,EAAS3S,KAAO,sCAAwCyL,EAAQxF,KAAO0M,EAAS3S,KAAO,0BAA4ByL,EAAQzL,KAAO2S,EAAS3S,KAAO,OAASyL,EAAQxF,KAAO0M,EAAS3S,KAAO,OAAS2S,EAAS3S,KAAO,MAAQyL,EAAQ/I,KAAO,SAAWiQ,EAASpB,cAAgB,0BAC1UwB,EAAS,GACTpU,EAAO2D,KAAKqQ,EAAS1S,KAAM,SAAUW,EAAOC,GAC5C6R,EAAW9R,EACXmS,GAAU,EACVD,EAAOjS,EACPgS,EAAkB,GAAThS,EACT+R,EAAQ/R,GAAS8R,EAAS1S,KAAKb,OAAS,EACxCO,GAAU,IAAM+S,EAAW,OAE3B/S,GAAU,YAAcgT,EAASjQ,KAAO,qFAAuFiQ,EAASjQ,KAAO,4CAA8CiQ,EAASjQ,KAAO,yBAA2B,IAAM,KAAOiQ,EAASjB,WAAa,qHAAuH,IAAM,4BAExY/R,GAAU,IACVwT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQ5C,cAAe,SAAUjI,EAAOC,GACpD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQ5C,cAAczJ,OAAS,EAChDO,GAAU,IAAMuT,EAAO,MAAQP,EAAW,OAE1ChT,GAAU,kDAAoD8L,EAAQxF,KAAO,6CAA+CwF,EAAQxF,KAAO,iCAAmCwF,EAAQxF,KAAO,cAAgBwF,EAAQxF,KAAO,wBAA0BwF,EAAQ/I,KAAO,4HAA8H+I,EAAQxF,KAAO,0CAA4CwF,EAAQxF,KAAO,8BAAgCwF,EAAQxF,KAAO,WAAawF,EAAQxF,KAAO,kBAAoBwF,EAAQ/I,KAAO,4nBAA8nB+I,EAAQxF,KAAO,cAAgBwF,EAAQxF,KAAO,qGAAuGwF,EAAQxF,KAAO,cAAgBwF,EAAQxF,KAAO,2lBAA6lBwF,EAAQzL,KAAO;EAEt+D6N,iBAAkB,SAAmBpC,GAEvC,GAAIkH,GAEAK,EACAC,EACAC,EACAC,EAJAxT,EAAS,EA4Eb,OAvEAA,IAAU,OAAS8L,EAAQrM,OAAS,MAAQqM,EAAQ3K,WAAa,YAAc2K,EAAQlJ,WAAa,OAAUkJ,EAAQ4B,QAAiB,GAAP,OAAc5B,EAAQ4B,QAAU5B,EAAQrM,OAAS,IAAM,KAAOqM,EAAQhJ,oBAAsB,MAAQgJ,EAAQb,aAAe,KAAOa,EAAQ9L,OAAS,KAAO8L,EAAQ7K,MAAQ,KAC1SuS,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQV,UAAW,SAAUnK,EAAOC,GAChD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQV,UAAU3L,OAAS,EAC5CO,GAAU,MAEVA,GAAU,QAAU8L,EAAQhJ,oBAAsB,OAClD0Q,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQR,iBAAkB,SAAUrK,EAAOC,GACvD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQR,iBAAiB7L,OAAS,EACnDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,KAAO8L,EAAQ4B,QAAU,aAAe5B,EAAQlJ,WAAa,YAAc,IAAM,KAAQkJ,EAAQ4B,QAAgF,GAAtE,aAAe5B,EAAQlJ,WAAa,MAAQkJ,EAAQrM,OAAS,QAAe,IAAMqM,EAAQ7K,MAAQ,MAAQ6K,EAAQ3K,WAAa,IAAM2K,EAAQlJ,WAAa,MAC/Q4Q,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQN,aAAc,SAAUvK,EAAOC,GACnD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQN,aAAa/L,OAAS,EAC/CO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,MACVwT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQJ,gBAAiB,SAAUzK,EAAOC,GACtD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQJ,gBAAgBjM,OAAS,EAClDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,aACVwT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQT,kBAAmB,SAAUpK,EAAOC,GACxD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQT,kBAAkB5L,OAAS,EACpDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,SAAW8L,EAAQlJ,WAAa,qBAAuBkJ,EAAQ7K,MAAQ,MAAQ6K,EAAQ3K,WAAa,IAAM2K,EAAQlJ,WAAa,MACzI4Q,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQP,cAAe,SAAUtK,EAAOC,GACpD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQP,cAAc9L,OAAS,EAChDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,MACVwT,EAAS,GACTxU,EAAO2D,KAAKmJ,EAAQL,iBAAkB,SAAUxK,EAAOC,GACvD8R,EAAW/R,EACXuS,GAAU,EACVD,EAAOrS,EACPoS,EAAkB,GAATpS,EACTmS,EAAQnS,GAAS4K,EAAQL,iBAAiBhM,OAAS,EACnDO,GAAU,IAAMgT,EAAW,MAE3BhT,GAAU,aAAe8L,EAAQ9L,OAAS,MAExCkL,KAAM,SAAmBY,GAE3B,GAAI9L,GAAS,EAEb,OADAA,IAAU,WAAa8L,EAAQ5K,MAAQ,yBAErCiK,KAAM,SAAmBW,GAE3B,GAAI9L,GAAS,EAEb,OADAA,IAAU,WAAa8L,EAAQ5K,MAAQ,uBAErC6B,KAAM,QAGFuG,KACAD,KAEAE,EAAevK,EAAOgD,UAAW0P,EAAuBU,EAAkBI,EAAmBnC,EAiCjG,KAAK,GAAIpQ,KAAOsJ,GACdyE,EAAazE,EAAatJ,GACtBjB,EAAOa,WAAWmO,KACpB9B,EAAiB8B,EAAW,IAAK,GAAI,OACrChF,EAAY/I,IACVI,KAAMJ,EACNK,KAAM4L,EAAe5L,KACrBsR,cAAe1F,EAAe0F,eAAiB,GAC/C7O,KAAMmJ,EAAenJ,KACrBgP,WAAY7F,EAAe6F,YAKjC/S,GAAOgD,OAAOkH,GACZwK,SAAU,SAAUb,GAClB,MAAO,IAAI9J,aAAY8E,qBAAqB8F,KAAKD,SAASlV,KAAKyC,QAAS4R,KAG1EnD,OAAQ,SAAU5O,EAAUC,GAC1B,MAAO,IAAIgI,aAAY+F,oBAAoB6E,KAAKjE,OAAOlR,KAAKyC,QAASH,EAAUC,KAGjFyO,QAAS,SAAU1O,EAAUC,GAC3B,MAAO,IAAIgI,aAAY8E,qBAAqB8F,KAAKnE,QAAQhR,KAAKyC,QAASH,EAAUC,KAGnF0O,QAAS,SAAU3O,EAAUC,GAC3B,MAAO,IAAIgI,aAAY8E,qBAAqB8F,KAAKlE,QAAQjR,KAAKyC,QAASH,EAAUC,KAGnF6S,QAAS,WACP,MAAO,IAAI7K,aAAY+F,oBAAoB6E,KAAKC,QAAQpV,KAAKyC,WAG/D4S,IAAK,SAAUC,EAAa7S,GAC1B,MAAO,IAAI8H,aAAY8E,qBAAqB8F,KAAKE,IAAIzU,KAAKiE,OAAW7E,KAAKyC,MAAO6S,EAAa7S,KAGhGoG,GAAI,SAAUnG,EAAO6S,GACnB,MAAO,IAAIhL,aAAY+F,oBAAoB6E,KAAKtM,GAAG7I,KAAKoJ,OAAQ1G,EAAO6S,KAIzE5M,OAAQ,WACN,GAAIlG,GAAQzC,KAAKyC,OACjB,OAAO,IAAI8H,aAAY+F,oBAAoB7N,EAAMkG,OAAOvG,MAAMK,EAAOW,aAIvE9B,KAAM,WACJ,GAAImB,GAAQzC,KAAKyC,OAEjB,OADAA,GAAMnB,KAAKc,MAAMK,EAAOW,WACjB,GAAImH,aAAY+F,oBAAoB7N,IAG7Cd,IAAK,WACH,GAAIc,GAAQzC,KAAKyC,OAEjB,OADAA,GAAMd,MACC,GAAI4I,aAAY+F,oBAAoB7N,IAG7C+S,MAAO,WACL,GAAI/S,GAAQzC,KAAKyC,OAEjB,OADAA,GAAM+S,QACC,GAAIjL,aAAY+F,oBAAoB7N,IAG7CI,MAAO,SAAU4S,EAAO3H,GACtB,MAAO,IAAIvD,aAAY+F,oBAAoBtQ,KAAKyC,QAAQI,MAAM4S,EAAO3H,KAGvEuD,KAAM,SAAUqE,GACd,MAAO,IAAInL,aAAY+F,oBAAoBtQ,KAAKyC,QAAQ4O,KAAKqE,KAG/DlN,OAAQ,SAAU9F,EAAOiT,GACvB,GAAIlT,GAAQzC,KAAKyC,OAMjB,OALIW,WAAUnC,OAAS,EACrBwB,EAAM+F,OAAOpG,MAAMK,GAAQC,EAAOiT,GAAShN,OAAO9F,EAAMjC,KAAKwC,UAAW,KAExEX,EAAM+F,OAAO9F,EAAOiT,GAEf,GAAIpL,aAAY+F,oBAAoB7N,IAG7CmT,QAAS,WACP,GAAInT,GAAQzC,KAAKyC,OAEjB,OADAA,GAAMmT,QAAQxT,MAAMK,EAAOW,WACpB,GAAImH,aAAY+F,oBAAoB7N,MA8B/CjC,EAAOgD,OAAOkH,GACZM,IAAK,WAEH,MADAA,GAAIhL,KAAKyC,QAASW,WACXpD,MAGT6V,OAAQ,SAAUhG,EAAUvN,GAE1B,MADA9B,GAAOqV,OAAO7V,KAAKyC,QAASoN,EAAUvN,GAC/BtC,MAGT8V,SAAU,SAAUjG,EAAU0F,GAE5B,MADA/U,GAAOsV,SAAS9V,KAAKyC,QAASoN,EAAU0F,GACjCvV,MAGT+V,UAAW,SAAUzT,EAAUC,GAM7B,MALyB,KAArBa,UAAUnC,OACZT,EAAOuV,UAAU/V,KAAKyC,SAEtBjC,EAAOuV,UAAU/V,KAAKyC,QAASH,EAAUC,GAEpCvC,MAGTuL,QAAS,WAEP,MADAA,GAAQvL,KAAKyC,QAASW,WACfpD,MAGTiI,KAAM,SAAU+M,EAAQJ,GAEtB,MADApU,GAAOyH,KAAKjI,KAAKyC,QAASuS,EAAQJ,GAC3B5U,MAGTqI,KAAM,SAAUC,EAAaC,GAE3B,MADA/H,GAAO6H,KAAKrI,KAAKyC,QAAS6F,EAAaC,GAChCvI,OAQX,IAAIsQ,GAAsBpG,EAAmB,YAAa,MAAO,GAAI,GAAG,EAExE1J,GAAOgD,OAAO8M,EAAoBnO,WAChC+M,QAAS,WACP,MAAO,IAAIoB,GAAoBtQ,KAAKoJ,OAAO8F,cAI/C1O,EAAOgD,OAAOhD,GACZwK,IAAK,SAAU9C,GACb,MAAO8C,GAAI9C,EAAOrF,EAAMjC,KAAKwC,UAAW,KAG1CmI,QAAS,SAAUrD,GACjB,MAAOqD,GAAQrD,EAAOrF,EAAMjC,KAAKwC,UAAW,KAG9CyS,OAAQ,SAAU3N,EAAO2H,EAAUvN,GACjC,MAAI6I,GAAUG,WAAWuE,GAChBrP,EAAOsV,SAAS5N,EAAOiD,EAAUC,eAAeyE,EAAU7P,KAAKoJ,OAAOnI,QAASqB,GAE/E9B,EAAOuV,UAAU7N,EAAO2H,EAAUvN,GAAU,IAIvDwT,SAAU,SAAU5N,EAAOxF,EAAO6S,GAKhC,MAJK/U,GAAO6E,SAASkQ,KACnBA,EAAQ,GAEVrN,EAAMM,OAAO9F,EAAO6S,GACbrN,GAGT6N,UAAW,SAAU7N,EAAO5F,EAAUC,EAASyT,GAC7C,GAEIvT,GAFAsB,EAAI,EACJkS,EAAsBzV,EAAOa,WAAWiB,EAG5C,IAAwB,GAApBc,UAAUnC,OACZiH,EAAMM,OAAO,EAAGN,EAAMjH,YAEtB,MAAO8C,EAAImE,EAAMjH,SACfwB,EAAQyF,EAAMnE,KACVtB,IAAUH,GAAa2T,GAAuB3T,EAAS1B,KAAK2B,EAASE,EAAOsB,EAAGmE,MACjFA,EAAMM,OAAOzE,IAAK,IACdiS,IAJiBjS,KAW3B,MAAOmE,IAGTgN,SAAU,SAAUhN,EAAOmM,GAOzB,IANA,GAII5R,GAJAjB,KACA0U,EAAiB9S,UAAUnC,OAAS,GAAKoT,EACzCtQ,EAAI,EACJ9C,EAASiH,EAAMjH,OAGRA,EAAJ8C,EAAYA,IACjBtB,EAAQyF,EAAMnE,GACVvD,EAAO0D,QAAQzB,GACjBjB,EAAOiB,EAAM,IAAMA,EAAM,GAChBjC,EAAO+G,SAAS9E,GACzBjB,EAAOiB,EAAMhB,KAAOgB,EAAMA,MAE1BjB,EAAOiB,GAASyT,EAAiB7B,EAAOtQ,IAAK,CAGjD,OAAOvC,IAGT4T,QAAS,SAAUlN,GAMjB,IALA,GAGIiO,GAHAC,KACArS,EAAI,EACJ9C,EAASiH,EAAMjH,OAGRA,EAAJ8C,EAAYA,IACjBoS,EAAO3V,EAAO6V,OAAOtS,GACrBqS,EAASrS,GAAKqS,EAASD,GACvBC,EAASD,GAAQjO,EAAMnE,EAEzB,OAAOqS,KA2BX,IAAI/G,GAAuBnF,EAAmB,aAAc,MAAO,GAAI,GAAG,EAE1E1J,GAAO6U,IAAM,SAAUiB,EAAQhB,EAAa7S,GAC1C,GAAIhB,EACJ,IAAIjB,EAAO0B,SAASoT,GAClBgB,EAAOhB,GAAe7S,MAEtB,KAAKhB,IAAO6T,GACVgB,EAAO7U,GAAO6T,CAGlB,OAAOgB,GAGP,IAAIC,GAAa,cAGfC,EAAuB,gBACvBC,EAAqB,eAMzBhL,GAAiBtJ,UAAUhB,YAAc+H,EAEzC1I,EAAOmE,QAAQuE,EAAgBuC,GAC7BsE,YAAatE,EAEblH,KAAM,WACJ,MAAO,UAGTmS,UAAW,SAAUvO,EAAQC,GAC3B,MAAO,IAAIqD,GAAiBzL,KAAKoJ,OAAOsN,UAAUvO,EAAQC,KAG5DmI,QAAS,WACP,MAAOvQ,MAAKqQ,kBAAwC,GAAtBrQ,KAAKoJ,OAAOnI,SAG5CM,KAAM,WACJ,MAAO,IAAI0J,GAAiBzK,EAAOe,KAAKvB,KAAKoJ,UAG/C+J,SAAU,SAAU1Q,GAClB,MAAOzC,MAAKqQ,kBAAgD,IAA9BrQ,KAAKoJ,OAAOwJ,QAAQnQ,KAGpDiQ,WAAY,SAAUjQ,GACpB,MAAOzC,MAAKqQ,kBAAkB7P,EAAOkS,WAAW1S,KAAKoJ,OAAQ3G,KAG/DkQ,SAAU,SAAUlQ,GAClB,MAAOzC,MAAKqQ,kBAAkB7P,EAAOmS,SAAS3S,KAAKoJ,OAAQ3G,KAG7DkU,KAAM,SAAUC,GACd,MAAO,IAAInL,GAAiBjL,EAAOmW,KAAK3W,KAAKoJ,OAAQwN,KAGvDC,UAAW,SAAUD,GACnB,MAAO,IAAInL,GAAiBjL,EAAOqW,UAAU7W,KAAKoJ,OAAQwN,KAG5DE,QAAS,SAAUF,GACjB,MAAO,IAAInL,GAAiBjL,EAAOsW,QAAQ9W,KAAKoJ,OAAQwN,KAG1DG,OAAQ,SAAUxB,GAChB,MAAO,IAAI9J,GAAiBjL,EAAOuW,OAAO/W,KAAKoJ,OAAQmM,KAGzDrG,QAAS,WACP,MAAO,IAAIzD,GAAiBjL,EAAO0O,QAAQlP,KAAKoJ,UAGlD4N,KAAM,SAAUC,GACd,MAAO,IAAIxL,GAAiBjL,EAAOwW,KAAKhX,KAAKoJ,OAAQ6N,KAGvDvL,OAAQ,WACN,MAAO,IAAID,GAAiBC,EAAO1L,KAAKoJ,OAAQvG,EAAMjC,KAAKwC,UAAW,MAGxE8T,QAAS,SAAUC,EAAQ5B,GACzB,MAAO,IAAI9J,GAAiBjL,EAAO0W,QAAQlX,KAAKoJ,OAAQ+N,EAAQ5B,KAGlExP,OAAQ,SAAUC,GAChB,MAAO,IAAIyF,GAAiBjL,EAAOuF,OAAO/F,KAAKoJ,OAAQpD,KAGzDnC,MAAO,WACL,MAAO,IAAI4H,GAAiBzL,KAAKoJ,OAAOzI,eAI5CH,EAAOgD,OAAOhD,GACZkS,WAAY,SAAUjQ,EAAOiQ,GAK3B,MAJKlS,GAAO0B,SAASO,KACnBA,EAAQA,EAAM9B,YAEhB+R,EAAaA,EAAW/R,WACY,GAA7B8B,EAAMmQ,QAAQF,IAGvBC,SAAU,SAAUlQ,EAAOkQ,GAKzB,MAJKnS,GAAO0B,SAASO,KACnBA,EAAQA,EAAM9B,YAEhBgS,EAAWA,EAAShS,WACb8B,EAAMoR,YAAYlB,IAAalQ,EAAMxB,OAAS0R,EAAS1R,QAGhE0V,KAAM,SAAUhL,EAAQiL,GACtB,OAAQjL,GAAU,IAAIhL,WAAW0F,QAA4B,gBAAbuQ,GAAwB,GAAI7P,QAAO,KAAO6P,EAAY,OAASA,EAAY,MAAO,KAAOL,EAAY,KAGvJM,UAAW,SAAUlL,EAAQiL,GAC3B,OAAQjL,GAAU,IAAIhL,WAAW0F,QAA4B,gBAAbuQ,GAAwB,GAAI7P,QAAO,KAAO6P,EAAY,MAAQJ,EAAsB,KAGtIM,QAAS,SAAUnL,EAAQiL,GACzB,OAAQjL,GAAU,IAAIhL,WAAW0F,QAA4B,gBAAbuQ,GAAwB,GAAI7P,QAAO,IAAM6P,EAAY,OAASH,EAAoB,KAGpIM,OAAQ,SAAUpL,EAAQ4J,GACxB,GAAI/T,GAAS,GACTuC,EAAI,CAER,IAAY,EAARwR,GAA6B,gBAATA,GACtB,MAAO5J,EAIT,KADA4J,EAAQ9E,KAAK2G,MAAM7B,GACRA,EAAJxR,EAAWA,IAChBvC,GAAUmK,CAEZ,OAAOnK,IAGT0N,QAAS,SAAUzM,GACjB,MAAIjC,GAAO0D,QAAQzB,GACVA,EAAMyM,WAGK,gBAATzM,KACTA,EAAQA,EAAM9B,YAET8B,EAAMuF,MAAM,IAAIkH,UAAUjB,KAAK,MAGxC+I,KAAM,SAAUK,EAAkBC,GAChC,MAAI9W,GAAOa,WAAWgW,GACb,WACL,GAAIvV,IAAQuV,EAEZ,OADA/V,MAAKc,MAAMN,EAAMsB,WACVkU,EAAoBlV,MAAMpC,KAAM8B,IAGpCwV,EAAsBD,EAAmB7W,EAAO0O,QAAQoI,IAGjE5L,OAAQ,SAAUC,GAChB,MAAOD,GAAOC,EAAQ9I,EAAMjC,KAAKwC,UAAW,KAG9C8T,QAAS,SAAUvL,EAAQ4L,EAAKhC,GAC9BA,EAAQ/U,EAAO6E,SAASkQ,GAASA,EAAQxQ,OAAOyS,UAC3ChX,EAAOiX,SAASF,KACnBA,EAAM,GAAIxQ,QAAOwQ,EAAI5W,WAAY,KAEnC,IACIkN,GACA5M,EAFAO,IAMJ,KAFA+V,EAAIvQ,UAAY,EAChB6G,EAAQ0J,EAAIG,KAAK/L,GACV4J,EAAQ,GAAK1H,IAClB5M,EAAST,EAAO0D,QAAQ2J,GAASA,EAAM,GAAG5M,OAAS4M,EAAM5M,OACzDO,EAAOF,MACLE,OAAQqM,EACR8J,MAAO9J,EAAM8J,MACbC,WAAY/J,EAAMnL,MAClBmV,SAAUhK,EAAMnL,MAAQzB,EACxBA,OAAQA,IAELsW,EAAI5X,SAGTkO,EAAQ0J,EAAIG,KAAK/L,GACjB4J,GAGF,OAAO/T,MAwBXhB,EAAOmE,QAAQuE,EAAgB2C,GAC7BpD,KAAM,WACJ,MAAO,IAAIoD,GAAmBrL,EAAOiI,KAAKrG,MAAMpC,MAAOA,KAAKoJ,QAAQT,OAAO9F,EAAMjC,KAAKwC,eAGxF0I,QAAS,WACP,MAAO,IAAID,GAAmBC,EAAQ9L,KAAKoJ,OAAQvG,EAAMjC,KAAKwC,UAAW,MAG3E0U,QAAS,SAAUC,GACjB,MAAO,IAAIlM,GAAmBrL,EAAOsX,QAAQ9X,KAAKoJ,OAAQ2O,KAG5DhM,MAAO,SAAUC,GACf,MAAO,IAAIH,GAAmBE,EAAM/L,KAAKoJ,OAAQ4C,EAAMnJ,EAAMjC,KAAKwC,UAAW,MAG/E4U,SAAU,SAAUhM,EAAMpI,GACxB,MAAO,IAAIiI,GAAmBrL,EAAOwX,SAAShY,KAAKoJ,OAAQ4C,EAAMpI,KAGnEqU,SAAU,SAAUjM,EAAMkM,GACxB,MAAO,IAAIrM,GAAmBrL,EAAO2X,QAAQnY,KAAKoJ,OAAQ4C,EAAMkM,KAGlEE,KAAM,WACJ,MAAO,IAAIvM,GAAmBrL,EAAO4X,KAAKpY,KAAKoJ,UAGjD4N,KAAM,SAAU1U,GACd,MAAO,IAAIuJ,GAAmBrL,EAAOwW,KAAKhX,KAAKoJ,OAAQ9G,OAI3D9B,EAAOgD,OAAOhD,GACZsL,QAAS,SAAU/J,GACjB,GAAID,GAAOe,EAAMjC,KAAKwC,UAAW,EACjC,OAAO0I,GAAQ/J,EAAMD,IAGvBgW,QAAS,SAAU/V,EAAMgW,GACvB,GAAI3F,KAEJ,OADA2F,KAAWA,EAAS9I,GACb,WACL,GAAIxN,GAAMsW,EAAO3V,MAAMpC,KAAMoD,UAC7B,OAAOgP,GAAKpP,eAAevB,GAAO2Q,EAAK3Q,GAAQ2Q,EAAK3Q,GAAOM,EAAKK,MAAMpC,KAAMoD,aAIhF2I,MAAO,SAAUhK,EAAMiK,GACrB,MAAOD,GAAMhK,EAAMiK,EAAMnJ,EAAMjC,KAAKwC,UAAW,KAGjD4U,SAAU,SAAUhM,EAAMjK,EAAM6B,GAC9B,GAAI0J,GACAxL,EACAN,EACA6W,EAAU,KACVC,EAAW,CAEf1U,KAAYA,KACZ,IAAI2U,GAAQ,WACVD,EAAW1U,EAAQ4U,WAAY,EAAQ,EAAI,GAAIxT,MAC/CqT,EAAU,KACV7W,EAASO,EAAKK,MAAMkL,EAASxL,GAE/B,OAAO,YACL,GAAI2W,GAAM,GAAIzT,KACTsT,IAAY1U,EAAQ4U,WAAY,IAAOF,EAAWG,EACvD,IAAIC,GAAY1M,GAAQyM,EAAMH,EAW9B,OAVAhL,GAAUtN,KACV8B,EAAOsB,UACU,GAAbsV,GACFC,aAAaN,GACbA,EAAU,KACVC,EAAWG,EACXjX,EAASO,EAAKK,MAAMkL,EAASxL,IACnBuW,GAAWzU,EAAQgV,YAAa,IAC1CP,EAAUpM,WAAWsM,EAAOG,IAEvBlX,IAIXyW,SAAU,SAAUlW,EAAMiK,EAAMkM,GAC9B,GAAIG,GACAvW,EACAwL,EACAuL,EACArX,CACJ,OAAO,YACL8L,EAAUtN,KACV8B,EAAOsB,UACPyV,EAAY,GAAI7T,KAChB,IAAIuT,GAAQ,WACV,GAAIvP,GAAO,GAAKhE,MAAU6T,CACf7M,GAAPhD,EACFqP,EAAUpM,WAAWsM,EAAOvM,EAAOhD,IAEnCqP,EAAU,KACLH,IAAW1W,EAASO,EAAKK,MAAMkL,EAASxL,MAG7CgX,EAAUZ,IAAcG,CAK5B,OAJKA,KACHA,EAAUpM,WAAWsM,EAAOvM,IAE1B8M,IAAStX,EAASO,EAAKK,MAAMkL,EAASxL,IACnCN,IAIX4W,KAAM,SAAUrW,GACd,GACIqQ,GADA2G,GAAM,CAEV,OAAO,YACL,MAAIA,GAAY3G,GAChB2G,GAAM,EACN3G,EAAOrQ,EAAKK,MAAMpC,KAAMoD,WACxBrB,EAAO,KACAqQ,OAmBb5R,EAAO6V,OAAS,SAAU5C,EAAK/C,GAC7B,MAAwB,IAApBtN,UAAUnC,OACLwP,KAAK4F,UAEH,MAAP3F,IACFA,EAAM+C,EACNA,EAAM,GAEDA,EAAMhD,KAAK2G,MAAM,EAAI3G,KAAK4F,UAAY3F,EAAM+C,EAAM,MAO3DjT,EAAOmE,QAAQuE,EAAgB+B,GAC7B8E,YAAa9E,EAEb1G,KAAM,WACJ,MAAO,UAGTwB,OAAQ,SAAUC,GAEhB,MADAA,GAAOA,GAAQ,KACR,GAAIyF,GAAiBzL,KAAKoJ,OAASpD,EAAMhG,OAGlDqW,OAAQ,SAAU5C,EAAK/C,GACrB,MAAO,IAAIzF,GAAiBzK,EAAO6V,OAAO5C,EAAK/C,GAAM1Q,OAGvDgZ,WAAY,SAAUvW,GACpB,GAAI8J,GAAa,GAAItB,GAAiBjL,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAWyD,WAAWhQ,KAAKoJ,OAAS3G,GAC7B8J,GAGT0M,SAAU,WACR,GAAI1M,GAAa,GAAItB,GAAiBjL,KAAKoJ,OAAQpJ,KAEnD,OADAuM,GAAWyD,WAAWhQ,KAAKoJ,OAAS3G,OAC7B8J,KAQX/L,EAAOmE,QAAQuE,EAAgBgD,GAC7B6D,YAAa7D,EAEb3H,KAAM,WACJ,MAAO,QAGT2U,SAAU,SAAUC,GAElB,MADA3Y,GAAO0Y,SAASlZ,KAAKoJ,OAAQ+P,GACtBnZ,MAGToZ,QAAS,SAAUC,GACjB,MAAO,IAAInN,GAAe1L,EAAO4Y,QAAQpZ,KAAKoJ,OAAQiQ,KAGxDC,WAAY,SAAUD,GAEpB,MADArZ,MAAKgQ,WAAWxP,EAAO8Y,WAAWtZ,KAAKoJ,OAAQiQ,IACxCrZ,MAGTuZ,WAAY,SAAUF,GAEpB,MADArZ,MAAKgQ,WAAWxP,EAAO+Y,WAAWvZ,KAAKoJ,OAAQiQ,IACxCrZ,MAGTwZ,UAAW,WACT,MAAO,IAAItN,GAAe1L,EAAOgZ,UAAUxZ,KAAKoJ,YAIpD5I,EAAOgD,OAAOhD,GACZ0Y,SAAU,SAAUG,EAAMF,GAExB,MADAE,GAAKI,QAAQJ,EAAK5S,UAAoB,EAAR0S,GACvBE,GAGTD,QAAS,SAAUM,EAAOC,GACxB,GAAInY,GAASkY,EAAQC,CAErB,OADAnY,GAAoB,IAAXA,EAAeA,EAAkB,EAATA,EAAa,GAAK,GAIrD8X,WAAY,SAAUI,EAAOC,GAC3B,MAAOD,GAAMnT,gBAAkBoT,EAAMpT,eAC9BmT,EAAMlT,aAAemT,EAAMnT,YAC3BkT,EAAMjT,YAAckT,EAAMlT,WAGnC8S,WAAY,SAAUG,EAAOC,GAC3B,MAAOD,GAAMhT,aAAeiT,EAAMjT,YAC3BgT,EAAM/S,eAAiBgT,EAAMhT,cAC7B+S,EAAM9S,eAAiB+S,EAAM/S,cAC7B8S,EAAM7S,oBAAsB8S,EAAM9S,mBAG3C2S,UAAW,SAAUH,GAEnB,MADAA,GAAKO,SAAS,EAAG,EAAG,EAAG,GAChBP,KAIX7Y,EAAO2D,OAAO,QAAS,aAAc,SAAU,UAAW,OAAQ,QAAS,QAAS,UAAW,UAAW,gBAAiB,SAAU1B,GACnI,GAAIoX,GAAapX,EACbqX,EAAerX,CACfjC,GAAO0D,QAAQzB,KACjBoX,EAAapX,EAAM,GACnBqX,EAAerX,EAAM,IAEvBoX,EAAa,MAAQA,EACrBrZ,EAAOqZ,GAAc,SAAUR,EAAM5W,GAEnC,MADA4W,GAAK,MAAQS,GAAcT,EAAK,MAAQS,KAAkBrX,GACnD4W,GAETnN,EAAe/J,UAAU0X,GAAc,SAAUpX,GAC/C,MAAO,IAAIyJ,GAAe1L,EAAOqZ,GAAY7Z,KAAKoJ,OAAQ3G,OAS9DjC,EAAOmE,QAAQuE,EAAgBiD,GAC7BjM,OAAQ,aAIRgX,QAAS,SAAUvL,EAAQ4J,GACzB,MAAO,IAAIpJ,GAAiB3L,EAAO0W,QAAQlX,KAAKoJ,OAAQuC,EAAQ4J,KAGlEwE,MAAO,aAIPlW,MAAO,WACL,MAAO,IAAIsI,GAAiB3L,EAAOqD,MAAM7D,KAAKoJ,WAMlD,IAAIlG,GAAO1C,EAAO0C,IAElBA,GAAKC,oBAAqB,EAEtBD,EAAK8W,SACP9W,EAAK8W,QAAQ,sBAGf9W,EAAKI,iBAAmB,SAAUb,GAChC,GAAI8B,EAEJ,OAAI9B,aAAiBK,QAAUL,GAASA,EAAMmD,OACrC,GAAI0K,GAAoB7N,GAEb,gBAATA,IAAqBA,YAAiB5B,QACxC,GAAI4K,GAAiBhJ,GAEV,gBAATA,IAAqBA,YAAiBsC,QACxC,GAAIkG,GAAiBxI,GAE1BA,YAAiBuC,MACZ,GAAIkH,GAAezJ,GAEU,qBAAjC8B,EAAO5D,EAASC,KAAK6B,IACjB,GAAI0J,GAAiB1J,GAEjB,MAATA,EACK,GAAIyG,GAAezG,GAEW,yBAAnCA,EAAMqN,0BACDrN,EAEG,qBAAR8B,EACK,GAAIsH,GAAmBpJ,GAGzB,GAAI4M,GAAqB5M,IAGlCS,EAAKsC,aAAe,SAAU/C,GAC5B,MAAOA,IAA4C,yBAAnCA,EAAMqN,2BAGxB5M,EAAKG,kBACHuN,MAAO,SAAUC,EAAO/C,EAAKgD,GAC3BA,EAAOA,GAAQ,EACS,GAApB1N,UAAUnC,SACZ6M,EAAM+C,EACNA,EAAQ,EAGV,IAAIpB,GAAO,GAAIa,MACf,OAAOb,GAAKmB,MAAMC,EAAO/C,EAAKgD,IAGhCiG,OAAQ,cAKV7T,EAAK+W,kBAAoB,SAAUxX,GACjC,MAAOyX,sBAAqB/X,UAAUgD,cAAc1C,IAGtDS,EAAKiX,mBAAqB,SAAU1X,GAClC,MAAO2X,uBAAsBjY,UAAUgD,cAAc1C,GAIvD,IAAI4X,IACFnS,MAASoI,EACTgG,OAAUjH,GAGRiL,EAAc9Z,EAAO0U,UAAU,QAAS,MAAO,MAAO,KAAM,OAAQ,KAAM,UAE9E1U,GAAO0C,KAAKqX,iBAAmB,SAAUC,EAAgBlE,EAAQ7L,GAE/D,GAAK4P,EAAkBG,GAAvB,CAGA,GACI/Y,GADAU,EAAYkY,EAAkBG,GAAgBrY,SAGlD,KAAKV,IAAOU,GACLmU,EAAO7U,IAAS6Y,EAAY7Y,KAAQjB,EAAOa,WAAWc,EAAUV,KAAWgJ,IAAWA,EAAQhJ,KACjG6U,EAAO7U,GAAO2K,EAAgB3K,KA4QlC,IAAIkO,GAAcnP,EAAOgD,UAAW0P,EAAuBU,EAAkBI,EA4B7E,KAAK,GAAIvS,KAAOkO,GACZ1G,EAAOxH,EAGXjB,GAAO0K,QAAU1K,EAAO2D,IAExB,IAAIsW,GAAmBja,EAAOqI,GAC1B+G,EAAW3G,EAAO,KACtBzI,GAAOqI,GAAK,SAAUX,EAAO2H,EAAU0F,GACnC,MAAI/U,GAAO6E,SAAS6C,GACTuS,EAAiBvS,GAErB0H,EAAS1H,EAAO2H,EAAU0F,GAGrC,IAAImF,GAAsBla,EAAOuI,MAC7B4R,GAAc1R,EAAO,QACzBzI,GAAOuI,MAAQ,SAAUb,EAAO5F,EAAUC,GACtC,MAAwB,IAApBa,UAAUnC,OACHyZ,EAEJC,GAAYzS,EAAO5F,EAAUC,GAGxC,IAAIqY,IAAqBpa,EAAOwI,KAC5B6R,GAAa5R,EAAO,OACxBzI,GAAOwI,KAAO,SAAUd,EAAO5F,EAAUC,GACrC,MAAwB,IAApBa,UAAUnC,OACH2Z,GAEJC,GAAW3S,EAAO5F,EAAUC,GAGvC,IAAIuY,IAAiBta,EAAO2S,QAC5B3S,GAAO2S,SAAW,SAAU1Q,EAAOsY,GAC/B,MAAIva,GAAO0B,SAASO,GACqB,IAA9BA,EAAMmQ,QAAQmI,GAElBD,GAAerY,EAAOsY,OAQrC,WAGE,QAAS1Y,GAAcC,EAAUC,GAE/B,GAAe,MAAXA,EAAiB,CACnB,GAAIC,GAAcF,CAClBA,GAAW,SAAUG,EAAOC,EAAOC,GACjC,MAAOH,GAAY5B,KAAK2B,EAASE,EAAOC,EAAOC,IAGnD,MAAOL,GAiOT,QAAS6R,GAAKjM,GACZ,GAAI1G,KAIJ,OAHAhB,GAAO2D,KAAK+D,EAAO,SAAUzF,GAC3BjB,EAAOiB,IAAS,IAEXjB,EAUT,QAASwZ,KACP,OAAO,EAGT,QAASC,KACP,OAAO,EAGT,QAASC,GAAM9T,GACbpH,KAAKmb,cAAgB/T,EACrBpH,KAAKuE,KAAO6C,EAAE7C,KAEdvE,KAAKob,mBAAqBhU,EAAEiU,kBACAxW,SAAvBuC,EAAEiU,kBAEHjU,EAAEkU,eAAgB,EAClBL,EACAD,EAEJhb,KAAKub,UAAYnU,EAAEmU,YAAc,GAAIvW,MAgIvC,QAASwW,GAAY7V,EAAS8V,EAAWnZ,GACnCqD,EAAQ+V,kBAAiC,kBAAbD,EAC9B9V,EAAQ+V,iBAAiBD,EAAW,SAAUE,GAC5CrZ,EAAS1B,KAAKZ,KAAMkb,EAAMU,IAAID,MAC7B,GACMhW,EAAQkW,aACjBlW,EAAQkW,YAAY,KAAOJ,EAAW,SAAUE,GAC9CrZ,EAAS1B,KAAKZ,KAAMkb,EAAMU,IAAID,MAKpC,QAASG,GAAcC,EAAgBrb,GACrC,MAAKqb,IAA4C,gBAAnBA,IAA4C,MAAbrb,GAI7Dqb,EAAiB,IAAMA,EAAiB,IACjCA,EAAenJ,QAAQ,IAAMlS,EAAY,MAJvC,GAUX,QAASsb,GAAYvZ,GACnB,MAAO5B,QAAO4B,GACX4D,QAAQ4V,EAAU,SAClB5V,QAAQ6V,EAAe,QAW5B,QAASC,GAAeC,GACtB,GAAIC,GAAWC,SAASC,yBACpBC,EAAOF,SAASG,cAAc,OAC9BlH,EAAQ,EACRmH,EAAQ,UACRC,EAAW,WACXC,EAAQ,UACRC,EAAW,WACXC,EAAK,OACLC,EAAQ,OAuBZ,KArBAX,EAAOA,EAAKzb,WAEoB,IAA3Byb,EAAKxJ,QAAQ,YAAgD,IAA3BwJ,EAAKxJ,QAAQ,YAClDwJ,EAAO,WAAaA,EAAO,YAC3B7G,EAAQ,GAC2B,IAA1B6G,EAAKxJ,QAAQ,YAClBwJ,EAAKvO,MAAM,yBACb0H,EAAQ,EACR6G,EAAOM,EAAQN,EAAOO,GACU,IAAvBP,EAAKxJ,QAAQ,QACtB2C,EAAQ,EACR6G,EAAOM,EAAQE,EAAQR,EAAOS,EAAWF,GAChCP,EAAKvO,MAAM,cACpB0H,EAAQ,EACR6G,EAAOM,EAAQE,EAAQE,EAAKV,EAAOW,EAAQF,EAAWF,IAK1DH,EAAKQ,UAAY,SAAWZ,EAAO,SAE5B7G,KACLiH,EAAOA,EAAKS,SAGd,MAAOT,EAAKU,YACVb,EAASc,YAAYX,EAAKU,WAG5B,OAAOb,GAKT,QAASe,GAAalG,GACpB,MAAIA,GACKhR,WAAWgR,EAAQ,IAErBrS,OA4JT,QAASwY,GAAG1X,EAAS8V,EAAW6B,GAC1BC,EAAY9B,GACd8B,EAAY9B,GAAW9V,EAAS2X,EAAS,SAAU7B,EAAWnZ,GAC5DkZ,EAAY7V,EAAS8V,EAAWnZ,KAGlCkZ,EAAY7V,EAAS8V,EAAW6B,GA+cpC,QAASE,GAAeC,GACtB,MAAKD,GAAerb,UAAUgD,cAAcnF,OAI5CA,KAAK0d,aAAeC,EACpB3d,KAAK4d,SAAWH,EAAUA,EAAQ9c,WAAW6Q,cAAgB,KAC7DxR,KAAK6d,eACL7d,KAAK8d,yBACL9d,KAAKsJ,QAAU,KACftJ,KAAK+d,aACL/d,KAAKge,gBAAiB,EACtBhe,KAAKie,iBAAkB,EACvBje,KAAKke,WAAa,KAClBle,KAAKme,YAAcX,EAAeY,WAAWC,IAC7Cre,KAAKse,YAAa,EAClBte,KAAKue,UACLve,KAAKwe,QAAU,KACfxe,KAAKye,OAAS,UAEVje,EAAO6G,UAAUoW,KACnBzd,KAAK0e,IAAMjB,KAnBJ,GAAID,GAAeC,GA4mB9B,QAASkB,GAAuBC,EAAOC,GACrC,GAEIpd,GACAgB,EAHA2Z,EAAO,WACP0C,GAAY,CAIhB,KAAKrd,IAAOmd,GACVnc,EAAQmc,EAAMnd,GACVod,GAAS9b,EAAOnC,KAAKie,EAAMD,MAAOnd,KAGlCgB,GAAmB,IAAVA,KACXqc,GAAY,EACZrd,EAAMA,EAAI4E,QAAQ,SAAU0Y,GAC5B3C,GAAQ3a,EACR2a,GAAQ,IACRA,GAAQ3Z,EACR2Z,GAAQ,IAIZ,IAAIyC,EACF,IAAKpd,IAAOod,GAAMD,MAChBnc,EAAQoc,EAAMD,MAAMnd,IAChBgB,GAAmB,IAAVA,KACXqc,GAAY,EACZrd,EAAMA,EAAI4E,QAAQ,SAAU0Y,GAC5B3C,GAAQ3a,EACR2a,GAAQ,IACRA,GAAQ3Z,EACR2Z,GAAQ,IAMd,OADAA,IAAQ,IACD0C,EAAY1C,EAAO,GAG5B,QAAS2C,GAAsBlR,GAC7B,MAAO,IAAMA,EAAM2D,cAarB,QAASwN,GAASza,EAAMoB,EAASsZ,GAC/B,GAAkB,MAAdA,EAAoB,CACtBA,EAAaze,EAAO0D,QAAQ+a,GAAcA,EAAaA,EAAWte,WAAWqH,MAAM,IACnF,IACI+T,GACArb,EACAgC,EAHAqB,EAAI,CAKR,IAAIyZ,EAAe0B,GAAGvZ,GACpBoW,EAAiBpW,EAAQwZ,SAASC,OAC7B,CAAA,GAAIzZ,EAAQ0Z,UAQjB,YAPIC,EACF3Z,EAAQ0Z,UAAU9a,GAAMnC,MAAMuD,EAAQ0Z,UAAWJ,GAEjDze,EAAO2D,KAAK8a,EAAY,SAAUxc,GAChCkD,EAAQ0Z,UAAU9a,GAAM9B,KAK5BsZ,GAAiBpW,EAAQjF,UAI3B,IAFAqb,EAAiBA,GAAkB,GAE5BhY,EAAIkb,EAAWhe,OAAQ8C,IAC5BrD,EAAYue,EAAWlb,GACvBrB,EAAQoZ,EAAcC,EAAgBrb,GAC1B,OAAR6D,EACU,EAAR7B,IACqB,KAAnBqZ,IACFrb,EAAY,IAAMA,GAEpBqb,GAAkBrb,GAEF,IAATgC,IACTqZ,GAAkBA,EAAerF,UAAU,EAAGhU,GAAS,IACvDqZ,EAAerF,UAAUhU,EAAQhC,EAAUO,OAAS,EAAG8a,EAAe9a,SAASoF,QAAQkQ,EAAY,IAInGiH,GAAe0B,GAAGvZ,GAChBA,EAAQ8Y,OACV9Y,EAAQ8Y,OAAOc,WAAWH,GAAarD,EAExCpW,EAAQkY,YAAYuB,GAAarD,EAGlCpW,EAAQjF,UAAYqb,GAqE1B,QAASyD,GAAeC,EAAe/c,GACrC,GAAIgd,GAAcC,EAAatT,KAAKoT,EACpC,IAAIC,GAAeA,EAAYE,UAAY,EAAG,CAM5C,IALA,GAGIlf,GAHAmf,EAAaJ,EAAcI,WAC3BC,EAAa,EACbC,EAAe,EAGZrd,GAASqd,GAAc,CAC5B,IAAKF,EAAWC,GACd,MAAO/a,QAAOib,iBAEhBtf,GAAYmf,EAAWC,GAAYpf,UACnCof,IAE0C,IAAtChE,EAAcpb,EAAW,WAC3Bqf,IAIJ,IAAKF,EAAWC,GACd,MAAO/a,QAAOib,iBAKhB,KAFAtf,EAAYmf,EAAWC,GAAYpf,UAEU,IAAtCob,EAAcpb,EAAW,WAAiB,CAE/C,GADAof,KACKD,EAAWC,GACd,MAAO/a,QAAOib,iBAEhBtf,GAAYmf,EAAWC,GAAYpf,UAGrC,MAAOof,GAGT,MAAOpd,GAGT,QAASud,GAAiB1b,EAAMoB,GAC9B,GAAIia,IAAY,EACZF,EAAcC,EAAaO,kBAAkBva,GAC7Cwa,EAAoBR,EAAaO,kBAAkBva,EAAQya,YAC3DC,EAAkBX,EAAYW,gBAC9BC,EAAkB,UAAR/b,EAAmB,OAAiB,OAARA,EAAgB,OAASA,EAC/Dgc,EAA0B,UAARhc,EAAmB,WACvCob,EAAaa,MAAM7a,GAAS,GACxBA,EAAQya,YACVza,EAAQya,WAAWK,YAAY9a,IAEvB,QAARpB,EAAiB,WACnBoB,EAAQiZ,MAAM8B,QAAU,QACtBlgB,EAAOkE,KACPic,EAAgB,WAClBjB,EAAYE,WAAa,EACzBO,EAAkBP,WAAa,EAC1BF,EAAYE,WACfW,IAIJ,IAAwB,GAApB5a,EAAQ2B,SAEV,WADAiZ,IAQF,IAJY,QAARhc,IACFoB,EAAQiZ,MAAM8B,QAAU,IAGtBhB,EAAYkB,WAEd,WADAL,IAIF,IAAIF,EAAiB,CACnBT,GAAY,EACZF,EAAYE,WAAa,EACzBO,EAAkBP,WAAa,CAC/B,IAAItS,GAAU9M,EAAO8M,QAAQ3H,GACzBpD,EAAU+K,EAAQuT,OAASvT,EAAQwT,KACvCT,GAAgBzf,KAAK2B,EAASoD,EAASgb,EAAeL,GAExD,MAAOV,IAAamB,EAAWT,EAAS3a,EAAS4a,EAAiBI,GAGpE,QAASI,GAAWxc,EAAMoB,EAAS4a,EAAiBI,GAuClD,QAAS7S,KACPkR,EAAS,SAAUrZ,EAAS,KAAOpB,GACnCya,EAAS,SAAUrZ,EAAS,KAAOpB,EAAO,QAC1Coc,IACAhb,EAAQqb,oBAAoB,gBAAiBlT,GAAK,GAClDnI,EAAQqb,oBAAoBvF,EAAW3N,GAAK,GA3C9C,GAAqB,mBAAV/N,SAAoD8E,SAA3B9E,OAAOkhB,gBAEzC,WADAV,IAGFvB,GAAS,MAAOrZ,EAAS,KAAOpB,EAEhC,IAEIkX,GAFAyF,EAAgBnhB,OAAOohB,iBAAiBxb,GACxCyb,EAAS,EAEiBvc,UAA1B9E,OAAOshB,gBAAgExc,SAAhC9E,OAAOuhB,sBAChDF,EAAS,WACT3F,EAAY,sBAEZA,EAAY,cAGd,IAAI8F,GAAqBrb,WAAWgb,EAAc,yBAA2B,EACzEM,EAAkBtb,WAAWgb,EAAc,sBAAwB,EACnEO,EAAoBvb,WAAWgb,EAAcE,EAAS,wBAA0B,EAChFM,EAAiBxb,WAAWgb,EAAcE,EAAS,qBAAuB,CAE9E,OAA0B,IAAtBG,GAA8C,GAAnBC,GACR,GAArBC,GAA4C,GAAlBC,GAE1B1C,EAAS,SAAUrZ,EAAS,KAAOpB,OACnCgc,OAIFZ,EAAaO,kBAAkBva,GAASia,WAAa,EACrDD,EAAaO,kBAAkBva,EAAQya,YAAYR,WAAa,EAEhE3T,WAAW,WACT+S,EAAS,MAAOrZ,EAAS,KAAOpB,EAAO,QACvCoB,EAAQ+V,iBAAiB,gBAAiB5N,GAAK,GAC/CnI,EAAQ+V,iBAAiBD,EAAW3N,GAAK,IACxC,IAUI,GAGT,QAAS6T,GAAeC,GACtB,MAAKD,GAAexf,UAAUgD,cAAcnF,OAI5CA,KAAKiC,iBAEuB,GAAxB2f,EAAYta,UACdtH,KAAK6hB,aAAeD,EAAYE,UAChC9hB,KAAK0e,IAAMkD,GAEX5hB,KAAK6hB,aAAeD,IATb,GAAID,GAAeC,GA4C9B,QAASG,GAAcC,EAAavC,GAalC,IAZA,GAEI9Z,GACA8X,EACAwE,EACAC,EACAC,EACA7a,EACAsa,EACAQ,EACA/V,EAVAgW,EAAatiB,OAAOuiB,qBACpBC,KAWGP,GAAa,CAElB,GADA1a,EAAW0a,EAAY1a,SACP,GAAZA,EAAe,CAEjBmW,EAAUuE,EAAYvE,QAAQjM,cAC9B7L,EAAU,GAAI6X,GAAewE,GAC7Brc,EAAQiY,SAAWH,EACnB9X,EAAQ2D,QAAUmW,EACdA,IACF9Z,EAAQ6c,MAAQ/C,EAAc+C,OAAS/C,EAAcgD,eAEvD9c,EAAQsY,iBAAkB,EAC1BiE,EAAiBF,EAAYzC,WAC7B0C,IACA,KAAK,GAAIle,GAAI,EAAGA,EAAIme,EAAejhB,OAAQ8C,IACzCoe,EAAgBD,EAAene,GAEA,UAA3Boe,EAAcO,WACfP,EAAcQ,WAEdC,EAAQC,GAAK,GAA+B,SAA1BV,EAAcO,UAAuBP,EAAcL,aACtEG,EAAkBE,EAAcO,SAASlR,eAAiBoR,EAAQC,GAAK,GAAKV,EAAcL,UAAYK,EAAc1f,MACpHkD,EAAQsY,iBAAkB,EAG9BtY,GAAQkY,YAAcoE,EACtBtc,EAAQmd,4BAA4BT,GAEhCL,EAAYpD,MAAMmE,UACpBpd,EAAQ2Y,YAAa,EACrB3Y,EAAQ4Y,OAASyE,EAAoBhB,EAAYpD,MAAMmE,UAGzDE,EAAiBtd,GACF,UAAX8X,GAAkC,SAAXA,GAAiC,QAAXA,GAAqB9X,EAAQud,SAAS,WACrFvd,EAAQuY,WAAa8D,EAAYhF,UAEjCrX,EAAQoY,UAAYgE,EAAcC,EAAYnC,WAAW,GAAIla,GAG/D4c,EAASjhB,KAAKqE,OACT,IAAgB,GAAZ2B,EAKT+E,EAAO2P,EAAYgG,EAAY3V,MAC/BkW,EAASjhB,KAAKqJ,EAAWwY,OAAO9W,EAAM,KAAM2V,IAAgB3V,OACvD,IAAgB,GAAZ/E,EAIT,GAFAsa,EAAcI,EAAYF,UAC1BM,EAAqBR,EAAYvb,QAAQkQ,EAAY,IACR,IAAzC6L,EAAmBxP,QAAQ,UAC7BjN,EAAU,GAAIgc,GAAeK,GAC7Brc,EAAQ2D,QAAUmW,EAClB9Z,EAAQkY,YAAYuF,GAAiBhB,EAAmB1L,UAAU,GAClErK,EAAO0V,EAAcC,EAAYqB,YAAa1d,GAC9CA,EAAQoY,UAAY1R,EAAKkW,SACzB5c,EAAQ+Y,IAAI4E,YAAcjX,EAAK2V,YAC/BA,EAAc3V,EAAK2V,aAAeA,EAClCO,EAASjhB,KAAKqE,OACT,CAAA,GAAIgc,EAAezC,GAAGO,IAA4D,IAA1C2C,EAAmBxP,QAAQ,WACxE,OACE2P,SAAUA,EACVP,YAAaA,EAEV,IAAIL,EAAezC,GAAGO,GAC3B8C,EAASjhB,KAAK,OAASsgB,EAAc,WAChC,IAAIS,EAAY,CACrB,GAAIkB,GAASpd,SAAS,SAASuR,KAAK0K,GAAqB,KACpD5hB,EAAO8E,MAAMie,IAAWlB,EAAWkB,IACtChB,EAASjhB,KAAKqJ,EAAWwY,OAAOd,EAAWkB,SAEM,KAA1CnB,EAAmBxP,QAAQ,YACpC2P,EAASjhB,KAAK,OAASsgB,EAAc,OAGzCI,EAAcA,EAAYqB,YAE5B,MAAOd,GAGT,QAASS,GAAoBQ,GAO3B,IAAK,GAJD9gB,GACAkc,EACAvK,EAJAoP,EAASD,EAAYxb,MAAM,KAC3B0b,KAKK3f,EAAI,EAAGA,EAAI0f,EAAOxiB,OAAQ8C,IACjC6a,EAAQ6E,EAAO1f,GACX6a,IACFlc,EAAQkc,EAAMhM,QAAQ,KACT,IAATlQ,IACF2R,GAAUuK,EAAMlI,UAAU,EAAGhU,GAAQkc,EAAMlI,UAAUhU,EAAQ,IAC7DghB,EAAYrP,EAAO,GAAG7C,cAAcnL,QAAQkQ,EAAY,KAAOlC,EAAO,GAAGhO,QAAQkQ,EAAY,KAKnG,OAAOmN,GAIT,QAAST,GAAiBtd,GACxB,GACIge,GADAlG,EAAU9X,EAAQiY,QAGtB,OAAoC/Y,UAAhC+e,GAAmBnG,QACrB9X,EAAQqY,eAAiB4F,GAAmBnG,KAG9CkG,EAAarH,SAASG,cAAc,OACpCkH,EAAWxG,YAAYb,SAASG,cAAcgB,SAC9CmG,GAAmBnG,GAAW9X,EAAQqY,eAAwD,KAAvC2F,EAAW3G,UAAUpK,QAAQ,QAGtF,QAASiR,GAAe/J,GACtB,MAAO,UAAUrX,GACf,MAAyB,KAArBW,UAAUnC,OACLjB,KAAK8Z,IAEd9Z,KAAK8Z,GAAgBrX,EACdzC,OAKX,QAAS8jB,GAAWC,EAAOzhB,GACzB,GAQI0hB,GACAnK,EATAoK,EAAY,EACZC,EAAgB,EAChBC,EAAqB,EACrBC,EAAsB,EACtBC,GAAmB,EACnBC,GAAmB,EACnB1M,EAAa,EACb2M,IAIJR,GAAQA,GAAS,EAEjB,KAAK,GAAIhgB,GAAI,EAAGA,EAAIggB,EAAM9iB,OAAQ8C,IAChCkgB,EAAYF,EAAM3d,OAAOrC,GAEpBsgB,GAAqBC,IACP,KAAbL,EACFG,IACsB,KAAbH,EACTG,IACsB,KAAbH,EACTE,IACsB,KAAbF,GACTE,KAIuB,IAAvBA,GAAoD,IAAxBC,IAIf,KAAbH,EACFI,GAAoBA,EACE,KAAbJ,IACTK,GAAoBA,GAGlBD,GAAoBC,IAIP,KAAbL,GACoB,IAAlBC,IACFrK,EAAakK,EAAMrN,UAAUkB,EAAY7T,GAAGsC,QAAQkQ,EAAY,IAChEqB,EAAa7T,EAAI,GAEnBmgB,KACsB,KAAbD,GACTC,IACsB,IAAlBA,IACFF,EAAmBD,EAAMrN,UAAUkB,EAAY7T,GAAGsC,QAAQkQ,EAAY,IAClEyN,EAAiB/iB,QACnBsjB,EAAWjjB,KAAK0iB,GAGdnK,IACFA,EAAaA,EAAWxT,QAAQ,mBAAoB,IACpD/D,EAASuX,EAAY0K,IAEvBA,KACA1K,EAAahV,SAEO,KAAbof,GAAqC,GAAjBC,GAC7BF,EAAmBD,EAAMrN,UAAUkB,EAAY7T,GAAGsC,QAAQkQ,EAAY,IAClEyN,EAAiB/iB,QACnBsjB,EAAWjjB,KAAK0iB,GAElBpM,EAAa7T,EAAI,GACK,KAAbkgB,GAAsC,IAAlBC,IAC7BtM,EAAa7T,EAAI,KAKvB,QAASygB,GAAS5gB,GAChB5D,KAAKykB,SAAW7gB,MAChB5D,KAAK0kB,sBAsXP,QAASC,GAAYZ,EAAOpe,GAC1B,GAAImF,GAAQ0Z,EAASI,WAAWb,KAyBhC,OAvBAD,GAAWC,EAAO,SAAUlK,EAAY0K,GACtC,GAAIM,GAASrkB,EAAOskB,QAAQjL,GACxBkL,GACFljB,KAAMgY,EACNmL,OAAQT,EACRR,MAAOlK,EAAa,IAAM0K,EAAWtW,KAAK,KAAO,IAG/C4W,GAEgB,QAAdhL,GAAsC,OAAdA,EAC1B/O,EAAM8K,QAAQmP,GAEdja,EAAMxJ,KAAKyjB,GAKbvkB,EAAOykB,MAAMC,eAAeH,EAAWpf,KAKpCmF,EAkzBT,QAASqa,GAAaC,GACpBplB,KAAKolB,WAAaA,EAClBplB,KAAKqlB,gBACLrlB,KAAKslB,UAgQP,QAASC,GAAmBH,GACtBA,EAAWI,kBACbJ,EAAWK,eAAiBjlB,EAAOiI,KAAKid,EAAeN,GACvDA,EAAW/H,GAAG,MAAO+H,EAAWK,iBAIpC,QAASC,KACP,GAAIN,GAAaplB,KACbyC,EAAQ2iB,EAAWO,UACnB7b,EAAyC,GAA9Bsb,EAAWI,gBAAuB/iB,EAAQA,EAAMwR,GAE/D2R,GAAOC,IAAIT,EAAY,MAAOA,EAAWK,gBACzCL,EAAWK,eAAiB5gB,OAE5BihB,EAASC,iBACTjc,EAASlJ,KAAKwkB,EAAWY,aACzBxlB,EAAO2D,KAAK2hB,EAASG,gBAAiB,SAAUC,GAC9C,GAAIC,GAAgBD,EAAWE,cAAgBF,EAAWE,kBACtDC,GAAS,CACb7lB,GAAO2D,KAAKgiB,EAAc,SAAU1jB,GAClC,MAAI2iB,KAAe3iB,GACjB4jB,GAAS,GACF,GAFT,SAKGA,GACHF,EAAa7kB,KAAK8jB,KAKxB,QAASkB,GAAmBlB,GAC1B,GAAI9X,GAAU8X,EAAWY,WACzB,OAAqC,IAA9BZ,EAAWI,gBAAuBJ,EAAWO,UAAU/kB,KAAK0M,GACjC,GAA9B8X,EAAWI,gBAAuBJ,EAAWO,UAAU1R,IAAIrT,KAAK0M,GAChE8X,EAAWO,UA1tHjB,GAAIC,GAAS,WACX,QAASW,GAAkB9K,GACzB,MAAO,UAAUnZ,EAAUgL,GAMzB,MALIlK,WAAUnC,OAAS,EACrB2kB,EAAOvI,GAAGrd,KAAMyb,EAAWnZ,EAAUgL,GAErCsY,EAAOvI,GAAGrd,KAAMyb,EAAWnZ,GAEtBtC,MAIX,GAAIyK,IACF4S,GAAI,SAAU5B,EAAWnZ,EAAUgL,GAMjC,MALIlK,WAAUnC,OAAS,EACrB2kB,EAAOvI,GAAGrd,KAAMyb,EAAWnZ,EAAUgL,GAErCsY,EAAOvI,GAAGrd,KAAMyb,EAAWnZ,GAEtBtC,MAGToY,KAAM,SAAUoO,EAAYlkB,EAAUC,GACpCqjB,EAAOxN,KAAKpY,KAAMwmB,EAAYlkB,EAAUC,IAG1CsjB,IAAK,SAAUpK,EAAWnZ,GACxBsjB,EAAOC,IAAI7lB,KAAMyb,EAAWnZ,IAG9B0X,QAAS,SAAUyB,GACjBmK,EAAO5L,QAAQha,KAAMyb,EAAWjb,EAAOqF,QAAQzC,WAAWP,MAAM,EAAG,OAKvE,OAFA4H,GAAQgc,SAAWhc,EAAQuP,SAGzB0M,SAAU,SAAUpQ,EAAQkQ,GAC1BA,EAAahmB,EAAO0D,QAAQsiB,GAAcA,GAAcA,EACxD,KAAK,GAAIziB,GAAI,EAAGA,EAAIyiB,EAAWvlB,OAAQ8C,IAAK,CAC1C,GAAI8V,GAAa2M,EAAWziB,EAE1BuS,GAAOuD,GADLpP,EAAQoP,GACWpP,EAAQoP,GAER0M,EAAkB1M,KAK7CwD,GAAI,SAAU/G,EAAQkQ,EAAYlkB,EAAUC,GAC1CikB,EAAahmB,EAAOqF,QAAQ2gB,GAAYvY,KAAK,KAAKjG,MAAM,IAExD,IAEIyT,GAFA1X,EAAI,EACJ9C,EAASulB,EAAWvlB,MAGxB,IAAKqB,EAOL,IAHKgU,EAAOqQ,UACVrQ,EAAOqQ,YAEE1lB,EAAJ8C,EAAYA,IACjB0X,EAAY+K,EAAWziB,GAClBuS,EAAOqQ,QAAQlL,KAClBnF,EAAOqQ,QAAQlL,OAEjBnF,EAAOqQ,QAAQlL,GAAWna,MACxBgB,SAAUA,EACVC,QAASA,KAKf6V,KAAM,SAAU9B,EAAQkQ,EAAYlkB,EAAUC,GAC5CqjB,EAAOvI,GAAG/G,EAAQkQ,EAAYlkB,EAAUC,GACxCqjB,EAAOvI,GAAG/G,EAAQkQ,EAAY,WAC5BZ,EAAOC,IAAIvP,EAAQkQ,EAAYlkB,MAInCujB,IAAK,SAAUvP,EAAQmF,EAAWnZ,GAC5B9B,EAAOa,WAAWoa,KACpBnZ,EAAWmZ,EACXA,EAAY5W,QAGIA,SAAd4W,GAAwC5W,SAAbvC,EAC7B9B,EAAO2D,KAAKmS,EAAOqQ,QAAS,SAAUC,EAAQC,GAC1BhiB,SAAd4W,GAAwC5W,SAAbvC,EAC7BgU,EAAOqQ,QAAQlL,MAEfjb,EAAO2D,KAAKyiB,EAAQ,SAAUE,EAAWpkB,GACvC,MAAIokB,GAAUxkB,UAAYA,GACxBgU,EAAOqQ,QAAQE,GAAkBre,OAAO9F,EAAO,IACxC,GAFT,WAQN4T,EAAOqQ,QAAU9hB,QAIrBmV,QAAS,SAAU1D,EAAQmF,GACzB,GACIsL,GACAxkB,EACAT,EAHAN,GAAS,CAyBb,OApBI8U,IAAUA,EAAOqQ,UACnBI,EAAazQ,EAAOqQ,QAAQlL,GAExBsL,GAAcA,EAAW9lB,OAAS,IACpCa,EAAOgB,MAAMX,UAAUU,MAAMjC,KAAKwC,UAAW,GAE7C5C,EAAO2D,KAAK4iB,EAAY,SAA2BD,GAC7CA,IACFvkB,EAAU+T,EACgBzR,SAAtBiiB,EAAUvkB,UACZA,EAAUukB,EAAUvkB,SAElBukB,EAAUxkB,SAASF,MAAMG,EAAST,MAAU,IAC9CN,GAAS,QAOZA,GAGTE,IAAK,SAAU4U,EAAQmF,GACrB,QAASjb,EAAOqH,OAAOyO,EAAQ,WAAamF,EAAY,iBAM9D,WA6BE,QAASuL,KACP,GAA4B,aAAxB1K,SAAS2K,WACXhb,WAAWib,OACN,IAAI5K,SAASZ,iBAClBY,SAASZ,iBAAiB,mBAAoByL,GAAW,GACzDpnB,OAAO2b,iBAAiB,OAAQyL,GAAW,OACtC,CACL7K,SAAST,YAAY,qBAAsBsL,GAC3CpnB,OAAO8b,YAAY,SAAUsL,EAE7B,IAAIC,IAAM,CACV,KACEA,EAA6B,MAAvBrnB,OAAOsnB,cAAwB/K,SAASgL,gBAC9C,MAAOlgB,IAELggB,GAAOA,EAAIG,WACb,QAAUC,KACR,IAAKhnB,EAAOinB,WAAY,CACtB,IACEL,EAAIG,SAAS,QACb,MAAOngB,GACP,MAAO6E,YAAWub,EAAe,IAGnCN,SAOV,QAASC,MACH7K,SAASZ,kBAAkC,QAAdC,MAAMpX,MAAyC,YAAvB+X,SAAS2K,aAChEC,IAIJ,QAASA,KACF1mB,EAAOinB,aACVjnB,EAAOinB,YAAa,EACpB7B,EAAO5L,QAAQxZ,EAAO0C,KAAM,YAC5B0iB,EAAOC,IAAIrlB,EAAO0C,KAAM,aArE5B1C,EAAOinB,YAAa,EAWpBjnB,EAAOknB,SAAW,SAAUplB,EAAUC,GACb,mBAAZ+Z,WAA4C,mBAAVvc,SAC1CA,OAAO4nB,UAAYrL,SAASqL,WAI/BrlB,EAAWD,EAAcC,EAAUC,GAC/B/B,EAAOinB,YAAqC,YAAvBnL,SAAS2K,YAC/BlnB,OAAO6nB,QAAU7nB,OAAO6nB,OAAOC,SAChCrnB,EAAOinB,YAAa,EACpBnlB,MAEAsjB,EAAOvI,GAAG7c,EAAO0C,KAAM,WAAYZ,GACnC0kB,SAkDJ,IAEIzQ,IAFQzT,MAAMX,UAAUU,MAEX,eAUbuc,EAAY,QAEZ0F,EAAWtkB,EAAOskB,WAGpBgD,EAAoB,uCACpBC,EAAkB,MAwBtB7M,GAAM8M,kBACJC,IAAK,wHAAwHjgB,MAAM,KACnIkgB,MAAO,mGAAmGlgB,MAAM,KAChHmgB,SAAU,4BAA4BngB,MAAM,MAG9CkT,EAAMkN,eAAiB,SAAUjN,EAAeQ,EAAO0M,GACrD7nB,EAAO2D,KAAK+W,EAAM8M,iBAAiBK,GAAiB,SAAUvO,GAC5D6B,EAAM7B,GAAgBqB,EAAcrB,MAIxCoB,EAAM/Y,WACJmmB,eAAgB,WACZ,GAAIlhB,GAAIpH,KAAKmb,aAEbnb,MAAKob,mBAAqBH,EAEtB7T,EAAEkhB,eAEFlhB,EAAEkhB,iBAIFlhB,EAAEkU,aAAc,GAIxBiN,gBAAiB,WACb,GAAInhB,GAAIpH,KAAKmb,aAEbnb,MAAKwoB,qBAAuBvN,EAGxB7T,EAAEmhB,iBACFnhB,EAAEmhB,kBAKNnhB,EAAEqhB,cAAe,GAGrBC,yBAA0B,WACtB,GAAIthB,GAAIpH,KAAKmb,aAEbnb,MAAK2oB,8BAAgC1N,EAEjC7T,EAAEshB,0BACFthB,EAAEshB,2BAGN1oB,KAAKuoB,oBAIXrN,EAAMU,IAAM,SAAUT,GACpB,GAAI5W,GAAO4W,EAAc5W,KACrBoX,EAAQ,GAAIT,GAAMC,EA4BtB,OA1BAD,GAAMkN,eAAejN,EAAeQ,EAAO,OAItCA,EAAM7X,SACP6X,EAAM7X,OAASqX,EAAcyN,YAActM,UAKjB,IAA1BX,EAAM7X,OAAOwD,WACbqU,EAAM7X,OAAS6X,EAAM7X,OAAOsc,YAKhCzE,EAAMkN,UAAYlN,EAAMkN,QAEpBf,EAAkBgB,KAAKvkB,GACvB2W,EAAM6N,SAAS5N,EAAeQ,GACvBoM,EAAgBe,KAAKvkB,IAAwB,MAAfoX,EAAMqN,QAC3C9N,EAAMkN,eAAejN,EAAeQ,EAAO,YAE3CA,EAAMqN,MAAkC,MAA1B7N,EAAc8N,SAAmB9N,EAAc8N,SAAW9N,EAAc+N,SAGnFvN,GAGTT,EAAM6N,SAAW,SAAU5N,EAAeQ,GACxC,GAEItR,GACA8e,EACAC,EAJAC,EAASlO,EAAckO,OACvBC,EAAcnO,EAAcmO,WAKhCpO,GAAMkN,eAAejN,EAAeQ,EAAO,SAGxB,MAAfA,EAAM4N,OAA0C,MAAzBpO,EAAcqO,UACrCL,EAAWxN,EAAM7X,OAAO2lB,eAAiBnN,SACzC8M,EAAMD,EAAS7B,gBACfjd,EAAO8e,EAAS9e,KAEhBsR,EAAM4N,MAAQpO,EAAcqO,SAAWJ,GAAOA,EAAIM,YAAcrf,GAAQA,EAAKqf,YAAc,IAAMN,GAAOA,EAAIO,YAActf,GAAQA,EAAKsf,YAAc,GACrJhO,EAAMiO,MAAQzO,EAAc0O,SAAWT,GAAOA,EAAIU,WAAazf,GAAQA,EAAKyf,WAAa,IAAMV,GAAOA,EAAIW,WAAa1f,GAAQA,EAAK0f,WAAa,KAIhJpO,EAAMqO,eAAiBV,IACxB3N,EAAMqO,cAAgBV,IAAgB3N,EAAM7X,OAASqX,EAAc8O,UAAYX,GAK9E3N,EAAMqN,OAAoBnkB,SAAXwkB,IAEhB1N,EAAMqN,MAAkB,EAATK,EAAa,EAAc,EAATA,EAAa,EAAc,EAATA,EAAa,EAAI,GA6B1E,IAAIpN,GAAW,KACXC,EAAgB,KAOdnZ,EAASH,OAAOT,UAAUa,eAE1B2a,EAAyB,4BAEzBuM,EAAa,UAEb9G,EAAgB,aA8ClBR,IASoB,oBAAbtG,WACT9b,EAAOgD,OAAOof,GACZC,GAAIvG,UAAa,WAQf,IAPA,GAAI/Y,GAAU,EACV4mB,EAAM7N,SAASG,cAAc,OAC7B2N,EAASD,EAAIE,qBAAqB,KAMpCF,EAAInN,UAAY,oBAAsBzZ,EAAW,wBACjD6mB,EAAO,KAET,MAAO7mB,GAAU,EAAIA,EAAUsB,UAGjCylB,MAAQvqB,QAAUA,OAAOwqB,WAAaxqB,OAAOyqB,OAASzqB,OAAOyqB,MAAMjnB,SAAW4C,SAASpG,OAAOyqB,MAAMjnB,UAAW,KAAQsB,OAEvH4lB,OAAQ1qB,QAAUA,OAAOwqB,WAAanN,EAAard,OAAOwqB,UAAUG,UAAU7c,MAAM,8CAEpF8c,QAAS5qB,QAAUA,OAAOwqB,WAAanN,EAAard,OAAOwqB,UAAUG,UAAU7c,MAAM,sBAIzF,IAAI8R,GAAe,WAIjB,QAASiL,GAAUjlB,GACjB,GAAInE,GAASmE,EAAU6X,EAAe0B,GAAGvZ,GAAWA,EAAQ8Y,OAAS9Y,EAAQ8Y,OAAOc,WAAW2K,GAAcvkB,EAAQkY,YAAYqM,GAC3G,GAApBvkB,EAAQ2B,SAAgB3B,EAAQklB,aAAaX,GACvB,GAApBvkB,EAAQ2B,SAAgB,iBAAiBoQ,KAAK/R,EAAQmc,WACpD,KACJ,IAEF,OAAOthB,GAAO0D,QAAQ1C,GAAUA,EAAO,GAAKA,EAG9C,QAASspB,GAAUnlB,EAASolB,GACtBvN,EAAe0B,GAAGvZ,GACpBA,EAAQqlB,KAAKd,EAAYa,GACI,GAApBplB,EAAQ2B,UACjB3B,EAAQslB,aAAaf,EAAYa,GAjBrC,GAAI1e,MACA6e,EAAW,CAoBf,QACEH,GAAI,SAAUplB,GACZ,MAAOilB,GAAUjlB,IAInBoU,MAAO,WACL1N,KACA6e,EAAW,GAIbC,eAAgB,WACd3qB,EAAO2D,KAAKkI,EAAM,SAAU5J,GACtBA,GAASA,EAAM2oB,MAAQ9O,SAASjS,KAAK8I,SAAS1Q,EAAM2oB,MACtDzL,EAAaa,MAAM/d,EAAMsoB,IAAI,MAKnC7K,kBAAmB,SAAUva,GAC3B,GACI0lB,GACAN,EAFAO,EAAY3lB,GAAWA,EAAQ+X,cAAgBC,CAyCnD,OApCE0N,GADEC,EACYjf,EAAK1G,EAAQwZ,SAAS+K,IAEtB7d,EAAK1G,GAAWilB,EAAUjlB,IAGrC0lB,IACHN,EAAKG,IACDvlB,IACE2lB,GAAa3lB,EAAQ6c,OACvB7c,EAAQsY,iBAAkB,EACtBtY,EAAQ8Y,OACV9Y,EAAQ8Y,OAAOc,WAAW2K,GAAca,EAExCplB,EAAQkY,YAAYqM,GAAca,GAGpCD,EAAUnlB,EAASolB,IAUrBM,EAAchf,EAAK0e,GALhBplB,GAMDolB,GAAIA,EACJQ,QAASD,EAAY3lB,EAAU,KAC/Bia,UAAW,EACX4L,eACA5K,WAAY0K,IARZP,GAAIA,IAaHM,GAGTI,KAAM,SAAUV,GACd,MAAO1e,GAAK0e,IAGd1e,KAAM,SAAU1G,EAAS9D,EAAMY,GAC7B,GAAIjB,GAAS6K,EAAKue,EAAUjlB,IAAYA,EACxC,IAAKnE,EAGL,MAAwB,IAApB4B,UAAUnC,OACLO,GACE4B,UAAUnC,OAAS,IAC5BO,EAAOK,GAAQY,GAEVjB,EAAOK,KAGhB2e,MAAO,SAAU7a,EAAS+lB,GACxB,GAAIX,GAAKH,EAAUjlB,IAAYA,EAC3B0lB,EAAchf,EAAK0e,IAEnBM,GAAiBA,EAAYM,WAAYD,IAC3ClrB,EAAO2D,KAAKknB,EAAYG,YAAa,SAAU/oB,GAC7C,IAAK,GAAIsB,GAAI,EAAGA,EAAItB,EAAMmpB,UAAU3qB,OAAQ8C,IACtCtB,EAAMmpB,UAAU7nB,GAAG8nB,WAAaxf,EAAK0e,KACvCtoB,EAAMmpB,UAAUpjB,OAAOzE,EAAG,GAC1BA,OAINsI,EAAK0e,GAAMlmB,OACP2Y,EAAe0B,GAAGvZ,GACpBA,EAAQqlB,KAAKd,EAAY,MACI,GAApBvkB,EAAQ2B,UACjB3B,EAAQmmB,gBAAgB5B,SAiB9B3M,GACF5F,MAAO,SAAUhS,EAAS2X,EAASyO,GAGjC,QAASnrB,GAAKwG,GACZuR,aAAaN,GACbiF,EAAQlW,GAGV,QAAS4kB,KACF3T,IACHA,EAAUpM,WAAWrL,EAAM,IAT/B,GAAIyX,EAaAuK,GAAQC,GAAK,IACfkJ,EAAU,iBAAkB,SAAU3kB,GACC,UAAjCA,EAAE+T,cAAcrB,cAClBlZ,EAAKwG,KAIS,GAAdwb,EAAQC,KACVkJ,EAAU,QAASnrB,GACnBmrB,EAAU,UAAWnrB,IAEnBgiB,EAAQC,IAAM,IAChBoJ,EAA6BtmB,EAAS/E,GACtCmrB,EAAU,UAAWC,MAGvBD,EAAU,QAASnrB,GAEfgiB,EAAQ6H,OAAS,GAAsC,YAAjC9kB,EAAQ8X,QAAQjM,eACxCua,EAAU,UAAWC,GACrBD,EAAU,QAASC,GACnBD,EAAU,MAAOC,IACRpJ,EAAQ0H,MAAQ,GACzByB,EAAU,UAAWC,GACZpJ,EAAQ+H,QAAU,IAC3BoB,EAAU,kBAAmBnrB,GAC7BmrB,EAAU,WAAYnrB,GACtBmrB,EAAU,OAAQnrB,OAMtBqrB,EAA+B,WAGjC,QAASC,GAAuB9kB,GAC9B,GAAIzB,GAAU3F,KAAKmsB,cACf7O,EAAU3X,GAAWga,EAAatT,KAAK1G,EAAS,kBAChD2X,IACFA,EAAQlW,GANZ,GAAIglB,IAAe,CAUnB,OAAO,UAAUzmB,EAAS2X,GACnB8O,IACH5Q,EAAY7V,EAAQ8jB,cAAe,kBAAmByC,GACtDE,GAAe,GAEjBzM,EAAaO,kBAAkBva,GAAS0mB,gBAAkB/O,MAK1D8N,EAAM5qB,EAAO4qB,KACfkB,eACE3U,OAAO,EACP4U,UAAU,EACVC,QAAQ,GAGVC,YACEC,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVC,MAAM,EAGNC,OAAO,EACPzT,MAAM,EACN0T,UAAU,EACVC,kBAAkB,EAClBC,OAAO,EACPC,OAAO,EACP3J,QAAQ,EACR3S,OAAO,EACPuc,QAAQ,EACRC,KAAK,EACLC,MAAM,EACNC,KAAK,EACLC,MAAM,GAGRC,OACEC,OAAO,EACPC,SAAS,EACTjrB,OAAO,EACPkrB,SAAS,EACTC,UAAU,EACVltB,WAAW,EACXmtB,SAAS,GAGXC,SACEL,MAAO,UACPC,QAAS,YACTE,SAAU,YAGZG,SACErtB,UAAW,QACXmtB,QAAS,OAGXG,SAAU,SAAUroB,EAASjF,GACvBiF,GACFqZ,EAAS,MAAOrZ,EAASjF,IAI7ButB,YAAa,SAAUtoB,EAASjF,GAC1BiF,GACFqZ,EAAS,SAAUrZ,EAASjF,IAIhC0b,KAAM,SAAUzW,EAASyW,GACvB,GAAIzW,EAEF,GADAyW,EAAOA,EAAKzb,WACY,GAApBgF,EAAQ2B,SACV8jB,EAAI8C,QAAQ9R,KAAKzW,EAASyW,OACrB,IAAIwG,EAAQC,GAAK,GAAI,CAC1B,KAAOld,EAAQuX,YACbvX,EAAQ8a,YAAYzgB,KAAKmuB,SAASjR,WAEpCvX,GAAQwX,YAAYhB,EAAeC,QAEnCzW,GAAQqX,UAAYZ,GAK1BgS,IAAK,SAAUzoB,EAAS9D,EAAMY,GAEvBkD,GAAY9D,IAIL,WAARA,EACFwsB,EAAUC,cAAc3oB,EAAkB,QAATlD,GAAkB,GAAQ,GAE3DkD,EAAQiZ,MAAM/c,GAAQY,IAI1B4a,GAAI,SAAU1X,EAAS8V,EAAW6B,GAC5B3X,GACF0X,EAAG1X,EAAS8V,EAAW6B,IAI3BuI,IAAK,aAIL0I,WAAY,SAAU5oB,EAAS6oB,GACzB7oB,GAAW6oB,GACbpD,EAAIJ,KAAKrlB,EAAS6oB,EAAe,OAIrCxD,KAAM,SAAUrlB,EAAS6oB,EAAeC,GACtC,GAAIC,GAAatD,EAAIoC,MAAMgB,EAG3B,OAFAA,GAAgBpD,EAAI0C,QAAQU,EAAchd,gBAAkBgd,EAEvDhuB,EAAO0C,KAAKyrB,eACfnuB,EAAO0C,KAAKyrB,cAAchpB,UAAYA,GACtCnF,EAAO0C,KAAKyrB,cAAcH,eAAiBA,IAC1C7oB,EAHH,OAOwB,GAApBA,EAAQ2B,aACV8jB,GAAI8C,QAAQlD,KAAKrlB,EAAS6oB,EAAeC,IAItB,WAAjBD,IAMAC,EALoB,WAAlBA,GACuB,gBAAlBA,IACyB,SAAhC9oB,EAAQklB,aAAa,SACrB4D,GAAkB9oB,EAAQlD,OAAiC,MAAxBkD,EAAQoC,cAAiD,KAAzBpC,EAAQoC,cAE1D,IAEE0mB,GAIE,IAArBrrB,UAAUnC,OACLytB,EAAa/oB,EAAQ6oB,GAAiB7oB,EAAQklB,aAAa2D,QACvC,MAAlBC,EACY,SAAjBD,GAA6D,UAAjC7oB,EAAQ8X,QAAQjM,eAC9Cid,EAAiBta,EAAK3T,EAAOqF,QAAQ4oB,IACrCjuB,EAAO2D,KAAKwB,EAAQipB,SAAU,SAAUC,GACtCA,EAAMC,WAAaL,EAAeI,EAAMpsB,UAGtCisB,EACF/oB,EAAQ6oB,GAAiBC,EAEzB9oB,EAAQslB,aAAauD,EAAeC,GAIpCC,EACmB,SAAjBF,GAA6D,UAAjC7oB,EAAQ8X,QAAQjM,cAC9C7L,EAAQopB,cAAgB,GACfppB,EAAQ6oB,KACjB7oB,EAAQ6oB,GAAiB,IAG3B7oB,EAAQmmB,gBAAgB0C,MAK9BN,SACE9R,KAAM,SAAUzW,EAASyW,GAWvB,IANA,GAGII,GAHAwS,EAAiBrpB,EACjBya,EAAa4O,EAAe5O,WAC5B6O,EAAiBD,EAAe3L,YAEhC9N,EAAQ,EAEL0Z,IAA8C,GAA3BA,EAAe3nB,UAAgE,IAA/C2nB,EAAenN,UAAUlP,QAAQ,aACzF2C,IACAiH,EAAOyS,EAAe5L,YACtBjD,EAAWK,YAAYwO,GACvBA,EAAiBzS,CAKnB,OAFA4D,GAAW8O,aAAa/S,EAAeC,GAAO4S,EAAe3L,aAEtD9N,GAGTyV,KAAM,SAAUrlB,EAAS6oB,EAAeC,GACtC,GAAI9oB,GAAW6oB,GAAiBtE,GAAcuE,EAAgB,CAC5D,GAAIO,GAAiBrpB,EAEjBwpB,EAAaxpB,EAAQ2d,WAGzB,OAFA0L,GAAelN,UAAY,IAAM2M,EAAiB,IAAMO,EAAelN,UAAUzb,QAAQkQ,EAAY,IAAM,IAC3G4Y,EAAWrN,UAAY,IAAM2M,EAAiB,IAAMU,EAAWrN,UAAUzb,QAAQkQ,EAAY,IAAM,IAC5FvW,KAET,MAAOA,SAIPovB,KAGFtJ,EAAW,WACb,GAAIuJ,KAEJ,QACEtJ,eAAgB,WACdsJ,EAAM/tB,UAGR2kB,cAAe,WACb,MAAOoJ,GAAM1tB,OAGf2tB,mBAAoB,WAClB,MAAOD,GAAMA,EAAMpuB,OAAS,IAG9BsuB,mBAAoB,SAAUC,GAC5B,GAAIhE,GAAc6D,EAAMA,EAAMpuB,OAAS,GACnCwuB,GAAgB,CAEhBjE,KACFhrB,EAAO2D,KAAKqnB,EAAa,SAAUpG,GACjC,MAAIA,KAAeoK,GACjBC,GAAgB,GACT,GAFT,SAKGA,GACHjE,EAAYlqB,KAAKkuB,SAOvB7kB,GACF+kB,KAAM,EACNC,UAAW,EAEXxM,OAAQ,SAAU0J,EAAM2B,EAAe7oB,GAQrC,IAPA,GAGIse,GACArM,EACA/J,EALAnL,EAAQ,GACRmV,EAAW,EACXrW,KAKGqrB,EAAK5rB,SAAWyB,GACrBuhB,EAAY4I,EAAKzmB,OAAO1D,GAEP,KAAbuhB,GAA8C,KAA1B4I,EAAKzmB,OAAO1D,EAAQ,GAC1CkV,EAAalV,EAAQ,EACC,KAAbuhB,GAA8C,KAA1B4I,EAAKzmB,OAAO1D,EAAQ,KAC7CkV,IACF/J,EAAQgf,EAAKnW,UAAUkB,EAAYlV,GAC9B8rB,IACH3gB,EAAQA,EACLxH,QAAQ,SAAU,KAClBA,QAAQ,UAAW,KACnBA,QAAQ,SAAU,KAClBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,MAGtB4d,EAAY4I,EAAKnW,UAAUmB,EAAUD,EAAa,GAC9CqM,GACFziB,EAAOF,KAAK2iB,GAGdziB,EAAOF,MACLiL,WAAYsB,EACZ2gB,cAAeA,IAGjB3W,EAAWnV,EAAQ,GAErBkV,EAAa,EAajB,OATAqM,GAAY4I,EAAKnW,UAAUmB,GACvBoM,GACFziB,EAAOF,KAAK2iB,GAGdziB,EAAOqrB,KAAOA,EACdrrB,EAAOgtB,cAAgBA,EACvBhtB,EAAOmE,QAAUA,EACjBnE,EAAOgE,cAAe,EACfqI,EAAQrM,EAAS,MAG1BouB,SAAU,SAAUtiB,EAASoS,EAAanT,EAAYhI,GACpD,GAGIsrB,GAHAptB,EAAQ,GACRxB,EAASsL,EAAWtL,OACpByB,EAAQ,EAGZ,KAAK4K,EACH,MAAOf,GAAWsgB,IAGpB,IAAc,GAAV5rB,EACFwB,EAAQkI,EAAWmlB,QAAQxiB,EAASoS,EAAanT,EAAW,GAAIA,EAAYhI,OAE5E,QAAS7B,EAAQzB,GACf4uB,EAAQtjB,EAAW7J,GAEjBD,GADkB,gBAATotB,GACAA,EAEAllB,EAAWmlB,QAAQxiB,EAASoS,EAAamQ,EAAOtjB,EAAYhI,EAO3E,OAFAgI,GAAWwjB,WAAattB,EAEjBA,GAGTqtB,QAAS,SAAUxiB,EAASoS,EAAasQ,EAAgBC,EAAkB1rB,GACzE,GAEI2rB,GACAC,EACA3E,EACAhqB,EACAiB,EACAV,EAPAwK,EAAayjB,EAAezjB,WAC5BiiB,EAAgBwB,EAAexB,aAUnCzsB,GAAOqtB,EAAoB7iB,GAAc6iB,EAAoB7iB,IAC3D,GAAI3B,UAAS,IAAK,+BAAiC2B,EAAa,MAElEuZ,EAASC,gBAGP,KACEtjB,EAAQV,EAAKuL,GACb,MAAO8iB,GACP5vB,EAAOykB,MAAMoL,eAAe9jB,EAAY0jB,EAAiBtqB,SAyC7D,MArCAlD,GAAQV,EAAKuL,GAEb4iB,EAAe1vB,EAAO0vB,aAAaztB,GACnCjB,EAAS0uB,EAAeztB,IAAUA,EAClCjB,EAAmB,MAAVA,EAAiB,GAAKA,EAAOb,WACtCa,EAASwa,EAAYxa,GAErBgqB,EAAc1F,EAASG,gBAEnB1hB,GAAQoG,EAAWglB,YAAcO,GAAgB1E,EAAYvqB,UAC1DutB,IACH9O,EAAcC,EAAaO,qBAEzBR,IACFA,EAAYiM,UAAW,EAEvBwE,GACElvB,OAAQO,EAAOP,OACf+pB,KAAMwD,EACNlhB,QAASA,EACTue,UAAWnM,EAAYqL,GACvBxe,WAAYA,EACZ+jB,OAAQL,GAGVzvB,EAAO2D,KAAKqnB,EAAa,SAAUpG,GAC5BA,EAAWmL,gBAAgB7Q,EAAYqL,MAC1C3F,EAAWmL,gBAAgB7Q,EAAYqL,KAAM,EAC7C3F,EAAWoL,aAAalvB,KAAK6uB,OAI9B3B,IACHhtB,EAAS,QAAUke,EAAYqL,GAAK,cAAgBvpB,IAIjDA,GA8BXhB,GAAOgd,eAAiBhd,EAAOmE,QAAQ6Y,GACrCC,QAAS,SAAUA,GACjB,MAAIA,IACFzd,KAAK4d,SAAWH,EACTzd,MAEFA,KAAK4d,UAGdxB,KAAM,SAAUA,GACd,MAAIhZ,WAAUnC,OAAS,GACrBmb,EAAe,MAARA,EAAe,GAAKA,EACvBpc,KAAKye,OACHze,KAAKye,OAAOrC,OAASA,IACvBpc,KAAKye,OAAOrC,KAAOA,EACnBgP,EAAIhP,KAAKpc,KAAK0e,IAAKtC,KAGrBpc,KAAKke,WAAa9B,EAClBgP,EAAIhP,KAAKpc,KAAK0e,IAAKtC,IAErBpc,KAAK+d,aACE/d,MAEFA,KAAKke,YAAc,IAG5B2O,KAAM,SAAUA,GACd,MAAIzpB,WAAUnC,OAAS,GACT,MAAR4rB,IACFA,EAAO7Q,EAAY6Q,GACnB7sB,KAAKoc,KAAKyQ,IAEL7sB,MAEFA,KAAKoc,QAGdjT,OAAQ,WACN,MAAOnJ,MAAKsJ,SAGdslB,SAAU,SAAUnsB,GAClB,MAAqB,gBAAVA,GACFzC,KAAK+d,UAAUtb,GAEjBzC,KAAK+d,WAWdiN,KAAM,SAAUwD,EAAeC,GAC7B,GACInT,GADAmV,EAAQzwB,IAGZ,IAA4B,gBAAjBwuB,GAA2B,CACpC,GAAI/Q,GAAUzd,KAAK4d,SACfrZ,EAAOvE,KAAK6d,YAAYtZ,KACxBmsB,EAAoBjC,EACpB/O,EAAcC,EAAatT,KAAKrM,MAChCyC,EAAQzC,KAAKmf,SAAS,QAgB1B,IAdAqP,EAAgBhuB,EAAOiF,iBAAiB+oB,GACxCA,EAAgBpD,EAAI2C,QAAQS,IAAkBA,EAC9CC,EAAiBjuB,EAAOiF,iBAAiBgpB,GAErCjuB,EAAO0vB,aAAaQ,IAAuC,SAAjBlC,GAA4BpD,EAAIkB,cAAc7O,MAAclZ,GAAQ6mB,EAAIqB,WAAWloB,KAC/Hmb,EAAYqM,UAAuB,UAAXtO,EAAsB,SAAW,QACzDiC,EAAYiR,gBAAkBD,IACrBlwB,EAAO0vB,aAAaQ,IACZ,WAAjBlC,GAAuC,YAARjqB,GAA8B,SAARA,IAErDmb,EAAYqM,UAAY,QACxBrM,EAAYiR,gBAAkBD,GAGR,GAApBttB,UAAUnC,OAEZ,MADAqa,GAActb,KAAKmf,SAASqP,GACL3pB,SAAhByW,EAA4B,KAAOA,CAGvB,YAAjBkT,GAAgD,MAAlBC,GAA2BzuB,KAAK4wB,MAStC,YAAjBpC,IACTC,EAAiBA,EAAiB,WAAa,MAL7CA,EAJ2B,SAAzBzuB,KAAK6d,YAAYtZ,MACM,gBAAlBkqB,IACPhsB,GAASgsB,GAA2B,MAAThsB,EAEV,KAEAgsB,EAAiB,UAAY,KAMnC,YAAXhR,GAA0C,SAAjB+Q,GAA6BxuB,KAAK0e,IAEnC,SAAjB8P,GAAuC,UAAX/Q,GACrCzd,KAAK6wB,QAAU1c,EAAK3T,EAAOqF,QAAQ4oB,IACnCrD,EAAIJ,KAAKhrB,KAAK0e,IAAK8P,EAAeC,KAElCzuB,KAAKie,iBAAkB,EACnBje,KAAKye,OACHze,KAAKye,OAAOc,WAAWiP,KAAmBC,IAC5CzuB,KAAKye,OAAOc,WAAWiP,GAAiBC,EACxCrD,EAAIJ,KAAKhrB,KAAK0e,IAAK8P,EAAeC,KAGpCzuB,KAAK6d,YAAY2Q,GAAiBC,EAClCrD,EAAIJ,KAAKhrB,KAAK0e,IAAK8P,EAAeC,KAbpCzuB,KAAKoc,KAAKqS,OAgBHjuB,GAAOyD,cAAcuqB,IAC9BhuB,EAAO2D,KAAKqqB,EAAe,SAAUsC,EAAKrvB,GACxCgvB,EAAMzF,KAAKvpB,EAAKqvB,IAIpB,OAAO9wB,OAGTuuB,WAAY,SAAUC,GAGpB,MAFAxuB,MAAK6d,YAAY2Q,GAAiB,KAClCpD,EAAImD,WAAWvuB,KAAK0e,IAAK8P,GAClBxuB,MAGTouB,IAAK,SAAUtU,EAAcrX,GAC3B,GAAIguB,GAAQzwB,IAEZ,IAA2B,gBAAhB8Z,GAA0B,CAInC,GAHAA,EAAetZ,EAAO+E,OAAOuU,GAC7BrX,EAAQjC,EAAO+E,OAAO9C,IAEjBqX,EACH,MAOF,IAJAA,EAAeA,EAAanZ,WAAW0F,QAAQ,OAAQ,SAAUwH,GAC/D,MAAOA,GAAMzH,OAAO,GAAG2qB,gBAGA,IAArB3tB,UAAUnC,OAEZ,MADAwB,GAAQzC,KAAKgxB,QAAQlX,GACJjV,SAAVpC,EAAsB,KAAOA,CAGlB,YAAhBqX,IACFrX,EAAiB,QAATA,IAAqBA,GAAmB,KAAVA,EAAgB,OAAS,IAGjEzC,KAAKse,YAAa,EACbd,EAAeyT,WAAWnX,KAC7BrX,EAAQjC,EAAOuF,OAAOtD,IAEpBzC,KAAKye,OACHze,KAAKye,OAAOG,MAAM9E,KAAkBrX,IACtCzC,KAAKye,OAAOG,MAAM9E,GAAgBrX,EAClC2oB,EAAIgD,IAAIpuB,KAAK0e,IAAK5E,EAAcrX,KAGlCzC,KAAKue,OAAOzE,GAAgBrX,EAC5B2oB,EAAIgD,IAAIpuB,KAAK0e,IAAK5E,EAAcrX;KAEzBjC,GAAOyD,cAAc6V,IAC9BtZ,EAAO2D,KAAK2V,EAAc,SAAUgX,EAAKrvB,GACvCgvB,EAAMrC,IAAI3sB,EAAKqvB,IAInB,OAAO9wB,OAGTkxB,SAAU,SAAUvrB,EAASjD,GAC3B,GACI2Z,GADAuS,EAAW5uB,KAAKmxB,WAAanxB,KAAK+d,SAsBtC,OAnBIpY,KACFA,EAAQ2D,QAAUtJ,KACdA,KAAKyiB,eAAiBziB,KAAKwiB,MAC7B7c,EAAQ6c,OAAQ,EACPxiB,KAAK0e,MACdrC,EAAWF,EAAexW,EAAQyrB,OAAO5wB,EAAO6wB,SAASrxB,QACzD2F,EAAQ+Y,IAAMrC,EAASwD,WAAW,GACb,gBAAVnd,GACT1C,KAAK0e,IAAIwQ,aAAa7S,EAAUrc,KAAK0e,IAAImB,WAAWnd,IAEpD1C,KAAK0e,IAAIvB,YAAYd,IAGJ,gBAAV3Z,GACTksB,EAASpmB,OAAO9F,EAAO,EAAGiD,GAE1BipB,EAASttB,KAAKqE,IAGX3F,MAGTguB,SAAU,SAAUttB,GAGlB,MAFAse,GAAS,MAAOhf,KAAMU,GACtB0qB,EAAI4C,SAAShuB,KAAK0e,IAAKhe,GAChBV,MAGTiuB,YAAa,SAAUvtB,GAGrB,MAFAse,GAAS,SAAUhf,KAAMU,GACzB0qB,EAAI6C,YAAYjuB,KAAK0e,IAAKhe,GACnBV,MAGTsxB,YAAa,SAAU5wB,EAAW6wB,GAC5BA,KAAc,EAChBvxB,KAAKiuB,YAAYvtB,GAEjBV,KAAKguB,SAASttB,IAIlBwiB,SAAU,SAAUxiB,GAClB,MAAgE,IAAzDob,EAAc9b,KAAK6d,YAAYuB,GAAY1e,IAGpD8wB,eAAgB,WACd,GAAIpV,EAWJ,OATAA,GAAO,IAAMpc,KAAK4d,SACd5d,KAAKie,kBACP7B,GAAQpc,KAAKyxB,qBAEXzxB,KAAKse,aACPlC,GAAQuC,EAAuB3e,KAAKue,OAAQve,KAAKye,SAEnDrC,GAAQpc,KAAKge,eAAiB,MAAQ,KAKxC0T,aAAc,WACZ,MAAI1xB,MAAKge,eACA,GAEF,KAAOhe,KAAK4d,SAAW,KAGhCwT,OAAQ,SAAUC,EAAUM,GAC1B,GAAIvV,GAAO,GACPwV,EAAY,GACZ5P,EAAchiB,KAAK0e,GAyCvB,OAvCkB7Z,UAAd8sB,IACF3xB,KAAKye,QACHc,cACAX,SACAxC,KAAM,KACN7R,gBAEGvK,KAAKwe,UACRxe,KAAKwe,YAEPxe,KAAKwe,QAAQmT,GAAa3xB,KAAKye,QAGjCze,KAAK0e,IAAM7Z,OAEX7E,KAAK6xB,SAASR,GAEdrxB,KAAK0e,IAAMsD,EAEPhiB,KAAKme,aAAeX,EAAeY,WAAW0T,OAC5C9xB,KAAKme,aAAeX,EAAeY,WAAW2T,cAE9CH,EADE5xB,KAAKye,QAA+B,OAArBze,KAAKye,OAAOrC,KACjBpc,KAAKye,OAAOrC,KACI,MAAnBpc,KAAKke,WACFle,KAAKke,WAELle,KAAKgyB,eAAeX,EAAUM,IAI9CvV,GAAQpc,KAAKwxB,iBAEbpV,GAAQwV,EAERxV,GAAQpc,KAAK0xB,gBAGf1xB,KAAKye,OAAS,KAEPrC,GAGT4V,eAAgB,SAAUX,EAAUM,GAQlC,IAPA,GAII9C,GACApsB,EALA2Z,EAAO,GACPwS,EAAW5uB,KAAKmxB,WAAanxB,KAAK+d,UAClC9c,EAAS2tB,EAAS3tB,OAClByB,EAAQ,KAIHA,EAAQzB,GACf4tB,EAAQD,EAASlsB,GACG,gBAATmsB,GACTzS,GAAQyS,EACCrR,EAAe0B,GAAG2P,IAC3BA,EAAMrM,MAAQqM,EAAMrM,OAASxiB,KAAKwiB,MAClCpG,GAAQyS,EAAMuC,OAAOC,EAAUM,IACtBN,GACT5uB,EAAQkI,EAAWilB,SAASyB,EAASY,SAAU,KAAMpD,GACjD7uB,KAAKye,SACPze,KAAKye,OAAOlU,YAAY7H,GAASD,GAEnC2Z,GAAQ3Z,GAGN2Z,IADGpc,KAAKwiB,OAASqM,EAAMkB,WACflB,EAAMkB,WAENplB,EAAWilB,SAAS,KAAM,KAAMf,EAK9C,OAAOzS,IAGT8V,KAAM,SAAUb,EAAUM,EAAWhsB,GAC/BgsB,IACF3xB,KAAKye,OAASze,KAAKwe,QAAQmT,GAC3B3xB,KAAK0e,IAAM/Y,EACX3F,KAAKwiB,OAAQ,EACbxiB,KAAKmyB,OAAQ,GAGfnyB,KAAK6xB,SAASR,GAEdrxB,KAAKwxB,iBAEAxxB,KAAKke,YAAele,KAAKyiB,eAAiBziB,KAAKme,aAAeX,EAAeY,WAAW0T,MAC3F9xB,KAAKoyB,aAAaf,EAAUM,GAG9B3xB,KAAK0xB,eAEDC,IACF3xB,KAAKye,OAAS,KACdze,KAAK0e,IAAM7Z,OACX7E,KAAKwiB,OAAQ,EACbxiB,KAAKmyB,OAAQ,IAIjBC,aAAc,SAAUf,EAAUM,EAAWU,GAU3C,IATA,GAKIC,GACA/lB,EACAsiB,EAPAD,EAAW5uB,KAAKmxB,WAAanxB,KAAK+d,UAClC9c,EAAS2tB,EAAS3tB,OAClB4d,EAAQ7e,KAAKye,OACb9Y,EAA+B,GAArB3F,KAAK0e,IAAIpX,SAAgBtH,KAAK0e,IAAI2E,YAAcrjB,KAAK0e,IAAImB,WAAWwS,GAAU,GACxF3vB,EAAQ,KAKHA,EAAQzB,GACf4tB,EAAQD,EAASlsB,GACbmsB,EAAMrpB,aACJ6rB,IACF9kB,EAAa5B,EAAWilB,SAASyB,EAASY,SAAU,KAAMpD,EAAOhQ,EAAQlU,EAAWglB,UAAYhlB,EAAW+kB,QAEtG7Q,GAAUA,GAASA,EAAMtU,YAAY7H,KAAW6J,KAC/CsS,GACFA,EAAMtU,YAAY7H,GAAS6J,EACvB5G,GACsB,GAApBA,EAAQ2B,WACV3B,EAAUA,EAAQ0d,aAEpB1d,EAAQmc,UAAYvV,EACpB5G,EAAUA,EAAQ0d,aAElBrjB,KAAK0e,IAAI6T,YAAchmB,IAGzBvM,KAAK0e,IAAIwQ,aAAa/S,EAAe5P,GAAa5G,GAClD2sB,EAAqB3sB,EACrBA,EAAUA,EAAQ0d,YAClBrjB,KAAK0e,IAAI+B,YAAY6R,MAIF,gBAATzD,IAAqBA,EAAM1Q,aAAeX,EAAeY,WAAW0T,MACpFjD,EAAMrM,MAAQqM,EAAMrM,OAASxiB,KAAKwiB,MAElCqM,EAAMqD,KAAKb,EAAUM,EAAWhsB,GAEhCA,EAAUA,EAAQ0d,aAElB1d,EAAUA,EAAQ0d,aAKxBmP,eAAgB,SAAU7vB,EAAY8vB,EAAapB,EAAU1N,GAW3D,IAVA,GAQIrW,GARAolB,EAAW1yB,KAAKmxB,UAChBtC,EAAQ6D,EAAS,GACjBC,EAAiC,IAApBD,EAASzxB,QAAgBuc,EAAe0B,GAAG2P,GACxDhP,EAAa8D,EAAW9D,WACxB8R,EAAYN,EAASuB,eACrBC,EAAgBxB,EAASY,SAASa,OAClCC,EAAc/yB,KAAKgzB,UACnBtwB,EAAQ,KAGHA,EAAQ+vB,GACfpB,EAASY,SAAW3kB,EAAUulB,EAAcnwB,GAC5C4K,EAAQ2lB,MAAQtwB,EAAWD,GAC3B4K,EAAQ4lB,QAAU5lB,EAAQ6lB,eAAeF,MACrCN,EACF9D,EAAMqD,KAAKb,EAAUM,EAAYjvB,EAAOmd,EAAWnd,IAEnD1C,KAAKoyB,aAAaf,EAAUM,EAAYjvB,EAAOA,EAAQqwB,EAI3D1B,GAAS+B,cAGXJ,QAAS,WAKP,IAJA,GAAIN,GAAW1yB,KAAKmxB,UAChBzuB,EAAQ,GACRzB,EAAS,IAEJyB,EAAQgwB,EAASzxB,QACpByxB,EAAShwB,GAAOyb,cAAgBX,EAAeY,WAAW0T,OAC5D7wB,GAAU,EAId,OAAOA,IAGTke,SAAU,SAAUtd,GAClB,GAAIgd,GAAQ7e,KAAKye,MACjB,OAAOI,IAAoCha,SAA3Bga,EAAMU,WAAW1d,GAAsBgd,EAAMU,WAAW1d,GAAQ7B,KAAK6d,YAAYhc,IAGnGmvB,QAAS,SAAUnvB,GACjB,GAAIgd,GAAQ7e,KAAKye,MACjB,OAAOI,IAA+Bha,SAAtBga,EAAMD,MAAM/c,GAAsBgd,EAAMD,MAAM/c,GAAQ7B,KAAKue,OAAO1c,IAGpFgwB,SAAU,SAAUR,GAClB,GAAKA,IAIDrxB,KAAKwiB,QACPxiB,KAAK0e,IAAM7Z,QAGT7E,KAAKme,aAAeX,EAAeY,WAAW0T,MAAM,CACtD,GACIzlB,GADA0e,EAAK/qB,KAAK6d,YAAYqM,KAGrBa,GAAMsG,EAASgC,eAClB1T,EAAaO,kBAAkBlgB,MAC/BqxB,EAASiC,sBAAsBtzB,MAC/B+qB,EAAK/qB,KAAK6d,YAAYqM,GACtB7d,EAAOsT,EAAa8L,KAAKV,IAGvB/qB,KAAK8d,sBAAsB7c,QAC7BjB,KAAKuzB,6BAA6BlC,EAASY,UAG7CZ,EAASmC,aAAaxzB,KAAMA,KAAK6d,YAAYuF,IAEzC/W,IAASA,EAAKsf,UAChBhM,EAAaa,MAAMxgB,QAKzByxB,kBAAmB,WACjB,GAGIhwB,GACAgB,EAJA8c,EAAavf,KAAK6d,YAClBgB,EAAQ7e,KAAKye,OACbrC,EAAO,EAIU,WAAjBpc,KAAK4d,UAAwB5d,KAAKsJ,QAAQunB,UACxChS,EACFA,EAAMU,WAAWuP,SAAW9uB,KAAKsJ,QAAQunB,QAAQhS,EAAMU,WAAW9c,OAAS,WAAa,KAExF8c,EAAWuP,SAAW9uB,KAAKsJ,QAAQunB,QAAQtR,EAAW9c,OAAS,WAAa,KAIhF,KAAKhB,IAAO8d,GACV9c,EAAQ8c,EAAW9d,GACfod,GAAS9b,EAAOnC,KAAKie,EAAMU,WAAY9d,KAG7B,KAAVgB,EACF2Z,GAAQ,IAAM3a,EACI,MAATgB,IACT2Z,GAAQ,IAAM3a,EAAM,KAAOgB,EAAQ,KAIvC,IAAIoc,EACF,IAAKpd,IAAOod,GAAMU,WAChB9c,EAAQoc,EAAMU,WAAW9d,GACX,KAAVgB,EACF2Z,GAAQ,IAAM3a,EACI,MAATgB,IACT2Z,GAAQ,IAAM3a,EAAM,KAAOgB,EAAQ,IAKzC,OAAO2Z,IAGT0G,4BAA6B,SAAUT,GACrC,GAGI9V,GAHAknB,EAAuBzzB,KAAK8d,sBAC5B4V,EAAS1zB,KAAK6d,YAAYqM,GAC1B/lB,EAAOnE,KAAKwiB,KAGhBhiB,GAAO2D,KAAKnE,KAAK6d,YAAa,SAAU4Q,EAAgBD,GAEpDjiB,GADGpI,GAAQke,GAAcA,EAAWqR,EAASlF,GAChC7jB,EAAWwY,OAAOd,EAAWqR,EAASlF,GAAgBA,GAEtD7jB,EAAWwY,OAAOsL,EAAgBD,GAE7CjiB,GACFknB,EAAqBnyB,KAAKiL,MAKhCgnB,6BAA8B,SAAUjmB,GAStC,IAAK,GAJDkhB,GACAjiB,EACA9J,EANA6oB,EAAYtrB,KAAK0e,KAAM,GAAQ,EAC/Ba,EAAavf,KAAKye,QAAUze,KAAKye,OAAOc,WACxCG,EAAcC,EAAa8L,KAAKlM,EAAaA,EAAW2K,GAAclqB,KAAK6d,YAAYqM,IACvF3f,EAAcvK,KAAK8d,sBAKd/Z,EAAI,EAAGA,EAAIwG,EAAYtJ,OAAQ8C,IACtCwI,EAAahC,EAAYxG,GACzBtB,EAAQkI,EAAWilB,SAAStiB,EAASoS,EAAanT,GAClDiiB,EAAgBjiB,EAAWiiB,eACtBjP,GAAcA,EAAWiP,KAAmB/rB,IAAW8c,KACtD+L,EACEtrB,KAAKye,OACPze,KAAKye,OAAOc,WAAWiP,GAAiB/rB,EAExCzC,KAAK6d,YAAY2Q,GAAiB/rB,EAGpC2oB,EAAIJ,KAAKhrB,KAAK0e,IAAK8P,EAAe/rB,OAO5C+a,EAAe0B,GAAK,SAAUzc,GAC5B,MAAOA,IAASA,EAAMib,cAAgBC,GAGxCH,EAAeY,YACbC,IAAK,EACL0T,YAAa,EACbD,KAAM,GAGRtU,EAAeyT,YACb0C,aAAe,EACfC,aAAe,EACfC,UAAY,EACZC,YAAc,EACdC,YAAc,EACdC,YAAc,EACdC,SAAW,EACXC,OAAS,EACTC,SAAW,EACXC,QAAU,EACVC,QAAU,EACVC,MAAQ,EA+CV,IAAIhV,IAA0B,CAC9B,IAAwB,mBAAbhD,UAA0B,CACnC,GAAI3W,GAAU2W,SAASG,cAAc,MACjC9W,GAAQ0Z,YACV1Z,EAAQ0Z,UAAUrU,IAAI,IAAK,KAC3BsU,EAA+C,OAArB3Z,EAAQjF,WAwDtC,GAAI2tB,IACFkG,OAAQ,SAAU9U,EAAe/c,EAAOmtB,GACtCntB,EAAQ8c,EAAeC,EAAe/c,EACtC,IACI8xB,GACAtX,EAFAuX,EAAqBhV,EAAcI,WAAWnd,EAIlDlC,GAAO2D,KAAK0rB,EAAO,SAAU6E,GAY3B,GAXAF,EAAmC,IAAjBE,EAAKptB,SAAiBotB,EAAK7U,WAAW5e,OAAS,EACjEic,EAAawX,EAAK7U,WAAa6U,EAAK7U,WAAW,GAAKhb,OAEhD4vB,EAEFhV,EAAcyP,aAAawF,EAAMD,GAGjChV,EAActC,YAAYuX,GAGxBF,EACF,KAAOA,GACLvU,EAAiB,MAAO/C,GACxBA,EAAaA,EAAWmG,YACxBmR,QAGFvU,GAAiB,MAAOyU,MAK9B7e,OAAQ,SAAU4J,EAAe/c,EAAO6S,GACtC,GACImf,GADA3wB,EAAI,CAKR,KAFArB,EAAQ8c,EAAeC,EAAe/c,GAE3B6S,EAAJxR,EAAWA,IAChB2wB,EAAOjV,EAAcI,WAAWnd,GAC5BgyB,GACEzU,EAAiB,SAAUyU,IAC7BhyB,KAMR4rB,cAAe,SAAU3oB,EAASgvB,GAC5BA,EACFtG,EAAUuG,KAAKjvB,GAEf0oB,EAAUwG,KAAKlvB,IAInBivB,KAAM,SAAUjvB,GACdsa,EAAiB,OAAQta,IAG3BkvB,KAAM,SAAUlvB,GACdsa,EAAiB,OAAQta,IA4J7BnF,GAAOmhB,eAAiBnhB,EAAOmE,QAAQ6Y,EAAgBmE,GACrD6P,eAAgB,WACd,GAAIkC,GAAS1zB,KAAKmf,SAAS+K,GACvB9N,EAAO,OAOX,OALIsX,KACFtX,GAAQsX,EAAS,KAEnBtX,GAAQpc,KAAK6hB,aAAaxb,QAAQkQ,EAAY,IAAM,QAKtDmb,aAAc,WACZ,GAAIgC,GAAS1zB,KAAKmf,SAAS+K,GACvB9N,EAAO,OAMX,OAJIsX,KACFtX,GAAQsX,EAAS,KAEnBtX,GAAQ,eAIVmX,6BAA8B/yB,EAAOkE,OAGvCid,EAAezC,GAAK,SAAUzc,GAC5B,MAAOkf,GAAexf,UAAUgD,cAAc1C,GAuHhD,IAAImhB,MA0GJY,GAASI,cAETJ,EAASriB,WACPyB,QAAS,WACP,MAAO5D,MAAKykB,UAGdqQ,UAAWjR,EAAe,cAE1BvW,QAASuW,EAAe,YAExBuP,WAAY,WACNpzB,KAAKiyB,WACPjyB,KAAKiyB,SAAWjyB,KAAKiyB,SAASkB,iBAIlCG,sBAAuB,SAAU3tB,GAC/B,GAAI0G,GAAOsT,EAAaO,kBAAkBva,EAC1C0G,GAAKglB,SAAWrxB,KAChBqM,EAAKiB,QAAUtN,KAAKiyB,UAEhBjyB,KAAK+0B,aAAgBpvB,EAAQ6c,QAAU7c,EAAQ2D,QAAQkZ,SACrD7c,EAAQ2D,UAAY3D,EAAQ6c,QAC9BnW,EAAOsT,EAAaO,kBAAkBva,EAAQ2D,SAC9C+C,EAAK2oB,gBAAkBh1B,KAAKiyB,UAG9BjyB,KAAK+0B,aAAc,EACnB1oB,EAAKsf,UAAW,IAIpBsJ,YAAa,SAAUC,GACrB,GAEIC,GAFA7nB,EAAUtN,KAAKiyB,SACfmD,EAAS9nB,EAAUA,EAAQ+nB,SAASxyB,MAAM,KAqB9C,OAlBA7C,MAAK+0B,aAAc,EAEfznB,GACF8nB,EAAOxf,QAAQtI,EAAQ2lB,OAGzBkC,GACElC,MAAOiC,EACPpU,MAAOxT,EAAUA,EAAQwT,MAAQoU,EACjChC,QAAS5lB,EAAUA,EAAQ2lB,MAAQ,KACnCoC,SAAU/nB,EAAU8nB,KACpBE,OAAQt1B,KAAKu1B,YAAc,KAC3BpC,eAAgB7lB,GAAW,MAE7B6nB,EAAWK,SAAWL,EACtBn1B,KAAKiyB,SAAWkD,EAChBn1B,KAAKy1B,gCAEEN,GAGTvC,aAAc,WAIZ,IAHA,GAAItlB,GAAUtN,KAAKiyB,SACfvvB,EAAQ,GAEL4K,GAAWA,EAAQgoB,QACxB5yB,EAAQ4K,EAAQgoB,OAAO3P,UAAY,IAAMjjB,EACzC4K,EAAUA,EAAQ6lB,cAGpB,OAAOzwB,IAGTgzB,cAAe,SAAUpoB,EAAShL,GAChC,GAAIqzB,GAAiB31B,KAAKiyB,QAC1BjyB,MAAKiyB,SAAW3kB,EAChBhL,IACAtC,KAAKiyB,SAAW0D,GAGlBC,YAAa,SAAU/zB,EAAMY,GAC3BzC,KAAK0kB,mBAAmB7iB,GAAQY,EAChCzC,KAAKy1B,iCAGPI,eAAgB,SAAUh0B,SACjB7B,MAAK0kB,mBAAmB7iB,IAGjC4zB,8BAA+B,WAC7B,GAEIh0B,GAFA6L,EAAUtN,KAAKiyB,SACf6D,EAAoB91B,KAAK0kB,kBAG7B,KAAKjjB,IAAOq0B,GACVxoB,EAAQ7L,GAAOq0B,EAAkBr0B,IAIrCs0B,oBAAqB,SAAUpwB,GAC7B,GAAIoe,GAAQvG,EAAe0B,GAAGvZ,GAAWA,EAAQkY,YAAYuF,GACrC,GAApBzd,EAAQ2B,SAAgB3B,EAAQklB,aAAazH,GAAiBzd,EAAQmc,UAAUpL,UAAU/Q,EAAQmc,UAAUlP,QAAQ,UAAY,GAAGvM,QAAQkQ,EAAY,GAEvJwN,IACF/jB,KAAKwzB,aAAa7tB,EAASoe,IAI/ByP,aAAc,SAAU7tB,EAASoe,GAC/B,GAAIjZ,GAAQ0Z,EAASI,WAAWb,IAAUY,EAAYZ,EAAOpe,EAE7D3F,MAAKg2B,eAAerwB,EAASmF,IAG/BkrB,eAAgB,SAAUrwB,EAAS8E,GAYjC,IAXA,GAGIoa,GACAoR,EACAjS,EACAO,EACA2R,EACA5oB,EACAvL,EATA2d,EAAcC,EAAatT,KAAK1G,GAChCwwB,EAAwB,EACxBpyB,EAAI,EASDA,EAAI0G,EAAQxJ,OAAQ8C,IAKzB,GAJAuJ,EAAUtN,KAAKiyB,SACfpN,EAASrkB,EAAOskB,QAAQra,EAAQ1G,GAAGlC,MACnC0iB,EAAa9Z,EAAQ1G,GAAGihB,OACxBiR,EAAqBpR,EAAOuR,cAAgBp2B,UACxCwd,EAAe0B,GAAGvZ,IAAakf,EAAOjkB,MAASikB,EAAOjE,aAAeiE,EAAOwR,SAAUxR,EAAOqC,MAAjG,CAYApB,EAASC,gBACT,KAAK,GAAIuQ,GAAI,EAAGA,EAAI/R,EAAWtjB,OAAQq1B,IAAK,CAC1CJ,EAAY3R,EAAW+R,GAGvBv0B,EAAOqtB,EAAoB8G,GAAa9G,EAAoB8G,IACxD,GAAItrB,UAAS,IAAK,+BAAiCsrB,EAAY,MAEnElS,IAGE,KACEA,EAAiBuS,SAAWx0B,EAAKuL,GACjC,MAAOlG,GACP5G,EAAOykB,MAAMuR,mBAAmB/rB,EAAQ1G,GAAImyB,EAAWvwB,GAoB3D,GAjBAqe,EAAiBuS,SAAWx0B,EAAKuL,GAEjC0W,EAAiBvhB,MAAQjC,EAAOiF,iBAAiBue,EAAiBuS,UAE9D1R,EAAO4R,kBACTzS,EAAiBkM,aAAe1vB,EAAO0vB,aAAalM,EAAiBuS,UACrEvS,EAAiB0S,mBAAqB5Q,EAASwJ,qBAAqBruB,OAASk1B,EAC7EA,EAAwBrQ,EAASwJ,qBAAqBruB,OACtDg1B,EAAmB30B,KAAK0iB,IAExBiS,EAAmB30B,KADVujB,EAAO8R,cACQ3S,EAAiBuS,SAEjBvS,EAAiBvhB,OAKvCoiB,IAAWrkB,EAAOskB,QAAQ,OAASD,IAAWrkB,EAAOskB,QAAQ8R,MAAO,CACtE,IAAM5S,EAAiBvhB,OAASoiB,IAAWrkB,EAAOskB,QAAQ,OACrDd,EAAiBvhB,OAASoiB,IAAWrkB,EAAOskB,QAAQ8R,MAAQ,CAC/D,IAAKrS,EAAW,GACd,KAEFvkB,MAAKwzB,aAAa7tB,EAAS4e,EAAW,GACtC,OAEFvkB,KAAKwzB,aAAa7tB,EAAS4e,EAAW,GACtC,QAKF,GAAIS,GAASiR,CAOf,IANMpR,EAAOuR,eACTpR,EAASxkB,EAAOqD,MAAMoyB,GAAoBpzB,MAAM,IAElDrC,EAAOykB,MAAM4R,WAAWpsB,EAAQ1G,GAAGlC,KAAMmjB,EAAQva,EAAQ1G,GAAI4B,GAG3D6X,EAAe0B,GAAGvZ,GAAU,CAC9B,GAAIgc,EAAezC,GAAGvZ,KAAakf,EAAOiS,iBAExC,QAGF,IAAIjS,EAAOjkB,KACLikB,EAAOjkB,QAAS,EAClB+E,EAAQ8E,EAAQ1G,GAAGlC,MAAMO,MAAMuD,EAASswB,IAExCA,EAAmBrgB,QAAQiP,EAAOzD,QAAU3W,EAAQ1G,GAAGlC,MACvD8D,EAAQkf,EAAOjkB,MAAMwB,MAAMuD,EAASswB,QAEjC,IAAIpR,EAAOjE,YACZiE,EAAOjE,WAAWxe,MAAMuD,EAASswB,MAAwB,EAAO,CAClEj2B,KAAK+2B,qBAAqBtsB,EAAQ1G,GAAI2b,EAAapS,EACnD,YAGC,IAAIuX,EAAOjkB,KAAM,CACtB,GAAI2qB,GAAU5L,EAAatT,KAAK1G,GAAS4lB,OACrCA,GAAQ/I,QACV+I,EAAU/N,EAAe,OACzB+N,EAAQ7M,IAAM/Y,EACd4lB,EAAQqF,OAAQ,GAEd/L,EAAOjkB,QAAS,EAClB2qB,EAAQ9gB,EAAQ1G,GAAGlC,MAAMO,MAAMmpB,EAAS0K,IAExCA,EAAmBrgB,QAAQiP,EAAOzD,QAAU3W,EAAQ1G,GAAGlC,MACvD0pB,EAAQ1G,EAAOjkB,MAAMwB,MAAMmpB,EAAS0K,QAE7BvW,IAAeA,EAAYkB,YAAciE,EAAOqC,MACzDrC,EAAOqC,MAAM9kB,MAAMuD,EAASswB,GACnBpR,EAAOwR,QAChBxR,EAAOwR,OAAOj0B,MAAMuD,EAASswB,EAG/Bj2B,MAAK+2B,qBAAqBtsB,EAAQ1G,GAAI2b,EAAapS,OAzGjDoS,GAAYiM,UAAW,EAClBjM,EAAYsX,UACftX,EAAYsX,WACZtX,EAAYuX,gBAETvX,EAAYuX,YAAYxsB,EAAQ1G,GAAGggB,SACrCrE,EAAYsX,QAAQ11B,KAAKmJ,EAAQ1G,IACjC2b,EAAYuX,YAAYxsB,EAAQ1G,GAAGggB,QAAS,IAsGrDgT,qBAAsB,SAAUlS,EAAQnF,EAAapS,GACnD,GAAIke,GAAc1F,EAASG,eAEvBvG,KACFA,EAAYiM,UAAW,EACvBnrB,EAAO2D,KAAKqnB,EAAa,SAAUpG,GAC5B1F,EAAY8L,YAAYpG,EAAW8R,OAASrS,EAAOd,SACtDrE,EAAY8L,YAAYpG,EAAW8R,OAASrS,EAAOd,OAASqB,EAC5DA,EAAWwG,UAAUtqB,MACnBuqB,UAAWnM,EAAYqL,GACvBjgB,OAAQ+Z,GACRvX,QAASA,SAOnB6pB,oCAAqC,SAAU5U,GAK7C,IAAK,GAJD0M,GACAvP,EACAjC,EAEK1Z,EAAI,EAAGA,EAAIwe,EAASthB,OAAQ8C,IAGnC,GAFAkrB,EAAiB1M,EAASxe,GAC1B0Z,GAAWwR,EAAexR,SAAW,IAAIjM,cACT,IAA5Byd,EAAe3nB,UAA6C,GAA3B2nB,EAAe3nB,SAAe,CAEjE,GADAoY,EAAcC,EAAatT,KAAK4iB,GACf,CAMf,GALAjvB,KAAKiyB,SAAWvS,EAAYpS,SAAWtN,KAAKiyB,SAC5CvS,EAAY0L,IAAM6D,EACdvP,EAAYsX,SACdh3B,KAAKg2B,eAAe/G,EAAgBvP,EAAYsX,SAE9CtX,EAAYqM,UAAW,CACzB,GAAItQ,GAAYiE,EAAY0X,UAAY1X,EAAYqM,SACpD1O,GAAG4R,EAAgBxT,EAAW4b,GAAe5b,IAE/CiE,EAAYkB,YAAa,EACzB5gB,KAAKiyB,SAAWvS,EAAYsV,iBAAmBh1B,KAAKiyB,SAEvC,UAAXxU,GAAkC,QAAXA,GACoC,KAA5D,IAAMwR,EAAevuB,UAAY,KAAKkS,QAAQ,YAE/C5S,KAAKm3B,oCAAoClI,EAAepP,YAK9D7f,KAAKiyB,SAAW,MAGlB9V,eAAgB,SAAUC,GACxB,GAAIC,GAAWF,EAAeC,EAG9B,OAFApc,MAAKm3B,oCAAoC9a,EAASwD,YAE3CxD,GAGTib,aAAc,SAAUhqB,GACtB,GAAI6nB,GAAa30B,EAAOqD,MAAMyJ,EAE9B,OADA6nB,GAAWK,SAAWL,EACfA,GAIX,IAAIkC,KACFE,OAAQ,SAAUnwB,GAChB,GAAItD,GAASsD,EAAEtD,QAAUsD,EAAEwhB,UAC3ByO,IAAeG,YAAY1zB,EAAQ6b,EAAatT,KAAKvI,GAAQ6sB,kBAG/D8G,MAAO,SAAUrwB,GACfiwB,GAAeE,OAAOnwB,IAOxBuQ,MAAO,SAAUvQ,GACf,GAAItD,GAASsD,EAAEtD,QAAUsD,EAAEwhB,UAC3ByO,IAAeG,YAAY1zB,EAAQ6b,EAAatT,KAAKvI,GAAQ6sB,kBAG/D+G,QAAS,SAAUtwB,GACjB,GAAItD,GAASsD,EAAEtD,QAAUsD,EAAEwhB,WACvB+O,EAAW7zB,EAAOrB,MAClBid,EAAcC,EAAatT,KAAKvI,EAEhC4b,IACFzT,WAAW,WACL0rB,GAAY7zB,EAAOrB,OACrB40B,GAAeG,YAAY1zB,EAAQ6b,EAAatT,KAAKvI,GAAQ6sB,oBAMrE6G,YAAa,SAAU7xB,EAASlD,GAC9B,GAAIgb,GAAU9X,EAAQ8X,QAAQjM,cAC1BjN,EAAOoB,EAAQklB,aAAa,OAEhC,IAAY,YAARtmB,EACF9B,EAAMkD,EAAQgoB,aACT,IAAe,UAAXlQ,GAAuB9X,EAAQklB,aAAa,YAAa,CAClE,GAAIxW,MACAujB,EAAkBjyB,EAAQiyB,eAC1BA,GACFp3B,EAAO2D,KAAKyzB,EAAiB,SAAUC,GACrCxjB,EAAO/S,KAAKu2B,EAAOhN,aAAa,YAGlCrqB,EAAO2D,KAAKwB,EAAQ/B,QAAS,SAAUi0B,GACjCA,EAAO/I,UACTza,EAAO/S,KAAKu2B,EAAOhN,aAAa,YAKtCpoB,EAAM4R,OAEN7T,GAAO0C,KAAKyrB,eACVhpB,QAASA,EACT6oB,cAAe,SAEjB/rB,EAAMkD,EAAQlD,OACdjC,EAAO0C,KAAKyrB,cAAgB9pB,QAsClCrE,GAAOgD,OAAOshB,GAiBZgT,QAmBAlB,SA+BAlE,UACE0D,cAAc,EACdO,eAAe,EAEf/V,WAAY,SAAUyQ,EAAUqB,EAAUjwB,GACxC,GACI2Z,GADAiG,EAAagP,EAASgC,WAG1BX,GAAWlyB,EAAOkF,QAAQgtB,GACtBlyB,EAAO6G,UAAUqrB,GACnBtW,EAAOsW,EAAS1V,WAEhBZ,EAAOE,SAASyb,eAAerF,GAE7BtW,EADEA,EACKA,EAAKY,UAEL0V,GAGPtW,IACE3Z,GACFjC,EAAOskB,QAAQ,QAAQlE,WAAWhgB,KAAKZ,KAAMqxB,EAAU5uB,EAAO,aAE3D4f,GAAeA,EAAW2V,WAAc3V,EAAW2V,UAAUrY,EAAaoL,GAAG/qB,SAChFA,KAAKoc,KAAKA,IACLpc,KAAKwiB,OAASxiB,KAAK0e,MACtB1e,KAAK+d,UAAYgE,EAAc/hB,KAAK0e,IAAImB,WAAW,GAAI7f,MACvDA,KAAKke,WAAa,UAkC5B+Z,QACE7B,cAAc,EAEdxV,WAAY,SAAUyQ,EAAUvX,EAAcoe,GAC5C,GAAIl4B,KAAKme,aAAeX,EAAeY,WAAW0T,KAAM,CACtD,GAAI6D,GAAiBtE,EAAS/jB,UAC1B6nB,EAAa9D,EAASiG,aAAa3B,GACnCjE,EAAe1xB,KAAK0xB,YAExBL,GAAS/jB,QAAQ6nB,GACjB9D,EAASuE,YAAY9b,EAAcoe,GAEnCl4B,KAAK0xB,aAAe,WAGlB,MAFAL,GAASwE,eAAe/b,GACxBuX,EAAS/jB,QAAQqoB,GACVjE,EAAa9wB,KAAKZ,UAmCjCm4B,QACE/B,cAAc,EACdO,eAAe,EAEf/V,WAAY,SAAUyQ,EAAU5uB,EAAOZ,GACrC,GAAI7B,KAAKme,aAAeX,EAAeY,WAAW0T,KAAM,CACtD,GAAIJ,GAAe1xB,KAAK0xB,YAEpB7vB,IACFwvB,EAASuE,YAAY/zB,EAAMY,GAE7B4uB,EAAS4D,YAAYxyB,GAErBzC,KAAK0xB,aAAe,WAKlB,MAJI7vB,IACFwvB,EAASwE,eAAeh0B,GAE1BwvB,EAAS+B,aACF1B,EAAa9wB,KAAKZ,UA6BjCmE,MACEiyB,cAAc,EAEdO,eAAe,EAEfG,kBAAkB,EAElBsB,eAAgB,SAAU/G,EAAU1rB,GAClC,GAMI1E,GACAo3B,EACAxJ,EARAD,EAAWjpB,EAAQoY,UACnBua,EAAU3yB,EAAQ4yB,SAClBC,EAAU7yB,EAAQ8yB,SAClB/1B,EAAQ,GACRg2B,EAAa,GACbC,EAAa,EAKjB,IAAIL,EAGF,IAFAr3B,EAASwP,KAAKC,IAAI4nB,EAAQr3B,OAAQu3B,EAAQv3B,UAEjCyB,EAAQzB,GACXq3B,EAAQ51B,KACVg2B,GAAcJ,EAAQ51B,GAAO0uB,OAAOC,IAElCmH,EAAQ91B,KACVi2B,GAAcH,EAAQ91B,GAAO0uB,OAAOC,QAOxC,KAHAiH,EAAU3yB,EAAQ4yB,YAClBC,EAAU7yB,EAAQ8yB,cAET/1B,EAAQksB,EAAS3tB,QACxB4tB,EAAQD,EAASlsB,GACbmsB,EAAMrpB,eAGU,gBAATqpB,IAMXA,EAAMrM,OAAQ,EACd6V,EAAWxJ,EAAMhR,YAAY,aACb,UAAZwa,GACFK,GAAc7J,EAAMuC,OAAOC,GAC3BiH,EAAQh3B,KAAKutB,GACbD,EAASpmB,OAAO9F,IAAS,IACJ,UAAZ21B,IACTM,GAAc9J,EAAMuC,OAAOC,GAC3BmH,EAAQl3B,KAAKutB,GACbD,EAASpmB,OAAO9F,IAAS,KAd2C,KAAhEmsB,EAAMxoB,QAAQkQ,EAAY,IAAIlQ,QAAQ,iBAAkB,KAC1DuoB,EAASpmB,OAAO9F,IAAS,GAkBjC,QACEk2B,OAAQF,EACRG,aAAcP,EAAQr3B,OACtB63B,OAAQH,EACRI,aAAcP,EAAQv3B,SAI1B2f,WAAY,SAAUyQ,EAAU1uB,GAC9B,GAGIq2B,GACAtZ,EACAuZ,EACAnG,EACA1W,EAPAuV,EAAYN,EAASuB,eACrBjtB,EAAU3F,KACV0C,EAAQ,CAOZ,IAAI1C,KAAKmyB,MAEP,WADAxsB,GAAQ6sB,eAAenB,EAAU1uB,EAAY3C,KAAK0e,IAQpD,IAJA1e,KAAKmxB,UAAYnxB,KAAKmxB,WAAanxB,KAAK+d,UAExC/d,KAAKyiB,eAAgB,EAEjB4O,EAASgC,cACX3T,EAAc2R,EAASgC,YAAY1T,EAAaoL,GAAG/qB,OACnDqxB,EAASgC,YAAY1T,EAAaoL,GAAG/qB,OAAS6E,OAC1C6a,GAAa,CACf,GAAIyK,GAAM7N,SAASG,cAAc,MACjC0N,GAAInN,UAAY0C,EAChB/Z,EAAQwrB,UAAYxrB,EAAQoY,UAAYgE,EAAcoI,EAAItK,WAAW,GAAIla,GAqB7E,GAjBAszB,EAAanU,EAAQ3gB,KAAKi0B,eAAe/G,EAAU1rB,GACnDyW,EAAO6c,EAAWL,OAEdp4B,EAAO0vB,aAAavtB,KACtB+c,EAAcC,EAAatT,KAAK1G,GAChC+Z,EAAYwZ,UACVnO,GAAIpoB,EAAWu0B,OACfvxB,QAASA,EACTwzB,YAAaF,EAAWJ,aACxBO,UAAWH,EAAWF,eAI1BC,EAAgBx4B,EAAOiF,iBAAiB9C,GAExCmwB,EAASzB,EAASY,SAASa,UAEvBtyB,EAAO0D,QAAQ80B,GACjB,IAAKt2B,EAAQ,EAAGA,EAAQs2B,EAAc/3B,OAAQyB,IAC5C2uB,EAASyD,UAAUt0B,EAAO4kB,WAAWiU,SAAS12B,EAAYD,IAC1DowB,EAAOxxB,KAAK+vB,EAAS4D,YAAY+D,EAAct2B,KAC/C0Z,GAAQpc,KAAKgyB,eAAeX,EAAUM,EAAYjvB,GAClD2uB,EAAS+B,aACT/B,EAASyD,UAAUjwB,YAEhB,IAAIrE,EAAO+G,SAASyxB,GACzB,IAAK,GAAIv3B,KAAOu3B,GACd3H,EAASyD,UAAUt0B,EAAO4kB,WAAWiU,SAAS12B,EAAYD,IAC1D2uB,EAAS4D,YAAY+D,EAAcv3B,IACnC2a,GAAQzW,EAAQqsB,eAAeX,GAC/BA,EAAS+B,aACT/B,EAASyD,UAAUjwB,QACnBnC,GAIJ1C,MAAKoc,KAAKA,EAAO6c,EAAWH,UAsChCl1B,SACEwyB,cAAc,EAEdO,eAAe,EAEf/V,WAAY,SAAUyQ,EAAU1uB,EAAYiB,GAC1CA,EAAUA,KAUV,KATA,GAOIirB,GAPAyK,EAAW,QACXzM,EAAOliB,EAAWwY,OAAO,MAAQvf,EAAQipB,MAAQyM,GAAY,MAC7D72B,EAAQkI,EAAWwY,OAAO,MAAQvf,EAAQnB,OAAS62B,GAAY,KAAM,SACrEC,EAAU/4B,EAAO0B,SAAS0B,EAAQ21B,UAAY,GAAI/b,GAAe,UACjEqa,EAAS,GAAIra,GAAe,UAC5BoR,EAAW5uB,KAAK+d,UAChBha,EAAI,EAGDA,EAAI6qB,EAAS3tB,OAAQ8C,IAC1B8qB,EAAQD,EAAS7qB,KACZ8qB,EAAMhR,aAAgBgR,EAAMhR,cAAgBgR,EAAMhR,YAAY,eACjE+Q,EAASpmB,OAAOzE,IAAK,EAIzB8zB,GAAO/Z,sBAAsBxc,KAAKmB,GAClCo1B,EAAO9Z,UAAUzc,KAAKurB,GACtBgL,EAAOvuB,QAAUtJ,KACjBA,KAAK+d,UAAUzc,KAAKu2B,GAEhB0B,IACFA,EAAQ1b,YAAY,aAAe,SACnC0b,EAAQrb,WAAata,EAAQ21B,QAC7Bv5B,KAAKkxB,SAASqI,IAGhB/4B,EAAOskB,QAAQ3gB,KAAKyc,WAAWhgB,KAAKZ,KAAMqxB,EAAU1uB,KAkBxDyuB,QACEqF,kBAAkB,EAElB7V,WAAY,SAAU2Q,GACpB,IAAKvxB,KAAKwiB,QAAUxiB,KAAKmyB,MACvB,KAAM,IAAIqH,OAAM,+CAGlBx5B,MAAKme,YAAcoT,EAAU9uB,MAAQ+a,EAAeY,WAAWC,IAAMb,EAAeY,WAAW0T,KAE3FP,EAAUmF,oBAAsB12B,KAAKme,aAAeX,EAAeY,WAAW0T,OAChF9xB,KAAKme,YAAcX,EAAeY,WAAW2T,YAC7C/xB,KAAKouB,IAAI,UAAW,QACpBzO,EAAatT,KAAKrM,KAAM,cAAeA,QAI3Cq2B,OAAQ,SAAU9E,GAChB,GAAI7R,GAAcC,EAAatT,KAAKrM,KAChC0f,GAAY+Z,aAAelI,EAAU9uB,QAEvCzC,KAAKgd,UAAY0C,EAAY+Z,YAAYzH,eAAexxB,EAAO6wB,SAASrxB,OACxEQ,EAAO6wB,SAASrxB,MAAMm3B,oCAAoCn3B,KAAK6f,YAC/DH,EAAY+Z,YAAc,MAG5Bz5B,KAAK4e,MAAM8B,QAAU6Q,EAAU9uB,MAAQ,GAAK,SAehD20B,UACExW,WAAY,SAAUnF,GACpBkE,EAAatT,KAAKrM,MAAMo3B,SAAW3b,IAuCvCie,SACE9Y,WAAY,SAAUte,GACpBqd,EAAatT,KAAKrM,MAAMqgB,gBAAkB/d,IAiB9C0c,UACE4B,WAAY,SAAUlgB,EAAW6wB,GAC3BnuB,UAAUnC,OAAS,EACrBjB,KAAKsxB,YAAY5wB,IAAa6wB,GAE9BvxB,KAAKguB,SAASttB,IAIlB21B,OAAQ,SAAU31B,EAAW6wB,GAC3B,GAAIhG,GAAU5L,EAAatT,KAAKrM,MAAMurB,OAClCA,GAAQ/I,QACV+I,EAAU/N,IACV+N,EAAQ7M,IAAM1e,MAEZoD,UAAUnC,OAAS,EACrBsqB,EAAQ+F,YAAY5wB,EAAW6wB,GAE/BhG,EAAQyC,SAASttB,KAkBvB0b,MACExb,MAAM,GAgBRisB,MACEjsB,MAAM,GAiBR+zB,SACE/zB,KAAM,MAENwgB,OAAQ,WAiBV4J,MACE2L,eAAe,EAEf/1B,MAAM,GAoBRkwB,KACE6F,eAAe,EAEf/1B,KAAM,OAENwgB,OAAQ,SAiBVuM,SACEgJ,eAAe,EAEf/1B,KAAM,QASR+4B,UACEhD,eAAe,EAEf/1B,KAAM,QAwBRwtB,KACExtB,MAAM,GASRg5B,OACEh5B,KAAM,OASRi5B,QACEj5B,KAAM,OAGRk5B,SACElZ,WAAYpgB,EAAOkE,KAEnB2xB,OAAQ,SAAU5zB,GACZA,GACFzC,KAAK+5B,UAcX1c,IACE6J,MAAO,SAAUN,EAAQoT,EAAWl4B,GAClC,GAAK8kB,GAAWoT,EAAhB,CAIAA,EAAYx5B,EAAOqF,QAAQm0B,EAE3B,IAAIr0B,GAAU3F,KACVsd,EAAU,SAAUlW,GACtB,GAAIkG,GAAU9M,EAAO8M,QAAQtN,MACzBuC,EAAU+K,EAAQ2sB,WAAa3sB,EAAQuT,OAASvT,EAAQwT,KAC5DtgB,GAAO2D,KAAK61B,EAAW,SAAU13B,GAC/BA,EAAS1B,KAAK2B,EAAS6E,EAAGtF,KAI9B8kB,GAASpmB,EAAO0D,QAAQ0iB,GAAUA,EAASA,EAAOjmB,WAAWqH,MAAM,KAEnExH,EAAO2D,KAAKyiB,EAAQ,SAAUjL,GAC5BH,EAAY7V,EAASgW,EAAO2B,UAMpC9c,EAAO2D,MAEL,QAAS,WAAY,YAAa,UAAW,YAAa,YAAa,WAEvE,SAAU,SAAU,SAAU,QAAS,QAAS,OAEhD,UAAW,WAAY,SACtB,SAAUsX,GACXjb,EAAOskB,QAAQrJ,IACbkb,eAAe,EAEfzP,MAAO,SAAU5kB,EAAU+J,GACzB7L,EAAOskB,QAAQzH,GAAG6J,MAAMtmB,KAAKZ,KAAMyb,EAAWnZ,EAAU+J,MAK5D,IAAI6tB,IAAa,uBASnB/U,GAAahjB,WACXmjB,QAAS,WACPtlB,KAAKw0B,gBAAkB3vB,OACvB7E,KAAK4X,WAAa,EAClB5X,KAAKm6B,iBAAmBt1B,OACxB7E,KAAKm5B,YAAc,EACnBn5B,KAAKo5B,UAAY,GAGnBgB,cAAe,SAAU13B,GACvB1C,KAAK4X,WAAalV,EAAQ1C,KAAKm5B,aAGjCkB,mBAAoB,SAAU9kB,GACC1Q,SAAzB7E,KAAKw0B,kBACPx0B,KAAKm6B,iBAAmBn6B,KAAKolB,WAAWO,UAAU1kB,QAEpDjB,KAAKw0B,gBAAkBjf,GAASvV,KAAKm5B,YAAcn5B,KAAKo5B,YAG1DrG,YAAa,SAAUuH,GACrB,GAGI94B,GAHA6jB,EAAerlB,KAAKqlB,aACpB0F,EAAKpL,EAAaoL,GAAGuP,GACrBr5B,EAASokB,EAAa0F,KAAQ/qB,KAAKw0B,iBAAmB8F,EAAQza,WAAW5e,SAAWjB,KAAKm6B,kBAAoBn6B,KAAKolB,WAAWO,UAAU1kB,OAW3I,OAPEO,GADEhB,EAAO8E,MAAMrE,IAAsBs5B,MAAXt5B,EACjB,EAEAwP,KAAK+pB,MAAMv5B,GAGtBokB,EAAa0F,GAAMvpB,EAEZA,GAGTi5B,MAAO,SAAUH,EAAS53B,GAKxB,IAAK,GAJDqwB,GAAc/yB,KAAK+yB,YAAYuH,GAC/Bza,EAAaya,EAAQza,WACrBre,KAEKuC,EAAI,EAAOgvB,EAAJhvB,EAAiBA,IAC/BvC,EAAOuC,GAAK8b,EAAWnd,EAAQqwB,EAAchvB,EAAI/D,KAAK4X,WAExD,OAAOpW,IAGTk5B,SAAU,SAAUJ,EAAS53B,EAAOmtB,GAClCxB,EAAUkG,OACR+F,EACAt6B,KAAK+yB,YAAYuH,GAAW53B,EAAQ1C,KAAK4X,WACzCpX,EAAO0D,QAAQ2rB,GAASA,GAASA,KAGrC/Z,SAAU,SAAUwkB,EAAS53B,GAC3B,GAAIqwB,GAAc/yB,KAAK+yB,YAAYuH,EAEnCjM,GAAUxY,OACRykB,EACAvH,EAAcrwB,EAAQ1C,KAAK4X,WAC3Bmb,IAGJld,OAAQ,SAAUnT,EAAOiT,GACvB,GAAI8a,GAAQzwB,IAEZA,MAAKmE,KAAK,SAAUwf,GAClB,IAAK,GAAI2S,GAAI,EAAO3gB,EAAJ2gB,EAAaA,IAC3B7F,EAAM3a,SAAS6N,EAAYjhB,KAI/Bid,EAAawL,iBAEbnrB,KAAKslB,UAELtlB,KAAKolB,WAAWuV,SAASnyB,OAAO9F,EAAOiT,IAGzCI,UAAW,WACT,GAAI0a,GAAQzwB,KACRkI,EAAQlI,KAAKolB,WAAWO,SAE5B3lB,MAAKmE,KAAK,SAAUgF,GAClB3I,EAAO2D,KAAK+D,EAAO,WACjBuoB,EAAM3a,SAAS3M,EAAQ,QAK7B6B,IAAK,SAAU4vB,EAAUl4B,GACvB,GAAI+tB,GAAQzwB,KACRolB,EAAaplB,KAAKolB,UAEtB5kB,GAAO2D,KAAKy2B,EAAU,SAAUzzB,EAAMpD,GACpCqhB,EAAWuV,SAASnyB,OAAO9F,EAAQqB,EAAG,EAAGvD,EAAO4kB,WAAW1iB,EAAQqB,MAGrE/D,KAAKmE,KAAK,SAAUwf,EAAYkX,GAC9B,GAGIlJ,GAHAN,EAAW7wB,EAAO6wB,SAAS1N,GAC3BrW,EAAU9M,EAAO8M,QAAQqW,GACzBvH,EAAO,EAcX,IAXAiV,EAASqE,cAAcpoB,EAAS,WAC9BqkB,EAAYN,EAASuB,cACrB,KAAK,GAAI7uB,GAAI,EAAGA,EAAI62B,EAAS35B,OAAQ8C,IACnCstB,EAASyD,UAAUt0B,EAAO4kB,WAAWiU,SAASjU,EAAYrhB,EAAIrB,GAAO,IACrE4K,EAAQwlB,OAAOtqB,OAAOzE,EAAIrB,EAAO,EAAG2uB,EAAS4D,YAAY2F,EAAS72B,KAClEqY,GAAQye,EAAe7I,eAAeX,EAAUM,GAAa5tB,EAAIrB,IACjE2uB,EAAS+B,aACT/B,EAASyD,UAAUjwB,UAIc,IAAjC8e,EAAW9D,WAAW5e,OACxBmqB,EAAIhP,KAAKuH,EAAYvH,GACrBiV,EAAS8F,oCAAoCxT,EAAW9D,gBACnD,CACL,GAAIxD,GAAWgV,EAASlV,eAAeC,EACvCqU,GAAMiK,SAAS/W,EAAYjhB,EAAO2Z,MAItCrc,KAAKslB,WAGPnhB,KAAM,SAAU7B,GAId,IAHA,GAAIyB,GAAI,EACJ+2B,EAAc96B,KAAKolB,WAAWwG,UAE3B7nB,EAAI+2B,EAAY75B,OAAQ8C,IAAK,CAClC,GAAIsI,GAAOyuB,EAAY/2B,EAClBsI,GAAK1G,UACR0G,EAAK1G,QAAUga,EAAatT,KAAKA,EAAKwf,WAAWT,KAEnDprB,KAAK+6B,MAAM1uB,EAAK1G,QAASrD,KAI7By4B,MAAO,SAAUpX,EAAYrhB,GAC3B,GAAKqhB,EAAL,CAIA,GACIhe,GACAq1B,EACAC,EACAjM,EAJAkK,EAAWvZ,EAAatT,KAAKsX,GAAYuV,QAM7C,IAAKA,GAAYA,EAASnO,IAAM/qB,KAAKolB,WAAW8R,OAQhD,GAJAvxB,EAAUuzB,EAASvzB,QACnB3F,KAAKm5B,YAAcD,EAASC,YAC5Bn5B,KAAKo5B,UAAYF,EAASE,UAEC,GAAvBzV,EAAWrc,SAEbtH,KAAKo6B,cAAc,GACnBp6B,KAAKq6B,mBAAmB1W,EAAW9D,WAAW5e,QAC9CqB,EAASqhB,EAAYhe,EAASge,OACzB,CAKL,IAHAqX,EAAYrb,EAAaoL,GAAGpH,GAC5BqL,EAAiBrL,EAAWvD,WAAWlD,WACvC+d,EAAe,EACRjM,GAAkBrL,GACvBqL,EAAiBA,EAAe3L,YAChC4X,GAGF,KADAj7B,KAAKo6B,cAAca,EAAe,GAC3BjM,IAA8C,GAA3BA,EAAe1nB,UAA6E,GAA5D0nB,EAAelN,UAAUlP,QAAQooB,EAAY,cACrGhM,EAAiBA,EAAe3L,YAChC4X,GAEFj7B,MAAKq6B,mBAAmBY,EAAej7B,KAAK4X,YAC5CtV,EAASqhB,EAAWvD,WAAYza,EAASge,MAO/C,IAAIuX,IAAe,CAQnB16B,GAAO4kB,WAAa,SAAU+V,EAAc54B,GAC1C,GAAI6iB,GAAa,SAAU3iB,GACA,IAArBW,UAAUnC,QACZ2kB,EAAO5L,QAAQoL,EAAY,MAAOA,EAGpC,IAAIgW,GAAe9U,EAAmBlB,GAClCiR,EAASjR,EAAWiR,MAExB,OAAyB,KAArBjzB,UAAUnC,QACZ6kB,EAASyJ,mBAAmBnK,GACrBgW,IACG56B,EAAON,OAAOuC,EAAO24B,GAAc,IAAUxV,EAAO5L,QAAQoL,EAAY,WAAY3iB,EAAO24B,MAAkB,IACvHhW,EAAWiR,OAAS71B,EAAOkE,KACtB0gB,EAAWI,gBAMyB,GAA9BJ,EAAWI,iBACpBJ,EAAWO,UAAUtQ,IAAIzU,KAAKwkB,EAAWY,YAAavjB,GANlDjC,EAAO0D,QAAQk3B,IAAiB56B,EAAO0D,QAAQzB,IAAU2iB,EAAWrL,MACtEqL,EAAWrL,MAAMtX,GAEjB2iB,EAAWO,UAAYljB,EAM3B2iB,EAAWiR,OAASA,EACpBjR,EAAWiR,SAEXzQ,EAAO5L,QAAQoL,EAAY,SAAU3iB,EAAO24B,IAEvChW,GA0BT,OAvBA+V,GAAe36B,EAAO+E,OAAO41B,GAE7B36B,EAAOgD,OAAO4hB,EAAY5kB,EAAO4kB,WAAWiW,GAAGC,MAC/ClW,EAAW8R,OAASgE,KACpB9V,EAAWO,UAAYwV,EACvB/V,EAAWY,YAAczjB,GAAW/B,EAAO+6B,sBAAwBnW,EACnEA,EAAWmL,mBACXnL,EAAWoL,gBACXpL,EAAWoW,gBACXpW,EAAWwG,aAEPprB,EAAO0D,QAAQi3B,IACjB36B,EAAOgD,OAAO4hB,EAAY5kB,EAAO4kB,WAAWiW,GAAGnzB,OAC/Ckd,EAAWuV,YACXvV,EAAWqW,cAAgB,GAAItW,GAAaC,IACnC5kB,EAAOa,WAAW85B,GAC3B/V,EAAWI,gBAAkB,EACpB2V,GAAgB36B,EAAOa,WAAW85B,EAAalnB,MAAQzT,EAAOa,WAAW85B,EAAa9lB,OAC/F+P,EAAWI,gBAAkB,GAG/BD,EAAmBH,GAEZA,EA0CT,IAAIsW,MAEJl7B,GAAOgD,OAAOhD,EAAO4kB,YACnBiU,SAAU,SAAUjU,EAAY1iB,EAAOi5B,GACrC,IAAKn7B,EAAO0vB,aAAa9K,GAIvB,MAHKsW,IAAkBh5B,KACrBg5B,GAAkBh5B,GAASlC,EAAO4kB,WAAW1iB,IAExCg5B,GAAkBh5B,EAE3B,IACI4yB,GADAsG,EAAUxW,EAAWuV,QAczB,OAXIiB,GACEA,EAAQ36B,QAAUmkB,EAAWO,UAAU1kB,QAAU06B,EACnDrG,EAASsG,EAAQl5B,IAEjB4yB,EAAS90B,EAAO4kB,WAAW1iB,GAC3Bk5B,EAAQpzB,OAAO9F,EAAO,EAAG4yB,IAG3BA,EAAS90B,EAAO4kB,WAAW1iB,GAGtB4yB,GAGT+F,IACEC,MACE5d,aAAcwc,GAQd7D,OAAQ,WACN,GACI3W,GACA2R,EACA/jB,EACA3H,EACA0sB,EACA5vB,EANA8f,EAAWviB,KAAK4rB,SAQpBprB,GAAO6D,UAAUrE,KAAKwwB,aAAc,SAA0BjkB,GAC5D5G,EAAU4G,EAAW5G,QACrB2H,EAAUf,EAAWe,QAEhB3H,IACH+Z,EAAcC,EAAatT,KAAKE,EAAWsf,WAC3ClmB,EAAU4G,EAAW5G,QAAU+Z,EAAY0L,IAG7C,KACE3oB,EAAQjC,EAAO+E,OAAO6pB,EAAoB7iB,EAAWA,YAAYe,IACjE,MAAO8iB,GACP3tB,EAAQ,GAGVA,EAAiB,MAATA,EAAgB,GAAKA,EAAM9B,WAEnC0xB,EAAS9lB,EAAWtL,OAASwB,EAAMxB,OACnCsL,EAAWtL,OAASwB,EAAMxB,OAEtB0E,EACE4G,EAAWye,KACbrlB,EAAQslB,aAAa1e,EAAWye,KAAMrgB,EAAWilB,SAAStiB,EAAS,KAAMf,EAAW+jB,SAEhF3qB,EAAQ0d,aACV1d,EAAUA,EAAQ0d,YAClB1d,EAAQmc,UAAYrf,EAAQkD,EAAQmc,UAAUpL,UAAUnK,EAAWtL,OAASoxB,IAE5E1sB,EAAQya,WAAWjD,YAAYb,SAASuf,eAAep5B,KAI5DkD,EAAU+Z,EAAY6L,QAClBhf,EAAWye,MACbrlB,EAAQqlB,KAAKze,EAAWye,KAAMrgB,EAAWilB,SAAStiB,EAAS,KAAMf,EAAW+jB,WAKjF,KAAK,GAAIvsB,GAAI,EAAGA,EAAIwe,EAASthB,OAAQ8C,IACnCtB,EAAQ8f,EAASxe,GACjB4B,EAAUlD,EAAMkD,SACXA,GAAWga,EAAatT,KAAK5J,EAAMopB,aACtClmB,EAAUlD,EAAMkD,QAAUga,EAAatT,KAAK5J,EAAMopB,WAAWT,IACxDzlB,IACHA,EAAUga,EAAatT,KAAK5J,EAAMopB,WAAWN,UAG7CjP,SAASjS,KAAK8I,SAASxN,IAAY6X,EAAe0B,GAAGvZ,IACvD0rB,EAAW7wB,EAAO6wB,SAAS1rB,GAC3B0rB,EAASqE,cAAcjzB,EAAM6K,QAAS,WACpC+jB,EAAS2E,eAAerwB,EAASlD,EAAMqI,WAGzCyX,EAAS/Z,OAAOzE,EAAG,GACnBA,GAAK,EAaT,OATAvD,GAAO2D,KAAKnE,KAAKomB,cAAe,SAA0BF,GACxDX,EAAmBW,GACnBA,EAAWmQ,WAGb71B,EAAO2D,KAAKnE,KAAK26B,SAAU,SAAqBvV,EAAY1iB,GAC1D0iB,EAAW1iB,KAGN1C,MAITqd,GAAI,SAAU5B,EAAWnZ,EAAUC,GAEjC,MADAqjB,GAAOvI,GAAGrd,KAAMyb,EAAWnZ,EAAUC,GAAWvC,KAAKgmB,aAC9ChmB,MAGToY,KAAM,SAAUqD,EAAWnZ,EAAUC,GAEnC,MADAqjB,GAAOxN,KAAKpY,KAAMyb,EAAWnZ,EAAUC,GAAWvC,KAAKgmB,aAChDhmB,MAGT6lB,IAAK,SAAUpK,EAAWnZ,GAExB,MADAsjB,GAAOC,IAAI7lB,KAAMyb,EAAWnZ,GACrBtC,MAsBTwD,OAAQ,SAAU3B,GAChB,GACIL,GADAs6B,EAAat7B,EAAO4kB,WAAWvjB,EAGnC,OAAyB,KAArBuB,UAAUnC,QACRT,EAAO0C,KAAKC,oBACd3C,EAAO0C,KAAKqX,iBAAiB/Z,EAAO+D,KAAKvE,QAASA,MAE7CA,MACE87B,GACTt6B,EAASs6B,EAAW15B,MAAMpC,KAAMQ,EAAOqF,QAAQzC,WAAWP,MAAM,IACzDrC,EAAO0vB,aAAa1uB,GAAUA,EAASxB,MAFzC,QAMT6D,MAAO,SAAUk4B,GACf,GAAIt5B,GAAQzC,KAAK2lB,SACjB,OAAOnlB,GAAO4kB,WAAW2W,EAAav7B,EAAOqD,MAAMpB,GAASA,EAAOzC,KAAKgmB,cAG1ErlB,SAAU,WACR,GAAI2M,GAAUtN,KAAKgmB,YACfvjB,EAAgC,GAAxBzC,KAAKwlB,gBAAuBxlB,KAAK2lB,UAAU/kB,KAAK0M,GAChC,GAAxBtN,KAAKwlB,gBAAuBxlB,KAAK2lB,UAAU1R,IAAIrT,KAAK0M,GACpDtN,KAAK2lB,SAIT,OAFAG,GAASyJ,mBAAmBvvB,MAEf,MAATyC,GAAiBjC,EAAOa,WAAWoB,EAAM9B,UACpC8B,EAAM9B,WAERE,OAAO4B,KAQlByF,OAiBE6R,MAAO,SAAU7R,GACf,GAAyB,IAArB9E,UAAUnC,OAEZ,MADAjB,MAAK+V,YACE/V,IAGTkI,GAAQ1H,EAAO+E,OAAO2C,EAEtB,IAAI8zB,GAAUh8B,KAAK2lB,UACfsW,EAAej8B,KAAKy7B,cACpBS,EAAWh0B,EAAMjH,OAAS+6B,EAAQ/6B,OAClCk7B,EAAc1rB,KAAKC,IAAIsrB,EAAQ/6B,OAASiH,EAAMjH,OAAQ,GACtDwxB,EAAcvqB,EAAMjH,OAASi7B,CA0CjC,OAxCAtW,GAAO5L,QAAQha,KAAM,YACnBuE,KAAM,WACN8G,MAAO2wB,EACPt5B,MAAO,IAGTkjB,EAAO5L,QAAQha,KAAM,UACnBuE,KAAM,SACN8G,MAAOnD,EACPxF,MAAO,IAGTu5B,EAAa93B,KAAK,SAAUwf,EAAYkX,GACtC,GAAIxJ,GAAW7wB,EAAO6wB,SAAS1N,EAE/B0N,GAASqE,cAAcl1B,EAAO8M,QAAQqW,GAAa,WAC/CkX,EAAerI,eAAetqB,EAAOuqB,EAAapB,EAAU1N,OAI9DuY,EAAW,EACbD,EAAajxB,IAAI9C,EAAMrF,MAAMm5B,EAAQ/6B,QAAS+6B,EAAQ/6B,QAC7Ck7B,EAAc,GACvBF,EAAapmB,OAAO3N,EAAMjH,OAAQk7B,GAGpCn8B,KAAK2lB,UAAYzd,EAEjB0d,EAAO5L,QAAQha,KAAM,UACnBuE,KAAM,SACN8G,MAAO2wB,EACPt5B,MAAO,IAGTkjB,EAAO5L,QAAQha,KAAM,OACnBuE,KAAM,MACN8G,MAAOnD,EACPxF,MAAO,IAGF1C,MAkBTgL,IAAK,SAAUvI,EAAOC,GAGpB,MAFA1C,MAAKwI,OAAOhI,EAAO6E,SAAS3C,GAASA,EAAQ1C,KAAK2lB,UAAU1kB,OAAQ,EAAGwB,GAEhEzC,MAiBTuL,QAAS,SAAU9I,EAAOC,GAExB,MADA1C,MAAKwI,OAAOpG,MAAMpC,MAAOQ,EAAO6E,SAAS3C,GAASA,EAAQ1C,KAAK2lB,UAAU1kB,OAAQ,GAAG0H,OAAOnI,EAAOqF,QAAQpD,KACnGzC,MAkBTiI,KAAM,SAAUE,EAAQC,GACtB,GAGIzC,GAHAuC,EAAQlI,OACRuiB,EAAWviB,KAAK4rB,UAChBqQ,EAAej8B,KAAKy7B,aAGxBj7B,GAAOyH,KAAKC,EAAOC,EAAQC,EAE3B,KAAK,GAAIrE,GAAI,EAAGA,EAAIwe,EAASthB,OAAQ8C,IACnC4B,EAAU4c,EAASxe,GAAG4B,QAClBwC,EAASC,GACX6zB,EAAavB,SAAS/0B,EAASwC,EAAQ8zB,EAAaxB,MAAM90B,EAASyC,IACnE6zB,EAAavB,SAAS/0B,EAASyC,EAAQ6zB,EAAaxB,MAAM90B,EAASwC,MAEnE8zB,EAAavB,SAAS/0B,EAASyC,EAAQ6zB,EAAaxB,MAAM90B,EAASwC,IACnE8zB,EAAavB,SAAS/0B,EAASwC,EAAQ8zB,EAAaxB,MAAM90B,EAASyC,IAIvE,OAAOpI,OAkBTqI,KAAM,SAAUC,EAAaC,GAC3B,GAGI5C,GAHAuC,EAAQlI,OACRuiB,EAAWviB,KAAK4rB,UAChBqQ,EAAej8B,KAAKy7B,aAGxBj7B,GAAO6H,KAAKH,EAAOI,EAAaC,GAE5BA,EAAcD,GAChBC,GAGF,KAAK,GAAIxE,GAAI,EAAGA,EAAIwe,EAASthB,OAAQ8C,IACnC4B,EAAU4c,EAASxe,GAAG4B,QACtBs2B,EAAavB,SAAS/0B,EAAS4C,EAAa0zB,EAAaxB,MAAM90B,EAAS2C,GAG1E,OAAOtI,OAeT6V,OAAQ,SAAUpT,EAAOF,GACvB,MAAOvC,MAAK+V,UAAUtT,EAAOF,GAAS,IAYxCuT,SAAU,SAAUpT,EAAO6S,GAMzB,MALK/U,GAAO6E,SAASkQ,KACnBA,EAAQ,GAEVvV,KAAKwI,OAAO9F,EAAO6S,GAEZvV,MAaT+V,UAAW,SAAUzT,EAAUC,EAASyT,GACtC,GAEI3K,GACAtH,EAHAmE,EAAQlI,KAAK2lB,UACbsW,EAAej8B,KAAKy7B,aAIxB,IAAyB,IAArBr4B,UAAUnC,QACR2kB,EAAOlkB,IAAI1B,KAAM,aAAe4lB,EAAOlkB,IAAI1B,KAAM,aACnDqL,EAAQ7K,EAAOqD,MAAMqE,IAEvB0d,EAAO5L,QAAQha,KAAM,YACnBuE,KAAM,WACN8G,MAAOA,EACP3I,MAAO,IAGTu5B,EAAalmB,YAGb/V,KAAK26B,YACLtvB,EAAQnD,EAAMM,OAAO,EAAGN,EAAMjH,QAC9B2kB,EAAO5L,QAAQha,KAAM,UACnBuE,KAAM,SACN8G,MAAOA,EACP3I,MAAO,QAEJ,CACL,GACID,GADAwT,EAAsBzV,EAAOa,WAAWiB,EAG5C,KAAKyB,EAAI,EAAGA,EAAImE,EAAMjH,SACpBwB,EAAQyF,EAAMnE,KACVtB,IAAUH,GAAa2T,GAAuB3T,EAAS1B,KAAK2B,EAASE,EAAOsB,EAAGmE,MACjFlI,KAAKwI,OAAOzE,EAAG,GACfA,GAAK,GACDiS,IALsBjS,MAchC,MAFA/D,MAAKq2B,SAEEr2B,MAYT2I,OAAQ,WACN,GAAIT,GAAQlI,MACZ,OAAOkI,GAAMS,OAAOvG,MAAM8F,EAAO1H,EAAOqF,QAAQzC,aAalDP,MAAO,SAAUgO,EAAO/C,GACtB,MAAI1K,WAAUnC,OAAS,EACdjB,OAAO6C,MAAMgO,EAAO/C,GAEtB9N,OAAO6C,MAAMgO,IAUtB5C,KAAM,SAAUmuB,GACd,MAAIh5B,WAAUnC,OAAS,EACdjB,OAAOiO,KAAKmuB,GAEdp8B,OAAOiO,QAoChBtM,IAAK,WACH,GAAI06B,GAAOr8B,KACPkI,EAAQm0B,GAEZ,OAAOA,GAAK7zB,OAAON,EAAMjH,OAAS,EAAG,GAAG,IAU1CK,KAAM,WAEJ,MADAtB,MAAKuL,QAAQnI,WACNpD,KAAK2lB,UAAU1kB,QASxBiO,QAAS,WACP,GAAIhH,GAAQlI,OAAOkP,UACf+sB,EAAej8B,KAAKy7B,aAYxB,OAVAz7B,MAAK26B,SAASzrB,UAEd+sB,EAAa93B,KAAK,SAAUwf,GAC1B,IAAK,GAAI2S,GAAI,EAAGA,EAAIpuB,EAAMjH,OAAQq1B,IAChC2F,EAAavB,SAAS/W,EAAY,EAAGsY,EAAaxB,MAAM9W,EAAY2S,MAIxEt2B,KAAKq2B,SAEEnuB,GASTsN,MAAO,WACL,MAAOxV,MAAKwI,OAAO,EAAG,GAAG,IAW3B6I,KAAM,SAAUirB,GAUd,IATA,GAMIhG,GACAnvB,EAPAe,EAAQlI,KAAK2lB,UACb1kB,EAASiH,EAAMjH,OACfs7B,EAAkBn5B,UAAUnC,OAAS,EACrCg7B,EAAej8B,KAAKy7B,cACpBG,EAAU57B,KAAK26B,SACf52B,EAAI,EAIG9C,EAAJ8C,EAAYA,IAAK,CACtB,GAAIvC,IAAU0G,EAAMnE,GAAIA,EAExBk4B,GAAa93B,KAAK,SAAUwf,GAC1BniB,EAAOF,KAAK26B,EAAaxB,MAAM9W,EAAY5f,MAK7CmE,EAAMnE,GAAKvC,EA6Bb,IAnBA0G,EAAMmJ,KAAK,SAAUlR,EAAGC,GAGtB,MAFAD,GAAIA,EAAE,GACNC,EAAIA,EAAE,GACFm8B,EACKD,EAAa17B,KAAKZ,KAAMG,EAAGC,GAE5BA,EAAJD,EACK,GAELA,EAAIC,EACC,EAEF,IAGLw7B,EAAQ36B,OAAS,IACnBjB,KAAK26B,aAGF52B,EAAI,EAAO9C,EAAJ8C,EAAYA,IACtBoD,EAAOe,EAAMnE,GACT63B,EAAQ36B,OAAS,GACnBjB,KAAK26B,SAASr5B,KAAKs6B,EAAQz0B,EAAK,KAGlCmvB,EAAI,EACJ2F,EAAa93B,KAAK,SAAUwf,GAC1BsY,EAAavB,SAAS/W,EAAY1iB,EAAQkG,EAAKmvB,IAC/CA,MAEFpuB,EAAMnE,GAAKoD,EAAK,EAOlB,OAJAnH,MAAKq2B,SAIEnuB,GAaTM,OAAQ,SAAU9F,EAAOiT,GACvB,GAIIilB,GAJA1yB,EAAQlI,KAAK2lB,UACbsW,EAAej8B,KAAKy7B,cACpBngB,KACAxZ,EAAOsB,SA4CX,OAzCAV,GAAgB,EAARA,EAAYwF,EAAMjH,OAASyB,EAAQA,EAEvCiT,GAAWjT,EAAQwF,EAAMjH,QAAUyB,GAAS,IAC9CiT,EAAUlF,KAAKgD,IAAIvL,EAAMjH,OAASyB,EAAOiT,GACzC2F,EAAcpT,EAAMrF,MAAMH,EAAOA,EAAQiT,GACzCiQ,EAAO5L,QAAQha,KAAM,YACnBuE,KAAM,WACN8G,MAAOiQ,EACP5Y,MAAOA,IAGTu5B,EAAapmB,OAAOnT,EAAOiT,GAE3B2F,EAAcpT,EAAMM,OAAO9F,EAAOiT,GAClCiQ,EAAO5L,QAAQha,KAAM,UACnBuE,KAAM,SACN8G,MAAOiQ,EACP5Y,MAAOA,KAIPZ,EAAKb,OAAS,IAChB25B,EAAWp6B,EAAOqF,QAAQ/D,GAC1B84B,EAASpyB,OAAO,EAAG,GACnBod,EAAO5L,QAAQha,KAAM,UACnBuE,KAAM,SACN7B,MAAOA,EACP2I,MAAOuvB,IAGTqB,EAAajxB,IAAI4vB,EAAUl4B,GAE3BwF,EAAMM,OAAOpG,MAAM8F,GAAQxF,EAAO,GAAGiG,OAAOiyB,IAC5ChV,EAAO5L,QAAQha,KAAM,OACnBuE,KAAM,MACN7B,MAAOA,EACP2I,MAAOuvB,KAIX56B,KAAKq2B,SACE/a,GAWT1F,QAAS,WAEP,MADA5V,MAAKuL,QAAQnI,UAAW,GACjBpD,KAAK2lB,UAAU1kB,WAO9B,IAAIu7B,KACFC,WAEAC,uBAAwB,SAAUtX,GAChC,GAAIoK,GAAgBpK,EAAWvhB,OA4B/B,OA1BA2rB,GAAcmN,KAAOn8B,EAAO4kB,eAC5BoK,EAAcmN,KAAKC,gBACnBpN,EAAcmN,KAAKE,aACnBrN,EAAcmN,KAAKG,kBAAoBt8B,EAAOiI,KAAK+zB,GAAeO,iBAAkBvN,GACpFA,EAAcwN,YAAc5X,EAAW4X,YAAcx8B,EAAOqD,MAAMuhB,EAAW4X,gBAC7ExN,EAAcyN,QAAUz8B,EAAOiI,KAAK+zB,GAAeU,OAAQ1N,GAC3DA,EAAcmN,KAAKQ,cAAe,EAElC3N,EAAcmN,KAAKtf,GAAG,MAAOmS,EAAcyN,SAE3CzN,EAAcnS,GAAG,MAAO,WAClBmS,EAAcmN,KAAKQ,eACrB3N,EAAcmN,KAAKC,gBACnBpN,EAAcmN,KAAK5iB,QACnByiB,GAAeY,kBAAkB5N,MAIrCA,EAAcnS,GAAG,SAAU,WACrBmS,EAAcmN,KAAKQ,eACrB3N,EAAcmN,KAAKC,gBACnBpN,EAAcmN,KAAK5iB,QACnByiB,GAAeY,kBAAkB5N,MAI9BA,GAGT0N,OAAQ,WACNtX,EAAOC,IAAI7lB,KAAK28B,KAAM,MAAO38B,KAAKi9B,SAClCj9B,KAAKi9B,QAAUp4B,OACf7E,KAAK28B,KAAKQ,cAAe,EACzBX,GAAea,sBAAsBr9B,OAGvC+8B,iBAAkB,WAChBP,GAAeY,kBAAkBp9B,OAGnCq9B,sBAAuB,SAAUjY,GAC/B,GAAIyK,MACAyN,EAAWlY,EAAWuX,KAAKE,UAC3BE,EAAmB3X,EAAWuX,KAAKG,iBAEvCt8B,GAAO2D,KAAKm5B,EAAU,SAAUlY,GAC9BQ,EAAOC,IAAIT,EAAY,SAAU2X,KAEnCO,EAAWlY,EAAWuX,KAAKE,aAC3B/W,EAASC,iBAETvlB,EAAO2D,KAAKihB,EAAW4X,YAAa,SAAUO,GAC5C,GAAsB,QAAlBA,EAAUh5B,KAAgB,CAC5B,GAAIo4B,GAAOvX,EAAWuX,IACtBvX,GAAWuX,KAAOn8B,EAAO4kB,eACzBA,EAAWuX,KAAKC,gBACZ/M,EAAM5uB,QACRu7B,GAAegB,uBAAuBpY,EAAYyK,GAEpD0N,EAAUzsB,KAAKlQ,KAAKwkB,EAAWY,aAC/BZ,EAAWuX,KAAOA,MAElB9M,GAAMvuB,KAAKi8B,KAIX1N,EAAM5uB,QACRu7B,GAAegB,uBAAuBpY,EAAYyK,GAGpDrvB,EAAO2D,KAAK2hB,EAASG,gBAAiB,SAAUb,GAC9CkY,EAASh8B,KAAK8jB,GACdA,EAAW/H,GAAG,SAAU0f,MAI5BK,kBAAmB,SAAUhY,GAC3B,GAAI2F,GAAK3F,EAAW8R,OAChBuF,EAAUD,GAAeC,OAExBA,GAAQ1R,KACX0R,EAAQ1R,IAAM,EACd9e,WAAW,WACTuwB,GAAea,sBAAsBjY,GACrCqX,EAAQ1R,IAAM,GACb,KAIPyS,uBAAwB,SAAUpY,EAAYqY,GAC5C,GAAIC,GAAM,MACNC,EAAS,SACTC,EAAS,SACTC,EAASD,EAETj7B,EAAayiB,EAAWO,UACxBgX,EAAOvX,EAAWuX,KAClBmB,EAAcnB,EAAKC,aACnBmB,KACAC,EAAY,EACZ3H,EAASsG,EAAKtG,OACd3pB,EAAO,EACPC,EAAOhK,EAAW1B,MACtB07B,GAAKtG,OAAS71B,EAAOkE,KAErBlE,EAAO2D,KAAKs5B,EAAY,SAAUF,GACV,QAAlBA,EAAUh5B,MACZmI,EAAO6wB,EAAU7wB,KACblM,EAAOa,WAAWqL,KACpBA,EAAOA,EAAK9L,KAAKwkB,EAAWY,cAE9BtZ,EAAOlM,EAAO+E,OAAOmH,IACM,QAAlB6wB,EAAUh5B,MACnBoI,EAAO4wB,EAAU5wB,KACbnM,EAAOa,WAAWsL,KACpBA,EAAOA,EAAK/L,KAAKwkB,EAAWY,cAE9BrZ,EAAOnM,EAAO+E,OAAOoH,IACM,QAAlB4wB,EAAUh5B,OAEjB5B,EADEnC,EAAO0B,SAASq7B,EAAUlsB,MACf7Q,EAAOqD,MAAMlB,GAAY0O,KAAK,SAAU4sB,EAAQC,GAC3D,MAAOD,GAAOV,EAAUlsB,MAAQ6sB,EAAOX,EAAUlsB,QAE1C7Q,EAAOa,WAAWk8B,EAAUlsB,MACxB7Q,EAAOqD,MAAMlB,GAAY0O,KAAKksB,EAAUlsB,MAExC7Q,EAAOqD,MAAMlB,GAAY0O,OAEf,GAArBosB,EAAWx8B,QACbw8B,EAAWn8B,MAAOiD,KAAM,SAAU+O,OAAQ,WAAc,OAAO,QAKrE9S,EAAO2D,KAAKxB,EAAY,SAA2BF,EAAOC,GACxD,GAAY,GAARiK,EAAW,CACb,KAAOgwB,IAAO17B,OAAS+8B,EAAY,GACjCrB,EAAK7mB,SAAS6mB,IAAO17B,OAAS,EAEhC,QAAO,EA6CT,OA3CAT,EAAO2D,KAAKs5B,EAAY,SAAyBF,GAC/C,GAAIY,GAAiBZ,EAAUjqB,MAI/B,IAFAuqB,EAASh5B,OAELs5B,EAAgB,CAClB,IAAIA,EAAev9B,KAAKwkB,EAAWY,YAAavjB,EAAOC,EAAOC,GAW5D,MAJAk7B,GAASh5B,OACkBA,SAAvBi5B,EAAYp7B,KACdm7B,EAASF,IAEJ,CAVPE,GAASD,EAEkB/4B,SAAvBi5B,EAAYp7B,KACdm7B,EAASH,OASR,IAAsB,QAAlBH,EAAUh5B,KAAgB,CAGnC,GAFAs5B,EAASD,EACTlxB,GAAQ,EACJA,GAAQ,EAEV,MADAmxB,GAASF,GACF,CACS,GAAPjxB,GAAmC7H,SAAvBi5B,EAAYp7B,KACjCm7B,EAASH,OAEN,IAAsB,QAAlBH,EAAUh5B,KAAgB,CACnC,GAAY,GAARoI,EAEF,MADAkxB,GAASF,GACF,CAEPhxB,IAAQ,EACRkxB,EAASD,EAEkB/4B,SAAvBi5B,EAAYp7B,KACdm7B,EAASH,MAMTG,GACN,IAAKH,GACHK,EAAer7B,GAASs7B,EACxBrB,EAAKn0B,OAAOw1B,EAAW,EAAGv7B,GAC1Bu7B,GACA,MACF,KAAKL,GACHhB,EAAK7mB,SAASkoB,EACd,MACF,KAAKJ,GACHG,EAAer7B,GAASs7B,EACxBA,OAKNrB,EAAKC,aAAemB,EACpBpB,EAAKtG,OAASA,EACdsG,EAAKtG,UAqBT71B,GAAO4kB,WAAW9R,OAAS,SAAU1P,GACnC,GAAIwhB,GAAaoX,GAAeE,uBAAuB18B,MACnDsC,EAAWsB,CAiBf,SAfKpD,EAAOa,WAAWiB,IAAa9B,EAAO0vB,aAAa5tB,MACtDA,EAAW,SAAUG,GACnB,GAAI6Q,GAAS9S,EAAO+E,OAAO3B,GACvBw6B,EAAev9B,OAAOyS,GAAQ9B,aAGlC,OAFA/O,GAAQ5B,OAAOL,EAAO+E,OAAO9C,IAAQ+O,eAE7B8B,GAAyC,IAA/B7Q,EAAMmQ,QAAQwrB,KAIpChZ,EAAW4X,YAAY17B,MACrBiD,KAAM,SACN+O,OAAQhR,IAGH8iB,GAGT5kB,EAAO4kB,WAAWtU,KAAO,SAAUlN,GACjC,GAAIwhB,GAAaoX,GAAeE,uBAAuB18B,KAOvD,OALAolB,GAAW4X,YAAY17B,MACrBiD,KAAM,OACNuM,KAAMlN,IAGDwhB,GAYT5kB,EAAO4kB,WAAW1Y,KAAO,SAAUjK,GACjC,GAAI2iB,GAAaoX,GAAeE,uBAAuB18B,KAOvD,OALAolB,GAAW4X,YAAY17B,MACrBiD,KAAM,OACNmI,KAAMjK,IAGD2iB,GAYT5kB,EAAO4kB,WAAWzY,KAAO,SAAUlK,GACjC,GAAI2iB,GAAaoX,GAAeE,uBAAuB18B,KAOvD,OALAolB,GAAW4X,YAAY17B,MACrBiD,KAAM,OACNoI,KAAMlK,IAGD2iB,GAYT5kB,EAAO4kB,WAAW/T,KAAO,SAAUzN,GACjC,GAAIwhB,GAAaoX,GAAeE,uBAAuB18B,KAOvD,OALAolB,GAAW4X,YAAY17B,MACrBiD,KAAM,OACN8M,KAAMzN,IAGDwhB,GAwBT5kB,EAAOujB,MAAQ,SAAesa,EAAO14B,GACnCnF,EAAOknB,SAAS,WACdlnB,EAAOkF,QAAQC,EAAS,SAAUA,GAC3BnF,EAAO6G,UAAU1B,KACpBA,EAAU2W,SAASjS,KAGrB,IAAIgnB,GAAW,GAAI7M,GACf8Z,EAAcvc,EAAcpc,GAAS,GACrC0c,EAAatiB,OAAOuiB,oBAExB+O,GAAS4D,YAAYoJ,GACrBhN,EAASgC,YAAchR,EAEnBA,EACFic,EAAYlN,OAAOC,GAEnBiN,EAAYpM,KAAKb,GAEnBA,EAAS8F,qCAAqCxxB,SAKpDnF,EAAOgzB,aAAe,SAAsB7tB,EAAS44B,GACnD,GAAI1kB,GAAa2D,EAAe0B,GAAGvZ,GAAW,aAAe,SACzD7D,EAAOgB,MAAMX,UAAUU,MAAMjC,KAAKwC,UAAW,GAC7C2gB,EAAQvjB,EAAOskB,QAAQyZ,EACvBxa,GAAMqS,cACRt0B,EAAK8T,QAAQpV,EAAO6wB,SAAS1rB,IAE/Boe,EAAMlK,GAAYzX,MAAMuD,EAAS7D,IAuBnCtB,EAAO8M,QAAU,SAAiB3H,EAAS64B,GAGzC,GAFA74B,EAAUnF,EAAOkF,QAAQC,GAEZ,CACX,GAAI+Z,GAAcC,EAAatT,KAAK1G,EACpC,IAAI+Z,EAAa,CACf,GAAI8e,GAAe9e,EAAYsV,gBAC7B,MAAOtV,GAAYsV,eAErB,IAAItV,EAAYpS,QACd,MAAOoS,GAAYpS,QAIvB,MAAO9M,GAAO8M,QAAQkQ,EAAe0B,GAAGvZ,GAAWA,EAAQ2D,QAAU3D,EAAQya,YAAY,GAE3F,MAAO,OAuBT5f,EAAOi+B,SAAW,SAAkB94B,GAClC,GAAI2H,GAAU9M,EAAO8M,QAAQ3H,EAC7B,OAAO2H,GAAUA,EAAQ2lB,MAAQ,MAiBnCzyB,EAAO0vB,aAAe,SAAsBztB,GAC1C,QAASA,GAASA,EAAMib,eAAiBwc,IAiB3C15B,EAAOiF,iBAAmB,SAA0BhD,GAClD,MAAIA,IAASA,EAAMib,eAAiBwc,GAC3Bz3B,IAEFA,GAGTjC,EAAO6wB,SAAW,SAAkB1rB,GAElC,GADAA,EAAUnF,EAAOkF,QAAQC,GACZ,CACX,GAAI0G,GAAOsT,EAAatT,KAAK1G,EAAS,WACtC,OAAI0G,GACKA,EAEF7L,EAAO6wB,SAAS7T,EAAe0B,GAAGvZ,GAAWA,EAAQ2D,QAAU3D,EAAQya,YAEhF,MAAO,aAST,WACE,GAAIzf,GAAWH,EAAOG,QACtBH,GAAOG,SAAW,SAAS8B,GACzB,MAAyB,KAArBW,UAAUnC,OACL,qCAEFN,EAAS8B,MAKpB,IAAIi8B,GAAU/+B,EAAOa,MAwBrB,OAtBAA,GAAOm+B,WAAa,SAAU36B,GAS5B,MARIrE,GAAOa,SAAWA,IACpBb,EAAOa,OAASk+B,GAGd16B,GAAQrE,EAAOa,SAAWA,IAC5Bb,EAAOa,OAASk+B,GAGXl+B,GAGa,kBAAXy3B,SAAyBA,OAAO2G,KACzC3G,OAAO,YAAc,WACnB,MAAOz3B,KAIPP,KAAa,IACfN,EAAOa,OAASA,GAGXA"} \ No newline at end of file diff --git a/dist/query/blocks-query.js b/dist/query/blocks-query.js index 57c43c3..3420764 100644 --- a/dist/query/blocks-query.js +++ b/dist/query/blocks-query.js @@ -2587,7 +2587,7 @@ } }, - updateChildren: function (domQuery, collection, domElement) { + updateChildren: function (collection, updateCount, domQuery, domElement) { var template = this._template; var child = template[0]; var isOneChild = template.length === 1 && VirtualElement.Is(child); @@ -2595,11 +2595,10 @@ var syncIndex = domQuery.getSyncIndex(); var childContexts = domQuery._context.childs; var chunkLength = this._length(); - var length = Math.min(collection.length, childNodes.length); var index = -1; var context; - while (++index < length) { + while (++index < updateCount) { domQuery._context = context = childContexts[index]; context.$this = collection[index]; context.$parent = context.$parentContext.$this; @@ -3488,8 +3487,12 @@ elementData.haveData = true; if (!elementData.execute) { elementData.execute = []; + elementData.executeHash = {}; + } + if (!elementData.executeHash[methods[i].query]) { + elementData.execute.push(methods[i]); + elementData.executeHash[methods[i].query] = true; } - elementData.execute.push(methods[i]); continue; } Observer.startObserving(); @@ -4903,6 +4906,7 @@ */ update: function () { var elements = this._elements; + var elementData; var domQuery; var context; var element; @@ -4914,7 +4918,8 @@ context = expression.context; if (!element) { - element = expression.element = ElementsData.data(expression.elementId).dom; + elementData = ElementsData.data(expression.elementId); + element = expression.element = elementData.dom; } try { @@ -4928,15 +4933,22 @@ offset = expression.length - value.length; expression.length = value.length; - if (expression.attr) { - element.setAttribute(expression.attr, Expression.GetValue(context, null, expression.entire)); - } else { - if (element.nextSibling) { - element = element.nextSibling; - element.nodeValue = value + element.nodeValue.substring(expression.length + offset); + if (element) { + if (expression.attr) { + element.setAttribute(expression.attr, Expression.GetValue(context, null, expression.entire)); } else { - element.parentNode.appendChild(document.createTextNode(value)); - } + if (element.nextSibling) { + element = element.nextSibling; + element.nodeValue = value + element.nodeValue.substring(expression.length + offset); + } else { + element.parentNode.appendChild(document.createTextNode(value)); + } + } + } else { + element = elementData.virtual; + if (expression.attr) { + element.attr(expression.attr, Expression.GetValue(context, null, expression.entire)); + } } }); @@ -5069,12 +5081,13 @@ return this; } + array = blocks.unwrap(array); + var current = this.__value__; var chunkManager = this._chunkManager; var addCount = array.length - current.length; var removeCount = Math.max(current.length - array.length, 0); - - array = blocks.unwrap(array); + var updateCount = array.length - addCount; Events.trigger(this, 'removing', { type: 'removing', @@ -5087,12 +5100,12 @@ items: array, index: 0 }); - + chunkManager.each(function (domElement, virtualElement) { var domQuery = blocks.domQuery(domElement); domQuery.contextBubble(blocks.context(domElement), function () { - virtualElement.updateChildren(domQuery, array, domElement); + virtualElement.updateChildren(array, updateCount, domQuery, domElement); }); }); @@ -5622,6 +5635,22 @@ newObservable.view._initialized = false; newObservable.view.on('get', newObservable._getter); + + newObservable.on('add', function () { + if (newObservable.view._initialized) { + newObservable.view._connections = {}; + newObservable.view.reset(); + ExtenderHelper.executeOperations(newObservable); + } + }); + + newObservable.on('remove', function () { + if (newObservable.view._initialized) { + newObservable.view._connections = {}; + newObservable.view.reset(); + ExtenderHelper.executeOperations(newObservable); + } + }); return newObservable; }, @@ -5839,22 +5868,6 @@ filter: callback }); - observable.on('add', function () { - if (observable.view._initialized) { - observable.view._connections = {}; - observable.view.reset(); - ExtenderHelper.executeOperations(observable); - } - }); - - observable.on('remove', function () { - if (observable.view._initialized) { - observable.view._connections = {}; - observable.view.reset(); - ExtenderHelper.executeOperations(observable); - } - }); - return observable; }; diff --git a/dist/query/blocks-query.min.js b/dist/query/blocks-query.min.js index 74c1e14..7b40273 100644 --- a/dist/query/blocks-query.min.js +++ b/dist/query/blocks-query.min.js @@ -1,3 +1,3 @@ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=b(a,!0):b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a,b,d,e,g){if(g!==!1&&(g=!0),a===b)return 0!==a||1/a==1/b;if(null==a||null==b)return a===b;a instanceof k&&(a=a._wrapped),b instanceof k&&(b=b._wrapped);var h=f.call(a);if(h!=f.call(b))return!1;switch(h){case"[object String]":return a==String(b);case"[object Number]":return a!=+a?b!=+b:0===a?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if("object"!=typeof a||"object"!=typeof b)return!1;for(var i=d.length;i--;)if(d[i]==a)return e[i]==b;var j=a.constructor,l=b.constructor;if(j!==l&&!(k.isFunction(j)&&j instanceof j&&k.isFunction(l)&&l instanceof l)&&"constructor"in a&&"constructor"in b)return!1;d.push(a),e.push(b);var m=0,n=!0;if("[object Array]"==h){if(m=a.length,n=m==b.length)for(;m--&&(n=g?c(a[m],b[m],d,e,g):a[m]===b[m]););}else{for(var o in a)if(k.has(a,o)&&(m++,!(n=k.has(b,o)&&(g?c(a[o],b[o],d,e,g):a[o]===b[o]))))break;if(n){for(o in b)if(k.has(b,o)&&!m--)break;n=!m}}return d.pop(),e.pop(),n}function d(a,b){var c,d,e=this.__Class__;return k.isString(a)?d=e.prototype[a]:(b=a,d=e),this.__Class__=e.prototype.__Class__,c=d.apply(this,b||[]),this.__Class__=e,c}function e(a,b){if(null!=b){var c=a;a=function(a,d,e){return c.call(b,a,d,e)}}return a}var f=Object.prototype.toString,g=Array.prototype.slice,h=Object.prototype.hasOwnProperty,i={},j={},k=function(a){return j.expressionsCreated?0===arguments.length?j.staticExpression:j.createExpression(a):a};k.version="0.3.0",k.core=j,k.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[1]||{},h=2),"object"==typeof g||k.isFunction(g)||(g={});i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(k.isPlainObject(c)||(b=k.isArray(c)))?(b?(b=!1,f=a&&k.isArray(a)?a:[]):f=a&&k.isPlainObject(a)?a:{},g[d]=k.extend(j,f,c)):g[d]=c);return g},k.each=function(a,b,c){if(null!=a){var d=a.length,f=-1,g="number"==typeof d;if(b=e(b,c),g)for(;++f=0;)b(a[f],f,a);else for(f in a)b(a[f],f,a)}},k.each(["Arguments","Function","String","Number","Date","RegExp"],function(a){k["is"+a]=function(b){return f.call(b)=="[object "+a+"]"}}),k.isArguments(arguments)||(k.isArguments=function(a){return!(!a||!h.call(a,"callee"))}),"function"!=typeof/./&&(k.isFunction=function(a){return!(!a||"function"!=typeof a)}),k.isArray=Array.isArray||function(a){return"[object Array]"==f.call(a)},k.extend(k,{noop:function(){},inherit:function(a,b,c){return(arguments.length<3&&k.isPlainObject(b)||1==arguments.length)&&(c=b,b=a,a=void 0),a?(b.prototype=l(a.prototype),b.prototype.constructor=b,k.extend(b.prototype,c),b.prototype.__Class__=a,b.prototype._super=d):c&&(b.prototype=c),b},type:function(a){return a instanceof Array?"array":"string"==typeof a||a instanceof String?"string":"number"==typeof a||a instanceof Number?"number":a instanceof Date?"date":"[object RegExp]"===f.call(a)?"regexp":null===a?"null":void 0===a?"undefined":k.isFunction(a)?"function":k.isBoolean(a)?"boolean":"object"},is:function(a,b){return arguments.length>1&&k.isFunction(b)?b.prototype.isPrototypeOf(a):k.type(a)==b},has:function(a,b){return!(!a||!h.call(a,b))},hasValue:function(a){return!(null==a||k.isNumber(a)&&isNaN(a))},toString:function(a){var b="";return k.hasValue(a)&&(b=a.toString()),b},unwrap:function(a){return j.expressionsCreated&&j.isExpression(a)?a.value():k.unwrapObservable?k.unwrapObservable(a):a},$unwrap:function(a,b,c){return b=e(b,c),a&&a.jquery?(b&&a.each(function(){b(this)}),a=a[0]):b&&b(a),a},toArray:function(a){if(k.isArguments(a))return g.call(a);if(k.isElements(a)){for(var b=Array(a.length),c=-1,d=a.length;++c2?c:k.nothing,b=b.split("."),d=b[0];d;){if(null==a)return c;a=a[d],d=b[++e]}return a},swap:function(a,b,c){var d=a.length;return b>=0&&c>=0&&d>b&&d>c&&(a[b]=a[c]+(a[c]=a[b],0)),a},move:function(a,b,c){return b!=c&&(c>=b&&c++,a.splice(c,0,a[b]),b>c&&b++,a.splice(b,1)),a},bind:function(a,b){var c,d=function(){},e=g.call(arguments,2);return c=function(){if(!(this instanceof c))return a.apply(b,e.concat(g.call(arguments)));d.prototype=a.prototype;var f=new d,h=a.apply(f,e.concat(g.call(arguments)));return Object(h)===h?h:f}},equals:function(a,b,d){return a=k.unwrap(a),b=k.unwrap(b),c(a,b,[],[],d)}}),k.at=function(a){return{index:a,prototypeIndentification:"__blocks.at__"}},k.first=function(){return k.first},k.last=function(){return k.last};var l=Object.create||function(a){var b=function(){};return b.prototype=a,new b};for(var m in[i])break;i.ownPropertiesAreLast="0"!=m,function(){!function(){function a(a,b){if(null!=b){var c=a;a=function(a,d,e){return c.call(b,a,d,e)}}return a}function b(a){var b={};return k.each(a,function(a){b[a]=!0}),b}function c(){return!1}function d(){return!0}function e(a){this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?d:c,this.timeStamp=a.timeStamp||+new Date}function f(a,b,c){a.addEventListener&&"propertychange"!=b?a.addEventListener(b,function(a){c.call(this,e.fix(a))},!1):a.attachEvent&&a.attachEvent("on"+b,function(a){c.call(this,e.fix(a))})}function g(a,b){return a&&"string"==typeof a&&null!=b?(a=" "+a+" ",a.indexOf(" "+b+" ")):-1}function h(a){return String(a).replace(L,"&").replace(M,"<")}function i(a){var b=document.createDocumentFragment(),c=document.createElement("div"),d=1,e="",f="
",g="",h="",i="",j="";for(a=a.toString(),-1!=a.indexOf(""+a+"",d=2):-1==a.indexOf(""+a+"";d--;)c=c.lastChild;for(;c.firstChild;)b.appendChild(c.firstChild);return b}function j(a){return a?parseFloat(a[1]):void 0}function l(a,b,c){T[b]?T[b](a,c,function(b,c){f(a,b,c)}):f(a,b,c)}function m(a){return m.prototype.isPrototypeOf(this)?(this.__identity__=O,this._tagName=a?a.toString().toLowerCase():null,this._attributes={},this._attributeExpressions=[],this._parent=null,this._children=[],this._isSelfClosing=!1,this._haveAttributes=!0,this._innerHTML=null,this._renderMode=m.RenderMode.All,this._haveStyle=!1,this._style={},this._states=null,this._state=null,void(k.isElement(a)&&(this._el=a))):new m(a)}function n(a,b){var c,d,e=' style="',f=!1;for(c in a)d=a[c],b&&N.call(b.style,c)||(d||0===d)&&(f=!0,c=c.replace(/[A-Z]/g,o),e+=c,e+=":",e+=d,e+=";");if(b)for(c in b.style)d=b.style[c],(d||0===d)&&(f=!0,c=c.replace(/[A-Z]/g,o),e+=c,e+=":",e+=d,e+=";");return e+='"',f?e:""}function o(a){return"-"+a.toLowerCase()}function p(a,b,c){if(null!=c){c=k.isArray(c)?c:c.toString().split(" ");var d,e,f,h=0;if(m.Is(b))d=b._getAttr(H);else{if(b.classList)return void(Z?b.classList[a].apply(b.classList,c):k.each(c,function(c){b.classList[a](c)}));d=b.className}for(d=d||"";hf&&(""!==d&&(e=" "+e),d+=e):-1!=f&&(d=(d.substring(0,f)+" "+d.substring(f+e.length+1,d.length)).replace(G,""));m.Is(b)?b._state?b._state.attributes[H]=d:b._attributes[H]=d:b.className=d}}function q(a,b){var c=S.data(a);if(c&&c.animating>0){for(var d,e=a.childNodes,f=0,h=0;b!=h;){if(!e[f])return Number.POSITIVE_INFINITY;d=e[f].className,f++,-1==g(d,"b-hide")&&h++}if(!e[f])return Number.POSITIVE_INFINITY;for(d=e[f].className;-1!=g(d,"b-hide");){if(f++,!e[f])return Number.POSITIVE_INFINITY;d=e[f].className}return f}return b}function r(a,b){var c=!1,d=S.createIfNotExists(b),e=S.createIfNotExists(b.parentNode),f=d.animateCallback,g="remove"==a?"hide":"add"==a?"show":a,h="remove"==a?function(){S.clear(b,!0),b.parentNode&&b.parentNode.removeChild(b)}:"hide"==a?function(){b.style.display="none"}:k.noop,i=function(){d.animating-=1,e.animating-=1,d.animating||h()};if(1!=b.nodeType)return void h();if("show"==a&&(b.style.display=""),d.preprocess)return void h();if(f){c=!0,d.animating+=1,e.animating+=1;var j=k.context(b),l=j.$view||j.$root;f.call(l,b,i,g)}return c||s(g,b,h,i)}function s(a,b,c,d){function e(){p("remove",b,"b-"+a),p("remove",b,"b-"+a+"-end"),d(),b.removeEventListener("transitionend",e,!1),b.removeEventListener(f,e,!1)}if("undefined"==typeof window||void 0===window.ontransitionend)return void c();p("add",b,"b-"+a);var f,g=window.getComputedStyle(b),h="";void 0===window.onanimationend&&void 0!==window.onwebkitanimationend?(h="-webkit-",f="webkitAnimationEnd"):f="animationend";var i=parseFloat(g["transition-duration"])||0,j=parseFloat(g["transition-delay"])||0,k=parseFloat(g[h+"animation-duration"])||0,l=parseFloat(g[h+"animation-delay"])||0;return 0>=i&&0>=j&&0>=k&&0>=l?(p("remove",b,"b-"+a),void c()):(S.createIfNotExists(b).animating+=1,S.createIfNotExists(b.parentNode).animating+=1,setTimeout(function(){p("add",b,"b-"+a+"-end"),b.addEventListener("transitionend",e,!1),b.addEventListener(f,e,!1)},1),!0)}function t(a){return t.prototype.isPrototypeOf(this)?(this.__Class__(),void(8==a.nodeType?(this._commentText=a.nodeValue,this._el=a):this._commentText=a)):new t(a)}function u(a,b){for(var c,d,e,f,g,i,j,l,n,o=window.__blocksServerData__,p=[];a;){if(i=a.nodeType,1==i){d=a.tagName.toLowerCase(),c=new m(a),c._tagName=d,c._parent=b,b&&(c._each=b._each||b._childrenEach),c._haveAttributes=!1,f=a.attributes,e={};for(var q=0;q");else if(o){var r=parseInt(/[0-9]+/.exec(l),10);!k.isNaN(r)&&o[r]&&p.push(Y.Create(o[r]))}else 0!==l.indexOf("/blocks")&&p.push("")}a=a.nextSibling}return p}function v(a){for(var b,c,d,e=a.split(";"),f={},g=0;g1?F.on(this,a,b,c):F.on(this,a,b),this}}var b={on:function(a,b,c){return arguments.length>2?F.on(this,a,b,c):F.on(this,a,b),this},once:function(a,b,c){F.once(this,a,b,c)},off:function(a,b){F.off(this,a,b)},trigger:function(a){F.trigger(this,a,k.toArray(arguments).slice(1,100))}};return b._trigger=b.trigger,{register:function(c,d){d=k.isArray(d)?d:[d];for(var e=0;ef;f++)e=b[f],a._events[e]||(a._events[e]=[]),a._events[e].push({callback:c,thisArg:d})},once:function(a,b,c,d){F.on(a,b,c,d),F.on(a,b,function(){F.off(a,b,c)})},off:function(a,b,c){k.isFunction(b)&&(c=b,b=void 0),void 0!==b||void 0!==c?k.each(a._events,function(d,e){void 0!==b&&void 0===c?a._events[b]=[]:k.each(d,function(b,d){return b.callback==c?(a._events[e].splice(d,1),!1):void 0})}):a._events=void 0},trigger:function(a,b){var c,d,e,f=!0;return a&&a._events&&(c=a._events[b],c&&c.length>0&&(e=Array.prototype.slice.call(arguments,2),k.each(c,function(b){b&&(d=a,void 0!==b.thisArg&&(d=b.thisArg),b.callback.apply(d,e)===!1&&(f=!1))}))),f},has:function(a,b){return!!k.access(a,"_events."+b+".length")}}}();!function(){function b(){if("complete"===document.readyState)setTimeout(d);else if(document.addEventListener)document.addEventListener("DOMContentLoaded",c,!1),window.addEventListener("load",c,!1);else{document.attachEvent("onreadystatechange",c),window.attachEvent("onload",c);var a=!1;try{a=null==window.frameElement&&document.documentElement}catch(b){}a&&a.doScroll&&!function e(){if(!k.isDomReady){try{a.doScroll("left")}catch(b){return setTimeout(e,50)}d()}}()}}function c(){(document.addEventListener||"load"==event.type||"complete"==document.readyState)&&d()}function d(){k.isDomReady||(k.isDomReady=!0,F.trigger(k.core,"domReady"),F.off(k.core,"domReady"))}k.isDomReady=!1,k.domReady=function(c,d){"undefined"==typeof document||"undefined"==typeof window||window.__mock__&&document.__mock__||(c=a(c,d),k.isDomReady||"complete"==document.readyState||window.jQuery&&window.jQuery.isReady?(k.isDomReady=!0,c()):(F.on(k.core,"domReady",c),b()))}}();var G=(Array.prototype.slice,/^\s+|\s+$/gm),H="class",I=k.queries={},J=/^(?:mouse|pointer|contextmenu)|click/,K=/^key/;e.PropertiesToCopy={all:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),mouse:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),keyboard:"char charCode key keyCode".split(" ")},e.CopyProperties=function(a,b,c){k.each(e.PropertiesToCopy[c],function(c){b[c]=a[c]})},e.prototype={preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=d,a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=d,a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=d,a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},e.fix=function(a){var b=a.type,c=new e(a);return e.CopyProperties(a,c,"all"),c.target||(c.target=a.srcElement||document),3===c.target.nodeType&&(c.target=c.target.parentNode),c.metaKey=!!c.metaKey,J.test(b)?e.fixMouse(a,c):K.test(b)&&null==c.which&&(e.CopyProperties(a,c,"keyboard"),c.which=null!=a.charCode?a.charCode:a.keyCode),c},e.fixMouse=function(a,b){var c,d,f,g=a.button,h=a.fromElement;e.CopyProperties(a,b,"mouse"),null==b.pageX&&null!=a.clientX&&(d=b.target.ownerDocument||document,f=d.documentElement,c=d.body,b.pageX=a.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),b.pageY=a.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!b.relatedTarget&&h&&(b.relatedTarget=h===b.target?a.toElement:h),b.which||void 0===g||(b.which=1&g?1:2&g?3:4&g?2:0)};var L=/&/g,M=/",c[0];);return a>4?a:void 0}(),Opera:window&&window.navigator&&window.opera&&window.opera.version&&parseInt(window.opera.version(),10)||void 0,Safari:window&&window.navigator&&j(window.navigator.userAgent.match(/^(?:(?!chrome).)*version\/([^ ]*) safari/i)),Firefox:window&&window.navigator&&j(window.navigator.userAgent.match(/Firefox\/([^ ]*)/))});var S=function(){function a(a){var b=a?m.Is(a)?a._state?a._state.attributes[P]:a._attributes[P]:1==a.nodeType?a.getAttribute(P):8==a.nodeType?/\s+(\d+):[^\/]/.exec(a.nodeValue):null:null;return k.isArray(b)?b[1]:b}function b(a,b){m.Is(a)?a.attr(P,b):1==a.nodeType&&a.setAttribute(P,b)}var c={},d=1;return{id:function(b){return a(b)},reset:function(){c={},d=1},collectGarbage:function(){k.each(c,function(a){a&&a.dom&&!document.body.contains(a.dom)&&S.clear(a.id,!0)})},createIfNotExists:function(e){var f,g,h=e&&e.__identity__==O;return f=h?c[e._getAttr(P)]:c[e&&a(e)],f||(g=d++,e&&(h&&e._each?(e._haveAttributes=!0,e._state?e._state.attributes[P]=g:e._attributes[P]=g):b(e,g)),f=c[g]=e?{id:g,virtual:h?e:null,animating:0,observables:{},preprocess:h}:{id:g}),f},byId:function(a){return c[a]},data:function(b,d,e){var f=c[a(b)||b];if(f)return 1==arguments.length?f:(arguments.length>2&&(f[d]=e),f[d])},clear:function(b,d){var e=a(b)||b,f=c[e];!f||f.haveData&&!d||(k.each(f.observables,function(a){for(var b=0;b=8&&(U(a,d),c("dragend",e))):(c("input",d),R.Safari<7&&"textarea"==a.tagName.toLowerCase()?(c("keydown",e),c("paste",e),c("cut",e)):R.Opera<11?c("keydown",e):R.Firefox<4&&(c("DOMAutoComplete",d),c("dragdrop",d),c("drop",d)))}},U=function(){function a(a){var b=this.activeElement,c=b&&S.data(b,"selectionchange");c&&c(a)}var b=!1;return function(c,d){b||(f(c.ownerDocument,"selectionchange",a),b=!0),S.createIfNotExists(c).selectionChange=d}}(),V=k.dom={valueTagNames:{input:!0,textarea:!0,select:!0},valueTypes:{file:!0,hidden:!0,password:!0,text:!0,color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,time:!0,url:!0,week:!0},props:{"for":!0,"class":!0,value:!0,checked:!0,tabindex:!0,className:!0,htmlFor:!0},propFix:{"for":"htmlFor","class":"className",tabindex:"tabIndex"},attrFix:{className:"class",htmlFor:"for"},addClass:function(a,b){a&&p("add",a,b)},removeClass:function(a,b){a&&p("remove",a,b)},html:function(a,b){if(a)if(b=b.toString(),8==a.nodeType)V.comment.html(a,b);else if(R.IE<10){for(;a.firstChild;)a.removeChild(this._element.firstChild);a.appendChild(i(b))}else a.innerHTML=b},css:function(a,b,c){a&&b&&("display"==b?_.setVisibility(a,"none"==c?!1:!0):a.style[b]=c)},on:function(a,b,c){a&&l(a,b,c)},off:function(){},removeAttr:function(a,b){a&&b&&V.attr(a,b,null)},attr:function(a,c,d){var e=V.props[c];return c=V.propFix[c.toLowerCase()]||c,k.core.skipExecution&&k.core.skipExecution.element===a&&k.core.skipExecution.attributeName==c||!a?void 0:8==a.nodeType?void V.comment.attr(a,c,d):("checked"==c&&(d="checked"!=d&&"string"==typeof d&&"radio"==a.getAttribute("type")&&d!=a.value&&null!=a.defaultValue&&""!==a.defaultValue?!1:!!d),1===arguments.length?e?a[c]:a.getAttribute(c):void(null!=d?"value"==c&&"select"==a.tagName.toLowerCase()?(d=b(k.toArray(d)),k.each(a.children,function(a){a.selected=!!d[a.value]})):e?a[c]=d:a.setAttribute(c,d):e?"value"==c&&"select"==a.tagName.toLowerCase()?a.selectedIndex=-1:a[c]&&(a[c]=""):a.removeAttribute(c)))},comment:{html:function(a,b){for(var c,d=a,e=d.parentNode,f=d.nextSibling,g=0;f&&(8!=f.nodeType||-1==f.nodeValue.indexOf("/blocks"));)g++,c=f.nextSibling,e.removeChild(f),f=c;return e.insertBefore(i(b),d.nextSibling),g},attr:function(a,b,c){if(a&&b==P&&c){var d=a,e=a._endElement;return d.nodeValue=" "+c+":"+d.nodeValue.replace(G,"")+" ",e.nodeValue=" "+c+":"+e.nodeValue.replace(G,"")+" ",this}return this}}},W={},X=function(){var a=[];return{startObserving:function(){a.push([])},stopObserving:function(){return a.pop()},currentObservables:function(){return a[a.length-1]},registerObservable:function(b){var c=a[a.length-1],d=!1;c&&(k.each(c,function(a){return a===b?(d=!0,!1):void 0}),d||c.push(b))}}}(),Y={Html:0,ValueOnly:2,Create:function(a,b,c){for(var d,e,f,g=-1,h=0,i=[];a.length>++g;)d=a.charAt(g),"{"==d&&"{"==a.charAt(g+1)?e=g+2:"}"==d&&"}"==a.charAt(g+1)&&(e&&(f=a.substring(e,g),b||(f=f.replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")),d=a.substring(h,e-2),d&&i.push(d),i.push({expression:f,attributeName:b}),h=g+2),e=0);return d=a.substring(h),d&&i.push(d),i.text=a,i.attributeName=b,i.element=c,i.isExpression=!0,f?i:null},GetValue:function(a,b,c,d){var e,f="",g=c.length,h=-1;if(!a)return c.text;if(1==g)f=Y.Execute(a,b,c[0],c,d);else for(;++h"+j)),j}};k.VirtualElement=k.inherit(m,{tagName:function(a){return a?(this._tagName=a,this):this._tagName},html:function(a){return arguments.length>0?(a=null==a?"":a,this._state?this._state.html!==a&&(this._state.html=a,V.html(this._el,a)):(this._innerHTML=a,V.html(this._el,a)),this._children=[],this):this._innerHTML||""},text:function(a){return arguments.length>0?(null!=a&&(a=h(a),this.html(a)),this):this.html()},parent:function(){return this._parent},children:function(a){return"number"==typeof a?this._children[a]:this._children},attr:function(a,c){var d,e=this;if("string"==typeof a){var f=this._tagName,g=this._attributes.type,h=c,i=S.data(this),j=this._getAttr("value");if(a=k.unwrapObservable(a),a=V.attrFix[a]||a,c=k.unwrapObservable(c),k.isObservable(h)&&"value"==a&&V.valueTagNames[f]&&(!g||V.valueTypes[g])?(i.subscribe="select"==f?"change":"input",i.valueObservable=h):!k.isObservable(h)||"checked"!=a||"checkbox"!=g&&"radio"!=g||(i.subscribe="click",i.valueObservable=h),1==arguments.length)return d=this._getAttr(a),void 0===d?null:d;"checked"!=a||null==c||this._fake?"disabled"==a&&(c=c?"disabled":null):c="radio"==this._attributes.type&&"string"==typeof c&&j!=c&&null!=j?null:c?"checked":null,"textarea"!=f||"value"!=a||this._el?"value"==a&&"select"==f?(this._values=b(k.toArray(c)),V.attr(this._el,a,c)):(this._haveAttributes=!0,this._state?this._state.attributes[a]!==c&&(this._state.attributes[a]=c,V.attr(this._el,a,c)):(this._attributes[a]=c,V.attr(this._el,a,c))):this.html(c)}else k.isPlainObject(a)&&k.each(a,function(a,b){e.attr(b,a)});return this},removeAttr:function(a){return this._attributes[a]=null,V.removeAttr(this._el,a),this},css:function(a,b){var c=this;if("string"==typeof a){if(a=k.unwrap(a),b=k.unwrap(b),!a)return;if(a=a.toString().replace(/-\w/g,function(a){return a.charAt(1).toUpperCase()}),1===arguments.length)return b=this._getCss(a),void 0===b?null:b;"display"==a&&(b="none"==b||!b&&""!==b?"none":""),this._haveStyle=!0,m.CssNumbers[a]||(b=k.toUnit(b)),this._state?this._state.style[a]!==b&&(this._state.style[a]=b,V.css(this._el,a,b)):(this._style[a]=b,V.css(this._el,a,b))}else k.isPlainObject(a)&&k.each(a,function(a,b){c.css(b,a)});return this},addChild:function(a,b){var c,d=this._template||this._children;return a&&(a._parent=this,this._childrenEach||this._each?a._each=!0:this._el&&(c=i(a.render(k.domQuery(this))),a._el=c.childNodes[0],"number"==typeof b?this._el.insertBefore(c,this._el.childNodes[b]):this._el.appendChild(c)),"number"==typeof b?d.splice(b,0,a):d.push(a)),this},addClass:function(a){return p("add",this,a),V.addClass(this._el,a),this},removeClass:function(a){return p("remove",this,a),V.removeClass(this._el,a),this},toggleClass:function(a,b){b===!1?this.removeClass(a):this.addClass(a)},hasClass:function(a){return-1!=g(this._attributes[H],a)},renderBeginTag:function(){var a;return a="<"+this._tagName,this._haveAttributes&&(a+=this._renderAttributes()),this._haveStyle&&(a+=n(this._style,this._state)),a+=this._isSelfClosing?" />":">"},renderEndTag:function(){return this._isSelfClosing?"":""},render:function(a,b){var c="",d="",e=this._el;return void 0!==b&&(this._state={attributes:{},style:{},html:null,expressions:{}},this._states||(this._states={}),this._states[b]=this._state),this._el=void 0,this._execute(a),this._el=e,this._renderMode!=m.RenderMode.None&&(this._renderMode!=m.RenderMode.ElementOnly&&(d=this._state&&null!==this._state.html?this._state.html:null!=this._innerHTML?this._innerHTML:this.renderChildren(a,b)),c+=this.renderBeginTag(),c+=d,c+=this.renderEndTag()),this._state=null,c},renderChildren:function(a,b){for(var c,d,e="",f=this._template||this._children,g=f.length,h=-1;++he;e++)d=a.childNodes[b],d&&r("remove",d)&&b++},setVisibility:function(a,b){b?_.show(a):_.hide(a)},show:function(a){r("show",a)},hide:function(a){r("hide",a)}};k.VirtualComment=k.inherit(m,t,{renderBeginTag:function(){var a=this._getAttr(P),b=""},renderEndTag:function(){var a=this._getAttr(P),b=""},_executeAttributeExpressions:k.noop}),t.Is=function(a){return t.prototype.isPrototypeOf(a)};var ab={};z.QueryCache={},z.prototype={options:function(){return this._options},dataIndex:x("_dataIndex"),context:x("_context"),popContext:function(){this._context&&(this._context=this._context.$parentContext)},applyContextToElement:function(a){var b=S.createIfNotExists(a);b.domQuery=this,b.context=this._context,(this._hasChanged||a._each&&!a._parent._each)&&(a._parent&&!a._each&&(b=S.createIfNotExists(a._parent),b.childrenContext=this._context),this._hasChanged=!1,b.haveData=!0)},pushContext:function(a){var b,c=this._context,d=c?c.$parents.slice(0):[];return this._hasChanged=!0,c&&d.unshift(c.$this),b={$this:a,$root:c?c.$root:a,$parent:c?c.$this:null,$parents:c?d:[],$index:this._dataIndex||null,$parentContext:c||null},b.$context=b,this._context=b,this.applyDefinedContextProperties(),b},getSyncIndex:function(){for(var a=this._context,b="";a&&a.$index;)b=a.$index.__value__+"_"+b,a=a.$parentContext;return b},contextBubble:function(a,b){var c=this._context;this._context=a,b(),this._context=c},addProperty:function(a,b){this._contextProperties[a]=b,this.applyDefinedContextProperties()},removeProperty:function(a){delete this._contextProperties[a]},applyDefinedContextProperties:function(){var a,b=this._context,c=this._contextProperties;for(a in c)b[a]=c[a]},executeElementQuery:function(a){var b=m.Is(a)?a._attributes[Q]:1==a.nodeType?a.getAttribute(Q):a.nodeValue.substring(a.nodeValue.indexOf("blocks")+6).replace(G,"");b&&this.executeQuery(a,b)},executeQuery:function(a,b){var c=z.QueryCache[b]||A(b,a);this.executeMethods(a,c)},executeMethods:function(a,b){for(var c,d,e,f,g,h,i,j=S.data(a),l=0,n=0;nl,l=X.currentObservables().length,d.push(e)):d.push(c.passRawValues?e.rawValue:e.value),c===k.queries["if"]||c===k.queries.ifnot){if(!e.value&&c===k.queries["if"]||e.value&&c===k.queries.ifnot){if(!f[2])break;this.executeQuery(a,f[2]);break}this.executeQuery(a,f[1]);break}}var q=d;if(c.passDomQuery&&(q=k.clone(d).slice(1)),k.debug.checkQuery(b[n].name,q,b[n],a),m.Is(a)){if(t.Is(a)&&!c.supportsComments)continue;if(c.call)c.call===!0?a[b[n].name].apply(a,d):(d.unshift(c.prefix||b[n].name),a[c.call].apply(a,d));else if(c.preprocess&&c.preprocess.apply(a,d)===!1){this.subscribeObservables(b[n],j,h);break}}else if(c.call){var r=S.data(a).virtual;r._each&&(r=m("div"),r._el=a,r._fake=!0),c.call===!0?r[b[n].name].apply(r,d):(d.unshift(c.prefix||b[n].name),r[c.call].apply(r,d))}else j&&j.preprocess&&c.ready?c.ready.apply(a,d):c.update&&c.update.apply(a,d);this.subscribeObservables(b[n],j,h)}else j.haveData=!0,j.execute||(j.execute=[]),j.execute.push(b[n])},subscribeObservables:function(a,b,c){var d=X.stopObserving();b&&(b.haveData=!0,k.each(d,function(d){b.observables[d.__id__+a.query]||(b.observables[d.__id__+a.query]=d,d._elements.push({elementId:b.id,cache:[a],context:c}))}))},createElementObservableDependencies:function(a){for(var b,c,d,e=0;e1?this.toggleClass(a,!!b):this.addClass(a)},update:function(a,b){var c=S.data(this).virtual;c._each&&(c=m(),c._el=this),arguments.length>1?c.toggleClass(a,b):c.addClass(a)}},html:{call:!0},text:{call:!0},visible:{call:"css",prefix:"display"},attr:{passRawValues:!0,call:!0},val:{passRawValues:!0,call:"attr",prefix:"value"},checked:{passRawValues:!0,call:"attr"},disabled:{passRawValues:!0,call:"attr"},css:{call:!0},width:{call:"css"},height:{call:"css"},focused:{preprocess:k.noop,update:function(a){a&&this.focus()}},on:{ready:function(a,b,c){if(a&&b){b=k.toArray(b);var d=this,e=function(a){var d=k.context(this),e=d.$template||d.$view||d.$root;k.each(b,function(b){b.call(e,a,c)})};a=k.isArray(a)?a:a.toString().split(" "),k.each(a,function(a){f(d,a,e)})}}}}),k.each(["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout","select","change","submit","reset","focus","blur","keydown","keypress","keyup"],function(a){k.queries[a]={passRawValues:!0,ready:function(b,c){k.queries.on.ready.call(this,a,b,c)}}});var cb="__blocks.observable__";B.prototype={dispose:function(){this.childNodesCount=void 0,this.startIndex=0,this.observableLength=void 0,this.startOffset=0,this.endOffset=0},setStartIndex:function(a){this.startIndex=a+this.startOffset},setChildNodesCount:function(a){void 0===this.childNodesCount&&(this.observableLength=this.observable.__value__.length),this.childNodesCount=a-(this.startOffset+this.endOffset)},chunkLength:function(a){var b,c=this.chunkLengths,d=S.id(a),e=c[d]||(this.childNodesCount||a.childNodes.length)/(this.observableLength||this.observable.__value__.length);return b=k.isNaN(e)||1/0===e?0:Math.round(e),c[d]=b,b},getAt:function(a,b){for(var c=this.chunkLength(a),d=a.childNodes,e=[],f=0;c>f;f++)e[f]=d[b*c+f+this.startIndex];return e},insertAt:function(a,b,c){_.insert(a,this.chunkLength(a)*b+this.startIndex,k.isArray(c)?c:[c])},removeAt:function(a,b){var c=this.chunkLength(a);_.remove(a,c*b+this.startIndex,c)},remove:function(a,b){var c=this;this.each(function(d){for(var e=0;b>e;e++)c.removeAt(d,a)}),S.collectGarbage(),this.dispose(),this.observable._indexes.splice(a,b)},removeAll:function(){var a=this,b=this.observable.__value__;this.each(function(c){k.each(b,function(){a.removeAt(c,0)})})},add:function(a,b){var c=this,d=this.observable;k.each(a,function(a,c){d._indexes.splice(b+c,0,k.observable(b+c))}),this.each(function(e,f){var g,h=k.domQuery(e),i=k.context(e),j="";if(h.contextBubble(i,function(){g=h.getSyncIndex();for(var c=0;c0?c.add(a.slice(b.length),b.length):e>0&&c.remove(a.length,e),this.__value__=a,F.trigger(this,"remove",{type:"remove",items:b,index:0}),F.trigger(this,"add",{type:"add",items:a,index:0}),this},add:function(a,b){return this.splice(k.isNumber(b)?b:this.__value__.length,0,a),this},addMany:function(a,b){return this.splice.apply(this,[k.isNumber(b)?b:this.__value__.length,0].concat(k.toArray(a))),this},swap:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;k.swap(d,a,b);for(var g=0;gb?(f.insertAt(c,a,f.getAt(c,b)),f.insertAt(c,b,f.getAt(c,a))):(f.insertAt(c,b,f.getAt(c,a)),f.insertAt(c,a,f.getAt(c,b)));return this},move:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;k.move(d,a,b),b>a&&b++;for(var g=0;g1?this().slice(a,b):this().slice(a)},join:function(a){return arguments.length>0?this().join(a):this().join()},pop:function(){var a=this,b=a();return a.splice(b.length-1,1)[0]},push:function(){return this.addMany(arguments),this.__value__.length},reverse:function(){var a=this().reverse(),b=this._chunkManager;return this._indexes.reverse(),b.each(function(c){for(var d=1;d0,g=this._chunkManager,h=this._indexes,i=0;e>i;i++){var j=[d[i],i];g.each(function(a){j.push(g.getAt(a,i))}),d[i]=j}for(d.sort(function(b,c){return b=b[0],c=c[0],f?a.call(this,b,c):c>b?-1:b>c?1:0}),h.length>0&&(this._indexes=[]),i=0;e>i;i++)c=d[i],h.length>0&&this._indexes.push(h[c[1]]),b=2,g.each(function(a){g.insertAt(a,e,c[b]),b++}),d[i]=c[0];return this.update(),d},splice:function(a,b){var c,d=this.__value__,e=this._chunkManager,f=[],g=arguments;return a=0>a?d.length-a:a,b&&a=0&&(b=Math.min(d.length-a,b),f=d.slice(a,a+b),F.trigger(this,"removing",{type:"removing",items:f,index:a}),e.remove(a,b),f=d.splice(a,b),F.trigger(this,"remove",{type:"remove",items:f,index:a})),g.length>2&&(c=k.toArray(g),c.splice(0,2),F.trigger(this,"adding",{type:"adding",index:a,items:c}),e.add(c,a),d.splice.apply(d,[a,0].concat(c)),F.trigger(this,"add",{type:"add",index:a,items:c})),this.update(),f},unshift:function(){return this.addMany(arguments,0),this.__value__.length}}}});var fb={waiting:{},initExpressionExtender:function(a){var b=a.clone();return b.view=k.observable([]),b.view._connections={},b.view._observed=[],b.view._updateObservable=k.bind(fb.updateObservable,b),b._operations=a._operations?k.clone(a._operations):[],b._getter=k.bind(fb.getter,b),b.view._initialized=!1,b.view.on("get",b._getter),b},getter:function(){F.off(this.view,"get",this._getter),this._getter=void 0,this.view._initialized=!0,fb.executeOperationsPure(this)},updateObservable:function(){fb.executeOperations(this)},executeOperationsPure:function(a){var b=[],c=a.view._observed,d=a.view._updateObservable;k.each(c,function(a){F.off(a,"change",d)}),c=a.view._observed=[],X.startObserving(),k.each(a._operations,function(c){if("step"==c.type){var d=a.view;a.view=k.observable([]),a.view._connections={},b.length&&fb.executeOperationsChunk(a,b),c.step.call(a.__context__),a.view=d}else b.push(c)}),b.length&&fb.executeOperationsChunk(a,b),k.each(X.stopObserving(),function(a){c.push(a),a.on("change",d)})},executeOperations:function(a){var b=a.__id__,c=fb.waiting;c[b]||(c[b]=!0,setTimeout(function(){fb.executeOperationsPure(a),c[b]=!1},0))},executeOperationsChunk:function(a,b){var c="add",d="remove",e="exists",f=e,g=a.__value__,h=a.view,i=h._connections,j={},l=0,m=h.update,n=0,o=g.length;h.update=k.noop,k.each(b,function(c){"skip"==c.type?(n=c.skip,k.isFunction(n)&&(n=n.call(a.__context__)),n=k.unwrap(n)):"take"==c.type?(o=c.take,k.isFunction(o)&&(o=o.call(a.__context__)),o=k.unwrap(o)):"sort"==c.type&&(g=k.isString(c.sort)?k.clone(g).sort(function(a,b){return a[c.sort]-b[c.sort]}):k.isFunction(c.sort)?k.clone(g).sort(c.sort):k.clone(g).sort(),1==b.length&&b.push({type:"filter",filter:function(){return!0}}))}),k.each(g,function(m,p){if(0>=o){for(;h().length-l>0;)h.removeAt(h().length-1);return!1}switch(k.each(b,function(b){var h=b.filter;if(f=void 0,h){if(!h.call(a.__context__,m,p,g))return f=void 0,void 0!==i[p]&&(f=d),!1;f=e,void 0===i[p]&&(f=c)}else if("skip"==b.type){if(f=e,n-=1,n>=0)return f=d,!1;0>n&&void 0===i[p]&&(f=c)}else if("take"==b.type){if(0>=o)return f=d,!1;o-=1,f=e,void 0===i[p]&&(f=c)}}),f){case c:j[p]=l,h.splice(l,0,m),l++;break;case d:h.removeAt(l);break;case e:j[p]=l,l++}}),h._connections=j,h.update=m,h.update()}};k.observable.filter=function(a){var b=fb.initExpressionExtender(this),c=a;return(!k.isFunction(c)||k.isObservable(c))&&(c=function(b){var c=k.unwrap(a),d=String(c).toLowerCase();return b=String(k.unwrap(b)).toLowerCase(),!c||-1!=b.indexOf(d)}),b._operations.push({type:"filter",filter:c}),b.on("add",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),fb.executeOperations(b))}),b.on("remove",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),fb.executeOperations(b))}),b},k.observable.step=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"step",step:a}),b},k.observable.skip=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"skip",skip:a}),b},k.observable.take=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"take",take:a}),b},k.observable.sort=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"sort",sort:a}),b},k.query=function(a,b){k.domReady(function(){k.$unwrap(b,function(b){k.isElement(b)||(b=document.body);var c=new z,d=u(b)[0],e=window.__blocksServerData__;c.pushContext(a),c._serverData=e,e?d.render(c):d.sync(c),c.createElementObservableDependencies([b])})})},k.executeQuery=function(a,b){var c=m.Is(a)?"preprocess":"update",d=Array.prototype.slice.call(arguments,2),e=k.queries[b];e.passDomQuery&&d.unshift(k.domQuery(a)),e[c].apply(a,d)},k.context=function(a,b){if(a=k.$unwrap(a)){var c=S.data(a);if(c){if(b&&c.childrenContext)return c.childrenContext;if(c.context)return c.context}return k.context(m.Is(a)?a._parent:a.parentNode,!0)}return null},k.dataItem=function(a){var b=k.context(a);return b?b.$this:null},k.isObservable=function(a){return!!a&&a.__identity__===cb},k.unwrapObservable=function(a){return a&&a.__identity__===cb?a():a},k.domQuery=function(a){if(a=k.$unwrap(a)){var b=S.data(a,"domQuery");return b?b:k.domQuery(m.Is(a)?a._parent:a.parentNode)}return null}}()}(),function(){var a=k.toString;k.toString=function(b){return 0===arguments.length?"jsblocks - Better MV-ish Framework":a(b)}}();var n=a.blocks;return k.noConflict=function(b){return a.blocks===k&&(a.blocks=n),b&&a.blocks===k&&(a.blocks=n),k},"function"==typeof define&&define.amd&&define("blocks",[],function(){return k}),b!==!0&&(a.blocks=k),k}); +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=b(a,!0):b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a,b,d,e,g){if(g!==!1&&(g=!0),a===b)return 0!==a||1/a==1/b;if(null==a||null==b)return a===b;a instanceof k&&(a=a._wrapped),b instanceof k&&(b=b._wrapped);var h=f.call(a);if(h!=f.call(b))return!1;switch(h){case"[object String]":return a==String(b);case"[object Number]":return a!=+a?b!=+b:0===a?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if("object"!=typeof a||"object"!=typeof b)return!1;for(var i=d.length;i--;)if(d[i]==a)return e[i]==b;var j=a.constructor,l=b.constructor;if(j!==l&&!(k.isFunction(j)&&j instanceof j&&k.isFunction(l)&&l instanceof l)&&"constructor"in a&&"constructor"in b)return!1;d.push(a),e.push(b);var m=0,n=!0;if("[object Array]"==h){if(m=a.length,n=m==b.length)for(;m--&&(n=g?c(a[m],b[m],d,e,g):a[m]===b[m]););}else{for(var o in a)if(k.has(a,o)&&(m++,!(n=k.has(b,o)&&(g?c(a[o],b[o],d,e,g):a[o]===b[o]))))break;if(n){for(o in b)if(k.has(b,o)&&!m--)break;n=!m}}return d.pop(),e.pop(),n}function d(a,b){var c,d,e=this.__Class__;return k.isString(a)?d=e.prototype[a]:(b=a,d=e),this.__Class__=e.prototype.__Class__,c=d.apply(this,b||[]),this.__Class__=e,c}function e(a,b){if(null!=b){var c=a;a=function(a,d,e){return c.call(b,a,d,e)}}return a}var f=Object.prototype.toString,g=Array.prototype.slice,h=Object.prototype.hasOwnProperty,i={},j={},k=function(a){return j.expressionsCreated?0===arguments.length?j.staticExpression:j.createExpression(a):a};k.version="0.3.0",k.core=j,k.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[1]||{},h=2),"object"==typeof g||k.isFunction(g)||(g={});i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(k.isPlainObject(c)||(b=k.isArray(c)))?(b?(b=!1,f=a&&k.isArray(a)?a:[]):f=a&&k.isPlainObject(a)?a:{},g[d]=k.extend(j,f,c)):g[d]=c);return g},k.each=function(a,b,c){if(null!=a){var d=a.length,f=-1,g="number"==typeof d;if(b=e(b,c),g)for(;++f=0;)b(a[f],f,a);else for(f in a)b(a[f],f,a)}},k.each(["Arguments","Function","String","Number","Date","RegExp"],function(a){k["is"+a]=function(b){return f.call(b)=="[object "+a+"]"}}),k.isArguments(arguments)||(k.isArguments=function(a){return!(!a||!h.call(a,"callee"))}),"function"!=typeof/./&&(k.isFunction=function(a){return!(!a||"function"!=typeof a)}),k.isArray=Array.isArray||function(a){return"[object Array]"==f.call(a)},k.extend(k,{noop:function(){},inherit:function(a,b,c){return(arguments.length<3&&k.isPlainObject(b)||1==arguments.length)&&(c=b,b=a,a=void 0),a?(b.prototype=l(a.prototype),b.prototype.constructor=b,k.extend(b.prototype,c),b.prototype.__Class__=a,b.prototype._super=d):c&&(b.prototype=c),b},type:function(a){return a instanceof Array?"array":"string"==typeof a||a instanceof String?"string":"number"==typeof a||a instanceof Number?"number":a instanceof Date?"date":"[object RegExp]"===f.call(a)?"regexp":null===a?"null":void 0===a?"undefined":k.isFunction(a)?"function":k.isBoolean(a)?"boolean":"object"},is:function(a,b){return arguments.length>1&&k.isFunction(b)?b.prototype.isPrototypeOf(a):k.type(a)==b},has:function(a,b){return!(!a||!h.call(a,b))},hasValue:function(a){return!(null==a||k.isNumber(a)&&isNaN(a))},toString:function(a){var b="";return k.hasValue(a)&&(b=a.toString()),b},unwrap:function(a){return j.expressionsCreated&&j.isExpression(a)?a.value():k.unwrapObservable?k.unwrapObservable(a):a},$unwrap:function(a,b,c){return b=e(b,c),a&&a.jquery?(b&&a.each(function(){b(this)}),a=a[0]):b&&b(a),a},toArray:function(a){if(k.isArguments(a))return g.call(a);if(k.isElements(a)){for(var b=Array(a.length),c=-1,d=a.length;++c2?c:k.nothing,b=b.split("."),d=b[0];d;){if(null==a)return c;a=a[d],d=b[++e]}return a},swap:function(a,b,c){var d=a.length;return b>=0&&c>=0&&d>b&&d>c&&(a[b]=a[c]+(a[c]=a[b],0)),a},move:function(a,b,c){return b!=c&&(c>=b&&c++,a.splice(c,0,a[b]),b>c&&b++,a.splice(b,1)),a},bind:function(a,b){var c,d=function(){},e=g.call(arguments,2);return c=function(){if(!(this instanceof c))return a.apply(b,e.concat(g.call(arguments)));d.prototype=a.prototype;var f=new d,h=a.apply(f,e.concat(g.call(arguments)));return Object(h)===h?h:f}},equals:function(a,b,d){return a=k.unwrap(a),b=k.unwrap(b),c(a,b,[],[],d)}}),k.at=function(a){return{index:a,prototypeIndentification:"__blocks.at__"}},k.first=function(){return k.first},k.last=function(){return k.last};var l=Object.create||function(a){var b=function(){};return b.prototype=a,new b};for(var m in[i])break;i.ownPropertiesAreLast="0"!=m,function(){!function(){function a(a,b){if(null!=b){var c=a;a=function(a,d,e){return c.call(b,a,d,e)}}return a}function b(a){var b={};return k.each(a,function(a){b[a]=!0}),b}function c(){return!1}function d(){return!0}function e(a){this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?d:c,this.timeStamp=a.timeStamp||+new Date}function f(a,b,c){a.addEventListener&&"propertychange"!=b?a.addEventListener(b,function(a){c.call(this,e.fix(a))},!1):a.attachEvent&&a.attachEvent("on"+b,function(a){c.call(this,e.fix(a))})}function g(a,b){return a&&"string"==typeof a&&null!=b?(a=" "+a+" ",a.indexOf(" "+b+" ")):-1}function h(a){return String(a).replace(L,"&").replace(M,"<")}function i(a){var b=document.createDocumentFragment(),c=document.createElement("div"),d=1,e="",f="
",g="",h="",i="",j="";for(a=a.toString(),-1!=a.indexOf(""+a+"",d=2):-1==a.indexOf(""+a+"";d--;)c=c.lastChild;for(;c.firstChild;)b.appendChild(c.firstChild);return b}function j(a){return a?parseFloat(a[1]):void 0}function l(a,b,c){T[b]?T[b](a,c,function(b,c){f(a,b,c)}):f(a,b,c)}function m(a){return m.prototype.isPrototypeOf(this)?(this.__identity__=O,this._tagName=a?a.toString().toLowerCase():null,this._attributes={},this._attributeExpressions=[],this._parent=null,this._children=[],this._isSelfClosing=!1,this._haveAttributes=!0,this._innerHTML=null,this._renderMode=m.RenderMode.All,this._haveStyle=!1,this._style={},this._states=null,this._state=null,void(k.isElement(a)&&(this._el=a))):new m(a)}function n(a,b){var c,d,e=' style="',f=!1;for(c in a)d=a[c],b&&N.call(b.style,c)||(d||0===d)&&(f=!0,c=c.replace(/[A-Z]/g,o),e+=c,e+=":",e+=d,e+=";");if(b)for(c in b.style)d=b.style[c],(d||0===d)&&(f=!0,c=c.replace(/[A-Z]/g,o),e+=c,e+=":",e+=d,e+=";");return e+='"',f?e:""}function o(a){return"-"+a.toLowerCase()}function p(a,b,c){if(null!=c){c=k.isArray(c)?c:c.toString().split(" ");var d,e,f,h=0;if(m.Is(b))d=b._getAttr(H);else{if(b.classList)return void(Z?b.classList[a].apply(b.classList,c):k.each(c,function(c){b.classList[a](c)}));d=b.className}for(d=d||"";hf&&(""!==d&&(e=" "+e),d+=e):-1!=f&&(d=(d.substring(0,f)+" "+d.substring(f+e.length+1,d.length)).replace(G,""));m.Is(b)?b._state?b._state.attributes[H]=d:b._attributes[H]=d:b.className=d}}function q(a,b){var c=S.data(a);if(c&&c.animating>0){for(var d,e=a.childNodes,f=0,h=0;b!=h;){if(!e[f])return Number.POSITIVE_INFINITY;d=e[f].className,f++,-1==g(d,"b-hide")&&h++}if(!e[f])return Number.POSITIVE_INFINITY;for(d=e[f].className;-1!=g(d,"b-hide");){if(f++,!e[f])return Number.POSITIVE_INFINITY;d=e[f].className}return f}return b}function r(a,b){var c=!1,d=S.createIfNotExists(b),e=S.createIfNotExists(b.parentNode),f=d.animateCallback,g="remove"==a?"hide":"add"==a?"show":a,h="remove"==a?function(){S.clear(b,!0),b.parentNode&&b.parentNode.removeChild(b)}:"hide"==a?function(){b.style.display="none"}:k.noop,i=function(){d.animating-=1,e.animating-=1,d.animating||h()};if(1!=b.nodeType)return void h();if("show"==a&&(b.style.display=""),d.preprocess)return void h();if(f){c=!0,d.animating+=1,e.animating+=1;var j=k.context(b),l=j.$view||j.$root;f.call(l,b,i,g)}return c||s(g,b,h,i)}function s(a,b,c,d){function e(){p("remove",b,"b-"+a),p("remove",b,"b-"+a+"-end"),d(),b.removeEventListener("transitionend",e,!1),b.removeEventListener(f,e,!1)}if("undefined"==typeof window||void 0===window.ontransitionend)return void c();p("add",b,"b-"+a);var f,g=window.getComputedStyle(b),h="";void 0===window.onanimationend&&void 0!==window.onwebkitanimationend?(h="-webkit-",f="webkitAnimationEnd"):f="animationend";var i=parseFloat(g["transition-duration"])||0,j=parseFloat(g["transition-delay"])||0,k=parseFloat(g[h+"animation-duration"])||0,l=parseFloat(g[h+"animation-delay"])||0;return 0>=i&&0>=j&&0>=k&&0>=l?(p("remove",b,"b-"+a),void c()):(S.createIfNotExists(b).animating+=1,S.createIfNotExists(b.parentNode).animating+=1,setTimeout(function(){p("add",b,"b-"+a+"-end"),b.addEventListener("transitionend",e,!1),b.addEventListener(f,e,!1)},1),!0)}function t(a){return t.prototype.isPrototypeOf(this)?(this.__Class__(),void(8==a.nodeType?(this._commentText=a.nodeValue,this._el=a):this._commentText=a)):new t(a)}function u(a,b){for(var c,d,e,f,g,i,j,l,n,o=window.__blocksServerData__,p=[];a;){if(i=a.nodeType,1==i){d=a.tagName.toLowerCase(),c=new m(a),c._tagName=d,c._parent=b,b&&(c._each=b._each||b._childrenEach),c._haveAttributes=!1,f=a.attributes,e={};for(var q=0;q");else if(o){var r=parseInt(/[0-9]+/.exec(l),10);!k.isNaN(r)&&o[r]&&p.push(Y.Create(o[r]))}else 0!==l.indexOf("/blocks")&&p.push("")}a=a.nextSibling}return p}function v(a){for(var b,c,d,e=a.split(";"),f={},g=0;g1?F.on(this,a,b,c):F.on(this,a,b),this}}var b={on:function(a,b,c){return arguments.length>2?F.on(this,a,b,c):F.on(this,a,b),this},once:function(a,b,c){F.once(this,a,b,c)},off:function(a,b){F.off(this,a,b)},trigger:function(a){F.trigger(this,a,k.toArray(arguments).slice(1,100))}};return b._trigger=b.trigger,{register:function(c,d){d=k.isArray(d)?d:[d];for(var e=0;ef;f++)e=b[f],a._events[e]||(a._events[e]=[]),a._events[e].push({callback:c,thisArg:d})},once:function(a,b,c,d){F.on(a,b,c,d),F.on(a,b,function(){F.off(a,b,c)})},off:function(a,b,c){k.isFunction(b)&&(c=b,b=void 0),void 0!==b||void 0!==c?k.each(a._events,function(d,e){void 0!==b&&void 0===c?a._events[b]=[]:k.each(d,function(b,d){return b.callback==c?(a._events[e].splice(d,1),!1):void 0})}):a._events=void 0},trigger:function(a,b){var c,d,e,f=!0;return a&&a._events&&(c=a._events[b],c&&c.length>0&&(e=Array.prototype.slice.call(arguments,2),k.each(c,function(b){b&&(d=a,void 0!==b.thisArg&&(d=b.thisArg),b.callback.apply(d,e)===!1&&(f=!1))}))),f},has:function(a,b){return!!k.access(a,"_events."+b+".length")}}}();!function(){function b(){if("complete"===document.readyState)setTimeout(d);else if(document.addEventListener)document.addEventListener("DOMContentLoaded",c,!1),window.addEventListener("load",c,!1);else{document.attachEvent("onreadystatechange",c),window.attachEvent("onload",c);var a=!1;try{a=null==window.frameElement&&document.documentElement}catch(b){}a&&a.doScroll&&!function e(){if(!k.isDomReady){try{a.doScroll("left")}catch(b){return setTimeout(e,50)}d()}}()}}function c(){(document.addEventListener||"load"==event.type||"complete"==document.readyState)&&d()}function d(){k.isDomReady||(k.isDomReady=!0,F.trigger(k.core,"domReady"),F.off(k.core,"domReady"))}k.isDomReady=!1,k.domReady=function(c,d){"undefined"==typeof document||"undefined"==typeof window||window.__mock__&&document.__mock__||(c=a(c,d),k.isDomReady||"complete"==document.readyState||window.jQuery&&window.jQuery.isReady?(k.isDomReady=!0,c()):(F.on(k.core,"domReady",c),b()))}}();var G=(Array.prototype.slice,/^\s+|\s+$/gm),H="class",I=k.queries={},J=/^(?:mouse|pointer|contextmenu)|click/,K=/^key/;e.PropertiesToCopy={all:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),mouse:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),keyboard:"char charCode key keyCode".split(" ")},e.CopyProperties=function(a,b,c){k.each(e.PropertiesToCopy[c],function(c){b[c]=a[c]})},e.prototype={preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=d,a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=d,a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=d,a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},e.fix=function(a){var b=a.type,c=new e(a);return e.CopyProperties(a,c,"all"),c.target||(c.target=a.srcElement||document),3===c.target.nodeType&&(c.target=c.target.parentNode),c.metaKey=!!c.metaKey,J.test(b)?e.fixMouse(a,c):K.test(b)&&null==c.which&&(e.CopyProperties(a,c,"keyboard"),c.which=null!=a.charCode?a.charCode:a.keyCode),c},e.fixMouse=function(a,b){var c,d,f,g=a.button,h=a.fromElement;e.CopyProperties(a,b,"mouse"),null==b.pageX&&null!=a.clientX&&(d=b.target.ownerDocument||document,f=d.documentElement,c=d.body,b.pageX=a.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),b.pageY=a.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!b.relatedTarget&&h&&(b.relatedTarget=h===b.target?a.toElement:h),b.which||void 0===g||(b.which=1&g?1:2&g?3:4&g?2:0)};var L=/&/g,M=/",c[0];);return a>4?a:void 0}(),Opera:window&&window.navigator&&window.opera&&window.opera.version&&parseInt(window.opera.version(),10)||void 0,Safari:window&&window.navigator&&j(window.navigator.userAgent.match(/^(?:(?!chrome).)*version\/([^ ]*) safari/i)),Firefox:window&&window.navigator&&j(window.navigator.userAgent.match(/Firefox\/([^ ]*)/))});var S=function(){function a(a){var b=a?m.Is(a)?a._state?a._state.attributes[P]:a._attributes[P]:1==a.nodeType?a.getAttribute(P):8==a.nodeType?/\s+(\d+):[^\/]/.exec(a.nodeValue):null:null;return k.isArray(b)?b[1]:b}function b(a,b){m.Is(a)?a.attr(P,b):1==a.nodeType&&a.setAttribute(P,b)}var c={},d=1;return{id:function(b){return a(b)},reset:function(){c={},d=1},collectGarbage:function(){k.each(c,function(a){a&&a.dom&&!document.body.contains(a.dom)&&S.clear(a.id,!0)})},createIfNotExists:function(e){var f,g,h=e&&e.__identity__==O;return f=h?c[e._getAttr(P)]:c[e&&a(e)],f||(g=d++,e&&(h&&e._each?(e._haveAttributes=!0,e._state?e._state.attributes[P]=g:e._attributes[P]=g):b(e,g)),f=c[g]=e?{id:g,virtual:h?e:null,animating:0,observables:{},preprocess:h}:{id:g}),f},byId:function(a){return c[a]},data:function(b,d,e){var f=c[a(b)||b];if(f)return 1==arguments.length?f:(arguments.length>2&&(f[d]=e),f[d])},clear:function(b,d){var e=a(b)||b,f=c[e];!f||f.haveData&&!d||(k.each(f.observables,function(a){for(var b=0;b=8&&(U(a,d),c("dragend",e))):(c("input",d),R.Safari<7&&"textarea"==a.tagName.toLowerCase()?(c("keydown",e),c("paste",e),c("cut",e)):R.Opera<11?c("keydown",e):R.Firefox<4&&(c("DOMAutoComplete",d),c("dragdrop",d),c("drop",d)))}},U=function(){function a(a){var b=this.activeElement,c=b&&S.data(b,"selectionchange");c&&c(a)}var b=!1;return function(c,d){b||(f(c.ownerDocument,"selectionchange",a),b=!0),S.createIfNotExists(c).selectionChange=d}}(),V=k.dom={valueTagNames:{input:!0,textarea:!0,select:!0},valueTypes:{file:!0,hidden:!0,password:!0,text:!0,color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,time:!0,url:!0,week:!0},props:{"for":!0,"class":!0,value:!0,checked:!0,tabindex:!0,className:!0,htmlFor:!0},propFix:{"for":"htmlFor","class":"className",tabindex:"tabIndex"},attrFix:{className:"class",htmlFor:"for"},addClass:function(a,b){a&&p("add",a,b)},removeClass:function(a,b){a&&p("remove",a,b)},html:function(a,b){if(a)if(b=b.toString(),8==a.nodeType)V.comment.html(a,b);else if(R.IE<10){for(;a.firstChild;)a.removeChild(this._element.firstChild);a.appendChild(i(b))}else a.innerHTML=b},css:function(a,b,c){a&&b&&("display"==b?_.setVisibility(a,"none"==c?!1:!0):a.style[b]=c)},on:function(a,b,c){a&&l(a,b,c)},off:function(){},removeAttr:function(a,b){a&&b&&V.attr(a,b,null)},attr:function(a,c,d){var e=V.props[c];return c=V.propFix[c.toLowerCase()]||c,k.core.skipExecution&&k.core.skipExecution.element===a&&k.core.skipExecution.attributeName==c||!a?void 0:8==a.nodeType?void V.comment.attr(a,c,d):("checked"==c&&(d="checked"!=d&&"string"==typeof d&&"radio"==a.getAttribute("type")&&d!=a.value&&null!=a.defaultValue&&""!==a.defaultValue?!1:!!d),1===arguments.length?e?a[c]:a.getAttribute(c):void(null!=d?"value"==c&&"select"==a.tagName.toLowerCase()?(d=b(k.toArray(d)),k.each(a.children,function(a){a.selected=!!d[a.value]})):e?a[c]=d:a.setAttribute(c,d):e?"value"==c&&"select"==a.tagName.toLowerCase()?a.selectedIndex=-1:a[c]&&(a[c]=""):a.removeAttribute(c)))},comment:{html:function(a,b){for(var c,d=a,e=d.parentNode,f=d.nextSibling,g=0;f&&(8!=f.nodeType||-1==f.nodeValue.indexOf("/blocks"));)g++,c=f.nextSibling,e.removeChild(f),f=c;return e.insertBefore(i(b),d.nextSibling),g},attr:function(a,b,c){if(a&&b==P&&c){var d=a,e=a._endElement;return d.nodeValue=" "+c+":"+d.nodeValue.replace(G,"")+" ",e.nodeValue=" "+c+":"+e.nodeValue.replace(G,"")+" ",this}return this}}},W={},X=function(){var a=[];return{startObserving:function(){a.push([])},stopObserving:function(){return a.pop()},currentObservables:function(){return a[a.length-1]},registerObservable:function(b){var c=a[a.length-1],d=!1;c&&(k.each(c,function(a){return a===b?(d=!0,!1):void 0}),d||c.push(b))}}}(),Y={Html:0,ValueOnly:2,Create:function(a,b,c){for(var d,e,f,g=-1,h=0,i=[];a.length>++g;)d=a.charAt(g),"{"==d&&"{"==a.charAt(g+1)?e=g+2:"}"==d&&"}"==a.charAt(g+1)&&(e&&(f=a.substring(e,g),b||(f=f.replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")),d=a.substring(h,e-2),d&&i.push(d),i.push({expression:f,attributeName:b}),h=g+2),e=0);return d=a.substring(h),d&&i.push(d),i.text=a,i.attributeName=b,i.element=c,i.isExpression=!0,f?i:null},GetValue:function(a,b,c,d){var e,f="",g=c.length,h=-1;if(!a)return c.text;if(1==g)f=Y.Execute(a,b,c[0],c,d);else for(;++h"+j)),j}};k.VirtualElement=k.inherit(m,{tagName:function(a){return a?(this._tagName=a,this):this._tagName},html:function(a){return arguments.length>0?(a=null==a?"":a,this._state?this._state.html!==a&&(this._state.html=a,V.html(this._el,a)):(this._innerHTML=a,V.html(this._el,a)),this._children=[],this):this._innerHTML||""},text:function(a){return arguments.length>0?(null!=a&&(a=h(a),this.html(a)),this):this.html()},parent:function(){return this._parent},children:function(a){return"number"==typeof a?this._children[a]:this._children},attr:function(a,c){var d,e=this;if("string"==typeof a){var f=this._tagName,g=this._attributes.type,h=c,i=S.data(this),j=this._getAttr("value");if(a=k.unwrapObservable(a),a=V.attrFix[a]||a,c=k.unwrapObservable(c),k.isObservable(h)&&"value"==a&&V.valueTagNames[f]&&(!g||V.valueTypes[g])?(i.subscribe="select"==f?"change":"input",i.valueObservable=h):!k.isObservable(h)||"checked"!=a||"checkbox"!=g&&"radio"!=g||(i.subscribe="click",i.valueObservable=h),1==arguments.length)return d=this._getAttr(a),void 0===d?null:d;"checked"!=a||null==c||this._fake?"disabled"==a&&(c=c?"disabled":null):c="radio"==this._attributes.type&&"string"==typeof c&&j!=c&&null!=j?null:c?"checked":null,"textarea"!=f||"value"!=a||this._el?"value"==a&&"select"==f?(this._values=b(k.toArray(c)),V.attr(this._el,a,c)):(this._haveAttributes=!0,this._state?this._state.attributes[a]!==c&&(this._state.attributes[a]=c,V.attr(this._el,a,c)):(this._attributes[a]=c,V.attr(this._el,a,c))):this.html(c)}else k.isPlainObject(a)&&k.each(a,function(a,b){e.attr(b,a)});return this},removeAttr:function(a){return this._attributes[a]=null,V.removeAttr(this._el,a),this},css:function(a,b){var c=this;if("string"==typeof a){if(a=k.unwrap(a),b=k.unwrap(b),!a)return;if(a=a.toString().replace(/-\w/g,function(a){return a.charAt(1).toUpperCase()}),1===arguments.length)return b=this._getCss(a),void 0===b?null:b;"display"==a&&(b="none"==b||!b&&""!==b?"none":""),this._haveStyle=!0,m.CssNumbers[a]||(b=k.toUnit(b)),this._state?this._state.style[a]!==b&&(this._state.style[a]=b,V.css(this._el,a,b)):(this._style[a]=b,V.css(this._el,a,b))}else k.isPlainObject(a)&&k.each(a,function(a,b){c.css(b,a)});return this},addChild:function(a,b){var c,d=this._template||this._children;return a&&(a._parent=this,this._childrenEach||this._each?a._each=!0:this._el&&(c=i(a.render(k.domQuery(this))),a._el=c.childNodes[0],"number"==typeof b?this._el.insertBefore(c,this._el.childNodes[b]):this._el.appendChild(c)),"number"==typeof b?d.splice(b,0,a):d.push(a)),this},addClass:function(a){return p("add",this,a),V.addClass(this._el,a),this},removeClass:function(a){return p("remove",this,a),V.removeClass(this._el,a),this},toggleClass:function(a,b){b===!1?this.removeClass(a):this.addClass(a)},hasClass:function(a){return-1!=g(this._attributes[H],a)},renderBeginTag:function(){var a;return a="<"+this._tagName,this._haveAttributes&&(a+=this._renderAttributes()),this._haveStyle&&(a+=n(this._style,this._state)),a+=this._isSelfClosing?" />":">"},renderEndTag:function(){return this._isSelfClosing?"":""},render:function(a,b){var c="",d="",e=this._el;return void 0!==b&&(this._state={attributes:{},style:{},html:null,expressions:{}},this._states||(this._states={}),this._states[b]=this._state),this._el=void 0,this._execute(a),this._el=e,this._renderMode!=m.RenderMode.None&&(this._renderMode!=m.RenderMode.ElementOnly&&(d=this._state&&null!==this._state.html?this._state.html:null!=this._innerHTML?this._innerHTML:this.renderChildren(a,b)),c+=this.renderBeginTag(),c+=d,c+=this.renderEndTag()),this._state=null,c},renderChildren:function(a,b){for(var c,d,e="",f=this._template||this._children,g=f.length,h=-1;++he;e++)d=a.childNodes[b],d&&r("remove",d)&&b++},setVisibility:function(a,b){b?_.show(a):_.hide(a)},show:function(a){r("show",a)},hide:function(a){r("hide",a)}};k.VirtualComment=k.inherit(m,t,{renderBeginTag:function(){var a=this._getAttr(P),b=""},renderEndTag:function(){var a=this._getAttr(P),b=""},_executeAttributeExpressions:k.noop}),t.Is=function(a){return t.prototype.isPrototypeOf(a)};var ab={};z.QueryCache={},z.prototype={options:function(){return this._options},dataIndex:x("_dataIndex"),context:x("_context"),popContext:function(){this._context&&(this._context=this._context.$parentContext)},applyContextToElement:function(a){var b=S.createIfNotExists(a);b.domQuery=this,b.context=this._context,(this._hasChanged||a._each&&!a._parent._each)&&(a._parent&&!a._each&&(b=S.createIfNotExists(a._parent),b.childrenContext=this._context),this._hasChanged=!1,b.haveData=!0)},pushContext:function(a){var b,c=this._context,d=c?c.$parents.slice(0):[];return this._hasChanged=!0,c&&d.unshift(c.$this),b={$this:a,$root:c?c.$root:a,$parent:c?c.$this:null,$parents:c?d:[],$index:this._dataIndex||null,$parentContext:c||null},b.$context=b,this._context=b,this.applyDefinedContextProperties(),b},getSyncIndex:function(){for(var a=this._context,b="";a&&a.$index;)b=a.$index.__value__+"_"+b,a=a.$parentContext;return b},contextBubble:function(a,b){var c=this._context;this._context=a,b(),this._context=c},addProperty:function(a,b){this._contextProperties[a]=b,this.applyDefinedContextProperties()},removeProperty:function(a){delete this._contextProperties[a]},applyDefinedContextProperties:function(){var a,b=this._context,c=this._contextProperties;for(a in c)b[a]=c[a]},executeElementQuery:function(a){var b=m.Is(a)?a._attributes[Q]:1==a.nodeType?a.getAttribute(Q):a.nodeValue.substring(a.nodeValue.indexOf("blocks")+6).replace(G,"");b&&this.executeQuery(a,b)},executeQuery:function(a,b){var c=z.QueryCache[b]||A(b,a);this.executeMethods(a,c)},executeMethods:function(a,b){for(var c,d,e,f,g,h,i,j=S.data(a),l=0,n=0;nl,l=X.currentObservables().length,d.push(e)):d.push(c.passRawValues?e.rawValue:e.value),c===k.queries["if"]||c===k.queries.ifnot){if(!e.value&&c===k.queries["if"]||e.value&&c===k.queries.ifnot){if(!f[2])break;this.executeQuery(a,f[2]);break}this.executeQuery(a,f[1]);break}}var q=d;if(c.passDomQuery&&(q=k.clone(d).slice(1)),k.debug.checkQuery(b[n].name,q,b[n],a),m.Is(a)){if(t.Is(a)&&!c.supportsComments)continue;if(c.call)c.call===!0?a[b[n].name].apply(a,d):(d.unshift(c.prefix||b[n].name),a[c.call].apply(a,d));else if(c.preprocess&&c.preprocess.apply(a,d)===!1){this.subscribeObservables(b[n],j,h);break}}else if(c.call){var r=S.data(a).virtual;r._each&&(r=m("div"),r._el=a,r._fake=!0),c.call===!0?r[b[n].name].apply(r,d):(d.unshift(c.prefix||b[n].name),r[c.call].apply(r,d))}else j&&j.preprocess&&c.ready?c.ready.apply(a,d):c.update&&c.update.apply(a,d);this.subscribeObservables(b[n],j,h)}else j.haveData=!0,j.execute||(j.execute=[],j.executeHash={}),j.executeHash[b[n].query]||(j.execute.push(b[n]),j.executeHash[b[n].query]=!0)},subscribeObservables:function(a,b,c){var d=X.stopObserving();b&&(b.haveData=!0,k.each(d,function(d){b.observables[d.__id__+a.query]||(b.observables[d.__id__+a.query]=d,d._elements.push({elementId:b.id,cache:[a],context:c}))}))},createElementObservableDependencies:function(a){for(var b,c,d,e=0;e1?this.toggleClass(a,!!b):this.addClass(a)},update:function(a,b){var c=S.data(this).virtual;c._each&&(c=m(),c._el=this),arguments.length>1?c.toggleClass(a,b):c.addClass(a)}},html:{call:!0},text:{call:!0},visible:{call:"css",prefix:"display"},attr:{passRawValues:!0,call:!0},val:{passRawValues:!0,call:"attr",prefix:"value"},checked:{passRawValues:!0,call:"attr"},disabled:{passRawValues:!0,call:"attr"},css:{call:!0},width:{call:"css"},height:{call:"css"},focused:{preprocess:k.noop,update:function(a){a&&this.focus()}},on:{ready:function(a,b,c){if(a&&b){b=k.toArray(b);var d=this,e=function(a){var d=k.context(this),e=d.$template||d.$view||d.$root;k.each(b,function(b){b.call(e,a,c)})};a=k.isArray(a)?a:a.toString().split(" "),k.each(a,function(a){f(d,a,e)})}}}}),k.each(["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout","select","change","submit","reset","focus","blur","keydown","keypress","keyup"],function(a){k.queries[a]={passRawValues:!0,ready:function(b,c){k.queries.on.ready.call(this,a,b,c)}}});var cb="__blocks.observable__";B.prototype={dispose:function(){this.childNodesCount=void 0,this.startIndex=0,this.observableLength=void 0,this.startOffset=0,this.endOffset=0},setStartIndex:function(a){this.startIndex=a+this.startOffset},setChildNodesCount:function(a){void 0===this.childNodesCount&&(this.observableLength=this.observable.__value__.length),this.childNodesCount=a-(this.startOffset+this.endOffset)},chunkLength:function(a){var b,c=this.chunkLengths,d=S.id(a),e=c[d]||(this.childNodesCount||a.childNodes.length)/(this.observableLength||this.observable.__value__.length);return b=k.isNaN(e)||1/0===e?0:Math.round(e),c[d]=b,b},getAt:function(a,b){for(var c=this.chunkLength(a),d=a.childNodes,e=[],f=0;c>f;f++)e[f]=d[b*c+f+this.startIndex];return e},insertAt:function(a,b,c){_.insert(a,this.chunkLength(a)*b+this.startIndex,k.isArray(c)?c:[c])},removeAt:function(a,b){var c=this.chunkLength(a);_.remove(a,c*b+this.startIndex,c)},remove:function(a,b){var c=this;this.each(function(d){for(var e=0;b>e;e++)c.removeAt(d,a)}),S.collectGarbage(),this.dispose(),this.observable._indexes.splice(a,b)},removeAll:function(){var a=this,b=this.observable.__value__;this.each(function(c){k.each(b,function(){a.removeAt(c,0)})})},add:function(a,b){var c=this,d=this.observable;k.each(a,function(a,c){d._indexes.splice(b+c,0,k.observable(b+c))}),this.each(function(e,f){var g,h=k.domQuery(e),i=k.context(e),j="";if(h.contextBubble(i,function(){g=h.getSyncIndex();for(var c=0;c0?c.add(a.slice(b.length),b.length):e>0&&c.remove(a.length,e),this.__value__=a,F.trigger(this,"remove",{type:"remove",items:b,index:0}),F.trigger(this,"add",{type:"add",items:a,index:0}),this},add:function(a,b){return this.splice(k.isNumber(b)?b:this.__value__.length,0,a),this},addMany:function(a,b){return this.splice.apply(this,[k.isNumber(b)?b:this.__value__.length,0].concat(k.toArray(a))),this},swap:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;k.swap(d,a,b);for(var g=0;gb?(f.insertAt(c,a,f.getAt(c,b)),f.insertAt(c,b,f.getAt(c,a))):(f.insertAt(c,b,f.getAt(c,a)),f.insertAt(c,a,f.getAt(c,b)));return this},move:function(a,b){var c,d=this(),e=this._elements,f=this._chunkManager;k.move(d,a,b),b>a&&b++;for(var g=0;g1?this().slice(a,b):this().slice(a)},join:function(a){return arguments.length>0?this().join(a):this().join()},pop:function(){var a=this,b=a();return a.splice(b.length-1,1)[0]},push:function(){return this.addMany(arguments),this.__value__.length},reverse:function(){var a=this().reverse(),b=this._chunkManager;return this._indexes.reverse(),b.each(function(c){for(var d=1;d0,g=this._chunkManager,h=this._indexes,i=0;e>i;i++){var j=[d[i],i];g.each(function(a){j.push(g.getAt(a,i))}),d[i]=j}for(d.sort(function(b,c){return b=b[0],c=c[0],f?a.call(this,b,c):c>b?-1:b>c?1:0}),h.length>0&&(this._indexes=[]),i=0;e>i;i++)c=d[i],h.length>0&&this._indexes.push(h[c[1]]),b=2,g.each(function(a){g.insertAt(a,e,c[b]),b++}),d[i]=c[0];return this.update(),d},splice:function(a,b){var c,d=this.__value__,e=this._chunkManager,f=[],g=arguments;return a=0>a?d.length-a:a,b&&a=0&&(b=Math.min(d.length-a,b),f=d.slice(a,a+b),F.trigger(this,"removing",{type:"removing",items:f,index:a}),e.remove(a,b),f=d.splice(a,b),F.trigger(this,"remove",{type:"remove",items:f,index:a})),g.length>2&&(c=k.toArray(g),c.splice(0,2),F.trigger(this,"adding",{type:"adding",index:a,items:c}),e.add(c,a),d.splice.apply(d,[a,0].concat(c)),F.trigger(this,"add",{type:"add",index:a,items:c})),this.update(),f},unshift:function(){return this.addMany(arguments,0),this.__value__.length}}}});var fb={waiting:{},initExpressionExtender:function(a){var b=a.clone();return b.view=k.observable([]),b.view._connections={},b.view._observed=[],b.view._updateObservable=k.bind(fb.updateObservable,b),b._operations=a._operations?k.clone(a._operations):[],b._getter=k.bind(fb.getter,b),b.view._initialized=!1,b.view.on("get",b._getter),b.on("add",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),fb.executeOperations(b))}),b.on("remove",function(){b.view._initialized&&(b.view._connections={},b.view.reset(),fb.executeOperations(b))}),b},getter:function(){F.off(this.view,"get",this._getter),this._getter=void 0,this.view._initialized=!0,fb.executeOperationsPure(this)},updateObservable:function(){fb.executeOperations(this)},executeOperationsPure:function(a){var b=[],c=a.view._observed,d=a.view._updateObservable;k.each(c,function(a){F.off(a,"change",d)}),c=a.view._observed=[],X.startObserving(),k.each(a._operations,function(c){if("step"==c.type){var d=a.view;a.view=k.observable([]),a.view._connections={},b.length&&fb.executeOperationsChunk(a,b),c.step.call(a.__context__),a.view=d}else b.push(c)}),b.length&&fb.executeOperationsChunk(a,b),k.each(X.stopObserving(),function(a){c.push(a),a.on("change",d)})},executeOperations:function(a){var b=a.__id__,c=fb.waiting;c[b]||(c[b]=!0,setTimeout(function(){fb.executeOperationsPure(a),c[b]=!1},0))},executeOperationsChunk:function(a,b){var c="add",d="remove",e="exists",f=e,g=a.__value__,h=a.view,i=h._connections,j={},l=0,m=h.update,n=0,o=g.length;h.update=k.noop,k.each(b,function(c){"skip"==c.type?(n=c.skip,k.isFunction(n)&&(n=n.call(a.__context__)),n=k.unwrap(n)):"take"==c.type?(o=c.take,k.isFunction(o)&&(o=o.call(a.__context__)),o=k.unwrap(o)):"sort"==c.type&&(g=k.isString(c.sort)?k.clone(g).sort(function(a,b){return a[c.sort]-b[c.sort]}):k.isFunction(c.sort)?k.clone(g).sort(c.sort):k.clone(g).sort(),1==b.length&&b.push({type:"filter",filter:function(){return!0}}))}),k.each(g,function(m,p){if(0>=o){for(;h().length-l>0;)h.removeAt(h().length-1);return!1}switch(k.each(b,function(b){var h=b.filter;if(f=void 0,h){if(!h.call(a.__context__,m,p,g))return f=void 0,void 0!==i[p]&&(f=d),!1;f=e,void 0===i[p]&&(f=c)}else if("skip"==b.type){if(f=e,n-=1,n>=0)return f=d,!1;0>n&&void 0===i[p]&&(f=c)}else if("take"==b.type){if(0>=o)return f=d,!1;o-=1,f=e,void 0===i[p]&&(f=c)}}),f){case c:j[p]=l,h.splice(l,0,m),l++;break;case d:h.removeAt(l);break;case e:j[p]=l,l++}}),h._connections=j,h.update=m,h.update()}};k.observable.filter=function(a){var b=fb.initExpressionExtender(this),c=a;return(!k.isFunction(c)||k.isObservable(c))&&(c=function(b){var c=k.unwrap(a),d=String(c).toLowerCase();return b=String(k.unwrap(b)).toLowerCase(),!c||-1!=b.indexOf(d)}),b._operations.push({type:"filter",filter:c}),b},k.observable.step=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"step",step:a}),b},k.observable.skip=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"skip",skip:a}),b},k.observable.take=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"take",take:a}),b},k.observable.sort=function(a){var b=fb.initExpressionExtender(this);return b._operations.push({type:"sort",sort:a}),b},k.query=function(a,b){k.domReady(function(){k.$unwrap(b,function(b){k.isElement(b)||(b=document.body);var c=new z,d=u(b)[0],e=window.__blocksServerData__;c.pushContext(a),c._serverData=e,e?d.render(c):d.sync(c),c.createElementObservableDependencies([b])})})},k.executeQuery=function(a,b){var c=m.Is(a)?"preprocess":"update",d=Array.prototype.slice.call(arguments,2),e=k.queries[b];e.passDomQuery&&d.unshift(k.domQuery(a)),e[c].apply(a,d)},k.context=function(a,b){if(a=k.$unwrap(a)){var c=S.data(a);if(c){if(b&&c.childrenContext)return c.childrenContext;if(c.context)return c.context}return k.context(m.Is(a)?a._parent:a.parentNode,!0)}return null},k.dataItem=function(a){var b=k.context(a);return b?b.$this:null},k.isObservable=function(a){return!!a&&a.__identity__===cb},k.unwrapObservable=function(a){return a&&a.__identity__===cb?a():a},k.domQuery=function(a){if(a=k.$unwrap(a)){var b=S.data(a,"domQuery");return b?b:k.domQuery(m.Is(a)?a._parent:a.parentNode)}return null}}()}(),function(){var a=k.toString;k.toString=function(b){return 0===arguments.length?"jsblocks - Better MV-ish Framework":a(b)}}();var n=a.blocks;return k.noConflict=function(b){return a.blocks===k&&(a.blocks=n),b&&a.blocks===k&&(a.blocks=n),k},"function"==typeof define&&define.amd&&define("blocks",[],function(){return k}),b!==!0&&(a.blocks=k),k}); //# sourceMappingURL=blocks-query.min.js.map \ No newline at end of file diff --git a/dist/query/blocks-query.min.js.map b/dist/query/blocks-query.min.js.map index fb31542..82a9958 100644 --- a/dist/query/blocks-query.min.js.map +++ b/dist/query/blocks-query.min.js.map @@ -1 +1 @@ -{"version":3,"file":"blocks-query.min.js","sources":["blocks-query.js"],"names":["global","factory","module","exports","window","this","noGlobal","equals","a","b","aStack","bStack","deepEqual","blocks","_wrapped","className","toString","call","String","source","multiline","ignoreCase","length","aCtor","constructor","bCtor","isFunction","push","size","result","key","has","pop","_super","name","args","func","Class","__Class__","isString","prototype","apply","parseCallback","callback","thisArg","orgCallback","value","index","collection","Object","slice","Array","hasOwn","hasOwnProperty","support","core","expressionsCreated","arguments","staticExpression","createExpression","version","extend","src","copyIsArray","copy","options","clone","target","i","deep","isPlainObject","isArray","each","indexOrKey","eachRight","isCollectionAnArray","type","obj","isArguments","noop","inherit","BaseClass","undefined","objectCreate","Number","Date","isBoolean","is","isPrototypeOf","hasValue","isNumber","isNaN","unwrap","isExpression","unwrapObservable","$unwrap","element","jquery","toArray","isElements","toUnit","unit","unitIsSpecified","parseFloat","parseInt","charAt","replace","deepClone","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","flags","RegExp","lastIndex","HTMLCollection","NodeList","item","e","isElement","nodeType","isObject","ownPropertiesAreLast","isFinite","isNull","isUndefined","nothing","access","path","defaultValue","split","swap","array","indexA","indexB","move","sourceIndex","targetIndex","splice","bind","bound","concat","self","at","prototypeIndentification","first","last","create","keys","returnFalse","returnTrue","Event","originalEvent","isDefaultPrevented","defaultPrevented","returnValue","timeStamp","addListener","eventName","addEventListener","event","fix","attachEvent","getClassIndex","classAttribute","indexOf","escapeValue","ampRegEx","lessThanRegEx","createFragment","html","fragment","document","createDocumentFragment","temp","createElement","count","table","tableEnd","tbody","tbodyEnd","tr","trEnd","match","innerHTML","lastChild","firstChild","appendChild","parseVersion","matches","on","handler","Workarounds","VirtualElement","tagName","__identity__","virtualElementIdentity","_tagName","toLowerCase","_attributes","_attributeExpressions","_parent","_children","_isSelfClosing","_haveAttributes","_innerHTML","_renderMode","RenderMode","All","_haveStyle","_style","_states","_state","_el","generateStyleAttribute","style","state","haveStyle","replaceStyleAttribute","setClass","classNames","Is","_getAttr","classAttr","classList","classListMultiArguments","substring","trimRegExp","attributes","getIndexOffset","parentElement","elementData","ElementsData","data","animating","childNodes","childIndex","currentIndex","POSITIVE_INFINITY","animateDomAction","createIfNotExists","parentElementData","parentNode","animateCallback","cssType","disposeCallback","clear","removeChild","display","readyCallback","preprocess","context","$view","$root","cssAnimate","end","removeEventListener","ontransitionend","computedStyle","getComputedStyle","prefix","onanimationend","onwebkitanimationend","transitionDuration","transitionDelay","animationDuration","animationDelay","setTimeout","VirtualComment","commentText","_commentText","nodeValue","createVirtual","htmlElement","elementAttributes","htmlAttributes","htmlAttribute","commentTextTrimmed","serverData","__blocksServerData__","elements","_each","_childrenEach","nodeName","specified","browser","IE","_createAttributeExpressions","cssText","generateStyleObject","setIsSelfClosing","hasClass","Expression","Create","dataQueryAttr","nextSibling","_endElement","number","exec","styleString","values","styles","styleObject","domElement","isSelfClosingCache","createProperty","propertyName","parseQuery","query","currentParameter","methodName","character","bracketsCount","curlyBracketsCount","squareBracketsCount","isInSingleQuotes","isInDoubleQuotes","startIndex","parameters","DomQuery","_options","_contextProperties","createCache","cache","QueryCache","method","queries","methodObj","params","join","unshift","debug","queryNotExists","ChunkManager","observable","chunkLengths","dispose","updateDependencies","_dependencyType","_getDependency","getDependency","__value__","accessor","get","Events","off","Observer","startObserving","__context__","stopObserving","dependency","dependencies","_dependencies","exists","getObservableValue","createEventMethod","methods","once","eventNames","trigger","_trigger","register","object","_events","events","currentEventName","eventData","eventsData","handleReady","readyState","ready","completed","top","frameElement","documentElement","doScroll","doScrollCheck","isDomReady","domReady","__mock__","jQuery","isReady","isMouseEventRegEx","isKeyEventRegEx","PropertiesToCopy","all","mouse","keyboard","CopyProperties","propertiesName","preventDefault","stopPropagation","isPropagationStopped","cancelBubble","stopImmediatePropagation","isImmediatePropagationStopped","srcElement","metaKey","test","fixMouse","which","charCode","keyCode","body","eventDoc","doc","button","fromElement","pageX","clientX","ownerDocument","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","dataIdAttr","div","iElems","getElementsByTagName","Opera","navigator","opera","Safari","userAgent","Firefox","getDataId","getAttribute","setDataId","id","attr","setAttribute","globalId","reset","collectGarbage","dom","contains","currentData","isVirtual","virtual","observables","byId","force","haveData","_elements","elementId","removeAttribute","input","subscribe","clearTimeout","timeout","deferCall","globalSelectionChangeHandler","selectionChangeHandler","activeElement","isRegistered","selectionChange","valueTagNames","textarea","select","valueTypes","file","hidden","password","text","color","date","datetime","datetime-local","email","month","range","search","tel","time","url","week","props","for","class","checked","tabindex","htmlFor","propFix","attrFix","addClass","removeClass","comment","_element","css","animation","setVisibility","removeAttr","attributeName","attributeValue","isProperty","skipExecution","children","child","selected","selectedIndex","commentElement","currentElement","insertBefore","endComment","parameterQueryCache","stack","currentObservables","registerObservable","newObservable","alreadyExists","Html","ValueOnly","endIndex","expression","GetValue","chunk","Execute","lastResult","expressionData","entireExpression","isObservable","expressionObj","Function","ex","expressionFail","entire","_expressionKeys","_expressions","parent","_this","rawAttributeValue","valueObservable","_fake","_values","val","toUpperCase","_getCss","CssNumbers","addChild","_template","render","domQuery","toggleClass","condition","renderBeginTag","_renderAttributes","renderEndTag","syncIndex","childHtml","expressions","_execute","None","ElementOnly","renderChildren","_context","sync","_sync","syncChildren","offset","elementForDeletion","textContent","updateChildren","template","isOneChild","getSyncIndex","childContexts","childs","chunkLength","_length","Math","min","$this","$parent","$parentContext","popContext","_serverData","applyContextToElement","_executeAttributeExpressions","executeQuery","attributeExpressions","dataId","columnCount","fillOpacity","flexGrow","flexShrink","fontWeight","lineHeight","opacity","order","orphans","widows","zIndex","zoom","add","insert","childNodesCount","insertPositionNode","node","remove","visible","show","hide","dataIndex","_hasChanged","childrenContext","pushContext","newModel","newContext","models","$parents","$index","_dataIndex","$context","applyDefinedContextProperties","contextBubble","currentContext","addProperty","removeProperty","contextProperties","executeElementQuery","executeMethods","executedParameters","parameter","lastObservablesLength","passDomQuery","update","j","rawValue","queryParameterFail","passDetailValues","containsObservable","passRawValues","ifnot","checkQuery","supportsComments","subscribeObservables","execute","__id__","createElementObservableDependencies","updateOn","UpdateHandlers","cloneContext","change","getSetValue","click","keydown","oldValue","selectedOptions","option","if","getElementById","templates","define","propertyValue","with","_getStaticHtml","dataRole","headers","_headers","footers","_footers","headerHtml","footerHtml","max","header","headersCount","footer","footersCount","rawCollection","staticHtml","eachData","startOffset","endOffset","getIndex","$thisStr","caption","Error","renderCache","animate","disabled","width","height","focused","focus","callbacks","$template","OBSERVABLE","observableLength","setStartIndex","setChildNodesCount","wrapper","Infinity","round","getAt","insertAt","removeAt","howMany","_indexes","removeAll","addItems","virtualElement","domElements","setup","commentId","commentIndex","observableId","initialValue","currentValue","set","fn","base","__viewInInitialize__","_elementKeys","_chunkManager","observableIndexes","forceGet","indexes","createTextNode","extendFunc","applyExpressions","cloneValue","current","chunkManager","addCount","removeCount","items","addMany","removeOne","isCallbackAFunction","start","seperator","that","reverse","shift","sort","sortfunction","useSortFunction","ExtenderHelper","waiting","initExpressionExtender","view","_connections","_observed","_updateObservable","updateObservable","_operations","_getter","getter","_initialized","executeOperationsPure","executeOperations","observed","operation","executeOperationsChunk","step","operations","ADD","REMOVE","EXISTS","action","connections","newConnections","viewIndex","skip","take","valueA","valueB","filter","filterCallback","filterString","model","rootElement","queryName","isRecursive","dataItem","_blocks","noConflict","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"blocks-query.min.js","sources":["blocks-query.js"],"names":["global","factory","module","exports","window","this","noGlobal","equals","a","b","aStack","bStack","deepEqual","blocks","_wrapped","className","toString","call","String","source","multiline","ignoreCase","length","aCtor","constructor","bCtor","isFunction","push","size","result","key","has","pop","_super","name","args","func","Class","__Class__","isString","prototype","apply","parseCallback","callback","thisArg","orgCallback","value","index","collection","Object","slice","Array","hasOwn","hasOwnProperty","support","core","expressionsCreated","arguments","staticExpression","createExpression","version","extend","src","copyIsArray","copy","options","clone","target","i","deep","isPlainObject","isArray","each","indexOrKey","eachRight","isCollectionAnArray","type","obj","isArguments","noop","inherit","BaseClass","undefined","objectCreate","Number","Date","isBoolean","is","isPrototypeOf","hasValue","isNumber","isNaN","unwrap","isExpression","unwrapObservable","$unwrap","element","jquery","toArray","isElements","toUnit","unit","unitIsSpecified","parseFloat","parseInt","charAt","replace","deepClone","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","flags","RegExp","lastIndex","HTMLCollection","NodeList","item","e","isElement","nodeType","isObject","ownPropertiesAreLast","isFinite","isNull","isUndefined","nothing","access","path","defaultValue","split","swap","array","indexA","indexB","move","sourceIndex","targetIndex","splice","bind","bound","concat","self","at","prototypeIndentification","first","last","create","keys","returnFalse","returnTrue","Event","originalEvent","isDefaultPrevented","defaultPrevented","returnValue","timeStamp","addListener","eventName","addEventListener","event","fix","attachEvent","getClassIndex","classAttribute","indexOf","escapeValue","ampRegEx","lessThanRegEx","createFragment","html","fragment","document","createDocumentFragment","temp","createElement","count","table","tableEnd","tbody","tbodyEnd","tr","trEnd","match","innerHTML","lastChild","firstChild","appendChild","parseVersion","matches","on","handler","Workarounds","VirtualElement","tagName","__identity__","virtualElementIdentity","_tagName","toLowerCase","_attributes","_attributeExpressions","_parent","_children","_isSelfClosing","_haveAttributes","_innerHTML","_renderMode","RenderMode","All","_haveStyle","_style","_states","_state","_el","generateStyleAttribute","style","state","haveStyle","replaceStyleAttribute","setClass","classNames","Is","_getAttr","classAttr","classList","classListMultiArguments","substring","trimRegExp","attributes","getIndexOffset","parentElement","elementData","ElementsData","data","animating","childNodes","childIndex","currentIndex","POSITIVE_INFINITY","animateDomAction","createIfNotExists","parentElementData","parentNode","animateCallback","cssType","disposeCallback","clear","removeChild","display","readyCallback","preprocess","context","$view","$root","cssAnimate","end","removeEventListener","ontransitionend","computedStyle","getComputedStyle","prefix","onanimationend","onwebkitanimationend","transitionDuration","transitionDelay","animationDuration","animationDelay","setTimeout","VirtualComment","commentText","_commentText","nodeValue","createVirtual","htmlElement","elementAttributes","htmlAttributes","htmlAttribute","commentTextTrimmed","serverData","__blocksServerData__","elements","_each","_childrenEach","nodeName","specified","browser","IE","_createAttributeExpressions","cssText","generateStyleObject","setIsSelfClosing","hasClass","Expression","Create","dataQueryAttr","nextSibling","_endElement","number","exec","styleString","values","styles","styleObject","domElement","isSelfClosingCache","createProperty","propertyName","parseQuery","query","currentParameter","methodName","character","bracketsCount","curlyBracketsCount","squareBracketsCount","isInSingleQuotes","isInDoubleQuotes","startIndex","parameters","DomQuery","_options","_contextProperties","createCache","cache","QueryCache","method","queries","methodObj","params","join","unshift","debug","queryNotExists","ChunkManager","observable","chunkLengths","dispose","updateDependencies","_dependencyType","_getDependency","getDependency","__value__","accessor","get","Events","off","Observer","startObserving","__context__","stopObserving","dependency","dependencies","_dependencies","exists","getObservableValue","createEventMethod","methods","once","eventNames","trigger","_trigger","register","object","_events","events","currentEventName","eventData","eventsData","handleReady","readyState","ready","completed","top","frameElement","documentElement","doScroll","doScrollCheck","isDomReady","domReady","__mock__","jQuery","isReady","isMouseEventRegEx","isKeyEventRegEx","PropertiesToCopy","all","mouse","keyboard","CopyProperties","propertiesName","preventDefault","stopPropagation","isPropagationStopped","cancelBubble","stopImmediatePropagation","isImmediatePropagationStopped","srcElement","metaKey","test","fixMouse","which","charCode","keyCode","body","eventDoc","doc","button","fromElement","pageX","clientX","ownerDocument","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","dataIdAttr","div","iElems","getElementsByTagName","Opera","navigator","opera","Safari","userAgent","Firefox","getDataId","getAttribute","setDataId","id","attr","setAttribute","globalId","reset","collectGarbage","dom","contains","currentData","isVirtual","virtual","observables","byId","force","haveData","_elements","elementId","removeAttribute","input","subscribe","clearTimeout","timeout","deferCall","globalSelectionChangeHandler","selectionChangeHandler","activeElement","isRegistered","selectionChange","valueTagNames","textarea","select","valueTypes","file","hidden","password","text","color","date","datetime","datetime-local","email","month","range","search","tel","time","url","week","props","for","class","checked","tabindex","htmlFor","propFix","attrFix","addClass","removeClass","comment","_element","css","animation","setVisibility","removeAttr","attributeName","attributeValue","isProperty","skipExecution","children","child","selected","selectedIndex","commentElement","currentElement","insertBefore","endComment","parameterQueryCache","stack","currentObservables","registerObservable","newObservable","alreadyExists","Html","ValueOnly","endIndex","expression","GetValue","chunk","Execute","lastResult","expressionData","entireExpression","isObservable","expressionObj","Function","ex","expressionFail","entire","_expressionKeys","_expressions","parent","_this","rawAttributeValue","valueObservable","_fake","_values","val","toUpperCase","_getCss","CssNumbers","addChild","_template","render","domQuery","toggleClass","condition","renderBeginTag","_renderAttributes","renderEndTag","syncIndex","childHtml","expressions","_execute","None","ElementOnly","renderChildren","_context","sync","_sync","syncChildren","offset","elementForDeletion","textContent","updateChildren","updateCount","template","isOneChild","getSyncIndex","childContexts","childs","chunkLength","_length","$this","$parent","$parentContext","popContext","_serverData","applyContextToElement","_executeAttributeExpressions","executeQuery","attributeExpressions","dataId","columnCount","fillOpacity","flexGrow","flexShrink","fontWeight","lineHeight","opacity","order","orphans","widows","zIndex","zoom","add","insert","childNodesCount","insertPositionNode","node","remove","visible","show","hide","dataIndex","_hasChanged","childrenContext","pushContext","newModel","newContext","models","$parents","$index","_dataIndex","$context","applyDefinedContextProperties","contextBubble","currentContext","addProperty","removeProperty","contextProperties","executeElementQuery","executeMethods","executedParameters","parameter","lastObservablesLength","passDomQuery","update","j","rawValue","queryParameterFail","passDetailValues","containsObservable","passRawValues","ifnot","checkQuery","supportsComments","subscribeObservables","execute","executeHash","__id__","createElementObservableDependencies","updateOn","UpdateHandlers","cloneContext","change","getSetValue","click","keydown","oldValue","selectedOptions","option","if","getElementById","templates","define","propertyValue","with","_getStaticHtml","dataRole","headers","_headers","footers","_footers","headerHtml","footerHtml","Math","max","header","headersCount","footer","footersCount","rawCollection","staticHtml","eachData","startOffset","endOffset","getIndex","$thisStr","caption","Error","renderCache","animate","disabled","width","height","focused","focus","callbacks","$template","OBSERVABLE","observableLength","setStartIndex","setChildNodesCount","wrapper","Infinity","round","getAt","insertAt","removeAt","howMany","_indexes","removeAll","addItems","virtualElement","domElements","setup","commentId","commentIndex","observableId","initialValue","currentValue","set","fn","base","__viewInInitialize__","_elementKeys","_chunkManager","observableIndexes","forceGet","indexes","createTextNode","extendFunc","applyExpressions","cloneValue","current","chunkManager","addCount","removeCount","items","addMany","removeOne","isCallbackAFunction","start","seperator","that","reverse","shift","sort","sortfunction","useSortFunction","min","ExtenderHelper","waiting","initExpressionExtender","view","_connections","_observed","_updateObservable","updateObservable","_operations","_getter","getter","_initialized","executeOperations","executeOperationsPure","observed","operation","executeOperationsChunk","step","operations","ADD","REMOVE","EXISTS","action","connections","newConnections","viewIndex","skip","take","valueA","valueB","filter","filterCallback","filterString","model","rootElement","queryName","isRecursive","dataItem","_blocks","noConflict","amd"],"mappings":"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"} \ No newline at end of file diff --git a/src/mvc/Application.js b/src/mvc/Application.js index f9f0c0e..1d8b324 100644 --- a/src/mvc/Application.js +++ b/src/mvc/Application.js @@ -311,11 +311,7 @@ define([ this._started = true; this._serverData = window.__blocksServerData__; this._createViews(); - if (document.__mock__ && window.__mock__) { - this._ready(element); - } else { - blocks.domReady(blocks.bind(this._ready, this, element)); - } + blocks.domReady(blocks.bind(this._ready, this, element)); } }, @@ -326,13 +322,17 @@ define([ }, this)); }, this); }, - - _ready: function (element) { - this._serverData = window.__blocksServerData__; + + _startHistory: function () { this._history = new History(this.options); this._history .on('urlChange', blocks.bind(this._urlChange, this)) .start(); + }, + + _ready: function (element) { + this._serverData = window.__blocksServerData__; + this._startHistory(); blocks.query(this, element); this._viewsReady(this._views); }, diff --git a/src/mvc/Collection.js b/src/mvc/Collection.js index e117def..c0fa3f2 100644 --- a/src/mvc/Collection.js +++ b/src/mvc/Collection.js @@ -93,7 +93,7 @@ define([ */ read: function (params, callback) { // TODO: Write tests for the callback checking if it is being called - var context = this.__context__; + var _this = this; if (blocks.isFunction(params)) { callback = params; @@ -102,7 +102,7 @@ define([ this._dataSource.read({ data: params }, callback ? function () { - callback.call(context); + callback.call(_this.__context__); } : blocks.noop); return this; diff --git a/src/node/ServerEnv.js b/src/node/ServerEnv.js index 492e209..a007b81 100644 --- a/src/node/ServerEnv.js +++ b/src/node/ServerEnv.js @@ -1,16 +1,13 @@ define([ + '../core', '../modules/Events' -], function (Events) { +], function (blocks, Events) { function ServerEnv(options, html) { this.options = options; this.html = html; this.data = {}; - this._callbacks = { - init: [], - started: [], - ready: [], - sent: [] - }; + this._root = this._createBubbleNode(); + this._node = this._root; this.on('ready', blocks.bind(this._ready, this)); } @@ -18,16 +15,10 @@ define([ ServerEnv.prototype = { _waiting: 0, - _processing: false, - - _stages: ['init', 'started', 'ready', 'sent'], - - _currentStageIndex: 0, - rendered: '', isReady: function () { - return this._waiting === 0 && !this._processing; + return this._waiting === 0; }, wait: function () { @@ -43,32 +34,54 @@ define([ } }, - onReady: function (stage, callback) { - var currentStage = this._stages[this._currentStageIndex]; - - if (this.isReady() && currentStage === stage) { + await: function (callback) { + if (this.isReady()) { callback(); } else { - this._callbacks[stage].push(callback); + this._createBubbleNode(this._node, callback); } }, _ready: function () { - var callbacks = this._callbacks[this._stages[this._currentStageIndex]]; - - this._processing = true; - blocks.each(callbacks, function (callback) { - callback(); - }); - callbacks.splice(0, callbacks.length); - this._processing = false; - - if (this._currentStageIndex < this._stages.length - 1) { - this._currentStageIndex += 1; - if (this.isReady()) { - this.trigger('ready'); + var node = this._node; + + while (this.isReady()) { + if (!node.isRoot) { + node.callback(); + } + this._node = node = this._next(node); + + if (node === this._root) { + break; } } + }, + + _next: function (node) { + var parent = node; + var next; + + while (!next && parent) { + next = parent.nodes.pop(); + parent = parent.parent; + } + + return next || this._root; + }, + + _createBubbleNode: function (parent, callback) { + var node = { + isRoot: !parent, + parent: parent, + callback: callback, + nodes: [] + }; + + if (parent) { + parent.nodes.unshift(node); + } + + return node; } }; diff --git a/src/node/executePageScripts.js b/src/node/executePageScripts.js index d9b76d3..885ea9a 100644 --- a/src/node/executePageScripts.js +++ b/src/node/executePageScripts.js @@ -28,7 +28,7 @@ define([ funcs[code].call(this, blocks, env.document, env.window, require); - server.onReady('init', function () { + server.await(function () { handleResult(env, callback); }); }); @@ -45,7 +45,7 @@ define([ callback(); - server.onReady('sent', function () { + server.await(function () { blocks.each(obj, function (val, name) { _this[name] = values[name]; }); @@ -57,18 +57,23 @@ define([ var hasActive = false; var application = env.server.application; if (application) { - application.start(); - blocks.each(application._views, function (view) { - if (blocks.has(view.options, 'route')) { - hasRoute = true; - } - if (view.isActive()) { - hasActive = true; - } + application._createViews(); + application._startHistory(); + + server.await(function () { + blocks.query(application); + blocks.each(application._views, function (view) { + if (blocks.has(view.options, 'route')) { + hasRoute = true; + } + if (view.isActive()) { + hasActive = true; + } + }); }); } - - server.onReady('ready', function () { + + server.await(function () { if (hasRoute && !hasActive) { callback('not found', null); } @@ -79,35 +84,31 @@ define([ callback('no query', env.server.html); } }); - - if (server.isReady()) { - server.trigger('ready'); - } } - //function executeCode(browserEnv, html, code) { - // var context = vm.createContext(browserEnv.getObject()); - // var script = vm.createScript(code); - // - // blocks.extend(context, { - // server: { - // html: html, - // data: {}, - // rendered: '', - // applications: [] - // }, - // require: require - // }); - // - // script.runInContext(context); - // - // blocks.each(context.server.applications, function (application) { - // application.start(); - // }); - // - // return context.server.rendered || html; - //} +// function executeCode(browserEnv, html, code) { +// var context = vm.createContext(browserEnv.getObject()); +// var script = vm.createScript(code); +// +// blocks.extend(context, { +// server: { +// html: html, +// data: {}, +// rendered: '', +// applications: [] +// }, +// require: require +// }); +// +// script.runInContext(context); +// +// blocks.each(context.server.applications, function (application) { +// application.start(); +// }); +// +// return context.server.rendered || html; +// } return executePageScripts; }); \ No newline at end of file diff --git a/src/node/overrides.js b/src/node/overrides.js index c574b46..e756597 100644 --- a/src/node/overrides.js +++ b/src/node/overrides.js @@ -46,7 +46,7 @@ define([ body._parent = null; body.render(domQuery); - server.onReady('started', function () { + server.await(function () { if (head) { head.children().splice(0, 0, getServerDataScript()); } diff --git a/src/query/DomQuery.js b/src/query/DomQuery.js index 3579a67..da261a6 100644 --- a/src/query/DomQuery.js +++ b/src/query/DomQuery.js @@ -151,8 +151,12 @@ define([ elementData.haveData = true; if (!elementData.execute) { elementData.execute = []; + elementData.executeHash = {}; + } + if (!elementData.executeHash[methods[i].query]) { + elementData.execute.push(methods[i]); + elementData.executeHash[methods[i].query] = true; } - elementData.execute.push(methods[i]); continue; } Observer.startObserving(); diff --git a/src/query/ExtenderHelper.js b/src/query/ExtenderHelper.js index aed2af8..95c9e2c 100644 --- a/src/query/ExtenderHelper.js +++ b/src/query/ExtenderHelper.js @@ -18,6 +18,22 @@ define([ newObservable.view._initialized = false; newObservable.view.on('get', newObservable._getter); + + newObservable.on('add', function () { + if (newObservable.view._initialized) { + newObservable.view._connections = {}; + newObservable.view.reset(); + ExtenderHelper.executeOperations(newObservable); + } + }); + + newObservable.on('remove', function () { + if (newObservable.view._initialized) { + newObservable.view._connections = {}; + newObservable.view.reset(); + ExtenderHelper.executeOperations(newObservable); + } + }); return newObservable; }, diff --git a/src/query/VirtualElement.js b/src/query/VirtualElement.js index 7e344d9..b48c5c7 100644 --- a/src/query/VirtualElement.js +++ b/src/query/VirtualElement.js @@ -445,7 +445,7 @@ define([ } }, - updateChildren: function (domQuery, collection, domElement) { + updateChildren: function (collection, updateCount, domQuery, domElement) { var template = this._template; var child = template[0]; var isOneChild = template.length === 1 && VirtualElement.Is(child); @@ -453,11 +453,10 @@ define([ var syncIndex = domQuery.getSyncIndex(); var childContexts = domQuery._context.childs; var chunkLength = this._length(); - var length = Math.min(collection.length, childNodes.length); var index = -1; var context; - while (++index < length) { + while (++index < updateCount) { domQuery._context = context = childContexts[index]; context.$this = collection[index]; context.$parent = context.$parentContext.$this; diff --git a/src/query/extenders.js b/src/query/extenders.js index 02b84ad..7d49175 100644 --- a/src/query/extenders.js +++ b/src/query/extenders.js @@ -38,22 +38,6 @@ define([ filter: callback }); - observable.on('add', function () { - if (observable.view._initialized) { - observable.view._connections = {}; - observable.view.reset(); - ExtenderHelper.executeOperations(observable); - } - }); - - observable.on('remove', function () { - if (observable.view._initialized) { - observable.view._connections = {}; - observable.view.reset(); - ExtenderHelper.executeOperations(observable); - } - }); - return observable; }; diff --git a/src/query/observable.js b/src/query/observable.js index cfa7154..e675119 100644 --- a/src/query/observable.js +++ b/src/query/observable.js @@ -158,6 +158,7 @@ define([ */ update: function () { var elements = this._elements; + var elementData; var domQuery; var context; var element; @@ -169,7 +170,8 @@ define([ context = expression.context; if (!element) { - element = expression.element = ElementsData.data(expression.elementId).dom; + elementData = ElementsData.data(expression.elementId); + element = expression.element = elementData.dom; } try { @@ -183,15 +185,22 @@ define([ offset = expression.length - value.length; expression.length = value.length; - if (expression.attr) { - element.setAttribute(expression.attr, Expression.GetValue(context, null, expression.entire)); - } else { - if (element.nextSibling) { - element = element.nextSibling; - element.nodeValue = value + element.nodeValue.substring(expression.length + offset); + if (element) { + if (expression.attr) { + element.setAttribute(expression.attr, Expression.GetValue(context, null, expression.entire)); } else { - element.parentNode.appendChild(document.createTextNode(value)); - } + if (element.nextSibling) { + element = element.nextSibling; + element.nodeValue = value + element.nodeValue.substring(expression.length + offset); + } else { + element.parentNode.appendChild(document.createTextNode(value)); + } + } + } else { + element = elementData.virtual; + if (expression.attr) { + element.attr(expression.attr, Expression.GetValue(context, null, expression.entire)); + } } }); @@ -324,12 +333,13 @@ define([ return this; } + array = blocks.unwrap(array); + var current = this.__value__; var chunkManager = this._chunkManager; var addCount = array.length - current.length; var removeCount = Math.max(current.length - array.length, 0); - - array = blocks.unwrap(array); + var updateCount = array.length - addCount; Events.trigger(this, 'removing', { type: 'removing', @@ -342,12 +352,12 @@ define([ items: array, index: 0 }); - + chunkManager.each(function (domElement, virtualElement) { var domQuery = blocks.domQuery(domElement); domQuery.contextBubble(blocks.context(domElement), function () { - virtualElement.updateChildren(domQuery, array, domElement); + virtualElement.updateChildren(array, updateCount, domQuery, domElement); }); });