UNPKG

weaveworld

Version:

Weaveworld, full-scale JavaScript framework for web applications

109 lines 58.8 kB
W$LICENSE="Weaveworld Public License v1.0, Copyright(c)2018-2019, Csaba Veg, All rights reserved.\nPermission to USE and/or REDISTRIBUTE this software in UNMODIFIED forms, in source and/or binary distributions, for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; String.prototype.startsWith||(String.prototype.startsWith=function(a,c){var b=c||0,d=a.length;if(b+d>this.length)return!1;for(var e=0;e<d;++e,++b)if(a.charAt(e)!=this.charAt(b))return!1;return!0});String.prototype.endsWith||(String.prototype.endsWith=function(a,c){var b=c||this.length,d=a.length;if(b<d)return!1;for(;0<=--d;)if(--b,a.charAt(d)!=this.charAt(b))return!1;return!0});Array.prototype.forEach||(Array.prototype.forEach=function(a,c){for(var b=0,d=this.length;b<d;++b)a.call(c,this[b],b,this)}); function w$derive(a,c){a.prototype&&a.prototype.isPrototypeOf(c)||Object.setPrototypeOf(c,a);return c} function w$assign(a,c,b,d){var e,g=!1;if(null==c||"object"!=typeof c)return c;"boolean"==typeof b&&(g=b,b=d);if(b)for("string"==typeof b&&(b=b.split(",")),d=0;d<b.length;++d){var h=b[d],k=h;-1!=(e=h.indexOf(":"))&&(k=h.substring(0,e),h=h.substring(e+1));e=c[h];if(g?null!=e:"undefined"!=typeof e)a[k]=e}else for(h in c)c.hasOwnProperty(h)&&(e=c[h],(g?null!=e:"undefined"!=typeof e)?a[h]=e:delete a[h]);return a} function w$is(a,c){a=a&&("undefined"==typeof a.length||0<a.length);return 1===c?a?1:0:"string"==typeof c?a?c:null:a?!0:!1}function w$toggle(a,c){"0"===a?a=0:"1"===a?a=1:"true"===a?a=!0:"false"===a?a=!1:"string"==typeof a&&a===c&&(a=!0);return w$is(!a,c)}function w$isElements(a){return a&&(a instanceof HTMLCollection||Array.isArray(a))}function w$oneOrMore(a,c){return null===c?0==a:a<c}function w$isArray(a){return"object"==typeof a&&a&&(Array.isArray(a)||a.$w$isArray)} function w$query(a,c,b){var d=!1,e=0,g=c||document,h=!1;if(a)if("object"==typeof a){h=w$isElements(a);var k=a}else{if(-1!=a.indexOf(";")){var l=a.split(";");k=[];h=!0}if(b||w$isElements(g))k=[],h=!0;for(var q=Array.isArray(l)?l.length:null,m=0;w$oneOrMore(m,q);++m){null!==q&&(a=l[m]);d=!1;e=0;if(a.startsWith(" "))d=!1,a=a.substring(1);else if(a.startsWith("##"))d=!0,e=2;else if(a.startsWith("#")){d=!0;for(var f=e=1;f<a.length;++f){var r=a.charAt(f);if(!("a"<=r&&"z">=r||"A"<=r&&"Z">=r||f>e&&("0"<= r&&"9">=r||"_"==r||"-"==r))){d=!1;break}}}else a.startsWith("=")&&(a="*[name='"+a.substring(1)+"']");r=g instanceof HTMLCollection||Array.isArray(g)?v.length:"1";for(var x=-1;++x<r;){var v="number"==typeof r?g[x]:g;if(0==a.indexOf(">"))(f=function p(a,f,c){var d=a.indexOf(">"),e=(-1!=d?a.substring(0,d):a).split("."),r=0;a:for(;r<f.children.length;++r){var q=f.children[r];if(!e[0]||"*"==e[0]||e[0].toUpperCase()==q.nodeName){for(var m=1;m<e.length;++m)if(!q.classList.contains(e[m]))continue a;if(-1!= d)return p(a.substring(d+1),q,c);Array.isArray(c)&&c.push(q);if(!b)return q}}return null}(a.substring(1),c,k))&&!h&&(k=f);else if(d)f=document.getElementById(a.substring(e)),h?k.push(f):k=f;else if(h){var C=v.querySelectorAll(a);for(f=0;f<C.length;++f)k.push(C[f])}else k=v.querySelector(a)}if(!h)break}}else k=g;b?w$isElements(k)||(k=k?[k]:[]):w$isElements(k)&&(k=k.length?k[0]:null);if("function"==typeof b)for(f=0;f<k.length;++f)b(k[f]);return k} function w$queryAll(a,c,b){return w$query(a,c,b||!0)} function w$show(a,c){c==WEAVEWORLD.W$TOGGLE&&(c=!w$show(a));if("undefined"==typeof c)return"none"!=window.getComputedStyle(a).display;if(c)return"none"==window.getComputedStyle(a).display&&(a.style.display=a.$w&&a.$w.$styleDisplay?a.$w.$styleDisplay:/^(address|blockquote|body|center|dir|div|dl|fieldset|form|h[1-6]|hr|isindex|menu|noframes|noscript|ol|p|pre|table|ul|dd|dt|frameset|li|tbody|td|tfoot|th|thead|tr|html)$/i.test(a.nodeName)?"block":"inline"),!0;var b;(a.$w||(a.$w={})).$styleDisplay||"none"== (b=window.getComputedStyle(a).display)||(a.$w.$styleDisplay=b);a.style.display="none";return!1}function w$attribute(a,c){var b=a.getAttribute(c);return null!=b?b:a.hasAttribute(c)?"":null}function w$hasParent(a,c){c||(c=document.body);for(;a;a=a.parentElement)if(a===c)return!0;return!1} function w$element(a,c,b,d){if("string"==typeof a){if(!a||"#text"==a)return document.createTextNode(c);a=document.createElement(a)}var e=a,g=w$isElements(a)?a.length:null;if("string"==typeof c){d=!1!==d;for(var h=0;w$oneOrMore(h,g);++h){var k=c,l;null!==g&&(a=e[i]);d&&"w:text"==k?a.textContent=b||"":d&&"w:html"==k?a.innerHTML=b||"":d&&k.startsWith(l="w:set:")?a[k.substring(l.length)]=b:d&&k.startsWith(l="w:data:")?(k="data-"+k.substring(l.length),null!=b?a.setAttribute(k,b):a.removeAttribute(k)): d&&k.startsWith(l="w:style:")?(k=k.substring(l.length),null!=b?a.style[k]=b:a.removeStyle(k)):d&&"w:show"==k?w$show(a,"undefined"!=typeof b?b:null):(k.startsWith("@")&&(k=k.substring(1)),d&&k.startsWith(l="w:attr:")&&(k=k.substring(l.length)),null!=b?a.setAttribute(k,b):a.removeAttribute(k))}}else if("object"==typeof c)for(h=0;w$oneOrMore(h,g);++h)for(k in null!==g&&(a=e[h]),c)w$element(a,k,c[k],b);return a} function w$defineElement(a,c,b){if(c){var d=c,e,g={};w$isArray(c)||(d=c.replace(/;;/g,"\n").split("\n"));for(c=0;c<d.length;++c)if((e=d[c].trim())&&"#"!=e.charAt(0)){var h=e,k=e,l;-1!=(l=e.indexOf("="))&&(h=e.substring(0,l),k=e.substring(l+1));g[h]=k;"@"==h.charAt(0)?"object"==typeof a&&a&&w$element(a,h.substring(1),k):-1==h.indexOf(".@")&&b&&b(a,h,k)}return g}} function w$defineSelect(a,c,b){var d=w$defineElement(null,c);a.innerHTML="";w$defineElement(a,c,function(c,g,h){c=g+".@";h=a.appendChild(w$element("option",{"w:set:value":g,"w:text":h}));b==g&&(h.selected=!0);for(var e in d)e.startsWith(c)&&w$element(h,e.substr(c.length),d[e])});return a} function w$radioClick(a){var c=a.target;if("INPUT"==c.nodeName&&"radio"==c.type)return a.stopPropagation(),a.cancelBubble=!0;w$queryAll("input[type='radio']",c.parentElement,function(a){a.checked=!0});return w$no(a)} function w$defineRadio(a,c,b,d,e){var g=w$defineElement(null,b);a.innerHTML="";w$defineElement(a,b,function(b,k,l){b=k+".@";var q=a.appendChild(w$element("span",{"class":"wradio",style:"white-space:nowrap;",onclick:"return w$radioClick(event,this)"})),m=q.appendChild(w$element("input",{type:"radio",name:c,value:k}));d==k&&(m.checked=!0);q.appendChild(w$element("span",{"w:text":l}));for(var f in g)f.startsWith(b)&&w$element(q,f.substr(b.length),g[f]);e&&e.call(this,q)});return a} function w$removeElement(a){return a&&a.parentElement?(a.parentElement.removeChild(a),a.parentElement=null,!0):!1}function w$hasWarning(a){if(a)for(var c=Object.getOwnPropertyNames(a),b=0;b<c.length;++b){var d=c[b];if((d.startsWith("_w_")||"_w"==d||d.endsWith("$warning"))&&a[d])return!0}return!1} function w$warning(a,c){a instanceof HTMLElement&&(a=w$data(a));if(a){if(c){var b=Object.getOwnPropertyNames(c);for(var d=!1,e=0;e<b.length;++e){h=b[e];var g;if(h.startsWith(g="_w_")||h==(g="_w"))d=(d=c[h])?w$say(d,d):void 0,a[h.substring(g.length)+"$warning"]=d,d=!0;else if(h.startsWith(g="_m_")||h==(g="_m"))d=(d=c[h])?w$say(d,d):void 0,a[h.substring(g.length)+"$message"]=d,d=!0}return d}Object.getOwnPropertyNames(a);for(var h in a)if(h.endsWith("$warning")||h.endsWith("$message"))a.$w$proxy&&null== a[h]||(a[h]=void 0)}}function w$check(a,c){if(a){a instanceof Event&&(a=a.target);var b,d,e,g;a.checkValidity&&a.checkValidity();if((b=a.getAttribute("name"))&&(d=w$find$(a))&&(e=w$data(d))){var h;"undefined"==typeof c&&(c=w$get(a));if("undefined"!=typeof c){var k=b+"$warning";"function"==typeof(h=e[b+"$check"])?g=h.call(e,a,d,c):"function"==typeof(h=e[b+"$valid"])&&(g=h.call(e,c));e.$w$proxy&&e[k]==g||(e[k]=g||void 0)}}return g}} function w$checkArg(a,c,b,d){var e=a,g;if(!b)return null;a instanceof Event&&(a=a.target);a instanceof HTMLElement&&(e=w$data(a));if(!d&&a instanceof HTMLElement&&"function"==typeof(g=e[(c||"")+"$check"]))a=g.call(e,a,b);else if(d||"function"!=typeof(g=e[(c||"")+"$valid"])){d=Object.getOwnPropertyNames(b);a={};for(var h=0;h<d.length;++h){var k=d[h];if(c&&"function"==typeof(g=e[c+"$"+k+"$valid"])){var l=g.call(e,b[k]);a["_w_"+k]=l||void 0}else"function"==typeof(g=e[k+"$valid"])&&(l=g.call(e,b[k]), a["_w_"+k]=l||void 0)}}else a=g.call(e,b);return"string"==typeof a?a?{_w:a}:null:"object"!=typeof a||0===Object.keys(a).length&&a.constructor===Object?null:a}function w$hasAncestor(a,c){for(;a&&a!=document;a=a.parentElement)if(a==c)return!0;return!1} function w$find(a,c,b){"string"==typeof a&&(a=w$query(a));var d;if(!c)throw Error("Missing description parameter!");if("string"==typeof c)if(-1==(d=c.lastIndexOf("."))){var e=c;c=null}else e=c.substring(0,d),c=c.substring(d+1);a&&b&&(a=a.parentElement);for(;a&&a!=document;a=a.parentElement)if(b=a.classList,(!e||e==a.nodeName)&&b&&b.length)if("string"==typeof c){if(b.contains(c))return a}else for(d=0;d<c.length;++d)if(b.contains(c[d]))return a;return null} function w$selectAll(a,c){if(a instanceof HTMLElement){var b=window.getSelection();b.removeAllRanges();if("INPUT"==a.nodeName)a.focus(),a.setSelectionRange(0,a.value.length);else{var d=document.createRange();d.selectNodeContents(a);b.addRange(d)}}else if(a instanceof Event){d=a.target;var e=document.activeElement==d||(b=window.getSelection())&&b.baseNode==d;e||"DIV"!=d.nodeName||"true"==d.getAttribute("contenteditable")||(e=!0);if(!e&&(w$selectAll(d),!c))return w$no(a)}} function w$getParameters(a,c){null==c&&(c=window.location.search);a||(a={});c.startsWith("?")&&(c=c.substring(1));if(c)for(var b=c.split("&"),d=0;d<b.length;++d){var e=b[d].split("="),g=decodeURIComponent(e[0]),h;e=null==e[1]?null:decodeURIComponent(e[1]);g in a?w$isArray(h=a[g])?h.push(e):a[g]=[h,e]:a[g]=e}return a} function w$setParameters(a,c){null==c&&(c=window.location.href);var b,d="";-1!=(b=c.indexOf("?"))&&(d=c.substring(b),c=c.substring(0,b));b=w$assign(w$getParameters({},d),a);d="";var e="?",g;for(g in b){var h=b[g];"undefined"!=typeof h&&(d+=e+g,null!=h&&(d+="="+encodeURIComponent(b[g])),e="&")}return c+d}function w$setCookie(a,c,b){var d="; expires=0";b&&(d="; expires="+(new Date(Date.now()+864E5*b)).toGMTString());document.cookie=a+"="+c+d+"; path=/"} function w$getCookie(a,c){for(var b=a+"=",d=document.cookie.split(";"),e=0;e<d.length;++e){for(var g=d[e];g.startsWith(" ");)g=g.substring(1);if(g.startsWith(b))return g.substring(b.length)}return c} function w$get(a,c){"string"==typeof a&&(a=w$query(id,c));if(a){if("FORM"==a.nodeName){for(var b={},d=0;d<a.elements.length;++d){var e=a.elements[d],g;("INPUT"==e.nodeName&&"submit"!=e.type&&"reset"!=e.type&&"button"!=e.type||"SELECT"==e.nodeName||"TEXTAREA"==e.nodeName)&&"undefined"!=typeof(g=w$get(e))&&(b[e.name]=g)}return b}if("INPUT"==a.nodeName){if("checkbox"==a.type||"radio"==a.type){if(a.checked)return a.value;return}return a.value}if("SELECT"==a.nodeName){b=void 0;e="";for(d=0;d<a.length;++d)a.options[d].selected&& (b=(b||"")+e+a.options[d].value,e=",");return b}return"TEXTAREA"==a.nodeName?a.value:a.innerHTML}return null} function ASync(){this.queue=[];this.locked=!1;this.exec=function(a,c,b){if("string"==typeof c){var d=this;this.exec(function(){d.locked=!0;var e=b||new Image;e.onload=function(){try{a&&a(e)}finally{d.locked=!1}};e.onerror=function(){d.locked=!1};e.src=c})}else this.queue.push(a),this.queueID||(this.queueID=requestAnimationFrame(this.sync.bind(this)))};this.sync=function(a){a=this.queue;if(a.length){if(!this.locked){a=a.shift();try{a()}catch(c){console.log("async exception:",c)}}this.queueID=requestAnimationFrame(this.sync.bind(this))}else this.queueID= null}}function w$glass(a){if(a)(a=WEAVEWORLD.w$glass)?w$show(a,!0):document.body&&(WEAVEWORLD.w$glass=w$element("div",{"class":"wglass"}),document.body.insertBefore(WEAVEWORLD.w$glass,document.body.firstElementChild)),setTimeout(function(){var a;(a=WEAVEWORLD.w$glass)&&a.setAttribute("disabled","")},2E3);else if(a=WEAVEWORLD.w$glass)w$removeElement(WEAVEWORLD.w$glass),WEAVEWORLD.w$glass=null;return WEAVEWORLD.w$glass} function w$ajax(a){if("undefined"!=typeof XMLHttpRequest)var c=new XMLHttpRequest;else for(var b="MSXML2.XmlHttp.6.0 MSXML2.XmlHttp.5.0 MSXML2.XmlHttp.4.0 MSXML2.XmlHttp.3.0 MSXML2.XmlHttp.2.0 Microsoft.XmlHttp".split(" "),d=0;d<b.length;d++)try{c=new ActiveXObject(b[d]);break}catch(l){}a.async||w$glass(!0);c.onreadystatechange=function(){a.xhr=c;if(4==c.readyState){var b=c.status;200==b||304==b||400<=b&&500>b||!a.error?(b=c.responseText,w$glass(),(c.getResponseHeader("Content-Type")||"").startsWith("application/json")&& (b=JSON.parse(b)),a.success&&a.success(b,a)):a.error&&a.error(c);a.loop&&!WEAVEWORLD["@end"]&&requestAnimationFrame(a.loop)}};a.withCredentials&&(c.withCredentials=!0);b=a.data||{};d=a.method||"GET";var e="";if("GET"==d||"POST"==d){var g="GET"==d?"?":"";for(var h in b){var k;"undefined"!=typeof(k=b[h])&&(e+=g+encodeURIComponent(h),null!=k&&(e+="="+encodeURIComponent(b[h])),g="&")}b=e;g="application/x-www-form-urlencoded; charset=UTF-8"}else"object"==typeof b&&(b=JSON.stringify(b),g="application/json; charset=UTF-8"); d.endsWith(".json")&&(d=d.substring(0,d.length-5));"GET"==d?(c.open("GET",(a.url||"")+e,"undefined"!=typeof a.async?a.async:!0),a.pragma&&c.setRequestHeader("Pragma",a.pragma),c.send()):(c.open(d,a.url||"","undefined"!=typeof a.async?a.async:!0),a.pragma&&c.setRequestHeader("Pragma",a.pragma),g&&c.setRequestHeader("Content-type",g),c.send(b))} function W$CALL(){var a=0,c,b;"string"==typeof arguments[a]&&(c=arguments[a++]);if(null==arguments[a]||"object"==typeof arguments[a]&&!(arguments[a]instanceof HTMLElement)){var d=arguments[a++];"object"!=typeof arguments[a]||arguments[a]instanceof HTMLElement||(b=arguments[a++])}b||(b={});arguments[a]instanceof HTMLElement&&(b.w$element=arguments[a++],b.success||(b.success=WEAVEWORLD.w$receive),"string"==typeof arguments[a]&&(b.w$cmd=arguments[a++]),"object"==typeof arguments[a]&&arguments[a]&&(b.weave$data= arguments[a++]));"function"==typeof arguments[a]&&(b[b.success?"callback":"success"]=arguments[a++]);b.success||(b.success=WEAVEWORLD.w$receive);"undefined"==typeof b.error&&(b.error=WEAVEWORLD.w$ajax$error);"undefined"==typeof b.pragma&&(b.pragma="W$CALL");b.method||(b.method="POST.json");b.url||(b.url=location.pathname);"string"==typeof c?(b.data={},-1!=(a=c.indexOf(":"))?(b.method=c.substring(0,a),b.url=c.substring(a+1)):b.data[c]="","object"==typeof d&&d&&w$assign(b.data,d)):"object"==typeof d&& d&&(b.data=d);!b.w$element||b.w$cmd&&b.w$cmd.startsWith("~")||w$warning(b.w$element);(WEAVEWORLD.w$call||w$ajax)(b)}function w$sync(){w$ajax({method:"GET",url:location.pathname,pragma:"W$CALL",data:{"!@":WEAVEWORLD["@time"]},async:!0,success:WEAVEWORLD.w$receive,loop:w$sync})}function w$wmenuOff(a){for(var c=WEAVEWORLD.menuStack;c.length&&c[c.length-1]!=a;)w$removeElement(c.pop())} function w$wmenuShow(a,c,b,d,e,g,h,k){var l=void 0;"string"==typeof c&&(c=document.getElementById(c),c=c.cloneNode(!0),c.removeAttribute("id"));c.$w||(c.$w={});c.$w.parent=a;h&&(l=h(a,c,b,d,e,g));c.classList.remove("w");WEAVEWORLD.menuStack.push(c);for(h=0;h<c.children.length;++h){var q=c.children[h];q.classList.contains("wmenuitem")&&(q.classList.remove("wmenuitem-selected"),q.onmouseover=function(b){var f=b.target;w$no(b);for(b=0;b<c.children.length;++b){var d=c.children[b];d.classList.contains("wmenuitem")&& d!=f&&d.classList.remove("wmenuitem-selected")}f.classList.add("wmenuitem-selected");b=f.getBoundingClientRect();for(d=0;d<f.children.length;++d){var e=f.children[d];if(e.classList.contains("wmenu")){w$wmenuShow(a,e.cloneNode(!0),b.right-2,b.left,b.top,b.bottom,null,k);break}}},q.onclick=function(b){w$no(b);var f=b.currentTarget;if(f.classList.contains("disable"))return!1;for(var c=f.getBoundingClientRect(),d=0;d<f.children.length;d++){var e=f.children[d];if(e.classList.contains("wmenu"))return w$wmenuShow(a, e.cloneNode(!0),c.right-5,c.left,c.top,c.bottom,null,k),!1}f.getAttribute("w:on:menu");c={};var q;null!=(q=w$attribute(f,"w:checked"))&&(c[w$findName(f)||"value"]=q);w$on(b,"menu",null,c);w$wmenuOff()})}c.onmouseout=function(a){w$no(a);a=a.relatedTarget||document.activeElement;if(c.classList.contains("wmenuM"))return!1;for(;null!=a&&!a.classList.contains("wmenu");)a=a.parentElement;w$wmenuOff(a)};"undefined"==typeof l&&(c.style.position="absolute",c.style.display="inline-block",c.style.left=(b+=window.pageXOffset)+ "px",c.style.top=(e+=window.pageYOffset)+"px",document.body.appendChild(c),b=document.body.getBoundingClientRect(),e=c.getBoundingClientRect(),e.right>b.right&&(c.style.left=Math.max(0,d-e.width+window.pageXOffset)+"px"),e.bottom>b.bottom&&(c.style.top=Math.max(0,g-e.height+window.pageYOffset)+"px"));return c} function w$menu(a,c,b,d){if(a instanceof Event){var e=a;a=e.target;w$no(e);var g={left:e.clientX,right:e.clientX,top:e.clientY,bottom:e.clientY};c||(c=a.getAttribute("w:on:"+e.type+":menu")||a.getAttribute("w:menu"))}else g=a.getBoundingClientRect(),c||(c=a.getAttribute("w:menu"));"string"==typeof c&&(c.startsWith("#")?(c=w$query(c),c=c.cloneNode(!0),c.removeAttribute("id"),c.$w||(c.$w={}),c.$w.parent=a):(e=w$data(a),c=w$use(c,e||{},null,a)));w$wmenuShow(a,c,g.left,g.right,g.top,g.bottom,b,d)} function w$no(a){a.preventDefault();a.stopPropagation();a.cancelBubble=!0;return!1}function w$default(a){a.stopPropagation();a.cancelBubble=!0;return!1} function w$action(a,c,b){var d;c&&c.target==a&&b&&a.name in b&&w$check(a,b[a.name]);for(;a&&(!a.$w||!(d=a.$w.$actions));a=a.parentElement);if(!a)return null;if(w$isArray(d)){var e,g;null!=b&&(e=a.$w.$cx)||(e=a.$w.$cx={});(g=w$data(a))||(g={});Object.setPrototypeOf(e,g);null==b?b=g:Object.setPrototypeOf(b,e);var h=0;a:for(;h<d.length;++h){var k=d[h];if(!w$hasParent(k.el)){d.splice(h--,1);continue a}k=k.$do.call(g,a,c,b,k.el);"object"==typeof k&&(b=k);if(b!=g)for(k=Object.getOwnPropertyNames(b),h=0;h< k.length;++h){var l=k[h];e.hasOwnProperty(l)?e[l]=b[l]:Object.defineProperty(e,l,{value:b[l],writable:!0,enumerable:!0,configurable:!0})}}}} function w$arg(){for(var a=0,c={},b=!0;a<arguments.length;++a){var d=arguments[a];if("string"==typeof d)c[d]="";else if("object"!=typeof d||!d||d instanceof HTMLElement)if("boolean"==typeof d)b=d;else break;else w$assign(c,d)}d=arguments[a];for(var e=w$data(d),g=arguments[a+1].split(","),h=0;h<g.length;++h){var k=g[h].trim(),l,q;b&&(q=k.startsWith(WEAVEWORLD.W$TOGGLE))&&(k=k.substring(WEAVEWORLD.W$TOGGLE.length));if(q){var m=!0;-1!=(l=k.indexOf(":"))&&(m=WEAVEWORLD.weave$evalMacro(d,e,k.substring(l+ 1),!1),k=k.substring(0,l));var f=e[k];f=w$toggle(f,m)}else-1!=(l=k.indexOf(":"))?(f=WEAVEWORLD.weave$evalMacro(d,e,k.substring(l+1),!1),k=k.substring(0,l)):f=e[k];"undefined"!=typeof f&&(c[k]=f)}for(a+=2;a<arguments.length;++a)d=arguments[a],"object"==typeof d&&d&&w$assign(c,d);return c} function w$on(a,c,b,d,e,g){function h(a){if(!a)return-1;var f=a.indexOf("{");a=a.indexOf("(");return-1!=f&&-1!=a?Math.min(f,a):-1!=f?f:-1!=a?a:-1}function k(a,f,b){var c=h(f),d;if((f=-1!=c?f.substring(c):"")&&"{"==f.charAt(c)){if(c=w$data(a),-1!=f.indexOf("{{")&&(f="{"+WEAVEWORLD.weave$evalMacro(a,c,f.substring(1),!0)),"{}"!=f)try{var e=JSON.parse(f)}catch(y){console.log(y)}}else"()"!=f&&(f.endsWith(")")&&(f=f.substring(0,f.length-1)),e=w$arg(a,f.substring(1)));c=b;e&&(c=c?w$assign(c,e):e);c||(c= {});if(b&&(null!=(d=w$attribute(a,"w:name"))||null!=(d=w$attribute(a,"name")))&&d){var r;a.hasAttribute("w:checked")?c[d]=a.getAttribute("w:checked"):"undefined"!=typeof(r=a.value)&&(c[d]=r)}return c}var l=b=b||a.target,q;c="string"==typeof e?e:"on"+c;try{a:for(;b;b=!c.startsWith("on")&&b.$w&&b.$w.parent?b.$w.parent:b.parentElement){var m;if(b.getAttribute){-1==c.indexOf("mouse")&&console.log(c,b);if(m=b.getAttribute("w:on:"+c+":menu")){w$no(a);var f=k(b,m),r;-1!=(r=h(m))&&(m=m.substring(0,r));var x= w$data(b);var v=b.getBoundingClientRect();x&&(0===Object.keys(f).length?f=x:Object.setPrototypeOf(f,x));var C=w$use(m,f,null,b);w$wmenuShow(b,C,v.left,v.right,v.top,v.bottom);return!0}if(b.hasAttribute(m="w:on:"+c+":data")){var w=b;f=k(b,m=b.getAttribute(m));w=0<(r=h(m))?w$find(w,m.substring(0,r)):w$find$(w);for(var A in f){var D=f[A];A.startsWith(WEAVEWORLD.W$TOGGLE)&&(A=A.substring(WEAVEWORLD.W$TOGGLE.length),w.dataset&&(D=w$toggle(w$attribute(w,"data-"+A),D)));null!=D?w.setAttribute("data-"+A, D):w.removeAttribute("data-"+A)}}if(null!=(m=w$attribute(b,"w:on:"+c+":set")))for(A in w=b,f=k(b,m,d||{}),0<(r=m.indexOf("("))&&(w=w$find(w,m.substring(0,r))),w=w$find$(w),f)D=f[A],A.startsWith(WEAVEWORLD.W$TOGGLE)&&(A=A.substring(WEAVEWORLD.W$TOGGLE.length),w.$w.$&&(D=w$toggle(w.$w.$[A],D))),(w.$w||(w.$w={})).$[A]=D;null!=(m=w$attribute(b,"w:on:"+c+":action"))&&(w=b,f=k(b,m,{}),0<(r=h(m))&&(w=w$find(w,m.substring(0,r))),w$action(w,a,f));if(null!=(m=w$attribute(b,"w:on:"+c))){if(!m){v=!0;break a}else if("default"== m){v=!1;break a}-1!=(r=h(m))&&(d=k(b,m.substring(r),d||{}),m=m.substring(0,r));v=w$on(a,m,b,d,m,!0);if(null!==v)break a}null!=(m=w$attribute(b,"w:on:"+c+":href"))&&(w=b,f=k(b,m,{}),0<=(r=h(m))&&(m=m.substring(0,r)),window.open(w$setParameters(f,m),(q=w.getAttribute("target"))?q:"_self"))}var u=b.classList;if(u)for(A=0;A<u.length;++A){var p=u[A];if(p&&(q=WEAVEWORLD.w$type[p])&&"function"==typeof q[c]){m=q;x=w$data(b);var n;x&&!w$isArray(x)&&(m=WEAVEWORLD.w$setPrototypeOf(x,q));if(n=q[c+"$arg"])d=w$arg(b, n,d);var E=w$checkArg(b,c,d);E?(w$warning(b),w$warning(b,E),v=void 0):v=q[c].call(m,b,a,d);if(null!==v)break a}}}"undefined"==typeof v&&(q=WEAVEWORLD.w$type[""])&&"function"==typeof q[c]&&(m=q,(x=w$find$(b))&&(x=x.$w)&&(x=x.$)&&!w$isArray(x)&&(m=WEAVEWORLD.w$setPrototypeOf(x,q)),v=q[c].call(m,document.body,a,d));if(null!==v)return a&&(!1===v||"dragover"==a.type?(a.stopPropagation(),a.cancelBubble=!0):"undefined"!=typeof v&&"dragstart"!=a.type&&w$no(a)),v;if(!c.startsWith("on")&&!g){console.log("Can not find event handler for "+ c,l);return}}catch(t){console.log("Event handling error during `"+c+"`",t)}return null}LOG=0; function WElement(a,c,b,d){this.nodeName=a.nodeName;if(3==a.nodeType){var e=a.textContent,g=w$says(e);this.textContent=g;e!=g&&(a.textContent=g)}else if(1==a.nodeType){a.normalize();var h;if((h=a.attributes)&&h.length){this.attributes=[];for(var k=0;k<h.length;++k){var l=h[k];e=l.value;g=w$says(e);c&&"w:define"==l.name&&(c[g]=this);this.attributes.push({name:l.name,value:w$says(g)});e!=g&&a.setAttribute(l.name,g)}}if(a=a.firstChild)for(this.childNodes=[];e=a;)a=e.nextSibling,1==e.nodeType||3==e.nodeType? (this.childNodes.push(new WElement(e,c,b,d)),"w:else"==e.nodeName&&w$removeElement(e)):8==e.nodeType&&d&&d(w$says(e.textContent))}}Object.defineProperty(WElement.prototype,"nodeType",{get:function(){return"#text"==this.nodeName?3:1}});WElement.prototype.getAttribute=function(a){var c;if(c=this.attributes)for(var b=0;b<c.length;++b)if(c[b].name==a)return c[b].value;return null};WElement.prototype.hasAttribute=function(a){return null!=this.getAttribute(a)}; WElement.prototype.cloneNode=function(a){if(3==this.nodeType)var c=document.createTextNode(this.textContent);else if(1==this.nodeType){c=document.createElement(this.nodeName);var b;if(b=this.attributes)try{for(var d=0;d<b.length;++d){var e=b[d];c.setAttribute(e.name,e.value)}}catch(g){console.log(g,this)}if(a&&(b=this.childNodes))try{for(d=0;d<b.length;++d)c.appendChild(b[d].cloneNode(!0))}catch(g){console.log(g,this)}}return c};function WAttributeReference(a,c){this.parentElement=a;this.name=c} Object.defineProperty(WAttributeReference.prototype,"value",{get:function(){return this.parentElement.getAttribute(this.name)}});Object.defineProperty(WAttributeReference.prototype,"nodeType",{get:function(){return 2}}); WEAVEWORLD=function(){function a(a){return a&&("undefined"==typeof a.length||0<a.length)}function c(a,b,f){var c;if(0==f.length)return b;if("undefined"!=f){if("null"==f)return null;if("true"==f)return!0;if("false"==f)return!1;if('""'==f||"''"==f)return"";if("0"==f)return 0;if("1"==f)return 1;if(f.match("(^([a-zA-Z_$][a-zA-Z0-9_$]*){0,1}\\\\)|(^[@a-zA-Z_$][a-zA-Z0-9_$]*)")){if(-1!=(c=f.indexOf("\\")))if(0==c)b=document.body.$w.$;else{var d=f.substring(0,c);a:for(;null!=(a=a.parentElement);){if(a== document.body){b=a.$w.$;break}if(a.$w&&("."==d||a.classList.contains(d))){b=a.$w.$;if(-1!=(d=f.indexOf("\\",c+1))){d=f.substring(c+1,d);f=f.substring(c+1);continue a}break}}}f=f.substring(c+1);if(-1==f.indexOf("."))return null!=b?b[f]:void 0;a=f.split(".");b=null!=b?b[a[0]]:void 0;for(f=1;f<a.length;++f)c=a[f],b=null!=b&&c in b?b[c]:void 0;return b}return eval(f)}}function b(b,d,f){for(var e=0,q,k=0;k<=f.length;++k){var m=f.charAt(k);if("|"==m||""==m){var g=m=q=void 0,h=b,l=d;e=f.substring(e,k);var u= 0;if("!"==e.charAt(0))q=!a(c(h,l,e.substring(1)));else{for(var p=0;p<=e.length;++p){var n=e.charAt(p);if("="==n||"!"==n||""==n)g?(u=c(h,l,e.substring(u,p)),u="undefined"!=typeof u?m==u:"undefined"==typeof m,"="==g?q="undefined"==typeof q?u:q||u:"!"==g&&(q="undefined"==typeof q?!u:q&&!u)):m=c(h,l,e.substring(u,p)),u=p+1,g=n}q="undefined"!=typeof q?q:m}if(a(q))break;e=k+1}}return q}function d(c,e,f){for(var q=0,k,m,g=0;g<=f.length;++g){var h=f.charAt(g);if("?"==h||":"==h||""==h){if(!k)m=b(c,e,f.substring(q, g));else if("?"==k){if(a(m))return b(c,e,f.substring(q,g));if(""!=h)return d(c,e,f.substring(g+1))}else if(":"==k){if(!a(m))return b(c,e,f.substring(q,g));if(""!=h)return d(c,e,f.substring(g+1))}q=g+1;k=h}}return m}function e(a,b,f){var c;if(!f)return b;try{if(f.startsWith("[")&&-1!=(c=f.indexOf("]"))){var q=e(a,b,f.substring(c+1));-1==(c=(f=f.substring(1,c)).indexOf(" "))&&(c=f.length);var g=f.substring(0,c),m,h,l=a;for(;l;l=l.parentElement){var D=l.classList;if(D)for(var u=0;u<D.length;++u){var p= D[u];if(p&&(m=h=k.w$type[p])&&"function"==typeof h[g])return b&&"object"==typeof b&&!Array.isArray(b)&&(m=k.w$setPrototypeOf(b,h)),q=h[g].call(m,a,q,f.substring(c+1)),q=w$proxy(q)}}if("function"==typeof(m=k.to)[g])return b&&"object"==typeof b&&!Array.isArray(b)&&(m=b),q=k.to[g].call(m,a,q,f.substring(c+1)),w$proxy(q);if("function"==typeof(m=this)[g])return b&&"object"==typeof b&&!Array.isArray(b)&&(m=b),q=this[g].call(m,q,f.substring(c+1)),w$proxy(q);console.log("Transformation `"+g+"` was not found at:", a)}return d(a,b,f)}catch(n){throw console.log("Exception evaluating `"+f+"`:",n,a),n;}}function g(a,b,f,c){for(var d=0,q,k,r=null;-1!=(q=f.indexOf("{{",d))&&-1!=(k=f.indexOf("}}",q));)d<q&&(r=(r||"")+f.substring(d,q)),d=e(a,b,f.substring(q+2,k)),c&&(d=null!=d?JSON.stringify(d):"null"),null!=d&&(r=null!=r?String(r)+d:d),d=k+2;0==d?r=e(a,b,f):d<f.length&&(r=null!=r?String(r)+f.substring(d):f.substring(d));!1!==c&&null!=r&&"string"!=typeof r&&(r=String(r));return r}function h(a,b,f,c){if(!b||!b.length)return!1; var d=!1,e=a.getAttribute("w:reflect"),r;e=e&&(r=Object.getPrototypeOf(f))?r[e]:null;try{r=[];for(var q=0;q<b.length;++q)r.push(b[q]);for(q=0;q<r.length;++q){var h=r[q].name,m=r[q].value;b=h;var l,p=!1;k.weave$currentAttr=h;if(2!==c)if(h.startsWith(l="w:attr:")){p=!0;h=h.substring(l.length);var n=g(a,f,m);e&&!1===e.call(f,a,b,n)||n!=a.getAttribute(h)&&(null!=n?a.setAttribute(h,n):a.removeAttribute(h))}else if(h.startsWith(l="w:data:"))p=!0,h="data-"+h.substring(l.length),n=g(a,f,m),e&&!1===e.call(f, a,b,n)||n!=a.getAttribute(h)&&(null!=n?a.setAttribute(h,n):a.removeAttribute(h));else if(h.startsWith(l="w:style:"))p=!0,h=h.substring(l.length),n=g(a,f,m,!1),e&&!1===e.call(f,a,b,n)||n!=a.style[h]&&(a.style[h]=n);else if(h.startsWith(l="w:class:")){if(p=!0,h=h.substring(l.length),n=w$cond(g(a,f,m,!1)),!e||!1!==e.call(f,a,b,n)){var E=a.classList;n?E.has(h)||E.add(h):E.has(h)&&E.remove(h)}}else if("w:text"==h)p=d=!0,n=g(a,f,m),e&&!1===e.call(f,a,b,n)||a.textContent==n||(a.textContent=n||"");else if("w:html"== h)p=d=!0,n=g(a,f,m),e&&!1===e.call(f,a,b,n)||(a.innerHTML=n||"");else if("w:show"==h)p=!0,n=g(a,f,m,!1),e&&!1===e.call(f,a,b,n)||w$show(a,"undefined"!=typeof n?n:null);else if("w:enable"==h)p=!0,n=w$toggle(g(a,f,m,!1)),e&&!1===e.call(f,a,b,n)||(n?a.hasAttribute("disabled")||a.setAttribute("disabled",""):a.hasAttribute("disabled")&&a.removeAttribute("disabled"));else if("w:for"==h)p=!0,n=g(a,f,m,!1),(a.$w||(a.$w={})).$for=n;else if("w:checked"==h&&(p=!0,n=m,!e||!1!==e.call(f,a,b,n))&&(n=w$findName(a))){n= g(a,f,n,!1);var t="OPTION"==a.nodeName?"selected":"checked";(m||"")==(n||"")?a.setAttribute(t,""):a.removeAttribute(t);break}p||1===c||("w:set"==h?(h=h.substring(l.length),n=g(a,f,m,!1),e&&!1===e.call(f,a,b,n)||("INPUT"==a.nodeName?n!=a.getAttribute("value")&&(null!=n?a.setAttribute("value",n):a.removeAttribute("value")):"SELECT"==a.nodeName?a.value=n:a.innerText=n,k.weave$currentAttr=!1,w$check(a,n||null))):h.startsWith(l="w:set:")?(h=h.substring(l.length),n=g(a,f,m,!1),e&&!1===e.call(f,a,b,n)|| (a[h]=n)):"w:warning"==h?(n=g(a,f,m),e&&!1===e.call(f,a,b,n)||(a.setCustomValidity&&a.setCustomValidity(n||""),n?a.setAttribute("w:validity",n):a.removeAttribute("w:validity"))):"w:show:for"==h?(n=g(a,f,m,!1),e&&!1===e.call(f,a,b,n)||w$show(a,w$for(a,n))):"w:enable:for"==h&&(n=g(a,f,m,!1),e&&!1===e.call(f,a,b,n)||(a.disabled=!w$for(a,n))))}}finally{k.weave$currentAttr=null}return d}var k={w$type:{"":{}},w$call:w$ajax,w$ajax$error:null,w$defined:{},"@time":0,"@end":0,menuStack:[],w$proxy$sets:new Set, w$proxy$paused:new Set,w$proxy$when:0,w$proxy$AnimationFrame:null,w$process:function(a,b,f){var c=k.w$weaver[a[0]];if(!c)throw["Not found",a,{el:b,div:f}];c(a[2],b,a[3],f)},weave$current:null,W$REFRESH:!0,W$TOGGLE:"+-",W$SAY_BEGIN:"§",W$SAY_END:"§",W$SAY_CODE:"|"},l=k.w$events={holdTime:2E3,clickedTime:2E3,clickCount:0,buttons:0,mouseDownTime:0,keyDownTime:0,mouseAnchor:{x:0,y:0},mouseEvent:{},keyEvent:{},timeoutID:0,timeoutClickedID:0,target:null,setTimeOut:function(a,b){clearTimeout(l.timeoutID); a&&(l.timeoutID=setTimeout(a,b||l.holdTime))},setTimeOutClicked:function(a,b){clearTimeout(l.timeoutClickedID);a&&(l.timeoutClickedID=setTimeout(a,b||l.clickedTime))}};document.addEventListener("keydown",function(a){l.setTimeOutClicked();l.keyDownTime=a.timeStamp;l.keyEvent=a;l.setTimeOut(function(){w$on(a,"keyhold")});w$on(a,"keydown")},!1);document.addEventListener("keyup",function(a){l.setTimeOut();w$on(a,"keyup")},!1);document.addEventListener("keypress",function(a){w$on(a,"keypress")},!1);document.addEventListener("click", function(a){w$on(a,"click")},!1);document.addEventListener("dblclick",function(a){w$on(a,"dblclick")},!1);document.addEventListener("wheel",function(a){w$on(a,"wheel")},!1);document.addEventListener("touchstart",function(a){w$on(a,"touchstart")},!1);document.addEventListener("touchmove",function(a){w$on(a,"touchmove")},!1);document.addEventListener("mouseout",function(a){l.setTimeOut();w$on(a,"mouseout")},!1);document.addEventListener("mouseover",function(a){l.setTimeOut();w$on(a,"mouseover")},!1); document.addEventListener("mousedown",function(a){if(500<=a.timeStamp-l.mouseDownTime||8<Math.abs(l.mouseAnchor.x-a.clientX)||8<Math.abs(l.mouseAnchor.y-a.clientY))l.clickCount=0;l.clickCount++;l.buttons=a.buttons;l.mouseDownTime=a.timeStamp;l.mouseAnchor.x=a.clientX;l.mouseAnchor.y=a.clientY;l.mouseEvent=a;w$on(a,"mousedown");l.setTimeOut(function(){w$on(a,"mousehold")});l.setTimeOutClicked();return!0},!0);document.addEventListener("mousemove",function(a){l.mouseEvent=a;"undefined"!=typeof W$MOUSEMOVE&& W$MOUSEMOVE&&w$on(a,"mousemove");l.setTimeOut(function(){w$on(a,"mousehold")})},!1);document.addEventListener("mouseup",function(a){l.mouseEvent=a;if(w$on(a,"mouseup"))return!0;if(500>=a.timeStamp-l.mouseDownTime&&8>=Math.abs(l.mouseAnchor.x-a.clientX)&&8>=Math.abs(l.mouseAnchor.y-a.clientY)){if(w$on(a,"mouseclick"))return!0;l.setTimeOut();l.setTimeOutClicked(function(){w$on(a,"mouseclicked")},333)}else l.setTimeOut();return!0},!0);document.addEventListener("input",function(a){w$on(a,"input")},!1); document.addEventListener("change",function(a){w$on(a,"change")},!1);document.addEventListener("dragstart",function(a){w$on(a,"dragstart")},!1);document.addEventListener("dragenter",function(a){w$on(a,"dragenter")},!1);document.addEventListener("dragover",function(a){w$on(a,"dragover")},!1);document.addEventListener("dragleave",function(a){w$on(a,"dragleave")},!1);document.addEventListener("drop",function(a){w$on(a,"drop")},!1);document.addEventListener("paste",function(a){w$on(a,"paste")},!1);document.addEventListener("contextmenu", function(a){w$on(a,"contextmenu")},!1);k.W$HTMLTAGS="P BR B I U IMG A".split(" ");k.w$normalizeHTML=function f(a){try{for(var b=a.childNodes.length;0<=--b;){var c=a.childNodes[b];if(1==c.nodeType)if(f(c),"BR"==c.nodeName&&"DIV"==a.nodeName&&b==a.childNodes.length-1)w$removeElement(c);else if(!k.W$HTMLTAGS.includes(c.nodeName)){for("DIV"==c.nodeName&&a.insertBefore(document.createElement("BR"),c);c.childNodes.length;){var d=c.childNodes[0];1!=d.nodeType&&3!=d.nodeType||a.insertBefore(d,c)}w$removeElement(c)}}a.normalize()}catch(C){console.log(C)}return a}; k.w$weaver={eval:function(a,f,b,c){eval(a)},html:function(a,f,b,c){var d=Array.isArray(f)?f[0]:f;switch(a){case "begin":k["@end"]=0;break;case "end":k["@end"]=1;break;case "open":b&&b.url?location=b.url:location.reload();break;case "text":for(a=0;a<f.length;++a)d=f[a],d.textContent=b.$;break;case "html":for(a=0;a<f.length;++a)d=f[a],d.innerHTML=b.$;break;case "attr":for(a=0;a<f.length;++a){d=f[a];for(var e in b)d.setAttribute(e,b[e])}break;case "prop":for(a=0;a<f.length;++a)for(e in d=f[a],b)d[e]= b[e];break;case "style":for(a=0;a<f.length;++a)for(e in d=f[a],b)c=b[e],null!=c?d.style[e]=c:d.style.removeProperty(e);break;case "validity":LOG&&console.log("validity",f);for(a=0;a<f.length;++a)d=f[a],d.setCustomValidity(b.message);break;case "remove":for(a=0;a<f.length;++a)d=f[a],w$removeElement(d);break;case "content":for(f=c?c.childNodes:[];0<d.childNodes.length;)w$removeElement(d.firstChild);for(;0<f.length;)d.appendChild(f[0]);break;case "addBegin":f=c?c.children:[];for(b=d.firstElementChild;0< f.length;)d.insertBefore(e=f[0],b),b=e;break;case "addEnd":for(f=c?c.children:[];0<f.length;)d.appendChild(f[0]);break;case "addBefore":f=c?c.children:[];b=d;for(d=d.parentElement;0<f.length;)d.insertBefore(e=f[0],b),b=e;break;case "addAfter":f=c?c.children:[];b=d.nextSibling;for(d=d.parentElement;0<f.length;)d.insertBefore(e=f[0],b),b=e;break;case "replace":f=c?c.children:[];b=d;for(d=d.parentElement;0<f.length;)d.insertBefore(e=f[0],b),b=e;d.removeChild(b)}},open:function(a,b,c,d){location.reload()}}; k.w$receive=function(a,b){if(a)if("string"==typeof a)for(var f=a.indexOf("\x3c!--[");-1!=f;){var c=f+4,d=a.indexOf("]--\x3e",c),e=a.substring(c,d+1);f=a.indexOf("\x3c!--[",d+4);if("[]"!=e)try{var h=JSON.parse(e),g=h[1]?w$queryAll(h[1]):document.body,l;e=null;var m;(l=h[4])&&k["@time"]<(l=Number(l))&&(k["@time"]=l);if("\x3c!--[]--\x3e"==a.substring(f,f+9)&&(m=a.substring(d+4,f).trim())){e=document.createElement("DIV");if(m.startsWith("<td")||m.startsWith("<tr")){var p=document.createElement("TABLE"); e.appendChild(p);e=p}m.startsWith("<td")&&(m="<tr>"+m+"</tr>");e.innerHTML=m;if(m.startsWith("<td")||m.startsWith("<tr"))e=e.tBodies[0];m.startsWith("<td")&&(e=e.rows[0])}k.w$process(h,g,e)}catch(n){console.log("EXCEPTION:",a.substring(c-4,-1!=f?f:a.length),n)}}else b.w$element&&w$weave(b.w$element,b.w$cmd,a,b.weave$data),b.callback&&b.callback(a,b)};k.to={"?":function(a,b,c){"true"==c?c=!0:"1"==c?c=1:""===c?c=!0:c.startsWith("'")&&"'"==c.charAt(c.length-1)&&(c=c.substring(1,c.length-2));return w$is(b, c)},"??":function(a,b,c){c.startsWith("'")&&"'"==c.charAt(c.length-1)&&(c=c.substring(1,c.length-2));return w$is(b,c)},"?1":function(a,b,c){return w$is(b,1)},"!":function(a,b,c){"true"==c?c=!0:"1"==c?c=1:""===c?c=!0:c.startsWith("'")&&"'"==c.charAt(c.length-1)&&(c=c.substring(1,c.length-2));return w$toggle(b,c)},"!!":function(a,b,c){c.startsWith("'")&&"'"==c.charAt(c.length-1)&&(c=c.substring(1,c.length-2));return w$toggle(b,c)},"!1":function(a,b,c){return w$toggle(b,1)},"()":function(a,b,c){return c&& c.trim()?w$arg(a,c):{}},"?=":function(a,b,c){return b?encodeURIComponent(b):""},"?()":function(a,b,c){return w$setParameters(c&&c.trim()?w$arg(a,c):{},"?")},"??()":function(a,b,c){b=window.location.href;var f,d="?";-1!=(f=b.indexOf("?"))&&(d=b.substring(f));return w$setParameters(c&&c.trim()?w$arg(a,c):{},d)}};k.weave$evalMacro=g;k.w$apply=function w(b,c,d,g,l){var f=c=w$proxy(c),r=k.weave$current;k.weave$currentAttr=null;try{if(2==b.nodeType)return h(k.weave$current=b.parentElement,[b],c,0),b;k.weave$current= b;if(null==d)if(b.$w&&b.$w.w$)d=b.$w.w$,g||(g=!0);else{if(g)throw["Not woven Element",b];d=b;b=d.cloneNode(!1);(b.$w||(b.$w={})).w$=d;d.parentElement.replaceChild(b,d)}else(b.$w||(b.$w={})).w$=d;if(l){var u=d.childNodes;g=d=null;var p;var n=-1;var x=l;do for(var t=d||0;t<(null!=g?g:u?u.length:0);++t){var v=u[t],C=!1;f=c;if(1==v.nodeType)if("W:ELSE"==v.nodeName)break;else if(v.hasAttribute("w:item")&&!v.getAttribute("w:item")){if(null==d){d=p=t;g=t+1;x=null;for(var F=t+1;F<u.length;++F){var B=u[F]; 1==B.nodeType&&B.hasAttribute("w:item")&&!B.getAttribute("w:item")&&(p=F,g==t+1&&(g=F))}}++n>=l.$$.length-1&&(d=g=null,t=p);if(n<l.$$.length)f=l.$$[n],C=!0;else continue}var H,z=C&&l.w$map.get(f);(H=!!z)?v=z.$w.w$:z=v.cloneNode(!1);b.appendChild(z);C&&((z.$w||(z.$w={})).$$index=n,l.w$map.set(f,z));B=w(z,f,v,H,x)}while(null!=d&&d<(null!=g?g:u.length))}else if(1==b.nodeType){l=function(a,b){var c;if(c=a.getAttribute("w:use")){var d=k.w$defined[c];if(!d)throw"w:define `"+c+"` was not found";for(c=0;c< d.attributes.length;++c){var g=d.attributes[c];"w:define"!=g.name&&(a.hasAttribute(g.name)||a.setAttribute(g.name,g.value))}b=d.childNodes}else(c=a.getAttribute("w:children"))&&e(a,f,c)&&(a.$w.w$=new WElement(a,k.w$defined,w$say),b=a.$w.w$.childNodes);return b};if((null!=(n=b.getAttribute("w:at"))||null!=(n=b.getAttribute("w:named"))||null!=(n=b.getAttribute("w:name")))&&n)for(n.startsWith("!")&&(n=n.substring(1)),p="$at$"+n,z=b;z;z=z.parentElement){var y=z.classList;if(y&&y.length)for(t=0;t<y.length;++t){var J; if((J=k.w$type[y[t]])&&p in J){var K=(z.$w||(z.$w={})).$actions||(z.$w.$actions=[]);a:{for(B=0;B<K.length;++B)if(K[B].el==b)break a;K.push({el:b,$do:J[p]})}}}}var G=b.getAttribute("w:each");x=b.getAttribute("w:item");var I=b.getAttribute("w:if");p=!0;B=!1;u=d.childNodes;if(null!=G){y=f;null!=I&&(p=a(e(b,c,I)));if(p){if(y=-1===g?b.$w.$$:e(b,y,G),w$isArray(y)&&null!=(n=b.getAttribute("w:when"))){G=[];for(t=0;t<y.length;++t)a(e(b,y[t],n))&&G.push(y[t]);y=w$proxy(G)}}else y=null;w$isArray(y)||(y=w$proxy([])); ""!==x&&(n=b.getAttribute("w:type"))&&(y=k.w$setPrototypeOf(y,w$type[n]),b.classList.contains(n)||b.classList.add(n));b.$w.$$=y;g&&b.$w.w$map||(b.$w.w$map=new Map);for(;b.firstChild;)w$removeElement(b.firstChild);if(!(B=p=!!y.length))for(B=p=!0,t=0;t<u.length;++t)if("W:ELSE"==u[t].nodeName){B=p=!1;break}if(p)if(""===x)for(t=0;t<y.length;++t)z=g&&b.$w.w$map&&b.$w.w$map.get(y[t]),(H=!!z)||(z=b.cloneNode(!1),z.removeAttribute("w:each"),b.$w.w$map.set(y[t],z)),b.appendChild(z),w(z,y[t],d,H);else u=l(b, u),h(b,b.attributes,c,1),w(b,c,d,g,b.$w)}else{if(null!=x){f=-1===g?b.$w.$:e(b,f,x);if(n=b.getAttribute("w:type"))f=k.w$setPrototypeOf(f,k.w$type[n]),b.classList.contains(n)||b.classList.add(n);b.$w.$=f;"object"!=typeof f||f.$original||(f.$w$direct$$original=w$assign({},f))}null!=(n=w$attribute(b,"w:named"))?B|=k.w$named(b,f,n):null!=(n=w$attribute(b,"w:name"))&&(B|=k.w$name(b,f,n,!0));u=l(b,u);B|=h(b,b.attributes,f,1);null!=I&&(p=a(e(b,c,I)),g=!1,b.$w.$if=p)}if(!B&&u){if(!p){for(t=0;t<u.length;++t)if(v= u[t],"W:ELSE"==v.nodeName){p=v;u=v.childNodes;break}for(p||(u=null);b.lastChild;)w$removeElement(b.lastChild)}if(u){C=b.childNodes;if(g&&(g=u.length==C.length))for(t=0;t<C.length;++t)if(!(F=C[t]).$w||F.$w.w$!=u[t]){g=!1;break}if(g)for(u=C,t=0;t<u.length;++t)v=u[t],w(v,f,v.$w.w$,!0);else{for(;b.lastChild;)w$removeElement(b.lastChild);for(t=0;t<u.length;++t){v=u[t];if("W:ELSE"==v.nodeName)break;z=b.appendChild(v.cloneNode(!1));w(z,f,v)}}}}b.attributes&&h(b,b.attributes,f,2);b.$w.$actions&&(k.weave$currentAttr= !1,w$action(b,null),LOG&&console.log(b.$w.$actions))}1==b.nodeType&&b.classList.remove("w")}finally{k.weave$current=r,k.weave$currentAttr=null}return b};k.w$setPrototypeOf=function(a,b){if(!b||!a||"object"!=typeof a||Array.isArray(a)||Object.getPrototypeOf(a)===b||b.isPrototypeOf(a))return a;if("undefined"==typeof Proxy){if(Object.getPrototypeOf(a)==Object.prototype)return Object.setPrototypeOf(a,b)}else Object.setPrototypeOf(a=w$proxy(a),b);return a};k.css=function(a){k.w$STYLE||(k.w$STYLE=w$element("style", {name:"w:css"}),k.w$STYLE.appendChild(document.createTextNode("")),document.head.appendChild(k.w$STYLE));if("string"==typeof a){var b=k.w$STYLE.sheet;b.insertRule(a,b.length?b.length:0)}return k.w$STYLE};k.jsonTransfer=function(a,b){if("undefined"==typeof b){var c=a.dataTransfer&&a.dataTransfer.getData("application/json")||W$DATATransfer;return"string"==typeof(c=W$DATATransfer)&&c?JSON.parse(c):c}a.dataTransfer.setData("application/json",W$DATATransfer=b);return a.dataTransfer};k.w$for=function(a){if("string"== typeof a&&a)switch(a.charAt().toLowerCase()){case "0":case "-":return 0;case "r":case "g":return 2;case "a":return 6;case "u":return 7;case "s":case "w":case "+":return 8;case "d":case "*":return 9}return 5};k.w$nameArgIndex=function(a){if(!a)return-1;var b=a.indexOf("{");a=a.indexOf("(");return-1!=b&&-1!=a?Math.min(b,a):-1!=b?b:-1!=a?a:-1};k.w$name=function(a,b,c,d){var e=a.nodeName,f,g,h=!1,l=c;var p=k.w$nameArgIndex(c);-1!=p&&(l=l.substring(p));b||(b={});l&&!a.hasAttribute("name")&&a.setAttribute("name", l);l.startsWith("!")&&(l=l.substring(1));"undefined"!=typeof(g=f=b[l+"$type"])&&("boolean"==g?g="checkbox":"string"==g?g="text":"html"==g?g="text":"integer"==g&&(g="number"));(b[p=l+"$hint"]||b[p=l+"$title"])&&a.setAttribute("w:attr:title",c);if("FORM"==e)a.hasAttribute("accept-charset")||a.hasAttribute("w:attr:accept-charset")||a.setAttribute("accept-charset","utf-8"),a.hasAttribute("onsubmit")||(a.setAttribute("onsubmit","return w$submit(event)"),a.hasAttribute("w:on:onsubmit")||a.setAttribute("w:on:onsubmit", c));else if("BUTTON"==e)(p=b[l+"$definition"])&&w$defineElement(a,p),a.hasAttribute("onclick")||a.hasAttribute("w:on:onclick")||a.setAttribute("w:on:onsubmit",c),(p=l+"$apt")in b&&!a.hasAttribute("disabled")&&!a.hasAttribute("w:attr:disabled")&&!a.hasAttribute("w:enable:for")?a.setAttribute("w:enable",p):(p=l+"$apt")in b&&!a.hasAttribute("disabled")&&!a.hasAttribute("w:attr:disabled")&&!a.hasAttribute("w:enable:for")&&a.setAttribute("w:enable:for",p);else if("SELECT"==e){if(p=b[l+"$definition"])h= !0,w$defineSelect(a,p);(p=l+"$required")in b&&!a.hasAttribute("required")&&!a.hasAttribute("w:attr:required")&&a.setAttribute("w:attr:required","[??]"+p);a.hasAttribute("w:attr:value")||a.hasAttribute("w:set:value")||a.hasAttribute("w:set")||a.setAttribute("w:set",l);(p=l+"$for")in b&&!a.hasAttribute("disabled")&&!a.hasAttribute("w:enable:for")&&a.setAttribute("w:enable:for",p);d&&(l+"$check"in b||l+"$valid"in b)&&!a.hasAttribute("onchange")&&!a.hasAttribute("w:on:onchange")&&a.setAttribute("onchange", "w$no(event); w$check(this); return false;");a.hasAttribute("w:warning")||a.setAttribute("w:warning",l+"$warning")}else if("INPUT"==e){c=b[l+"$length"];if("string"==typeof c&&c&&-1!=(g=c.indexOf(","))){var n=c.substring(g+1);c=c.substring(0,g)}"undefined"==typeof g||a.hasAttribute("type")||a.setAttribute("type",g);"string"==f&&(a.hasAttribute(p="autocorrect")||a.hasAttribute("w:attr:autocorrect")||a.setAttribute(p,"off"),a.hasAttribute(p="autocapitalize")||a.hasAttribute("w:attr:autocapitalize")|| a.setAttribute(p,"off"),a.hasAttribute(p="spellcheck")||a.hasAttribute("w:attr:spellcheck")||a.setAttribute(p,"false"));(p=b[p=l+"$definition"])&&w$defineElement(r,p);(p=l+"$required")in b&&!a.hasAttribute("required")&&!a.hasAttribute("w:attr:required")&&a.setAttribute("w:attr:required","[??]"+p);"undefined"==typeof b[p=l+"$placeholder"]||a.hasAttribute("placeholder")||a.hasAttribute("w:attr:placeholder")||a.setAttribute("w:attr:placeholder",p);if("button"==a.type||"submit"==a.type){var r;for(r=a;r&& "FORM"!=r.nodeName;r=r.parentElement);LOG&&console.log("FORM",r,a);(p=l+"$apt")in b&&!a.hasAttribute("disabled")&&!a.hasAttribute("w:attr:disabled")&&!a.hasAttribute("w:enable:for")?a.setAttribute("w:enable",p):(p=l+"$apt")in b&&!a.hasAttribute("disabled")&&!a.hasAttribute("w:attr:disabled")&&!a.hasAttribute("w:enable:for")&&a.setAttribute("w:enable:for",p)}else"checkbox"==a.type||"radio"==a.type?(g=w$attribute(a,"value"),!l||a.hasAttribute("checked")||a.hasAttribute("w:attr:checked")||a.hasAttribute("w:set:checked")|| (null!=g?a.setAttribute("w:attr:checked",l+"='"+g+"'?'checked':null"):a.setAttribute("w:attr:checked",l+"?'checked':null"))):(a.hasAttribute("w:attr:value")||a.hasAttribute("w:set:value")||a.hasAttribute("w:set")||a.setAttribute("w:set",l),"number"==a.type||"date"==a.type?((p=l+"$min")in b&&!a.hasAttribute("min")&&!a.hasAttribute("w:attr:min")&&a.setAttribute("w:attr:min",p),a.hasAttribute("max")||a.hasAttribute("w:attr:max")||((p=l+"$max")in b?a.setAttribute("w:attr:max",p):c&&a.setAttribute("max", Math.pow(10,c-n)-1)),"number"!=a.type||a.hasAttribute("step")||a.hasAttribute("w:attr:step")||(n?a.setAttribute("step",Math.pow(10,-n)):(p=l+"$step")in b?a.setAttribute("w:attr:step",p):"integer"!=f&&a.setAttribute("step","any"))):(a.hasAttribute("size")||a.hasAttribute("w:attr:size")||((p=l+"$size")in b?a.setAttribute("w:attr:size",p):c&&a.setAttribute("size",c)),!c||a.hasAttribute("maxlength")||a.hasAttribute("w:attr:maxlength")||a.setAttribute("maxlength",c),(p=l+"$pattern")in b&&!a.hasAttribute("pattern")&& !a.hasAttribute("w:attr:pattern")&&a.setAttribute("w:attr:pattern",p)));d&&(l+"$check"in b||l+"$valid"in b)&&!a.hasAttribute("oninput")&&!a.hasAttribute("w:on:oninput")&&a.setAttribute("oninput","return w$name$oninput(this,event);");a.hasAttribute("w:warning")||a.setAttribute("w:warning",l+"$warning")}else"radio"!=a.getAttribute("type")&&("html"==f?(a.classList.contains("whtml")||a.classList.add("whtml"),a.hasAttribute("w:html")||a.hasAttribute("w:text")||a.setAttribute("w:html",p)):"text"==f&&(a.classList.contains("wtext")|| a.classList.add("wtext"),a.hasAttribute("w:html")||a.hasAttribute("w:text")||a.setAttribute("w:text",p)));return h};k.w$named=function(a,b,c){var d=a.nodeName,e=c.indexOf("{"),f=c.indexOf("("),g=c;-1!=e&&-1!=f?g=c.substring(0,Math.min(e,f)):-1!=e?g=c.substring(0,e):-1!=f&&(g=c.substring(0,f));b=k.w$name(a,b,g);"INPUT"==d?"button"!=a.type&&"submit"!=a.type&&"reset"!=a.type&&(a.hasAttribute("w:on:oninput:action")||a.setAttribute("w:on:oninput:action","()"),a.hasAttribute("oninput")||a.hasAttribute("w:on:oninput")|| a.setAttribute("w:on:oninput","")):"SELECT"==d&&(a.hasAttribute("w:on:onchange:action")||a.setAttribute("w:on:onchange:action","()"),a.hasAttribute("onchange")||a.hasAttribute("w:on:onchange")||a.setAttribute("w:on:onchange",""));return b};return k}();function w$name$oninput(a,c){w$no(c);w$check(a);return!1}function w$for(a,c){if(a instanceof HTMLElement){var b=a,d;for(a=void 0;b&&(!(d=b.$w)||!(a=d.$for));b=b.parentElement);}b=WEAVEWORLD.w$for(a);d=WEAVEWORLD.w$for(c);return b>=d} function w$form(a){var c={},b=function(a,c,d){var e,f;-1!=(e=c.indexOf("."))?("object"!=typeof(f=a[c.substring(0,e)])&&(a[c.substring(0,e)]=f={}),b(f,c.substring(e+1),d)):"undefined"!=typeof d?a[c]=d:"undefined"==typeof a[c]&&(a[c]=null)};if(a&&"FORM"==a.nodeName){for(var d=a.elements,e=a.getAttribute("w:submit"),g=0;g<d.length;g++){var h=d.item(g);"radio"!=h.type&&"checkbox"!=h.type||h.checked?null!=e&&"submit"==h.type&&h.name&&h.name!=e||h.name&&b(c,h.name,h.value):h.name&&b(c,h.name,void 0)}w$queryAll("div[contenteditable='true']", a,function(a){var d;if(d=a.getAttribute("name"))a=WEAVEWORLD.w$normalizeHTML(a).innerHTML,b(c,d,a)})}return c}function w$submit(a){var c=a.target,b=w$form(c);if(null===w$on(a,"submit",c,b))throw new ReferenceError("Event handler for w:on:onsubmit was not found");return w$no(a)}function w$find$(a){for(;a&&!(a.$w&&"$"in a.$w);a=a.parentElement);return a}function w$find$$(a){for(;a&&(!a.$w||!a.$w.$$);a=a.parentElement);return a} function w$find$$index(a){a=w$find$(a);var c=a.$w.$,b;if(!(b=w$find$$(a)))return null;var d=b.$w.$$;return{$$:d,$:c,el:a,e:b,index:d.indexOf(c)}}function w$findName(a){for(;a;a=a.$w&&a.$w.parent||a.parentElement){var c;if(null!=(c=w$attribute(a,"w:name"))||null!=(c=w$attribute(a,"name")))return void 0==c.indexOf("{")!=-1&&(c=c.substring(0,void 0).trim()),c}return null}function w$data(a,c,b){if(c)return a=w$find(a,c,b),a.$w?a.$w.$:void 0;var d;return(d=w$find$(a))&&(d=d.$w)&&"$"in d?d.$:void 0} function w$list(a,c,b){if(c)return a=w$find(a,c,b),a.$w?a.$w.$$:void 0;var d;return(d=w$find$$(a))&&(d=d.$w)&&"$$"in d?d.$$:void 0}function w$findRule(a,c){for(;a;a=a.parentElement){var b=a.classList;if(b)for(var d=0;d<b.length;++d){var e;if((e=WEAVEWORLD.w$type[b[d]])&&c in e)return e[c]}}} function w$use(a,c,b,d){var e=WEAVEWORLD.w$defined[a];if(!e)throw new ReferenceError("w:define `"+a+"` was not found");a=e.cloneNode(!1);a.removeAttribute("w:define");b?b.insertBefore(a,d):d&&((a.$w||(a.$w={})).parent=d);WEAVEWORLD.w$apply(a,c,e);return a}function w$merge(