(()=>{let Lie="function"==typeof Promise?Promise:function(fn){let queue=[],resolved=0,value;return fn(function($){value=$,resolved=1,queue.splice(0).forEach(then)}),{then:then};function then(fn){return resolved?setTimeout(fn,0,value):queue.push(fn),this}};function attributesObserver(whenDefined,MutationObserver){function attributeChanged(records){for(let i=0,length=records.length;ielement.matches||element.webkitMatchesSelector||element.msMatchesSelector)(element),i=0,length=query.length;i