mirror of
https://github.com/wassname/keras-js.git
synced 2026-09-11 12:20:53 +08:00
16 lines
325 KiB
JavaScript
16 lines
325 KiB
JavaScript
!function(e){function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var t={};return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,n,t){Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:t})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="",n(n.s=239)}([function(e,n,t){"use strict";function a(e){return"[object Array]"===k.call(e)}function o(e){return"[object ArrayBuffer]"===k.call(e)}function r(e){return"undefined"!=typeof FormData&&e instanceof FormData}function i(e){var n;return n="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function s(e){return"string"==typeof e}function l(e){return"number"==typeof e}function c(e){return"undefined"==typeof e}function u(e){return null!==e&&"object"==typeof e}function d(e){return"[object Date]"===k.call(e)}function m(e){return"[object File]"===k.call(e)}function p(e){return"[object Blob]"===k.call(e)}function f(e){return"[object Function]"===k.call(e)}function h(e){return u(e)&&f(e.pipe)}function b(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams}function g(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function v(){return"undefined"!=typeof window&&"undefined"!=typeof document&&"function"==typeof document.createElement}function x(e,n){if(null!==e&&"undefined"!=typeof e)if("object"==typeof e||a(e)||(e=[e]),a(e))for(var t=0,o=e.length;t<o;t++)n.call(null,e[t],t,e);else for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.call(null,e[r],r,e)}function _(){function e(e,t){"object"==typeof n[t]&&"object"==typeof e?n[t]=_(n[t],e):n[t]=e}for(var n={},t=0,a=arguments.length;t<a;t++)x(arguments[t],e);return n}function w(e,n,t){return x(n,function(n,a){t&&"function"==typeof n?e[a]=y(n,t):e[a]=n}),e}var y=t(38),k=Object.prototype.toString;e.exports={isArray:a,isArrayBuffer:o,isFormData:r,isArrayBufferView:i,isString:s,isNumber:l,isObject:u,isUndefined:c,isDate:d,isFile:m,isBlob:p,isFunction:f,isStream:h,isURLSearchParams:b,isStandardBrowserEnv:v,forEach:x,merge:_,extend:w,trim:g}},function(e,n,t){var a=t(49),o="object"==typeof self&&self&&self.Object===Object&&self,r=a||o||Function("return this")();e.exports=r},function(e,n){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],n=0;n<this.length;n++){var t=this[n];t[2]?e.push("@media "+t[2]+"{"+t[1]+"}"):e.push(t[1])}return e.join("")},e.i=function(n,t){"string"==typeof n&&(n=[[null,n,""]]);for(var a={},o=0;o<this.length;o++){var r=this[o][0];"number"==typeof r&&(a[r]=!0)}for(o=0;o<n.length;o++){var i=n[o];"number"==typeof i[0]&&a[i[0]]||(t&&!i[2]?i[2]=t:t&&(i[2]="("+i[2]+") and ("+t+")"),e.push(i))}},e}},function(e,n){var t=Array.isArray;e.exports=t},function(e,n){function t(e,n){for(var t=0;t<e.length;t++){var a=e[t],o=m[a.id];if(o){o.refs++;for(var r=0;r<o.parts.length;r++)o.parts[r](a.parts[r]);for(;r<a.parts.length;r++)o.parts.push(l(a.parts[r],n))}else{for(var i=[],r=0;r<a.parts.length;r++)i.push(l(a.parts[r],n));m[a.id]={id:a.id,refs:1,parts:i}}}}function a(e){for(var n=[],t={},a=0;a<e.length;a++){var o=e[a],r=o[0],i=o[1],s=o[2],l=o[3],c={css:i,media:s,sourceMap:l};t[r]?t[r].parts.push(c):n.push(t[r]={id:r,parts:[c]})}return n}function o(e,n){var t=h(),a=v[v.length-1];if("top"===e.insertAt)a?a.nextSibling?t.insertBefore(n,a.nextSibling):t.appendChild(n):t.insertBefore(n,t.firstChild),v.push(n);else{if("bottom"!==e.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");t.appendChild(n)}}function r(e){e.parentNode.removeChild(e);var n=v.indexOf(e);n>=0&&v.splice(n,1)}function i(e){var n=document.createElement("style");return n.type="text/css",o(e,n),n}function s(e){var n=document.createElement("link");return n.rel="stylesheet",o(e,n),n}function l(e,n){var t,a,o;if(n.singleton){var l=g++;t=b||(b=i(n)),a=c.bind(null,t,l,!1),o=c.bind(null,t,l,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(t=s(n),a=d.bind(null,t),o=function(){r(t),t.href&&URL.revokeObjectURL(t.href)}):(t=i(n),a=u.bind(null,t),o=function(){r(t)});return a(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap)return;a(e=n)}else o()}}function c(e,n,t,a){var o=t?"":a.css;if(e.styleSheet)e.styleSheet.cssText=x(n,o);else{var r=document.createTextNode(o),i=e.childNodes;i[n]&&e.removeChild(i[n]),i.length?e.insertBefore(r,i[n]):e.appendChild(r)}}function u(e,n){var t=n.css,a=n.media;if(a&&e.setAttribute("media",a),e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}function d(e,n){var t=n.css,a=n.sourceMap;a&&(t+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */");var o=new Blob([t],{type:"text/css"}),r=e.href;e.href=URL.createObjectURL(o),r&&URL.revokeObjectURL(r)}var m={},p=function(e){var n;return function(){return"undefined"==typeof n&&(n=e.apply(this,arguments)),n}},f=p(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),h=p(function(){return document.head||document.getElementsByTagName("head")[0]}),b=null,g=0,v=[];e.exports=function(e,n){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");n=n||{},"undefined"==typeof n.singleton&&(n.singleton=f()),"undefined"==typeof n.insertAt&&(n.insertAt="bottom");var o=a(e);return t(o,n),function(e){for(var r=[],i=0;i<o.length;i++){var s=o[i],l=m[s.id];l.refs--,r.push(l)}if(e){var c=a(e);t(c,n)}for(var i=0;i<r.length;i++){var l=r[i];if(0===l.refs){for(var u=0;u<l.parts.length;u++)l.parts[u]();delete m[l.id]}}}};var x=function(){var e=[];return function(n,t){return e[n]=t,e.filter(Boolean).join("\n")}}()},function(e,n,t){function a(e,n){var t=r(e,n);return o(t)?t:void 0}var o=t(134),r=t(165);e.exports=a},function(e,n){function t(e){var n=typeof e;return null!=e&&("object"==n||"function"==n)}e.exports=t},function(e,n,t){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}function o(e,n){var t=f(e,2),a=t[0],o=t[1],r=f(n,2),i=r[0],s=r[1];return[a+(i-a)/2,o+(s-o)/2]}function r(e){var n=e.clientX,t=e.clientY;e.touches&&e.touches.length&&(n=e.touches[0].clientX,t=e.touches[0].clientY);var a=e.target.getBoundingClientRect(),o=a.left,r=a.top,i=n-o,s=t-r;return[i,s]}function i(e){for(var n=e.data,t=e.width,a=e.height,o=t,r=a,i=-1,s=-1,l=0;l<t;l++)for(var c=0;c<a;c++){var u=l+c*t;n[4*u+3]>0&&(l<o&&(o=l),l>i&&(i=l),c<r&&(r=c),c>s&&(s=c))}o-=20,i+=20,r-=20,s+=20;var d=i-o+1,m=s-r+1;if(d<m){var p=Math.floor((m-d)/2),f=m-d-p;i+=f,o-=p}else if(d>m){var h=Math.floor((d-m)/2),b=d-m-h;s+=b,r-=h}d=i-o+1,m=s-r+1;for(var g=new Uint8ClampedArray(d*m*4),v=o;v<=i;v++)for(var x=r;x<=s;x++)if(v>=0&&v<t&&x>=0&&x<a){var _=v+x*t,w=v-o+(x-r)*d;g[4*w+3]=n[4*_+3]}return new ImageData(g,d,m)}function s(e){var n=(0,v.default)(e.data)/e.data.length,t=Math.sqrt((0,v.default)(e.data.map(function(e){return Math.pow(e-n,2)}))/e.data.length);return{mean:n,stddev:t}}function l(e){for(var n=1/0,t=-(1/0),a=0,o=e.data.length;a<o;a++)e.data[a]<n&&(n=e.data[a]),e.data[a]>t&&(t=e.data[a]);return{min:n,max:t}}function c(e){for(var n=l(e),t=n.min,a=n.max,o=new Uint8ClampedArray(4*e.size),r=0,i=o.length;r<i;r+=4)o[r+3]=255*(e.data[r/4]-t)/(a-t);return new ImageData(o,e.shape[0],1)}function u(e){for(var n=l(e),t=n.min,a=n.max,o=new Uint8ClampedArray(4*e.size),r=0,i=o.length;r<i;r+=4)o[r+3]=255*(e.data[r/4]-t)/(a-t);return new ImageData(o,e.shape[0],e.shape[1])}function d(e,n,t){for(var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[0,0,0],o=n*t*4,r=new Uint8ClampedArray(o),i=0;i<o;i+=4)r[i]=a[0],r[i+1]=a[1],r[i+2]=a[2],r[i+3]=255*e[i/4];return new ImageData(r,n,t)}function m(e){for(var n=l(e),t=n.min,a=n.max,o=e.shape.slice(),r=[],i=0,s=o[2];i<s;i++){var c=(0,_.default)((0,b.default)(e.pick(null,null,i)));r.push(c)}return r.map(function(e){for(var n=new Uint8ClampedArray(4*e.length),r=0,i=e.length;r<i;r++)n[4*r]=0,n[4*r+1]=0,n[4*r+2]=0,n[4*r+3]=255*(e[r]-t)/(a-t);return new ImageData(n,o[0],o[1])})}function p(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5,t=(0,y.default)(e)?Array.prototype.slice.call(e):e,a=(0,N.default)((0,L.default)(t.map(function(e,n){return[e,n]}),function(e){return e[0]})),o=(0,R.default)(a,n).map(function(e){var n=S.imagenetClasses[e[1]];return{id:n[0],name:n[1].replace(/_/," "),probability:e[0]}});return o}Object.defineProperty(n,"__esModule",{value:!0});var f=function(){function e(e,n){var t=[],a=!0,o=!1,r=void 0;try{for(var i,s=e[Symbol.iterator]();!(a=(i=s.next()).done)&&(t.push(i.value),!n||t.length!==n);a=!0);}catch(e){o=!0,r=e}finally{try{!a&&s.return&&s.return()}finally{if(o)throw r}}return t}return function(n,t){if(Array.isArray(n))return n;if(Symbol.iterator in Object(n))return e(n,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();n.getMidpoint=o,n.getCoordinates=r,n.centerCrop=i,n.tensorStats=s,n.tensorMinMax=l,n.image1Dtensor=c,n.image2Dtensor=u,n.image2Darray=d,n.unroll3Dtensor=m,n.imagenetClassesTopK=p;var h=t(220),b=a(h),g=t(216),v=a(g),x=t(205),_=a(x),w=t(31),y=a(w),k=t(213),N=a(k),C=t(214),L=a(C),z=t(217),R=a(z),S=t(91)},function(e,n){function t(e){return e}e.exports=t},function(e,n,t){function a(e){return null!=e&&r(e.length)&&!o(e)}var o=t(57),r=t(30);e.exports=a},function(e,n){function t(e){return null!=e&&"object"==typeof e}e.exports=t},function(e,n,t){function a(e){return"symbol"==typeof e||o(e)&&s.call(e)==r}var o=t(10),r="[object Symbol]",i=Object.prototype,s=i.toString;e.exports=a},function(e,n,t){function a(e,n){return e[0]-n[0]}function o(){var e,n=this.stride,t=new Array(n.length);for(e=0;e<t.length;++e)t[e]=[Math.abs(n[e]),e];t.sort(a);var o=new Array(t.length);for(e=0;e<o.length;++e)o[e]=t[e][1];return o}function r(e,n){var t=["View",n,"d",e].join("");n<0&&(t="View_Nil"+e);var a="generic"===e;if(n===-1){var r="function "+t+"(a){this.data=a;};var proto="+t+".prototype;proto.dtype='"+e+"';proto.index=function(){return -1};proto.size=0;proto.dimension=-1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function(){return new "+t+"(this.data);};proto.get=proto.set=function(){};proto.pick=function(){return null};return function construct_"+t+"(a){return new "+t+"(a);}",i=new Function(r);return i()}if(0===n){var r="function "+t+"(a,d) {this.data = a;this.offset = d};var proto="+t+".prototype;proto.dtype='"+e+"';proto.index=function(){return this.offset};proto.dimension=0;proto.size=1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function "+t+"_copy() {return new "+t+"(this.data,this.offset)};proto.pick=function "+t+"_pick(){return TrivialArray(this.data);};proto.valueOf=proto.get=function "+t+"_get(){return "+(a?"this.data.get(this.offset)":"this.data[this.offset]")+"};proto.set=function "+t+"_set(v){return "+(a?"this.data.set(this.offset,v)":"this.data[this.offset]=v")+"};return function construct_"+t+"(a,b,c,d){return new "+t+"(a,d)}",i=new Function("TrivialArray",r);return i(d[e][0])}var r=["'use strict'"],s=l(n),c=s.map(function(e){return"i"+e}),u="this.offset+"+s.map(function(e){return"this.stride["+e+"]*i"+e}).join("+"),m=s.map(function(e){return"b"+e}).join(","),p=s.map(function(e){return"c"+e}).join(",");r.push("function "+t+"(a,"+m+","+p+",d){this.data=a","this.shape=["+m+"]","this.stride=["+p+"]","this.offset=d|0}","var proto="+t+".prototype","proto.dtype='"+e+"'","proto.dimension="+n),r.push("Object.defineProperty(proto,'size',{get:function "+t+"_size(){return "+s.map(function(e){return"this.shape["+e+"]"}).join("*"),"}})"),1===n?r.push("proto.order=[0]"):(r.push("Object.defineProperty(proto,'order',{get:"),n<4?(r.push("function "+t+"_order(){"),2===n?r.push("return (Math.abs(this.stride[0])>Math.abs(this.stride[1]))?[1,0]:[0,1]}})"):3===n&&r.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):r.push("ORDER})")),r.push("proto.set=function "+t+"_set("+c.join(",")+",v){"),a?r.push("return this.data.set("+u+",v)}"):r.push("return this.data["+u+"]=v}"),r.push("proto.get=function "+t+"_get("+c.join(",")+"){"),a?r.push("return this.data.get("+u+")}"):r.push("return this.data["+u+"]}"),r.push("proto.index=function "+t+"_index(",c.join(),"){return "+u+"}"),r.push("proto.hi=function "+t+"_hi("+c.join(",")+"){return new "+t+"(this.data,"+s.map(function(e){return["(typeof i",e,"!=='number'||i",e,"<0)?this.shape[",e,"]:i",e,"|0"].join("")}).join(",")+","+s.map(function(e){return"this.stride["+e+"]"}).join(",")+",this.offset)}");var f=s.map(function(e){return"a"+e+"=this.shape["+e+"]"}),h=s.map(function(e){return"c"+e+"=this.stride["+e+"]"});r.push("proto.lo=function "+t+"_lo("+c.join(",")+"){var b=this.offset,d=0,"+f.join(",")+","+h.join(","));for(var b=0;b<n;++b)r.push("if(typeof i"+b+"==='number'&&i"+b+">=0){d=i"+b+"|0;b+=c"+b+"*d;a"+b+"-=d}");r.push("return new "+t+"(this.data,"+s.map(function(e){return"a"+e}).join(",")+","+s.map(function(e){return"c"+e}).join(",")+",b)}"),r.push("proto.step=function "+t+"_step("+c.join(",")+"){var "+s.map(function(e){return"a"+e+"=this.shape["+e+"]"}).join(",")+","+s.map(function(e){return"b"+e+"=this.stride["+e+"]"}).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(var b=0;b<n;++b)r.push("if(typeof i"+b+"==='number'){d=i"+b+"|0;if(d<0){c+=b"+b+"*(a"+b+"-1);a"+b+"=ceil(-a"+b+"/d)}else{a"+b+"=ceil(a"+b+"/d)}b"+b+"*=d}");r.push("return new "+t+"(this.data,"+s.map(function(e){return"a"+e}).join(",")+","+s.map(function(e){return"b"+e}).join(",")+",c)}");for(var g=new Array(n),v=new Array(n),b=0;b<n;++b)g[b]="a[i"+b+"]",v[b]="b[i"+b+"]";r.push("proto.transpose=function "+t+"_transpose("+c+"){"+c.map(function(e,n){return e+"=("+e+"===undefined?"+n+":"+e+"|0)"}).join(";"),"var a=this.shape,b=this.stride;return new "+t+"(this.data,"+g.join(",")+","+v.join(",")+",this.offset)}"),r.push("proto.pick=function "+t+"_pick("+c+"){var a=[],b=[],c=this.offset");for(var b=0;b<n;++b)r.push("if(typeof i"+b+"==='number'&&i"+b+">=0){c=(c+this.stride["+b+"]*i"+b+")|0}else{a.push(this.shape["+b+"]);b.push(this.stride["+b+"])}");r.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),r.push("return function construct_"+t+"(data,shape,stride,offset){return new "+t+"(data,"+s.map(function(e){return"shape["+e+"]"}).join(",")+","+s.map(function(e){return"stride["+e+"]"}).join(",")+",offset)}");var i=new Function("CTOR_LIST","ORDER",r.join("\n"));return i(d[e],o)}function i(e){if(c(e))return"buffer";if(u)switch(Object.prototype.toString.call(e)){case"[object Float64Array]":return"float64";case"[object Float32Array]":return"float32";case"[object Int8Array]":return"int8";case"[object Int16Array]":return"int16";case"[object Int32Array]":return"int32";case"[object Uint8Array]":return"uint8";case"[object Uint16Array]":return"uint16";case"[object Uint32Array]":return"uint32";case"[object Uint8ClampedArray]":return"uint8_clamped"}return Array.isArray(e)?"array":"generic"}function s(e,n,t,a){if(void 0===e){var o=d.array[0];return o([])}"number"==typeof e&&(e=[e]),void 0===n&&(n=[e.length]);var s=n.length;if(void 0===t){t=new Array(s);for(var l=s-1,c=1;l>=0;--l)t[l]=c,c*=n[l]}if(void 0===a){a=0;for(var l=0;l<s;++l)t[l]<0&&(a-=(n[l]-1)*t[l])}for(var u=i(e),m=d[u];m.length<=s+1;)m.push(r(u,m.length-1));var o=m[s+1];return o(e,n,t,a)}var l=t(111),c=t(112),u="undefined"!=typeof Float64Array,d={float32:[],float64:[],int8:[],int16:[],int32:[],uint8:[],uint16:[],uint32:[],array:[],uint8_clamped:[],buffer:[],generic:[]};e.exports=s},function(e,n,t){function a(e){var n=-1,t=e?e.length:0;for(this.clear();++n<t;){var a=e[n];this.set(a[0],a[1])}}var o=t(176),r=t(177),i=t(178),s=t(179),l=t(180);a.prototype.clear=o,a.prototype.delete=r,a.prototype.get=i,a.prototype.has=s,a.prototype.set=l,e.exports=a},function(e,n,t){function a(e,n){for(var t=e.length;t--;)if(o(e[t][0],n))return t;return-1}var o=t(28);e.exports=a},function(e,n,t){function a(e){return"function"==typeof e?e:null==e?i:"object"==typeof e?s(e)?r(e[0],e[1]):o(e):l(e)}var o=t(138),r=t(139),i=t(8),s=t(3),l=t(210);e.exports=a},function(e,n,t){function a(e,n){var t=e.__data__;return o(n)?t["string"==typeof n?"string":"hash"]:t.map}var o=t(173);e.exports=a},function(e,n,t){function a(e,n){if(o(e))return!1;var t=typeof e;return!("number"!=t&&"symbol"!=t&&"boolean"!=t&&null!=e&&!r(e))||(s.test(e)||!i.test(e)||null!=n&&e in Object(n))}var o=t(3),r=t(11),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;e.exports=a},function(e,n,t){var a=t(5),o=a(Object,"create");e.exports=o},function(e,n,t){function a(e){if("string"==typeof e||o(e))return e;var n=e+"";return"0"==n&&1/e==-r?"-0":n}var o=t(11),r=1/0;e.exports=a},function(e,n,t){function a(e){return i(e)?o(e):r(e)}var o=t(122),r=t(136),i=t(9);e.exports=a},function(e,n,t){"use strict";function a(e){if(!e)return s;for(var n=0;n<e.args.length;++n){var t=e.args[n];0===n?e.args[n]={name:t,lvalue:!0,rvalue:!!e.rvalue,count:e.count||1}:e.args[n]={name:t,lvalue:!1,rvalue:!0,count:1}}return e.thisVars||(e.thisVars=[]),e.localVars||(e.localVars=[]),e}function o(e){return i({args:e.args,pre:a(e.pre),body:a(e.body),post:a(e.proc),funcName:e.funcName})}function r(e){for(var n=[],t=0;t<e.args.length;++t)n.push("a"+t);var a=new Function("P",["return function ",e.funcName,"_ndarrayops(",n.join(","),") {P(",n.join(","),");return a0}"].join(""));return a(o(e))}var i=t(39),s={body:"",args:[],thisVars:[],localVars:[]},l={add:"+",sub:"-",mul:"*",div:"/",mod:"%",band:"&",bor:"|",bxor:"^",lshift:"<<",rshift:">>",rrshift:">>>"};!function(){for(var e in l){var t=l[e];n[e]=r({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+t+"c"},funcName:e}),n[e+"eq"]=r({args:["array","array"],body:{args:["a","b"],body:"a"+t+"=b"},rvalue:!0,funcName:e+"eq"}),n[e+"s"]=r({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+t+"s"},funcName:e+"s"}),n[e+"seq"]=r({args:["array","scalar"],body:{args:["a","s"],body:"a"+t+"=s"},rvalue:!0,funcName:e+"seq"})}}();var c={not:"!",bnot:"~",neg:"-",recip:"1.0/"};!function(){for(var e in c){var t=c[e];n[e]=r({args:["array","array"],body:{args:["a","b"],body:"a="+t+"b"},funcName:e}),n[e+"eq"]=r({args:["array"],body:{args:["a"],body:"a="+t+"a"},rvalue:!0,count:2,funcName:e+"eq"})}}();var u={and:"&&",or:"||",eq:"===",neq:"!==",lt:"<",gt:">",leq:"<=",geq:">="};!function(){for(var e in u){var t=u[e];n[e]=r({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+t+"c"},funcName:e}),n[e+"s"]=r({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+t+"s"},funcName:e+"s"}),n[e+"eq"]=r({args:["array","array"],body:{args:["a","b"],body:"a=a"+t+"b"},rvalue:!0,count:2,funcName:e+"eq"}),n[e+"seq"]=r({args:["array","scalar"],body:{args:["a","s"],body:"a=a"+t+"s"},rvalue:!0,count:2,funcName:e+"seq"})}}();var d=["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan"];!function(){for(var e=0;e<d.length;++e){var t=d[e];n[t]=r({args:["array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(b)",thisVars:["this_f"]},funcName:t}),n[t+"eq"]=r({args:["array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a"],body:"a=this_f(a)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"eq"})}}();var m=["max","min","atan2","pow"];!function(){for(var e=0;e<m.length;++e){var t=m[e];n[t]=r({args:["array","array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(b,c)",thisVars:["this_f"]},funcName:t}),n[t+"s"]=r({args:["array","array","scalar"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(b,c)",thisVars:["this_f"]},funcName:t+"s"}),n[t+"eq"]=r({args:["array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(a,b)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"eq"}),n[t+"seq"]=r({args:["array","scalar"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(a,b)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"seq"})}}();var p=["atan2","pow"];!function(){for(var e=0;e<p.length;++e){var t=p[e];n[t+"op"]=r({args:["array","array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(c,b)",thisVars:["this_f"]},funcName:t+"op"}),n[t+"ops"]=r({args:["array","array","scalar"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(c,b)",thisVars:["this_f"]},funcName:t+"ops"}),n[t+"opeq"]=r({args:["array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(b,a)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"opeq"}),n[t+"opseq"]=r({args:["array","scalar"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(b,a)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"opseq"})}}(),n.any=i({args:["array"],pre:s,body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:1}],body:"if(a){return true}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return false"},funcName:"any"}),n.all=i({args:["array"],pre:s,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1}],body:"if(!x){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"all"}),n.sum=i({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:1}],body:"this_s+=a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"sum"}),n.prod=i({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=1"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:1}],body:"this_s*=a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"prod"}),n.norm2squared=i({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:2}],body:"this_s+=a*a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm2squared"}),n.norm2=i({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:2}],body:"this_s+=a*a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return Math.sqrt(this_s)"},funcName:"norm2"}),n.norminf=i({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:4}],body:"if(-a>this_s){this_s=-a}else if(a>this_s){this_s=a}",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norminf"}),n.norm1=i({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:3}],body:"this_s+=a<0?-a:a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm1"}),n.sup=i({args:["array"],pre:{body:"this_h=-Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}}),n.inf=i({args:["array"],pre:{body:"this_h=Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_<this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}}),n.argmin=i({args:["index","array","shape"],pre:{body:"{this_v=Infinity;this_i=_inline_0_arg2_.slice(0)}",args:[{name:"_inline_0_arg0_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg1_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg2_",lvalue:!1,rvalue:!0,count:1}],thisVars:["this_i","this_v"],localVars:[]},body:{body:"{if(_inline_1_arg1_<this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}}),n.argmax=i({args:["index","array","shape"],pre:{body:"{this_v=-Infinity;this_i=_inline_0_arg2_.slice(0)}",args:[{name:"_inline_0_arg0_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg1_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg2_",lvalue:!1,rvalue:!0,count:1}],thisVars:["this_i","this_v"],localVars:[]},body:{body:"{if(_inline_1_arg1_>this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}}),n.random=r({args:["array"],pre:{args:[],body:"this_f=Math.random",thisVars:["this_f"]},body:{args:["a"],body:"a=this_f()",thisVars:["this_f"]},funcName:"random"}),n.assign=r({args:["array","array"],body:{args:["a","b"],body:"a=b"},funcName:"assign"}),n.assigns=r({args:["array","scalar"],body:{args:["a","b"],body:"a=b"},funcName:"assigns"}),n.equals=i({args:["array","array"],pre:s,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1},{name:"y",lvalue:!1,rvalue:!0,count:1}],body:"if(x!==y){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"equals"})},function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.IMAGE_URLS=[{name:"cat",value:"http://i.imgur.com/CzXTtJV.jpg"},{name:"dog",value:"http://i.imgur.com/OB0y6MR.jpg"},{name:"cheetah",value:"https://farm2.staticflickr.com/1533/26541536141_41abe98db3_z_d.jpg"},{name:"goldfish",value:"https://farm2.staticflickr.com/1301/1349366952_982df2276f_z_d.jpg"},{name:"bird",value:"https://farm4.staticflickr.com/3075/3168662394_7d7103de7d_z_d.jpg"},{name:"bridge",value:"http://i.imgur.com/Bvke53p.jpg"},{name:"airplane",value:"https://farm6.staticflickr.com/5590/14821526429_5c6ea60405_z_d.jpg"},{name:"cello",value:"https://farm2.staticflickr.com/1090/4595137268_0e3f2b9aa7_z_d.jpg"},{name:"violin",value:"https://farm6.staticflickr.com/5076/7175144508_e1ba0d6e35_z_d.jpg"},{name:"piano",value:"https://farm4.staticflickr.com/3224/3081748027_0ee3d59fea_z_d.jpg"},{name:"apple",value:"https://farm8.staticflickr.com/7377/9359257263_81b080a039_z_d.jpg"},{name:"orange",value:"https://farm6.staticflickr.com/5251/5522940446_0d5724d43a_z_d.jpg"},{name:"flower",value:"https://farm5.staticflickr.com/4037/4682037903_88cf1cfc47_z_d.jpg"},{name:"coffee",value:"https://farm4.staticflickr.com/3752/9684880330_9b4698f7cb_z_d.jpg"},{name:"wine",value:"https://farm4.staticflickr.com/3827/11349066413_99c32dee4a_z_d.jpg"}]},function(e,n,t){var a=t(5),o=t(1),r=a(o,"Map");e.exports=r},function(e,n,t){function a(e){var n=-1,t=e?e.length:0;for(this.clear();++n<t;){var a=e[n];this.set(a[0],a[1])}}var o=t(181),r=t(182),i=t(183),s=t(184),l=t(185);a.prototype.clear=o,a.prototype.delete=r,a.prototype.get=i,a.prototype.has=s,a.prototype.set=l,e.exports=a},function(e,n,t){var a=t(1),o=a.Symbol;e.exports=o},function(e,n){function t(e,n){return n=null==n?a:n,!!n&&("number"==typeof e||o.test(e))&&e>-1&&e%1==0&&e<n}var a=9007199254740991,o=/^(?:0|[1-9]\d*)$/;e.exports=t},function(e,n,t){function a(e,n,t){if(!s(t))return!1;var a=typeof n;return!!("number"==a?r(t)&&i(n,t.length):"string"==a&&n in t)&&o(t[n],e)}var o=t(28),r=t(9),i=t(26),s=t(6);e.exports=a},function(e,n){function t(e,n){return e===n||e!==e&&n!==n}e.exports=t},function(e,n,t){var a=t(131),o=t(10),r=Object.prototype,i=r.hasOwnProperty,s=r.propertyIsEnumerable,l=a(function(){return arguments}())?a:function(e){return o(e)&&i.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},function(e,n){function t(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=a}var a=9007199254740991;e.exports=t},function(e,n,t){var a=t(135),o=t(46),r=t(189),i=r&&r.isTypedArray,s=i?o(i):a;e.exports=s},function(e,n,t){function a(e){if(!e)return 0===e?e:0;if(e=o(e),e===r||e===-r){var n=e<0?-1:1;return n*i}return e===e?e:0}var o=t(59),r=1/0,i=1.7976931348623157e308;e.exports=a},function(e,n,t){"use strict";var a=t(0),o=t(71),r=t(74),i=t(80),s=t(78),l=t(36),c="undefined"!=typeof window&&window.btoa||t(73);e.exports=function(e){return new Promise(function(n,u){var d=e.data,m=e.headers;a.isFormData(d)&&delete m["Content-Type"];var p=new XMLHttpRequest,f="onreadystatechange",h=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in p||s(e.url)||(p=new window.XDomainRequest,f="onload",h=!0,p.onprogress=function(){},p.ontimeout=function(){}),e.auth){var b=e.auth.username||"",g=e.auth.password||"";m.Authorization="Basic "+c(b+":"+g)}if(p.open(e.method.toUpperCase(),r(e.url,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,p[f]=function(){if(p&&(4===p.readyState||h)&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var t="getAllResponseHeaders"in p?i(p.getAllResponseHeaders()):null,a=e.responseType&&"text"!==e.responseType?p.response:p.responseText,r={data:a,status:1223===p.status?204:p.status,statusText:1223===p.status?"No Content":p.statusText,headers:t,config:e,request:p};o(n,u,r),p=null}},p.onerror=function(){u(l("Network Error",e)),p=null},p.ontimeout=function(){u(l("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED")),p=null},a.isStandardBrowserEnv()){var v=t(76),x=(e.withCredentials||s(e.url))&&e.xsrfCookieName?v.read(e.xsrfCookieName):void 0;x&&(m[e.xsrfHeaderName]=x)}if("setRequestHeader"in p&&a.forEach(m,function(e,n){"undefined"==typeof d&&"content-type"===n.toLowerCase()?delete m[n]:p.setRequestHeader(n,e)}),e.withCredentials&&(p.withCredentials=!0),e.responseType)try{p.responseType=e.responseType}catch(e){if("json"!==p.responseType)throw e}"function"==typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){p&&(p.abort(),u(e),p=null)}),void 0===d&&(d=null),p.send(d)})}},function(e,n){"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},function(e,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,n,t){"use strict";var a=t(70);e.exports=function(e,n,t,o){var r=new Error(e);return a(r,n,t,o)}},function(e,n,t){"use strict";(function(n){function a(e,n){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=n)}function o(){var e;return"undefined"!=typeof XMLHttpRequest?e=t(33):"undefined"!=typeof n&&(e=t(33)),e}var r=t(0),i=t(79),s=/^\)\]\}',?\n/,l={"Content-Type":"application/x-www-form-urlencoded"};e.exports={adapter:o(),transformRequest:[function(e,n){return i(n,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(a(n,"application/x-www-form-urlencoded;charset=utf-8"),
|
|
e.toString()):r.isObject(e)?(a(n,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e){e=e.replace(s,"");try{e=JSON.parse(e)}catch(e){}}return e}],headers:{common:{Accept:"application/json, text/plain, */*"},patch:r.merge(l),post:r.merge(l),put:r.merge(l)},timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}}}).call(n,t(221))},function(e,n){"use strict";e.exports=function(e,n){return function(){for(var t=new Array(arguments.length),a=0;a<t.length;a++)t[a]=arguments[a];return e.apply(n,t)}}},function(e,n,t){"use strict";function a(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.arrayBlockIndices=[],this.scalarArgs=[],this.offsetArgs=[],this.offsetArgIndex=[],this.indexArgs=[],this.shapeArgs=[],this.funcName="",this.pre=null,this.body=null,this.post=null,this.debug=!1}function o(e){var n=new a;n.pre=e.pre,n.body=e.body,n.post=e.post;var t=e.args.slice(0);n.argTypes=t;for(var o=0;o<t.length;++o){var i=t[o];if("array"===i||"object"==typeof i&&i.blockIndices){if(n.argTypes[o]="array",n.arrayArgs.push(o),n.arrayBlockIndices.push(i.blockIndices?i.blockIndices:0),n.shimArgs.push("array"+o),o<n.pre.args.length&&n.pre.args[o].count>0)throw new Error("cwise: pre() block may not reference array args");if(o<n.post.args.length&&n.post.args[o].count>0)throw new Error("cwise: post() block may not reference array args")}else if("scalar"===i)n.scalarArgs.push(o),n.shimArgs.push("scalar"+o);else if("index"===i){if(n.indexArgs.push(o),o<n.pre.args.length&&n.pre.args[o].count>0)throw new Error("cwise: pre() block may not reference array index");if(o<n.body.args.length&&n.body.args[o].lvalue)throw new Error("cwise: body() block may not write to array index");if(o<n.post.args.length&&n.post.args[o].count>0)throw new Error("cwise: post() block may not reference array index")}else if("shape"===i){if(n.shapeArgs.push(o),o<n.pre.args.length&&n.pre.args[o].lvalue)throw new Error("cwise: pre() block may not write to array shape");if(o<n.body.args.length&&n.body.args[o].lvalue)throw new Error("cwise: body() block may not write to array shape");if(o<n.post.args.length&&n.post.args[o].lvalue)throw new Error("cwise: post() block may not write to array shape")}else{if("object"!=typeof i||!i.offset)throw new Error("cwise: Unknown argument type "+t[o]);n.argTypes[o]="offset",n.offsetArgs.push({array:i.array,offset:i.offset}),n.offsetArgIndex.push(o)}}if(n.arrayArgs.length<=0)throw new Error("cwise: No array arguments specified");if(n.pre.args.length>t.length)throw new Error("cwise: Too many arguments in pre() block");if(n.body.args.length>t.length)throw new Error("cwise: Too many arguments in body() block");if(n.post.args.length>t.length)throw new Error("cwise: Too many arguments in post() block");return n.debug=!!e.printCode||!!e.debug,n.funcName=e.funcName||"cwise",n.blockSize=e.blockSize||64,r(n)}var r=t(106);e.exports=o},function(e,n,t){function a(e){var n=this.__data__=new o(e);this.size=n.size}var o=t(13),r=t(197),i=t(198),s=t(199),l=t(200),c=t(201);a.prototype.clear=r,a.prototype.delete=i,a.prototype.get=s,a.prototype.has=l,a.prototype.set=c,e.exports=a},function(e,n){function t(e,n){for(var t=-1,a=e?e.length:0,o=Array(a);++t<a;)o[t]=n(e[t],t,e);return o}e.exports=t},function(e,n,t){var a=t(128),o=t(156),r=o(a);e.exports=r},function(e,n,t){function a(e,n,t,i,s){var l=-1,c=e.length;for(t||(t=r),s||(s=[]);++l<c;){var u=e[l];n>0&&t(u)?n>1?a(u,n-1,t,i,s):o(s,u):i||(s[s.length]=u)}return s}var o=t(123),r=t(172);e.exports=a},function(e,n,t){function a(e,n){n=r(n,e)?[n]:o(n);for(var t=0,a=n.length;null!=e&&t<a;)e=e[i(n[t++])];return t&&t==a?e:void 0}var o=t(47),r=t(17),i=t(19);e.exports=a},function(e,n,t){function a(e,n,t,s,l){return e===n||(null==e||null==n||!r(e)&&!i(n)?e!==e&&n!==n:o(e,n,a,t,s,l))}var o=t(132),r=t(6),i=t(10);e.exports=a},function(e,n){function t(e){return function(n){return e(n)}}e.exports=t},function(e,n,t){function a(e){return o(e)?e:r(e)}var o=t(3),r=t(202);e.exports=a},function(e,n,t){function a(e,n,t,a,c,u){var d=c&l,m=e.length,p=n.length;if(m!=p&&!(d&&p>m))return!1;var f=u.get(e);if(f&&u.get(n))return f==n;var h=-1,b=!0,g=c&s?new o:void 0;for(u.set(e,n),u.set(n,e);++h<m;){var v=e[h],x=n[h];if(a)var _=d?a(x,v,h,n,e,u):a(v,x,h,e,n,u);if(void 0!==_){if(_)continue;b=!1;break}if(g){if(!r(n,function(e,n){if(!i(g,n)&&(v===e||t(v,e,a,c,u)))return g.push(n)})){b=!1;break}}else if(v!==x&&!t(v,x,a,c,u)){b=!1;break}}return u.delete(e),u.delete(n),b}var o=t(117),r=t(124),i=t(152),s=1,l=2;e.exports=a},function(e,n,t){(function(n){var t="object"==typeof n&&n&&n.Object===Object&&n;e.exports=t}).call(n,t(61))},function(e,n,t){function a(e){return e===e&&!o(e)}var o=t(6);e.exports=a},function(e,n){function t(e,n){return function(t){return null!=t&&(t[e]===n&&(void 0!==n||e in Object(t)))}}e.exports=t},function(e,n){function t(e){if(null!=e){try{return o.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var a=Function.prototype,o=a.toString;e.exports=t},function(e,n,t){function a(e,n,t){function a(n){var t=v,a=x;return v=x=void 0,N=n,w=e.apply(a,t)}function u(e){return N=e,y=setTimeout(p,n),C?a(e):w}function d(e){var t=e-k,a=e-N,o=n-t;return L?c(o,_-a):o}function m(e){var t=e-k,a=e-N;return void 0===k||t>=n||t<0||L&&a>=_}function p(){var e=r();return m(e)?f(e):void(y=setTimeout(p,d(e)))}function f(e){return y=void 0,z&&v?a(e):(v=x=void 0,w)}function h(){void 0!==y&&clearTimeout(y),N=0,v=k=x=y=void 0}function b(){return void 0===y?w:f(r())}function g(){var e=r(),t=m(e);if(v=arguments,x=this,k=e,t){if(void 0===y)return u(k);if(L)return y=setTimeout(p,n),a(k)}return void 0===y&&(y=setTimeout(p,n)),w}var v,x,_,w,y,k,N=0,C=!1,L=!1,z=!0;if("function"!=typeof e)throw new TypeError(s);return n=i(n)||0,o(t)&&(C=!!t.leading,L="maxWait"in t,_=L?l(i(t.maxWait)||0,n):_,z="trailing"in t?!!t.trailing:z),g.cancel=h,g.flush=b,g}var o=t(6),r=t(209),i=t(59),s="Expected a function",l=Math.max,c=Math.min;e.exports=a},function(e,n,t){function a(e,n){var t=s(e)?o:r;return t(e,i(n,3))}var o=t(121),r=t(125),i=t(15),s=t(3);e.exports=a},function(e,n,t){function a(e,n,t){var a=e?e.length:0;if(!a)return-1;var l=null==t?0:i(t);return l<0&&(l=s(a+l,0)),o(e,r(n,3),l)}var o=t(126),r=t(15),i=t(58),s=Math.max;e.exports=a},function(e,n,t){(function(e){var a=t(1),o=t(215),r="object"==typeof n&&n&&!n.nodeType&&n,i=r&&"object"==typeof e&&e&&!e.nodeType&&e,s=i&&i.exports===r,l=s?a.Buffer:void 0,c=l?l.isBuffer:void 0,u=c||o;e.exports=u}).call(n,t(62)(e))},function(e,n,t){function a(e){var n=o(e)?c.call(e):"";return n==r||n==i||n==s}var o=t(6),r="[object Function]",i="[object GeneratorFunction]",s="[object Proxy]",l=Object.prototype,c=l.toString;e.exports=a},function(e,n,t){function a(e){var n=o(e),t=n%1;return n===n?t?n-t:n:0}var o=t(32);e.exports=a},function(e,n,t){function a(e){if("number"==typeof e)return e;if(r(e))return i;if(o(e)){var n="function"==typeof e.valueOf?e.valueOf():e;e=o(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(s,"");var t=c.test(e);return t||u.test(e)?d(e.slice(2),t?2:8):l.test(e)?i:+e}var o=t(6),r=t(11),i=NaN,s=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,u=/^0o[0-7]+$/i,d=parseInt;e.exports=a},function(e,n){"use strict";function t(e,n){for(var t=1,a=e.length,o=e[0],r=e[0],i=1;i<a;++i)if(r=o,o=e[i],n(o,r)){if(i===t){t++;continue}e[t++]=o}return e.length=t,e}function a(e){for(var n=1,t=e.length,a=e[0],o=e[0],r=1;r<t;++r,o=a)if(o=a,a=e[r],a!==o){if(r===n){n++;continue}e[n++]=a}return e.length=n,e}function o(e,n,o){return 0===e.length?e:n?(o||e.sort(n),t(e,n)):(o||e.sort(),a(e))}e.exports=o},function(e,n){var t;t=function(){return this}();try{t=t||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(t=window)}e.exports=t},function(e,n){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,configurable:!1,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,configurable:!1,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,n,t){"use strict";function a(){var e=["mnist-cnn","mnist-vae","resnet50","inception-v3","xception","imdb-bidirectional-lstm"],n=window.location.hash,t=n.substr(2);e.indexOf(t)>-1?m.currentView=t:m.currentView="home"}t(233);var o=t(86),r=t(82),i=t(87),s=t(88),l=t(90),c=t(85),u=t(93),d=t(83);Vue.component("menu",o.Menu),Vue.component("home",r.Home),Vue.component("mnist-cnn",i.MnistCnn),Vue.component("mnist-vae",s.MnistVae),Vue.component("resnet50",l.ResNet50),Vue.component("inception-v3",c.InceptionV3),Vue.component("xception",u.Xception),Vue.component("imdb-bidirectional-lstm",d.ImdbBidirectionalLstm),Vue.use(VueMdl.default);var m=new Vue({el:"#app",data:function(){return{currentView:"home",hasWebgl:!0}},created:function(){var e=document.createElement("canvas"),n=e.getContext("webgl")||e.getContext("experimental-webgl");n&&n instanceof WebGLRenderingContext?this.hasWebgl=!0:this.hasWebgl=!1}});window.addEventListener("load",a),window.addEventListener("hashchange",a)},function(e,n,t){e.exports=t(65)},function(e,n,t){"use strict";function a(e){var n=new i(e),t=r(i.prototype.request,n);return o.extend(t,i.prototype,n),o.extend(t,n),t}var o=t(0),r=t(38),i=t(67),s=a();s.Axios=i,s.create=function(e){return a(e)},s.Cancel=t(34),s.CancelToken=t(66),s.isCancel=t(35),s.all=function(e){return Promise.all(e)},s.spread=t(81),e.exports=s,e.exports.default=s},function(e,n,t){"use strict";function a(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var n;this.promise=new Promise(function(e){n=e});var t=this;e(function(e){t.reason||(t.reason=new o(e),n(t.reason))})}var o=t(34);a.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},a.source=function(){var e,n=new a(function(n){e=n});return{token:n,cancel:e}},e.exports=a},function(e,n,t){"use strict";function a(e){this.defaults=r.merge(o,e),this.interceptors={request:new i,response:new i}}var o=t(37),r=t(0),i=t(68),s=t(69),l=t(77),c=t(75);a.prototype.request=function(e){"string"==typeof e&&(e=r.merge({url:arguments[0]},arguments[1])),e=r.merge(o,this.defaults,{method:"get"},e),e.baseURL&&!l(e.url)&&(e.url=c(e.baseURL,e.url));var n=[s,void 0],t=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){n.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){n.push(e.fulfilled,e.rejected)});n.length;)t=t.then(n.shift(),n.shift());return t},r.forEach(["delete","get","head"],function(e){a.prototype[e]=function(n,t){return this.request(r.merge(t||{},{method:e,url:n}))}}),r.forEach(["post","put","patch"],function(e){a.prototype[e]=function(n,t,a){return this.request(r.merge(a||{},{method:e,url:n,data:t}))}}),e.exports=a},function(e,n,t){"use strict";function a(){this.handlers=[]}var o=t(0);a.prototype.use=function(e,n){return this.handlers.push({fulfilled:e,rejected:n}),this.handlers.length-1},a.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},a.prototype.forEach=function(e){o.forEach(this.handlers,function(n){null!==n&&e(n)})},e.exports=a},function(e,n,t){"use strict";function a(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var o=t(0),r=t(72),i=t(35),s=t(37);e.exports=function(e){a(e),e.headers=e.headers||{},e.data=r(e.data,e.headers,e.transformRequest),e.headers=o.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),o.forEach(["delete","get","head","post","put","patch","common"],function(n){delete e.headers[n]});var n=e.adapter||s.adapter;return n(e).then(function(n){return a(e),n.data=r(n.data,n.headers,e.transformResponse),n},function(n){return i(n)||(a(e),n&&n.response&&(n.response.data=r(n.response.data,n.response.headers,e.transformResponse))),Promise.reject(n)})}},function(e,n){"use strict";e.exports=function(e,n,t,a){return e.config=n,t&&(e.code=t),e.response=a,e}},function(e,n,t){"use strict";var a=t(36);e.exports=function(e,n,t){var o=t.config.validateStatus;t.status&&o&&!o(t.status)?n(a("Request failed with status code "+t.status,t.config,null,t)):e(t)}},function(e,n,t){"use strict";var a=t(0);e.exports=function(e,n,t){return a.forEach(t,function(t){e=t(e,n)}),e}},function(e,n){"use strict";function t(){this.message="String contains an invalid character"}function a(e){for(var n,a,r=String(e),i="",s=0,l=o;r.charAt(0|s)||(l="=",s%1);i+=l.charAt(63&n>>8-s%1*8)){if(a=r.charCodeAt(s+=.75),a>255)throw new t;n=n<<8|a}return i}var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";t.prototype=new Error,t.prototype.code=5,t.prototype.name="InvalidCharacterError",e.exports=a},function(e,n,t){"use strict";function a(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=t(0);e.exports=function(e,n,t){if(!n)return e;var r;if(t)r=t(n);else if(o.isURLSearchParams(n))r=n.toString();else{var i=[];o.forEach(n,function(e,n){null!==e&&"undefined"!=typeof e&&(o.isArray(e)&&(n+="[]"),o.isArray(e)||(e=[e]),o.forEach(e,function(e){o.isDate(e)?e=e.toISOString():o.isObject(e)&&(e=JSON.stringify(e)),i.push(a(n)+"="+a(e))}))}),r=i.join("&")}return r&&(e+=(e.indexOf("?")===-1?"?":"&")+r),e}},function(e,n){"use strict";e.exports=function(e,n){return e.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,"")}},function(e,n,t){"use strict";var a=t(0);e.exports=a.isStandardBrowserEnv()?function(){return{write:function(e,n,t,o,r,i){var s=[];s.push(e+"="+encodeURIComponent(n)),a.isNumber(t)&&s.push("expires="+new Date(t).toGMTString()),a.isString(o)&&s.push("path="+o),a.isString(r)&&s.push("domain="+r),i===!0&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var n=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,n,t){"use strict";var a=t(0);e.exports=a.isStandardBrowserEnv()?function(){function e(e){var n=e;return t&&(o.setAttribute("href",n),n=o.href),o.setAttribute("href",n),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var n,t=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return n=e(window.location.href),function(t){var o=a.isString(t)?e(t):t;return o.protocol===n.protocol&&o.host===n.host}}():function(){return function(){return!0}}()},function(e,n,t){"use strict";var a=t(0);e.exports=function(e,n){a.forEach(e,function(t,a){a!==n&&a.toUpperCase()===n.toUpperCase()&&(e[n]=t,delete e[a])})}},function(e,n,t){"use strict";var a=t(0);e.exports=function(e){var n,t,o,r={};return e?(a.forEach(e.split("\n"),function(e){o=e.indexOf(":"),n=a.trim(e.substr(0,o)).toLowerCase(),t=a.trim(e.substr(o+1)),n&&(r[n]=r[n]?r[n]+", "+t:t)}),r):r}},function(e,n){"use strict";e.exports=function(e){return function(n){return e.apply(null,n)}}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Home=void 0,t(230);var a=[{title:"Basic Convnet for MNIST",path:"mnist-cnn",imagePath:"demos/assets/mnist-cnn.png"},{title:"Convolutional Variational Autoencoder, trained on MNIST",path:"mnist-vae",imagePath:"demos/assets/mnist-vae.png"},{title:"50-layer Residual Network, trained on ImageNet",path:"resnet50",imagePath:"demos/assets/resnet50.png"},{title:"Inception V3, trained on ImageNet",path:"inception-v3",imagePath:"demos/assets/inception-v3.png"},{title:"Xception, trained on ImageNet",path:"xception",imagePath:"demos/assets/inception-v3.png"},{title:"Bidirectional LSTM for IMDB sentiment classification",path:"imdb-bidirectional-lstm",imagePath:"demos/assets/imdb-bidirectional-lstm.png"}],o=a;n.Home=Vue.extend({template:t(222),data:function(){return{demoInfo:o}}})},function(e,n,t){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.ImdbBidirectionalLstm=void 0,t(231);var o=t(64),r=a(o),i=t(53),s=a(i),l=t(211),c=a(l),u=t(55),d=a(u),m=t(21),p=a(m),f=t(94),h=a(f),b={model:"demos/data/imdb_bidirectional_lstm/imdb_bidirectional_lstm.json",weights:"https://transcranial.github.io/keras-js-demos-data/imdb_bidirectional_lstm/imdb_bidirectional_lstm_weights.buf",metadata:"demos/data/imdb_bidirectional_lstm/imdb_bidirectional_lstm_metadata.json"},g={filepaths:b},v={wordIndex:"demos/data/imdb_bidirectional_lstm/imdb_dataset_word_index_top20000.json",wordDict:"demos/data/imdb_bidirectional_lstm/imdb_dataset_word_dict_top20000.json",testSamples:"demos/data/imdb_bidirectional_lstm/imdb_dataset_test.json"},x=v,_=200,w=1,y=2,k=3,N=[{name:"embedding_1",className:"Embedding",details:"200 time steps, dim 20000 -> 64"},{name:"bidirectional_1",className:"Bidirectional [LSTM]",details:"200 time steps, dim 64 -> 32, concat merge, tanh activation, hard sigmoid inner activation"},{name:"dropout_1",className:"Dropout",details:"p=0.5 (active during training)"},{name:"dense_1",className:"Dense",details:"output dim 1, sigmoid activation"}];n.ImdbBidirectionalLstm=Vue.extend({props:["hasWebgl"],template:t(223),data:function(){return{showInfoPanel:!0,useGpu:!1,model:new KerasJS.Model(Object.assign({gpu:!1},g)),modelLoading:!0,modelRunning:!1,input:new Float32Array(_),output:new Float32Array(1),inputText:"",inputTextParsed:[],stepwiseOutput:[],wordIndex:{},wordDict:{},testSamples:[],isSampleText:!1,sampleTextLabel:null,architectureDiagramLayers:N}},computed:{loadingProgress:function(){return this.model.getLoadingProgress()},outputColor:function(){return this.output[0]>0&&this.output[0]<.5?"rgba(242, 38, 19, "+(1-this.output[0])+")":this.output[0]>=.5?"rgba(27, 188, 155, "+this.output[0]+")":"#69707a"},stepwiseOutputColor:function(){return this.stepwiseOutput.map(function(e){return e>0&&e<.5?"rgba(242, 38, 19, "+(.5-e)+")":e>=.5?"rgba(27, 188, 155, "+(e-.5)+")":"white"})}},ready:function(){var e=this;this.model.ready().then(function(){e.modelLoading=!1,e.loadAdditionalData()})},methods:{closeInfoPanel:function(){this.showInfoPanel=!1},toggleGpu:function(){this.model.toggleGpu(!this.useGpu)},clear:function(e){this.inputText="",this.inputTextParsed=[],this.output=new Float32Array(1)},loadAdditionalData:function(){var e=this;this.modelLoading=!0;var n=["wordIndex","wordDict","testSamples"].map(function(e){return r.default.get(x[e])});r.default.all(n).then(r.default.spread(function(n,t,a){e.wordIndex=n.data,e.wordDict=t.data,e.testSamples=a.data,e.modelLoading=!1}))},randomSample:function(){var e=this;this.modelRunning=!0,this.isSampleText=!0;var n=(0,c.default)(0,this.testSamples.length-1),t=this.testSamples[n].values;this.sampleTextLabel=0===this.testSamples[n].label?"negative":"positive";var a=t.map(function(n){return 0===n||1===n?"":2===n?"<OOV>":e.wordDict[n-k]});this.inputText=a.join(" ").trim(),this.inputTextParsed=a.filter(function(e){return!!e}),this.input=new Float32Array(t),this.model.predict({input:this.input}).then(function(n){e.output=n.output,e.stepwiseCalc(),e.modelRunning=!1})},inputChanged:(0,s.default)(function(){var e=this;if(!this.modelRunning){if(""===this.inputText.trim())return void(this.inputTextParsed=[]);this.modelRunning=!0,this.isSampleText=!1,this.inputTextParsed=this.inputText.trim().toLowerCase().split(/[\s\.,!?]+/gi),this.input=new Float32Array(_);var n=this.inputTextParsed.map(function(n){var t=e.wordIndex[n];return t?t+k:y});n=[w].concat(n),n=n.slice(-_);for(var t=Math.max(0,_-n.length),a=t;a<_;a++)this.input[a]=n[a-t];this.model.predict({input:this.input}).then(function(n){e.output=n.output,e.stepwiseCalc(),e.modelRunning=!1})}},200),stepwiseCalc:function(){var e=this.model.modelLayersMap.get("dense_1"),n=this.model.modelLayersMap.get("bidirectional_1").forwardLayer.hiddenStateSequence,t=this.model.modelLayersMap.get("bidirectional_1").backwardLayer.hiddenStateSequence,a=n.tensor.shape[1],o=t.tensor.shape[1],r=(0,d.default)(this.input,function(e){return e>=k});if(r!==-1){for(var i=[],s=r;s<_;s++){var l=new h.default([],[a+o]);p.default.assign(l.tensor.hi(a).lo(0),n.tensor.pick(s,null)),p.default.assign(l.tensor.hi(a+o).lo(a),t.tensor.pick(_-s-1,null)),i.push(e.call(l).tensor.data[0])}this.stepwiseOutput=i}}}})},function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.ARCHITECTURE_DIAGRAM=[{name:"convolution2d_1",className:"Convolution2D",details:"32 3x3 filters, 2x2 strides, border mode valid, ReLU",row:0,col:0},{name:"batchnormalization_1",className:"BatchNormalization",details:"channel axis features",row:1,col:0},{name:"convolution2d_2",className:"Convolution2D",details:"32 3x3 filters, 1x1 strides, border mode valid, ReLU",row:2,col:0},{name:"batchnormalization_2",className:"BatchNormalization",details:"channel axis features",row:3,col:0},{name:"convolution2d_3",className:"Convolution2D",details:"64 3x3 filters, 1x1 strides, border mode same, ReLU",row:4,col:0},{name:"batchnormalization_3",className:"BatchNormalization",details:"channel axis features",row:5,col:0},{name:"maxpooling2d_1",className:"MaxPooling2D",details:"3x3 pool size, 2x2 strides, border mode valid",row:6,col:0},{name:"convolution2d_4",className:"Convolution2D",details:"80 1x1 filters, 1x1 strides, border mode valid, ReLU",row:7,col:0},{name:"batchnormalization_4",className:"BatchNormalization",details:"channel axis features",row:8,col:0},{name:"convolution2d_5",className:"Convolution2D",details:"192 3x3 filters, 1x1 strides, border mode valid, ReLU",row:9,col:0},{name:"batchnormalization_5",className:"BatchNormalization",details:"channel axis features",row:10,col:0},{name:"maxpooling2d_2",className:"MaxPooling2D",details:"3x3 pool size, 2x2 strides, border mode valid",row:11,col:0},{name:"convolution2d_9",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:12,col:0},{name:"batchnormalization_9",className:"BatchNormalization",details:"channel axis features",row:13,col:0},{name:"convolution2d_7",className:"Convolution2D",details:"48 1x1 filters, 1x1 strides, border mode same, ReLU",row:12,col:1},{name:"convolution2d_10",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:14,col:2},{name:"batchnormalization_7",className:"BatchNormalization",details:"channel axis features",row:13,col:1},{name:"batchnormalization_10",className:"BatchNormalization",details:"channel axis features",row:15,col:2},{name:"averagepooling2d_1",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:12,col:3},{name:"convolution2d_6",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:12,col:2},{name:"convolution2d_8",className:"Convolution2D",details:"64 5x5 filters, 1x1 strides, border mode same, ReLU",row:14,col:1},{name:"convolution2d_11",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:16,col:2},{name:"convolution2d_12",className:"Convolution2D",details:"32 1x1 filters, 1x1 strides, border mode same, ReLU",row:13,col:3},{name:"batchnormalization_6",className:"BatchNormalization",details:"channel axis features",row:13,col:2},{name:"batchnormalization_8",className:"BatchNormalization",details:"channel axis features",row:15,col:1},{name:"batchnormalization_11",className:"BatchNormalization",details:"channel axis features",row:17,col:2},{name:"batchnormalization_12",className:"BatchNormalization",details:"channel axis features",row:14,col:3},{name:"mixed0",className:"Merge",details:"concat by channel axes",row:18,col:3},{name:"convolution2d_16",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:19,col:0},{name:"batchnormalization_16",className:"BatchNormalization",details:"channel axis features",row:20,col:0},{name:"convolution2d_14",className:"Convolution2D",details:"48 1x1 filters, 1x1 strides, border mode same, ReLU",row:19,col:1},{name:"convolution2d_17",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:21,col:2},{name:"batchnormalization_14",className:"BatchNormalization",details:"channel axis features",row:20,col:1},{name:"batchnormalization_17",className:"BatchNormalization",details:"channel axis features",row:22,col:2},{name:"averagepooling2d_2",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:19,col:3},{name:"convolution2d_13",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:19,col:2},{name:"convolution2d_15",className:"Convolution2D",details:"64 5x5 filters, 1x1 strides, border mode same, ReLU",row:21,col:1},{name:"convolution2d_18",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:23,col:2},{name:"convolution2d_19",className:"Convolution2D",details:"32 1x1 filters, 1x1 strides, border mode same, ReLU",row:20,col:3},{name:"batchnormalization_13",className:"BatchNormalization",details:"channel axis features",row:20,col:2},{name:"batchnormalization_15",className:"BatchNormalization",details:"channel axis features",row:22,col:1},{name:"batchnormalization_18",className:"BatchNormalization",details:"channel axis features",row:24,col:2},{name:"batchnormalization_19",className:"BatchNormalization",details:"channel axis features",row:21,col:3},{name:"mixed1",className:"Merge",details:"concat by channel axes",row:25,col:3},{name:"convolution2d_23",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:26,col:0},{name:"batchnormalization_23",className:"BatchNormalization",details:"channel axis features",row:27,col:0},{name:"convolution2d_21",className:"Convolution2D",details:"48 1x1 filters, 1x1 strides, border mode same, ReLU",row:26,col:1},{name:"convolution2d_24",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:28,col:2},{name:"batchnormalization_21",className:"BatchNormalization",details:"channel axis features",row:27,col:1},{name:"batchnormalization_24",className:"BatchNormalization",details:"channel axis features",row:29,col:2},{name:"averagepooling2d_3",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:26,col:3},{name:"convolution2d_20",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:26,col:2},{name:"convolution2d_22",className:"Convolution2D",details:"64 5x5 filters, 1x1 strides, border mode same, ReLU",row:28,col:1},{name:"convolution2d_25",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:30,col:2},{name:"convolution2d_26",className:"Convolution2D",details:"32 1x1 filters, 1x1 strides, border mode same, ReLU",row:27,col:3},{name:"batchnormalization_20",className:"BatchNormalization",details:"channel axis features",row:27,col:2},{name:"batchnormalization_22",className:"BatchNormalization",details:"channel axis features",row:29,col:1},{name:"batchnormalization_25",className:"BatchNormalization",details:"channel axis features",row:31,col:2},{name:"batchnormalization_26",className:"BatchNormalization",details:"channel axis features",row:28,col:3},{name:"mixed2",className:"Merge",details:"concat by channel axes",row:32,col:3},{name:"convolution2d_28",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:33,col:1},{name:"batchnormalization_28",className:"BatchNormalization",details:"channel axis features",row:34,col:1},{name:"convolution2d_29",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:35,col:1},{name:"batchnormalization_29",className:"BatchNormalization",details:"channel axis features",row:36,col:1},{name:"convolution2d_27",className:"Convolution2D",details:"384 3x3 filters, 2x2 strides, border mode valid, ReLU",row:33,col:0},{name:"convolution2d_30",className:"Convolution2D",details:"96 3x3 filters, 2x2 strides, border mode valid, ReLU",row:37,col:1},{name:"batchnormalization_27",className:"BatchNormalization",details:"channel axis features",row:34,col:0},{name:"batchnormalization_30",className:"BatchNormalization",details:"channel axis features",row:38,col:1},{name:"maxpooling2d_3",className:"MaxPooling2D",details:"3x3 pool size, 2x2 strides, border mode valid",row:33,col:2},{name:"mixed3",className:"Merge",details:"concat by channel axes",row:39,col:3},{name:"convolution2d_35",className:"Convolution2D",details:"128 1x1 filters, 1x1 strides, border mode same, ReLU",row:40,col:2},{name:"batchnormalization_35",className:"BatchNormalization",details:"channel axis features",row:41,col:2},{name:"convolution2d_36",className:"Convolution2D",details:"128 7x1 filters, 1x1 strides, border mode same, ReLU",row:42,col:2},{name:"batchnormalization_36",className:"BatchNormalization",details:"channel axis features",row:43,col:2},{name:"convolution2d_32",className:"Convolution2D",details:"128 1x1 filters, 1x1 strides, border mode same, ReLU",row:40,col:1},{name:"convolution2d_37",className:"Convolution2D",details:"128 1x7 filters, 1x1 strides, border mode same, ReLU",row:44,col:2},{name:"batchnormalization_32",className:"BatchNormalization",details:"channel axis features",row:41,col:1},{name:"batchnormalization_37",className:"BatchNormalization",details:"channel axis features",row:45,col:2},{name:"convolution2d_33",className:"Convolution2D",details:"128 1x7 filters, 1x1 strides, border mode same, ReLU",row:42,col:1},{name:"convolution2d_38",className:"Convolution2D",details:"128 7x1 filters, 1x1 strides, border mode same, ReLU",row:46,col:2},{name:"batchnormalization_33",className:"BatchNormalization",details:"channel axis features",row:43,col:1},{name:"batchnormalization_38",className:"BatchNormalization",details:"channel axis features",row:47,col:2},{name:"averagepooling2d_4",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:40,col:3},{name:"convolution2d_31",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:40,col:0},{name:"convolution2d_34",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:44,col:1},{name:"convolution2d_39",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:48,col:2},{name:"convolution2d_40",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:41,col:3},{name:"batchnormalization_31",className:"BatchNormalization",details:"channel axis features",row:41,col:0},{name:"batchnormalization_34",className:"BatchNormalization",details:"channel axis features",row:45,col:1},{name:"batchnormalization_39",className:"BatchNormalization",details:"channel axis features",row:49,col:2},{name:"batchnormalization_40",className:"BatchNormalization",details:"channel axis features",row:42,col:3},{name:"mixed4",className:"Merge",details:"concat by channel axes",row:50,col:3},{name:"convolution2d_45",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:51,col:2},{name:"batchnormalization_45",className:"BatchNormalization",details:"channel axis features",row:52,col:2},{name:"convolution2d_46",className:"Convolution2D",details:"160 7x1 filters, 1x1 strides, border mode same, ReLU",row:53,col:2},{name:"batchnormalization_46",className:"BatchNormalization",details:"channel axis features",row:54,col:2},{name:"convolution2d_42",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:51,col:1},{name:"convolution2d_47",className:"Convolution2D",details:"160 1x7 filters, 1x1 strides, border mode same, ReLU",row:55,
|
|
col:2},{name:"batchnormalization_42",className:"BatchNormalization",details:"channel axis features",row:52,col:1},{name:"batchnormalization_47",className:"BatchNormalization",details:"channel axis features",row:56,col:2},{name:"convolution2d_43",className:"Convolution2D",details:"160 1x7 filters, 1x1 strides, border mode same, ReLU",row:53,col:1},{name:"convolution2d_48",className:"Convolution2D",details:"160 7x1 filters, 1x1 strides, border mode same, ReLU",row:57,col:2},{name:"batchnormalization_43",className:"BatchNormalization",details:"channel axis features",row:54,col:1},{name:"batchnormalization_48",className:"BatchNormalization",details:"channel axis features",row:58,col:2},{name:"averagepooling2d_5",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:51,col:3},{name:"convolution2d_41",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:51,col:0},{name:"convolution2d_44",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:55,col:1},{name:"convolution2d_49",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:59,col:2},{name:"convolution2d_50",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:52,col:3},{name:"batchnormalization_41",className:"BatchNormalization",details:"channel axis features",row:52,col:0},{name:"batchnormalization_44",className:"BatchNormalization",details:"channel axis features",row:56,col:1},{name:"batchnormalization_49",className:"BatchNormalization",details:"channel axis features",row:60,col:2},{name:"batchnormalization_50",className:"BatchNormalization",details:"channel axis features",row:53,col:3},{name:"mixed5",className:"Merge",details:"concat by channel axes",row:61,col:3},{name:"convolution2d_55",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:62,col:2},{name:"batchnormalization_55",className:"BatchNormalization",details:"channel axis features",row:63,col:2},{name:"convolution2d_56",className:"Convolution2D",details:"160 7x1 filters, 1x1 strides, border mode same, ReLU",row:64,col:2},{name:"batchnormalization_56",className:"BatchNormalization",details:"channel axis features",row:65,col:2},{name:"convolution2d_52",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:62,col:1},{name:"convolution2d_57",className:"Convolution2D",details:"160 1x7 filters, 1x1 strides, border mode same, ReLU",row:66,col:2},{name:"batchnormalization_52",className:"BatchNormalization",details:"channel axis features",row:63,col:1},{name:"batchnormalization_57",className:"BatchNormalization",details:"channel axis features",row:67,col:2},{name:"convolution2d_53",className:"Convolution2D",details:"160 1x7 filters, 1x1 strides, border mode same, ReLU",row:64,col:1},{name:"convolution2d_58",className:"Convolution2D",details:"160 7x1 filters, 1x1 strides, border mode same, ReLU",row:68,col:2},{name:"batchnormalization_53",className:"BatchNormalization",details:"channel axis features",row:65,col:1},{name:"batchnormalization_58",className:"BatchNormalization",details:"channel axis features",row:69,col:2},{name:"averagepooling2d_6",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:62,col:3},{name:"convolution2d_51",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:62,col:0},{name:"convolution2d_54",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:66,col:1},{name:"convolution2d_59",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:70,col:2},{name:"convolution2d_60",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:63,col:3},{name:"batchnormalization_51",className:"BatchNormalization",details:"channel axis features",row:63,col:0},{name:"batchnormalization_54",className:"BatchNormalization",details:"channel axis features",row:67,col:1},{name:"batchnormalization_59",className:"BatchNormalization",details:"channel axis features",row:71,col:2},{name:"batchnormalization_60",className:"BatchNormalization",details:"channel axis features",row:64,col:3},{name:"mixed6",className:"Merge",details:"concat by channel axes",row:72,col:3},{name:"convolution2d_65",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:73,col:2},{name:"batchnormalization_65",className:"BatchNormalization",details:"channel axis features",row:74,col:2},{name:"convolution2d_66",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:75,col:2},{name:"batchnormalization_66",className:"BatchNormalization",details:"channel axis features",row:76,col:2},{name:"convolution2d_62",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:73,col:1},{name:"convolution2d_67",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:77,col:2},{name:"batchnormalization_62",className:"BatchNormalization",details:"channel axis features",row:74,col:1},{name:"batchnormalization_67",className:"BatchNormalization",details:"channel axis features",row:78,col:2},{name:"convolution2d_63",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:75,col:1},{name:"convolution2d_68",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:79,col:2},{name:"batchnormalization_63",className:"BatchNormalization",details:"channel axis features",row:76,col:1},{name:"batchnormalization_68",className:"BatchNormalization",details:"channel axis features",row:80,col:2},{name:"averagepooling2d_7",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:73,col:3},{name:"convolution2d_61",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:73,col:0},{name:"convolution2d_64",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:77,col:1},{name:"convolution2d_69",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:81,col:2},{name:"convolution2d_70",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:74,col:3},{name:"batchnormalization_61",className:"BatchNormalization",details:"channel axis features",row:74,col:0},{name:"batchnormalization_64",className:"BatchNormalization",details:"channel axis features",row:78,col:1},{name:"batchnormalization_69",className:"BatchNormalization",details:"channel axis features",row:82,col:2},{name:"batchnormalization_70",className:"BatchNormalization",details:"channel axis features",row:75,col:3},{name:"mixed7",className:"Merge",details:"concat by channel axes",row:83,col:3},{name:"convolution2d_73",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:84,col:1},{name:"batchnormalization_73",className:"BatchNormalization",details:"channel axis features",row:85,col:1},{name:"convolution2d_74",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:86,col:1},{name:"batchnormalization_74",className:"BatchNormalization",details:"channel axis features",row:87,col:1},{name:"convolution2d_71",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:84,col:0},{name:"convolution2d_75",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:88,col:1},{name:"batchnormalization_71",className:"BatchNormalization",details:"channel axis features",row:85,col:0},{name:"batchnormalization_75",className:"BatchNormalization",details:"channel axis features",row:89,col:1},{name:"convolution2d_72",className:"Convolution2D",details:"320 3x3 filters, 2x2 strides, border mode valid, ReLU",row:86,col:0},{name:"convolution2d_76",className:"Convolution2D",details:"192 3x3 filters, 2x2 strides, border mode valid, ReLU",row:90,col:1},{name:"batchnormalization_72",className:"BatchNormalization",details:"channel axis features",row:87,col:0},{name:"batchnormalization_76",className:"BatchNormalization",details:"channel axis features",row:91,col:1},{name:"averagepooling2d_8",className:"AveragePooling2D",details:"3x3 pool size, 2x2 strides, border mode valid",row:84,col:2},{name:"mixed8",className:"Merge",details:"concat by channel axes",row:92,col:3},{name:"convolution2d_81",className:"Convolution2D",details:"448 1x1 filters, 1x1 strides, border mode same, ReLU",row:93,col:2},{name:"batchnormalization_81",className:"BatchNormalization",details:"channel axis features",row:94,col:2},{name:"convolution2d_78",className:"Convolution2D",details:"384 1x1 filters, 1x1 strides, border mode same, ReLU",row:93,col:1},{name:"convolution2d_82",className:"Convolution2D",details:"384 3x3 filters, 1x1 strides, border mode same, ReLU",row:95,col:2},{name:"batchnormalization_78",className:"BatchNormalization",details:"channel axis features",row:94,col:1},{name:"batchnormalization_82",className:"BatchNormalization",details:"channel axis features",row:96,col:2},{name:"convolution2d_79",className:"Convolution2D",details:"384 1x3 filters, 1x1 strides, border mode same, ReLU",row:95,col:1,subcol:0},{name:"convolution2d_80",className:"Convolution2D",details:"384 3x1 filters, 1x1 strides, border mode same, ReLU",row:95,col:1,subcol:1},{name:"convolution2d_83",className:"Convolution2D",details:"384 1x3 filters, 1x1 strides, border mode same, ReLU",row:97,col:2,subcol:0},{name:"convolution2d_84",className:"Convolution2D",details:"384 3x1 filters, 1x1 strides, border mode same, ReLU",row:97,col:2,subcol:1},{name:"averagepooling2d_9",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:93,col:3},{name:"convolution2d_77",className:"Convolution2D",details:"320 1x1 filters, 1x1 strides, border mode same, ReLU",row:93,col:0},{name:"batchnormalization_79",className:"BatchNormalization",details:"channel axis features",row:96,col:1,subcol:0},{name:"batchnormalization_80",className:"BatchNormalization",details:"channel axis features",row:96,col:1,subcol:1},{name:"batchnormalization_83",className:"BatchNormalization",details:"channel axis features",row:98,col:2,subcol:0},{name:"batchnormalization_84",className:"BatchNormalization",details:"channel axis features",row:98,col:2,subcol:1},{name:"convolution2d_85",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:94,col:3},{name:"batchnormalization_77",className:"BatchNormalization",details:"channel axis features",row:94,col:0},{name:"mixed9_0",className:"Merge",details:"concat by channel axes",row:97,col:1},{name:"merge_1",className:"Merge",details:"concat by channel axes",row:99,col:2},{name:"batchnormalization_85",className:"BatchNormalization",details:"channel axis features",row:95,col:3},{name:"mixed9",className:"Merge",details:"concat by channel axes",row:100,col:3},{name:"convolution2d_90",className:"Convolution2D",details:"448 1x1 filters, 1x1 strides, border mode same, ReLU",row:101,col:2},{name:"batchnormalization_90",className:"BatchNormalization",details:"channel axis features",row:102,col:2},{name:"convolution2d_87",className:"Convolution2D",details:"384 1x1 filters, 1x1 strides, border mode same, ReLU",row:101,col:1},{name:"convolution2d_91",className:"Convolution2D",details:"384 3x3 filters, 1x1 strides, border mode same, ReLU",row:103,col:2},{name:"batchnormalization_87",className:"BatchNormalization",details:"channel axis features",row:102,col:1},{name:"batchnormalization_91",className:"BatchNormalization",details:"channel axis features",row:104,col:2},{name:"convolution2d_88",className:"Convolution2D",details:"384 1x3 filters, 1x1 strides, border mode same, ReLU",row:103,col:1,subcol:0},{name:"convolution2d_89",className:"Convolution2D",details:"384 3x1 filters, 1x1 strides, border mode same, ReLU",row:103,col:1,subcol:1},{name:"convolution2d_92",className:"Convolution2D",details:"384 1x3 filters, 1x1 strides, border mode same, ReLU",row:105,col:2,subcol:0},{name:"convolution2d_93",className:"Convolution2D",details:"384 3x1 filters, 1x1 strides, border mode same, ReLU",row:105,col:2,subcol:1},{name:"averagepooling2d_10",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:101,col:3},{name:"convolution2d_86",className:"Convolution2D",details:"320 1x1 filters, 1x1 strides, border mode same, ReLU",row:101,col:0},{name:"batchnormalization_88",className:"BatchNormalization",details:"channel axis features",row:104,col:1,subcol:0},{name:"batchnormalization_89",className:"BatchNormalization",details:"channel axis features",row:104,col:1,subcol:1},{name:"batchnormalization_92",className:"BatchNormalization",details:"channel axis features",row:106,col:2,subcol:0},{name:"batchnormalization_93",className:"BatchNormalization",details:"channel axis features",row:106,col:2,subcol:1},{name:"convolution2d_94",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:102,col:3},{name:"batchnormalization_86",className:"BatchNormalization",details:"channel axis features",row:102,col:0},{name:"mixed9_1",className:"Merge",details:"concat by channel axes",row:105,col:1},{name:"merge_2",className:"Merge",details:"concat by channel axes",row:107,col:2},{name:"batchnormalization_94",className:"BatchNormalization",details:"channel axis features",row:103,col:3},{name:"mixed10",className:"Merge",details:"concat by channel axes",row:108,col:3},{name:"avg_pool",className:"AveragePooling2D",details:"8x8 pool size, 8x8 strides, border mode valid",row:109,col:3},{name:"flatten",className:"Flatten",details:"",row:110,col:3},{name:"predictions",className:"Dense",details:"output dimensions 1000, softmax activation",row:111,col:3}],n.ARCHITECTURE_CONNECTIONS=[{from:"averagepooling2d_1",to:"predictions"},{from:"convolution2d_1",to:"maxpooling2d_2"},{from:"maxpooling2d_2",to:"batchnormalization_9"},{from:"maxpooling2d_2",to:"batchnormalization_11",corner:"top-right"},{from:"maxpooling2d_2",to:"batchnormalization_8",corner:"top-right"},{from:"maxpooling2d_2",to:"averagepooling2d_1",corner:"top-right"},{from:"batchnormalization_9",to:"mixed0",corner:"bottom-left"},{from:"batchnormalization_11",to:"mixed0",corner:"bottom-left"},{from:"batchnormalization_8",to:"mixed0",corner:"bottom-left"},{from:"mixed0",to:"convolution2d_16",corner:"bottom-right"},{from:"mixed0",to:"convolution2d_14",corner:"bottom-right"},{from:"mixed0",to:"convolution2d_13",corner:"bottom-right"},{from:"convolution2d_16",to:"mixed1",corner:"bottom-left"},{from:"convolution2d_14",to:"mixed1",corner:"bottom-left"},{from:"convolution2d_13",to:"mixed1",corner:"bottom-left"},{from:"mixed1",to:"convolution2d_23",corner:"bottom-right"},{from:"mixed1",to:"convolution2d_21",corner:"bottom-right"},{from:"mixed1",to:"convolution2d_20",corner:"bottom-right"},{from:"convolution2d_23",to:"mixed2",corner:"bottom-left"},{from:"convolution2d_21",to:"mixed2",corner:"bottom-left"},{from:"convolution2d_20",to:"mixed2",corner:"bottom-left"},{from:"mixed2",to:"convolution2d_27",corner:"bottom-right"},{from:"mixed2",to:"convolution2d_28",corner:"bottom-right"},{from:"mixed2",to:"maxpooling2d_3",corner:"bottom-right"},{from:"convolution2d_27",to:"mixed3",corner:"bottom-left"},{from:"convolution2d_28",to:"mixed3",corner:"bottom-left"},{from:"maxpooling2d_3",to:"mixed3",corner:"bottom-left"},{from:"mixed3",to:"convolution2d_31",corner:"bottom-right"},{from:"mixed3",to:"convolution2d_32",corner:"bottom-right"},{from:"mixed3",to:"convolution2d_35",corner:"bottom-right"},{from:"convolution2d_31",to:"mixed4",corner:"bottom-left"},{from:"convolution2d_32",to:"mixed4",corner:"bottom-left"},{from:"convolution2d_35",to:"mixed4",corner:"bottom-left"},{from:"mixed4",to:"convolution2d_41",corner:"bottom-right"},{from:"mixed4",to:"convolution2d_42",corner:"bottom-right"},{from:"mixed4",to:"convolution2d_45",corner:"bottom-right"},{from:"convolution2d_41",to:"mixed5",corner:"bottom-left"},{from:"convolution2d_42",to:"mixed5",corner:"bottom-left"},{from:"convolution2d_45",to:"mixed5",corner:"bottom-left"},{from:"mixed5",to:"convolution2d_51",corner:"bottom-right"},{from:"mixed5",to:"convolution2d_52",corner:"bottom-right"},{from:"mixed5",to:"convolution2d_55",corner:"bottom-right"},{from:"convolution2d_51",to:"mixed6",corner:"bottom-left"},{from:"convolution2d_52",to:"mixed6",corner:"bottom-left"},{from:"convolution2d_55",to:"mixed6",corner:"bottom-left"},{from:"mixed6",to:"convolution2d_61",corner:"bottom-right"},{from:"mixed6",to:"convolution2d_62",corner:"bottom-right"},{from:"mixed6",to:"convolution2d_65",corner:"bottom-right"},{from:"convolution2d_61",to:"mixed7",corner:"bottom-left"},{from:"convolution2d_62",to:"mixed7",corner:"bottom-left"},{from:"convolution2d_65",to:"mixed7",corner:"bottom-left"},{from:"mixed7",to:"convolution2d_71",corner:"bottom-right"},{from:"mixed7",to:"convolution2d_73",corner:"bottom-right"},{from:"mixed7",to:"averagepooling2d_8",corner:"bottom-right"},{from:"convolution2d_71",to:"mixed8",corner:"bottom-left"},{from:"convolution2d_73",to:"mixed8",corner:"bottom-left"},{from:"averagepooling2d_8",to:"mixed8",corner:"bottom-left"},{from:"mixed8",to:"convolution2d_77",corner:"bottom-right"},{from:"mixed8",to:"convolution2d_78",corner:"bottom-right"},{from:"mixed8",to:"convolution2d_81",corner:"bottom-right"},{from:"convolution2d_77",to:"mixed9",corner:"bottom-left"},{from:"convolution2d_78",to:"batchnormalization_78"},{from:"batchnormalization_78",to:"convolution2d_79"},{from:"batchnormalization_78",to:"convolution2d_80"},{from:"convolution2d_79",to:"batchnormalization_79"},{from:"convolution2d_80",to:"batchnormalization_80"},{from:"batchnormalization_79",to:"mixed9_0"},{from:"batchnormalization_80",to:"mixed9_0"},{from:"mixed9_0",to:"mixed9",corner:"bottom-left"},{from:"convolution2d_81",to:"batchnormalization_81"},{from:"batchnormalization_81",to:"convolution2d_82"},{from:"convolution2d_82",to:"batchnormalization_82"},{from:"batchnormalization_82",to:"convolution2d_83"},{from:"batchnormalization_82",to:"convolution2d_84"},{from:"convolution2d_83",to:"batchnormalization_83"},{from:"convolution2d_84",to:"batchnormalization_84"},{from:"batchnormalization_83",to:"merge_1"},{from:"batchnormalization_84",to:"merge_1"},{from:"merge_1",to:"mixed9",corner:"bottom-left"},{from:"mixed9",to:"convolution2d_86",corner:"bottom-right"},{from:"mixed9",to:"convolution2d_87",corner:"bottom-right"},{from:"mixed9",to:"convolution2d_90",corner:"bottom-right"},{from:"convolution2d_86",to:"mixed10",corner:"bottom-left"},{from:"convolution2d_87",to:"batchnormalization_87"},{from:"batchnormalization_87",to:"convolution2d_88"},{from:"batchnormalization_87",to:"convolution2d_89"},{from:"convolution2d_88",to:"batchnormalization_88"},{from:"convolution2d_89",to:"batchnormalization_89"},{from:"batchnormalization_88",to:"mixed9_1"},{from:"batchnormalization_89",to:"mixed9_1"},{from:"mixed9_1",to:"mixed10",corner:"bottom-left"},{from:"convolution2d_90",to:"batchnormalization_90"},{from:"batchnormalization_90",to:"convolution2d_91"},{from:"convolution2d_91",to:"batchnormalization_91"},{from:"batchnormalization_91",to:"convolution2d_92"},{from:"batchnormalization_91",to:"convolution2d_93"},{from:"convolution2d_92",to:"batchnormalization_92"},{from:"convolution2d_93",to:"batchnormalization_93"},{from:"batchnormalization_92",to:"merge_2"},{from:"batchnormalization_93",to:"merge_2"},{from:"merge_2",to:"mixed10",corner:"bottom-left"}]},function(e,n,t){"use strict";function a(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.InceptionV3=void 0,t(232);var r=t(12),i=o(r),s=t(21),l=o(s),c=t(54),u=o(c),d=t(7),m=a(d),p=t(22),f=t(84),h={model:"demos/data/inception_v3/inception_v3.json",weights:"https://transcranial.github.io/keras-js-demos-data/inception_v3/inception_v3_weights.buf",metadata:"demos/data/inception_v3/inception_v3_metadata.json"},b={filepaths:h};n.InceptionV3=Vue.extend({props:["hasWebgl"],template:t(224),data:function(){return{showInfoPanel:!0,useGpu:this.hasWebgl,model:new KerasJS.Model(Object.assign({gpu:this.hasWebgl,layerCallPauses:!0},b)),modelLoading:!0,modelRunning:!1,imageURLInput:null,imageURLSelect:null,imageURLSelectList:p.IMAGE_URLS,imageLoading:!1,imageLoadingError:!1,output:null,architectureDiagram:f.ARCHITECTURE_DIAGRAM,architectureConnections:f.ARCHITECTURE_CONNECTIONS,architectureDiagramPaths:[],showComputationFlow:!0}},computed:{loadingProgress:function(){return this.model.getLoadingProgress()},architectureDiagramRows:function(){for(var e=[],n=0;n<112;n++){for(var t=[],a=0;a<4;a++)t.push((0,u.default)(this.architectureDiagram,{row:n,col:a}));e.push(t)}return e},layersWithResults:function(){return this.model.layersWithResults},outputClasses:function(){if(!this.output){for(var e=[],n=0;n<5;n++)e.push({name:"-",probability:0});return e}return m.imagenetClassesTopK(this.output,5)}},ready:function(){var e=this;this.model.ready().then(function(){e.modelLoading=!1,e.architectureDiagramPaths=[],setTimeout(function(){e.architectureConnections.forEach(function(n){var t=document.getElementsByClassName("architecture-container")[0],a=document.getElementById(n.from),o=document.getElementById(n.to),r=t.getBoundingClientRect(),i=a.getBoundingClientRect(),s=o.getBoundingClientRect(),l=r.left,c=r.top,u=i.left+i.width/2-l,d=i.top+i.height/2-c,m=s.left+s.width/2-l,p=s.top+s.height/2-c,f="M"+u+","+d+" L"+m+","+p;"top-right"===n.corner?f="M"+u+","+d+" L"+(m-10)+","+d+" Q"+m+","+d+" "+m+","+(d+10)+" L"+m+","+p:"bottom-left"===n.corner?f="M"+u+","+d+" L"+u+","+(p-10)+" Q"+u+","+p+" "+(u+10)+","+p+" L"+m+","+p:"top-left"===n.corner?f="M"+u+","+d+" L"+(m+10)+","+d+" Q"+m+","+d+" "+m+","+(d+10)+" L"+m+","+p:"bottom-right"===n.corner&&(f="M"+u+","+d+" L"+u+","+(d+20)+" Q"+u+","+(d+30)+" "+(u-10)+","+(d+30)+" L"+(m+10)+","+(d+30)+" Q"+m+","+(d+30)+" "+m+","+(d+40)+" L"+m+","+p),e.architectureDiagramPaths.push(f)})},1e3)})},methods:{closeInfoPanel:function(){this.showInfoPanel=!1},toggleGpu:function(){this.model.toggleGpu(!this.useGpu)},toggleComputationFlow:function(){this.model.layerCallPauses=!this.showComputationFlow},imageURLInputChanged:function(e){this.imageURLSelect=null,this.loadImageToCanvas(this.imageURLInput)},imageURLSelectChanged:function(e){this.imageURLInput=this.imageURLSelect,this.loadImageToCanvas(this.imageURLSelect)},loadImageToCanvas:function(e){var n=this;return e?(this.imageLoading=!0,void loadImage(e,function(e){if("error"===e.type)n.imageLoadingError=!0,n.imageLoading=!1;else{var t=document.getElementById("input-canvas").getContext("2d");t.drawImage(e,0,0),n.imageLoadingError=!1,n.imageLoading=!1,n.modelRunning=!0,n.$nextTick(function(){var e=this;setTimeout(function(){e.runModel()},200)})}},{maxWidth:299,maxHeight:299,cover:!0,crop:!0,canvas:!0,crossOrigin:"Anonymous"})):void this.clearAll()},runModel:function(){var e=this,n=document.getElementById("input-canvas").getContext("2d"),t=n.getImageData(0,0,n.canvas.width,n.canvas.height),a=t.data,o=t.width,r=t.height,s=(0,i.default)(new Float32Array(a),[o,r,4]),c=(0,i.default)(new Float32Array(o*r*3),[o,r,3]);l.default.divseq(s,255),l.default.subseq(s,.5),l.default.mulseq(s,2),l.default.assign(c.pick(null,null,0),s.pick(null,null,0)),l.default.assign(c.pick(null,null,1),s.pick(null,null,1)),l.default.assign(c.pick(null,null,2),s.pick(null,null,2));var u={input_1:c.data};this.model.predict(u).then(function(n){e.output=n.predictions,e.modelRunning=!1})},clearAll:function(){this.modelRunning=!1,this.imageURLInput=null,this.imageURLSelect=null,this.imageLoading=!1,this.imageLoadingError=!1,this.output=null,this.model.layersWithResults=[];var e=document.getElementById("input-canvas").getContext("2d");e.clearRect(0,0,e.canvas.width,e.canvas.height)}}})},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Menu=void 0,t(234);n.Menu=Vue.extend({props:["currentView"],template:t(225)})},function(e,n,t){"use strict";function a(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function o(e){return e&&e.__esModule?e:{default:e}}function r(e){if(Array.isArray(e)){for(var n=0,t=Array(e.length);n<e.length;n++)t[n]=e[n];return t}return Array.from(e)}Object.defineProperty(n,"__esModule",{value:!0}),n.MnistCnn=void 0;var i=function(){function e(e,n){var t=[],a=!0,o=!1,r=void 0;try{for(var i,s=e[Symbol.iterator]();!(a=(i=s.next()).done)&&(t.push(i.value),!n||t.length!==n);a=!0);}catch(e){o=!0,r=e}finally{try{!a&&s.return&&s.return()}finally{if(o)throw r}}return t}return function(n,t){if(Array.isArray(n))return n;if(Symbol.iterator in Object(n))return e(n,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();t(235);var s=t(53),l=o(s),c=t(212),u=o(c),d=t(7),m=a(d),p={model:"demos/data/mnist_cnn/mnist_cnn.json",weights:"https://transcranial.github.io/keras-js-demos-data/mnist_cnn/mnist_cnn_weights.buf",metadata:"demos/data/mnist_cnn/mnist_cnn_metadata.json"},f={filepaths:p},h={convolution2d_1:{heading:"32 3x3 filters, border mode valid, 1x1 strides",scalingFactor:2},activation_1:{heading:"ReLU",scalingFactor:2},convolution2d_2:{heading:"32 3x3 filters, border mode valid, 1x1 strides",scalingFactor:2},activation_2:{heading:"ReLU",scalingFactor:2},maxpooling2d_1:{heading:"2x2 pools, 1x1 strides",scalingFactor:2},dropout_1:{heading:"p=0.25 (only active during training phase)",scalingFactor:2},flatten_1:{heading:"",scalingFactor:2},dense_1:{heading:"output dimensionality 128",scalingFactor:4},activation_3:{heading:"ReLU",scalingFactor:4},dropout_2:{heading:"p=0.5 (only active during training phase)",scalingFactor:4},dense_2:{heading:"output dimensionality 10",scalingFactor:8},activation_4:{heading:"Softmax",scalingFactor:8}};n.MnistCnn=Vue.extend({props:["hasWebgl"],template:t(226),data:function(){return{showInfoPanel:!0,useGpu:this.hasWebgl,model:new KerasJS.Model(Object.assign({gpu:this.hasWebgl},f)),modelLoading:!0,input:new Float32Array(784),output:new Float32Array(10),outputClasses:(0,u.default)(10),layerResultImages:[],layerDisplayConfig:h,drawing:!1,strokes:[]}},computed:{loadingProgress:function(){return this.model.getLoadingProgress()},predictedClass:function(){var e=this;return 0===this.output.reduce(function(e,n){return e+n},0)?-1:this.output.reduce(function(n,t,a){return t>e.output[n]?a:n},0)}},ready:function(){var e=this;this.model.ready().then(function(){e.modelLoading=!1,e.$nextTick(function(){this.getIntermediateResults()})})},methods:{closeInfoPanel:function(){this.showInfoPanel=!1},toggleGpu:function(){this.model.toggleGpu(!this.useGpu)},clear:function(e){this.clearIntermediateResults();var n=document.getElementById("input-canvas").getContext("2d");n.clearRect(0,0,n.canvas.width,n.canvas.height);var t=document.getElementById("input-canvas-centercrop").getContext("2d");t.clearRect(0,0,t.canvas.width,t.canvas.height);var a=document.getElementById("input-canvas-scaled").getContext("2d");a.clearRect(0,0,a.canvas.width,a.canvas.height),this.output=new Float32Array(10),this.drawing=!1,this.strokes=[]},activateDraw:function(e){this.drawing=!0,this.strokes.push([]);var n=this.strokes[this.strokes.length-1];n.push(m.getCoordinates(e))},draw:function(e){if(this.drawing){var n=document.getElementById("input-canvas").getContext("2d");n.lineWidth=20,n.lineJoin=n.lineCap="round",n.strokeStyle="#393E46",n.clearRect(0,0,n.canvas.width,n.canvas.height);var t=this.strokes[this.strokes.length-1];t.push(m.getCoordinates(e));for(var a=0,o=this.strokes.length;a<o;a++){t=this.strokes[a];var i=t[0],s=t[1];n.beginPath(),n.moveTo.apply(n,r(i));for(var l=1,c=t.length;l<c;l++)n.quadraticCurveTo.apply(n,r(i).concat(r(m.getMidpoint(i,s)))),i=t[l],s=t[l+1];n.lineTo.apply(n,r(i)),n.stroke()}}},deactivateDrawAndPredict:(0,l.default)(function(){var e=this;if(this.drawing){this.drawing=!1;var n=document.getElementById("input-canvas").getContext("2d"),t=m.centerCrop(n.getImageData(0,0,n.canvas.width,n.canvas.height)),a=document.getElementById("input-canvas-centercrop").getContext("2d");a.canvas.width=t.width,a.canvas.height=t.height,a.putImageData(t,0,0);var o=document.getElementById("input-canvas-scaled").getContext("2d");o.save(),o.scale(28/a.canvas.width,28/a.canvas.height),o.clearRect(0,0,a.canvas.width,a.canvas.height),o.drawImage(document.getElementById("input-canvas-centercrop"),0,0);var r=o.getImageData(0,0,o.canvas.width,o.canvas.height);o.restore();var i=r.data;this.input=new Float32Array(784);for(var s=0,l=i.length;s<l;s+=4)this.input[s/4]=i[s+3]/255;this.model.predict({input:this.input}).then(function(n){e.output=n.output,e.getIntermediateResults()})}},200,{leading:!0,trailing:!0}),getIntermediateResults:function(){var e=this,n=[],t=!0,a=!1,o=void 0;try{for(var r,s=this.model.modelLayersMap.entries()[Symbol.iterator]();!(t=(r=s.next()).done);t=!0){var l=i(r.value,2),c=l[0],u=l[1];if("input"!==c){var d=u.layerClass||"",p=[];u.result&&3===u.result.tensor.shape.length?p=m.unroll3Dtensor(u.result.tensor):u.result&&2===u.result.tensor.shape.length?p=[m.image2Dtensor(u.result.tensor)]:u.result&&1===u.result.tensor.shape.length&&(p=[m.image1Dtensor(u.result.tensor)]),n.push({name:c,layerClass:d,images:p})}}}catch(e){a=!0,o=e}finally{try{!t&&s.return&&s.return()}finally{if(a)throw o}}this.layerResultImages=n,setTimeout(function(){e.showIntermediateResults()},0)},showIntermediateResults:function(){var e=this;this.layerResultImages.forEach(function(n,t){var a=e.layerDisplayConfig[n.name].scalingFactor;n.images.forEach(function(e,n){var o=document.getElementById("intermediate-result-"+t+"-"+n).getContext("2d");o.putImageData(e,0,0);var r=document.getElementById("intermediate-result-"+t+"-"+n+"-scaled").getContext("2d");r.save(),r.scale(a,a),r.clearRect(0,0,r.canvas.width,r.canvas.height),r.drawImage(document.getElementById("intermediate-result-"+t+"-"+n),0,0),r.restore()})})},clearIntermediateResults:function(){var e=this;this.layerResultImages.forEach(function(n,t){var a=e.layerDisplayConfig[n.name].scalingFactor;n.images.forEach(function(e,n){var o=document.getElementById("intermediate-result-"+t+"-"+n+"-scaled").getContext("2d");o.save(),o.scale(a,a),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.restore()})})}}})},function(e,n,t){"use strict";function a(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function o(e){if(Array.isArray(e)){for(var n=0,t=Array(e.length);n<e.length;n++)t[n]=e[n];return t}return Array.from(e)}Object.defineProperty(n,"__esModule",{value:!0}),n.MnistVae=void 0;var r=function(){function e(e,n){var t=[],a=!0,o=!1,r=void 0;try{for(var i,s=e[Symbol.iterator]();!(a=(i=s.next()).done)&&(t.push(i.value),!n||t.length!==n);a=!0);}catch(e){o=!0,r=e}finally{try{!a&&s.return&&s.return()}finally{if(o)throw r}}return t}return function(n,t){if(Array.isArray(n))return n;if(Symbol.iterator in Object(n))return e(n,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();t(236);var i=t(7),s=a(i),l={model:"demos/data/mnist_vae/mnist_vae.json",weights:"https://transcranial.github.io/keras-js-demos-data/mnist_vae/mnist_vae_weights.buf",metadata:"demos/data/mnist_vae/mnist_vae_metadata.json"},c={filepaths:l},u={dense_10:{heading:"input dimensions = 2, output dimensions = 128, ReLU activation",scalingFactor:2},dense_11:{heading:"ReLU activation, output dimensions = 25088 (64 x 14 x 14)",scalingFactor:2},reshape_4:{heading:"",scalingFactor:2},deconvolution2d_10:{heading:"64 3x3 filters, border mode same, 1x1 strides, ReLU activation",
|
|
scalingFactor:2},deconvolution2d_11:{heading:"64 3x3 filters, border mode same, 1x1 strides, ReLU activation",scalingFactor:2},deconvolution2d_12:{heading:"64 2x2 filters, border mode valid, 2x2 strides, ReLU activation",scalingFactor:2},convolution2d_8:{heading:"1 2x2 filters, border mode valid, 1x1 strides, sigmoid activation",scalingFactor:2}};n.MnistVae=Vue.extend({props:["hasWebgl"],template:t(227),data:function(){return{showInfoPanel:!0,useGpu:this.hasWebgl,model:new KerasJS.Model(Object.assign({gpu:this.hasWebgl},c)),modelLoading:!0,output:new Float32Array(729),crosshairsActivated:!1,inputCoordinates:[-.6,-1.2],position:[60,20],layerResultImages:[],layerDisplayConfig:u}},computed:{loadingProgress:function(){return this.model.getLoadingProgress()}},ready:function(){var e=this;this.model.ready().then(function(){e.modelLoading=!1,e.$nextTick(function(){this.drawPosition(),this.getIntermediateResults(),this.runModel()})})},methods:{closeInfoPanel:function(){this.showInfoPanel=!1},toggleGpu:function(){this.model.toggleGpu(!this.useGpu)},activateCrosshairs:function(e){this.crosshairsActivated=!0},deactivateCrosshairs:function(e){this.crosshairsActivated=!1,this.draw(e)},draw:function(e){var n=this.getEventCanvasCoordinates(e),t=r(n,2),a=t[0],o=t[1],i=document.getElementById("input-canvas").getContext("2d");i.clearRect(0,0,200,200),this.drawPosition(),this.crosshairsActivated&&(i.strokeStyle="#1BBC9B",i.beginPath(),i.moveTo(a,0),i.lineTo(a,200),i.stroke(),i.beginPath(),i.moveTo(0,o),i.lineTo(200,o),i.stroke())},drawPosition:function(){var e=document.getElementById("input-canvas").getContext("2d");e.clearRect(0,0,200,200),e.fillStyle="#674172",e.beginPath(),e.arc.apply(e,o(this.position).concat([5,0,2*Math.PI,!0])),e.closePath(),e.fill()},getEventCanvasCoordinates:function(e){var n=e.clientX,t=e.clientY;e.touches&&e.touches.length&&(n=e.touches[0].clientX,t=e.touches[0].clientY);var a=document.getElementById("input-canvas"),o=a.getBoundingClientRect(),r=o.left,i=o.top,s=n-r,l=t-i;return[s,l]},selectCoordinates:function(e){var n=this.getEventCanvasCoordinates(e),t=r(n,2),a=t[0],o=t[1];this.model.isRunning||(this.position=[a,o],this.inputCoordinates=[3*a/200-1.5,3*o/200-1.5],this.draw(e),this.runModel())},runModel:function(){var e=this,n={input_4:new Float32Array(this.inputCoordinates)};this.model.predict(n).then(function(n){e.output=n.convolution2d_8,e.drawOutput(),e.getIntermediateResults()})},drawOutput:function(){var e=document.getElementById("output-canvas").getContext("2d"),n=s.image2Darray(this.output,27,27,[27,188,155]);e.putImageData(n,0,0);var t=document.getElementById("output-canvas-scaled").getContext("2d");t.save(),t.scale(150/27,150/27),t.clearRect(0,0,t.canvas.width,t.canvas.height),t.drawImage(document.getElementById("output-canvas"),0,0),t.restore()},getIntermediateResults:function(){var e=this,n=[],t=!0,a=!1,o=void 0;try{for(var i,l=this.model.modelLayersMap.entries()[Symbol.iterator]();!(t=(i=l.next()).done);t=!0){var c=r(i.value,2),u=c[0],d=c[1],m=d.layerClass||"";if("InputLayer"!==m){var p=[];d.result&&3===d.result.tensor.shape.length?p=s.unroll3Dtensor(d.result.tensor):d.result&&2===d.result.tensor.shape.length?p=[s.image2Dtensor(d.result.tensor)]:d.result&&1===d.result.tensor.shape.length&&(p=[s.image1Dtensor(d.result.tensor)]),n.push({name:u,layerClass:m,images:p})}}}catch(e){a=!0,o=e}finally{try{!t&&l.return&&l.return()}finally{if(a)throw o}}this.layerResultImages=n,setTimeout(function(){e.showIntermediateResults()},0)},showIntermediateResults:function(){var e=this;this.layerResultImages.forEach(function(n,t){var a=e.layerDisplayConfig[n.name].scalingFactor;n.images.forEach(function(e,n){var o=document.getElementById("intermediate-result-"+t+"-"+n).getContext("2d");o.putImageData(e,0,0);var r=document.getElementById("intermediate-result-"+t+"-"+n+"-scaled").getContext("2d");r.save(),r.scale(a,a),r.clearRect(0,0,r.canvas.width,r.canvas.height),r.drawImage(document.getElementById("intermediate-result-"+t+"-"+n),0,0),r.restore()})})},clearIntermediateResults:function(){var e=this;this.layerResultImages.forEach(function(n,t){var a=e.layerDisplayConfig[n.name].scalingFactor;n.images.forEach(function(e,n){var o=document.getElementById("intermediate-result-"+t+"-"+n+"-scaled").getContext("2d");o.save(),o.scale(a,a),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.restore()})})}}})},function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.ARCHITECTURE_DIAGRAM=[{name:"zeropadding2d_1",className:"ZeroPadding2D",details:"3x3 padding",row:0,col:0},{name:"conv1",className:"Convolution2D",details:"64 7x7 filters, 2x2 strides, border mode valid",row:1,col:0},{name:"bn_conv1",className:"BatchNormalization",details:"channel axis features",row:2,col:0},{name:"activation_1",className:"Activation",details:"ReLU",row:3,col:0},{name:"maxpooling2d_1",className:"MaxPooling2D",details:"3x3 pool size, 2x2 strides, border mode valid",row:4,col:0},{name:"res2a_branch2a",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode valid",row:5,col:0},{name:"bn2a_branch2a",className:"BatchNormalization",details:"channel axis features",row:6,col:0},{name:"activation_2",className:"Activation",details:"ReLU",row:7,col:0},{name:"res2a_branch2b",className:"Convolution2D",details:"64 3x3 filters, 1x1 strides, border mode same",row:8,col:0},{name:"bn2a_branch2b",className:"BatchNormalization",details:"channel axis features",row:9,col:0},{name:"activation_3",className:"Activation",details:"ReLU",row:10,col:0},{name:"res2a_branch2c",className:"Convolution2D",details:"256 1x1 filters, 1x1 strides, border mode valid",row:11,col:0},{name:"res2a_branch1",className:"Convolution2D",details:"256 1x1 filters, 1x1 strides, border mode valid",row:5,col:1},{name:"bn2a_branch2c",className:"BatchNormalization",details:"channel axis features",row:12,col:0},{name:"bn2a_branch1",className:"BatchNormalization",details:"channel axis features",row:6,col:1},{name:"merge_1",className:"Merge",details:"sum",row:13,col:1},{name:"activation_4",className:"Activation",details:"ReLU",row:14,col:1},{name:"res2b_branch2a",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode valid",row:15,col:0},{name:"bn2b_branch2a",className:"BatchNormalization",details:"channel axis features",row:16,col:0},{name:"activation_5",className:"Activation",details:"ReLU",row:17,col:0},{name:"res2b_branch2b",className:"Convolution2D",details:"64 3x3 filters, 1x1 strides, border mode same",row:18,col:0},{name:"bn2b_branch2b",className:"BatchNormalization",details:"channel axis features",row:19,col:0},{name:"activation_6",className:"Activation",details:"ReLU",row:20,col:0},{name:"res2b_branch2c",className:"Convolution2D",details:"256 1x1 filters, 1x1 strides, border mode valid",row:21,col:0},{name:"bn2b_branch2c",className:"BatchNormalization",details:"channel axis features",row:22,col:0},{name:"merge_2",className:"Merge",details:"sum",row:23,col:1},{name:"activation_7",className:"Activation",details:"ReLU",row:24,col:1},{name:"res2c_branch2a",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode valid",row:25,col:0},{name:"bn2c_branch2a",className:"BatchNormalization",details:"channel axis features",row:26,col:0},{name:"activation_8",className:"Activation",details:"ReLU",row:27,col:0},{name:"res2c_branch2b",className:"Convolution2D",details:"64 3x3 filters, 1x1 strides, border mode same",row:28,col:0},{name:"bn2c_branch2b",className:"BatchNormalization",details:"channel axis features",row:29,col:0},{name:"activation_9",className:"Activation",details:"ReLU",row:30,col:0},{name:"res2c_branch2c",className:"Convolution2D",details:"256 1x1 filters, 1x1 strides, border mode valid",row:31,col:0},{name:"bn2c_branch2c",className:"BatchNormalization",details:"channel axis features",row:32,col:0},{name:"merge_3",className:"Merge",details:"sum",row:33,col:1},{name:"activation_10",className:"Activation",details:"ReLU",row:34,col:1},{name:"res3a_branch2a",className:"Convolution2D",details:"128 1x1 filters, 2x2 strides, border mode valid",row:35,col:0},{name:"bn3a_branch2a",className:"BatchNormalization",details:"channel axis features",row:36,col:0},{name:"activation_11",className:"Activation",details:"ReLU",row:37,col:0},{name:"res3a_branch2b",className:"Convolution2D",details:"128 3x3 filters, 1x1 strides, border mode same",row:38,col:0},{name:"bn3a_branch2b",className:"BatchNormalization",details:"channel axis features",row:39,col:0},{name:"activation_12",className:"Activation",details:"ReLU",row:40,col:0},{name:"res3a_branch2c",className:"Convolution2D",details:"512 1x1 filters, 1x1 strides, border mode valid",row:41,col:0},{name:"res3a_branch1",className:"Convolution2D",details:"512 1x1 filters, 1x1 strides, border mode valid",row:35,col:1},{name:"bn3a_branch2c",className:"BatchNormalization",details:"channel axis features",row:42,col:0},{name:"bn3a_branch1",className:"BatchNormalization",details:"channel axis features",row:36,col:1},{name:"merge_4",className:"Merge",details:"sum",row:43,col:1},{name:"activation_13",className:"Activation",details:"ReLU",row:44,col:1},{name:"res3b_branch2a",className:"Convolution2D",details:"128 1x1 filters, 1x1 strides, border mode valid",row:45,col:0},{name:"bn3b_branch2a",className:"BatchNormalization",details:"channel axis features",row:46,col:0},{name:"activation_14",className:"Activation",details:"ReLU",row:47,col:0},{name:"res3b_branch2b",className:"Convolution2D",details:"128 3x3 filters, 1x1 strides, border mode same",row:48,col:0},{name:"bn3b_branch2b",className:"BatchNormalization",details:"channel axis features",row:49,col:0},{name:"activation_15",className:"Activation",details:"ReLU",row:50,col:0},{name:"res3b_branch2c",className:"Convolution2D",details:"512 1x1 filters, 1x1 strides, border mode valid",row:51,col:0},{name:"bn3b_branch2c",className:"BatchNormalization",details:"channel axis features",row:52,col:0},{name:"merge_5",className:"Merge",details:"sum",row:53,col:1},{name:"activation_16",className:"Activation",details:"ReLU",row:54,col:1},{name:"res3c_branch2a",className:"Convolution2D",details:"128 1x1 filters, 1x1 strides, border mode valid",row:55,col:0},{name:"bn3c_branch2a",className:"BatchNormalization",details:"channel axis features",row:56,col:0},{name:"activation_17",className:"Activation",details:"ReLU",row:57,col:0},{name:"res3c_branch2b",className:"Convolution2D",details:"128 3x3 filters, 1x1 strides, border mode same",row:58,col:0},{name:"bn3c_branch2b",className:"BatchNormalization",details:"channel axis features",row:59,col:0},{name:"activation_18",className:"Activation",details:"ReLU",row:60,col:0},{name:"res3c_branch2c",className:"Convolution2D",details:"512 1x1 filters, 1x1 strides, border mode valid",row:61,col:0},{name:"bn3c_branch2c",className:"BatchNormalization",details:"channel axis features",row:62,col:0},{name:"merge_6",className:"Merge",details:"sum",row:63,col:1},{name:"activation_19",className:"Activation",details:"ReLU",row:64,col:1},{name:"res3d_branch2a",className:"Convolution2D",details:"128 1x1 filters, 1x1 strides, border mode valid",row:65,col:0},{name:"bn3d_branch2a",className:"BatchNormalization",details:"channel axis features",row:66,col:0},{name:"activation_20",className:"Activation",details:"ReLU",row:67,col:0},{name:"res3d_branch2b",className:"Convolution2D",details:"128 3x3 filters, 1x1 strides, border mode same",row:68,col:0},{name:"bn3d_branch2b",className:"BatchNormalization",details:"channel axis features",row:69,col:0},{name:"activation_21",className:"Activation",details:"ReLU",row:70,col:0},{name:"res3d_branch2c",className:"Convolution2D",details:"512 1x1 filters, 1x1 strides, border mode valid",row:71,col:0},{name:"bn3d_branch2c",className:"BatchNormalization",details:"channel axis features",row:72,col:0},{name:"merge_7",className:"Merge",details:"sum",row:73,col:1},{name:"activation_22",className:"Activation",details:"ReLU",row:74,col:1},{name:"res4a_branch2a",className:"Convolution2D",details:"256 1x1 filters, 2x2 strides, border mode valid",row:75,col:0},{name:"bn4a_branch2a",className:"BatchNormalization",details:"channel axis features",row:76,col:0},{name:"activation_23",className:"Activation",details:"ReLU",row:77,col:0},{name:"res4a_branch2b",className:"Convolution2D",details:"256 3x3 filters, 1x1 strides, border mode same",row:78,col:0},{name:"bn4a_branch2b",className:"BatchNormalization",details:"channel axis features",row:79,col:0},{name:"activation_24",className:"Activation",details:"ReLU",row:80,col:0},{name:"res4a_branch2c",className:"Convolution2D",details:"1024 1x1 filters, 1x1 strides, border mode valid",row:81,col:0},{name:"res4a_branch1",className:"Convolution2D",details:"1024 1x1 filters, 2x2 strides, border mode valid",row:75,col:1},{name:"bn4a_branch2c",className:"BatchNormalization",details:"channel axis features",row:82,col:0},{name:"bn4a_branch1",className:"BatchNormalization",details:"channel axis features",row:76,col:1},{name:"merge_8",className:"Merge",details:"sum",row:83,col:1},{name:"activation_25",className:"Activation",details:"ReLU",row:84,col:1},{name:"res4b_branch2a",className:"Convolution2D",details:"256 1x1 filters, 1x1 strides, border mode valid",row:85,col:0},{name:"bn4b_branch2a",className:"BatchNormalization",details:"channel axis features",row:86,col:0},{name:"activation_26",className:"Activation",details:"ReLU",row:87,col:0},{name:"res4b_branch2b",className:"Convolution2D",details:"256 3x3 filters, 1x1 strides, border mode same",row:88,col:0},{name:"bn4b_branch2b",className:"BatchNormalization",details:"channel axis features",row:89,col:0},{name:"activation_27",className:"Activation",details:"ReLU",row:90,col:0},{name:"res4b_branch2c",className:"Convolution2D",details:"1024 1x1 filters, 1x1 strides, border mode valid",row:91,col:0},{name:"bn4b_branch2c",className:"BatchNormalization",details:"channel axis features",row:92,col:0},{name:"merge_9",className:"Merge",details:"sum",row:93,col:1},{name:"activation_28",className:"Activation",details:"ReLU",row:94,col:1},{name:"res4c_branch2a",className:"Convolution2D",details:"256 1x1 filters, 1x1 strides, border mode valid",row:95,col:0},{name:"bn4c_branch2a",className:"BatchNormalization",details:"channel axis features",row:96,col:0},{name:"activation_29",className:"Activation",details:"ReLU",row:97,col:0},{name:"res4c_branch2b",className:"Convolution2D",details:"256 3x3 filters, 1x1 strides, border mode same",row:98,col:0},{name:"bn4c_branch2b",className:"BatchNormalization",details:"channel axis features",row:99,col:0},{name:"activation_30",className:"Activation",details:"ReLU",row:100,col:0},{name:"res4c_branch2c",className:"Convolution2D",details:"1024 1x1 filters, 1x1 strides, border mode valid",row:101,col:0},{name:"bn4c_branch2c",className:"BatchNormalization",details:"channel axis features",row:102,col:0},{name:"merge_10",className:"Merge",details:"sum",row:103,col:1},{name:"activation_31",className:"Activation",details:"ReLU",row:104,col:1},{name:"res4d_branch2a",className:"Convolution2D",details:"256 1x1 filters, 1x1 strides, border mode valid",row:105,col:0},{name:"bn4d_branch2a",className:"BatchNormalization",details:"channel axis features",row:106,col:0},{name:"activation_32",className:"Activation",details:"ReLU",row:107,col:0},{name:"res4d_branch2b",className:"Convolution2D",details:"256 3x3 filters, 1x1 strides, border mode same",row:108,col:0},{name:"bn4d_branch2b",className:"BatchNormalization",details:"channel axis features",row:109,col:0},{name:"activation_33",className:"Activation",details:"ReLU",row:110,col:0},{name:"res4d_branch2c",className:"Convolution2D",details:"1024 1x1 filters, 1x1 strides, border mode valid",row:111,col:0},{name:"bn4d_branch2c",className:"BatchNormalization",details:"channel axis features",row:112,col:0},{name:"merge_11",className:"Merge",details:"sum",row:113,col:1},{name:"activation_34",className:"Activation",details:"ReLU",row:114,col:1},{name:"res4e_branch2a",className:"Convolution2D",details:"256 1x1 filters, 1x1 strides, border mode valid",row:115,col:0},{name:"bn4e_branch2a",className:"BatchNormalization",details:"channel axis features",row:116,col:0},{name:"activation_35",className:"Activation",details:"ReLU",row:117,col:0},{name:"res4e_branch2b",className:"Convolution2D",details:"256 3x3 filters, 1x1 strides, border mode same",row:118,col:0},{name:"bn4e_branch2b",className:"BatchNormalization",details:"channel axis features",row:119,col:0},{name:"activation_36",className:"Activation",details:"ReLU",row:120,col:0},{name:"res4e_branch2c",className:"Convolution2D",details:"1024 1x1 filters, 1x1 strides, border mode valid",row:121,col:0},{name:"bn4e_branch2c",className:"BatchNormalization",details:"channel axis features",row:122,col:0},{name:"merge_12",className:"Merge",details:"sum",row:123,col:1},{name:"activation_37",className:"Activation",details:"ReLU",row:124,col:1},{name:"res4f_branch2a",className:"Convolution2D",details:"256 1x1 filters, 1x1 strides, border mode valid",row:125,col:0},{name:"bn4f_branch2a",className:"BatchNormalization",details:"channel axis features",row:126,col:0},{name:"activation_38",className:"Activation",details:"ReLU",row:127,col:0},{name:"res4f_branch2b",className:"Convolution2D",details:"256 3x3 filters, 1x1 strides, border mode same",row:128,col:0},{name:"bn4f_branch2b",className:"BatchNormalization",details:"channel axis features",row:129,col:0},{name:"activation_39",className:"Activation",details:"ReLU",row:130,col:0},{name:"res4f_branch2c",className:"Convolution2D",details:"1024 1x1 filters, 1x1 strides, border mode valid",row:131,col:0},{name:"bn4f_branch2c",className:"BatchNormalization",details:"channel axis features",row:132,col:0},{name:"merge_13",className:"Merge",details:"sum",row:133,col:1},{name:"activation_40",className:"Activation",details:"ReLU",row:134,col:1},{name:"res5a_branch2a",className:"Convolution2D",details:"512 1x1 filters, 2x2 strides, border mode valid",row:135,col:0},{name:"bn5a_branch2a",className:"BatchNormalization",details:"channel axis features",row:136,col:0},{name:"activation_41",className:"Activation",details:"ReLU",row:137,col:0},{name:"res5a_branch2b",className:"Convolution2D",details:"512 3x3 filters, 1x1 strides, border mode same",row:138,col:0},{name:"bn5a_branch2b",className:"BatchNormalization",details:"channel axis features",row:139,col:0},{name:"activation_42",className:"Activation",details:"ReLU",row:140,col:0},{name:"res5a_branch2c",className:"Convolution2D",details:"2048 1x1 filters, 1x1 strides, border mode valid",row:141,col:0},{name:"res5a_branch1",className:"Convolution2D",details:"2048 1x1 filters, 2x2 strides, border mode valid",row:135,col:1},{name:"bn5a_branch2c",className:"BatchNormalization",details:"channel axis features",row:142,col:0},{name:"bn5a_branch1",className:"BatchNormalization",details:"channel axis features",row:136,col:1},{name:"merge_14",className:"Merge",details:"sum",row:143,col:1},{name:"activation_43",className:"Activation",details:"ReLU",row:144,col:1},{name:"res5b_branch2a",className:"Convolution2D",details:"512 1x1 filters, 1x1 strides, border mode valid",row:145,col:0},{name:"bn5b_branch2a",className:"BatchNormalization",details:"channel axis features",row:146,col:0},{name:"activation_44",className:"Activation",details:"ReLU",row:147,col:0},{name:"res5b_branch2b",className:"Convolution2D",details:"512 3x3 filters, 1x1 strides, border mode same",row:148,col:0},{name:"bn5b_branch2b",className:"BatchNormalization",details:"channel axis features",row:149,col:0},{name:"activation_45",className:"Activation",details:"ReLU",row:150,col:0},{name:"res5b_branch2c",className:"Convolution2D",details:"2048 1x1 filters, 1x1 strides, border mode valid",row:151,col:0},{name:"bn5b_branch2c",className:"BatchNormalization",details:"channel axis features",row:152,col:0},{name:"merge_15",className:"Merge",details:"sum",row:153,col:1},{name:"activation_46",className:"Activation",details:"ReLU",row:154,col:1},{name:"res5c_branch2a",className:"Convolution2D",details:"512 1x1 filters, 1x1 strides, border mode valid",row:155,col:0},{name:"bn5c_branch2a",className:"BatchNormalization",details:"channel axis features",row:156,col:0},{name:"activation_47",className:"Activation",details:"ReLU",row:157,col:0},{name:"res5c_branch2b",className:"Convolution2D",details:"512 3x3 filters, 1x1 strides, border mode same",row:158,col:0},{name:"bn5c_branch2b",className:"BatchNormalization",details:"channel axis features",row:159,col:0},{name:"activation_48",className:"Activation",details:"ReLU",row:160,col:0},{name:"res5c_branch2c",className:"Convolution2D",details:"2048 1x1 filters, 1x1 strides, border mode valid",row:161,col:0},{name:"bn5c_branch2c",className:"BatchNormalization",details:"channel axis features",row:162,col:0},{name:"merge_16",className:"Merge",details:"sum",row:163,col:1},{name:"activation_49",className:"Activation",details:"ReLU",row:164,col:1},{name:"avg_pool",className:"AveragePooling2D",details:"7x7 pool size, 7x7 strides, border mode valid",row:165,col:1},{name:"flatten_1",className:"Flatten",details:"",row:166,col:1},{name:"fc1000",className:"Dense",details:"output dimensions 1000, softmax activation",row:167,col:1}],n.ARCHITECTURE_CONNECTIONS=[{from:"res2a_branch1",to:"fc1000"},{from:"zeropadding2d_1",to:"bn2a_branch2c"},{from:"res2b_branch2a",to:"bn2b_branch2c"},{from:"res2c_branch2a",to:"bn2c_branch2c"},{from:"res3a_branch2a",to:"bn3a_branch2c"},{from:"res3b_branch2a",to:"bn3b_branch2c"},{from:"res3c_branch2a",to:"bn3c_branch2c"},{from:"res3d_branch2a",to:"bn3d_branch2c"},{from:"res4a_branch2a",to:"bn4a_branch2c"},{from:"res4b_branch2a",to:"bn4b_branch2c"},{from:"res4c_branch2a",to:"bn4c_branch2c"},{from:"res4d_branch2a",to:"bn4d_branch2c"},{from:"res4e_branch2a",to:"bn4e_branch2c"},{from:"res4f_branch2a",to:"bn4f_branch2c"},{from:"res5a_branch2a",to:"bn5a_branch2c"},{from:"res5b_branch2a",to:"bn5b_branch2c"},{from:"res5c_branch2a",to:"bn5c_branch2c"},{from:"maxpooling2d_1",to:"res2a_branch1",corner:"top-right"},{from:"activation_4",to:"res2b_branch2a",corner:"top-left"},{from:"activation_7",to:"res2c_branch2a",corner:"top-left"},{from:"activation_10",to:"res3a_branch2a",corner:"top-left"},{from:"activation_13",to:"res3b_branch2a",corner:"top-left"},{from:"activation_16",to:"res3c_branch2a",corner:"top-left"},{from:"activation_19",to:"res3d_branch2a",corner:"top-left"},{from:"activation_22",to:"res4a_branch2a",corner:"top-left"},{from:"activation_25",to:"res4b_branch2a",corner:"top-left"},{from:"activation_28",to:"res4c_branch2a",corner:"top-left"},{from:"activation_31",to:"res4d_branch2a",corner:"top-left"},{from:"activation_34",to:"res4e_branch2a",corner:"top-left"},{from:"activation_37",to:"res4f_branch2a",corner:"top-left"},{from:"activation_40",to:"res5a_branch2a",corner:"top-left"},{from:"activation_43",to:"res5b_branch2a",corner:"top-left"},{from:"activation_46",to:"res5c_branch2a",corner:"top-left"},{from:"bn2a_branch2c",to:"merge_1",corner:"bottom-left"},{from:"bn2b_branch2c",to:"merge_2",corner:"bottom-left"},{from:"bn2c_branch2c",to:"merge_3",corner:"bottom-left"},{from:"bn3a_branch2c",to:"merge_4",corner:"bottom-left"},{from:"bn3b_branch2c",to:"merge_5",corner:"bottom-left"},{from:"bn3c_branch2c",to:"merge_6",corner:"bottom-left"},{from:"bn3d_branch2c",to:"merge_7",corner:"bottom-left"},{from:"bn4a_branch2c",to:"merge_8",corner:"bottom-left"},{from:"bn4b_branch2c",to:"merge_9",corner:"bottom-left"},{from:"bn4c_branch2c",to:"merge_10",corner:"bottom-left"},{from:"bn4d_branch2c",to:"merge_11",corner:"bottom-left"},{from:"bn4e_branch2c",to:"merge_12",corner:"bottom-left"},{from:"bn4f_branch2c",to:"merge_13",corner:"bottom-left"},{from:"bn5a_branch2c",to:"merge_14",corner:"bottom-left"},{from:"bn5b_branch2c",to:"merge_15",corner:"bottom-left"},{from:"bn5c_branch2c",to:"merge_16",corner:"bottom-left"}]},function(e,n,t){"use strict";function a(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.ResNet50=void 0,t(237);var r=t(12),i=o(r),s=t(21),l=o(s),c=t(204),u=o(c),d=t(7),m=a(d),p=t(22),f=t(89),h={model:"demos/data/resnet50/resnet50.json",weights:"https://transcranial.github.io/keras-js-demos-data/resnet50/resnet50_weights.buf",metadata:"demos/data/resnet50/resnet50_metadata.json"},b={filepaths:h};n.ResNet50=Vue.extend({props:["hasWebgl"],template:t(228),data:function(){return{showInfoPanel:!0,useGpu:this.hasWebgl,model:new KerasJS.Model(Object.assign({gpu:this.hasWebgl,layerCallPauses:!0},b)),modelLoading:!0,modelRunning:!1,imageURLInput:null,imageURLSelect:null,imageURLSelectList:p.IMAGE_URLS,imageLoading:!1,imageLoadingError:!1,output:null,architectureDiagram:f.ARCHITECTURE_DIAGRAM,architectureConnections:f.ARCHITECTURE_CONNECTIONS,architectureDiagramPaths:[],showComputationFlow:!0}},computed:{loadingProgress:function(){return this.model.getLoadingProgress()},architectureDiagramRows:function(){for(var e=[],n=0;n<168;n++){for(var t=[],a=0;a<2;a++)t.push((0,u.default)(this.architectureDiagram,{row:n,col:a}));e.push(t)}return e},layersWithResults:function(){return this.model.layersWithResults},outputClasses:function(){if(!this.output){for(var e=[],n=0;n<5;n++)e.push({name:"-",probability:0});return e}return m.imagenetClassesTopK(this.output,5)}},ready:function(){var e=this;this.model.ready().then(function(){e.modelLoading=!1,e.architectureDiagramPaths=[],setTimeout(function(){e.architectureConnections.forEach(function(n){var t=document.getElementsByClassName("architecture-container")[0],a=document.getElementById(n.from),o=document.getElementById(n.to),r=t.getBoundingClientRect(),i=a.getBoundingClientRect(),s=o.getBoundingClientRect(),l=r.left,c=r.top,u=i.left+i.width/2-l,d=i.top+i.height/2-c,m=s.left+s.width/2-l,p=s.top+s.height/2-c,f="M"+u+","+d+" L"+m+","+p;"top-right"===n.corner?f="M"+u+","+d+" L"+(m-10)+","+d+" Q"+m+","+d+" "+m+","+(d+10)+" L"+m+","+p:"bottom-left"===n.corner?f="M"+u+","+d+" L"+u+","+(p-10)+" Q"+u+","+p+" "+(u+10)+","+p+" L"+m+","+p:"top-left"===n.corner&&(f="M"+u+","+d+" L"+(m+10)+","+d+" Q"+m+","+d+" "+m+","+(d+10)+" L"+m+","+p),e.architectureDiagramPaths.push(f)})},1e3)})},methods:{closeInfoPanel:function(){this.showInfoPanel=!1},toggleGpu:function(){this.model.toggleGpu(!this.useGpu)},toggleComputationFlow:function(){this.model.layerCallPauses=!this.showComputationFlow},imageURLInputChanged:function(e){this.imageURLSelect=null,this.loadImageToCanvas(this.imageURLInput)},imageURLSelectChanged:function(e){this.imageURLInput=this.imageURLSelect,this.loadImageToCanvas(this.imageURLSelect)},loadImageToCanvas:function(e){var n=this;return e?(this.imageLoading=!0,void loadImage(e,function(e){if("error"===e.type)n.imageLoadingError=!0,n.imageLoading=!1;else{var t=document.getElementById("input-canvas").getContext("2d");t.drawImage(e,0,0),n.imageLoadingError=!1,n.imageLoading=!1,n.modelRunning=!0,n.$nextTick(function(){var e=this;setTimeout(function(){e.runModel()},200)})}},{maxWidth:224,maxHeight:224,cover:!0,crop:!0,canvas:!0,crossOrigin:"Anonymous"})):void this.clearAll()},runModel:function(){var e=this,n=document.getElementById("input-canvas").getContext("2d"),t=n.getImageData(0,0,n.canvas.width,n.canvas.height),a=t.data,o=t.width,r=t.height,s=(0,i.default)(new Float32Array(a),[o,r,4]),c=(0,i.default)(new Float32Array(o*r*3),[o,r,3]);l.default.subseq(s.pick(null,null,2),103.939),l.default.subseq(s.pick(null,null,1),116.779),l.default.subseq(s.pick(null,null,0),123.68),l.default.assign(c.pick(null,null,0),s.pick(null,null,2)),l.default.assign(c.pick(null,null,1),s.pick(null,null,1)),l.default.assign(c.pick(null,null,2),s.pick(null,null,0));var u={input_1:c.data};this.model.predict(u).then(function(n){e.output=n.fc1000,e.modelRunning=!1})},clearAll:function(){this.modelRunning=!1,this.imageURLInput=null,this.imageURLSelect=null,this.imageLoading=!1,this.imageLoadingError=!1,this.output=null,this.model.layersWithResults=[];var e=document.getElementById("input-canvas").getContext("2d");e.clearRect(0,0,e.canvas.width,e.canvas.height)}}})},function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.imagenetClasses={0:["n01440764","tench"],1:["n01443537","goldfish"],2:["n01484850","great_white_shark"],3:["n01491361","tiger_shark"],4:["n01494475","hammerhead"],5:["n01496331","electric_ray"],6:["n01498041","stingray"],7:["n01514668","cock"],8:["n01514859","hen"],9:["n01518878","ostrich"],10:["n01530575","brambling"],11:["n01531178","goldfinch"],12:["n01532829","house_finch"],13:["n01534433","junco"],14:["n01537544","indigo_bunting"],15:["n01558993","robin"],16:["n01560419","bulbul"],17:["n01580077","jay"],18:["n01582220","magpie"],19:["n01592084","chickadee"],20:["n01601694","water_ouzel"],21:["n01608432","kite"],22:["n01614925","bald_eagle"],23:["n01616318","vulture"],24:["n01622779","great_grey_owl"],25:["n01629819","European_fire_salamander"],26:["n01630670","common_newt"],27:["n01631663","eft"],28:["n01632458","spotted_salamander"],29:["n01632777","axolotl"],30:["n01641577","bullfrog"],31:["n01644373","tree_frog"],32:["n01644900","tailed_frog"],33:["n01664065","loggerhead"],34:["n01665541","leatherback_turtle"],35:["n01667114","mud_turtle"],36:["n01667778","terrapin"],37:["n01669191","box_turtle"],38:["n01675722","banded_gecko"],39:["n01677366","common_iguana"],40:["n01682714","American_chameleon"],41:["n01685808","whiptail"],42:["n01687978","agama"],43:["n01688243","frilled_lizard"],44:["n01689811","alligator_lizard"],45:["n01692333","Gila_monster"],46:["n01693334","green_lizard"],47:["n01694178","African_chameleon"],48:["n01695060","Komodo_dragon"],49:["n01697457","African_crocodile"],50:["n01698640","American_alligator"],51:["n01704323","triceratops"],52:["n01728572","thunder_snake"],53:["n01728920","ringneck_snake"],54:["n01729322","hognose_snake"],55:["n01729977","green_snake"],56:["n01734418","king_snake"],57:["n01735189","garter_snake"],58:["n01737021","water_snake"],59:["n01739381","vine_snake"],60:["n01740131","night_snake"],61:["n01742172","boa_constrictor"],62:["n01744401","rock_python"],63:["n01748264","Indian_cobra"],64:["n01749939","green_mamba"],65:["n01751748","sea_snake"],66:["n01753488","horned_viper"],67:["n01755581","diamondback"],68:["n01756291","sidewinder"],69:["n01768244","trilobite"],70:["n01770081","harvestman"],71:["n01770393","scorpion"],72:["n01773157","black_and_gold_garden_spider"],73:["n01773549","barn_spider"],74:["n01773797","garden_spider"],75:["n01774384","black_widow"],76:["n01774750","tarantula"],77:["n01775062","wolf_spider"],78:["n01776313","tick"],79:["n01784675","centipede"],80:["n01795545","black_grouse"],81:["n01796340","ptarmigan"],82:["n01797886","ruffed_grouse"],83:["n01798484","prairie_chicken"],84:["n01806143","peacock"],85:["n01806567","quail"],86:["n01807496","partridge"],87:["n01817953","African_grey"],88:["n01818515","macaw"],89:["n01819313","sulphur-crested_cockatoo"],90:["n01820546","lorikeet"],91:["n01824575","coucal"],92:["n01828970","bee_eater"],93:["n01829413","hornbill"],94:["n01833805","hummingbird"],95:["n01843065","jacamar"],96:["n01843383","toucan"],97:["n01847000","drake"],98:["n01855032","red-breasted_merganser"],99:["n01855672","goose"],100:["n01860187","black_swan"],101:["n01871265","tusker"],102:["n01872401","echidna"],103:["n01873310","platypus"],104:["n01877812","wallaby"],105:["n01882714","koala"],106:["n01883070","wombat"],107:["n01910747","jellyfish"],108:["n01914609","sea_anemone"],109:["n01917289","brain_coral"],110:["n01924916","flatworm"],111:["n01930112","nematode"],112:["n01943899","conch"],113:["n01944390","snail"],114:["n01945685","slug"],115:["n01950731","sea_slug"],116:["n01955084","chiton"],117:["n01968897","chambered_nautilus"],118:["n01978287","Dungeness_crab"],119:["n01978455","rock_crab"],120:["n01980166","fiddler_crab"],121:["n01981276","king_crab"],
|
|
122:["n01983481","American_lobster"],123:["n01984695","spiny_lobster"],124:["n01985128","crayfish"],125:["n01986214","hermit_crab"],126:["n01990800","isopod"],127:["n02002556","white_stork"],128:["n02002724","black_stork"],129:["n02006656","spoonbill"],130:["n02007558","flamingo"],131:["n02009229","little_blue_heron"],132:["n02009912","American_egret"],133:["n02011460","bittern"],134:["n02012849","crane"],135:["n02013706","limpkin"],136:["n02017213","European_gallinule"],137:["n02018207","American_coot"],138:["n02018795","bustard"],139:["n02025239","ruddy_turnstone"],140:["n02027492","red-backed_sandpiper"],141:["n02028035","redshank"],142:["n02033041","dowitcher"],143:["n02037110","oystercatcher"],144:["n02051845","pelican"],145:["n02056570","king_penguin"],146:["n02058221","albatross"],147:["n02066245","grey_whale"],148:["n02071294","killer_whale"],149:["n02074367","dugong"],150:["n02077923","sea_lion"],151:["n02085620","Chihuahua"],152:["n02085782","Japanese_spaniel"],153:["n02085936","Maltese_dog"],154:["n02086079","Pekinese"],155:["n02086240","Shih-Tzu"],156:["n02086646","Blenheim_spaniel"],157:["n02086910","papillon"],158:["n02087046","toy_terrier"],159:["n02087394","Rhodesian_ridgeback"],160:["n02088094","Afghan_hound"],161:["n02088238","basset"],162:["n02088364","beagle"],163:["n02088466","bloodhound"],164:["n02088632","bluetick"],165:["n02089078","black-and-tan_coonhound"],166:["n02089867","Walker_hound"],167:["n02089973","English_foxhound"],168:["n02090379","redbone"],169:["n02090622","borzoi"],170:["n02090721","Irish_wolfhound"],171:["n02091032","Italian_greyhound"],172:["n02091134","whippet"],173:["n02091244","Ibizan_hound"],174:["n02091467","Norwegian_elkhound"],175:["n02091635","otterhound"],176:["n02091831","Saluki"],177:["n02092002","Scottish_deerhound"],178:["n02092339","Weimaraner"],179:["n02093256","Staffordshire_bullterrier"],180:["n02093428","American_Staffordshire_terrier"],181:["n02093647","Bedlington_terrier"],182:["n02093754","Border_terrier"],183:["n02093859","Kerry_blue_terrier"],184:["n02093991","Irish_terrier"],185:["n02094114","Norfolk_terrier"],186:["n02094258","Norwich_terrier"],187:["n02094433","Yorkshire_terrier"],188:["n02095314","wire-haired_fox_terrier"],189:["n02095570","Lakeland_terrier"],190:["n02095889","Sealyham_terrier"],191:["n02096051","Airedale"],192:["n02096177","cairn"],193:["n02096294","Australian_terrier"],194:["n02096437","Dandie_Dinmont"],195:["n02096585","Boston_bull"],196:["n02097047","miniature_schnauzer"],197:["n02097130","giant_schnauzer"],198:["n02097209","standard_schnauzer"],199:["n02097298","Scotch_terrier"],200:["n02097474","Tibetan_terrier"],201:["n02097658","silky_terrier"],202:["n02098105","soft-coated_wheaten_terrier"],203:["n02098286","West_Highland_white_terrier"],204:["n02098413","Lhasa"],205:["n02099267","flat-coated_retriever"],206:["n02099429","curly-coated_retriever"],207:["n02099601","golden_retriever"],208:["n02099712","Labrador_retriever"],209:["n02099849","Chesapeake_Bay_retriever"],210:["n02100236","German_short-haired_pointer"],211:["n02100583","vizsla"],212:["n02100735","English_setter"],213:["n02100877","Irish_setter"],214:["n02101006","Gordon_setter"],215:["n02101388","Brittany_spaniel"],216:["n02101556","clumber"],217:["n02102040","English_springer"],218:["n02102177","Welsh_springer_spaniel"],219:["n02102318","cocker_spaniel"],220:["n02102480","Sussex_spaniel"],221:["n02102973","Irish_water_spaniel"],222:["n02104029","kuvasz"],223:["n02104365","schipperke"],224:["n02105056","groenendael"],225:["n02105162","malinois"],226:["n02105251","briard"],227:["n02105412","kelpie"],228:["n02105505","komondor"],229:["n02105641","Old_English_sheepdog"],230:["n02105855","Shetland_sheepdog"],231:["n02106030","collie"],232:["n02106166","Border_collie"],233:["n02106382","Bouvier_des_Flandres"],234:["n02106550","Rottweiler"],235:["n02106662","German_shepherd"],236:["n02107142","Doberman"],237:["n02107312","miniature_pinscher"],238:["n02107574","Greater_Swiss_Mountain_dog"],239:["n02107683","Bernese_mountain_dog"],240:["n02107908","Appenzeller"],241:["n02108000","EntleBucher"],242:["n02108089","boxer"],243:["n02108422","bull_mastiff"],244:["n02108551","Tibetan_mastiff"],245:["n02108915","French_bulldog"],246:["n02109047","Great_Dane"],247:["n02109525","Saint_Bernard"],248:["n02109961","Eskimo_dog"],249:["n02110063","malamute"],250:["n02110185","Siberian_husky"],251:["n02110341","dalmatian"],252:["n02110627","affenpinscher"],253:["n02110806","basenji"],254:["n02110958","pug"],255:["n02111129","Leonberg"],256:["n02111277","Newfoundland"],257:["n02111500","Great_Pyrenees"],258:["n02111889","Samoyed"],259:["n02112018","Pomeranian"],260:["n02112137","chow"],261:["n02112350","keeshond"],262:["n02112706","Brabancon_griffon"],263:["n02113023","Pembroke"],264:["n02113186","Cardigan"],265:["n02113624","toy_poodle"],266:["n02113712","miniature_poodle"],267:["n02113799","standard_poodle"],268:["n02113978","Mexican_hairless"],269:["n02114367","timber_wolf"],270:["n02114548","white_wolf"],271:["n02114712","red_wolf"],272:["n02114855","coyote"],273:["n02115641","dingo"],274:["n02115913","dhole"],275:["n02116738","African_hunting_dog"],276:["n02117135","hyena"],277:["n02119022","red_fox"],278:["n02119789","kit_fox"],279:["n02120079","Arctic_fox"],280:["n02120505","grey_fox"],281:["n02123045","tabby"],282:["n02123159","tiger_cat"],283:["n02123394","Persian_cat"],284:["n02123597","Siamese_cat"],285:["n02124075","Egyptian_cat"],286:["n02125311","cougar"],287:["n02127052","lynx"],288:["n02128385","leopard"],289:["n02128757","snow_leopard"],290:["n02128925","jaguar"],291:["n02129165","lion"],292:["n02129604","tiger"],293:["n02130308","cheetah"],294:["n02132136","brown_bear"],295:["n02133161","American_black_bear"],296:["n02134084","ice_bear"],297:["n02134418","sloth_bear"],298:["n02137549","mongoose"],299:["n02138441","meerkat"],300:["n02165105","tiger_beetle"],301:["n02165456","ladybug"],302:["n02167151","ground_beetle"],303:["n02168699","long-horned_beetle"],304:["n02169497","leaf_beetle"],305:["n02172182","dung_beetle"],306:["n02174001","rhinoceros_beetle"],307:["n02177972","weevil"],308:["n02190166","fly"],309:["n02206856","bee"],310:["n02219486","ant"],311:["n02226429","grasshopper"],312:["n02229544","cricket"],313:["n02231487","walking_stick"],314:["n02233338","cockroach"],315:["n02236044","mantis"],316:["n02256656","cicada"],317:["n02259212","leafhopper"],318:["n02264363","lacewing"],319:["n02268443","dragonfly"],320:["n02268853","damselfly"],321:["n02276258","admiral"],322:["n02277742","ringlet"],323:["n02279972","monarch"],324:["n02280649","cabbage_butterfly"],325:["n02281406","sulphur_butterfly"],326:["n02281787","lycaenid"],327:["n02317335","starfish"],328:["n02319095","sea_urchin"],329:["n02321529","sea_cucumber"],330:["n02325366","wood_rabbit"],331:["n02326432","hare"],332:["n02328150","Angora"],333:["n02342885","hamster"],334:["n02346627","porcupine"],335:["n02356798","fox_squirrel"],336:["n02361337","marmot"],337:["n02363005","beaver"],338:["n02364673","guinea_pig"],339:["n02389026","sorrel"],340:["n02391049","zebra"],341:["n02395406","hog"],342:["n02396427","wild_boar"],343:["n02397096","warthog"],344:["n02398521","hippopotamus"],345:["n02403003","ox"],346:["n02408429","water_buffalo"],347:["n02410509","bison"],348:["n02412080","ram"],349:["n02415577","bighorn"],350:["n02417914","ibex"],351:["n02422106","hartebeest"],352:["n02422699","impala"],353:["n02423022","gazelle"],354:["n02437312","Arabian_camel"],355:["n02437616","llama"],356:["n02441942","weasel"],357:["n02442845","mink"],358:["n02443114","polecat"],359:["n02443484","black-footed_ferret"],360:["n02444819","otter"],361:["n02445715","skunk"],362:["n02447366","badger"],363:["n02454379","armadillo"],364:["n02457408","three-toed_sloth"],365:["n02480495","orangutan"],366:["n02480855","gorilla"],367:["n02481823","chimpanzee"],368:["n02483362","gibbon"],369:["n02483708","siamang"],370:["n02484975","guenon"],371:["n02486261","patas"],372:["n02486410","baboon"],373:["n02487347","macaque"],374:["n02488291","langur"],375:["n02488702","colobus"],376:["n02489166","proboscis_monkey"],377:["n02490219","marmoset"],378:["n02492035","capuchin"],379:["n02492660","howler_monkey"],380:["n02493509","titi"],381:["n02493793","spider_monkey"],382:["n02494079","squirrel_monkey"],383:["n02497673","Madagascar_cat"],384:["n02500267","indri"],385:["n02504013","Indian_elephant"],386:["n02504458","African_elephant"],387:["n02509815","lesser_panda"],388:["n02510455","giant_panda"],389:["n02514041","barracouta"],390:["n02526121","eel"],391:["n02536864","coho"],392:["n02606052","rock_beauty"],393:["n02607072","anemone_fish"],394:["n02640242","sturgeon"],395:["n02641379","gar"],396:["n02643566","lionfish"],397:["n02655020","puffer"],398:["n02666196","abacus"],399:["n02667093","abaya"],400:["n02669723","academic_gown"],401:["n02672831","accordion"],402:["n02676566","acoustic_guitar"],403:["n02687172","aircraft_carrier"],404:["n02690373","airliner"],405:["n02692877","airship"],406:["n02699494","altar"],407:["n02701002","ambulance"],408:["n02704792","amphibian"],409:["n02708093","analog_clock"],410:["n02727426","apiary"],411:["n02730930","apron"],412:["n02747177","ashcan"],413:["n02749479","assault_rifle"],414:["n02769748","backpack"],415:["n02776631","bakery"],416:["n02777292","balance_beam"],417:["n02782093","balloon"],418:["n02783161","ballpoint"],419:["n02786058","Band_Aid"],420:["n02787622","banjo"],421:["n02788148","bannister"],422:["n02790996","barbell"],423:["n02791124","barber_chair"],424:["n02791270","barbershop"],425:["n02793495","barn"],426:["n02794156","barometer"],427:["n02795169","barrel"],428:["n02797295","barrow"],429:["n02799071","baseball"],430:["n02802426","basketball"],431:["n02804414","bassinet"],432:["n02804610","bassoon"],433:["n02807133","bathing_cap"],434:["n02808304","bath_towel"],435:["n02808440","bathtub"],436:["n02814533","beach_wagon"],437:["n02814860","beacon"],438:["n02815834","beaker"],439:["n02817516","bearskin"],440:["n02823428","beer_bottle"],441:["n02823750","beer_glass"],442:["n02825657","bell_cote"],443:["n02834397","bib"],444:["n02835271","bicycle-built-for-two"],445:["n02837789","bikini"],446:["n02840245","binder"],447:["n02841315","binoculars"],448:["n02843684","birdhouse"],449:["n02859443","boathouse"],450:["n02860847","bobsled"],451:["n02865351","bolo_tie"],452:["n02869837","bonnet"],453:["n02870880","bookcase"],454:["n02871525","bookshop"],455:["n02877765","bottlecap"],456:["n02879718","bow"],457:["n02883205","bow_tie"],458:["n02892201","brass"],459:["n02892767","brassiere"],460:["n02894605","breakwater"],461:["n02895154","breastplate"],462:["n02906734","broom"],463:["n02909870","bucket"],464:["n02910353","buckle"],465:["n02916936","bulletproof_vest"],466:["n02917067","bullet_train"],467:["n02927161","butcher_shop"],468:["n02930766","cab"],469:["n02939185","caldron"],470:["n02948072","candle"],471:["n02950826","cannon"],472:["n02951358","canoe"],473:["n02951585","can_opener"],474:["n02963159","cardigan"],475:["n02965783","car_mirror"],476:["n02966193","carousel"],477:["n02966687","carpenter's_kit"],478:["n02971356","carton"],479:["n02974003","car_wheel"],480:["n02977058","cash_machine"],481:["n02978881","cassette"],482:["n02979186","cassette_player"],483:["n02980441","castle"],484:["n02981792","catamaran"],485:["n02988304","CD_player"],486:["n02992211","cello"],487:["n02992529","cellular_telephone"],488:["n02999410","chain"],489:["n03000134","chainlink_fence"],490:["n03000247","chain_mail"],491:["n03000684","chain_saw"],492:["n03014705","chest"],493:["n03016953","chiffonier"],494:["n03017168","chime"],495:["n03018349","china_cabinet"],496:["n03026506","Christmas_stocking"],497:["n03028079","church"],498:["n03032252","cinema"],499:["n03041632","cleaver"],500:["n03042490","cliff_dwelling"],501:["n03045698","cloak"],502:["n03047690","clog"],503:["n03062245","cocktail_shaker"],504:["n03063599","coffee_mug"],505:["n03063689","coffeepot"],506:["n03065424","coil"],507:["n03075370","combination_lock"],508:["n03085013","computer_keyboard"],509:["n03089624","confectionery"],510:["n03095699","container_ship"],511:["n03100240","convertible"],512:["n03109150","corkscrew"],513:["n03110669","cornet"],514:["n03124043","cowboy_boot"],515:["n03124170","cowboy_hat"],516:["n03125729","cradle"],517:["n03126707","crane"],518:["n03127747","crash_helmet"],519:["n03127925","crate"],520:["n03131574","crib"],521:["n03133878","Crock_Pot"],522:["n03134739","croquet_ball"],523:["n03141823","crutch"],524:["n03146219","cuirass"],525:["n03160309","dam"],526:["n03179701","desk"],527:["n03180011","desktop_computer"],528:["n03187595","dial_telephone"],529:["n03188531","diaper"],530:["n03196217","digital_clock"],531:["n03197337","digital_watch"],532:["n03201208","dining_table"],533:["n03207743","dishrag"],534:["n03207941","dishwasher"],535:["n03208938","disk_brake"],536:["n03216828","dock"],537:["n03218198","dogsled"],538:["n03220513","dome"],539:["n03223299","doormat"],540:["n03240683","drilling_platform"],541:["n03249569","drum"],542:["n03250847","drumstick"],543:["n03255030","dumbbell"],544:["n03259280","Dutch_oven"],545:["n03271574","electric_fan"],546:["n03272010","electric_guitar"],547:["n03272562","electric_locomotive"],548:["n03290653","entertainment_center"],549:["n03291819","envelope"],550:["n03297495","espresso_maker"],551:["n03314780","face_powder"],552:["n03325584","feather_boa"],553:["n03337140","file"],554:["n03344393","fireboat"],555:["n03345487","fire_engine"],556:["n03347037","fire_screen"],557:["n03355925","flagpole"],558:["n03372029","flute"],559:["n03376595","folding_chair"],560:["n03379051","football_helmet"],561:["n03384352","forklift"],562:["n03388043","fountain"],563:["n03388183","fountain_pen"],564:["n03388549","four-poster"],565:["n03393912","freight_car"],566:["n03394916","French_horn"],567:["n03400231","frying_pan"],568:["n03404251","fur_coat"],569:["n03417042","garbage_truck"],570:["n03424325","gasmask"],571:["n03425413","gas_pump"],572:["n03443371","goblet"],573:["n03444034","go-kart"],574:["n03445777","golf_ball"],575:["n03445924","golfcart"],576:["n03447447","gondola"],577:["n03447721","gong"],578:["n03450230","gown"],579:["n03452741","grand_piano"],580:["n03457902","greenhouse"],581:["n03459775","grille"],582:["n03461385","grocery_store"],583:["n03467068","guillotine"],584:["n03476684","hair_slide"],585:["n03476991","hair_spray"],586:["n03478589","half_track"],587:["n03481172","hammer"],588:["n03482405","hamper"],589:["n03483316","hand_blower"],590:["n03485407","hand-held_computer"],591:["n03485794","handkerchief"],592:["n03492542","hard_disc"],593:["n03494278","harmonica"],594:["n03495258","harp"],595:["n03496892","harvester"],596:["n03498962","hatchet"],597:["n03527444","holster"],598:["n03529860","home_theater"],599:["n03530642","honeycomb"],600:["n03532672","hook"],601:["n03534580","hoopskirt"],602:["n03535780","horizontal_bar"],603:["n03538406","horse_cart"],604:["n03544143","hourglass"],605:["n03584254","iPod"],606:["n03584829","iron"],607:["n03590841","jack-o'-lantern"],608:["n03594734","jean"],609:["n03594945","jeep"],610:["n03595614","jersey"],611:["n03598930","jigsaw_puzzle"],612:["n03599486","jinrikisha"],613:["n03602883","joystick"],614:["n03617480","kimono"],615:["n03623198","knee_pad"],616:["n03627232","knot"],617:["n03630383","lab_coat"],618:["n03633091","ladle"],619:["n03637318","lampshade"],620:["n03642806","laptop"],621:["n03649909","lawn_mower"],622:["n03657121","lens_cap"],623:["n03658185","letter_opener"],624:["n03661043","library"],625:["n03662601","lifeboat"],626:["n03666591","lighter"],627:["n03670208","limousine"],628:["n03673027","liner"],629:["n03676483","lipstick"],630:["n03680355","Loafer"],631:["n03690938","lotion"],632:["n03691459","loudspeaker"],633:["n03692522","loupe"],634:["n03697007","lumbermill"],635:["n03706229","magnetic_compass"],636:["n03709823","mailbag"],637:["n03710193","mailbox"],638:["n03710637","maillot"],639:["n03710721","maillot"],640:["n03717622","manhole_cover"],641:["n03720891","maraca"],642:["n03721384","marimba"],643:["n03724870","mask"],644:["n03729826","matchstick"],645:["n03733131","maypole"],646:["n03733281","maze"],647:["n03733805","measuring_cup"],648:["n03742115","medicine_chest"],649:["n03743016","megalith"],650:["n03759954","microphone"],651:["n03761084","microwave"],652:["n03763968","military_uniform"],653:["n03764736","milk_can"],654:["n03769881","minibus"],655:["n03770439","miniskirt"],656:["n03770679","minivan"],657:["n03773504","missile"],658:["n03775071","mitten"],659:["n03775546","mixing_bowl"],660:["n03776460","mobile_home"],661:["n03777568","Model_T"],662:["n03777754","modem"],663:["n03781244","monastery"],664:["n03782006","monitor"],665:["n03785016","moped"],666:["n03786901","mortar"],667:["n03787032","mortarboard"],668:["n03788195","mosque"],669:["n03788365","mosquito_net"],670:["n03791053","motor_scooter"],671:["n03792782","mountain_bike"],672:["n03792972","mountain_tent"],673:["n03793489","mouse"],674:["n03794056","mousetrap"],675:["n03796401","moving_van"],676:["n03803284","muzzle"],677:["n03804744","nail"],678:["n03814639","neck_brace"],679:["n03814906","necklace"],680:["n03825788","nipple"],681:["n03832673","notebook"],682:["n03837869","obelisk"],683:["n03838899","oboe"],684:["n03840681","ocarina"],685:["n03841143","odometer"],686:["n03843555","oil_filter"],687:["n03854065","organ"],688:["n03857828","oscilloscope"],689:["n03866082","overskirt"],690:["n03868242","oxcart"],691:["n03868863","oxygen_mask"],692:["n03871628","packet"],693:["n03873416","paddle"],694:["n03874293","paddlewheel"],695:["n03874599","padlock"],696:["n03876231","paintbrush"],697:["n03877472","pajama"],698:["n03877845","palace"],699:["n03884397","panpipe"],700:["n03887697","paper_towel"],701:["n03888257","parachute"],702:["n03888605","parallel_bars"],703:["n03891251","park_bench"],704:["n03891332","parking_meter"],705:["n03895866","passenger_car"],706:["n03899768","patio"],707:["n03902125","pay-phone"],708:["n03903868","pedestal"],709:["n03908618","pencil_box"],710:["n03908714","pencil_sharpener"],711:["n03916031","perfume"],712:["n03920288","Petri_dish"],713:["n03924679","photocopier"],714:["n03929660","pick"],715:["n03929855","pickelhaube"],716:["n03930313","picket_fence"],717:["n03930630","pickup"],718:["n03933933","pier"],719:["n03935335","piggy_bank"],720:["n03937543","pill_bottle"],721:["n03938244","pillow"],722:["n03942813","ping-pong_ball"],723:["n03944341","pinwheel"],724:["n03947888","pirate"],725:["n03950228","pitcher"],726:["n03954731","plane"],727:["n03956157","planetarium"],728:["n03958227","plastic_bag"],729:["n03961711","plate_rack"],730:["n03967562","plow"],731:["n03970156","plunger"],732:["n03976467","Polaroid_camera"],733:["n03976657","pole"],734:["n03977966","police_van"],735:["n03980874","poncho"],736:["n03982430","pool_table"],737:["n03983396","pop_bottle"],738:["n03991062","pot"],739:["n03992509","potter's_wheel"],740:["n03995372","power_drill"],741:["n03998194","prayer_rug"],742:["n04004767","printer"],743:["n04005630","prison"],744:["n04008634","projectile"],745:["n04009552","projector"],746:["n04019541","puck"],747:["n04023962","punching_bag"],748:["n04026417","purse"],749:["n04033901","quill"],750:["n04033995","quilt"],751:["n04037443","racer"],752:["n04039381","racket"],753:["n04040759","radiator"],754:["n04041544","radio"],755:["n04044716","radio_telescope"],756:["n04049303","rain_barrel"],757:["n04065272","recreational_vehicle"],758:["n04067472","reel"],759:["n04069434","reflex_camera"],760:["n04070727","refrigerator"],761:["n04074963","remote_control"],762:["n04081281","restaurant"],763:["n04086273","revolver"],764:["n04090263","rifle"],765:["n04099969","rocking_chair"],766:["n04111531","rotisserie"],767:["n04116512","rubber_eraser"],768:["n04118538","rugby_ball"],769:["n04118776","rule"],770:["n04120489","running_shoe"],771:["n04125021","safe"],772:["n04127249","safety_pin"],773:["n04131690","saltshaker"],774:["n04133789","sandal"],775:["n04136333","sarong"],776:["n04141076","sax"],777:["n04141327","scabbard"],778:["n04141975","scale"],779:["n04146614","school_bus"],780:["n04147183","schooner"],781:["n04149813","scoreboard"],782:["n04152593","screen"],783:["n04153751","screw"],784:["n04154565","screwdriver"],785:["n04162706","seat_belt"],786:["n04179913","sewing_machine"],787:["n04192698","shield"],788:["n04200800","shoe_shop"],789:["n04201297","shoji"],790:["n04204238","shopping_basket"],791:["n04204347","shopping_cart"],792:["n04208210","shovel"],793:["n04209133","shower_cap"],794:["n04209239","shower_curtain"],795:["n04228054","ski"],796:["n04229816","ski_mask"],797:["n04235860","sleeping_bag"],798:["n04238763","slide_rule"],799:["n04239074","sliding_door"],800:["n04243546","slot"],801:["n04251144","snorkel"],802:["n04252077","snowmobile"],803:["n04252225","snowplow"],804:["n04254120","soap_dispenser"],805:["n04254680","soccer_ball"],806:["n04254777","sock"],807:["n04258138","solar_dish"],808:["n04259630","sombrero"],809:["n04263257","soup_bowl"],810:["n04264628","space_bar"],811:["n04265275","space_heater"],812:["n04266014","space_shuttle"],813:["n04270147","spatula"],814:["n04273569","speedboat"],815:["n04275548","spider_web"],816:["n04277352","spindle"],817:["n04285008","sports_car"],818:["n04286575","spotlight"],819:["n04296562","stage"],820:["n04310018","steam_locomotive"],821:["n04311004","steel_arch_bridge"],822:["n04311174","steel_drum"],823:["n04317175","stethoscope"],824:["n04325704","stole"],825:["n04326547","stone_wall"],826:["n04328186","stopwatch"],827:["n04330267","stove"],828:["n04332243","strainer"],829:["n04335435","streetcar"],830:["n04336792","stretcher"],831:["n04344873","studio_couch"],832:["n04346328","stupa"],833:["n04347754","submarine"],834:["n04350905","suit"],835:["n04355338","sundial"],836:["n04355933","sunglass"],837:["n04356056","sunglasses"],838:["n04357314","sunscreen"],839:["n04366367","suspension_bridge"],840:["n04367480","swab"],841:["n04370456","sweatshirt"],842:["n04371430","swimming_trunks"],843:["n04371774","swing"],844:["n04372370","switch"],845:["n04376876","syringe"],846:["n04380533","table_lamp"],847:["n04389033","tank"],848:["n04392985","tape_player"],849:["n04398044","teapot"],850:["n04399382","teddy"],851:["n04404412","television"],852:["n04409515","tennis_ball"],853:["n04417672","thatch"],854:["n04418357","theater_curtain"],855:["n04423845","thimble"],856:["n04428191","thresher"],857:["n04429376","throne"],858:["n04435653","tile_roof"],859:["n04442312","toaster"],860:["n04443257","tobacco_shop"],861:["n04447861","toilet_seat"],862:["n04456115","torch"],863:["n04458633","totem_pole"],864:["n04461696","tow_truck"],865:["n04462240","toyshop"],866:["n04465501","tractor"],867:["n04467665","trailer_truck"],868:["n04476259","tray"],869:["n04479046","trench_coat"],870:["n04482393","tricycle"],871:["n04483307","trimaran"],872:["n04485082","tripod"],873:["n04486054","triumphal_arch"],874:["n04487081","trolleybus"],875:["n04487394","trombone"],876:["n04493381","tub"],877:["n04501370","turnstile"],878:["n04505470","typewriter_keyboard"],879:["n04507155","umbrella"],880:["n04509417","unicycle"],881:["n04515003","upright"],882:["n04517823","vacuum"],883:["n04522168","vase"],884:["n04523525","vault"],885:["n04525038","velvet"],886:["n04525305","vending_machine"],887:["n04532106","vestment"],888:["n04532670","viaduct"],889:["n04536866","violin"],890:["n04540053","volleyball"],891:["n04542943","waffle_iron"],892:["n04548280","wall_clock"],893:["n04548362","wallet"],894:["n04550184","wardrobe"],895:["n04552348","warplane"],896:["n04553703","washbasin"],897:["n04554684","washer"],898:["n04557648","water_bottle"],899:["n04560804","water_jug"],900:["n04562935","water_tower"],901:["n04579145","whiskey_jug"],902:["n04579432","whistle"],903:["n04584207","wig"],904:["n04589890","window_screen"],905:["n04590129","window_shade"],906:["n04591157","Windsor_tie"],907:["n04591713","wine_bottle"],908:["n04592741","wing"],909:["n04596742","wok"],910:["n04597913","wooden_spoon"],911:["n04599235","wool"],912:["n04604644","worm_fence"],913:["n04606251","wreck"],914:["n04612504","yawl"],915:["n04613696","yurt"],916:["n06359193","web_site"],917:["n06596364","comic_book"],918:["n06785654","crossword_puzzle"],919:["n06794110","street_sign"],920:["n06874185","traffic_light"],921:["n07248320","book_jacket"],922:["n07565083","menu"],923:["n07579787","plate"],924:["n07583066","guacamole"],925:["n07584110","consomme"],926:["n07590611","hot_pot"],927:["n07613480","trifle"],928:["n07614500","ice_cream"],929:["n07615774","ice_lolly"],930:["n07684084","French_loaf"],931:["n07693725","bagel"],932:["n07695742","pretzel"],933:["n07697313","cheeseburger"],934:["n07697537","hotdog"],935:["n07711569","mashed_potato"],936:["n07714571","head_cabbage"],937:["n07714990","broccoli"],938:["n07715103","cauliflower"],939:["n07716358","zucchini"],940:["n07716906","spaghetti_squash"],941:["n07717410","acorn_squash"],942:["n07717556","butternut_squash"],943:["n07718472","cucumber"],944:["n07718747","artichoke"],945:["n07720875","bell_pepper"],946:["n07730033","cardoon"],947:["n07734744","mushroom"],948:["n07742313","Granny_Smith"],949:["n07745940","strawberry"],950:["n07747607","orange"],951:["n07749582","lemon"],952:["n07753113","fig"],953:["n07753275","pineapple"],954:["n07753592","banana"],955:["n07754684","jackfruit"],956:["n07760859","custard_apple"],957:["n07768694","pomegranate"],958:["n07802026","hay"],959:["n07831146","carbonara"],960:["n07836838","chocolate_sauce"],961:["n07860988","dough"],962:["n07871810","meat_loaf"],963:["n07873807","pizza"],964:["n07875152","potpie"],965:["n07880968","burrito"],966:["n07892512","red_wine"],967:["n07920052","espresso"],968:["n07930864","cup"],969:["n07932039","eggnog"],970:["n09193705","alp"],971:["n09229709","bubble"],972:["n09246464","cliff"],973:["n09256479","coral_reef"],974:["n09288635","geyser"],975:["n09332890","lakeside"],976:["n09399592","promontory"],977:["n09421951","sandbar"],978:["n09428293","seashore"],979:["n09468604","valley"],980:["n09472597","volcano"],981:["n09835506","ballplayer"],982:["n10148035","groom"],983:["n10565667","scuba_diver"],984:["n11879895","rapeseed"],985:["n11939491","daisy"],986:["n12057211","yellow_lady's_slipper"],987:["n12144580","corn"],988:["n12267677","acorn"],989:["n12620546","hip"],990:["n12768682","buckeye"],991:["n12985857","coral_fungus"],992:["n12998815","agaric"],993:["n13037406","gyromitra"],994:["n13040303","stinkhorn"],995:["n13044778","earthstar"],996:["n13052670","hen-of-the-woods"],997:["n13054560","bolete"],998:["n13133613","ear"],999:["n15075141","toilet_tissue"]}},function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.ARCHITECTURE_DIAGRAM=[{className:"Convolution2D",name:"block1_conv1",row:0,details:"32 3x3 filters, 2x2 strides, border mode valid",col:0},{className:"BatchNormalization",name:"block1_conv1_bn",row:1,details:"channel axis features",col:0},{className:"Activation",name:"block1_conv1_act",row:2,details:"ReLU",col:0},{className:"Convolution2D",name:"block1_conv2",row:3,details:"64 3x3 filters, 1x1 strides, border mode valid",col:0},{className:"BatchNormalization",name:"block1_conv2_bn",row:4,details:"channel axis features",col:0},{className:"Activation",name:"block1_conv2_act",row:5,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block2_sepconv1",row:6,details:"128 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block2_sepconv1_bn",row:7,details:"channel axis features",col:0},{className:"Activation",name:"block2_sepconv2_act",row:8,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block2_sepconv2",row:9,details:"128 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block2_sepconv2_bn",row:10,details:"channel axis features",col:0},{className:"Convolution2D",name:"convolution2d_1",row:6,details:"128 1x1 filters, 2x2 strides, border mode same",col:1},{className:"MaxPooling2D",name:"block2_pool",row:11,details:"3x3 pool size, 2x2 strides, border mode same",col:0},{className:"BatchNormalization",name:"batchnormalization_1",row:7,details:"channel axis features",col:1},{className:"Merge",name:"merge_1",row:12,details:"sum along channel axes",col:1},{className:"Activation",name:"block3_sepconv1_act",row:13,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block3_sepconv1",row:14,details:"256 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block3_sepconv1_bn",row:15,details:"channel axis features",col:0},{className:"Activation",name:"block3_sepconv2_act",row:16,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block3_sepconv2",row:17,details:"256 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block3_sepconv2_bn",row:18,details:"channel axis features",col:0},{className:"Convolution2D",name:"convolution2d_2",row:13,details:"256 1x1 filters, 2x2 strides, border mode same",col:1},{className:"MaxPooling2D",name:"block3_pool",row:19,details:"3x3 pool size, 2x2 strides, border mode same",col:0},{className:"BatchNormalization",name:"batchnormalization_2",row:14,details:"channel axis features",col:1},{className:"Merge",name:"merge_2",row:20,details:"sum along channel axes",col:1},{className:"Activation",name:"block4_sepconv1_act",row:21,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block4_sepconv1",row:22,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block4_sepconv1_bn",row:23,details:"channel axis features",col:0},{className:"Activation",name:"block4_sepconv2_act",row:24,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block4_sepconv2",row:25,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block4_sepconv2_bn",row:26,details:"channel axis features",col:0},{className:"Convolution2D",name:"convolution2d_3",row:21,details:"728 1x1 filters, 2x2 strides, border mode same",col:1},{className:"MaxPooling2D",name:"block4_pool",row:27,details:"3x3 pool size, 2x2 strides, border mode same",col:0},{className:"BatchNormalization",name:"batchnormalization_3",row:22,details:"channel axis features",col:1},{className:"Merge",name:"merge_3",row:28,details:"sum along channel axes",col:1},{className:"Activation",name:"block5_sepconv1_act",row:29,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block5_sepconv1",row:30,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block5_sepconv1_bn",row:31,details:"channel axis features",col:0},{className:"Activation",name:"block5_sepconv2_act",row:32,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block5_sepconv2",row:33,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block5_sepconv2_bn",row:34,details:"channel axis features",col:0},{className:"Activation",name:"block5_sepconv3_act",row:35,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block5_sepconv3",row:36,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block5_sepconv3_bn",row:37,details:"channel axis features",col:0},{className:"Merge",name:"merge_4",row:38,details:"sum along channel axes",col:1},{className:"Activation",name:"block6_sepconv1_act",row:39,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block6_sepconv1",row:40,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block6_sepconv1_bn",row:41,details:"channel axis features",col:0},{className:"Activation",name:"block6_sepconv2_act",
|
|
row:42,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block6_sepconv2",row:43,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block6_sepconv2_bn",row:44,details:"channel axis features",col:0},{className:"Activation",name:"block6_sepconv3_act",row:45,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block6_sepconv3",row:46,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block6_sepconv3_bn",row:47,details:"channel axis features",col:0},{className:"Merge",name:"merge_5",row:48,details:"sum along channel axes",col:1},{className:"Activation",name:"block7_sepconv1_act",row:49,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block7_sepconv1",row:50,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block7_sepconv1_bn",row:51,details:"channel axis features",col:0},{className:"Activation",name:"block7_sepconv2_act",row:52,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block7_sepconv2",row:53,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block7_sepconv2_bn",row:54,details:"channel axis features",col:0},{className:"Activation",name:"block7_sepconv3_act",row:55,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block7_sepconv3",row:56,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block7_sepconv3_bn",row:57,details:"channel axis features",col:0},{className:"Merge",name:"merge_6",row:58,details:"sum along channel axes",col:1},{className:"Activation",name:"block8_sepconv1_act",row:59,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block8_sepconv1",row:60,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block8_sepconv1_bn",row:61,details:"channel axis features",col:0},{className:"Activation",name:"block8_sepconv2_act",row:62,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block8_sepconv2",row:63,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block8_sepconv2_bn",row:64,details:"channel axis features",col:0},{className:"Activation",name:"block8_sepconv3_act",row:65,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block8_sepconv3",row:66,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block8_sepconv3_bn",row:67,details:"channel axis features",col:0},{className:"Merge",name:"merge_7",row:68,details:"sum along channel axes",col:1},{className:"Activation",name:"block9_sepconv1_act",row:69,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block9_sepconv1",row:70,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block9_sepconv1_bn",row:71,details:"channel axis features",col:0},{className:"Activation",name:"block9_sepconv2_act",row:72,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block9_sepconv2",row:73,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block9_sepconv2_bn",row:74,details:"channel axis features",col:0},{className:"Activation",name:"block9_sepconv3_act",row:75,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block9_sepconv3",row:76,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block9_sepconv3_bn",row:77,details:"channel axis features",col:0},{className:"Merge",name:"merge_8",row:78,details:"sum along channel axes",col:1},{className:"Activation",name:"block10_sepconv1_act",row:79,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block10_sepconv1",row:80,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block10_sepconv1_bn",row:81,details:"channel axis features",col:0},{className:"Activation",name:"block10_sepconv2_act",row:82,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block10_sepconv2",row:83,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block10_sepconv2_bn",row:84,details:"channel axis features",col:0},{className:"Activation",name:"block10_sepconv3_act",row:85,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block10_sepconv3",row:86,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block10_sepconv3_bn",row:87,details:"channel axis features",col:0},{className:"Merge",name:"merge_9",row:88,details:"sum along channel axes",col:1},{className:"Activation",name:"block11_sepconv1_act",row:89,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block11_sepconv1",row:90,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block11_sepconv1_bn",row:91,details:"channel axis features",col:0},{className:"Activation",name:"block11_sepconv2_act",row:92,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block11_sepconv2",row:93,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block11_sepconv2_bn",row:94,details:"channel axis features",col:0},{className:"Activation",name:"block11_sepconv3_act",row:95,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block11_sepconv3",row:96,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block11_sepconv3_bn",row:97,details:"channel axis features",col:0},{className:"Merge",name:"merge_10",row:98,details:"sum along channel axes",col:1},{className:"Activation",name:"block12_sepconv1_act",row:99,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block12_sepconv1",row:100,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block12_sepconv1_bn",row:101,details:"channel axis features",col:0},{className:"Activation",name:"block12_sepconv2_act",row:102,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block12_sepconv2",row:103,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block12_sepconv2_bn",row:104,details:"channel axis features",col:0},{className:"Activation",name:"block12_sepconv3_act",row:105,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block12_sepconv3",row:106,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block12_sepconv3_bn",row:107,details:"channel axis features",col:0},{className:"Merge",name:"merge_11",row:108,details:"sum along channel axes",col:1},{className:"Activation",name:"block13_sepconv1_act",row:109,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block13_sepconv1",row:110,details:"728 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block13_sepconv1_bn",row:111,details:"channel axis features",col:0},{className:"Activation",name:"block13_sepconv2_act",row:112,details:"ReLU",col:0},{className:"SeparableConvolution2D",name:"block13_sepconv2",row:113,details:"1024 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:0},{className:"BatchNormalization",name:"block13_sepconv2_bn",row:114,details:"channel axis features",col:0},{className:"Convolution2D",name:"convolution2d_4",row:109,details:"1024 1x1 filters, 2x2 strides, border mode same",col:1},{className:"MaxPooling2D",name:"block13_pool",row:115,details:"3x3 pool size, 2x2 strides, border mode same",col:0},{className:"BatchNormalization",name:"batchnormalization_4",row:110,details:"channel axis features",col:1},{className:"Merge",name:"merge_12",row:116,details:"sum along channel axes",col:1},{className:"SeparableConvolution2D",name:"block14_sepconv1",row:117,details:"1536 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:1},{className:"BatchNormalization",name:"block14_sepconv1_bn",row:118,details:"channel axis features",col:1},{className:"Activation",name:"block14_sepconv1_act",row:119,details:"ReLU",col:1},{className:"SeparableConvolution2D",name:"block14_sepconv2",row:120,details:"2048 3x3 filters, 1x1 strides, border mode same, depth multiplier 1",col:1},{className:"BatchNormalization",name:"block14_sepconv2_bn",row:121,details:"channel axis features",col:1},{className:"Activation",name:"block14_sepconv2_act",row:122,details:"ReLU",col:1},{className:"GlobalAveragePooling2D",name:"avg_pool",row:123,details:"",col:1},{className:"Dense",name:"predictions",row:124,details:"output dimensions 1000, softmax activation",col:1}],n.ARCHITECTURE_CONNECTIONS=[{from:"convolution2d_1",to:"predictions"},{from:"block1_conv1",to:"block2_pool"},{from:"block3_sepconv1_act",to:"block3_pool"},{from:"block4_sepconv1_act",to:"block4_pool"},{from:"block5_sepconv1_act",to:"block5_sepconv3_bn"},{from:"block6_sepconv1_act",to:"block6_sepconv3_bn"},{from:"block7_sepconv1_act",to:"block7_sepconv3_bn"},{from:"block8_sepconv1_act",to:"block8_sepconv3_bn"},{from:"block9_sepconv1_act",to:"block9_sepconv3_bn"},{from:"block10_sepconv1_act",to:"block10_sepconv3_bn"},{from:"block11_sepconv1_act",to:"block11_sepconv3_bn"},{from:"block12_sepconv1_act",to:"block12_sepconv3_bn"},{from:"block13_sepconv1_act",to:"block13_pool"},{from:"block1_conv2_act",to:"convolution2d_1",corner:"top-right"},{from:"block2_pool",to:"merge_1",corner:"top-right"},{from:"block3_pool",to:"merge_2",corner:"top-right"},{from:"block4_pool",to:"merge_3",corner:"top-right"},{from:"block5_sepconv3_bn",to:"merge_4",corner:"top-right"},{from:"block6_sepconv3_bn",to:"merge_5",corner:"top-right"},{from:"block7_sepconv3_bn",to:"merge_6",corner:"top-right"},{from:"block8_sepconv3_bn",to:"merge_7",corner:"top-right"},{from:"block9_sepconv3_bn",to:"merge_8",corner:"top-right"},{from:"block10_sepconv3_bn",to:"merge_9",corner:"top-right"},{from:"block11_sepconv3_bn",to:"merge_10",corner:"top-right"},{from:"block12_sepconv3_bn",to:"merge_11",corner:"top-right"},{from:"block13_pool",to:"merge_12",corner:"top-right"},{from:"merge_1",to:"block3_sepconv1_act",corner:"top-left"},{from:"merge_2",to:"block4_sepconv1_act",corner:"top-left"},{from:"merge_3",to:"block5_sepconv1_act",corner:"top-left"},{from:"merge_4",to:"block6_sepconv1_act",corner:"top-left"},{from:"merge_5",to:"block7_sepconv1_act",corner:"top-left"},{from:"merge_6",to:"block8_sepconv1_act",corner:"top-left"},{from:"merge_7",to:"block9_sepconv1_act",corner:"top-left"},{from:"merge_8",to:"block10_sepconv1_act",corner:"top-left"},{from:"merge_9",to:"block11_sepconv1_act",corner:"top-left"},{from:"merge_10",to:"block12_sepconv1_act",corner:"top-left"},{from:"merge_11",to:"block13_sepconv1_act",corner:"top-left"}]},function(e,n,t){"use strict";function a(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.Xception=void 0,t(238);var r=t(12),i=o(r),s=t(21),l=o(s),c=t(54),u=o(c),d=t(7),m=a(d),p=t(22),f=t(92),h={model:"demos/data/xception/xception.json",weights:"https://transcranial.github.io/keras-js-demos-data/xception/xception_weights.buf",metadata:"demos/data/xception/xception_metadata.json"},b={filepaths:h};n.Xception=Vue.extend({props:["hasWebgl"],template:t(229),data:function(){return{showInfoPanel:!0,useGpu:this.hasWebgl,model:new KerasJS.Model(Object.assign({gpu:this.hasWebgl,layerCallPauses:!0},b)),modelLoading:!0,modelRunning:!1,imageURLInput:null,imageURLSelect:null,imageURLSelectList:p.IMAGE_URLS,imageLoading:!1,imageLoadingError:!1,output:null,architectureDiagram:f.ARCHITECTURE_DIAGRAM,architectureConnections:f.ARCHITECTURE_CONNECTIONS,architectureDiagramPaths:[],showComputationFlow:!0}},computed:{loadingProgress:function(){return this.model.getLoadingProgress()},architectureDiagramRows:function(){for(var e=[],n=0;n<125;n++){for(var t=[],a=0;a<2;a++)t.push((0,u.default)(this.architectureDiagram,{row:n,col:a}));e.push(t)}return e},layersWithResults:function(){return this.model.layersWithResults},outputClasses:function(){if(!this.output){for(var e=[],n=0;n<5;n++)e.push({name:"-",probability:0});return e}return m.imagenetClassesTopK(this.output,5)}},ready:function(){var e=this;this.model.ready().then(function(){e.modelLoading=!1,e.architectureDiagramPaths=[],setTimeout(function(){e.architectureConnections.forEach(function(n){var t=document.getElementsByClassName("architecture-container")[0],a=document.getElementById(n.from),o=document.getElementById(n.to),r=t.getBoundingClientRect(),i=a.getBoundingClientRect(),s=o.getBoundingClientRect(),l=r.left,c=r.top,u=i.left+i.width/2-l,d=i.top+i.height/2-c,m=s.left+s.width/2-l,p=s.top+s.height/2-c,f="M"+u+","+d+" L"+m+","+p;"top-right"===n.corner?f="M"+u+","+d+" L"+(m-10)+","+d+" Q"+m+","+d+" "+m+","+(d+10)+" L"+m+","+p:"bottom-left"===n.corner?f="M"+u+","+d+" L"+u+","+(p-10)+" Q"+u+","+p+" "+(u+10)+","+p+" L"+m+","+p:"top-left"===n.corner?f="M"+u+","+d+" L"+(m+10)+","+d+" Q"+m+","+d+" "+m+","+(d+10)+" L"+m+","+p:"bottom-right"===n.corner&&(f="M"+u+","+d+" L"+u+","+(d+20)+" Q"+u+","+(d+30)+" "+(u-10)+","+(d+30)+" L"+(m+10)+","+(d+30)+" Q"+m+","+(d+30)+" "+m+","+(d+40)+" L"+m+","+p),e.architectureDiagramPaths.push(f)})},1e3)})},methods:{closeInfoPanel:function(){this.showInfoPanel=!1},toggleGpu:function(){this.model.toggleGpu(!this.useGpu)},toggleComputationFlow:function(){this.model.layerCallPauses=!this.showComputationFlow},imageURLInputChanged:function(e){this.imageURLSelect=null,this.loadImageToCanvas(this.imageURLInput)},imageURLSelectChanged:function(e){this.imageURLInput=this.imageURLSelect,this.loadImageToCanvas(this.imageURLSelect)},loadImageToCanvas:function(e){var n=this;return e?(this.imageLoading=!0,void loadImage(e,function(e){if("error"===e.type)n.imageLoadingError=!0,n.imageLoading=!1;else{var t=document.getElementById("input-canvas").getContext("2d");t.drawImage(e,0,0),n.imageLoadingError=!1,n.imageLoading=!1,n.modelRunning=!0,n.$nextTick(function(){var e=this;setTimeout(function(){e.runModel()},200)})}},{maxWidth:299,maxHeight:299,cover:!0,crop:!0,canvas:!0,crossOrigin:"Anonymous"})):void this.clearAll()},runModel:function(){var e=this,n=document.getElementById("input-canvas").getContext("2d"),t=n.getImageData(0,0,n.canvas.width,n.canvas.height),a=t.data,o=t.width,r=t.height,s=(0,i.default)(new Float32Array(a),[o,r,4]),c=(0,i.default)(new Float32Array(o*r*3),[o,r,3]);l.default.divseq(s,255),l.default.subseq(s,.5),l.default.mulseq(s,2),l.default.assign(c.pick(null,null,0),s.pick(null,null,0)),l.default.assign(c.pick(null,null,1),s.pick(null,null,1)),l.default.assign(c.pick(null,null,2),s.pick(null,null,2));var u={input_1:c.data};this.model.predict(u).then(function(n){e.output=n.predictions,e.modelRunning=!1})},clearAll:function(){this.modelRunning=!1,this.imageURLInput=null,this.imageURLSelect=null,this.imageLoading=!1,this.imageLoadingError=!1,this.output=null,this.model.layersWithResults=[];var e=document.getElementById("input-canvas").getContext("2d");e.clearRect(0,0,e.canvas.width,e.canvas.height)}}})},function(e,n,t){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}function o(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var r=function(){function e(e,n){for(var t=0;t<n.length;t++){var a=n[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(n,t,a){return t&&e(n.prototype,t),a&&e(n,a),n}}(),i=t(12),s=a(i),l=t(219),c=a(l),u=t(95),d=function(e,n){if(e.length&&n.length&&e.length!==n.reduce(function(e,n){return e*n},1))throw new Error("Specified shape incompatible with data.")},m=function(){function e(n,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};o(this,e),this._type=a.type||Float32Array,n&&n.length&&(n instanceof this._type||n instanceof Array)?(d(n,t),this.tensor=(0,s.default)(n,t),this.tensor=(0,s.default)(new this._type(n),t)):!n.length&&t.length?this.tensor=(0,s.default)(new this._type(t.reduce(function(e,n){return e*n},1)),t):this.tensor=(0,s.default)(new this._type([]),[]),this._gpuMaxSizeExceeded=!1}return r(e,[{key:"createWeblasTensor",value:function(){if(this.weblasTensor&&this.weblasTensor.delete(),1===this.tensor.shape.length){var e=this.tensor.shape[0];if(e>u.MAX_TEXTURE_SIZE)this._gpuMaxSizeExceeded=!0;else{var n=[1,e];this.weblasTensor=new weblas.pipeline.Tensor(n,this.tensor.data)}}else{if(2!==this.tensor.shape.length)throw new Error("[Tensor] can only create weblas Tensor for 1-D or 2-D only");if(this.tensor.shape.some(function(e){return e>u.MAX_TEXTURE_SIZE}))this._gpuMaxSizeExceeded=!0;else{var t=this.tensor.shape;this.weblasTensor=new weblas.pipeline.Tensor(t,this.tensor.data)}}}},{key:"transferWeblasTensor",value:function(){if(this.weblasTensor){var e=this.weblasTensor.shape,n=this.weblasTensor.transfer(!0);this.tensor=(0,c.default)((0,s.default)(n,e))}}},{key:"deleteWeblasTensor",value:function(){this.weblasTensor&&(this.weblasTensor.delete(),delete this.weblasTensor)}},{key:"replaceTensorData",value:function(e){if(e&&e.length&&e instanceof this._type)this.tensor.data=e;else{if(!(e&&e.length&&e instanceof Array))throw new Error("[Tensor] invalid input for replaceTensorData method.");this.tensor.data=new this._type(e)}}}]),e}();n.default=m},function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var t=document.createElement("canvas"),a=t.getContext("webgl")||t.getContext("experimental-webgl");if(!a)throw new Error("Unable to initialize WebGL. Your browser may not support it.");n.MAX_TEXTURE_SIZE=a.getParameter(a.MAX_TEXTURE_SIZE)},function(e,n,t){n=e.exports=t(2)(),n.push([e.i,".demo-card {\n width: 100%;\n max-width: 1000px;\n margin: 30px auto;\n background: white;\n border: 2px solid white;\n border-radius: 10px;\n -webkit-transition: border-color 0.2s ease-in;\n transition: border-color 0.2s ease-in;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n overflow: hidden;\n}\n.demo-card .demo-card-heading {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n padding: 20px;\n text-align: center;\n color: #69707a;\n font-family: 'Fira Sans',sans-serif;\n font-size: 20px;\n -webkit-transition: color 0.2s ease-in;\n transition: color 0.2s ease-in;\n}\n.demo-card .demo-card-image img {\n width: 200px;\n height: auto;\n}\n.demo-card:hover {\n border-color: #1BBC9B;\n cursor: pointer;\n}\n.demo-card:hover .demo-card-heading {\n color: #1BBC9B;\n}\n",""])},function(e,n,t){n=e.exports=t(2)(),n.push([e.i,".demo.imdb-bidirectional-lstm .column {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.imdb-bidirectional-lstm .column.input-column {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.imdb-bidirectional-lstm .column.input-column .input-container {\n text-align: right;\n margin: 5px 5px 5px 20px;\n position: relative;\n}\n.demo.imdb-bidirectional-lstm .column.input-column .input-container .input-label {\n font-family: 'Nothing You Could Do',cursive;\n font-size: 18px;\n color: #69707a;\n text-align: left;\n}\n.demo.imdb-bidirectional-lstm .column.input-column .input-container .mdl-textfield {\n width: 550px;\n}\n.demo.imdb-bidirectional-lstm .column.input-column .input-container .mdl-textfield textarea {\n color: #393E46;\n font-family: 'Fira Sans',sans-serif;\n font-size: 16px;\n padding: 10px;\n}\n.demo.imdb-bidirectional-lstm .column.input-column .input-container .input-buttons {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n.demo.imdb-bidirectional-lstm .column.input-column .input-container .input-buttons .input-load-button, .demo.imdb-bidirectional-lstm .column.input-column .input-container .input-buttons .input-clear-button {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n color: #69707a;\n -webkit-transition: color 0.2s ease-in;\n transition: color 0.2s ease-in;\n}\n.demo.imdb-bidirectional-lstm .column.input-column .input-container .input-buttons .input-load-button .material-icons, .demo.imdb-bidirectional-lstm .column.input-column .input-container .input-buttons .input-clear-button .material-icons {\n margin-right: 5px;\n}\n.demo.imdb-bidirectional-lstm .column.input-column .input-container .input-buttons .input-load-button:hover, .demo.imdb-bidirectional-lstm .column.input-column .input-container .input-buttons .input-clear-button:hover {\n color: rgba(27, 188, 155, 0.3);\n cursor: pointer;\n}\n.demo.imdb-bidirectional-lstm .column.input-column .input-container .input-buttons .input-load-button {}\n.demo.imdb-bidirectional-lstm .column.input-column .input-container .input-buttons .input-load-button:hover {\n color: #1BBC9B;\n}\n.demo.imdb-bidirectional-lstm .column.output-column {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.imdb-bidirectional-lstm .column.output-column .output {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n}\n.demo.imdb-bidirectional-lstm .column.output-column .output .output-heading {\n max-width: 200px;\n color: #69707a;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 16px;\n margin: 10px;\n}\n.demo.imdb-bidirectional-lstm .column.output-column .output .output-heading span.output-label.positive {\n color: #1BBC9B;\n}\n.demo.imdb-bidirectional-lstm .column.output-column .output .output-heading span.output-label.negative {\n color: #F22613;\n}\n.demo.imdb-bidirectional-lstm .column.output-column .output .output-value {\n -webkit-transition: color 0.4s ease-in-out;\n transition: color 0.4s ease-in-out;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 42px;\n margin: 10px;\n}\n.demo.imdb-bidirectional-lstm .architecture-container {\n position: relative;\n width: 710px;\n margin: 0 auto;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.demo.imdb-bidirectional-lstm .architecture-container .bg-line {\n position: absolute;\n top: 50%;\n left: 0;\n height: 5px;\n width: 100%;\n background: white;\n}\n.demo.imdb-bidirectional-lstm .architecture-container .layer {\n display: inline-block;\n width: 170px;\n margin-right: 10px;\n background: white;\n border-radius: 5px;\n padding: 2px 10px 0px;\n z-index: 1;\n}\n.demo.imdb-bidirectional-lstm .architecture-container .layer .layer-class-name {\n color: #1BBC9B;\n font-size: 14px;\n font-weight: bold;\n}\n.demo.imdb-bidirectional-lstm .architecture-container .layer .layer-details {\n color: #999999;\n font-size: 10px;\n font-weight: bold;\n}\n.demo.imdb-bidirectional-lstm .architecture-container .layer:last-child {\n margin-right: 0;\n}\n.demo.imdb-bidirectional-lstm .lstm-visualization-container {\n min-width: 700px;\n max-width: 900px;\n margin: 20px auto;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n border: 1px solid #69707a;\n border-radius: 5px;\n padding: 10px;\n}\n.demo.imdb-bidirectional-lstm .lstm-visualization-container .lstm-visualization-word {\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 14px;\n color: #393E46;\n padding: 3px 6px;\n}\n",""])},function(e,n,t){n=e.exports=t(2)(),n.push([e.i,".demo.inception-v3 .top-container {\n margin: 10px;\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.demo.inception-v3 .top-container .input-container .input-label {\n font-family: 'Nothing You Could Do',cursive;\n font-size: 16px;\n color: #69707a;\n text-align: left;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n}\n.demo.inception-v3 .top-container .input-container .image-url {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n position: relative;\n}\n.demo.inception-v3 .top-container .input-container .image-url span {\n margin: 0 10px;\n font-family: 'Nothing You Could Do',cursive;\n font-size: 16px;\n color: #69707a;\n}\n.demo.inception-v3 .top-container .controls {\n width: 250px;\n margin-left: 40px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center\n}\n.demo.inception-v3 .top-container .controls > .mdl-switch {\n margin-bottom: 5px;\n}\n.demo.inception-v3 .top-container .controls > .mdl-switch .mdl-switch__label {\n font-size: 12px !important;\n}\n.demo.inception-v3 .columns.input-output {\n max-width: 800px;\n margin: 0 auto;\n}\n.demo.inception-v3 .columns.input-output .column {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.inception-v3 .columns.input-output .column.input-column {\n position: relative;\n}\n.demo.inception-v3 .columns.input-output .column.input-column .loading-indicator {\n position: absolute;\n top: 0;\n left: -10px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-item-align: start;\n align-self: flex-start;\n}\n.demo.inception-v3 .columns.input-output .column.input-column .loading-indicator .mdl-spinner {\n margin: 20px;\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n}\n.demo.inception-v3 .columns.input-output .column.input-column .loading-indicator .error {\n color: #D24D57;\n font-size: 14px;\n font-family: 'Fira Sans',sans-serif;\n margin: 20px;\n}\n.demo.inception-v3 .columns.input-output .column.input-column .canvas-container {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.demo.inception-v3 .columns.input-output .column.input-column .canvas-container canvas {\n background: white;\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output {\n width: 370px;\n height: 160px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output .output-class {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 6px 0;\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output .output-class .output-label {\n text-align: right;\n width: 200px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 18px;\n color: #69707a;\n padding: 0 6px;\n border-right: 2px solid rgba(27, 188, 155, 0.3);\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output .output-class .output-bar {\n height: 8px;\n -webkit-transition: width 0.2s ease-out;\n transition: width 0.2s ease-out;\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output .output-class .output-value {\n text-align: left;\n margin-left: 5px;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 14px;\n color: #69707a;\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output .output-class.predicted .output-label {\n color: #1BBC9B;\n border-left-color: #1BBC9B;\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output .output-class.predicted .output-value {\n color: #1BBC9B;\n}\n.demo.inception-v3 .architecture-container {\n min-width: 800px;\n max-width: 1200px;\n margin: 0 auto;\n position: relative;\n}\n.demo.inception-v3 .architecture-container .layers-row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 5px;\n position: relative;\n z-index: 1;\n}\n.demo.inception-v3 .architecture-container .layers-row .layer-column {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 5px;\n}\n.demo.inception-v3 .architecture-container .layers-row .layer-column .layer {\n display: inline-block;\n background: white;\n border: 2px solid white;\n border-radius: 5px;\n padding: 2px 10px 0px;\n margin: 3px;\n}\n.demo.inception-v3 .architecture-container .layers-row .layer-column .layer .layer-class-name {\n color: #1BBC9B;\n font-size: 14px;\n font-weight: bold;\n}\n.demo.inception-v3 .architecture-container .layers-row .layer-column .layer .layer-details {\n color: #999999;\n font-size: 12px;\n font-weight: bold;\n}\n.demo.inception-v3 .architecture-container .layers-row .layer-column .layer.has-result {\n border-color: #1BBC9B;\n}\n.demo.inception-v3 .architecture-container .architecture-connections {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n}\n.demo.inception-v3 .architecture-container .architecture-connections path {\n stroke-width: 4px;\n stroke: #AAAAAA;\n fill: none;\n}\n",""]);
|
|
},function(e,n,t){n=e.exports=t(2)(),n.push([e.i,"@import url(https://fonts.googleapis.com/css?family=Fira+Sans);",""]),n.push([e.i,"@import url(https://fonts.googleapis.com/css?family=Share+Tech+Mono);",""]),n.push([e.i,"@import url(https://fonts.googleapis.com/css?family=Nothing+You+Could+Do);",""]),n.push([e.i,"body {\n background: -webkit-linear-gradient(bottom, #CCCCCC, #F0F0F0);\n background: linear-gradient(0deg, #CCCCCC, #F0F0F0);\n color: #393E46;\n min-height: 100vh;\n font-family: 'Fira Sans',sans-serif;\n}\n\n.title {\n width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.title span {\n color: #1BBC9B;\n margin-right: 20px;\n}\n\n.subtitle {\n color: #393E46;\n}\n\n.demo {\n padding: 50px 30px;\n}\n\n.demo .loading-progress {\n position: absolute;\n top: 0;\n right: 0;\n padding: 30px;\n color: #1BBC9B;\n font-size: 18px;\n font-family: 'Share Tech Mono',sans-serif;\n padding: 20px 50px;\n margin: 30px;\n background: rgba(255, 255, 255, 0.5);\n border-radius: 10px;\n}\n\n.demo .info-panel {\n width: 100%;\n max-width: 1200px;\n border-radius: 5px;\n background: white;\n color: #393E46;\n padding: 20px 20px 5px 20px;\n margin: 20px auto;\n box-shadow: 5px 5px #CCCCCC;\n}\n\n.demo .info-panel .info-panel-text {\n width: 100%;\n margin-bottom: 10px;\n font-size: 12px;\n}\n\n.demo .info-panel .info-panel-text a {\n color: #1BBC9B;\n -webkit-transition: color 0.2s ease-in;\n transition: color 0.2s ease-in\n}\n\n.demo .info-panel .info-panel-text a:hover{\n color: rgba(27, 188, 155, 0.6);\n}\n\n.demo .info-panel .info-panel-close {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n\n.demo .info-panel .info-panel-close .info-panel-close-btn {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n color: #69707a;\n -webkit-transition: color 0.2s ease-in;\n transition: color 0.2s ease-in\n}\n\n.demo .info-panel .info-panel-close .info-panel-close-btn:hover{\n color: rgba(27, 188, 155, 0.3);\n cursor: pointer;\n}\n\n/* MDL overrides */\n\n.demo .mdl-switch__label {\n font-size: 14px !important;\n color: #69707a;\n}\n\n/****************************************************************/\n\n.demo .mdl-switch.is-checked .mdl-switch__thumb {\n background: rgba(27, 188, 155, 0.6);\n}\n\n.demo .mdl-switch.is-checked .mdl-switch__track {\n background: rgba(27, 188, 155, 0.3);\n}\n\n.demo .mdl-textfield .mdl-textfield__input {\n border-bottom-color: rgba(27, 188, 155, 0.6);\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 14px;\n}\n\n.demo .mdl-textfield .mdl-textfield__label {\n font-family: 'Share Tech Mono',sans-serif;\n color: rgba(27, 188, 155, 0.6);\n}\n\n.demo .mdl-textfield .mdl-icon-toggle__label {\n color: rgba(27, 188, 155, 0.6);\n}\n\n.demo .mdl-textfield.is-focused .mdl-textfield__input {\n border-color: #1BBC9B;\n}\n\n.demo .mdl-textfield.is-focused .mdl-textfield__label {\n color: #1BBC9B\n}\n\n.demo .mdl-textfield.is-focused .mdl-textfield__label::after{\n background-color: #1BBC9B;\n}\n\n.demo .mdl-textfield.is-focused .mdl-icon-toggle__label {\n color: #1BBC9B;\n}\n\n.demo .mdl-menu .mdl-menu__item {\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 14px;\n color: #69707a\n}\n\n.demo .mdl-menu .mdl-menu__item:hover{\n background-color: rgba(27, 188, 155, 0.6);\n color: white;\n}\n",""])},function(e,n,t){n=e.exports=t(2)(),n.push([e.i,".menu {\n padding: 40px;\n margin: 20px;\n background: white;\n border-radius: 10px;\n box-shadow: 5px 5px #CCCCCC;\n}\n.menu h1 {\n color: #CCCCCC;\n font-family: 'Fira Sans',sans-serif;\n font-size: 1.5rem;\n}\n.menu .menu-list li {\n color: #69707a;\n border-left: 2px solid white;\n margin-bottom: 3px;\n}\n.menu .menu-list li.active {\n border-left: 2px solid #1BBC9B;\n}\n.menu .menu-list a {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n.menu .menu-list a span.menu-item-heading {\n margin-right: 10px;\n}\n.menu .menu-list a span.menu-item-subheading {\n color: #999999;\n font-size: 0.8em;\n}\n.menu .menu-list a:hover {\n color: #1BBC9B;\n background-color: whitesmoke;\n}\n.menu .menu-list a:hover .github-logo {\n fill: #1BBC9B;\n}\n.menu .menu-list.github li, .menu .menu-list.contact li {\n padding: 5px 10px;\n}\n.menu .menu-list.github a, .menu .menu-list.contact a {\n color: #1BBC9B;\n padding: 0;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n background-color: none;\n -webkit-transition: color 0.2s ease-in;\n transition: color 0.2s ease-in;\n}\n.menu .menu-list.github a .github-logo, .menu .menu-list.contact a .github-logo {\n fill: #1BBC9B;\n -webkit-transition: fill 0.2s ease-in;\n transition: fill 0.2s ease-in;\n}\n.menu .menu-list.github a:hover, .menu .menu-list.contact a:hover {\n color: rgba(27, 188, 155, 0.6);\n background: none;\n}\n.menu .menu-list.github a:hover .github-logo, .menu .menu-list.contact a:hover .github-logo {\n fill: rgba(27, 188, 155, 0.6);\n}\n",""])},function(e,n,t){n=e.exports=t(2)(),n.push([e.i,".demo.mnist-cnn .column {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.mnist-cnn .column.input-column {\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.demo.mnist-cnn .column.input-column .input-container {\n text-align: right;\n margin: 20px;\n position: relative;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.demo.mnist-cnn .column.input-column .input-container .input-label {\n font-family: 'Nothing You Could Do',cursive;\n font-size: 18px;\n color: #69707a;\n text-align: right;\n}\n.demo.mnist-cnn .column.input-column .input-container .input-label span.arrow {\n font-size: 36px;\n color: #CCCCCC;\n position: absolute;\n right: -32px;\n top: 8px;\n}\n.demo.mnist-cnn .column.input-column .input-container .canvas-container {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n margin: 10px 0;\n border: 15px solid rgba(27, 188, 155, 0.3);\n -webkit-transition: border-color 0.2s ease-in;\n transition: border-color 0.2s ease-in;\n}\n.demo.mnist-cnn .column.input-column .input-container .canvas-container canvas {\n background: white\n}\n.demo.mnist-cnn .column.input-column .input-container .canvas-container canvas:hover {\n cursor: crosshair;\n}\n.demo.mnist-cnn .column.input-column .input-container .canvas-container:hover {\n border-color: rgba(27, 188, 155, 0.6);\n}\n.demo.mnist-cnn .column.input-column .input-container .input-buttons {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.demo.mnist-cnn .column.input-column .input-container .input-buttons .input-clear-button {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n color: #69707a;\n -webkit-transition: color 0.2s ease-in;\n transition: color 0.2s ease-in;\n}\n.demo.mnist-cnn .column.input-column .input-container .input-buttons .input-clear-button .material-icons {\n margin-right: 5px;\n}\n.demo.mnist-cnn .column.input-column .input-container .input-buttons .input-clear-button:hover {\n color: rgba(27, 188, 155, 0.3);\n cursor: pointer;\n}\n.demo.mnist-cnn .column.controls-column {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding-top: 80px;\n}\n.demo.mnist-cnn .column.output-column {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.mnist-cnn .column.output-column .output {\n height: 160px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n}\n.demo.mnist-cnn .column.output-column .output .output-class {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0 6px;\n border-bottom: 2px solid rgba(27, 188, 155, 0.3);\n}\n.demo.mnist-cnn .column.output-column .output .output-class .output-label {\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 1.5rem;\n color: #69707a;\n}\n.demo.mnist-cnn .column.output-column .output .output-class .output-bar {\n width: 8px;\n background: #EEEEEE;\n -webkit-transition: height 0.2s ease-out;\n transition: height 0.2s ease-out;\n}\n.demo.mnist-cnn .column.output-column .output .output-class.predicted {\n border-bottom-color: #1BBC9B;\n}\n.demo.mnist-cnn .column.output-column .output .output-class.predicted .output-label {\n color: #1BBC9B;\n}\n.demo.mnist-cnn .layer-results-container {\n position: relative;\n}\n.demo.mnist-cnn .layer-results-container .bg-line {\n position: absolute;\n z-index: 0;\n top: 0;\n left: 50%;\n background: white;\n width: 15px;\n height: 100%;\n}\n.demo.mnist-cnn .layer-results-container .layer-result {\n position: relative;\n z-index: 1;\n margin: 30px 20px;\n background: white;\n border-radius: 10px;\n padding: 20px;\n overflow-x: auto;\n}\n.demo.mnist-cnn .layer-results-container .layer-result .layer-result-heading {\n font-size: 1rem;\n color: #999999;\n margin-bottom: 10px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n font-size: 12px;\n}\n.demo.mnist-cnn .layer-results-container .layer-result .layer-result-heading span.layer-class {\n color: #1BBC9B;\n font-size: 14px;\n font-weight: bold;\n}\n.demo.mnist-cnn .layer-results-container .layer-result .layer-result-canvas-container {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n background: white;\n}\n.demo.mnist-cnn .layer-results-container .layer-result .layer-result-canvas-container canvas {\n border: 1px solid lightgray;\n margin: 1px;\n}\n",""])},function(e,n,t){n=e.exports=t(2)(),n.push([e.i,".demo.mnist-vae .column {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.mnist-vae .column.input-column {\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.demo.mnist-vae .column.input-column .input-container {\n text-align: right;\n margin: 20px;\n position: relative;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.demo.mnist-vae .column.input-column .input-container .input-label {\n font-family: 'Nothing You Could Do',cursive;\n font-size: 18px;\n color: #69707a;\n text-align: right;\n}\n.demo.mnist-vae .column.input-column .input-container .input-label span.arrow {\n font-size: 36px;\n color: #CCCCCC;\n position: absolute;\n right: -32px;\n top: 8px;\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container {\n position: relative;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n margin: 10px 0;\n border: 15px solid rgba(27, 188, 155, 0.3);\n -webkit-transition: border-color 0.2s ease-in;\n transition: border-color 0.2s ease-in;\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container canvas {\n background: white\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container canvas:hover {\n cursor: crosshair;\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container .axis {\n position: absolute;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 14px;\n color: #1BBC9B;\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container .axis.x-axis {\n right: 0;\n bottom: -45px;\n width: 200px;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container .axis.y-axis {\n top: 0;\n left: -55px;\n height: 200px;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container:hover {\n border-color: rgba(27, 188, 155, 0.6);\n}\n.demo.mnist-vae .column.controls-column {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding-top: 80px;\n}\n.demo.mnist-vae .column.controls-column .coordinates {\n margin-left: 5px;\n margin-top: 45px;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 20px;\n color: #69707a;\n}\n.demo.mnist-vae .column.output-column {\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n.demo.mnist-vae .column.output-column .output {\n border-radius: 10px;\n overflow: hidden;\n}\n.demo.mnist-vae .column.output-column .output canvas {\n background: white;\n}\n.demo.mnist-vae .layer-results-container {\n position: relative;\n}\n.demo.mnist-vae .layer-results-container .bg-line {\n position: absolute;\n z-index: 0;\n top: 0;\n left: 50%;\n background: white;\n width: 15px;\n height: 100%;\n}\n.demo.mnist-vae .layer-results-container .layer-result {\n position: relative;\n z-index: 1;\n margin: 30px 20px;\n background: white;\n border-radius: 10px;\n padding: 20px;\n overflow-x: auto;\n}\n.demo.mnist-vae .layer-results-container .layer-result .layer-result-heading {\n font-size: 1rem;\n color: #999999;\n margin-bottom: 10px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n font-size: 12px;\n}\n.demo.mnist-vae .layer-results-container .layer-result .layer-result-heading span.layer-class {\n color: #1BBC9B;\n font-size: 14px;\n font-weight: bold;\n}\n.demo.mnist-vae .layer-results-container .layer-result .layer-result-canvas-container {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n background: white;\n}\n.demo.mnist-vae .layer-results-container .layer-result .layer-result-canvas-container canvas {\n border: 1px solid lightgray;\n margin: 1px;\n}\n",""])},function(e,n,t){n=e.exports=t(2)(),n.push([e.i,".demo.resnet50 .top-container {\n margin: 10px;\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.demo.resnet50 .top-container .input-container .input-label {\n font-family: 'Nothing You Could Do',cursive;\n font-size: 16px;\n color: #69707a;\n text-align: left;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n}\n.demo.resnet50 .top-container .input-container .image-url {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n position: relative;\n}\n.demo.resnet50 .top-container .input-container .image-url span {\n margin: 0 10px;\n font-family: 'Nothing You Could Do',cursive;\n font-size: 16px;\n color: #69707a;\n}\n.demo.resnet50 .top-container .controls {\n width: 250px;\n margin-left: 40px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center\n}\n.demo.resnet50 .top-container .controls > .mdl-switch {\n margin-bottom: 5px;\n}\n.demo.resnet50 .top-container .controls > .mdl-switch .mdl-switch__label {\n font-size: 12px !important;\n}\n.demo.resnet50 .columns.input-output {\n max-width: 800px;\n margin: 0 auto;\n}\n.demo.resnet50 .columns.input-output .column {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.resnet50 .columns.input-output .column.input-column {\n position: relative;\n}\n.demo.resnet50 .columns.input-output .column.input-column .loading-indicator {\n position: absolute;\n top: 0;\n left: -10px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-item-align: start;\n align-self: flex-start;\n}\n.demo.resnet50 .columns.input-output .column.input-column .loading-indicator .mdl-spinner {\n margin: 20px;\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n}\n.demo.resnet50 .columns.input-output .column.input-column .loading-indicator .error {\n color: #D24D57;\n font-size: 14px;\n font-family: 'Fira Sans',sans-serif;\n margin: 20px;\n}\n.demo.resnet50 .columns.input-output .column.input-column .canvas-container {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.demo.resnet50 .columns.input-output .column.input-column .canvas-container canvas {\n background: white;\n}\n.demo.resnet50 .columns.input-output .column.output-column .output {\n width: 370px;\n height: 160px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.resnet50 .columns.input-output .column.output-column .output .output-class {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 6px 0;\n}\n.demo.resnet50 .columns.input-output .column.output-column .output .output-class .output-label {\n text-align: right;\n width: 200px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 18px;\n color: #69707a;\n padding: 0 6px;\n border-right: 2px solid rgba(27, 188, 155, 0.3);\n}\n.demo.resnet50 .columns.input-output .column.output-column .output .output-class .output-bar {\n height: 8px;\n -webkit-transition: width 0.2s ease-out;\n transition: width 0.2s ease-out;\n}\n.demo.resnet50 .columns.input-output .column.output-column .output .output-class .output-value {\n text-align: left;\n margin-left: 5px;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 14px;\n color: #69707a;\n}\n.demo.resnet50 .columns.input-output .column.output-column .output .output-class.predicted .output-label {\n color: #1BBC9B;\n border-left-color: #1BBC9B;\n}\n.demo.resnet50 .columns.input-output .column.output-column .output .output-class.predicted .output-value {\n color: #1BBC9B;\n}\n.demo.resnet50 .architecture-container {\n min-width: 700px;\n max-width: 900px;\n margin: 0 auto;\n position: relative;\n}\n.demo.resnet50 .architecture-container .layers-row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 5px;\n position: relative;\n z-index: 1;\n}\n.demo.resnet50 .architecture-container .layers-row .layer-column {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 5px;\n}\n.demo.resnet50 .architecture-container .layers-row .layer-column .layer {\n display: inline-block;\n background: white;\n border: 2px solid white;\n border-radius: 5px;\n padding: 2px 10px 0px;\n}\n.demo.resnet50 .architecture-container .layers-row .layer-column .layer .layer-class-name {\n color: #1BBC9B;\n font-size: 14px;\n font-weight: bold;\n}\n.demo.resnet50 .architecture-container .layers-row .layer-column .layer .layer-details {\n color: #999999;\n font-size: 12px;\n font-weight: bold;\n}\n.demo.resnet50 .architecture-container .layers-row .layer-column .layer.has-result {\n border-color: #1BBC9B;\n}\n.demo.resnet50 .architecture-container .architecture-connections {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n}\n.demo.resnet50 .architecture-container .architecture-connections path {\n stroke-width: 4px;\n stroke: #AAAAAA;\n fill: none;\n}\n",""])},function(e,n,t){n=e.exports=t(2)(),n.push([e.i,".demo.xception .top-container {\n margin: 10px;\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.demo.xception .top-container .input-container .input-label {\n font-family: 'Nothing You Could Do',cursive;\n font-size: 16px;\n color: #69707a;\n text-align: left;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n}\n.demo.xception .top-container .input-container .image-url {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n position: relative;\n}\n.demo.xception .top-container .input-container .image-url span {\n margin: 0 10px;\n font-family: 'Nothing You Could Do',cursive;\n font-size: 16px;\n color: #69707a;\n}\n.demo.xception .top-container .controls {\n width: 250px;\n margin-left: 40px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center\n}\n.demo.xception .top-container .controls > .mdl-switch {\n margin-bottom: 5px;\n}\n.demo.xception .top-container .controls > .mdl-switch .mdl-switch__label {\n font-size: 12px !important;\n}\n.demo.xception .columns.input-output {\n max-width: 800px;\n margin: 0 auto;\n}\n.demo.xception .columns.input-output .column {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.xception .columns.input-output .column.input-column {\n position: relative;\n}\n.demo.xception .columns.input-output .column.input-column .loading-indicator {\n position: absolute;\n top: 0;\n left: -10px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-item-align: start;\n align-self: flex-start;\n}\n.demo.xception .columns.input-output .column.input-column .loading-indicator .mdl-spinner {\n margin: 20px;\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n}\n.demo.xception .columns.input-output .column.input-column .loading-indicator .error {\n color: #D24D57;\n font-size: 14px;\n font-family: 'Fira Sans',sans-serif;\n margin: 20px;\n}\n.demo.xception .columns.input-output .column.input-column .canvas-container {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.demo.xception .columns.input-output .column.input-column .canvas-container canvas {\n background: white;\n}\n.demo.xception .columns.input-output .column.output-column .output {\n width: 370px;\n height: 160px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.xception .columns.input-output .column.output-column .output .output-class {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 6px 0;\n}\n.demo.xception .columns.input-output .column.output-column .output .output-class .output-label {\n text-align: right;\n width: 200px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 18px;\n color: #69707a;\n padding: 0 6px;\n border-right: 2px solid rgba(27, 188, 155, 0.3);\n}\n.demo.xception .columns.input-output .column.output-column .output .output-class .output-bar {\n height: 8px;\n -webkit-transition: width 0.2s ease-out;\n transition: width 0.2s ease-out;\n}\n.demo.xception .columns.input-output .column.output-column .output .output-class .output-value {\n text-align: left;\n margin-left: 5px;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 14px;\n color: #69707a;\n}\n.demo.xception .columns.input-output .column.output-column .output .output-class.predicted .output-label {\n color: #1BBC9B;\n border-left-color: #1BBC9B;\n}\n.demo.xception .columns.input-output .column.output-column .output .output-class.predicted .output-value {\n color: #1BBC9B;\n}\n.demo.xception .architecture-container {\n min-width: 800px;\n max-width: 1200px;\n margin: 0 auto;\n position: relative;\n}\n.demo.xception .architecture-container .layers-row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 5px;\n position: relative;\n z-index: 1;\n}\n.demo.xception .architecture-container .layers-row .layer-column {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 5px;\n}\n.demo.xception .architecture-container .layers-row .layer-column .layer {\n display: inline-block;\n background: white;\n border: 2px solid white;\n border-radius: 5px;\n padding: 2px 10px 0px;\n margin: 3px;\n}\n.demo.xception .architecture-container .layers-row .layer-column .layer .layer-class-name {\n color: #1BBC9B;\n font-size: 14px;\n font-weight: bold;\n}\n.demo.xception .architecture-container .layers-row .layer-column .layer .layer-details {\n color: #999999;\n font-size: 12px;\n font-weight: bold;\n}\n.demo.xception .architecture-container .layers-row .layer-column .layer.has-result {\n border-color: #1BBC9B;\n}\n.demo.xception .architecture-container .architecture-connections {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n}\n.demo.xception .architecture-container .architecture-connections path {\n stroke-width: 4px;\n stroke: #AAAAAA;\n fill: none;\n}\n",""]);
|
|
},function(e,n,t){"use strict";function a(e,n,t){var a,o,r=e.length,i=n.arrayArgs.length,s=n.indexArgs.length>0,l=[],c=[],u=0,d=0;for(a=0;a<r;++a)c.push(["i",a,"=0"].join(""));for(o=0;o<i;++o)for(a=0;a<r;++a)d=u,u=e[a],0===a?c.push(["d",o,"s",a,"=t",o,"p",u].join("")):c.push(["d",o,"s",a,"=(t",o,"p",u,"-s",d,"*t",o,"p",d,")"].join(""));for(l.push("var "+c.join(",")),a=r-1;a>=0;--a)u=e[a],l.push(["for(i",a,"=0;i",a,"<s",u,";++i",a,"){"].join(""));for(l.push(t),a=0;a<r;++a){for(d=u,u=e[a],o=0;o<i;++o)l.push(["p",o,"+=d",o,"s",a].join(""));s&&(a>0&&l.push(["index[",d,"]-=s",d].join("")),l.push(["++index[",u,"]"].join(""))),l.push("}")}return l.join("\n")}function o(e,n,t,o){for(var r=n.length,i=t.arrayArgs.length,s=t.blockSize,l=t.indexArgs.length>0,c=[],u=0;u<i;++u)c.push(["var offset",u,"=p",u].join(""));for(var u=e;u<r;++u)c.push(["for(var j"+u+"=SS[",n[u],"]|0;j",u,">0;){"].join("")),c.push(["if(j",u,"<",s,"){"].join("")),c.push(["s",n[u],"=j",u].join("")),c.push(["j",u,"=0"].join("")),c.push(["}else{s",n[u],"=",s].join("")),c.push(["j",u,"-=",s,"}"].join("")),l&&c.push(["index[",n[u],"]=j",u].join(""));for(var u=0;u<i;++u){for(var d=["offset"+u],m=e;m<r;++m)d.push(["j",m,"*t",u,"p",n[m]].join(""));c.push(["p",u,"=(",d.join("+"),")"].join(""))}c.push(a(n,t,o));for(var u=e;u<r;++u)c.push("}");return c.join("\n")}function r(e){for(var n=0,t=e[0].length;n<t;){for(var a=1;a<e.length;++a)if(e[a][n]!==e[0][n])return n;++n}return n}function i(e,n,t){for(var a=e.body,o=[],r=[],i=0;i<e.args.length;++i){var s=e.args[i];if(!(s.count<=0)){var l=new RegExp(s.name,"g"),c="",u=n.arrayArgs.indexOf(i);switch(n.argTypes[i]){case"offset":var d=n.offsetArgIndex.indexOf(i),m=n.offsetArgs[d];u=m.array,c="+q"+d;case"array":c="p"+u+c;var p="l"+i,f="a"+u;if(0===n.arrayBlockIndices[u])1===s.count?"generic"===t[u]?s.lvalue?(o.push(["var ",p,"=",f,".get(",c,")"].join("")),a=a.replace(l,p),r.push([f,".set(",c,",",p,")"].join(""))):a=a.replace(l,[f,".get(",c,")"].join("")):a=a.replace(l,[f,"[",c,"]"].join("")):"generic"===t[u]?(o.push(["var ",p,"=",f,".get(",c,")"].join("")),a=a.replace(l,p),s.lvalue&&r.push([f,".set(",c,",",p,")"].join(""))):(o.push(["var ",p,"=",f,"[",c,"]"].join("")),a=a.replace(l,p),s.lvalue&&r.push([f,"[",c,"]=",p].join("")));else{for(var h=[s.name],b=[c],g=0;g<Math.abs(n.arrayBlockIndices[u]);g++)h.push("\\s*\\[([^\\]]+)\\]"),b.push("$"+(g+1)+"*t"+u+"b"+g);if(l=new RegExp(h.join(""),"g"),c=b.join("+"),"generic"===t[u])throw new Error("cwise: Generic arrays not supported in combination with blocks!");a=a.replace(l,[f,"[",c,"]"].join(""))}break;case"scalar":a=a.replace(l,"Y"+n.scalarArgs.indexOf(i));break;case"index":a=a.replace(l,"index");break;case"shape":a=a.replace(l,"shape")}}}return[o.join("\n"),a,r.join("\n")].join("\n").trim()}function s(e){for(var n=new Array(e.length),t=!0,a=0;a<e.length;++a){var o=e[a],r=o.match(/\d+/);r=r?r[0]:"",0===o.charAt(0)?n[a]="u"+o.charAt(1)+r:n[a]=o.charAt(0)+r,a>0&&(t=t&&n[a]===n[a-1])}return t?n[0]:n.join("")}function l(e,n){for(var t=n[1].length-Math.abs(e.arrayBlockIndices[0])|0,l=new Array(e.arrayArgs.length),u=new Array(e.arrayArgs.length),d=0;d<e.arrayArgs.length;++d)u[d]=n[2*d],l[d]=n[2*d+1];for(var m=[],p=[],f=[],h=[],b=[],d=0;d<e.arrayArgs.length;++d){e.arrayBlockIndices[d]<0?(f.push(0),h.push(t),m.push(t),p.push(t+e.arrayBlockIndices[d])):(f.push(e.arrayBlockIndices[d]),h.push(e.arrayBlockIndices[d]+t),m.push(0),p.push(e.arrayBlockIndices[d]));for(var g=[],v=0;v<l[d].length;v++)f[d]<=l[d][v]&&l[d][v]<h[d]&&g.push(l[d][v]-f[d]);b.push(g)}for(var x=["SS"],_=["'use strict'"],w=[],v=0;v<t;++v)w.push(["s",v,"=SS[",v,"]"].join(""));for(var d=0;d<e.arrayArgs.length;++d){x.push("a"+d),x.push("t"+d),x.push("p"+d);for(var v=0;v<t;++v)w.push(["t",d,"p",v,"=t",d,"[",f[d]+v,"]"].join(""));for(var v=0;v<Math.abs(e.arrayBlockIndices[d]);++v)w.push(["t",d,"b",v,"=t",d,"[",m[d]+v,"]"].join(""))}for(var d=0;d<e.scalarArgs.length;++d)x.push("Y"+d);if(e.shapeArgs.length>0&&w.push("shape=SS.slice(0)"),e.indexArgs.length>0){for(var y=new Array(t),d=0;d<t;++d)y[d]="0";w.push(["index=[",y.join(","),"]"].join(""))}for(var d=0;d<e.offsetArgs.length;++d){for(var k=e.offsetArgs[d],N=[],v=0;v<k.offset.length;++v)0!==k.offset[v]&&(1===k.offset[v]?N.push(["t",k.array,"p",v].join("")):N.push([k.offset[v],"*t",k.array,"p",v].join("")));0===N.length?w.push("q"+d+"=0"):w.push(["q",d,"=",N.join("+")].join(""))}var C=c([].concat(e.pre.thisVars).concat(e.body.thisVars).concat(e.post.thisVars));w=w.concat(C),_.push("var "+w.join(","));for(var d=0;d<e.arrayArgs.length;++d)_.push("p"+d+"|=0");e.pre.body.length>3&&_.push(i(e.pre,e,u));var L=i(e.body,e,u),z=r(b);z<t?_.push(o(z,b[0],e,L)):_.push(a(b[0],e,L)),e.post.body.length>3&&_.push(i(e.post,e,u)),e.debug&&console.log("-----Generated cwise routine for ",n,":\n"+_.join("\n")+"\n----------");var R=[e.funcName||"unnamed","_cwise_loop_",l[0].join("s"),"m",z,s(u)].join(""),S=new Function(["function ",R,"(",x.join(","),"){",_.join("\n"),"} return ",R].join(""));return S()}var c=t(60);e.exports=l},function(e,n,t){"use strict";function a(e){var n=["'use strict'","var CACHED={}"],t=[],a=e.funcName+"_cwise_thunk";n.push(["return function ",a,"(",e.shimArgs.join(","),"){"].join(""));for(var r=[],i=[],s=[["array",e.arrayArgs[0],".shape.slice(",Math.max(0,e.arrayBlockIndices[0]),e.arrayBlockIndices[0]<0?","+e.arrayBlockIndices[0]+")":")"].join("")],l=[],c=[],u=0;u<e.arrayArgs.length;++u){var d=e.arrayArgs[u];t.push(["t",d,"=array",d,".dtype,","r",d,"=array",d,".order"].join("")),r.push("t"+d),r.push("r"+d),i.push("t"+d),i.push("r"+d+".join()"),s.push("array"+d+".data"),s.push("array"+d+".stride"),s.push("array"+d+".offset|0"),u>0&&(l.push("array"+e.arrayArgs[0]+".shape.length===array"+d+".shape.length+"+(Math.abs(e.arrayBlockIndices[0])-Math.abs(e.arrayBlockIndices[u]))),c.push("array"+e.arrayArgs[0]+".shape[shapeIndex+"+Math.max(0,e.arrayBlockIndices[0])+"]===array"+d+".shape[shapeIndex+"+Math.max(0,e.arrayBlockIndices[u])+"]"))}e.arrayArgs.length>1&&(n.push("if (!("+l.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same dimensionality!')"),n.push("for(var shapeIndex=array"+e.arrayArgs[0]+".shape.length-"+Math.abs(e.arrayBlockIndices[0])+"; shapeIndex-->0;) {"),n.push("if (!("+c.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same shape!')"),n.push("}"));for(var u=0;u<e.scalarArgs.length;++u)s.push("scalar"+e.scalarArgs[u]);t.push(["type=[",i.join(","),"].join()"].join("")),t.push("proc=CACHED[type]"),n.push("var "+t.join(",")),n.push(["if(!proc){","CACHED[type]=proc=compile([",r.join(","),"])}","return proc(",s.join(","),")}"].join("")),e.debug&&console.log("-----Generated thunk:\n"+n.join("\n")+"\n----------");var m=new Function("compile",n.join("\n"));return m(o.bind(void 0,e))}var o=t(105);e.exports=a},function(e,n,t){"use strict";(function(n){function a(e,n,t){this.name=e,this.lvalue=n,this.rvalue=t,this.count=0}function o(e,n,t,a){this.body=e,this.args=n,this.thisVars=t,this.localVars=a}function r(e){if("eval"===e)throw new Error("cwise-parser: eval() not allowed");return"undefined"!=typeof window?e in window:"undefined"!=typeof n?e in n:"undefined"!=typeof self&&e in self}function i(e){for(var n=e.body[0].expression.callee.params,t=new Array(n.length),a=0;a<n.length;++a)t[a]=n[a].name;return t}function s(e){function n(e){var n=b+e.replace(/\_/g,"__");return y.push(n),n}function t(e){var n="this_"+e.replace(/\_/g,"__");return k.push(n),n}function s(e,n){for(var t=e.range[0],a=e.range[1],o=t+1;o<a;++o)_[o]="";_[t]=n}function d(e){return"'"+e.replace(/\_/g,"\\_").replace(/\'/g,"'")+"'"}function m(e){return _.slice(e.range[0],e.range[1]).join("")}function p(e){return"AssignmentExpression"===e.parent.type&&e.parent.left===e?"="===e.parent.operator?N:N|C:"UpdateExpression"===e.parent.type?N|C:C}for(var f=["(",e,")()"].join(""),h=l.parse(f,{range:!0}),b="_inline_"+u++ +"_",g=i(h),v=new Array(g.length),x=0;x<g.length;++x)v[x]=new a([b,"arg",x,"_"].join(""),!1,!1);for(var _=new Array(f.length),x=0,w=f.length;x<w;++x)_[x]=f.charAt(x);var y=[],k=[],N=1,C=2;!function e(a,o){if(a.parent=o,"MemberExpression"===a.type)a.computed?(e(a.object,a),e(a.property,a)):"ThisExpression"===a.object.type?s(a,t(a.property.name)):e(a.object,a);else{if("ThisExpression"===a.type)throw new Error("cwise-parser: Computed this is not allowed");if("Identifier"===a.type){var i=a.name,l=g.indexOf(i);if(l>=0){var c=v[l],u=p(a);u&N&&(c.lvalue=!0),u&C&&(c.rvalue=!0),++c.count,s(a,c.name)}else r(i)||s(a,n(i))}else if("Literal"===a.type)"string"==typeof a.value&&s(a,d(a.value));else{if("WithStatement"===a.type)throw new Error("cwise-parser: with() statements not allowed");for(var m=Object.keys(a),f=0,h=m.length;f<h;++f)if("parent"!==m[f]){var b=a[m[f]];if(b)if(b instanceof Array)for(var x=0;x<b.length;++x)b[x]&&"string"==typeof b[x].type&&e(b[x],a);else"string"==typeof b.type&&e(b,a)}}}}(h.body[0].expression.callee.body,void 0),c(y),c(k);var L=new o(m(h.body[0].expression.callee.body),v,k,y);return L}var l=t(110),c=t(60),u=0;e.exports=s}).call(n,t(61))},function(e,n,t){"use strict";function a(e){for(var n in e)i.indexOf(n)<0&&s.indexOf(n)<0&&console.warn("cwise: Unknown argument '"+n+"' passed to expression compiler");for(var t=0;t<i.length;++t)if(!e[i[t]])throw new Error("cwise: Missing argument: "+i[t]);return r({args:e.args,pre:o(e.pre||function(){}),body:o(e.body),post:o(e.post||function(){}),debug:!!e.printCode,funcName:e.funcName||e.body.name||"cwise",blockSize:e.blockSize||64})}var o=t(107),r=t(39),i=["args","body"],s=["pre","post","printCode","funcName","blockSize"];e.exports=a},function(e,n){"use strict";function t(e,n,a){var o=0|e[a];if(o<=0)return[];var r,i=new Array(o);if(a===e.length-1)for(r=0;r<o;++r)i[r]=n;else for(r=0;r<o;++r)i[r]=t(e,n,a+1);return i}function a(e,n){var t,a;for(t=new Array(e),a=0;a<e;++a)t[a]=n;return t}function o(e,n){switch("undefined"==typeof n&&(n=0),typeof e){case"number":if(e>0)return a(0|e,n);break;case"object":if("number"==typeof e.length)return t(e,n,0)}return[]}e.exports=o},function(e,n,t){var a,o,r;!function(t,i){"use strict";o=[n],a=i,r="function"==typeof a?a.apply(n,o):a,!(void 0!==r&&(e.exports=r))}(this,function(e){"use strict";function n(e,n){if(!e)throw new Error("ASSERT: "+n)}function t(e){return e>=48&&e<=57}function a(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function o(e){return"01234567".indexOf(e)>=0}function r(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function i(e){return 10===e||13===e||8232===e||8233===e}function s(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&rn.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function l(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&rn.NonAsciiIdentifierPart.test(String.fromCharCode(e))}function c(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0;default:return!1}}function u(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function d(e){return"eval"===e||"arguments"===e}function m(e){if(cn&&u(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function p(e,t,a,o,r){var i;n("number"==typeof a,"Comment must have valid position"),bn.lastCommentStart>=a||(bn.lastCommentStart=a,i={type:e,value:t},gn.range&&(i.range=[a,o]),gn.loc&&(i.loc=r),gn.comments.push(i),gn.attachComment&&(gn.leadingComments.push(i),gn.trailingComments.push(i)))}function f(e){var n,t,a,o;for(n=un-e,t={start:{line:dn,column:un-mn-e}};un<pn;)if(a=ln.charCodeAt(un),++un,i(a))return gn.comments&&(o=ln.slice(n+e,un-1),t.end={line:dn,column:un-mn-1},p("Line",o,n,un-1,t)),13===a&&10===ln.charCodeAt(un)&&++un,++dn,void(mn=un);gn.comments&&(o=ln.slice(n+e,un),t.end={line:dn,column:un-mn},p("Line",o,n,un,t))}function h(){var e,n,t,a;for(gn.comments&&(e=un-2,n={start:{line:dn,column:un-mn-2}});un<pn;)if(t=ln.charCodeAt(un),i(t))13===t&&10===ln.charCodeAt(un+1)&&++un,++dn,++un,mn=un,un>=pn&&F({},on.UnexpectedToken,"ILLEGAL");else if(42===t){if(47===ln.charCodeAt(un+1))return++un,++un,void(gn.comments&&(a=ln.slice(e+2,un-2),n.end={line:dn,column:un-mn},p("Block",a,e,un,n)));++un}else++un;F({},on.UnexpectedToken,"ILLEGAL")}function b(){var e,n;for(n=0===un;un<pn;)if(e=ln.charCodeAt(un),r(e))++un;else if(i(e))++un,13===e&&10===ln.charCodeAt(un)&&++un,++dn,mn=un,n=!0;else if(47===e)if(e=ln.charCodeAt(un+1),47===e)++un,++un,f(2),n=!0;else{if(42!==e)break;++un,++un,h()}else if(n&&45===e){if(45!==ln.charCodeAt(un+1)||62!==ln.charCodeAt(un+2))break;un+=3,f(3)}else{if(60!==e)break;if("!--"!==ln.slice(un+1,un+4))break;++un,++un,++un,++un,f(4)}}function g(e){var n,t,o,r=0;for(t="u"===e?4:2,n=0;n<t;++n){if(!(un<pn&&a(ln[un])))return"";o=ln[un++],r=16*r+"0123456789abcdef".indexOf(o.toLowerCase())}return String.fromCharCode(r)}function v(){var e,n;for(e=ln.charCodeAt(un++),n=String.fromCharCode(e),92===e&&(117!==ln.charCodeAt(un)&&F({},on.UnexpectedToken,"ILLEGAL"),++un,e=g("u"),e&&"\\"!==e&&s(e.charCodeAt(0))||F({},on.UnexpectedToken,"ILLEGAL"),n=e);un<pn&&(e=ln.charCodeAt(un),l(e));)++un,n+=String.fromCharCode(e),92===e&&(n=n.substr(0,n.length-1),117!==ln.charCodeAt(un)&&F({},on.UnexpectedToken,"ILLEGAL"),++un,e=g("u"),e&&"\\"!==e&&l(e.charCodeAt(0))||F({},on.UnexpectedToken,"ILLEGAL"),n+=e);return n}function x(){var e,n;for(e=un++;un<pn;){if(n=ln.charCodeAt(un),92===n)return un=e,v();if(!l(n))break;++un}return ln.slice(e,un)}function _(){var e,n,t;return e=un,n=92===ln.charCodeAt(un)?v():x(),t=1===n.length?Ze.Identifier:m(n)?Ze.Keyword:"null"===n?Ze.NullLiteral:"true"===n||"false"===n?Ze.BooleanLiteral:Ze.Identifier,{type:t,value:n,lineNumber:dn,lineStart:mn,start:e,end:un}}function w(){var e,n,t,a,o=un,r=ln.charCodeAt(un),i=ln[un];switch(r){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++un,gn.tokenize&&(40===r?gn.openParenToken=gn.tokens.length:123===r&&(gn.openCurlyToken=gn.tokens.length)),{type:Ze.Punctuator,value:String.fromCharCode(r),lineNumber:dn,lineStart:mn,start:o,end:un};default:if(e=ln.charCodeAt(un+1),61===e)switch(r){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return un+=2,{type:Ze.Punctuator,value:String.fromCharCode(r)+String.fromCharCode(e),lineNumber:dn,lineStart:mn,start:o,end:un};case 33:case 61:return un+=2,61===ln.charCodeAt(un)&&++un,{type:Ze.Punctuator,value:ln.slice(o,un),lineNumber:dn,lineStart:mn,start:o,end:un}}}return a=ln.substr(un,4),">>>="===a?(un+=4,{type:Ze.Punctuator,value:a,lineNumber:dn,lineStart:mn,start:o,end:un}):(t=a.substr(0,3),">>>"===t||"<<="===t||">>="===t?(un+=3,{type:Ze.Punctuator,value:t,lineNumber:dn,lineStart:mn,start:o,end:un}):(n=t.substr(0,2),i===n[1]&&"+-<>&|".indexOf(i)>=0||"=>"===n?(un+=2,{type:Ze.Punctuator,value:n,lineNumber:dn,lineStart:mn,start:o,end:un}):"<>=!+-*%&|^/".indexOf(i)>=0?(++un,{type:Ze.Punctuator,value:i,lineNumber:dn,lineStart:mn,start:o,end:un}):void F({},on.UnexpectedToken,"ILLEGAL")))}function y(e){for(var n="";un<pn&&a(ln[un]);)n+=ln[un++];return 0===n.length&&F({},on.UnexpectedToken,"ILLEGAL"),s(ln.charCodeAt(un))&&F({},on.UnexpectedToken,"ILLEGAL"),{type:Ze.NumericLiteral,value:parseInt("0x"+n,16),lineNumber:dn,lineStart:mn,start:e,end:un}}function k(e){for(var n="0"+ln[un++];un<pn&&o(ln[un]);)n+=ln[un++];return(s(ln.charCodeAt(un))||t(ln.charCodeAt(un)))&&F({},on.UnexpectedToken,"ILLEGAL"),{type:Ze.NumericLiteral,value:parseInt(n,8),octal:!0,lineNumber:dn,lineStart:mn,start:e,end:un}}function N(){var e,n;for(e=un+1;e<pn;++e){if(n=ln[e],"8"===n||"9"===n)return!1;if(!o(n))return!0}return!0}function C(){var e,a,r;if(r=ln[un],n(t(r.charCodeAt(0))||"."===r,"Numeric literal must start with a decimal digit or a decimal point"),a=un,e="","."!==r){if(e=ln[un++],r=ln[un],"0"===e){if("x"===r||"X"===r)return++un,y(a);if(o(r)&&N())return k(a)}for(;t(ln.charCodeAt(un));)e+=ln[un++];r=ln[un]}if("."===r){for(e+=ln[un++];t(ln.charCodeAt(un));)e+=ln[un++];r=ln[un]}if("e"===r||"E"===r)if(e+=ln[un++],r=ln[un],"+"!==r&&"-"!==r||(e+=ln[un++]),t(ln.charCodeAt(un)))for(;t(ln.charCodeAt(un));)e+=ln[un++];else F({},on.UnexpectedToken,"ILLEGAL");return s(ln.charCodeAt(un))&&F({},on.UnexpectedToken,"ILLEGAL"),{type:Ze.NumericLiteral,value:parseFloat(e),lineNumber:dn,lineStart:mn,start:a,end:un}}function L(){var e,t,a,r,s,l,c,u,d="",m=!1;for(c=dn,u=mn,e=ln[un],n("'"===e||'"'===e,"String literal must starts with a quote"),t=un,++un;un<pn;){if(a=ln[un++],a===e){e="";break}if("\\"===a)if(a=ln[un++],a&&i(a.charCodeAt(0)))++dn,"\r"===a&&"\n"===ln[un]&&++un,mn=un;else switch(a){case"u":case"x":l=un,s=g(a),s?d+=s:(un=l,d+=a);break;case"n":d+="\n";break;case"r":d+="\r";break;case"t":d+="\t";break;case"b":d+="\b";break;case"f":d+="\f";break;case"v":d+="\v";break;default:o(a)?(r="01234567".indexOf(a),0!==r&&(m=!0),un<pn&&o(ln[un])&&(m=!0,r=8*r+"01234567".indexOf(ln[un++]),"0123".indexOf(a)>=0&&un<pn&&o(ln[un])&&(r=8*r+"01234567".indexOf(ln[un++]))),d+=String.fromCharCode(r)):d+=a}else{if(i(a.charCodeAt(0)))break;d+=a}}return""!==e&&F({},on.UnexpectedToken,"ILLEGAL"),{type:Ze.StringLiteral,value:d,octal:m,startLineNumber:c,startLineStart:u,lineNumber:dn,lineStart:mn,start:t,end:un}}function z(e,n){var t;try{t=new RegExp(e,n)}catch(e){F({},on.InvalidRegExp)}return t}function R(){var e,t,a,o,r;for(e=ln[un],n("/"===e,"Regular expression literal must start with a slash"),t=ln[un++],a=!1,o=!1;un<pn;)if(e=ln[un++],t+=e,"\\"===e)e=ln[un++],i(e.charCodeAt(0))&&F({},on.UnterminatedRegExp),t+=e;else if(i(e.charCodeAt(0)))F({},on.UnterminatedRegExp);else if(a)"]"===e&&(a=!1);else{if("/"===e){o=!0;break}"["===e&&(a=!0)}return o||F({},on.UnterminatedRegExp),r=t.substr(1,t.length-2),{value:r,literal:t}}function S(){var e,n,t,a;for(n="",t="";un<pn&&(e=ln[un],l(e.charCodeAt(0)));)if(++un,"\\"===e&&un<pn)if(e=ln[un],"u"===e){if(++un,a=un,e=g("u"))for(t+=e,n+="\\u";a<un;++a)n+=ln[a];else un=a,t+="u",n+="\\u";V({},on.UnexpectedToken,"ILLEGAL")}else n+="\\",V({},on.UnexpectedToken,"ILLEGAL");else t+=e,n+=e;return{value:t,literal:n}}function A(){var e,n,t,a;return hn=null,b(),e=un,n=R(),t=S(),a=z(n.value,t.value),gn.tokenize?{type:Ze.RegularExpression,value:a,lineNumber:dn,lineStart:mn,start:e,end:un}:{literal:n.literal+t.literal,value:a,start:e,end:un}}function B(){var e,n,t,a;return b(),e=un,n={start:{line:dn,column:un-mn}},t=A(),n.end={line:dn,column:un-mn},gn.tokenize||(gn.tokens.length>0&&(a=gn.tokens[gn.tokens.length-1],a.range[0]===e&&"Punctuator"===a.type&&("/"!==a.value&&"/="!==a.value||gn.tokens.pop())),gn.tokens.push({type:"RegularExpression",value:t.literal,range:[e,un],loc:n})),t}function E(e){return e.type===Ze.Identifier||e.type===Ze.Keyword||e.type===Ze.BooleanLiteral||e.type===Ze.NullLiteral}function j(){var e,n;if(e=gn.tokens[gn.tokens.length-1],!e)return B();if("Punctuator"===e.type){if("]"===e.value)return w();if(")"===e.value)return n=gn.tokens[gn.openParenToken-1],!n||"Keyword"!==n.type||"if"!==n.value&&"while"!==n.value&&"for"!==n.value&&"with"!==n.value?w():B();if("}"===e.value){if(gn.tokens[gn.openCurlyToken-3]&&"Keyword"===gn.tokens[gn.openCurlyToken-3].type){if(n=gn.tokens[gn.openCurlyToken-4],!n)return w()}else{if(!gn.tokens[gn.openCurlyToken-4]||"Keyword"!==gn.tokens[gn.openCurlyToken-4].type)return w();if(n=gn.tokens[gn.openCurlyToken-5],!n)return B()}return nn.indexOf(n.value)>=0?w():B()}return B()}return"Keyword"===e.type&&"this"!==e.value?B():w()}function I(){var e;return b(),un>=pn?{type:Ze.EOF,lineNumber:dn,lineStart:mn,start:un,end:un}:(e=ln.charCodeAt(un),s(e)?_():40===e||41===e||59===e?w():39===e||34===e?L():46===e?t(ln.charCodeAt(un+1))?C():w():t(e)?C():gn.tokenize&&47===e?j():w())}function D(){var e,n,t;return b(),e={start:{line:dn,column:un-mn}},n=I(),e.end={line:dn,column:un-mn},n.type!==Ze.EOF&&(t=ln.slice(n.start,n.end),gn.tokens.push({type:en[n.type],value:t,range:[n.start,n.end],loc:e})),n}function U(){var e;return e=hn,un=e.end,dn=e.lineNumber,mn=e.lineStart,hn="undefined"!=typeof gn.tokens?D():I(),un=e.end,dn=e.lineNumber,mn=e.lineStart,e}function T(){var e,n,t;e=un,n=dn,t=mn,hn="undefined"!=typeof gn.tokens?D():I(),un=e,dn=n,mn=t}function P(e,n){this.line=e,this.column=n}function M(e,n,t,a){this.start=new P(e,n),this.end=new P(t,a)}function O(){var e,n,t,a;return e=un,n=dn,t=mn,b(),a=dn!==n,un=e,dn=n,mn=t,a}function F(e,t){var a,o=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,function(e,t){return n(t<o.length,"Message reference must be in range"),o[t]});throw"number"==typeof e.lineNumber?(a=new Error("Line "+e.lineNumber+": "+r),a.index=e.start,a.lineNumber=e.lineNumber,a.column=e.start-mn+1):(a=new Error("Line "+dn+": "+r),a.index=un,a.lineNumber=dn,a.column=un-mn+1),a.description=r,a}function V(){try{F.apply(null,arguments)}catch(e){if(!gn.errors)throw e;gn.errors.push(e)}}function G(e){if(e.type===Ze.EOF&&F(e,on.UnexpectedEOS),e.type===Ze.NumericLiteral&&F(e,on.UnexpectedNumber),e.type===Ze.StringLiteral&&F(e,on.UnexpectedString),e.type===Ze.Identifier&&F(e,on.UnexpectedIdentifier),e.type===Ze.Keyword){if(c(e.value))F(e,on.UnexpectedReserved);else if(cn&&u(e.value))return void V(e,on.StrictReservedWord);F(e,on.UnexpectedToken,e.value)}F(e,on.UnexpectedToken,e.value)}function q(e){var n=U();n.type===Ze.Punctuator&&n.value===e||G(n)}function W(e){var n=U();n.type===Ze.Keyword&&n.value===e||G(n)}function H(e){return hn.type===Ze.Punctuator&&hn.value===e}function K(e){return hn.type===Ze.Keyword&&hn.value===e}function $(){var e;return hn.type===Ze.Punctuator&&(e=hn.value,"="===e||"*="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===e||">>>="===e||"&="===e||"^="===e||"|="===e)}function X(){var e,n=un,t=dn,a=mn,o=hn;return 59===ln.charCodeAt(un)||H(";")?void U():(e=dn,b(),dn!==e?(un=n,dn=t,mn=a,void(hn=o)):void(hn.type===Ze.EOF||H("}")||G(hn)))}function Y(e){return e.type===tn.Identifier||e.type===tn.MemberExpression}function J(){var e,n=[];for(e=hn,q("[");!H("]");)H(",")?(U(),n.push(null)):(n.push(be()),H("]")||q(","));return U(),fn.markEnd(fn.createArrayExpression(n),e)}function Q(e,n){var t,a,o;return t=cn,o=hn,a=Ge(),n&&cn&&d(e[0].name)&&V(n,on.StrictParamName),cn=t,fn.markEnd(fn.createFunctionExpression(null,e,[],a),o)}function Z(){var e,n;return n=hn,e=U(),e.type===Ze.StringLiteral||e.type===Ze.NumericLiteral?(cn&&e.octal&&V(e,on.StrictOctalLiteral),fn.markEnd(fn.createLiteral(e),n)):fn.markEnd(fn.createIdentifier(e.value),n)}function ee(){var e,n,t,a,o,r;return e=hn,r=hn,e.type===Ze.Identifier?(t=Z(),"get"!==e.value||H(":")?"set"!==e.value||H(":")?(q(":"),a=be(),fn.markEnd(fn.createProperty("init",t,a),r)):(n=Z(),q("("),e=hn,e.type!==Ze.Identifier?(q(")"),V(e,on.UnexpectedToken,e.value),a=Q([])):(o=[_e()],q(")"),a=Q(o,e)),fn.markEnd(fn.createProperty("set",n,a),r)):(n=Z(),q("("),q(")"),a=Q([]),fn.markEnd(fn.createProperty("get",n,a),r))):e.type!==Ze.EOF&&e.type!==Ze.Punctuator?(n=Z(),q(":"),a=be(),fn.markEnd(fn.createProperty("init",n,a),r)):void G(e)}function ne(){var e,n,t,a,o,r=[],i={},s=String;for(o=hn,q("{");!H("}");)e=ee(),n=e.key.type===tn.Identifier?e.key.name:s(e.key.value),a="init"===e.kind?an.Data:"get"===e.kind?an.Get:an.Set,t="$"+n,Object.prototype.hasOwnProperty.call(i,t)?(i[t]===an.Data?cn&&a===an.Data?V({},on.StrictDuplicateProperty):a!==an.Data&&V({},on.AccessorDataProperty):a===an.Data?V({},on.AccessorDataProperty):i[t]&a&&V({},on.AccessorGetSet),i[t]|=a):i[t]=a,r.push(e),H("}")||q(",");return q("}"),fn.markEnd(fn.createObjectExpression(r),o)}function te(){var e;return q("("),e=ge(),q(")"),e}function ae(){var e,n,t,a;if(H("("))return te();if(H("["))return J();if(H("{"))return ne();if(e=hn.type,a=hn,e===Ze.Identifier)t=fn.createIdentifier(U().value);else if(e===Ze.StringLiteral||e===Ze.NumericLiteral)cn&&hn.octal&&V(hn,on.StrictOctalLiteral),t=fn.createLiteral(U());else if(e===Ze.Keyword){if(K("function"))return He();K("this")?(U(),t=fn.createThisExpression()):G(U())}else e===Ze.BooleanLiteral?(n=U(),n.value="true"===n.value,t=fn.createLiteral(n)):e===Ze.NullLiteral?(n=U(),n.value=null,t=fn.createLiteral(n)):H("/")||H("/=")?(t="undefined"!=typeof gn.tokens?fn.createLiteral(B()):fn.createLiteral(A()),T()):G(U());return fn.markEnd(t,a)}function oe(){var e=[];if(q("("),!H(")"))for(;un<pn&&(e.push(be()),!H(")"));)q(",");return q(")"),e}function re(){var e,n;return n=hn,e=U(),E(e)||G(e),fn.markEnd(fn.createIdentifier(e.value),n)}function ie(){return q("."),re()}function se(){var e;return q("["),e=ge(),q("]"),e}function le(){var e,n,t;return t=hn,W("new"),e=ue(),n=H("(")?oe():[],fn.markEnd(fn.createNewExpression(e,n),t)}function ce(){var e,n,t,a,o=bn.allowIn;for(a=hn,bn.allowIn=!0,e=K("new")?le():ae();;){if(H("."))t=ie(),e=fn.createMemberExpression(".",e,t);else if(H("("))n=oe(),e=fn.createCallExpression(e,n);else{if(!H("["))break;t=se(),e=fn.createMemberExpression("[",e,t)}fn.markEnd(e,a)}return bn.allowIn=o,e}function ue(){var e,t,a;for(n(bn.allowIn,"callee of new expression always allow in keyword."),a=hn,e=K("new")?le():ae();H(".")||H("[");)H("[")?(t=se(),e=fn.createMemberExpression("[",e,t)):(t=ie(),e=fn.createMemberExpression(".",e,t)),fn.markEnd(e,a);return e}function de(){var e,n,t=hn;return e=ce(),hn.type===Ze.Punctuator&&(!H("++")&&!H("--")||O()||(cn&&e.type===tn.Identifier&&d(e.name)&&V({},on.StrictLHSPostfix),Y(e)||V({},on.InvalidLHSInAssignment),n=U(),e=fn.markEnd(fn.createPostfixExpression(n.value,e),t))),e}function me(){var e,n,t;return hn.type!==Ze.Punctuator&&hn.type!==Ze.Keyword?n=de():H("++")||H("--")?(t=hn,e=U(),n=me(),cn&&n.type===tn.Identifier&&d(n.name)&&V({},on.StrictLHSPrefix),Y(n)||V({},on.InvalidLHSInAssignment),n=fn.createUnaryExpression(e.value,n),n=fn.markEnd(n,t)):H("+")||H("-")||H("~")||H("!")?(t=hn,e=U(),n=me(),n=fn.createUnaryExpression(e.value,n),n=fn.markEnd(n,t)):K("delete")||K("void")||K("typeof")?(t=hn,e=U(),n=me(),n=fn.createUnaryExpression(e.value,n),n=fn.markEnd(n,t),cn&&"delete"===n.operator&&n.argument.type===tn.Identifier&&V({},on.StrictDelete)):n=de(),n}function pe(e,n){var t=0;if(e.type!==Ze.Punctuator&&e.type!==Ze.Keyword)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":t=7;break;case"in":t=n?7:0;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11}return t}function fe(){var e,n,t,a,o,r,i,s,l,c;if(e=hn,l=me(),a=hn,o=pe(a,bn.allowIn),0===o)return l;for(a.prec=o,U(),n=[e,hn],i=me(),r=[l,a,i];(o=pe(hn,bn.allowIn))>0;){for(;r.length>2&&o<=r[r.length-2].prec;)i=r.pop(),s=r.pop().value,l=r.pop(),t=fn.createBinaryExpression(s,l,i),n.pop(),e=n[n.length-1],fn.markEnd(t,e),r.push(t);a=U(),a.prec=o,r.push(a),n.push(hn),t=me(),r.push(t)}for(c=r.length-1,t=r[c],n.pop();c>1;)t=fn.createBinaryExpression(r[c-1].value,r[c-2],t),c-=2,e=n.pop(),fn.markEnd(t,e);return t}function he(){var e,n,t,a,o;return o=hn,e=fe(),H("?")&&(U(),n=bn.allowIn,bn.allowIn=!0,t=be(),bn.allowIn=n,q(":"),a=be(),e=fn.createConditionalExpression(e,t,a),fn.markEnd(e,o)),e}function be(){var e,n,t,a,o;return e=hn,o=hn,a=n=he(),$()&&(Y(n)||V({},on.InvalidLHSInAssignment),cn&&n.type===tn.Identifier&&d(n.name)&&V(e,on.StrictLHSAssignment),e=U(),t=be(),a=fn.markEnd(fn.createAssignmentExpression(e.value,n,t),o)),a}function ge(){var e,n=hn;if(e=be(),H(",")){for(e=fn.createSequenceExpression([e]);un<pn&&H(",");)U(),e.expressions.push(be());fn.markEnd(e,n)}return e}function ve(){for(var e,n=[];un<pn&&!H("}")&&(e=Ke(),"undefined"!=typeof e);)n.push(e);return n}function xe(){var e,n;return n=hn,q("{"),e=ve(),q("}"),fn.markEnd(fn.createBlockStatement(e),n)}function _e(){var e,n;return n=hn,e=U(),e.type!==Ze.Identifier&&G(e),fn.markEnd(fn.createIdentifier(e.value),n)}function we(e){var n,t,a=null;return t=hn,n=_e(),cn&&d(n.name)&&V({},on.StrictVarName),"const"===e?(q("="),a=be()):H("=")&&(U(),a=be()),fn.markEnd(fn.createVariableDeclarator(n,a),t)}function ye(e){var n=[];do{if(n.push(we(e)),!H(","))break;U()}while(un<pn);return n}function ke(){var e;return W("var"),e=ye(),X(),fn.createVariableDeclaration(e,"var")}function Ne(e){var n,t;return t=hn,W(e),n=ye(e),X(),fn.markEnd(fn.createVariableDeclaration(n,e),t)}function Ce(){return q(";"),fn.createEmptyStatement()}function Le(){var e=ge();return X(),fn.createExpressionStatement(e)}function ze(){var e,n,t;return W("if"),q("("),e=ge(),q(")"),n=Ve(),K("else")?(U(),t=Ve()):t=null,fn.createIfStatement(e,n,t)}function Re(){var e,n,t;return W("do"),t=bn.inIteration,bn.inIteration=!0,e=Ve(),bn.inIteration=t,W("while"),q("("),n=ge(),q(")"),H(";")&&U(),fn.createDoWhileStatement(e,n)}function Se(){var e,n,t;return W("while"),q("("),e=ge(),q(")"),t=bn.inIteration,bn.inIteration=!0,n=Ve(),bn.inIteration=t,fn.createWhileStatement(e,n)}function Ae(){var e,n,t;return t=hn,e=U(),n=ye(),fn.markEnd(fn.createVariableDeclaration(n,e.value),t)}function Be(){var e,n,t,a,o,r,i,s=bn.allowIn;return e=n=t=null,W("for"),q("("),H(";")?U():(K("var")||K("let")?(bn.allowIn=!1,e=Ae(),bn.allowIn=s,1===e.declarations.length&&K("in")&&(U(),a=e,o=ge(),e=null)):(bn.allowIn=!1,e=ge(),bn.allowIn=s,K("in")&&(Y(e)||V({},on.InvalidLHSInForIn),U(),a=e,o=ge(),e=null)),"undefined"==typeof a&&q(";")),"undefined"==typeof a&&(H(";")||(n=ge()),q(";"),H(")")||(t=ge())),q(")"),i=bn.inIteration,bn.inIteration=!0,r=Ve(),bn.inIteration=i,"undefined"==typeof a?fn.createForStatement(e,n,t,r):fn.createForInStatement(a,o,r)}function Ee(){var e,n=null;return W("continue"),59===ln.charCodeAt(un)?(U(),bn.inIteration||F({},on.IllegalContinue),fn.createContinueStatement(null)):O()?(bn.inIteration||F({},on.IllegalContinue),fn.createContinueStatement(null)):(hn.type===Ze.Identifier&&(n=_e(),e="$"+n.name,Object.prototype.hasOwnProperty.call(bn.labelSet,e)||F({},on.UnknownLabel,n.name)),X(),null!==n||bn.inIteration||F({},on.IllegalContinue),fn.createContinueStatement(n))}function je(){var e,n=null;return W("break"),59===ln.charCodeAt(un)?(U(),bn.inIteration||bn.inSwitch||F({},on.IllegalBreak),fn.createBreakStatement(null)):O()?(bn.inIteration||bn.inSwitch||F({},on.IllegalBreak),fn.createBreakStatement(null)):(hn.type===Ze.Identifier&&(n=_e(),e="$"+n.name,Object.prototype.hasOwnProperty.call(bn.labelSet,e)||F({},on.UnknownLabel,n.name)),X(),null!==n||bn.inIteration||bn.inSwitch||F({},on.IllegalBreak),fn.createBreakStatement(n))}function Ie(){var e=null;return W("return"),bn.inFunctionBody||V({},on.IllegalReturn),32===ln.charCodeAt(un)&&s(ln.charCodeAt(un+1))?(e=ge(),X(),fn.createReturnStatement(e)):O()?fn.createReturnStatement(null):(H(";")||H("}")||hn.type===Ze.EOF||(e=ge()),X(),fn.createReturnStatement(e))}function De(){var e,n;return cn&&(b(),V({},on.StrictModeWith)),W("with"),q("("),e=ge(),q(")"),n=Ve(),fn.createWithStatement(e,n)}function Ue(){var e,n,t,a=[];for(t=hn,K("default")?(U(),e=null):(W("case"),e=ge()),q(":");un<pn&&!(H("}")||K("default")||K("case"));)n=Ve(),a.push(n);return fn.markEnd(fn.createSwitchCase(e,a),t)}function Te(){var e,n,t,a,o;if(W("switch"),q("("),e=ge(),q(")"),q("{"),n=[],H("}"))return U(),fn.createSwitchStatement(e,n);for(a=bn.inSwitch,bn.inSwitch=!0,o=!1;un<pn&&!H("}");)t=Ue(),null===t.test&&(o&&F({},on.MultipleDefaultsInSwitch),o=!0),n.push(t);return bn.inSwitch=a,q("}"),fn.createSwitchStatement(e,n);
|
|
}function Pe(){var e;return W("throw"),O()&&F({},on.NewlineAfterThrow),e=ge(),X(),fn.createThrowStatement(e)}function Me(){var e,n,t;return t=hn,W("catch"),q("("),H(")")&&G(hn),e=_e(),cn&&d(e.name)&&V({},on.StrictCatchVariable),q(")"),n=xe(),fn.markEnd(fn.createCatchClause(e,n),t)}function Oe(){var e,n=[],t=null;return W("try"),e=xe(),K("catch")&&n.push(Me()),K("finally")&&(U(),t=xe()),0!==n.length||t||F({},on.NoCatchOrFinally),fn.createTryStatement(e,[],n,t)}function Fe(){return W("debugger"),X(),fn.createDebuggerStatement()}function Ve(){var e,n,t,a,o=hn.type;if(o===Ze.EOF&&G(hn),o===Ze.Punctuator&&"{"===hn.value)return xe();if(a=hn,o===Ze.Punctuator)switch(hn.value){case";":return fn.markEnd(Ce(),a);case"(":return fn.markEnd(Le(),a)}if(o===Ze.Keyword)switch(hn.value){case"break":return fn.markEnd(je(),a);case"continue":return fn.markEnd(Ee(),a);case"debugger":return fn.markEnd(Fe(),a);case"do":return fn.markEnd(Re(),a);case"for":return fn.markEnd(Be(),a);case"function":return fn.markEnd(We(),a);case"if":return fn.markEnd(ze(),a);case"return":return fn.markEnd(Ie(),a);case"switch":return fn.markEnd(Te(),a);case"throw":return fn.markEnd(Pe(),a);case"try":return fn.markEnd(Oe(),a);case"var":return fn.markEnd(ke(),a);case"while":return fn.markEnd(Se(),a);case"with":return fn.markEnd(De(),a)}return e=ge(),e.type===tn.Identifier&&H(":")?(U(),t="$"+e.name,Object.prototype.hasOwnProperty.call(bn.labelSet,t)&&F({},on.Redeclaration,"Label",e.name),bn.labelSet[t]=!0,n=Ve(),delete bn.labelSet[t],fn.markEnd(fn.createLabeledStatement(e,n),a)):(X(),fn.markEnd(fn.createExpressionStatement(e),a))}function Ge(){var e,n,t,a,o,r,i,s,l,c=[];for(l=hn,q("{");un<pn&&hn.type===Ze.StringLiteral&&(n=hn,e=Ke(),c.push(e),e.expression.type===tn.Literal);)t=ln.slice(n.start+1,n.end-1),"use strict"===t?(cn=!0,a&&V(a,on.StrictOctalLiteral)):!a&&n.octal&&(a=n);for(o=bn.labelSet,r=bn.inIteration,i=bn.inSwitch,s=bn.inFunctionBody,bn.labelSet={},bn.inIteration=!1,bn.inSwitch=!1,bn.inFunctionBody=!0;un<pn&&!H("}")&&(e=Ke(),"undefined"!=typeof e);)c.push(e);return q("}"),bn.labelSet=o,bn.inIteration=r,bn.inSwitch=i,bn.inFunctionBody=s,fn.markEnd(fn.createBlockStatement(c),l)}function qe(e){var n,t,a,o,r,i,s=[];if(q("("),!H(")"))for(o={};un<pn&&(t=hn,n=_e(),r="$"+t.value,cn?(d(t.value)&&(a=t,i=on.StrictParamName),Object.prototype.hasOwnProperty.call(o,r)&&(a=t,i=on.StrictParamDupe)):e||(d(t.value)?(e=t,i=on.StrictParamName):u(t.value)?(e=t,i=on.StrictReservedWord):Object.prototype.hasOwnProperty.call(o,r)&&(e=t,i=on.StrictParamDupe)),s.push(n),o[r]=!0,!H(")"));)q(",");return q(")"),{params:s,stricted:a,firstRestricted:e,message:i}}function We(){var e,n,t,a,o,r,i,s,l,c=[];return l=hn,W("function"),t=hn,e=_e(),cn?d(t.value)&&V(t,on.StrictFunctionName):d(t.value)?(r=t,i=on.StrictFunctionName):u(t.value)&&(r=t,i=on.StrictReservedWord),o=qe(r),c=o.params,a=o.stricted,r=o.firstRestricted,o.message&&(i=o.message),s=cn,n=Ge(),cn&&r&&F(r,i),cn&&a&&V(a,i),cn=s,fn.markEnd(fn.createFunctionDeclaration(e,c,[],n),l)}function He(){var e,n,t,a,o,r,i,s,l=null,c=[];return s=hn,W("function"),H("(")||(e=hn,l=_e(),cn?d(e.value)&&V(e,on.StrictFunctionName):d(e.value)?(t=e,a=on.StrictFunctionName):u(e.value)&&(t=e,a=on.StrictReservedWord)),o=qe(t),c=o.params,n=o.stricted,t=o.firstRestricted,o.message&&(a=o.message),i=cn,r=Ge(),cn&&t&&F(t,a),cn&&n&&V(n,a),cn=i,fn.markEnd(fn.createFunctionExpression(l,c,[],r),s)}function Ke(){if(hn.type===Ze.Keyword)switch(hn.value){case"const":case"let":return Ne(hn.value);case"function":return We();default:return Ve()}if(hn.type!==Ze.EOF)return Ve()}function $e(){for(var e,n,t,a,o=[];un<pn&&(n=hn,n.type===Ze.StringLiteral)&&(e=Ke(),o.push(e),e.expression.type===tn.Literal);)t=ln.slice(n.start+1,n.end-1),"use strict"===t?(cn=!0,a&&V(a,on.StrictOctalLiteral)):!a&&n.octal&&(a=n);for(;un<pn&&(e=Ke(),"undefined"!=typeof e);)o.push(e);return o}function Xe(){var e,n;return b(),T(),n=hn,cn=!1,e=$e(),fn.markEnd(fn.createProgram(e),n)}function Ye(){var e,n,t,a=[];for(e=0;e<gn.tokens.length;++e)n=gn.tokens[e],t={type:n.type,value:n.value},gn.range&&(t.range=n.range),gn.loc&&(t.loc=n.loc),a.push(t);gn.tokens=a}function Je(e,n){var t,a,o;t=String,"string"==typeof e||e instanceof String||(e=t(e)),fn=sn,ln=e,un=0,dn=ln.length>0?1:0,mn=0,pn=ln.length,hn=null,bn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},gn={},n=n||{},n.tokens=!0,gn.tokens=[],gn.tokenize=!0,gn.openParenToken=-1,gn.openCurlyToken=-1,gn.range="boolean"==typeof n.range&&n.range,gn.loc="boolean"==typeof n.loc&&n.loc,"boolean"==typeof n.comment&&n.comment&&(gn.comments=[]),"boolean"==typeof n.tolerant&&n.tolerant&&(gn.errors=[]);try{if(T(),hn.type===Ze.EOF)return gn.tokens;for(a=U();hn.type!==Ze.EOF;)try{a=U()}catch(e){if(a=hn,gn.errors){gn.errors.push(e);break}throw e}Ye(),o=gn.tokens,"undefined"!=typeof gn.comments&&(o.comments=gn.comments),"undefined"!=typeof gn.errors&&(o.errors=gn.errors)}catch(e){throw e}finally{gn={}}return o}function Qe(e,n){var t,a;a=String,"string"==typeof e||e instanceof String||(e=a(e)),fn=sn,ln=e,un=0,dn=ln.length>0?1:0,mn=0,pn=ln.length,hn=null,bn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},gn={},"undefined"!=typeof n&&(gn.range="boolean"==typeof n.range&&n.range,gn.loc="boolean"==typeof n.loc&&n.loc,gn.attachComment="boolean"==typeof n.attachComment&&n.attachComment,gn.loc&&null!==n.source&&void 0!==n.source&&(gn.source=a(n.source)),"boolean"==typeof n.tokens&&n.tokens&&(gn.tokens=[]),"boolean"==typeof n.comment&&n.comment&&(gn.comments=[]),"boolean"==typeof n.tolerant&&n.tolerant&&(gn.errors=[]),gn.attachComment&&(gn.range=!0,gn.comments=[],gn.bottomRightStack=[],gn.trailingComments=[],gn.leadingComments=[]));try{t=Xe(),"undefined"!=typeof gn.comments&&(t.comments=gn.comments),"undefined"!=typeof gn.tokens&&(Ye(),t.tokens=gn.tokens),"undefined"!=typeof gn.errors&&(t.errors=gn.errors)}catch(e){throw e}finally{gn={}}return t}var Ze,en,nn,tn,an,on,rn,sn,ln,cn,un,dn,mn,pn,fn,hn,bn,gn;Ze={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9},en={},en[Ze.BooleanLiteral]="Boolean",en[Ze.EOF]="<end>",en[Ze.Identifier]="Identifier",en[Ze.Keyword]="Keyword",en[Ze.NullLiteral]="Null",en[Ze.NumericLiteral]="Numeric",en[Ze.Punctuator]="Punctuator",en[Ze.StringLiteral]="String",en[Ze.RegularExpression]="RegularExpression",nn=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],tn={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},an={Data:1,Get:2,Set:4},on={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},rn={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},sn={name:"SyntaxTree",processComment:function(e){var n,t;if(!(e.type===tn.Program&&e.body.length>0)){for(gn.trailingComments.length>0?gn.trailingComments[0].range[0]>=e.range[1]?(t=gn.trailingComments,gn.trailingComments=[]):gn.trailingComments.length=0:gn.bottomRightStack.length>0&&gn.bottomRightStack[gn.bottomRightStack.length-1].trailingComments&&gn.bottomRightStack[gn.bottomRightStack.length-1].trailingComments[0].range[0]>=e.range[1]&&(t=gn.bottomRightStack[gn.bottomRightStack.length-1].trailingComments,delete gn.bottomRightStack[gn.bottomRightStack.length-1].trailingComments);gn.bottomRightStack.length>0&&gn.bottomRightStack[gn.bottomRightStack.length-1].range[0]>=e.range[0];)n=gn.bottomRightStack.pop();n?n.leadingComments&&n.leadingComments[n.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=n.leadingComments,delete n.leadingComments):gn.leadingComments.length>0&&gn.leadingComments[gn.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=gn.leadingComments,gn.leadingComments=[]),t&&(e.trailingComments=t),gn.bottomRightStack.push(e)}},markEnd:function(e,n){return gn.range&&(e.range=[n.start,un]),gn.loc&&(e.loc=new M(void 0===n.startLineNumber?n.lineNumber:n.startLineNumber,n.start-(void 0===n.startLineStart?n.lineStart:n.startLineStart),dn,un-mn),this.postProcess(e)),gn.attachComment&&this.processComment(e),e},postProcess:function(e){return gn.source&&(e.loc.source=gn.source),e},createArrayExpression:function(e){return{type:tn.ArrayExpression,elements:e}},createAssignmentExpression:function(e,n,t){return{type:tn.AssignmentExpression,operator:e,left:n,right:t}},createBinaryExpression:function(e,n,t){var a="||"===e||"&&"===e?tn.LogicalExpression:tn.BinaryExpression;return{type:a,operator:e,left:n,right:t}},createBlockStatement:function(e){return{type:tn.BlockStatement,body:e}},createBreakStatement:function(e){return{type:tn.BreakStatement,label:e}},createCallExpression:function(e,n){return{type:tn.CallExpression,callee:e,arguments:n}},createCatchClause:function(e,n){return{type:tn.CatchClause,param:e,body:n}},createConditionalExpression:function(e,n,t){return{type:tn.ConditionalExpression,test:e,consequent:n,alternate:t}},createContinueStatement:function(e){return{type:tn.ContinueStatement,label:e}},createDebuggerStatement:function(){return{type:tn.DebuggerStatement}},createDoWhileStatement:function(e,n){return{type:tn.DoWhileStatement,body:e,test:n}},createEmptyStatement:function(){return{type:tn.EmptyStatement}},createExpressionStatement:function(e){return{type:tn.ExpressionStatement,expression:e}},createForStatement:function(e,n,t,a){return{type:tn.ForStatement,init:e,test:n,update:t,body:a}},createForInStatement:function(e,n,t){return{type:tn.ForInStatement,left:e,right:n,body:t,each:!1}},createFunctionDeclaration:function(e,n,t,a){return{type:tn.FunctionDeclaration,id:e,params:n,defaults:t,body:a,rest:null,generator:!1,expression:!1}},createFunctionExpression:function(e,n,t,a){return{type:tn.FunctionExpression,id:e,params:n,defaults:t,body:a,rest:null,generator:!1,expression:!1}},createIdentifier:function(e){return{type:tn.Identifier,name:e}},createIfStatement:function(e,n,t){return{type:tn.IfStatement,test:e,consequent:n,alternate:t}},createLabeledStatement:function(e,n){return{type:tn.LabeledStatement,label:e,body:n}},createLiteral:function(e){return{type:tn.Literal,value:e.value,raw:ln.slice(e.start,e.end)}},createMemberExpression:function(e,n,t){return{type:tn.MemberExpression,computed:"["===e,object:n,property:t}},createNewExpression:function(e,n){return{type:tn.NewExpression,callee:e,arguments:n}},createObjectExpression:function(e){return{type:tn.ObjectExpression,properties:e}},createPostfixExpression:function(e,n){return{type:tn.UpdateExpression,operator:e,argument:n,prefix:!1}},createProgram:function(e){return{type:tn.Program,body:e}},createProperty:function(e,n,t){return{type:tn.Property,key:n,value:t,kind:e}},createReturnStatement:function(e){return{type:tn.ReturnStatement,argument:e}},createSequenceExpression:function(e){return{type:tn.SequenceExpression,expressions:e}},createSwitchCase:function(e,n){return{type:tn.SwitchCase,test:e,consequent:n}},createSwitchStatement:function(e,n){return{type:tn.SwitchStatement,discriminant:e,cases:n}},createThisExpression:function(){return{type:tn.ThisExpression}},createThrowStatement:function(e){return{type:tn.ThrowStatement,argument:e}},createTryStatement:function(e,n,t,a){return{type:tn.TryStatement,block:e,guardedHandlers:n,handlers:t,finalizer:a}},createUnaryExpression:function(e,n){return"++"===e||"--"===e?{type:tn.UpdateExpression,operator:e,argument:n,prefix:!0}:{type:tn.UnaryExpression,operator:e,argument:n,prefix:!0}},createVariableDeclaration:function(e,n){return{type:tn.VariableDeclaration,declarations:e,kind:n}},createVariableDeclarator:function(e,n){return{type:tn.VariableDeclarator,id:e,init:n}},createWhileStatement:function(e,n){return{type:tn.WhileStatement,test:e,body:n}},createWithStatement:function(e,n){return{type:tn.WithStatement,object:e,body:n}}},e.version="1.2.5",e.tokenize=Je,e.parse=Qe,e.Syntax=function(){var e,n={};"function"==typeof Object.create&&(n=Object.create(null));for(e in tn)tn.hasOwnProperty(e)&&(n[e]=tn[e]);return"function"==typeof Object.freeze&&Object.freeze(n),n}()})},function(e,n){"use strict";function t(e){for(var n=new Array(e),t=0;t<e;++t)n[t]=t;return n}e.exports=t},function(e,n){function t(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function a(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&t(e.slice(0,0))}/*!
|
|
* Determine if an object is a Buffer
|
|
*
|
|
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
|
|
* @license MIT
|
|
*/
|
|
e.exports=function(e){return null!=e&&(t(e)||a(e)||!!e._isBuffer)}},function(e,n,t){var a=t(5),o=t(1),r=a(o,"DataView");e.exports=r},function(e,n,t){function a(e){var n=-1,t=e?e.length:0;for(this.clear();++n<t;){var a=e[n];this.set(a[0],a[1])}}var o=t(167),r=t(168),i=t(169),s=t(170),l=t(171);a.prototype.clear=o,a.prototype.delete=r,a.prototype.get=i,a.prototype.has=s,a.prototype.set=l,e.exports=a},function(e,n,t){var a=t(5),o=t(1),r=a(o,"Promise");e.exports=r},function(e,n,t){var a=t(5),o=t(1),r=a(o,"Set");e.exports=r},function(e,n,t){function a(e){var n=-1,t=e?e.length:0;for(this.__data__=new o;++n<t;)this.add(e[n])}var o=t(24),r=t(192),i=t(193);a.prototype.add=a.prototype.push=r,a.prototype.has=i,e.exports=a},function(e,n,t){var a=t(1),o=a.Uint8Array;e.exports=o},function(e,n,t){var a=t(5),o=t(1),r=a(o,"WeakMap");e.exports=r},function(e,n){function t(e,n,t){switch(t.length){case 0:return e.call(n);case 1:return e.call(n,t[0]);case 2:return e.call(n,t[0],t[1]);case 3:return e.call(n,t[0],t[1],t[2])}return e.apply(n,t)}e.exports=t},function(e,n){function t(e,n){for(var t=-1,a=e?e.length:0,o=0,r=[];++t<a;){var i=e[t];n(i,t,e)&&(r[o++]=i)}return r}e.exports=t},function(e,n,t){function a(e,n){var t=i(e),a=!t&&r(e),u=!t&&!a&&s(e),m=!t&&!a&&!u&&c(e),p=t||a||u||m,f=p?o(e.length,String):[],h=f.length;for(var b in e)!n&&!d.call(e,b)||p&&("length"==b||u&&("offset"==b||"parent"==b)||m&&("buffer"==b||"byteLength"==b||"byteOffset"==b)||l(b,h))||f.push(b);return f}var o=t(150),r=t(29),i=t(3),s=t(56),l=t(26),c=t(31),u=Object.prototype,d=u.hasOwnProperty;e.exports=a},function(e,n){function t(e,n){for(var t=-1,a=n.length,o=e.length;++t<a;)e[o+t]=n[t];return e}e.exports=t},function(e,n){function t(e,n){for(var t=-1,a=e?e.length:0;++t<a;)if(n(e[t],t,e))return!0;return!1}e.exports=t},function(e,n,t){function a(e,n){var t=[];return o(e,function(e,a,o){n(e,a,o)&&t.push(e)}),t}var o=t(42);e.exports=a},function(e,n){function t(e,n,t,a){for(var o=e.length,r=t+(a?1:-1);a?r--:++r<o;)if(n(e[r],r,e))return r;return-1}e.exports=t},function(e,n,t){var a=t(157),o=a();e.exports=o},function(e,n,t){function a(e,n){return e&&o(e,n,r)}var o=t(127),r=t(20);e.exports=a},function(e,n){function t(e){return o.call(e)}var a=Object.prototype,o=a.toString;e.exports=t},function(e,n){function t(e,n){return null!=e&&n in Object(e)}e.exports=t},function(e,n,t){function a(e){return o(e)&&s.call(e)==r}var o=t(10),r="[object Arguments]",i=Object.prototype,s=i.toString;e.exports=a},function(e,n,t){function a(e,n,t,a,b,v){var x=c(e),_=c(n),w=f,y=f;x||(w=l(e),w=w==p?h:w),_||(y=l(n),y=y==p?h:y);var k=w==h,N=y==h,C=w==y;if(C&&u(e)){if(!u(n))return!1;x=!0,k=!1}if(C&&!k)return v||(v=new o),x||d(e)?r(e,n,t,a,b,v):i(e,n,w,t,a,b,v);if(!(b&m)){var L=k&&g.call(e,"__wrapped__"),z=N&&g.call(n,"__wrapped__");if(L||z){var R=L?e.value():e,S=z?n.value():n;return v||(v=new o),t(R,S,a,b,v)}}return!!C&&(v||(v=new o),s(e,n,t,a,b,v))}var o=t(40),r=t(48),i=t(161),s=t(162),l=t(164),c=t(3),u=t(56),d=t(31),m=2,p="[object Arguments]",f="[object Array]",h="[object Object]",b=Object.prototype,g=b.hasOwnProperty;e.exports=a},function(e,n,t){function a(e,n,t,a){var l=t.length,c=l,u=!a;if(null==e)return!c;for(e=Object(e);l--;){var d=t[l];if(u&&d[2]?d[1]!==e[d[0]]:!(d[0]in e))return!1}for(;++l<c;){d=t[l];var m=d[0],p=e[m],f=d[1];if(u&&d[2]){if(void 0===p&&!(m in e))return!1}else{var h=new o;if(a)var b=a(p,f,m,e,n,h);if(!(void 0===b?r(f,p,a,i|s,h):b))return!1}}return!0}var o=t(40),r=t(45),i=1,s=2;e.exports=a},function(e,n,t){function a(e){if(!i(e)||r(e))return!1;var n=o(e)?f:c;return n.test(s(e))}var o=t(57),r=t(174),i=t(6),s=t(52),l=/[\\^$.*+?()[\]{}|]/g,c=/^\[object .+?Constructor\]$/,u=Function.prototype,d=Object.prototype,m=u.toString,p=d.hasOwnProperty,f=RegExp("^"+m.call(p).replace(l,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=a},function(e,n,t){function a(e){return r(e)&&o(e.length)&&!!A[E.call(e)]}var o=t(30),r=t(10),i="[object Arguments]",s="[object Array]",l="[object Boolean]",c="[object Date]",u="[object Error]",d="[object Function]",m="[object Map]",p="[object Number]",f="[object Object]",h="[object RegExp]",b="[object Set]",g="[object String]",v="[object WeakMap]",x="[object ArrayBuffer]",_="[object DataView]",w="[object Float32Array]",y="[object Float64Array]",k="[object Int8Array]",N="[object Int16Array]",C="[object Int32Array]",L="[object Uint8Array]",z="[object Uint8ClampedArray]",R="[object Uint16Array]",S="[object Uint32Array]",A={};A[w]=A[y]=A[k]=A[N]=A[C]=A[L]=A[z]=A[R]=A[S]=!0,A[i]=A[s]=A[x]=A[l]=A[_]=A[c]=A[u]=A[d]=A[m]=A[p]=A[f]=A[h]=A[b]=A[g]=A[v]=!1;var B=Object.prototype,E=B.toString;e.exports=a},function(e,n,t){function a(e){if(!o(e))return r(e);var n=[];for(var t in Object(e))s.call(e,t)&&"constructor"!=t&&n.push(t);return n}var o=t(175),r=t(188),i=Object.prototype,s=i.hasOwnProperty;e.exports=a},function(e,n,t){function a(e,n){var t=-1,a=r(e)?Array(e.length):[];return o(e,function(e,o,r){a[++t]=n(e,o,r)}),a}var o=t(42),r=t(9);e.exports=a},function(e,n,t){function a(e){var n=r(e);return 1==n.length&&n[0][2]?i(n[0][0],n[0][1]):function(t){return t===e||o(t,e,n)}}var o=t(133),r=t(163),i=t(51);e.exports=a},function(e,n,t){function a(e,n){return s(e)&&l(n)?c(u(e),n):function(t){var a=r(t,e);return void 0===a&&a===n?i(t,e):o(n,a,void 0,d|m)}}var o=t(45),r=t(206),i=t(207),s=t(17),l=t(50),c=t(51),u=t(19),d=1,m=2;e.exports=a},function(e,n,t){function a(e,n,t){var a=-1;n=o(n.length?n:[u],l(r));var d=i(e,function(e,t,r){var i=o(n,function(n){return n(e)});return{criteria:i,index:++a,value:e}});return s(d,function(e,n){return c(e,n,t)})}var o=t(41),r=t(15),i=t(137),s=t(148),l=t(46),c=t(154),u=t(8);e.exports=a},function(e,n){function t(e){return function(n){return null==n?void 0:n[e]}}e.exports=t},function(e,n,t){function a(e){return function(n){return o(n,e)}}var o=t(44);e.exports=a},function(e,n){function t(e,n){return e+a(o()*(n-e+1))}var a=Math.floor,o=Math.random;e.exports=t},function(e,n){function t(e,n,t,r){for(var i=-1,s=o(a((n-e)/(t||1)),0),l=Array(s);s--;)l[r?s:++i]=e,e+=t;return l}var a=Math.ceil,o=Math.max;e.exports=t},function(e,n,t){function a(e,n){return i(r(e,n,o),e+"")}var o=t(8),r=t(191),i=t(195);e.exports=a},function(e,n,t){var a=t(203),o=t(160),r=t(8),i=o?function(e,n){return o(e,"toString",{configurable:!0,enumerable:!1,value:a(n),writable:!0})}:r;e.exports=i},function(e,n){function t(e,n,t){var a=-1,o=e.length;n<0&&(n=-n>o?0:o+n),t=t>o?o:t,t<0&&(t+=o),o=n>t?0:t-n>>>0,n>>>=0;for(var r=Array(o);++a<o;)r[a]=e[a+n];return r}e.exports=t},function(e,n){function t(e,n){var t=e.length;for(e.sort(n);t--;)e[t]=e[t].value;return e}e.exports=t},function(e,n){function t(e,n){for(var t,a=-1,o=e.length;++a<o;){var r=n(e[a]);void 0!==r&&(t=void 0===t?r:t+r)}return t}e.exports=t},function(e,n){function t(e,n){for(var t=-1,a=Array(e);++t<e;)a[t]=n(t);return a}e.exports=t},function(e,n,t){function a(e){if("string"==typeof e)return e;if(i(e))return r(e,a)+"";if(s(e))return u?u.call(e):"";var n=e+"";return"0"==n&&1/e==-l?"-0":n}var o=t(25),r=t(41),i=t(3),s=t(11),l=1/0,c=o?o.prototype:void 0,u=c?c.toString:void 0;e.exports=a},function(e,n){function t(e,n){return e.has(n)}e.exports=t},function(e,n,t){function a(e,n){if(e!==n){var t=void 0!==e,a=null===e,r=e===e,i=o(e),s=void 0!==n,l=null===n,c=n===n,u=o(n);if(!l&&!u&&!i&&e>n||i&&s&&c&&!l&&!u||a&&s&&c||!t&&c||!r)return 1;if(!a&&!i&&!u&&e<n||u&&t&&r&&!a&&!i||l&&t&&r||!s&&r||!c)return-1}return 0}var o=t(11);e.exports=a},function(e,n,t){function a(e,n,t){for(var a=-1,r=e.criteria,i=n.criteria,s=r.length,l=t.length;++a<s;){var c=o(r[a],i[a]);if(c){if(a>=l)return c;var u=t[a];return c*("desc"==u?-1:1)}}return e.index-n.index}var o=t(153);e.exports=a},function(e,n,t){var a=t(1),o=a["__core-js_shared__"];e.exports=o},function(e,n,t){function a(e,n){return function(t,a){if(null==t)return t;if(!o(t))return e(t,a);for(var r=t.length,i=n?r:-1,s=Object(t);(n?i--:++i<r)&&a(s[i],i,s)!==!1;);return t}}var o=t(9);e.exports=a},function(e,n){function t(e){return function(n,t,a){for(var o=-1,r=Object(n),i=a(n),s=i.length;s--;){var l=i[e?s:++o];if(t(r[l],l,r)===!1)break}return n}}e.exports=t},function(e,n,t){function a(e){return function(n,t,a){var s=Object(n);if(!r(n)){var l=o(t,3);n=i(n),t=function(e){return l(s[e],e,s)}}var c=e(n,t,a);return c>-1?s[l?n[c]:c]:void 0}}var o=t(15),r=t(9),i=t(20);e.exports=a},function(e,n,t){function a(e){return function(n,t,a){return a&&"number"!=typeof a&&r(n,t,a)&&(t=a=void 0),n=i(n),void 0===t?(t=n,n=0):t=i(t),a=void 0===a?n<t?1:-1:i(a),o(n,t,a,e)}}var o=t(144),r=t(27),i=t(32);e.exports=a},function(e,n,t){var a=t(5),o=function(){try{var e=a(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},function(e,n,t){function a(e,n,t,a,o,k,C){switch(t){case y:if(e.byteLength!=n.byteLength||e.byteOffset!=n.byteOffset)return!1;e=e.buffer,n=n.buffer;case w:return!(e.byteLength!=n.byteLength||!a(new r(e),new r(n)));case m:case p:case b:return i(+e,+n);case f:return e.name==n.name&&e.message==n.message;case g:case x:return e==n+"";case h:var L=l;case v:var z=k&d;if(L||(L=c),e.size!=n.size&&!z)return!1;var R=C.get(e);if(R)return R==n;k|=u,C.set(e,n);var S=s(L(e),L(n),a,o,k,C);return C.delete(e),S;case _:if(N)return N.call(e)==N.call(n)}return!1}var o=t(25),r=t(118),i=t(28),s=t(48),l=t(186),c=t(194),u=1,d=2,m="[object Boolean]",p="[object Date]",f="[object Error]",h="[object Map]",b="[object Number]",g="[object RegExp]",v="[object Set]",x="[object String]",_="[object Symbol]",w="[object ArrayBuffer]",y="[object DataView]",k=o?o.prototype:void 0,N=k?k.valueOf:void 0;e.exports=a},function(e,n,t){function a(e,n,t,a,i,l){var c=i&r,u=o(e),d=u.length,m=o(n),p=m.length;if(d!=p&&!c)return!1;for(var f=d;f--;){var h=u[f];if(!(c?h in n:s.call(n,h)))return!1}var b=l.get(e);if(b&&l.get(n))return b==n;var g=!0;l.set(e,n),l.set(n,e);for(var v=c;++f<d;){h=u[f];var x=e[h],_=n[h];if(a)var w=c?a(_,x,h,n,e,l):a(x,_,h,e,n,l);if(!(void 0===w?x===_||t(x,_,a,i,l):w)){g=!1;break}v||(v="constructor"==h)}if(g&&!v){var y=e.constructor,k=n.constructor;y!=k&&"constructor"in e&&"constructor"in n&&!("function"==typeof y&&y instanceof y&&"function"==typeof k&&k instanceof k)&&(g=!1)}return l.delete(e),l.delete(n),g}var o=t(20),r=2,i=Object.prototype,s=i.hasOwnProperty;e.exports=a},function(e,n,t){function a(e){for(var n=r(e),t=n.length;t--;){var a=n[t],i=e[a];n[t]=[a,i,o(i)]}return n}var o=t(50),r=t(20);e.exports=a},function(e,n,t){var a=t(113),o=t(23),r=t(115),i=t(116),s=t(119),l=t(129),c=t(52),u="[object Map]",d="[object Object]",m="[object Promise]",p="[object Set]",f="[object WeakMap]",h="[object DataView]",b=Object.prototype,g=b.toString,v=c(a),x=c(o),_=c(r),w=c(i),y=c(s),k=l;(a&&k(new a(new ArrayBuffer(1)))!=h||o&&k(new o)!=u||r&&k(r.resolve())!=m||i&&k(new i)!=p||s&&k(new s)!=f)&&(k=function(e){var n=g.call(e),t=n==d?e.constructor:void 0,a=t?c(t):void 0;if(a)switch(a){case v:return h;case x:return u;case _:return m;case w:return p;case y:return f}return n}),e.exports=k},function(e,n){function t(e,n){return null==e?void 0:e[n]}e.exports=t},function(e,n,t){function a(e,n,t){n=l(n,e)?[n]:o(n);for(var a=-1,d=n.length,m=!1;++a<d;){var p=u(n[a]);if(!(m=null!=e&&t(e,p)))break;e=e[p]}return m||++a!=d?m:(d=e?e.length:0,!!d&&c(d)&&s(p,d)&&(i(e)||r(e)))}var o=t(47),r=t(29),i=t(3),s=t(26),l=t(17),c=t(30),u=t(19);e.exports=a},function(e,n,t){function a(){this.__data__=o?o(null):{},this.size=0}var o=t(18);e.exports=a},function(e,n){function t(e){var n=this.has(e)&&delete this.__data__[e];return this.size-=n?1:0,n}e.exports=t},function(e,n,t){function a(e){var n=this.__data__;if(o){var t=n[e];return t===r?void 0:t}return s.call(n,e)?n[e]:void 0}var o=t(18),r="__lodash_hash_undefined__",i=Object.prototype,s=i.hasOwnProperty;e.exports=a},function(e,n,t){function a(e){var n=this.__data__;return o?void 0!==n[e]:i.call(n,e)}var o=t(18),r=Object.prototype,i=r.hasOwnProperty;e.exports=a},function(e,n,t){function a(e,n){var t=this.__data__;return this.size+=this.has(e)?0:1,t[e]=o&&void 0===n?r:n,this}var o=t(18),r="__lodash_hash_undefined__";e.exports=a},function(e,n,t){function a(e){return i(e)||r(e)||!!(s&&e&&e[s])}var o=t(25),r=t(29),i=t(3),s=o?o.isConcatSpreadable:void 0;e.exports=a},function(e,n){function t(e){var n=typeof e;return"string"==n||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==e:null===e}e.exports=t},function(e,n,t){function a(e){return!!r&&r in e}var o=t(155),r=function(){var e=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=a},function(e,n){function t(e){var n=e&&e.constructor,t="function"==typeof n&&n.prototype||a;return e===t}var a=Object.prototype;e.exports=t},function(e,n){function t(){this.__data__=[],this.size=0}e.exports=t},function(e,n,t){function a(e){var n=this.__data__,t=o(n,e);if(t<0)return!1;var a=n.length-1;return t==a?n.pop():i.call(n,t,1),--this.size,!0}var o=t(14),r=Array.prototype,i=r.splice;e.exports=a},function(e,n,t){function a(e){var n=this.__data__,t=o(n,e);return t<0?void 0:n[t][1]}var o=t(14);e.exports=a},function(e,n,t){function a(e){return o(this.__data__,e)>-1}var o=t(14);e.exports=a},function(e,n,t){function a(e,n){var t=this.__data__,a=o(t,e);return a<0?(++this.size,t.push([e,n])):t[a][1]=n,this}var o=t(14);e.exports=a},function(e,n,t){function a(){this.size=0,this.__data__={hash:new o,map:new(i||r),string:new o}}var o=t(114),r=t(13),i=t(23);e.exports=a},function(e,n,t){function a(e){var n=o(this,e).delete(e);return this.size-=n?1:0,n}var o=t(16);e.exports=a},function(e,n,t){function a(e){return o(this,e).get(e)}var o=t(16);e.exports=a},function(e,n,t){function a(e){return o(this,e).has(e)}var o=t(16);e.exports=a},function(e,n,t){function a(e,n){var t=o(this,e),a=t.size;return t.set(e,n),this.size+=t.size==a?0:1,this}var o=t(16);e.exports=a},function(e,n){function t(e){var n=-1,t=Array(e.size);return e.forEach(function(e,a){t[++n]=[a,e]}),t}e.exports=t},function(e,n,t){function a(e){var n=o(e,function(e){return t.size===r&&t.clear(),e}),t=n.cache;return n}var o=t(208),r=500;e.exports=a},function(e,n,t){var a=t(190),o=a(Object.keys,Object);e.exports=o},function(e,n,t){(function(e){var a=t(49),o="object"==typeof n&&n&&!n.nodeType&&n,r=o&&"object"==typeof e&&e&&!e.nodeType&&e,i=r&&r.exports===o,s=i&&a.process,l=function(){try{return s&&s.binding("util")}catch(e){}}();e.exports=l}).call(n,t(62)(e))},function(e,n){function t(e,n){return function(t){return e(n(t))}}e.exports=t},function(e,n,t){function a(e,n,t){return n=r(void 0===n?e.length-1:n,0),function(){for(var a=arguments,i=-1,s=r(a.length-n,0),l=Array(s);++i<s;)l[i]=a[n+i];i=-1;for(var c=Array(n+1);++i<n;)c[i]=a[i];return c[n]=t(l),o(e,this,c)}}var o=t(120),r=Math.max;e.exports=a},function(e,n){function t(e){return this.__data__.set(e,a),this}var a="__lodash_hash_undefined__";e.exports=t},function(e,n){function t(e){return this.__data__.has(e)}e.exports=t},function(e,n){function t(e){var n=-1,t=Array(e.size);return e.forEach(function(e){t[++n]=e}),t}e.exports=t},function(e,n,t){var a=t(146),o=t(196),r=o(a);e.exports=r},function(e,n){function t(e){var n=0,t=0;return function(){var i=r(),s=o-(i-t);if(t=i,s>0){if(++n>=a)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}var a=500,o=16,r=Date.now;e.exports=t},function(e,n,t){function a(){this.__data__=new o,this.size=0}var o=t(13);e.exports=a},function(e,n){function t(e){var n=this.__data__,t=n.delete(e);return this.size=n.size,t}e.exports=t},function(e,n){function t(e){return this.__data__.get(e)}e.exports=t},function(e,n){function t(e){return this.__data__.has(e)}e.exports=t},function(e,n,t){function a(e,n){var t=this.__data__;if(t instanceof o){var a=t.__data__;if(!r||a.length<s-1)return a.push([e,n]),this.size=++t.size,this;t=this.__data__=new i(a)}return t.set(e,n),this.size=t.size,this}var o=t(13),r=t(23),i=t(24),s=200;e.exports=a},function(e,n,t){var a=t(187),o=t(218),r=/^\./,i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,l=a(function(e){e=o(e);var n=[];return r.test(e)&&n.push(""),e.replace(i,function(e,t,a,o){n.push(a?o.replace(s,"$1"):t||e)}),n});e.exports=l},function(e,n){function t(e){return function(){return e}}e.exports=t},function(e,n,t){var a=t(158),o=t(55),r=a(o);e.exports=r},function(e,n,t){function a(e){var n=e?e.length:0;return n?o(e,1):[]}var o=t(43);e.exports=a},function(e,n,t){function a(e,n,t){var a=null==e?void 0:o(e,n);return void 0===a?t:a}var o=t(44);e.exports=a},function(e,n,t){function a(e,n){return null!=e&&r(e,n,o)}var o=t(130),r=t(166);e.exports=a},function(e,n,t){function a(e,n){if("function"!=typeof e||n&&"function"!=typeof n)throw new TypeError(r);var t=function(){var a=arguments,o=n?n.apply(this,a):a[0],r=t.cache;if(r.has(o))return r.get(o);var i=e.apply(this,a);return t.cache=r.set(o,i)||r,i};return t.cache=new(a.Cache||o),t}var o=t(24),r="Expected a function";a.Cache=o,e.exports=a},function(e,n,t){var a=t(1),o=function(){return a.Date.now()};e.exports=o},function(e,n,t){function a(e){return i(e)?o(s(e)):r(e)}var o=t(141),r=t(142),i=t(17),s=t(19);e.exports=a},function(e,n,t){function a(e,n,t){if(t&&"boolean"!=typeof t&&r(e,n,t)&&(n=t=void 0),void 0===t&&("boolean"==typeof n?(t=n,n=void 0):"boolean"==typeof e&&(t=e,e=void 0)),void 0===e&&void 0===n?(e=0,n=1):(e=i(e),void 0===n?(n=e,e=0):n=i(n)),e>n){var a=e;e=n,n=a}if(t||e%1||n%1){var u=c();return l(e+u*(n-e+s("1e-"+((u+"").length-1))),n)}return o(e,n)}var o=t(143),r=t(27),i=t(32),s=parseFloat,l=Math.min,c=Math.random;e.exports=a},function(e,n,t){var a=t(159),o=a();e.exports=o},function(e,n){function t(e){return e?o.call(e):e}var a=Array.prototype,o=a.reverse;e.exports=t},function(e,n,t){var a=t(43),o=t(140),r=t(145),i=t(27),s=r(function(e,n){if(null==e)return[];var t=n.length;return t>1&&i(e,n[0],n[1])?n=[]:t>2&&i(n[0],n[1],n[2])&&(n=[n[0]]),o(e,a(n,1),[])});e.exports=s},function(e,n){function t(){return!1}e.exports=t},function(e,n,t){function a(e){return e&&e.length?o(e,r):0}var o=t(149),r=t(8);e.exports=a},function(e,n,t){function a(e,n,t){return e&&e.length?(n=t||void 0===n?1:r(n),o(e,0,n<0?0:n)):[]}var o=t(147),r=t(58);e.exports=a},function(e,n,t){function a(e){return null==e?"":o(e)}var o=t(151);e.exports=a},function(e,n,t){"use strict";function a(e,n){var t,a=[],r=[];if(void 0!==n&&!Array.isArray(n))throw new Error("axes must be an Array list of dimensions to squeeze");for(t=0;t<e.shape.length;t++)(1!==e.shape[t]||void 0!==n&&n.indexOf(t)===-1)&&(a.push(e.shape[t]),r.push(e.stride[t]));return o(e.data,a,r,e.offset)}var o=t(12);e.exports=a},function(e,n,t){"use strict";var a=t(109),o=t(108),r=o({args:["array","scalar","index"],body:function(e,n,t){var a,o=n;for(a=0;a<t.length-1;++a)o=o[t[a]];o[t[t.length-1]]=e}});e.exports=function(e){var n=a(e.shape);return r(e,n),n}},function(e,n){function t(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function o(e){if(u===setTimeout)return setTimeout(e,0);if((u===t||!u)&&setTimeout)return u=setTimeout,setTimeout(e,0);try{return u(e,0)}catch(n){try{return u.call(null,e,0)}catch(n){return u.call(this,e,0)}}}function r(e){if(d===clearTimeout)return clearTimeout(e);if((d===a||!d)&&clearTimeout)return d=clearTimeout,clearTimeout(e);try{return d(e)}catch(n){try{return d.call(null,e)}catch(n){return d.call(this,e)}}}function i(){h&&p&&(h=!1,p.length?f=p.concat(f):b=-1,f.length&&s())}function s(){if(!h){var e=o(i);h=!0;for(var n=f.length;n;){for(p=f,f=[];++b<n;)p&&p[b].run();b=-1,n=f.length}p=null,h=!1,r(e)}}function l(e,n){this.fun=e,this.array=n}function c(){}var u,d,m=e.exports={};!function(){try{u="function"==typeof setTimeout?setTimeout:t}catch(e){u=t}try{d="function"==typeof clearTimeout?clearTimeout:a}catch(e){d=a}}();var p,f=[],h=!1,b=-1;m.nextTick=function(e){var n=new Array(arguments.length-1);if(arguments.length>1)for(var t=1;t<arguments.length;t++)n[t-1]=arguments[t];f.push(new l(e,n)),1!==f.length||h||o(s)},l.prototype.run=function(){this.fun.apply(null,this.array)},m.title="browser",m.browser=!0,m.env={},m.argv=[],m.version="",m.versions={},m.on=c,m.addListener=c,m.once=c,m.off=c,m.removeListener=c,m.removeAllListeners=c,m.emit=c,m.binding=function(e){throw new Error("process.binding is not supported")},m.cwd=function(){return"/"},m.chdir=function(e){throw new Error("process.chdir is not supported")},m.umask=function(){return 0}},function(e,n){e.exports='<div class="demo home">\n <div class="title"><span>Home</span></div>\n <a v-for="info in demoInfo" href="#/{{ info.path }}">\n <div class="demo-card">\n <div class="demo-card-heading">{{ info.title }}</div>\n <div class="demo-card-image"><img :src="info.imagePath" /></div>\n </div>\n </a>\n</div>\n'},function(e,n){e.exports='<div class="demo imdb-bidirectional-lstm">\n <div class="title">\n <span>Bidirectional LSTM for IMDB sentiment classification</span>\n <mdl-spinner v-if="modelLoading && loadingProgress < 100"></mdl-spinner>\n </div>\n <div class="loading-progress" v-if="modelLoading && loadingProgress < 100">\n Loading...{{ loadingProgress }}%\n </div>\n <div class="info-panel" v-if="showInfoPanel">\n <div class="info-panel-text">This demo is modified from the Keras <a target="_blank" href="https://github.com/fchollet/keras/blob/master/examples/imdb_bidirectional_lstm.py">example</a> demonstrating the Bidirectional wrapper class around an LSTM layer. Click on "load sample text" to populate the textbox with a sample IMDB movie review (preprocessed) from the test set (not used during training). You can also enter your own text into the textbox, but keep in mind the model was trained on IMDB movie reviews only (see the corresponding <a target="_blank" href="https://github.com/transcranial/keras-js/blob/master/demos/notebooks/imdb_bidirectional_lstm.ipynb">Jupyter notebook</a>). The result is a number from 0 (negative) to 1 (positive). We visualize the contributions from each word by running the forward+backward concatenated hidden state corresponding to each word through the final Dense layer.</div>\n <div class="info-panel-close">\n <div class="info-panel-close-btn" @click="closeInfoPanel"><i class="material-icons">close</i>CLOSE</div>\n </div>\n </div>\n <div class="columns input-output" v-if="!modelLoading">\n <div class="column input-column">\n <div class="input-container">\n <mdl-textfield\n floating-label="input text"\n :value.sync="inputText"\n spellcheck="false"\n textarea\n rows="10"\n @change="inputChanged"\n @keyup="inputChanged"\n @paste="inputChanged"\n ></mdl-textfield>\n <div class="input-buttons">\n <div class="input-load-button" v-on:click="randomSample"><i class="material-icons">add_circle</i>LOAD SAMPLE TEXT</div>\n <div class="input-clear-button" v-on:click="clear"><i class="material-icons">clear</i>CLEAR</div>\n </div>\n </div>\n </div>\n <div class="column output-column">\n <div class="output">\n <div class="output-heading">Result:</div>\n <div class="output-value" style="color: {{ outputColor }};">{{ Math.round(output[0] * 100) }}%</div>\n <div class="output-heading" v-if="isSampleText">Actual label for sample text: <span class="output-label" v-bind:class="sampleTextLabel">{{ sampleTextLabel }}</span></div>\n </div>\n </div>\n </div>\n <div class="architecture-container" v-if="!modelLoading">\n <div class="bg-line"></div>\n <div\n v-for="layer in architectureDiagramLayers"\n class="layer"\n :id="layer.name"\n >\n <div class="layer-class-name">{{ layer.className }}</div>\n <div class="layer-details"> {{ layer.details }}</div>\n </div>\n </div>\n <div class="lstm-visualization-container" v-if="!modelLoading && !modelRunning && inputTextParsed.length">\n <div\n v-for="word in inputTextParsed"\n class="lstm-visualization-word"\n style="background: {{ stepwiseOutputColor[$index] }};"\n >{{ word }}</div>\n </div>\n</div>\n'},function(e,n){e.exports='<div class="demo inception-v3">\n <div class="title">\n <span>Inception V3, trained on ImageNet</span>\n <mdl-spinner v-if="modelLoading && loadingProgress < 100"></mdl-spinner>\n </div>\n <div class="loading-progress" v-if="modelLoading && loadingProgress < 100">\n Loading...{{ loadingProgress }}%\n </div>\n <div class="info-panel" v-if="showInfoPanel">\n <div class="info-panel-text">\n Note that ~100 MB of weights must be loaded. We use the Keras architecture from <a target="_blank" href="https://github.com/fchollet/keras/blob/master/keras/applications/inception_v3.py">here</a> and pretrained weights from <a target="_blank" href="https://github.com/fchollet/deep-learning-models">here</a>. Enter any valid image URL as input to the network. You can also select from a list of prepopulated image URLs. The endpoint must have CORS enabled, to enable us to extract the numeric data from the canvas element, so not all URLs will work. Imgur and <a target="_blank" href="https://www.flickr.com/search/?text=&license=2%2C3%2C4%2C5%2C6%2C9&sort=interestingness-desc">Flickr creative commons</a> all work, and are good places to start. After running the network, the top-5 classes are displayed. Keep in mind also we are limited to the <a target="_blank" href="https://github.com/transcranial/keras-js/blob/master/demos/src/utils/imagenet.js">1,000 classes of ImageNet</a>. Keep in mind that this is image classification and not object detection, so the network is forced to output a single class through softmax. Best results are on images where the classification target spans a large portion of the image. All computation performed entirely in your browser. Toggling GPU on should offer significant speedups compared to CPU. Running the network may still take several seconds (optimizations to come). With "show computational flow" toggled, computation through the network will be shown in the architecture diagram (scroll down as computation is performed layer by layer). Turning this feature off will also speed up computation.\n </div>\n <div class="info-panel-close">\n <div class="info-panel-close-btn" @click="closeInfoPanel"><i class="material-icons">close</i>CLOSE</div>\n </div>\n </div>\n <div class="top-container" v-if="!modelLoading">\n <div class="input-container">\n <div class="input-label">Enter a valid image URL or select an image from the dropdown:</div>\n <div class="image-url">\n <mdl-textfield\n floating-label="enter image url"\n :value.sync="imageURLInput"\n spellcheck="false"\n @change="imageURLInputChanged"\n ></mdl-textfield>\n <span>or</span>\n <mdl-select\n label="select image"\n id="image-url-select"\n :value.sync="imageURLSelect"\n :options="imageURLSelectList"\n style="width:200px;"\n @change="imageURLSelectChanged"\n ></mdl-select>\n </div>\n </div>\n <div class="controls">\n <mdl-switch\n :checked.sync="useGpu"\n :disabled="modelLoading || modelRunning || !hasWebgl"\n @click="toggleGpu"\n >Use GPU</mdl-switch>\n <mdl-switch\n :checked.sync="showComputationFlow"\n :disabled="modelLoading || modelRunning"\n @click="toggleComputationFlow"\n >Show computation flow</mdl-switch>\n </div>\n </div>\n <div class="columns input-output" v-if="!modelLoading">\n <div class="column input-column">\n <div class="loading-indicator">\n <mdl-spinner v-if="imageLoading || modelRunning"></mdl-spinner>\n <div class="error" v-if="imageLoadingError">Error loading URL</div>\n </div>\n <div class="canvas-container">\n <canvas id="input-canvas" width="299" height="299"></canvas>\n </div>\n </div>\n <div class="column output-column">\n <div class="output">\n <div class="output-class"\n :class="{ \'predicted\': i === 0 && outputClasses[i].probability.toFixed(2) > 0 }"\n v-for="i in [0, 1, 2, 3, 4]"\n >\n <div class="output-label">{{ outputClasses[i].name }}</div>\n <div class="output-bar"\n style="width: {{ Math.round(100 * outputClasses[i].probability) }}px; background: rgba(27, 188, 155, {{ outputClasses[i].probability.toFixed(2) }});"\n ></div>\n <div class="output-value">{{ Math.round(100 * outputClasses[i].probability) }}%</div>\n </div>\n </div>\n </div>\n </div>\n <div class="architecture-container" v-if="!modelLoading">\n <div v-for="row in architectureDiagramRows" class="layers-row">\n <div v-for="layers in row" class="layer-column">\n <div\n v-for="layer in layers"\n v-if="layer.className"\n class="layer"\n :class="{ \'has-result\': layersWithResults.includes(layer.name) }"\n :id="layer.name"\n >\n <div class="layer-class-name">{{ layer.className }}</div>\n <div class="layer-details"> {{ layer.details }}</div>\n </div>\n </div>\n </div>\n <svg class="architecture-connections" width="100%" height="100%">\n <g>\n <path v-for="path in architectureDiagramPaths" :d="path" />\n </g>\n </svg>\n </div>\n</div>\n'},function(e,n){e.exports='<aside class="menu">\n <h1>Keras.js Demos</h1>\n <p class="menu-label">\n Demos\n </p>\n <ul class="menu-list">\n <li v-bind:class="{ \'active\': currentView === \'home\' }">\n <a href="#/">Home</a>\n </li>\n <li v-bind:class="{ \'active\': currentView === \'mnist-cnn\' }">\n <a href="#/mnist-cnn">\n <span class="menu-item-heading">Basic Convnet</span>\n <span class="menu-item-subheading">MNIST</span>\n </a>\n </li>\n <li v-bind:class="{ \'active\': currentView === \'mnist-vae\' }">\n <a href="#/mnist-vae">\n <span class="menu-item-heading">Convolutional VAE</span>\n <span class="menu-item-subheading">MNIST</span>\n </a>\n </li>\n <li v-bind:class="{ \'active\': currentView === \'resnet50\' }">\n <a href="#/resnet50">\n <span class="menu-item-heading">Residual Network (50-layer)</span>\n <span class="menu-item-subheading">ImageNet</span>\n </a>\n </li>\n <li v-bind:class="{ \'active\': currentView === \'inception-v3\' }">\n <a href="#/inception-v3">\n <span class="menu-item-heading">Inception V3</span>\n <span class="menu-item-subheading">ImageNet</span>\n </a>\n </li>\n <li v-bind:class="{ \'active\': currentView === \'xception\' }">\n <a href="#/xception">\n <span class="menu-item-heading">Xception</span>\n <span class="menu-item-subheading">ImageNet</span>\n </a>\n </li>\n <li v-bind:class="{ \'active\': currentView === \'imdb-bidirectional-lstm\' }">\n <a href="#/imdb-bidirectional-lstm">\n <span class="menu-item-heading">Bidirectional LSTM</span>\n <span class="menu-item-subheading">IMDB</span>\n </a>\n </li>\n </ul>\n <p class="menu-label">\n Links\n </p>\n <ul class="menu-list github">\n <li>\n <a href="https://github.com/transcranial/keras-js" target="_blank">\n <span class="menu-item-heading">\n <svg height="24" width="24" class="github-logo" viewBox="0 0 16 16" version="1.1" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>\n GitHub repo\n </span>\n </a>\n </li>\n </ul>\n <p class="menu-label">\n Contact\n </p>\n <ul class="menu-list contact">\n <li><a href="https://github.com/transcranial" target="_blank">Leon Chen <@transcranial></a></li>\n <li></li>\n </ul>\n</aside>\n';
|
|
},function(e,n){e.exports='<div class="demo mnist-cnn">\n <div class="title">\n <span>Basic Convnet for MNIST</span>\n <mdl-spinner v-if="modelLoading && loadingProgress < 100"></mdl-spinner>\n </div>\n <div class="loading-progress" v-if="modelLoading && loadingProgress < 100">\n Loading...{{ loadingProgress }}%\n </div>\n <div class="info-panel" v-if="showInfoPanel">\n <div class="info-panel-text">\n Interactive demo of a simple convnet trained on MNIST (see <a target="_blank" href="https://github.com/transcranial/keras-js/blob/master/demos/notebooks/mnist_cnn.ipynb">Jupyter notebook</a>). All computation performed entirely in your browser. Toggling GPU on/off shouldn\'t reveal any significant speed differences, as this is a fairly small network. In the architecture diagram below, intermediate outputs at each layer are also visualized.\n </div>\n <div class="info-panel-close">\n <div class="info-panel-close-btn" @click="closeInfoPanel"><i class="material-icons">close</i>CLOSE</div>\n </div>\n </div>\n <div class="columns input-output" v-if="!modelLoading">\n <div class="column input-column">\n <div class="input-container">\n <div class="input-label">Draw any digit (0-9) here <span class="arrow">⤸</span></div>\n <div class="canvas-container">\n <canvas\n id="input-canvas" width="240" height="240"\n @mousedown="activateDraw"\n @mouseup="deactivateDrawAndPredict"\n @mouseleave="deactivateDrawAndPredict"\n @mousemove="draw"\n @touchstart="activateDraw"\n @touchend="deactivateDrawAndPredict"\n @touchmove="draw"\n ></canvas>\n <canvas id="input-canvas-scaled" width="28" height="28" style="display:none;"></canvas>\n <canvas id="input-canvas-centercrop" style="display:none;"></canvas>\n </div>\n <div class="input-buttons">\n <div class="input-clear-button" v-on:click="clear"><i class="material-icons">clear</i>CLEAR</div>\n </div>\n </div>\n </div>\n <div class="column is-2 controls-column">\n <mdl-switch\n :checked.sync="useGpu"\n :disabled="modelLoading || !hasWebgl"\n @click="toggleGpu"\n >use GPU</mdl-switch>\n </div>\n <div class="column output-column">\n <div class="output">\n <div class="output-class"\n v-bind:class="{ \'predicted\': i === predictedClass }"\n v-for="i in outputClasses"\n >\n <div class="output-label">{{ i }}</div>\n <div class="output-bar"\n style="height: {{ Math.round(100 * output[i]) }}px; background: rgba(27, 188, 155, {{ output[i].toFixed(2) }});"\n ></div>\n </div>\n </div>\n </div>\n </div>\n <div class="layer-results-container" v-if="!modelLoading">\n <div class="bg-line"></div>\n <div\n v-for="layerResult in layerResultImages"\n class="layer-result"\n >\n <div class="layer-result-heading">\n <span class="layer-class">{{ layerResult.layerClass }}</span>\n <span> {{ layerDisplayConfig[layerResult.name].heading }}</span>\n </div>\n <div class="layer-result-canvas-container">\n <canvas v-for="image in layerResult.images"\n id="intermediate-result-{{ $parent.$index }}-{{ $index }}"\n width="{{ image.width }}"\n height="{{ image.height }}"\n style="display:none;"\n ></canvas>\n <canvas v-for="image in layerResult.images"\n id="intermediate-result-{{ $parent.$index }}-{{ $index }}-scaled"\n width="{{ layerDisplayConfig[layerResult.name].scalingFactor * image.width }}"\n height="{{ layerDisplayConfig[layerResult.name].scalingFactor * image.height }}"\n ></canvas>\n </div>\n </div>\n </div>\n</div>\n'},function(e,n){e.exports='<div class="demo mnist-vae">\n <div class="title">\n <span>Convolutional Variational Autoencoder, trained on MNIST</span>\n <mdl-spinner v-if="modelLoading && loadingProgress < 100"></mdl-spinner>\n </div>\n <div class="loading-progress" v-if="modelLoading && loadingProgress < 100">\n Loading...{{ loadingProgress }}%\n </div>\n <div class="info-panel" v-if="showInfoPanel">\n <div class="info-panel-text">\n Modified from the MNIST convolution/deconvolution variational autoencoder example <a target="_blank" href="https://github.com/fchollet/keras/blob/master/examples/variational_autoencoder_deconv.py">here</a>. The network demonstrated here is the generative decoder portion (see <a target="_blank" href="https://github.com/transcranial/keras-js/blob/master/demos/notebooks/mnist_vae.ipynb">Jupyter notebook</a>). The network generates an image through a series of Deconvolution2D layers from coordinates in the 2D latent space. All computation performed entirely in your browser. Toggling GPU on/off shouldn\'t reveal any significant speed differences, as this is a fairly small network. In the architecture diagram below, intermediate outputs at each layer are also visualized.\n </div>\n <div class="info-panel-close">\n <div class="info-panel-close-btn" @click="closeInfoPanel"><i class="material-icons">close</i>CLOSE</div>\n </div>\n </div>\n <div class="columns input-output" v-if="!modelLoading">\n <div class="column input-column">\n <div class="input-container">\n <div class="input-label">Click around the latent space <span class="arrow">⤸</span></div>\n <div class="canvas-container">\n <canvas\n id="input-canvas" width="200" height="200"\n @mouseenter="activateCrosshairs"\n @mouseleave="deactivateCrosshairs"\n @mousemove="draw"\n @click="selectCoordinates"\n @touchend="selectCoordinates"\n ></canvas>\n <div class="axis x-axis">\n <span>-1.5</span>\n <span>x</span>\n <span>1.5</span>\n </div>\n <div class="axis y-axis">\n <span>-1.5</span>\n <span>y</span>\n <span>1.5</span>\n </div>\n </div>\n </div>\n </div>\n <div class="column is-2 controls-column">\n <mdl-switch\n :checked.sync="useGpu"\n :disabled="modelLoading || !hasWebgl"\n @click="toggleGpu"\n >use GPU</mdl-switch>\n <div class="coordinates">\n <div class="coordinates-x">x: {{ inputCoordinates[0] < 0 ? inputCoordinates[0].toFixed(2) : inputCoordinates[0].toFixed(3) }}</div>\n <div class="coordinates-y">y: {{ inputCoordinates[1] < 0 ? inputCoordinates[1].toFixed(2) : inputCoordinates[1].toFixed(3) }}</div>\n </div>\n </div>\n <div class="column output-column">\n <div class="output">\n <canvas id="output-canvas-scaled" width="150" height="150"></canvas>\n <canvas id="output-canvas" width="27" height="27" style="display:none;"></canvas>\n </div>\n </div>\n </div>\n <div class="layer-results-container" v-if="!modelLoading">\n <div class="bg-line"></div>\n <div\n v-for="layerResult in layerResultImages"\n class="layer-result"\n >\n <div class="layer-result-heading">\n <span class="layer-class">{{ layerResult.layerClass }}</span>\n <span> {{ layerDisplayConfig[layerResult.name].heading }}</span>\n </div>\n <div class="layer-result-canvas-container">\n <canvas v-for="image in layerResult.images"\n id="intermediate-result-{{ $parent.$index }}-{{ $index }}"\n width="{{ image.width }}"\n height="{{ image.height }}"\n style="display:none;"\n ></canvas>\n <canvas v-for="image in layerResult.images"\n id="intermediate-result-{{ $parent.$index }}-{{ $index }}-scaled"\n width="{{ layerDisplayConfig[layerResult.name].scalingFactor * image.width }}"\n height="{{ layerDisplayConfig[layerResult.name].scalingFactor * image.height }}"\n ></canvas>\n </div>\n </div>\n </div>\n</div>\n'},function(e,n){e.exports='<div class="demo resnet50">\n <div class="title">\n <span>50-layer Residual Network, trained on ImageNet</span>\n <mdl-spinner v-if="modelLoading && loadingProgress < 100"></mdl-spinner>\n </div>\n <div class="loading-progress" v-if="modelLoading && loadingProgress < 100">\n Loading...{{ loadingProgress }}%\n </div>\n <div class="info-panel" v-if="showInfoPanel">\n <div class="info-panel-text">\n Note that ~100 MB of weights must be loaded. We use the Keras architecture from <a target="_blank" href="https://github.com/fchollet/keras/blob/master/keras/applications/resnet50.py">here</a> and pretrained weights from <a target="_blank" href="https://github.com/fchollet/deep-learning-models">here</a>. Enter any valid image URL as input to the network. You can also select from a list of prepopulated image URLs. The endpoint must have CORS enabled, to enable us to extract the numeric data from the canvas element, so not all URLs will work. Imgur and <a target="_blank" href="https://www.flickr.com/search/?text=&license=2%2C3%2C4%2C5%2C6%2C9&sort=interestingness-desc">Flickr creative commons</a> all work, and are good places to start. After running the network, the top-5 classes are displayed. Keep in mind also we are limited to the <a target="_blank" href="https://github.com/transcranial/keras-js/blob/master/demos/src/utils/imagenet.js">1,000 classes of ImageNet</a>. Keep in mind that this is image classification and not object detection, so the network is forced to output a single class through softmax. Best results are on images where the classification target spans a large portion of the image. All computation performed entirely in your browser. Toggling GPU on should offer significant speedups compared to CPU. Running the network may still take several seconds (optimizations to come). With "show computational flow" toggled, computation through the network will be shown in the architecture diagram (scroll down as computation is performed layer by layer). Turning this feature off will also speed up computation.\n </div>\n <div class="info-panel-close">\n <div class="info-panel-close-btn" @click="closeInfoPanel"><i class="material-icons">close</i>CLOSE</div>\n </div>\n </div>\n <div class="top-container" v-if="!modelLoading">\n <div class="input-container">\n <div class="input-label">Enter a valid image URL or select an image from the dropdown:</div>\n <div class="image-url">\n <mdl-textfield\n floating-label="enter image url"\n :value.sync="imageURLInput"\n spellcheck="false"\n @change="imageURLInputChanged"\n ></mdl-textfield>\n <span>or</span>\n <mdl-select\n label="select image"\n id="image-url-select"\n :value.sync="imageURLSelect"\n :options="imageURLSelectList"\n style="width:200px;"\n @change="imageURLSelectChanged"\n ></mdl-select>\n </div>\n </div>\n <div class="controls">\n <mdl-switch\n :checked.sync="useGpu"\n :disabled="modelLoading || modelRunning || !hasWebgl"\n @click="toggleGpu"\n >Use GPU</mdl-switch>\n <mdl-switch\n :checked.sync="showComputationFlow"\n :disabled="modelLoading || modelRunning"\n @click="toggleComputationFlow"\n >Show computation flow</mdl-switch>\n </div>\n </div>\n <div class="columns input-output" v-if="!modelLoading">\n <div class="column input-column">\n <div class="loading-indicator">\n <mdl-spinner v-if="imageLoading || modelRunning"></mdl-spinner>\n <div class="error" v-if="imageLoadingError">Error loading URL</div>\n </div>\n <div class="canvas-container">\n <canvas id="input-canvas" width="224" height="224"></canvas>\n </div>\n </div>\n <div class="column output-column">\n <div class="output">\n <div class="output-class"\n :class="{ \'predicted\': i === 0 && outputClasses[i].probability.toFixed(2) > 0 }"\n v-for="i in [0, 1, 2, 3, 4]"\n >\n <div class="output-label">{{ outputClasses[i].name }}</div>\n <div class="output-bar"\n style="width: {{ Math.round(100 * outputClasses[i].probability) }}px; background: rgba(27, 188, 155, {{ outputClasses[i].probability.toFixed(2) }});"\n ></div>\n <div class="output-value">{{ Math.round(100 * outputClasses[i].probability) }}%</div>\n </div>\n </div>\n </div>\n </div>\n <div class="architecture-container" v-if="!modelLoading">\n <div v-for="row in architectureDiagramRows" class="layers-row">\n <div v-for="layer in row" class="layer-column">\n <div\n v-if="layer.className"\n class="layer"\n :class="{ \'has-result\': layersWithResults.includes(layer.name) }"\n :id="layer.name"\n >\n <div class="layer-class-name">{{ layer.className }}</div>\n <div class="layer-details"> {{ layer.details }}</div>\n </div>\n </div>\n </div>\n <svg class="architecture-connections" width="100%" height="100%">\n <g>\n <path v-for="path in architectureDiagramPaths" :d="path" />\n </g>\n </svg>\n </div>\n</div>\n'},function(e,n){e.exports='<div class="demo xception">\n <div class="title">\n <span>Xception, trained on ImageNet</span>\n <mdl-spinner v-if="modelLoading && loadingProgress < 100"></mdl-spinner>\n </div>\n <div class="loading-progress" v-if="modelLoading && loadingProgress < 100">\n Loading...{{ loadingProgress }}%\n </div>\n <div class="info-panel" v-if="showInfoPanel">\n <div class="info-panel-text">\n Controls currently disabled as network is very slow - SeparableConvolution2D layer implementation needs heavy optimization. Note that ~100 MB of weights must be loaded. We use the Keras architecture from <a target="_blank" href="https://github.com/fchollet/keras/blob/master/keras/applications/xception.py">here</a> and pretrained weights from <a target="_blank" href="https://github.com/fchollet/deep-learning-models">here</a>. Enter any valid image URL as input to the network. You can also select from a list of prepopulated image URLs. The endpoint must have CORS enabled, to enable us to extract the numeric data from the canvas element, so not all URLs will work. Imgur and <a target="_blank" href="https://www.flickr.com/search/?text=&license=2%2C3%2C4%2C5%2C6%2C9&sort=interestingness-desc">Flickr creative commons</a> all work, and are good places to start. After running the network, the top-5 classes are displayed. Keep in mind also we are limited to the <a target="_blank" href="https://github.com/transcranial/keras-js/blob/master/demos/src/utils/imagenet.js">1,000 classes of ImageNet</a>. Keep in mind that this is image classification and not object detection, so the network is forced to output a single class through softmax. Best results are on images where the classification target spans a large portion of the image. All computation performed entirely in your browser. Toggling GPU on should offer significant speedups compared to CPU. Running the network may still take several seconds (optimizations to come). With "show computational flow" toggled, computation through the network will be shown in the architecture diagram (scroll down as computation is performed layer by layer). Turning this feature off will also speed up computation.\n </div>\n <div class="info-panel-close">\n <div class="info-panel-close-btn" @click="closeInfoPanel"><i class="material-icons">close</i>CLOSE</div>\n </div>\n </div>\n <!--<div class="top-container" v-if="!modelLoading">\n <div class="input-container">\n <div class="input-label">Enter a valid image URL or select an image from the dropdown:</div>\n <div class="image-url">\n <mdl-textfield\n floating-label="enter image url"\n :value.sync="imageURLInput"\n spellcheck="false"\n @change="imageURLInputChanged"\n ></mdl-textfield>\n <span>or</span>\n <mdl-select\n label="select image"\n id="image-url-select"\n :value.sync="imageURLSelect"\n :options="imageURLSelectList"\n style="width:200px;"\n @change="imageURLSelectChanged"\n ></mdl-select>\n </div>\n </div>\n <div class="controls">\n <mdl-switch\n :checked.sync="useGpu"\n :disabled="modelLoading || modelRunning || !hasWebgl"\n @click="toggleGpu"\n >Use GPU</mdl-switch>\n <mdl-switch\n :checked.sync="showComputationFlow"\n :disabled="modelLoading || modelRunning"\n @click="toggleComputationFlow"\n >Show computation flow</mdl-switch>\n </div>\n </div>-->\n <div class="columns input-output" v-if="!modelLoading">\n <div class="column input-column">\n <div class="loading-indicator">\n <mdl-spinner v-if="imageLoading || modelRunning"></mdl-spinner>\n <div class="error" v-if="imageLoadingError">Error loading URL</div>\n </div>\n <div class="canvas-container">\n <canvas id="input-canvas" width="299" height="299"></canvas>\n </div>\n </div>\n <div class="column output-column">\n <div class="output">\n <div class="output-class"\n :class="{ \'predicted\': i === 0 && outputClasses[i].probability.toFixed(2) > 0 }"\n v-for="i in [0, 1, 2, 3, 4]"\n >\n <div class="output-label">{{ outputClasses[i].name }}</div>\n <div class="output-bar"\n style="width: {{ Math.round(100 * outputClasses[i].probability) }}px; background: rgba(27, 188, 155, {{ outputClasses[i].probability.toFixed(2) }});"\n ></div>\n <div class="output-value">{{ Math.round(100 * outputClasses[i].probability) }}%</div>\n </div>\n </div>\n </div>\n </div>\n <div class="architecture-container" v-if="!modelLoading">\n <div v-for="row in architectureDiagramRows" class="layers-row">\n <div v-for="layers in row" class="layer-column">\n <div\n v-for="layer in layers"\n v-if="layer.className"\n class="layer"\n :class="{ \'has-result\': layersWithResults.includes(layer.name) }"\n :id="layer.name"\n >\n <div class="layer-class-name">{{ layer.className }}</div>\n <div class="layer-details"> {{ layer.details }}</div>\n </div>\n </div>\n </div>\n <svg class="architecture-connections" width="100%" height="100%">\n <g>\n <path v-for="path in architectureDiagramPaths" :d="path" />\n </g>\n </svg>\n </div>\n</div>\n'},function(e,n,t){var a=t(96);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(97);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(98);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(99);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(100);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(101);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(102);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(103);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(104);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){e.exports=t(63)}]); |