(function(){function t(t,i,r,u){return new n(t,i,r,u)}function n(n,t,r,u){this.options=u||{};this.options.adapters=this.options.adapters||{};this.obj=n;this.keypath=t;this.callback=r;this.objectPath=[];this.parse();i(this.target=this.realize())&&this.set(!0,this.key,this.target,this.callback)}function i(n){return"object"==typeof n&&null!==n}function r(n){throw new Error("[sightglass] "+n);}t.adapters={};n.tokenize=function(n,t,i){for(var u,e=[],f={i:i,path:""},r=0;r<n.length;r++)u=n.charAt(r),~t.indexOf(u)?(e.push(f),f={i:u,path:""}):f.path+=u;return e.push(f),e};n.prototype.parse=function(){var i,u,f=this.interfaces();f.length||r("Must define at least one adapter interface.");~f.indexOf(this.keypath[0])?(i=this.keypath[0],u=this.keypath.substr(1)):("undefined"==typeof(i=this.options.root||t.root)&&r("Must define a default root adapter."),u=this.keypath);this.tokens=n.tokenize(u,f,i);this.key=this.tokens.pop()};n.prototype.realize=function(){var t,n=this.obj,r=!1;return this.tokens.forEach(function(u,f){i(n)?("undefined"!=typeof this.objectPath[f]?n!==(t=this.objectPath[f])&&(this.set(!1,u,t,this.update.bind(this)),this.set(!0,u,n,this.update.bind(this)),this.objectPath[f]=n):(this.set(!0,u,n,this.update.bind(this)),this.objectPath[f]=n),n=this.get(u,n)):(r===!1&&(r=f),(t=this.objectPath[f])&&this.set(!1,u,t,this.update.bind(this)))},this),r!==!1&&this.objectPath.splice(r),n};n.prototype.update=function(){var n,t;(n=this.realize())!==this.target&&(i(this.target)&&this.set(!1,this.key,this.target,this.callback),i(n)&&this.set(!0,this.key,n,this.callback),t=this.value(),this.target=n,this.value()!==t&&this.callback())};n.prototype.value=function(){if(i(this.target))return this.get(this.key,this.target)};n.prototype.setValue=function(n){i(this.target)&&this.adapter(this.key).set(this.target,this.key.path,n)};n.prototype.get=function(n,t){return this.adapter(n).get(t,n.path)};n.prototype.set=function(n,t,i,r){var u=n?"observe":"unobserve";this.adapter(t)[u](i,t.path,r)};n.prototype.interfaces=function(){var n=Object.keys(this.options.adapters);return Object.keys(t.adapters).forEach(function(t){~n.indexOf(t)||n.push(t)}),n};n.prototype.adapter=function(n){return this.options.adapters[n.i]||t.adapters[n.i]};n.prototype.unobserve=function(){var n;this.tokens.forEach(function(t,i){(n=this.objectPath[i])&&this.set(!1,t,n,this.update.bind(this))},this);i(this.target)&&this.set(!1,this.key,this.target,this.callback)};"undefined"!=typeof module&&module.exports?module.exports=t:"function"==typeof define&&define.amd?define([],function(){return this.sightglass=t}):this.sightglass=t}).call(this),function(){var n,f,e,r,t=function(n,t){return function(){return n.apply(t,arguments)}},u=[].slice,s={}.hasOwnProperty,o=function(n,t){function r(){this.constructor=n}for(var i in t)s.call(t,i)&&(n[i]=t[i]);return r.prototype=t.prototype,n.prototype=new r,n.__super__=t.prototype,n},i=[].indexOf||function(n){for(var t=0,i=this.length;i>t;t++)if(t in this&&this[t]===n)return t;return-1};n={options:["prefix","templateDelimiters","rootInterface","preloadData","handler"],extensions:["binders","formatters","components","adapters"],public:{binders:{},components:{},formatters:{},adapters:{},prefix:"rv",templateDelimiters:["{","}"],rootInterface:".",preloadData:!0,handler:function(n,t,i){return this.call(n,t,i.view.models)},configure:function(t){var f,u,i,r;null==t&&(t={});for(i in t)if(r=t[i],"binders"===i||"components"===i||"formatters"===i||"adapters"===i)for(u in r)f=r[u],n[i][u]=f;else n.public[i]=r},bind:function(t,i,r){var u;return null==i&&(i={}),null==r&&(r={}),u=new n.View(t,i,r),u.bind(),u},init:function(t,i,r){var f,u;return null==r&&(r={}),null==i&&(i=document.createElement("div")),t=n.public.components[t],i.innerHTML=t.template.call(this,i),f=t.initialize.call(this,i,r),u=new n.View(i,f),u.bind(),u}}};window.jQuery||window.$?(r="on"in jQuery.prototype?["on","off"]:["bind","unbind"],f=r[0],e=r[1],n.Util={bindEvent:function(n,t,i){return jQuery(n)[f](t,i)},unbindEvent:function(n,t,i){return jQuery(n)[e](t,i)},getInputValue:function(n){var t;return t=jQuery(n),"checkbox"===t.attr("type")?t.is(":checked"):t.val()}}):n.Util={bindEvent:function(){return"addEventListener"in window?function(n,t,i){return n.addEventListener(t,i,!1)}:function(n,t,i){return n.attachEvent("on"+t,i)}}(),unbindEvent:function(){return"removeEventListener"in window?function(n,t,i){return n.removeEventListener(t,i,!1)}:function(n,t,i){return n.detachEvent("on"+t,i)}}(),getInputValue:function(n){var i,t,u,r;if("checkbox"===n.type)return n.checked;if("select-multiple"===n.type){for(r=[],t=0,u=n.length;u>t;t++)i=n[t],i.selected&&r.push(i.value);return r}return n.value}};n.TypeParser=function(){function n(){}return n.types={primitive:0,keypath:1},n.parse=function(n){return/^'.*'$|^".*"$/.test(n)?{type:this.types.primitive,value:n.slice(1,-1)}:"true"===n?{type:this.types.primitive,value:!0}:"false"===n?{type:this.types.primitive,value:!1}:"null"===n?{type:this.types.primitive,value:null}:"undefined"===n?{type:this.types.primitive,value:void 0}:isNaN(Number(n))===!1?{type:this.types.primitive,value:Number(n)}:{type:this.types.keypath,value:n}},n}();n.TextTemplateParser=function(){function n(){}return n.types={text:0,binding:1},n.parse=function(n,t){var i,r,f,o,e,u,s;for(u=[],o=n.length,i=0,r=0;o>r;){if(i=n.indexOf(t[0],r),0>i){u.push({type:this.types.text,value:n.slice(r)});break}if(i>0&&i>r&&u.push({type:this.types.text,value:n.slice(r,i)}),r=i+t[0].length,i=n.indexOf(t[1],r),0>i){e=n.slice(r-t[1].length);f=u[u.length-1];(null!=f?f.type:void 0)===this.types.text?f.value+=e:u.push({type:this.types.text,value:e});break}s=n.slice(r,i).trim();u.push({type:this.types.binding,value:s});r=i+t[1].length}return u},n}();n.View=function(){function i(i,r,u){var e,f,o,y,s,h,p,w,c,l,a,v,b;for(this.els=i,this.models=r,null==u&&(u={}),this.update=t(this.update,this),this.publish=t(this.publish,this),this.sync=t(this.sync,this),this.unbind=t(this.unbind,this),this.bind=t(this.bind,this),this.select=t(this.select,this),this.traverse=t(this.traverse,this),this.build=t(this.build,this),this.buildBinding=t(this.buildBinding,this),this.bindingRegExp=t(this.bindingRegExp,this),this.options=t(this.options,this),this.els.jquery||this.els instanceof Array||(this.els=[this.els]),c=n.extensions,s=0,p=c.length;p>s;s++){if(f=c[s],this[f]={},u[f]){l=u[f];for(e in l)o=l[e],this[f][e]=o}a=n.public[f];for(e in a)o=a[e],null==(y=this[f])[e]&&(y[e]=o)}for(v=n.options,h=0,w=v.length;w>h;h++)f=v[h],this[f]=null!=(b=u[f])?b:n.public[f];this.build()}return i.prototype.options=function(){var i,r,t,f,u;for(r={},u=n.extensions.concat(n.options),t=0,f=u.length;f>t;t++)i=u[t],r[i]=this[i];return r},i.prototype.bindingRegExp=function(){return new RegExp("^"+this.prefix+"-")},i.prototype.buildBinding=function(t,i,r,u){var e,s,h,c,f,l,o;return f={},o=function(){var n,r,t,i;for(t=u.split("|"),i=[],n=0,r=t.length;r>n;n++)l=t[n],i.push(l.trim());return i}(),e=function(){var n,r,t,i;for(t=o.shift().split("<"),i=[],n=0,r=t.length;r>n;n++)s=t[n],i.push(s.trim());return i}(),c=e.shift(),f.formatters=o,(h=e.shift())&&(f.dependencies=h.split(/\s+/)),this.bindings.push(new n[t](this,i,r,c,f))},i.prototype.build=function(){var u,i,t,f,r;for(this.bindings=[],i=function(t){return function(r){var a,v,y,p,s,h,f,u,e,o,w,b,c,l;if(3===r.nodeType){if(s=n.TextTemplateParser,(y=t.templateDelimiters)&&(u=s.parse(r.data,y)).length&&(1!==u.length||u[0].type!==s.types.text)){for(e=0,w=u.length;w>e;e++)f=u[e],h=document.createTextNode(f.value),r.parentNode.insertBefore(h,r),1===f.type&&t.buildBinding("TextBinding",h,null,f.value);r.parentNode.removeChild(r)}}else 1===r.nodeType&&(a=t.traverse(r));if(!a){for(c=function(){var n,u,t,i;for(t=r.childNodes,i=[],n=0,u=t.length;u>n;n++)p=t[n],i.push(p);return i}(),l=[],o=0,b=c.length;b>o;o++)v=c[o],l.push(i(v));return l}}}(this),r=this.els,t=0,f=r.length;f>t;t++)u=r[t],i(u);this.bindings.sort(function(n,t){var i,r;return((null!=(i=t.binder)?i.priority:void 0)||0)-((null!=(r=n.binder)?r.priority:void 0)||0)})},i.prototype.traverse=function(t){var i,v,u,f,e,o,y,r,p,s,h,w,b,c,l,a;for(f=this.bindingRegExp(),e="SCRIPT"===t.nodeName||"STYLE"===t.nodeName,c=t.attributes,s=0,w=c.length;w>s;s++)if(i=c[s],f.test(i.name)){if(r=i.name.replace(f,""),!(u=this.binders[r])){l=this.binders;for(o in l)p=l[o],"*"!==o&&-1!==o.indexOf("*")&&(y=new RegExp("^"+o.replace(/\*/g,".+")+"$"),y.test(r)&&(u=p))}u||(u=this.binders["*"]);u.block&&(e=!0,v=[i])}for(a=v||t.attributes,h=0,b=a.length;b>h;h++)i=a[h],f.test(i.name)&&(r=i.name.replace(f,""),this.buildBinding("Binding",t,r,i.value));return e||(r=t.nodeName.toLowerCase(),this.components[r]&&!t._bound&&(this.bindings.push(new n.ComponentBinding(this,t,r)),e=!0)),e},i.prototype.select=function(n){var i,t,f,r,u;for(r=this.bindings,u=[],t=0,f=r.length;f>t;t++)i=r[t],n(i)&&u.push(i);return u},i.prototype.bind=function(){var r,n,u,t,i;for(t=this.bindings,i=[],n=0,u=t.length;u>n;n++)r=t[n],i.push(r.bind());return i},i.prototype.unbind=function(){var r,n,u,t,i;for(t=this.bindings,i=[],n=0,u=t.length;u>n;n++)r=t[n],i.push(r.unbind());return i},i.prototype.sync=function(){var r,n,u,t,i;for(t=this.bindings,i=[],n=0,u=t.length;u>n;n++)r=t[n],i.push(r.sync());return i},i.prototype.publish=function(){var r,n,u,t,i;for(t=this.select(function(n){return n.binder.publishes}),i=[],n=0,u=t.length;u>n;n++)r=t[n],i.push(r.publish());return i},i.prototype.update=function(n){var f,i,e,t,o,r,u;null==n&&(n={});for(i in n)e=n[i],this.models[i]=e;for(r=this.bindings,u=[],t=0,o=r.length;o>t;t++)f=r[t],u.push(f.update(n));return u},i}();n.Binding=function(){function i(n,i,r,u,f){this.view=n;this.el=i;this.type=r;this.keypath=u;this.options=null!=f?f:{};this.getValue=t(this.getValue,this);this.update=t(this.update,this);this.unbind=t(this.unbind,this);this.bind=t(this.bind,this);this.publish=t(this.publish,this);this.sync=t(this.sync,this);this.set=t(this.set,this);this.eventHandler=t(this.eventHandler,this);this.formattedValue=t(this.formattedValue,this);this.parseTarget=t(this.parseTarget,this);this.observe=t(this.observe,this);this.setBinder=t(this.setBinder,this);this.formatters=this.options.formatters||[];this.dependencies=[];this.formatterObservers={};this.model=void 0;this.setBinder()}return i.prototype.setBinder=function(){var n,i,r,t;if(!(this.binder=this.view.binders[this.type])){t=this.view.binders;for(n in t)r=t[n],"*"!==n&&-1!==n.indexOf("*")&&(i=new RegExp("^"+n.replace(/\*/g,".+")+"$"),i.test(this.type)&&(this.binder=r,this.args=new RegExp("^"+n.replace(/\*/g,"(.+)")+"$").exec(this.type),this.args.shift()))}return this.binder||(this.binder=this.view.binders["*"]),this.binder instanceof Function?this.binder={routine:this.binder}:void 0},i.prototype.observe=function(t,i,r){return n.sightglass(t,i,r,{root:this.view.rootInterface,adapters:this.view.adapters})},i.prototype.parseTarget=function(){var t;return t=n.TypeParser.parse(this.keypath),0===t.type?this.value=t.value:(this.observer=this.observe(this.view.models,this.keypath,this.sync),this.model=this.observer.target)},i.prototype.formattedValue=function(t){var o,e,r,f,i,v,s,h,y,c,l,p,w,a;for(a=this.formatters,f=c=0,p=a.length;p>c;f=++c){for(i=a[f],r=i.match(/[^\s']+|'([^']|'[^\s])*'|"([^"]|"[^\s])*"/g),v=r.shift(),i=this.view.formatters[v],r=function(){var t,u,i;for(i=[],t=0,u=r.length;u>t;t++)e=r[t],i.push(n.TypeParser.parse(e));return i}(),h=[],o=l=0,w=r.length;w>l;o=++l)e=r[o],h.push(0===e.type?e.value:((y=this.formatterObservers)[f]||(y[f]={}),(s=this.formatterObservers[f][o])?void 0:(s=this.observe(this.view.models,e.value,this.sync),this.formatterObservers[f][o]=s),s.value()));(null!=i?i.read:void 0)instanceof Function?t=i.read.apply(i,[t].concat(u.call(h))):i instanceof Function&&(t=i.apply(null,[t].concat(u.call(h))))}return t},i.prototype.eventHandler=function(n){var t,i;return i=(t=this).view.handler,function(r){return i.call(n,this,r,t)}},i.prototype.set=function(n){var t;return n=n instanceof Function&&!this.binder["function"]?this.formattedValue(n.call(this.model)):this.formattedValue(n),null!=(t=this.binder.routine)?t.call(this,this.el,n):void 0},i.prototype.sync=function(){var t,n;return this.set(function(){var i,r,e,o,u,s,f;if(this.observer){if(this.model!==this.observer.target){for(u=this.dependencies,i=0,e=u.length;e>i;i++)n=u[i],n.unobserve();if(this.dependencies=[],null!=(this.model=this.observer.target)&&(null!=(s=this.options.dependencies)?s.length:void 0))for(f=this.options.dependencies,r=0,o=f.length;o>r;r++)t=f[r],n=this.observe(this.model,t,this.sync),this.dependencies.push(n)}return this.observer.value()}return this.value}.call(this))},i.prototype.publish=function(){var i,e,r,n,t,o,f,s,h;if(this.observer){for(n=this.getValue(this.el),f=this.formatters.slice(0).reverse(),t=0,o=f.length;o>t;t++)e=f[t],i=e.split(/\s+/),r=i.shift(),(null!=(s=this.view.formatters[r])?s.publish:void 0)&&(n=(h=this.view.formatters[r]).publish.apply(h,[n].concat(u.call(i))));return this.observer.setValue(n)}},i.prototype.bind=function(){var i,r,n,u,f,e,t;if(this.parseTarget(),null!=(f=this.binder.bind)&&f.call(this,this.el),null!=this.model&&(null!=(e=this.options.dependencies)?e.length:void 0))for(t=this.options.dependencies,n=0,u=t.length;u>n;n++)i=t[n],r=this.observe(this.model,i,this.sync),this.dependencies.push(r);if(this.view.preloadData)return this.sync()},i.prototype.unbind=function(){var f,i,e,n,t,o,s,h,r,u;for(null!=(s=this.binder.unbind)&&s.call(this,this.el),null!=(h=this.observer)&&h.unobserve(),r=this.dependencies,t=0,o=r.length;o>t;t++)n=r[t],n.unobserve();this.dependencies=[];u=this.formatterObservers;for(e in u){i=u[e];for(f in i)n=i[f],n.unobserve()}return this.formatterObservers={}},i.prototype.update=function(n){var t,i;return null==n&&(n={}),this.model=null!=(t=this.observer)?t.target:void 0,null!=(i=this.binder.update)?i.call(this,n):void 0},i.prototype.getValue=function(t){return this.binder&&null!=this.binder.getValue?this.binder.getValue.call(this,t):n.Util.getInputValue(t)},i}();n.ComponentBinding=function(r){function u(n,r,u){var f,h,e,o,c,s,l;for(this.view=n,this.el=r,this.type=u,this.unbind=t(this.unbind,this),this.bind=t(this.bind,this),this.locals=t(this.locals,this),this.component=this.view.components[this.type],this.static={},this.observers={},this.upstreamObservers={},h=n.bindingRegExp(),s=this.el.attributes||[],o=0,c=s.length;c>o;o++)f=s[o],h.test(f.name)||(e=this.camelCase(f.name),i.call(null!=(l=this.component.static)?l:[],e)>=0?this.static[e]=f.value:this.observers[e]=f.value)}return o(u,r),u.prototype.sync=function(){},u.prototype.locals=function(){var n,u,t,f,i,r;t={};i=this.static;for(n in i)f=i[n],t[n]=f;r=this.observers;for(n in r)u=r[n],t[n]=u.value();return t},u.prototype.camelCase=function(n){return n.replace(/-([a-z])/g,function(n){return n[1].toUpperCase()})},u.prototype.bind=function(){var r,i,p,w,t,u,b,f,k,e,o,d,g,s,h,c,l,a,nt,v,y;if(!this.bound){s=this.observers;for(i in s)p=s[i],this.observers[i]=this.observe(this.view.models,p,function(n){return function(){return n.componentView.models[i]=n.observers[i].value()}}(this));this.bound=!0}if(null!=this.componentView)return this.componentView.bind();for(this.el.innerHTML=this.component.template.call(this),b=this.component.initialize.call(this,this.el,this.locals()),this.el._bound=!0,u={},h=n.extensions,e=0,d=h.length;d>e;e++){if(t=h[e],u[t]={},this.component[t]){c=this.component[t];for(r in c)f=c[r],u[t][r]=f}l=this.view[t];for(r in l)f=l[r],null==(k=u[t])[r]&&(k[r]=f)}for(a=n.options,o=0,g=a.length;g>o;o++)t=a[o],u[t]=null!=(nt=this.component[t])?nt:this.view[t];this.componentView=new n.View(this.el,b,u);this.componentView.bind();v=this.observers;y=[];for(i in v)w=v[i],y.push(this.upstreamObservers[i]=this.observe(this.componentView.models,i,function(n){return function(){return w.setValue(n.componentView.models[i])}}(this)));return y},u.prototype.unbind=function(){var n,t,i,r,u;i=this.upstreamObservers;for(n in i)t=i[n],t.unobserve();r=this.observers;for(n in r)t=r[n],t.unobserve();if(null!=(u=this.componentView))return u.unbind.call(this)},u}(n.Binding);n.TextBinding=function(n){function i(n,i,r,u,f){this.view=n;this.el=i;this.type=r;this.keypath=u;this.options=null!=f?f:{};this.sync=t(this.sync,this);this.formatters=this.options.formatters||[];this.dependencies=[];this.formatterObservers={}}return o(i,n),i.prototype.binder={routine:function(n,t){return n.data=null!=t?t:""}},i.prototype.sync=function(){return i.__super__.sync.apply(this,arguments)},i}(n.Binding);n.public.binders.text=function(n,t){return null!=n.textContent?n.textContent=null!=t?t:"":n.innerText=null!=t?t:""};n.public.binders.html=function(n,t){return n.innerHTML=null!=t?t:""};n.public.binders.show=function(n,t){return n.style.display=t?"":"none"};n.public.binders.hide=function(n,t){return n.style.display=t?"none":""};n.public.binders.enabled=function(n,t){return n.disabled=!t};n.public.binders.disabled=function(n,t){return n.disabled=!!t};n.public.binders.checked={publishes:!0,priority:2e3,bind:function(t){return n.Util.bindEvent(t,"change",this.publish)},unbind:function(t){return n.Util.unbindEvent(t,"change",this.publish)},routine:function(n,t){var i;return n.checked="radio"===n.type?(null!=(i=n.value)?i.toString():void 0)===(null!=t?t.toString():void 0):!!t}};n.public.binders.unchecked={publishes:!0,priority:2e3,bind:function(t){return n.Util.bindEvent(t,"change",this.publish)},unbind:function(t){return n.Util.unbindEvent(t,"change",this.publish)},routine:function(n,t){var i;return n.checked="radio"===n.type?(null!=(i=n.value)?i.toString():void 0)!==(null!=t?t.toString():void 0):!t}};n.public.binders.value={publishes:!0,priority:3e3,bind:function(t){if("INPUT"!==t.tagName||"radio"!==t.type)return(this.event="SELECT"===t.tagName?"change":"input",n.Util.bindEvent(t,this.event,this.publish))},unbind:function(t){if("INPUT"!==t.tagName||"radio"!==t.type)return n.Util.unbindEvent(t,this.event,this.publish)},routine:function(n,t){var u,r,e,o,s,h,f;if("INPUT"===n.tagName&&"radio"===n.type)return n.setAttribute("value",t);if(null!=window.jQuery){if(n=jQuery(n),(null!=t?t.toString():void 0)!==(null!=(o=n.val())?o.toString():void 0))return n.val(null!=t?t:"")}else if("select-multiple"===n.type){if(null!=t){for(f=[],r=0,e=n.length;e>r;r++)u=n[r],f.push(u.selected=(s=u.value,i.call(t,s)>=0));return f}}else if((null!=t?t.toString():void 0)!==(null!=(h=n.value)?h.toString():void 0))return n.value=null!=t?t:""}};n.public.binders["if"]={block:!0,priority:4e3,bind:function(n){var t,i;if(null==this.marker)return(t=[this.view.prefix,this.type].join("-").replace("--","-"),i=n.getAttribute(t),this.marker=document.createComment(" rivets: "+this.type+" "+i+" "),this.bound=!1,n.removeAttribute(t),n.parentNode.insertBefore(this.marker,n),n.parentNode.removeChild(n))},unbind:function(){var n;if(null!=(n=this.nested))return n.unbind()},routine:function(t,i){var r,e,u,f;if(!!i==!this.bound){if(i){u={};f=this.view.models;for(r in f)e=f[r],u[r]=e;return(this.nested||(this.nested=new n.View(t,u,this.view.options()))).bind(),this.marker.parentNode.insertBefore(t,this.marker.nextSibling),this.bound=!0}return t.parentNode.removeChild(t),this.nested.unbind(),this.bound=!1}},update:function(n){var t;if(null!=(t=this.nested))return t.update(n)}};n.public.binders.unless={block:!0,priority:4e3,bind:function(t){return n.public.binders["if"].bind.call(this,t)},unbind:function(){return n.public.binders["if"].unbind.call(this)},routine:function(t,i){return n.public.binders["if"].routine.call(this,t,!i)},update:function(t){return n.public.binders["if"].update.call(this,t)}};n.public.binders["on-*"]={"function":!0,priority:1e3,unbind:function(t){if(this.handler)return n.Util.unbindEvent(t,this.args[0],this.handler)},routine:function(t,i){return this.handler&&n.Util.unbindEvent(t,this.args[0],this.handler),n.Util.bindEvent(t,this.args[0],this.handler=this.eventHandler(i))}};n.public.binders["each-*"]={block:!0,priority:4e3,bind:function(n){var r,u,t,f,i;if(null==this.marker)r=[this.view.prefix,this.type].join("-").replace("--","-"),this.marker=document.createComment(" rivets: "+this.type+" "),this.iterated=[],n.removeAttribute(r),n.parentNode.insertBefore(this.marker,n),n.parentNode.removeChild(n);else for(i=this.iterated,t=0,f=i.length;f>t;t++)u=i[t],u.bind()},unbind:function(){var r,n,u,t,i;if(null!=this.iterated){for(t=this.iterated,i=[],n=0,u=t.length;u>n;n++)r=t[n],i.push(r.unbind());return i}},routine:function(t,i){var o,u,it,r,s,e,a,v,d,y,f,h,p,c,g,nt,tt,w,b,k,l;if(a=this.args[0],i=i||[],this.iterated.length>i.length)for(w=Array(this.iterated.length-i.length),h=0,g=w.length;g>h;h++)it=w[h],f=this.iterated.pop(),f.unbind(),this.marker.parentNode.removeChild(f.els[0]);for(r=p=0,nt=i.length;nt>p;r=++p)if(e=i[r],u={index:r},u[a]=e,null==this.iterated[r]){b=this.view.models;for(s in b)e=b[s],null==u[s]&&(u[s]=e);d=this.iterated.length?this.iterated[this.iterated.length-1].els[0]:this.marker;v=this.view.options();v.preloadData=!0;y=t.cloneNode(!0);f=new n.View(y,u,v);f.bind();this.iterated.push(f);this.marker.parentNode.insertBefore(y,d.nextSibling)}else this.iterated[r].models[a]!==e&&this.iterated[r].update(u);if("OPTION"===t.nodeName){for(k=this.view.bindings,l=[],c=0,tt=k.length;tt>c;c++)o=k[c],o.el===this.marker.parentNode&&"value"===o.type?l.push(o.sync()):l.push(void 0);return l}},update:function(n){var r,t,e,o,i,s,u,f;r={};for(t in n)e=n[t],t!==this.args[0]&&(r[t]=e);for(u=this.iterated,f=[],i=0,s=u.length;s>i;i++)o=u[i],f.push(o.update(r));return f}};n.public.binders["class-*"]=function(n,t){var i;return i=" "+n.className+" ",!t==(-1!==i.indexOf(" "+this.args[0]+" "))?n.className=t?""+n.className+" "+this.args[0]:i.replace(" "+this.args[0]+" "," ").trim():void 0};n.public.binders["*"]=function(n,t){return null!=t?n.setAttribute(this.type,t):n.removeAttribute(this.type)};n.public.adapters["."]={id:"_rv",counter:0,weakmap:{},weakReference:function(n){var t,i,r;return n.hasOwnProperty(this.id)||(t=this.counter++,Object.defineProperty(n,this.id,{value:t})),(i=this.weakmap)[r=n[this.id]]||(i[r]={callbacks:{}})},cleanupWeakReference:function(n,t){if(!Object.keys(n.callbacks).length&&(!n.pointers||!Object.keys(n.pointers).length))return delete this.weakmap[t]},stubFunction:function(n,t){var i,r,u;return r=n[t],i=this.weakReference(n),u=this.weakmap,n[t]=function(){var s,h,f,c,t,l,e,a,v,o;c=r.apply(n,arguments);e=i.pointers;for(f in e)for(h=e[f],o=null!=(a=null!=(v=u[f])?v.callbacks[h]:void 0)?a:[],t=0,l=o.length;l>t;t++)s=o[t],s();return c}},observeMutations:function(n,t,r){var o,e,u,s,f,h;if(Array.isArray(n)){if(u=this.weakReference(n),null==u.pointers)for(u.pointers={},e=["push","pop","shift","unshift","sort","reverse","splice"],f=0,h=e.length;h>f;f++)o=e[f],this.stubFunction(n,o);if(null==(s=u.pointers)[t]&&(s[t]=[]),i.call(u.pointers[t],r)<0)return u.pointers[t].push(r)}},unobserveMutations:function(n,t,i){var f,r,u;if(Array.isArray(n)&&null!=n[this.id]&&(r=this.weakmap[n[this.id]])&&(u=r.pointers[t]))return((f=u.indexOf(i))>=0&&u.splice(f,1),u.length||delete r.pointers[t],this.cleanupWeakReference(r,n[this.id]))},observe:function(n,t,r){var u,f,e;return u=this.weakReference(n).callbacks,null==u[t]&&(u[t]=[],f=Object.getOwnPropertyDescriptor(n,t),(null!=f?f.get:void 0)||(null!=f?f.set:void 0)||(e=n[t],Object.defineProperty(n,t,{enumerable:!0,get:function(){return e},set:function(f){return function(o){var c,s,l,h;if(o!==e&&(f.unobserveMutations(e,n[f.id],t),e=o,c=f.weakmap[n[f.id]])){if(u=c.callbacks,u[t])for(h=u[t].slice(),s=0,l=h.length;l>s;s++)r=h[s],i.call(u[t],r)>=0&&r();return f.observeMutations(o,n[f.id],t)}}}(this)}))),i.call(u[t],r)<0&&u[t].push(r),this.observeMutations(n[t],n[this.id],t)},unobserve:function(n,t,i){var r,f,u;if((u=this.weakmap[n[this.id]])&&(r=u.callbacks[t]))return((f=r.indexOf(i))>=0&&(r.splice(f,1),r.length||delete u.callbacks[t]),this.unobserveMutations(n[t],n[this.id],t),this.cleanupWeakReference(u,n[this.id]))},get:function(n,t){return n[t]},set:function(n,t,i){return n[t]=i}};n.factory=function(t){return n.sightglass=t,n.public._=n,n.public};"object"==typeof("undefined"!=typeof module&&null!==module?module.exports:void 0)?module.exports=n.factory(require("sightglass")):"function"==typeof define&&define.amd?define(["sightglass"],function(t){return this.rivets=n.factory(t)}):this.rivets=n.factory(sightglass)}.call(this)